[{"data":1,"prerenderedAt":285911},["ShallowReactive",2],{"all-topics-subjects":3},[4,415,561,985,1152,1429,1969,2242,2558,2641,2975,3250,3732,4139,4414,4704,4965,5440,5593,5732,5807,5965,6033,6110,6321,6397,6454,6535,6651,6758,6899,6961,7053,7705,8007,8454,8609,9295,10059,10361,10989,11202,11512,11767,12154,12224,12408,12630,12942,13308,13526,13736,14121,14147,14299,14504,14654,14734,14952,15237,15406,15784,15884,16210,16368,16520,16626,16726,16955,17213,17533,17676,17751,18141,18553,18816,19350,21265,21809,22149,22284,22678,23057,23149,23549,23937,24347,24660,25042,25267,25399,25527,25791,25910,26051,26280,26421,26616,26671,26840,26989,27164,27244,27504,27715,27776,28250,28653,28969,29217,29412,29630,29747,30043,30375,30615,30785,30981,31160,31481,31692,31834,32159,32238,32423,32636,32862,33106,33302,33789,34100,34467,34644,34939,35237,35510,35760,35989,36279,36739,36906,37290,37477,37565,37707,37965,38182,38618,38972,39339,39631,39853,39956,40208,40618,40888,40976,41223,41737,42048,42277,42467,42850,43047,43181,43338,43512,43627,43799,43926,44060,44256,44643,44814,44892,45004,45157,45282,45440,46011,46241,46564,46696,46711,46872,47049,47235,47335,47463,47756,47928,48065,48145,48241,48331,48502,48614,48684,48948,49015,49164,49376,49926,50615,50639,50663,50991,51328,51350,51374,51992,52826,52894,53474,53496,53873,53986,54084,54221,54349,54438,54571,54683,54821,54906,55060,55219,55331,55473,55588,55732,55970,56356,56629,56789,57073,57343,57436,57641,57707,57855,58081,58278,58731,58895,59254,59612,59676,59754,60033,60254,60585,60610,60632,61357,61664,62440,62598,62984,63003,65597,67891,70352,73831,75208,75282,78043,78066,81593,81824,83002,83019,85304,86175,87290,88700,88781,89343,89568,89686,89864,90059,90148,90628,91311,91520,91722,91800,92473,93409,94340,94862,95509,96302,97290,98245,98943,99666,100500,100706,100988,101096,101240,101407,101484,101735,101863,102020,102215,102426,102615,102768,103076,103502,103828,104192,104611,104929,105139,105325,105702,106051,106331,106403,106815,107110,107365,107588,107681,107860,108073,108354,108531,108551,108703,109185,109533,109604,109740,109821,109995,110107,110199,110309,110483,110555,110660,110927,111074,111354,112305,113222,113355,113613,113857,114001,114090,114205,114300,114344,114589,114659,114742,114878,114963,115086,115172,115415,115808,116013,116857,117023,117047,117447,117749,117952,118153,118644,118717,118958,119325,119635,119770,120107,120404,120568,120781,121244,121720,122219,122509,122804,123052,123247,123512,123584,123752,124223,124548,124830,125069,125312,125646,125858,126015,126155,126207,126503,126802,126971,127278,127362,127596,127748,127862,127950,128314,128428,128599,129227,129594,129735,129835,129896,130013,130302,130362,130581,130840,131023,131172,131257,131334,131356,131378,131546,131785,131882,132380,132600,132625,132774,133301,133784,134241,134654,135088,135455,135582,135958,136214,136443,136615,136698,136943,137226,137468,137788,137994,138138,138325,138524,138801,138948,139007,139245,139436,139554,139941,140883,140947,141174,141277,141597,141742,141895,142077,142275,142590,142933,143047,143372,143731,143895,143970,144214,144542,144656,144769,144906,144993,145119,145231,145372,145622,145677,145783,145949,146066,146224,146287,146346,146470,146671,146722,146751,146817,146958,147045,147117,147233,147399,147479,147565,147664,147784,148154,148491,148559,148575,149050,149763,150049,150310,150623,150787,151120,151389,152034,152616,152717,153172,153603,154119,154570,154907,155556,155991,156402,156580,157482,157747,158189,158580,158777,159071,159162,159241,159415,159504,159734,159873,159994,160076,160246,160323,160522,160641,160779,160867,161032,161180,161279,161620,162159,163004,163436,163782,164051,164238,164612,164713,165076,165304,165549,165791,166186,166579,166762,167191,167545,167639,167842,168053,168243,168446,168583,168701,168811,168928,169045,169171,169233,169339,169472,169567,169675,169784,170121,170512,170938,171290,171674,172188,172472,172802,173244,173519,173810,174106,174584,174974,175323,175490,175713,176400,176726,176856,177055,177455,177765,178042,178476,178740,178904,179332,179672,179810,179918,180124,180213,180485,180598,180851,181105,181212,181327,181545,181594,181698,181815,181967,182064,182192,182285,182481,182734,183051,183235,183557,183842,184041,184308,184499,184808,185216,185514,185974,186053,186354,186487,186891,187456,187750,187879,188168,188384,188482,188556,188783,188807,188903,189093,189151,189238,189540,189637,189834,190195,190839,191156,191595,192154,192630,194853,195239,195524,195834,195856,196005,196347,196824,196888,197130,197520,197542,197750,197771,197792,198569,198691,198960,199215,199463,199987,200289,200489,200561,200904,201209,201465,201933,202096,202394,202978,203070,203301,203540,203732,203850,203920,204021,204202,204385,204614,204847,204952,204977,205001,205025,205047,205071,205093,205117,205141,205375,205399,205467,205656,205678,205694,205802,206245,206382,206505,206734,206892,207040,207105,207223,207330,207438,207561,207713,208080,208524,208892,209123,209385,209613,209895,210201,210319,210588,210905,211088,211325,211414,211660,211846,211989,212138,212409,212725,213095,213526,213870,214260,214579,215098,215340,215430,215818,216175,216548,216976,217439,217670,218036,219155,219479,219986,220262,220822,221105,221512,221962,222233,222589,222652,222846,223054,223187,223320,223412,223511,223614,223743,223819,223900,223993,224088,224172,224247,224420,224521,224641,225271,225978,226378,226585,226961,227334,227672,228012,228036,228081,228162,228262,228438,228642,228762,228925,229061,229162,229323,229436,229635,229830,229984,230132,230242,230350,230470,230673,230814,230949,231179,231397,231675,232067,232177,232574,233028,233092,233471,233784,234149,234430,234792,235385,235511,235653,235773,235870,236072,236262,236343,236497,236611,236757,236880,237125,237299,237429,237636,238171,238312,238734,239545,239817,240226,240500,240826,241235,241433,241759,242061,242332,242748,242860,243104,243186,243339,243639,244151,244288,244787,245335,245975,246493,246851,247150,247513,247760,247883,248294,248704,248935,249070,249612,249734,249973,250235,250404,250492,250741,250955,251173,251301,251555,251766,251903,252346,252560,252622,252829,253042,253150,253257,253467,253685,253888,254064,254112,254273,254551,254782,254872,254964,255018,255191,255260,255581,255822,256161,256594,256821,257133,257360,257709,257918,258002,258195,258396,258774,258918,259136,259541,259973,260370,260767,260783,261356,261512,261710,261843,261902,261976,262126,262238,262406,262592,262661,262774,262892,262986,263181,263439,263777,264257,264313,264579,264902,265389,265579,265895,266185,266277,266862,267315,267613,268135,268577,268746,268949,269451,270029,270288,270689,271197,271687,271901,272187,272440,272626,272698,272775,272796,273076,273312,273582,273607,273629,273769,273880,274061,274126,274687,274874,275058,275204,275320,275377,275510,275581,275698,275798,275852,275980,276053,276135,276185,276268,276322,276418,276502,276617,276696,276817,276920,277052,277131,277202,277305,277380,277479,277573,277654,277748,277843,277952,278166,278724,279020,279258,279520,279801,280029,280319,280653,281291,281563,281658,281830,282601,282781,282870,283104,283292,283628,283821,283951,284511,284844],{"id":5,"title":6,"body":7,"date":402,"description":403,"extension":404,"meta":405,"navigation":61,"order":37,"path":406,"seo":407,"stem":408,"subject":22,"tags":409,"__hash__":414},"topics/act/overview.md","Act",{"type":8,"value":9,"toc":391},"minimark",[10,15,24,94,98,101,106,122,126,137,141,152,156,166,284,287,299,303,308,331,335,387],[11,12,14],"h2",{"id":13},"introduction","Introduction",[16,17,18,19,23],"p",{},"The ",[20,21,22],"code",{},"act"," CLI enables developers to run GitHub Actions locally, providing fast feedback and saving time during development cycles for workflows. It leverages Docker to emulate the GitHub Actions environment.",[25,26,31],"pre",{"className":27,"code":28,"language":29,"meta":30,"style":30},"language-bash shiki shiki-themes github-light github-dark","# Run a specific action\nact -j build\n\n# Run the default event\nact\n\n# List actions and events\nact -l\n","bash","",[20,32,33,42,56,63,69,75,80,86],{"__ignoreMap":30},[34,35,38],"span",{"class":36,"line":37},"line",1,[34,39,41],{"class":40},"sJ8bj","# Run a specific action\n",[34,43,45,48,52],{"class":36,"line":44},2,[34,46,22],{"class":47},"sScJk",[34,49,51],{"class":50},"sj4cs"," -j",[34,53,55],{"class":54},"sZZnC"," build\n",[34,57,59],{"class":36,"line":58},3,[34,60,62],{"emptyLinePlaceholder":61},true,"\n",[34,64,66],{"class":36,"line":65},4,[34,67,68],{"class":40},"# Run the default event\n",[34,70,72],{"class":36,"line":71},5,[34,73,74],{"class":47},"act\n",[34,76,78],{"class":36,"line":77},6,[34,79,62],{"emptyLinePlaceholder":61},[34,81,83],{"class":36,"line":82},7,[34,84,85],{"class":40},"# List actions and events\n",[34,87,89,91],{"class":36,"line":88},8,[34,90,22],{"class":47},[34,92,93],{"class":50}," -l\n",[11,95,97],{"id":96},"installation","Installation",[16,99,100],{},"The tool supports various installation methods:",[102,103,105],"h3",{"id":104},"homebrew-macoslinux","Homebrew (macOS/Linux)",[25,107,109],{"className":27,"code":108,"language":29,"meta":30,"style":30},"brew install act\n",[20,110,111],{"__ignoreMap":30},[34,112,113,116,119],{"class":36,"line":37},[34,114,115],{"class":47},"brew",[34,117,118],{"class":54}," install",[34,120,121],{"class":54}," act\n",[102,123,125],{"id":124},"chocolatey-windows","Chocolatey (Windows)",[25,127,131],{"className":128,"code":129,"language":130,"meta":30,"style":30},"language-powershell shiki shiki-themes github-light github-dark","choco install act-cli\n","powershell",[20,132,133],{"__ignoreMap":30},[34,134,135],{"class":36,"line":37},[34,136,129],{},[102,138,140],{"id":139},"manual-installation","Manual Installation",[16,142,143,144,151],{},"Download the binary from the ",[145,146,150],"a",{"href":147,"rel":148},"https://github.com/nektos/act/releases",[149],"nofollow","releases page",".",[11,153,155],{"id":154},"usage","Usage",[16,157,158,159,162,163,165],{},"Define workflows in ",[20,160,161],{},".github/workflows"," and test them using ",[20,164,22],{},":",[25,167,171],{"className":168,"code":169,"language":170,"meta":30,"style":30},"language-yaml shiki shiki-themes github-light github-dark","name: CI\non:\n  push:\n    branches:\n      - main\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v3\n      - name: Run Tests\n        run: npm test\n","yaml",[20,172,173,186,194,201,208,216,223,230,240,248,261,273],{"__ignoreMap":30},[34,174,175,179,183],{"class":36,"line":37},[34,176,178],{"class":177},"s9eBZ","name",[34,180,182],{"class":181},"sVt8B",": ",[34,184,185],{"class":54},"CI\n",[34,187,188,191],{"class":36,"line":44},[34,189,190],{"class":50},"on",[34,192,193],{"class":181},":\n",[34,195,196,199],{"class":36,"line":58},[34,197,198],{"class":177},"  push",[34,200,193],{"class":181},[34,202,203,206],{"class":36,"line":65},[34,204,205],{"class":177},"    branches",[34,207,193],{"class":181},[34,209,210,213],{"class":36,"line":71},[34,211,212],{"class":181},"      - ",[34,214,215],{"class":54},"main\n",[34,217,218,221],{"class":36,"line":77},[34,219,220],{"class":177},"jobs",[34,222,193],{"class":181},[34,224,225,228],{"class":36,"line":82},[34,226,227],{"class":177},"  build",[34,229,193],{"class":181},[34,231,232,235,237],{"class":36,"line":88},[34,233,234],{"class":177},"    runs-on",[34,236,182],{"class":181},[34,238,239],{"class":54},"ubuntu-latest\n",[34,241,243,246],{"class":36,"line":242},9,[34,244,245],{"class":177},"    steps",[34,247,193],{"class":181},[34,249,251,253,256,258],{"class":36,"line":250},10,[34,252,212],{"class":181},[34,254,255],{"class":177},"uses",[34,257,182],{"class":181},[34,259,260],{"class":54},"actions/checkout@v3\n",[34,262,264,266,268,270],{"class":36,"line":263},11,[34,265,212],{"class":181},[34,267,178],{"class":177},[34,269,182],{"class":181},[34,271,272],{"class":54},"Run Tests\n",[34,274,276,279,281],{"class":36,"line":275},12,[34,277,278],{"class":177},"        run",[34,280,182],{"class":181},[34,282,283],{"class":54},"npm test\n",[16,285,286],{},"Run the workflow locally:",[25,288,290],{"className":27,"code":289,"language":29,"meta":30,"style":30},"act push\n",[20,291,292],{"__ignoreMap":30},[34,293,294,296],{"class":36,"line":37},[34,295,22],{"class":47},[34,297,298],{"class":54}," push\n",[11,300,302],{"id":301},"integrations","Integrations",[16,304,305,307],{},[20,306,22],{}," integrates with various tools:",[309,310,311],"ul",{},[312,313,314,315],"li",{},"Actions runners\n",[309,316,317,324],{},[312,318,319],{},[145,320,323],{"href":321,"rel":322},"https://gitea.com/gitea/act_runner",[149],"Gitea Actions runner",[312,325,326],{},[145,327,330],{"href":328,"rel":329},"https://github.com/ChristopherHX/github-act-runner",[149],"GitHub Act Runner",[11,332,334],{"id":333},"common-options","Common Options",[25,336,338],{"className":27,"code":337,"language":29,"meta":30,"style":30},"# Use a different event name\nact pull_request\n\n# Custom Docker engine\nact --container-architecture linux/amd64\n\n# Debugging output\nact --verbose\n",[20,339,340,345,352,356,361,371,375,380],{"__ignoreMap":30},[34,341,342],{"class":36,"line":37},[34,343,344],{"class":40},"# Use a different event name\n",[34,346,347,349],{"class":36,"line":44},[34,348,22],{"class":47},[34,350,351],{"class":54}," pull_request\n",[34,353,354],{"class":36,"line":58},[34,355,62],{"emptyLinePlaceholder":61},[34,357,358],{"class":36,"line":65},[34,359,360],{"class":40},"# Custom Docker engine\n",[34,362,363,365,368],{"class":36,"line":71},[34,364,22],{"class":47},[34,366,367],{"class":50}," --container-architecture",[34,369,370],{"class":54}," linux/amd64\n",[34,372,373],{"class":36,"line":77},[34,374,62],{"emptyLinePlaceholder":61},[34,376,377],{"class":36,"line":82},[34,378,379],{"class":40},"# Debugging output\n",[34,381,382,384],{"class":36,"line":88},[34,383,22],{"class":47},[34,385,386],{"class":50}," --verbose\n",[388,389,390],"style",{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":30,"searchDepth":44,"depth":44,"links":392},[393,394,399,400,401],{"id":13,"depth":44,"text":14},{"id":96,"depth":44,"text":97,"children":395},[396,397,398],{"id":104,"depth":58,"text":105},{"id":124,"depth":58,"text":125},{"id":139,"depth":58,"text":140},{"id":154,"depth":44,"text":155},{"id":301,"depth":44,"text":302},{"id":333,"depth":44,"text":334},null,"Local development of GitHub Actions workflows using the act CLI.","md",{},"/act/overview",{"title":6,"description":403},"act/overview",[22,410,411,412,413],"github-actions","cli","workflows","automation","PRsh0bFTZWwN6p04skU3e_8uI45Qw_XVygEfY85goG0",{"id":416,"title":417,"body":418,"date":402,"description":550,"extension":404,"meta":551,"navigation":61,"order":37,"path":552,"seo":553,"stem":554,"subject":555,"tags":556,"__hash__":560},"topics/alacritty/overview.md","Alacritty",{"type":8,"value":419,"toc":546},[420,422,463,467,474,543],[11,421,97],{"id":96},[25,423,425],{"className":27,"code":424,"language":29,"meta":30,"style":30},"# Install via package manager on Ubuntu\nsudo apt install alacritty\n\n# Install via Homebrew on macOS\ndefaults install alacritty\n",[20,426,427,432,445,449,454],{"__ignoreMap":30},[34,428,429],{"class":36,"line":37},[34,430,431],{"class":40},"# Install via package manager on Ubuntu\n",[34,433,434,437,440,442],{"class":36,"line":44},[34,435,436],{"class":47},"sudo",[34,438,439],{"class":54}," apt",[34,441,118],{"class":54},[34,443,444],{"class":54}," alacritty\n",[34,446,447],{"class":36,"line":58},[34,448,62],{"emptyLinePlaceholder":61},[34,450,451],{"class":36,"line":65},[34,452,453],{"class":40},"# Install via Homebrew on macOS\n",[34,455,456,459,461],{"class":36,"line":71},[34,457,458],{"class":47},"defaults",[34,460,118],{"class":54},[34,462,444],{"class":54},[11,464,466],{"id":465},"configuration-file","Configuration File",[16,468,469,470,473],{},"Alacritty's configuration file is located at ",[20,471,472],{},"~/.config/alacritty/alacritty.yml",". Below is an example:",[25,475,477],{"className":168,"code":476,"language":170,"meta":30,"style":30},"window:\n  decorations: none\n  opacity: 0.9\nscrolling: true\n```s \n\nfont:\nto .tt's handwritten}\n",[20,478,479,486,496,506,516,527,531,538],{"__ignoreMap":30},[34,480,481,484],{"class":36,"line":37},[34,482,483],{"class":177},"window",[34,485,193],{"class":181},[34,487,488,491,493],{"class":36,"line":44},[34,489,490],{"class":177},"  decorations",[34,492,182],{"class":181},[34,494,495],{"class":54},"none\n",[34,497,498,501,503],{"class":36,"line":58},[34,499,500],{"class":177},"  opacity",[34,502,182],{"class":181},[34,504,505],{"class":50},"0.9\n",[34,507,508,511,513],{"class":36,"line":65},[34,509,510],{"class":177},"scrolling",[34,512,182],{"class":181},[34,514,515],{"class":50},"true\n",[34,517,518,521,524],{"class":36,"line":71},[34,519,520],{"class":181},"```",[34,522,523],{"class":54},"s",[34,525,526],{"class":181}," \n",[34,528,529],{"class":36,"line":77},[34,530,62],{"emptyLinePlaceholder":61},[34,532,533,536],{"class":36,"line":82},[34,534,535],{"class":177},"font",[34,537,193],{"class":181},[34,539,540],{"class":36,"line":88},[34,541,542],{"class":54},"to .tt's handwritten}\n",[388,544,545],{},"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 .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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}",{"title":30,"searchDepth":44,"depth":44,"links":547},[548,549],{"id":96,"depth":44,"text":97},{"id":465,"depth":44,"text":466},"Alacritty terminal emulator configuration and usage.",{},"/alacritty/overview",{"title":417,"description":550},"alacritty/overview","alacritty",[555,557,558,559],"terminal","configuration","emulator","6QNbWdaSV9e7ViDPxE1twRUx2oFB3JDm5YZ-Gs5CedM",{"id":562,"title":563,"body":564,"date":402,"description":975,"extension":404,"meta":976,"navigation":61,"order":44,"path":977,"seo":978,"stem":979,"subject":980,"tags":981,"__hash__":984},"topics/angular/component-basics.md","Component Basics",{"type":8,"value":565,"toc":972},[566,569,969],[11,567,563],{"id":568},"component-basics",[25,570,574],{"className":571,"code":572,"language":573,"meta":30,"style":30},"language-typescript shiki shiki-themes github-light github-dark","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n// Basic component\n@Component({\n  selector: 'app-greeting',\n  standalone: true,\n  template: `\u003Ch1>Hello, {{ name }}!\u003C/h1>`\n})\nexport class GreetingComponent {\n  @Input() name: string = '';\n}\n\n// Component with inputs and outputs\n@Component({\n  selector: 'app-button',\n  standalone: true,\n  template: `\n    \u003Cbutton (click)=\"handleClick()\">{{ text }}\u003C/button>\n  `\n})\nexport class ButtonComponent {\n  @Input() text: string = 'Click me';\n  @Output() clicked = new EventEmitter\u003Cvoid>();\n  \n  handleClick() {\n    this.clicked.emit();\n  }\n}\n\n// Component with external template\n@Component({\n  selector: 'app-card',\n  standalone: true,\n  templateUrl: './card.component.html',\n  styleUrls: ['./card.component.css']\n})\nexport class CardComponent {\n  @Input() title: string = '';\n}\n","typescript",[20,575,576,594,598,603,614,625,635,643,648,662,689,694,698,704,713,723,732,740,746,752,757,769,792,822,828,837,852,858,863,868,874,883,893,902,913,925,930,942,964],{"__ignoreMap":30},[34,577,578,582,585,588,591],{"class":36,"line":37},[34,579,581],{"class":580},"szBVR","import",[34,583,584],{"class":181}," { Component, Input, Output, EventEmitter } ",[34,586,587],{"class":580},"from",[34,589,590],{"class":54}," '@angular/core'",[34,592,593],{"class":181},";\n",[34,595,596],{"class":36,"line":44},[34,597,62],{"emptyLinePlaceholder":61},[34,599,600],{"class":36,"line":58},[34,601,602],{"class":40},"// Basic component\n",[34,604,605,608,611],{"class":36,"line":65},[34,606,607],{"class":181},"@",[34,609,610],{"class":47},"Component",[34,612,613],{"class":181},"({\n",[34,615,616,619,622],{"class":36,"line":71},[34,617,618],{"class":181},"  selector: ",[34,620,621],{"class":54},"'app-greeting'",[34,623,624],{"class":181},",\n",[34,626,627,630,633],{"class":36,"line":77},[34,628,629],{"class":181},"  standalone: ",[34,631,632],{"class":50},"true",[34,634,624],{"class":181},[34,636,637,640],{"class":36,"line":82},[34,638,639],{"class":181},"  template: ",[34,641,642],{"class":54},"`\u003Ch1>Hello, {{ name }}!\u003C/h1>`\n",[34,644,645],{"class":36,"line":88},[34,646,647],{"class":181},"})\n",[34,649,650,653,656,659],{"class":36,"line":242},[34,651,652],{"class":580},"export",[34,654,655],{"class":580}," class",[34,657,658],{"class":47}," GreetingComponent",[34,660,661],{"class":181}," {\n",[34,663,664,667,670,673,676,678,681,684,687],{"class":36,"line":250},[34,665,666],{"class":181},"  @",[34,668,669],{"class":47},"Input",[34,671,672],{"class":181},"() ",[34,674,178],{"class":675},"s4XuR",[34,677,165],{"class":580},[34,679,680],{"class":50}," string",[34,682,683],{"class":580}," =",[34,685,686],{"class":54}," ''",[34,688,593],{"class":181},[34,690,691],{"class":36,"line":263},[34,692,693],{"class":181},"}\n",[34,695,696],{"class":36,"line":275},[34,697,62],{"emptyLinePlaceholder":61},[34,699,701],{"class":36,"line":700},13,[34,702,703],{"class":40},"// Component with inputs and outputs\n",[34,705,707,709,711],{"class":36,"line":706},14,[34,708,607],{"class":181},[34,710,610],{"class":47},[34,712,613],{"class":181},[34,714,716,718,721],{"class":36,"line":715},15,[34,717,618],{"class":181},[34,719,720],{"class":54},"'app-button'",[34,722,624],{"class":181},[34,724,726,728,730],{"class":36,"line":725},16,[34,727,629],{"class":181},[34,729,632],{"class":50},[34,731,624],{"class":181},[34,733,735,737],{"class":36,"line":734},17,[34,736,639],{"class":181},[34,738,739],{"class":54},"`\n",[34,741,743],{"class":36,"line":742},18,[34,744,745],{"class":54},"    \u003Cbutton (click)=\"handleClick()\">{{ text }}\u003C/button>\n",[34,747,749],{"class":36,"line":748},19,[34,750,751],{"class":54},"  `\n",[34,753,755],{"class":36,"line":754},20,[34,756,647],{"class":181},[34,758,760,762,764,767],{"class":36,"line":759},21,[34,761,652],{"class":580},[34,763,655],{"class":580},[34,765,766],{"class":47}," ButtonComponent",[34,768,661],{"class":181},[34,770,772,774,776,778,781,783,785,787,790],{"class":36,"line":771},22,[34,773,666],{"class":181},[34,775,669],{"class":47},[34,777,672],{"class":181},[34,779,780],{"class":675},"text",[34,782,165],{"class":580},[34,784,680],{"class":50},[34,786,683],{"class":580},[34,788,789],{"class":54}," 'Click me'",[34,791,593],{"class":181},[34,793,795,797,800,802,805,807,810,813,816,819],{"class":36,"line":794},23,[34,796,666],{"class":181},[34,798,799],{"class":47},"Output",[34,801,672],{"class":181},[34,803,804],{"class":675},"clicked",[34,806,683],{"class":580},[34,808,809],{"class":580}," new",[34,811,812],{"class":47}," EventEmitter",[34,814,815],{"class":181},"\u003C",[34,817,818],{"class":50},"void",[34,820,821],{"class":181},">();\n",[34,823,825],{"class":36,"line":824},24,[34,826,827],{"class":181},"  \n",[34,829,831,834],{"class":36,"line":830},25,[34,832,833],{"class":47},"  handleClick",[34,835,836],{"class":181},"() {\n",[34,838,840,843,846,849],{"class":36,"line":839},26,[34,841,842],{"class":50},"    this",[34,844,845],{"class":181},".clicked.",[34,847,848],{"class":47},"emit",[34,850,851],{"class":181},"();\n",[34,853,855],{"class":36,"line":854},27,[34,856,857],{"class":181},"  }\n",[34,859,861],{"class":36,"line":860},28,[34,862,693],{"class":181},[34,864,866],{"class":36,"line":865},29,[34,867,62],{"emptyLinePlaceholder":61},[34,869,871],{"class":36,"line":870},30,[34,872,873],{"class":40},"// Component with external template\n",[34,875,877,879,881],{"class":36,"line":876},31,[34,878,607],{"class":181},[34,880,610],{"class":47},[34,882,613],{"class":181},[34,884,886,888,891],{"class":36,"line":885},32,[34,887,618],{"class":181},[34,889,890],{"class":54},"'app-card'",[34,892,624],{"class":181},[34,894,896,898,900],{"class":36,"line":895},33,[34,897,629],{"class":181},[34,899,632],{"class":50},[34,901,624],{"class":181},[34,903,905,908,911],{"class":36,"line":904},34,[34,906,907],{"class":181},"  templateUrl: ",[34,909,910],{"class":54},"'./card.component.html'",[34,912,624],{"class":181},[34,914,916,919,922],{"class":36,"line":915},35,[34,917,918],{"class":181},"  styleUrls: [",[34,920,921],{"class":54},"'./card.component.css'",[34,923,924],{"class":181},"]\n",[34,926,928],{"class":36,"line":927},36,[34,929,647],{"class":181},[34,931,933,935,937,940],{"class":36,"line":932},37,[34,934,652],{"class":580},[34,936,655],{"class":580},[34,938,939],{"class":47}," CardComponent",[34,941,661],{"class":181},[34,943,945,947,949,951,954,956,958,960,962],{"class":36,"line":944},38,[34,946,666],{"class":181},[34,948,669],{"class":47},[34,950,672],{"class":181},[34,952,953],{"class":675},"title",[34,955,165],{"class":580},[34,957,680],{"class":50},[34,959,683],{"class":580},[34,961,686],{"class":54},[34,963,593],{"class":181},[34,965,967],{"class":36,"line":966},39,[34,968,693],{"class":181},[388,970,971],{},"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 .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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":973},[974],{"id":568,"depth":44,"text":563},"Component Basics in Angular.",{},"/angular/component-basics",{"title":563,"description":975},"angular/component-basics","angular",[980,573,982,983],"frontend","spa","fdVkob2AuZOM1YmLWRkgjQ7Z-IMdHETUsFUF_MwkNbU",{"id":986,"title":987,"body":988,"date":402,"description":1145,"extension":404,"meta":1146,"navigation":61,"order":700,"path":1147,"seo":1148,"stem":1149,"subject":980,"tags":1150,"__hash__":1151},"topics/angular/content-projection.md","Content Projection",{"type":8,"value":989,"toc":1142},[990,993,1139],[11,991,987],{"id":992},"content-projection",[25,994,996],{"className":571,"code":995,"language":573,"meta":30,"style":30},"// card.component.ts\n@Component({\n  selector: 'app-card',\n  standalone: true,\n  template: `\n    \u003Cdiv class=\"card\">\n      \u003Cdiv class=\"header\">\n        \u003Cng-content select=\"[card-header]\">\u003C/ng-content>\n      \u003C/div>\n      \u003Cdiv class=\"body\">\n        \u003Cng-content>\u003C/ng-content>\n      \u003C/div>\n      \u003Cdiv class=\"footer\">\n        \u003Cng-content select=\"[card-footer]\">\u003C/ng-content>\n      \u003C/div>\n    \u003C/div>\n  `\n})\nexport class CardComponent {}\n\n// Usage\n// \u003Capp-card>\n//   \u003Ch2 card-header>Title\u003C/h2>\n//   \u003Cp>Main content goes here\u003C/p>\n//   \u003Cbutton card-footer>Action\u003C/button>\n// \u003C/app-card>\n",[20,997,998,1003,1011,1019,1027,1033,1038,1043,1048,1053,1058,1063,1067,1072,1077,1081,1086,1090,1094,1105,1109,1114,1119,1124,1129,1134],{"__ignoreMap":30},[34,999,1000],{"class":36,"line":37},[34,1001,1002],{"class":40},"// card.component.ts\n",[34,1004,1005,1007,1009],{"class":36,"line":44},[34,1006,607],{"class":181},[34,1008,610],{"class":47},[34,1010,613],{"class":181},[34,1012,1013,1015,1017],{"class":36,"line":58},[34,1014,618],{"class":181},[34,1016,890],{"class":54},[34,1018,624],{"class":181},[34,1020,1021,1023,1025],{"class":36,"line":65},[34,1022,629],{"class":181},[34,1024,632],{"class":50},[34,1026,624],{"class":181},[34,1028,1029,1031],{"class":36,"line":71},[34,1030,639],{"class":181},[34,1032,739],{"class":54},[34,1034,1035],{"class":36,"line":77},[34,1036,1037],{"class":54},"    \u003Cdiv class=\"card\">\n",[34,1039,1040],{"class":36,"line":82},[34,1041,1042],{"class":54},"      \u003Cdiv class=\"header\">\n",[34,1044,1045],{"class":36,"line":88},[34,1046,1047],{"class":54},"        \u003Cng-content select=\"[card-header]\">\u003C/ng-content>\n",[34,1049,1050],{"class":36,"line":242},[34,1051,1052],{"class":54},"      \u003C/div>\n",[34,1054,1055],{"class":36,"line":250},[34,1056,1057],{"class":54},"      \u003Cdiv class=\"body\">\n",[34,1059,1060],{"class":36,"line":263},[34,1061,1062],{"class":54},"        \u003Cng-content>\u003C/ng-content>\n",[34,1064,1065],{"class":36,"line":275},[34,1066,1052],{"class":54},[34,1068,1069],{"class":36,"line":700},[34,1070,1071],{"class":54},"      \u003Cdiv class=\"footer\">\n",[34,1073,1074],{"class":36,"line":706},[34,1075,1076],{"class":54},"        \u003Cng-content select=\"[card-footer]\">\u003C/ng-content>\n",[34,1078,1079],{"class":36,"line":715},[34,1080,1052],{"class":54},[34,1082,1083],{"class":36,"line":725},[34,1084,1085],{"class":54},"    \u003C/div>\n",[34,1087,1088],{"class":36,"line":734},[34,1089,751],{"class":54},[34,1091,1092],{"class":36,"line":742},[34,1093,647],{"class":181},[34,1095,1096,1098,1100,1102],{"class":36,"line":748},[34,1097,652],{"class":580},[34,1099,655],{"class":580},[34,1101,939],{"class":47},[34,1103,1104],{"class":181}," {}\n",[34,1106,1107],{"class":36,"line":754},[34,1108,62],{"emptyLinePlaceholder":61},[34,1110,1111],{"class":36,"line":759},[34,1112,1113],{"class":40},"// Usage\n",[34,1115,1116],{"class":36,"line":771},[34,1117,1118],{"class":40},"// \u003Capp-card>\n",[34,1120,1121],{"class":36,"line":794},[34,1122,1123],{"class":40},"//   \u003Ch2 card-header>Title\u003C/h2>\n",[34,1125,1126],{"class":36,"line":824},[34,1127,1128],{"class":40},"//   \u003Cp>Main content goes here\u003C/p>\n",[34,1130,1131],{"class":36,"line":830},[34,1132,1133],{"class":40},"//   \u003Cbutton card-footer>Action\u003C/button>\n",[34,1135,1136],{"class":36,"line":839},[34,1137,1138],{"class":40},"// \u003C/app-card>\n",[388,1140,1141],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":1143},[1144],{"id":992,"depth":44,"text":987},"Content Projection in Angular.",{},"/angular/content-projection",{"title":987,"description":1145},"angular/content-projection",[980,573,982,983],"UJBepB7BXag2VqI8j7TC6qpjrJviR7I7oCJGRNhJkH8",{"id":1153,"title":1154,"body":1155,"date":402,"description":1422,"extension":404,"meta":1423,"navigation":61,"order":65,"path":1424,"seo":1425,"stem":1426,"subject":980,"tags":1427,"__hash__":1428},"topics/angular/control-flow-angular-17.md","Control Flow (Angular 17+)",{"type":8,"value":1156,"toc":1419},[1157,1160,1416],[11,1158,1154],{"id":1159},"control-flow-angular-17",[25,1161,1165],{"className":1162,"code":1163,"language":1164,"meta":30,"style":30},"language-html shiki shiki-themes github-light github-dark","\u003C!-- @if -->\n@if (isLoggedIn) {\n  \u003Capp-dashboard />\n} @else if (isLoading) {\n  \u003Capp-spinner />\n} @else {\n  \u003Capp-login />\n}\n\n\u003C!-- @for -->\n@for (item of items; track item.id) {\n  \u003Cdiv>{{ item.name }}\u003C/div>\n} @empty {\n  \u003Cp>No items found\u003C/p>\n}\n\n\u003C!-- @switch -->\n@switch (status) {\n  @case ('active') {\n    \u003Cspan class=\"active\">Active\u003C/span>\n  }\n  @case ('inactive') {\n    \u003Cspan class=\"inactive\">Inactive\u003C/span>\n  }\n  @default {\n    \u003Cspan>Unknown\u003C/span>\n  }\n}\n\n\u003C!-- @defer (lazy loading) -->\n@defer (on viewport) {\n  \u003Capp-heavy-component />\n} @placeholder {\n  \u003Cp>Loading...\u003C/p>\n}\n","html",[20,1166,1167,1172,1177,1188,1193,1202,1207,1216,1220,1224,1229,1234,1249,1254,1267,1271,1275,1280,1285,1290,1312,1316,1321,1341,1345,1350,1363,1367,1371,1375,1380,1385,1394,1399,1412],{"__ignoreMap":30},[34,1168,1169],{"class":36,"line":37},[34,1170,1171],{"class":40},"\u003C!-- @if -->\n",[34,1173,1174],{"class":36,"line":44},[34,1175,1176],{"class":181},"@if (isLoggedIn) {\n",[34,1178,1179,1182,1185],{"class":36,"line":58},[34,1180,1181],{"class":181},"  \u003C",[34,1183,1184],{"class":177},"app-dashboard",[34,1186,1187],{"class":181}," />\n",[34,1189,1190],{"class":36,"line":65},[34,1191,1192],{"class":181},"} @else if (isLoading) {\n",[34,1194,1195,1197,1200],{"class":36,"line":71},[34,1196,1181],{"class":181},[34,1198,1199],{"class":177},"app-spinner",[34,1201,1187],{"class":181},[34,1203,1204],{"class":36,"line":77},[34,1205,1206],{"class":181},"} @else {\n",[34,1208,1209,1211,1214],{"class":36,"line":82},[34,1210,1181],{"class":181},[34,1212,1213],{"class":177},"app-login",[34,1215,1187],{"class":181},[34,1217,1218],{"class":36,"line":88},[34,1219,693],{"class":181},[34,1221,1222],{"class":36,"line":242},[34,1223,62],{"emptyLinePlaceholder":61},[34,1225,1226],{"class":36,"line":250},[34,1227,1228],{"class":40},"\u003C!-- @for -->\n",[34,1230,1231],{"class":36,"line":263},[34,1232,1233],{"class":181},"@for (item of items; track item.id) {\n",[34,1235,1236,1238,1241,1244,1246],{"class":36,"line":275},[34,1237,1181],{"class":181},[34,1239,1240],{"class":177},"div",[34,1242,1243],{"class":181},">{{ item.name }}\u003C/",[34,1245,1240],{"class":177},[34,1247,1248],{"class":181},">\n",[34,1250,1251],{"class":36,"line":700},[34,1252,1253],{"class":181},"} @empty {\n",[34,1255,1256,1258,1260,1263,1265],{"class":36,"line":706},[34,1257,1181],{"class":181},[34,1259,16],{"class":177},[34,1261,1262],{"class":181},">No items found\u003C/",[34,1264,16],{"class":177},[34,1266,1248],{"class":181},[34,1268,1269],{"class":36,"line":715},[34,1270,693],{"class":181},[34,1272,1273],{"class":36,"line":725},[34,1274,62],{"emptyLinePlaceholder":61},[34,1276,1277],{"class":36,"line":734},[34,1278,1279],{"class":40},"\u003C!-- @switch -->\n",[34,1281,1282],{"class":36,"line":742},[34,1283,1284],{"class":181},"@switch (status) {\n",[34,1286,1287],{"class":36,"line":748},[34,1288,1289],{"class":181},"  @case ('active') {\n",[34,1291,1292,1295,1297,1299,1302,1305,1308,1310],{"class":36,"line":754},[34,1293,1294],{"class":181},"    \u003C",[34,1296,34],{"class":177},[34,1298,655],{"class":47},[34,1300,1301],{"class":181},"=",[34,1303,1304],{"class":54},"\"active\"",[34,1306,1307],{"class":181},">Active\u003C/",[34,1309,34],{"class":177},[34,1311,1248],{"class":181},[34,1313,1314],{"class":36,"line":759},[34,1315,857],{"class":181},[34,1317,1318],{"class":36,"line":771},[34,1319,1320],{"class":181},"  @case ('inactive') {\n",[34,1322,1323,1325,1327,1329,1331,1334,1337,1339],{"class":36,"line":794},[34,1324,1294],{"class":181},[34,1326,34],{"class":177},[34,1328,655],{"class":47},[34,1330,1301],{"class":181},[34,1332,1333],{"class":54},"\"inactive\"",[34,1335,1336],{"class":181},">Inactive\u003C/",[34,1338,34],{"class":177},[34,1340,1248],{"class":181},[34,1342,1343],{"class":36,"line":824},[34,1344,857],{"class":181},[34,1346,1347],{"class":36,"line":830},[34,1348,1349],{"class":181},"  @default {\n",[34,1351,1352,1354,1356,1359,1361],{"class":36,"line":839},[34,1353,1294],{"class":181},[34,1355,34],{"class":177},[34,1357,1358],{"class":181},">Unknown\u003C/",[34,1360,34],{"class":177},[34,1362,1248],{"class":181},[34,1364,1365],{"class":36,"line":854},[34,1366,857],{"class":181},[34,1368,1369],{"class":36,"line":860},[34,1370,693],{"class":181},[34,1372,1373],{"class":36,"line":865},[34,1374,62],{"emptyLinePlaceholder":61},[34,1376,1377],{"class":36,"line":870},[34,1378,1379],{"class":40},"\u003C!-- @defer (lazy loading) -->\n",[34,1381,1382],{"class":36,"line":876},[34,1383,1384],{"class":181},"@defer (on viewport) {\n",[34,1386,1387,1389,1392],{"class":36,"line":885},[34,1388,1181],{"class":181},[34,1390,1391],{"class":177},"app-heavy-component",[34,1393,1187],{"class":181},[34,1395,1396],{"class":36,"line":895},[34,1397,1398],{"class":181},"} @placeholder {\n",[34,1400,1401,1403,1405,1408,1410],{"class":36,"line":904},[34,1402,1181],{"class":181},[34,1404,16],{"class":177},[34,1406,1407],{"class":181},">Loading...\u003C/",[34,1409,16],{"class":177},[34,1411,1248],{"class":181},[34,1413,1414],{"class":36,"line":915},[34,1415,693],{"class":181},[388,1417,1418],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .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);}",{"title":30,"searchDepth":44,"depth":44,"links":1420},[1421],{"id":1159,"depth":44,"text":1154},"Control Flow (Angular 17+) in Angular.",{},"/angular/control-flow-angular-17",{"title":1154,"description":1422},"angular/control-flow-angular-17",[980,573,982,983],"YfEPEKpfNKfsxqCC8IuS6jBAZViEyPoaQCak-oZLWaU",{"id":1430,"title":1431,"body":1432,"date":402,"description":1962,"extension":404,"meta":1963,"navigation":61,"order":250,"path":1964,"seo":1965,"stem":1966,"subject":980,"tags":1967,"__hash__":1968},"topics/angular/http-client.md","HTTP Client",{"type":8,"value":1433,"toc":1959},[1434,1437,1956],[11,1435,1431],{"id":1436},"http-client",[25,1438,1440],{"className":571,"code":1439,"language":573,"meta":30,"style":30},"import { Injectable, inject } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { Observable, catchError, map } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ApiService {\n  private http = inject(HttpClient);\n  \n  // GET request\n  getData(): Observable\u003CData[]> {\n    return this.http.get\u003CData[]>('/api/data');\n  }\n  \n  // GET with params\n  search(term: string): Observable\u003CData[]> {\n    const params = new HttpParams().set('q', term);\n    return this.http.get\u003CData[]>('/api/search', { params });\n  }\n  \n  // POST request\n  create(data: Data): Observable\u003CData> {\n    return this.http.post\u003CData>('/api/data', data);\n  }\n  \n  // With headers\n  getWithAuth(): Observable\u003CData> {\n    const headers = new HttpHeaders().set('Authorization', 'Bearer token');\n    return this.http.get\u003CData>('/api/protected', { headers });\n  }\n  \n  // With error handling\n  getDataSafe(): Observable\u003CData[]> {\n    return this.http.get\u003CData[]>('/api/data').pipe(\n      map(response => response),\n      catchError(error => {\n        console.error('Error:', error);\n        throw error;\n      })\n    );\n  }\n}\n",[20,1441,1442,1455,1469,1483,1487,1503,1514,1530,1534,1539,1560,1587,1591,1595,1600,1628,1657,1679,1683,1687,1692,1720,1743,1747,1751,1756,1773,1804,1826,1830,1834,1839,1856,1883,1899,1913,1928,1936,1941,1946,1951],{"__ignoreMap":30},[34,1443,1444,1446,1449,1451,1453],{"class":36,"line":37},[34,1445,581],{"class":580},[34,1447,1448],{"class":181}," { Injectable, inject } ",[34,1450,587],{"class":580},[34,1452,590],{"class":54},[34,1454,593],{"class":181},[34,1456,1457,1459,1462,1464,1467],{"class":36,"line":44},[34,1458,581],{"class":580},[34,1460,1461],{"class":181}," { HttpClient, HttpParams, HttpHeaders } ",[34,1463,587],{"class":580},[34,1465,1466],{"class":54}," '@angular/common/http'",[34,1468,593],{"class":181},[34,1470,1471,1473,1476,1478,1481],{"class":36,"line":58},[34,1472,581],{"class":580},[34,1474,1475],{"class":181}," { Observable, catchError, map } ",[34,1477,587],{"class":580},[34,1479,1480],{"class":54}," 'rxjs'",[34,1482,593],{"class":181},[34,1484,1485],{"class":36,"line":65},[34,1486,62],{"emptyLinePlaceholder":61},[34,1488,1489,1491,1494,1497,1500],{"class":36,"line":71},[34,1490,607],{"class":181},[34,1492,1493],{"class":47},"Injectable",[34,1495,1496],{"class":181},"({ providedIn: ",[34,1498,1499],{"class":54},"'root'",[34,1501,1502],{"class":181}," })\n",[34,1504,1505,1507,1509,1512],{"class":36,"line":77},[34,1506,652],{"class":580},[34,1508,655],{"class":580},[34,1510,1511],{"class":47}," ApiService",[34,1513,661],{"class":181},[34,1515,1516,1519,1522,1524,1527],{"class":36,"line":82},[34,1517,1518],{"class":580},"  private",[34,1520,1521],{"class":675}," http",[34,1523,683],{"class":580},[34,1525,1526],{"class":47}," inject",[34,1528,1529],{"class":181},"(HttpClient);\n",[34,1531,1532],{"class":36,"line":88},[34,1533,827],{"class":181},[34,1535,1536],{"class":36,"line":242},[34,1537,1538],{"class":40},"  // GET request\n",[34,1540,1541,1544,1547,1549,1552,1554,1557],{"class":36,"line":250},[34,1542,1543],{"class":47},"  getData",[34,1545,1546],{"class":181},"()",[34,1548,165],{"class":580},[34,1550,1551],{"class":47}," Observable",[34,1553,815],{"class":181},[34,1555,1556],{"class":47},"Data",[34,1558,1559],{"class":181},"[]> {\n",[34,1561,1562,1565,1568,1571,1574,1576,1578,1581,1584],{"class":36,"line":263},[34,1563,1564],{"class":580},"    return",[34,1566,1567],{"class":50}," this",[34,1569,1570],{"class":181},".http.",[34,1572,1573],{"class":47},"get",[34,1575,815],{"class":181},[34,1577,1556],{"class":47},[34,1579,1580],{"class":181},"[]>(",[34,1582,1583],{"class":54},"'/api/data'",[34,1585,1586],{"class":181},");\n",[34,1588,1589],{"class":36,"line":275},[34,1590,857],{"class":181},[34,1592,1593],{"class":36,"line":700},[34,1594,827],{"class":181},[34,1596,1597],{"class":36,"line":706},[34,1598,1599],{"class":40},"  // GET with params\n",[34,1601,1602,1605,1608,1611,1613,1615,1618,1620,1622,1624,1626],{"class":36,"line":715},[34,1603,1604],{"class":47},"  search",[34,1606,1607],{"class":181},"(",[34,1609,1610],{"class":675},"term",[34,1612,165],{"class":580},[34,1614,680],{"class":50},[34,1616,1617],{"class":181},")",[34,1619,165],{"class":580},[34,1621,1551],{"class":47},[34,1623,815],{"class":181},[34,1625,1556],{"class":47},[34,1627,1559],{"class":181},[34,1629,1630,1633,1636,1638,1640,1643,1646,1649,1651,1654],{"class":36,"line":725},[34,1631,1632],{"class":580},"    const",[34,1634,1635],{"class":50}," params",[34,1637,683],{"class":580},[34,1639,809],{"class":580},[34,1641,1642],{"class":47}," HttpParams",[34,1644,1645],{"class":181},"().",[34,1647,1648],{"class":47},"set",[34,1650,1607],{"class":181},[34,1652,1653],{"class":54},"'q'",[34,1655,1656],{"class":181},", term);\n",[34,1658,1659,1661,1663,1665,1667,1669,1671,1673,1676],{"class":36,"line":734},[34,1660,1564],{"class":580},[34,1662,1567],{"class":50},[34,1664,1570],{"class":181},[34,1666,1573],{"class":47},[34,1668,815],{"class":181},[34,1670,1556],{"class":47},[34,1672,1580],{"class":181},[34,1674,1675],{"class":54},"'/api/search'",[34,1677,1678],{"class":181},", { params });\n",[34,1680,1681],{"class":36,"line":742},[34,1682,857],{"class":181},[34,1684,1685],{"class":36,"line":748},[34,1686,827],{"class":181},[34,1688,1689],{"class":36,"line":754},[34,1690,1691],{"class":40},"  // POST request\n",[34,1693,1694,1697,1699,1702,1704,1707,1709,1711,1713,1715,1717],{"class":36,"line":759},[34,1695,1696],{"class":47},"  create",[34,1698,1607],{"class":181},[34,1700,1701],{"class":675},"data",[34,1703,165],{"class":580},[34,1705,1706],{"class":47}," Data",[34,1708,1617],{"class":181},[34,1710,165],{"class":580},[34,1712,1551],{"class":47},[34,1714,815],{"class":181},[34,1716,1556],{"class":47},[34,1718,1719],{"class":181},"> {\n",[34,1721,1722,1724,1726,1728,1731,1733,1735,1738,1740],{"class":36,"line":771},[34,1723,1564],{"class":580},[34,1725,1567],{"class":50},[34,1727,1570],{"class":181},[34,1729,1730],{"class":47},"post",[34,1732,815],{"class":181},[34,1734,1556],{"class":47},[34,1736,1737],{"class":181},">(",[34,1739,1583],{"class":54},[34,1741,1742],{"class":181},", data);\n",[34,1744,1745],{"class":36,"line":794},[34,1746,857],{"class":181},[34,1748,1749],{"class":36,"line":824},[34,1750,827],{"class":181},[34,1752,1753],{"class":36,"line":830},[34,1754,1755],{"class":40},"  // With headers\n",[34,1757,1758,1761,1763,1765,1767,1769,1771],{"class":36,"line":839},[34,1759,1760],{"class":47},"  getWithAuth",[34,1762,1546],{"class":181},[34,1764,165],{"class":580},[34,1766,1551],{"class":47},[34,1768,815],{"class":181},[34,1770,1556],{"class":47},[34,1772,1719],{"class":181},[34,1774,1775,1777,1780,1782,1784,1787,1789,1791,1793,1796,1799,1802],{"class":36,"line":854},[34,1776,1632],{"class":580},[34,1778,1779],{"class":50}," headers",[34,1781,683],{"class":580},[34,1783,809],{"class":580},[34,1785,1786],{"class":47}," HttpHeaders",[34,1788,1645],{"class":181},[34,1790,1648],{"class":47},[34,1792,1607],{"class":181},[34,1794,1795],{"class":54},"'Authorization'",[34,1797,1798],{"class":181},", ",[34,1800,1801],{"class":54},"'Bearer token'",[34,1803,1586],{"class":181},[34,1805,1806,1808,1810,1812,1814,1816,1818,1820,1823],{"class":36,"line":860},[34,1807,1564],{"class":580},[34,1809,1567],{"class":50},[34,1811,1570],{"class":181},[34,1813,1573],{"class":47},[34,1815,815],{"class":181},[34,1817,1556],{"class":47},[34,1819,1737],{"class":181},[34,1821,1822],{"class":54},"'/api/protected'",[34,1824,1825],{"class":181},", { headers });\n",[34,1827,1828],{"class":36,"line":865},[34,1829,857],{"class":181},[34,1831,1832],{"class":36,"line":870},[34,1833,827],{"class":181},[34,1835,1836],{"class":36,"line":876},[34,1837,1838],{"class":40},"  // With error handling\n",[34,1840,1841,1844,1846,1848,1850,1852,1854],{"class":36,"line":885},[34,1842,1843],{"class":47},"  getDataSafe",[34,1845,1546],{"class":181},[34,1847,165],{"class":580},[34,1849,1551],{"class":47},[34,1851,815],{"class":181},[34,1853,1556],{"class":47},[34,1855,1559],{"class":181},[34,1857,1858,1860,1862,1864,1866,1868,1870,1872,1874,1877,1880],{"class":36,"line":895},[34,1859,1564],{"class":580},[34,1861,1567],{"class":50},[34,1863,1570],{"class":181},[34,1865,1573],{"class":47},[34,1867,815],{"class":181},[34,1869,1556],{"class":47},[34,1871,1580],{"class":181},[34,1873,1583],{"class":54},[34,1875,1876],{"class":181},").",[34,1878,1879],{"class":47},"pipe",[34,1881,1882],{"class":181},"(\n",[34,1884,1885,1888,1890,1893,1896],{"class":36,"line":904},[34,1886,1887],{"class":47},"      map",[34,1889,1607],{"class":181},[34,1891,1892],{"class":675},"response",[34,1894,1895],{"class":580}," =>",[34,1897,1898],{"class":181}," response),\n",[34,1900,1901,1904,1906,1909,1911],{"class":36,"line":915},[34,1902,1903],{"class":47},"      catchError",[34,1905,1607],{"class":181},[34,1907,1908],{"class":675},"error",[34,1910,1895],{"class":580},[34,1912,661],{"class":181},[34,1914,1915,1918,1920,1922,1925],{"class":36,"line":927},[34,1916,1917],{"class":181},"        console.",[34,1919,1908],{"class":47},[34,1921,1607],{"class":181},[34,1923,1924],{"class":54},"'Error:'",[34,1926,1927],{"class":181},", error);\n",[34,1929,1930,1933],{"class":36,"line":932},[34,1931,1932],{"class":580},"        throw",[34,1934,1935],{"class":181}," error;\n",[34,1937,1938],{"class":36,"line":944},[34,1939,1940],{"class":181},"      })\n",[34,1942,1943],{"class":36,"line":966},[34,1944,1945],{"class":181},"    );\n",[34,1947,1949],{"class":36,"line":1948},40,[34,1950,857],{"class":181},[34,1952,1954],{"class":36,"line":1953},41,[34,1955,693],{"class":181},[388,1957,1958],{},"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 .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}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}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":30,"searchDepth":44,"depth":44,"links":1960},[1961],{"id":1436,"depth":44,"text":1431},"HTTP Client in Angular.",{},"/angular/http-client",{"title":1431,"description":1962},"angular/http-client",[980,573,982,983],"cCawfFBXbyqTMyGTNsqlLmYZZOtQzlmLLBSqQj9oVlo",{"id":1970,"title":1971,"body":1972,"date":402,"description":2235,"extension":404,"meta":2236,"navigation":61,"order":71,"path":2237,"seo":2238,"stem":2239,"subject":980,"tags":2240,"__hash__":2241},"topics/angular/legacy-directives.md","Legacy Directives",{"type":8,"value":1973,"toc":2232},[1974,1977,2230],[11,1975,1971],{"id":1976},"legacy-directives",[25,1978,1980],{"className":1162,"code":1979,"language":1164,"meta":30,"style":30},"\u003C!-- *ngIf -->\n\u003Cdiv *ngIf=\"isVisible\">Visible\u003C/div>\n\u003Cdiv *ngIf=\"user; else noUser\">{{ user.name }}\u003C/div>\n\u003Cng-template #noUser>\u003Cp>No user\u003C/p>\u003C/ng-template>\n\n\u003C!-- *ngFor -->\n\u003Cli *ngFor=\"let item of items; let i = index; trackBy: trackById\">\n  {{ i }}: {{ item.name }}\n\u003C/li>\n\n\u003C!-- *ngSwitch -->\n\u003Cdiv [ngSwitch]=\"status\">\n  \u003Cp *ngSwitchCase=\"'active'\">Active\u003C/p>\n  \u003Cp *ngSwitchCase=\"'inactive'\">Inactive\u003C/p>\n  \u003Cp *ngSwitchDefault>Unknown\u003C/p>\n\u003C/div>\n\n\u003C!-- ngClass and ngStyle -->\n\u003Cdiv [ngClass]=\"{ 'active': isActive, 'disabled': isDisabled }\">\u003C/div>\n\u003Cdiv [ngStyle]=\"{ 'color': textColor, 'font-size': fontSize + 'px' }\">\u003C/div>\n",[20,1981,1982,1987,2008,2028,2055,2059,2064,2080,2085,2094,2098,2103,2119,2139,2158,2173,2181,2185,2190,2210],{"__ignoreMap":30},[34,1983,1984],{"class":36,"line":37},[34,1985,1986],{"class":40},"\u003C!-- *ngIf -->\n",[34,1988,1989,1991,1993,1996,1998,2001,2004,2006],{"class":36,"line":44},[34,1990,815],{"class":181},[34,1992,1240],{"class":177},[34,1994,1995],{"class":47}," *ngIf",[34,1997,1301],{"class":181},[34,1999,2000],{"class":54},"\"isVisible\"",[34,2002,2003],{"class":181},">Visible\u003C/",[34,2005,1240],{"class":177},[34,2007,1248],{"class":181},[34,2009,2010,2012,2014,2016,2018,2021,2024,2026],{"class":36,"line":58},[34,2011,815],{"class":181},[34,2013,1240],{"class":177},[34,2015,1995],{"class":47},[34,2017,1301],{"class":181},[34,2019,2020],{"class":54},"\"user; else noUser\"",[34,2022,2023],{"class":181},">{{ user.name }}\u003C/",[34,2025,1240],{"class":177},[34,2027,1248],{"class":181},[34,2029,2030,2032,2035,2038,2041,2043,2046,2048,2051,2053],{"class":36,"line":65},[34,2031,815],{"class":181},[34,2033,2034],{"class":177},"ng-template",[34,2036,2037],{"class":47}," #noUser",[34,2039,2040],{"class":181},">\u003C",[34,2042,16],{"class":177},[34,2044,2045],{"class":181},">No user\u003C/",[34,2047,16],{"class":177},[34,2049,2050],{"class":181},">\u003C/",[34,2052,2034],{"class":177},[34,2054,1248],{"class":181},[34,2056,2057],{"class":36,"line":71},[34,2058,62],{"emptyLinePlaceholder":61},[34,2060,2061],{"class":36,"line":77},[34,2062,2063],{"class":40},"\u003C!-- *ngFor -->\n",[34,2065,2066,2068,2070,2073,2075,2078],{"class":36,"line":82},[34,2067,815],{"class":181},[34,2069,312],{"class":177},[34,2071,2072],{"class":47}," *ngFor",[34,2074,1301],{"class":181},[34,2076,2077],{"class":54},"\"let item of items; let i = index; trackBy: trackById\"",[34,2079,1248],{"class":181},[34,2081,2082],{"class":36,"line":88},[34,2083,2084],{"class":181},"  {{ i }}: {{ item.name }}\n",[34,2086,2087,2090,2092],{"class":36,"line":242},[34,2088,2089],{"class":181},"\u003C/",[34,2091,312],{"class":177},[34,2093,1248],{"class":181},[34,2095,2096],{"class":36,"line":250},[34,2097,62],{"emptyLinePlaceholder":61},[34,2099,2100],{"class":36,"line":263},[34,2101,2102],{"class":40},"\u003C!-- *ngSwitch -->\n",[34,2104,2105,2107,2109,2112,2114,2117],{"class":36,"line":275},[34,2106,815],{"class":181},[34,2108,1240],{"class":177},[34,2110,2111],{"class":47}," [ngSwitch]",[34,2113,1301],{"class":181},[34,2115,2116],{"class":54},"\"status\"",[34,2118,1248],{"class":181},[34,2120,2121,2123,2125,2128,2130,2133,2135,2137],{"class":36,"line":700},[34,2122,1181],{"class":181},[34,2124,16],{"class":177},[34,2126,2127],{"class":47}," *ngSwitchCase",[34,2129,1301],{"class":181},[34,2131,2132],{"class":54},"\"'active'\"",[34,2134,1307],{"class":181},[34,2136,16],{"class":177},[34,2138,1248],{"class":181},[34,2140,2141,2143,2145,2147,2149,2152,2154,2156],{"class":36,"line":706},[34,2142,1181],{"class":181},[34,2144,16],{"class":177},[34,2146,2127],{"class":47},[34,2148,1301],{"class":181},[34,2150,2151],{"class":54},"\"'inactive'\"",[34,2153,1336],{"class":181},[34,2155,16],{"class":177},[34,2157,1248],{"class":181},[34,2159,2160,2162,2164,2167,2169,2171],{"class":36,"line":715},[34,2161,1181],{"class":181},[34,2163,16],{"class":177},[34,2165,2166],{"class":47}," *ngSwitchDefault",[34,2168,1358],{"class":181},[34,2170,16],{"class":177},[34,2172,1248],{"class":181},[34,2174,2175,2177,2179],{"class":36,"line":725},[34,2176,2089],{"class":181},[34,2178,1240],{"class":177},[34,2180,1248],{"class":181},[34,2182,2183],{"class":36,"line":734},[34,2184,62],{"emptyLinePlaceholder":61},[34,2186,2187],{"class":36,"line":742},[34,2188,2189],{"class":40},"\u003C!-- ngClass and ngStyle -->\n",[34,2191,2192,2194,2196,2199,2201,2204,2206,2208],{"class":36,"line":748},[34,2193,815],{"class":181},[34,2195,1240],{"class":177},[34,2197,2198],{"class":47}," [ngClass]",[34,2200,1301],{"class":181},[34,2202,2203],{"class":54},"\"{ 'active': isActive, 'disabled': isDisabled }\"",[34,2205,2050],{"class":181},[34,2207,1240],{"class":177},[34,2209,1248],{"class":181},[34,2211,2212,2214,2216,2219,2221,2224,2226,2228],{"class":36,"line":754},[34,2213,815],{"class":181},[34,2215,1240],{"class":177},[34,2217,2218],{"class":47}," [ngStyle]",[34,2220,1301],{"class":181},[34,2222,2223],{"class":54},"\"{ 'color': textColor, 'font-size': fontSize + 'px' }\"",[34,2225,2050],{"class":181},[34,2227,1240],{"class":177},[34,2229,1248],{"class":181},[388,2231,1418],{},{"title":30,"searchDepth":44,"depth":44,"links":2233},[2234],{"id":1976,"depth":44,"text":1971},"Legacy Directives in Angular.",{},"/angular/legacy-directives",{"title":1971,"description":2235},"angular/legacy-directives",[980,573,982,983],"uk2AYN4KTH20J_z5Vt_f7vXls9YmMcacwSUefg-PEL8",{"id":2243,"title":2244,"body":2245,"date":402,"description":2551,"extension":404,"meta":2552,"navigation":61,"order":88,"path":2553,"seo":2554,"stem":2555,"subject":980,"tags":2556,"__hash__":2557},"topics/angular/lifecycle-hooks.md","Lifecycle Hooks",{"type":8,"value":2246,"toc":2548},[2247,2250,2545],[11,2248,2244],{"id":2249},"lifecycle-hooks",[25,2251,2253],{"className":571,"code":2252,"language":573,"meta":30,"style":30},"import { \n  Component, OnInit, OnDestroy, OnChanges, \n  AfterViewInit, SimpleChanges \n} from '@angular/core';\n\n@Component({\n  selector: 'app-lifecycle',\n  standalone: true,\n  template: `\u003Cp>{{ message }}\u003C/p>`\n})\nexport class LifecycleComponent implements OnInit, OnDestroy, OnChanges, AfterViewInit {\n  @Input() data: string = '';\n  message: string = '';\n  \n  // Called when input properties change\n  ngOnChanges(changes: SimpleChanges) {\n    console.log('Changes:', changes);\n  }\n  \n  // Called once after first ngOnChanges\n  ngOnInit() {\n    console.log('Component initialized');\n  }\n  \n  // Called after view is initialized\n  ngAfterViewInit() {\n    console.log('View initialized');\n  }\n  \n  // Called before component is destroyed\n  ngOnDestroy() {\n    console.log('Component destroyed');\n    // Clean up subscriptions, etc.\n  }\n}\n",[20,2254,2255,2262,2267,2272,2283,2287,2295,2304,2312,2319,2323,2355,2375,2390,2394,2399,2417,2433,2437,2441,2446,2453,2466,2470,2474,2479,2486,2499,2503,2507,2512,2519,2532,2537,2541],{"__ignoreMap":30},[34,2256,2257,2259],{"class":36,"line":37},[34,2258,581],{"class":580},[34,2260,2261],{"class":181}," { \n",[34,2263,2264],{"class":36,"line":44},[34,2265,2266],{"class":181},"  Component, OnInit, OnDestroy, OnChanges, \n",[34,2268,2269],{"class":36,"line":58},[34,2270,2271],{"class":181},"  AfterViewInit, SimpleChanges \n",[34,2273,2274,2277,2279,2281],{"class":36,"line":65},[34,2275,2276],{"class":181},"} ",[34,2278,587],{"class":580},[34,2280,590],{"class":54},[34,2282,593],{"class":181},[34,2284,2285],{"class":36,"line":71},[34,2286,62],{"emptyLinePlaceholder":61},[34,2288,2289,2291,2293],{"class":36,"line":77},[34,2290,607],{"class":181},[34,2292,610],{"class":47},[34,2294,613],{"class":181},[34,2296,2297,2299,2302],{"class":36,"line":82},[34,2298,618],{"class":181},[34,2300,2301],{"class":54},"'app-lifecycle'",[34,2303,624],{"class":181},[34,2305,2306,2308,2310],{"class":36,"line":88},[34,2307,629],{"class":181},[34,2309,632],{"class":50},[34,2311,624],{"class":181},[34,2313,2314,2316],{"class":36,"line":242},[34,2315,639],{"class":181},[34,2317,2318],{"class":54},"`\u003Cp>{{ message }}\u003C/p>`\n",[34,2320,2321],{"class":36,"line":250},[34,2322,647],{"class":181},[34,2324,2325,2327,2329,2332,2335,2338,2340,2343,2345,2348,2350,2353],{"class":36,"line":263},[34,2326,652],{"class":580},[34,2328,655],{"class":580},[34,2330,2331],{"class":47}," LifecycleComponent",[34,2333,2334],{"class":580}," implements",[34,2336,2337],{"class":47}," OnInit",[34,2339,1798],{"class":181},[34,2341,2342],{"class":47},"OnDestroy",[34,2344,1798],{"class":181},[34,2346,2347],{"class":47},"OnChanges",[34,2349,1798],{"class":181},[34,2351,2352],{"class":47},"AfterViewInit",[34,2354,661],{"class":181},[34,2356,2357,2359,2361,2363,2365,2367,2369,2371,2373],{"class":36,"line":275},[34,2358,666],{"class":181},[34,2360,669],{"class":47},[34,2362,672],{"class":181},[34,2364,1701],{"class":675},[34,2366,165],{"class":580},[34,2368,680],{"class":50},[34,2370,683],{"class":580},[34,2372,686],{"class":54},[34,2374,593],{"class":181},[34,2376,2377,2380,2382,2384,2386,2388],{"class":36,"line":700},[34,2378,2379],{"class":675},"  message",[34,2381,165],{"class":580},[34,2383,680],{"class":50},[34,2385,683],{"class":580},[34,2387,686],{"class":54},[34,2389,593],{"class":181},[34,2391,2392],{"class":36,"line":706},[34,2393,827],{"class":181},[34,2395,2396],{"class":36,"line":715},[34,2397,2398],{"class":40},"  // Called when input properties change\n",[34,2400,2401,2404,2406,2409,2411,2414],{"class":36,"line":725},[34,2402,2403],{"class":47},"  ngOnChanges",[34,2405,1607],{"class":181},[34,2407,2408],{"class":675},"changes",[34,2410,165],{"class":580},[34,2412,2413],{"class":47}," SimpleChanges",[34,2415,2416],{"class":181},") {\n",[34,2418,2419,2422,2425,2427,2430],{"class":36,"line":734},[34,2420,2421],{"class":181},"    console.",[34,2423,2424],{"class":47},"log",[34,2426,1607],{"class":181},[34,2428,2429],{"class":54},"'Changes:'",[34,2431,2432],{"class":181},", changes);\n",[34,2434,2435],{"class":36,"line":742},[34,2436,857],{"class":181},[34,2438,2439],{"class":36,"line":748},[34,2440,827],{"class":181},[34,2442,2443],{"class":36,"line":754},[34,2444,2445],{"class":40},"  // Called once after first ngOnChanges\n",[34,2447,2448,2451],{"class":36,"line":759},[34,2449,2450],{"class":47},"  ngOnInit",[34,2452,836],{"class":181},[34,2454,2455,2457,2459,2461,2464],{"class":36,"line":771},[34,2456,2421],{"class":181},[34,2458,2424],{"class":47},[34,2460,1607],{"class":181},[34,2462,2463],{"class":54},"'Component initialized'",[34,2465,1586],{"class":181},[34,2467,2468],{"class":36,"line":794},[34,2469,857],{"class":181},[34,2471,2472],{"class":36,"line":824},[34,2473,827],{"class":181},[34,2475,2476],{"class":36,"line":830},[34,2477,2478],{"class":40},"  // Called after view is initialized\n",[34,2480,2481,2484],{"class":36,"line":839},[34,2482,2483],{"class":47},"  ngAfterViewInit",[34,2485,836],{"class":181},[34,2487,2488,2490,2492,2494,2497],{"class":36,"line":854},[34,2489,2421],{"class":181},[34,2491,2424],{"class":47},[34,2493,1607],{"class":181},[34,2495,2496],{"class":54},"'View initialized'",[34,2498,1586],{"class":181},[34,2500,2501],{"class":36,"line":860},[34,2502,857],{"class":181},[34,2504,2505],{"class":36,"line":865},[34,2506,827],{"class":181},[34,2508,2509],{"class":36,"line":870},[34,2510,2511],{"class":40},"  // Called before component is destroyed\n",[34,2513,2514,2517],{"class":36,"line":876},[34,2515,2516],{"class":47},"  ngOnDestroy",[34,2518,836],{"class":181},[34,2520,2521,2523,2525,2527,2530],{"class":36,"line":885},[34,2522,2421],{"class":181},[34,2524,2424],{"class":47},[34,2526,1607],{"class":181},[34,2528,2529],{"class":54},"'Component destroyed'",[34,2531,1586],{"class":181},[34,2533,2534],{"class":36,"line":895},[34,2535,2536],{"class":40},"    // Clean up subscriptions, etc.\n",[34,2538,2539],{"class":36,"line":904},[34,2540,857],{"class":181},[34,2542,2543],{"class":36,"line":915},[34,2544,693],{"class":181},[388,2546,2547],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .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":30,"searchDepth":44,"depth":44,"links":2549},[2550],{"id":2249,"depth":44,"text":2244},"Lifecycle Hooks in Angular.",{},"/angular/lifecycle-hooks",{"title":2244,"description":2551},"angular/lifecycle-hooks",[980,573,982,983],"Xs3DT2_Q2m266Uy66EPtf_Ya7s79CdI4EgOY6jRMpys",{"id":2559,"title":2560,"body":2561,"date":2633,"description":2634,"extension":404,"meta":2635,"navigation":61,"order":37,"path":2636,"seo":2637,"stem":2638,"subject":980,"tags":2639,"__hash__":2640},"topics/angular/overview.md","Angular",{"type":8,"value":2562,"toc":2631},[2563],[309,2564,2565,2569,2575,2579,2583,2589,2595,2599,2605,2609,2615,2621,2625],{},[312,2566,2567],{},[145,2568,563],{"href":977},[312,2570,2571],{},[145,2572,2574],{"href":2573},"/angular/template-syntax","Template Syntax",[312,2576,2577],{},[145,2578,1154],{"href":1424},[312,2580,2581],{},[145,2582,1971],{"href":2237},[312,2584,2585],{},[145,2586,2588],{"href":2587},"/angular/services-dependency-injection","Services & Dependency Injection",[312,2590,2591],{},[145,2592,2594],{"href":2593},"/angular/signals-angular-16","Signals (Angular 16+)",[312,2596,2597],{},[145,2598,2244],{"href":2553},[312,2600,2601],{},[145,2602,2604],{"href":2603},"/angular/reactive-forms","Reactive Forms",[312,2606,2607],{},[145,2608,1431],{"href":1964},[312,2610,2611],{},[145,2612,2614],{"href":2613},"/angular/routing","Routing",[312,2616,2617],{},[145,2618,2620],{"href":2619},"/angular/pipes","Pipes",[312,2622,2623],{},[145,2624,987],{"href":1147},[312,2626,2627],{},[145,2628,2630],{"href":2629},"/angular/viewchild-viewchildren","ViewChild & ViewChildren",{"title":30,"searchDepth":44,"depth":44,"links":2632},[],"2026-02-26","Essential Angular syntax, components, services, and best practices for building web applications.",{},"/angular/overview",{"title":2560,"description":2634},"angular/overview",[980,573,982,983],"1SmZXoTy9yp6OO7JhSPPWhayxhabtyFgtWtkhTuXzQU",{"id":2642,"title":2620,"body":2643,"date":402,"description":2969,"extension":404,"meta":2970,"navigation":61,"order":275,"path":2619,"seo":2971,"stem":2972,"subject":980,"tags":2973,"__hash__":2974},"topics/angular/pipes.md",{"type":8,"value":2644,"toc":2966},[2645,2648,2963],[11,2646,2620],{"id":2647},"pipes",[25,2649,2651],{"className":571,"code":2650,"language":573,"meta":30,"style":30},"// Built-in pipes\n// In template:\n{{ value | uppercase }}\n{{ value | lowercase }}\n{{ date | date:'short' }}\n{{ date | date:'yyyy-MM-dd' }}\n{{ price | currency:'USD' }}\n{{ value | number:'1.2-2' }}\n{{ object | json }}\n{{ items | slice:0:5 }}\n{{ observable$ | async }}\n\n// Custom pipe\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'truncate',\n  standalone: true\n})\nexport class TruncatePipe implements PipeTransform {\n  transform(value: string, limit: number = 50): string {\n    if (value.length \u003C= limit) return value;\n    return value.substring(0, limit) + '...';\n  }\n}\n\n// Usage: {{ longText | truncate:100 }}\n",[20,2652,2653,2658,2663,2674,2683,2701,2716,2733,2749,2759,2781,2791,2795,2800,2813,2817,2826,2836,2842,2846,2862,2898,2921,2946,2950,2954,2958],{"__ignoreMap":30},[34,2654,2655],{"class":36,"line":37},[34,2656,2657],{"class":40},"// Built-in pipes\n",[34,2659,2660],{"class":36,"line":44},[34,2661,2662],{"class":40},"// In template:\n",[34,2664,2665,2668,2671],{"class":36,"line":58},[34,2666,2667],{"class":181},"{{ value ",[34,2669,2670],{"class":580},"|",[34,2672,2673],{"class":181}," uppercase }}\n",[34,2675,2676,2678,2680],{"class":36,"line":65},[34,2677,2667],{"class":181},[34,2679,2670],{"class":580},[34,2681,2682],{"class":181}," lowercase }}\n",[34,2684,2685,2688,2690,2693,2695,2698],{"class":36,"line":71},[34,2686,2687],{"class":181},"{{ date ",[34,2689,2670],{"class":580},[34,2691,2692],{"class":47}," date",[34,2694,165],{"class":181},[34,2696,2697],{"class":54},"'short'",[34,2699,2700],{"class":181}," }}\n",[34,2702,2703,2705,2707,2709,2711,2714],{"class":36,"line":77},[34,2704,2687],{"class":181},[34,2706,2670],{"class":580},[34,2708,2692],{"class":47},[34,2710,165],{"class":181},[34,2712,2713],{"class":54},"'yyyy-MM-dd'",[34,2715,2700],{"class":181},[34,2717,2718,2721,2723,2726,2728,2731],{"class":36,"line":82},[34,2719,2720],{"class":181},"{{ price ",[34,2722,2670],{"class":580},[34,2724,2725],{"class":47}," currency",[34,2727,165],{"class":181},[34,2729,2730],{"class":54},"'USD'",[34,2732,2700],{"class":181},[34,2734,2735,2737,2739,2742,2744,2747],{"class":36,"line":88},[34,2736,2667],{"class":181},[34,2738,2670],{"class":580},[34,2740,2741],{"class":47}," number",[34,2743,165],{"class":181},[34,2745,2746],{"class":54},"'1.2-2'",[34,2748,2700],{"class":181},[34,2750,2751,2754,2756],{"class":36,"line":242},[34,2752,2753],{"class":181},"{{ object ",[34,2755,2670],{"class":580},[34,2757,2758],{"class":181}," json }}\n",[34,2760,2761,2764,2766,2769,2771,2774,2776,2779],{"class":36,"line":250},[34,2762,2763],{"class":181},"{{ items ",[34,2765,2670],{"class":580},[34,2767,2768],{"class":47}," slice",[34,2770,165],{"class":181},[34,2772,2773],{"class":50},"0",[34,2775,165],{"class":181},[34,2777,2778],{"class":50},"5",[34,2780,2700],{"class":181},[34,2782,2783,2786,2788],{"class":36,"line":263},[34,2784,2785],{"class":181},"{{ observable$ ",[34,2787,2670],{"class":580},[34,2789,2790],{"class":181}," async }}\n",[34,2792,2793],{"class":36,"line":275},[34,2794,62],{"emptyLinePlaceholder":61},[34,2796,2797],{"class":36,"line":700},[34,2798,2799],{"class":40},"// Custom pipe\n",[34,2801,2802,2804,2807,2809,2811],{"class":36,"line":706},[34,2803,581],{"class":580},[34,2805,2806],{"class":181}," { Pipe, PipeTransform } ",[34,2808,587],{"class":580},[34,2810,590],{"class":54},[34,2812,593],{"class":181},[34,2814,2815],{"class":36,"line":715},[34,2816,62],{"emptyLinePlaceholder":61},[34,2818,2819,2821,2824],{"class":36,"line":725},[34,2820,607],{"class":181},[34,2822,2823],{"class":47},"Pipe",[34,2825,613],{"class":181},[34,2827,2828,2831,2834],{"class":36,"line":734},[34,2829,2830],{"class":181},"  name: ",[34,2832,2833],{"class":54},"'truncate'",[34,2835,624],{"class":181},[34,2837,2838,2840],{"class":36,"line":742},[34,2839,629],{"class":181},[34,2841,515],{"class":50},[34,2843,2844],{"class":36,"line":748},[34,2845,647],{"class":181},[34,2847,2848,2850,2852,2855,2857,2860],{"class":36,"line":754},[34,2849,652],{"class":580},[34,2851,655],{"class":580},[34,2853,2854],{"class":47}," TruncatePipe",[34,2856,2334],{"class":580},[34,2858,2859],{"class":47}," PipeTransform",[34,2861,661],{"class":181},[34,2863,2864,2867,2869,2872,2874,2876,2878,2881,2883,2885,2887,2890,2892,2894,2896],{"class":36,"line":759},[34,2865,2866],{"class":47},"  transform",[34,2868,1607],{"class":181},[34,2870,2871],{"class":675},"value",[34,2873,165],{"class":580},[34,2875,680],{"class":50},[34,2877,1798],{"class":181},[34,2879,2880],{"class":675},"limit",[34,2882,165],{"class":580},[34,2884,2741],{"class":50},[34,2886,683],{"class":580},[34,2888,2889],{"class":50}," 50",[34,2891,1617],{"class":181},[34,2893,165],{"class":580},[34,2895,680],{"class":50},[34,2897,661],{"class":181},[34,2899,2900,2903,2906,2909,2912,2915,2918],{"class":36,"line":771},[34,2901,2902],{"class":580},"    if",[34,2904,2905],{"class":181}," (value.",[34,2907,2908],{"class":50},"length",[34,2910,2911],{"class":580}," \u003C=",[34,2913,2914],{"class":181}," limit) ",[34,2916,2917],{"class":580},"return",[34,2919,2920],{"class":181}," value;\n",[34,2922,2923,2925,2928,2931,2933,2935,2938,2941,2944],{"class":36,"line":794},[34,2924,1564],{"class":580},[34,2926,2927],{"class":181}," value.",[34,2929,2930],{"class":47},"substring",[34,2932,1607],{"class":181},[34,2934,2773],{"class":50},[34,2936,2937],{"class":181},", limit) ",[34,2939,2940],{"class":580},"+",[34,2942,2943],{"class":54}," '...'",[34,2945,593],{"class":181},[34,2947,2948],{"class":36,"line":824},[34,2949,857],{"class":181},[34,2951,2952],{"class":36,"line":830},[34,2953,693],{"class":181},[34,2955,2956],{"class":36,"line":839},[34,2957,62],{"emptyLinePlaceholder":61},[34,2959,2960],{"class":36,"line":854},[34,2961,2962],{"class":40},"// Usage: {{ longText | truncate:100 }}\n",[388,2964,2965],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":2967},[2968],{"id":2647,"depth":44,"text":2620},"Pipes in Angular.",{},{"title":2620,"description":2969},"angular/pipes",[980,573,982,983],"Q2cCKNVhFPhMKjwMS4wxRXdBAwyDJj0t-9FdWxR3lQ0",{"id":2976,"title":2604,"body":2977,"date":402,"description":3244,"extension":404,"meta":3245,"navigation":61,"order":242,"path":2603,"seo":3246,"stem":3247,"subject":980,"tags":3248,"__hash__":3249},"topics/angular/reactive-forms.md",{"type":8,"value":2978,"toc":3241},[2979,2982,3238],[11,2980,2604],{"id":2981},"reactive-forms",[25,2983,2985],{"className":571,"code":2984,"language":573,"meta":30,"style":30},"import { Component } from '@angular/core';\nimport { FormGroup, FormControl, Validators, ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n  selector: 'app-form',\n  standalone: true,\n  imports: [ReactiveFormsModule],\n  template: `\n    \u003Cform [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\n      \u003Cinput formControlName=\"name\" placeholder=\"Name\">\n      @if (form.get('name')?.invalid && form.get('name')?.touched) {\n        \u003Cspan class=\"error\">Name is required\u003C/span>\n      }\n      \n      \u003Cinput formControlName=\"email\" placeholder=\"Email\">\n      \n      \u003Cbutton type=\"submit\" [disabled]=\"form.invalid\">Submit\u003C/button>\n    \u003C/form>\n  `\n})\nexport class FormComponent {\n  form = new FormGroup({\n    name: new FormControl('', [Validators.required, Validators.minLength(3)]),\n    email: new FormControl('', [Validators.required, Validators.email])\n  });\n  \n  onSubmit() {\n    if (this.form.valid) {\n      console.log(this.form.value);\n    }\n  }\n}\n",[20,2986,2987,3000,3014,3018,3026,3035,3043,3048,3054,3059,3064,3069,3074,3079,3084,3089,3093,3098,3103,3107,3111,3122,3136,3166,3182,3187,3191,3198,3211,3225,3230,3234],{"__ignoreMap":30},[34,2988,2989,2991,2994,2996,2998],{"class":36,"line":37},[34,2990,581],{"class":580},[34,2992,2993],{"class":181}," { Component } ",[34,2995,587],{"class":580},[34,2997,590],{"class":54},[34,2999,593],{"class":181},[34,3001,3002,3004,3007,3009,3012],{"class":36,"line":44},[34,3003,581],{"class":580},[34,3005,3006],{"class":181}," { FormGroup, FormControl, Validators, ReactiveFormsModule } ",[34,3008,587],{"class":580},[34,3010,3011],{"class":54}," '@angular/forms'",[34,3013,593],{"class":181},[34,3015,3016],{"class":36,"line":58},[34,3017,62],{"emptyLinePlaceholder":61},[34,3019,3020,3022,3024],{"class":36,"line":65},[34,3021,607],{"class":181},[34,3023,610],{"class":47},[34,3025,613],{"class":181},[34,3027,3028,3030,3033],{"class":36,"line":71},[34,3029,618],{"class":181},[34,3031,3032],{"class":54},"'app-form'",[34,3034,624],{"class":181},[34,3036,3037,3039,3041],{"class":36,"line":77},[34,3038,629],{"class":181},[34,3040,632],{"class":50},[34,3042,624],{"class":181},[34,3044,3045],{"class":36,"line":82},[34,3046,3047],{"class":181},"  imports: [ReactiveFormsModule],\n",[34,3049,3050,3052],{"class":36,"line":88},[34,3051,639],{"class":181},[34,3053,739],{"class":54},[34,3055,3056],{"class":36,"line":242},[34,3057,3058],{"class":54},"    \u003Cform [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\n",[34,3060,3061],{"class":36,"line":250},[34,3062,3063],{"class":54},"      \u003Cinput formControlName=\"name\" placeholder=\"Name\">\n",[34,3065,3066],{"class":36,"line":263},[34,3067,3068],{"class":54},"      @if (form.get('name')?.invalid && form.get('name')?.touched) {\n",[34,3070,3071],{"class":36,"line":275},[34,3072,3073],{"class":54},"        \u003Cspan class=\"error\">Name is required\u003C/span>\n",[34,3075,3076],{"class":36,"line":700},[34,3077,3078],{"class":54},"      }\n",[34,3080,3081],{"class":36,"line":706},[34,3082,3083],{"class":54},"      \n",[34,3085,3086],{"class":36,"line":715},[34,3087,3088],{"class":54},"      \u003Cinput formControlName=\"email\" placeholder=\"Email\">\n",[34,3090,3091],{"class":36,"line":725},[34,3092,3083],{"class":54},[34,3094,3095],{"class":36,"line":734},[34,3096,3097],{"class":54},"      \u003Cbutton type=\"submit\" [disabled]=\"form.invalid\">Submit\u003C/button>\n",[34,3099,3100],{"class":36,"line":742},[34,3101,3102],{"class":54},"    \u003C/form>\n",[34,3104,3105],{"class":36,"line":748},[34,3106,751],{"class":54},[34,3108,3109],{"class":36,"line":754},[34,3110,647],{"class":181},[34,3112,3113,3115,3117,3120],{"class":36,"line":759},[34,3114,652],{"class":580},[34,3116,655],{"class":580},[34,3118,3119],{"class":47}," FormComponent",[34,3121,661],{"class":181},[34,3123,3124,3127,3129,3131,3134],{"class":36,"line":771},[34,3125,3126],{"class":675},"  form",[34,3128,683],{"class":580},[34,3130,809],{"class":580},[34,3132,3133],{"class":47}," FormGroup",[34,3135,613],{"class":181},[34,3137,3138,3141,3144,3147,3149,3152,3155,3158,3160,3163],{"class":36,"line":794},[34,3139,3140],{"class":181},"    name: ",[34,3142,3143],{"class":580},"new",[34,3145,3146],{"class":47}," FormControl",[34,3148,1607],{"class":181},[34,3150,3151],{"class":54},"''",[34,3153,3154],{"class":181},", [Validators.required, Validators.",[34,3156,3157],{"class":47},"minLength",[34,3159,1607],{"class":181},[34,3161,3162],{"class":50},"3",[34,3164,3165],{"class":181},")]),\n",[34,3167,3168,3171,3173,3175,3177,3179],{"class":36,"line":824},[34,3169,3170],{"class":181},"    email: ",[34,3172,3143],{"class":580},[34,3174,3146],{"class":47},[34,3176,1607],{"class":181},[34,3178,3151],{"class":54},[34,3180,3181],{"class":181},", [Validators.required, Validators.email])\n",[34,3183,3184],{"class":36,"line":830},[34,3185,3186],{"class":181},"  });\n",[34,3188,3189],{"class":36,"line":839},[34,3190,827],{"class":181},[34,3192,3193,3196],{"class":36,"line":854},[34,3194,3195],{"class":47},"  onSubmit",[34,3197,836],{"class":181},[34,3199,3200,3202,3205,3208],{"class":36,"line":860},[34,3201,2902],{"class":580},[34,3203,3204],{"class":181}," (",[34,3206,3207],{"class":50},"this",[34,3209,3210],{"class":181},".form.valid) {\n",[34,3212,3213,3216,3218,3220,3222],{"class":36,"line":865},[34,3214,3215],{"class":181},"      console.",[34,3217,2424],{"class":47},[34,3219,1607],{"class":181},[34,3221,3207],{"class":50},[34,3223,3224],{"class":181},".form.value);\n",[34,3226,3227],{"class":36,"line":870},[34,3228,3229],{"class":181},"    }\n",[34,3231,3232],{"class":36,"line":876},[34,3233,857],{"class":181},[34,3235,3236],{"class":36,"line":885},[34,3237,693],{"class":181},[388,3239,3240],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":3242},[3243],{"id":2981,"depth":44,"text":2604},"Reactive Forms in Angular.",{},{"title":2604,"description":3244},"angular/reactive-forms",[980,573,982,983],"155qMa91yd--7pMPq5mt29zOORFXZHig63sBVpGWLsQ",{"id":3251,"title":2614,"body":3252,"date":402,"description":3726,"extension":404,"meta":3727,"navigation":61,"order":263,"path":2613,"seo":3728,"stem":3729,"subject":980,"tags":3730,"__hash__":3731},"topics/angular/routing.md",{"type":8,"value":3253,"toc":3723},[3254,3257,3720],[11,3255,2614],{"id":3256},"routing",[25,3258,3260],{"className":571,"code":3259,"language":573,"meta":30,"style":30},"// app.routes.ts\nimport { Routes } from '@angular/router';\n\nexport const routes: Routes = [\n  { path: '', component: HomeComponent },\n  { path: 'about', component: AboutComponent },\n  { path: 'users/:id', component: UserDetailComponent },\n  { \n    path: 'admin', \n    loadComponent: () => import('./admin/admin.component')\n      .then(m => m.AdminComponent),\n    canActivate: [AuthGuard]\n  },\n  { path: '**', component: NotFoundComponent }\n];\n\n// Using router in component\nimport { Component, inject } from '@angular/core';\nimport { Router, ActivatedRoute, RouterLink } from '@angular/router';\n\n@Component({\n  selector: 'app-nav',\n  standalone: true,\n  imports: [RouterLink],\n  template: `\n    \u003Ca routerLink=\"/\">Home\u003C/a>\n    \u003Ca routerLink=\"/about\">About\u003C/a>\n    \u003Ca [routerLink]=\"['/users', userId]\">User\u003C/a>\n    \u003Cbutton (click)=\"navigate()\">Go to About\u003C/button>\n  `\n})\nexport class NavComponent {\n  private router = inject(Router);\n  private route = inject(ActivatedRoute);\n  userId = 1;\n  \n  navigate() {\n    this.router.navigate(['/about']);\n  }\n  \n  ngOnInit() {\n    // Get route params\n    this.route.params.subscribe(params => {\n      console.log(params['id']);\n    });\n    \n    // Get query params\n    this.route.queryParams.subscribe(params => {\n      console.log(params['search']);\n    });\n  }\n}\n",[20,3261,3262,3267,3281,3285,3305,3315,3325,3335,3340,3351,3373,3391,3396,3401,3411,3416,3420,3425,3438,3451,3455,3463,3472,3480,3485,3491,3496,3501,3506,3511,3515,3519,3530,3544,3558,3570,3574,3581,3600,3604,3608,3614,3620,3640,3655,3661,3667,3673,3691,3705,3710,3715],{"__ignoreMap":30},[34,3263,3264],{"class":36,"line":37},[34,3265,3266],{"class":40},"// app.routes.ts\n",[34,3268,3269,3271,3274,3276,3279],{"class":36,"line":44},[34,3270,581],{"class":580},[34,3272,3273],{"class":181}," { Routes } ",[34,3275,587],{"class":580},[34,3277,3278],{"class":54}," '@angular/router'",[34,3280,593],{"class":181},[34,3282,3283],{"class":36,"line":58},[34,3284,62],{"emptyLinePlaceholder":61},[34,3286,3287,3289,3292,3295,3297,3300,3302],{"class":36,"line":65},[34,3288,652],{"class":580},[34,3290,3291],{"class":580}," const",[34,3293,3294],{"class":50}," routes",[34,3296,165],{"class":580},[34,3298,3299],{"class":47}," Routes",[34,3301,683],{"class":580},[34,3303,3304],{"class":181}," [\n",[34,3306,3307,3310,3312],{"class":36,"line":71},[34,3308,3309],{"class":181},"  { path: ",[34,3311,3151],{"class":54},[34,3313,3314],{"class":181},", component: HomeComponent },\n",[34,3316,3317,3319,3322],{"class":36,"line":77},[34,3318,3309],{"class":181},[34,3320,3321],{"class":54},"'about'",[34,3323,3324],{"class":181},", component: AboutComponent },\n",[34,3326,3327,3329,3332],{"class":36,"line":82},[34,3328,3309],{"class":181},[34,3330,3331],{"class":54},"'users/:id'",[34,3333,3334],{"class":181},", component: UserDetailComponent },\n",[34,3336,3337],{"class":36,"line":88},[34,3338,3339],{"class":181},"  { \n",[34,3341,3342,3345,3348],{"class":36,"line":242},[34,3343,3344],{"class":181},"    path: ",[34,3346,3347],{"class":54},"'admin'",[34,3349,3350],{"class":181},", \n",[34,3352,3353,3356,3359,3362,3365,3367,3370],{"class":36,"line":250},[34,3354,3355],{"class":47},"    loadComponent",[34,3357,3358],{"class":181},": () ",[34,3360,3361],{"class":580},"=>",[34,3363,3364],{"class":580}," import",[34,3366,1607],{"class":181},[34,3368,3369],{"class":54},"'./admin/admin.component'",[34,3371,3372],{"class":181},")\n",[34,3374,3375,3378,3381,3383,3386,3388],{"class":36,"line":263},[34,3376,3377],{"class":181},"      .",[34,3379,3380],{"class":47},"then",[34,3382,1607],{"class":181},[34,3384,3385],{"class":675},"m",[34,3387,1895],{"class":580},[34,3389,3390],{"class":181}," m.AdminComponent),\n",[34,3392,3393],{"class":36,"line":275},[34,3394,3395],{"class":181},"    canActivate: [AuthGuard]\n",[34,3397,3398],{"class":36,"line":700},[34,3399,3400],{"class":181},"  },\n",[34,3402,3403,3405,3408],{"class":36,"line":706},[34,3404,3309],{"class":181},[34,3406,3407],{"class":54},"'**'",[34,3409,3410],{"class":181},", component: NotFoundComponent }\n",[34,3412,3413],{"class":36,"line":715},[34,3414,3415],{"class":181},"];\n",[34,3417,3418],{"class":36,"line":725},[34,3419,62],{"emptyLinePlaceholder":61},[34,3421,3422],{"class":36,"line":734},[34,3423,3424],{"class":40},"// Using router in component\n",[34,3426,3427,3429,3432,3434,3436],{"class":36,"line":742},[34,3428,581],{"class":580},[34,3430,3431],{"class":181}," { Component, inject } ",[34,3433,587],{"class":580},[34,3435,590],{"class":54},[34,3437,593],{"class":181},[34,3439,3440,3442,3445,3447,3449],{"class":36,"line":748},[34,3441,581],{"class":580},[34,3443,3444],{"class":181}," { Router, ActivatedRoute, RouterLink } ",[34,3446,587],{"class":580},[34,3448,3278],{"class":54},[34,3450,593],{"class":181},[34,3452,3453],{"class":36,"line":754},[34,3454,62],{"emptyLinePlaceholder":61},[34,3456,3457,3459,3461],{"class":36,"line":759},[34,3458,607],{"class":181},[34,3460,610],{"class":47},[34,3462,613],{"class":181},[34,3464,3465,3467,3470],{"class":36,"line":771},[34,3466,618],{"class":181},[34,3468,3469],{"class":54},"'app-nav'",[34,3471,624],{"class":181},[34,3473,3474,3476,3478],{"class":36,"line":794},[34,3475,629],{"class":181},[34,3477,632],{"class":50},[34,3479,624],{"class":181},[34,3481,3482],{"class":36,"line":824},[34,3483,3484],{"class":181},"  imports: [RouterLink],\n",[34,3486,3487,3489],{"class":36,"line":830},[34,3488,639],{"class":181},[34,3490,739],{"class":54},[34,3492,3493],{"class":36,"line":839},[34,3494,3495],{"class":54},"    \u003Ca routerLink=\"/\">Home\u003C/a>\n",[34,3497,3498],{"class":36,"line":854},[34,3499,3500],{"class":54},"    \u003Ca routerLink=\"/about\">About\u003C/a>\n",[34,3502,3503],{"class":36,"line":860},[34,3504,3505],{"class":54},"    \u003Ca [routerLink]=\"['/users', userId]\">User\u003C/a>\n",[34,3507,3508],{"class":36,"line":865},[34,3509,3510],{"class":54},"    \u003Cbutton (click)=\"navigate()\">Go to About\u003C/button>\n",[34,3512,3513],{"class":36,"line":870},[34,3514,751],{"class":54},[34,3516,3517],{"class":36,"line":876},[34,3518,647],{"class":181},[34,3520,3521,3523,3525,3528],{"class":36,"line":885},[34,3522,652],{"class":580},[34,3524,655],{"class":580},[34,3526,3527],{"class":47}," NavComponent",[34,3529,661],{"class":181},[34,3531,3532,3534,3537,3539,3541],{"class":36,"line":895},[34,3533,1518],{"class":580},[34,3535,3536],{"class":675}," router",[34,3538,683],{"class":580},[34,3540,1526],{"class":47},[34,3542,3543],{"class":181},"(Router);\n",[34,3545,3546,3548,3551,3553,3555],{"class":36,"line":904},[34,3547,1518],{"class":580},[34,3549,3550],{"class":675}," route",[34,3552,683],{"class":580},[34,3554,1526],{"class":47},[34,3556,3557],{"class":181},"(ActivatedRoute);\n",[34,3559,3560,3563,3565,3568],{"class":36,"line":915},[34,3561,3562],{"class":675},"  userId",[34,3564,683],{"class":580},[34,3566,3567],{"class":50}," 1",[34,3569,593],{"class":181},[34,3571,3572],{"class":36,"line":927},[34,3573,827],{"class":181},[34,3575,3576,3579],{"class":36,"line":932},[34,3577,3578],{"class":47},"  navigate",[34,3580,836],{"class":181},[34,3582,3583,3585,3588,3591,3594,3597],{"class":36,"line":944},[34,3584,842],{"class":50},[34,3586,3587],{"class":181},".router.",[34,3589,3590],{"class":47},"navigate",[34,3592,3593],{"class":181},"([",[34,3595,3596],{"class":54},"'/about'",[34,3598,3599],{"class":181},"]);\n",[34,3601,3602],{"class":36,"line":966},[34,3603,857],{"class":181},[34,3605,3606],{"class":36,"line":1948},[34,3607,827],{"class":181},[34,3609,3610,3612],{"class":36,"line":1953},[34,3611,2450],{"class":47},[34,3613,836],{"class":181},[34,3615,3617],{"class":36,"line":3616},42,[34,3618,3619],{"class":40},"    // Get route params\n",[34,3621,3623,3625,3628,3631,3633,3636,3638],{"class":36,"line":3622},43,[34,3624,842],{"class":50},[34,3626,3627],{"class":181},".route.params.",[34,3629,3630],{"class":47},"subscribe",[34,3632,1607],{"class":181},[34,3634,3635],{"class":675},"params",[34,3637,1895],{"class":580},[34,3639,661],{"class":181},[34,3641,3643,3645,3647,3650,3653],{"class":36,"line":3642},44,[34,3644,3215],{"class":181},[34,3646,2424],{"class":47},[34,3648,3649],{"class":181},"(params[",[34,3651,3652],{"class":54},"'id'",[34,3654,3599],{"class":181},[34,3656,3658],{"class":36,"line":3657},45,[34,3659,3660],{"class":181},"    });\n",[34,3662,3664],{"class":36,"line":3663},46,[34,3665,3666],{"class":181},"    \n",[34,3668,3670],{"class":36,"line":3669},47,[34,3671,3672],{"class":40},"    // Get query params\n",[34,3674,3676,3678,3681,3683,3685,3687,3689],{"class":36,"line":3675},48,[34,3677,842],{"class":50},[34,3679,3680],{"class":181},".route.queryParams.",[34,3682,3630],{"class":47},[34,3684,1607],{"class":181},[34,3686,3635],{"class":675},[34,3688,1895],{"class":580},[34,3690,661],{"class":181},[34,3692,3694,3696,3698,3700,3703],{"class":36,"line":3693},49,[34,3695,3215],{"class":181},[34,3697,2424],{"class":47},[34,3699,3649],{"class":181},[34,3701,3702],{"class":54},"'search'",[34,3704,3599],{"class":181},[34,3706,3708],{"class":36,"line":3707},50,[34,3709,3660],{"class":181},[34,3711,3713],{"class":36,"line":3712},51,[34,3714,857],{"class":181},[34,3716,3718],{"class":36,"line":3717},52,[34,3719,693],{"class":181},[388,3721,3722],{},"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}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":30,"searchDepth":44,"depth":44,"links":3724},[3725],{"id":3256,"depth":44,"text":2614},"Routing in Angular.",{},{"title":2614,"description":3726},"angular/routing",[980,573,982,983],"7IDWGf58no7CSp78HGzpHcTPhExykkByW93QaSBfkGc",{"id":3733,"title":2588,"body":3734,"date":402,"description":4133,"extension":404,"meta":4134,"navigation":61,"order":77,"path":2587,"seo":4135,"stem":4136,"subject":980,"tags":4137,"__hash__":4138},"topics/angular/services-dependency-injection.md",{"type":8,"value":3735,"toc":4130},[3736,3739,4127],[11,3737,2588],{"id":3738},"services-dependency-injection",[25,3740,3742],{"className":571,"code":3741,"language":573,"meta":30,"style":30},"import { Injectable, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\n// Injectable service\n@Injectable({\n  providedIn: 'root'\n})\nexport class UserService {\n  private http = inject(HttpClient);\n  private apiUrl = '/api/users';\n  \n  getUsers() {\n    return this.http.get\u003CUser[]>(this.apiUrl);\n  }\n  \n  getUser(id: number) {\n    return this.http.get\u003CUser>(`${this.apiUrl}/${id}`);\n  }\n  \n  createUser(user: User) {\n    return this.http.post\u003CUser>(this.apiUrl, user);\n  }\n}\n\n// Using service in component\n@Component({\n  selector: 'app-users',\n  standalone: true,\n  template: `...`\n})\nexport class UsersComponent {\n  private userService = inject(UserService);\n  users: User[] = [];\n  \n  ngOnInit() {\n    this.userService.getUsers().subscribe(users => {\n      this.users = users;\n    });\n  }\n}\n",[20,3743,3744,3756,3769,3773,3778,3786,3794,3798,3809,3821,3835,3839,3846,3868,3872,3876,3892,3928,3932,3936,3953,3974,3978,3982,3986,3991,3999,4008,4016,4023,4027,4038,4052,4069,4073,4079,4102,4115,4119,4123],{"__ignoreMap":30},[34,3745,3746,3748,3750,3752,3754],{"class":36,"line":37},[34,3747,581],{"class":580},[34,3749,1448],{"class":181},[34,3751,587],{"class":580},[34,3753,590],{"class":54},[34,3755,593],{"class":181},[34,3757,3758,3760,3763,3765,3767],{"class":36,"line":44},[34,3759,581],{"class":580},[34,3761,3762],{"class":181}," { HttpClient } ",[34,3764,587],{"class":580},[34,3766,1466],{"class":54},[34,3768,593],{"class":181},[34,3770,3771],{"class":36,"line":58},[34,3772,62],{"emptyLinePlaceholder":61},[34,3774,3775],{"class":36,"line":65},[34,3776,3777],{"class":40},"// Injectable service\n",[34,3779,3780,3782,3784],{"class":36,"line":71},[34,3781,607],{"class":181},[34,3783,1493],{"class":47},[34,3785,613],{"class":181},[34,3787,3788,3791],{"class":36,"line":77},[34,3789,3790],{"class":181},"  providedIn: ",[34,3792,3793],{"class":54},"'root'\n",[34,3795,3796],{"class":36,"line":82},[34,3797,647],{"class":181},[34,3799,3800,3802,3804,3807],{"class":36,"line":88},[34,3801,652],{"class":580},[34,3803,655],{"class":580},[34,3805,3806],{"class":47}," UserService",[34,3808,661],{"class":181},[34,3810,3811,3813,3815,3817,3819],{"class":36,"line":242},[34,3812,1518],{"class":580},[34,3814,1521],{"class":675},[34,3816,683],{"class":580},[34,3818,1526],{"class":47},[34,3820,1529],{"class":181},[34,3822,3823,3825,3828,3830,3833],{"class":36,"line":250},[34,3824,1518],{"class":580},[34,3826,3827],{"class":675}," apiUrl",[34,3829,683],{"class":580},[34,3831,3832],{"class":54}," '/api/users'",[34,3834,593],{"class":181},[34,3836,3837],{"class":36,"line":263},[34,3838,827],{"class":181},[34,3840,3841,3844],{"class":36,"line":275},[34,3842,3843],{"class":47},"  getUsers",[34,3845,836],{"class":181},[34,3847,3848,3850,3852,3854,3856,3858,3861,3863,3865],{"class":36,"line":700},[34,3849,1564],{"class":580},[34,3851,1567],{"class":50},[34,3853,1570],{"class":181},[34,3855,1573],{"class":47},[34,3857,815],{"class":181},[34,3859,3860],{"class":47},"User",[34,3862,1580],{"class":181},[34,3864,3207],{"class":50},[34,3866,3867],{"class":181},".apiUrl);\n",[34,3869,3870],{"class":36,"line":706},[34,3871,857],{"class":181},[34,3873,3874],{"class":36,"line":715},[34,3875,827],{"class":181},[34,3877,3878,3881,3883,3886,3888,3890],{"class":36,"line":725},[34,3879,3880],{"class":47},"  getUser",[34,3882,1607],{"class":181},[34,3884,3885],{"class":675},"id",[34,3887,165],{"class":580},[34,3889,2741],{"class":50},[34,3891,2416],{"class":181},[34,3893,3894,3896,3898,3900,3902,3904,3906,3908,3911,3913,3915,3918,3921,3923,3926],{"class":36,"line":734},[34,3895,1564],{"class":580},[34,3897,1567],{"class":50},[34,3899,1570],{"class":181},[34,3901,1573],{"class":47},[34,3903,815],{"class":181},[34,3905,3860],{"class":47},[34,3907,1737],{"class":181},[34,3909,3910],{"class":54},"`${",[34,3912,3207],{"class":50},[34,3914,151],{"class":54},[34,3916,3917],{"class":181},"apiUrl",[34,3919,3920],{"class":54},"}/${",[34,3922,3885],{"class":181},[34,3924,3925],{"class":54},"}`",[34,3927,1586],{"class":181},[34,3929,3930],{"class":36,"line":742},[34,3931,857],{"class":181},[34,3933,3934],{"class":36,"line":748},[34,3935,827],{"class":181},[34,3937,3938,3941,3943,3946,3948,3951],{"class":36,"line":754},[34,3939,3940],{"class":47},"  createUser",[34,3942,1607],{"class":181},[34,3944,3945],{"class":675},"user",[34,3947,165],{"class":580},[34,3949,3950],{"class":47}," User",[34,3952,2416],{"class":181},[34,3954,3955,3957,3959,3961,3963,3965,3967,3969,3971],{"class":36,"line":759},[34,3956,1564],{"class":580},[34,3958,1567],{"class":50},[34,3960,1570],{"class":181},[34,3962,1730],{"class":47},[34,3964,815],{"class":181},[34,3966,3860],{"class":47},[34,3968,1737],{"class":181},[34,3970,3207],{"class":50},[34,3972,3973],{"class":181},".apiUrl, user);\n",[34,3975,3976],{"class":36,"line":771},[34,3977,857],{"class":181},[34,3979,3980],{"class":36,"line":794},[34,3981,693],{"class":181},[34,3983,3984],{"class":36,"line":824},[34,3985,62],{"emptyLinePlaceholder":61},[34,3987,3988],{"class":36,"line":830},[34,3989,3990],{"class":40},"// Using service in component\n",[34,3992,3993,3995,3997],{"class":36,"line":839},[34,3994,607],{"class":181},[34,3996,610],{"class":47},[34,3998,613],{"class":181},[34,4000,4001,4003,4006],{"class":36,"line":854},[34,4002,618],{"class":181},[34,4004,4005],{"class":54},"'app-users'",[34,4007,624],{"class":181},[34,4009,4010,4012,4014],{"class":36,"line":860},[34,4011,629],{"class":181},[34,4013,632],{"class":50},[34,4015,624],{"class":181},[34,4017,4018,4020],{"class":36,"line":865},[34,4019,639],{"class":181},[34,4021,4022],{"class":54},"`...`\n",[34,4024,4025],{"class":36,"line":870},[34,4026,647],{"class":181},[34,4028,4029,4031,4033,4036],{"class":36,"line":876},[34,4030,652],{"class":580},[34,4032,655],{"class":580},[34,4034,4035],{"class":47}," UsersComponent",[34,4037,661],{"class":181},[34,4039,4040,4042,4045,4047,4049],{"class":36,"line":885},[34,4041,1518],{"class":580},[34,4043,4044],{"class":675}," userService",[34,4046,683],{"class":580},[34,4048,1526],{"class":47},[34,4050,4051],{"class":181},"(UserService);\n",[34,4053,4054,4057,4059,4061,4064,4066],{"class":36,"line":895},[34,4055,4056],{"class":675},"  users",[34,4058,165],{"class":580},[34,4060,3950],{"class":47},[34,4062,4063],{"class":181},"[] ",[34,4065,1301],{"class":580},[34,4067,4068],{"class":181}," [];\n",[34,4070,4071],{"class":36,"line":904},[34,4072,827],{"class":181},[34,4074,4075,4077],{"class":36,"line":915},[34,4076,2450],{"class":47},[34,4078,836],{"class":181},[34,4080,4081,4083,4086,4089,4091,4093,4095,4098,4100],{"class":36,"line":927},[34,4082,842],{"class":50},[34,4084,4085],{"class":181},".userService.",[34,4087,4088],{"class":47},"getUsers",[34,4090,1645],{"class":181},[34,4092,3630],{"class":47},[34,4094,1607],{"class":181},[34,4096,4097],{"class":675},"users",[34,4099,1895],{"class":580},[34,4101,661],{"class":181},[34,4103,4104,4107,4110,4112],{"class":36,"line":932},[34,4105,4106],{"class":50},"      this",[34,4108,4109],{"class":181},".users ",[34,4111,1301],{"class":580},[34,4113,4114],{"class":181}," users;\n",[34,4116,4117],{"class":36,"line":944},[34,4118,3660],{"class":181},[34,4120,4121],{"class":36,"line":966},[34,4122,857],{"class":181},[34,4124,4125],{"class":36,"line":1948},[34,4126,693],{"class":181},[388,4128,4129],{},"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 .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 .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 .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":30,"searchDepth":44,"depth":44,"links":4131},[4132],{"id":3738,"depth":44,"text":2588},"Services & Dependency Injection in Angular.",{},{"title":2588,"description":4133},"angular/services-dependency-injection",[980,573,982,983],"V9lXGG-wN58l1UnrJdQFl3XC1E3jDPs18hX0953htMs",{"id":4140,"title":2594,"body":4141,"date":402,"description":4408,"extension":404,"meta":4409,"navigation":61,"order":82,"path":2593,"seo":4410,"stem":4411,"subject":980,"tags":4412,"__hash__":4413},"topics/angular/signals-angular-16.md",{"type":8,"value":4142,"toc":4405},[4143,4146,4402],[11,4144,2594],{"id":4145},"signals-angular-16",[25,4147,4149],{"className":571,"code":4148,"language":573,"meta":30,"style":30},"import { Component, signal, computed, effect } from '@angular/core';\n\n@Component({\n  selector: 'app-counter',\n  standalone: true,\n  template: `\n    \u003Cp>Count: {{ count() }}\u003C/p>\n    \u003Cp>Double: {{ doubleCount() }}\u003C/p>\n    \u003Cbutton (click)=\"increment()\">+\u003C/button>\n  `\n})\nexport class CounterComponent {\n  // Writable signal\n  count = signal(0);\n  \n  // Computed signal\n  doubleCount = computed(() => this.count() * 2);\n  \n  constructor() {\n    // Effect runs when signals change\n    effect(() => {\n      console.log('Count changed:', this.count());\n    });\n  }\n  \n  increment() {\n    this.count.update(c => c + 1);\n    // Or: this.count.set(this.count() + 1);\n  }\n}\n",[20,4150,4151,4164,4168,4176,4185,4193,4199,4204,4209,4214,4218,4222,4233,4238,4254,4258,4263,4295,4299,4306,4311,4322,4344,4348,4352,4356,4363,4389,4394,4398],{"__ignoreMap":30},[34,4152,4153,4155,4158,4160,4162],{"class":36,"line":37},[34,4154,581],{"class":580},[34,4156,4157],{"class":181}," { Component, signal, computed, effect } ",[34,4159,587],{"class":580},[34,4161,590],{"class":54},[34,4163,593],{"class":181},[34,4165,4166],{"class":36,"line":44},[34,4167,62],{"emptyLinePlaceholder":61},[34,4169,4170,4172,4174],{"class":36,"line":58},[34,4171,607],{"class":181},[34,4173,610],{"class":47},[34,4175,613],{"class":181},[34,4177,4178,4180,4183],{"class":36,"line":65},[34,4179,618],{"class":181},[34,4181,4182],{"class":54},"'app-counter'",[34,4184,624],{"class":181},[34,4186,4187,4189,4191],{"class":36,"line":71},[34,4188,629],{"class":181},[34,4190,632],{"class":50},[34,4192,624],{"class":181},[34,4194,4195,4197],{"class":36,"line":77},[34,4196,639],{"class":181},[34,4198,739],{"class":54},[34,4200,4201],{"class":36,"line":82},[34,4202,4203],{"class":54},"    \u003Cp>Count: {{ count() }}\u003C/p>\n",[34,4205,4206],{"class":36,"line":88},[34,4207,4208],{"class":54},"    \u003Cp>Double: {{ doubleCount() }}\u003C/p>\n",[34,4210,4211],{"class":36,"line":242},[34,4212,4213],{"class":54},"    \u003Cbutton (click)=\"increment()\">+\u003C/button>\n",[34,4215,4216],{"class":36,"line":250},[34,4217,751],{"class":54},[34,4219,4220],{"class":36,"line":263},[34,4221,647],{"class":181},[34,4223,4224,4226,4228,4231],{"class":36,"line":275},[34,4225,652],{"class":580},[34,4227,655],{"class":580},[34,4229,4230],{"class":47}," CounterComponent",[34,4232,661],{"class":181},[34,4234,4235],{"class":36,"line":700},[34,4236,4237],{"class":40},"  // Writable signal\n",[34,4239,4240,4243,4245,4248,4250,4252],{"class":36,"line":706},[34,4241,4242],{"class":675},"  count",[34,4244,683],{"class":580},[34,4246,4247],{"class":47}," signal",[34,4249,1607],{"class":181},[34,4251,2773],{"class":50},[34,4253,1586],{"class":181},[34,4255,4256],{"class":36,"line":715},[34,4257,827],{"class":181},[34,4259,4260],{"class":36,"line":725},[34,4261,4262],{"class":40},"  // Computed signal\n",[34,4264,4265,4268,4270,4273,4276,4278,4280,4282,4285,4287,4290,4293],{"class":36,"line":734},[34,4266,4267],{"class":675},"  doubleCount",[34,4269,683],{"class":580},[34,4271,4272],{"class":47}," computed",[34,4274,4275],{"class":181},"(() ",[34,4277,3361],{"class":580},[34,4279,1567],{"class":50},[34,4281,151],{"class":181},[34,4283,4284],{"class":47},"count",[34,4286,672],{"class":181},[34,4288,4289],{"class":580},"*",[34,4291,4292],{"class":50}," 2",[34,4294,1586],{"class":181},[34,4296,4297],{"class":36,"line":742},[34,4298,827],{"class":181},[34,4300,4301,4304],{"class":36,"line":748},[34,4302,4303],{"class":580},"  constructor",[34,4305,836],{"class":181},[34,4307,4308],{"class":36,"line":754},[34,4309,4310],{"class":40},"    // Effect runs when signals change\n",[34,4312,4313,4316,4318,4320],{"class":36,"line":759},[34,4314,4315],{"class":47},"    effect",[34,4317,4275],{"class":181},[34,4319,3361],{"class":580},[34,4321,661],{"class":181},[34,4323,4324,4326,4328,4330,4333,4335,4337,4339,4341],{"class":36,"line":771},[34,4325,3215],{"class":181},[34,4327,2424],{"class":47},[34,4329,1607],{"class":181},[34,4331,4332],{"class":54},"'Count changed:'",[34,4334,1798],{"class":181},[34,4336,3207],{"class":50},[34,4338,151],{"class":181},[34,4340,4284],{"class":47},[34,4342,4343],{"class":181},"());\n",[34,4345,4346],{"class":36,"line":794},[34,4347,3660],{"class":181},[34,4349,4350],{"class":36,"line":824},[34,4351,857],{"class":181},[34,4353,4354],{"class":36,"line":830},[34,4355,827],{"class":181},[34,4357,4358,4361],{"class":36,"line":839},[34,4359,4360],{"class":47},"  increment",[34,4362,836],{"class":181},[34,4364,4365,4367,4370,4373,4375,4378,4380,4383,4385,4387],{"class":36,"line":854},[34,4366,842],{"class":50},[34,4368,4369],{"class":181},".count.",[34,4371,4372],{"class":47},"update",[34,4374,1607],{"class":181},[34,4376,4377],{"class":675},"c",[34,4379,1895],{"class":580},[34,4381,4382],{"class":181}," c ",[34,4384,2940],{"class":580},[34,4386,3567],{"class":50},[34,4388,1586],{"class":181},[34,4390,4391],{"class":36,"line":860},[34,4392,4393],{"class":40},"    // Or: this.count.set(this.count() + 1);\n",[34,4395,4396],{"class":36,"line":865},[34,4397,857],{"class":181},[34,4399,4400],{"class":36,"line":870},[34,4401,693],{"class":181},[388,4403,4404],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":4406},[4407],{"id":4145,"depth":44,"text":2594},"Signals (Angular 16+) in Angular.",{},{"title":2594,"description":4408},"angular/signals-angular-16",[980,573,982,983],"crqoKsfzjDsN9mhXYss_Q2prOh8vNq-b4tBj-lnPotw",{"id":4415,"title":2574,"body":4416,"date":402,"description":4698,"extension":404,"meta":4699,"navigation":61,"order":58,"path":2573,"seo":4700,"stem":4701,"subject":980,"tags":4702,"__hash__":4703},"topics/angular/template-syntax.md",{"type":8,"value":4417,"toc":4695},[4418,4421,4693],[11,4419,2574],{"id":4420},"template-syntax",[25,4422,4424],{"className":1162,"code":4423,"language":1164,"meta":30,"style":30},"\u003C!-- Interpolation -->\n\u003Cp>{{ message }}\u003C/p>\n\u003Cp>{{ user.name }}\u003C/p>\n\u003Cp>{{ getValue() }}\u003C/p>\n\n\u003C!-- Property binding -->\n\u003Cimg [src]=\"imageUrl\" [alt]=\"imageAlt\">\n\u003Cbutton [disabled]=\"isDisabled\">Click\u003C/button>\n\u003Cdiv [class.active]=\"isActive\">\u003C/div>\n\u003Cdiv [style.color]=\"textColor\">\u003C/div>\n\n\u003C!-- Event binding -->\n\u003Cbutton (click)=\"handleClick()\">Click\u003C/button>\n\u003Cinput (input)=\"onInput($event)\">\n\u003Cform (submit)=\"onSubmit($event)\">\n\n\u003C!-- Two-way binding -->\n\u003Cinput [(ngModel)]=\"name\">\n\n\u003C!-- Template reference -->\n\u003Cinput #nameInput>\n\u003Cbutton (click)=\"logValue(nameInput.value)\">Log\u003C/button>\n",[20,4425,4426,4431,4444,4456,4469,4473,4478,4503,4525,4545,4565,4569,4574,4594,4611,4628,4632,4637,4653,4657,4662,4673],{"__ignoreMap":30},[34,4427,4428],{"class":36,"line":37},[34,4429,4430],{"class":40},"\u003C!-- Interpolation -->\n",[34,4432,4433,4435,4437,4440,4442],{"class":36,"line":44},[34,4434,815],{"class":181},[34,4436,16],{"class":177},[34,4438,4439],{"class":181},">{{ message }}\u003C/",[34,4441,16],{"class":177},[34,4443,1248],{"class":181},[34,4445,4446,4448,4450,4452,4454],{"class":36,"line":58},[34,4447,815],{"class":181},[34,4449,16],{"class":177},[34,4451,2023],{"class":181},[34,4453,16],{"class":177},[34,4455,1248],{"class":181},[34,4457,4458,4460,4462,4465,4467],{"class":36,"line":65},[34,4459,815],{"class":181},[34,4461,16],{"class":177},[34,4463,4464],{"class":181},">{{ getValue() }}\u003C/",[34,4466,16],{"class":177},[34,4468,1248],{"class":181},[34,4470,4471],{"class":36,"line":71},[34,4472,62],{"emptyLinePlaceholder":61},[34,4474,4475],{"class":36,"line":77},[34,4476,4477],{"class":40},"\u003C!-- Property binding -->\n",[34,4479,4480,4482,4485,4488,4490,4493,4496,4498,4501],{"class":36,"line":82},[34,4481,815],{"class":181},[34,4483,4484],{"class":177},"img",[34,4486,4487],{"class":47}," [src]",[34,4489,1301],{"class":181},[34,4491,4492],{"class":54},"\"imageUrl\"",[34,4494,4495],{"class":47}," [alt]",[34,4497,1301],{"class":181},[34,4499,4500],{"class":54},"\"imageAlt\"",[34,4502,1248],{"class":181},[34,4504,4505,4507,4510,4513,4515,4518,4521,4523],{"class":36,"line":88},[34,4506,815],{"class":181},[34,4508,4509],{"class":177},"button",[34,4511,4512],{"class":47}," [disabled]",[34,4514,1301],{"class":181},[34,4516,4517],{"class":54},"\"isDisabled\"",[34,4519,4520],{"class":181},">Click\u003C/",[34,4522,4509],{"class":177},[34,4524,1248],{"class":181},[34,4526,4527,4529,4531,4534,4536,4539,4541,4543],{"class":36,"line":242},[34,4528,815],{"class":181},[34,4530,1240],{"class":177},[34,4532,4533],{"class":47}," [class.active]",[34,4535,1301],{"class":181},[34,4537,4538],{"class":54},"\"isActive\"",[34,4540,2050],{"class":181},[34,4542,1240],{"class":177},[34,4544,1248],{"class":181},[34,4546,4547,4549,4551,4554,4556,4559,4561,4563],{"class":36,"line":250},[34,4548,815],{"class":181},[34,4550,1240],{"class":177},[34,4552,4553],{"class":47}," [style.color]",[34,4555,1301],{"class":181},[34,4557,4558],{"class":54},"\"textColor\"",[34,4560,2050],{"class":181},[34,4562,1240],{"class":177},[34,4564,1248],{"class":181},[34,4566,4567],{"class":36,"line":263},[34,4568,62],{"emptyLinePlaceholder":61},[34,4570,4571],{"class":36,"line":275},[34,4572,4573],{"class":40},"\u003C!-- Event binding -->\n",[34,4575,4576,4578,4580,4583,4585,4588,4590,4592],{"class":36,"line":700},[34,4577,815],{"class":181},[34,4579,4509],{"class":177},[34,4581,4582],{"class":47}," (click)",[34,4584,1301],{"class":181},[34,4586,4587],{"class":54},"\"handleClick()\"",[34,4589,4520],{"class":181},[34,4591,4509],{"class":177},[34,4593,1248],{"class":181},[34,4595,4596,4598,4601,4604,4606,4609],{"class":36,"line":706},[34,4597,815],{"class":181},[34,4599,4600],{"class":177},"input",[34,4602,4603],{"class":47}," (input)",[34,4605,1301],{"class":181},[34,4607,4608],{"class":54},"\"onInput($event)\"",[34,4610,1248],{"class":181},[34,4612,4613,4615,4618,4621,4623,4626],{"class":36,"line":715},[34,4614,815],{"class":181},[34,4616,4617],{"class":177},"form",[34,4619,4620],{"class":47}," (submit)",[34,4622,1301],{"class":181},[34,4624,4625],{"class":54},"\"onSubmit($event)\"",[34,4627,1248],{"class":181},[34,4629,4630],{"class":36,"line":725},[34,4631,62],{"emptyLinePlaceholder":61},[34,4633,4634],{"class":36,"line":734},[34,4635,4636],{"class":40},"\u003C!-- Two-way binding -->\n",[34,4638,4639,4641,4643,4646,4648,4651],{"class":36,"line":742},[34,4640,815],{"class":181},[34,4642,4600],{"class":177},[34,4644,4645],{"class":47}," [(ngModel)]",[34,4647,1301],{"class":181},[34,4649,4650],{"class":54},"\"name\"",[34,4652,1248],{"class":181},[34,4654,4655],{"class":36,"line":748},[34,4656,62],{"emptyLinePlaceholder":61},[34,4658,4659],{"class":36,"line":754},[34,4660,4661],{"class":40},"\u003C!-- Template reference -->\n",[34,4663,4664,4666,4668,4671],{"class":36,"line":759},[34,4665,815],{"class":181},[34,4667,4600],{"class":177},[34,4669,4670],{"class":47}," #nameInput",[34,4672,1248],{"class":181},[34,4674,4675,4677,4679,4681,4683,4686,4689,4691],{"class":36,"line":771},[34,4676,815],{"class":181},[34,4678,4509],{"class":177},[34,4680,4582],{"class":47},[34,4682,1301],{"class":181},[34,4684,4685],{"class":54},"\"logValue(nameInput.value)\"",[34,4687,4688],{"class":181},">Log\u003C/",[34,4690,4509],{"class":177},[34,4692,1248],{"class":181},[388,4694,1418],{},{"title":30,"searchDepth":44,"depth":44,"links":4696},[4697],{"id":4420,"depth":44,"text":2574},"Template Syntax in Angular.",{},{"title":2574,"description":4698},"angular/template-syntax",[980,573,982,983],"YbEO6qfeLWuFHZlL5AJVOVwW0JzzY4O-ED7lh07VP9U",{"id":4705,"title":2630,"body":4706,"date":402,"description":4959,"extension":404,"meta":4960,"navigation":61,"order":706,"path":2629,"seo":4961,"stem":4962,"subject":980,"tags":4963,"__hash__":4964},"topics/angular/viewchild-viewchildren.md",{"type":8,"value":4707,"toc":4956},[4708,4711,4954],[11,4709,2630],{"id":4710},"viewchild-viewchildren",[25,4712,4714],{"className":571,"code":4713,"language":573,"meta":30,"style":30},"import { Component, ViewChild, ViewChildren, ElementRef, QueryList, AfterViewInit } from '@angular/core';\n\n@Component({\n  selector: 'app-example',\n  standalone: true,\n  template: `\n    \u003Cinput #nameInput>\n    \u003Capp-child #childComponent>\u003C/app-child>\n    \u003Cdiv #item *ngFor=\"let i of items\">{{ i }}\u003C/div>\n  `\n})\nexport class ExampleComponent implements AfterViewInit {\n  @ViewChild('nameInput') inputRef!: ElementRef\u003CHTMLInputElement>;\n  @ViewChild('childComponent') child!: ChildComponent;\n  @ViewChildren('item') items!: QueryList\u003CElementRef>;\n  \n  ngAfterViewInit() {\n    this.inputRef.nativeElement.focus();\n    this.child.someMethod();\n    this.items.forEach(item => console.log(item.nativeElement));\n  }\n}\n",[20,4715,4716,4729,4733,4741,4750,4758,4764,4769,4774,4779,4783,4787,4803,4835,4858,4887,4891,4897,4909,4921,4946,4950],{"__ignoreMap":30},[34,4717,4718,4720,4723,4725,4727],{"class":36,"line":37},[34,4719,581],{"class":580},[34,4721,4722],{"class":181}," { Component, ViewChild, ViewChildren, ElementRef, QueryList, AfterViewInit } ",[34,4724,587],{"class":580},[34,4726,590],{"class":54},[34,4728,593],{"class":181},[34,4730,4731],{"class":36,"line":44},[34,4732,62],{"emptyLinePlaceholder":61},[34,4734,4735,4737,4739],{"class":36,"line":58},[34,4736,607],{"class":181},[34,4738,610],{"class":47},[34,4740,613],{"class":181},[34,4742,4743,4745,4748],{"class":36,"line":65},[34,4744,618],{"class":181},[34,4746,4747],{"class":54},"'app-example'",[34,4749,624],{"class":181},[34,4751,4752,4754,4756],{"class":36,"line":71},[34,4753,629],{"class":181},[34,4755,632],{"class":50},[34,4757,624],{"class":181},[34,4759,4760,4762],{"class":36,"line":77},[34,4761,639],{"class":181},[34,4763,739],{"class":54},[34,4765,4766],{"class":36,"line":82},[34,4767,4768],{"class":54},"    \u003Cinput #nameInput>\n",[34,4770,4771],{"class":36,"line":88},[34,4772,4773],{"class":54},"    \u003Capp-child #childComponent>\u003C/app-child>\n",[34,4775,4776],{"class":36,"line":242},[34,4777,4778],{"class":54},"    \u003Cdiv #item *ngFor=\"let i of items\">{{ i }}\u003C/div>\n",[34,4780,4781],{"class":36,"line":250},[34,4782,751],{"class":54},[34,4784,4785],{"class":36,"line":263},[34,4786,647],{"class":181},[34,4788,4789,4791,4793,4796,4798,4801],{"class":36,"line":275},[34,4790,652],{"class":580},[34,4792,655],{"class":580},[34,4794,4795],{"class":47}," ExampleComponent",[34,4797,2334],{"class":580},[34,4799,4800],{"class":47}," AfterViewInit",[34,4802,661],{"class":181},[34,4804,4805,4807,4810,4812,4815,4818,4821,4824,4827,4829,4832],{"class":36,"line":700},[34,4806,666],{"class":181},[34,4808,4809],{"class":47},"ViewChild",[34,4811,1607],{"class":181},[34,4813,4814],{"class":54},"'nameInput'",[34,4816,4817],{"class":181},") ",[34,4819,4820],{"class":675},"inputRef",[34,4822,4823],{"class":580},"!:",[34,4825,4826],{"class":47}," ElementRef",[34,4828,815],{"class":181},[34,4830,4831],{"class":47},"HTMLInputElement",[34,4833,4834],{"class":181},">;\n",[34,4836,4837,4839,4841,4843,4846,4848,4851,4853,4856],{"class":36,"line":706},[34,4838,666],{"class":181},[34,4840,4809],{"class":47},[34,4842,1607],{"class":181},[34,4844,4845],{"class":54},"'childComponent'",[34,4847,4817],{"class":181},[34,4849,4850],{"class":675},"child",[34,4852,4823],{"class":580},[34,4854,4855],{"class":47}," ChildComponent",[34,4857,593],{"class":181},[34,4859,4860,4862,4865,4867,4870,4872,4875,4877,4880,4882,4885],{"class":36,"line":715},[34,4861,666],{"class":181},[34,4863,4864],{"class":47},"ViewChildren",[34,4866,1607],{"class":181},[34,4868,4869],{"class":54},"'item'",[34,4871,4817],{"class":181},[34,4873,4874],{"class":675},"items",[34,4876,4823],{"class":580},[34,4878,4879],{"class":47}," QueryList",[34,4881,815],{"class":181},[34,4883,4884],{"class":47},"ElementRef",[34,4886,4834],{"class":181},[34,4888,4889],{"class":36,"line":725},[34,4890,827],{"class":181},[34,4892,4893,4895],{"class":36,"line":734},[34,4894,2483],{"class":47},[34,4896,836],{"class":181},[34,4898,4899,4901,4904,4907],{"class":36,"line":742},[34,4900,842],{"class":50},[34,4902,4903],{"class":181},".inputRef.nativeElement.",[34,4905,4906],{"class":47},"focus",[34,4908,851],{"class":181},[34,4910,4911,4913,4916,4919],{"class":36,"line":748},[34,4912,842],{"class":50},[34,4914,4915],{"class":181},".child.",[34,4917,4918],{"class":47},"someMethod",[34,4920,851],{"class":181},[34,4922,4923,4925,4928,4931,4933,4936,4938,4941,4943],{"class":36,"line":754},[34,4924,842],{"class":50},[34,4926,4927],{"class":181},".items.",[34,4929,4930],{"class":47},"forEach",[34,4932,1607],{"class":181},[34,4934,4935],{"class":675},"item",[34,4937,1895],{"class":580},[34,4939,4940],{"class":181}," console.",[34,4942,2424],{"class":47},[34,4944,4945],{"class":181},"(item.nativeElement));\n",[34,4947,4948],{"class":36,"line":759},[34,4949,857],{"class":181},[34,4951,4952],{"class":36,"line":771},[34,4953,693],{"class":181},[388,4955,3240],{},{"title":30,"searchDepth":44,"depth":44,"links":4957},[4958],{"id":4710,"depth":44,"text":2630},"ViewChild & ViewChildren in Angular.",{},{"title":2630,"description":4959},"angular/viewchild-viewchildren",[980,573,982,983],"MDCkXaNICGw8WwcfqqL1kW-7qx1p6Nr9VX6zp3oarr8",{"id":4966,"title":4967,"body":4968,"date":402,"description":5431,"extension":404,"meta":5432,"navigation":61,"order":37,"path":5433,"seo":5434,"stem":5435,"subject":5010,"tags":5436,"__hash__":5439},"topics/ansible/overview.md","Ansible",{"type":8,"value":4969,"toc":5422},[4970,4972,4975,4977,5014,5018,5063,5067,5194,5198,5234,5238,5279,5283,5419],[11,4971,14],{"id":13},[16,4973,4974],{},"Ansible is a simple, agentless IT automation tool that uses YAML for configuration management, application deployment, and task automation.",[11,4976,97],{"id":96},[25,4978,4980],{"className":27,"code":4979,"language":29,"meta":30,"style":30},"# Install Ansible using pip\npip install ansible\n\n# Verify the installation\nansible --version\n",[20,4981,4982,4987,4997,5001,5006],{"__ignoreMap":30},[34,4983,4984],{"class":36,"line":37},[34,4985,4986],{"class":40},"# Install Ansible using pip\n",[34,4988,4989,4992,4994],{"class":36,"line":44},[34,4990,4991],{"class":47},"pip",[34,4993,118],{"class":54},[34,4995,4996],{"class":54}," ansible\n",[34,4998,4999],{"class":36,"line":58},[34,5000,62],{"emptyLinePlaceholder":61},[34,5002,5003],{"class":36,"line":65},[34,5004,5005],{"class":40},"# Verify the installation\n",[34,5007,5008,5011],{"class":36,"line":71},[34,5009,5010],{"class":47},"ansible",[34,5012,5013],{"class":50}," --version\n",[11,5015,5017],{"id":5016},"ad-hoc-commands","Ad-hoc Commands",[25,5019,5021],{"className":27,"code":5020,"language":29,"meta":30,"style":30},"# Ping all hosts in the inventory\nansible all -m ping\n\n# Execute a shell command on a group of hosts\nansible webservers -a \"/usr/bin/uptime\"\n",[20,5022,5023,5028,5041,5045,5050],{"__ignoreMap":30},[34,5024,5025],{"class":36,"line":37},[34,5026,5027],{"class":40},"# Ping all hosts in the inventory\n",[34,5029,5030,5032,5035,5038],{"class":36,"line":44},[34,5031,5010],{"class":47},[34,5033,5034],{"class":54}," all",[34,5036,5037],{"class":50}," -m",[34,5039,5040],{"class":54}," ping\n",[34,5042,5043],{"class":36,"line":58},[34,5044,62],{"emptyLinePlaceholder":61},[34,5046,5047],{"class":36,"line":65},[34,5048,5049],{"class":40},"# Execute a shell command on a group of hosts\n",[34,5051,5052,5054,5057,5060],{"class":36,"line":71},[34,5053,5010],{"class":47},[34,5055,5056],{"class":54}," webservers",[34,5058,5059],{"class":50}," -a",[34,5061,5062],{"class":54}," \"/usr/bin/uptime\"\n",[11,5064,5066],{"id":5065},"playbooks","Playbooks",[25,5068,5070],{"className":168,"code":5069,"language":170,"meta":30,"style":30},"# Example Ansible playbook\n- name: Ensure webserver is installed\n  hosts: webservers\n  become: yes\n  tasks:\n    - name: Install Nginx\n      apt:\n        name: nginx\n        state: present\n\n    - name: Start Nginx service\n      service:\n        name: nginx\n        state: started\n",[20,5071,5072,5077,5089,5099,5109,5116,5128,5135,5145,5155,5159,5170,5177,5185],{"__ignoreMap":30},[34,5073,5074],{"class":36,"line":37},[34,5075,5076],{"class":40},"# Example Ansible playbook\n",[34,5078,5079,5082,5084,5086],{"class":36,"line":44},[34,5080,5081],{"class":181},"- ",[34,5083,178],{"class":177},[34,5085,182],{"class":181},[34,5087,5088],{"class":54},"Ensure webserver is installed\n",[34,5090,5091,5094,5096],{"class":36,"line":58},[34,5092,5093],{"class":177},"  hosts",[34,5095,182],{"class":181},[34,5097,5098],{"class":54},"webservers\n",[34,5100,5101,5104,5106],{"class":36,"line":65},[34,5102,5103],{"class":177},"  become",[34,5105,182],{"class":181},[34,5107,5108],{"class":50},"yes\n",[34,5110,5111,5114],{"class":36,"line":71},[34,5112,5113],{"class":177},"  tasks",[34,5115,193],{"class":181},[34,5117,5118,5121,5123,5125],{"class":36,"line":77},[34,5119,5120],{"class":181},"    - ",[34,5122,178],{"class":177},[34,5124,182],{"class":181},[34,5126,5127],{"class":54},"Install Nginx\n",[34,5129,5130,5133],{"class":36,"line":82},[34,5131,5132],{"class":177},"      apt",[34,5134,193],{"class":181},[34,5136,5137,5140,5142],{"class":36,"line":88},[34,5138,5139],{"class":177},"        name",[34,5141,182],{"class":181},[34,5143,5144],{"class":54},"nginx\n",[34,5146,5147,5150,5152],{"class":36,"line":242},[34,5148,5149],{"class":177},"        state",[34,5151,182],{"class":181},[34,5153,5154],{"class":54},"present\n",[34,5156,5157],{"class":36,"line":250},[34,5158,62],{"emptyLinePlaceholder":61},[34,5160,5161,5163,5165,5167],{"class":36,"line":263},[34,5162,5120],{"class":181},[34,5164,178],{"class":177},[34,5166,182],{"class":181},[34,5168,5169],{"class":54},"Start Nginx service\n",[34,5171,5172,5175],{"class":36,"line":275},[34,5173,5174],{"class":177},"      service",[34,5176,193],{"class":181},[34,5178,5179,5181,5183],{"class":36,"line":700},[34,5180,5139],{"class":177},[34,5182,182],{"class":181},[34,5184,5144],{"class":54},[34,5186,5187,5189,5191],{"class":36,"line":706},[34,5188,5149],{"class":177},[34,5190,182],{"class":181},[34,5192,5193],{"class":54},"started\n",[11,5195,5197],{"id":5196},"inventory","Inventory",[25,5199,5203],{"className":5200,"code":5201,"language":5202,"meta":30,"style":30},"language-ini shiki shiki-themes github-light github-dark","[webservers]\n192.168.1.100 ansible_user=root\n192.168.1.101 ansible_user=root\n\n[databases]\n192.168.1.200 ansible_user=admin\n","ini",[20,5204,5205,5210,5215,5220,5224,5229],{"__ignoreMap":30},[34,5206,5207],{"class":36,"line":37},[34,5208,5209],{},"[webservers]\n",[34,5211,5212],{"class":36,"line":44},[34,5213,5214],{},"192.168.1.100 ansible_user=root\n",[34,5216,5217],{"class":36,"line":58},[34,5218,5219],{},"192.168.1.101 ansible_user=root\n",[34,5221,5222],{"class":36,"line":65},[34,5223,62],{"emptyLinePlaceholder":61},[34,5225,5226],{"class":36,"line":71},[34,5227,5228],{},"[databases]\n",[34,5230,5231],{"class":36,"line":77},[34,5232,5233],{},"192.168.1.200 ansible_user=admin\n",[11,5235,5237],{"id":5236},"roles","Roles",[25,5239,5241],{"className":27,"code":5240,"language":29,"meta":30,"style":30},"# Create a new role\nansible-galaxy init my_role\n\n# Create a site-wide directory for roles\nmkdir -p /etc/ansible/roles\n",[20,5242,5243,5248,5259,5263,5268],{"__ignoreMap":30},[34,5244,5245],{"class":36,"line":37},[34,5246,5247],{"class":40},"# Create a new role\n",[34,5249,5250,5253,5256],{"class":36,"line":44},[34,5251,5252],{"class":47},"ansible-galaxy",[34,5254,5255],{"class":54}," init",[34,5257,5258],{"class":54}," my_role\n",[34,5260,5261],{"class":36,"line":58},[34,5262,62],{"emptyLinePlaceholder":61},[34,5264,5265],{"class":36,"line":65},[34,5266,5267],{"class":40},"# Create a site-wide directory for roles\n",[34,5269,5270,5273,5276],{"class":36,"line":71},[34,5271,5272],{"class":47},"mkdir",[34,5274,5275],{"class":50}," -p",[34,5277,5278],{"class":54}," /etc/ansible/roles\n",[11,5280,5282],{"id":5281},"common-modules","Common Modules",[25,5284,5286],{"className":168,"code":5285,"language":170,"meta":30,"style":30},"# Copy files\n- name: Copy the configuration file\n  copy:\n    src: /local/file/path\n    dest: /remote/file/path\n\n# Manage packages\n- name: Make sure nginx is installed\n  apt:\n    name: nginx\n    state: present\n\n# Manage services\n- name: Start nginx\n  service:\n    name: nginx\n    state: started\n",[20,5287,5288,5293,5304,5311,5321,5331,5335,5340,5351,5358,5367,5376,5380,5385,5396,5403,5411],{"__ignoreMap":30},[34,5289,5290],{"class":36,"line":37},[34,5291,5292],{"class":40},"# Copy files\n",[34,5294,5295,5297,5299,5301],{"class":36,"line":44},[34,5296,5081],{"class":181},[34,5298,178],{"class":177},[34,5300,182],{"class":181},[34,5302,5303],{"class":54},"Copy the configuration file\n",[34,5305,5306,5309],{"class":36,"line":58},[34,5307,5308],{"class":177},"  copy",[34,5310,193],{"class":181},[34,5312,5313,5316,5318],{"class":36,"line":65},[34,5314,5315],{"class":177},"    src",[34,5317,182],{"class":181},[34,5319,5320],{"class":54},"/local/file/path\n",[34,5322,5323,5326,5328],{"class":36,"line":71},[34,5324,5325],{"class":177},"    dest",[34,5327,182],{"class":181},[34,5329,5330],{"class":54},"/remote/file/path\n",[34,5332,5333],{"class":36,"line":77},[34,5334,62],{"emptyLinePlaceholder":61},[34,5336,5337],{"class":36,"line":82},[34,5338,5339],{"class":40},"# Manage packages\n",[34,5341,5342,5344,5346,5348],{"class":36,"line":88},[34,5343,5081],{"class":181},[34,5345,178],{"class":177},[34,5347,182],{"class":181},[34,5349,5350],{"class":54},"Make sure nginx is installed\n",[34,5352,5353,5356],{"class":36,"line":242},[34,5354,5355],{"class":177},"  apt",[34,5357,193],{"class":181},[34,5359,5360,5363,5365],{"class":36,"line":250},[34,5361,5362],{"class":177},"    name",[34,5364,182],{"class":181},[34,5366,5144],{"class":54},[34,5368,5369,5372,5374],{"class":36,"line":263},[34,5370,5371],{"class":177},"    state",[34,5373,182],{"class":181},[34,5375,5154],{"class":54},[34,5377,5378],{"class":36,"line":275},[34,5379,62],{"emptyLinePlaceholder":61},[34,5381,5382],{"class":36,"line":700},[34,5383,5384],{"class":40},"# Manage services\n",[34,5386,5387,5389,5391,5393],{"class":36,"line":706},[34,5388,5081],{"class":181},[34,5390,178],{"class":177},[34,5392,182],{"class":181},[34,5394,5395],{"class":54},"Start nginx\n",[34,5397,5398,5401],{"class":36,"line":715},[34,5399,5400],{"class":177},"  service",[34,5402,193],{"class":181},[34,5404,5405,5407,5409],{"class":36,"line":725},[34,5406,5362],{"class":177},[34,5408,182],{"class":181},[34,5410,5144],{"class":54},[34,5412,5413,5415,5417],{"class":36,"line":734},[34,5414,5371],{"class":177},[34,5416,182],{"class":181},[34,5418,5193],{"class":54},[388,5420,5421],{},"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 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);}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}",{"title":30,"searchDepth":44,"depth":44,"links":5423},[5424,5425,5426,5427,5428,5429,5430],{"id":13,"depth":44,"text":14},{"id":96,"depth":44,"text":97},{"id":5016,"depth":44,"text":5017},{"id":5065,"depth":44,"text":5066},{"id":5196,"depth":44,"text":5197},{"id":5236,"depth":44,"text":5237},{"id":5281,"depth":44,"text":5282},"Cheat sheet of Ansible commands and YAML syntax for managing infrastructure as code.",{},"/ansible/overview",{"title":4967,"description":5431},"ansible/overview",[5010,413,5437,5438],"infrastructure-as-code","devops","HGbpvBV-umgVi_WTjLQ14JhNzSzyQ07WO5Qn-bq4HVo",{"id":5441,"title":5442,"body":5443,"date":402,"description":5582,"extension":404,"meta":5583,"navigation":61,"order":700,"path":5584,"seo":5585,"stem":5586,"subject":5462,"tags":5587,"__hash__":5592},"topics/apt/advanced-operations.md","Advanced Operations",{"type":8,"value":5444,"toc":5579},[5445,5448,5576],[11,5446,5442],{"id":5447},"advanced-operations",[25,5449,5451],{"className":27,"code":5450,"language":29,"meta":30,"style":30},"# Simulate installation (dry run)\napt install --simulate \u003Cpackage>\napt install -s \u003Cpackage>\n\n# Download package without installing\nsudo apt download \u003Cpackage>\n\n# Build dependencies for source package\nsudo apt build-dep \u003Cpackage>\n\n# Force package installation\nsudo apt install --allow-downgrades \u003Cpackage>\n",[20,5452,5453,5458,5479,5496,5500,5505,5522,5526,5531,5548,5552,5557],{"__ignoreMap":30},[34,5454,5455],{"class":36,"line":37},[34,5456,5457],{"class":40},"# Simulate installation (dry run)\n",[34,5459,5460,5463,5465,5468,5471,5474,5477],{"class":36,"line":44},[34,5461,5462],{"class":47},"apt",[34,5464,118],{"class":54},[34,5466,5467],{"class":50}," --simulate",[34,5469,5470],{"class":580}," \u003C",[34,5472,5473],{"class":54},"packag",[34,5475,5476],{"class":181},"e",[34,5478,1248],{"class":580},[34,5480,5481,5483,5485,5488,5490,5492,5494],{"class":36,"line":58},[34,5482,5462],{"class":47},[34,5484,118],{"class":54},[34,5486,5487],{"class":50}," -s",[34,5489,5470],{"class":580},[34,5491,5473],{"class":54},[34,5493,5476],{"class":181},[34,5495,1248],{"class":580},[34,5497,5498],{"class":36,"line":65},[34,5499,62],{"emptyLinePlaceholder":61},[34,5501,5502],{"class":36,"line":71},[34,5503,5504],{"class":40},"# Download package without installing\n",[34,5506,5507,5509,5511,5514,5516,5518,5520],{"class":36,"line":77},[34,5508,436],{"class":47},[34,5510,439],{"class":54},[34,5512,5513],{"class":54}," download",[34,5515,5470],{"class":580},[34,5517,5473],{"class":54},[34,5519,5476],{"class":181},[34,5521,1248],{"class":580},[34,5523,5524],{"class":36,"line":82},[34,5525,62],{"emptyLinePlaceholder":61},[34,5527,5528],{"class":36,"line":88},[34,5529,5530],{"class":40},"# Build dependencies for source package\n",[34,5532,5533,5535,5537,5540,5542,5544,5546],{"class":36,"line":242},[34,5534,436],{"class":47},[34,5536,439],{"class":54},[34,5538,5539],{"class":54}," build-dep",[34,5541,5470],{"class":580},[34,5543,5473],{"class":54},[34,5545,5476],{"class":181},[34,5547,1248],{"class":580},[34,5549,5550],{"class":36,"line":250},[34,5551,62],{"emptyLinePlaceholder":61},[34,5553,5554],{"class":36,"line":263},[34,5555,5556],{"class":40},"# Force package installation\n",[34,5558,5559,5561,5563,5565,5568,5570,5572,5574],{"class":36,"line":275},[34,5560,436],{"class":47},[34,5562,439],{"class":54},[34,5564,118],{"class":54},[34,5566,5567],{"class":50}," --allow-downgrades",[34,5569,5470],{"class":580},[34,5571,5473],{"class":54},[34,5573,5476],{"class":181},[34,5575,1248],{"class":580},[388,5577,5578],{},"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 pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .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":30,"searchDepth":44,"depth":44,"links":5580},[5581],{"id":5447,"depth":44,"text":5442},"Advanced Operations in apt.",{},"/apt/advanced-operations",{"title":5442,"description":5582},"apt/advanced-operations",[5462,5588,5589,5590,5591],"linux","debian","ubuntu","package-manager","4t_q1a-heHPw2Gvn-EGh7Gls-JemwjtNOiNcM4CFClE",{"id":5594,"title":5595,"body":5596,"date":402,"description":5725,"extension":404,"meta":5726,"navigation":61,"order":706,"path":5727,"seo":5728,"stem":5729,"subject":5462,"tags":5730,"__hash__":5731},"topics/apt/best-practices.md","Best Practices",{"type":8,"value":5597,"toc":5722},[5598,5601,5719],[11,5599,5595],{"id":5600},"best-practices",[25,5602,5604],{"className":27,"code":5603,"language":29,"meta":30,"style":30},"# Update before installing\nsudo apt update && sudo apt install \u003Cpackage>\n\n# Upgrade system safely\nsudo apt update && sudo apt upgrade -y\n\n# Clean up after installing\nsudo apt install \u003Cpackage> && sudo apt autoremove\n\n# Check for broken packages\nsudo apt check\n",[20,5605,5606,5611,5637,5641,5646,5666,5670,5675,5701,5705,5710],{"__ignoreMap":30},[34,5607,5608],{"class":36,"line":37},[34,5609,5610],{"class":40},"# Update before installing\n",[34,5612,5613,5615,5617,5620,5623,5625,5627,5629,5631,5633,5635],{"class":36,"line":44},[34,5614,436],{"class":47},[34,5616,439],{"class":54},[34,5618,5619],{"class":54}," update",[34,5621,5622],{"class":181}," && ",[34,5624,436],{"class":47},[34,5626,439],{"class":54},[34,5628,118],{"class":54},[34,5630,5470],{"class":580},[34,5632,5473],{"class":54},[34,5634,5476],{"class":181},[34,5636,1248],{"class":580},[34,5638,5639],{"class":36,"line":58},[34,5640,62],{"emptyLinePlaceholder":61},[34,5642,5643],{"class":36,"line":65},[34,5644,5645],{"class":40},"# Upgrade system safely\n",[34,5647,5648,5650,5652,5654,5656,5658,5660,5663],{"class":36,"line":71},[34,5649,436],{"class":47},[34,5651,439],{"class":54},[34,5653,5619],{"class":54},[34,5655,5622],{"class":181},[34,5657,436],{"class":47},[34,5659,439],{"class":54},[34,5661,5662],{"class":54}," upgrade",[34,5664,5665],{"class":50}," -y\n",[34,5667,5668],{"class":36,"line":77},[34,5669,62],{"emptyLinePlaceholder":61},[34,5671,5672],{"class":36,"line":82},[34,5673,5674],{"class":40},"# Clean up after installing\n",[34,5676,5677,5679,5681,5683,5685,5687,5689,5692,5694,5696,5698],{"class":36,"line":88},[34,5678,436],{"class":47},[34,5680,439],{"class":54},[34,5682,118],{"class":54},[34,5684,5470],{"class":580},[34,5686,5473],{"class":54},[34,5688,5476],{"class":181},[34,5690,5691],{"class":580},">",[34,5693,5622],{"class":181},[34,5695,436],{"class":47},[34,5697,439],{"class":54},[34,5699,5700],{"class":54}," autoremove\n",[34,5702,5703],{"class":36,"line":242},[34,5704,62],{"emptyLinePlaceholder":61},[34,5706,5707],{"class":36,"line":250},[34,5708,5709],{"class":40},"# Check for broken packages\n",[34,5711,5712,5714,5716],{"class":36,"line":263},[34,5713,436],{"class":47},[34,5715,439],{"class":54},[34,5717,5718],{"class":54}," check\n",[388,5720,5721],{},"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 pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":5723},[5724],{"id":5600,"depth":44,"text":5595},"Best Practices in apt.",{},"/apt/best-practices",{"title":5595,"description":5725},"apt/best-practices",[5462,5588,5589,5590,5591],"jyrDSCcDvZL-ucQYzGfTP_MwZntleZpi_ownE5URNdM",{"id":5733,"title":5734,"body":5735,"date":402,"description":5800,"extension":404,"meta":5801,"navigation":61,"order":263,"path":5802,"seo":5803,"stem":5804,"subject":5462,"tags":5805,"__hash__":5806},"topics/apt/cleaning-up.md","Cleaning Up",{"type":8,"value":5736,"toc":5797},[5737,5740,5794],[11,5738,5734],{"id":5739},"cleaning-up",[25,5741,5743],{"className":27,"code":5742,"language":29,"meta":30,"style":30},"# Remove downloaded package files\nsudo apt clean\n\n# Remove old downloaded package files\nsudo apt autoclean\n\n# Remove unused packages\nsudo apt autoremove\n",[20,5744,5745,5750,5759,5763,5768,5777,5781,5786],{"__ignoreMap":30},[34,5746,5747],{"class":36,"line":37},[34,5748,5749],{"class":40},"# Remove downloaded package files\n",[34,5751,5752,5754,5756],{"class":36,"line":44},[34,5753,436],{"class":47},[34,5755,439],{"class":54},[34,5757,5758],{"class":54}," clean\n",[34,5760,5761],{"class":36,"line":58},[34,5762,62],{"emptyLinePlaceholder":61},[34,5764,5765],{"class":36,"line":65},[34,5766,5767],{"class":40},"# Remove old downloaded package files\n",[34,5769,5770,5772,5774],{"class":36,"line":71},[34,5771,436],{"class":47},[34,5773,439],{"class":54},[34,5775,5776],{"class":54}," autoclean\n",[34,5778,5779],{"class":36,"line":77},[34,5780,62],{"emptyLinePlaceholder":61},[34,5782,5783],{"class":36,"line":82},[34,5784,5785],{"class":40},"# Remove unused packages\n",[34,5787,5788,5790,5792],{"class":36,"line":88},[34,5789,436],{"class":47},[34,5791,439],{"class":54},[34,5793,5700],{"class":54},[388,5795,5796],{},"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);}",{"title":30,"searchDepth":44,"depth":44,"links":5798},[5799],{"id":5739,"depth":44,"text":5734},"Cleaning Up in apt.",{},"/apt/cleaning-up",{"title":5734,"description":5800},"apt/cleaning-up",[5462,5588,5589,5590,5591],"RCpaOT8DdzMs7ORs2O3cXLM18jakJdVg5sdQ4zcJEA4",{"id":5808,"title":5809,"body":5810,"date":402,"description":5958,"extension":404,"meta":5959,"navigation":61,"order":715,"path":5960,"seo":5961,"stem":5962,"subject":5462,"tags":5963,"__hash__":5964},"topics/apt/common-workflows.md","Common Workflows",{"type":8,"value":5811,"toc":5955},[5812,5815,5952],[11,5813,5809],{"id":5814},"common-workflows",[25,5816,5818],{"className":27,"code":5817,"language":29,"meta":30,"style":30},"# Full system update\nsudo apt update && sudo apt upgrade -y && sudo apt autoremove -y\n\n# Search and install\napt search \u003Ckeyword>\nsudo apt install \u003Cpackage>\n\n# Remove package completely\nsudo apt purge \u003Cpackage> && sudo apt autoremove\n\n# Fix broken installation\nsudo apt --fix-broken install\n",[20,5819,5820,5825,5855,5859,5864,5881,5897,5901,5906,5931,5935,5940],{"__ignoreMap":30},[34,5821,5822],{"class":36,"line":37},[34,5823,5824],{"class":40},"# Full system update\n",[34,5826,5827,5829,5831,5833,5835,5837,5839,5841,5844,5846,5848,5850,5853],{"class":36,"line":44},[34,5828,436],{"class":47},[34,5830,439],{"class":54},[34,5832,5619],{"class":54},[34,5834,5622],{"class":181},[34,5836,436],{"class":47},[34,5838,439],{"class":54},[34,5840,5662],{"class":54},[34,5842,5843],{"class":50}," -y",[34,5845,5622],{"class":181},[34,5847,436],{"class":47},[34,5849,439],{"class":54},[34,5851,5852],{"class":54}," autoremove",[34,5854,5665],{"class":50},[34,5856,5857],{"class":36,"line":58},[34,5858,62],{"emptyLinePlaceholder":61},[34,5860,5861],{"class":36,"line":65},[34,5862,5863],{"class":40},"# Search and install\n",[34,5865,5866,5868,5871,5873,5876,5879],{"class":36,"line":71},[34,5867,5462],{"class":47},[34,5869,5870],{"class":54}," search",[34,5872,5470],{"class":580},[34,5874,5875],{"class":54},"keywor",[34,5877,5878],{"class":181},"d",[34,5880,1248],{"class":580},[34,5882,5883,5885,5887,5889,5891,5893,5895],{"class":36,"line":77},[34,5884,436],{"class":47},[34,5886,439],{"class":54},[34,5888,118],{"class":54},[34,5890,5470],{"class":580},[34,5892,5473],{"class":54},[34,5894,5476],{"class":181},[34,5896,1248],{"class":580},[34,5898,5899],{"class":36,"line":82},[34,5900,62],{"emptyLinePlaceholder":61},[34,5902,5903],{"class":36,"line":88},[34,5904,5905],{"class":40},"# Remove package completely\n",[34,5907,5908,5910,5912,5915,5917,5919,5921,5923,5925,5927,5929],{"class":36,"line":242},[34,5909,436],{"class":47},[34,5911,439],{"class":54},[34,5913,5914],{"class":54}," purge",[34,5916,5470],{"class":580},[34,5918,5473],{"class":54},[34,5920,5476],{"class":181},[34,5922,5691],{"class":580},[34,5924,5622],{"class":181},[34,5926,436],{"class":47},[34,5928,439],{"class":54},[34,5930,5700],{"class":54},[34,5932,5933],{"class":36,"line":250},[34,5934,62],{"emptyLinePlaceholder":61},[34,5936,5937],{"class":36,"line":263},[34,5938,5939],{"class":40},"# Fix broken installation\n",[34,5941,5942,5944,5946,5949],{"class":36,"line":275},[34,5943,436],{"class":47},[34,5945,439],{"class":54},[34,5947,5948],{"class":50}," --fix-broken",[34,5950,5951],{"class":54}," install\n",[388,5953,5954],{},"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 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 pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":5956},[5957],{"id":5814,"depth":44,"text":5809},"Common Workflows in apt.",{},"/apt/common-workflows",{"title":5809,"description":5958},"apt/common-workflows",[5462,5588,5589,5590,5591],"KQIuDWW-bVI1uFi3jFS1o09x8SzsQK-cPc0pxYDp32c",{"id":5966,"title":5967,"body":5968,"date":402,"description":6026,"extension":404,"meta":6027,"navigation":61,"order":275,"path":6028,"seo":6029,"stem":6030,"subject":5462,"tags":6031,"__hash__":6032},"topics/apt/fixing-broken-packages.md","Fixing Broken Packages",{"type":8,"value":5969,"toc":6023},[5970,5973,6020],[11,5971,5967],{"id":5972},"fixing-broken-packages",[25,5974,5976],{"className":27,"code":5975,"language":29,"meta":30,"style":30},"# Fix broken dependencies\nsudo apt --fix-broken install\nsudo apt -f install\n\n# Check for broken packages\nsudo apt check\n",[20,5977,5978,5983,5993,6004,6008,6012],{"__ignoreMap":30},[34,5979,5980],{"class":36,"line":37},[34,5981,5982],{"class":40},"# Fix broken dependencies\n",[34,5984,5985,5987,5989,5991],{"class":36,"line":44},[34,5986,436],{"class":47},[34,5988,439],{"class":54},[34,5990,5948],{"class":50},[34,5992,5951],{"class":54},[34,5994,5995,5997,5999,6002],{"class":36,"line":58},[34,5996,436],{"class":47},[34,5998,439],{"class":54},[34,6000,6001],{"class":50}," -f",[34,6003,5951],{"class":54},[34,6005,6006],{"class":36,"line":65},[34,6007,62],{"emptyLinePlaceholder":61},[34,6009,6010],{"class":36,"line":71},[34,6011,5709],{"class":40},[34,6013,6014,6016,6018],{"class":36,"line":77},[34,6015,436],{"class":47},[34,6017,439],{"class":54},[34,6019,5718],{"class":54},[388,6021,6022],{},"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 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":30,"searchDepth":44,"depth":44,"links":6024},[6025],{"id":5972,"depth":44,"text":5967},"Fixing Broken Packages in apt.",{},"/apt/fixing-broken-packages",{"title":5967,"description":6026},"apt/fixing-broken-packages",[5462,5588,5589,5590,5591],"PLNeeAFBJKWzd1y48CZ7OyhMo6DEXYKM3hmWN2URupQ",{"id":6034,"title":6035,"body":6036,"date":402,"description":6103,"extension":404,"meta":6104,"navigation":61,"order":44,"path":6105,"seo":6106,"stem":6107,"subject":5462,"tags":6108,"__hash__":6109},"topics/apt/getting-started.md","Getting Started",{"type":8,"value":6037,"toc":6100},[6038,6041,6097],[11,6039,6035],{"id":6040},"getting-started",[25,6042,6044],{"className":27,"code":6043,"language":29,"meta":30,"style":30},"# Check apt version\napt --version\n\n# Get help\napt help\napt --help\n\n# View manual page\nman apt\n",[20,6045,6046,6051,6057,6061,6066,6073,6080,6084,6089],{"__ignoreMap":30},[34,6047,6048],{"class":36,"line":37},[34,6049,6050],{"class":40},"# Check apt version\n",[34,6052,6053,6055],{"class":36,"line":44},[34,6054,5462],{"class":47},[34,6056,5013],{"class":50},[34,6058,6059],{"class":36,"line":58},[34,6060,62],{"emptyLinePlaceholder":61},[34,6062,6063],{"class":36,"line":65},[34,6064,6065],{"class":40},"# Get help\n",[34,6067,6068,6070],{"class":36,"line":71},[34,6069,5462],{"class":47},[34,6071,6072],{"class":54}," help\n",[34,6074,6075,6077],{"class":36,"line":77},[34,6076,5462],{"class":47},[34,6078,6079],{"class":50}," --help\n",[34,6081,6082],{"class":36,"line":82},[34,6083,62],{"emptyLinePlaceholder":61},[34,6085,6086],{"class":36,"line":88},[34,6087,6088],{"class":40},"# View manual page\n",[34,6090,6091,6094],{"class":36,"line":242},[34,6092,6093],{"class":47},"man",[34,6095,6096],{"class":54}," apt\n",[388,6098,6099],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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);}",{"title":30,"searchDepth":44,"depth":44,"links":6101},[6102],{"id":6040,"depth":44,"text":6035},"Getting Started in apt.",{},"/apt/getting-started",{"title":6035,"description":6103},"apt/getting-started",[5462,5588,5589,5590,5591],"LVxez_8asu4NjDWQ_Xpw7RwZjo40GBYZmjSL-sVkNcs",{"id":6111,"title":6112,"body":6113,"date":402,"description":6314,"extension":404,"meta":6315,"navigation":61,"order":65,"path":6316,"seo":6317,"stem":6318,"subject":5462,"tags":6319,"__hash__":6320},"topics/apt/installing-packages.md","Installing Packages",{"type":8,"value":6114,"toc":6311},[6115,6118,6308],[11,6116,6112],{"id":6117},"installing-packages",[25,6119,6121],{"className":27,"code":6120,"language":29,"meta":30,"style":30},"# Install a package\nsudo apt install \u003Cpackage>\n\n# Install multiple packages\nsudo apt install \u003Cpackage1> \u003Cpackage2> \u003Cpackage3>\n\n# Install a specific version\nsudo apt install \u003Cpackage>=\u003Cversion>\nsudo apt install nginx=1.18.0-0ubuntu1\n\n# Install without confirmation prompt\nsudo apt install -y \u003Cpackage>\n\n# Download package without installing\nsudo apt download \u003Cpackage>\n\n# Reinstall a package\nsudo apt reinstall \u003Cpackage>\n",[20,6122,6123,6128,6144,6148,6153,6183,6187,6192,6220,6231,6235,6240,6258,6262,6266,6282,6286,6291],{"__ignoreMap":30},[34,6124,6125],{"class":36,"line":37},[34,6126,6127],{"class":40},"# Install a package\n",[34,6129,6130,6132,6134,6136,6138,6140,6142],{"class":36,"line":44},[34,6131,436],{"class":47},[34,6133,439],{"class":54},[34,6135,118],{"class":54},[34,6137,5470],{"class":580},[34,6139,5473],{"class":54},[34,6141,5476],{"class":181},[34,6143,1248],{"class":580},[34,6145,6146],{"class":36,"line":58},[34,6147,62],{"emptyLinePlaceholder":61},[34,6149,6150],{"class":36,"line":65},[34,6151,6152],{"class":40},"# Install multiple packages\n",[34,6154,6155,6157,6159,6161,6163,6166,6169,6171,6173,6176,6178,6180],{"class":36,"line":71},[34,6156,436],{"class":47},[34,6158,439],{"class":54},[34,6160,118],{"class":54},[34,6162,5470],{"class":580},[34,6164,6165],{"class":54},"package",[34,6167,6168],{"class":580},"1>",[34,6170,5470],{"class":580},[34,6172,6165],{"class":54},[34,6174,6175],{"class":580},"2>",[34,6177,5470],{"class":580},[34,6179,6165],{"class":54},[34,6181,6182],{"class":580},"3>\n",[34,6184,6185],{"class":36,"line":77},[34,6186,62],{"emptyLinePlaceholder":61},[34,6188,6189],{"class":36,"line":82},[34,6190,6191],{"class":40},"# Install a specific version\n",[34,6193,6194,6196,6198,6200,6202,6204,6206,6208,6210,6212,6215,6218],{"class":36,"line":88},[34,6195,436],{"class":47},[34,6197,439],{"class":54},[34,6199,118],{"class":54},[34,6201,5470],{"class":580},[34,6203,5473],{"class":54},[34,6205,5476],{"class":181},[34,6207,5691],{"class":580},[34,6209,1301],{"class":54},[34,6211,815],{"class":580},[34,6213,6214],{"class":54},"versio",[34,6216,6217],{"class":181},"n",[34,6219,1248],{"class":580},[34,6221,6222,6224,6226,6228],{"class":36,"line":242},[34,6223,436],{"class":47},[34,6225,439],{"class":54},[34,6227,118],{"class":54},[34,6229,6230],{"class":54}," nginx=1.18.0-0ubuntu1\n",[34,6232,6233],{"class":36,"line":250},[34,6234,62],{"emptyLinePlaceholder":61},[34,6236,6237],{"class":36,"line":263},[34,6238,6239],{"class":40},"# Install without confirmation prompt\n",[34,6241,6242,6244,6246,6248,6250,6252,6254,6256],{"class":36,"line":275},[34,6243,436],{"class":47},[34,6245,439],{"class":54},[34,6247,118],{"class":54},[34,6249,5843],{"class":50},[34,6251,5470],{"class":580},[34,6253,5473],{"class":54},[34,6255,5476],{"class":181},[34,6257,1248],{"class":580},[34,6259,6260],{"class":36,"line":700},[34,6261,62],{"emptyLinePlaceholder":61},[34,6263,6264],{"class":36,"line":706},[34,6265,5504],{"class":40},[34,6267,6268,6270,6272,6274,6276,6278,6280],{"class":36,"line":715},[34,6269,436],{"class":47},[34,6271,439],{"class":54},[34,6273,5513],{"class":54},[34,6275,5470],{"class":580},[34,6277,5473],{"class":54},[34,6279,5476],{"class":181},[34,6281,1248],{"class":580},[34,6283,6284],{"class":36,"line":725},[34,6285,62],{"emptyLinePlaceholder":61},[34,6287,6288],{"class":36,"line":734},[34,6289,6290],{"class":40},"# Reinstall a package\n",[34,6292,6293,6295,6297,6300,6302,6304,6306],{"class":36,"line":742},[34,6294,436],{"class":47},[34,6296,439],{"class":54},[34,6298,6299],{"class":54}," reinstall",[34,6301,5470],{"class":580},[34,6303,5473],{"class":54},[34,6305,5476],{"class":181},[34,6307,1248],{"class":580},[388,6309,6310],{},"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 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 .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":30,"searchDepth":44,"depth":44,"links":6312},[6313],{"id":6117,"depth":44,"text":6112},"Installing Packages in apt.",{},"/apt/installing-packages",{"title":6112,"description":6314},"apt/installing-packages",[5462,5588,5589,5590,5591],"uk2_HIXTfXt1Q6lDcwiJVneBgFqNsFESNQWtknHpNWg",{"id":6322,"title":6323,"body":6324,"date":402,"description":6390,"extension":404,"meta":6391,"navigation":61,"order":88,"path":6392,"seo":6393,"stem":6394,"subject":5462,"tags":6395,"__hash__":6396},"topics/apt/listing-packages.md","Listing Packages",{"type":8,"value":6325,"toc":6387},[6326,6329,6385],[11,6327,6323],{"id":6328},"listing-packages",[25,6330,6332],{"className":27,"code":6331,"language":29,"meta":30,"style":30},"# List all installed packages\napt list --installed\n\n# List upgradable packages\napt list --upgradable\n\n# List all available packages\napt list --all-versions\n",[20,6333,6334,6339,6349,6353,6358,6367,6371,6376],{"__ignoreMap":30},[34,6335,6336],{"class":36,"line":37},[34,6337,6338],{"class":40},"# List all installed packages\n",[34,6340,6341,6343,6346],{"class":36,"line":44},[34,6342,5462],{"class":47},[34,6344,6345],{"class":54}," list",[34,6347,6348],{"class":50}," --installed\n",[34,6350,6351],{"class":36,"line":58},[34,6352,62],{"emptyLinePlaceholder":61},[34,6354,6355],{"class":36,"line":65},[34,6356,6357],{"class":40},"# List upgradable packages\n",[34,6359,6360,6362,6364],{"class":36,"line":71},[34,6361,5462],{"class":47},[34,6363,6345],{"class":54},[34,6365,6366],{"class":50}," --upgradable\n",[34,6368,6369],{"class":36,"line":77},[34,6370,62],{"emptyLinePlaceholder":61},[34,6372,6373],{"class":36,"line":82},[34,6374,6375],{"class":40},"# List all available packages\n",[34,6377,6378,6380,6382],{"class":36,"line":88},[34,6379,5462],{"class":47},[34,6381,6345],{"class":54},[34,6383,6384],{"class":50}," --all-versions\n",[388,6386,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":6388},[6389],{"id":6328,"depth":44,"text":6323},"Listing Packages in apt.",{},"/apt/listing-packages",{"title":6323,"description":6390},"apt/listing-packages",[5462,5588,5589,5590,5591],"VW6pBxwlLTGjpcF9a9HqV174bknj9ZOQPU64EYwB6yQ",{"id":6398,"title":6399,"body":6400,"date":402,"description":6447,"extension":404,"meta":6448,"navigation":61,"order":250,"path":6449,"seo":6450,"stem":6451,"subject":5462,"tags":6452,"__hash__":6453},"topics/apt/managing-repositories.md","Managing Repositories",{"type":8,"value":6401,"toc":6444},[6402,6405,6442],[11,6403,6399],{"id":6404},"managing-repositories",[25,6406,6408],{"className":27,"code":6407,"language":29,"meta":30,"style":30},"# Edit sources list with default editor\nsudo apt edit-sources\n\n# Update package lists\nsudo apt update\n",[20,6409,6410,6415,6424,6428,6433],{"__ignoreMap":30},[34,6411,6412],{"class":36,"line":37},[34,6413,6414],{"class":40},"# Edit sources list with default editor\n",[34,6416,6417,6419,6421],{"class":36,"line":44},[34,6418,436],{"class":47},[34,6420,439],{"class":54},[34,6422,6423],{"class":54}," edit-sources\n",[34,6425,6426],{"class":36,"line":58},[34,6427,62],{"emptyLinePlaceholder":61},[34,6429,6430],{"class":36,"line":65},[34,6431,6432],{"class":40},"# Update package lists\n",[34,6434,6435,6437,6439],{"class":36,"line":71},[34,6436,436],{"class":47},[34,6438,439],{"class":54},[34,6440,6441],{"class":54}," update\n",[388,6443,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":6445},[6446],{"id":6404,"depth":44,"text":6399},"Managing Repositories in apt.",{},"/apt/managing-repositories",{"title":6399,"description":6447},"apt/managing-repositories",[5462,5588,5589,5590,5591],"uRKpyCy88uFI2puyMet54_f01xrFwicBsP8--SKQy_s",{"id":6455,"title":5462,"body":6456,"date":2633,"description":6528,"extension":404,"meta":6529,"navigation":61,"order":37,"path":6530,"seo":6531,"stem":6532,"subject":5462,"tags":6533,"__hash__":6534},"topics/apt/overview.md",{"type":8,"value":6457,"toc":6526},[6458],[309,6459,6460,6464,6470,6474,6480,6486,6492,6496,6502,6506,6510,6514,6518,6522],{},[312,6461,6462],{},[145,6463,6035],{"href":6105},[312,6465,6466],{},[145,6467,6469],{"href":6468},"/apt/updating-package-lists","Updating Package Lists",[312,6471,6472],{},[145,6473,6112],{"href":6316},[312,6475,6476],{},[145,6477,6479],{"href":6478},"/apt/removing-packages","Removing Packages",[312,6481,6482],{},[145,6483,6485],{"href":6484},"/apt/upgrading-packages","Upgrading Packages",[312,6487,6488],{},[145,6489,6491],{"href":6490},"/apt/searching-packages","Searching Packages",[312,6493,6494],{},[145,6495,6323],{"href":6392},[312,6497,6498],{},[145,6499,6501],{"href":6500},"/apt/package-information","Package Information",[312,6503,6504],{},[145,6505,6399],{"href":6449},[312,6507,6508],{},[145,6509,5734],{"href":5802},[312,6511,6512],{},[145,6513,5967],{"href":6028},[312,6515,6516],{},[145,6517,5442],{"href":5584},[312,6519,6520],{},[145,6521,5595],{"href":5727},[312,6523,6524],{},[145,6525,5809],{"href":5960},{"title":30,"searchDepth":44,"depth":44,"links":6527},[],"Essential apt commands for managing packages on Debian-based Linux distributions like Ubuntu.",{},"/apt/overview",{"title":5462,"description":6528},"apt/overview",[5462,5588,5589,5590,5591],"995m3UzAxkShUJoeCbaLWUfYVtbtXraA-rt4nwQKHzI",{"id":6536,"title":6501,"body":6537,"date":402,"description":6645,"extension":404,"meta":6646,"navigation":61,"order":242,"path":6500,"seo":6647,"stem":6648,"subject":5462,"tags":6649,"__hash__":6650},"topics/apt/package-information.md",{"type":8,"value":6538,"toc":6642},[6539,6542,6639],[11,6540,6501],{"id":6541},"package-information",[25,6543,6545],{"className":27,"code":6544,"language":29,"meta":30,"style":30},"# Show package details\napt show \u003Cpackage>\n\n# Show package dependencies\napt depends \u003Cpackage>\n\n# Show reverse dependencies\napt rdepends \u003Cpackage>\n\n# Show package policy (versions and priorities)\napt policy \u003Cpackage>\n",[20,6546,6547,6552,6567,6571,6576,6591,6595,6600,6615,6619,6624],{"__ignoreMap":30},[34,6548,6549],{"class":36,"line":37},[34,6550,6551],{"class":40},"# Show package details\n",[34,6553,6554,6556,6559,6561,6563,6565],{"class":36,"line":44},[34,6555,5462],{"class":47},[34,6557,6558],{"class":54}," show",[34,6560,5470],{"class":580},[34,6562,5473],{"class":54},[34,6564,5476],{"class":181},[34,6566,1248],{"class":580},[34,6568,6569],{"class":36,"line":58},[34,6570,62],{"emptyLinePlaceholder":61},[34,6572,6573],{"class":36,"line":65},[34,6574,6575],{"class":40},"# Show package dependencies\n",[34,6577,6578,6580,6583,6585,6587,6589],{"class":36,"line":71},[34,6579,5462],{"class":47},[34,6581,6582],{"class":54}," depends",[34,6584,5470],{"class":580},[34,6586,5473],{"class":54},[34,6588,5476],{"class":181},[34,6590,1248],{"class":580},[34,6592,6593],{"class":36,"line":77},[34,6594,62],{"emptyLinePlaceholder":61},[34,6596,6597],{"class":36,"line":82},[34,6598,6599],{"class":40},"# Show reverse dependencies\n",[34,6601,6602,6604,6607,6609,6611,6613],{"class":36,"line":88},[34,6603,5462],{"class":47},[34,6605,6606],{"class":54}," rdepends",[34,6608,5470],{"class":580},[34,6610,5473],{"class":54},[34,6612,5476],{"class":181},[34,6614,1248],{"class":580},[34,6616,6617],{"class":36,"line":242},[34,6618,62],{"emptyLinePlaceholder":61},[34,6620,6621],{"class":36,"line":250},[34,6622,6623],{"class":40},"# Show package policy (versions and priorities)\n",[34,6625,6626,6628,6631,6633,6635,6637],{"class":36,"line":263},[34,6627,5462],{"class":47},[34,6629,6630],{"class":54}," policy",[34,6632,5470],{"class":580},[34,6634,5473],{"class":54},[34,6636,5476],{"class":181},[34,6638,1248],{"class":580},[388,6640,6641],{},"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 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 .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":30,"searchDepth":44,"depth":44,"links":6643},[6644],{"id":6541,"depth":44,"text":6501},"Package Information in apt.",{},{"title":6501,"description":6645},"apt/package-information",[5462,5588,5589,5590,5591],"Jm2KU7ReLuGoXhnuAbbFD-G2FYiQ_haeUCl5vBbSsEo",{"id":6652,"title":6479,"body":6653,"date":402,"description":6752,"extension":404,"meta":6753,"navigation":61,"order":71,"path":6478,"seo":6754,"stem":6755,"subject":5462,"tags":6756,"__hash__":6757},"topics/apt/removing-packages.md",{"type":8,"value":6654,"toc":6749},[6655,6658,6747],[11,6656,6479],{"id":6657},"removing-packages",[25,6659,6661],{"className":27,"code":6660,"language":29,"meta":30,"style":30},"# Remove a package (keep configuration files)\nsudo apt remove \u003Cpackage>\n\n# Remove package and configuration files\nsudo apt purge \u003Cpackage>\n\n# Remove unused dependencies\nsudo apt autoremove\n\n# Remove unused dependencies and config files\nsudo apt autoremove --purge\n",[20,6662,6663,6668,6685,6689,6694,6710,6714,6719,6727,6731,6736],{"__ignoreMap":30},[34,6664,6665],{"class":36,"line":37},[34,6666,6667],{"class":40},"# Remove a package (keep configuration files)\n",[34,6669,6670,6672,6674,6677,6679,6681,6683],{"class":36,"line":44},[34,6671,436],{"class":47},[34,6673,439],{"class":54},[34,6675,6676],{"class":54}," remove",[34,6678,5470],{"class":580},[34,6680,5473],{"class":54},[34,6682,5476],{"class":181},[34,6684,1248],{"class":580},[34,6686,6687],{"class":36,"line":58},[34,6688,62],{"emptyLinePlaceholder":61},[34,6690,6691],{"class":36,"line":65},[34,6692,6693],{"class":40},"# Remove package and configuration files\n",[34,6695,6696,6698,6700,6702,6704,6706,6708],{"class":36,"line":71},[34,6697,436],{"class":47},[34,6699,439],{"class":54},[34,6701,5914],{"class":54},[34,6703,5470],{"class":580},[34,6705,5473],{"class":54},[34,6707,5476],{"class":181},[34,6709,1248],{"class":580},[34,6711,6712],{"class":36,"line":77},[34,6713,62],{"emptyLinePlaceholder":61},[34,6715,6716],{"class":36,"line":82},[34,6717,6718],{"class":40},"# Remove unused dependencies\n",[34,6720,6721,6723,6725],{"class":36,"line":88},[34,6722,436],{"class":47},[34,6724,439],{"class":54},[34,6726,5700],{"class":54},[34,6728,6729],{"class":36,"line":242},[34,6730,62],{"emptyLinePlaceholder":61},[34,6732,6733],{"class":36,"line":250},[34,6734,6735],{"class":40},"# Remove unused dependencies and config files\n",[34,6737,6738,6740,6742,6744],{"class":36,"line":263},[34,6739,436],{"class":47},[34,6741,439],{"class":54},[34,6743,5852],{"class":54},[34,6745,6746],{"class":50}," --purge\n",[388,6748,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":6750},[6751],{"id":6657,"depth":44,"text":6479},"Removing Packages in apt.",{},{"title":6479,"description":6752},"apt/removing-packages",[5462,5588,5589,5590,5591],"ZOzRkj6AVmiWYAR8AWPl_M42t52ZYlmHGlmhQpstSJY",{"id":6759,"title":6491,"body":6760,"date":402,"description":6893,"extension":404,"meta":6894,"navigation":61,"order":82,"path":6490,"seo":6895,"stem":6896,"subject":5462,"tags":6897,"__hash__":6898},"topics/apt/searching-packages.md",{"type":8,"value":6761,"toc":6890},[6762,6765,6888],[11,6763,6491],{"id":6764},"searching-packages",[25,6766,6768],{"className":27,"code":6767,"language":29,"meta":30,"style":30},"# Search for a package\napt search \u003Ckeyword>\n\n# Search with more details\napt search --full \u003Ckeyword>\n\n# Search package names only\napt search --names-only \u003Ckeyword>\n\n# Show package details\napt show \u003Cpackage>\n\n# Show all available versions\napt list -a \u003Cpackage>\n",[20,6769,6770,6775,6789,6793,6798,6815,6819,6824,6841,6845,6849,6863,6867,6872],{"__ignoreMap":30},[34,6771,6772],{"class":36,"line":37},[34,6773,6774],{"class":40},"# Search for a package\n",[34,6776,6777,6779,6781,6783,6785,6787],{"class":36,"line":44},[34,6778,5462],{"class":47},[34,6780,5870],{"class":54},[34,6782,5470],{"class":580},[34,6784,5875],{"class":54},[34,6786,5878],{"class":181},[34,6788,1248],{"class":580},[34,6790,6791],{"class":36,"line":58},[34,6792,62],{"emptyLinePlaceholder":61},[34,6794,6795],{"class":36,"line":65},[34,6796,6797],{"class":40},"# Search with more details\n",[34,6799,6800,6802,6804,6807,6809,6811,6813],{"class":36,"line":71},[34,6801,5462],{"class":47},[34,6803,5870],{"class":54},[34,6805,6806],{"class":50}," --full",[34,6808,5470],{"class":580},[34,6810,5875],{"class":54},[34,6812,5878],{"class":181},[34,6814,1248],{"class":580},[34,6816,6817],{"class":36,"line":77},[34,6818,62],{"emptyLinePlaceholder":61},[34,6820,6821],{"class":36,"line":82},[34,6822,6823],{"class":40},"# Search package names only\n",[34,6825,6826,6828,6830,6833,6835,6837,6839],{"class":36,"line":88},[34,6827,5462],{"class":47},[34,6829,5870],{"class":54},[34,6831,6832],{"class":50}," --names-only",[34,6834,5470],{"class":580},[34,6836,5875],{"class":54},[34,6838,5878],{"class":181},[34,6840,1248],{"class":580},[34,6842,6843],{"class":36,"line":242},[34,6844,62],{"emptyLinePlaceholder":61},[34,6846,6847],{"class":36,"line":250},[34,6848,6551],{"class":40},[34,6850,6851,6853,6855,6857,6859,6861],{"class":36,"line":263},[34,6852,5462],{"class":47},[34,6854,6558],{"class":54},[34,6856,5470],{"class":580},[34,6858,5473],{"class":54},[34,6860,5476],{"class":181},[34,6862,1248],{"class":580},[34,6864,6865],{"class":36,"line":275},[34,6866,62],{"emptyLinePlaceholder":61},[34,6868,6869],{"class":36,"line":700},[34,6870,6871],{"class":40},"# Show all available versions\n",[34,6873,6874,6876,6878,6880,6882,6884,6886],{"class":36,"line":706},[34,6875,5462],{"class":47},[34,6877,6345],{"class":54},[34,6879,5059],{"class":50},[34,6881,5470],{"class":580},[34,6883,5473],{"class":54},[34,6885,5476],{"class":181},[34,6887,1248],{"class":580},[388,6889,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":6891},[6892],{"id":6764,"depth":44,"text":6491},"Searching Packages in apt.",{},{"title":6491,"description":6893},"apt/searching-packages",[5462,5588,5589,5590,5591],"qltf8a7lEiwTOUvC1nF_ifV1EoitU_n6ehGj9D4KGfA",{"id":6900,"title":6469,"body":6901,"date":402,"description":6955,"extension":404,"meta":6956,"navigation":61,"order":58,"path":6468,"seo":6957,"stem":6958,"subject":5462,"tags":6959,"__hash__":6960},"topics/apt/updating-package-lists.md",{"type":8,"value":6902,"toc":6952},[6903,6906,6949],[11,6904,6469],{"id":6905},"updating-package-lists",[25,6907,6909],{"className":27,"code":6908,"language":29,"meta":30,"style":30},"# Update package lists from repositories\nsudo apt update\n\n# Update and show upgradable packages\nsudo apt update && apt list --upgradable\n",[20,6910,6911,6916,6924,6928,6933],{"__ignoreMap":30},[34,6912,6913],{"class":36,"line":37},[34,6914,6915],{"class":40},"# Update package lists from repositories\n",[34,6917,6918,6920,6922],{"class":36,"line":44},[34,6919,436],{"class":47},[34,6921,439],{"class":54},[34,6923,6441],{"class":54},[34,6925,6926],{"class":36,"line":58},[34,6927,62],{"emptyLinePlaceholder":61},[34,6929,6930],{"class":36,"line":65},[34,6931,6932],{"class":40},"# Update and show upgradable packages\n",[34,6934,6935,6937,6939,6941,6943,6945,6947],{"class":36,"line":71},[34,6936,436],{"class":47},[34,6938,439],{"class":54},[34,6940,5619],{"class":54},[34,6942,5622],{"class":181},[34,6944,5462],{"class":47},[34,6946,6345],{"class":54},[34,6948,6366],{"class":50},[388,6950,6951],{},"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 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":30,"searchDepth":44,"depth":44,"links":6953},[6954],{"id":6905,"depth":44,"text":6469},"Updating Package Lists in apt.",{},{"title":6469,"description":6955},"apt/updating-package-lists",[5462,5588,5589,5590,5591],"b86N1Yi7BfILiGHipzSNgbXFQMEtmbfzKHXb2UvteVw",{"id":6962,"title":6485,"body":6963,"date":402,"description":7047,"extension":404,"meta":7048,"navigation":61,"order":77,"path":6484,"seo":7049,"stem":7050,"subject":5462,"tags":7051,"__hash__":7052},"topics/apt/upgrading-packages.md",{"type":8,"value":6964,"toc":7044},[6965,6968,7042],[11,6966,6485],{"id":6967},"upgrading-packages",[25,6969,6971],{"className":27,"code":6970,"language":29,"meta":30,"style":30},"# Upgrade all installed packages\nsudo apt upgrade\n\n# Upgrade with automatic handling of dependencies\nsudo apt full-upgrade\nsudo apt dist-upgrade\n\n# Upgrade a specific package\nsudo apt install --only-upgrade \u003Cpackage>\n",[20,6972,6973,6978,6987,6991,6996,7005,7014,7018,7023],{"__ignoreMap":30},[34,6974,6975],{"class":36,"line":37},[34,6976,6977],{"class":40},"# Upgrade all installed packages\n",[34,6979,6980,6982,6984],{"class":36,"line":44},[34,6981,436],{"class":47},[34,6983,439],{"class":54},[34,6985,6986],{"class":54}," upgrade\n",[34,6988,6989],{"class":36,"line":58},[34,6990,62],{"emptyLinePlaceholder":61},[34,6992,6993],{"class":36,"line":65},[34,6994,6995],{"class":40},"# Upgrade with automatic handling of dependencies\n",[34,6997,6998,7000,7002],{"class":36,"line":71},[34,6999,436],{"class":47},[34,7001,439],{"class":54},[34,7003,7004],{"class":54}," full-upgrade\n",[34,7006,7007,7009,7011],{"class":36,"line":77},[34,7008,436],{"class":47},[34,7010,439],{"class":54},[34,7012,7013],{"class":54}," dist-upgrade\n",[34,7015,7016],{"class":36,"line":82},[34,7017,62],{"emptyLinePlaceholder":61},[34,7019,7020],{"class":36,"line":88},[34,7021,7022],{"class":40},"# Upgrade a specific package\n",[34,7024,7025,7027,7029,7031,7034,7036,7038,7040],{"class":36,"line":242},[34,7026,436],{"class":47},[34,7028,439],{"class":54},[34,7030,118],{"class":54},[34,7032,7033],{"class":50}," --only-upgrade",[34,7035,5470],{"class":580},[34,7037,5473],{"class":54},[34,7039,5476],{"class":181},[34,7041,1248],{"class":580},[388,7043,5578],{},{"title":30,"searchDepth":44,"depth":44,"links":7045},[7046],{"id":6967,"depth":44,"text":6485},"Upgrading Packages in apt.",{},{"title":6485,"description":7047},"apt/upgrading-packages",[5462,5588,5589,5590,5591],"0alAVfP_hKbOnmgpIZzLIMYpf-qkVqcuX0EEHNjOu0g",{"id":7054,"title":7055,"body":7056,"date":402,"description":7694,"extension":404,"meta":7695,"navigation":61,"order":37,"path":7696,"seo":7697,"stem":7698,"subject":7217,"tags":7699,"__hash__":7704},"topics/argocd/overview.md","Argo CD",{"type":8,"value":7057,"toc":7686},[7058,7060,7127,7131,7233,7237,7309,7483,7487,7557,7561,7611,7615,7683],[11,7059,97],{"id":96},[25,7061,7063],{"className":27,"code":7062,"language":29,"meta":30,"style":30},"# Install to Kubernetes cluster\nkubectl create namespace argocd\nkubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml\n\n# Install CLI\nbrew install argocd                 # macOS\n# Or download binary from GitHub releases\n",[20,7064,7065,7070,7084,7102,7106,7111,7122],{"__ignoreMap":30},[34,7066,7067],{"class":36,"line":37},[34,7068,7069],{"class":40},"# Install to Kubernetes cluster\n",[34,7071,7072,7075,7078,7081],{"class":36,"line":44},[34,7073,7074],{"class":47},"kubectl",[34,7076,7077],{"class":54}," create",[34,7079,7080],{"class":54}," namespace",[34,7082,7083],{"class":54}," argocd\n",[34,7085,7086,7088,7091,7094,7097,7099],{"class":36,"line":58},[34,7087,7074],{"class":47},[34,7089,7090],{"class":54}," apply",[34,7092,7093],{"class":50}," -n",[34,7095,7096],{"class":54}," argocd",[34,7098,6001],{"class":50},[34,7100,7101],{"class":54}," https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml\n",[34,7103,7104],{"class":36,"line":65},[34,7105,62],{"emptyLinePlaceholder":61},[34,7107,7108],{"class":36,"line":71},[34,7109,7110],{"class":40},"# Install CLI\n",[34,7112,7113,7115,7117,7119],{"class":36,"line":77},[34,7114,115],{"class":47},[34,7116,118],{"class":54},[34,7118,7096],{"class":54},[34,7120,7121],{"class":40},"                 # macOS\n",[34,7123,7124],{"class":36,"line":82},[34,7125,7126],{"class":40},"# Or download binary from GitHub releases\n",[11,7128,7130],{"id":7129},"access-the-ui","Access the UI",[25,7132,7134],{"className":27,"code":7133,"language":29,"meta":30,"style":30},"# Port-forward to access locally\nkubectl port-forward svc/argocd-server -n argocd 8080:443\n\n# Get initial admin password\nkubectl get secret argocd-initial-admin-secret -n argocd \\\n  -o jsonpath=\"{.data.password}\" | base64 -d\n\n# Login via CLI\nargocd login localhost:8080 --username admin --insecure\n",[20,7135,7136,7141,7158,7162,7167,7187,7204,7208,7213],{"__ignoreMap":30},[34,7137,7138],{"class":36,"line":37},[34,7139,7140],{"class":40},"# Port-forward to access locally\n",[34,7142,7143,7145,7148,7151,7153,7155],{"class":36,"line":44},[34,7144,7074],{"class":47},[34,7146,7147],{"class":54}," port-forward",[34,7149,7150],{"class":54}," svc/argocd-server",[34,7152,7093],{"class":50},[34,7154,7096],{"class":54},[34,7156,7157],{"class":54}," 8080:443\n",[34,7159,7160],{"class":36,"line":58},[34,7161,62],{"emptyLinePlaceholder":61},[34,7163,7164],{"class":36,"line":65},[34,7165,7166],{"class":40},"# Get initial admin password\n",[34,7168,7169,7171,7174,7177,7180,7182,7184],{"class":36,"line":71},[34,7170,7074],{"class":47},[34,7172,7173],{"class":54}," get",[34,7175,7176],{"class":54}," secret",[34,7178,7179],{"class":54}," argocd-initial-admin-secret",[34,7181,7093],{"class":50},[34,7183,7096],{"class":54},[34,7185,7186],{"class":50}," \\\n",[34,7188,7189,7192,7195,7198,7201],{"class":36,"line":77},[34,7190,7191],{"class":50},"  -o",[34,7193,7194],{"class":54}," jsonpath=\"{.data.password}\"",[34,7196,7197],{"class":580}," |",[34,7199,7200],{"class":47}," base64",[34,7202,7203],{"class":50}," -d\n",[34,7205,7206],{"class":36,"line":82},[34,7207,62],{"emptyLinePlaceholder":61},[34,7209,7210],{"class":36,"line":88},[34,7211,7212],{"class":40},"# Login via CLI\n",[34,7214,7215,7218,7221,7224,7227,7230],{"class":36,"line":242},[34,7216,7217],{"class":47},"argocd",[34,7219,7220],{"class":54}," login",[34,7222,7223],{"class":54}," localhost:8080",[34,7225,7226],{"class":50}," --username",[34,7228,7229],{"class":54}," admin",[34,7231,7232],{"class":50}," --insecure\n",[11,7234,7236],{"id":7235},"create-an-application","Create an Application",[25,7238,7240],{"className":27,"code":7239,"language":29,"meta":30,"style":30},"# CLI\nargocd app create my-app \\\n  --repo https://github.com/my-org/my-app \\\n  --path deploy/production \\\n  --dest-server https://kubernetes.default.svc \\\n  --dest-namespace default \\\n  --sync-policy automated\n",[20,7241,7242,7247,7261,7271,7281,7291,7301],{"__ignoreMap":30},[34,7243,7244],{"class":36,"line":37},[34,7245,7246],{"class":40},"# CLI\n",[34,7248,7249,7251,7254,7256,7259],{"class":36,"line":44},[34,7250,7217],{"class":47},[34,7252,7253],{"class":54}," app",[34,7255,7077],{"class":54},[34,7257,7258],{"class":54}," my-app",[34,7260,7186],{"class":50},[34,7262,7263,7266,7269],{"class":36,"line":58},[34,7264,7265],{"class":50},"  --repo",[34,7267,7268],{"class":54}," https://github.com/my-org/my-app",[34,7270,7186],{"class":50},[34,7272,7273,7276,7279],{"class":36,"line":65},[34,7274,7275],{"class":50},"  --path",[34,7277,7278],{"class":54}," deploy/production",[34,7280,7186],{"class":50},[34,7282,7283,7286,7289],{"class":36,"line":71},[34,7284,7285],{"class":50},"  --dest-server",[34,7287,7288],{"class":54}," https://kubernetes.default.svc",[34,7290,7186],{"class":50},[34,7292,7293,7296,7299],{"class":36,"line":77},[34,7294,7295],{"class":50},"  --dest-namespace",[34,7297,7298],{"class":54}," default",[34,7300,7186],{"class":50},[34,7302,7303,7306],{"class":36,"line":82},[34,7304,7305],{"class":50},"  --sync-policy",[34,7307,7308],{"class":54}," automated\n",[25,7310,7312],{"className":168,"code":7311,"language":170,"meta":30,"style":30},"# Declarative (Application CRD)\napiVersion: argoproj.io/v1alpha1\nkind: Application\nmetadata:\n  name: my-app\n  namespace: argocd\nspec:\n  project: default\n  source:\n    repoURL: https://github.com/my-org/my-app\n    targetRevision: main\n    path: deploy/production\n  destination:\n    server: https://kubernetes.default.svc\n    namespace: default\n  syncPolicy:\n    automated:\n      prune: true        # delete resources removed from Git\n      selfHeal: true     # revert manual cluster changes\n",[20,7313,7314,7319,7329,7339,7346,7356,7366,7373,7383,7390,7400,7409,7419,7426,7436,7445,7452,7459,7471],{"__ignoreMap":30},[34,7315,7316],{"class":36,"line":37},[34,7317,7318],{"class":40},"# Declarative (Application CRD)\n",[34,7320,7321,7324,7326],{"class":36,"line":44},[34,7322,7323],{"class":177},"apiVersion",[34,7325,182],{"class":181},[34,7327,7328],{"class":54},"argoproj.io/v1alpha1\n",[34,7330,7331,7334,7336],{"class":36,"line":58},[34,7332,7333],{"class":177},"kind",[34,7335,182],{"class":181},[34,7337,7338],{"class":54},"Application\n",[34,7340,7341,7344],{"class":36,"line":65},[34,7342,7343],{"class":177},"metadata",[34,7345,193],{"class":181},[34,7347,7348,7351,7353],{"class":36,"line":71},[34,7349,7350],{"class":177},"  name",[34,7352,182],{"class":181},[34,7354,7355],{"class":54},"my-app\n",[34,7357,7358,7361,7363],{"class":36,"line":77},[34,7359,7360],{"class":177},"  namespace",[34,7362,182],{"class":181},[34,7364,7365],{"class":54},"argocd\n",[34,7367,7368,7371],{"class":36,"line":82},[34,7369,7370],{"class":177},"spec",[34,7372,193],{"class":181},[34,7374,7375,7378,7380],{"class":36,"line":88},[34,7376,7377],{"class":177},"  project",[34,7379,182],{"class":181},[34,7381,7382],{"class":54},"default\n",[34,7384,7385,7388],{"class":36,"line":242},[34,7386,7387],{"class":177},"  source",[34,7389,193],{"class":181},[34,7391,7392,7395,7397],{"class":36,"line":250},[34,7393,7394],{"class":177},"    repoURL",[34,7396,182],{"class":181},[34,7398,7399],{"class":54},"https://github.com/my-org/my-app\n",[34,7401,7402,7405,7407],{"class":36,"line":263},[34,7403,7404],{"class":177},"    targetRevision",[34,7406,182],{"class":181},[34,7408,215],{"class":54},[34,7410,7411,7414,7416],{"class":36,"line":275},[34,7412,7413],{"class":177},"    path",[34,7415,182],{"class":181},[34,7417,7418],{"class":54},"deploy/production\n",[34,7420,7421,7424],{"class":36,"line":700},[34,7422,7423],{"class":177},"  destination",[34,7425,193],{"class":181},[34,7427,7428,7431,7433],{"class":36,"line":706},[34,7429,7430],{"class":177},"    server",[34,7432,182],{"class":181},[34,7434,7435],{"class":54},"https://kubernetes.default.svc\n",[34,7437,7438,7441,7443],{"class":36,"line":715},[34,7439,7440],{"class":177},"    namespace",[34,7442,182],{"class":181},[34,7444,7382],{"class":54},[34,7446,7447,7450],{"class":36,"line":725},[34,7448,7449],{"class":177},"  syncPolicy",[34,7451,193],{"class":181},[34,7453,7454,7457],{"class":36,"line":734},[34,7455,7456],{"class":177},"    automated",[34,7458,193],{"class":181},[34,7460,7461,7464,7466,7468],{"class":36,"line":742},[34,7462,7463],{"class":177},"      prune",[34,7465,182],{"class":181},[34,7467,632],{"class":50},[34,7469,7470],{"class":40},"        # delete resources removed from Git\n",[34,7472,7473,7476,7478,7480],{"class":36,"line":748},[34,7474,7475],{"class":177},"      selfHeal",[34,7477,182],{"class":181},[34,7479,632],{"class":50},[34,7481,7482],{"class":40},"     # revert manual cluster changes\n",[11,7484,7486],{"id":7485},"sync-status","Sync & Status",[25,7488,7490],{"className":27,"code":7489,"language":29,"meta":30,"style":30},"# Manual sync\nargocd app sync my-app\n\n# Check status\nargocd app get my-app\nargocd app list\n\n# Diff (preview changes)\nargocd app diff my-app\n",[20,7491,7492,7497,7509,7513,7518,7528,7537,7541,7546],{"__ignoreMap":30},[34,7493,7494],{"class":36,"line":37},[34,7495,7496],{"class":40},"# Manual sync\n",[34,7498,7499,7501,7503,7506],{"class":36,"line":44},[34,7500,7217],{"class":47},[34,7502,7253],{"class":54},[34,7504,7505],{"class":54}," sync",[34,7507,7508],{"class":54}," my-app\n",[34,7510,7511],{"class":36,"line":58},[34,7512,62],{"emptyLinePlaceholder":61},[34,7514,7515],{"class":36,"line":65},[34,7516,7517],{"class":40},"# Check status\n",[34,7519,7520,7522,7524,7526],{"class":36,"line":71},[34,7521,7217],{"class":47},[34,7523,7253],{"class":54},[34,7525,7173],{"class":54},[34,7527,7508],{"class":54},[34,7529,7530,7532,7534],{"class":36,"line":77},[34,7531,7217],{"class":47},[34,7533,7253],{"class":54},[34,7535,7536],{"class":54}," list\n",[34,7538,7539],{"class":36,"line":82},[34,7540,62],{"emptyLinePlaceholder":61},[34,7542,7543],{"class":36,"line":88},[34,7544,7545],{"class":40},"# Diff (preview changes)\n",[34,7547,7548,7550,7552,7555],{"class":36,"line":242},[34,7549,7217],{"class":47},[34,7551,7253],{"class":54},[34,7553,7554],{"class":54}," diff",[34,7556,7508],{"class":54},[11,7558,7560],{"id":7559},"rollback","Rollback",[25,7562,7564],{"className":27,"code":7563,"language":29,"meta":30,"style":30},"# List history\nargocd app history my-app\n\n# Rollback to previous revision\nargocd app rollback my-app \u003Crevision-id>\n",[20,7565,7566,7571,7582,7586,7591],{"__ignoreMap":30},[34,7567,7568],{"class":36,"line":37},[34,7569,7570],{"class":40},"# List history\n",[34,7572,7573,7575,7577,7580],{"class":36,"line":44},[34,7574,7217],{"class":47},[34,7576,7253],{"class":54},[34,7578,7579],{"class":54}," history",[34,7581,7508],{"class":54},[34,7583,7584],{"class":36,"line":58},[34,7585,62],{"emptyLinePlaceholder":61},[34,7587,7588],{"class":36,"line":65},[34,7589,7590],{"class":40},"# Rollback to previous revision\n",[34,7592,7593,7595,7597,7600,7602,7604,7607,7609],{"class":36,"line":71},[34,7594,7217],{"class":47},[34,7596,7253],{"class":54},[34,7598,7599],{"class":54}," rollback",[34,7601,7258],{"class":54},[34,7603,5470],{"class":580},[34,7605,7606],{"class":54},"revision-i",[34,7608,5878],{"class":181},[34,7610,1248],{"class":580},[11,7612,7614],{"id":7613},"projects-rbac","Projects & RBAC",[25,7616,7618],{"className":27,"code":7617,"language":29,"meta":30,"style":30},"# Create project with restricted repos/clusters\nargocd proj create my-project \\\n  --src-repo https://github.com/my-org/* \\\n  --dest-namespace default \\\n  --dest-server https://kubernetes.default.svc\n\n# List projects\nargocd proj list\n",[20,7619,7620,7625,7639,7651,7659,7666,7670,7675],{"__ignoreMap":30},[34,7621,7622],{"class":36,"line":37},[34,7623,7624],{"class":40},"# Create project with restricted repos/clusters\n",[34,7626,7627,7629,7632,7634,7637],{"class":36,"line":44},[34,7628,7217],{"class":47},[34,7630,7631],{"class":54}," proj",[34,7633,7077],{"class":54},[34,7635,7636],{"class":54}," my-project",[34,7638,7186],{"class":50},[34,7640,7641,7644,7647,7649],{"class":36,"line":58},[34,7642,7643],{"class":50},"  --src-repo",[34,7645,7646],{"class":54}," https://github.com/my-org/",[34,7648,4289],{"class":50},[34,7650,7186],{"class":50},[34,7652,7653,7655,7657],{"class":36,"line":65},[34,7654,7295],{"class":50},[34,7656,7298],{"class":54},[34,7658,7186],{"class":50},[34,7660,7661,7663],{"class":36,"line":71},[34,7662,7285],{"class":50},[34,7664,7665],{"class":54}," https://kubernetes.default.svc\n",[34,7667,7668],{"class":36,"line":77},[34,7669,62],{"emptyLinePlaceholder":61},[34,7671,7672],{"class":36,"line":82},[34,7673,7674],{"class":40},"# List projects\n",[34,7676,7677,7679,7681],{"class":36,"line":88},[34,7678,7217],{"class":47},[34,7680,7631],{"class":54},[34,7682,7536],{"class":54},[388,7684,7685],{},"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 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);}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":30,"searchDepth":44,"depth":44,"links":7687},[7688,7689,7690,7691,7692,7693],{"id":96,"depth":44,"text":97},{"id":7129,"depth":44,"text":7130},{"id":7235,"depth":44,"text":7236},{"id":7485,"depth":44,"text":7486},{"id":7559,"depth":44,"text":7560},{"id":7613,"depth":44,"text":7614},"A declarative GitOps continuous delivery tool for Kubernetes.",{},"/argocd/overview",{"title":7055,"description":7694},"argocd/overview",[7217,7700,7701,7702,7703],"gitops","kubernetes","cd","continuous-delivery","vuyVCFwbonl_1BBrXLuaYxuPMBZDsMggSjMwvXynzMU",{"id":7706,"title":7707,"body":7708,"date":402,"description":7998,"extension":404,"meta":7999,"navigation":61,"order":37,"path":8000,"seo":8001,"stem":8002,"subject":7707,"tags":8003,"__hash__":8006},"topics/asdf/overview.md","asdf",{"type":8,"value":7709,"toc":7984},[7710,7712,7717,7721,7732,7734,7738,7776,7780,7829,7831,7835,7872,7876,7913,7917,7959,7963,7978,7981],[11,7711,14],{"id":13},[16,7713,7714,7716],{},[20,7715,7707],{}," is a multi-purpose version manager for various runtime environments. Through its plugin-based architecture, users can install and utilize multiple versions of programming languages, project runtimes, and more, all from the same interface.",[11,7718,7720],{"id":7719},"why-use-asdf","Why Use asdf?",[309,7722,7723,7726,7729],{},[312,7724,7725],{},"Unified interface for all runtime version controls.",[312,7727,7728],{},"Broad plugin repository supporting tools like Node.js, Python, Go, etc.",[312,7730,7731],{},"Easy to set global and local project runtime versions.",[11,7733,97],{"id":96},[102,7735,7737],{"id":7736},"with-package-managers-recommended","With Package Managers (Recommended)",[25,7739,7741],{"className":27,"code":7740,"language":29,"meta":30,"style":30},"# Install with Homebrew (macOS)\nbrew install asdf\n\n# For Arch Linux\npacman -S asdf\n",[20,7742,7743,7748,7757,7761,7766],{"__ignoreMap":30},[34,7744,7745],{"class":36,"line":37},[34,7746,7747],{"class":40},"# Install with Homebrew (macOS)\n",[34,7749,7750,7752,7754],{"class":36,"line":44},[34,7751,115],{"class":47},[34,7753,118],{"class":54},[34,7755,7756],{"class":54}," asdf\n",[34,7758,7759],{"class":36,"line":58},[34,7760,62],{"emptyLinePlaceholder":61},[34,7762,7763],{"class":36,"line":65},[34,7764,7765],{"class":40},"# For Arch Linux\n",[34,7767,7768,7771,7774],{"class":36,"line":71},[34,7769,7770],{"class":47},"pacman",[34,7772,7773],{"class":50}," -S",[34,7775,7756],{"class":54},[102,7777,7779],{"id":7778},"build-from-source","Build from Source",[25,7781,7783],{"className":27,"code":7782,"language":29,"meta":30,"style":30},"# Clone the repository\ngit clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.10.0\n\n# Add to shell configuration\n. $HOME/.asdf/asdf.sh\n",[20,7784,7785,7790,7810,7814,7819],{"__ignoreMap":30},[34,7786,7787],{"class":36,"line":37},[34,7788,7789],{"class":40},"# Clone the repository\n",[34,7791,7792,7795,7798,7801,7804,7807],{"class":36,"line":44},[34,7793,7794],{"class":47},"git",[34,7796,7797],{"class":54}," clone",[34,7799,7800],{"class":54}," https://github.com/asdf-vm/asdf.git",[34,7802,7803],{"class":54}," ~/.asdf",[34,7805,7806],{"class":50}," --branch",[34,7808,7809],{"class":54}," v0.10.0\n",[34,7811,7812],{"class":36,"line":58},[34,7813,62],{"emptyLinePlaceholder":61},[34,7815,7816],{"class":36,"line":65},[34,7817,7818],{"class":40},"# Add to shell configuration\n",[34,7820,7821,7823,7826],{"class":36,"line":71},[34,7822,151],{"class":50},[34,7824,7825],{"class":181}," $HOME",[34,7827,7828],{"class":54},"/.asdf/asdf.sh\n",[11,7830,155],{"id":154},[102,7832,7834],{"id":7833},"adding-plugins","Adding Plugins",[25,7836,7838],{"className":27,"code":7837,"language":29,"meta":30,"style":30},"# Add Node.js, Python, and Ruby plugins\nasdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git\nasdf plugin add python\n",[20,7839,7840,7845,7861],{"__ignoreMap":30},[34,7841,7842],{"class":36,"line":37},[34,7843,7844],{"class":40},"# Add Node.js, Python, and Ruby plugins\n",[34,7846,7847,7849,7852,7855,7858],{"class":36,"line":44},[34,7848,7707],{"class":47},[34,7850,7851],{"class":54}," plugin",[34,7853,7854],{"class":54}," add",[34,7856,7857],{"class":54}," nodejs",[34,7859,7860],{"class":54}," https://github.com/asdf-vm/asdf-nodejs.git\n",[34,7862,7863,7865,7867,7869],{"class":36,"line":58},[34,7864,7707],{"class":47},[34,7866,7851],{"class":54},[34,7868,7854],{"class":54},[34,7870,7871],{"class":54}," python\n",[102,7873,7875],{"id":7874},"installing-a-specific-version","Installing a Specific Version",[25,7877,7879],{"className":27,"code":7878,"language":29,"meta":30,"style":30},"# Install Python 3.10.0\nasdf install python 3.10.0\n\n# Check installed versions\nasdf list\n",[20,7880,7881,7886,7898,7902,7907],{"__ignoreMap":30},[34,7882,7883],{"class":36,"line":37},[34,7884,7885],{"class":40},"# Install Python 3.10.0\n",[34,7887,7888,7890,7892,7895],{"class":36,"line":44},[34,7889,7707],{"class":47},[34,7891,118],{"class":54},[34,7893,7894],{"class":54}," python",[34,7896,7897],{"class":50}," 3.10.0\n",[34,7899,7900],{"class":36,"line":58},[34,7901,62],{"emptyLinePlaceholder":61},[34,7903,7904],{"class":36,"line":65},[34,7905,7906],{"class":40},"# Check installed versions\n",[34,7908,7909,7911],{"class":36,"line":71},[34,7910,7707],{"class":47},[34,7912,7536],{"class":54},[102,7914,7916],{"id":7915},"switching-between-versions","Switching Between Versions",[25,7918,7920],{"className":27,"code":7919,"language":29,"meta":30,"style":30},"# Set Python globally\nasdf global python 3.10.0\n\n# Override version within a project\nasdf local python 3.9.1\n",[20,7921,7922,7927,7938,7942,7947],{"__ignoreMap":30},[34,7923,7924],{"class":36,"line":37},[34,7925,7926],{"class":40},"# Set Python globally\n",[34,7928,7929,7931,7934,7936],{"class":36,"line":44},[34,7930,7707],{"class":47},[34,7932,7933],{"class":54}," global",[34,7935,7894],{"class":54},[34,7937,7897],{"class":50},[34,7939,7940],{"class":36,"line":58},[34,7941,62],{"emptyLinePlaceholder":61},[34,7943,7944],{"class":36,"line":65},[34,7945,7946],{"class":40},"# Override version within a project\n",[34,7948,7949,7951,7954,7956],{"class":36,"line":71},[34,7950,7707],{"class":47},[34,7952,7953],{"class":54}," local",[34,7955,7894],{"class":54},[34,7957,7958],{"class":50}," 3.9.1\n",[11,7960,7962],{"id":7961},"tips","Tips",[309,7964,7965,7972],{},[312,7966,7967,7968,7971],{},"Run ",[20,7969,7970],{},"asdf list all \u003Cplugin>"," to view available versions.",[312,7973,7974,7975,151],{},"Keep your plugins updated with ",[20,7976,7977],{},"asdf plugin-update --all",[7979,7980],"hr",{},[388,7982,7983],{},"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 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);}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":30,"searchDepth":44,"depth":44,"links":7985},[7986,7987,7988,7992,7997],{"id":13,"depth":44,"text":14},{"id":7719,"depth":44,"text":7720},{"id":96,"depth":44,"text":97,"children":7989},[7990,7991],{"id":7736,"depth":58,"text":7737},{"id":7778,"depth":58,"text":7779},{"id":154,"depth":44,"text":155,"children":7993},[7994,7995,7996],{"id":7833,"depth":58,"text":7834},{"id":7874,"depth":58,"text":7875},{"id":7915,"depth":58,"text":7916},{"id":7961,"depth":44,"text":7962},"A tool version manager allowing easy management of multiple runtime versions.",{},"/asdf/overview",{"title":7707,"description":7998},"asdf/overview",[7707,5591,8004,8005],"versioning","development","UkSlAj6uhYbvMkWPu6bg0C-l3dg3dUOo6zdbNB_7jCk",{"id":8008,"title":8009,"body":8010,"date":402,"description":8444,"extension":404,"meta":8445,"navigation":61,"order":37,"path":8446,"seo":8447,"stem":8448,"subject":8449,"tags":8450,"__hash__":8453},"topics/assemblyscript/overview.md","AssemblyScript",{"type":8,"value":8011,"toc":8432},[8012,8014,8021,8163,8165,8168,8193,8196,8218,8222,8226,8234,8290,8294,8299,8367,8371,8382,8386,8394,8398,8409,8413,8421,8429],[11,8013,14],{"id":13},[16,8015,8016,8017,8020],{},"AssemblyScript compiles a variant of TypeScript to WebAssembly using ",[20,8018,8019],{},"Binaryen",", enabling efficient, statically-typed programming for the web and beyond.",[25,8022,8024],{"className":571,"code":8023,"language":573,"meta":30,"style":30},"// Fibonacci sequence example in AssemblyScript.\nexport function fib(n: i32): i32 {\n  var a = 0, b = 1;\n  if (n > 0) {\n    while (--n) {\n      let t = a + b;\n      a = b;\n      b = t;\n    }\n  }\n  return a;\n}\n",[20,8025,8026,8031,8058,8080,8094,8107,8124,8133,8143,8147,8151,8159],{"__ignoreMap":30},[34,8027,8028],{"class":36,"line":37},[34,8029,8030],{"class":40},"// Fibonacci sequence example in AssemblyScript.\n",[34,8032,8033,8035,8038,8041,8043,8045,8047,8050,8052,8054,8056],{"class":36,"line":44},[34,8034,652],{"class":580},[34,8036,8037],{"class":580}," function",[34,8039,8040],{"class":47}," fib",[34,8042,1607],{"class":181},[34,8044,6217],{"class":675},[34,8046,165],{"class":580},[34,8048,8049],{"class":47}," i32",[34,8051,1617],{"class":181},[34,8053,165],{"class":580},[34,8055,8049],{"class":47},[34,8057,661],{"class":181},[34,8059,8060,8063,8066,8068,8071,8074,8076,8078],{"class":36,"line":58},[34,8061,8062],{"class":580},"  var",[34,8064,8065],{"class":181}," a ",[34,8067,1301],{"class":580},[34,8069,8070],{"class":50}," 0",[34,8072,8073],{"class":181},", b ",[34,8075,1301],{"class":580},[34,8077,3567],{"class":50},[34,8079,593],{"class":181},[34,8081,8082,8085,8088,8090,8092],{"class":36,"line":65},[34,8083,8084],{"class":580},"  if",[34,8086,8087],{"class":181}," (n ",[34,8089,5691],{"class":580},[34,8091,8070],{"class":50},[34,8093,2416],{"class":181},[34,8095,8096,8099,8101,8104],{"class":36,"line":71},[34,8097,8098],{"class":580},"    while",[34,8100,3204],{"class":181},[34,8102,8103],{"class":580},"--",[34,8105,8106],{"class":181},"n) {\n",[34,8108,8109,8112,8115,8117,8119,8121],{"class":36,"line":77},[34,8110,8111],{"class":580},"      let",[34,8113,8114],{"class":181}," t ",[34,8116,1301],{"class":580},[34,8118,8065],{"class":181},[34,8120,2940],{"class":580},[34,8122,8123],{"class":181}," b;\n",[34,8125,8126,8129,8131],{"class":36,"line":82},[34,8127,8128],{"class":181},"      a ",[34,8130,1301],{"class":580},[34,8132,8123],{"class":181},[34,8134,8135,8138,8140],{"class":36,"line":88},[34,8136,8137],{"class":181},"      b ",[34,8139,1301],{"class":580},[34,8141,8142],{"class":181}," t;\n",[34,8144,8145],{"class":36,"line":242},[34,8146,3229],{"class":181},[34,8148,8149],{"class":36,"line":250},[34,8150,857],{"class":181},[34,8152,8153,8156],{"class":36,"line":263},[34,8154,8155],{"class":580},"  return",[34,8157,8158],{"class":181}," a;\n",[34,8160,8161],{"class":36,"line":275},[34,8162,693],{"class":181},[11,8164,6035],{"id":6040},[16,8166,8167],{},"To initialize a new AssemblyScript project, ensure Node.js is installed:",[25,8169,8171],{"className":27,"code":8170,"language":29,"meta":30,"style":30},"npm init\nnpm install assemblyscript --save-dev\n",[20,8172,8173,8181],{"__ignoreMap":30},[34,8174,8175,8178],{"class":36,"line":37},[34,8176,8177],{"class":47},"npm",[34,8179,8180],{"class":54}," init\n",[34,8182,8183,8185,8187,8190],{"class":36,"line":44},[34,8184,8177],{"class":47},[34,8186,118],{"class":54},[34,8188,8189],{"class":54}," assemblyscript",[34,8191,8192],{"class":50}," --save-dev\n",[16,8194,8195],{},"Compile your first module with:",[25,8197,8199],{"className":27,"code":8198,"language":29,"meta":30,"style":30},"npx asc index.ts -b output.wasm\n",[20,8200,8201],{"__ignoreMap":30},[34,8202,8203,8206,8209,8212,8215],{"class":36,"line":37},[34,8204,8205],{"class":47},"npx",[34,8207,8208],{"class":54}," asc",[34,8210,8211],{"class":54}," index.ts",[34,8213,8214],{"class":50}," -b",[34,8216,8217],{"class":54}," output.wasm\n",[11,8219,8221],{"id":8220},"features","Features",[102,8223,8225],{"id":8224},"from-a-webassembly-perspective","From a WebAssembly Perspective",[309,8227,8228,8231],{},[312,8229,8230],{},"Supports low-level operations via built-in WebAssembly instructions.",[312,8232,8233],{},"Efficient memory handling with direct load/store operations:",[25,8235,8237],{"className":571,"code":8236,"language":573,"meta":30,"style":30},"store\u003Ci32>(0, 42); // Writes 42 to memory at address 0.\nlet value = load\u003Ci32>(0); // Reads from memory at address 0.\n",[20,8238,8239,8264],{"__ignoreMap":30},[34,8240,8241,8244,8246,8249,8251,8253,8255,8258,8261],{"class":36,"line":37},[34,8242,8243],{"class":47},"store",[34,8245,815],{"class":181},[34,8247,8248],{"class":47},"i32",[34,8250,1737],{"class":181},[34,8252,2773],{"class":50},[34,8254,1798],{"class":181},[34,8256,8257],{"class":50},"42",[34,8259,8260],{"class":181},"); ",[34,8262,8263],{"class":40},"// Writes 42 to memory at address 0.\n",[34,8265,8266,8269,8272,8274,8277,8279,8281,8283,8285,8287],{"class":36,"line":44},[34,8267,8268],{"class":580},"let",[34,8270,8271],{"class":181}," value ",[34,8273,1301],{"class":580},[34,8275,8276],{"class":47}," load",[34,8278,815],{"class":181},[34,8280,8248],{"class":47},[34,8282,1737],{"class":181},[34,8284,2773],{"class":50},[34,8286,8260],{"class":181},[34,8288,8289],{"class":40},"// Reads from memory at address 0.\n",[102,8291,8293],{"id":8292},"from-a-javascript-perspective","From a JavaScript Perspective",[309,8295,8296],{},[312,8297,8298],{},"Includes a standard library similar to JavaScript:",[25,8300,8302],{"className":571,"code":8301,"language":573,"meta":30,"style":30},"let array = [1,2,3];\nlet sum = array.reduce((a, b) => a + b);\n",[20,8303,8304,8331],{"__ignoreMap":30},[34,8305,8306,8308,8311,8313,8316,8319,8322,8325,8327,8329],{"class":36,"line":37},[34,8307,8268],{"class":580},[34,8309,8310],{"class":181}," array ",[34,8312,1301],{"class":580},[34,8314,8315],{"class":181}," [",[34,8317,8318],{"class":50},"1",[34,8320,8321],{"class":181},",",[34,8323,8324],{"class":50},"2",[34,8326,8321],{"class":181},[34,8328,3162],{"class":50},[34,8330,3415],{"class":181},[34,8332,8333,8335,8338,8340,8343,8346,8349,8351,8353,8356,8358,8360,8362,8364],{"class":36,"line":44},[34,8334,8268],{"class":580},[34,8336,8337],{"class":181}," sum ",[34,8339,1301],{"class":580},[34,8341,8342],{"class":181}," array.",[34,8344,8345],{"class":47},"reduce",[34,8347,8348],{"class":181},"((",[34,8350,145],{"class":675},[34,8352,1798],{"class":181},[34,8354,8355],{"class":675},"b",[34,8357,4817],{"class":181},[34,8359,3361],{"class":580},[34,8361,8065],{"class":181},[34,8363,2940],{"class":580},[34,8365,8366],{"class":181}," b);\n",[11,8368,8370],{"id":8369},"common-use-cases","Common Use Cases",[309,8372,8373,8376,8379],{},[312,8374,8375],{},"CPU-intensive tasks (e.g., image manipulation, game logic).",[312,8377,8378],{},"Leveraging WebAssembly’s efficiency for browser and non-browser environments.",[312,8380,8381],{},"Adoption in hybrid applications—TypeScript for user interfaces and AssemblyScript for computation.",[11,8383,8385],{"id":8384},"debugging-and-configuration","Debugging and Configuration",[309,8387,8388,8391],{},[312,8389,8390],{},"Supports host bindings for JavaScript/Node.js interoperability.",[312,8392,8393],{},"Customizable memory management and portability options.",[11,8395,8397],{"id":8396},"advantages","Advantages",[309,8399,8400,8403,8406],{},[312,8401,8402],{},"Familiar syntax for TypeScript developers.",[312,8404,8405],{},"Lightweight compiled binaries.",[312,8407,8408],{},"Potential for significant performance improvements in computational workloads.",[11,8410,8412],{"id":8411},"challenges","Challenges",[309,8414,8415,8418],{},[312,8416,8417],{},"Limited support for dynamic typing versus TypeScript.",[312,8419,8420],{},"May require dependency adjustments for npm packages.",[16,8422,8423,8424,151],{},"For full documentation, visit the ",[145,8425,8428],{"href":8426,"rel":8427},"https://www.assemblyscript.org/",[149],"AssemblyScript website",[388,8430,8431],{},"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 .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 .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 .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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":30,"searchDepth":44,"depth":44,"links":8433},[8434,8435,8436,8440,8441,8442,8443],{"id":13,"depth":44,"text":14},{"id":6040,"depth":44,"text":6035},{"id":8220,"depth":44,"text":8221,"children":8437},[8438,8439],{"id":8224,"depth":58,"text":8225},{"id":8292,"depth":58,"text":8293},{"id":8369,"depth":44,"text":8370},{"id":8384,"depth":44,"text":8385},{"id":8396,"depth":44,"text":8397},{"id":8411,"depth":44,"text":8412},"Quick guide to AssemblyScript, a TypeScript-inspired language for compiling WebAssembly modules.",{},"/assemblyscript/overview",{"title":8009,"description":8444},"assemblyscript/overview","assemblyscript",[8449,573,8451,8452],"webassembly","wasm","7PE5Z2RHoBxJGxqrslS56nEMj1prC4jlsxSQ1e-gsiU",{"id":8455,"title":8456,"body":8457,"date":402,"description":8599,"extension":404,"meta":8600,"navigation":61,"order":37,"path":8601,"seo":8602,"stem":8603,"subject":8577,"tags":8604,"__hash__":8608},"topics/astro/overview.md","Astro",{"type":8,"value":8458,"toc":8592},[8459,8463,8466,8493,8495,8499,8503,8506,8560,8566,8570,8573,8584,8589],[11,8460,8462],{"id":8461},"overview-of-astro","Overview of Astro",[16,8464,8465],{},"Astro is a lightweight and innovative JavaScript framework that enables developers to build fast, optimized, and content-focused websites efficiently. Using Astro, developers can reduce JavaScript overhead and opt for multi-page applications without the complexity of single-page app (SPA) frameworks. Here are some highlights:",[309,8467,8468,8475,8481,8487],{},[312,8469,8470,8474],{},[8471,8472,8473],"strong",{},"Server-first rendering:"," Ensures performance by prioritizing server-processed HTML over client-side rendering.",[312,8476,8477,8480],{},[8471,8478,8479],{},"Content-driven design:"," Built for websites focused on delivering rich content, such as blogs, e-commerce, and portfolios.",[312,8482,8483,8486],{},[8471,8484,8485],{},"Zero JavaScript by default:"," Reduces unnecessary JavaScript to enhance load times and user experience.",[312,8488,8489,8492],{},[8471,8490,8491],{},"Island Architecture:"," Enables partial client-side interactivity while keeping the rest of the page static.",[7979,8494],{},[11,8496,8498],{"id":8497},"key-features","Key Features",[102,8500,8502],{"id":8501},"server-driven-development","Server-driven Development",[16,8504,8505],{},"Astro adopts a \"HTML-first\" approach where pages are rendered server-side, reducing browser workload. For example:",[25,8507,8509],{"className":1162,"code":8508,"language":1164,"meta":30,"style":30},"\u003Ctemplate>\n  \u003Cmain>\n    \u003Ch1>Hello from Astro\u003C/h1>\n  \u003C/main>\n\u003C/template>\n",[20,8510,8511,8520,8529,8543,8552],{"__ignoreMap":30},[34,8512,8513,8515,8518],{"class":36,"line":37},[34,8514,815],{"class":181},[34,8516,8517],{"class":177},"template",[34,8519,1248],{"class":181},[34,8521,8522,8524,8527],{"class":36,"line":44},[34,8523,1181],{"class":181},[34,8525,8526],{"class":177},"main",[34,8528,1248],{"class":181},[34,8530,8531,8533,8536,8539,8541],{"class":36,"line":58},[34,8532,1294],{"class":181},[34,8534,8535],{"class":177},"h1",[34,8537,8538],{"class":181},">Hello from Astro\u003C/",[34,8540,8535],{"class":177},[34,8542,1248],{"class":181},[34,8544,8545,8548,8550],{"class":36,"line":65},[34,8546,8547],{"class":181},"  \u003C/",[34,8549,8526],{"class":177},[34,8551,1248],{"class":181},[34,8553,8554,8556,8558],{"class":36,"line":71},[34,8555,2089],{"class":181},[34,8557,8517],{"class":177},[34,8559,1248],{"class":181},[16,8561,8562],{},[8563,8564,8565],"em",{},"Comment: This renders a static HTML template for faster page loads.",[102,8567,8569],{"id":8568},"flexible-framework-integration","Flexible Framework Integration",[16,8571,8572],{},"Astro supports React, Vue, Svelte, and more with the following syntax:",[25,8574,8578],{"className":8575,"code":8576,"language":8577,"meta":30,"style":30},"language-astro shiki shiki-themes github-light github-dark","\u003CCounter client:load/>\n","astro",[20,8579,8580],{"__ignoreMap":30},[34,8581,8582],{"class":36,"line":37},[34,8583,8576],{},[16,8585,8586],{},[8563,8587,8588],{},"Comment: Loads your interactive counter component on client events.",[388,8590,8591],{},"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 .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":30,"searchDepth":44,"depth":44,"links":8593},[8594,8595],{"id":8461,"depth":44,"text":8462},{"id":8497,"depth":44,"text":8498,"children":8596},[8597,8598],{"id":8501,"depth":58,"text":8502},{"id":8568,"depth":58,"text":8569},"Astro is a modern framework designed to build optimized, content-driven websites using a server-first approach and minimal JavaScript.",{},"/astro/overview",{"title":8456,"description":8599},"astro/overview",[8577,8605,8606,8607],"framework","javascript","static sites","U_tZMqgO9DWx5U_Oz3Nizs62GasHqSHQ5dSpIJ9anOs",{"id":8610,"title":8611,"body":8612,"date":402,"description":9286,"extension":404,"meta":9287,"navigation":61,"order":37,"path":9288,"seo":9289,"stem":9290,"subject":9291,"tags":9292,"__hash__":9294},"topics/aws-cli/overview.md","AWS CLI",{"type":8,"value":8613,"toc":9277},[8614,8616,8684,8687,8769,8773,8905,8909,9013,9017,9099,9103,9204,9208,9274],[11,8615,97],{"id":96},[25,8617,8619],{"className":27,"code":8618,"language":29,"meta":30,"style":30},"# macOS\nbrew install awscli\n\n# Linux\ncurl \"https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip\" -o \"awscliv2.zip\"\nunzip awscliv2.zip && sudo ./aws/install\n\naws --version\n",[20,8620,8621,8626,8635,8639,8644,8658,8673,8677],{"__ignoreMap":30},[34,8622,8623],{"class":36,"line":37},[34,8624,8625],{"class":40},"# macOS\n",[34,8627,8628,8630,8632],{"class":36,"line":44},[34,8629,115],{"class":47},[34,8631,118],{"class":54},[34,8633,8634],{"class":54}," awscli\n",[34,8636,8637],{"class":36,"line":58},[34,8638,62],{"emptyLinePlaceholder":61},[34,8640,8641],{"class":36,"line":65},[34,8642,8643],{"class":40},"# Linux\n",[34,8645,8646,8649,8652,8655],{"class":36,"line":71},[34,8647,8648],{"class":47},"curl",[34,8650,8651],{"class":54}," \"https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip\"",[34,8653,8654],{"class":50}," -o",[34,8656,8657],{"class":54}," \"awscliv2.zip\"\n",[34,8659,8660,8663,8666,8668,8670],{"class":36,"line":77},[34,8661,8662],{"class":47},"unzip",[34,8664,8665],{"class":54}," awscliv2.zip",[34,8667,5622],{"class":181},[34,8669,436],{"class":47},[34,8671,8672],{"class":54}," ./aws/install\n",[34,8674,8675],{"class":36,"line":82},[34,8676,62],{"emptyLinePlaceholder":61},[34,8678,8679,8682],{"class":36,"line":88},[34,8680,8681],{"class":47},"aws",[34,8683,5013],{"class":50},[11,8685,8686],{"id":558},"Configuration",[25,8688,8690],{"className":27,"code":8689,"language":29,"meta":30,"style":30},"# Interactive setup\naws configure\n\n# Prompts for:\n# AWS Access Key ID\n# AWS Secret Access Key\n# Default region (e.g. us-east-1)\n# Default output format (json | yaml | table | text)\n\n# Named profiles\naws configure --profile prod\naws s3 ls --profile prod\n",[20,8691,8692,8697,8704,8708,8713,8718,8723,8728,8733,8737,8742,8755],{"__ignoreMap":30},[34,8693,8694],{"class":36,"line":37},[34,8695,8696],{"class":40},"# Interactive setup\n",[34,8698,8699,8701],{"class":36,"line":44},[34,8700,8681],{"class":47},[34,8702,8703],{"class":54}," configure\n",[34,8705,8706],{"class":36,"line":58},[34,8707,62],{"emptyLinePlaceholder":61},[34,8709,8710],{"class":36,"line":65},[34,8711,8712],{"class":40},"# Prompts for:\n",[34,8714,8715],{"class":36,"line":71},[34,8716,8717],{"class":40},"# AWS Access Key ID\n",[34,8719,8720],{"class":36,"line":77},[34,8721,8722],{"class":40},"# AWS Secret Access Key\n",[34,8724,8725],{"class":36,"line":82},[34,8726,8727],{"class":40},"# Default region (e.g. us-east-1)\n",[34,8729,8730],{"class":36,"line":88},[34,8731,8732],{"class":40},"# Default output format (json | yaml | table | text)\n",[34,8734,8735],{"class":36,"line":242},[34,8736,62],{"emptyLinePlaceholder":61},[34,8738,8739],{"class":36,"line":250},[34,8740,8741],{"class":40},"# Named profiles\n",[34,8743,8744,8746,8749,8752],{"class":36,"line":263},[34,8745,8681],{"class":47},[34,8747,8748],{"class":54}," configure",[34,8750,8751],{"class":50}," --profile",[34,8753,8754],{"class":54}," prod\n",[34,8756,8757,8759,8762,8765,8767],{"class":36,"line":275},[34,8758,8681],{"class":47},[34,8760,8761],{"class":54}," s3",[34,8763,8764],{"class":54}," ls",[34,8766,8751],{"class":50},[34,8768,8754],{"class":54},[11,8770,8772],{"id":8771},"s3","S3",[25,8774,8776],{"className":27,"code":8775,"language":29,"meta":30,"style":30},"# List buckets\naws s3 ls\n\n# List objects in bucket\naws s3 ls s3://my-bucket/\n\n# Copy file to S3\naws s3 cp file.txt s3://my-bucket/\n\n# Sync directory\naws s3 sync ./dist s3://my-bucket/dist --delete\n\n# Download from S3\naws s3 cp s3://my-bucket/file.txt ./\n\n# Remove object\naws s3 rm s3://my-bucket/file.txt\n",[20,8777,8778,8783,8792,8796,8801,8812,8816,8821,8835,8839,8844,8861,8865,8870,8884,8888,8893],{"__ignoreMap":30},[34,8779,8780],{"class":36,"line":37},[34,8781,8782],{"class":40},"# List buckets\n",[34,8784,8785,8787,8789],{"class":36,"line":44},[34,8786,8681],{"class":47},[34,8788,8761],{"class":54},[34,8790,8791],{"class":54}," ls\n",[34,8793,8794],{"class":36,"line":58},[34,8795,62],{"emptyLinePlaceholder":61},[34,8797,8798],{"class":36,"line":65},[34,8799,8800],{"class":40},"# List objects in bucket\n",[34,8802,8803,8805,8807,8809],{"class":36,"line":71},[34,8804,8681],{"class":47},[34,8806,8761],{"class":54},[34,8808,8764],{"class":54},[34,8810,8811],{"class":54}," s3://my-bucket/\n",[34,8813,8814],{"class":36,"line":77},[34,8815,62],{"emptyLinePlaceholder":61},[34,8817,8818],{"class":36,"line":82},[34,8819,8820],{"class":40},"# Copy file to S3\n",[34,8822,8823,8825,8827,8830,8833],{"class":36,"line":88},[34,8824,8681],{"class":47},[34,8826,8761],{"class":54},[34,8828,8829],{"class":54}," cp",[34,8831,8832],{"class":54}," file.txt",[34,8834,8811],{"class":54},[34,8836,8837],{"class":36,"line":242},[34,8838,62],{"emptyLinePlaceholder":61},[34,8840,8841],{"class":36,"line":250},[34,8842,8843],{"class":40},"# Sync directory\n",[34,8845,8846,8848,8850,8852,8855,8858],{"class":36,"line":263},[34,8847,8681],{"class":47},[34,8849,8761],{"class":54},[34,8851,7505],{"class":54},[34,8853,8854],{"class":54}," ./dist",[34,8856,8857],{"class":54}," s3://my-bucket/dist",[34,8859,8860],{"class":50}," --delete\n",[34,8862,8863],{"class":36,"line":275},[34,8864,62],{"emptyLinePlaceholder":61},[34,8866,8867],{"class":36,"line":700},[34,8868,8869],{"class":40},"# Download from S3\n",[34,8871,8872,8874,8876,8878,8881],{"class":36,"line":706},[34,8873,8681],{"class":47},[34,8875,8761],{"class":54},[34,8877,8829],{"class":54},[34,8879,8880],{"class":54}," s3://my-bucket/file.txt",[34,8882,8883],{"class":54}," ./\n",[34,8885,8886],{"class":36,"line":715},[34,8887,62],{"emptyLinePlaceholder":61},[34,8889,8890],{"class":36,"line":725},[34,8891,8892],{"class":40},"# Remove object\n",[34,8894,8895,8897,8899,8902],{"class":36,"line":734},[34,8896,8681],{"class":47},[34,8898,8761],{"class":54},[34,8900,8901],{"class":54}," rm",[34,8903,8904],{"class":54}," s3://my-bucket/file.txt\n",[11,8906,8908],{"id":8907},"ec2","EC2",[25,8910,8912],{"className":27,"code":8911,"language":29,"meta":30,"style":30},"# List instances\naws ec2 describe-instances --query 'Reservations[].Instances[].{ID:InstanceId,State:State.Name,IP:PublicIpAddress}'\n\n# Start / stop instance\naws ec2 start-instances --instance-ids i-1234567890abcdef0\naws ec2 stop-instances --instance-ids i-1234567890abcdef0\n\n# Create key pair\naws ec2 create-key-pair --key-name MyKey --query 'KeyMaterial' --output text > MyKey.pem\n",[20,8913,8914,8919,8935,8939,8944,8959,8972,8976,8981],{"__ignoreMap":30},[34,8915,8916],{"class":36,"line":37},[34,8917,8918],{"class":40},"# List instances\n",[34,8920,8921,8923,8926,8929,8932],{"class":36,"line":44},[34,8922,8681],{"class":47},[34,8924,8925],{"class":54}," ec2",[34,8927,8928],{"class":54}," describe-instances",[34,8930,8931],{"class":50}," --query",[34,8933,8934],{"class":54}," 'Reservations[].Instances[].{ID:InstanceId,State:State.Name,IP:PublicIpAddress}'\n",[34,8936,8937],{"class":36,"line":58},[34,8938,62],{"emptyLinePlaceholder":61},[34,8940,8941],{"class":36,"line":65},[34,8942,8943],{"class":40},"# Start / stop instance\n",[34,8945,8946,8948,8950,8953,8956],{"class":36,"line":71},[34,8947,8681],{"class":47},[34,8949,8925],{"class":54},[34,8951,8952],{"class":54}," start-instances",[34,8954,8955],{"class":50}," --instance-ids",[34,8957,8958],{"class":54}," i-1234567890abcdef0\n",[34,8960,8961,8963,8965,8968,8970],{"class":36,"line":77},[34,8962,8681],{"class":47},[34,8964,8925],{"class":54},[34,8966,8967],{"class":54}," stop-instances",[34,8969,8955],{"class":50},[34,8971,8958],{"class":54},[34,8973,8974],{"class":36,"line":82},[34,8975,62],{"emptyLinePlaceholder":61},[34,8977,8978],{"class":36,"line":88},[34,8979,8980],{"class":40},"# Create key pair\n",[34,8982,8983,8985,8987,8990,8993,8996,8998,9001,9004,9007,9010],{"class":36,"line":242},[34,8984,8681],{"class":47},[34,8986,8925],{"class":54},[34,8988,8989],{"class":54}," create-key-pair",[34,8991,8992],{"class":50}," --key-name",[34,8994,8995],{"class":54}," MyKey",[34,8997,8931],{"class":50},[34,8999,9000],{"class":54}," 'KeyMaterial'",[34,9002,9003],{"class":50}," --output",[34,9005,9006],{"class":54}," text",[34,9008,9009],{"class":580}," >",[34,9011,9012],{"class":54}," MyKey.pem\n",[11,9014,9016],{"id":9015},"iam","IAM",[25,9018,9020],{"className":27,"code":9019,"language":29,"meta":30,"style":30},"# List users\naws iam list-users\n\n# Create user\naws iam create-user --user-name alice\n\n# Attach policy\naws iam attach-user-policy \\\n  --user-name alice \\\n  --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\n",[20,9021,9022,9027,9037,9041,9046,9061,9065,9070,9081,9091],{"__ignoreMap":30},[34,9023,9024],{"class":36,"line":37},[34,9025,9026],{"class":40},"# List users\n",[34,9028,9029,9031,9034],{"class":36,"line":44},[34,9030,8681],{"class":47},[34,9032,9033],{"class":54}," iam",[34,9035,9036],{"class":54}," list-users\n",[34,9038,9039],{"class":36,"line":58},[34,9040,62],{"emptyLinePlaceholder":61},[34,9042,9043],{"class":36,"line":65},[34,9044,9045],{"class":40},"# Create user\n",[34,9047,9048,9050,9052,9055,9058],{"class":36,"line":71},[34,9049,8681],{"class":47},[34,9051,9033],{"class":54},[34,9053,9054],{"class":54}," create-user",[34,9056,9057],{"class":50}," --user-name",[34,9059,9060],{"class":54}," alice\n",[34,9062,9063],{"class":36,"line":77},[34,9064,62],{"emptyLinePlaceholder":61},[34,9066,9067],{"class":36,"line":82},[34,9068,9069],{"class":40},"# Attach policy\n",[34,9071,9072,9074,9076,9079],{"class":36,"line":88},[34,9073,8681],{"class":47},[34,9075,9033],{"class":54},[34,9077,9078],{"class":54}," attach-user-policy",[34,9080,7186],{"class":50},[34,9082,9083,9086,9089],{"class":36,"line":242},[34,9084,9085],{"class":50},"  --user-name",[34,9087,9088],{"class":54}," alice",[34,9090,7186],{"class":50},[34,9092,9093,9096],{"class":36,"line":250},[34,9094,9095],{"class":50},"  --policy-arn",[34,9097,9098],{"class":54}," arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess\n",[11,9100,9102],{"id":9101},"lambda","Lambda",[25,9104,9106],{"className":27,"code":9105,"language":29,"meta":30,"style":30},"# List functions\naws lambda list-functions\n\n# Invoke function\naws lambda invoke \\\n  --function-name my-function \\\n  --payload '{\"key\":\"value\"}' \\\n  response.json\n\n# Update function code\naws lambda update-function-code \\\n  --function-name my-function \\\n  --zip-file fileb://function.zip\n",[20,9107,9108,9113,9123,9127,9132,9143,9153,9163,9168,9172,9177,9188,9196],{"__ignoreMap":30},[34,9109,9110],{"class":36,"line":37},[34,9111,9112],{"class":40},"# List functions\n",[34,9114,9115,9117,9120],{"class":36,"line":44},[34,9116,8681],{"class":47},[34,9118,9119],{"class":54}," lambda",[34,9121,9122],{"class":54}," list-functions\n",[34,9124,9125],{"class":36,"line":58},[34,9126,62],{"emptyLinePlaceholder":61},[34,9128,9129],{"class":36,"line":65},[34,9130,9131],{"class":40},"# Invoke function\n",[34,9133,9134,9136,9138,9141],{"class":36,"line":71},[34,9135,8681],{"class":47},[34,9137,9119],{"class":54},[34,9139,9140],{"class":54}," invoke",[34,9142,7186],{"class":50},[34,9144,9145,9148,9151],{"class":36,"line":77},[34,9146,9147],{"class":50},"  --function-name",[34,9149,9150],{"class":54}," my-function",[34,9152,7186],{"class":50},[34,9154,9155,9158,9161],{"class":36,"line":82},[34,9156,9157],{"class":50},"  --payload",[34,9159,9160],{"class":54}," '{\"key\":\"value\"}'",[34,9162,7186],{"class":50},[34,9164,9165],{"class":36,"line":88},[34,9166,9167],{"class":54},"  response.json\n",[34,9169,9170],{"class":36,"line":242},[34,9171,62],{"emptyLinePlaceholder":61},[34,9173,9174],{"class":36,"line":250},[34,9175,9176],{"class":40},"# Update function code\n",[34,9178,9179,9181,9183,9186],{"class":36,"line":263},[34,9180,8681],{"class":47},[34,9182,9119],{"class":54},[34,9184,9185],{"class":54}," update-function-code",[34,9187,7186],{"class":50},[34,9189,9190,9192,9194],{"class":36,"line":275},[34,9191,9147],{"class":50},[34,9193,9150],{"class":54},[34,9195,7186],{"class":50},[34,9197,9198,9201],{"class":36,"line":700},[34,9199,9200],{"class":50},"  --zip-file",[34,9202,9203],{"class":54}," fileb://function.zip\n",[11,9205,9207],{"id":9206},"useful-flags","Useful Flags",[25,9209,9211],{"className":27,"code":9210,"language":29,"meta":30,"style":30},"--region us-west-2          # override region\n--output json | table | text  # output format\n--query 'key.path'          # JMESPath filter\n--profile staging           # use named profile\n--dry-run                   # test permissions without executing\n",[20,9212,9213,9224,9244,9255,9266],{"__ignoreMap":30},[34,9214,9215,9218,9221],{"class":36,"line":37},[34,9216,9217],{"class":47},"--region",[34,9219,9220],{"class":54}," us-west-2",[34,9222,9223],{"class":40},"          # override region\n",[34,9225,9226,9229,9232,9234,9237,9239,9241],{"class":36,"line":44},[34,9227,9228],{"class":47},"--output",[34,9230,9231],{"class":54}," json",[34,9233,7197],{"class":580},[34,9235,9236],{"class":47}," table",[34,9238,7197],{"class":580},[34,9240,9006],{"class":47},[34,9242,9243],{"class":40},"  # output format\n",[34,9245,9246,9249,9252],{"class":36,"line":58},[34,9247,9248],{"class":47},"--query",[34,9250,9251],{"class":54}," 'key.path'",[34,9253,9254],{"class":40},"          # JMESPath filter\n",[34,9256,9257,9260,9263],{"class":36,"line":65},[34,9258,9259],{"class":47},"--profile",[34,9261,9262],{"class":54}," staging",[34,9264,9265],{"class":40},"           # use named profile\n",[34,9267,9268,9271],{"class":36,"line":71},[34,9269,9270],{"class":47},"--dry-run",[34,9272,9273],{"class":40},"                   # test permissions without executing\n",[388,9275,9276],{},"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 pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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}",{"title":30,"searchDepth":44,"depth":44,"links":9278},[9279,9280,9281,9282,9283,9284,9285],{"id":96,"depth":44,"text":97},{"id":558,"depth":44,"text":8686},{"id":8771,"depth":44,"text":8772},{"id":8907,"depth":44,"text":8908},{"id":9015,"depth":44,"text":9016},{"id":9101,"depth":44,"text":9102},{"id":9206,"depth":44,"text":9207},"The official command-line interface for managing AWS services and resources.",{},"/aws-cli/overview",{"title":8611,"description":9286},"aws-cli/overview","aws-cli",[8681,411,9293,5438,8771,8907],"cloud","_P-ey2gzZUMfFDptUAtCdlv-e5YCFH12bdM1I1v_Fzk",{"id":9296,"title":9297,"body":9298,"date":402,"description":10050,"extension":404,"meta":10051,"navigation":61,"order":37,"path":10052,"seo":10053,"stem":10054,"subject":10055,"tags":10056,"__hash__":10058},"topics/azure-cli/overview.md","Azure CLI",{"type":8,"value":9299,"toc":10041},[9300,9302,9359,9363,9488,9492,9570,9574,9772,9776,9893,9897,9979,9981,10038],[11,9301,97],{"id":96},[25,9303,9305],{"className":27,"code":9304,"language":29,"meta":30,"style":30},"# macOS\nbrew install azure-cli\n\n# Linux (Ubuntu/Debian)\ncurl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash\n\naz version\n",[20,9306,9307,9311,9320,9324,9329,9347,9351],{"__ignoreMap":30},[34,9308,9309],{"class":36,"line":37},[34,9310,8625],{"class":40},[34,9312,9313,9315,9317],{"class":36,"line":44},[34,9314,115],{"class":47},[34,9316,118],{"class":54},[34,9318,9319],{"class":54}," azure-cli\n",[34,9321,9322],{"class":36,"line":58},[34,9323,62],{"emptyLinePlaceholder":61},[34,9325,9326],{"class":36,"line":65},[34,9327,9328],{"class":40},"# Linux (Ubuntu/Debian)\n",[34,9330,9331,9333,9336,9339,9341,9344],{"class":36,"line":71},[34,9332,8648],{"class":47},[34,9334,9335],{"class":50}," -sL",[34,9337,9338],{"class":54}," https://aka.ms/InstallAzureCLIDeb",[34,9340,7197],{"class":580},[34,9342,9343],{"class":47}," sudo",[34,9345,9346],{"class":54}," bash\n",[34,9348,9349],{"class":36,"line":77},[34,9350,62],{"emptyLinePlaceholder":61},[34,9352,9353,9356],{"class":36,"line":82},[34,9354,9355],{"class":47},"az",[34,9357,9358],{"class":54}," version\n",[11,9360,9362],{"id":9361},"authentication","Authentication",[25,9364,9366],{"className":27,"code":9365,"language":29,"meta":30,"style":30},"# Interactive login\naz login\n\n# Service principal login\naz login --service-principal \\\n  --username \u003Capp-id> \\\n  --password \u003Cpassword> \\\n  --tenant \u003Ctenant-id>\n\n# Show current account\naz account show\naz account list\naz account set --subscription \"My Subscription\"\n",[20,9367,9368,9373,9380,9384,9389,9400,9416,9432,9446,9450,9455,9465,9473],{"__ignoreMap":30},[34,9369,9370],{"class":36,"line":37},[34,9371,9372],{"class":40},"# Interactive login\n",[34,9374,9375,9377],{"class":36,"line":44},[34,9376,9355],{"class":47},[34,9378,9379],{"class":54}," login\n",[34,9381,9382],{"class":36,"line":58},[34,9383,62],{"emptyLinePlaceholder":61},[34,9385,9386],{"class":36,"line":65},[34,9387,9388],{"class":40},"# Service principal login\n",[34,9390,9391,9393,9395,9398],{"class":36,"line":71},[34,9392,9355],{"class":47},[34,9394,7220],{"class":54},[34,9396,9397],{"class":50}," --service-principal",[34,9399,7186],{"class":50},[34,9401,9402,9405,9407,9410,9412,9414],{"class":36,"line":77},[34,9403,9404],{"class":50},"  --username",[34,9406,5470],{"class":580},[34,9408,9409],{"class":54},"app-i",[34,9411,5878],{"class":181},[34,9413,5691],{"class":580},[34,9415,7186],{"class":50},[34,9417,9418,9421,9423,9426,9428,9430],{"class":36,"line":82},[34,9419,9420],{"class":50},"  --password",[34,9422,5470],{"class":580},[34,9424,9425],{"class":54},"passwor",[34,9427,5878],{"class":181},[34,9429,5691],{"class":580},[34,9431,7186],{"class":50},[34,9433,9434,9437,9439,9442,9444],{"class":36,"line":88},[34,9435,9436],{"class":50},"  --tenant",[34,9438,5470],{"class":580},[34,9440,9441],{"class":54},"tenant-i",[34,9443,5878],{"class":181},[34,9445,1248],{"class":580},[34,9447,9448],{"class":36,"line":242},[34,9449,62],{"emptyLinePlaceholder":61},[34,9451,9452],{"class":36,"line":250},[34,9453,9454],{"class":40},"# Show current account\n",[34,9456,9457,9459,9462],{"class":36,"line":263},[34,9458,9355],{"class":47},[34,9460,9461],{"class":54}," account",[34,9463,9464],{"class":54}," show\n",[34,9466,9467,9469,9471],{"class":36,"line":275},[34,9468,9355],{"class":47},[34,9470,9461],{"class":54},[34,9472,7536],{"class":54},[34,9474,9475,9477,9479,9482,9485],{"class":36,"line":700},[34,9476,9355],{"class":47},[34,9478,9461],{"class":54},[34,9480,9481],{"class":54}," set",[34,9483,9484],{"class":50}," --subscription",[34,9486,9487],{"class":54}," \"My Subscription\"\n",[11,9489,9491],{"id":9490},"resource-groups","Resource Groups",[25,9493,9495],{"className":27,"code":9494,"language":29,"meta":30,"style":30},"# List resource groups\naz group list --output table\n\n# Create resource group\naz group create --name my-rg --location eastus\n\n# Delete resource group (and all resources)\naz group delete --name my-rg --yes\n",[20,9496,9497,9502,9516,9520,9525,9545,9549,9554],{"__ignoreMap":30},[34,9498,9499],{"class":36,"line":37},[34,9500,9501],{"class":40},"# List resource groups\n",[34,9503,9504,9506,9509,9511,9513],{"class":36,"line":44},[34,9505,9355],{"class":47},[34,9507,9508],{"class":54}," group",[34,9510,6345],{"class":54},[34,9512,9003],{"class":50},[34,9514,9515],{"class":54}," table\n",[34,9517,9518],{"class":36,"line":58},[34,9519,62],{"emptyLinePlaceholder":61},[34,9521,9522],{"class":36,"line":65},[34,9523,9524],{"class":40},"# Create resource group\n",[34,9526,9527,9529,9531,9533,9536,9539,9542],{"class":36,"line":71},[34,9528,9355],{"class":47},[34,9530,9508],{"class":54},[34,9532,7077],{"class":54},[34,9534,9535],{"class":50}," --name",[34,9537,9538],{"class":54}," my-rg",[34,9540,9541],{"class":50}," --location",[34,9543,9544],{"class":54}," eastus\n",[34,9546,9547],{"class":36,"line":77},[34,9548,62],{"emptyLinePlaceholder":61},[34,9550,9551],{"class":36,"line":82},[34,9552,9553],{"class":40},"# Delete resource group (and all resources)\n",[34,9555,9556,9558,9560,9563,9565,9567],{"class":36,"line":88},[34,9557,9355],{"class":47},[34,9559,9508],{"class":54},[34,9561,9562],{"class":54}," delete",[34,9564,9535],{"class":50},[34,9566,9538],{"class":54},[34,9568,9569],{"class":50}," --yes\n",[11,9571,9573],{"id":9572},"virtual-machines","Virtual Machines",[25,9575,9577],{"className":27,"code":9576,"language":29,"meta":30,"style":30},"# List VMs\naz vm list --output table\n\n# Create VM\naz vm create \\\n  --resource-group my-rg \\\n  --name my-vm \\\n  --image UbuntuLTS \\\n  --admin-username azureuser \\\n  --generate-ssh-keys\n\n# Start / stop / deallocate\naz vm start --name my-vm --resource-group my-rg\naz vm stop --name my-vm --resource-group my-rg\naz vm deallocate --name my-vm --resource-group my-rg\n\n# SSH into VM\nssh azureuser@$(az vm show -d -g my-rg -n my-vm --query publicIps -o tsv)\n",[20,9578,9579,9584,9597,9601,9606,9616,9625,9635,9645,9655,9660,9664,9669,9688,9705,9722,9726,9731],{"__ignoreMap":30},[34,9580,9581],{"class":36,"line":37},[34,9582,9583],{"class":40},"# List VMs\n",[34,9585,9586,9588,9591,9593,9595],{"class":36,"line":44},[34,9587,9355],{"class":47},[34,9589,9590],{"class":54}," vm",[34,9592,6345],{"class":54},[34,9594,9003],{"class":50},[34,9596,9515],{"class":54},[34,9598,9599],{"class":36,"line":58},[34,9600,62],{"emptyLinePlaceholder":61},[34,9602,9603],{"class":36,"line":65},[34,9604,9605],{"class":40},"# Create VM\n",[34,9607,9608,9610,9612,9614],{"class":36,"line":71},[34,9609,9355],{"class":47},[34,9611,9590],{"class":54},[34,9613,7077],{"class":54},[34,9615,7186],{"class":50},[34,9617,9618,9621,9623],{"class":36,"line":77},[34,9619,9620],{"class":50},"  --resource-group",[34,9622,9538],{"class":54},[34,9624,7186],{"class":50},[34,9626,9627,9630,9633],{"class":36,"line":82},[34,9628,9629],{"class":50},"  --name",[34,9631,9632],{"class":54}," my-vm",[34,9634,7186],{"class":50},[34,9636,9637,9640,9643],{"class":36,"line":88},[34,9638,9639],{"class":50},"  --image",[34,9641,9642],{"class":54}," UbuntuLTS",[34,9644,7186],{"class":50},[34,9646,9647,9650,9653],{"class":36,"line":242},[34,9648,9649],{"class":50},"  --admin-username",[34,9651,9652],{"class":54}," azureuser",[34,9654,7186],{"class":50},[34,9656,9657],{"class":36,"line":250},[34,9658,9659],{"class":50},"  --generate-ssh-keys\n",[34,9661,9662],{"class":36,"line":263},[34,9663,62],{"emptyLinePlaceholder":61},[34,9665,9666],{"class":36,"line":275},[34,9667,9668],{"class":40},"# Start / stop / deallocate\n",[34,9670,9671,9673,9675,9678,9680,9682,9685],{"class":36,"line":700},[34,9672,9355],{"class":47},[34,9674,9590],{"class":54},[34,9676,9677],{"class":54}," start",[34,9679,9535],{"class":50},[34,9681,9632],{"class":54},[34,9683,9684],{"class":50}," --resource-group",[34,9686,9687],{"class":54}," my-rg\n",[34,9689,9690,9692,9694,9697,9699,9701,9703],{"class":36,"line":706},[34,9691,9355],{"class":47},[34,9693,9590],{"class":54},[34,9695,9696],{"class":54}," stop",[34,9698,9535],{"class":50},[34,9700,9632],{"class":54},[34,9702,9684],{"class":50},[34,9704,9687],{"class":54},[34,9706,9707,9709,9711,9714,9716,9718,9720],{"class":36,"line":715},[34,9708,9355],{"class":47},[34,9710,9590],{"class":54},[34,9712,9713],{"class":54}," deallocate",[34,9715,9535],{"class":50},[34,9717,9632],{"class":54},[34,9719,9684],{"class":50},[34,9721,9687],{"class":54},[34,9723,9724],{"class":36,"line":725},[34,9725,62],{"emptyLinePlaceholder":61},[34,9727,9728],{"class":36,"line":734},[34,9729,9730],{"class":40},"# SSH into VM\n",[34,9732,9733,9736,9739,9742,9744,9746,9748,9751,9754,9756,9758,9760,9762,9765,9767,9770],{"class":36,"line":742},[34,9734,9735],{"class":47},"ssh",[34,9737,9738],{"class":54}," azureuser@",[34,9740,9741],{"class":181},"$(",[34,9743,9355],{"class":47},[34,9745,9590],{"class":54},[34,9747,6558],{"class":54},[34,9749,9750],{"class":50}," -d",[34,9752,9753],{"class":50}," -g",[34,9755,9538],{"class":54},[34,9757,7093],{"class":50},[34,9759,9632],{"class":54},[34,9761,8931],{"class":50},[34,9763,9764],{"class":54}," publicIps",[34,9766,8654],{"class":50},[34,9768,9769],{"class":54}," tsv",[34,9771,3372],{"class":181},[11,9773,9775],{"id":9774},"storage","Storage",[25,9777,9779],{"className":27,"code":9778,"language":29,"meta":30,"style":30},"# Create storage account\naz storage account create \\\n  --name mystorageacct \\\n  --resource-group my-rg \\\n  --location eastus \\\n  --sku Standard_LRS\n\n# Upload blob\naz storage blob upload \\\n  --account-name mystorageacct \\\n  --container-name mycontainer \\\n  --name myfile.txt \\\n  --file ./myfile.txt\n",[20,9780,9781,9786,9799,9808,9816,9826,9834,9838,9843,9857,9866,9876,9885],{"__ignoreMap":30},[34,9782,9783],{"class":36,"line":37},[34,9784,9785],{"class":40},"# Create storage account\n",[34,9787,9788,9790,9793,9795,9797],{"class":36,"line":44},[34,9789,9355],{"class":47},[34,9791,9792],{"class":54}," storage",[34,9794,9461],{"class":54},[34,9796,7077],{"class":54},[34,9798,7186],{"class":50},[34,9800,9801,9803,9806],{"class":36,"line":58},[34,9802,9629],{"class":50},[34,9804,9805],{"class":54}," mystorageacct",[34,9807,7186],{"class":50},[34,9809,9810,9812,9814],{"class":36,"line":65},[34,9811,9620],{"class":50},[34,9813,9538],{"class":54},[34,9815,7186],{"class":50},[34,9817,9818,9821,9824],{"class":36,"line":71},[34,9819,9820],{"class":50},"  --location",[34,9822,9823],{"class":54}," eastus",[34,9825,7186],{"class":50},[34,9827,9828,9831],{"class":36,"line":77},[34,9829,9830],{"class":50},"  --sku",[34,9832,9833],{"class":54}," Standard_LRS\n",[34,9835,9836],{"class":36,"line":82},[34,9837,62],{"emptyLinePlaceholder":61},[34,9839,9840],{"class":36,"line":88},[34,9841,9842],{"class":40},"# Upload blob\n",[34,9844,9845,9847,9849,9852,9855],{"class":36,"line":242},[34,9846,9355],{"class":47},[34,9848,9792],{"class":54},[34,9850,9851],{"class":54}," blob",[34,9853,9854],{"class":54}," upload",[34,9856,7186],{"class":50},[34,9858,9859,9862,9864],{"class":36,"line":250},[34,9860,9861],{"class":50},"  --account-name",[34,9863,9805],{"class":54},[34,9865,7186],{"class":50},[34,9867,9868,9871,9874],{"class":36,"line":263},[34,9869,9870],{"class":50},"  --container-name",[34,9872,9873],{"class":54}," mycontainer",[34,9875,7186],{"class":50},[34,9877,9878,9880,9883],{"class":36,"line":275},[34,9879,9629],{"class":50},[34,9881,9882],{"class":54}," myfile.txt",[34,9884,7186],{"class":50},[34,9886,9887,9890],{"class":36,"line":700},[34,9888,9889],{"class":50},"  --file",[34,9891,9892],{"class":54}," ./myfile.txt\n",[11,9894,9896],{"id":9895},"aks-kubernetes","AKS (Kubernetes)",[25,9898,9900],{"className":27,"code":9899,"language":29,"meta":30,"style":30},"# Create cluster\naz aks create --resource-group my-rg --name my-cluster --node-count 2\n\n# Get credentials (kubectl)\naz aks get-credentials --resource-group my-rg --name my-cluster\n\n# List clusters\naz aks list --output table\n",[20,9901,9902,9907,9931,9935,9940,9958,9962,9967],{"__ignoreMap":30},[34,9903,9904],{"class":36,"line":37},[34,9905,9906],{"class":40},"# Create cluster\n",[34,9908,9909,9911,9914,9916,9918,9920,9922,9925,9928],{"class":36,"line":44},[34,9910,9355],{"class":47},[34,9912,9913],{"class":54}," aks",[34,9915,7077],{"class":54},[34,9917,9684],{"class":50},[34,9919,9538],{"class":54},[34,9921,9535],{"class":50},[34,9923,9924],{"class":54}," my-cluster",[34,9926,9927],{"class":50}," --node-count",[34,9929,9930],{"class":50}," 2\n",[34,9932,9933],{"class":36,"line":58},[34,9934,62],{"emptyLinePlaceholder":61},[34,9936,9937],{"class":36,"line":65},[34,9938,9939],{"class":40},"# Get credentials (kubectl)\n",[34,9941,9942,9944,9946,9949,9951,9953,9955],{"class":36,"line":71},[34,9943,9355],{"class":47},[34,9945,9913],{"class":54},[34,9947,9948],{"class":54}," get-credentials",[34,9950,9684],{"class":50},[34,9952,9538],{"class":54},[34,9954,9535],{"class":50},[34,9956,9957],{"class":54}," my-cluster\n",[34,9959,9960],{"class":36,"line":77},[34,9961,62],{"emptyLinePlaceholder":61},[34,9963,9964],{"class":36,"line":82},[34,9965,9966],{"class":40},"# List clusters\n",[34,9968,9969,9971,9973,9975,9977],{"class":36,"line":88},[34,9970,9355],{"class":47},[34,9972,9913],{"class":54},[34,9974,6345],{"class":54},[34,9976,9003],{"class":50},[34,9978,9515],{"class":54},[11,9980,9207],{"id":9206},[25,9982,9984],{"className":27,"code":9983,"language":29,"meta":30,"style":30},"--output table | json | yaml | tsv   # output format\n--query \"value[?name=='foo']\"         # JMESPath filter\n--resource-group my-rg               # target resource group\n--location eastus                    # Azure region\n",[20,9985,9986,10008,10018,10028],{"__ignoreMap":30},[34,9987,9988,9990,9992,9994,9996,9998,10001,10003,10005],{"class":36,"line":37},[34,9989,9228],{"class":47},[34,9991,9236],{"class":54},[34,9993,7197],{"class":580},[34,9995,9231],{"class":47},[34,9997,7197],{"class":580},[34,9999,10000],{"class":47}," yaml",[34,10002,7197],{"class":580},[34,10004,9769],{"class":47},[34,10006,10007],{"class":40},"   # output format\n",[34,10009,10010,10012,10015],{"class":36,"line":44},[34,10011,9248],{"class":47},[34,10013,10014],{"class":54}," \"value[?name=='foo']\"",[34,10016,10017],{"class":40},"         # JMESPath filter\n",[34,10019,10020,10023,10025],{"class":36,"line":58},[34,10021,10022],{"class":47},"--resource-group",[34,10024,9538],{"class":54},[34,10026,10027],{"class":40},"               # target resource group\n",[34,10029,10030,10033,10035],{"class":36,"line":65},[34,10031,10032],{"class":47},"--location",[34,10034,9823],{"class":54},[34,10036,10037],{"class":40},"                    # Azure region\n",[388,10039,10040],{},"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 pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":30,"searchDepth":44,"depth":44,"links":10042},[10043,10044,10045,10046,10047,10048,10049],{"id":96,"depth":44,"text":97},{"id":9361,"depth":44,"text":9362},{"id":9490,"depth":44,"text":9491},{"id":9572,"depth":44,"text":9573},{"id":9774,"depth":44,"text":9775},{"id":9895,"depth":44,"text":9896},{"id":9206,"depth":44,"text":9207},"The official command-line interface for managing Microsoft Azure resources and services.",{},"/azure-cli/overview",{"title":9297,"description":10050},"azure-cli/overview","azure-cli",[10057,411,9293,5438,9355],"azure","TcG9JiZiZEM67gU0d9ES2wo4rqMUSK_CNIHkL2jOUvg",{"id":10060,"title":10061,"body":10062,"date":402,"description":10352,"extension":404,"meta":10353,"navigation":61,"order":77,"path":10354,"seo":10355,"stem":10356,"subject":29,"tags":10357,"__hash__":10360},"topics/bash/arrays.md","Arrays",{"type":8,"value":10063,"toc":10349},[10064,10067,10346],[11,10065,10061],{"id":10066},"arrays",[25,10068,10070],{"className":27,"code":10069,"language":29,"meta":30,"style":30},"# Indexed arrays\nfruits=(\"apple\" \"banana\" \"cherry\")\nfruits[3]=\"date\"\n\n# Access elements\necho ${fruits[0]}      # First element\necho ${fruits[@]}      # All elements\necho ${#fruits[@]}     # Array length\necho ${fruits[@]:1:2}  # Slice (start:length)\n\n# Associative arrays (Bash 4+)\ndeclare -A user\nuser[name]=\"John\"\nuser[age]=25\necho ${user[name]}\n\n# Iterate over array\nfor fruit in \"${fruits[@]}\"; do\n  echo $fruit\ndone\n\n# Iterate with index\nfor i in \"${!fruits[@]}\"; do\n  echo \"$i: ${fruits[$i]}\"\ndone\n",[20,10071,10072,10077,10097,10107,10111,10116,10127,10142,10163,10186,10190,10195,10206,10216,10226,10233,10237,10242,10272,10280,10285,10289,10294,10320,10342],{"__ignoreMap":30},[34,10073,10074],{"class":36,"line":37},[34,10075,10076],{"class":40},"# Indexed arrays\n",[34,10078,10079,10082,10084,10086,10089,10092,10095],{"class":36,"line":44},[34,10080,10081],{"class":181},"fruits",[34,10083,1301],{"class":580},[34,10085,1607],{"class":181},[34,10087,10088],{"class":54},"\"apple\"",[34,10090,10091],{"class":54}," \"banana\"",[34,10093,10094],{"class":54}," \"cherry\"",[34,10096,3372],{"class":181},[34,10098,10099,10102,10104],{"class":36,"line":58},[34,10100,10101],{"class":181},"fruits[3]",[34,10103,1301],{"class":580},[34,10105,10106],{"class":54},"\"date\"\n",[34,10108,10109],{"class":36,"line":65},[34,10110,62],{"emptyLinePlaceholder":61},[34,10112,10113],{"class":36,"line":71},[34,10114,10115],{"class":40},"# Access elements\n",[34,10117,10118,10121,10124],{"class":36,"line":77},[34,10119,10120],{"class":50},"echo",[34,10122,10123],{"class":181}," ${fruits[0]}      ",[34,10125,10126],{"class":40},"# First element\n",[34,10128,10129,10131,10134,10136,10139],{"class":36,"line":82},[34,10130,10120],{"class":50},[34,10132,10133],{"class":181}," ${fruits[",[34,10135,607],{"class":580},[34,10137,10138],{"class":181},"]}      ",[34,10140,10141],{"class":40},"# All elements\n",[34,10143,10144,10146,10149,10152,10155,10157,10160],{"class":36,"line":88},[34,10145,10120],{"class":50},[34,10147,10148],{"class":181}," ${",[34,10150,10151],{"class":580},"#",[34,10153,10154],{"class":181},"fruits[",[34,10156,607],{"class":580},[34,10158,10159],{"class":181},"]}     ",[34,10161,10162],{"class":40},"# Array length\n",[34,10164,10165,10167,10169,10171,10174,10176,10178,10180,10183],{"class":36,"line":242},[34,10166,10120],{"class":50},[34,10168,10133],{"class":181},[34,10170,607],{"class":580},[34,10172,10173],{"class":181},"]",[34,10175,165],{"class":580},[34,10177,8318],{"class":181},[34,10179,165],{"class":580},[34,10181,10182],{"class":181},"2}  ",[34,10184,10185],{"class":40},"# Slice (start:length)\n",[34,10187,10188],{"class":36,"line":250},[34,10189,62],{"emptyLinePlaceholder":61},[34,10191,10192],{"class":36,"line":263},[34,10193,10194],{"class":40},"# Associative arrays (Bash 4+)\n",[34,10196,10197,10200,10203],{"class":36,"line":275},[34,10198,10199],{"class":580},"declare",[34,10201,10202],{"class":50}," -A",[34,10204,10205],{"class":181}," user\n",[34,10207,10208,10211,10213],{"class":36,"line":700},[34,10209,10210],{"class":181},"user[name]",[34,10212,1301],{"class":580},[34,10214,10215],{"class":54},"\"John\"\n",[34,10217,10218,10221,10223],{"class":36,"line":706},[34,10219,10220],{"class":181},"user[age]",[34,10222,1301],{"class":580},[34,10224,10225],{"class":54},"25\n",[34,10227,10228,10230],{"class":36,"line":715},[34,10229,10120],{"class":50},[34,10231,10232],{"class":181}," ${user[name]}\n",[34,10234,10235],{"class":36,"line":725},[34,10236,62],{"emptyLinePlaceholder":61},[34,10238,10239],{"class":36,"line":734},[34,10240,10241],{"class":40},"# Iterate over array\n",[34,10243,10244,10247,10250,10253,10256,10258,10261,10263,10266,10269],{"class":36,"line":742},[34,10245,10246],{"class":580},"for",[34,10248,10249],{"class":181}," fruit ",[34,10251,10252],{"class":580},"in",[34,10254,10255],{"class":54}," \"${",[34,10257,10081],{"class":181},[34,10259,10260],{"class":54},"[",[34,10262,607],{"class":580},[34,10264,10265],{"class":54},"]}\"",[34,10267,10268],{"class":181},"; ",[34,10270,10271],{"class":580},"do\n",[34,10273,10274,10277],{"class":36,"line":748},[34,10275,10276],{"class":50},"  echo",[34,10278,10279],{"class":181}," $fruit\n",[34,10281,10282],{"class":36,"line":754},[34,10283,10284],{"class":580},"done\n",[34,10286,10287],{"class":36,"line":759},[34,10288,62],{"emptyLinePlaceholder":61},[34,10290,10291],{"class":36,"line":771},[34,10292,10293],{"class":40},"# Iterate with index\n",[34,10295,10296,10298,10301,10303,10305,10308,10310,10312,10314,10316,10318],{"class":36,"line":794},[34,10297,10246],{"class":580},[34,10299,10300],{"class":181}," i ",[34,10302,10252],{"class":580},[34,10304,10255],{"class":54},[34,10306,10307],{"class":580},"!",[34,10309,10081],{"class":181},[34,10311,10260],{"class":54},[34,10313,607],{"class":580},[34,10315,10265],{"class":54},[34,10317,10268],{"class":181},[34,10319,10271],{"class":580},[34,10321,10322,10324,10327,10330,10333,10335,10337,10339],{"class":36,"line":824},[34,10323,10276],{"class":50},[34,10325,10326],{"class":54}," \"",[34,10328,10329],{"class":181},"$i",[34,10331,10332],{"class":54},": ${",[34,10334,10081],{"class":181},[34,10336,10260],{"class":54},[34,10338,10329],{"class":181},[34,10340,10341],{"class":54},"]}\"\n",[34,10343,10344],{"class":36,"line":830},[34,10345,10284],{"class":580},[388,10347,10348],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .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":30,"searchDepth":44,"depth":44,"links":10350},[10351],{"id":10066,"depth":44,"text":10061},"Arrays in Bash.",{},"/bash/arrays",{"title":10061,"description":10352},"bash/arrays",[29,10358,5588,10359,557],"shell","scripting","tQgNyBKekyFK35poLlTo-8ABbNL-84CcNIuJbO66PQc",{"id":10362,"title":10363,"body":10364,"date":402,"description":10982,"extension":404,"meta":10983,"navigation":61,"order":58,"path":10984,"seo":10985,"stem":10986,"subject":29,"tags":10987,"__hash__":10988},"topics/bash/conditionals.md","Conditionals",{"type":8,"value":10365,"toc":10979},[10366,10369,10976],[11,10367,10363],{"id":10368},"conditionals",[25,10370,10372],{"className":27,"code":10371,"language":29,"meta":30,"style":30},"# If statement\nif [ \"$name\" = \"John\" ]; then\n  echo \"Hello John\"\nelif [ \"$name\" = \"Jane\" ]; then\n  echo \"Hello Jane\"\nelse\n  echo \"Hello stranger\"\nfi\n\n# String comparisons\n[ \"$a\" = \"$b\" ]   # Equal\n[ \"$a\" != \"$b\" ]  # Not equal\n[ -z \"$a\" ]       # Empty string\n[ -n \"$a\" ]       # Non-empty string\n\n# Numeric comparisons\n[ \"$a\" -eq \"$b\" ]  # Equal\n[ \"$a\" -ne \"$b\" ]  # Not equal\n[ \"$a\" -lt \"$b\" ]  # Less than\n[ \"$a\" -le \"$b\" ]  # Less than or equal\n[ \"$a\" -gt \"$b\" ]  # Greater than\n[ \"$a\" -ge \"$b\" ]  # Greater than or equal\n\n# File tests\n[ -e \"$file\" ]  # Exists\n[ -f \"$file\" ]  # Is regular file\n[ -d \"$file\" ]  # Is directory\n[ -r \"$file\" ]  # Is readable\n[ -w \"$file\" ]  # Is writable\n[ -x \"$file\" ]  # Is executable\n[ -s \"$file\" ]  # Size > 0\n\n# Logical operators\n[ \"$a\" ] && [ \"$b\" ]  # AND\n[ \"$a\" ] || [ \"$b\" ]  # OR\n! [ \"$a\" ]            # NOT\n\n# Modern test syntax (Bash-specific)\n[[ \"$name\" == \"John\" ]]\n[[ \"$name\" =~ ^J.*n$ ]]  # Regex match\n",[20,10373,10374,10379,10406,10413,10435,10442,10447,10454,10459,10463,10468,10495,10520,10539,10557,10561,10566,10589,10612,10636,10660,10684,10708,10712,10717,10736,10754,10772,10790,10808,10826,10844,10848,10853,10877,10906,10924,10928,10933,10952],{"__ignoreMap":30},[34,10375,10376],{"class":36,"line":37},[34,10377,10378],{"class":40},"# If statement\n",[34,10380,10381,10384,10387,10390,10393,10395,10397,10400,10403],{"class":36,"line":44},[34,10382,10383],{"class":580},"if",[34,10385,10386],{"class":181}," [ ",[34,10388,10389],{"class":54},"\"",[34,10391,10392],{"class":181},"$name",[34,10394,10389],{"class":54},[34,10396,683],{"class":580},[34,10398,10399],{"class":54}," \"John\"",[34,10401,10402],{"class":181}," ]; ",[34,10404,10405],{"class":580},"then\n",[34,10407,10408,10410],{"class":36,"line":58},[34,10409,10276],{"class":50},[34,10411,10412],{"class":54}," \"Hello John\"\n",[34,10414,10415,10418,10420,10422,10424,10426,10428,10431,10433],{"class":36,"line":65},[34,10416,10417],{"class":580},"elif",[34,10419,10386],{"class":181},[34,10421,10389],{"class":54},[34,10423,10392],{"class":181},[34,10425,10389],{"class":54},[34,10427,683],{"class":580},[34,10429,10430],{"class":54}," \"Jane\"",[34,10432,10402],{"class":181},[34,10434,10405],{"class":580},[34,10436,10437,10439],{"class":36,"line":71},[34,10438,10276],{"class":50},[34,10440,10441],{"class":54}," \"Hello Jane\"\n",[34,10443,10444],{"class":36,"line":77},[34,10445,10446],{"class":580},"else\n",[34,10448,10449,10451],{"class":36,"line":82},[34,10450,10276],{"class":50},[34,10452,10453],{"class":54}," \"Hello stranger\"\n",[34,10455,10456],{"class":36,"line":88},[34,10457,10458],{"class":580},"fi\n",[34,10460,10461],{"class":36,"line":242},[34,10462,62],{"emptyLinePlaceholder":61},[34,10464,10465],{"class":36,"line":250},[34,10466,10467],{"class":40},"# String comparisons\n",[34,10469,10470,10473,10475,10478,10480,10482,10484,10487,10489,10492],{"class":36,"line":263},[34,10471,10472],{"class":181},"[ ",[34,10474,10389],{"class":54},[34,10476,10477],{"class":181},"$a",[34,10479,10389],{"class":54},[34,10481,683],{"class":580},[34,10483,10326],{"class":54},[34,10485,10486],{"class":181},"$b",[34,10488,10389],{"class":54},[34,10490,10491],{"class":181}," ]   ",[34,10493,10494],{"class":40},"# Equal\n",[34,10496,10497,10499,10501,10503,10505,10508,10510,10512,10514,10517],{"class":36,"line":275},[34,10498,10472],{"class":181},[34,10500,10389],{"class":54},[34,10502,10477],{"class":181},[34,10504,10389],{"class":54},[34,10506,10507],{"class":580}," !=",[34,10509,10326],{"class":54},[34,10511,10486],{"class":181},[34,10513,10389],{"class":54},[34,10515,10516],{"class":181}," ]  ",[34,10518,10519],{"class":40},"# Not equal\n",[34,10521,10522,10524,10527,10529,10531,10533,10536],{"class":36,"line":700},[34,10523,10472],{"class":181},[34,10525,10526],{"class":580},"-z",[34,10528,10326],{"class":54},[34,10530,10477],{"class":181},[34,10532,10389],{"class":54},[34,10534,10535],{"class":181}," ]       ",[34,10537,10538],{"class":40},"# Empty string\n",[34,10540,10541,10543,10546,10548,10550,10552,10554],{"class":36,"line":706},[34,10542,10472],{"class":181},[34,10544,10545],{"class":580},"-n",[34,10547,10326],{"class":54},[34,10549,10477],{"class":181},[34,10551,10389],{"class":54},[34,10553,10535],{"class":181},[34,10555,10556],{"class":40},"# Non-empty string\n",[34,10558,10559],{"class":36,"line":715},[34,10560,62],{"emptyLinePlaceholder":61},[34,10562,10563],{"class":36,"line":725},[34,10564,10565],{"class":40},"# Numeric comparisons\n",[34,10567,10568,10570,10572,10574,10576,10579,10581,10583,10585,10587],{"class":36,"line":734},[34,10569,10472],{"class":181},[34,10571,10389],{"class":54},[34,10573,10477],{"class":181},[34,10575,10389],{"class":54},[34,10577,10578],{"class":580}," -eq",[34,10580,10326],{"class":54},[34,10582,10486],{"class":181},[34,10584,10389],{"class":54},[34,10586,10516],{"class":181},[34,10588,10494],{"class":40},[34,10590,10591,10593,10595,10597,10599,10602,10604,10606,10608,10610],{"class":36,"line":742},[34,10592,10472],{"class":181},[34,10594,10389],{"class":54},[34,10596,10477],{"class":181},[34,10598,10389],{"class":54},[34,10600,10601],{"class":580}," -ne",[34,10603,10326],{"class":54},[34,10605,10486],{"class":181},[34,10607,10389],{"class":54},[34,10609,10516],{"class":181},[34,10611,10519],{"class":40},[34,10613,10614,10616,10618,10620,10622,10625,10627,10629,10631,10633],{"class":36,"line":748},[34,10615,10472],{"class":181},[34,10617,10389],{"class":54},[34,10619,10477],{"class":181},[34,10621,10389],{"class":54},[34,10623,10624],{"class":580}," -lt",[34,10626,10326],{"class":54},[34,10628,10486],{"class":181},[34,10630,10389],{"class":54},[34,10632,10516],{"class":181},[34,10634,10635],{"class":40},"# Less than\n",[34,10637,10638,10640,10642,10644,10646,10649,10651,10653,10655,10657],{"class":36,"line":754},[34,10639,10472],{"class":181},[34,10641,10389],{"class":54},[34,10643,10477],{"class":181},[34,10645,10389],{"class":54},[34,10647,10648],{"class":580}," -le",[34,10650,10326],{"class":54},[34,10652,10486],{"class":181},[34,10654,10389],{"class":54},[34,10656,10516],{"class":181},[34,10658,10659],{"class":40},"# Less than or equal\n",[34,10661,10662,10664,10666,10668,10670,10673,10675,10677,10679,10681],{"class":36,"line":759},[34,10663,10472],{"class":181},[34,10665,10389],{"class":54},[34,10667,10477],{"class":181},[34,10669,10389],{"class":54},[34,10671,10672],{"class":580}," -gt",[34,10674,10326],{"class":54},[34,10676,10486],{"class":181},[34,10678,10389],{"class":54},[34,10680,10516],{"class":181},[34,10682,10683],{"class":40},"# Greater than\n",[34,10685,10686,10688,10690,10692,10694,10697,10699,10701,10703,10705],{"class":36,"line":771},[34,10687,10472],{"class":181},[34,10689,10389],{"class":54},[34,10691,10477],{"class":181},[34,10693,10389],{"class":54},[34,10695,10696],{"class":580}," -ge",[34,10698,10326],{"class":54},[34,10700,10486],{"class":181},[34,10702,10389],{"class":54},[34,10704,10516],{"class":181},[34,10706,10707],{"class":40},"# Greater than or equal\n",[34,10709,10710],{"class":36,"line":794},[34,10711,62],{"emptyLinePlaceholder":61},[34,10713,10714],{"class":36,"line":824},[34,10715,10716],{"class":40},"# File tests\n",[34,10718,10719,10721,10724,10726,10729,10731,10733],{"class":36,"line":830},[34,10720,10472],{"class":181},[34,10722,10723],{"class":580},"-e",[34,10725,10326],{"class":54},[34,10727,10728],{"class":181},"$file",[34,10730,10389],{"class":54},[34,10732,10516],{"class":181},[34,10734,10735],{"class":40},"# Exists\n",[34,10737,10738,10740,10743,10745,10747,10749,10751],{"class":36,"line":839},[34,10739,10472],{"class":181},[34,10741,10742],{"class":580},"-f",[34,10744,10326],{"class":54},[34,10746,10728],{"class":181},[34,10748,10389],{"class":54},[34,10750,10516],{"class":181},[34,10752,10753],{"class":40},"# Is regular file\n",[34,10755,10756,10758,10761,10763,10765,10767,10769],{"class":36,"line":854},[34,10757,10472],{"class":181},[34,10759,10760],{"class":580},"-d",[34,10762,10326],{"class":54},[34,10764,10728],{"class":181},[34,10766,10389],{"class":54},[34,10768,10516],{"class":181},[34,10770,10771],{"class":40},"# Is directory\n",[34,10773,10774,10776,10779,10781,10783,10785,10787],{"class":36,"line":860},[34,10775,10472],{"class":181},[34,10777,10778],{"class":580},"-r",[34,10780,10326],{"class":54},[34,10782,10728],{"class":181},[34,10784,10389],{"class":54},[34,10786,10516],{"class":181},[34,10788,10789],{"class":40},"# Is readable\n",[34,10791,10792,10794,10797,10799,10801,10803,10805],{"class":36,"line":865},[34,10793,10472],{"class":181},[34,10795,10796],{"class":580},"-w",[34,10798,10326],{"class":54},[34,10800,10728],{"class":181},[34,10802,10389],{"class":54},[34,10804,10516],{"class":181},[34,10806,10807],{"class":40},"# Is writable\n",[34,10809,10810,10812,10815,10817,10819,10821,10823],{"class":36,"line":870},[34,10811,10472],{"class":181},[34,10813,10814],{"class":580},"-x",[34,10816,10326],{"class":54},[34,10818,10728],{"class":181},[34,10820,10389],{"class":54},[34,10822,10516],{"class":181},[34,10824,10825],{"class":40},"# Is executable\n",[34,10827,10828,10830,10833,10835,10837,10839,10841],{"class":36,"line":876},[34,10829,10472],{"class":181},[34,10831,10832],{"class":580},"-s",[34,10834,10326],{"class":54},[34,10836,10728],{"class":181},[34,10838,10389],{"class":54},[34,10840,10516],{"class":181},[34,10842,10843],{"class":40},"# Size > 0\n",[34,10845,10846],{"class":36,"line":885},[34,10847,62],{"emptyLinePlaceholder":61},[34,10849,10850],{"class":36,"line":895},[34,10851,10852],{"class":40},"# Logical operators\n",[34,10854,10855,10857,10859,10861,10863,10866,10868,10870,10872,10874],{"class":36,"line":904},[34,10856,10472],{"class":181},[34,10858,10389],{"class":54},[34,10860,10477],{"class":181},[34,10862,10389],{"class":54},[34,10864,10865],{"class":181}," ] && [ ",[34,10867,10389],{"class":54},[34,10869,10486],{"class":181},[34,10871,10389],{"class":54},[34,10873,10516],{"class":181},[34,10875,10876],{"class":40},"# AND\n",[34,10878,10879,10881,10883,10885,10887,10890,10893,10895,10897,10899,10901,10903],{"class":36,"line":915},[34,10880,10472],{"class":181},[34,10882,10389],{"class":54},[34,10884,10477],{"class":181},[34,10886,10389],{"class":54},[34,10888,10889],{"class":181}," ] ",[34,10891,10892],{"class":580},"||",[34,10894,10386],{"class":181},[34,10896,10389],{"class":54},[34,10898,10486],{"class":181},[34,10900,10389],{"class":54},[34,10902,10516],{"class":181},[34,10904,10905],{"class":40},"# OR\n",[34,10907,10908,10910,10912,10914,10916,10918,10921],{"class":36,"line":927},[34,10909,10307],{"class":580},[34,10911,10386],{"class":181},[34,10913,10389],{"class":54},[34,10915,10477],{"class":181},[34,10917,10389],{"class":54},[34,10919,10920],{"class":181}," ]            ",[34,10922,10923],{"class":40},"# NOT\n",[34,10925,10926],{"class":36,"line":932},[34,10927,62],{"emptyLinePlaceholder":61},[34,10929,10930],{"class":36,"line":944},[34,10931,10932],{"class":40},"# Modern test syntax (Bash-specific)\n",[34,10934,10935,10938,10940,10942,10944,10947,10949],{"class":36,"line":966},[34,10936,10937],{"class":181},"[[ ",[34,10939,10389],{"class":54},[34,10941,10392],{"class":181},[34,10943,10389],{"class":54},[34,10945,10946],{"class":580}," ==",[34,10948,10399],{"class":54},[34,10950,10951],{"class":181}," ]]\n",[34,10953,10954,10956,10958,10960,10962,10965,10968,10970,10973],{"class":36,"line":1948},[34,10955,10937],{"class":181},[34,10957,10389],{"class":54},[34,10959,10392],{"class":181},[34,10961,10389],{"class":54},[34,10963,10964],{"class":580}," =~",[34,10966,10967],{"class":181}," ^J.",[34,10969,4289],{"class":580},[34,10971,10972],{"class":181},"n$ ]]  ",[34,10974,10975],{"class":40},"# Regex match\n",[388,10977,10978],{},"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 .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":30,"searchDepth":44,"depth":44,"links":10980},[10981],{"id":10368,"depth":44,"text":10363},"Conditionals in Bash.",{},"/bash/conditionals",{"title":10363,"description":10982},"bash/conditionals",[29,10358,5588,10359,557],"2zWZSwcJG2-UORKr1xscDgUFZ6yPqCtbtrYrIlRXUQU",{"id":10990,"title":10991,"body":10992,"date":402,"description":11195,"extension":404,"meta":11196,"navigation":61,"order":71,"path":11197,"seo":11198,"stem":11199,"subject":29,"tags":11200,"__hash__":11201},"topics/bash/functions.md","Functions",{"type":8,"value":10993,"toc":11192},[10994,10997,11189],[11,10995,10991],{"id":10996},"functions",[25,10998,11000],{"className":27,"code":10999,"language":29,"meta":30,"style":30},"# Function definition\ngreet() {\n  echo \"Hello, $1!\"\n}\n\n# Alternative syntax\nfunction greet {\n  echo \"Hello, $1!\"\n}\n\n# Call function\ngreet \"World\"\n\n# Return values\nadd() {\n  local result=$(($1 + $2))\n  echo $result\n}\nsum=$(add 5 3)\n\n# Local variables\nmy_func() {\n  local my_var=\"local\"\n  echo $my_var\n}\n",[20,11001,11002,11007,11014,11027,11031,11035,11040,11050,11060,11064,11068,11073,11080,11084,11089,11096,11120,11127,11131,11150,11154,11159,11166,11178,11185],{"__ignoreMap":30},[34,11003,11004],{"class":36,"line":37},[34,11005,11006],{"class":40},"# Function definition\n",[34,11008,11009,11012],{"class":36,"line":44},[34,11010,11011],{"class":47},"greet",[34,11013,836],{"class":181},[34,11015,11016,11018,11021,11024],{"class":36,"line":58},[34,11017,10276],{"class":50},[34,11019,11020],{"class":54}," \"Hello, ",[34,11022,11023],{"class":50},"$1",[34,11025,11026],{"class":54},"!\"\n",[34,11028,11029],{"class":36,"line":65},[34,11030,693],{"class":181},[34,11032,11033],{"class":36,"line":71},[34,11034,62],{"emptyLinePlaceholder":61},[34,11036,11037],{"class":36,"line":77},[34,11038,11039],{"class":40},"# Alternative syntax\n",[34,11041,11042,11045,11048],{"class":36,"line":82},[34,11043,11044],{"class":580},"function",[34,11046,11047],{"class":47}," greet",[34,11049,661],{"class":181},[34,11051,11052,11054,11056,11058],{"class":36,"line":88},[34,11053,10276],{"class":50},[34,11055,11020],{"class":54},[34,11057,11023],{"class":50},[34,11059,11026],{"class":54},[34,11061,11062],{"class":36,"line":242},[34,11063,693],{"class":181},[34,11065,11066],{"class":36,"line":250},[34,11067,62],{"emptyLinePlaceholder":61},[34,11069,11070],{"class":36,"line":263},[34,11071,11072],{"class":40},"# Call function\n",[34,11074,11075,11077],{"class":36,"line":275},[34,11076,11011],{"class":47},[34,11078,11079],{"class":54}," \"World\"\n",[34,11081,11082],{"class":36,"line":700},[34,11083,62],{"emptyLinePlaceholder":61},[34,11085,11086],{"class":36,"line":706},[34,11087,11088],{"class":40},"# Return values\n",[34,11090,11091,11094],{"class":36,"line":715},[34,11092,11093],{"class":47},"add",[34,11095,836],{"class":181},[34,11097,11098,11101,11104,11106,11109,11111,11114,11117],{"class":36,"line":725},[34,11099,11100],{"class":580},"  local",[34,11102,11103],{"class":181}," result",[34,11105,1301],{"class":580},[34,11107,11108],{"class":181},"$((",[34,11110,11023],{"class":675},[34,11112,11113],{"class":181}," + ",[34,11115,11116],{"class":675},"$2",[34,11118,11119],{"class":181},"))\n",[34,11121,11122,11124],{"class":36,"line":734},[34,11123,10276],{"class":50},[34,11125,11126],{"class":181}," $result\n",[34,11128,11129],{"class":36,"line":742},[34,11130,693],{"class":181},[34,11132,11133,11136,11138,11140,11142,11145,11148],{"class":36,"line":748},[34,11134,11135],{"class":181},"sum",[34,11137,1301],{"class":580},[34,11139,9741],{"class":181},[34,11141,11093],{"class":47},[34,11143,11144],{"class":50}," 5",[34,11146,11147],{"class":50}," 3",[34,11149,3372],{"class":181},[34,11151,11152],{"class":36,"line":754},[34,11153,62],{"emptyLinePlaceholder":61},[34,11155,11156],{"class":36,"line":759},[34,11157,11158],{"class":40},"# Local variables\n",[34,11160,11161,11164],{"class":36,"line":771},[34,11162,11163],{"class":47},"my_func",[34,11165,836],{"class":181},[34,11167,11168,11170,11173,11175],{"class":36,"line":794},[34,11169,11100],{"class":580},[34,11171,11172],{"class":181}," my_var",[34,11174,1301],{"class":580},[34,11176,11177],{"class":54},"\"local\"\n",[34,11179,11180,11182],{"class":36,"line":824},[34,11181,10276],{"class":50},[34,11183,11184],{"class":181}," $my_var\n",[34,11186,11187],{"class":36,"line":830},[34,11188,693],{"class":181},[388,11190,11191],{},"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 .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 pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":11193},[11194],{"id":10996,"depth":44,"text":10991},"Functions in Bash.",{},"/bash/functions",{"title":10991,"description":11195},"bash/functions",[29,10358,5588,10359,557],"tdAdLF58-98Dr2nMH4jP5pXHw-WQ8Itiiv1ko6_xCSI",{"id":11203,"title":11204,"body":11205,"date":402,"description":11505,"extension":404,"meta":11506,"navigation":61,"order":88,"path":11507,"seo":11508,"stem":11509,"subject":29,"tags":11510,"__hash__":11511},"topics/bash/inputoutput.md","Input/Output",{"type":8,"value":11206,"toc":11502},[11207,11210,11499],[11,11208,11204],{"id":11209},"inputoutput",[25,11211,11213],{"className":27,"code":11212,"language":29,"meta":30,"style":30},"# Read user input\nread -p \"Enter name: \" name\nread -s -p \"Password: \" pass  # Silent input\nread -t 5 -p \"Quick! \" ans    # Timeout\n\n# Output\necho \"Hello\"\necho -e \"Line1\\nLine2\"  # Enable escapes\nprintf \"Name: %s, Age: %d\\n\" \"$name\" \"$age\"\n\n# Redirection\ncommand > file.txt     # Stdout to file (overwrite)\ncommand >> file.txt    # Stdout to file (append)\ncommand 2> error.txt   # Stderr to file\ncommand &> all.txt     # Both to file\ncommand \u003C input.txt    # File to stdin\ncommand 2>&1           # Stderr to stdout\n\n# Pipes\nls -la | grep \".txt\" | wc -l\n\n# Here document\ncat \u003C\u003C EOF\nMultiple\nlines\nof text\nEOF\n\n# Here string\ngrep \"pattern\" \u003C\u003C\u003C \"search this string\"\n",[20,11214,11215,11220,11233,11250,11270,11274,11279,11286,11299,11321,11325,11330,11342,11354,11367,11382,11394,11404,11408,11413,11436,11440,11445,11456,11461,11466,11471,11476,11480,11485],{"__ignoreMap":30},[34,11216,11217],{"class":36,"line":37},[34,11218,11219],{"class":40},"# Read user input\n",[34,11221,11222,11225,11227,11230],{"class":36,"line":44},[34,11223,11224],{"class":50},"read",[34,11226,5275],{"class":50},[34,11228,11229],{"class":54}," \"Enter name: \"",[34,11231,11232],{"class":54}," name\n",[34,11234,11235,11237,11239,11241,11244,11247],{"class":36,"line":58},[34,11236,11224],{"class":50},[34,11238,5487],{"class":50},[34,11240,5275],{"class":50},[34,11242,11243],{"class":54}," \"Password: \"",[34,11245,11246],{"class":54}," pass",[34,11248,11249],{"class":40},"  # Silent input\n",[34,11251,11252,11254,11257,11259,11261,11264,11267],{"class":36,"line":65},[34,11253,11224],{"class":50},[34,11255,11256],{"class":50}," -t",[34,11258,11144],{"class":50},[34,11260,5275],{"class":50},[34,11262,11263],{"class":54}," \"Quick! \"",[34,11265,11266],{"class":54}," ans",[34,11268,11269],{"class":40},"    # Timeout\n",[34,11271,11272],{"class":36,"line":71},[34,11273,62],{"emptyLinePlaceholder":61},[34,11275,11276],{"class":36,"line":77},[34,11277,11278],{"class":40},"# Output\n",[34,11280,11281,11283],{"class":36,"line":82},[34,11282,10120],{"class":50},[34,11284,11285],{"class":54}," \"Hello\"\n",[34,11287,11288,11290,11293,11296],{"class":36,"line":88},[34,11289,10120],{"class":50},[34,11291,11292],{"class":50}," -e",[34,11294,11295],{"class":54}," \"Line1\\nLine2\"",[34,11297,11298],{"class":40},"  # Enable escapes\n",[34,11300,11301,11304,11307,11309,11311,11313,11315,11318],{"class":36,"line":242},[34,11302,11303],{"class":50},"printf",[34,11305,11306],{"class":54}," \"Name: %s, Age: %d\\n\"",[34,11308,10326],{"class":54},[34,11310,10392],{"class":181},[34,11312,10389],{"class":54},[34,11314,10326],{"class":54},[34,11316,11317],{"class":181},"$age",[34,11319,11320],{"class":54},"\"\n",[34,11322,11323],{"class":36,"line":250},[34,11324,62],{"emptyLinePlaceholder":61},[34,11326,11327],{"class":36,"line":263},[34,11328,11329],{"class":40},"# Redirection\n",[34,11331,11332,11335,11337,11339],{"class":36,"line":275},[34,11333,11334],{"class":50},"command",[34,11336,9009],{"class":580},[34,11338,8832],{"class":54},[34,11340,11341],{"class":40},"     # Stdout to file (overwrite)\n",[34,11343,11344,11346,11349,11351],{"class":36,"line":700},[34,11345,11334],{"class":50},[34,11347,11348],{"class":580}," >>",[34,11350,8832],{"class":54},[34,11352,11353],{"class":40},"    # Stdout to file (append)\n",[34,11355,11356,11358,11361,11364],{"class":36,"line":706},[34,11357,11334],{"class":50},[34,11359,11360],{"class":580}," 2>",[34,11362,11363],{"class":54}," error.txt",[34,11365,11366],{"class":40},"   # Stderr to file\n",[34,11368,11369,11371,11374,11376,11379],{"class":36,"line":715},[34,11370,11334],{"class":50},[34,11372,11373],{"class":181}," &",[34,11375,5691],{"class":580},[34,11377,11378],{"class":181}," all.txt     ",[34,11380,11381],{"class":40},"# Both to file\n",[34,11383,11384,11386,11388,11391],{"class":36,"line":725},[34,11385,11334],{"class":50},[34,11387,5470],{"class":580},[34,11389,11390],{"class":54}," input.txt",[34,11392,11393],{"class":40},"    # File to stdin\n",[34,11395,11396,11398,11401],{"class":36,"line":734},[34,11397,11334],{"class":50},[34,11399,11400],{"class":580}," 2>&1",[34,11402,11403],{"class":40},"           # Stderr to stdout\n",[34,11405,11406],{"class":36,"line":742},[34,11407,62],{"emptyLinePlaceholder":61},[34,11409,11410],{"class":36,"line":748},[34,11411,11412],{"class":40},"# Pipes\n",[34,11414,11415,11418,11421,11423,11426,11429,11431,11434],{"class":36,"line":754},[34,11416,11417],{"class":47},"ls",[34,11419,11420],{"class":50}," -la",[34,11422,7197],{"class":580},[34,11424,11425],{"class":47}," grep",[34,11427,11428],{"class":54}," \".txt\"",[34,11430,7197],{"class":580},[34,11432,11433],{"class":47}," wc",[34,11435,93],{"class":50},[34,11437,11438],{"class":36,"line":759},[34,11439,62],{"emptyLinePlaceholder":61},[34,11441,11442],{"class":36,"line":771},[34,11443,11444],{"class":40},"# Here document\n",[34,11446,11447,11450,11453],{"class":36,"line":794},[34,11448,11449],{"class":47},"cat",[34,11451,11452],{"class":580}," \u003C\u003C",[34,11454,11455],{"class":54}," EOF\n",[34,11457,11458],{"class":36,"line":824},[34,11459,11460],{"class":54},"Multiple\n",[34,11462,11463],{"class":36,"line":830},[34,11464,11465],{"class":54},"lines\n",[34,11467,11468],{"class":36,"line":839},[34,11469,11470],{"class":54},"of text\n",[34,11472,11473],{"class":36,"line":854},[34,11474,11475],{"class":54},"EOF\n",[34,11477,11478],{"class":36,"line":860},[34,11479,62],{"emptyLinePlaceholder":61},[34,11481,11482],{"class":36,"line":865},[34,11483,11484],{"class":40},"# Here string\n",[34,11486,11487,11490,11493,11496],{"class":36,"line":870},[34,11488,11489],{"class":47},"grep",[34,11491,11492],{"class":54}," \"pattern\"",[34,11494,11495],{"class":580}," \u003C\u003C\u003C",[34,11497,11498],{"class":54}," \"search this string\"\n",[388,11500,11501],{},"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}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 .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 .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":30,"searchDepth":44,"depth":44,"links":11503},[11504],{"id":11209,"depth":44,"text":11204},"Input/Output in Bash.",{},"/bash/inputoutput",{"title":11204,"description":11505},"bash/inputoutput",[29,10358,5588,10359,557],"SqyKZirBtuVuq9vwegc7adUHO-mXBCDL_D0Kt_eN210",{"id":11513,"title":11514,"body":11515,"date":402,"description":11760,"extension":404,"meta":11761,"navigation":61,"order":275,"path":11762,"seo":11763,"stem":11764,"subject":29,"tags":11765,"__hash__":11766},"topics/bash/keyboard-shortcuts.md","Keyboard Shortcuts",{"type":8,"value":11516,"toc":11757},[11517,11520,11754],[11,11518,11514],{"id":11519},"keyboard-shortcuts",[25,11521,11523],{"className":27,"code":11522,"language":29,"meta":30,"style":30},"# Navigation\nCtrl + A    # Move to beginning of line\nCtrl + E    # Move to end of line\nCtrl + U    # Delete to beginning\nCtrl + K    # Delete to end\nCtrl + W    # Delete previous word\nAlt + B     # Move back one word\nAlt + F     # Move forward one word\n\n# History\nCtrl + R    # Reverse search history\nCtrl + P    # Previous command\nCtrl + N    # Next command\n!!          # Repeat last command\n!$          # Last argument of previous command\n!*          # All arguments of previous command\n!n          # Execute command n from history\n\n# Control\nCtrl + C    # Interrupt/Kill current command\nCtrl + Z    # Suspend current command\nCtrl + D    # Exit shell / EOF\nCtrl + L    # Clear screen\n",[20,11524,11525,11530,11544,11556,11568,11580,11592,11605,11617,11621,11626,11638,11650,11662,11670,11680,11688,11697,11701,11706,11718,11730,11742],{"__ignoreMap":30},[34,11526,11527],{"class":36,"line":37},[34,11528,11529],{"class":40},"# Navigation\n",[34,11531,11532,11535,11538,11541],{"class":36,"line":44},[34,11533,11534],{"class":47},"Ctrl",[34,11536,11537],{"class":54}," +",[34,11539,11540],{"class":54}," A",[34,11542,11543],{"class":40},"    # Move to beginning of line\n",[34,11545,11546,11548,11550,11553],{"class":36,"line":58},[34,11547,11534],{"class":47},[34,11549,11537],{"class":54},[34,11551,11552],{"class":54}," E",[34,11554,11555],{"class":40},"    # Move to end of line\n",[34,11557,11558,11560,11562,11565],{"class":36,"line":65},[34,11559,11534],{"class":47},[34,11561,11537],{"class":54},[34,11563,11564],{"class":54}," U",[34,11566,11567],{"class":40},"    # Delete to beginning\n",[34,11569,11570,11572,11574,11577],{"class":36,"line":71},[34,11571,11534],{"class":47},[34,11573,11537],{"class":54},[34,11575,11576],{"class":54}," K",[34,11578,11579],{"class":40},"    # Delete to end\n",[34,11581,11582,11584,11586,11589],{"class":36,"line":77},[34,11583,11534],{"class":47},[34,11585,11537],{"class":54},[34,11587,11588],{"class":54}," W",[34,11590,11591],{"class":40},"    # Delete previous word\n",[34,11593,11594,11597,11599,11602],{"class":36,"line":82},[34,11595,11596],{"class":47},"Alt",[34,11598,11537],{"class":54},[34,11600,11601],{"class":54}," B",[34,11603,11604],{"class":40},"     # Move back one word\n",[34,11606,11607,11609,11611,11614],{"class":36,"line":88},[34,11608,11596],{"class":47},[34,11610,11537],{"class":54},[34,11612,11613],{"class":54}," F",[34,11615,11616],{"class":40},"     # Move forward one word\n",[34,11618,11619],{"class":36,"line":242},[34,11620,62],{"emptyLinePlaceholder":61},[34,11622,11623],{"class":36,"line":250},[34,11624,11625],{"class":40},"# History\n",[34,11627,11628,11630,11632,11635],{"class":36,"line":263},[34,11629,11534],{"class":47},[34,11631,11537],{"class":54},[34,11633,11634],{"class":54}," R",[34,11636,11637],{"class":40},"    # Reverse search history\n",[34,11639,11640,11642,11644,11647],{"class":36,"line":275},[34,11641,11534],{"class":47},[34,11643,11537],{"class":54},[34,11645,11646],{"class":54}," P",[34,11648,11649],{"class":40},"    # Previous command\n",[34,11651,11652,11654,11656,11659],{"class":36,"line":700},[34,11653,11534],{"class":47},[34,11655,11537],{"class":54},[34,11657,11658],{"class":54}," N",[34,11660,11661],{"class":40},"    # Next command\n",[34,11663,11664,11667],{"class":36,"line":706},[34,11665,11666],{"class":580},"!!",[34,11668,11669],{"class":40},"          # Repeat last command\n",[34,11671,11672,11674,11677],{"class":36,"line":715},[34,11673,10307],{"class":580},[34,11675,11676],{"class":47},"$",[34,11678,11679],{"class":40},"          # Last argument of previous command\n",[34,11681,11682,11685],{"class":36,"line":725},[34,11683,11684],{"class":580},"!*",[34,11686,11687],{"class":40},"          # All arguments of previous command\n",[34,11689,11690,11692,11694],{"class":36,"line":734},[34,11691,10307],{"class":580},[34,11693,6217],{"class":47},[34,11695,11696],{"class":40},"          # Execute command n from history\n",[34,11698,11699],{"class":36,"line":742},[34,11700,62],{"emptyLinePlaceholder":61},[34,11702,11703],{"class":36,"line":748},[34,11704,11705],{"class":40},"# Control\n",[34,11707,11708,11710,11712,11715],{"class":36,"line":754},[34,11709,11534],{"class":47},[34,11711,11537],{"class":54},[34,11713,11714],{"class":54}," C",[34,11716,11717],{"class":40},"    # Interrupt/Kill current command\n",[34,11719,11720,11722,11724,11727],{"class":36,"line":759},[34,11721,11534],{"class":47},[34,11723,11537],{"class":54},[34,11725,11726],{"class":54}," Z",[34,11728,11729],{"class":40},"    # Suspend current command\n",[34,11731,11732,11734,11736,11739],{"class":36,"line":771},[34,11733,11534],{"class":47},[34,11735,11537],{"class":54},[34,11737,11738],{"class":54}," D",[34,11740,11741],{"class":40},"    # Exit shell / EOF\n",[34,11743,11744,11746,11748,11751],{"class":36,"line":794},[34,11745,11534],{"class":47},[34,11747,11537],{"class":54},[34,11749,11750],{"class":54}," L",[34,11752,11753],{"class":40},"    # Clear screen\n",[388,11755,11756],{},"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 pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":11758},[11759],{"id":11519,"depth":44,"text":11514},"Keyboard Shortcuts in Bash.",{},"/bash/keyboard-shortcuts",{"title":11514,"description":11760},"bash/keyboard-shortcuts",[29,10358,5588,10359,557],"465p-ppnwWaAAZvc-g5E2y9Fri3QF3FInBmFb8qSA4M",{"id":11768,"title":11769,"body":11770,"date":402,"description":12147,"extension":404,"meta":12148,"navigation":61,"order":65,"path":12149,"seo":12150,"stem":12151,"subject":29,"tags":12152,"__hash__":12153},"topics/bash/loops.md","Loops",{"type":8,"value":11771,"toc":12144},[11772,11775,12141],[11,11773,11769],{"id":11774},"loops",[25,11776,11778],{"className":27,"code":11777,"language":29,"meta":30,"style":30},"# For loop\nfor i in 1 2 3 4 5; do\n  echo $i\ndone\n\n# For loop with range\nfor i in {1..10}; do\n  echo $i\ndone\n\n# For loop with step\nfor i in {0..20..2}; do\n  echo $i  # 0, 2, 4, ...\ndone\n\n# C-style for loop\nfor ((i=0; i\u003C10; i++)); do\n  echo $i\ndone\n\n# Loop over files\nfor file in *.txt; do\n  echo \"$file\"\ndone\n\n# While loop\ncount=0\nwhile [ $count -lt 5 ]; do\n  echo $count\n  ((count++))\ndone\n\n# Until loop\ncount=0\nuntil [ $count -ge 5 ]; do\n  echo $count\n  ((count++))\ndone\n\n# Loop over lines in file\nwhile IFS= read -r line; do\n  echo \"$line\"\ndone \u003C file.txt\n",[20,11779,11780,11785,11808,11815,11819,11823,11828,11846,11852,11856,11860,11865,11882,11892,11896,11900,11905,11934,11940,11944,11948,11953,11969,11979,11983,11987,11992,12001,12018,12025,12034,12038,12042,12047,12055,12071,12077,12085,12089,12093,12098,12120,12131],{"__ignoreMap":30},[34,11781,11782],{"class":36,"line":37},[34,11783,11784],{"class":40},"# For loop\n",[34,11786,11787,11789,11791,11793,11795,11797,11799,11802,11804,11806],{"class":36,"line":44},[34,11788,10246],{"class":580},[34,11790,10300],{"class":181},[34,11792,10252],{"class":580},[34,11794,3567],{"class":54},[34,11796,4292],{"class":54},[34,11798,11147],{"class":54},[34,11800,11801],{"class":54}," 4",[34,11803,11144],{"class":54},[34,11805,10268],{"class":181},[34,11807,10271],{"class":580},[34,11809,11810,11812],{"class":36,"line":58},[34,11811,10276],{"class":50},[34,11813,11814],{"class":181}," $i\n",[34,11816,11817],{"class":36,"line":65},[34,11818,10284],{"class":580},[34,11820,11821],{"class":36,"line":71},[34,11822,62],{"emptyLinePlaceholder":61},[34,11824,11825],{"class":36,"line":77},[34,11826,11827],{"class":40},"# For loop with range\n",[34,11829,11830,11832,11834,11836,11839,11842,11844],{"class":36,"line":82},[34,11831,10246],{"class":580},[34,11833,10300],{"class":181},[34,11835,10252],{"class":580},[34,11837,11838],{"class":181}," {",[34,11840,11841],{"class":47},"1..10}",[34,11843,10268],{"class":181},[34,11845,10271],{"class":580},[34,11847,11848,11850],{"class":36,"line":88},[34,11849,10276],{"class":50},[34,11851,11814],{"class":181},[34,11853,11854],{"class":36,"line":242},[34,11855,10284],{"class":580},[34,11857,11858],{"class":36,"line":250},[34,11859,62],{"emptyLinePlaceholder":61},[34,11861,11862],{"class":36,"line":263},[34,11863,11864],{"class":40},"# For loop with step\n",[34,11866,11867,11869,11871,11873,11875,11878,11880],{"class":36,"line":275},[34,11868,10246],{"class":580},[34,11870,10300],{"class":181},[34,11872,10252],{"class":580},[34,11874,11838],{"class":181},[34,11876,11877],{"class":47},"0..20..2}",[34,11879,10268],{"class":181},[34,11881,10271],{"class":580},[34,11883,11884,11886,11889],{"class":36,"line":700},[34,11885,10276],{"class":50},[34,11887,11888],{"class":181}," $i  ",[34,11890,11891],{"class":40},"# 0, 2, 4, ...\n",[34,11893,11894],{"class":36,"line":706},[34,11895,10284],{"class":580},[34,11897,11898],{"class":36,"line":715},[34,11899,62],{"emptyLinePlaceholder":61},[34,11901,11902],{"class":36,"line":725},[34,11903,11904],{"class":40},"# C-style for loop\n",[34,11906,11907,11909,11912,11914,11916,11919,11921,11924,11926,11929,11932],{"class":36,"line":734},[34,11908,10246],{"class":580},[34,11910,11911],{"class":181}," ((i",[34,11913,1301],{"class":580},[34,11915,2773],{"class":50},[34,11917,11918],{"class":181},"; i",[34,11920,815],{"class":580},[34,11922,11923],{"class":50},"10",[34,11925,11918],{"class":181},[34,11927,11928],{"class":580},"++",[34,11930,11931],{"class":181},")); ",[34,11933,10271],{"class":580},[34,11935,11936,11938],{"class":36,"line":742},[34,11937,10276],{"class":50},[34,11939,11814],{"class":181},[34,11941,11942],{"class":36,"line":748},[34,11943,10284],{"class":580},[34,11945,11946],{"class":36,"line":754},[34,11947,62],{"emptyLinePlaceholder":61},[34,11949,11950],{"class":36,"line":759},[34,11951,11952],{"class":40},"# Loop over files\n",[34,11954,11955,11957,11960,11962,11965,11967],{"class":36,"line":771},[34,11956,10246],{"class":580},[34,11958,11959],{"class":181}," file ",[34,11961,10252],{"class":580},[34,11963,11964],{"class":54}," *.txt",[34,11966,10268],{"class":181},[34,11968,10271],{"class":580},[34,11970,11971,11973,11975,11977],{"class":36,"line":794},[34,11972,10276],{"class":50},[34,11974,10326],{"class":54},[34,11976,10728],{"class":181},[34,11978,11320],{"class":54},[34,11980,11981],{"class":36,"line":824},[34,11982,10284],{"class":580},[34,11984,11985],{"class":36,"line":830},[34,11986,62],{"emptyLinePlaceholder":61},[34,11988,11989],{"class":36,"line":839},[34,11990,11991],{"class":40},"# While loop\n",[34,11993,11994,11996,11998],{"class":36,"line":854},[34,11995,4284],{"class":181},[34,11997,1301],{"class":580},[34,11999,12000],{"class":54},"0\n",[34,12002,12003,12006,12009,12012,12014,12016],{"class":36,"line":860},[34,12004,12005],{"class":580},"while",[34,12007,12008],{"class":181}," [ $count ",[34,12010,12011],{"class":580},"-lt",[34,12013,11144],{"class":50},[34,12015,10402],{"class":181},[34,12017,10271],{"class":580},[34,12019,12020,12022],{"class":36,"line":865},[34,12021,10276],{"class":50},[34,12023,12024],{"class":181}," $count\n",[34,12026,12027,12030,12032],{"class":36,"line":870},[34,12028,12029],{"class":181},"  ((count",[34,12031,11928],{"class":580},[34,12033,11119],{"class":181},[34,12035,12036],{"class":36,"line":876},[34,12037,10284],{"class":580},[34,12039,12040],{"class":36,"line":885},[34,12041,62],{"emptyLinePlaceholder":61},[34,12043,12044],{"class":36,"line":895},[34,12045,12046],{"class":40},"# Until loop\n",[34,12048,12049,12051,12053],{"class":36,"line":904},[34,12050,4284],{"class":181},[34,12052,1301],{"class":580},[34,12054,12000],{"class":54},[34,12056,12057,12060,12062,12065,12067,12069],{"class":36,"line":915},[34,12058,12059],{"class":580},"until",[34,12061,12008],{"class":181},[34,12063,12064],{"class":580},"-ge",[34,12066,11144],{"class":50},[34,12068,10402],{"class":181},[34,12070,10271],{"class":580},[34,12072,12073,12075],{"class":36,"line":927},[34,12074,10276],{"class":50},[34,12076,12024],{"class":181},[34,12078,12079,12081,12083],{"class":36,"line":932},[34,12080,12029],{"class":181},[34,12082,11928],{"class":580},[34,12084,11119],{"class":181},[34,12086,12087],{"class":36,"line":944},[34,12088,10284],{"class":580},[34,12090,12091],{"class":36,"line":966},[34,12092,62],{"emptyLinePlaceholder":61},[34,12094,12095],{"class":36,"line":1948},[34,12096,12097],{"class":40},"# Loop over lines in file\n",[34,12099,12100,12102,12105,12107,12110,12113,12116,12118],{"class":36,"line":1953},[34,12101,12005],{"class":580},[34,12103,12104],{"class":181}," IFS",[34,12106,1301],{"class":580},[34,12108,12109],{"class":50}," read",[34,12111,12112],{"class":50}," -r",[34,12114,12115],{"class":54}," line",[34,12117,10268],{"class":181},[34,12119,10271],{"class":580},[34,12121,12122,12124,12126,12129],{"class":36,"line":3616},[34,12123,10276],{"class":50},[34,12125,10326],{"class":54},[34,12127,12128],{"class":181},"$line",[34,12130,11320],{"class":54},[34,12132,12133,12136,12138],{"class":36,"line":3622},[34,12134,12135],{"class":580},"done",[34,12137,5470],{"class":580},[34,12139,12140],{"class":181}," file.txt\n",[388,12142,12143],{},"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 .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":30,"searchDepth":44,"depth":44,"links":12145},[12146],{"id":11774,"depth":44,"text":11769},"Loops in Bash.",{},"/bash/loops",{"title":11769,"description":12147},"bash/loops",[29,10358,5588,10359,557],"aOPYQ9_rQniz8yxl6oFwvlhCDFKupcMPlFZ-otBXBIk",{"id":12155,"title":12156,"body":12157,"date":2633,"description":12217,"extension":404,"meta":12218,"navigation":61,"order":37,"path":12219,"seo":12220,"stem":12221,"subject":29,"tags":12222,"__hash__":12223},"topics/bash/overview.md","Bash",{"type":8,"value":12158,"toc":12215},[12159],[309,12160,12161,12167,12171,12175,12179,12183,12189,12193,12199,12205,12211],{},[312,12162,12163],{},[145,12164,12166],{"href":12165},"/bash/variables","Variables",[312,12168,12169],{},[145,12170,10363],{"href":10984},[312,12172,12173],{},[145,12174,11769],{"href":12149},[312,12176,12177],{},[145,12178,10991],{"href":11197},[312,12180,12181],{},[145,12182,10061],{"href":10354},[312,12184,12185],{},[145,12186,12188],{"href":12187},"/bash/string-manipulation","String Manipulation",[312,12190,12191],{},[145,12192,11204],{"href":11507},[312,12194,12195],{},[145,12196,12198],{"href":12197},"/bash/process-management","Process Management",[312,12200,12201],{},[145,12202,12204],{"href":12203},"/bash/useful-commands","Useful Commands",[312,12206,12207],{},[145,12208,12210],{"href":12209},"/bash/scripting-best-practices","Scripting Best Practices",[312,12212,12213],{},[145,12214,11514],{"href":11762},{"title":30,"searchDepth":44,"depth":44,"links":12216},[],"Essential Bash shell commands, scripting syntax, and shortcuts for efficient command-line usage.",{},"/bash/overview",{"title":12156,"description":12217},"bash/overview",[29,10358,5588,10359,557],"kGdNL5BJPQcjnb-mGCm10hj-f-Byp_Mtw0sMR7Pj7w8",{"id":12225,"title":12198,"body":12226,"date":402,"description":12402,"extension":404,"meta":12403,"navigation":61,"order":242,"path":12197,"seo":12404,"stem":12405,"subject":29,"tags":12406,"__hash__":12407},"topics/bash/process-management.md",{"type":8,"value":12227,"toc":12399},[12228,12231,12396],[11,12229,12198],{"id":12230},"process-management",[25,12232,12234],{"className":27,"code":12233,"language":29,"meta":30,"style":30},"# Run in background\ncommand &\n\n# List jobs\njobs\n\n# Foreground/Background\nfg %1\nbg %1\n\n# Kill processes\nkill PID\nkill -9 PID     # Force kill\nkillall name    # Kill by name\npkill pattern   # Kill by pattern\n\n# Process info\nps aux          # All processes\nps aux | grep name\npgrep pattern   # Find PID by pattern\ntop             # Interactive process viewer\nhtop            # Better process viewer\n",[20,12235,12236,12241,12248,12252,12257,12262,12266,12271,12279,12286,12290,12295,12303,12316,12327,12338,12342,12347,12358,12370,12380,12388],{"__ignoreMap":30},[34,12237,12238],{"class":36,"line":37},[34,12239,12240],{"class":40},"# Run in background\n",[34,12242,12243,12245],{"class":36,"line":44},[34,12244,11334],{"class":50},[34,12246,12247],{"class":181}," &\n",[34,12249,12250],{"class":36,"line":58},[34,12251,62],{"emptyLinePlaceholder":61},[34,12253,12254],{"class":36,"line":65},[34,12255,12256],{"class":40},"# List jobs\n",[34,12258,12259],{"class":36,"line":71},[34,12260,12261],{"class":50},"jobs\n",[34,12263,12264],{"class":36,"line":77},[34,12265,62],{"emptyLinePlaceholder":61},[34,12267,12268],{"class":36,"line":82},[34,12269,12270],{"class":40},"# Foreground/Background\n",[34,12272,12273,12276],{"class":36,"line":88},[34,12274,12275],{"class":50},"fg",[34,12277,12278],{"class":54}," %1\n",[34,12280,12281,12284],{"class":36,"line":242},[34,12282,12283],{"class":50},"bg",[34,12285,12278],{"class":54},[34,12287,12288],{"class":36,"line":250},[34,12289,62],{"emptyLinePlaceholder":61},[34,12291,12292],{"class":36,"line":263},[34,12293,12294],{"class":40},"# Kill processes\n",[34,12296,12297,12300],{"class":36,"line":275},[34,12298,12299],{"class":50},"kill",[34,12301,12302],{"class":54}," PID\n",[34,12304,12305,12307,12310,12313],{"class":36,"line":700},[34,12306,12299],{"class":50},[34,12308,12309],{"class":50}," -9",[34,12311,12312],{"class":54}," PID",[34,12314,12315],{"class":40},"     # Force kill\n",[34,12317,12318,12321,12324],{"class":36,"line":706},[34,12319,12320],{"class":47},"killall",[34,12322,12323],{"class":54}," name",[34,12325,12326],{"class":40},"    # Kill by name\n",[34,12328,12329,12332,12335],{"class":36,"line":715},[34,12330,12331],{"class":47},"pkill",[34,12333,12334],{"class":54}," pattern",[34,12336,12337],{"class":40},"   # Kill by pattern\n",[34,12339,12340],{"class":36,"line":725},[34,12341,62],{"emptyLinePlaceholder":61},[34,12343,12344],{"class":36,"line":734},[34,12345,12346],{"class":40},"# Process info\n",[34,12348,12349,12352,12355],{"class":36,"line":742},[34,12350,12351],{"class":47},"ps",[34,12353,12354],{"class":54}," aux",[34,12356,12357],{"class":40},"          # All processes\n",[34,12359,12360,12362,12364,12366,12368],{"class":36,"line":748},[34,12361,12351],{"class":47},[34,12363,12354],{"class":54},[34,12365,7197],{"class":580},[34,12367,11425],{"class":47},[34,12369,11232],{"class":54},[34,12371,12372,12375,12377],{"class":36,"line":754},[34,12373,12374],{"class":47},"pgrep",[34,12376,12334],{"class":54},[34,12378,12379],{"class":40},"   # Find PID by pattern\n",[34,12381,12382,12385],{"class":36,"line":759},[34,12383,12384],{"class":47},"top",[34,12386,12387],{"class":40},"             # Interactive process viewer\n",[34,12389,12390,12393],{"class":36,"line":771},[34,12391,12392],{"class":47},"htop",[34,12394,12395],{"class":40},"            # Better process viewer\n",[388,12397,12398],{},"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}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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":12400},[12401],{"id":12230,"depth":44,"text":12198},"Process Management in Bash.",{},{"title":12198,"description":12402},"bash/process-management",[29,10358,5588,10359,557],"oMzHGT4e74clKZuLJwbxn-LuEr1RyrtIBuauyZcEu_A",{"id":12409,"title":12210,"body":12410,"date":402,"description":12624,"extension":404,"meta":12625,"navigation":61,"order":263,"path":12209,"seo":12626,"stem":12627,"subject":29,"tags":12628,"__hash__":12629},"topics/bash/scripting-best-practices.md",{"type":8,"value":12411,"toc":12621},[12412,12415,12618],[11,12413,12210],{"id":12414},"scripting-best-practices",[25,12416,12418],{"className":27,"code":12417,"language":29,"meta":30,"style":30},"#!/bin/bash\n\n# Exit on error\nset -e\n\n# Exit on undefined variable\nset -u\n\n# Exit on pipe failure\nset -o pipefail\n\n# Combined (recommended)\nset -euo pipefail\n\n# Debug mode\nset -x  # Print commands as they execute\n\n# Check if command exists\nif command -v git &> /dev/null; then\n  echo \"git is installed\"\nfi\n\n# Trap errors\ntrap 'echo \"Error on line $LINENO\"' ERR\n\n# Cleanup on exit\ncleanup() {\n  rm -f \"$temp_file\"\n}\ntrap cleanup EXIT\n",[20,12419,12420,12425,12429,12434,12441,12445,12450,12457,12461,12466,12475,12479,12484,12493,12497,12502,12512,12516,12521,12543,12550,12554,12558,12563,12574,12578,12583,12590,12604,12608],{"__ignoreMap":30},[34,12421,12422],{"class":36,"line":37},[34,12423,12424],{"class":40},"#!/bin/bash\n",[34,12426,12427],{"class":36,"line":44},[34,12428,62],{"emptyLinePlaceholder":61},[34,12430,12431],{"class":36,"line":58},[34,12432,12433],{"class":40},"# Exit on error\n",[34,12435,12436,12438],{"class":36,"line":65},[34,12437,1648],{"class":50},[34,12439,12440],{"class":50}," -e\n",[34,12442,12443],{"class":36,"line":71},[34,12444,62],{"emptyLinePlaceholder":61},[34,12446,12447],{"class":36,"line":77},[34,12448,12449],{"class":40},"# Exit on undefined variable\n",[34,12451,12452,12454],{"class":36,"line":82},[34,12453,1648],{"class":50},[34,12455,12456],{"class":50}," -u\n",[34,12458,12459],{"class":36,"line":88},[34,12460,62],{"emptyLinePlaceholder":61},[34,12462,12463],{"class":36,"line":242},[34,12464,12465],{"class":40},"# Exit on pipe failure\n",[34,12467,12468,12470,12472],{"class":36,"line":250},[34,12469,1648],{"class":50},[34,12471,8654],{"class":50},[34,12473,12474],{"class":54}," pipefail\n",[34,12476,12477],{"class":36,"line":263},[34,12478,62],{"emptyLinePlaceholder":61},[34,12480,12481],{"class":36,"line":275},[34,12482,12483],{"class":40},"# Combined (recommended)\n",[34,12485,12486,12488,12491],{"class":36,"line":700},[34,12487,1648],{"class":50},[34,12489,12490],{"class":50}," -euo",[34,12492,12474],{"class":54},[34,12494,12495],{"class":36,"line":706},[34,12496,62],{"emptyLinePlaceholder":61},[34,12498,12499],{"class":36,"line":715},[34,12500,12501],{"class":40},"# Debug mode\n",[34,12503,12504,12506,12509],{"class":36,"line":725},[34,12505,1648],{"class":50},[34,12507,12508],{"class":50}," -x",[34,12510,12511],{"class":40},"  # Print commands as they execute\n",[34,12513,12514],{"class":36,"line":734},[34,12515,62],{"emptyLinePlaceholder":61},[34,12517,12518],{"class":36,"line":742},[34,12519,12520],{"class":40},"# Check if command exists\n",[34,12522,12523,12525,12528,12531,12534,12536,12538,12541],{"class":36,"line":748},[34,12524,10383],{"class":580},[34,12526,12527],{"class":50}," command",[34,12529,12530],{"class":50}," -v",[34,12532,12533],{"class":54}," git",[34,12535,11373],{"class":181},[34,12537,5691],{"class":580},[34,12539,12540],{"class":181}," /dev/null; ",[34,12542,10405],{"class":580},[34,12544,12545,12547],{"class":36,"line":754},[34,12546,10276],{"class":50},[34,12548,12549],{"class":54}," \"git is installed\"\n",[34,12551,12552],{"class":36,"line":759},[34,12553,10458],{"class":580},[34,12555,12556],{"class":36,"line":771},[34,12557,62],{"emptyLinePlaceholder":61},[34,12559,12560],{"class":36,"line":794},[34,12561,12562],{"class":40},"# Trap errors\n",[34,12564,12565,12568,12571],{"class":36,"line":824},[34,12566,12567],{"class":50},"trap",[34,12569,12570],{"class":54}," 'echo \"Error on line $LINENO\"'",[34,12572,12573],{"class":54}," ERR\n",[34,12575,12576],{"class":36,"line":830},[34,12577,62],{"emptyLinePlaceholder":61},[34,12579,12580],{"class":36,"line":839},[34,12581,12582],{"class":40},"# Cleanup on exit\n",[34,12584,12585,12588],{"class":36,"line":854},[34,12586,12587],{"class":47},"cleanup",[34,12589,836],{"class":181},[34,12591,12592,12595,12597,12599,12602],{"class":36,"line":860},[34,12593,12594],{"class":47},"  rm",[34,12596,6001],{"class":50},[34,12598,10326],{"class":54},[34,12600,12601],{"class":181},"$temp_file",[34,12603,11320],{"class":54},[34,12605,12606],{"class":36,"line":865},[34,12607,693],{"class":181},[34,12609,12610,12612,12615],{"class":36,"line":870},[34,12611,12567],{"class":50},[34,12613,12614],{"class":54}," cleanup",[34,12616,12617],{"class":54}," EXIT\n",[388,12619,12620],{},"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}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":12622},[12623],{"id":12414,"depth":44,"text":12210},"Scripting Best Practices in Bash.",{},{"title":12210,"description":12624},"bash/scripting-best-practices",[29,10358,5588,10359,557],"L-HsM_YqYa5YYHI7q-i8242XLFtYcoJ9Si89mYLSPac",{"id":12631,"title":12188,"body":12632,"date":402,"description":12936,"extension":404,"meta":12937,"navigation":61,"order":82,"path":12187,"seo":12938,"stem":12939,"subject":29,"tags":12940,"__hash__":12941},"topics/bash/string-manipulation.md",{"type":8,"value":12633,"toc":12933},[12634,12637,12930],[11,12635,12188],{"id":12636},"string-manipulation",[25,12638,12640],{"className":27,"code":12639,"language":29,"meta":30,"style":30},"str=\"Hello World\"\n\n# Length\necho ${#str}  # 11\n\n# Substring\necho ${str:0:5}   # Hello\necho ${str:6}     # World\n\n# Replace\necho ${str/World/Bash}    # Replace first\necho ${str//l/L}          # Replace all\n\n# Remove pattern\necho ${str#Hello }   # Remove prefix: \"World\"\necho ${str%World}    # Remove suffix: \"Hello \"\necho ${str##*/}      # Remove longest prefix\necho ${str%%/*}      # Remove longest suffix\n\n# Case conversion (Bash 4+)\necho ${str^^}  # HELLO WORLD\necho ${str,,}  # hello world\n\n# Default values\necho ${var:-default}   # Use default if unset\necho ${var:=default}   # Set default if unset\necho ${var:+alt}       # Use alt if set\necho ${var:?error}     # Error if unset\n",[20,12641,12642,12652,12656,12661,12675,12679,12684,12703,12717,12721,12726,12746,12766,12770,12775,12789,12804,12819,12833,12837,12842,12852,12862,12866,12871,12887,12901,12915],{"__ignoreMap":30},[34,12643,12644,12647,12649],{"class":36,"line":37},[34,12645,12646],{"class":181},"str",[34,12648,1301],{"class":580},[34,12650,12651],{"class":54},"\"Hello World\"\n",[34,12653,12654],{"class":36,"line":44},[34,12655,62],{"emptyLinePlaceholder":61},[34,12657,12658],{"class":36,"line":58},[34,12659,12660],{"class":40},"# Length\n",[34,12662,12663,12665,12667,12669,12672],{"class":36,"line":65},[34,12664,10120],{"class":50},[34,12666,10148],{"class":181},[34,12668,10151],{"class":580},[34,12670,12671],{"class":181},"str}  ",[34,12673,12674],{"class":40},"# 11\n",[34,12676,12677],{"class":36,"line":71},[34,12678,62],{"emptyLinePlaceholder":61},[34,12680,12681],{"class":36,"line":77},[34,12682,12683],{"class":40},"# Substring\n",[34,12685,12686,12688,12691,12693,12695,12697,12700],{"class":36,"line":82},[34,12687,10120],{"class":50},[34,12689,12690],{"class":181}," ${str",[34,12692,165],{"class":580},[34,12694,2773],{"class":181},[34,12696,165],{"class":580},[34,12698,12699],{"class":181},"5}   ",[34,12701,12702],{"class":40},"# Hello\n",[34,12704,12705,12707,12709,12711,12714],{"class":36,"line":88},[34,12706,10120],{"class":50},[34,12708,12690],{"class":181},[34,12710,165],{"class":580},[34,12712,12713],{"class":181},"6}     ",[34,12715,12716],{"class":40},"# World\n",[34,12718,12719],{"class":36,"line":242},[34,12720,62],{"emptyLinePlaceholder":61},[34,12722,12723],{"class":36,"line":250},[34,12724,12725],{"class":40},"# Replace\n",[34,12727,12728,12730,12732,12735,12738,12740,12743],{"class":36,"line":263},[34,12729,10120],{"class":50},[34,12731,12690],{"class":181},[34,12733,12734],{"class":580},"/",[34,12736,12737],{"class":181},"World",[34,12739,12734],{"class":580},[34,12741,12742],{"class":181},"Bash}    ",[34,12744,12745],{"class":40},"# Replace first\n",[34,12747,12748,12750,12752,12755,12758,12760,12763],{"class":36,"line":275},[34,12749,10120],{"class":50},[34,12751,12690],{"class":181},[34,12753,12754],{"class":580},"//",[34,12756,12757],{"class":181},"l",[34,12759,12734],{"class":580},[34,12761,12762],{"class":181},"L}          ",[34,12764,12765],{"class":40},"# Replace all\n",[34,12767,12768],{"class":36,"line":700},[34,12769,62],{"emptyLinePlaceholder":61},[34,12771,12772],{"class":36,"line":706},[34,12773,12774],{"class":40},"# Remove pattern\n",[34,12776,12777,12779,12781,12783,12786],{"class":36,"line":715},[34,12778,10120],{"class":50},[34,12780,12690],{"class":181},[34,12782,10151],{"class":580},[34,12784,12785],{"class":181},"Hello }   ",[34,12787,12788],{"class":40},"# Remove prefix: \"World\"\n",[34,12790,12791,12793,12795,12798,12801],{"class":36,"line":725},[34,12792,10120],{"class":50},[34,12794,12690],{"class":181},[34,12796,12797],{"class":580},"%",[34,12799,12800],{"class":181},"World}    ",[34,12802,12803],{"class":40},"# Remove suffix: \"Hello \"\n",[34,12805,12806,12808,12810,12813,12816],{"class":36,"line":734},[34,12807,10120],{"class":50},[34,12809,12690],{"class":181},[34,12811,12812],{"class":580},"##*/",[34,12814,12815],{"class":181},"}      ",[34,12817,12818],{"class":40},"# Remove longest prefix\n",[34,12820,12821,12823,12825,12828,12830],{"class":36,"line":742},[34,12822,10120],{"class":50},[34,12824,12690],{"class":181},[34,12826,12827],{"class":580},"%%/*",[34,12829,12815],{"class":181},[34,12831,12832],{"class":40},"# Remove longest suffix\n",[34,12834,12835],{"class":36,"line":748},[34,12836,62],{"emptyLinePlaceholder":61},[34,12838,12839],{"class":36,"line":754},[34,12840,12841],{"class":40},"# Case conversion (Bash 4+)\n",[34,12843,12844,12846,12849],{"class":36,"line":759},[34,12845,10120],{"class":50},[34,12847,12848],{"class":181}," ${str^^}  ",[34,12850,12851],{"class":40},"# HELLO WORLD\n",[34,12853,12854,12856,12859],{"class":36,"line":771},[34,12855,10120],{"class":50},[34,12857,12858],{"class":181}," ${str,,}  ",[34,12860,12861],{"class":40},"# hello world\n",[34,12863,12864],{"class":36,"line":794},[34,12865,62],{"emptyLinePlaceholder":61},[34,12867,12868],{"class":36,"line":824},[34,12869,12870],{"class":40},"# Default values\n",[34,12872,12873,12875,12878,12881,12884],{"class":36,"line":830},[34,12874,10120],{"class":50},[34,12876,12877],{"class":181}," ${var",[34,12879,12880],{"class":580},":-",[34,12882,12883],{"class":181},"default}   ",[34,12885,12886],{"class":40},"# Use default if unset\n",[34,12888,12889,12891,12893,12896,12898],{"class":36,"line":839},[34,12890,10120],{"class":50},[34,12892,12877],{"class":181},[34,12894,12895],{"class":580},":=",[34,12897,12883],{"class":181},[34,12899,12900],{"class":40},"# Set default if unset\n",[34,12902,12903,12905,12907,12909,12912],{"class":36,"line":854},[34,12904,10120],{"class":50},[34,12906,12877],{"class":181},[34,12908,165],{"class":580},[34,12910,12911],{"class":181},"+alt}       ",[34,12913,12914],{"class":40},"# Use alt if set\n",[34,12916,12917,12919,12921,12924,12927],{"class":36,"line":860},[34,12918,10120],{"class":50},[34,12920,12877],{"class":181},[34,12922,12923],{"class":580},":?",[34,12925,12926],{"class":181},"error}     ",[34,12928,12929],{"class":40},"# Error if unset\n",[388,12931,12932],{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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}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":30,"searchDepth":44,"depth":44,"links":12934},[12935],{"id":12636,"depth":44,"text":12188},"String Manipulation in Bash.",{},{"title":12188,"description":12936},"bash/string-manipulation",[29,10358,5588,10359,557],"igk5JIaGPLvvP3Zh8lT0LA5Gds9kV3rPI8AxU6Jhv4o",{"id":12943,"title":12204,"body":12944,"date":402,"description":13302,"extension":404,"meta":13303,"navigation":61,"order":250,"path":12203,"seo":13304,"stem":13305,"subject":29,"tags":13306,"__hash__":13307},"topics/bash/useful-commands.md",{"type":8,"value":12945,"toc":13299},[12946,12949,13297],[11,12947,12204],{"id":12948},"useful-commands",[25,12950,12952],{"className":27,"code":12951,"language":29,"meta":30,"style":30},"# Find files\nfind /path -name \"*.txt\"\nfind /path -type f -mtime -7     # Modified in last 7 days\nfind /path -size +10M            # Larger than 10MB\nfind /path -exec command {} \\;   # Execute on results\n\n# Search in files\ngrep \"pattern\" file.txt\ngrep -r \"pattern\" /path          # Recursive\ngrep -i \"pattern\" file.txt       # Case insensitive\ngrep -n \"pattern\" file.txt       # Show line numbers\ngrep -v \"pattern\" file.txt       # Invert match\n\n# Text processing\ncat file.txt\nhead -n 10 file.txt\ntail -n 10 file.txt\ntail -f file.txt     # Follow file\nsort file.txt\nuniq file.txt\nwc -l file.txt       # Count lines\ncut -d',' -f1 file   # Cut columns\nawk '{print $1}' file\nsed 's/old/new/g' file\n\n# File operations\ncp source dest\nmv source dest\nrm file\nrm -rf directory\nmkdir -p path/to/dir\ntouch file.txt\nchmod 755 file\nchown user:group file\n",[20,12953,12954,12959,12973,12994,13009,13029,13033,13038,13046,13059,13073,13086,13099,13103,13108,13114,13126,13137,13148,13155,13162,13175,13194,13205,13215,13219,13224,13235,13244,13251,13261,13270,13277,13287],{"__ignoreMap":30},[34,12955,12956],{"class":36,"line":37},[34,12957,12958],{"class":40},"# Find files\n",[34,12960,12961,12964,12967,12970],{"class":36,"line":44},[34,12962,12963],{"class":47},"find",[34,12965,12966],{"class":54}," /path",[34,12968,12969],{"class":50}," -name",[34,12971,12972],{"class":54}," \"*.txt\"\n",[34,12974,12975,12977,12979,12982,12985,12988,12991],{"class":36,"line":58},[34,12976,12963],{"class":47},[34,12978,12966],{"class":54},[34,12980,12981],{"class":50}," -type",[34,12983,12984],{"class":54}," f",[34,12986,12987],{"class":50}," -mtime",[34,12989,12990],{"class":50}," -7",[34,12992,12993],{"class":40},"     # Modified in last 7 days\n",[34,12995,12996,12998,13000,13003,13006],{"class":36,"line":65},[34,12997,12963],{"class":47},[34,12999,12966],{"class":54},[34,13001,13002],{"class":50}," -size",[34,13004,13005],{"class":54}," +10M",[34,13007,13008],{"class":40},"            # Larger than 10MB\n",[34,13010,13011,13013,13015,13018,13020,13023,13026],{"class":36,"line":71},[34,13012,12963],{"class":47},[34,13014,12966],{"class":54},[34,13016,13017],{"class":50}," -exec",[34,13019,12527],{"class":54},[34,13021,13022],{"class":54}," {}",[34,13024,13025],{"class":50}," \\;",[34,13027,13028],{"class":40},"   # Execute on results\n",[34,13030,13031],{"class":36,"line":77},[34,13032,62],{"emptyLinePlaceholder":61},[34,13034,13035],{"class":36,"line":82},[34,13036,13037],{"class":40},"# Search in files\n",[34,13039,13040,13042,13044],{"class":36,"line":88},[34,13041,11489],{"class":47},[34,13043,11492],{"class":54},[34,13045,12140],{"class":54},[34,13047,13048,13050,13052,13054,13056],{"class":36,"line":242},[34,13049,11489],{"class":47},[34,13051,12112],{"class":50},[34,13053,11492],{"class":54},[34,13055,12966],{"class":54},[34,13057,13058],{"class":40},"          # Recursive\n",[34,13060,13061,13063,13066,13068,13070],{"class":36,"line":250},[34,13062,11489],{"class":47},[34,13064,13065],{"class":50}," -i",[34,13067,11492],{"class":54},[34,13069,8832],{"class":54},[34,13071,13072],{"class":40},"       # Case insensitive\n",[34,13074,13075,13077,13079,13081,13083],{"class":36,"line":263},[34,13076,11489],{"class":47},[34,13078,7093],{"class":50},[34,13080,11492],{"class":54},[34,13082,8832],{"class":54},[34,13084,13085],{"class":40},"       # Show line numbers\n",[34,13087,13088,13090,13092,13094,13096],{"class":36,"line":275},[34,13089,11489],{"class":47},[34,13091,12530],{"class":50},[34,13093,11492],{"class":54},[34,13095,8832],{"class":54},[34,13097,13098],{"class":40},"       # Invert match\n",[34,13100,13101],{"class":36,"line":700},[34,13102,62],{"emptyLinePlaceholder":61},[34,13104,13105],{"class":36,"line":706},[34,13106,13107],{"class":40},"# Text processing\n",[34,13109,13110,13112],{"class":36,"line":715},[34,13111,11449],{"class":47},[34,13113,12140],{"class":54},[34,13115,13116,13119,13121,13124],{"class":36,"line":725},[34,13117,13118],{"class":47},"head",[34,13120,7093],{"class":50},[34,13122,13123],{"class":50}," 10",[34,13125,12140],{"class":54},[34,13127,13128,13131,13133,13135],{"class":36,"line":734},[34,13129,13130],{"class":47},"tail",[34,13132,7093],{"class":50},[34,13134,13123],{"class":50},[34,13136,12140],{"class":54},[34,13138,13139,13141,13143,13145],{"class":36,"line":742},[34,13140,13130],{"class":47},[34,13142,6001],{"class":50},[34,13144,8832],{"class":54},[34,13146,13147],{"class":40},"     # Follow file\n",[34,13149,13150,13153],{"class":36,"line":748},[34,13151,13152],{"class":47},"sort",[34,13154,12140],{"class":54},[34,13156,13157,13160],{"class":36,"line":754},[34,13158,13159],{"class":47},"uniq",[34,13161,12140],{"class":54},[34,13163,13164,13167,13170,13172],{"class":36,"line":759},[34,13165,13166],{"class":47},"wc",[34,13168,13169],{"class":50}," -l",[34,13171,8832],{"class":54},[34,13173,13174],{"class":40},"       # Count lines\n",[34,13176,13177,13180,13182,13185,13188,13191],{"class":36,"line":771},[34,13178,13179],{"class":47},"cut",[34,13181,9750],{"class":50},[34,13183,13184],{"class":54},"','",[34,13186,13187],{"class":50}," -f1",[34,13189,13190],{"class":54}," file",[34,13192,13193],{"class":40},"   # Cut columns\n",[34,13195,13196,13199,13202],{"class":36,"line":794},[34,13197,13198],{"class":47},"awk",[34,13200,13201],{"class":54}," '{print $1}'",[34,13203,13204],{"class":54}," file\n",[34,13206,13207,13210,13213],{"class":36,"line":824},[34,13208,13209],{"class":47},"sed",[34,13211,13212],{"class":54}," 's/old/new/g'",[34,13214,13204],{"class":54},[34,13216,13217],{"class":36,"line":830},[34,13218,62],{"emptyLinePlaceholder":61},[34,13220,13221],{"class":36,"line":839},[34,13222,13223],{"class":40},"# File operations\n",[34,13225,13226,13229,13232],{"class":36,"line":854},[34,13227,13228],{"class":47},"cp",[34,13230,13231],{"class":54}," source",[34,13233,13234],{"class":54}," dest\n",[34,13236,13237,13240,13242],{"class":36,"line":860},[34,13238,13239],{"class":47},"mv",[34,13241,13231],{"class":54},[34,13243,13234],{"class":54},[34,13245,13246,13249],{"class":36,"line":865},[34,13247,13248],{"class":47},"rm",[34,13250,13204],{"class":54},[34,13252,13253,13255,13258],{"class":36,"line":870},[34,13254,13248],{"class":47},[34,13256,13257],{"class":50}," -rf",[34,13259,13260],{"class":54}," directory\n",[34,13262,13263,13265,13267],{"class":36,"line":876},[34,13264,5272],{"class":47},[34,13266,5275],{"class":50},[34,13268,13269],{"class":54}," path/to/dir\n",[34,13271,13272,13275],{"class":36,"line":885},[34,13273,13274],{"class":47},"touch",[34,13276,12140],{"class":54},[34,13278,13279,13282,13285],{"class":36,"line":895},[34,13280,13281],{"class":47},"chmod",[34,13283,13284],{"class":50}," 755",[34,13286,13204],{"class":54},[34,13288,13289,13292,13295],{"class":36,"line":904},[34,13290,13291],{"class":47},"chown",[34,13293,13294],{"class":54}," user:group",[34,13296,13204],{"class":54},[388,13298,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":13300},[13301],{"id":12948,"depth":44,"text":12204},"Useful Commands in Bash.",{},{"title":12204,"description":13302},"bash/useful-commands",[29,10358,5588,10359,557],"HOQ5bx2FIVgBllosL_eq074vbrfjX4DUWClZ3OLyH6Q",{"id":13309,"title":12166,"body":13310,"date":402,"description":13520,"extension":404,"meta":13521,"navigation":61,"order":44,"path":12165,"seo":13522,"stem":13523,"subject":29,"tags":13524,"__hash__":13525},"topics/bash/variables.md",{"type":8,"value":13311,"toc":13517},[13312,13315,13514],[11,13313,12166],{"id":13314},"variables",[25,13316,13318],{"className":27,"code":13317,"language":29,"meta":30,"style":30},"# Variable assignment (no spaces around =)\nname=\"John\"\nage=25\n\n# Using variables\necho $name\necho \"Hello, ${name}!\"\n\n# Command substitution\ncurrent_date=$(date)\nfiles=`ls -la`  # Older syntax\n\n# Environment variables\nexport PATH=\"$PATH:/new/path\"\nexport MY_VAR=\"value\"\n\n# Special variables\n$0    # Script name\n$1    # First argument\n$#    # Number of arguments\n$@    # All arguments as separate words\n$*    # All arguments as single string\n$$    # Current process ID\n$?    # Exit status of last command\n",[20,13319,13320,13325,13333,13342,13346,13351,13358,13370,13374,13379,13393,13412,13416,13421,13438,13450,13454,13459,13467,13474,13482,13490,13498,13506],{"__ignoreMap":30},[34,13321,13322],{"class":36,"line":37},[34,13323,13324],{"class":40},"# Variable assignment (no spaces around =)\n",[34,13326,13327,13329,13331],{"class":36,"line":44},[34,13328,178],{"class":181},[34,13330,1301],{"class":580},[34,13332,10215],{"class":54},[34,13334,13335,13338,13340],{"class":36,"line":58},[34,13336,13337],{"class":181},"age",[34,13339,1301],{"class":580},[34,13341,10225],{"class":54},[34,13343,13344],{"class":36,"line":65},[34,13345,62],{"emptyLinePlaceholder":61},[34,13347,13348],{"class":36,"line":71},[34,13349,13350],{"class":40},"# Using variables\n",[34,13352,13353,13355],{"class":36,"line":77},[34,13354,10120],{"class":50},[34,13356,13357],{"class":181}," $name\n",[34,13359,13360,13362,13365,13367],{"class":36,"line":82},[34,13361,10120],{"class":50},[34,13363,13364],{"class":54}," \"Hello, ${",[34,13366,178],{"class":181},[34,13368,13369],{"class":54},"}!\"\n",[34,13371,13372],{"class":36,"line":88},[34,13373,62],{"emptyLinePlaceholder":61},[34,13375,13376],{"class":36,"line":242},[34,13377,13378],{"class":40},"# Command substitution\n",[34,13380,13381,13384,13386,13388,13391],{"class":36,"line":250},[34,13382,13383],{"class":181},"current_date",[34,13385,1301],{"class":580},[34,13387,9741],{"class":181},[34,13389,13390],{"class":47},"date",[34,13392,3372],{"class":181},[34,13394,13395,13398,13400,13403,13405,13407,13409],{"class":36,"line":263},[34,13396,13397],{"class":181},"files",[34,13399,1301],{"class":580},[34,13401,13402],{"class":54},"`",[34,13404,11417],{"class":47},[34,13406,11420],{"class":50},[34,13408,13402],{"class":54},[34,13410,13411],{"class":40},"  # Older syntax\n",[34,13413,13414],{"class":36,"line":275},[34,13415,62],{"emptyLinePlaceholder":61},[34,13417,13418],{"class":36,"line":700},[34,13419,13420],{"class":40},"# Environment variables\n",[34,13422,13423,13425,13428,13430,13432,13435],{"class":36,"line":706},[34,13424,652],{"class":580},[34,13426,13427],{"class":181}," PATH",[34,13429,1301],{"class":580},[34,13431,10389],{"class":54},[34,13433,13434],{"class":181},"$PATH",[34,13436,13437],{"class":54},":/new/path\"\n",[34,13439,13440,13442,13445,13447],{"class":36,"line":715},[34,13441,652],{"class":580},[34,13443,13444],{"class":181}," MY_VAR",[34,13446,1301],{"class":580},[34,13448,13449],{"class":54},"\"value\"\n",[34,13451,13452],{"class":36,"line":725},[34,13453,62],{"emptyLinePlaceholder":61},[34,13455,13456],{"class":36,"line":734},[34,13457,13458],{"class":40},"# Special variables\n",[34,13460,13461,13464],{"class":36,"line":742},[34,13462,13463],{"class":675},"$0",[34,13465,13466],{"class":40},"    # Script name\n",[34,13468,13469,13471],{"class":36,"line":748},[34,13470,11023],{"class":675},[34,13472,13473],{"class":40},"    # First argument\n",[34,13475,13476,13479],{"class":36,"line":754},[34,13477,13478],{"class":50},"$#",[34,13480,13481],{"class":40},"    # Number of arguments\n",[34,13483,13484,13487],{"class":36,"line":759},[34,13485,13486],{"class":675},"$@",[34,13488,13489],{"class":40},"    # All arguments as separate words\n",[34,13491,13492,13495],{"class":36,"line":771},[34,13493,13494],{"class":50},"$*",[34,13496,13497],{"class":40},"    # All arguments as single string\n",[34,13499,13500,13503],{"class":36,"line":794},[34,13501,13502],{"class":50},"$$",[34,13504,13505],{"class":40},"    # Current process ID\n",[34,13507,13508,13511],{"class":36,"line":824},[34,13509,13510],{"class":50},"$?",[34,13512,13513],{"class":40},"    # Exit status of last command\n",[388,13515,13516],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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}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":30,"searchDepth":44,"depth":44,"links":13518},[13519],{"id":13314,"depth":44,"text":12166},"Variables in Bash.",{},{"title":12166,"description":13520},"bash/variables",[29,10358,5588,10359,557],"4PAXeCc4JVgSw67YsYO20IPE_ow2NRYw9nNCgMnNNcY",{"id":13527,"title":13528,"body":13529,"date":402,"description":13727,"extension":404,"meta":13728,"navigation":61,"order":37,"path":13729,"seo":13730,"stem":13731,"subject":13528,"tags":13732,"__hash__":13735},"topics/bat/overview.md","bat",{"type":8,"value":13530,"toc":13715},[13531,13535,13541,13562,13564,13584,13600,13604,13608,13620,13625,13629,13643,13648,13652,13670,13675,13677,13683,13696,13700,13707,13712],[11,13532,13534],{"id":13533},"overview","Overview",[16,13536,13537,13538,13540],{},"Bat is a modern alternative to the ",[20,13539,11449],{}," command. It provides syntax highlighting, Git integrations, and other powerful features for enhancing the terminal experience.",[25,13542,13544],{"className":27,"code":13543,"language":29,"meta":30,"style":30},"# Install bat on Debian-based systems\nsudo apt install bat\n",[20,13545,13546,13551],{"__ignoreMap":30},[34,13547,13548],{"class":36,"line":37},[34,13549,13550],{"class":40},"# Install bat on Debian-based systems\n",[34,13552,13553,13555,13557,13559],{"class":36,"line":44},[34,13554,436],{"class":47},[34,13556,439],{"class":54},[34,13558,118],{"class":54},[34,13560,13561],{"class":54}," bat\n",[11,13563,8221],{"id":8220},[309,13565,13566,13572,13578],{},[312,13567,13568,13571],{},[8471,13569,13570],{},"Syntax Highlighting",": Supports multiple programming languages with a better visual structure.",[312,13573,13574,13577],{},[8471,13575,13576],{},"Git Integration",": Displays Git modifications in the terminal.",[312,13579,13580,13583],{},[8471,13581,13582],{},"Custom Themes",": Allows customization for syntax highlighting themes.",[25,13585,13587],{"className":27,"code":13586,"language":29,"meta":30,"style":30},"# Basic example of using bat\nbat file.txt\n",[20,13588,13589,13594],{"__ignoreMap":30},[34,13590,13591],{"class":36,"line":37},[34,13592,13593],{"class":40},"# Basic example of using bat\n",[34,13595,13596,13598],{"class":36,"line":44},[34,13597,13528],{"class":47},[34,13599,12140],{"class":54},[11,13601,13603],{"id":13602},"example-usage","Example Usage",[102,13605,13607],{"id":13606},"viewing-files","Viewing Files",[25,13609,13611],{"className":27,"code":13610,"language":29,"meta":30,"style":30},"bat example.txt\n",[20,13612,13613],{"__ignoreMap":30},[34,13614,13615,13617],{"class":36,"line":37},[34,13616,13528],{"class":47},[34,13618,13619],{"class":54}," example.txt\n",[16,13621,13622],{},[8563,13623,13624],{},"View a file with syntax highlighting.",[102,13626,13628],{"id":13627},"paging-with-less","Paging with Less",[25,13630,13632],{"className":27,"code":13631,"language":29,"meta":30,"style":30},"bat --paging=always file.txt\n",[20,13633,13634],{"__ignoreMap":30},[34,13635,13636,13638,13641],{"class":36,"line":37},[34,13637,13528],{"class":47},[34,13639,13640],{"class":50}," --paging=always",[34,13642,12140],{"class":54},[16,13644,13645],{},[8563,13646,13647],{},"Force paged output.",[102,13649,13651],{"id":13650},"side-by-side-diff","Side-by-side Diff",[25,13653,13655],{"className":27,"code":13654,"language":29,"meta":30,"style":30},"bat diff1.txt --diff diff2.txt\n",[20,13656,13657],{"__ignoreMap":30},[34,13658,13659,13661,13664,13667],{"class":36,"line":37},[34,13660,13528],{"class":47},[34,13662,13663],{"class":54}," diff1.txt",[34,13665,13666],{"class":50}," --diff",[34,13668,13669],{"class":54}," diff2.txt\n",[16,13671,13672],{},[8563,13673,13674],{},"Show differences between two files.",[11,13676,8686],{"id":558},[16,13678,13679,13680,13682],{},"You can customize ",[20,13681,13528],{}," by creating a configuration file at:",[25,13684,13686],{"className":27,"code":13685,"language":29,"meta":30,"style":30},"~/.config/bat/config\n",[20,13687,13688],{"__ignoreMap":30},[34,13689,13690,13693],{"class":36,"line":37},[34,13691,13692],{"class":580},"~",[34,13694,13695],{"class":181},"/.config/bat/config\n",[102,13697,13699],{"id":13698},"example-configuration","Example Configuration",[25,13701,13705],{"className":13702,"code":13704,"language":780,"meta":30},[13703],"language-text","--style=numbers,changes\n--paging=auto\n--theme=\"Nord\"\n",[20,13706,13704],{"__ignoreMap":30},[16,13708,13709],{},[8563,13710,13711],{},"Configure the default style, paging, and theme.",[388,13713,13714],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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}",{"title":30,"searchDepth":44,"depth":44,"links":13716},[13717,13718,13719,13724],{"id":13533,"depth":44,"text":13534},{"id":8220,"depth":44,"text":8221},{"id":13602,"depth":44,"text":13603,"children":13720},[13721,13722,13723],{"id":13606,"depth":58,"text":13607},{"id":13627,"depth":58,"text":13628},{"id":13650,"depth":58,"text":13651},{"id":558,"depth":44,"text":8686,"children":13725},[13726],{"id":13698,"depth":58,"text":13699},"A modern replacement for the cat command with syntax highlighting and Git integration.",{},"/bat/overview",{"title":13528,"description":13727},"bat/overview",[13528,557,13733,13734],"commands","syntax-highlighting","oN72LigdBz2YPDPThlRuuFf1rE_eoHxHHgx7aBLIDpA",{"id":13737,"title":13738,"body":13739,"date":402,"description":14110,"extension":404,"meta":14111,"navigation":61,"order":37,"path":14112,"seo":14113,"stem":14114,"subject":14115,"tags":14116,"__hash__":14120},"topics/biome/overview.md","Biome",{"type":8,"value":13740,"toc":14097},[13741,13743,13746,13748,13750,13754,13775,13779,13797,13801,13819,13821,13823,13830,13832,13836,13839,13843,14071,14073,14077,14080,14089,14091,14094],[11,13742,13534],{"id":13533},[16,13744,13745],{},"Biome is a toolchain designed to streamline development workflows with features like formatting, linting, and specialized integrations. Supported languages include JavaScript, TypeScript, JSON, HTML, CSS, and GraphQL.",[7979,13747],{},[11,13749,97],{"id":96},[102,13751,13753],{"id":13752},"install-via-npm","Install via npm",[25,13755,13757],{"className":27,"code":13756,"language":29,"meta":30,"style":30},"npm i -D -E @biomejs/biome\n",[20,13758,13759],{"__ignoreMap":30},[34,13760,13761,13763,13766,13769,13772],{"class":36,"line":37},[34,13762,8177],{"class":47},[34,13764,13765],{"class":54}," i",[34,13767,13768],{"class":50}," -D",[34,13770,13771],{"class":50}," -E",[34,13773,13774],{"class":54}," @biomejs/biome\n",[102,13776,13778],{"id":13777},"install-via-pnpm","Install via pnpm",[25,13780,13782],{"className":27,"code":13781,"language":29,"meta":30,"style":30},"pnpm add -D -E @biomejs/biome\n",[20,13783,13784],{"__ignoreMap":30},[34,13785,13786,13789,13791,13793,13795],{"class":36,"line":37},[34,13787,13788],{"class":47},"pnpm",[34,13790,7854],{"class":54},[34,13792,13768],{"class":50},[34,13794,13771],{"class":50},[34,13796,13774],{"class":54},[102,13798,13800],{"id":13799},"install-via-yarn","Install via yarn",[25,13802,13804],{"className":27,"code":13803,"language":29,"meta":30,"style":30},"yarn add -D -E @biomejs/biome\n",[20,13805,13806],{"__ignoreMap":30},[34,13807,13808,13811,13813,13815,13817],{"class":36,"line":37},[34,13809,13810],{"class":47},"yarn",[34,13812,7854],{"class":54},[34,13814,13768],{"class":50},[34,13816,13771],{"class":50},[34,13818,13774],{"class":54},[7979,13820],{},[11,13822,8686],{"id":558},[16,13824,13825,13826,13829],{},"Biome supports extensive configuration options to fit projects of diverse sizes. Pin the version using ",[20,13827,13828],{},"-E"," to avoid mismatches between dependencies.",[7979,13831],{},[11,13833,13835],{"id":13834},"formatting","Formatting",[16,13837,13838],{},"Biome automatically formats supported languages with high fidelity (97% Prettier compatibility). Unlike Prettier, it diagnoses and even formats malformed code.",[102,13840,13842],{"id":13841},"example","Example",[25,13844,13847],{"className":13845,"code":13846,"language":8606,"meta":30,"style":30},"language-javascript shiki shiki-themes github-light github-dark","function HelloWorld({ greeting = \"hello\", greeted = \"World\" }) {\n    if (!greeting) {\n        return null;\n    }\n    let num = Math.floor(Math.random() * 1e7).toString().replace(/\\D+/g, \"\");\n\n    return (\n        \u003Cdiv title={`You are visitor number ${num}`}>\n            \u003Cstrong>\n                {greeting.charAt(0).toUpperCase() + greeting.slice(1)}, {greeted}!\n            \u003C/strong>\n        \u003C/div>\n    );\n}\n",[20,13848,13849,13880,13891,13901,13905,13965,13969,13976,14002,14011,14045,14054,14063,14067],{"__ignoreMap":30},[34,13850,13851,13853,13856,13859,13862,13864,13867,13869,13872,13874,13877],{"class":36,"line":37},[34,13852,11044],{"class":580},[34,13854,13855],{"class":47}," HelloWorld",[34,13857,13858],{"class":181},"({ ",[34,13860,13861],{"class":675},"greeting",[34,13863,683],{"class":580},[34,13865,13866],{"class":54}," \"hello\"",[34,13868,1798],{"class":181},[34,13870,13871],{"class":675},"greeted",[34,13873,683],{"class":580},[34,13875,13876],{"class":54}," \"World\"",[34,13878,13879],{"class":181}," }) {\n",[34,13881,13882,13884,13886,13888],{"class":36,"line":44},[34,13883,2902],{"class":580},[34,13885,3204],{"class":181},[34,13887,10307],{"class":580},[34,13889,13890],{"class":181},"greeting) {\n",[34,13892,13893,13896,13899],{"class":36,"line":58},[34,13894,13895],{"class":580},"        return",[34,13897,13898],{"class":50}," null",[34,13900,593],{"class":181},[34,13902,13903],{"class":36,"line":65},[34,13904,3229],{"class":181},[34,13906,13907,13910,13913,13915,13918,13921,13924,13927,13929,13931,13934,13936,13939,13941,13944,13946,13948,13951,13953,13955,13958,13960,13963],{"class":36,"line":71},[34,13908,13909],{"class":580},"    let",[34,13911,13912],{"class":181}," num ",[34,13914,1301],{"class":580},[34,13916,13917],{"class":181}," Math.",[34,13919,13920],{"class":47},"floor",[34,13922,13923],{"class":181},"(Math.",[34,13925,13926],{"class":47},"random",[34,13928,672],{"class":181},[34,13930,4289],{"class":580},[34,13932,13933],{"class":50}," 1e7",[34,13935,1876],{"class":181},[34,13937,13938],{"class":47},"toString",[34,13940,1645],{"class":181},[34,13942,13943],{"class":47},"replace",[34,13945,1607],{"class":181},[34,13947,12734],{"class":54},[34,13949,13950],{"class":50},"\\D",[34,13952,2940],{"class":580},[34,13954,12734],{"class":54},[34,13956,13957],{"class":580},"g",[34,13959,1798],{"class":181},[34,13961,13962],{"class":54},"\"\"",[34,13964,1586],{"class":181},[34,13966,13967],{"class":36,"line":77},[34,13968,62],{"emptyLinePlaceholder":61},[34,13970,13971,13973],{"class":36,"line":82},[34,13972,1564],{"class":580},[34,13974,13975],{"class":181}," (\n",[34,13977,13978,13981,13983,13986,13988,13991,13994,13997,13999],{"class":36,"line":88},[34,13979,13980],{"class":181},"        \u003C",[34,13982,1240],{"class":177},[34,13984,13985],{"class":47}," title",[34,13987,1301],{"class":580},[34,13989,13990],{"class":181},"{",[34,13992,13993],{"class":54},"`You are visitor number ${",[34,13995,13996],{"class":181},"num",[34,13998,3925],{"class":54},[34,14000,14001],{"class":181},"}>\n",[34,14003,14004,14007,14009],{"class":36,"line":242},[34,14005,14006],{"class":181},"            \u003C",[34,14008,8471],{"class":177},[34,14010,1248],{"class":181},[34,14012,14013,14016,14019,14021,14023,14025,14028,14030,14032,14035,14038,14040,14042],{"class":36,"line":250},[34,14014,14015],{"class":181},"                {greeting.",[34,14017,14018],{"class":47},"charAt",[34,14020,1607],{"class":181},[34,14022,2773],{"class":50},[34,14024,1876],{"class":181},[34,14026,14027],{"class":47},"toUpperCase",[34,14029,672],{"class":181},[34,14031,2940],{"class":580},[34,14033,14034],{"class":181}," greeting.",[34,14036,14037],{"class":47},"slice",[34,14039,1607],{"class":181},[34,14041,8318],{"class":50},[34,14043,14044],{"class":181},")}, {greeted}!\n",[34,14046,14047,14050,14052],{"class":36,"line":263},[34,14048,14049],{"class":181},"            \u003C/",[34,14051,8471],{"class":177},[34,14053,1248],{"class":181},[34,14055,14056,14059,14061],{"class":36,"line":275},[34,14057,14058],{"class":181},"        \u003C/",[34,14060,1240],{"class":177},[34,14062,1248],{"class":181},[34,14064,14065],{"class":36,"line":700},[34,14066,1945],{"class":181},[34,14068,14069],{"class":36,"line":706},[34,14070,693],{"class":181},[7979,14072],{},[11,14074,14076],{"id":14075},"editor-integrations","Editor Integrations",[16,14078,14079],{},"Biome integrates seamlessly with modern editors like VS Code through extensions.",[25,14081,14083],{"className":27,"code":14082,"language":29,"meta":30,"style":30},"# Example VS Code extension setup flow\n",[20,14084,14085],{"__ignoreMap":30},[34,14086,14087],{"class":36,"line":37},[34,14088,14082],{"class":40},[7979,14090],{},[16,14092,14093],{},"Include common beginner FAQs, extend markup via chaining",[388,14095,14096],{},"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 .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);}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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":30,"searchDepth":44,"depth":44,"links":14098},[14099,14100,14105,14106,14109],{"id":13533,"depth":44,"text":13534},{"id":96,"depth":44,"text":97,"children":14101},[14102,14103,14104],{"id":13752,"depth":58,"text":13753},{"id":13777,"depth":58,"text":13778},{"id":13799,"depth":58,"text":13800},{"id":558,"depth":44,"text":8686},{"id":13834,"depth":44,"text":13835,"children":14107},[14108],{"id":13841,"depth":58,"text":13842},{"id":14075,"depth":44,"text":14076},"Fast, all-in-one formatter, linter, and more for modern web projects.",{},"/biome/overview",{"title":13738,"description":14110},"biome/overview","biome",[14115,14117,14118,14119],"formatter","linter","tooling","cPX7BTRd7xdcckwLr-sakEtR4tw81eSWonCH6Gdxw98",{"id":14122,"title":14123,"body":14124,"date":402,"description":14136,"extension":404,"meta":14137,"navigation":61,"order":65,"path":14138,"seo":14139,"stem":14140,"subject":14141,"tags":14142,"__hash__":14146},"topics/bottom/overview.md","bottom Overview",{"type":8,"value":14125,"toc":14133},[14126,14130],[11,14127,14129],{"id":14128},"bottom-the-terminal-monitor-reimagined","bottom: The Terminal Monitor Reimagined",[16,14131,14132],{},"bottom (btm) is a cross-platform system/process monitor that combines modern aesthetics and functional design for efficient use in terminals across Linux, macOS, and Windows. It allows users to track and configure monitor performance or personalised config helpers",{"title":30,"searchDepth":44,"depth":44,"links":14134},[14135],{"id":14128,"depth":44,"text":14129},"Customizable and high-functioning terminal system monitor for various platforms.",{},"/bottom/overview",{"title":14123,"description":14136},"bottom/overview","bottom",[14143,557,14144,14145],"monitoring","system","cross-platform","MZtlCFuq1kkjqE2mMOKIbH7qGIiovhStz8zK5Vslv5o",{"id":14148,"title":14149,"body":14150,"date":402,"description":14290,"extension":404,"meta":14291,"navigation":61,"order":88,"path":14292,"seo":14293,"stem":14294,"subject":14169,"tags":14295,"__hash__":14298},"topics/bun/built-in-bundler.md","Built-in Bundler",{"type":8,"value":14151,"toc":14287},[14152,14155,14285],[11,14153,14149],{"id":14154},"built-in-bundler",[25,14156,14158],{"className":27,"code":14157,"language":29,"meta":30,"style":30},"# Bundle a file\nbun build ./src/index.ts --outdir ./dist\n\n# Bundle with minification\nbun build ./src/index.ts --outdir ./dist --minify\n\n# Bundle for browser\nbun build ./src/index.ts --outdir ./dist --target browser\n\n# Bundle for Node.js\nbun build ./src/index.ts --outdir ./dist --target node\n\n# Create single executable\nbun build ./src/index.ts --compile --outfile myapp\n",[20,14159,14160,14165,14182,14186,14191,14206,14210,14215,14233,14237,14242,14259,14263,14268],{"__ignoreMap":30},[34,14161,14162],{"class":36,"line":37},[34,14163,14164],{"class":40},"# Bundle a file\n",[34,14166,14167,14170,14173,14176,14179],{"class":36,"line":44},[34,14168,14169],{"class":47},"bun",[34,14171,14172],{"class":54}," build",[34,14174,14175],{"class":54}," ./src/index.ts",[34,14177,14178],{"class":50}," --outdir",[34,14180,14181],{"class":54}," ./dist\n",[34,14183,14184],{"class":36,"line":58},[34,14185,62],{"emptyLinePlaceholder":61},[34,14187,14188],{"class":36,"line":65},[34,14189,14190],{"class":40},"# Bundle with minification\n",[34,14192,14193,14195,14197,14199,14201,14203],{"class":36,"line":71},[34,14194,14169],{"class":47},[34,14196,14172],{"class":54},[34,14198,14175],{"class":54},[34,14200,14178],{"class":50},[34,14202,8854],{"class":54},[34,14204,14205],{"class":50}," --minify\n",[34,14207,14208],{"class":36,"line":77},[34,14209,62],{"emptyLinePlaceholder":61},[34,14211,14212],{"class":36,"line":82},[34,14213,14214],{"class":40},"# Bundle for browser\n",[34,14216,14217,14219,14221,14223,14225,14227,14230],{"class":36,"line":88},[34,14218,14169],{"class":47},[34,14220,14172],{"class":54},[34,14222,14175],{"class":54},[34,14224,14178],{"class":50},[34,14226,8854],{"class":54},[34,14228,14229],{"class":50}," --target",[34,14231,14232],{"class":54}," browser\n",[34,14234,14235],{"class":36,"line":242},[34,14236,62],{"emptyLinePlaceholder":61},[34,14238,14239],{"class":36,"line":250},[34,14240,14241],{"class":40},"# Bundle for Node.js\n",[34,14243,14244,14246,14248,14250,14252,14254,14256],{"class":36,"line":263},[34,14245,14169],{"class":47},[34,14247,14172],{"class":54},[34,14249,14175],{"class":54},[34,14251,14178],{"class":50},[34,14253,8854],{"class":54},[34,14255,14229],{"class":50},[34,14257,14258],{"class":54}," node\n",[34,14260,14261],{"class":36,"line":275},[34,14262,62],{"emptyLinePlaceholder":61},[34,14264,14265],{"class":36,"line":700},[34,14266,14267],{"class":40},"# Create single executable\n",[34,14269,14270,14272,14274,14276,14279,14282],{"class":36,"line":706},[34,14271,14169],{"class":47},[34,14273,14172],{"class":54},[34,14275,14175],{"class":54},[34,14277,14278],{"class":50}," --compile",[34,14280,14281],{"class":50}," --outfile",[34,14283,14284],{"class":54}," myapp\n",[388,14286,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":14288},[14289],{"id":14154,"depth":44,"text":14149},"Built-in Bundler in Bun.",{},"/bun/built-in-bundler",{"title":14149,"description":14290},"bun/built-in-bundler",[14169,8606,573,14296,14297,5591],"runtime","bundler","CnsM0utzlEZYfChHfzdHv_dkqQRwtgTzl5g-_Zhljaw",{"id":14300,"title":14301,"body":14302,"date":402,"description":14497,"extension":404,"meta":14498,"navigation":61,"order":58,"path":14499,"seo":14500,"stem":14501,"subject":14169,"tags":14502,"__hash__":14503},"topics/bun/bun-vs-npm-commands.md","Bun vs npm Commands",{"type":8,"value":14303,"toc":14494},[14304,14307],[11,14305,14301],{"id":14306},"bun-vs-npm-commands",[14308,14309,14310,14325],"table",{},[14311,14312,14313],"thead",{},[14314,14315,14316,14320,14323],"tr",{},[14317,14318,14319],"th",{},"Task",[14317,14321,14322],{},"Bun",[14317,14324,8177],{},[14326,14327,14328,14344,14359,14374,14389,14404,14419,14434,14449,14464,14479],"tbody",{},[14314,14329,14330,14334,14339],{},[14331,14332,14333],"td",{},"Initialize project",[14331,14335,14336],{},[20,14337,14338],{},"bun init",[14331,14340,14341],{},[20,14342,14343],{},"npm init",[14314,14345,14346,14349,14354],{},[14331,14347,14348],{},"Install dependencies",[14331,14350,14351],{},[20,14352,14353],{},"bun install",[14331,14355,14356],{},[20,14357,14358],{},"npm install",[14314,14360,14361,14364,14369],{},[14331,14362,14363],{},"Add package",[14331,14365,14366],{},[20,14367,14368],{},"bun add \u003Cpkg>",[14331,14370,14371],{},[20,14372,14373],{},"npm install \u003Cpkg>",[14314,14375,14376,14379,14384],{},[14331,14377,14378],{},"Add dev dependency",[14331,14380,14381],{},[20,14382,14383],{},"bun add -d \u003Cpkg>",[14331,14385,14386],{},[20,14387,14388],{},"npm install -D \u003Cpkg>",[14314,14390,14391,14394,14399],{},[14331,14392,14393],{},"Add global package",[14331,14395,14396],{},[20,14397,14398],{},"bun add -g \u003Cpkg>",[14331,14400,14401],{},[20,14402,14403],{},"npm install -g \u003Cpkg>",[14314,14405,14406,14409,14414],{},[14331,14407,14408],{},"Remove package",[14331,14410,14411],{},[20,14412,14413],{},"bun remove \u003Cpkg>",[14331,14415,14416],{},[20,14417,14418],{},"npm uninstall \u003Cpkg>",[14314,14420,14421,14424,14429],{},[14331,14422,14423],{},"Update packages",[14331,14425,14426],{},[20,14427,14428],{},"bun update",[14331,14430,14431],{},[20,14432,14433],{},"npm update",[14314,14435,14436,14439,14444],{},[14331,14437,14438],{},"Run script",[14331,14440,14441],{},[20,14442,14443],{},"bun run \u003Cscript>",[14331,14445,14446],{},[20,14447,14448],{},"npm run \u003Cscript>",[14314,14450,14451,14454,14459],{},[14331,14452,14453],{},"Execute binary",[14331,14455,14456],{},[20,14457,14458],{},"bunx \u003Ccmd>",[14331,14460,14461],{},[20,14462,14463],{},"npx \u003Ccmd>",[14314,14465,14466,14469,14474],{},[14331,14467,14468],{},"Run tests",[14331,14470,14471],{},[20,14472,14473],{},"bun test",[14331,14475,14476],{},[20,14477,14478],{},"npm test",[14314,14480,14481,14484,14489],{},[14331,14482,14483],{},"List packages",[14331,14485,14486],{},[20,14487,14488],{},"bun pm ls",[14331,14490,14491],{},[20,14492,14493],{},"npm ls",{"title":30,"searchDepth":44,"depth":44,"links":14495},[14496],{"id":14306,"depth":44,"text":14301},"Bun vs npm Commands in Bun.",{},"/bun/bun-vs-npm-commands",{"title":14301,"description":14497},"bun/bun-vs-npm-commands",[14169,8606,573,14296,14297,5591],"tTPlvJdLWZYQ9MJ-awj6yRu5dFsrpisAo1LADTFpUu4",{"id":14505,"title":14506,"body":14507,"date":402,"description":14647,"extension":404,"meta":14648,"navigation":61,"order":725,"path":14649,"seo":14650,"stem":14651,"subject":14169,"tags":14652,"__hash__":14653},"topics/bun/bunfigtoml-configuration.md","bunfig.toml Configuration",{"type":8,"value":14508,"toc":14644},[14509,14512,14641],[11,14510,14506],{"id":14511},"bunfigtoml-configuration",[25,14513,14517],{"className":14514,"code":14515,"language":14516,"meta":30,"style":30},"language-toml shiki shiki-themes github-light github-dark","# bunfig.toml\n\n[install]\n# Registry URL\nregistry = \"https://registry.npmjs.org\"\n\n# Install peer dependencies\npeer = true\n\n# Lockfile settings\nlockfile = true\n\n[run]\n# Silent mode\nsilent = false\n\n[test]\n# Test settings\ncoverage = true\ncoverageDir = \"coverage\"\n","toml",[20,14518,14519,14524,14528,14537,14542,14550,14554,14559,14566,14570,14575,14582,14586,14595,14600,14608,14612,14621,14626,14633],{"__ignoreMap":30},[34,14520,14521],{"class":36,"line":37},[34,14522,14523],{"class":40},"# bunfig.toml\n",[34,14525,14526],{"class":36,"line":44},[34,14527,62],{"emptyLinePlaceholder":61},[34,14529,14530,14532,14535],{"class":36,"line":58},[34,14531,10260],{"class":181},[34,14533,14534],{"class":47},"install",[34,14536,924],{"class":181},[34,14538,14539],{"class":36,"line":65},[34,14540,14541],{"class":40},"# Registry URL\n",[34,14543,14544,14547],{"class":36,"line":71},[34,14545,14546],{"class":181},"registry = ",[34,14548,14549],{"class":54},"\"https://registry.npmjs.org\"\n",[34,14551,14552],{"class":36,"line":77},[34,14553,62],{"emptyLinePlaceholder":61},[34,14555,14556],{"class":36,"line":82},[34,14557,14558],{"class":40},"# Install peer dependencies\n",[34,14560,14561,14564],{"class":36,"line":88},[34,14562,14563],{"class":181},"peer = ",[34,14565,515],{"class":50},[34,14567,14568],{"class":36,"line":242},[34,14569,62],{"emptyLinePlaceholder":61},[34,14571,14572],{"class":36,"line":250},[34,14573,14574],{"class":40},"# Lockfile settings\n",[34,14576,14577,14580],{"class":36,"line":263},[34,14578,14579],{"class":181},"lockfile = ",[34,14581,515],{"class":50},[34,14583,14584],{"class":36,"line":275},[34,14585,62],{"emptyLinePlaceholder":61},[34,14587,14588,14590,14593],{"class":36,"line":700},[34,14589,10260],{"class":181},[34,14591,14592],{"class":47},"run",[34,14594,924],{"class":181},[34,14596,14597],{"class":36,"line":706},[34,14598,14599],{"class":40},"# Silent mode\n",[34,14601,14602,14605],{"class":36,"line":715},[34,14603,14604],{"class":181},"silent = ",[34,14606,14607],{"class":50},"false\n",[34,14609,14610],{"class":36,"line":725},[34,14611,62],{"emptyLinePlaceholder":61},[34,14613,14614,14616,14619],{"class":36,"line":734},[34,14615,10260],{"class":181},[34,14617,14618],{"class":47},"test",[34,14620,924],{"class":181},[34,14622,14623],{"class":36,"line":742},[34,14624,14625],{"class":40},"# Test settings\n",[34,14627,14628,14631],{"class":36,"line":748},[34,14629,14630],{"class":181},"coverage = ",[34,14632,515],{"class":50},[34,14634,14635,14638],{"class":36,"line":754},[34,14636,14637],{"class":181},"coverageDir = ",[34,14639,14640],{"class":54},"\"coverage\"\n",[388,14642,14643],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .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":30,"searchDepth":44,"depth":44,"links":14645},[14646],{"id":14511,"depth":44,"text":14506},"bunfig.toml Configuration in Bun.",{},"/bun/bunfigtoml-configuration",{"title":14506,"description":14647},"bun/bunfigtoml-configuration",[14169,8606,573,14296,14297,5591],"M9ITQah0gs8lF7TPmhmq3QpWn1e4Mf5X01TSh7bt6o0",{"id":14655,"title":14656,"body":14657,"date":402,"description":14727,"extension":404,"meta":14728,"navigation":61,"order":263,"path":14729,"seo":14730,"stem":14731,"subject":14169,"tags":14732,"__hash__":14733},"topics/bun/environment-variables.md","Environment Variables",{"type":8,"value":14658,"toc":14724},[14659,14662,14721],[11,14660,14656],{"id":14661},"environment-variables",[25,14663,14665],{"className":571,"code":14664,"language":573,"meta":30,"style":30},"// Access environment variables\nconst apiKey = Bun.env.API_KEY;\nconst nodeEnv = process.env.NODE_ENV;\n\n// Using .env file (automatic)\n// Bun automatically loads .env files\n",[20,14666,14667,14672,14690,14707,14711,14716],{"__ignoreMap":30},[34,14668,14669],{"class":36,"line":37},[34,14670,14671],{"class":40},"// Access environment variables\n",[34,14673,14674,14677,14680,14682,14685,14688],{"class":36,"line":44},[34,14675,14676],{"class":580},"const",[34,14678,14679],{"class":50}," apiKey",[34,14681,683],{"class":580},[34,14683,14684],{"class":181}," Bun.env.",[34,14686,14687],{"class":50},"API_KEY",[34,14689,593],{"class":181},[34,14691,14692,14694,14697,14699,14702,14705],{"class":36,"line":58},[34,14693,14676],{"class":580},[34,14695,14696],{"class":50}," nodeEnv",[34,14698,683],{"class":580},[34,14700,14701],{"class":181}," process.env.",[34,14703,14704],{"class":50},"NODE_ENV",[34,14706,593],{"class":181},[34,14708,14709],{"class":36,"line":65},[34,14710,62],{"emptyLinePlaceholder":61},[34,14712,14713],{"class":36,"line":71},[34,14714,14715],{"class":40},"// Using .env file (automatic)\n",[34,14717,14718],{"class":36,"line":77},[34,14719,14720],{"class":40},"// Bun automatically loads .env files\n",[388,14722,14723],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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":30,"searchDepth":44,"depth":44,"links":14725},[14726],{"id":14661,"depth":44,"text":14656},"Environment Variables in Bun.",{},"/bun/environment-variables",{"title":14656,"description":14727},"bun/environment-variables",[14169,8606,573,14296,14297,5591],"56I9H4P6xBJ5iVjnZc5fM6Tqas3YGtqyPls9xh4Qc0Y",{"id":14735,"title":14736,"body":14737,"date":402,"description":14945,"extension":404,"meta":14946,"navigation":61,"order":742,"path":14947,"seo":14948,"stem":14949,"subject":14169,"tags":14950,"__hash__":14951},"topics/bun/fetch-api.md","Fetch API",{"type":8,"value":14738,"toc":14942},[14739,14742,14939],[11,14740,14736],{"id":14741},"fetch-api",[25,14743,14745],{"className":571,"code":14744,"language":573,"meta":30,"style":30},"// GET request\nconst response = await fetch(\"https://api.example.com/data\");\nconst data = await response.json();\n\n// POST request\nconst response = await fetch(\"https://api.example.com/data\", {\n  method: \"POST\",\n  headers: { \"Content-Type\": \"application/json\" },\n  body: JSON.stringify({ name: \"Bun\" }),\n});\n\n// Streaming response\nconst response = await fetch(\"https://api.example.com/stream\");\nfor await (const chunk of response.body!) {\n  console.log(chunk);\n}\n",[20,14746,14747,14752,14774,14793,14797,14802,14821,14831,14847,14869,14874,14878,14883,14902,14925,14935],{"__ignoreMap":30},[34,14748,14749],{"class":36,"line":37},[34,14750,14751],{"class":40},"// GET request\n",[34,14753,14754,14756,14759,14761,14764,14767,14769,14772],{"class":36,"line":44},[34,14755,14676],{"class":580},[34,14757,14758],{"class":50}," response",[34,14760,683],{"class":580},[34,14762,14763],{"class":580}," await",[34,14765,14766],{"class":47}," fetch",[34,14768,1607],{"class":181},[34,14770,14771],{"class":54},"\"https://api.example.com/data\"",[34,14773,1586],{"class":181},[34,14775,14776,14778,14781,14783,14785,14788,14791],{"class":36,"line":58},[34,14777,14676],{"class":580},[34,14779,14780],{"class":50}," data",[34,14782,683],{"class":580},[34,14784,14763],{"class":580},[34,14786,14787],{"class":181}," response.",[34,14789,14790],{"class":47},"json",[34,14792,851],{"class":181},[34,14794,14795],{"class":36,"line":65},[34,14796,62],{"emptyLinePlaceholder":61},[34,14798,14799],{"class":36,"line":71},[34,14800,14801],{"class":40},"// POST request\n",[34,14803,14804,14806,14808,14810,14812,14814,14816,14818],{"class":36,"line":77},[34,14805,14676],{"class":580},[34,14807,14758],{"class":50},[34,14809,683],{"class":580},[34,14811,14763],{"class":580},[34,14813,14766],{"class":47},[34,14815,1607],{"class":181},[34,14817,14771],{"class":54},[34,14819,14820],{"class":181},", {\n",[34,14822,14823,14826,14829],{"class":36,"line":82},[34,14824,14825],{"class":181},"  method: ",[34,14827,14828],{"class":54},"\"POST\"",[34,14830,624],{"class":181},[34,14832,14833,14836,14839,14841,14844],{"class":36,"line":88},[34,14834,14835],{"class":181},"  headers: { ",[34,14837,14838],{"class":54},"\"Content-Type\"",[34,14840,182],{"class":181},[34,14842,14843],{"class":54},"\"application/json\"",[34,14845,14846],{"class":181}," },\n",[34,14848,14849,14852,14855,14857,14860,14863,14866],{"class":36,"line":242},[34,14850,14851],{"class":181},"  body: ",[34,14853,14854],{"class":50},"JSON",[34,14856,151],{"class":181},[34,14858,14859],{"class":47},"stringify",[34,14861,14862],{"class":181},"({ name: ",[34,14864,14865],{"class":54},"\"Bun\"",[34,14867,14868],{"class":181}," }),\n",[34,14870,14871],{"class":36,"line":250},[34,14872,14873],{"class":181},"});\n",[34,14875,14876],{"class":36,"line":263},[34,14877,62],{"emptyLinePlaceholder":61},[34,14879,14880],{"class":36,"line":275},[34,14881,14882],{"class":40},"// Streaming response\n",[34,14884,14885,14887,14889,14891,14893,14895,14897,14900],{"class":36,"line":700},[34,14886,14676],{"class":580},[34,14888,14758],{"class":50},[34,14890,683],{"class":580},[34,14892,14763],{"class":580},[34,14894,14766],{"class":47},[34,14896,1607],{"class":181},[34,14898,14899],{"class":54},"\"https://api.example.com/stream\"",[34,14901,1586],{"class":181},[34,14903,14904,14906,14908,14910,14912,14915,14918,14921,14923],{"class":36,"line":706},[34,14905,10246],{"class":580},[34,14907,14763],{"class":580},[34,14909,3204],{"class":181},[34,14911,14676],{"class":580},[34,14913,14914],{"class":50}," chunk",[34,14916,14917],{"class":580}," of",[34,14919,14920],{"class":181}," response.body",[34,14922,10307],{"class":580},[34,14924,2416],{"class":181},[34,14926,14927,14930,14932],{"class":36,"line":715},[34,14928,14929],{"class":181},"  console.",[34,14931,2424],{"class":47},[34,14933,14934],{"class":181},"(chunk);\n",[34,14936,14937],{"class":36,"line":725},[34,14938,693],{"class":181},[388,14940,14941],{},"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 .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 .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 .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":30,"searchDepth":44,"depth":44,"links":14943},[14944],{"id":14741,"depth":44,"text":14736},"Fetch API in Bun.",{},"/bun/fetch-api",{"title":14736,"description":14945},"bun/fetch-api",[14169,8606,573,14296,14297,5591],"oaC0R97m7SjQvN77xbS6YJMlWi6aL0ozDZoXc_Oa30Q",{"id":14953,"title":14954,"body":14955,"date":402,"description":15230,"extension":404,"meta":15231,"navigation":61,"order":250,"path":15232,"seo":15233,"stem":15234,"subject":14169,"tags":15235,"__hash__":15236},"topics/bun/file-system.md","File System",{"type":8,"value":14956,"toc":15227},[14957,14960,15224],[11,14958,14954],{"id":14959},"file-system",[25,14961,14963],{"className":571,"code":14962,"language":573,"meta":30,"style":30},"// Read file\nconst text = await Bun.file(\"file.txt\").text();\nconst json = await Bun.file(\"data.json\").json();\nconst bytes = await Bun.file(\"file.bin\").arrayBuffer();\n\n// Write file\nawait Bun.write(\"file.txt\", \"Hello, World!\");\nawait Bun.write(\"data.json\", JSON.stringify({ name: \"Bun\" }));\n\n// Check if file exists\nconst file = Bun.file(\"file.txt\");\nconst exists = await file.exists();\n\n// Get file info\nconst file = Bun.file(\"file.txt\");\nconsole.log(file.size, file.type);\n\n// Copy file\nawait Bun.write(\"copy.txt\", Bun.file(\"original.txt\"));\n",[20,14964,14965,14970,14997,15022,15049,15053,15058,15079,15106,15110,15115,15133,15152,15156,15161,15179,15189,15193,15198],{"__ignoreMap":30},[34,14966,14967],{"class":36,"line":37},[34,14968,14969],{"class":40},"// Read file\n",[34,14971,14972,14974,14976,14978,14980,14983,14986,14988,14991,14993,14995],{"class":36,"line":44},[34,14973,14676],{"class":580},[34,14975,9006],{"class":50},[34,14977,683],{"class":580},[34,14979,14763],{"class":580},[34,14981,14982],{"class":181}," Bun.",[34,14984,14985],{"class":47},"file",[34,14987,1607],{"class":181},[34,14989,14990],{"class":54},"\"file.txt\"",[34,14992,1876],{"class":181},[34,14994,780],{"class":47},[34,14996,851],{"class":181},[34,14998,14999,15001,15003,15005,15007,15009,15011,15013,15016,15018,15020],{"class":36,"line":58},[34,15000,14676],{"class":580},[34,15002,9231],{"class":50},[34,15004,683],{"class":580},[34,15006,14763],{"class":580},[34,15008,14982],{"class":181},[34,15010,14985],{"class":47},[34,15012,1607],{"class":181},[34,15014,15015],{"class":54},"\"data.json\"",[34,15017,1876],{"class":181},[34,15019,14790],{"class":47},[34,15021,851],{"class":181},[34,15023,15024,15026,15029,15031,15033,15035,15037,15039,15042,15044,15047],{"class":36,"line":65},[34,15025,14676],{"class":580},[34,15027,15028],{"class":50}," bytes",[34,15030,683],{"class":580},[34,15032,14763],{"class":580},[34,15034,14982],{"class":181},[34,15036,14985],{"class":47},[34,15038,1607],{"class":181},[34,15040,15041],{"class":54},"\"file.bin\"",[34,15043,1876],{"class":181},[34,15045,15046],{"class":47},"arrayBuffer",[34,15048,851],{"class":181},[34,15050,15051],{"class":36,"line":71},[34,15052,62],{"emptyLinePlaceholder":61},[34,15054,15055],{"class":36,"line":77},[34,15056,15057],{"class":40},"// Write file\n",[34,15059,15060,15063,15065,15068,15070,15072,15074,15077],{"class":36,"line":82},[34,15061,15062],{"class":580},"await",[34,15064,14982],{"class":181},[34,15066,15067],{"class":47},"write",[34,15069,1607],{"class":181},[34,15071,14990],{"class":54},[34,15073,1798],{"class":181},[34,15075,15076],{"class":54},"\"Hello, World!\"",[34,15078,1586],{"class":181},[34,15080,15081,15083,15085,15087,15089,15091,15093,15095,15097,15099,15101,15103],{"class":36,"line":88},[34,15082,15062],{"class":580},[34,15084,14982],{"class":181},[34,15086,15067],{"class":47},[34,15088,1607],{"class":181},[34,15090,15015],{"class":54},[34,15092,1798],{"class":181},[34,15094,14854],{"class":50},[34,15096,151],{"class":181},[34,15098,14859],{"class":47},[34,15100,14862],{"class":181},[34,15102,14865],{"class":54},[34,15104,15105],{"class":181}," }));\n",[34,15107,15108],{"class":36,"line":242},[34,15109,62],{"emptyLinePlaceholder":61},[34,15111,15112],{"class":36,"line":250},[34,15113,15114],{"class":40},"// Check if file exists\n",[34,15116,15117,15119,15121,15123,15125,15127,15129,15131],{"class":36,"line":263},[34,15118,14676],{"class":580},[34,15120,13190],{"class":50},[34,15122,683],{"class":580},[34,15124,14982],{"class":181},[34,15126,14985],{"class":47},[34,15128,1607],{"class":181},[34,15130,14990],{"class":54},[34,15132,1586],{"class":181},[34,15134,15135,15137,15140,15142,15144,15147,15150],{"class":36,"line":275},[34,15136,14676],{"class":580},[34,15138,15139],{"class":50}," exists",[34,15141,683],{"class":580},[34,15143,14763],{"class":580},[34,15145,15146],{"class":181}," file.",[34,15148,15149],{"class":47},"exists",[34,15151,851],{"class":181},[34,15153,15154],{"class":36,"line":700},[34,15155,62],{"emptyLinePlaceholder":61},[34,15157,15158],{"class":36,"line":706},[34,15159,15160],{"class":40},"// Get file info\n",[34,15162,15163,15165,15167,15169,15171,15173,15175,15177],{"class":36,"line":715},[34,15164,14676],{"class":580},[34,15166,13190],{"class":50},[34,15168,683],{"class":580},[34,15170,14982],{"class":181},[34,15172,14985],{"class":47},[34,15174,1607],{"class":181},[34,15176,14990],{"class":54},[34,15178,1586],{"class":181},[34,15180,15181,15184,15186],{"class":36,"line":725},[34,15182,15183],{"class":181},"console.",[34,15185,2424],{"class":47},[34,15187,15188],{"class":181},"(file.size, file.type);\n",[34,15190,15191],{"class":36,"line":734},[34,15192,62],{"emptyLinePlaceholder":61},[34,15194,15195],{"class":36,"line":742},[34,15196,15197],{"class":40},"// Copy file\n",[34,15199,15200,15202,15204,15206,15208,15211,15214,15216,15218,15221],{"class":36,"line":748},[34,15201,15062],{"class":580},[34,15203,14982],{"class":181},[34,15205,15067],{"class":47},[34,15207,1607],{"class":181},[34,15209,15210],{"class":54},"\"copy.txt\"",[34,15212,15213],{"class":181},", Bun.",[34,15215,14985],{"class":47},[34,15217,1607],{"class":181},[34,15219,15220],{"class":54},"\"original.txt\"",[34,15222,15223],{"class":181},"));\n",[388,15225,15226],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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);}",{"title":30,"searchDepth":44,"depth":44,"links":15228},[15229],{"id":14959,"depth":44,"text":14954},"File System in Bun.",{},"/bun/file-system",{"title":14954,"description":15230},"bun/file-system",[14169,8606,573,14296,14297,5591],"1LnXUD7g7iLXyHpAlofRE4LVqUkxysW7ryvzUyaCTZg",{"id":15238,"title":15239,"body":15240,"date":402,"description":15399,"extension":404,"meta":15400,"navigation":61,"order":748,"path":15401,"seo":15402,"stem":15403,"subject":14169,"tags":15404,"__hash__":15405},"topics/bun/globals.md","Globals",{"type":8,"value":15241,"toc":15396},[15242,15245,15393],[11,15243,15239],{"id":15244},"globals",[25,15246,15248],{"className":571,"code":15247,"language":573,"meta":30,"style":30},"// Bun-specific globals\nBun.version;        // Bun version\nBun.revision;       // Git SHA\nBun.main;           // Entry point path\nBun.cwd();          // Current working directory\nBun.sleep(1000);    // Sleep for 1 second\nBun.sleepSync(1000); // Sync sleep\n\n// Generate random data\nconst bytes = new Uint8Array(16);\ncrypto.getRandomValues(bytes);\n\n// UUID\nconst uuid = crypto.randomUUID();\n",[20,15249,15250,15255,15263,15271,15279,15293,15311,15327,15331,15336,15356,15367,15371,15376],{"__ignoreMap":30},[34,15251,15252],{"class":36,"line":37},[34,15253,15254],{"class":40},"// Bun-specific globals\n",[34,15256,15257,15260],{"class":36,"line":44},[34,15258,15259],{"class":181},"Bun.version;        ",[34,15261,15262],{"class":40},"// Bun version\n",[34,15264,15265,15268],{"class":36,"line":58},[34,15266,15267],{"class":181},"Bun.revision;       ",[34,15269,15270],{"class":40},"// Git SHA\n",[34,15272,15273,15276],{"class":36,"line":65},[34,15274,15275],{"class":181},"Bun.main;           ",[34,15277,15278],{"class":40},"// Entry point path\n",[34,15280,15281,15284,15287,15290],{"class":36,"line":71},[34,15282,15283],{"class":181},"Bun.",[34,15285,15286],{"class":47},"cwd",[34,15288,15289],{"class":181},"();          ",[34,15291,15292],{"class":40},"// Current working directory\n",[34,15294,15295,15297,15300,15302,15305,15308],{"class":36,"line":77},[34,15296,15283],{"class":181},[34,15298,15299],{"class":47},"sleep",[34,15301,1607],{"class":181},[34,15303,15304],{"class":50},"1000",[34,15306,15307],{"class":181},");    ",[34,15309,15310],{"class":40},"// Sleep for 1 second\n",[34,15312,15313,15315,15318,15320,15322,15324],{"class":36,"line":82},[34,15314,15283],{"class":181},[34,15316,15317],{"class":47},"sleepSync",[34,15319,1607],{"class":181},[34,15321,15304],{"class":50},[34,15323,8260],{"class":181},[34,15325,15326],{"class":40},"// Sync sleep\n",[34,15328,15329],{"class":36,"line":88},[34,15330,62],{"emptyLinePlaceholder":61},[34,15332,15333],{"class":36,"line":242},[34,15334,15335],{"class":40},"// Generate random data\n",[34,15337,15338,15340,15342,15344,15346,15349,15351,15354],{"class":36,"line":250},[34,15339,14676],{"class":580},[34,15341,15028],{"class":50},[34,15343,683],{"class":580},[34,15345,809],{"class":580},[34,15347,15348],{"class":47}," Uint8Array",[34,15350,1607],{"class":181},[34,15352,15353],{"class":50},"16",[34,15355,1586],{"class":181},[34,15357,15358,15361,15364],{"class":36,"line":263},[34,15359,15360],{"class":181},"crypto.",[34,15362,15363],{"class":47},"getRandomValues",[34,15365,15366],{"class":181},"(bytes);\n",[34,15368,15369],{"class":36,"line":275},[34,15370,62],{"emptyLinePlaceholder":61},[34,15372,15373],{"class":36,"line":700},[34,15374,15375],{"class":40},"// UUID\n",[34,15377,15378,15380,15383,15385,15388,15391],{"class":36,"line":706},[34,15379,14676],{"class":580},[34,15381,15382],{"class":50}," uuid",[34,15384,683],{"class":580},[34,15386,15387],{"class":181}," crypto.",[34,15389,15390],{"class":47},"randomUUID",[34,15392,851],{"class":181},[388,15394,15395],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":15397},[15398],{"id":15244,"depth":44,"text":15239},"Globals in Bun.",{},"/bun/globals",{"title":15239,"description":15399},"bun/globals",[14169,8606,573,14296,14297,5591],"0MYjX_Gn96QTIuAx1RfwYVim9bqB261sqWYHt7GIbx0",{"id":15407,"title":15408,"body":15409,"date":402,"description":15777,"extension":404,"meta":15778,"navigation":61,"order":242,"path":15779,"seo":15780,"stem":15781,"subject":14169,"tags":15782,"__hash__":15783},"topics/bun/http-server.md","HTTP Server",{"type":8,"value":15410,"toc":15774},[15411,15414,15771],[11,15412,15408],{"id":15413},"http-server",[25,15415,15417],{"className":571,"code":15416,"language":573,"meta":30,"style":30},"// Simple server using Bun.serve\nBun.serve({\n  port: 3000,\n  fetch(req) {\n    return new Response(\"Hello, World!\");\n  },\n});\n\n// With routing\nBun.serve({\n  port: 3000,\n  fetch(req) {\n    const url = new URL(req.url);\n    \n    if (url.pathname === \"/api\") {\n      return Response.json({ message: \"Hello\" });\n    }\n    \n    if (url.pathname === \"/\") {\n      return new Response(\"Welcome!\");\n    }\n    \n    return new Response(\"Not Found\", { status: 404 });\n  },\n});\n\n// With WebSocket support\nBun.serve({\n  port: 3000,\n  fetch(req, server) {\n    if (server.upgrade(req)) return;\n    return new Response(\"HTTP request\");\n  },\n  websocket: {\n    message(ws, message) {\n      ws.send(`Echo: ${message}`);\n    },\n  },\n});\n",[20,15418,15419,15424,15433,15443,15455,15470,15474,15478,15482,15487,15495,15503,15513,15530,15534,15549,15568,15572,15576,15589,15604,15608,15612,15633,15637,15641,15645,15650,15658,15666,15681,15698,15713,15717,15722,15739,15758,15763,15767],{"__ignoreMap":30},[34,15420,15421],{"class":36,"line":37},[34,15422,15423],{"class":40},"// Simple server using Bun.serve\n",[34,15425,15426,15428,15431],{"class":36,"line":44},[34,15427,15283],{"class":181},[34,15429,15430],{"class":47},"serve",[34,15432,613],{"class":181},[34,15434,15435,15438,15441],{"class":36,"line":58},[34,15436,15437],{"class":181},"  port: ",[34,15439,15440],{"class":50},"3000",[34,15442,624],{"class":181},[34,15444,15445,15448,15450,15453],{"class":36,"line":65},[34,15446,15447],{"class":47},"  fetch",[34,15449,1607],{"class":181},[34,15451,15452],{"class":675},"req",[34,15454,2416],{"class":181},[34,15456,15457,15459,15461,15464,15466,15468],{"class":36,"line":71},[34,15458,1564],{"class":580},[34,15460,809],{"class":580},[34,15462,15463],{"class":47}," Response",[34,15465,1607],{"class":181},[34,15467,15076],{"class":54},[34,15469,1586],{"class":181},[34,15471,15472],{"class":36,"line":77},[34,15473,3400],{"class":181},[34,15475,15476],{"class":36,"line":82},[34,15477,14873],{"class":181},[34,15479,15480],{"class":36,"line":88},[34,15481,62],{"emptyLinePlaceholder":61},[34,15483,15484],{"class":36,"line":242},[34,15485,15486],{"class":40},"// With routing\n",[34,15488,15489,15491,15493],{"class":36,"line":250},[34,15490,15283],{"class":181},[34,15492,15430],{"class":47},[34,15494,613],{"class":181},[34,15496,15497,15499,15501],{"class":36,"line":263},[34,15498,15437],{"class":181},[34,15500,15440],{"class":50},[34,15502,624],{"class":181},[34,15504,15505,15507,15509,15511],{"class":36,"line":275},[34,15506,15447],{"class":47},[34,15508,1607],{"class":181},[34,15510,15452],{"class":675},[34,15512,2416],{"class":181},[34,15514,15515,15517,15520,15522,15524,15527],{"class":36,"line":700},[34,15516,1632],{"class":580},[34,15518,15519],{"class":50}," url",[34,15521,683],{"class":580},[34,15523,809],{"class":580},[34,15525,15526],{"class":47}," URL",[34,15528,15529],{"class":181},"(req.url);\n",[34,15531,15532],{"class":36,"line":706},[34,15533,3666],{"class":181},[34,15535,15536,15538,15541,15544,15547],{"class":36,"line":715},[34,15537,2902],{"class":580},[34,15539,15540],{"class":181}," (url.pathname ",[34,15542,15543],{"class":580},"===",[34,15545,15546],{"class":54}," \"/api\"",[34,15548,2416],{"class":181},[34,15550,15551,15554,15557,15559,15562,15565],{"class":36,"line":725},[34,15552,15553],{"class":580},"      return",[34,15555,15556],{"class":181}," Response.",[34,15558,14790],{"class":47},[34,15560,15561],{"class":181},"({ message: ",[34,15563,15564],{"class":54},"\"Hello\"",[34,15566,15567],{"class":181}," });\n",[34,15569,15570],{"class":36,"line":734},[34,15571,3229],{"class":181},[34,15573,15574],{"class":36,"line":742},[34,15575,3666],{"class":181},[34,15577,15578,15580,15582,15584,15587],{"class":36,"line":748},[34,15579,2902],{"class":580},[34,15581,15540],{"class":181},[34,15583,15543],{"class":580},[34,15585,15586],{"class":54}," \"/\"",[34,15588,2416],{"class":181},[34,15590,15591,15593,15595,15597,15599,15602],{"class":36,"line":754},[34,15592,15553],{"class":580},[34,15594,809],{"class":580},[34,15596,15463],{"class":47},[34,15598,1607],{"class":181},[34,15600,15601],{"class":54},"\"Welcome!\"",[34,15603,1586],{"class":181},[34,15605,15606],{"class":36,"line":759},[34,15607,3229],{"class":181},[34,15609,15610],{"class":36,"line":771},[34,15611,3666],{"class":181},[34,15613,15614,15616,15618,15620,15622,15625,15628,15631],{"class":36,"line":794},[34,15615,1564],{"class":580},[34,15617,809],{"class":580},[34,15619,15463],{"class":47},[34,15621,1607],{"class":181},[34,15623,15624],{"class":54},"\"Not Found\"",[34,15626,15627],{"class":181},", { status: ",[34,15629,15630],{"class":50},"404",[34,15632,15567],{"class":181},[34,15634,15635],{"class":36,"line":824},[34,15636,3400],{"class":181},[34,15638,15639],{"class":36,"line":830},[34,15640,14873],{"class":181},[34,15642,15643],{"class":36,"line":839},[34,15644,62],{"emptyLinePlaceholder":61},[34,15646,15647],{"class":36,"line":854},[34,15648,15649],{"class":40},"// With WebSocket support\n",[34,15651,15652,15654,15656],{"class":36,"line":860},[34,15653,15283],{"class":181},[34,15655,15430],{"class":47},[34,15657,613],{"class":181},[34,15659,15660,15662,15664],{"class":36,"line":865},[34,15661,15437],{"class":181},[34,15663,15440],{"class":50},[34,15665,624],{"class":181},[34,15667,15668,15670,15672,15674,15676,15679],{"class":36,"line":870},[34,15669,15447],{"class":47},[34,15671,1607],{"class":181},[34,15673,15452],{"class":675},[34,15675,1798],{"class":181},[34,15677,15678],{"class":675},"server",[34,15680,2416],{"class":181},[34,15682,15683,15685,15688,15691,15694,15696],{"class":36,"line":876},[34,15684,2902],{"class":580},[34,15686,15687],{"class":181}," (server.",[34,15689,15690],{"class":47},"upgrade",[34,15692,15693],{"class":181},"(req)) ",[34,15695,2917],{"class":580},[34,15697,593],{"class":181},[34,15699,15700,15702,15704,15706,15708,15711],{"class":36,"line":885},[34,15701,1564],{"class":580},[34,15703,809],{"class":580},[34,15705,15463],{"class":47},[34,15707,1607],{"class":181},[34,15709,15710],{"class":54},"\"HTTP request\"",[34,15712,1586],{"class":181},[34,15714,15715],{"class":36,"line":895},[34,15716,3400],{"class":181},[34,15718,15719],{"class":36,"line":904},[34,15720,15721],{"class":181},"  websocket: {\n",[34,15723,15724,15727,15729,15732,15734,15737],{"class":36,"line":915},[34,15725,15726],{"class":47},"    message",[34,15728,1607],{"class":181},[34,15730,15731],{"class":675},"ws",[34,15733,1798],{"class":181},[34,15735,15736],{"class":675},"message",[34,15738,2416],{"class":181},[34,15740,15741,15744,15747,15749,15752,15754,15756],{"class":36,"line":927},[34,15742,15743],{"class":181},"      ws.",[34,15745,15746],{"class":47},"send",[34,15748,1607],{"class":181},[34,15750,15751],{"class":54},"`Echo: ${",[34,15753,15736],{"class":181},[34,15755,3925],{"class":54},[34,15757,1586],{"class":181},[34,15759,15760],{"class":36,"line":932},[34,15761,15762],{"class":181},"    },\n",[34,15764,15765],{"class":36,"line":944},[34,15766,3400],{"class":181},[34,15768,15769],{"class":36,"line":966},[34,15770,14873],{"class":181},[388,15772,15773],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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);}",{"title":30,"searchDepth":44,"depth":44,"links":15775},[15776],{"id":15413,"depth":44,"text":15408},"HTTP Server in Bun.",{},"/bun/http-server",{"title":15408,"description":15777},"bun/http-server",[14169,8606,573,14296,14297,5591],"-KSB1OMb9jHZpsM9fKO8aLgpkMoJ_GcLc5k-oNyRivE",{"id":15785,"title":97,"body":15786,"date":402,"description":15877,"extension":404,"meta":15878,"navigation":61,"order":44,"path":15879,"seo":15880,"stem":15881,"subject":14169,"tags":15882,"__hash__":15883},"topics/bun/installation.md",{"type":8,"value":15787,"toc":15874},[15788,15790,15871],[11,15789,97],{"id":96},[25,15791,15793],{"className":27,"code":15792,"language":29,"meta":30,"style":30},"# macOS/Linux\ncurl -fsSL https://bun.sh/install | bash\n\n# Homebrew\nbrew install oven-sh/bun/bun\n\n# npm\nnpm install -g bun\n\n# Windows (experimental)\npowershell -c \"irm bun.sh/install.ps1 | iex\"\n",[20,15794,15795,15800,15814,15818,15823,15832,15836,15841,15852,15856,15861],{"__ignoreMap":30},[34,15796,15797],{"class":36,"line":37},[34,15798,15799],{"class":40},"# macOS/Linux\n",[34,15801,15802,15804,15807,15810,15812],{"class":36,"line":44},[34,15803,8648],{"class":47},[34,15805,15806],{"class":50}," -fsSL",[34,15808,15809],{"class":54}," https://bun.sh/install",[34,15811,7197],{"class":580},[34,15813,9346],{"class":47},[34,15815,15816],{"class":36,"line":58},[34,15817,62],{"emptyLinePlaceholder":61},[34,15819,15820],{"class":36,"line":65},[34,15821,15822],{"class":40},"# Homebrew\n",[34,15824,15825,15827,15829],{"class":36,"line":71},[34,15826,115],{"class":47},[34,15828,118],{"class":54},[34,15830,15831],{"class":54}," oven-sh/bun/bun\n",[34,15833,15834],{"class":36,"line":77},[34,15835,62],{"emptyLinePlaceholder":61},[34,15837,15838],{"class":36,"line":82},[34,15839,15840],{"class":40},"# npm\n",[34,15842,15843,15845,15847,15849],{"class":36,"line":88},[34,15844,8177],{"class":47},[34,15846,118],{"class":54},[34,15848,9753],{"class":50},[34,15850,15851],{"class":54}," bun\n",[34,15853,15854],{"class":36,"line":242},[34,15855,62],{"emptyLinePlaceholder":61},[34,15857,15858],{"class":36,"line":250},[34,15859,15860],{"class":40},"# Windows (experimental)\n",[34,15862,15863,15865,15868],{"class":36,"line":263},[34,15864,130],{"class":47},[34,15866,15867],{"class":50}," -c",[34,15869,15870],{"class":54}," \"irm bun.sh/install.ps1 | iex\"\n",[388,15872,15873],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":15875},[15876],{"id":96,"depth":44,"text":97},"Installation in Bun.",{},"/bun/installation",{"title":97,"description":15877},"bun/installation",[14169,8606,573,14296,14297,5591],"IXyxZ-p6Xcvf0HDw9Q5eg2jvT0HOX9PGHeiRKP3Ckj0",{"id":15885,"title":14322,"body":15886,"date":402,"description":16203,"extension":404,"meta":16204,"navigation":61,"order":37,"path":16205,"seo":16206,"stem":16207,"subject":14169,"tags":16208,"__hash__":16209},"topics/bun/overview.md",{"type":8,"value":15887,"toc":16193},[15888,15892,15895,15897,15900,15919,15924,15933,15937,15940,15969,15972,15989,15992,15996,16006,16028,16031,16045,16049,16052,16072,16074,16092,16096,16099,16111,16118,16122,16125,16139,16143,16146,16166,16168,16182,16190],[11,15889,15891],{"id":15890},"bun-overview","Bun Overview",[16,15893,15894],{},"Bun is a modern JavaScript runtime designed for speed, providing tools like a package manager, bundler, and test runner in one single solution. Below are some key features and syntax you should know.",[11,15896,97],{"id":96},[16,15898,15899],{},"To install Bun, use the following command:",[25,15901,15905],{"className":15902,"code":15903,"language":15904,"meta":30,"style":30},"language-sh shiki shiki-themes github-light github-dark","curl -fsSL https://bun.sh/install | bash\n","sh",[20,15906,15907],{"__ignoreMap":30},[34,15908,15909,15911,15913,15915,15917],{"class":36,"line":37},[34,15910,8648],{"class":47},[34,15912,15806],{"class":50},[34,15914,15809],{"class":54},[34,15916,7197],{"class":580},[34,15918,9346],{"class":47},[16,15920,15921,15922,151],{},"This installs Bun globally. Alternatively, manage versions via ",[20,15923,14353],{},[15925,15926,15927],"blockquote",{},[16,15928,15929,15932],{},[8471,15930,15931],{},"Note",": Make sure to add Bun's binary to your PATH after installation.",[11,15934,15936],{"id":15935},"quickstart","Quickstart",[16,15938,15939],{},"To create a new project, run:",[25,15941,15943],{"className":15902,"code":15942,"language":15904,"meta":30,"style":30},"bun create \u003Ctemplate> \u003Cproject_name>\n",[20,15944,15945],{"__ignoreMap":30},[34,15946,15947,15949,15951,15953,15956,15958,15960,15962,15965,15967],{"class":36,"line":37},[34,15948,14169],{"class":47},[34,15950,7077],{"class":54},[34,15952,5470],{"class":580},[34,15954,15955],{"class":54},"templat",[34,15957,5476],{"class":181},[34,15959,5691],{"class":580},[34,15961,5470],{"class":580},[34,15963,15964],{"class":54},"project_nam",[34,15966,5476],{"class":181},[34,15968,1248],{"class":580},[16,15970,15971],{},"For example:",[25,15973,15975],{"className":15902,"code":15974,"language":15904,"meta":30,"style":30},"bun create react my-react-app\n",[20,15976,15977],{"__ignoreMap":30},[34,15978,15979,15981,15983,15986],{"class":36,"line":37},[34,15980,14169],{"class":47},[34,15982,7077],{"class":54},[34,15984,15985],{"class":54}," react",[34,15987,15988],{"class":54}," my-react-app\n",[16,15990,15991],{},"This generates a full React starter project using Bun for dependency management and bundling.",[11,15993,15995],{"id":15994},"running-scripts","Running Scripts",[16,15997,15998,15999,16001,16002,16005],{},"Use ",[20,16000,14169],{}," similar to the Node.js ",[20,16003,16004],{},"node"," command:",[25,16007,16009],{"className":15902,"code":16008,"language":15904,"meta":30,"style":30},"bun run \u003Cscript>\n",[20,16010,16011],{"__ignoreMap":30},[34,16012,16013,16015,16018,16020,16023,16026],{"class":36,"line":37},[34,16014,14169],{"class":47},[34,16016,16017],{"class":54}," run",[34,16019,5470],{"class":580},[34,16021,16022],{"class":54},"scrip",[34,16024,16025],{"class":181},"t",[34,16027,1248],{"class":580},[16,16029,16030],{},"Example:",[25,16032,16034],{"className":15902,"code":16033,"language":15904,"meta":30,"style":30},"bun run index.js\n",[20,16035,16036],{"__ignoreMap":30},[34,16037,16038,16040,16042],{"class":36,"line":37},[34,16039,14169],{"class":47},[34,16041,16017],{"class":54},[34,16043,16044],{"class":54}," index.js\n",[11,16046,16048],{"id":16047},"bundling","Bundling",[16,16050,16051],{},"Bundle your JavaScript modules with Bun:",[25,16053,16055],{"className":15902,"code":16054,"language":15904,"meta":30,"style":30},"bun build \u003Centry-file>\n",[20,16056,16057],{"__ignoreMap":30},[34,16058,16059,16061,16063,16065,16068,16070],{"class":36,"line":37},[34,16060,14169],{"class":47},[34,16062,14172],{"class":54},[34,16064,5470],{"class":580},[34,16066,16067],{"class":54},"entry-fil",[34,16069,5476],{"class":181},[34,16071,1248],{"class":580},[16,16073,16030],{},[25,16075,16077],{"className":15902,"code":16076,"language":15904,"meta":30,"style":30},"bun build index.js --outdir ./dist\n",[20,16078,16079],{"__ignoreMap":30},[34,16080,16081,16083,16085,16088,16090],{"class":36,"line":37},[34,16082,14169],{"class":47},[34,16084,14172],{"class":54},[34,16086,16087],{"class":54}," index.js",[34,16089,14178],{"class":50},[34,16091,14181],{"class":54},[11,16093,16095],{"id":16094},"testing","Testing",[16,16097,16098],{},"Bun comes with a built-in test runner:",[25,16100,16102],{"className":15902,"code":16101,"language":15904,"meta":30,"style":30},"bun test\n",[20,16103,16104],{"__ignoreMap":30},[34,16105,16106,16108],{"class":36,"line":37},[34,16107,14169],{"class":47},[34,16109,16110],{"class":54}," test\n",[16,16112,16113,16114,16117],{},"Tests are automatically discovered in ",[20,16115,16116],{},"__tests__"," directories.",[11,16119,16121],{"id":16120},"typescript-support","TypeScript Support",[16,16123,16124],{},"Bun natively supports TypeScript without requiring additional configuration:",[25,16126,16128],{"className":15902,"code":16127,"language":15904,"meta":30,"style":30},"bun run app.ts\n",[20,16129,16130],{"__ignoreMap":30},[34,16131,16132,16134,16136],{"class":36,"line":37},[34,16133,14169],{"class":47},[34,16135,16017],{"class":54},[34,16137,16138],{"class":54}," app.ts\n",[11,16140,16142],{"id":16141},"file-watching","File Watching",[16,16144,16145],{},"Use watch mode for development:",[25,16147,16149],{"className":15902,"code":16148,"language":15904,"meta":30,"style":30},"bun watch \u003Cscript>\n",[20,16150,16151],{"__ignoreMap":30},[34,16152,16153,16155,16158,16160,16162,16164],{"class":36,"line":37},[34,16154,14169],{"class":47},[34,16156,16157],{"class":54}," watch",[34,16159,5470],{"class":580},[34,16161,16022],{"class":54},[34,16163,16025],{"class":181},[34,16165,1248],{"class":580},[16,16167,16030],{},[25,16169,16171],{"className":15902,"code":16170,"language":15904,"meta":30,"style":30},"bun watch server.js\n",[20,16172,16173],{"__ignoreMap":30},[34,16174,16175,16177,16179],{"class":36,"line":37},[34,16176,14169],{"class":47},[34,16178,16157],{"class":54},[34,16180,16181],{"class":54}," server.js\n",[15925,16183,16184],{},[16,16185,16186,16189],{},[8471,16187,16188],{},"Tip",": This automatically reloads the server when changes are detected.",[388,16191,16192],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":30,"searchDepth":44,"depth":44,"links":16194},[16195,16196,16197,16198,16199,16200,16201,16202],{"id":15890,"depth":44,"text":15891},{"id":96,"depth":44,"text":97},{"id":15935,"depth":44,"text":15936},{"id":15994,"depth":44,"text":15995},{"id":16047,"depth":44,"text":16048},{"id":16094,"depth":44,"text":16095},{"id":16120,"depth":44,"text":16121},{"id":16141,"depth":44,"text":16142},"A fast all-in-one JavaScript runtime providing a package manager, bundler, and test runner for modern web development.",{},"/bun/overview",{"title":14322,"description":16203},"bun/overview",[14169,8606,14296,5591,14297],"0-KwJbt2wfIym6IDipaE53q3tf-gDqy6DQGg3v37d1I",{"id":16211,"title":16212,"body":16213,"date":402,"description":16361,"extension":404,"meta":16362,"navigation":61,"order":77,"path":16363,"seo":16364,"stem":16365,"subject":14169,"tags":16366,"__hash__":16367},"topics/bun/package-management.md","Package Management",{"type":8,"value":16214,"toc":16358},[16215,16218,16356],[11,16216,16212],{"id":16217},"package-management",[25,16219,16221],{"className":27,"code":16220,"language":29,"meta":30,"style":30},"# Initialize new project\nbun init\n\n# Install all dependencies\nbun install\n\n# Add a package\nbun add express\n\n# Add dev dependency\nbun add -d typescript\n\n# Add global package\nbun add -g typescript\n\n# Remove a package\nbun remove express\n\n# Update packages\nbun update\n\n# List installed packages\nbun pm ls\n",[20,16222,16223,16228,16234,16238,16243,16249,16253,16258,16267,16271,16276,16287,16291,16296,16306,16310,16315,16323,16327,16332,16338,16342,16347],{"__ignoreMap":30},[34,16224,16225],{"class":36,"line":37},[34,16226,16227],{"class":40},"# Initialize new project\n",[34,16229,16230,16232],{"class":36,"line":44},[34,16231,14169],{"class":47},[34,16233,8180],{"class":54},[34,16235,16236],{"class":36,"line":58},[34,16237,62],{"emptyLinePlaceholder":61},[34,16239,16240],{"class":36,"line":65},[34,16241,16242],{"class":40},"# Install all dependencies\n",[34,16244,16245,16247],{"class":36,"line":71},[34,16246,14169],{"class":47},[34,16248,5951],{"class":54},[34,16250,16251],{"class":36,"line":77},[34,16252,62],{"emptyLinePlaceholder":61},[34,16254,16255],{"class":36,"line":82},[34,16256,16257],{"class":40},"# Add a package\n",[34,16259,16260,16262,16264],{"class":36,"line":88},[34,16261,14169],{"class":47},[34,16263,7854],{"class":54},[34,16265,16266],{"class":54}," express\n",[34,16268,16269],{"class":36,"line":242},[34,16270,62],{"emptyLinePlaceholder":61},[34,16272,16273],{"class":36,"line":250},[34,16274,16275],{"class":40},"# Add dev dependency\n",[34,16277,16278,16280,16282,16284],{"class":36,"line":263},[34,16279,14169],{"class":47},[34,16281,7854],{"class":54},[34,16283,9750],{"class":50},[34,16285,16286],{"class":54}," typescript\n",[34,16288,16289],{"class":36,"line":275},[34,16290,62],{"emptyLinePlaceholder":61},[34,16292,16293],{"class":36,"line":700},[34,16294,16295],{"class":40},"# Add global package\n",[34,16297,16298,16300,16302,16304],{"class":36,"line":706},[34,16299,14169],{"class":47},[34,16301,7854],{"class":54},[34,16303,9753],{"class":50},[34,16305,16286],{"class":54},[34,16307,16308],{"class":36,"line":715},[34,16309,62],{"emptyLinePlaceholder":61},[34,16311,16312],{"class":36,"line":725},[34,16313,16314],{"class":40},"# Remove a package\n",[34,16316,16317,16319,16321],{"class":36,"line":734},[34,16318,14169],{"class":47},[34,16320,6676],{"class":54},[34,16322,16266],{"class":54},[34,16324,16325],{"class":36,"line":742},[34,16326,62],{"emptyLinePlaceholder":61},[34,16328,16329],{"class":36,"line":748},[34,16330,16331],{"class":40},"# Update packages\n",[34,16333,16334,16336],{"class":36,"line":754},[34,16335,14169],{"class":47},[34,16337,6441],{"class":54},[34,16339,16340],{"class":36,"line":759},[34,16341,62],{"emptyLinePlaceholder":61},[34,16343,16344],{"class":36,"line":771},[34,16345,16346],{"class":40},"# List installed packages\n",[34,16348,16349,16351,16354],{"class":36,"line":794},[34,16350,14169],{"class":47},[34,16352,16353],{"class":54}," pm",[34,16355,8791],{"class":54},[388,16357,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":16359},[16360],{"id":16217,"depth":44,"text":16212},"Package Management in Bun.",{},"/bun/package-management",{"title":16212,"description":16361},"bun/package-management",[14169,8606,573,14296,14297,5591],"ZKnRsMyNdIcTZygrwcrEQnlYLWr7b_dbXaqkxXA9cQw",{"id":16369,"title":16370,"body":16371,"date":402,"description":16513,"extension":404,"meta":16514,"navigation":61,"order":706,"path":16515,"seo":16516,"stem":16517,"subject":14169,"tags":16518,"__hash__":16519},"topics/bun/password-hashing.md","Password Hashing",{"type":8,"value":16372,"toc":16510},[16373,16376,16507],[11,16374,16370],{"id":16375},"password-hashing",[25,16377,16379],{"className":571,"code":16378,"language":573,"meta":30,"style":30},"// Hash password\nconst password = \"supersecure\";\nconst hash = await Bun.password.hash(password);\n\n// Verify password\nconst isValid = await Bun.password.verify(password, hash);\n\n// With options\nconst hash = await Bun.password.hash(password, {\n  algorithm: \"argon2id\",\n  memoryCost: 65536,\n  timeCost: 2,\n});\n",[20,16380,16381,16386,16400,16420,16424,16429,16448,16452,16457,16474,16484,16494,16503],{"__ignoreMap":30},[34,16382,16383],{"class":36,"line":37},[34,16384,16385],{"class":40},"// Hash password\n",[34,16387,16388,16390,16393,16395,16398],{"class":36,"line":44},[34,16389,14676],{"class":580},[34,16391,16392],{"class":50}," password",[34,16394,683],{"class":580},[34,16396,16397],{"class":54}," \"supersecure\"",[34,16399,593],{"class":181},[34,16401,16402,16404,16407,16409,16411,16414,16417],{"class":36,"line":58},[34,16403,14676],{"class":580},[34,16405,16406],{"class":50}," hash",[34,16408,683],{"class":580},[34,16410,14763],{"class":580},[34,16412,16413],{"class":181}," Bun.password.",[34,16415,16416],{"class":47},"hash",[34,16418,16419],{"class":181},"(password);\n",[34,16421,16422],{"class":36,"line":65},[34,16423,62],{"emptyLinePlaceholder":61},[34,16425,16426],{"class":36,"line":71},[34,16427,16428],{"class":40},"// Verify password\n",[34,16430,16431,16433,16436,16438,16440,16442,16445],{"class":36,"line":77},[34,16432,14676],{"class":580},[34,16434,16435],{"class":50}," isValid",[34,16437,683],{"class":580},[34,16439,14763],{"class":580},[34,16441,16413],{"class":181},[34,16443,16444],{"class":47},"verify",[34,16446,16447],{"class":181},"(password, hash);\n",[34,16449,16450],{"class":36,"line":82},[34,16451,62],{"emptyLinePlaceholder":61},[34,16453,16454],{"class":36,"line":88},[34,16455,16456],{"class":40},"// With options\n",[34,16458,16459,16461,16463,16465,16467,16469,16471],{"class":36,"line":242},[34,16460,14676],{"class":580},[34,16462,16406],{"class":50},[34,16464,683],{"class":580},[34,16466,14763],{"class":580},[34,16468,16413],{"class":181},[34,16470,16416],{"class":47},[34,16472,16473],{"class":181},"(password, {\n",[34,16475,16476,16479,16482],{"class":36,"line":250},[34,16477,16478],{"class":181},"  algorithm: ",[34,16480,16481],{"class":54},"\"argon2id\"",[34,16483,624],{"class":181},[34,16485,16486,16489,16492],{"class":36,"line":263},[34,16487,16488],{"class":181},"  memoryCost: ",[34,16490,16491],{"class":50},"65536",[34,16493,624],{"class":181},[34,16495,16496,16499,16501],{"class":36,"line":275},[34,16497,16498],{"class":181},"  timeCost: ",[34,16500,8324],{"class":50},[34,16502,624],{"class":181},[34,16504,16505],{"class":36,"line":700},[34,16506,14873],{"class":181},[388,16508,16509],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":16511},[16512],{"id":16375,"depth":44,"text":16370},"Password Hashing in Bun.",{},"/bun/password-hashing",{"title":16370,"description":16513},"bun/password-hashing",[14169,8606,573,14296,14297,5591],"IJSHXkx1jzV98FoDoiLncCcW9Bx3Gnx1wPba48SMgio",{"id":16521,"title":15995,"body":16522,"date":402,"description":16619,"extension":404,"meta":16620,"navigation":61,"order":71,"path":16621,"seo":16622,"stem":16623,"subject":14169,"tags":16624,"__hash__":16625},"topics/bun/running-scripts.md",{"type":8,"value":16523,"toc":16616},[16524,16526,16614],[11,16525,15995],{"id":15994},[25,16527,16529],{"className":27,"code":16528,"language":29,"meta":30,"style":30},"# Run a TypeScript/JavaScript file\nbun run script.ts\n\n# Run directly (shorthand)\nbun script.ts\n\n# Watch mode\nbun --watch script.ts\n\n# Hot reload mode\nbun --hot script.ts\n\n# Run with environment file\nbun --env-file=.env script.ts\n",[20,16530,16531,16536,16545,16549,16554,16560,16564,16569,16578,16582,16587,16596,16600,16605],{"__ignoreMap":30},[34,16532,16533],{"class":36,"line":37},[34,16534,16535],{"class":40},"# Run a TypeScript/JavaScript file\n",[34,16537,16538,16540,16542],{"class":36,"line":44},[34,16539,14169],{"class":47},[34,16541,16017],{"class":54},[34,16543,16544],{"class":54}," script.ts\n",[34,16546,16547],{"class":36,"line":58},[34,16548,62],{"emptyLinePlaceholder":61},[34,16550,16551],{"class":36,"line":65},[34,16552,16553],{"class":40},"# Run directly (shorthand)\n",[34,16555,16556,16558],{"class":36,"line":71},[34,16557,14169],{"class":47},[34,16559,16544],{"class":54},[34,16561,16562],{"class":36,"line":77},[34,16563,62],{"emptyLinePlaceholder":61},[34,16565,16566],{"class":36,"line":82},[34,16567,16568],{"class":40},"# Watch mode\n",[34,16570,16571,16573,16576],{"class":36,"line":88},[34,16572,14169],{"class":47},[34,16574,16575],{"class":50}," --watch",[34,16577,16544],{"class":54},[34,16579,16580],{"class":36,"line":242},[34,16581,62],{"emptyLinePlaceholder":61},[34,16583,16584],{"class":36,"line":250},[34,16585,16586],{"class":40},"# Hot reload mode\n",[34,16588,16589,16591,16594],{"class":36,"line":263},[34,16590,14169],{"class":47},[34,16592,16593],{"class":50}," --hot",[34,16595,16544],{"class":54},[34,16597,16598],{"class":36,"line":275},[34,16599,62],{"emptyLinePlaceholder":61},[34,16601,16602],{"class":36,"line":700},[34,16603,16604],{"class":40},"# Run with environment file\n",[34,16606,16607,16609,16612],{"class":36,"line":706},[34,16608,14169],{"class":47},[34,16610,16611],{"class":50}," --env-file=.env",[34,16613,16544],{"class":54},[388,16615,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":16617},[16618],{"id":15994,"depth":44,"text":15995},"Running Scripts in Bun.",{},"/bun/running-scripts",{"title":15995,"description":16619},"bun/running-scripts",[14169,8606,573,14296,14297,5591],"a1GquESaInmoBQAkfMHkZ97mHozASsuIfH0rAPIaihc",{"id":16627,"title":16628,"body":16629,"date":402,"description":16719,"extension":404,"meta":16720,"navigation":61,"order":82,"path":16721,"seo":16722,"stem":16723,"subject":14169,"tags":16724,"__hash__":16725},"topics/bun/running-scripts-packagejson.md","Running Scripts (package.json)",{"type":8,"value":16630,"toc":16716},[16631,16634,16714],[11,16632,16628],{"id":16633},"running-scripts-packagejson",[25,16635,16637],{"className":27,"code":16636,"language":29,"meta":30,"style":30},"# Run a script from package.json\nbun run dev\nbun run build\n\n# Shorthand (without 'run')\nbun dev\nbun build\n\n# Run binaries from node_modules\nbunx tsc --init\nbunx prisma migrate dev\n",[20,16638,16639,16644,16653,16661,16665,16670,16676,16682,16686,16691,16702],{"__ignoreMap":30},[34,16640,16641],{"class":36,"line":37},[34,16642,16643],{"class":40},"# Run a script from package.json\n",[34,16645,16646,16648,16650],{"class":36,"line":44},[34,16647,14169],{"class":47},[34,16649,16017],{"class":54},[34,16651,16652],{"class":54}," dev\n",[34,16654,16655,16657,16659],{"class":36,"line":58},[34,16656,14169],{"class":47},[34,16658,16017],{"class":54},[34,16660,55],{"class":54},[34,16662,16663],{"class":36,"line":65},[34,16664,62],{"emptyLinePlaceholder":61},[34,16666,16667],{"class":36,"line":71},[34,16668,16669],{"class":40},"# Shorthand (without 'run')\n",[34,16671,16672,16674],{"class":36,"line":77},[34,16673,14169],{"class":47},[34,16675,16652],{"class":54},[34,16677,16678,16680],{"class":36,"line":82},[34,16679,14169],{"class":47},[34,16681,55],{"class":54},[34,16683,16684],{"class":36,"line":88},[34,16685,62],{"emptyLinePlaceholder":61},[34,16687,16688],{"class":36,"line":242},[34,16689,16690],{"class":40},"# Run binaries from node_modules\n",[34,16692,16693,16696,16699],{"class":36,"line":250},[34,16694,16695],{"class":47},"bunx",[34,16697,16698],{"class":54}," tsc",[34,16700,16701],{"class":50}," --init\n",[34,16703,16704,16706,16709,16712],{"class":36,"line":263},[34,16705,16695],{"class":47},[34,16707,16708],{"class":54}," prisma",[34,16710,16711],{"class":54}," migrate",[34,16713,16652],{"class":54},[388,16715,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":16717},[16718],{"id":16633,"depth":44,"text":16628},"Running Scripts (package.json) in Bun.",{},"/bun/running-scripts-packagejson",{"title":16628,"description":16719},"bun/running-scripts-packagejson",[14169,8606,573,14296,14297,5591],"TJweNob_1JXZrP1RADkBrGZBrV1orwMQVYJHInpXFYU",{"id":16727,"title":16728,"body":16729,"date":402,"description":16948,"extension":404,"meta":16949,"navigation":61,"order":715,"path":16950,"seo":16951,"stem":16952,"subject":14169,"tags":16953,"__hash__":16954},"topics/bun/spawning-processes.md","Spawning Processes",{"type":8,"value":16730,"toc":16945},[16731,16734,16943],[11,16732,16728],{"id":16733},"spawning-processes",[25,16735,16737],{"className":571,"code":16736,"language":573,"meta":30,"style":30},"// Simple spawn\nconst proc = Bun.spawn([\"echo\", \"Hello\"]);\nconst output = await new Response(proc.stdout).text();\n\n// With options\nconst proc = Bun.spawn([\"ls\", \"-la\"], {\n  cwd: \"/path/to/dir\",\n  env: { ...process.env, MY_VAR: \"value\" },\n  stdout: \"pipe\",\n  stderr: \"pipe\",\n});\n\n// Wait for completion\nawait proc.exited;\nconsole.log(proc.exitCode);\n\n// Synchronous spawn\nconst result = Bun.spawnSync([\"echo\", \"Hello\"]);\nconsole.log(result.stdout.toString());\n",[20,16738,16739,16744,16769,16791,16795,16799,16824,16834,16850,16860,16869,16873,16877,16882,16889,16898,16902,16907,16930],{"__ignoreMap":30},[34,16740,16741],{"class":36,"line":37},[34,16742,16743],{"class":40},"// Simple spawn\n",[34,16745,16746,16748,16751,16753,16755,16758,16760,16763,16765,16767],{"class":36,"line":44},[34,16747,14676],{"class":580},[34,16749,16750],{"class":50}," proc",[34,16752,683],{"class":580},[34,16754,14982],{"class":181},[34,16756,16757],{"class":47},"spawn",[34,16759,3593],{"class":181},[34,16761,16762],{"class":54},"\"echo\"",[34,16764,1798],{"class":181},[34,16766,15564],{"class":54},[34,16768,3599],{"class":181},[34,16770,16771,16773,16776,16778,16780,16782,16784,16787,16789],{"class":36,"line":58},[34,16772,14676],{"class":580},[34,16774,16775],{"class":50}," output",[34,16777,683],{"class":580},[34,16779,14763],{"class":580},[34,16781,809],{"class":580},[34,16783,15463],{"class":47},[34,16785,16786],{"class":181},"(proc.stdout).",[34,16788,780],{"class":47},[34,16790,851],{"class":181},[34,16792,16793],{"class":36,"line":65},[34,16794,62],{"emptyLinePlaceholder":61},[34,16796,16797],{"class":36,"line":71},[34,16798,16456],{"class":40},[34,16800,16801,16803,16805,16807,16809,16811,16813,16816,16818,16821],{"class":36,"line":77},[34,16802,14676],{"class":580},[34,16804,16750],{"class":50},[34,16806,683],{"class":580},[34,16808,14982],{"class":181},[34,16810,16757],{"class":47},[34,16812,3593],{"class":181},[34,16814,16815],{"class":54},"\"ls\"",[34,16817,1798],{"class":181},[34,16819,16820],{"class":54},"\"-la\"",[34,16822,16823],{"class":181},"], {\n",[34,16825,16826,16829,16832],{"class":36,"line":82},[34,16827,16828],{"class":181},"  cwd: ",[34,16830,16831],{"class":54},"\"/path/to/dir\"",[34,16833,624],{"class":181},[34,16835,16836,16839,16842,16845,16848],{"class":36,"line":88},[34,16837,16838],{"class":181},"  env: { ",[34,16840,16841],{"class":580},"...",[34,16843,16844],{"class":181},"process.env, MY_VAR: ",[34,16846,16847],{"class":54},"\"value\"",[34,16849,14846],{"class":181},[34,16851,16852,16855,16858],{"class":36,"line":242},[34,16853,16854],{"class":181},"  stdout: ",[34,16856,16857],{"class":54},"\"pipe\"",[34,16859,624],{"class":181},[34,16861,16862,16865,16867],{"class":36,"line":250},[34,16863,16864],{"class":181},"  stderr: ",[34,16866,16857],{"class":54},[34,16868,624],{"class":181},[34,16870,16871],{"class":36,"line":263},[34,16872,14873],{"class":181},[34,16874,16875],{"class":36,"line":275},[34,16876,62],{"emptyLinePlaceholder":61},[34,16878,16879],{"class":36,"line":700},[34,16880,16881],{"class":40},"// Wait for completion\n",[34,16883,16884,16886],{"class":36,"line":706},[34,16885,15062],{"class":580},[34,16887,16888],{"class":181}," proc.exited;\n",[34,16890,16891,16893,16895],{"class":36,"line":715},[34,16892,15183],{"class":181},[34,16894,2424],{"class":47},[34,16896,16897],{"class":181},"(proc.exitCode);\n",[34,16899,16900],{"class":36,"line":725},[34,16901,62],{"emptyLinePlaceholder":61},[34,16903,16904],{"class":36,"line":734},[34,16905,16906],{"class":40},"// Synchronous spawn\n",[34,16908,16909,16911,16913,16915,16917,16920,16922,16924,16926,16928],{"class":36,"line":742},[34,16910,14676],{"class":580},[34,16912,11103],{"class":50},[34,16914,683],{"class":580},[34,16916,14982],{"class":181},[34,16918,16919],{"class":47},"spawnSync",[34,16921,3593],{"class":181},[34,16923,16762],{"class":54},[34,16925,1798],{"class":181},[34,16927,15564],{"class":54},[34,16929,3599],{"class":181},[34,16931,16932,16934,16936,16939,16941],{"class":36,"line":748},[34,16933,15183],{"class":181},[34,16935,2424],{"class":47},[34,16937,16938],{"class":181},"(result.stdout.",[34,16940,13938],{"class":47},[34,16942,4343],{"class":181},[388,16944,15226],{},{"title":30,"searchDepth":44,"depth":44,"links":16946},[16947],{"id":16733,"depth":44,"text":16728},"Spawning Processes in Bun.",{},"/bun/spawning-processes",{"title":16728,"description":16948},"bun/spawning-processes",[14169,8606,573,14296,14297,5591],"5Hw-iC5oMV5elKotPYTu3VGsSzWqw7M-4C64EinHsO4",{"id":16956,"title":16957,"body":16958,"date":402,"description":17206,"extension":404,"meta":17207,"navigation":61,"order":700,"path":17208,"seo":17209,"stem":17210,"subject":14169,"tags":17211,"__hash__":17212},"topics/bun/sqlite-database.md","SQLite Database",{"type":8,"value":16959,"toc":17203},[16960,16963,17200],[11,16961,16957],{"id":16962},"sqlite-database",[25,16964,16966],{"className":571,"code":16965,"language":573,"meta":30,"style":30},"import { Database } from \"bun:sqlite\";\n\n// Open database\nconst db = new Database(\"mydb.sqlite\");\n\n// Create table\ndb.run(`\n  CREATE TABLE IF NOT EXISTS users (\n    id INTEGER PRIMARY KEY AUTOINCREMENT,\n    name TEXT,\n    email TEXT UNIQUE\n  )\n`);\n\n// Insert data\nconst insert = db.prepare(\"INSERT INTO users (name, email) VALUES (?, ?)\");\ninsert.run(\"John\", \"john@example.com\");\n\n// Query data\nconst query = db.prepare(\"SELECT * FROM users WHERE name = ?\");\nconst user = query.get(\"John\");\nconst allUsers = query.all(\"John\");\n\n// Close database\ndb.close();\n",[20,16967,16968,16982,16986,16991,17012,17016,17021,17032,17037,17042,17047,17052,17057,17063,17067,17072,17094,17113,17117,17122,17142,17162,17182,17186,17191],{"__ignoreMap":30},[34,16969,16970,16972,16975,16977,16980],{"class":36,"line":37},[34,16971,581],{"class":580},[34,16973,16974],{"class":181}," { Database } ",[34,16976,587],{"class":580},[34,16978,16979],{"class":54}," \"bun:sqlite\"",[34,16981,593],{"class":181},[34,16983,16984],{"class":36,"line":44},[34,16985,62],{"emptyLinePlaceholder":61},[34,16987,16988],{"class":36,"line":58},[34,16989,16990],{"class":40},"// Open database\n",[34,16992,16993,16995,16998,17000,17002,17005,17007,17010],{"class":36,"line":65},[34,16994,14676],{"class":580},[34,16996,16997],{"class":50}," db",[34,16999,683],{"class":580},[34,17001,809],{"class":580},[34,17003,17004],{"class":47}," Database",[34,17006,1607],{"class":181},[34,17008,17009],{"class":54},"\"mydb.sqlite\"",[34,17011,1586],{"class":181},[34,17013,17014],{"class":36,"line":71},[34,17015,62],{"emptyLinePlaceholder":61},[34,17017,17018],{"class":36,"line":77},[34,17019,17020],{"class":40},"// Create table\n",[34,17022,17023,17026,17028,17030],{"class":36,"line":82},[34,17024,17025],{"class":181},"db.",[34,17027,14592],{"class":47},[34,17029,1607],{"class":181},[34,17031,739],{"class":54},[34,17033,17034],{"class":36,"line":88},[34,17035,17036],{"class":54},"  CREATE TABLE IF NOT EXISTS users (\n",[34,17038,17039],{"class":36,"line":242},[34,17040,17041],{"class":54},"    id INTEGER PRIMARY KEY AUTOINCREMENT,\n",[34,17043,17044],{"class":36,"line":250},[34,17045,17046],{"class":54},"    name TEXT,\n",[34,17048,17049],{"class":36,"line":263},[34,17050,17051],{"class":54},"    email TEXT UNIQUE\n",[34,17053,17054],{"class":36,"line":275},[34,17055,17056],{"class":54},"  )\n",[34,17058,17059,17061],{"class":36,"line":700},[34,17060,13402],{"class":54},[34,17062,1586],{"class":181},[34,17064,17065],{"class":36,"line":706},[34,17066,62],{"emptyLinePlaceholder":61},[34,17068,17069],{"class":36,"line":715},[34,17070,17071],{"class":40},"// Insert data\n",[34,17073,17074,17076,17079,17081,17084,17087,17089,17092],{"class":36,"line":725},[34,17075,14676],{"class":580},[34,17077,17078],{"class":50}," insert",[34,17080,683],{"class":580},[34,17082,17083],{"class":181}," db.",[34,17085,17086],{"class":47},"prepare",[34,17088,1607],{"class":181},[34,17090,17091],{"class":54},"\"INSERT INTO users (name, email) VALUES (?, ?)\"",[34,17093,1586],{"class":181},[34,17095,17096,17099,17101,17103,17106,17108,17111],{"class":36,"line":734},[34,17097,17098],{"class":181},"insert.",[34,17100,14592],{"class":47},[34,17102,1607],{"class":181},[34,17104,17105],{"class":54},"\"John\"",[34,17107,1798],{"class":181},[34,17109,17110],{"class":54},"\"john@example.com\"",[34,17112,1586],{"class":181},[34,17114,17115],{"class":36,"line":742},[34,17116,62],{"emptyLinePlaceholder":61},[34,17118,17119],{"class":36,"line":748},[34,17120,17121],{"class":40},"// Query data\n",[34,17123,17124,17126,17129,17131,17133,17135,17137,17140],{"class":36,"line":754},[34,17125,14676],{"class":580},[34,17127,17128],{"class":50}," query",[34,17130,683],{"class":580},[34,17132,17083],{"class":181},[34,17134,17086],{"class":47},[34,17136,1607],{"class":181},[34,17138,17139],{"class":54},"\"SELECT * FROM users WHERE name = ?\"",[34,17141,1586],{"class":181},[34,17143,17144,17146,17149,17151,17154,17156,17158,17160],{"class":36,"line":759},[34,17145,14676],{"class":580},[34,17147,17148],{"class":50}," user",[34,17150,683],{"class":580},[34,17152,17153],{"class":181}," query.",[34,17155,1573],{"class":47},[34,17157,1607],{"class":181},[34,17159,17105],{"class":54},[34,17161,1586],{"class":181},[34,17163,17164,17166,17169,17171,17173,17176,17178,17180],{"class":36,"line":771},[34,17165,14676],{"class":580},[34,17167,17168],{"class":50}," allUsers",[34,17170,683],{"class":580},[34,17172,17153],{"class":181},[34,17174,17175],{"class":47},"all",[34,17177,1607],{"class":181},[34,17179,17105],{"class":54},[34,17181,1586],{"class":181},[34,17183,17184],{"class":36,"line":794},[34,17185,62],{"emptyLinePlaceholder":61},[34,17187,17188],{"class":36,"line":824},[34,17189,17190],{"class":40},"// Close database\n",[34,17192,17193,17195,17198],{"class":36,"line":830},[34,17194,17025],{"class":181},[34,17196,17197],{"class":47},"close",[34,17199,851],{"class":181},[388,17201,17202],{},"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 .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}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":17204},[17205],{"id":16962,"depth":44,"text":16957},"SQLite Database in Bun.",{},"/bun/sqlite-database",{"title":16957,"description":17206},"bun/sqlite-database",[14169,8606,573,14296,14297,5591],"l5IOSRwfG6SH1vrogPtOzbUZvt72cV3QVDWXZtiZmEw",{"id":17214,"title":16095,"body":17215,"date":402,"description":17526,"extension":404,"meta":17527,"navigation":61,"order":275,"path":17528,"seo":17529,"stem":17530,"subject":14169,"tags":17531,"__hash__":17532},"topics/bun/testing.md",{"type":8,"value":17216,"toc":17523},[17217,17219,17450,17520],[11,17218,16095],{"id":16094},[25,17220,17222],{"className":571,"code":17221,"language":573,"meta":30,"style":30},"// test.ts\nimport { expect, test, describe, beforeEach } from \"bun:test\";\n\ntest(\"basic test\", () => {\n  expect(1 + 1).toBe(2);\n});\n\ndescribe(\"group\", () => {\n  beforeEach(() => {\n    // Setup\n  });\n\n  test(\"nested test\", () => {\n    expect(\"hello\").toContain(\"ell\");\n  });\n});\n\n// Async test\ntest(\"async test\", async () => {\n  const response = await fetch(\"https://api.example.com\");\n  expect(response.ok).toBe(true);\n});\n",[20,17223,17224,17229,17243,17247,17263,17287,17291,17295,17311,17322,17327,17331,17335,17351,17373,17377,17381,17385,17390,17411,17431,17446],{"__ignoreMap":30},[34,17225,17226],{"class":36,"line":37},[34,17227,17228],{"class":40},"// test.ts\n",[34,17230,17231,17233,17236,17238,17241],{"class":36,"line":44},[34,17232,581],{"class":580},[34,17234,17235],{"class":181}," { expect, test, describe, beforeEach } ",[34,17237,587],{"class":580},[34,17239,17240],{"class":54}," \"bun:test\"",[34,17242,593],{"class":181},[34,17244,17245],{"class":36,"line":58},[34,17246,62],{"emptyLinePlaceholder":61},[34,17248,17249,17251,17253,17256,17259,17261],{"class":36,"line":65},[34,17250,14618],{"class":47},[34,17252,1607],{"class":181},[34,17254,17255],{"class":54},"\"basic test\"",[34,17257,17258],{"class":181},", () ",[34,17260,3361],{"class":580},[34,17262,661],{"class":181},[34,17264,17265,17268,17270,17272,17274,17276,17278,17281,17283,17285],{"class":36,"line":71},[34,17266,17267],{"class":47},"  expect",[34,17269,1607],{"class":181},[34,17271,8318],{"class":50},[34,17273,11537],{"class":580},[34,17275,3567],{"class":50},[34,17277,1876],{"class":181},[34,17279,17280],{"class":47},"toBe",[34,17282,1607],{"class":181},[34,17284,8324],{"class":50},[34,17286,1586],{"class":181},[34,17288,17289],{"class":36,"line":77},[34,17290,14873],{"class":181},[34,17292,17293],{"class":36,"line":82},[34,17294,62],{"emptyLinePlaceholder":61},[34,17296,17297,17300,17302,17305,17307,17309],{"class":36,"line":88},[34,17298,17299],{"class":47},"describe",[34,17301,1607],{"class":181},[34,17303,17304],{"class":54},"\"group\"",[34,17306,17258],{"class":181},[34,17308,3361],{"class":580},[34,17310,661],{"class":181},[34,17312,17313,17316,17318,17320],{"class":36,"line":242},[34,17314,17315],{"class":47},"  beforeEach",[34,17317,4275],{"class":181},[34,17319,3361],{"class":580},[34,17321,661],{"class":181},[34,17323,17324],{"class":36,"line":250},[34,17325,17326],{"class":40},"    // Setup\n",[34,17328,17329],{"class":36,"line":263},[34,17330,3186],{"class":181},[34,17332,17333],{"class":36,"line":275},[34,17334,62],{"emptyLinePlaceholder":61},[34,17336,17337,17340,17342,17345,17347,17349],{"class":36,"line":700},[34,17338,17339],{"class":47},"  test",[34,17341,1607],{"class":181},[34,17343,17344],{"class":54},"\"nested test\"",[34,17346,17258],{"class":181},[34,17348,3361],{"class":580},[34,17350,661],{"class":181},[34,17352,17353,17356,17358,17361,17363,17366,17368,17371],{"class":36,"line":706},[34,17354,17355],{"class":47},"    expect",[34,17357,1607],{"class":181},[34,17359,17360],{"class":54},"\"hello\"",[34,17362,1876],{"class":181},[34,17364,17365],{"class":47},"toContain",[34,17367,1607],{"class":181},[34,17369,17370],{"class":54},"\"ell\"",[34,17372,1586],{"class":181},[34,17374,17375],{"class":36,"line":715},[34,17376,3186],{"class":181},[34,17378,17379],{"class":36,"line":725},[34,17380,14873],{"class":181},[34,17382,17383],{"class":36,"line":734},[34,17384,62],{"emptyLinePlaceholder":61},[34,17386,17387],{"class":36,"line":742},[34,17388,17389],{"class":40},"// Async test\n",[34,17391,17392,17394,17396,17399,17401,17404,17407,17409],{"class":36,"line":748},[34,17393,14618],{"class":47},[34,17395,1607],{"class":181},[34,17397,17398],{"class":54},"\"async test\"",[34,17400,1798],{"class":181},[34,17402,17403],{"class":580},"async",[34,17405,17406],{"class":181}," () ",[34,17408,3361],{"class":580},[34,17410,661],{"class":181},[34,17412,17413,17416,17418,17420,17422,17424,17426,17429],{"class":36,"line":754},[34,17414,17415],{"class":580},"  const",[34,17417,14758],{"class":50},[34,17419,683],{"class":580},[34,17421,14763],{"class":580},[34,17423,14766],{"class":47},[34,17425,1607],{"class":181},[34,17427,17428],{"class":54},"\"https://api.example.com\"",[34,17430,1586],{"class":181},[34,17432,17433,17435,17438,17440,17442,17444],{"class":36,"line":759},[34,17434,17267],{"class":47},[34,17436,17437],{"class":181},"(response.ok).",[34,17439,17280],{"class":47},[34,17441,1607],{"class":181},[34,17443,632],{"class":50},[34,17445,1586],{"class":181},[34,17447,17448],{"class":36,"line":771},[34,17449,14873],{"class":181},[25,17451,17453],{"className":27,"code":17452,"language":29,"meta":30,"style":30},"# Run tests\nbun test\n\n# Run specific test file\nbun test test.ts\n\n# Watch mode\nbun test --watch\n\n# With coverage\nbun test --coverage\n",[20,17454,17455,17460,17466,17470,17475,17485,17489,17493,17502,17506,17511],{"__ignoreMap":30},[34,17456,17457],{"class":36,"line":37},[34,17458,17459],{"class":40},"# Run tests\n",[34,17461,17462,17464],{"class":36,"line":44},[34,17463,14169],{"class":47},[34,17465,16110],{"class":54},[34,17467,17468],{"class":36,"line":58},[34,17469,62],{"emptyLinePlaceholder":61},[34,17471,17472],{"class":36,"line":65},[34,17473,17474],{"class":40},"# Run specific test file\n",[34,17476,17477,17479,17482],{"class":36,"line":71},[34,17478,14169],{"class":47},[34,17480,17481],{"class":54}," test",[34,17483,17484],{"class":54}," test.ts\n",[34,17486,17487],{"class":36,"line":77},[34,17488,62],{"emptyLinePlaceholder":61},[34,17490,17491],{"class":36,"line":82},[34,17492,16568],{"class":40},[34,17494,17495,17497,17499],{"class":36,"line":88},[34,17496,14169],{"class":47},[34,17498,17481],{"class":54},[34,17500,17501],{"class":50}," --watch\n",[34,17503,17504],{"class":36,"line":242},[34,17505,62],{"emptyLinePlaceholder":61},[34,17507,17508],{"class":36,"line":250},[34,17509,17510],{"class":40},"# With coverage\n",[34,17512,17513,17515,17517],{"class":36,"line":263},[34,17514,14169],{"class":47},[34,17516,17481],{"class":54},[34,17518,17519],{"class":50}," --coverage\n",[388,17521,17522],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":17524},[17525],{"id":16094,"depth":44,"text":16095},"Testing in Bun.",{},"/bun/testing",{"title":16095,"description":17526},"bun/testing",[14169,8606,573,14296,14297,5591],"BBKsgD-_GGaUUJWgOMNuf6GO7msKXwHeAG1RT-cCfRM",{"id":17534,"title":16121,"body":17535,"date":402,"description":17669,"extension":404,"meta":17670,"navigation":61,"order":734,"path":17671,"seo":17672,"stem":17673,"subject":14169,"tags":17674,"__hash__":17675},"topics/bun/typescript-support.md",{"type":8,"value":17536,"toc":17666},[17537,17539,17663],[11,17538,16121],{"id":16120},[25,17540,17542],{"className":571,"code":17541,"language":573,"meta":30,"style":30},"// Bun supports TypeScript out of the box\n// No configuration needed!\n\ninterface User {\n  name: string;\n  age: number;\n}\n\nconst user: User = {\n  name: \"John\",\n  age: 30,\n};\n\n// JSX also works out of the box\nconst element = \u003Cdiv>Hello, World!\u003C/div>;\n",[20,17543,17544,17549,17554,17558,17567,17577,17588,17592,17596,17610,17618,17628,17633,17637,17642],{"__ignoreMap":30},[34,17545,17546],{"class":36,"line":37},[34,17547,17548],{"class":40},"// Bun supports TypeScript out of the box\n",[34,17550,17551],{"class":36,"line":44},[34,17552,17553],{"class":40},"// No configuration needed!\n",[34,17555,17556],{"class":36,"line":58},[34,17557,62],{"emptyLinePlaceholder":61},[34,17559,17560,17563,17565],{"class":36,"line":65},[34,17561,17562],{"class":580},"interface",[34,17564,3950],{"class":47},[34,17566,661],{"class":181},[34,17568,17569,17571,17573,17575],{"class":36,"line":71},[34,17570,7350],{"class":675},[34,17572,165],{"class":580},[34,17574,680],{"class":50},[34,17576,593],{"class":181},[34,17578,17579,17582,17584,17586],{"class":36,"line":77},[34,17580,17581],{"class":675},"  age",[34,17583,165],{"class":580},[34,17585,2741],{"class":50},[34,17587,593],{"class":181},[34,17589,17590],{"class":36,"line":82},[34,17591,693],{"class":181},[34,17593,17594],{"class":36,"line":88},[34,17595,62],{"emptyLinePlaceholder":61},[34,17597,17598,17600,17602,17604,17606,17608],{"class":36,"line":242},[34,17599,14676],{"class":580},[34,17601,17148],{"class":50},[34,17603,165],{"class":580},[34,17605,3950],{"class":47},[34,17607,683],{"class":580},[34,17609,661],{"class":181},[34,17611,17612,17614,17616],{"class":36,"line":250},[34,17613,2830],{"class":181},[34,17615,17105],{"class":54},[34,17617,624],{"class":181},[34,17619,17620,17623,17626],{"class":36,"line":263},[34,17621,17622],{"class":181},"  age: ",[34,17624,17625],{"class":50},"30",[34,17627,624],{"class":181},[34,17629,17630],{"class":36,"line":275},[34,17631,17632],{"class":181},"};\n",[34,17634,17635],{"class":36,"line":700},[34,17636,62],{"emptyLinePlaceholder":61},[34,17638,17639],{"class":36,"line":706},[34,17640,17641],{"class":40},"// JSX also works out of the box\n",[34,17643,17644,17646,17649,17651,17653,17655,17658,17660],{"class":36,"line":715},[34,17645,14676],{"class":580},[34,17647,17648],{"class":50}," element",[34,17650,683],{"class":580},[34,17652,5470],{"class":181},[34,17654,1240],{"class":47},[34,17656,17657],{"class":181},">Hello, ",[34,17659,12737],{"class":50},[34,17661,17662],{"class":181},"!\u003C/div>;\n",[388,17664,17665],{},"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 .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 .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 .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);}",{"title":30,"searchDepth":44,"depth":44,"links":17667},[17668],{"id":16120,"depth":44,"text":16121},"TypeScript Support in Bun.",{},"/bun/typescript-support",{"title":16121,"description":17669},"bun/typescript-support",[14169,8606,573,14296,14297,5591],"Ak-Bl8FpbUsulBhgdySU-hbipXDPEtP11AG-i-FhWMI",{"id":17677,"title":17678,"body":17679,"date":402,"description":17744,"extension":404,"meta":17745,"navigation":61,"order":65,"path":17746,"seo":17747,"stem":17748,"subject":14169,"tags":17749,"__hash__":17750},"topics/bun/updating-bun.md","Updating Bun",{"type":8,"value":17680,"toc":17741},[17681,17684,17739],[11,17682,17678],{"id":17683},"updating-bun",[25,17685,17687],{"className":27,"code":17686,"language":29,"meta":30,"style":30},"# Update to latest version\nbun upgrade\n\n# Update to specific version\nbun upgrade --version 1.0.0\n\n# Update to canary (nightly) build\nbun upgrade --canary\n",[20,17688,17689,17694,17700,17704,17709,17721,17725,17730],{"__ignoreMap":30},[34,17690,17691],{"class":36,"line":37},[34,17692,17693],{"class":40},"# Update to latest version\n",[34,17695,17696,17698],{"class":36,"line":44},[34,17697,14169],{"class":47},[34,17699,6986],{"class":54},[34,17701,17702],{"class":36,"line":58},[34,17703,62],{"emptyLinePlaceholder":61},[34,17705,17706],{"class":36,"line":65},[34,17707,17708],{"class":40},"# Update to specific version\n",[34,17710,17711,17713,17715,17718],{"class":36,"line":71},[34,17712,14169],{"class":47},[34,17714,5662],{"class":54},[34,17716,17717],{"class":50}," --version",[34,17719,17720],{"class":50}," 1.0.0\n",[34,17722,17723],{"class":36,"line":77},[34,17724,62],{"emptyLinePlaceholder":61},[34,17726,17727],{"class":36,"line":82},[34,17728,17729],{"class":40},"# Update to canary (nightly) build\n",[34,17731,17732,17734,17736],{"class":36,"line":88},[34,17733,14169],{"class":47},[34,17735,5662],{"class":54},[34,17737,17738],{"class":50}," --canary\n",[388,17740,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":17742},[17743],{"id":17683,"depth":44,"text":17678},"Updating Bun in Bun.",{},"/bun/updating-bun",{"title":17678,"description":17744},"bun/updating-bun",[14169,8606,573,14296,14297,5591],"kq09oR5JrAlx4Mo8kfFr2Q4ekwuLHP0Qzd1OWvb7VSw",{"id":17752,"title":10061,"body":17753,"date":402,"description":18131,"extension":404,"meta":18132,"navigation":61,"order":88,"path":18133,"seo":18134,"stem":18135,"subject":4377,"tags":18136,"__hash__":18140},"topics/c/arrays.md",{"type":8,"value":17754,"toc":18128},[17755,17757,18125],[11,17756,10061],{"id":10066},[25,17758,17761],{"className":17759,"code":17760,"language":4377,"meta":30,"style":30},"language-c shiki shiki-themes github-light github-dark","// Array declaration\nint numbers[5];                  // Uninitialized array\nint scores[5] = {90, 85, 88, 92, 78}; // Initialized array\nint values[] = {1, 2, 3};        // Size inferred (3)\n\n// Accessing elements\nint first = scores[0];           // First element (index 0)\nscores[2] = 95;                  // Modify element\n\n// Array size\nint size = sizeof(scores) / sizeof(scores[0]); // Calculate length\n\n// Multidimensional arrays\nint matrix[3][3] = {\n    {1, 2, 3},\n    {4, 5, 6},\n    {7, 8, 9}\n};\nint value = matrix[1][2];        // Access element (6)\n\n// Arrays and pointers\nint *p = numbers;                // Array name is pointer to first element\nprintf(\"%d\\n\", *(p + 2));        // Access third element\n",[20,17762,17763,17768,17786,17833,17862,17866,17871,17891,17913,17917,17922,17955,17959,17964,17986,18004,18022,18041,18045,18068,18072,18077,18095],{"__ignoreMap":30},[34,17764,17765],{"class":36,"line":37},[34,17766,17767],{"class":40},"// Array declaration\n",[34,17769,17770,17773,17776,17778,17780,17783],{"class":36,"line":44},[34,17771,17772],{"class":580},"int",[34,17774,17775],{"class":675}," numbers",[34,17777,10260],{"class":181},[34,17779,2778],{"class":50},[34,17781,17782],{"class":181},"];",[34,17784,17785],{"class":40},"                  // Uninitialized array\n",[34,17787,17788,17790,17793,17795,17797,17800,17802,17804,17807,17809,17812,17814,17817,17819,17822,17824,17827,17830],{"class":36,"line":58},[34,17789,17772],{"class":580},[34,17791,17792],{"class":675}," scores",[34,17794,10260],{"class":181},[34,17796,2778],{"class":50},[34,17798,17799],{"class":181},"] ",[34,17801,1301],{"class":580},[34,17803,11838],{"class":181},[34,17805,17806],{"class":50},"90",[34,17808,1798],{"class":181},[34,17810,17811],{"class":50},"85",[34,17813,1798],{"class":181},[34,17815,17816],{"class":50},"88",[34,17818,1798],{"class":181},[34,17820,17821],{"class":50},"92",[34,17823,1798],{"class":181},[34,17825,17826],{"class":50},"78",[34,17828,17829],{"class":181},"};",[34,17831,17832],{"class":40}," // Initialized array\n",[34,17834,17835,17837,17840,17843,17845,17847,17849,17851,17853,17855,17857,17859],{"class":36,"line":65},[34,17836,17772],{"class":580},[34,17838,17839],{"class":181}," values",[34,17841,17842],{"class":580},"[]",[34,17844,683],{"class":580},[34,17846,11838],{"class":181},[34,17848,8318],{"class":50},[34,17850,1798],{"class":181},[34,17852,8324],{"class":50},[34,17854,1798],{"class":181},[34,17856,3162],{"class":50},[34,17858,17829],{"class":181},[34,17860,17861],{"class":40},"        // Size inferred (3)\n",[34,17863,17864],{"class":36,"line":71},[34,17865,62],{"emptyLinePlaceholder":61},[34,17867,17868],{"class":36,"line":77},[34,17869,17870],{"class":40},"// Accessing elements\n",[34,17872,17873,17875,17878,17880,17882,17884,17886,17888],{"class":36,"line":82},[34,17874,17772],{"class":580},[34,17876,17877],{"class":181}," first ",[34,17879,1301],{"class":580},[34,17881,17792],{"class":675},[34,17883,10260],{"class":181},[34,17885,2773],{"class":50},[34,17887,17782],{"class":181},[34,17889,17890],{"class":40},"           // First element (index 0)\n",[34,17892,17893,17896,17898,17900,17902,17904,17907,17910],{"class":36,"line":88},[34,17894,17895],{"class":675},"scores",[34,17897,10260],{"class":181},[34,17899,8324],{"class":50},[34,17901,17799],{"class":181},[34,17903,1301],{"class":580},[34,17905,17906],{"class":50}," 95",[34,17908,17909],{"class":181},";",[34,17911,17912],{"class":40},"                  // Modify element\n",[34,17914,17915],{"class":36,"line":242},[34,17916,62],{"emptyLinePlaceholder":61},[34,17918,17919],{"class":36,"line":250},[34,17920,17921],{"class":40},"// Array size\n",[34,17923,17924,17926,17929,17931,17934,17937,17939,17941,17943,17945,17947,17949,17952],{"class":36,"line":263},[34,17925,17772],{"class":580},[34,17927,17928],{"class":181}," size ",[34,17930,1301],{"class":580},[34,17932,17933],{"class":580}," sizeof",[34,17935,17936],{"class":181},"(scores) ",[34,17938,12734],{"class":580},[34,17940,17933],{"class":580},[34,17942,1607],{"class":181},[34,17944,17895],{"class":675},[34,17946,10260],{"class":181},[34,17948,2773],{"class":50},[34,17950,17951],{"class":181},"]);",[34,17953,17954],{"class":40}," // Calculate length\n",[34,17956,17957],{"class":36,"line":275},[34,17958,62],{"emptyLinePlaceholder":61},[34,17960,17961],{"class":36,"line":700},[34,17962,17963],{"class":40},"// Multidimensional arrays\n",[34,17965,17966,17968,17971,17973,17975,17978,17980,17982,17984],{"class":36,"line":706},[34,17967,17772],{"class":580},[34,17969,17970],{"class":675}," matrix",[34,17972,10260],{"class":181},[34,17974,3162],{"class":50},[34,17976,17977],{"class":181},"][",[34,17979,3162],{"class":50},[34,17981,17799],{"class":181},[34,17983,1301],{"class":580},[34,17985,661],{"class":181},[34,17987,17988,17991,17993,17995,17997,17999,18001],{"class":36,"line":715},[34,17989,17990],{"class":181},"    {",[34,17992,8318],{"class":50},[34,17994,1798],{"class":181},[34,17996,8324],{"class":50},[34,17998,1798],{"class":181},[34,18000,3162],{"class":50},[34,18002,18003],{"class":181},"},\n",[34,18005,18006,18008,18011,18013,18015,18017,18020],{"class":36,"line":725},[34,18007,17990],{"class":181},[34,18009,18010],{"class":50},"4",[34,18012,1798],{"class":181},[34,18014,2778],{"class":50},[34,18016,1798],{"class":181},[34,18018,18019],{"class":50},"6",[34,18021,18003],{"class":181},[34,18023,18024,18026,18029,18031,18034,18036,18039],{"class":36,"line":734},[34,18025,17990],{"class":181},[34,18027,18028],{"class":50},"7",[34,18030,1798],{"class":181},[34,18032,18033],{"class":50},"8",[34,18035,1798],{"class":181},[34,18037,18038],{"class":50},"9",[34,18040,693],{"class":181},[34,18042,18043],{"class":36,"line":742},[34,18044,17632],{"class":181},[34,18046,18047,18049,18051,18053,18055,18057,18059,18061,18063,18065],{"class":36,"line":748},[34,18048,17772],{"class":580},[34,18050,8271],{"class":181},[34,18052,1301],{"class":580},[34,18054,17970],{"class":675},[34,18056,10260],{"class":181},[34,18058,8318],{"class":50},[34,18060,17977],{"class":181},[34,18062,8324],{"class":50},[34,18064,17782],{"class":181},[34,18066,18067],{"class":40},"        // Access element (6)\n",[34,18069,18070],{"class":36,"line":754},[34,18071,62],{"emptyLinePlaceholder":61},[34,18073,18074],{"class":36,"line":759},[34,18075,18076],{"class":40},"// Arrays and pointers\n",[34,18078,18079,18081,18084,18087,18089,18092],{"class":36,"line":771},[34,18080,17772],{"class":580},[34,18082,18083],{"class":580}," *",[34,18085,18086],{"class":181},"p ",[34,18088,1301],{"class":580},[34,18090,18091],{"class":181}," numbers;",[34,18093,18094],{"class":40},"                // Array name is pointer to first element\n",[34,18096,18097,18099,18101,18103,18106,18108,18110,18112,18115,18117,18119,18122],{"class":36,"line":794},[34,18098,11303],{"class":47},[34,18100,1607],{"class":181},[34,18102,10389],{"class":54},[34,18104,18105],{"class":50},"%d\\n",[34,18107,10389],{"class":54},[34,18109,1798],{"class":181},[34,18111,4289],{"class":580},[34,18113,18114],{"class":181},"(p ",[34,18116,2940],{"class":580},[34,18118,4292],{"class":50},[34,18120,18121],{"class":181},"));",[34,18123,18124],{"class":40},"        // Access third element\n",[388,18126,18127],{},"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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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 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);}",{"title":30,"searchDepth":44,"depth":44,"links":18129},[18130],{"id":10066,"depth":44,"text":10061},"Arrays in C.",{},"/c/arrays",{"title":10061,"description":18131},"c/arrays",[4377,18137,18138,18139],"systems","programming","low-level","_dLvGnCSi9U44kvWMDUhZjPtbPVeYGopZS6cTJC3MJc",{"id":18142,"title":18143,"body":18144,"date":402,"description":18546,"extension":404,"meta":18547,"navigation":61,"order":725,"path":18548,"seo":18549,"stem":18550,"subject":4377,"tags":18551,"__hash__":18552},"topics/c/common-patterns.md","Common Patterns",{"type":8,"value":18145,"toc":18543},[18146,18149,18540],[11,18147,18143],{"id":18148},"common-patterns",[25,18150,18152],{"className":17759,"code":18151,"language":4377,"meta":30,"style":30},"// Error handling\nif (ptr == NULL) {\n    fprintf(stderr, \"Error: %s\\n\", strerror(errno));\n    return EXIT_FAILURE;\n}\n\n// Command-line arguments\nint main(int argc, char *argv[]) {\n    for (int i = 0; i \u003C argc; i++) {\n        printf(\"Arg %d: %s\\n\", i, argv[i]);\n    }\n    return 0;\n}\n\n// Dynamic array\ntypedef struct {\n    int *data;\n    int size;\n    int capacity;\n} DynamicArray;\n\nvoid append(DynamicArray *arr, int value) {\n    if (arr->size >= arr->capacity) {\n        arr->capacity *= 2;\n        arr->data = realloc(arr->data, arr->capacity * sizeof(int));\n    }\n    arr->data[arr->size++] = value;\n}\n\n// Swap function\nvoid swap(int *a, int *b) {\n    int temp = *a;\n    *a = *b;\n    *b = temp;\n}\n",[20,18153,18154,18159,18174,18198,18205,18209,18213,18218,18246,18273,18300,18304,18312,18316,18320,18325,18335,18345,18352,18359,18364,18368,18392,18405,18417,18440,18444,18457,18461,18465,18470,18495,18509,18524,18536],{"__ignoreMap":30},[34,18155,18156],{"class":36,"line":37},[34,18157,18158],{"class":40},"// Error handling\n",[34,18160,18161,18163,18166,18169,18172],{"class":36,"line":44},[34,18162,10383],{"class":580},[34,18164,18165],{"class":181}," (ptr ",[34,18167,18168],{"class":580},"==",[34,18170,18171],{"class":50}," NULL",[34,18173,2416],{"class":181},[34,18175,18176,18179,18182,18185,18188,18190,18192,18195],{"class":36,"line":58},[34,18177,18178],{"class":47},"    fprintf",[34,18180,18181],{"class":181},"(stderr, ",[34,18183,18184],{"class":54},"\"Error: ",[34,18186,18187],{"class":50},"%s\\n",[34,18189,10389],{"class":54},[34,18191,1798],{"class":181},[34,18193,18194],{"class":47},"strerror",[34,18196,18197],{"class":181},"(errno));\n",[34,18199,18200,18202],{"class":36,"line":65},[34,18201,1564],{"class":580},[34,18203,18204],{"class":181}," EXIT_FAILURE;\n",[34,18206,18207],{"class":36,"line":71},[34,18208,693],{"class":181},[34,18210,18211],{"class":36,"line":77},[34,18212,62],{"emptyLinePlaceholder":61},[34,18214,18215],{"class":36,"line":82},[34,18216,18217],{"class":40},"// Command-line arguments\n",[34,18219,18220,18222,18225,18227,18229,18232,18234,18237,18239,18242,18244],{"class":36,"line":88},[34,18221,17772],{"class":580},[34,18223,18224],{"class":47}," main",[34,18226,1607],{"class":181},[34,18228,17772],{"class":580},[34,18230,18231],{"class":675}," argc",[34,18233,1798],{"class":181},[34,18235,18236],{"class":580},"char",[34,18238,18083],{"class":580},[34,18240,18241],{"class":675},"argv",[34,18243,17842],{"class":580},[34,18245,2416],{"class":181},[34,18247,18248,18251,18253,18255,18257,18259,18261,18264,18266,18269,18271],{"class":36,"line":242},[34,18249,18250],{"class":580},"    for",[34,18252,3204],{"class":181},[34,18254,17772],{"class":580},[34,18256,10300],{"class":181},[34,18258,1301],{"class":580},[34,18260,8070],{"class":50},[34,18262,18263],{"class":181},"; i ",[34,18265,815],{"class":580},[34,18267,18268],{"class":181}," argc; i",[34,18270,11928],{"class":580},[34,18272,2416],{"class":181},[34,18274,18275,18278,18280,18283,18286,18288,18290,18292,18295,18297],{"class":36,"line":250},[34,18276,18277],{"class":47},"        printf",[34,18279,1607],{"class":181},[34,18281,18282],{"class":54},"\"Arg ",[34,18284,18285],{"class":50},"%d",[34,18287,182],{"class":54},[34,18289,18187],{"class":50},[34,18291,10389],{"class":54},[34,18293,18294],{"class":181},", i, ",[34,18296,18241],{"class":675},[34,18298,18299],{"class":181},"[i]);\n",[34,18301,18302],{"class":36,"line":263},[34,18303,3229],{"class":181},[34,18305,18306,18308,18310],{"class":36,"line":275},[34,18307,1564],{"class":580},[34,18309,8070],{"class":50},[34,18311,593],{"class":181},[34,18313,18314],{"class":36,"line":700},[34,18315,693],{"class":181},[34,18317,18318],{"class":36,"line":706},[34,18319,62],{"emptyLinePlaceholder":61},[34,18321,18322],{"class":36,"line":715},[34,18323,18324],{"class":40},"// Dynamic array\n",[34,18326,18327,18330,18333],{"class":36,"line":725},[34,18328,18329],{"class":580},"typedef",[34,18331,18332],{"class":580}," struct",[34,18334,661],{"class":181},[34,18336,18337,18340,18342],{"class":36,"line":734},[34,18338,18339],{"class":580},"    int",[34,18341,18083],{"class":580},[34,18343,18344],{"class":181},"data;\n",[34,18346,18347,18349],{"class":36,"line":742},[34,18348,18339],{"class":580},[34,18350,18351],{"class":181}," size;\n",[34,18353,18354,18356],{"class":36,"line":748},[34,18355,18339],{"class":580},[34,18357,18358],{"class":181}," capacity;\n",[34,18360,18361],{"class":36,"line":754},[34,18362,18363],{"class":181},"} DynamicArray;\n",[34,18365,18366],{"class":36,"line":759},[34,18367,62],{"emptyLinePlaceholder":61},[34,18369,18370,18372,18375,18378,18380,18383,18385,18387,18390],{"class":36,"line":771},[34,18371,818],{"class":580},[34,18373,18374],{"class":47}," append",[34,18376,18377],{"class":181},"(DynamicArray ",[34,18379,4289],{"class":580},[34,18381,18382],{"class":675},"arr",[34,18384,1798],{"class":181},[34,18386,17772],{"class":580},[34,18388,18389],{"class":675}," value",[34,18391,2416],{"class":181},[34,18393,18394,18396,18399,18402],{"class":36,"line":794},[34,18395,2902],{"class":580},[34,18397,18398],{"class":181}," (arr->size ",[34,18400,18401],{"class":580},">=",[34,18403,18404],{"class":181}," arr->capacity) {\n",[34,18406,18407,18410,18413,18415],{"class":36,"line":824},[34,18408,18409],{"class":181},"        arr->capacity ",[34,18411,18412],{"class":580},"*=",[34,18414,4292],{"class":50},[34,18416,593],{"class":181},[34,18418,18419,18422,18424,18427,18430,18432,18434,18436,18438],{"class":36,"line":830},[34,18420,18421],{"class":181},"        arr->data ",[34,18423,1301],{"class":580},[34,18425,18426],{"class":47}," realloc",[34,18428,18429],{"class":181},"(arr->data, arr->capacity ",[34,18431,4289],{"class":580},[34,18433,17933],{"class":580},[34,18435,1607],{"class":181},[34,18437,17772],{"class":580},[34,18439,15223],{"class":181},[34,18441,18442],{"class":36,"line":839},[34,18443,3229],{"class":181},[34,18445,18446,18449,18451,18453,18455],{"class":36,"line":854},[34,18447,18448],{"class":181},"    arr->data[arr->size",[34,18450,11928],{"class":580},[34,18452,17799],{"class":181},[34,18454,1301],{"class":580},[34,18456,2920],{"class":181},[34,18458,18459],{"class":36,"line":860},[34,18460,693],{"class":181},[34,18462,18463],{"class":36,"line":865},[34,18464,62],{"emptyLinePlaceholder":61},[34,18466,18467],{"class":36,"line":870},[34,18468,18469],{"class":40},"// Swap function\n",[34,18471,18472,18474,18477,18479,18481,18483,18485,18487,18489,18491,18493],{"class":36,"line":876},[34,18473,818],{"class":580},[34,18475,18476],{"class":47}," swap",[34,18478,1607],{"class":181},[34,18480,17772],{"class":580},[34,18482,18083],{"class":580},[34,18484,145],{"class":675},[34,18486,1798],{"class":181},[34,18488,17772],{"class":580},[34,18490,18083],{"class":580},[34,18492,8355],{"class":675},[34,18494,2416],{"class":181},[34,18496,18497,18499,18502,18504,18506],{"class":36,"line":885},[34,18498,18339],{"class":580},[34,18500,18501],{"class":181}," temp ",[34,18503,1301],{"class":580},[34,18505,18083],{"class":580},[34,18507,18508],{"class":181},"a;\n",[34,18510,18511,18514,18517,18519,18521],{"class":36,"line":895},[34,18512,18513],{"class":580},"    *",[34,18515,18516],{"class":181},"a ",[34,18518,1301],{"class":580},[34,18520,18083],{"class":580},[34,18522,18523],{"class":181},"b;\n",[34,18525,18526,18528,18531,18533],{"class":36,"line":904},[34,18527,18513],{"class":580},[34,18529,18530],{"class":181},"b ",[34,18532,1301],{"class":580},[34,18534,18535],{"class":181}," temp;\n",[34,18537,18538],{"class":36,"line":915},[34,18539,693],{"class":181},[388,18541,18542],{},"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 .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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":18544},[18545],{"id":18148,"depth":44,"text":18143},"Common Patterns in C.",{},"/c/common-patterns",{"title":18143,"description":18546},"c/common-patterns",[4377,18137,18138,18139],"ljIDlLvzS0k60wUiktAnmMlpJNqdd-6vRG2AbXPK3n8",{"id":18554,"title":18555,"body":18556,"date":402,"description":18809,"extension":404,"meta":18810,"navigation":61,"order":734,"path":18811,"seo":18812,"stem":18813,"subject":4377,"tags":18814,"__hash__":18815},"topics/c/compiler-comparison.md","Compiler Comparison",{"type":8,"value":18557,"toc":18806},[18558,18561,18730,18733,18803],[11,18559,18555],{"id":18560},"compiler-comparison",[14308,18562,18563,18582],{},[14311,18564,18565],{},[14314,18566,18567,18570,18573,18576,18579],{},[14317,18568,18569],{},"Feature",[14317,18571,18572],{},"GCC",[14317,18574,18575],{},"Clang",[14317,18577,18578],{},"MSVC",[14317,18580,18581],{},"TCC",[14326,18583,18584,18603,18621,18638,18656,18673,18692,18711],{},[14314,18585,18586,18591,18594,18597,18600],{},[14331,18587,18588],{},[8471,18589,18590],{},"Platform",[14331,18592,18593],{},"Linux, macOS, Windows (MinGW)",[14331,18595,18596],{},"Linux, macOS, Windows",[14331,18598,18599],{},"Windows only",[14331,18601,18602],{},"Cross-platform",[14314,18604,18605,18610,18613,18615,18618],{},[14331,18606,18607],{},[8471,18608,18609],{},"Standards",[14331,18611,18612],{},"C89, C99, C11, C17, C23",[14331,18614,18612],{},[14331,18616,18617],{},"C89, C99, C11, C17",[14331,18619,18620],{},"C89, C99",[14314,18622,18623,18628,18631,18633,18635],{},[14331,18624,18625],{},[8471,18626,18627],{},"Optimization",[14331,18629,18630],{},"Excellent",[14331,18632,18630],{},[14331,18634,18630],{},[14331,18636,18637],{},"Basic",[14314,18639,18640,18645,18648,18651,18653],{},[14331,18641,18642],{},[8471,18643,18644],{},"Compile Speed",[14331,18646,18647],{},"Moderate",[14331,18649,18650],{},"Fast",[14331,18652,18647],{},[14331,18654,18655],{},"Very fast",[14314,18657,18658,18663,18666,18669,18671],{},[14331,18659,18660],{},[8471,18661,18662],{},"Error Messages",[14331,18664,18665],{},"Good",[14331,18667,18668],{},"Excellent (most detailed)",[14331,18670,18665],{},[14331,18672,18637],{},[14314,18674,18675,18680,18683,18686,18689],{},[14331,18676,18677],{},[8471,18678,18679],{},"Debugging",[14331,18681,18682],{},"GDB integration",[14331,18684,18685],{},"LLDB integration",[14331,18687,18688],{},"Visual Studio debugger",[14331,18690,18691],{},"Limited",[14314,18693,18694,18699,18702,18705,18708],{},[14331,18695,18696],{},[8471,18697,18698],{},"License",[14331,18700,18701],{},"GPL",[14331,18703,18704],{},"Apache 2.0",[14331,18706,18707],{},"Proprietary",[14331,18709,18710],{},"LGPL",[14314,18712,18713,18718,18721,18724,18727],{},[14331,18714,18715],{},[8471,18716,18717],{},"Best For",[14331,18719,18720],{},"General use, Linux dev",[14331,18722,18723],{},"Modern tooling, diagnostics",[14331,18725,18726],{},"Windows native apps",[14331,18728,18729],{},"Quick prototyping",[16,18731,18732],{},"Common compiler flags:",[25,18734,18736],{"className":27,"code":18735,"language":29,"meta":30,"style":30},"gcc -Wall -Wextra file.c         # Enable all warnings\ngcc -O2 file.c                   # Optimization level 2\ngcc -g file.c                    # Include debug symbols\ngcc -std=c11 file.c              # Use C11 standard\ngcc -o output file.c             # Specify output name\n",[20,18737,18738,18755,18767,18778,18790],{"__ignoreMap":30},[34,18739,18740,18743,18746,18749,18752],{"class":36,"line":37},[34,18741,18742],{"class":47},"gcc",[34,18744,18745],{"class":50}," -Wall",[34,18747,18748],{"class":50}," -Wextra",[34,18750,18751],{"class":54}," file.c",[34,18753,18754],{"class":40},"         # Enable all warnings\n",[34,18756,18757,18759,18762,18764],{"class":36,"line":44},[34,18758,18742],{"class":47},[34,18760,18761],{"class":50}," -O2",[34,18763,18751],{"class":54},[34,18765,18766],{"class":40},"                   # Optimization level 2\n",[34,18768,18769,18771,18773,18775],{"class":36,"line":58},[34,18770,18742],{"class":47},[34,18772,9753],{"class":50},[34,18774,18751],{"class":54},[34,18776,18777],{"class":40},"                    # Include debug symbols\n",[34,18779,18780,18782,18785,18787],{"class":36,"line":65},[34,18781,18742],{"class":47},[34,18783,18784],{"class":50}," -std=c11",[34,18786,18751],{"class":54},[34,18788,18789],{"class":40},"              # Use C11 standard\n",[34,18791,18792,18794,18796,18798,18800],{"class":36,"line":71},[34,18793,18742],{"class":47},[34,18795,8654],{"class":50},[34,18797,16775],{"class":54},[34,18799,18751],{"class":54},[34,18801,18802],{"class":40},"             # Specify output name\n",[388,18804,18805],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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":30,"searchDepth":44,"depth":44,"links":18807},[18808],{"id":18560,"depth":44,"text":18555},"Compiler Comparison in C.",{},"/c/compiler-comparison",{"title":18555,"description":18809},"c/compiler-comparison",[4377,18137,18138,18139],"b2LJkKhEYr11t6HIsBM_8g-kYf5ElXh7AGfMQCnWwFc",{"id":18817,"title":18818,"body":18819,"date":402,"description":19343,"extension":404,"meta":19344,"navigation":61,"order":71,"path":19345,"seo":19346,"stem":19347,"subject":4377,"tags":19348,"__hash__":19349},"topics/c/control-flow.md","Control Flow",{"type":8,"value":18820,"toc":19340},[18821,18824,19337],[11,18822,18818],{"id":18823},"control-flow",[25,18825,18827],{"className":17759,"code":18826,"language":4377,"meta":30,"style":30},"// If-else statement\nif (age >= 18) {\n    printf(\"Adult\\n\");\n} else if (age >= 13) {\n    printf(\"Teen\\n\");\n} else {\n    printf(\"Child\\n\");\n}\n\n// Ternary operator\nint max = (a > b) ? a : b;       // Shorthand if-else\n\n// Switch statement\nswitch (grade) {\n    case 'A':\n        printf(\"Excellent\\n\");\n        break;                    // Prevent fall-through\n    case 'B':\n        printf(\"Good\\n\");\n        break;\n    default:\n        printf(\"Keep trying\\n\");\n}\n\n// While loop\nint i = 0;\nwhile (i \u003C 5) {\n    printf(\"%d\\n\", i);\n    i++;\n}\n\n// Do-while loop (executes at least once)\ndo {\n    printf(\"%d\\n\", i);\n    i++;\n} while (i \u003C 5);\n\n// For loop\nfor (int i = 0; i \u003C 5; i++) {\n    printf(\"%d\\n\", i);\n}\n\n// Break and continue\nfor (int i = 0; i \u003C 10; i++) {\n    if (i == 5) break;           // Exit loop\n    if (i % 2 == 0) continue;    // Skip to next iteration\n    printf(\"%d\\n\", i);\n}\n",[20,18828,18829,18834,18848,18865,18884,18899,18907,18922,18926,18930,18935,18965,18969,18974,18982,18992,19007,19017,19026,19041,19047,19054,19069,19073,19077,19082,19094,19107,19122,19131,19135,19139,19144,19151,19165,19173,19187,19191,19196,19222,19236,19240,19244,19249,19275,19295,19319,19333],{"__ignoreMap":30},[34,18830,18831],{"class":36,"line":37},[34,18832,18833],{"class":40},"// If-else statement\n",[34,18835,18836,18838,18841,18843,18846],{"class":36,"line":44},[34,18837,10383],{"class":580},[34,18839,18840],{"class":181}," (age ",[34,18842,18401],{"class":580},[34,18844,18845],{"class":50}," 18",[34,18847,2416],{"class":181},[34,18849,18850,18853,18855,18858,18861,18863],{"class":36,"line":58},[34,18851,18852],{"class":47},"    printf",[34,18854,1607],{"class":181},[34,18856,18857],{"class":54},"\"Adult",[34,18859,18860],{"class":50},"\\n",[34,18862,10389],{"class":54},[34,18864,1586],{"class":181},[34,18866,18867,18869,18872,18875,18877,18879,18882],{"class":36,"line":65},[34,18868,2276],{"class":181},[34,18870,18871],{"class":580},"else",[34,18873,18874],{"class":580}," if",[34,18876,18840],{"class":181},[34,18878,18401],{"class":580},[34,18880,18881],{"class":50}," 13",[34,18883,2416],{"class":181},[34,18885,18886,18888,18890,18893,18895,18897],{"class":36,"line":71},[34,18887,18852],{"class":47},[34,18889,1607],{"class":181},[34,18891,18892],{"class":54},"\"Teen",[34,18894,18860],{"class":50},[34,18896,10389],{"class":54},[34,18898,1586],{"class":181},[34,18900,18901,18903,18905],{"class":36,"line":77},[34,18902,2276],{"class":181},[34,18904,18871],{"class":580},[34,18906,661],{"class":181},[34,18908,18909,18911,18913,18916,18918,18920],{"class":36,"line":82},[34,18910,18852],{"class":47},[34,18912,1607],{"class":181},[34,18914,18915],{"class":54},"\"Child",[34,18917,18860],{"class":50},[34,18919,10389],{"class":54},[34,18921,1586],{"class":181},[34,18923,18924],{"class":36,"line":88},[34,18925,693],{"class":181},[34,18927,18928],{"class":36,"line":242},[34,18929,62],{"emptyLinePlaceholder":61},[34,18931,18932],{"class":36,"line":250},[34,18933,18934],{"class":40},"// Ternary operator\n",[34,18936,18937,18939,18942,18944,18947,18949,18952,18955,18957,18959,18962],{"class":36,"line":263},[34,18938,17772],{"class":580},[34,18940,18941],{"class":181}," max ",[34,18943,1301],{"class":580},[34,18945,18946],{"class":181}," (a ",[34,18948,5691],{"class":580},[34,18950,18951],{"class":181}," b) ",[34,18953,18954],{"class":580},"?",[34,18956,8065],{"class":181},[34,18958,165],{"class":580},[34,18960,18961],{"class":181}," b;",[34,18963,18964],{"class":40},"       // Shorthand if-else\n",[34,18966,18967],{"class":36,"line":275},[34,18968,62],{"emptyLinePlaceholder":61},[34,18970,18971],{"class":36,"line":700},[34,18972,18973],{"class":40},"// Switch statement\n",[34,18975,18976,18979],{"class":36,"line":706},[34,18977,18978],{"class":580},"switch",[34,18980,18981],{"class":181}," (grade) {\n",[34,18983,18984,18987,18990],{"class":36,"line":715},[34,18985,18986],{"class":580},"    case",[34,18988,18989],{"class":54}," 'A'",[34,18991,193],{"class":181},[34,18993,18994,18996,18998,19001,19003,19005],{"class":36,"line":725},[34,18995,18277],{"class":47},[34,18997,1607],{"class":181},[34,18999,19000],{"class":54},"\"Excellent",[34,19002,18860],{"class":50},[34,19004,10389],{"class":54},[34,19006,1586],{"class":181},[34,19008,19009,19012,19014],{"class":36,"line":734},[34,19010,19011],{"class":580},"        break",[34,19013,17909],{"class":181},[34,19015,19016],{"class":40},"                    // Prevent fall-through\n",[34,19018,19019,19021,19024],{"class":36,"line":742},[34,19020,18986],{"class":580},[34,19022,19023],{"class":54}," 'B'",[34,19025,193],{"class":181},[34,19027,19028,19030,19032,19035,19037,19039],{"class":36,"line":748},[34,19029,18277],{"class":47},[34,19031,1607],{"class":181},[34,19033,19034],{"class":54},"\"Good",[34,19036,18860],{"class":50},[34,19038,10389],{"class":54},[34,19040,1586],{"class":181},[34,19042,19043,19045],{"class":36,"line":754},[34,19044,19011],{"class":580},[34,19046,593],{"class":181},[34,19048,19049,19052],{"class":36,"line":759},[34,19050,19051],{"class":580},"    default",[34,19053,193],{"class":181},[34,19055,19056,19058,19060,19063,19065,19067],{"class":36,"line":771},[34,19057,18277],{"class":47},[34,19059,1607],{"class":181},[34,19061,19062],{"class":54},"\"Keep trying",[34,19064,18860],{"class":50},[34,19066,10389],{"class":54},[34,19068,1586],{"class":181},[34,19070,19071],{"class":36,"line":794},[34,19072,693],{"class":181},[34,19074,19075],{"class":36,"line":824},[34,19076,62],{"emptyLinePlaceholder":61},[34,19078,19079],{"class":36,"line":830},[34,19080,19081],{"class":40},"// While loop\n",[34,19083,19084,19086,19088,19090,19092],{"class":36,"line":839},[34,19085,17772],{"class":580},[34,19087,10300],{"class":181},[34,19089,1301],{"class":580},[34,19091,8070],{"class":50},[34,19093,593],{"class":181},[34,19095,19096,19098,19101,19103,19105],{"class":36,"line":854},[34,19097,12005],{"class":580},[34,19099,19100],{"class":181}," (i ",[34,19102,815],{"class":580},[34,19104,11144],{"class":50},[34,19106,2416],{"class":181},[34,19108,19109,19111,19113,19115,19117,19119],{"class":36,"line":860},[34,19110,18852],{"class":47},[34,19112,1607],{"class":181},[34,19114,10389],{"class":54},[34,19116,18105],{"class":50},[34,19118,10389],{"class":54},[34,19120,19121],{"class":181},", i);\n",[34,19123,19124,19127,19129],{"class":36,"line":865},[34,19125,19126],{"class":181},"    i",[34,19128,11928],{"class":580},[34,19130,593],{"class":181},[34,19132,19133],{"class":36,"line":870},[34,19134,693],{"class":181},[34,19136,19137],{"class":36,"line":876},[34,19138,62],{"emptyLinePlaceholder":61},[34,19140,19141],{"class":36,"line":885},[34,19142,19143],{"class":40},"// Do-while loop (executes at least once)\n",[34,19145,19146,19149],{"class":36,"line":895},[34,19147,19148],{"class":580},"do",[34,19150,661],{"class":181},[34,19152,19153,19155,19157,19159,19161,19163],{"class":36,"line":904},[34,19154,18852],{"class":47},[34,19156,1607],{"class":181},[34,19158,10389],{"class":54},[34,19160,18105],{"class":50},[34,19162,10389],{"class":54},[34,19164,19121],{"class":181},[34,19166,19167,19169,19171],{"class":36,"line":915},[34,19168,19126],{"class":181},[34,19170,11928],{"class":580},[34,19172,593],{"class":181},[34,19174,19175,19177,19179,19181,19183,19185],{"class":36,"line":927},[34,19176,2276],{"class":181},[34,19178,12005],{"class":580},[34,19180,19100],{"class":181},[34,19182,815],{"class":580},[34,19184,11144],{"class":50},[34,19186,1586],{"class":181},[34,19188,19189],{"class":36,"line":932},[34,19190,62],{"emptyLinePlaceholder":61},[34,19192,19193],{"class":36,"line":944},[34,19194,19195],{"class":40},"// For loop\n",[34,19197,19198,19200,19202,19204,19206,19208,19210,19212,19214,19216,19218,19220],{"class":36,"line":966},[34,19199,10246],{"class":580},[34,19201,3204],{"class":181},[34,19203,17772],{"class":580},[34,19205,10300],{"class":181},[34,19207,1301],{"class":580},[34,19209,8070],{"class":50},[34,19211,18263],{"class":181},[34,19213,815],{"class":580},[34,19215,11144],{"class":50},[34,19217,11918],{"class":181},[34,19219,11928],{"class":580},[34,19221,2416],{"class":181},[34,19223,19224,19226,19228,19230,19232,19234],{"class":36,"line":1948},[34,19225,18852],{"class":47},[34,19227,1607],{"class":181},[34,19229,10389],{"class":54},[34,19231,18105],{"class":50},[34,19233,10389],{"class":54},[34,19235,19121],{"class":181},[34,19237,19238],{"class":36,"line":1953},[34,19239,693],{"class":181},[34,19241,19242],{"class":36,"line":3616},[34,19243,62],{"emptyLinePlaceholder":61},[34,19245,19246],{"class":36,"line":3622},[34,19247,19248],{"class":40},"// Break and continue\n",[34,19250,19251,19253,19255,19257,19259,19261,19263,19265,19267,19269,19271,19273],{"class":36,"line":3642},[34,19252,10246],{"class":580},[34,19254,3204],{"class":181},[34,19256,17772],{"class":580},[34,19258,10300],{"class":181},[34,19260,1301],{"class":580},[34,19262,8070],{"class":50},[34,19264,18263],{"class":181},[34,19266,815],{"class":580},[34,19268,13123],{"class":50},[34,19270,11918],{"class":181},[34,19272,11928],{"class":580},[34,19274,2416],{"class":181},[34,19276,19277,19279,19281,19283,19285,19287,19290,19292],{"class":36,"line":3657},[34,19278,2902],{"class":580},[34,19280,19100],{"class":181},[34,19282,18168],{"class":580},[34,19284,11144],{"class":50},[34,19286,4817],{"class":181},[34,19288,19289],{"class":580},"break",[34,19291,17909],{"class":181},[34,19293,19294],{"class":40},"           // Exit loop\n",[34,19296,19297,19299,19301,19303,19305,19307,19309,19311,19314,19316],{"class":36,"line":3663},[34,19298,2902],{"class":580},[34,19300,19100],{"class":181},[34,19302,12797],{"class":580},[34,19304,4292],{"class":50},[34,19306,10946],{"class":580},[34,19308,8070],{"class":50},[34,19310,4817],{"class":181},[34,19312,19313],{"class":580},"continue",[34,19315,17909],{"class":181},[34,19317,19318],{"class":40},"    // Skip to next iteration\n",[34,19320,19321,19323,19325,19327,19329,19331],{"class":36,"line":3669},[34,19322,18852],{"class":47},[34,19324,1607],{"class":181},[34,19326,10389],{"class":54},[34,19328,18105],{"class":50},[34,19330,10389],{"class":54},[34,19332,19121],{"class":181},[34,19334,19335],{"class":36,"line":3675},[34,19336,693],{"class":181},[388,19338,19339],{},"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 .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 .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);}",{"title":30,"searchDepth":44,"depth":44,"links":19341},[19342],{"id":18823,"depth":44,"text":18818},"Control Flow in C.",{},"/c/control-flow",{"title":18818,"description":19343},"c/control-flow",[4377,18137,18138,18139],"VXr6n86rhvbkKSz18VxCwPrq3USCIf5ob94BDp3Q6P0",{"id":19351,"title":19352,"body":19353,"date":402,"description":21258,"extension":404,"meta":21259,"navigation":61,"order":700,"path":21260,"seo":21261,"stem":21262,"subject":4377,"tags":21263,"__hash__":21264},"topics/c/error-handling.md","Error Handling",{"type":8,"value":19354,"toc":21247},[19355,19358,19362,19556,19560,19732,19736,19898,19902,20021,20025,20295,20299,20670,20674,21245],[11,19356,19352],{"id":19357},"error-handling",[102,19359,19361],{"id":19360},"return-codes","Return Codes",[25,19363,19365],{"className":17759,"code":19364,"language":4377,"meta":30,"style":30},"// Function returning error codes\nint divide(int a, int b, int *result) {\n    if (b == 0) {\n        return -1;               // Error code for division by zero\n    }\n    *result = a / b;\n    return 0;                    // Success\n}\n\n// Using the function\nint result;\nif (divide(10, 2, &result) == 0) {\n    printf(\"Result: %d\\n\", result);\n} else {\n    fprintf(stderr, \"Error: Division by zero\\n\");\n}\n",[20,19366,19367,19372,19404,19417,19431,19435,19450,19461,19465,19469,19474,19481,19513,19529,19537,19552],{"__ignoreMap":30},[34,19368,19369],{"class":36,"line":37},[34,19370,19371],{"class":40},"// Function returning error codes\n",[34,19373,19374,19376,19379,19381,19383,19386,19388,19390,19393,19395,19397,19399,19402],{"class":36,"line":44},[34,19375,17772],{"class":580},[34,19377,19378],{"class":47}," divide",[34,19380,1607],{"class":181},[34,19382,17772],{"class":580},[34,19384,19385],{"class":675}," a",[34,19387,1798],{"class":181},[34,19389,17772],{"class":580},[34,19391,19392],{"class":675}," b",[34,19394,1798],{"class":181},[34,19396,17772],{"class":580},[34,19398,18083],{"class":580},[34,19400,19401],{"class":675},"result",[34,19403,2416],{"class":181},[34,19405,19406,19408,19411,19413,19415],{"class":36,"line":58},[34,19407,2902],{"class":580},[34,19409,19410],{"class":181}," (b ",[34,19412,18168],{"class":580},[34,19414,8070],{"class":50},[34,19416,2416],{"class":181},[34,19418,19419,19421,19424,19426,19428],{"class":36,"line":65},[34,19420,13895],{"class":580},[34,19422,19423],{"class":580}," -",[34,19425,8318],{"class":50},[34,19427,17909],{"class":181},[34,19429,19430],{"class":40},"               // Error code for division by zero\n",[34,19432,19433],{"class":36,"line":71},[34,19434,3229],{"class":181},[34,19436,19437,19439,19442,19444,19446,19448],{"class":36,"line":77},[34,19438,18513],{"class":580},[34,19440,19441],{"class":181},"result ",[34,19443,1301],{"class":580},[34,19445,8065],{"class":181},[34,19447,12734],{"class":580},[34,19449,8123],{"class":181},[34,19451,19452,19454,19456,19458],{"class":36,"line":82},[34,19453,1564],{"class":580},[34,19455,8070],{"class":50},[34,19457,17909],{"class":181},[34,19459,19460],{"class":40},"                    // Success\n",[34,19462,19463],{"class":36,"line":88},[34,19464,693],{"class":181},[34,19466,19467],{"class":36,"line":242},[34,19468,62],{"emptyLinePlaceholder":61},[34,19470,19471],{"class":36,"line":250},[34,19472,19473],{"class":40},"// Using the function\n",[34,19475,19476,19478],{"class":36,"line":263},[34,19477,17772],{"class":580},[34,19479,19480],{"class":181}," result;\n",[34,19482,19483,19485,19487,19490,19492,19494,19496,19498,19500,19503,19505,19507,19509,19511],{"class":36,"line":275},[34,19484,10383],{"class":580},[34,19486,3204],{"class":181},[34,19488,19489],{"class":47},"divide",[34,19491,1607],{"class":181},[34,19493,11923],{"class":50},[34,19495,1798],{"class":181},[34,19497,8324],{"class":50},[34,19499,1798],{"class":181},[34,19501,19502],{"class":580},"&",[34,19504,19401],{"class":675},[34,19506,4817],{"class":181},[34,19508,18168],{"class":580},[34,19510,8070],{"class":50},[34,19512,2416],{"class":181},[34,19514,19515,19517,19519,19522,19524,19526],{"class":36,"line":700},[34,19516,18852],{"class":47},[34,19518,1607],{"class":181},[34,19520,19521],{"class":54},"\"Result: ",[34,19523,18105],{"class":50},[34,19525,10389],{"class":54},[34,19527,19528],{"class":181},", result);\n",[34,19530,19531,19533,19535],{"class":36,"line":706},[34,19532,2276],{"class":181},[34,19534,18871],{"class":580},[34,19536,661],{"class":181},[34,19538,19539,19541,19543,19546,19548,19550],{"class":36,"line":715},[34,19540,18178],{"class":47},[34,19542,18181],{"class":181},[34,19544,19545],{"class":54},"\"Error: Division by zero",[34,19547,18860],{"class":50},[34,19549,10389],{"class":54},[34,19551,1586],{"class":181},[34,19553,19554],{"class":36,"line":725},[34,19555,693],{"class":181},[102,19557,19559],{"id":19558},"errno-global-error-variable","errno (Global Error Variable)",[25,19561,19563],{"className":17759,"code":19562,"language":4377,"meta":30,"style":30},"#include \u003Cerrno.h>\n#include \u003Cstring.h>\n\n// Opening a file with error checking\nFILE *file = fopen(\"nonexistent.txt\", \"r\");\nif (file == NULL) {\n    printf(\"Error code: %d\\n\", errno);      // Print error number\n    printf(\"Error: %s\\n\", strerror(errno)); // Convert to message\n    perror(\"fopen\");                        // Print error with prefix\n    return 1;\n}\n\n// Common errno values\n// ENOENT (2)    - No such file or directory\n// EACCES (13)   - Permission denied\n// ENOMEM (12)   - Out of memory\n// EINVAL (22)   - Invalid argument\n// EIO (5)       - Input/output error\n",[20,19564,19565,19573,19580,19584,19589,19616,19629,19648,19670,19686,19694,19698,19702,19707,19712,19717,19722,19727],{"__ignoreMap":30},[34,19566,19567,19570],{"class":36,"line":37},[34,19568,19569],{"class":580},"#include",[34,19571,19572],{"class":54}," \u003Cerrno.h>\n",[34,19574,19575,19577],{"class":36,"line":44},[34,19576,19569],{"class":580},[34,19578,19579],{"class":54}," \u003Cstring.h>\n",[34,19581,19582],{"class":36,"line":58},[34,19583,62],{"emptyLinePlaceholder":61},[34,19585,19586],{"class":36,"line":65},[34,19587,19588],{"class":40},"// Opening a file with error checking\n",[34,19590,19591,19594,19596,19599,19601,19604,19606,19609,19611,19614],{"class":36,"line":71},[34,19592,19593],{"class":181},"FILE ",[34,19595,4289],{"class":580},[34,19597,19598],{"class":181},"file ",[34,19600,1301],{"class":580},[34,19602,19603],{"class":47}," fopen",[34,19605,1607],{"class":181},[34,19607,19608],{"class":54},"\"nonexistent.txt\"",[34,19610,1798],{"class":181},[34,19612,19613],{"class":54},"\"r\"",[34,19615,1586],{"class":181},[34,19617,19618,19620,19623,19625,19627],{"class":36,"line":77},[34,19619,10383],{"class":580},[34,19621,19622],{"class":181}," (file ",[34,19624,18168],{"class":580},[34,19626,18171],{"class":50},[34,19628,2416],{"class":181},[34,19630,19631,19633,19635,19638,19640,19642,19645],{"class":36,"line":82},[34,19632,18852],{"class":47},[34,19634,1607],{"class":181},[34,19636,19637],{"class":54},"\"Error code: ",[34,19639,18105],{"class":50},[34,19641,10389],{"class":54},[34,19643,19644],{"class":181},", errno);",[34,19646,19647],{"class":40},"      // Print error number\n",[34,19649,19650,19652,19654,19656,19658,19660,19662,19664,19667],{"class":36,"line":88},[34,19651,18852],{"class":47},[34,19653,1607],{"class":181},[34,19655,18184],{"class":54},[34,19657,18187],{"class":50},[34,19659,10389],{"class":54},[34,19661,1798],{"class":181},[34,19663,18194],{"class":47},[34,19665,19666],{"class":181},"(errno));",[34,19668,19669],{"class":40}," // Convert to message\n",[34,19671,19672,19675,19677,19680,19683],{"class":36,"line":242},[34,19673,19674],{"class":47},"    perror",[34,19676,1607],{"class":181},[34,19678,19679],{"class":54},"\"fopen\"",[34,19681,19682],{"class":181},");",[34,19684,19685],{"class":40},"                        // Print error with prefix\n",[34,19687,19688,19690,19692],{"class":36,"line":250},[34,19689,1564],{"class":580},[34,19691,3567],{"class":50},[34,19693,593],{"class":181},[34,19695,19696],{"class":36,"line":263},[34,19697,693],{"class":181},[34,19699,19700],{"class":36,"line":275},[34,19701,62],{"emptyLinePlaceholder":61},[34,19703,19704],{"class":36,"line":700},[34,19705,19706],{"class":40},"// Common errno values\n",[34,19708,19709],{"class":36,"line":706},[34,19710,19711],{"class":40},"// ENOENT (2)    - No such file or directory\n",[34,19713,19714],{"class":36,"line":715},[34,19715,19716],{"class":40},"// EACCES (13)   - Permission denied\n",[34,19718,19719],{"class":36,"line":725},[34,19720,19721],{"class":40},"// ENOMEM (12)   - Out of memory\n",[34,19723,19724],{"class":36,"line":734},[34,19725,19726],{"class":40},"// EINVAL (22)   - Invalid argument\n",[34,19728,19729],{"class":36,"line":742},[34,19730,19731],{"class":40},"// EIO (5)       - Input/output error\n",[102,19733,19735],{"id":19734},"perror-and-strerror","perror() and strerror()",[25,19737,19739],{"className":17759,"code":19738,"language":4377,"meta":30,"style":30},"// perror() - prints error message with prefix\nFILE *f = fopen(\"data.txt\", \"r\");\nif (f == NULL) {\n    perror(\"Failed to open file\"); // Prints: \"Failed to open file: No such file or directory\"\n    return 1;\n}\n\n// strerror() - returns error message string\nchar *error_msg = strerror(errno);\nfprintf(stderr, \"Error: %s\\n\", error_msg);\n\n// Custom error messages\nif (age \u003C 0) {\n    fprintf(stderr, \"Error: Invalid age %d\\n\", age);\n    return EXIT_FAILURE;\n}\n",[20,19740,19741,19746,19770,19783,19797,19805,19809,19813,19818,19835,19851,19855,19860,19872,19888,19894],{"__ignoreMap":30},[34,19742,19743],{"class":36,"line":37},[34,19744,19745],{"class":40},"// perror() - prints error message with prefix\n",[34,19747,19748,19750,19752,19755,19757,19759,19761,19764,19766,19768],{"class":36,"line":44},[34,19749,19593],{"class":181},[34,19751,4289],{"class":580},[34,19753,19754],{"class":181},"f ",[34,19756,1301],{"class":580},[34,19758,19603],{"class":47},[34,19760,1607],{"class":181},[34,19762,19763],{"class":54},"\"data.txt\"",[34,19765,1798],{"class":181},[34,19767,19613],{"class":54},[34,19769,1586],{"class":181},[34,19771,19772,19774,19777,19779,19781],{"class":36,"line":58},[34,19773,10383],{"class":580},[34,19775,19776],{"class":181}," (f ",[34,19778,18168],{"class":580},[34,19780,18171],{"class":50},[34,19782,2416],{"class":181},[34,19784,19785,19787,19789,19792,19794],{"class":36,"line":65},[34,19786,19674],{"class":47},[34,19788,1607],{"class":181},[34,19790,19791],{"class":54},"\"Failed to open file\"",[34,19793,19682],{"class":181},[34,19795,19796],{"class":40}," // Prints: \"Failed to open file: No such file or directory\"\n",[34,19798,19799,19801,19803],{"class":36,"line":71},[34,19800,1564],{"class":580},[34,19802,3567],{"class":50},[34,19804,593],{"class":181},[34,19806,19807],{"class":36,"line":77},[34,19808,693],{"class":181},[34,19810,19811],{"class":36,"line":82},[34,19812,62],{"emptyLinePlaceholder":61},[34,19814,19815],{"class":36,"line":88},[34,19816,19817],{"class":40},"// strerror() - returns error message string\n",[34,19819,19820,19822,19824,19827,19829,19832],{"class":36,"line":242},[34,19821,18236],{"class":580},[34,19823,18083],{"class":580},[34,19825,19826],{"class":181},"error_msg ",[34,19828,1301],{"class":580},[34,19830,19831],{"class":47}," strerror",[34,19833,19834],{"class":181},"(errno);\n",[34,19836,19837,19840,19842,19844,19846,19848],{"class":36,"line":250},[34,19838,19839],{"class":47},"fprintf",[34,19841,18181],{"class":181},[34,19843,18184],{"class":54},[34,19845,18187],{"class":50},[34,19847,10389],{"class":54},[34,19849,19850],{"class":181},", error_msg);\n",[34,19852,19853],{"class":36,"line":263},[34,19854,62],{"emptyLinePlaceholder":61},[34,19856,19857],{"class":36,"line":275},[34,19858,19859],{"class":40},"// Custom error messages\n",[34,19861,19862,19864,19866,19868,19870],{"class":36,"line":700},[34,19863,10383],{"class":580},[34,19865,18840],{"class":181},[34,19867,815],{"class":580},[34,19869,8070],{"class":50},[34,19871,2416],{"class":181},[34,19873,19874,19876,19878,19881,19883,19885],{"class":36,"line":706},[34,19875,18178],{"class":47},[34,19877,18181],{"class":181},[34,19879,19880],{"class":54},"\"Error: Invalid age ",[34,19882,18105],{"class":50},[34,19884,10389],{"class":54},[34,19886,19887],{"class":181},", age);\n",[34,19889,19890,19892],{"class":36,"line":715},[34,19891,1564],{"class":580},[34,19893,18204],{"class":181},[34,19895,19896],{"class":36,"line":725},[34,19897,693],{"class":181},[102,19899,19901],{"id":19900},"assert-for-debugging","assert() for Debugging",[25,19903,19905],{"className":17759,"code":19904,"language":4377,"meta":30,"style":30},"#include \u003Cassert.h>\n\n// Assert fails if condition is false (debug only)\nint array[10];\nint index = 5;\nassert(index >= 0 && index \u003C 10);  // Verify bounds\narray[index] = 42;\n\n// Disable assertions in production\n// Compile with -DNDEBUG flag: gcc -DNDEBUG file.c\nassert(ptr != NULL);               // No-op in release builds\n",[20,19906,19907,19914,19918,19923,19936,19949,19975,19990,19994,19999,20004],{"__ignoreMap":30},[34,19908,19909,19911],{"class":36,"line":37},[34,19910,19569],{"class":580},[34,19912,19913],{"class":54}," \u003Cassert.h>\n",[34,19915,19916],{"class":36,"line":44},[34,19917,62],{"emptyLinePlaceholder":61},[34,19919,19920],{"class":36,"line":58},[34,19921,19922],{"class":40},"// Assert fails if condition is false (debug only)\n",[34,19924,19925,19927,19930,19932,19934],{"class":36,"line":65},[34,19926,17772],{"class":580},[34,19928,19929],{"class":675}," array",[34,19931,10260],{"class":181},[34,19933,11923],{"class":50},[34,19935,3415],{"class":181},[34,19937,19938,19940,19943,19945,19947],{"class":36,"line":71},[34,19939,17772],{"class":580},[34,19941,19942],{"class":181}," index ",[34,19944,1301],{"class":580},[34,19946,11144],{"class":50},[34,19948,593],{"class":181},[34,19950,19951,19954,19957,19959,19961,19964,19966,19968,19970,19972],{"class":36,"line":77},[34,19952,19953],{"class":47},"assert",[34,19955,19956],{"class":181},"(index ",[34,19958,18401],{"class":580},[34,19960,8070],{"class":50},[34,19962,19963],{"class":580}," &&",[34,19965,19942],{"class":181},[34,19967,815],{"class":580},[34,19969,13123],{"class":50},[34,19971,19682],{"class":181},[34,19973,19974],{"class":40},"  // Verify bounds\n",[34,19976,19977,19980,19983,19985,19988],{"class":36,"line":82},[34,19978,19979],{"class":675},"array",[34,19981,19982],{"class":181},"[index] ",[34,19984,1301],{"class":580},[34,19986,19987],{"class":50}," 42",[34,19989,593],{"class":181},[34,19991,19992],{"class":36,"line":88},[34,19993,62],{"emptyLinePlaceholder":61},[34,19995,19996],{"class":36,"line":242},[34,19997,19998],{"class":40},"// Disable assertions in production\n",[34,20000,20001],{"class":36,"line":250},[34,20002,20003],{"class":40},"// Compile with -DNDEBUG flag: gcc -DNDEBUG file.c\n",[34,20005,20006,20008,20011,20014,20016,20018],{"class":36,"line":263},[34,20007,19953],{"class":47},[34,20009,20010],{"class":181},"(ptr ",[34,20012,20013],{"class":580},"!=",[34,20015,18171],{"class":50},[34,20017,19682],{"class":181},[34,20019,20020],{"class":40},"               // No-op in release builds\n",[102,20022,20024],{"id":20023},"goto-for-error-cleanup","goto for Error Cleanup",[25,20026,20028],{"className":17759,"code":20027,"language":4377,"meta":30,"style":30},"// Clean up multiple resources on error\nint process_file(const char *filename) {\n    FILE *file = NULL;\n    char *buffer = NULL;\n    int result = -1;              // Assume failure\n    \n    file = fopen(filename, \"r\");\n    if (file == NULL) {\n        perror(\"fopen\");\n        goto cleanup;             // Jump to cleanup\n    }\n    \n    buffer = malloc(1024);\n    if (buffer == NULL) {\n        fprintf(stderr, \"Out of memory\\n\");\n        goto cleanup;\n    }\n    \n    // Process file...\n    result = 0;                   // Success\n    \ncleanup:\n    free(buffer);                 // Safe even if NULL\n    if (file != NULL) fclose(file);\n    return result;\n}\n",[20,20029,20030,20035,20056,20071,20087,20105,20109,20125,20137,20148,20159,20163,20167,20184,20197,20213,20220,20224,20228,20233,20247,20251,20256,20267,20285,20291],{"__ignoreMap":30},[34,20031,20032],{"class":36,"line":37},[34,20033,20034],{"class":40},"// Clean up multiple resources on error\n",[34,20036,20037,20039,20042,20044,20046,20049,20051,20054],{"class":36,"line":44},[34,20038,17772],{"class":580},[34,20040,20041],{"class":47}," process_file",[34,20043,1607],{"class":181},[34,20045,14676],{"class":580},[34,20047,20048],{"class":580}," char",[34,20050,18083],{"class":580},[34,20052,20053],{"class":675},"filename",[34,20055,2416],{"class":181},[34,20057,20058,20061,20063,20065,20067,20069],{"class":36,"line":58},[34,20059,20060],{"class":181},"    FILE ",[34,20062,4289],{"class":580},[34,20064,19598],{"class":181},[34,20066,1301],{"class":580},[34,20068,18171],{"class":50},[34,20070,593],{"class":181},[34,20072,20073,20076,20078,20081,20083,20085],{"class":36,"line":65},[34,20074,20075],{"class":580},"    char",[34,20077,18083],{"class":580},[34,20079,20080],{"class":181},"buffer ",[34,20082,1301],{"class":580},[34,20084,18171],{"class":50},[34,20086,593],{"class":181},[34,20088,20089,20091,20094,20096,20098,20100,20102],{"class":36,"line":71},[34,20090,18339],{"class":580},[34,20092,20093],{"class":181}," result ",[34,20095,1301],{"class":580},[34,20097,19423],{"class":580},[34,20099,8318],{"class":50},[34,20101,17909],{"class":181},[34,20103,20104],{"class":40},"              // Assume failure\n",[34,20106,20107],{"class":36,"line":77},[34,20108,3666],{"class":181},[34,20110,20111,20114,20116,20118,20121,20123],{"class":36,"line":82},[34,20112,20113],{"class":181},"    file ",[34,20115,1301],{"class":580},[34,20117,19603],{"class":47},[34,20119,20120],{"class":181},"(filename, ",[34,20122,19613],{"class":54},[34,20124,1586],{"class":181},[34,20126,20127,20129,20131,20133,20135],{"class":36,"line":88},[34,20128,2902],{"class":580},[34,20130,19622],{"class":181},[34,20132,18168],{"class":580},[34,20134,18171],{"class":50},[34,20136,2416],{"class":181},[34,20138,20139,20142,20144,20146],{"class":36,"line":242},[34,20140,20141],{"class":47},"        perror",[34,20143,1607],{"class":181},[34,20145,19679],{"class":54},[34,20147,1586],{"class":181},[34,20149,20150,20153,20156],{"class":36,"line":250},[34,20151,20152],{"class":580},"        goto",[34,20154,20155],{"class":181}," cleanup;",[34,20157,20158],{"class":40},"             // Jump to cleanup\n",[34,20160,20161],{"class":36,"line":263},[34,20162,3229],{"class":181},[34,20164,20165],{"class":36,"line":275},[34,20166,3666],{"class":181},[34,20168,20169,20172,20174,20177,20179,20182],{"class":36,"line":700},[34,20170,20171],{"class":181},"    buffer ",[34,20173,1301],{"class":580},[34,20175,20176],{"class":47}," malloc",[34,20178,1607],{"class":181},[34,20180,20181],{"class":50},"1024",[34,20183,1586],{"class":181},[34,20185,20186,20188,20191,20193,20195],{"class":36,"line":706},[34,20187,2902],{"class":580},[34,20189,20190],{"class":181}," (buffer ",[34,20192,18168],{"class":580},[34,20194,18171],{"class":50},[34,20196,2416],{"class":181},[34,20198,20199,20202,20204,20207,20209,20211],{"class":36,"line":715},[34,20200,20201],{"class":47},"        fprintf",[34,20203,18181],{"class":181},[34,20205,20206],{"class":54},"\"Out of memory",[34,20208,18860],{"class":50},[34,20210,10389],{"class":54},[34,20212,1586],{"class":181},[34,20214,20215,20217],{"class":36,"line":725},[34,20216,20152],{"class":580},[34,20218,20219],{"class":181}," cleanup;\n",[34,20221,20222],{"class":36,"line":734},[34,20223,3229],{"class":181},[34,20225,20226],{"class":36,"line":742},[34,20227,3666],{"class":181},[34,20229,20230],{"class":36,"line":748},[34,20231,20232],{"class":40},"    // Process file...\n",[34,20234,20235,20238,20240,20242,20244],{"class":36,"line":754},[34,20236,20237],{"class":181},"    result ",[34,20239,1301],{"class":580},[34,20241,8070],{"class":50},[34,20243,17909],{"class":181},[34,20245,20246],{"class":40},"                   // Success\n",[34,20248,20249],{"class":36,"line":759},[34,20250,3666],{"class":181},[34,20252,20253],{"class":36,"line":771},[34,20254,20255],{"class":181},"cleanup:\n",[34,20257,20258,20261,20264],{"class":36,"line":794},[34,20259,20260],{"class":47},"    free",[34,20262,20263],{"class":181},"(buffer);",[34,20265,20266],{"class":40},"                 // Safe even if NULL\n",[34,20268,20269,20271,20273,20275,20277,20279,20282],{"class":36,"line":824},[34,20270,2902],{"class":580},[34,20272,19622],{"class":181},[34,20274,20013],{"class":580},[34,20276,18171],{"class":50},[34,20278,4817],{"class":181},[34,20280,20281],{"class":47},"fclose",[34,20283,20284],{"class":181},"(file);\n",[34,20286,20287,20289],{"class":36,"line":830},[34,20288,1564],{"class":580},[34,20290,19480],{"class":181},[34,20292,20293],{"class":36,"line":839},[34,20294,693],{"class":181},[102,20296,20298],{"id":20297},"custom-error-enums","Custom Error Enums",[25,20300,20302],{"className":17759,"code":20301,"language":4377,"meta":30,"style":30},"// Define custom error codes\ntypedef enum {\n    SUCCESS = 0,\n    ERR_FILE_NOT_FOUND = 1,\n    ERR_OUT_OF_MEMORY = 2,\n    ERR_INVALID_INPUT = 3,\n    ERR_NETWORK_FAILURE = 4\n} ErrorCode;\n\n// Function using custom error codes\nErrorCode read_config(const char *path) {\n    FILE *f = fopen(path, \"r\");\n    if (f == NULL) {\n        return ERR_FILE_NOT_FOUND;\n    }\n    \n    char *buffer = malloc(512);\n    if (buffer == NULL) {\n        fclose(f);\n        return ERR_OUT_OF_MEMORY;\n    }\n    \n    // Process config...\n    \n    free(buffer);\n    fclose(f);\n    return SUCCESS;\n}\n\n// Convert error code to message\nconst char *error_to_string(ErrorCode err) {\n    switch (err) {\n        case SUCCESS: return \"Success\";\n        case ERR_FILE_NOT_FOUND: return \"File not found\";\n        case ERR_OUT_OF_MEMORY: return \"Out of memory\";\n        case ERR_INVALID_INPUT: return \"Invalid input\";\n        case ERR_NETWORK_FAILURE: return \"Network failure\";\n        default: return \"Unknown error\";\n    }\n}\n",[20,20303,20304,20309,20318,20329,20340,20351,20362,20372,20377,20381,20386,20407,20426,20438,20445,20449,20453,20472,20484,20492,20499,20503,20507,20512,20516,20523,20530,20537,20541,20545,20550,20569,20577,20592,20606,20620,20634,20648,20662,20666],{"__ignoreMap":30},[34,20305,20306],{"class":36,"line":37},[34,20307,20308],{"class":40},"// Define custom error codes\n",[34,20310,20311,20313,20316],{"class":36,"line":44},[34,20312,18329],{"class":580},[34,20314,20315],{"class":580}," enum",[34,20317,661],{"class":181},[34,20319,20320,20323,20325,20327],{"class":36,"line":58},[34,20321,20322],{"class":181},"    SUCCESS ",[34,20324,1301],{"class":580},[34,20326,8070],{"class":50},[34,20328,624],{"class":181},[34,20330,20331,20334,20336,20338],{"class":36,"line":65},[34,20332,20333],{"class":181},"    ERR_FILE_NOT_FOUND ",[34,20335,1301],{"class":580},[34,20337,3567],{"class":50},[34,20339,624],{"class":181},[34,20341,20342,20345,20347,20349],{"class":36,"line":71},[34,20343,20344],{"class":181},"    ERR_OUT_OF_MEMORY ",[34,20346,1301],{"class":580},[34,20348,4292],{"class":50},[34,20350,624],{"class":181},[34,20352,20353,20356,20358,20360],{"class":36,"line":77},[34,20354,20355],{"class":181},"    ERR_INVALID_INPUT ",[34,20357,1301],{"class":580},[34,20359,11147],{"class":50},[34,20361,624],{"class":181},[34,20363,20364,20367,20369],{"class":36,"line":82},[34,20365,20366],{"class":181},"    ERR_NETWORK_FAILURE ",[34,20368,1301],{"class":580},[34,20370,20371],{"class":50}," 4\n",[34,20373,20374],{"class":36,"line":88},[34,20375,20376],{"class":181},"} ErrorCode;\n",[34,20378,20379],{"class":36,"line":242},[34,20380,62],{"emptyLinePlaceholder":61},[34,20382,20383],{"class":36,"line":250},[34,20384,20385],{"class":40},"// Function using custom error codes\n",[34,20387,20388,20391,20394,20396,20398,20400,20402,20405],{"class":36,"line":263},[34,20389,20390],{"class":181},"ErrorCode ",[34,20392,20393],{"class":47},"read_config",[34,20395,1607],{"class":181},[34,20397,14676],{"class":580},[34,20399,20048],{"class":580},[34,20401,18083],{"class":580},[34,20403,20404],{"class":675},"path",[34,20406,2416],{"class":181},[34,20408,20409,20411,20413,20415,20417,20419,20422,20424],{"class":36,"line":275},[34,20410,20060],{"class":181},[34,20412,4289],{"class":580},[34,20414,19754],{"class":181},[34,20416,1301],{"class":580},[34,20418,19603],{"class":47},[34,20420,20421],{"class":181},"(path, ",[34,20423,19613],{"class":54},[34,20425,1586],{"class":181},[34,20427,20428,20430,20432,20434,20436],{"class":36,"line":700},[34,20429,2902],{"class":580},[34,20431,19776],{"class":181},[34,20433,18168],{"class":580},[34,20435,18171],{"class":50},[34,20437,2416],{"class":181},[34,20439,20440,20442],{"class":36,"line":706},[34,20441,13895],{"class":580},[34,20443,20444],{"class":181}," ERR_FILE_NOT_FOUND;\n",[34,20446,20447],{"class":36,"line":715},[34,20448,3229],{"class":181},[34,20450,20451],{"class":36,"line":725},[34,20452,3666],{"class":181},[34,20454,20455,20457,20459,20461,20463,20465,20467,20470],{"class":36,"line":734},[34,20456,20075],{"class":580},[34,20458,18083],{"class":580},[34,20460,20080],{"class":181},[34,20462,1301],{"class":580},[34,20464,20176],{"class":47},[34,20466,1607],{"class":181},[34,20468,20469],{"class":50},"512",[34,20471,1586],{"class":181},[34,20473,20474,20476,20478,20480,20482],{"class":36,"line":742},[34,20475,2902],{"class":580},[34,20477,20190],{"class":181},[34,20479,18168],{"class":580},[34,20481,18171],{"class":50},[34,20483,2416],{"class":181},[34,20485,20486,20489],{"class":36,"line":748},[34,20487,20488],{"class":47},"        fclose",[34,20490,20491],{"class":181},"(f);\n",[34,20493,20494,20496],{"class":36,"line":754},[34,20495,13895],{"class":580},[34,20497,20498],{"class":181}," ERR_OUT_OF_MEMORY;\n",[34,20500,20501],{"class":36,"line":759},[34,20502,3229],{"class":181},[34,20504,20505],{"class":36,"line":771},[34,20506,3666],{"class":181},[34,20508,20509],{"class":36,"line":794},[34,20510,20511],{"class":40},"    // Process config...\n",[34,20513,20514],{"class":36,"line":824},[34,20515,3666],{"class":181},[34,20517,20518,20520],{"class":36,"line":830},[34,20519,20260],{"class":47},[34,20521,20522],{"class":181},"(buffer);\n",[34,20524,20525,20528],{"class":36,"line":839},[34,20526,20527],{"class":47},"    fclose",[34,20529,20491],{"class":181},[34,20531,20532,20534],{"class":36,"line":854},[34,20533,1564],{"class":580},[34,20535,20536],{"class":181}," SUCCESS;\n",[34,20538,20539],{"class":36,"line":860},[34,20540,693],{"class":181},[34,20542,20543],{"class":36,"line":865},[34,20544,62],{"emptyLinePlaceholder":61},[34,20546,20547],{"class":36,"line":870},[34,20548,20549],{"class":40},"// Convert error code to message\n",[34,20551,20552,20554,20556,20558,20561,20564,20567],{"class":36,"line":876},[34,20553,14676],{"class":580},[34,20555,20048],{"class":580},[34,20557,18083],{"class":580},[34,20559,20560],{"class":47},"error_to_string",[34,20562,20563],{"class":181},"(ErrorCode ",[34,20565,20566],{"class":675},"err",[34,20568,2416],{"class":181},[34,20570,20571,20574],{"class":36,"line":885},[34,20572,20573],{"class":580},"    switch",[34,20575,20576],{"class":181}," (err) {\n",[34,20578,20579,20582,20585,20587,20590],{"class":36,"line":895},[34,20580,20581],{"class":580},"        case",[34,20583,20584],{"class":181}," SUCCESS: ",[34,20586,2917],{"class":580},[34,20588,20589],{"class":54}," \"Success\"",[34,20591,593],{"class":181},[34,20593,20594,20596,20599,20601,20604],{"class":36,"line":904},[34,20595,20581],{"class":580},[34,20597,20598],{"class":181}," ERR_FILE_NOT_FOUND: ",[34,20600,2917],{"class":580},[34,20602,20603],{"class":54}," \"File not found\"",[34,20605,593],{"class":181},[34,20607,20608,20610,20613,20615,20618],{"class":36,"line":915},[34,20609,20581],{"class":580},[34,20611,20612],{"class":181}," ERR_OUT_OF_MEMORY: ",[34,20614,2917],{"class":580},[34,20616,20617],{"class":54}," \"Out of memory\"",[34,20619,593],{"class":181},[34,20621,20622,20624,20627,20629,20632],{"class":36,"line":927},[34,20623,20581],{"class":580},[34,20625,20626],{"class":181}," ERR_INVALID_INPUT: ",[34,20628,2917],{"class":580},[34,20630,20631],{"class":54}," \"Invalid input\"",[34,20633,593],{"class":181},[34,20635,20636,20638,20641,20643,20646],{"class":36,"line":932},[34,20637,20581],{"class":580},[34,20639,20640],{"class":181}," ERR_NETWORK_FAILURE: ",[34,20642,2917],{"class":580},[34,20644,20645],{"class":54}," \"Network failure\"",[34,20647,593],{"class":181},[34,20649,20650,20653,20655,20657,20660],{"class":36,"line":944},[34,20651,20652],{"class":580},"        default",[34,20654,182],{"class":181},[34,20656,2917],{"class":580},[34,20658,20659],{"class":54}," \"Unknown error\"",[34,20661,593],{"class":181},[34,20663,20664],{"class":36,"line":966},[34,20665,3229],{"class":181},[34,20667,20668],{"class":36,"line":1948},[34,20669,693],{"class":181},[102,20671,20673],{"id":20672},"error-handling-patterns","Error Handling Patterns",[25,20675,20677],{"className":17759,"code":20676,"language":4377,"meta":30,"style":30},"// Pattern 1: Check and return early\nint safe_divide(int a, int b, int *result) {\n    if (result == NULL) return -1;     // Null pointer check\n    if (b == 0) return -1;             // Division by zero\n    *result = a / b;\n    return 0;\n}\n\n// Pattern 2: Cascading checks with goto\nint init_resources(void) {\n    void *res1 = NULL, *res2 = NULL, *res3 = NULL;\n    \n    res1 = malloc(100);\n    if (!res1) goto error;\n    \n    res2 = malloc(200);\n    if (!res2) goto error;\n    \n    res3 = malloc(300);\n    if (!res3) goto error;\n    \n    return 0;\n\nerror:\n    free(res3);\n    free(res2);\n    free(res1);\n    return -1;\n}\n\n// Pattern 3: Wrapper functions\nFILE *safe_fopen(const char *path, const char *mode) {\n    FILE *f = fopen(path, mode);\n    if (f == NULL) {\n        fprintf(stderr, \"Failed to open '%s': %s\\n\", \n                path, strerror(errno));\n    }\n    return f;\n}\n\n// Pattern 4: Defensive programming\nvoid process_array(int *arr, size_t len) {\n    if (arr == NULL || len == 0) {\n        fprintf(stderr, \"Invalid input\\n\");\n        return;\n    }\n    \n    for (size_t i = 0; i \u003C len; i++) {\n        // Process each element...\n    }\n}\n",[20,20678,20679,20684,20713,20737,20760,20774,20782,20786,20790,20795,20808,20846,20850,20866,20882,20886,20902,20917,20921,20937,20952,20956,20964,20968,20973,20980,20987,20994,21004,21008,21012,21017,21049,21064,21076,21097,21106,21110,21117,21121,21125,21130,21155,21178,21193,21199,21203,21207,21232,21237,21241],{"__ignoreMap":30},[34,20680,20681],{"class":36,"line":37},[34,20682,20683],{"class":40},"// Pattern 1: Check and return early\n",[34,20685,20686,20688,20691,20693,20695,20697,20699,20701,20703,20705,20707,20709,20711],{"class":36,"line":44},[34,20687,17772],{"class":580},[34,20689,20690],{"class":47}," safe_divide",[34,20692,1607],{"class":181},[34,20694,17772],{"class":580},[34,20696,19385],{"class":675},[34,20698,1798],{"class":181},[34,20700,17772],{"class":580},[34,20702,19392],{"class":675},[34,20704,1798],{"class":181},[34,20706,17772],{"class":580},[34,20708,18083],{"class":580},[34,20710,19401],{"class":675},[34,20712,2416],{"class":181},[34,20714,20715,20717,20720,20722,20724,20726,20728,20730,20732,20734],{"class":36,"line":58},[34,20716,2902],{"class":580},[34,20718,20719],{"class":181}," (result ",[34,20721,18168],{"class":580},[34,20723,18171],{"class":50},[34,20725,4817],{"class":181},[34,20727,2917],{"class":580},[34,20729,19423],{"class":580},[34,20731,8318],{"class":50},[34,20733,17909],{"class":181},[34,20735,20736],{"class":40},"     // Null pointer check\n",[34,20738,20739,20741,20743,20745,20747,20749,20751,20753,20755,20757],{"class":36,"line":65},[34,20740,2902],{"class":580},[34,20742,19410],{"class":181},[34,20744,18168],{"class":580},[34,20746,8070],{"class":50},[34,20748,4817],{"class":181},[34,20750,2917],{"class":580},[34,20752,19423],{"class":580},[34,20754,8318],{"class":50},[34,20756,17909],{"class":181},[34,20758,20759],{"class":40},"             // Division by zero\n",[34,20761,20762,20764,20766,20768,20770,20772],{"class":36,"line":71},[34,20763,18513],{"class":580},[34,20765,19441],{"class":181},[34,20767,1301],{"class":580},[34,20769,8065],{"class":181},[34,20771,12734],{"class":580},[34,20773,8123],{"class":181},[34,20775,20776,20778,20780],{"class":36,"line":77},[34,20777,1564],{"class":580},[34,20779,8070],{"class":50},[34,20781,593],{"class":181},[34,20783,20784],{"class":36,"line":82},[34,20785,693],{"class":181},[34,20787,20788],{"class":36,"line":88},[34,20789,62],{"emptyLinePlaceholder":61},[34,20791,20792],{"class":36,"line":242},[34,20793,20794],{"class":40},"// Pattern 2: Cascading checks with goto\n",[34,20796,20797,20799,20802,20804,20806],{"class":36,"line":250},[34,20798,17772],{"class":580},[34,20800,20801],{"class":47}," init_resources",[34,20803,1607],{"class":181},[34,20805,818],{"class":580},[34,20807,2416],{"class":181},[34,20809,20810,20813,20815,20818,20820,20822,20824,20826,20829,20831,20833,20835,20837,20840,20842,20844],{"class":36,"line":263},[34,20811,20812],{"class":580},"    void",[34,20814,18083],{"class":580},[34,20816,20817],{"class":181},"res1 ",[34,20819,1301],{"class":580},[34,20821,18171],{"class":50},[34,20823,1798],{"class":181},[34,20825,4289],{"class":580},[34,20827,20828],{"class":181},"res2 ",[34,20830,1301],{"class":580},[34,20832,18171],{"class":50},[34,20834,1798],{"class":181},[34,20836,4289],{"class":580},[34,20838,20839],{"class":181},"res3 ",[34,20841,1301],{"class":580},[34,20843,18171],{"class":50},[34,20845,593],{"class":181},[34,20847,20848],{"class":36,"line":275},[34,20849,3666],{"class":181},[34,20851,20852,20855,20857,20859,20861,20864],{"class":36,"line":700},[34,20853,20854],{"class":181},"    res1 ",[34,20856,1301],{"class":580},[34,20858,20176],{"class":47},[34,20860,1607],{"class":181},[34,20862,20863],{"class":50},"100",[34,20865,1586],{"class":181},[34,20867,20868,20870,20872,20874,20877,20880],{"class":36,"line":706},[34,20869,2902],{"class":580},[34,20871,3204],{"class":181},[34,20873,10307],{"class":580},[34,20875,20876],{"class":181},"res1) ",[34,20878,20879],{"class":580},"goto",[34,20881,1935],{"class":181},[34,20883,20884],{"class":36,"line":715},[34,20885,3666],{"class":181},[34,20887,20888,20891,20893,20895,20897,20900],{"class":36,"line":725},[34,20889,20890],{"class":181},"    res2 ",[34,20892,1301],{"class":580},[34,20894,20176],{"class":47},[34,20896,1607],{"class":181},[34,20898,20899],{"class":50},"200",[34,20901,1586],{"class":181},[34,20903,20904,20906,20908,20910,20913,20915],{"class":36,"line":734},[34,20905,2902],{"class":580},[34,20907,3204],{"class":181},[34,20909,10307],{"class":580},[34,20911,20912],{"class":181},"res2) ",[34,20914,20879],{"class":580},[34,20916,1935],{"class":181},[34,20918,20919],{"class":36,"line":742},[34,20920,3666],{"class":181},[34,20922,20923,20926,20928,20930,20932,20935],{"class":36,"line":748},[34,20924,20925],{"class":181},"    res3 ",[34,20927,1301],{"class":580},[34,20929,20176],{"class":47},[34,20931,1607],{"class":181},[34,20933,20934],{"class":50},"300",[34,20936,1586],{"class":181},[34,20938,20939,20941,20943,20945,20948,20950],{"class":36,"line":754},[34,20940,2902],{"class":580},[34,20942,3204],{"class":181},[34,20944,10307],{"class":580},[34,20946,20947],{"class":181},"res3) ",[34,20949,20879],{"class":580},[34,20951,1935],{"class":181},[34,20953,20954],{"class":36,"line":759},[34,20955,3666],{"class":181},[34,20957,20958,20960,20962],{"class":36,"line":771},[34,20959,1564],{"class":580},[34,20961,8070],{"class":50},[34,20963,593],{"class":181},[34,20965,20966],{"class":36,"line":794},[34,20967,62],{"emptyLinePlaceholder":61},[34,20969,20970],{"class":36,"line":824},[34,20971,20972],{"class":181},"error:\n",[34,20974,20975,20977],{"class":36,"line":830},[34,20976,20260],{"class":47},[34,20978,20979],{"class":181},"(res3);\n",[34,20981,20982,20984],{"class":36,"line":839},[34,20983,20260],{"class":47},[34,20985,20986],{"class":181},"(res2);\n",[34,20988,20989,20991],{"class":36,"line":854},[34,20990,20260],{"class":47},[34,20992,20993],{"class":181},"(res1);\n",[34,20995,20996,20998,21000,21002],{"class":36,"line":860},[34,20997,1564],{"class":580},[34,20999,19423],{"class":580},[34,21001,8318],{"class":50},[34,21003,593],{"class":181},[34,21005,21006],{"class":36,"line":865},[34,21007,693],{"class":181},[34,21009,21010],{"class":36,"line":870},[34,21011,62],{"emptyLinePlaceholder":61},[34,21013,21014],{"class":36,"line":876},[34,21015,21016],{"class":40},"// Pattern 3: Wrapper functions\n",[34,21018,21019,21021,21023,21026,21028,21030,21032,21034,21036,21038,21040,21042,21044,21047],{"class":36,"line":885},[34,21020,19593],{"class":181},[34,21022,4289],{"class":580},[34,21024,21025],{"class":47},"safe_fopen",[34,21027,1607],{"class":181},[34,21029,14676],{"class":580},[34,21031,20048],{"class":580},[34,21033,18083],{"class":580},[34,21035,20404],{"class":675},[34,21037,1798],{"class":181},[34,21039,14676],{"class":580},[34,21041,20048],{"class":580},[34,21043,18083],{"class":580},[34,21045,21046],{"class":675},"mode",[34,21048,2416],{"class":181},[34,21050,21051,21053,21055,21057,21059,21061],{"class":36,"line":895},[34,21052,20060],{"class":181},[34,21054,4289],{"class":580},[34,21056,19754],{"class":181},[34,21058,1301],{"class":580},[34,21060,19603],{"class":47},[34,21062,21063],{"class":181},"(path, mode);\n",[34,21065,21066,21068,21070,21072,21074],{"class":36,"line":904},[34,21067,2902],{"class":580},[34,21069,19776],{"class":181},[34,21071,18168],{"class":580},[34,21073,18171],{"class":50},[34,21075,2416],{"class":181},[34,21077,21078,21080,21082,21085,21088,21091,21093,21095],{"class":36,"line":915},[34,21079,20201],{"class":47},[34,21081,18181],{"class":181},[34,21083,21084],{"class":54},"\"Failed to open '",[34,21086,21087],{"class":50},"%s",[34,21089,21090],{"class":54},"': ",[34,21092,18187],{"class":50},[34,21094,10389],{"class":54},[34,21096,3350],{"class":181},[34,21098,21099,21102,21104],{"class":36,"line":927},[34,21100,21101],{"class":181},"                path, ",[34,21103,18194],{"class":47},[34,21105,18197],{"class":181},[34,21107,21108],{"class":36,"line":932},[34,21109,3229],{"class":181},[34,21111,21112,21114],{"class":36,"line":944},[34,21113,1564],{"class":580},[34,21115,21116],{"class":181}," f;\n",[34,21118,21119],{"class":36,"line":966},[34,21120,693],{"class":181},[34,21122,21123],{"class":36,"line":1948},[34,21124,62],{"emptyLinePlaceholder":61},[34,21126,21127],{"class":36,"line":1953},[34,21128,21129],{"class":40},"// Pattern 4: Defensive programming\n",[34,21131,21132,21134,21137,21139,21141,21143,21145,21147,21150,21153],{"class":36,"line":3616},[34,21133,818],{"class":580},[34,21135,21136],{"class":47}," process_array",[34,21138,1607],{"class":181},[34,21140,17772],{"class":580},[34,21142,18083],{"class":580},[34,21144,18382],{"class":675},[34,21146,1798],{"class":181},[34,21148,21149],{"class":580},"size_t",[34,21151,21152],{"class":675}," len",[34,21154,2416],{"class":181},[34,21156,21157,21159,21162,21164,21166,21169,21172,21174,21176],{"class":36,"line":3622},[34,21158,2902],{"class":580},[34,21160,21161],{"class":181}," (arr ",[34,21163,18168],{"class":580},[34,21165,18171],{"class":50},[34,21167,21168],{"class":580}," ||",[34,21170,21171],{"class":181}," len ",[34,21173,18168],{"class":580},[34,21175,8070],{"class":50},[34,21177,2416],{"class":181},[34,21179,21180,21182,21184,21187,21189,21191],{"class":36,"line":3642},[34,21181,20201],{"class":47},[34,21183,18181],{"class":181},[34,21185,21186],{"class":54},"\"Invalid input",[34,21188,18860],{"class":50},[34,21190,10389],{"class":54},[34,21192,1586],{"class":181},[34,21194,21195,21197],{"class":36,"line":3657},[34,21196,13895],{"class":580},[34,21198,593],{"class":181},[34,21200,21201],{"class":36,"line":3663},[34,21202,3229],{"class":181},[34,21204,21205],{"class":36,"line":3669},[34,21206,3666],{"class":181},[34,21208,21209,21211,21213,21215,21217,21219,21221,21223,21225,21228,21230],{"class":36,"line":3675},[34,21210,18250],{"class":580},[34,21212,3204],{"class":181},[34,21214,21149],{"class":580},[34,21216,10300],{"class":181},[34,21218,1301],{"class":580},[34,21220,8070],{"class":50},[34,21222,18263],{"class":181},[34,21224,815],{"class":580},[34,21226,21227],{"class":181}," len; i",[34,21229,11928],{"class":580},[34,21231,2416],{"class":181},[34,21233,21234],{"class":36,"line":3693},[34,21235,21236],{"class":40},"        // Process each element...\n",[34,21238,21239],{"class":36,"line":3707},[34,21240,3229],{"class":181},[34,21242,21243],{"class":36,"line":3712},[34,21244,693],{"class":181},[388,21246,17665],{},{"title":30,"searchDepth":44,"depth":44,"links":21248},[21249],{"id":19357,"depth":44,"text":19352,"children":21250},[21251,21252,21253,21254,21255,21256,21257],{"id":19360,"depth":58,"text":19361},{"id":19558,"depth":58,"text":19559},{"id":19734,"depth":58,"text":19735},{"id":19900,"depth":58,"text":19901},{"id":20023,"depth":58,"text":20024},{"id":20297,"depth":58,"text":20298},{"id":20672,"depth":58,"text":20673},"Error Handling in C.",{},"/c/error-handling",{"title":19352,"description":21258},"c/error-handling",[4377,18137,18138,18139],"wM1cmR_mIgKqPAOEW1h9IXXavseDrKKWadZwAs7vudk",{"id":21266,"title":21267,"body":21268,"date":402,"description":21802,"extension":404,"meta":21803,"navigation":61,"order":275,"path":21804,"seo":21805,"stem":21806,"subject":4377,"tags":21807,"__hash__":21808},"topics/c/file-io.md","File I/O",{"type":8,"value":21269,"toc":21799},[21270,21273,21797],[11,21271,21267],{"id":21272},"file-io",[25,21274,21276],{"className":17759,"code":21275,"language":4377,"meta":30,"style":30},"// Opening files\nFILE *file = fopen(\"data.txt\", \"r\");  // Read mode\n// Modes: \"r\" (read), \"w\" (write), \"a\" (append), \"r+\", \"w+\", \"a+\"\nif (file == NULL) {\n    perror(\"Error opening file\");\n    return 1;\n}\n\n// Reading from file\nchar buffer[100];\nfgets(buffer, 100, file);        // Read line\nfscanf(file, \"%s %d\", name, &age); // Formatted read\nint ch = fgetc(file);            // Read single character\n\n// Writing to file\nFILE *out = fopen(\"output.txt\", \"w\");\nfprintf(out, \"Name: %s\\n\", name); // Formatted write\nfputs(\"Hello, World!\\n\", out);   // Write string\nfputc('A', out);                 // Write character\n\n// File positioning\nfseek(file, 0, SEEK_SET);        // Move to beginning\nfseek(file, 0, SEEK_END);        // Move to end\nfseek(file, 10, SEEK_CUR);       // Move 10 bytes from current\nlong pos = ftell(file);          // Get current position\nrewind(file);                    // Reset to beginning\n\n// Closing files\nfclose(file);                    // Always close files\nfclose(out);\n\n// Binary file I/O\nstruct Person p = {\"Alice\", 30, 5.6};\nFILE *bin = fopen(\"data.bin\", \"wb\");\nfwrite(&p, sizeof(struct Person), 1, bin); // Write binary\nfclose(bin);\n\nFILE *bin_in = fopen(\"data.bin\", \"rb\");\nstruct Person loaded;\nfread(&loaded, sizeof(struct Person), 1, bin_in); // Read binary\nfclose(bin_in);\n",[20,21277,21278,21283,21308,21313,21325,21336,21344,21348,21352,21357,21370,21386,21415,21433,21437,21442,21467,21487,21507,21522,21526,21531,21546,21560,21574,21592,21602,21606,21611,21620,21627,21631,21636,21662,21687,21718,21725,21729,21753,21760,21790],{"__ignoreMap":30},[34,21279,21280],{"class":36,"line":37},[34,21281,21282],{"class":40},"// Opening files\n",[34,21284,21285,21287,21289,21291,21293,21295,21297,21299,21301,21303,21305],{"class":36,"line":44},[34,21286,19593],{"class":181},[34,21288,4289],{"class":580},[34,21290,19598],{"class":181},[34,21292,1301],{"class":580},[34,21294,19603],{"class":47},[34,21296,1607],{"class":181},[34,21298,19763],{"class":54},[34,21300,1798],{"class":181},[34,21302,19613],{"class":54},[34,21304,19682],{"class":181},[34,21306,21307],{"class":40},"  // Read mode\n",[34,21309,21310],{"class":36,"line":58},[34,21311,21312],{"class":40},"// Modes: \"r\" (read), \"w\" (write), \"a\" (append), \"r+\", \"w+\", \"a+\"\n",[34,21314,21315,21317,21319,21321,21323],{"class":36,"line":65},[34,21316,10383],{"class":580},[34,21318,19622],{"class":181},[34,21320,18168],{"class":580},[34,21322,18171],{"class":50},[34,21324,2416],{"class":181},[34,21326,21327,21329,21331,21334],{"class":36,"line":71},[34,21328,19674],{"class":47},[34,21330,1607],{"class":181},[34,21332,21333],{"class":54},"\"Error opening file\"",[34,21335,1586],{"class":181},[34,21337,21338,21340,21342],{"class":36,"line":77},[34,21339,1564],{"class":580},[34,21341,3567],{"class":50},[34,21343,593],{"class":181},[34,21345,21346],{"class":36,"line":82},[34,21347,693],{"class":181},[34,21349,21350],{"class":36,"line":88},[34,21351,62],{"emptyLinePlaceholder":61},[34,21353,21354],{"class":36,"line":242},[34,21355,21356],{"class":40},"// Reading from file\n",[34,21358,21359,21361,21364,21366,21368],{"class":36,"line":250},[34,21360,18236],{"class":580},[34,21362,21363],{"class":675}," buffer",[34,21365,10260],{"class":181},[34,21367,20863],{"class":50},[34,21369,3415],{"class":181},[34,21371,21372,21375,21378,21380,21383],{"class":36,"line":263},[34,21373,21374],{"class":47},"fgets",[34,21376,21377],{"class":181},"(buffer, ",[34,21379,20863],{"class":50},[34,21381,21382],{"class":181},", file);",[34,21384,21385],{"class":40},"        // Read line\n",[34,21387,21388,21391,21394,21396,21398,21401,21403,21406,21408,21410,21412],{"class":36,"line":275},[34,21389,21390],{"class":47},"fscanf",[34,21392,21393],{"class":181},"(file, ",[34,21395,10389],{"class":54},[34,21397,21087],{"class":50},[34,21399,21400],{"class":50}," %d",[34,21402,10389],{"class":54},[34,21404,21405],{"class":181},", name, ",[34,21407,19502],{"class":580},[34,21409,13337],{"class":675},[34,21411,19682],{"class":181},[34,21413,21414],{"class":40}," // Formatted read\n",[34,21416,21417,21419,21422,21424,21427,21430],{"class":36,"line":700},[34,21418,17772],{"class":580},[34,21420,21421],{"class":181}," ch ",[34,21423,1301],{"class":580},[34,21425,21426],{"class":47}," fgetc",[34,21428,21429],{"class":181},"(file);",[34,21431,21432],{"class":40},"            // Read single character\n",[34,21434,21435],{"class":36,"line":706},[34,21436,62],{"emptyLinePlaceholder":61},[34,21438,21439],{"class":36,"line":715},[34,21440,21441],{"class":40},"// Writing to file\n",[34,21443,21444,21446,21448,21451,21453,21455,21457,21460,21462,21465],{"class":36,"line":725},[34,21445,19593],{"class":181},[34,21447,4289],{"class":580},[34,21449,21450],{"class":181},"out ",[34,21452,1301],{"class":580},[34,21454,19603],{"class":47},[34,21456,1607],{"class":181},[34,21458,21459],{"class":54},"\"output.txt\"",[34,21461,1798],{"class":181},[34,21463,21464],{"class":54},"\"w\"",[34,21466,1586],{"class":181},[34,21468,21469,21471,21474,21477,21479,21481,21484],{"class":36,"line":734},[34,21470,19839],{"class":47},[34,21472,21473],{"class":181},"(out, ",[34,21475,21476],{"class":54},"\"Name: ",[34,21478,18187],{"class":50},[34,21480,10389],{"class":54},[34,21482,21483],{"class":181},", name);",[34,21485,21486],{"class":40}," // Formatted write\n",[34,21488,21489,21492,21494,21497,21499,21501,21504],{"class":36,"line":742},[34,21490,21491],{"class":47},"fputs",[34,21493,1607],{"class":181},[34,21495,21496],{"class":54},"\"Hello, World!",[34,21498,18860],{"class":50},[34,21500,10389],{"class":54},[34,21502,21503],{"class":181},", out);",[34,21505,21506],{"class":40},"   // Write string\n",[34,21508,21509,21512,21514,21517,21519],{"class":36,"line":748},[34,21510,21511],{"class":47},"fputc",[34,21513,1607],{"class":181},[34,21515,21516],{"class":54},"'A'",[34,21518,21503],{"class":181},[34,21520,21521],{"class":40},"                 // Write character\n",[34,21523,21524],{"class":36,"line":754},[34,21525,62],{"emptyLinePlaceholder":61},[34,21527,21528],{"class":36,"line":759},[34,21529,21530],{"class":40},"// File positioning\n",[34,21532,21533,21536,21538,21540,21543],{"class":36,"line":771},[34,21534,21535],{"class":47},"fseek",[34,21537,21393],{"class":181},[34,21539,2773],{"class":50},[34,21541,21542],{"class":181},", SEEK_SET);",[34,21544,21545],{"class":40},"        // Move to beginning\n",[34,21547,21548,21550,21552,21554,21557],{"class":36,"line":794},[34,21549,21535],{"class":47},[34,21551,21393],{"class":181},[34,21553,2773],{"class":50},[34,21555,21556],{"class":181},", SEEK_END);",[34,21558,21559],{"class":40},"        // Move to end\n",[34,21561,21562,21564,21566,21568,21571],{"class":36,"line":824},[34,21563,21535],{"class":47},[34,21565,21393],{"class":181},[34,21567,11923],{"class":50},[34,21569,21570],{"class":181},", SEEK_CUR);",[34,21572,21573],{"class":40},"       // Move 10 bytes from current\n",[34,21575,21576,21579,21582,21584,21587,21589],{"class":36,"line":830},[34,21577,21578],{"class":580},"long",[34,21580,21581],{"class":181}," pos ",[34,21583,1301],{"class":580},[34,21585,21586],{"class":47}," ftell",[34,21588,21429],{"class":181},[34,21590,21591],{"class":40},"          // Get current position\n",[34,21593,21594,21597,21599],{"class":36,"line":839},[34,21595,21596],{"class":47},"rewind",[34,21598,21429],{"class":181},[34,21600,21601],{"class":40},"                    // Reset to beginning\n",[34,21603,21604],{"class":36,"line":854},[34,21605,62],{"emptyLinePlaceholder":61},[34,21607,21608],{"class":36,"line":860},[34,21609,21610],{"class":40},"// Closing files\n",[34,21612,21613,21615,21617],{"class":36,"line":865},[34,21614,20281],{"class":47},[34,21616,21429],{"class":181},[34,21618,21619],{"class":40},"                    // Always close files\n",[34,21621,21622,21624],{"class":36,"line":870},[34,21623,20281],{"class":47},[34,21625,21626],{"class":181},"(out);\n",[34,21628,21629],{"class":36,"line":876},[34,21630,62],{"emptyLinePlaceholder":61},[34,21632,21633],{"class":36,"line":885},[34,21634,21635],{"class":40},"// Binary file I/O\n",[34,21637,21638,21641,21644,21646,21648,21651,21653,21655,21657,21660],{"class":36,"line":895},[34,21639,21640],{"class":580},"struct",[34,21642,21643],{"class":181}," Person p ",[34,21645,1301],{"class":580},[34,21647,11838],{"class":181},[34,21649,21650],{"class":54},"\"Alice\"",[34,21652,1798],{"class":181},[34,21654,17625],{"class":50},[34,21656,1798],{"class":181},[34,21658,21659],{"class":50},"5.6",[34,21661,17632],{"class":181},[34,21663,21664,21666,21668,21671,21673,21675,21677,21680,21682,21685],{"class":36,"line":904},[34,21665,19593],{"class":181},[34,21667,4289],{"class":580},[34,21669,21670],{"class":181},"bin ",[34,21672,1301],{"class":580},[34,21674,19603],{"class":47},[34,21676,1607],{"class":181},[34,21678,21679],{"class":54},"\"data.bin\"",[34,21681,1798],{"class":181},[34,21683,21684],{"class":54},"\"wb\"",[34,21686,1586],{"class":181},[34,21688,21689,21692,21694,21696,21698,21700,21703,21705,21707,21710,21712,21715],{"class":36,"line":915},[34,21690,21691],{"class":47},"fwrite",[34,21693,1607],{"class":181},[34,21695,19502],{"class":580},[34,21697,16],{"class":675},[34,21699,1798],{"class":181},[34,21701,21702],{"class":580},"sizeof",[34,21704,1607],{"class":181},[34,21706,21640],{"class":580},[34,21708,21709],{"class":181}," Person), ",[34,21711,8318],{"class":50},[34,21713,21714],{"class":181},", bin);",[34,21716,21717],{"class":40}," // Write binary\n",[34,21719,21720,21722],{"class":36,"line":927},[34,21721,20281],{"class":47},[34,21723,21724],{"class":181},"(bin);\n",[34,21726,21727],{"class":36,"line":932},[34,21728,62],{"emptyLinePlaceholder":61},[34,21730,21731,21733,21735,21738,21740,21742,21744,21746,21748,21751],{"class":36,"line":944},[34,21732,19593],{"class":181},[34,21734,4289],{"class":580},[34,21736,21737],{"class":181},"bin_in ",[34,21739,1301],{"class":580},[34,21741,19603],{"class":47},[34,21743,1607],{"class":181},[34,21745,21679],{"class":54},[34,21747,1798],{"class":181},[34,21749,21750],{"class":54},"\"rb\"",[34,21752,1586],{"class":181},[34,21754,21755,21757],{"class":36,"line":966},[34,21756,21640],{"class":580},[34,21758,21759],{"class":181}," Person loaded;\n",[34,21761,21762,21765,21767,21769,21772,21774,21776,21778,21780,21782,21784,21787],{"class":36,"line":1948},[34,21763,21764],{"class":47},"fread",[34,21766,1607],{"class":181},[34,21768,19502],{"class":580},[34,21770,21771],{"class":675},"loaded",[34,21773,1798],{"class":181},[34,21775,21702],{"class":580},[34,21777,1607],{"class":181},[34,21779,21640],{"class":580},[34,21781,21709],{"class":181},[34,21783,8318],{"class":50},[34,21785,21786],{"class":181},", bin_in);",[34,21788,21789],{"class":40}," // Read binary\n",[34,21791,21792,21794],{"class":36,"line":1953},[34,21793,20281],{"class":47},[34,21795,21796],{"class":181},"(bin_in);\n",[388,21798,2965],{},{"title":30,"searchDepth":44,"depth":44,"links":21800},[21801],{"id":21272,"depth":44,"text":21267},"File I/O in C.",{},"/c/file-io",{"title":21267,"description":21802},"c/file-io",[4377,18137,18138,18139],"R5IPW6D565iWxOQJZdjE9OVSkqSaASP7scgKDsW1Ejw",{"id":21810,"title":10991,"body":21811,"date":402,"description":22142,"extension":404,"meta":22143,"navigation":61,"order":77,"path":22144,"seo":22145,"stem":22146,"subject":4377,"tags":22147,"__hash__":22148},"topics/c/functions.md",{"type":8,"value":21812,"toc":22139},[21813,21815,22136],[11,21814,10991],{"id":10996},[25,21816,21818],{"className":17759,"code":21817,"language":4377,"meta":30,"style":30},"// Function declaration (prototype)\nint add(int a, int b);\n\n// Function definition\nint add(int a, int b) {\n    return a + b;\n}\n\n// Void function (no return value)\nvoid greet(char name[]) {\n    printf(\"Hello, %s!\\n\", name);\n}\n\n// Function with default behavior\nvoid print_number(int n) {\n    if (n == 0) return;          // Early return\n    printf(\"%d\\n\", n);\n}\n\n// Recursive function\nint factorial(int n) {\n    if (n \u003C= 1) return 1;        // Base case\n    return n * factorial(n - 1); // Recursive call\n}\n\n// Main function (program entry point)\nint main(int argc, char *argv[]) {\n    printf(\"Hello, World!\\n\");\n    return 0;                    // Return status code\n}\n",[20,21819,21820,21825,21845,21849,21854,21874,21884,21888,21892,21897,21913,21933,21937,21941,21946,21962,21981,21996,22000,22004,22009,22024,22046,22070,22074,22078,22083,22107,22121,22132],{"__ignoreMap":30},[34,21821,21822],{"class":36,"line":37},[34,21823,21824],{"class":40},"// Function declaration (prototype)\n",[34,21826,21827,21829,21831,21833,21835,21837,21839,21841,21843],{"class":36,"line":44},[34,21828,17772],{"class":580},[34,21830,7854],{"class":47},[34,21832,1607],{"class":181},[34,21834,17772],{"class":580},[34,21836,19385],{"class":675},[34,21838,1798],{"class":181},[34,21840,17772],{"class":580},[34,21842,19392],{"class":675},[34,21844,1586],{"class":181},[34,21846,21847],{"class":36,"line":58},[34,21848,62],{"emptyLinePlaceholder":61},[34,21850,21851],{"class":36,"line":65},[34,21852,21853],{"class":40},"// Function definition\n",[34,21855,21856,21858,21860,21862,21864,21866,21868,21870,21872],{"class":36,"line":71},[34,21857,17772],{"class":580},[34,21859,7854],{"class":47},[34,21861,1607],{"class":181},[34,21863,17772],{"class":580},[34,21865,19385],{"class":675},[34,21867,1798],{"class":181},[34,21869,17772],{"class":580},[34,21871,19392],{"class":675},[34,21873,2416],{"class":181},[34,21875,21876,21878,21880,21882],{"class":36,"line":77},[34,21877,1564],{"class":580},[34,21879,8065],{"class":181},[34,21881,2940],{"class":580},[34,21883,8123],{"class":181},[34,21885,21886],{"class":36,"line":82},[34,21887,693],{"class":181},[34,21889,21890],{"class":36,"line":88},[34,21891,62],{"emptyLinePlaceholder":61},[34,21893,21894],{"class":36,"line":242},[34,21895,21896],{"class":40},"// Void function (no return value)\n",[34,21898,21899,21901,21903,21905,21907,21909,21911],{"class":36,"line":250},[34,21900,818],{"class":580},[34,21902,11047],{"class":47},[34,21904,1607],{"class":181},[34,21906,18236],{"class":580},[34,21908,12323],{"class":675},[34,21910,17842],{"class":580},[34,21912,2416],{"class":181},[34,21914,21915,21917,21919,21922,21924,21926,21928,21930],{"class":36,"line":263},[34,21916,18852],{"class":47},[34,21918,1607],{"class":181},[34,21920,21921],{"class":54},"\"Hello, ",[34,21923,21087],{"class":50},[34,21925,10307],{"class":54},[34,21927,18860],{"class":50},[34,21929,10389],{"class":54},[34,21931,21932],{"class":181},", name);\n",[34,21934,21935],{"class":36,"line":275},[34,21936,693],{"class":181},[34,21938,21939],{"class":36,"line":700},[34,21940,62],{"emptyLinePlaceholder":61},[34,21942,21943],{"class":36,"line":706},[34,21944,21945],{"class":40},"// Function with default behavior\n",[34,21947,21948,21950,21953,21955,21957,21960],{"class":36,"line":715},[34,21949,818],{"class":580},[34,21951,21952],{"class":47}," print_number",[34,21954,1607],{"class":181},[34,21956,17772],{"class":580},[34,21958,21959],{"class":675}," n",[34,21961,2416],{"class":181},[34,21963,21964,21966,21968,21970,21972,21974,21976,21978],{"class":36,"line":725},[34,21965,2902],{"class":580},[34,21967,8087],{"class":181},[34,21969,18168],{"class":580},[34,21971,8070],{"class":50},[34,21973,4817],{"class":181},[34,21975,2917],{"class":580},[34,21977,17909],{"class":181},[34,21979,21980],{"class":40},"          // Early return\n",[34,21982,21983,21985,21987,21989,21991,21993],{"class":36,"line":734},[34,21984,18852],{"class":47},[34,21986,1607],{"class":181},[34,21988,10389],{"class":54},[34,21990,18105],{"class":50},[34,21992,10389],{"class":54},[34,21994,21995],{"class":181},", n);\n",[34,21997,21998],{"class":36,"line":742},[34,21999,693],{"class":181},[34,22001,22002],{"class":36,"line":748},[34,22003,62],{"emptyLinePlaceholder":61},[34,22005,22006],{"class":36,"line":754},[34,22007,22008],{"class":40},"// Recursive function\n",[34,22010,22011,22013,22016,22018,22020,22022],{"class":36,"line":759},[34,22012,17772],{"class":580},[34,22014,22015],{"class":47}," factorial",[34,22017,1607],{"class":181},[34,22019,17772],{"class":580},[34,22021,21959],{"class":675},[34,22023,2416],{"class":181},[34,22025,22026,22028,22030,22033,22035,22037,22039,22041,22043],{"class":36,"line":771},[34,22027,2902],{"class":580},[34,22029,8087],{"class":181},[34,22031,22032],{"class":580},"\u003C=",[34,22034,3567],{"class":50},[34,22036,4817],{"class":181},[34,22038,2917],{"class":580},[34,22040,3567],{"class":50},[34,22042,17909],{"class":181},[34,22044,22045],{"class":40},"        // Base case\n",[34,22047,22048,22050,22053,22055,22057,22060,22063,22065,22067],{"class":36,"line":794},[34,22049,1564],{"class":580},[34,22051,22052],{"class":181}," n ",[34,22054,4289],{"class":580},[34,22056,22015],{"class":47},[34,22058,22059],{"class":181},"(n ",[34,22061,22062],{"class":580},"-",[34,22064,3567],{"class":50},[34,22066,19682],{"class":181},[34,22068,22069],{"class":40}," // Recursive call\n",[34,22071,22072],{"class":36,"line":824},[34,22073,693],{"class":181},[34,22075,22076],{"class":36,"line":830},[34,22077,62],{"emptyLinePlaceholder":61},[34,22079,22080],{"class":36,"line":839},[34,22081,22082],{"class":40},"// Main function (program entry point)\n",[34,22084,22085,22087,22089,22091,22093,22095,22097,22099,22101,22103,22105],{"class":36,"line":854},[34,22086,17772],{"class":580},[34,22088,18224],{"class":47},[34,22090,1607],{"class":181},[34,22092,17772],{"class":580},[34,22094,18231],{"class":675},[34,22096,1798],{"class":181},[34,22098,18236],{"class":580},[34,22100,18083],{"class":580},[34,22102,18241],{"class":675},[34,22104,17842],{"class":580},[34,22106,2416],{"class":181},[34,22108,22109,22111,22113,22115,22117,22119],{"class":36,"line":860},[34,22110,18852],{"class":47},[34,22112,1607],{"class":181},[34,22114,21496],{"class":54},[34,22116,18860],{"class":50},[34,22118,10389],{"class":54},[34,22120,1586],{"class":181},[34,22122,22123,22125,22127,22129],{"class":36,"line":865},[34,22124,1564],{"class":580},[34,22126,8070],{"class":50},[34,22128,17909],{"class":181},[34,22130,22131],{"class":40},"                    // Return status code\n",[34,22133,22134],{"class":36,"line":870},[34,22135,693],{"class":181},[388,22137,22138],{},"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 .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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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 .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":30,"searchDepth":44,"depth":44,"links":22140},[22141],{"id":10996,"depth":44,"text":10991},"Functions in C.",{},"/c/functions",{"title":10991,"description":22142},"c/functions",[4377,18137,18138,18139],"j3E_Lvf7pdq9bWFSCl3P6PSxo8beWKEhLUWTLEJWSQI",{"id":22150,"title":22151,"body":22152,"date":402,"description":22277,"extension":404,"meta":22278,"navigation":61,"order":44,"path":22279,"seo":22280,"stem":22281,"subject":4377,"tags":22282,"__hash__":22283},"topics/c/hello-world.md","Hello World",{"type":8,"value":22153,"toc":22274},[22154,22157,22216,22219,22271],[11,22155,22151],{"id":22156},"hello-world",[25,22158,22160],{"className":17759,"code":22159,"language":4377,"meta":30,"style":30},"#include \u003Cstdio.h>               // Include standard I/O library\n\nint main() {\n    printf(\"Hello, World!\\n\");   // Print to console\n    return 0;                    // Return success status\n}\n",[20,22161,22162,22172,22176,22184,22201,22212],{"__ignoreMap":30},[34,22163,22164,22166,22169],{"class":36,"line":37},[34,22165,19569],{"class":580},[34,22167,22168],{"class":54}," \u003Cstdio.h>",[34,22170,22171],{"class":40},"               // Include standard I/O library\n",[34,22173,22174],{"class":36,"line":44},[34,22175,62],{"emptyLinePlaceholder":61},[34,22177,22178,22180,22182],{"class":36,"line":58},[34,22179,17772],{"class":580},[34,22181,18224],{"class":47},[34,22183,836],{"class":181},[34,22185,22186,22188,22190,22192,22194,22196,22198],{"class":36,"line":65},[34,22187,18852],{"class":47},[34,22189,1607],{"class":181},[34,22191,21496],{"class":54},[34,22193,18860],{"class":50},[34,22195,10389],{"class":54},[34,22197,19682],{"class":181},[34,22199,22200],{"class":40},"   // Print to console\n",[34,22202,22203,22205,22207,22209],{"class":36,"line":71},[34,22204,1564],{"class":580},[34,22206,8070],{"class":50},[34,22208,17909],{"class":181},[34,22210,22211],{"class":40},"                    // Return success status\n",[34,22213,22214],{"class":36,"line":77},[34,22215,693],{"class":181},[16,22217,22218],{},"Compile and run:",[25,22220,22222],{"className":27,"code":22221,"language":29,"meta":30,"style":30},"gcc hello.c -o hello             # Compile with GCC\n./hello                          # Execute program\n\nclang hello.c -o hello           # Compile with Clang\n./hello                          # Execute program\n",[20,22223,22224,22239,22247,22251,22265],{"__ignoreMap":30},[34,22225,22226,22228,22231,22233,22236],{"class":36,"line":37},[34,22227,18742],{"class":47},[34,22229,22230],{"class":54}," hello.c",[34,22232,8654],{"class":50},[34,22234,22235],{"class":54}," hello",[34,22237,22238],{"class":40},"             # Compile with GCC\n",[34,22240,22241,22244],{"class":36,"line":44},[34,22242,22243],{"class":47},"./hello",[34,22245,22246],{"class":40},"                          # Execute program\n",[34,22248,22249],{"class":36,"line":58},[34,22250,62],{"emptyLinePlaceholder":61},[34,22252,22253,22256,22258,22260,22262],{"class":36,"line":65},[34,22254,22255],{"class":47},"clang",[34,22257,22230],{"class":54},[34,22259,8654],{"class":50},[34,22261,22235],{"class":54},[34,22263,22264],{"class":40},"           # Compile with Clang\n",[34,22266,22267,22269],{"class":36,"line":71},[34,22268,22243],{"class":47},[34,22270,22246],{"class":40},[388,22272,22273],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .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":30,"searchDepth":44,"depth":44,"links":22275},[22276],{"id":22156,"depth":44,"text":22151},"Hello World in C.",{},"/c/hello-world",{"title":22151,"description":22277},"c/hello-world",[4377,18137,18138,18139],"8kiHVCxCQCRl-BC-ooU5qTx2QiXAZDqo8qgTJgtP5HM",{"id":22285,"title":22286,"body":22287,"date":402,"description":22671,"extension":404,"meta":22672,"navigation":61,"order":263,"path":22673,"seo":22674,"stem":22675,"subject":4377,"tags":22676,"__hash__":22677},"topics/c/memory-management.md","Memory Management",{"type":8,"value":22288,"toc":22668},[22289,22292,22665],[11,22290,22286],{"id":22291},"memory-management",[25,22293,22295],{"className":17759,"code":22294,"language":4377,"meta":30,"style":30},"// Dynamic memory allocation\nint *arr = (int *)malloc(5 * sizeof(int)); // Allocate memory\nif (arr == NULL) {\n    printf(\"Memory allocation failed\\n\");\n    return 1;\n}\n\n// Using allocated memory\narr[0] = 10;\narr[1] = 20;\n\n// Freeing memory\nfree(arr);                       // Always free allocated memory\narr = NULL;                      // Prevent dangling pointer\n\n// Calloc (allocates and initializes to zero)\nint *zeros = (int *)calloc(5, sizeof(int)); // 5 integers, all zero\nfree(zeros);\n\n// Realloc (resize allocated memory)\nint *resized = (int *)realloc(arr, 10 * sizeof(int)); // Expand to 10\nif (resized != NULL) {\n    arr = resized;\n}\nfree(arr);\n\n// Memory operations (string.h)\nint buffer[10];\nmemset(buffer, 0, sizeof(buffer)); // Fill with value\nmemcpy(dest, src, size);         // Copy memory block\nmemmove(dest, src, size);        // Safe copy (handles overlap)\nmemcmp(buf1, buf2, size);        // Compare memory blocks\n",[20,22296,22297,22302,22341,22353,22368,22376,22380,22384,22389,22405,22422,22426,22431,22442,22455,22459,22464,22503,22510,22514,22519,22559,22572,22582,22586,22593,22597,22602,22614,22633,22644,22654],{"__ignoreMap":30},[34,22298,22299],{"class":36,"line":37},[34,22300,22301],{"class":40},"// Dynamic memory allocation\n",[34,22303,22304,22306,22308,22311,22313,22315,22317,22319,22321,22324,22326,22328,22330,22332,22334,22336,22338],{"class":36,"line":44},[34,22305,17772],{"class":580},[34,22307,18083],{"class":580},[34,22309,22310],{"class":181},"arr ",[34,22312,1301],{"class":580},[34,22314,3204],{"class":181},[34,22316,17772],{"class":580},[34,22318,18083],{"class":580},[34,22320,1617],{"class":181},[34,22322,22323],{"class":47},"malloc",[34,22325,1607],{"class":181},[34,22327,2778],{"class":50},[34,22329,18083],{"class":580},[34,22331,17933],{"class":580},[34,22333,1607],{"class":181},[34,22335,17772],{"class":580},[34,22337,18121],{"class":181},[34,22339,22340],{"class":40}," // Allocate memory\n",[34,22342,22343,22345,22347,22349,22351],{"class":36,"line":58},[34,22344,10383],{"class":580},[34,22346,21161],{"class":181},[34,22348,18168],{"class":580},[34,22350,18171],{"class":50},[34,22352,2416],{"class":181},[34,22354,22355,22357,22359,22362,22364,22366],{"class":36,"line":65},[34,22356,18852],{"class":47},[34,22358,1607],{"class":181},[34,22360,22361],{"class":54},"\"Memory allocation failed",[34,22363,18860],{"class":50},[34,22365,10389],{"class":54},[34,22367,1586],{"class":181},[34,22369,22370,22372,22374],{"class":36,"line":71},[34,22371,1564],{"class":580},[34,22373,3567],{"class":50},[34,22375,593],{"class":181},[34,22377,22378],{"class":36,"line":77},[34,22379,693],{"class":181},[34,22381,22382],{"class":36,"line":82},[34,22383,62],{"emptyLinePlaceholder":61},[34,22385,22386],{"class":36,"line":88},[34,22387,22388],{"class":40},"// Using allocated memory\n",[34,22390,22391,22393,22395,22397,22399,22401,22403],{"class":36,"line":242},[34,22392,18382],{"class":675},[34,22394,10260],{"class":181},[34,22396,2773],{"class":50},[34,22398,17799],{"class":181},[34,22400,1301],{"class":580},[34,22402,13123],{"class":50},[34,22404,593],{"class":181},[34,22406,22407,22409,22411,22413,22415,22417,22420],{"class":36,"line":250},[34,22408,18382],{"class":675},[34,22410,10260],{"class":181},[34,22412,8318],{"class":50},[34,22414,17799],{"class":181},[34,22416,1301],{"class":580},[34,22418,22419],{"class":50}," 20",[34,22421,593],{"class":181},[34,22423,22424],{"class":36,"line":263},[34,22425,62],{"emptyLinePlaceholder":61},[34,22427,22428],{"class":36,"line":275},[34,22429,22430],{"class":40},"// Freeing memory\n",[34,22432,22433,22436,22439],{"class":36,"line":700},[34,22434,22435],{"class":47},"free",[34,22437,22438],{"class":181},"(arr);",[34,22440,22441],{"class":40},"                       // Always free allocated memory\n",[34,22443,22444,22446,22448,22450,22452],{"class":36,"line":706},[34,22445,22310],{"class":181},[34,22447,1301],{"class":580},[34,22449,18171],{"class":50},[34,22451,17909],{"class":181},[34,22453,22454],{"class":40},"                      // Prevent dangling pointer\n",[34,22456,22457],{"class":36,"line":715},[34,22458,62],{"emptyLinePlaceholder":61},[34,22460,22461],{"class":36,"line":725},[34,22462,22463],{"class":40},"// Calloc (allocates and initializes to zero)\n",[34,22465,22466,22468,22470,22473,22475,22477,22479,22481,22483,22486,22488,22490,22492,22494,22496,22498,22500],{"class":36,"line":734},[34,22467,17772],{"class":580},[34,22469,18083],{"class":580},[34,22471,22472],{"class":181},"zeros ",[34,22474,1301],{"class":580},[34,22476,3204],{"class":181},[34,22478,17772],{"class":580},[34,22480,18083],{"class":580},[34,22482,1617],{"class":181},[34,22484,22485],{"class":47},"calloc",[34,22487,1607],{"class":181},[34,22489,2778],{"class":50},[34,22491,1798],{"class":181},[34,22493,21702],{"class":580},[34,22495,1607],{"class":181},[34,22497,17772],{"class":580},[34,22499,18121],{"class":181},[34,22501,22502],{"class":40}," // 5 integers, all zero\n",[34,22504,22505,22507],{"class":36,"line":742},[34,22506,22435],{"class":47},[34,22508,22509],{"class":181},"(zeros);\n",[34,22511,22512],{"class":36,"line":748},[34,22513,62],{"emptyLinePlaceholder":61},[34,22515,22516],{"class":36,"line":754},[34,22517,22518],{"class":40},"// Realloc (resize allocated memory)\n",[34,22520,22521,22523,22525,22528,22530,22532,22534,22536,22538,22541,22544,22546,22548,22550,22552,22554,22556],{"class":36,"line":759},[34,22522,17772],{"class":580},[34,22524,18083],{"class":580},[34,22526,22527],{"class":181},"resized ",[34,22529,1301],{"class":580},[34,22531,3204],{"class":181},[34,22533,17772],{"class":580},[34,22535,18083],{"class":580},[34,22537,1617],{"class":181},[34,22539,22540],{"class":47},"realloc",[34,22542,22543],{"class":181},"(arr, ",[34,22545,11923],{"class":50},[34,22547,18083],{"class":580},[34,22549,17933],{"class":580},[34,22551,1607],{"class":181},[34,22553,17772],{"class":580},[34,22555,18121],{"class":181},[34,22557,22558],{"class":40}," // Expand to 10\n",[34,22560,22561,22563,22566,22568,22570],{"class":36,"line":771},[34,22562,10383],{"class":580},[34,22564,22565],{"class":181}," (resized ",[34,22567,20013],{"class":580},[34,22569,18171],{"class":50},[34,22571,2416],{"class":181},[34,22573,22574,22577,22579],{"class":36,"line":794},[34,22575,22576],{"class":181},"    arr ",[34,22578,1301],{"class":580},[34,22580,22581],{"class":181}," resized;\n",[34,22583,22584],{"class":36,"line":824},[34,22585,693],{"class":181},[34,22587,22588,22590],{"class":36,"line":830},[34,22589,22435],{"class":47},[34,22591,22592],{"class":181},"(arr);\n",[34,22594,22595],{"class":36,"line":839},[34,22596,62],{"emptyLinePlaceholder":61},[34,22598,22599],{"class":36,"line":854},[34,22600,22601],{"class":40},"// Memory operations (string.h)\n",[34,22603,22604,22606,22608,22610,22612],{"class":36,"line":860},[34,22605,17772],{"class":580},[34,22607,21363],{"class":675},[34,22609,10260],{"class":181},[34,22611,11923],{"class":50},[34,22613,3415],{"class":181},[34,22615,22616,22619,22621,22623,22625,22627,22630],{"class":36,"line":865},[34,22617,22618],{"class":47},"memset",[34,22620,21377],{"class":181},[34,22622,2773],{"class":50},[34,22624,1798],{"class":181},[34,22626,21702],{"class":580},[34,22628,22629],{"class":181},"(buffer));",[34,22631,22632],{"class":40}," // Fill with value\n",[34,22634,22635,22638,22641],{"class":36,"line":870},[34,22636,22637],{"class":47},"memcpy",[34,22639,22640],{"class":181},"(dest, src, size);",[34,22642,22643],{"class":40},"         // Copy memory block\n",[34,22645,22646,22649,22651],{"class":36,"line":876},[34,22647,22648],{"class":47},"memmove",[34,22650,22640],{"class":181},[34,22652,22653],{"class":40},"        // Safe copy (handles overlap)\n",[34,22655,22656,22659,22662],{"class":36,"line":885},[34,22657,22658],{"class":47},"memcmp",[34,22660,22661],{"class":181},"(buf1, buf2, size);",[34,22663,22664],{"class":40},"        // Compare memory blocks\n",[388,22666,22667],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":22669},[22670],{"id":22291,"depth":44,"text":22286},"Memory Management in C.",{},"/c/memory-management",{"title":22286,"description":22671},"c/memory-management",[4377,18137,18138,18139],"Lh04NqVEkQqrQ0rleaz1acz8OSKMvVfQVTKFEskZ3o0",{"id":22679,"title":22680,"body":22681,"date":402,"description":23050,"extension":404,"meta":23051,"navigation":61,"order":65,"path":23052,"seo":23053,"stem":23054,"subject":4377,"tags":23055,"__hash__":23056},"topics/c/operators.md","Operators",{"type":8,"value":22682,"toc":23047},[22683,22686,23044],[11,22684,22680],{"id":22685},"operators",[25,22687,22689],{"className":17759,"code":22688,"language":4377,"meta":30,"style":30},"// Arithmetic\nint a = 10 + 5;                  // Addition\nint b = 10 - 5;                  // Subtraction\nint c = 10 * 5;                  // Multiplication\nint d = 10 / 3;                  // Division (integer: 3)\nint e = 10 % 3;                  // Modulus (remainder: 1)\n\n// Increment/Decrement\na++;                             // Post-increment\n++a;                             // Pre-increment\nb--;                             // Post-decrement\n--b;                             // Pre-decrement\n\n// Comparison\na == b;                          // Equal to\na != b;                          // Not equal to\na \u003C b;                           // Less than\na > b;                           // Greater than\na \u003C= b;                          // Less than or equal\na >= b;                          // Greater than or equal\n\n// Logical\n(a && b);                        // AND\n(a || b);                        // OR\n!a;                              // NOT\n\n// Bitwise\na & b;                           // AND\na | b;                           // OR\na ^ b;                           // XOR\n~a;                              // NOT\na \u003C\u003C 2;                          // Left shift\na >> 2;                          // Right shift\n",[20,22690,22691,22696,22715,22735,22754,22775,22796,22800,22805,22816,22826,22837,22847,22851,22856,22867,22878,22889,22900,22911,22922,22926,22931,22945,22956,22965,22969,22974,22985,22996,23008,23016,23030],{"__ignoreMap":30},[34,22692,22693],{"class":36,"line":37},[34,22694,22695],{"class":40},"// Arithmetic\n",[34,22697,22698,22700,22702,22704,22706,22708,22710,22712],{"class":36,"line":44},[34,22699,17772],{"class":580},[34,22701,8065],{"class":181},[34,22703,1301],{"class":580},[34,22705,13123],{"class":50},[34,22707,11537],{"class":580},[34,22709,11144],{"class":50},[34,22711,17909],{"class":181},[34,22713,22714],{"class":40},"                  // Addition\n",[34,22716,22717,22719,22722,22724,22726,22728,22730,22732],{"class":36,"line":58},[34,22718,17772],{"class":580},[34,22720,22721],{"class":181}," b ",[34,22723,1301],{"class":580},[34,22725,13123],{"class":50},[34,22727,19423],{"class":580},[34,22729,11144],{"class":50},[34,22731,17909],{"class":181},[34,22733,22734],{"class":40},"                  // Subtraction\n",[34,22736,22737,22739,22741,22743,22745,22747,22749,22751],{"class":36,"line":65},[34,22738,17772],{"class":580},[34,22740,4382],{"class":181},[34,22742,1301],{"class":580},[34,22744,13123],{"class":50},[34,22746,18083],{"class":580},[34,22748,11144],{"class":50},[34,22750,17909],{"class":181},[34,22752,22753],{"class":40},"                  // Multiplication\n",[34,22755,22756,22758,22761,22763,22765,22768,22770,22772],{"class":36,"line":71},[34,22757,17772],{"class":580},[34,22759,22760],{"class":181}," d ",[34,22762,1301],{"class":580},[34,22764,13123],{"class":50},[34,22766,22767],{"class":580}," /",[34,22769,11147],{"class":50},[34,22771,17909],{"class":181},[34,22773,22774],{"class":40},"                  // Division (integer: 3)\n",[34,22776,22777,22779,22782,22784,22786,22789,22791,22793],{"class":36,"line":77},[34,22778,17772],{"class":580},[34,22780,22781],{"class":181}," e ",[34,22783,1301],{"class":580},[34,22785,13123],{"class":50},[34,22787,22788],{"class":580}," %",[34,22790,11147],{"class":50},[34,22792,17909],{"class":181},[34,22794,22795],{"class":40},"                  // Modulus (remainder: 1)\n",[34,22797,22798],{"class":36,"line":82},[34,22799,62],{"emptyLinePlaceholder":61},[34,22801,22802],{"class":36,"line":88},[34,22803,22804],{"class":40},"// Increment/Decrement\n",[34,22806,22807,22809,22811,22813],{"class":36,"line":242},[34,22808,145],{"class":181},[34,22810,11928],{"class":580},[34,22812,17909],{"class":181},[34,22814,22815],{"class":40},"                             // Post-increment\n",[34,22817,22818,22820,22823],{"class":36,"line":250},[34,22819,11928],{"class":580},[34,22821,22822],{"class":181},"a;",[34,22824,22825],{"class":40},"                             // Pre-increment\n",[34,22827,22828,22830,22832,22834],{"class":36,"line":263},[34,22829,8355],{"class":181},[34,22831,8103],{"class":580},[34,22833,17909],{"class":181},[34,22835,22836],{"class":40},"                             // Post-decrement\n",[34,22838,22839,22841,22844],{"class":36,"line":275},[34,22840,8103],{"class":580},[34,22842,22843],{"class":181},"b;",[34,22845,22846],{"class":40},"                             // Pre-decrement\n",[34,22848,22849],{"class":36,"line":700},[34,22850,62],{"emptyLinePlaceholder":61},[34,22852,22853],{"class":36,"line":706},[34,22854,22855],{"class":40},"// Comparison\n",[34,22857,22858,22860,22862,22864],{"class":36,"line":715},[34,22859,18516],{"class":181},[34,22861,18168],{"class":580},[34,22863,18961],{"class":181},[34,22865,22866],{"class":40},"                          // Equal to\n",[34,22868,22869,22871,22873,22875],{"class":36,"line":725},[34,22870,18516],{"class":181},[34,22872,20013],{"class":580},[34,22874,18961],{"class":181},[34,22876,22877],{"class":40},"                          // Not equal to\n",[34,22879,22880,22882,22884,22886],{"class":36,"line":734},[34,22881,18516],{"class":181},[34,22883,815],{"class":580},[34,22885,18961],{"class":181},[34,22887,22888],{"class":40},"                           // Less than\n",[34,22890,22891,22893,22895,22897],{"class":36,"line":742},[34,22892,18516],{"class":181},[34,22894,5691],{"class":580},[34,22896,18961],{"class":181},[34,22898,22899],{"class":40},"                           // Greater than\n",[34,22901,22902,22904,22906,22908],{"class":36,"line":748},[34,22903,18516],{"class":181},[34,22905,22032],{"class":580},[34,22907,18961],{"class":181},[34,22909,22910],{"class":40},"                          // Less than or equal\n",[34,22912,22913,22915,22917,22919],{"class":36,"line":754},[34,22914,18516],{"class":181},[34,22916,18401],{"class":580},[34,22918,18961],{"class":181},[34,22920,22921],{"class":40},"                          // Greater than or equal\n",[34,22923,22924],{"class":36,"line":759},[34,22925,62],{"emptyLinePlaceholder":61},[34,22927,22928],{"class":36,"line":771},[34,22929,22930],{"class":40},"// Logical\n",[34,22932,22933,22936,22939,22942],{"class":36,"line":794},[34,22934,22935],{"class":181},"(a ",[34,22937,22938],{"class":580},"&&",[34,22940,22941],{"class":181}," b);",[34,22943,22944],{"class":40},"                        // AND\n",[34,22946,22947,22949,22951,22953],{"class":36,"line":824},[34,22948,22935],{"class":181},[34,22950,10892],{"class":580},[34,22952,22941],{"class":181},[34,22954,22955],{"class":40},"                        // OR\n",[34,22957,22958,22960,22962],{"class":36,"line":830},[34,22959,10307],{"class":580},[34,22961,22822],{"class":181},[34,22963,22964],{"class":40},"                              // NOT\n",[34,22966,22967],{"class":36,"line":839},[34,22968,62],{"emptyLinePlaceholder":61},[34,22970,22971],{"class":36,"line":854},[34,22972,22973],{"class":40},"// Bitwise\n",[34,22975,22976,22978,22980,22982],{"class":36,"line":860},[34,22977,18516],{"class":181},[34,22979,19502],{"class":580},[34,22981,18961],{"class":181},[34,22983,22984],{"class":40},"                           // AND\n",[34,22986,22987,22989,22991,22993],{"class":36,"line":865},[34,22988,18516],{"class":181},[34,22990,2670],{"class":580},[34,22992,18961],{"class":181},[34,22994,22995],{"class":40},"                           // OR\n",[34,22997,22998,23000,23003,23005],{"class":36,"line":870},[34,22999,18516],{"class":181},[34,23001,23002],{"class":580},"^",[34,23004,18961],{"class":181},[34,23006,23007],{"class":40},"                           // XOR\n",[34,23009,23010,23012,23014],{"class":36,"line":876},[34,23011,13692],{"class":580},[34,23013,22822],{"class":181},[34,23015,22964],{"class":40},[34,23017,23018,23020,23023,23025,23027],{"class":36,"line":885},[34,23019,18516],{"class":181},[34,23021,23022],{"class":580},"\u003C\u003C",[34,23024,4292],{"class":50},[34,23026,17909],{"class":181},[34,23028,23029],{"class":40},"                          // Left shift\n",[34,23031,23032,23034,23037,23039,23041],{"class":36,"line":895},[34,23033,18516],{"class":181},[34,23035,23036],{"class":580},">>",[34,23038,4292],{"class":50},[34,23040,17909],{"class":181},[34,23042,23043],{"class":40},"                          // Right shift\n",[388,23045,23046],{},"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 .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":30,"searchDepth":44,"depth":44,"links":23048},[23049],{"id":22685,"depth":44,"text":22680},"Operators in C.",{},"/c/operators",{"title":22680,"description":23050},"c/operators",[4377,18137,18138,18139],"DYuCL7Rw-n4gGLRL9biZmpFvd3GsEksRdH18mAkK8jc",{"id":23058,"title":23059,"body":23060,"date":2633,"description":23142,"extension":404,"meta":23143,"navigation":61,"order":37,"path":23144,"seo":23145,"stem":23146,"subject":4377,"tags":23147,"__hash__":23148},"topics/c/overview.md","C",{"type":8,"value":23061,"toc":23140},[23062],[309,23063,23064,23068,23074,23078,23082,23086,23092,23096,23102,23108,23112,23116,23120,23126,23132,23136],{},[312,23065,23066],{},[145,23067,22151],{"href":22279},[312,23069,23070],{},[145,23071,23073],{"href":23072},"/c/variables-types","Variables & Types",[312,23075,23076],{},[145,23077,22680],{"href":23052},[312,23079,23080],{},[145,23081,18818],{"href":19345},[312,23083,23084],{},[145,23085,10991],{"href":22144},[312,23087,23088],{},[145,23089,23091],{"href":23090},"/c/pointers","Pointers",[312,23093,23094],{},[145,23095,10061],{"href":18133},[312,23097,23098],{},[145,23099,23101],{"href":23100},"/c/strings","Strings",[312,23103,23104],{},[145,23105,23107],{"href":23106},"/c/structs","Structs",[312,23109,23110],{},[145,23111,22286],{"href":22673},[312,23113,23114],{},[145,23115,21267],{"href":21804},[312,23117,23118],{},[145,23119,19352],{"href":21260},[312,23121,23122],{},[145,23123,23125],{"href":23124},"/c/preprocessor","Preprocessor",[312,23127,23128],{},[145,23129,23131],{"href":23130},"/c/standard-library-functions","Standard Library Functions",[312,23133,23134],{},[145,23135,18143],{"href":18548},[312,23137,23138],{},[145,23139,18555],{"href":18811},{"title":30,"searchDepth":44,"depth":44,"links":23141},[],"Essential C programming syntax, pointers, memory management, and standard library functions.",{},"/c/overview",{"title":23059,"description":23142},"c/overview",[4377,18137,18138,18139],"MnGpO-nYH2jW1_Xewh-t3Th2QXH9__HjvSXb1EC43o0",{"id":23150,"title":23091,"body":23151,"date":402,"description":23543,"extension":404,"meta":23544,"navigation":61,"order":82,"path":23090,"seo":23545,"stem":23546,"subject":4377,"tags":23547,"__hash__":23548},"topics/c/pointers.md",{"type":8,"value":23152,"toc":23540},[23153,23156,23538],[11,23154,23091],{"id":23155},"pointers",[25,23157,23159],{"className":17759,"code":23158,"language":4377,"meta":30,"style":30},"// Pointer basics\nint x = 10;\nint *ptr = &x;                   // Pointer stores address of x\nprintf(\"%d\\n\", *ptr);            // Dereference: access value (10)\nprintf(\"%p\\n\", ptr);             // Print address\n\n// Modifying through pointers\n*ptr = 20;                       // Changes x to 20\n\n// Null pointer\nint *null_ptr = NULL;            // Safe initialization\nif (null_ptr != NULL) {          // Always check before dereferencing\n    printf(\"%d\\n\", *null_ptr);\n}\n\n// Pointer arithmetic\nint arr[] = {1, 2, 3, 4, 5};\nint *p = arr;                    // Points to first element\np++;                             // Move to next element\nprintf(\"%d\\n\", *p);              // Prints 2\n\n// Double pointers\nint **pp = &ptr;                 // Pointer to pointer\nprintf(\"%d\\n\", **pp);            // Double dereference\n\n// Function pointers\nint (*func_ptr)(int, int) = add; // Pointer to function\nint result = func_ptr(5, 3);     // Call through pointer\n",[20,23160,23161,23166,23179,23198,23222,23241,23245,23250,23265,23269,23274,23292,23309,23328,23332,23336,23341,23374,23390,23401,23424,23428,23433,23453,23478,23482,23487,23514],{"__ignoreMap":30},[34,23162,23163],{"class":36,"line":37},[34,23164,23165],{"class":40},"// Pointer basics\n",[34,23167,23168,23170,23173,23175,23177],{"class":36,"line":44},[34,23169,17772],{"class":580},[34,23171,23172],{"class":181}," x ",[34,23174,1301],{"class":580},[34,23176,13123],{"class":50},[34,23178,593],{"class":181},[34,23180,23181,23183,23185,23188,23190,23192,23195],{"class":36,"line":58},[34,23182,17772],{"class":580},[34,23184,18083],{"class":580},[34,23186,23187],{"class":181},"ptr ",[34,23189,1301],{"class":580},[34,23191,11373],{"class":580},[34,23193,23194],{"class":181},"x;",[34,23196,23197],{"class":40},"                   // Pointer stores address of x\n",[34,23199,23200,23202,23204,23206,23208,23210,23212,23214,23217,23219],{"class":36,"line":65},[34,23201,11303],{"class":47},[34,23203,1607],{"class":181},[34,23205,10389],{"class":54},[34,23207,18105],{"class":50},[34,23209,10389],{"class":54},[34,23211,1798],{"class":181},[34,23213,4289],{"class":580},[34,23215,23216],{"class":675},"ptr",[34,23218,19682],{"class":181},[34,23220,23221],{"class":40},"            // Dereference: access value (10)\n",[34,23223,23224,23226,23228,23230,23233,23235,23238],{"class":36,"line":71},[34,23225,11303],{"class":47},[34,23227,1607],{"class":181},[34,23229,10389],{"class":54},[34,23231,23232],{"class":50},"%p\\n",[34,23234,10389],{"class":54},[34,23236,23237],{"class":181},", ptr);",[34,23239,23240],{"class":40},"             // Print address\n",[34,23242,23243],{"class":36,"line":77},[34,23244,62],{"emptyLinePlaceholder":61},[34,23246,23247],{"class":36,"line":82},[34,23248,23249],{"class":40},"// Modifying through pointers\n",[34,23251,23252,23254,23256,23258,23260,23262],{"class":36,"line":88},[34,23253,4289],{"class":580},[34,23255,23187],{"class":181},[34,23257,1301],{"class":580},[34,23259,22419],{"class":50},[34,23261,17909],{"class":181},[34,23263,23264],{"class":40},"                       // Changes x to 20\n",[34,23266,23267],{"class":36,"line":242},[34,23268,62],{"emptyLinePlaceholder":61},[34,23270,23271],{"class":36,"line":250},[34,23272,23273],{"class":40},"// Null pointer\n",[34,23275,23276,23278,23280,23283,23285,23287,23289],{"class":36,"line":263},[34,23277,17772],{"class":580},[34,23279,18083],{"class":580},[34,23281,23282],{"class":181},"null_ptr ",[34,23284,1301],{"class":580},[34,23286,18171],{"class":50},[34,23288,17909],{"class":181},[34,23290,23291],{"class":40},"            // Safe initialization\n",[34,23293,23294,23296,23299,23301,23303,23306],{"class":36,"line":275},[34,23295,10383],{"class":580},[34,23297,23298],{"class":181}," (null_ptr ",[34,23300,20013],{"class":580},[34,23302,18171],{"class":50},[34,23304,23305],{"class":181},") {",[34,23307,23308],{"class":40},"          // Always check before dereferencing\n",[34,23310,23311,23313,23315,23317,23319,23321,23323,23325],{"class":36,"line":700},[34,23312,18852],{"class":47},[34,23314,1607],{"class":181},[34,23316,10389],{"class":54},[34,23318,18105],{"class":50},[34,23320,10389],{"class":54},[34,23322,1798],{"class":181},[34,23324,4289],{"class":580},[34,23326,23327],{"class":181},"null_ptr);\n",[34,23329,23330],{"class":36,"line":706},[34,23331,693],{"class":181},[34,23333,23334],{"class":36,"line":715},[34,23335,62],{"emptyLinePlaceholder":61},[34,23337,23338],{"class":36,"line":725},[34,23339,23340],{"class":40},"// Pointer arithmetic\n",[34,23342,23343,23345,23348,23350,23352,23354,23356,23358,23360,23362,23364,23366,23368,23370,23372],{"class":36,"line":734},[34,23344,17772],{"class":580},[34,23346,23347],{"class":181}," arr",[34,23349,17842],{"class":580},[34,23351,683],{"class":580},[34,23353,11838],{"class":181},[34,23355,8318],{"class":50},[34,23357,1798],{"class":181},[34,23359,8324],{"class":50},[34,23361,1798],{"class":181},[34,23363,3162],{"class":50},[34,23365,1798],{"class":181},[34,23367,18010],{"class":50},[34,23369,1798],{"class":181},[34,23371,2778],{"class":50},[34,23373,17632],{"class":181},[34,23375,23376,23378,23380,23382,23384,23387],{"class":36,"line":742},[34,23377,17772],{"class":580},[34,23379,18083],{"class":580},[34,23381,18086],{"class":181},[34,23383,1301],{"class":580},[34,23385,23386],{"class":181}," arr;",[34,23388,23389],{"class":40},"                    // Points to first element\n",[34,23391,23392,23394,23396,23398],{"class":36,"line":748},[34,23393,16],{"class":181},[34,23395,11928],{"class":580},[34,23397,17909],{"class":181},[34,23399,23400],{"class":40},"                             // Move to next element\n",[34,23402,23403,23405,23407,23409,23411,23413,23415,23417,23419,23421],{"class":36,"line":754},[34,23404,11303],{"class":47},[34,23406,1607],{"class":181},[34,23408,10389],{"class":54},[34,23410,18105],{"class":50},[34,23412,10389],{"class":54},[34,23414,1798],{"class":181},[34,23416,4289],{"class":580},[34,23418,16],{"class":675},[34,23420,19682],{"class":181},[34,23422,23423],{"class":40},"              // Prints 2\n",[34,23425,23426],{"class":36,"line":759},[34,23427,62],{"emptyLinePlaceholder":61},[34,23429,23430],{"class":36,"line":771},[34,23431,23432],{"class":40},"// Double pointers\n",[34,23434,23435,23437,23440,23443,23445,23447,23450],{"class":36,"line":794},[34,23436,17772],{"class":580},[34,23438,23439],{"class":580}," **",[34,23441,23442],{"class":181},"pp ",[34,23444,1301],{"class":580},[34,23446,11373],{"class":580},[34,23448,23449],{"class":181},"ptr;",[34,23451,23452],{"class":40},"                 // Pointer to pointer\n",[34,23454,23455,23457,23459,23461,23463,23465,23467,23470,23473,23475],{"class":36,"line":824},[34,23456,11303],{"class":47},[34,23458,1607],{"class":181},[34,23460,10389],{"class":54},[34,23462,18105],{"class":50},[34,23464,10389],{"class":54},[34,23466,1798],{"class":181},[34,23468,23469],{"class":580},"**",[34,23471,23472],{"class":675},"pp",[34,23474,19682],{"class":181},[34,23476,23477],{"class":40},"            // Double dereference\n",[34,23479,23480],{"class":36,"line":830},[34,23481,62],{"emptyLinePlaceholder":61},[34,23483,23484],{"class":36,"line":839},[34,23485,23486],{"class":40},"// Function pointers\n",[34,23488,23489,23491,23493,23495,23498,23500,23502,23504,23506,23508,23511],{"class":36,"line":854},[34,23490,17772],{"class":580},[34,23492,3204],{"class":181},[34,23494,4289],{"class":580},[34,23496,23497],{"class":181},"func_ptr)(",[34,23499,17772],{"class":580},[34,23501,1798],{"class":181},[34,23503,17772],{"class":580},[34,23505,4817],{"class":181},[34,23507,1301],{"class":580},[34,23509,23510],{"class":181}," add;",[34,23512,23513],{"class":40}," // Pointer to function\n",[34,23515,23516,23518,23520,23522,23525,23527,23529,23531,23533,23535],{"class":36,"line":860},[34,23517,17772],{"class":580},[34,23519,20093],{"class":181},[34,23521,1301],{"class":580},[34,23523,23524],{"class":47}," func_ptr",[34,23526,1607],{"class":181},[34,23528,2778],{"class":50},[34,23530,1798],{"class":181},[34,23532,3162],{"class":50},[34,23534,19682],{"class":181},[34,23536,23537],{"class":40},"     // Call through pointer\n",[388,23539,18542],{},{"title":30,"searchDepth":44,"depth":44,"links":23541},[23542],{"id":23155,"depth":44,"text":23091},"Pointers in C.",{},{"title":23091,"description":23543},"c/pointers",[4377,18137,18138,18139],"dFWYwcWokQgpfvwHoAy5CdV62sYE6PiSiUI-zBoqUjI",{"id":23550,"title":23125,"body":23551,"date":402,"description":23931,"extension":404,"meta":23932,"navigation":61,"order":706,"path":23124,"seo":23933,"stem":23934,"subject":4377,"tags":23935,"__hash__":23936},"topics/c/preprocessor.md",{"type":8,"value":23552,"toc":23928},[23553,23556,23925],[11,23554,23125],{"id":23555},"preprocessor",[25,23557,23559],{"className":17759,"code":23558,"language":4377,"meta":30,"style":30},"// Include directives\n#include \u003Cstdio.h>               // Standard library\n#include \"myheader.h\"            // Local header file\n\n// Macro definitions\n#define PI 3.14159               // Constant macro\n#define MAX(a, b) ((a) > (b) ? (a) : (b)) // Function-like macro\n#define SQUARE(x) ((x) * (x))    // Always use parentheses\n\n// Conditional compilation\n#ifdef DEBUG\n    printf(\"Debug mode\\n\");\n#endif\n\n#ifndef HEADER_H\n#define HEADER_H\n    // Header file content\n#endif\n\n#if defined(LINUX)\n    // Linux-specific code\n#elif defined(WINDOWS)\n    // Windows-specific code\n#else\n    // Default code\n#endif\n\n// Predefined macros\n__FILE__                         // Current file name\n__LINE__                         // Current line number\n__DATE__                         // Compilation date\n__TIME__                         // Compilation time\n\n// Stringification\n#define STRINGIFY(x) #x\nprintf(\"%s\\n\", STRINGIFY(Hello)); // Prints \"Hello\"\n\n// Token pasting\n#define CONCAT(a, b) a##b\nint CONCAT(var, 123) = 10;       // Creates var123\n",[20,23560,23561,23566,23575,23585,23589,23594,23608,23644,23667,23671,23676,23684,23699,23704,23708,23716,23722,23727,23731,23735,23750,23755,23769,23774,23779,23784,23788,23792,23797,23805,23813,23821,23829,23833,23838,23852,23875,23879,23884,23902],{"__ignoreMap":30},[34,23562,23563],{"class":36,"line":37},[34,23564,23565],{"class":40},"// Include directives\n",[34,23567,23568,23570,23572],{"class":36,"line":44},[34,23569,19569],{"class":580},[34,23571,22168],{"class":54},[34,23573,23574],{"class":40},"               // Standard library\n",[34,23576,23577,23579,23582],{"class":36,"line":58},[34,23578,19569],{"class":580},[34,23580,23581],{"class":54}," \"myheader.h\"",[34,23583,23584],{"class":40},"            // Local header file\n",[34,23586,23587],{"class":36,"line":65},[34,23588,62],{"emptyLinePlaceholder":61},[34,23590,23591],{"class":36,"line":71},[34,23592,23593],{"class":40},"// Macro definitions\n",[34,23595,23596,23599,23602,23605],{"class":36,"line":77},[34,23597,23598],{"class":580},"#define",[34,23600,23601],{"class":47}," PI",[34,23603,23604],{"class":50}," 3.14159",[34,23606,23607],{"class":40},"               // Constant macro\n",[34,23609,23610,23612,23615,23617,23619,23621,23623,23626,23628,23631,23633,23636,23638,23641],{"class":36,"line":82},[34,23611,23598],{"class":580},[34,23613,23614],{"class":47}," MAX",[34,23616,1607],{"class":181},[34,23618,145],{"class":675},[34,23620,1798],{"class":181},[34,23622,8355],{"class":675},[34,23624,23625],{"class":181},") ((a) ",[34,23627,5691],{"class":580},[34,23629,23630],{"class":181}," (b) ",[34,23632,18954],{"class":580},[34,23634,23635],{"class":181}," (a) ",[34,23637,165],{"class":580},[34,23639,23640],{"class":181}," (b))",[34,23642,23643],{"class":40}," // Function-like macro\n",[34,23645,23646,23648,23651,23653,23656,23659,23661,23664],{"class":36,"line":88},[34,23647,23598],{"class":580},[34,23649,23650],{"class":47}," SQUARE",[34,23652,1607],{"class":181},[34,23654,23655],{"class":675},"x",[34,23657,23658],{"class":181},") ((x) ",[34,23660,4289],{"class":580},[34,23662,23663],{"class":181}," (x))",[34,23665,23666],{"class":40},"    // Always use parentheses\n",[34,23668,23669],{"class":36,"line":242},[34,23670,62],{"emptyLinePlaceholder":61},[34,23672,23673],{"class":36,"line":250},[34,23674,23675],{"class":40},"// Conditional compilation\n",[34,23677,23678,23681],{"class":36,"line":263},[34,23679,23680],{"class":580},"#ifdef",[34,23682,23683],{"class":47}," DEBUG\n",[34,23685,23686,23688,23690,23693,23695,23697],{"class":36,"line":275},[34,23687,18852],{"class":47},[34,23689,1607],{"class":181},[34,23691,23692],{"class":54},"\"Debug mode",[34,23694,18860],{"class":50},[34,23696,10389],{"class":54},[34,23698,1586],{"class":181},[34,23700,23701],{"class":36,"line":700},[34,23702,23703],{"class":580},"#endif\n",[34,23705,23706],{"class":36,"line":706},[34,23707,62],{"emptyLinePlaceholder":61},[34,23709,23710,23713],{"class":36,"line":715},[34,23711,23712],{"class":580},"#ifndef",[34,23714,23715],{"class":47}," HEADER_H\n",[34,23717,23718,23720],{"class":36,"line":725},[34,23719,23598],{"class":580},[34,23721,23715],{"class":47},[34,23723,23724],{"class":36,"line":734},[34,23725,23726],{"class":40},"    // Header file content\n",[34,23728,23729],{"class":36,"line":742},[34,23730,23703],{"class":580},[34,23732,23733],{"class":36,"line":748},[34,23734,62],{"emptyLinePlaceholder":61},[34,23736,23737,23740,23743,23745,23748],{"class":36,"line":754},[34,23738,23739],{"class":580},"#if",[34,23741,23742],{"class":580}," defined",[34,23744,1607],{"class":181},[34,23746,23747],{"class":47},"LINUX",[34,23749,3372],{"class":181},[34,23751,23752],{"class":36,"line":759},[34,23753,23754],{"class":40},"    // Linux-specific code\n",[34,23756,23757,23760,23762,23764,23767],{"class":36,"line":771},[34,23758,23759],{"class":580},"#elif",[34,23761,23742],{"class":580},[34,23763,1607],{"class":181},[34,23765,23766],{"class":47},"WINDOWS",[34,23768,3372],{"class":181},[34,23770,23771],{"class":36,"line":794},[34,23772,23773],{"class":40},"    // Windows-specific code\n",[34,23775,23776],{"class":36,"line":824},[34,23777,23778],{"class":580},"#else\n",[34,23780,23781],{"class":36,"line":830},[34,23782,23783],{"class":40},"    // Default code\n",[34,23785,23786],{"class":36,"line":839},[34,23787,23703],{"class":580},[34,23789,23790],{"class":36,"line":854},[34,23791,62],{"emptyLinePlaceholder":61},[34,23793,23794],{"class":36,"line":860},[34,23795,23796],{"class":40},"// Predefined macros\n",[34,23798,23799,23802],{"class":36,"line":865},[34,23800,23801],{"class":47},"__FILE__",[34,23803,23804],{"class":40},"                         // Current file name\n",[34,23806,23807,23810],{"class":36,"line":870},[34,23808,23809],{"class":47},"__LINE__",[34,23811,23812],{"class":40},"                         // Current line number\n",[34,23814,23815,23818],{"class":36,"line":876},[34,23816,23817],{"class":47},"__DATE__",[34,23819,23820],{"class":40},"                         // Compilation date\n",[34,23822,23823,23826],{"class":36,"line":885},[34,23824,23825],{"class":47},"__TIME__",[34,23827,23828],{"class":40},"                         // Compilation time\n",[34,23830,23831],{"class":36,"line":895},[34,23832,62],{"emptyLinePlaceholder":61},[34,23834,23835],{"class":36,"line":904},[34,23836,23837],{"class":40},"// Stringification\n",[34,23839,23840,23842,23845,23847,23849],{"class":36,"line":915},[34,23841,23598],{"class":580},[34,23843,23844],{"class":47}," STRINGIFY",[34,23846,1607],{"class":181},[34,23848,23655],{"class":675},[34,23850,23851],{"class":181},") #x\n",[34,23853,23854,23856,23858,23860,23862,23864,23866,23869,23872],{"class":36,"line":927},[34,23855,11303],{"class":47},[34,23857,1607],{"class":181},[34,23859,10389],{"class":54},[34,23861,18187],{"class":50},[34,23863,10389],{"class":54},[34,23865,1798],{"class":181},[34,23867,23868],{"class":47},"STRINGIFY",[34,23870,23871],{"class":181},"(Hello));",[34,23873,23874],{"class":40}," // Prints \"Hello\"\n",[34,23876,23877],{"class":36,"line":932},[34,23878,62],{"emptyLinePlaceholder":61},[34,23880,23881],{"class":36,"line":944},[34,23882,23883],{"class":40},"// Token pasting\n",[34,23885,23886,23888,23891,23893,23895,23897,23899],{"class":36,"line":966},[34,23887,23598],{"class":580},[34,23889,23890],{"class":47}," CONCAT",[34,23892,1607],{"class":181},[34,23894,145],{"class":675},[34,23896,1798],{"class":181},[34,23898,8355],{"class":675},[34,23900,23901],{"class":181},") a##b\n",[34,23903,23904,23906,23908,23911,23914,23916,23918,23920,23922],{"class":36,"line":1948},[34,23905,17772],{"class":580},[34,23907,23890],{"class":47},[34,23909,23910],{"class":181},"(var, ",[34,23912,23913],{"class":50},"123",[34,23915,4817],{"class":181},[34,23917,1301],{"class":580},[34,23919,13123],{"class":50},[34,23921,17909],{"class":181},[34,23923,23924],{"class":40},"       // Creates var123\n",[388,23926,23927],{},"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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":23929},[23930],{"id":23555,"depth":44,"text":23125},"Preprocessor in C.",{},{"title":23125,"description":23931},"c/preprocessor",[4377,18137,18138,18139],"C5L6dpl8XHcDPmmQhHXcTsZpkAdRqIMMzuoA4CEZjtA",{"id":23938,"title":23131,"body":23939,"date":402,"description":24341,"extension":404,"meta":24342,"navigation":61,"order":715,"path":23130,"seo":24343,"stem":24344,"subject":4377,"tags":24345,"__hash__":24346},"topics/c/standard-library-functions.md",{"type":8,"value":23940,"toc":24338},[23941,23944,24335],[11,23942,23131],{"id":23943},"standard-library-functions",[25,23945,23947],{"className":17759,"code":23946,"language":4377,"meta":30,"style":30},"// stdio.h - Input/Output\nprintf(\"Format: %d\\n\", value);   // Print to stdout\nscanf(\"%d\", &value);             // Read from stdin\ngetchar();                       // Read single character\nputchar('A');                    // Write single character\nputs(\"Hello\");                   // Print string with newline\n\n// stdlib.h - Utilities\natoi(\"123\");                     // String to int\natof(\"3.14\");                    // String to float\nabs(-5);                         // Absolute value\nrand();                          // Random number\nsrand(time(NULL));               // Seed random generator\nexit(0);                         // Exit program\n\n// math.h - Mathematics\nsqrt(16);                        // Square root\npow(2, 3);                       // Power (2^3)\nceil(3.2);                       // Round up (4)\nfloor(3.8);                      // Round down (3)\nsin(angle);                      // Sine\ncos(angle);                      // Cosine\n\n// time.h - Date/Time\ntime_t now = time(NULL);         // Current time\nstruct tm *local = localtime(&now); // Convert to local time\nchar timestr[26];\nstrftime(timestr, 26, \"%Y-%m-%d\", local); // Format time\n",[20,23948,23949,23954,23973,23997,24008,24022,24036,24040,24045,24060,24075,24091,24101,24121,24135,24139,24144,24158,24176,24191,24205,24216,24226,24230,24235,24257,24286,24300],{"__ignoreMap":30},[34,23950,23951],{"class":36,"line":37},[34,23952,23953],{"class":40},"// stdio.h - Input/Output\n",[34,23955,23956,23958,23960,23963,23965,23967,23970],{"class":36,"line":44},[34,23957,11303],{"class":47},[34,23959,1607],{"class":181},[34,23961,23962],{"class":54},"\"Format: ",[34,23964,18105],{"class":50},[34,23966,10389],{"class":54},[34,23968,23969],{"class":181},", value);",[34,23971,23972],{"class":40},"   // Print to stdout\n",[34,23974,23975,23978,23980,23982,23984,23986,23988,23990,23992,23994],{"class":36,"line":58},[34,23976,23977],{"class":47},"scanf",[34,23979,1607],{"class":181},[34,23981,10389],{"class":54},[34,23983,18285],{"class":50},[34,23985,10389],{"class":54},[34,23987,1798],{"class":181},[34,23989,19502],{"class":580},[34,23991,2871],{"class":675},[34,23993,19682],{"class":181},[34,23995,23996],{"class":40},"             // Read from stdin\n",[34,23998,23999,24002,24005],{"class":36,"line":65},[34,24000,24001],{"class":47},"getchar",[34,24003,24004],{"class":181},"();",[34,24006,24007],{"class":40},"                       // Read single character\n",[34,24009,24010,24013,24015,24017,24019],{"class":36,"line":71},[34,24011,24012],{"class":47},"putchar",[34,24014,1607],{"class":181},[34,24016,21516],{"class":54},[34,24018,19682],{"class":181},[34,24020,24021],{"class":40},"                    // Write single character\n",[34,24023,24024,24027,24029,24031,24033],{"class":36,"line":77},[34,24025,24026],{"class":47},"puts",[34,24028,1607],{"class":181},[34,24030,15564],{"class":54},[34,24032,19682],{"class":181},[34,24034,24035],{"class":40},"                   // Print string with newline\n",[34,24037,24038],{"class":36,"line":82},[34,24039,62],{"emptyLinePlaceholder":61},[34,24041,24042],{"class":36,"line":88},[34,24043,24044],{"class":40},"// stdlib.h - Utilities\n",[34,24046,24047,24050,24052,24055,24057],{"class":36,"line":242},[34,24048,24049],{"class":47},"atoi",[34,24051,1607],{"class":181},[34,24053,24054],{"class":54},"\"123\"",[34,24056,19682],{"class":181},[34,24058,24059],{"class":40},"                     // String to int\n",[34,24061,24062,24065,24067,24070,24072],{"class":36,"line":250},[34,24063,24064],{"class":47},"atof",[34,24066,1607],{"class":181},[34,24068,24069],{"class":54},"\"3.14\"",[34,24071,19682],{"class":181},[34,24073,24074],{"class":40},"                    // String to float\n",[34,24076,24077,24080,24082,24084,24086,24088],{"class":36,"line":263},[34,24078,24079],{"class":47},"abs",[34,24081,1607],{"class":181},[34,24083,22062],{"class":580},[34,24085,2778],{"class":50},[34,24087,19682],{"class":181},[34,24089,24090],{"class":40},"                         // Absolute value\n",[34,24092,24093,24096,24098],{"class":36,"line":275},[34,24094,24095],{"class":47},"rand",[34,24097,24004],{"class":181},[34,24099,24100],{"class":40},"                          // Random number\n",[34,24102,24103,24106,24108,24111,24113,24116,24118],{"class":36,"line":700},[34,24104,24105],{"class":47},"srand",[34,24107,1607],{"class":181},[34,24109,24110],{"class":47},"time",[34,24112,1607],{"class":181},[34,24114,24115],{"class":50},"NULL",[34,24117,18121],{"class":181},[34,24119,24120],{"class":40},"               // Seed random generator\n",[34,24122,24123,24126,24128,24130,24132],{"class":36,"line":706},[34,24124,24125],{"class":47},"exit",[34,24127,1607],{"class":181},[34,24129,2773],{"class":50},[34,24131,19682],{"class":181},[34,24133,24134],{"class":40},"                         // Exit program\n",[34,24136,24137],{"class":36,"line":715},[34,24138,62],{"emptyLinePlaceholder":61},[34,24140,24141],{"class":36,"line":725},[34,24142,24143],{"class":40},"// math.h - Mathematics\n",[34,24145,24146,24149,24151,24153,24155],{"class":36,"line":734},[34,24147,24148],{"class":47},"sqrt",[34,24150,1607],{"class":181},[34,24152,15353],{"class":50},[34,24154,19682],{"class":181},[34,24156,24157],{"class":40},"                        // Square root\n",[34,24159,24160,24163,24165,24167,24169,24171,24173],{"class":36,"line":742},[34,24161,24162],{"class":47},"pow",[34,24164,1607],{"class":181},[34,24166,8324],{"class":50},[34,24168,1798],{"class":181},[34,24170,3162],{"class":50},[34,24172,19682],{"class":181},[34,24174,24175],{"class":40},"                       // Power (2^3)\n",[34,24177,24178,24181,24183,24186,24188],{"class":36,"line":748},[34,24179,24180],{"class":47},"ceil",[34,24182,1607],{"class":181},[34,24184,24185],{"class":50},"3.2",[34,24187,19682],{"class":181},[34,24189,24190],{"class":40},"                       // Round up (4)\n",[34,24192,24193,24195,24197,24200,24202],{"class":36,"line":754},[34,24194,13920],{"class":47},[34,24196,1607],{"class":181},[34,24198,24199],{"class":50},"3.8",[34,24201,19682],{"class":181},[34,24203,24204],{"class":40},"                      // Round down (3)\n",[34,24206,24207,24210,24213],{"class":36,"line":759},[34,24208,24209],{"class":47},"sin",[34,24211,24212],{"class":181},"(angle);",[34,24214,24215],{"class":40},"                      // Sine\n",[34,24217,24218,24221,24223],{"class":36,"line":771},[34,24219,24220],{"class":47},"cos",[34,24222,24212],{"class":181},[34,24224,24225],{"class":40},"                      // Cosine\n",[34,24227,24228],{"class":36,"line":794},[34,24229,62],{"emptyLinePlaceholder":61},[34,24231,24232],{"class":36,"line":824},[34,24233,24234],{"class":40},"// time.h - Date/Time\n",[34,24236,24237,24240,24243,24245,24248,24250,24252,24254],{"class":36,"line":830},[34,24238,24239],{"class":580},"time_t",[34,24241,24242],{"class":181}," now ",[34,24244,1301],{"class":580},[34,24246,24247],{"class":47}," time",[34,24249,1607],{"class":181},[34,24251,24115],{"class":50},[34,24253,19682],{"class":181},[34,24255,24256],{"class":40},"         // Current time\n",[34,24258,24259,24261,24264,24266,24269,24271,24274,24276,24278,24281,24283],{"class":36,"line":839},[34,24260,21640],{"class":580},[34,24262,24263],{"class":181}," tm ",[34,24265,4289],{"class":580},[34,24267,24268],{"class":181},"local ",[34,24270,1301],{"class":580},[34,24272,24273],{"class":47}," localtime",[34,24275,1607],{"class":181},[34,24277,19502],{"class":580},[34,24279,24280],{"class":675},"now",[34,24282,19682],{"class":181},[34,24284,24285],{"class":40}," // Convert to local time\n",[34,24287,24288,24290,24293,24295,24298],{"class":36,"line":854},[34,24289,18236],{"class":580},[34,24291,24292],{"class":675}," timestr",[34,24294,10260],{"class":181},[34,24296,24297],{"class":50},"26",[34,24299,3415],{"class":181},[34,24301,24302,24305,24308,24310,24312,24314,24317,24320,24322,24325,24327,24329,24332],{"class":36,"line":860},[34,24303,24304],{"class":47},"strftime",[34,24306,24307],{"class":181},"(timestr, ",[34,24309,24297],{"class":50},[34,24311,1798],{"class":181},[34,24313,10389],{"class":54},[34,24315,12797],{"class":24316},"s7hpK",[34,24318,24319],{"class":54},"Y-",[34,24321,12797],{"class":24316},[34,24323,24324],{"class":54},"m-",[34,24326,18285],{"class":50},[34,24328,10389],{"class":54},[34,24330,24331],{"class":181},", local);",[34,24333,24334],{"class":40}," // Format time\n",[388,24336,24337],{},"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 .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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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}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":30,"searchDepth":44,"depth":44,"links":24339},[24340],{"id":23943,"depth":44,"text":23131},"Standard Library Functions in C.",{},{"title":23131,"description":24341},"c/standard-library-functions",[4377,18137,18138,18139],"XDnyNI5PTyp3m0dPXRQOrY78ZKi6OQYTsu2r_zVmZuY",{"id":24348,"title":23101,"body":24349,"date":402,"description":24654,"extension":404,"meta":24655,"navigation":61,"order":242,"path":23100,"seo":24656,"stem":24657,"subject":4377,"tags":24658,"__hash__":24659},"topics/c/strings.md",{"type":8,"value":24350,"toc":24651},[24351,24354,24648],[11,24352,23101],{"id":24353},"strings",[25,24355,24357],{"className":17759,"code":24356,"language":4377,"meta":30,"style":30},"// String declaration\nchar str1[] = \"Hello\";           // Array with null terminator\nchar str2[10] = \"World\";         // Fixed-size buffer\nchar *str3 = \"Constant\";         // Pointer to string literal\n\n// String functions (string.h)\nstrlen(str1);                    // Length (excluding \\0)\nstrcpy(str2, str1);              // Copy str1 to str2\nstrcat(str1, str2);              // Concatenate str2 to str1\nstrcmp(str1, str2);              // Compare (0 if equal)\nstrncpy(str2, str1, 5);          // Copy n characters\nstrncat(str1, str2, 3);          // Concatenate n characters\n\n// String manipulation\nchar buffer[50];\nsprintf(buffer, \"Age: %d\", 25);  // Format string into buffer\nsscanf(\"42\", \"%d\", &age);        // Parse string into variable\n\n// Character operations (ctype.h)\nisalpha('A');                    // Check if letter\nisdigit('5');                    // Check if digit\ntoupper('a');                    // Convert to uppercase\ntolower('A');                    // Convert to lowercase\n",[20,24358,24359,24364,24383,24405,24424,24428,24433,24444,24455,24466,24476,24491,24506,24510,24515,24528,24552,24581,24585,24590,24604,24619,24634],{"__ignoreMap":30},[34,24360,24361],{"class":36,"line":37},[34,24362,24363],{"class":40},"// String declaration\n",[34,24365,24366,24368,24371,24373,24375,24378,24380],{"class":36,"line":44},[34,24367,18236],{"class":580},[34,24369,24370],{"class":181}," str1",[34,24372,17842],{"class":580},[34,24374,683],{"class":580},[34,24376,24377],{"class":54}," \"Hello\"",[34,24379,17909],{"class":181},[34,24381,24382],{"class":40},"           // Array with null terminator\n",[34,24384,24385,24387,24390,24392,24394,24396,24398,24400,24402],{"class":36,"line":58},[34,24386,18236],{"class":580},[34,24388,24389],{"class":675}," str2",[34,24391,10260],{"class":181},[34,24393,11923],{"class":50},[34,24395,17799],{"class":181},[34,24397,1301],{"class":580},[34,24399,13876],{"class":54},[34,24401,17909],{"class":181},[34,24403,24404],{"class":40},"         // Fixed-size buffer\n",[34,24406,24407,24409,24411,24414,24416,24419,24421],{"class":36,"line":65},[34,24408,18236],{"class":580},[34,24410,18083],{"class":580},[34,24412,24413],{"class":181},"str3 ",[34,24415,1301],{"class":580},[34,24417,24418],{"class":54}," \"Constant\"",[34,24420,17909],{"class":181},[34,24422,24423],{"class":40},"         // Pointer to string literal\n",[34,24425,24426],{"class":36,"line":71},[34,24427,62],{"emptyLinePlaceholder":61},[34,24429,24430],{"class":36,"line":77},[34,24431,24432],{"class":40},"// String functions (string.h)\n",[34,24434,24435,24438,24441],{"class":36,"line":82},[34,24436,24437],{"class":47},"strlen",[34,24439,24440],{"class":181},"(str1);",[34,24442,24443],{"class":40},"                    // Length (excluding \\0)\n",[34,24445,24446,24449,24452],{"class":36,"line":88},[34,24447,24448],{"class":47},"strcpy",[34,24450,24451],{"class":181},"(str2, str1);",[34,24453,24454],{"class":40},"              // Copy str1 to str2\n",[34,24456,24457,24460,24463],{"class":36,"line":242},[34,24458,24459],{"class":47},"strcat",[34,24461,24462],{"class":181},"(str1, str2);",[34,24464,24465],{"class":40},"              // Concatenate str2 to str1\n",[34,24467,24468,24471,24473],{"class":36,"line":250},[34,24469,24470],{"class":47},"strcmp",[34,24472,24462],{"class":181},[34,24474,24475],{"class":40},"              // Compare (0 if equal)\n",[34,24477,24478,24481,24484,24486,24488],{"class":36,"line":263},[34,24479,24480],{"class":47},"strncpy",[34,24482,24483],{"class":181},"(str2, str1, ",[34,24485,2778],{"class":50},[34,24487,19682],{"class":181},[34,24489,24490],{"class":40},"          // Copy n characters\n",[34,24492,24493,24496,24499,24501,24503],{"class":36,"line":275},[34,24494,24495],{"class":47},"strncat",[34,24497,24498],{"class":181},"(str1, str2, ",[34,24500,3162],{"class":50},[34,24502,19682],{"class":181},[34,24504,24505],{"class":40},"          // Concatenate n characters\n",[34,24507,24508],{"class":36,"line":700},[34,24509,62],{"emptyLinePlaceholder":61},[34,24511,24512],{"class":36,"line":706},[34,24513,24514],{"class":40},"// String manipulation\n",[34,24516,24517,24519,24521,24523,24526],{"class":36,"line":715},[34,24518,18236],{"class":580},[34,24520,21363],{"class":675},[34,24522,10260],{"class":181},[34,24524,24525],{"class":50},"50",[34,24527,3415],{"class":181},[34,24529,24530,24533,24535,24538,24540,24542,24544,24547,24549],{"class":36,"line":725},[34,24531,24532],{"class":47},"sprintf",[34,24534,21377],{"class":181},[34,24536,24537],{"class":54},"\"Age: ",[34,24539,18285],{"class":50},[34,24541,10389],{"class":54},[34,24543,1798],{"class":181},[34,24545,24546],{"class":50},"25",[34,24548,19682],{"class":181},[34,24550,24551],{"class":40},"  // Format string into buffer\n",[34,24553,24554,24557,24559,24562,24564,24566,24568,24570,24572,24574,24576,24578],{"class":36,"line":734},[34,24555,24556],{"class":47},"sscanf",[34,24558,1607],{"class":181},[34,24560,24561],{"class":54},"\"42\"",[34,24563,1798],{"class":181},[34,24565,10389],{"class":54},[34,24567,18285],{"class":50},[34,24569,10389],{"class":54},[34,24571,1798],{"class":181},[34,24573,19502],{"class":580},[34,24575,13337],{"class":675},[34,24577,19682],{"class":181},[34,24579,24580],{"class":40},"        // Parse string into variable\n",[34,24582,24583],{"class":36,"line":742},[34,24584,62],{"emptyLinePlaceholder":61},[34,24586,24587],{"class":36,"line":748},[34,24588,24589],{"class":40},"// Character operations (ctype.h)\n",[34,24591,24592,24595,24597,24599,24601],{"class":36,"line":754},[34,24593,24594],{"class":47},"isalpha",[34,24596,1607],{"class":181},[34,24598,21516],{"class":54},[34,24600,19682],{"class":181},[34,24602,24603],{"class":40},"                    // Check if letter\n",[34,24605,24606,24609,24611,24614,24616],{"class":36,"line":759},[34,24607,24608],{"class":47},"isdigit",[34,24610,1607],{"class":181},[34,24612,24613],{"class":54},"'5'",[34,24615,19682],{"class":181},[34,24617,24618],{"class":40},"                    // Check if digit\n",[34,24620,24621,24624,24626,24629,24631],{"class":36,"line":771},[34,24622,24623],{"class":47},"toupper",[34,24625,1607],{"class":181},[34,24627,24628],{"class":54},"'a'",[34,24630,19682],{"class":181},[34,24632,24633],{"class":40},"                    // Convert to uppercase\n",[34,24635,24636,24639,24641,24643,24645],{"class":36,"line":794},[34,24637,24638],{"class":47},"tolower",[34,24640,1607],{"class":181},[34,24642,21516],{"class":54},[34,24644,19682],{"class":181},[34,24646,24647],{"class":40},"                    // Convert to lowercase\n",[388,24649,24650],{},"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 .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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":24652},[24653],{"id":24353,"depth":44,"text":23101},"Strings in C.",{},{"title":23101,"description":24654},"c/strings",[4377,18137,18138,18139],"5syGrjTnv6_S9q_rzZeg2ITlYhYXnDexzDpLyuwc8Fw",{"id":24661,"title":23107,"body":24662,"date":402,"description":25036,"extension":404,"meta":25037,"navigation":61,"order":250,"path":23106,"seo":25038,"stem":25039,"subject":4377,"tags":25040,"__hash__":25041},"topics/c/structs.md",{"type":8,"value":24663,"toc":25033},[24664,24667,25030],[11,24665,23107],{"id":24666},"structs",[25,24668,24670],{"className":17759,"code":24669,"language":4377,"meta":30,"style":30},"// Struct definition\nstruct Person {\n    char name[50];\n    int age;\n    float height;\n};\n\n// Struct initialization\nstruct Person person1 = {\"Alice\", 30, 5.6};\nstruct Person person2 = {.age = 25, .name = \"Bob\"}; // Designated initializers\n\n// Accessing members\nprintf(\"%s\\n\", person1.name);    // Dot notation\nperson1.age = 31;                // Modify member\n\n// Pointer to struct\nstruct Person *ptr = &person1;\nprintf(\"%s\\n\", ptr->name);       // Arrow notation for pointers\nptr->age = 32;                   // Modify through pointer\n\n// Typedef for cleaner syntax\ntypedef struct {\n    int x;\n    int y;\n} Point;\n\nPoint p1 = {10, 20};             // No need for \"struct\" keyword\n\n// Nested structs\ntypedef struct {\n    Point position;\n    int radius;\n} Circle;\n\nCircle c = {{100, 200}, 50};\nprintf(\"%d\\n\", c.position.x);    // Access nested member\n",[20,24671,24672,24677,24684,24696,24703,24711,24715,24719,24724,24747,24777,24781,24786,24804,24819,24823,24828,24846,24871,24890,24894,24899,24907,24914,24921,24926,24930,24951,24955,24960,24968,24973,24980,24985,24989,25012],{"__ignoreMap":30},[34,24673,24674],{"class":36,"line":37},[34,24675,24676],{"class":40},"// Struct definition\n",[34,24678,24679,24681],{"class":36,"line":44},[34,24680,21640],{"class":580},[34,24682,24683],{"class":181}," Person {\n",[34,24685,24686,24688,24690,24692,24694],{"class":36,"line":58},[34,24687,20075],{"class":580},[34,24689,12323],{"class":675},[34,24691,10260],{"class":181},[34,24693,24525],{"class":50},[34,24695,3415],{"class":181},[34,24697,24698,24700],{"class":36,"line":65},[34,24699,18339],{"class":580},[34,24701,24702],{"class":181}," age;\n",[34,24704,24705,24708],{"class":36,"line":71},[34,24706,24707],{"class":580},"    float",[34,24709,24710],{"class":181}," height;\n",[34,24712,24713],{"class":36,"line":77},[34,24714,17632],{"class":181},[34,24716,24717],{"class":36,"line":82},[34,24718,62],{"emptyLinePlaceholder":61},[34,24720,24721],{"class":36,"line":88},[34,24722,24723],{"class":40},"// Struct initialization\n",[34,24725,24726,24728,24731,24733,24735,24737,24739,24741,24743,24745],{"class":36,"line":242},[34,24727,21640],{"class":580},[34,24729,24730],{"class":181}," Person person1 ",[34,24732,1301],{"class":580},[34,24734,11838],{"class":181},[34,24736,21650],{"class":54},[34,24738,1798],{"class":181},[34,24740,17625],{"class":50},[34,24742,1798],{"class":181},[34,24744,21659],{"class":50},[34,24746,17632],{"class":181},[34,24748,24749,24751,24754,24756,24759,24761,24764,24767,24769,24772,24774],{"class":36,"line":250},[34,24750,21640],{"class":580},[34,24752,24753],{"class":181}," Person person2 ",[34,24755,1301],{"class":580},[34,24757,24758],{"class":181}," {.age ",[34,24760,1301],{"class":580},[34,24762,24763],{"class":50}," 25",[34,24765,24766],{"class":181},", .name ",[34,24768,1301],{"class":580},[34,24770,24771],{"class":54}," \"Bob\"",[34,24773,17829],{"class":181},[34,24775,24776],{"class":40}," // Designated initializers\n",[34,24778,24779],{"class":36,"line":263},[34,24780,62],{"emptyLinePlaceholder":61},[34,24782,24783],{"class":36,"line":275},[34,24784,24785],{"class":40},"// Accessing members\n",[34,24787,24788,24790,24792,24794,24796,24798,24801],{"class":36,"line":700},[34,24789,11303],{"class":47},[34,24791,1607],{"class":181},[34,24793,10389],{"class":54},[34,24795,18187],{"class":50},[34,24797,10389],{"class":54},[34,24799,24800],{"class":181},", person1.name);",[34,24802,24803],{"class":40},"    // Dot notation\n",[34,24805,24806,24809,24811,24814,24816],{"class":36,"line":706},[34,24807,24808],{"class":181},"person1.age ",[34,24810,1301],{"class":580},[34,24812,24813],{"class":50}," 31",[34,24815,17909],{"class":181},[34,24817,24818],{"class":40},"                // Modify member\n",[34,24820,24821],{"class":36,"line":715},[34,24822,62],{"emptyLinePlaceholder":61},[34,24824,24825],{"class":36,"line":725},[34,24826,24827],{"class":40},"// Pointer to struct\n",[34,24829,24830,24832,24835,24837,24839,24841,24843],{"class":36,"line":734},[34,24831,21640],{"class":580},[34,24833,24834],{"class":181}," Person ",[34,24836,4289],{"class":580},[34,24838,23187],{"class":181},[34,24840,1301],{"class":580},[34,24842,11373],{"class":580},[34,24844,24845],{"class":181},"person1;\n",[34,24847,24848,24850,24852,24854,24856,24858,24861,24864,24866,24868],{"class":36,"line":742},[34,24849,11303],{"class":47},[34,24851,1607],{"class":181},[34,24853,10389],{"class":54},[34,24855,18187],{"class":50},[34,24857,10389],{"class":54},[34,24859,24860],{"class":181},", ptr",[34,24862,24863],{"class":580},"->",[34,24865,178],{"class":675},[34,24867,19682],{"class":181},[34,24869,24870],{"class":40},"       // Arrow notation for pointers\n",[34,24872,24873,24875,24877,24880,24882,24885,24887],{"class":36,"line":748},[34,24874,23216],{"class":181},[34,24876,24863],{"class":580},[34,24878,24879],{"class":181},"age ",[34,24881,1301],{"class":580},[34,24883,24884],{"class":50}," 32",[34,24886,17909],{"class":181},[34,24888,24889],{"class":40},"                   // Modify through pointer\n",[34,24891,24892],{"class":36,"line":754},[34,24893,62],{"emptyLinePlaceholder":61},[34,24895,24896],{"class":36,"line":759},[34,24897,24898],{"class":40},"// Typedef for cleaner syntax\n",[34,24900,24901,24903,24905],{"class":36,"line":771},[34,24902,18329],{"class":580},[34,24904,18332],{"class":580},[34,24906,661],{"class":181},[34,24908,24909,24911],{"class":36,"line":794},[34,24910,18339],{"class":580},[34,24912,24913],{"class":181}," x;\n",[34,24915,24916,24918],{"class":36,"line":824},[34,24917,18339],{"class":580},[34,24919,24920],{"class":181}," y;\n",[34,24922,24923],{"class":36,"line":830},[34,24924,24925],{"class":181},"} Point;\n",[34,24927,24928],{"class":36,"line":839},[34,24929,62],{"emptyLinePlaceholder":61},[34,24931,24932,24935,24937,24939,24941,24943,24946,24948],{"class":36,"line":854},[34,24933,24934],{"class":181},"Point p1 ",[34,24936,1301],{"class":580},[34,24938,11838],{"class":181},[34,24940,11923],{"class":50},[34,24942,1798],{"class":181},[34,24944,24945],{"class":50},"20",[34,24947,17829],{"class":181},[34,24949,24950],{"class":40},"             // No need for \"struct\" keyword\n",[34,24952,24953],{"class":36,"line":860},[34,24954,62],{"emptyLinePlaceholder":61},[34,24956,24957],{"class":36,"line":865},[34,24958,24959],{"class":40},"// Nested structs\n",[34,24961,24962,24964,24966],{"class":36,"line":870},[34,24963,18329],{"class":580},[34,24965,18332],{"class":580},[34,24967,661],{"class":181},[34,24969,24970],{"class":36,"line":876},[34,24971,24972],{"class":181},"    Point position;\n",[34,24974,24975,24977],{"class":36,"line":885},[34,24976,18339],{"class":580},[34,24978,24979],{"class":181}," radius;\n",[34,24981,24982],{"class":36,"line":895},[34,24983,24984],{"class":181},"} Circle;\n",[34,24986,24987],{"class":36,"line":904},[34,24988,62],{"emptyLinePlaceholder":61},[34,24990,24991,24994,24996,24999,25001,25003,25005,25008,25010],{"class":36,"line":915},[34,24992,24993],{"class":181},"Circle c ",[34,24995,1301],{"class":580},[34,24997,24998],{"class":181}," {{",[34,25000,20863],{"class":50},[34,25002,1798],{"class":181},[34,25004,20899],{"class":50},[34,25006,25007],{"class":181},"}, ",[34,25009,24525],{"class":50},[34,25011,17632],{"class":181},[34,25013,25014,25016,25018,25020,25022,25024,25027],{"class":36,"line":927},[34,25015,11303],{"class":47},[34,25017,1607],{"class":181},[34,25019,10389],{"class":54},[34,25021,18105],{"class":50},[34,25023,10389],{"class":54},[34,25025,25026],{"class":181},", c.position.x);",[34,25028,25029],{"class":40},"    // Access nested member\n",[388,25031,25032],{},"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 .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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":25034},[25035],{"id":24666,"depth":44,"text":23107},"Structs in C.",{},{"title":23107,"description":25036},"c/structs",[4377,18137,18138,18139],"LUSGfS8iFYVlt8-QnhbpqKxWA0CfobRYFN_Lxil9lqQ",{"id":25043,"title":23073,"body":25044,"date":402,"description":25261,"extension":404,"meta":25262,"navigation":61,"order":58,"path":23072,"seo":25263,"stem":25264,"subject":4377,"tags":25265,"__hash__":25266},"topics/c/variables-types.md",{"type":8,"value":25045,"toc":25258},[25046,25049,25255],[11,25047,23073],{"id":25048},"variables-types",[25,25050,25052],{"className":17759,"code":25051,"language":4377,"meta":30,"style":30},"// Basic data types\nint age = 25;                    // Integer (typically 4 bytes)\nfloat price = 19.99;             // Single-precision float (4 bytes)\ndouble pi = 3.14159;             // Double-precision float (8 bytes)\nchar letter = 'A';               // Single character (1 byte)\nchar name[] = \"Alice\";           // String (array of chars)\n\n// Type modifiers\nunsigned int count = 100;        // Only positive values\nlong long big_num = 1234567890L; // Larger integer range\nshort small = 32767;             // Smaller integer range\nconst int MAX = 100;             // Constant (immutable)\n\n// Type sizes\nsizeof(int);                     // Returns size in bytes\n",[20,25053,25054,25059,25075,25093,25110,25126,25144,25148,25153,25174,25197,25215,25233,25237,25242],{"__ignoreMap":30},[34,25055,25056],{"class":36,"line":37},[34,25057,25058],{"class":40},"// Basic data types\n",[34,25060,25061,25063,25066,25068,25070,25072],{"class":36,"line":44},[34,25062,17772],{"class":580},[34,25064,25065],{"class":181}," age ",[34,25067,1301],{"class":580},[34,25069,24763],{"class":50},[34,25071,17909],{"class":181},[34,25073,25074],{"class":40},"                    // Integer (typically 4 bytes)\n",[34,25076,25077,25080,25083,25085,25088,25090],{"class":36,"line":58},[34,25078,25079],{"class":580},"float",[34,25081,25082],{"class":181}," price ",[34,25084,1301],{"class":580},[34,25086,25087],{"class":50}," 19.99",[34,25089,17909],{"class":181},[34,25091,25092],{"class":40},"             // Single-precision float (4 bytes)\n",[34,25094,25095,25098,25101,25103,25105,25107],{"class":36,"line":65},[34,25096,25097],{"class":580},"double",[34,25099,25100],{"class":181}," pi ",[34,25102,1301],{"class":580},[34,25104,23604],{"class":50},[34,25106,17909],{"class":181},[34,25108,25109],{"class":40},"             // Double-precision float (8 bytes)\n",[34,25111,25112,25114,25117,25119,25121,25123],{"class":36,"line":71},[34,25113,18236],{"class":580},[34,25115,25116],{"class":181}," letter ",[34,25118,1301],{"class":580},[34,25120,18989],{"class":54},[34,25122,17909],{"class":181},[34,25124,25125],{"class":40},"               // Single character (1 byte)\n",[34,25127,25128,25130,25132,25134,25136,25139,25141],{"class":36,"line":77},[34,25129,18236],{"class":580},[34,25131,12323],{"class":181},[34,25133,17842],{"class":580},[34,25135,683],{"class":580},[34,25137,25138],{"class":54}," \"Alice\"",[34,25140,17909],{"class":181},[34,25142,25143],{"class":40},"           // String (array of chars)\n",[34,25145,25146],{"class":36,"line":82},[34,25147,62],{"emptyLinePlaceholder":61},[34,25149,25150],{"class":36,"line":88},[34,25151,25152],{"class":40},"// Type modifiers\n",[34,25154,25155,25158,25161,25164,25166,25169,25171],{"class":36,"line":242},[34,25156,25157],{"class":580},"unsigned",[34,25159,25160],{"class":580}," int",[34,25162,25163],{"class":181}," count ",[34,25165,1301],{"class":580},[34,25167,25168],{"class":50}," 100",[34,25170,17909],{"class":181},[34,25172,25173],{"class":40},"        // Only positive values\n",[34,25175,25176,25178,25181,25184,25186,25189,25192,25194],{"class":36,"line":250},[34,25177,21578],{"class":580},[34,25179,25180],{"class":580}," long",[34,25182,25183],{"class":181}," big_num ",[34,25185,1301],{"class":580},[34,25187,25188],{"class":50}," 1234567890",[34,25190,25191],{"class":580},"L",[34,25193,17909],{"class":181},[34,25195,25196],{"class":40}," // Larger integer range\n",[34,25198,25199,25202,25205,25207,25210,25212],{"class":36,"line":263},[34,25200,25201],{"class":580},"short",[34,25203,25204],{"class":181}," small ",[34,25206,1301],{"class":580},[34,25208,25209],{"class":50}," 32767",[34,25211,17909],{"class":181},[34,25213,25214],{"class":40},"             // Smaller integer range\n",[34,25216,25217,25219,25221,25224,25226,25228,25230],{"class":36,"line":275},[34,25218,14676],{"class":580},[34,25220,25160],{"class":580},[34,25222,25223],{"class":181}," MAX ",[34,25225,1301],{"class":580},[34,25227,25168],{"class":50},[34,25229,17909],{"class":181},[34,25231,25232],{"class":40},"             // Constant (immutable)\n",[34,25234,25235],{"class":36,"line":700},[34,25236,62],{"emptyLinePlaceholder":61},[34,25238,25239],{"class":36,"line":706},[34,25240,25241],{"class":40},"// Type sizes\n",[34,25243,25244,25246,25248,25250,25252],{"class":36,"line":715},[34,25245,21702],{"class":580},[34,25247,1607],{"class":181},[34,25249,17772],{"class":580},[34,25251,19682],{"class":181},[34,25253,25254],{"class":40},"                     // Returns size in bytes\n",[388,25256,25257],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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);}",{"title":30,"searchDepth":44,"depth":44,"links":25259},[25260],{"id":25048,"depth":44,"text":23073},"Variables & Types in C.",{},{"title":23073,"description":25261},"c/variables-types",[4377,18137,18138,18139],"cVdWMz3m4Cp3ecvh2u9Y8C4kSXv4otgr05qWmoY-c8c",{"id":25268,"title":25269,"body":25270,"date":402,"description":25391,"extension":404,"meta":25392,"navigation":61,"order":725,"path":25393,"seo":25394,"stem":25395,"subject":25279,"tags":25396,"__hash__":25398},"topics/c3/compile-time-reflection.md","Compile-Time Reflection",{"type":8,"value":25271,"toc":25388},[25272,25275,25385],[11,25273,25269],{"id":25274},"compile-time-reflection",[25,25276,25280],{"className":25277,"code":25278,"language":25279,"meta":30,"style":30},"language-c3 shiki shiki-themes github-light github-dark","// Loop over struct fields at compile time\nstruct Config\n{\n    int port;\n    String host;\n    bool debug;\n}\n\nmacro print_struct_info($Type)\n{\n    $foreach $field : $Type.membersof:\n        io::printfn(\"Field: %s, Type: %s, Offset: %s\",\n            $field.nameof,\n            $field.typeid.nameof,\n            $field.offsetof);\n    $endforeach\n}\n\nfn void test_reflection()\n{\n    print_struct_info(Config);       // Prints info about each field\n}\n","c3",[20,25281,25282,25287,25292,25297,25302,25307,25312,25316,25320,25325,25329,25334,25339,25344,25349,25354,25359,25363,25367,25372,25376,25381],{"__ignoreMap":30},[34,25283,25284],{"class":36,"line":37},[34,25285,25286],{},"// Loop over struct fields at compile time\n",[34,25288,25289],{"class":36,"line":44},[34,25290,25291],{},"struct Config\n",[34,25293,25294],{"class":36,"line":58},[34,25295,25296],{},"{\n",[34,25298,25299],{"class":36,"line":65},[34,25300,25301],{},"    int port;\n",[34,25303,25304],{"class":36,"line":71},[34,25305,25306],{},"    String host;\n",[34,25308,25309],{"class":36,"line":77},[34,25310,25311],{},"    bool debug;\n",[34,25313,25314],{"class":36,"line":82},[34,25315,693],{},[34,25317,25318],{"class":36,"line":88},[34,25319,62],{"emptyLinePlaceholder":61},[34,25321,25322],{"class":36,"line":242},[34,25323,25324],{},"macro print_struct_info($Type)\n",[34,25326,25327],{"class":36,"line":250},[34,25328,25296],{},[34,25330,25331],{"class":36,"line":263},[34,25332,25333],{},"    $foreach $field : $Type.membersof:\n",[34,25335,25336],{"class":36,"line":275},[34,25337,25338],{},"        io::printfn(\"Field: %s, Type: %s, Offset: %s\",\n",[34,25340,25341],{"class":36,"line":700},[34,25342,25343],{},"            $field.nameof,\n",[34,25345,25346],{"class":36,"line":706},[34,25347,25348],{},"            $field.typeid.nameof,\n",[34,25350,25351],{"class":36,"line":715},[34,25352,25353],{},"            $field.offsetof);\n",[34,25355,25356],{"class":36,"line":725},[34,25357,25358],{},"    $endforeach\n",[34,25360,25361],{"class":36,"line":734},[34,25362,693],{},[34,25364,25365],{"class":36,"line":742},[34,25366,62],{"emptyLinePlaceholder":61},[34,25368,25369],{"class":36,"line":748},[34,25370,25371],{},"fn void test_reflection()\n",[34,25373,25374],{"class":36,"line":754},[34,25375,25296],{},[34,25377,25378],{"class":36,"line":759},[34,25379,25380],{},"    print_struct_info(Config);       // Prints info about each field\n",[34,25382,25383],{"class":36,"line":771},[34,25384,693],{},[388,25386,25387],{},"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":30,"searchDepth":44,"depth":44,"links":25389},[25390],{"id":25274,"depth":44,"text":25269},"Compile-Time Reflection in C3.",{},"/c3/compile-time-reflection",{"title":25269,"description":25391},"c3/compile-time-reflection",[25279,18137,18139,25397],"c-evolution","AbG1uyjT2UWqfSGbslngjxcFoJtqQSiG_L8g40RJvNk",{"id":25400,"title":25401,"body":25402,"date":402,"description":25520,"extension":404,"meta":25521,"navigation":61,"order":706,"path":25522,"seo":25523,"stem":25524,"subject":25279,"tags":25525,"__hash__":25526},"topics/c3/contracts.md","Contracts",{"type":8,"value":25403,"toc":25517},[25404,25407,25515],[11,25405,25401],{"id":25406},"contracts",[25,25408,25410],{"className":25277,"code":25409,"language":25279,"meta":30,"style":30},"// Pre and post conditions\n\u003C*\n  @param value : \"input value\"\n  @require value >= 0           // Precondition: non-negative\n  @return \"square root\"\n  @ensure return >= 0           // Postcondition: result non-negative\n*>\nfn double sqrt_wrapper(double value)\n{\n    return math::sqrt(value);\n}\n\n// Array bounds checking\n\u003C*\n  @param arr : \"array to search\"\n  @param index : \"index to access\"\n  @require index >= 0, index \u003C arr.len\n*>\nfn int get_element(int[] arr, int index)\n{\n    return arr[index];\n}\n",[20,25411,25412,25417,25422,25427,25432,25437,25442,25447,25452,25456,25461,25465,25469,25474,25478,25483,25488,25493,25497,25502,25506,25511],{"__ignoreMap":30},[34,25413,25414],{"class":36,"line":37},[34,25415,25416],{},"// Pre and post conditions\n",[34,25418,25419],{"class":36,"line":44},[34,25420,25421],{},"\u003C*\n",[34,25423,25424],{"class":36,"line":58},[34,25425,25426],{},"  @param value : \"input value\"\n",[34,25428,25429],{"class":36,"line":65},[34,25430,25431],{},"  @require value >= 0           // Precondition: non-negative\n",[34,25433,25434],{"class":36,"line":71},[34,25435,25436],{},"  @return \"square root\"\n",[34,25438,25439],{"class":36,"line":77},[34,25440,25441],{},"  @ensure return >= 0           // Postcondition: result non-negative\n",[34,25443,25444],{"class":36,"line":82},[34,25445,25446],{},"*>\n",[34,25448,25449],{"class":36,"line":88},[34,25450,25451],{},"fn double sqrt_wrapper(double value)\n",[34,25453,25454],{"class":36,"line":242},[34,25455,25296],{},[34,25457,25458],{"class":36,"line":250},[34,25459,25460],{},"    return math::sqrt(value);\n",[34,25462,25463],{"class":36,"line":263},[34,25464,693],{},[34,25466,25467],{"class":36,"line":275},[34,25468,62],{"emptyLinePlaceholder":61},[34,25470,25471],{"class":36,"line":700},[34,25472,25473],{},"// Array bounds checking\n",[34,25475,25476],{"class":36,"line":706},[34,25477,25421],{},[34,25479,25480],{"class":36,"line":715},[34,25481,25482],{},"  @param arr : \"array to search\"\n",[34,25484,25485],{"class":36,"line":725},[34,25486,25487],{},"  @param index : \"index to access\"\n",[34,25489,25490],{"class":36,"line":734},[34,25491,25492],{},"  @require index >= 0, index \u003C arr.len\n",[34,25494,25495],{"class":36,"line":742},[34,25496,25446],{},[34,25498,25499],{"class":36,"line":748},[34,25500,25501],{},"fn int get_element(int[] arr, int index)\n",[34,25503,25504],{"class":36,"line":754},[34,25505,25296],{},[34,25507,25508],{"class":36,"line":759},[34,25509,25510],{},"    return arr[index];\n",[34,25512,25513],{"class":36,"line":771},[34,25514,693],{},[388,25516,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":25518},[25519],{"id":25406,"depth":44,"text":25401},"Contracts in C3.",{},"/c3/contracts",{"title":25401,"description":25520},"c3/contracts",[25279,18137,18139,25397],"W3ASfMI5m46b0ttzWfjcycNW1hpJg8Ccfx0QCXyf4J4",{"id":25528,"title":18818,"body":25529,"date":402,"description":25784,"extension":404,"meta":25785,"navigation":61,"order":65,"path":25786,"seo":25787,"stem":25788,"subject":25279,"tags":25789,"__hash__":25790},"topics/c3/control-flow.md",{"type":8,"value":25530,"toc":25781},[25531,25533,25779],[11,25532,18818],{"id":18823},[25,25534,25536],{"className":25277,"code":25535,"language":25279,"meta":30,"style":30},"// If statements\nfn void check_value(int x)\n{\n    if (x > 10)\n    {\n        io::printn(\"Greater than 10\");\n    }\n    else if (x > 5)\n    {\n        io::printn(\"Between 6 and 10\");\n    }\n    else\n    {\n        io::printn(\"5 or less\");\n    }\n}\n\n// For loop (C-style)\nfn void count_to_ten()\n{\n    for (int i = 0; i \u003C 10; i++)\n    {\n        io::printfn(\"%d\", i);        // Print current number\n    }\n}\n\n// While loop\nfn void countdown(int n)\n{\n    while (n > 0)\n    {\n        io::printfn(\"%d\", n);\n        n--;\n    }\n}\n\n// Foreach with index and value\nfn void iterate_array(int[] numbers)\n{\n    foreach (index, value : numbers)\n    {\n        io::printfn(\"Index %d: %d\", index, value);\n    }\n}\n\n// Foreach by reference (modify values)\nfn void double_values(int[] numbers)\n{\n    foreach (&num : numbers)\n    {\n        *num *= 2;                   // Modify original array\n    }\n}\n",[20,25537,25538,25543,25548,25552,25557,25562,25567,25571,25576,25580,25585,25589,25594,25598,25603,25607,25611,25615,25620,25625,25629,25634,25638,25643,25647,25651,25655,25659,25664,25668,25673,25677,25682,25687,25691,25695,25699,25704,25709,25713,25718,25722,25727,25731,25735,25739,25744,25749,25753,25758,25762,25770,25774],{"__ignoreMap":30},[34,25539,25540],{"class":36,"line":37},[34,25541,25542],{},"// If statements\n",[34,25544,25545],{"class":36,"line":44},[34,25546,25547],{},"fn void check_value(int x)\n",[34,25549,25550],{"class":36,"line":58},[34,25551,25296],{},[34,25553,25554],{"class":36,"line":65},[34,25555,25556],{},"    if (x > 10)\n",[34,25558,25559],{"class":36,"line":71},[34,25560,25561],{},"    {\n",[34,25563,25564],{"class":36,"line":77},[34,25565,25566],{},"        io::printn(\"Greater than 10\");\n",[34,25568,25569],{"class":36,"line":82},[34,25570,3229],{},[34,25572,25573],{"class":36,"line":88},[34,25574,25575],{},"    else if (x > 5)\n",[34,25577,25578],{"class":36,"line":242},[34,25579,25561],{},[34,25581,25582],{"class":36,"line":250},[34,25583,25584],{},"        io::printn(\"Between 6 and 10\");\n",[34,25586,25587],{"class":36,"line":263},[34,25588,3229],{},[34,25590,25591],{"class":36,"line":275},[34,25592,25593],{},"    else\n",[34,25595,25596],{"class":36,"line":700},[34,25597,25561],{},[34,25599,25600],{"class":36,"line":706},[34,25601,25602],{},"        io::printn(\"5 or less\");\n",[34,25604,25605],{"class":36,"line":715},[34,25606,3229],{},[34,25608,25609],{"class":36,"line":725},[34,25610,693],{},[34,25612,25613],{"class":36,"line":734},[34,25614,62],{"emptyLinePlaceholder":61},[34,25616,25617],{"class":36,"line":742},[34,25618,25619],{},"// For loop (C-style)\n",[34,25621,25622],{"class":36,"line":748},[34,25623,25624],{},"fn void count_to_ten()\n",[34,25626,25627],{"class":36,"line":754},[34,25628,25296],{},[34,25630,25631],{"class":36,"line":759},[34,25632,25633],{},"    for (int i = 0; i \u003C 10; i++)\n",[34,25635,25636],{"class":36,"line":771},[34,25637,25561],{},[34,25639,25640],{"class":36,"line":794},[34,25641,25642],{},"        io::printfn(\"%d\", i);        // Print current number\n",[34,25644,25645],{"class":36,"line":824},[34,25646,3229],{},[34,25648,25649],{"class":36,"line":830},[34,25650,693],{},[34,25652,25653],{"class":36,"line":839},[34,25654,62],{"emptyLinePlaceholder":61},[34,25656,25657],{"class":36,"line":854},[34,25658,19081],{},[34,25660,25661],{"class":36,"line":860},[34,25662,25663],{},"fn void countdown(int n)\n",[34,25665,25666],{"class":36,"line":865},[34,25667,25296],{},[34,25669,25670],{"class":36,"line":870},[34,25671,25672],{},"    while (n > 0)\n",[34,25674,25675],{"class":36,"line":876},[34,25676,25561],{},[34,25678,25679],{"class":36,"line":885},[34,25680,25681],{},"        io::printfn(\"%d\", n);\n",[34,25683,25684],{"class":36,"line":895},[34,25685,25686],{},"        n--;\n",[34,25688,25689],{"class":36,"line":904},[34,25690,3229],{},[34,25692,25693],{"class":36,"line":915},[34,25694,693],{},[34,25696,25697],{"class":36,"line":927},[34,25698,62],{"emptyLinePlaceholder":61},[34,25700,25701],{"class":36,"line":932},[34,25702,25703],{},"// Foreach with index and value\n",[34,25705,25706],{"class":36,"line":944},[34,25707,25708],{},"fn void iterate_array(int[] numbers)\n",[34,25710,25711],{"class":36,"line":966},[34,25712,25296],{},[34,25714,25715],{"class":36,"line":1948},[34,25716,25717],{},"    foreach (index, value : numbers)\n",[34,25719,25720],{"class":36,"line":1953},[34,25721,25561],{},[34,25723,25724],{"class":36,"line":3616},[34,25725,25726],{},"        io::printfn(\"Index %d: %d\", index, value);\n",[34,25728,25729],{"class":36,"line":3622},[34,25730,3229],{},[34,25732,25733],{"class":36,"line":3642},[34,25734,693],{},[34,25736,25737],{"class":36,"line":3657},[34,25738,62],{"emptyLinePlaceholder":61},[34,25740,25741],{"class":36,"line":3663},[34,25742,25743],{},"// Foreach by reference (modify values)\n",[34,25745,25746],{"class":36,"line":3669},[34,25747,25748],{},"fn void double_values(int[] numbers)\n",[34,25750,25751],{"class":36,"line":3675},[34,25752,25296],{},[34,25754,25755],{"class":36,"line":3693},[34,25756,25757],{},"    foreach (&num : numbers)\n",[34,25759,25760],{"class":36,"line":3707},[34,25761,25561],{},[34,25763,25764,25767],{"class":36,"line":3712},[34,25765,25766],{},"        *num *= 2;",[34,25768,25769],{},"                   // Modify original array\n",[34,25771,25772],{"class":36,"line":3717},[34,25773,3229],{},[34,25775,25777],{"class":36,"line":25776},53,[34,25778,693],{},[388,25780,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":25782},[25783],{"id":18823,"depth":44,"text":18818},"Control Flow in C3.",{},"/c3/control-flow",{"title":18818,"description":25784},"c3/control-flow",[25279,18137,18139,25397],"VC7ZQRbv8XOQHyN4xGTrdQe8lBT80LeHe8Cb33r5uJg",{"id":25792,"title":25793,"body":25794,"date":402,"description":25903,"extension":404,"meta":25904,"navigation":61,"order":250,"path":25905,"seo":25906,"stem":25907,"subject":25279,"tags":25908,"__hash__":25909},"topics/c3/defer.md","Defer",{"type":8,"value":25795,"toc":25900},[25796,25799,25898],[11,25797,25793],{"id":25798},"defer",[25,25800,25802],{"className":25277,"code":25801,"language":25279,"meta":30,"style":30},"// Defer runs on scope exit (cleanup)\nfn void example_defer()\n{\n    defer io::printn(\"3 - Cleanup\");\n    defer io::printn(\"2 - Second defer\");\n    io::printn(\"1 - Main code\");\n    // Prints: \"1 - Main code\", \"2 - Second defer\", \"3 - Cleanup\"\n}\n\n// Conditional defer (error handling)\nfn void? process_with_cleanup()\n{\n    defer io::printn(\"Always runs\");\n    defer try io::printn(\"Only on success\");\n    defer catch io::printn(\"Only on error\");\n    defer (catch err) io::printfn(\"Error was: %s\", err);\n    \n    // If error occurs, only catch defers run\n    do_risky_operation()!;\n}\n",[20,25803,25804,25809,25814,25818,25823,25828,25833,25838,25842,25846,25851,25856,25860,25865,25870,25875,25880,25884,25889,25894],{"__ignoreMap":30},[34,25805,25806],{"class":36,"line":37},[34,25807,25808],{},"// Defer runs on scope exit (cleanup)\n",[34,25810,25811],{"class":36,"line":44},[34,25812,25813],{},"fn void example_defer()\n",[34,25815,25816],{"class":36,"line":58},[34,25817,25296],{},[34,25819,25820],{"class":36,"line":65},[34,25821,25822],{},"    defer io::printn(\"3 - Cleanup\");\n",[34,25824,25825],{"class":36,"line":71},[34,25826,25827],{},"    defer io::printn(\"2 - Second defer\");\n",[34,25829,25830],{"class":36,"line":77},[34,25831,25832],{},"    io::printn(\"1 - Main code\");\n",[34,25834,25835],{"class":36,"line":82},[34,25836,25837],{},"    // Prints: \"1 - Main code\", \"2 - Second defer\", \"3 - Cleanup\"\n",[34,25839,25840],{"class":36,"line":88},[34,25841,693],{},[34,25843,25844],{"class":36,"line":242},[34,25845,62],{"emptyLinePlaceholder":61},[34,25847,25848],{"class":36,"line":250},[34,25849,25850],{},"// Conditional defer (error handling)\n",[34,25852,25853],{"class":36,"line":263},[34,25854,25855],{},"fn void? process_with_cleanup()\n",[34,25857,25858],{"class":36,"line":275},[34,25859,25296],{},[34,25861,25862],{"class":36,"line":700},[34,25863,25864],{},"    defer io::printn(\"Always runs\");\n",[34,25866,25867],{"class":36,"line":706},[34,25868,25869],{},"    defer try io::printn(\"Only on success\");\n",[34,25871,25872],{"class":36,"line":715},[34,25873,25874],{},"    defer catch io::printn(\"Only on error\");\n",[34,25876,25877],{"class":36,"line":725},[34,25878,25879],{},"    defer (catch err) io::printfn(\"Error was: %s\", err);\n",[34,25881,25882],{"class":36,"line":734},[34,25883,3666],{},[34,25885,25886],{"class":36,"line":742},[34,25887,25888],{},"    // If error occurs, only catch defers run\n",[34,25890,25891],{"class":36,"line":748},[34,25892,25893],{},"    do_risky_operation()!;\n",[34,25895,25896],{"class":36,"line":754},[34,25897,693],{},[388,25899,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":25901},[25902],{"id":25798,"depth":44,"text":25793},"Defer in C3.",{},"/c3/defer",{"title":25793,"description":25903},"c3/defer",[25279,18137,18139,25397],"KNbKmfv_UetfzvumEqjZApHpQI2d10MfC5yec62w8k4",{"id":25911,"title":25912,"body":25913,"date":402,"description":26044,"extension":404,"meta":26045,"navigation":61,"order":88,"path":26046,"seo":26047,"stem":26048,"subject":25279,"tags":26049,"__hash__":26050},"topics/c3/enums.md","Enums",{"type":8,"value":25914,"toc":26041},[25915,25918,26039],[11,25916,25912],{"id":25917},"enums",[25,25919,25921],{"className":25277,"code":25920,"language":25279,"meta":30,"style":30},"// Basic enum\nenum Color\n{\n    RED,\n    GREEN,\n    BLUE\n}\n\n// Enum with explicit values\nenum HttpStatus : int\n{\n    OK = 200,\n    NOT_FOUND = 404,\n    SERVER_ERROR = 500\n}\n\n// Enum reflection\nfn void enum_info()\n{\n    Color[] all_colors = Color.values;      // Get all enum values\n    usz count = Color.elements;             // Number of values (3)\n    String[] names = Color.names;           // [\"RED\", \"GREEN\", \"BLUE\"]\n    \n    Color first = Color.values[0];          // Access specific value\n}\n",[20,25922,25923,25928,25933,25937,25942,25947,25952,25956,25960,25965,25970,25974,25979,25984,25989,25993,25997,26002,26007,26011,26016,26021,26026,26030,26035],{"__ignoreMap":30},[34,25924,25925],{"class":36,"line":37},[34,25926,25927],{},"// Basic enum\n",[34,25929,25930],{"class":36,"line":44},[34,25931,25932],{},"enum Color\n",[34,25934,25935],{"class":36,"line":58},[34,25936,25296],{},[34,25938,25939],{"class":36,"line":65},[34,25940,25941],{},"    RED,\n",[34,25943,25944],{"class":36,"line":71},[34,25945,25946],{},"    GREEN,\n",[34,25948,25949],{"class":36,"line":77},[34,25950,25951],{},"    BLUE\n",[34,25953,25954],{"class":36,"line":82},[34,25955,693],{},[34,25957,25958],{"class":36,"line":88},[34,25959,62],{"emptyLinePlaceholder":61},[34,25961,25962],{"class":36,"line":242},[34,25963,25964],{},"// Enum with explicit values\n",[34,25966,25967],{"class":36,"line":250},[34,25968,25969],{},"enum HttpStatus : int\n",[34,25971,25972],{"class":36,"line":263},[34,25973,25296],{},[34,25975,25976],{"class":36,"line":275},[34,25977,25978],{},"    OK = 200,\n",[34,25980,25981],{"class":36,"line":700},[34,25982,25983],{},"    NOT_FOUND = 404,\n",[34,25985,25986],{"class":36,"line":706},[34,25987,25988],{},"    SERVER_ERROR = 500\n",[34,25990,25991],{"class":36,"line":715},[34,25992,693],{},[34,25994,25995],{"class":36,"line":725},[34,25996,62],{"emptyLinePlaceholder":61},[34,25998,25999],{"class":36,"line":734},[34,26000,26001],{},"// Enum reflection\n",[34,26003,26004],{"class":36,"line":742},[34,26005,26006],{},"fn void enum_info()\n",[34,26008,26009],{"class":36,"line":748},[34,26010,25296],{},[34,26012,26013],{"class":36,"line":754},[34,26014,26015],{},"    Color[] all_colors = Color.values;      // Get all enum values\n",[34,26017,26018],{"class":36,"line":759},[34,26019,26020],{},"    usz count = Color.elements;             // Number of values (3)\n",[34,26022,26023],{"class":36,"line":771},[34,26024,26025],{},"    String[] names = Color.names;           // [\"RED\", \"GREEN\", \"BLUE\"]\n",[34,26027,26028],{"class":36,"line":794},[34,26029,3666],{},[34,26031,26032],{"class":36,"line":824},[34,26033,26034],{},"    Color first = Color.values[0];          // Access specific value\n",[34,26036,26037],{"class":36,"line":830},[34,26038,693],{},[388,26040,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":26042},[26043],{"id":25917,"depth":44,"text":25912},"Enums in C3.",{},"/c3/enums",{"title":25912,"description":26044},"c3/enums",[25279,18137,18139,25397],"nEBble-FFKfh7jZgvenD7i25_iwkLVtdH7z4tH3WnKk",{"id":26052,"title":19352,"body":26053,"date":402,"description":26273,"extension":404,"meta":26274,"navigation":61,"order":242,"path":26275,"seo":26276,"stem":26277,"subject":25279,"tags":26278,"__hash__":26279},"topics/c3/error-handling.md",{"type":8,"value":26054,"toc":26270},[26055,26057,26268],[11,26056,19352],{"id":19357},[25,26058,26060],{"className":25277,"code":26059,"language":25279,"meta":30,"style":30},"// Define custom fault types\nfaultdef FILE_NOT_FOUND;\nfaultdef PERMISSION_DENIED;\n\n// Function returning optional result\nfn String? read_file(String path)\n{\n    // Return fault on error\n    if (!file_exists(path)) return FILE_NOT_FOUND?;\n    if (!has_permission(path)) return PERMISSION_DENIED?;\n    \n    return load_file_contents(path);\n}\n\n// Handling optional results\nfn void process_file(String path)\n{\n    String? content = read_file(path);\n    \n    // Check for error\n    if (catch err = content)\n    {\n        switch (err)\n        {\n            case FILE_NOT_FOUND:\n                io::printn(\"File doesn't exist\");\n            case PERMISSION_DENIED:\n                io::printn(\"Access denied\");\n            default:\n                io::printn(\"Unknown error\");\n        }\n        return;\n    }\n    \n    // After if-catch, content is unwrapped to String\n    io::printfn(\"File content: %s\", content);\n}\n\n// Propagate errors with ! suffix\nfn void? process_multiple_files()\n{\n    read_file(\"config.txt\")!;        // Return error if read fails\n    read_file(\"data.txt\")!;\n}\n",[20,26061,26062,26067,26072,26077,26081,26086,26091,26095,26100,26105,26110,26114,26119,26123,26127,26132,26137,26141,26146,26150,26155,26160,26164,26169,26174,26179,26184,26189,26194,26199,26204,26209,26214,26218,26222,26227,26232,26236,26240,26245,26250,26254,26259,26264],{"__ignoreMap":30},[34,26063,26064],{"class":36,"line":37},[34,26065,26066],{},"// Define custom fault types\n",[34,26068,26069],{"class":36,"line":44},[34,26070,26071],{},"faultdef FILE_NOT_FOUND;\n",[34,26073,26074],{"class":36,"line":58},[34,26075,26076],{},"faultdef PERMISSION_DENIED;\n",[34,26078,26079],{"class":36,"line":65},[34,26080,62],{"emptyLinePlaceholder":61},[34,26082,26083],{"class":36,"line":71},[34,26084,26085],{},"// Function returning optional result\n",[34,26087,26088],{"class":36,"line":77},[34,26089,26090],{},"fn String? read_file(String path)\n",[34,26092,26093],{"class":36,"line":82},[34,26094,25296],{},[34,26096,26097],{"class":36,"line":88},[34,26098,26099],{},"    // Return fault on error\n",[34,26101,26102],{"class":36,"line":242},[34,26103,26104],{},"    if (!file_exists(path)) return FILE_NOT_FOUND?;\n",[34,26106,26107],{"class":36,"line":250},[34,26108,26109],{},"    if (!has_permission(path)) return PERMISSION_DENIED?;\n",[34,26111,26112],{"class":36,"line":263},[34,26113,3666],{},[34,26115,26116],{"class":36,"line":275},[34,26117,26118],{},"    return load_file_contents(path);\n",[34,26120,26121],{"class":36,"line":700},[34,26122,693],{},[34,26124,26125],{"class":36,"line":706},[34,26126,62],{"emptyLinePlaceholder":61},[34,26128,26129],{"class":36,"line":715},[34,26130,26131],{},"// Handling optional results\n",[34,26133,26134],{"class":36,"line":725},[34,26135,26136],{},"fn void process_file(String path)\n",[34,26138,26139],{"class":36,"line":734},[34,26140,25296],{},[34,26142,26143],{"class":36,"line":742},[34,26144,26145],{},"    String? content = read_file(path);\n",[34,26147,26148],{"class":36,"line":748},[34,26149,3666],{},[34,26151,26152],{"class":36,"line":754},[34,26153,26154],{},"    // Check for error\n",[34,26156,26157],{"class":36,"line":759},[34,26158,26159],{},"    if (catch err = content)\n",[34,26161,26162],{"class":36,"line":771},[34,26163,25561],{},[34,26165,26166],{"class":36,"line":794},[34,26167,26168],{},"        switch (err)\n",[34,26170,26171],{"class":36,"line":824},[34,26172,26173],{},"        {\n",[34,26175,26176],{"class":36,"line":830},[34,26177,26178],{},"            case FILE_NOT_FOUND:\n",[34,26180,26181],{"class":36,"line":839},[34,26182,26183],{},"                io::printn(\"File doesn't exist\");\n",[34,26185,26186],{"class":36,"line":854},[34,26187,26188],{},"            case PERMISSION_DENIED:\n",[34,26190,26191],{"class":36,"line":860},[34,26192,26193],{},"                io::printn(\"Access denied\");\n",[34,26195,26196],{"class":36,"line":865},[34,26197,26198],{},"            default:\n",[34,26200,26201],{"class":36,"line":870},[34,26202,26203],{},"                io::printn(\"Unknown error\");\n",[34,26205,26206],{"class":36,"line":876},[34,26207,26208],{},"        }\n",[34,26210,26211],{"class":36,"line":885},[34,26212,26213],{},"        return;\n",[34,26215,26216],{"class":36,"line":895},[34,26217,3229],{},[34,26219,26220],{"class":36,"line":904},[34,26221,3666],{},[34,26223,26224],{"class":36,"line":915},[34,26225,26226],{},"    // After if-catch, content is unwrapped to String\n",[34,26228,26229],{"class":36,"line":927},[34,26230,26231],{},"    io::printfn(\"File content: %s\", content);\n",[34,26233,26234],{"class":36,"line":932},[34,26235,693],{},[34,26237,26238],{"class":36,"line":944},[34,26239,62],{"emptyLinePlaceholder":61},[34,26241,26242],{"class":36,"line":966},[34,26243,26244],{},"// Propagate errors with ! suffix\n",[34,26246,26247],{"class":36,"line":1948},[34,26248,26249],{},"fn void? process_multiple_files()\n",[34,26251,26252],{"class":36,"line":1953},[34,26253,25296],{},[34,26255,26256],{"class":36,"line":3616},[34,26257,26258],{},"    read_file(\"config.txt\")!;        // Return error if read fails\n",[34,26260,26261],{"class":36,"line":3622},[34,26262,26263],{},"    read_file(\"data.txt\")!;\n",[34,26265,26266],{"class":36,"line":3642},[34,26267,693],{},[388,26269,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":26271},[26272],{"id":19357,"depth":44,"text":19352},"Error Handling in C3.",{},"/c3/error-handling",{"title":19352,"description":26273},"c3/error-handling",[25279,18137,18139,25397],"bkfYcQFHdKCHNDowAYqI0Xi1rQ03ipBXLOvKmQLFq_4",{"id":26281,"title":10991,"body":26282,"date":402,"description":26414,"extension":404,"meta":26415,"navigation":61,"order":77,"path":26416,"seo":26417,"stem":26418,"subject":25279,"tags":26419,"__hash__":26420},"topics/c3/functions.md",{"type":8,"value":26283,"toc":26411},[26284,26286,26409],[11,26285,10991],{"id":10996},[25,26287,26289],{"className":25277,"code":26288,"language":25279,"meta":30,"style":30},"// Basic function\nfn int add(int a, int b)\n{\n    return a + b;\n}\n\n// Function with optional result (error handling)\nfn double? divide(int a, int b)\n{\n    if (b == 0) return DIVISION_BY_ZERO?;\n    return (double)a / (double)b;\n}\n\n// Function pointer type alias\nalias Calculator = fn int(int, int);\n\nfn int multiply(int a, int b)\n{\n    return a * b;\n}\n\nfn void use_callback()\n{\n    Calculator calc = &multiply;     // Get function pointer\n    int result = calc(5, 3);        // Call through pointer\n}\n",[20,26290,26291,26296,26301,26305,26310,26314,26318,26323,26328,26332,26337,26342,26346,26350,26355,26360,26364,26369,26373,26378,26382,26386,26391,26395,26400,26405],{"__ignoreMap":30},[34,26292,26293],{"class":36,"line":37},[34,26294,26295],{},"// Basic function\n",[34,26297,26298],{"class":36,"line":44},[34,26299,26300],{},"fn int add(int a, int b)\n",[34,26302,26303],{"class":36,"line":58},[34,26304,25296],{},[34,26306,26307],{"class":36,"line":65},[34,26308,26309],{},"    return a + b;\n",[34,26311,26312],{"class":36,"line":71},[34,26313,693],{},[34,26315,26316],{"class":36,"line":77},[34,26317,62],{"emptyLinePlaceholder":61},[34,26319,26320],{"class":36,"line":82},[34,26321,26322],{},"// Function with optional result (error handling)\n",[34,26324,26325],{"class":36,"line":88},[34,26326,26327],{},"fn double? divide(int a, int b)\n",[34,26329,26330],{"class":36,"line":242},[34,26331,25296],{},[34,26333,26334],{"class":36,"line":250},[34,26335,26336],{},"    if (b == 0) return DIVISION_BY_ZERO?;\n",[34,26338,26339],{"class":36,"line":263},[34,26340,26341],{},"    return (double)a / (double)b;\n",[34,26343,26344],{"class":36,"line":275},[34,26345,693],{},[34,26347,26348],{"class":36,"line":700},[34,26349,62],{"emptyLinePlaceholder":61},[34,26351,26352],{"class":36,"line":706},[34,26353,26354],{},"// Function pointer type alias\n",[34,26356,26357],{"class":36,"line":715},[34,26358,26359],{},"alias Calculator = fn int(int, int);\n",[34,26361,26362],{"class":36,"line":725},[34,26363,62],{"emptyLinePlaceholder":61},[34,26365,26366],{"class":36,"line":734},[34,26367,26368],{},"fn int multiply(int a, int b)\n",[34,26370,26371],{"class":36,"line":742},[34,26372,25296],{},[34,26374,26375],{"class":36,"line":748},[34,26376,26377],{},"    return a * b;\n",[34,26379,26380],{"class":36,"line":754},[34,26381,693],{},[34,26383,26384],{"class":36,"line":759},[34,26385,62],{"emptyLinePlaceholder":61},[34,26387,26388],{"class":36,"line":771},[34,26389,26390],{},"fn void use_callback()\n",[34,26392,26393],{"class":36,"line":794},[34,26394,25296],{},[34,26396,26397],{"class":36,"line":824},[34,26398,26399],{},"    Calculator calc = &multiply;     // Get function pointer\n",[34,26401,26402],{"class":36,"line":830},[34,26403,26404],{},"    int result = calc(5, 3);        // Call through pointer\n",[34,26406,26407],{"class":36,"line":839},[34,26408,693],{},[388,26410,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":26412},[26413],{"id":10996,"depth":44,"text":10991},"Functions in C3.",{},"/c3/functions",{"title":10991,"description":26414},"c3/functions",[25279,18137,18139,25397],"3h707tj9K1PIESMrqrnckAyJprRmcWlSi785egHW2EY",{"id":26422,"title":26423,"body":26424,"date":402,"description":26609,"extension":404,"meta":26610,"navigation":61,"order":275,"path":26611,"seo":26612,"stem":26613,"subject":25279,"tags":26614,"__hash__":26615},"topics/c3/generics.md","Generics",{"type":8,"value":26425,"toc":26606},[26426,26429,26604],[11,26427,26423],{"id":26428},"generics",[25,26430,26432],{"className":25277,"code":26431,"language":25279,"meta":30,"style":30},"// Generic module (similar to templates)\nmodule list {Type};\n\nstruct List\n{\n    Type* items;\n    usz length;\n    usz capacity;\n}\n\nfn void List.add(List* this, Type item)\n{\n    if (this.length >= this.capacity)\n    {\n        this.capacity = this.capacity ? this.capacity * 2 : 8;\n        this.items = realloc(this.items, Type.sizeof * this.capacity);\n    }\n    this.items[this.length++] = item;\n}\n\nfn Type List.get(List* this, usz index)\n{\n    assert(index \u003C this.length);\n    return this.items[index];\n}\n\n// Using the generic type\nalias IntList = List {int};\nalias StringList = List {String};\n\nfn void test_generic()\n{\n    IntList numbers;\n    numbers.add(10);\n    numbers.add(20);\n    io::printfn(\"First: %d\", numbers.get(0));\n}\n",[20,26433,26434,26439,26444,26448,26453,26457,26462,26467,26472,26476,26480,26485,26489,26494,26498,26503,26508,26512,26517,26521,26525,26530,26534,26539,26544,26548,26552,26557,26562,26567,26571,26576,26580,26585,26590,26595,26600],{"__ignoreMap":30},[34,26435,26436],{"class":36,"line":37},[34,26437,26438],{},"// Generic module (similar to templates)\n",[34,26440,26441],{"class":36,"line":44},[34,26442,26443],{},"module list {Type};\n",[34,26445,26446],{"class":36,"line":58},[34,26447,62],{"emptyLinePlaceholder":61},[34,26449,26450],{"class":36,"line":65},[34,26451,26452],{},"struct List\n",[34,26454,26455],{"class":36,"line":71},[34,26456,25296],{},[34,26458,26459],{"class":36,"line":77},[34,26460,26461],{},"    Type* items;\n",[34,26463,26464],{"class":36,"line":82},[34,26465,26466],{},"    usz length;\n",[34,26468,26469],{"class":36,"line":88},[34,26470,26471],{},"    usz capacity;\n",[34,26473,26474],{"class":36,"line":242},[34,26475,693],{},[34,26477,26478],{"class":36,"line":250},[34,26479,62],{"emptyLinePlaceholder":61},[34,26481,26482],{"class":36,"line":263},[34,26483,26484],{},"fn void List.add(List* this, Type item)\n",[34,26486,26487],{"class":36,"line":275},[34,26488,25296],{},[34,26490,26491],{"class":36,"line":700},[34,26492,26493],{},"    if (this.length >= this.capacity)\n",[34,26495,26496],{"class":36,"line":706},[34,26497,25561],{},[34,26499,26500],{"class":36,"line":715},[34,26501,26502],{},"        this.capacity = this.capacity ? this.capacity * 2 : 8;\n",[34,26504,26505],{"class":36,"line":725},[34,26506,26507],{},"        this.items = realloc(this.items, Type.sizeof * this.capacity);\n",[34,26509,26510],{"class":36,"line":734},[34,26511,3229],{},[34,26513,26514],{"class":36,"line":742},[34,26515,26516],{},"    this.items[this.length++] = item;\n",[34,26518,26519],{"class":36,"line":748},[34,26520,693],{},[34,26522,26523],{"class":36,"line":754},[34,26524,62],{"emptyLinePlaceholder":61},[34,26526,26527],{"class":36,"line":759},[34,26528,26529],{},"fn Type List.get(List* this, usz index)\n",[34,26531,26532],{"class":36,"line":771},[34,26533,25296],{},[34,26535,26536],{"class":36,"line":794},[34,26537,26538],{},"    assert(index \u003C this.length);\n",[34,26540,26541],{"class":36,"line":824},[34,26542,26543],{},"    return this.items[index];\n",[34,26545,26546],{"class":36,"line":830},[34,26547,693],{},[34,26549,26550],{"class":36,"line":839},[34,26551,62],{"emptyLinePlaceholder":61},[34,26553,26554],{"class":36,"line":854},[34,26555,26556],{},"// Using the generic type\n",[34,26558,26559],{"class":36,"line":860},[34,26560,26561],{},"alias IntList = List {int};\n",[34,26563,26564],{"class":36,"line":865},[34,26565,26566],{},"alias StringList = List {String};\n",[34,26568,26569],{"class":36,"line":870},[34,26570,62],{"emptyLinePlaceholder":61},[34,26572,26573],{"class":36,"line":876},[34,26574,26575],{},"fn void test_generic()\n",[34,26577,26578],{"class":36,"line":885},[34,26579,25296],{},[34,26581,26582],{"class":36,"line":895},[34,26583,26584],{},"    IntList numbers;\n",[34,26586,26587],{"class":36,"line":904},[34,26588,26589],{},"    numbers.add(10);\n",[34,26591,26592],{"class":36,"line":915},[34,26593,26594],{},"    numbers.add(20);\n",[34,26596,26597],{"class":36,"line":927},[34,26598,26599],{},"    io::printfn(\"First: %d\", numbers.get(0));\n",[34,26601,26602],{"class":36,"line":932},[34,26603,693],{},[388,26605,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":26607},[26608],{"id":26428,"depth":44,"text":26423},"Generics in C3.",{},"/c3/generics",{"title":26423,"description":26609},"c3/generics",[25279,18137,18139,25397],"9AxsvSwvfvLNV_NGnnm-aluWpSN7Nvl4LOAsCkJyy-I",{"id":26617,"title":22151,"body":26618,"date":402,"description":26664,"extension":404,"meta":26665,"navigation":61,"order":44,"path":26666,"seo":26667,"stem":26668,"subject":25279,"tags":26669,"__hash__":26670},"topics/c3/hello-world.md",{"type":8,"value":26619,"toc":26661},[26620,26622,26659],[11,26621,22151],{"id":22156},[25,26623,26625],{"className":25277,"code":26624,"language":25279,"meta":30,"style":30},"module hello_world;\nimport std::io;\n\nfn void main()\n{\n  io::printn(\"Hello, world!\");\n}\n",[20,26626,26627,26632,26637,26641,26646,26650,26655],{"__ignoreMap":30},[34,26628,26629],{"class":36,"line":37},[34,26630,26631],{},"module hello_world;\n",[34,26633,26634],{"class":36,"line":44},[34,26635,26636],{},"import std::io;\n",[34,26638,26639],{"class":36,"line":58},[34,26640,62],{"emptyLinePlaceholder":61},[34,26642,26643],{"class":36,"line":65},[34,26644,26645],{},"fn void main()\n",[34,26647,26648],{"class":36,"line":71},[34,26649,25296],{},[34,26651,26652],{"class":36,"line":77},[34,26653,26654],{},"  io::printn(\"Hello, world!\");\n",[34,26656,26657],{"class":36,"line":82},[34,26658,693],{},[388,26660,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":26662},[26663],{"id":22156,"depth":44,"text":22151},"Hello World in C3.",{},"/c3/hello-world",{"title":22151,"description":26664},"c3/hello-world",[25279,18137,18139,25397],"y7RcGdwZI3u5dGcTSBJNN6jFgPVAKfYC4QqCiJLJDEI",{"id":26672,"title":26673,"body":26674,"date":402,"description":26833,"extension":404,"meta":26834,"navigation":61,"order":715,"path":26835,"seo":26836,"stem":26837,"subject":25279,"tags":26838,"__hash__":26839},"topics/c3/interfaces-and-dynamic-dispatch.md","Interfaces and Dynamic Dispatch",{"type":8,"value":26675,"toc":26830},[26676,26679,26828],[11,26677,26673],{"id":26678},"interfaces-and-dynamic-dispatch",[25,26680,26682],{"className":25277,"code":26681,"language":25279,"meta":30,"style":30},"// Define interface\ninterface Drawable\n{\n    fn void draw();\n    fn String get_name();\n}\n\n// Struct implementing interface\nstruct Circle (Drawable)\n{\n    float radius;\n}\n\nfn void Circle.draw(Circle* this) @dynamic\n{\n    io::printfn(\"Drawing circle with radius %f\", this.radius);\n}\n\nfn String Circle.get_name(Circle*) @dynamic\n{\n    return \"Circle\";\n}\n\n// Polymorphic function\nfn void render(any obj)\n{\n    Drawable d = (Drawable)obj;\n    if (&d.draw)                     // Check if draw method exists\n    {\n        d.draw();\n    }\n}\n",[20,26683,26684,26689,26694,26698,26703,26708,26712,26716,26721,26726,26730,26735,26739,26743,26748,26752,26757,26761,26765,26770,26774,26779,26783,26787,26792,26797,26801,26806,26811,26815,26820,26824],{"__ignoreMap":30},[34,26685,26686],{"class":36,"line":37},[34,26687,26688],{},"// Define interface\n",[34,26690,26691],{"class":36,"line":44},[34,26692,26693],{},"interface Drawable\n",[34,26695,26696],{"class":36,"line":58},[34,26697,25296],{},[34,26699,26700],{"class":36,"line":65},[34,26701,26702],{},"    fn void draw();\n",[34,26704,26705],{"class":36,"line":71},[34,26706,26707],{},"    fn String get_name();\n",[34,26709,26710],{"class":36,"line":77},[34,26711,693],{},[34,26713,26714],{"class":36,"line":82},[34,26715,62],{"emptyLinePlaceholder":61},[34,26717,26718],{"class":36,"line":88},[34,26719,26720],{},"// Struct implementing interface\n",[34,26722,26723],{"class":36,"line":242},[34,26724,26725],{},"struct Circle (Drawable)\n",[34,26727,26728],{"class":36,"line":250},[34,26729,25296],{},[34,26731,26732],{"class":36,"line":263},[34,26733,26734],{},"    float radius;\n",[34,26736,26737],{"class":36,"line":275},[34,26738,693],{},[34,26740,26741],{"class":36,"line":700},[34,26742,62],{"emptyLinePlaceholder":61},[34,26744,26745],{"class":36,"line":706},[34,26746,26747],{},"fn void Circle.draw(Circle* this) @dynamic\n",[34,26749,26750],{"class":36,"line":715},[34,26751,25296],{},[34,26753,26754],{"class":36,"line":725},[34,26755,26756],{},"    io::printfn(\"Drawing circle with radius %f\", this.radius);\n",[34,26758,26759],{"class":36,"line":734},[34,26760,693],{},[34,26762,26763],{"class":36,"line":742},[34,26764,62],{"emptyLinePlaceholder":61},[34,26766,26767],{"class":36,"line":748},[34,26768,26769],{},"fn String Circle.get_name(Circle*) @dynamic\n",[34,26771,26772],{"class":36,"line":754},[34,26773,25296],{},[34,26775,26776],{"class":36,"line":759},[34,26777,26778],{},"    return \"Circle\";\n",[34,26780,26781],{"class":36,"line":771},[34,26782,693],{},[34,26784,26785],{"class":36,"line":794},[34,26786,62],{"emptyLinePlaceholder":61},[34,26788,26789],{"class":36,"line":824},[34,26790,26791],{},"// Polymorphic function\n",[34,26793,26794],{"class":36,"line":830},[34,26795,26796],{},"fn void render(any obj)\n",[34,26798,26799],{"class":36,"line":839},[34,26800,25296],{},[34,26802,26803],{"class":36,"line":854},[34,26804,26805],{},"    Drawable d = (Drawable)obj;\n",[34,26807,26808],{"class":36,"line":860},[34,26809,26810],{},"    if (&d.draw)                     // Check if draw method exists\n",[34,26812,26813],{"class":36,"line":865},[34,26814,25561],{},[34,26816,26817],{"class":36,"line":870},[34,26818,26819],{},"        d.draw();\n",[34,26821,26822],{"class":36,"line":876},[34,26823,3229],{},[34,26825,26826],{"class":36,"line":885},[34,26827,693],{},[388,26829,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":26831},[26832],{"id":26678,"depth":44,"text":26673},"Interfaces and Dynamic Dispatch in C3.",{},"/c3/interfaces-and-dynamic-dispatch",{"title":26673,"description":26833},"c3/interfaces-and-dynamic-dispatch",[25279,18137,18139,25397],"aLeNjOckNpUgtMmms4Wz8BoxeBebOeM7C411TFutOgE",{"id":26841,"title":26842,"body":26843,"date":402,"description":26982,"extension":404,"meta":26983,"navigation":61,"order":263,"path":26984,"seo":26985,"stem":26986,"subject":25279,"tags":26987,"__hash__":26988},"topics/c3/macros.md","Macros",{"type":8,"value":26844,"toc":26979},[26845,26848,26977],[11,26846,26842],{"id":26847},"macros",[25,26849,26851],{"className":25277,"code":26850,"language":25279,"meta":30,"style":30},"// Simple macro\nmacro square(x)\n{\n    return x * x;\n}\n\n// Macro with compile-time execution\nmacro long factorial(long $n)\n{\n    $if $n \u003C= 1:\n        return 1;\n    $else\n        return $n * factorial($n - 1);\n    $endif\n}\n\n// Computed at compile time\nconst long FACT_10 = factorial(10);  // = 3628800 at compile time\n\n// Macro with type checking\n\u003C*\n  @require types::is_numerical($typeof(x))\n*>\nmacro abs(x)\n{\n    return x \u003C 0 ? -x : x;\n}\n",[20,26852,26853,26858,26863,26867,26872,26876,26880,26885,26890,26894,26899,26904,26909,26914,26919,26923,26927,26932,26937,26941,26946,26950,26955,26959,26964,26968,26973],{"__ignoreMap":30},[34,26854,26855],{"class":36,"line":37},[34,26856,26857],{},"// Simple macro\n",[34,26859,26860],{"class":36,"line":44},[34,26861,26862],{},"macro square(x)\n",[34,26864,26865],{"class":36,"line":58},[34,26866,25296],{},[34,26868,26869],{"class":36,"line":65},[34,26870,26871],{},"    return x * x;\n",[34,26873,26874],{"class":36,"line":71},[34,26875,693],{},[34,26877,26878],{"class":36,"line":77},[34,26879,62],{"emptyLinePlaceholder":61},[34,26881,26882],{"class":36,"line":82},[34,26883,26884],{},"// Macro with compile-time execution\n",[34,26886,26887],{"class":36,"line":88},[34,26888,26889],{},"macro long factorial(long $n)\n",[34,26891,26892],{"class":36,"line":242},[34,26893,25296],{},[34,26895,26896],{"class":36,"line":250},[34,26897,26898],{},"    $if $n \u003C= 1:\n",[34,26900,26901],{"class":36,"line":263},[34,26902,26903],{},"        return 1;\n",[34,26905,26906],{"class":36,"line":275},[34,26907,26908],{},"    $else\n",[34,26910,26911],{"class":36,"line":700},[34,26912,26913],{},"        return $n * factorial($n - 1);\n",[34,26915,26916],{"class":36,"line":706},[34,26917,26918],{},"    $endif\n",[34,26920,26921],{"class":36,"line":715},[34,26922,693],{},[34,26924,26925],{"class":36,"line":725},[34,26926,62],{"emptyLinePlaceholder":61},[34,26928,26929],{"class":36,"line":734},[34,26930,26931],{},"// Computed at compile time\n",[34,26933,26934],{"class":36,"line":742},[34,26935,26936],{},"const long FACT_10 = factorial(10);  // = 3628800 at compile time\n",[34,26938,26939],{"class":36,"line":748},[34,26940,62],{"emptyLinePlaceholder":61},[34,26942,26943],{"class":36,"line":754},[34,26944,26945],{},"// Macro with type checking\n",[34,26947,26948],{"class":36,"line":759},[34,26949,25421],{},[34,26951,26952],{"class":36,"line":771},[34,26953,26954],{},"  @require types::is_numerical($typeof(x))\n",[34,26956,26957],{"class":36,"line":794},[34,26958,25446],{},[34,26960,26961],{"class":36,"line":824},[34,26962,26963],{},"macro abs(x)\n",[34,26965,26966],{"class":36,"line":830},[34,26967,25296],{},[34,26969,26970],{"class":36,"line":839},[34,26971,26972],{},"    return x \u003C 0 ? -x : x;\n",[34,26974,26975],{"class":36,"line":854},[34,26976,693],{},[388,26978,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":26980},[26981],{"id":26847,"depth":44,"text":26842},"Macros in C3.",{},"/c3/macros",{"title":26842,"description":26982},"c3/macros",[25279,18137,18139,25397],"1w-66XksFDlm91x6F0pvI48BiPqq_7VHno2JQIjXK4E",{"id":26990,"title":26991,"body":26992,"date":402,"description":27157,"extension":404,"meta":27158,"navigation":61,"order":700,"path":27159,"seo":27160,"stem":27161,"subject":25279,"tags":27162,"__hash__":27163},"topics/c3/operator-overloading.md","Operator Overloading",{"type":8,"value":26993,"toc":27154},[26994,26997,27152],[11,26995,26991],{"id":26996},"operator-overloading",[25,26998,27000],{"className":25277,"code":26999,"language":25279,"meta":30,"style":30},"// Struct for 2D vector\nstruct Vec2\n{\n    float x, y;\n}\n\n// Overload + operator\nfn Vec2 Vec2.add(self, Vec2 other) @operator(+)\n{\n    return { self.x + other.x, self.y + other.y };\n}\n\n// Overload - operator\nfn Vec2 Vec2.subtract(self, Vec2 other) @operator(-)\n{\n    return { self.x - other.x, self.y - other.y };\n}\n\n// Overload * operator (scalar multiplication)\nfn Vec2 Vec2.scale(self, float scalar) @operator(*)\n{\n    return { self.x * scalar, self.y * scalar };\n}\n\nfn void test_operators()\n{\n    Vec2 a = { 2.0, 3.0 };\n    Vec2 b = { 1.0, 4.0 };\n    \n    Vec2 sum = a + b;                // Uses overloaded +\n    Vec2 diff = a - b;               // Uses overloaded -\n    Vec2 scaled = a * 2.0;           // Uses overloaded *\n}\n",[20,27001,27002,27007,27012,27016,27021,27025,27029,27034,27039,27043,27048,27052,27056,27061,27066,27070,27075,27079,27083,27088,27093,27097,27102,27106,27110,27115,27119,27124,27129,27133,27138,27143,27148],{"__ignoreMap":30},[34,27003,27004],{"class":36,"line":37},[34,27005,27006],{},"// Struct for 2D vector\n",[34,27008,27009],{"class":36,"line":44},[34,27010,27011],{},"struct Vec2\n",[34,27013,27014],{"class":36,"line":58},[34,27015,25296],{},[34,27017,27018],{"class":36,"line":65},[34,27019,27020],{},"    float x, y;\n",[34,27022,27023],{"class":36,"line":71},[34,27024,693],{},[34,27026,27027],{"class":36,"line":77},[34,27028,62],{"emptyLinePlaceholder":61},[34,27030,27031],{"class":36,"line":82},[34,27032,27033],{},"// Overload + operator\n",[34,27035,27036],{"class":36,"line":88},[34,27037,27038],{},"fn Vec2 Vec2.add(self, Vec2 other) @operator(+)\n",[34,27040,27041],{"class":36,"line":242},[34,27042,25296],{},[34,27044,27045],{"class":36,"line":250},[34,27046,27047],{},"    return { self.x + other.x, self.y + other.y };\n",[34,27049,27050],{"class":36,"line":263},[34,27051,693],{},[34,27053,27054],{"class":36,"line":275},[34,27055,62],{"emptyLinePlaceholder":61},[34,27057,27058],{"class":36,"line":700},[34,27059,27060],{},"// Overload - operator\n",[34,27062,27063],{"class":36,"line":706},[34,27064,27065],{},"fn Vec2 Vec2.subtract(self, Vec2 other) @operator(-)\n",[34,27067,27068],{"class":36,"line":715},[34,27069,25296],{},[34,27071,27072],{"class":36,"line":725},[34,27073,27074],{},"    return { self.x - other.x, self.y - other.y };\n",[34,27076,27077],{"class":36,"line":734},[34,27078,693],{},[34,27080,27081],{"class":36,"line":742},[34,27082,62],{"emptyLinePlaceholder":61},[34,27084,27085],{"class":36,"line":748},[34,27086,27087],{},"// Overload * operator (scalar multiplication)\n",[34,27089,27090],{"class":36,"line":754},[34,27091,27092],{},"fn Vec2 Vec2.scale(self, float scalar) @operator(*)\n",[34,27094,27095],{"class":36,"line":759},[34,27096,25296],{},[34,27098,27099],{"class":36,"line":771},[34,27100,27101],{},"    return { self.x * scalar, self.y * scalar };\n",[34,27103,27104],{"class":36,"line":794},[34,27105,693],{},[34,27107,27108],{"class":36,"line":824},[34,27109,62],{"emptyLinePlaceholder":61},[34,27111,27112],{"class":36,"line":830},[34,27113,27114],{},"fn void test_operators()\n",[34,27116,27117],{"class":36,"line":839},[34,27118,25296],{},[34,27120,27121],{"class":36,"line":854},[34,27122,27123],{},"    Vec2 a = { 2.0, 3.0 };\n",[34,27125,27126],{"class":36,"line":860},[34,27127,27128],{},"    Vec2 b = { 1.0, 4.0 };\n",[34,27130,27131],{"class":36,"line":865},[34,27132,3666],{},[34,27134,27135],{"class":36,"line":870},[34,27136,27137],{},"    Vec2 sum = a + b;                // Uses overloaded +\n",[34,27139,27140],{"class":36,"line":876},[34,27141,27142],{},"    Vec2 diff = a - b;               // Uses overloaded -\n",[34,27144,27145],{"class":36,"line":885},[34,27146,27147],{},"    Vec2 scaled = a * 2.0;           // Uses overloaded *\n",[34,27149,27150],{"class":36,"line":895},[34,27151,693],{},[388,27153,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":27155},[27156],{"id":26996,"depth":44,"text":26991},"Operator Overloading in C3.",{},"/c3/operator-overloading",{"title":26991,"description":27157},"c3/operator-overloading",[25279,18137,18139,25397],"13jwRLWZBG496bT1QJVpxHvMfpSa3EqVGq5z3qTzx9A",{"id":27165,"title":27166,"body":27167,"date":2633,"description":27237,"extension":404,"meta":27238,"navigation":61,"order":37,"path":27239,"seo":27240,"stem":27241,"subject":25279,"tags":27242,"__hash__":27243},"topics/c3/overview.md","C3",{"type":8,"value":27168,"toc":27235},[27169],[309,27170,27171,27175,27180,27184,27190,27194,27199,27203,27207,27211,27215,27219,27223,27227,27231],{},[312,27172,27173],{},[145,27174,22151],{"href":26666},[312,27176,27177],{},[145,27178,12166],{"href":27179},"/c3/variables",[312,27181,27182],{},[145,27183,18818],{"href":25786},[312,27185,27186],{},[145,27187,27189],{"href":27188},"/c3/switch-statements","Switch Statements",[312,27191,27192],{},[145,27193,10991],{"href":26416},[312,27195,27196],{},[145,27197,23107],{"href":27198},"/c3/structs",[312,27200,27201],{},[145,27202,25912],{"href":26046},[312,27204,27205],{},[145,27206,19352],{"href":26275},[312,27208,27209],{},[145,27210,25793],{"href":25905},[312,27212,27213],{},[145,27214,26842],{"href":26984},[312,27216,27217],{},[145,27218,26423],{"href":26611},[312,27220,27221],{},[145,27222,26991],{"href":27159},[312,27224,27225],{},[145,27226,25401],{"href":25522},[312,27228,27229],{},[145,27230,26673],{"href":26835},[312,27232,27233],{},[145,27234,25269],{"href":25393},{"title":30,"searchDepth":44,"depth":44,"links":27236},[],"A modern systems programming language that evolves C with improved syntax, safety features, and modern conveniences while maintaining simplicity and C compatibility.",{},"/c3/overview",{"title":27166,"description":27237},"c3/overview",[25279,18137,18139,25397],"g9Q3h_0Np5sU8tzhvNr75jpQkskbkUQHDKJH5PdLJHw",{"id":27245,"title":23107,"body":27246,"date":402,"description":27498,"extension":404,"meta":27499,"navigation":61,"order":82,"path":27198,"seo":27500,"stem":27501,"subject":25279,"tags":27502,"__hash__":27503},"topics/c3/structs.md",{"type":8,"value":27247,"toc":27495},[27248,27250,27493],[11,27249,23107],{"id":24666},[25,27251,27253],{"className":25277,"code":27252,"language":25279,"meta":30,"style":30},"// Struct definition\nstruct Person\n{\n    String name;\n    int age;\n    double height;\n    \n    // Nested anonymous struct (fields accessed directly)\n    struct\n    {\n        String street;\n        String city;\n    }\n    \n    // Named sub-struct\n    struct contact\n    {\n        String email;\n        String phone;\n    }\n}\n\n// Struct initialization\nfn void create_person()\n{\n    Person p = {\n        .name = \"Bob\",\n        .age = 30,\n        .height = 5.9,\n        .street = \"123 Main St\",    // Anonymous struct field\n        .city = \"Springfield\",\n        .contact.email = \"bob@example.com\"\n    };\n}\n\n// Struct methods (dot syntax)\nfn void Person.greet(Person* this)\n{\n    io::printfn(\"Hello, I'm %s\", this.name);\n}\n\nfn void Person.have_birthday(Person* this)\n{\n    this.age++;                      // Increment age\n}\n\nfn void test_methods()\n{\n    Person p = { .name = \"Alice\", .age = 25 };\n    p.greet();                       // Call method with dot syntax\n    p.have_birthday();\n}\n",[20,27254,27255,27259,27264,27268,27273,27278,27283,27287,27292,27297,27301,27306,27311,27315,27319,27324,27329,27333,27338,27343,27347,27351,27355,27359,27364,27368,27373,27378,27383,27388,27393,27398,27403,27408,27412,27416,27421,27426,27430,27435,27439,27443,27448,27452,27457,27461,27465,27470,27474,27479,27484,27489],{"__ignoreMap":30},[34,27256,27257],{"class":36,"line":37},[34,27258,24676],{},[34,27260,27261],{"class":36,"line":44},[34,27262,27263],{},"struct Person\n",[34,27265,27266],{"class":36,"line":58},[34,27267,25296],{},[34,27269,27270],{"class":36,"line":65},[34,27271,27272],{},"    String name;\n",[34,27274,27275],{"class":36,"line":71},[34,27276,27277],{},"    int age;\n",[34,27279,27280],{"class":36,"line":77},[34,27281,27282],{},"    double height;\n",[34,27284,27285],{"class":36,"line":82},[34,27286,3666],{},[34,27288,27289],{"class":36,"line":88},[34,27290,27291],{},"    // Nested anonymous struct (fields accessed directly)\n",[34,27293,27294],{"class":36,"line":242},[34,27295,27296],{},"    struct\n",[34,27298,27299],{"class":36,"line":250},[34,27300,25561],{},[34,27302,27303],{"class":36,"line":263},[34,27304,27305],{},"        String street;\n",[34,27307,27308],{"class":36,"line":275},[34,27309,27310],{},"        String city;\n",[34,27312,27313],{"class":36,"line":700},[34,27314,3229],{},[34,27316,27317],{"class":36,"line":706},[34,27318,3666],{},[34,27320,27321],{"class":36,"line":715},[34,27322,27323],{},"    // Named sub-struct\n",[34,27325,27326],{"class":36,"line":725},[34,27327,27328],{},"    struct contact\n",[34,27330,27331],{"class":36,"line":734},[34,27332,25561],{},[34,27334,27335],{"class":36,"line":742},[34,27336,27337],{},"        String email;\n",[34,27339,27340],{"class":36,"line":748},[34,27341,27342],{},"        String phone;\n",[34,27344,27345],{"class":36,"line":754},[34,27346,3229],{},[34,27348,27349],{"class":36,"line":759},[34,27350,693],{},[34,27352,27353],{"class":36,"line":771},[34,27354,62],{"emptyLinePlaceholder":61},[34,27356,27357],{"class":36,"line":794},[34,27358,24723],{},[34,27360,27361],{"class":36,"line":824},[34,27362,27363],{},"fn void create_person()\n",[34,27365,27366],{"class":36,"line":830},[34,27367,25296],{},[34,27369,27370],{"class":36,"line":839},[34,27371,27372],{},"    Person p = {\n",[34,27374,27375],{"class":36,"line":854},[34,27376,27377],{},"        .name = \"Bob\",\n",[34,27379,27380],{"class":36,"line":860},[34,27381,27382],{},"        .age = 30,\n",[34,27384,27385],{"class":36,"line":865},[34,27386,27387],{},"        .height = 5.9,\n",[34,27389,27390],{"class":36,"line":870},[34,27391,27392],{},"        .street = \"123 Main St\",    // Anonymous struct field\n",[34,27394,27395],{"class":36,"line":876},[34,27396,27397],{},"        .city = \"Springfield\",\n",[34,27399,27400],{"class":36,"line":885},[34,27401,27402],{},"        .contact.email = \"bob@example.com\"\n",[34,27404,27405],{"class":36,"line":895},[34,27406,27407],{},"    };\n",[34,27409,27410],{"class":36,"line":904},[34,27411,693],{},[34,27413,27414],{"class":36,"line":915},[34,27415,62],{"emptyLinePlaceholder":61},[34,27417,27418],{"class":36,"line":927},[34,27419,27420],{},"// Struct methods (dot syntax)\n",[34,27422,27423],{"class":36,"line":932},[34,27424,27425],{},"fn void Person.greet(Person* this)\n",[34,27427,27428],{"class":36,"line":944},[34,27429,25296],{},[34,27431,27432],{"class":36,"line":966},[34,27433,27434],{},"    io::printfn(\"Hello, I'm %s\", this.name);\n",[34,27436,27437],{"class":36,"line":1948},[34,27438,693],{},[34,27440,27441],{"class":36,"line":1953},[34,27442,62],{"emptyLinePlaceholder":61},[34,27444,27445],{"class":36,"line":3616},[34,27446,27447],{},"fn void Person.have_birthday(Person* this)\n",[34,27449,27450],{"class":36,"line":3622},[34,27451,25296],{},[34,27453,27454],{"class":36,"line":3642},[34,27455,27456],{},"    this.age++;                      // Increment age\n",[34,27458,27459],{"class":36,"line":3657},[34,27460,693],{},[34,27462,27463],{"class":36,"line":3663},[34,27464,62],{"emptyLinePlaceholder":61},[34,27466,27467],{"class":36,"line":3669},[34,27468,27469],{},"fn void test_methods()\n",[34,27471,27472],{"class":36,"line":3675},[34,27473,25296],{},[34,27475,27476],{"class":36,"line":3693},[34,27477,27478],{},"    Person p = { .name = \"Alice\", .age = 25 };\n",[34,27480,27481],{"class":36,"line":3707},[34,27482,27483],{},"    p.greet();                       // Call method with dot syntax\n",[34,27485,27486],{"class":36,"line":3712},[34,27487,27488],{},"    p.have_birthday();\n",[34,27490,27491],{"class":36,"line":3717},[34,27492,693],{},[388,27494,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":27496},[27497],{"id":24666,"depth":44,"text":23107},"Structs in C3.",{},{"title":23107,"description":27498},"c3/structs",[25279,18137,18139,25397],"AnioVgTCZfd1qFtb3dzI0t3Uo51upA-zDSwtg73dh0o",{"id":27505,"title":27189,"body":27506,"date":402,"description":27709,"extension":404,"meta":27710,"navigation":61,"order":71,"path":27188,"seo":27711,"stem":27712,"subject":25279,"tags":27713,"__hash__":27714},"topics/c3/switch-statements.md",{"type":8,"value":27507,"toc":27706},[27508,27511,27704],[11,27509,27189],{"id":27510},"switch-statements",[25,27512,27514],{"className":25277,"code":27513,"language":25279,"meta":30,"style":30},"// Switches have implicit break (no fallthrough)\nenum Status\n{\n    PENDING,\n    PROCESSING,\n    COMPLETE,\n    FAILED\n}\n\nfn void handle_status(Status s)\n{\n    switch (s)\n    {\n        case PENDING:\n            io::printn(\"Waiting to start\");\n            // Implicit break\n        case PROCESSING:\n            io::printn(\"Currently processing\");\n        case COMPLETE:\n            io::printn(\"Done!\");\n        case FAILED:\n            io::printn(\"Error occurred\");\n    }\n}\n\n// Using nextcase for explicit fallthrough\nfn void categorize(int value)\n{\n    switch (value)\n    {\n        case 1:\n            io::printn(\"One\");\n            nextcase;                // Continue to next case\n        case 2:\n            io::printn(\"Small number\");\n            nextcase;\n        case 3:\n            io::printn(\"Less than four\");\n    }\n}\n",[20,27515,27516,27521,27526,27530,27535,27540,27545,27550,27554,27558,27563,27567,27572,27576,27581,27586,27591,27596,27601,27606,27611,27616,27621,27625,27629,27633,27638,27643,27647,27652,27656,27661,27666,27671,27676,27681,27686,27691,27696,27700],{"__ignoreMap":30},[34,27517,27518],{"class":36,"line":37},[34,27519,27520],{},"// Switches have implicit break (no fallthrough)\n",[34,27522,27523],{"class":36,"line":44},[34,27524,27525],{},"enum Status\n",[34,27527,27528],{"class":36,"line":58},[34,27529,25296],{},[34,27531,27532],{"class":36,"line":65},[34,27533,27534],{},"    PENDING,\n",[34,27536,27537],{"class":36,"line":71},[34,27538,27539],{},"    PROCESSING,\n",[34,27541,27542],{"class":36,"line":77},[34,27543,27544],{},"    COMPLETE,\n",[34,27546,27547],{"class":36,"line":82},[34,27548,27549],{},"    FAILED\n",[34,27551,27552],{"class":36,"line":88},[34,27553,693],{},[34,27555,27556],{"class":36,"line":242},[34,27557,62],{"emptyLinePlaceholder":61},[34,27559,27560],{"class":36,"line":250},[34,27561,27562],{},"fn void handle_status(Status s)\n",[34,27564,27565],{"class":36,"line":263},[34,27566,25296],{},[34,27568,27569],{"class":36,"line":275},[34,27570,27571],{},"    switch (s)\n",[34,27573,27574],{"class":36,"line":700},[34,27575,25561],{},[34,27577,27578],{"class":36,"line":706},[34,27579,27580],{},"        case PENDING:\n",[34,27582,27583],{"class":36,"line":715},[34,27584,27585],{},"            io::printn(\"Waiting to start\");\n",[34,27587,27588],{"class":36,"line":725},[34,27589,27590],{},"            // Implicit break\n",[34,27592,27593],{"class":36,"line":734},[34,27594,27595],{},"        case PROCESSING:\n",[34,27597,27598],{"class":36,"line":742},[34,27599,27600],{},"            io::printn(\"Currently processing\");\n",[34,27602,27603],{"class":36,"line":748},[34,27604,27605],{},"        case COMPLETE:\n",[34,27607,27608],{"class":36,"line":754},[34,27609,27610],{},"            io::printn(\"Done!\");\n",[34,27612,27613],{"class":36,"line":759},[34,27614,27615],{},"        case FAILED:\n",[34,27617,27618],{"class":36,"line":771},[34,27619,27620],{},"            io::printn(\"Error occurred\");\n",[34,27622,27623],{"class":36,"line":794},[34,27624,3229],{},[34,27626,27627],{"class":36,"line":824},[34,27628,693],{},[34,27630,27631],{"class":36,"line":830},[34,27632,62],{"emptyLinePlaceholder":61},[34,27634,27635],{"class":36,"line":839},[34,27636,27637],{},"// Using nextcase for explicit fallthrough\n",[34,27639,27640],{"class":36,"line":854},[34,27641,27642],{},"fn void categorize(int value)\n",[34,27644,27645],{"class":36,"line":860},[34,27646,25296],{},[34,27648,27649],{"class":36,"line":865},[34,27650,27651],{},"    switch (value)\n",[34,27653,27654],{"class":36,"line":870},[34,27655,25561],{},[34,27657,27658],{"class":36,"line":876},[34,27659,27660],{},"        case 1:\n",[34,27662,27663],{"class":36,"line":885},[34,27664,27665],{},"            io::printn(\"One\");\n",[34,27667,27668],{"class":36,"line":895},[34,27669,27670],{},"            nextcase;                // Continue to next case\n",[34,27672,27673],{"class":36,"line":904},[34,27674,27675],{},"        case 2:\n",[34,27677,27678],{"class":36,"line":915},[34,27679,27680],{},"            io::printn(\"Small number\");\n",[34,27682,27683],{"class":36,"line":927},[34,27684,27685],{},"            nextcase;\n",[34,27687,27688],{"class":36,"line":932},[34,27689,27690],{},"        case 3:\n",[34,27692,27693],{"class":36,"line":944},[34,27694,27695],{},"            io::printn(\"Less than four\");\n",[34,27697,27698],{"class":36,"line":966},[34,27699,3229],{},[34,27701,27702],{"class":36,"line":1948},[34,27703,693],{},[388,27705,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":27707},[27708],{"id":27510,"depth":44,"text":27189},"Switch Statements in C3.",{},{"title":27189,"description":27709},"c3/switch-statements",[25279,18137,18139,25397],"sLNxtL7t7ZTJmhRgQRYe6xxSflUWbLQQgL8cp7gzVfo",{"id":27716,"title":12166,"body":27717,"date":402,"description":27770,"extension":404,"meta":27771,"navigation":61,"order":58,"path":27179,"seo":27772,"stem":27773,"subject":25279,"tags":27774,"__hash__":27775},"topics/c3/variables.md",{"type":8,"value":27718,"toc":27767},[27719,27721,27765],[11,27720,12166],{"id":13314},[25,27722,27724],{"className":25277,"code":27723,"language":25279,"meta":30,"style":30},"// Simple variable declarations (type inference)\nint count = 42;                  // Integer\ndouble price = 19.99;            // Floating point\nString name = \"Alice\";           // String type\nbool is_active = true;           // Boolean\n\n// Multiple declarations\nint x = 1, y = 2, z = 3;        // Declare multiple variables\n",[20,27725,27726,27731,27736,27741,27746,27751,27755,27760],{"__ignoreMap":30},[34,27727,27728],{"class":36,"line":37},[34,27729,27730],{},"// Simple variable declarations (type inference)\n",[34,27732,27733],{"class":36,"line":44},[34,27734,27735],{},"int count = 42;                  // Integer\n",[34,27737,27738],{"class":36,"line":58},[34,27739,27740],{},"double price = 19.99;            // Floating point\n",[34,27742,27743],{"class":36,"line":65},[34,27744,27745],{},"String name = \"Alice\";           // String type\n",[34,27747,27748],{"class":36,"line":71},[34,27749,27750],{},"bool is_active = true;           // Boolean\n",[34,27752,27753],{"class":36,"line":77},[34,27754,62],{"emptyLinePlaceholder":61},[34,27756,27757],{"class":36,"line":82},[34,27758,27759],{},"// Multiple declarations\n",[34,27761,27762],{"class":36,"line":88},[34,27763,27764],{},"int x = 1, y = 2, z = 3;        // Declare multiple variables\n",[388,27766,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":27768},[27769],{"id":13314,"depth":44,"text":12166},"Variables in C3.",{},{"title":12166,"description":27770},"c3/variables",[25279,18137,18139,25397],"mR1ij2uV1MoT-M6GDisInVOsKKMUk0GJk1MXQ09pI34",{"id":27777,"title":27778,"body":27779,"date":28240,"description":28241,"extension":404,"meta":28242,"navigation":61,"order":37,"path":28243,"seo":28244,"stem":28245,"subject":27891,"tags":28246,"__hash__":28249},"topics/caddy/overview.md","Caddy",{"type":8,"value":27780,"toc":28222},[27781,27783,27786,27788,27875,27877,27901,27905,27912,27916,27978,27980,27984,28006,28010,28033,28037,28048,28052,28056,28182,28186,28189,28200,28204,28220],[11,27782,14],{"id":13},[16,27784,27785],{},"Caddy is a powerful, extensible platform designed for serving the web efficiently and securely. It simplifies many traditional pain points in managing web servers, with features like automatic HTTPS and a robust configuration API.",[11,27787,97],{"id":96},[25,27789,27791],{"className":27,"code":27790,"language":29,"meta":30,"style":30},"# Install via Caddy's official script\nsudo apt install -y debian-keyring debian-archive-keyring apt-transport-https\ncurl -1sLf \"https://dl.cloudsmith.io/public/caddy/stable/gpg.key\" | sudo apt-key add -\necho \"deb [trusted=yes] https://dl.cloudsmith.io/public/caddy/stable/deb/ all main\" | sudo tee /etc/apt/sources.list.d/caddy-stable.list\nsudo apt update\nsudo apt install caddy\n",[20,27792,27793,27798,27817,27839,27856,27864],{"__ignoreMap":30},[34,27794,27795],{"class":36,"line":37},[34,27796,27797],{"class":40},"# Install via Caddy's official script\n",[34,27799,27800,27802,27804,27806,27808,27811,27814],{"class":36,"line":44},[34,27801,436],{"class":47},[34,27803,439],{"class":54},[34,27805,118],{"class":54},[34,27807,5843],{"class":50},[34,27809,27810],{"class":54}," debian-keyring",[34,27812,27813],{"class":54}," debian-archive-keyring",[34,27815,27816],{"class":54}," apt-transport-https\n",[34,27818,27819,27821,27824,27827,27829,27831,27834,27836],{"class":36,"line":58},[34,27820,8648],{"class":47},[34,27822,27823],{"class":50}," -1sLf",[34,27825,27826],{"class":54}," \"https://dl.cloudsmith.io/public/caddy/stable/gpg.key\"",[34,27828,7197],{"class":580},[34,27830,9343],{"class":47},[34,27832,27833],{"class":54}," apt-key",[34,27835,7854],{"class":54},[34,27837,27838],{"class":54}," -\n",[34,27840,27841,27843,27846,27848,27850,27853],{"class":36,"line":65},[34,27842,10120],{"class":50},[34,27844,27845],{"class":54}," \"deb [trusted=yes] https://dl.cloudsmith.io/public/caddy/stable/deb/ all main\"",[34,27847,7197],{"class":580},[34,27849,9343],{"class":47},[34,27851,27852],{"class":54}," tee",[34,27854,27855],{"class":54}," /etc/apt/sources.list.d/caddy-stable.list\n",[34,27857,27858,27860,27862],{"class":36,"line":71},[34,27859,436],{"class":47},[34,27861,439],{"class":54},[34,27863,6441],{"class":54},[34,27865,27866,27868,27870,27872],{"class":36,"line":77},[34,27867,436],{"class":47},[34,27869,439],{"class":54},[34,27871,118],{"class":54},[34,27873,27874],{"class":54}," caddy\n",[11,27876,15936],{"id":15935},[25,27878,27880],{"className":27,"code":27879,"language":29,"meta":30,"style":30},"# Serve current directory with automatic HTTPS\ncaddy file-server --domain example.com\n",[20,27881,27882,27887],{"__ignoreMap":30},[34,27883,27884],{"class":36,"line":37},[34,27885,27886],{"class":40},"# Serve current directory with automatic HTTPS\n",[34,27888,27889,27892,27895,27898],{"class":36,"line":44},[34,27890,27891],{"class":47},"caddy",[34,27893,27894],{"class":54}," file-server",[34,27896,27897],{"class":50}," --domain",[34,27899,27900],{"class":54}," example.com\n",[11,27902,27904],{"id":27903},"basic-configuration","Basic Configuration",[16,27906,27907,27908,27911],{},"Caddy uses a simple, declarative file format named ",[20,27909,27910],{},"Caddyfile"," for configuration.",[102,27913,27915],{"id":27914},"sample-caddyfile","Sample Caddyfile",[25,27917,27919],{"className":27,"code":27918,"language":29,"meta":30,"style":30},"tls example@example.com\n\nexample.com {\n    root * /var/www/html\n    encode gzip\n    php_fastcgi unix//run/php-fpm/www.sock\n    file_server browse\n}\n",[20,27920,27921,27929,27933,27940,27950,27958,27966,27974],{"__ignoreMap":30},[34,27922,27923,27926],{"class":36,"line":37},[34,27924,27925],{"class":47},"tls",[34,27927,27928],{"class":54}," example@example.com\n",[34,27930,27931],{"class":36,"line":44},[34,27932,62],{"emptyLinePlaceholder":61},[34,27934,27935,27938],{"class":36,"line":58},[34,27936,27937],{"class":47},"example.com",[34,27939,661],{"class":54},[34,27941,27942,27945,27947],{"class":36,"line":65},[34,27943,27944],{"class":47},"    root",[34,27946,18083],{"class":50},[34,27948,27949],{"class":54}," /var/www/html\n",[34,27951,27952,27955],{"class":36,"line":71},[34,27953,27954],{"class":47},"    encode",[34,27956,27957],{"class":54}," gzip\n",[34,27959,27960,27963],{"class":36,"line":77},[34,27961,27962],{"class":47},"    php_fastcgi",[34,27964,27965],{"class":54}," unix//run/php-fpm/www.sock\n",[34,27967,27968,27971],{"class":36,"line":82},[34,27969,27970],{"class":47},"    file_server",[34,27972,27973],{"class":54}," browse\n",[34,27975,27976],{"class":36,"line":88},[34,27977,693],{"class":181},[11,27979,8221],{"id":8220},[102,27981,27983],{"id":27982},"automatic-https","Automatic HTTPS",[25,27985,27987],{"className":27,"code":27986,"language":29,"meta":30,"style":30},"# Enable HTTPS for your site automatically\ncaddy run --config /etc/caddy/Caddyfile\n",[20,27988,27989,27994],{"__ignoreMap":30},[34,27990,27991],{"class":36,"line":37},[34,27992,27993],{"class":40},"# Enable HTTPS for your site automatically\n",[34,27995,27996,27998,28000,28003],{"class":36,"line":44},[34,27997,27891],{"class":47},[34,27999,16017],{"class":54},[34,28001,28002],{"class":50}," --config",[34,28004,28005],{"class":54}," /etc/caddy/Caddyfile\n",[102,28007,28009],{"id":28008},"reverse-proxy","Reverse Proxy",[25,28011,28013],{"className":27,"code":28012,"language":29,"meta":30,"style":30},"example.com {\n    reverse_proxy localhost:8080\n}\n",[20,28014,28015,28021,28029],{"__ignoreMap":30},[34,28016,28017,28019],{"class":36,"line":37},[34,28018,27937],{"class":47},[34,28020,661],{"class":54},[34,28022,28023,28026],{"class":36,"line":44},[34,28024,28025],{"class":47},"    reverse_proxy",[34,28027,28028],{"class":54}," localhost:8080\n",[34,28030,28031],{"class":36,"line":58},[34,28032,693],{"class":181},[102,28034,28036],{"id":28035},"security-and-compliance","Security and Compliance",[309,28038,28039,28042,28045],{},[312,28040,28041],{},"TLS 1.3 support",[312,28043,28044],{},"Configurable cipher suites",[312,28046,28047],{},"Access logging for audits",[11,28049,28051],{"id":28050},"advanced-usage","Advanced Usage",[102,28053,28055],{"id":28054},"json-configuration","JSON Configuration",[25,28057,28060],{"className":28058,"code":28059,"language":14790,"meta":30,"style":30},"language-json shiki shiki-themes github-light github-dark","{\n  \"apps\": {\n    \"http\": {\n      \"servers\": {\n        \"myserver\": {\n          \"routes\": [\n            {\n              \"handle\": [\n                {\n                  \"handler\": \"static_response\",\n                  \"body\": \"Hello, World!\"\n                }\n              ]\n            }\n          ]\n        }\n      }\n    }\n  }\n}\n",[20,28061,28062,28066,28074,28081,28088,28095,28103,28108,28115,28120,28132,28142,28147,28152,28157,28162,28166,28170,28174,28178],{"__ignoreMap":30},[34,28063,28064],{"class":36,"line":37},[34,28065,25296],{"class":181},[34,28067,28068,28071],{"class":36,"line":44},[34,28069,28070],{"class":50},"  \"apps\"",[34,28072,28073],{"class":181},": {\n",[34,28075,28076,28079],{"class":36,"line":58},[34,28077,28078],{"class":50},"    \"http\"",[34,28080,28073],{"class":181},[34,28082,28083,28086],{"class":36,"line":65},[34,28084,28085],{"class":50},"      \"servers\"",[34,28087,28073],{"class":181},[34,28089,28090,28093],{"class":36,"line":71},[34,28091,28092],{"class":50},"        \"myserver\"",[34,28094,28073],{"class":181},[34,28096,28097,28100],{"class":36,"line":77},[34,28098,28099],{"class":50},"          \"routes\"",[34,28101,28102],{"class":181},": [\n",[34,28104,28105],{"class":36,"line":82},[34,28106,28107],{"class":181},"            {\n",[34,28109,28110,28113],{"class":36,"line":88},[34,28111,28112],{"class":50},"              \"handle\"",[34,28114,28102],{"class":181},[34,28116,28117],{"class":36,"line":242},[34,28118,28119],{"class":181},"                {\n",[34,28121,28122,28125,28127,28130],{"class":36,"line":250},[34,28123,28124],{"class":50},"                  \"handler\"",[34,28126,182],{"class":181},[34,28128,28129],{"class":54},"\"static_response\"",[34,28131,624],{"class":181},[34,28133,28134,28137,28139],{"class":36,"line":263},[34,28135,28136],{"class":50},"                  \"body\"",[34,28138,182],{"class":181},[34,28140,28141],{"class":54},"\"Hello, World!\"\n",[34,28143,28144],{"class":36,"line":275},[34,28145,28146],{"class":181},"                }\n",[34,28148,28149],{"class":36,"line":700},[34,28150,28151],{"class":181},"              ]\n",[34,28153,28154],{"class":36,"line":706},[34,28155,28156],{"class":181},"            }\n",[34,28158,28159],{"class":36,"line":715},[34,28160,28161],{"class":181},"          ]\n",[34,28163,28164],{"class":36,"line":725},[34,28165,26208],{"class":181},[34,28167,28168],{"class":36,"line":734},[34,28169,3078],{"class":181},[34,28171,28172],{"class":36,"line":742},[34,28173,3229],{"class":181},[34,28175,28176],{"class":36,"line":748},[34,28177,857],{"class":181},[34,28179,28180],{"class":36,"line":754},[34,28181,693],{"class":181},[102,28183,28185],{"id":28184},"extending-caddy","Extending Caddy",[16,28187,28188],{},"Custom plugins allow Caddy to adapt to your specific needs:",[309,28190,28191,28194,28197],{},[312,28192,28193],{},"Real-time content generation",[312,28195,28196],{},"Dynamic routing",[312,28198,28199],{},"Analytics",[11,28201,28203],{"id":28202},"resources","Resources",[309,28205,28206,28213],{},[312,28207,28208],{},[145,28209,28212],{"href":28210,"rel":28211},"https://caddyserver.com/docs/",[149],"Official Documentation",[312,28214,28215],{},[145,28216,28219],{"href":28217,"rel":28218},"https://caddy.community/",[149],"Community Wiki",[388,28221,10040],{},{"title":30,"searchDepth":44,"depth":44,"links":28223},[28224,28225,28226,28227,28230,28235,28239],{"id":13,"depth":44,"text":14},{"id":96,"depth":44,"text":97},{"id":15935,"depth":44,"text":15936},{"id":27903,"depth":44,"text":27904,"children":28228},[28229],{"id":27914,"depth":58,"text":27915},{"id":8220,"depth":44,"text":8221,"children":28231},[28232,28233,28234],{"id":27982,"depth":58,"text":27983},{"id":28008,"depth":58,"text":28009},{"id":28035,"depth":58,"text":28036},{"id":28050,"depth":44,"text":28051,"children":28236},[28237,28238],{"id":28054,"depth":58,"text":28055},{"id":28184,"depth":58,"text":28185},{"id":28202,"depth":44,"text":28203},"2026-03-06","Comprehensive guide to using Caddy for serving, proxying, and automating HTTP tasks.",{},"/caddy/overview",{"title":27778,"description":28241},"caddy/overview",[27891,28247,413,28248],"web-server","https","eaYKEGm_yiSE6lalvT-4wfiXTz2lA1x27fBuZQLVltg",{"id":28251,"title":28252,"body":28253,"date":402,"description":28642,"extension":404,"meta":28643,"navigation":61,"order":37,"path":28644,"seo":28645,"stem":28646,"subject":28647,"tags":28648,"__hash__":28652},"topics/cassandra/overview.md","Apache Cassandra Cheat Sheet",{"type":8,"value":28254,"toc":28634},[28255,28259,28307,28311,28329,28333,28407,28411,28469,28473,28621,28625,28631],[11,28256,28258],{"id":28257},"installing-cassandra","Installing Cassandra",[25,28260,28263],{"className":28261,"code":28262,"language":10358,"meta":30,"style":30},"language-shell shiki shiki-themes github-light github-dark","# Install Cassandra on Debian/Ubuntu\necho \"deb https://www.apache.org/dist/cassandra/debian 311x main\" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list\nsudo apt update\nsudo apt install cassandra\n",[20,28264,28265,28270,28288,28296],{"__ignoreMap":30},[34,28266,28267],{"class":36,"line":37},[34,28268,28269],{"class":40},"# Install Cassandra on Debian/Ubuntu\n",[34,28271,28272,28274,28277,28279,28281,28283,28285],{"class":36,"line":44},[34,28273,10120],{"class":50},[34,28275,28276],{"class":54}," \"deb https://www.apache.org/dist/cassandra/debian 311x main\"",[34,28278,7197],{"class":580},[34,28280,9343],{"class":47},[34,28282,27852],{"class":54},[34,28284,5059],{"class":50},[34,28286,28287],{"class":54}," /etc/apt/sources.list.d/cassandra.sources.list\n",[34,28289,28290,28292,28294],{"class":36,"line":58},[34,28291,436],{"class":47},[34,28293,439],{"class":54},[34,28295,6441],{"class":54},[34,28297,28298,28300,28302,28304],{"class":36,"line":65},[34,28299,436],{"class":47},[34,28301,439],{"class":54},[34,28303,118],{"class":54},[34,28305,28306],{"class":54}," cassandra\n",[11,28308,28310],{"id":28309},"connecting-via-cqlsh","Connecting via cqlsh",[25,28312,28314],{"className":28261,"code":28313,"language":10358,"meta":30,"style":30},"# Launch cqlsh (Cassandra Query Language Shell)\ncqlsh localhost\n",[20,28315,28316,28321],{"__ignoreMap":30},[34,28317,28318],{"class":36,"line":37},[34,28319,28320],{"class":40},"# Launch cqlsh (Cassandra Query Language Shell)\n",[34,28322,28323,28326],{"class":36,"line":44},[34,28324,28325],{"class":47},"cqlsh",[34,28327,28328],{"class":54}," localhost\n",[11,28330,28332],{"id":28331},"working-with-keyspaces","Working with Keyspaces",[25,28334,28338],{"className":28335,"code":28336,"language":28337,"meta":30,"style":30},"language-sql shiki shiki-themes github-light github-dark","-- Create a keyspace (database)\nCREATE KEYSPACE exampleKS WITH replication = {\n  'class': 'SimpleStrategy',\n  'replication_factor': 1 \n};\n\n-- Use a keyspace\nUSE exampleKS;\n","sql",[20,28339,28340,28345,28363,28375,28386,28390,28394,28399],{"__ignoreMap":30},[34,28341,28342],{"class":36,"line":37},[34,28343,28344],{"class":40},"-- Create a keyspace (database)\n",[34,28346,28347,28350,28353,28356,28359,28361],{"class":36,"line":44},[34,28348,28349],{"class":580},"CREATE",[34,28351,28352],{"class":181}," KEYSPACE exampleKS ",[34,28354,28355],{"class":580},"WITH",[34,28357,28358],{"class":181}," replication ",[34,28360,1301],{"class":580},[34,28362,661],{"class":181},[34,28364,28365,28368,28370,28373],{"class":36,"line":58},[34,28366,28367],{"class":54},"  'class'",[34,28369,182],{"class":181},[34,28371,28372],{"class":54},"'SimpleStrategy'",[34,28374,624],{"class":181},[34,28376,28377,28380,28382,28384],{"class":36,"line":65},[34,28378,28379],{"class":54},"  'replication_factor'",[34,28381,182],{"class":181},[34,28383,8318],{"class":50},[34,28385,526],{"class":181},[34,28387,28388],{"class":36,"line":71},[34,28389,17632],{"class":181},[34,28391,28392],{"class":36,"line":77},[34,28393,62],{"emptyLinePlaceholder":61},[34,28395,28396],{"class":36,"line":82},[34,28397,28398],{"class":40},"-- Use a keyspace\n",[34,28400,28401,28404],{"class":36,"line":88},[34,28402,28403],{"class":580},"USE",[34,28405,28406],{"class":181}," exampleKS;\n",[11,28408,28410],{"id":28409},"creating-tables","Creating Tables",[25,28412,28414],{"className":28335,"code":28413,"language":28337,"meta":30,"style":30},"CREATE TABLE users (\n    id UUID PRIMARY KEY,\n    name TEXT,\n    age INT,\n    email TEXT\n);\n",[20,28415,28416,28428,28438,28447,28457,28465],{"__ignoreMap":30},[34,28417,28418,28420,28423,28426],{"class":36,"line":37},[34,28419,28349],{"class":580},[34,28421,28422],{"class":580}," TABLE",[34,28424,28425],{"class":47}," users",[34,28427,13975],{"class":181},[34,28429,28430,28433,28436],{"class":36,"line":44},[34,28431,28432],{"class":181},"    id UUID ",[34,28434,28435],{"class":580},"PRIMARY KEY",[34,28437,624],{"class":181},[34,28439,28440,28442,28445],{"class":36,"line":58},[34,28441,5362],{"class":580},[34,28443,28444],{"class":580}," TEXT",[34,28446,624],{"class":181},[34,28448,28449,28452,28455],{"class":36,"line":65},[34,28450,28451],{"class":181},"    age ",[34,28453,28454],{"class":580},"INT",[34,28456,624],{"class":181},[34,28458,28459,28462],{"class":36,"line":71},[34,28460,28461],{"class":181},"    email ",[34,28463,28464],{"class":580},"TEXT\n",[34,28466,28467],{"class":36,"line":77},[34,28468,1586],{"class":181},[11,28470,28472],{"id":28471},"crud-operations","CRUD Operations",[25,28474,28476],{"className":28335,"code":28475,"language":28337,"meta":30,"style":30},"-- Insert data\nINSERT INTO users (id, name, age, email) VALUES (uuid(), 'Alice', 30, 'alice@example.com');\n\n-- Select data\nSELECT * FROM users;\n\n-- Update data\nUPDATE users SET age = 31 WHERE id = \u003Cexisting-id>;\n\n-- Delete data\nDELETE FROM users WHERE id = \u003Cexisting-id>;\n",[20,28477,28478,28483,28516,28520,28525,28537,28541,28546,28584,28588,28593],{"__ignoreMap":30},[34,28479,28480],{"class":36,"line":37},[34,28481,28482],{"class":40},"-- Insert data\n",[34,28484,28485,28488,28491,28493,28496,28499,28502,28505,28507,28509,28511,28514],{"class":36,"line":44},[34,28486,28487],{"class":580},"INSERT INTO",[34,28489,28490],{"class":181}," users (id, ",[34,28492,178],{"class":580},[34,28494,28495],{"class":181},", age, email) ",[34,28497,28498],{"class":580},"VALUES",[34,28500,28501],{"class":181}," (uuid(), ",[34,28503,28504],{"class":54},"'Alice'",[34,28506,1798],{"class":181},[34,28508,17625],{"class":50},[34,28510,1798],{"class":181},[34,28512,28513],{"class":54},"'alice@example.com'",[34,28515,1586],{"class":181},[34,28517,28518],{"class":36,"line":58},[34,28519,62],{"emptyLinePlaceholder":61},[34,28521,28522],{"class":36,"line":65},[34,28523,28524],{"class":40},"-- Select data\n",[34,28526,28527,28530,28532,28535],{"class":36,"line":71},[34,28528,28529],{"class":580},"SELECT",[34,28531,18083],{"class":580},[34,28533,28534],{"class":580}," FROM",[34,28536,4114],{"class":181},[34,28538,28539],{"class":36,"line":77},[34,28540,62],{"emptyLinePlaceholder":61},[34,28542,28543],{"class":36,"line":82},[34,28544,28545],{"class":40},"-- Update data\n",[34,28547,28548,28551,28554,28557,28559,28561,28563,28566,28569,28571,28573,28576,28578,28580,28582],{"class":36,"line":88},[34,28549,28550],{"class":580},"UPDATE",[34,28552,28553],{"class":181}," users ",[34,28555,28556],{"class":580},"SET",[34,28558,25065],{"class":181},[34,28560,1301],{"class":580},[34,28562,24813],{"class":50},[34,28564,28565],{"class":580}," WHERE",[34,28567,28568],{"class":181}," id ",[34,28570,1301],{"class":580},[34,28572,5470],{"class":580},[34,28574,28575],{"class":181},"existing",[34,28577,22062],{"class":580},[34,28579,3885],{"class":181},[34,28581,5691],{"class":580},[34,28583,593],{"class":181},[34,28585,28586],{"class":36,"line":242},[34,28587,62],{"emptyLinePlaceholder":61},[34,28589,28590],{"class":36,"line":250},[34,28591,28592],{"class":40},"-- Delete data\n",[34,28594,28595,28598,28600,28602,28605,28607,28609,28611,28613,28615,28617,28619],{"class":36,"line":263},[34,28596,28597],{"class":580},"DELETE",[34,28599,28534],{"class":580},[34,28601,28553],{"class":181},[34,28603,28604],{"class":580},"WHERE",[34,28606,28568],{"class":181},[34,28608,1301],{"class":580},[34,28610,5470],{"class":580},[34,28612,28575],{"class":181},[34,28614,22062],{"class":580},[34,28616,3885],{"class":181},[34,28618,5691],{"class":580},[34,28620,593],{"class":181},[11,28622,28624],{"id":28623},"consistency-levels","Consistency Levels",[25,28626,28629],{"className":28627,"code":28628,"language":780,"meta":30},[13703],"# Example consistency levels:\n- ONE: Requires acknowledgment from one node.\n- QUORUM: Majority of nodes must acknowledge.\n- ALL: Every node must acknowledge.\n",[20,28630,28628],{"__ignoreMap":30},[388,28632,28633],{},"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}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":30,"searchDepth":44,"depth":44,"links":28635},[28636,28637,28638,28639,28640,28641],{"id":28257,"depth":44,"text":28258},{"id":28309,"depth":44,"text":28310},{"id":28331,"depth":44,"text":28332},{"id":28409,"depth":44,"text":28410},{"id":28471,"depth":44,"text":28472},{"id":28623,"depth":44,"text":28624},"Essential commands and tips for Cassandra and cqlsh",{},"/cassandra/overview",{"title":28252,"description":28642},"cassandra/overview","cassandra",[28647,28649,28650,28651],"nosql","database","cql","xcBMDw5TF7Nzx1RTRgw1INhsCFXLSlOH7FuEOQCxL5U",{"id":28654,"title":28655,"body":28656,"date":402,"description":28959,"extension":404,"meta":28960,"navigation":61,"order":37,"path":28961,"seo":28962,"stem":28963,"subject":28964,"tags":28965,"__hash__":28968},"topics/changesets/overview.md","Changesets",{"type":8,"value":28657,"toc":28949},[28658,28660,28663,28677,28710,28714,28718,28721,28733,28741,28745,28748,28770,28788,28791,28795,28798,28806,28819,28826,28942,28947],[11,28659,14],{"id":13},[16,28661,28662],{},"Changesets simplifies managing dependency upgrades, version control, and creating changelogs in multi-package repositories.",[309,28664,28665,28671],{},[312,28666,28667,28670],{},[8471,28668,28669],{},"Primary Use Case:"," Automating versioning and publishing.",[312,28672,28673,28676],{},[8471,28674,28675],{},"Core Advantages:"," Streamlined workflows.",[25,28678,28680],{"className":27,"code":28679,"language":29,"meta":30,"style":30},"# Install Changesets\nnpm install @changesets/cli\n# Initialize\nnpx changeset init\n",[20,28681,28682,28687,28696,28701],{"__ignoreMap":30},[34,28683,28684],{"class":36,"line":37},[34,28685,28686],{"class":40},"# Install Changesets\n",[34,28688,28689,28691,28693],{"class":36,"line":44},[34,28690,8177],{"class":47},[34,28692,118],{"class":54},[34,28694,28695],{"class":54}," @changesets/cli\n",[34,28697,28698],{"class":36,"line":58},[34,28699,28700],{"class":40},"# Initialize\n",[34,28702,28703,28705,28708],{"class":36,"line":65},[34,28704,8205],{"class":47},[34,28706,28707],{"class":54}," changeset",[34,28709,8180],{"class":54},[11,28711,28713],{"id":28712},"key-commands","Key Commands",[102,28715,28717],{"id":28716},"adding-a-changeset","Adding a Changeset",[16,28719,28720],{},"Create a new changeset for recording changes.",[25,28722,28724],{"className":27,"code":28723,"language":29,"meta":30,"style":30},"npx changeset\n",[20,28725,28726],{"__ignoreMap":30},[34,28727,28728,28730],{"class":36,"line":37},[34,28729,8205],{"class":47},[34,28731,28732],{"class":54}," changeset\n",[309,28734,28735,28738],{},[312,28736,28737],{},"Prompts for changes description and package versioning.",[312,28739,28740],{},"Generates a markdown file recording planned updates.",[102,28742,28744],{"id":28743},"releasing-changes","Releasing Changes",[16,28746,28747],{},"Integrate Changesets into CI/CD pipelines for automating tasks:",[25,28749,28751],{"className":27,"code":28750,"language":29,"meta":30,"style":30},"npx changeset version\nnpx changeset publish\n",[20,28752,28753,28761],{"__ignoreMap":30},[34,28754,28755,28757,28759],{"class":36,"line":37},[34,28756,8205],{"class":47},[34,28758,28707],{"class":54},[34,28760,9358],{"class":54},[34,28762,28763,28765,28767],{"class":36,"line":44},[34,28764,8205],{"class":47},[34,28766,28707],{"class":54},[34,28768,28769],{"class":54}," publish\n",[309,28771,28772,28780],{},[312,28773,28774,28779],{},[8471,28775,28776],{},[20,28777,28778],{},"version:"," Bumps package.json versions.",[312,28781,28782,28787],{},[8471,28783,28784],{},[20,28785,28786],{},"publish:"," Publishes to npm.",[11,28789,28790],{"id":412},"Workflows",[102,28792,28794],{"id":28793},"github-setup","GitHub Setup",[16,28796,28797],{},"Enable workflows to automate.",[28799,28800,28801],"ol",{},[312,28802,28803],{},[8471,28804,28805],{},"Install dependencies:",[25,28807,28809],{"className":27,"code":28808,"language":29,"meta":30,"style":30},"npm install @changesets/cli\n",[20,28810,28811],{"__ignoreMap":30},[34,28812,28813,28815,28817],{"class":36,"line":37},[34,28814,8177],{"class":47},[34,28816,118],{"class":54},[34,28818,28695],{"class":54},[28799,28820,28821],{"start":44},[312,28822,28823],{},[8471,28824,28825],{},"GitHub Actions Template:",[25,28827,28829],{"className":168,"code":28828,"language":170,"meta":30,"style":30},"name: Release\n\non:\n  push:\n    branches:\n      - main\n\njobs:\n  release:\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@v2\n    - name: Setup Node.js\n      uses: actions/setup-node@v1\n    - run: npm publish\n",[20,28830,28831,28840,28844,28850,28856,28862,28868,28872,28878,28885,28893,28899,28910,28921,28931],{"__ignoreMap":30},[34,28832,28833,28835,28837],{"class":36,"line":37},[34,28834,178],{"class":177},[34,28836,182],{"class":181},[34,28838,28839],{"class":54},"Release\n",[34,28841,28842],{"class":36,"line":44},[34,28843,62],{"emptyLinePlaceholder":61},[34,28845,28846,28848],{"class":36,"line":58},[34,28847,190],{"class":50},[34,28849,193],{"class":181},[34,28851,28852,28854],{"class":36,"line":65},[34,28853,198],{"class":177},[34,28855,193],{"class":181},[34,28857,28858,28860],{"class":36,"line":71},[34,28859,205],{"class":177},[34,28861,193],{"class":181},[34,28863,28864,28866],{"class":36,"line":77},[34,28865,212],{"class":181},[34,28867,215],{"class":54},[34,28869,28870],{"class":36,"line":82},[34,28871,62],{"emptyLinePlaceholder":61},[34,28873,28874,28876],{"class":36,"line":88},[34,28875,220],{"class":177},[34,28877,193],{"class":181},[34,28879,28880,28883],{"class":36,"line":242},[34,28881,28882],{"class":177},"  release",[34,28884,193],{"class":181},[34,28886,28887,28889,28891],{"class":36,"line":250},[34,28888,234],{"class":177},[34,28890,182],{"class":181},[34,28892,239],{"class":54},[34,28894,28895,28897],{"class":36,"line":263},[34,28896,245],{"class":177},[34,28898,193],{"class":181},[34,28900,28901,28903,28905,28907],{"class":36,"line":275},[34,28902,5120],{"class":181},[34,28904,255],{"class":177},[34,28906,182],{"class":181},[34,28908,28909],{"class":54},"actions/checkout@v2\n",[34,28911,28912,28914,28916,28918],{"class":36,"line":700},[34,28913,5120],{"class":181},[34,28915,178],{"class":177},[34,28917,182],{"class":181},[34,28919,28920],{"class":54},"Setup Node.js\n",[34,28922,28923,28926,28928],{"class":36,"line":706},[34,28924,28925],{"class":177},"      uses",[34,28927,182],{"class":181},[34,28929,28930],{"class":54},"actions/setup-node@v1\n",[34,28932,28933,28935,28937,28939],{"class":36,"line":715},[34,28934,5120],{"class":181},[34,28936,14592],{"class":177},[34,28938,182],{"class":181},[34,28940,28941],{"class":54},"npm publish\n",[28799,28943,28944],{"start":58},[312,28945,28946],{},"Automates releases post changes commit.",[388,28948,545],{},{"title":30,"searchDepth":44,"depth":44,"links":28950},[28951,28952,28956],{"id":13,"depth":44,"text":14},{"id":28712,"depth":44,"text":28713,"children":28953},[28954,28955],{"id":28716,"depth":58,"text":28717},{"id":28743,"depth":58,"text":28744},{"id":412,"depth":44,"text":28790,"children":28957},[28958],{"id":28793,"depth":58,"text":28794},"Manage dependency updates, versioning, and changelogs easily with automated tools and workflows.",{},"/changesets/overview",{"title":28655,"description":28959},"changesets/overview","changesets",[28964,8004,28966,28967],"dependencies","changelogs","E1qmub-7IXdSKhZdtN3bRrFIAzsSamMzkp7UzFPytx0",{"id":28970,"title":28971,"body":28972,"date":402,"description":29208,"extension":404,"meta":29209,"navigation":61,"order":37,"path":29210,"seo":29211,"stem":29212,"subject":29213,"tags":29214,"__hash__":29216},"topics/clickhouse/overview.md","ClickHouse Cheat Sheet",{"type":8,"value":28973,"toc":29200},[28974,28978,29021,29023,29073,29077,29123,29127,29152,29156,29187,29191,29197],[11,28975,28977],{"id":28976},"installing-clickhouse","Installing ClickHouse",[25,28979,28981],{"className":28261,"code":28980,"language":10358,"meta":30,"style":30},"# Install ClickHouse (Debian/Ubuntu)\nwget https://packages.clickhouse.com/clickhouse.key\nsudo apt-key add clickhouse.key\nsudo apt install clickhouse-client clickhouse-server\n",[20,28982,28983,28988,28996,29007],{"__ignoreMap":30},[34,28984,28985],{"class":36,"line":37},[34,28986,28987],{"class":40},"# Install ClickHouse (Debian/Ubuntu)\n",[34,28989,28990,28993],{"class":36,"line":44},[34,28991,28992],{"class":47},"wget",[34,28994,28995],{"class":54}," https://packages.clickhouse.com/clickhouse.key\n",[34,28997,28998,29000,29002,29004],{"class":36,"line":58},[34,28999,436],{"class":47},[34,29001,27833],{"class":54},[34,29003,7854],{"class":54},[34,29005,29006],{"class":54}," clickhouse.key\n",[34,29008,29009,29011,29013,29015,29018],{"class":36,"line":65},[34,29010,436],{"class":47},[34,29012,439],{"class":54},[34,29014,118],{"class":54},[34,29016,29017],{"class":54}," clickhouse-client",[34,29019,29020],{"class":54}," clickhouse-server\n",[11,29022,28410],{"id":28409},[25,29024,29026],{"className":28335,"code":29025,"language":28337,"meta":30,"style":30},"CREATE TABLE users (\n    id UInt64,\n    name String,\n    age UInt8\n) ENGINE = MergeTree()\nORDER BY id;\n",[20,29027,29028,29038,29043,29050,29055,29065],{"__ignoreMap":30},[34,29029,29030,29032,29034,29036],{"class":36,"line":37},[34,29031,28349],{"class":580},[34,29033,28422],{"class":580},[34,29035,28425],{"class":47},[34,29037,13975],{"class":181},[34,29039,29040],{"class":36,"line":44},[34,29041,29042],{"class":181},"    id UInt64,\n",[34,29044,29045,29047],{"class":36,"line":58},[34,29046,5362],{"class":580},[34,29048,29049],{"class":181}," String,\n",[34,29051,29052],{"class":36,"line":65},[34,29053,29054],{"class":181},"    age UInt8\n",[34,29056,29057,29060,29062],{"class":36,"line":71},[34,29058,29059],{"class":181},") ENGINE ",[34,29061,1301],{"class":580},[34,29063,29064],{"class":181}," MergeTree()\n",[34,29066,29067,29070],{"class":36,"line":77},[34,29068,29069],{"class":580},"ORDER BY",[34,29071,29072],{"class":181}," id;\n",[11,29074,29076],{"id":29075},"inserting-data","Inserting Data",[25,29078,29080],{"className":28335,"code":29079,"language":28337,"meta":30,"style":30},"INSERT INTO users (id, name, age) VALUES (1, 'Alice', 30), (2, 'Bob', 25);\n",[20,29081,29082],{"__ignoreMap":30},[34,29083,29084,29086,29088,29090,29093,29095,29097,29099,29101,29103,29105,29107,29110,29112,29114,29117,29119,29121],{"class":36,"line":37},[34,29085,28487],{"class":580},[34,29087,28490],{"class":181},[34,29089,178],{"class":580},[34,29091,29092],{"class":181},", age) ",[34,29094,28498],{"class":580},[34,29096,3204],{"class":181},[34,29098,8318],{"class":50},[34,29100,1798],{"class":181},[34,29102,28504],{"class":54},[34,29104,1798],{"class":181},[34,29106,17625],{"class":50},[34,29108,29109],{"class":181},"), (",[34,29111,8324],{"class":50},[34,29113,1798],{"class":181},[34,29115,29116],{"class":54},"'Bob'",[34,29118,1798],{"class":181},[34,29120,24546],{"class":50},[34,29122,1586],{"class":181},[11,29124,29126],{"id":29125},"querying-data","Querying Data",[25,29128,29130],{"className":28335,"code":29129,"language":28337,"meta":30,"style":30},"SELECT * FROM users WHERE age > 20;\n",[20,29131,29132],{"__ignoreMap":30},[34,29133,29134,29136,29138,29140,29142,29144,29146,29148,29150],{"class":36,"line":37},[34,29135,28529],{"class":580},[34,29137,18083],{"class":580},[34,29139,28534],{"class":580},[34,29141,28553],{"class":181},[34,29143,28604],{"class":580},[34,29145,25065],{"class":181},[34,29147,5691],{"class":580},[34,29149,22419],{"class":50},[34,29151,593],{"class":181},[11,29153,29155],{"id":29154},"aggregations","Aggregations",[25,29157,29159],{"className":28335,"code":29158,"language":28337,"meta":30,"style":30},"SELECT age, COUNT(*) FROM users GROUP BY age;\n",[20,29160,29161],{"__ignoreMap":30},[34,29162,29163,29165,29168,29171,29173,29175,29177,29180,29182,29185],{"class":36,"line":37},[34,29164,28529],{"class":580},[34,29166,29167],{"class":181}," age, ",[34,29169,29170],{"class":50},"COUNT",[34,29172,1607],{"class":181},[34,29174,4289],{"class":580},[34,29176,4817],{"class":181},[34,29178,29179],{"class":580},"FROM",[34,29181,28553],{"class":181},[34,29183,29184],{"class":580},"GROUP BY",[34,29186,24702],{"class":181},[11,29188,29190],{"id":29189},"using-mergetree-engine","Using MergeTree Engine",[25,29192,29195],{"className":29193,"code":29194,"language":780,"meta":30},[13703],"# MergeTree is optimized for analytics.\n# Key settings:\n- ORDER BY: Define sort keys for querying.\n- TTL: Establish data retention period.\n",[20,29196,29194],{"__ignoreMap":30},[388,29198,29199],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":30,"searchDepth":44,"depth":44,"links":29201},[29202,29203,29204,29205,29206,29207],{"id":28976,"depth":44,"text":28977},{"id":28409,"depth":44,"text":28410},{"id":29075,"depth":44,"text":29076},{"id":29125,"depth":44,"text":29126},{"id":29154,"depth":44,"text":29155},{"id":29189,"depth":44,"text":29190},"Fast track essentials for ClickHouse, the columnar database.",{},"/clickhouse/overview",{"title":28971,"description":29208},"clickhouse/overview","clickhouse",[29213,29215,28337,28650],"analytics","bIeT1qmmPDZpQy4OohpLFFlAtzQx1h2PoP6GluUDTk0",{"id":29218,"title":29219,"body":29220,"date":402,"description":29404,"extension":404,"meta":29405,"navigation":61,"order":37,"path":29406,"seo":29407,"stem":29408,"subject":29277,"tags":29409,"__hash__":29411},"topics/clojure/overview.md","Clojure Basics",{"type":8,"value":29221,"toc":29397},[29222,29226,29229,29266,29270,29273,29299,29303,29306,29321,29323,29326,29350,29354,29361,29395],[11,29223,29225],{"id":29224},"setting-up-clojure","Setting Up Clojure",[16,29227,29228],{},"Use Leiningen to manage your Clojure projects.",[25,29230,29232],{"className":27,"code":29231,"language":29,"meta":30,"style":30},"# Install Leiningen\nbrew install leiningen\n\n# Create a new project\nlein new my-app\n",[20,29233,29234,29239,29248,29252,29257],{"__ignoreMap":30},[34,29235,29236],{"class":36,"line":37},[34,29237,29238],{"class":40},"# Install Leiningen\n",[34,29240,29241,29243,29245],{"class":36,"line":44},[34,29242,115],{"class":47},[34,29244,118],{"class":54},[34,29246,29247],{"class":54}," leiningen\n",[34,29249,29250],{"class":36,"line":58},[34,29251,62],{"emptyLinePlaceholder":61},[34,29253,29254],{"class":36,"line":65},[34,29255,29256],{"class":40},"# Create a new project\n",[34,29258,29259,29262,29264],{"class":36,"line":71},[34,29260,29261],{"class":47},"lein",[34,29263,809],{"class":54},[34,29265,7508],{"class":54},[11,29267,29269],{"id":29268},"clojure-syntax","Clojure Syntax",[16,29271,29272],{},"Clojure is a Lisp dialect and uses s-expressions for its syntax.",[25,29274,29278],{"className":29275,"code":29276,"language":29277,"meta":30,"style":30},"language-clojure shiki shiki-themes github-light github-dark","(defn greet [name]\n  (str \"Hello, \" name))\n\n(println (greet \"World\"))\n","clojure",[20,29279,29280,29285,29290,29294],{"__ignoreMap":30},[34,29281,29282],{"class":36,"line":37},[34,29283,29284],{},"(defn greet [name]\n",[34,29286,29287],{"class":36,"line":44},[34,29288,29289],{},"  (str \"Hello, \" name))\n",[34,29291,29292],{"class":36,"line":58},[34,29293,62],{"emptyLinePlaceholder":61},[34,29295,29296],{"class":36,"line":65},[34,29297,29298],{},"(println (greet \"World\"))\n",[11,29300,29302],{"id":29301},"working-with-data-structures","Working with Data Structures",[16,29304,29305],{},"Clojure has robust support for immutable data structures.",[25,29307,29309],{"className":29275,"code":29308,"language":29277,"meta":30,"style":30},"(def my-map {:name \"Alice\" :age 30})\n(println (:name my-map))\n",[20,29310,29311,29316],{"__ignoreMap":30},[34,29312,29313],{"class":36,"line":37},[34,29314,29315],{},"(def my-map {:name \"Alice\" :age 30})\n",[34,29317,29318],{"class":36,"line":44},[34,29319,29320],{},"(println (:name my-map))\n",[11,29322,26842],{"id":26847},[16,29324,29325],{},"Macros in Clojure allow for metaprogramming.",[25,29327,29329],{"className":29275,"code":29328,"language":29277,"meta":30,"style":30},"(defmacro unless [pred a b]\n  `(if (not ~pred) ~a ~b))\n\n(println (unless false \"It works!\" \"It fails.\"))\n",[20,29330,29331,29336,29341,29345],{"__ignoreMap":30},[34,29332,29333],{"class":36,"line":37},[34,29334,29335],{},"(defmacro unless [pred a b]\n",[34,29337,29338],{"class":36,"line":44},[34,29339,29340],{},"  `(if (not ~pred) ~a ~b))\n",[34,29342,29343],{"class":36,"line":58},[34,29344,62],{"emptyLinePlaceholder":61},[34,29346,29347],{"class":36,"line":65},[34,29348,29349],{},"(println (unless false \"It works!\" \"It fails.\"))\n",[11,29351,29353],{"id":29352},"coreasync","Core.async",[16,29355,29356,29357,29360],{},"Clojure's ",[20,29358,29359],{},"core.async"," library enables async programming.",[25,29362,29364],{"className":29275,"code":29363,"language":29277,"meta":30,"style":30},"(require '[clojure.core.async :as async])\n\n(let [c (async/chan)]\n  (async/go\n    (async/>! c \"Hello\"))\n  (println (async/\u003C!! c)))\n",[20,29365,29366,29371,29375,29380,29385,29390],{"__ignoreMap":30},[34,29367,29368],{"class":36,"line":37},[34,29369,29370],{},"(require '[clojure.core.async :as async])\n",[34,29372,29373],{"class":36,"line":44},[34,29374,62],{"emptyLinePlaceholder":61},[34,29376,29377],{"class":36,"line":58},[34,29378,29379],{},"(let [c (async/chan)]\n",[34,29381,29382],{"class":36,"line":65},[34,29383,29384],{},"  (async/go\n",[34,29386,29387],{"class":36,"line":71},[34,29388,29389],{},"    (async/>! c \"Hello\"))\n",[34,29391,29392],{"class":36,"line":77},[34,29393,29394],{},"  (println (async/\u003C!! c)))\n",[388,29396,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":29398},[29399,29400,29401,29402,29403],{"id":29224,"depth":44,"text":29225},{"id":29268,"depth":44,"text":29269},{"id":29301,"depth":44,"text":29302},{"id":26847,"depth":44,"text":26842},{"id":29352,"depth":44,"text":29353},"Learn the fundamentals of Clojure programming, including syntax, functions, macros, and state management.",{},"/clojure/overview",{"title":29219,"description":29404},"clojure/overview",[29277,10996,26847,29410,17403],"state","mhnDqlTz5rUbouOHVkpC8LVkiUY4QjOa2Z9aRdTgP_A",{"id":29413,"title":29414,"body":29415,"date":402,"description":29620,"extension":404,"meta":29621,"navigation":61,"order":37,"path":29622,"seo":29623,"stem":29624,"subject":29625,"tags":29626,"__hash__":29629},"topics/commitlint/overview.md","Commitlint",{"type":8,"value":29416,"toc":29610},[29417,29419,29422,29424,29427,29470,29472,29475,29480,29497,29510,29514,29517,29521,29524,29568,29571,29594,29598,29601,29607],[11,29418,13534],{"id":13533},[16,29420,29421],{},"Commitlint helps teams maintain consistent commit messages by enforcing formats like Conventional Commits. This improves code quality and streamlines integration workflows.",[11,29423,97],{"id":96},[16,29425,29426],{},"Install Commitlint and a pre-configured ruleset:",[25,29428,29430],{"className":27,"code":29429,"language":29,"meta":30,"style":30},"npm install -D @commitlint/cli @commitlint/config-conventional\nyarn add -D @commitlint/cli @commitlint/config-conventional\npnpm add -D @commitlint/cli @commitlint/config-conventional\n",[20,29431,29432,29446,29458],{"__ignoreMap":30},[34,29433,29434,29436,29438,29440,29443],{"class":36,"line":37},[34,29435,8177],{"class":47},[34,29437,118],{"class":54},[34,29439,13768],{"class":50},[34,29441,29442],{"class":54}," @commitlint/cli",[34,29444,29445],{"class":54}," @commitlint/config-conventional\n",[34,29447,29448,29450,29452,29454,29456],{"class":36,"line":44},[34,29449,13810],{"class":47},[34,29451,7854],{"class":54},[34,29453,13768],{"class":50},[34,29455,29442],{"class":54},[34,29457,29445],{"class":54},[34,29459,29460,29462,29464,29466,29468],{"class":36,"line":58},[34,29461,13788],{"class":47},[34,29463,7854],{"class":54},[34,29465,13768],{"class":50},[34,29467,29442],{"class":54},[34,29469,29445],{"class":54},[102,29471,8686],{"id":558},[16,29473,29474],{},"Create the configuration file:",[16,29476,29477],{},[8471,29478,29479],{},"JavaScript (ES Modules):",[25,29481,29483],{"className":27,"code":29482,"language":29,"meta":30,"style":30},"echo \"export default { extends: ['@commitlint/config-conventional'] };\" > commitlint.config.mjs\n",[20,29484,29485],{"__ignoreMap":30},[34,29486,29487,29489,29492,29494],{"class":36,"line":37},[34,29488,10120],{"class":50},[34,29490,29491],{"class":54}," \"export default { extends: ['@commitlint/config-conventional'] };\"",[34,29493,9009],{"class":580},[34,29495,29496],{"class":54}," commitlint.config.mjs\n",[16,29498,29499,29502,29503,29506,29507,151],{},[8471,29500,29501],{},"Alternative:","\nRename configuration file to ",[20,29504,29505],{},".mjs"," if errors appear due to missing ",[20,29508,29509],{},"package.json",[11,29511,29513],{"id":29512},"git-hook-integration","Git Hook Integration",[16,29515,29516],{},"Set up Git hooks to enforce rules during commits:",[102,29518,29520],{"id":29519},"using-husky","Using Husky",[16,29522,29523],{},"Install Husky (git hooks manager):",[25,29525,29527],{"className":27,"code":29526,"language":29,"meta":30,"style":30},"npm install --save-dev husky\nnpx husky install\nnpx husky add .husky/commit-msg \"npx --no-install commitlint --edit $1\"\n",[20,29528,29529,29541,29550],{"__ignoreMap":30},[34,29530,29531,29533,29535,29538],{"class":36,"line":37},[34,29532,8177],{"class":47},[34,29534,118],{"class":54},[34,29536,29537],{"class":50}," --save-dev",[34,29539,29540],{"class":54}," husky\n",[34,29542,29543,29545,29548],{"class":36,"line":44},[34,29544,8205],{"class":47},[34,29546,29547],{"class":54}," husky",[34,29549,5951],{"class":54},[34,29551,29552,29554,29556,29558,29561,29564,29566],{"class":36,"line":58},[34,29553,8205],{"class":47},[34,29555,29547],{"class":54},[34,29557,7854],{"class":54},[34,29559,29560],{"class":54}," .husky/commit-msg",[34,29562,29563],{"class":54}," \"npx --no-install commitlint --edit ",[34,29565,11023],{"class":50},[34,29567,11320],{"class":54},[16,29569,29570],{},"For Windows:",[25,29572,29574],{"className":27,"code":29573,"language":29,"meta":30,"style":30},"echo \"$(...) uses `backticks` escaping for better support.\"\n",[20,29575,29576],{"__ignoreMap":30},[34,29577,29578,29580,29583,29585,29588,29591],{"class":36,"line":37},[34,29579,10120],{"class":50},[34,29581,29582],{"class":54}," \"$(",[34,29584,16841],{"class":50},[34,29586,29587],{"class":54},") uses `",[34,29589,29590],{"class":47},"backticks",[34,29592,29593],{"class":54},"` escaping for better support.\"\n",[102,29595,29597],{"id":29596},"commit-conventions","Commit Conventions",[16,29599,29600],{},"Supported formats include Conventional Commits.\nFor example:",[25,29602,29605],{"className":29603,"code":29604,"language":780,"meta":30},[13703],"feat: Add new login feature\nfix: Correct password validation regex\n",[20,29606,29604],{"__ignoreMap":30},[388,29608,29609],{},"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 .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);}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":30,"searchDepth":44,"depth":44,"links":29611},[29612,29613,29616],{"id":13533,"depth":44,"text":13534},{"id":96,"depth":44,"text":97,"children":29614},[29615],{"id":558,"depth":58,"text":8686},{"id":29512,"depth":44,"text":29513,"children":29617},[29618,29619],{"id":29519,"depth":58,"text":29520},{"id":29596,"depth":58,"text":29597},"Ensure consistent commit messages across collaborators by linting commit conventions.",{},"/commitlint/overview",{"title":29414,"description":29620},"commitlint/overview","commitlint",[29625,7794,29627,29628],"ci","code-quality","6QKCAbCElBm8fXhnGTCEYH0tRjO4S8fyuAvOLSJT5e8",{"id":29631,"title":29632,"body":29633,"date":402,"description":29736,"extension":404,"meta":29737,"navigation":61,"order":37,"path":29738,"seo":29739,"stem":29740,"subject":29741,"tags":29742,"__hash__":29746},"topics/commonlisp/overview.md","Common Lisp Basics",{"type":8,"value":29634,"toc":29732},[29635,29639,29642,29684,29687,29691,29697,29714,29720,29729],[11,29636,29638],{"id":29637},"setting-up-sbcl-with-quicklisp","Setting Up SBCL with Quicklisp",[16,29640,29641],{},"Install SBCL (Steel Bank Common Lisp) and Quicklisp for package management:",[25,29643,29645],{"className":27,"code":29644,"language":29,"meta":30,"style":30},"sudo apt install sbcl\n# Download and set up Quicklisp\ncurl -O https://beta.quicklisp.org/quicklisp.lisp\nsbcl --load quicklisp.lisp\n",[20,29646,29647,29658,29663,29673],{"__ignoreMap":30},[34,29648,29649,29651,29653,29655],{"class":36,"line":37},[34,29650,436],{"class":47},[34,29652,439],{"class":54},[34,29654,118],{"class":54},[34,29656,29657],{"class":54}," sbcl\n",[34,29659,29660],{"class":36,"line":44},[34,29661,29662],{"class":40},"# Download and set up Quicklisp\n",[34,29664,29665,29667,29670],{"class":36,"line":58},[34,29666,8648],{"class":47},[34,29668,29669],{"class":50}," -O",[34,29671,29672],{"class":54}," https://beta.quicklisp.org/quicklisp.lisp\n",[34,29674,29675,29678,29681],{"class":36,"line":65},[34,29676,29677],{"class":47},"sbcl",[34,29679,29680],{"class":50}," --load",[34,29682,29683],{"class":54}," quicklisp.lisp\n",[16,29685,29686],{},"Quicklisp supports installing libraries and managing dependencies.",[11,29688,29690],{"id":29689},"declaring-functions-and-variables","Declaring Functions and Variables",[16,29692,29693,29694,165],{},"In Common Lisp, use ",[20,29695,29696],{},"defun",[25,29698,29702],{"className":29699,"code":29700,"language":29701,"meta":30,"style":30},"language-lisp shiki shiki-themes github-light github-dark","(defun add (x y) (+ x y))\n(println (add 2 3))\n","lisp",[20,29703,29704,29709],{"__ignoreMap":30},[34,29705,29706],{"class":36,"line":37},[34,29707,29708],{},"(defun add (x y) (+ x y))\n",[34,29710,29711],{"class":36,"line":44},[34,29712,29713],{},"(println (add 2 3))\n",[16,29715,29716,29717,165],{},"Variables can be global with ",[20,29718,29719],{},"defvar",[25,29721,29723],{"className":29699,"code":29722,"language":29701,"meta":30,"style":30},"(defvar *x* \"global var\")\n",[20,29724,29725],{"__ignoreMap":30},[34,29726,29727],{"class":36,"line":37},[34,29728,29722],{},[388,29730,29731],{},"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 .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}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":30,"searchDepth":44,"depth":44,"links":29733},[29734,29735],{"id":29637,"depth":44,"text":29638},{"id":29689,"depth":44,"text":29690},"A quick dive into Common Lisp syntax and CLOS basics.",{},"/commonlisp/overview",{"title":29632,"description":29736},"commonlisp/overview","commonlisp",[29743,26847,29677,29744,29745],"common lisp","clos","quicklisp","mi2KKfR4Z9u7RI6iODi2SdXKVVU5BmEAFXs1Z3tI6iA",{"id":29748,"title":29749,"body":29750,"date":402,"description":30034,"extension":404,"meta":30035,"navigation":61,"order":65,"path":30036,"seo":30037,"stem":30038,"subject":29759,"tags":30039,"__hash__":30042},"topics/cpp/arrays-vectors.md","Arrays & Vectors",{"type":8,"value":29751,"toc":30031},[29752,29755,30028],[11,29753,29749],{"id":29754},"arrays-vectors",[25,29756,29760],{"className":29757,"code":29758,"language":29759,"meta":30,"style":30},"language-cpp shiki shiki-themes github-light github-dark","#include \u003Carray>\n#include \u003Cvector>\n\n// C-style array\nint arr[5] = {1, 2, 3, 4, 5};\n\n// std::array (fixed size, C++11)\nstd::array\u003Cint, 5> stdArr = {1, 2, 3, 4, 5};\n\n// std::vector (dynamic array)\nstd::vector\u003Cint> vec = {1, 2, 3};\nvec.push_back(4);        // Add element\nvec.pop_back();          // Remove last\nvec.size();              // Get size\nvec.empty();             // Check if empty\nvec.clear();             // Remove all elements\nvec.at(0);               // Access with bounds check\nvec[0];                  // Access without bounds check\nvec.front();             // First element\nvec.back();              // Last element\n","cpp",[20,29761,29762,29769,29776,29780,29785,29820,29824,29829,29873,29877,29882,29911,29928,29940,29952,29964,29976,29992,30004,30016],{"__ignoreMap":30},[34,29763,29764,29766],{"class":36,"line":37},[34,29765,19569],{"class":580},[34,29767,29768],{"class":54}," \u003Carray>\n",[34,29770,29771,29773],{"class":36,"line":44},[34,29772,19569],{"class":580},[34,29774,29775],{"class":54}," \u003Cvector>\n",[34,29777,29778],{"class":36,"line":58},[34,29779,62],{"emptyLinePlaceholder":61},[34,29781,29782],{"class":36,"line":65},[34,29783,29784],{"class":40},"// C-style array\n",[34,29786,29787,29789,29792,29794,29796,29798,29800,29802,29804,29806,29808,29810,29812,29814,29816,29818],{"class":36,"line":71},[34,29788,17772],{"class":580},[34,29790,29791],{"class":181}," arr[",[34,29793,2778],{"class":50},[34,29795,17799],{"class":181},[34,29797,1301],{"class":580},[34,29799,11838],{"class":181},[34,29801,8318],{"class":50},[34,29803,1798],{"class":181},[34,29805,8324],{"class":50},[34,29807,1798],{"class":181},[34,29809,3162],{"class":50},[34,29811,1798],{"class":181},[34,29813,18010],{"class":50},[34,29815,1798],{"class":181},[34,29817,2778],{"class":50},[34,29819,17632],{"class":181},[34,29821,29822],{"class":36,"line":77},[34,29823,62],{"emptyLinePlaceholder":61},[34,29825,29826],{"class":36,"line":82},[34,29827,29828],{"class":40},"// std::array (fixed size, C++11)\n",[34,29830,29831,29834,29837,29840,29842,29844,29846,29849,29851,29853,29855,29857,29859,29861,29863,29865,29867,29869,29871],{"class":36,"line":88},[34,29832,29833],{"class":47},"std",[34,29835,29836],{"class":181},"::array",[34,29838,29839],{"class":580},"\u003Cint",[34,29841,1798],{"class":181},[34,29843,2778],{"class":50},[34,29845,5691],{"class":580},[34,29847,29848],{"class":181}," stdArr ",[34,29850,1301],{"class":580},[34,29852,11838],{"class":181},[34,29854,8318],{"class":50},[34,29856,1798],{"class":181},[34,29858,8324],{"class":50},[34,29860,1798],{"class":181},[34,29862,3162],{"class":50},[34,29864,1798],{"class":181},[34,29866,18010],{"class":50},[34,29868,1798],{"class":181},[34,29870,2778],{"class":50},[34,29872,17632],{"class":181},[34,29874,29875],{"class":36,"line":242},[34,29876,62],{"emptyLinePlaceholder":61},[34,29878,29879],{"class":36,"line":250},[34,29880,29881],{"class":40},"// std::vector (dynamic array)\n",[34,29883,29884,29886,29889,29892,29895,29897,29899,29901,29903,29905,29907,29909],{"class":36,"line":263},[34,29885,29833],{"class":47},[34,29887,29888],{"class":181},"::vector",[34,29890,29891],{"class":580},"\u003Cint>",[34,29893,29894],{"class":181}," vec ",[34,29896,1301],{"class":580},[34,29898,11838],{"class":181},[34,29900,8318],{"class":50},[34,29902,1798],{"class":181},[34,29904,8324],{"class":50},[34,29906,1798],{"class":181},[34,29908,3162],{"class":50},[34,29910,17632],{"class":181},[34,29912,29913,29916,29919,29921,29923,29925],{"class":36,"line":275},[34,29914,29915],{"class":181},"vec.",[34,29917,29918],{"class":47},"push_back",[34,29920,1607],{"class":181},[34,29922,18010],{"class":50},[34,29924,19682],{"class":181},[34,29926,29927],{"class":40},"        // Add element\n",[34,29929,29930,29932,29935,29937],{"class":36,"line":700},[34,29931,29915],{"class":181},[34,29933,29934],{"class":47},"pop_back",[34,29936,24004],{"class":181},[34,29938,29939],{"class":40},"          // Remove last\n",[34,29941,29942,29944,29947,29949],{"class":36,"line":706},[34,29943,29915],{"class":181},[34,29945,29946],{"class":47},"size",[34,29948,24004],{"class":181},[34,29950,29951],{"class":40},"              // Get size\n",[34,29953,29954,29956,29959,29961],{"class":36,"line":715},[34,29955,29915],{"class":181},[34,29957,29958],{"class":47},"empty",[34,29960,24004],{"class":181},[34,29962,29963],{"class":40},"             // Check if empty\n",[34,29965,29966,29968,29971,29973],{"class":36,"line":725},[34,29967,29915],{"class":181},[34,29969,29970],{"class":47},"clear",[34,29972,24004],{"class":181},[34,29974,29975],{"class":40},"             // Remove all elements\n",[34,29977,29978,29980,29983,29985,29987,29989],{"class":36,"line":734},[34,29979,29915],{"class":181},[34,29981,29982],{"class":47},"at",[34,29984,1607],{"class":181},[34,29986,2773],{"class":50},[34,29988,19682],{"class":181},[34,29990,29991],{"class":40},"               // Access with bounds check\n",[34,29993,29994,29997,29999,30001],{"class":36,"line":742},[34,29995,29996],{"class":181},"vec[",[34,29998,2773],{"class":50},[34,30000,17782],{"class":181},[34,30002,30003],{"class":40},"                  // Access without bounds check\n",[34,30005,30006,30008,30011,30013],{"class":36,"line":748},[34,30007,29915],{"class":181},[34,30009,30010],{"class":47},"front",[34,30012,24004],{"class":181},[34,30014,30015],{"class":40},"             // First element\n",[34,30017,30018,30020,30023,30025],{"class":36,"line":754},[34,30019,29915],{"class":181},[34,30021,30022],{"class":47},"back",[34,30024,24004],{"class":181},[34,30026,30027],{"class":40},"              // Last element\n",[388,30029,30030],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":30032},[30033],{"id":29754,"depth":44,"text":29749},"Arrays & Vectors in C++.",{},"/cpp/arrays-vectors",{"title":29749,"description":30034},"cpp/arrays-vectors",[29759,30040,18137,18138,30041],"c++","oop","eJVYsswanv4xr2i_1B2Vz5rkefKq8eV8HYMDLk7v5D0",{"id":30044,"title":30045,"body":30046,"date":402,"description":30368,"extension":404,"meta":30369,"navigation":61,"order":88,"path":30370,"seo":30371,"stem":30372,"subject":29759,"tags":30373,"__hash__":30374},"topics/cpp/classes-objects.md","Classes & Objects",{"type":8,"value":30047,"toc":30365},[30048,30051,30362],[11,30049,30045],{"id":30050},"classes-objects",[25,30052,30054],{"className":29757,"code":30053,"language":29759,"meta":30,"style":30},"class Person {\nprivate:\n    std::string name;\n    int age;\n\npublic:\n    // Constructor\n    Person(std::string n, int a) : name(n), age(a) {}\n\n    // Default constructor\n    Person() = default;\n\n    // Destructor\n    ~Person() {}\n\n    // Member function\n    void introduce() const {\n        std::cout \u003C\u003C \"I'm \" \u003C\u003C name \u003C\u003C std::endl;\n    }\n\n    // Getters and setters\n    std::string getName() const { return name; }\n    void setName(const std::string& n) { name = n; }\n};\n\n// Creating objects\nPerson p1(\"Alice\", 30);\nPerson p2;                  // Default constructor\nPerson* p3 = new Person(\"Bob\", 25);\ndelete p3;                  // Don't forget to delete!\n",[20,30055,30056,30066,30071,30079,30085,30089,30094,30099,30135,30139,30144,30156,30160,30165,30173,30177,30182,30195,30221,30225,30229,30234,30257,30286,30290,30294,30299,30317,30325,30351],{"__ignoreMap":30},[34,30057,30058,30061,30064],{"class":36,"line":37},[34,30059,30060],{"class":580},"class",[34,30062,30063],{"class":47}," Person",[34,30065,661],{"class":181},[34,30067,30068],{"class":36,"line":44},[34,30069,30070],{"class":580},"private:\n",[34,30072,30073,30076],{"class":36,"line":58},[34,30074,30075],{"class":47},"    std",[34,30077,30078],{"class":181},"::string name;\n",[34,30080,30081,30083],{"class":36,"line":65},[34,30082,18339],{"class":580},[34,30084,24702],{"class":181},[34,30086,30087],{"class":36,"line":71},[34,30088,62],{"emptyLinePlaceholder":61},[34,30090,30091],{"class":36,"line":77},[34,30092,30093],{"class":580},"public:\n",[34,30095,30096],{"class":36,"line":82},[34,30097,30098],{"class":40},"    // Constructor\n",[34,30100,30101,30104,30106,30108,30111,30114,30116,30118,30120,30122,30125,30127,30130,30132],{"class":36,"line":88},[34,30102,30103],{"class":47},"    Person",[34,30105,1607],{"class":181},[34,30107,29833],{"class":47},[34,30109,30110],{"class":181},"::",[34,30112,30113],{"class":47},"string",[34,30115,21959],{"class":675},[34,30117,1798],{"class":181},[34,30119,17772],{"class":580},[34,30121,19385],{"class":675},[34,30123,30124],{"class":181},") : ",[34,30126,178],{"class":47},[34,30128,30129],{"class":181},"(n), ",[34,30131,13337],{"class":47},[34,30133,30134],{"class":181},"(a) {}\n",[34,30136,30137],{"class":36,"line":242},[34,30138,62],{"emptyLinePlaceholder":61},[34,30140,30141],{"class":36,"line":250},[34,30142,30143],{"class":40},"    // Default constructor\n",[34,30145,30146,30148,30150,30152,30154],{"class":36,"line":263},[34,30147,30103],{"class":47},[34,30149,672],{"class":181},[34,30151,1301],{"class":580},[34,30153,7298],{"class":580},[34,30155,593],{"class":181},[34,30157,30158],{"class":36,"line":275},[34,30159,62],{"emptyLinePlaceholder":61},[34,30161,30162],{"class":36,"line":700},[34,30163,30164],{"class":40},"    // Destructor\n",[34,30166,30167,30170],{"class":36,"line":706},[34,30168,30169],{"class":47},"    ~Person",[34,30171,30172],{"class":181},"() {}\n",[34,30174,30175],{"class":36,"line":715},[34,30176,62],{"emptyLinePlaceholder":61},[34,30178,30179],{"class":36,"line":725},[34,30180,30181],{"class":40},"    // Member function\n",[34,30183,30184,30186,30189,30191,30193],{"class":36,"line":734},[34,30185,20812],{"class":580},[34,30187,30188],{"class":47}," introduce",[34,30190,672],{"class":181},[34,30192,14676],{"class":580},[34,30194,661],{"class":181},[34,30196,30197,30200,30203,30205,30208,30210,30213,30215,30218],{"class":36,"line":742},[34,30198,30199],{"class":47},"        std",[34,30201,30202],{"class":181},"::cout ",[34,30204,23022],{"class":580},[34,30206,30207],{"class":54}," \"I'm \"",[34,30209,11452],{"class":580},[34,30211,30212],{"class":181}," name ",[34,30214,23022],{"class":580},[34,30216,30217],{"class":47}," std",[34,30219,30220],{"class":181},"::endl;\n",[34,30222,30223],{"class":36,"line":748},[34,30224,3229],{"class":181},[34,30226,30227],{"class":36,"line":754},[34,30228,62],{"emptyLinePlaceholder":61},[34,30230,30231],{"class":36,"line":759},[34,30232,30233],{"class":40},"    // Getters and setters\n",[34,30235,30236,30238,30240,30242,30245,30247,30249,30252,30254],{"class":36,"line":771},[34,30237,30075],{"class":47},[34,30239,30110],{"class":181},[34,30241,30113],{"class":47},[34,30243,30244],{"class":47}," getName",[34,30246,672],{"class":181},[34,30248,14676],{"class":580},[34,30250,30251],{"class":181}," { ",[34,30253,2917],{"class":580},[34,30255,30256],{"class":181}," name; }\n",[34,30258,30259,30261,30264,30266,30268,30270,30272,30274,30276,30278,30281,30283],{"class":36,"line":794},[34,30260,20812],{"class":580},[34,30262,30263],{"class":47}," setName",[34,30265,1607],{"class":181},[34,30267,14676],{"class":580},[34,30269,30217],{"class":47},[34,30271,30110],{"class":181},[34,30273,30113],{"class":47},[34,30275,19502],{"class":580},[34,30277,21959],{"class":675},[34,30279,30280],{"class":181},") { name ",[34,30282,1301],{"class":580},[34,30284,30285],{"class":181}," n; }\n",[34,30287,30288],{"class":36,"line":824},[34,30289,17632],{"class":181},[34,30291,30292],{"class":36,"line":830},[34,30293,62],{"emptyLinePlaceholder":61},[34,30295,30296],{"class":36,"line":839},[34,30297,30298],{"class":40},"// Creating objects\n",[34,30300,30301,30304,30307,30309,30311,30313,30315],{"class":36,"line":854},[34,30302,30303],{"class":47},"Person",[34,30305,30306],{"class":47}," p1",[34,30308,1607],{"class":181},[34,30310,21650],{"class":54},[34,30312,1798],{"class":181},[34,30314,17625],{"class":50},[34,30316,1586],{"class":181},[34,30318,30319,30322],{"class":36,"line":860},[34,30320,30321],{"class":181},"Person p2;",[34,30323,30324],{"class":40},"                  // Default constructor\n",[34,30326,30327,30329,30331,30334,30336,30338,30340,30342,30345,30347,30349],{"class":36,"line":865},[34,30328,30303],{"class":181},[34,30330,4289],{"class":580},[34,30332,30333],{"class":181}," p3 ",[34,30335,1301],{"class":580},[34,30337,809],{"class":580},[34,30339,30063],{"class":47},[34,30341,1607],{"class":181},[34,30343,30344],{"class":54},"\"Bob\"",[34,30346,1798],{"class":181},[34,30348,24546],{"class":50},[34,30350,1586],{"class":181},[34,30352,30353,30356,30359],{"class":36,"line":870},[34,30354,30355],{"class":580},"delete",[34,30357,30358],{"class":181}," p3;",[34,30360,30361],{"class":40},"                  // Don't forget to delete!\n",[388,30363,30364],{},"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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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 .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":30,"searchDepth":44,"depth":44,"links":30366},[30367],{"id":30050,"depth":44,"text":30045},"Classes & Objects in C++.",{},"/cpp/classes-objects",{"title":30045,"description":30368},"cpp/classes-objects",[29759,30040,18137,18138,30041],"20zmvZW6OjKDsyqcQHCRUfWBrJ2mS-0sxzrlCG4oTmA",{"id":30376,"title":30377,"body":30378,"date":402,"description":30608,"extension":404,"meta":30609,"navigation":61,"order":263,"path":30610,"seo":30611,"stem":30612,"subject":29759,"tags":30613,"__hash__":30614},"topics/cpp/containers.md","Containers",{"type":8,"value":30379,"toc":30605},[30380,30383,30603],[11,30381,30377],{"id":30382},"containers",[25,30384,30386],{"className":29757,"code":30385,"language":29759,"meta":30,"style":30},"#include \u003Cmap>\n#include \u003Cset>\n#include \u003Cunordered_map>\n#include \u003Cunordered_set>\n\n// Map (ordered key-value pairs)\nstd::map\u003Cstd::string, int> ages;\nages[\"Alice\"] = 30;\nages.insert({\"Bob\", 25});\nages.find(\"Alice\");          // Iterator to element\nages.count(\"Alice\");         // 1 if exists, 0 otherwise\n\n// Unordered map (hash table)\nstd::unordered_map\u003Cstd::string, int> hashMap;\n\n// Set (ordered unique elements)\nstd::set\u003Cint> uniqueNums = {3, 1, 4, 1, 5};\n\n// Unordered set (hash set)\nstd::unordered_set\u003Cint> hashSet;\n",[20,30387,30388,30395,30402,30409,30416,30420,30425,30445,30461,30480,30495,30510,30514,30519,30537,30541,30546,30582,30586,30591],{"__ignoreMap":30},[34,30389,30390,30392],{"class":36,"line":37},[34,30391,19569],{"class":580},[34,30393,30394],{"class":54}," \u003Cmap>\n",[34,30396,30397,30399],{"class":36,"line":44},[34,30398,19569],{"class":580},[34,30400,30401],{"class":54}," \u003Cset>\n",[34,30403,30404,30406],{"class":36,"line":58},[34,30405,19569],{"class":580},[34,30407,30408],{"class":54}," \u003Cunordered_map>\n",[34,30410,30411,30413],{"class":36,"line":65},[34,30412,19569],{"class":580},[34,30414,30415],{"class":54}," \u003Cunordered_set>\n",[34,30417,30418],{"class":36,"line":71},[34,30419,62],{"emptyLinePlaceholder":61},[34,30421,30422],{"class":36,"line":77},[34,30423,30424],{"class":40},"// Map (ordered key-value pairs)\n",[34,30426,30427,30429,30432,30434,30436,30439,30442],{"class":36,"line":82},[34,30428,29833],{"class":47},[34,30430,30431],{"class":181},"::map",[34,30433,815],{"class":580},[34,30435,29833],{"class":47},[34,30437,30438],{"class":181},"::string, ",[34,30440,30441],{"class":580},"int>",[34,30443,30444],{"class":181}," ages;\n",[34,30446,30447,30450,30452,30454,30456,30459],{"class":36,"line":88},[34,30448,30449],{"class":181},"ages[",[34,30451,21650],{"class":54},[34,30453,17799],{"class":181},[34,30455,1301],{"class":580},[34,30457,30458],{"class":50}," 30",[34,30460,593],{"class":181},[34,30462,30463,30466,30469,30472,30474,30476,30478],{"class":36,"line":242},[34,30464,30465],{"class":181},"ages.",[34,30467,30468],{"class":47},"insert",[34,30470,30471],{"class":181},"({",[34,30473,30344],{"class":54},[34,30475,1798],{"class":181},[34,30477,24546],{"class":50},[34,30479,14873],{"class":181},[34,30481,30482,30484,30486,30488,30490,30492],{"class":36,"line":250},[34,30483,30465],{"class":181},[34,30485,12963],{"class":47},[34,30487,1607],{"class":181},[34,30489,21650],{"class":54},[34,30491,19682],{"class":181},[34,30493,30494],{"class":40},"          // Iterator to element\n",[34,30496,30497,30499,30501,30503,30505,30507],{"class":36,"line":263},[34,30498,30465],{"class":181},[34,30500,4284],{"class":47},[34,30502,1607],{"class":181},[34,30504,21650],{"class":54},[34,30506,19682],{"class":181},[34,30508,30509],{"class":40},"         // 1 if exists, 0 otherwise\n",[34,30511,30512],{"class":36,"line":275},[34,30513,62],{"emptyLinePlaceholder":61},[34,30515,30516],{"class":36,"line":700},[34,30517,30518],{"class":40},"// Unordered map (hash table)\n",[34,30520,30521,30523,30526,30528,30530,30532,30534],{"class":36,"line":706},[34,30522,29833],{"class":47},[34,30524,30525],{"class":181},"::unordered_map",[34,30527,815],{"class":580},[34,30529,29833],{"class":47},[34,30531,30438],{"class":181},[34,30533,30441],{"class":580},[34,30535,30536],{"class":181}," hashMap;\n",[34,30538,30539],{"class":36,"line":715},[34,30540,62],{"emptyLinePlaceholder":61},[34,30542,30543],{"class":36,"line":725},[34,30544,30545],{"class":40},"// Set (ordered unique elements)\n",[34,30547,30548,30550,30553,30555,30558,30560,30562,30564,30566,30568,30570,30572,30574,30576,30578,30580],{"class":36,"line":734},[34,30549,29833],{"class":47},[34,30551,30552],{"class":181},"::set",[34,30554,29891],{"class":580},[34,30556,30557],{"class":181}," uniqueNums ",[34,30559,1301],{"class":580},[34,30561,11838],{"class":181},[34,30563,3162],{"class":50},[34,30565,1798],{"class":181},[34,30567,8318],{"class":50},[34,30569,1798],{"class":181},[34,30571,18010],{"class":50},[34,30573,1798],{"class":181},[34,30575,8318],{"class":50},[34,30577,1798],{"class":181},[34,30579,2778],{"class":50},[34,30581,17632],{"class":181},[34,30583,30584],{"class":36,"line":742},[34,30585,62],{"emptyLinePlaceholder":61},[34,30587,30588],{"class":36,"line":748},[34,30589,30590],{"class":40},"// Unordered set (hash set)\n",[34,30592,30593,30595,30598,30600],{"class":36,"line":754},[34,30594,29833],{"class":47},[34,30596,30597],{"class":181},"::unordered_set",[34,30599,29891],{"class":580},[34,30601,30602],{"class":181}," hashSet;\n",[388,30604,22273],{},{"title":30,"searchDepth":44,"depth":44,"links":30606},[30607],{"id":30382,"depth":44,"text":30377},"Containers in C++.",{},"/cpp/containers",{"title":30377,"description":30608},"cpp/containers",[29759,30040,18137,18138,30041],"EdeKXeOQ0OuN1_DgmOQ3aS0Apqj6umZUooYfpqyH6z0",{"id":30616,"title":18818,"body":30617,"date":402,"description":30778,"extension":404,"meta":30779,"navigation":61,"order":71,"path":30780,"seo":30781,"stem":30782,"subject":29759,"tags":30783,"__hash__":30784},"topics/cpp/control-flow.md",{"type":8,"value":30618,"toc":30775},[30619,30621,30773],[11,30620,18818],{"id":18823},[25,30622,30624],{"className":29757,"code":30623,"language":29759,"meta":30,"style":30},"// If-else\nif (condition) {\n    // code\n} else if (other) {\n    // code\n} else {\n    // code\n}\n\n// Switch\nswitch (value) {\n    case 1:\n        // code\n        break;\n    case 2:\n        // code\n        break;\n    default:\n        // code\n}\n\n// Ternary operator\nint result = (x > y) ? x : y;\n",[20,30625,30626,30631,30638,30643,30654,30658,30666,30670,30674,30678,30683,30690,30698,30703,30709,30717,30721,30727,30733,30737,30741,30745,30749],{"__ignoreMap":30},[34,30627,30628],{"class":36,"line":37},[34,30629,30630],{"class":40},"// If-else\n",[34,30632,30633,30635],{"class":36,"line":44},[34,30634,10383],{"class":580},[34,30636,30637],{"class":181}," (condition) {\n",[34,30639,30640],{"class":36,"line":58},[34,30641,30642],{"class":40},"    // code\n",[34,30644,30645,30647,30649,30651],{"class":36,"line":65},[34,30646,2276],{"class":181},[34,30648,18871],{"class":580},[34,30650,18874],{"class":580},[34,30652,30653],{"class":181}," (other) {\n",[34,30655,30656],{"class":36,"line":71},[34,30657,30642],{"class":40},[34,30659,30660,30662,30664],{"class":36,"line":77},[34,30661,2276],{"class":181},[34,30663,18871],{"class":580},[34,30665,661],{"class":181},[34,30667,30668],{"class":36,"line":82},[34,30669,30642],{"class":40},[34,30671,30672],{"class":36,"line":88},[34,30673,693],{"class":181},[34,30675,30676],{"class":36,"line":242},[34,30677,62],{"emptyLinePlaceholder":61},[34,30679,30680],{"class":36,"line":250},[34,30681,30682],{"class":40},"// Switch\n",[34,30684,30685,30687],{"class":36,"line":263},[34,30686,18978],{"class":580},[34,30688,30689],{"class":181}," (value) {\n",[34,30691,30692,30694,30696],{"class":36,"line":275},[34,30693,18986],{"class":580},[34,30695,3567],{"class":50},[34,30697,193],{"class":181},[34,30699,30700],{"class":36,"line":700},[34,30701,30702],{"class":40},"        // code\n",[34,30704,30705,30707],{"class":36,"line":706},[34,30706,19011],{"class":580},[34,30708,593],{"class":181},[34,30710,30711,30713,30715],{"class":36,"line":715},[34,30712,18986],{"class":580},[34,30714,4292],{"class":50},[34,30716,193],{"class":181},[34,30718,30719],{"class":36,"line":725},[34,30720,30702],{"class":40},[34,30722,30723,30725],{"class":36,"line":734},[34,30724,19011],{"class":580},[34,30726,593],{"class":181},[34,30728,30729,30731],{"class":36,"line":742},[34,30730,19051],{"class":580},[34,30732,193],{"class":181},[34,30734,30735],{"class":36,"line":748},[34,30736,30702],{"class":40},[34,30738,30739],{"class":36,"line":754},[34,30740,693],{"class":181},[34,30742,30743],{"class":36,"line":759},[34,30744,62],{"emptyLinePlaceholder":61},[34,30746,30747],{"class":36,"line":771},[34,30748,18934],{"class":40},[34,30750,30751,30753,30755,30757,30760,30762,30765,30767,30769,30771],{"class":36,"line":794},[34,30752,17772],{"class":580},[34,30754,20093],{"class":181},[34,30756,1301],{"class":580},[34,30758,30759],{"class":181}," (x ",[34,30761,5691],{"class":580},[34,30763,30764],{"class":181}," y) ",[34,30766,18954],{"class":580},[34,30768,23172],{"class":181},[34,30770,165],{"class":580},[34,30772,24920],{"class":181},[388,30774,23046],{},{"title":30,"searchDepth":44,"depth":44,"links":30776},[30777],{"id":18823,"depth":44,"text":18818},"Control Flow in C++.",{},"/cpp/control-flow",{"title":18818,"description":30778},"cpp/control-flow",[29759,30040,18137,18138,30041],"-vIJMEDcAp31K1ItiI-ePIGii_reTEQoH5Gp9YbhBpg",{"id":30786,"title":30787,"body":30788,"date":402,"description":30974,"extension":404,"meta":30975,"navigation":61,"order":700,"path":30976,"seo":30977,"stem":30978,"subject":29759,"tags":30979,"__hash__":30980},"topics/cpp/exception-handling.md","Exception Handling",{"type":8,"value":30789,"toc":30971},[30790,30793,30968],[11,30791,30787],{"id":30792},"exception-handling",[25,30794,30796],{"className":29757,"code":30795,"language":29759,"meta":30,"style":30},"#include \u003Cstdexcept>\n\ntry {\n    if (error_condition) {\n        throw std::runtime_error(\"Something went wrong\");\n    }\n} catch (const std::runtime_error& e) {\n    std::cerr \u003C\u003C \"Error: \" \u003C\u003C e.what() \u003C\u003C std::endl;\n} catch (const std::exception& e) {\n    std::cerr \u003C\u003C \"Exception: \" \u003C\u003C e.what() \u003C\u003C std::endl;\n} catch (...) {\n    std::cerr \u003C\u003C \"Unknown exception\" \u003C\u003C std::endl;\n}\n",[20,30797,30798,30805,30809,30816,30823,30841,30845,30866,30894,30913,30938,30947,30964],{"__ignoreMap":30},[34,30799,30800,30802],{"class":36,"line":37},[34,30801,19569],{"class":580},[34,30803,30804],{"class":54}," \u003Cstdexcept>\n",[34,30806,30807],{"class":36,"line":44},[34,30808,62],{"emptyLinePlaceholder":61},[34,30810,30811,30814],{"class":36,"line":58},[34,30812,30813],{"class":580},"try",[34,30815,661],{"class":181},[34,30817,30818,30820],{"class":36,"line":65},[34,30819,2902],{"class":580},[34,30821,30822],{"class":181}," (error_condition) {\n",[34,30824,30825,30827,30829,30831,30834,30836,30839],{"class":36,"line":71},[34,30826,1932],{"class":580},[34,30828,30217],{"class":47},[34,30830,30110],{"class":181},[34,30832,30833],{"class":47},"runtime_error",[34,30835,1607],{"class":181},[34,30837,30838],{"class":54},"\"Something went wrong\"",[34,30840,1586],{"class":181},[34,30842,30843],{"class":36,"line":77},[34,30844,3229],{"class":181},[34,30846,30847,30849,30852,30854,30856,30858,30861,30863],{"class":36,"line":82},[34,30848,2276],{"class":181},[34,30850,30851],{"class":580},"catch",[34,30853,3204],{"class":181},[34,30855,14676],{"class":580},[34,30857,30217],{"class":47},[34,30859,30860],{"class":181},"::runtime_error",[34,30862,19502],{"class":580},[34,30864,30865],{"class":181}," e) {\n",[34,30867,30868,30870,30873,30875,30878,30880,30883,30886,30888,30890,30892],{"class":36,"line":88},[34,30869,30075],{"class":47},[34,30871,30872],{"class":181},"::cerr ",[34,30874,23022],{"class":580},[34,30876,30877],{"class":54}," \"Error: \"",[34,30879,11452],{"class":580},[34,30881,30882],{"class":181}," e.",[34,30884,30885],{"class":47},"what",[34,30887,672],{"class":181},[34,30889,23022],{"class":580},[34,30891,30217],{"class":47},[34,30893,30220],{"class":181},[34,30895,30896,30898,30900,30902,30904,30906,30909,30911],{"class":36,"line":242},[34,30897,2276],{"class":181},[34,30899,30851],{"class":580},[34,30901,3204],{"class":181},[34,30903,14676],{"class":580},[34,30905,30217],{"class":47},[34,30907,30908],{"class":181},"::exception",[34,30910,19502],{"class":580},[34,30912,30865],{"class":181},[34,30914,30915,30917,30919,30921,30924,30926,30928,30930,30932,30934,30936],{"class":36,"line":250},[34,30916,30075],{"class":47},[34,30918,30872],{"class":181},[34,30920,23022],{"class":580},[34,30922,30923],{"class":54}," \"Exception: \"",[34,30925,11452],{"class":580},[34,30927,30882],{"class":181},[34,30929,30885],{"class":47},[34,30931,672],{"class":181},[34,30933,23022],{"class":580},[34,30935,30217],{"class":47},[34,30937,30220],{"class":181},[34,30939,30940,30942,30944],{"class":36,"line":263},[34,30941,2276],{"class":181},[34,30943,30851],{"class":580},[34,30945,30946],{"class":181}," (...) {\n",[34,30948,30949,30951,30953,30955,30958,30960,30962],{"class":36,"line":275},[34,30950,30075],{"class":47},[34,30952,30872],{"class":181},[34,30954,23022],{"class":580},[34,30956,30957],{"class":54}," \"Unknown exception\"",[34,30959,11452],{"class":580},[34,30961,30217],{"class":47},[34,30963,30220],{"class":181},[34,30965,30966],{"class":36,"line":700},[34,30967,693],{"class":181},[388,30969,30970],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":30972},[30973],{"id":30792,"depth":44,"text":30787},"Exception Handling in C++.",{},"/cpp/exception-handling",{"title":30787,"description":30974},"cpp/exception-handling",[29759,30040,18137,18138,30041],"FpcUvSTnFPuZgnct8OXal0WVgQPiwLZnWwIubLw1g6c",{"id":30982,"title":21267,"body":30983,"date":402,"description":31153,"extension":404,"meta":31154,"navigation":61,"order":706,"path":31155,"seo":31156,"stem":31157,"subject":29759,"tags":31158,"__hash__":31159},"topics/cpp/file-io.md",{"type":8,"value":30984,"toc":31150},[30985,30987,31147],[11,30986,21267],{"id":21272},[25,30988,30990],{"className":29757,"code":30989,"language":29759,"meta":30,"style":30},"#include \u003Cfstream>\n\n// Writing to file\nstd::ofstream outFile(\"output.txt\");\nif (outFile.is_open()) {\n    outFile \u003C\u003C \"Hello, File!\" \u003C\u003C std::endl;\n    outFile.close();\n}\n\n// Reading from file\nstd::ifstream inFile(\"input.txt\");\nstd::string line;\nwhile (std::getline(inFile, line)) {\n    std::cout \u003C\u003C line \u003C\u003C std::endl;\n}\ninFile.close();\n",[20,30991,30992,30999,31003,31007,31025,31038,31054,31063,31067,31071,31075,31094,31101,31117,31134,31138],{"__ignoreMap":30},[34,30993,30994,30996],{"class":36,"line":37},[34,30995,19569],{"class":580},[34,30997,30998],{"class":54}," \u003Cfstream>\n",[34,31000,31001],{"class":36,"line":44},[34,31002,62],{"emptyLinePlaceholder":61},[34,31004,31005],{"class":36,"line":58},[34,31006,21441],{"class":40},[34,31008,31009,31011,31013,31016,31019,31021,31023],{"class":36,"line":65},[34,31010,29833],{"class":47},[34,31012,30110],{"class":181},[34,31014,31015],{"class":47},"ofstream",[34,31017,31018],{"class":47}," outFile",[34,31020,1607],{"class":181},[34,31022,21459],{"class":54},[34,31024,1586],{"class":181},[34,31026,31027,31029,31032,31035],{"class":36,"line":71},[34,31028,10383],{"class":580},[34,31030,31031],{"class":181}," (outFile.",[34,31033,31034],{"class":47},"is_open",[34,31036,31037],{"class":181},"()) {\n",[34,31039,31040,31043,31045,31048,31050,31052],{"class":36,"line":77},[34,31041,31042],{"class":181},"    outFile ",[34,31044,23022],{"class":580},[34,31046,31047],{"class":54}," \"Hello, File!\"",[34,31049,11452],{"class":580},[34,31051,30217],{"class":47},[34,31053,30220],{"class":181},[34,31055,31056,31059,31061],{"class":36,"line":82},[34,31057,31058],{"class":181},"    outFile.",[34,31060,17197],{"class":47},[34,31062,851],{"class":181},[34,31064,31065],{"class":36,"line":88},[34,31066,693],{"class":181},[34,31068,31069],{"class":36,"line":242},[34,31070,62],{"emptyLinePlaceholder":61},[34,31072,31073],{"class":36,"line":250},[34,31074,21356],{"class":40},[34,31076,31077,31079,31081,31084,31087,31089,31092],{"class":36,"line":263},[34,31078,29833],{"class":47},[34,31080,30110],{"class":181},[34,31082,31083],{"class":47},"ifstream",[34,31085,31086],{"class":47}," inFile",[34,31088,1607],{"class":181},[34,31090,31091],{"class":54},"\"input.txt\"",[34,31093,1586],{"class":181},[34,31095,31096,31098],{"class":36,"line":275},[34,31097,29833],{"class":47},[34,31099,31100],{"class":181},"::string line;\n",[34,31102,31103,31105,31107,31109,31111,31114],{"class":36,"line":700},[34,31104,12005],{"class":580},[34,31106,3204],{"class":181},[34,31108,29833],{"class":47},[34,31110,30110],{"class":181},[34,31112,31113],{"class":47},"getline",[34,31115,31116],{"class":181},"(inFile, line)) {\n",[34,31118,31119,31121,31123,31125,31128,31130,31132],{"class":36,"line":706},[34,31120,30075],{"class":47},[34,31122,30202],{"class":181},[34,31124,23022],{"class":580},[34,31126,31127],{"class":181}," line ",[34,31129,23022],{"class":580},[34,31131,30217],{"class":47},[34,31133,30220],{"class":181},[34,31135,31136],{"class":36,"line":715},[34,31137,693],{"class":181},[34,31139,31140,31143,31145],{"class":36,"line":725},[34,31141,31142],{"class":181},"inFile.",[34,31144,17197],{"class":47},[34,31146,851],{"class":181},[388,31148,31149],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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":30,"searchDepth":44,"depth":44,"links":31151},[31152],{"id":21272,"depth":44,"text":21267},"File I/O in C++.",{},"/cpp/file-io",{"title":21267,"description":31153},"cpp/file-io",[29759,30040,18137,18138,30041],"Z-aW1oJKOHwhA5e1zL8xBv5MD6CCOsAhnNk_5yX78q8",{"id":31161,"title":10991,"body":31162,"date":402,"description":31474,"extension":404,"meta":31475,"navigation":61,"order":82,"path":31476,"seo":31477,"stem":31478,"subject":29759,"tags":31479,"__hash__":31480},"topics/cpp/functions.md",{"type":8,"value":31163,"toc":31471},[31164,31166,31469],[11,31165,10991],{"id":10996},[25,31167,31169],{"className":29757,"code":31168,"language":29759,"meta":30,"style":30},"// Basic function\nint add(int a, int b) {\n    return a + b;\n}\n\n// Default parameters\nvoid greet(std::string name = \"World\") {\n    std::cout \u003C\u003C \"Hello, \" \u003C\u003C name \u003C\u003C std::endl;\n}\n\n// Pass by reference\nvoid modify(int& x) {\n    x = x * 2;\n}\n\n// Pass by const reference (efficient for large objects)\nvoid process(const std::vector\u003Cint>& data) {\n    // read-only access\n}\n\n// Lambda functions (C++11)\nauto add = [](int a, int b) { return a + b; };\nauto addCapture = [x](int a) { return a + x; };  // Capture x\nauto addRef = [&x](int a) { x += a; };           // Capture by reference\n",[20,31170,31171,31175,31195,31205,31209,31213,31218,31240,31261,31265,31269,31274,31291,31306,31310,31314,31319,31349,31354,31358,31362,31367,31402,31436],{"__ignoreMap":30},[34,31172,31173],{"class":36,"line":37},[34,31174,26295],{"class":40},[34,31176,31177,31179,31181,31183,31185,31187,31189,31191,31193],{"class":36,"line":44},[34,31178,17772],{"class":580},[34,31180,7854],{"class":47},[34,31182,1607],{"class":181},[34,31184,17772],{"class":580},[34,31186,19385],{"class":675},[34,31188,1798],{"class":181},[34,31190,17772],{"class":580},[34,31192,19392],{"class":675},[34,31194,2416],{"class":181},[34,31196,31197,31199,31201,31203],{"class":36,"line":58},[34,31198,1564],{"class":580},[34,31200,8065],{"class":181},[34,31202,2940],{"class":580},[34,31204,8123],{"class":181},[34,31206,31207],{"class":36,"line":65},[34,31208,693],{"class":181},[34,31210,31211],{"class":36,"line":71},[34,31212,62],{"emptyLinePlaceholder":61},[34,31214,31215],{"class":36,"line":77},[34,31216,31217],{"class":40},"// Default parameters\n",[34,31219,31220,31222,31224,31226,31228,31230,31232,31234,31236,31238],{"class":36,"line":82},[34,31221,818],{"class":580},[34,31223,11047],{"class":47},[34,31225,1607],{"class":181},[34,31227,29833],{"class":47},[34,31229,30110],{"class":181},[34,31231,30113],{"class":47},[34,31233,12323],{"class":675},[34,31235,683],{"class":580},[34,31237,13876],{"class":54},[34,31239,2416],{"class":181},[34,31241,31242,31244,31246,31248,31251,31253,31255,31257,31259],{"class":36,"line":88},[34,31243,30075],{"class":47},[34,31245,30202],{"class":181},[34,31247,23022],{"class":580},[34,31249,31250],{"class":54}," \"Hello, \"",[34,31252,11452],{"class":580},[34,31254,30212],{"class":181},[34,31256,23022],{"class":580},[34,31258,30217],{"class":47},[34,31260,30220],{"class":181},[34,31262,31263],{"class":36,"line":242},[34,31264,693],{"class":181},[34,31266,31267],{"class":36,"line":250},[34,31268,62],{"emptyLinePlaceholder":61},[34,31270,31271],{"class":36,"line":263},[34,31272,31273],{"class":40},"// Pass by reference\n",[34,31275,31276,31278,31281,31283,31286,31289],{"class":36,"line":275},[34,31277,818],{"class":580},[34,31279,31280],{"class":47}," modify",[34,31282,1607],{"class":181},[34,31284,31285],{"class":580},"int&",[34,31287,31288],{"class":675}," x",[34,31290,2416],{"class":181},[34,31292,31293,31296,31298,31300,31302,31304],{"class":36,"line":700},[34,31294,31295],{"class":181},"    x ",[34,31297,1301],{"class":580},[34,31299,23172],{"class":181},[34,31301,4289],{"class":580},[34,31303,4292],{"class":50},[34,31305,593],{"class":181},[34,31307,31308],{"class":36,"line":706},[34,31309,693],{"class":181},[34,31311,31312],{"class":36,"line":715},[34,31313,62],{"emptyLinePlaceholder":61},[34,31315,31316],{"class":36,"line":725},[34,31317,31318],{"class":40},"// Pass by const reference (efficient for large objects)\n",[34,31320,31321,31323,31326,31328,31330,31332,31334,31337,31339,31341,31343,31345,31347],{"class":36,"line":734},[34,31322,818],{"class":580},[34,31324,31325],{"class":47}," process",[34,31327,1607],{"class":181},[34,31329,14676],{"class":580},[34,31331,30217],{"class":47},[34,31333,30110],{"class":181},[34,31335,31336],{"class":47},"vector",[34,31338,815],{"class":181},[34,31340,17772],{"class":580},[34,31342,5691],{"class":181},[34,31344,19502],{"class":580},[34,31346,14780],{"class":675},[34,31348,2416],{"class":181},[34,31350,31351],{"class":36,"line":742},[34,31352,31353],{"class":40},"    // read-only access\n",[34,31355,31356],{"class":36,"line":748},[34,31357,693],{"class":181},[34,31359,31360],{"class":36,"line":754},[34,31361,62],{"emptyLinePlaceholder":61},[34,31363,31364],{"class":36,"line":759},[34,31365,31366],{"class":40},"// Lambda functions (C++11)\n",[34,31368,31369,31372,31375,31377,31380,31382,31384,31386,31388,31390,31393,31395,31397,31399],{"class":36,"line":771},[34,31370,31371],{"class":580},"auto",[34,31373,31374],{"class":181}," add ",[34,31376,1301],{"class":580},[34,31378,31379],{"class":181}," [](",[34,31381,17772],{"class":580},[34,31383,19385],{"class":675},[34,31385,1798],{"class":181},[34,31387,17772],{"class":580},[34,31389,19392],{"class":675},[34,31391,31392],{"class":181},") { ",[34,31394,2917],{"class":580},[34,31396,8065],{"class":181},[34,31398,2940],{"class":580},[34,31400,31401],{"class":181}," b; };\n",[34,31403,31404,31406,31409,31411,31413,31415,31418,31420,31422,31424,31426,31428,31430,31433],{"class":36,"line":794},[34,31405,31371],{"class":580},[34,31407,31408],{"class":181}," addCapture ",[34,31410,1301],{"class":580},[34,31412,8315],{"class":181},[34,31414,23655],{"class":675},[34,31416,31417],{"class":181},"](",[34,31419,17772],{"class":580},[34,31421,19385],{"class":675},[34,31423,31392],{"class":181},[34,31425,2917],{"class":580},[34,31427,8065],{"class":181},[34,31429,2940],{"class":580},[34,31431,31432],{"class":181}," x; };",[34,31434,31435],{"class":40},"  // Capture x\n",[34,31437,31438,31440,31443,31445,31447,31449,31451,31453,31455,31457,31460,31463,31466],{"class":36,"line":824},[34,31439,31371],{"class":580},[34,31441,31442],{"class":181}," addRef ",[34,31444,1301],{"class":580},[34,31446,8315],{"class":181},[34,31448,19502],{"class":580},[34,31450,23655],{"class":675},[34,31452,31417],{"class":181},[34,31454,17772],{"class":580},[34,31456,19385],{"class":675},[34,31458,31459],{"class":181},") { x ",[34,31461,31462],{"class":580},"+=",[34,31464,31465],{"class":181}," a; };",[34,31467,31468],{"class":40},"           // Capture by reference\n",[388,31470,22138],{},{"title":30,"searchDepth":44,"depth":44,"links":31472},[31473],{"id":10996,"depth":44,"text":10991},"Functions in C++.",{},"/cpp/functions",{"title":10991,"description":31474},"cpp/functions",[29759,30040,18137,18138,30041],"fN1ppaeT_lXWWgStshgKj22B9nC6ST2MxvaivAC66TY",{"id":31482,"title":31483,"body":31484,"date":402,"description":31685,"extension":404,"meta":31686,"navigation":61,"order":242,"path":31687,"seo":31688,"stem":31689,"subject":29759,"tags":31690,"__hash__":31691},"topics/cpp/inheritance.md","Inheritance",{"type":8,"value":31485,"toc":31682},[31486,31489,31679],[11,31487,31483],{"id":31488},"inheritance",[25,31490,31492],{"className":29757,"code":31491,"language":29759,"meta":30,"style":30},"class Animal {\npublic:\n    virtual void speak() const {\n        std::cout \u003C\u003C \"Animal sound\" \u003C\u003C std::endl;\n    }\n    virtual ~Animal() = default;  // Virtual destructor\n};\n\nclass Dog : public Animal {\npublic:\n    void speak() const override {\n        std::cout \u003C\u003C \"Woof!\" \u003C\u003C std::endl;\n    }\n};\n\n// Polymorphism\nAnimal* animal = new Dog();\nanimal->speak();  // Output: Woof!\ndelete animal;\n",[20,31493,31494,31503,31507,31524,31541,31545,31563,31567,31571,31588,31592,31607,31624,31628,31632,31636,31641,31659,31672],{"__ignoreMap":30},[34,31495,31496,31498,31501],{"class":36,"line":37},[34,31497,30060],{"class":580},[34,31499,31500],{"class":47}," Animal",[34,31502,661],{"class":181},[34,31504,31505],{"class":36,"line":44},[34,31506,30093],{"class":580},[34,31508,31509,31512,31515,31518,31520,31522],{"class":36,"line":58},[34,31510,31511],{"class":580},"    virtual",[34,31513,31514],{"class":580}," void",[34,31516,31517],{"class":47}," speak",[34,31519,672],{"class":181},[34,31521,14676],{"class":580},[34,31523,661],{"class":181},[34,31525,31526,31528,31530,31532,31535,31537,31539],{"class":36,"line":65},[34,31527,30199],{"class":47},[34,31529,30202],{"class":181},[34,31531,23022],{"class":580},[34,31533,31534],{"class":54}," \"Animal sound\"",[34,31536,11452],{"class":580},[34,31538,30217],{"class":47},[34,31540,30220],{"class":181},[34,31542,31543],{"class":36,"line":71},[34,31544,3229],{"class":181},[34,31546,31547,31549,31552,31554,31556,31558,31560],{"class":36,"line":77},[34,31548,31511],{"class":580},[34,31550,31551],{"class":47}," ~Animal",[34,31553,672],{"class":181},[34,31555,1301],{"class":580},[34,31557,7298],{"class":580},[34,31559,17909],{"class":181},[34,31561,31562],{"class":40},"  // Virtual destructor\n",[34,31564,31565],{"class":36,"line":82},[34,31566,17632],{"class":181},[34,31568,31569],{"class":36,"line":88},[34,31570,62],{"emptyLinePlaceholder":61},[34,31572,31573,31575,31578,31581,31584,31586],{"class":36,"line":242},[34,31574,30060],{"class":580},[34,31576,31577],{"class":47}," Dog",[34,31579,31580],{"class":181}," : ",[34,31582,31583],{"class":580},"public",[34,31585,31500],{"class":47},[34,31587,661],{"class":181},[34,31589,31590],{"class":36,"line":250},[34,31591,30093],{"class":580},[34,31593,31594,31596,31598,31600,31602,31605],{"class":36,"line":263},[34,31595,20812],{"class":580},[34,31597,31517],{"class":47},[34,31599,672],{"class":181},[34,31601,14676],{"class":580},[34,31603,31604],{"class":580}," override",[34,31606,661],{"class":181},[34,31608,31609,31611,31613,31615,31618,31620,31622],{"class":36,"line":275},[34,31610,30199],{"class":47},[34,31612,30202],{"class":181},[34,31614,23022],{"class":580},[34,31616,31617],{"class":54}," \"Woof!\"",[34,31619,11452],{"class":580},[34,31621,30217],{"class":47},[34,31623,30220],{"class":181},[34,31625,31626],{"class":36,"line":700},[34,31627,3229],{"class":181},[34,31629,31630],{"class":36,"line":706},[34,31631,17632],{"class":181},[34,31633,31634],{"class":36,"line":715},[34,31635,62],{"emptyLinePlaceholder":61},[34,31637,31638],{"class":36,"line":725},[34,31639,31640],{"class":40},"// Polymorphism\n",[34,31642,31643,31646,31648,31651,31653,31655,31657],{"class":36,"line":734},[34,31644,31645],{"class":181},"Animal",[34,31647,4289],{"class":580},[34,31649,31650],{"class":181}," animal ",[34,31652,1301],{"class":580},[34,31654,809],{"class":580},[34,31656,31577],{"class":47},[34,31658,851],{"class":181},[34,31660,31661,31664,31667,31669],{"class":36,"line":742},[34,31662,31663],{"class":181},"animal->",[34,31665,31666],{"class":47},"speak",[34,31668,24004],{"class":181},[34,31670,31671],{"class":40},"  // Output: Woof!\n",[34,31673,31674,31676],{"class":36,"line":748},[34,31675,30355],{"class":580},[34,31677,31678],{"class":181}," animal;\n",[388,31680,31681],{},"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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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":30,"searchDepth":44,"depth":44,"links":31683},[31684],{"id":31488,"depth":44,"text":31483},"Inheritance in C++.",{},"/cpp/inheritance",{"title":31483,"description":31685},"cpp/inheritance",[29759,30040,18137,18138,30041],"UxqFzk0yW7Z4f2jIfiw850DqqlgUv3aPPGfkIT0x4KY",{"id":31693,"title":11769,"body":31694,"date":402,"description":31827,"extension":404,"meta":31828,"navigation":61,"order":77,"path":31829,"seo":31830,"stem":31831,"subject":29759,"tags":31832,"__hash__":31833},"topics/cpp/loops.md",{"type":8,"value":31695,"toc":31824},[31696,31698,31822],[11,31697,11769],{"id":11774},[25,31699,31701],{"className":29757,"code":31700,"language":29759,"meta":30,"style":30},"// For loop\nfor (int i = 0; i \u003C 10; i++) {\n    // code\n}\n\n// Range-based for loop (C++11)\nfor (const auto& item : container) {\n    // code\n}\n\n// While loop\nwhile (condition) {\n    // code\n}\n\n// Do-while loop\ndo {\n    // code\n} while (condition);\n",[20,31702,31703,31707,31733,31737,31741,31745,31750,31764,31768,31772,31776,31780,31786,31790,31794,31798,31803,31809,31813],{"__ignoreMap":30},[34,31704,31705],{"class":36,"line":37},[34,31706,19195],{"class":40},[34,31708,31709,31711,31713,31715,31717,31719,31721,31723,31725,31727,31729,31731],{"class":36,"line":44},[34,31710,10246],{"class":580},[34,31712,3204],{"class":181},[34,31714,17772],{"class":580},[34,31716,10300],{"class":181},[34,31718,1301],{"class":580},[34,31720,8070],{"class":50},[34,31722,18263],{"class":181},[34,31724,815],{"class":580},[34,31726,13123],{"class":50},[34,31728,11918],{"class":181},[34,31730,11928],{"class":580},[34,31732,2416],{"class":181},[34,31734,31735],{"class":36,"line":58},[34,31736,30642],{"class":40},[34,31738,31739],{"class":36,"line":65},[34,31740,693],{"class":181},[34,31742,31743],{"class":36,"line":71},[34,31744,62],{"emptyLinePlaceholder":61},[34,31746,31747],{"class":36,"line":77},[34,31748,31749],{"class":40},"// Range-based for loop (C++11)\n",[34,31751,31752,31754,31756,31758,31761],{"class":36,"line":82},[34,31753,10246],{"class":580},[34,31755,3204],{"class":181},[34,31757,14676],{"class":580},[34,31759,31760],{"class":580}," auto&",[34,31762,31763],{"class":181}," item : container) {\n",[34,31765,31766],{"class":36,"line":88},[34,31767,30642],{"class":40},[34,31769,31770],{"class":36,"line":242},[34,31771,693],{"class":181},[34,31773,31774],{"class":36,"line":250},[34,31775,62],{"emptyLinePlaceholder":61},[34,31777,31778],{"class":36,"line":263},[34,31779,19081],{"class":40},[34,31781,31782,31784],{"class":36,"line":275},[34,31783,12005],{"class":580},[34,31785,30637],{"class":181},[34,31787,31788],{"class":36,"line":700},[34,31789,30642],{"class":40},[34,31791,31792],{"class":36,"line":706},[34,31793,693],{"class":181},[34,31795,31796],{"class":36,"line":715},[34,31797,62],{"emptyLinePlaceholder":61},[34,31799,31800],{"class":36,"line":725},[34,31801,31802],{"class":40},"// Do-while loop\n",[34,31804,31805,31807],{"class":36,"line":734},[34,31806,19148],{"class":580},[34,31808,661],{"class":181},[34,31810,31811],{"class":36,"line":742},[34,31812,30642],{"class":40},[34,31814,31815,31817,31819],{"class":36,"line":748},[34,31816,2276],{"class":181},[34,31818,12005],{"class":580},[34,31820,31821],{"class":181}," (condition);\n",[388,31823,23046],{},{"title":30,"searchDepth":44,"depth":44,"links":31825},[31826],{"id":11774,"depth":44,"text":11769},"Loops in C++.",{},"/cpp/loops",{"title":11769,"description":31827},"cpp/loops",[29759,30040,18137,18138,30041],"RcSeLFUo27SMiy1OoxvtZ4NAHj-NF9QJDrKlrI3UVMw",{"id":31835,"title":31836,"body":31837,"date":402,"description":32152,"extension":404,"meta":32153,"navigation":61,"order":715,"path":32154,"seo":32155,"stem":32156,"subject":29759,"tags":32157,"__hash__":32158},"topics/cpp/modern-c-features.md","Modern C++ Features",{"type":8,"value":31838,"toc":32149},[31839,31842,32146],[11,31840,31836],{"id":31841},"modern-c-features",[25,31843,31845],{"className":29757,"code":31844,"language":29759,"meta":30,"style":30},"// Structured bindings (C++17)\nstd::pair\u003Cint, std::string> p = {1, \"one\"};\nauto [num, str] = p;\n\n// Optional (C++17)\n#include \u003Coptional>\nstd::optional\u003Cint> maybeValue = std::nullopt;\nif (maybeValue.has_value()) {\n    int val = maybeValue.value();\n}\n\n// String view (C++17)\n#include \u003Cstring_view>\nvoid process(std::string_view sv) {\n    // Efficient, non-owning string reference\n}\n\n// Initializer lists\nstd::vector\u003Cint> nums = {1, 2, 3, 4, 5};\n\n// nullptr instead of NULL\nint* ptr = nullptr;\n\n// Range-based algorithms (C++20)\n#include \u003Calgorithm>\n#include \u003Cranges>\nauto filtered = nums | std::views::filter([](int n) { return n > 2; });\n",[20,31846,31847,31852,31886,31898,31902,31907,31914,31933,31945,31961,31965,31969,31974,31981,32001,32006,32010,32014,32019,32054,32058,32063,32078,32082,32087,32094,32101],{"__ignoreMap":30},[34,31848,31849],{"class":36,"line":37},[34,31850,31851],{"class":40},"// Structured bindings (C++17)\n",[34,31853,31854,31856,31859,31861,31863,31865,31868,31870,31873,31875,31877,31879,31881,31884],{"class":36,"line":44},[34,31855,29833],{"class":47},[34,31857,31858],{"class":181},"::pair",[34,31860,29839],{"class":580},[34,31862,1798],{"class":181},[34,31864,29833],{"class":47},[34,31866,31867],{"class":181},"::string",[34,31869,5691],{"class":580},[34,31871,31872],{"class":181}," p ",[34,31874,1301],{"class":580},[34,31876,11838],{"class":181},[34,31878,8318],{"class":50},[34,31880,1798],{"class":181},[34,31882,31883],{"class":54},"\"one\"",[34,31885,17632],{"class":181},[34,31887,31888,31890,31893,31895],{"class":36,"line":58},[34,31889,31371],{"class":580},[34,31891,31892],{"class":181}," [num, str] ",[34,31894,1301],{"class":580},[34,31896,31897],{"class":181}," p;\n",[34,31899,31900],{"class":36,"line":65},[34,31901,62],{"emptyLinePlaceholder":61},[34,31903,31904],{"class":36,"line":71},[34,31905,31906],{"class":40},"// Optional (C++17)\n",[34,31908,31909,31911],{"class":36,"line":77},[34,31910,19569],{"class":580},[34,31912,31913],{"class":54}," \u003Coptional>\n",[34,31915,31916,31918,31921,31923,31926,31928,31930],{"class":36,"line":82},[34,31917,29833],{"class":47},[34,31919,31920],{"class":181},"::optional",[34,31922,29891],{"class":580},[34,31924,31925],{"class":181}," maybeValue ",[34,31927,1301],{"class":580},[34,31929,30217],{"class":47},[34,31931,31932],{"class":181},"::nullopt;\n",[34,31934,31935,31937,31940,31943],{"class":36,"line":88},[34,31936,10383],{"class":580},[34,31938,31939],{"class":181}," (maybeValue.",[34,31941,31942],{"class":47},"has_value",[34,31944,31037],{"class":181},[34,31946,31947,31949,31952,31954,31957,31959],{"class":36,"line":242},[34,31948,18339],{"class":580},[34,31950,31951],{"class":181}," val ",[34,31953,1301],{"class":580},[34,31955,31956],{"class":181}," maybeValue.",[34,31958,2871],{"class":47},[34,31960,851],{"class":181},[34,31962,31963],{"class":36,"line":250},[34,31964,693],{"class":181},[34,31966,31967],{"class":36,"line":263},[34,31968,62],{"emptyLinePlaceholder":61},[34,31970,31971],{"class":36,"line":275},[34,31972,31973],{"class":40},"// String view (C++17)\n",[34,31975,31976,31978],{"class":36,"line":700},[34,31977,19569],{"class":580},[34,31979,31980],{"class":54}," \u003Cstring_view>\n",[34,31982,31983,31985,31987,31989,31991,31993,31996,31999],{"class":36,"line":706},[34,31984,818],{"class":580},[34,31986,31325],{"class":47},[34,31988,1607],{"class":181},[34,31990,29833],{"class":47},[34,31992,30110],{"class":181},[34,31994,31995],{"class":47},"string_view",[34,31997,31998],{"class":675}," sv",[34,32000,2416],{"class":181},[34,32002,32003],{"class":36,"line":715},[34,32004,32005],{"class":40},"    // Efficient, non-owning string reference\n",[34,32007,32008],{"class":36,"line":725},[34,32009,693],{"class":181},[34,32011,32012],{"class":36,"line":734},[34,32013,62],{"emptyLinePlaceholder":61},[34,32015,32016],{"class":36,"line":742},[34,32017,32018],{"class":40},"// Initializer lists\n",[34,32020,32021,32023,32025,32027,32030,32032,32034,32036,32038,32040,32042,32044,32046,32048,32050,32052],{"class":36,"line":748},[34,32022,29833],{"class":47},[34,32024,29888],{"class":181},[34,32026,29891],{"class":580},[34,32028,32029],{"class":181}," nums ",[34,32031,1301],{"class":580},[34,32033,11838],{"class":181},[34,32035,8318],{"class":50},[34,32037,1798],{"class":181},[34,32039,8324],{"class":50},[34,32041,1798],{"class":181},[34,32043,3162],{"class":50},[34,32045,1798],{"class":181},[34,32047,18010],{"class":50},[34,32049,1798],{"class":181},[34,32051,2778],{"class":50},[34,32053,17632],{"class":181},[34,32055,32056],{"class":36,"line":754},[34,32057,62],{"emptyLinePlaceholder":61},[34,32059,32060],{"class":36,"line":759},[34,32061,32062],{"class":40},"// nullptr instead of NULL\n",[34,32064,32065,32068,32071,32073,32076],{"class":36,"line":771},[34,32066,32067],{"class":580},"int*",[34,32069,32070],{"class":181}," ptr ",[34,32072,1301],{"class":580},[34,32074,32075],{"class":50}," nullptr",[34,32077,593],{"class":181},[34,32079,32080],{"class":36,"line":794},[34,32081,62],{"emptyLinePlaceholder":61},[34,32083,32084],{"class":36,"line":824},[34,32085,32086],{"class":40},"// Range-based algorithms (C++20)\n",[34,32088,32089,32091],{"class":36,"line":830},[34,32090,19569],{"class":580},[34,32092,32093],{"class":54}," \u003Calgorithm>\n",[34,32095,32096,32098],{"class":36,"line":839},[34,32097,19569],{"class":580},[34,32099,32100],{"class":54}," \u003Cranges>\n",[34,32102,32103,32105,32108,32110,32112,32114,32116,32118,32121,32123,32126,32129,32131,32133,32135,32137,32139,32141,32143],{"class":36,"line":854},[34,32104,31371],{"class":580},[34,32106,32107],{"class":181}," filtered ",[34,32109,1301],{"class":580},[34,32111,32029],{"class":181},[34,32113,2670],{"class":580},[34,32115,30217],{"class":47},[34,32117,30110],{"class":181},[34,32119,32120],{"class":47},"views",[34,32122,30110],{"class":181},[34,32124,32125],{"class":47},"filter",[34,32127,32128],{"class":181},"([](",[34,32130,17772],{"class":580},[34,32132,21959],{"class":675},[34,32134,31392],{"class":181},[34,32136,2917],{"class":580},[34,32138,22052],{"class":181},[34,32140,5691],{"class":580},[34,32142,4292],{"class":50},[34,32144,32145],{"class":181},"; });\n",[388,32147,32148],{},"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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":32150},[32151],{"id":31841,"depth":44,"text":31836},"Modern C++ Features in C++.",{},"/cpp/modern-c-features",{"title":31836,"description":32152},"cpp/modern-c-features",[29759,30040,18137,18138,30041],"wHWgdrwzd5kaWp9djjSPxtSrybCT5gO-q7W-4dYXz8c",{"id":32160,"title":32161,"body":32162,"date":2633,"description":32231,"extension":404,"meta":32232,"navigation":61,"order":37,"path":32233,"seo":32234,"stem":32235,"subject":29759,"tags":32236,"__hash__":32237},"topics/cpp/overview.md","C++",{"type":8,"value":32163,"toc":32229},[32164],[309,32165,32166,32172,32177,32181,32185,32189,32193,32197,32201,32207,32211,32217,32221,32225],{},[312,32167,32168],{},[145,32169,32171],{"href":32170},"/cpp/variables-data-types","Variables & Data Types",[312,32173,32174],{},[145,32175,23101],{"href":32176},"/cpp/strings",[312,32178,32179],{},[145,32180,29749],{"href":30036},[312,32182,32183],{},[145,32184,18818],{"href":30780},[312,32186,32187],{},[145,32188,11769],{"href":31829},[312,32190,32191],{},[145,32192,10991],{"href":31476},[312,32194,32195],{},[145,32196,30045],{"href":30370},[312,32198,32199],{},[145,32200,31483],{"href":31687},[312,32202,32203],{},[145,32204,32206],{"href":32205},"/cpp/smart-pointers-c11","Smart Pointers (C++11)",[312,32208,32209],{},[145,32210,30377],{"href":30610},[312,32212,32213],{},[145,32214,32216],{"href":32215},"/cpp/templates","Templates",[312,32218,32219],{},[145,32220,30787],{"href":30976},[312,32222,32223],{},[145,32224,21267],{"href":31155},[312,32226,32227],{},[145,32228,31836],{"href":32154},{"title":30,"searchDepth":44,"depth":44,"links":32230},[],"Essential C++ syntax, data structures, and modern C++ features for system and application development.",{},"/cpp/overview",{"title":32161,"description":32231},"cpp/overview",[29759,30040,18137,18138,30041],"FJJG3o6W4OhsNsCQdxxplFOo5fZoFxg94SVzMk62Spg",{"id":32239,"title":32206,"body":32240,"date":402,"description":32417,"extension":404,"meta":32418,"navigation":61,"order":250,"path":32205,"seo":32419,"stem":32420,"subject":29759,"tags":32421,"__hash__":32422},"topics/cpp/smart-pointers-c11.md",{"type":8,"value":32241,"toc":32414},[32242,32245,32412],[11,32243,32206],{"id":32244},"smart-pointers-c11",[25,32246,32248],{"className":29757,"code":32247,"language":29759,"meta":30,"style":30},"#include \u003Cmemory>\n\n// unique_ptr - exclusive ownership\nstd::unique_ptr\u003Cint> ptr1 = std::make_unique\u003Cint>(42);\n\n// shared_ptr - shared ownership\nstd::shared_ptr\u003Cint> ptr2 = std::make_shared\u003Cint>(42);\nstd::shared_ptr\u003Cint> ptr3 = ptr2;  // Reference count: 2\n\n// weak_ptr - non-owning reference\nstd::weak_ptr\u003Cint> weak = ptr2;\nif (auto shared = weak.lock()) {\n    // Use shared safely\n}\n",[20,32249,32250,32257,32261,32266,32297,32301,32306,32337,32356,32360,32365,32382,32403,32408],{"__ignoreMap":30},[34,32251,32252,32254],{"class":36,"line":37},[34,32253,19569],{"class":580},[34,32255,32256],{"class":54}," \u003Cmemory>\n",[34,32258,32259],{"class":36,"line":44},[34,32260,62],{"emptyLinePlaceholder":61},[34,32262,32263],{"class":36,"line":58},[34,32264,32265],{"class":40},"// unique_ptr - exclusive ownership\n",[34,32267,32268,32270,32273,32275,32278,32280,32282,32284,32287,32289,32291,32293,32295],{"class":36,"line":65},[34,32269,29833],{"class":47},[34,32271,32272],{"class":181},"::unique_ptr",[34,32274,29891],{"class":580},[34,32276,32277],{"class":181}," ptr1 ",[34,32279,1301],{"class":580},[34,32281,30217],{"class":47},[34,32283,30110],{"class":181},[34,32285,32286],{"class":47},"make_unique",[34,32288,815],{"class":181},[34,32290,17772],{"class":580},[34,32292,1737],{"class":181},[34,32294,8257],{"class":50},[34,32296,1586],{"class":181},[34,32298,32299],{"class":36,"line":71},[34,32300,62],{"emptyLinePlaceholder":61},[34,32302,32303],{"class":36,"line":77},[34,32304,32305],{"class":40},"// shared_ptr - shared ownership\n",[34,32307,32308,32310,32313,32315,32318,32320,32322,32324,32327,32329,32331,32333,32335],{"class":36,"line":82},[34,32309,29833],{"class":47},[34,32311,32312],{"class":181},"::shared_ptr",[34,32314,29891],{"class":580},[34,32316,32317],{"class":181}," ptr2 ",[34,32319,1301],{"class":580},[34,32321,30217],{"class":47},[34,32323,30110],{"class":181},[34,32325,32326],{"class":47},"make_shared",[34,32328,815],{"class":181},[34,32330,17772],{"class":580},[34,32332,1737],{"class":181},[34,32334,8257],{"class":50},[34,32336,1586],{"class":181},[34,32338,32339,32341,32343,32345,32348,32350,32353],{"class":36,"line":88},[34,32340,29833],{"class":47},[34,32342,32312],{"class":181},[34,32344,29891],{"class":580},[34,32346,32347],{"class":181}," ptr3 ",[34,32349,1301],{"class":580},[34,32351,32352],{"class":181}," ptr2;",[34,32354,32355],{"class":40},"  // Reference count: 2\n",[34,32357,32358],{"class":36,"line":242},[34,32359,62],{"emptyLinePlaceholder":61},[34,32361,32362],{"class":36,"line":250},[34,32363,32364],{"class":40},"// weak_ptr - non-owning reference\n",[34,32366,32367,32369,32372,32374,32377,32379],{"class":36,"line":263},[34,32368,29833],{"class":47},[34,32370,32371],{"class":181},"::weak_ptr",[34,32373,29891],{"class":580},[34,32375,32376],{"class":181}," weak ",[34,32378,1301],{"class":580},[34,32380,32381],{"class":181}," ptr2;\n",[34,32383,32384,32386,32388,32390,32393,32395,32398,32401],{"class":36,"line":275},[34,32385,10383],{"class":580},[34,32387,3204],{"class":181},[34,32389,31371],{"class":580},[34,32391,32392],{"class":181}," shared ",[34,32394,1301],{"class":580},[34,32396,32397],{"class":181}," weak.",[34,32399,32400],{"class":47},"lock",[34,32402,31037],{"class":181},[34,32404,32405],{"class":36,"line":700},[34,32406,32407],{"class":40},"    // Use shared safely\n",[34,32409,32410],{"class":36,"line":706},[34,32411,693],{"class":181},[388,32413,22273],{},{"title":30,"searchDepth":44,"depth":44,"links":32415},[32416],{"id":32244,"depth":44,"text":32206},"Smart Pointers (C++11) in C++.",{},{"title":32206,"description":32417},"cpp/smart-pointers-c11",[29759,30040,18137,18138,30041],"amcwwjBHyJOHqciPvT6KYQciMNdh9fM1qjmgR9NifvA",{"id":32424,"title":23101,"body":32425,"date":402,"description":32630,"extension":404,"meta":32631,"navigation":61,"order":58,"path":32176,"seo":32632,"stem":32633,"subject":29759,"tags":32634,"__hash__":32635},"topics/cpp/strings.md",{"type":8,"value":32426,"toc":32627},[32427,32429,32625],[11,32428,23101],{"id":24353},[25,32430,32432],{"className":29757,"code":32431,"language":29759,"meta":30,"style":30},"#include \u003Cstring>\n\n// String creation\nstd::string str = \"Hello\";\nstd::string str2(\"World\");\n\n// String operations\nstr.length();            // Get length\nstr.size();              // Same as length\nstr.empty();             // Check if empty\nstr += \" World\";         // Concatenation\nstr.append(\"!\");         // Append\nstr.substr(0, 5);        // Substring\nstr.find(\"World\");       // Find position\nstr.replace(0, 5, \"Hi\"); // Replace\nstr.c_str();             // Convert to C-string\n",[20,32433,32434,32441,32445,32450,32463,32480,32484,32489,32501,32512,32522,32537,32554,32574,32589,32613],{"__ignoreMap":30},[34,32435,32436,32438],{"class":36,"line":37},[34,32437,19569],{"class":580},[34,32439,32440],{"class":54}," \u003Cstring>\n",[34,32442,32443],{"class":36,"line":44},[34,32444,62],{"emptyLinePlaceholder":61},[34,32446,32447],{"class":36,"line":58},[34,32448,32449],{"class":40},"// String creation\n",[34,32451,32452,32454,32457,32459,32461],{"class":36,"line":65},[34,32453,29833],{"class":47},[34,32455,32456],{"class":181},"::string str ",[34,32458,1301],{"class":580},[34,32460,24377],{"class":54},[34,32462,593],{"class":181},[34,32464,32465,32467,32469,32471,32473,32475,32478],{"class":36,"line":71},[34,32466,29833],{"class":47},[34,32468,30110],{"class":181},[34,32470,30113],{"class":47},[34,32472,24389],{"class":47},[34,32474,1607],{"class":181},[34,32476,32477],{"class":54},"\"World\"",[34,32479,1586],{"class":181},[34,32481,32482],{"class":36,"line":77},[34,32483,62],{"emptyLinePlaceholder":61},[34,32485,32486],{"class":36,"line":82},[34,32487,32488],{"class":40},"// String operations\n",[34,32490,32491,32494,32496,32498],{"class":36,"line":88},[34,32492,32493],{"class":181},"str.",[34,32495,2908],{"class":47},[34,32497,24004],{"class":181},[34,32499,32500],{"class":40},"            // Get length\n",[34,32502,32503,32505,32507,32509],{"class":36,"line":242},[34,32504,32493],{"class":181},[34,32506,29946],{"class":47},[34,32508,24004],{"class":181},[34,32510,32511],{"class":40},"              // Same as length\n",[34,32513,32514,32516,32518,32520],{"class":36,"line":250},[34,32515,32493],{"class":181},[34,32517,29958],{"class":47},[34,32519,24004],{"class":181},[34,32521,29963],{"class":40},[34,32523,32524,32527,32529,32532,32534],{"class":36,"line":263},[34,32525,32526],{"class":181},"str ",[34,32528,31462],{"class":580},[34,32530,32531],{"class":54}," \" World\"",[34,32533,17909],{"class":181},[34,32535,32536],{"class":40},"         // Concatenation\n",[34,32538,32539,32541,32544,32546,32549,32551],{"class":36,"line":275},[34,32540,32493],{"class":181},[34,32542,32543],{"class":47},"append",[34,32545,1607],{"class":181},[34,32547,32548],{"class":54},"\"!\"",[34,32550,19682],{"class":181},[34,32552,32553],{"class":40},"         // Append\n",[34,32555,32556,32558,32561,32563,32565,32567,32569,32571],{"class":36,"line":700},[34,32557,32493],{"class":181},[34,32559,32560],{"class":47},"substr",[34,32562,1607],{"class":181},[34,32564,2773],{"class":50},[34,32566,1798],{"class":181},[34,32568,2778],{"class":50},[34,32570,19682],{"class":181},[34,32572,32573],{"class":40},"        // Substring\n",[34,32575,32576,32578,32580,32582,32584,32586],{"class":36,"line":706},[34,32577,32493],{"class":181},[34,32579,12963],{"class":47},[34,32581,1607],{"class":181},[34,32583,32477],{"class":54},[34,32585,19682],{"class":181},[34,32587,32588],{"class":40},"       // Find position\n",[34,32590,32591,32593,32595,32597,32599,32601,32603,32605,32608,32610],{"class":36,"line":715},[34,32592,32493],{"class":181},[34,32594,13943],{"class":47},[34,32596,1607],{"class":181},[34,32598,2773],{"class":50},[34,32600,1798],{"class":181},[34,32602,2778],{"class":50},[34,32604,1798],{"class":181},[34,32606,32607],{"class":54},"\"Hi\"",[34,32609,19682],{"class":181},[34,32611,32612],{"class":40}," // Replace\n",[34,32614,32615,32617,32620,32622],{"class":36,"line":725},[34,32616,32493],{"class":181},[34,32618,32619],{"class":47},"c_str",[34,32621,24004],{"class":181},[34,32623,32624],{"class":40},"             // Convert to C-string\n",[388,32626,22273],{},{"title":30,"searchDepth":44,"depth":44,"links":32628},[32629],{"id":24353,"depth":44,"text":23101},"Strings in C++.",{},{"title":23101,"description":32630},"cpp/strings",[29759,30040,18137,18138,30041],"QeyPozcKZFprGZoxyiqmAFJqCFy_2QhF2ak1IXLuYgs",{"id":32637,"title":32216,"body":32638,"date":402,"description":32856,"extension":404,"meta":32857,"navigation":61,"order":275,"path":32215,"seo":32858,"stem":32859,"subject":29759,"tags":32860,"__hash__":32861},"topics/cpp/templates.md",{"type":8,"value":32639,"toc":32853},[32640,32643,32850],[11,32641,32216],{"id":32642},"templates",[25,32644,32646],{"className":29757,"code":32645,"language":29759,"meta":30,"style":30},"// Function template\ntemplate\u003Ctypename T>\nT maximum(T a, T b) {\n    return (a > b) ? a : b;\n}\n\n// Class template\ntemplate\u003Ctypename T>\nclass Container {\nprivate:\n    T value;\npublic:\n    Container(T v) : value(v) {}\n    T getValue() const { return value; }\n};\n\n// Usage\nint maxInt = maximum(5, 10);\nContainer\u003Cstd::string> strContainer(\"Hello\");\n",[20,32647,32648,32653,32667,32689,32707,32711,32715,32720,32732,32741,32745,32750,32754,32773,32792,32796,32800,32804,32825],{"__ignoreMap":30},[34,32649,32650],{"class":36,"line":37},[34,32651,32652],{"class":40},"// Function template\n",[34,32654,32655,32657,32659,32662,32665],{"class":36,"line":44},[34,32656,8517],{"class":580},[34,32658,815],{"class":181},[34,32660,32661],{"class":580},"typename",[34,32663,32664],{"class":47}," T",[34,32666,1248],{"class":181},[34,32668,32669,32672,32675,32677,32679,32681,32683,32685,32687],{"class":36,"line":58},[34,32670,32671],{"class":47},"T",[34,32673,32674],{"class":47}," maximum",[34,32676,1607],{"class":181},[34,32678,32671],{"class":47},[34,32680,19385],{"class":675},[34,32682,1798],{"class":181},[34,32684,32671],{"class":47},[34,32686,19392],{"class":675},[34,32688,2416],{"class":181},[34,32690,32691,32693,32695,32697,32699,32701,32703,32705],{"class":36,"line":65},[34,32692,1564],{"class":580},[34,32694,18946],{"class":181},[34,32696,5691],{"class":580},[34,32698,18951],{"class":181},[34,32700,18954],{"class":580},[34,32702,8065],{"class":181},[34,32704,165],{"class":580},[34,32706,8123],{"class":181},[34,32708,32709],{"class":36,"line":71},[34,32710,693],{"class":181},[34,32712,32713],{"class":36,"line":77},[34,32714,62],{"emptyLinePlaceholder":61},[34,32716,32717],{"class":36,"line":82},[34,32718,32719],{"class":40},"// Class template\n",[34,32721,32722,32724,32726,32728,32730],{"class":36,"line":88},[34,32723,8517],{"class":580},[34,32725,815],{"class":181},[34,32727,32661],{"class":580},[34,32729,32664],{"class":47},[34,32731,1248],{"class":181},[34,32733,32734,32736,32739],{"class":36,"line":242},[34,32735,30060],{"class":580},[34,32737,32738],{"class":47}," Container",[34,32740,661],{"class":181},[34,32742,32743],{"class":36,"line":250},[34,32744,30070],{"class":580},[34,32746,32747],{"class":36,"line":263},[34,32748,32749],{"class":181},"    T value;\n",[34,32751,32752],{"class":36,"line":275},[34,32753,30093],{"class":580},[34,32755,32756,32759,32761,32763,32766,32768,32770],{"class":36,"line":700},[34,32757,32758],{"class":47},"    Container",[34,32760,1607],{"class":181},[34,32762,32671],{"class":47},[34,32764,32765],{"class":675}," v",[34,32767,30124],{"class":181},[34,32769,2871],{"class":47},[34,32771,32772],{"class":181},"(v) {}\n",[34,32774,32775,32778,32781,32783,32785,32787,32789],{"class":36,"line":706},[34,32776,32777],{"class":47},"    T",[34,32779,32780],{"class":47}," getValue",[34,32782,672],{"class":181},[34,32784,14676],{"class":580},[34,32786,30251],{"class":181},[34,32788,2917],{"class":580},[34,32790,32791],{"class":181}," value; }\n",[34,32793,32794],{"class":36,"line":715},[34,32795,17632],{"class":181},[34,32797,32798],{"class":36,"line":725},[34,32799,62],{"emptyLinePlaceholder":61},[34,32801,32802],{"class":36,"line":734},[34,32803,1113],{"class":40},[34,32805,32806,32808,32811,32813,32815,32817,32819,32821,32823],{"class":36,"line":742},[34,32807,17772],{"class":580},[34,32809,32810],{"class":181}," maxInt ",[34,32812,1301],{"class":580},[34,32814,32674],{"class":47},[34,32816,1607],{"class":181},[34,32818,2778],{"class":50},[34,32820,1798],{"class":181},[34,32822,11923],{"class":50},[34,32824,1586],{"class":181},[34,32826,32827,32830,32832,32834,32836,32838,32841,32844,32846,32848],{"class":36,"line":748},[34,32828,32829],{"class":47},"Container",[34,32831,815],{"class":181},[34,32833,29833],{"class":47},[34,32835,30110],{"class":181},[34,32837,30113],{"class":47},[34,32839,32840],{"class":181},"> ",[34,32842,32843],{"class":47},"strContainer",[34,32845,1607],{"class":181},[34,32847,15564],{"class":54},[34,32849,1586],{"class":181},[388,32851,32852],{},"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 .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}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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);}",{"title":30,"searchDepth":44,"depth":44,"links":32854},[32855],{"id":32642,"depth":44,"text":32216},"Templates in C++.",{},{"title":32216,"description":32856},"cpp/templates",[29759,30040,18137,18138,30041],"E4yaEPRKawTWlOGZFKYBL0GX6BPmZ9-N_VslPnOPJMY",{"id":32863,"title":32171,"body":32864,"date":402,"description":33100,"extension":404,"meta":33101,"navigation":61,"order":44,"path":32170,"seo":33102,"stem":33103,"subject":29759,"tags":33104,"__hash__":33105},"topics/cpp/variables-data-types.md",{"type":8,"value":32865,"toc":33097},[32866,32869,33095],[11,32867,32171],{"id":32868},"variables-data-types",[25,32870,32872],{"className":29757,"code":32871,"language":29759,"meta":30,"style":30},"// Basic types\nint number = 42;\ndouble decimal = 3.14;\nfloat pi = 3.14f;\nchar letter = 'A';\nbool flag = true;\n\n// Modern C++ auto keyword\nauto value = 100;        // int\nauto text = \"hello\";     // const char*\n\n// Constants\nconst int MAX_SIZE = 100;\nconstexpr int COMPILE_TIME = 50;\n\n// References and pointers\nint x = 10;\nint& ref = x;            // Reference\nint* ptr = &x;           // Pointer\nint* nullPtr = nullptr;  // Null pointer (C++11)\n",[20,32873,32874,32879,32892,32906,32921,32933,32948,32952,32957,32972,32988,32992,32997,33012,33028,33032,33037,33049,33064,33079],{"__ignoreMap":30},[34,32875,32876],{"class":36,"line":37},[34,32877,32878],{"class":40},"// Basic types\n",[34,32880,32881,32883,32886,32888,32890],{"class":36,"line":44},[34,32882,17772],{"class":580},[34,32884,32885],{"class":181}," number ",[34,32887,1301],{"class":580},[34,32889,19987],{"class":50},[34,32891,593],{"class":181},[34,32893,32894,32896,32899,32901,32904],{"class":36,"line":58},[34,32895,25097],{"class":580},[34,32897,32898],{"class":181}," decimal ",[34,32900,1301],{"class":580},[34,32902,32903],{"class":50}," 3.14",[34,32905,593],{"class":181},[34,32907,32908,32910,32912,32914,32916,32919],{"class":36,"line":65},[34,32909,25079],{"class":580},[34,32911,25100],{"class":181},[34,32913,1301],{"class":580},[34,32915,32903],{"class":50},[34,32917,32918],{"class":580},"f",[34,32920,593],{"class":181},[34,32922,32923,32925,32927,32929,32931],{"class":36,"line":71},[34,32924,18236],{"class":580},[34,32926,25116],{"class":181},[34,32928,1301],{"class":580},[34,32930,18989],{"class":54},[34,32932,593],{"class":181},[34,32934,32935,32938,32941,32943,32946],{"class":36,"line":77},[34,32936,32937],{"class":580},"bool",[34,32939,32940],{"class":181}," flag ",[34,32942,1301],{"class":580},[34,32944,32945],{"class":50}," true",[34,32947,593],{"class":181},[34,32949,32950],{"class":36,"line":82},[34,32951,62],{"emptyLinePlaceholder":61},[34,32953,32954],{"class":36,"line":88},[34,32955,32956],{"class":40},"// Modern C++ auto keyword\n",[34,32958,32959,32961,32963,32965,32967,32969],{"class":36,"line":242},[34,32960,31371],{"class":580},[34,32962,8271],{"class":181},[34,32964,1301],{"class":580},[34,32966,25168],{"class":50},[34,32968,17909],{"class":181},[34,32970,32971],{"class":40},"        // int\n",[34,32973,32974,32976,32979,32981,32983,32985],{"class":36,"line":250},[34,32975,31371],{"class":580},[34,32977,32978],{"class":181}," text ",[34,32980,1301],{"class":580},[34,32982,13866],{"class":54},[34,32984,17909],{"class":181},[34,32986,32987],{"class":40},"     // const char*\n",[34,32989,32990],{"class":36,"line":263},[34,32991,62],{"emptyLinePlaceholder":61},[34,32993,32994],{"class":36,"line":275},[34,32995,32996],{"class":40},"// Constants\n",[34,32998,32999,33001,33003,33006,33008,33010],{"class":36,"line":700},[34,33000,14676],{"class":580},[34,33002,25160],{"class":580},[34,33004,33005],{"class":181}," MAX_SIZE ",[34,33007,1301],{"class":580},[34,33009,25168],{"class":50},[34,33011,593],{"class":181},[34,33013,33014,33017,33019,33022,33024,33026],{"class":36,"line":706},[34,33015,33016],{"class":580},"constexpr",[34,33018,25160],{"class":580},[34,33020,33021],{"class":181}," COMPILE_TIME ",[34,33023,1301],{"class":580},[34,33025,2889],{"class":50},[34,33027,593],{"class":181},[34,33029,33030],{"class":36,"line":715},[34,33031,62],{"emptyLinePlaceholder":61},[34,33033,33034],{"class":36,"line":725},[34,33035,33036],{"class":40},"// References and pointers\n",[34,33038,33039,33041,33043,33045,33047],{"class":36,"line":734},[34,33040,17772],{"class":580},[34,33042,23172],{"class":181},[34,33044,1301],{"class":580},[34,33046,13123],{"class":50},[34,33048,593],{"class":181},[34,33050,33051,33053,33056,33058,33061],{"class":36,"line":742},[34,33052,31285],{"class":580},[34,33054,33055],{"class":181}," ref ",[34,33057,1301],{"class":580},[34,33059,33060],{"class":181}," x;",[34,33062,33063],{"class":40},"            // Reference\n",[34,33065,33066,33068,33070,33072,33074,33076],{"class":36,"line":748},[34,33067,32067],{"class":580},[34,33069,32070],{"class":181},[34,33071,1301],{"class":580},[34,33073,11373],{"class":580},[34,33075,23194],{"class":181},[34,33077,33078],{"class":40},"           // Pointer\n",[34,33080,33081,33083,33086,33088,33090,33092],{"class":36,"line":754},[34,33082,32067],{"class":580},[34,33084,33085],{"class":181}," nullPtr ",[34,33087,1301],{"class":580},[34,33089,32075],{"class":50},[34,33091,17909],{"class":181},[34,33093,33094],{"class":40},"  // Null pointer (C++11)\n",[388,33096,25257],{},{"title":30,"searchDepth":44,"depth":44,"links":33098},[33099],{"id":32868,"depth":44,"text":32171},"Variables & Data Types in C++.",{},{"title":32171,"description":33100},"cpp/variables-data-types",[29759,30040,18137,18138,30041],"XEuVFzDICq3AiH4GZRG1ZRPjFA4Df6fUnu4a9Sd4EPw",{"id":33107,"title":33108,"body":33109,"date":402,"description":33291,"extension":404,"meta":33292,"navigation":61,"order":37,"path":33293,"seo":33294,"stem":33295,"subject":33154,"tags":33296,"__hash__":33301},"topics/crystal/overview.md","Crystal Language Basics",{"type":8,"value":33110,"toc":33284},[33111,33115,33118,33157,33161,33164,33174,33178,33181,33196,33200,33203,33232,33236,33242,33279,33282],[11,33112,33114],{"id":33113},"installing-crystal","Installing Crystal",[16,33116,33117],{},"To install Crystal, follow these steps:",[25,33119,33121],{"className":27,"code":33120,"language":29,"meta":30,"style":30},"# On Ubuntu\ncurl -fsSL https://crystal-lang.org/install.sh | bash\n\n# Verify installation\ncrystal --version\n",[20,33122,33123,33128,33141,33145,33150],{"__ignoreMap":30},[34,33124,33125],{"class":36,"line":37},[34,33126,33127],{"class":40},"# On Ubuntu\n",[34,33129,33130,33132,33134,33137,33139],{"class":36,"line":44},[34,33131,8648],{"class":47},[34,33133,15806],{"class":50},[34,33135,33136],{"class":54}," https://crystal-lang.org/install.sh",[34,33138,7197],{"class":580},[34,33140,9346],{"class":47},[34,33142,33143],{"class":36,"line":58},[34,33144,62],{"emptyLinePlaceholder":61},[34,33146,33147],{"class":36,"line":65},[34,33148,33149],{"class":40},"# Verify installation\n",[34,33151,33152,33155],{"class":36,"line":71},[34,33153,33154],{"class":47},"crystal",[34,33156,5013],{"class":50},[11,33158,33160],{"id":33159},"basic-syntax","Basic Syntax",[16,33162,33163],{},"Crystal features an expressive Ruby-like syntax with static typing.",[25,33165,33168],{"className":33166,"code":33167,"language":33154,"meta":30,"style":30},"language-crystal shiki shiki-themes github-light github-dark","puts \"Hello, Crystal!\"\n",[20,33169,33170],{"__ignoreMap":30},[34,33171,33172],{"class":36,"line":37},[34,33173,33167],{},[11,33175,33177],{"id":33176},"declaring-variables","Declaring Variables",[16,33179,33180],{},"Variables in Crystal can have explicitly defined types.",[25,33182,33184],{"className":33166,"code":33183,"language":33154,"meta":30,"style":30},"name = \"Crystal\" # Type inferred\nage : Int32 = 23  # Explicit type\n",[20,33185,33186,33191],{"__ignoreMap":30},[34,33187,33188],{"class":36,"line":37},[34,33189,33190],{},"name = \"Crystal\" # Type inferred\n",[34,33192,33193],{"class":36,"line":44},[34,33194,33195],{},"age : Int32 = 23  # Explicit type\n",[11,33197,33199],{"id":33198},"defining-methods","Defining Methods",[16,33201,33202],{},"Crystal methods are straightforward.",[25,33204,33206],{"className":33166,"code":33205,"language":33154,"meta":30,"style":30},"def add(a : Int32, b : Int32) : Int32\n  a + b\nend\n\nputs add(10, 20)\n",[20,33207,33208,33213,33218,33223,33227],{"__ignoreMap":30},[34,33209,33210],{"class":36,"line":37},[34,33211,33212],{},"def add(a : Int32, b : Int32) : Int32\n",[34,33214,33215],{"class":36,"line":44},[34,33216,33217],{},"  a + b\n",[34,33219,33220],{"class":36,"line":58},[34,33221,33222],{},"end\n",[34,33224,33225],{"class":36,"line":65},[34,33226,62],{"emptyLinePlaceholder":61},[34,33228,33229],{"class":36,"line":71},[34,33230,33231],{},"puts add(10, 20)\n",[11,33233,33235],{"id":33234},"concurrency-with-fibers","Concurrency with Fibers",[16,33237,33238,33239,33241],{},"Crystal's ",[20,33240,16757],{}," keyword is used to create fibers.",[25,33243,33245],{"className":33166,"code":33244,"language":33154,"meta":30,"style":30},"channel = Channel(Int32).new\n\nspawn do\n  channel.send(42)\nend\n\nputs channel.receive\n",[20,33246,33247,33252,33256,33261,33266,33270,33274],{"__ignoreMap":30},[34,33248,33249],{"class":36,"line":37},[34,33250,33251],{},"channel = Channel(Int32).new\n",[34,33253,33254],{"class":36,"line":44},[34,33255,62],{"emptyLinePlaceholder":61},[34,33257,33258],{"class":36,"line":58},[34,33259,33260],{},"spawn do\n",[34,33262,33263],{"class":36,"line":65},[34,33264,33265],{},"  channel.send(42)\n",[34,33267,33268],{"class":36,"line":71},[34,33269,33222],{},[34,33271,33272],{"class":36,"line":77},[34,33273,62],{"emptyLinePlaceholder":61},[34,33275,33276],{"class":36,"line":82},[34,33277,33278],{},"puts channel.receive\n",[16,33280,33281],{},"--- Example truncated ---",[388,33283,15873],{},{"title":30,"searchDepth":44,"depth":44,"links":33285},[33286,33287,33288,33289,33290],{"id":33113,"depth":44,"text":33114},{"id":33159,"depth":44,"text":33160},{"id":33176,"depth":44,"text":33177},{"id":33198,"depth":44,"text":33199},{"id":33234,"depth":44,"text":33235},"Learn how to get started with Crystal, its syntax, types, and shards.",{},"/crystal/overview",{"title":33108,"description":33291},"crystal/overview",[33154,33297,33298,33299,33300],"syntax","types","concurrency","shards","Gg97EpjgdYpVw1LLuCuxZnUKcIkWQms9KrrFWWYsoyY",{"id":33303,"title":33304,"body":33305,"date":402,"description":33780,"extension":404,"meta":33781,"navigation":61,"order":65,"path":33782,"seo":33783,"stem":33784,"subject":33314,"tags":33785,"__hash__":33788},"topics/csharp/arrays-collections.md","Arrays & Collections",{"type":8,"value":33306,"toc":33777},[33307,33310,33774],[11,33308,33304],{"id":33309},"arrays-collections",[25,33311,33315],{"className":33312,"code":33313,"language":33314,"meta":30,"style":30},"language-csharp shiki shiki-themes github-light github-dark","// Arrays\nint[] numbers = { 1, 2, 3, 4, 5 };\nint[] zeros = new int[10];\nstring[,] matrix = new string[3, 3];\n\n// List\nList\u003Cstring> names = new List\u003Cstring> { \"Alice\", \"Bob\" };\nnames.Add(\"Charlie\");\nnames.Remove(\"Bob\");\nnames.Contains(\"Alice\");  // true\n\n// Dictionary\nDictionary\u003Cstring, int> ages = new Dictionary\u003Cstring, int>\n{\n    [\"Alice\"] = 30,\n    [\"Bob\"] = 25\n};\nages.TryGetValue(\"Alice\", out int age);\n\n// HashSet\nHashSet\u003Cint> uniqueNumbers = new HashSet\u003Cint> { 1, 2, 3 };\n\n// Queue and Stack\nQueue\u003Cstring> queue = new Queue\u003Cstring>();\nqueue.Enqueue(\"first\");\nstring item = queue.Dequeue();\n\nStack\u003Cstring> stack = new Stack\u003Cstring>();\nstack.Push(\"first\");\nstring top = stack.Pop();\n","csharp",[20,33316,33317,33322,33356,33377,33403,33407,33412,33448,33463,33476,33493,33497,33502,33537,33541,33556,33569,33573,33596,33600,33605,33644,33648,33653,33680,33695,33712,33716,33743,33757],{"__ignoreMap":30},[34,33318,33319],{"class":36,"line":37},[34,33320,33321],{"class":40},"// Arrays\n",[34,33323,33324,33326,33328,33331,33333,33335,33337,33339,33341,33343,33345,33347,33349,33351,33353],{"class":36,"line":44},[34,33325,17772],{"class":580},[34,33327,4063],{"class":181},[34,33329,33330],{"class":47},"numbers",[34,33332,683],{"class":580},[34,33334,30251],{"class":181},[34,33336,8318],{"class":50},[34,33338,1798],{"class":181},[34,33340,8324],{"class":50},[34,33342,1798],{"class":181},[34,33344,3162],{"class":50},[34,33346,1798],{"class":181},[34,33348,18010],{"class":50},[34,33350,1798],{"class":181},[34,33352,2778],{"class":50},[34,33354,33355],{"class":181}," };\n",[34,33357,33358,33360,33362,33365,33367,33369,33371,33373,33375],{"class":36,"line":58},[34,33359,17772],{"class":580},[34,33361,4063],{"class":181},[34,33363,33364],{"class":47},"zeros",[34,33366,683],{"class":580},[34,33368,809],{"class":580},[34,33370,25160],{"class":580},[34,33372,10260],{"class":181},[34,33374,11923],{"class":50},[34,33376,3415],{"class":181},[34,33378,33379,33381,33384,33387,33389,33391,33393,33395,33397,33399,33401],{"class":36,"line":65},[34,33380,30113],{"class":580},[34,33382,33383],{"class":181},"[,] ",[34,33385,33386],{"class":47},"matrix",[34,33388,683],{"class":580},[34,33390,809],{"class":580},[34,33392,680],{"class":580},[34,33394,10260],{"class":181},[34,33396,3162],{"class":50},[34,33398,1798],{"class":181},[34,33400,3162],{"class":50},[34,33402,3415],{"class":181},[34,33404,33405],{"class":36,"line":71},[34,33406,62],{"emptyLinePlaceholder":61},[34,33408,33409],{"class":36,"line":77},[34,33410,33411],{"class":40},"// List\n",[34,33413,33414,33417,33419,33421,33423,33426,33428,33430,33433,33435,33437,33440,33442,33444,33446],{"class":36,"line":82},[34,33415,33416],{"class":47},"List",[34,33418,815],{"class":181},[34,33420,30113],{"class":580},[34,33422,32840],{"class":181},[34,33424,33425],{"class":47},"names",[34,33427,683],{"class":580},[34,33429,809],{"class":580},[34,33431,33432],{"class":47}," List",[34,33434,815],{"class":181},[34,33436,30113],{"class":580},[34,33438,33439],{"class":181},"> { ",[34,33441,21650],{"class":54},[34,33443,1798],{"class":181},[34,33445,30344],{"class":54},[34,33447,33355],{"class":181},[34,33449,33450,33453,33456,33458,33461],{"class":36,"line":88},[34,33451,33452],{"class":181},"names.",[34,33454,33455],{"class":47},"Add",[34,33457,1607],{"class":181},[34,33459,33460],{"class":54},"\"Charlie\"",[34,33462,1586],{"class":181},[34,33464,33465,33467,33470,33472,33474],{"class":36,"line":242},[34,33466,33452],{"class":181},[34,33468,33469],{"class":47},"Remove",[34,33471,1607],{"class":181},[34,33473,30344],{"class":54},[34,33475,1586],{"class":181},[34,33477,33478,33480,33483,33485,33487,33490],{"class":36,"line":250},[34,33479,33452],{"class":181},[34,33481,33482],{"class":47},"Contains",[34,33484,1607],{"class":181},[34,33486,21650],{"class":54},[34,33488,33489],{"class":181},");  ",[34,33491,33492],{"class":40},"// true\n",[34,33494,33495],{"class":36,"line":263},[34,33496,62],{"emptyLinePlaceholder":61},[34,33498,33499],{"class":36,"line":275},[34,33500,33501],{"class":40},"// Dictionary\n",[34,33503,33504,33507,33509,33511,33513,33515,33517,33520,33522,33524,33527,33529,33531,33533,33535],{"class":36,"line":700},[34,33505,33506],{"class":47},"Dictionary",[34,33508,815],{"class":181},[34,33510,30113],{"class":580},[34,33512,1798],{"class":181},[34,33514,17772],{"class":580},[34,33516,32840],{"class":181},[34,33518,33519],{"class":47},"ages",[34,33521,683],{"class":580},[34,33523,809],{"class":580},[34,33525,33526],{"class":47}," Dictionary",[34,33528,815],{"class":181},[34,33530,30113],{"class":580},[34,33532,1798],{"class":181},[34,33534,17772],{"class":580},[34,33536,1248],{"class":181},[34,33538,33539],{"class":36,"line":706},[34,33540,25296],{"class":181},[34,33542,33543,33546,33548,33550,33552,33554],{"class":36,"line":715},[34,33544,33545],{"class":181},"    [",[34,33547,21650],{"class":54},[34,33549,17799],{"class":181},[34,33551,1301],{"class":580},[34,33553,30458],{"class":50},[34,33555,624],{"class":181},[34,33557,33558,33560,33562,33564,33566],{"class":36,"line":725},[34,33559,33545],{"class":181},[34,33561,30344],{"class":54},[34,33563,17799],{"class":181},[34,33565,1301],{"class":580},[34,33567,33568],{"class":50}," 25\n",[34,33570,33571],{"class":36,"line":734},[34,33572,17632],{"class":181},[34,33574,33575,33577,33580,33582,33584,33586,33589,33591,33594],{"class":36,"line":742},[34,33576,30465],{"class":181},[34,33578,33579],{"class":47},"TryGetValue",[34,33581,1607],{"class":181},[34,33583,21650],{"class":54},[34,33585,1798],{"class":181},[34,33587,33588],{"class":580},"out",[34,33590,25160],{"class":580},[34,33592,33593],{"class":47}," age",[34,33595,1586],{"class":181},[34,33597,33598],{"class":36,"line":748},[34,33599,62],{"emptyLinePlaceholder":61},[34,33601,33602],{"class":36,"line":754},[34,33603,33604],{"class":40},"// HashSet\n",[34,33606,33607,33610,33612,33614,33616,33619,33621,33623,33626,33628,33630,33632,33634,33636,33638,33640,33642],{"class":36,"line":759},[34,33608,33609],{"class":47},"HashSet",[34,33611,815],{"class":181},[34,33613,17772],{"class":580},[34,33615,32840],{"class":181},[34,33617,33618],{"class":47},"uniqueNumbers",[34,33620,683],{"class":580},[34,33622,809],{"class":580},[34,33624,33625],{"class":47}," HashSet",[34,33627,815],{"class":181},[34,33629,17772],{"class":580},[34,33631,33439],{"class":181},[34,33633,8318],{"class":50},[34,33635,1798],{"class":181},[34,33637,8324],{"class":50},[34,33639,1798],{"class":181},[34,33641,3162],{"class":50},[34,33643,33355],{"class":181},[34,33645,33646],{"class":36,"line":771},[34,33647,62],{"emptyLinePlaceholder":61},[34,33649,33650],{"class":36,"line":794},[34,33651,33652],{"class":40},"// Queue and Stack\n",[34,33654,33655,33658,33660,33662,33664,33667,33669,33671,33674,33676,33678],{"class":36,"line":824},[34,33656,33657],{"class":47},"Queue",[34,33659,815],{"class":181},[34,33661,30113],{"class":580},[34,33663,32840],{"class":181},[34,33665,33666],{"class":47},"queue",[34,33668,683],{"class":580},[34,33670,809],{"class":580},[34,33672,33673],{"class":47}," Queue",[34,33675,815],{"class":181},[34,33677,30113],{"class":580},[34,33679,821],{"class":181},[34,33681,33682,33685,33688,33690,33693],{"class":36,"line":830},[34,33683,33684],{"class":181},"queue.",[34,33686,33687],{"class":47},"Enqueue",[34,33689,1607],{"class":181},[34,33691,33692],{"class":54},"\"first\"",[34,33694,1586],{"class":181},[34,33696,33697,33699,33702,33704,33707,33710],{"class":36,"line":839},[34,33698,30113],{"class":580},[34,33700,33701],{"class":47}," item",[34,33703,683],{"class":580},[34,33705,33706],{"class":181}," queue.",[34,33708,33709],{"class":47},"Dequeue",[34,33711,851],{"class":181},[34,33713,33714],{"class":36,"line":854},[34,33715,62],{"emptyLinePlaceholder":61},[34,33717,33718,33721,33723,33725,33727,33730,33732,33734,33737,33739,33741],{"class":36,"line":860},[34,33719,33720],{"class":47},"Stack",[34,33722,815],{"class":181},[34,33724,30113],{"class":580},[34,33726,32840],{"class":181},[34,33728,33729],{"class":47},"stack",[34,33731,683],{"class":580},[34,33733,809],{"class":580},[34,33735,33736],{"class":47}," Stack",[34,33738,815],{"class":181},[34,33740,30113],{"class":580},[34,33742,821],{"class":181},[34,33744,33745,33748,33751,33753,33755],{"class":36,"line":865},[34,33746,33747],{"class":181},"stack.",[34,33749,33750],{"class":47},"Push",[34,33752,1607],{"class":181},[34,33754,33692],{"class":54},[34,33756,1586],{"class":181},[34,33758,33759,33761,33764,33766,33769,33772],{"class":36,"line":870},[34,33760,30113],{"class":580},[34,33762,33763],{"class":47}," top",[34,33765,683],{"class":580},[34,33767,33768],{"class":181}," stack.",[34,33770,33771],{"class":47},"Pop",[34,33773,851],{"class":181},[388,33775,33776],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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);}",{"title":30,"searchDepth":44,"depth":44,"links":33778},[33779],{"id":33309,"depth":44,"text":33304},"Arrays & Collections in C#.",{},"/csharp/arrays-collections",{"title":33304,"description":33780},"csharp/arrays-collections",[33314,33786,30041,33787],"dotnet","microsoft","HYE88bRfgc25w83Rwg_SoWVyFO_2RHUcCPn6fvupeMM",{"id":33790,"title":33791,"body":33792,"date":402,"description":34093,"extension":404,"meta":34094,"navigation":61,"order":275,"path":34095,"seo":34096,"stem":34097,"subject":33314,"tags":34098,"__hash__":34099},"topics/csharp/asyncawait.md","Async/Await",{"type":8,"value":33793,"toc":34090},[33794,33797,34087],[11,33795,33791],{"id":33796},"asyncawait",[25,33798,33800],{"className":33312,"code":33799,"language":33314,"meta":30,"style":30},"// Async method\npublic async Task\u003Cstring> FetchDataAsync(string url)\n{\n    using var client = new HttpClient();\n    return await client.GetStringAsync(url);\n}\n\n// Async with multiple tasks\npublic async Task ProcessAllAsync()\n{\n    var task1 = FetchDataAsync(\"url1\");\n    var task2 = FetchDataAsync(\"url2\");\n    \n    // Wait for all\n    await Task.WhenAll(task1, task2);\n    \n    // Wait for any\n    await Task.WhenAny(task1, task2);\n}\n\n// Async streams (C# 8+)\npublic async IAsyncEnumerable\u003Cint> GenerateNumbersAsync()\n{\n    for (int i = 0; i \u003C 10; i++)\n    {\n        await Task.Delay(100);\n        yield return i;\n    }\n}\n",[20,33801,33802,33807,33834,33838,33858,33873,33877,33881,33886,33900,33904,33924,33942,33946,33951,33965,33969,33974,33985,33989,33993,33998,34018,34022,34048,34052,34068,34079,34083],{"__ignoreMap":30},[34,33803,33804],{"class":36,"line":37},[34,33805,33806],{"class":40},"// Async method\n",[34,33808,33809,33811,33814,33817,33819,33821,33823,33826,33828,33830,33832],{"class":36,"line":44},[34,33810,31583],{"class":580},[34,33812,33813],{"class":580}," async",[34,33815,33816],{"class":47}," Task",[34,33818,815],{"class":181},[34,33820,30113],{"class":580},[34,33822,32840],{"class":181},[34,33824,33825],{"class":47},"FetchDataAsync",[34,33827,1607],{"class":181},[34,33829,30113],{"class":580},[34,33831,15519],{"class":47},[34,33833,3372],{"class":181},[34,33835,33836],{"class":36,"line":58},[34,33837,25296],{"class":181},[34,33839,33840,33843,33846,33849,33851,33853,33856],{"class":36,"line":65},[34,33841,33842],{"class":580},"    using",[34,33844,33845],{"class":580}," var",[34,33847,33848],{"class":47}," client",[34,33850,683],{"class":580},[34,33852,809],{"class":580},[34,33854,33855],{"class":47}," HttpClient",[34,33857,851],{"class":181},[34,33859,33860,33862,33864,33867,33870],{"class":36,"line":71},[34,33861,1564],{"class":580},[34,33863,14763],{"class":580},[34,33865,33866],{"class":181}," client.",[34,33868,33869],{"class":47},"GetStringAsync",[34,33871,33872],{"class":181},"(url);\n",[34,33874,33875],{"class":36,"line":77},[34,33876,693],{"class":181},[34,33878,33879],{"class":36,"line":82},[34,33880,62],{"emptyLinePlaceholder":61},[34,33882,33883],{"class":36,"line":88},[34,33884,33885],{"class":40},"// Async with multiple tasks\n",[34,33887,33888,33890,33892,33894,33897],{"class":36,"line":242},[34,33889,31583],{"class":580},[34,33891,33813],{"class":580},[34,33893,33816],{"class":47},[34,33895,33896],{"class":47}," ProcessAllAsync",[34,33898,33899],{"class":181},"()\n",[34,33901,33902],{"class":36,"line":250},[34,33903,25296],{"class":181},[34,33905,33906,33909,33912,33914,33917,33919,33922],{"class":36,"line":263},[34,33907,33908],{"class":580},"    var",[34,33910,33911],{"class":47}," task1",[34,33913,683],{"class":580},[34,33915,33916],{"class":47}," FetchDataAsync",[34,33918,1607],{"class":181},[34,33920,33921],{"class":54},"\"url1\"",[34,33923,1586],{"class":181},[34,33925,33926,33928,33931,33933,33935,33937,33940],{"class":36,"line":275},[34,33927,33908],{"class":580},[34,33929,33930],{"class":47}," task2",[34,33932,683],{"class":580},[34,33934,33916],{"class":47},[34,33936,1607],{"class":181},[34,33938,33939],{"class":54},"\"url2\"",[34,33941,1586],{"class":181},[34,33943,33944],{"class":36,"line":700},[34,33945,3666],{"class":181},[34,33947,33948],{"class":36,"line":706},[34,33949,33950],{"class":40},"    // Wait for all\n",[34,33952,33953,33956,33959,33962],{"class":36,"line":715},[34,33954,33955],{"class":580},"    await",[34,33957,33958],{"class":181}," Task.",[34,33960,33961],{"class":47},"WhenAll",[34,33963,33964],{"class":181},"(task1, task2);\n",[34,33966,33967],{"class":36,"line":725},[34,33968,3666],{"class":181},[34,33970,33971],{"class":36,"line":734},[34,33972,33973],{"class":40},"    // Wait for any\n",[34,33975,33976,33978,33980,33983],{"class":36,"line":742},[34,33977,33955],{"class":580},[34,33979,33958],{"class":181},[34,33981,33982],{"class":47},"WhenAny",[34,33984,33964],{"class":181},[34,33986,33987],{"class":36,"line":748},[34,33988,693],{"class":181},[34,33990,33991],{"class":36,"line":754},[34,33992,62],{"emptyLinePlaceholder":61},[34,33994,33995],{"class":36,"line":759},[34,33996,33997],{"class":40},"// Async streams (C# 8+)\n",[34,33999,34000,34002,34004,34007,34009,34011,34013,34016],{"class":36,"line":771},[34,34001,31583],{"class":580},[34,34003,33813],{"class":580},[34,34005,34006],{"class":47}," IAsyncEnumerable",[34,34008,815],{"class":181},[34,34010,17772],{"class":580},[34,34012,32840],{"class":181},[34,34014,34015],{"class":47},"GenerateNumbersAsync",[34,34017,33899],{"class":181},[34,34019,34020],{"class":36,"line":794},[34,34021,25296],{"class":181},[34,34023,34024,34026,34028,34030,34032,34034,34036,34038,34040,34042,34044,34046],{"class":36,"line":824},[34,34025,18250],{"class":580},[34,34027,3204],{"class":181},[34,34029,17772],{"class":580},[34,34031,13765],{"class":47},[34,34033,683],{"class":580},[34,34035,8070],{"class":50},[34,34037,18263],{"class":181},[34,34039,815],{"class":580},[34,34041,13123],{"class":50},[34,34043,11918],{"class":181},[34,34045,11928],{"class":580},[34,34047,3372],{"class":181},[34,34049,34050],{"class":36,"line":830},[34,34051,25561],{"class":181},[34,34053,34054,34057,34059,34062,34064,34066],{"class":36,"line":839},[34,34055,34056],{"class":580},"        await",[34,34058,33958],{"class":181},[34,34060,34061],{"class":47},"Delay",[34,34063,1607],{"class":181},[34,34065,20863],{"class":50},[34,34067,1586],{"class":181},[34,34069,34070,34073,34076],{"class":36,"line":854},[34,34071,34072],{"class":580},"        yield",[34,34074,34075],{"class":580}," return",[34,34077,34078],{"class":181}," i;\n",[34,34080,34081],{"class":36,"line":860},[34,34082,3229],{"class":181},[34,34084,34085],{"class":36,"line":865},[34,34086,693],{"class":181},[388,34088,34089],{},"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 .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 .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 .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":30,"searchDepth":44,"depth":44,"links":34091},[34092],{"id":33796,"depth":44,"text":33791},"Async/Await in C#.",{},"/csharp/asyncawait",{"title":33791,"description":34093},"csharp/asyncawait",[33314,33786,30041,33787],"IRqAv6VwZa63fkQ5EW_CxLXz5sHOdIOb-zGlFVE0hpI",{"id":34101,"title":30045,"body":34102,"date":402,"description":34460,"extension":404,"meta":34461,"navigation":61,"order":88,"path":34462,"seo":34463,"stem":34464,"subject":33314,"tags":34465,"__hash__":34466},"topics/csharp/classes-objects.md",{"type":8,"value":34103,"toc":34457},[34104,34106,34455],[11,34105,30045],{"id":30050},[25,34107,34109],{"className":33312,"code":34108,"language":33314,"meta":30,"style":30},"// Class definition\npublic class Person\n{\n    // Fields\n    private string _name;\n    \n    // Properties\n    public string Name\n    {\n        get => _name;\n        set => _name = value ?? throw new ArgumentNullException();\n    }\n    \n    // Auto-property\n    public int Age { get; set; }\n    \n    // Read-only property\n    public string Id { get; } = Guid.NewGuid().ToString();\n    \n    // Constructor\n    public Person(string name, int age)\n    {\n        Name = name;\n        Age = age;\n    }\n    \n    // Method\n    public void Introduce()\n    {\n        Console.WriteLine($\"Hi, I'm {Name}\");\n    }\n}\n\n// Object initialization\nvar person = new Person(\"Alice\", 30);\nvar person2 = new Person(\"Bob\", 25) { Age = 26 };\n",[20,34110,34111,34116,34125,34129,34134,34146,34150,34155,34165,34169,34179,34206,34210,34214,34219,34239,34243,34248,34279,34283,34287,34307,34311,34321,34330,34334,34338,34343,34354,34358,34383,34387,34391,34395,34400,34424],{"__ignoreMap":30},[34,34112,34113],{"class":36,"line":37},[34,34114,34115],{"class":40},"// Class definition\n",[34,34117,34118,34120,34122],{"class":36,"line":44},[34,34119,31583],{"class":580},[34,34121,655],{"class":580},[34,34123,34124],{"class":47}," Person\n",[34,34126,34127],{"class":36,"line":58},[34,34128,25296],{"class":181},[34,34130,34131],{"class":36,"line":65},[34,34132,34133],{"class":40},"    // Fields\n",[34,34135,34136,34139,34141,34144],{"class":36,"line":71},[34,34137,34138],{"class":580},"    private",[34,34140,680],{"class":580},[34,34142,34143],{"class":47}," _name",[34,34145,593],{"class":181},[34,34147,34148],{"class":36,"line":77},[34,34149,3666],{"class":181},[34,34151,34152],{"class":36,"line":82},[34,34153,34154],{"class":40},"    // Properties\n",[34,34156,34157,34160,34162],{"class":36,"line":88},[34,34158,34159],{"class":580},"    public",[34,34161,680],{"class":580},[34,34163,34164],{"class":47}," Name\n",[34,34166,34167],{"class":36,"line":242},[34,34168,25561],{"class":181},[34,34170,34171,34174,34176],{"class":36,"line":250},[34,34172,34173],{"class":580},"        get",[34,34175,1895],{"class":580},[34,34177,34178],{"class":181}," _name;\n",[34,34180,34181,34184,34186,34189,34191,34193,34196,34199,34201,34204],{"class":36,"line":263},[34,34182,34183],{"class":580},"        set",[34,34185,1895],{"class":580},[34,34187,34188],{"class":181}," _name ",[34,34190,1301],{"class":580},[34,34192,8271],{"class":181},[34,34194,34195],{"class":580},"??",[34,34197,34198],{"class":580}," throw",[34,34200,809],{"class":580},[34,34202,34203],{"class":47}," ArgumentNullException",[34,34205,851],{"class":181},[34,34207,34208],{"class":36,"line":275},[34,34209,3229],{"class":181},[34,34211,34212],{"class":36,"line":700},[34,34213,3666],{"class":181},[34,34215,34216],{"class":36,"line":706},[34,34217,34218],{"class":40},"    // Auto-property\n",[34,34220,34221,34223,34225,34228,34230,34232,34234,34236],{"class":36,"line":715},[34,34222,34159],{"class":580},[34,34224,25160],{"class":580},[34,34226,34227],{"class":47}," Age",[34,34229,30251],{"class":181},[34,34231,1573],{"class":580},[34,34233,10268],{"class":181},[34,34235,1648],{"class":580},[34,34237,34238],{"class":181},"; }\n",[34,34240,34241],{"class":36,"line":725},[34,34242,3666],{"class":181},[34,34244,34245],{"class":36,"line":734},[34,34246,34247],{"class":40},"    // Read-only property\n",[34,34249,34250,34252,34254,34257,34259,34261,34264,34266,34269,34272,34274,34277],{"class":36,"line":742},[34,34251,34159],{"class":580},[34,34253,680],{"class":580},[34,34255,34256],{"class":47}," Id",[34,34258,30251],{"class":181},[34,34260,1573],{"class":580},[34,34262,34263],{"class":181},"; } ",[34,34265,1301],{"class":580},[34,34267,34268],{"class":181}," Guid.",[34,34270,34271],{"class":47},"NewGuid",[34,34273,1645],{"class":181},[34,34275,34276],{"class":47},"ToString",[34,34278,851],{"class":181},[34,34280,34281],{"class":36,"line":748},[34,34282,3666],{"class":181},[34,34284,34285],{"class":36,"line":754},[34,34286,30098],{"class":40},[34,34288,34289,34291,34293,34295,34297,34299,34301,34303,34305],{"class":36,"line":759},[34,34290,34159],{"class":580},[34,34292,30063],{"class":47},[34,34294,1607],{"class":181},[34,34296,30113],{"class":580},[34,34298,12323],{"class":47},[34,34300,1798],{"class":181},[34,34302,17772],{"class":580},[34,34304,33593],{"class":47},[34,34306,3372],{"class":181},[34,34308,34309],{"class":36,"line":771},[34,34310,25561],{"class":181},[34,34312,34313,34316,34318],{"class":36,"line":794},[34,34314,34315],{"class":181},"        Name ",[34,34317,1301],{"class":580},[34,34319,34320],{"class":181}," name;\n",[34,34322,34323,34326,34328],{"class":36,"line":824},[34,34324,34325],{"class":181},"        Age ",[34,34327,1301],{"class":580},[34,34329,24702],{"class":181},[34,34331,34332],{"class":36,"line":830},[34,34333,3229],{"class":181},[34,34335,34336],{"class":36,"line":839},[34,34337,3666],{"class":181},[34,34339,34340],{"class":36,"line":854},[34,34341,34342],{"class":40},"    // Method\n",[34,34344,34345,34347,34349,34352],{"class":36,"line":860},[34,34346,34159],{"class":580},[34,34348,31514],{"class":580},[34,34350,34351],{"class":47}," Introduce",[34,34353,33899],{"class":181},[34,34355,34356],{"class":36,"line":865},[34,34357,25561],{"class":181},[34,34359,34360,34363,34366,34368,34371,34373,34376,34379,34381],{"class":36,"line":870},[34,34361,34362],{"class":181},"        Console.",[34,34364,34365],{"class":47},"WriteLine",[34,34367,1607],{"class":181},[34,34369,34370],{"class":54},"$\"Hi, I'm ",[34,34372,13990],{"class":54},[34,34374,34375],{"class":181},"Name",[34,34377,34378],{"class":54},"}",[34,34380,10389],{"class":54},[34,34382,1586],{"class":181},[34,34384,34385],{"class":36,"line":876},[34,34386,3229],{"class":181},[34,34388,34389],{"class":36,"line":885},[34,34390,693],{"class":181},[34,34392,34393],{"class":36,"line":895},[34,34394,62],{"emptyLinePlaceholder":61},[34,34396,34397],{"class":36,"line":904},[34,34398,34399],{"class":40},"// Object initialization\n",[34,34401,34402,34405,34408,34410,34412,34414,34416,34418,34420,34422],{"class":36,"line":915},[34,34403,34404],{"class":580},"var",[34,34406,34407],{"class":47}," person",[34,34409,683],{"class":580},[34,34411,809],{"class":580},[34,34413,30063],{"class":47},[34,34415,1607],{"class":181},[34,34417,21650],{"class":54},[34,34419,1798],{"class":181},[34,34421,17625],{"class":50},[34,34423,1586],{"class":181},[34,34425,34426,34428,34431,34433,34435,34437,34439,34441,34443,34445,34448,34450,34453],{"class":36,"line":927},[34,34427,34404],{"class":580},[34,34429,34430],{"class":47}," person2",[34,34432,683],{"class":580},[34,34434,809],{"class":580},[34,34436,30063],{"class":47},[34,34438,1607],{"class":181},[34,34440,30344],{"class":54},[34,34442,1798],{"class":181},[34,34444,24546],{"class":50},[34,34446,34447],{"class":181},") { Age ",[34,34449,1301],{"class":580},[34,34451,34452],{"class":50}," 26",[34,34454,33355],{"class":181},[388,34456,34089],{},{"title":30,"searchDepth":44,"depth":44,"links":34458},[34459],{"id":30050,"depth":44,"text":30045},"Classes & Objects in C#.",{},"/csharp/classes-objects",{"title":30045,"description":34460},"csharp/classes-objects",[33314,33786,30041,33787],"rmUggla-XCuFilB-nEticRMS_HBSyroJ2MAGwjqNtjI",{"id":34468,"title":34469,"body":34470,"date":402,"description":34637,"extension":404,"meta":34638,"navigation":61,"order":742,"path":34639,"seo":34640,"stem":34641,"subject":33314,"tags":34642,"__hash__":34643},"topics/csharp/common-attributes.md","Common Attributes",{"type":8,"value":34471,"toc":34634},[34472,34475,34631],[11,34473,34469],{"id":34474},"common-attributes",[25,34476,34478],{"className":33312,"code":34477,"language":33314,"meta":30,"style":30},"// Obsolete warning\n[Obsolete(\"Use NewMethod instead\")]\npublic void OldMethod() { }\n\n// Serialization\n[Serializable]\npublic class Data { }\n\n// JSON serialization (System.Text.Json)\npublic class Person\n{\n    [JsonPropertyName(\"full_name\")]\n    public string Name { get; set; }\n    \n    [JsonIgnore]\n    public string Secret { get; set; }\n}\n",[20,34479,34480,34485,34500,34512,34516,34521,34530,34541,34545,34550,34558,34562,34576,34595,34599,34608,34627],{"__ignoreMap":30},[34,34481,34482],{"class":36,"line":37},[34,34483,34484],{"class":40},"// Obsolete warning\n",[34,34486,34487,34489,34492,34494,34497],{"class":36,"line":44},[34,34488,10260],{"class":181},[34,34490,34491],{"class":47},"Obsolete",[34,34493,1607],{"class":181},[34,34495,34496],{"class":54},"\"Use NewMethod instead\"",[34,34498,34499],{"class":181},")]\n",[34,34501,34502,34504,34506,34509],{"class":36,"line":58},[34,34503,31583],{"class":580},[34,34505,31514],{"class":580},[34,34507,34508],{"class":47}," OldMethod",[34,34510,34511],{"class":181},"() { }\n",[34,34513,34514],{"class":36,"line":65},[34,34515,62],{"emptyLinePlaceholder":61},[34,34517,34518],{"class":36,"line":71},[34,34519,34520],{"class":40},"// Serialization\n",[34,34522,34523,34525,34528],{"class":36,"line":77},[34,34524,10260],{"class":181},[34,34526,34527],{"class":47},"Serializable",[34,34529,924],{"class":181},[34,34531,34532,34534,34536,34538],{"class":36,"line":82},[34,34533,31583],{"class":580},[34,34535,655],{"class":580},[34,34537,1706],{"class":47},[34,34539,34540],{"class":181}," { }\n",[34,34542,34543],{"class":36,"line":88},[34,34544,62],{"emptyLinePlaceholder":61},[34,34546,34547],{"class":36,"line":242},[34,34548,34549],{"class":40},"// JSON serialization (System.Text.Json)\n",[34,34551,34552,34554,34556],{"class":36,"line":250},[34,34553,31583],{"class":580},[34,34555,655],{"class":580},[34,34557,34124],{"class":47},[34,34559,34560],{"class":36,"line":263},[34,34561,25296],{"class":181},[34,34563,34564,34566,34569,34571,34574],{"class":36,"line":275},[34,34565,33545],{"class":181},[34,34567,34568],{"class":47},"JsonPropertyName",[34,34570,1607],{"class":181},[34,34572,34573],{"class":54},"\"full_name\"",[34,34575,34499],{"class":181},[34,34577,34578,34580,34582,34585,34587,34589,34591,34593],{"class":36,"line":700},[34,34579,34159],{"class":580},[34,34581,680],{"class":580},[34,34583,34584],{"class":47}," Name",[34,34586,30251],{"class":181},[34,34588,1573],{"class":580},[34,34590,10268],{"class":181},[34,34592,1648],{"class":580},[34,34594,34238],{"class":181},[34,34596,34597],{"class":36,"line":706},[34,34598,3666],{"class":181},[34,34600,34601,34603,34606],{"class":36,"line":715},[34,34602,33545],{"class":181},[34,34604,34605],{"class":47},"JsonIgnore",[34,34607,924],{"class":181},[34,34609,34610,34612,34614,34617,34619,34621,34623,34625],{"class":36,"line":725},[34,34611,34159],{"class":580},[34,34613,680],{"class":580},[34,34615,34616],{"class":47}," Secret",[34,34618,30251],{"class":181},[34,34620,1573],{"class":580},[34,34622,10268],{"class":181},[34,34624,1648],{"class":580},[34,34626,34238],{"class":181},[34,34628,34629],{"class":36,"line":734},[34,34630,693],{"class":181},[388,34632,34633],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":34635},[34636],{"id":34474,"depth":44,"text":34469},"Common Attributes in C#.",{},"/csharp/common-attributes",{"title":34469,"description":34637},"csharp/common-attributes",[33314,33786,30041,33787],"ExocUsELMs0SxrnjUggQN7Va0oztzncES_uDfB2xq10",{"id":34645,"title":18818,"body":34646,"date":402,"description":34932,"extension":404,"meta":34933,"navigation":61,"order":71,"path":34934,"seo":34935,"stem":34936,"subject":33314,"tags":34937,"__hash__":34938},"topics/csharp/control-flow.md",{"type":8,"value":34647,"toc":34929},[34648,34650,34926],[11,34649,18818],{"id":18823},[25,34651,34653],{"className":33312,"code":34652,"language":33314,"meta":30,"style":30},"// If-else\nif (condition)\n{\n    // code\n}\nelse if (otherCondition)\n{\n    // code\n}\nelse\n{\n    // code\n}\n\n// Switch expression (C# 8+)\nstring result = day switch\n{\n    \"Monday\" => \"Start of week\",\n    \"Friday\" => \"End of week\",\n    _ => \"Mid week\"\n};\n\n// Pattern matching\nif (obj is string s)\n{\n    Console.WriteLine(s.Length);\n}\n\n// Switch with patterns\nstring message = shape switch\n{\n    Circle { Radius: > 10 } => \"Large circle\",\n    Rectangle { Width: var w, Height: var h } when w == h => \"Square\",\n    _ => \"Unknown shape\"\n};\n",[20,34654,34655,34659,34666,34670,34674,34678,34687,34691,34695,34699,34703,34707,34711,34715,34719,34724,34738,34742,34754,34766,34776,34780,34784,34789,34806,34810,34820,34824,34828,34833,34847,34851,34873,34913,34922],{"__ignoreMap":30},[34,34656,34657],{"class":36,"line":37},[34,34658,30630],{"class":40},[34,34660,34661,34663],{"class":36,"line":44},[34,34662,10383],{"class":580},[34,34664,34665],{"class":181}," (condition)\n",[34,34667,34668],{"class":36,"line":58},[34,34669,25296],{"class":181},[34,34671,34672],{"class":36,"line":65},[34,34673,30642],{"class":40},[34,34675,34676],{"class":36,"line":71},[34,34677,693],{"class":181},[34,34679,34680,34682,34684],{"class":36,"line":77},[34,34681,18871],{"class":580},[34,34683,18874],{"class":580},[34,34685,34686],{"class":181}," (otherCondition)\n",[34,34688,34689],{"class":36,"line":82},[34,34690,25296],{"class":181},[34,34692,34693],{"class":36,"line":88},[34,34694,30642],{"class":40},[34,34696,34697],{"class":36,"line":242},[34,34698,693],{"class":181},[34,34700,34701],{"class":36,"line":250},[34,34702,10446],{"class":580},[34,34704,34705],{"class":36,"line":263},[34,34706,25296],{"class":181},[34,34708,34709],{"class":36,"line":275},[34,34710,30642],{"class":40},[34,34712,34713],{"class":36,"line":700},[34,34714,693],{"class":181},[34,34716,34717],{"class":36,"line":706},[34,34718,62],{"emptyLinePlaceholder":61},[34,34720,34721],{"class":36,"line":715},[34,34722,34723],{"class":40},"// Switch expression (C# 8+)\n",[34,34725,34726,34728,34730,34732,34735],{"class":36,"line":725},[34,34727,30113],{"class":580},[34,34729,11103],{"class":47},[34,34731,683],{"class":580},[34,34733,34734],{"class":181}," day ",[34,34736,34737],{"class":580},"switch\n",[34,34739,34740],{"class":36,"line":734},[34,34741,25296],{"class":181},[34,34743,34744,34747,34749,34752],{"class":36,"line":742},[34,34745,34746],{"class":54},"    \"Monday\"",[34,34748,1895],{"class":580},[34,34750,34751],{"class":54}," \"Start of week\"",[34,34753,624],{"class":181},[34,34755,34756,34759,34761,34764],{"class":36,"line":748},[34,34757,34758],{"class":54},"    \"Friday\"",[34,34760,1895],{"class":580},[34,34762,34763],{"class":54}," \"End of week\"",[34,34765,624],{"class":181},[34,34767,34768,34771,34773],{"class":36,"line":754},[34,34769,34770],{"class":50},"    _",[34,34772,1895],{"class":580},[34,34774,34775],{"class":54}," \"Mid week\"\n",[34,34777,34778],{"class":36,"line":759},[34,34779,17632],{"class":181},[34,34781,34782],{"class":36,"line":771},[34,34783,62],{"emptyLinePlaceholder":61},[34,34785,34786],{"class":36,"line":794},[34,34787,34788],{"class":40},"// Pattern matching\n",[34,34790,34791,34793,34796,34799,34801,34804],{"class":36,"line":824},[34,34792,10383],{"class":580},[34,34794,34795],{"class":181}," (obj ",[34,34797,34798],{"class":580},"is",[34,34800,680],{"class":580},[34,34802,34803],{"class":47}," s",[34,34805,3372],{"class":181},[34,34807,34808],{"class":36,"line":830},[34,34809,25296],{"class":181},[34,34811,34812,34815,34817],{"class":36,"line":839},[34,34813,34814],{"class":181},"    Console.",[34,34816,34365],{"class":47},[34,34818,34819],{"class":181},"(s.Length);\n",[34,34821,34822],{"class":36,"line":854},[34,34823,693],{"class":181},[34,34825,34826],{"class":36,"line":860},[34,34827,62],{"emptyLinePlaceholder":61},[34,34829,34830],{"class":36,"line":865},[34,34831,34832],{"class":40},"// Switch with patterns\n",[34,34834,34835,34837,34840,34842,34845],{"class":36,"line":870},[34,34836,30113],{"class":580},[34,34838,34839],{"class":47}," message",[34,34841,683],{"class":580},[34,34843,34844],{"class":181}," shape ",[34,34846,34737],{"class":580},[34,34848,34849],{"class":36,"line":876},[34,34850,25296],{"class":181},[34,34852,34853,34856,34859,34861,34863,34866,34868,34871],{"class":36,"line":885},[34,34854,34855],{"class":47},"    Circle",[34,34857,34858],{"class":181}," { Radius: ",[34,34860,5691],{"class":580},[34,34862,13123],{"class":50},[34,34864,34865],{"class":181}," } ",[34,34867,3361],{"class":580},[34,34869,34870],{"class":54}," \"Large circle\"",[34,34872,624],{"class":181},[34,34874,34875,34878,34881,34883,34886,34889,34891,34894,34896,34899,34902,34904,34906,34908,34911],{"class":36,"line":895},[34,34876,34877],{"class":47},"    Rectangle",[34,34879,34880],{"class":181}," { Width: ",[34,34882,34404],{"class":580},[34,34884,34885],{"class":47}," w",[34,34887,34888],{"class":181},", Height: ",[34,34890,34404],{"class":580},[34,34892,34893],{"class":47}," h",[34,34895,34865],{"class":181},[34,34897,34898],{"class":580},"when",[34,34900,34901],{"class":181}," w ",[34,34903,18168],{"class":580},[34,34905,34893],{"class":47},[34,34907,1895],{"class":580},[34,34909,34910],{"class":54}," \"Square\"",[34,34912,624],{"class":181},[34,34914,34915,34917,34919],{"class":36,"line":904},[34,34916,34770],{"class":50},[34,34918,1895],{"class":580},[34,34920,34921],{"class":54}," \"Unknown shape\"\n",[34,34923,34924],{"class":36,"line":915},[34,34925,17632],{"class":181},[388,34927,34928],{},"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 .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 .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":30,"searchDepth":44,"depth":44,"links":34930},[34931],{"id":18823,"depth":44,"text":18818},"Control Flow in C#.",{},"/csharp/control-flow",{"title":18818,"description":34932},"csharp/control-flow",[33314,33786,30041,33787],"dnFc9qxcELR44YaX1VtyEvFC_N6Hp2voagOnJKx8Wa0",{"id":34940,"title":34941,"body":34942,"date":402,"description":35230,"extension":404,"meta":35231,"navigation":61,"order":725,"path":35232,"seo":35233,"stem":35234,"subject":33314,"tags":35235,"__hash__":35236},"topics/csharp/delegates-events.md","Delegates & Events",{"type":8,"value":34943,"toc":35227},[34944,34947,35224],[11,34945,34941],{"id":34946},"delegates-events",[25,34948,34950],{"className":33312,"code":34949,"language":33314,"meta":30,"style":30},"// Delegate\npublic delegate void MessageHandler(string message);\n\n// Using built-in delegates\nAction\u003Cstring> action = msg => Console.WriteLine(msg);\nFunc\u003Cint, int, int> add = (a, b) => a + b;\nPredicate\u003Cint> isEven = n => n % 2 == 0;\n\n// Events\npublic class Publisher\n{\n    public event EventHandler\u003Cstring>? MessageReceived;\n    \n    protected virtual void OnMessageReceived(string message)\n    {\n        MessageReceived?.Invoke(this, message);\n    }\n}\n\n// Subscribe to event\npublisher.MessageReceived += (sender, msg) => Console.WriteLine(msg);\n",[20,34951,34952,34957,34977,34981,34986,35015,35056,35088,35092,35097,35106,35110,35132,35136,35157,35161,35180,35184,35188,35192,35197],{"__ignoreMap":30},[34,34953,34954],{"class":36,"line":37},[34,34955,34956],{"class":40},"// Delegate\n",[34,34958,34959,34961,34964,34966,34969,34971,34973,34975],{"class":36,"line":44},[34,34960,31583],{"class":580},[34,34962,34963],{"class":580}," delegate",[34,34965,31514],{"class":580},[34,34967,34968],{"class":47}," MessageHandler",[34,34970,1607],{"class":181},[34,34972,30113],{"class":580},[34,34974,34839],{"class":47},[34,34976,1586],{"class":181},[34,34978,34979],{"class":36,"line":58},[34,34980,62],{"emptyLinePlaceholder":61},[34,34982,34983],{"class":36,"line":65},[34,34984,34985],{"class":40},"// Using built-in delegates\n",[34,34987,34988,34991,34993,34995,34997,35000,35002,35005,35007,35010,35012],{"class":36,"line":71},[34,34989,34990],{"class":47},"Action",[34,34992,815],{"class":181},[34,34994,30113],{"class":580},[34,34996,32840],{"class":181},[34,34998,34999],{"class":47},"action",[34,35001,683],{"class":580},[34,35003,35004],{"class":47}," msg",[34,35006,1895],{"class":580},[34,35008,35009],{"class":181}," Console.",[34,35011,34365],{"class":47},[34,35013,35014],{"class":181},"(msg);\n",[34,35016,35017,35020,35022,35024,35026,35028,35030,35032,35034,35036,35038,35040,35042,35044,35046,35048,35050,35052,35054],{"class":36,"line":77},[34,35018,35019],{"class":47},"Func",[34,35021,815],{"class":181},[34,35023,17772],{"class":580},[34,35025,1798],{"class":181},[34,35027,17772],{"class":580},[34,35029,1798],{"class":181},[34,35031,17772],{"class":580},[34,35033,32840],{"class":181},[34,35035,11093],{"class":47},[34,35037,683],{"class":580},[34,35039,3204],{"class":181},[34,35041,145],{"class":47},[34,35043,1798],{"class":181},[34,35045,8355],{"class":47},[34,35047,4817],{"class":181},[34,35049,3361],{"class":580},[34,35051,8065],{"class":181},[34,35053,2940],{"class":580},[34,35055,8123],{"class":181},[34,35057,35058,35061,35063,35065,35067,35070,35072,35074,35076,35078,35080,35082,35084,35086],{"class":36,"line":82},[34,35059,35060],{"class":47},"Predicate",[34,35062,815],{"class":181},[34,35064,17772],{"class":580},[34,35066,32840],{"class":181},[34,35068,35069],{"class":47},"isEven",[34,35071,683],{"class":580},[34,35073,21959],{"class":47},[34,35075,1895],{"class":580},[34,35077,22052],{"class":181},[34,35079,12797],{"class":580},[34,35081,4292],{"class":50},[34,35083,10946],{"class":580},[34,35085,8070],{"class":50},[34,35087,593],{"class":181},[34,35089,35090],{"class":36,"line":88},[34,35091,62],{"emptyLinePlaceholder":61},[34,35093,35094],{"class":36,"line":242},[34,35095,35096],{"class":40},"// Events\n",[34,35098,35099,35101,35103],{"class":36,"line":250},[34,35100,31583],{"class":580},[34,35102,655],{"class":580},[34,35104,35105],{"class":47}," Publisher\n",[34,35107,35108],{"class":36,"line":263},[34,35109,25296],{"class":181},[34,35111,35112,35114,35117,35120,35122,35124,35127,35130],{"class":36,"line":275},[34,35113,34159],{"class":580},[34,35115,35116],{"class":580}," event",[34,35118,35119],{"class":47}," EventHandler",[34,35121,815],{"class":181},[34,35123,30113],{"class":580},[34,35125,35126],{"class":181},">? ",[34,35128,35129],{"class":47},"MessageReceived",[34,35131,593],{"class":181},[34,35133,35134],{"class":36,"line":700},[34,35135,3666],{"class":181},[34,35137,35138,35141,35144,35146,35149,35151,35153,35155],{"class":36,"line":706},[34,35139,35140],{"class":580},"    protected",[34,35142,35143],{"class":580}," virtual",[34,35145,31514],{"class":580},[34,35147,35148],{"class":47}," OnMessageReceived",[34,35150,1607],{"class":181},[34,35152,30113],{"class":580},[34,35154,34839],{"class":47},[34,35156,3372],{"class":181},[34,35158,35159],{"class":36,"line":715},[34,35160,25561],{"class":181},[34,35162,35163,35166,35168,35170,35173,35175,35177],{"class":36,"line":725},[34,35164,35165],{"class":181},"        MessageReceived",[34,35167,18954],{"class":580},[34,35169,151],{"class":181},[34,35171,35172],{"class":47},"Invoke",[34,35174,1607],{"class":181},[34,35176,3207],{"class":50},[34,35178,35179],{"class":181},", message);\n",[34,35181,35182],{"class":36,"line":734},[34,35183,3229],{"class":181},[34,35185,35186],{"class":36,"line":742},[34,35187,693],{"class":181},[34,35189,35190],{"class":36,"line":748},[34,35191,62],{"emptyLinePlaceholder":61},[34,35193,35194],{"class":36,"line":754},[34,35195,35196],{"class":40},"// Subscribe to event\n",[34,35198,35199,35202,35204,35206,35209,35211,35214,35216,35218,35220,35222],{"class":36,"line":759},[34,35200,35201],{"class":181},"publisher.MessageReceived ",[34,35203,31462],{"class":580},[34,35205,3204],{"class":181},[34,35207,35208],{"class":47},"sender",[34,35210,1798],{"class":181},[34,35212,35213],{"class":47},"msg",[34,35215,4817],{"class":181},[34,35217,3361],{"class":580},[34,35219,35009],{"class":181},[34,35221,34365],{"class":47},[34,35223,35014],{"class":181},[388,35225,35226],{},"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 .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 .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":30,"searchDepth":44,"depth":44,"links":35228},[35229],{"id":34946,"depth":44,"text":34941},"Delegates & Events in C#.",{},"/csharp/delegates-events",{"title":34941,"description":35230},"csharp/delegates-events",[33314,33786,30041,33787],"MTF2Ehlj4_2lUptNGaS8t_NIuMKN3jim4PEKPxnO9Bg",{"id":35238,"title":30787,"body":35239,"date":402,"description":35503,"extension":404,"meta":35504,"navigation":61,"order":700,"path":35505,"seo":35506,"stem":35507,"subject":33314,"tags":35508,"__hash__":35509},"topics/csharp/exception-handling.md",{"type":8,"value":35240,"toc":35500},[35241,35243,35497],[11,35242,30787],{"id":30792},[25,35244,35246],{"className":33312,"code":35245,"language":33314,"meta":30,"style":30},"try\n{\n    // Code that might throw\n    int result = int.Parse(\"not a number\");\n}\ncatch (FormatException ex)\n{\n    Console.WriteLine($\"Format error: {ex.Message}\");\n}\ncatch (Exception ex) when (ex.Message.Contains(\"specific\"))\n{\n    // Exception filter\n    Console.WriteLine(\"Specific exception\");\n}\nfinally\n{\n    // Always executes\n    Console.WriteLine(\"Cleanup\");\n}\n\n// Throw exception\nthrow new InvalidOperationException(\"Something went wrong\");\n\n// Custom exception\npublic class CustomException : Exception\n{\n    public CustomException(string message) : base(message) { }\n}\n",[20,35247,35248,35253,35257,35262,35284,35288,35302,35306,35333,35337,35364,35368,35373,35386,35390,35395,35399,35404,35417,35421,35425,35430,35446,35450,35455,35469,35473,35493],{"__ignoreMap":30},[34,35249,35250],{"class":36,"line":37},[34,35251,35252],{"class":580},"try\n",[34,35254,35255],{"class":36,"line":44},[34,35256,25296],{"class":181},[34,35258,35259],{"class":36,"line":58},[34,35260,35261],{"class":40},"    // Code that might throw\n",[34,35263,35264,35266,35268,35270,35272,35274,35277,35279,35282],{"class":36,"line":65},[34,35265,18339],{"class":580},[34,35267,11103],{"class":47},[34,35269,683],{"class":580},[34,35271,25160],{"class":580},[34,35273,151],{"class":181},[34,35275,35276],{"class":47},"Parse",[34,35278,1607],{"class":181},[34,35280,35281],{"class":54},"\"not a number\"",[34,35283,1586],{"class":181},[34,35285,35286],{"class":36,"line":71},[34,35287,693],{"class":181},[34,35289,35290,35292,35294,35297,35300],{"class":36,"line":77},[34,35291,30851],{"class":580},[34,35293,3204],{"class":181},[34,35295,35296],{"class":47},"FormatException",[34,35298,35299],{"class":47}," ex",[34,35301,3372],{"class":181},[34,35303,35304],{"class":36,"line":82},[34,35305,25296],{"class":181},[34,35307,35308,35310,35312,35314,35317,35319,35322,35324,35327,35329,35331],{"class":36,"line":88},[34,35309,34814],{"class":181},[34,35311,34365],{"class":47},[34,35313,1607],{"class":181},[34,35315,35316],{"class":54},"$\"Format error: ",[34,35318,13990],{"class":54},[34,35320,35321],{"class":181},"ex",[34,35323,151],{"class":54},[34,35325,35326],{"class":181},"Message",[34,35328,34378],{"class":54},[34,35330,10389],{"class":54},[34,35332,1586],{"class":181},[34,35334,35335],{"class":36,"line":242},[34,35336,693],{"class":181},[34,35338,35339,35341,35343,35346,35348,35350,35352,35355,35357,35359,35362],{"class":36,"line":250},[34,35340,30851],{"class":580},[34,35342,3204],{"class":181},[34,35344,35345],{"class":47},"Exception",[34,35347,35299],{"class":47},[34,35349,4817],{"class":181},[34,35351,34898],{"class":580},[34,35353,35354],{"class":181}," (ex.Message.",[34,35356,33482],{"class":47},[34,35358,1607],{"class":181},[34,35360,35361],{"class":54},"\"specific\"",[34,35363,11119],{"class":181},[34,35365,35366],{"class":36,"line":263},[34,35367,25296],{"class":181},[34,35369,35370],{"class":36,"line":275},[34,35371,35372],{"class":40},"    // Exception filter\n",[34,35374,35375,35377,35379,35381,35384],{"class":36,"line":700},[34,35376,34814],{"class":181},[34,35378,34365],{"class":47},[34,35380,1607],{"class":181},[34,35382,35383],{"class":54},"\"Specific exception\"",[34,35385,1586],{"class":181},[34,35387,35388],{"class":36,"line":706},[34,35389,693],{"class":181},[34,35391,35392],{"class":36,"line":715},[34,35393,35394],{"class":580},"finally\n",[34,35396,35397],{"class":36,"line":725},[34,35398,25296],{"class":181},[34,35400,35401],{"class":36,"line":734},[34,35402,35403],{"class":40},"    // Always executes\n",[34,35405,35406,35408,35410,35412,35415],{"class":36,"line":742},[34,35407,34814],{"class":181},[34,35409,34365],{"class":47},[34,35411,1607],{"class":181},[34,35413,35414],{"class":54},"\"Cleanup\"",[34,35416,1586],{"class":181},[34,35418,35419],{"class":36,"line":748},[34,35420,693],{"class":181},[34,35422,35423],{"class":36,"line":754},[34,35424,62],{"emptyLinePlaceholder":61},[34,35426,35427],{"class":36,"line":759},[34,35428,35429],{"class":40},"// Throw exception\n",[34,35431,35432,35435,35437,35440,35442,35444],{"class":36,"line":771},[34,35433,35434],{"class":580},"throw",[34,35436,809],{"class":580},[34,35438,35439],{"class":47}," InvalidOperationException",[34,35441,1607],{"class":181},[34,35443,30838],{"class":54},[34,35445,1586],{"class":181},[34,35447,35448],{"class":36,"line":794},[34,35449,62],{"emptyLinePlaceholder":61},[34,35451,35452],{"class":36,"line":824},[34,35453,35454],{"class":40},"// Custom exception\n",[34,35456,35457,35459,35461,35464,35466],{"class":36,"line":830},[34,35458,31583],{"class":580},[34,35460,655],{"class":580},[34,35462,35463],{"class":47}," CustomException",[34,35465,31580],{"class":181},[34,35467,35468],{"class":47},"Exception\n",[34,35470,35471],{"class":36,"line":839},[34,35472,25296],{"class":181},[34,35474,35475,35477,35479,35481,35483,35485,35487,35490],{"class":36,"line":854},[34,35476,34159],{"class":580},[34,35478,35463],{"class":47},[34,35480,1607],{"class":181},[34,35482,30113],{"class":580},[34,35484,34839],{"class":47},[34,35486,30124],{"class":181},[34,35488,35489],{"class":50},"base",[34,35491,35492],{"class":181},"(message) { }\n",[34,35494,35495],{"class":36,"line":860},[34,35496,693],{"class":181},[388,35498,35499],{},"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 .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 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":30,"searchDepth":44,"depth":44,"links":35501},[35502],{"id":30792,"depth":44,"text":30787},"Exception Handling in C#.",{},"/csharp/exception-handling",{"title":30787,"description":35503},"csharp/exception-handling",[33314,33786,30041,33787],"7ofiw_o7bIgxGPyUSfEcBQM3KFUSp10IjIUksOpNQ08",{"id":35511,"title":21267,"body":35512,"date":402,"description":35753,"extension":404,"meta":35754,"navigation":61,"order":734,"path":35755,"seo":35756,"stem":35757,"subject":33314,"tags":35758,"__hash__":35759},"topics/csharp/file-io.md",{"type":8,"value":35513,"toc":35750},[35514,35516,35747],[11,35515,21267],{"id":21272},[25,35517,35519],{"className":33312,"code":35518,"language":33314,"meta":30,"style":30},"// Read all text\nstring content = File.ReadAllText(\"file.txt\");\n\n// Write all text\nFile.WriteAllText(\"file.txt\", \"content\");\n\n// Read lines\nstring[] lines = File.ReadAllLines(\"file.txt\");\n\n// Async file operations\nstring content = await File.ReadAllTextAsync(\"file.txt\");\nawait File.WriteAllTextAsync(\"file.txt\", \"content\");\n\n// Using StreamReader/StreamWriter\nusing var reader = new StreamReader(\"file.txt\");\nstring line = await reader.ReadLineAsync();\n\nusing var writer = new StreamWriter(\"file.txt\");\nawait writer.WriteLineAsync(\"Hello\");\n",[20,35520,35521,35526,35547,35551,35556,35575,35579,35584,35606,35610,35615,35636,35655,35659,35664,35687,35705,35709,35731],{"__ignoreMap":30},[34,35522,35523],{"class":36,"line":37},[34,35524,35525],{"class":40},"// Read all text\n",[34,35527,35528,35530,35533,35535,35538,35541,35543,35545],{"class":36,"line":44},[34,35529,30113],{"class":580},[34,35531,35532],{"class":47}," content",[34,35534,683],{"class":580},[34,35536,35537],{"class":181}," File.",[34,35539,35540],{"class":47},"ReadAllText",[34,35542,1607],{"class":181},[34,35544,14990],{"class":54},[34,35546,1586],{"class":181},[34,35548,35549],{"class":36,"line":58},[34,35550,62],{"emptyLinePlaceholder":61},[34,35552,35553],{"class":36,"line":65},[34,35554,35555],{"class":40},"// Write all text\n",[34,35557,35558,35561,35564,35566,35568,35570,35573],{"class":36,"line":71},[34,35559,35560],{"class":181},"File.",[34,35562,35563],{"class":47},"WriteAllText",[34,35565,1607],{"class":181},[34,35567,14990],{"class":54},[34,35569,1798],{"class":181},[34,35571,35572],{"class":54},"\"content\"",[34,35574,1586],{"class":181},[34,35576,35577],{"class":36,"line":77},[34,35578,62],{"emptyLinePlaceholder":61},[34,35580,35581],{"class":36,"line":82},[34,35582,35583],{"class":40},"// Read lines\n",[34,35585,35586,35588,35590,35593,35595,35597,35600,35602,35604],{"class":36,"line":88},[34,35587,30113],{"class":580},[34,35589,4063],{"class":181},[34,35591,35592],{"class":47},"lines",[34,35594,683],{"class":580},[34,35596,35537],{"class":181},[34,35598,35599],{"class":47},"ReadAllLines",[34,35601,1607],{"class":181},[34,35603,14990],{"class":54},[34,35605,1586],{"class":181},[34,35607,35608],{"class":36,"line":242},[34,35609,62],{"emptyLinePlaceholder":61},[34,35611,35612],{"class":36,"line":250},[34,35613,35614],{"class":40},"// Async file operations\n",[34,35616,35617,35619,35621,35623,35625,35627,35630,35632,35634],{"class":36,"line":263},[34,35618,30113],{"class":580},[34,35620,35532],{"class":47},[34,35622,683],{"class":580},[34,35624,14763],{"class":580},[34,35626,35537],{"class":181},[34,35628,35629],{"class":47},"ReadAllTextAsync",[34,35631,1607],{"class":181},[34,35633,14990],{"class":54},[34,35635,1586],{"class":181},[34,35637,35638,35640,35642,35645,35647,35649,35651,35653],{"class":36,"line":275},[34,35639,15062],{"class":580},[34,35641,35537],{"class":181},[34,35643,35644],{"class":47},"WriteAllTextAsync",[34,35646,1607],{"class":181},[34,35648,14990],{"class":54},[34,35650,1798],{"class":181},[34,35652,35572],{"class":54},[34,35654,1586],{"class":181},[34,35656,35657],{"class":36,"line":700},[34,35658,62],{"emptyLinePlaceholder":61},[34,35660,35661],{"class":36,"line":706},[34,35662,35663],{"class":40},"// Using StreamReader/StreamWriter\n",[34,35665,35666,35669,35671,35674,35676,35678,35681,35683,35685],{"class":36,"line":715},[34,35667,35668],{"class":580},"using",[34,35670,33845],{"class":580},[34,35672,35673],{"class":47}," reader",[34,35675,683],{"class":580},[34,35677,809],{"class":580},[34,35679,35680],{"class":47}," StreamReader",[34,35682,1607],{"class":181},[34,35684,14990],{"class":54},[34,35686,1586],{"class":181},[34,35688,35689,35691,35693,35695,35697,35700,35703],{"class":36,"line":725},[34,35690,30113],{"class":580},[34,35692,12115],{"class":47},[34,35694,683],{"class":580},[34,35696,14763],{"class":580},[34,35698,35699],{"class":181}," reader.",[34,35701,35702],{"class":47},"ReadLineAsync",[34,35704,851],{"class":181},[34,35706,35707],{"class":36,"line":734},[34,35708,62],{"emptyLinePlaceholder":61},[34,35710,35711,35713,35715,35718,35720,35722,35725,35727,35729],{"class":36,"line":742},[34,35712,35668],{"class":580},[34,35714,33845],{"class":580},[34,35716,35717],{"class":47}," writer",[34,35719,683],{"class":580},[34,35721,809],{"class":580},[34,35723,35724],{"class":47}," StreamWriter",[34,35726,1607],{"class":181},[34,35728,14990],{"class":54},[34,35730,1586],{"class":181},[34,35732,35733,35735,35738,35741,35743,35745],{"class":36,"line":748},[34,35734,15062],{"class":580},[34,35736,35737],{"class":181}," writer.",[34,35739,35740],{"class":47},"WriteLineAsync",[34,35742,1607],{"class":181},[34,35744,15564],{"class":54},[34,35746,1586],{"class":181},[388,35748,35749],{},"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 .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 .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);}",{"title":30,"searchDepth":44,"depth":44,"links":35751},[35752],{"id":21272,"depth":44,"text":21267},"File I/O in C#.",{},"/csharp/file-io",{"title":21267,"description":35753},"csharp/file-io",[33314,33786,30041,33787],"El16Gp-Z85zBKRI8FqFN0JPlkll-hWZoPi-2kwdUWHI",{"id":35761,"title":26423,"body":35762,"date":402,"description":35982,"extension":404,"meta":35983,"navigation":61,"order":715,"path":35984,"seo":35985,"stem":35986,"subject":33314,"tags":35987,"__hash__":35988},"topics/csharp/generics.md",{"type":8,"value":35763,"toc":35979},[35764,35766,35976],[11,35765,26423],{"id":26428},[25,35767,35769],{"className":33312,"code":35768,"language":33314,"meta":30,"style":30},"// Generic class\npublic class Container\u003CT>\n{\n    public T Value { get; set; }\n    \n    public Container(T value)\n    {\n        Value = value;\n    }\n}\n\n// Generic method\npublic T GetDefault\u003CT>() where T : new()\n{\n    return new T();\n}\n\n// Generic constraints\npublic class Repository\u003CT> where T : class, IEntity, new()\n{\n    public T Create() => new T();\n}\n",[20,35770,35771,35776,35790,35794,35813,35817,35831,35835,35844,35848,35852,35856,35861,35888,35892,35902,35906,35910,35915,35949,35953,35972],{"__ignoreMap":30},[34,35772,35773],{"class":36,"line":37},[34,35774,35775],{"class":40},"// Generic class\n",[34,35777,35778,35780,35782,35784,35786,35788],{"class":36,"line":44},[34,35779,31583],{"class":580},[34,35781,655],{"class":580},[34,35783,32738],{"class":47},[34,35785,815],{"class":181},[34,35787,32671],{"class":47},[34,35789,1248],{"class":181},[34,35791,35792],{"class":36,"line":58},[34,35793,25296],{"class":181},[34,35795,35796,35798,35800,35803,35805,35807,35809,35811],{"class":36,"line":65},[34,35797,34159],{"class":580},[34,35799,32664],{"class":47},[34,35801,35802],{"class":47}," Value",[34,35804,30251],{"class":181},[34,35806,1573],{"class":580},[34,35808,10268],{"class":181},[34,35810,1648],{"class":580},[34,35812,34238],{"class":181},[34,35814,35815],{"class":36,"line":71},[34,35816,3666],{"class":181},[34,35818,35819,35821,35823,35825,35827,35829],{"class":36,"line":77},[34,35820,34159],{"class":580},[34,35822,32738],{"class":47},[34,35824,1607],{"class":181},[34,35826,32671],{"class":47},[34,35828,18389],{"class":47},[34,35830,3372],{"class":181},[34,35832,35833],{"class":36,"line":82},[34,35834,25561],{"class":181},[34,35836,35837,35840,35842],{"class":36,"line":88},[34,35838,35839],{"class":181},"        Value ",[34,35841,1301],{"class":580},[34,35843,2920],{"class":181},[34,35845,35846],{"class":36,"line":242},[34,35847,3229],{"class":181},[34,35849,35850],{"class":36,"line":250},[34,35851,693],{"class":181},[34,35853,35854],{"class":36,"line":263},[34,35855,62],{"emptyLinePlaceholder":61},[34,35857,35858],{"class":36,"line":275},[34,35859,35860],{"class":40},"// Generic method\n",[34,35862,35863,35865,35867,35870,35872,35874,35877,35880,35882,35884,35886],{"class":36,"line":700},[34,35864,31583],{"class":580},[34,35866,32664],{"class":47},[34,35868,35869],{"class":47}," GetDefault",[34,35871,815],{"class":181},[34,35873,32671],{"class":47},[34,35875,35876],{"class":181},">() ",[34,35878,35879],{"class":580},"where",[34,35881,32664],{"class":47},[34,35883,31580],{"class":181},[34,35885,3143],{"class":580},[34,35887,33899],{"class":181},[34,35889,35890],{"class":36,"line":706},[34,35891,25296],{"class":181},[34,35893,35894,35896,35898,35900],{"class":36,"line":715},[34,35895,1564],{"class":580},[34,35897,809],{"class":580},[34,35899,32664],{"class":47},[34,35901,851],{"class":181},[34,35903,35904],{"class":36,"line":725},[34,35905,693],{"class":181},[34,35907,35908],{"class":36,"line":734},[34,35909,62],{"emptyLinePlaceholder":61},[34,35911,35912],{"class":36,"line":742},[34,35913,35914],{"class":40},"// Generic constraints\n",[34,35916,35917,35919,35921,35924,35926,35928,35930,35932,35934,35936,35938,35940,35943,35945,35947],{"class":36,"line":748},[34,35918,31583],{"class":580},[34,35920,655],{"class":580},[34,35922,35923],{"class":47}," Repository",[34,35925,815],{"class":181},[34,35927,32671],{"class":47},[34,35929,32840],{"class":181},[34,35931,35879],{"class":580},[34,35933,32664],{"class":47},[34,35935,31580],{"class":181},[34,35937,30060],{"class":580},[34,35939,1798],{"class":181},[34,35941,35942],{"class":47},"IEntity",[34,35944,1798],{"class":181},[34,35946,3143],{"class":580},[34,35948,33899],{"class":181},[34,35950,35951],{"class":36,"line":754},[34,35952,25296],{"class":181},[34,35954,35955,35957,35959,35962,35964,35966,35968,35970],{"class":36,"line":759},[34,35956,34159],{"class":580},[34,35958,32664],{"class":47},[34,35960,35961],{"class":47}," Create",[34,35963,672],{"class":181},[34,35965,3361],{"class":580},[34,35967,809],{"class":580},[34,35969,32664],{"class":47},[34,35971,851],{"class":181},[34,35973,35974],{"class":36,"line":771},[34,35975,693],{"class":181},[388,35977,35978],{},"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 .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 .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":30,"searchDepth":44,"depth":44,"links":35980},[35981],{"id":26428,"depth":44,"text":26423},"Generics in C#.",{},"/csharp/generics",{"title":26423,"description":35982},"csharp/generics",[33314,33786,30041,33787],"xagUXxG3po-RAIgIG-IxAnfD0LsE425fi6pGuroh6-Q",{"id":35990,"title":35991,"body":35992,"date":402,"description":36272,"extension":404,"meta":36273,"navigation":61,"order":250,"path":36274,"seo":36275,"stem":36276,"subject":33314,"tags":36277,"__hash__":36278},"topics/csharp/inheritance-interfaces.md","Inheritance & Interfaces",{"type":8,"value":35993,"toc":36269},[35994,35997,36267],[11,35995,35991],{"id":35996},"inheritance-interfaces",[25,35998,36000],{"className":33312,"code":35999,"language":33314,"meta":30,"style":30},"// Interface\npublic interface IDrawable\n{\n    void Draw();\n    double Area { get; }\n}\n\n// Abstract class\npublic abstract class Shape\n{\n    public abstract double CalculateArea();\n    \n    public virtual void Display()\n    {\n        Console.WriteLine(\"Shape\");\n    }\n}\n\n// Inheritance\npublic class Circle : Shape, IDrawable\n{\n    public double Radius { get; set; }\n    \n    public double Area => Math.PI * Radius * Radius;\n    \n    public override double CalculateArea() => Area;\n    \n    public void Draw()\n    {\n        Console.WriteLine(\"Drawing circle\");\n    }\n}\n",[20,36001,36002,36007,36017,36021,36030,36044,36048,36052,36057,36069,36073,36087,36091,36104,36108,36121,36125,36129,36133,36138,36157,36161,36180,36184,36207,36211,36228,36232,36242,36246,36259,36263],{"__ignoreMap":30},[34,36003,36004],{"class":36,"line":37},[34,36005,36006],{"class":40},"// Interface\n",[34,36008,36009,36011,36014],{"class":36,"line":44},[34,36010,31583],{"class":580},[34,36012,36013],{"class":580}," interface",[34,36015,36016],{"class":47}," IDrawable\n",[34,36018,36019],{"class":36,"line":58},[34,36020,25296],{"class":181},[34,36022,36023,36025,36028],{"class":36,"line":65},[34,36024,20812],{"class":580},[34,36026,36027],{"class":47}," Draw",[34,36029,851],{"class":181},[34,36031,36032,36035,36038,36040,36042],{"class":36,"line":71},[34,36033,36034],{"class":580},"    double",[34,36036,36037],{"class":47}," Area",[34,36039,30251],{"class":181},[34,36041,1573],{"class":580},[34,36043,34238],{"class":181},[34,36045,36046],{"class":36,"line":77},[34,36047,693],{"class":181},[34,36049,36050],{"class":36,"line":82},[34,36051,62],{"emptyLinePlaceholder":61},[34,36053,36054],{"class":36,"line":88},[34,36055,36056],{"class":40},"// Abstract class\n",[34,36058,36059,36061,36064,36066],{"class":36,"line":242},[34,36060,31583],{"class":580},[34,36062,36063],{"class":580}," abstract",[34,36065,655],{"class":580},[34,36067,36068],{"class":47}," Shape\n",[34,36070,36071],{"class":36,"line":250},[34,36072,25296],{"class":181},[34,36074,36075,36077,36079,36082,36085],{"class":36,"line":263},[34,36076,34159],{"class":580},[34,36078,36063],{"class":580},[34,36080,36081],{"class":580}," double",[34,36083,36084],{"class":47}," CalculateArea",[34,36086,851],{"class":181},[34,36088,36089],{"class":36,"line":275},[34,36090,3666],{"class":181},[34,36092,36093,36095,36097,36099,36102],{"class":36,"line":700},[34,36094,34159],{"class":580},[34,36096,35143],{"class":580},[34,36098,31514],{"class":580},[34,36100,36101],{"class":47}," Display",[34,36103,33899],{"class":181},[34,36105,36106],{"class":36,"line":706},[34,36107,25561],{"class":181},[34,36109,36110,36112,36114,36116,36119],{"class":36,"line":715},[34,36111,34362],{"class":181},[34,36113,34365],{"class":47},[34,36115,1607],{"class":181},[34,36117,36118],{"class":54},"\"Shape\"",[34,36120,1586],{"class":181},[34,36122,36123],{"class":36,"line":725},[34,36124,3229],{"class":181},[34,36126,36127],{"class":36,"line":734},[34,36128,693],{"class":181},[34,36130,36131],{"class":36,"line":742},[34,36132,62],{"emptyLinePlaceholder":61},[34,36134,36135],{"class":36,"line":748},[34,36136,36137],{"class":40},"// Inheritance\n",[34,36139,36140,36142,36144,36147,36149,36152,36154],{"class":36,"line":754},[34,36141,31583],{"class":580},[34,36143,655],{"class":580},[34,36145,36146],{"class":47}," Circle",[34,36148,31580],{"class":181},[34,36150,36151],{"class":47},"Shape",[34,36153,1798],{"class":181},[34,36155,36156],{"class":47},"IDrawable\n",[34,36158,36159],{"class":36,"line":759},[34,36160,25296],{"class":181},[34,36162,36163,36165,36167,36170,36172,36174,36176,36178],{"class":36,"line":771},[34,36164,34159],{"class":580},[34,36166,36081],{"class":580},[34,36168,36169],{"class":47}," Radius",[34,36171,30251],{"class":181},[34,36173,1573],{"class":580},[34,36175,10268],{"class":181},[34,36177,1648],{"class":580},[34,36179,34238],{"class":181},[34,36181,36182],{"class":36,"line":794},[34,36183,3666],{"class":181},[34,36185,36186,36188,36190,36192,36194,36197,36199,36202,36204],{"class":36,"line":824},[34,36187,34159],{"class":580},[34,36189,36081],{"class":580},[34,36191,36037],{"class":47},[34,36193,1895],{"class":580},[34,36195,36196],{"class":181}," Math.PI ",[34,36198,4289],{"class":580},[34,36200,36201],{"class":181}," Radius ",[34,36203,4289],{"class":580},[34,36205,36206],{"class":181}," Radius;\n",[34,36208,36209],{"class":36,"line":830},[34,36210,3666],{"class":181},[34,36212,36213,36215,36217,36219,36221,36223,36225],{"class":36,"line":839},[34,36214,34159],{"class":580},[34,36216,31604],{"class":580},[34,36218,36081],{"class":580},[34,36220,36084],{"class":47},[34,36222,672],{"class":181},[34,36224,3361],{"class":580},[34,36226,36227],{"class":181}," Area;\n",[34,36229,36230],{"class":36,"line":854},[34,36231,3666],{"class":181},[34,36233,36234,36236,36238,36240],{"class":36,"line":860},[34,36235,34159],{"class":580},[34,36237,31514],{"class":580},[34,36239,36027],{"class":47},[34,36241,33899],{"class":181},[34,36243,36244],{"class":36,"line":865},[34,36245,25561],{"class":181},[34,36247,36248,36250,36252,36254,36257],{"class":36,"line":870},[34,36249,34362],{"class":181},[34,36251,34365],{"class":47},[34,36253,1607],{"class":181},[34,36255,36256],{"class":54},"\"Drawing circle\"",[34,36258,1586],{"class":181},[34,36260,36261],{"class":36,"line":876},[34,36262,3229],{"class":181},[34,36264,36265],{"class":36,"line":885},[34,36266,693],{"class":181},[388,36268,35749],{},{"title":30,"searchDepth":44,"depth":44,"links":36270},[36271],{"id":35996,"depth":44,"text":35991},"Inheritance & Interfaces in C#.",{},"/csharp/inheritance-interfaces",{"title":35991,"description":36272},"csharp/inheritance-interfaces",[33314,33786,30041,33787],"RFKcUQGEBlwEjAafntXggOHb6TKfc9Qi6a1LOUHwLx4",{"id":36280,"title":36281,"body":36282,"date":402,"description":36732,"extension":404,"meta":36733,"navigation":61,"order":263,"path":36734,"seo":36735,"stem":36736,"subject":33314,"tags":36737,"__hash__":36738},"topics/csharp/linq.md","LINQ",{"type":8,"value":36283,"toc":36729},[36284,36287,36726],[11,36285,36281],{"id":36286},"linq",[25,36288,36290],{"className":33312,"code":36289,"language":33314,"meta":30,"style":30},"var numbers = new List\u003Cint> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };\n\n// Query syntax\nvar evenQuery = from n in numbers\n                where n % 2 == 0\n                select n;\n\n// Method syntax\nvar evenMethod = numbers.Where(n => n % 2 == 0);\n\n// Common LINQ methods\nnumbers.Where(n => n > 5);           // Filter\nnumbers.Select(n => n * 2);          // Transform\nnumbers.OrderBy(n => n);             // Sort ascending\nnumbers.OrderByDescending(n => n);   // Sort descending\nnumbers.First();                     // First element\nnumbers.FirstOrDefault();            // First or default\nnumbers.Any(n => n > 5);             // Check if any match\nnumbers.All(n => n > 0);             // Check if all match\nnumbers.Count();                     // Count elements\nnumbers.Sum();                       // Sum values\nnumbers.Average();                   // Average value\nnumbers.GroupBy(n => n % 2);         // Group by key\nnumbers.Take(3);                     // Take first 3\nnumbers.Skip(3);                     // Skip first 3\nnumbers.Distinct();                  // Remove duplicates\n",[20,36291,36292,36350,36354,36359,36379,36395,36403,36407,36412,36445,36449,36454,36479,36504,36523,36542,36555,36568,36593,36617,36629,36642,36655,36680,36697,36713],{"__ignoreMap":30},[34,36293,36294,36296,36298,36300,36302,36304,36306,36308,36310,36312,36314,36316,36318,36320,36322,36324,36326,36328,36330,36332,36334,36336,36338,36340,36342,36344,36346,36348],{"class":36,"line":37},[34,36295,34404],{"class":580},[34,36297,17775],{"class":47},[34,36299,683],{"class":580},[34,36301,809],{"class":580},[34,36303,33432],{"class":47},[34,36305,815],{"class":181},[34,36307,17772],{"class":580},[34,36309,33439],{"class":181},[34,36311,8318],{"class":50},[34,36313,1798],{"class":181},[34,36315,8324],{"class":50},[34,36317,1798],{"class":181},[34,36319,3162],{"class":50},[34,36321,1798],{"class":181},[34,36323,18010],{"class":50},[34,36325,1798],{"class":181},[34,36327,2778],{"class":50},[34,36329,1798],{"class":181},[34,36331,18019],{"class":50},[34,36333,1798],{"class":181},[34,36335,18028],{"class":50},[34,36337,1798],{"class":181},[34,36339,18033],{"class":50},[34,36341,1798],{"class":181},[34,36343,18038],{"class":50},[34,36345,1798],{"class":181},[34,36347,11923],{"class":50},[34,36349,33355],{"class":181},[34,36351,36352],{"class":36,"line":44},[34,36353,62],{"emptyLinePlaceholder":61},[34,36355,36356],{"class":36,"line":58},[34,36357,36358],{"class":40},"// Query syntax\n",[34,36360,36361,36363,36366,36368,36371,36373,36376],{"class":36,"line":65},[34,36362,34404],{"class":580},[34,36364,36365],{"class":47}," evenQuery",[34,36367,683],{"class":580},[34,36369,36370],{"class":580}," from",[34,36372,21959],{"class":47},[34,36374,36375],{"class":580}," in",[34,36377,36378],{"class":181}," numbers\n",[34,36380,36381,36384,36386,36388,36390,36392],{"class":36,"line":71},[34,36382,36383],{"class":580},"                where",[34,36385,22052],{"class":181},[34,36387,12797],{"class":580},[34,36389,4292],{"class":50},[34,36391,10946],{"class":580},[34,36393,36394],{"class":50}," 0\n",[34,36396,36397,36400],{"class":36,"line":77},[34,36398,36399],{"class":580},"                select",[34,36401,36402],{"class":181}," n;\n",[34,36404,36405],{"class":36,"line":82},[34,36406,62],{"emptyLinePlaceholder":61},[34,36408,36409],{"class":36,"line":88},[34,36410,36411],{"class":40},"// Method syntax\n",[34,36413,36414,36416,36419,36421,36424,36427,36429,36431,36433,36435,36437,36439,36441,36443],{"class":36,"line":242},[34,36415,34404],{"class":580},[34,36417,36418],{"class":47}," evenMethod",[34,36420,683],{"class":580},[34,36422,36423],{"class":181}," numbers.",[34,36425,36426],{"class":47},"Where",[34,36428,1607],{"class":181},[34,36430,6217],{"class":47},[34,36432,1895],{"class":580},[34,36434,22052],{"class":181},[34,36436,12797],{"class":580},[34,36438,4292],{"class":50},[34,36440,10946],{"class":580},[34,36442,8070],{"class":50},[34,36444,1586],{"class":181},[34,36446,36447],{"class":36,"line":250},[34,36448,62],{"emptyLinePlaceholder":61},[34,36450,36451],{"class":36,"line":263},[34,36452,36453],{"class":40},"// Common LINQ methods\n",[34,36455,36456,36459,36461,36463,36465,36467,36469,36471,36473,36476],{"class":36,"line":275},[34,36457,36458],{"class":181},"numbers.",[34,36460,36426],{"class":47},[34,36462,1607],{"class":181},[34,36464,6217],{"class":47},[34,36466,1895],{"class":580},[34,36468,22052],{"class":181},[34,36470,5691],{"class":580},[34,36472,11144],{"class":50},[34,36474,36475],{"class":181},");           ",[34,36477,36478],{"class":40},"// Filter\n",[34,36480,36481,36483,36486,36488,36490,36492,36494,36496,36498,36501],{"class":36,"line":700},[34,36482,36458],{"class":181},[34,36484,36485],{"class":47},"Select",[34,36487,1607],{"class":181},[34,36489,6217],{"class":47},[34,36491,1895],{"class":580},[34,36493,22052],{"class":181},[34,36495,4289],{"class":580},[34,36497,4292],{"class":50},[34,36499,36500],{"class":181},");          ",[34,36502,36503],{"class":40},"// Transform\n",[34,36505,36506,36508,36511,36513,36515,36517,36520],{"class":36,"line":706},[34,36507,36458],{"class":181},[34,36509,36510],{"class":47},"OrderBy",[34,36512,1607],{"class":181},[34,36514,6217],{"class":47},[34,36516,1895],{"class":580},[34,36518,36519],{"class":181}," n);             ",[34,36521,36522],{"class":40},"// Sort ascending\n",[34,36524,36525,36527,36530,36532,36534,36536,36539],{"class":36,"line":715},[34,36526,36458],{"class":181},[34,36528,36529],{"class":47},"OrderByDescending",[34,36531,1607],{"class":181},[34,36533,6217],{"class":47},[34,36535,1895],{"class":580},[34,36537,36538],{"class":181}," n);   ",[34,36540,36541],{"class":40},"// Sort descending\n",[34,36543,36544,36546,36549,36552],{"class":36,"line":725},[34,36545,36458],{"class":181},[34,36547,36548],{"class":47},"First",[34,36550,36551],{"class":181},"();                     ",[34,36553,36554],{"class":40},"// First element\n",[34,36556,36557,36559,36562,36565],{"class":36,"line":734},[34,36558,36458],{"class":181},[34,36560,36561],{"class":47},"FirstOrDefault",[34,36563,36564],{"class":181},"();            ",[34,36566,36567],{"class":40},"// First or default\n",[34,36569,36570,36572,36575,36577,36579,36581,36583,36585,36587,36590],{"class":36,"line":742},[34,36571,36458],{"class":181},[34,36573,36574],{"class":47},"Any",[34,36576,1607],{"class":181},[34,36578,6217],{"class":47},[34,36580,1895],{"class":580},[34,36582,22052],{"class":181},[34,36584,5691],{"class":580},[34,36586,11144],{"class":50},[34,36588,36589],{"class":181},");             ",[34,36591,36592],{"class":40},"// Check if any match\n",[34,36594,36595,36597,36600,36602,36604,36606,36608,36610,36612,36614],{"class":36,"line":748},[34,36596,36458],{"class":181},[34,36598,36599],{"class":47},"All",[34,36601,1607],{"class":181},[34,36603,6217],{"class":47},[34,36605,1895],{"class":580},[34,36607,22052],{"class":181},[34,36609,5691],{"class":580},[34,36611,8070],{"class":50},[34,36613,36589],{"class":181},[34,36615,36616],{"class":40},"// Check if all match\n",[34,36618,36619,36621,36624,36626],{"class":36,"line":754},[34,36620,36458],{"class":181},[34,36622,36623],{"class":47},"Count",[34,36625,36551],{"class":181},[34,36627,36628],{"class":40},"// Count elements\n",[34,36630,36631,36633,36636,36639],{"class":36,"line":759},[34,36632,36458],{"class":181},[34,36634,36635],{"class":47},"Sum",[34,36637,36638],{"class":181},"();                       ",[34,36640,36641],{"class":40},"// Sum values\n",[34,36643,36644,36646,36649,36652],{"class":36,"line":771},[34,36645,36458],{"class":181},[34,36647,36648],{"class":47},"Average",[34,36650,36651],{"class":181},"();                   ",[34,36653,36654],{"class":40},"// Average value\n",[34,36656,36657,36659,36662,36664,36666,36668,36670,36672,36674,36677],{"class":36,"line":794},[34,36658,36458],{"class":181},[34,36660,36661],{"class":47},"GroupBy",[34,36663,1607],{"class":181},[34,36665,6217],{"class":47},[34,36667,1895],{"class":580},[34,36669,22052],{"class":181},[34,36671,12797],{"class":580},[34,36673,4292],{"class":50},[34,36675,36676],{"class":181},");         ",[34,36678,36679],{"class":40},"// Group by key\n",[34,36681,36682,36684,36687,36689,36691,36694],{"class":36,"line":824},[34,36683,36458],{"class":181},[34,36685,36686],{"class":47},"Take",[34,36688,1607],{"class":181},[34,36690,3162],{"class":50},[34,36692,36693],{"class":181},");                     ",[34,36695,36696],{"class":40},"// Take first 3\n",[34,36698,36699,36701,36704,36706,36708,36710],{"class":36,"line":830},[34,36700,36458],{"class":181},[34,36702,36703],{"class":47},"Skip",[34,36705,1607],{"class":181},[34,36707,3162],{"class":50},[34,36709,36693],{"class":181},[34,36711,36712],{"class":40},"// Skip first 3\n",[34,36714,36715,36717,36720,36723],{"class":36,"line":839},[34,36716,36458],{"class":181},[34,36718,36719],{"class":47},"Distinct",[34,36721,36722],{"class":181},"();                  ",[34,36724,36725],{"class":40},"// Remove duplicates\n",[388,36727,36728],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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":30,"searchDepth":44,"depth":44,"links":36730},[36731],{"id":36286,"depth":44,"text":36281},"LINQ in C#.",{},"/csharp/linq",{"title":36281,"description":36732},"csharp/linq",[33314,33786,30041,33787],"XpLxNhs454O_C5PB8VHR-9C7h9k06Qan71UWxYVHIZg",{"id":36740,"title":11769,"body":36741,"date":402,"description":36899,"extension":404,"meta":36900,"navigation":61,"order":77,"path":36901,"seo":36902,"stem":36903,"subject":33314,"tags":36904,"__hash__":36905},"topics/csharp/loops.md",{"type":8,"value":36742,"toc":36896},[36743,36745,36893],[11,36744,11769],{"id":11774},[25,36746,36748],{"className":33312,"code":36747,"language":33314,"meta":30,"style":30},"// For loop\nfor (int i = 0; i \u003C 10; i++)\n{\n    Console.WriteLine(i);\n}\n\n// Foreach loop\nforeach (var item in collection)\n{\n    Console.WriteLine(item);\n}\n\n// While loop\nwhile (condition)\n{\n    // code\n}\n\n// Do-while loop\ndo\n{\n    // code\n} while (condition);\n",[20,36749,36750,36754,36780,36784,36793,36797,36801,36806,36822,36826,36835,36839,36843,36847,36853,36857,36861,36865,36869,36873,36877,36881,36885],{"__ignoreMap":30},[34,36751,36752],{"class":36,"line":37},[34,36753,19195],{"class":40},[34,36755,36756,36758,36760,36762,36764,36766,36768,36770,36772,36774,36776,36778],{"class":36,"line":44},[34,36757,10246],{"class":580},[34,36759,3204],{"class":181},[34,36761,17772],{"class":580},[34,36763,13765],{"class":47},[34,36765,683],{"class":580},[34,36767,8070],{"class":50},[34,36769,18263],{"class":181},[34,36771,815],{"class":580},[34,36773,13123],{"class":50},[34,36775,11918],{"class":181},[34,36777,11928],{"class":580},[34,36779,3372],{"class":181},[34,36781,36782],{"class":36,"line":58},[34,36783,25296],{"class":181},[34,36785,36786,36788,36790],{"class":36,"line":65},[34,36787,34814],{"class":181},[34,36789,34365],{"class":47},[34,36791,36792],{"class":181},"(i);\n",[34,36794,36795],{"class":36,"line":71},[34,36796,693],{"class":181},[34,36798,36799],{"class":36,"line":77},[34,36800,62],{"emptyLinePlaceholder":61},[34,36802,36803],{"class":36,"line":82},[34,36804,36805],{"class":40},"// Foreach loop\n",[34,36807,36808,36811,36813,36815,36817,36819],{"class":36,"line":88},[34,36809,36810],{"class":580},"foreach",[34,36812,3204],{"class":181},[34,36814,34404],{"class":580},[34,36816,33701],{"class":47},[34,36818,36375],{"class":580},[34,36820,36821],{"class":181}," collection)\n",[34,36823,36824],{"class":36,"line":242},[34,36825,25296],{"class":181},[34,36827,36828,36830,36832],{"class":36,"line":250},[34,36829,34814],{"class":181},[34,36831,34365],{"class":47},[34,36833,36834],{"class":181},"(item);\n",[34,36836,36837],{"class":36,"line":263},[34,36838,693],{"class":181},[34,36840,36841],{"class":36,"line":275},[34,36842,62],{"emptyLinePlaceholder":61},[34,36844,36845],{"class":36,"line":700},[34,36846,19081],{"class":40},[34,36848,36849,36851],{"class":36,"line":706},[34,36850,12005],{"class":580},[34,36852,34665],{"class":181},[34,36854,36855],{"class":36,"line":715},[34,36856,25296],{"class":181},[34,36858,36859],{"class":36,"line":725},[34,36860,30642],{"class":40},[34,36862,36863],{"class":36,"line":734},[34,36864,693],{"class":181},[34,36866,36867],{"class":36,"line":742},[34,36868,62],{"emptyLinePlaceholder":61},[34,36870,36871],{"class":36,"line":748},[34,36872,31802],{"class":40},[34,36874,36875],{"class":36,"line":754},[34,36876,10271],{"class":580},[34,36878,36879],{"class":36,"line":759},[34,36880,25296],{"class":181},[34,36882,36883],{"class":36,"line":771},[34,36884,30642],{"class":40},[34,36886,36887,36889,36891],{"class":36,"line":794},[34,36888,2276],{"class":181},[34,36890,12005],{"class":580},[34,36892,31821],{"class":181},[388,36894,36895],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":36897},[36898],{"id":11774,"depth":44,"text":11769},"Loops in C#.",{},"/csharp/loops",{"title":11769,"description":36899},"csharp/loops",[33314,33786,30041,33787],"rZCPU7uUpoBwj9z_XDWjOHPlp7Qa4NRo_PWEt8MbHxw",{"id":36907,"title":36908,"body":36909,"date":402,"description":37283,"extension":404,"meta":37284,"navigation":61,"order":82,"path":37285,"seo":37286,"stem":37287,"subject":33314,"tags":37288,"__hash__":37289},"topics/csharp/methods.md","Methods",{"type":8,"value":36910,"toc":37280},[36911,36914,37278],[11,36912,36908],{"id":36913},"methods",[25,36915,36917],{"className":33312,"code":36916,"language":33314,"meta":30,"style":30},"// Basic method\npublic int Add(int a, int b)\n{\n    return a + b;\n}\n\n// Expression-bodied method\npublic int Multiply(int a, int b) => a * b;\n\n// Optional parameters\npublic void Greet(string name, string greeting = \"Hello\")\n{\n    Console.WriteLine($\"{greeting}, {name}!\");\n}\n\n// Named arguments\nGreet(greeting: \"Hi\", name: \"Alice\");\n\n// Out parameters\npublic bool TryParse(string input, out int result)\n{\n    return int.TryParse(input, out result);\n}\n\n// Params array\npublic int Sum(params int[] numbers)\n{\n    return numbers.Sum();\n}\n\n// Ref parameters\npublic void Swap(ref int a, ref int b)\n{\n    (a, b) = (b, a);\n}\n",[20,36918,36919,36924,36947,36951,36961,36965,36969,36974,37005,37009,37014,37042,37046,37076,37080,37084,37089,37112,37116,37121,37148,37152,37171,37175,37179,37184,37205,37209,37219,37223,37227,37232,37260,37264,37274],{"__ignoreMap":30},[34,36920,36921],{"class":36,"line":37},[34,36922,36923],{"class":40},"// Basic method\n",[34,36925,36926,36928,36930,36933,36935,36937,36939,36941,36943,36945],{"class":36,"line":44},[34,36927,31583],{"class":580},[34,36929,25160],{"class":580},[34,36931,36932],{"class":47}," Add",[34,36934,1607],{"class":181},[34,36936,17772],{"class":580},[34,36938,19385],{"class":47},[34,36940,1798],{"class":181},[34,36942,17772],{"class":580},[34,36944,19392],{"class":47},[34,36946,3372],{"class":181},[34,36948,36949],{"class":36,"line":58},[34,36950,25296],{"class":181},[34,36952,36953,36955,36957,36959],{"class":36,"line":65},[34,36954,1564],{"class":580},[34,36956,8065],{"class":181},[34,36958,2940],{"class":580},[34,36960,8123],{"class":181},[34,36962,36963],{"class":36,"line":71},[34,36964,693],{"class":181},[34,36966,36967],{"class":36,"line":77},[34,36968,62],{"emptyLinePlaceholder":61},[34,36970,36971],{"class":36,"line":82},[34,36972,36973],{"class":40},"// Expression-bodied method\n",[34,36975,36976,36978,36980,36983,36985,36987,36989,36991,36993,36995,36997,36999,37001,37003],{"class":36,"line":88},[34,36977,31583],{"class":580},[34,36979,25160],{"class":580},[34,36981,36982],{"class":47}," Multiply",[34,36984,1607],{"class":181},[34,36986,17772],{"class":580},[34,36988,19385],{"class":47},[34,36990,1798],{"class":181},[34,36992,17772],{"class":580},[34,36994,19392],{"class":47},[34,36996,4817],{"class":181},[34,36998,3361],{"class":580},[34,37000,8065],{"class":181},[34,37002,4289],{"class":580},[34,37004,8123],{"class":181},[34,37006,37007],{"class":36,"line":242},[34,37008,62],{"emptyLinePlaceholder":61},[34,37010,37011],{"class":36,"line":250},[34,37012,37013],{"class":40},"// Optional parameters\n",[34,37015,37016,37018,37020,37023,37025,37027,37029,37031,37033,37036,37038,37040],{"class":36,"line":263},[34,37017,31583],{"class":580},[34,37019,31514],{"class":580},[34,37021,37022],{"class":47}," Greet",[34,37024,1607],{"class":181},[34,37026,30113],{"class":580},[34,37028,12323],{"class":47},[34,37030,1798],{"class":181},[34,37032,30113],{"class":580},[34,37034,37035],{"class":47}," greeting",[34,37037,683],{"class":580},[34,37039,24377],{"class":54},[34,37041,3372],{"class":181},[34,37043,37044],{"class":36,"line":275},[34,37045,25296],{"class":181},[34,37047,37048,37050,37052,37054,37057,37059,37061,37063,37065,37067,37069,37071,37074],{"class":36,"line":700},[34,37049,34814],{"class":181},[34,37051,34365],{"class":47},[34,37053,1607],{"class":181},[34,37055,37056],{"class":54},"$\"",[34,37058,13990],{"class":54},[34,37060,13861],{"class":181},[34,37062,34378],{"class":54},[34,37064,1798],{"class":54},[34,37066,13990],{"class":54},[34,37068,178],{"class":181},[34,37070,34378],{"class":54},[34,37072,37073],{"class":54},"!\"",[34,37075,1586],{"class":181},[34,37077,37078],{"class":36,"line":706},[34,37079,693],{"class":181},[34,37081,37082],{"class":36,"line":715},[34,37083,62],{"emptyLinePlaceholder":61},[34,37085,37086],{"class":36,"line":725},[34,37087,37088],{"class":40},"// Named arguments\n",[34,37090,37091,37094,37096,37098,37100,37102,37104,37106,37108,37110],{"class":36,"line":734},[34,37092,37093],{"class":47},"Greet",[34,37095,1607],{"class":181},[34,37097,13861],{"class":47},[34,37099,182],{"class":181},[34,37101,32607],{"class":54},[34,37103,1798],{"class":181},[34,37105,178],{"class":47},[34,37107,182],{"class":181},[34,37109,21650],{"class":54},[34,37111,1586],{"class":181},[34,37113,37114],{"class":36,"line":742},[34,37115,62],{"emptyLinePlaceholder":61},[34,37117,37118],{"class":36,"line":748},[34,37119,37120],{"class":40},"// Out parameters\n",[34,37122,37123,37125,37128,37131,37133,37135,37138,37140,37142,37144,37146],{"class":36,"line":754},[34,37124,31583],{"class":580},[34,37126,37127],{"class":580}," bool",[34,37129,37130],{"class":47}," TryParse",[34,37132,1607],{"class":181},[34,37134,30113],{"class":580},[34,37136,37137],{"class":47}," input",[34,37139,1798],{"class":181},[34,37141,33588],{"class":580},[34,37143,25160],{"class":580},[34,37145,11103],{"class":47},[34,37147,3372],{"class":181},[34,37149,37150],{"class":36,"line":759},[34,37151,25296],{"class":181},[34,37153,37154,37156,37158,37160,37163,37166,37168],{"class":36,"line":771},[34,37155,1564],{"class":580},[34,37157,25160],{"class":580},[34,37159,151],{"class":181},[34,37161,37162],{"class":47},"TryParse",[34,37164,37165],{"class":181},"(input, ",[34,37167,33588],{"class":580},[34,37169,37170],{"class":181}," result);\n",[34,37172,37173],{"class":36,"line":794},[34,37174,693],{"class":181},[34,37176,37177],{"class":36,"line":824},[34,37178,62],{"emptyLinePlaceholder":61},[34,37180,37181],{"class":36,"line":830},[34,37182,37183],{"class":40},"// Params array\n",[34,37185,37186,37188,37190,37193,37195,37197,37199,37201,37203],{"class":36,"line":839},[34,37187,31583],{"class":580},[34,37189,25160],{"class":580},[34,37191,37192],{"class":47}," Sum",[34,37194,1607],{"class":181},[34,37196,3635],{"class":580},[34,37198,25160],{"class":580},[34,37200,4063],{"class":181},[34,37202,33330],{"class":47},[34,37204,3372],{"class":181},[34,37206,37207],{"class":36,"line":854},[34,37208,25296],{"class":181},[34,37210,37211,37213,37215,37217],{"class":36,"line":860},[34,37212,1564],{"class":580},[34,37214,36423],{"class":181},[34,37216,36635],{"class":47},[34,37218,851],{"class":181},[34,37220,37221],{"class":36,"line":865},[34,37222,693],{"class":181},[34,37224,37225],{"class":36,"line":870},[34,37226,62],{"emptyLinePlaceholder":61},[34,37228,37229],{"class":36,"line":876},[34,37230,37231],{"class":40},"// Ref parameters\n",[34,37233,37234,37236,37238,37241,37243,37246,37248,37250,37252,37254,37256,37258],{"class":36,"line":885},[34,37235,31583],{"class":580},[34,37237,31514],{"class":580},[34,37239,37240],{"class":47}," Swap",[34,37242,1607],{"class":181},[34,37244,37245],{"class":580},"ref",[34,37247,25160],{"class":580},[34,37249,19385],{"class":47},[34,37251,1798],{"class":181},[34,37253,37245],{"class":580},[34,37255,25160],{"class":580},[34,37257,19392],{"class":47},[34,37259,3372],{"class":181},[34,37261,37262],{"class":36,"line":895},[34,37263,25296],{"class":181},[34,37265,37266,37269,37271],{"class":36,"line":904},[34,37267,37268],{"class":181},"    (a, b) ",[34,37270,1301],{"class":580},[34,37272,37273],{"class":181}," (b, a);\n",[34,37275,37276],{"class":36,"line":915},[34,37277,693],{"class":181},[388,37279,35749],{},{"title":30,"searchDepth":44,"depth":44,"links":37281},[37282],{"id":36913,"depth":44,"text":36908},"Methods in C#.",{},"/csharp/methods",{"title":36908,"description":37283},"csharp/methods",[33314,33786,30041,33787],"R5bZW8oT60B5noIB2MfuL0IMoeO2ysxYrH7u2fijfGc",{"id":37291,"title":37292,"body":37293,"date":402,"description":37470,"extension":404,"meta":37471,"navigation":61,"order":706,"path":37472,"seo":37473,"stem":37474,"subject":33314,"tags":37475,"__hash__":37476},"topics/csharp/null-handling.md","Null Handling",{"type":8,"value":37294,"toc":37467},[37295,37298,37464],[11,37296,37292],{"id":37297},"null-handling",[25,37299,37301],{"className":33312,"code":37300,"language":33314,"meta":30,"style":30},"// Null-conditional operator\nstring? name = person?.Name;\nint? length = name?.Length;\n\n// Null-coalescing operator\nstring displayName = name ?? \"Unknown\";\n\n// Null-coalescing assignment\nname ??= \"Default\";\n\n// Null-forgiving operator\nstring definitelyNotNull = maybeNull!;\n\n// Required members (C# 11+)\npublic class Person\n{\n    public required string Name { get; init; }\n}\n",[20,37302,37303,37308,37326,37343,37347,37352,37370,37374,37379,37392,37396,37401,37417,37421,37426,37434,37438,37460],{"__ignoreMap":30},[34,37304,37305],{"class":36,"line":37},[34,37306,37307],{"class":40},"// Null-conditional operator\n",[34,37309,37310,37312,37315,37317,37319,37321,37323],{"class":36,"line":44},[34,37311,30113],{"class":580},[34,37313,37314],{"class":181},"? ",[34,37316,178],{"class":47},[34,37318,683],{"class":580},[34,37320,34407],{"class":181},[34,37322,18954],{"class":580},[34,37324,37325],{"class":181},".Name;\n",[34,37327,37328,37330,37332,37334,37336,37338,37340],{"class":36,"line":58},[34,37329,17772],{"class":580},[34,37331,37314],{"class":181},[34,37333,2908],{"class":47},[34,37335,683],{"class":580},[34,37337,12323],{"class":181},[34,37339,18954],{"class":580},[34,37341,37342],{"class":181},".Length;\n",[34,37344,37345],{"class":36,"line":65},[34,37346,62],{"emptyLinePlaceholder":61},[34,37348,37349],{"class":36,"line":71},[34,37350,37351],{"class":40},"// Null-coalescing operator\n",[34,37353,37354,37356,37359,37361,37363,37365,37368],{"class":36,"line":77},[34,37355,30113],{"class":580},[34,37357,37358],{"class":47}," displayName",[34,37360,683],{"class":580},[34,37362,30212],{"class":181},[34,37364,34195],{"class":580},[34,37366,37367],{"class":54}," \"Unknown\"",[34,37369,593],{"class":181},[34,37371,37372],{"class":36,"line":82},[34,37373,62],{"emptyLinePlaceholder":61},[34,37375,37376],{"class":36,"line":88},[34,37377,37378],{"class":40},"// Null-coalescing assignment\n",[34,37380,37381,37384,37387,37390],{"class":36,"line":242},[34,37382,37383],{"class":181},"name ",[34,37385,37386],{"class":580},"??=",[34,37388,37389],{"class":54}," \"Default\"",[34,37391,593],{"class":181},[34,37393,37394],{"class":36,"line":250},[34,37395,62],{"emptyLinePlaceholder":61},[34,37397,37398],{"class":36,"line":263},[34,37399,37400],{"class":40},"// Null-forgiving operator\n",[34,37402,37403,37405,37408,37410,37413,37415],{"class":36,"line":275},[34,37404,30113],{"class":580},[34,37406,37407],{"class":47}," definitelyNotNull",[34,37409,683],{"class":580},[34,37411,37412],{"class":181}," maybeNull",[34,37414,10307],{"class":580},[34,37416,593],{"class":181},[34,37418,37419],{"class":36,"line":700},[34,37420,62],{"emptyLinePlaceholder":61},[34,37422,37423],{"class":36,"line":706},[34,37424,37425],{"class":40},"// Required members (C# 11+)\n",[34,37427,37428,37430,37432],{"class":36,"line":715},[34,37429,31583],{"class":580},[34,37431,655],{"class":580},[34,37433,34124],{"class":47},[34,37435,37436],{"class":36,"line":725},[34,37437,25296],{"class":181},[34,37439,37440,37442,37445,37447,37449,37451,37453,37455,37458],{"class":36,"line":734},[34,37441,34159],{"class":580},[34,37443,37444],{"class":580}," required",[34,37446,680],{"class":580},[34,37448,34584],{"class":47},[34,37450,30251],{"class":181},[34,37452,1573],{"class":580},[34,37454,10268],{"class":181},[34,37456,37457],{"class":580},"init",[34,37459,34238],{"class":181},[34,37461,37462],{"class":36,"line":742},[34,37463,693],{"class":181},[388,37465,37466],{},"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 .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);}",{"title":30,"searchDepth":44,"depth":44,"links":37468},[37469],{"id":37297,"depth":44,"text":37292},"Null Handling in C#.",{},"/csharp/null-handling",{"title":37292,"description":37470},"csharp/null-handling",[33314,33786,30041,33787],"mlFkMbMj71AiB_eywCQ3IhSLTd_x2kQQSCc7DzQOkgg",{"id":37478,"title":37479,"body":37480,"date":2633,"description":37558,"extension":404,"meta":37559,"navigation":61,"order":37,"path":37560,"seo":37561,"stem":37562,"subject":33314,"tags":37563,"__hash__":37564},"topics/csharp/overview.md","C#",{"type":8,"value":37481,"toc":37556},[37482],[309,37483,37484,37489,37494,37498,37502,37506,37510,37514,37520,37524,37528,37532,37536,37540,37544,37548,37552],{},[312,37485,37486],{},[145,37487,32171],{"href":37488},"/csharp/variables-data-types",[312,37490,37491],{},[145,37492,23101],{"href":37493},"/csharp/strings",[312,37495,37496],{},[145,37497,33304],{"href":33782},[312,37499,37500],{},[145,37501,18818],{"href":34934},[312,37503,37504],{},[145,37505,11769],{"href":36901},[312,37507,37508],{},[145,37509,36908],{"href":37285},[312,37511,37512],{},[145,37513,30045],{"href":34462},[312,37515,37516],{},[145,37517,37519],{"href":37518},"/csharp/records-c-9","Records (C# 9+)",[312,37521,37522],{},[145,37523,35991],{"href":36274},[312,37525,37526],{},[145,37527,36281],{"href":36734},[312,37529,37530],{},[145,37531,33791],{"href":34095},[312,37533,37534],{},[145,37535,30787],{"href":35505},[312,37537,37538],{},[145,37539,37292],{"href":37472},[312,37541,37542],{},[145,37543,26423],{"href":35984},[312,37545,37546],{},[145,37547,34941],{"href":35232},[312,37549,37550],{},[145,37551,21267],{"href":35755},[312,37553,37554],{},[145,37555,34469],{"href":34639},{"title":30,"searchDepth":44,"depth":44,"links":37557},[],"Essential C# syntax, features, and best practices for .NET development.",{},"/csharp/overview",{"title":37479,"description":37558},"csharp/overview",[33314,33786,30041,33787],"oiUK7UVExPpKsgMTNlFxQj2fm-y0pql2lW32RrK8A9g",{"id":37566,"title":37519,"body":37567,"date":402,"description":37701,"extension":404,"meta":37702,"navigation":61,"order":242,"path":37518,"seo":37703,"stem":37704,"subject":33314,"tags":37705,"__hash__":37706},"topics/csharp/records-c-9.md",{"type":8,"value":37568,"toc":37698},[37569,37572,37696],[11,37570,37519],{"id":37571},"records-c-9",[25,37573,37575],{"className":33312,"code":37574,"language":33314,"meta":30,"style":30},"// Record for immutable data\npublic record Person(string Name, int Age);\n\n// With expression for copying with modifications\nvar person = new Person(\"Alice\", 30);\nvar older = person with { Age = 31 };\n\n// Record struct (C# 10+)\npublic record struct Point(int X, int Y);\n",[20,37576,37577,37582,37605,37609,37614,37636,37660,37664,37669],{"__ignoreMap":30},[34,37578,37579],{"class":36,"line":37},[34,37580,37581],{"class":40},"// Record for immutable data\n",[34,37583,37584,37586,37589,37591,37593,37595,37597,37599,37601,37603],{"class":36,"line":44},[34,37585,31583],{"class":580},[34,37587,37588],{"class":580}," record",[34,37590,30063],{"class":47},[34,37592,1607],{"class":181},[34,37594,30113],{"class":580},[34,37596,34584],{"class":47},[34,37598,1798],{"class":181},[34,37600,17772],{"class":580},[34,37602,34227],{"class":47},[34,37604,1586],{"class":181},[34,37606,37607],{"class":36,"line":58},[34,37608,62],{"emptyLinePlaceholder":61},[34,37610,37611],{"class":36,"line":65},[34,37612,37613],{"class":40},"// With expression for copying with modifications\n",[34,37615,37616,37618,37620,37622,37624,37626,37628,37630,37632,37634],{"class":36,"line":71},[34,37617,34404],{"class":580},[34,37619,34407],{"class":47},[34,37621,683],{"class":580},[34,37623,809],{"class":580},[34,37625,30063],{"class":47},[34,37627,1607],{"class":181},[34,37629,21650],{"class":54},[34,37631,1798],{"class":181},[34,37633,17625],{"class":50},[34,37635,1586],{"class":181},[34,37637,37638,37640,37643,37645,37648,37651,37654,37656,37658],{"class":36,"line":77},[34,37639,34404],{"class":580},[34,37641,37642],{"class":47}," older",[34,37644,683],{"class":580},[34,37646,37647],{"class":181}," person ",[34,37649,37650],{"class":580},"with",[34,37652,37653],{"class":181}," { Age ",[34,37655,1301],{"class":580},[34,37657,24813],{"class":50},[34,37659,33355],{"class":181},[34,37661,37662],{"class":36,"line":82},[34,37663,62],{"emptyLinePlaceholder":61},[34,37665,37666],{"class":36,"line":88},[34,37667,37668],{"class":40},"// Record struct (C# 10+)\n",[34,37670,37671,37673,37675,37677,37680,37682,37684,37687,37689,37691,37694],{"class":36,"line":242},[34,37672,31583],{"class":580},[34,37674,37588],{"class":580},[34,37676,18332],{"class":580},[34,37678,37679],{"class":47}," Point",[34,37681,1607],{"class":181},[34,37683,17772],{"class":580},[34,37685,37686],{"class":47}," X",[34,37688,1798],{"class":181},[34,37690,17772],{"class":580},[34,37692,37693],{"class":47}," Y",[34,37695,1586],{"class":181},[388,37697,34089],{},{"title":30,"searchDepth":44,"depth":44,"links":37699},[37700],{"id":37571,"depth":44,"text":37519},"Records (C# 9+) in C#.",{},{"title":37519,"description":37701},"csharp/records-c-9",[33314,33786,30041,33787],"hVGtNVhPhRGlICgUYgLNnjg5_cO8C7CKHJ0kYThoWr8",{"id":37708,"title":23101,"body":37709,"date":402,"description":37959,"extension":404,"meta":37960,"navigation":61,"order":58,"path":37493,"seo":37961,"stem":37962,"subject":33314,"tags":37963,"__hash__":37964},"topics/csharp/strings.md",{"type":8,"value":37710,"toc":37956},[37711,37713,37953],[11,37712,23101],{"id":24353},[25,37714,37716],{"className":33312,"code":37715,"language":33314,"meta":30,"style":30},"// String interpolation\nstring name = \"World\";\nstring greeting = $\"Hello, {name}!\";\n\n// Verbatim strings (ignore escape sequences)\nstring path = @\"C:\\Users\\Documents\";\n\n// Raw string literals (C# 11+)\nstring json = \"\"\"\n    {\n        \"name\": \"John\",\n        \"age\": 30\n    }\n    \"\"\";\n\n// Common string methods\nstring text = \"Hello World\";\ntext.ToUpper();          // \"HELLO WORLD\"\ntext.ToLower();          // \"hello world\"\ntext.Trim();             // Remove whitespace\ntext.Split(' ');         // [\"Hello\", \"World\"]\ntext.Contains(\"World\");  // true\ntext.Replace(\"World\", \"C#\");\ntext.Substring(0, 5);    // \"Hello\"\n",[20,37717,37718,37723,37735,37756,37760,37765,37779,37783,37788,37799,37803,37808,37813,37817,37824,37828,37833,37846,37859,37871,37884,37901,37915,37933],{"__ignoreMap":30},[34,37719,37720],{"class":36,"line":37},[34,37721,37722],{"class":40},"// String interpolation\n",[34,37724,37725,37727,37729,37731,37733],{"class":36,"line":44},[34,37726,30113],{"class":580},[34,37728,12323],{"class":47},[34,37730,683],{"class":580},[34,37732,13876],{"class":54},[34,37734,593],{"class":181},[34,37736,37737,37739,37741,37743,37746,37748,37750,37752,37754],{"class":36,"line":58},[34,37738,30113],{"class":580},[34,37740,37035],{"class":47},[34,37742,683],{"class":580},[34,37744,37745],{"class":54}," $\"Hello, ",[34,37747,13990],{"class":54},[34,37749,178],{"class":181},[34,37751,34378],{"class":54},[34,37753,37073],{"class":54},[34,37755,593],{"class":181},[34,37757,37758],{"class":36,"line":65},[34,37759,62],{"emptyLinePlaceholder":61},[34,37761,37762],{"class":36,"line":71},[34,37763,37764],{"class":40},"// Verbatim strings (ignore escape sequences)\n",[34,37766,37767,37769,37772,37774,37777],{"class":36,"line":77},[34,37768,30113],{"class":580},[34,37770,37771],{"class":47}," path",[34,37773,683],{"class":580},[34,37775,37776],{"class":54}," @\"C:\\Users\\Documents\"",[34,37778,593],{"class":181},[34,37780,37781],{"class":36,"line":82},[34,37782,62],{"emptyLinePlaceholder":61},[34,37784,37785],{"class":36,"line":88},[34,37786,37787],{"class":40},"// Raw string literals (C# 11+)\n",[34,37789,37790,37792,37794,37796],{"class":36,"line":242},[34,37791,30113],{"class":580},[34,37793,9231],{"class":47},[34,37795,683],{"class":580},[34,37797,37798],{"class":54}," \"\"\"\n",[34,37800,37801],{"class":36,"line":250},[34,37802,25561],{"class":54},[34,37804,37805],{"class":36,"line":263},[34,37806,37807],{"class":54},"        \"name\": \"John\",\n",[34,37809,37810],{"class":36,"line":275},[34,37811,37812],{"class":54},"        \"age\": 30\n",[34,37814,37815],{"class":36,"line":700},[34,37816,3229],{"class":54},[34,37818,37819,37822],{"class":36,"line":706},[34,37820,37821],{"class":54},"    \"\"\"",[34,37823,593],{"class":181},[34,37825,37826],{"class":36,"line":715},[34,37827,62],{"emptyLinePlaceholder":61},[34,37829,37830],{"class":36,"line":725},[34,37831,37832],{"class":40},"// Common string methods\n",[34,37834,37835,37837,37839,37841,37844],{"class":36,"line":734},[34,37836,30113],{"class":580},[34,37838,9006],{"class":47},[34,37840,683],{"class":580},[34,37842,37843],{"class":54}," \"Hello World\"",[34,37845,593],{"class":181},[34,37847,37848,37851,37854,37856],{"class":36,"line":742},[34,37849,37850],{"class":181},"text.",[34,37852,37853],{"class":47},"ToUpper",[34,37855,15289],{"class":181},[34,37857,37858],{"class":40},"// \"HELLO WORLD\"\n",[34,37860,37861,37863,37866,37868],{"class":36,"line":748},[34,37862,37850],{"class":181},[34,37864,37865],{"class":47},"ToLower",[34,37867,15289],{"class":181},[34,37869,37870],{"class":40},"// \"hello world\"\n",[34,37872,37873,37875,37878,37881],{"class":36,"line":754},[34,37874,37850],{"class":181},[34,37876,37877],{"class":47},"Trim",[34,37879,37880],{"class":181},"();             ",[34,37882,37883],{"class":40},"// Remove whitespace\n",[34,37885,37886,37888,37891,37893,37896,37898],{"class":36,"line":759},[34,37887,37850],{"class":181},[34,37889,37890],{"class":47},"Split",[34,37892,1607],{"class":181},[34,37894,37895],{"class":54},"' '",[34,37897,36676],{"class":181},[34,37899,37900],{"class":40},"// [\"Hello\", \"World\"]\n",[34,37902,37903,37905,37907,37909,37911,37913],{"class":36,"line":771},[34,37904,37850],{"class":181},[34,37906,33482],{"class":47},[34,37908,1607],{"class":181},[34,37910,32477],{"class":54},[34,37912,33489],{"class":181},[34,37914,33492],{"class":40},[34,37916,37917,37919,37922,37924,37926,37928,37931],{"class":36,"line":794},[34,37918,37850],{"class":181},[34,37920,37921],{"class":47},"Replace",[34,37923,1607],{"class":181},[34,37925,32477],{"class":54},[34,37927,1798],{"class":181},[34,37929,37930],{"class":54},"\"C#\"",[34,37932,1586],{"class":181},[34,37934,37935,37937,37940,37942,37944,37946,37948,37950],{"class":36,"line":824},[34,37936,37850],{"class":181},[34,37938,37939],{"class":47},"Substring",[34,37941,1607],{"class":181},[34,37943,2773],{"class":50},[34,37945,1798],{"class":181},[34,37947,2778],{"class":50},[34,37949,15307],{"class":181},[34,37951,37952],{"class":40},"// \"Hello\"\n",[388,37954,37955],{},"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 .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":30,"searchDepth":44,"depth":44,"links":37957},[37958],{"id":24353,"depth":44,"text":23101},"Strings in C#.",{},{"title":23101,"description":37959},"csharp/strings",[33314,33786,30041,33787],"yy--VRwOUzuzVqad-AjjKqaj7jjUJwdTFEaNX1g_9X8",{"id":37966,"title":32171,"body":37967,"date":402,"description":38176,"extension":404,"meta":38177,"navigation":61,"order":44,"path":37488,"seo":38178,"stem":38179,"subject":33314,"tags":38180,"__hash__":38181},"topics/csharp/variables-data-types.md",{"type":8,"value":37968,"toc":38173},[37969,37971,38170],[11,37970,32171],{"id":32868},[25,37972,37974],{"className":33312,"code":37973,"language":33314,"meta":30,"style":30},"// Value types\nint number = 42;\ndouble price = 19.99;\nbool isActive = true;\nchar letter = 'A';\ndecimal money = 100.50m;\n\n// Reference types\nstring name = \"Hello\";\nobject obj = new object();\n\n// Nullable types\nint? nullableInt = null;\n\n// Type inference\nvar message = \"Inferred as string\";\n\n// Constants\nconst double PI = 3.14159;\nreadonly string readOnlyField = \"Can only be set in constructor\";\n",[20,37975,37976,37981,37993,38006,38019,38032,38047,38051,38056,38068,38085,38089,38094,38109,38113,38118,38131,38135,38139,38153],{"__ignoreMap":30},[34,37977,37978],{"class":36,"line":37},[34,37979,37980],{"class":40},"// Value types\n",[34,37982,37983,37985,37987,37989,37991],{"class":36,"line":44},[34,37984,17772],{"class":580},[34,37986,2741],{"class":47},[34,37988,683],{"class":580},[34,37990,19987],{"class":50},[34,37992,593],{"class":181},[34,37994,37995,37997,38000,38002,38004],{"class":36,"line":58},[34,37996,25097],{"class":580},[34,37998,37999],{"class":47}," price",[34,38001,683],{"class":580},[34,38003,25087],{"class":50},[34,38005,593],{"class":181},[34,38007,38008,38010,38013,38015,38017],{"class":36,"line":65},[34,38009,32937],{"class":580},[34,38011,38012],{"class":47}," isActive",[34,38014,683],{"class":580},[34,38016,32945],{"class":50},[34,38018,593],{"class":181},[34,38020,38021,38023,38026,38028,38030],{"class":36,"line":71},[34,38022,18236],{"class":580},[34,38024,38025],{"class":47}," letter",[34,38027,683],{"class":580},[34,38029,18989],{"class":54},[34,38031,593],{"class":181},[34,38033,38034,38037,38040,38042,38045],{"class":36,"line":77},[34,38035,38036],{"class":580},"decimal",[34,38038,38039],{"class":47}," money",[34,38041,683],{"class":580},[34,38043,38044],{"class":50}," 100.50m",[34,38046,593],{"class":181},[34,38048,38049],{"class":36,"line":82},[34,38050,62],{"emptyLinePlaceholder":61},[34,38052,38053],{"class":36,"line":88},[34,38054,38055],{"class":40},"// Reference types\n",[34,38057,38058,38060,38062,38064,38066],{"class":36,"line":242},[34,38059,30113],{"class":580},[34,38061,12323],{"class":47},[34,38063,683],{"class":580},[34,38065,24377],{"class":54},[34,38067,593],{"class":181},[34,38069,38070,38073,38076,38078,38080,38083],{"class":36,"line":250},[34,38071,38072],{"class":580},"object",[34,38074,38075],{"class":47}," obj",[34,38077,683],{"class":580},[34,38079,809],{"class":580},[34,38081,38082],{"class":580}," object",[34,38084,851],{"class":181},[34,38086,38087],{"class":36,"line":263},[34,38088,62],{"emptyLinePlaceholder":61},[34,38090,38091],{"class":36,"line":275},[34,38092,38093],{"class":40},"// Nullable types\n",[34,38095,38096,38098,38100,38103,38105,38107],{"class":36,"line":700},[34,38097,17772],{"class":580},[34,38099,37314],{"class":181},[34,38101,38102],{"class":47},"nullableInt",[34,38104,683],{"class":580},[34,38106,13898],{"class":50},[34,38108,593],{"class":181},[34,38110,38111],{"class":36,"line":706},[34,38112,62],{"emptyLinePlaceholder":61},[34,38114,38115],{"class":36,"line":715},[34,38116,38117],{"class":40},"// Type inference\n",[34,38119,38120,38122,38124,38126,38129],{"class":36,"line":725},[34,38121,34404],{"class":580},[34,38123,34839],{"class":47},[34,38125,683],{"class":580},[34,38127,38128],{"class":54}," \"Inferred as string\"",[34,38130,593],{"class":181},[34,38132,38133],{"class":36,"line":734},[34,38134,62],{"emptyLinePlaceholder":61},[34,38136,38137],{"class":36,"line":742},[34,38138,32996],{"class":40},[34,38140,38141,38143,38145,38147,38149,38151],{"class":36,"line":748},[34,38142,14676],{"class":580},[34,38144,36081],{"class":580},[34,38146,23601],{"class":47},[34,38148,683],{"class":580},[34,38150,23604],{"class":50},[34,38152,593],{"class":181},[34,38154,38155,38158,38160,38163,38165,38168],{"class":36,"line":754},[34,38156,38157],{"class":580},"readonly",[34,38159,680],{"class":580},[34,38161,38162],{"class":47}," readOnlyField",[34,38164,683],{"class":580},[34,38166,38167],{"class":54}," \"Can only be set in constructor\"",[34,38169,593],{"class":181},[388,38171,38172],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .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":30,"searchDepth":44,"depth":44,"links":38174},[38175],{"id":32868,"depth":44,"text":32171},"Variables & Data Types in C#.",{},{"title":32171,"description":38176},"csharp/variables-data-types",[33314,33786,30041,33787],"1uO9xx2cWaGajFDIcD3iaPTawIt9Z1XajZFD_Mw4czk",{"id":38183,"title":38184,"body":38185,"date":402,"description":38609,"extension":404,"meta":38610,"navigation":61,"order":65,"path":38611,"seo":38612,"stem":38613,"subject":38194,"tags":38614,"__hash__":38617},"topics/css/box-model.md","Box Model",{"type":8,"value":38186,"toc":38606},[38187,38190,38603],[11,38188,38184],{"id":38189},"box-model",[25,38191,38195],{"className":38192,"code":38193,"language":38194,"meta":30,"style":30},"language-css shiki shiki-themes github-light github-dark",".box {\n  /* Content dimensions */\n  width: 300px;\n  height: 200px;\n  min-width: 100px;\n  max-width: 500px;\n\n  /* Padding (inside border) */\n  padding: 10px;                    /* all sides */\n  padding: 10px 20px;               /* vertical | horizontal */\n  padding: 10px 20px 15px 25px;     /* top | right | bottom | left */\n\n  /* Logical properties (adapt to writing direction) */\n  padding-inline: 1rem;             /* left and right (horizontal languages) */\n  padding-block: 1rem;              /* top and bottom */\n  padding-inline-start: 1rem;       /* left in LTR, right in RTL */\n  padding-inline-end: 1rem;         /* right in LTR, left in RTL */\n  margin-inline: auto;              /* center horizontally */\n  margin-block: 2rem;\n  inset-inline: 0;                  /* left: 0; right: 0; */\n  inset-block: 0;                   /* top: 0; bottom: 0; */\n  inline-size: 100%;                /* width in horizontal writing mode */\n  block-size: 50vh;                 /* height in horizontal writing mode */\n\n  /* Border */\n  border: 1px solid black;\n  border-radius: 8px;\n\n  /* Margin (outside border) */\n  margin: 0 auto;                   /* center horizontally */\n\n  /* Box sizing */\n  box-sizing: border-box;           /* include padding/border in width */\n}\n","css",[20,38196,38197,38204,38209,38223,38236,38249,38263,38267,38272,38289,38309,38338,38342,38347,38365,38382,38399,38416,38430,38443,38458,38473,38490,38508,38512,38517,38536,38549,38553,38558,38574,38578,38583,38599],{"__ignoreMap":30},[34,38198,38199,38202],{"class":36,"line":37},[34,38200,38201],{"class":47},".box",[34,38203,661],{"class":181},[34,38205,38206],{"class":36,"line":44},[34,38207,38208],{"class":40},"  /* Content dimensions */\n",[34,38210,38211,38214,38216,38218,38221],{"class":36,"line":58},[34,38212,38213],{"class":50},"  width",[34,38215,182],{"class":181},[34,38217,20934],{"class":50},[34,38219,38220],{"class":580},"px",[34,38222,593],{"class":181},[34,38224,38225,38228,38230,38232,38234],{"class":36,"line":65},[34,38226,38227],{"class":50},"  height",[34,38229,182],{"class":181},[34,38231,20899],{"class":50},[34,38233,38220],{"class":580},[34,38235,593],{"class":181},[34,38237,38238,38241,38243,38245,38247],{"class":36,"line":71},[34,38239,38240],{"class":50},"  min-width",[34,38242,182],{"class":181},[34,38244,20863],{"class":50},[34,38246,38220],{"class":580},[34,38248,593],{"class":181},[34,38250,38251,38254,38256,38259,38261],{"class":36,"line":77},[34,38252,38253],{"class":50},"  max-width",[34,38255,182],{"class":181},[34,38257,38258],{"class":50},"500",[34,38260,38220],{"class":580},[34,38262,593],{"class":181},[34,38264,38265],{"class":36,"line":82},[34,38266,62],{"emptyLinePlaceholder":61},[34,38268,38269],{"class":36,"line":88},[34,38270,38271],{"class":40},"  /* Padding (inside border) */\n",[34,38273,38274,38277,38279,38281,38283,38286],{"class":36,"line":242},[34,38275,38276],{"class":50},"  padding",[34,38278,182],{"class":181},[34,38280,11923],{"class":50},[34,38282,38220],{"class":580},[34,38284,38285],{"class":181},";                    ",[34,38287,38288],{"class":40},"/* all sides */\n",[34,38290,38291,38293,38295,38297,38299,38301,38303,38306],{"class":36,"line":250},[34,38292,38276],{"class":50},[34,38294,182],{"class":181},[34,38296,11923],{"class":50},[34,38298,38220],{"class":580},[34,38300,22419],{"class":50},[34,38302,38220],{"class":580},[34,38304,38305],{"class":181},";               ",[34,38307,38308],{"class":40},"/* vertical | horizontal */\n",[34,38310,38311,38313,38315,38317,38319,38321,38323,38326,38328,38330,38332,38335],{"class":36,"line":263},[34,38312,38276],{"class":50},[34,38314,182],{"class":181},[34,38316,11923],{"class":50},[34,38318,38220],{"class":580},[34,38320,22419],{"class":50},[34,38322,38220],{"class":580},[34,38324,38325],{"class":50}," 15",[34,38327,38220],{"class":580},[34,38329,24763],{"class":50},[34,38331,38220],{"class":580},[34,38333,38334],{"class":181},";     ",[34,38336,38337],{"class":40},"/* top | right | bottom | left */\n",[34,38339,38340],{"class":36,"line":275},[34,38341,62],{"emptyLinePlaceholder":61},[34,38343,38344],{"class":36,"line":700},[34,38345,38346],{"class":40},"  /* Logical properties (adapt to writing direction) */\n",[34,38348,38349,38352,38354,38356,38359,38362],{"class":36,"line":706},[34,38350,38351],{"class":50},"  padding-inline",[34,38353,182],{"class":181},[34,38355,8318],{"class":50},[34,38357,38358],{"class":580},"rem",[34,38360,38361],{"class":181},";             ",[34,38363,38364],{"class":40},"/* left and right (horizontal languages) */\n",[34,38366,38367,38370,38372,38374,38376,38379],{"class":36,"line":715},[34,38368,38369],{"class":50},"  padding-block",[34,38371,182],{"class":181},[34,38373,8318],{"class":50},[34,38375,38358],{"class":580},[34,38377,38378],{"class":181},";              ",[34,38380,38381],{"class":40},"/* top and bottom */\n",[34,38383,38384,38387,38389,38391,38393,38396],{"class":36,"line":725},[34,38385,38386],{"class":50},"  padding-inline-start",[34,38388,182],{"class":181},[34,38390,8318],{"class":50},[34,38392,38358],{"class":580},[34,38394,38395],{"class":181},";       ",[34,38397,38398],{"class":40},"/* left in LTR, right in RTL */\n",[34,38400,38401,38404,38406,38408,38410,38413],{"class":36,"line":734},[34,38402,38403],{"class":50},"  padding-inline-end",[34,38405,182],{"class":181},[34,38407,8318],{"class":50},[34,38409,38358],{"class":580},[34,38411,38412],{"class":181},";         ",[34,38414,38415],{"class":40},"/* right in LTR, left in RTL */\n",[34,38417,38418,38421,38423,38425,38427],{"class":36,"line":742},[34,38419,38420],{"class":50},"  margin-inline",[34,38422,182],{"class":181},[34,38424,31371],{"class":50},[34,38426,38378],{"class":181},[34,38428,38429],{"class":40},"/* center horizontally */\n",[34,38431,38432,38435,38437,38439,38441],{"class":36,"line":748},[34,38433,38434],{"class":50},"  margin-block",[34,38436,182],{"class":181},[34,38438,8324],{"class":50},[34,38440,38358],{"class":580},[34,38442,593],{"class":181},[34,38444,38445,38448,38450,38452,38455],{"class":36,"line":754},[34,38446,38447],{"class":50},"  inset-inline",[34,38449,182],{"class":181},[34,38451,2773],{"class":50},[34,38453,38454],{"class":181},";                  ",[34,38456,38457],{"class":40},"/* left: 0; right: 0; */\n",[34,38459,38460,38463,38465,38467,38470],{"class":36,"line":759},[34,38461,38462],{"class":50},"  inset-block",[34,38464,182],{"class":181},[34,38466,2773],{"class":50},[34,38468,38469],{"class":181},";                   ",[34,38471,38472],{"class":40},"/* top: 0; bottom: 0; */\n",[34,38474,38475,38478,38480,38482,38484,38487],{"class":36,"line":771},[34,38476,38477],{"class":50},"  inline-size",[34,38479,182],{"class":181},[34,38481,20863],{"class":50},[34,38483,12797],{"class":580},[34,38485,38486],{"class":181},";                ",[34,38488,38489],{"class":40},"/* width in horizontal writing mode */\n",[34,38491,38492,38495,38497,38499,38502,38505],{"class":36,"line":794},[34,38493,38494],{"class":50},"  block-size",[34,38496,182],{"class":181},[34,38498,24525],{"class":50},[34,38500,38501],{"class":580},"vh",[34,38503,38504],{"class":181},";                 ",[34,38506,38507],{"class":40},"/* height in horizontal writing mode */\n",[34,38509,38510],{"class":36,"line":824},[34,38511,62],{"emptyLinePlaceholder":61},[34,38513,38514],{"class":36,"line":830},[34,38515,38516],{"class":40},"  /* Border */\n",[34,38518,38519,38522,38524,38526,38528,38531,38534],{"class":36,"line":839},[34,38520,38521],{"class":50},"  border",[34,38523,182],{"class":181},[34,38525,8318],{"class":50},[34,38527,38220],{"class":580},[34,38529,38530],{"class":50}," solid",[34,38532,38533],{"class":50}," black",[34,38535,593],{"class":181},[34,38537,38538,38541,38543,38545,38547],{"class":36,"line":854},[34,38539,38540],{"class":50},"  border-radius",[34,38542,182],{"class":181},[34,38544,18033],{"class":50},[34,38546,38220],{"class":580},[34,38548,593],{"class":181},[34,38550,38551],{"class":36,"line":860},[34,38552,62],{"emptyLinePlaceholder":61},[34,38554,38555],{"class":36,"line":865},[34,38556,38557],{"class":40},"  /* Margin (outside border) */\n",[34,38559,38560,38563,38565,38567,38570,38572],{"class":36,"line":870},[34,38561,38562],{"class":50},"  margin",[34,38564,182],{"class":181},[34,38566,2773],{"class":50},[34,38568,38569],{"class":50}," auto",[34,38571,38469],{"class":181},[34,38573,38429],{"class":40},[34,38575,38576],{"class":36,"line":876},[34,38577,62],{"emptyLinePlaceholder":61},[34,38579,38580],{"class":36,"line":885},[34,38581,38582],{"class":40},"  /* Box sizing */\n",[34,38584,38585,38588,38590,38593,38596],{"class":36,"line":895},[34,38586,38587],{"class":50},"  box-sizing",[34,38589,182],{"class":181},[34,38591,38592],{"class":50},"border-box",[34,38594,38595],{"class":181},";           ",[34,38597,38598],{"class":40},"/* include padding/border in width */\n",[34,38600,38601],{"class":36,"line":904},[34,38602,693],{"class":181},[388,38604,38605],{},"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 .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}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":38607},[38608],{"id":38189,"depth":44,"text":38184},"Box Model in CSS.",{},"/css/box-model",{"title":38184,"description":38609},"css/box-model",[38194,38615,982,38616],"web","styling","r-4-oVGLZRwQdzlZin1sidskPwc0lr_GyAWj9vgvZwI",{"id":38619,"title":38620,"body":38621,"date":402,"description":38965,"extension":404,"meta":38966,"navigation":61,"order":88,"path":38967,"seo":38968,"stem":38969,"subject":38194,"tags":38970,"__hash__":38971},"topics/css/colors-backgrounds.md","Colors & Backgrounds",{"type":8,"value":38622,"toc":38962},[38623,38626,38959],[11,38624,38620],{"id":38625},"colors-backgrounds",[25,38627,38629],{"className":38192,"code":38628,"language":38194,"meta":30,"style":30},".element {\n  /* Color formats */\n  color: red;                       /* named color */\n  color: #ff0000;                   /* hex */\n  color: rgb(255, 0, 0);            /* rgb */\n  color: rgba(255, 0, 0, 0.5);      /* rgb with alpha */\n  color: hsl(0, 100%, 50%);         /* hue, saturation, lightness */\n  color: hsla(0, 100%, 50%, 0.5);   /* hsl with alpha */\n  color: oklch(70% 0.15 30);        /* lightness, chroma, hue - modern color space */\n\n  /* Backgrounds */\n  background-color: #f0f0f0;\n  background-image: url('image.jpg');\n  background-size: cover;           /* cover | contain | 100% 100% */\n  background-position: center;\n  background-repeat: no-repeat;\n  background: linear-gradient(to right, #ff0000, #0000ff);\n  background: radial-gradient(circle, #ff0000, #0000ff);\n}\n",[20,38630,38631,38638,38643,38659,38673,38701,38733,38763,38798,38825,38829,38834,38846,38863,38878,38890,38902,38931,38955],{"__ignoreMap":30},[34,38632,38633,38636],{"class":36,"line":37},[34,38634,38635],{"class":47},".element",[34,38637,661],{"class":181},[34,38639,38640],{"class":36,"line":44},[34,38641,38642],{"class":40},"  /* Color formats */\n",[34,38644,38645,38648,38650,38653,38656],{"class":36,"line":58},[34,38646,38647],{"class":50},"  color",[34,38649,182],{"class":181},[34,38651,38652],{"class":50},"red",[34,38654,38655],{"class":181},";                       ",[34,38657,38658],{"class":40},"/* named color */\n",[34,38660,38661,38663,38665,38668,38670],{"class":36,"line":65},[34,38662,38647],{"class":50},[34,38664,182],{"class":181},[34,38666,38667],{"class":50},"#ff0000",[34,38669,38469],{"class":181},[34,38671,38672],{"class":40},"/* hex */\n",[34,38674,38675,38677,38679,38682,38684,38687,38689,38691,38693,38695,38698],{"class":36,"line":71},[34,38676,38647],{"class":50},[34,38678,182],{"class":181},[34,38680,38681],{"class":50},"rgb",[34,38683,1607],{"class":181},[34,38685,38686],{"class":50},"255",[34,38688,1798],{"class":181},[34,38690,2773],{"class":50},[34,38692,1798],{"class":181},[34,38694,2773],{"class":50},[34,38696,38697],{"class":181},");            ",[34,38699,38700],{"class":40},"/* rgb */\n",[34,38702,38703,38705,38707,38710,38712,38714,38716,38718,38720,38722,38724,38727,38730],{"class":36,"line":77},[34,38704,38647],{"class":50},[34,38706,182],{"class":181},[34,38708,38709],{"class":50},"rgba",[34,38711,1607],{"class":181},[34,38713,38686],{"class":50},[34,38715,1798],{"class":181},[34,38717,2773],{"class":50},[34,38719,1798],{"class":181},[34,38721,2773],{"class":50},[34,38723,1798],{"class":181},[34,38725,38726],{"class":50},"0.5",[34,38728,38729],{"class":181},");      ",[34,38731,38732],{"class":40},"/* rgb with alpha */\n",[34,38734,38735,38737,38739,38742,38744,38746,38748,38750,38752,38754,38756,38758,38760],{"class":36,"line":82},[34,38736,38647],{"class":50},[34,38738,182],{"class":181},[34,38740,38741],{"class":50},"hsl",[34,38743,1607],{"class":181},[34,38745,2773],{"class":50},[34,38747,1798],{"class":181},[34,38749,20863],{"class":50},[34,38751,12797],{"class":580},[34,38753,1798],{"class":181},[34,38755,24525],{"class":50},[34,38757,12797],{"class":580},[34,38759,36676],{"class":181},[34,38761,38762],{"class":40},"/* hue, saturation, lightness */\n",[34,38764,38765,38767,38769,38772,38774,38776,38778,38780,38782,38784,38786,38788,38790,38792,38795],{"class":36,"line":88},[34,38766,38647],{"class":50},[34,38768,182],{"class":181},[34,38770,38771],{"class":50},"hsla",[34,38773,1607],{"class":181},[34,38775,2773],{"class":50},[34,38777,1798],{"class":181},[34,38779,20863],{"class":50},[34,38781,12797],{"class":580},[34,38783,1798],{"class":181},[34,38785,24525],{"class":50},[34,38787,12797],{"class":580},[34,38789,1798],{"class":181},[34,38791,38726],{"class":50},[34,38793,38794],{"class":181},");   ",[34,38796,38797],{"class":40},"/* hsl with alpha */\n",[34,38799,38800,38802,38804,38807,38809,38812,38814,38817,38819,38822],{"class":36,"line":242},[34,38801,38647],{"class":50},[34,38803,182],{"class":181},[34,38805,38806],{"class":50},"oklch",[34,38808,1607],{"class":181},[34,38810,38811],{"class":50},"70",[34,38813,12797],{"class":580},[34,38815,38816],{"class":50}," 0.15",[34,38818,30458],{"class":50},[34,38820,38821],{"class":181},");        ",[34,38823,38824],{"class":40},"/* lightness, chroma, hue - modern color space */\n",[34,38826,38827],{"class":36,"line":250},[34,38828,62],{"emptyLinePlaceholder":61},[34,38830,38831],{"class":36,"line":263},[34,38832,38833],{"class":40},"  /* Backgrounds */\n",[34,38835,38836,38839,38841,38844],{"class":36,"line":275},[34,38837,38838],{"class":50},"  background-color",[34,38840,182],{"class":181},[34,38842,38843],{"class":50},"#f0f0f0",[34,38845,593],{"class":181},[34,38847,38848,38851,38853,38856,38858,38861],{"class":36,"line":700},[34,38849,38850],{"class":50},"  background-image",[34,38852,182],{"class":181},[34,38854,38855],{"class":50},"url",[34,38857,1607],{"class":181},[34,38859,38860],{"class":54},"'image.jpg'",[34,38862,1586],{"class":181},[34,38864,38865,38868,38870,38873,38875],{"class":36,"line":706},[34,38866,38867],{"class":50},"  background-size",[34,38869,182],{"class":181},[34,38871,38872],{"class":50},"cover",[34,38874,38595],{"class":181},[34,38876,38877],{"class":40},"/* cover | contain | 100% 100% */\n",[34,38879,38880,38883,38885,38888],{"class":36,"line":715},[34,38881,38882],{"class":50},"  background-position",[34,38884,182],{"class":181},[34,38886,38887],{"class":50},"center",[34,38889,593],{"class":181},[34,38891,38892,38895,38897,38900],{"class":36,"line":725},[34,38893,38894],{"class":50},"  background-repeat",[34,38896,182],{"class":181},[34,38898,38899],{"class":50},"no-repeat",[34,38901,593],{"class":181},[34,38903,38904,38907,38909,38912,38914,38917,38920,38922,38924,38926,38929],{"class":36,"line":734},[34,38905,38906],{"class":50},"  background",[34,38908,182],{"class":181},[34,38910,38911],{"class":50},"linear-gradient",[34,38913,1607],{"class":181},[34,38915,38916],{"class":580},"to",[34,38918,38919],{"class":50}," right",[34,38921,1798],{"class":181},[34,38923,38667],{"class":50},[34,38925,1798],{"class":181},[34,38927,38928],{"class":50},"#0000ff",[34,38930,1586],{"class":181},[34,38932,38933,38935,38937,38940,38942,38945,38947,38949,38951,38953],{"class":36,"line":742},[34,38934,38906],{"class":50},[34,38936,182],{"class":181},[34,38938,38939],{"class":50},"radial-gradient",[34,38941,1607],{"class":181},[34,38943,38944],{"class":50},"circle",[34,38946,1798],{"class":181},[34,38948,38667],{"class":50},[34,38950,1798],{"class":181},[34,38952,38928],{"class":50},[34,38954,1586],{"class":181},[34,38956,38957],{"class":36,"line":748},[34,38958,693],{"class":181},[388,38960,38961],{},"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 .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}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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);}",{"title":30,"searchDepth":44,"depth":44,"links":38963},[38964],{"id":38625,"depth":44,"text":38620},"Colors & Backgrounds in CSS.",{},"/css/colors-backgrounds",{"title":38620,"description":38965},"css/colors-backgrounds",[38194,38615,982,38616],"l1UxkpM_YPc2G2QlmN_NRGt6bCd-WqGXFyFSrGW-Sr0",{"id":38973,"title":18143,"body":38974,"date":402,"description":39332,"extension":404,"meta":39333,"navigation":61,"order":706,"path":39334,"seo":39335,"stem":39336,"subject":38194,"tags":39337,"__hash__":39338},"topics/css/common-patterns.md",{"type":8,"value":38975,"toc":39329},[38976,38978,39326],[11,38977,18143],{"id":18148},[25,38979,38981],{"className":38192,"code":38980,"language":38194,"meta":30,"style":30},"/* Reset box-sizing */\n*, *::before, *::after {\n  box-sizing: border-box;\n}\n\n/* Visually hidden (accessible) */\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0;\n}\n\n/* Clearfix */\n.clearfix::after {\n  content: \"\";\n  display: table;\n  clear: both;\n}\n\n/* Truncate text */\n.truncate {\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n/* Aspect ratio */\n.aspect-ratio-16-9 {\n  aspect-ratio: 16 / 9;\n}\n\n/* Smooth scrolling */\nhtml {\n  scroll-behavior: smooth;\n}\n",[20,38982,38983,38988,39008,39018,39022,39026,39031,39038,39050,39062,39074,39084,39097,39109,39137,39147,39151,39155,39160,39167,39178,39189,39201,39205,39209,39214,39221,39233,39243,39255,39259,39263,39268,39275,39291,39295,39299,39304,39310,39322],{"__ignoreMap":30},[34,38984,38985],{"class":36,"line":37},[34,38986,38987],{"class":40},"/* Reset box-sizing */\n",[34,38989,38990,38992,38994,38996,38999,39001,39003,39006],{"class":36,"line":44},[34,38991,4289],{"class":177},[34,38993,1798],{"class":181},[34,38995,4289],{"class":177},[34,38997,38998],{"class":47},"::before",[34,39000,1798],{"class":181},[34,39002,4289],{"class":177},[34,39004,39005],{"class":47},"::after",[34,39007,661],{"class":181},[34,39009,39010,39012,39014,39016],{"class":36,"line":58},[34,39011,38587],{"class":50},[34,39013,182],{"class":181},[34,39015,38592],{"class":50},[34,39017,593],{"class":181},[34,39019,39020],{"class":36,"line":65},[34,39021,693],{"class":181},[34,39023,39024],{"class":36,"line":71},[34,39025,62],{"emptyLinePlaceholder":61},[34,39027,39028],{"class":36,"line":77},[34,39029,39030],{"class":40},"/* Visually hidden (accessible) */\n",[34,39032,39033,39036],{"class":36,"line":82},[34,39034,39035],{"class":47},".sr-only",[34,39037,661],{"class":181},[34,39039,39040,39043,39045,39048],{"class":36,"line":88},[34,39041,39042],{"class":50},"  position",[34,39044,182],{"class":181},[34,39046,39047],{"class":50},"absolute",[34,39049,593],{"class":181},[34,39051,39052,39054,39056,39058,39060],{"class":36,"line":242},[34,39053,38213],{"class":50},[34,39055,182],{"class":181},[34,39057,8318],{"class":50},[34,39059,38220],{"class":580},[34,39061,593],{"class":181},[34,39063,39064,39066,39068,39070,39072],{"class":36,"line":250},[34,39065,38227],{"class":50},[34,39067,182],{"class":181},[34,39069,8318],{"class":50},[34,39071,38220],{"class":580},[34,39073,593],{"class":181},[34,39075,39076,39078,39080,39082],{"class":36,"line":263},[34,39077,38276],{"class":50},[34,39079,182],{"class":181},[34,39081,2773],{"class":50},[34,39083,593],{"class":181},[34,39085,39086,39088,39090,39093,39095],{"class":36,"line":275},[34,39087,38562],{"class":50},[34,39089,182],{"class":181},[34,39091,39092],{"class":50},"-1",[34,39094,38220],{"class":580},[34,39096,593],{"class":181},[34,39098,39099,39102,39104,39107],{"class":36,"line":700},[34,39100,39101],{"class":50},"  overflow",[34,39103,182],{"class":181},[34,39105,39106],{"class":50},"hidden",[34,39108,593],{"class":181},[34,39110,39111,39114,39116,39119,39121,39123,39125,39127,39129,39131,39133,39135],{"class":36,"line":706},[34,39112,39113],{"class":50},"  clip",[34,39115,182],{"class":181},[34,39117,39118],{"class":50},"rect",[34,39120,1607],{"class":181},[34,39122,2773],{"class":50},[34,39124,1798],{"class":181},[34,39126,2773],{"class":50},[34,39128,1798],{"class":181},[34,39130,2773],{"class":50},[34,39132,1798],{"class":181},[34,39134,2773],{"class":50},[34,39136,1586],{"class":181},[34,39138,39139,39141,39143,39145],{"class":36,"line":715},[34,39140,38521],{"class":50},[34,39142,182],{"class":181},[34,39144,2773],{"class":50},[34,39146,593],{"class":181},[34,39148,39149],{"class":36,"line":725},[34,39150,693],{"class":181},[34,39152,39153],{"class":36,"line":734},[34,39154,62],{"emptyLinePlaceholder":61},[34,39156,39157],{"class":36,"line":742},[34,39158,39159],{"class":40},"/* Clearfix */\n",[34,39161,39162,39165],{"class":36,"line":748},[34,39163,39164],{"class":47},".clearfix::after",[34,39166,661],{"class":181},[34,39168,39169,39172,39174,39176],{"class":36,"line":754},[34,39170,39171],{"class":50},"  content",[34,39173,182],{"class":181},[34,39175,13962],{"class":54},[34,39177,593],{"class":181},[34,39179,39180,39183,39185,39187],{"class":36,"line":759},[34,39181,39182],{"class":50},"  display",[34,39184,182],{"class":181},[34,39186,14308],{"class":50},[34,39188,593],{"class":181},[34,39190,39191,39194,39196,39199],{"class":36,"line":771},[34,39192,39193],{"class":50},"  clear",[34,39195,182],{"class":181},[34,39197,39198],{"class":50},"both",[34,39200,593],{"class":181},[34,39202,39203],{"class":36,"line":794},[34,39204,693],{"class":181},[34,39206,39207],{"class":36,"line":824},[34,39208,62],{"emptyLinePlaceholder":61},[34,39210,39211],{"class":36,"line":830},[34,39212,39213],{"class":40},"/* Truncate text */\n",[34,39215,39216,39219],{"class":36,"line":839},[34,39217,39218],{"class":47},".truncate",[34,39220,661],{"class":181},[34,39222,39223,39226,39228,39231],{"class":36,"line":854},[34,39224,39225],{"class":50},"  white-space",[34,39227,182],{"class":181},[34,39229,39230],{"class":50},"nowrap",[34,39232,593],{"class":181},[34,39234,39235,39237,39239,39241],{"class":36,"line":860},[34,39236,39101],{"class":50},[34,39238,182],{"class":181},[34,39240,39106],{"class":50},[34,39242,593],{"class":181},[34,39244,39245,39248,39250,39253],{"class":36,"line":865},[34,39246,39247],{"class":50},"  text-overflow",[34,39249,182],{"class":181},[34,39251,39252],{"class":50},"ellipsis",[34,39254,593],{"class":181},[34,39256,39257],{"class":36,"line":870},[34,39258,693],{"class":181},[34,39260,39261],{"class":36,"line":876},[34,39262,62],{"emptyLinePlaceholder":61},[34,39264,39265],{"class":36,"line":885},[34,39266,39267],{"class":40},"/* Aspect ratio */\n",[34,39269,39270,39273],{"class":36,"line":895},[34,39271,39272],{"class":47},".aspect-ratio-16-9",[34,39274,661],{"class":181},[34,39276,39277,39280,39282,39284,39287,39289],{"class":36,"line":904},[34,39278,39279],{"class":50},"  aspect-ratio",[34,39281,182],{"class":181},[34,39283,15353],{"class":50},[34,39285,39286],{"class":181}," / ",[34,39288,18038],{"class":50},[34,39290,593],{"class":181},[34,39292,39293],{"class":36,"line":915},[34,39294,693],{"class":181},[34,39296,39297],{"class":36,"line":927},[34,39298,62],{"emptyLinePlaceholder":61},[34,39300,39301],{"class":36,"line":932},[34,39302,39303],{"class":40},"/* Smooth scrolling */\n",[34,39305,39306,39308],{"class":36,"line":944},[34,39307,1164],{"class":177},[34,39309,661],{"class":181},[34,39311,39312,39315,39317,39320],{"class":36,"line":966},[34,39313,39314],{"class":50},"  scroll-behavior",[34,39316,182],{"class":181},[34,39318,39319],{"class":50},"smooth",[34,39321,593],{"class":181},[34,39323,39324],{"class":36,"line":1948},[34,39325,693],{"class":181},[388,39327,39328],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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);}",{"title":30,"searchDepth":44,"depth":44,"links":39330},[39331],{"id":18148,"depth":44,"text":18143},"Common Patterns in CSS.",{},"/css/common-patterns",{"title":18143,"description":39332},"css/common-patterns",[38194,38615,982,38616],"wKGSGgQIs_xDDNaA6RIcD7e25gUALSd1OY_Bn1_eOo4",{"id":39340,"title":39341,"body":39342,"date":402,"description":39624,"extension":404,"meta":39625,"navigation":61,"order":275,"path":39626,"seo":39627,"stem":39628,"subject":38194,"tags":39629,"__hash__":39630},"topics/css/container-queries.md","Container Queries",{"type":8,"value":39343,"toc":39621},[39344,39347,39618],[11,39345,39341],{"id":39346},"container-queries",[25,39348,39350],{"className":38192,"code":39349,"language":38194,"meta":30,"style":30},"/* Define a containment context */\n.card-container {\n  container-type: inline-size;      /* enable container queries on width */\n  container-name: card;             /* optional: name the container */\n  /* Shorthand */\n  container: card / inline-size;\n}\n\n/* Query based on container size */\n@container (min-width: 400px) {\n  .card {\n    display: flex;\n    gap: 1rem;\n  }\n}\n\n/* Query a named container */\n@container card (min-width: 600px) {\n  .card {\n    grid-template-columns: 1fr 2fr;\n  }\n}\n\n/* Container query units */\n.card-title {\n  font-size: 1rem;\n  font-size: clamp(1rem, 5cqi, 2rem); /* responsive to container */\n}\n\n/* Available container units:\n   cqw  - 1% of container width\n   cqh  - 1% of container height\n   cqi  - 1% of container inline size\n   cqb  - 1% of container block size\n   cqmin - smaller of cqi or cqb\n   cqmax - larger of cqi or cqb\n*/\n",[20,39351,39352,39357,39364,39375,39386,39391,39399,39403,39407,39412,39420,39427,39439,39452,39456,39460,39464,39469,39476,39482,39500,39504,39508,39512,39517,39524,39537,39570,39574,39578,39583,39588,39593,39598,39603,39608,39613],{"__ignoreMap":30},[34,39353,39354],{"class":36,"line":37},[34,39355,39356],{"class":40},"/* Define a containment context */\n",[34,39358,39359,39362],{"class":36,"line":44},[34,39360,39361],{"class":47},".card-container",[34,39363,661],{"class":181},[34,39365,39366,39369,39372],{"class":36,"line":58},[34,39367,39368],{"class":50},"  container-type",[34,39370,39371],{"class":181},": inline-size;      ",[34,39373,39374],{"class":40},"/* enable container queries on width */\n",[34,39376,39377,39380,39383],{"class":36,"line":65},[34,39378,39379],{"class":50},"  container-name",[34,39381,39382],{"class":181},": card;             ",[34,39384,39385],{"class":40},"/* optional: name the container */\n",[34,39387,39388],{"class":36,"line":71},[34,39389,39390],{"class":40},"  /* Shorthand */\n",[34,39392,39393,39396],{"class":36,"line":77},[34,39394,39395],{"class":50},"  container",[34,39397,39398],{"class":181},": card / inline-size;\n",[34,39400,39401],{"class":36,"line":82},[34,39402,693],{"class":181},[34,39404,39405],{"class":36,"line":88},[34,39406,62],{"emptyLinePlaceholder":61},[34,39408,39409],{"class":36,"line":242},[34,39410,39411],{"class":40},"/* Query based on container size */\n",[34,39413,39414,39417],{"class":36,"line":250},[34,39415,39416],{"class":580},"@container",[34,39418,39419],{"class":181}," (min-width: 400px) {\n",[34,39421,39422,39425],{"class":36,"line":263},[34,39423,39424],{"class":47},"  .card",[34,39426,661],{"class":181},[34,39428,39429,39432,39434,39437],{"class":36,"line":275},[34,39430,39431],{"class":50},"    display",[34,39433,182],{"class":181},[34,39435,39436],{"class":50},"flex",[34,39438,593],{"class":181},[34,39440,39441,39444,39446,39448,39450],{"class":36,"line":700},[34,39442,39443],{"class":50},"    gap",[34,39445,182],{"class":181},[34,39447,8318],{"class":50},[34,39449,38358],{"class":580},[34,39451,593],{"class":181},[34,39453,39454],{"class":36,"line":706},[34,39455,857],{"class":181},[34,39457,39458],{"class":36,"line":715},[34,39459,693],{"class":181},[34,39461,39462],{"class":36,"line":725},[34,39463,62],{"emptyLinePlaceholder":61},[34,39465,39466],{"class":36,"line":734},[34,39467,39468],{"class":40},"/* Query a named container */\n",[34,39470,39471,39473],{"class":36,"line":742},[34,39472,39416],{"class":580},[34,39474,39475],{"class":181}," card (min-width: 600px) {\n",[34,39477,39478,39480],{"class":36,"line":748},[34,39479,39424],{"class":47},[34,39481,661],{"class":181},[34,39483,39484,39487,39489,39491,39494,39496,39498],{"class":36,"line":754},[34,39485,39486],{"class":50},"    grid-template-columns",[34,39488,182],{"class":181},[34,39490,8318],{"class":50},[34,39492,39493],{"class":580},"fr",[34,39495,4292],{"class":50},[34,39497,39493],{"class":580},[34,39499,593],{"class":181},[34,39501,39502],{"class":36,"line":759},[34,39503,857],{"class":181},[34,39505,39506],{"class":36,"line":771},[34,39507,693],{"class":181},[34,39509,39510],{"class":36,"line":794},[34,39511,62],{"emptyLinePlaceholder":61},[34,39513,39514],{"class":36,"line":824},[34,39515,39516],{"class":40},"/* Container query units */\n",[34,39518,39519,39522],{"class":36,"line":830},[34,39520,39521],{"class":47},".card-title",[34,39523,661],{"class":181},[34,39525,39526,39529,39531,39533,39535],{"class":36,"line":839},[34,39527,39528],{"class":50},"  font-size",[34,39530,182],{"class":181},[34,39532,8318],{"class":50},[34,39534,38358],{"class":580},[34,39536,593],{"class":181},[34,39538,39539,39541,39543,39546,39548,39550,39552,39554,39556,39559,39561,39563,39565,39567],{"class":36,"line":854},[34,39540,39528],{"class":50},[34,39542,182],{"class":181},[34,39544,39545],{"class":50},"clamp",[34,39547,1607],{"class":181},[34,39549,8318],{"class":50},[34,39551,38358],{"class":580},[34,39553,1798],{"class":181},[34,39555,2778],{"class":50},[34,39557,39558],{"class":580},"cqi",[34,39560,1798],{"class":181},[34,39562,8324],{"class":50},[34,39564,38358],{"class":580},[34,39566,8260],{"class":181},[34,39568,39569],{"class":40},"/* responsive to container */\n",[34,39571,39572],{"class":36,"line":860},[34,39573,693],{"class":181},[34,39575,39576],{"class":36,"line":865},[34,39577,62],{"emptyLinePlaceholder":61},[34,39579,39580],{"class":36,"line":870},[34,39581,39582],{"class":40},"/* Available container units:\n",[34,39584,39585],{"class":36,"line":876},[34,39586,39587],{"class":40},"   cqw  - 1% of container width\n",[34,39589,39590],{"class":36,"line":885},[34,39591,39592],{"class":40},"   cqh  - 1% of container height\n",[34,39594,39595],{"class":36,"line":895},[34,39596,39597],{"class":40},"   cqi  - 1% of container inline size\n",[34,39599,39600],{"class":36,"line":904},[34,39601,39602],{"class":40},"   cqb  - 1% of container block size\n",[34,39604,39605],{"class":36,"line":915},[34,39606,39607],{"class":40},"   cqmin - smaller of cqi or cqb\n",[34,39609,39610],{"class":36,"line":927},[34,39611,39612],{"class":40},"   cqmax - larger of cqi or cqb\n",[34,39614,39615],{"class":36,"line":932},[34,39616,39617],{"class":40},"*/\n",[388,39619,39620],{},"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 .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 pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":39622},[39623],{"id":39346,"depth":44,"text":39341},"Container Queries in CSS.",{},"/css/container-queries",{"title":39341,"description":39624},"css/container-queries",[38194,38615,982,38616],"o1xr-tPdONyB9sByFb-3dFVcfk0xzIlWg_bK5pdNn24",{"id":39632,"title":39633,"body":39634,"date":402,"description":39846,"extension":404,"meta":39847,"navigation":61,"order":700,"path":39848,"seo":39849,"stem":39850,"subject":38194,"tags":39851,"__hash__":39852},"topics/css/css-variables.md","CSS Variables",{"type":8,"value":39635,"toc":39843},[39636,39639,39840],[11,39637,39633],{"id":39638},"css-variables",[25,39640,39642],{"className":38192,"code":39641,"language":38194,"meta":30,"style":30},"/* Define variables in :root */\n:root {\n  --primary-color: #3498db;\n  --secondary-color: #2ecc71;\n  --spacing-sm: 0.5rem;\n  --spacing-md: 1rem;\n  --spacing-lg: 2rem;\n  --border-radius: 8px;\n}\n\n/* Use variables */\n.card {\n  background-color: var(--primary-color);\n  padding: var(--spacing-md);\n  border-radius: var(--border-radius);\n}\n\n/* Fallback value */\n.element {\n  color: var(--undefined-var, black);\n}\n",[20,39643,39644,39649,39656,39668,39680,39693,39706,39719,39732,39736,39740,39745,39752,39767,39782,39797,39801,39805,39810,39816,39836],{"__ignoreMap":30},[34,39645,39646],{"class":36,"line":37},[34,39647,39648],{"class":40},"/* Define variables in :root */\n",[34,39650,39651,39654],{"class":36,"line":44},[34,39652,39653],{"class":47},":root",[34,39655,661],{"class":181},[34,39657,39658,39661,39663,39666],{"class":36,"line":58},[34,39659,39660],{"class":675},"  --primary-color",[34,39662,182],{"class":181},[34,39664,39665],{"class":50},"#3498db",[34,39667,593],{"class":181},[34,39669,39670,39673,39675,39678],{"class":36,"line":65},[34,39671,39672],{"class":675},"  --secondary-color",[34,39674,182],{"class":181},[34,39676,39677],{"class":50},"#2ecc71",[34,39679,593],{"class":181},[34,39681,39682,39685,39687,39689,39691],{"class":36,"line":71},[34,39683,39684],{"class":675},"  --spacing-sm",[34,39686,182],{"class":181},[34,39688,38726],{"class":50},[34,39690,38358],{"class":580},[34,39692,593],{"class":181},[34,39694,39695,39698,39700,39702,39704],{"class":36,"line":77},[34,39696,39697],{"class":675},"  --spacing-md",[34,39699,182],{"class":181},[34,39701,8318],{"class":50},[34,39703,38358],{"class":580},[34,39705,593],{"class":181},[34,39707,39708,39711,39713,39715,39717],{"class":36,"line":82},[34,39709,39710],{"class":675},"  --spacing-lg",[34,39712,182],{"class":181},[34,39714,8324],{"class":50},[34,39716,38358],{"class":580},[34,39718,593],{"class":181},[34,39720,39721,39724,39726,39728,39730],{"class":36,"line":88},[34,39722,39723],{"class":675},"  --border-radius",[34,39725,182],{"class":181},[34,39727,18033],{"class":50},[34,39729,38220],{"class":580},[34,39731,593],{"class":181},[34,39733,39734],{"class":36,"line":242},[34,39735,693],{"class":181},[34,39737,39738],{"class":36,"line":250},[34,39739,62],{"emptyLinePlaceholder":61},[34,39741,39742],{"class":36,"line":263},[34,39743,39744],{"class":40},"/* Use variables */\n",[34,39746,39747,39750],{"class":36,"line":275},[34,39748,39749],{"class":47},".card",[34,39751,661],{"class":181},[34,39753,39754,39756,39758,39760,39762,39765],{"class":36,"line":700},[34,39755,38838],{"class":50},[34,39757,182],{"class":181},[34,39759,34404],{"class":50},[34,39761,1607],{"class":181},[34,39763,39764],{"class":675},"--primary-color",[34,39766,1586],{"class":181},[34,39768,39769,39771,39773,39775,39777,39780],{"class":36,"line":706},[34,39770,38276],{"class":50},[34,39772,182],{"class":181},[34,39774,34404],{"class":50},[34,39776,1607],{"class":181},[34,39778,39779],{"class":675},"--spacing-md",[34,39781,1586],{"class":181},[34,39783,39784,39786,39788,39790,39792,39795],{"class":36,"line":715},[34,39785,38540],{"class":50},[34,39787,182],{"class":181},[34,39789,34404],{"class":50},[34,39791,1607],{"class":181},[34,39793,39794],{"class":675},"--border-radius",[34,39796,1586],{"class":181},[34,39798,39799],{"class":36,"line":725},[34,39800,693],{"class":181},[34,39802,39803],{"class":36,"line":734},[34,39804,62],{"emptyLinePlaceholder":61},[34,39806,39807],{"class":36,"line":742},[34,39808,39809],{"class":40},"/* Fallback value */\n",[34,39811,39812,39814],{"class":36,"line":748},[34,39813,38635],{"class":47},[34,39815,661],{"class":181},[34,39817,39818,39820,39822,39824,39826,39829,39831,39834],{"class":36,"line":754},[34,39819,38647],{"class":50},[34,39821,182],{"class":181},[34,39823,34404],{"class":50},[34,39825,1607],{"class":181},[34,39827,39828],{"class":675},"--undefined-var",[34,39830,1798],{"class":181},[34,39832,39833],{"class":50},"black",[34,39835,1586],{"class":181},[34,39837,39838],{"class":36,"line":759},[34,39839,693],{"class":181},[388,39841,39842],{},"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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":39844},[39845],{"id":39638,"depth":44,"text":39633},"CSS Variables in CSS.",{},"/css/css-variables",{"title":39633,"description":39846},"css/css-variables",[38194,38615,982,38616],"GbQ7nDLMyft4CLdwrU3-Fum7mP5XPvuzOUTcHkOJvOY",{"id":39854,"title":39855,"body":39856,"date":402,"description":39949,"extension":404,"meta":39950,"navigation":61,"order":725,"path":39951,"seo":39952,"stem":39953,"subject":38194,"tags":39954,"__hash__":39955},"topics/css/css-versions.md","CSS Versions",{"type":8,"value":39857,"toc":39946},[39858,39861,39932],[11,39859,39855],{"id":39860},"css-versions",[14308,39862,39863,39875],{},[14311,39864,39865],{},[14314,39866,39867,39870,39873],{},[14317,39868,39869],{},"Version",[14317,39871,39872],{},"Year",[14317,39874,8498],{},[14326,39876,39877,39888,39899,39910,39921],{},[14314,39878,39879,39882,39885],{},[14331,39880,39881],{},"CSS1",[14331,39883,39884],{},"1996",[14331,39886,39887],{},"Basic styling: fonts, colors, margins, borders",[14314,39889,39890,39893,39896],{},[14331,39891,39892],{},"CSS2",[14331,39894,39895],{},"1998",[14331,39897,39898],{},"Positioning, z-index, media types",[14314,39900,39901,39904,39907],{},[14331,39902,39903],{},"CSS2.1",[14331,39905,39906],{},"2011",[14331,39908,39909],{},"Bug fixes, removed unsupported features",[14314,39911,39912,39915,39918],{},[14331,39913,39914],{},"CSS3",[14331,39916,39917],{},"2011+",[14331,39919,39920],{},"Modular approach, gradients, transitions, animations, flexbox, media queries, border-radius, box-shadow",[14314,39922,39923,39926,39929],{},[14331,39924,39925],{},"CSS4",[14331,39927,39928],{},"Ongoing",[14331,39930,39931],{},"Not a single release—individual modules evolve independently (e.g., Selectors Level 4, Color Level 4)",[16,39933,39934,39937,39938,39941,39942,39945],{},[8471,39935,39936],{},"Note:"," Since CSS3, the specification is split into independent modules that evolve at their own pace. There is no monolithic \"CSS4\"—instead, features like container queries, cascade layers (",[20,39939,39940],{},"@layer","), and ",[20,39943,39944],{},":has()"," selector are part of newer module levels.",{"title":30,"searchDepth":44,"depth":44,"links":39947},[39948],{"id":39860,"depth":44,"text":39855},"CSS Versions in CSS.",{},"/css/css-versions",{"title":39855,"description":39949},"css/css-versions",[38194,38615,982,38616],"cH_fktKF_gr8yOeQMfqsYWC3cy9g2rvDf3efSVgOQrQ",{"id":39957,"title":39958,"body":39959,"date":402,"description":40201,"extension":404,"meta":40202,"navigation":61,"order":71,"path":40203,"seo":40204,"stem":40205,"subject":38194,"tags":40206,"__hash__":40207},"topics/css/flexbox.md","Flexbox",{"type":8,"value":39960,"toc":40198},[39961,39964,40196],[11,39962,39958],{"id":39963},"flexbox",[25,39965,39967],{"className":38192,"code":39966,"language":38194,"meta":30,"style":30},"/* Container properties */\n.flex-container {\n  display: flex;\n  flex-direction: row;              /* row | row-reverse | column | column-reverse */\n  flex-wrap: wrap;                  /* nowrap | wrap | wrap-reverse */\n  justify-content: center;          /* flex-start | flex-end | center | space-between | space-around | space-evenly */\n  align-items: center;              /* flex-start | flex-end | center | stretch | baseline */\n  align-content: center;            /* for multi-line flex containers */\n  gap: 1rem;                        /* gap between items */\n}\n\n/* Item properties */\n.flex-item {\n  flex: 1;                          /* shorthand for grow, shrink, basis */\n  flex-grow: 1;                     /* how much item should grow */\n  flex-shrink: 0;                   /* how much item should shrink */\n  flex-basis: 200px;                /* initial size */\n  align-self: flex-end;             /* override align-items for this item */\n  order: 2;                         /* change visual order */\n}\n",[20,39968,39969,39974,39981,39991,40006,40021,40036,40050,40065,40082,40086,40090,40095,40102,40117,40132,40146,40162,40177,40192],{"__ignoreMap":30},[34,39970,39971],{"class":36,"line":37},[34,39972,39973],{"class":40},"/* Container properties */\n",[34,39975,39976,39979],{"class":36,"line":44},[34,39977,39978],{"class":47},".flex-container",[34,39980,661],{"class":181},[34,39982,39983,39985,39987,39989],{"class":36,"line":58},[34,39984,39182],{"class":50},[34,39986,182],{"class":181},[34,39988,39436],{"class":50},[34,39990,593],{"class":181},[34,39992,39993,39996,39998,40001,40003],{"class":36,"line":65},[34,39994,39995],{"class":50},"  flex-direction",[34,39997,182],{"class":181},[34,39999,40000],{"class":50},"row",[34,40002,38378],{"class":181},[34,40004,40005],{"class":40},"/* row | row-reverse | column | column-reverse */\n",[34,40007,40008,40011,40013,40016,40018],{"class":36,"line":71},[34,40009,40010],{"class":50},"  flex-wrap",[34,40012,182],{"class":181},[34,40014,40015],{"class":50},"wrap",[34,40017,38454],{"class":181},[34,40019,40020],{"class":40},"/* nowrap | wrap | wrap-reverse */\n",[34,40022,40023,40026,40028,40030,40033],{"class":36,"line":77},[34,40024,40025],{"class":50},"  justify-content",[34,40027,182],{"class":181},[34,40029,38887],{"class":50},[34,40031,40032],{"class":181},";          ",[34,40034,40035],{"class":40},"/* flex-start | flex-end | center | space-between | space-around | space-evenly */\n",[34,40037,40038,40041,40043,40045,40047],{"class":36,"line":82},[34,40039,40040],{"class":50},"  align-items",[34,40042,182],{"class":181},[34,40044,38887],{"class":50},[34,40046,38378],{"class":181},[34,40048,40049],{"class":40},"/* flex-start | flex-end | center | stretch | baseline */\n",[34,40051,40052,40055,40057,40059,40062],{"class":36,"line":88},[34,40053,40054],{"class":50},"  align-content",[34,40056,182],{"class":181},[34,40058,38887],{"class":50},[34,40060,40061],{"class":181},";            ",[34,40063,40064],{"class":40},"/* for multi-line flex containers */\n",[34,40066,40067,40070,40072,40074,40076,40079],{"class":36,"line":242},[34,40068,40069],{"class":50},"  gap",[34,40071,182],{"class":181},[34,40073,8318],{"class":50},[34,40075,38358],{"class":580},[34,40077,40078],{"class":181},";                        ",[34,40080,40081],{"class":40},"/* gap between items */\n",[34,40083,40084],{"class":36,"line":250},[34,40085,693],{"class":181},[34,40087,40088],{"class":36,"line":263},[34,40089,62],{"emptyLinePlaceholder":61},[34,40091,40092],{"class":36,"line":275},[34,40093,40094],{"class":40},"/* Item properties */\n",[34,40096,40097,40100],{"class":36,"line":700},[34,40098,40099],{"class":47},".flex-item",[34,40101,661],{"class":181},[34,40103,40104,40107,40109,40111,40114],{"class":36,"line":706},[34,40105,40106],{"class":50},"  flex",[34,40108,182],{"class":181},[34,40110,8318],{"class":50},[34,40112,40113],{"class":181},";                          ",[34,40115,40116],{"class":40},"/* shorthand for grow, shrink, basis */\n",[34,40118,40119,40122,40124,40126,40129],{"class":36,"line":715},[34,40120,40121],{"class":50},"  flex-grow",[34,40123,182],{"class":181},[34,40125,8318],{"class":50},[34,40127,40128],{"class":181},";                     ",[34,40130,40131],{"class":40},"/* how much item should grow */\n",[34,40133,40134,40137,40139,40141,40143],{"class":36,"line":725},[34,40135,40136],{"class":50},"  flex-shrink",[34,40138,182],{"class":181},[34,40140,2773],{"class":50},[34,40142,38469],{"class":181},[34,40144,40145],{"class":40},"/* how much item should shrink */\n",[34,40147,40148,40151,40153,40155,40157,40159],{"class":36,"line":734},[34,40149,40150],{"class":50},"  flex-basis",[34,40152,182],{"class":181},[34,40154,20899],{"class":50},[34,40156,38220],{"class":580},[34,40158,38486],{"class":181},[34,40160,40161],{"class":40},"/* initial size */\n",[34,40163,40164,40167,40169,40172,40174],{"class":36,"line":742},[34,40165,40166],{"class":50},"  align-self",[34,40168,182],{"class":181},[34,40170,40171],{"class":50},"flex-end",[34,40173,38361],{"class":181},[34,40175,40176],{"class":40},"/* override align-items for this item */\n",[34,40178,40179,40182,40184,40186,40189],{"class":36,"line":748},[34,40180,40181],{"class":50},"  order",[34,40183,182],{"class":181},[34,40185,8324],{"class":50},[34,40187,40188],{"class":181},";                         ",[34,40190,40191],{"class":40},"/* change visual order */\n",[34,40193,40194],{"class":36,"line":754},[34,40195,693],{"class":181},[388,40197,39620],{},{"title":30,"searchDepth":44,"depth":44,"links":40199},[40200],{"id":39963,"depth":44,"text":39958},"Flexbox in CSS.",{},"/css/flexbox",{"title":39958,"description":40201},"css/flexbox",[38194,38615,982,38616],"NKCi04YroGf6oK6yVsd4SsgPPBJp4X677ey2KbH1AW4",{"id":40209,"title":40210,"body":40211,"date":402,"description":40611,"extension":404,"meta":40612,"navigation":61,"order":77,"path":40613,"seo":40614,"stem":40615,"subject":38194,"tags":40616,"__hash__":40617},"topics/css/grid.md","Grid",{"type":8,"value":40212,"toc":40608},[40213,40216,40605],[11,40214,40210],{"id":40215},"grid",[25,40217,40219],{"className":38192,"code":40218,"language":38194,"meta":30,"style":30},"/* Container properties */\n.grid-container {\n  display: grid;\n  grid-template-columns: 1fr 2fr 1fr;           /* three columns */\n  grid-template-columns: repeat(3, 1fr);        /* three equal columns */\n  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); /* responsive */\n  grid-template-rows: 100px auto 100px;\n  gap: 1rem;                                    /* row and column gap */\n  row-gap: 1rem;\n  column-gap: 2rem;\n  justify-items: center;                        /* align items horizontally */\n  align-items: center;                          /* align items vertically */\n}\n\n/* Item properties */\n.grid-item {\n  grid-column: 1 / 3;               /* span from column 1 to 3 */\n  grid-column: span 2;              /* span 2 columns */\n  grid-row: 1 / 2;\n  justify-self: end;                /* align this item horizontally */\n  align-self: start;                /* align this item vertically */\n}\n\n/* Named grid areas */\n.layout {\n  grid-template-areas:\n    \"header header\"\n    \"sidebar main\"\n    \"footer footer\";\n}\n.header { grid-area: header; }\n.sidebar { grid-area: sidebar; }\n.main { grid-area: main; }\n.footer { grid-area: footer; }\n",[20,40220,40221,40225,40232,40242,40266,40290,40325,40344,40360,40373,40386,40400,40413,40417,40421,40425,40432,40450,40464,40479,40494,40508,40512,40516,40521,40528,40535,40540,40545,40552,40556,40569,40581,40593],{"__ignoreMap":30},[34,40222,40223],{"class":36,"line":37},[34,40224,39973],{"class":40},[34,40226,40227,40230],{"class":36,"line":44},[34,40228,40229],{"class":47},".grid-container",[34,40231,661],{"class":181},[34,40233,40234,40236,40238,40240],{"class":36,"line":58},[34,40235,39182],{"class":50},[34,40237,182],{"class":181},[34,40239,40215],{"class":50},[34,40241,593],{"class":181},[34,40243,40244,40247,40249,40251,40253,40255,40257,40259,40261,40263],{"class":36,"line":65},[34,40245,40246],{"class":50},"  grid-template-columns",[34,40248,182],{"class":181},[34,40250,8318],{"class":50},[34,40252,39493],{"class":580},[34,40254,4292],{"class":50},[34,40256,39493],{"class":580},[34,40258,3567],{"class":50},[34,40260,39493],{"class":580},[34,40262,38595],{"class":181},[34,40264,40265],{"class":40},"/* three columns */\n",[34,40267,40268,40270,40272,40275,40277,40279,40281,40283,40285,40287],{"class":36,"line":71},[34,40269,40246],{"class":50},[34,40271,182],{"class":181},[34,40273,40274],{"class":50},"repeat",[34,40276,1607],{"class":181},[34,40278,3162],{"class":50},[34,40280,1798],{"class":181},[34,40282,8318],{"class":50},[34,40284,39493],{"class":580},[34,40286,38821],{"class":181},[34,40288,40289],{"class":40},"/* three equal columns */\n",[34,40291,40292,40294,40296,40298,40300,40303,40305,40308,40310,40312,40314,40316,40318,40320,40322],{"class":36,"line":77},[34,40293,40246],{"class":50},[34,40295,182],{"class":181},[34,40297,40274],{"class":50},[34,40299,1607],{"class":181},[34,40301,40302],{"class":50},"auto-fit",[34,40304,1798],{"class":181},[34,40306,40307],{"class":50},"minmax",[34,40309,1607],{"class":181},[34,40311,20899],{"class":50},[34,40313,38220],{"class":580},[34,40315,1798],{"class":181},[34,40317,8318],{"class":50},[34,40319,39493],{"class":580},[34,40321,11931],{"class":181},[34,40323,40324],{"class":40},"/* responsive */\n",[34,40326,40327,40330,40332,40334,40336,40338,40340,40342],{"class":36,"line":82},[34,40328,40329],{"class":50},"  grid-template-rows",[34,40331,182],{"class":181},[34,40333,20863],{"class":50},[34,40335,38220],{"class":580},[34,40337,38569],{"class":50},[34,40339,25168],{"class":50},[34,40341,38220],{"class":580},[34,40343,593],{"class":181},[34,40345,40346,40348,40350,40352,40354,40357],{"class":36,"line":88},[34,40347,40069],{"class":50},[34,40349,182],{"class":181},[34,40351,8318],{"class":50},[34,40353,38358],{"class":580},[34,40355,40356],{"class":181},";                                    ",[34,40358,40359],{"class":40},"/* row and column gap */\n",[34,40361,40362,40365,40367,40369,40371],{"class":36,"line":242},[34,40363,40364],{"class":50},"  row-gap",[34,40366,182],{"class":181},[34,40368,8318],{"class":50},[34,40370,38358],{"class":580},[34,40372,593],{"class":181},[34,40374,40375,40378,40380,40382,40384],{"class":36,"line":250},[34,40376,40377],{"class":50},"  column-gap",[34,40379,182],{"class":181},[34,40381,8324],{"class":50},[34,40383,38358],{"class":580},[34,40385,593],{"class":181},[34,40387,40388,40391,40393,40395,40397],{"class":36,"line":263},[34,40389,40390],{"class":50},"  justify-items",[34,40392,182],{"class":181},[34,40394,38887],{"class":50},[34,40396,40078],{"class":181},[34,40398,40399],{"class":40},"/* align items horizontally */\n",[34,40401,40402,40404,40406,40408,40410],{"class":36,"line":275},[34,40403,40040],{"class":50},[34,40405,182],{"class":181},[34,40407,38887],{"class":50},[34,40409,40113],{"class":181},[34,40411,40412],{"class":40},"/* align items vertically */\n",[34,40414,40415],{"class":36,"line":700},[34,40416,693],{"class":181},[34,40418,40419],{"class":36,"line":706},[34,40420,62],{"emptyLinePlaceholder":61},[34,40422,40423],{"class":36,"line":715},[34,40424,40094],{"class":40},[34,40426,40427,40430],{"class":36,"line":725},[34,40428,40429],{"class":47},".grid-item",[34,40431,661],{"class":181},[34,40433,40434,40437,40439,40441,40443,40445,40447],{"class":36,"line":734},[34,40435,40436],{"class":50},"  grid-column",[34,40438,182],{"class":181},[34,40440,8318],{"class":50},[34,40442,39286],{"class":181},[34,40444,3162],{"class":50},[34,40446,38305],{"class":181},[34,40448,40449],{"class":40},"/* span from column 1 to 3 */\n",[34,40451,40452,40454,40457,40459,40461],{"class":36,"line":742},[34,40453,40436],{"class":50},[34,40455,40456],{"class":181},": span ",[34,40458,8324],{"class":50},[34,40460,38378],{"class":181},[34,40462,40463],{"class":40},"/* span 2 columns */\n",[34,40465,40466,40469,40471,40473,40475,40477],{"class":36,"line":748},[34,40467,40468],{"class":50},"  grid-row",[34,40470,182],{"class":181},[34,40472,8318],{"class":50},[34,40474,39286],{"class":181},[34,40476,8324],{"class":50},[34,40478,593],{"class":181},[34,40480,40481,40484,40486,40489,40491],{"class":36,"line":754},[34,40482,40483],{"class":50},"  justify-self",[34,40485,182],{"class":181},[34,40487,40488],{"class":50},"end",[34,40490,38486],{"class":181},[34,40492,40493],{"class":40},"/* align this item horizontally */\n",[34,40495,40496,40498,40500,40503,40505],{"class":36,"line":759},[34,40497,40166],{"class":50},[34,40499,182],{"class":181},[34,40501,40502],{"class":50},"start",[34,40504,38486],{"class":181},[34,40506,40507],{"class":40},"/* align this item vertically */\n",[34,40509,40510],{"class":36,"line":771},[34,40511,693],{"class":181},[34,40513,40514],{"class":36,"line":794},[34,40515,62],{"emptyLinePlaceholder":61},[34,40517,40518],{"class":36,"line":824},[34,40519,40520],{"class":40},"/* Named grid areas */\n",[34,40522,40523,40526],{"class":36,"line":830},[34,40524,40525],{"class":47},".layout",[34,40527,661],{"class":181},[34,40529,40530,40533],{"class":36,"line":839},[34,40531,40532],{"class":50},"  grid-template-areas",[34,40534,193],{"class":181},[34,40536,40537],{"class":36,"line":854},[34,40538,40539],{"class":54},"    \"header header\"\n",[34,40541,40542],{"class":36,"line":860},[34,40543,40544],{"class":54},"    \"sidebar main\"\n",[34,40546,40547,40550],{"class":36,"line":865},[34,40548,40549],{"class":54},"    \"footer footer\"",[34,40551,593],{"class":181},[34,40553,40554],{"class":36,"line":870},[34,40555,693],{"class":181},[34,40557,40558,40561,40563,40566],{"class":36,"line":876},[34,40559,40560],{"class":47},".header",[34,40562,30251],{"class":181},[34,40564,40565],{"class":50},"grid-area",[34,40567,40568],{"class":181},": header; }\n",[34,40570,40571,40574,40576,40578],{"class":36,"line":885},[34,40572,40573],{"class":47},".sidebar",[34,40575,30251],{"class":181},[34,40577,40565],{"class":50},[34,40579,40580],{"class":181},": sidebar; }\n",[34,40582,40583,40586,40588,40590],{"class":36,"line":895},[34,40584,40585],{"class":47},".main",[34,40587,30251],{"class":181},[34,40589,40565],{"class":50},[34,40591,40592],{"class":181},": main; }\n",[34,40594,40595,40598,40600,40602],{"class":36,"line":904},[34,40596,40597],{"class":47},".footer",[34,40599,30251],{"class":181},[34,40601,40565],{"class":50},[34,40603,40604],{"class":181},": footer; }\n",[388,40606,40607],{},"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 .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 pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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);}",{"title":30,"searchDepth":44,"depth":44,"links":40609},[40610],{"id":40215,"depth":44,"text":40210},"Grid in CSS.",{},"/css/grid",{"title":40210,"description":40611},"css/grid",[38194,38615,982,38616],"aN5vEVC6-x0jqch0MEZ8AjbptM33m72bu1X6ii9UIdo",{"id":40619,"title":40620,"body":40621,"date":402,"description":40881,"extension":404,"meta":40882,"navigation":61,"order":263,"path":40883,"seo":40884,"stem":40885,"subject":38194,"tags":40886,"__hash__":40887},"topics/css/media-queries.md","Media Queries",{"type":8,"value":40622,"toc":40878},[40623,40626,40875],[11,40624,40620],{"id":40625},"media-queries",[25,40627,40629],{"className":38192,"code":40628,"language":38194,"meta":30,"style":30},"/* Mobile-first approach */\n.container {\n  width: 100%;\n  padding: 1rem;\n}\n\n/* Tablet and up */\n@media (min-width: 768px) {\n  .container {\n    max-width: 720px;\n    margin: 0 auto;\n  }\n}\n\n/* Desktop and up */\n@media (min-width: 1024px) {\n  .container {\n    max-width: 960px;\n  }\n}\n\n/* Other media features */\n@media (prefers-color-scheme: dark) {\n  body { background: #1a1a1a; color: white; }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  * { animation: none !important; }\n}\n",[20,40630,40631,40636,40643,40655,40667,40671,40675,40680,40699,40706,40720,40733,40737,40741,40745,40750,40766,40772,40785,40789,40793,40797,40802,40809,40836,40840,40844,40851,40871],{"__ignoreMap":30},[34,40632,40633],{"class":36,"line":37},[34,40634,40635],{"class":40},"/* Mobile-first approach */\n",[34,40637,40638,40641],{"class":36,"line":44},[34,40639,40640],{"class":47},".container",[34,40642,661],{"class":181},[34,40644,40645,40647,40649,40651,40653],{"class":36,"line":58},[34,40646,38213],{"class":50},[34,40648,182],{"class":181},[34,40650,20863],{"class":50},[34,40652,12797],{"class":580},[34,40654,593],{"class":181},[34,40656,40657,40659,40661,40663,40665],{"class":36,"line":65},[34,40658,38276],{"class":50},[34,40660,182],{"class":181},[34,40662,8318],{"class":50},[34,40664,38358],{"class":580},[34,40666,593],{"class":181},[34,40668,40669],{"class":36,"line":71},[34,40670,693],{"class":181},[34,40672,40673],{"class":36,"line":77},[34,40674,62],{"emptyLinePlaceholder":61},[34,40676,40677],{"class":36,"line":82},[34,40678,40679],{"class":40},"/* Tablet and up */\n",[34,40681,40682,40685,40687,40690,40692,40695,40697],{"class":36,"line":88},[34,40683,40684],{"class":580},"@media",[34,40686,3204],{"class":181},[34,40688,40689],{"class":50},"min-width",[34,40691,182],{"class":181},[34,40693,40694],{"class":50},"768",[34,40696,38220],{"class":580},[34,40698,2416],{"class":181},[34,40700,40701,40704],{"class":36,"line":242},[34,40702,40703],{"class":47},"  .container",[34,40705,661],{"class":181},[34,40707,40708,40711,40713,40716,40718],{"class":36,"line":250},[34,40709,40710],{"class":50},"    max-width",[34,40712,182],{"class":181},[34,40714,40715],{"class":50},"720",[34,40717,38220],{"class":580},[34,40719,593],{"class":181},[34,40721,40722,40725,40727,40729,40731],{"class":36,"line":263},[34,40723,40724],{"class":50},"    margin",[34,40726,182],{"class":181},[34,40728,2773],{"class":50},[34,40730,38569],{"class":50},[34,40732,593],{"class":181},[34,40734,40735],{"class":36,"line":275},[34,40736,857],{"class":181},[34,40738,40739],{"class":36,"line":700},[34,40740,693],{"class":181},[34,40742,40743],{"class":36,"line":706},[34,40744,62],{"emptyLinePlaceholder":61},[34,40746,40747],{"class":36,"line":715},[34,40748,40749],{"class":40},"/* Desktop and up */\n",[34,40751,40752,40754,40756,40758,40760,40762,40764],{"class":36,"line":725},[34,40753,40684],{"class":580},[34,40755,3204],{"class":181},[34,40757,40689],{"class":50},[34,40759,182],{"class":181},[34,40761,20181],{"class":50},[34,40763,38220],{"class":580},[34,40765,2416],{"class":181},[34,40767,40768,40770],{"class":36,"line":734},[34,40769,40703],{"class":47},[34,40771,661],{"class":181},[34,40773,40774,40776,40778,40781,40783],{"class":36,"line":742},[34,40775,40710],{"class":50},[34,40777,182],{"class":181},[34,40779,40780],{"class":50},"960",[34,40782,38220],{"class":580},[34,40784,593],{"class":181},[34,40786,40787],{"class":36,"line":748},[34,40788,857],{"class":181},[34,40790,40791],{"class":36,"line":754},[34,40792,693],{"class":181},[34,40794,40795],{"class":36,"line":759},[34,40796,62],{"emptyLinePlaceholder":61},[34,40798,40799],{"class":36,"line":771},[34,40800,40801],{"class":40},"/* Other media features */\n",[34,40803,40804,40806],{"class":36,"line":794},[34,40805,40684],{"class":580},[34,40807,40808],{"class":181}," (prefers-color-scheme: dark) {\n",[34,40810,40811,40814,40816,40819,40821,40824,40826,40829,40831,40834],{"class":36,"line":824},[34,40812,40813],{"class":177},"  body",[34,40815,30251],{"class":181},[34,40817,40818],{"class":50},"background",[34,40820,182],{"class":181},[34,40822,40823],{"class":50},"#1a1a1a",[34,40825,10268],{"class":181},[34,40827,40828],{"class":50},"color",[34,40830,182],{"class":181},[34,40832,40833],{"class":50},"white",[34,40835,34238],{"class":181},[34,40837,40838],{"class":36,"line":830},[34,40839,693],{"class":181},[34,40841,40842],{"class":36,"line":839},[34,40843,62],{"emptyLinePlaceholder":61},[34,40845,40846,40848],{"class":36,"line":854},[34,40847,40684],{"class":580},[34,40849,40850],{"class":181}," (prefers-reduced-motion: reduce) {\n",[34,40852,40853,40856,40858,40861,40863,40866,40869],{"class":36,"line":860},[34,40854,40855],{"class":177},"  *",[34,40857,30251],{"class":181},[34,40859,40860],{"class":50},"animation",[34,40862,182],{"class":181},[34,40864,40865],{"class":50},"none",[34,40867,40868],{"class":580}," !important",[34,40870,34238],{"class":181},[34,40872,40873],{"class":36,"line":865},[34,40874,693],{"class":181},[388,40876,40877],{},"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 .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 pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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":30,"searchDepth":44,"depth":44,"links":40879},[40880],{"id":40625,"depth":44,"text":40620},"Media Queries in CSS.",{},"/css/media-queries",{"title":40620,"description":40881},"css/media-queries",[38194,38615,982,38616],"SBsCpjZJhg9qMoMlehAyt05uF_0hwq67RftrvyFCaP0",{"id":40889,"title":40890,"body":40891,"date":2633,"description":40969,"extension":404,"meta":40970,"navigation":61,"order":37,"path":40971,"seo":40972,"stem":40973,"subject":38194,"tags":40974,"__hash__":40975},"topics/css/overview.md","CSS",{"type":8,"value":40892,"toc":40967},[40893],[309,40894,40895,40901,40907,40911,40915,40919,40925,40929,40935,40941,40945,40949,40953,40957,40963],{},[312,40896,40897],{},[145,40898,40900],{"href":40899},"/css/selectors","Selectors",[312,40902,40903],{},[145,40904,40906],{"href":40905},"/css/units","Units",[312,40908,40909],{},[145,40910,38184],{"href":38611},[312,40912,40913],{},[145,40914,39958],{"href":40203},[312,40916,40917],{},[145,40918,40210],{"href":40613},[312,40920,40921],{},[145,40922,40924],{"href":40923},"/css/typography","Typography",[312,40926,40927],{},[145,40928,38620],{"href":38967},[312,40930,40931],{},[145,40932,40934],{"href":40933},"/css/positioning","Positioning",[312,40936,40937],{},[145,40938,40940],{"href":40939},"/css/transitions-animations","Transitions & Animations",[312,40942,40943],{},[145,40944,40620],{"href":40883},[312,40946,40947],{},[145,40948,39341],{"href":39626},[312,40950,40951],{},[145,40952,39633],{"href":39848},[312,40954,40955],{},[145,40956,18143],{"href":39334},[312,40958,40959],{},[145,40960,40962],{"href":40961},"/css/vendor-prefixes","Vendor Prefixes",[312,40964,40965],{},[145,40966,39855],{"href":39951},{"title":30,"searchDepth":44,"depth":44,"links":40968},[],"Essential CSS properties, selectors, and modern layout techniques for styling web pages.",{},"/css/overview",{"title":40890,"description":40969},"css/overview",[38194,38615,982,38616],"TRlKD2rFPKFdm5hUoquRTIkcjfqeEVEMHI4wb6FCwRc",{"id":40977,"title":40934,"body":40978,"date":402,"description":41217,"extension":404,"meta":41218,"navigation":61,"order":242,"path":40933,"seo":41219,"stem":41220,"subject":38194,"tags":41221,"__hash__":41222},"topics/css/positioning.md",{"type":8,"value":40979,"toc":41214},[40980,40983,41211],[11,40981,40934],{"id":40982},"positioning",[25,40984,40986],{"className":38192,"code":40985,"language":38194,"meta":30,"style":30},".element {\n  position: static;                 /* default, normal flow */\n  position: relative;               /* relative to normal position */\n  position: absolute;               /* relative to positioned ancestor */\n  position: fixed;                  /* relative to viewport */\n  position: sticky;                 /* switches between relative and fixed */\n\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n\n  z-index: 100;                     /* stack order (higher = on top) */\n}\n\n/* Centering with position */\n.centered {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n",[20,40987,40988,40994,41008,41022,41035,41049,41063,41067,41078,41089,41100,41111,41115,41129,41133,41137,41142,41149,41159,41171,41183,41207],{"__ignoreMap":30},[34,40989,40990,40992],{"class":36,"line":37},[34,40991,38635],{"class":47},[34,40993,661],{"class":181},[34,40995,40996,40998,41000,41003,41005],{"class":36,"line":44},[34,40997,39042],{"class":50},[34,40999,182],{"class":181},[34,41001,41002],{"class":50},"static",[34,41004,38504],{"class":181},[34,41006,41007],{"class":40},"/* default, normal flow */\n",[34,41009,41010,41012,41014,41017,41019],{"class":36,"line":58},[34,41011,39042],{"class":50},[34,41013,182],{"class":181},[34,41015,41016],{"class":50},"relative",[34,41018,38305],{"class":181},[34,41020,41021],{"class":40},"/* relative to normal position */\n",[34,41023,41024,41026,41028,41030,41032],{"class":36,"line":65},[34,41025,39042],{"class":50},[34,41027,182],{"class":181},[34,41029,39047],{"class":50},[34,41031,38305],{"class":181},[34,41033,41034],{"class":40},"/* relative to positioned ancestor */\n",[34,41036,41037,41039,41041,41044,41046],{"class":36,"line":71},[34,41038,39042],{"class":50},[34,41040,182],{"class":181},[34,41042,41043],{"class":50},"fixed",[34,41045,38454],{"class":181},[34,41047,41048],{"class":40},"/* relative to viewport */\n",[34,41050,41051,41053,41055,41058,41060],{"class":36,"line":77},[34,41052,39042],{"class":50},[34,41054,182],{"class":181},[34,41056,41057],{"class":50},"sticky",[34,41059,38504],{"class":181},[34,41061,41062],{"class":40},"/* switches between relative and fixed */\n",[34,41064,41065],{"class":36,"line":82},[34,41066,62],{"emptyLinePlaceholder":61},[34,41068,41069,41072,41074,41076],{"class":36,"line":88},[34,41070,41071],{"class":50},"  top",[34,41073,182],{"class":181},[34,41075,2773],{"class":50},[34,41077,593],{"class":181},[34,41079,41080,41083,41085,41087],{"class":36,"line":242},[34,41081,41082],{"class":50},"  right",[34,41084,182],{"class":181},[34,41086,2773],{"class":50},[34,41088,593],{"class":181},[34,41090,41091,41094,41096,41098],{"class":36,"line":250},[34,41092,41093],{"class":50},"  bottom",[34,41095,182],{"class":181},[34,41097,2773],{"class":50},[34,41099,593],{"class":181},[34,41101,41102,41105,41107,41109],{"class":36,"line":263},[34,41103,41104],{"class":50},"  left",[34,41106,182],{"class":181},[34,41108,2773],{"class":50},[34,41110,593],{"class":181},[34,41112,41113],{"class":36,"line":275},[34,41114,62],{"emptyLinePlaceholder":61},[34,41116,41117,41120,41122,41124,41126],{"class":36,"line":700},[34,41118,41119],{"class":50},"  z-index",[34,41121,182],{"class":181},[34,41123,20863],{"class":50},[34,41125,40128],{"class":181},[34,41127,41128],{"class":40},"/* stack order (higher = on top) */\n",[34,41130,41131],{"class":36,"line":706},[34,41132,693],{"class":181},[34,41134,41135],{"class":36,"line":715},[34,41136,62],{"emptyLinePlaceholder":61},[34,41138,41139],{"class":36,"line":725},[34,41140,41141],{"class":40},"/* Centering with position */\n",[34,41143,41144,41147],{"class":36,"line":734},[34,41145,41146],{"class":47},".centered",[34,41148,661],{"class":181},[34,41150,41151,41153,41155,41157],{"class":36,"line":742},[34,41152,39042],{"class":50},[34,41154,182],{"class":181},[34,41156,39047],{"class":50},[34,41158,593],{"class":181},[34,41160,41161,41163,41165,41167,41169],{"class":36,"line":748},[34,41162,41071],{"class":50},[34,41164,182],{"class":181},[34,41166,24525],{"class":50},[34,41168,12797],{"class":580},[34,41170,593],{"class":181},[34,41172,41173,41175,41177,41179,41181],{"class":36,"line":754},[34,41174,41104],{"class":50},[34,41176,182],{"class":181},[34,41178,24525],{"class":50},[34,41180,12797],{"class":580},[34,41182,593],{"class":181},[34,41184,41185,41187,41189,41192,41194,41197,41199,41201,41203,41205],{"class":36,"line":759},[34,41186,2866],{"class":50},[34,41188,182],{"class":181},[34,41190,41191],{"class":50},"translate",[34,41193,1607],{"class":181},[34,41195,41196],{"class":50},"-50",[34,41198,12797],{"class":580},[34,41200,1798],{"class":181},[34,41202,41196],{"class":50},[34,41204,12797],{"class":580},[34,41206,1586],{"class":181},[34,41208,41209],{"class":36,"line":771},[34,41210,693],{"class":181},[388,41212,41213],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .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":30,"searchDepth":44,"depth":44,"links":41215},[41216],{"id":40982,"depth":44,"text":40934},"Positioning in CSS.",{},{"title":40934,"description":41217},"css/positioning",[38194,38615,982,38616],"CfFV8Gfz0H1QcjDAlZgWt_EWRqxWdK1NYZCrVsZ0Kbo",{"id":41224,"title":40900,"body":41225,"date":402,"description":41731,"extension":404,"meta":41732,"navigation":61,"order":44,"path":40899,"seo":41733,"stem":41734,"subject":38194,"tags":41735,"__hash__":41736},"topics/css/selectors.md",{"type":8,"value":41226,"toc":41728},[41227,41230,41725],[11,41228,40900],{"id":41229},"selectors",[25,41231,41233],{"className":38192,"code":41232,"language":38194,"meta":30,"style":30},"/* Element selector */\np { color: blue; }\n\n/* Class selector */\n.card { padding: 1rem; }\n\n/* ID selector */\n#header { height: 60px; }\n\n/* Attribute selectors */\n[type=\"text\"] { border: 1px solid gray; }\n[href^=\"https\"] { color: green; }     /* starts with */\n[href$=\".pdf\"] { color: red; }        /* ends with */\n[class*=\"btn\"] { cursor: pointer; }   /* contains */\n\n/* Combinators */\ndiv p { }      /* descendant */\ndiv > p { }    /* direct child */\ndiv + p { }    /* adjacent sibling */\ndiv ~ p { }    /* general sibling */\n\n/* Pseudo-classes */\na:hover { }    /* mouse over */\na:active { }   /* being clicked */\na:visited { }  /* visited link */\ninput:focus { }\ninput:disabled { }\nli:first-child { }\nli:last-child { }\nli:nth-child(2n) { }  /* even items */\nli:nth-child(2n+1) { } /* odd items */\np:not(.special) { }\n\n/* Pseudo-elements */\np::before { content: \"→ \"; }\np::after { content: \" ←\"; }\np::first-line { font-weight: bold; }\np::first-letter { font-size: 2em; }\n::selection { background: yellow; }\n",[20,41234,41235,41240,41255,41259,41264,41281,41285,41290,41309,41313,41318,41349,41377,41403,41430,41434,41439,41452,41466,41479,41493,41497,41502,41514,41527,41540,41549,41558,41567,41576,41594,41611,41626,41630,41635,41653,41670,41689,41709],{"__ignoreMap":30},[34,41236,41237],{"class":36,"line":37},[34,41238,41239],{"class":40},"/* Element selector */\n",[34,41241,41242,41244,41246,41248,41250,41253],{"class":36,"line":44},[34,41243,16],{"class":177},[34,41245,30251],{"class":181},[34,41247,40828],{"class":50},[34,41249,182],{"class":181},[34,41251,41252],{"class":50},"blue",[34,41254,34238],{"class":181},[34,41256,41257],{"class":36,"line":58},[34,41258,62],{"emptyLinePlaceholder":61},[34,41260,41261],{"class":36,"line":65},[34,41262,41263],{"class":40},"/* Class selector */\n",[34,41265,41266,41268,41270,41273,41275,41277,41279],{"class":36,"line":71},[34,41267,39749],{"class":47},[34,41269,30251],{"class":181},[34,41271,41272],{"class":50},"padding",[34,41274,182],{"class":181},[34,41276,8318],{"class":50},[34,41278,38358],{"class":580},[34,41280,34238],{"class":181},[34,41282,41283],{"class":36,"line":77},[34,41284,62],{"emptyLinePlaceholder":61},[34,41286,41287],{"class":36,"line":82},[34,41288,41289],{"class":40},"/* ID selector */\n",[34,41291,41292,41295,41297,41300,41302,41305,41307],{"class":36,"line":88},[34,41293,41294],{"class":47},"#header",[34,41296,30251],{"class":181},[34,41298,41299],{"class":50},"height",[34,41301,182],{"class":181},[34,41303,41304],{"class":50},"60",[34,41306,38220],{"class":580},[34,41308,34238],{"class":181},[34,41310,41311],{"class":36,"line":242},[34,41312,62],{"emptyLinePlaceholder":61},[34,41314,41315],{"class":36,"line":250},[34,41316,41317],{"class":40},"/* Attribute selectors */\n",[34,41319,41320,41322,41325,41327,41330,41333,41336,41338,41340,41342,41344,41347],{"class":36,"line":263},[34,41321,10260],{"class":181},[34,41323,41324],{"class":47},"type",[34,41326,1301],{"class":580},[34,41328,41329],{"class":54},"\"text\"",[34,41331,41332],{"class":181},"] { ",[34,41334,41335],{"class":50},"border",[34,41337,182],{"class":181},[34,41339,8318],{"class":50},[34,41341,38220],{"class":580},[34,41343,38530],{"class":50},[34,41345,41346],{"class":50}," gray",[34,41348,34238],{"class":181},[34,41350,41351,41353,41356,41359,41362,41364,41366,41368,41371,41374],{"class":36,"line":275},[34,41352,10260],{"class":181},[34,41354,41355],{"class":47},"href",[34,41357,41358],{"class":580},"^=",[34,41360,41361],{"class":54},"\"https\"",[34,41363,41332],{"class":181},[34,41365,40828],{"class":50},[34,41367,182],{"class":181},[34,41369,41370],{"class":50},"green",[34,41372,41373],{"class":181},"; }     ",[34,41375,41376],{"class":40},"/* starts with */\n",[34,41378,41379,41381,41383,41386,41389,41391,41393,41395,41397,41400],{"class":36,"line":700},[34,41380,10260],{"class":181},[34,41382,41355],{"class":47},[34,41384,41385],{"class":580},"$=",[34,41387,41388],{"class":54},"\".pdf\"",[34,41390,41332],{"class":181},[34,41392,40828],{"class":50},[34,41394,182],{"class":181},[34,41396,38652],{"class":50},[34,41398,41399],{"class":181},"; }        ",[34,41401,41402],{"class":40},"/* ends with */\n",[34,41404,41405,41407,41409,41411,41414,41416,41419,41421,41424,41427],{"class":36,"line":706},[34,41406,10260],{"class":181},[34,41408,30060],{"class":47},[34,41410,18412],{"class":580},[34,41412,41413],{"class":54},"\"btn\"",[34,41415,41332],{"class":181},[34,41417,41418],{"class":50},"cursor",[34,41420,182],{"class":181},[34,41422,41423],{"class":50},"pointer",[34,41425,41426],{"class":181},"; }   ",[34,41428,41429],{"class":40},"/* contains */\n",[34,41431,41432],{"class":36,"line":715},[34,41433,62],{"emptyLinePlaceholder":61},[34,41435,41436],{"class":36,"line":725},[34,41437,41438],{"class":40},"/* Combinators */\n",[34,41440,41441,41443,41446,41449],{"class":36,"line":734},[34,41442,1240],{"class":177},[34,41444,41445],{"class":177}," p",[34,41447,41448],{"class":181}," { }      ",[34,41450,41451],{"class":40},"/* descendant */\n",[34,41453,41454,41456,41458,41460,41463],{"class":36,"line":742},[34,41455,1240],{"class":177},[34,41457,9009],{"class":580},[34,41459,41445],{"class":177},[34,41461,41462],{"class":181}," { }    ",[34,41464,41465],{"class":40},"/* direct child */\n",[34,41467,41468,41470,41472,41474,41476],{"class":36,"line":748},[34,41469,1240],{"class":177},[34,41471,11537],{"class":580},[34,41473,41445],{"class":177},[34,41475,41462],{"class":181},[34,41477,41478],{"class":40},"/* adjacent sibling */\n",[34,41480,41481,41483,41486,41488,41490],{"class":36,"line":754},[34,41482,1240],{"class":177},[34,41484,41485],{"class":580}," ~",[34,41487,41445],{"class":177},[34,41489,41462],{"class":181},[34,41491,41492],{"class":40},"/* general sibling */\n",[34,41494,41495],{"class":36,"line":759},[34,41496,62],{"emptyLinePlaceholder":61},[34,41498,41499],{"class":36,"line":771},[34,41500,41501],{"class":40},"/* Pseudo-classes */\n",[34,41503,41504,41506,41509,41511],{"class":36,"line":794},[34,41505,145],{"class":177},[34,41507,41508],{"class":47},":hover",[34,41510,41462],{"class":181},[34,41512,41513],{"class":40},"/* mouse over */\n",[34,41515,41516,41518,41521,41524],{"class":36,"line":824},[34,41517,145],{"class":177},[34,41519,41520],{"class":47},":active",[34,41522,41523],{"class":181}," { }   ",[34,41525,41526],{"class":40},"/* being clicked */\n",[34,41528,41529,41531,41534,41537],{"class":36,"line":830},[34,41530,145],{"class":177},[34,41532,41533],{"class":47},":visited",[34,41535,41536],{"class":181}," { }  ",[34,41538,41539],{"class":40},"/* visited link */\n",[34,41541,41542,41544,41547],{"class":36,"line":839},[34,41543,4600],{"class":177},[34,41545,41546],{"class":47},":focus",[34,41548,34540],{"class":181},[34,41550,41551,41553,41556],{"class":36,"line":854},[34,41552,4600],{"class":177},[34,41554,41555],{"class":47},":disabled",[34,41557,34540],{"class":181},[34,41559,41560,41562,41565],{"class":36,"line":860},[34,41561,312],{"class":177},[34,41563,41564],{"class":47},":first-child",[34,41566,34540],{"class":181},[34,41568,41569,41571,41574],{"class":36,"line":865},[34,41570,312],{"class":177},[34,41572,41573],{"class":47},":last-child",[34,41575,34540],{"class":181},[34,41577,41578,41580,41583,41585,41588,41591],{"class":36,"line":870},[34,41579,312],{"class":177},[34,41581,41582],{"class":47},":nth-child",[34,41584,1607],{"class":181},[34,41586,41587],{"class":50},"2n",[34,41589,41590],{"class":181},") { }  ",[34,41592,41593],{"class":40},"/* even items */\n",[34,41595,41596,41598,41600,41602,41605,41608],{"class":36,"line":876},[34,41597,312],{"class":177},[34,41599,41582],{"class":47},[34,41601,1607],{"class":181},[34,41603,41604],{"class":50},"2n+1",[34,41606,41607],{"class":181},") { } ",[34,41609,41610],{"class":40},"/* odd items */\n",[34,41612,41613,41615,41618,41620,41623],{"class":36,"line":885},[34,41614,16],{"class":177},[34,41616,41617],{"class":47},":not",[34,41619,1607],{"class":181},[34,41621,41622],{"class":47},".special",[34,41624,41625],{"class":181},") { }\n",[34,41627,41628],{"class":36,"line":895},[34,41629,62],{"emptyLinePlaceholder":61},[34,41631,41632],{"class":36,"line":904},[34,41633,41634],{"class":40},"/* Pseudo-elements */\n",[34,41636,41637,41639,41641,41643,41646,41648,41651],{"class":36,"line":915},[34,41638,16],{"class":177},[34,41640,38998],{"class":47},[34,41642,30251],{"class":181},[34,41644,41645],{"class":50},"content",[34,41647,182],{"class":181},[34,41649,41650],{"class":54},"\"→ \"",[34,41652,34238],{"class":181},[34,41654,41655,41657,41659,41661,41663,41665,41668],{"class":36,"line":927},[34,41656,16],{"class":177},[34,41658,39005],{"class":47},[34,41660,30251],{"class":181},[34,41662,41645],{"class":50},[34,41664,182],{"class":181},[34,41666,41667],{"class":54},"\" ←\"",[34,41669,34238],{"class":181},[34,41671,41672,41674,41677,41679,41682,41684,41687],{"class":36,"line":932},[34,41673,16],{"class":177},[34,41675,41676],{"class":47},"::first-line",[34,41678,30251],{"class":181},[34,41680,41681],{"class":50},"font-weight",[34,41683,182],{"class":181},[34,41685,41686],{"class":50},"bold",[34,41688,34238],{"class":181},[34,41690,41691,41693,41696,41698,41701,41703,41705,41707],{"class":36,"line":944},[34,41692,16],{"class":177},[34,41694,41695],{"class":47},"::first-letter",[34,41697,30251],{"class":181},[34,41699,41700],{"class":50},"font-size",[34,41702,182],{"class":181},[34,41704,8324],{"class":50},[34,41706,8563],{"class":580},[34,41708,34238],{"class":181},[34,41710,41711,41714,41716,41718,41720,41723],{"class":36,"line":966},[34,41712,41713],{"class":47},"::selection",[34,41715,30251],{"class":181},[34,41717,40818],{"class":50},[34,41719,182],{"class":181},[34,41721,41722],{"class":50},"yellow",[34,41724,34238],{"class":181},[388,41726,41727],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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 pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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);}",{"title":30,"searchDepth":44,"depth":44,"links":41729},[41730],{"id":41229,"depth":44,"text":40900},"Selectors in CSS.",{},{"title":40900,"description":41731},"css/selectors",[38194,38615,982,38616],"ZTrQ0zeOYMc1TTMVnF5WoiJ4Et-gv9BYMF-h7qlHlWU",{"id":41738,"title":40940,"body":41739,"date":402,"description":42042,"extension":404,"meta":42043,"navigation":61,"order":250,"path":40939,"seo":42044,"stem":42045,"subject":38194,"tags":42046,"__hash__":42047},"topics/css/transitions-animations.md",{"type":8,"value":41740,"toc":42039},[41741,41744,42036],[11,41742,40940],{"id":41743},"transitions-animations",[25,41745,41747],{"className":38192,"code":41746,"language":38194,"meta":30,"style":30},"/* Transitions */\n.button {\n  transition: all 0.3s ease;\n  transition: background-color 0.3s, transform 0.2s;\n  transition-timing-function: ease-in-out; /* linear | ease | ease-in | ease-out */\n}\n.button:hover {\n  background-color: blue;\n  transform: scale(1.05);\n}\n\n/* Keyframe animations */\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n    transform: translateY(-20px);\n  }\n  to {\n    opacity: 1;\n    transform: translateY(0);\n  }\n}\n\n.animated {\n  animation: fadeIn 0.5s ease-out forwards;\n  animation-delay: 0.2s;\n  animation-iteration-count: infinite; /* or a number */\n  animation-direction: alternate;      /* normal | reverse | alternate */\n}\n",[20,41748,41749,41754,41761,41780,41802,41817,41821,41828,41838,41854,41858,41862,41867,41877,41884,41895,41914,41918,41925,41935,41949,41953,41957,41961,41968,41988,42001,42016,42032],{"__ignoreMap":30},[34,41750,41751],{"class":36,"line":37},[34,41752,41753],{"class":40},"/* Transitions */\n",[34,41755,41756,41759],{"class":36,"line":44},[34,41757,41758],{"class":47},".button",[34,41760,661],{"class":181},[34,41762,41763,41766,41768,41770,41773,41775,41778],{"class":36,"line":58},[34,41764,41765],{"class":50},"  transition",[34,41767,182],{"class":181},[34,41769,17175],{"class":50},[34,41771,41772],{"class":50}," 0.3",[34,41774,523],{"class":580},[34,41776,41777],{"class":50}," ease",[34,41779,593],{"class":181},[34,41781,41782,41784,41787,41790,41792,41795,41798,41800],{"class":36,"line":65},[34,41783,41765],{"class":50},[34,41785,41786],{"class":181},": background-color ",[34,41788,41789],{"class":50},"0.3",[34,41791,523],{"class":580},[34,41793,41794],{"class":181},", transform ",[34,41796,41797],{"class":50},"0.2",[34,41799,523],{"class":580},[34,41801,593],{"class":181},[34,41803,41804,41807,41809,41812,41814],{"class":36,"line":71},[34,41805,41806],{"class":50},"  transition-timing-function",[34,41808,182],{"class":181},[34,41810,41811],{"class":50},"ease-in-out",[34,41813,10268],{"class":181},[34,41815,41816],{"class":40},"/* linear | ease | ease-in | ease-out */\n",[34,41818,41819],{"class":36,"line":77},[34,41820,693],{"class":181},[34,41822,41823,41826],{"class":36,"line":82},[34,41824,41825],{"class":47},".button:hover",[34,41827,661],{"class":181},[34,41829,41830,41832,41834,41836],{"class":36,"line":88},[34,41831,38838],{"class":50},[34,41833,182],{"class":181},[34,41835,41252],{"class":50},[34,41837,593],{"class":181},[34,41839,41840,41842,41844,41847,41849,41852],{"class":36,"line":242},[34,41841,2866],{"class":50},[34,41843,182],{"class":181},[34,41845,41846],{"class":50},"scale",[34,41848,1607],{"class":181},[34,41850,41851],{"class":50},"1.05",[34,41853,1586],{"class":181},[34,41855,41856],{"class":36,"line":250},[34,41857,693],{"class":181},[34,41859,41860],{"class":36,"line":263},[34,41861,62],{"emptyLinePlaceholder":61},[34,41863,41864],{"class":36,"line":275},[34,41865,41866],{"class":40},"/* Keyframe animations */\n",[34,41868,41869,41872,41875],{"class":36,"line":700},[34,41870,41871],{"class":580},"@keyframes",[34,41873,41874],{"class":675}," fadeIn",[34,41876,661],{"class":181},[34,41878,41879,41882],{"class":36,"line":706},[34,41880,41881],{"class":47},"  from",[34,41883,661],{"class":181},[34,41885,41886,41889,41891,41893],{"class":36,"line":715},[34,41887,41888],{"class":50},"    opacity",[34,41890,182],{"class":181},[34,41892,2773],{"class":50},[34,41894,593],{"class":181},[34,41896,41897,41900,41902,41905,41907,41910,41912],{"class":36,"line":725},[34,41898,41899],{"class":50},"    transform",[34,41901,182],{"class":181},[34,41903,41904],{"class":50},"translateY",[34,41906,1607],{"class":181},[34,41908,41909],{"class":50},"-20",[34,41911,38220],{"class":580},[34,41913,1586],{"class":181},[34,41915,41916],{"class":36,"line":734},[34,41917,857],{"class":181},[34,41919,41920,41923],{"class":36,"line":742},[34,41921,41922],{"class":47},"  to",[34,41924,661],{"class":181},[34,41926,41927,41929,41931,41933],{"class":36,"line":748},[34,41928,41888],{"class":50},[34,41930,182],{"class":181},[34,41932,8318],{"class":50},[34,41934,593],{"class":181},[34,41936,41937,41939,41941,41943,41945,41947],{"class":36,"line":754},[34,41938,41899],{"class":50},[34,41940,182],{"class":181},[34,41942,41904],{"class":50},[34,41944,1607],{"class":181},[34,41946,2773],{"class":50},[34,41948,1586],{"class":181},[34,41950,41951],{"class":36,"line":759},[34,41952,857],{"class":181},[34,41954,41955],{"class":36,"line":771},[34,41956,693],{"class":181},[34,41958,41959],{"class":36,"line":794},[34,41960,62],{"emptyLinePlaceholder":61},[34,41962,41963,41966],{"class":36,"line":824},[34,41964,41965],{"class":47},".animated",[34,41967,661],{"class":181},[34,41969,41970,41973,41976,41978,41980,41983,41986],{"class":36,"line":830},[34,41971,41972],{"class":50},"  animation",[34,41974,41975],{"class":181},": fadeIn ",[34,41977,38726],{"class":50},[34,41979,523],{"class":580},[34,41981,41982],{"class":50}," ease-out",[34,41984,41985],{"class":50}," forwards",[34,41987,593],{"class":181},[34,41989,41990,41993,41995,41997,41999],{"class":36,"line":839},[34,41991,41992],{"class":50},"  animation-delay",[34,41994,182],{"class":181},[34,41996,41797],{"class":50},[34,41998,523],{"class":580},[34,42000,593],{"class":181},[34,42002,42003,42006,42008,42011,42013],{"class":36,"line":854},[34,42004,42005],{"class":50},"  animation-iteration-count",[34,42007,182],{"class":181},[34,42009,42010],{"class":50},"infinite",[34,42012,10268],{"class":181},[34,42014,42015],{"class":40},"/* or a number */\n",[34,42017,42018,42021,42023,42026,42029],{"class":36,"line":860},[34,42019,42020],{"class":50},"  animation-direction",[34,42022,182],{"class":181},[34,42024,42025],{"class":50},"alternate",[34,42027,42028],{"class":181},";      ",[34,42030,42031],{"class":40},"/* normal | reverse | alternate */\n",[34,42033,42034],{"class":36,"line":865},[34,42035,693],{"class":181},[388,42037,42038],{},"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 .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 pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":42040},[42041],{"id":41743,"depth":44,"text":40940},"Transitions & Animations in CSS.",{},{"title":40940,"description":42042},"css/transitions-animations",[38194,38615,982,38616],"2eGD5dkFJ2B7XGdJKJ733-BPRZeme9dEGge5PelVsM4",{"id":42049,"title":40924,"body":42050,"date":402,"description":42271,"extension":404,"meta":42272,"navigation":61,"order":82,"path":40923,"seo":42273,"stem":42274,"subject":38194,"tags":42275,"__hash__":42276},"topics/css/typography.md",{"type":8,"value":42051,"toc":42268},[42052,42055,42265],[11,42053,40924],{"id":42054},"typography",[25,42056,42058],{"className":38192,"code":42057,"language":38194,"meta":30,"style":30},".text {\n  /* Font properties */\n  font-family: 'Arial', sans-serif;\n  font-size: 1rem;                  /* 16px default */\n  font-weight: 400;                 /* 100-900, normal=400, bold=700 */\n  font-style: italic;\n  line-height: 1.5;\n\n  /* Text properties */\n  text-align: center;               /* left | right | center | justify */\n  text-decoration: underline;       /* none | underline | line-through */\n  text-transform: uppercase;        /* none | uppercase | lowercase | capitalize */\n  letter-spacing: 0.05em;\n  word-spacing: 0.1em;\n  white-space: nowrap;              /* prevent wrapping */\n  text-overflow: ellipsis;          /* requires overflow: hidden */\n  overflow: hidden;\n}\n",[20,42059,42060,42067,42072,42089,42104,42119,42131,42143,42147,42152,42166,42181,42197,42211,42225,42238,42251,42261],{"__ignoreMap":30},[34,42061,42062,42065],{"class":36,"line":37},[34,42063,42064],{"class":47},".text",[34,42066,661],{"class":181},[34,42068,42069],{"class":36,"line":44},[34,42070,42071],{"class":40},"  /* Font properties */\n",[34,42073,42074,42077,42079,42082,42084,42087],{"class":36,"line":58},[34,42075,42076],{"class":50},"  font-family",[34,42078,182],{"class":181},[34,42080,42081],{"class":54},"'Arial'",[34,42083,1798],{"class":181},[34,42085,42086],{"class":50},"sans-serif",[34,42088,593],{"class":181},[34,42090,42091,42093,42095,42097,42099,42101],{"class":36,"line":65},[34,42092,39528],{"class":50},[34,42094,182],{"class":181},[34,42096,8318],{"class":50},[34,42098,38358],{"class":580},[34,42100,38454],{"class":181},[34,42102,42103],{"class":40},"/* 16px default */\n",[34,42105,42106,42109,42111,42114,42116],{"class":36,"line":71},[34,42107,42108],{"class":50},"  font-weight",[34,42110,182],{"class":181},[34,42112,42113],{"class":50},"400",[34,42115,38504],{"class":181},[34,42117,42118],{"class":40},"/* 100-900, normal=400, bold=700 */\n",[34,42120,42121,42124,42126,42129],{"class":36,"line":77},[34,42122,42123],{"class":50},"  font-style",[34,42125,182],{"class":181},[34,42127,42128],{"class":50},"italic",[34,42130,593],{"class":181},[34,42132,42133,42136,42138,42141],{"class":36,"line":82},[34,42134,42135],{"class":50},"  line-height",[34,42137,182],{"class":181},[34,42139,42140],{"class":50},"1.5",[34,42142,593],{"class":181},[34,42144,42145],{"class":36,"line":88},[34,42146,62],{"emptyLinePlaceholder":61},[34,42148,42149],{"class":36,"line":242},[34,42150,42151],{"class":40},"  /* Text properties */\n",[34,42153,42154,42157,42159,42161,42163],{"class":36,"line":250},[34,42155,42156],{"class":50},"  text-align",[34,42158,182],{"class":181},[34,42160,38887],{"class":50},[34,42162,38305],{"class":181},[34,42164,42165],{"class":40},"/* left | right | center | justify */\n",[34,42167,42168,42171,42173,42176,42178],{"class":36,"line":263},[34,42169,42170],{"class":50},"  text-decoration",[34,42172,182],{"class":181},[34,42174,42175],{"class":50},"underline",[34,42177,38395],{"class":181},[34,42179,42180],{"class":40},"/* none | underline | line-through */\n",[34,42182,42183,42186,42188,42191,42194],{"class":36,"line":275},[34,42184,42185],{"class":50},"  text-transform",[34,42187,182],{"class":181},[34,42189,42190],{"class":50},"uppercase",[34,42192,42193],{"class":181},";        ",[34,42195,42196],{"class":40},"/* none | uppercase | lowercase | capitalize */\n",[34,42198,42199,42202,42204,42207,42209],{"class":36,"line":700},[34,42200,42201],{"class":50},"  letter-spacing",[34,42203,182],{"class":181},[34,42205,42206],{"class":50},"0.05",[34,42208,8563],{"class":580},[34,42210,593],{"class":181},[34,42212,42213,42216,42218,42221,42223],{"class":36,"line":706},[34,42214,42215],{"class":50},"  word-spacing",[34,42217,182],{"class":181},[34,42219,42220],{"class":50},"0.1",[34,42222,8563],{"class":580},[34,42224,593],{"class":181},[34,42226,42227,42229,42231,42233,42235],{"class":36,"line":715},[34,42228,39225],{"class":50},[34,42230,182],{"class":181},[34,42232,39230],{"class":50},[34,42234,38378],{"class":181},[34,42236,42237],{"class":40},"/* prevent wrapping */\n",[34,42239,42240,42242,42244,42246,42248],{"class":36,"line":725},[34,42241,39247],{"class":50},[34,42243,182],{"class":181},[34,42245,39252],{"class":50},[34,42247,40032],{"class":181},[34,42249,42250],{"class":40},"/* requires overflow: hidden */\n",[34,42252,42253,42255,42257,42259],{"class":36,"line":734},[34,42254,39101],{"class":50},[34,42256,182],{"class":181},[34,42258,39106],{"class":50},[34,42260,593],{"class":181},[34,42262,42263],{"class":36,"line":742},[34,42264,693],{"class":181},[388,42266,42267],{},"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 .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}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":42269},[42270],{"id":42054,"depth":44,"text":40924},"Typography in CSS.",{},{"title":40924,"description":42271},"css/typography",[38194,38615,982,38616],"ZoPM2K9BVc1iVFreqY3pZQHajzD7RadmLSvgkJox0rQ",{"id":42278,"title":40906,"body":42279,"date":402,"description":42461,"extension":404,"meta":42462,"navigation":61,"order":58,"path":40905,"seo":42463,"stem":42464,"subject":38194,"tags":42465,"__hash__":42466},"topics/css/units.md",{"type":8,"value":42280,"toc":42458},[42281,42284,42455],[11,42282,40906],{"id":42283},"units",[25,42285,42287],{"className":38192,"code":42286,"language":38194,"meta":30,"style":30},"/* Absolute units */\nwidth: 100px;                       /* pixels - fixed size */\nwidth: 1in;                         /* inches */\nwidth: 2.54cm;                      /* centimeters */\nwidth: 12pt;                        /* points (1pt = 1/72 inch) */\n\n/* Relative units */\nfont-size: 1rem;                    /* relative to root font size (16px default) */\nfont-size: 1em;                     /* relative to parent font size */\nwidth: 50%;                         /* percentage of parent */\nwidth: 100vw;                       /* 100% of viewport width */\nheight: 100vh;                      /* 100% of viewport height */\nwidth: 100dvw;                      /* dynamic viewport width (mobile-friendly) */\nheight: 100dvh;                     /* dynamic viewport height (mobile-friendly) */\nfont-size: 4vmin;                   /* 4% of viewport's smaller dimension */\nfont-size: 4vmax;                   /* 4% of viewport's larger dimension */\nwidth: 50ch;                        /* width of \"0\" character */\nheight: 2lh;                        /* line height of element */\n\n/* Container query units */\nwidth: 50cqw;                       /* 50% of container width */\nheight: 50cqh;                      /* 50% of container height */\n",[20,42288,42289,42294,42302,42310,42318,42326,42330,42335,42345,42355,42363,42371,42379,42387,42395,42405,42415,42423,42431,42435,42439,42447],{"__ignoreMap":30},[34,42290,42291],{"class":36,"line":37},[34,42292,42293],{"class":40},"/* Absolute units */\n",[34,42295,42296,42299],{"class":36,"line":44},[34,42297,42298],{"class":181},"width: 100px;                       ",[34,42300,42301],{"class":40},"/* pixels - fixed size */\n",[34,42303,42304,42307],{"class":36,"line":58},[34,42305,42306],{"class":181},"width: 1in;                         ",[34,42308,42309],{"class":40},"/* inches */\n",[34,42311,42312,42315],{"class":36,"line":65},[34,42313,42314],{"class":181},"width: 2.54cm;                      ",[34,42316,42317],{"class":40},"/* centimeters */\n",[34,42319,42320,42323],{"class":36,"line":71},[34,42321,42322],{"class":181},"width: 12pt;                        ",[34,42324,42325],{"class":40},"/* points (1pt = 1/72 inch) */\n",[34,42327,42328],{"class":36,"line":77},[34,42329,62],{"emptyLinePlaceholder":61},[34,42331,42332],{"class":36,"line":82},[34,42333,42334],{"class":40},"/* Relative units */\n",[34,42336,42337,42339,42342],{"class":36,"line":88},[34,42338,41700],{"class":177},[34,42340,42341],{"class":181},": 1rem;                    ",[34,42343,42344],{"class":40},"/* relative to root font size (16px default) */\n",[34,42346,42347,42349,42352],{"class":36,"line":242},[34,42348,41700],{"class":177},[34,42350,42351],{"class":181},": 1em;                     ",[34,42353,42354],{"class":40},"/* relative to parent font size */\n",[34,42356,42357,42360],{"class":36,"line":250},[34,42358,42359],{"class":181},"width: 50%;                         ",[34,42361,42362],{"class":40},"/* percentage of parent */\n",[34,42364,42365,42368],{"class":36,"line":263},[34,42366,42367],{"class":181},"width: 100vw;                       ",[34,42369,42370],{"class":40},"/* 100% of viewport width */\n",[34,42372,42373,42376],{"class":36,"line":275},[34,42374,42375],{"class":181},"height: 100vh;                      ",[34,42377,42378],{"class":40},"/* 100% of viewport height */\n",[34,42380,42381,42384],{"class":36,"line":700},[34,42382,42383],{"class":181},"width: 100dvw;                      ",[34,42385,42386],{"class":40},"/* dynamic viewport width (mobile-friendly) */\n",[34,42388,42389,42392],{"class":36,"line":706},[34,42390,42391],{"class":181},"height: 100dvh;                     ",[34,42393,42394],{"class":40},"/* dynamic viewport height (mobile-friendly) */\n",[34,42396,42397,42399,42402],{"class":36,"line":715},[34,42398,41700],{"class":177},[34,42400,42401],{"class":181},": 4vmin;                   ",[34,42403,42404],{"class":40},"/* 4% of viewport's smaller dimension */\n",[34,42406,42407,42409,42412],{"class":36,"line":725},[34,42408,41700],{"class":177},[34,42410,42411],{"class":181},": 4vmax;                   ",[34,42413,42414],{"class":40},"/* 4% of viewport's larger dimension */\n",[34,42416,42417,42420],{"class":36,"line":734},[34,42418,42419],{"class":181},"width: 50ch;                        ",[34,42421,42422],{"class":40},"/* width of \"0\" character */\n",[34,42424,42425,42428],{"class":36,"line":742},[34,42426,42427],{"class":181},"height: 2lh;                        ",[34,42429,42430],{"class":40},"/* line height of element */\n",[34,42432,42433],{"class":36,"line":748},[34,42434,62],{"emptyLinePlaceholder":61},[34,42436,42437],{"class":36,"line":754},[34,42438,39516],{"class":40},[34,42440,42441,42444],{"class":36,"line":759},[34,42442,42443],{"class":181},"width: 50cqw;                       ",[34,42445,42446],{"class":40},"/* 50% of container width */\n",[34,42448,42449,42452],{"class":36,"line":771},[34,42450,42451],{"class":181},"height: 50cqh;                      ",[34,42453,42454],{"class":40},"/* 50% of container height */\n",[388,42456,42457],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .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":30,"searchDepth":44,"depth":44,"links":42459},[42460],{"id":42283,"depth":44,"text":40906},"Units in CSS.",{},{"title":40906,"description":42461},"css/units",[38194,38615,982,38616],"FPC3tMw4XeUszlJq0zJiO4pcbXQ-wr8z41TS1Cdokgk",{"id":42468,"title":40962,"body":42469,"date":402,"description":42844,"extension":404,"meta":42845,"navigation":61,"order":715,"path":40961,"seo":42846,"stem":42847,"subject":38194,"tags":42848,"__hash__":42849},"topics/css/vendor-prefixes.md",{"type":8,"value":42470,"toc":42841},[42471,42474,42839],[11,42472,40962],{"id":42473},"vendor-prefixes",[25,42475,42477],{"className":38192,"code":42476,"language":38194,"meta":30,"style":30},"/* Browser-specific prefixes for experimental features */\n.element {\n  -webkit-appearance: none;         /* Chrome, Safari, Edge */\n  -moz-appearance: none;            /* Firefox */\n  -ms-appearance: none;             /* Internet Explorer */\n  appearance: none;                 /* Standard (always include last) */\n}\n\n/* Common prefixed properties */\n.box {\n  -webkit-backdrop-filter: blur(10px);\n  backdrop-filter: blur(10px);\n\n  -webkit-text-stroke: 1px black;   /* text outline (WebKit only) */\n\n  -webkit-line-clamp: 3;            /* limit text to N lines */\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  overflow: hidden;\n}\n\n/* User select */\n.no-select {\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n/* Scrollbar styling (WebKit) */\n::-webkit-scrollbar {\n  width: 8px;\n}\n::-webkit-scrollbar-track {\n  background: #f1f1f1;\n}\n::-webkit-scrollbar-thumb {\n  background: #888;\n  border-radius: 4px;\n}\n\n/* Note: Use autoprefixer in build tools to add prefixes automatically */\n",[20,42478,42479,42484,42490,42504,42518,42532,42546,42550,42554,42559,42565,42583,42600,42604,42623,42627,42641,42652,42664,42674,42678,42682,42687,42694,42705,42716,42727,42738,42742,42746,42751,42758,42770,42774,42781,42792,42796,42803,42814,42826,42830,42834],{"__ignoreMap":30},[34,42480,42481],{"class":36,"line":37},[34,42482,42483],{"class":40},"/* Browser-specific prefixes for experimental features */\n",[34,42485,42486,42488],{"class":36,"line":44},[34,42487,38635],{"class":47},[34,42489,661],{"class":181},[34,42491,42492,42495,42497,42499,42501],{"class":36,"line":58},[34,42493,42494],{"class":50},"  -webkit-appearance",[34,42496,182],{"class":181},[34,42498,40865],{"class":50},[34,42500,38412],{"class":181},[34,42502,42503],{"class":40},"/* Chrome, Safari, Edge */\n",[34,42505,42506,42509,42511,42513,42515],{"class":36,"line":65},[34,42507,42508],{"class":50},"  -moz-appearance",[34,42510,182],{"class":181},[34,42512,40865],{"class":50},[34,42514,40061],{"class":181},[34,42516,42517],{"class":40},"/* Firefox */\n",[34,42519,42520,42523,42525,42527,42529],{"class":36,"line":71},[34,42521,42522],{"class":50},"  -ms-appearance",[34,42524,182],{"class":181},[34,42526,40865],{"class":50},[34,42528,38361],{"class":181},[34,42530,42531],{"class":40},"/* Internet Explorer */\n",[34,42533,42534,42537,42539,42541,42543],{"class":36,"line":77},[34,42535,42536],{"class":50},"  appearance",[34,42538,182],{"class":181},[34,42540,40865],{"class":50},[34,42542,38504],{"class":181},[34,42544,42545],{"class":40},"/* Standard (always include last) */\n",[34,42547,42548],{"class":36,"line":82},[34,42549,693],{"class":181},[34,42551,42552],{"class":36,"line":88},[34,42553,62],{"emptyLinePlaceholder":61},[34,42555,42556],{"class":36,"line":242},[34,42557,42558],{"class":40},"/* Common prefixed properties */\n",[34,42560,42561,42563],{"class":36,"line":250},[34,42562,38201],{"class":47},[34,42564,661],{"class":181},[34,42566,42567,42570,42572,42575,42577,42579,42581],{"class":36,"line":263},[34,42568,42569],{"class":50},"  -webkit-backdrop-filter",[34,42571,182],{"class":181},[34,42573,42574],{"class":50},"blur",[34,42576,1607],{"class":181},[34,42578,11923],{"class":50},[34,42580,38220],{"class":580},[34,42582,1586],{"class":181},[34,42584,42585,42588,42590,42592,42594,42596,42598],{"class":36,"line":275},[34,42586,42587],{"class":50},"  backdrop-filter",[34,42589,182],{"class":181},[34,42591,42574],{"class":50},[34,42593,1607],{"class":181},[34,42595,11923],{"class":50},[34,42597,38220],{"class":580},[34,42599,1586],{"class":181},[34,42601,42602],{"class":36,"line":700},[34,42603,62],{"emptyLinePlaceholder":61},[34,42605,42606,42609,42611,42613,42615,42617,42620],{"class":36,"line":706},[34,42607,42608],{"class":50},"  -webkit-text-stroke",[34,42610,182],{"class":181},[34,42612,8318],{"class":50},[34,42614,38220],{"class":580},[34,42616,38533],{"class":50},[34,42618,42619],{"class":181},";   ",[34,42621,42622],{"class":40},"/* text outline (WebKit only) */\n",[34,42624,42625],{"class":36,"line":715},[34,42626,62],{"emptyLinePlaceholder":61},[34,42628,42629,42632,42634,42636,42638],{"class":36,"line":725},[34,42630,42631],{"class":50},"  -webkit-line-clamp",[34,42633,182],{"class":181},[34,42635,3162],{"class":50},[34,42637,40061],{"class":181},[34,42639,42640],{"class":40},"/* limit text to N lines */\n",[34,42642,42643,42645,42647,42650],{"class":36,"line":734},[34,42644,39182],{"class":50},[34,42646,182],{"class":181},[34,42648,42649],{"class":50},"-webkit-box",[34,42651,593],{"class":181},[34,42653,42654,42657,42659,42662],{"class":36,"line":742},[34,42655,42656],{"class":50},"  -webkit-box-orient",[34,42658,182],{"class":181},[34,42660,42661],{"class":50},"vertical",[34,42663,593],{"class":181},[34,42665,42666,42668,42670,42672],{"class":36,"line":748},[34,42667,39101],{"class":50},[34,42669,182],{"class":181},[34,42671,39106],{"class":50},[34,42673,593],{"class":181},[34,42675,42676],{"class":36,"line":754},[34,42677,693],{"class":181},[34,42679,42680],{"class":36,"line":759},[34,42681,62],{"emptyLinePlaceholder":61},[34,42683,42684],{"class":36,"line":771},[34,42685,42686],{"class":40},"/* User select */\n",[34,42688,42689,42692],{"class":36,"line":794},[34,42690,42691],{"class":47},".no-select",[34,42693,661],{"class":181},[34,42695,42696,42699,42701,42703],{"class":36,"line":824},[34,42697,42698],{"class":50},"  -webkit-user-select",[34,42700,182],{"class":181},[34,42702,40865],{"class":50},[34,42704,593],{"class":181},[34,42706,42707,42710,42712,42714],{"class":36,"line":830},[34,42708,42709],{"class":50},"  -moz-user-select",[34,42711,182],{"class":181},[34,42713,40865],{"class":50},[34,42715,593],{"class":181},[34,42717,42718,42721,42723,42725],{"class":36,"line":839},[34,42719,42720],{"class":50},"  -ms-user-select",[34,42722,182],{"class":181},[34,42724,40865],{"class":50},[34,42726,593],{"class":181},[34,42728,42729,42732,42734,42736],{"class":36,"line":854},[34,42730,42731],{"class":50},"  user-select",[34,42733,182],{"class":181},[34,42735,40865],{"class":50},[34,42737,593],{"class":181},[34,42739,42740],{"class":36,"line":860},[34,42741,693],{"class":181},[34,42743,42744],{"class":36,"line":865},[34,42745,62],{"emptyLinePlaceholder":61},[34,42747,42748],{"class":36,"line":870},[34,42749,42750],{"class":40},"/* Scrollbar styling (WebKit) */\n",[34,42752,42753,42756],{"class":36,"line":876},[34,42754,42755],{"class":47},"::-webkit-scrollbar",[34,42757,661],{"class":181},[34,42759,42760,42762,42764,42766,42768],{"class":36,"line":885},[34,42761,38213],{"class":50},[34,42763,182],{"class":181},[34,42765,18033],{"class":50},[34,42767,38220],{"class":580},[34,42769,593],{"class":181},[34,42771,42772],{"class":36,"line":895},[34,42773,693],{"class":181},[34,42775,42776,42779],{"class":36,"line":904},[34,42777,42778],{"class":47},"::-webkit-scrollbar-track",[34,42780,661],{"class":181},[34,42782,42783,42785,42787,42790],{"class":36,"line":915},[34,42784,38906],{"class":50},[34,42786,182],{"class":181},[34,42788,42789],{"class":50},"#f1f1f1",[34,42791,593],{"class":181},[34,42793,42794],{"class":36,"line":927},[34,42795,693],{"class":181},[34,42797,42798,42801],{"class":36,"line":932},[34,42799,42800],{"class":47},"::-webkit-scrollbar-thumb",[34,42802,661],{"class":181},[34,42804,42805,42807,42809,42812],{"class":36,"line":944},[34,42806,38906],{"class":50},[34,42808,182],{"class":181},[34,42810,42811],{"class":50},"#888",[34,42813,593],{"class":181},[34,42815,42816,42818,42820,42822,42824],{"class":36,"line":966},[34,42817,38540],{"class":50},[34,42819,182],{"class":181},[34,42821,18010],{"class":50},[34,42823,38220],{"class":580},[34,42825,593],{"class":181},[34,42827,42828],{"class":36,"line":1948},[34,42829,693],{"class":181},[34,42831,42832],{"class":36,"line":1953},[34,42833,62],{"emptyLinePlaceholder":61},[34,42835,42836],{"class":36,"line":3616},[34,42837,42838],{"class":40},"/* Note: Use autoprefixer in build tools to add prefixes automatically */\n",[388,42840,39620],{},{"title":30,"searchDepth":44,"depth":44,"links":42842},[42843],{"id":42473,"depth":44,"text":40962},"Vendor Prefixes in CSS.",{},{"title":40962,"description":42844},"css/vendor-prefixes",[38194,38615,982,38616],"IxA5MGtqy2CS49lQv9EITtJR_xLcRkoHC1SgWsnN2D4",{"id":42851,"title":28051,"body":42852,"date":402,"description":43037,"extension":404,"meta":43038,"navigation":61,"order":700,"path":43039,"seo":43040,"stem":43041,"subject":8648,"tags":43042,"__hash__":43046},"topics/curl/advanced-usage.md",{"type":8,"value":42853,"toc":43034},[42854,42856,43031],[11,42855,28051],{"id":28050},[25,42857,42859],{"className":27,"code":42858,"language":29,"meta":30,"style":30},"# Send request from file\ncurl -K request.txt  # Config file with curl options\n\n# Multiple requests\ncurl https://api.example.com/users https://api.example.com/posts\n\n# Use variables in URL\ncurl \"https://api.example.com/users/[1-10]\"  # Sequential\ncurl \"https://api.example.com/users/{1,5,10}\"  # Specific values\n\n# Compressed response\ncurl --compressed https://api.example.com\n\n# HTTP/2\ncurl --http2 https://api.example.com\n\n# Show request as it would be sent\ncurl -v --trace-ascii - https://api.example.com 2>&1 | head -50\n\n# Test if URL exists (no output)\ncurl -fs https://example.com && echo \"OK\" || echo \"Failed\"\n",[20,42860,42861,42866,42879,42883,42888,42898,42902,42907,42917,42927,42931,42936,42946,42950,42955,42964,42968,42973,42997,43001,43006],{"__ignoreMap":30},[34,42862,42863],{"class":36,"line":37},[34,42864,42865],{"class":40},"# Send request from file\n",[34,42867,42868,42870,42873,42876],{"class":36,"line":44},[34,42869,8648],{"class":47},[34,42871,42872],{"class":50}," -K",[34,42874,42875],{"class":54}," request.txt",[34,42877,42878],{"class":40},"  # Config file with curl options\n",[34,42880,42881],{"class":36,"line":58},[34,42882,62],{"emptyLinePlaceholder":61},[34,42884,42885],{"class":36,"line":65},[34,42886,42887],{"class":40},"# Multiple requests\n",[34,42889,42890,42892,42895],{"class":36,"line":71},[34,42891,8648],{"class":47},[34,42893,42894],{"class":54}," https://api.example.com/users",[34,42896,42897],{"class":54}," https://api.example.com/posts\n",[34,42899,42900],{"class":36,"line":77},[34,42901,62],{"emptyLinePlaceholder":61},[34,42903,42904],{"class":36,"line":82},[34,42905,42906],{"class":40},"# Use variables in URL\n",[34,42908,42909,42911,42914],{"class":36,"line":88},[34,42910,8648],{"class":47},[34,42912,42913],{"class":54}," \"https://api.example.com/users/[1-10]\"",[34,42915,42916],{"class":40},"  # Sequential\n",[34,42918,42919,42921,42924],{"class":36,"line":242},[34,42920,8648],{"class":47},[34,42922,42923],{"class":54}," \"https://api.example.com/users/{1,5,10}\"",[34,42925,42926],{"class":40},"  # Specific values\n",[34,42928,42929],{"class":36,"line":250},[34,42930,62],{"emptyLinePlaceholder":61},[34,42932,42933],{"class":36,"line":263},[34,42934,42935],{"class":40},"# Compressed response\n",[34,42937,42938,42940,42943],{"class":36,"line":275},[34,42939,8648],{"class":47},[34,42941,42942],{"class":50}," --compressed",[34,42944,42945],{"class":54}," https://api.example.com\n",[34,42947,42948],{"class":36,"line":700},[34,42949,62],{"emptyLinePlaceholder":61},[34,42951,42952],{"class":36,"line":706},[34,42953,42954],{"class":40},"# HTTP/2\n",[34,42956,42957,42959,42962],{"class":36,"line":715},[34,42958,8648],{"class":47},[34,42960,42961],{"class":50}," --http2",[34,42963,42945],{"class":54},[34,42965,42966],{"class":36,"line":725},[34,42967,62],{"emptyLinePlaceholder":61},[34,42969,42970],{"class":36,"line":734},[34,42971,42972],{"class":40},"# Show request as it would be sent\n",[34,42974,42975,42977,42979,42982,42984,42987,42989,42991,42994],{"class":36,"line":742},[34,42976,8648],{"class":47},[34,42978,12530],{"class":50},[34,42980,42981],{"class":50}," --trace-ascii",[34,42983,19423],{"class":54},[34,42985,42986],{"class":54}," https://api.example.com",[34,42988,11400],{"class":580},[34,42990,7197],{"class":580},[34,42992,42993],{"class":47}," head",[34,42995,42996],{"class":50}," -50\n",[34,42998,42999],{"class":36,"line":748},[34,43000,62],{"emptyLinePlaceholder":61},[34,43002,43003],{"class":36,"line":754},[34,43004,43005],{"class":40},"# Test if URL exists (no output)\n",[34,43007,43008,43010,43013,43016,43018,43020,43023,43025,43028],{"class":36,"line":759},[34,43009,8648],{"class":47},[34,43011,43012],{"class":50}," -fs",[34,43014,43015],{"class":54}," https://example.com",[34,43017,5622],{"class":181},[34,43019,10120],{"class":50},[34,43021,43022],{"class":54}," \"OK\"",[34,43024,21168],{"class":580},[34,43026,43027],{"class":50}," echo",[34,43029,43030],{"class":54}," \"Failed\"\n",[388,43032,43033],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .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":30,"searchDepth":44,"depth":44,"links":43035},[43036],{"id":28050,"depth":44,"text":28051},"Advanced Usage in Curl.",{},"/curl/advanced-usage",{"title":28051,"description":43037},"curl/advanced-usage",[8648,43043,43044,557,43045],"http","api","networking","eMqkr1nXzMyXhXSGnrCPY5vC-iN9wrZPgAHQt2p2wNc",{"id":43048,"title":9362,"body":43049,"date":402,"description":43174,"extension":404,"meta":43175,"navigation":61,"order":71,"path":43176,"seo":43177,"stem":43178,"subject":8648,"tags":43179,"__hash__":43180},"topics/curl/authentication.md",{"type":8,"value":43050,"toc":43171},[43051,43053,43169],[11,43052,9362],{"id":9361},[25,43054,43056],{"className":27,"code":43055,"language":29,"meta":30,"style":30},"# Basic authentication\ncurl -u username:password https://api.example.com\ncurl --user username:password https://api.example.com\n\n# Bearer token\ncurl -H \"Authorization: Bearer your_token\" https://api.example.com\n\n# API key in header\ncurl -H \"X-API-Key: your_api_key\" https://api.example.com\n\n# Digest authentication\ncurl --digest -u username:password https://api.example.com\n\n# Netrc file authentication\ncurl -n https://api.example.com  # Uses ~/.netrc\n",[20,43057,43058,43063,43075,43086,43090,43095,43107,43111,43116,43127,43131,43136,43149,43153,43158],{"__ignoreMap":30},[34,43059,43060],{"class":36,"line":37},[34,43061,43062],{"class":40},"# Basic authentication\n",[34,43064,43065,43067,43070,43073],{"class":36,"line":44},[34,43066,8648],{"class":47},[34,43068,43069],{"class":50}," -u",[34,43071,43072],{"class":54}," username:password",[34,43074,42945],{"class":54},[34,43076,43077,43079,43082,43084],{"class":36,"line":58},[34,43078,8648],{"class":47},[34,43080,43081],{"class":50}," --user",[34,43083,43072],{"class":54},[34,43085,42945],{"class":54},[34,43087,43088],{"class":36,"line":65},[34,43089,62],{"emptyLinePlaceholder":61},[34,43091,43092],{"class":36,"line":71},[34,43093,43094],{"class":40},"# Bearer token\n",[34,43096,43097,43099,43102,43105],{"class":36,"line":77},[34,43098,8648],{"class":47},[34,43100,43101],{"class":50}," -H",[34,43103,43104],{"class":54}," \"Authorization: Bearer your_token\"",[34,43106,42945],{"class":54},[34,43108,43109],{"class":36,"line":82},[34,43110,62],{"emptyLinePlaceholder":61},[34,43112,43113],{"class":36,"line":88},[34,43114,43115],{"class":40},"# API key in header\n",[34,43117,43118,43120,43122,43125],{"class":36,"line":242},[34,43119,8648],{"class":47},[34,43121,43101],{"class":50},[34,43123,43124],{"class":54}," \"X-API-Key: your_api_key\"",[34,43126,42945],{"class":54},[34,43128,43129],{"class":36,"line":250},[34,43130,62],{"emptyLinePlaceholder":61},[34,43132,43133],{"class":36,"line":263},[34,43134,43135],{"class":40},"# Digest authentication\n",[34,43137,43138,43140,43143,43145,43147],{"class":36,"line":275},[34,43139,8648],{"class":47},[34,43141,43142],{"class":50}," --digest",[34,43144,43069],{"class":50},[34,43146,43072],{"class":54},[34,43148,42945],{"class":54},[34,43150,43151],{"class":36,"line":700},[34,43152,62],{"emptyLinePlaceholder":61},[34,43154,43155],{"class":36,"line":706},[34,43156,43157],{"class":40},"# Netrc file authentication\n",[34,43159,43160,43162,43164,43166],{"class":36,"line":715},[34,43161,8648],{"class":47},[34,43163,7093],{"class":50},[34,43165,42986],{"class":54},[34,43167,43168],{"class":40},"  # Uses ~/.netrc\n",[388,43170,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":43172},[43173],{"id":9361,"depth":44,"text":9362},"Authentication in Curl.",{},"/curl/authentication",{"title":9362,"description":43174},"curl/authentication",[8648,43043,43044,557,43045],"PxKEEyaXIZqe7GyBBC5cSRwIf7hAb0rB86FWiDB_Dy4",{"id":43182,"title":43183,"body":43184,"date":402,"description":43331,"extension":404,"meta":43332,"navigation":61,"order":44,"path":43333,"seo":43334,"stem":43335,"subject":8648,"tags":43336,"__hash__":43337},"topics/curl/basic-requests.md","Basic Requests",{"type":8,"value":43185,"toc":43328},[43186,43189,43326],[11,43187,43183],{"id":43188},"basic-requests",[25,43190,43192],{"className":27,"code":43191,"language":29,"meta":30,"style":30},"# Simple GET request\ncurl https://api.example.com/users\n\n# Save output to file\ncurl -o output.html https://example.com\ncurl -O https://example.com/file.zip  # Keep original filename\n\n# Follow redirects\ncurl -L https://example.com\n\n# Show response headers\ncurl -i https://api.example.com/users\n\n# Show only headers (HEAD request)\ncurl -I https://api.example.com/users\n\n# Silent mode (no progress bar)\ncurl -s https://api.example.com/users\n\n# Verbose output (debugging)\ncurl -v https://api.example.com/users\n",[20,43193,43194,43199,43206,43210,43215,43227,43239,43243,43248,43257,43261,43266,43274,43278,43283,43292,43296,43301,43309,43313,43318],{"__ignoreMap":30},[34,43195,43196],{"class":36,"line":37},[34,43197,43198],{"class":40},"# Simple GET request\n",[34,43200,43201,43203],{"class":36,"line":44},[34,43202,8648],{"class":47},[34,43204,43205],{"class":54}," https://api.example.com/users\n",[34,43207,43208],{"class":36,"line":58},[34,43209,62],{"emptyLinePlaceholder":61},[34,43211,43212],{"class":36,"line":65},[34,43213,43214],{"class":40},"# Save output to file\n",[34,43216,43217,43219,43221,43224],{"class":36,"line":71},[34,43218,8648],{"class":47},[34,43220,8654],{"class":50},[34,43222,43223],{"class":54}," output.html",[34,43225,43226],{"class":54}," https://example.com\n",[34,43228,43229,43231,43233,43236],{"class":36,"line":77},[34,43230,8648],{"class":47},[34,43232,29669],{"class":50},[34,43234,43235],{"class":54}," https://example.com/file.zip",[34,43237,43238],{"class":40},"  # Keep original filename\n",[34,43240,43241],{"class":36,"line":82},[34,43242,62],{"emptyLinePlaceholder":61},[34,43244,43245],{"class":36,"line":88},[34,43246,43247],{"class":40},"# Follow redirects\n",[34,43249,43250,43252,43255],{"class":36,"line":242},[34,43251,8648],{"class":47},[34,43253,43254],{"class":50}," -L",[34,43256,43226],{"class":54},[34,43258,43259],{"class":36,"line":250},[34,43260,62],{"emptyLinePlaceholder":61},[34,43262,43263],{"class":36,"line":263},[34,43264,43265],{"class":40},"# Show response headers\n",[34,43267,43268,43270,43272],{"class":36,"line":275},[34,43269,8648],{"class":47},[34,43271,13065],{"class":50},[34,43273,43205],{"class":54},[34,43275,43276],{"class":36,"line":700},[34,43277,62],{"emptyLinePlaceholder":61},[34,43279,43280],{"class":36,"line":706},[34,43281,43282],{"class":40},"# Show only headers (HEAD request)\n",[34,43284,43285,43287,43290],{"class":36,"line":715},[34,43286,8648],{"class":47},[34,43288,43289],{"class":50}," -I",[34,43291,43205],{"class":54},[34,43293,43294],{"class":36,"line":725},[34,43295,62],{"emptyLinePlaceholder":61},[34,43297,43298],{"class":36,"line":734},[34,43299,43300],{"class":40},"# Silent mode (no progress bar)\n",[34,43302,43303,43305,43307],{"class":36,"line":742},[34,43304,8648],{"class":47},[34,43306,5487],{"class":50},[34,43308,43205],{"class":54},[34,43310,43311],{"class":36,"line":748},[34,43312,62],{"emptyLinePlaceholder":61},[34,43314,43315],{"class":36,"line":754},[34,43316,43317],{"class":40},"# Verbose output (debugging)\n",[34,43319,43320,43322,43324],{"class":36,"line":759},[34,43321,8648],{"class":47},[34,43323,12530],{"class":50},[34,43325,43205],{"class":54},[388,43327,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":43329},[43330],{"id":43188,"depth":44,"text":43183},"Basic Requests in Curl.",{},"/curl/basic-requests",{"title":43183,"description":43331},"curl/basic-requests",[8648,43043,43044,557,43045],"BkviIYDzAaZ3Yt5YY-cYB_fxLvz0Zg8Vo1GULFPW-U0",{"id":43339,"title":18143,"body":43340,"date":402,"description":43505,"extension":404,"meta":43506,"navigation":61,"order":706,"path":43507,"seo":43508,"stem":43509,"subject":8648,"tags":43510,"__hash__":43511},"topics/curl/common-patterns.md",{"type":8,"value":43341,"toc":43502},[43342,43344,43500],[11,43343,18143],{"id":18148},[25,43345,43347],{"className":27,"code":43346,"language":29,"meta":30,"style":30},"# POST JSON and parse response\ncurl -s -X POST https://api.example.com/login \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"user\": \"admin\", \"pass\": \"secret\"}' | jq '.token'\n\n# Download with authentication\ncurl -u user:pass -O https://secure.example.com/file.zip\n\n# Health check endpoint\ncurl -sf http://localhost:8080/health || exit 1\n\n# API pagination\ncurl \"https://api.example.com/items?page=1&limit=100\"\n\n# Webhook testing\ncurl -X POST https://webhook.example.com \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"event\": \"test\", \"data\": {\"key\": \"value\"}}'\n",[20,43348,43349,43354,43371,43381,43397,43401,43406,43420,43424,43429,43447,43451,43456,43463,43467,43472,43485,43493],{"__ignoreMap":30},[34,43350,43351],{"class":36,"line":37},[34,43352,43353],{"class":40},"# POST JSON and parse response\n",[34,43355,43356,43358,43360,43363,43366,43369],{"class":36,"line":44},[34,43357,8648],{"class":47},[34,43359,5487],{"class":50},[34,43361,43362],{"class":50}," -X",[34,43364,43365],{"class":54}," POST",[34,43367,43368],{"class":54}," https://api.example.com/login",[34,43370,7186],{"class":50},[34,43372,43373,43376,43379],{"class":36,"line":58},[34,43374,43375],{"class":50},"  -H",[34,43377,43378],{"class":54}," \"Content-Type: application/json\"",[34,43380,7186],{"class":50},[34,43382,43383,43386,43389,43391,43394],{"class":36,"line":65},[34,43384,43385],{"class":50},"  -d",[34,43387,43388],{"class":54}," '{\"user\": \"admin\", \"pass\": \"secret\"}'",[34,43390,7197],{"class":580},[34,43392,43393],{"class":47}," jq",[34,43395,43396],{"class":54}," '.token'\n",[34,43398,43399],{"class":36,"line":71},[34,43400,62],{"emptyLinePlaceholder":61},[34,43402,43403],{"class":36,"line":77},[34,43404,43405],{"class":40},"# Download with authentication\n",[34,43407,43408,43410,43412,43415,43417],{"class":36,"line":82},[34,43409,8648],{"class":47},[34,43411,43069],{"class":50},[34,43413,43414],{"class":54}," user:pass",[34,43416,29669],{"class":50},[34,43418,43419],{"class":54}," https://secure.example.com/file.zip\n",[34,43421,43422],{"class":36,"line":88},[34,43423,62],{"emptyLinePlaceholder":61},[34,43425,43426],{"class":36,"line":242},[34,43427,43428],{"class":40},"# Health check endpoint\n",[34,43430,43431,43433,43436,43439,43441,43444],{"class":36,"line":250},[34,43432,8648],{"class":47},[34,43434,43435],{"class":50}," -sf",[34,43437,43438],{"class":54}," http://localhost:8080/health",[34,43440,21168],{"class":580},[34,43442,43443],{"class":50}," exit",[34,43445,43446],{"class":50}," 1\n",[34,43448,43449],{"class":36,"line":263},[34,43450,62],{"emptyLinePlaceholder":61},[34,43452,43453],{"class":36,"line":275},[34,43454,43455],{"class":40},"# API pagination\n",[34,43457,43458,43460],{"class":36,"line":700},[34,43459,8648],{"class":47},[34,43461,43462],{"class":54}," \"https://api.example.com/items?page=1&limit=100\"\n",[34,43464,43465],{"class":36,"line":706},[34,43466,62],{"emptyLinePlaceholder":61},[34,43468,43469],{"class":36,"line":715},[34,43470,43471],{"class":40},"# Webhook testing\n",[34,43473,43474,43476,43478,43480,43483],{"class":36,"line":725},[34,43475,8648],{"class":47},[34,43477,43362],{"class":50},[34,43479,43365],{"class":54},[34,43481,43482],{"class":54}," https://webhook.example.com",[34,43484,7186],{"class":50},[34,43486,43487,43489,43491],{"class":36,"line":734},[34,43488,43375],{"class":50},[34,43490,43378],{"class":54},[34,43492,7186],{"class":50},[34,43494,43495,43497],{"class":36,"line":742},[34,43496,43385],{"class":50},[34,43498,43499],{"class":54}," '{\"event\": \"test\", \"data\": {\"key\": \"value\"}}'\n",[388,43501,15873],{},{"title":30,"searchDepth":44,"depth":44,"links":43503},[43504],{"id":18148,"depth":44,"text":18143},"Common Patterns in Curl.",{},"/curl/common-patterns",{"title":18143,"description":43505},"curl/common-patterns",[8648,43043,43044,557,43045],"aVdx0C2WX7znGGPsceF2f9HsDWxqqBavDsTBt3Uayls",{"id":43513,"title":43514,"body":43515,"date":402,"description":43620,"extension":404,"meta":43621,"navigation":61,"order":82,"path":43622,"seo":43623,"stem":43624,"subject":8648,"tags":43625,"__hash__":43626},"topics/curl/cookies.md","Cookies",{"type":8,"value":43516,"toc":43617},[43517,43520,43615],[11,43518,43514],{"id":43519},"cookies",[25,43521,43523],{"className":27,"code":43522,"language":29,"meta":30,"style":30},"# Send cookies\ncurl -b \"session=abc123\" https://example.com\ncurl --cookie \"name=value; name2=value2\" https://example.com\n\n# Save cookies to file\ncurl -c cookies.txt https://example.com\n\n# Load cookies from file\ncurl -b cookies.txt https://example.com\n\n# Save and load cookies (session)\ncurl -c cookies.txt -b cookies.txt https://example.com\n",[20,43524,43525,43530,43541,43553,43557,43562,43573,43577,43582,43592,43596,43601],{"__ignoreMap":30},[34,43526,43527],{"class":36,"line":37},[34,43528,43529],{"class":40},"# Send cookies\n",[34,43531,43532,43534,43536,43539],{"class":36,"line":44},[34,43533,8648],{"class":47},[34,43535,8214],{"class":50},[34,43537,43538],{"class":54}," \"session=abc123\"",[34,43540,43226],{"class":54},[34,43542,43543,43545,43548,43551],{"class":36,"line":58},[34,43544,8648],{"class":47},[34,43546,43547],{"class":50}," --cookie",[34,43549,43550],{"class":54}," \"name=value; name2=value2\"",[34,43552,43226],{"class":54},[34,43554,43555],{"class":36,"line":65},[34,43556,62],{"emptyLinePlaceholder":61},[34,43558,43559],{"class":36,"line":71},[34,43560,43561],{"class":40},"# Save cookies to file\n",[34,43563,43564,43566,43568,43571],{"class":36,"line":77},[34,43565,8648],{"class":47},[34,43567,15867],{"class":50},[34,43569,43570],{"class":54}," cookies.txt",[34,43572,43226],{"class":54},[34,43574,43575],{"class":36,"line":82},[34,43576,62],{"emptyLinePlaceholder":61},[34,43578,43579],{"class":36,"line":88},[34,43580,43581],{"class":40},"# Load cookies from file\n",[34,43583,43584,43586,43588,43590],{"class":36,"line":242},[34,43585,8648],{"class":47},[34,43587,8214],{"class":50},[34,43589,43570],{"class":54},[34,43591,43226],{"class":54},[34,43593,43594],{"class":36,"line":250},[34,43595,62],{"emptyLinePlaceholder":61},[34,43597,43598],{"class":36,"line":263},[34,43599,43600],{"class":40},"# Save and load cookies (session)\n",[34,43602,43603,43605,43607,43609,43611,43613],{"class":36,"line":275},[34,43604,8648],{"class":47},[34,43606,15867],{"class":50},[34,43608,43570],{"class":54},[34,43610,8214],{"class":50},[34,43612,43570],{"class":54},[34,43614,43226],{"class":54},[388,43616,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":43618},[43619],{"id":43519,"depth":44,"text":43514},"Cookies in Curl.",{},"/curl/cookies",{"title":43514,"description":43620},"curl/cookies",[8648,43043,43044,557,43045],"fMlf_-7nPFXt0t6anFpG63QcW5J_1lQ3rhV29wS3-9Q",{"id":43628,"title":43629,"body":43630,"date":402,"description":43792,"extension":404,"meta":43793,"navigation":61,"order":77,"path":43794,"seo":43795,"stem":43796,"subject":8648,"tags":43797,"__hash__":43798},"topics/curl/data-forms.md","Data & Forms",{"type":8,"value":43631,"toc":43789},[43632,43635,43787],[11,43633,43629],{"id":43634},"data-forms",[25,43636,43638],{"className":27,"code":43637,"language":29,"meta":30,"style":30},"# URL-encoded form data\ncurl -d \"field1=value1&field2=value2\" https://api.example.com/form\n\n# Read data from file\ncurl -d @data.json https://api.example.com/users\ncurl --data-binary @image.png https://api.example.com/upload\n\n# Form data with file upload (multipart)\ncurl -F \"file=@photo.jpg\" https://api.example.com/upload\ncurl -F \"file=@photo.jpg;type=image/jpeg\" https://api.example.com/upload\n\n# Multiple files and fields\ncurl -F \"file1=@photo1.jpg\" \\\n     -F \"file2=@photo2.jpg\" \\\n     -F \"name=John\" \\\n     https://api.example.com/upload\n\n# URL encode data\ncurl --data-urlencode \"message=Hello World!\" https://api.example.com\n",[20,43639,43640,43645,43657,43661,43666,43677,43690,43694,43699,43711,43722,43726,43731,43742,43752,43761,43766,43770,43775],{"__ignoreMap":30},[34,43641,43642],{"class":36,"line":37},[34,43643,43644],{"class":40},"# URL-encoded form data\n",[34,43646,43647,43649,43651,43654],{"class":36,"line":44},[34,43648,8648],{"class":47},[34,43650,9750],{"class":50},[34,43652,43653],{"class":54}," \"field1=value1&field2=value2\"",[34,43655,43656],{"class":54}," https://api.example.com/form\n",[34,43658,43659],{"class":36,"line":58},[34,43660,62],{"emptyLinePlaceholder":61},[34,43662,43663],{"class":36,"line":65},[34,43664,43665],{"class":40},"# Read data from file\n",[34,43667,43668,43670,43672,43675],{"class":36,"line":71},[34,43669,8648],{"class":47},[34,43671,9750],{"class":50},[34,43673,43674],{"class":54}," @data.json",[34,43676,43205],{"class":54},[34,43678,43679,43681,43684,43687],{"class":36,"line":77},[34,43680,8648],{"class":47},[34,43682,43683],{"class":50}," --data-binary",[34,43685,43686],{"class":54}," @image.png",[34,43688,43689],{"class":54}," https://api.example.com/upload\n",[34,43691,43692],{"class":36,"line":82},[34,43693,62],{"emptyLinePlaceholder":61},[34,43695,43696],{"class":36,"line":88},[34,43697,43698],{"class":40},"# Form data with file upload (multipart)\n",[34,43700,43701,43703,43706,43709],{"class":36,"line":242},[34,43702,8648],{"class":47},[34,43704,43705],{"class":50}," -F",[34,43707,43708],{"class":54}," \"file=@photo.jpg\"",[34,43710,43689],{"class":54},[34,43712,43713,43715,43717,43720],{"class":36,"line":250},[34,43714,8648],{"class":47},[34,43716,43705],{"class":50},[34,43718,43719],{"class":54}," \"file=@photo.jpg;type=image/jpeg\"",[34,43721,43689],{"class":54},[34,43723,43724],{"class":36,"line":263},[34,43725,62],{"emptyLinePlaceholder":61},[34,43727,43728],{"class":36,"line":275},[34,43729,43730],{"class":40},"# Multiple files and fields\n",[34,43732,43733,43735,43737,43740],{"class":36,"line":700},[34,43734,8648],{"class":47},[34,43736,43705],{"class":50},[34,43738,43739],{"class":54}," \"file1=@photo1.jpg\"",[34,43741,7186],{"class":50},[34,43743,43744,43747,43750],{"class":36,"line":706},[34,43745,43746],{"class":50},"     -F",[34,43748,43749],{"class":54}," \"file2=@photo2.jpg\"",[34,43751,7186],{"class":50},[34,43753,43754,43756,43759],{"class":36,"line":715},[34,43755,43746],{"class":50},[34,43757,43758],{"class":54}," \"name=John\"",[34,43760,7186],{"class":50},[34,43762,43763],{"class":36,"line":725},[34,43764,43765],{"class":54},"     https://api.example.com/upload\n",[34,43767,43768],{"class":36,"line":734},[34,43769,62],{"emptyLinePlaceholder":61},[34,43771,43772],{"class":36,"line":742},[34,43773,43774],{"class":40},"# URL encode data\n",[34,43776,43777,43779,43782,43785],{"class":36,"line":748},[34,43778,8648],{"class":47},[34,43780,43781],{"class":50}," --data-urlencode",[34,43783,43784],{"class":54}," \"message=Hello World!\"",[34,43786,42945],{"class":54},[388,43788,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":43790},[43791],{"id":43634,"depth":44,"text":43629},"Data & Forms in Curl.",{},"/curl/data-forms",{"title":43629,"description":43792},"curl/data-forms",[8648,43043,43044,557,43045],"grK8IGxq2_l1lGsLjkdLtNoXxhVaxp12x37qb-BUBJE",{"id":43800,"title":43801,"body":43802,"date":402,"description":43919,"extension":404,"meta":43920,"navigation":61,"order":275,"path":43921,"seo":43922,"stem":43923,"subject":8648,"tags":43924,"__hash__":43925},"topics/curl/downloading.md","Downloading",{"type":8,"value":43803,"toc":43916},[43804,43807,43914],[11,43805,43801],{"id":43806},"downloading",[25,43808,43810],{"className":27,"code":43809,"language":29,"meta":30,"style":30},"# Download file with original name\ncurl -O https://example.com/file.zip\n\n# Download multiple files\ncurl -O https://example.com/file1.zip -O https://example.com/file2.zip\n\n# Resume interrupted download\ncurl -C - -O https://example.com/large-file.zip\n\n# Download with progress bar\ncurl -# -O https://example.com/file.zip\n\n# Download only if modified\ncurl -z \"2024-01-01\" https://example.com/file.txt\n",[20,43811,43812,43817,43826,43830,43835,43849,43853,43858,43872,43876,43881,43892,43896,43901],{"__ignoreMap":30},[34,43813,43814],{"class":36,"line":37},[34,43815,43816],{"class":40},"# Download file with original name\n",[34,43818,43819,43821,43823],{"class":36,"line":44},[34,43820,8648],{"class":47},[34,43822,29669],{"class":50},[34,43824,43825],{"class":54}," https://example.com/file.zip\n",[34,43827,43828],{"class":36,"line":58},[34,43829,62],{"emptyLinePlaceholder":61},[34,43831,43832],{"class":36,"line":65},[34,43833,43834],{"class":40},"# Download multiple files\n",[34,43836,43837,43839,43841,43844,43846],{"class":36,"line":71},[34,43838,8648],{"class":47},[34,43840,29669],{"class":50},[34,43842,43843],{"class":54}," https://example.com/file1.zip",[34,43845,29669],{"class":50},[34,43847,43848],{"class":54}," https://example.com/file2.zip\n",[34,43850,43851],{"class":36,"line":77},[34,43852,62],{"emptyLinePlaceholder":61},[34,43854,43855],{"class":36,"line":82},[34,43856,43857],{"class":40},"# Resume interrupted download\n",[34,43859,43860,43862,43865,43867,43869],{"class":36,"line":88},[34,43861,8648],{"class":47},[34,43863,43864],{"class":50}," -C",[34,43866,19423],{"class":54},[34,43868,29669],{"class":50},[34,43870,43871],{"class":54}," https://example.com/large-file.zip\n",[34,43873,43874],{"class":36,"line":242},[34,43875,62],{"emptyLinePlaceholder":61},[34,43877,43878],{"class":36,"line":250},[34,43879,43880],{"class":40},"# Download with progress bar\n",[34,43882,43883,43885,43888,43890],{"class":36,"line":263},[34,43884,8648],{"class":47},[34,43886,43887],{"class":54}," -#",[34,43889,29669],{"class":50},[34,43891,43825],{"class":54},[34,43893,43894],{"class":36,"line":275},[34,43895,62],{"emptyLinePlaceholder":61},[34,43897,43898],{"class":36,"line":700},[34,43899,43900],{"class":40},"# Download only if modified\n",[34,43902,43903,43905,43908,43911],{"class":36,"line":706},[34,43904,8648],{"class":47},[34,43906,43907],{"class":50}," -z",[34,43909,43910],{"class":54}," \"2024-01-01\"",[34,43912,43913],{"class":54}," https://example.com/file.txt\n",[388,43915,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":43917},[43918],{"id":43806,"depth":44,"text":43801},"Downloading in Curl.",{},"/curl/downloading",{"title":43801,"description":43919},"curl/downloading",[8648,43043,43044,557,43045],"Gm2rx0rT2wkatAmwkkfOARrSKhGK85l-ZoWZM2YKUgs",{"id":43927,"title":43928,"body":43929,"date":402,"description":44053,"extension":404,"meta":44054,"navigation":61,"order":65,"path":44055,"seo":44056,"stem":44057,"subject":8648,"tags":44058,"__hash__":44059},"topics/curl/headers.md","Headers",{"type":8,"value":43930,"toc":44050},[43931,43934,44048],[11,43932,43928],{"id":43933},"headers",[25,43935,43937],{"className":27,"code":43936,"language":29,"meta":30,"style":30},"# Add custom header\ncurl -H \"Authorization: Bearer token123\" https://api.example.com\n\n# Multiple headers\ncurl -H \"Authorization: Bearer token123\" \\\n     -H \"Accept: application/json\" \\\n     -H \"X-Custom-Header: value\" \\\n     https://api.example.com\n\n# Set User-Agent\ncurl -A \"MyApp/1.0\" https://api.example.com\ncurl -H \"User-Agent: MyApp/1.0\" https://api.example.com\n\n# Set Accept header\ncurl -H \"Accept: application/json\" https://api.example.com\n",[20,43938,43939,43944,43955,43959,43964,43974,43984,43993,43998,44002,44007,44018,44029,44033,44038],{"__ignoreMap":30},[34,43940,43941],{"class":36,"line":37},[34,43942,43943],{"class":40},"# Add custom header\n",[34,43945,43946,43948,43950,43953],{"class":36,"line":44},[34,43947,8648],{"class":47},[34,43949,43101],{"class":50},[34,43951,43952],{"class":54}," \"Authorization: Bearer token123\"",[34,43954,42945],{"class":54},[34,43956,43957],{"class":36,"line":58},[34,43958,62],{"emptyLinePlaceholder":61},[34,43960,43961],{"class":36,"line":65},[34,43962,43963],{"class":40},"# Multiple headers\n",[34,43965,43966,43968,43970,43972],{"class":36,"line":71},[34,43967,8648],{"class":47},[34,43969,43101],{"class":50},[34,43971,43952],{"class":54},[34,43973,7186],{"class":50},[34,43975,43976,43979,43982],{"class":36,"line":77},[34,43977,43978],{"class":50},"     -H",[34,43980,43981],{"class":54}," \"Accept: application/json\"",[34,43983,7186],{"class":50},[34,43985,43986,43988,43991],{"class":36,"line":82},[34,43987,43978],{"class":50},[34,43989,43990],{"class":54}," \"X-Custom-Header: value\"",[34,43992,7186],{"class":50},[34,43994,43995],{"class":36,"line":88},[34,43996,43997],{"class":54},"     https://api.example.com\n",[34,43999,44000],{"class":36,"line":242},[34,44001,62],{"emptyLinePlaceholder":61},[34,44003,44004],{"class":36,"line":250},[34,44005,44006],{"class":40},"# Set User-Agent\n",[34,44008,44009,44011,44013,44016],{"class":36,"line":263},[34,44010,8648],{"class":47},[34,44012,10202],{"class":50},[34,44014,44015],{"class":54}," \"MyApp/1.0\"",[34,44017,42945],{"class":54},[34,44019,44020,44022,44024,44027],{"class":36,"line":275},[34,44021,8648],{"class":47},[34,44023,43101],{"class":50},[34,44025,44026],{"class":54}," \"User-Agent: MyApp/1.0\"",[34,44028,42945],{"class":54},[34,44030,44031],{"class":36,"line":700},[34,44032,62],{"emptyLinePlaceholder":61},[34,44034,44035],{"class":36,"line":706},[34,44036,44037],{"class":40},"# Set Accept header\n",[34,44039,44040,44042,44044,44046],{"class":36,"line":715},[34,44041,8648],{"class":47},[34,44043,43101],{"class":50},[34,44045,43981],{"class":54},[34,44047,42945],{"class":54},[388,44049,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":44051},[44052],{"id":43933,"depth":44,"text":43928},"Headers in Curl.",{},"/curl/headers",{"title":43928,"description":44053},"curl/headers",[8648,43043,43044,557,43045],"XWRSAbso7GoVrbPmDzbcMOunDOuTK-uT5tIW-WLPHC4",{"id":44061,"title":44062,"body":44063,"date":402,"description":44249,"extension":404,"meta":44250,"navigation":61,"order":58,"path":44251,"seo":44252,"stem":44253,"subject":8648,"tags":44254,"__hash__":44255},"topics/curl/http-methods.md","HTTP Methods",{"type":8,"value":44064,"toc":44246},[44065,44068,44244],[11,44066,44062],{"id":44067},"http-methods",[25,44069,44071],{"className":27,"code":44070,"language":29,"meta":30,"style":30},"# GET (default)\ncurl https://api.example.com/users\n\n# POST with data\ncurl -X POST https://api.example.com/users \\\n  -d \"name=John&email=john@example.com\"\n\n# POST JSON data\ncurl -X POST https://api.example.com/users \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\": \"John\", \"email\": \"john@example.com\"}'\n\n# PUT request\ncurl -X PUT https://api.example.com/users/1 \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\": \"Jane\"}'\n\n# PATCH request\ncurl -X PATCH https://api.example.com/users/1 \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"email\": \"jane@example.com\"}'\n\n# DELETE request\ncurl -X DELETE https://api.example.com/users/1\n",[20,44072,44073,44078,44084,44088,44093,44105,44112,44116,44121,44133,44141,44148,44152,44157,44171,44179,44186,44190,44195,44208,44216,44223,44227,44232],{"__ignoreMap":30},[34,44074,44075],{"class":36,"line":37},[34,44076,44077],{"class":40},"# GET (default)\n",[34,44079,44080,44082],{"class":36,"line":44},[34,44081,8648],{"class":47},[34,44083,43205],{"class":54},[34,44085,44086],{"class":36,"line":58},[34,44087,62],{"emptyLinePlaceholder":61},[34,44089,44090],{"class":36,"line":65},[34,44091,44092],{"class":40},"# POST with data\n",[34,44094,44095,44097,44099,44101,44103],{"class":36,"line":71},[34,44096,8648],{"class":47},[34,44098,43362],{"class":50},[34,44100,43365],{"class":54},[34,44102,42894],{"class":54},[34,44104,7186],{"class":50},[34,44106,44107,44109],{"class":36,"line":77},[34,44108,43385],{"class":50},[34,44110,44111],{"class":54}," \"name=John&email=john@example.com\"\n",[34,44113,44114],{"class":36,"line":82},[34,44115,62],{"emptyLinePlaceholder":61},[34,44117,44118],{"class":36,"line":88},[34,44119,44120],{"class":40},"# POST JSON data\n",[34,44122,44123,44125,44127,44129,44131],{"class":36,"line":242},[34,44124,8648],{"class":47},[34,44126,43362],{"class":50},[34,44128,43365],{"class":54},[34,44130,42894],{"class":54},[34,44132,7186],{"class":50},[34,44134,44135,44137,44139],{"class":36,"line":250},[34,44136,43375],{"class":50},[34,44138,43378],{"class":54},[34,44140,7186],{"class":50},[34,44142,44143,44145],{"class":36,"line":263},[34,44144,43385],{"class":50},[34,44146,44147],{"class":54}," '{\"name\": \"John\", \"email\": \"john@example.com\"}'\n",[34,44149,44150],{"class":36,"line":275},[34,44151,62],{"emptyLinePlaceholder":61},[34,44153,44154],{"class":36,"line":700},[34,44155,44156],{"class":40},"# PUT request\n",[34,44158,44159,44161,44163,44166,44169],{"class":36,"line":706},[34,44160,8648],{"class":47},[34,44162,43362],{"class":50},[34,44164,44165],{"class":54}," PUT",[34,44167,44168],{"class":54}," https://api.example.com/users/1",[34,44170,7186],{"class":50},[34,44172,44173,44175,44177],{"class":36,"line":715},[34,44174,43375],{"class":50},[34,44176,43378],{"class":54},[34,44178,7186],{"class":50},[34,44180,44181,44183],{"class":36,"line":725},[34,44182,43385],{"class":50},[34,44184,44185],{"class":54}," '{\"name\": \"Jane\"}'\n",[34,44187,44188],{"class":36,"line":734},[34,44189,62],{"emptyLinePlaceholder":61},[34,44191,44192],{"class":36,"line":742},[34,44193,44194],{"class":40},"# PATCH request\n",[34,44196,44197,44199,44201,44204,44206],{"class":36,"line":748},[34,44198,8648],{"class":47},[34,44200,43362],{"class":50},[34,44202,44203],{"class":54}," PATCH",[34,44205,44168],{"class":54},[34,44207,7186],{"class":50},[34,44209,44210,44212,44214],{"class":36,"line":754},[34,44211,43375],{"class":50},[34,44213,43378],{"class":54},[34,44215,7186],{"class":50},[34,44217,44218,44220],{"class":36,"line":759},[34,44219,43385],{"class":50},[34,44221,44222],{"class":54}," '{\"email\": \"jane@example.com\"}'\n",[34,44224,44225],{"class":36,"line":771},[34,44226,62],{"emptyLinePlaceholder":61},[34,44228,44229],{"class":36,"line":794},[34,44230,44231],{"class":40},"# DELETE request\n",[34,44233,44234,44236,44238,44241],{"class":36,"line":824},[34,44235,8648],{"class":47},[34,44237,43362],{"class":50},[34,44239,44240],{"class":54}," DELETE",[34,44242,44243],{"class":54}," https://api.example.com/users/1\n",[388,44245,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":44247},[44248],{"id":44067,"depth":44,"text":44062},"HTTP Methods in Curl.",{},"/curl/http-methods",{"title":44062,"description":44249},"curl/http-methods",[8648,43043,43044,557,43045],"w3dmAG5gx3Irt89AQ5bWmvOeM5_XionzDdrrt4aIox0",{"id":44257,"title":44258,"body":44259,"date":402,"description":44636,"extension":404,"meta":44637,"navigation":61,"order":715,"path":44638,"seo":44639,"stem":44640,"subject":8648,"tags":44641,"__hash__":44642},"topics/curl/options-reference.md","Options Reference",{"type":8,"value":44260,"toc":44633},[44261,44264],[11,44262,44258],{"id":44263},"options-reference",[14308,44265,44266,44279],{},[14311,44267,44268],{},[14314,44269,44270,44273,44276],{},[14317,44271,44272],{},"Option",[14317,44274,44275],{},"Long Form",[14317,44277,44278],{},"Description",[14326,44280,44281,44296,44311,44325,44340,44354,44369,44384,44399,44413,44428,44443,44457,44472,44487,44502,44517,44532,44547,44561,44575,44590,44605,44619],{},[14314,44282,44283,44288,44293],{},[14331,44284,44285],{},[20,44286,44287],{},"-X",[14331,44289,44290],{},[20,44291,44292],{},"--request",[14331,44294,44295],{},"Specify HTTP method (GET, POST, PUT, DELETE, etc.)",[14314,44297,44298,44303,44308],{},[14331,44299,44300],{},[20,44301,44302],{},"-H",[14331,44304,44305],{},[20,44306,44307],{},"--header",[14331,44309,44310],{},"Add custom header to request",[14314,44312,44313,44317,44322],{},[14331,44314,44315],{},[20,44316,10760],{},[14331,44318,44319],{},[20,44320,44321],{},"--data",[14331,44323,44324],{},"Send data in POST request body",[14314,44326,44327,44332,44337],{},[14331,44328,44329],{},[20,44330,44331],{},"-F",[14331,44333,44334],{},[20,44335,44336],{},"--form",[14331,44338,44339],{},"Submit form data (multipart/form-data)",[14314,44341,44342,44347,44351],{},[14331,44343,44344],{},[20,44345,44346],{},"-o",[14331,44348,44349],{},[20,44350,9228],{},[14331,44352,44353],{},"Write output to file instead of stdout",[14314,44355,44356,44361,44366],{},[14331,44357,44358],{},[20,44359,44360],{},"-O",[14331,44362,44363],{},[20,44364,44365],{},"--remote-name",[14331,44367,44368],{},"Save file with remote filename",[14314,44370,44371,44376,44381],{},[14331,44372,44373],{},[20,44374,44375],{},"-i",[14331,44377,44378],{},[20,44379,44380],{},"--include",[14331,44382,44383],{},"Include response headers in output",[14314,44385,44386,44391,44396],{},[14331,44387,44388],{},[20,44389,44390],{},"-I",[14331,44392,44393],{},[20,44394,44395],{},"--head",[14331,44397,44398],{},"Fetch headers only (HEAD request)",[14314,44400,44401,44405,44410],{},[14331,44402,44403],{},[20,44404,10832],{},[14331,44406,44407],{},[20,44408,44409],{},"--silent",[14331,44411,44412],{},"Silent mode, hide progress and errors",[14314,44414,44415,44420,44425],{},[14331,44416,44417],{},[20,44418,44419],{},"-S",[14331,44421,44422],{},[20,44423,44424],{},"--show-error",[14331,44426,44427],{},"Show errors even in silent mode",[14314,44429,44430,44435,44440],{},[14331,44431,44432],{},[20,44433,44434],{},"-v",[14331,44436,44437],{},[20,44438,44439],{},"--verbose",[14331,44441,44442],{},"Verbose output for debugging",[14314,44444,44445,44450,44454],{},[14331,44446,44447],{},[20,44448,44449],{},"-L",[14331,44451,44452],{},[20,44453,10032],{},[14331,44455,44456],{},"Follow redirects",[14314,44458,44459,44464,44469],{},[14331,44460,44461],{},[20,44462,44463],{},"-u",[14331,44465,44466],{},[20,44467,44468],{},"--user",[14331,44470,44471],{},"Server user and password",[14314,44473,44474,44479,44484],{},[14331,44475,44476],{},[20,44477,44478],{},"-A",[14331,44480,44481],{},[20,44482,44483],{},"--user-agent",[14331,44485,44486],{},"Set User-Agent header",[14314,44488,44489,44494,44499],{},[14331,44490,44491],{},[20,44492,44493],{},"-b",[14331,44495,44496],{},[20,44497,44498],{},"--cookie",[14331,44500,44501],{},"Send cookies from string or file",[14314,44503,44504,44509,44514],{},[14331,44505,44506],{},[20,44507,44508],{},"-c",[14331,44510,44511],{},[20,44512,44513],{},"--cookie-jar",[14331,44515,44516],{},"Save cookies to file",[14314,44518,44519,44524,44529],{},[14331,44520,44521],{},[20,44522,44523],{},"-k",[14331,44525,44526],{},[20,44527,44528],{},"--insecure",[14331,44530,44531],{},"Allow insecure SSL connections",[14314,44533,44534,44539,44544],{},[14331,44535,44536],{},[20,44537,44538],{},"-m",[14331,44540,44541],{},[20,44542,44543],{},"--max-time",[14331,44545,44546],{},"Maximum time for operation (seconds)",[14314,44548,44549,44553,44558],{},[14331,44550,44551],{},[20,44552,10814],{},[14331,44554,44555],{},[20,44556,44557],{},"--proxy",[14331,44559,44560],{},"Use proxy server",[14314,44562,44563,44567,44572],{},[14331,44564,44565],{},[20,44566,10796],{},[14331,44568,44569],{},[20,44570,44571],{},"--write-out",[14331,44573,44574],{},"Display info after transfer",[14314,44576,44577,44582,44587],{},[14331,44578,44579],{},[20,44580,44581],{},"-C",[14331,44583,44584],{},[20,44585,44586],{},"--continue-at",[14331,44588,44589],{},"Resume transfer at offset",[14314,44591,44592,44597,44602],{},[14331,44593,44594],{},[20,44595,44596],{},"-#",[14331,44598,44599],{},[20,44600,44601],{},"--progress-bar",[14331,44603,44604],{},"Show progress as a bar",[14314,44606,44607,44611,44616],{},[14331,44608,44609],{},[20,44610,10742],{},[14331,44612,44613],{},[20,44614,44615],{},"--fail",[14331,44617,44618],{},"Fail silently on HTTP errors",[14314,44620,44621,44625,44630],{},[14331,44622,44623],{},[20,44624,10545],{},[14331,44626,44627],{},[20,44628,44629],{},"--netrc",[14331,44631,44632],{},"Use .netrc for credentials",{"title":30,"searchDepth":44,"depth":44,"links":44634},[44635],{"id":44263,"depth":44,"text":44258},"Options Reference in Curl.",{},"/curl/options-reference",{"title":44258,"description":44636},"curl/options-reference",[8648,43043,43044,557,43045],"Ma6ID8HAubaiIQJw83_Z_wKpKQowkfr51hPd_BBvN1g",{"id":44644,"title":44645,"body":44646,"date":402,"description":44807,"extension":404,"meta":44808,"navigation":61,"order":263,"path":44809,"seo":44810,"stem":44811,"subject":8648,"tags":44812,"__hash__":44813},"topics/curl/output-formatting.md","Output Formatting",{"type":8,"value":44647,"toc":44804},[44648,44651,44802],[11,44649,44645],{"id":44650},"output-formatting",[25,44652,44654],{"className":27,"code":44653,"language":29,"meta":30,"style":30},"# Write output to file\ncurl -o output.json https://api.example.com/data\n\n# Append to file\ncurl https://api.example.com/data >> output.json\n\n# Format JSON with jq\ncurl -s https://api.example.com/data | jq '.'\n\n# Show timing information\ncurl -w \"Time: %{time_total}s\\n\" -o /dev/null -s https://example.com\n\n# Detailed timing breakdown\ncurl -w \"DNS: %{time_namelookup}s\\nConnect: %{time_connect}s\\nTLS: %{time_appconnect}s\\nTotal: %{time_total}s\\n\" \\\n  -o /dev/null -s https://example.com\n\n# Show HTTP status code only\ncurl -s -o /dev/null -w \"%{http_code}\" https://api.example.com\n",[20,44655,44656,44661,44673,44677,44682,44694,44698,44703,44718,44722,44727,44746,44750,44755,44766,44776,44780,44785],{"__ignoreMap":30},[34,44657,44658],{"class":36,"line":37},[34,44659,44660],{"class":40},"# Write output to file\n",[34,44662,44663,44665,44667,44670],{"class":36,"line":44},[34,44664,8648],{"class":47},[34,44666,8654],{"class":50},[34,44668,44669],{"class":54}," output.json",[34,44671,44672],{"class":54}," https://api.example.com/data\n",[34,44674,44675],{"class":36,"line":58},[34,44676,62],{"emptyLinePlaceholder":61},[34,44678,44679],{"class":36,"line":65},[34,44680,44681],{"class":40},"# Append to file\n",[34,44683,44684,44686,44689,44691],{"class":36,"line":71},[34,44685,8648],{"class":47},[34,44687,44688],{"class":54}," https://api.example.com/data",[34,44690,11348],{"class":580},[34,44692,44693],{"class":54}," output.json\n",[34,44695,44696],{"class":36,"line":77},[34,44697,62],{"emptyLinePlaceholder":61},[34,44699,44700],{"class":36,"line":82},[34,44701,44702],{"class":40},"# Format JSON with jq\n",[34,44704,44705,44707,44709,44711,44713,44715],{"class":36,"line":88},[34,44706,8648],{"class":47},[34,44708,5487],{"class":50},[34,44710,44688],{"class":54},[34,44712,7197],{"class":580},[34,44714,43393],{"class":47},[34,44716,44717],{"class":54}," '.'\n",[34,44719,44720],{"class":36,"line":242},[34,44721,62],{"emptyLinePlaceholder":61},[34,44723,44724],{"class":36,"line":250},[34,44725,44726],{"class":40},"# Show timing information\n",[34,44728,44729,44731,44734,44737,44739,44742,44744],{"class":36,"line":263},[34,44730,8648],{"class":47},[34,44732,44733],{"class":50}," -w",[34,44735,44736],{"class":54}," \"Time: %{time_total}s\\n\"",[34,44738,8654],{"class":50},[34,44740,44741],{"class":54}," /dev/null",[34,44743,5487],{"class":50},[34,44745,43226],{"class":54},[34,44747,44748],{"class":36,"line":275},[34,44749,62],{"emptyLinePlaceholder":61},[34,44751,44752],{"class":36,"line":700},[34,44753,44754],{"class":40},"# Detailed timing breakdown\n",[34,44756,44757,44759,44761,44764],{"class":36,"line":706},[34,44758,8648],{"class":47},[34,44760,44733],{"class":50},[34,44762,44763],{"class":54}," \"DNS: %{time_namelookup}s\\nConnect: %{time_connect}s\\nTLS: %{time_appconnect}s\\nTotal: %{time_total}s\\n\"",[34,44765,7186],{"class":50},[34,44767,44768,44770,44772,44774],{"class":36,"line":715},[34,44769,7191],{"class":50},[34,44771,44741],{"class":54},[34,44773,5487],{"class":50},[34,44775,43226],{"class":54},[34,44777,44778],{"class":36,"line":725},[34,44779,62],{"emptyLinePlaceholder":61},[34,44781,44782],{"class":36,"line":734},[34,44783,44784],{"class":40},"# Show HTTP status code only\n",[34,44786,44787,44789,44791,44793,44795,44797,44800],{"class":36,"line":742},[34,44788,8648],{"class":47},[34,44790,5487],{"class":50},[34,44792,8654],{"class":50},[34,44794,44741],{"class":54},[34,44796,44733],{"class":50},[34,44798,44799],{"class":54}," \"%{http_code}\"",[34,44801,42945],{"class":54},[388,44803,15873],{},{"title":30,"searchDepth":44,"depth":44,"links":44805},[44806],{"id":44650,"depth":44,"text":44645},"Output Formatting in Curl.",{},"/curl/output-formatting",{"title":44645,"description":44807},"curl/output-formatting",[8648,43043,43044,557,43045],"5dAK5glYybF-NwG1y3AWiCX5heSZCdG3oby1O_Nh2Aw",{"id":44815,"title":44816,"body":44817,"date":2633,"description":44885,"extension":404,"meta":44886,"navigation":61,"order":37,"path":44887,"seo":44888,"stem":44889,"subject":8648,"tags":44890,"__hash__":44891},"topics/curl/overview.md","Curl",{"type":8,"value":44818,"toc":44883},[44819],[309,44820,44821,44825,44829,44833,44837,44841,44845,44851,44857,44863,44867,44871,44875,44879],{},[312,44822,44823],{},[145,44824,43183],{"href":43333},[312,44826,44827],{},[145,44828,44062],{"href":44251},[312,44830,44831],{},[145,44832,43928],{"href":44055},[312,44834,44835],{},[145,44836,9362],{"href":43176},[312,44838,44839],{},[145,44840,43629],{"href":43794},[312,44842,44843],{},[145,44844,43514],{"href":43622},[312,44846,44847],{},[145,44848,44850],{"href":44849},"/curl/ssltls","SSL/TLS",[312,44852,44853],{},[145,44854,44856],{"href":44855},"/curl/timeouts-limits","Timeouts & Limits",[312,44858,44859],{},[145,44860,44862],{"href":44861},"/curl/proxy","Proxy",[312,44864,44865],{},[145,44866,44645],{"href":44809},[312,44868,44869],{},[145,44870,43801],{"href":43921},[312,44872,44873],{},[145,44874,28051],{"href":43039},[312,44876,44877],{},[145,44878,18143],{"href":43507},[312,44880,44881],{},[145,44882,44258],{"href":44638},{"title":30,"searchDepth":44,"depth":44,"links":44884},[],"Essential curl commands for making HTTP requests and transferring data.",{},"/curl/overview",{"title":44816,"description":44885},"curl/overview",[8648,43043,43044,557,43045],"lUCyRXxTiV1fH9Eg_eAIoGdL42VJtKAZx7Q5wcJLvBA",{"id":44893,"title":44862,"body":44894,"date":402,"description":44998,"extension":404,"meta":44999,"navigation":61,"order":250,"path":44861,"seo":45000,"stem":45001,"subject":8648,"tags":45002,"__hash__":45003},"topics/curl/proxy.md",{"type":8,"value":44895,"toc":44995},[44896,44899,44993],[11,44897,44862],{"id":44898},"proxy",[25,44900,44902],{"className":27,"code":44901,"language":29,"meta":30,"style":30},"# Use HTTP proxy\ncurl -x http://proxy.example.com:8080 https://api.example.com\ncurl --proxy http://proxy.example.com:8080 https://api.example.com\n\n# SOCKS5 proxy\ncurl --socks5 proxy.example.com:1080 https://api.example.com\n\n# Proxy with authentication\ncurl -x http://user:pass@proxy.example.com:8080 https://api.example.com\n\n# Bypass proxy for specific hosts\ncurl --noproxy \"localhost,*.local\" https://api.example.com\n",[20,44903,44904,44909,44920,44931,44935,44940,44952,44956,44961,44972,44976,44981],{"__ignoreMap":30},[34,44905,44906],{"class":36,"line":37},[34,44907,44908],{"class":40},"# Use HTTP proxy\n",[34,44910,44911,44913,44915,44918],{"class":36,"line":44},[34,44912,8648],{"class":47},[34,44914,12508],{"class":50},[34,44916,44917],{"class":54}," http://proxy.example.com:8080",[34,44919,42945],{"class":54},[34,44921,44922,44924,44927,44929],{"class":36,"line":58},[34,44923,8648],{"class":47},[34,44925,44926],{"class":50}," --proxy",[34,44928,44917],{"class":54},[34,44930,42945],{"class":54},[34,44932,44933],{"class":36,"line":65},[34,44934,62],{"emptyLinePlaceholder":61},[34,44936,44937],{"class":36,"line":71},[34,44938,44939],{"class":40},"# SOCKS5 proxy\n",[34,44941,44942,44944,44947,44950],{"class":36,"line":77},[34,44943,8648],{"class":47},[34,44945,44946],{"class":50}," --socks5",[34,44948,44949],{"class":54}," proxy.example.com:1080",[34,44951,42945],{"class":54},[34,44953,44954],{"class":36,"line":82},[34,44955,62],{"emptyLinePlaceholder":61},[34,44957,44958],{"class":36,"line":88},[34,44959,44960],{"class":40},"# Proxy with authentication\n",[34,44962,44963,44965,44967,44970],{"class":36,"line":242},[34,44964,8648],{"class":47},[34,44966,12508],{"class":50},[34,44968,44969],{"class":54}," http://user:pass@proxy.example.com:8080",[34,44971,42945],{"class":54},[34,44973,44974],{"class":36,"line":250},[34,44975,62],{"emptyLinePlaceholder":61},[34,44977,44978],{"class":36,"line":263},[34,44979,44980],{"class":40},"# Bypass proxy for specific hosts\n",[34,44982,44983,44985,44988,44991],{"class":36,"line":275},[34,44984,8648],{"class":47},[34,44986,44987],{"class":50}," --noproxy",[34,44989,44990],{"class":54}," \"localhost,*.local\"",[34,44992,42945],{"class":54},[388,44994,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":44996},[44997],{"id":44898,"depth":44,"text":44862},"Proxy in Curl.",{},{"title":44862,"description":44998},"curl/proxy",[8648,43043,43044,557,43045],"Y1ZyqxpUpdzU-YrDUX_BxF_MHNmKDboN8wxUVEZA_dI",{"id":45005,"title":44850,"body":45006,"date":402,"description":45151,"extension":404,"meta":45152,"navigation":61,"order":88,"path":44849,"seo":45153,"stem":45154,"subject":8648,"tags":45155,"__hash__":45156},"topics/curl/ssltls.md",{"type":8,"value":45007,"toc":45148},[45008,45011,45146],[11,45009,44850],{"id":45010},"ssltls",[25,45012,45014],{"className":27,"code":45013,"language":29,"meta":30,"style":30},"# Skip certificate verification (insecure)\ncurl -k https://self-signed.example.com\ncurl --insecure https://self-signed.example.com\n\n# Use specific certificate\ncurl --cert client.pem https://api.example.com\ncurl --cert client.pem:password https://api.example.com\n\n# Use certificate authority\ncurl --cacert ca-bundle.crt https://api.example.com\n\n# Use client key\ncurl --cert client.crt --key client.key https://api.example.com\n\n# Specify TLS version\ncurl --tlsv1.2 https://api.example.com\ncurl --tlsv1.3 https://api.example.com\n",[20,45015,45016,45021,45031,45040,45044,45049,45061,45072,45076,45081,45093,45097,45102,45119,45123,45128,45137],{"__ignoreMap":30},[34,45017,45018],{"class":36,"line":37},[34,45019,45020],{"class":40},"# Skip certificate verification (insecure)\n",[34,45022,45023,45025,45028],{"class":36,"line":44},[34,45024,8648],{"class":47},[34,45026,45027],{"class":50}," -k",[34,45029,45030],{"class":54}," https://self-signed.example.com\n",[34,45032,45033,45035,45038],{"class":36,"line":58},[34,45034,8648],{"class":47},[34,45036,45037],{"class":50}," --insecure",[34,45039,45030],{"class":54},[34,45041,45042],{"class":36,"line":65},[34,45043,62],{"emptyLinePlaceholder":61},[34,45045,45046],{"class":36,"line":71},[34,45047,45048],{"class":40},"# Use specific certificate\n",[34,45050,45051,45053,45056,45059],{"class":36,"line":77},[34,45052,8648],{"class":47},[34,45054,45055],{"class":50}," --cert",[34,45057,45058],{"class":54}," client.pem",[34,45060,42945],{"class":54},[34,45062,45063,45065,45067,45070],{"class":36,"line":82},[34,45064,8648],{"class":47},[34,45066,45055],{"class":50},[34,45068,45069],{"class":54}," client.pem:password",[34,45071,42945],{"class":54},[34,45073,45074],{"class":36,"line":88},[34,45075,62],{"emptyLinePlaceholder":61},[34,45077,45078],{"class":36,"line":242},[34,45079,45080],{"class":40},"# Use certificate authority\n",[34,45082,45083,45085,45088,45091],{"class":36,"line":250},[34,45084,8648],{"class":47},[34,45086,45087],{"class":50}," --cacert",[34,45089,45090],{"class":54}," ca-bundle.crt",[34,45092,42945],{"class":54},[34,45094,45095],{"class":36,"line":263},[34,45096,62],{"emptyLinePlaceholder":61},[34,45098,45099],{"class":36,"line":275},[34,45100,45101],{"class":40},"# Use client key\n",[34,45103,45104,45106,45108,45111,45114,45117],{"class":36,"line":700},[34,45105,8648],{"class":47},[34,45107,45055],{"class":50},[34,45109,45110],{"class":54}," client.crt",[34,45112,45113],{"class":50}," --key",[34,45115,45116],{"class":54}," client.key",[34,45118,42945],{"class":54},[34,45120,45121],{"class":36,"line":706},[34,45122,62],{"emptyLinePlaceholder":61},[34,45124,45125],{"class":36,"line":715},[34,45126,45127],{"class":40},"# Specify TLS version\n",[34,45129,45130,45132,45135],{"class":36,"line":725},[34,45131,8648],{"class":47},[34,45133,45134],{"class":50}," --tlsv1.2",[34,45136,42945],{"class":54},[34,45138,45139,45141,45144],{"class":36,"line":734},[34,45140,8648],{"class":47},[34,45142,45143],{"class":50}," --tlsv1.3",[34,45145,42945],{"class":54},[388,45147,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":45149},[45150],{"id":45010,"depth":44,"text":44850},"SSL/TLS in Curl.",{},{"title":44850,"description":45151},"curl/ssltls",[8648,43043,43044,557,43045],"vS48i2wvJ2vSDKBLDdAA5csV6gqYvyF7dLj71VfGahE",{"id":45158,"title":44856,"body":45159,"date":402,"description":45276,"extension":404,"meta":45277,"navigation":61,"order":242,"path":44855,"seo":45278,"stem":45279,"subject":8648,"tags":45280,"__hash__":45281},"topics/curl/timeouts-limits.md",{"type":8,"value":45160,"toc":45273},[45161,45164,45271],[11,45162,44856],{"id":45163},"timeouts-limits",[25,45165,45167],{"className":27,"code":45166,"language":29,"meta":30,"style":30},"# Connection timeout (seconds)\ncurl --connect-timeout 10 https://api.example.com\n\n# Maximum time for operation\ncurl -m 30 https://api.example.com\ncurl --max-time 30 https://api.example.com\n\n# Limit download speed\ncurl --limit-rate 100K https://example.com/large-file.zip\n\n# Retry on failure\ncurl --retry 3 https://api.example.com\ncurl --retry 3 --retry-delay 5 https://api.example.com\n",[20,45168,45169,45174,45185,45189,45194,45204,45215,45219,45224,45236,45240,45245,45256],{"__ignoreMap":30},[34,45170,45171],{"class":36,"line":37},[34,45172,45173],{"class":40},"# Connection timeout (seconds)\n",[34,45175,45176,45178,45181,45183],{"class":36,"line":44},[34,45177,8648],{"class":47},[34,45179,45180],{"class":50}," --connect-timeout",[34,45182,13123],{"class":50},[34,45184,42945],{"class":54},[34,45186,45187],{"class":36,"line":58},[34,45188,62],{"emptyLinePlaceholder":61},[34,45190,45191],{"class":36,"line":65},[34,45192,45193],{"class":40},"# Maximum time for operation\n",[34,45195,45196,45198,45200,45202],{"class":36,"line":71},[34,45197,8648],{"class":47},[34,45199,5037],{"class":50},[34,45201,30458],{"class":50},[34,45203,42945],{"class":54},[34,45205,45206,45208,45211,45213],{"class":36,"line":77},[34,45207,8648],{"class":47},[34,45209,45210],{"class":50}," --max-time",[34,45212,30458],{"class":50},[34,45214,42945],{"class":54},[34,45216,45217],{"class":36,"line":82},[34,45218,62],{"emptyLinePlaceholder":61},[34,45220,45221],{"class":36,"line":88},[34,45222,45223],{"class":40},"# Limit download speed\n",[34,45225,45226,45228,45231,45234],{"class":36,"line":242},[34,45227,8648],{"class":47},[34,45229,45230],{"class":50}," --limit-rate",[34,45232,45233],{"class":54}," 100K",[34,45235,43871],{"class":54},[34,45237,45238],{"class":36,"line":250},[34,45239,62],{"emptyLinePlaceholder":61},[34,45241,45242],{"class":36,"line":263},[34,45243,45244],{"class":40},"# Retry on failure\n",[34,45246,45247,45249,45252,45254],{"class":36,"line":275},[34,45248,8648],{"class":47},[34,45250,45251],{"class":50}," --retry",[34,45253,11147],{"class":50},[34,45255,42945],{"class":54},[34,45257,45258,45260,45262,45264,45267,45269],{"class":36,"line":700},[34,45259,8648],{"class":47},[34,45261,45251],{"class":50},[34,45263,11147],{"class":50},[34,45265,45266],{"class":50}," --retry-delay",[34,45268,11144],{"class":50},[34,45270,42945],{"class":54},[388,45272,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":45274},[45275],{"id":45163,"depth":44,"text":44856},"Timeouts & Limits in Curl.",{},{"title":44856,"description":45276},"curl/timeouts-limits",[8648,43043,43044,557,43045],"ADs5ZitRJKfIs7_lsGVIiemeBOfIVK7A4Gi7cschOXA",{"id":45283,"title":45284,"body":45285,"date":402,"description":45430,"extension":404,"meta":45431,"navigation":61,"order":37,"path":45432,"seo":45433,"stem":45434,"subject":45435,"tags":45436,"__hash__":45439},"topics/cypress/overview.md","Cypress",{"type":8,"value":45286,"toc":45424},[45287,45291,45294,45297,45308,45379,45383,45386,45412,45421],[11,45288,45290],{"id":45289},"why-cypress","Why Cypress",[16,45292,45293],{},"Cypress is an end-to-end testing framework offering reliability, speed, and developer-friendly features. It integrates seamlessly into modern CI/CD pipelines.",[102,45295,45296],{"id":8220},"Features:",[309,45298,45299,45302,45305],{},[312,45300,45301],{},"Automatic reloading: instant test feedback.",[312,45303,45304],{},"Time travel: debug with screenshots of every action.",[312,45306,45307],{},"Real-time browser tests.",[25,45309,45311],{"className":13845,"code":45310,"language":8606,"meta":30,"style":30},"// Simple Cypress test\ncy.visit('https://example.com');\ncy.get('button').click();\ncy.get('.success').should('contain', 'Welcome');\n",[20,45312,45313,45318,45333,45351],{"__ignoreMap":30},[34,45314,45315],{"class":36,"line":37},[34,45316,45317],{"class":40},"// Simple Cypress test\n",[34,45319,45320,45323,45326,45328,45331],{"class":36,"line":44},[34,45321,45322],{"class":181},"cy.",[34,45324,45325],{"class":47},"visit",[34,45327,1607],{"class":181},[34,45329,45330],{"class":54},"'https://example.com'",[34,45332,1586],{"class":181},[34,45334,45335,45337,45339,45341,45344,45346,45349],{"class":36,"line":58},[34,45336,45322],{"class":181},[34,45338,1573],{"class":47},[34,45340,1607],{"class":181},[34,45342,45343],{"class":54},"'button'",[34,45345,1876],{"class":181},[34,45347,45348],{"class":47},"click",[34,45350,851],{"class":181},[34,45352,45353,45355,45357,45359,45362,45364,45367,45369,45372,45374,45377],{"class":36,"line":65},[34,45354,45322],{"class":181},[34,45356,1573],{"class":47},[34,45358,1607],{"class":181},[34,45360,45361],{"class":54},"'.success'",[34,45363,1876],{"class":181},[34,45365,45366],{"class":47},"should",[34,45368,1607],{"class":181},[34,45370,45371],{"class":54},"'contain'",[34,45373,1798],{"class":181},[34,45375,45376],{"class":54},"'Welcome'",[34,45378,1586],{"class":181},[11,45380,45382],{"id":45381},"how-it-works","How It Works",[16,45384,45385],{},"Cypress executes inside the browser, mimicking the real user environment. It removes flakiness common in Selenium-based webs.",[25,45387,45389],{"className":13845,"code":45388,"language":8606,"meta":30,"style":30},"// Run a test\nnpx cypress open\nnpx cypress run # CI mode\n",[20,45390,45391,45396,45401],{"__ignoreMap":30},[34,45392,45393],{"class":36,"line":37},[34,45394,45395],{"class":40},"// Run a test\n",[34,45397,45398],{"class":36,"line":44},[34,45399,45400],{"class":181},"npx cypress open\n",[34,45402,45403,45406,45409],{"class":36,"line":58},[34,45404,45405],{"class":181},"npx cypress run # ",[34,45407,45408],{"class":50},"CI",[34,45410,45411],{"class":181}," mode\n",[16,45413,45414,45415,45420],{},"Click ",[145,45416,45419],{"href":45417,"rel":45418},"https://docs.cypress.io/app/get-started/why-cypress",[149],"here"," for extended guides.",[388,45422,45423],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":30,"searchDepth":44,"depth":44,"links":45425},[45426,45429],{"id":45289,"depth":44,"text":45290,"children":45427},[45428],{"id":8220,"depth":58,"text":45296},{"id":45381,"depth":44,"text":45382},"Introduction to Cypress for modern end-to-end testing, detailing key features and benefits.",{},"/cypress/overview",{"title":45284,"description":45430},"cypress/overview","cypress",[45435,16094,45437,45438],"e2e-testing","modern-testing","FjW8RZhPd0o58lCd45I_i_SBURhJDqsbBOoncRq1ydE",{"id":45441,"title":45442,"body":45443,"date":402,"description":46001,"extension":404,"meta":46002,"navigation":61,"order":37,"path":46003,"seo":46004,"stem":46005,"subject":5878,"tags":46006,"__hash__":46010},"topics/d/overview.md","D",{"type":8,"value":45444,"toc":45991},[45445,45447,45523,45525,45554,45571,45573,45652,45656,45720,45724,45784,45788,45858,45862,45938,45942,45989],[11,45446,97],{"id":96},[25,45448,45450],{"className":27,"code":45449,"language":29,"meta":30,"style":30},"# Install DMD (reference compiler)\n# https://dlang.org/download.html\n\n# macOS\nbrew install dmd\n\n# Ubuntu\nsudo apt install dmd-compiler dub\n\ndmd --version\ndub --version   # package manager\n",[20,45451,45452,45457,45462,45466,45470,45479,45483,45488,45502,45506,45513],{"__ignoreMap":30},[34,45453,45454],{"class":36,"line":37},[34,45455,45456],{"class":40},"# Install DMD (reference compiler)\n",[34,45458,45459],{"class":36,"line":44},[34,45460,45461],{"class":40},"# https://dlang.org/download.html\n",[34,45463,45464],{"class":36,"line":58},[34,45465,62],{"emptyLinePlaceholder":61},[34,45467,45468],{"class":36,"line":65},[34,45469,8625],{"class":40},[34,45471,45472,45474,45476],{"class":36,"line":71},[34,45473,115],{"class":47},[34,45475,118],{"class":54},[34,45477,45478],{"class":54}," dmd\n",[34,45480,45481],{"class":36,"line":77},[34,45482,62],{"emptyLinePlaceholder":61},[34,45484,45485],{"class":36,"line":82},[34,45486,45487],{"class":40},"# Ubuntu\n",[34,45489,45490,45492,45494,45496,45499],{"class":36,"line":88},[34,45491,436],{"class":47},[34,45493,439],{"class":54},[34,45495,118],{"class":54},[34,45497,45498],{"class":54}," dmd-compiler",[34,45500,45501],{"class":54}," dub\n",[34,45503,45504],{"class":36,"line":242},[34,45505,62],{"emptyLinePlaceholder":61},[34,45507,45508,45511],{"class":36,"line":250},[34,45509,45510],{"class":47},"dmd",[34,45512,5013],{"class":50},[34,45514,45515,45518,45520],{"class":36,"line":263},[34,45516,45517],{"class":47},"dub",[34,45519,17717],{"class":50},[34,45521,45522],{"class":40},"   # package manager\n",[11,45524,22151],{"id":22156},[25,45526,45529],{"className":45527,"code":45528,"language":5878,"meta":30,"style":30},"language-d shiki shiki-themes github-light github-dark","import std.stdio;\n\nvoid main() {\n    writeln(\"Hello, World!\");\n}\n",[20,45530,45531,45536,45540,45545,45550],{"__ignoreMap":30},[34,45532,45533],{"class":36,"line":37},[34,45534,45535],{},"import std.stdio;\n",[34,45537,45538],{"class":36,"line":44},[34,45539,62],{"emptyLinePlaceholder":61},[34,45541,45542],{"class":36,"line":58},[34,45543,45544],{},"void main() {\n",[34,45546,45547],{"class":36,"line":65},[34,45548,45549],{},"    writeln(\"Hello, World!\");\n",[34,45551,45552],{"class":36,"line":71},[34,45553,693],{},[25,45555,45557],{"className":27,"code":45556,"language":29,"meta":30,"style":30},"dmd hello.d && ./hello\n",[20,45558,45559],{"__ignoreMap":30},[34,45560,45561,45563,45566,45568],{"class":36,"line":37},[34,45562,45510],{"class":47},[34,45564,45565],{"class":54}," hello.d",[34,45567,5622],{"class":181},[34,45569,45570],{"class":47},"./hello\n",[11,45572,33160],{"id":33159},[25,45574,45576],{"className":45527,"code":45575,"language":5878,"meta":30,"style":30},"import std.stdio;\n\nvoid main() {\n    // Variables\n    int x = 42;\n    auto y = 3.14;      // type inference\n    immutable z = 100;  // immutable\n\n    // String\n    string name = \"Alice\";\n    writefln(\"Hello, %s!\", name);\n\n    // Array\n    int[] arr = [1, 2, 3, 4, 5];\n    writeln(arr.length);\n}\n",[20,45577,45578,45582,45586,45590,45595,45600,45605,45610,45614,45619,45624,45629,45633,45638,45643,45648],{"__ignoreMap":30},[34,45579,45580],{"class":36,"line":37},[34,45581,45535],{},[34,45583,45584],{"class":36,"line":44},[34,45585,62],{"emptyLinePlaceholder":61},[34,45587,45588],{"class":36,"line":58},[34,45589,45544],{},[34,45591,45592],{"class":36,"line":65},[34,45593,45594],{},"    // Variables\n",[34,45596,45597],{"class":36,"line":71},[34,45598,45599],{},"    int x = 42;\n",[34,45601,45602],{"class":36,"line":77},[34,45603,45604],{},"    auto y = 3.14;      // type inference\n",[34,45606,45607],{"class":36,"line":82},[34,45608,45609],{},"    immutable z = 100;  // immutable\n",[34,45611,45612],{"class":36,"line":88},[34,45613,62],{"emptyLinePlaceholder":61},[34,45615,45616],{"class":36,"line":242},[34,45617,45618],{},"    // String\n",[34,45620,45621],{"class":36,"line":250},[34,45622,45623],{},"    string name = \"Alice\";\n",[34,45625,45626],{"class":36,"line":263},[34,45627,45628],{},"    writefln(\"Hello, %s!\", name);\n",[34,45630,45631],{"class":36,"line":275},[34,45632,62],{"emptyLinePlaceholder":61},[34,45634,45635],{"class":36,"line":700},[34,45636,45637],{},"    // Array\n",[34,45639,45640],{"class":36,"line":706},[34,45641,45642],{},"    int[] arr = [1, 2, 3, 4, 5];\n",[34,45644,45645],{"class":36,"line":715},[34,45646,45647],{},"    writeln(arr.length);\n",[34,45649,45650],{"class":36,"line":725},[34,45651,693],{},[11,45653,45655],{"id":45654},"functions-templates","Functions & Templates",[25,45657,45659],{"className":45527,"code":45658,"language":5878,"meta":30,"style":30},"// Regular function\nint add(int a, int b) {\n    return a + b;\n}\n\n// Template function (generic)\nT max(T)(T a, T b) {\n    return a > b ? a : b;\n}\n\n// Usage\nauto result = max(3, 7);    // T inferred as int\nauto fmax = max(1.5, 2.5);  // T inferred as double\n",[20,45660,45661,45666,45671,45675,45679,45683,45688,45693,45698,45702,45706,45710,45715],{"__ignoreMap":30},[34,45662,45663],{"class":36,"line":37},[34,45664,45665],{},"// Regular function\n",[34,45667,45668],{"class":36,"line":44},[34,45669,45670],{},"int add(int a, int b) {\n",[34,45672,45673],{"class":36,"line":58},[34,45674,26309],{},[34,45676,45677],{"class":36,"line":65},[34,45678,693],{},[34,45680,45681],{"class":36,"line":71},[34,45682,62],{"emptyLinePlaceholder":61},[34,45684,45685],{"class":36,"line":77},[34,45686,45687],{},"// Template function (generic)\n",[34,45689,45690],{"class":36,"line":82},[34,45691,45692],{},"T max(T)(T a, T b) {\n",[34,45694,45695],{"class":36,"line":88},[34,45696,45697],{},"    return a > b ? a : b;\n",[34,45699,45700],{"class":36,"line":242},[34,45701,693],{},[34,45703,45704],{"class":36,"line":250},[34,45705,62],{"emptyLinePlaceholder":61},[34,45707,45708],{"class":36,"line":263},[34,45709,1113],{},[34,45711,45712],{"class":36,"line":275},[34,45713,45714],{},"auto result = max(3, 7);    // T inferred as int\n",[34,45716,45717],{"class":36,"line":700},[34,45718,45719],{},"auto fmax = max(1.5, 2.5);  // T inferred as double\n",[11,45721,45723],{"id":45722},"ranges","Ranges",[25,45725,45727],{"className":45527,"code":45726,"language":5878,"meta":30,"style":30},"import std.algorithm;\nimport std.range;\nimport std.stdio;\n\nvoid main() {\n    auto nums = iota(1, 6);             // [1,2,3,4,5]\n    auto doubled = nums.map!(n => n*2); // lazy map\n    auto evens = nums.filter!(n => n%2==0);\n    auto sum = nums.fold!((a,b) => a+b);\n\n    writeln(doubled.array);\n}\n",[20,45728,45729,45734,45739,45743,45747,45751,45756,45761,45766,45771,45775,45780],{"__ignoreMap":30},[34,45730,45731],{"class":36,"line":37},[34,45732,45733],{},"import std.algorithm;\n",[34,45735,45736],{"class":36,"line":44},[34,45737,45738],{},"import std.range;\n",[34,45740,45741],{"class":36,"line":58},[34,45742,45535],{},[34,45744,45745],{"class":36,"line":65},[34,45746,62],{"emptyLinePlaceholder":61},[34,45748,45749],{"class":36,"line":71},[34,45750,45544],{},[34,45752,45753],{"class":36,"line":77},[34,45754,45755],{},"    auto nums = iota(1, 6);             // [1,2,3,4,5]\n",[34,45757,45758],{"class":36,"line":82},[34,45759,45760],{},"    auto doubled = nums.map!(n => n*2); // lazy map\n",[34,45762,45763],{"class":36,"line":88},[34,45764,45765],{},"    auto evens = nums.filter!(n => n%2==0);\n",[34,45767,45768],{"class":36,"line":242},[34,45769,45770],{},"    auto sum = nums.fold!((a,b) => a+b);\n",[34,45772,45773],{"class":36,"line":250},[34,45774,62],{"emptyLinePlaceholder":61},[34,45776,45777],{"class":36,"line":263},[34,45778,45779],{},"    writeln(doubled.array);\n",[34,45781,45782],{"class":36,"line":275},[34,45783,693],{},[11,45785,45787],{"id":45786},"structs-classes","Structs & Classes",[25,45789,45791],{"className":45527,"code":45790,"language":5878,"meta":30,"style":30},"struct Point {\n    double x, y;\n\n    double distance() {\n        import std.math : sqrt;\n        return sqrt(x*x + y*y);\n    }\n}\n\nclass Animal {\n    string name;\n    this(string name) { this.name = name; }\n    void speak() { writeln(name ~ \" speaks\"); }\n}\n",[20,45792,45793,45798,45803,45807,45812,45817,45822,45826,45830,45834,45839,45844,45849,45854],{"__ignoreMap":30},[34,45794,45795],{"class":36,"line":37},[34,45796,45797],{},"struct Point {\n",[34,45799,45800],{"class":36,"line":44},[34,45801,45802],{},"    double x, y;\n",[34,45804,45805],{"class":36,"line":58},[34,45806,62],{"emptyLinePlaceholder":61},[34,45808,45809],{"class":36,"line":65},[34,45810,45811],{},"    double distance() {\n",[34,45813,45814],{"class":36,"line":71},[34,45815,45816],{},"        import std.math : sqrt;\n",[34,45818,45819],{"class":36,"line":77},[34,45820,45821],{},"        return sqrt(x*x + y*y);\n",[34,45823,45824],{"class":36,"line":82},[34,45825,3229],{},[34,45827,45828],{"class":36,"line":88},[34,45829,693],{},[34,45831,45832],{"class":36,"line":242},[34,45833,62],{"emptyLinePlaceholder":61},[34,45835,45836],{"class":36,"line":250},[34,45837,45838],{},"class Animal {\n",[34,45840,45841],{"class":36,"line":263},[34,45842,45843],{},"    string name;\n",[34,45845,45846],{"class":36,"line":275},[34,45847,45848],{},"    this(string name) { this.name = name; }\n",[34,45850,45851],{"class":36,"line":700},[34,45852,45853],{},"    void speak() { writeln(name ~ \" speaks\"); }\n",[34,45855,45856],{"class":36,"line":706},[34,45857,693],{},[11,45859,45861],{"id":45860},"metaprogramming-ctfe-mixins","Metaprogramming (CTFE & Mixins)",[25,45863,45865],{"className":45527,"code":45864,"language":5878,"meta":30,"style":30},"// Compile-time function execution\nint factorial(int n) {\n    return n \u003C= 1 ? 1 : n * factorial(n-1);\n}\nenum fact5 = factorial(5);  // computed at compile time\n\n// String mixin\nmixin(\"int x = 42;\");\nwriteln(x);   // => 42\n\n// Template mixin\nmixin template Logging() {\n    void log(string msg) { writeln(\"[LOG] \" ~ msg); }\n}\nclass MyService { mixin Logging; }\n",[20,45866,45867,45872,45877,45882,45886,45891,45895,45900,45905,45910,45914,45919,45924,45929,45933],{"__ignoreMap":30},[34,45868,45869],{"class":36,"line":37},[34,45870,45871],{},"// Compile-time function execution\n",[34,45873,45874],{"class":36,"line":44},[34,45875,45876],{},"int factorial(int n) {\n",[34,45878,45879],{"class":36,"line":58},[34,45880,45881],{},"    return n \u003C= 1 ? 1 : n * factorial(n-1);\n",[34,45883,45884],{"class":36,"line":65},[34,45885,693],{},[34,45887,45888],{"class":36,"line":71},[34,45889,45890],{},"enum fact5 = factorial(5);  // computed at compile time\n",[34,45892,45893],{"class":36,"line":77},[34,45894,62],{"emptyLinePlaceholder":61},[34,45896,45897],{"class":36,"line":82},[34,45898,45899],{},"// String mixin\n",[34,45901,45902],{"class":36,"line":88},[34,45903,45904],{},"mixin(\"int x = 42;\");\n",[34,45906,45907],{"class":36,"line":242},[34,45908,45909],{},"writeln(x);   // => 42\n",[34,45911,45912],{"class":36,"line":250},[34,45913,62],{"emptyLinePlaceholder":61},[34,45915,45916],{"class":36,"line":263},[34,45917,45918],{},"// Template mixin\n",[34,45920,45921],{"class":36,"line":275},[34,45922,45923],{},"mixin template Logging() {\n",[34,45925,45926],{"class":36,"line":700},[34,45927,45928],{},"    void log(string msg) { writeln(\"[LOG] \" ~ msg); }\n",[34,45930,45931],{"class":36,"line":706},[34,45932,693],{},[34,45934,45935],{"class":36,"line":715},[34,45936,45937],{},"class MyService { mixin Logging; }\n",[11,45939,45941],{"id":45940},"safe-nogc","@safe / @nogc",[25,45943,45945],{"className":45527,"code":45944,"language":5878,"meta":30,"style":30},"@safe void safeFunc() {\n    // No unsafe pointer casts, no inline assembly\n    int[] arr = [1, 2, 3];\n}\n\n@nogc void noGcFunc() {\n    // No GC allocations allowed\n    int[3] arr = [1, 2, 3];  // stack array, fine\n}\n",[20,45946,45947,45952,45957,45962,45966,45970,45975,45980,45985],{"__ignoreMap":30},[34,45948,45949],{"class":36,"line":37},[34,45950,45951],{},"@safe void safeFunc() {\n",[34,45953,45954],{"class":36,"line":44},[34,45955,45956],{},"    // No unsafe pointer casts, no inline assembly\n",[34,45958,45959],{"class":36,"line":58},[34,45960,45961],{},"    int[] arr = [1, 2, 3];\n",[34,45963,45964],{"class":36,"line":65},[34,45965,693],{},[34,45967,45968],{"class":36,"line":71},[34,45969,62],{"emptyLinePlaceholder":61},[34,45971,45972],{"class":36,"line":77},[34,45973,45974],{},"@nogc void noGcFunc() {\n",[34,45976,45977],{"class":36,"line":82},[34,45978,45979],{},"    // No GC allocations allowed\n",[34,45981,45982],{"class":36,"line":88},[34,45983,45984],{},"    int[3] arr = [1, 2, 3];  // stack array, fine\n",[34,45986,45987],{"class":36,"line":242},[34,45988,693],{},[388,45990,7983],{},{"title":30,"searchDepth":44,"depth":44,"links":45992},[45993,45994,45995,45996,45997,45998,45999,46000],{"id":96,"depth":44,"text":97},{"id":22156,"depth":44,"text":22151},{"id":33159,"depth":44,"text":33160},{"id":45654,"depth":44,"text":45655},{"id":45722,"depth":44,"text":45723},{"id":45786,"depth":44,"text":45787},{"id":45860,"depth":44,"text":45861},{"id":45940,"depth":44,"text":45941},"A systems programming language with C-like syntax, modern features, and powerful metaprogramming.",{},"/d/overview",{"title":45442,"description":46001},"d/overview",[5878,46007,18137,46008,46009],"dlang","metaprogramming","compiled","UnEdN07VQdbRV6MAdmXybDEdgW7P0hppZYZgYx4KQ4A",{"id":46012,"title":46013,"body":46014,"date":402,"description":46233,"extension":404,"meta":46234,"navigation":61,"order":37,"path":46235,"seo":46236,"stem":46237,"subject":46142,"tags":46238,"__hash__":46240},"topics/d2/overview.md","D2",{"type":8,"value":46015,"toc":46225},[46016,46018,46021,46023,46029,46126,46130,46133,46147,46151,46159,46163,46208,46212,46215,46223],[11,46017,13534],{"id":13533},[16,46019,46020],{},"D2 is a declarative diagram scripting language that transforms text into diagrams. This makes it easy to describe complex visuals programmatically.",[11,46022,6035],{"id":6040},[16,46024,46025,46026,151],{},"Install the D2 CLI and create a diagram file such as ",[20,46027,46028],{},"input.d2",[25,46030,46032],{"className":27,"code":46031,"language":29,"meta":30,"style":30},"# Install D2 CLI\ncurl -fsSL https://d2lang.com/install.sh -o install.sh\nbash install.sh\n\n# Create a sample diagram file\ncat \u003C\u003C'EOF' > input.d2\ncentral: Central Component {\n  component1: Component 1\n  component2: Component 2\n}\nEOF\n\n# Generate the diagram\nD2 input.d2 -o diagram.png\n",[20,46033,46034,46039,46053,46059,46063,46068,46082,46087,46092,46097,46101,46105,46109,46114],{"__ignoreMap":30},[34,46035,46036],{"class":36,"line":37},[34,46037,46038],{"class":40},"# Install D2 CLI\n",[34,46040,46041,46043,46045,46048,46050],{"class":36,"line":44},[34,46042,8648],{"class":47},[34,46044,15806],{"class":50},[34,46046,46047],{"class":54}," https://d2lang.com/install.sh",[34,46049,8654],{"class":50},[34,46051,46052],{"class":54}," install.sh\n",[34,46054,46055,46057],{"class":36,"line":58},[34,46056,29],{"class":47},[34,46058,46052],{"class":54},[34,46060,46061],{"class":36,"line":65},[34,46062,62],{"emptyLinePlaceholder":61},[34,46064,46065],{"class":36,"line":71},[34,46066,46067],{"class":40},"# Create a sample diagram file\n",[34,46069,46070,46072,46074,46077,46079],{"class":36,"line":77},[34,46071,11449],{"class":47},[34,46073,11452],{"class":580},[34,46075,46076],{"class":54},"'EOF'",[34,46078,9009],{"class":580},[34,46080,46081],{"class":54}," input.d2\n",[34,46083,46084],{"class":36,"line":82},[34,46085,46086],{"class":54},"central: Central Component {\n",[34,46088,46089],{"class":36,"line":88},[34,46090,46091],{"class":54},"  component1: Component 1\n",[34,46093,46094],{"class":36,"line":242},[34,46095,46096],{"class":54},"  component2: Component 2\n",[34,46098,46099],{"class":36,"line":250},[34,46100,693],{"class":54},[34,46102,46103],{"class":36,"line":263},[34,46104,11475],{"class":54},[34,46106,46107],{"class":36,"line":275},[34,46108,62],{"emptyLinePlaceholder":61},[34,46110,46111],{"class":36,"line":700},[34,46112,46113],{"class":40},"# Generate the diagram\n",[34,46115,46116,46118,46121,46123],{"class":36,"line":706},[34,46117,46013],{"class":47},[34,46119,46120],{"class":54}," input.d2",[34,46122,8654],{"class":50},[34,46124,46125],{"class":54}," diagram.png\n",[11,46127,46129],{"id":46128},"cli-watch-mode","CLI Watch Mode",[16,46131,46132],{},"The CLI can monitor and regenerate diagrams as you edit files:",[25,46134,46136],{"className":27,"code":46135,"language":29,"meta":30,"style":30},"d2 watch input.d2\n",[20,46137,46138],{"__ignoreMap":30},[34,46139,46140,46143,46145],{"class":36,"line":37},[34,46141,46142],{"class":47},"d2",[34,46144,16157],{"class":54},[34,46146,46081],{"class":54},[11,46148,46150],{"id":46149},"playground","Playground",[16,46152,46153,46154],{},"Tinker with D2 syntax directly in the browser: ",[145,46155,46158],{"href":46156,"rel":46157},"https://play.d2lang.com",[149],"D2 Playground",[11,46160,46162],{"id":46161},"example-input","Example Input",[25,46164,46167],{"className":46165,"code":46166,"language":46142,"meta":30,"style":30},"language-d2 shiki shiki-themes github-light github-dark","Central {\n  Component1\n  Component2\n  Component3\n}\nCentral -> Component1: Connect\nCentral -> Component3: Associate\nComponent2 -> Component3: Link\n",[20,46168,46169,46174,46179,46184,46189,46193,46198,46203],{"__ignoreMap":30},[34,46170,46171],{"class":36,"line":37},[34,46172,46173],{},"Central {\n",[34,46175,46176],{"class":36,"line":44},[34,46177,46178],{},"  Component1\n",[34,46180,46181],{"class":36,"line":58},[34,46182,46183],{},"  Component2\n",[34,46185,46186],{"class":36,"line":65},[34,46187,46188],{},"  Component3\n",[34,46190,46191],{"class":36,"line":71},[34,46192,693],{},[34,46194,46195],{"class":36,"line":77},[34,46196,46197],{},"Central -> Component1: Connect\n",[34,46199,46200],{"class":36,"line":82},[34,46201,46202],{},"Central -> Component3: Associate\n",[34,46204,46205],{"class":36,"line":88},[34,46206,46207],{},"Component2 -> Component3: Link\n",[11,46209,46211],{"id":46210},"example-output","Example Output",[16,46213,46214],{},"This code generates a diagram illustrating relationships between components.",[16,46216,46217,46218,151],{},"To learn more, explore the ",[145,46219,46222],{"href":46220,"rel":46221},"https://d2lang.com/tour/intro",[149],"D2 Tour",[388,46224,15873],{},{"title":30,"searchDepth":44,"depth":44,"links":46226},[46227,46228,46229,46230,46231,46232],{"id":13533,"depth":44,"text":13534},{"id":6040,"depth":44,"text":6035},{"id":46128,"depth":44,"text":46129},{"id":46149,"depth":44,"text":46150},{"id":46161,"depth":44,"text":46162},{"id":46210,"depth":44,"text":46211},"Learn how to create diagrams using the declarative D2 scripting language.",{},"/d2/overview",{"title":46013,"description":46233},"d2/overview",[46142,46239,10359,411],"diagrams","1Ustkr0qnMyo-WbAjlaOhPIFSfZFCQMugyczdNGSm9g",{"id":46242,"title":46243,"body":46244,"date":402,"description":46554,"extension":404,"meta":46555,"navigation":61,"order":37,"path":46556,"seo":46557,"stem":46558,"subject":46559,"tags":46560,"__hash__":46563},"topics/daisyui/overview.md","DaisyUI",{"type":8,"value":46245,"toc":46547},[46246,46250,46253,46288,46292,46296,46303,46367,46369,46541,46544],[11,46247,46249],{"id":46248},"overview-of-daisyui","Overview of DaisyUI",[16,46251,46252],{},"DaisyUI is a Tailwind CSS UI component library. It simplifies creating modern and responsive interfaces.",[25,46254,46256],{"className":27,"code":46255,"language":29,"meta":30,"style":30},"# Install DaisyUI via your package manager\nnpm install daisyui\npnpm add daisyui\nyarn add daisyui\n",[20,46257,46258,46263,46272,46280],{"__ignoreMap":30},[34,46259,46260],{"class":36,"line":37},[34,46261,46262],{"class":40},"# Install DaisyUI via your package manager\n",[34,46264,46265,46267,46269],{"class":36,"line":44},[34,46266,8177],{"class":47},[34,46268,118],{"class":54},[34,46270,46271],{"class":54}," daisyui\n",[34,46273,46274,46276,46278],{"class":36,"line":58},[34,46275,13788],{"class":47},[34,46277,7854],{"class":54},[34,46279,46271],{"class":54},[34,46281,46282,46284,46286],{"class":36,"line":65},[34,46283,13810],{"class":47},[34,46285,7854],{"class":54},[34,46287,46271],{"class":54},[11,46289,46291],{"id":46290},"adding-daisyui-to-your-project","Adding DaisyUI to Your Project",[102,46293,46295],{"id":46294},"tailwind-configuration","Tailwind Configuration",[16,46297,46298,46299,46302],{},"Update ",[20,46300,46301],{},"tailwind.config.js"," to include DaisyUI plugin:",[25,46304,46306],{"className":13845,"code":46305,"language":8606,"meta":30,"style":30},"module.exports = {\n    content: [\"./src/**/*.{html,js}\"],\n    theme: {\n        extend: {},\n    },\n    plugins: [require(\"daisyui\")],\n}\n",[20,46307,46308,46322,46333,46338,46343,46347,46363],{"__ignoreMap":30},[34,46309,46310,46313,46315,46318,46320],{"class":36,"line":37},[34,46311,46312],{"class":50},"module",[34,46314,151],{"class":181},[34,46316,46317],{"class":50},"exports",[34,46319,683],{"class":580},[34,46321,661],{"class":181},[34,46323,46324,46327,46330],{"class":36,"line":44},[34,46325,46326],{"class":181},"    content: [",[34,46328,46329],{"class":54},"\"./src/**/*.{html,js}\"",[34,46331,46332],{"class":181},"],\n",[34,46334,46335],{"class":36,"line":58},[34,46336,46337],{"class":181},"    theme: {\n",[34,46339,46340],{"class":36,"line":65},[34,46341,46342],{"class":181},"        extend: {},\n",[34,46344,46345],{"class":36,"line":71},[34,46346,15762],{"class":181},[34,46348,46349,46352,46355,46357,46360],{"class":36,"line":77},[34,46350,46351],{"class":181},"    plugins: [",[34,46353,46354],{"class":47},"require",[34,46356,1607],{"class":181},[34,46358,46359],{"class":54},"\"daisyui\"",[34,46361,46362],{"class":181},")],\n",[34,46364,46365],{"class":36,"line":82},[34,46366,693],{"class":181},[102,46368,13842],{"id":13841},[25,46370,46372],{"className":1162,"code":46371,"language":1164,"meta":30,"style":30},"\u003C!DOCTYPE html>\n\u003Chtml lang=\"en\">\n\u003Chead>\n    \u003Cmeta charset=\"UTF-8\">\n    \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    \u003Ctitle>DaisyUI Example\u003C/title>\n    \u003Clink href=\"dist/output.css\" rel=\"stylesheet\">\n\u003C/head>\n\u003Cbody>\n    \u003Cbutton class=\"btn btn-primary\">Click me\u003C/button>\n\u003C/body>\n\u003C/html>\n",[20,46373,46374,46387,46403,46411,46428,46450,46463,46488,46496,46505,46525,46533],{"__ignoreMap":30},[34,46375,46376,46379,46382,46385],{"class":36,"line":37},[34,46377,46378],{"class":181},"\u003C!",[34,46380,46381],{"class":177},"DOCTYPE",[34,46383,46384],{"class":47}," html",[34,46386,1248],{"class":181},[34,46388,46389,46391,46393,46396,46398,46401],{"class":36,"line":44},[34,46390,815],{"class":181},[34,46392,1164],{"class":177},[34,46394,46395],{"class":47}," lang",[34,46397,1301],{"class":181},[34,46399,46400],{"class":54},"\"en\"",[34,46402,1248],{"class":181},[34,46404,46405,46407,46409],{"class":36,"line":58},[34,46406,815],{"class":181},[34,46408,13118],{"class":177},[34,46410,1248],{"class":181},[34,46412,46413,46415,46418,46421,46423,46426],{"class":36,"line":65},[34,46414,1294],{"class":181},[34,46416,46417],{"class":177},"meta",[34,46419,46420],{"class":47}," charset",[34,46422,1301],{"class":181},[34,46424,46425],{"class":54},"\"UTF-8\"",[34,46427,1248],{"class":181},[34,46429,46430,46432,46434,46436,46438,46441,46443,46445,46448],{"class":36,"line":71},[34,46431,1294],{"class":181},[34,46433,46417],{"class":177},[34,46435,12323],{"class":47},[34,46437,1301],{"class":181},[34,46439,46440],{"class":54},"\"viewport\"",[34,46442,35532],{"class":47},[34,46444,1301],{"class":181},[34,46446,46447],{"class":54},"\"width=device-width, initial-scale=1.0\"",[34,46449,1248],{"class":181},[34,46451,46452,46454,46456,46459,46461],{"class":36,"line":77},[34,46453,1294],{"class":181},[34,46455,953],{"class":177},[34,46457,46458],{"class":181},">DaisyUI Example\u003C/",[34,46460,953],{"class":177},[34,46462,1248],{"class":181},[34,46464,46465,46467,46470,46473,46475,46478,46481,46483,46486],{"class":36,"line":82},[34,46466,1294],{"class":181},[34,46468,46469],{"class":177},"link",[34,46471,46472],{"class":47}," href",[34,46474,1301],{"class":181},[34,46476,46477],{"class":54},"\"dist/output.css\"",[34,46479,46480],{"class":47}," rel",[34,46482,1301],{"class":181},[34,46484,46485],{"class":54},"\"stylesheet\"",[34,46487,1248],{"class":181},[34,46489,46490,46492,46494],{"class":36,"line":88},[34,46491,2089],{"class":181},[34,46493,13118],{"class":177},[34,46495,1248],{"class":181},[34,46497,46498,46500,46503],{"class":36,"line":242},[34,46499,815],{"class":181},[34,46501,46502],{"class":177},"body",[34,46504,1248],{"class":181},[34,46506,46507,46509,46511,46513,46515,46518,46521,46523],{"class":36,"line":250},[34,46508,1294],{"class":181},[34,46510,4509],{"class":177},[34,46512,655],{"class":47},[34,46514,1301],{"class":181},[34,46516,46517],{"class":54},"\"btn btn-primary\"",[34,46519,46520],{"class":181},">Click me\u003C/",[34,46522,4509],{"class":177},[34,46524,1248],{"class":181},[34,46526,46527,46529,46531],{"class":36,"line":263},[34,46528,2089],{"class":181},[34,46530,46502],{"class":177},[34,46532,1248],{"class":181},[34,46534,46535,46537,46539],{"class":36,"line":275},[34,46536,2089],{"class":181},[34,46538,1164],{"class":177},[34,46540,1248],{"class":181},[16,46542,46543],{},"-- Add more sections following the SKILL.md --",[388,46545,46546],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":30,"searchDepth":44,"depth":44,"links":46548},[46549,46550],{"id":46248,"depth":44,"text":46249},{"id":46290,"depth":44,"text":46291,"children":46551},[46552,46553],{"id":46294,"depth":58,"text":46295},{"id":13841,"depth":58,"text":13842},"Install DaisyUI as a Tailwind CSS plugin with practical steps and examples.",{},"/daisyui/overview",{"title":46243,"description":46554},"daisyui/overview","daisyui",[46559,38194,46561,46562,96],"tailwind","ui-library","dgo38VmVvbeS4MRGCo8LCDpppbyUhDeO_wPskUNgX1k",{"id":46565,"title":46566,"body":46567,"date":402,"description":46687,"extension":404,"meta":46688,"navigation":61,"order":37,"path":46689,"seo":46690,"stem":46691,"subject":46692,"tags":46693,"__hash__":46695},"topics/datadog/overview.md","Datadog Cheat Sheet",{"type":8,"value":46568,"toc":46683},[46569,46573,46624,46628,46680],[11,46570,46572],{"id":46571},"installing-the-datadog-agent","Installing the Datadog Agent",[25,46574,46576],{"className":28261,"code":46575,"language":10358,"meta":30,"style":30},"DD_AGENT_MAJOR_VERSION=7 DD_API_KEY=\u003Cyour_api_key> DD_SITE=\"datadoghq.com\" \\\n  bash -c \"$(curl -L https://s3.amazonaws.com/dd-agent/scripts/install_script.sh)\"\n",[20,46577,46578,46608],{"__ignoreMap":30},[34,46579,46580,46583,46585,46587,46590,46593,46596,46598,46601,46603,46606],{"class":36,"line":37},[34,46581,46582],{"class":181},"DD_AGENT_MAJOR_VERSION",[34,46584,1301],{"class":580},[34,46586,18028],{"class":54},[34,46588,46589],{"class":181}," DD_API_KEY",[34,46591,46592],{"class":580},"=\u003C",[34,46594,46595],{"class":54},"your_api_key",[34,46597,5691],{"class":580},[34,46599,46600],{"class":181}," DD_SITE",[34,46602,1301],{"class":580},[34,46604,46605],{"class":54},"\"datadoghq.com\"",[34,46607,7186],{"class":47},[34,46609,46610,46613,46615,46617,46619,46621],{"class":36,"line":44},[34,46611,46612],{"class":54},"  bash",[34,46614,15867],{"class":50},[34,46616,29582],{"class":54},[34,46618,8648],{"class":47},[34,46620,43254],{"class":50},[34,46622,46623],{"class":54}," https://s3.amazonaws.com/dd-agent/scripts/install_script.sh)\"\n",[11,46625,46627],{"id":46626},"collecting-logs","Collecting Logs",[25,46629,46631],{"className":168,"code":46630,"language":170,"meta":30,"style":30},"logs:\n  - type: file\n    path: /var/log/my-app.log\n    service: my-app\n    source: my-app-source\n",[20,46632,46633,46640,46652,46661,46670],{"__ignoreMap":30},[34,46634,46635,46638],{"class":36,"line":37},[34,46636,46637],{"class":177},"logs",[34,46639,193],{"class":181},[34,46641,46642,46645,46647,46649],{"class":36,"line":44},[34,46643,46644],{"class":181},"  - ",[34,46646,41324],{"class":177},[34,46648,182],{"class":181},[34,46650,46651],{"class":54},"file\n",[34,46653,46654,46656,46658],{"class":36,"line":58},[34,46655,7413],{"class":177},[34,46657,182],{"class":181},[34,46659,46660],{"class":54},"/var/log/my-app.log\n",[34,46662,46663,46666,46668],{"class":36,"line":65},[34,46664,46665],{"class":177},"    service",[34,46667,182],{"class":181},[34,46669,7355],{"class":54},[34,46671,46672,46675,46677],{"class":36,"line":71},[34,46673,46674],{"class":177},"    source",[34,46676,182],{"class":181},[34,46678,46679],{"class":54},"my-app-source\n",[388,46681,46682],{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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);}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":30,"searchDepth":44,"depth":44,"links":46684},[46685,46686],{"id":46571,"depth":44,"text":46572},{"id":46626,"depth":44,"text":46627},"Integrations, metrics, and monitoring with Datadog.",{},"/datadog/overview",{"title":46566,"description":46687},"datadog/overview","datadog",[46692,14143,46637,46694],"apm","UGXSM4CkvYMTzNAKlxUIHJ5eiXGqMC2t1BwTwM7PX6U",{"id":46697,"title":46698,"body":46699,"date":402,"description":46703,"extension":404,"meta":46704,"navigation":61,"order":37,"path":46705,"seo":46706,"stem":46707,"subject":46708,"tags":46709,"__hash__":46710},"topics/delta/overview.md","Delta",{"type":8,"value":46700,"toc":46701},[],{"title":30,"searchDepth":44,"depth":44,"links":46702},[],"A syntax-highlighting pager for git, diff, grep, and blame output.",{},"/delta/overview",{"title":46698,"description":46703},"delta/overview","delta","git, cli-tool, syntax-highlighting","xOSr1AtuS2RvNlwUF49ekg4qf1kQGLMJ7Cam50qexhw",{"id":46712,"title":46713,"body":46714,"date":402,"description":46864,"extension":404,"meta":46865,"navigation":61,"order":242,"path":46866,"seo":46867,"stem":46868,"subject":46733,"tags":46869,"__hash__":46871},"topics/deno/built-in-tools.md","Built-in Tools",{"type":8,"value":46715,"toc":46861},[46716,46719,46859],[11,46717,46713],{"id":46718},"built-in-tools",[25,46720,46722],{"className":27,"code":46721,"language":29,"meta":30,"style":30},"# Format code\ndeno fmt\n\n# Lint code\ndeno lint\n\n# Type check\ndeno check script.ts\n\n# Run tests\ndeno test\n\n# Generate documentation\ndeno doc script.ts\n\n# Bundle into single file\ndeno bundle script.ts output.js\n\n# Compile to executable\ndeno compile script.ts\n\n# Start REPL\ndeno repl\n",[20,46723,46724,46729,46737,46741,46746,46753,46757,46762,46771,46775,46779,46785,46789,46794,46803,46807,46812,46825,46829,46834,46843,46847,46852],{"__ignoreMap":30},[34,46725,46726],{"class":36,"line":37},[34,46727,46728],{"class":40},"# Format code\n",[34,46730,46731,46734],{"class":36,"line":44},[34,46732,46733],{"class":47},"deno",[34,46735,46736],{"class":54}," fmt\n",[34,46738,46739],{"class":36,"line":58},[34,46740,62],{"emptyLinePlaceholder":61},[34,46742,46743],{"class":36,"line":65},[34,46744,46745],{"class":40},"# Lint code\n",[34,46747,46748,46750],{"class":36,"line":71},[34,46749,46733],{"class":47},[34,46751,46752],{"class":54}," lint\n",[34,46754,46755],{"class":36,"line":77},[34,46756,62],{"emptyLinePlaceholder":61},[34,46758,46759],{"class":36,"line":82},[34,46760,46761],{"class":40},"# Type check\n",[34,46763,46764,46766,46769],{"class":36,"line":88},[34,46765,46733],{"class":47},[34,46767,46768],{"class":54}," check",[34,46770,16544],{"class":54},[34,46772,46773],{"class":36,"line":242},[34,46774,62],{"emptyLinePlaceholder":61},[34,46776,46777],{"class":36,"line":250},[34,46778,17459],{"class":40},[34,46780,46781,46783],{"class":36,"line":263},[34,46782,46733],{"class":47},[34,46784,16110],{"class":54},[34,46786,46787],{"class":36,"line":275},[34,46788,62],{"emptyLinePlaceholder":61},[34,46790,46791],{"class":36,"line":700},[34,46792,46793],{"class":40},"# Generate documentation\n",[34,46795,46796,46798,46801],{"class":36,"line":706},[34,46797,46733],{"class":47},[34,46799,46800],{"class":54}," doc",[34,46802,16544],{"class":54},[34,46804,46805],{"class":36,"line":715},[34,46806,62],{"emptyLinePlaceholder":61},[34,46808,46809],{"class":36,"line":725},[34,46810,46811],{"class":40},"# Bundle into single file\n",[34,46813,46814,46816,46819,46822],{"class":36,"line":734},[34,46815,46733],{"class":47},[34,46817,46818],{"class":54}," bundle",[34,46820,46821],{"class":54}," script.ts",[34,46823,46824],{"class":54}," output.js\n",[34,46826,46827],{"class":36,"line":742},[34,46828,62],{"emptyLinePlaceholder":61},[34,46830,46831],{"class":36,"line":748},[34,46832,46833],{"class":40},"# Compile to executable\n",[34,46835,46836,46838,46841],{"class":36,"line":754},[34,46837,46733],{"class":47},[34,46839,46840],{"class":54}," compile",[34,46842,16544],{"class":54},[34,46844,46845],{"class":36,"line":759},[34,46846,62],{"emptyLinePlaceholder":61},[34,46848,46849],{"class":36,"line":771},[34,46850,46851],{"class":40},"# Start REPL\n",[34,46853,46854,46856],{"class":36,"line":794},[34,46855,46733],{"class":47},[34,46857,46858],{"class":54}," repl\n",[388,46860,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":46862},[46863],{"id":46718,"depth":44,"text":46713},"Built-in Tools in Deno.",{},"/deno/built-in-tools",{"title":46713,"description":46864},"deno/built-in-tools",[46733,573,8606,14296,46870],"backend","TfJbEYpxvoxjTC3Mi4FSANWzUifkj-MYGZh2Xyebt6w",{"id":46873,"title":46874,"body":46875,"date":402,"description":47042,"extension":404,"meta":47043,"navigation":61,"order":58,"path":47044,"seo":47045,"stem":47046,"subject":46733,"tags":47047,"__hash__":47048},"topics/deno/deno-vs-npm-commands.md","Deno vs npm Commands",{"type":8,"value":46876,"toc":47039},[46877,46880],[11,46878,46874],{"id":46879},"deno-vs-npm-commands",[14308,46881,46882,46893],{},[14311,46883,46884],{},[14314,46885,46886,46888,46891],{},[14317,46887,14319],{},[14317,46889,46890],{},"Deno",[14317,46892,8177],{},[14326,46894,46895,46908,46921,46936,46951,46966,46979,46994,47009,47024],{},[14314,46896,46897,46899,46904],{},[14331,46898,14333],{},[14331,46900,46901],{},[20,46902,46903],{},"deno init",[14331,46905,46906],{},[20,46907,14343],{},[14314,46909,46910,46912,46917],{},[14331,46911,14348],{},[14331,46913,46914],{},[20,46915,46916],{},"deno install",[14331,46918,46919],{},[20,46920,14358],{},[14314,46922,46923,46926,46931],{},[14331,46924,46925],{},"Add a package",[14331,46927,46928],{},[20,46929,46930],{},"deno add npm:lodash",[14331,46932,46933],{},[20,46934,46935],{},"npm install lodash",[14314,46937,46938,46941,46946],{},[14331,46939,46940],{},"Add a dev dependency",[14331,46942,46943],{},[20,46944,46945],{},"deno add --dev npm:vitest",[14331,46947,46948],{},[20,46949,46950],{},"npm install -D vitest",[14314,46952,46953,46956,46961],{},[14331,46954,46955],{},"Run a script",[14331,46957,46958],{},[20,46959,46960],{},"deno task dev",[14331,46962,46963],{},[20,46964,46965],{},"npm run dev",[14314,46967,46968,46970,46975],{},[14331,46969,14468],{},[14331,46971,46972],{},[20,46973,46974],{},"deno test",[14331,46976,46977],{},[20,46978,14478],{},[14314,46980,46981,46984,46989],{},[14331,46982,46983],{},"Format code",[14331,46985,46986],{},[20,46987,46988],{},"deno fmt",[14331,46990,46991],{},[20,46992,46993],{},"npm run prettier",[14314,46995,46996,46999,47004],{},[14331,46997,46998],{},"Lint code",[14331,47000,47001],{},[20,47002,47003],{},"deno lint",[14331,47005,47006],{},[20,47007,47008],{},"npm run eslint",[14314,47010,47011,47014,47019],{},[14331,47012,47013],{},"Execute a package",[14331,47015,47016],{},[20,47017,47018],{},"deno run npm:cowsay",[14331,47020,47021],{},[20,47022,47023],{},"npx cowsay",[14314,47025,47026,47029,47034],{},[14331,47027,47028],{},"Publish a package",[14331,47030,47031],{},[20,47032,47033],{},"deno publish",[14331,47035,47036],{},[20,47037,47038],{},"npm publish",{"title":30,"searchDepth":44,"depth":44,"links":47040},[47041],{"id":46879,"depth":44,"text":46874},"Deno vs npm Commands in Deno.",{},"/deno/deno-vs-npm-commands",{"title":46874,"description":47042},"deno/deno-vs-npm-commands",[46733,573,8606,14296,46870],"rkc6PpZ2jdNZqi9EEWwscFHimC_HCdy5QRbop6CETic",{"id":47050,"title":47051,"body":47052,"date":402,"description":47228,"extension":404,"meta":47229,"navigation":61,"order":715,"path":47230,"seo":47231,"stem":47232,"subject":46733,"tags":47233,"__hash__":47234},"topics/deno/denojson-configuration.md","deno.json Configuration",{"type":8,"value":47053,"toc":47225},[47054,47057,47222],[11,47055,47051],{"id":47056},"denojson-configuration",[25,47058,47060],{"className":28058,"code":47059,"language":14790,"meta":30,"style":30},"{\n  \"tasks\": {\n    \"dev\": \"deno run --watch --allow-all main.ts\",\n    \"start\": \"deno run --allow-all main.ts\",\n    \"test\": \"deno test --allow-all\"\n  },\n  \"imports\": {\n    \"@std/\": \"jsr:@std/\"\n  },\n  \"compilerOptions\": {\n    \"strict\": true\n  },\n  \"fmt\": {\n    \"indentWidth\": 2,\n    \"singleQuote\": true\n  },\n  \"lint\": {\n    \"rules\": {\n      \"exclude\": [\"no-unused-vars\"]\n    }\n  }\n}\n",[20,47061,47062,47066,47073,47085,47097,47107,47111,47118,47128,47132,47139,47148,47152,47159,47170,47179,47183,47190,47197,47210,47214,47218],{"__ignoreMap":30},[34,47063,47064],{"class":36,"line":37},[34,47065,25296],{"class":181},[34,47067,47068,47071],{"class":36,"line":44},[34,47069,47070],{"class":50},"  \"tasks\"",[34,47072,28073],{"class":181},[34,47074,47075,47078,47080,47083],{"class":36,"line":58},[34,47076,47077],{"class":50},"    \"dev\"",[34,47079,182],{"class":181},[34,47081,47082],{"class":54},"\"deno run --watch --allow-all main.ts\"",[34,47084,624],{"class":181},[34,47086,47087,47090,47092,47095],{"class":36,"line":65},[34,47088,47089],{"class":50},"    \"start\"",[34,47091,182],{"class":181},[34,47093,47094],{"class":54},"\"deno run --allow-all main.ts\"",[34,47096,624],{"class":181},[34,47098,47099,47102,47104],{"class":36,"line":71},[34,47100,47101],{"class":50},"    \"test\"",[34,47103,182],{"class":181},[34,47105,47106],{"class":54},"\"deno test --allow-all\"\n",[34,47108,47109],{"class":36,"line":77},[34,47110,3400],{"class":181},[34,47112,47113,47116],{"class":36,"line":82},[34,47114,47115],{"class":50},"  \"imports\"",[34,47117,28073],{"class":181},[34,47119,47120,47123,47125],{"class":36,"line":88},[34,47121,47122],{"class":50},"    \"@std/\"",[34,47124,182],{"class":181},[34,47126,47127],{"class":54},"\"jsr:@std/\"\n",[34,47129,47130],{"class":36,"line":242},[34,47131,3400],{"class":181},[34,47133,47134,47137],{"class":36,"line":250},[34,47135,47136],{"class":50},"  \"compilerOptions\"",[34,47138,28073],{"class":181},[34,47140,47141,47144,47146],{"class":36,"line":263},[34,47142,47143],{"class":50},"    \"strict\"",[34,47145,182],{"class":181},[34,47147,515],{"class":50},[34,47149,47150],{"class":36,"line":275},[34,47151,3400],{"class":181},[34,47153,47154,47157],{"class":36,"line":700},[34,47155,47156],{"class":50},"  \"fmt\"",[34,47158,28073],{"class":181},[34,47160,47161,47164,47166,47168],{"class":36,"line":706},[34,47162,47163],{"class":50},"    \"indentWidth\"",[34,47165,182],{"class":181},[34,47167,8324],{"class":50},[34,47169,624],{"class":181},[34,47171,47172,47175,47177],{"class":36,"line":715},[34,47173,47174],{"class":50},"    \"singleQuote\"",[34,47176,182],{"class":181},[34,47178,515],{"class":50},[34,47180,47181],{"class":36,"line":725},[34,47182,3400],{"class":181},[34,47184,47185,47188],{"class":36,"line":734},[34,47186,47187],{"class":50},"  \"lint\"",[34,47189,28073],{"class":181},[34,47191,47192,47195],{"class":36,"line":742},[34,47193,47194],{"class":50},"    \"rules\"",[34,47196,28073],{"class":181},[34,47198,47199,47202,47205,47208],{"class":36,"line":748},[34,47200,47201],{"class":50},"      \"exclude\"",[34,47203,47204],{"class":181},": [",[34,47206,47207],{"class":54},"\"no-unused-vars\"",[34,47209,924],{"class":181},[34,47211,47212],{"class":36,"line":754},[34,47213,3229],{"class":181},[34,47215,47216],{"class":36,"line":759},[34,47217,857],{"class":181},[34,47219,47220],{"class":36,"line":771},[34,47221,693],{"class":181},[388,47223,47224],{},"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 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);}",{"title":30,"searchDepth":44,"depth":44,"links":47226},[47227],{"id":47056,"depth":44,"text":47051},"deno.json Configuration in Deno.",{},"/deno/denojson-configuration",{"title":47051,"description":47228},"deno/denojson-configuration",[46733,573,8606,14296,46870],"yQrTpcBjFiOPuqzy2MBooY9mNztsrMvzK0SqJ_alrT0",{"id":47236,"title":14656,"body":47237,"date":402,"description":47328,"extension":404,"meta":47329,"navigation":61,"order":700,"path":47330,"seo":47331,"stem":47332,"subject":46733,"tags":47333,"__hash__":47334},"topics/deno/environment-variables.md",{"type":8,"value":47238,"toc":47325},[47239,47241,47323],[11,47240,14656],{"id":14661},[25,47242,47244],{"className":571,"code":47243,"language":573,"meta":30,"style":30},"// Get environment variable\nconst apiKey = Deno.env.get(\"API_KEY\");\n\n// Set environment variable\nDeno.env.set(\"MY_VAR\", \"value\");\n\n// Get all environment variables\nconst allEnv = Deno.env.toObject();\n",[20,47245,47246,47251,47271,47275,47280,47298,47302,47307],{"__ignoreMap":30},[34,47247,47248],{"class":36,"line":37},[34,47249,47250],{"class":40},"// Get environment variable\n",[34,47252,47253,47255,47257,47259,47262,47264,47266,47269],{"class":36,"line":44},[34,47254,14676],{"class":580},[34,47256,14679],{"class":50},[34,47258,683],{"class":580},[34,47260,47261],{"class":181}," Deno.env.",[34,47263,1573],{"class":47},[34,47265,1607],{"class":181},[34,47267,47268],{"class":54},"\"API_KEY\"",[34,47270,1586],{"class":181},[34,47272,47273],{"class":36,"line":58},[34,47274,62],{"emptyLinePlaceholder":61},[34,47276,47277],{"class":36,"line":65},[34,47278,47279],{"class":40},"// Set environment variable\n",[34,47281,47282,47285,47287,47289,47292,47294,47296],{"class":36,"line":71},[34,47283,47284],{"class":181},"Deno.env.",[34,47286,1648],{"class":47},[34,47288,1607],{"class":181},[34,47290,47291],{"class":54},"\"MY_VAR\"",[34,47293,1798],{"class":181},[34,47295,16847],{"class":54},[34,47297,1586],{"class":181},[34,47299,47300],{"class":36,"line":77},[34,47301,62],{"emptyLinePlaceholder":61},[34,47303,47304],{"class":36,"line":82},[34,47305,47306],{"class":40},"// Get all environment variables\n",[34,47308,47309,47311,47314,47316,47318,47321],{"class":36,"line":88},[34,47310,14676],{"class":580},[34,47312,47313],{"class":50}," allEnv",[34,47315,683],{"class":580},[34,47317,47261],{"class":181},[34,47319,47320],{"class":47},"toObject",[34,47322,851],{"class":181},[388,47324,15226],{},{"title":30,"searchDepth":44,"depth":44,"links":47326},[47327],{"id":14661,"depth":44,"text":14656},"Environment Variables in Deno.",{},"/deno/environment-variables",{"title":14656,"description":47328},"deno/environment-variables",[46733,573,8606,14296,46870],"yXXsMCDz1vnXhJZBm0sMC0EGFysNMsK4im6e_8yTQqc",{"id":47336,"title":14736,"body":47337,"date":402,"description":47456,"extension":404,"meta":47457,"navigation":61,"order":734,"path":47458,"seo":47459,"stem":47460,"subject":46733,"tags":47461,"__hash__":47462},"topics/deno/fetch-api.md",{"type":8,"value":47338,"toc":47453},[47339,47341,47451],[11,47340,14736],{"id":14741},[25,47342,47344],{"className":571,"code":47343,"language":573,"meta":30,"style":30},"// GET request\nconst response = await fetch(\"https://api.example.com/data\");\nconst data = await response.json();\n\n// POST request\nconst response = await fetch(\"https://api.example.com/data\", {\n  method: \"POST\",\n  headers: { \"Content-Type\": \"application/json\" },\n  body: JSON.stringify({ name: \"Deno\" }),\n});\n",[20,47345,47346,47350,47368,47384,47388,47392,47410,47418,47430,47447],{"__ignoreMap":30},[34,47347,47348],{"class":36,"line":37},[34,47349,14751],{"class":40},[34,47351,47352,47354,47356,47358,47360,47362,47364,47366],{"class":36,"line":44},[34,47353,14676],{"class":580},[34,47355,14758],{"class":50},[34,47357,683],{"class":580},[34,47359,14763],{"class":580},[34,47361,14766],{"class":47},[34,47363,1607],{"class":181},[34,47365,14771],{"class":54},[34,47367,1586],{"class":181},[34,47369,47370,47372,47374,47376,47378,47380,47382],{"class":36,"line":58},[34,47371,14676],{"class":580},[34,47373,14780],{"class":50},[34,47375,683],{"class":580},[34,47377,14763],{"class":580},[34,47379,14787],{"class":181},[34,47381,14790],{"class":47},[34,47383,851],{"class":181},[34,47385,47386],{"class":36,"line":65},[34,47387,62],{"emptyLinePlaceholder":61},[34,47389,47390],{"class":36,"line":71},[34,47391,14801],{"class":40},[34,47393,47394,47396,47398,47400,47402,47404,47406,47408],{"class":36,"line":77},[34,47395,14676],{"class":580},[34,47397,14758],{"class":50},[34,47399,683],{"class":580},[34,47401,14763],{"class":580},[34,47403,14766],{"class":47},[34,47405,1607],{"class":181},[34,47407,14771],{"class":54},[34,47409,14820],{"class":181},[34,47411,47412,47414,47416],{"class":36,"line":82},[34,47413,14825],{"class":181},[34,47415,14828],{"class":54},[34,47417,624],{"class":181},[34,47419,47420,47422,47424,47426,47428],{"class":36,"line":88},[34,47421,14835],{"class":181},[34,47423,14838],{"class":54},[34,47425,182],{"class":181},[34,47427,14843],{"class":54},[34,47429,14846],{"class":181},[34,47431,47432,47434,47436,47438,47440,47442,47445],{"class":36,"line":242},[34,47433,14851],{"class":181},[34,47435,14854],{"class":50},[34,47437,151],{"class":181},[34,47439,14859],{"class":47},[34,47441,14862],{"class":181},[34,47443,47444],{"class":54},"\"Deno\"",[34,47446,14868],{"class":181},[34,47448,47449],{"class":36,"line":250},[34,47450,14873],{"class":181},[388,47452,14941],{},{"title":30,"searchDepth":44,"depth":44,"links":47454},[47455],{"id":14741,"depth":44,"text":14736},"Fetch API in Deno.",{},"/deno/fetch-api",{"title":14736,"description":47456},"deno/fetch-api",[46733,573,8606,14296,46870],"hWUQwrYTO34kB8KAmrnQHGtRO7L3cN39dRpi3fAN2-M",{"id":47464,"title":14954,"body":47465,"date":402,"description":47749,"extension":404,"meta":47750,"navigation":61,"order":275,"path":47751,"seo":47752,"stem":47753,"subject":46733,"tags":47754,"__hash__":47755},"topics/deno/file-system.md",{"type":8,"value":47466,"toc":47746},[47467,47469,47744],[11,47468,14954],{"id":14959},[25,47470,47472],{"className":571,"code":47471,"language":573,"meta":30,"style":30},"// Read file\nconst text = await Deno.readTextFile(\"file.txt\");\nconst bytes = await Deno.readFile(\"file.bin\");\n\n// Write file\nawait Deno.writeTextFile(\"file.txt\", \"Hello\");\nawait Deno.writeFile(\"file.bin\", new Uint8Array([1, 2, 3]));\n\n// Check if file exists\ntry {\n  await Deno.stat(\"file.txt\");\n  console.log(\"File exists\");\n} catch {\n  console.log(\"File does not exist\");\n}\n\n// List directory\nfor await (const entry of Deno.readDir(\"./\")) {\n  console.log(entry.name, entry.isFile);\n}\n\n// Remove file/directory\nawait Deno.remove(\"file.txt\");\nawait Deno.remove(\"dir\", { recursive: true });\n",[20,47473,47474,47478,47500,47521,47525,47529,47548,47582,47586,47590,47596,47612,47625,47633,47646,47650,47654,47659,47687,47696,47700,47704,47709,47724],{"__ignoreMap":30},[34,47475,47476],{"class":36,"line":37},[34,47477,14969],{"class":40},[34,47479,47480,47482,47484,47486,47488,47491,47494,47496,47498],{"class":36,"line":44},[34,47481,14676],{"class":580},[34,47483,9006],{"class":50},[34,47485,683],{"class":580},[34,47487,14763],{"class":580},[34,47489,47490],{"class":181}," Deno.",[34,47492,47493],{"class":47},"readTextFile",[34,47495,1607],{"class":181},[34,47497,14990],{"class":54},[34,47499,1586],{"class":181},[34,47501,47502,47504,47506,47508,47510,47512,47515,47517,47519],{"class":36,"line":58},[34,47503,14676],{"class":580},[34,47505,15028],{"class":50},[34,47507,683],{"class":580},[34,47509,14763],{"class":580},[34,47511,47490],{"class":181},[34,47513,47514],{"class":47},"readFile",[34,47516,1607],{"class":181},[34,47518,15041],{"class":54},[34,47520,1586],{"class":181},[34,47522,47523],{"class":36,"line":65},[34,47524,62],{"emptyLinePlaceholder":61},[34,47526,47527],{"class":36,"line":71},[34,47528,15057],{"class":40},[34,47530,47531,47533,47535,47538,47540,47542,47544,47546],{"class":36,"line":77},[34,47532,15062],{"class":580},[34,47534,47490],{"class":181},[34,47536,47537],{"class":47},"writeTextFile",[34,47539,1607],{"class":181},[34,47541,14990],{"class":54},[34,47543,1798],{"class":181},[34,47545,15564],{"class":54},[34,47547,1586],{"class":181},[34,47549,47550,47552,47554,47557,47559,47561,47563,47565,47567,47569,47571,47573,47575,47577,47579],{"class":36,"line":82},[34,47551,15062],{"class":580},[34,47553,47490],{"class":181},[34,47555,47556],{"class":47},"writeFile",[34,47558,1607],{"class":181},[34,47560,15041],{"class":54},[34,47562,1798],{"class":181},[34,47564,3143],{"class":580},[34,47566,15348],{"class":47},[34,47568,3593],{"class":181},[34,47570,8318],{"class":50},[34,47572,1798],{"class":181},[34,47574,8324],{"class":50},[34,47576,1798],{"class":181},[34,47578,3162],{"class":50},[34,47580,47581],{"class":181},"]));\n",[34,47583,47584],{"class":36,"line":88},[34,47585,62],{"emptyLinePlaceholder":61},[34,47587,47588],{"class":36,"line":242},[34,47589,15114],{"class":40},[34,47591,47592,47594],{"class":36,"line":250},[34,47593,30813],{"class":580},[34,47595,661],{"class":181},[34,47597,47598,47601,47603,47606,47608,47610],{"class":36,"line":263},[34,47599,47600],{"class":580},"  await",[34,47602,47490],{"class":181},[34,47604,47605],{"class":47},"stat",[34,47607,1607],{"class":181},[34,47609,14990],{"class":54},[34,47611,1586],{"class":181},[34,47613,47614,47616,47618,47620,47623],{"class":36,"line":275},[34,47615,14929],{"class":181},[34,47617,2424],{"class":47},[34,47619,1607],{"class":181},[34,47621,47622],{"class":54},"\"File exists\"",[34,47624,1586],{"class":181},[34,47626,47627,47629,47631],{"class":36,"line":700},[34,47628,2276],{"class":181},[34,47630,30851],{"class":580},[34,47632,661],{"class":181},[34,47634,47635,47637,47639,47641,47644],{"class":36,"line":706},[34,47636,14929],{"class":181},[34,47638,2424],{"class":47},[34,47640,1607],{"class":181},[34,47642,47643],{"class":54},"\"File does not exist\"",[34,47645,1586],{"class":181},[34,47647,47648],{"class":36,"line":715},[34,47649,693],{"class":181},[34,47651,47652],{"class":36,"line":725},[34,47653,62],{"emptyLinePlaceholder":61},[34,47655,47656],{"class":36,"line":734},[34,47657,47658],{"class":40},"// List directory\n",[34,47660,47661,47663,47665,47667,47669,47672,47674,47676,47679,47681,47684],{"class":36,"line":742},[34,47662,10246],{"class":580},[34,47664,14763],{"class":580},[34,47666,3204],{"class":181},[34,47668,14676],{"class":580},[34,47670,47671],{"class":50}," entry",[34,47673,14917],{"class":580},[34,47675,47490],{"class":181},[34,47677,47678],{"class":47},"readDir",[34,47680,1607],{"class":181},[34,47682,47683],{"class":54},"\"./\"",[34,47685,47686],{"class":181},")) {\n",[34,47688,47689,47691,47693],{"class":36,"line":748},[34,47690,14929],{"class":181},[34,47692,2424],{"class":47},[34,47694,47695],{"class":181},"(entry.name, entry.isFile);\n",[34,47697,47698],{"class":36,"line":754},[34,47699,693],{"class":181},[34,47701,47702],{"class":36,"line":759},[34,47703,62],{"emptyLinePlaceholder":61},[34,47705,47706],{"class":36,"line":771},[34,47707,47708],{"class":40},"// Remove file/directory\n",[34,47710,47711,47713,47715,47718,47720,47722],{"class":36,"line":794},[34,47712,15062],{"class":580},[34,47714,47490],{"class":181},[34,47716,47717],{"class":47},"remove",[34,47719,1607],{"class":181},[34,47721,14990],{"class":54},[34,47723,1586],{"class":181},[34,47725,47726,47728,47730,47732,47734,47737,47740,47742],{"class":36,"line":824},[34,47727,15062],{"class":580},[34,47729,47490],{"class":181},[34,47731,47717],{"class":47},[34,47733,1607],{"class":181},[34,47735,47736],{"class":54},"\"dir\"",[34,47738,47739],{"class":181},", { recursive: ",[34,47741,632],{"class":50},[34,47743,15567],{"class":181},[388,47745,15226],{},{"title":30,"searchDepth":44,"depth":44,"links":47747},[47748],{"id":14959,"depth":44,"text":14954},"File System in Deno.",{},"/deno/file-system",{"title":14954,"description":47749},"deno/file-system",[46733,573,8606,14296,46870],"L_nL9QA-vrexc97Yahmnc-zb-OL7ShH0PCbdfXqPvV0",{"id":47757,"title":15408,"body":47758,"date":402,"description":47921,"extension":404,"meta":47922,"navigation":61,"order":263,"path":47923,"seo":47924,"stem":47925,"subject":46733,"tags":47926,"__hash__":47927},"topics/deno/http-server.md",{"type":8,"value":47759,"toc":47918},[47760,47762,47916],[11,47761,15408],{"id":15413},[25,47763,47765],{"className":571,"code":47764,"language":573,"meta":30,"style":30},"// Using Deno.serve (recommended)\nDeno.serve({ port: 8000 }, (req) => {\n  return new Response(\"Hello, World!\");\n});\n\n// With routing\nDeno.serve({ port: 8000 }, (req) => {\n  const url = new URL(req.url);\n  \n  if (url.pathname === \"/api\") {\n    return Response.json({ message: \"Hello\" });\n  }\n  \n  return new Response(\"Not Found\", { status: 404 });\n});\n",[20,47766,47767,47772,47796,47810,47814,47818,47822,47842,47856,47860,47872,47886,47890,47894,47912],{"__ignoreMap":30},[34,47768,47769],{"class":36,"line":37},[34,47770,47771],{"class":40},"// Using Deno.serve (recommended)\n",[34,47773,47774,47777,47779,47782,47785,47788,47790,47792,47794],{"class":36,"line":44},[34,47775,47776],{"class":181},"Deno.",[34,47778,15430],{"class":47},[34,47780,47781],{"class":181},"({ port: ",[34,47783,47784],{"class":50},"8000",[34,47786,47787],{"class":181}," }, (",[34,47789,15452],{"class":675},[34,47791,4817],{"class":181},[34,47793,3361],{"class":580},[34,47795,661],{"class":181},[34,47797,47798,47800,47802,47804,47806,47808],{"class":36,"line":58},[34,47799,8155],{"class":580},[34,47801,809],{"class":580},[34,47803,15463],{"class":47},[34,47805,1607],{"class":181},[34,47807,15076],{"class":54},[34,47809,1586],{"class":181},[34,47811,47812],{"class":36,"line":65},[34,47813,14873],{"class":181},[34,47815,47816],{"class":36,"line":71},[34,47817,62],{"emptyLinePlaceholder":61},[34,47819,47820],{"class":36,"line":77},[34,47821,15486],{"class":40},[34,47823,47824,47826,47828,47830,47832,47834,47836,47838,47840],{"class":36,"line":82},[34,47825,47776],{"class":181},[34,47827,15430],{"class":47},[34,47829,47781],{"class":181},[34,47831,47784],{"class":50},[34,47833,47787],{"class":181},[34,47835,15452],{"class":675},[34,47837,4817],{"class":181},[34,47839,3361],{"class":580},[34,47841,661],{"class":181},[34,47843,47844,47846,47848,47850,47852,47854],{"class":36,"line":88},[34,47845,17415],{"class":580},[34,47847,15519],{"class":50},[34,47849,683],{"class":580},[34,47851,809],{"class":580},[34,47853,15526],{"class":47},[34,47855,15529],{"class":181},[34,47857,47858],{"class":36,"line":242},[34,47859,827],{"class":181},[34,47861,47862,47864,47866,47868,47870],{"class":36,"line":250},[34,47863,8084],{"class":580},[34,47865,15540],{"class":181},[34,47867,15543],{"class":580},[34,47869,15546],{"class":54},[34,47871,2416],{"class":181},[34,47873,47874,47876,47878,47880,47882,47884],{"class":36,"line":263},[34,47875,1564],{"class":580},[34,47877,15556],{"class":181},[34,47879,14790],{"class":47},[34,47881,15561],{"class":181},[34,47883,15564],{"class":54},[34,47885,15567],{"class":181},[34,47887,47888],{"class":36,"line":275},[34,47889,857],{"class":181},[34,47891,47892],{"class":36,"line":700},[34,47893,827],{"class":181},[34,47895,47896,47898,47900,47902,47904,47906,47908,47910],{"class":36,"line":706},[34,47897,8155],{"class":580},[34,47899,809],{"class":580},[34,47901,15463],{"class":47},[34,47903,1607],{"class":181},[34,47905,15624],{"class":54},[34,47907,15627],{"class":181},[34,47909,15630],{"class":50},[34,47911,15567],{"class":181},[34,47913,47914],{"class":36,"line":715},[34,47915,14873],{"class":181},[388,47917,15773],{},{"title":30,"searchDepth":44,"depth":44,"links":47919},[47920],{"id":15413,"depth":44,"text":15408},"HTTP Server in Deno.",{},"/deno/http-server",{"title":15408,"description":47921},"deno/http-server",[46733,573,8606,14296,46870],"C8veon-TIxOXNU6C38f8lbFZXhciEg8YMrYzhE4U-fk",{"id":47929,"title":47930,"body":47931,"date":402,"description":48058,"extension":404,"meta":48059,"navigation":61,"order":250,"path":48060,"seo":48061,"stem":48062,"subject":46733,"tags":48063,"__hash__":48064},"topics/deno/importing-modules.md","Importing Modules",{"type":8,"value":47932,"toc":48055},[47933,47936,48052],[11,47934,47930],{"id":47935},"importing-modules",[25,47937,47939],{"className":571,"code":47938,"language":573,"meta":30,"style":30},"// Import from URL\nimport { serve } from \"https://deno.land/std/http/server.ts\";\n\n// Import from npm\nimport express from \"npm:express\";\n\n// Import from deno.land/x\nimport { oakCors } from \"https://deno.land/x/cors/mod.ts\";\n\n// Import from JSR (recommended)\nimport { parseArgs } from \"jsr:@std/cli\";\n\n// Import map (deno.json)\nimport { fs } from \"@std/fs\";\n",[20,47940,47941,47946,47960,47964,47969,47983,47987,47992,48006,48010,48015,48029,48033,48038],{"__ignoreMap":30},[34,47942,47943],{"class":36,"line":37},[34,47944,47945],{"class":40},"// Import from URL\n",[34,47947,47948,47950,47953,47955,47958],{"class":36,"line":44},[34,47949,581],{"class":580},[34,47951,47952],{"class":181}," { serve } ",[34,47954,587],{"class":580},[34,47956,47957],{"class":54}," \"https://deno.land/std/http/server.ts\"",[34,47959,593],{"class":181},[34,47961,47962],{"class":36,"line":58},[34,47963,62],{"emptyLinePlaceholder":61},[34,47965,47966],{"class":36,"line":65},[34,47967,47968],{"class":40},"// Import from npm\n",[34,47970,47971,47973,47976,47978,47981],{"class":36,"line":71},[34,47972,581],{"class":580},[34,47974,47975],{"class":181}," express ",[34,47977,587],{"class":580},[34,47979,47980],{"class":54}," \"npm:express\"",[34,47982,593],{"class":181},[34,47984,47985],{"class":36,"line":77},[34,47986,62],{"emptyLinePlaceholder":61},[34,47988,47989],{"class":36,"line":82},[34,47990,47991],{"class":40},"// Import from deno.land/x\n",[34,47993,47994,47996,47999,48001,48004],{"class":36,"line":88},[34,47995,581],{"class":580},[34,47997,47998],{"class":181}," { oakCors } ",[34,48000,587],{"class":580},[34,48002,48003],{"class":54}," \"https://deno.land/x/cors/mod.ts\"",[34,48005,593],{"class":181},[34,48007,48008],{"class":36,"line":242},[34,48009,62],{"emptyLinePlaceholder":61},[34,48011,48012],{"class":36,"line":250},[34,48013,48014],{"class":40},"// Import from JSR (recommended)\n",[34,48016,48017,48019,48022,48024,48027],{"class":36,"line":263},[34,48018,581],{"class":580},[34,48020,48021],{"class":181}," { parseArgs } ",[34,48023,587],{"class":580},[34,48025,48026],{"class":54}," \"jsr:@std/cli\"",[34,48028,593],{"class":181},[34,48030,48031],{"class":36,"line":275},[34,48032,62],{"emptyLinePlaceholder":61},[34,48034,48035],{"class":36,"line":700},[34,48036,48037],{"class":40},"// Import map (deno.json)\n",[34,48039,48040,48042,48045,48047,48050],{"class":36,"line":706},[34,48041,581],{"class":580},[34,48043,48044],{"class":181}," { fs } ",[34,48046,587],{"class":580},[34,48048,48049],{"class":54}," \"@std/fs\"",[34,48051,593],{"class":181},[388,48053,48054],{},"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 .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":30,"searchDepth":44,"depth":44,"links":48056},[48057],{"id":47935,"depth":44,"text":47930},"Importing Modules in Deno.",{},"/deno/importing-modules",{"title":47930,"description":48058},"deno/importing-modules",[46733,573,8606,14296,46870],"wVXAo6MU95iilDUsWIeQYzfTnsxKci9BNV1fXIk5F2A",{"id":48066,"title":97,"body":48067,"date":402,"description":48138,"extension":404,"meta":48139,"navigation":61,"order":44,"path":48140,"seo":48141,"stem":48142,"subject":46733,"tags":48143,"__hash__":48144},"topics/deno/installation.md",{"type":8,"value":48068,"toc":48135},[48069,48071,48133],[11,48070,97],{"id":96},[25,48072,48074],{"className":27,"code":48073,"language":29,"meta":30,"style":30},"# macOS/Linux\ncurl -fsSL https://deno.land/install.sh | sh\n\n# Homebrew\nbrew install deno\n\n# Windows (PowerShell)\nirm https://deno.land/install.ps1 | iex\n",[20,48075,48076,48080,48094,48098,48102,48111,48115,48120],{"__ignoreMap":30},[34,48077,48078],{"class":36,"line":37},[34,48079,15799],{"class":40},[34,48081,48082,48084,48086,48089,48091],{"class":36,"line":44},[34,48083,8648],{"class":47},[34,48085,15806],{"class":50},[34,48087,48088],{"class":54}," https://deno.land/install.sh",[34,48090,7197],{"class":580},[34,48092,48093],{"class":47}," sh\n",[34,48095,48096],{"class":36,"line":58},[34,48097,62],{"emptyLinePlaceholder":61},[34,48099,48100],{"class":36,"line":65},[34,48101,15822],{"class":40},[34,48103,48104,48106,48108],{"class":36,"line":71},[34,48105,115],{"class":47},[34,48107,118],{"class":54},[34,48109,48110],{"class":54}," deno\n",[34,48112,48113],{"class":36,"line":77},[34,48114,62],{"emptyLinePlaceholder":61},[34,48116,48117],{"class":36,"line":82},[34,48118,48119],{"class":40},"# Windows (PowerShell)\n",[34,48121,48122,48125,48128,48130],{"class":36,"line":88},[34,48123,48124],{"class":47},"irm",[34,48126,48127],{"class":54}," https://deno.land/install.ps1",[34,48129,7197],{"class":580},[34,48131,48132],{"class":47}," iex\n",[388,48134,15873],{},{"title":30,"searchDepth":44,"depth":44,"links":48136},[48137],{"id":96,"depth":44,"text":97},"Installation in Deno.",{},"/deno/installation",{"title":97,"description":48138},"deno/installation",[46733,573,8606,14296,46870],"Iy0wugJHPMMpf8RGv3CCfHgV1hs_1aVO9lV5N41phwM",{"id":48146,"title":46890,"body":48147,"date":2633,"description":48234,"extension":404,"meta":48235,"navigation":61,"order":37,"path":48236,"seo":48237,"stem":48238,"subject":46733,"tags":48239,"__hash__":48240},"topics/deno/overview.md",{"type":8,"value":48148,"toc":48232},[48149],[309,48150,48151,48155,48159,48165,48171,48176,48182,48187,48191,48195,48199,48203,48207,48212,48216,48222,48226],{},[312,48152,48153],{},[145,48154,97],{"href":48140},[312,48156,48157],{},[145,48158,46874],{"href":47044},[312,48160,48161],{},[145,48162,48164],{"href":48163},"/deno/updating-deno","Updating Deno",[312,48166,48167],{},[145,48168,48170],{"href":48169},"/deno/version-management-dvm","Version Management (DVM)",[312,48172,48173],{},[145,48174,15995],{"href":48175},"/deno/running-scripts",[312,48177,48178],{},[145,48179,48181],{"href":48180},"/deno/permissions","Permissions",[312,48183,48184],{},[145,48185,16212],{"href":48186},"/deno/package-management",[312,48188,48189],{},[145,48190,46713],{"href":46866},[312,48192,48193],{},[145,48194,47930],{"href":48060},[312,48196,48197],{},[145,48198,15408],{"href":47923},[312,48200,48201],{},[145,48202,14954],{"href":47751},[312,48204,48205],{},[145,48206,14656],{"href":47330},[312,48208,48209],{},[145,48210,16095],{"href":48211},"/deno/testing",[312,48213,48214],{},[145,48215,47051],{"href":47230},[312,48217,48218],{},[145,48219,48221],{"href":48220},"/deno/tasks","Tasks",[312,48223,48224],{},[145,48225,14736],{"href":47458},[312,48227,48228],{},[145,48229,48231],{"href":48230},"/deno/web-apis","Web APIs",{"title":30,"searchDepth":44,"depth":44,"links":48233},[],"Essential Deno commands, APIs, and patterns for modern TypeScript/JavaScript runtime.",{},"/deno/overview",{"title":46890,"description":48234},"deno/overview",[46733,573,8606,14296,46870],"jLtmGJ8ge_9EUW7B9H1vkjSZlwd2Cf8p6QRL2YVk98Y",{"id":48242,"title":16212,"body":48243,"date":402,"description":48325,"extension":404,"meta":48326,"navigation":61,"order":88,"path":48186,"seo":48327,"stem":48328,"subject":46733,"tags":48329,"__hash__":48330},"topics/deno/package-management.md",{"type":8,"value":48244,"toc":48322},[48245,48247,48320],[11,48246,16212],{"id":16217},[25,48248,48250],{"className":27,"code":48249,"language":29,"meta":30,"style":30},"# Add a package (deno.json)\ndeno add @std/fs\n\n# Install dependencies\ndeno install\n\n# Cache dependencies\ndeno cache deps.ts\n\n# Update dependencies\ndeno cache --reload deps.ts\n",[20,48251,48252,48257,48266,48270,48275,48281,48285,48290,48300,48304,48309],{"__ignoreMap":30},[34,48253,48254],{"class":36,"line":37},[34,48255,48256],{"class":40},"# Add a package (deno.json)\n",[34,48258,48259,48261,48263],{"class":36,"line":44},[34,48260,46733],{"class":47},[34,48262,7854],{"class":54},[34,48264,48265],{"class":54}," @std/fs\n",[34,48267,48268],{"class":36,"line":58},[34,48269,62],{"emptyLinePlaceholder":61},[34,48271,48272],{"class":36,"line":65},[34,48273,48274],{"class":40},"# Install dependencies\n",[34,48276,48277,48279],{"class":36,"line":71},[34,48278,46733],{"class":47},[34,48280,5951],{"class":54},[34,48282,48283],{"class":36,"line":77},[34,48284,62],{"emptyLinePlaceholder":61},[34,48286,48287],{"class":36,"line":82},[34,48288,48289],{"class":40},"# Cache dependencies\n",[34,48291,48292,48294,48297],{"class":36,"line":88},[34,48293,46733],{"class":47},[34,48295,48296],{"class":54}," cache",[34,48298,48299],{"class":54}," deps.ts\n",[34,48301,48302],{"class":36,"line":242},[34,48303,62],{"emptyLinePlaceholder":61},[34,48305,48306],{"class":36,"line":250},[34,48307,48308],{"class":40},"# Update dependencies\n",[34,48310,48311,48313,48315,48318],{"class":36,"line":263},[34,48312,46733],{"class":47},[34,48314,48296],{"class":54},[34,48316,48317],{"class":50}," --reload",[34,48319,48299],{"class":54},[388,48321,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":48323},[48324],{"id":16217,"depth":44,"text":16212},"Package Management in Deno.",{},{"title":16212,"description":48325},"deno/package-management",[46733,573,8606,14296,46870],"E2GNV3Dw9RPECA0VUI8piIjtgVQDGLq8cG65DGzOLV0",{"id":48332,"title":48181,"body":48333,"date":402,"description":48496,"extension":404,"meta":48497,"navigation":61,"order":82,"path":48180,"seo":48498,"stem":48499,"subject":46733,"tags":48500,"__hash__":48501},"topics/deno/permissions.md",{"type":8,"value":48334,"toc":48493},[48335,48338,48490],[11,48336,48181],{"id":48337},"permissions",[25,48339,48341],{"className":27,"code":48340,"language":29,"meta":30,"style":30},"# Network access\n--allow-net\n--allow-net=api.example.com\n\n# File system read\n--allow-read\n--allow-read=/path/to/dir\n\n# File system write\n--allow-write\n--allow-write=/path/to/dir\n\n# Environment variables\n--allow-env\n--allow-env=API_KEY,SECRET\n\n# Run subprocesses\n--allow-run\n--allow-run=git,npm\n\n# FFI (Foreign Function Interface)\n--allow-ffi\n\n# All permissions\n-A or --allow-all\n",[20,48342,48343,48348,48353,48363,48367,48372,48377,48387,48391,48396,48401,48410,48414,48418,48423,48433,48437,48442,48447,48457,48461,48466,48471,48475,48480],{"__ignoreMap":30},[34,48344,48345],{"class":36,"line":37},[34,48346,48347],{"class":40},"# Network access\n",[34,48349,48350],{"class":36,"line":44},[34,48351,48352],{"class":47},"--allow-net\n",[34,48354,48355,48358,48360],{"class":36,"line":58},[34,48356,48357],{"class":181},"--allow-net",[34,48359,1301],{"class":580},[34,48361,48362],{"class":54},"api.example.com\n",[34,48364,48365],{"class":36,"line":65},[34,48366,62],{"emptyLinePlaceholder":61},[34,48368,48369],{"class":36,"line":71},[34,48370,48371],{"class":40},"# File system read\n",[34,48373,48374],{"class":36,"line":77},[34,48375,48376],{"class":47},"--allow-read\n",[34,48378,48379,48382,48384],{"class":36,"line":82},[34,48380,48381],{"class":181},"--allow-read",[34,48383,1301],{"class":580},[34,48385,48386],{"class":54},"/path/to/dir\n",[34,48388,48389],{"class":36,"line":88},[34,48390,62],{"emptyLinePlaceholder":61},[34,48392,48393],{"class":36,"line":242},[34,48394,48395],{"class":40},"# File system write\n",[34,48397,48398],{"class":36,"line":250},[34,48399,48400],{"class":47},"--allow-write\n",[34,48402,48403,48406,48408],{"class":36,"line":263},[34,48404,48405],{"class":181},"--allow-write",[34,48407,1301],{"class":580},[34,48409,48386],{"class":54},[34,48411,48412],{"class":36,"line":275},[34,48413,62],{"emptyLinePlaceholder":61},[34,48415,48416],{"class":36,"line":700},[34,48417,13420],{"class":40},[34,48419,48420],{"class":36,"line":706},[34,48421,48422],{"class":47},"--allow-env\n",[34,48424,48425,48428,48430],{"class":36,"line":715},[34,48426,48427],{"class":181},"--allow-env",[34,48429,1301],{"class":580},[34,48431,48432],{"class":54},"API_KEY,SECRET\n",[34,48434,48435],{"class":36,"line":725},[34,48436,62],{"emptyLinePlaceholder":61},[34,48438,48439],{"class":36,"line":734},[34,48440,48441],{"class":40},"# Run subprocesses\n",[34,48443,48444],{"class":36,"line":742},[34,48445,48446],{"class":47},"--allow-run\n",[34,48448,48449,48452,48454],{"class":36,"line":748},[34,48450,48451],{"class":181},"--allow-run",[34,48453,1301],{"class":580},[34,48455,48456],{"class":54},"git,npm\n",[34,48458,48459],{"class":36,"line":754},[34,48460,62],{"emptyLinePlaceholder":61},[34,48462,48463],{"class":36,"line":759},[34,48464,48465],{"class":40},"# FFI (Foreign Function Interface)\n",[34,48467,48468],{"class":36,"line":771},[34,48469,48470],{"class":47},"--allow-ffi\n",[34,48472,48473],{"class":36,"line":794},[34,48474,62],{"emptyLinePlaceholder":61},[34,48476,48477],{"class":36,"line":824},[34,48478,48479],{"class":40},"# All permissions\n",[34,48481,48482,48484,48487],{"class":36,"line":830},[34,48483,44478],{"class":47},[34,48485,48486],{"class":54}," or",[34,48488,48489],{"class":50}," --allow-all\n",[388,48491,48492],{},"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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .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":30,"searchDepth":44,"depth":44,"links":48494},[48495],{"id":48337,"depth":44,"text":48181},"Permissions in Deno.",{},{"title":48181,"description":48496},"deno/permissions",[46733,573,8606,14296,46870],"r5bkzttfMgUUs5Dhk3TPJqr3ivdTuJd4srZvEvSTjdk",{"id":48503,"title":15995,"body":48504,"date":402,"description":48608,"extension":404,"meta":48609,"navigation":61,"order":77,"path":48175,"seo":48610,"stem":48611,"subject":46733,"tags":48612,"__hash__":48613},"topics/deno/running-scripts.md",{"type":8,"value":48505,"toc":48605},[48506,48508,48603],[11,48507,15995],{"id":15994},[25,48509,48511],{"className":27,"code":48510,"language":29,"meta":30,"style":30},"# Run a TypeScript/JavaScript file\ndeno run script.ts\n\n# Run with permissions\ndeno run --allow-net --allow-read script.ts\n\n# Run with all permissions\ndeno run -A script.ts\n\n# Run remote script\ndeno run https://deno.land/std/examples/welcome.ts\n\n# Watch mode\ndeno run --watch script.ts\n",[20,48512,48513,48517,48525,48529,48534,48548,48552,48557,48567,48571,48576,48585,48589,48593],{"__ignoreMap":30},[34,48514,48515],{"class":36,"line":37},[34,48516,16535],{"class":40},[34,48518,48519,48521,48523],{"class":36,"line":44},[34,48520,46733],{"class":47},[34,48522,16017],{"class":54},[34,48524,16544],{"class":54},[34,48526,48527],{"class":36,"line":58},[34,48528,62],{"emptyLinePlaceholder":61},[34,48530,48531],{"class":36,"line":65},[34,48532,48533],{"class":40},"# Run with permissions\n",[34,48535,48536,48538,48540,48543,48546],{"class":36,"line":71},[34,48537,46733],{"class":47},[34,48539,16017],{"class":54},[34,48541,48542],{"class":50}," --allow-net",[34,48544,48545],{"class":50}," --allow-read",[34,48547,16544],{"class":54},[34,48549,48550],{"class":36,"line":77},[34,48551,62],{"emptyLinePlaceholder":61},[34,48553,48554],{"class":36,"line":82},[34,48555,48556],{"class":40},"# Run with all permissions\n",[34,48558,48559,48561,48563,48565],{"class":36,"line":88},[34,48560,46733],{"class":47},[34,48562,16017],{"class":54},[34,48564,10202],{"class":50},[34,48566,16544],{"class":54},[34,48568,48569],{"class":36,"line":242},[34,48570,62],{"emptyLinePlaceholder":61},[34,48572,48573],{"class":36,"line":250},[34,48574,48575],{"class":40},"# Run remote script\n",[34,48577,48578,48580,48582],{"class":36,"line":263},[34,48579,46733],{"class":47},[34,48581,16017],{"class":54},[34,48583,48584],{"class":54}," https://deno.land/std/examples/welcome.ts\n",[34,48586,48587],{"class":36,"line":275},[34,48588,62],{"emptyLinePlaceholder":61},[34,48590,48591],{"class":36,"line":700},[34,48592,16568],{"class":40},[34,48594,48595,48597,48599,48601],{"class":36,"line":706},[34,48596,46733],{"class":47},[34,48598,16017],{"class":54},[34,48600,16575],{"class":50},[34,48602,16544],{"class":54},[388,48604,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":48606},[48607],{"id":15994,"depth":44,"text":15995},"Running Scripts in Deno.",{},{"title":15995,"description":48608},"deno/running-scripts",[46733,573,8606,14296,46870],"bg93X8XTPfvrCWyjWhl9C_AwbNM_8dbp1PKmTIrx2bA",{"id":48615,"title":48221,"body":48616,"date":402,"description":48678,"extension":404,"meta":48679,"navigation":61,"order":725,"path":48220,"seo":48680,"stem":48681,"subject":46733,"tags":48682,"__hash__":48683},"topics/deno/tasks.md",{"type":8,"value":48617,"toc":48675},[48618,48621,48673],[11,48619,48221],{"id":48620},"tasks",[25,48622,48624],{"className":27,"code":48623,"language":29,"meta":30,"style":30},"# Run a task defined in deno.json\ndeno task dev\ndeno task start\ndeno task test\n\n# List available tasks\ndeno task\n",[20,48625,48626,48631,48640,48649,48657,48661,48666],{"__ignoreMap":30},[34,48627,48628],{"class":36,"line":37},[34,48629,48630],{"class":40},"# Run a task defined in deno.json\n",[34,48632,48633,48635,48638],{"class":36,"line":44},[34,48634,46733],{"class":47},[34,48636,48637],{"class":54}," task",[34,48639,16652],{"class":54},[34,48641,48642,48644,48646],{"class":36,"line":58},[34,48643,46733],{"class":47},[34,48645,48637],{"class":54},[34,48647,48648],{"class":54}," start\n",[34,48650,48651,48653,48655],{"class":36,"line":65},[34,48652,46733],{"class":47},[34,48654,48637],{"class":54},[34,48656,16110],{"class":54},[34,48658,48659],{"class":36,"line":71},[34,48660,62],{"emptyLinePlaceholder":61},[34,48662,48663],{"class":36,"line":77},[34,48664,48665],{"class":40},"# List available tasks\n",[34,48667,48668,48670],{"class":36,"line":82},[34,48669,46733],{"class":47},[34,48671,48672],{"class":54}," task\n",[388,48674,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":48676},[48677],{"id":48620,"depth":44,"text":48221},"Tasks in Deno.",{},{"title":48221,"description":48678},"deno/tasks",[46733,573,8606,14296,46870],"WbYTHuyVbD8haxF3mfXLecaaXXEEkAfhR4RrpM0Hsl8",{"id":48685,"title":16095,"body":48686,"date":402,"description":48942,"extension":404,"meta":48943,"navigation":61,"order":706,"path":48211,"seo":48944,"stem":48945,"subject":46733,"tags":48946,"__hash__":48947},"topics/deno/testing.md",{"type":8,"value":48687,"toc":48939},[48688,48690,48936],[11,48689,16095],{"id":16094},[25,48691,48693],{"className":571,"code":48692,"language":573,"meta":30,"style":30},"// Basic test\nDeno.test(\"example test\", () => {\n  const result = 1 + 1;\n  if (result !== 2) throw new Error(\"Math is broken\");\n});\n\n// Async test\nDeno.test(\"async test\", async () => {\n  const response = await fetch(\"https://api.example.com\");\n  if (!response.ok) throw new Error(\"Request failed\");\n});\n\n// Using assertions\nimport { assertEquals, assertThrows } from \"jsr:@std/assert\";\n\nDeno.test(\"with assertions\", () => {\n  assertEquals(1 + 1, 2);\n  assertThrows(() => {\n    throw new Error(\"test\");\n  });\n});\n",[20,48694,48695,48700,48717,48733,48760,48764,48768,48772,48792,48810,48834,48838,48842,48847,48861,48865,48882,48901,48912,48928,48932],{"__ignoreMap":30},[34,48696,48697],{"class":36,"line":37},[34,48698,48699],{"class":40},"// Basic test\n",[34,48701,48702,48704,48706,48708,48711,48713,48715],{"class":36,"line":44},[34,48703,47776],{"class":181},[34,48705,14618],{"class":47},[34,48707,1607],{"class":181},[34,48709,48710],{"class":54},"\"example test\"",[34,48712,17258],{"class":181},[34,48714,3361],{"class":580},[34,48716,661],{"class":181},[34,48718,48719,48721,48723,48725,48727,48729,48731],{"class":36,"line":58},[34,48720,17415],{"class":580},[34,48722,11103],{"class":50},[34,48724,683],{"class":580},[34,48726,3567],{"class":50},[34,48728,11537],{"class":580},[34,48730,3567],{"class":50},[34,48732,593],{"class":181},[34,48734,48735,48737,48739,48742,48744,48746,48748,48750,48753,48755,48758],{"class":36,"line":65},[34,48736,8084],{"class":580},[34,48738,20719],{"class":181},[34,48740,48741],{"class":580},"!==",[34,48743,4292],{"class":50},[34,48745,4817],{"class":181},[34,48747,35434],{"class":580},[34,48749,809],{"class":580},[34,48751,48752],{"class":47}," Error",[34,48754,1607],{"class":181},[34,48756,48757],{"class":54},"\"Math is broken\"",[34,48759,1586],{"class":181},[34,48761,48762],{"class":36,"line":71},[34,48763,14873],{"class":181},[34,48765,48766],{"class":36,"line":77},[34,48767,62],{"emptyLinePlaceholder":61},[34,48769,48770],{"class":36,"line":82},[34,48771,17389],{"class":40},[34,48773,48774,48776,48778,48780,48782,48784,48786,48788,48790],{"class":36,"line":88},[34,48775,47776],{"class":181},[34,48777,14618],{"class":47},[34,48779,1607],{"class":181},[34,48781,17398],{"class":54},[34,48783,1798],{"class":181},[34,48785,17403],{"class":580},[34,48787,17406],{"class":181},[34,48789,3361],{"class":580},[34,48791,661],{"class":181},[34,48793,48794,48796,48798,48800,48802,48804,48806,48808],{"class":36,"line":242},[34,48795,17415],{"class":580},[34,48797,14758],{"class":50},[34,48799,683],{"class":580},[34,48801,14763],{"class":580},[34,48803,14766],{"class":47},[34,48805,1607],{"class":181},[34,48807,17428],{"class":54},[34,48809,1586],{"class":181},[34,48811,48812,48814,48816,48818,48821,48823,48825,48827,48829,48832],{"class":36,"line":250},[34,48813,8084],{"class":580},[34,48815,3204],{"class":181},[34,48817,10307],{"class":580},[34,48819,48820],{"class":181},"response.ok) ",[34,48822,35434],{"class":580},[34,48824,809],{"class":580},[34,48826,48752],{"class":47},[34,48828,1607],{"class":181},[34,48830,48831],{"class":54},"\"Request failed\"",[34,48833,1586],{"class":181},[34,48835,48836],{"class":36,"line":263},[34,48837,14873],{"class":181},[34,48839,48840],{"class":36,"line":275},[34,48841,62],{"emptyLinePlaceholder":61},[34,48843,48844],{"class":36,"line":700},[34,48845,48846],{"class":40},"// Using assertions\n",[34,48848,48849,48851,48854,48856,48859],{"class":36,"line":706},[34,48850,581],{"class":580},[34,48852,48853],{"class":181}," { assertEquals, assertThrows } ",[34,48855,587],{"class":580},[34,48857,48858],{"class":54}," \"jsr:@std/assert\"",[34,48860,593],{"class":181},[34,48862,48863],{"class":36,"line":715},[34,48864,62],{"emptyLinePlaceholder":61},[34,48866,48867,48869,48871,48873,48876,48878,48880],{"class":36,"line":725},[34,48868,47776],{"class":181},[34,48870,14618],{"class":47},[34,48872,1607],{"class":181},[34,48874,48875],{"class":54},"\"with assertions\"",[34,48877,17258],{"class":181},[34,48879,3361],{"class":580},[34,48881,661],{"class":181},[34,48883,48884,48887,48889,48891,48893,48895,48897,48899],{"class":36,"line":734},[34,48885,48886],{"class":47},"  assertEquals",[34,48888,1607],{"class":181},[34,48890,8318],{"class":50},[34,48892,11537],{"class":580},[34,48894,3567],{"class":50},[34,48896,1798],{"class":181},[34,48898,8324],{"class":50},[34,48900,1586],{"class":181},[34,48902,48903,48906,48908,48910],{"class":36,"line":742},[34,48904,48905],{"class":47},"  assertThrows",[34,48907,4275],{"class":181},[34,48909,3361],{"class":580},[34,48911,661],{"class":181},[34,48913,48914,48917,48919,48921,48923,48926],{"class":36,"line":748},[34,48915,48916],{"class":580},"    throw",[34,48918,809],{"class":580},[34,48920,48752],{"class":47},[34,48922,1607],{"class":181},[34,48924,48925],{"class":54},"\"test\"",[34,48927,1586],{"class":181},[34,48929,48930],{"class":36,"line":754},[34,48931,3186],{"class":181},[34,48933,48934],{"class":36,"line":759},[34,48935,14873],{"class":181},[388,48937,48938],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":48940},[48941],{"id":16094,"depth":44,"text":16095},"Testing in Deno.",{},{"title":16095,"description":48942},"deno/testing",[46733,573,8606,14296,46870],"5v5CLMdLsHiOPImNTlW9nke16QsAnRDCOhuSPLr4bSc",{"id":48949,"title":48164,"body":48950,"date":402,"description":49009,"extension":404,"meta":49010,"navigation":61,"order":65,"path":48163,"seo":49011,"stem":49012,"subject":46733,"tags":49013,"__hash__":49014},"topics/deno/updating-deno.md",{"type":8,"value":48951,"toc":49006},[48952,48955,49004],[11,48953,48164],{"id":48954},"updating-deno",[25,48956,48958],{"className":27,"code":48957,"language":29,"meta":30,"style":30},"# Update to latest version\ndeno upgrade\n\n# Update to specific version\ndeno upgrade --version 2.0.0\n\n# Check current version\ndeno --version\n",[20,48959,48960,48964,48970,48974,48978,48989,48993,48998],{"__ignoreMap":30},[34,48961,48962],{"class":36,"line":37},[34,48963,17693],{"class":40},[34,48965,48966,48968],{"class":36,"line":44},[34,48967,46733],{"class":47},[34,48969,6986],{"class":54},[34,48971,48972],{"class":36,"line":58},[34,48973,62],{"emptyLinePlaceholder":61},[34,48975,48976],{"class":36,"line":65},[34,48977,17708],{"class":40},[34,48979,48980,48982,48984,48986],{"class":36,"line":71},[34,48981,46733],{"class":47},[34,48983,5662],{"class":54},[34,48985,17717],{"class":50},[34,48987,48988],{"class":50}," 2.0.0\n",[34,48990,48991],{"class":36,"line":77},[34,48992,62],{"emptyLinePlaceholder":61},[34,48994,48995],{"class":36,"line":82},[34,48996,48997],{"class":40},"# Check current version\n",[34,48999,49000,49002],{"class":36,"line":88},[34,49001,46733],{"class":47},[34,49003,5013],{"class":50},[388,49005,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":49007},[49008],{"id":48954,"depth":44,"text":48164},"Updating Deno in Deno.",{},{"title":48164,"description":49009},"deno/updating-deno",[46733,573,8606,14296,46870],"aYvubZfGBVTBG_Iy65RZHQ2KGu9hWjJ4Xcytgfx2OYg",{"id":49016,"title":48170,"body":49017,"date":402,"description":49158,"extension":404,"meta":49159,"navigation":61,"order":71,"path":48169,"seo":49160,"stem":49161,"subject":46733,"tags":49162,"__hash__":49163},"topics/deno/version-management-dvm.md",{"type":8,"value":49018,"toc":49155},[49019,49022,49153],[11,49020,48170],{"id":49021},"version-management-dvm",[25,49023,49025],{"className":27,"code":49024,"language":29,"meta":30,"style":30},"# Install DVM (macOS/Linux)\ncurl -fsSL https://dvm.deno.dev | sh\n\n# Install a specific Deno version\ndvm install 2.0.0\n\n# List installed versions\ndvm list\n\n# List available versions\ndvm list --all\n\n# Switch to a specific version\ndvm use 2.0.0\n\n# Set default version\ndvm alias default 2.0.0\n\n# Uninstall a version\ndvm uninstall 1.45.0\n",[20,49026,49027,49032,49045,49049,49054,49063,49067,49072,49078,49082,49087,49096,49100,49105,49114,49118,49123,49134,49138,49143],{"__ignoreMap":30},[34,49028,49029],{"class":36,"line":37},[34,49030,49031],{"class":40},"# Install DVM (macOS/Linux)\n",[34,49033,49034,49036,49038,49041,49043],{"class":36,"line":44},[34,49035,8648],{"class":47},[34,49037,15806],{"class":50},[34,49039,49040],{"class":54}," https://dvm.deno.dev",[34,49042,7197],{"class":580},[34,49044,48093],{"class":47},[34,49046,49047],{"class":36,"line":58},[34,49048,62],{"emptyLinePlaceholder":61},[34,49050,49051],{"class":36,"line":65},[34,49052,49053],{"class":40},"# Install a specific Deno version\n",[34,49055,49056,49059,49061],{"class":36,"line":71},[34,49057,49058],{"class":47},"dvm",[34,49060,118],{"class":54},[34,49062,48988],{"class":50},[34,49064,49065],{"class":36,"line":77},[34,49066,62],{"emptyLinePlaceholder":61},[34,49068,49069],{"class":36,"line":82},[34,49070,49071],{"class":40},"# List installed versions\n",[34,49073,49074,49076],{"class":36,"line":88},[34,49075,49058],{"class":47},[34,49077,7536],{"class":54},[34,49079,49080],{"class":36,"line":242},[34,49081,62],{"emptyLinePlaceholder":61},[34,49083,49084],{"class":36,"line":250},[34,49085,49086],{"class":40},"# List available versions\n",[34,49088,49089,49091,49093],{"class":36,"line":263},[34,49090,49058],{"class":47},[34,49092,6345],{"class":54},[34,49094,49095],{"class":50}," --all\n",[34,49097,49098],{"class":36,"line":275},[34,49099,62],{"emptyLinePlaceholder":61},[34,49101,49102],{"class":36,"line":700},[34,49103,49104],{"class":40},"# Switch to a specific version\n",[34,49106,49107,49109,49112],{"class":36,"line":706},[34,49108,49058],{"class":47},[34,49110,49111],{"class":54}," use",[34,49113,48988],{"class":50},[34,49115,49116],{"class":36,"line":715},[34,49117,62],{"emptyLinePlaceholder":61},[34,49119,49120],{"class":36,"line":725},[34,49121,49122],{"class":40},"# Set default version\n",[34,49124,49125,49127,49130,49132],{"class":36,"line":734},[34,49126,49058],{"class":47},[34,49128,49129],{"class":54}," alias",[34,49131,7298],{"class":54},[34,49133,48988],{"class":50},[34,49135,49136],{"class":36,"line":742},[34,49137,62],{"emptyLinePlaceholder":61},[34,49139,49140],{"class":36,"line":748},[34,49141,49142],{"class":40},"# Uninstall a version\n",[34,49144,49145,49147,49150],{"class":36,"line":754},[34,49146,49058],{"class":47},[34,49148,49149],{"class":54}," uninstall",[34,49151,49152],{"class":50}," 1.45.0\n",[388,49154,15873],{},{"title":30,"searchDepth":44,"depth":44,"links":49156},[49157],{"id":49021,"depth":44,"text":48170},"Version Management (DVM) in Deno.",{},{"title":48170,"description":49158},"deno/version-management-dvm",[46733,573,8606,14296,46870],"XjSeEqNrXOn2bBVgQAj2Q-FbOXg0e1PyC0QGhWkL05c",{"id":49165,"title":48231,"body":49166,"date":402,"description":49370,"extension":404,"meta":49371,"navigation":61,"order":742,"path":48230,"seo":49372,"stem":49373,"subject":46733,"tags":49374,"__hash__":49375},"topics/deno/web-apis.md",{"type":8,"value":49167,"toc":49367},[49168,49171,49365],[11,49169,48231],{"id":49170},"web-apis",[25,49172,49174],{"className":571,"code":49173,"language":573,"meta":30,"style":30},"// URL API\nconst url = new URL(\"https://example.com/path?query=1\");\nconsole.log(url.pathname, url.searchParams.get(\"query\"));\n\n// TextEncoder/TextDecoder\nconst encoder = new TextEncoder();\nconst decoder = new TextDecoder();\nconst bytes = encoder.encode(\"Hello\");\nconst text = decoder.decode(bytes);\n\n// crypto\nconst uuid = crypto.randomUUID();\nconst hash = await crypto.subtle.digest(\n  \"SHA-256\",\n  new TextEncoder().encode(\"message\")\n);\n",[20,49175,49176,49181,49200,49218,49222,49227,49243,49259,49279,49295,49299,49304,49318,49336,49343,49361],{"__ignoreMap":30},[34,49177,49178],{"class":36,"line":37},[34,49179,49180],{"class":40},"// URL API\n",[34,49182,49183,49185,49187,49189,49191,49193,49195,49198],{"class":36,"line":44},[34,49184,14676],{"class":580},[34,49186,15519],{"class":50},[34,49188,683],{"class":580},[34,49190,809],{"class":580},[34,49192,15526],{"class":47},[34,49194,1607],{"class":181},[34,49196,49197],{"class":54},"\"https://example.com/path?query=1\"",[34,49199,1586],{"class":181},[34,49201,49202,49204,49206,49209,49211,49213,49216],{"class":36,"line":58},[34,49203,15183],{"class":181},[34,49205,2424],{"class":47},[34,49207,49208],{"class":181},"(url.pathname, url.searchParams.",[34,49210,1573],{"class":47},[34,49212,1607],{"class":181},[34,49214,49215],{"class":54},"\"query\"",[34,49217,15223],{"class":181},[34,49219,49220],{"class":36,"line":65},[34,49221,62],{"emptyLinePlaceholder":61},[34,49223,49224],{"class":36,"line":71},[34,49225,49226],{"class":40},"// TextEncoder/TextDecoder\n",[34,49228,49229,49231,49234,49236,49238,49241],{"class":36,"line":77},[34,49230,14676],{"class":580},[34,49232,49233],{"class":50}," encoder",[34,49235,683],{"class":580},[34,49237,809],{"class":580},[34,49239,49240],{"class":47}," TextEncoder",[34,49242,851],{"class":181},[34,49244,49245,49247,49250,49252,49254,49257],{"class":36,"line":82},[34,49246,14676],{"class":580},[34,49248,49249],{"class":50}," decoder",[34,49251,683],{"class":580},[34,49253,809],{"class":580},[34,49255,49256],{"class":47}," TextDecoder",[34,49258,851],{"class":181},[34,49260,49261,49263,49265,49267,49270,49273,49275,49277],{"class":36,"line":88},[34,49262,14676],{"class":580},[34,49264,15028],{"class":50},[34,49266,683],{"class":580},[34,49268,49269],{"class":181}," encoder.",[34,49271,49272],{"class":47},"encode",[34,49274,1607],{"class":181},[34,49276,15564],{"class":54},[34,49278,1586],{"class":181},[34,49280,49281,49283,49285,49287,49290,49293],{"class":36,"line":242},[34,49282,14676],{"class":580},[34,49284,9006],{"class":50},[34,49286,683],{"class":580},[34,49288,49289],{"class":181}," decoder.",[34,49291,49292],{"class":47},"decode",[34,49294,15366],{"class":181},[34,49296,49297],{"class":36,"line":250},[34,49298,62],{"emptyLinePlaceholder":61},[34,49300,49301],{"class":36,"line":263},[34,49302,49303],{"class":40},"// crypto\n",[34,49305,49306,49308,49310,49312,49314,49316],{"class":36,"line":275},[34,49307,14676],{"class":580},[34,49309,15382],{"class":50},[34,49311,683],{"class":580},[34,49313,15387],{"class":181},[34,49315,15390],{"class":47},[34,49317,851],{"class":181},[34,49319,49320,49322,49324,49326,49328,49331,49334],{"class":36,"line":700},[34,49321,14676],{"class":580},[34,49323,16406],{"class":50},[34,49325,683],{"class":580},[34,49327,14763],{"class":580},[34,49329,49330],{"class":181}," crypto.subtle.",[34,49332,49333],{"class":47},"digest",[34,49335,1882],{"class":181},[34,49337,49338,49341],{"class":36,"line":706},[34,49339,49340],{"class":54},"  \"SHA-256\"",[34,49342,624],{"class":181},[34,49344,49345,49348,49350,49352,49354,49356,49359],{"class":36,"line":715},[34,49346,49347],{"class":580},"  new",[34,49349,49240],{"class":47},[34,49351,1645],{"class":181},[34,49353,49272],{"class":47},[34,49355,1607],{"class":181},[34,49357,49358],{"class":54},"\"message\"",[34,49360,3372],{"class":181},[34,49362,49363],{"class":36,"line":725},[34,49364,1586],{"class":181},[388,49366,14941],{},{"title":30,"searchDepth":44,"depth":44,"links":49368},[49369],{"id":49170,"depth":44,"text":48231},"Web APIs in Deno.",{},{"title":48231,"description":49370},"deno/web-apis",[46733,573,8606,14296,46870],"eyYCOzx_CgqZJdGYeJ-InN1CdAQvOXo1MKSOXgx1mUg",{"id":49377,"title":49378,"body":49379,"date":402,"description":49914,"extension":404,"meta":49915,"navigation":61,"order":263,"path":49916,"seo":49917,"stem":49918,"subject":49919,"tags":49920,"__hash__":49925},"topics/dijkstra/bidirectional-dijkstra.md","Bidirectional Dijkstra",{"type":8,"value":49380,"toc":49911},[49381,49384,49908],[11,49382,49378],{"id":49383},"bidirectional-dijkstra",[25,49385,49389],{"className":49386,"code":49387,"language":49388,"meta":30,"style":30},"language-python shiki shiki-themes github-light github-dark","# Faster for single source-target queries\ndef bidirectional_dijkstra(graph, reverse_graph, source, target):\n    if source == target:\n        return 0, [source]\n    \n    # Forward and backward searches\n    dist_f = {source: 0}\n    dist_b = {target: 0}\n    pq_f = [(0, source)]\n    pq_b = [(0, target)]\n    visited_f = set()\n    visited_b = set()\n    \n    best_dist = float('inf')\n    meeting_node = None\n    \n    while pq_f or pq_b:\n        # Expand forward\n        if pq_f:\n            d, u = heapq.heappop(pq_f)\n            if u in visited_f:\n                continue\n            visited_f.add(u)\n            \n            if u in visited_b:\n                total = dist_f[u] + dist_b[u]\n                if total \u003C best_dist:\n                    best_dist = total\n                    meeting_node = u\n            \n            for v, w in graph[u].items():\n                if dist_f.get(v, float('inf')) > d + w:\n                    dist_f[v] = d + w\n                    heapq.heappush(pq_f, (d + w, v))\n        \n        # Expand backward (similar logic)\n        if pq_b:\n            d, u = heapq.heappop(pq_b)\n            if u in visited_b:\n                continue\n            visited_b.add(u)\n            \n            if u in visited_f:\n                total = dist_f[u] + dist_b[u]\n                if total \u003C best_dist:\n                    best_dist = total\n                    meeting_node = u\n            \n            for v, w in reverse_graph[u].items():\n                if dist_b.get(v, float('inf')) > d + w:\n                    dist_b[v] = d + w\n                    heapq.heappush(pq_b, (d + w, v))\n    \n    return best_dist, meeting_node\n","python",[20,49390,49391,49396,49407,49419,49428,49432,49437,49451,49465,49480,49494,49505,49516,49520,49537,49547,49551,49564,49569,49577,49587,49600,49605,49610,49615,49626,49641,49654,49664,49674,49678,49691,49716,49730,49740,49745,49750,49756,49765,49775,49779,49784,49788,49798,49810,49820,49828,49836,49840,49851,49874,49887,49896,49900],{"__ignoreMap":30},[34,49392,49393],{"class":36,"line":37},[34,49394,49395],{"class":40},"# Faster for single source-target queries\n",[34,49397,49398,49401,49404],{"class":36,"line":44},[34,49399,49400],{"class":580},"def",[34,49402,49403],{"class":47}," bidirectional_dijkstra",[34,49405,49406],{"class":181},"(graph, reverse_graph, source, target):\n",[34,49408,49409,49411,49414,49416],{"class":36,"line":58},[34,49410,2902],{"class":580},[34,49412,49413],{"class":181}," source ",[34,49415,18168],{"class":580},[34,49417,49418],{"class":181}," target:\n",[34,49420,49421,49423,49425],{"class":36,"line":65},[34,49422,13895],{"class":580},[34,49424,8070],{"class":50},[34,49426,49427],{"class":181},", [source]\n",[34,49429,49430],{"class":36,"line":71},[34,49431,3666],{"class":181},[34,49433,49434],{"class":36,"line":77},[34,49435,49436],{"class":40},"    # Forward and backward searches\n",[34,49438,49439,49442,49444,49447,49449],{"class":36,"line":82},[34,49440,49441],{"class":181},"    dist_f ",[34,49443,1301],{"class":580},[34,49445,49446],{"class":181}," {source: ",[34,49448,2773],{"class":50},[34,49450,693],{"class":181},[34,49452,49453,49456,49458,49461,49463],{"class":36,"line":88},[34,49454,49455],{"class":181},"    dist_b ",[34,49457,1301],{"class":580},[34,49459,49460],{"class":181}," {target: ",[34,49462,2773],{"class":50},[34,49464,693],{"class":181},[34,49466,49467,49470,49472,49475,49477],{"class":36,"line":242},[34,49468,49469],{"class":181},"    pq_f ",[34,49471,1301],{"class":580},[34,49473,49474],{"class":181}," [(",[34,49476,2773],{"class":50},[34,49478,49479],{"class":181},", source)]\n",[34,49481,49482,49485,49487,49489,49491],{"class":36,"line":250},[34,49483,49484],{"class":181},"    pq_b ",[34,49486,1301],{"class":580},[34,49488,49474],{"class":181},[34,49490,2773],{"class":50},[34,49492,49493],{"class":181},", target)]\n",[34,49495,49496,49499,49501,49503],{"class":36,"line":263},[34,49497,49498],{"class":181},"    visited_f ",[34,49500,1301],{"class":580},[34,49502,9481],{"class":50},[34,49504,33899],{"class":181},[34,49506,49507,49510,49512,49514],{"class":36,"line":275},[34,49508,49509],{"class":181},"    visited_b ",[34,49511,1301],{"class":580},[34,49513,9481],{"class":50},[34,49515,33899],{"class":181},[34,49517,49518],{"class":36,"line":700},[34,49519,3666],{"class":181},[34,49521,49522,49525,49527,49530,49532,49535],{"class":36,"line":706},[34,49523,49524],{"class":181},"    best_dist ",[34,49526,1301],{"class":580},[34,49528,49529],{"class":50}," float",[34,49531,1607],{"class":181},[34,49533,49534],{"class":54},"'inf'",[34,49536,3372],{"class":181},[34,49538,49539,49542,49544],{"class":36,"line":715},[34,49540,49541],{"class":181},"    meeting_node ",[34,49543,1301],{"class":580},[34,49545,49546],{"class":50}," None\n",[34,49548,49549],{"class":36,"line":725},[34,49550,3666],{"class":181},[34,49552,49553,49555,49558,49561],{"class":36,"line":734},[34,49554,8098],{"class":580},[34,49556,49557],{"class":181}," pq_f ",[34,49559,49560],{"class":580},"or",[34,49562,49563],{"class":181}," pq_b:\n",[34,49565,49566],{"class":36,"line":742},[34,49567,49568],{"class":40},"        # Expand forward\n",[34,49570,49571,49574],{"class":36,"line":748},[34,49572,49573],{"class":580},"        if",[34,49575,49576],{"class":181}," pq_f:\n",[34,49578,49579,49582,49584],{"class":36,"line":754},[34,49580,49581],{"class":181},"            d, u ",[34,49583,1301],{"class":580},[34,49585,49586],{"class":181}," heapq.heappop(pq_f)\n",[34,49588,49589,49592,49595,49597],{"class":36,"line":759},[34,49590,49591],{"class":580},"            if",[34,49593,49594],{"class":181}," u ",[34,49596,10252],{"class":580},[34,49598,49599],{"class":181}," visited_f:\n",[34,49601,49602],{"class":36,"line":771},[34,49603,49604],{"class":580},"                continue\n",[34,49606,49607],{"class":36,"line":794},[34,49608,49609],{"class":181},"            visited_f.add(u)\n",[34,49611,49612],{"class":36,"line":824},[34,49613,49614],{"class":181},"            \n",[34,49616,49617,49619,49621,49623],{"class":36,"line":830},[34,49618,49591],{"class":580},[34,49620,49594],{"class":181},[34,49622,10252],{"class":580},[34,49624,49625],{"class":181}," visited_b:\n",[34,49627,49628,49631,49633,49636,49638],{"class":36,"line":839},[34,49629,49630],{"class":181},"                total ",[34,49632,1301],{"class":580},[34,49634,49635],{"class":181}," dist_f[u] ",[34,49637,2940],{"class":580},[34,49639,49640],{"class":181}," dist_b[u]\n",[34,49642,49643,49646,49649,49651],{"class":36,"line":854},[34,49644,49645],{"class":580},"                if",[34,49647,49648],{"class":181}," total ",[34,49650,815],{"class":580},[34,49652,49653],{"class":181}," best_dist:\n",[34,49655,49656,49659,49661],{"class":36,"line":860},[34,49657,49658],{"class":181},"                    best_dist ",[34,49660,1301],{"class":580},[34,49662,49663],{"class":181}," total\n",[34,49665,49666,49669,49671],{"class":36,"line":865},[34,49667,49668],{"class":181},"                    meeting_node ",[34,49670,1301],{"class":580},[34,49672,49673],{"class":181}," u\n",[34,49675,49676],{"class":36,"line":870},[34,49677,49614],{"class":181},[34,49679,49680,49683,49686,49688],{"class":36,"line":876},[34,49681,49682],{"class":580},"            for",[34,49684,49685],{"class":181}," v, w ",[34,49687,10252],{"class":580},[34,49689,49690],{"class":181}," graph[u].items():\n",[34,49692,49693,49695,49698,49700,49702,49704,49707,49709,49711,49713],{"class":36,"line":885},[34,49694,49645],{"class":580},[34,49696,49697],{"class":181}," dist_f.get(v, ",[34,49699,25079],{"class":50},[34,49701,1607],{"class":181},[34,49703,49534],{"class":54},[34,49705,49706],{"class":181},")) ",[34,49708,5691],{"class":580},[34,49710,22760],{"class":181},[34,49712,2940],{"class":580},[34,49714,49715],{"class":181}," w:\n",[34,49717,49718,49721,49723,49725,49727],{"class":36,"line":895},[34,49719,49720],{"class":181},"                    dist_f[v] ",[34,49722,1301],{"class":580},[34,49724,22760],{"class":181},[34,49726,2940],{"class":580},[34,49728,49729],{"class":181}," w\n",[34,49731,49732,49735,49737],{"class":36,"line":904},[34,49733,49734],{"class":181},"                    heapq.heappush(pq_f, (d ",[34,49736,2940],{"class":580},[34,49738,49739],{"class":181}," w, v))\n",[34,49741,49742],{"class":36,"line":915},[34,49743,49744],{"class":181},"        \n",[34,49746,49747],{"class":36,"line":927},[34,49748,49749],{"class":40},"        # Expand backward (similar logic)\n",[34,49751,49752,49754],{"class":36,"line":932},[34,49753,49573],{"class":580},[34,49755,49563],{"class":181},[34,49757,49758,49760,49762],{"class":36,"line":944},[34,49759,49581],{"class":181},[34,49761,1301],{"class":580},[34,49763,49764],{"class":181}," heapq.heappop(pq_b)\n",[34,49766,49767,49769,49771,49773],{"class":36,"line":966},[34,49768,49591],{"class":580},[34,49770,49594],{"class":181},[34,49772,10252],{"class":580},[34,49774,49625],{"class":181},[34,49776,49777],{"class":36,"line":1948},[34,49778,49604],{"class":580},[34,49780,49781],{"class":36,"line":1953},[34,49782,49783],{"class":181},"            visited_b.add(u)\n",[34,49785,49786],{"class":36,"line":3616},[34,49787,49614],{"class":181},[34,49789,49790,49792,49794,49796],{"class":36,"line":3622},[34,49791,49591],{"class":580},[34,49793,49594],{"class":181},[34,49795,10252],{"class":580},[34,49797,49599],{"class":181},[34,49799,49800,49802,49804,49806,49808],{"class":36,"line":3642},[34,49801,49630],{"class":181},[34,49803,1301],{"class":580},[34,49805,49635],{"class":181},[34,49807,2940],{"class":580},[34,49809,49640],{"class":181},[34,49811,49812,49814,49816,49818],{"class":36,"line":3657},[34,49813,49645],{"class":580},[34,49815,49648],{"class":181},[34,49817,815],{"class":580},[34,49819,49653],{"class":181},[34,49821,49822,49824,49826],{"class":36,"line":3663},[34,49823,49658],{"class":181},[34,49825,1301],{"class":580},[34,49827,49663],{"class":181},[34,49829,49830,49832,49834],{"class":36,"line":3669},[34,49831,49668],{"class":181},[34,49833,1301],{"class":580},[34,49835,49673],{"class":181},[34,49837,49838],{"class":36,"line":3675},[34,49839,49614],{"class":181},[34,49841,49842,49844,49846,49848],{"class":36,"line":3693},[34,49843,49682],{"class":580},[34,49845,49685],{"class":181},[34,49847,10252],{"class":580},[34,49849,49850],{"class":181}," reverse_graph[u].items():\n",[34,49852,49853,49855,49858,49860,49862,49864,49866,49868,49870,49872],{"class":36,"line":3707},[34,49854,49645],{"class":580},[34,49856,49857],{"class":181}," dist_b.get(v, ",[34,49859,25079],{"class":50},[34,49861,1607],{"class":181},[34,49863,49534],{"class":54},[34,49865,49706],{"class":181},[34,49867,5691],{"class":580},[34,49869,22760],{"class":181},[34,49871,2940],{"class":580},[34,49873,49715],{"class":181},[34,49875,49876,49879,49881,49883,49885],{"class":36,"line":3712},[34,49877,49878],{"class":181},"                    dist_b[v] ",[34,49880,1301],{"class":580},[34,49882,22760],{"class":181},[34,49884,2940],{"class":580},[34,49886,49729],{"class":181},[34,49888,49889,49892,49894],{"class":36,"line":3717},[34,49890,49891],{"class":181},"                    heapq.heappush(pq_b, (d ",[34,49893,2940],{"class":580},[34,49895,49739],{"class":181},[34,49897,49898],{"class":36,"line":25776},[34,49899,3666],{"class":181},[34,49901,49903,49905],{"class":36,"line":49902},54,[34,49904,1564],{"class":580},[34,49906,49907],{"class":181}," best_dist, meeting_node\n",[388,49909,49910],{},"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 .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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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);}",{"title":30,"searchDepth":44,"depth":44,"links":49912},[49913],{"id":49383,"depth":44,"text":49378},"Bidirectional Dijkstra in Dijkstra's Algorithm.",{},"/dijkstra/bidirectional-dijkstra",{"title":49378,"description":49914},"dijkstra/bidirectional-dijkstra","dijkstra",[49919,49921,49922,49923,49924],"graph","shortest-path","algorithms","greedy","nayFual7I2Dm6Q6_MdeHG3t1hDINeiFWRll_x_nR8Dk",{"id":49927,"title":49928,"body":49929,"date":402,"description":50608,"extension":404,"meta":50609,"navigation":61,"order":88,"path":50610,"seo":50611,"stem":50612,"subject":49919,"tags":50613,"__hash__":50614},"topics/dijkstra/c-implementation.md","C++ Implementation",{"type":8,"value":49930,"toc":50605},[49931,49934,50602],[11,49932,49928],{"id":49933},"c-implementation",[25,49935,49937],{"className":29757,"code":49936,"language":29759,"meta":30,"style":30},"#include \u003Cvector>\n#include \u003Cqueue>\n#include \u003Cunordered_map>\n#include \u003Climits>\n\nusing namespace std;\n\ntypedef pair\u003Cint, int> pii;  // (distance, node)\n\nvector\u003Cint> dijkstra(vector\u003Cvector\u003Cpii>>& graph, int source) {\n    int n = graph.size();\n    vector\u003Cint> distances(n, numeric_limits\u003Cint>::max());\n    vector\u003Cint> previous(n, -1);\n    \n    // Min-heap priority queue\n    priority_queue\u003Cpii, vector\u003Cpii>, greater\u003Cpii>> pq;\n    \n    distances[source] = 0;\n    pq.push({0, source});\n    \n    while (!pq.empty()) {\n        auto [dist, current] = pq.top();\n        pq.pop();\n        \n        if (dist > distances[current]) continue;\n        \n        for (auto& [neighbor, weight] : graph[current]) {\n            int newDist = distances[current] + weight;\n            \n            if (newDist \u003C distances[neighbor]) {\n                distances[neighbor] = newDist;\n                previous[neighbor] = current;\n                pq.push({newDist, neighbor});\n            }\n        }\n    }\n    \n    return distances;\n}\n\n// Usage\nint main() {\n    // Graph with 5 nodes (0-4)\n    vector\u003Cvector\u003Cpii>> graph(5);\n    graph[0] = {{1, 4}, {2, 2}};\n    graph[1] = {{0, 4}, {2, 1}, {3, 5}};\n    graph[2] = {{0, 2}, {1, 1}, {3, 8}, {4, 10}};\n    graph[3] = {{1, 5}, {2, 8}, {4, 2}};\n    graph[4] = {{2, 10}, {3, 2}};\n    \n    vector\u003Cint> distances = dijkstra(graph, 0);\n    return 0;\n}\n",[20,49938,49939,49945,49952,49958,49965,49969,49979,49983,50002,50006,50046,50061,50089,50106,50110,50115,50143,50147,50158,50173,50177,50192,50209,50219,50223,50239,50243,50256,50274,50278,50290,50300,50310,50320,50324,50328,50332,50336,50343,50347,50351,50355,50363,50368,50390,50421,50457,50501,50537,50565,50569,50590,50598],{"__ignoreMap":30},[34,49940,49941,49943],{"class":36,"line":37},[34,49942,19569],{"class":580},[34,49944,29775],{"class":54},[34,49946,49947,49949],{"class":36,"line":44},[34,49948,19569],{"class":580},[34,49950,49951],{"class":54}," \u003Cqueue>\n",[34,49953,49954,49956],{"class":36,"line":58},[34,49955,19569],{"class":580},[34,49957,30408],{"class":54},[34,49959,49960,49962],{"class":36,"line":65},[34,49961,19569],{"class":580},[34,49963,49964],{"class":54}," \u003Climits>\n",[34,49966,49967],{"class":36,"line":71},[34,49968,62],{"emptyLinePlaceholder":61},[34,49970,49971,49973,49975,49977],{"class":36,"line":77},[34,49972,35668],{"class":580},[34,49974,7080],{"class":580},[34,49976,30217],{"class":47},[34,49978,593],{"class":181},[34,49980,49981],{"class":36,"line":82},[34,49982,62],{"emptyLinePlaceholder":61},[34,49984,49985,49987,49990,49992,49994,49996,49999],{"class":36,"line":88},[34,49986,18329],{"class":580},[34,49988,49989],{"class":181}," pair",[34,49991,29839],{"class":580},[34,49993,1798],{"class":181},[34,49995,30441],{"class":580},[34,49997,49998],{"class":181}," pii;",[34,50000,50001],{"class":40},"  // (distance, node)\n",[34,50003,50004],{"class":36,"line":242},[34,50005,62],{"emptyLinePlaceholder":61},[34,50007,50008,50010,50012,50014,50016,50018,50020,50022,50024,50026,50028,50031,50033,50035,50038,50040,50042,50044],{"class":36,"line":250},[34,50009,31336],{"class":47},[34,50011,815],{"class":181},[34,50013,17772],{"class":580},[34,50015,32840],{"class":181},[34,50017,49919],{"class":47},[34,50019,1607],{"class":181},[34,50021,31336],{"class":47},[34,50023,815],{"class":181},[34,50025,31336],{"class":47},[34,50027,815],{"class":181},[34,50029,50030],{"class":47},"pii",[34,50032,23036],{"class":181},[34,50034,19502],{"class":580},[34,50036,50037],{"class":675}," graph",[34,50039,1798],{"class":181},[34,50041,17772],{"class":580},[34,50043,13231],{"class":675},[34,50045,2416],{"class":181},[34,50047,50048,50050,50052,50054,50057,50059],{"class":36,"line":263},[34,50049,18339],{"class":580},[34,50051,22052],{"class":181},[34,50053,1301],{"class":580},[34,50055,50056],{"class":181}," graph.",[34,50058,29946],{"class":47},[34,50060,851],{"class":181},[34,50062,50063,50066,50068,50071,50074,50077,50079,50081,50084,50087],{"class":36,"line":275},[34,50064,50065],{"class":181},"    vector",[34,50067,29891],{"class":580},[34,50069,50070],{"class":47}," distances",[34,50072,50073],{"class":181},"(n, ",[34,50075,50076],{"class":47},"numeric_limits",[34,50078,815],{"class":181},[34,50080,17772],{"class":580},[34,50082,50083],{"class":181},">::",[34,50085,50086],{"class":47},"max",[34,50088,4343],{"class":181},[34,50090,50091,50093,50095,50098,50100,50102,50104],{"class":36,"line":700},[34,50092,50065],{"class":181},[34,50094,29891],{"class":580},[34,50096,50097],{"class":47}," previous",[34,50099,50073],{"class":181},[34,50101,22062],{"class":580},[34,50103,8318],{"class":50},[34,50105,1586],{"class":181},[34,50107,50108],{"class":36,"line":706},[34,50109,3666],{"class":181},[34,50111,50112],{"class":36,"line":715},[34,50113,50114],{"class":40},"    // Min-heap priority queue\n",[34,50116,50117,50120,50122,50125,50127,50129,50131,50134,50136,50138,50140],{"class":36,"line":725},[34,50118,50119],{"class":181},"    priority_queue",[34,50121,815],{"class":580},[34,50123,50124],{"class":181},"pii, vector",[34,50126,815],{"class":580},[34,50128,50030],{"class":181},[34,50130,5691],{"class":580},[34,50132,50133],{"class":181},", greater",[34,50135,815],{"class":580},[34,50137,50030],{"class":181},[34,50139,23036],{"class":580},[34,50141,50142],{"class":181}," pq;\n",[34,50144,50145],{"class":36,"line":734},[34,50146,3666],{"class":181},[34,50148,50149,50152,50154,50156],{"class":36,"line":742},[34,50150,50151],{"class":181},"    distances[source] ",[34,50153,1301],{"class":580},[34,50155,8070],{"class":50},[34,50157,593],{"class":181},[34,50159,50160,50163,50166,50168,50170],{"class":36,"line":748},[34,50161,50162],{"class":181},"    pq.",[34,50164,50165],{"class":47},"push",[34,50167,30471],{"class":181},[34,50169,2773],{"class":50},[34,50171,50172],{"class":181},", source});\n",[34,50174,50175],{"class":36,"line":754},[34,50176,3666],{"class":181},[34,50178,50179,50181,50183,50185,50188,50190],{"class":36,"line":759},[34,50180,8098],{"class":580},[34,50182,3204],{"class":181},[34,50184,10307],{"class":580},[34,50186,50187],{"class":181},"pq.",[34,50189,29958],{"class":47},[34,50191,31037],{"class":181},[34,50193,50194,50197,50200,50202,50205,50207],{"class":36,"line":771},[34,50195,50196],{"class":580},"        auto",[34,50198,50199],{"class":181}," [dist, current] ",[34,50201,1301],{"class":580},[34,50203,50204],{"class":181}," pq.",[34,50206,12384],{"class":47},[34,50208,851],{"class":181},[34,50210,50211,50214,50217],{"class":36,"line":794},[34,50212,50213],{"class":181},"        pq.",[34,50215,50216],{"class":47},"pop",[34,50218,851],{"class":181},[34,50220,50221],{"class":36,"line":824},[34,50222,49744],{"class":181},[34,50224,50225,50227,50230,50232,50235,50237],{"class":36,"line":830},[34,50226,49573],{"class":580},[34,50228,50229],{"class":181}," (dist ",[34,50231,5691],{"class":580},[34,50233,50234],{"class":181}," distances[current]) ",[34,50236,19313],{"class":580},[34,50238,593],{"class":181},[34,50240,50241],{"class":36,"line":839},[34,50242,49744],{"class":181},[34,50244,50245,50248,50250,50253],{"class":36,"line":854},[34,50246,50247],{"class":580},"        for",[34,50249,3204],{"class":181},[34,50251,50252],{"class":580},"auto&",[34,50254,50255],{"class":181}," [neighbor, weight] : graph[current]) {\n",[34,50257,50258,50261,50264,50266,50269,50271],{"class":36,"line":860},[34,50259,50260],{"class":580},"            int",[34,50262,50263],{"class":181}," newDist ",[34,50265,1301],{"class":580},[34,50267,50268],{"class":181}," distances[current] ",[34,50270,2940],{"class":580},[34,50272,50273],{"class":181}," weight;\n",[34,50275,50276],{"class":36,"line":865},[34,50277,49614],{"class":181},[34,50279,50280,50282,50285,50287],{"class":36,"line":870},[34,50281,49591],{"class":580},[34,50283,50284],{"class":181}," (newDist ",[34,50286,815],{"class":580},[34,50288,50289],{"class":181}," distances[neighbor]) {\n",[34,50291,50292,50295,50297],{"class":36,"line":876},[34,50293,50294],{"class":181},"                distances[neighbor] ",[34,50296,1301],{"class":580},[34,50298,50299],{"class":181}," newDist;\n",[34,50301,50302,50305,50307],{"class":36,"line":885},[34,50303,50304],{"class":181},"                previous[neighbor] ",[34,50306,1301],{"class":580},[34,50308,50309],{"class":181}," current;\n",[34,50311,50312,50315,50317],{"class":36,"line":895},[34,50313,50314],{"class":181},"                pq.",[34,50316,50165],{"class":47},[34,50318,50319],{"class":181},"({newDist, neighbor});\n",[34,50321,50322],{"class":36,"line":904},[34,50323,28156],{"class":181},[34,50325,50326],{"class":36,"line":915},[34,50327,26208],{"class":181},[34,50329,50330],{"class":36,"line":927},[34,50331,3229],{"class":181},[34,50333,50334],{"class":36,"line":932},[34,50335,3666],{"class":181},[34,50337,50338,50340],{"class":36,"line":944},[34,50339,1564],{"class":580},[34,50341,50342],{"class":181}," distances;\n",[34,50344,50345],{"class":36,"line":966},[34,50346,693],{"class":181},[34,50348,50349],{"class":36,"line":1948},[34,50350,62],{"emptyLinePlaceholder":61},[34,50352,50353],{"class":36,"line":1953},[34,50354,1113],{"class":40},[34,50356,50357,50359,50361],{"class":36,"line":3616},[34,50358,17772],{"class":580},[34,50360,18224],{"class":47},[34,50362,836],{"class":181},[34,50364,50365],{"class":36,"line":3622},[34,50366,50367],{"class":40},"    // Graph with 5 nodes (0-4)\n",[34,50369,50370,50372,50374,50376,50378,50380,50382,50384,50386,50388],{"class":36,"line":3642},[34,50371,50065],{"class":181},[34,50373,815],{"class":580},[34,50375,31336],{"class":181},[34,50377,815],{"class":580},[34,50379,50030],{"class":181},[34,50381,23036],{"class":580},[34,50383,50037],{"class":47},[34,50385,1607],{"class":181},[34,50387,2778],{"class":50},[34,50389,1586],{"class":181},[34,50391,50392,50395,50397,50399,50401,50403,50405,50407,50409,50412,50414,50416,50418],{"class":36,"line":3657},[34,50393,50394],{"class":181},"    graph[",[34,50396,2773],{"class":50},[34,50398,17799],{"class":181},[34,50400,1301],{"class":580},[34,50402,24998],{"class":181},[34,50404,8318],{"class":50},[34,50406,1798],{"class":181},[34,50408,18010],{"class":50},[34,50410,50411],{"class":181},"}, {",[34,50413,8324],{"class":50},[34,50415,1798],{"class":181},[34,50417,8324],{"class":50},[34,50419,50420],{"class":181},"}};\n",[34,50422,50423,50425,50427,50429,50431,50433,50435,50437,50439,50441,50443,50445,50447,50449,50451,50453,50455],{"class":36,"line":3663},[34,50424,50394],{"class":181},[34,50426,8318],{"class":50},[34,50428,17799],{"class":181},[34,50430,1301],{"class":580},[34,50432,24998],{"class":181},[34,50434,2773],{"class":50},[34,50436,1798],{"class":181},[34,50438,18010],{"class":50},[34,50440,50411],{"class":181},[34,50442,8324],{"class":50},[34,50444,1798],{"class":181},[34,50446,8318],{"class":50},[34,50448,50411],{"class":181},[34,50450,3162],{"class":50},[34,50452,1798],{"class":181},[34,50454,2778],{"class":50},[34,50456,50420],{"class":181},[34,50458,50459,50461,50463,50465,50467,50469,50471,50473,50475,50477,50479,50481,50483,50485,50487,50489,50491,50493,50495,50497,50499],{"class":36,"line":3669},[34,50460,50394],{"class":181},[34,50462,8324],{"class":50},[34,50464,17799],{"class":181},[34,50466,1301],{"class":580},[34,50468,24998],{"class":181},[34,50470,2773],{"class":50},[34,50472,1798],{"class":181},[34,50474,8324],{"class":50},[34,50476,50411],{"class":181},[34,50478,8318],{"class":50},[34,50480,1798],{"class":181},[34,50482,8318],{"class":50},[34,50484,50411],{"class":181},[34,50486,3162],{"class":50},[34,50488,1798],{"class":181},[34,50490,18033],{"class":50},[34,50492,50411],{"class":181},[34,50494,18010],{"class":50},[34,50496,1798],{"class":181},[34,50498,11923],{"class":50},[34,50500,50420],{"class":181},[34,50502,50503,50505,50507,50509,50511,50513,50515,50517,50519,50521,50523,50525,50527,50529,50531,50533,50535],{"class":36,"line":3675},[34,50504,50394],{"class":181},[34,50506,3162],{"class":50},[34,50508,17799],{"class":181},[34,50510,1301],{"class":580},[34,50512,24998],{"class":181},[34,50514,8318],{"class":50},[34,50516,1798],{"class":181},[34,50518,2778],{"class":50},[34,50520,50411],{"class":181},[34,50522,8324],{"class":50},[34,50524,1798],{"class":181},[34,50526,18033],{"class":50},[34,50528,50411],{"class":181},[34,50530,18010],{"class":50},[34,50532,1798],{"class":181},[34,50534,8324],{"class":50},[34,50536,50420],{"class":181},[34,50538,50539,50541,50543,50545,50547,50549,50551,50553,50555,50557,50559,50561,50563],{"class":36,"line":3693},[34,50540,50394],{"class":181},[34,50542,18010],{"class":50},[34,50544,17799],{"class":181},[34,50546,1301],{"class":580},[34,50548,24998],{"class":181},[34,50550,8324],{"class":50},[34,50552,1798],{"class":181},[34,50554,11923],{"class":50},[34,50556,50411],{"class":181},[34,50558,3162],{"class":50},[34,50560,1798],{"class":181},[34,50562,8324],{"class":50},[34,50564,50420],{"class":181},[34,50566,50567],{"class":36,"line":3707},[34,50568,3666],{"class":181},[34,50570,50571,50573,50575,50578,50580,50583,50586,50588],{"class":36,"line":3712},[34,50572,50065],{"class":181},[34,50574,29891],{"class":580},[34,50576,50577],{"class":181}," distances ",[34,50579,1301],{"class":580},[34,50581,50582],{"class":47}," dijkstra",[34,50584,50585],{"class":181},"(graph, ",[34,50587,2773],{"class":50},[34,50589,1586],{"class":181},[34,50591,50592,50594,50596],{"class":36,"line":3717},[34,50593,1564],{"class":580},[34,50595,8070],{"class":50},[34,50597,593],{"class":181},[34,50599,50600],{"class":36,"line":25776},[34,50601,693],{"class":181},[388,50603,50604],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .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":30,"searchDepth":44,"depth":44,"links":50606},[50607],{"id":49933,"depth":44,"text":49928},"C++ Implementation in Dijkstra's Algorithm.",{},"/dijkstra/c-implementation",{"title":49928,"description":50608},"dijkstra/c-implementation",[49919,49921,49922,49923,49924],"FC3Pg3lxPYvOdHSnDjNM7QzM6GN40v84FfE1XofK-W4",{"id":50616,"title":50617,"body":50618,"date":402,"description":50632,"extension":404,"meta":50633,"navigation":61,"order":700,"path":50634,"seo":50635,"stem":50636,"subject":49919,"tags":50637,"__hash__":50638},"topics/dijkstra/common-applications.md","Common Applications",{"type":8,"value":50619,"toc":50629},[50620,50623],[11,50621,50617],{"id":50622},"common-applications",[25,50624,50627],{"className":50625,"code":50626,"language":780,"meta":30},[13703],"1. GPS Navigation\n   - Finding shortest/fastest route between locations\n   \n2. Network Routing\n   - OSPF protocol uses Dijkstra for packet routing\n   \n3. Social Networks\n   - Finding degrees of separation between users\n   \n4. Games\n   - Pathfinding for characters/units (often combined with A*)\n   \n5. Flight Planning\n   - Finding optimal flight routes with layovers\n   \n6. Robotics\n   - Path planning for autonomous navigation\n",[20,50628,50626],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":50630},[50631],{"id":50622,"depth":44,"text":50617},"Common Applications in Dijkstra's Algorithm.",{},"/dijkstra/common-applications",{"title":50617,"description":50632},"dijkstra/common-applications",[49919,49921,49922,49923,49924],"eQ-7QjKmMw_9T5namfM98f25f6Ny3hmHv_gafTwAq7w",{"id":50640,"title":50641,"body":50642,"date":402,"description":50656,"extension":404,"meta":50657,"navigation":61,"order":275,"path":50658,"seo":50659,"stem":50660,"subject":49919,"tags":50661,"__hash__":50662},"topics/dijkstra/dijkstra-vs-other-algorithms.md","Dijkstra vs Other Algorithms",{"type":8,"value":50643,"toc":50653},[50644,50647],[11,50645,50641],{"id":50646},"dijkstra-vs-other-algorithms",[25,50648,50651],{"className":50649,"code":50650,"language":780,"meta":30},[13703],"Algorithm         | Weights      | Time           | Use Case\n------------------|--------------|----------------|---------------------------\nDijkstra          | Non-negative | O((V+E) log V) | Single-source shortest path\nBellman-Ford      | Any          | O(V × E)       | Negative weights, detect cycles\nFloyd-Warshall    | Any          | O(V³)          | All-pairs shortest paths\nA* Search         | Non-negative | O(E)           | Single-pair with heuristic\nBFS               | Unweighted   | O(V + E)       | Unweighted graphs\n\nWhen to use Dijkstra:\n  ✓ Finding shortest path from one source to all nodes\n  ✓ Graph has non-negative edge weights\n  ✓ Need optimal solution (not approximation)\n  ✗ Graph has negative weights (use Bellman-Ford)\n  ✗ Need all-pairs shortest paths (use Floyd-Warshall)\n  ✗ Unweighted graph (use BFS - simpler & faster)\n",[20,50652,50650],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":50654},[50655],{"id":50646,"depth":44,"text":50641},"Dijkstra vs Other Algorithms in Dijkstra's Algorithm.",{},"/dijkstra/dijkstra-vs-other-algorithms",{"title":50641,"description":50656},"dijkstra/dijkstra-vs-other-algorithms",[49919,49921,49922,49923,49924],"rxyfRKyiFpz2v3yXv2MuI2QkRYYEvQGL0wfFAIQfU1w",{"id":50664,"title":50665,"body":50666,"date":402,"description":50984,"extension":404,"meta":50985,"navigation":61,"order":242,"path":50986,"seo":50987,"stem":50988,"subject":49919,"tags":50989,"__hash__":50990},"topics/dijkstra/graph-representations.md","Graph Representations",{"type":8,"value":50667,"toc":50981},[50668,50671,50978],[11,50669,50665],{"id":50670},"graph-representations",[25,50672,50674],{"className":49386,"code":50673,"language":49388,"meta":30,"style":30},"# Adjacency List (recommended for sparse graphs)\ngraph_adj_list = {\n    'A': {'B': 4, 'C': 2},\n    'B': {'C': 1, 'D': 5},\n    'C': {'D': 8},\n    'D': {}\n}\n\n# Adjacency Matrix (better for dense graphs)\n#     A  B  C  D\n# A [[0, 4, 2, 0],\n# B  [0, 0, 1, 5],\n# C  [0, 0, 0, 8],\n# D  [0, 0, 0, 0]]\n\n# Edge List\nedges = [\n    ('A', 'B', 4),\n    ('A', 'C', 2),\n    ('B', 'C', 1),\n    ('B', 'D', 5),\n    ('C', 'D', 8)\n]\n\n# Convert edge list to adjacency list\ndef edges_to_adj_list(edges):\n    graph = defaultdict(dict)\n    for u, v, weight in edges:\n        graph[u][v] = weight\n        # For undirected graph, also add:\n        # graph[v][u] = weight\n    return graph\n",[20,50675,50676,50681,50690,50716,50740,50755,50763,50767,50771,50776,50781,50786,50791,50796,50801,50805,50810,50819,50837,50853,50869,50885,50901,50905,50909,50914,50924,50939,50951,50961,50966,50971],{"__ignoreMap":30},[34,50677,50678],{"class":36,"line":37},[34,50679,50680],{"class":40},"# Adjacency List (recommended for sparse graphs)\n",[34,50682,50683,50686,50688],{"class":36,"line":44},[34,50684,50685],{"class":181},"graph_adj_list ",[34,50687,1301],{"class":580},[34,50689,661],{"class":181},[34,50691,50692,50695,50698,50701,50703,50705,50707,50710,50712,50714],{"class":36,"line":58},[34,50693,50694],{"class":54},"    'A'",[34,50696,50697],{"class":181},": {",[34,50699,50700],{"class":54},"'B'",[34,50702,182],{"class":181},[34,50704,18010],{"class":50},[34,50706,1798],{"class":181},[34,50708,50709],{"class":54},"'C'",[34,50711,182],{"class":181},[34,50713,8324],{"class":50},[34,50715,18003],{"class":181},[34,50717,50718,50721,50723,50725,50727,50729,50731,50734,50736,50738],{"class":36,"line":65},[34,50719,50720],{"class":54},"    'B'",[34,50722,50697],{"class":181},[34,50724,50709],{"class":54},[34,50726,182],{"class":181},[34,50728,8318],{"class":50},[34,50730,1798],{"class":181},[34,50732,50733],{"class":54},"'D'",[34,50735,182],{"class":181},[34,50737,2778],{"class":50},[34,50739,18003],{"class":181},[34,50741,50742,50745,50747,50749,50751,50753],{"class":36,"line":71},[34,50743,50744],{"class":54},"    'C'",[34,50746,50697],{"class":181},[34,50748,50733],{"class":54},[34,50750,182],{"class":181},[34,50752,18033],{"class":50},[34,50754,18003],{"class":181},[34,50756,50757,50760],{"class":36,"line":77},[34,50758,50759],{"class":54},"    'D'",[34,50761,50762],{"class":181},": {}\n",[34,50764,50765],{"class":36,"line":82},[34,50766,693],{"class":181},[34,50768,50769],{"class":36,"line":88},[34,50770,62],{"emptyLinePlaceholder":61},[34,50772,50773],{"class":36,"line":242},[34,50774,50775],{"class":40},"# Adjacency Matrix (better for dense graphs)\n",[34,50777,50778],{"class":36,"line":250},[34,50779,50780],{"class":40},"#     A  B  C  D\n",[34,50782,50783],{"class":36,"line":263},[34,50784,50785],{"class":40},"# A [[0, 4, 2, 0],\n",[34,50787,50788],{"class":36,"line":275},[34,50789,50790],{"class":40},"# B  [0, 0, 1, 5],\n",[34,50792,50793],{"class":36,"line":700},[34,50794,50795],{"class":40},"# C  [0, 0, 0, 8],\n",[34,50797,50798],{"class":36,"line":706},[34,50799,50800],{"class":40},"# D  [0, 0, 0, 0]]\n",[34,50802,50803],{"class":36,"line":715},[34,50804,62],{"emptyLinePlaceholder":61},[34,50806,50807],{"class":36,"line":725},[34,50808,50809],{"class":40},"# Edge List\n",[34,50811,50812,50815,50817],{"class":36,"line":734},[34,50813,50814],{"class":181},"edges ",[34,50816,1301],{"class":580},[34,50818,3304],{"class":181},[34,50820,50821,50824,50826,50828,50830,50832,50834],{"class":36,"line":742},[34,50822,50823],{"class":181},"    (",[34,50825,21516],{"class":54},[34,50827,1798],{"class":181},[34,50829,50700],{"class":54},[34,50831,1798],{"class":181},[34,50833,18010],{"class":50},[34,50835,50836],{"class":181},"),\n",[34,50838,50839,50841,50843,50845,50847,50849,50851],{"class":36,"line":748},[34,50840,50823],{"class":181},[34,50842,21516],{"class":54},[34,50844,1798],{"class":181},[34,50846,50709],{"class":54},[34,50848,1798],{"class":181},[34,50850,8324],{"class":50},[34,50852,50836],{"class":181},[34,50854,50855,50857,50859,50861,50863,50865,50867],{"class":36,"line":754},[34,50856,50823],{"class":181},[34,50858,50700],{"class":54},[34,50860,1798],{"class":181},[34,50862,50709],{"class":54},[34,50864,1798],{"class":181},[34,50866,8318],{"class":50},[34,50868,50836],{"class":181},[34,50870,50871,50873,50875,50877,50879,50881,50883],{"class":36,"line":759},[34,50872,50823],{"class":181},[34,50874,50700],{"class":54},[34,50876,1798],{"class":181},[34,50878,50733],{"class":54},[34,50880,1798],{"class":181},[34,50882,2778],{"class":50},[34,50884,50836],{"class":181},[34,50886,50887,50889,50891,50893,50895,50897,50899],{"class":36,"line":771},[34,50888,50823],{"class":181},[34,50890,50709],{"class":54},[34,50892,1798],{"class":181},[34,50894,50733],{"class":54},[34,50896,1798],{"class":181},[34,50898,18033],{"class":50},[34,50900,3372],{"class":181},[34,50902,50903],{"class":36,"line":794},[34,50904,924],{"class":181},[34,50906,50907],{"class":36,"line":824},[34,50908,62],{"emptyLinePlaceholder":61},[34,50910,50911],{"class":36,"line":830},[34,50912,50913],{"class":40},"# Convert edge list to adjacency list\n",[34,50915,50916,50918,50921],{"class":36,"line":839},[34,50917,49400],{"class":580},[34,50919,50920],{"class":47}," edges_to_adj_list",[34,50922,50923],{"class":181},"(edges):\n",[34,50925,50926,50929,50931,50934,50937],{"class":36,"line":854},[34,50927,50928],{"class":181},"    graph ",[34,50930,1301],{"class":580},[34,50932,50933],{"class":181}," defaultdict(",[34,50935,50936],{"class":50},"dict",[34,50938,3372],{"class":181},[34,50940,50941,50943,50946,50948],{"class":36,"line":860},[34,50942,18250],{"class":580},[34,50944,50945],{"class":181}," u, v, weight ",[34,50947,10252],{"class":580},[34,50949,50950],{"class":181}," edges:\n",[34,50952,50953,50956,50958],{"class":36,"line":865},[34,50954,50955],{"class":181},"        graph[u][v] ",[34,50957,1301],{"class":580},[34,50959,50960],{"class":181}," weight\n",[34,50962,50963],{"class":36,"line":870},[34,50964,50965],{"class":40},"        # For undirected graph, also add:\n",[34,50967,50968],{"class":36,"line":876},[34,50969,50970],{"class":40},"        # graph[v][u] = weight\n",[34,50972,50973,50975],{"class":36,"line":885},[34,50974,1564],{"class":580},[34,50976,50977],{"class":181}," graph\n",[388,50979,50980],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .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":30,"searchDepth":44,"depth":44,"links":50982},[50983],{"id":50670,"depth":44,"text":50665},"Graph Representations in Dijkstra's Algorithm.",{},"/dijkstra/graph-representations",{"title":50665,"description":50984},"dijkstra/graph-representations",[49919,49921,49922,49923,49924],"6XqUvuBQOvPhLhcL7xhaWlb0DJUKIf15FbMx4EZ5J_A",{"id":50992,"title":50993,"body":50994,"date":402,"description":51321,"extension":404,"meta":51322,"navigation":61,"order":250,"path":51323,"seo":51324,"stem":51325,"subject":49919,"tags":51326,"__hash__":51327},"topics/dijkstra/handling-edge-cases.md","Handling Edge Cases",{"type":8,"value":50995,"toc":51318},[50996,50999,51315],[11,50997,50993],{"id":50998},"handling-edge-cases",[25,51000,51002],{"className":49386,"code":51001,"language":49388,"meta":30,"style":30},"def dijkstra_safe(graph, source, target=None):\n    # Check if source exists\n    if source not in graph:\n        raise ValueError(f\"Source node '{source}' not in graph\")\n    \n    distances = {node: float('inf') for node in graph}\n    distances[source] = 0\n    pq = [(0, source)]\n    visited = set()\n    \n    while pq:\n        current_dist, current = heapq.heappop(pq)\n        \n        if current in visited:\n            continue\n        visited.add(current)\n        \n        # Early termination if target is reached\n        if target and current == target:\n            return distances[target]\n        \n        for neighbor, weight in graph[current].items():\n            # Check for negative weights\n            if weight \u003C 0:\n                raise ValueError(\"Negative weights not supported\")\n            \n            distance = current_dist + weight\n            if distance \u003C distances[neighbor]:\n                distances[neighbor] = distance\n                heapq.heappush(pq, (distance, neighbor))\n    \n    return distances\n",[20,51003,51004,51022,51027,51041,51068,51072,51100,51108,51121,51132,51136,51143,51153,51157,51169,51174,51179,51183,51188,51204,51212,51216,51228,51233,51246,51260,51264,51278,51290,51299,51304,51308],{"__ignoreMap":30},[34,51005,51006,51008,51011,51014,51016,51019],{"class":36,"line":37},[34,51007,49400],{"class":580},[34,51009,51010],{"class":47}," dijkstra_safe",[34,51012,51013],{"class":181},"(graph, source, target",[34,51015,1301],{"class":580},[34,51017,51018],{"class":50},"None",[34,51020,51021],{"class":181},"):\n",[34,51023,51024],{"class":36,"line":44},[34,51025,51026],{"class":40},"    # Check if source exists\n",[34,51028,51029,51031,51033,51036,51038],{"class":36,"line":58},[34,51030,2902],{"class":580},[34,51032,49413],{"class":181},[34,51034,51035],{"class":580},"not",[34,51037,36375],{"class":580},[34,51039,51040],{"class":181}," graph:\n",[34,51042,51043,51046,51049,51051,51053,51056,51058,51061,51063,51066],{"class":36,"line":65},[34,51044,51045],{"class":580},"        raise",[34,51047,51048],{"class":50}," ValueError",[34,51050,1607],{"class":181},[34,51052,32918],{"class":580},[34,51054,51055],{"class":54},"\"Source node '",[34,51057,13990],{"class":50},[34,51059,51060],{"class":181},"source",[34,51062,34378],{"class":50},[34,51064,51065],{"class":54},"' not in graph\"",[34,51067,3372],{"class":181},[34,51069,51070],{"class":36,"line":71},[34,51071,3666],{"class":181},[34,51073,51074,51077,51079,51082,51084,51086,51088,51090,51092,51095,51097],{"class":36,"line":77},[34,51075,51076],{"class":181},"    distances ",[34,51078,1301],{"class":580},[34,51080,51081],{"class":181}," {node: ",[34,51083,25079],{"class":50},[34,51085,1607],{"class":181},[34,51087,49534],{"class":54},[34,51089,4817],{"class":181},[34,51091,10246],{"class":580},[34,51093,51094],{"class":181}," node ",[34,51096,10252],{"class":580},[34,51098,51099],{"class":181}," graph}\n",[34,51101,51102,51104,51106],{"class":36,"line":82},[34,51103,50151],{"class":181},[34,51105,1301],{"class":580},[34,51107,36394],{"class":50},[34,51109,51110,51113,51115,51117,51119],{"class":36,"line":88},[34,51111,51112],{"class":181},"    pq ",[34,51114,1301],{"class":580},[34,51116,49474],{"class":181},[34,51118,2773],{"class":50},[34,51120,49479],{"class":181},[34,51122,51123,51126,51128,51130],{"class":36,"line":242},[34,51124,51125],{"class":181},"    visited ",[34,51127,1301],{"class":580},[34,51129,9481],{"class":50},[34,51131,33899],{"class":181},[34,51133,51134],{"class":36,"line":250},[34,51135,3666],{"class":181},[34,51137,51138,51140],{"class":36,"line":263},[34,51139,8098],{"class":580},[34,51141,51142],{"class":181}," pq:\n",[34,51144,51145,51148,51150],{"class":36,"line":275},[34,51146,51147],{"class":181},"        current_dist, current ",[34,51149,1301],{"class":580},[34,51151,51152],{"class":181}," heapq.heappop(pq)\n",[34,51154,51155],{"class":36,"line":700},[34,51156,49744],{"class":181},[34,51158,51159,51161,51164,51166],{"class":36,"line":706},[34,51160,49573],{"class":580},[34,51162,51163],{"class":181}," current ",[34,51165,10252],{"class":580},[34,51167,51168],{"class":181}," visited:\n",[34,51170,51171],{"class":36,"line":715},[34,51172,51173],{"class":580},"            continue\n",[34,51175,51176],{"class":36,"line":725},[34,51177,51178],{"class":181},"        visited.add(current)\n",[34,51180,51181],{"class":36,"line":734},[34,51182,49744],{"class":181},[34,51184,51185],{"class":36,"line":742},[34,51186,51187],{"class":40},"        # Early termination if target is reached\n",[34,51189,51190,51192,51195,51198,51200,51202],{"class":36,"line":748},[34,51191,49573],{"class":580},[34,51193,51194],{"class":181}," target ",[34,51196,51197],{"class":580},"and",[34,51199,51163],{"class":181},[34,51201,18168],{"class":580},[34,51203,49418],{"class":181},[34,51205,51206,51209],{"class":36,"line":754},[34,51207,51208],{"class":580},"            return",[34,51210,51211],{"class":181}," distances[target]\n",[34,51213,51214],{"class":36,"line":759},[34,51215,49744],{"class":181},[34,51217,51218,51220,51223,51225],{"class":36,"line":771},[34,51219,50247],{"class":580},[34,51221,51222],{"class":181}," neighbor, weight ",[34,51224,10252],{"class":580},[34,51226,51227],{"class":181}," graph[current].items():\n",[34,51229,51230],{"class":36,"line":794},[34,51231,51232],{"class":40},"            # Check for negative weights\n",[34,51234,51235,51237,51240,51242,51244],{"class":36,"line":824},[34,51236,49591],{"class":580},[34,51238,51239],{"class":181}," weight ",[34,51241,815],{"class":580},[34,51243,8070],{"class":50},[34,51245,193],{"class":181},[34,51247,51248,51251,51253,51255,51258],{"class":36,"line":830},[34,51249,51250],{"class":580},"                raise",[34,51252,51048],{"class":50},[34,51254,1607],{"class":181},[34,51256,51257],{"class":54},"\"Negative weights not supported\"",[34,51259,3372],{"class":181},[34,51261,51262],{"class":36,"line":839},[34,51263,49614],{"class":181},[34,51265,51266,51269,51271,51274,51276],{"class":36,"line":854},[34,51267,51268],{"class":181},"            distance ",[34,51270,1301],{"class":580},[34,51272,51273],{"class":181}," current_dist ",[34,51275,2940],{"class":580},[34,51277,50960],{"class":181},[34,51279,51280,51282,51285,51287],{"class":36,"line":860},[34,51281,49591],{"class":580},[34,51283,51284],{"class":181}," distance ",[34,51286,815],{"class":580},[34,51288,51289],{"class":181}," distances[neighbor]:\n",[34,51291,51292,51294,51296],{"class":36,"line":865},[34,51293,50294],{"class":181},[34,51295,1301],{"class":580},[34,51297,51298],{"class":181}," distance\n",[34,51300,51301],{"class":36,"line":870},[34,51302,51303],{"class":181},"                heapq.heappush(pq, (distance, neighbor))\n",[34,51305,51306],{"class":36,"line":876},[34,51307,3666],{"class":181},[34,51309,51310,51312],{"class":36,"line":885},[34,51311,1564],{"class":580},[34,51313,51314],{"class":181}," distances\n",[388,51316,51317],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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);}",{"title":30,"searchDepth":44,"depth":44,"links":51319},[51320],{"id":50998,"depth":44,"text":50993},"Handling Edge Cases in Dijkstra's Algorithm.",{},"/dijkstra/handling-edge-cases",{"title":50993,"description":51321},"dijkstra/handling-edge-cases",[49919,49921,49922,49923,49924],"pBpzH4n0hh6BGsRbEQqr5eFiqOz25uqjJjUHBavUQoQ",{"id":51329,"title":45382,"body":51330,"date":402,"description":51343,"extension":404,"meta":51344,"navigation":61,"order":58,"path":51345,"seo":51346,"stem":51347,"subject":49919,"tags":51348,"__hash__":51349},"topics/dijkstra/how-it-works.md",{"type":8,"value":51331,"toc":51340},[51332,51334],[11,51333,45382],{"id":45381},[25,51335,51338],{"className":51336,"code":51337,"language":780,"meta":30},[13703],"1. Initialize distances: source = 0, all others = infinity\n2. Create a priority queue and add the source node\n3. While the queue is not empty:\n   a. Extract the node with the minimum distance\n   b. For each neighbor of the current node:\n      - Calculate the tentative distance through current node\n      - If it's less than the known distance, update it\n      - Add the neighbor to the queue\n4. Return the shortest distances to all nodes\n\nNote: Dijkstra's algorithm only works with non-negative edge weights\n",[20,51339,51337],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":51341},[51342],{"id":45381,"depth":44,"text":45382},"How It Works in Dijkstra's Algorithm.",{},"/dijkstra/how-it-works",{"title":45382,"description":51343},"dijkstra/how-it-works",[49919,49921,49922,49923,49924],"MqgyxA_gAIVB3fCgFJnRdcuiqSLtim0DZc8vOSkO8Jw",{"id":51351,"title":51352,"body":51353,"date":402,"description":51367,"extension":404,"meta":51368,"navigation":61,"order":44,"path":51369,"seo":51370,"stem":51371,"subject":49919,"tags":51372,"__hash__":51373},"topics/dijkstra/interactive-visualizer.md","Interactive Visualizer",{"type":8,"value":51354,"toc":51364},[51355,51358,51361],[11,51356,51352],{"id":51357},"interactive-visualizer",[16,51359,51360],{},"Try out Dijkstra's algorithm with this interactive visualizer. Select a source and target node, then click \"Run\" to see the algorithm in action.",[51362,51363],"dijkstra-visualizer",{},{"title":30,"searchDepth":44,"depth":44,"links":51365},[51366],{"id":51357,"depth":44,"text":51352},"Interactive Visualizer in Dijkstra's Algorithm.",{},"/dijkstra/interactive-visualizer",{"title":51352,"description":51367},"dijkstra/interactive-visualizer",[49919,49921,49922,49923,49924],"Taqn2OgyCCIUVznG7NLNMLnwb4NpTI5FZtY71WVUj1I",{"id":51375,"title":51376,"body":51377,"date":402,"description":51985,"extension":404,"meta":51986,"navigation":61,"order":82,"path":51987,"seo":51988,"stem":51989,"subject":49919,"tags":51990,"__hash__":51991},"topics/dijkstra/java-implementation.md","Java Implementation",{"type":8,"value":51378,"toc":51982},[51379,51382,51979],[11,51380,51376],{"id":51381},"java-implementation",[25,51383,51387],{"className":51384,"code":51385,"language":51386,"meta":30,"style":30},"language-java shiki shiki-themes github-light github-dark","import java.util.*;\n\npublic class Dijkstra {\n    public static Map\u003CString, Integer> dijkstra(\n            Map\u003CString, Map\u003CString, Integer>> graph, String source) {\n        \n        Map\u003CString, Integer> distances = new HashMap\u003C>();\n        Map\u003CString, String> previous = new HashMap\u003C>();\n        PriorityQueue\u003Cint[]> pq = new PriorityQueue\u003C>(\n            Comparator.comparingInt(a -> a[0])\n        );\n        Set\u003CString> visited = new HashSet\u003C>();\n        \n        // Initialize distances\n        for (String node : graph.keySet()) {\n            distances.put(node, Integer.MAX_VALUE);\n        }\n        distances.put(source, 0);\n        pq.offer(new int[]{0, source.hashCode()});\n        \n        // Map for quick lookup\n        Map\u003CInteger, String> hashToNode = new HashMap\u003C>();\n        for (String node : graph.keySet()) {\n            hashToNode.put(node.hashCode(), node);\n        }\n        \n        while (!pq.isEmpty()) {\n            int[] curr = pq.poll();\n            String current = hashToNode.get(curr[1]);\n            \n            if (visited.contains(current)) continue;\n            visited.add(current);\n            \n            for (Map.Entry\u003CString, Integer> entry : \n                    graph.get(current).entrySet()) {\n                String neighbor = entry.getKey();\n                int weight = entry.getValue();\n                int distance = distances.get(current) + weight;\n                \n                if (distance \u003C distances.get(neighbor)) {\n                    distances.put(neighbor, distance);\n                    previous.put(neighbor, current);\n                    pq.offer(new int[]{distance, neighbor.hashCode()});\n                }\n            }\n        }\n        \n        return distances;\n    }\n}\n","java",[20,51388,51389,51400,51404,51415,51439,51467,51471,51492,51511,51528,51548,51553,51570,51574,51579,51595,51606,51610,51624,51651,51655,51660,51679,51693,51708,51712,51716,51732,51748,51767,51771,51788,51798,51802,51822,51837,51852,51868,51888,51893,51909,51919,51929,51949,51953,51957,51961,51965,51971,51975],{"__ignoreMap":30},[34,51390,51391,51393,51396,51398],{"class":36,"line":37},[34,51392,581],{"class":580},[34,51394,51395],{"class":181}," java.util.",[34,51397,4289],{"class":50},[34,51399,593],{"class":181},[34,51401,51402],{"class":36,"line":44},[34,51403,62],{"emptyLinePlaceholder":61},[34,51405,51406,51408,51410,51413],{"class":36,"line":58},[34,51407,31583],{"class":580},[34,51409,655],{"class":580},[34,51411,51412],{"class":47}," Dijkstra",[34,51414,661],{"class":181},[34,51416,51417,51419,51422,51425,51428,51430,51433,51435,51437],{"class":36,"line":65},[34,51418,34159],{"class":580},[34,51420,51421],{"class":580}," static",[34,51423,51424],{"class":181}," Map\u003C",[34,51426,51427],{"class":580},"String",[34,51429,1798],{"class":181},[34,51431,51432],{"class":580},"Integer",[34,51434,32840],{"class":181},[34,51436,49919],{"class":47},[34,51438,1882],{"class":181},[34,51440,51441,51444,51446,51449,51451,51453,51455,51458,51460,51463,51465],{"class":36,"line":71},[34,51442,51443],{"class":181},"            Map\u003C",[34,51445,51427],{"class":580},[34,51447,51448],{"class":181},", Map\u003C",[34,51450,51427],{"class":580},[34,51452,1798],{"class":181},[34,51454,51432],{"class":580},[34,51456,51457],{"class":181},">> ",[34,51459,49921],{"class":675},[34,51461,51462],{"class":181},", String ",[34,51464,51060],{"class":675},[34,51466,2416],{"class":181},[34,51468,51469],{"class":36,"line":77},[34,51470,49744],{"class":181},[34,51472,51473,51476,51478,51480,51482,51485,51487,51489],{"class":36,"line":82},[34,51474,51475],{"class":181},"        Map\u003C",[34,51477,51427],{"class":580},[34,51479,1798],{"class":181},[34,51481,51432],{"class":580},[34,51483,51484],{"class":181},"> distances ",[34,51486,1301],{"class":580},[34,51488,809],{"class":580},[34,51490,51491],{"class":181}," HashMap\u003C>();\n",[34,51493,51494,51496,51498,51500,51502,51505,51507,51509],{"class":36,"line":88},[34,51495,51475],{"class":181},[34,51497,51427],{"class":580},[34,51499,1798],{"class":181},[34,51501,51427],{"class":580},[34,51503,51504],{"class":181},"> previous ",[34,51506,1301],{"class":580},[34,51508,809],{"class":580},[34,51510,51491],{"class":181},[34,51512,51513,51516,51518,51521,51523,51525],{"class":36,"line":242},[34,51514,51515],{"class":181},"        PriorityQueue\u003C",[34,51517,17772],{"class":580},[34,51519,51520],{"class":181},"[]> pq ",[34,51522,1301],{"class":580},[34,51524,809],{"class":580},[34,51526,51527],{"class":181}," PriorityQueue\u003C>(\n",[34,51529,51530,51533,51536,51538,51540,51543,51545],{"class":36,"line":250},[34,51531,51532],{"class":181},"            Comparator.",[34,51534,51535],{"class":47},"comparingInt",[34,51537,22935],{"class":181},[34,51539,24863],{"class":580},[34,51541,51542],{"class":181}," a[",[34,51544,2773],{"class":50},[34,51546,51547],{"class":181},"])\n",[34,51549,51550],{"class":36,"line":263},[34,51551,51552],{"class":181},"        );\n",[34,51554,51555,51558,51560,51563,51565,51567],{"class":36,"line":275},[34,51556,51557],{"class":181},"        Set\u003C",[34,51559,51427],{"class":580},[34,51561,51562],{"class":181},"> visited ",[34,51564,1301],{"class":580},[34,51566,809],{"class":580},[34,51568,51569],{"class":181}," HashSet\u003C>();\n",[34,51571,51572],{"class":36,"line":700},[34,51573,49744],{"class":181},[34,51575,51576],{"class":36,"line":706},[34,51577,51578],{"class":40},"        // Initialize distances\n",[34,51580,51581,51583,51586,51588,51590,51593],{"class":36,"line":715},[34,51582,50247],{"class":580},[34,51584,51585],{"class":181}," (String node ",[34,51587,165],{"class":580},[34,51589,50056],{"class":181},[34,51591,51592],{"class":47},"keySet",[34,51594,31037],{"class":181},[34,51596,51597,51600,51603],{"class":36,"line":725},[34,51598,51599],{"class":181},"            distances.",[34,51601,51602],{"class":47},"put",[34,51604,51605],{"class":181},"(node, Integer.MAX_VALUE);\n",[34,51607,51608],{"class":36,"line":734},[34,51609,26208],{"class":181},[34,51611,51612,51615,51617,51620,51622],{"class":36,"line":742},[34,51613,51614],{"class":181},"        distances.",[34,51616,51602],{"class":47},[34,51618,51619],{"class":181},"(source, ",[34,51621,2773],{"class":50},[34,51623,1586],{"class":181},[34,51625,51626,51628,51631,51633,51635,51637,51640,51642,51645,51648],{"class":36,"line":748},[34,51627,50213],{"class":181},[34,51629,51630],{"class":47},"offer",[34,51632,1607],{"class":181},[34,51634,3143],{"class":580},[34,51636,25160],{"class":580},[34,51638,51639],{"class":181},"[]{",[34,51641,2773],{"class":50},[34,51643,51644],{"class":181},", source.",[34,51646,51647],{"class":47},"hashCode",[34,51649,51650],{"class":181},"()});\n",[34,51652,51653],{"class":36,"line":754},[34,51654,49744],{"class":181},[34,51656,51657],{"class":36,"line":759},[34,51658,51659],{"class":40},"        // Map for quick lookup\n",[34,51661,51662,51664,51666,51668,51670,51673,51675,51677],{"class":36,"line":771},[34,51663,51475],{"class":181},[34,51665,51432],{"class":580},[34,51667,1798],{"class":181},[34,51669,51427],{"class":580},[34,51671,51672],{"class":181},"> hashToNode ",[34,51674,1301],{"class":580},[34,51676,809],{"class":580},[34,51678,51491],{"class":181},[34,51680,51681,51683,51685,51687,51689,51691],{"class":36,"line":794},[34,51682,50247],{"class":580},[34,51684,51585],{"class":181},[34,51686,165],{"class":580},[34,51688,50056],{"class":181},[34,51690,51592],{"class":47},[34,51692,31037],{"class":181},[34,51694,51695,51698,51700,51703,51705],{"class":36,"line":824},[34,51696,51697],{"class":181},"            hashToNode.",[34,51699,51602],{"class":47},[34,51701,51702],{"class":181},"(node.",[34,51704,51647],{"class":47},[34,51706,51707],{"class":181},"(), node);\n",[34,51709,51710],{"class":36,"line":830},[34,51711,26208],{"class":181},[34,51713,51714],{"class":36,"line":839},[34,51715,49744],{"class":181},[34,51717,51718,51721,51723,51725,51727,51730],{"class":36,"line":854},[34,51719,51720],{"class":580},"        while",[34,51722,3204],{"class":181},[34,51724,10307],{"class":580},[34,51726,50187],{"class":181},[34,51728,51729],{"class":47},"isEmpty",[34,51731,31037],{"class":181},[34,51733,51734,51736,51739,51741,51743,51746],{"class":36,"line":860},[34,51735,50260],{"class":580},[34,51737,51738],{"class":181},"[] curr ",[34,51740,1301],{"class":580},[34,51742,50204],{"class":181},[34,51744,51745],{"class":47},"poll",[34,51747,851],{"class":181},[34,51749,51750,51753,51755,51758,51760,51763,51765],{"class":36,"line":865},[34,51751,51752],{"class":181},"            String current ",[34,51754,1301],{"class":580},[34,51756,51757],{"class":181}," hashToNode.",[34,51759,1573],{"class":47},[34,51761,51762],{"class":181},"(curr[",[34,51764,8318],{"class":50},[34,51766,3599],{"class":181},[34,51768,51769],{"class":36,"line":870},[34,51770,49614],{"class":181},[34,51772,51773,51775,51778,51781,51784,51786],{"class":36,"line":876},[34,51774,49591],{"class":580},[34,51776,51777],{"class":181}," (visited.",[34,51779,51780],{"class":47},"contains",[34,51782,51783],{"class":181},"(current)) ",[34,51785,19313],{"class":580},[34,51787,593],{"class":181},[34,51789,51790,51793,51795],{"class":36,"line":885},[34,51791,51792],{"class":181},"            visited.",[34,51794,11093],{"class":47},[34,51796,51797],{"class":181},"(current);\n",[34,51799,51800],{"class":36,"line":895},[34,51801,49614],{"class":181},[34,51803,51804,51806,51809,51811,51813,51815,51818,51820],{"class":36,"line":904},[34,51805,49682],{"class":580},[34,51807,51808],{"class":181}," (Map.Entry\u003C",[34,51810,51427],{"class":580},[34,51812,1798],{"class":181},[34,51814,51432],{"class":580},[34,51816,51817],{"class":181},"> entry ",[34,51819,165],{"class":580},[34,51821,526],{"class":181},[34,51823,51824,51827,51829,51832,51835],{"class":36,"line":915},[34,51825,51826],{"class":181},"                    graph.",[34,51828,1573],{"class":47},[34,51830,51831],{"class":181},"(current).",[34,51833,51834],{"class":47},"entrySet",[34,51836,31037],{"class":181},[34,51838,51839,51842,51844,51847,51850],{"class":36,"line":927},[34,51840,51841],{"class":181},"                String neighbor ",[34,51843,1301],{"class":580},[34,51845,51846],{"class":181}," entry.",[34,51848,51849],{"class":47},"getKey",[34,51851,851],{"class":181},[34,51853,51854,51857,51859,51861,51863,51866],{"class":36,"line":932},[34,51855,51856],{"class":580},"                int",[34,51858,51239],{"class":181},[34,51860,1301],{"class":580},[34,51862,51846],{"class":181},[34,51864,51865],{"class":47},"getValue",[34,51867,851],{"class":181},[34,51869,51870,51872,51874,51876,51879,51881,51884,51886],{"class":36,"line":944},[34,51871,51856],{"class":580},[34,51873,51284],{"class":181},[34,51875,1301],{"class":580},[34,51877,51878],{"class":181}," distances.",[34,51880,1573],{"class":47},[34,51882,51883],{"class":181},"(current) ",[34,51885,2940],{"class":580},[34,51887,50273],{"class":181},[34,51889,51890],{"class":36,"line":966},[34,51891,51892],{"class":181},"                \n",[34,51894,51895,51897,51900,51902,51904,51906],{"class":36,"line":1948},[34,51896,49645],{"class":580},[34,51898,51899],{"class":181}," (distance ",[34,51901,815],{"class":580},[34,51903,51878],{"class":181},[34,51905,1573],{"class":47},[34,51907,51908],{"class":181},"(neighbor)) {\n",[34,51910,51911,51914,51916],{"class":36,"line":1953},[34,51912,51913],{"class":181},"                    distances.",[34,51915,51602],{"class":47},[34,51917,51918],{"class":181},"(neighbor, distance);\n",[34,51920,51921,51924,51926],{"class":36,"line":3616},[34,51922,51923],{"class":181},"                    previous.",[34,51925,51602],{"class":47},[34,51927,51928],{"class":181},"(neighbor, current);\n",[34,51930,51931,51934,51936,51938,51940,51942,51945,51947],{"class":36,"line":3622},[34,51932,51933],{"class":181},"                    pq.",[34,51935,51630],{"class":47},[34,51937,1607],{"class":181},[34,51939,3143],{"class":580},[34,51941,25160],{"class":580},[34,51943,51944],{"class":181},"[]{distance, neighbor.",[34,51946,51647],{"class":47},[34,51948,51650],{"class":181},[34,51950,51951],{"class":36,"line":3642},[34,51952,28146],{"class":181},[34,51954,51955],{"class":36,"line":3657},[34,51956,28156],{"class":181},[34,51958,51959],{"class":36,"line":3663},[34,51960,26208],{"class":181},[34,51962,51963],{"class":36,"line":3669},[34,51964,49744],{"class":181},[34,51966,51967,51969],{"class":36,"line":3675},[34,51968,13895],{"class":580},[34,51970,50342],{"class":181},[34,51972,51973],{"class":36,"line":3693},[34,51974,3229],{"class":181},[34,51976,51977],{"class":36,"line":3707},[34,51978,693],{"class":181},[388,51980,51981],{},"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 .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}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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":30,"searchDepth":44,"depth":44,"links":51983},[51984],{"id":51381,"depth":44,"text":51376},"Java Implementation in Dijkstra's Algorithm.",{},"/dijkstra/java-implementation",{"title":51376,"description":51985},"dijkstra/java-implementation",[49919,49921,49922,49923,49924],"OmGbCflkrlKiFGd3ZlQnl_O81mZlmKPxjE8rDg-4MI8",{"id":51993,"title":51994,"body":51995,"date":402,"description":52819,"extension":404,"meta":52820,"navigation":61,"order":71,"path":52821,"seo":52822,"stem":52823,"subject":49919,"tags":52824,"__hash__":52825},"topics/dijkstra/javascript-implementation.md","JavaScript Implementation",{"type":8,"value":51996,"toc":52816},[51997,52000,52814],[11,51998,51994],{"id":51999},"javascript-implementation",[25,52001,52003],{"className":13845,"code":52002,"language":8606,"meta":30,"style":30},"// Using a priority queue (min-heap)\nfunction dijkstra(graph, source) {\n  const distances = {};\n  const previous = {};\n  const pq = new MinPriorityQueue();\n  \n  // Initialize distances\n  for (const vertex in graph) {\n    distances[vertex] = Infinity;\n    previous[vertex] = null;\n  }\n  distances[source] = 0;\n  pq.enqueue(source, 0);\n  \n  while (!pq.isEmpty()) {\n    const { element: current } = pq.dequeue();\n    \n    for (const [neighbor, weight] of Object.entries(graph[current])) {\n      const distance = distances[current] + weight;\n      \n      if (distance \u003C distances[neighbor]) {\n        distances[neighbor] = distance;\n        previous[neighbor] = current;\n        pq.enqueue(neighbor, distance);\n      }\n    }\n  }\n  \n  return { distances, previous };\n}\n\n// Simple implementation without priority queue (O(V²))\nfunction dijkstraSimple(graph, source) {\n  const nodes = Object.keys(graph);\n  const distances = {};\n  const visited = new Set();\n  \n  nodes.forEach(node => distances[node] = Infinity);\n  distances[source] = 0;\n  \n  while (visited.size \u003C nodes.length) {\n    // Find unvisited node with minimum distance\n    let minNode = null;\n    let minDist = Infinity;\n    \n    for (const node of nodes) {\n      if (!visited.has(node) && distances[node] \u003C minDist) {\n        minDist = distances[node];\n        minNode = node;\n      }\n    }\n    \n    if (minNode === null) break;\n    visited.add(minNode);\n    \n    // Update distances to neighbors\n    for (const [neighbor, weight] of Object.entries(graph[minNode])) {\n      const newDist = distances[minNode] + weight;\n      if (newDist \u003C distances[neighbor]) {\n        distances[neighbor] = newDist;\n      }\n    }\n  }\n  \n  return distances;\n}\n\n// Usage\nconst graph = {\n  A: { B: 4, C: 2 },\n  B: { A: 4, C: 1, D: 5 },\n  C: { A: 2, B: 1, D: 8, E: 10 },\n  D: { B: 5, C: 8, E: 2 },\n  E: { C: 10, D: 2 }\n};\n\nconsole.log(dijkstra(graph, 'A'));\n",[20,52004,52005,52010,52026,52037,52047,52063,52067,52072,52089,52101,52112,52116,52127,52141,52145,52160,52185,52189,52221,52237,52241,52252,52262,52271,52279,52283,52287,52291,52295,52302,52306,52310,52315,52332,52349,52359,52375,52379,52401,52411,52415,52431,52436,52449,52462,52466,52482,52508,52518,52528,52532,52536,52540,52557,52567,52572,52578,52606,52623,52634,52643,52648,52653,52658,52663,52670,52675,52680,52685,52696,52711,52730,52754,52772,52787,52792,52797],{"__ignoreMap":30},[34,52006,52007],{"class":36,"line":37},[34,52008,52009],{"class":40},"// Using a priority queue (min-heap)\n",[34,52011,52012,52014,52016,52018,52020,52022,52024],{"class":36,"line":44},[34,52013,11044],{"class":580},[34,52015,50582],{"class":47},[34,52017,1607],{"class":181},[34,52019,49921],{"class":675},[34,52021,1798],{"class":181},[34,52023,51060],{"class":675},[34,52025,2416],{"class":181},[34,52027,52028,52030,52032,52034],{"class":36,"line":58},[34,52029,17415],{"class":580},[34,52031,50070],{"class":50},[34,52033,683],{"class":580},[34,52035,52036],{"class":181}," {};\n",[34,52038,52039,52041,52043,52045],{"class":36,"line":65},[34,52040,17415],{"class":580},[34,52042,50097],{"class":50},[34,52044,683],{"class":580},[34,52046,52036],{"class":181},[34,52048,52049,52051,52054,52056,52058,52061],{"class":36,"line":71},[34,52050,17415],{"class":580},[34,52052,52053],{"class":50}," pq",[34,52055,683],{"class":580},[34,52057,809],{"class":580},[34,52059,52060],{"class":47}," MinPriorityQueue",[34,52062,851],{"class":181},[34,52064,52065],{"class":36,"line":77},[34,52066,827],{"class":181},[34,52068,52069],{"class":36,"line":82},[34,52070,52071],{"class":40},"  // Initialize distances\n",[34,52073,52074,52077,52079,52081,52084,52086],{"class":36,"line":88},[34,52075,52076],{"class":580},"  for",[34,52078,3204],{"class":181},[34,52080,14676],{"class":580},[34,52082,52083],{"class":50}," vertex",[34,52085,36375],{"class":580},[34,52087,52088],{"class":181}," graph) {\n",[34,52090,52091,52094,52096,52099],{"class":36,"line":242},[34,52092,52093],{"class":181},"    distances[vertex] ",[34,52095,1301],{"class":580},[34,52097,52098],{"class":50}," Infinity",[34,52100,593],{"class":181},[34,52102,52103,52106,52108,52110],{"class":36,"line":250},[34,52104,52105],{"class":181},"    previous[vertex] ",[34,52107,1301],{"class":580},[34,52109,13898],{"class":50},[34,52111,593],{"class":181},[34,52113,52114],{"class":36,"line":263},[34,52115,857],{"class":181},[34,52117,52118,52121,52123,52125],{"class":36,"line":275},[34,52119,52120],{"class":181},"  distances[source] ",[34,52122,1301],{"class":580},[34,52124,8070],{"class":50},[34,52126,593],{"class":181},[34,52128,52129,52132,52135,52137,52139],{"class":36,"line":700},[34,52130,52131],{"class":181},"  pq.",[34,52133,52134],{"class":47},"enqueue",[34,52136,51619],{"class":181},[34,52138,2773],{"class":50},[34,52140,1586],{"class":181},[34,52142,52143],{"class":36,"line":706},[34,52144,827],{"class":181},[34,52146,52147,52150,52152,52154,52156,52158],{"class":36,"line":715},[34,52148,52149],{"class":580},"  while",[34,52151,3204],{"class":181},[34,52153,10307],{"class":580},[34,52155,50187],{"class":181},[34,52157,51729],{"class":47},[34,52159,31037],{"class":181},[34,52161,52162,52164,52166,52169,52171,52174,52176,52178,52180,52183],{"class":36,"line":725},[34,52163,1632],{"class":580},[34,52165,30251],{"class":181},[34,52167,52168],{"class":675},"element",[34,52170,182],{"class":181},[34,52172,52173],{"class":50},"current",[34,52175,34865],{"class":181},[34,52177,1301],{"class":580},[34,52179,50204],{"class":181},[34,52181,52182],{"class":47},"dequeue",[34,52184,851],{"class":181},[34,52186,52187],{"class":36,"line":734},[34,52188,3666],{"class":181},[34,52190,52191,52193,52195,52197,52199,52202,52204,52207,52209,52212,52215,52218],{"class":36,"line":742},[34,52192,18250],{"class":580},[34,52194,3204],{"class":181},[34,52196,14676],{"class":580},[34,52198,8315],{"class":181},[34,52200,52201],{"class":50},"neighbor",[34,52203,1798],{"class":181},[34,52205,52206],{"class":50},"weight",[34,52208,17799],{"class":181},[34,52210,52211],{"class":580},"of",[34,52213,52214],{"class":181}," Object.",[34,52216,52217],{"class":47},"entries",[34,52219,52220],{"class":181},"(graph[current])) {\n",[34,52222,52223,52226,52229,52231,52233,52235],{"class":36,"line":748},[34,52224,52225],{"class":580},"      const",[34,52227,52228],{"class":50}," distance",[34,52230,683],{"class":580},[34,52232,50268],{"class":181},[34,52234,2940],{"class":580},[34,52236,50273],{"class":181},[34,52238,52239],{"class":36,"line":754},[34,52240,3083],{"class":181},[34,52242,52243,52246,52248,52250],{"class":36,"line":759},[34,52244,52245],{"class":580},"      if",[34,52247,51899],{"class":181},[34,52249,815],{"class":580},[34,52251,50289],{"class":181},[34,52253,52254,52257,52259],{"class":36,"line":771},[34,52255,52256],{"class":181},"        distances[neighbor] ",[34,52258,1301],{"class":580},[34,52260,52261],{"class":181}," distance;\n",[34,52263,52264,52267,52269],{"class":36,"line":794},[34,52265,52266],{"class":181},"        previous[neighbor] ",[34,52268,1301],{"class":580},[34,52270,50309],{"class":181},[34,52272,52273,52275,52277],{"class":36,"line":824},[34,52274,50213],{"class":181},[34,52276,52134],{"class":47},[34,52278,51918],{"class":181},[34,52280,52281],{"class":36,"line":830},[34,52282,3078],{"class":181},[34,52284,52285],{"class":36,"line":839},[34,52286,3229],{"class":181},[34,52288,52289],{"class":36,"line":854},[34,52290,857],{"class":181},[34,52292,52293],{"class":36,"line":860},[34,52294,827],{"class":181},[34,52296,52297,52299],{"class":36,"line":865},[34,52298,8155],{"class":580},[34,52300,52301],{"class":181}," { distances, previous };\n",[34,52303,52304],{"class":36,"line":870},[34,52305,693],{"class":181},[34,52307,52308],{"class":36,"line":876},[34,52309,62],{"emptyLinePlaceholder":61},[34,52311,52312],{"class":36,"line":885},[34,52313,52314],{"class":40},"// Simple implementation without priority queue (O(V²))\n",[34,52316,52317,52319,52322,52324,52326,52328,52330],{"class":36,"line":895},[34,52318,11044],{"class":580},[34,52320,52321],{"class":47}," dijkstraSimple",[34,52323,1607],{"class":181},[34,52325,49921],{"class":675},[34,52327,1798],{"class":181},[34,52329,51060],{"class":675},[34,52331,2416],{"class":181},[34,52333,52334,52336,52339,52341,52343,52346],{"class":36,"line":904},[34,52335,17415],{"class":580},[34,52337,52338],{"class":50}," nodes",[34,52340,683],{"class":580},[34,52342,52214],{"class":181},[34,52344,52345],{"class":47},"keys",[34,52347,52348],{"class":181},"(graph);\n",[34,52350,52351,52353,52355,52357],{"class":36,"line":915},[34,52352,17415],{"class":580},[34,52354,50070],{"class":50},[34,52356,683],{"class":580},[34,52358,52036],{"class":181},[34,52360,52361,52363,52366,52368,52370,52373],{"class":36,"line":927},[34,52362,17415],{"class":580},[34,52364,52365],{"class":50}," visited",[34,52367,683],{"class":580},[34,52369,809],{"class":580},[34,52371,52372],{"class":47}," Set",[34,52374,851],{"class":181},[34,52376,52377],{"class":36,"line":932},[34,52378,827],{"class":181},[34,52380,52381,52384,52386,52388,52390,52392,52395,52397,52399],{"class":36,"line":944},[34,52382,52383],{"class":181},"  nodes.",[34,52385,4930],{"class":47},[34,52387,1607],{"class":181},[34,52389,16004],{"class":675},[34,52391,1895],{"class":580},[34,52393,52394],{"class":181}," distances[node] ",[34,52396,1301],{"class":580},[34,52398,52098],{"class":50},[34,52400,1586],{"class":181},[34,52402,52403,52405,52407,52409],{"class":36,"line":966},[34,52404,52120],{"class":181},[34,52406,1301],{"class":580},[34,52408,8070],{"class":50},[34,52410,593],{"class":181},[34,52412,52413],{"class":36,"line":1948},[34,52414,827],{"class":181},[34,52416,52417,52419,52422,52424,52427,52429],{"class":36,"line":1953},[34,52418,52149],{"class":580},[34,52420,52421],{"class":181}," (visited.size ",[34,52423,815],{"class":580},[34,52425,52426],{"class":181}," nodes.",[34,52428,2908],{"class":50},[34,52430,2416],{"class":181},[34,52432,52433],{"class":36,"line":3616},[34,52434,52435],{"class":40},"    // Find unvisited node with minimum distance\n",[34,52437,52438,52440,52443,52445,52447],{"class":36,"line":3622},[34,52439,13909],{"class":580},[34,52441,52442],{"class":181}," minNode ",[34,52444,1301],{"class":580},[34,52446,13898],{"class":50},[34,52448,593],{"class":181},[34,52450,52451,52453,52456,52458,52460],{"class":36,"line":3642},[34,52452,13909],{"class":580},[34,52454,52455],{"class":181}," minDist ",[34,52457,1301],{"class":580},[34,52459,52098],{"class":50},[34,52461,593],{"class":181},[34,52463,52464],{"class":36,"line":3657},[34,52465,3666],{"class":181},[34,52467,52468,52470,52472,52474,52477,52479],{"class":36,"line":3663},[34,52469,18250],{"class":580},[34,52471,3204],{"class":181},[34,52473,14676],{"class":580},[34,52475,52476],{"class":50}," node",[34,52478,14917],{"class":580},[34,52480,52481],{"class":181}," nodes) {\n",[34,52483,52484,52486,52488,52490,52493,52496,52499,52501,52503,52505],{"class":36,"line":3669},[34,52485,52245],{"class":580},[34,52487,3204],{"class":181},[34,52489,10307],{"class":580},[34,52491,52492],{"class":181},"visited.",[34,52494,52495],{"class":47},"has",[34,52497,52498],{"class":181},"(node) ",[34,52500,22938],{"class":580},[34,52502,52394],{"class":181},[34,52504,815],{"class":580},[34,52506,52507],{"class":181}," minDist) {\n",[34,52509,52510,52513,52515],{"class":36,"line":3675},[34,52511,52512],{"class":181},"        minDist ",[34,52514,1301],{"class":580},[34,52516,52517],{"class":181}," distances[node];\n",[34,52519,52520,52523,52525],{"class":36,"line":3693},[34,52521,52522],{"class":181},"        minNode ",[34,52524,1301],{"class":580},[34,52526,52527],{"class":181}," node;\n",[34,52529,52530],{"class":36,"line":3707},[34,52531,3078],{"class":181},[34,52533,52534],{"class":36,"line":3712},[34,52535,3229],{"class":181},[34,52537,52538],{"class":36,"line":3717},[34,52539,3666],{"class":181},[34,52541,52542,52544,52547,52549,52551,52553,52555],{"class":36,"line":25776},[34,52543,2902],{"class":580},[34,52545,52546],{"class":181}," (minNode ",[34,52548,15543],{"class":580},[34,52550,13898],{"class":50},[34,52552,4817],{"class":181},[34,52554,19289],{"class":580},[34,52556,593],{"class":181},[34,52558,52559,52562,52564],{"class":36,"line":49902},[34,52560,52561],{"class":181},"    visited.",[34,52563,11093],{"class":47},[34,52565,52566],{"class":181},"(minNode);\n",[34,52568,52570],{"class":36,"line":52569},55,[34,52571,3666],{"class":181},[34,52573,52575],{"class":36,"line":52574},56,[34,52576,52577],{"class":40},"    // Update distances to neighbors\n",[34,52579,52581,52583,52585,52587,52589,52591,52593,52595,52597,52599,52601,52603],{"class":36,"line":52580},57,[34,52582,18250],{"class":580},[34,52584,3204],{"class":181},[34,52586,14676],{"class":580},[34,52588,8315],{"class":181},[34,52590,52201],{"class":50},[34,52592,1798],{"class":181},[34,52594,52206],{"class":50},[34,52596,17799],{"class":181},[34,52598,52211],{"class":580},[34,52600,52214],{"class":181},[34,52602,52217],{"class":47},[34,52604,52605],{"class":181},"(graph[minNode])) {\n",[34,52607,52609,52611,52614,52616,52619,52621],{"class":36,"line":52608},58,[34,52610,52225],{"class":580},[34,52612,52613],{"class":50}," newDist",[34,52615,683],{"class":580},[34,52617,52618],{"class":181}," distances[minNode] ",[34,52620,2940],{"class":580},[34,52622,50273],{"class":181},[34,52624,52626,52628,52630,52632],{"class":36,"line":52625},59,[34,52627,52245],{"class":580},[34,52629,50284],{"class":181},[34,52631,815],{"class":580},[34,52633,50289],{"class":181},[34,52635,52637,52639,52641],{"class":36,"line":52636},60,[34,52638,52256],{"class":181},[34,52640,1301],{"class":580},[34,52642,50299],{"class":181},[34,52644,52646],{"class":36,"line":52645},61,[34,52647,3078],{"class":181},[34,52649,52651],{"class":36,"line":52650},62,[34,52652,3229],{"class":181},[34,52654,52656],{"class":36,"line":52655},63,[34,52657,857],{"class":181},[34,52659,52661],{"class":36,"line":52660},64,[34,52662,827],{"class":181},[34,52664,52666,52668],{"class":36,"line":52665},65,[34,52667,8155],{"class":580},[34,52669,50342],{"class":181},[34,52671,52673],{"class":36,"line":52672},66,[34,52674,693],{"class":181},[34,52676,52678],{"class":36,"line":52677},67,[34,52679,62],{"emptyLinePlaceholder":61},[34,52681,52683],{"class":36,"line":52682},68,[34,52684,1113],{"class":40},[34,52686,52688,52690,52692,52694],{"class":36,"line":52687},69,[34,52689,14676],{"class":580},[34,52691,50037],{"class":50},[34,52693,683],{"class":580},[34,52695,661],{"class":181},[34,52697,52699,52702,52704,52707,52709],{"class":36,"line":52698},70,[34,52700,52701],{"class":181},"  A: { B: ",[34,52703,18010],{"class":50},[34,52705,52706],{"class":181},", C: ",[34,52708,8324],{"class":50},[34,52710,14846],{"class":181},[34,52712,52714,52717,52719,52721,52723,52726,52728],{"class":36,"line":52713},71,[34,52715,52716],{"class":181},"  B: { A: ",[34,52718,18010],{"class":50},[34,52720,52706],{"class":181},[34,52722,8318],{"class":50},[34,52724,52725],{"class":181},", D: ",[34,52727,2778],{"class":50},[34,52729,14846],{"class":181},[34,52731,52733,52736,52738,52741,52743,52745,52747,52750,52752],{"class":36,"line":52732},72,[34,52734,52735],{"class":181},"  C: { A: ",[34,52737,8324],{"class":50},[34,52739,52740],{"class":181},", B: ",[34,52742,8318],{"class":50},[34,52744,52725],{"class":181},[34,52746,18033],{"class":50},[34,52748,52749],{"class":181},", E: ",[34,52751,11923],{"class":50},[34,52753,14846],{"class":181},[34,52755,52757,52760,52762,52764,52766,52768,52770],{"class":36,"line":52756},73,[34,52758,52759],{"class":181},"  D: { B: ",[34,52761,2778],{"class":50},[34,52763,52706],{"class":181},[34,52765,18033],{"class":50},[34,52767,52749],{"class":181},[34,52769,8324],{"class":50},[34,52771,14846],{"class":181},[34,52773,52775,52778,52780,52782,52784],{"class":36,"line":52774},74,[34,52776,52777],{"class":181},"  E: { C: ",[34,52779,11923],{"class":50},[34,52781,52725],{"class":181},[34,52783,8324],{"class":50},[34,52785,52786],{"class":181}," }\n",[34,52788,52790],{"class":36,"line":52789},75,[34,52791,17632],{"class":181},[34,52793,52795],{"class":36,"line":52794},76,[34,52796,62],{"emptyLinePlaceholder":61},[34,52798,52800,52802,52804,52806,52808,52810,52812],{"class":36,"line":52799},77,[34,52801,15183],{"class":181},[34,52803,2424],{"class":47},[34,52805,1607],{"class":181},[34,52807,49919],{"class":47},[34,52809,50585],{"class":181},[34,52811,21516],{"class":54},[34,52813,15223],{"class":181},[388,52815,17665],{},{"title":30,"searchDepth":44,"depth":44,"links":52817},[52818],{"id":51999,"depth":44,"text":51994},"JavaScript Implementation in Dijkstra's Algorithm.",{},"/dijkstra/javascript-implementation",{"title":51994,"description":52819},"dijkstra/javascript-implementation",[49919,49921,49922,49923,49924],"xbkL_UOuOZSi4YB9aTvpXymtBAY8ye2YyjQL6DyjhNE",{"id":52827,"title":52828,"body":52829,"date":2633,"description":52887,"extension":404,"meta":52888,"navigation":61,"order":37,"path":52889,"seo":52890,"stem":52891,"subject":49919,"tags":52892,"__hash__":52893},"topics/dijkstra/overview.md","Dijkstra's Algorithm",{"type":8,"value":52830,"toc":52885},[52831],[309,52832,52833,52837,52841,52847,52851,52857,52861,52865,52869,52873,52877,52881],{},[312,52834,52835],{},[145,52836,51352],{"href":51369},[312,52838,52839],{},[145,52840,45382],{"href":51345},[312,52842,52843],{},[145,52844,52846],{"href":52845},"/dijkstra/time-space-complexity","Time & Space Complexity",[312,52848,52849],{},[145,52850,51994],{"href":52821},[312,52852,52853],{},[145,52854,52856],{"href":52855},"/dijkstra/python-implementation","Python Implementation",[312,52858,52859],{},[145,52860,51376],{"href":51987},[312,52862,52863],{},[145,52864,49928],{"href":50610},[312,52866,52867],{},[145,52868,50665],{"href":50986},[312,52870,52871],{},[145,52872,50993],{"href":51323},[312,52874,52875],{},[145,52876,49378],{"href":49916},[312,52878,52879],{},[145,52880,50641],{"href":50658},[312,52882,52883],{},[145,52884,50617],{"href":50634},{"title":30,"searchDepth":44,"depth":44,"links":52886},[],"Dijkstra's shortest path algorithm implementations, time complexity, and use cases for graph traversal.",{},"/dijkstra/overview",{"title":52828,"description":52887},"dijkstra/overview",[49919,49921,49922,49923,49924],"av-gA6kmGP-G15XWCkuyjbbMraXg-sdC302MDf9rSJg",{"id":52895,"title":52856,"body":52896,"date":402,"description":53468,"extension":404,"meta":53469,"navigation":61,"order":77,"path":52855,"seo":53470,"stem":53471,"subject":49919,"tags":53472,"__hash__":53473},"topics/dijkstra/python-implementation.md",{"type":8,"value":52897,"toc":53465},[52898,52901,53462],[11,52899,52856],{"id":52900},"python-implementation",[25,52902,52904],{"className":49386,"code":52903,"language":49388,"meta":30,"style":30},"import heapq\nfrom collections import defaultdict\n\ndef dijkstra(graph, source):\n    # Initialize distances\n    distances = {node: float('inf') for node in graph}\n    distances[source] = 0\n    previous = {node: None for node in graph}\n    \n    # Priority queue: (distance, node)\n    pq = [(0, source)]\n    visited = set()\n    \n    while pq:\n        current_dist, current = heapq.heappop(pq)\n        \n        if current in visited:\n            continue\n        visited.add(current)\n        \n        for neighbor, weight in graph[current].items():\n            distance = current_dist + weight\n            \n            if distance \u003C distances[neighbor]:\n                distances[neighbor] = distance\n                previous[neighbor] = current\n                heapq.heappush(pq, (distance, neighbor))\n    \n    return distances, previous\n\n# Reconstruct the shortest path\ndef get_path(previous, target):\n    path = []\n    current = target\n    \n    while current is not None:\n        path.append(current)\n        current = previous[current]\n    \n    return path[::-1]\n\n# Usage\ngraph = {\n    'A': {'B': 4, 'C': 2},\n    'B': {'A': 4, 'C': 1, 'D': 5},\n    'C': {'A': 2, 'B': 1, 'D': 8, 'E': 10},\n    'D': {'B': 5, 'C': 8, 'E': 2},\n    'E': {'C': 10, 'D': 2}\n}\n\ndistances, previous = dijkstra(graph, 'A')\nprint(f\"Shortest distances: {distances}\")\nprint(f\"Path to E: {get_path(previous, 'E')}\")\n",[20,52905,52906,52913,52925,52929,52938,52943,52967,52975,52995,52999,53004,53016,53026,53030,53036,53044,53048,53058,53062,53066,53070,53080,53092,53096,53106,53114,53123,53127,53131,53138,53142,53147,53157,53167,53177,53181,53197,53202,53212,53216,53229,53233,53238,53247,53269,53299,53338,53368,53391,53395,53399,53413,53436],{"__ignoreMap":30},[34,52907,52908,52910],{"class":36,"line":37},[34,52909,581],{"class":580},[34,52911,52912],{"class":181}," heapq\n",[34,52914,52915,52917,52920,52922],{"class":36,"line":44},[34,52916,587],{"class":580},[34,52918,52919],{"class":181}," collections ",[34,52921,581],{"class":580},[34,52923,52924],{"class":181}," defaultdict\n",[34,52926,52927],{"class":36,"line":58},[34,52928,62],{"emptyLinePlaceholder":61},[34,52930,52931,52933,52935],{"class":36,"line":65},[34,52932,49400],{"class":580},[34,52934,50582],{"class":47},[34,52936,52937],{"class":181},"(graph, source):\n",[34,52939,52940],{"class":36,"line":71},[34,52941,52942],{"class":40},"    # Initialize distances\n",[34,52944,52945,52947,52949,52951,52953,52955,52957,52959,52961,52963,52965],{"class":36,"line":77},[34,52946,51076],{"class":181},[34,52948,1301],{"class":580},[34,52950,51081],{"class":181},[34,52952,25079],{"class":50},[34,52954,1607],{"class":181},[34,52956,49534],{"class":54},[34,52958,4817],{"class":181},[34,52960,10246],{"class":580},[34,52962,51094],{"class":181},[34,52964,10252],{"class":580},[34,52966,51099],{"class":181},[34,52968,52969,52971,52973],{"class":36,"line":82},[34,52970,50151],{"class":181},[34,52972,1301],{"class":580},[34,52974,36394],{"class":50},[34,52976,52977,52980,52982,52984,52986,52989,52991,52993],{"class":36,"line":88},[34,52978,52979],{"class":181},"    previous ",[34,52981,1301],{"class":580},[34,52983,51081],{"class":181},[34,52985,51018],{"class":50},[34,52987,52988],{"class":580}," for",[34,52990,51094],{"class":181},[34,52992,10252],{"class":580},[34,52994,51099],{"class":181},[34,52996,52997],{"class":36,"line":242},[34,52998,3666],{"class":181},[34,53000,53001],{"class":36,"line":250},[34,53002,53003],{"class":40},"    # Priority queue: (distance, node)\n",[34,53005,53006,53008,53010,53012,53014],{"class":36,"line":263},[34,53007,51112],{"class":181},[34,53009,1301],{"class":580},[34,53011,49474],{"class":181},[34,53013,2773],{"class":50},[34,53015,49479],{"class":181},[34,53017,53018,53020,53022,53024],{"class":36,"line":275},[34,53019,51125],{"class":181},[34,53021,1301],{"class":580},[34,53023,9481],{"class":50},[34,53025,33899],{"class":181},[34,53027,53028],{"class":36,"line":700},[34,53029,3666],{"class":181},[34,53031,53032,53034],{"class":36,"line":706},[34,53033,8098],{"class":580},[34,53035,51142],{"class":181},[34,53037,53038,53040,53042],{"class":36,"line":715},[34,53039,51147],{"class":181},[34,53041,1301],{"class":580},[34,53043,51152],{"class":181},[34,53045,53046],{"class":36,"line":725},[34,53047,49744],{"class":181},[34,53049,53050,53052,53054,53056],{"class":36,"line":734},[34,53051,49573],{"class":580},[34,53053,51163],{"class":181},[34,53055,10252],{"class":580},[34,53057,51168],{"class":181},[34,53059,53060],{"class":36,"line":742},[34,53061,51173],{"class":580},[34,53063,53064],{"class":36,"line":748},[34,53065,51178],{"class":181},[34,53067,53068],{"class":36,"line":754},[34,53069,49744],{"class":181},[34,53071,53072,53074,53076,53078],{"class":36,"line":759},[34,53073,50247],{"class":580},[34,53075,51222],{"class":181},[34,53077,10252],{"class":580},[34,53079,51227],{"class":181},[34,53081,53082,53084,53086,53088,53090],{"class":36,"line":771},[34,53083,51268],{"class":181},[34,53085,1301],{"class":580},[34,53087,51273],{"class":181},[34,53089,2940],{"class":580},[34,53091,50960],{"class":181},[34,53093,53094],{"class":36,"line":794},[34,53095,49614],{"class":181},[34,53097,53098,53100,53102,53104],{"class":36,"line":824},[34,53099,49591],{"class":580},[34,53101,51284],{"class":181},[34,53103,815],{"class":580},[34,53105,51289],{"class":181},[34,53107,53108,53110,53112],{"class":36,"line":830},[34,53109,50294],{"class":181},[34,53111,1301],{"class":580},[34,53113,51298],{"class":181},[34,53115,53116,53118,53120],{"class":36,"line":839},[34,53117,50304],{"class":181},[34,53119,1301],{"class":580},[34,53121,53122],{"class":181}," current\n",[34,53124,53125],{"class":36,"line":854},[34,53126,51303],{"class":181},[34,53128,53129],{"class":36,"line":860},[34,53130,3666],{"class":181},[34,53132,53133,53135],{"class":36,"line":865},[34,53134,1564],{"class":580},[34,53136,53137],{"class":181}," distances, previous\n",[34,53139,53140],{"class":36,"line":870},[34,53141,62],{"emptyLinePlaceholder":61},[34,53143,53144],{"class":36,"line":876},[34,53145,53146],{"class":40},"# Reconstruct the shortest path\n",[34,53148,53149,53151,53154],{"class":36,"line":885},[34,53150,49400],{"class":580},[34,53152,53153],{"class":47}," get_path",[34,53155,53156],{"class":181},"(previous, target):\n",[34,53158,53159,53162,53164],{"class":36,"line":895},[34,53160,53161],{"class":181},"    path ",[34,53163,1301],{"class":580},[34,53165,53166],{"class":181}," []\n",[34,53168,53169,53172,53174],{"class":36,"line":904},[34,53170,53171],{"class":181},"    current ",[34,53173,1301],{"class":580},[34,53175,53176],{"class":181}," target\n",[34,53178,53179],{"class":36,"line":915},[34,53180,3666],{"class":181},[34,53182,53183,53185,53187,53189,53192,53195],{"class":36,"line":927},[34,53184,8098],{"class":580},[34,53186,51163],{"class":181},[34,53188,34798],{"class":580},[34,53190,53191],{"class":580}," not",[34,53193,53194],{"class":50}," None",[34,53196,193],{"class":181},[34,53198,53199],{"class":36,"line":932},[34,53200,53201],{"class":181},"        path.append(current)\n",[34,53203,53204,53207,53209],{"class":36,"line":944},[34,53205,53206],{"class":181},"        current ",[34,53208,1301],{"class":580},[34,53210,53211],{"class":181}," previous[current]\n",[34,53213,53214],{"class":36,"line":966},[34,53215,3666],{"class":181},[34,53217,53218,53220,53223,53225,53227],{"class":36,"line":1948},[34,53219,1564],{"class":580},[34,53221,53222],{"class":181}," path[::",[34,53224,22062],{"class":580},[34,53226,8318],{"class":50},[34,53228,924],{"class":181},[34,53230,53231],{"class":36,"line":1953},[34,53232,62],{"emptyLinePlaceholder":61},[34,53234,53235],{"class":36,"line":3616},[34,53236,53237],{"class":40},"# Usage\n",[34,53239,53240,53243,53245],{"class":36,"line":3622},[34,53241,53242],{"class":181},"graph ",[34,53244,1301],{"class":580},[34,53246,661],{"class":181},[34,53248,53249,53251,53253,53255,53257,53259,53261,53263,53265,53267],{"class":36,"line":3642},[34,53250,50694],{"class":54},[34,53252,50697],{"class":181},[34,53254,50700],{"class":54},[34,53256,182],{"class":181},[34,53258,18010],{"class":50},[34,53260,1798],{"class":181},[34,53262,50709],{"class":54},[34,53264,182],{"class":181},[34,53266,8324],{"class":50},[34,53268,18003],{"class":181},[34,53270,53271,53273,53275,53277,53279,53281,53283,53285,53287,53289,53291,53293,53295,53297],{"class":36,"line":3657},[34,53272,50720],{"class":54},[34,53274,50697],{"class":181},[34,53276,21516],{"class":54},[34,53278,182],{"class":181},[34,53280,18010],{"class":50},[34,53282,1798],{"class":181},[34,53284,50709],{"class":54},[34,53286,182],{"class":181},[34,53288,8318],{"class":50},[34,53290,1798],{"class":181},[34,53292,50733],{"class":54},[34,53294,182],{"class":181},[34,53296,2778],{"class":50},[34,53298,18003],{"class":181},[34,53300,53301,53303,53305,53307,53309,53311,53313,53315,53317,53319,53321,53323,53325,53327,53329,53332,53334,53336],{"class":36,"line":3663},[34,53302,50744],{"class":54},[34,53304,50697],{"class":181},[34,53306,21516],{"class":54},[34,53308,182],{"class":181},[34,53310,8324],{"class":50},[34,53312,1798],{"class":181},[34,53314,50700],{"class":54},[34,53316,182],{"class":181},[34,53318,8318],{"class":50},[34,53320,1798],{"class":181},[34,53322,50733],{"class":54},[34,53324,182],{"class":181},[34,53326,18033],{"class":50},[34,53328,1798],{"class":181},[34,53330,53331],{"class":54},"'E'",[34,53333,182],{"class":181},[34,53335,11923],{"class":50},[34,53337,18003],{"class":181},[34,53339,53340,53342,53344,53346,53348,53350,53352,53354,53356,53358,53360,53362,53364,53366],{"class":36,"line":3669},[34,53341,50759],{"class":54},[34,53343,50697],{"class":181},[34,53345,50700],{"class":54},[34,53347,182],{"class":181},[34,53349,2778],{"class":50},[34,53351,1798],{"class":181},[34,53353,50709],{"class":54},[34,53355,182],{"class":181},[34,53357,18033],{"class":50},[34,53359,1798],{"class":181},[34,53361,53331],{"class":54},[34,53363,182],{"class":181},[34,53365,8324],{"class":50},[34,53367,18003],{"class":181},[34,53369,53370,53373,53375,53377,53379,53381,53383,53385,53387,53389],{"class":36,"line":3675},[34,53371,53372],{"class":54},"    'E'",[34,53374,50697],{"class":181},[34,53376,50709],{"class":54},[34,53378,182],{"class":181},[34,53380,11923],{"class":50},[34,53382,1798],{"class":181},[34,53384,50733],{"class":54},[34,53386,182],{"class":181},[34,53388,8324],{"class":50},[34,53390,693],{"class":181},[34,53392,53393],{"class":36,"line":3693},[34,53394,693],{"class":181},[34,53396,53397],{"class":36,"line":3707},[34,53398,62],{"emptyLinePlaceholder":61},[34,53400,53401,53404,53406,53409,53411],{"class":36,"line":3712},[34,53402,53403],{"class":181},"distances, previous ",[34,53405,1301],{"class":580},[34,53407,53408],{"class":181}," dijkstra(graph, ",[34,53410,21516],{"class":54},[34,53412,3372],{"class":181},[34,53414,53415,53418,53420,53422,53425,53427,53430,53432,53434],{"class":36,"line":3717},[34,53416,53417],{"class":50},"print",[34,53419,1607],{"class":181},[34,53421,32918],{"class":580},[34,53423,53424],{"class":54},"\"Shortest distances: ",[34,53426,13990],{"class":50},[34,53428,53429],{"class":181},"distances",[34,53431,34378],{"class":50},[34,53433,10389],{"class":54},[34,53435,3372],{"class":181},[34,53437,53438,53440,53442,53444,53447,53449,53452,53454,53456,53458,53460],{"class":36,"line":25776},[34,53439,53417],{"class":50},[34,53441,1607],{"class":181},[34,53443,32918],{"class":580},[34,53445,53446],{"class":54},"\"Path to E: ",[34,53448,13990],{"class":50},[34,53450,53451],{"class":181},"get_path(previous, ",[34,53453,53331],{"class":54},[34,53455,1617],{"class":181},[34,53457,34378],{"class":50},[34,53459,10389],{"class":54},[34,53461,3372],{"class":181},[388,53463,53464],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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}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);}",{"title":30,"searchDepth":44,"depth":44,"links":53466},[53467],{"id":52900,"depth":44,"text":52856},"Python Implementation in Dijkstra's Algorithm.",{},{"title":52856,"description":53468},"dijkstra/python-implementation",[49919,49921,49922,49923,49924],"wlOsGmJw_lSpJ_xeXcBOtAYQh4cqd1LNe7HNMgqMcQg",{"id":53475,"title":52846,"body":53476,"date":402,"description":53490,"extension":404,"meta":53491,"navigation":61,"order":65,"path":52845,"seo":53492,"stem":53493,"subject":49919,"tags":53494,"__hash__":53495},"topics/dijkstra/time-space-complexity.md",{"type":8,"value":53477,"toc":53487},[53478,53481],[11,53479,52846],{"id":53480},"time-space-complexity",[25,53482,53485],{"className":53483,"code":53484,"language":780,"meta":30},[13703],"Time Complexity:\n  - With binary heap:     O((V + E) log V)\n  - With Fibonacci heap:  O(E + V log V)\n  - With adjacency matrix: O(V²)\n\nWhere V = number of vertices, E = number of edges\n\nSpace Complexity:\n  - O(V) for distance array and priority queue\n\nDijkstra's Algorithm is:\n  - Greedy (always picks the minimum distance node)\n  - Optimal (guarantees shortest path with non-negative weights)\n  - Single-source (finds paths from one source to all nodes)\n",[20,53486,53484],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":53488},[53489],{"id":53480,"depth":44,"text":52846},"Time & Space Complexity in Dijkstra's Algorithm.",{},{"title":52846,"description":53490},"dijkstra/time-space-complexity",[49919,49921,49922,49923,49924],"BSv-PPblDCuh8HzuaUJ6F4jRXzjGunZ4jfLpwwowZEQ",{"id":53497,"title":53498,"body":53499,"date":402,"description":53865,"extension":404,"meta":53866,"navigation":61,"order":37,"path":53867,"seo":53868,"stem":53869,"subject":53498,"tags":53870,"__hash__":53872},"topics/direnv/overview.md","direnv",{"type":8,"value":53500,"toc":53847},[53501,53503,53510,53514,53520,53530,53533,53535,53538,53542,53547,53561,53565,53580,53584,53600,53604,53618,53621,53625,53663,53667,53707,53711,53714,53716,53733,53737,53753,53757,53767,53770,53776,53800,53814,53816,53834,53836,53844],[11,53502,13534],{"id":13533},[16,53504,53505,53506,53509],{},"direnv is a shell extension that manages environment variables per directory. By creating ",[20,53507,53508],{},".envrc"," files in your project folder, it allows you to seamlessly load and unload environment variables as you switch directories.",[102,53511,53513],{"id":53512},"how-direnv-works","How direnv Works",[16,53515,53516,53517,53519],{},"At every directory change, direnv checks for the existence of a ",[20,53518,53508],{}," file. If authorized, it then:",[309,53521,53522,53527],{},[312,53523,53524,53525,15146],{},"Executes commands defined in the ",[20,53526,53508],{},[312,53528,53529],{},"Loads and exports variables into the current shell session.",[16,53531,53532],{},"This provides an uncluttered way to handle project-specific environment variables without polluting global shell configurations.",[11,53534,97],{"id":96},[16,53536,53537],{},"direnv is available for various platforms. Use one of the following methods to install it.",[102,53539,53541],{"id":53540},"package-managers","Package Managers",[53543,53544,53546],"h4",{"id":53545},"macos","macOS",[25,53548,53550],{"className":27,"code":53549,"language":29,"meta":30,"style":30},"brew install direnv\n",[20,53551,53552],{"__ignoreMap":30},[34,53553,53554,53556,53558],{"class":36,"line":37},[34,53555,115],{"class":47},[34,53557,118],{"class":54},[34,53559,53560],{"class":54}," direnv\n",[53543,53562,53564],{"id":53563},"ubuntudebian","Ubuntu/Debian",[25,53566,53568],{"className":27,"code":53567,"language":29,"meta":30,"style":30},"sudo apt install direnv\n",[20,53569,53570],{"__ignoreMap":30},[34,53571,53572,53574,53576,53578],{"class":36,"line":37},[34,53573,436],{"class":47},[34,53575,439],{"class":54},[34,53577,118],{"class":54},[34,53579,53560],{"class":54},[53543,53581,53583],{"id":53582},"arch-linux","Arch Linux",[25,53585,53587],{"className":27,"code":53586,"language":29,"meta":30,"style":30},"sudo pacman -S direnv\n",[20,53588,53589],{"__ignoreMap":30},[34,53590,53591,53593,53596,53598],{"class":36,"line":37},[34,53592,436],{"class":47},[34,53594,53595],{"class":54}," pacman",[34,53597,7773],{"class":50},[34,53599,53560],{"class":54},[53543,53601,53603],{"id":53602},"fedora","Fedora",[25,53605,53607],{"className":27,"code":53606,"language":29,"meta":30,"style":30},"dnf install direnv\n",[20,53608,53609],{"__ignoreMap":30},[34,53610,53611,53614,53616],{"class":36,"line":37},[34,53612,53613],{"class":47},"dnf",[34,53615,118],{"class":54},[34,53617,53560],{"class":54},[16,53619,53620],{},"For Windows users, you can install direnv via the winget manager.",[102,53622,53624],{"id":53623},"from-binary","From Binary",[25,53626,53628],{"className":27,"code":53627,"language":29,"meta":30,"style":30},"curl -sfL https://direnv.net/install.sh | bash\nchmod +x direnv\ncp direnv /usr/local/bin/\n",[20,53629,53630,53644,53653],{"__ignoreMap":30},[34,53631,53632,53634,53637,53640,53642],{"class":36,"line":37},[34,53633,8648],{"class":47},[34,53635,53636],{"class":50}," -sfL",[34,53638,53639],{"class":54}," https://direnv.net/install.sh",[34,53641,7197],{"class":580},[34,53643,9346],{"class":47},[34,53645,53646,53648,53651],{"class":36,"line":44},[34,53647,13281],{"class":47},[34,53649,53650],{"class":54}," +x",[34,53652,53560],{"class":54},[34,53654,53655,53657,53660],{"class":36,"line":58},[34,53656,13228],{"class":47},[34,53658,53659],{"class":54}," direnv",[34,53661,53662],{"class":54}," /usr/local/bin/\n",[102,53664,53666],{"id":53665},"compile-from-source","Compile from Source",[309,53668,53669,53686],{},[312,53670,53671,53672],{},"Clone the repo:",[25,53673,53675],{"className":27,"code":53674,"language":29,"meta":30,"style":30},"git clone https://github.com/direnv/direnv.git\n",[20,53676,53677],{"__ignoreMap":30},[34,53678,53679,53681,53683],{"class":36,"line":37},[34,53680,7794],{"class":47},[34,53682,7797],{"class":54},[34,53684,53685],{"class":54}," https://github.com/direnv/direnv.git\n",[312,53687,53688,53689],{},"Build and install:",[25,53690,53692],{"className":27,"code":53691,"language":29,"meta":30,"style":30},"cd direnv\nmake install\n",[20,53693,53694,53700],{"__ignoreMap":30},[34,53695,53696,53698],{"class":36,"line":37},[34,53697,7702],{"class":50},[34,53699,53560],{"class":54},[34,53701,53702,53705],{"class":36,"line":44},[34,53703,53704],{"class":47},"make",[34,53706,5951],{"class":54},[11,53708,53710],{"id":53709},"shell-integration","Shell Integration",[16,53712,53713],{},"direnv requires hooks to integrate into your shell. Common examples include:",[102,53715,12156],{"id":29},[25,53717,53719],{"className":27,"code":53718,"language":29,"meta":30,"style":30},"eval \"$(direnv hook bash)\"\n",[20,53720,53721],{"__ignoreMap":30},[34,53722,53723,53726,53728,53730],{"class":36,"line":37},[34,53724,53725],{"class":50},"eval",[34,53727,29582],{"class":54},[34,53729,53498],{"class":47},[34,53731,53732],{"class":54}," hook bash)\"\n",[102,53734,53736],{"id":53735},"zsh","Zsh",[25,53738,53740],{"className":27,"code":53739,"language":29,"meta":30,"style":30},"eval \"$(direnv hook zsh)\"\n",[20,53741,53742],{"__ignoreMap":30},[34,53743,53744,53746,53748,53750],{"class":36,"line":37},[34,53745,53725],{"class":50},[34,53747,29582],{"class":54},[34,53749,53498],{"class":47},[34,53751,53752],{"class":54}," hook zsh)\"\n",[102,53754,53756],{"id":53755},"fish","Fish",[25,53758,53761],{"className":53759,"code":53760,"language":53755,"meta":30,"style":30},"language-fish shiki shiki-themes github-light github-dark","status --is-interactive; and source (direnv hook fish | psub)\n",[20,53762,53763],{"__ignoreMap":30},[34,53764,53765],{"class":36,"line":37},[34,53766,53760],{},[16,53768,53769],{},"Restart your shell to activate direnv hooks.",[11,53771,53773,53775],{"id":53772},"envrc-example",[20,53774,53508],{}," Example",[25,53777,53779],{"className":27,"code":53778,"language":29,"meta":30,"style":30},"export DATABASE_URL=\"postgres://user:password@localhost/dbname\"\nlayout python\n",[20,53780,53781,53793],{"__ignoreMap":30},[34,53782,53783,53785,53788,53790],{"class":36,"line":37},[34,53784,652],{"class":580},[34,53786,53787],{"class":181}," DATABASE_URL",[34,53789,1301],{"class":580},[34,53791,53792],{"class":54},"\"postgres://user:password@localhost/dbname\"\n",[34,53794,53795,53798],{"class":36,"line":44},[34,53796,53797],{"class":47},"layout",[34,53799,7871],{"class":54},[309,53801,53802,53808],{},[312,53803,53804,53807],{},[20,53805,53806],{},"layout python",": Sets up a Python virtual environment.",[312,53809,53810,53813],{},[20,53811,53812],{},"export DATABASE_URL",": Defines environment-specific database settings.",[11,53815,5595],{"id":5600},[309,53817,53818,53824],{},[312,53819,53820,53821,53823],{},"Reuse ",[20,53822,53508],{}," snippets across similar projects to maintain consistency.",[312,53825,53826,53827,53829,53830,53833],{},"Keep sensitive variables out of your ",[20,53828,53508],{}," file; utilize ",[20,53831,53832],{},".env","-like patterns instead.",[7979,53835],{},[16,53837,53838,53839,151],{},"For more detailed configurations and examples, visit the ",[145,53840,53843],{"href":53841,"rel":53842},"https://direnv.net/",[149],"direnv documentation",[388,53845,53846],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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}",{"title":30,"searchDepth":44,"depth":44,"links":53848},[53849,53852,53857,53862,53864],{"id":13533,"depth":44,"text":13534,"children":53850},[53851],{"id":53512,"depth":58,"text":53513},{"id":96,"depth":44,"text":97,"children":53853},[53854,53855,53856],{"id":53540,"depth":58,"text":53541},{"id":53623,"depth":58,"text":53624},{"id":53665,"depth":58,"text":53666},{"id":53709,"depth":44,"text":53710,"children":53858},[53859,53860,53861],{"id":29,"depth":58,"text":12156},{"id":53735,"depth":58,"text":53736},{"id":53755,"depth":58,"text":53756},{"id":53772,"depth":44,"text":53863},".envrc Example",{"id":5600,"depth":44,"text":5595},"Automate and lint your environment variable management with direnv.",{},"/direnv/overview",{"title":53498,"description":53865},"direnv/overview",[53498,10358,14661,53871],"environment-management","kmPnv-IHOQX3kTMohFYbe8j3aFQ6jJa1hKK-od88lBw",{"id":53874,"title":53875,"body":53876,"date":402,"description":53977,"extension":404,"meta":53978,"navigation":61,"order":250,"path":53979,"seo":53980,"stem":53981,"subject":53613,"tags":53982,"__hash__":53985},"topics/dnf/cache-and-cleanup.md","Cache and Cleanup",{"type":8,"value":53877,"toc":53974},[53878,53881,53972],[11,53879,53875],{"id":53880},"cache-and-cleanup",[25,53882,53884],{"className":27,"code":53883,"language":29,"meta":30,"style":30},"# Clean cached packages\ndnf clean packages\n\n# Clean metadata cache\ndnf clean metadata\n\n# Clean all cache\ndnf clean all\n\n# Build metadata cache\ndnf makecache\n\n# Build cache faster (only essential data)\ndnf makecache fast\n",[20,53885,53886,53891,53901,53905,53910,53919,53923,53928,53937,53941,53946,53953,53957,53962],{"__ignoreMap":30},[34,53887,53888],{"class":36,"line":37},[34,53889,53890],{"class":40},"# Clean cached packages\n",[34,53892,53893,53895,53898],{"class":36,"line":44},[34,53894,53613],{"class":47},[34,53896,53897],{"class":54}," clean",[34,53899,53900],{"class":54}," packages\n",[34,53902,53903],{"class":36,"line":58},[34,53904,62],{"emptyLinePlaceholder":61},[34,53906,53907],{"class":36,"line":65},[34,53908,53909],{"class":40},"# Clean metadata cache\n",[34,53911,53912,53914,53916],{"class":36,"line":71},[34,53913,53613],{"class":47},[34,53915,53897],{"class":54},[34,53917,53918],{"class":54}," metadata\n",[34,53920,53921],{"class":36,"line":77},[34,53922,62],{"emptyLinePlaceholder":61},[34,53924,53925],{"class":36,"line":82},[34,53926,53927],{"class":40},"# Clean all cache\n",[34,53929,53930,53932,53934],{"class":36,"line":88},[34,53931,53613],{"class":47},[34,53933,53897],{"class":54},[34,53935,53936],{"class":54}," all\n",[34,53938,53939],{"class":36,"line":242},[34,53940,62],{"emptyLinePlaceholder":61},[34,53942,53943],{"class":36,"line":250},[34,53944,53945],{"class":40},"# Build metadata cache\n",[34,53947,53948,53950],{"class":36,"line":263},[34,53949,53613],{"class":47},[34,53951,53952],{"class":54}," makecache\n",[34,53954,53955],{"class":36,"line":275},[34,53956,62],{"emptyLinePlaceholder":61},[34,53958,53959],{"class":36,"line":700},[34,53960,53961],{"class":40},"# Build cache faster (only essential data)\n",[34,53963,53964,53966,53969],{"class":36,"line":706},[34,53965,53613],{"class":47},[34,53967,53968],{"class":54}," makecache",[34,53970,53971],{"class":54}," fast\n",[388,53973,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":53975},[53976],{"id":53880,"depth":44,"text":53875},"Cache and Cleanup in DNF.",{},"/dnf/cache-and-cleanup",{"title":53875,"description":53977},"dnf/cache-and-cleanup",[53613,5591,53602,53983,5588,53984],"rhel","centos","WOuhb597Vba_zesGBv7HWCWdrNEjLw-kXhnX57a5fP8",{"id":53987,"title":53988,"body":53989,"date":402,"description":54077,"extension":404,"meta":54078,"navigation":61,"order":263,"path":54079,"seo":54080,"stem":54081,"subject":53613,"tags":54082,"__hash__":54083},"topics/dnf/download-only.md","Download Only",{"type":8,"value":53990,"toc":54074},[53991,53994,54072],[11,53992,53988],{"id":53993},"download-only",[25,53995,53997],{"className":27,"code":53996,"language":29,"meta":30,"style":30},"# Download package without installing\ndnf download package_name\n\n# Download package and dependencies\ndnf download --resolve package_name\n\n# Download to specific directory\ndnf download --downloaddir=/path/to/dir package_name\n\n# Install with download only (no install)\ndnf install --downloadonly package_name\n",[20,53998,53999,54003,54012,54016,54021,54032,54036,54041,54052,54056,54061],{"__ignoreMap":30},[34,54000,54001],{"class":36,"line":37},[34,54002,5504],{"class":40},[34,54004,54005,54007,54009],{"class":36,"line":44},[34,54006,53613],{"class":47},[34,54008,5513],{"class":54},[34,54010,54011],{"class":54}," package_name\n",[34,54013,54014],{"class":36,"line":58},[34,54015,62],{"emptyLinePlaceholder":61},[34,54017,54018],{"class":36,"line":65},[34,54019,54020],{"class":40},"# Download package and dependencies\n",[34,54022,54023,54025,54027,54030],{"class":36,"line":71},[34,54024,53613],{"class":47},[34,54026,5513],{"class":54},[34,54028,54029],{"class":50}," --resolve",[34,54031,54011],{"class":54},[34,54033,54034],{"class":36,"line":77},[34,54035,62],{"emptyLinePlaceholder":61},[34,54037,54038],{"class":36,"line":82},[34,54039,54040],{"class":40},"# Download to specific directory\n",[34,54042,54043,54045,54047,54050],{"class":36,"line":88},[34,54044,53613],{"class":47},[34,54046,5513],{"class":54},[34,54048,54049],{"class":50}," --downloaddir=/path/to/dir",[34,54051,54011],{"class":54},[34,54053,54054],{"class":36,"line":242},[34,54055,62],{"emptyLinePlaceholder":61},[34,54057,54058],{"class":36,"line":250},[34,54059,54060],{"class":40},"# Install with download only (no install)\n",[34,54062,54063,54065,54067,54070],{"class":36,"line":263},[34,54064,53613],{"class":47},[34,54066,118],{"class":54},[34,54068,54069],{"class":50}," --downloadonly",[34,54071,54011],{"class":54},[388,54073,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":54075},[54076],{"id":53993,"depth":44,"text":53988},"Download Only in DNF.",{},"/dnf/download-only",{"title":53988,"description":54077},"dnf/download-only",[53613,5591,53602,53983,5588,53984],"OQgD2-IN7Xzuymn1hWbcFi72n3m7GviRqihkD-VpYG4",{"id":54085,"title":54086,"body":54087,"date":402,"description":54214,"extension":404,"meta":54215,"navigation":61,"order":242,"path":54216,"seo":54217,"stem":54218,"subject":53613,"tags":54219,"__hash__":54220},"topics/dnf/history-and-rollback.md","History and Rollback",{"type":8,"value":54088,"toc":54211},[54089,54092,54209],[11,54090,54086],{"id":54091},"history-and-rollback",[25,54093,54095],{"className":27,"code":54094,"language":29,"meta":30,"style":30},"# Show transaction history\ndnf history\n\n# Show details of a specific transaction\ndnf history info transaction_id\n\n# Undo a transaction\ndnf history undo transaction_id\n\n# Redo a transaction\ndnf history redo transaction_id\n\n# Rollback to a specific transaction\ndnf history rollback transaction_id\n\n# List packages changed in last transaction\ndnf history list last\n",[20,54096,54097,54102,54109,54113,54118,54130,54134,54139,54150,54154,54159,54170,54174,54179,54189,54193,54198],{"__ignoreMap":30},[34,54098,54099],{"class":36,"line":37},[34,54100,54101],{"class":40},"# Show transaction history\n",[34,54103,54104,54106],{"class":36,"line":44},[34,54105,53613],{"class":47},[34,54107,54108],{"class":54}," history\n",[34,54110,54111],{"class":36,"line":58},[34,54112,62],{"emptyLinePlaceholder":61},[34,54114,54115],{"class":36,"line":65},[34,54116,54117],{"class":40},"# Show details of a specific transaction\n",[34,54119,54120,54122,54124,54127],{"class":36,"line":71},[34,54121,53613],{"class":47},[34,54123,7579],{"class":54},[34,54125,54126],{"class":54}," info",[34,54128,54129],{"class":54}," transaction_id\n",[34,54131,54132],{"class":36,"line":77},[34,54133,62],{"emptyLinePlaceholder":61},[34,54135,54136],{"class":36,"line":82},[34,54137,54138],{"class":40},"# Undo a transaction\n",[34,54140,54141,54143,54145,54148],{"class":36,"line":88},[34,54142,53613],{"class":47},[34,54144,7579],{"class":54},[34,54146,54147],{"class":54}," undo",[34,54149,54129],{"class":54},[34,54151,54152],{"class":36,"line":242},[34,54153,62],{"emptyLinePlaceholder":61},[34,54155,54156],{"class":36,"line":250},[34,54157,54158],{"class":40},"# Redo a transaction\n",[34,54160,54161,54163,54165,54168],{"class":36,"line":263},[34,54162,53613],{"class":47},[34,54164,7579],{"class":54},[34,54166,54167],{"class":54}," redo",[34,54169,54129],{"class":54},[34,54171,54172],{"class":36,"line":275},[34,54173,62],{"emptyLinePlaceholder":61},[34,54175,54176],{"class":36,"line":700},[34,54177,54178],{"class":40},"# Rollback to a specific transaction\n",[34,54180,54181,54183,54185,54187],{"class":36,"line":706},[34,54182,53613],{"class":47},[34,54184,7579],{"class":54},[34,54186,7599],{"class":54},[34,54188,54129],{"class":54},[34,54190,54191],{"class":36,"line":715},[34,54192,62],{"emptyLinePlaceholder":61},[34,54194,54195],{"class":36,"line":725},[34,54196,54197],{"class":40},"# List packages changed in last transaction\n",[34,54199,54200,54202,54204,54206],{"class":36,"line":734},[34,54201,53613],{"class":47},[34,54203,7579],{"class":54},[34,54205,6345],{"class":54},[34,54207,54208],{"class":54}," last\n",[388,54210,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":54212},[54213],{"id":54091,"depth":44,"text":54086},"History and Rollback in DNF.",{},"/dnf/history-and-rollback",{"title":54086,"description":54214},"dnf/history-and-rollback",[53613,5591,53602,53983,5588,53984],"imNMWHxEVfhKJ3S48Obzs4TX1NxGRvd5bGB3DRgjIS8",{"id":54222,"title":6112,"body":54223,"date":402,"description":54342,"extension":404,"meta":54343,"navigation":61,"order":44,"path":54344,"seo":54345,"stem":54346,"subject":53613,"tags":54347,"__hash__":54348},"topics/dnf/installing-packages.md",{"type":8,"value":54224,"toc":54339},[54225,54227,54337],[11,54226,6112],{"id":6117},[25,54228,54230],{"className":27,"code":54229,"language":29,"meta":30,"style":30},"# Install a package\ndnf install package_name\n\n# Install multiple packages\ndnf install package1 package2 package3\n\n# Install a specific version\ndnf install package_name-version\n\n# Install a local RPM file\ndnf install /path/to/package.rpm\n\n# Install package without confirmation prompt\ndnf install -y package_name\n\n# Reinstall a package\ndnf reinstall package_name\n",[20,54231,54232,54236,54244,54248,54252,54267,54271,54275,54284,54288,54293,54302,54306,54311,54321,54325,54329],{"__ignoreMap":30},[34,54233,54234],{"class":36,"line":37},[34,54235,6127],{"class":40},[34,54237,54238,54240,54242],{"class":36,"line":44},[34,54239,53613],{"class":47},[34,54241,118],{"class":54},[34,54243,54011],{"class":54},[34,54245,54246],{"class":36,"line":58},[34,54247,62],{"emptyLinePlaceholder":61},[34,54249,54250],{"class":36,"line":65},[34,54251,6152],{"class":40},[34,54253,54254,54256,54258,54261,54264],{"class":36,"line":71},[34,54255,53613],{"class":47},[34,54257,118],{"class":54},[34,54259,54260],{"class":54}," package1",[34,54262,54263],{"class":54}," package2",[34,54265,54266],{"class":54}," package3\n",[34,54268,54269],{"class":36,"line":77},[34,54270,62],{"emptyLinePlaceholder":61},[34,54272,54273],{"class":36,"line":82},[34,54274,6191],{"class":40},[34,54276,54277,54279,54281],{"class":36,"line":88},[34,54278,53613],{"class":47},[34,54280,118],{"class":54},[34,54282,54283],{"class":54}," package_name-version\n",[34,54285,54286],{"class":36,"line":242},[34,54287,62],{"emptyLinePlaceholder":61},[34,54289,54290],{"class":36,"line":250},[34,54291,54292],{"class":40},"# Install a local RPM file\n",[34,54294,54295,54297,54299],{"class":36,"line":263},[34,54296,53613],{"class":47},[34,54298,118],{"class":54},[34,54300,54301],{"class":54}," /path/to/package.rpm\n",[34,54303,54304],{"class":36,"line":275},[34,54305,62],{"emptyLinePlaceholder":61},[34,54307,54308],{"class":36,"line":700},[34,54309,54310],{"class":40},"# Install package without confirmation prompt\n",[34,54312,54313,54315,54317,54319],{"class":36,"line":706},[34,54314,53613],{"class":47},[34,54316,118],{"class":54},[34,54318,5843],{"class":50},[34,54320,54011],{"class":54},[34,54322,54323],{"class":36,"line":715},[34,54324,62],{"emptyLinePlaceholder":61},[34,54326,54327],{"class":36,"line":725},[34,54328,6290],{"class":40},[34,54330,54331,54333,54335],{"class":36,"line":734},[34,54332,53613],{"class":47},[34,54334,6299],{"class":54},[34,54336,54011],{"class":54},[388,54338,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":54340},[54341],{"id":6117,"depth":44,"text":6112},"Installing Packages in DNF.",{},"/dnf/installing-packages",{"title":6112,"description":54342},"dnf/installing-packages",[53613,5591,53602,53983,5588,53984],"v-ejuOf_hZHqKkA72MhNnFr9R2rcuGWneEGWOEIAlR0",{"id":54350,"title":54351,"body":54352,"date":2633,"description":54431,"extension":404,"meta":54432,"navigation":61,"order":37,"path":54433,"seo":54434,"stem":54435,"subject":53613,"tags":54436,"__hash__":54437},"topics/dnf/overview.md","DNF",{"type":8,"value":54353,"toc":54429},[54354],[309,54355,54356,54360,54365,54371,54376,54381,54387,54393,54397,54401,54405,54411,54417,54423],{},[312,54357,54358],{},[145,54359,6112],{"href":54344},[312,54361,54362],{},[145,54363,6479],{"href":54364},"/dnf/removing-packages",[312,54366,54367],{},[145,54368,54370],{"href":54369},"/dnf/updating-packages","Updating Packages",[312,54372,54373],{},[145,54374,6491],{"href":54375},"/dnf/searching-packages",[312,54377,54378],{},[145,54379,6501],{"href":54380},"/dnf/package-information",[312,54382,54383],{},[145,54384,54386],{"href":54385},"/dnf/repository-management","Repository Management",[312,54388,54389],{},[145,54390,54392],{"href":54391},"/dnf/package-groups","Package Groups",[312,54394,54395],{},[145,54396,54086],{"href":54216},[312,54398,54399],{},[145,54400,53875],{"href":53979},[312,54402,54403],{},[145,54404,53988],{"href":54079},[312,54406,54407],{},[145,54408,54410],{"href":54409},"/dnf/system-operations","System Operations",[312,54412,54413],{},[145,54414,54416],{"href":54415},"/dnf/useful-options","Useful Options",[312,54418,54419],{},[145,54420,54422],{"href":54421},"/dnf/query-commands","Query Commands",[312,54424,54425],{},[145,54426,54428],{"href":54427},"/dnf/security-updates","Security Updates",{"title":30,"searchDepth":44,"depth":44,"links":54430},[],"Essential DNF commands for package management on Fedora, RHEL, and CentOS systems.",{},"/dnf/overview",{"title":54351,"description":54431},"dnf/overview",[53613,5591,53602,53983,5588,53984],"yJIxc-bI-1rlspY-ZNmPu-oxW8yRg9z18gWO3rLXPv0",{"id":54439,"title":54392,"body":54440,"date":402,"description":54565,"extension":404,"meta":54566,"navigation":61,"order":88,"path":54391,"seo":54567,"stem":54568,"subject":53613,"tags":54569,"__hash__":54570},"topics/dnf/package-groups.md",{"type":8,"value":54441,"toc":54562},[54442,54445,54560],[11,54443,54392],{"id":54444},"package-groups",[25,54446,54448],{"className":27,"code":54447,"language":29,"meta":30,"style":30},"# List available groups\ndnf group list\n\n# List all groups (available and installed)\ndnf group list --available\n\n# Show group information\ndnf group info \"Group Name\"\n\n# Install a package group\ndnf group install \"Group Name\"\n\n# Remove a package group\ndnf group remove \"Group Name\"\n\n# Update packages in a group\ndnf group update \"Group Name\"\n",[20,54449,54450,54455,54463,54467,54472,54483,54487,54492,54503,54507,54512,54522,54526,54531,54541,54545,54550],{"__ignoreMap":30},[34,54451,54452],{"class":36,"line":37},[34,54453,54454],{"class":40},"# List available groups\n",[34,54456,54457,54459,54461],{"class":36,"line":44},[34,54458,53613],{"class":47},[34,54460,9508],{"class":54},[34,54462,7536],{"class":54},[34,54464,54465],{"class":36,"line":58},[34,54466,62],{"emptyLinePlaceholder":61},[34,54468,54469],{"class":36,"line":65},[34,54470,54471],{"class":40},"# List all groups (available and installed)\n",[34,54473,54474,54476,54478,54480],{"class":36,"line":71},[34,54475,53613],{"class":47},[34,54477,9508],{"class":54},[34,54479,6345],{"class":54},[34,54481,54482],{"class":50}," --available\n",[34,54484,54485],{"class":36,"line":77},[34,54486,62],{"emptyLinePlaceholder":61},[34,54488,54489],{"class":36,"line":82},[34,54490,54491],{"class":40},"# Show group information\n",[34,54493,54494,54496,54498,54500],{"class":36,"line":88},[34,54495,53613],{"class":47},[34,54497,9508],{"class":54},[34,54499,54126],{"class":54},[34,54501,54502],{"class":54}," \"Group Name\"\n",[34,54504,54505],{"class":36,"line":242},[34,54506,62],{"emptyLinePlaceholder":61},[34,54508,54509],{"class":36,"line":250},[34,54510,54511],{"class":40},"# Install a package group\n",[34,54513,54514,54516,54518,54520],{"class":36,"line":263},[34,54515,53613],{"class":47},[34,54517,9508],{"class":54},[34,54519,118],{"class":54},[34,54521,54502],{"class":54},[34,54523,54524],{"class":36,"line":275},[34,54525,62],{"emptyLinePlaceholder":61},[34,54527,54528],{"class":36,"line":700},[34,54529,54530],{"class":40},"# Remove a package group\n",[34,54532,54533,54535,54537,54539],{"class":36,"line":706},[34,54534,53613],{"class":47},[34,54536,9508],{"class":54},[34,54538,6676],{"class":54},[34,54540,54502],{"class":54},[34,54542,54543],{"class":36,"line":715},[34,54544,62],{"emptyLinePlaceholder":61},[34,54546,54547],{"class":36,"line":725},[34,54548,54549],{"class":40},"# Update packages in a group\n",[34,54551,54552,54554,54556,54558],{"class":36,"line":734},[34,54553,53613],{"class":47},[34,54555,9508],{"class":54},[34,54557,5619],{"class":54},[34,54559,54502],{"class":54},[388,54561,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":54563},[54564],{"id":54444,"depth":44,"text":54392},"Package Groups in DNF.",{},{"title":54392,"description":54565},"dnf/package-groups",[53613,5591,53602,53983,5588,53984],"oLi0VeiGRZIpJYDFF8yqs31Kzg9jcTd5ihACy5ioKfY",{"id":54572,"title":6501,"body":54573,"date":402,"description":54677,"extension":404,"meta":54678,"navigation":61,"order":77,"path":54380,"seo":54679,"stem":54680,"subject":53613,"tags":54681,"__hash__":54682},"topics/dnf/package-information.md",{"type":8,"value":54574,"toc":54674},[54575,54577,54672],[11,54576,6501],{"id":6541},[25,54578,54580],{"className":27,"code":54579,"language":29,"meta":30,"style":30},"# Show detailed package information\ndnf info package_name\n\n# List files in a package\ndnf repoquery -l package_name\n\n# Show package dependencies\ndnf repoquery --requires package_name\n\n# Show what depends on a package\ndnf repoquery --whatrequires package_name\n\n# List changelog for a package\ndnf changelog package_name\n",[20,54581,54582,54587,54595,54599,54604,54615,54619,54623,54634,54638,54643,54654,54658,54663],{"__ignoreMap":30},[34,54583,54584],{"class":36,"line":37},[34,54585,54586],{"class":40},"# Show detailed package information\n",[34,54588,54589,54591,54593],{"class":36,"line":44},[34,54590,53613],{"class":47},[34,54592,54126],{"class":54},[34,54594,54011],{"class":54},[34,54596,54597],{"class":36,"line":58},[34,54598,62],{"emptyLinePlaceholder":61},[34,54600,54601],{"class":36,"line":65},[34,54602,54603],{"class":40},"# List files in a package\n",[34,54605,54606,54608,54611,54613],{"class":36,"line":71},[34,54607,53613],{"class":47},[34,54609,54610],{"class":54}," repoquery",[34,54612,13169],{"class":50},[34,54614,54011],{"class":54},[34,54616,54617],{"class":36,"line":77},[34,54618,62],{"emptyLinePlaceholder":61},[34,54620,54621],{"class":36,"line":82},[34,54622,6575],{"class":40},[34,54624,54625,54627,54629,54632],{"class":36,"line":88},[34,54626,53613],{"class":47},[34,54628,54610],{"class":54},[34,54630,54631],{"class":50}," --requires",[34,54633,54011],{"class":54},[34,54635,54636],{"class":36,"line":242},[34,54637,62],{"emptyLinePlaceholder":61},[34,54639,54640],{"class":36,"line":250},[34,54641,54642],{"class":40},"# Show what depends on a package\n",[34,54644,54645,54647,54649,54652],{"class":36,"line":263},[34,54646,53613],{"class":47},[34,54648,54610],{"class":54},[34,54650,54651],{"class":50}," --whatrequires",[34,54653,54011],{"class":54},[34,54655,54656],{"class":36,"line":275},[34,54657,62],{"emptyLinePlaceholder":61},[34,54659,54660],{"class":36,"line":700},[34,54661,54662],{"class":40},"# List changelog for a package\n",[34,54664,54665,54667,54670],{"class":36,"line":706},[34,54666,53613],{"class":47},[34,54668,54669],{"class":54}," changelog",[34,54671,54011],{"class":54},[388,54673,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":54675},[54676],{"id":6541,"depth":44,"text":6501},"Package Information in DNF.",{},{"title":6501,"description":54677},"dnf/package-information",[53613,5591,53602,53983,5588,53984],"2PjcZl9tx9kh0QFiw3jrbQEZIeYYhIPc2Y2AFyu9Tjw",{"id":54684,"title":54422,"body":54685,"date":402,"description":54815,"extension":404,"meta":54816,"navigation":61,"order":706,"path":54421,"seo":54817,"stem":54818,"subject":53613,"tags":54819,"__hash__":54820},"topics/dnf/query-commands.md",{"type":8,"value":54686,"toc":54812},[54687,54690,54810],[11,54688,54422],{"id":54689},"query-commands",[25,54691,54693],{"className":27,"code":54692,"language":29,"meta":30,"style":30},"# List all packages matching pattern\ndnf list 'pattern*'\n\n# List recently added packages\ndnf list recent\n\n# List updates available\ndnf list updates\n\n# List obsolete packages\ndnf list obsoletes\n\n# Show installed package size\ndnf repoquery --installed --qf '%{size} %{name}'\n\n# List packages by install date\ndnf repoquery --userinstalled --qf '%{installtime} %{name}'\n",[20,54694,54695,54700,54709,54713,54718,54727,54731,54736,54745,54749,54754,54763,54767,54772,54787,54791,54796],{"__ignoreMap":30},[34,54696,54697],{"class":36,"line":37},[34,54698,54699],{"class":40},"# List all packages matching pattern\n",[34,54701,54702,54704,54706],{"class":36,"line":44},[34,54703,53613],{"class":47},[34,54705,6345],{"class":54},[34,54707,54708],{"class":54}," 'pattern*'\n",[34,54710,54711],{"class":36,"line":58},[34,54712,62],{"emptyLinePlaceholder":61},[34,54714,54715],{"class":36,"line":65},[34,54716,54717],{"class":40},"# List recently added packages\n",[34,54719,54720,54722,54724],{"class":36,"line":71},[34,54721,53613],{"class":47},[34,54723,6345],{"class":54},[34,54725,54726],{"class":54}," recent\n",[34,54728,54729],{"class":36,"line":77},[34,54730,62],{"emptyLinePlaceholder":61},[34,54732,54733],{"class":36,"line":82},[34,54734,54735],{"class":40},"# List updates available\n",[34,54737,54738,54740,54742],{"class":36,"line":88},[34,54739,53613],{"class":47},[34,54741,6345],{"class":54},[34,54743,54744],{"class":54}," updates\n",[34,54746,54747],{"class":36,"line":242},[34,54748,62],{"emptyLinePlaceholder":61},[34,54750,54751],{"class":36,"line":250},[34,54752,54753],{"class":40},"# List obsolete packages\n",[34,54755,54756,54758,54760],{"class":36,"line":263},[34,54757,53613],{"class":47},[34,54759,6345],{"class":54},[34,54761,54762],{"class":54}," obsoletes\n",[34,54764,54765],{"class":36,"line":275},[34,54766,62],{"emptyLinePlaceholder":61},[34,54768,54769],{"class":36,"line":700},[34,54770,54771],{"class":40},"# Show installed package size\n",[34,54773,54774,54776,54778,54781,54784],{"class":36,"line":706},[34,54775,53613],{"class":47},[34,54777,54610],{"class":54},[34,54779,54780],{"class":50}," --installed",[34,54782,54783],{"class":50}," --qf",[34,54785,54786],{"class":54}," '%{size} %{name}'\n",[34,54788,54789],{"class":36,"line":715},[34,54790,62],{"emptyLinePlaceholder":61},[34,54792,54793],{"class":36,"line":725},[34,54794,54795],{"class":40},"# List packages by install date\n",[34,54797,54798,54800,54802,54805,54807],{"class":36,"line":734},[34,54799,53613],{"class":47},[34,54801,54610],{"class":54},[34,54803,54804],{"class":50}," --userinstalled",[34,54806,54783],{"class":50},[34,54808,54809],{"class":54}," '%{installtime} %{name}'\n",[388,54811,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":54813},[54814],{"id":54689,"depth":44,"text":54422},"Query Commands in DNF.",{},{"title":54422,"description":54815},"dnf/query-commands",[53613,5591,53602,53983,5588,53984],"plo_8ZAvx6k0sHexJiymDI-XLCq-UPo0hbPQDqRT9KI",{"id":54822,"title":6479,"body":54823,"date":402,"description":54900,"extension":404,"meta":54901,"navigation":61,"order":58,"path":54364,"seo":54902,"stem":54903,"subject":53613,"tags":54904,"__hash__":54905},"topics/dnf/removing-packages.md",{"type":8,"value":54824,"toc":54897},[54825,54827,54895],[11,54826,6479],{"id":6657},[25,54828,54830],{"className":27,"code":54829,"language":29,"meta":30,"style":30},"# Remove a package\ndnf remove package_name\n\n# Remove multiple packages\ndnf remove package1 package2\n\n# Remove a package and its dependencies (not used by other packages)\ndnf autoremove package_name\n\n# Remove unused dependencies\ndnf autoremove\n",[20,54831,54832,54836,54844,54848,54853,54864,54868,54873,54881,54885,54889],{"__ignoreMap":30},[34,54833,54834],{"class":36,"line":37},[34,54835,16314],{"class":40},[34,54837,54838,54840,54842],{"class":36,"line":44},[34,54839,53613],{"class":47},[34,54841,6676],{"class":54},[34,54843,54011],{"class":54},[34,54845,54846],{"class":36,"line":58},[34,54847,62],{"emptyLinePlaceholder":61},[34,54849,54850],{"class":36,"line":65},[34,54851,54852],{"class":40},"# Remove multiple packages\n",[34,54854,54855,54857,54859,54861],{"class":36,"line":71},[34,54856,53613],{"class":47},[34,54858,6676],{"class":54},[34,54860,54260],{"class":54},[34,54862,54863],{"class":54}," package2\n",[34,54865,54866],{"class":36,"line":77},[34,54867,62],{"emptyLinePlaceholder":61},[34,54869,54870],{"class":36,"line":82},[34,54871,54872],{"class":40},"# Remove a package and its dependencies (not used by other packages)\n",[34,54874,54875,54877,54879],{"class":36,"line":88},[34,54876,53613],{"class":47},[34,54878,5852],{"class":54},[34,54880,54011],{"class":54},[34,54882,54883],{"class":36,"line":242},[34,54884,62],{"emptyLinePlaceholder":61},[34,54886,54887],{"class":36,"line":250},[34,54888,6718],{"class":40},[34,54890,54891,54893],{"class":36,"line":263},[34,54892,53613],{"class":47},[34,54894,5700],{"class":54},[388,54896,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":54898},[54899],{"id":6657,"depth":44,"text":6479},"Removing Packages in DNF.",{},{"title":6479,"description":54900},"dnf/removing-packages",[53613,5591,53602,53983,5588,53984],"mv5E46XEEDROg6qUXJSLuwmOSPYTLwn4_UjoBTEr7kY",{"id":54907,"title":54386,"body":54908,"date":402,"description":55054,"extension":404,"meta":55055,"navigation":61,"order":82,"path":54385,"seo":55056,"stem":55057,"subject":53613,"tags":55058,"__hash__":55059},"topics/dnf/repository-management.md",{"type":8,"value":54909,"toc":55051},[54910,54913,55049],[11,54911,54386],{"id":54912},"repository-management",[25,54914,54916],{"className":27,"code":54915,"language":29,"meta":30,"style":30},"# List enabled repositories\ndnf repolist\n\n# List all repositories (enabled and disabled)\ndnf repolist all\n\n# Enable a repository\ndnf config-manager --set-enabled repository_id\n\n# Disable a repository\ndnf config-manager --set-disabled repository_id\n\n# Add a new repository\ndnf config-manager --add-repo repository_url\n\n# Install from a specific repository\ndnf --enablerepo=repository_id install package_name\n\n# Show repository information\ndnf repoinfo repository_id\n",[20,54917,54918,54923,54930,54934,54939,54948,54952,54957,54970,54974,54979,54990,54994,54999,55011,55015,55020,55031,55035,55040],{"__ignoreMap":30},[34,54919,54920],{"class":36,"line":37},[34,54921,54922],{"class":40},"# List enabled repositories\n",[34,54924,54925,54927],{"class":36,"line":44},[34,54926,53613],{"class":47},[34,54928,54929],{"class":54}," repolist\n",[34,54931,54932],{"class":36,"line":58},[34,54933,62],{"emptyLinePlaceholder":61},[34,54935,54936],{"class":36,"line":65},[34,54937,54938],{"class":40},"# List all repositories (enabled and disabled)\n",[34,54940,54941,54943,54946],{"class":36,"line":71},[34,54942,53613],{"class":47},[34,54944,54945],{"class":54}," repolist",[34,54947,53936],{"class":54},[34,54949,54950],{"class":36,"line":77},[34,54951,62],{"emptyLinePlaceholder":61},[34,54953,54954],{"class":36,"line":82},[34,54955,54956],{"class":40},"# Enable a repository\n",[34,54958,54959,54961,54964,54967],{"class":36,"line":88},[34,54960,53613],{"class":47},[34,54962,54963],{"class":54}," config-manager",[34,54965,54966],{"class":50}," --set-enabled",[34,54968,54969],{"class":54}," repository_id\n",[34,54971,54972],{"class":36,"line":242},[34,54973,62],{"emptyLinePlaceholder":61},[34,54975,54976],{"class":36,"line":250},[34,54977,54978],{"class":40},"# Disable a repository\n",[34,54980,54981,54983,54985,54988],{"class":36,"line":263},[34,54982,53613],{"class":47},[34,54984,54963],{"class":54},[34,54986,54987],{"class":50}," --set-disabled",[34,54989,54969],{"class":54},[34,54991,54992],{"class":36,"line":275},[34,54993,62],{"emptyLinePlaceholder":61},[34,54995,54996],{"class":36,"line":700},[34,54997,54998],{"class":40},"# Add a new repository\n",[34,55000,55001,55003,55005,55008],{"class":36,"line":706},[34,55002,53613],{"class":47},[34,55004,54963],{"class":54},[34,55006,55007],{"class":50}," --add-repo",[34,55009,55010],{"class":54}," repository_url\n",[34,55012,55013],{"class":36,"line":715},[34,55014,62],{"emptyLinePlaceholder":61},[34,55016,55017],{"class":36,"line":725},[34,55018,55019],{"class":40},"# Install from a specific repository\n",[34,55021,55022,55024,55027,55029],{"class":36,"line":734},[34,55023,53613],{"class":47},[34,55025,55026],{"class":50}," --enablerepo=repository_id",[34,55028,118],{"class":54},[34,55030,54011],{"class":54},[34,55032,55033],{"class":36,"line":742},[34,55034,62],{"emptyLinePlaceholder":61},[34,55036,55037],{"class":36,"line":748},[34,55038,55039],{"class":40},"# Show repository information\n",[34,55041,55042,55044,55047],{"class":36,"line":754},[34,55043,53613],{"class":47},[34,55045,55046],{"class":54}," repoinfo",[34,55048,54969],{"class":54},[388,55050,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":55052},[55053],{"id":54912,"depth":44,"text":54386},"Repository Management in DNF.",{},{"title":54386,"description":55054},"dnf/repository-management",[53613,5591,53602,53983,5588,53984],"i6-ebPhpgRQHodCre7POFR62U5uJLSL3reFQikwl-lo",{"id":55061,"title":6491,"body":55062,"date":402,"description":55213,"extension":404,"meta":55214,"navigation":61,"order":71,"path":54375,"seo":55215,"stem":55216,"subject":53613,"tags":55217,"__hash__":55218},"topics/dnf/searching-packages.md",{"type":8,"value":55063,"toc":55210},[55064,55066,55208],[11,55065,6491],{"id":6764},[25,55067,55069],{"className":27,"code":55068,"language":29,"meta":30,"style":30},"# Search for a package\ndnf search keyword\n\n# Search in package names and descriptions\ndnf search all keyword\n\n# Display package information\ndnf info package_name\n\n# List all available packages\ndnf list available\n\n# List installed packages\ndnf list installed\n\n# List packages matching pattern\ndnf list 'pattern*'\n\n# Show which package provides a file\ndnf provides /path/to/file\n\n# Show which package provides a command\ndnf provides '*/command_name'\n",[20,55070,55071,55075,55084,55088,55093,55103,55107,55112,55120,55124,55128,55137,55141,55145,55154,55158,55163,55171,55175,55180,55190,55194,55199],{"__ignoreMap":30},[34,55072,55073],{"class":36,"line":37},[34,55074,6774],{"class":40},[34,55076,55077,55079,55081],{"class":36,"line":44},[34,55078,53613],{"class":47},[34,55080,5870],{"class":54},[34,55082,55083],{"class":54}," keyword\n",[34,55085,55086],{"class":36,"line":58},[34,55087,62],{"emptyLinePlaceholder":61},[34,55089,55090],{"class":36,"line":65},[34,55091,55092],{"class":40},"# Search in package names and descriptions\n",[34,55094,55095,55097,55099,55101],{"class":36,"line":71},[34,55096,53613],{"class":47},[34,55098,5870],{"class":54},[34,55100,5034],{"class":54},[34,55102,55083],{"class":54},[34,55104,55105],{"class":36,"line":77},[34,55106,62],{"emptyLinePlaceholder":61},[34,55108,55109],{"class":36,"line":82},[34,55110,55111],{"class":40},"# Display package information\n",[34,55113,55114,55116,55118],{"class":36,"line":88},[34,55115,53613],{"class":47},[34,55117,54126],{"class":54},[34,55119,54011],{"class":54},[34,55121,55122],{"class":36,"line":242},[34,55123,62],{"emptyLinePlaceholder":61},[34,55125,55126],{"class":36,"line":250},[34,55127,6375],{"class":40},[34,55129,55130,55132,55134],{"class":36,"line":263},[34,55131,53613],{"class":47},[34,55133,6345],{"class":54},[34,55135,55136],{"class":54}," available\n",[34,55138,55139],{"class":36,"line":275},[34,55140,62],{"emptyLinePlaceholder":61},[34,55142,55143],{"class":36,"line":700},[34,55144,16346],{"class":40},[34,55146,55147,55149,55151],{"class":36,"line":706},[34,55148,53613],{"class":47},[34,55150,6345],{"class":54},[34,55152,55153],{"class":54}," installed\n",[34,55155,55156],{"class":36,"line":715},[34,55157,62],{"emptyLinePlaceholder":61},[34,55159,55160],{"class":36,"line":725},[34,55161,55162],{"class":40},"# List packages matching pattern\n",[34,55164,55165,55167,55169],{"class":36,"line":734},[34,55166,53613],{"class":47},[34,55168,6345],{"class":54},[34,55170,54708],{"class":54},[34,55172,55173],{"class":36,"line":742},[34,55174,62],{"emptyLinePlaceholder":61},[34,55176,55177],{"class":36,"line":748},[34,55178,55179],{"class":40},"# Show which package provides a file\n",[34,55181,55182,55184,55187],{"class":36,"line":754},[34,55183,53613],{"class":47},[34,55185,55186],{"class":54}," provides",[34,55188,55189],{"class":54}," /path/to/file\n",[34,55191,55192],{"class":36,"line":759},[34,55193,62],{"emptyLinePlaceholder":61},[34,55195,55196],{"class":36,"line":771},[34,55197,55198],{"class":40},"# Show which package provides a command\n",[34,55200,55201,55203,55205],{"class":36,"line":794},[34,55202,53613],{"class":47},[34,55204,55186],{"class":54},[34,55206,55207],{"class":54}," '*/command_name'\n",[388,55209,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":55211},[55212],{"id":6764,"depth":44,"text":6491},"Searching Packages in DNF.",{},{"title":6491,"description":55213},"dnf/searching-packages",[53613,5591,53602,53983,5588,53984],"6c0wCG1IJDjSPuxZyDdbjbHTIKmaUnXUrOrygGS2dPA",{"id":55220,"title":54428,"body":55221,"date":402,"description":55325,"extension":404,"meta":55326,"navigation":61,"order":715,"path":54427,"seo":55327,"stem":55328,"subject":53613,"tags":55329,"__hash__":55330},"topics/dnf/security-updates.md",{"type":8,"value":55222,"toc":55322},[55223,55226,55320],[11,55224,54428],{"id":55225},"security-updates",[25,55227,55229],{"className":27,"code":55228,"language":29,"meta":30,"style":30},"# List security updates\ndnf updateinfo list security\n\n# Install only security updates\ndnf update --security\n\n# List advisories\ndnf updateinfo\n\n# Show specific advisory details\ndnf updateinfo info advisory_id\n\n# Update packages for specific advisory\ndnf update --advisory=advisory_id\n",[20,55230,55231,55236,55248,55252,55257,55266,55270,55275,55282,55286,55291,55302,55306,55311],{"__ignoreMap":30},[34,55232,55233],{"class":36,"line":37},[34,55234,55235],{"class":40},"# List security updates\n",[34,55237,55238,55240,55243,55245],{"class":36,"line":44},[34,55239,53613],{"class":47},[34,55241,55242],{"class":54}," updateinfo",[34,55244,6345],{"class":54},[34,55246,55247],{"class":54}," security\n",[34,55249,55250],{"class":36,"line":58},[34,55251,62],{"emptyLinePlaceholder":61},[34,55253,55254],{"class":36,"line":65},[34,55255,55256],{"class":40},"# Install only security updates\n",[34,55258,55259,55261,55263],{"class":36,"line":71},[34,55260,53613],{"class":47},[34,55262,5619],{"class":54},[34,55264,55265],{"class":50}," --security\n",[34,55267,55268],{"class":36,"line":77},[34,55269,62],{"emptyLinePlaceholder":61},[34,55271,55272],{"class":36,"line":82},[34,55273,55274],{"class":40},"# List advisories\n",[34,55276,55277,55279],{"class":36,"line":88},[34,55278,53613],{"class":47},[34,55280,55281],{"class":54}," updateinfo\n",[34,55283,55284],{"class":36,"line":242},[34,55285,62],{"emptyLinePlaceholder":61},[34,55287,55288],{"class":36,"line":250},[34,55289,55290],{"class":40},"# Show specific advisory details\n",[34,55292,55293,55295,55297,55299],{"class":36,"line":263},[34,55294,53613],{"class":47},[34,55296,55242],{"class":54},[34,55298,54126],{"class":54},[34,55300,55301],{"class":54}," advisory_id\n",[34,55303,55304],{"class":36,"line":275},[34,55305,62],{"emptyLinePlaceholder":61},[34,55307,55308],{"class":36,"line":700},[34,55309,55310],{"class":40},"# Update packages for specific advisory\n",[34,55312,55313,55315,55317],{"class":36,"line":706},[34,55314,53613],{"class":47},[34,55316,5619],{"class":54},[34,55318,55319],{"class":50}," --advisory=advisory_id\n",[388,55321,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":55323},[55324],{"id":55225,"depth":44,"text":54428},"Security Updates in DNF.",{},{"title":54428,"description":55325},"dnf/security-updates",[53613,5591,53602,53983,5588,53984],"DZLESAz5RjhZf5fhKk6bV1mQDOqAw9ZIVvgYbXPI30Y",{"id":55332,"title":54410,"body":55333,"date":402,"description":55467,"extension":404,"meta":55468,"navigation":61,"order":275,"path":54409,"seo":55469,"stem":55470,"subject":53613,"tags":55471,"__hash__":55472},"topics/dnf/system-operations.md",{"type":8,"value":55334,"toc":55464},[55335,55338,55462],[11,55336,54410],{"id":55337},"system-operations",[25,55339,55341],{"className":27,"code":55340,"language":29,"meta":30,"style":30},"# Check for problems in system\ndnf check\n\n# List duplicate packages\ndnf list --duplicates\n\n# Remove duplicate packages\ndnf remove --duplicates\n\n# Synchronize packages to repository versions\ndnf distro-sync\n\n# Show DNF configuration\ndnf config-manager --dump\n\n# Mark packages as installed by user\ndnf mark install package_name\n\n# Mark packages as dependency\ndnf mark remove package_name\n",[20,55342,55343,55348,55354,55358,55363,55372,55376,55381,55389,55393,55398,55405,55409,55414,55423,55427,55432,55443,55447,55452],{"__ignoreMap":30},[34,55344,55345],{"class":36,"line":37},[34,55346,55347],{"class":40},"# Check for problems in system\n",[34,55349,55350,55352],{"class":36,"line":44},[34,55351,53613],{"class":47},[34,55353,5718],{"class":54},[34,55355,55356],{"class":36,"line":58},[34,55357,62],{"emptyLinePlaceholder":61},[34,55359,55360],{"class":36,"line":65},[34,55361,55362],{"class":40},"# List duplicate packages\n",[34,55364,55365,55367,55369],{"class":36,"line":71},[34,55366,53613],{"class":47},[34,55368,6345],{"class":54},[34,55370,55371],{"class":50}," --duplicates\n",[34,55373,55374],{"class":36,"line":77},[34,55375,62],{"emptyLinePlaceholder":61},[34,55377,55378],{"class":36,"line":82},[34,55379,55380],{"class":40},"# Remove duplicate packages\n",[34,55382,55383,55385,55387],{"class":36,"line":88},[34,55384,53613],{"class":47},[34,55386,6676],{"class":54},[34,55388,55371],{"class":50},[34,55390,55391],{"class":36,"line":242},[34,55392,62],{"emptyLinePlaceholder":61},[34,55394,55395],{"class":36,"line":250},[34,55396,55397],{"class":40},"# Synchronize packages to repository versions\n",[34,55399,55400,55402],{"class":36,"line":263},[34,55401,53613],{"class":47},[34,55403,55404],{"class":54}," distro-sync\n",[34,55406,55407],{"class":36,"line":275},[34,55408,62],{"emptyLinePlaceholder":61},[34,55410,55411],{"class":36,"line":700},[34,55412,55413],{"class":40},"# Show DNF configuration\n",[34,55415,55416,55418,55420],{"class":36,"line":706},[34,55417,53613],{"class":47},[34,55419,54963],{"class":54},[34,55421,55422],{"class":50}," --dump\n",[34,55424,55425],{"class":36,"line":715},[34,55426,62],{"emptyLinePlaceholder":61},[34,55428,55429],{"class":36,"line":725},[34,55430,55431],{"class":40},"# Mark packages as installed by user\n",[34,55433,55434,55436,55439,55441],{"class":36,"line":734},[34,55435,53613],{"class":47},[34,55437,55438],{"class":54}," mark",[34,55440,118],{"class":54},[34,55442,54011],{"class":54},[34,55444,55445],{"class":36,"line":742},[34,55446,62],{"emptyLinePlaceholder":61},[34,55448,55449],{"class":36,"line":748},[34,55450,55451],{"class":40},"# Mark packages as dependency\n",[34,55453,55454,55456,55458,55460],{"class":36,"line":754},[34,55455,53613],{"class":47},[34,55457,55438],{"class":54},[34,55459,6676],{"class":54},[34,55461,54011],{"class":54},[388,55463,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":55465},[55466],{"id":55337,"depth":44,"text":54410},"System Operations in DNF.",{},{"title":54410,"description":55467},"dnf/system-operations",[53613,5591,53602,53983,5588,53984],"D1q0Aw7sATkVSOMVXeW1SYbh8sJQ9WzlizAJg5E6Pe0",{"id":55474,"title":54370,"body":55475,"date":402,"description":55582,"extension":404,"meta":55583,"navigation":61,"order":65,"path":54369,"seo":55584,"stem":55585,"subject":53613,"tags":55586,"__hash__":55587},"topics/dnf/updating-packages.md",{"type":8,"value":55476,"toc":55579},[55477,55480,55577],[11,55478,54370],{"id":55479},"updating-packages",[25,55481,55483],{"className":27,"code":55482,"language":29,"meta":30,"style":30},"# Update all packages\ndnf update\n\n# Update all packages without confirmation\ndnf update -y\n\n# Update a specific package\ndnf update package_name\n\n# Check for available updates\ndnf check-update\n\n# Upgrade packages (same as update)\ndnf upgrade\n\n# Update minimal (security and bugfix only)\ndnf update-minimal\n",[20,55484,55485,55490,55496,55500,55505,55513,55517,55522,55530,55534,55539,55546,55550,55555,55561,55565,55570],{"__ignoreMap":30},[34,55486,55487],{"class":36,"line":37},[34,55488,55489],{"class":40},"# Update all packages\n",[34,55491,55492,55494],{"class":36,"line":44},[34,55493,53613],{"class":47},[34,55495,6441],{"class":54},[34,55497,55498],{"class":36,"line":58},[34,55499,62],{"emptyLinePlaceholder":61},[34,55501,55502],{"class":36,"line":65},[34,55503,55504],{"class":40},"# Update all packages without confirmation\n",[34,55506,55507,55509,55511],{"class":36,"line":71},[34,55508,53613],{"class":47},[34,55510,5619],{"class":54},[34,55512,5665],{"class":50},[34,55514,55515],{"class":36,"line":77},[34,55516,62],{"emptyLinePlaceholder":61},[34,55518,55519],{"class":36,"line":82},[34,55520,55521],{"class":40},"# Update a specific package\n",[34,55523,55524,55526,55528],{"class":36,"line":88},[34,55525,53613],{"class":47},[34,55527,5619],{"class":54},[34,55529,54011],{"class":54},[34,55531,55532],{"class":36,"line":242},[34,55533,62],{"emptyLinePlaceholder":61},[34,55535,55536],{"class":36,"line":250},[34,55537,55538],{"class":40},"# Check for available updates\n",[34,55540,55541,55543],{"class":36,"line":263},[34,55542,53613],{"class":47},[34,55544,55545],{"class":54}," check-update\n",[34,55547,55548],{"class":36,"line":275},[34,55549,62],{"emptyLinePlaceholder":61},[34,55551,55552],{"class":36,"line":700},[34,55553,55554],{"class":40},"# Upgrade packages (same as update)\n",[34,55556,55557,55559],{"class":36,"line":706},[34,55558,53613],{"class":47},[34,55560,6986],{"class":54},[34,55562,55563],{"class":36,"line":715},[34,55564,62],{"emptyLinePlaceholder":61},[34,55566,55567],{"class":36,"line":725},[34,55568,55569],{"class":40},"# Update minimal (security and bugfix only)\n",[34,55571,55572,55574],{"class":36,"line":734},[34,55573,53613],{"class":47},[34,55575,55576],{"class":54}," update-minimal\n",[388,55578,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":55580},[55581],{"id":55479,"depth":44,"text":54370},"Updating Packages in DNF.",{},{"title":54370,"description":55582},"dnf/updating-packages",[53613,5591,53602,53983,5588,53984],"zrQbivKuBnBHURWLh-3ftDnjq7to2YBiH1GPuiRvZug",{"id":55589,"title":54416,"body":55590,"date":402,"description":55726,"extension":404,"meta":55727,"navigation":61,"order":700,"path":54415,"seo":55728,"stem":55729,"subject":53613,"tags":55730,"__hash__":55731},"topics/dnf/useful-options.md",{"type":8,"value":55591,"toc":55723},[55592,55595,55721],[11,55593,54416],{"id":55594},"useful-options",[25,55596,55598],{"className":27,"code":55597,"language":29,"meta":30,"style":30},"# Assume yes to all prompts\ndnf -y command\n\n# Show verbose output\ndnf -v command\n\n# Quiet mode (minimal output)\ndnf -q command\n\n# Skip broken packages\ndnf --skip-broken command\n\n# Best candidate (ignore version locks)\ndnf --best command\n\n# Allow erasing of protected packages\ndnf --allowerasing command\n\n# Refresh repository metadata\ndnf --refresh command\n",[20,55599,55600,55605,55614,55618,55623,55631,55635,55640,55649,55653,55658,55667,55671,55676,55685,55689,55694,55703,55707,55712],{"__ignoreMap":30},[34,55601,55602],{"class":36,"line":37},[34,55603,55604],{"class":40},"# Assume yes to all prompts\n",[34,55606,55607,55609,55611],{"class":36,"line":44},[34,55608,53613],{"class":47},[34,55610,5843],{"class":50},[34,55612,55613],{"class":54}," command\n",[34,55615,55616],{"class":36,"line":58},[34,55617,62],{"emptyLinePlaceholder":61},[34,55619,55620],{"class":36,"line":65},[34,55621,55622],{"class":40},"# Show verbose output\n",[34,55624,55625,55627,55629],{"class":36,"line":71},[34,55626,53613],{"class":47},[34,55628,12530],{"class":50},[34,55630,55613],{"class":54},[34,55632,55633],{"class":36,"line":77},[34,55634,62],{"emptyLinePlaceholder":61},[34,55636,55637],{"class":36,"line":82},[34,55638,55639],{"class":40},"# Quiet mode (minimal output)\n",[34,55641,55642,55644,55647],{"class":36,"line":88},[34,55643,53613],{"class":47},[34,55645,55646],{"class":50}," -q",[34,55648,55613],{"class":54},[34,55650,55651],{"class":36,"line":242},[34,55652,62],{"emptyLinePlaceholder":61},[34,55654,55655],{"class":36,"line":250},[34,55656,55657],{"class":40},"# Skip broken packages\n",[34,55659,55660,55662,55665],{"class":36,"line":263},[34,55661,53613],{"class":47},[34,55663,55664],{"class":50}," --skip-broken",[34,55666,55613],{"class":54},[34,55668,55669],{"class":36,"line":275},[34,55670,62],{"emptyLinePlaceholder":61},[34,55672,55673],{"class":36,"line":700},[34,55674,55675],{"class":40},"# Best candidate (ignore version locks)\n",[34,55677,55678,55680,55683],{"class":36,"line":706},[34,55679,53613],{"class":47},[34,55681,55682],{"class":50}," --best",[34,55684,55613],{"class":54},[34,55686,55687],{"class":36,"line":715},[34,55688,62],{"emptyLinePlaceholder":61},[34,55690,55691],{"class":36,"line":725},[34,55692,55693],{"class":40},"# Allow erasing of protected packages\n",[34,55695,55696,55698,55701],{"class":36,"line":734},[34,55697,53613],{"class":47},[34,55699,55700],{"class":50}," --allowerasing",[34,55702,55613],{"class":54},[34,55704,55705],{"class":36,"line":742},[34,55706,62],{"emptyLinePlaceholder":61},[34,55708,55709],{"class":36,"line":748},[34,55710,55711],{"class":40},"# Refresh repository metadata\n",[34,55713,55714,55716,55719],{"class":36,"line":754},[34,55715,53613],{"class":47},[34,55717,55718],{"class":50}," --refresh",[34,55720,55613],{"class":54},[388,55722,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":55724},[55725],{"id":55594,"depth":44,"text":54416},"Useful Options in DNF.",{},{"title":54416,"description":55726},"dnf/useful-options",[53613,5591,53602,53983,5588,53984],"Xc_8TFWScLNYVT4N3H5NrEm86HMEdBsqiM28XEcVM8w",{"id":55733,"title":55734,"body":55735,"date":402,"description":55961,"extension":404,"meta":55962,"navigation":61,"order":82,"path":55963,"seo":55964,"stem":55965,"subject":55966,"tags":55967,"__hash__":55969},"topics/docker/compose-commands.md","Compose Commands",{"type":8,"value":55736,"toc":55958},[55737,55740,55956],[11,55738,55734],{"id":55739},"compose-commands",[25,55741,55743],{"className":27,"code":55742,"language":29,"meta":30,"style":30},"# Start services\ndocker-compose up\ndocker-compose up -d           # Detached\ndocker-compose up --build      # Rebuild images\ndocker-compose up --scale web=3  # Scale service\n\n# Stop services\ndocker-compose down\ndocker-compose down -v         # Remove volumes\ndocker-compose down --rmi all  # Remove images\n\n# Manage services\ndocker-compose start\ndocker-compose stop\ndocker-compose restart\ndocker-compose pause\ndocker-compose unpause\n\n# View logs\ndocker-compose logs\ndocker-compose logs -f         # Follow\ndocker-compose logs web        # Specific service\n\n# Execute command\ndocker-compose exec web sh\ndocker-compose run web npm test\n",[20,55744,55745,55750,55758,55770,55782,55799,55803,55808,55815,55827,55841,55845,55849,55855,55862,55869,55876,55883,55887,55892,55899,55911,55923,55927,55932,55943],{"__ignoreMap":30},[34,55746,55747],{"class":36,"line":37},[34,55748,55749],{"class":40},"# Start services\n",[34,55751,55752,55755],{"class":36,"line":44},[34,55753,55754],{"class":47},"docker-compose",[34,55756,55757],{"class":54}," up\n",[34,55759,55760,55762,55765,55767],{"class":36,"line":58},[34,55761,55754],{"class":47},[34,55763,55764],{"class":54}," up",[34,55766,9750],{"class":50},[34,55768,55769],{"class":40},"           # Detached\n",[34,55771,55772,55774,55776,55779],{"class":36,"line":65},[34,55773,55754],{"class":47},[34,55775,55764],{"class":54},[34,55777,55778],{"class":50}," --build",[34,55780,55781],{"class":40},"      # Rebuild images\n",[34,55783,55784,55786,55788,55791,55794,55796],{"class":36,"line":71},[34,55785,55754],{"class":47},[34,55787,55764],{"class":54},[34,55789,55790],{"class":50}," --scale",[34,55792,55793],{"class":54}," web=",[34,55795,3162],{"class":50},[34,55797,55798],{"class":40},"  # Scale service\n",[34,55800,55801],{"class":36,"line":77},[34,55802,62],{"emptyLinePlaceholder":61},[34,55804,55805],{"class":36,"line":82},[34,55806,55807],{"class":40},"# Stop services\n",[34,55809,55810,55812],{"class":36,"line":88},[34,55811,55754],{"class":47},[34,55813,55814],{"class":54}," down\n",[34,55816,55817,55819,55822,55824],{"class":36,"line":242},[34,55818,55754],{"class":47},[34,55820,55821],{"class":54}," down",[34,55823,12530],{"class":50},[34,55825,55826],{"class":40},"         # Remove volumes\n",[34,55828,55829,55831,55833,55836,55838],{"class":36,"line":250},[34,55830,55754],{"class":47},[34,55832,55821],{"class":54},[34,55834,55835],{"class":50}," --rmi",[34,55837,5034],{"class":54},[34,55839,55840],{"class":40},"  # Remove images\n",[34,55842,55843],{"class":36,"line":263},[34,55844,62],{"emptyLinePlaceholder":61},[34,55846,55847],{"class":36,"line":275},[34,55848,5384],{"class":40},[34,55850,55851,55853],{"class":36,"line":700},[34,55852,55754],{"class":47},[34,55854,48648],{"class":54},[34,55856,55857,55859],{"class":36,"line":706},[34,55858,55754],{"class":47},[34,55860,55861],{"class":54}," stop\n",[34,55863,55864,55866],{"class":36,"line":715},[34,55865,55754],{"class":47},[34,55867,55868],{"class":54}," restart\n",[34,55870,55871,55873],{"class":36,"line":725},[34,55872,55754],{"class":47},[34,55874,55875],{"class":54}," pause\n",[34,55877,55878,55880],{"class":36,"line":734},[34,55879,55754],{"class":47},[34,55881,55882],{"class":54}," unpause\n",[34,55884,55885],{"class":36,"line":742},[34,55886,62],{"emptyLinePlaceholder":61},[34,55888,55889],{"class":36,"line":748},[34,55890,55891],{"class":40},"# View logs\n",[34,55893,55894,55896],{"class":36,"line":754},[34,55895,55754],{"class":47},[34,55897,55898],{"class":54}," logs\n",[34,55900,55901,55903,55906,55908],{"class":36,"line":759},[34,55902,55754],{"class":47},[34,55904,55905],{"class":54}," logs",[34,55907,6001],{"class":50},[34,55909,55910],{"class":40},"         # Follow\n",[34,55912,55913,55915,55917,55920],{"class":36,"line":771},[34,55914,55754],{"class":47},[34,55916,55905],{"class":54},[34,55918,55919],{"class":54}," web",[34,55921,55922],{"class":40},"        # Specific service\n",[34,55924,55925],{"class":36,"line":794},[34,55926,62],{"emptyLinePlaceholder":61},[34,55928,55929],{"class":36,"line":824},[34,55930,55931],{"class":40},"# Execute command\n",[34,55933,55934,55936,55939,55941],{"class":36,"line":830},[34,55935,55754],{"class":47},[34,55937,55938],{"class":54}," exec",[34,55940,55919],{"class":54},[34,55942,48093],{"class":54},[34,55944,55945,55947,55949,55951,55954],{"class":36,"line":839},[34,55946,55754],{"class":47},[34,55948,16017],{"class":54},[34,55950,55919],{"class":54},[34,55952,55953],{"class":54}," npm",[34,55955,16110],{"class":54},[388,55957,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":55959},[55960],{"id":55739,"depth":44,"text":55734},"Compose Commands in Docker.",{},"/docker/compose-commands",{"title":55734,"description":55961},"docker/compose-commands","docker",[55966,30382,5438,55968],"deployment","YiOY-xAKz_i6rz7Nl398LK5rHTN22EZ-5mG6arqzLw0",{"id":55971,"title":55972,"body":55973,"date":402,"description":56349,"extension":404,"meta":56350,"navigation":61,"order":44,"path":56351,"seo":56352,"stem":56353,"subject":55966,"tags":56354,"__hash__":56355},"topics/docker/container-management.md","Container Management",{"type":8,"value":55974,"toc":56346},[55975,55978,56344],[11,55976,55972],{"id":55977},"container-management",[25,55979,55981],{"className":27,"code":55980,"language":29,"meta":30,"style":30},"# Run a container\ndocker run \u003Cimage>\ndocker run -d \u003Cimage>              # Detached mode\ndocker run -it \u003Cimage> /bin/bash   # Interactive terminal\ndocker run --name myapp \u003Cimage>    # Named container\ndocker run -p 8080:80 \u003Cimage>      # Port mapping\ndocker run -v /host:/container \u003Cimage>  # Volume mount\ndocker run --rm \u003Cimage>            # Remove after exit\ndocker run -e VAR=value \u003Cimage>    # Environment variable\ndocker run --env-file .env \u003Cimage> # Env file\n\n# List containers\ndocker ps                # Running containers\ndocker ps -a             # All containers\ndocker ps -q             # Only IDs\n\n# Start/Stop containers\ndocker start \u003Ccontainer>\ndocker stop \u003Ccontainer>\ndocker restart \u003Ccontainer>\ndocker kill \u003Ccontainer>  # Force stop\n\n# Remove containers\ndocker rm \u003Ccontainer>\ndocker rm -f \u003Ccontainer>       # Force remove\ndocker container prune         # Remove all stopped\n",[20,55982,55983,55988,56003,56022,56045,56067,56089,56111,56131,56153,56176,56180,56185,56195,56206,56217,56221,56226,56242,56256,56271,56289,56293,56298,56312,56331],{"__ignoreMap":30},[34,55984,55985],{"class":36,"line":37},[34,55986,55987],{"class":40},"# Run a container\n",[34,55989,55990,55992,55994,55996,55999,56001],{"class":36,"line":44},[34,55991,55966],{"class":47},[34,55993,16017],{"class":54},[34,55995,5470],{"class":580},[34,55997,55998],{"class":54},"imag",[34,56000,5476],{"class":181},[34,56002,1248],{"class":580},[34,56004,56005,56007,56009,56011,56013,56015,56017,56019],{"class":36,"line":58},[34,56006,55966],{"class":47},[34,56008,16017],{"class":54},[34,56010,9750],{"class":50},[34,56012,5470],{"class":580},[34,56014,55998],{"class":54},[34,56016,5476],{"class":181},[34,56018,5691],{"class":580},[34,56020,56021],{"class":40},"              # Detached mode\n",[34,56023,56024,56026,56028,56031,56033,56035,56037,56039,56042],{"class":36,"line":65},[34,56025,55966],{"class":47},[34,56027,16017],{"class":54},[34,56029,56030],{"class":50}," -it",[34,56032,5470],{"class":580},[34,56034,55998],{"class":54},[34,56036,5476],{"class":181},[34,56038,5691],{"class":580},[34,56040,56041],{"class":54}," /bin/bash",[34,56043,56044],{"class":40},"   # Interactive terminal\n",[34,56046,56047,56049,56051,56053,56056,56058,56060,56062,56064],{"class":36,"line":71},[34,56048,55966],{"class":47},[34,56050,16017],{"class":54},[34,56052,9535],{"class":50},[34,56054,56055],{"class":54}," myapp",[34,56057,5470],{"class":580},[34,56059,55998],{"class":54},[34,56061,5476],{"class":181},[34,56063,5691],{"class":580},[34,56065,56066],{"class":40},"    # Named container\n",[34,56068,56069,56071,56073,56075,56078,56080,56082,56084,56086],{"class":36,"line":77},[34,56070,55966],{"class":47},[34,56072,16017],{"class":54},[34,56074,5275],{"class":50},[34,56076,56077],{"class":54}," 8080:80",[34,56079,5470],{"class":580},[34,56081,55998],{"class":54},[34,56083,5476],{"class":181},[34,56085,5691],{"class":580},[34,56087,56088],{"class":40},"      # Port mapping\n",[34,56090,56091,56093,56095,56097,56100,56102,56104,56106,56108],{"class":36,"line":82},[34,56092,55966],{"class":47},[34,56094,16017],{"class":54},[34,56096,12530],{"class":50},[34,56098,56099],{"class":54}," /host:/container",[34,56101,5470],{"class":580},[34,56103,55998],{"class":54},[34,56105,5476],{"class":181},[34,56107,5691],{"class":580},[34,56109,56110],{"class":40},"  # Volume mount\n",[34,56112,56113,56115,56117,56120,56122,56124,56126,56128],{"class":36,"line":88},[34,56114,55966],{"class":47},[34,56116,16017],{"class":54},[34,56118,56119],{"class":50}," --rm",[34,56121,5470],{"class":580},[34,56123,55998],{"class":54},[34,56125,5476],{"class":181},[34,56127,5691],{"class":580},[34,56129,56130],{"class":40},"            # Remove after exit\n",[34,56132,56133,56135,56137,56139,56142,56144,56146,56148,56150],{"class":36,"line":242},[34,56134,55966],{"class":47},[34,56136,16017],{"class":54},[34,56138,11292],{"class":50},[34,56140,56141],{"class":54}," VAR=value",[34,56143,5470],{"class":580},[34,56145,55998],{"class":54},[34,56147,5476],{"class":181},[34,56149,5691],{"class":580},[34,56151,56152],{"class":40},"    # Environment variable\n",[34,56154,56155,56157,56159,56162,56165,56167,56169,56171,56173],{"class":36,"line":250},[34,56156,55966],{"class":47},[34,56158,16017],{"class":54},[34,56160,56161],{"class":50}," --env-file",[34,56163,56164],{"class":54}," .env",[34,56166,5470],{"class":580},[34,56168,55998],{"class":54},[34,56170,5476],{"class":181},[34,56172,5691],{"class":580},[34,56174,56175],{"class":40}," # Env file\n",[34,56177,56178],{"class":36,"line":263},[34,56179,62],{"emptyLinePlaceholder":61},[34,56181,56182],{"class":36,"line":275},[34,56183,56184],{"class":40},"# List containers\n",[34,56186,56187,56189,56192],{"class":36,"line":700},[34,56188,55966],{"class":47},[34,56190,56191],{"class":54}," ps",[34,56193,56194],{"class":40},"                # Running containers\n",[34,56196,56197,56199,56201,56203],{"class":36,"line":706},[34,56198,55966],{"class":47},[34,56200,56191],{"class":54},[34,56202,5059],{"class":50},[34,56204,56205],{"class":40},"             # All containers\n",[34,56207,56208,56210,56212,56214],{"class":36,"line":715},[34,56209,55966],{"class":47},[34,56211,56191],{"class":54},[34,56213,55646],{"class":50},[34,56215,56216],{"class":40},"             # Only IDs\n",[34,56218,56219],{"class":36,"line":725},[34,56220,62],{"emptyLinePlaceholder":61},[34,56222,56223],{"class":36,"line":734},[34,56224,56225],{"class":40},"# Start/Stop containers\n",[34,56227,56228,56230,56232,56234,56237,56240],{"class":36,"line":742},[34,56229,55966],{"class":47},[34,56231,9677],{"class":54},[34,56233,5470],{"class":580},[34,56235,56236],{"class":54},"containe",[34,56238,56239],{"class":181},"r",[34,56241,1248],{"class":580},[34,56243,56244,56246,56248,56250,56252,56254],{"class":36,"line":748},[34,56245,55966],{"class":47},[34,56247,9696],{"class":54},[34,56249,5470],{"class":580},[34,56251,56236],{"class":54},[34,56253,56239],{"class":181},[34,56255,1248],{"class":580},[34,56257,56258,56260,56263,56265,56267,56269],{"class":36,"line":754},[34,56259,55966],{"class":47},[34,56261,56262],{"class":54}," restart",[34,56264,5470],{"class":580},[34,56266,56236],{"class":54},[34,56268,56239],{"class":181},[34,56270,1248],{"class":580},[34,56272,56273,56275,56278,56280,56282,56284,56286],{"class":36,"line":759},[34,56274,55966],{"class":47},[34,56276,56277],{"class":54}," kill",[34,56279,5470],{"class":580},[34,56281,56236],{"class":54},[34,56283,56239],{"class":181},[34,56285,5691],{"class":580},[34,56287,56288],{"class":40},"  # Force stop\n",[34,56290,56291],{"class":36,"line":771},[34,56292,62],{"emptyLinePlaceholder":61},[34,56294,56295],{"class":36,"line":794},[34,56296,56297],{"class":40},"# Remove containers\n",[34,56299,56300,56302,56304,56306,56308,56310],{"class":36,"line":824},[34,56301,55966],{"class":47},[34,56303,8901],{"class":54},[34,56305,5470],{"class":580},[34,56307,56236],{"class":54},[34,56309,56239],{"class":181},[34,56311,1248],{"class":580},[34,56313,56314,56316,56318,56320,56322,56324,56326,56328],{"class":36,"line":830},[34,56315,55966],{"class":47},[34,56317,8901],{"class":54},[34,56319,6001],{"class":50},[34,56321,5470],{"class":580},[34,56323,56236],{"class":54},[34,56325,56239],{"class":181},[34,56327,5691],{"class":580},[34,56329,56330],{"class":40},"       # Force remove\n",[34,56332,56333,56335,56338,56341],{"class":36,"line":839},[34,56334,55966],{"class":47},[34,56336,56337],{"class":54}," container",[34,56339,56340],{"class":54}," prune",[34,56342,56343],{"class":40},"         # Remove all stopped\n",[388,56345,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":56347},[56348],{"id":55977,"depth":44,"text":55972},"Container Management in Docker.",{},"/docker/container-management",{"title":55972,"description":56349},"docker/container-management",[55966,30382,5438,55968],"DaNo-e8pzykOqGmitspHHmv3fkxpjnDkKFUl7zapKps",{"id":56357,"title":56358,"body":56359,"date":402,"description":56622,"extension":404,"meta":56623,"navigation":61,"order":77,"path":56624,"seo":56625,"stem":56626,"subject":55966,"tags":56627,"__hash__":56628},"topics/docker/docker-compose.md","Docker Compose",{"type":8,"value":56360,"toc":56619},[56361,56363,56616],[11,56362,56358],{"id":55754},[25,56364,56366],{"className":168,"code":56365,"language":170,"meta":30,"style":30},"# docker-compose.yml\nversion: '3.8'\n\nservices:\n  web:\n    build: .\n    ports:\n      - \"3000:3000\"\n    environment:\n      - NODE_ENV=production\n      - DATABASE_URL=postgres://db:5432/mydb\n    depends_on:\n      - db\n    volumes:\n      - ./src:/app/src\n    networks:\n      - app-network\n\n  db:\n    image: postgres:15\n    environment:\n      POSTGRES_DB: mydb\n      POSTGRES_USER: user\n      POSTGRES_PASSWORD: password\n    volumes:\n      - postgres-data:/var/lib/postgresql/data\n    networks:\n      - app-network\n\nvolumes:\n  postgres-data:\n\nnetworks:\n  app-network:\n    driver: bridge\n",[20,56367,56368,56373,56383,56387,56394,56401,56411,56418,56425,56432,56439,56446,56453,56460,56467,56474,56481,56488,56492,56499,56509,56515,56525,56535,56545,56551,56558,56564,56570,56574,56581,56588,56592,56599,56606],{"__ignoreMap":30},[34,56369,56370],{"class":36,"line":37},[34,56371,56372],{"class":40},"# docker-compose.yml\n",[34,56374,56375,56378,56380],{"class":36,"line":44},[34,56376,56377],{"class":177},"version",[34,56379,182],{"class":181},[34,56381,56382],{"class":54},"'3.8'\n",[34,56384,56385],{"class":36,"line":58},[34,56386,62],{"emptyLinePlaceholder":61},[34,56388,56389,56392],{"class":36,"line":65},[34,56390,56391],{"class":177},"services",[34,56393,193],{"class":181},[34,56395,56396,56399],{"class":36,"line":71},[34,56397,56398],{"class":177},"  web",[34,56400,193],{"class":181},[34,56402,56403,56406,56408],{"class":36,"line":77},[34,56404,56405],{"class":177},"    build",[34,56407,182],{"class":181},[34,56409,56410],{"class":50},".\n",[34,56412,56413,56416],{"class":36,"line":82},[34,56414,56415],{"class":177},"    ports",[34,56417,193],{"class":181},[34,56419,56420,56422],{"class":36,"line":88},[34,56421,212],{"class":181},[34,56423,56424],{"class":54},"\"3000:3000\"\n",[34,56426,56427,56430],{"class":36,"line":242},[34,56428,56429],{"class":177},"    environment",[34,56431,193],{"class":181},[34,56433,56434,56436],{"class":36,"line":250},[34,56435,212],{"class":181},[34,56437,56438],{"class":54},"NODE_ENV=production\n",[34,56440,56441,56443],{"class":36,"line":263},[34,56442,212],{"class":181},[34,56444,56445],{"class":54},"DATABASE_URL=postgres://db:5432/mydb\n",[34,56447,56448,56451],{"class":36,"line":275},[34,56449,56450],{"class":177},"    depends_on",[34,56452,193],{"class":181},[34,56454,56455,56457],{"class":36,"line":700},[34,56456,212],{"class":181},[34,56458,56459],{"class":54},"db\n",[34,56461,56462,56465],{"class":36,"line":706},[34,56463,56464],{"class":177},"    volumes",[34,56466,193],{"class":181},[34,56468,56469,56471],{"class":36,"line":715},[34,56470,212],{"class":181},[34,56472,56473],{"class":54},"./src:/app/src\n",[34,56475,56476,56479],{"class":36,"line":725},[34,56477,56478],{"class":177},"    networks",[34,56480,193],{"class":181},[34,56482,56483,56485],{"class":36,"line":734},[34,56484,212],{"class":181},[34,56486,56487],{"class":54},"app-network\n",[34,56489,56490],{"class":36,"line":742},[34,56491,62],{"emptyLinePlaceholder":61},[34,56493,56494,56497],{"class":36,"line":748},[34,56495,56496],{"class":177},"  db",[34,56498,193],{"class":181},[34,56500,56501,56504,56506],{"class":36,"line":754},[34,56502,56503],{"class":177},"    image",[34,56505,182],{"class":181},[34,56507,56508],{"class":54},"postgres:15\n",[34,56510,56511,56513],{"class":36,"line":759},[34,56512,56429],{"class":177},[34,56514,193],{"class":181},[34,56516,56517,56520,56522],{"class":36,"line":771},[34,56518,56519],{"class":177},"      POSTGRES_DB",[34,56521,182],{"class":181},[34,56523,56524],{"class":54},"mydb\n",[34,56526,56527,56530,56532],{"class":36,"line":794},[34,56528,56529],{"class":177},"      POSTGRES_USER",[34,56531,182],{"class":181},[34,56533,56534],{"class":54},"user\n",[34,56536,56537,56540,56542],{"class":36,"line":824},[34,56538,56539],{"class":177},"      POSTGRES_PASSWORD",[34,56541,182],{"class":181},[34,56543,56544],{"class":54},"password\n",[34,56546,56547,56549],{"class":36,"line":830},[34,56548,56464],{"class":177},[34,56550,193],{"class":181},[34,56552,56553,56555],{"class":36,"line":839},[34,56554,212],{"class":181},[34,56556,56557],{"class":54},"postgres-data:/var/lib/postgresql/data\n",[34,56559,56560,56562],{"class":36,"line":854},[34,56561,56478],{"class":177},[34,56563,193],{"class":181},[34,56565,56566,56568],{"class":36,"line":860},[34,56567,212],{"class":181},[34,56569,56487],{"class":54},[34,56571,56572],{"class":36,"line":865},[34,56573,62],{"emptyLinePlaceholder":61},[34,56575,56576,56579],{"class":36,"line":870},[34,56577,56578],{"class":177},"volumes",[34,56580,193],{"class":181},[34,56582,56583,56586],{"class":36,"line":876},[34,56584,56585],{"class":177},"  postgres-data",[34,56587,193],{"class":181},[34,56589,56590],{"class":36,"line":885},[34,56591,62],{"emptyLinePlaceholder":61},[34,56593,56594,56597],{"class":36,"line":895},[34,56595,56596],{"class":177},"networks",[34,56598,193],{"class":181},[34,56600,56601,56604],{"class":36,"line":904},[34,56602,56603],{"class":177},"  app-network",[34,56605,193],{"class":181},[34,56607,56608,56611,56613],{"class":36,"line":915},[34,56609,56610],{"class":177},"    driver",[34,56612,182],{"class":181},[34,56614,56615],{"class":54},"bridge\n",[388,56617,56618],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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 .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":30,"searchDepth":44,"depth":44,"links":56620},[56621],{"id":55754,"depth":44,"text":56358},"Docker Compose in Docker.",{},"/docker/docker-compose",{"title":56358,"description":56622},"docker/docker-compose",[55966,30382,5438,55968],"jmxHxRnhJ29iiE5DxisaRGKrJBXE4C3atGTffpGPiak",{"id":56630,"title":56631,"body":56632,"date":402,"description":56782,"extension":404,"meta":56783,"navigation":61,"order":65,"path":56784,"seo":56785,"stem":56786,"subject":55966,"tags":56787,"__hash__":56788},"topics/docker/dockerfile.md","Dockerfile",{"type":8,"value":56633,"toc":56779},[56634,56637,56777],[11,56635,56631],{"id":56636},"dockerfile",[25,56638,56641],{"className":56639,"code":56640,"language":56636,"meta":30,"style":30},"language-dockerfile shiki shiki-themes github-light github-dark","# Base image\nFROM node:18-alpine\n\n# Set working directory\nWORKDIR /app\n\n# Copy package files\nCOPY package*.json ./\n\n# Install dependencies\nRUN npm install\n\n# Copy source code\nCOPY . .\n\n# Build application\nRUN npm run build\n\n# Expose port\nEXPOSE 3000\n\n# Environment variables\nENV NODE_ENV=production\n\n# Run command\nCMD [\"npm\", \"start\"]\n\n# Alternative: Entrypoint\nENTRYPOINT [\"node\", \"server.js\"]\n",[20,56642,56643,56648,56653,56657,56662,56667,56671,56676,56681,56685,56689,56694,56698,56703,56708,56712,56717,56722,56726,56731,56736,56740,56744,56749,56753,56758,56763,56767,56772],{"__ignoreMap":30},[34,56644,56645],{"class":36,"line":37},[34,56646,56647],{},"# Base image\n",[34,56649,56650],{"class":36,"line":44},[34,56651,56652],{},"FROM node:18-alpine\n",[34,56654,56655],{"class":36,"line":58},[34,56656,62],{"emptyLinePlaceholder":61},[34,56658,56659],{"class":36,"line":65},[34,56660,56661],{},"# Set working directory\n",[34,56663,56664],{"class":36,"line":71},[34,56665,56666],{},"WORKDIR /app\n",[34,56668,56669],{"class":36,"line":77},[34,56670,62],{"emptyLinePlaceholder":61},[34,56672,56673],{"class":36,"line":82},[34,56674,56675],{},"# Copy package files\n",[34,56677,56678],{"class":36,"line":88},[34,56679,56680],{},"COPY package*.json ./\n",[34,56682,56683],{"class":36,"line":242},[34,56684,62],{"emptyLinePlaceholder":61},[34,56686,56687],{"class":36,"line":250},[34,56688,48274],{},[34,56690,56691],{"class":36,"line":263},[34,56692,56693],{},"RUN npm install\n",[34,56695,56696],{"class":36,"line":275},[34,56697,62],{"emptyLinePlaceholder":61},[34,56699,56700],{"class":36,"line":700},[34,56701,56702],{},"# Copy source code\n",[34,56704,56705],{"class":36,"line":706},[34,56706,56707],{},"COPY . .\n",[34,56709,56710],{"class":36,"line":715},[34,56711,62],{"emptyLinePlaceholder":61},[34,56713,56714],{"class":36,"line":725},[34,56715,56716],{},"# Build application\n",[34,56718,56719],{"class":36,"line":734},[34,56720,56721],{},"RUN npm run build\n",[34,56723,56724],{"class":36,"line":742},[34,56725,62],{"emptyLinePlaceholder":61},[34,56727,56728],{"class":36,"line":748},[34,56729,56730],{},"# Expose port\n",[34,56732,56733],{"class":36,"line":754},[34,56734,56735],{},"EXPOSE 3000\n",[34,56737,56738],{"class":36,"line":759},[34,56739,62],{"emptyLinePlaceholder":61},[34,56741,56742],{"class":36,"line":771},[34,56743,13420],{},[34,56745,56746],{"class":36,"line":794},[34,56747,56748],{},"ENV NODE_ENV=production\n",[34,56750,56751],{"class":36,"line":824},[34,56752,62],{"emptyLinePlaceholder":61},[34,56754,56755],{"class":36,"line":830},[34,56756,56757],{},"# Run command\n",[34,56759,56760],{"class":36,"line":839},[34,56761,56762],{},"CMD [\"npm\", \"start\"]\n",[34,56764,56765],{"class":36,"line":854},[34,56766,62],{"emptyLinePlaceholder":61},[34,56768,56769],{"class":36,"line":860},[34,56770,56771],{},"# Alternative: Entrypoint\n",[34,56773,56774],{"class":36,"line":865},[34,56775,56776],{},"ENTRYPOINT [\"node\", \"server.js\"]\n",[388,56778,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":56780},[56781],{"id":56636,"depth":44,"text":56631},"Dockerfile in Docker.",{},"/docker/dockerfile",{"title":56631,"description":56782},"docker/dockerfile",[55966,30382,5438,55968],"J6ya1Xb7AGXSsz96wAm1m-wny2wY9s_uQ3FmFi-0-4A",{"id":56790,"title":56791,"body":56792,"date":402,"description":57066,"extension":404,"meta":57067,"navigation":61,"order":58,"path":57068,"seo":57069,"stem":57070,"subject":55966,"tags":57071,"__hash__":57072},"topics/docker/image-management.md","Image Management",{"type":8,"value":56793,"toc":57063},[56794,56797,57061],[11,56795,56791],{"id":56796},"image-management",[25,56798,56800],{"className":27,"code":56799,"language":29,"meta":30,"style":30},"# List images\ndocker images\ndocker images -a         # Include intermediate\n\n# Pull/Push images\ndocker pull \u003Cimage>:\u003Ctag>\ndocker push \u003Cimage>:\u003Ctag>\n\n# Build image\ndocker build -t \u003Cname>:\u003Ctag> .\ndocker build -f Dockerfile.dev -t \u003Cname> .\ndocker build --no-cache -t \u003Cname> .\n\n# Tag image\ndocker tag \u003Cimage> \u003Cnew-name>:\u003Ctag>\n\n# Remove images\ndocker rmi \u003Cimage>\ndocker image prune       # Remove unused\ndocker image prune -a    # Remove all unused\n",[20,56801,56802,56807,56814,56826,56830,56835,56861,56886,56890,56895,56925,56948,56969,56973,56978,57012,57016,57021,57036,57048],{"__ignoreMap":30},[34,56803,56804],{"class":36,"line":37},[34,56805,56806],{"class":40},"# List images\n",[34,56808,56809,56811],{"class":36,"line":44},[34,56810,55966],{"class":47},[34,56812,56813],{"class":54}," images\n",[34,56815,56816,56818,56821,56823],{"class":36,"line":58},[34,56817,55966],{"class":47},[34,56819,56820],{"class":54}," images",[34,56822,5059],{"class":50},[34,56824,56825],{"class":40},"         # Include intermediate\n",[34,56827,56828],{"class":36,"line":65},[34,56829,62],{"emptyLinePlaceholder":61},[34,56831,56832],{"class":36,"line":71},[34,56833,56834],{"class":40},"# Pull/Push images\n",[34,56836,56837,56839,56842,56844,56846,56848,56850,56852,56854,56857,56859],{"class":36,"line":77},[34,56838,55966],{"class":47},[34,56840,56841],{"class":54}," pull",[34,56843,5470],{"class":580},[34,56845,55998],{"class":54},[34,56847,5476],{"class":181},[34,56849,5691],{"class":580},[34,56851,165],{"class":54},[34,56853,815],{"class":580},[34,56855,56856],{"class":54},"ta",[34,56858,13957],{"class":181},[34,56860,1248],{"class":580},[34,56862,56863,56865,56868,56870,56872,56874,56876,56878,56880,56882,56884],{"class":36,"line":82},[34,56864,55966],{"class":47},[34,56866,56867],{"class":54}," push",[34,56869,5470],{"class":580},[34,56871,55998],{"class":54},[34,56873,5476],{"class":181},[34,56875,5691],{"class":580},[34,56877,165],{"class":54},[34,56879,815],{"class":580},[34,56881,56856],{"class":54},[34,56883,13957],{"class":181},[34,56885,1248],{"class":580},[34,56887,56888],{"class":36,"line":88},[34,56889,62],{"emptyLinePlaceholder":61},[34,56891,56892],{"class":36,"line":242},[34,56893,56894],{"class":40},"# Build image\n",[34,56896,56897,56899,56901,56903,56905,56908,56910,56912,56914,56916,56918,56920,56922],{"class":36,"line":250},[34,56898,55966],{"class":47},[34,56900,14172],{"class":54},[34,56902,11256],{"class":50},[34,56904,5470],{"class":580},[34,56906,56907],{"class":54},"nam",[34,56909,5476],{"class":181},[34,56911,5691],{"class":580},[34,56913,165],{"class":54},[34,56915,815],{"class":580},[34,56917,56856],{"class":54},[34,56919,13957],{"class":181},[34,56921,5691],{"class":580},[34,56923,56924],{"class":54}," .\n",[34,56926,56927,56929,56931,56933,56936,56938,56940,56942,56944,56946],{"class":36,"line":263},[34,56928,55966],{"class":47},[34,56930,14172],{"class":54},[34,56932,6001],{"class":50},[34,56934,56935],{"class":54}," Dockerfile.dev",[34,56937,11256],{"class":50},[34,56939,5470],{"class":580},[34,56941,56907],{"class":54},[34,56943,5476],{"class":181},[34,56945,5691],{"class":580},[34,56947,56924],{"class":54},[34,56949,56950,56952,56954,56957,56959,56961,56963,56965,56967],{"class":36,"line":275},[34,56951,55966],{"class":47},[34,56953,14172],{"class":54},[34,56955,56956],{"class":50}," --no-cache",[34,56958,11256],{"class":50},[34,56960,5470],{"class":580},[34,56962,56907],{"class":54},[34,56964,5476],{"class":181},[34,56966,5691],{"class":580},[34,56968,56924],{"class":54},[34,56970,56971],{"class":36,"line":700},[34,56972,62],{"emptyLinePlaceholder":61},[34,56974,56975],{"class":36,"line":706},[34,56976,56977],{"class":40},"# Tag image\n",[34,56979,56980,56982,56985,56987,56989,56991,56993,56995,56998,57000,57002,57004,57006,57008,57010],{"class":36,"line":715},[34,56981,55966],{"class":47},[34,56983,56984],{"class":54}," tag",[34,56986,5470],{"class":580},[34,56988,55998],{"class":54},[34,56990,5476],{"class":181},[34,56992,5691],{"class":580},[34,56994,5470],{"class":580},[34,56996,56997],{"class":54},"new-nam",[34,56999,5476],{"class":181},[34,57001,5691],{"class":580},[34,57003,165],{"class":54},[34,57005,815],{"class":580},[34,57007,56856],{"class":54},[34,57009,13957],{"class":181},[34,57011,1248],{"class":580},[34,57013,57014],{"class":36,"line":725},[34,57015,62],{"emptyLinePlaceholder":61},[34,57017,57018],{"class":36,"line":734},[34,57019,57020],{"class":40},"# Remove images\n",[34,57022,57023,57025,57028,57030,57032,57034],{"class":36,"line":742},[34,57024,55966],{"class":47},[34,57026,57027],{"class":54}," rmi",[34,57029,5470],{"class":580},[34,57031,55998],{"class":54},[34,57033,5476],{"class":181},[34,57035,1248],{"class":580},[34,57037,57038,57040,57043,57045],{"class":36,"line":748},[34,57039,55966],{"class":47},[34,57041,57042],{"class":54}," image",[34,57044,56340],{"class":54},[34,57046,57047],{"class":40},"       # Remove unused\n",[34,57049,57050,57052,57054,57056,57058],{"class":36,"line":754},[34,57051,55966],{"class":47},[34,57053,57042],{"class":54},[34,57055,56340],{"class":54},[34,57057,5059],{"class":50},[34,57059,57060],{"class":40},"    # Remove all unused\n",[388,57062,5578],{},{"title":30,"searchDepth":44,"depth":44,"links":57064},[57065],{"id":56796,"depth":44,"text":56791},"Image Management in Docker.",{},"/docker/image-management",{"title":56791,"description":57066},"docker/image-management",[55966,30382,5438,55968],"xiP2iP4x122GNfR7DCQrx32nNl5O4KxRuxQ_IERmR_A",{"id":57074,"title":57075,"body":57076,"date":402,"description":57336,"extension":404,"meta":57337,"navigation":61,"order":88,"path":57338,"seo":57339,"stem":57340,"subject":55966,"tags":57341,"__hash__":57342},"topics/docker/logs-debugging.md","Logs & Debugging",{"type":8,"value":57077,"toc":57333},[57078,57081,57331],[11,57079,57075],{"id":57080},"logs-debugging",[25,57082,57084],{"className":27,"code":57083,"language":29,"meta":30,"style":30},"# View logs\ndocker logs \u003Ccontainer>\ndocker logs -f \u003Ccontainer>       # Follow\ndocker logs --tail 100 \u003Ccontainer>  # Last 100 lines\ndocker logs --since 1h \u003Ccontainer>  # Last hour\n\n# Execute command in container\ndocker exec -it \u003Ccontainer> sh\ndocker exec -it \u003Ccontainer> /bin/bash\ndocker exec \u003Ccontainer> ls -la\n\n# Inspect container\ndocker inspect \u003Ccontainer>\ndocker inspect --format='{{.NetworkSettings.IPAddress}}' \u003Ccontainer>\n\n# Resource usage\ndocker stats\ndocker stats \u003Ccontainer>\n\n# Container processes\ndocker top \u003Ccontainer>\n",[20,57085,57086,57090,57104,57123,57145,57168,57172,57177,57195,57214,57233,57237,57242,57257,57277,57281,57286,57293,57308,57312,57317],{"__ignoreMap":30},[34,57087,57088],{"class":36,"line":37},[34,57089,55891],{"class":40},[34,57091,57092,57094,57096,57098,57100,57102],{"class":36,"line":44},[34,57093,55966],{"class":47},[34,57095,55905],{"class":54},[34,57097,5470],{"class":580},[34,57099,56236],{"class":54},[34,57101,56239],{"class":181},[34,57103,1248],{"class":580},[34,57105,57106,57108,57110,57112,57114,57116,57118,57120],{"class":36,"line":58},[34,57107,55966],{"class":47},[34,57109,55905],{"class":54},[34,57111,6001],{"class":50},[34,57113,5470],{"class":580},[34,57115,56236],{"class":54},[34,57117,56239],{"class":181},[34,57119,5691],{"class":580},[34,57121,57122],{"class":40},"       # Follow\n",[34,57124,57125,57127,57129,57132,57134,57136,57138,57140,57142],{"class":36,"line":65},[34,57126,55966],{"class":47},[34,57128,55905],{"class":54},[34,57130,57131],{"class":50}," --tail",[34,57133,25168],{"class":50},[34,57135,5470],{"class":580},[34,57137,56236],{"class":54},[34,57139,56239],{"class":181},[34,57141,5691],{"class":580},[34,57143,57144],{"class":40},"  # Last 100 lines\n",[34,57146,57147,57149,57151,57154,57157,57159,57161,57163,57165],{"class":36,"line":71},[34,57148,55966],{"class":47},[34,57150,55905],{"class":54},[34,57152,57153],{"class":50}," --since",[34,57155,57156],{"class":54}," 1h",[34,57158,5470],{"class":580},[34,57160,56236],{"class":54},[34,57162,56239],{"class":181},[34,57164,5691],{"class":580},[34,57166,57167],{"class":40},"  # Last hour\n",[34,57169,57170],{"class":36,"line":77},[34,57171,62],{"emptyLinePlaceholder":61},[34,57173,57174],{"class":36,"line":82},[34,57175,57176],{"class":40},"# Execute command in container\n",[34,57178,57179,57181,57183,57185,57187,57189,57191,57193],{"class":36,"line":88},[34,57180,55966],{"class":47},[34,57182,55938],{"class":54},[34,57184,56030],{"class":50},[34,57186,5470],{"class":580},[34,57188,56236],{"class":54},[34,57190,56239],{"class":181},[34,57192,5691],{"class":580},[34,57194,48093],{"class":54},[34,57196,57197,57199,57201,57203,57205,57207,57209,57211],{"class":36,"line":242},[34,57198,55966],{"class":47},[34,57200,55938],{"class":54},[34,57202,56030],{"class":50},[34,57204,5470],{"class":580},[34,57206,56236],{"class":54},[34,57208,56239],{"class":181},[34,57210,5691],{"class":580},[34,57212,57213],{"class":54}," /bin/bash\n",[34,57215,57216,57218,57220,57222,57224,57226,57228,57230],{"class":36,"line":250},[34,57217,55966],{"class":47},[34,57219,55938],{"class":54},[34,57221,5470],{"class":580},[34,57223,56236],{"class":54},[34,57225,56239],{"class":181},[34,57227,5691],{"class":580},[34,57229,8764],{"class":54},[34,57231,57232],{"class":50}," -la\n",[34,57234,57235],{"class":36,"line":263},[34,57236,62],{"emptyLinePlaceholder":61},[34,57238,57239],{"class":36,"line":275},[34,57240,57241],{"class":40},"# Inspect container\n",[34,57243,57244,57246,57249,57251,57253,57255],{"class":36,"line":700},[34,57245,55966],{"class":47},[34,57247,57248],{"class":54}," inspect",[34,57250,5470],{"class":580},[34,57252,56236],{"class":54},[34,57254,56239],{"class":181},[34,57256,1248],{"class":580},[34,57258,57259,57261,57263,57266,57269,57271,57273,57275],{"class":36,"line":706},[34,57260,55966],{"class":47},[34,57262,57248],{"class":54},[34,57264,57265],{"class":50}," --format=",[34,57267,57268],{"class":54},"'{{.NetworkSettings.IPAddress}}'",[34,57270,5470],{"class":580},[34,57272,56236],{"class":54},[34,57274,56239],{"class":181},[34,57276,1248],{"class":580},[34,57278,57279],{"class":36,"line":715},[34,57280,62],{"emptyLinePlaceholder":61},[34,57282,57283],{"class":36,"line":725},[34,57284,57285],{"class":40},"# Resource usage\n",[34,57287,57288,57290],{"class":36,"line":734},[34,57289,55966],{"class":47},[34,57291,57292],{"class":54}," stats\n",[34,57294,57295,57297,57300,57302,57304,57306],{"class":36,"line":742},[34,57296,55966],{"class":47},[34,57298,57299],{"class":54}," stats",[34,57301,5470],{"class":580},[34,57303,56236],{"class":54},[34,57305,56239],{"class":181},[34,57307,1248],{"class":580},[34,57309,57310],{"class":36,"line":748},[34,57311,62],{"emptyLinePlaceholder":61},[34,57313,57314],{"class":36,"line":754},[34,57315,57316],{"class":40},"# Container processes\n",[34,57318,57319,57321,57323,57325,57327,57329],{"class":36,"line":759},[34,57320,55966],{"class":47},[34,57322,33763],{"class":54},[34,57324,5470],{"class":580},[34,57326,56236],{"class":54},[34,57328,56239],{"class":181},[34,57330,1248],{"class":580},[388,57332,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":57334},[57335],{"id":57080,"depth":44,"text":57075},"Logs & Debugging in Docker.",{},"/docker/logs-debugging",{"title":57075,"description":57336},"docker/logs-debugging",[55966,30382,5438,55968],"ZTS74OForH5EDMfOC5wuxHLpo7cDoXm_e5ugEZi_sLE",{"id":57344,"title":57345,"body":57346,"date":402,"description":57429,"extension":404,"meta":57430,"navigation":61,"order":71,"path":57431,"seo":57432,"stem":57433,"subject":55966,"tags":57434,"__hash__":57435},"topics/docker/multi-stage-build.md","Multi-stage Build",{"type":8,"value":57347,"toc":57426},[57348,57351,57424],[11,57349,57345],{"id":57350},"multi-stage-build",[25,57352,57354],{"className":56639,"code":57353,"language":56636,"meta":30,"style":30},"# Build stage\nFROM node:18-alpine AS builder\nWORKDIR /app\nCOPY package*.json ./\nRUN npm ci\nCOPY . .\nRUN npm run build\n\n# Production stage\nFROM node:18-alpine AS production\nWORKDIR /app\nCOPY --from=builder /app/dist ./dist\nCOPY --from=builder /app/node_modules ./node_modules\nEXPOSE 3000\nCMD [\"node\", \"dist/server.js\"]\n",[20,57355,57356,57361,57366,57370,57374,57379,57383,57387,57391,57396,57401,57405,57410,57415,57419],{"__ignoreMap":30},[34,57357,57358],{"class":36,"line":37},[34,57359,57360],{},"# Build stage\n",[34,57362,57363],{"class":36,"line":44},[34,57364,57365],{},"FROM node:18-alpine AS builder\n",[34,57367,57368],{"class":36,"line":58},[34,57369,56666],{},[34,57371,57372],{"class":36,"line":65},[34,57373,56680],{},[34,57375,57376],{"class":36,"line":71},[34,57377,57378],{},"RUN npm ci\n",[34,57380,57381],{"class":36,"line":77},[34,57382,56707],{},[34,57384,57385],{"class":36,"line":82},[34,57386,56721],{},[34,57388,57389],{"class":36,"line":88},[34,57390,62],{"emptyLinePlaceholder":61},[34,57392,57393],{"class":36,"line":242},[34,57394,57395],{},"# Production stage\n",[34,57397,57398],{"class":36,"line":250},[34,57399,57400],{},"FROM node:18-alpine AS production\n",[34,57402,57403],{"class":36,"line":263},[34,57404,56666],{},[34,57406,57407],{"class":36,"line":275},[34,57408,57409],{},"COPY --from=builder /app/dist ./dist\n",[34,57411,57412],{"class":36,"line":700},[34,57413,57414],{},"COPY --from=builder /app/node_modules ./node_modules\n",[34,57416,57417],{"class":36,"line":706},[34,57418,56735],{},[34,57420,57421],{"class":36,"line":715},[34,57422,57423],{},"CMD [\"node\", \"dist/server.js\"]\n",[388,57425,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":57427},[57428],{"id":57350,"depth":44,"text":57345},"Multi-stage Build in Docker.",{},"/docker/multi-stage-build",{"title":57345,"description":57429},"docker/multi-stage-build",[55966,30382,5438,55968],"RRtwSSM657TYY6XjOjf-ZSiSM_xFBuOilzuqDk-JzYI",{"id":57437,"title":57438,"body":57439,"date":402,"description":57634,"extension":404,"meta":57635,"navigation":61,"order":242,"path":57636,"seo":57637,"stem":57638,"subject":55966,"tags":57639,"__hash__":57640},"topics/docker/networking.md","Networking",{"type":8,"value":57440,"toc":57631},[57441,57443,57629],[11,57442,57438],{"id":43045},[25,57444,57446],{"className":27,"code":57445,"language":29,"meta":30,"style":30},"# List networks\ndocker network ls\n\n# Create network\ndocker network create \u003Cname>\ndocker network create --driver bridge \u003Cname>\n\n# Connect/disconnect\ndocker network connect \u003Cnetwork> \u003Ccontainer>\ndocker network disconnect \u003Cnetwork> \u003Ccontainer>\n\n# Inspect network\ndocker network inspect \u003Cnetwork>\n\n# Remove network\ndocker network rm \u003Cnetwork>\ndocker network prune\n",[20,57447,57448,57453,57462,57466,57471,57487,57509,57513,57518,57545,57570,57574,57579,57595,57599,57604,57620],{"__ignoreMap":30},[34,57449,57450],{"class":36,"line":37},[34,57451,57452],{"class":40},"# List networks\n",[34,57454,57455,57457,57460],{"class":36,"line":44},[34,57456,55966],{"class":47},[34,57458,57459],{"class":54}," network",[34,57461,8791],{"class":54},[34,57463,57464],{"class":36,"line":58},[34,57465,62],{"emptyLinePlaceholder":61},[34,57467,57468],{"class":36,"line":65},[34,57469,57470],{"class":40},"# Create network\n",[34,57472,57473,57475,57477,57479,57481,57483,57485],{"class":36,"line":71},[34,57474,55966],{"class":47},[34,57476,57459],{"class":54},[34,57478,7077],{"class":54},[34,57480,5470],{"class":580},[34,57482,56907],{"class":54},[34,57484,5476],{"class":181},[34,57486,1248],{"class":580},[34,57488,57489,57491,57493,57495,57498,57501,57503,57505,57507],{"class":36,"line":77},[34,57490,55966],{"class":47},[34,57492,57459],{"class":54},[34,57494,7077],{"class":54},[34,57496,57497],{"class":50}," --driver",[34,57499,57500],{"class":54}," bridge",[34,57502,5470],{"class":580},[34,57504,56907],{"class":54},[34,57506,5476],{"class":181},[34,57508,1248],{"class":580},[34,57510,57511],{"class":36,"line":82},[34,57512,62],{"emptyLinePlaceholder":61},[34,57514,57515],{"class":36,"line":88},[34,57516,57517],{"class":40},"# Connect/disconnect\n",[34,57519,57520,57522,57524,57527,57529,57532,57535,57537,57539,57541,57543],{"class":36,"line":242},[34,57521,55966],{"class":47},[34,57523,57459],{"class":54},[34,57525,57526],{"class":54}," connect",[34,57528,5470],{"class":580},[34,57530,57531],{"class":54},"networ",[34,57533,57534],{"class":181},"k",[34,57536,5691],{"class":580},[34,57538,5470],{"class":580},[34,57540,56236],{"class":54},[34,57542,56239],{"class":181},[34,57544,1248],{"class":580},[34,57546,57547,57549,57551,57554,57556,57558,57560,57562,57564,57566,57568],{"class":36,"line":250},[34,57548,55966],{"class":47},[34,57550,57459],{"class":54},[34,57552,57553],{"class":54}," disconnect",[34,57555,5470],{"class":580},[34,57557,57531],{"class":54},[34,57559,57534],{"class":181},[34,57561,5691],{"class":580},[34,57563,5470],{"class":580},[34,57565,56236],{"class":54},[34,57567,56239],{"class":181},[34,57569,1248],{"class":580},[34,57571,57572],{"class":36,"line":263},[34,57573,62],{"emptyLinePlaceholder":61},[34,57575,57576],{"class":36,"line":275},[34,57577,57578],{"class":40},"# Inspect network\n",[34,57580,57581,57583,57585,57587,57589,57591,57593],{"class":36,"line":700},[34,57582,55966],{"class":47},[34,57584,57459],{"class":54},[34,57586,57248],{"class":54},[34,57588,5470],{"class":580},[34,57590,57531],{"class":54},[34,57592,57534],{"class":181},[34,57594,1248],{"class":580},[34,57596,57597],{"class":36,"line":706},[34,57598,62],{"emptyLinePlaceholder":61},[34,57600,57601],{"class":36,"line":715},[34,57602,57603],{"class":40},"# Remove network\n",[34,57605,57606,57608,57610,57612,57614,57616,57618],{"class":36,"line":725},[34,57607,55966],{"class":47},[34,57609,57459],{"class":54},[34,57611,8901],{"class":54},[34,57613,5470],{"class":580},[34,57615,57531],{"class":54},[34,57617,57534],{"class":181},[34,57619,1248],{"class":580},[34,57621,57622,57624,57626],{"class":36,"line":734},[34,57623,55966],{"class":47},[34,57625,57459],{"class":54},[34,57627,57628],{"class":54}," prune\n",[388,57630,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":57632},[57633],{"id":43045,"depth":44,"text":57438},"Networking in Docker.",{},"/docker/networking",{"title":57438,"description":57634},"docker/networking",[55966,30382,5438,55968],"BQefFNFqO6H2f0t9XPYXIIG3spCZ6YDI-dspYHSM4Pk",{"id":57642,"title":57643,"body":57644,"date":2633,"description":57700,"extension":404,"meta":57701,"navigation":61,"order":37,"path":57702,"seo":57703,"stem":57704,"subject":55966,"tags":57705,"__hash__":57706},"topics/docker/overview.md","Docker",{"type":8,"value":57645,"toc":57698},[57646],[309,57647,57648,57652,57656,57660,57664,57668,57672,57676,57680,57686,57692],{},[312,57649,57650],{},[145,57651,55972],{"href":56351},[312,57653,57654],{},[145,57655,56791],{"href":57068},[312,57657,57658],{},[145,57659,56631],{"href":56784},[312,57661,57662],{},[145,57663,57345],{"href":57431},[312,57665,57666],{},[145,57667,56358],{"href":56624},[312,57669,57670],{},[145,57671,55734],{"href":55963},[312,57673,57674],{},[145,57675,57075],{"href":57338},[312,57677,57678],{},[145,57679,57438],{"href":57636},[312,57681,57682],{},[145,57683,57685],{"href":57684},"/docker/volumes","Volumes",[312,57687,57688],{},[145,57689,57691],{"href":57690},"/docker/system-commands","System Commands",[312,57693,57694],{},[145,57695,57697],{"href":57696},"/docker/useful-patterns","Useful Patterns",{"title":30,"searchDepth":44,"depth":44,"links":57699},[],"Essential Docker commands for containerization and deployment.",{},"/docker/overview",{"title":57643,"description":57700},"docker/overview",[55966,30382,5438,55968],"l5H5qeUoxZxgZI3ZxYETvyuJ6oBd4yKQkuoxeyxq3rA",{"id":57708,"title":57691,"body":57709,"date":402,"description":57849,"extension":404,"meta":57850,"navigation":61,"order":263,"path":57690,"seo":57851,"stem":57852,"subject":55966,"tags":57853,"__hash__":57854},"topics/docker/system-commands.md",{"type":8,"value":57710,"toc":57846},[57711,57714,57844],[11,57712,57691],{"id":57713},"system-commands",[25,57715,57717],{"className":27,"code":57716,"language":29,"meta":30,"style":30},"# System info\ndocker info\ndocker version\n\n# Disk usage\ndocker system df\ndocker system df -v\n\n# Clean up\ndocker system prune           # Remove unused data\ndocker system prune -a        # Include images\ndocker system prune --volumes # Include volumes\n\n# Events\ndocker events\ndocker events --filter 'container=myapp'\n",[20,57718,57719,57724,57731,57737,57741,57746,57756,57768,57772,57777,57788,57801,57815,57819,57824,57831],{"__ignoreMap":30},[34,57720,57721],{"class":36,"line":37},[34,57722,57723],{"class":40},"# System info\n",[34,57725,57726,57728],{"class":36,"line":44},[34,57727,55966],{"class":47},[34,57729,57730],{"class":54}," info\n",[34,57732,57733,57735],{"class":36,"line":58},[34,57734,55966],{"class":47},[34,57736,9358],{"class":54},[34,57738,57739],{"class":36,"line":65},[34,57740,62],{"emptyLinePlaceholder":61},[34,57742,57743],{"class":36,"line":71},[34,57744,57745],{"class":40},"# Disk usage\n",[34,57747,57748,57750,57753],{"class":36,"line":77},[34,57749,55966],{"class":47},[34,57751,57752],{"class":54}," system",[34,57754,57755],{"class":54}," df\n",[34,57757,57758,57760,57762,57765],{"class":36,"line":82},[34,57759,55966],{"class":47},[34,57761,57752],{"class":54},[34,57763,57764],{"class":54}," df",[34,57766,57767],{"class":50}," -v\n",[34,57769,57770],{"class":36,"line":88},[34,57771,62],{"emptyLinePlaceholder":61},[34,57773,57774],{"class":36,"line":242},[34,57775,57776],{"class":40},"# Clean up\n",[34,57778,57779,57781,57783,57785],{"class":36,"line":250},[34,57780,55966],{"class":47},[34,57782,57752],{"class":54},[34,57784,56340],{"class":54},[34,57786,57787],{"class":40},"           # Remove unused data\n",[34,57789,57790,57792,57794,57796,57798],{"class":36,"line":263},[34,57791,55966],{"class":47},[34,57793,57752],{"class":54},[34,57795,56340],{"class":54},[34,57797,5059],{"class":50},[34,57799,57800],{"class":40},"        # Include images\n",[34,57802,57803,57805,57807,57809,57812],{"class":36,"line":275},[34,57804,55966],{"class":47},[34,57806,57752],{"class":54},[34,57808,56340],{"class":54},[34,57810,57811],{"class":50}," --volumes",[34,57813,57814],{"class":40}," # Include volumes\n",[34,57816,57817],{"class":36,"line":700},[34,57818,62],{"emptyLinePlaceholder":61},[34,57820,57821],{"class":36,"line":706},[34,57822,57823],{"class":40},"# Events\n",[34,57825,57826,57828],{"class":36,"line":715},[34,57827,55966],{"class":47},[34,57829,57830],{"class":54}," events\n",[34,57832,57833,57835,57838,57841],{"class":36,"line":725},[34,57834,55966],{"class":47},[34,57836,57837],{"class":54}," events",[34,57839,57840],{"class":50}," --filter",[34,57842,57843],{"class":54}," 'container=myapp'\n",[388,57845,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":57847},[57848],{"id":57713,"depth":44,"text":57691},"System Commands in Docker.",{},{"title":57691,"description":57849},"docker/system-commands",[55966,30382,5438,55968],"q_XjWRm2s--ZnFEjy95bN4EijeHk9HWHKWjwN2rHJ0s",{"id":57856,"title":57697,"body":57857,"date":402,"description":58075,"extension":404,"meta":58076,"navigation":61,"order":275,"path":57696,"seo":58077,"stem":58078,"subject":55966,"tags":58079,"__hash__":58080},"topics/docker/useful-patterns.md",{"type":8,"value":57858,"toc":58072},[57859,57862,58070],[11,57860,57697],{"id":57861},"useful-patterns",[25,57863,57865],{"className":27,"code":57864,"language":29,"meta":30,"style":30},"# Copy files from container\ndocker cp \u003Ccontainer>:/path/file ./local/path\n\n# Copy files to container\ndocker cp ./local/file \u003Ccontainer>:/path/\n\n# Export/Import container\ndocker export \u003Ccontainer> > container.tar\ndocker import container.tar \u003Cimage>\n\n# Save/Load image\ndocker save \u003Cimage> > image.tar\ndocker load \u003C image.tar\n\n# Run one-off command\ndocker run --rm -it \u003Cimage> \u003Ccommand>\n\n# Check container health\ndocker inspect --format='{{.State.Health.Status}}' \u003Ccontainer>\n",[20,57866,57867,57872,57892,57896,57901,57921,57925,57930,57950,57967,57971,57976,57996,58006,58010,58015,58042,58046,58051],{"__ignoreMap":30},[34,57868,57869],{"class":36,"line":37},[34,57870,57871],{"class":40},"# Copy files from container\n",[34,57873,57874,57876,57878,57880,57882,57884,57886,57889],{"class":36,"line":44},[34,57875,55966],{"class":47},[34,57877,8829],{"class":54},[34,57879,5470],{"class":580},[34,57881,56236],{"class":54},[34,57883,56239],{"class":181},[34,57885,5691],{"class":580},[34,57887,57888],{"class":54},":/path/file",[34,57890,57891],{"class":54}," ./local/path\n",[34,57893,57894],{"class":36,"line":58},[34,57895,62],{"emptyLinePlaceholder":61},[34,57897,57898],{"class":36,"line":65},[34,57899,57900],{"class":40},"# Copy files to container\n",[34,57902,57903,57905,57907,57910,57912,57914,57916,57918],{"class":36,"line":71},[34,57904,55966],{"class":47},[34,57906,8829],{"class":54},[34,57908,57909],{"class":54}," ./local/file",[34,57911,5470],{"class":580},[34,57913,56236],{"class":54},[34,57915,56239],{"class":181},[34,57917,5691],{"class":580},[34,57919,57920],{"class":54},":/path/\n",[34,57922,57923],{"class":36,"line":77},[34,57924,62],{"emptyLinePlaceholder":61},[34,57926,57927],{"class":36,"line":82},[34,57928,57929],{"class":40},"# Export/Import container\n",[34,57931,57932,57934,57937,57939,57941,57943,57945,57947],{"class":36,"line":88},[34,57933,55966],{"class":47},[34,57935,57936],{"class":54}," export",[34,57938,5470],{"class":580},[34,57940,56236],{"class":54},[34,57942,56239],{"class":181},[34,57944,5691],{"class":580},[34,57946,9009],{"class":580},[34,57948,57949],{"class":54}," container.tar\n",[34,57951,57952,57954,57956,57959,57961,57963,57965],{"class":36,"line":242},[34,57953,55966],{"class":47},[34,57955,3364],{"class":54},[34,57957,57958],{"class":54}," container.tar",[34,57960,5470],{"class":580},[34,57962,55998],{"class":54},[34,57964,5476],{"class":181},[34,57966,1248],{"class":580},[34,57968,57969],{"class":36,"line":250},[34,57970,62],{"emptyLinePlaceholder":61},[34,57972,57973],{"class":36,"line":263},[34,57974,57975],{"class":40},"# Save/Load image\n",[34,57977,57978,57980,57983,57985,57987,57989,57991,57993],{"class":36,"line":275},[34,57979,55966],{"class":47},[34,57981,57982],{"class":54}," save",[34,57984,5470],{"class":580},[34,57986,55998],{"class":54},[34,57988,5476],{"class":181},[34,57990,5691],{"class":580},[34,57992,9009],{"class":580},[34,57994,57995],{"class":54}," image.tar\n",[34,57997,57998,58000,58002,58004],{"class":36,"line":700},[34,57999,55966],{"class":47},[34,58001,8276],{"class":54},[34,58003,5470],{"class":580},[34,58005,57995],{"class":54},[34,58007,58008],{"class":36,"line":706},[34,58009,62],{"emptyLinePlaceholder":61},[34,58011,58012],{"class":36,"line":715},[34,58013,58014],{"class":40},"# Run one-off command\n",[34,58016,58017,58019,58021,58023,58025,58027,58029,58031,58033,58035,58038,58040],{"class":36,"line":725},[34,58018,55966],{"class":47},[34,58020,16017],{"class":54},[34,58022,56119],{"class":50},[34,58024,56030],{"class":50},[34,58026,5470],{"class":580},[34,58028,55998],{"class":54},[34,58030,5476],{"class":181},[34,58032,5691],{"class":580},[34,58034,5470],{"class":580},[34,58036,58037],{"class":54},"comman",[34,58039,5878],{"class":181},[34,58041,1248],{"class":580},[34,58043,58044],{"class":36,"line":734},[34,58045,62],{"emptyLinePlaceholder":61},[34,58047,58048],{"class":36,"line":742},[34,58049,58050],{"class":40},"# Check container health\n",[34,58052,58053,58055,58057,58059,58062,58064,58066,58068],{"class":36,"line":748},[34,58054,55966],{"class":47},[34,58056,57248],{"class":54},[34,58058,57265],{"class":50},[34,58060,58061],{"class":54},"'{{.State.Health.Status}}'",[34,58063,5470],{"class":580},[34,58065,56236],{"class":54},[34,58067,56239],{"class":181},[34,58069,1248],{"class":580},[388,58071,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":58073},[58074],{"id":57861,"depth":44,"text":57697},"Useful Patterns in Docker.",{},{"title":57697,"description":58075},"docker/useful-patterns",[55966,30382,5438,55968],"8XHPZPqraYiGpSXakT2hP-nxuZ-cG4VZ8lFC-l9TILs",{"id":58082,"title":57685,"body":58083,"date":402,"description":58272,"extension":404,"meta":58273,"navigation":61,"order":250,"path":57684,"seo":58274,"stem":58275,"subject":55966,"tags":58276,"__hash__":58277},"topics/docker/volumes.md",{"type":8,"value":58084,"toc":58269},[58085,58087,58267],[11,58086,57685],{"id":56578},[25,58088,58090],{"className":27,"code":58089,"language":29,"meta":30,"style":30},"# List volumes\ndocker volume ls\n\n# Create volume\ndocker volume create \u003Cname>\n\n# Inspect volume\ndocker volume inspect \u003Cname>\n\n# Remove volume\ndocker volume rm \u003Cname>\ndocker volume prune\n\n# Use volume in run\ndocker run -v \u003Cvolume>:/path \u003Cimage>\ndocker run -v /host/path:/container/path \u003Cimage>\ndocker run -v /container/path \u003Cimage>  # Anonymous volume\n",[20,58091,58092,58097,58106,58110,58115,58131,58135,58140,58156,58160,58165,58181,58189,58193,58198,58226,58245],{"__ignoreMap":30},[34,58093,58094],{"class":36,"line":37},[34,58095,58096],{"class":40},"# List volumes\n",[34,58098,58099,58101,58104],{"class":36,"line":44},[34,58100,55966],{"class":47},[34,58102,58103],{"class":54}," volume",[34,58105,8791],{"class":54},[34,58107,58108],{"class":36,"line":58},[34,58109,62],{"emptyLinePlaceholder":61},[34,58111,58112],{"class":36,"line":65},[34,58113,58114],{"class":40},"# Create volume\n",[34,58116,58117,58119,58121,58123,58125,58127,58129],{"class":36,"line":71},[34,58118,55966],{"class":47},[34,58120,58103],{"class":54},[34,58122,7077],{"class":54},[34,58124,5470],{"class":580},[34,58126,56907],{"class":54},[34,58128,5476],{"class":181},[34,58130,1248],{"class":580},[34,58132,58133],{"class":36,"line":77},[34,58134,62],{"emptyLinePlaceholder":61},[34,58136,58137],{"class":36,"line":82},[34,58138,58139],{"class":40},"# Inspect volume\n",[34,58141,58142,58144,58146,58148,58150,58152,58154],{"class":36,"line":88},[34,58143,55966],{"class":47},[34,58145,58103],{"class":54},[34,58147,57248],{"class":54},[34,58149,5470],{"class":580},[34,58151,56907],{"class":54},[34,58153,5476],{"class":181},[34,58155,1248],{"class":580},[34,58157,58158],{"class":36,"line":242},[34,58159,62],{"emptyLinePlaceholder":61},[34,58161,58162],{"class":36,"line":250},[34,58163,58164],{"class":40},"# Remove volume\n",[34,58166,58167,58169,58171,58173,58175,58177,58179],{"class":36,"line":263},[34,58168,55966],{"class":47},[34,58170,58103],{"class":54},[34,58172,8901],{"class":54},[34,58174,5470],{"class":580},[34,58176,56907],{"class":54},[34,58178,5476],{"class":181},[34,58180,1248],{"class":580},[34,58182,58183,58185,58187],{"class":36,"line":275},[34,58184,55966],{"class":47},[34,58186,58103],{"class":54},[34,58188,57628],{"class":54},[34,58190,58191],{"class":36,"line":700},[34,58192,62],{"emptyLinePlaceholder":61},[34,58194,58195],{"class":36,"line":706},[34,58196,58197],{"class":40},"# Use volume in run\n",[34,58199,58200,58202,58204,58206,58208,58211,58213,58215,58218,58220,58222,58224],{"class":36,"line":715},[34,58201,55966],{"class":47},[34,58203,16017],{"class":54},[34,58205,12530],{"class":50},[34,58207,5470],{"class":580},[34,58209,58210],{"class":54},"volum",[34,58212,5476],{"class":181},[34,58214,5691],{"class":580},[34,58216,58217],{"class":54},":/path",[34,58219,5470],{"class":580},[34,58221,55998],{"class":54},[34,58223,5476],{"class":181},[34,58225,1248],{"class":580},[34,58227,58228,58230,58232,58234,58237,58239,58241,58243],{"class":36,"line":725},[34,58229,55966],{"class":47},[34,58231,16017],{"class":54},[34,58233,12530],{"class":50},[34,58235,58236],{"class":54}," /host/path:/container/path",[34,58238,5470],{"class":580},[34,58240,55998],{"class":54},[34,58242,5476],{"class":181},[34,58244,1248],{"class":580},[34,58246,58247,58249,58251,58253,58256,58258,58260,58262,58264],{"class":36,"line":734},[34,58248,55966],{"class":47},[34,58250,16017],{"class":54},[34,58252,12530],{"class":50},[34,58254,58255],{"class":54}," /container/path",[34,58257,5470],{"class":580},[34,58259,55998],{"class":54},[34,58261,5476],{"class":181},[34,58263,5691],{"class":580},[34,58265,58266],{"class":40},"  # Anonymous volume\n",[388,58268,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":58270},[58271],{"id":56578,"depth":44,"text":57685},"Volumes in Docker.",{},{"title":57685,"description":58272},"docker/volumes",[55966,30382,5438,55968],"BaNBn2VhPI_-QFjjlV-3bjpEyK5JgDVv7H-falzymZo",{"id":58279,"title":58280,"body":58281,"date":402,"description":58722,"extension":404,"meta":58723,"navigation":61,"order":37,"path":58724,"seo":58725,"stem":58726,"subject":58727,"tags":58728,"__hash__":58730},"topics/drizzle/overview.md","Drizzle ORM",{"type":8,"value":58282,"toc":58712},[58283,58287,58290,58292,58306,58308,58421,58426,58430,58531,58536,58540,58543,58584,58589,58592,58631,58636,58640,58643,58688,58693,58695,58709],[11,58284,58286],{"id":58285},"overview-of-drizzle-orm","Overview of Drizzle ORM",[16,58288,58289],{},"Drizzle ORM is a TypeScript-first, type-safe SQL query builder and ORM for JavaScript and TypeScript applications. It offers a balance between type safety and flexibility, making it ideal for modern serverless and full-stack projects.",[102,58291,8498],{"id":8497},[309,58293,58294,58297,58300,58303],{},[312,58295,58296],{},"Type safety: Guarantees compile-time correctness for SQL queries.",[312,58298,58299],{},"Multi-database support: PostgreSQL, MySQL, SQLite, and more.",[312,58301,58302],{},"Query builder: Fluent, lightweight, and easy to learn.",[312,58304,58305],{},"Migrations management: Auto-generate and manage schema changes.",[102,58307,6035],{"id":6040},[25,58309,58311],{"className":571,"code":58310,"language":573,"meta":30,"style":30},"import { drizzle } from 'drizzle-orm';\nimport { createPool } from 'mysql2/promise';\n\nconst pool = createPool({\n  host: \"127.0.0.1\",\n  user: \"root\",\n  database: \"my_database\",\n  password: \"password\",\n});\n\nconst db = drizzle(pool);\n",[20,58312,58313,58327,58341,58345,58359,58369,58379,58389,58399,58403,58407],{"__ignoreMap":30},[34,58314,58315,58317,58320,58322,58325],{"class":36,"line":37},[34,58316,581],{"class":580},[34,58318,58319],{"class":181}," { drizzle } ",[34,58321,587],{"class":580},[34,58323,58324],{"class":54}," 'drizzle-orm'",[34,58326,593],{"class":181},[34,58328,58329,58331,58334,58336,58339],{"class":36,"line":44},[34,58330,581],{"class":580},[34,58332,58333],{"class":181}," { createPool } ",[34,58335,587],{"class":580},[34,58337,58338],{"class":54}," 'mysql2/promise'",[34,58340,593],{"class":181},[34,58342,58343],{"class":36,"line":58},[34,58344,62],{"emptyLinePlaceholder":61},[34,58346,58347,58349,58352,58354,58357],{"class":36,"line":65},[34,58348,14676],{"class":580},[34,58350,58351],{"class":50}," pool",[34,58353,683],{"class":580},[34,58355,58356],{"class":47}," createPool",[34,58358,613],{"class":181},[34,58360,58361,58364,58367],{"class":36,"line":71},[34,58362,58363],{"class":181},"  host: ",[34,58365,58366],{"class":54},"\"127.0.0.1\"",[34,58368,624],{"class":181},[34,58370,58371,58374,58377],{"class":36,"line":77},[34,58372,58373],{"class":181},"  user: ",[34,58375,58376],{"class":54},"\"root\"",[34,58378,624],{"class":181},[34,58380,58381,58384,58387],{"class":36,"line":82},[34,58382,58383],{"class":181},"  database: ",[34,58385,58386],{"class":54},"\"my_database\"",[34,58388,624],{"class":181},[34,58390,58391,58394,58397],{"class":36,"line":88},[34,58392,58393],{"class":181},"  password: ",[34,58395,58396],{"class":54},"\"password\"",[34,58398,624],{"class":181},[34,58400,58401],{"class":36,"line":242},[34,58402,14873],{"class":181},[34,58404,58405],{"class":36,"line":250},[34,58406,62],{"emptyLinePlaceholder":61},[34,58408,58409,58411,58413,58415,58418],{"class":36,"line":263},[34,58410,14676],{"class":580},[34,58412,16997],{"class":50},[34,58414,683],{"class":580},[34,58416,58417],{"class":47}," drizzle",[34,58419,58420],{"class":181},"(pool);\n",[16,58422,58423],{},[8563,58424,58425],{},"// Connect to your database using MySQL and initialize the Drizzle ORM instance.",[102,58427,58429],{"id":58428},"defining-models","Defining Models",[25,58431,58433],{"className":571,"code":58432,"language":573,"meta":30,"style":30},"import { pgTable, serial, varchar, integer } from 'drizzle-orm';\n\nconst users = pgTable(\"users\", {\n  id: serial(\"id\").primaryKey(),\n  name: varchar(\"name\", 255).notNull(),\n  age: integer(\"age\"),\n});\n",[20,58434,58435,58448,58452,58470,58491,58513,58527],{"__ignoreMap":30},[34,58436,58437,58439,58442,58444,58446],{"class":36,"line":37},[34,58438,581],{"class":580},[34,58440,58441],{"class":181}," { pgTable, serial, varchar, integer } ",[34,58443,587],{"class":580},[34,58445,58324],{"class":54},[34,58447,593],{"class":181},[34,58449,58450],{"class":36,"line":44},[34,58451,62],{"emptyLinePlaceholder":61},[34,58453,58454,58456,58458,58460,58463,58465,58468],{"class":36,"line":58},[34,58455,14676],{"class":580},[34,58457,28425],{"class":50},[34,58459,683],{"class":580},[34,58461,58462],{"class":47}," pgTable",[34,58464,1607],{"class":181},[34,58466,58467],{"class":54},"\"users\"",[34,58469,14820],{"class":181},[34,58471,58472,58475,58478,58480,58483,58485,58488],{"class":36,"line":65},[34,58473,58474],{"class":181},"  id: ",[34,58476,58477],{"class":47},"serial",[34,58479,1607],{"class":181},[34,58481,58482],{"class":54},"\"id\"",[34,58484,1876],{"class":181},[34,58486,58487],{"class":47},"primaryKey",[34,58489,58490],{"class":181},"(),\n",[34,58492,58493,58495,58498,58500,58502,58504,58506,58508,58511],{"class":36,"line":71},[34,58494,2830],{"class":181},[34,58496,58497],{"class":47},"varchar",[34,58499,1607],{"class":181},[34,58501,4650],{"class":54},[34,58503,1798],{"class":181},[34,58505,38686],{"class":50},[34,58507,1876],{"class":181},[34,58509,58510],{"class":47},"notNull",[34,58512,58490],{"class":181},[34,58514,58515,58517,58520,58522,58525],{"class":36,"line":77},[34,58516,17622],{"class":181},[34,58518,58519],{"class":47},"integer",[34,58521,1607],{"class":181},[34,58523,58524],{"class":54},"\"age\"",[34,58526,50836],{"class":181},[34,58528,58529],{"class":36,"line":82},[34,58530,14873],{"class":181},[16,58532,58533],{},[8563,58534,58535],{},"// Define your schema, including table name and columns. The schema closely reflects the actual SQL structure.",[102,58537,58539],{"id":58538},"basic-queries","Basic Queries",[16,58541,58542],{},"Insert a new user:",[25,58544,58546],{"className":571,"code":58545,"language":573,"meta":30,"style":30},"await db.insert(users).values({\n  name: \"Alice\",\n  age: 30,\n});\n",[20,58547,58548,58564,58572,58580],{"__ignoreMap":30},[34,58549,58550,58552,58554,58556,58559,58562],{"class":36,"line":37},[34,58551,15062],{"class":580},[34,58553,17083],{"class":181},[34,58555,30468],{"class":47},[34,58557,58558],{"class":181},"(users).",[34,58560,58561],{"class":47},"values",[34,58563,613],{"class":181},[34,58565,58566,58568,58570],{"class":36,"line":44},[34,58567,2830],{"class":181},[34,58569,21650],{"class":54},[34,58571,624],{"class":181},[34,58573,58574,58576,58578],{"class":36,"line":58},[34,58575,17622],{"class":181},[34,58577,17625],{"class":50},[34,58579,624],{"class":181},[34,58581,58582],{"class":36,"line":65},[34,58583,14873],{"class":181},[16,58585,58586],{},[8563,58587,58588],{},"// Insert operation for adding new data.",[16,58590,58591],{},"Retrieve users:",[25,58593,58595],{"className":571,"code":58594,"language":573,"meta":30,"style":30},"const allUsers = await db.select().from(users).all();\nconsole.log(allUsers);\n",[20,58596,58597,58622],{"__ignoreMap":30},[34,58598,58599,58601,58603,58605,58607,58609,58612,58614,58616,58618,58620],{"class":36,"line":37},[34,58600,14676],{"class":580},[34,58602,17168],{"class":50},[34,58604,683],{"class":580},[34,58606,14763],{"class":580},[34,58608,17083],{"class":181},[34,58610,58611],{"class":47},"select",[34,58613,1645],{"class":181},[34,58615,587],{"class":47},[34,58617,58558],{"class":181},[34,58619,17175],{"class":47},[34,58621,851],{"class":181},[34,58623,58624,58626,58628],{"class":36,"line":44},[34,58625,15183],{"class":181},[34,58627,2424],{"class":47},[34,58629,58630],{"class":181},"(allUsers);\n",[16,58632,58633],{},[8563,58634,58635],{},"// Retrieve all user entries from the database.",[102,58637,58639],{"id":58638},"migrations-example","Migrations Example",[16,58641,58642],{},"Drizzle supports schema changes via code.",[25,58644,58646],{"className":571,"code":58645,"language":573,"meta":30,"style":30},"import { migrate } from 'drizzle-orm';\n\nawait migrate(db, {\n  migrationsFolder: './migrations',\n});\n",[20,58647,58648,58661,58665,58674,58684],{"__ignoreMap":30},[34,58649,58650,58652,58655,58657,58659],{"class":36,"line":37},[34,58651,581],{"class":580},[34,58653,58654],{"class":181}," { migrate } ",[34,58656,587],{"class":580},[34,58658,58324],{"class":54},[34,58660,593],{"class":181},[34,58662,58663],{"class":36,"line":44},[34,58664,62],{"emptyLinePlaceholder":61},[34,58666,58667,58669,58671],{"class":36,"line":58},[34,58668,15062],{"class":580},[34,58670,16711],{"class":47},[34,58672,58673],{"class":181},"(db, {\n",[34,58675,58676,58679,58682],{"class":36,"line":65},[34,58677,58678],{"class":181},"  migrationsFolder: ",[34,58680,58681],{"class":54},"'./migrations'",[34,58683,624],{"class":181},[34,58685,58686],{"class":36,"line":71},[34,58687,14873],{"class":181},[16,58689,58690],{},[8563,58691,58692],{},"// Perform migrations to reflect changes in the database schema.",[11,58694,28203],{"id":28202},[309,58696,58697,58706],{},[312,58698,58699,58700,58705],{},"Explore the official ",[145,58701,58704],{"href":58702,"rel":58703},"https://orm.drizzle.team/docs/overview",[149],"documentation"," to go deeper.",[312,58707,58708],{},"Review examples on schema relation, advanced querying, and best migration practices.",[388,58710,58711],{},"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 .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":30,"searchDepth":44,"depth":44,"links":58713},[58714,58721],{"id":58285,"depth":44,"text":58286,"children":58715},[58716,58717,58718,58719,58720],{"id":8497,"depth":58,"text":8498},{"id":6040,"depth":58,"text":6035},{"id":58428,"depth":58,"text":58429},{"id":58538,"depth":58,"text":58539},{"id":58638,"depth":58,"text":58639},{"id":28202,"depth":44,"text":28203},"Key syntax and concepts for using Drizzle ORM with TypeScript and JavaScript to build type-safe SQL queries.",{},"/drizzle/overview",{"title":58280,"description":58722},"drizzle/overview","drizzle",[58729,28337,573,8606,46870],"orm","9Oh8Erd6f74nGl0uz6kY8Nsi4vcxVmiEX_EOVOnl6NY",{"id":58732,"title":58733,"body":58734,"date":402,"description":58884,"extension":404,"meta":58885,"navigation":61,"order":82,"path":58886,"seo":58887,"stem":58888,"subject":58889,"tags":58890,"__hash__":58894},"topics/dry/configuration-files.md","Configuration Files",{"type":8,"value":58735,"toc":58881},[58736,58739,58879],[11,58737,58733],{"id":58738},"configuration-files",[25,58740,58742],{"className":571,"code":58741,"language":573,"meta":30,"style":30},"// ❌ Bad - hardcoded values everywhere\n// file1.ts\nconst apiUrl = 'https://api.example.com/v1';\n\n// file2.ts\nconst apiUrl = 'https://api.example.com/v1';\n\n// ✅ Good - single configuration source\n// config.ts\nexport const config = {\n  apiUrl: 'https://api.example.com/v1',\n  timeout: 5000,\n  retries: 3,\n};\n\n// file1.ts & file2.ts\nimport { config } from './config';\nfetch(config.apiUrl);\n",[20,58743,58744,58749,58754,58767,58771,58776,58788,58792,58797,58802,58815,58825,58835,58844,58848,58852,58857,58871],{"__ignoreMap":30},[34,58745,58746],{"class":36,"line":37},[34,58747,58748],{"class":40},"// ❌ Bad - hardcoded values everywhere\n",[34,58750,58751],{"class":36,"line":44},[34,58752,58753],{"class":40},"// file1.ts\n",[34,58755,58756,58758,58760,58762,58765],{"class":36,"line":58},[34,58757,14676],{"class":580},[34,58759,3827],{"class":50},[34,58761,683],{"class":580},[34,58763,58764],{"class":54}," 'https://api.example.com/v1'",[34,58766,593],{"class":181},[34,58768,58769],{"class":36,"line":65},[34,58770,62],{"emptyLinePlaceholder":61},[34,58772,58773],{"class":36,"line":71},[34,58774,58775],{"class":40},"// file2.ts\n",[34,58777,58778,58780,58782,58784,58786],{"class":36,"line":77},[34,58779,14676],{"class":580},[34,58781,3827],{"class":50},[34,58783,683],{"class":580},[34,58785,58764],{"class":54},[34,58787,593],{"class":181},[34,58789,58790],{"class":36,"line":82},[34,58791,62],{"emptyLinePlaceholder":61},[34,58793,58794],{"class":36,"line":88},[34,58795,58796],{"class":40},"// ✅ Good - single configuration source\n",[34,58798,58799],{"class":36,"line":242},[34,58800,58801],{"class":40},"// config.ts\n",[34,58803,58804,58806,58808,58811,58813],{"class":36,"line":250},[34,58805,652],{"class":580},[34,58807,3291],{"class":580},[34,58809,58810],{"class":50}," config",[34,58812,683],{"class":580},[34,58814,661],{"class":181},[34,58816,58817,58820,58823],{"class":36,"line":263},[34,58818,58819],{"class":181},"  apiUrl: ",[34,58821,58822],{"class":54},"'https://api.example.com/v1'",[34,58824,624],{"class":181},[34,58826,58827,58830,58833],{"class":36,"line":275},[34,58828,58829],{"class":181},"  timeout: ",[34,58831,58832],{"class":50},"5000",[34,58834,624],{"class":181},[34,58836,58837,58840,58842],{"class":36,"line":700},[34,58838,58839],{"class":181},"  retries: ",[34,58841,3162],{"class":50},[34,58843,624],{"class":181},[34,58845,58846],{"class":36,"line":706},[34,58847,17632],{"class":181},[34,58849,58850],{"class":36,"line":715},[34,58851,62],{"emptyLinePlaceholder":61},[34,58853,58854],{"class":36,"line":725},[34,58855,58856],{"class":40},"// file1.ts & file2.ts\n",[34,58858,58859,58861,58864,58866,58869],{"class":36,"line":734},[34,58860,581],{"class":580},[34,58862,58863],{"class":181}," { config } ",[34,58865,587],{"class":580},[34,58867,58868],{"class":54}," './config'",[34,58870,593],{"class":181},[34,58872,58873,58876],{"class":36,"line":742},[34,58874,58875],{"class":47},"fetch",[34,58877,58878],{"class":181},"(config.apiUrl);\n",[388,58880,16509],{},{"title":30,"searchDepth":44,"depth":44,"links":58882},[58883],{"id":58738,"depth":44,"text":58733},"Configuration Files in DRY Principle.",{},"/dry/configuration-files",{"title":58733,"description":58884},"dry/configuration-files","dry",[58889,5600,58891,58892,58893],"refactoring","clean-code","architecture","sP1spOow8WGlOUQ8Qp_FKS4RNwruqqaXm29DtatO5mk",{"id":58896,"title":58897,"body":58898,"date":402,"description":59247,"extension":404,"meta":59248,"navigation":61,"order":71,"path":59249,"seo":59250,"stem":59251,"subject":58889,"tags":59252,"__hash__":59253},"topics/dry/create-base-classes.md","Create Base Classes",{"type":8,"value":58899,"toc":59244},[58900,58903,59242],[11,58901,58897],{"id":58902},"create-base-classes",[25,58904,58906],{"className":571,"code":58905,"language":573,"meta":30,"style":30},"// ❌ Bad - repeated code in similar classes\nclass Dog {\n  name: string;\n  eat() { console.log(`${this.name} is eating`); }\n  sleep() { console.log(`${this.name} is sleeping`); }\n  bark() { console.log('Woof!'); }\n}\n\nclass Cat {\n  name: string;\n  eat() { console.log(`${this.name} is eating`); }\n  sleep() { console.log(`${this.name} is sleeping`); }\n  meow() { console.log('Meow!'); }\n}\n\n// ✅ Good - shared behavior in base class\nabstract class Animal {\n  constructor(public name: string) {}\n  eat() { console.log(`${this.name} is eating`); }\n  sleep() { console.log(`${this.name} is sleeping`); }\n}\n\nclass Dog extends Animal {\n  bark() { console.log('Woof!'); }\n}\n\nclass Cat extends Animal {\n  meow() { console.log('Meow!'); }\n}\n",[20,58907,58908,58913,58921,58931,58957,58981,58997,59001,59005,59014,59024,59046,59068,59084,59088,59092,59097,59108,59125,59147,59169,59173,59177,59190,59204,59208,59212,59224,59238],{"__ignoreMap":30},[34,58909,58910],{"class":36,"line":37},[34,58911,58912],{"class":40},"// ❌ Bad - repeated code in similar classes\n",[34,58914,58915,58917,58919],{"class":36,"line":44},[34,58916,30060],{"class":580},[34,58918,31577],{"class":47},[34,58920,661],{"class":181},[34,58922,58923,58925,58927,58929],{"class":36,"line":58},[34,58924,7350],{"class":675},[34,58926,165],{"class":580},[34,58928,680],{"class":50},[34,58930,593],{"class":181},[34,58932,58933,58936,58939,58941,58943,58945,58947,58949,58951,58954],{"class":36,"line":65},[34,58934,58935],{"class":47},"  eat",[34,58937,58938],{"class":181},"() { console.",[34,58940,2424],{"class":47},[34,58942,1607],{"class":181},[34,58944,3910],{"class":54},[34,58946,3207],{"class":50},[34,58948,151],{"class":54},[34,58950,178],{"class":181},[34,58952,58953],{"class":54},"} is eating`",[34,58955,58956],{"class":181},"); }\n",[34,58958,58959,58962,58964,58966,58968,58970,58972,58974,58976,58979],{"class":36,"line":71},[34,58960,58961],{"class":47},"  sleep",[34,58963,58938],{"class":181},[34,58965,2424],{"class":47},[34,58967,1607],{"class":181},[34,58969,3910],{"class":54},[34,58971,3207],{"class":50},[34,58973,151],{"class":54},[34,58975,178],{"class":181},[34,58977,58978],{"class":54},"} is sleeping`",[34,58980,58956],{"class":181},[34,58982,58983,58986,58988,58990,58992,58995],{"class":36,"line":77},[34,58984,58985],{"class":47},"  bark",[34,58987,58938],{"class":181},[34,58989,2424],{"class":47},[34,58991,1607],{"class":181},[34,58993,58994],{"class":54},"'Woof!'",[34,58996,58956],{"class":181},[34,58998,58999],{"class":36,"line":82},[34,59000,693],{"class":181},[34,59002,59003],{"class":36,"line":88},[34,59004,62],{"emptyLinePlaceholder":61},[34,59006,59007,59009,59012],{"class":36,"line":242},[34,59008,30060],{"class":580},[34,59010,59011],{"class":47}," Cat",[34,59013,661],{"class":181},[34,59015,59016,59018,59020,59022],{"class":36,"line":250},[34,59017,7350],{"class":675},[34,59019,165],{"class":580},[34,59021,680],{"class":50},[34,59023,593],{"class":181},[34,59025,59026,59028,59030,59032,59034,59036,59038,59040,59042,59044],{"class":36,"line":263},[34,59027,58935],{"class":47},[34,59029,58938],{"class":181},[34,59031,2424],{"class":47},[34,59033,1607],{"class":181},[34,59035,3910],{"class":54},[34,59037,3207],{"class":50},[34,59039,151],{"class":54},[34,59041,178],{"class":181},[34,59043,58953],{"class":54},[34,59045,58956],{"class":181},[34,59047,59048,59050,59052,59054,59056,59058,59060,59062,59064,59066],{"class":36,"line":275},[34,59049,58961],{"class":47},[34,59051,58938],{"class":181},[34,59053,2424],{"class":47},[34,59055,1607],{"class":181},[34,59057,3910],{"class":54},[34,59059,3207],{"class":50},[34,59061,151],{"class":54},[34,59063,178],{"class":181},[34,59065,58978],{"class":54},[34,59067,58956],{"class":181},[34,59069,59070,59073,59075,59077,59079,59082],{"class":36,"line":700},[34,59071,59072],{"class":47},"  meow",[34,59074,58938],{"class":181},[34,59076,2424],{"class":47},[34,59078,1607],{"class":181},[34,59080,59081],{"class":54},"'Meow!'",[34,59083,58956],{"class":181},[34,59085,59086],{"class":36,"line":706},[34,59087,693],{"class":181},[34,59089,59090],{"class":36,"line":715},[34,59091,62],{"emptyLinePlaceholder":61},[34,59093,59094],{"class":36,"line":725},[34,59095,59096],{"class":40},"// ✅ Good - shared behavior in base class\n",[34,59098,59099,59102,59104,59106],{"class":36,"line":734},[34,59100,59101],{"class":580},"abstract",[34,59103,655],{"class":580},[34,59105,31500],{"class":47},[34,59107,661],{"class":181},[34,59109,59110,59112,59114,59116,59118,59120,59122],{"class":36,"line":742},[34,59111,4303],{"class":580},[34,59113,1607],{"class":181},[34,59115,31583],{"class":580},[34,59117,12323],{"class":675},[34,59119,165],{"class":580},[34,59121,680],{"class":50},[34,59123,59124],{"class":181},") {}\n",[34,59126,59127,59129,59131,59133,59135,59137,59139,59141,59143,59145],{"class":36,"line":748},[34,59128,58935],{"class":47},[34,59130,58938],{"class":181},[34,59132,2424],{"class":47},[34,59134,1607],{"class":181},[34,59136,3910],{"class":54},[34,59138,3207],{"class":50},[34,59140,151],{"class":54},[34,59142,178],{"class":181},[34,59144,58953],{"class":54},[34,59146,58956],{"class":181},[34,59148,59149,59151,59153,59155,59157,59159,59161,59163,59165,59167],{"class":36,"line":754},[34,59150,58961],{"class":47},[34,59152,58938],{"class":181},[34,59154,2424],{"class":47},[34,59156,1607],{"class":181},[34,59158,3910],{"class":54},[34,59160,3207],{"class":50},[34,59162,151],{"class":54},[34,59164,178],{"class":181},[34,59166,58978],{"class":54},[34,59168,58956],{"class":181},[34,59170,59171],{"class":36,"line":759},[34,59172,693],{"class":181},[34,59174,59175],{"class":36,"line":771},[34,59176,62],{"emptyLinePlaceholder":61},[34,59178,59179,59181,59183,59186,59188],{"class":36,"line":794},[34,59180,30060],{"class":580},[34,59182,31577],{"class":47},[34,59184,59185],{"class":580}," extends",[34,59187,31500],{"class":47},[34,59189,661],{"class":181},[34,59191,59192,59194,59196,59198,59200,59202],{"class":36,"line":824},[34,59193,58985],{"class":47},[34,59195,58938],{"class":181},[34,59197,2424],{"class":47},[34,59199,1607],{"class":181},[34,59201,58994],{"class":54},[34,59203,58956],{"class":181},[34,59205,59206],{"class":36,"line":830},[34,59207,693],{"class":181},[34,59209,59210],{"class":36,"line":839},[34,59211,62],{"emptyLinePlaceholder":61},[34,59213,59214,59216,59218,59220,59222],{"class":36,"line":854},[34,59215,30060],{"class":580},[34,59217,59011],{"class":47},[34,59219,59185],{"class":580},[34,59221,31500],{"class":47},[34,59223,661],{"class":181},[34,59225,59226,59228,59230,59232,59234,59236],{"class":36,"line":860},[34,59227,59072],{"class":47},[34,59229,58938],{"class":181},[34,59231,2424],{"class":47},[34,59233,1607],{"class":181},[34,59235,59081],{"class":54},[34,59237,58956],{"class":181},[34,59239,59240],{"class":36,"line":865},[34,59241,693],{"class":181},[388,59243,17665],{},{"title":30,"searchDepth":44,"depth":44,"links":59245},[59246],{"id":58902,"depth":44,"text":58897},"Create Base Classes in DRY Principle.",{},"/dry/create-base-classes",{"title":58897,"description":59247},"dry/create-base-classes",[58889,5600,58891,58892,58893],"eDPZzbtSUqk0kME3kFKwdNuPNU73MpMPMD3YRBfZA8c",{"id":59255,"title":59256,"body":59257,"date":402,"description":59605,"extension":404,"meta":59606,"navigation":61,"order":58,"path":59607,"seo":59608,"stem":59609,"subject":58889,"tags":59610,"__hash__":59611},"topics/dry/extract-functions.md","Extract Functions",{"type":8,"value":59258,"toc":59602},[59259,59262,59600],[11,59260,59256],{"id":59261},"extract-functions",[25,59263,59265],{"className":571,"code":59264,"language":573,"meta":30,"style":30},"// ❌ Bad - repeated validation logic\nfunction createUser(email: string) {\n  if (!email.includes('@') || email.length \u003C 5) {\n    throw new Error('Invalid email');\n  }\n  // create user...\n}\n\nfunction updateEmail(email: string) {\n  if (!email.includes('@') || email.length \u003C 5) {\n    throw new Error('Invalid email');\n  }\n  // update email...\n}\n\n// ✅ Good - extracted reusable function\nfunction validateEmail(email: string): boolean {\n  return email.includes('@') && email.length >= 5;\n}\n\nfunction createUser(email: string) {\n  if (!validateEmail(email)) throw new Error('Invalid email');\n  // create user...\n}\n\nfunction updateEmail(email: string) {\n  if (!validateEmail(email)) throw new Error('Invalid email');\n  // update email...\n}\n",[20,59266,59267,59272,59290,59324,59339,59343,59348,59352,59356,59373,59403,59417,59421,59426,59430,59434,59439,59463,59490,59494,59498,59514,59540,59544,59548,59552,59568,59592,59596],{"__ignoreMap":30},[34,59268,59269],{"class":36,"line":37},[34,59270,59271],{"class":40},"// ❌ Bad - repeated validation logic\n",[34,59273,59274,59276,59279,59281,59284,59286,59288],{"class":36,"line":44},[34,59275,11044],{"class":580},[34,59277,59278],{"class":47}," createUser",[34,59280,1607],{"class":181},[34,59282,59283],{"class":675},"email",[34,59285,165],{"class":580},[34,59287,680],{"class":50},[34,59289,2416],{"class":181},[34,59291,59292,59294,59296,59298,59301,59304,59306,59309,59311,59313,59316,59318,59320,59322],{"class":36,"line":58},[34,59293,8084],{"class":580},[34,59295,3204],{"class":181},[34,59297,10307],{"class":580},[34,59299,59300],{"class":181},"email.",[34,59302,59303],{"class":47},"includes",[34,59305,1607],{"class":181},[34,59307,59308],{"class":54},"'@'",[34,59310,4817],{"class":181},[34,59312,10892],{"class":580},[34,59314,59315],{"class":181}," email.",[34,59317,2908],{"class":50},[34,59319,5470],{"class":580},[34,59321,11144],{"class":50},[34,59323,2416],{"class":181},[34,59325,59326,59328,59330,59332,59334,59337],{"class":36,"line":65},[34,59327,48916],{"class":580},[34,59329,809],{"class":580},[34,59331,48752],{"class":47},[34,59333,1607],{"class":181},[34,59335,59336],{"class":54},"'Invalid email'",[34,59338,1586],{"class":181},[34,59340,59341],{"class":36,"line":71},[34,59342,857],{"class":181},[34,59344,59345],{"class":36,"line":77},[34,59346,59347],{"class":40},"  // create user...\n",[34,59349,59350],{"class":36,"line":82},[34,59351,693],{"class":181},[34,59353,59354],{"class":36,"line":88},[34,59355,62],{"emptyLinePlaceholder":61},[34,59357,59358,59360,59363,59365,59367,59369,59371],{"class":36,"line":242},[34,59359,11044],{"class":580},[34,59361,59362],{"class":47}," updateEmail",[34,59364,1607],{"class":181},[34,59366,59283],{"class":675},[34,59368,165],{"class":580},[34,59370,680],{"class":50},[34,59372,2416],{"class":181},[34,59374,59375,59377,59379,59381,59383,59385,59387,59389,59391,59393,59395,59397,59399,59401],{"class":36,"line":250},[34,59376,8084],{"class":580},[34,59378,3204],{"class":181},[34,59380,10307],{"class":580},[34,59382,59300],{"class":181},[34,59384,59303],{"class":47},[34,59386,1607],{"class":181},[34,59388,59308],{"class":54},[34,59390,4817],{"class":181},[34,59392,10892],{"class":580},[34,59394,59315],{"class":181},[34,59396,2908],{"class":50},[34,59398,5470],{"class":580},[34,59400,11144],{"class":50},[34,59402,2416],{"class":181},[34,59404,59405,59407,59409,59411,59413,59415],{"class":36,"line":263},[34,59406,48916],{"class":580},[34,59408,809],{"class":580},[34,59410,48752],{"class":47},[34,59412,1607],{"class":181},[34,59414,59336],{"class":54},[34,59416,1586],{"class":181},[34,59418,59419],{"class":36,"line":275},[34,59420,857],{"class":181},[34,59422,59423],{"class":36,"line":700},[34,59424,59425],{"class":40},"  // update email...\n",[34,59427,59428],{"class":36,"line":706},[34,59429,693],{"class":181},[34,59431,59432],{"class":36,"line":715},[34,59433,62],{"emptyLinePlaceholder":61},[34,59435,59436],{"class":36,"line":725},[34,59437,59438],{"class":40},"// ✅ Good - extracted reusable function\n",[34,59440,59441,59443,59446,59448,59450,59452,59454,59456,59458,59461],{"class":36,"line":734},[34,59442,11044],{"class":580},[34,59444,59445],{"class":47}," validateEmail",[34,59447,1607],{"class":181},[34,59449,59283],{"class":675},[34,59451,165],{"class":580},[34,59453,680],{"class":50},[34,59455,1617],{"class":181},[34,59457,165],{"class":580},[34,59459,59460],{"class":50}," boolean",[34,59462,661],{"class":181},[34,59464,59465,59467,59469,59471,59473,59475,59477,59479,59481,59483,59486,59488],{"class":36,"line":742},[34,59466,8155],{"class":580},[34,59468,59315],{"class":181},[34,59470,59303],{"class":47},[34,59472,1607],{"class":181},[34,59474,59308],{"class":54},[34,59476,4817],{"class":181},[34,59478,22938],{"class":580},[34,59480,59315],{"class":181},[34,59482,2908],{"class":50},[34,59484,59485],{"class":580}," >=",[34,59487,11144],{"class":50},[34,59489,593],{"class":181},[34,59491,59492],{"class":36,"line":748},[34,59493,693],{"class":181},[34,59495,59496],{"class":36,"line":754},[34,59497,62],{"emptyLinePlaceholder":61},[34,59499,59500,59502,59504,59506,59508,59510,59512],{"class":36,"line":759},[34,59501,11044],{"class":580},[34,59503,59278],{"class":47},[34,59505,1607],{"class":181},[34,59507,59283],{"class":675},[34,59509,165],{"class":580},[34,59511,680],{"class":50},[34,59513,2416],{"class":181},[34,59515,59516,59518,59520,59522,59525,59528,59530,59532,59534,59536,59538],{"class":36,"line":771},[34,59517,8084],{"class":580},[34,59519,3204],{"class":181},[34,59521,10307],{"class":580},[34,59523,59524],{"class":47},"validateEmail",[34,59526,59527],{"class":181},"(email)) ",[34,59529,35434],{"class":580},[34,59531,809],{"class":580},[34,59533,48752],{"class":47},[34,59535,1607],{"class":181},[34,59537,59336],{"class":54},[34,59539,1586],{"class":181},[34,59541,59542],{"class":36,"line":794},[34,59543,59347],{"class":40},[34,59545,59546],{"class":36,"line":824},[34,59547,693],{"class":181},[34,59549,59550],{"class":36,"line":830},[34,59551,62],{"emptyLinePlaceholder":61},[34,59553,59554,59556,59558,59560,59562,59564,59566],{"class":36,"line":839},[34,59555,11044],{"class":580},[34,59557,59362],{"class":47},[34,59559,1607],{"class":181},[34,59561,59283],{"class":675},[34,59563,165],{"class":580},[34,59565,680],{"class":50},[34,59567,2416],{"class":181},[34,59569,59570,59572,59574,59576,59578,59580,59582,59584,59586,59588,59590],{"class":36,"line":854},[34,59571,8084],{"class":580},[34,59573,3204],{"class":181},[34,59575,10307],{"class":580},[34,59577,59524],{"class":47},[34,59579,59527],{"class":181},[34,59581,35434],{"class":580},[34,59583,809],{"class":580},[34,59585,48752],{"class":47},[34,59587,1607],{"class":181},[34,59589,59336],{"class":54},[34,59591,1586],{"class":181},[34,59593,59594],{"class":36,"line":860},[34,59595,59425],{"class":40},[34,59597,59598],{"class":36,"line":865},[34,59599,693],{"class":181},[388,59601,17665],{},{"title":30,"searchDepth":44,"depth":44,"links":59603},[59604],{"id":59261,"depth":44,"text":59256},"Extract Functions in DRY Principle.",{},"/dry/extract-functions",{"title":59256,"description":59605},"dry/extract-functions",[58889,5600,58891,58892,58893],"4QMS623NGQ0LklYVKyr0UBJ79aH85LuLd6GEA8ReAUs",{"id":59613,"title":59614,"body":59615,"date":2633,"description":59669,"extension":404,"meta":59670,"navigation":61,"order":37,"path":59671,"seo":59672,"stem":59673,"subject":58889,"tags":59674,"__hash__":59675},"topics/dry/overview.md","DRY Principle",{"type":8,"value":59616,"toc":59667},[59617],[309,59618,59619,59625,59629,59635,59639,59645,59649,59655,59661],{},[312,59620,59621],{},[145,59622,59624],{"href":59623},"/dry/what-is-dry","What is DRY?",[312,59626,59627],{},[145,59628,59256],{"href":59607},[312,59630,59631],{},[145,59632,59634],{"href":59633},"/dry/use-constants","Use Constants",[312,59636,59637],{},[145,59638,58897],{"href":59249},[312,59640,59641],{},[145,59642,59644],{"href":59643},"/dry/use-utility-functions","Use Utility Functions",[312,59646,59647],{},[145,59648,58733],{"href":58886},[312,59650,59651],{},[145,59652,59654],{"href":59653},"/dry/templatecomponent-reuse","Template/Component Reuse",[312,59656,59657],{},[145,59658,59660],{"href":59659},"/dry/when-not-to-apply-dry","When NOT to Apply DRY",[312,59662,59663],{},[145,59664,59666],{"href":59665},"/dry/quick-reference","Quick Reference",{"title":30,"searchDepth":44,"depth":44,"links":59668},[],"Don't Repeat Yourself - a fundamental principle for reducing code duplication and improving maintainability.",{},"/dry/overview",{"title":59614,"description":59669},"dry/overview",[58889,5600,58891,58892,58893],"II59CzWHttrppoaB-Xgbif3thYAhsYo-L9jWa0h45es",{"id":59677,"title":59666,"body":59678,"date":402,"description":59748,"extension":404,"meta":59749,"navigation":61,"order":250,"path":59665,"seo":59750,"stem":59751,"subject":58889,"tags":59752,"__hash__":59753},"topics/dry/quick-reference.md",{"type":8,"value":59679,"toc":59745},[59680,59683],[11,59681,59666],{"id":59682},"quick-reference",[14308,59684,59685,59695],{},[14311,59686,59687],{},[14314,59688,59689,59692],{},[14317,59690,59691],{},"Technique",[14317,59693,59694],{},"Use Case",[14326,59696,59697,59705,59713,59721,59729,59737],{},[14314,59698,59699,59702],{},[14331,59700,59701],{},"Extract functions",[14331,59703,59704],{},"Repeated logic blocks",[14314,59706,59707,59710],{},[14331,59708,59709],{},"Constants",[14331,59711,59712],{},"Magic numbers/strings",[14314,59714,59715,59718],{},[14331,59716,59717],{},"Base classes",[14331,59719,59720],{},"Shared behavior",[14314,59722,59723,59726],{},[14331,59724,59725],{},"Utilities",[14331,59727,59728],{},"Common operations",[14314,59730,59731,59734],{},[14331,59732,59733],{},"Config files",[14331,59735,59736],{},"Environment values",[14314,59738,59739,59742],{},[14331,59740,59741],{},"Components",[14331,59743,59744],{},"Repeated UI patterns",{"title":30,"searchDepth":44,"depth":44,"links":59746},[59747],{"id":59682,"depth":44,"text":59666},"Quick Reference in DRY Principle.",{},{"title":59666,"description":59748},"dry/quick-reference",[58889,5600,58891,58892,58893],"UqohQtMFMKu8MaShesDI-JPdKIFaDpRu5-bgDTVeFdA",{"id":59755,"title":59654,"body":59756,"date":402,"description":60027,"extension":404,"meta":60028,"navigation":61,"order":88,"path":59653,"seo":60029,"stem":60030,"subject":58889,"tags":60031,"__hash__":60032},"topics/dry/templatecomponent-reuse.md",{"type":8,"value":59757,"toc":60024},[59758,59761,60021],[11,59759,59654],{"id":59760},"templatecomponent-reuse",[25,59762,59764],{"className":571,"code":59763,"language":573,"meta":30,"style":30},"// ❌ Bad - repeated UI structure\nconst UserCard = () => (\n  \u003Cdiv className=\"card shadow rounded p-4\">\n    \u003Ch3>{user.name}\u003C/h3>\n  \u003C/div>\n);\n\nconst ProductCard = () => (\n  \u003Cdiv className=\"card shadow rounded p-4\">\n    \u003Ch3>{product.name}\u003C/h3>\n  \u003C/div>\n);\n\n// ✅ Good - reusable card component\nconst Card = ({ children }) => (\n  \u003Cdiv className=\"card shadow rounded p-4\">\n    {children}\n  \u003C/div>\n);\n\nconst UserCard = () => \u003CCard>\u003Ch3>{user.name}\u003C/h3>\u003C/Card>;\nconst ProductCard = () => \u003CCard>\u003Ch3>{product.name}\u003C/h3>\u003C/Card>;\n",[20,59765,59766,59771,59786,59800,59815,59823,59827,59831,59846,59858,59873,59881,59885,59889,59894,59916,59928,59936,59944,59948,59952,59987],{"__ignoreMap":30},[34,59767,59768],{"class":36,"line":37},[34,59769,59770],{"class":40},"// ❌ Bad - repeated UI structure\n",[34,59772,59773,59775,59778,59780,59782,59784],{"class":36,"line":44},[34,59774,14676],{"class":580},[34,59776,59777],{"class":47}," UserCard",[34,59779,683],{"class":580},[34,59781,17406],{"class":181},[34,59783,3361],{"class":580},[34,59785,13975],{"class":181},[34,59787,59788,59790,59793,59795,59798],{"class":36,"line":58},[34,59789,1181],{"class":580},[34,59791,59792],{"class":181},"div className",[34,59794,1301],{"class":580},[34,59796,59797],{"class":54},"\"card shadow rounded p-4\"",[34,59799,1248],{"class":580},[34,59801,59802,59804,59806,59809,59811,59813],{"class":36,"line":65},[34,59803,1294],{"class":181},[34,59805,102],{"class":47},[34,59807,59808],{"class":181},">{user.name}",[34,59810,2089],{"class":580},[34,59812,102],{"class":181},[34,59814,1248],{"class":580},[34,59816,59817,59819,59821],{"class":36,"line":71},[34,59818,8547],{"class":580},[34,59820,1240],{"class":181},[34,59822,1248],{"class":580},[34,59824,59825],{"class":36,"line":77},[34,59826,1586],{"class":181},[34,59828,59829],{"class":36,"line":82},[34,59830,62],{"emptyLinePlaceholder":61},[34,59832,59833,59835,59838,59840,59842,59844],{"class":36,"line":88},[34,59834,14676],{"class":580},[34,59836,59837],{"class":47}," ProductCard",[34,59839,683],{"class":580},[34,59841,17406],{"class":181},[34,59843,3361],{"class":580},[34,59845,13975],{"class":181},[34,59847,59848,59850,59852,59854,59856],{"class":36,"line":242},[34,59849,1181],{"class":580},[34,59851,59792],{"class":181},[34,59853,1301],{"class":580},[34,59855,59797],{"class":54},[34,59857,1248],{"class":580},[34,59859,59860,59862,59864,59867,59869,59871],{"class":36,"line":250},[34,59861,1294],{"class":181},[34,59863,102],{"class":47},[34,59865,59866],{"class":181},">{product.name}",[34,59868,2089],{"class":580},[34,59870,102],{"class":181},[34,59872,1248],{"class":580},[34,59874,59875,59877,59879],{"class":36,"line":263},[34,59876,8547],{"class":580},[34,59878,1240],{"class":181},[34,59880,1248],{"class":580},[34,59882,59883],{"class":36,"line":275},[34,59884,1586],{"class":181},[34,59886,59887],{"class":36,"line":700},[34,59888,62],{"emptyLinePlaceholder":61},[34,59890,59891],{"class":36,"line":706},[34,59892,59893],{"class":40},"// ✅ Good - reusable card component\n",[34,59895,59896,59898,59901,59903,59906,59909,59912,59914],{"class":36,"line":715},[34,59897,14676],{"class":580},[34,59899,59900],{"class":47}," Card",[34,59902,683],{"class":580},[34,59904,59905],{"class":181}," ({ ",[34,59907,59908],{"class":675},"children",[34,59910,59911],{"class":181}," }) ",[34,59913,3361],{"class":580},[34,59915,13975],{"class":181},[34,59917,59918,59920,59922,59924,59926],{"class":36,"line":725},[34,59919,1181],{"class":580},[34,59921,59792],{"class":181},[34,59923,1301],{"class":580},[34,59925,59797],{"class":54},[34,59927,1248],{"class":580},[34,59929,59930,59932,59934],{"class":36,"line":734},[34,59931,17990],{"class":181},[34,59933,59908],{"class":675},[34,59935,693],{"class":181},[34,59937,59938,59940,59942],{"class":36,"line":742},[34,59939,8547],{"class":580},[34,59941,1240],{"class":181},[34,59943,1248],{"class":580},[34,59945,59946],{"class":36,"line":748},[34,59947,1586],{"class":181},[34,59949,59950],{"class":36,"line":754},[34,59951,62],{"emptyLinePlaceholder":61},[34,59953,59954,59956,59958,59960,59962,59964,59966,59969,59971,59973,59975,59977,59979,59981,59983,59985],{"class":36,"line":759},[34,59955,14676],{"class":580},[34,59957,59777],{"class":47},[34,59959,683],{"class":580},[34,59961,17406],{"class":181},[34,59963,3361],{"class":580},[34,59965,5470],{"class":181},[34,59967,59968],{"class":47},"Card",[34,59970,2040],{"class":181},[34,59972,102],{"class":47},[34,59974,59808],{"class":181},[34,59976,2089],{"class":580},[34,59978,102],{"class":181},[34,59980,5691],{"class":580},[34,59982,2089],{"class":181},[34,59984,59968],{"class":47},[34,59986,4834],{"class":181},[34,59988,59989,59991,59993,59995,59997,59999,60001,60003,60005,60007,60009,60011,60013,60015,60017,60019],{"class":36,"line":771},[34,59990,14676],{"class":580},[34,59992,59837],{"class":47},[34,59994,683],{"class":580},[34,59996,17406],{"class":181},[34,59998,3361],{"class":580},[34,60000,5470],{"class":181},[34,60002,59968],{"class":47},[34,60004,2040],{"class":181},[34,60006,102],{"class":47},[34,60008,59866],{"class":181},[34,60010,2089],{"class":580},[34,60012,102],{"class":181},[34,60014,5691],{"class":580},[34,60016,2089],{"class":181},[34,60018,59968],{"class":47},[34,60020,4834],{"class":181},[388,60022,60023],{},"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 .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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":60025},[60026],{"id":59760,"depth":44,"text":59654},"Template/Component Reuse in DRY Principle.",{},{"title":59654,"description":60027},"dry/templatecomponent-reuse",[58889,5600,58891,58892,58893],"5SmWNoNN_HIXiGmVSuv4PwFos-EB9NaxXhbicAxfOrk",{"id":60034,"title":59634,"body":60035,"date":402,"description":60248,"extension":404,"meta":60249,"navigation":61,"order":65,"path":59633,"seo":60250,"stem":60251,"subject":58889,"tags":60252,"__hash__":60253},"topics/dry/use-constants.md",{"type":8,"value":60036,"toc":60245},[60037,60040,60242],[11,60038,59634],{"id":60039},"use-constants",[25,60041,60043],{"className":571,"code":60042,"language":573,"meta":30,"style":30},"// ❌ Bad - magic numbers repeated\nfunction calculateShipping(weight: number) {\n  return weight * 5.99;\n}\n\nfunction calculateTax(price: number) {\n  return price * 0.08; // 8% tax\n}\n\n// Tax rate 0.08 and shipping rate 5.99 appear in multiple files...\n\n// ✅ Good - centralized constants\nconst SHIPPING_RATE_PER_KG = 5.99;\nconst TAX_RATE = 0.08;\n\nfunction calculateShipping(weight: number) {\n  return weight * SHIPPING_RATE_PER_KG;\n}\n\nfunction calculateTax(price: number) {\n  return price * TAX_RATE;\n}\n",[20,60044,60045,60050,60067,60080,60084,60088,60106,60122,60126,60130,60135,60139,60144,60157,60170,60174,60190,60202,60206,60210,60226,60238],{"__ignoreMap":30},[34,60046,60047],{"class":36,"line":37},[34,60048,60049],{"class":40},"// ❌ Bad - magic numbers repeated\n",[34,60051,60052,60054,60057,60059,60061,60063,60065],{"class":36,"line":44},[34,60053,11044],{"class":580},[34,60055,60056],{"class":47}," calculateShipping",[34,60058,1607],{"class":181},[34,60060,52206],{"class":675},[34,60062,165],{"class":580},[34,60064,2741],{"class":50},[34,60066,2416],{"class":181},[34,60068,60069,60071,60073,60075,60078],{"class":36,"line":58},[34,60070,8155],{"class":580},[34,60072,51239],{"class":181},[34,60074,4289],{"class":580},[34,60076,60077],{"class":50}," 5.99",[34,60079,593],{"class":181},[34,60081,60082],{"class":36,"line":65},[34,60083,693],{"class":181},[34,60085,60086],{"class":36,"line":71},[34,60087,62],{"emptyLinePlaceholder":61},[34,60089,60090,60092,60095,60097,60100,60102,60104],{"class":36,"line":77},[34,60091,11044],{"class":580},[34,60093,60094],{"class":47}," calculateTax",[34,60096,1607],{"class":181},[34,60098,60099],{"class":675},"price",[34,60101,165],{"class":580},[34,60103,2741],{"class":50},[34,60105,2416],{"class":181},[34,60107,60108,60110,60112,60114,60117,60119],{"class":36,"line":82},[34,60109,8155],{"class":580},[34,60111,25082],{"class":181},[34,60113,4289],{"class":580},[34,60115,60116],{"class":50}," 0.08",[34,60118,10268],{"class":181},[34,60120,60121],{"class":40},"// 8% tax\n",[34,60123,60124],{"class":36,"line":88},[34,60125,693],{"class":181},[34,60127,60128],{"class":36,"line":242},[34,60129,62],{"emptyLinePlaceholder":61},[34,60131,60132],{"class":36,"line":250},[34,60133,60134],{"class":40},"// Tax rate 0.08 and shipping rate 5.99 appear in multiple files...\n",[34,60136,60137],{"class":36,"line":263},[34,60138,62],{"emptyLinePlaceholder":61},[34,60140,60141],{"class":36,"line":275},[34,60142,60143],{"class":40},"// ✅ Good - centralized constants\n",[34,60145,60146,60148,60151,60153,60155],{"class":36,"line":700},[34,60147,14676],{"class":580},[34,60149,60150],{"class":50}," SHIPPING_RATE_PER_KG",[34,60152,683],{"class":580},[34,60154,60077],{"class":50},[34,60156,593],{"class":181},[34,60158,60159,60161,60164,60166,60168],{"class":36,"line":706},[34,60160,14676],{"class":580},[34,60162,60163],{"class":50}," TAX_RATE",[34,60165,683],{"class":580},[34,60167,60116],{"class":50},[34,60169,593],{"class":181},[34,60171,60172],{"class":36,"line":715},[34,60173,62],{"emptyLinePlaceholder":61},[34,60175,60176,60178,60180,60182,60184,60186,60188],{"class":36,"line":725},[34,60177,11044],{"class":580},[34,60179,60056],{"class":47},[34,60181,1607],{"class":181},[34,60183,52206],{"class":675},[34,60185,165],{"class":580},[34,60187,2741],{"class":50},[34,60189,2416],{"class":181},[34,60191,60192,60194,60196,60198,60200],{"class":36,"line":734},[34,60193,8155],{"class":580},[34,60195,51239],{"class":181},[34,60197,4289],{"class":580},[34,60199,60150],{"class":50},[34,60201,593],{"class":181},[34,60203,60204],{"class":36,"line":742},[34,60205,693],{"class":181},[34,60207,60208],{"class":36,"line":748},[34,60209,62],{"emptyLinePlaceholder":61},[34,60211,60212,60214,60216,60218,60220,60222,60224],{"class":36,"line":754},[34,60213,11044],{"class":580},[34,60215,60094],{"class":47},[34,60217,1607],{"class":181},[34,60219,60099],{"class":675},[34,60221,165],{"class":580},[34,60223,2741],{"class":50},[34,60225,2416],{"class":181},[34,60227,60228,60230,60232,60234,60236],{"class":36,"line":759},[34,60229,8155],{"class":580},[34,60231,25082],{"class":181},[34,60233,4289],{"class":580},[34,60235,60163],{"class":50},[34,60237,593],{"class":181},[34,60239,60240],{"class":36,"line":771},[34,60241,693],{"class":181},[388,60243,60244],{},"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 .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 .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 .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":30,"searchDepth":44,"depth":44,"links":60246},[60247],{"id":60039,"depth":44,"text":59634},"Use Constants in DRY Principle.",{},{"title":59634,"description":60248},"dry/use-constants",[58889,5600,58891,58892,58893],"SyLCnD3JGgkLW1EJadvMrR5GTyAtoJnNlm9FnpOPitM",{"id":60255,"title":59644,"body":60256,"date":402,"description":60579,"extension":404,"meta":60580,"navigation":61,"order":77,"path":59643,"seo":60581,"stem":60582,"subject":58889,"tags":60583,"__hash__":60584},"topics/dry/use-utility-functions.md",{"type":8,"value":60257,"toc":60576},[60258,60261,60574],[11,60259,59644],{"id":60260},"use-utility-functions",[25,60262,60264],{"className":571,"code":60263,"language":573,"meta":30,"style":30},"// ❌ Bad - repeated formatting logic\nfunction displayUserDate(user: User) {\n  const date = user.createdAt;\n  return `${date.getMonth()+1}/${date.getDate()}/${date.getFullYear()}`;\n}\n\nfunction displayOrderDate(order: Order) {\n  const date = order.placedAt;\n  return `${date.getMonth()+1}/${date.getDate()}/${date.getFullYear()}`;\n}\n\n// ✅ Good - reusable utility\nfunction formatDate(date: Date): string {\n  return `${date.getMonth()+1}/${date.getDate()}/${date.getFullYear()}`;\n}\n\nfunction displayUserDate(user: User) {\n  return formatDate(user.createdAt);\n}\n\nfunction displayOrderDate(order: Order) {\n  return formatDate(order.placedAt);\n}\n",[20,60265,60266,60271,60288,60299,60345,60349,60353,60372,60383,60425,60429,60433,60438,60462,60504,60508,60512,60528,60537,60541,60545,60561,60570],{"__ignoreMap":30},[34,60267,60268],{"class":36,"line":37},[34,60269,60270],{"class":40},"// ❌ Bad - repeated formatting logic\n",[34,60272,60273,60275,60278,60280,60282,60284,60286],{"class":36,"line":44},[34,60274,11044],{"class":580},[34,60276,60277],{"class":47}," displayUserDate",[34,60279,1607],{"class":181},[34,60281,3945],{"class":675},[34,60283,165],{"class":580},[34,60285,3950],{"class":47},[34,60287,2416],{"class":181},[34,60289,60290,60292,60294,60296],{"class":36,"line":58},[34,60291,17415],{"class":580},[34,60293,2692],{"class":50},[34,60295,683],{"class":580},[34,60297,60298],{"class":181}," user.createdAt;\n",[34,60300,60301,60303,60306,60308,60310,60313,60315,60317,60319,60321,60323,60325,60328,60330,60332,60334,60336,60339,60341,60343],{"class":36,"line":65},[34,60302,8155],{"class":580},[34,60304,60305],{"class":54}," `${",[34,60307,13390],{"class":181},[34,60309,151],{"class":54},[34,60311,60312],{"class":47},"getMonth",[34,60314,1546],{"class":54},[34,60316,2940],{"class":580},[34,60318,8318],{"class":50},[34,60320,3920],{"class":54},[34,60322,13390],{"class":181},[34,60324,151],{"class":54},[34,60326,60327],{"class":47},"getDate",[34,60329,1546],{"class":54},[34,60331,3920],{"class":54},[34,60333,13390],{"class":181},[34,60335,151],{"class":54},[34,60337,60338],{"class":47},"getFullYear",[34,60340,1546],{"class":54},[34,60342,3925],{"class":54},[34,60344,593],{"class":181},[34,60346,60347],{"class":36,"line":71},[34,60348,693],{"class":181},[34,60350,60351],{"class":36,"line":77},[34,60352,62],{"emptyLinePlaceholder":61},[34,60354,60355,60357,60360,60362,60365,60367,60370],{"class":36,"line":82},[34,60356,11044],{"class":580},[34,60358,60359],{"class":47}," displayOrderDate",[34,60361,1607],{"class":181},[34,60363,60364],{"class":675},"order",[34,60366,165],{"class":580},[34,60368,60369],{"class":47}," Order",[34,60371,2416],{"class":181},[34,60373,60374,60376,60378,60380],{"class":36,"line":88},[34,60375,17415],{"class":580},[34,60377,2692],{"class":50},[34,60379,683],{"class":580},[34,60381,60382],{"class":181}," order.placedAt;\n",[34,60384,60385,60387,60389,60391,60393,60395,60397,60399,60401,60403,60405,60407,60409,60411,60413,60415,60417,60419,60421,60423],{"class":36,"line":242},[34,60386,8155],{"class":580},[34,60388,60305],{"class":54},[34,60390,13390],{"class":181},[34,60392,151],{"class":54},[34,60394,60312],{"class":47},[34,60396,1546],{"class":54},[34,60398,2940],{"class":580},[34,60400,8318],{"class":50},[34,60402,3920],{"class":54},[34,60404,13390],{"class":181},[34,60406,151],{"class":54},[34,60408,60327],{"class":47},[34,60410,1546],{"class":54},[34,60412,3920],{"class":54},[34,60414,13390],{"class":181},[34,60416,151],{"class":54},[34,60418,60338],{"class":47},[34,60420,1546],{"class":54},[34,60422,3925],{"class":54},[34,60424,593],{"class":181},[34,60426,60427],{"class":36,"line":250},[34,60428,693],{"class":181},[34,60430,60431],{"class":36,"line":263},[34,60432,62],{"emptyLinePlaceholder":61},[34,60434,60435],{"class":36,"line":275},[34,60436,60437],{"class":40},"// ✅ Good - reusable utility\n",[34,60439,60440,60442,60445,60447,60449,60451,60454,60456,60458,60460],{"class":36,"line":700},[34,60441,11044],{"class":580},[34,60443,60444],{"class":47}," formatDate",[34,60446,1607],{"class":181},[34,60448,13390],{"class":675},[34,60450,165],{"class":580},[34,60452,60453],{"class":47}," Date",[34,60455,1617],{"class":181},[34,60457,165],{"class":580},[34,60459,680],{"class":50},[34,60461,661],{"class":181},[34,60463,60464,60466,60468,60470,60472,60474,60476,60478,60480,60482,60484,60486,60488,60490,60492,60494,60496,60498,60500,60502],{"class":36,"line":706},[34,60465,8155],{"class":580},[34,60467,60305],{"class":54},[34,60469,13390],{"class":181},[34,60471,151],{"class":54},[34,60473,60312],{"class":47},[34,60475,1546],{"class":54},[34,60477,2940],{"class":580},[34,60479,8318],{"class":50},[34,60481,3920],{"class":54},[34,60483,13390],{"class":181},[34,60485,151],{"class":54},[34,60487,60327],{"class":47},[34,60489,1546],{"class":54},[34,60491,3920],{"class":54},[34,60493,13390],{"class":181},[34,60495,151],{"class":54},[34,60497,60338],{"class":47},[34,60499,1546],{"class":54},[34,60501,3925],{"class":54},[34,60503,593],{"class":181},[34,60505,60506],{"class":36,"line":715},[34,60507,693],{"class":181},[34,60509,60510],{"class":36,"line":725},[34,60511,62],{"emptyLinePlaceholder":61},[34,60513,60514,60516,60518,60520,60522,60524,60526],{"class":36,"line":734},[34,60515,11044],{"class":580},[34,60517,60277],{"class":47},[34,60519,1607],{"class":181},[34,60521,3945],{"class":675},[34,60523,165],{"class":580},[34,60525,3950],{"class":47},[34,60527,2416],{"class":181},[34,60529,60530,60532,60534],{"class":36,"line":742},[34,60531,8155],{"class":580},[34,60533,60444],{"class":47},[34,60535,60536],{"class":181},"(user.createdAt);\n",[34,60538,60539],{"class":36,"line":748},[34,60540,693],{"class":181},[34,60542,60543],{"class":36,"line":754},[34,60544,62],{"emptyLinePlaceholder":61},[34,60546,60547,60549,60551,60553,60555,60557,60559],{"class":36,"line":759},[34,60548,11044],{"class":580},[34,60550,60359],{"class":47},[34,60552,1607],{"class":181},[34,60554,60364],{"class":675},[34,60556,165],{"class":580},[34,60558,60369],{"class":47},[34,60560,2416],{"class":181},[34,60562,60563,60565,60567],{"class":36,"line":771},[34,60564,8155],{"class":580},[34,60566,60444],{"class":47},[34,60568,60569],{"class":181},"(order.placedAt);\n",[34,60571,60572],{"class":36,"line":794},[34,60573,693],{"class":181},[388,60575,17665],{},{"title":30,"searchDepth":44,"depth":44,"links":60577},[60578],{"id":60260,"depth":44,"text":59644},"Use Utility Functions in DRY Principle.",{},{"title":59644,"description":60579},"dry/use-utility-functions",[58889,5600,58891,58892,58893],"AesJ5WpN_JXr4qQ4EjmXL8E889CVCBc_raT4kFiaOBY",{"id":60586,"title":59624,"body":60587,"date":402,"description":60604,"extension":404,"meta":60605,"navigation":61,"order":44,"path":59623,"seo":60606,"stem":60607,"subject":58889,"tags":60608,"__hash__":60609},"topics/dry/what-is-dry.md",{"type":8,"value":60588,"toc":60601},[60589,60592,60595],[11,60590,59624],{"id":60591},"what-is-dry",[16,60593,60594],{},"\"Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.\"",[25,60596,60599],{"className":60597,"code":60598,"language":780,"meta":30},[13703],"DRY = Don't Repeat Yourself\n\n✓ Single source of truth\n✓ Reduce duplication\n✓ Centralize logic\n✓ Easier maintenance\n",[20,60600,60598],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":60602},[60603],{"id":60591,"depth":44,"text":59624},"What is DRY? in DRY Principle.",{},{"title":59624,"description":60604},"dry/what-is-dry",[58889,5600,58891,58892,58893],"WIUwoiAh81_x4Nwd5X5_YfNSvIYGqucpuzvHULMPCF4",{"id":60611,"title":59660,"body":60612,"date":402,"description":60626,"extension":404,"meta":60627,"navigation":61,"order":242,"path":59659,"seo":60628,"stem":60629,"subject":58889,"tags":60630,"__hash__":60631},"topics/dry/when-not-to-apply-dry.md",{"type":8,"value":60613,"toc":60623},[60614,60617],[11,60615,59660],{"id":60616},"when-not-to-apply-dry",[25,60618,60621],{"className":60619,"code":60620,"language":780,"meta":30},[13703],"⚠️ Avoid premature abstraction:\n\n• Code that looks similar but serves different purposes\n• Two pieces of code that might evolve differently\n• When abstraction adds more complexity than duplication\n• \"Rule of Three\" - wait for 3 occurrences before abstracting\n\nRemember: Some duplication is better than wrong abstraction\n",[20,60622,60620],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":60624},[60625],{"id":60616,"depth":44,"text":59660},"When NOT to Apply DRY in DRY Principle.",{},{"title":59660,"description":60626},"dry/when-not-to-apply-dry",[58889,5600,58891,58892,58893],"jIZmgW3HBRUZgcqiVkS1_G-mN4ZpdOpln2tnPWVRPsU",{"id":60633,"title":60634,"body":60635,"date":402,"description":61349,"extension":404,"meta":61350,"navigation":61,"order":37,"path":61351,"seo":61352,"stem":61353,"subject":61354,"tags":61355,"__hash__":61356},"topics/effect/overview.md","Effect",{"type":8,"value":60636,"toc":61337},[60637,60639,60642,60644,60647,60775,60780,60784,60897,60902,60904,61083,61088,61092,61195,61200,61202,61205,61232,61236,61239,61298,61303,61307,61329,61334],[11,60638,14],{"id":13},[16,60640,60641],{},"Effect is a powerful TypeScript library designed to aid developers in creating complex, scalable, and maintainable applications. It focuses on concurrency, compositional design, and robust error handling.",[11,60643,8498],{"id":8497},[102,60645,60646],{"id":33299},"Concurrency",[25,60648,60650],{"className":571,"code":60649,"language":573,"meta":30,"style":30},"import { Effect } from 'effect';\n\nconst program = Effect.gen(function* (_) {\n  const result1 = yield* _(asyncOperation1());\n  const result2 = yield* _(asyncOperation2());\n  return result1 + result2;\n});\n\nEffect.runPromise(program).then(console.log);\n",[20,60651,60652,60666,60670,60697,60719,60739,60751,60755,60759],{"__ignoreMap":30},[34,60653,60654,60656,60659,60661,60664],{"class":36,"line":37},[34,60655,581],{"class":580},[34,60657,60658],{"class":181}," { Effect } ",[34,60660,587],{"class":580},[34,60662,60663],{"class":54}," 'effect'",[34,60665,593],{"class":181},[34,60667,60668],{"class":36,"line":44},[34,60669,62],{"emptyLinePlaceholder":61},[34,60671,60672,60674,60677,60679,60682,60685,60687,60690,60692,60695],{"class":36,"line":58},[34,60673,14676],{"class":580},[34,60675,60676],{"class":50}," program",[34,60678,683],{"class":580},[34,60680,60681],{"class":181}," Effect.",[34,60683,60684],{"class":47},"gen",[34,60686,1607],{"class":181},[34,60688,60689],{"class":580},"function*",[34,60691,3204],{"class":181},[34,60693,60694],{"class":675},"_",[34,60696,2416],{"class":181},[34,60698,60699,60701,60704,60706,60709,60712,60714,60717],{"class":36,"line":65},[34,60700,17415],{"class":580},[34,60702,60703],{"class":50}," result1",[34,60705,683],{"class":580},[34,60707,60708],{"class":580}," yield*",[34,60710,60711],{"class":47}," _",[34,60713,1607],{"class":181},[34,60715,60716],{"class":47},"asyncOperation1",[34,60718,4343],{"class":181},[34,60720,60721,60723,60726,60728,60730,60732,60734,60737],{"class":36,"line":71},[34,60722,17415],{"class":580},[34,60724,60725],{"class":50}," result2",[34,60727,683],{"class":580},[34,60729,60708],{"class":580},[34,60731,60711],{"class":47},[34,60733,1607],{"class":181},[34,60735,60736],{"class":47},"asyncOperation2",[34,60738,4343],{"class":181},[34,60740,60741,60743,60746,60748],{"class":36,"line":77},[34,60742,8155],{"class":580},[34,60744,60745],{"class":181}," result1 ",[34,60747,2940],{"class":580},[34,60749,60750],{"class":181}," result2;\n",[34,60752,60753],{"class":36,"line":82},[34,60754,14873],{"class":181},[34,60756,60757],{"class":36,"line":88},[34,60758,62],{"emptyLinePlaceholder":61},[34,60760,60761,60764,60767,60770,60772],{"class":36,"line":242},[34,60762,60763],{"class":181},"Effect.",[34,60765,60766],{"class":47},"runPromise",[34,60768,60769],{"class":181},"(program).",[34,60771,3380],{"class":47},[34,60773,60774],{"class":181},"(console.log);\n",[309,60776,60777],{},[312,60778,60779],{},"Fiber-based concurrency model providing ultra-low-latency and scalability.",[102,60781,60783],{"id":60782},"composability","Composability",[25,60785,60787],{"className":571,"code":60786,"language":573,"meta":30,"style":30},"import { pipe } from 'effect';\n\nconst double = (x: number) => x * 2;\nconst increment = (x: number) => x + 1;\n\nconst result = pipe(5, double, increment); // 11\nconsole.log(result);\n",[20,60788,60789,60802,60806,60834,60863,60867,60888],{"__ignoreMap":30},[34,60790,60791,60793,60796,60798,60800],{"class":36,"line":37},[34,60792,581],{"class":580},[34,60794,60795],{"class":181}," { pipe } ",[34,60797,587],{"class":580},[34,60799,60663],{"class":54},[34,60801,593],{"class":181},[34,60803,60804],{"class":36,"line":44},[34,60805,62],{"emptyLinePlaceholder":61},[34,60807,60808,60810,60812,60814,60816,60818,60820,60822,60824,60826,60828,60830,60832],{"class":36,"line":58},[34,60809,14676],{"class":580},[34,60811,36081],{"class":47},[34,60813,683],{"class":580},[34,60815,3204],{"class":181},[34,60817,23655],{"class":675},[34,60819,165],{"class":580},[34,60821,2741],{"class":50},[34,60823,4817],{"class":181},[34,60825,3361],{"class":580},[34,60827,23172],{"class":181},[34,60829,4289],{"class":580},[34,60831,4292],{"class":50},[34,60833,593],{"class":181},[34,60835,60836,60838,60841,60843,60845,60847,60849,60851,60853,60855,60857,60859,60861],{"class":36,"line":65},[34,60837,14676],{"class":580},[34,60839,60840],{"class":47}," increment",[34,60842,683],{"class":580},[34,60844,3204],{"class":181},[34,60846,23655],{"class":675},[34,60848,165],{"class":580},[34,60850,2741],{"class":50},[34,60852,4817],{"class":181},[34,60854,3361],{"class":580},[34,60856,23172],{"class":181},[34,60858,2940],{"class":580},[34,60860,3567],{"class":50},[34,60862,593],{"class":181},[34,60864,60865],{"class":36,"line":71},[34,60866,62],{"emptyLinePlaceholder":61},[34,60868,60869,60871,60873,60875,60878,60880,60882,60885],{"class":36,"line":77},[34,60870,14676],{"class":580},[34,60872,11103],{"class":50},[34,60874,683],{"class":580},[34,60876,60877],{"class":47}," pipe",[34,60879,1607],{"class":181},[34,60881,2778],{"class":50},[34,60883,60884],{"class":181},", double, increment); ",[34,60886,60887],{"class":40},"// 11\n",[34,60889,60890,60892,60894],{"class":36,"line":82},[34,60891,15183],{"class":181},[34,60893,2424],{"class":47},[34,60895,60896],{"class":181},"(result);\n",[309,60898,60899],{},[312,60900,60901],{},"Promotes maintainable and flexible software by combining reusable blocks.",[102,60903,19352],{"id":19357},[25,60905,60907],{"className":571,"code":60906,"language":573,"meta":30,"style":30},"import { Effect } from 'effect';\n\nconst safeDivide = (x: number, y: number) => \n  Effect.tryCatch(\n    () => x / y,\n    () => new Error('Division by zero')\n  );\n\nconst program = Effect.gen(function* (_) {\n  const result = yield* _(safeDivide(10, 0));\n  return result;\n});\n\nEffect.run(program).catch(console.error);\n",[20,60908,60909,60921,60925,60957,60967,60981,60998,61003,61007,61029,61056,61062,61066,61070],{"__ignoreMap":30},[34,60910,60911,60913,60915,60917,60919],{"class":36,"line":37},[34,60912,581],{"class":580},[34,60914,60658],{"class":181},[34,60916,587],{"class":580},[34,60918,60663],{"class":54},[34,60920,593],{"class":181},[34,60922,60923],{"class":36,"line":44},[34,60924,62],{"emptyLinePlaceholder":61},[34,60926,60927,60929,60932,60934,60936,60938,60940,60942,60944,60947,60949,60951,60953,60955],{"class":36,"line":58},[34,60928,14676],{"class":580},[34,60930,60931],{"class":47}," safeDivide",[34,60933,683],{"class":580},[34,60935,3204],{"class":181},[34,60937,23655],{"class":675},[34,60939,165],{"class":580},[34,60941,2741],{"class":50},[34,60943,1798],{"class":181},[34,60945,60946],{"class":675},"y",[34,60948,165],{"class":580},[34,60950,2741],{"class":50},[34,60952,4817],{"class":181},[34,60954,3361],{"class":580},[34,60956,526],{"class":181},[34,60958,60959,60962,60965],{"class":36,"line":65},[34,60960,60961],{"class":181},"  Effect.",[34,60963,60964],{"class":47},"tryCatch",[34,60966,1882],{"class":181},[34,60968,60969,60972,60974,60976,60978],{"class":36,"line":71},[34,60970,60971],{"class":181},"    () ",[34,60973,3361],{"class":580},[34,60975,23172],{"class":181},[34,60977,12734],{"class":580},[34,60979,60980],{"class":181}," y,\n",[34,60982,60983,60985,60987,60989,60991,60993,60996],{"class":36,"line":77},[34,60984,60971],{"class":181},[34,60986,3361],{"class":580},[34,60988,809],{"class":580},[34,60990,48752],{"class":47},[34,60992,1607],{"class":181},[34,60994,60995],{"class":54},"'Division by zero'",[34,60997,3372],{"class":181},[34,60999,61000],{"class":36,"line":82},[34,61001,61002],{"class":181},"  );\n",[34,61004,61005],{"class":36,"line":88},[34,61006,62],{"emptyLinePlaceholder":61},[34,61008,61009,61011,61013,61015,61017,61019,61021,61023,61025,61027],{"class":36,"line":242},[34,61010,14676],{"class":580},[34,61012,60676],{"class":50},[34,61014,683],{"class":580},[34,61016,60681],{"class":181},[34,61018,60684],{"class":47},[34,61020,1607],{"class":181},[34,61022,60689],{"class":580},[34,61024,3204],{"class":181},[34,61026,60694],{"class":675},[34,61028,2416],{"class":181},[34,61030,61031,61033,61035,61037,61039,61041,61043,61046,61048,61050,61052,61054],{"class":36,"line":250},[34,61032,17415],{"class":580},[34,61034,11103],{"class":50},[34,61036,683],{"class":580},[34,61038,60708],{"class":580},[34,61040,60711],{"class":47},[34,61042,1607],{"class":181},[34,61044,61045],{"class":47},"safeDivide",[34,61047,1607],{"class":181},[34,61049,11923],{"class":50},[34,61051,1798],{"class":181},[34,61053,2773],{"class":50},[34,61055,15223],{"class":181},[34,61057,61058,61060],{"class":36,"line":263},[34,61059,8155],{"class":580},[34,61061,19480],{"class":181},[34,61063,61064],{"class":36,"line":275},[34,61065,14873],{"class":181},[34,61067,61068],{"class":36,"line":700},[34,61069,62],{"emptyLinePlaceholder":61},[34,61071,61072,61074,61076,61078,61080],{"class":36,"line":706},[34,61073,60763],{"class":181},[34,61075,14592],{"class":47},[34,61077,60769],{"class":181},[34,61079,30851],{"class":47},[34,61081,61082],{"class":181},"(console.error);\n",[309,61084,61085],{},[312,61086,61087],{},"Structured error handling with fallback and recovery logic.",[102,61089,61091],{"id":61090},"type-safety","Type Safety",[25,61093,61095],{"className":571,"code":61094,"language":573,"meta":30,"style":30},"type User = { id: string; name: string };\n\nconst getUser: Effect\u003CUser> = Effect.succeed({ id: '1', name: 'Alice' });\n\nEffect.runPromise(Effect.map(getUser, user => user.name)).then(console.log);\n",[20,61096,61097,61123,61127,61165,61169],{"__ignoreMap":30},[34,61098,61099,61101,61103,61105,61107,61109,61111,61113,61115,61117,61119,61121],{"class":36,"line":37},[34,61100,41324],{"class":580},[34,61102,3950],{"class":47},[34,61104,683],{"class":580},[34,61106,30251],{"class":181},[34,61108,3885],{"class":675},[34,61110,165],{"class":580},[34,61112,680],{"class":50},[34,61114,10268],{"class":181},[34,61116,178],{"class":675},[34,61118,165],{"class":580},[34,61120,680],{"class":50},[34,61122,33355],{"class":181},[34,61124,61125],{"class":36,"line":44},[34,61126,62],{"emptyLinePlaceholder":61},[34,61128,61129,61131,61134,61136,61139,61141,61143,61145,61147,61149,61152,61155,61158,61161,61163],{"class":36,"line":58},[34,61130,14676],{"class":580},[34,61132,61133],{"class":50}," getUser",[34,61135,165],{"class":580},[34,61137,61138],{"class":47}," Effect",[34,61140,815],{"class":181},[34,61142,3860],{"class":47},[34,61144,32840],{"class":181},[34,61146,1301],{"class":580},[34,61148,60681],{"class":181},[34,61150,61151],{"class":47},"succeed",[34,61153,61154],{"class":181},"({ id: ",[34,61156,61157],{"class":54},"'1'",[34,61159,61160],{"class":181},", name: ",[34,61162,28504],{"class":54},[34,61164,15567],{"class":181},[34,61166,61167],{"class":36,"line":65},[34,61168,62],{"emptyLinePlaceholder":61},[34,61170,61171,61173,61175,61178,61181,61184,61186,61188,61191,61193],{"class":36,"line":71},[34,61172,60763],{"class":181},[34,61174,60766],{"class":47},[34,61176,61177],{"class":181},"(Effect.",[34,61179,61180],{"class":47},"map",[34,61182,61183],{"class":181},"(getUser, ",[34,61185,3945],{"class":675},[34,61187,1895],{"class":580},[34,61189,61190],{"class":181}," user.name)).",[34,61192,3380],{"class":47},[34,61194,60774],{"class":181},[309,61196,61197],{},[312,61198,61199],{},"Leverages TypeScript to ensure safety and correctness.",[11,61201,6035],{"id":6040},[16,61203,61204],{},"To install Effect, simply use your desired package manager:",[25,61206,61208],{"className":27,"code":61207,"language":29,"meta":30,"style":30},"npm install effect\n# or\nyarn add effect\n",[20,61209,61210,61219,61224],{"__ignoreMap":30},[34,61211,61212,61214,61216],{"class":36,"line":37},[34,61213,8177],{"class":47},[34,61215,118],{"class":54},[34,61217,61218],{"class":54}," effect\n",[34,61220,61221],{"class":36,"line":44},[34,61222,61223],{"class":40},"# or\n",[34,61225,61226,61228,61230],{"class":36,"line":58},[34,61227,13810],{"class":47},[34,61229,7854],{"class":54},[34,61231,61218],{"class":54},[11,61233,61235],{"id":61234},"example-workflow","Example Workflow",[16,61237,61238],{},"Define and run an Effect program:",[25,61240,61242],{"className":571,"code":61241,"language":573,"meta":30,"style":30},"import { Effect } from 'effect';\n\nconst sayHello = Effect.succeedWith(() => console.log(\"Hello, Effect!\"));\nEffect.run(sayHello);\n",[20,61243,61244,61256,61260,61289],{"__ignoreMap":30},[34,61245,61246,61248,61250,61252,61254],{"class":36,"line":37},[34,61247,581],{"class":580},[34,61249,60658],{"class":181},[34,61251,587],{"class":580},[34,61253,60663],{"class":54},[34,61255,593],{"class":181},[34,61257,61258],{"class":36,"line":44},[34,61259,62],{"emptyLinePlaceholder":61},[34,61261,61262,61264,61267,61269,61271,61274,61276,61278,61280,61282,61284,61287],{"class":36,"line":58},[34,61263,14676],{"class":580},[34,61265,61266],{"class":50}," sayHello",[34,61268,683],{"class":580},[34,61270,60681],{"class":181},[34,61272,61273],{"class":47},"succeedWith",[34,61275,4275],{"class":181},[34,61277,3361],{"class":580},[34,61279,4940],{"class":181},[34,61281,2424],{"class":47},[34,61283,1607],{"class":181},[34,61285,61286],{"class":54},"\"Hello, Effect!\"",[34,61288,15223],{"class":181},[34,61290,61291,61293,61295],{"class":36,"line":65},[34,61292,60763],{"class":181},[34,61294,14592],{"class":47},[34,61296,61297],{"class":181},"(sayHello);\n",[309,61299,61300],{},[312,61301,61302],{},"Quick setup and intuitive usage.",[11,61304,61306],{"id":61305},"community-resources","Community Resources",[309,61308,61309,61315,61322],{},[312,61310,61311],{},[145,61312,28212],{"href":61313,"rel":61314},"https://effect.website/docs",[149],[312,61316,61317],{},[145,61318,61321],{"href":61319,"rel":61320},"https://github.com/Effect-TS",[149],"GitHub Repository",[312,61323,61324],{},[145,61325,61328],{"href":61326,"rel":61327},"https://discord.gg/effect-ts",[149],"Join the Discord Community",[16,61330,61331],{},[8563,61332,61333],{},"(For advanced topics, see sections on Error Management, Resource Safety, and Observability in the official docs.)",[388,61335,61336],{},"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}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}",{"title":30,"searchDepth":44,"depth":44,"links":61338},[61339,61340,61346,61347,61348],{"id":13,"depth":44,"text":14},{"id":8497,"depth":44,"text":8498,"children":61341},[61342,61343,61344,61345],{"id":33299,"depth":58,"text":60646},{"id":60782,"depth":58,"text":60783},{"id":19357,"depth":58,"text":19352},{"id":61090,"depth":58,"text":61091},{"id":6040,"depth":44,"text":6035},{"id":61234,"depth":44,"text":61235},{"id":61305,"depth":44,"text":61306},"Fundamental features and API overview for the Effect TypeScript library.",{},"/effect/overview",{"title":60634,"description":61349},"effect/overview","effect",[61354,573,33299,19357],"Op6Hgbu-flaMuImkaMyE-ao0X952MJ2WqBeq-4OdcDk",{"id":61358,"title":61359,"body":61360,"date":402,"description":61656,"extension":404,"meta":61657,"navigation":61,"order":37,"path":61658,"seo":61659,"stem":61660,"subject":61371,"tags":61661,"__hash__":61663},"topics/elixir/overview.md","Elixir Overview",{"type":8,"value":61361,"toc":61646},[61362,61364,61367,61384,61386,61405,61420,61424,61427,61474,61478,61481,61501,61503,61506,61564,61568,61571,61586,61588,61597,61626,61630,61644],[11,61363,14],{"id":13},[16,61365,61366],{},"Elixir is a functional programming language built on the Erlang VM, designed for scalable and maintainable applications. It is particularly well-suited for fault-tolerant, distributed systems.",[25,61368,61372],{"className":61369,"code":61370,"language":61371,"meta":30,"style":30},"language-elixir shiki shiki-themes github-light github-dark","# Simple Elixir Example\nIO.puts(\"Hello, world!\")\n","elixir",[20,61373,61374,61379],{"__ignoreMap":30},[34,61375,61376],{"class":36,"line":37},[34,61377,61378],{},"# Simple Elixir Example\n",[34,61380,61381],{"class":36,"line":44},[34,61382,61383],{},"IO.puts(\"Hello, world!\")\n",[11,61385,8498],{"id":8497},[309,61387,61388,61393,61399],{},[312,61389,61390,61392],{},[8471,61391,60646],{},": Leverage lightweight processes with the Erlang VM.",[312,61394,61395,61398],{},[8471,61396,61397],{},"Fault-Tolerance",": Built for high availability.",[312,61400,61401,61404],{},[8471,61402,61403],{},"Extensibility",": Leverage macros for metaprogramming.",[25,61406,61408],{"className":61369,"code":61407,"language":61371,"meta":30,"style":30},"# Example of a Concurrent Task\nspawn(fn -> IO.puts(\"Hello from a process!\") end)\n",[20,61409,61410,61415],{"__ignoreMap":30},[34,61411,61412],{"class":36,"line":37},[34,61413,61414],{},"# Example of a Concurrent Task\n",[34,61416,61417],{"class":36,"line":44},[34,61418,61419],{},"spawn(fn -> IO.puts(\"Hello from a process!\") end)\n",[11,61421,61423],{"id":61422},"data-types","Data Types",[16,61425,61426],{},"Elixir supports robust data structures:",[309,61428,61429,61444,61459],{},[312,61430,61431,61434,61435],{},[8471,61432,61433],{},"Tuples",": Fixed-size collections.\n",[25,61436,61438],{"className":61369,"code":61437,"language":61371,"meta":30,"style":30},"{\"John\", 28, \"Developer\"}\n",[20,61439,61440],{"__ignoreMap":30},[34,61441,61442],{"class":36,"line":37},[34,61443,61437],{},[312,61445,61446,61449,61450],{},[8471,61447,61448],{},"Lists",": Ordered collections.\n",[25,61451,61453],{"className":61369,"code":61452,"language":61371,"meta":30,"style":30},"[1, 2, 3]\n",[20,61454,61455],{"__ignoreMap":30},[34,61456,61457],{"class":36,"line":37},[34,61458,61452],{},[312,61460,61461,61464,61465],{},[8471,61462,61463],{},"Maps",": Key-value pairs.\n",[25,61466,61468],{"className":61369,"code":61467,"language":61371,"meta":30,"style":30},"%{name: \"Alice\", age: 30}\n",[20,61469,61470],{"__ignoreMap":30},[34,61471,61472],{"class":36,"line":37},[34,61473,61467],{},[11,61475,61477],{"id":61476},"pattern-matching","Pattern Matching",[16,61479,61480],{},"Pattern matching is central to Elixir's syntax.",[25,61482,61484],{"className":61369,"code":61483,"language":61371,"meta":30,"style":30},"# Matching Values\n{name, age} = {\"Jane\", 25}\nIO.puts(name) # Outputs Jane\n",[20,61485,61486,61491,61496],{"__ignoreMap":30},[34,61487,61488],{"class":36,"line":37},[34,61489,61490],{},"# Matching Values\n",[34,61492,61493],{"class":36,"line":44},[34,61494,61495],{},"{name, age} = {\"Jane\", 25}\n",[34,61497,61498],{"class":36,"line":58},[34,61499,61500],{},"IO.puts(name) # Outputs Jane\n",[11,61502,10991],{"id":10996},[16,61504,61505],{},"Elixir supports anonymous and named functions.",[25,61507,61509],{"className":61369,"code":61508,"language":61371,"meta":30,"style":30},"# Anonymous Function\nsum = fn a, b -> a + b end\nIO.puts(sum.(3, 5))\n\n# Named Function\ndefmodule Math do\n  def add(a, b) do\n    a + b\n  end\nend\nIO.puts(Math.add(4, 6))\n",[20,61510,61511,61516,61521,61526,61530,61535,61540,61545,61550,61555,61559],{"__ignoreMap":30},[34,61512,61513],{"class":36,"line":37},[34,61514,61515],{},"# Anonymous Function\n",[34,61517,61518],{"class":36,"line":44},[34,61519,61520],{},"sum = fn a, b -> a + b end\n",[34,61522,61523],{"class":36,"line":58},[34,61524,61525],{},"IO.puts(sum.(3, 5))\n",[34,61527,61528],{"class":36,"line":65},[34,61529,62],{"emptyLinePlaceholder":61},[34,61531,61532],{"class":36,"line":71},[34,61533,61534],{},"# Named Function\n",[34,61536,61537],{"class":36,"line":77},[34,61538,61539],{},"defmodule Math do\n",[34,61541,61542],{"class":36,"line":82},[34,61543,61544],{},"  def add(a, b) do\n",[34,61546,61547],{"class":36,"line":88},[34,61548,61549],{},"    a + b\n",[34,61551,61552],{"class":36,"line":242},[34,61553,61554],{},"  end\n",[34,61556,61557],{"class":36,"line":250},[34,61558,33222],{},[34,61560,61561],{"class":36,"line":263},[34,61562,61563],{},"IO.puts(Math.add(4, 6))\n",[11,61565,61567],{"id":61566},"processes","Processes",[16,61569,61570],{},"Processes are simple and lightweight:",[25,61572,61574],{"className":61369,"code":61573,"language":61371,"meta":30,"style":30},"# Spawning a Process\npid = spawn(fn -> IO.puts(\"Process started\") end)\n",[20,61575,61576,61581],{"__ignoreMap":30},[34,61577,61578],{"class":36,"line":37},[34,61579,61580],{},"# Spawning a Process\n",[34,61582,61583],{"class":36,"line":44},[34,61584,61585],{},"pid = spawn(fn -> IO.puts(\"Process started\") end)\n",[11,61587,19352],{"id":19357},[16,61589,61590,61591,22062,61593,61596],{},"Utilize ",[20,61592,30813],{},[20,61594,61595],{},"rescue"," blocks for exceptions.",[25,61598,61600],{"className":61369,"code":61599,"language":61371,"meta":30,"style":30},"try do\n  :ok = File.read(\"non_existent.txt\")\nrescue\n  e -> IO.puts(\"An error occurred: #{inspect(e)}\")\nend\n",[20,61601,61602,61607,61612,61617,61622],{"__ignoreMap":30},[34,61603,61604],{"class":36,"line":37},[34,61605,61606],{},"try do\n",[34,61608,61609],{"class":36,"line":44},[34,61610,61611],{},"  :ok = File.read(\"non_existent.txt\")\n",[34,61613,61614],{"class":36,"line":58},[34,61615,61616],{},"rescue\n",[34,61618,61619],{"class":36,"line":65},[34,61620,61621],{},"  e -> IO.puts(\"An error occurred: #{inspect(e)}\")\n",[34,61623,61624],{"class":36,"line":71},[34,61625,33222],{},[11,61627,61629],{"id":61628},"tools-and-ecosystem","Tools and Ecosystem",[309,61631,61632,61638],{},[312,61633,61634,61637],{},[8471,61635,61636],{},"Mix",": Build tool for project management.",[312,61639,61640,61643],{},[8471,61641,61642],{},"Hex",": Package manager for dependencies.",[388,61645,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":61647},[61648,61649,61650,61651,61652,61653,61654,61655],{"id":13,"depth":44,"text":14},{"id":8497,"depth":44,"text":8498},{"id":61422,"depth":44,"text":61423},{"id":61476,"depth":44,"text":61477},{"id":10996,"depth":44,"text":10991},{"id":61566,"depth":44,"text":61567},{"id":19357,"depth":44,"text":19352},{"id":61628,"depth":44,"text":61629},"A quick reference to Elixir, a functional programming language designed for scalable and maintainable applications.",{},"/elixir/overview",{"title":61359,"description":61656},"elixir/overview",[61371,18138,46870,61662],"functional","izQnaZQ-vJ6bjIdYeAIobDFClx1rfDl4pcxSHKNH7kw",{"id":61665,"title":61666,"body":61667,"date":402,"description":62432,"extension":404,"meta":62433,"navigation":61,"order":37,"path":62434,"seo":62435,"stem":62436,"subject":62437,"tags":62438,"__hash__":62439},"topics/elysia/overview.md","Elysia",{"type":8,"value":61668,"toc":62419},[61669,61671,61674,61678,61681,61697,61700,61713,61717,61746,61753,61760,61764,61776,61848,61852,61859,62014,62018,62024,62134,62138,62141,62224,62228,62231,62294,62298,62301,62393,62397,62400,62408,62416],[11,61670,6035],{"id":6040},[16,61672,61673],{},"Elysia is a TypeScript backend framework optimized for the Bun runtime, but also compatible with Node.js and other environments.",[102,61675,61677],{"id":61676},"installing-bun","Installing Bun",[16,61679,61680],{},"MacOS/Linux:",[25,61682,61683],{"className":27,"code":15903,"language":29,"meta":30,"style":30},[20,61684,61685],{"__ignoreMap":30},[34,61686,61687,61689,61691,61693,61695],{"class":36,"line":37},[34,61688,8648],{"class":47},[34,61690,15806],{"class":50},[34,61692,15809],{"class":54},[34,61694,7197],{"class":580},[34,61696,9346],{"class":47},[16,61698,61699],{},"Windows:",[25,61701,61703],{"className":27,"code":61702,"language":29,"meta":30,"style":30},"powershell -c \"irm bun.sh/install.ps1 | iex\"\n",[20,61704,61705],{"__ignoreMap":30},[34,61706,61707,61709,61711],{"class":36,"line":37},[34,61708,130],{"class":47},[34,61710,15867],{"class":50},[34,61712,15870],{"class":54},[102,61714,61716],{"id":61715},"creating-a-new-elysia-app","Creating a New Elysia App",[25,61718,61720],{"className":27,"code":61719,"language":29,"meta":30,"style":30},"bun create elysia app\ncd app\nbun dev\n",[20,61721,61722,61734,61740],{"__ignoreMap":30},[34,61723,61724,61726,61728,61731],{"class":36,"line":37},[34,61725,14169],{"class":47},[34,61727,7077],{"class":54},[34,61729,61730],{"class":54}," elysia",[34,61732,61733],{"class":54}," app\n",[34,61735,61736,61738],{"class":36,"line":44},[34,61737,7702],{"class":50},[34,61739,61733],{"class":54},[34,61741,61742,61744],{"class":36,"line":58},[34,61743,14169],{"class":47},[34,61745,16652],{"class":54},[16,61747,61748,61749,61752],{},"Navigate to ",[20,61750,61751],{},"http://localhost:3000"," in your browser; you should see \"Hello Elysia\".",[16,61754,61755,61756,61759],{},"Elysia comes with a ",[20,61757,61758],{},"bun dev"," command that reloads your server on file changes.",[11,61761,61763],{"id":61762},"routing-basics","Routing Basics",[16,61765,61766,61767,1798,61769,1798,61771,1798,61773,61775],{},"Define routes using the ",[20,61768,1573],{},[20,61770,1730],{},[20,61772,51602],{},[20,61774,30355],{},", and other HTTP methods available:",[25,61777,61779],{"className":571,"code":61778,"language":573,"meta":30,"style":30},"import { Elysia } from 'elysia';\n\nconst app = new Elysia()\n  .get('/', () => 'Hello World')\n  .listen(3000);\n",[20,61780,61781,61795,61799,61814,61835],{"__ignoreMap":30},[34,61782,61783,61785,61788,61790,61793],{"class":36,"line":37},[34,61784,581],{"class":580},[34,61786,61787],{"class":181}," { Elysia } ",[34,61789,587],{"class":580},[34,61791,61792],{"class":54}," 'elysia'",[34,61794,593],{"class":181},[34,61796,61797],{"class":36,"line":44},[34,61798,62],{"emptyLinePlaceholder":61},[34,61800,61801,61803,61805,61807,61809,61812],{"class":36,"line":58},[34,61802,14676],{"class":580},[34,61804,7253],{"class":50},[34,61806,683],{"class":580},[34,61808,809],{"class":580},[34,61810,61811],{"class":47}," Elysia",[34,61813,33899],{"class":181},[34,61815,61816,61819,61821,61823,61826,61828,61830,61833],{"class":36,"line":65},[34,61817,61818],{"class":181},"  .",[34,61820,1573],{"class":47},[34,61822,1607],{"class":181},[34,61824,61825],{"class":54},"'/'",[34,61827,17258],{"class":181},[34,61829,3361],{"class":580},[34,61831,61832],{"class":54}," 'Hello World'",[34,61834,3372],{"class":181},[34,61836,61837,61839,61842,61844,61846],{"class":36,"line":71},[34,61838,61818],{"class":181},[34,61840,61841],{"class":47},"listen",[34,61843,1607],{"class":181},[34,61845,15440],{"class":50},[34,61847,1586],{"class":181},[11,61849,61851],{"id":61850},"middleware-and-plugins","Middleware and Plugins",[16,61853,61854,61855,61858],{},"Extend functionality with middleware and plugins. Use ",[20,61856,61857],{},".use()"," to add global functionality:",[25,61860,61862],{"className":571,"code":61861,"language":573,"meta":30,"style":30},"import { Elysia } from 'elysia';\n\nconst authMiddleware = app => app.use(async (ctx, next) => {\n  if (!ctx.headers['Authorization']) {\n    return ctx.json({ error: 'Unauthorized' }, 401);\n  }\n  await next();\n});\n\nconst app = new Elysia()\n  .use(authMiddleware)\n  .listen(3000);\n",[20,61863,61864,61876,61880,61919,61935,61958,61962,61971,61975,61979,61993,62002],{"__ignoreMap":30},[34,61865,61866,61868,61870,61872,61874],{"class":36,"line":37},[34,61867,581],{"class":580},[34,61869,61787],{"class":181},[34,61871,587],{"class":580},[34,61873,61792],{"class":54},[34,61875,593],{"class":181},[34,61877,61878],{"class":36,"line":44},[34,61879,62],{"emptyLinePlaceholder":61},[34,61881,61882,61884,61887,61889,61891,61893,61896,61899,61901,61903,61905,61908,61910,61913,61915,61917],{"class":36,"line":58},[34,61883,14676],{"class":580},[34,61885,61886],{"class":47}," authMiddleware",[34,61888,683],{"class":580},[34,61890,7253],{"class":675},[34,61892,1895],{"class":580},[34,61894,61895],{"class":181}," app.",[34,61897,61898],{"class":47},"use",[34,61900,1607],{"class":181},[34,61902,17403],{"class":580},[34,61904,3204],{"class":181},[34,61906,61907],{"class":675},"ctx",[34,61909,1798],{"class":181},[34,61911,61912],{"class":675},"next",[34,61914,4817],{"class":181},[34,61916,3361],{"class":580},[34,61918,661],{"class":181},[34,61920,61921,61923,61925,61927,61930,61932],{"class":36,"line":65},[34,61922,8084],{"class":580},[34,61924,3204],{"class":181},[34,61926,10307],{"class":580},[34,61928,61929],{"class":181},"ctx.headers[",[34,61931,1795],{"class":54},[34,61933,61934],{"class":181},"]) {\n",[34,61936,61937,61939,61942,61944,61947,61950,61953,61956],{"class":36,"line":71},[34,61938,1564],{"class":580},[34,61940,61941],{"class":181}," ctx.",[34,61943,14790],{"class":47},[34,61945,61946],{"class":181},"({ error: ",[34,61948,61949],{"class":54},"'Unauthorized'",[34,61951,61952],{"class":181}," }, ",[34,61954,61955],{"class":50},"401",[34,61957,1586],{"class":181},[34,61959,61960],{"class":36,"line":77},[34,61961,857],{"class":181},[34,61963,61964,61966,61969],{"class":36,"line":82},[34,61965,47600],{"class":580},[34,61967,61968],{"class":47}," next",[34,61970,851],{"class":181},[34,61972,61973],{"class":36,"line":88},[34,61974,14873],{"class":181},[34,61976,61977],{"class":36,"line":242},[34,61978,62],{"emptyLinePlaceholder":61},[34,61980,61981,61983,61985,61987,61989,61991],{"class":36,"line":250},[34,61982,14676],{"class":580},[34,61984,7253],{"class":50},[34,61986,683],{"class":580},[34,61988,809],{"class":580},[34,61990,61811],{"class":47},[34,61992,33899],{"class":181},[34,61994,61995,61997,61999],{"class":36,"line":263},[34,61996,61818],{"class":181},[34,61998,61898],{"class":47},[34,62000,62001],{"class":181},"(authMiddleware)\n",[34,62003,62004,62006,62008,62010,62012],{"class":36,"line":275},[34,62005,61818],{"class":181},[34,62007,61841],{"class":47},[34,62009,1607],{"class":181},[34,62011,15440],{"class":50},[34,62013,1586],{"class":181},[11,62015,62017],{"id":62016},"input-validation","Input Validation",[16,62019,62020,62021,62023],{},"Elysia allows you to define validation schemas using its built-in ",[20,62022,16025],{}," object:",[25,62025,62027],{"className":571,"code":62026,"language":573,"meta":30,"style":30},"import { Elysia, t } from 'elysia';\n\nconst app = new Elysia()\n  .post('/user', ({ body }) => body, {\n    body: t.Object({\n      name: t.String(),\n      age: t.Number(),\n    })\n  })\n  .listen(3000);\n",[20,62028,62029,62042,62046,62060,62083,62093,62102,62112,62117,62122],{"__ignoreMap":30},[34,62030,62031,62033,62036,62038,62040],{"class":36,"line":37},[34,62032,581],{"class":580},[34,62034,62035],{"class":181}," { Elysia, t } ",[34,62037,587],{"class":580},[34,62039,61792],{"class":54},[34,62041,593],{"class":181},[34,62043,62044],{"class":36,"line":44},[34,62045,62],{"emptyLinePlaceholder":61},[34,62047,62048,62050,62052,62054,62056,62058],{"class":36,"line":58},[34,62049,14676],{"class":580},[34,62051,7253],{"class":50},[34,62053,683],{"class":580},[34,62055,809],{"class":580},[34,62057,61811],{"class":47},[34,62059,33899],{"class":181},[34,62061,62062,62064,62066,62068,62071,62074,62076,62078,62080],{"class":36,"line":65},[34,62063,61818],{"class":181},[34,62065,1730],{"class":47},[34,62067,1607],{"class":181},[34,62069,62070],{"class":54},"'/user'",[34,62072,62073],{"class":181},", ({ ",[34,62075,46502],{"class":675},[34,62077,59911],{"class":181},[34,62079,3361],{"class":580},[34,62081,62082],{"class":181}," body, {\n",[34,62084,62085,62088,62091],{"class":36,"line":71},[34,62086,62087],{"class":181},"    body: t.",[34,62089,62090],{"class":47},"Object",[34,62092,613],{"class":181},[34,62094,62095,62098,62100],{"class":36,"line":77},[34,62096,62097],{"class":181},"      name: t.",[34,62099,51427],{"class":47},[34,62101,58490],{"class":181},[34,62103,62104,62107,62110],{"class":36,"line":82},[34,62105,62106],{"class":181},"      age: t.",[34,62108,62109],{"class":47},"Number",[34,62111,58490],{"class":181},[34,62113,62114],{"class":36,"line":88},[34,62115,62116],{"class":181},"    })\n",[34,62118,62119],{"class":36,"line":242},[34,62120,62121],{"class":181},"  })\n",[34,62123,62124,62126,62128,62130,62132],{"class":36,"line":250},[34,62125,61818],{"class":181},[34,62127,61841],{"class":47},[34,62129,1607],{"class":181},[34,62131,15440],{"class":50},[34,62133,1586],{"class":181},[11,62135,62137],{"id":62136},"websocket-support","WebSocket Support",[16,62139,62140],{},"Add real-time communication with WebSocket support:",[25,62142,62144],{"className":571,"code":62143,"language":573,"meta":30,"style":30},"const app = new Elysia()\n  .ws('/realtime', {\n    message(ws, message) {\n      ws.send(`got: ${message}`);\n    }\n  })\n  .listen(3000);\n",[20,62145,62146,62160,62173,62187,62204,62208,62212],{"__ignoreMap":30},[34,62147,62148,62150,62152,62154,62156,62158],{"class":36,"line":37},[34,62149,14676],{"class":580},[34,62151,7253],{"class":50},[34,62153,683],{"class":580},[34,62155,809],{"class":580},[34,62157,61811],{"class":47},[34,62159,33899],{"class":181},[34,62161,62162,62164,62166,62168,62171],{"class":36,"line":44},[34,62163,61818],{"class":181},[34,62165,15731],{"class":47},[34,62167,1607],{"class":181},[34,62169,62170],{"class":54},"'/realtime'",[34,62172,14820],{"class":181},[34,62174,62175,62177,62179,62181,62183,62185],{"class":36,"line":58},[34,62176,15726],{"class":47},[34,62178,1607],{"class":181},[34,62180,15731],{"class":675},[34,62182,1798],{"class":181},[34,62184,15736],{"class":675},[34,62186,2416],{"class":181},[34,62188,62189,62191,62193,62195,62198,62200,62202],{"class":36,"line":65},[34,62190,15743],{"class":181},[34,62192,15746],{"class":47},[34,62194,1607],{"class":181},[34,62196,62197],{"class":54},"`got: ${",[34,62199,15736],{"class":181},[34,62201,3925],{"class":54},[34,62203,1586],{"class":181},[34,62205,62206],{"class":36,"line":71},[34,62207,3229],{"class":181},[34,62209,62210],{"class":36,"line":77},[34,62211,62121],{"class":181},[34,62213,62214,62216,62218,62220,62222],{"class":36,"line":82},[34,62215,61818],{"class":181},[34,62217,61841],{"class":47},[34,62219,1607],{"class":181},[34,62221,15440],{"class":50},[34,62223,1586],{"class":181},[11,62225,62227],{"id":62226},"openapi-integration","OpenAPI Integration",[16,62229,62230],{},"Generate OpenAPI documentation directly from your code:",[25,62232,62234],{"className":571,"code":62233,"language":573,"meta":30,"style":30},"import { openapi } from '@elysiajs/openapi';\n\nconst app = new Elysia()\n  .use(openapi())\n  .listen(3000);\n",[20,62235,62236,62250,62254,62268,62282],{"__ignoreMap":30},[34,62237,62238,62240,62243,62245,62248],{"class":36,"line":37},[34,62239,581],{"class":580},[34,62241,62242],{"class":181}," { openapi } ",[34,62244,587],{"class":580},[34,62246,62247],{"class":54}," '@elysiajs/openapi'",[34,62249,593],{"class":181},[34,62251,62252],{"class":36,"line":44},[34,62253,62],{"emptyLinePlaceholder":61},[34,62255,62256,62258,62260,62262,62264,62266],{"class":36,"line":58},[34,62257,14676],{"class":580},[34,62259,7253],{"class":50},[34,62261,683],{"class":580},[34,62263,809],{"class":580},[34,62265,61811],{"class":47},[34,62267,33899],{"class":181},[34,62269,62270,62272,62274,62276,62279],{"class":36,"line":65},[34,62271,61818],{"class":181},[34,62273,61898],{"class":47},[34,62275,1607],{"class":181},[34,62277,62278],{"class":47},"openapi",[34,62280,62281],{"class":181},"())\n",[34,62283,62284,62286,62288,62290,62292],{"class":36,"line":71},[34,62285,61818],{"class":181},[34,62287,61841],{"class":47},[34,62289,1607],{"class":181},[34,62291,15440],{"class":50},[34,62293,1586],{"class":181},[11,62295,62297],{"id":62296},"type-safe-client-server-communication","Type-Safe Client-Server Communication",[16,62299,62300],{},"Elysia supports schema inference for seamless integration between client and server. For example:",[25,62302,62304],{"className":571,"code":62303,"language":573,"meta":30,"style":30},"import { treaty } from '@elysiajs/eden';\nimport type { App } from 'server';\n\nconst api = treaty\u003CApp>('http://localhost:3000');\nconst { data } = await api.profile.patch({ age: 21 });\n",[20,62305,62306,62320,62337,62341,62365],{"__ignoreMap":30},[34,62307,62308,62310,62313,62315,62318],{"class":36,"line":37},[34,62309,581],{"class":580},[34,62311,62312],{"class":181}," { treaty } ",[34,62314,587],{"class":580},[34,62316,62317],{"class":54}," '@elysiajs/eden'",[34,62319,593],{"class":181},[34,62321,62322,62324,62327,62330,62332,62335],{"class":36,"line":44},[34,62323,581],{"class":580},[34,62325,62326],{"class":580}," type",[34,62328,62329],{"class":181}," { App } ",[34,62331,587],{"class":580},[34,62333,62334],{"class":54}," 'server'",[34,62336,593],{"class":181},[34,62338,62339],{"class":36,"line":58},[34,62340,62],{"emptyLinePlaceholder":61},[34,62342,62343,62345,62348,62350,62353,62355,62358,62360,62363],{"class":36,"line":65},[34,62344,14676],{"class":580},[34,62346,62347],{"class":50}," api",[34,62349,683],{"class":580},[34,62351,62352],{"class":47}," treaty",[34,62354,815],{"class":181},[34,62356,62357],{"class":47},"App",[34,62359,1737],{"class":181},[34,62361,62362],{"class":54},"'http://localhost:3000'",[34,62364,1586],{"class":181},[34,62366,62367,62369,62371,62373,62375,62377,62379,62382,62385,62388,62391],{"class":36,"line":71},[34,62368,14676],{"class":580},[34,62370,30251],{"class":181},[34,62372,1701],{"class":50},[34,62374,34865],{"class":181},[34,62376,1301],{"class":580},[34,62378,14763],{"class":580},[34,62380,62381],{"class":181}," api.profile.",[34,62383,62384],{"class":47},"patch",[34,62386,62387],{"class":181},"({ age: ",[34,62389,62390],{"class":50},"21",[34,62392,15567],{"class":181},[11,62394,62396],{"id":62395},"benchmark-metrics","Benchmark Metrics",[16,62398,62399],{},"Elysia is faster than many frameworks:",[309,62401,62402,62405],{},[312,62403,62404],{},"Requests per second: 2,454,631 (TechEmpower Benchmark, Round 22).",[312,62406,62407],{},"Optimized for Bun, supports other runtimes like Node.js.",[16,62409,62410,62411,151],{},"For more details, visit the ",[145,62412,62415],{"href":62413,"rel":62414},"https://elysiajs.com/quick-start",[149],"Elysia documentation",[388,62417,62418],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":30,"searchDepth":44,"depth":44,"links":62420},[62421,62425,62426,62427,62428,62429,62430,62431],{"id":6040,"depth":44,"text":6035,"children":62422},[62423,62424],{"id":61676,"depth":58,"text":61677},{"id":61715,"depth":58,"text":61716},{"id":61762,"depth":44,"text":61763},{"id":61850,"depth":44,"text":61851},{"id":62016,"depth":44,"text":62017},{"id":62136,"depth":44,"text":62137},{"id":62226,"depth":44,"text":62227},{"id":62296,"depth":44,"text":62297},{"id":62395,"depth":44,"text":62396},"Quick reference guide for the Elysia TypeScript backend framework optimized for Bun.",{},"/elysia/overview",{"title":61666,"description":62432},"elysia/overview","elysia",[573,46870,14169,8605],"uPLrPXlcA8flCE-HZwIIPhIOsw8T3lAvvG2vzLAxQUU",{"id":62441,"title":62442,"body":62443,"date":402,"description":62590,"extension":404,"meta":62591,"navigation":61,"order":37,"path":62592,"seo":62593,"stem":62594,"subject":62515,"tags":62595,"__hash__":62597},"topics/erlang/overview.md","Erlang Basics",{"type":8,"value":62444,"toc":62585},[62445,62449,62452,62488,62491,62500,62504,62511,62551,62555,62558,62583],[11,62446,62448],{"id":62447},"installing-erlang","Installing Erlang",[16,62450,62451],{},"Install Erlang via a package manager.",[25,62453,62455],{"className":27,"code":62454,"language":29,"meta":30,"style":30},"# Ubuntu\ndpkg -i erlang-solutions_*.deb\nsudo apt-get install erlang\n",[20,62456,62457,62461,62476],{"__ignoreMap":30},[34,62458,62459],{"class":36,"line":37},[34,62460,45487],{"class":40},[34,62462,62463,62466,62468,62471,62473],{"class":36,"line":44},[34,62464,62465],{"class":47},"dpkg",[34,62467,13065],{"class":50},[34,62469,62470],{"class":54}," erlang-solutions_",[34,62472,4289],{"class":50},[34,62474,62475],{"class":54},".deb\n",[34,62477,62478,62480,62483,62485],{"class":36,"line":58},[34,62479,436],{"class":47},[34,62481,62482],{"class":54}," apt-get",[34,62484,118],{"class":54},[34,62486,62487],{"class":54}," erlang\n",[16,62489,62490],{},"Test the installation with:",[25,62492,62494],{"className":27,"code":62493,"language":29,"meta":30,"style":30},"erl\n",[20,62495,62496],{"__ignoreMap":30},[34,62497,62498],{"class":36,"line":37},[34,62499,62493],{"class":47},[11,62501,62503],{"id":62502},"writing-erlang-modules","Writing Erlang Modules",[16,62505,62506,62507,62510],{},"Erlang modules are defined in ",[20,62508,62509],{},".erl"," files.",[25,62512,62516],{"className":62513,"code":62514,"language":62515,"meta":30,"style":30},"language-erlang shiki shiki-themes github-light github-dark","-module(math).\n-export([add/2]).\n\nadd(A, B) ->\n    A + B.\n\n% Usage: math:add(2, 3).\n","erlang",[20,62517,62518,62523,62528,62532,62537,62542,62546],{"__ignoreMap":30},[34,62519,62520],{"class":36,"line":37},[34,62521,62522],{},"-module(math).\n",[34,62524,62525],{"class":36,"line":44},[34,62526,62527],{},"-export([add/2]).\n",[34,62529,62530],{"class":36,"line":58},[34,62531,62],{"emptyLinePlaceholder":61},[34,62533,62534],{"class":36,"line":65},[34,62535,62536],{},"add(A, B) ->\n",[34,62538,62539],{"class":36,"line":71},[34,62540,62541],{},"    A + B.\n",[34,62543,62544],{"class":36,"line":77},[34,62545,62],{"emptyLinePlaceholder":61},[34,62547,62548],{"class":36,"line":82},[34,62549,62550],{},"% Usage: math:add(2, 3).\n",[11,62552,62554],{"id":62553},"process-communication","Process Communication",[16,62556,62557],{},"Erlang processes communicate via message-passing.",[25,62559,62561],{"className":62513,"code":62560,"language":62515,"meta":30,"style":30},"% Spawn a process\nspawn(fun() -> io:format(\"Hello~n\") end).\n% Message passing\nPid ! Message.\n",[20,62562,62563,62568,62573,62578],{"__ignoreMap":30},[34,62564,62565],{"class":36,"line":37},[34,62566,62567],{},"% Spawn a process\n",[34,62569,62570],{"class":36,"line":44},[34,62571,62572],{},"spawn(fun() -> io:format(\"Hello~n\") end).\n",[34,62574,62575],{"class":36,"line":58},[34,62576,62577],{},"% Message passing\n",[34,62579,62580],{"class":36,"line":65},[34,62581,62582],{},"Pid ! Message.\n",[388,62584,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":62586},[62587,62588,62589],{"id":62447,"depth":44,"text":62448},{"id":62502,"depth":44,"text":62503},{"id":62553,"depth":44,"text":62554},"An introduction to Erlang, including its concurrency model, processes, and OTP basics.",{},"/erlang/overview",{"title":62442,"description":62590},"erlang/overview",[62515,33299,61566,62596,61662],"otp","_CSB_tIHAjrA9jukr1tARIXMOdTFbnXixzHgAEYmkPY",{"id":62599,"title":62600,"body":62601,"date":402,"description":62976,"extension":404,"meta":62977,"navigation":61,"order":37,"path":62978,"seo":62979,"stem":62980,"subject":62981,"tags":62982,"__hash__":62983},"topics/eslint/overview.md","ESLint",{"type":8,"value":62602,"toc":62967},[62603,62605,62660,62664,62666,62819,62823,62888,62892,62941,62943,62964],[11,62604,6035],{"id":6040},[25,62606,62608],{"className":27,"code":62607,"language":29,"meta":30,"style":30},"# Install ESLint locally to your project:\nnpm install eslint --save-dev\n\n# Initialize an ESLint configuration file in your project:\nnpx eslint --init\n\n# Lint files in your project:\nnpx eslint .\n",[20,62609,62610,62615,62626,62630,62635,62643,62647,62652],{"__ignoreMap":30},[34,62611,62612],{"class":36,"line":37},[34,62613,62614],{"class":40},"# Install ESLint locally to your project:\n",[34,62616,62617,62619,62621,62624],{"class":36,"line":44},[34,62618,8177],{"class":47},[34,62620,118],{"class":54},[34,62622,62623],{"class":54}," eslint",[34,62625,8192],{"class":50},[34,62627,62628],{"class":36,"line":58},[34,62629,62],{"emptyLinePlaceholder":61},[34,62631,62632],{"class":36,"line":65},[34,62633,62634],{"class":40},"# Initialize an ESLint configuration file in your project:\n",[34,62636,62637,62639,62641],{"class":36,"line":71},[34,62638,8205],{"class":47},[34,62640,62623],{"class":54},[34,62642,16701],{"class":50},[34,62644,62645],{"class":36,"line":77},[34,62646,62],{"emptyLinePlaceholder":61},[34,62648,62649],{"class":36,"line":82},[34,62650,62651],{"class":40},"# Lint files in your project:\n",[34,62653,62654,62656,62658],{"class":36,"line":88},[34,62655,8205],{"class":47},[34,62657,62623],{"class":54},[34,62659,56924],{"class":54},[11,62661,62663],{"id":62662},"core-concepts","Core Concepts",[102,62665,58733],{"id":58738},[25,62667,62669],{"className":28058,"code":62668,"language":14790,"meta":30,"style":30},"// Example .eslintrc.json configuration\n{\n  \"env\": {\n    \"browser\": true,\n    \"es2021\": true\n  },\n  \"extends\": [\"eslint:recommended\"],\n  \"parserOptions\": {\n    \"ecmaVersion\": 12,\n    \"sourceType\": \"module\"\n  },\n  \"rules\": {\n    \"indent\": [\"error\", 2],\n    \"quotes\": [\"error\", \"double\"],\n    \"semi\": [\"error\", \"always\"]\n  }\n}\n",[20,62670,62671,62676,62680,62687,62698,62707,62711,62723,62730,62742,62752,62756,62763,62779,62795,62811,62815],{"__ignoreMap":30},[34,62672,62673],{"class":36,"line":37},[34,62674,62675],{"class":40},"// Example .eslintrc.json configuration\n",[34,62677,62678],{"class":36,"line":44},[34,62679,25296],{"class":181},[34,62681,62682,62685],{"class":36,"line":58},[34,62683,62684],{"class":50},"  \"env\"",[34,62686,28073],{"class":181},[34,62688,62689,62692,62694,62696],{"class":36,"line":65},[34,62690,62691],{"class":50},"    \"browser\"",[34,62693,182],{"class":181},[34,62695,632],{"class":50},[34,62697,624],{"class":181},[34,62699,62700,62703,62705],{"class":36,"line":71},[34,62701,62702],{"class":50},"    \"es2021\"",[34,62704,182],{"class":181},[34,62706,515],{"class":50},[34,62708,62709],{"class":36,"line":77},[34,62710,3400],{"class":181},[34,62712,62713,62716,62718,62721],{"class":36,"line":82},[34,62714,62715],{"class":50},"  \"extends\"",[34,62717,47204],{"class":181},[34,62719,62720],{"class":54},"\"eslint:recommended\"",[34,62722,46332],{"class":181},[34,62724,62725,62728],{"class":36,"line":88},[34,62726,62727],{"class":50},"  \"parserOptions\"",[34,62729,28073],{"class":181},[34,62731,62732,62735,62737,62740],{"class":36,"line":242},[34,62733,62734],{"class":50},"    \"ecmaVersion\"",[34,62736,182],{"class":181},[34,62738,62739],{"class":50},"12",[34,62741,624],{"class":181},[34,62743,62744,62747,62749],{"class":36,"line":250},[34,62745,62746],{"class":50},"    \"sourceType\"",[34,62748,182],{"class":181},[34,62750,62751],{"class":54},"\"module\"\n",[34,62753,62754],{"class":36,"line":263},[34,62755,3400],{"class":181},[34,62757,62758,62761],{"class":36,"line":275},[34,62759,62760],{"class":50},"  \"rules\"",[34,62762,28073],{"class":181},[34,62764,62765,62768,62770,62773,62775,62777],{"class":36,"line":700},[34,62766,62767],{"class":50},"    \"indent\"",[34,62769,47204],{"class":181},[34,62771,62772],{"class":54},"\"error\"",[34,62774,1798],{"class":181},[34,62776,8324],{"class":50},[34,62778,46332],{"class":181},[34,62780,62781,62784,62786,62788,62790,62793],{"class":36,"line":706},[34,62782,62783],{"class":50},"    \"quotes\"",[34,62785,47204],{"class":181},[34,62787,62772],{"class":54},[34,62789,1798],{"class":181},[34,62791,62792],{"class":54},"\"double\"",[34,62794,46332],{"class":181},[34,62796,62797,62800,62802,62804,62806,62809],{"class":36,"line":715},[34,62798,62799],{"class":50},"    \"semi\"",[34,62801,47204],{"class":181},[34,62803,62772],{"class":54},[34,62805,1798],{"class":181},[34,62807,62808],{"class":54},"\"always\"",[34,62810,924],{"class":181},[34,62812,62813],{"class":36,"line":725},[34,62814,857],{"class":181},[34,62816,62817],{"class":36,"line":734},[34,62818,693],{"class":181},[102,62820,62822],{"id":62821},"plugins-and-extensions","Plugins and Extensions",[25,62824,62826],{"className":27,"code":62825,"language":29,"meta":30,"style":30},"# Install a plugin (e.g., eslint-plugin-react)\nnpm install eslint-plugin-react --save-dev\n\n# Extend your configuration to use the plugin\n{\n  \"plugins\": [\"react\"],\n  \"extends\": [\"plugin:react/recommended\"]\n}\n",[20,62827,62828,62833,62844,62848,62853,62857,62871,62884],{"__ignoreMap":30},[34,62829,62830],{"class":36,"line":37},[34,62831,62832],{"class":40},"# Install a plugin (e.g., eslint-plugin-react)\n",[34,62834,62835,62837,62839,62842],{"class":36,"line":44},[34,62836,8177],{"class":47},[34,62838,118],{"class":54},[34,62840,62841],{"class":54}," eslint-plugin-react",[34,62843,8192],{"class":50},[34,62845,62846],{"class":36,"line":58},[34,62847,62],{"emptyLinePlaceholder":61},[34,62849,62850],{"class":36,"line":65},[34,62851,62852],{"class":40},"# Extend your configuration to use the plugin\n",[34,62854,62855],{"class":36,"line":71},[34,62856,25296],{"class":181},[34,62858,62859,62862,62864,62866,62869],{"class":36,"line":77},[34,62860,62861],{"class":47},"  \"plugins\"",[34,62863,165],{"class":50},[34,62865,8315],{"class":181},[34,62867,62868],{"class":54},"\"react\"",[34,62870,46332],{"class":181},[34,62872,62873,62875,62877,62879,62882],{"class":36,"line":82},[34,62874,62715],{"class":47},[34,62876,165],{"class":50},[34,62878,8315],{"class":181},[34,62880,62881],{"class":54},"\"plugin:react/recommended\"",[34,62883,924],{"class":181},[34,62885,62886],{"class":36,"line":88},[34,62887,693],{"class":181},[102,62889,62891],{"id":62890},"command-line-interface","Command Line Interface",[25,62893,62895],{"className":27,"code":62894,"language":29,"meta":30,"style":30},"# Run ESLint with specific options\nnpx eslint src/ --fix\n\n# Specify a custom formatter\nnpx eslint src/ --format json > report.json\n",[20,62896,62897,62902,62914,62918,62923],{"__ignoreMap":30},[34,62898,62899],{"class":36,"line":37},[34,62900,62901],{"class":40},"# Run ESLint with specific options\n",[34,62903,62904,62906,62908,62911],{"class":36,"line":44},[34,62905,8205],{"class":47},[34,62907,62623],{"class":54},[34,62909,62910],{"class":54}," src/",[34,62912,62913],{"class":50}," --fix\n",[34,62915,62916],{"class":36,"line":58},[34,62917,62],{"emptyLinePlaceholder":61},[34,62919,62920],{"class":36,"line":65},[34,62921,62922],{"class":40},"# Specify a custom formatter\n",[34,62924,62925,62927,62929,62931,62934,62936,62938],{"class":36,"line":71},[34,62926,8205],{"class":47},[34,62928,62623],{"class":54},[34,62930,62910],{"class":54},[34,62932,62933],{"class":50}," --format",[34,62935,9231],{"class":54},[34,62937,9009],{"class":580},[34,62939,62940],{"class":54}," report.json\n",[11,62942,5595],{"id":5600},[309,62944,62945,62951,62954,62957],{},[312,62946,15998,62947,62950],{},[20,62948,62949],{},"eslint --init"," to quickly bootstrap a configuration.",[312,62952,62953],{},"Integrate ESLint into your CI/CD pipeline for consistent style enforcement.",[312,62955,62956],{},"Leverage plugins for framework-specific linting (e.g., React, Vue).",[312,62958,62959,62960,62963],{},"Regularly update your ",[20,62961,62962],{},".eslintrc"," to reflect evolving project needs.",[388,62965,62966],{},"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 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);}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":30,"searchDepth":44,"depth":44,"links":62968},[62969,62970,62975],{"id":6040,"depth":44,"text":6035},{"id":62662,"depth":44,"text":62663,"children":62971},[62972,62973,62974],{"id":58738,"depth":58,"text":58733},{"id":62821,"depth":58,"text":62822},{"id":62890,"depth":58,"text":62891},{"id":5600,"depth":44,"text":5595},"Learn how to set up, configure, and utilize ESLint for code quality and consistency.",{},"/eslint/overview",{"title":62600,"description":62976},"eslint/overview","eslint",[62981,14118,14119,8606,573],"X8X7GqT2A1HfayYrcogjLzh9I-JxGu0Vu8Os2balHXs",{"id":62985,"title":8456,"body":62986,"date":402,"description":62992,"extension":404,"meta":62998,"navigation":61,"order":402,"path":62999,"seo":63000,"stem":63001,"subject":402,"tags":402,"__hash__":63002},"topics/examples/astro.md",{"type":8,"value":62987,"toc":62996},[62988,62990,62993],[7979,62989],{},[16,62991,62992],{},"title: Astro Framework",[16,62994,62995],{},"description:  Quick-start topics guides code docs simplified.\nCATEGORY tags though newpages highest optimized html usagesDocumentQueryable settingss. ...TIONals AST. JSON_ENV customization_requirements.",{"title":30,"searchDepth":44,"depth":44,"links":62997},[],{},"/examples/astro",{"title":8456,"description":62992},"examples/astro","yYTPqaWrWMW0JsjSjdKB5BrlJU_s9DQZlMPYmcpnR4k",{"id":63004,"title":63005,"body":63006,"date":65583,"description":65584,"extension":404,"meta":65585,"navigation":61,"order":402,"path":65588,"seo":65589,"stem":65590,"subject":402,"tags":65591,"__hash__":65596},"topics/examples/binary-search.md","Binary Search",{"type":8,"value":63007,"toc":65570},[63008,63012,63019,63025,63027,63033,63037,63043,63045,63051,63053,63544,63546,64116,64120,64837,64841,65232,65236,65548,65552,65558,65562,65568],[11,63009,63011],{"id":63010},"what-is-binary-search","What is Binary Search?",[16,63013,63014,63015,63018],{},"Binary Search is a fast search algorithm that works on ",[8471,63016,63017],{},"sorted arrays"," by repeatedly halving the search space. Instead of checking every element (linear search), it eliminates half the remaining candidates with each comparison.",[25,63020,63023],{"className":63021,"code":63022,"language":780,"meta":30},[13703],"Key Idea: If the array is sorted, comparing the middle element\ntells you which half your target must be in — ignore the other half.\n",[20,63024,63022],{"__ignoreMap":30},[11,63026,45382],{"id":45381},[25,63028,63031],{"className":63029,"code":63030,"language":780,"meta":30},[13703],"Algorithm (iterative):\n  1. Set low = 0, high = array.length - 1\n  2. While low \u003C= high:\n     a. mid = Math.floor((low + high) / 2)\n     b. If arr[mid] === target → found! Return mid\n     c. If arr[mid] \u003C target  → target is in right half: low = mid + 1\n     d. If arr[mid] > target  → target is in left half:  high = mid - 1\n  3. If loop ends without returning → target not found, return -1\n",[20,63032,63030],{"__ignoreMap":30},[11,63034,63036],{"id":63035},"visualization","Visualization",[25,63038,63041],{"className":63039,"code":63040,"language":780,"meta":30},[13703],"Array: [2, 5, 8, 12, 16, 23, 38, 45, 67, 91]\nTarget: 23\n\nStep 1:  low=0  high=9  mid=4  → arr[4]=16  \u003C 23  → search right\n         [2, 5, 8, 12, 16, | 23, 38, 45, 67, 91]\n                                ^^^^^^^^^^^^^^^^^\n\nStep 2:  low=5  high=9  mid=7  → arr[7]=45  > 23  → search left\n         [23, 38, 45, 67, 91]\n          ^^^^^^^\n\nStep 3:  low=5  high=6  mid=5  → arr[5]=23  === 23  → FOUND at index 5!\n\nLinear Search would need 6 comparisons.\nBinary Search needed only 3.\n",[20,63042,63040],{"__ignoreMap":30},[11,63044,52846],{"id":53480},[25,63046,63049],{"className":63047,"code":63048,"language":780,"meta":30},[13703],"Time Complexity:\n  - Best Case:    O(1)       - target is the middle element\n  - Average Case: O(log n)   - halves search space each step\n  - Worst Case:   O(log n)   - target not found or at boundary\n\nSpace Complexity:\n  - Iterative: O(1)      - only a few variables\n  - Recursive: O(log n)  - call stack depth\n\nComparison:\n  Array size  | Linear Search | Binary Search\n  ------------|---------------|---------------\n  10          | 10 steps      | 4 steps\n  1,000       | 1,000 steps   | 10 steps\n  1,000,000   | 1,000,000     | 20 steps\n  1,000,000,000| 1B steps     | 30 steps\n\nRequirement: Array MUST be sorted before binary searching.\n",[20,63050,63048],{"__ignoreMap":30},[11,63052,51994],{"id":51999},[25,63054,63056],{"className":13845,"code":63055,"language":8606,"meta":30,"style":30},"// Iterative Binary Search — O(log n) time, O(1) space\nfunction binarySearch(arr, target) {\n  let low = 0;\n  let high = arr.length - 1;\n\n  while (low \u003C= high) {\n    const mid = Math.floor((low + high) / 2); // Avoid overflow\n\n    if (arr[mid] === target) {\n      return mid;           // Found — return index\n    } else if (arr[mid] \u003C target) {\n      low = mid + 1;        // Target is in right half\n    } else {\n      high = mid - 1;       // Target is in left half\n    }\n  }\n\n  return -1; // Not found\n}\n\n// Recursive Binary Search — O(log n) time, O(log n) space\nfunction binarySearchRecursive(arr, target, low = 0, high = arr.length - 1) {\n  if (low > high) return -1; // Base case: search space exhausted\n\n  const mid = Math.floor((low + high) / 2);\n\n  if (arr[mid] === target) return mid;\n  if (arr[mid] \u003C target) return binarySearchRecursive(arr, target, mid + 1, high);\n  return binarySearchRecursive(arr, target, low, mid - 1);\n}\n\n// Usage\nconst sorted = [2, 5, 8, 12, 16, 23, 38, 45, 67, 91];\nconsole.log(binarySearch(sorted, 23));  // → 5\nconsole.log(binarySearch(sorted, 99));  // → -1\n",[20,63057,63058,63063,63081,63095,63115,63119,63131,63161,63165,63177,63187,63202,63221,63229,63247,63251,63255,63259,63272,63276,63280,63285,63326,63347,63351,63375,63379,63395,63419,63434,63438,63442,63446,63502,63524],{"__ignoreMap":30},[34,63059,63060],{"class":36,"line":37},[34,63061,63062],{"class":40},"// Iterative Binary Search — O(log n) time, O(1) space\n",[34,63064,63065,63067,63070,63072,63074,63076,63079],{"class":36,"line":44},[34,63066,11044],{"class":580},[34,63068,63069],{"class":47}," binarySearch",[34,63071,1607],{"class":181},[34,63073,18382],{"class":675},[34,63075,1798],{"class":181},[34,63077,63078],{"class":675},"target",[34,63080,2416],{"class":181},[34,63082,63083,63086,63089,63091,63093],{"class":36,"line":58},[34,63084,63085],{"class":580},"  let",[34,63087,63088],{"class":181}," low ",[34,63090,1301],{"class":580},[34,63092,8070],{"class":50},[34,63094,593],{"class":181},[34,63096,63097,63099,63102,63104,63107,63109,63111,63113],{"class":36,"line":65},[34,63098,63085],{"class":580},[34,63100,63101],{"class":181}," high ",[34,63103,1301],{"class":580},[34,63105,63106],{"class":181}," arr.",[34,63108,2908],{"class":50},[34,63110,19423],{"class":580},[34,63112,3567],{"class":50},[34,63114,593],{"class":181},[34,63116,63117],{"class":36,"line":71},[34,63118,62],{"emptyLinePlaceholder":61},[34,63120,63121,63123,63126,63128],{"class":36,"line":77},[34,63122,52149],{"class":580},[34,63124,63125],{"class":181}," (low ",[34,63127,22032],{"class":580},[34,63129,63130],{"class":181}," high) {\n",[34,63132,63133,63135,63138,63140,63142,63144,63147,63149,63152,63154,63156,63158],{"class":36,"line":82},[34,63134,1632],{"class":580},[34,63136,63137],{"class":50}," mid",[34,63139,683],{"class":580},[34,63141,13917],{"class":181},[34,63143,13920],{"class":47},[34,63145,63146],{"class":181},"((low ",[34,63148,2940],{"class":580},[34,63150,63151],{"class":181}," high) ",[34,63153,12734],{"class":580},[34,63155,4292],{"class":50},[34,63157,8260],{"class":181},[34,63159,63160],{"class":40},"// Avoid overflow\n",[34,63162,63163],{"class":36,"line":88},[34,63164,62],{"emptyLinePlaceholder":61},[34,63166,63167,63169,63172,63174],{"class":36,"line":242},[34,63168,2902],{"class":580},[34,63170,63171],{"class":181}," (arr[mid] ",[34,63173,15543],{"class":580},[34,63175,63176],{"class":181}," target) {\n",[34,63178,63179,63181,63184],{"class":36,"line":250},[34,63180,15553],{"class":580},[34,63182,63183],{"class":181}," mid;           ",[34,63185,63186],{"class":40},"// Found — return index\n",[34,63188,63189,63192,63194,63196,63198,63200],{"class":36,"line":263},[34,63190,63191],{"class":181},"    } ",[34,63193,18871],{"class":580},[34,63195,18874],{"class":580},[34,63197,63171],{"class":181},[34,63199,815],{"class":580},[34,63201,63176],{"class":181},[34,63203,63204,63207,63209,63212,63214,63216,63218],{"class":36,"line":275},[34,63205,63206],{"class":181},"      low ",[34,63208,1301],{"class":580},[34,63210,63211],{"class":181}," mid ",[34,63213,2940],{"class":580},[34,63215,3567],{"class":50},[34,63217,42193],{"class":181},[34,63219,63220],{"class":40},"// Target is in right half\n",[34,63222,63223,63225,63227],{"class":36,"line":700},[34,63224,63191],{"class":181},[34,63226,18871],{"class":580},[34,63228,661],{"class":181},[34,63230,63231,63234,63236,63238,63240,63242,63244],{"class":36,"line":706},[34,63232,63233],{"class":181},"      high ",[34,63235,1301],{"class":580},[34,63237,63211],{"class":181},[34,63239,22062],{"class":580},[34,63241,3567],{"class":50},[34,63243,38395],{"class":181},[34,63245,63246],{"class":40},"// Target is in left half\n",[34,63248,63249],{"class":36,"line":715},[34,63250,3229],{"class":181},[34,63252,63253],{"class":36,"line":725},[34,63254,857],{"class":181},[34,63256,63257],{"class":36,"line":734},[34,63258,62],{"emptyLinePlaceholder":61},[34,63260,63261,63263,63265,63267,63269],{"class":36,"line":742},[34,63262,8155],{"class":580},[34,63264,19423],{"class":580},[34,63266,8318],{"class":50},[34,63268,10268],{"class":181},[34,63270,63271],{"class":40},"// Not found\n",[34,63273,63274],{"class":36,"line":748},[34,63275,693],{"class":181},[34,63277,63278],{"class":36,"line":754},[34,63279,62],{"emptyLinePlaceholder":61},[34,63281,63282],{"class":36,"line":759},[34,63283,63284],{"class":40},"// Recursive Binary Search — O(log n) time, O(log n) space\n",[34,63286,63287,63289,63292,63294,63296,63298,63300,63302,63305,63307,63309,63311,63314,63316,63318,63320,63322,63324],{"class":36,"line":771},[34,63288,11044],{"class":580},[34,63290,63291],{"class":47}," binarySearchRecursive",[34,63293,1607],{"class":181},[34,63295,18382],{"class":675},[34,63297,1798],{"class":181},[34,63299,63078],{"class":675},[34,63301,1798],{"class":181},[34,63303,63304],{"class":675},"low",[34,63306,683],{"class":580},[34,63308,8070],{"class":50},[34,63310,1798],{"class":181},[34,63312,63313],{"class":675},"high",[34,63315,683],{"class":580},[34,63317,63106],{"class":181},[34,63319,2908],{"class":50},[34,63321,19423],{"class":580},[34,63323,3567],{"class":50},[34,63325,2416],{"class":181},[34,63327,63328,63330,63332,63334,63336,63338,63340,63342,63344],{"class":36,"line":794},[34,63329,8084],{"class":580},[34,63331,63125],{"class":181},[34,63333,5691],{"class":580},[34,63335,63151],{"class":181},[34,63337,2917],{"class":580},[34,63339,19423],{"class":580},[34,63341,8318],{"class":50},[34,63343,10268],{"class":181},[34,63345,63346],{"class":40},"// Base case: search space exhausted\n",[34,63348,63349],{"class":36,"line":824},[34,63350,62],{"emptyLinePlaceholder":61},[34,63352,63353,63355,63357,63359,63361,63363,63365,63367,63369,63371,63373],{"class":36,"line":830},[34,63354,17415],{"class":580},[34,63356,63137],{"class":50},[34,63358,683],{"class":580},[34,63360,13917],{"class":181},[34,63362,13920],{"class":47},[34,63364,63146],{"class":181},[34,63366,2940],{"class":580},[34,63368,63151],{"class":181},[34,63370,12734],{"class":580},[34,63372,4292],{"class":50},[34,63374,1586],{"class":181},[34,63376,63377],{"class":36,"line":839},[34,63378,62],{"emptyLinePlaceholder":61},[34,63380,63381,63383,63385,63387,63390,63392],{"class":36,"line":854},[34,63382,8084],{"class":580},[34,63384,63171],{"class":181},[34,63386,15543],{"class":580},[34,63388,63389],{"class":181}," target) ",[34,63391,2917],{"class":580},[34,63393,63394],{"class":181}," mid;\n",[34,63396,63397,63399,63401,63403,63405,63407,63409,63412,63414,63416],{"class":36,"line":860},[34,63398,8084],{"class":580},[34,63400,63171],{"class":181},[34,63402,815],{"class":580},[34,63404,63389],{"class":181},[34,63406,2917],{"class":580},[34,63408,63291],{"class":47},[34,63410,63411],{"class":181},"(arr, target, mid ",[34,63413,2940],{"class":580},[34,63415,3567],{"class":50},[34,63417,63418],{"class":181},", high);\n",[34,63420,63421,63423,63425,63428,63430,63432],{"class":36,"line":865},[34,63422,8155],{"class":580},[34,63424,63291],{"class":47},[34,63426,63427],{"class":181},"(arr, target, low, mid ",[34,63429,22062],{"class":580},[34,63431,3567],{"class":50},[34,63433,1586],{"class":181},[34,63435,63436],{"class":36,"line":870},[34,63437,693],{"class":181},[34,63439,63440],{"class":36,"line":876},[34,63441,62],{"emptyLinePlaceholder":61},[34,63443,63444],{"class":36,"line":885},[34,63445,1113],{"class":40},[34,63447,63448,63450,63453,63455,63457,63459,63461,63463,63465,63467,63469,63471,63473,63475,63477,63480,63482,63485,63487,63490,63492,63495,63497,63500],{"class":36,"line":895},[34,63449,14676],{"class":580},[34,63451,63452],{"class":50}," sorted",[34,63454,683],{"class":580},[34,63456,8315],{"class":181},[34,63458,8324],{"class":50},[34,63460,1798],{"class":181},[34,63462,2778],{"class":50},[34,63464,1798],{"class":181},[34,63466,18033],{"class":50},[34,63468,1798],{"class":181},[34,63470,62739],{"class":50},[34,63472,1798],{"class":181},[34,63474,15353],{"class":50},[34,63476,1798],{"class":181},[34,63478,63479],{"class":50},"23",[34,63481,1798],{"class":181},[34,63483,63484],{"class":50},"38",[34,63486,1798],{"class":181},[34,63488,63489],{"class":50},"45",[34,63491,1798],{"class":181},[34,63493,63494],{"class":50},"67",[34,63496,1798],{"class":181},[34,63498,63499],{"class":50},"91",[34,63501,3415],{"class":181},[34,63503,63504,63506,63508,63510,63513,63516,63518,63521],{"class":36,"line":904},[34,63505,15183],{"class":181},[34,63507,2424],{"class":47},[34,63509,1607],{"class":181},[34,63511,63512],{"class":47},"binarySearch",[34,63514,63515],{"class":181},"(sorted, ",[34,63517,63479],{"class":50},[34,63519,63520],{"class":181},"));  ",[34,63522,63523],{"class":40},"// → 5\n",[34,63525,63526,63528,63530,63532,63534,63536,63539,63541],{"class":36,"line":915},[34,63527,15183],{"class":181},[34,63529,2424],{"class":47},[34,63531,1607],{"class":181},[34,63533,63512],{"class":47},[34,63535,63515],{"class":181},[34,63537,63538],{"class":50},"99",[34,63540,63520],{"class":181},[34,63542,63543],{"class":40},"// → -1\n",[11,63545,52856],{"id":52900},[25,63547,63549],{"className":49386,"code":63548,"language":49388,"meta":30,"style":30},"import bisect  # Python's built-in binary search library\n\ndef binary_search(arr: list, target) -> int:\n    \"\"\"Iterative binary search. Returns index or -1 if not found.\"\"\"\n    low, high = 0, len(arr) - 1\n\n    while low \u003C= high:\n        mid = (low + high) // 2     # Integer division (no overflow in Python)\n\n        if arr[mid] == target:\n            return mid              # Found\n        elif arr[mid] \u003C target:\n            low = mid + 1           # Search right half\n        else:\n            high = mid - 1          # Search left half\n\n    return -1   # Not found\n\n\ndef binary_search_recursive(arr: list, target, low: int = 0, high: int = None) -> int:\n    \"\"\"Recursive binary search.\"\"\"\n    if high is None:\n        high = len(arr) - 1\n\n    if low > high:\n        return -1   # Base case: not found\n\n    mid = (low + high) // 2\n\n    if arr[mid] == target:\n        return mid\n    elif arr[mid] \u003C target:\n        return binary_search_recursive(arr, target, mid + 1, high)\n    else:\n        return binary_search_recursive(arr, target, low, mid - 1)\n\n\n# Using Python's built-in bisect module (fastest option)\ndef binary_search_builtin(arr: list, target) -> int:\n    \"\"\"Use bisect for O(log n) search on sorted lists.\"\"\"\n    index = bisect.bisect_left(arr, target)     # Find leftmost insertion point\n    if index \u003C len(arr) and arr[index] == target:\n        return index    # Found\n    return -1           # Not found\n\n\n# Usage\nsorted_arr = [2, 5, 8, 12, 16, 23, 38, 45, 67, 91]\nprint(binary_search(sorted_arr, 23))    # → 5\nprint(binary_search(sorted_arr, 99))    # → -1\nprint(binary_search_builtin(sorted_arr, 23))  # → 5\n",[20,63550,63551,63561,63565,63585,63590,63611,63615,63626,63646,63650,63661,63671,63682,63698,63705,63721,63725,63736,63740,63744,63780,63785,63797,63812,63816,63826,63837,63841,63858,63862,63872,63879,63890,63904,63911,63924,63928,63932,63937,63954,63959,63972,63993,64002,64013,64017,64021,64025,64074,64089,64102],{"__ignoreMap":30},[34,63552,63553,63555,63558],{"class":36,"line":37},[34,63554,581],{"class":580},[34,63556,63557],{"class":181}," bisect  ",[34,63559,63560],{"class":40},"# Python's built-in binary search library\n",[34,63562,63563],{"class":36,"line":44},[34,63564,62],{"emptyLinePlaceholder":61},[34,63566,63567,63569,63572,63575,63578,63581,63583],{"class":36,"line":58},[34,63568,49400],{"class":580},[34,63570,63571],{"class":47}," binary_search",[34,63573,63574],{"class":181},"(arr: ",[34,63576,63577],{"class":50},"list",[34,63579,63580],{"class":181},", target) -> ",[34,63582,17772],{"class":50},[34,63584,193],{"class":181},[34,63586,63587],{"class":36,"line":65},[34,63588,63589],{"class":54},"    \"\"\"Iterative binary search. Returns index or -1 if not found.\"\"\"\n",[34,63591,63592,63595,63597,63599,63601,63604,63607,63609],{"class":36,"line":71},[34,63593,63594],{"class":181},"    low, high ",[34,63596,1301],{"class":580},[34,63598,8070],{"class":50},[34,63600,1798],{"class":181},[34,63602,63603],{"class":50},"len",[34,63605,63606],{"class":181},"(arr) ",[34,63608,22062],{"class":580},[34,63610,43446],{"class":50},[34,63612,63613],{"class":36,"line":77},[34,63614,62],{"emptyLinePlaceholder":61},[34,63616,63617,63619,63621,63623],{"class":36,"line":82},[34,63618,8098],{"class":580},[34,63620,63088],{"class":181},[34,63622,22032],{"class":580},[34,63624,63625],{"class":181}," high:\n",[34,63627,63628,63631,63633,63635,63637,63639,63641,63643],{"class":36,"line":88},[34,63629,63630],{"class":181},"        mid ",[34,63632,1301],{"class":580},[34,63634,63125],{"class":181},[34,63636,2940],{"class":580},[34,63638,63151],{"class":181},[34,63640,12754],{"class":580},[34,63642,4292],{"class":50},[34,63644,63645],{"class":40},"     # Integer division (no overflow in Python)\n",[34,63647,63648],{"class":36,"line":242},[34,63649,62],{"emptyLinePlaceholder":61},[34,63651,63652,63654,63657,63659],{"class":36,"line":250},[34,63653,49573],{"class":580},[34,63655,63656],{"class":181}," arr[mid] ",[34,63658,18168],{"class":580},[34,63660,49418],{"class":181},[34,63662,63663,63665,63668],{"class":36,"line":263},[34,63664,51208],{"class":580},[34,63666,63667],{"class":181}," mid              ",[34,63669,63670],{"class":40},"# Found\n",[34,63672,63673,63676,63678,63680],{"class":36,"line":275},[34,63674,63675],{"class":580},"        elif",[34,63677,63656],{"class":181},[34,63679,815],{"class":580},[34,63681,49418],{"class":181},[34,63683,63684,63687,63689,63691,63693,63695],{"class":36,"line":700},[34,63685,63686],{"class":181},"            low ",[34,63688,1301],{"class":580},[34,63690,63211],{"class":181},[34,63692,2940],{"class":580},[34,63694,3567],{"class":50},[34,63696,63697],{"class":40},"           # Search right half\n",[34,63699,63700,63703],{"class":36,"line":706},[34,63701,63702],{"class":580},"        else",[34,63704,193],{"class":181},[34,63706,63707,63710,63712,63714,63716,63718],{"class":36,"line":715},[34,63708,63709],{"class":181},"            high ",[34,63711,1301],{"class":580},[34,63713,63211],{"class":181},[34,63715,22062],{"class":580},[34,63717,3567],{"class":50},[34,63719,63720],{"class":40},"          # Search left half\n",[34,63722,63723],{"class":36,"line":725},[34,63724,62],{"emptyLinePlaceholder":61},[34,63726,63727,63729,63731,63733],{"class":36,"line":734},[34,63728,1564],{"class":580},[34,63730,19423],{"class":580},[34,63732,8318],{"class":50},[34,63734,63735],{"class":40},"   # Not found\n",[34,63737,63738],{"class":36,"line":742},[34,63739,62],{"emptyLinePlaceholder":61},[34,63741,63742],{"class":36,"line":748},[34,63743,62],{"emptyLinePlaceholder":61},[34,63745,63746,63748,63751,63753,63755,63758,63760,63762,63764,63767,63769,63771,63773,63776,63778],{"class":36,"line":754},[34,63747,49400],{"class":580},[34,63749,63750],{"class":47}," binary_search_recursive",[34,63752,63574],{"class":181},[34,63754,63577],{"class":50},[34,63756,63757],{"class":181},", target, low: ",[34,63759,17772],{"class":50},[34,63761,683],{"class":580},[34,63763,8070],{"class":50},[34,63765,63766],{"class":181},", high: ",[34,63768,17772],{"class":50},[34,63770,683],{"class":580},[34,63772,53194],{"class":50},[34,63774,63775],{"class":181},") -> ",[34,63777,17772],{"class":50},[34,63779,193],{"class":181},[34,63781,63782],{"class":36,"line":759},[34,63783,63784],{"class":54},"    \"\"\"Recursive binary search.\"\"\"\n",[34,63786,63787,63789,63791,63793,63795],{"class":36,"line":771},[34,63788,2902],{"class":580},[34,63790,63101],{"class":181},[34,63792,34798],{"class":580},[34,63794,53194],{"class":50},[34,63796,193],{"class":181},[34,63798,63799,63802,63804,63806,63808,63810],{"class":36,"line":794},[34,63800,63801],{"class":181},"        high ",[34,63803,1301],{"class":580},[34,63805,21152],{"class":50},[34,63807,63606],{"class":181},[34,63809,22062],{"class":580},[34,63811,43446],{"class":50},[34,63813,63814],{"class":36,"line":824},[34,63815,62],{"emptyLinePlaceholder":61},[34,63817,63818,63820,63822,63824],{"class":36,"line":830},[34,63819,2902],{"class":580},[34,63821,63088],{"class":181},[34,63823,5691],{"class":580},[34,63825,63625],{"class":181},[34,63827,63828,63830,63832,63834],{"class":36,"line":839},[34,63829,13895],{"class":580},[34,63831,19423],{"class":580},[34,63833,8318],{"class":50},[34,63835,63836],{"class":40},"   # Base case: not found\n",[34,63838,63839],{"class":36,"line":854},[34,63840,62],{"emptyLinePlaceholder":61},[34,63842,63843,63846,63848,63850,63852,63854,63856],{"class":36,"line":860},[34,63844,63845],{"class":181},"    mid ",[34,63847,1301],{"class":580},[34,63849,63125],{"class":181},[34,63851,2940],{"class":580},[34,63853,63151],{"class":181},[34,63855,12754],{"class":580},[34,63857,9930],{"class":50},[34,63859,63860],{"class":36,"line":865},[34,63861,62],{"emptyLinePlaceholder":61},[34,63863,63864,63866,63868,63870],{"class":36,"line":870},[34,63865,2902],{"class":580},[34,63867,63656],{"class":181},[34,63869,18168],{"class":580},[34,63871,49418],{"class":181},[34,63873,63874,63876],{"class":36,"line":876},[34,63875,13895],{"class":580},[34,63877,63878],{"class":181}," mid\n",[34,63880,63881,63884,63886,63888],{"class":36,"line":885},[34,63882,63883],{"class":580},"    elif",[34,63885,63656],{"class":181},[34,63887,815],{"class":580},[34,63889,49418],{"class":181},[34,63891,63892,63894,63897,63899,63901],{"class":36,"line":895},[34,63893,13895],{"class":580},[34,63895,63896],{"class":181}," binary_search_recursive(arr, target, mid ",[34,63898,2940],{"class":580},[34,63900,3567],{"class":50},[34,63902,63903],{"class":181},", high)\n",[34,63905,63906,63909],{"class":36,"line":904},[34,63907,63908],{"class":580},"    else",[34,63910,193],{"class":181},[34,63912,63913,63915,63918,63920,63922],{"class":36,"line":915},[34,63914,13895],{"class":580},[34,63916,63917],{"class":181}," binary_search_recursive(arr, target, low, mid ",[34,63919,22062],{"class":580},[34,63921,3567],{"class":50},[34,63923,3372],{"class":181},[34,63925,63926],{"class":36,"line":927},[34,63927,62],{"emptyLinePlaceholder":61},[34,63929,63930],{"class":36,"line":932},[34,63931,62],{"emptyLinePlaceholder":61},[34,63933,63934],{"class":36,"line":944},[34,63935,63936],{"class":40},"# Using Python's built-in bisect module (fastest option)\n",[34,63938,63939,63941,63944,63946,63948,63950,63952],{"class":36,"line":966},[34,63940,49400],{"class":580},[34,63942,63943],{"class":47}," binary_search_builtin",[34,63945,63574],{"class":181},[34,63947,63577],{"class":50},[34,63949,63580],{"class":181},[34,63951,17772],{"class":50},[34,63953,193],{"class":181},[34,63955,63956],{"class":36,"line":1948},[34,63957,63958],{"class":54},"    \"\"\"Use bisect for O(log n) search on sorted lists.\"\"\"\n",[34,63960,63961,63964,63966,63969],{"class":36,"line":1953},[34,63962,63963],{"class":181},"    index ",[34,63965,1301],{"class":580},[34,63967,63968],{"class":181}," bisect.bisect_left(arr, target)     ",[34,63970,63971],{"class":40},"# Find leftmost insertion point\n",[34,63973,63974,63976,63978,63980,63982,63984,63986,63989,63991],{"class":36,"line":3616},[34,63975,2902],{"class":580},[34,63977,19942],{"class":181},[34,63979,815],{"class":580},[34,63981,21152],{"class":50},[34,63983,63606],{"class":181},[34,63985,51197],{"class":580},[34,63987,63988],{"class":181}," arr[index] ",[34,63990,18168],{"class":580},[34,63992,49418],{"class":181},[34,63994,63995,63997,64000],{"class":36,"line":3622},[34,63996,13895],{"class":580},[34,63998,63999],{"class":181}," index    ",[34,64001,63670],{"class":40},[34,64003,64004,64006,64008,64010],{"class":36,"line":3642},[34,64005,1564],{"class":580},[34,64007,19423],{"class":580},[34,64009,8318],{"class":50},[34,64011,64012],{"class":40},"           # Not found\n",[34,64014,64015],{"class":36,"line":3657},[34,64016,62],{"emptyLinePlaceholder":61},[34,64018,64019],{"class":36,"line":3663},[34,64020,62],{"emptyLinePlaceholder":61},[34,64022,64023],{"class":36,"line":3669},[34,64024,53237],{"class":40},[34,64026,64027,64030,64032,64034,64036,64038,64040,64042,64044,64046,64048,64050,64052,64054,64056,64058,64060,64062,64064,64066,64068,64070,64072],{"class":36,"line":3675},[34,64028,64029],{"class":181},"sorted_arr ",[34,64031,1301],{"class":580},[34,64033,8315],{"class":181},[34,64035,8324],{"class":50},[34,64037,1798],{"class":181},[34,64039,2778],{"class":50},[34,64041,1798],{"class":181},[34,64043,18033],{"class":50},[34,64045,1798],{"class":181},[34,64047,62739],{"class":50},[34,64049,1798],{"class":181},[34,64051,15353],{"class":50},[34,64053,1798],{"class":181},[34,64055,63479],{"class":50},[34,64057,1798],{"class":181},[34,64059,63484],{"class":50},[34,64061,1798],{"class":181},[34,64063,63489],{"class":50},[34,64065,1798],{"class":181},[34,64067,63494],{"class":50},[34,64069,1798],{"class":181},[34,64071,63499],{"class":50},[34,64073,924],{"class":181},[34,64075,64076,64078,64081,64083,64086],{"class":36,"line":3693},[34,64077,53417],{"class":50},[34,64079,64080],{"class":181},"(binary_search(sorted_arr, ",[34,64082,63479],{"class":50},[34,64084,64085],{"class":181},"))    ",[34,64087,64088],{"class":40},"# → 5\n",[34,64090,64091,64093,64095,64097,64099],{"class":36,"line":3707},[34,64092,53417],{"class":50},[34,64094,64080],{"class":181},[34,64096,63538],{"class":50},[34,64098,64085],{"class":181},[34,64100,64101],{"class":40},"# → -1\n",[34,64103,64104,64106,64109,64111,64114],{"class":36,"line":3712},[34,64105,53417],{"class":50},[34,64107,64108],{"class":181},"(binary_search_builtin(sorted_arr, ",[34,64110,63479],{"class":50},[34,64112,64113],{"class":181},"))  ",[34,64115,64088],{"class":40},[11,64117,64119],{"id":64118},"typescript-implementation","TypeScript Implementation",[25,64121,64123],{"className":571,"code":64122,"language":573,"meta":30,"style":30},"// Generic Binary Search — works with any comparable type\nfunction binarySearch\u003CT>(\n  arr: T[],\n  target: T,\n  compare: (a: T, b: T) => number = (a, b) => (a \u003C b ? -1 : a > b ? 1 : 0)\n): number {\n  let low = 0;\n  let high = arr.length - 1;\n\n  while (low \u003C= high) {\n    const mid = Math.floor((low + high) / 2);\n    const cmp = compare(arr[mid], target);\n\n    if (cmp === 0) return mid;      // Found\n    if (cmp \u003C 0) low = mid + 1;    // arr[mid] \u003C target → search right\n    else high = mid - 1;           // arr[mid] > target → search left\n  }\n\n  return -1; // Not found\n}\n\n// Binary search on objects using a key extractor\nfunction binarySearchBy\u003CT, K>(\n  arr: T[],\n  target: K,\n  key: (item: T) => K\n): number {\n  let low = 0;\n  let high = arr.length - 1;\n\n  while (low \u003C= high) {\n    const mid = Math.floor((low + high) / 2);\n    const k = key(arr[mid]);\n\n    if (k === target) return mid;\n    if (k \u003C target) low = mid + 1;\n    else high = mid - 1;\n  }\n\n  return -1;\n}\n\n// Usage\nconst nums = [2, 5, 8, 12, 16, 23, 38, 45];\nconsole.log(binarySearch(nums, 23));   // → 5\n\nconst users = [\n  { id: 1, name: 'Alice' },\n  { id: 3, name: 'Bob' },\n  { id: 7, name: 'Carol' },\n  { id: 12, name: 'Dave' },\n];\nconsole.log(binarySearchBy(users, 7, u => u.id)); // → 2 (Carol)\n",[20,64124,64125,64130,64143,64155,64166,64240,64250,64262,64280,64284,64294,64318,64333,64337,64358,64385,64404,64408,64412,64424,64428,64432,64437,64455,64465,64475,64497,64507,64519,64537,64541,64551,64575,64590,64594,64609,64630,64646,64650,64654,64664,64668,64672,64676,64719,64739,64743,64753,64766,64778,64791,64804,64808],{"__ignoreMap":30},[34,64126,64127],{"class":36,"line":37},[34,64128,64129],{"class":40},"// Generic Binary Search — works with any comparable type\n",[34,64131,64132,64134,64136,64138,64140],{"class":36,"line":44},[34,64133,11044],{"class":580},[34,64135,63069],{"class":47},[34,64137,815],{"class":181},[34,64139,32671],{"class":47},[34,64141,64142],{"class":181},">(\n",[34,64144,64145,64148,64150,64152],{"class":36,"line":58},[34,64146,64147],{"class":675},"  arr",[34,64149,165],{"class":580},[34,64151,32664],{"class":47},[34,64153,64154],{"class":181},"[],\n",[34,64156,64157,64160,64162,64164],{"class":36,"line":65},[34,64158,64159],{"class":675},"  target",[34,64161,165],{"class":580},[34,64163,32664],{"class":47},[34,64165,624],{"class":181},[34,64167,64168,64171,64173,64175,64177,64179,64181,64183,64185,64187,64189,64191,64193,64195,64197,64199,64201,64203,64205,64207,64209,64211,64213,64215,64217,64219,64221,64224,64226,64228,64230,64232,64234,64236,64238],{"class":36,"line":71},[34,64169,64170],{"class":47},"  compare",[34,64172,165],{"class":580},[34,64174,3204],{"class":181},[34,64176,145],{"class":675},[34,64178,165],{"class":580},[34,64180,32664],{"class":47},[34,64182,1798],{"class":181},[34,64184,8355],{"class":675},[34,64186,165],{"class":580},[34,64188,32664],{"class":47},[34,64190,4817],{"class":181},[34,64192,3361],{"class":580},[34,64194,2741],{"class":50},[34,64196,683],{"class":580},[34,64198,3204],{"class":181},[34,64200,145],{"class":675},[34,64202,1798],{"class":181},[34,64204,8355],{"class":675},[34,64206,4817],{"class":181},[34,64208,3361],{"class":580},[34,64210,18946],{"class":181},[34,64212,815],{"class":580},[34,64214,22721],{"class":181},[34,64216,18954],{"class":580},[34,64218,19423],{"class":580},[34,64220,8318],{"class":50},[34,64222,64223],{"class":580}," :",[34,64225,8065],{"class":181},[34,64227,5691],{"class":580},[34,64229,22721],{"class":181},[34,64231,18954],{"class":580},[34,64233,3567],{"class":50},[34,64235,64223],{"class":580},[34,64237,8070],{"class":50},[34,64239,3372],{"class":181},[34,64241,64242,64244,64246,64248],{"class":36,"line":77},[34,64243,1617],{"class":181},[34,64245,165],{"class":580},[34,64247,2741],{"class":50},[34,64249,661],{"class":181},[34,64251,64252,64254,64256,64258,64260],{"class":36,"line":82},[34,64253,63085],{"class":580},[34,64255,63088],{"class":181},[34,64257,1301],{"class":580},[34,64259,8070],{"class":50},[34,64261,593],{"class":181},[34,64263,64264,64266,64268,64270,64272,64274,64276,64278],{"class":36,"line":88},[34,64265,63085],{"class":580},[34,64267,63101],{"class":181},[34,64269,1301],{"class":580},[34,64271,63106],{"class":181},[34,64273,2908],{"class":50},[34,64275,19423],{"class":580},[34,64277,3567],{"class":50},[34,64279,593],{"class":181},[34,64281,64282],{"class":36,"line":242},[34,64283,62],{"emptyLinePlaceholder":61},[34,64285,64286,64288,64290,64292],{"class":36,"line":250},[34,64287,52149],{"class":580},[34,64289,63125],{"class":181},[34,64291,22032],{"class":580},[34,64293,63130],{"class":181},[34,64295,64296,64298,64300,64302,64304,64306,64308,64310,64312,64314,64316],{"class":36,"line":263},[34,64297,1632],{"class":580},[34,64299,63137],{"class":50},[34,64301,683],{"class":580},[34,64303,13917],{"class":181},[34,64305,13920],{"class":47},[34,64307,63146],{"class":181},[34,64309,2940],{"class":580},[34,64311,63151],{"class":181},[34,64313,12734],{"class":580},[34,64315,4292],{"class":50},[34,64317,1586],{"class":181},[34,64319,64320,64322,64325,64327,64330],{"class":36,"line":275},[34,64321,1632],{"class":580},[34,64323,64324],{"class":50}," cmp",[34,64326,683],{"class":580},[34,64328,64329],{"class":47}," compare",[34,64331,64332],{"class":181},"(arr[mid], target);\n",[34,64334,64335],{"class":36,"line":700},[34,64336,62],{"emptyLinePlaceholder":61},[34,64338,64339,64341,64344,64346,64348,64350,64352,64355],{"class":36,"line":706},[34,64340,2902],{"class":580},[34,64342,64343],{"class":181}," (cmp ",[34,64345,15543],{"class":580},[34,64347,8070],{"class":50},[34,64349,4817],{"class":181},[34,64351,2917],{"class":580},[34,64353,64354],{"class":181}," mid;      ",[34,64356,64357],{"class":40},"// Found\n",[34,64359,64360,64362,64364,64366,64368,64371,64373,64375,64377,64379,64382],{"class":36,"line":715},[34,64361,2902],{"class":580},[34,64363,64343],{"class":181},[34,64365,815],{"class":580},[34,64367,8070],{"class":50},[34,64369,64370],{"class":181},") low ",[34,64372,1301],{"class":580},[34,64374,63211],{"class":181},[34,64376,2940],{"class":580},[34,64378,3567],{"class":50},[34,64380,64381],{"class":181},";    ",[34,64383,64384],{"class":40},"// arr[mid] \u003C target → search right\n",[34,64386,64387,64389,64391,64393,64395,64397,64399,64401],{"class":36,"line":725},[34,64388,63908],{"class":580},[34,64390,63101],{"class":181},[34,64392,1301],{"class":580},[34,64394,63211],{"class":181},[34,64396,22062],{"class":580},[34,64398,3567],{"class":50},[34,64400,38595],{"class":181},[34,64402,64403],{"class":40},"// arr[mid] > target → search left\n",[34,64405,64406],{"class":36,"line":734},[34,64407,857],{"class":181},[34,64409,64410],{"class":36,"line":742},[34,64411,62],{"emptyLinePlaceholder":61},[34,64413,64414,64416,64418,64420,64422],{"class":36,"line":748},[34,64415,8155],{"class":580},[34,64417,19423],{"class":580},[34,64419,8318],{"class":50},[34,64421,10268],{"class":181},[34,64423,63271],{"class":40},[34,64425,64426],{"class":36,"line":754},[34,64427,693],{"class":181},[34,64429,64430],{"class":36,"line":759},[34,64431,62],{"emptyLinePlaceholder":61},[34,64433,64434],{"class":36,"line":771},[34,64435,64436],{"class":40},"// Binary search on objects using a key extractor\n",[34,64438,64439,64441,64444,64446,64448,64450,64453],{"class":36,"line":794},[34,64440,11044],{"class":580},[34,64442,64443],{"class":47}," binarySearchBy",[34,64445,815],{"class":181},[34,64447,32671],{"class":47},[34,64449,1798],{"class":181},[34,64451,64452],{"class":47},"K",[34,64454,64142],{"class":181},[34,64456,64457,64459,64461,64463],{"class":36,"line":824},[34,64458,64147],{"class":675},[34,64460,165],{"class":580},[34,64462,32664],{"class":47},[34,64464,64154],{"class":181},[34,64466,64467,64469,64471,64473],{"class":36,"line":830},[34,64468,64159],{"class":675},[34,64470,165],{"class":580},[34,64472,11576],{"class":47},[34,64474,624],{"class":181},[34,64476,64477,64480,64482,64484,64486,64488,64490,64492,64494],{"class":36,"line":839},[34,64478,64479],{"class":47},"  key",[34,64481,165],{"class":580},[34,64483,3204],{"class":181},[34,64485,4935],{"class":675},[34,64487,165],{"class":580},[34,64489,32664],{"class":47},[34,64491,4817],{"class":181},[34,64493,3361],{"class":580},[34,64495,64496],{"class":47}," K\n",[34,64498,64499,64501,64503,64505],{"class":36,"line":854},[34,64500,1617],{"class":181},[34,64502,165],{"class":580},[34,64504,2741],{"class":50},[34,64506,661],{"class":181},[34,64508,64509,64511,64513,64515,64517],{"class":36,"line":860},[34,64510,63085],{"class":580},[34,64512,63088],{"class":181},[34,64514,1301],{"class":580},[34,64516,8070],{"class":50},[34,64518,593],{"class":181},[34,64520,64521,64523,64525,64527,64529,64531,64533,64535],{"class":36,"line":865},[34,64522,63085],{"class":580},[34,64524,63101],{"class":181},[34,64526,1301],{"class":580},[34,64528,63106],{"class":181},[34,64530,2908],{"class":50},[34,64532,19423],{"class":580},[34,64534,3567],{"class":50},[34,64536,593],{"class":181},[34,64538,64539],{"class":36,"line":870},[34,64540,62],{"emptyLinePlaceholder":61},[34,64542,64543,64545,64547,64549],{"class":36,"line":876},[34,64544,52149],{"class":580},[34,64546,63125],{"class":181},[34,64548,22032],{"class":580},[34,64550,63130],{"class":181},[34,64552,64553,64555,64557,64559,64561,64563,64565,64567,64569,64571,64573],{"class":36,"line":885},[34,64554,1632],{"class":580},[34,64556,63137],{"class":50},[34,64558,683],{"class":580},[34,64560,13917],{"class":181},[34,64562,13920],{"class":47},[34,64564,63146],{"class":181},[34,64566,2940],{"class":580},[34,64568,63151],{"class":181},[34,64570,12734],{"class":580},[34,64572,4292],{"class":50},[34,64574,1586],{"class":181},[34,64576,64577,64579,64582,64584,64587],{"class":36,"line":895},[34,64578,1632],{"class":580},[34,64580,64581],{"class":50}," k",[34,64583,683],{"class":580},[34,64585,64586],{"class":47}," key",[34,64588,64589],{"class":181},"(arr[mid]);\n",[34,64591,64592],{"class":36,"line":904},[34,64593,62],{"emptyLinePlaceholder":61},[34,64595,64596,64598,64601,64603,64605,64607],{"class":36,"line":915},[34,64597,2902],{"class":580},[34,64599,64600],{"class":181}," (k ",[34,64602,15543],{"class":580},[34,64604,63389],{"class":181},[34,64606,2917],{"class":580},[34,64608,63394],{"class":181},[34,64610,64611,64613,64615,64617,64620,64622,64624,64626,64628],{"class":36,"line":927},[34,64612,2902],{"class":580},[34,64614,64600],{"class":181},[34,64616,815],{"class":580},[34,64618,64619],{"class":181}," target) low ",[34,64621,1301],{"class":580},[34,64623,63211],{"class":181},[34,64625,2940],{"class":580},[34,64627,3567],{"class":50},[34,64629,593],{"class":181},[34,64631,64632,64634,64636,64638,64640,64642,64644],{"class":36,"line":932},[34,64633,63908],{"class":580},[34,64635,63101],{"class":181},[34,64637,1301],{"class":580},[34,64639,63211],{"class":181},[34,64641,22062],{"class":580},[34,64643,3567],{"class":50},[34,64645,593],{"class":181},[34,64647,64648],{"class":36,"line":944},[34,64649,857],{"class":181},[34,64651,64652],{"class":36,"line":966},[34,64653,62],{"emptyLinePlaceholder":61},[34,64655,64656,64658,64660,64662],{"class":36,"line":1948},[34,64657,8155],{"class":580},[34,64659,19423],{"class":580},[34,64661,8318],{"class":50},[34,64663,593],{"class":181},[34,64665,64666],{"class":36,"line":1953},[34,64667,693],{"class":181},[34,64669,64670],{"class":36,"line":3616},[34,64671,62],{"emptyLinePlaceholder":61},[34,64673,64674],{"class":36,"line":3622},[34,64675,1113],{"class":40},[34,64677,64678,64680,64683,64685,64687,64689,64691,64693,64695,64697,64699,64701,64703,64705,64707,64709,64711,64713,64715,64717],{"class":36,"line":3642},[34,64679,14676],{"class":580},[34,64681,64682],{"class":50}," nums",[34,64684,683],{"class":580},[34,64686,8315],{"class":181},[34,64688,8324],{"class":50},[34,64690,1798],{"class":181},[34,64692,2778],{"class":50},[34,64694,1798],{"class":181},[34,64696,18033],{"class":50},[34,64698,1798],{"class":181},[34,64700,62739],{"class":50},[34,64702,1798],{"class":181},[34,64704,15353],{"class":50},[34,64706,1798],{"class":181},[34,64708,63479],{"class":50},[34,64710,1798],{"class":181},[34,64712,63484],{"class":50},[34,64714,1798],{"class":181},[34,64716,63489],{"class":50},[34,64718,3415],{"class":181},[34,64720,64721,64723,64725,64727,64729,64732,64734,64737],{"class":36,"line":3657},[34,64722,15183],{"class":181},[34,64724,2424],{"class":47},[34,64726,1607],{"class":181},[34,64728,63512],{"class":47},[34,64730,64731],{"class":181},"(nums, ",[34,64733,63479],{"class":50},[34,64735,64736],{"class":181},"));   ",[34,64738,63523],{"class":40},[34,64740,64741],{"class":36,"line":3663},[34,64742,62],{"emptyLinePlaceholder":61},[34,64744,64745,64747,64749,64751],{"class":36,"line":3669},[34,64746,14676],{"class":580},[34,64748,28425],{"class":50},[34,64750,683],{"class":580},[34,64752,3304],{"class":181},[34,64754,64755,64758,64760,64762,64764],{"class":36,"line":3675},[34,64756,64757],{"class":181},"  { id: ",[34,64759,8318],{"class":50},[34,64761,61160],{"class":181},[34,64763,28504],{"class":54},[34,64765,14846],{"class":181},[34,64767,64768,64770,64772,64774,64776],{"class":36,"line":3693},[34,64769,64757],{"class":181},[34,64771,3162],{"class":50},[34,64773,61160],{"class":181},[34,64775,29116],{"class":54},[34,64777,14846],{"class":181},[34,64779,64780,64782,64784,64786,64789],{"class":36,"line":3707},[34,64781,64757],{"class":181},[34,64783,18028],{"class":50},[34,64785,61160],{"class":181},[34,64787,64788],{"class":54},"'Carol'",[34,64790,14846],{"class":181},[34,64792,64793,64795,64797,64799,64802],{"class":36,"line":3712},[34,64794,64757],{"class":181},[34,64796,62739],{"class":50},[34,64798,61160],{"class":181},[34,64800,64801],{"class":54},"'Dave'",[34,64803,14846],{"class":181},[34,64805,64806],{"class":36,"line":3717},[34,64807,3415],{"class":181},[34,64809,64810,64812,64814,64816,64819,64822,64824,64826,64829,64831,64834],{"class":36,"line":25776},[34,64811,15183],{"class":181},[34,64813,2424],{"class":47},[34,64815,1607],{"class":181},[34,64817,64818],{"class":47},"binarySearchBy",[34,64820,64821],{"class":181},"(users, ",[34,64823,18028],{"class":50},[34,64825,1798],{"class":181},[34,64827,64828],{"class":675},"u",[34,64830,1895],{"class":580},[34,64832,64833],{"class":181}," u.id)); ",[34,64835,64836],{"class":40},"// → 2 (Carol)\n",[11,64838,64840],{"id":64839},"finding-boundaries-lower-upper-bound","Finding Boundaries (Lower / Upper Bound)",[25,64842,64844],{"className":49386,"code":64843,"language":49388,"meta":30,"style":30},"# Find the FIRST position where target could be inserted (leftmost index)\ndef lower_bound(arr: list, target) -> int:\n    \"\"\"Returns index of first element >= target.\"\"\"\n    low, high = 0, len(arr)\n\n    while low \u003C high:\n        mid = (low + high) // 2\n        if arr[mid] \u003C target:\n            low = mid + 1\n        else:\n            high = mid  # Don't exclude mid — it might be the answer\n\n    return low  # Always returns a valid insertion point\n\n\n# Find the LAST position (rightmost index + 1)\ndef upper_bound(arr: list, target) -> int:\n    \"\"\"Returns index of first element > target.\"\"\"\n    low, high = 0, len(arr)\n\n    while low \u003C high:\n        mid = (low + high) // 2\n        if arr[mid] \u003C= target:\n            low = mid + 1\n        else:\n            high = mid\n\n    return low\n\n\n# Count occurrences of target in sorted array\ndef count_occurrences(arr: list, target) -> int:\n    return upper_bound(arr, target) - lower_bound(arr, target)\n\n\n# Example\narr = [1, 2, 2, 2, 3, 4, 5]\nprint(lower_bound(arr, 2))          # → 1  (first 2 is at index 1)\nprint(upper_bound(arr, 2))          # → 4  (past last 2)\nprint(count_occurrences(arr, 2))    # → 3  (three 2s)\n",[20,64845,64846,64851,64868,64873,64888,64892,64902,64918,64928,64940,64946,64958,64962,64972,64976,64980,64985,65002,65007,65021,65025,65035,65051,65061,65073,65079,65087,65091,65098,65102,65106,65111,65128,65140,65144,65148,65153,65189,65204,65218],{"__ignoreMap":30},[34,64847,64848],{"class":36,"line":37},[34,64849,64850],{"class":40},"# Find the FIRST position where target could be inserted (leftmost index)\n",[34,64852,64853,64855,64858,64860,64862,64864,64866],{"class":36,"line":44},[34,64854,49400],{"class":580},[34,64856,64857],{"class":47}," lower_bound",[34,64859,63574],{"class":181},[34,64861,63577],{"class":50},[34,64863,63580],{"class":181},[34,64865,17772],{"class":50},[34,64867,193],{"class":181},[34,64869,64870],{"class":36,"line":58},[34,64871,64872],{"class":54},"    \"\"\"Returns index of first element >= target.\"\"\"\n",[34,64874,64875,64877,64879,64881,64883,64885],{"class":36,"line":65},[34,64876,63594],{"class":181},[34,64878,1301],{"class":580},[34,64880,8070],{"class":50},[34,64882,1798],{"class":181},[34,64884,63603],{"class":50},[34,64886,64887],{"class":181},"(arr)\n",[34,64889,64890],{"class":36,"line":71},[34,64891,62],{"emptyLinePlaceholder":61},[34,64893,64894,64896,64898,64900],{"class":36,"line":77},[34,64895,8098],{"class":580},[34,64897,63088],{"class":181},[34,64899,815],{"class":580},[34,64901,63625],{"class":181},[34,64903,64904,64906,64908,64910,64912,64914,64916],{"class":36,"line":82},[34,64905,63630],{"class":181},[34,64907,1301],{"class":580},[34,64909,63125],{"class":181},[34,64911,2940],{"class":580},[34,64913,63151],{"class":181},[34,64915,12754],{"class":580},[34,64917,9930],{"class":50},[34,64919,64920,64922,64924,64926],{"class":36,"line":88},[34,64921,49573],{"class":580},[34,64923,63656],{"class":181},[34,64925,815],{"class":580},[34,64927,49418],{"class":181},[34,64929,64930,64932,64934,64936,64938],{"class":36,"line":242},[34,64931,63686],{"class":181},[34,64933,1301],{"class":580},[34,64935,63211],{"class":181},[34,64937,2940],{"class":580},[34,64939,43446],{"class":50},[34,64941,64942,64944],{"class":36,"line":250},[34,64943,63702],{"class":580},[34,64945,193],{"class":181},[34,64947,64948,64950,64952,64955],{"class":36,"line":263},[34,64949,63709],{"class":181},[34,64951,1301],{"class":580},[34,64953,64954],{"class":181}," mid  ",[34,64956,64957],{"class":40},"# Don't exclude mid — it might be the answer\n",[34,64959,64960],{"class":36,"line":275},[34,64961,62],{"emptyLinePlaceholder":61},[34,64963,64964,64966,64969],{"class":36,"line":700},[34,64965,1564],{"class":580},[34,64967,64968],{"class":181}," low  ",[34,64970,64971],{"class":40},"# Always returns a valid insertion point\n",[34,64973,64974],{"class":36,"line":706},[34,64975,62],{"emptyLinePlaceholder":61},[34,64977,64978],{"class":36,"line":715},[34,64979,62],{"emptyLinePlaceholder":61},[34,64981,64982],{"class":36,"line":725},[34,64983,64984],{"class":40},"# Find the LAST position (rightmost index + 1)\n",[34,64986,64987,64989,64992,64994,64996,64998,65000],{"class":36,"line":734},[34,64988,49400],{"class":580},[34,64990,64991],{"class":47}," upper_bound",[34,64993,63574],{"class":181},[34,64995,63577],{"class":50},[34,64997,63580],{"class":181},[34,64999,17772],{"class":50},[34,65001,193],{"class":181},[34,65003,65004],{"class":36,"line":742},[34,65005,65006],{"class":54},"    \"\"\"Returns index of first element > target.\"\"\"\n",[34,65008,65009,65011,65013,65015,65017,65019],{"class":36,"line":748},[34,65010,63594],{"class":181},[34,65012,1301],{"class":580},[34,65014,8070],{"class":50},[34,65016,1798],{"class":181},[34,65018,63603],{"class":50},[34,65020,64887],{"class":181},[34,65022,65023],{"class":36,"line":754},[34,65024,62],{"emptyLinePlaceholder":61},[34,65026,65027,65029,65031,65033],{"class":36,"line":759},[34,65028,8098],{"class":580},[34,65030,63088],{"class":181},[34,65032,815],{"class":580},[34,65034,63625],{"class":181},[34,65036,65037,65039,65041,65043,65045,65047,65049],{"class":36,"line":771},[34,65038,63630],{"class":181},[34,65040,1301],{"class":580},[34,65042,63125],{"class":181},[34,65044,2940],{"class":580},[34,65046,63151],{"class":181},[34,65048,12754],{"class":580},[34,65050,9930],{"class":50},[34,65052,65053,65055,65057,65059],{"class":36,"line":794},[34,65054,49573],{"class":580},[34,65056,63656],{"class":181},[34,65058,22032],{"class":580},[34,65060,49418],{"class":181},[34,65062,65063,65065,65067,65069,65071],{"class":36,"line":824},[34,65064,63686],{"class":181},[34,65066,1301],{"class":580},[34,65068,63211],{"class":181},[34,65070,2940],{"class":580},[34,65072,43446],{"class":50},[34,65074,65075,65077],{"class":36,"line":830},[34,65076,63702],{"class":580},[34,65078,193],{"class":181},[34,65080,65081,65083,65085],{"class":36,"line":839},[34,65082,63709],{"class":181},[34,65084,1301],{"class":580},[34,65086,63878],{"class":181},[34,65088,65089],{"class":36,"line":854},[34,65090,62],{"emptyLinePlaceholder":61},[34,65092,65093,65095],{"class":36,"line":860},[34,65094,1564],{"class":580},[34,65096,65097],{"class":181}," low\n",[34,65099,65100],{"class":36,"line":865},[34,65101,62],{"emptyLinePlaceholder":61},[34,65103,65104],{"class":36,"line":870},[34,65105,62],{"emptyLinePlaceholder":61},[34,65107,65108],{"class":36,"line":876},[34,65109,65110],{"class":40},"# Count occurrences of target in sorted array\n",[34,65112,65113,65115,65118,65120,65122,65124,65126],{"class":36,"line":885},[34,65114,49400],{"class":580},[34,65116,65117],{"class":47}," count_occurrences",[34,65119,63574],{"class":181},[34,65121,63577],{"class":50},[34,65123,63580],{"class":181},[34,65125,17772],{"class":50},[34,65127,193],{"class":181},[34,65129,65130,65132,65135,65137],{"class":36,"line":895},[34,65131,1564],{"class":580},[34,65133,65134],{"class":181}," upper_bound(arr, target) ",[34,65136,22062],{"class":580},[34,65138,65139],{"class":181}," lower_bound(arr, target)\n",[34,65141,65142],{"class":36,"line":904},[34,65143,62],{"emptyLinePlaceholder":61},[34,65145,65146],{"class":36,"line":915},[34,65147,62],{"emptyLinePlaceholder":61},[34,65149,65150],{"class":36,"line":927},[34,65151,65152],{"class":40},"# Example\n",[34,65154,65155,65157,65159,65161,65163,65165,65167,65169,65171,65173,65175,65177,65179,65181,65183,65185,65187],{"class":36,"line":932},[34,65156,22310],{"class":181},[34,65158,1301],{"class":580},[34,65160,8315],{"class":181},[34,65162,8318],{"class":50},[34,65164,1798],{"class":181},[34,65166,8324],{"class":50},[34,65168,1798],{"class":181},[34,65170,8324],{"class":50},[34,65172,1798],{"class":181},[34,65174,8324],{"class":50},[34,65176,1798],{"class":181},[34,65178,3162],{"class":50},[34,65180,1798],{"class":181},[34,65182,18010],{"class":50},[34,65184,1798],{"class":181},[34,65186,2778],{"class":50},[34,65188,924],{"class":181},[34,65190,65191,65193,65196,65198,65201],{"class":36,"line":944},[34,65192,53417],{"class":50},[34,65194,65195],{"class":181},"(lower_bound(arr, ",[34,65197,8324],{"class":50},[34,65199,65200],{"class":181},"))          ",[34,65202,65203],{"class":40},"# → 1  (first 2 is at index 1)\n",[34,65205,65206,65208,65211,65213,65215],{"class":36,"line":966},[34,65207,53417],{"class":50},[34,65209,65210],{"class":181},"(upper_bound(arr, ",[34,65212,8324],{"class":50},[34,65214,65200],{"class":181},[34,65216,65217],{"class":40},"# → 4  (past last 2)\n",[34,65219,65220,65222,65225,65227,65229],{"class":36,"line":1948},[34,65221,53417],{"class":50},[34,65223,65224],{"class":181},"(count_occurrences(arr, ",[34,65226,8324],{"class":50},[34,65228,64085],{"class":181},[34,65230,65231],{"class":40},"# → 3  (three 2s)\n",[11,65233,65235],{"id":65234},"binary-search-on-the-answer","Binary Search on the Answer",[25,65237,65239],{"className":49386,"code":65238,"language":49388,"meta":30,"style":30},"# Binary search isn't just for arrays — search on any monotonic function\n# \"Find the minimum X such that condition(X) is True\"\n\ndef binary_search_answer(low: int, high: int, condition) -> int:\n    \"\"\"Find the minimum value in [low, high] where condition is True.\n    Requires: condition is False for all values before the answer,\n              and True for all values from the answer onwards.\n    \"\"\"\n    while low \u003C high:\n        mid = (low + high) // 2\n        if condition(mid):\n            high = mid      # mid might be the answer, don't exclude it\n        else:\n            low = mid + 1   # mid is too small, exclude it\n\n    return low  # low == high == answer\n\n\n# Example: Find minimum speed to eat n piles of bananas in h hours\ndef min_eating_speed(piles: list[int], h: int) -> int:\n    def can_eat_all(speed: int) -> bool:\n        # Total hours needed at this speed\n        hours = sum(-(-pile // speed) for pile in piles)  # Ceiling division\n        return hours \u003C= h\n\n    return binary_search_answer(1, max(piles), can_eat_all)\n\n\nprint(min_eating_speed([3, 6, 7, 11], 8))  # → 4\n",[20,65240,65241,65246,65251,65255,65278,65283,65288,65293,65298,65308,65324,65331,65343,65349,65364,65368,65377,65381,65385,65390,65413,65432,65437,65476,65488,65492,65508,65512,65516],{"__ignoreMap":30},[34,65242,65243],{"class":36,"line":37},[34,65244,65245],{"class":40},"# Binary search isn't just for arrays — search on any monotonic function\n",[34,65247,65248],{"class":36,"line":44},[34,65249,65250],{"class":40},"# \"Find the minimum X such that condition(X) is True\"\n",[34,65252,65253],{"class":36,"line":58},[34,65254,62],{"emptyLinePlaceholder":61},[34,65256,65257,65259,65262,65265,65267,65269,65271,65274,65276],{"class":36,"line":65},[34,65258,49400],{"class":580},[34,65260,65261],{"class":47}," binary_search_answer",[34,65263,65264],{"class":181},"(low: ",[34,65266,17772],{"class":50},[34,65268,63766],{"class":181},[34,65270,17772],{"class":50},[34,65272,65273],{"class":181},", condition) -> ",[34,65275,17772],{"class":50},[34,65277,193],{"class":181},[34,65279,65280],{"class":36,"line":71},[34,65281,65282],{"class":54},"    \"\"\"Find the minimum value in [low, high] where condition is True.\n",[34,65284,65285],{"class":36,"line":77},[34,65286,65287],{"class":54},"    Requires: condition is False for all values before the answer,\n",[34,65289,65290],{"class":36,"line":82},[34,65291,65292],{"class":54},"              and True for all values from the answer onwards.\n",[34,65294,65295],{"class":36,"line":88},[34,65296,65297],{"class":54},"    \"\"\"\n",[34,65299,65300,65302,65304,65306],{"class":36,"line":242},[34,65301,8098],{"class":580},[34,65303,63088],{"class":181},[34,65305,815],{"class":580},[34,65307,63625],{"class":181},[34,65309,65310,65312,65314,65316,65318,65320,65322],{"class":36,"line":250},[34,65311,63630],{"class":181},[34,65313,1301],{"class":580},[34,65315,63125],{"class":181},[34,65317,2940],{"class":580},[34,65319,63151],{"class":181},[34,65321,12754],{"class":580},[34,65323,9930],{"class":50},[34,65325,65326,65328],{"class":36,"line":263},[34,65327,49573],{"class":580},[34,65329,65330],{"class":181}," condition(mid):\n",[34,65332,65333,65335,65337,65340],{"class":36,"line":275},[34,65334,63709],{"class":181},[34,65336,1301],{"class":580},[34,65338,65339],{"class":181}," mid      ",[34,65341,65342],{"class":40},"# mid might be the answer, don't exclude it\n",[34,65344,65345,65347],{"class":36,"line":700},[34,65346,63702],{"class":580},[34,65348,193],{"class":181},[34,65350,65351,65353,65355,65357,65359,65361],{"class":36,"line":706},[34,65352,63686],{"class":181},[34,65354,1301],{"class":580},[34,65356,63211],{"class":181},[34,65358,2940],{"class":580},[34,65360,3567],{"class":50},[34,65362,65363],{"class":40},"   # mid is too small, exclude it\n",[34,65365,65366],{"class":36,"line":715},[34,65367,62],{"emptyLinePlaceholder":61},[34,65369,65370,65372,65374],{"class":36,"line":725},[34,65371,1564],{"class":580},[34,65373,64968],{"class":181},[34,65375,65376],{"class":40},"# low == high == answer\n",[34,65378,65379],{"class":36,"line":734},[34,65380,62],{"emptyLinePlaceholder":61},[34,65382,65383],{"class":36,"line":742},[34,65384,62],{"emptyLinePlaceholder":61},[34,65386,65387],{"class":36,"line":748},[34,65388,65389],{"class":40},"# Example: Find minimum speed to eat n piles of bananas in h hours\n",[34,65391,65392,65394,65397,65400,65402,65405,65407,65409,65411],{"class":36,"line":754},[34,65393,49400],{"class":580},[34,65395,65396],{"class":47}," min_eating_speed",[34,65398,65399],{"class":181},"(piles: list[",[34,65401,17772],{"class":50},[34,65403,65404],{"class":181},"], h: ",[34,65406,17772],{"class":50},[34,65408,63775],{"class":181},[34,65410,17772],{"class":50},[34,65412,193],{"class":181},[34,65414,65415,65418,65421,65424,65426,65428,65430],{"class":36,"line":759},[34,65416,65417],{"class":580},"    def",[34,65419,65420],{"class":47}," can_eat_all",[34,65422,65423],{"class":181},"(speed: ",[34,65425,17772],{"class":50},[34,65427,63775],{"class":181},[34,65429,32937],{"class":50},[34,65431,193],{"class":181},[34,65433,65434],{"class":36,"line":771},[34,65435,65436],{"class":40},"        # Total hours needed at this speed\n",[34,65438,65439,65442,65444,65447,65449,65451,65453,65455,65458,65460,65463,65465,65468,65470,65473],{"class":36,"line":794},[34,65440,65441],{"class":181},"        hours ",[34,65443,1301],{"class":580},[34,65445,65446],{"class":50}," sum",[34,65448,1607],{"class":181},[34,65450,22062],{"class":580},[34,65452,1607],{"class":181},[34,65454,22062],{"class":580},[34,65456,65457],{"class":181},"pile ",[34,65459,12754],{"class":580},[34,65461,65462],{"class":181}," speed) ",[34,65464,10246],{"class":580},[34,65466,65467],{"class":181}," pile ",[34,65469,10252],{"class":580},[34,65471,65472],{"class":181}," piles)  ",[34,65474,65475],{"class":40},"# Ceiling division\n",[34,65477,65478,65480,65483,65485],{"class":36,"line":824},[34,65479,13895],{"class":580},[34,65481,65482],{"class":181}," hours ",[34,65484,22032],{"class":580},[34,65486,65487],{"class":181}," h\n",[34,65489,65490],{"class":36,"line":830},[34,65491,62],{"emptyLinePlaceholder":61},[34,65493,65494,65496,65499,65501,65503,65505],{"class":36,"line":839},[34,65495,1564],{"class":580},[34,65497,65498],{"class":181}," binary_search_answer(",[34,65500,8318],{"class":50},[34,65502,1798],{"class":181},[34,65504,50086],{"class":50},[34,65506,65507],{"class":181},"(piles), can_eat_all)\n",[34,65509,65510],{"class":36,"line":854},[34,65511,62],{"emptyLinePlaceholder":61},[34,65513,65514],{"class":36,"line":860},[34,65515,62],{"emptyLinePlaceholder":61},[34,65517,65518,65520,65523,65525,65527,65529,65531,65533,65535,65538,65541,65543,65545],{"class":36,"line":865},[34,65519,53417],{"class":50},[34,65521,65522],{"class":181},"(min_eating_speed([",[34,65524,3162],{"class":50},[34,65526,1798],{"class":181},[34,65528,18019],{"class":50},[34,65530,1798],{"class":181},[34,65532,18028],{"class":50},[34,65534,1798],{"class":181},[34,65536,65537],{"class":50},"11",[34,65539,65540],{"class":181},"], ",[34,65542,18033],{"class":50},[34,65544,64113],{"class":181},[34,65546,65547],{"class":40},"# → 4\n",[11,65549,65551],{"id":65550},"common-mistakes","Common Mistakes",[25,65553,65556],{"className":65554,"code":65555,"language":780,"meta":30},[13703],"Mistake 1: Integer overflow in mid calculation\n  ❌  mid = (low + high) / 2       # Overflows if low+high > INT_MAX\n  ✅  mid = low + (high - low) / 2 # Safe in all languages\n\n  Note: Python integers don't overflow, but other languages do.\n\nMistake 2: Infinite loop from bad boundary update\n  ❌  high = mid     # Can loop forever when low == high\n  ✅  high = mid - 1 # Excludes mid when arr[mid] > target\n\nMistake 3: Off-by-one in loop condition\n  ❌  while (low \u003C high)    # May miss the last element\n  ✅  while (low \u003C= high)   # Include equal case\n\nMistake 4: Searching unsorted data\n  ❌  binarySearch([3, 1, 4, 1, 5], 4)  # Undefined behavior\n  ✅  Sort first, or use only on sorted input\n",[20,65557,65555],{"__ignoreMap":30},[11,65559,65561],{"id":65560},"binary-search-vs-linear-search","Binary Search vs Linear Search",[25,65563,65566],{"className":65564,"code":65565,"language":780,"meta":30},[13703],"Algorithm       | Time      | Space | Requirement\n----------------|-----------|-------|-------------\nLinear Search   | O(n)      | O(1)  | None — works on any array\nBinary Search   | O(log n)  | O(1)  | Array must be SORTED\n\nWhen to use Binary Search:\n  ✓ Array is already sorted (or worth sorting once for many searches)\n  ✓ Large datasets where O(n) is too slow\n  ✓ Finding insertion points or boundaries\n  ✓ \"Search on answer\" problems with monotonic conditions\n\nWhen to use Linear Search:\n  ✓ Small arrays (\u003C ~20 elements — overhead not worth it)\n  ✓ Unsorted data and you only search once\n  ✓ Linked lists (binary search requires random access)\n",[20,65567,65565],{"__ignoreMap":30},[388,65569,8431],{},{"title":30,"searchDepth":44,"depth":44,"links":65571},[65572,65573,65574,65575,65576,65577,65578,65579,65580,65581,65582],{"id":63010,"depth":44,"text":63011},{"id":45381,"depth":44,"text":45382},{"id":63035,"depth":44,"text":63036},{"id":53480,"depth":44,"text":52846},{"id":51999,"depth":44,"text":51994},{"id":52900,"depth":44,"text":52856},{"id":64118,"depth":44,"text":64119},{"id":64839,"depth":44,"text":64840},{"id":65234,"depth":44,"text":65235},{"id":65550,"depth":44,"text":65551},{"id":65560,"depth":44,"text":65561},"2026-02-22","Binary Search algorithm implementations, complexity analysis, and common patterns for searching sorted arrays and beyond.",{"category":49923,"featured":65586,"icon":65587},false,"\u003Csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\u003Ccircle cx=\"11\" cy=\"11\" r=\"8\">\u003C/circle>\u003Cline x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\">\u003C/line>\u003Cline x1=\"8\" y1=\"11\" x2=\"14\" y2=\"11\">\u003C/line>\u003Cline x1=\"11\" y1=\"8\" x2=\"11\" y2=\"14\">\u003C/line>\u003C/svg>","/examples/binary-search",{"title":63005,"description":65584},"examples/binary-search",[65592,65593,49923,65594,65595],"binary-search","searching","divide-and-conquer","sorted","nIxj1_2Cgo6-WxySzgjZcYWIoUP_ioEn_sIWEZx4Cm4",{"id":65598,"title":65599,"body":65600,"date":65583,"description":67881,"extension":404,"meta":67882,"navigation":61,"order":402,"path":67884,"seo":67885,"stem":67886,"subject":402,"tags":67887,"__hash__":67890},"topics/examples/breadth-first-search.md","Breadth-First Search",{"type":8,"value":65601,"toc":67871},[65602,65606,65612,65618,65620,65626,65628,65634,65636,65642,65646,65652,65654,66801,66803,67765,67769,67863,67869],[11,65603,65605],{"id":65604},"what-is-bfs","What is BFS?",[16,65607,65608,65609,65611],{},"Breadth-First Search (BFS) is a graph/tree traversal algorithm that explores all neighbors at the current depth before moving to nodes at the next depth level. It uses a ",[8471,65610,33666],{}," (FIFO) to track which nodes to visit next.",[25,65613,65616],{"className":65614,"code":65615,"language":780,"meta":30},[13703],"Key Idea: Visit ALL nodes at distance 1, then distance 2, then distance 3...\n",[20,65617,65615],{"__ignoreMap":30},[11,65619,45382],{"id":45381},[25,65621,65624],{"className":65622,"code":65623,"language":780,"meta":30},[13703],"Algorithm:\n  1. Start at the root/source node, mark it as visited\n  2. Add it to the queue\n  3. While the queue is not empty:\n     a. Dequeue the front node (current)\n     b. Process current\n     c. For each unvisited neighbor:\n        - Mark as visited\n        - Add to queue\n  4. Repeat until queue is empty\n\nData structure: Queue (FIFO — first in, first out)\n",[20,65625,65623],{"__ignoreMap":30},[11,65627,63036],{"id":63035},[25,65629,65632],{"className":65630,"code":65631,"language":780,"meta":30},[13703],"Graph:\n        A\n       / \\\n      B   C\n     / \\   \\\n    D   E   F\n\nBFS from A (level by level):\n\n  Queue: [A]          → Visit A     → Level 0: A\n  Queue: [B, C]       → Visit B     → Level 1: B, C\n  Queue: [C, D, E]    → Visit C\n  Queue: [D, E, F]    → Visit D     → Level 2: D, E, F\n  Queue: [E, F]       → Visit E\n  Queue: [F]          → Visit F\n  Queue: []           → Done\n\nTraversal order: A → B → C → D → E → F\n\nCompare to DFS (goes deep first):\n  DFS order:          A → B → D → E → C → F\n  BFS order:          A → B → C → D → E → F  ✓ level by level\n",[20,65633,65631],{"__ignoreMap":30},[11,65635,52846],{"id":53480},[25,65637,65640],{"className":65638,"code":65639,"language":780,"meta":30},[13703],"Time Complexity:   O(V + E)\n  - V = number of vertices (nodes)\n  - E = number of edges\n  - Each node and edge is visited at most once\n\nSpace Complexity:  O(V)\n  - Queue holds at most the entire \"frontier\" (widest level)\n  - In a balanced binary tree: O(V/2) ≈ O(V) at the last level\n\nBFS properties:\n  ✓ Guarantees shortest path in UNWEIGHTED graphs\n  ✓ Complete — always finds a solution if one exists\n  ✓ Optimal for fewest hops / minimum steps\n  ✗ Uses more memory than DFS (stores entire frontier)\n  ✗ Not suitable for weighted shortest path (use Dijkstra)\n",[20,65641,65639],{"__ignoreMap":30},[11,65643,65645],{"id":65644},"when-to-use-bfs","When to Use BFS",[25,65647,65650],{"className":65648,"code":65649,"language":780,"meta":30},[13703],"Use BFS when:\n  ✓ Finding the shortest path in an unweighted graph\n  ✓ Finding all nodes within a certain distance\n  ✓ Level-order traversal of a tree\n  ✓ Checking if a graph is bipartite\n  ✓ Finding connected components\n  ✓ Web crawling (exploring links layer by layer)\n  ✓ Social network \"degrees of separation\"\n  ✓ GPS — fewest turns/roads (unweighted)\n\nUse DFS instead when:\n  ✗ Detecting cycles\n  ✗ Topological sorting\n  ✗ Solving mazes (path existence, not shortest)\n  ✗ Memory is constrained (DFS uses O(depth) vs BFS O(width))\n\nUse Dijkstra instead when:\n  ✗ Graph has weighted edges and you need shortest path by weight\n",[20,65651,65649],{"__ignoreMap":30},[11,65653,64119],{"id":64118},[25,65655,65657],{"className":571,"code":65656,"language":573,"meta":30,"style":30},"// BFS on a graph (adjacency list)\nfunction bfs(graph: Map\u003Cstring, string[]>, start: string): string[] {\n  const visited = new Set\u003Cstring>();   // Track visited nodes\n  const queue: string[] = [start];    // FIFO queue\n  const order: string[] = [];         // Traversal result\n\n  visited.add(start);\n\n  while (queue.length > 0) {\n    const current = queue.shift()!;   // Dequeue front node\n    order.push(current);\n\n    for (const neighbor of graph.get(current) ?? []) {\n      if (!visited.has(neighbor)) {\n        visited.add(neighbor);        // Mark before enqueuing (prevents duplicates)\n        queue.push(neighbor);\n      }\n    }\n  }\n\n  return order;\n}\n\n// BFS shortest path — returns fewest hops from start to end\nfunction bfsShortestPath(\n  graph: Map\u003Cstring, string[]>,\n  start: string,\n  end: string\n): string[] | null {\n  if (start === end) return [start];\n\n  const visited = new Set\u003Cstring>();\n  const queue: Array\u003C{ node: string; path: string[] }> = [\n    { node: start, path: [start] },\n  ];\n  visited.add(start);\n\n  while (queue.length > 0) {\n    const { node: current, path } = queue.shift()!;\n\n    for (const neighbor of graph.get(current) ?? []) {\n      if (!visited.has(neighbor)) {\n        const newPath = [...path, neighbor];\n\n        if (neighbor === end) return newPath; // Found shortest path\n\n        visited.add(neighbor);\n        queue.push({ node: neighbor, path: newPath });\n      }\n    }\n  }\n\n  return null; // No path found\n}\n\n// BFS level-order tree traversal\ninterface TreeNode {\n  val: number;\n  left?: TreeNode;\n  right?: TreeNode;\n}\n\nfunction levelOrder(root: TreeNode | null): number[][] {\n  if (!root) return [];\n\n  const result: number[][] = [];\n  const queue: TreeNode[] = [root];\n\n  while (queue.length > 0) {\n    const levelSize = queue.length;   // Snapshot current level width\n    const level: number[] = [];\n\n    for (let i = 0; i \u003C levelSize; i++) {\n      const node = queue.shift()!;\n      level.push(node.val);\n\n      if (node.left) queue.push(node.left);   // Enqueue children\n      if (node.right) queue.push(node.right);\n    }\n\n    result.push(level); // Each inner array is one level\n  }\n\n  return result;\n}\n\n// Usage\nconst graph = new Map\u003Cstring, string[]>([\n  ['A', ['B', 'C']],\n  ['B', ['A', 'D', 'E']],\n  ['C', ['A', 'F']],\n  ['D', ['B']],\n  ['E', ['B']],\n  ['F', ['C']],\n]);\n\nconsole.log(bfs(graph, 'A'));\n// → ['A', 'B', 'C', 'D', 'E', 'F']\n\nconsole.log(bfsShortestPath(graph, 'D', 'F'));\n// → ['D', 'B', 'A', 'C', 'F']\n",[20,65658,65659,65664,65706,65728,65749,65770,65774,65784,65788,65803,65826,65835,65839,65863,65877,65890,65900,65904,65908,65912,65916,65923,65927,65931,65936,65945,65965,65976,65986,66002,66019,66023,66041,66076,66081,66086,66094,66098,66112,66142,66146,66168,66182,66199,66203,66222,66226,66234,66243,66247,66251,66255,66259,66270,66274,66278,66283,66292,66303,66314,66324,66328,66332,66361,66376,66380,66397,66414,66418,66432,66450,66467,66471,66496,66514,66524,66528,66543,66556,66561,66566,66580,66585,66590,66597,66602,66607,66612,66636,66656,66677,66695,66708,66721,66734,66739,66744,66762,66768,66773,66795],{"__ignoreMap":30},[34,65660,65661],{"class":36,"line":37},[34,65662,65663],{"class":40},"// BFS on a graph (adjacency list)\n",[34,65665,65666,65668,65671,65673,65675,65677,65680,65682,65684,65686,65688,65691,65693,65695,65697,65699,65701,65703],{"class":36,"line":44},[34,65667,11044],{"class":580},[34,65669,65670],{"class":47}," bfs",[34,65672,1607],{"class":181},[34,65674,49921],{"class":675},[34,65676,165],{"class":580},[34,65678,65679],{"class":47}," Map",[34,65681,815],{"class":181},[34,65683,30113],{"class":50},[34,65685,1798],{"class":181},[34,65687,30113],{"class":50},[34,65689,65690],{"class":181},"[]>, ",[34,65692,40502],{"class":675},[34,65694,165],{"class":580},[34,65696,680],{"class":50},[34,65698,1617],{"class":181},[34,65700,165],{"class":580},[34,65702,680],{"class":50},[34,65704,65705],{"class":181},"[] {\n",[34,65707,65708,65710,65712,65714,65716,65718,65720,65722,65725],{"class":36,"line":58},[34,65709,17415],{"class":580},[34,65711,52365],{"class":50},[34,65713,683],{"class":580},[34,65715,809],{"class":580},[34,65717,52372],{"class":47},[34,65719,815],{"class":181},[34,65721,30113],{"class":50},[34,65723,65724],{"class":181},">();   ",[34,65726,65727],{"class":40},"// Track visited nodes\n",[34,65729,65730,65732,65735,65737,65739,65741,65743,65746],{"class":36,"line":65},[34,65731,17415],{"class":580},[34,65733,65734],{"class":50}," queue",[34,65736,165],{"class":580},[34,65738,680],{"class":50},[34,65740,4063],{"class":181},[34,65742,1301],{"class":580},[34,65744,65745],{"class":181}," [start];    ",[34,65747,65748],{"class":40},"// FIFO queue\n",[34,65750,65751,65753,65756,65758,65760,65762,65764,65767],{"class":36,"line":71},[34,65752,17415],{"class":580},[34,65754,65755],{"class":50}," order",[34,65757,165],{"class":580},[34,65759,680],{"class":50},[34,65761,4063],{"class":181},[34,65763,1301],{"class":580},[34,65765,65766],{"class":181}," [];         ",[34,65768,65769],{"class":40},"// Traversal result\n",[34,65771,65772],{"class":36,"line":77},[34,65773,62],{"emptyLinePlaceholder":61},[34,65775,65776,65779,65781],{"class":36,"line":82},[34,65777,65778],{"class":181},"  visited.",[34,65780,11093],{"class":47},[34,65782,65783],{"class":181},"(start);\n",[34,65785,65786],{"class":36,"line":88},[34,65787,62],{"emptyLinePlaceholder":61},[34,65789,65790,65792,65795,65797,65799,65801],{"class":36,"line":242},[34,65791,52149],{"class":580},[34,65793,65794],{"class":181}," (queue.",[34,65796,2908],{"class":50},[34,65798,9009],{"class":580},[34,65800,8070],{"class":50},[34,65802,2416],{"class":181},[34,65804,65805,65807,65810,65812,65814,65817,65819,65821,65823],{"class":36,"line":250},[34,65806,1632],{"class":580},[34,65808,65809],{"class":50}," current",[34,65811,683],{"class":580},[34,65813,33706],{"class":181},[34,65815,65816],{"class":47},"shift",[34,65818,1546],{"class":181},[34,65820,10307],{"class":580},[34,65822,42619],{"class":181},[34,65824,65825],{"class":40},"// Dequeue front node\n",[34,65827,65828,65831,65833],{"class":36,"line":263},[34,65829,65830],{"class":181},"    order.",[34,65832,50165],{"class":47},[34,65834,51797],{"class":181},[34,65836,65837],{"class":36,"line":275},[34,65838,62],{"emptyLinePlaceholder":61},[34,65840,65841,65843,65845,65847,65850,65852,65854,65856,65858,65860],{"class":36,"line":700},[34,65842,18250],{"class":580},[34,65844,3204],{"class":181},[34,65846,14676],{"class":580},[34,65848,65849],{"class":50}," neighbor",[34,65851,14917],{"class":580},[34,65853,50056],{"class":181},[34,65855,1573],{"class":47},[34,65857,51883],{"class":181},[34,65859,34195],{"class":580},[34,65861,65862],{"class":181}," []) {\n",[34,65864,65865,65867,65869,65871,65873,65875],{"class":36,"line":706},[34,65866,52245],{"class":580},[34,65868,3204],{"class":181},[34,65870,10307],{"class":580},[34,65872,52492],{"class":181},[34,65874,52495],{"class":47},[34,65876,51908],{"class":181},[34,65878,65879,65882,65884,65887],{"class":36,"line":715},[34,65880,65881],{"class":181},"        visited.",[34,65883,11093],{"class":47},[34,65885,65886],{"class":181},"(neighbor);        ",[34,65888,65889],{"class":40},"// Mark before enqueuing (prevents duplicates)\n",[34,65891,65892,65895,65897],{"class":36,"line":725},[34,65893,65894],{"class":181},"        queue.",[34,65896,50165],{"class":47},[34,65898,65899],{"class":181},"(neighbor);\n",[34,65901,65902],{"class":36,"line":734},[34,65903,3078],{"class":181},[34,65905,65906],{"class":36,"line":742},[34,65907,3229],{"class":181},[34,65909,65910],{"class":36,"line":748},[34,65911,857],{"class":181},[34,65913,65914],{"class":36,"line":754},[34,65915,62],{"emptyLinePlaceholder":61},[34,65917,65918,65920],{"class":36,"line":759},[34,65919,8155],{"class":580},[34,65921,65922],{"class":181}," order;\n",[34,65924,65925],{"class":36,"line":771},[34,65926,693],{"class":181},[34,65928,65929],{"class":36,"line":794},[34,65930,62],{"emptyLinePlaceholder":61},[34,65932,65933],{"class":36,"line":824},[34,65934,65935],{"class":40},"// BFS shortest path — returns fewest hops from start to end\n",[34,65937,65938,65940,65943],{"class":36,"line":830},[34,65939,11044],{"class":580},[34,65941,65942],{"class":47}," bfsShortestPath",[34,65944,1882],{"class":181},[34,65946,65947,65950,65952,65954,65956,65958,65960,65962],{"class":36,"line":839},[34,65948,65949],{"class":675},"  graph",[34,65951,165],{"class":580},[34,65953,65679],{"class":47},[34,65955,815],{"class":181},[34,65957,30113],{"class":50},[34,65959,1798],{"class":181},[34,65961,30113],{"class":50},[34,65963,65964],{"class":181},"[]>,\n",[34,65966,65967,65970,65972,65974],{"class":36,"line":854},[34,65968,65969],{"class":675},"  start",[34,65971,165],{"class":580},[34,65973,680],{"class":50},[34,65975,624],{"class":181},[34,65977,65978,65981,65983],{"class":36,"line":860},[34,65979,65980],{"class":675},"  end",[34,65982,165],{"class":580},[34,65984,65985],{"class":50}," string\n",[34,65987,65988,65990,65992,65994,65996,65998,66000],{"class":36,"line":865},[34,65989,1617],{"class":181},[34,65991,165],{"class":580},[34,65993,680],{"class":50},[34,65995,4063],{"class":181},[34,65997,2670],{"class":580},[34,65999,13898],{"class":50},[34,66001,661],{"class":181},[34,66003,66004,66006,66009,66011,66014,66016],{"class":36,"line":870},[34,66005,8084],{"class":580},[34,66007,66008],{"class":181}," (start ",[34,66010,15543],{"class":580},[34,66012,66013],{"class":181}," end) ",[34,66015,2917],{"class":580},[34,66017,66018],{"class":181}," [start];\n",[34,66020,66021],{"class":36,"line":876},[34,66022,62],{"emptyLinePlaceholder":61},[34,66024,66025,66027,66029,66031,66033,66035,66037,66039],{"class":36,"line":885},[34,66026,17415],{"class":580},[34,66028,52365],{"class":50},[34,66030,683],{"class":580},[34,66032,809],{"class":580},[34,66034,52372],{"class":47},[34,66036,815],{"class":181},[34,66038,30113],{"class":50},[34,66040,821],{"class":181},[34,66042,66043,66045,66047,66049,66052,66055,66057,66059,66061,66063,66065,66067,66069,66072,66074],{"class":36,"line":895},[34,66044,17415],{"class":580},[34,66046,65734],{"class":50},[34,66048,165],{"class":580},[34,66050,66051],{"class":47}," Array",[34,66053,66054],{"class":181},"\u003C{ ",[34,66056,16004],{"class":675},[34,66058,165],{"class":580},[34,66060,680],{"class":50},[34,66062,10268],{"class":181},[34,66064,20404],{"class":675},[34,66066,165],{"class":580},[34,66068,680],{"class":50},[34,66070,66071],{"class":181},"[] }> ",[34,66073,1301],{"class":580},[34,66075,3304],{"class":181},[34,66077,66078],{"class":36,"line":904},[34,66079,66080],{"class":181},"    { node: start, path: [start] },\n",[34,66082,66083],{"class":36,"line":915},[34,66084,66085],{"class":181},"  ];\n",[34,66087,66088,66090,66092],{"class":36,"line":927},[34,66089,65778],{"class":181},[34,66091,11093],{"class":47},[34,66093,65783],{"class":181},[34,66095,66096],{"class":36,"line":932},[34,66097,62],{"emptyLinePlaceholder":61},[34,66099,66100,66102,66104,66106,66108,66110],{"class":36,"line":944},[34,66101,52149],{"class":580},[34,66103,65794],{"class":181},[34,66105,2908],{"class":50},[34,66107,9009],{"class":580},[34,66109,8070],{"class":50},[34,66111,2416],{"class":181},[34,66113,66114,66116,66118,66120,66122,66124,66126,66128,66130,66132,66134,66136,66138,66140],{"class":36,"line":966},[34,66115,1632],{"class":580},[34,66117,30251],{"class":181},[34,66119,16004],{"class":675},[34,66121,182],{"class":181},[34,66123,52173],{"class":50},[34,66125,1798],{"class":181},[34,66127,20404],{"class":50},[34,66129,34865],{"class":181},[34,66131,1301],{"class":580},[34,66133,33706],{"class":181},[34,66135,65816],{"class":47},[34,66137,1546],{"class":181},[34,66139,10307],{"class":580},[34,66141,593],{"class":181},[34,66143,66144],{"class":36,"line":1948},[34,66145,62],{"emptyLinePlaceholder":61},[34,66147,66148,66150,66152,66154,66156,66158,66160,66162,66164,66166],{"class":36,"line":1953},[34,66149,18250],{"class":580},[34,66151,3204],{"class":181},[34,66153,14676],{"class":580},[34,66155,65849],{"class":50},[34,66157,14917],{"class":580},[34,66159,50056],{"class":181},[34,66161,1573],{"class":47},[34,66163,51883],{"class":181},[34,66165,34195],{"class":580},[34,66167,65862],{"class":181},[34,66169,66170,66172,66174,66176,66178,66180],{"class":36,"line":3616},[34,66171,52245],{"class":580},[34,66173,3204],{"class":181},[34,66175,10307],{"class":580},[34,66177,52492],{"class":181},[34,66179,52495],{"class":47},[34,66181,51908],{"class":181},[34,66183,66184,66187,66190,66192,66194,66196],{"class":36,"line":3622},[34,66185,66186],{"class":580},"        const",[34,66188,66189],{"class":50}," newPath",[34,66191,683],{"class":580},[34,66193,8315],{"class":181},[34,66195,16841],{"class":580},[34,66197,66198],{"class":181},"path, neighbor];\n",[34,66200,66201],{"class":36,"line":3642},[34,66202,62],{"emptyLinePlaceholder":61},[34,66204,66205,66207,66210,66212,66214,66216,66219],{"class":36,"line":3657},[34,66206,49573],{"class":580},[34,66208,66209],{"class":181}," (neighbor ",[34,66211,15543],{"class":580},[34,66213,66013],{"class":181},[34,66215,2917],{"class":580},[34,66217,66218],{"class":181}," newPath; ",[34,66220,66221],{"class":40},"// Found shortest path\n",[34,66223,66224],{"class":36,"line":3663},[34,66225,62],{"emptyLinePlaceholder":61},[34,66227,66228,66230,66232],{"class":36,"line":3669},[34,66229,65881],{"class":181},[34,66231,11093],{"class":47},[34,66233,65899],{"class":181},[34,66235,66236,66238,66240],{"class":36,"line":3675},[34,66237,65894],{"class":181},[34,66239,50165],{"class":47},[34,66241,66242],{"class":181},"({ node: neighbor, path: newPath });\n",[34,66244,66245],{"class":36,"line":3693},[34,66246,3078],{"class":181},[34,66248,66249],{"class":36,"line":3707},[34,66250,3229],{"class":181},[34,66252,66253],{"class":36,"line":3712},[34,66254,857],{"class":181},[34,66256,66257],{"class":36,"line":3717},[34,66258,62],{"emptyLinePlaceholder":61},[34,66260,66261,66263,66265,66267],{"class":36,"line":25776},[34,66262,8155],{"class":580},[34,66264,13898],{"class":50},[34,66266,10268],{"class":181},[34,66268,66269],{"class":40},"// No path found\n",[34,66271,66272],{"class":36,"line":49902},[34,66273,693],{"class":181},[34,66275,66276],{"class":36,"line":52569},[34,66277,62],{"emptyLinePlaceholder":61},[34,66279,66280],{"class":36,"line":52574},[34,66281,66282],{"class":40},"// BFS level-order tree traversal\n",[34,66284,66285,66287,66290],{"class":36,"line":52580},[34,66286,17562],{"class":580},[34,66288,66289],{"class":47}," TreeNode",[34,66291,661],{"class":181},[34,66293,66294,66297,66299,66301],{"class":36,"line":52608},[34,66295,66296],{"class":675},"  val",[34,66298,165],{"class":580},[34,66300,2741],{"class":50},[34,66302,593],{"class":181},[34,66304,66305,66307,66310,66312],{"class":36,"line":52625},[34,66306,41104],{"class":675},[34,66308,66309],{"class":580},"?:",[34,66311,66289],{"class":47},[34,66313,593],{"class":181},[34,66315,66316,66318,66320,66322],{"class":36,"line":52636},[34,66317,41082],{"class":675},[34,66319,66309],{"class":580},[34,66321,66289],{"class":47},[34,66323,593],{"class":181},[34,66325,66326],{"class":36,"line":52645},[34,66327,693],{"class":181},[34,66329,66330],{"class":36,"line":52650},[34,66331,62],{"emptyLinePlaceholder":61},[34,66333,66334,66336,66339,66341,66344,66346,66348,66350,66352,66354,66356,66358],{"class":36,"line":52655},[34,66335,11044],{"class":580},[34,66337,66338],{"class":47}," levelOrder",[34,66340,1607],{"class":181},[34,66342,66343],{"class":675},"root",[34,66345,165],{"class":580},[34,66347,66289],{"class":47},[34,66349,7197],{"class":580},[34,66351,13898],{"class":50},[34,66353,1617],{"class":181},[34,66355,165],{"class":580},[34,66357,2741],{"class":50},[34,66359,66360],{"class":181},"[][] {\n",[34,66362,66363,66365,66367,66369,66372,66374],{"class":36,"line":52660},[34,66364,8084],{"class":580},[34,66366,3204],{"class":181},[34,66368,10307],{"class":580},[34,66370,66371],{"class":181},"root) ",[34,66373,2917],{"class":580},[34,66375,4068],{"class":181},[34,66377,66378],{"class":36,"line":52665},[34,66379,62],{"emptyLinePlaceholder":61},[34,66381,66382,66384,66386,66388,66390,66393,66395],{"class":36,"line":52672},[34,66383,17415],{"class":580},[34,66385,11103],{"class":50},[34,66387,165],{"class":580},[34,66389,2741],{"class":50},[34,66391,66392],{"class":181},"[][] ",[34,66394,1301],{"class":580},[34,66396,4068],{"class":181},[34,66398,66399,66401,66403,66405,66407,66409,66411],{"class":36,"line":52677},[34,66400,17415],{"class":580},[34,66402,65734],{"class":50},[34,66404,165],{"class":580},[34,66406,66289],{"class":47},[34,66408,4063],{"class":181},[34,66410,1301],{"class":580},[34,66412,66413],{"class":181}," [root];\n",[34,66415,66416],{"class":36,"line":52682},[34,66417,62],{"emptyLinePlaceholder":61},[34,66419,66420,66422,66424,66426,66428,66430],{"class":36,"line":52687},[34,66421,52149],{"class":580},[34,66423,65794],{"class":181},[34,66425,2908],{"class":50},[34,66427,9009],{"class":580},[34,66429,8070],{"class":50},[34,66431,2416],{"class":181},[34,66433,66434,66436,66439,66441,66443,66445,66447],{"class":36,"line":52698},[34,66435,1632],{"class":580},[34,66437,66438],{"class":50}," levelSize",[34,66440,683],{"class":580},[34,66442,33706],{"class":181},[34,66444,2908],{"class":50},[34,66446,42619],{"class":181},[34,66448,66449],{"class":40},"// Snapshot current level width\n",[34,66451,66452,66454,66457,66459,66461,66463,66465],{"class":36,"line":52713},[34,66453,1632],{"class":580},[34,66455,66456],{"class":50}," level",[34,66458,165],{"class":580},[34,66460,2741],{"class":50},[34,66462,4063],{"class":181},[34,66464,1301],{"class":580},[34,66466,4068],{"class":181},[34,66468,66469],{"class":36,"line":52732},[34,66470,62],{"emptyLinePlaceholder":61},[34,66472,66473,66475,66477,66479,66481,66483,66485,66487,66489,66492,66494],{"class":36,"line":52756},[34,66474,18250],{"class":580},[34,66476,3204],{"class":181},[34,66478,8268],{"class":580},[34,66480,10300],{"class":181},[34,66482,1301],{"class":580},[34,66484,8070],{"class":50},[34,66486,18263],{"class":181},[34,66488,815],{"class":580},[34,66490,66491],{"class":181}," levelSize; i",[34,66493,11928],{"class":580},[34,66495,2416],{"class":181},[34,66497,66498,66500,66502,66504,66506,66508,66510,66512],{"class":36,"line":52774},[34,66499,52225],{"class":580},[34,66501,52476],{"class":50},[34,66503,683],{"class":580},[34,66505,33706],{"class":181},[34,66507,65816],{"class":47},[34,66509,1546],{"class":181},[34,66511,10307],{"class":580},[34,66513,593],{"class":181},[34,66515,66516,66519,66521],{"class":36,"line":52789},[34,66517,66518],{"class":181},"      level.",[34,66520,50165],{"class":47},[34,66522,66523],{"class":181},"(node.val);\n",[34,66525,66526],{"class":36,"line":52794},[34,66527,62],{"emptyLinePlaceholder":61},[34,66529,66530,66532,66535,66537,66540],{"class":36,"line":52799},[34,66531,52245],{"class":580},[34,66533,66534],{"class":181}," (node.left) queue.",[34,66536,50165],{"class":47},[34,66538,66539],{"class":181},"(node.left);   ",[34,66541,66542],{"class":40},"// Enqueue children\n",[34,66544,66546,66548,66551,66553],{"class":36,"line":66545},78,[34,66547,52245],{"class":580},[34,66549,66550],{"class":181}," (node.right) queue.",[34,66552,50165],{"class":47},[34,66554,66555],{"class":181},"(node.right);\n",[34,66557,66559],{"class":36,"line":66558},79,[34,66560,3229],{"class":181},[34,66562,66564],{"class":36,"line":66563},80,[34,66565,62],{"emptyLinePlaceholder":61},[34,66567,66569,66572,66574,66577],{"class":36,"line":66568},81,[34,66570,66571],{"class":181},"    result.",[34,66573,50165],{"class":47},[34,66575,66576],{"class":181},"(level); ",[34,66578,66579],{"class":40},"// Each inner array is one level\n",[34,66581,66583],{"class":36,"line":66582},82,[34,66584,857],{"class":181},[34,66586,66588],{"class":36,"line":66587},83,[34,66589,62],{"emptyLinePlaceholder":61},[34,66591,66593,66595],{"class":36,"line":66592},84,[34,66594,8155],{"class":580},[34,66596,19480],{"class":181},[34,66598,66600],{"class":36,"line":66599},85,[34,66601,693],{"class":181},[34,66603,66605],{"class":36,"line":66604},86,[34,66606,62],{"emptyLinePlaceholder":61},[34,66608,66610],{"class":36,"line":66609},87,[34,66611,1113],{"class":40},[34,66613,66615,66617,66619,66621,66623,66625,66627,66629,66631,66633],{"class":36,"line":66614},88,[34,66616,14676],{"class":580},[34,66618,50037],{"class":50},[34,66620,683],{"class":580},[34,66622,809],{"class":580},[34,66624,65679],{"class":47},[34,66626,815],{"class":181},[34,66628,30113],{"class":50},[34,66630,1798],{"class":181},[34,66632,30113],{"class":50},[34,66634,66635],{"class":181},"[]>([\n",[34,66637,66639,66642,66644,66647,66649,66651,66653],{"class":36,"line":66638},89,[34,66640,66641],{"class":181},"  [",[34,66643,21516],{"class":54},[34,66645,66646],{"class":181},", [",[34,66648,50700],{"class":54},[34,66650,1798],{"class":181},[34,66652,50709],{"class":54},[34,66654,66655],{"class":181},"]],\n",[34,66657,66659,66661,66663,66665,66667,66669,66671,66673,66675],{"class":36,"line":66658},90,[34,66660,66641],{"class":181},[34,66662,50700],{"class":54},[34,66664,66646],{"class":181},[34,66666,21516],{"class":54},[34,66668,1798],{"class":181},[34,66670,50733],{"class":54},[34,66672,1798],{"class":181},[34,66674,53331],{"class":54},[34,66676,66655],{"class":181},[34,66678,66680,66682,66684,66686,66688,66690,66693],{"class":36,"line":66679},91,[34,66681,66641],{"class":181},[34,66683,50709],{"class":54},[34,66685,66646],{"class":181},[34,66687,21516],{"class":54},[34,66689,1798],{"class":181},[34,66691,66692],{"class":54},"'F'",[34,66694,66655],{"class":181},[34,66696,66698,66700,66702,66704,66706],{"class":36,"line":66697},92,[34,66699,66641],{"class":181},[34,66701,50733],{"class":54},[34,66703,66646],{"class":181},[34,66705,50700],{"class":54},[34,66707,66655],{"class":181},[34,66709,66711,66713,66715,66717,66719],{"class":36,"line":66710},93,[34,66712,66641],{"class":181},[34,66714,53331],{"class":54},[34,66716,66646],{"class":181},[34,66718,50700],{"class":54},[34,66720,66655],{"class":181},[34,66722,66724,66726,66728,66730,66732],{"class":36,"line":66723},94,[34,66725,66641],{"class":181},[34,66727,66692],{"class":54},[34,66729,66646],{"class":181},[34,66731,50709],{"class":54},[34,66733,66655],{"class":181},[34,66735,66737],{"class":36,"line":66736},95,[34,66738,3599],{"class":181},[34,66740,66742],{"class":36,"line":66741},96,[34,66743,62],{"emptyLinePlaceholder":61},[34,66745,66747,66749,66751,66753,66756,66758,66760],{"class":36,"line":66746},97,[34,66748,15183],{"class":181},[34,66750,2424],{"class":47},[34,66752,1607],{"class":181},[34,66754,66755],{"class":47},"bfs",[34,66757,50585],{"class":181},[34,66759,21516],{"class":54},[34,66761,15223],{"class":181},[34,66763,66765],{"class":36,"line":66764},98,[34,66766,66767],{"class":40},"// → ['A', 'B', 'C', 'D', 'E', 'F']\n",[34,66769,66771],{"class":36,"line":66770},99,[34,66772,62],{"emptyLinePlaceholder":61},[34,66774,66776,66778,66780,66782,66785,66787,66789,66791,66793],{"class":36,"line":66775},100,[34,66777,15183],{"class":181},[34,66779,2424],{"class":47},[34,66781,1607],{"class":181},[34,66783,66784],{"class":47},"bfsShortestPath",[34,66786,50585],{"class":181},[34,66788,50733],{"class":54},[34,66790,1798],{"class":181},[34,66792,66692],{"class":54},[34,66794,15223],{"class":181},[34,66796,66798],{"class":36,"line":66797},101,[34,66799,66800],{"class":40},"// → ['D', 'B', 'A', 'C', 'F']\n",[11,66802,52856],{"id":52900},[25,66804,66806],{"className":49386,"code":66805,"language":49388,"meta":30,"style":30},"from collections import deque  # Efficient O(1) popleft\n\ndef bfs(graph: dict[str, list[str]], start: str) -> list[str]:\n    \"\"\"Traverse graph using BFS, return visit order.\"\"\"\n    visited = {start}           # Set for O(1) lookup\n    queue = deque([start])      # deque is faster than list for queue ops\n    order = []\n\n    while queue:\n        current = queue.popleft()   # O(1) dequeue from front\n        order.append(current)\n\n        for neighbor in graph[current]:\n            if neighbor not in visited:\n                visited.add(neighbor)   # Mark before enqueuing\n                queue.append(neighbor)\n\n    return order\n\n\ndef bfs_shortest_path(\n    graph: dict[str, list[str]], start: str, end: str\n) -> list[str] | None:\n    \"\"\"Return shortest path (fewest hops) from start to end.\"\"\"\n    if start == end:\n        return [start]\n\n    visited = {start}\n    queue = deque([[start]])        # Queue of paths, not just nodes\n\n    while queue:\n        path = queue.popleft()\n        current = path[-1]          # Last node in current path\n\n        for neighbor in graph[current]:\n            if neighbor not in visited:\n                new_path = path + [neighbor]\n\n                if neighbor == end:\n                    return new_path  # First time we reach end = shortest\n\n                visited.add(neighbor)\n                queue.append(new_path)\n\n    return None  # No path found\n\n\ndef bfs_levels(graph: dict[str, list[str]], start: str) -> list[list[str]]:\n    \"\"\"Return nodes grouped by their distance from start.\"\"\"\n    visited = {start}\n    queue = deque([(start, 0)])     # (node, depth)\n    levels: list[list[str]] = []\n\n    while queue:\n        node, depth = queue.popleft()\n\n        # Extend levels list if needed\n        if depth == len(levels):\n            levels.append([])\n\n        levels[depth].append(node)\n\n        for neighbor in graph[node]:\n            if neighbor not in visited:\n                visited.add(neighbor)\n                queue.append((neighbor, depth + 1))\n\n    return levels\n\n\ndef bfs_connected_components(graph: dict[str, list[str]]) -> list[list[str]]:\n    \"\"\"Find all connected components in an undirected graph.\"\"\"\n    visited = set()\n    components = []\n\n    for node in graph:\n        if node not in visited:\n            # BFS from each unvisited node discovers a new component\n            component = []\n            queue = deque([node])\n            visited.add(node)\n\n            while queue:\n                current = queue.popleft()\n                component.append(current)\n\n                for neighbor in graph[current]:\n                    if neighbor not in visited:\n                        visited.add(neighbor)\n                        queue.append(neighbor)\n\n            components.append(component)\n\n    return components\n\n\n# Usage\ngraph = {\n    'A': ['B', 'C'],\n    'B': ['A', 'D', 'E'],\n    'C': ['A', 'F'],\n    'D': ['B'],\n    'E': ['B'],\n    'F': ['C'],\n}\n\nprint(bfs(graph, 'A'))\n# → ['A', 'B', 'C', 'D', 'E', 'F']\n\nprint(bfs_shortest_path(graph, 'D', 'F'))\n# → ['D', 'B', 'A', 'C', 'F']\n\nprint(bfs_levels(graph, 'A'))\n# → [['A'], ['B', 'C'], ['D', 'E', 'F']]\n",[20,66807,66808,66822,66826,66855,66860,66872,66885,66894,66898,66905,66917,66922,66926,66938,66950,66958,66963,66967,66974,66978,66982,66991,67012,67026,67031,67043,67050,67054,67063,67075,67079,67085,67095,67114,67118,67128,67140,67155,67159,67169,67180,67184,67189,67194,67198,67207,67211,67215,67242,67247,67255,67272,67286,67290,67296,67305,67309,67314,67328,67333,67337,67342,67346,67357,67369,67373,67384,67388,67395,67399,67403,67425,67430,67440,67449,67453,67463,67475,67480,67489,67499,67504,67508,67515,67524,67529,67533,67544,67557,67562,67567,67571,67576,67580,67587,67591,67595,67599,67607,67621,67639,67653,67664,67675,67687,67692,67697,67709,67715,67720,67736,67742,67747,67759],{"__ignoreMap":30},[34,66809,66810,66812,66814,66816,66819],{"class":36,"line":37},[34,66811,587],{"class":580},[34,66813,52919],{"class":181},[34,66815,581],{"class":580},[34,66817,66818],{"class":181}," deque  ",[34,66820,66821],{"class":40},"# Efficient O(1) popleft\n",[34,66823,66824],{"class":36,"line":44},[34,66825,62],{"emptyLinePlaceholder":61},[34,66827,66828,66830,66832,66835,66837,66840,66842,66845,66847,66850,66852],{"class":36,"line":58},[34,66829,49400],{"class":580},[34,66831,65670],{"class":47},[34,66833,66834],{"class":181},"(graph: dict[",[34,66836,12646],{"class":50},[34,66838,66839],{"class":181},", list[",[34,66841,12646],{"class":50},[34,66843,66844],{"class":181},"]], start: ",[34,66846,12646],{"class":50},[34,66848,66849],{"class":181},") -> list[",[34,66851,12646],{"class":50},[34,66853,66854],{"class":181},"]:\n",[34,66856,66857],{"class":36,"line":65},[34,66858,66859],{"class":54},"    \"\"\"Traverse graph using BFS, return visit order.\"\"\"\n",[34,66861,66862,66864,66866,66869],{"class":36,"line":71},[34,66863,51125],{"class":181},[34,66865,1301],{"class":580},[34,66867,66868],{"class":181}," {start}           ",[34,66870,66871],{"class":40},"# Set for O(1) lookup\n",[34,66873,66874,66877,66879,66882],{"class":36,"line":77},[34,66875,66876],{"class":181},"    queue ",[34,66878,1301],{"class":580},[34,66880,66881],{"class":181}," deque([start])      ",[34,66883,66884],{"class":40},"# deque is faster than list for queue ops\n",[34,66886,66887,66890,66892],{"class":36,"line":82},[34,66888,66889],{"class":181},"    order ",[34,66891,1301],{"class":580},[34,66893,53166],{"class":181},[34,66895,66896],{"class":36,"line":88},[34,66897,62],{"emptyLinePlaceholder":61},[34,66899,66900,66902],{"class":36,"line":242},[34,66901,8098],{"class":580},[34,66903,66904],{"class":181}," queue:\n",[34,66906,66907,66909,66911,66914],{"class":36,"line":250},[34,66908,53206],{"class":181},[34,66910,1301],{"class":580},[34,66912,66913],{"class":181}," queue.popleft()   ",[34,66915,66916],{"class":40},"# O(1) dequeue from front\n",[34,66918,66919],{"class":36,"line":263},[34,66920,66921],{"class":181},"        order.append(current)\n",[34,66923,66924],{"class":36,"line":275},[34,66925,62],{"emptyLinePlaceholder":61},[34,66927,66928,66930,66933,66935],{"class":36,"line":700},[34,66929,50247],{"class":580},[34,66931,66932],{"class":181}," neighbor ",[34,66934,10252],{"class":580},[34,66936,66937],{"class":181}," graph[current]:\n",[34,66939,66940,66942,66944,66946,66948],{"class":36,"line":706},[34,66941,49591],{"class":580},[34,66943,66932],{"class":181},[34,66945,51035],{"class":580},[34,66947,36375],{"class":580},[34,66949,51168],{"class":181},[34,66951,66952,66955],{"class":36,"line":715},[34,66953,66954],{"class":181},"                visited.add(neighbor)   ",[34,66956,66957],{"class":40},"# Mark before enqueuing\n",[34,66959,66960],{"class":36,"line":725},[34,66961,66962],{"class":181},"                queue.append(neighbor)\n",[34,66964,66965],{"class":36,"line":734},[34,66966,62],{"emptyLinePlaceholder":61},[34,66968,66969,66971],{"class":36,"line":742},[34,66970,1564],{"class":580},[34,66972,66973],{"class":181}," order\n",[34,66975,66976],{"class":36,"line":748},[34,66977,62],{"emptyLinePlaceholder":61},[34,66979,66980],{"class":36,"line":754},[34,66981,62],{"emptyLinePlaceholder":61},[34,66983,66984,66986,66989],{"class":36,"line":759},[34,66985,49400],{"class":580},[34,66987,66988],{"class":47}," bfs_shortest_path",[34,66990,1882],{"class":181},[34,66992,66993,66996,66998,67000,67002,67004,67006,67009],{"class":36,"line":771},[34,66994,66995],{"class":181},"    graph: dict[",[34,66997,12646],{"class":50},[34,66999,66839],{"class":181},[34,67001,12646],{"class":50},[34,67003,66844],{"class":181},[34,67005,12646],{"class":50},[34,67007,67008],{"class":181},", end: ",[34,67010,67011],{"class":50},"str\n",[34,67013,67014,67016,67018,67020,67022,67024],{"class":36,"line":794},[34,67015,66849],{"class":181},[34,67017,12646],{"class":50},[34,67019,17799],{"class":181},[34,67021,2670],{"class":580},[34,67023,53194],{"class":50},[34,67025,193],{"class":181},[34,67027,67028],{"class":36,"line":824},[34,67029,67030],{"class":54},"    \"\"\"Return shortest path (fewest hops) from start to end.\"\"\"\n",[34,67032,67033,67035,67038,67040],{"class":36,"line":830},[34,67034,2902],{"class":580},[34,67036,67037],{"class":181}," start ",[34,67039,18168],{"class":580},[34,67041,67042],{"class":181}," end:\n",[34,67044,67045,67047],{"class":36,"line":839},[34,67046,13895],{"class":580},[34,67048,67049],{"class":181}," [start]\n",[34,67051,67052],{"class":36,"line":854},[34,67053,62],{"emptyLinePlaceholder":61},[34,67055,67056,67058,67060],{"class":36,"line":860},[34,67057,51125],{"class":181},[34,67059,1301],{"class":580},[34,67061,67062],{"class":181}," {start}\n",[34,67064,67065,67067,67069,67072],{"class":36,"line":865},[34,67066,66876],{"class":181},[34,67068,1301],{"class":580},[34,67070,67071],{"class":181}," deque([[start]])        ",[34,67073,67074],{"class":40},"# Queue of paths, not just nodes\n",[34,67076,67077],{"class":36,"line":870},[34,67078,62],{"emptyLinePlaceholder":61},[34,67080,67081,67083],{"class":36,"line":876},[34,67082,8098],{"class":580},[34,67084,66904],{"class":181},[34,67086,67087,67090,67092],{"class":36,"line":885},[34,67088,67089],{"class":181},"        path ",[34,67091,1301],{"class":580},[34,67093,67094],{"class":181}," queue.popleft()\n",[34,67096,67097,67099,67101,67104,67106,67108,67111],{"class":36,"line":895},[34,67098,53206],{"class":181},[34,67100,1301],{"class":580},[34,67102,67103],{"class":181}," path[",[34,67105,22062],{"class":580},[34,67107,8318],{"class":50},[34,67109,67110],{"class":181},"]          ",[34,67112,67113],{"class":40},"# Last node in current path\n",[34,67115,67116],{"class":36,"line":904},[34,67117,62],{"emptyLinePlaceholder":61},[34,67119,67120,67122,67124,67126],{"class":36,"line":915},[34,67121,50247],{"class":580},[34,67123,66932],{"class":181},[34,67125,10252],{"class":580},[34,67127,66937],{"class":181},[34,67129,67130,67132,67134,67136,67138],{"class":36,"line":927},[34,67131,49591],{"class":580},[34,67133,66932],{"class":181},[34,67135,51035],{"class":580},[34,67137,36375],{"class":580},[34,67139,51168],{"class":181},[34,67141,67142,67145,67147,67150,67152],{"class":36,"line":932},[34,67143,67144],{"class":181},"                new_path ",[34,67146,1301],{"class":580},[34,67148,67149],{"class":181}," path ",[34,67151,2940],{"class":580},[34,67153,67154],{"class":181}," [neighbor]\n",[34,67156,67157],{"class":36,"line":944},[34,67158,62],{"emptyLinePlaceholder":61},[34,67160,67161,67163,67165,67167],{"class":36,"line":966},[34,67162,49645],{"class":580},[34,67164,66932],{"class":181},[34,67166,18168],{"class":580},[34,67168,67042],{"class":181},[34,67170,67171,67174,67177],{"class":36,"line":1948},[34,67172,67173],{"class":580},"                    return",[34,67175,67176],{"class":181}," new_path  ",[34,67178,67179],{"class":40},"# First time we reach end = shortest\n",[34,67181,67182],{"class":36,"line":1953},[34,67183,62],{"emptyLinePlaceholder":61},[34,67185,67186],{"class":36,"line":3616},[34,67187,67188],{"class":181},"                visited.add(neighbor)\n",[34,67190,67191],{"class":36,"line":3622},[34,67192,67193],{"class":181},"                queue.append(new_path)\n",[34,67195,67196],{"class":36,"line":3642},[34,67197,62],{"emptyLinePlaceholder":61},[34,67199,67200,67202,67204],{"class":36,"line":3657},[34,67201,1564],{"class":580},[34,67203,53194],{"class":50},[34,67205,67206],{"class":40},"  # No path found\n",[34,67208,67209],{"class":36,"line":3663},[34,67210,62],{"emptyLinePlaceholder":61},[34,67212,67213],{"class":36,"line":3669},[34,67214,62],{"emptyLinePlaceholder":61},[34,67216,67217,67219,67222,67224,67226,67228,67230,67232,67234,67237,67239],{"class":36,"line":3675},[34,67218,49400],{"class":580},[34,67220,67221],{"class":47}," bfs_levels",[34,67223,66834],{"class":181},[34,67225,12646],{"class":50},[34,67227,66839],{"class":181},[34,67229,12646],{"class":50},[34,67231,66844],{"class":181},[34,67233,12646],{"class":50},[34,67235,67236],{"class":181},") -> list[list[",[34,67238,12646],{"class":50},[34,67240,67241],{"class":181},"]]:\n",[34,67243,67244],{"class":36,"line":3693},[34,67245,67246],{"class":54},"    \"\"\"Return nodes grouped by their distance from start.\"\"\"\n",[34,67248,67249,67251,67253],{"class":36,"line":3707},[34,67250,51125],{"class":181},[34,67252,1301],{"class":580},[34,67254,67062],{"class":181},[34,67256,67257,67259,67261,67264,67266,67269],{"class":36,"line":3712},[34,67258,66876],{"class":181},[34,67260,1301],{"class":580},[34,67262,67263],{"class":181}," deque([(start, ",[34,67265,2773],{"class":50},[34,67267,67268],{"class":181},")])     ",[34,67270,67271],{"class":40},"# (node, depth)\n",[34,67273,67274,67277,67279,67282,67284],{"class":36,"line":3717},[34,67275,67276],{"class":181},"    levels: list[list[",[34,67278,12646],{"class":50},[34,67280,67281],{"class":181},"]] ",[34,67283,1301],{"class":580},[34,67285,53166],{"class":181},[34,67287,67288],{"class":36,"line":25776},[34,67289,62],{"emptyLinePlaceholder":61},[34,67291,67292,67294],{"class":36,"line":49902},[34,67293,8098],{"class":580},[34,67295,66904],{"class":181},[34,67297,67298,67301,67303],{"class":36,"line":52569},[34,67299,67300],{"class":181},"        node, depth ",[34,67302,1301],{"class":580},[34,67304,67094],{"class":181},[34,67306,67307],{"class":36,"line":52574},[34,67308,62],{"emptyLinePlaceholder":61},[34,67310,67311],{"class":36,"line":52580},[34,67312,67313],{"class":40},"        # Extend levels list if needed\n",[34,67315,67316,67318,67321,67323,67325],{"class":36,"line":52608},[34,67317,49573],{"class":580},[34,67319,67320],{"class":181}," depth ",[34,67322,18168],{"class":580},[34,67324,21152],{"class":50},[34,67326,67327],{"class":181},"(levels):\n",[34,67329,67330],{"class":36,"line":52625},[34,67331,67332],{"class":181},"            levels.append([])\n",[34,67334,67335],{"class":36,"line":52636},[34,67336,62],{"emptyLinePlaceholder":61},[34,67338,67339],{"class":36,"line":52645},[34,67340,67341],{"class":181},"        levels[depth].append(node)\n",[34,67343,67344],{"class":36,"line":52650},[34,67345,62],{"emptyLinePlaceholder":61},[34,67347,67348,67350,67352,67354],{"class":36,"line":52655},[34,67349,50247],{"class":580},[34,67351,66932],{"class":181},[34,67353,10252],{"class":580},[34,67355,67356],{"class":181}," graph[node]:\n",[34,67358,67359,67361,67363,67365,67367],{"class":36,"line":52660},[34,67360,49591],{"class":580},[34,67362,66932],{"class":181},[34,67364,51035],{"class":580},[34,67366,36375],{"class":580},[34,67368,51168],{"class":181},[34,67370,67371],{"class":36,"line":52665},[34,67372,67188],{"class":181},[34,67374,67375,67378,67380,67382],{"class":36,"line":52672},[34,67376,67377],{"class":181},"                queue.append((neighbor, depth ",[34,67379,2940],{"class":580},[34,67381,3567],{"class":50},[34,67383,11119],{"class":181},[34,67385,67386],{"class":36,"line":52677},[34,67387,62],{"emptyLinePlaceholder":61},[34,67389,67390,67392],{"class":36,"line":52682},[34,67391,1564],{"class":580},[34,67393,67394],{"class":181}," levels\n",[34,67396,67397],{"class":36,"line":52687},[34,67398,62],{"emptyLinePlaceholder":61},[34,67400,67401],{"class":36,"line":52698},[34,67402,62],{"emptyLinePlaceholder":61},[34,67404,67405,67407,67410,67412,67414,67416,67418,67421,67423],{"class":36,"line":52713},[34,67406,49400],{"class":580},[34,67408,67409],{"class":47}," bfs_connected_components",[34,67411,66834],{"class":181},[34,67413,12646],{"class":50},[34,67415,66839],{"class":181},[34,67417,12646],{"class":50},[34,67419,67420],{"class":181},"]]) -> list[list[",[34,67422,12646],{"class":50},[34,67424,67241],{"class":181},[34,67426,67427],{"class":36,"line":52732},[34,67428,67429],{"class":54},"    \"\"\"Find all connected components in an undirected graph.\"\"\"\n",[34,67431,67432,67434,67436,67438],{"class":36,"line":52756},[34,67433,51125],{"class":181},[34,67435,1301],{"class":580},[34,67437,9481],{"class":50},[34,67439,33899],{"class":181},[34,67441,67442,67445,67447],{"class":36,"line":52774},[34,67443,67444],{"class":181},"    components ",[34,67446,1301],{"class":580},[34,67448,53166],{"class":181},[34,67450,67451],{"class":36,"line":52789},[34,67452,62],{"emptyLinePlaceholder":61},[34,67454,67455,67457,67459,67461],{"class":36,"line":52794},[34,67456,18250],{"class":580},[34,67458,51094],{"class":181},[34,67460,10252],{"class":580},[34,67462,51040],{"class":181},[34,67464,67465,67467,67469,67471,67473],{"class":36,"line":52799},[34,67466,49573],{"class":580},[34,67468,51094],{"class":181},[34,67470,51035],{"class":580},[34,67472,36375],{"class":580},[34,67474,51168],{"class":181},[34,67476,67477],{"class":36,"line":66545},[34,67478,67479],{"class":40},"            # BFS from each unvisited node discovers a new component\n",[34,67481,67482,67485,67487],{"class":36,"line":66558},[34,67483,67484],{"class":181},"            component ",[34,67486,1301],{"class":580},[34,67488,53166],{"class":181},[34,67490,67491,67494,67496],{"class":36,"line":66563},[34,67492,67493],{"class":181},"            queue ",[34,67495,1301],{"class":580},[34,67497,67498],{"class":181}," deque([node])\n",[34,67500,67501],{"class":36,"line":66568},[34,67502,67503],{"class":181},"            visited.add(node)\n",[34,67505,67506],{"class":36,"line":66582},[34,67507,62],{"emptyLinePlaceholder":61},[34,67509,67510,67513],{"class":36,"line":66587},[34,67511,67512],{"class":580},"            while",[34,67514,66904],{"class":181},[34,67516,67517,67520,67522],{"class":36,"line":66592},[34,67518,67519],{"class":181},"                current ",[34,67521,1301],{"class":580},[34,67523,67094],{"class":181},[34,67525,67526],{"class":36,"line":66599},[34,67527,67528],{"class":181},"                component.append(current)\n",[34,67530,67531],{"class":36,"line":66604},[34,67532,62],{"emptyLinePlaceholder":61},[34,67534,67535,67538,67540,67542],{"class":36,"line":66609},[34,67536,67537],{"class":580},"                for",[34,67539,66932],{"class":181},[34,67541,10252],{"class":580},[34,67543,66937],{"class":181},[34,67545,67546,67549,67551,67553,67555],{"class":36,"line":66614},[34,67547,67548],{"class":580},"                    if",[34,67550,66932],{"class":181},[34,67552,51035],{"class":580},[34,67554,36375],{"class":580},[34,67556,51168],{"class":181},[34,67558,67559],{"class":36,"line":66638},[34,67560,67561],{"class":181},"                        visited.add(neighbor)\n",[34,67563,67564],{"class":36,"line":66658},[34,67565,67566],{"class":181},"                        queue.append(neighbor)\n",[34,67568,67569],{"class":36,"line":66679},[34,67570,62],{"emptyLinePlaceholder":61},[34,67572,67573],{"class":36,"line":66697},[34,67574,67575],{"class":181},"            components.append(component)\n",[34,67577,67578],{"class":36,"line":66710},[34,67579,62],{"emptyLinePlaceholder":61},[34,67581,67582,67584],{"class":36,"line":66723},[34,67583,1564],{"class":580},[34,67585,67586],{"class":181}," components\n",[34,67588,67589],{"class":36,"line":66736},[34,67590,62],{"emptyLinePlaceholder":61},[34,67592,67593],{"class":36,"line":66741},[34,67594,62],{"emptyLinePlaceholder":61},[34,67596,67597],{"class":36,"line":66746},[34,67598,53237],{"class":40},[34,67600,67601,67603,67605],{"class":36,"line":66764},[34,67602,53242],{"class":181},[34,67604,1301],{"class":580},[34,67606,661],{"class":181},[34,67608,67609,67611,67613,67615,67617,67619],{"class":36,"line":66770},[34,67610,50694],{"class":54},[34,67612,47204],{"class":181},[34,67614,50700],{"class":54},[34,67616,1798],{"class":181},[34,67618,50709],{"class":54},[34,67620,46332],{"class":181},[34,67622,67623,67625,67627,67629,67631,67633,67635,67637],{"class":36,"line":66775},[34,67624,50720],{"class":54},[34,67626,47204],{"class":181},[34,67628,21516],{"class":54},[34,67630,1798],{"class":181},[34,67632,50733],{"class":54},[34,67634,1798],{"class":181},[34,67636,53331],{"class":54},[34,67638,46332],{"class":181},[34,67640,67641,67643,67645,67647,67649,67651],{"class":36,"line":66797},[34,67642,50744],{"class":54},[34,67644,47204],{"class":181},[34,67646,21516],{"class":54},[34,67648,1798],{"class":181},[34,67650,66692],{"class":54},[34,67652,46332],{"class":181},[34,67654,67656,67658,67660,67662],{"class":36,"line":67655},102,[34,67657,50759],{"class":54},[34,67659,47204],{"class":181},[34,67661,50700],{"class":54},[34,67663,46332],{"class":181},[34,67665,67667,67669,67671,67673],{"class":36,"line":67666},103,[34,67668,53372],{"class":54},[34,67670,47204],{"class":181},[34,67672,50700],{"class":54},[34,67674,46332],{"class":181},[34,67676,67678,67681,67683,67685],{"class":36,"line":67677},104,[34,67679,67680],{"class":54},"    'F'",[34,67682,47204],{"class":181},[34,67684,50709],{"class":54},[34,67686,46332],{"class":181},[34,67688,67690],{"class":36,"line":67689},105,[34,67691,693],{"class":181},[34,67693,67695],{"class":36,"line":67694},106,[34,67696,62],{"emptyLinePlaceholder":61},[34,67698,67700,67702,67705,67707],{"class":36,"line":67699},107,[34,67701,53417],{"class":50},[34,67703,67704],{"class":181},"(bfs(graph, ",[34,67706,21516],{"class":54},[34,67708,11119],{"class":181},[34,67710,67712],{"class":36,"line":67711},108,[34,67713,67714],{"class":40},"# → ['A', 'B', 'C', 'D', 'E', 'F']\n",[34,67716,67718],{"class":36,"line":67717},109,[34,67719,62],{"emptyLinePlaceholder":61},[34,67721,67723,67725,67728,67730,67732,67734],{"class":36,"line":67722},110,[34,67724,53417],{"class":50},[34,67726,67727],{"class":181},"(bfs_shortest_path(graph, ",[34,67729,50733],{"class":54},[34,67731,1798],{"class":181},[34,67733,66692],{"class":54},[34,67735,11119],{"class":181},[34,67737,67739],{"class":36,"line":67738},111,[34,67740,67741],{"class":40},"# → ['D', 'B', 'A', 'C', 'F']\n",[34,67743,67745],{"class":36,"line":67744},112,[34,67746,62],{"emptyLinePlaceholder":61},[34,67748,67750,67752,67755,67757],{"class":36,"line":67749},113,[34,67751,53417],{"class":50},[34,67753,67754],{"class":181},"(bfs_levels(graph, ",[34,67756,21516],{"class":54},[34,67758,11119],{"class":181},[34,67760,67762],{"class":36,"line":67761},114,[34,67763,67764],{"class":40},"# → [['A'], ['B', 'C'], ['D', 'E', 'F']]\n",[11,67766,67768],{"id":67767},"bfs-vs-dfs","BFS vs DFS",[14308,67770,67771,67783],{},[14311,67772,67773],{},[14314,67774,67775,67777,67780],{},[14317,67776],{},[14317,67778,67779],{},"BFS",[14317,67781,67782],{},"DFS",[14326,67784,67785,67798,67811,67824,67837,67850],{},[14314,67786,67787,67792,67795],{},[14331,67788,67789],{},[8471,67790,67791],{},"Data structure",[14331,67793,67794],{},"Queue (FIFO)",[14331,67796,67797],{},"Stack / Recursion",[14314,67799,67800,67805,67808],{},[14331,67801,67802],{},[8471,67803,67804],{},"Traversal",[14331,67806,67807],{},"Level by level",[14331,67809,67810],{},"Branch by branch",[14314,67812,67813,67818,67821],{},[14331,67814,67815],{},[8471,67816,67817],{},"Memory",[14331,67819,67820],{},"O(width) — can be high",[14331,67822,67823],{},"O(depth) — usually lower",[14314,67825,67826,67831,67834],{},[14331,67827,67828],{},[8471,67829,67830],{},"Shortest path",[14331,67832,67833],{},"✓ Yes (unweighted)",[14331,67835,67836],{},"✗ No",[14314,67838,67839,67844,67847],{},[14331,67840,67841],{},[8471,67842,67843],{},"Finds solution",[14331,67845,67846],{},"Closest solution first",[14331,67848,67849],{},"Any solution first",[14314,67851,67852,67857,67860],{},[14331,67853,67854],{},[8471,67855,67856],{},"Best for",[14331,67858,67859],{},"Shortest path, levels",[14331,67861,67862],{},"Cycle detection, topo sort",[25,67864,67867],{"className":67865,"code":67866,"language":780,"meta":30},[13703],"Rule of thumb:\n  → \"Shortest / fewest steps\"  →  BFS\n  → \"Does a path exist?\"       →  DFS\n  → \"Weighted shortest path\"   →  Dijkstra\n",[20,67868,67866],{"__ignoreMap":30},[388,67870,17665],{},{"title":30,"searchDepth":44,"depth":44,"links":67872},[67873,67874,67875,67876,67877,67878,67879,67880],{"id":65604,"depth":44,"text":65605},{"id":45381,"depth":44,"text":45382},{"id":63035,"depth":44,"text":63036},{"id":53480,"depth":44,"text":52846},{"id":65644,"depth":44,"text":65645},{"id":64118,"depth":44,"text":64119},{"id":52900,"depth":44,"text":52856},{"id":67767,"depth":44,"text":67768},"BFS graph traversal algorithm with implementations, visualizations, and common use cases for trees and graphs.",{"category":49923,"featured":65586,"icon":67883},"\u003Csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"4\" r=\"2\">\u003C/circle>\u003Ccircle cx=\"5\" cy=\"12\" r=\"2\">\u003C/circle>\u003Ccircle cx=\"19\" cy=\"12\" r=\"2\">\u003C/circle>\u003Ccircle cx=\"2\" cy=\"20\" r=\"2\">\u003C/circle>\u003Ccircle cx=\"8\" cy=\"20\" r=\"2\">\u003C/circle>\u003Ccircle cx=\"16\" cy=\"20\" r=\"2\">\u003C/circle>\u003Ccircle cx=\"22\" cy=\"20\" r=\"2\">\u003C/circle>\u003Cline x1=\"12\" y1=\"6\" x2=\"6\" y2=\"10\">\u003C/line>\u003Cline x1=\"12\" y1=\"6\" x2=\"18\" y2=\"10\">\u003C/line>\u003Cline x1=\"5\" y1=\"14\" x2=\"3\" y2=\"18\">\u003C/line>\u003Cline x1=\"5\" y1=\"14\" x2=\"8\" y2=\"18\">\u003C/line>\u003Cline x1=\"19\" y1=\"14\" x2=\"16\" y2=\"18\">\u003C/line>\u003Cline x1=\"19\" y1=\"14\" x2=\"22\" y2=\"18\">\u003C/line>\u003C/svg>","/examples/breadth-first-search",{"title":65599,"description":67881},"examples/breadth-first-search",[66755,49921,67888,67889,49923,33666],"tree","traversal","I2m2ApIytOYAUzcq5qYwRivheSXDvM318wxYETVLwZI",{"id":67892,"title":67893,"body":67894,"date":65583,"description":70343,"extension":404,"meta":70344,"navigation":61,"order":402,"path":70346,"seo":70347,"stem":70348,"subject":402,"tags":70349,"__hash__":70351},"topics/examples/depth-first-search.md","Depth-First Search",{"type":8,"value":67895,"toc":70333},[67896,67900,67906,67912,67914,67920,67922,67928,67930,67936,67940,67946,67948,69138,69140,70247,70251,70325,70331],[11,67897,67899],{"id":67898},"what-is-dfs","What is DFS?",[16,67901,67902,67903,67905],{},"Depth-First Search (DFS) is a graph/tree traversal algorithm that explores as far down a branch as possible before backtracking. It uses a ",[8471,67904,33729],{}," (or recursion) to track which nodes to visit next.",[25,67907,67910],{"className":67908,"code":67909,"language":780,"meta":30},[13703],"Key Idea: Go DEEP first — follow one path all the way to the end, then backtrack.\n",[20,67911,67909],{"__ignoreMap":30},[11,67913,45382],{"id":45381},[25,67915,67918],{"className":67916,"code":67917,"language":780,"meta":30},[13703],"Algorithm (recursive):\n  1. Start at the root/source node, mark it as visited\n  2. Process current node\n  3. For each unvisited neighbor:\n     a. Recursively visit it (go deeper)\n  4. Backtrack when no unvisited neighbors remain\n\nAlgorithm (iterative):\n  1. Push source node onto the stack\n  2. While stack is not empty:\n     a. Pop the top node (current)\n     b. If not visited: mark as visited, process it\n     c. Push all unvisited neighbors onto the stack\n  3. Repeat until stack is empty\n\nData structure: Stack (LIFO — last in, first out) or call stack (recursion)\n",[20,67919,67917],{"__ignoreMap":30},[11,67921,63036],{"id":63035},[25,67923,67926],{"className":67924,"code":67925,"language":780,"meta":30},[13703],"Graph:\n        A\n       / \\\n      B   C\n     / \\   \\\n    D   E   F\n\nDFS from A (goes deep before wide):\n\n  Visit A → go to B\n  Visit B → go to D\n  Visit D → no unvisited neighbors → backtrack\n  Back at B → go to E\n  Visit E → no unvisited neighbors → backtrack\n  Back at A → go to C\n  Visit C → go to F\n  Visit F → no unvisited neighbors → done\n\nTraversal order: A → B → D → E → C → F\n\nCompare to BFS (visits level by level):\n  BFS order:  A → B → C → D → E → F\n  DFS order:  A → B → D → E → C → F  ✓ branch by branch\n",[20,67927,67925],{"__ignoreMap":30},[11,67929,52846],{"id":53480},[25,67931,67934],{"className":67932,"code":67933,"language":780,"meta":30},[13703],"Time Complexity:   O(V + E)\n  - V = number of vertices (nodes)\n  - E = number of edges\n  - Each node and edge is visited at most once\n\nSpace Complexity:  O(V)\n  - Recursive: O(depth) call stack — O(V) worst case (linear graph)\n  - Iterative: O(V) explicit stack in worst case\n\nDFS properties:\n  ✓ Memory-efficient for deep, narrow graphs (O(depth) vs BFS O(width))\n  ✓ Simple to implement recursively\n  ✓ Natural fit for cycle detection and topological sort\n  ✗ Does NOT guarantee shortest path\n  ✗ Can get stuck in deep branches (iterative preferred for very deep graphs)\n",[20,67935,67933],{"__ignoreMap":30},[11,67937,67939],{"id":67938},"when-to-use-dfs","When to Use DFS",[25,67941,67944],{"className":67942,"code":67943,"language":780,"meta":30},[13703],"Use DFS when:\n  ✓ Detecting cycles in a graph\n  ✓ Topological sorting (DAGs)\n  ✓ Finding connected / strongly connected components\n  ✓ Solving mazes and puzzles (path existence)\n  ✓ Tree traversals (pre-order, in-order, post-order)\n  ✓ Generating permutations / combinations (backtracking)\n  ✓ Memory is constrained (DFS uses O(depth) vs BFS O(width))\n\nUse BFS instead when:\n  ✗ You need the shortest path (fewest hops)\n  ✗ Graph is wide and shallow (DFS memory = BFS memory here)\n  ✗ Finding nearest neighbor or closest node\n\nUse Dijkstra instead when:\n  ✗ Graph has weighted edges and you need shortest path by weight\n",[20,67945,67943],{"__ignoreMap":30},[11,67947,64119],{"id":64118},[25,67949,67951],{"className":571,"code":67950,"language":573,"meta":30,"style":30},"// DFS on a graph (adjacency list) — recursive\nfunction dfsRecursive(\n  graph: Map\u003Cstring, string[]>,\n  start: string,\n  visited = new Set\u003Cstring>(),\n  order: string[] = []\n): string[] {\n  visited.add(start);\n  order.push(start);\n\n  for (const neighbor of graph.get(start) ?? []) {\n    if (!visited.has(neighbor)) {\n      dfsRecursive(graph, neighbor, visited, order); // Go deeper\n    }\n  }\n\n  return order;\n}\n\n// DFS on a graph — iterative (avoids call stack overflow on deep graphs)\nfunction dfsIterative(graph: Map\u003Cstring, string[]>, start: string): string[] {\n  const visited = new Set\u003Cstring>();\n  const stack: string[] = [start]; // LIFO stack\n  const order: string[] = [];\n\n  while (stack.length > 0) {\n    const current = stack.pop()!; // Pop from top\n\n    if (visited.has(current)) continue;\n    visited.add(current);\n    order.push(current);\n\n    // Push neighbors in reverse so left-to-right order is preserved\n    const neighbors = graph.get(current) ?? [];\n    for (let i = neighbors.length - 1; i >= 0; i--) {\n      if (!visited.has(neighbors[i])) {\n        stack.push(neighbors[i]);\n      }\n    }\n  }\n\n  return order;\n}\n\n// Cycle detection in a directed graph using DFS\nfunction hasCycle(graph: Map\u003Cstring, string[]>): boolean {\n  const visited = new Set\u003Cstring>();\n  const inStack = new Set\u003Cstring>(); // Nodes in current recursion path\n\n  function dfs(node: string): boolean {\n    visited.add(node);\n    inStack.add(node);\n\n    for (const neighbor of graph.get(node) ?? []) {\n      if (!visited.has(neighbor) && dfs(neighbor)) return true;\n      if (inStack.has(neighbor)) return true; // Back edge = cycle\n    }\n\n    inStack.delete(node); // Remove from path on backtrack\n    return false;\n  }\n\n  for (const node of graph.keys()) {\n    if (!visited.has(node) && dfs(node)) return true;\n  }\n\n  return false;\n}\n\n// Topological sort (DFS post-order on a DAG)\nfunction topologicalSort(graph: Map\u003Cstring, string[]>): string[] {\n  const visited = new Set\u003Cstring>();\n  const result: string[] = [];\n\n  function dfs(node: string): void {\n    visited.add(node);\n\n    for (const neighbor of graph.get(node) ?? []) {\n      if (!visited.has(neighbor)) dfs(neighbor);\n    }\n\n    result.push(node); // Add AFTER visiting all descendants (post-order)\n  }\n\n  for (const node of graph.keys()) {\n    if (!visited.has(node)) dfs(node);\n  }\n\n  return result.reverse(); // Reverse post-order = topological order\n}\n\n// Usage\nconst graph = new Map\u003Cstring, string[]>([\n  ['A', ['B', 'C']],\n  ['B', ['A', 'D', 'E']],\n  ['C', ['A', 'F']],\n  ['D', ['B']],\n  ['E', ['B']],\n  ['F', ['C']],\n]);\n\nconsole.log(dfsRecursive(graph, 'A'));\n// → ['A', 'B', 'D', 'E', 'C', 'F']\n\nconsole.log(dfsIterative(graph, 'A'));\n// → ['A', 'B', 'D', 'E', 'C', 'F']\n",[20,67952,67953,67958,67967,67985,67995,68013,68027,68037,68045,68054,68058,68081,68095,68106,68110,68114,68118,68124,68128,68132,68137,68176,68194,68215,68231,68235,68250,68271,68275,68289,68297,68305,68309,68314,68333,68366,68381,68391,68395,68399,68403,68407,68413,68417,68421,68426,68458,68476,68499,68503,68527,68536,68545,68549,68571,68599,68619,68623,68627,68639,68648,68652,68656,68674,68701,68705,68709,68717,68721,68725,68730,68761,68779,68795,68799,68821,68829,68833,68855,68874,68878,68882,68893,68897,68901,68919,68937,68941,68945,68961,68965,68969,68973,68995,69011,69031,69047,69059,69071,69083,69087,69091,69108,69113,69117,69134],{"__ignoreMap":30},[34,67954,67955],{"class":36,"line":37},[34,67956,67957],{"class":40},"// DFS on a graph (adjacency list) — recursive\n",[34,67959,67960,67962,67965],{"class":36,"line":44},[34,67961,11044],{"class":580},[34,67963,67964],{"class":47}," dfsRecursive",[34,67966,1882],{"class":181},[34,67968,67969,67971,67973,67975,67977,67979,67981,67983],{"class":36,"line":58},[34,67970,65949],{"class":675},[34,67972,165],{"class":580},[34,67974,65679],{"class":47},[34,67976,815],{"class":181},[34,67978,30113],{"class":50},[34,67980,1798],{"class":181},[34,67982,30113],{"class":50},[34,67984,65964],{"class":181},[34,67986,67987,67989,67991,67993],{"class":36,"line":65},[34,67988,65969],{"class":675},[34,67990,165],{"class":580},[34,67992,680],{"class":50},[34,67994,624],{"class":181},[34,67996,67997,68000,68002,68004,68006,68008,68010],{"class":36,"line":71},[34,67998,67999],{"class":675},"  visited",[34,68001,683],{"class":580},[34,68003,809],{"class":580},[34,68005,52372],{"class":47},[34,68007,815],{"class":181},[34,68009,30113],{"class":50},[34,68011,68012],{"class":181},">(),\n",[34,68014,68015,68017,68019,68021,68023,68025],{"class":36,"line":77},[34,68016,40181],{"class":675},[34,68018,165],{"class":580},[34,68020,680],{"class":50},[34,68022,4063],{"class":181},[34,68024,1301],{"class":580},[34,68026,53166],{"class":181},[34,68028,68029,68031,68033,68035],{"class":36,"line":82},[34,68030,1617],{"class":181},[34,68032,165],{"class":580},[34,68034,680],{"class":50},[34,68036,65705],{"class":181},[34,68038,68039,68041,68043],{"class":36,"line":88},[34,68040,65778],{"class":181},[34,68042,11093],{"class":47},[34,68044,65783],{"class":181},[34,68046,68047,68050,68052],{"class":36,"line":242},[34,68048,68049],{"class":181},"  order.",[34,68051,50165],{"class":47},[34,68053,65783],{"class":181},[34,68055,68056],{"class":36,"line":250},[34,68057,62],{"emptyLinePlaceholder":61},[34,68059,68060,68062,68064,68066,68068,68070,68072,68074,68077,68079],{"class":36,"line":263},[34,68061,52076],{"class":580},[34,68063,3204],{"class":181},[34,68065,14676],{"class":580},[34,68067,65849],{"class":50},[34,68069,14917],{"class":580},[34,68071,50056],{"class":181},[34,68073,1573],{"class":47},[34,68075,68076],{"class":181},"(start) ",[34,68078,34195],{"class":580},[34,68080,65862],{"class":181},[34,68082,68083,68085,68087,68089,68091,68093],{"class":36,"line":275},[34,68084,2902],{"class":580},[34,68086,3204],{"class":181},[34,68088,10307],{"class":580},[34,68090,52492],{"class":181},[34,68092,52495],{"class":47},[34,68094,51908],{"class":181},[34,68096,68097,68100,68103],{"class":36,"line":700},[34,68098,68099],{"class":47},"      dfsRecursive",[34,68101,68102],{"class":181},"(graph, neighbor, visited, order); ",[34,68104,68105],{"class":40},"// Go deeper\n",[34,68107,68108],{"class":36,"line":706},[34,68109,3229],{"class":181},[34,68111,68112],{"class":36,"line":715},[34,68113,857],{"class":181},[34,68115,68116],{"class":36,"line":725},[34,68117,62],{"emptyLinePlaceholder":61},[34,68119,68120,68122],{"class":36,"line":734},[34,68121,8155],{"class":580},[34,68123,65922],{"class":181},[34,68125,68126],{"class":36,"line":742},[34,68127,693],{"class":181},[34,68129,68130],{"class":36,"line":748},[34,68131,62],{"emptyLinePlaceholder":61},[34,68133,68134],{"class":36,"line":754},[34,68135,68136],{"class":40},"// DFS on a graph — iterative (avoids call stack overflow on deep graphs)\n",[34,68138,68139,68141,68144,68146,68148,68150,68152,68154,68156,68158,68160,68162,68164,68166,68168,68170,68172,68174],{"class":36,"line":759},[34,68140,11044],{"class":580},[34,68142,68143],{"class":47}," dfsIterative",[34,68145,1607],{"class":181},[34,68147,49921],{"class":675},[34,68149,165],{"class":580},[34,68151,65679],{"class":47},[34,68153,815],{"class":181},[34,68155,30113],{"class":50},[34,68157,1798],{"class":181},[34,68159,30113],{"class":50},[34,68161,65690],{"class":181},[34,68163,40502],{"class":675},[34,68165,165],{"class":580},[34,68167,680],{"class":50},[34,68169,1617],{"class":181},[34,68171,165],{"class":580},[34,68173,680],{"class":50},[34,68175,65705],{"class":181},[34,68177,68178,68180,68182,68184,68186,68188,68190,68192],{"class":36,"line":771},[34,68179,17415],{"class":580},[34,68181,52365],{"class":50},[34,68183,683],{"class":580},[34,68185,809],{"class":580},[34,68187,52372],{"class":47},[34,68189,815],{"class":181},[34,68191,30113],{"class":50},[34,68193,821],{"class":181},[34,68195,68196,68198,68201,68203,68205,68207,68209,68212],{"class":36,"line":794},[34,68197,17415],{"class":580},[34,68199,68200],{"class":50}," stack",[34,68202,165],{"class":580},[34,68204,680],{"class":50},[34,68206,4063],{"class":181},[34,68208,1301],{"class":580},[34,68210,68211],{"class":181}," [start]; ",[34,68213,68214],{"class":40},"// LIFO stack\n",[34,68216,68217,68219,68221,68223,68225,68227,68229],{"class":36,"line":824},[34,68218,17415],{"class":580},[34,68220,65755],{"class":50},[34,68222,165],{"class":580},[34,68224,680],{"class":50},[34,68226,4063],{"class":181},[34,68228,1301],{"class":580},[34,68230,4068],{"class":181},[34,68232,68233],{"class":36,"line":830},[34,68234,62],{"emptyLinePlaceholder":61},[34,68236,68237,68239,68242,68244,68246,68248],{"class":36,"line":839},[34,68238,52149],{"class":580},[34,68240,68241],{"class":181}," (stack.",[34,68243,2908],{"class":50},[34,68245,9009],{"class":580},[34,68247,8070],{"class":50},[34,68249,2416],{"class":181},[34,68251,68252,68254,68256,68258,68260,68262,68264,68266,68268],{"class":36,"line":854},[34,68253,1632],{"class":580},[34,68255,65809],{"class":50},[34,68257,683],{"class":580},[34,68259,33768],{"class":181},[34,68261,50216],{"class":47},[34,68263,1546],{"class":181},[34,68265,10307],{"class":580},[34,68267,10268],{"class":181},[34,68269,68270],{"class":40},"// Pop from top\n",[34,68272,68273],{"class":36,"line":860},[34,68274,62],{"emptyLinePlaceholder":61},[34,68276,68277,68279,68281,68283,68285,68287],{"class":36,"line":865},[34,68278,2902],{"class":580},[34,68280,51777],{"class":181},[34,68282,52495],{"class":47},[34,68284,51783],{"class":181},[34,68286,19313],{"class":580},[34,68288,593],{"class":181},[34,68290,68291,68293,68295],{"class":36,"line":870},[34,68292,52561],{"class":181},[34,68294,11093],{"class":47},[34,68296,51797],{"class":181},[34,68298,68299,68301,68303],{"class":36,"line":876},[34,68300,65830],{"class":181},[34,68302,50165],{"class":47},[34,68304,51797],{"class":181},[34,68306,68307],{"class":36,"line":885},[34,68308,62],{"emptyLinePlaceholder":61},[34,68310,68311],{"class":36,"line":895},[34,68312,68313],{"class":40},"    // Push neighbors in reverse so left-to-right order is preserved\n",[34,68315,68316,68318,68321,68323,68325,68327,68329,68331],{"class":36,"line":904},[34,68317,1632],{"class":580},[34,68319,68320],{"class":50}," neighbors",[34,68322,683],{"class":580},[34,68324,50056],{"class":181},[34,68326,1573],{"class":47},[34,68328,51883],{"class":181},[34,68330,34195],{"class":580},[34,68332,4068],{"class":181},[34,68334,68335,68337,68339,68341,68343,68345,68348,68350,68352,68354,68356,68358,68360,68362,68364],{"class":36,"line":915},[34,68336,18250],{"class":580},[34,68338,3204],{"class":181},[34,68340,8268],{"class":580},[34,68342,10300],{"class":181},[34,68344,1301],{"class":580},[34,68346,68347],{"class":181}," neighbors.",[34,68349,2908],{"class":50},[34,68351,19423],{"class":580},[34,68353,3567],{"class":50},[34,68355,18263],{"class":181},[34,68357,18401],{"class":580},[34,68359,8070],{"class":50},[34,68361,11918],{"class":181},[34,68363,8103],{"class":580},[34,68365,2416],{"class":181},[34,68367,68368,68370,68372,68374,68376,68378],{"class":36,"line":927},[34,68369,52245],{"class":580},[34,68371,3204],{"class":181},[34,68373,10307],{"class":580},[34,68375,52492],{"class":181},[34,68377,52495],{"class":47},[34,68379,68380],{"class":181},"(neighbors[i])) {\n",[34,68382,68383,68386,68388],{"class":36,"line":932},[34,68384,68385],{"class":181},"        stack.",[34,68387,50165],{"class":47},[34,68389,68390],{"class":181},"(neighbors[i]);\n",[34,68392,68393],{"class":36,"line":944},[34,68394,3078],{"class":181},[34,68396,68397],{"class":36,"line":966},[34,68398,3229],{"class":181},[34,68400,68401],{"class":36,"line":1948},[34,68402,857],{"class":181},[34,68404,68405],{"class":36,"line":1953},[34,68406,62],{"emptyLinePlaceholder":61},[34,68408,68409,68411],{"class":36,"line":3616},[34,68410,8155],{"class":580},[34,68412,65922],{"class":181},[34,68414,68415],{"class":36,"line":3622},[34,68416,693],{"class":181},[34,68418,68419],{"class":36,"line":3642},[34,68420,62],{"emptyLinePlaceholder":61},[34,68422,68423],{"class":36,"line":3657},[34,68424,68425],{"class":40},"// Cycle detection in a directed graph using DFS\n",[34,68427,68428,68430,68433,68435,68437,68439,68441,68443,68445,68447,68449,68452,68454,68456],{"class":36,"line":3663},[34,68429,11044],{"class":580},[34,68431,68432],{"class":47}," hasCycle",[34,68434,1607],{"class":181},[34,68436,49921],{"class":675},[34,68438,165],{"class":580},[34,68440,65679],{"class":47},[34,68442,815],{"class":181},[34,68444,30113],{"class":50},[34,68446,1798],{"class":181},[34,68448,30113],{"class":50},[34,68450,68451],{"class":181},"[]>)",[34,68453,165],{"class":580},[34,68455,59460],{"class":50},[34,68457,661],{"class":181},[34,68459,68460,68462,68464,68466,68468,68470,68472,68474],{"class":36,"line":3669},[34,68461,17415],{"class":580},[34,68463,52365],{"class":50},[34,68465,683],{"class":580},[34,68467,809],{"class":580},[34,68469,52372],{"class":47},[34,68471,815],{"class":181},[34,68473,30113],{"class":50},[34,68475,821],{"class":181},[34,68477,68478,68480,68483,68485,68487,68489,68491,68493,68496],{"class":36,"line":3675},[34,68479,17415],{"class":580},[34,68481,68482],{"class":50}," inStack",[34,68484,683],{"class":580},[34,68486,809],{"class":580},[34,68488,52372],{"class":47},[34,68490,815],{"class":181},[34,68492,30113],{"class":50},[34,68494,68495],{"class":181},">(); ",[34,68497,68498],{"class":40},"// Nodes in current recursion path\n",[34,68500,68501],{"class":36,"line":3693},[34,68502,62],{"emptyLinePlaceholder":61},[34,68504,68505,68508,68511,68513,68515,68517,68519,68521,68523,68525],{"class":36,"line":3707},[34,68506,68507],{"class":580},"  function",[34,68509,68510],{"class":47}," dfs",[34,68512,1607],{"class":181},[34,68514,16004],{"class":675},[34,68516,165],{"class":580},[34,68518,680],{"class":50},[34,68520,1617],{"class":181},[34,68522,165],{"class":580},[34,68524,59460],{"class":50},[34,68526,661],{"class":181},[34,68528,68529,68531,68533],{"class":36,"line":3712},[34,68530,52561],{"class":181},[34,68532,11093],{"class":47},[34,68534,68535],{"class":181},"(node);\n",[34,68537,68538,68541,68543],{"class":36,"line":3717},[34,68539,68540],{"class":181},"    inStack.",[34,68542,11093],{"class":47},[34,68544,68535],{"class":181},[34,68546,68547],{"class":36,"line":25776},[34,68548,62],{"emptyLinePlaceholder":61},[34,68550,68551,68553,68555,68557,68559,68561,68563,68565,68567,68569],{"class":36,"line":49902},[34,68552,18250],{"class":580},[34,68554,3204],{"class":181},[34,68556,14676],{"class":580},[34,68558,65849],{"class":50},[34,68560,14917],{"class":580},[34,68562,50056],{"class":181},[34,68564,1573],{"class":47},[34,68566,52498],{"class":181},[34,68568,34195],{"class":580},[34,68570,65862],{"class":181},[34,68572,68573,68575,68577,68579,68581,68583,68586,68588,68590,68593,68595,68597],{"class":36,"line":52569},[34,68574,52245],{"class":580},[34,68576,3204],{"class":181},[34,68578,10307],{"class":580},[34,68580,52492],{"class":181},[34,68582,52495],{"class":47},[34,68584,68585],{"class":181},"(neighbor) ",[34,68587,22938],{"class":580},[34,68589,68510],{"class":47},[34,68591,68592],{"class":181},"(neighbor)) ",[34,68594,2917],{"class":580},[34,68596,32945],{"class":50},[34,68598,593],{"class":181},[34,68600,68601,68603,68606,68608,68610,68612,68614,68616],{"class":36,"line":52574},[34,68602,52245],{"class":580},[34,68604,68605],{"class":181}," (inStack.",[34,68607,52495],{"class":47},[34,68609,68592],{"class":181},[34,68611,2917],{"class":580},[34,68613,32945],{"class":50},[34,68615,10268],{"class":181},[34,68617,68618],{"class":40},"// Back edge = cycle\n",[34,68620,68621],{"class":36,"line":52580},[34,68622,3229],{"class":181},[34,68624,68625],{"class":36,"line":52608},[34,68626,62],{"emptyLinePlaceholder":61},[34,68628,68629,68631,68633,68636],{"class":36,"line":52625},[34,68630,68540],{"class":181},[34,68632,30355],{"class":47},[34,68634,68635],{"class":181},"(node); ",[34,68637,68638],{"class":40},"// Remove from path on backtrack\n",[34,68640,68641,68643,68646],{"class":36,"line":52636},[34,68642,1564],{"class":580},[34,68644,68645],{"class":50}," false",[34,68647,593],{"class":181},[34,68649,68650],{"class":36,"line":52645},[34,68651,857],{"class":181},[34,68653,68654],{"class":36,"line":52650},[34,68655,62],{"emptyLinePlaceholder":61},[34,68657,68658,68660,68662,68664,68666,68668,68670,68672],{"class":36,"line":52655},[34,68659,52076],{"class":580},[34,68661,3204],{"class":181},[34,68663,14676],{"class":580},[34,68665,52476],{"class":50},[34,68667,14917],{"class":580},[34,68669,50056],{"class":181},[34,68671,52345],{"class":47},[34,68673,31037],{"class":181},[34,68675,68676,68678,68680,68682,68684,68686,68688,68690,68692,68695,68697,68699],{"class":36,"line":52660},[34,68677,2902],{"class":580},[34,68679,3204],{"class":181},[34,68681,10307],{"class":580},[34,68683,52492],{"class":181},[34,68685,52495],{"class":47},[34,68687,52498],{"class":181},[34,68689,22938],{"class":580},[34,68691,68510],{"class":47},[34,68693,68694],{"class":181},"(node)) ",[34,68696,2917],{"class":580},[34,68698,32945],{"class":50},[34,68700,593],{"class":181},[34,68702,68703],{"class":36,"line":52665},[34,68704,857],{"class":181},[34,68706,68707],{"class":36,"line":52672},[34,68708,62],{"emptyLinePlaceholder":61},[34,68710,68711,68713,68715],{"class":36,"line":52677},[34,68712,8155],{"class":580},[34,68714,68645],{"class":50},[34,68716,593],{"class":181},[34,68718,68719],{"class":36,"line":52682},[34,68720,693],{"class":181},[34,68722,68723],{"class":36,"line":52687},[34,68724,62],{"emptyLinePlaceholder":61},[34,68726,68727],{"class":36,"line":52698},[34,68728,68729],{"class":40},"// Topological sort (DFS post-order on a DAG)\n",[34,68731,68732,68734,68737,68739,68741,68743,68745,68747,68749,68751,68753,68755,68757,68759],{"class":36,"line":52713},[34,68733,11044],{"class":580},[34,68735,68736],{"class":47}," topologicalSort",[34,68738,1607],{"class":181},[34,68740,49921],{"class":675},[34,68742,165],{"class":580},[34,68744,65679],{"class":47},[34,68746,815],{"class":181},[34,68748,30113],{"class":50},[34,68750,1798],{"class":181},[34,68752,30113],{"class":50},[34,68754,68451],{"class":181},[34,68756,165],{"class":580},[34,68758,680],{"class":50},[34,68760,65705],{"class":181},[34,68762,68763,68765,68767,68769,68771,68773,68775,68777],{"class":36,"line":52732},[34,68764,17415],{"class":580},[34,68766,52365],{"class":50},[34,68768,683],{"class":580},[34,68770,809],{"class":580},[34,68772,52372],{"class":47},[34,68774,815],{"class":181},[34,68776,30113],{"class":50},[34,68778,821],{"class":181},[34,68780,68781,68783,68785,68787,68789,68791,68793],{"class":36,"line":52756},[34,68782,17415],{"class":580},[34,68784,11103],{"class":50},[34,68786,165],{"class":580},[34,68788,680],{"class":50},[34,68790,4063],{"class":181},[34,68792,1301],{"class":580},[34,68794,4068],{"class":181},[34,68796,68797],{"class":36,"line":52774},[34,68798,62],{"emptyLinePlaceholder":61},[34,68800,68801,68803,68805,68807,68809,68811,68813,68815,68817,68819],{"class":36,"line":52789},[34,68802,68507],{"class":580},[34,68804,68510],{"class":47},[34,68806,1607],{"class":181},[34,68808,16004],{"class":675},[34,68810,165],{"class":580},[34,68812,680],{"class":50},[34,68814,1617],{"class":181},[34,68816,165],{"class":580},[34,68818,31514],{"class":50},[34,68820,661],{"class":181},[34,68822,68823,68825,68827],{"class":36,"line":52794},[34,68824,52561],{"class":181},[34,68826,11093],{"class":47},[34,68828,68535],{"class":181},[34,68830,68831],{"class":36,"line":52799},[34,68832,62],{"emptyLinePlaceholder":61},[34,68834,68835,68837,68839,68841,68843,68845,68847,68849,68851,68853],{"class":36,"line":66545},[34,68836,18250],{"class":580},[34,68838,3204],{"class":181},[34,68840,14676],{"class":580},[34,68842,65849],{"class":50},[34,68844,14917],{"class":580},[34,68846,50056],{"class":181},[34,68848,1573],{"class":47},[34,68850,52498],{"class":181},[34,68852,34195],{"class":580},[34,68854,65862],{"class":181},[34,68856,68857,68859,68861,68863,68865,68867,68869,68872],{"class":36,"line":66558},[34,68858,52245],{"class":580},[34,68860,3204],{"class":181},[34,68862,10307],{"class":580},[34,68864,52492],{"class":181},[34,68866,52495],{"class":47},[34,68868,68592],{"class":181},[34,68870,68871],{"class":47},"dfs",[34,68873,65899],{"class":181},[34,68875,68876],{"class":36,"line":66563},[34,68877,3229],{"class":181},[34,68879,68880],{"class":36,"line":66568},[34,68881,62],{"emptyLinePlaceholder":61},[34,68883,68884,68886,68888,68890],{"class":36,"line":66582},[34,68885,66571],{"class":181},[34,68887,50165],{"class":47},[34,68889,68635],{"class":181},[34,68891,68892],{"class":40},"// Add AFTER visiting all descendants (post-order)\n",[34,68894,68895],{"class":36,"line":66587},[34,68896,857],{"class":181},[34,68898,68899],{"class":36,"line":66592},[34,68900,62],{"emptyLinePlaceholder":61},[34,68902,68903,68905,68907,68909,68911,68913,68915,68917],{"class":36,"line":66599},[34,68904,52076],{"class":580},[34,68906,3204],{"class":181},[34,68908,14676],{"class":580},[34,68910,52476],{"class":50},[34,68912,14917],{"class":580},[34,68914,50056],{"class":181},[34,68916,52345],{"class":47},[34,68918,31037],{"class":181},[34,68920,68921,68923,68925,68927,68929,68931,68933,68935],{"class":36,"line":66604},[34,68922,2902],{"class":580},[34,68924,3204],{"class":181},[34,68926,10307],{"class":580},[34,68928,52492],{"class":181},[34,68930,52495],{"class":47},[34,68932,68694],{"class":181},[34,68934,68871],{"class":47},[34,68936,68535],{"class":181},[34,68938,68939],{"class":36,"line":66609},[34,68940,857],{"class":181},[34,68942,68943],{"class":36,"line":66614},[34,68944,62],{"emptyLinePlaceholder":61},[34,68946,68947,68949,68952,68955,68958],{"class":36,"line":66638},[34,68948,8155],{"class":580},[34,68950,68951],{"class":181}," result.",[34,68953,68954],{"class":47},"reverse",[34,68956,68957],{"class":181},"(); ",[34,68959,68960],{"class":40},"// Reverse post-order = topological order\n",[34,68962,68963],{"class":36,"line":66658},[34,68964,693],{"class":181},[34,68966,68967],{"class":36,"line":66679},[34,68968,62],{"emptyLinePlaceholder":61},[34,68970,68971],{"class":36,"line":66697},[34,68972,1113],{"class":40},[34,68974,68975,68977,68979,68981,68983,68985,68987,68989,68991,68993],{"class":36,"line":66710},[34,68976,14676],{"class":580},[34,68978,50037],{"class":50},[34,68980,683],{"class":580},[34,68982,809],{"class":580},[34,68984,65679],{"class":47},[34,68986,815],{"class":181},[34,68988,30113],{"class":50},[34,68990,1798],{"class":181},[34,68992,30113],{"class":50},[34,68994,66635],{"class":181},[34,68996,68997,68999,69001,69003,69005,69007,69009],{"class":36,"line":66723},[34,68998,66641],{"class":181},[34,69000,21516],{"class":54},[34,69002,66646],{"class":181},[34,69004,50700],{"class":54},[34,69006,1798],{"class":181},[34,69008,50709],{"class":54},[34,69010,66655],{"class":181},[34,69012,69013,69015,69017,69019,69021,69023,69025,69027,69029],{"class":36,"line":66736},[34,69014,66641],{"class":181},[34,69016,50700],{"class":54},[34,69018,66646],{"class":181},[34,69020,21516],{"class":54},[34,69022,1798],{"class":181},[34,69024,50733],{"class":54},[34,69026,1798],{"class":181},[34,69028,53331],{"class":54},[34,69030,66655],{"class":181},[34,69032,69033,69035,69037,69039,69041,69043,69045],{"class":36,"line":66741},[34,69034,66641],{"class":181},[34,69036,50709],{"class":54},[34,69038,66646],{"class":181},[34,69040,21516],{"class":54},[34,69042,1798],{"class":181},[34,69044,66692],{"class":54},[34,69046,66655],{"class":181},[34,69048,69049,69051,69053,69055,69057],{"class":36,"line":66746},[34,69050,66641],{"class":181},[34,69052,50733],{"class":54},[34,69054,66646],{"class":181},[34,69056,50700],{"class":54},[34,69058,66655],{"class":181},[34,69060,69061,69063,69065,69067,69069],{"class":36,"line":66764},[34,69062,66641],{"class":181},[34,69064,53331],{"class":54},[34,69066,66646],{"class":181},[34,69068,50700],{"class":54},[34,69070,66655],{"class":181},[34,69072,69073,69075,69077,69079,69081],{"class":36,"line":66770},[34,69074,66641],{"class":181},[34,69076,66692],{"class":54},[34,69078,66646],{"class":181},[34,69080,50709],{"class":54},[34,69082,66655],{"class":181},[34,69084,69085],{"class":36,"line":66775},[34,69086,3599],{"class":181},[34,69088,69089],{"class":36,"line":66797},[34,69090,62],{"emptyLinePlaceholder":61},[34,69092,69093,69095,69097,69099,69102,69104,69106],{"class":36,"line":67655},[34,69094,15183],{"class":181},[34,69096,2424],{"class":47},[34,69098,1607],{"class":181},[34,69100,69101],{"class":47},"dfsRecursive",[34,69103,50585],{"class":181},[34,69105,21516],{"class":54},[34,69107,15223],{"class":181},[34,69109,69110],{"class":36,"line":67666},[34,69111,69112],{"class":40},"// → ['A', 'B', 'D', 'E', 'C', 'F']\n",[34,69114,69115],{"class":36,"line":67677},[34,69116,62],{"emptyLinePlaceholder":61},[34,69118,69119,69121,69123,69125,69128,69130,69132],{"class":36,"line":67689},[34,69120,15183],{"class":181},[34,69122,2424],{"class":47},[34,69124,1607],{"class":181},[34,69126,69127],{"class":47},"dfsIterative",[34,69129,50585],{"class":181},[34,69131,21516],{"class":54},[34,69133,15223],{"class":181},[34,69135,69136],{"class":36,"line":67694},[34,69137,69112],{"class":40},[11,69139,52856],{"id":52900},[25,69141,69143],{"className":49386,"code":69142,"language":49388,"meta":30,"style":30},"from collections import defaultdict\n\ndef dfs_recursive(\n    graph: dict[str, list[str]],\n    start: str,\n    visited: set | None = None,\n    order: list | None = None\n) -> list[str]:\n    \"\"\"Traverse graph using DFS recursively, return visit order.\"\"\"\n    if visited is None:\n        visited = set()\n    if order is None:\n        order = []\n\n    visited.add(start)\n    order.append(start)\n\n    for neighbor in graph[start]:\n        if neighbor not in visited:\n            dfs_recursive(graph, neighbor, visited, order)  # Go deeper\n\n    return order\n\n\ndef dfs_iterative(graph: dict[str, list[str]], start: str) -> list[str]:\n    \"\"\"Traverse graph using DFS iteratively (avoids recursion limit).\"\"\"\n    visited = set()\n    stack = [start]     # LIFO stack\n    order = []\n\n    while stack:\n        current = stack.pop()   # Pop from top\n\n        if current in visited:\n            continue\n        visited.add(current)\n        order.append(current)\n\n        # Push neighbors in reverse to preserve left-to-right order\n        for neighbor in reversed(graph[current]):\n            if neighbor not in visited:\n                stack.append(neighbor)\n\n    return order\n\n\ndef has_cycle_directed(graph: dict[str, list[str]]) -> bool:\n    \"\"\"Detect cycle in a directed graph using DFS.\"\"\"\n    visited = set()\n    in_stack = set()    # Nodes in the current recursion path\n\n    def dfs(node: str) -> bool:\n        visited.add(node)\n        in_stack.add(node)\n\n        for neighbor in graph[node]:\n            if neighbor not in visited and dfs(neighbor):\n                return True\n            if neighbor in in_stack:    # Back edge = cycle\n                return True\n\n        in_stack.remove(node)   # Backtrack\n        return False\n\n    return any(dfs(node) for node in graph if node not in visited)\n\n\ndef topological_sort(graph: dict[str, list[str]]) -> list[str]:\n    \"\"\"Topological sort of a DAG using DFS post-order.\"\"\"\n    visited = set()\n    result = []\n\n    def dfs(node: str) -> None:\n        visited.add(node)\n\n        for neighbor in graph[node]:\n            if neighbor not in visited:\n                dfs(neighbor)\n\n        result.append(node)     # Add AFTER all descendants are visited\n\n    for node in graph:\n        if node not in visited:\n            dfs(node)\n\n    return result[::-1]         # Reverse post-order = topological order\n\n\ndef dfs_find_all_paths(\n    graph: dict[str, list[str]], start: str, end: str\n) -> list[list[str]]:\n    \"\"\"Find ALL paths from start to end using DFS backtracking.\"\"\"\n    all_paths = []\n\n    def dfs(current: str, path: list[str], visited: set) -> None:\n        if current == end:\n            all_paths.append(list(path))    # Found a complete path\n            return\n\n        for neighbor in graph[current]:\n            if neighbor not in visited:\n                visited.add(neighbor)\n                path.append(neighbor)\n                dfs(neighbor, path, visited)    # Recurse\n                path.pop()                      # Backtrack\n                visited.remove(neighbor)\n\n    dfs(start, [start], {start})\n    return all_paths\n\n\n# Usage\ngraph = {\n    'A': ['B', 'C'],\n    'B': ['A', 'D', 'E'],\n    'C': ['A', 'F'],\n    'D': ['B'],\n    'E': ['B'],\n    'F': ['C'],\n}\n\nprint(dfs_recursive(graph, 'A'))\n# → ['A', 'B', 'D', 'E', 'C', 'F']\n\nprint(dfs_iterative(graph, 'A'))\n# → ['A', 'B', 'D', 'E', 'C', 'F']\n\nprint(dfs_find_all_paths(graph, 'A', 'F'))\n# → [['A', 'C', 'F']]\n",[20,69144,69145,69155,69159,69168,69180,69189,69206,69221,69229,69234,69247,69258,69271,69280,69284,69289,69294,69298,69309,69321,69329,69333,69339,69343,69347,69372,69377,69387,69400,69408,69412,69419,69431,69435,69445,69449,69453,69457,69461,69466,69480,69492,69497,69501,69507,69511,69515,69537,69542,69552,69567,69571,69588,69593,69598,69602,69612,69629,69637,69651,69657,69661,69669,69676,69680,69710,69714,69718,69740,69745,69755,69763,69767,69783,69787,69791,69801,69813,69818,69822,69830,69834,69844,69856,69861,69865,69882,69886,69890,69899,69917,69925,69930,69939,69943,69970,69980,69993,69998,70002,70012,70024,70028,70033,70041,70048,70053,70057,70062,70069,70073,70077,70081,70089,70103,70122,70137,70148,70159,70170,70175,70180,70192,70198,70203,70215,70220,70225,70241],{"__ignoreMap":30},[34,69146,69147,69149,69151,69153],{"class":36,"line":37},[34,69148,587],{"class":580},[34,69150,52919],{"class":181},[34,69152,581],{"class":580},[34,69154,52924],{"class":181},[34,69156,69157],{"class":36,"line":44},[34,69158,62],{"emptyLinePlaceholder":61},[34,69160,69161,69163,69166],{"class":36,"line":58},[34,69162,49400],{"class":580},[34,69164,69165],{"class":47}," dfs_recursive",[34,69167,1882],{"class":181},[34,69169,69170,69172,69174,69176,69178],{"class":36,"line":65},[34,69171,66995],{"class":181},[34,69173,12646],{"class":50},[34,69175,66839],{"class":181},[34,69177,12646],{"class":50},[34,69179,66655],{"class":181},[34,69181,69182,69185,69187],{"class":36,"line":71},[34,69183,69184],{"class":181},"    start: ",[34,69186,12646],{"class":50},[34,69188,624],{"class":181},[34,69190,69191,69194,69196,69198,69200,69202,69204],{"class":36,"line":77},[34,69192,69193],{"class":181},"    visited: ",[34,69195,1648],{"class":50},[34,69197,7197],{"class":580},[34,69199,53194],{"class":50},[34,69201,683],{"class":580},[34,69203,53194],{"class":50},[34,69205,624],{"class":181},[34,69207,69208,69211,69213,69215,69217,69219],{"class":36,"line":82},[34,69209,69210],{"class":181},"    order: ",[34,69212,63577],{"class":50},[34,69214,7197],{"class":580},[34,69216,53194],{"class":50},[34,69218,683],{"class":580},[34,69220,49546],{"class":50},[34,69222,69223,69225,69227],{"class":36,"line":88},[34,69224,66849],{"class":181},[34,69226,12646],{"class":50},[34,69228,66854],{"class":181},[34,69230,69231],{"class":36,"line":242},[34,69232,69233],{"class":54},"    \"\"\"Traverse graph using DFS recursively, return visit order.\"\"\"\n",[34,69235,69236,69238,69241,69243,69245],{"class":36,"line":250},[34,69237,2902],{"class":580},[34,69239,69240],{"class":181}," visited ",[34,69242,34798],{"class":580},[34,69244,53194],{"class":50},[34,69246,193],{"class":181},[34,69248,69249,69252,69254,69256],{"class":36,"line":263},[34,69250,69251],{"class":181},"        visited ",[34,69253,1301],{"class":580},[34,69255,9481],{"class":50},[34,69257,33899],{"class":181},[34,69259,69260,69262,69265,69267,69269],{"class":36,"line":275},[34,69261,2902],{"class":580},[34,69263,69264],{"class":181}," order ",[34,69266,34798],{"class":580},[34,69268,53194],{"class":50},[34,69270,193],{"class":181},[34,69272,69273,69276,69278],{"class":36,"line":700},[34,69274,69275],{"class":181},"        order ",[34,69277,1301],{"class":580},[34,69279,53166],{"class":181},[34,69281,69282],{"class":36,"line":706},[34,69283,62],{"emptyLinePlaceholder":61},[34,69285,69286],{"class":36,"line":715},[34,69287,69288],{"class":181},"    visited.add(start)\n",[34,69290,69291],{"class":36,"line":725},[34,69292,69293],{"class":181},"    order.append(start)\n",[34,69295,69296],{"class":36,"line":734},[34,69297,62],{"emptyLinePlaceholder":61},[34,69299,69300,69302,69304,69306],{"class":36,"line":742},[34,69301,18250],{"class":580},[34,69303,66932],{"class":181},[34,69305,10252],{"class":580},[34,69307,69308],{"class":181}," graph[start]:\n",[34,69310,69311,69313,69315,69317,69319],{"class":36,"line":748},[34,69312,49573],{"class":580},[34,69314,66932],{"class":181},[34,69316,51035],{"class":580},[34,69318,36375],{"class":580},[34,69320,51168],{"class":181},[34,69322,69323,69326],{"class":36,"line":754},[34,69324,69325],{"class":181},"            dfs_recursive(graph, neighbor, visited, order)  ",[34,69327,69328],{"class":40},"# Go deeper\n",[34,69330,69331],{"class":36,"line":759},[34,69332,62],{"emptyLinePlaceholder":61},[34,69334,69335,69337],{"class":36,"line":771},[34,69336,1564],{"class":580},[34,69338,66973],{"class":181},[34,69340,69341],{"class":36,"line":794},[34,69342,62],{"emptyLinePlaceholder":61},[34,69344,69345],{"class":36,"line":824},[34,69346,62],{"emptyLinePlaceholder":61},[34,69348,69349,69351,69354,69356,69358,69360,69362,69364,69366,69368,69370],{"class":36,"line":830},[34,69350,49400],{"class":580},[34,69352,69353],{"class":47}," dfs_iterative",[34,69355,66834],{"class":181},[34,69357,12646],{"class":50},[34,69359,66839],{"class":181},[34,69361,12646],{"class":50},[34,69363,66844],{"class":181},[34,69365,12646],{"class":50},[34,69367,66849],{"class":181},[34,69369,12646],{"class":50},[34,69371,66854],{"class":181},[34,69373,69374],{"class":36,"line":839},[34,69375,69376],{"class":54},"    \"\"\"Traverse graph using DFS iteratively (avoids recursion limit).\"\"\"\n",[34,69378,69379,69381,69383,69385],{"class":36,"line":854},[34,69380,51125],{"class":181},[34,69382,1301],{"class":580},[34,69384,9481],{"class":50},[34,69386,33899],{"class":181},[34,69388,69389,69392,69394,69397],{"class":36,"line":860},[34,69390,69391],{"class":181},"    stack ",[34,69393,1301],{"class":580},[34,69395,69396],{"class":181}," [start]     ",[34,69398,69399],{"class":40},"# LIFO stack\n",[34,69401,69402,69404,69406],{"class":36,"line":865},[34,69403,66889],{"class":181},[34,69405,1301],{"class":580},[34,69407,53166],{"class":181},[34,69409,69410],{"class":36,"line":870},[34,69411,62],{"emptyLinePlaceholder":61},[34,69413,69414,69416],{"class":36,"line":876},[34,69415,8098],{"class":580},[34,69417,69418],{"class":181}," stack:\n",[34,69420,69421,69423,69425,69428],{"class":36,"line":885},[34,69422,53206],{"class":181},[34,69424,1301],{"class":580},[34,69426,69427],{"class":181}," stack.pop()   ",[34,69429,69430],{"class":40},"# Pop from top\n",[34,69432,69433],{"class":36,"line":895},[34,69434,62],{"emptyLinePlaceholder":61},[34,69436,69437,69439,69441,69443],{"class":36,"line":904},[34,69438,49573],{"class":580},[34,69440,51163],{"class":181},[34,69442,10252],{"class":580},[34,69444,51168],{"class":181},[34,69446,69447],{"class":36,"line":915},[34,69448,51173],{"class":580},[34,69450,69451],{"class":36,"line":927},[34,69452,51178],{"class":181},[34,69454,69455],{"class":36,"line":932},[34,69456,66921],{"class":181},[34,69458,69459],{"class":36,"line":944},[34,69460,62],{"emptyLinePlaceholder":61},[34,69462,69463],{"class":36,"line":966},[34,69464,69465],{"class":40},"        # Push neighbors in reverse to preserve left-to-right order\n",[34,69467,69468,69470,69472,69474,69477],{"class":36,"line":1948},[34,69469,50247],{"class":580},[34,69471,66932],{"class":181},[34,69473,10252],{"class":580},[34,69475,69476],{"class":50}," reversed",[34,69478,69479],{"class":181},"(graph[current]):\n",[34,69481,69482,69484,69486,69488,69490],{"class":36,"line":1953},[34,69483,49591],{"class":580},[34,69485,66932],{"class":181},[34,69487,51035],{"class":580},[34,69489,36375],{"class":580},[34,69491,51168],{"class":181},[34,69493,69494],{"class":36,"line":3616},[34,69495,69496],{"class":181},"                stack.append(neighbor)\n",[34,69498,69499],{"class":36,"line":3622},[34,69500,62],{"emptyLinePlaceholder":61},[34,69502,69503,69505],{"class":36,"line":3642},[34,69504,1564],{"class":580},[34,69506,66973],{"class":181},[34,69508,69509],{"class":36,"line":3657},[34,69510,62],{"emptyLinePlaceholder":61},[34,69512,69513],{"class":36,"line":3663},[34,69514,62],{"emptyLinePlaceholder":61},[34,69516,69517,69519,69522,69524,69526,69528,69530,69533,69535],{"class":36,"line":3669},[34,69518,49400],{"class":580},[34,69520,69521],{"class":47}," has_cycle_directed",[34,69523,66834],{"class":181},[34,69525,12646],{"class":50},[34,69527,66839],{"class":181},[34,69529,12646],{"class":50},[34,69531,69532],{"class":181},"]]) -> ",[34,69534,32937],{"class":50},[34,69536,193],{"class":181},[34,69538,69539],{"class":36,"line":3675},[34,69540,69541],{"class":54},"    \"\"\"Detect cycle in a directed graph using DFS.\"\"\"\n",[34,69543,69544,69546,69548,69550],{"class":36,"line":3693},[34,69545,51125],{"class":181},[34,69547,1301],{"class":580},[34,69549,9481],{"class":50},[34,69551,33899],{"class":181},[34,69553,69554,69557,69559,69561,69564],{"class":36,"line":3707},[34,69555,69556],{"class":181},"    in_stack ",[34,69558,1301],{"class":580},[34,69560,9481],{"class":50},[34,69562,69563],{"class":181},"()    ",[34,69565,69566],{"class":40},"# Nodes in the current recursion path\n",[34,69568,69569],{"class":36,"line":3712},[34,69570,62],{"emptyLinePlaceholder":61},[34,69572,69573,69575,69577,69580,69582,69584,69586],{"class":36,"line":3717},[34,69574,65417],{"class":580},[34,69576,68510],{"class":47},[34,69578,69579],{"class":181},"(node: ",[34,69581,12646],{"class":50},[34,69583,63775],{"class":181},[34,69585,32937],{"class":50},[34,69587,193],{"class":181},[34,69589,69590],{"class":36,"line":25776},[34,69591,69592],{"class":181},"        visited.add(node)\n",[34,69594,69595],{"class":36,"line":49902},[34,69596,69597],{"class":181},"        in_stack.add(node)\n",[34,69599,69600],{"class":36,"line":52569},[34,69601,62],{"emptyLinePlaceholder":61},[34,69603,69604,69606,69608,69610],{"class":36,"line":52574},[34,69605,50247],{"class":580},[34,69607,66932],{"class":181},[34,69609,10252],{"class":580},[34,69611,67356],{"class":181},[34,69613,69614,69616,69618,69620,69622,69624,69626],{"class":36,"line":52580},[34,69615,49591],{"class":580},[34,69617,66932],{"class":181},[34,69619,51035],{"class":580},[34,69621,36375],{"class":580},[34,69623,69240],{"class":181},[34,69625,51197],{"class":580},[34,69627,69628],{"class":181}," dfs(neighbor):\n",[34,69630,69631,69634],{"class":36,"line":52608},[34,69632,69633],{"class":580},"                return",[34,69635,69636],{"class":50}," True\n",[34,69638,69639,69641,69643,69645,69648],{"class":36,"line":52625},[34,69640,49591],{"class":580},[34,69642,66932],{"class":181},[34,69644,10252],{"class":580},[34,69646,69647],{"class":181}," in_stack:    ",[34,69649,69650],{"class":40},"# Back edge = cycle\n",[34,69652,69653,69655],{"class":36,"line":52636},[34,69654,69633],{"class":580},[34,69656,69636],{"class":50},[34,69658,69659],{"class":36,"line":52645},[34,69660,62],{"emptyLinePlaceholder":61},[34,69662,69663,69666],{"class":36,"line":52650},[34,69664,69665],{"class":181},"        in_stack.remove(node)   ",[34,69667,69668],{"class":40},"# Backtrack\n",[34,69670,69671,69673],{"class":36,"line":52655},[34,69672,13895],{"class":580},[34,69674,69675],{"class":50}," False\n",[34,69677,69678],{"class":36,"line":52660},[34,69679,62],{"emptyLinePlaceholder":61},[34,69681,69682,69684,69687,69690,69692,69694,69696,69699,69701,69703,69705,69707],{"class":36,"line":52665},[34,69683,1564],{"class":580},[34,69685,69686],{"class":50}," any",[34,69688,69689],{"class":181},"(dfs(node) ",[34,69691,10246],{"class":580},[34,69693,51094],{"class":181},[34,69695,10252],{"class":580},[34,69697,69698],{"class":181}," graph ",[34,69700,10383],{"class":580},[34,69702,51094],{"class":181},[34,69704,51035],{"class":580},[34,69706,36375],{"class":580},[34,69708,69709],{"class":181}," visited)\n",[34,69711,69712],{"class":36,"line":52672},[34,69713,62],{"emptyLinePlaceholder":61},[34,69715,69716],{"class":36,"line":52677},[34,69717,62],{"emptyLinePlaceholder":61},[34,69719,69720,69722,69725,69727,69729,69731,69733,69736,69738],{"class":36,"line":52682},[34,69721,49400],{"class":580},[34,69723,69724],{"class":47}," topological_sort",[34,69726,66834],{"class":181},[34,69728,12646],{"class":50},[34,69730,66839],{"class":181},[34,69732,12646],{"class":50},[34,69734,69735],{"class":181},"]]) -> list[",[34,69737,12646],{"class":50},[34,69739,66854],{"class":181},[34,69741,69742],{"class":36,"line":52687},[34,69743,69744],{"class":54},"    \"\"\"Topological sort of a DAG using DFS post-order.\"\"\"\n",[34,69746,69747,69749,69751,69753],{"class":36,"line":52698},[34,69748,51125],{"class":181},[34,69750,1301],{"class":580},[34,69752,9481],{"class":50},[34,69754,33899],{"class":181},[34,69756,69757,69759,69761],{"class":36,"line":52713},[34,69758,20237],{"class":181},[34,69760,1301],{"class":580},[34,69762,53166],{"class":181},[34,69764,69765],{"class":36,"line":52732},[34,69766,62],{"emptyLinePlaceholder":61},[34,69768,69769,69771,69773,69775,69777,69779,69781],{"class":36,"line":52756},[34,69770,65417],{"class":580},[34,69772,68510],{"class":47},[34,69774,69579],{"class":181},[34,69776,12646],{"class":50},[34,69778,63775],{"class":181},[34,69780,51018],{"class":50},[34,69782,193],{"class":181},[34,69784,69785],{"class":36,"line":52774},[34,69786,69592],{"class":181},[34,69788,69789],{"class":36,"line":52789},[34,69790,62],{"emptyLinePlaceholder":61},[34,69792,69793,69795,69797,69799],{"class":36,"line":52794},[34,69794,50247],{"class":580},[34,69796,66932],{"class":181},[34,69798,10252],{"class":580},[34,69800,67356],{"class":181},[34,69802,69803,69805,69807,69809,69811],{"class":36,"line":52799},[34,69804,49591],{"class":580},[34,69806,66932],{"class":181},[34,69808,51035],{"class":580},[34,69810,36375],{"class":580},[34,69812,51168],{"class":181},[34,69814,69815],{"class":36,"line":66545},[34,69816,69817],{"class":181},"                dfs(neighbor)\n",[34,69819,69820],{"class":36,"line":66558},[34,69821,62],{"emptyLinePlaceholder":61},[34,69823,69824,69827],{"class":36,"line":66563},[34,69825,69826],{"class":181},"        result.append(node)     ",[34,69828,69829],{"class":40},"# Add AFTER all descendants are visited\n",[34,69831,69832],{"class":36,"line":66568},[34,69833,62],{"emptyLinePlaceholder":61},[34,69835,69836,69838,69840,69842],{"class":36,"line":66582},[34,69837,18250],{"class":580},[34,69839,51094],{"class":181},[34,69841,10252],{"class":580},[34,69843,51040],{"class":181},[34,69845,69846,69848,69850,69852,69854],{"class":36,"line":66587},[34,69847,49573],{"class":580},[34,69849,51094],{"class":181},[34,69851,51035],{"class":580},[34,69853,36375],{"class":580},[34,69855,51168],{"class":181},[34,69857,69858],{"class":36,"line":66592},[34,69859,69860],{"class":181},"            dfs(node)\n",[34,69862,69863],{"class":36,"line":66599},[34,69864,62],{"emptyLinePlaceholder":61},[34,69866,69867,69869,69872,69874,69876,69879],{"class":36,"line":66604},[34,69868,1564],{"class":580},[34,69870,69871],{"class":181}," result[::",[34,69873,22062],{"class":580},[34,69875,8318],{"class":50},[34,69877,69878],{"class":181},"]         ",[34,69880,69881],{"class":40},"# Reverse post-order = topological order\n",[34,69883,69884],{"class":36,"line":66609},[34,69885,62],{"emptyLinePlaceholder":61},[34,69887,69888],{"class":36,"line":66614},[34,69889,62],{"emptyLinePlaceholder":61},[34,69891,69892,69894,69897],{"class":36,"line":66638},[34,69893,49400],{"class":580},[34,69895,69896],{"class":47}," dfs_find_all_paths",[34,69898,1882],{"class":181},[34,69900,69901,69903,69905,69907,69909,69911,69913,69915],{"class":36,"line":66658},[34,69902,66995],{"class":181},[34,69904,12646],{"class":50},[34,69906,66839],{"class":181},[34,69908,12646],{"class":50},[34,69910,66844],{"class":181},[34,69912,12646],{"class":50},[34,69914,67008],{"class":181},[34,69916,67011],{"class":50},[34,69918,69919,69921,69923],{"class":36,"line":66679},[34,69920,67236],{"class":181},[34,69922,12646],{"class":50},[34,69924,67241],{"class":181},[34,69926,69927],{"class":36,"line":66697},[34,69928,69929],{"class":54},"    \"\"\"Find ALL paths from start to end using DFS backtracking.\"\"\"\n",[34,69931,69932,69935,69937],{"class":36,"line":66710},[34,69933,69934],{"class":181},"    all_paths ",[34,69936,1301],{"class":580},[34,69938,53166],{"class":181},[34,69940,69941],{"class":36,"line":66723},[34,69942,62],{"emptyLinePlaceholder":61},[34,69944,69945,69947,69949,69952,69954,69957,69959,69962,69964,69966,69968],{"class":36,"line":66736},[34,69946,65417],{"class":580},[34,69948,68510],{"class":47},[34,69950,69951],{"class":181},"(current: ",[34,69953,12646],{"class":50},[34,69955,69956],{"class":181},", path: list[",[34,69958,12646],{"class":50},[34,69960,69961],{"class":181},"], visited: ",[34,69963,1648],{"class":50},[34,69965,63775],{"class":181},[34,69967,51018],{"class":50},[34,69969,193],{"class":181},[34,69971,69972,69974,69976,69978],{"class":36,"line":66741},[34,69973,49573],{"class":580},[34,69975,51163],{"class":181},[34,69977,18168],{"class":580},[34,69979,67042],{"class":181},[34,69981,69982,69985,69987,69990],{"class":36,"line":66746},[34,69983,69984],{"class":181},"            all_paths.append(",[34,69986,63577],{"class":50},[34,69988,69989],{"class":181},"(path))    ",[34,69991,69992],{"class":40},"# Found a complete path\n",[34,69994,69995],{"class":36,"line":66764},[34,69996,69997],{"class":580},"            return\n",[34,69999,70000],{"class":36,"line":66770},[34,70001,62],{"emptyLinePlaceholder":61},[34,70003,70004,70006,70008,70010],{"class":36,"line":66775},[34,70005,50247],{"class":580},[34,70007,66932],{"class":181},[34,70009,10252],{"class":580},[34,70011,66937],{"class":181},[34,70013,70014,70016,70018,70020,70022],{"class":36,"line":66797},[34,70015,49591],{"class":580},[34,70017,66932],{"class":181},[34,70019,51035],{"class":580},[34,70021,36375],{"class":580},[34,70023,51168],{"class":181},[34,70025,70026],{"class":36,"line":67655},[34,70027,67188],{"class":181},[34,70029,70030],{"class":36,"line":67666},[34,70031,70032],{"class":181},"                path.append(neighbor)\n",[34,70034,70035,70038],{"class":36,"line":67677},[34,70036,70037],{"class":181},"                dfs(neighbor, path, visited)    ",[34,70039,70040],{"class":40},"# Recurse\n",[34,70042,70043,70046],{"class":36,"line":67689},[34,70044,70045],{"class":181},"                path.pop()                      ",[34,70047,69668],{"class":40},[34,70049,70050],{"class":36,"line":67694},[34,70051,70052],{"class":181},"                visited.remove(neighbor)\n",[34,70054,70055],{"class":36,"line":67699},[34,70056,62],{"emptyLinePlaceholder":61},[34,70058,70059],{"class":36,"line":67711},[34,70060,70061],{"class":181},"    dfs(start, [start], {start})\n",[34,70063,70064,70066],{"class":36,"line":67717},[34,70065,1564],{"class":580},[34,70067,70068],{"class":181}," all_paths\n",[34,70070,70071],{"class":36,"line":67722},[34,70072,62],{"emptyLinePlaceholder":61},[34,70074,70075],{"class":36,"line":67738},[34,70076,62],{"emptyLinePlaceholder":61},[34,70078,70079],{"class":36,"line":67744},[34,70080,53237],{"class":40},[34,70082,70083,70085,70087],{"class":36,"line":67749},[34,70084,53242],{"class":181},[34,70086,1301],{"class":580},[34,70088,661],{"class":181},[34,70090,70091,70093,70095,70097,70099,70101],{"class":36,"line":67761},[34,70092,50694],{"class":54},[34,70094,47204],{"class":181},[34,70096,50700],{"class":54},[34,70098,1798],{"class":181},[34,70100,50709],{"class":54},[34,70102,46332],{"class":181},[34,70104,70106,70108,70110,70112,70114,70116,70118,70120],{"class":36,"line":70105},115,[34,70107,50720],{"class":54},[34,70109,47204],{"class":181},[34,70111,21516],{"class":54},[34,70113,1798],{"class":181},[34,70115,50733],{"class":54},[34,70117,1798],{"class":181},[34,70119,53331],{"class":54},[34,70121,46332],{"class":181},[34,70123,70125,70127,70129,70131,70133,70135],{"class":36,"line":70124},116,[34,70126,50744],{"class":54},[34,70128,47204],{"class":181},[34,70130,21516],{"class":54},[34,70132,1798],{"class":181},[34,70134,66692],{"class":54},[34,70136,46332],{"class":181},[34,70138,70140,70142,70144,70146],{"class":36,"line":70139},117,[34,70141,50759],{"class":54},[34,70143,47204],{"class":181},[34,70145,50700],{"class":54},[34,70147,46332],{"class":181},[34,70149,70151,70153,70155,70157],{"class":36,"line":70150},118,[34,70152,53372],{"class":54},[34,70154,47204],{"class":181},[34,70156,50700],{"class":54},[34,70158,46332],{"class":181},[34,70160,70162,70164,70166,70168],{"class":36,"line":70161},119,[34,70163,67680],{"class":54},[34,70165,47204],{"class":181},[34,70167,50709],{"class":54},[34,70169,46332],{"class":181},[34,70171,70173],{"class":36,"line":70172},120,[34,70174,693],{"class":181},[34,70176,70178],{"class":36,"line":70177},121,[34,70179,62],{"emptyLinePlaceholder":61},[34,70181,70183,70185,70188,70190],{"class":36,"line":70182},122,[34,70184,53417],{"class":50},[34,70186,70187],{"class":181},"(dfs_recursive(graph, ",[34,70189,21516],{"class":54},[34,70191,11119],{"class":181},[34,70193,70195],{"class":36,"line":70194},123,[34,70196,70197],{"class":40},"# → ['A', 'B', 'D', 'E', 'C', 'F']\n",[34,70199,70201],{"class":36,"line":70200},124,[34,70202,62],{"emptyLinePlaceholder":61},[34,70204,70206,70208,70211,70213],{"class":36,"line":70205},125,[34,70207,53417],{"class":50},[34,70209,70210],{"class":181},"(dfs_iterative(graph, ",[34,70212,21516],{"class":54},[34,70214,11119],{"class":181},[34,70216,70218],{"class":36,"line":70217},126,[34,70219,70197],{"class":40},[34,70221,70223],{"class":36,"line":70222},127,[34,70224,62],{"emptyLinePlaceholder":61},[34,70226,70228,70230,70233,70235,70237,70239],{"class":36,"line":70227},128,[34,70229,53417],{"class":50},[34,70231,70232],{"class":181},"(dfs_find_all_paths(graph, ",[34,70234,21516],{"class":54},[34,70236,1798],{"class":181},[34,70238,66692],{"class":54},[34,70240,11119],{"class":181},[34,70242,70244],{"class":36,"line":70243},129,[34,70245,70246],{"class":40},"# → [['A', 'C', 'F']]\n",[11,70248,70250],{"id":70249},"dfs-vs-bfs","DFS vs BFS",[14308,70252,70253,70263],{},[14311,70254,70255],{},[14314,70256,70257,70259,70261],{},[14317,70258],{},[14317,70260,67782],{},[14317,70262,67779],{},[14326,70264,70265,70275,70285,70295,70305,70315],{},[14314,70266,70267,70271,70273],{},[14331,70268,70269],{},[8471,70270,67791],{},[14331,70272,67797],{},[14331,70274,67794],{},[14314,70276,70277,70281,70283],{},[14331,70278,70279],{},[8471,70280,67804],{},[14331,70282,67810],{},[14331,70284,67807],{},[14314,70286,70287,70291,70293],{},[14331,70288,70289],{},[8471,70290,67817],{},[14331,70292,67823],{},[14331,70294,67820],{},[14314,70296,70297,70301,70303],{},[14331,70298,70299],{},[8471,70300,67830],{},[14331,70302,67836],{},[14331,70304,67833],{},[14314,70306,70307,70311,70313],{},[14331,70308,70309],{},[8471,70310,67843],{},[14331,70312,67849],{},[14331,70314,67846],{},[14314,70316,70317,70321,70323],{},[14331,70318,70319],{},[8471,70320,67856],{},[14331,70322,67862],{},[14331,70324,67859],{},[25,70326,70329],{"className":70327,"code":70328,"language":780,"meta":30},[13703],"Rule of thumb:\n  → \"Does a path exist?\"       →  DFS\n  → \"Shortest / fewest steps\"  →  BFS\n  → \"Weighted shortest path\"   →  Dijkstra\n",[20,70330,70328],{"__ignoreMap":30},[388,70332,17665],{},{"title":30,"searchDepth":44,"depth":44,"links":70334},[70335,70336,70337,70338,70339,70340,70341,70342],{"id":67898,"depth":44,"text":67899},{"id":45381,"depth":44,"text":45382},{"id":63035,"depth":44,"text":63036},{"id":53480,"depth":44,"text":52846},{"id":67938,"depth":44,"text":67939},{"id":64118,"depth":44,"text":64119},{"id":52900,"depth":44,"text":52856},{"id":70249,"depth":44,"text":70250},"DFS graph traversal algorithm with implementations, visualizations, and common use cases for trees and graphs.",{"category":49923,"featured":65586,"icon":70345},"\u003Csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"4\" r=\"2\">\u003C/circle>\u003Ccircle cx=\"5\" cy=\"12\" r=\"2\">\u003C/circle>\u003Ccircle cx=\"19\" cy=\"12\" r=\"2\">\u003C/circle>\u003Ccircle cx=\"2\" cy=\"20\" r=\"2\">\u003C/circle>\u003Ccircle cx=\"8\" cy=\"20\" r=\"2\">\u003C/circle>\u003Cline x1=\"12\" y1=\"6\" x2=\"6\" y2=\"10\">\u003C/line>\u003Cline x1=\"12\" y1=\"6\" x2=\"18\" y2=\"10\">\u003C/line>\u003Cline x1=\"5\" y1=\"14\" x2=\"3\" y2=\"18\">\u003C/line>\u003Cline x1=\"5\" y1=\"14\" x2=\"8\" y2=\"18\">\u003C/line>\u003C/svg>","/examples/depth-first-search",{"title":67893,"description":70343},"examples/depth-first-search",[68871,49921,67888,67889,49923,33729,70350],"recursion","QhbG_i4Q7xlLsOtms1sJYY0K0zQ4KZziR18OcLUwxfc",{"id":70353,"title":70354,"body":70355,"date":2633,"description":73819,"extension":404,"meta":73820,"navigation":61,"order":402,"path":73822,"seo":73823,"stem":73824,"subject":402,"tags":73825,"__hash__":73830},"topics/examples/design-patterns.md","Design Patterns",{"type":8,"value":70356,"toc":73801},[70357,70361,70364,70368,70371,70559,70563,70566,70848,70852,70855,71378,71382,71385,71763,71767,71770,71774,71777,72056,72060,72063,72370,72374,72377,72761,72765,72768,72772,72775,73269,73272,73275,73788,73792,73798],[11,70358,70360],{"id":70359},"creational-patterns","Creational Patterns",[16,70362,70363],{},"Creational patterns deal with object creation — abstracting the instantiation process.",[102,70365,70367],{"id":70366},"singleton","Singleton",[16,70369,70370],{},"Ensures a class has only one instance and provides a global access point.",[25,70372,70374],{"className":571,"code":70373,"language":573,"meta":30,"style":30},"class Database {\n  private static instance: Database;\n  private constructor() {}             // prevent direct instantiation\n\n  static getInstance(): Database {\n    if (!Database.instance) {\n      Database.instance = new Database(); // create only once\n    }\n    return Database.instance;\n  }\n\n  query(sql: string) { /* ... */ }\n}\n\n// Usage — always the same instance\nconst db1 = Database.getInstance();\nconst db2 = Database.getInstance();\nconsole.log(db1 === db2); // true\n",[20,70375,70376,70384,70399,70412,70416,70432,70443,70459,70463,70470,70474,70478,70498,70502,70506,70511,70528,70543],{"__ignoreMap":30},[34,70377,70378,70380,70382],{"class":36,"line":37},[34,70379,30060],{"class":580},[34,70381,17004],{"class":47},[34,70383,661],{"class":181},[34,70385,70386,70388,70390,70393,70395,70397],{"class":36,"line":44},[34,70387,1518],{"class":580},[34,70389,51421],{"class":580},[34,70391,70392],{"class":675}," instance",[34,70394,165],{"class":580},[34,70396,17004],{"class":47},[34,70398,593],{"class":181},[34,70400,70401,70403,70406,70409],{"class":36,"line":58},[34,70402,1518],{"class":580},[34,70404,70405],{"class":580}," constructor",[34,70407,70408],{"class":181},"() {}             ",[34,70410,70411],{"class":40},"// prevent direct instantiation\n",[34,70413,70414],{"class":36,"line":65},[34,70415,62],{"emptyLinePlaceholder":61},[34,70417,70418,70421,70424,70426,70428,70430],{"class":36,"line":71},[34,70419,70420],{"class":580},"  static",[34,70422,70423],{"class":47}," getInstance",[34,70425,1546],{"class":181},[34,70427,165],{"class":580},[34,70429,17004],{"class":47},[34,70431,661],{"class":181},[34,70433,70434,70436,70438,70440],{"class":36,"line":77},[34,70435,2902],{"class":580},[34,70437,3204],{"class":181},[34,70439,10307],{"class":580},[34,70441,70442],{"class":181},"Database.instance) {\n",[34,70444,70445,70448,70450,70452,70454,70456],{"class":36,"line":82},[34,70446,70447],{"class":181},"      Database.instance ",[34,70449,1301],{"class":580},[34,70451,809],{"class":580},[34,70453,17004],{"class":47},[34,70455,68957],{"class":181},[34,70457,70458],{"class":40},"// create only once\n",[34,70460,70461],{"class":36,"line":88},[34,70462,3229],{"class":181},[34,70464,70465,70467],{"class":36,"line":242},[34,70466,1564],{"class":580},[34,70468,70469],{"class":181}," Database.instance;\n",[34,70471,70472],{"class":36,"line":250},[34,70473,857],{"class":181},[34,70475,70476],{"class":36,"line":263},[34,70477,62],{"emptyLinePlaceholder":61},[34,70479,70480,70483,70485,70487,70489,70491,70493,70496],{"class":36,"line":275},[34,70481,70482],{"class":47},"  query",[34,70484,1607],{"class":181},[34,70486,28337],{"class":675},[34,70488,165],{"class":580},[34,70490,680],{"class":50},[34,70492,31392],{"class":181},[34,70494,70495],{"class":40},"/* ... */",[34,70497,52786],{"class":181},[34,70499,70500],{"class":36,"line":700},[34,70501,693],{"class":181},[34,70503,70504],{"class":36,"line":706},[34,70505,62],{"emptyLinePlaceholder":61},[34,70507,70508],{"class":36,"line":715},[34,70509,70510],{"class":40},"// Usage — always the same instance\n",[34,70512,70513,70515,70518,70520,70523,70526],{"class":36,"line":725},[34,70514,14676],{"class":580},[34,70516,70517],{"class":50}," db1",[34,70519,683],{"class":580},[34,70521,70522],{"class":181}," Database.",[34,70524,70525],{"class":47},"getInstance",[34,70527,851],{"class":181},[34,70529,70530,70532,70535,70537,70539,70541],{"class":36,"line":734},[34,70531,14676],{"class":580},[34,70533,70534],{"class":50}," db2",[34,70536,683],{"class":580},[34,70538,70522],{"class":181},[34,70540,70525],{"class":47},[34,70542,851],{"class":181},[34,70544,70545,70547,70549,70552,70554,70557],{"class":36,"line":742},[34,70546,15183],{"class":181},[34,70548,2424],{"class":47},[34,70550,70551],{"class":181},"(db1 ",[34,70553,15543],{"class":580},[34,70555,70556],{"class":181}," db2); ",[34,70558,33492],{"class":40},[102,70560,70562],{"id":70561},"factory-method","Factory Method",[16,70564,70565],{},"Defines an interface for creating objects, but lets subclasses decide which class to instantiate.",[25,70567,70569],{"className":571,"code":70568,"language":573,"meta":30,"style":30},"// Product interface\ninterface Logger {\n  log(message: string): void;\n}\n\n// Concrete products\nclass ConsoleLogger implements Logger {\n  log(message: string) { console.log(`[Console] ${message}`); }\n}\n\nclass FileLogger implements Logger {\n  log(message: string) { /* write to file */ }\n}\n\n// Factory — centralizes creation logic\nfunction createLogger(type: 'console' | 'file'): Logger {\n  if (type === 'console') return new ConsoleLogger();\n  if (type === 'file') return new FileLogger();\n  throw new Error(`Unknown logger type: ${type}`);\n}\n\n// Usage — caller doesn't know the concrete class\nconst logger = createLogger('console');\nlogger.log('App started');\n",[20,70570,70571,70576,70585,70606,70610,70614,70619,70632,70660,70664,70668,70681,70700,70704,70708,70713,70742,70763,70783,70803,70807,70811,70816,70834],{"__ignoreMap":30},[34,70572,70573],{"class":36,"line":37},[34,70574,70575],{"class":40},"// Product interface\n",[34,70577,70578,70580,70583],{"class":36,"line":44},[34,70579,17562],{"class":580},[34,70581,70582],{"class":47}," Logger",[34,70584,661],{"class":181},[34,70586,70587,70590,70592,70594,70596,70598,70600,70602,70604],{"class":36,"line":58},[34,70588,70589],{"class":47},"  log",[34,70591,1607],{"class":181},[34,70593,15736],{"class":675},[34,70595,165],{"class":580},[34,70597,680],{"class":50},[34,70599,1617],{"class":181},[34,70601,165],{"class":580},[34,70603,31514],{"class":50},[34,70605,593],{"class":181},[34,70607,70608],{"class":36,"line":65},[34,70609,693],{"class":181},[34,70611,70612],{"class":36,"line":71},[34,70613,62],{"emptyLinePlaceholder":61},[34,70615,70616],{"class":36,"line":77},[34,70617,70618],{"class":40},"// Concrete products\n",[34,70620,70621,70623,70626,70628,70630],{"class":36,"line":82},[34,70622,30060],{"class":580},[34,70624,70625],{"class":47}," ConsoleLogger",[34,70627,2334],{"class":580},[34,70629,70582],{"class":47},[34,70631,661],{"class":181},[34,70633,70634,70636,70638,70640,70642,70644,70647,70649,70651,70654,70656,70658],{"class":36,"line":88},[34,70635,70589],{"class":47},[34,70637,1607],{"class":181},[34,70639,15736],{"class":675},[34,70641,165],{"class":580},[34,70643,680],{"class":50},[34,70645,70646],{"class":181},") { console.",[34,70648,2424],{"class":47},[34,70650,1607],{"class":181},[34,70652,70653],{"class":54},"`[Console] ${",[34,70655,15736],{"class":181},[34,70657,3925],{"class":54},[34,70659,58956],{"class":181},[34,70661,70662],{"class":36,"line":242},[34,70663,693],{"class":181},[34,70665,70666],{"class":36,"line":250},[34,70667,62],{"emptyLinePlaceholder":61},[34,70669,70670,70672,70675,70677,70679],{"class":36,"line":263},[34,70671,30060],{"class":580},[34,70673,70674],{"class":47}," FileLogger",[34,70676,2334],{"class":580},[34,70678,70582],{"class":47},[34,70680,661],{"class":181},[34,70682,70683,70685,70687,70689,70691,70693,70695,70698],{"class":36,"line":275},[34,70684,70589],{"class":47},[34,70686,1607],{"class":181},[34,70688,15736],{"class":675},[34,70690,165],{"class":580},[34,70692,680],{"class":50},[34,70694,31392],{"class":181},[34,70696,70697],{"class":40},"/* write to file */",[34,70699,52786],{"class":181},[34,70701,70702],{"class":36,"line":700},[34,70703,693],{"class":181},[34,70705,70706],{"class":36,"line":706},[34,70707,62],{"emptyLinePlaceholder":61},[34,70709,70710],{"class":36,"line":715},[34,70711,70712],{"class":40},"// Factory — centralizes creation logic\n",[34,70714,70715,70717,70720,70722,70724,70726,70729,70731,70734,70736,70738,70740],{"class":36,"line":725},[34,70716,11044],{"class":580},[34,70718,70719],{"class":47}," createLogger",[34,70721,1607],{"class":181},[34,70723,41324],{"class":675},[34,70725,165],{"class":580},[34,70727,70728],{"class":54}," 'console'",[34,70730,7197],{"class":580},[34,70732,70733],{"class":54}," 'file'",[34,70735,1617],{"class":181},[34,70737,165],{"class":580},[34,70739,70582],{"class":47},[34,70741,661],{"class":181},[34,70743,70744,70746,70749,70751,70753,70755,70757,70759,70761],{"class":36,"line":734},[34,70745,8084],{"class":580},[34,70747,70748],{"class":181}," (type ",[34,70750,15543],{"class":580},[34,70752,70728],{"class":54},[34,70754,4817],{"class":181},[34,70756,2917],{"class":580},[34,70758,809],{"class":580},[34,70760,70625],{"class":47},[34,70762,851],{"class":181},[34,70764,70765,70767,70769,70771,70773,70775,70777,70779,70781],{"class":36,"line":742},[34,70766,8084],{"class":580},[34,70768,70748],{"class":181},[34,70770,15543],{"class":580},[34,70772,70733],{"class":54},[34,70774,4817],{"class":181},[34,70776,2917],{"class":580},[34,70778,809],{"class":580},[34,70780,70674],{"class":47},[34,70782,851],{"class":181},[34,70784,70785,70788,70790,70792,70794,70797,70799,70801],{"class":36,"line":748},[34,70786,70787],{"class":580},"  throw",[34,70789,809],{"class":580},[34,70791,48752],{"class":47},[34,70793,1607],{"class":181},[34,70795,70796],{"class":54},"`Unknown logger type: ${",[34,70798,41324],{"class":181},[34,70800,3925],{"class":54},[34,70802,1586],{"class":181},[34,70804,70805],{"class":36,"line":754},[34,70806,693],{"class":181},[34,70808,70809],{"class":36,"line":759},[34,70810,62],{"emptyLinePlaceholder":61},[34,70812,70813],{"class":36,"line":771},[34,70814,70815],{"class":40},"// Usage — caller doesn't know the concrete class\n",[34,70817,70818,70820,70823,70825,70827,70829,70832],{"class":36,"line":794},[34,70819,14676],{"class":580},[34,70821,70822],{"class":50}," logger",[34,70824,683],{"class":580},[34,70826,70719],{"class":47},[34,70828,1607],{"class":181},[34,70830,70831],{"class":54},"'console'",[34,70833,1586],{"class":181},[34,70835,70836,70839,70841,70843,70846],{"class":36,"line":824},[34,70837,70838],{"class":181},"logger.",[34,70840,2424],{"class":47},[34,70842,1607],{"class":181},[34,70844,70845],{"class":54},"'App started'",[34,70847,1586],{"class":181},[102,70849,70851],{"id":70850},"builder","Builder",[16,70853,70854],{},"Constructs complex objects step-by-step, separating construction from representation.",[25,70856,70858],{"className":571,"code":70857,"language":573,"meta":30,"style":30},"class QueryBuilder {\n  private table = '';\n  private conditions: string[] = [];\n  private columns = '*';\n  private limitValue?: number;\n\n  from(table: string): this {\n    this.table = table;\n    return this;                         // fluent interface — chain calls\n  }\n\n  select(...columns: string[]): this {\n    this.columns = columns.join(', ');\n    return this;\n  }\n\n  where(condition: string): this {\n    this.conditions.push(condition);\n    return this;\n  }\n\n  limit(n: number): this {\n    this.limitValue = n;\n    return this;\n  }\n\n  build(): string {\n    let query = `SELECT ${this.columns} FROM ${this.table}`;\n    if (this.conditions.length) query += ` WHERE ${this.conditions.join(' AND ')}`;\n    if (this.limitValue) query += ` LIMIT ${this.limitValue}`;\n    return query;\n  }\n}\n\n// Usage — readable step-by-step construction\nconst query = new QueryBuilder()\n  .from('users')\n  .select('id', 'name', 'email')\n  .where('age > 18')\n  .where('active = true')\n  .limit(10)\n  .build();\n// SELECT id, name, email FROM users WHERE age > 18 AND active = true LIMIT 10\n",[20,70859,70860,70869,70881,70898,70912,70925,70929,70949,70961,70972,70976,70980,71005,71027,71035,71039,71043,71065,71077,71085,71089,71093,71114,71125,71133,71137,71141,71153,71184,71226,71253,71260,71264,71268,71272,71277,71291,71304,71326,71339,71352,71364,71373],{"__ignoreMap":30},[34,70861,70862,70864,70867],{"class":36,"line":37},[34,70863,30060],{"class":580},[34,70865,70866],{"class":47}," QueryBuilder",[34,70868,661],{"class":181},[34,70870,70871,70873,70875,70877,70879],{"class":36,"line":44},[34,70872,1518],{"class":580},[34,70874,9236],{"class":675},[34,70876,683],{"class":580},[34,70878,686],{"class":54},[34,70880,593],{"class":181},[34,70882,70883,70885,70888,70890,70892,70894,70896],{"class":36,"line":58},[34,70884,1518],{"class":580},[34,70886,70887],{"class":675}," conditions",[34,70889,165],{"class":580},[34,70891,680],{"class":50},[34,70893,4063],{"class":181},[34,70895,1301],{"class":580},[34,70897,4068],{"class":181},[34,70899,70900,70902,70905,70907,70910],{"class":36,"line":65},[34,70901,1518],{"class":580},[34,70903,70904],{"class":675}," columns",[34,70906,683],{"class":580},[34,70908,70909],{"class":54}," '*'",[34,70911,593],{"class":181},[34,70913,70914,70916,70919,70921,70923],{"class":36,"line":71},[34,70915,1518],{"class":580},[34,70917,70918],{"class":675}," limitValue",[34,70920,66309],{"class":580},[34,70922,2741],{"class":50},[34,70924,593],{"class":181},[34,70926,70927],{"class":36,"line":77},[34,70928,62],{"emptyLinePlaceholder":61},[34,70930,70931,70933,70935,70937,70939,70941,70943,70945,70947],{"class":36,"line":82},[34,70932,41881],{"class":47},[34,70934,1607],{"class":181},[34,70936,14308],{"class":675},[34,70938,165],{"class":580},[34,70940,680],{"class":50},[34,70942,1617],{"class":181},[34,70944,165],{"class":580},[34,70946,1567],{"class":50},[34,70948,661],{"class":181},[34,70950,70951,70953,70956,70958],{"class":36,"line":88},[34,70952,842],{"class":50},[34,70954,70955],{"class":181},".table ",[34,70957,1301],{"class":580},[34,70959,70960],{"class":181}," table;\n",[34,70962,70963,70965,70967,70969],{"class":36,"line":242},[34,70964,1564],{"class":580},[34,70966,1567],{"class":50},[34,70968,40188],{"class":181},[34,70970,70971],{"class":40},"// fluent interface — chain calls\n",[34,70973,70974],{"class":36,"line":250},[34,70975,857],{"class":181},[34,70977,70978],{"class":36,"line":263},[34,70979,62],{"emptyLinePlaceholder":61},[34,70981,70982,70985,70987,70989,70992,70994,70996,70999,71001,71003],{"class":36,"line":275},[34,70983,70984],{"class":47},"  select",[34,70986,1607],{"class":181},[34,70988,16841],{"class":580},[34,70990,70991],{"class":675},"columns",[34,70993,165],{"class":580},[34,70995,680],{"class":50},[34,70997,70998],{"class":181},"[])",[34,71000,165],{"class":580},[34,71002,1567],{"class":50},[34,71004,661],{"class":181},[34,71006,71007,71009,71012,71014,71017,71020,71022,71025],{"class":36,"line":700},[34,71008,842],{"class":50},[34,71010,71011],{"class":181},".columns ",[34,71013,1301],{"class":580},[34,71015,71016],{"class":181}," columns.",[34,71018,71019],{"class":47},"join",[34,71021,1607],{"class":181},[34,71023,71024],{"class":54},"', '",[34,71026,1586],{"class":181},[34,71028,71029,71031,71033],{"class":36,"line":706},[34,71030,1564],{"class":580},[34,71032,1567],{"class":50},[34,71034,593],{"class":181},[34,71036,71037],{"class":36,"line":715},[34,71038,857],{"class":181},[34,71040,71041],{"class":36,"line":725},[34,71042,62],{"emptyLinePlaceholder":61},[34,71044,71045,71048,71050,71053,71055,71057,71059,71061,71063],{"class":36,"line":734},[34,71046,71047],{"class":47},"  where",[34,71049,1607],{"class":181},[34,71051,71052],{"class":675},"condition",[34,71054,165],{"class":580},[34,71056,680],{"class":50},[34,71058,1617],{"class":181},[34,71060,165],{"class":580},[34,71062,1567],{"class":50},[34,71064,661],{"class":181},[34,71066,71067,71069,71072,71074],{"class":36,"line":742},[34,71068,842],{"class":50},[34,71070,71071],{"class":181},".conditions.",[34,71073,50165],{"class":47},[34,71075,71076],{"class":181},"(condition);\n",[34,71078,71079,71081,71083],{"class":36,"line":748},[34,71080,1564],{"class":580},[34,71082,1567],{"class":50},[34,71084,593],{"class":181},[34,71086,71087],{"class":36,"line":754},[34,71088,857],{"class":181},[34,71090,71091],{"class":36,"line":759},[34,71092,62],{"emptyLinePlaceholder":61},[34,71094,71095,71098,71100,71102,71104,71106,71108,71110,71112],{"class":36,"line":771},[34,71096,71097],{"class":47},"  limit",[34,71099,1607],{"class":181},[34,71101,6217],{"class":675},[34,71103,165],{"class":580},[34,71105,2741],{"class":50},[34,71107,1617],{"class":181},[34,71109,165],{"class":580},[34,71111,1567],{"class":50},[34,71113,661],{"class":181},[34,71115,71116,71118,71121,71123],{"class":36,"line":794},[34,71117,842],{"class":50},[34,71119,71120],{"class":181},".limitValue ",[34,71122,1301],{"class":580},[34,71124,36402],{"class":181},[34,71126,71127,71129,71131],{"class":36,"line":824},[34,71128,1564],{"class":580},[34,71130,1567],{"class":50},[34,71132,593],{"class":181},[34,71134,71135],{"class":36,"line":830},[34,71136,857],{"class":181},[34,71138,71139],{"class":36,"line":839},[34,71140,62],{"emptyLinePlaceholder":61},[34,71142,71143,71145,71147,71149,71151],{"class":36,"line":854},[34,71144,227],{"class":47},[34,71146,1546],{"class":181},[34,71148,165],{"class":580},[34,71150,680],{"class":50},[34,71152,661],{"class":181},[34,71154,71155,71157,71160,71162,71165,71167,71169,71171,71174,71176,71178,71180,71182],{"class":36,"line":860},[34,71156,13909],{"class":580},[34,71158,71159],{"class":181}," query ",[34,71161,1301],{"class":580},[34,71163,71164],{"class":54}," `SELECT ${",[34,71166,3207],{"class":50},[34,71168,151],{"class":54},[34,71170,70991],{"class":181},[34,71172,71173],{"class":54},"} FROM ${",[34,71175,3207],{"class":50},[34,71177,151],{"class":54},[34,71179,14308],{"class":181},[34,71181,3925],{"class":54},[34,71183,593],{"class":181},[34,71185,71186,71188,71190,71192,71194,71196,71199,71201,71204,71206,71208,71211,71213,71215,71217,71220,71222,71224],{"class":36,"line":865},[34,71187,2902],{"class":580},[34,71189,3204],{"class":181},[34,71191,3207],{"class":50},[34,71193,71071],{"class":181},[34,71195,2908],{"class":50},[34,71197,71198],{"class":181},") query ",[34,71200,31462],{"class":580},[34,71202,71203],{"class":54}," ` WHERE ${",[34,71205,3207],{"class":50},[34,71207,151],{"class":54},[34,71209,71210],{"class":181},"conditions",[34,71212,151],{"class":54},[34,71214,71019],{"class":47},[34,71216,1607],{"class":54},[34,71218,71219],{"class":54},"' AND '",[34,71221,1617],{"class":54},[34,71223,3925],{"class":54},[34,71225,593],{"class":181},[34,71227,71228,71230,71232,71234,71237,71239,71242,71244,71246,71249,71251],{"class":36,"line":870},[34,71229,2902],{"class":580},[34,71231,3204],{"class":181},[34,71233,3207],{"class":50},[34,71235,71236],{"class":181},".limitValue) query ",[34,71238,31462],{"class":580},[34,71240,71241],{"class":54}," ` LIMIT ${",[34,71243,3207],{"class":50},[34,71245,151],{"class":54},[34,71247,71248],{"class":181},"limitValue",[34,71250,3925],{"class":54},[34,71252,593],{"class":181},[34,71254,71255,71257],{"class":36,"line":876},[34,71256,1564],{"class":580},[34,71258,71259],{"class":181}," query;\n",[34,71261,71262],{"class":36,"line":885},[34,71263,857],{"class":181},[34,71265,71266],{"class":36,"line":895},[34,71267,693],{"class":181},[34,71269,71270],{"class":36,"line":904},[34,71271,62],{"emptyLinePlaceholder":61},[34,71273,71274],{"class":36,"line":915},[34,71275,71276],{"class":40},"// Usage — readable step-by-step construction\n",[34,71278,71279,71281,71283,71285,71287,71289],{"class":36,"line":927},[34,71280,14676],{"class":580},[34,71282,17128],{"class":50},[34,71284,683],{"class":580},[34,71286,809],{"class":580},[34,71288,70866],{"class":47},[34,71290,33899],{"class":181},[34,71292,71293,71295,71297,71299,71302],{"class":36,"line":932},[34,71294,61818],{"class":181},[34,71296,587],{"class":47},[34,71298,1607],{"class":181},[34,71300,71301],{"class":54},"'users'",[34,71303,3372],{"class":181},[34,71305,71306,71308,71310,71312,71314,71316,71319,71321,71324],{"class":36,"line":944},[34,71307,61818],{"class":181},[34,71309,58611],{"class":47},[34,71311,1607],{"class":181},[34,71313,3652],{"class":54},[34,71315,1798],{"class":181},[34,71317,71318],{"class":54},"'name'",[34,71320,1798],{"class":181},[34,71322,71323],{"class":54},"'email'",[34,71325,3372],{"class":181},[34,71327,71328,71330,71332,71334,71337],{"class":36,"line":966},[34,71329,61818],{"class":181},[34,71331,35879],{"class":47},[34,71333,1607],{"class":181},[34,71335,71336],{"class":54},"'age > 18'",[34,71338,3372],{"class":181},[34,71340,71341,71343,71345,71347,71350],{"class":36,"line":1948},[34,71342,61818],{"class":181},[34,71344,35879],{"class":47},[34,71346,1607],{"class":181},[34,71348,71349],{"class":54},"'active = true'",[34,71351,3372],{"class":181},[34,71353,71354,71356,71358,71360,71362],{"class":36,"line":1953},[34,71355,61818],{"class":181},[34,71357,2880],{"class":47},[34,71359,1607],{"class":181},[34,71361,11923],{"class":50},[34,71363,3372],{"class":181},[34,71365,71366,71368,71371],{"class":36,"line":3616},[34,71367,61818],{"class":181},[34,71369,71370],{"class":47},"build",[34,71372,851],{"class":181},[34,71374,71375],{"class":36,"line":3622},[34,71376,71377],{"class":40},"// SELECT id, name, email FROM users WHERE age > 18 AND active = true LIMIT 10\n",[102,71379,71381],{"id":71380},"observer","Observer",[16,71383,71384],{},"Defines a one-to-many dependency: when one object changes state, all dependents are notified automatically.",[25,71386,71388],{"className":571,"code":71387,"language":573,"meta":30,"style":30},"type Listener\u003CT> = (data: T) => void;\n\nclass EventEmitter\u003CT> {\n  private listeners: Listener\u003CT>[] = [];\n\n  subscribe(listener: Listener\u003CT>): () => void {\n    this.listeners.push(listener);\n    return () => this.unsubscribe(listener); // returns unsubscribe function\n  }\n\n  unsubscribe(listener: Listener\u003CT>) {\n    this.listeners = this.listeners.filter(l => l !== listener);\n  }\n\n  emit(data: T) {\n    this.listeners.forEach(listener => listener(data)); // notify all subscribers\n  }\n}\n\n// Usage\nconst userEvents = new EventEmitter\u003C{ id: number; name: string }>();\n\nconst unsubscribe = userEvents.subscribe(user => {\n  console.log(`New user registered: ${user.name}`);\n});\n\nuserEvents.emit({ id: 1, name: 'Alice' }); // notifies all listeners\nunsubscribe(); // remove this specific listener\n",[20,71389,71390,71421,71425,71437,71459,71463,71494,71506,71527,71531,71535,71555,71584,71588,71592,71607,71630,71634,71638,71642,71646,71678,71682,71704,71725,71729,71733,71754],{"__ignoreMap":30},[34,71391,71392,71394,71397,71399,71401,71403,71405,71407,71409,71411,71413,71415,71417,71419],{"class":36,"line":37},[34,71393,41324],{"class":580},[34,71395,71396],{"class":47}," Listener",[34,71398,815],{"class":181},[34,71400,32671],{"class":47},[34,71402,32840],{"class":181},[34,71404,1301],{"class":580},[34,71406,3204],{"class":181},[34,71408,1701],{"class":675},[34,71410,165],{"class":580},[34,71412,32664],{"class":47},[34,71414,4817],{"class":181},[34,71416,3361],{"class":580},[34,71418,31514],{"class":50},[34,71420,593],{"class":181},[34,71422,71423],{"class":36,"line":44},[34,71424,62],{"emptyLinePlaceholder":61},[34,71426,71427,71429,71431,71433,71435],{"class":36,"line":58},[34,71428,30060],{"class":580},[34,71430,812],{"class":47},[34,71432,815],{"class":181},[34,71434,32671],{"class":47},[34,71436,1719],{"class":181},[34,71438,71439,71441,71444,71446,71448,71450,71452,71455,71457],{"class":36,"line":65},[34,71440,1518],{"class":580},[34,71442,71443],{"class":675}," listeners",[34,71445,165],{"class":580},[34,71447,71396],{"class":47},[34,71449,815],{"class":181},[34,71451,32671],{"class":47},[34,71453,71454],{"class":181},">[] ",[34,71456,1301],{"class":580},[34,71458,4068],{"class":181},[34,71460,71461],{"class":36,"line":71},[34,71462,62],{"emptyLinePlaceholder":61},[34,71464,71465,71468,71470,71473,71475,71477,71479,71481,71484,71486,71488,71490,71492],{"class":36,"line":77},[34,71466,71467],{"class":47},"  subscribe",[34,71469,1607],{"class":181},[34,71471,71472],{"class":675},"listener",[34,71474,165],{"class":580},[34,71476,71396],{"class":47},[34,71478,815],{"class":181},[34,71480,32671],{"class":47},[34,71482,71483],{"class":181},">)",[34,71485,165],{"class":580},[34,71487,17406],{"class":181},[34,71489,3361],{"class":580},[34,71491,31514],{"class":50},[34,71493,661],{"class":181},[34,71495,71496,71498,71501,71503],{"class":36,"line":82},[34,71497,842],{"class":50},[34,71499,71500],{"class":181},".listeners.",[34,71502,50165],{"class":47},[34,71504,71505],{"class":181},"(listener);\n",[34,71507,71508,71510,71512,71514,71516,71518,71521,71524],{"class":36,"line":88},[34,71509,1564],{"class":580},[34,71511,17406],{"class":181},[34,71513,3361],{"class":580},[34,71515,1567],{"class":50},[34,71517,151],{"class":181},[34,71519,71520],{"class":47},"unsubscribe",[34,71522,71523],{"class":181},"(listener); ",[34,71525,71526],{"class":40},"// returns unsubscribe function\n",[34,71528,71529],{"class":36,"line":242},[34,71530,857],{"class":181},[34,71532,71533],{"class":36,"line":250},[34,71534,62],{"emptyLinePlaceholder":61},[34,71536,71537,71540,71542,71544,71546,71548,71550,71552],{"class":36,"line":263},[34,71538,71539],{"class":47},"  unsubscribe",[34,71541,1607],{"class":181},[34,71543,71472],{"class":675},[34,71545,165],{"class":580},[34,71547,71396],{"class":47},[34,71549,815],{"class":181},[34,71551,32671],{"class":47},[34,71553,71554],{"class":181},">) {\n",[34,71556,71557,71559,71562,71564,71566,71568,71570,71572,71574,71576,71579,71581],{"class":36,"line":275},[34,71558,842],{"class":50},[34,71560,71561],{"class":181},".listeners ",[34,71563,1301],{"class":580},[34,71565,1567],{"class":50},[34,71567,71500],{"class":181},[34,71569,32125],{"class":47},[34,71571,1607],{"class":181},[34,71573,12757],{"class":675},[34,71575,1895],{"class":580},[34,71577,71578],{"class":181}," l ",[34,71580,48741],{"class":580},[34,71582,71583],{"class":181}," listener);\n",[34,71585,71586],{"class":36,"line":700},[34,71587,857],{"class":181},[34,71589,71590],{"class":36,"line":706},[34,71591,62],{"emptyLinePlaceholder":61},[34,71593,71594,71597,71599,71601,71603,71605],{"class":36,"line":715},[34,71595,71596],{"class":47},"  emit",[34,71598,1607],{"class":181},[34,71600,1701],{"class":675},[34,71602,165],{"class":580},[34,71604,32664],{"class":47},[34,71606,2416],{"class":181},[34,71608,71609,71611,71613,71615,71617,71619,71621,71624,71627],{"class":36,"line":725},[34,71610,842],{"class":50},[34,71612,71500],{"class":181},[34,71614,4930],{"class":47},[34,71616,1607],{"class":181},[34,71618,71472],{"class":675},[34,71620,1895],{"class":580},[34,71622,71623],{"class":47}," listener",[34,71625,71626],{"class":181},"(data)); ",[34,71628,71629],{"class":40},"// notify all subscribers\n",[34,71631,71632],{"class":36,"line":734},[34,71633,857],{"class":181},[34,71635,71636],{"class":36,"line":742},[34,71637,693],{"class":181},[34,71639,71640],{"class":36,"line":748},[34,71641,62],{"emptyLinePlaceholder":61},[34,71643,71644],{"class":36,"line":754},[34,71645,1113],{"class":40},[34,71647,71648,71650,71653,71655,71657,71659,71661,71663,71665,71667,71669,71671,71673,71675],{"class":36,"line":759},[34,71649,14676],{"class":580},[34,71651,71652],{"class":50}," userEvents",[34,71654,683],{"class":580},[34,71656,809],{"class":580},[34,71658,812],{"class":47},[34,71660,66054],{"class":181},[34,71662,3885],{"class":675},[34,71664,165],{"class":580},[34,71666,2741],{"class":50},[34,71668,10268],{"class":181},[34,71670,178],{"class":675},[34,71672,165],{"class":580},[34,71674,680],{"class":50},[34,71676,71677],{"class":181}," }>();\n",[34,71679,71680],{"class":36,"line":771},[34,71681,62],{"emptyLinePlaceholder":61},[34,71683,71684,71686,71689,71691,71694,71696,71698,71700,71702],{"class":36,"line":794},[34,71685,14676],{"class":580},[34,71687,71688],{"class":50}," unsubscribe",[34,71690,683],{"class":580},[34,71692,71693],{"class":181}," userEvents.",[34,71695,3630],{"class":47},[34,71697,1607],{"class":181},[34,71699,3945],{"class":675},[34,71701,1895],{"class":580},[34,71703,661],{"class":181},[34,71705,71706,71708,71710,71712,71715,71717,71719,71721,71723],{"class":36,"line":824},[34,71707,14929],{"class":181},[34,71709,2424],{"class":47},[34,71711,1607],{"class":181},[34,71713,71714],{"class":54},"`New user registered: ${",[34,71716,3945],{"class":181},[34,71718,151],{"class":54},[34,71720,178],{"class":181},[34,71722,3925],{"class":54},[34,71724,1586],{"class":181},[34,71726,71727],{"class":36,"line":830},[34,71728,14873],{"class":181},[34,71730,71731],{"class":36,"line":839},[34,71732,62],{"emptyLinePlaceholder":61},[34,71734,71735,71738,71740,71742,71744,71746,71748,71751],{"class":36,"line":854},[34,71736,71737],{"class":181},"userEvents.",[34,71739,848],{"class":47},[34,71741,61154],{"class":181},[34,71743,8318],{"class":50},[34,71745,61160],{"class":181},[34,71747,28504],{"class":54},[34,71749,71750],{"class":181}," }); ",[34,71752,71753],{"class":40},"// notifies all listeners\n",[34,71755,71756,71758,71760],{"class":36,"line":860},[34,71757,71520],{"class":47},[34,71759,68957],{"class":181},[34,71761,71762],{"class":40},"// remove this specific listener\n",[11,71764,71766],{"id":71765},"structural-patterns","Structural Patterns",[16,71768,71769],{},"Structural patterns deal with object composition — assembling objects into larger structures.",[102,71771,71773],{"id":71772},"adapter","Adapter",[16,71775,71776],{},"Converts the interface of a class into another interface that clients expect.",[25,71778,71780],{"className":571,"code":71779,"language":573,"meta":30,"style":30},"// Old interface we can't modify\nclass OldPaymentGateway {\n  makePayment(amount: number, currency: string) {\n    return `Paid ${amount} ${currency} via old gateway`;\n  }\n}\n\n// New interface our app expects\ninterface PaymentProcessor {\n  processPayment(amountInCents: number): string;\n}\n\n// Adapter — bridges the incompatible interfaces\nclass PaymentAdapter implements PaymentProcessor {\n  constructor(private legacy: OldPaymentGateway) {}\n\n  processPayment(amountInCents: number): string {\n    const amount = amountInCents / 100;       // convert cents to dollars\n    return this.legacy.makePayment(amount, 'USD');\n  }\n}\n\n// Usage — new code works with old system\nconst processor: PaymentProcessor = new PaymentAdapter(new OldPaymentGateway());\nprocessor.processPayment(4999); // \"Paid 49.99 USD via old gateway\"\n",[20,71781,71782,71787,71796,71821,71840,71844,71848,71852,71857,71866,71888,71892,71896,71901,71914,71932,71936,71956,71977,71996,72000,72004,72008,72013,72038],{"__ignoreMap":30},[34,71783,71784],{"class":36,"line":37},[34,71785,71786],{"class":40},"// Old interface we can't modify\n",[34,71788,71789,71791,71794],{"class":36,"line":44},[34,71790,30060],{"class":580},[34,71792,71793],{"class":47}," OldPaymentGateway",[34,71795,661],{"class":181},[34,71797,71798,71801,71803,71806,71808,71810,71812,71815,71817,71819],{"class":36,"line":58},[34,71799,71800],{"class":47},"  makePayment",[34,71802,1607],{"class":181},[34,71804,71805],{"class":675},"amount",[34,71807,165],{"class":580},[34,71809,2741],{"class":50},[34,71811,1798],{"class":181},[34,71813,71814],{"class":675},"currency",[34,71816,165],{"class":580},[34,71818,680],{"class":50},[34,71820,2416],{"class":181},[34,71822,71823,71825,71828,71830,71833,71835,71838],{"class":36,"line":65},[34,71824,1564],{"class":580},[34,71826,71827],{"class":54}," `Paid ${",[34,71829,71805],{"class":181},[34,71831,71832],{"class":54},"} ${",[34,71834,71814],{"class":181},[34,71836,71837],{"class":54},"} via old gateway`",[34,71839,593],{"class":181},[34,71841,71842],{"class":36,"line":71},[34,71843,857],{"class":181},[34,71845,71846],{"class":36,"line":77},[34,71847,693],{"class":181},[34,71849,71850],{"class":36,"line":82},[34,71851,62],{"emptyLinePlaceholder":61},[34,71853,71854],{"class":36,"line":88},[34,71855,71856],{"class":40},"// New interface our app expects\n",[34,71858,71859,71861,71864],{"class":36,"line":242},[34,71860,17562],{"class":580},[34,71862,71863],{"class":47}," PaymentProcessor",[34,71865,661],{"class":181},[34,71867,71868,71871,71873,71876,71878,71880,71882,71884,71886],{"class":36,"line":250},[34,71869,71870],{"class":47},"  processPayment",[34,71872,1607],{"class":181},[34,71874,71875],{"class":675},"amountInCents",[34,71877,165],{"class":580},[34,71879,2741],{"class":50},[34,71881,1617],{"class":181},[34,71883,165],{"class":580},[34,71885,680],{"class":50},[34,71887,593],{"class":181},[34,71889,71890],{"class":36,"line":263},[34,71891,693],{"class":181},[34,71893,71894],{"class":36,"line":275},[34,71895,62],{"emptyLinePlaceholder":61},[34,71897,71898],{"class":36,"line":700},[34,71899,71900],{"class":40},"// Adapter — bridges the incompatible interfaces\n",[34,71902,71903,71905,71908,71910,71912],{"class":36,"line":706},[34,71904,30060],{"class":580},[34,71906,71907],{"class":47}," PaymentAdapter",[34,71909,2334],{"class":580},[34,71911,71863],{"class":47},[34,71913,661],{"class":181},[34,71915,71916,71918,71920,71923,71926,71928,71930],{"class":36,"line":715},[34,71917,4303],{"class":580},[34,71919,1607],{"class":181},[34,71921,71922],{"class":580},"private",[34,71924,71925],{"class":675}," legacy",[34,71927,165],{"class":580},[34,71929,71793],{"class":47},[34,71931,59124],{"class":181},[34,71933,71934],{"class":36,"line":725},[34,71935,62],{"emptyLinePlaceholder":61},[34,71937,71938,71940,71942,71944,71946,71948,71950,71952,71954],{"class":36,"line":734},[34,71939,71870],{"class":47},[34,71941,1607],{"class":181},[34,71943,71875],{"class":675},[34,71945,165],{"class":580},[34,71947,2741],{"class":50},[34,71949,1617],{"class":181},[34,71951,165],{"class":580},[34,71953,680],{"class":50},[34,71955,661],{"class":181},[34,71957,71958,71960,71963,71965,71968,71970,71972,71974],{"class":36,"line":742},[34,71959,1632],{"class":580},[34,71961,71962],{"class":50}," amount",[34,71964,683],{"class":580},[34,71966,71967],{"class":181}," amountInCents ",[34,71969,12734],{"class":580},[34,71971,25168],{"class":50},[34,71973,38395],{"class":181},[34,71975,71976],{"class":40},"// convert cents to dollars\n",[34,71978,71979,71981,71983,71986,71989,71992,71994],{"class":36,"line":748},[34,71980,1564],{"class":580},[34,71982,1567],{"class":50},[34,71984,71985],{"class":181},".legacy.",[34,71987,71988],{"class":47},"makePayment",[34,71990,71991],{"class":181},"(amount, ",[34,71993,2730],{"class":54},[34,71995,1586],{"class":181},[34,71997,71998],{"class":36,"line":754},[34,71999,857],{"class":181},[34,72001,72002],{"class":36,"line":759},[34,72003,693],{"class":181},[34,72005,72006],{"class":36,"line":771},[34,72007,62],{"emptyLinePlaceholder":61},[34,72009,72010],{"class":36,"line":794},[34,72011,72012],{"class":40},"// Usage — new code works with old system\n",[34,72014,72015,72017,72020,72022,72024,72026,72028,72030,72032,72034,72036],{"class":36,"line":824},[34,72016,14676],{"class":580},[34,72018,72019],{"class":50}," processor",[34,72021,165],{"class":580},[34,72023,71863],{"class":47},[34,72025,683],{"class":580},[34,72027,809],{"class":580},[34,72029,71907],{"class":47},[34,72031,1607],{"class":181},[34,72033,3143],{"class":580},[34,72035,71793],{"class":47},[34,72037,4343],{"class":181},[34,72039,72040,72043,72046,72048,72051,72053],{"class":36,"line":830},[34,72041,72042],{"class":181},"processor.",[34,72044,72045],{"class":47},"processPayment",[34,72047,1607],{"class":181},[34,72049,72050],{"class":50},"4999",[34,72052,8260],{"class":181},[34,72054,72055],{"class":40},"// \"Paid 49.99 USD via old gateway\"\n",[102,72057,72059],{"id":72058},"decorator","Decorator",[16,72061,72062],{},"Attaches additional responsibilities to an object dynamically without modifying its class.",[25,72064,72066],{"className":571,"code":72065,"language":573,"meta":30,"style":30},"interface TextProcessor {\n  process(text: string): string;\n}\n\n// Base implementation\nclass PlainText implements TextProcessor {\n  process(text: string) { return text; }\n}\n\n// Decorators wrap the base and add behaviour\nclass TrimDecorator implements TextProcessor {\n  constructor(private wrapped: TextProcessor) {}\n  process(text: string) {\n    return this.wrapped.process(text.trim()); // trim then delegate\n  }\n}\n\nclass UpperCaseDecorator implements TextProcessor {\n  constructor(private wrapped: TextProcessor) {}\n  process(text: string) {\n    return this.wrapped.process(text).toUpperCase(); // delegate then uppercase\n  }\n}\n\n// Usage — stack decorators in any order\nconst processor = new UpperCaseDecorator(\n  new TrimDecorator(\n    new PlainText()\n  )\n);\nprocessor.process('  hello world  '); // \"HELLO WORLD\"\n",[20,72067,72068,72077,72098,72102,72106,72111,72124,72143,72147,72151,72156,72169,72186,72200,72224,72228,72232,72236,72249,72265,72279,72299,72303,72307,72311,72316,72330,72338,72347,72351,72355],{"__ignoreMap":30},[34,72069,72070,72072,72075],{"class":36,"line":37},[34,72071,17562],{"class":580},[34,72073,72074],{"class":47}," TextProcessor",[34,72076,661],{"class":181},[34,72078,72079,72082,72084,72086,72088,72090,72092,72094,72096],{"class":36,"line":44},[34,72080,72081],{"class":47},"  process",[34,72083,1607],{"class":181},[34,72085,780],{"class":675},[34,72087,165],{"class":580},[34,72089,680],{"class":50},[34,72091,1617],{"class":181},[34,72093,165],{"class":580},[34,72095,680],{"class":50},[34,72097,593],{"class":181},[34,72099,72100],{"class":36,"line":58},[34,72101,693],{"class":181},[34,72103,72104],{"class":36,"line":65},[34,72105,62],{"emptyLinePlaceholder":61},[34,72107,72108],{"class":36,"line":71},[34,72109,72110],{"class":40},"// Base implementation\n",[34,72112,72113,72115,72118,72120,72122],{"class":36,"line":77},[34,72114,30060],{"class":580},[34,72116,72117],{"class":47}," PlainText",[34,72119,2334],{"class":580},[34,72121,72074],{"class":47},[34,72123,661],{"class":181},[34,72125,72126,72128,72130,72132,72134,72136,72138,72140],{"class":36,"line":82},[34,72127,72081],{"class":47},[34,72129,1607],{"class":181},[34,72131,780],{"class":675},[34,72133,165],{"class":580},[34,72135,680],{"class":50},[34,72137,31392],{"class":181},[34,72139,2917],{"class":580},[34,72141,72142],{"class":181}," text; }\n",[34,72144,72145],{"class":36,"line":88},[34,72146,693],{"class":181},[34,72148,72149],{"class":36,"line":242},[34,72150,62],{"emptyLinePlaceholder":61},[34,72152,72153],{"class":36,"line":250},[34,72154,72155],{"class":40},"// Decorators wrap the base and add behaviour\n",[34,72157,72158,72160,72163,72165,72167],{"class":36,"line":263},[34,72159,30060],{"class":580},[34,72161,72162],{"class":47}," TrimDecorator",[34,72164,2334],{"class":580},[34,72166,72074],{"class":47},[34,72168,661],{"class":181},[34,72170,72171,72173,72175,72177,72180,72182,72184],{"class":36,"line":275},[34,72172,4303],{"class":580},[34,72174,1607],{"class":181},[34,72176,71922],{"class":580},[34,72178,72179],{"class":675}," wrapped",[34,72181,165],{"class":580},[34,72183,72074],{"class":47},[34,72185,59124],{"class":181},[34,72187,72188,72190,72192,72194,72196,72198],{"class":36,"line":700},[34,72189,72081],{"class":47},[34,72191,1607],{"class":181},[34,72193,780],{"class":675},[34,72195,165],{"class":580},[34,72197,680],{"class":50},[34,72199,2416],{"class":181},[34,72201,72202,72204,72206,72209,72212,72215,72218,72221],{"class":36,"line":706},[34,72203,1564],{"class":580},[34,72205,1567],{"class":50},[34,72207,72208],{"class":181},".wrapped.",[34,72210,72211],{"class":47},"process",[34,72213,72214],{"class":181},"(text.",[34,72216,72217],{"class":47},"trim",[34,72219,72220],{"class":181},"()); ",[34,72222,72223],{"class":40},"// trim then delegate\n",[34,72225,72226],{"class":36,"line":715},[34,72227,857],{"class":181},[34,72229,72230],{"class":36,"line":725},[34,72231,693],{"class":181},[34,72233,72234],{"class":36,"line":734},[34,72235,62],{"emptyLinePlaceholder":61},[34,72237,72238,72240,72243,72245,72247],{"class":36,"line":742},[34,72239,30060],{"class":580},[34,72241,72242],{"class":47}," UpperCaseDecorator",[34,72244,2334],{"class":580},[34,72246,72074],{"class":47},[34,72248,661],{"class":181},[34,72250,72251,72253,72255,72257,72259,72261,72263],{"class":36,"line":748},[34,72252,4303],{"class":580},[34,72254,1607],{"class":181},[34,72256,71922],{"class":580},[34,72258,72179],{"class":675},[34,72260,165],{"class":580},[34,72262,72074],{"class":47},[34,72264,59124],{"class":181},[34,72266,72267,72269,72271,72273,72275,72277],{"class":36,"line":754},[34,72268,72081],{"class":47},[34,72270,1607],{"class":181},[34,72272,780],{"class":675},[34,72274,165],{"class":580},[34,72276,680],{"class":50},[34,72278,2416],{"class":181},[34,72280,72281,72283,72285,72287,72289,72292,72294,72296],{"class":36,"line":759},[34,72282,1564],{"class":580},[34,72284,1567],{"class":50},[34,72286,72208],{"class":181},[34,72288,72211],{"class":47},[34,72290,72291],{"class":181},"(text).",[34,72293,14027],{"class":47},[34,72295,68957],{"class":181},[34,72297,72298],{"class":40},"// delegate then uppercase\n",[34,72300,72301],{"class":36,"line":771},[34,72302,857],{"class":181},[34,72304,72305],{"class":36,"line":794},[34,72306,693],{"class":181},[34,72308,72309],{"class":36,"line":824},[34,72310,62],{"emptyLinePlaceholder":61},[34,72312,72313],{"class":36,"line":830},[34,72314,72315],{"class":40},"// Usage — stack decorators in any order\n",[34,72317,72318,72320,72322,72324,72326,72328],{"class":36,"line":839},[34,72319,14676],{"class":580},[34,72321,72019],{"class":50},[34,72323,683],{"class":580},[34,72325,809],{"class":580},[34,72327,72242],{"class":47},[34,72329,1882],{"class":181},[34,72331,72332,72334,72336],{"class":36,"line":854},[34,72333,49347],{"class":580},[34,72335,72162],{"class":47},[34,72337,1882],{"class":181},[34,72339,72340,72343,72345],{"class":36,"line":860},[34,72341,72342],{"class":580},"    new",[34,72344,72117],{"class":47},[34,72346,33899],{"class":181},[34,72348,72349],{"class":36,"line":865},[34,72350,17056],{"class":181},[34,72352,72353],{"class":36,"line":870},[34,72354,1586],{"class":181},[34,72356,72357,72359,72361,72363,72366,72368],{"class":36,"line":876},[34,72358,72042],{"class":181},[34,72360,72211],{"class":47},[34,72362,1607],{"class":181},[34,72364,72365],{"class":54},"'  hello world  '",[34,72367,8260],{"class":181},[34,72369,37858],{"class":40},[102,72371,72373],{"id":72372},"facade","Facade",[16,72375,72376],{},"Provides a simplified interface to a complex subsystem.",[25,72378,72380],{"className":571,"code":72379,"language":573,"meta":30,"style":30},"// Complex subsystem classes\nclass AuthService {\n  login(user: string, pass: string) { /* validate credentials */ return true; }\n}\n\nclass SessionService {\n  create(userId: string) { /* create session */ return 'session-token-123'; }\n}\n\nclass AuditLogger {\n  record(event: string) { console.log(`[Audit] ${event}`); }\n}\n\n// Facade — single simple entry point\nclass LoginFacade {\n  private auth = new AuthService();\n  private session = new SessionService();\n  private audit = new AuditLogger();\n\n  login(username: string, password: string): string | null {\n    if (!this.auth.login(username, password)) return null; // authenticate\n    const token = this.session.create(username);           // create session\n    this.audit.record(`${username} logged in`);            // log the event\n    return token;\n  }\n}\n\n// Usage — caller needs only one method\nconst loginFacade = new LoginFacade();\nconst token = loginFacade.login('alice', 'secret');\n",[20,72381,72382,72387,72396,72429,72433,72437,72446,72471,72475,72479,72488,72517,72521,72525,72530,72539,72554,72569,72584,72588,72622,72650,72673,72697,72704,72708,72712,72716,72721,72736],{"__ignoreMap":30},[34,72383,72384],{"class":36,"line":37},[34,72385,72386],{"class":40},"// Complex subsystem classes\n",[34,72388,72389,72391,72394],{"class":36,"line":44},[34,72390,30060],{"class":580},[34,72392,72393],{"class":47}," AuthService",[34,72395,661],{"class":181},[34,72397,72398,72401,72403,72405,72407,72409,72411,72414,72416,72418,72420,72423,72425,72427],{"class":36,"line":58},[34,72399,72400],{"class":47},"  login",[34,72402,1607],{"class":181},[34,72404,3945],{"class":675},[34,72406,165],{"class":580},[34,72408,680],{"class":50},[34,72410,1798],{"class":181},[34,72412,72413],{"class":675},"pass",[34,72415,165],{"class":580},[34,72417,680],{"class":50},[34,72419,31392],{"class":181},[34,72421,72422],{"class":40},"/* validate credentials */",[34,72424,34075],{"class":580},[34,72426,32945],{"class":50},[34,72428,34238],{"class":181},[34,72430,72431],{"class":36,"line":65},[34,72432,693],{"class":181},[34,72434,72435],{"class":36,"line":71},[34,72436,62],{"emptyLinePlaceholder":61},[34,72438,72439,72441,72444],{"class":36,"line":77},[34,72440,30060],{"class":580},[34,72442,72443],{"class":47}," SessionService",[34,72445,661],{"class":181},[34,72447,72448,72450,72452,72455,72457,72459,72461,72464,72466,72469],{"class":36,"line":82},[34,72449,1696],{"class":47},[34,72451,1607],{"class":181},[34,72453,72454],{"class":675},"userId",[34,72456,165],{"class":580},[34,72458,680],{"class":50},[34,72460,31392],{"class":181},[34,72462,72463],{"class":40},"/* create session */",[34,72465,34075],{"class":580},[34,72467,72468],{"class":54}," 'session-token-123'",[34,72470,34238],{"class":181},[34,72472,72473],{"class":36,"line":88},[34,72474,693],{"class":181},[34,72476,72477],{"class":36,"line":242},[34,72478,62],{"emptyLinePlaceholder":61},[34,72480,72481,72483,72486],{"class":36,"line":250},[34,72482,30060],{"class":580},[34,72484,72485],{"class":47}," AuditLogger",[34,72487,661],{"class":181},[34,72489,72490,72493,72495,72498,72500,72502,72504,72506,72508,72511,72513,72515],{"class":36,"line":263},[34,72491,72492],{"class":47},"  record",[34,72494,1607],{"class":181},[34,72496,72497],{"class":675},"event",[34,72499,165],{"class":580},[34,72501,680],{"class":50},[34,72503,70646],{"class":181},[34,72505,2424],{"class":47},[34,72507,1607],{"class":181},[34,72509,72510],{"class":54},"`[Audit] ${",[34,72512,72497],{"class":181},[34,72514,3925],{"class":54},[34,72516,58956],{"class":181},[34,72518,72519],{"class":36,"line":275},[34,72520,693],{"class":181},[34,72522,72523],{"class":36,"line":700},[34,72524,62],{"emptyLinePlaceholder":61},[34,72526,72527],{"class":36,"line":706},[34,72528,72529],{"class":40},"// Facade — single simple entry point\n",[34,72531,72532,72534,72537],{"class":36,"line":715},[34,72533,30060],{"class":580},[34,72535,72536],{"class":47}," LoginFacade",[34,72538,661],{"class":181},[34,72540,72541,72543,72546,72548,72550,72552],{"class":36,"line":725},[34,72542,1518],{"class":580},[34,72544,72545],{"class":675}," auth",[34,72547,683],{"class":580},[34,72549,809],{"class":580},[34,72551,72393],{"class":47},[34,72553,851],{"class":181},[34,72555,72556,72558,72561,72563,72565,72567],{"class":36,"line":734},[34,72557,1518],{"class":580},[34,72559,72560],{"class":675}," session",[34,72562,683],{"class":580},[34,72564,809],{"class":580},[34,72566,72443],{"class":47},[34,72568,851],{"class":181},[34,72570,72571,72573,72576,72578,72580,72582],{"class":36,"line":742},[34,72572,1518],{"class":580},[34,72574,72575],{"class":675}," audit",[34,72577,683],{"class":580},[34,72579,809],{"class":580},[34,72581,72485],{"class":47},[34,72583,851],{"class":181},[34,72585,72586],{"class":36,"line":748},[34,72587,62],{"emptyLinePlaceholder":61},[34,72589,72590,72592,72594,72597,72599,72601,72603,72606,72608,72610,72612,72614,72616,72618,72620],{"class":36,"line":754},[34,72591,72400],{"class":47},[34,72593,1607],{"class":181},[34,72595,72596],{"class":675},"username",[34,72598,165],{"class":580},[34,72600,680],{"class":50},[34,72602,1798],{"class":181},[34,72604,72605],{"class":675},"password",[34,72607,165],{"class":580},[34,72609,680],{"class":50},[34,72611,1617],{"class":181},[34,72613,165],{"class":580},[34,72615,680],{"class":50},[34,72617,7197],{"class":580},[34,72619,13898],{"class":50},[34,72621,661],{"class":181},[34,72623,72624,72626,72628,72630,72632,72635,72638,72641,72643,72645,72647],{"class":36,"line":759},[34,72625,2902],{"class":580},[34,72627,3204],{"class":181},[34,72629,10307],{"class":580},[34,72631,3207],{"class":50},[34,72633,72634],{"class":181},".auth.",[34,72636,72637],{"class":47},"login",[34,72639,72640],{"class":181},"(username, password)) ",[34,72642,2917],{"class":580},[34,72644,13898],{"class":50},[34,72646,10268],{"class":181},[34,72648,72649],{"class":40},"// authenticate\n",[34,72651,72652,72654,72657,72659,72661,72664,72667,72670],{"class":36,"line":771},[34,72653,1632],{"class":580},[34,72655,72656],{"class":50}," token",[34,72658,683],{"class":580},[34,72660,1567],{"class":50},[34,72662,72663],{"class":181},".session.",[34,72665,72666],{"class":47},"create",[34,72668,72669],{"class":181},"(username);           ",[34,72671,72672],{"class":40},"// create session\n",[34,72674,72675,72677,72680,72683,72685,72687,72689,72692,72694],{"class":36,"line":794},[34,72676,842],{"class":50},[34,72678,72679],{"class":181},".audit.",[34,72681,72682],{"class":47},"record",[34,72684,1607],{"class":181},[34,72686,3910],{"class":54},[34,72688,72596],{"class":181},[34,72690,72691],{"class":54},"} logged in`",[34,72693,38697],{"class":181},[34,72695,72696],{"class":40},"// log the event\n",[34,72698,72699,72701],{"class":36,"line":824},[34,72700,1564],{"class":580},[34,72702,72703],{"class":181}," token;\n",[34,72705,72706],{"class":36,"line":830},[34,72707,857],{"class":181},[34,72709,72710],{"class":36,"line":839},[34,72711,693],{"class":181},[34,72713,72714],{"class":36,"line":854},[34,72715,62],{"emptyLinePlaceholder":61},[34,72717,72718],{"class":36,"line":860},[34,72719,72720],{"class":40},"// Usage — caller needs only one method\n",[34,72722,72723,72725,72728,72730,72732,72734],{"class":36,"line":865},[34,72724,14676],{"class":580},[34,72726,72727],{"class":50}," loginFacade",[34,72729,683],{"class":580},[34,72731,809],{"class":580},[34,72733,72536],{"class":47},[34,72735,851],{"class":181},[34,72737,72738,72740,72742,72744,72747,72749,72751,72754,72756,72759],{"class":36,"line":870},[34,72739,14676],{"class":580},[34,72741,72656],{"class":50},[34,72743,683],{"class":580},[34,72745,72746],{"class":181}," loginFacade.",[34,72748,72637],{"class":47},[34,72750,1607],{"class":181},[34,72752,72753],{"class":54},"'alice'",[34,72755,1798],{"class":181},[34,72757,72758],{"class":54},"'secret'",[34,72760,1586],{"class":181},[11,72762,72764],{"id":72763},"behavioral-patterns","Behavioral Patterns",[16,72766,72767],{},"Behavioral patterns deal with communication between objects.",[102,72769,72771],{"id":72770},"strategy","Strategy",[16,72773,72774],{},"Defines a family of algorithms, encapsulates each one, and makes them interchangeable.",[25,72776,72778],{"className":571,"code":72777,"language":573,"meta":30,"style":30},"// Strategy interface — common contract for all algorithms\ninterface SortStrategy {\n  sort(data: number[]): number[];\n}\n\n// Concrete strategies — swap implementations freely\nclass BubbleSort implements SortStrategy {\n  sort(data: number[]) {\n    const arr = [...data];\n    for (let i = 0; i \u003C arr.length; i++)\n      for (let j = 0; j \u003C arr.length - i - 1; j++)\n        if (arr[j] > arr[j + 1]) [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];\n    return arr;\n  }\n}\n\nclass NativeSort implements SortStrategy {\n  sort(data: number[]) { return [...data].sort((a, b) => a - b); }\n}\n\n// Context — uses whichever strategy is set\nclass Sorter {\n  constructor(private strategy: SortStrategy) {}\n\n  setStrategy(strategy: SortStrategy) { this.strategy = strategy; }\n\n  sort(data: number[]) { return this.strategy.sort(data); }\n}\n\n// Usage — swap strategies at runtime\nconst sorter = new Sorter(new NativeSort());\nsorter.sort([3, 1, 4, 1, 5]); // fast for most cases\n\nsorter.setStrategy(new BubbleSort()); // switch to different algorithm\nsorter.sort([3, 1, 4, 1, 5]);\n",[20,72779,72780,72785,72794,72816,72820,72824,72829,72842,72857,72872,72900,72940,72977,72984,72988,72992,72996,73009,73054,73058,73062,73067,73076,73093,73097,73122,73126,73152,73156,73160,73165,73186,73219,73223,73241],{"__ignoreMap":30},[34,72781,72782],{"class":36,"line":37},[34,72783,72784],{"class":40},"// Strategy interface — common contract for all algorithms\n",[34,72786,72787,72789,72792],{"class":36,"line":44},[34,72788,17562],{"class":580},[34,72790,72791],{"class":47}," SortStrategy",[34,72793,661],{"class":181},[34,72795,72796,72799,72801,72803,72805,72807,72809,72811,72813],{"class":36,"line":58},[34,72797,72798],{"class":47},"  sort",[34,72800,1607],{"class":181},[34,72802,1701],{"class":675},[34,72804,165],{"class":580},[34,72806,2741],{"class":50},[34,72808,70998],{"class":181},[34,72810,165],{"class":580},[34,72812,2741],{"class":50},[34,72814,72815],{"class":181},"[];\n",[34,72817,72818],{"class":36,"line":65},[34,72819,693],{"class":181},[34,72821,72822],{"class":36,"line":71},[34,72823,62],{"emptyLinePlaceholder":61},[34,72825,72826],{"class":36,"line":77},[34,72827,72828],{"class":40},"// Concrete strategies — swap implementations freely\n",[34,72830,72831,72833,72836,72838,72840],{"class":36,"line":82},[34,72832,30060],{"class":580},[34,72834,72835],{"class":47}," BubbleSort",[34,72837,2334],{"class":580},[34,72839,72791],{"class":47},[34,72841,661],{"class":181},[34,72843,72844,72846,72848,72850,72852,72854],{"class":36,"line":88},[34,72845,72798],{"class":47},[34,72847,1607],{"class":181},[34,72849,1701],{"class":675},[34,72851,165],{"class":580},[34,72853,2741],{"class":50},[34,72855,72856],{"class":181},"[]) {\n",[34,72858,72859,72861,72863,72865,72867,72869],{"class":36,"line":242},[34,72860,1632],{"class":580},[34,72862,23347],{"class":50},[34,72864,683],{"class":580},[34,72866,8315],{"class":181},[34,72868,16841],{"class":580},[34,72870,72871],{"class":181},"data];\n",[34,72873,72874,72876,72878,72880,72882,72884,72886,72888,72890,72892,72894,72896,72898],{"class":36,"line":250},[34,72875,18250],{"class":580},[34,72877,3204],{"class":181},[34,72879,8268],{"class":580},[34,72881,10300],{"class":181},[34,72883,1301],{"class":580},[34,72885,8070],{"class":50},[34,72887,18263],{"class":181},[34,72889,815],{"class":580},[34,72891,63106],{"class":181},[34,72893,2908],{"class":50},[34,72895,11918],{"class":181},[34,72897,11928],{"class":580},[34,72899,3372],{"class":181},[34,72901,72902,72905,72907,72909,72912,72914,72916,72919,72921,72923,72925,72927,72929,72931,72933,72936,72938],{"class":36,"line":263},[34,72903,72904],{"class":580},"      for",[34,72906,3204],{"class":181},[34,72908,8268],{"class":580},[34,72910,72911],{"class":181}," j ",[34,72913,1301],{"class":580},[34,72915,8070],{"class":50},[34,72917,72918],{"class":181},"; j ",[34,72920,815],{"class":580},[34,72922,63106],{"class":181},[34,72924,2908],{"class":50},[34,72926,19423],{"class":580},[34,72928,10300],{"class":181},[34,72930,22062],{"class":580},[34,72932,3567],{"class":50},[34,72934,72935],{"class":181},"; j",[34,72937,11928],{"class":580},[34,72939,3372],{"class":181},[34,72941,72942,72944,72947,72949,72952,72954,72956,72959,72961,72963,72965,72967,72970,72972,72974],{"class":36,"line":275},[34,72943,49573],{"class":580},[34,72945,72946],{"class":181}," (arr[j] ",[34,72948,5691],{"class":580},[34,72950,72951],{"class":181}," arr[j ",[34,72953,2940],{"class":580},[34,72955,3567],{"class":50},[34,72957,72958],{"class":181},"]) [arr[j], arr[j ",[34,72960,2940],{"class":580},[34,72962,3567],{"class":50},[34,72964,67281],{"class":181},[34,72966,1301],{"class":580},[34,72968,72969],{"class":181}," [arr[j ",[34,72971,2940],{"class":580},[34,72973,3567],{"class":50},[34,72975,72976],{"class":181},"], arr[j]];\n",[34,72978,72979,72981],{"class":36,"line":700},[34,72980,1564],{"class":580},[34,72982,72983],{"class":181}," arr;\n",[34,72985,72986],{"class":36,"line":706},[34,72987,857],{"class":181},[34,72989,72990],{"class":36,"line":715},[34,72991,693],{"class":181},[34,72993,72994],{"class":36,"line":725},[34,72995,62],{"emptyLinePlaceholder":61},[34,72997,72998,73000,73003,73005,73007],{"class":36,"line":734},[34,72999,30060],{"class":580},[34,73001,73002],{"class":47}," NativeSort",[34,73004,2334],{"class":580},[34,73006,72791],{"class":47},[34,73008,661],{"class":181},[34,73010,73011,73013,73015,73017,73019,73021,73024,73026,73028,73030,73033,73035,73037,73039,73041,73043,73045,73047,73049,73051],{"class":36,"line":742},[34,73012,72798],{"class":47},[34,73014,1607],{"class":181},[34,73016,1701],{"class":675},[34,73018,165],{"class":580},[34,73020,2741],{"class":50},[34,73022,73023],{"class":181},"[]) { ",[34,73025,2917],{"class":580},[34,73027,8315],{"class":181},[34,73029,16841],{"class":580},[34,73031,73032],{"class":181},"data].",[34,73034,13152],{"class":47},[34,73036,8348],{"class":181},[34,73038,145],{"class":675},[34,73040,1798],{"class":181},[34,73042,8355],{"class":675},[34,73044,4817],{"class":181},[34,73046,3361],{"class":580},[34,73048,8065],{"class":181},[34,73050,22062],{"class":580},[34,73052,73053],{"class":181}," b); }\n",[34,73055,73056],{"class":36,"line":748},[34,73057,693],{"class":181},[34,73059,73060],{"class":36,"line":754},[34,73061,62],{"emptyLinePlaceholder":61},[34,73063,73064],{"class":36,"line":759},[34,73065,73066],{"class":40},"// Context — uses whichever strategy is set\n",[34,73068,73069,73071,73074],{"class":36,"line":771},[34,73070,30060],{"class":580},[34,73072,73073],{"class":47}," Sorter",[34,73075,661],{"class":181},[34,73077,73078,73080,73082,73084,73087,73089,73091],{"class":36,"line":794},[34,73079,4303],{"class":580},[34,73081,1607],{"class":181},[34,73083,71922],{"class":580},[34,73085,73086],{"class":675}," strategy",[34,73088,165],{"class":580},[34,73090,72791],{"class":47},[34,73092,59124],{"class":181},[34,73094,73095],{"class":36,"line":824},[34,73096,62],{"emptyLinePlaceholder":61},[34,73098,73099,73102,73104,73106,73108,73110,73112,73114,73117,73119],{"class":36,"line":830},[34,73100,73101],{"class":47},"  setStrategy",[34,73103,1607],{"class":181},[34,73105,72770],{"class":675},[34,73107,165],{"class":580},[34,73109,72791],{"class":47},[34,73111,31392],{"class":181},[34,73113,3207],{"class":50},[34,73115,73116],{"class":181},".strategy ",[34,73118,1301],{"class":580},[34,73120,73121],{"class":181}," strategy; }\n",[34,73123,73124],{"class":36,"line":839},[34,73125,62],{"emptyLinePlaceholder":61},[34,73127,73128,73130,73132,73134,73136,73138,73140,73142,73144,73147,73149],{"class":36,"line":854},[34,73129,72798],{"class":47},[34,73131,1607],{"class":181},[34,73133,1701],{"class":675},[34,73135,165],{"class":580},[34,73137,2741],{"class":50},[34,73139,73023],{"class":181},[34,73141,2917],{"class":580},[34,73143,1567],{"class":50},[34,73145,73146],{"class":181},".strategy.",[34,73148,13152],{"class":47},[34,73150,73151],{"class":181},"(data); }\n",[34,73153,73154],{"class":36,"line":860},[34,73155,693],{"class":181},[34,73157,73158],{"class":36,"line":865},[34,73159,62],{"emptyLinePlaceholder":61},[34,73161,73162],{"class":36,"line":870},[34,73163,73164],{"class":40},"// Usage — swap strategies at runtime\n",[34,73166,73167,73169,73172,73174,73176,73178,73180,73182,73184],{"class":36,"line":876},[34,73168,14676],{"class":580},[34,73170,73171],{"class":50}," sorter",[34,73173,683],{"class":580},[34,73175,809],{"class":580},[34,73177,73073],{"class":47},[34,73179,1607],{"class":181},[34,73181,3143],{"class":580},[34,73183,73002],{"class":47},[34,73185,4343],{"class":181},[34,73187,73188,73191,73193,73195,73197,73199,73201,73203,73205,73207,73209,73211,73213,73216],{"class":36,"line":885},[34,73189,73190],{"class":181},"sorter.",[34,73192,13152],{"class":47},[34,73194,3593],{"class":181},[34,73196,3162],{"class":50},[34,73198,1798],{"class":181},[34,73200,8318],{"class":50},[34,73202,1798],{"class":181},[34,73204,18010],{"class":50},[34,73206,1798],{"class":181},[34,73208,8318],{"class":50},[34,73210,1798],{"class":181},[34,73212,2778],{"class":50},[34,73214,73215],{"class":181},"]); ",[34,73217,73218],{"class":40},"// fast for most cases\n",[34,73220,73221],{"class":36,"line":895},[34,73222,62],{"emptyLinePlaceholder":61},[34,73224,73225,73227,73230,73232,73234,73236,73238],{"class":36,"line":904},[34,73226,73190],{"class":181},[34,73228,73229],{"class":47},"setStrategy",[34,73231,1607],{"class":181},[34,73233,3143],{"class":580},[34,73235,72835],{"class":47},[34,73237,72220],{"class":181},[34,73239,73240],{"class":40},"// switch to different algorithm\n",[34,73242,73243,73245,73247,73249,73251,73253,73255,73257,73259,73261,73263,73265,73267],{"class":36,"line":915},[34,73244,73190],{"class":181},[34,73246,13152],{"class":47},[34,73248,3593],{"class":181},[34,73250,3162],{"class":50},[34,73252,1798],{"class":181},[34,73254,8318],{"class":50},[34,73256,1798],{"class":181},[34,73258,18010],{"class":50},[34,73260,1798],{"class":181},[34,73262,8318],{"class":50},[34,73264,1798],{"class":181},[34,73266,2778],{"class":50},[34,73268,3599],{"class":181},[102,73270,73271],{"id":11334},"Command",[16,73273,73274],{},"Encapsulates a request as an object, allowing undo/redo, queuing, and logging.",[25,73276,73278],{"className":571,"code":73277,"language":573,"meta":30,"style":30},"interface Command {\n  execute(): void;\n  undo(): void;\n}\n\nclass TextEditor {\n  private text = '';\n\n  insert(str: string) { this.text += str; }\n  delete(length: number) { this.text = this.text.slice(0, -length); }\n  getText() { return this.text; }\n}\n\n// Command objects encapsulate each action\nclass InsertCommand implements Command {\n  constructor(private editor: TextEditor, private text: string) {}\n\n  execute() { this.editor.insert(this.text); }\n  undo() { this.editor.delete(this.text.length); } // reverse the action\n}\n\n// Invoker — manages command history for undo/redo\nclass CommandHistory {\n  private history: Command[] = [];\n\n  execute(command: Command) {\n    command.execute();\n    this.history.push(command); // record for undo\n  }\n\n  undo() {\n    const command = this.history.pop();\n    command?.undo(); // reverse last command\n  }\n}\n\n// Usage\nconst editor = new TextEditor();\nconst history = new CommandHistory();\n\nhistory.execute(new InsertCommand(editor, 'Hello'));\nhistory.execute(new InsertCommand(editor, ' World'));\nconsole.log(editor.getText()); // \"Hello World\"\n\nhistory.undo(); // remove \" World\"\nconsole.log(editor.getText()); // \"Hello\"\n",[20,73279,73280,73289,73302,73315,73319,73323,73332,73344,73348,73373,73412,73427,73431,73435,73440,73453,73480,73484,73504,73530,73534,73538,73543,73552,73568,73572,73586,73596,73611,73615,73619,73625,73641,73654,73658,73662,73666,73670,73684,73698,73702,73723,73742,73759,73763,73774],{"__ignoreMap":30},[34,73281,73282,73284,73287],{"class":36,"line":37},[34,73283,17562],{"class":580},[34,73285,73286],{"class":47}," Command",[34,73288,661],{"class":181},[34,73290,73291,73294,73296,73298,73300],{"class":36,"line":44},[34,73292,73293],{"class":47},"  execute",[34,73295,1546],{"class":181},[34,73297,165],{"class":580},[34,73299,31514],{"class":50},[34,73301,593],{"class":181},[34,73303,73304,73307,73309,73311,73313],{"class":36,"line":58},[34,73305,73306],{"class":47},"  undo",[34,73308,1546],{"class":181},[34,73310,165],{"class":580},[34,73312,31514],{"class":50},[34,73314,593],{"class":181},[34,73316,73317],{"class":36,"line":65},[34,73318,693],{"class":181},[34,73320,73321],{"class":36,"line":71},[34,73322,62],{"emptyLinePlaceholder":61},[34,73324,73325,73327,73330],{"class":36,"line":77},[34,73326,30060],{"class":580},[34,73328,73329],{"class":47}," TextEditor",[34,73331,661],{"class":181},[34,73333,73334,73336,73338,73340,73342],{"class":36,"line":82},[34,73335,1518],{"class":580},[34,73337,9006],{"class":675},[34,73339,683],{"class":580},[34,73341,686],{"class":54},[34,73343,593],{"class":181},[34,73345,73346],{"class":36,"line":88},[34,73347,62],{"emptyLinePlaceholder":61},[34,73349,73350,73353,73355,73357,73359,73361,73363,73365,73368,73370],{"class":36,"line":242},[34,73351,73352],{"class":47},"  insert",[34,73354,1607],{"class":181},[34,73356,12646],{"class":675},[34,73358,165],{"class":580},[34,73360,680],{"class":50},[34,73362,31392],{"class":181},[34,73364,3207],{"class":50},[34,73366,73367],{"class":181},".text ",[34,73369,31462],{"class":580},[34,73371,73372],{"class":181}," str; }\n",[34,73374,73375,73378,73380,73382,73384,73386,73388,73390,73392,73394,73396,73399,73401,73403,73405,73407,73409],{"class":36,"line":250},[34,73376,73377],{"class":47},"  delete",[34,73379,1607],{"class":181},[34,73381,2908],{"class":675},[34,73383,165],{"class":580},[34,73385,2741],{"class":50},[34,73387,31392],{"class":181},[34,73389,3207],{"class":50},[34,73391,73367],{"class":181},[34,73393,1301],{"class":580},[34,73395,1567],{"class":50},[34,73397,73398],{"class":181},".text.",[34,73400,14037],{"class":47},[34,73402,1607],{"class":181},[34,73404,2773],{"class":50},[34,73406,1798],{"class":181},[34,73408,22062],{"class":580},[34,73410,73411],{"class":181},"length); }\n",[34,73413,73414,73417,73420,73422,73424],{"class":36,"line":263},[34,73415,73416],{"class":47},"  getText",[34,73418,73419],{"class":181},"() { ",[34,73421,2917],{"class":580},[34,73423,1567],{"class":50},[34,73425,73426],{"class":181},".text; }\n",[34,73428,73429],{"class":36,"line":275},[34,73430,693],{"class":181},[34,73432,73433],{"class":36,"line":700},[34,73434,62],{"emptyLinePlaceholder":61},[34,73436,73437],{"class":36,"line":706},[34,73438,73439],{"class":40},"// Command objects encapsulate each action\n",[34,73441,73442,73444,73447,73449,73451],{"class":36,"line":715},[34,73443,30060],{"class":580},[34,73445,73446],{"class":47}," InsertCommand",[34,73448,2334],{"class":580},[34,73450,73286],{"class":47},[34,73452,661],{"class":181},[34,73454,73455,73457,73459,73461,73464,73466,73468,73470,73472,73474,73476,73478],{"class":36,"line":725},[34,73456,4303],{"class":580},[34,73458,1607],{"class":181},[34,73460,71922],{"class":580},[34,73462,73463],{"class":675}," editor",[34,73465,165],{"class":580},[34,73467,73329],{"class":47},[34,73469,1798],{"class":181},[34,73471,71922],{"class":580},[34,73473,9006],{"class":675},[34,73475,165],{"class":580},[34,73477,680],{"class":50},[34,73479,59124],{"class":181},[34,73481,73482],{"class":36,"line":734},[34,73483,62],{"emptyLinePlaceholder":61},[34,73485,73486,73488,73490,73492,73495,73497,73499,73501],{"class":36,"line":742},[34,73487,73293],{"class":47},[34,73489,73419],{"class":181},[34,73491,3207],{"class":50},[34,73493,73494],{"class":181},".editor.",[34,73496,30468],{"class":47},[34,73498,1607],{"class":181},[34,73500,3207],{"class":50},[34,73502,73503],{"class":181},".text); }\n",[34,73505,73506,73508,73510,73512,73514,73516,73518,73520,73522,73524,73527],{"class":36,"line":748},[34,73507,73306],{"class":47},[34,73509,73419],{"class":181},[34,73511,3207],{"class":50},[34,73513,73494],{"class":181},[34,73515,30355],{"class":47},[34,73517,1607],{"class":181},[34,73519,3207],{"class":50},[34,73521,73398],{"class":181},[34,73523,2908],{"class":50},[34,73525,73526],{"class":181},"); } ",[34,73528,73529],{"class":40},"// reverse the action\n",[34,73531,73532],{"class":36,"line":754},[34,73533,693],{"class":181},[34,73535,73536],{"class":36,"line":759},[34,73537,62],{"emptyLinePlaceholder":61},[34,73539,73540],{"class":36,"line":771},[34,73541,73542],{"class":40},"// Invoker — manages command history for undo/redo\n",[34,73544,73545,73547,73550],{"class":36,"line":794},[34,73546,30060],{"class":580},[34,73548,73549],{"class":47}," CommandHistory",[34,73551,661],{"class":181},[34,73553,73554,73556,73558,73560,73562,73564,73566],{"class":36,"line":824},[34,73555,1518],{"class":580},[34,73557,7579],{"class":675},[34,73559,165],{"class":580},[34,73561,73286],{"class":47},[34,73563,4063],{"class":181},[34,73565,1301],{"class":580},[34,73567,4068],{"class":181},[34,73569,73570],{"class":36,"line":830},[34,73571,62],{"emptyLinePlaceholder":61},[34,73573,73574,73576,73578,73580,73582,73584],{"class":36,"line":839},[34,73575,73293],{"class":47},[34,73577,1607],{"class":181},[34,73579,11334],{"class":675},[34,73581,165],{"class":580},[34,73583,73286],{"class":47},[34,73585,2416],{"class":181},[34,73587,73588,73591,73594],{"class":36,"line":854},[34,73589,73590],{"class":181},"    command.",[34,73592,73593],{"class":47},"execute",[34,73595,851],{"class":181},[34,73597,73598,73600,73603,73605,73608],{"class":36,"line":860},[34,73599,842],{"class":50},[34,73601,73602],{"class":181},".history.",[34,73604,50165],{"class":47},[34,73606,73607],{"class":181},"(command); ",[34,73609,73610],{"class":40},"// record for undo\n",[34,73612,73613],{"class":36,"line":865},[34,73614,857],{"class":181},[34,73616,73617],{"class":36,"line":870},[34,73618,62],{"emptyLinePlaceholder":61},[34,73620,73621,73623],{"class":36,"line":876},[34,73622,73306],{"class":47},[34,73624,836],{"class":181},[34,73626,73627,73629,73631,73633,73635,73637,73639],{"class":36,"line":885},[34,73628,1632],{"class":580},[34,73630,12527],{"class":50},[34,73632,683],{"class":580},[34,73634,1567],{"class":50},[34,73636,73602],{"class":181},[34,73638,50216],{"class":47},[34,73640,851],{"class":181},[34,73642,73643,73646,73649,73651],{"class":36,"line":895},[34,73644,73645],{"class":181},"    command?.",[34,73647,73648],{"class":47},"undo",[34,73650,68957],{"class":181},[34,73652,73653],{"class":40},"// reverse last command\n",[34,73655,73656],{"class":36,"line":904},[34,73657,857],{"class":181},[34,73659,73660],{"class":36,"line":915},[34,73661,693],{"class":181},[34,73663,73664],{"class":36,"line":927},[34,73665,62],{"emptyLinePlaceholder":61},[34,73667,73668],{"class":36,"line":932},[34,73669,1113],{"class":40},[34,73671,73672,73674,73676,73678,73680,73682],{"class":36,"line":944},[34,73673,14676],{"class":580},[34,73675,73463],{"class":50},[34,73677,683],{"class":580},[34,73679,809],{"class":580},[34,73681,73329],{"class":47},[34,73683,851],{"class":181},[34,73685,73686,73688,73690,73692,73694,73696],{"class":36,"line":966},[34,73687,14676],{"class":580},[34,73689,7579],{"class":50},[34,73691,683],{"class":580},[34,73693,809],{"class":580},[34,73695,73549],{"class":47},[34,73697,851],{"class":181},[34,73699,73700],{"class":36,"line":1948},[34,73701,62],{"emptyLinePlaceholder":61},[34,73703,73704,73707,73709,73711,73713,73715,73718,73721],{"class":36,"line":1953},[34,73705,73706],{"class":181},"history.",[34,73708,73593],{"class":47},[34,73710,1607],{"class":181},[34,73712,3143],{"class":580},[34,73714,73446],{"class":47},[34,73716,73717],{"class":181},"(editor, ",[34,73719,73720],{"class":54},"'Hello'",[34,73722,15223],{"class":181},[34,73724,73725,73727,73729,73731,73733,73735,73737,73740],{"class":36,"line":3616},[34,73726,73706],{"class":181},[34,73728,73593],{"class":47},[34,73730,1607],{"class":181},[34,73732,3143],{"class":580},[34,73734,73446],{"class":47},[34,73736,73717],{"class":181},[34,73738,73739],{"class":54},"' World'",[34,73741,15223],{"class":181},[34,73743,73744,73746,73748,73751,73754,73756],{"class":36,"line":3622},[34,73745,15183],{"class":181},[34,73747,2424],{"class":47},[34,73749,73750],{"class":181},"(editor.",[34,73752,73753],{"class":47},"getText",[34,73755,72220],{"class":181},[34,73757,73758],{"class":40},"// \"Hello World\"\n",[34,73760,73761],{"class":36,"line":3642},[34,73762,62],{"emptyLinePlaceholder":61},[34,73764,73765,73767,73769,73771],{"class":36,"line":3657},[34,73766,73706],{"class":181},[34,73768,73648],{"class":47},[34,73770,68957],{"class":181},[34,73772,73773],{"class":40},"// remove \" World\"\n",[34,73775,73776,73778,73780,73782,73784,73786],{"class":36,"line":3663},[34,73777,15183],{"class":181},[34,73779,2424],{"class":47},[34,73781,73750],{"class":181},[34,73783,73753],{"class":47},[34,73785,72220],{"class":181},[34,73787,37952],{"class":40},[11,73789,73791],{"id":73790},"choosing-the-right-pattern","Choosing the Right Pattern",[25,73793,73796],{"className":73794,"code":73795,"language":780,"meta":30},[13703],"Problem                              → Pattern\n─────────────────────────────────────────────────────\nNeed exactly one instance            → Singleton\nCreating objects without specifying  → Factory Method\n  exact class\nBuilding complex objects step-by-step → Builder\nNotifying many objects of changes    → Observer\nMaking incompatible interfaces work  → Adapter\nAdding behaviour without subclassing → Decorator\nSimplifying a complex subsystem      → Facade\nSwapping algorithms at runtime       → Strategy\nSupporting undo/redo or queuing      → Command\n",[20,73797,73795],{"__ignoreMap":30},[388,73799,73800],{},"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 .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}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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":30,"searchDepth":44,"depth":44,"links":73802},[73803,73809,73814,73818],{"id":70359,"depth":44,"text":70360,"children":73804},[73805,73806,73807,73808],{"id":70366,"depth":58,"text":70367},{"id":70561,"depth":58,"text":70562},{"id":70850,"depth":58,"text":70851},{"id":71380,"depth":58,"text":71381},{"id":71765,"depth":44,"text":71766,"children":73810},[73811,73812,73813],{"id":71772,"depth":58,"text":71773},{"id":72058,"depth":58,"text":72059},{"id":72372,"depth":58,"text":72373},{"id":72763,"depth":44,"text":72764,"children":73815},[73816,73817],{"id":72770,"depth":58,"text":72771},{"id":11334,"depth":58,"text":73271},{"id":73790,"depth":44,"text":73791},"Common software design patterns for solving recurring architectural problems in a clean, reusable way.",{"category":5600,"featured":65586,"icon":73821},"\u003Csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\u003Crect x=\"3\" y=\"3\" width=\"7\" height=\"7\"/>\u003Crect x=\"14\" y=\"3\" width=\"7\" height=\"7\"/>\u003Crect x=\"14\" y=\"14\" width=\"7\" height=\"7\"/>\u003Crect x=\"3\" y=\"14\" width=\"7\" height=\"7\"/>\u003C/svg>","/examples/design-patterns",{"title":70354,"description":73819},"examples/design-patterns",[73826,30041,58893,5600,73827,73828,73829],"design-patterns","creational","structural","behavioral","hzvrgxQIccGOi3HIAEsIv1LArcc9pyb3PKpN6E-HbxA",{"id":73832,"title":73833,"body":73834,"date":75197,"description":75198,"extension":404,"meta":75199,"navigation":61,"order":402,"path":75202,"seo":75203,"stem":75204,"subject":402,"tags":75205,"__hash__":75207},"topics/examples/django.md","Django",{"type":8,"value":73835,"toc":75178},[73836,73838,73902,73906,73927,73931,74048,74052,74089,74092,74169,74173,74316,74318,74452,74456,74459,74463,74520,74524,74602,74606,74810,74814,74817,74821,74835,74839,74979,74983,75175],[11,73837,6035],{"id":6040},[25,73839,73841],{"className":27,"code":73840,"language":29,"meta":30,"style":30},"# Install Django\npip install django\n\n# Start a new project\ndjango-admin startproject myproject\n\n# Run the development server\ncd myproject\npython manage.py runserver\n",[20,73842,73843,73848,73857,73861,73866,73877,73881,73886,73892],{"__ignoreMap":30},[34,73844,73845],{"class":36,"line":37},[34,73846,73847],{"class":40},"# Install Django\n",[34,73849,73850,73852,73854],{"class":36,"line":44},[34,73851,4991],{"class":47},[34,73853,118],{"class":54},[34,73855,73856],{"class":54}," django\n",[34,73858,73859],{"class":36,"line":58},[34,73860,62],{"emptyLinePlaceholder":61},[34,73862,73863],{"class":36,"line":65},[34,73864,73865],{"class":40},"# Start a new project\n",[34,73867,73868,73871,73874],{"class":36,"line":71},[34,73869,73870],{"class":47},"django-admin",[34,73872,73873],{"class":54}," startproject",[34,73875,73876],{"class":54}," myproject\n",[34,73878,73879],{"class":36,"line":77},[34,73880,62],{"emptyLinePlaceholder":61},[34,73882,73883],{"class":36,"line":82},[34,73884,73885],{"class":40},"# Run the development server\n",[34,73887,73888,73890],{"class":36,"line":88},[34,73889,7702],{"class":50},[34,73891,73876],{"class":54},[34,73893,73894,73896,73899],{"class":36,"line":242},[34,73895,49388],{"class":47},[34,73897,73898],{"class":54}," manage.py",[34,73900,73901],{"class":54}," runserver\n",[11,73903,73905],{"id":73904},"creating-an-app","Creating an App",[25,73907,73909],{"className":27,"code":73908,"language":29,"meta":30,"style":30},"# Create an app within the project\npython manage.py startapp myapp\n",[20,73910,73911,73916],{"__ignoreMap":30},[34,73912,73913],{"class":36,"line":37},[34,73914,73915],{"class":40},"# Create an app within the project\n",[34,73917,73918,73920,73922,73925],{"class":36,"line":44},[34,73919,49388],{"class":47},[34,73921,73898],{"class":54},[34,73923,73924],{"class":54}," startapp",[34,73926,14284],{"class":54},[11,73928,73930],{"id":73929},"models","Models",[25,73932,73934],{"className":49386,"code":73933,"language":49388,"meta":30,"style":30},"# myapp/models.py\nfrom django.db import models\n\nclass Post(models.Model):\n    title = models.CharField(max_length=200)\n    content = models.TextField()\n    created_at = models.DateTimeField(auto_now_add=True)\n\n    def __str__(self):\n        return self.title\n",[20,73935,73936,73941,73953,73957,73975,73994,74004,74024,74028,74038],{"__ignoreMap":30},[34,73937,73938],{"class":36,"line":37},[34,73939,73940],{"class":40},"# myapp/models.py\n",[34,73942,73943,73945,73948,73950],{"class":36,"line":44},[34,73944,587],{"class":580},[34,73946,73947],{"class":181}," django.db ",[34,73949,581],{"class":580},[34,73951,73952],{"class":181}," models\n",[34,73954,73955],{"class":36,"line":58},[34,73956,62],{"emptyLinePlaceholder":61},[34,73958,73959,73961,73964,73966,73968,73970,73973],{"class":36,"line":65},[34,73960,30060],{"class":580},[34,73962,73963],{"class":47}," Post",[34,73965,1607],{"class":181},[34,73967,73929],{"class":47},[34,73969,151],{"class":181},[34,73971,73972],{"class":47},"Model",[34,73974,51021],{"class":181},[34,73976,73977,73980,73982,73985,73988,73990,73992],{"class":36,"line":71},[34,73978,73979],{"class":181},"    title ",[34,73981,1301],{"class":580},[34,73983,73984],{"class":181}," models.CharField(",[34,73986,73987],{"class":675},"max_length",[34,73989,1301],{"class":580},[34,73991,20899],{"class":50},[34,73993,3372],{"class":181},[34,73995,73996,73999,74001],{"class":36,"line":77},[34,73997,73998],{"class":181},"    content ",[34,74000,1301],{"class":580},[34,74002,74003],{"class":181}," models.TextField()\n",[34,74005,74006,74009,74011,74014,74017,74019,74022],{"class":36,"line":82},[34,74007,74008],{"class":181},"    created_at ",[34,74010,1301],{"class":580},[34,74012,74013],{"class":181}," models.DateTimeField(",[34,74015,74016],{"class":675},"auto_now_add",[34,74018,1301],{"class":580},[34,74020,74021],{"class":50},"True",[34,74023,3372],{"class":181},[34,74025,74026],{"class":36,"line":88},[34,74027,62],{"emptyLinePlaceholder":61},[34,74029,74030,74032,74035],{"class":36,"line":242},[34,74031,65417],{"class":580},[34,74033,74034],{"class":50}," __str__",[34,74036,74037],{"class":181},"(self):\n",[34,74039,74040,74042,74045],{"class":36,"line":250},[34,74041,13895],{"class":580},[34,74043,74044],{"class":50}," self",[34,74046,74047],{"class":181},".title\n",[11,74049,74051],{"id":74050},"migrations","Migrations",[25,74053,74055],{"className":27,"code":74054,"language":29,"meta":30,"style":30},"# Generate migrations for the app\npython manage.py makemigrations\n\n# Apply migrations to the database\npython manage.py migrate\n",[20,74056,74057,74062,74071,74075,74080],{"__ignoreMap":30},[34,74058,74059],{"class":36,"line":37},[34,74060,74061],{"class":40},"# Generate migrations for the app\n",[34,74063,74064,74066,74068],{"class":36,"line":44},[34,74065,49388],{"class":47},[34,74067,73898],{"class":54},[34,74069,74070],{"class":54}," makemigrations\n",[34,74072,74073],{"class":36,"line":58},[34,74074,62],{"emptyLinePlaceholder":61},[34,74076,74077],{"class":36,"line":65},[34,74078,74079],{"class":40},"# Apply migrations to the database\n",[34,74081,74082,74084,74086],{"class":36,"line":71},[34,74083,49388],{"class":47},[34,74085,73898],{"class":54},[34,74087,74088],{"class":54}," migrate\n",[11,74090,74091],{"id":32120},"Views",[25,74093,74095],{"className":49386,"code":74094,"language":49388,"meta":30,"style":30},"# myapp/views.py\nfrom django.shortcuts import render\nfrom .models import Post\n\ndef index(request):\n    posts = Post.objects.all()\n    return render(request, 'index.html', {'posts': posts})\n",[20,74096,74097,74102,74114,74126,74130,74140,74150],{"__ignoreMap":30},[34,74098,74099],{"class":36,"line":37},[34,74100,74101],{"class":40},"# myapp/views.py\n",[34,74103,74104,74106,74109,74111],{"class":36,"line":44},[34,74105,587],{"class":580},[34,74107,74108],{"class":181}," django.shortcuts ",[34,74110,581],{"class":580},[34,74112,74113],{"class":181}," render\n",[34,74115,74116,74118,74121,74123],{"class":36,"line":58},[34,74117,587],{"class":580},[34,74119,74120],{"class":181}," .models ",[34,74122,581],{"class":580},[34,74124,74125],{"class":181}," Post\n",[34,74127,74128],{"class":36,"line":65},[34,74129,62],{"emptyLinePlaceholder":61},[34,74131,74132,74134,74137],{"class":36,"line":71},[34,74133,49400],{"class":580},[34,74135,74136],{"class":47}," index",[34,74138,74139],{"class":181},"(request):\n",[34,74141,74142,74145,74147],{"class":36,"line":77},[34,74143,74144],{"class":181},"    posts ",[34,74146,1301],{"class":580},[34,74148,74149],{"class":181}," Post.objects.all()\n",[34,74151,74152,74154,74157,74160,74163,74166],{"class":36,"line":82},[34,74153,1564],{"class":580},[34,74155,74156],{"class":181}," render(request, ",[34,74158,74159],{"class":54},"'index.html'",[34,74161,74162],{"class":181},", {",[34,74164,74165],{"class":54},"'posts'",[34,74167,74168],{"class":181},": posts})\n",[11,74170,74172],{"id":74171},"urls","URLs",[25,74174,74176],{"className":49386,"code":74175,"language":49388,"meta":30,"style":30},"# myproject/urls.py\nfrom django.contrib import admin\nfrom django.urls import path, include\n\nurlpatterns = [\n    path('admin/', admin.site.urls),\n    path('', include('myapp.urls')),\n]\n\n# myapp/urls.py\nfrom django.urls import path\nfrom . import views\n\nurlpatterns = [\n    path('', views.index, name='index'),\n]\n",[20,74177,74178,74183,74195,74207,74211,74220,74231,74246,74250,74254,74259,74270,74282,74286,74294,74312],{"__ignoreMap":30},[34,74179,74180],{"class":36,"line":37},[34,74181,74182],{"class":40},"# myproject/urls.py\n",[34,74184,74185,74187,74190,74192],{"class":36,"line":44},[34,74186,587],{"class":580},[34,74188,74189],{"class":181}," django.contrib ",[34,74191,581],{"class":580},[34,74193,74194],{"class":181}," admin\n",[34,74196,74197,74199,74202,74204],{"class":36,"line":58},[34,74198,587],{"class":580},[34,74200,74201],{"class":181}," django.urls ",[34,74203,581],{"class":580},[34,74205,74206],{"class":181}," path, include\n",[34,74208,74209],{"class":36,"line":65},[34,74210,62],{"emptyLinePlaceholder":61},[34,74212,74213,74216,74218],{"class":36,"line":71},[34,74214,74215],{"class":181},"urlpatterns ",[34,74217,1301],{"class":580},[34,74219,3304],{"class":181},[34,74221,74222,74225,74228],{"class":36,"line":77},[34,74223,74224],{"class":181},"    path(",[34,74226,74227],{"class":54},"'admin/'",[34,74229,74230],{"class":181},", admin.site.urls),\n",[34,74232,74233,74235,74237,74240,74243],{"class":36,"line":82},[34,74234,74224],{"class":181},[34,74236,3151],{"class":54},[34,74238,74239],{"class":181},", include(",[34,74241,74242],{"class":54},"'myapp.urls'",[34,74244,74245],{"class":181},")),\n",[34,74247,74248],{"class":36,"line":88},[34,74249,924],{"class":181},[34,74251,74252],{"class":36,"line":242},[34,74253,62],{"emptyLinePlaceholder":61},[34,74255,74256],{"class":36,"line":250},[34,74257,74258],{"class":40},"# myapp/urls.py\n",[34,74260,74261,74263,74265,74267],{"class":36,"line":263},[34,74262,587],{"class":580},[34,74264,74201],{"class":181},[34,74266,581],{"class":580},[34,74268,74269],{"class":181}," path\n",[34,74271,74272,74274,74277,74279],{"class":36,"line":275},[34,74273,587],{"class":580},[34,74275,74276],{"class":181}," . ",[34,74278,581],{"class":580},[34,74280,74281],{"class":181}," views\n",[34,74283,74284],{"class":36,"line":700},[34,74285,62],{"emptyLinePlaceholder":61},[34,74287,74288,74290,74292],{"class":36,"line":706},[34,74289,74215],{"class":181},[34,74291,1301],{"class":580},[34,74293,3304],{"class":181},[34,74295,74296,74298,74300,74303,74305,74307,74310],{"class":36,"line":715},[34,74297,74224],{"class":181},[34,74299,3151],{"class":54},[34,74301,74302],{"class":181},", views.index, ",[34,74304,178],{"class":675},[34,74306,1301],{"class":580},[34,74308,74309],{"class":54},"'index'",[34,74311,50836],{"class":181},[34,74313,74314],{"class":36,"line":725},[34,74315,924],{"class":181},[11,74317,32216],{"id":32642},[25,74319,74321],{"className":1162,"code":74320,"language":1164,"meta":30,"style":30},"\u003C!-- templates/index.html -->\n\u003C!DOCTYPE html>\n\u003Chtml>\n\u003Chead>\n    \u003Ctitle>My Blog\u003C/title>\n\u003C/head>\n\u003Cbody>\n    \u003Ch1>Posts\u003C/h1>\n    \u003Cul>\n        {% for post in posts %}\n            \u003Cli>{{ post.title }} - {{ post.created_at }}\u003C/li>\n        {% endfor %}\n    \u003C/ul>\n\u003C/body>\n\u003C/html>\n",[20,74322,74323,74328,74338,74346,74354,74367,74375,74383,74396,74404,74409,74422,74427,74436,74444],{"__ignoreMap":30},[34,74324,74325],{"class":36,"line":37},[34,74326,74327],{"class":40},"\u003C!-- templates/index.html -->\n",[34,74329,74330,74332,74334,74336],{"class":36,"line":44},[34,74331,46378],{"class":181},[34,74333,46381],{"class":177},[34,74335,46384],{"class":47},[34,74337,1248],{"class":181},[34,74339,74340,74342,74344],{"class":36,"line":58},[34,74341,815],{"class":181},[34,74343,1164],{"class":177},[34,74345,1248],{"class":181},[34,74347,74348,74350,74352],{"class":36,"line":65},[34,74349,815],{"class":181},[34,74351,13118],{"class":177},[34,74353,1248],{"class":181},[34,74355,74356,74358,74360,74363,74365],{"class":36,"line":71},[34,74357,1294],{"class":181},[34,74359,953],{"class":177},[34,74361,74362],{"class":181},">My Blog\u003C/",[34,74364,953],{"class":177},[34,74366,1248],{"class":181},[34,74368,74369,74371,74373],{"class":36,"line":77},[34,74370,2089],{"class":181},[34,74372,13118],{"class":177},[34,74374,1248],{"class":181},[34,74376,74377,74379,74381],{"class":36,"line":82},[34,74378,815],{"class":181},[34,74380,46502],{"class":177},[34,74382,1248],{"class":181},[34,74384,74385,74387,74389,74392,74394],{"class":36,"line":88},[34,74386,1294],{"class":181},[34,74388,8535],{"class":177},[34,74390,74391],{"class":181},">Posts\u003C/",[34,74393,8535],{"class":177},[34,74395,1248],{"class":181},[34,74397,74398,74400,74402],{"class":36,"line":242},[34,74399,1294],{"class":181},[34,74401,309],{"class":177},[34,74403,1248],{"class":181},[34,74405,74406],{"class":36,"line":250},[34,74407,74408],{"class":181},"        {% for post in posts %}\n",[34,74410,74411,74413,74415,74418,74420],{"class":36,"line":263},[34,74412,14006],{"class":181},[34,74414,312],{"class":177},[34,74416,74417],{"class":181},">{{ post.title }} - {{ post.created_at }}\u003C/",[34,74419,312],{"class":177},[34,74421,1248],{"class":181},[34,74423,74424],{"class":36,"line":275},[34,74425,74426],{"class":181},"        {% endfor %}\n",[34,74428,74429,74432,74434],{"class":36,"line":700},[34,74430,74431],{"class":181},"    \u003C/",[34,74433,309],{"class":177},[34,74435,1248],{"class":181},[34,74437,74438,74440,74442],{"class":36,"line":706},[34,74439,2089],{"class":181},[34,74441,46502],{"class":177},[34,74443,1248],{"class":181},[34,74445,74446,74448,74450],{"class":36,"line":715},[34,74447,2089],{"class":181},[34,74449,1164],{"class":177},[34,74451,1248],{"class":181},[11,74453,74455],{"id":74454},"django-authentication-setup","Django Authentication Setup",[16,74457,74458],{},"Learn how to set up user authentication in Django, including login, logout, and registration functionality.",[102,74460,74462],{"id":74461},"authentication-settings","Authentication Settings",[25,74464,74466],{"className":49386,"code":74465,"language":49388,"meta":30,"style":30},"# settings.py\nINSTALLED_APPS = [\n    'django.contrib.auth',\n    'django.contrib.contenttypes',\n]\nAUTHENTICATION_BACKENDS = [\n    'django.contrib.auth.backends.ModelBackend',\n]\n",[20,74467,74468,74473,74482,74489,74496,74500,74509,74516],{"__ignoreMap":30},[34,74469,74470],{"class":36,"line":37},[34,74471,74472],{"class":40},"# settings.py\n",[34,74474,74475,74478,74480],{"class":36,"line":44},[34,74476,74477],{"class":50},"INSTALLED_APPS",[34,74479,683],{"class":580},[34,74481,3304],{"class":181},[34,74483,74484,74487],{"class":36,"line":58},[34,74485,74486],{"class":54},"    'django.contrib.auth'",[34,74488,624],{"class":181},[34,74490,74491,74494],{"class":36,"line":65},[34,74492,74493],{"class":54},"    'django.contrib.contenttypes'",[34,74495,624],{"class":181},[34,74497,74498],{"class":36,"line":71},[34,74499,924],{"class":181},[34,74501,74502,74505,74507],{"class":36,"line":77},[34,74503,74504],{"class":50},"AUTHENTICATION_BACKENDS",[34,74506,683],{"class":580},[34,74508,3304],{"class":181},[34,74510,74511,74514],{"class":36,"line":82},[34,74512,74513],{"class":54},"    'django.contrib.auth.backends.ModelBackend'",[34,74515,624],{"class":181},[34,74517,74518],{"class":36,"line":88},[34,74519,924],{"class":181},[102,74521,74523],{"id":74522},"login-and-logout-urls","Login and Logout URLs",[25,74525,74527],{"className":49386,"code":74526,"language":49388,"meta":30,"style":30},"# urls.py\nfrom django.contrib.auth import views as auth_views\nurlpatterns = [\n    path('login/', auth_views.LoginView.as_view(), name='login'),\n    path('logout/', auth_views.LogoutView.as_view(), name='logout'),\n]\n",[20,74528,74529,74534,74552,74560,74579,74598],{"__ignoreMap":30},[34,74530,74531],{"class":36,"line":37},[34,74532,74533],{"class":40},"# urls.py\n",[34,74535,74536,74538,74541,74543,74546,74549],{"class":36,"line":44},[34,74537,587],{"class":580},[34,74539,74540],{"class":181}," django.contrib.auth ",[34,74542,581],{"class":580},[34,74544,74545],{"class":181}," views ",[34,74547,74548],{"class":580},"as",[34,74550,74551],{"class":181}," auth_views\n",[34,74553,74554,74556,74558],{"class":36,"line":58},[34,74555,74215],{"class":181},[34,74557,1301],{"class":580},[34,74559,3304],{"class":181},[34,74561,74562,74564,74567,74570,74572,74574,74577],{"class":36,"line":65},[34,74563,74224],{"class":181},[34,74565,74566],{"class":54},"'login/'",[34,74568,74569],{"class":181},", auth_views.LoginView.as_view(), ",[34,74571,178],{"class":675},[34,74573,1301],{"class":580},[34,74575,74576],{"class":54},"'login'",[34,74578,50836],{"class":181},[34,74580,74581,74583,74586,74589,74591,74593,74596],{"class":36,"line":71},[34,74582,74224],{"class":181},[34,74584,74585],{"class":54},"'logout/'",[34,74587,74588],{"class":181},", auth_views.LogoutView.as_view(), ",[34,74590,178],{"class":675},[34,74592,1301],{"class":580},[34,74594,74595],{"class":54},"'logout'",[34,74597,50836],{"class":181},[34,74599,74600],{"class":36,"line":77},[34,74601,924],{"class":181},[102,74603,74605],{"id":74604},"register-a-new-user","Register a New User",[25,74607,74609],{"className":49386,"code":74608,"language":49388,"meta":30,"style":30},"# views.py\nfrom django.contrib.auth.forms import UserCreationForm\nfrom django.shortcuts import render, redirect\n\ndef register(request):\n    if request.method == 'POST':\n        form = UserCreationForm(request.POST)\n        if form.is_valid():\n            form.save()\n            return redirect('login')\n    else:\n        form = UserCreationForm()\n    return render(request, 'register.html', {'form': form})\n\n# templates/register.html\n\u003Cform method=\"post\">\n    {% csrf_token %}\n    {{ form.as_p }}\n    \u003Cbutton type=\"submit\">Sign Up\u003C/button>\n\u003C/form>\n",[20,74610,74611,74616,74628,74639,74643,74652,74666,74681,74688,74693,74704,74710,74719,74736,74740,74745,74759,74772,74777,74802],{"__ignoreMap":30},[34,74612,74613],{"class":36,"line":37},[34,74614,74615],{"class":40},"# views.py\n",[34,74617,74618,74620,74623,74625],{"class":36,"line":44},[34,74619,587],{"class":580},[34,74621,74622],{"class":181}," django.contrib.auth.forms ",[34,74624,581],{"class":580},[34,74626,74627],{"class":181}," UserCreationForm\n",[34,74629,74630,74632,74634,74636],{"class":36,"line":58},[34,74631,587],{"class":580},[34,74633,74108],{"class":181},[34,74635,581],{"class":580},[34,74637,74638],{"class":181}," render, redirect\n",[34,74640,74641],{"class":36,"line":65},[34,74642,62],{"emptyLinePlaceholder":61},[34,74644,74645,74647,74650],{"class":36,"line":71},[34,74646,49400],{"class":580},[34,74648,74649],{"class":47}," register",[34,74651,74139],{"class":181},[34,74653,74654,74656,74659,74661,74664],{"class":36,"line":77},[34,74655,2902],{"class":580},[34,74657,74658],{"class":181}," request.method ",[34,74660,18168],{"class":580},[34,74662,74663],{"class":54}," 'POST'",[34,74665,193],{"class":181},[34,74667,74668,74671,74673,74676,74679],{"class":36,"line":82},[34,74669,74670],{"class":181},"        form ",[34,74672,1301],{"class":580},[34,74674,74675],{"class":181}," UserCreationForm(request.",[34,74677,74678],{"class":50},"POST",[34,74680,3372],{"class":181},[34,74682,74683,74685],{"class":36,"line":88},[34,74684,49573],{"class":580},[34,74686,74687],{"class":181}," form.is_valid():\n",[34,74689,74690],{"class":36,"line":242},[34,74691,74692],{"class":181},"            form.save()\n",[34,74694,74695,74697,74700,74702],{"class":36,"line":250},[34,74696,51208],{"class":580},[34,74698,74699],{"class":181}," redirect(",[34,74701,74576],{"class":54},[34,74703,3372],{"class":181},[34,74705,74706,74708],{"class":36,"line":263},[34,74707,63908],{"class":580},[34,74709,193],{"class":181},[34,74711,74712,74714,74716],{"class":36,"line":275},[34,74713,74670],{"class":181},[34,74715,1301],{"class":580},[34,74717,74718],{"class":181}," UserCreationForm()\n",[34,74720,74721,74723,74725,74728,74730,74733],{"class":36,"line":700},[34,74722,1564],{"class":580},[34,74724,74156],{"class":181},[34,74726,74727],{"class":54},"'register.html'",[34,74729,74162],{"class":181},[34,74731,74732],{"class":54},"'form'",[34,74734,74735],{"class":181},": form})\n",[34,74737,74738],{"class":36,"line":706},[34,74739,62],{"emptyLinePlaceholder":61},[34,74741,74742],{"class":36,"line":715},[34,74743,74744],{"class":40},"# templates/register.html\n",[34,74746,74747,74749,74752,74754,74757],{"class":36,"line":725},[34,74748,815],{"class":580},[34,74750,74751],{"class":181},"form method",[34,74753,1301],{"class":580},[34,74755,74756],{"class":54},"\"post\"",[34,74758,1248],{"class":580},[34,74760,74761,74763,74765,74768,74770],{"class":36,"line":734},[34,74762,17990],{"class":181},[34,74764,12797],{"class":580},[34,74766,74767],{"class":181}," csrf_token ",[34,74769,12797],{"class":580},[34,74771,693],{"class":181},[34,74773,74774],{"class":36,"line":742},[34,74775,74776],{"class":181},"    {{ form.as_p }}\n",[34,74778,74779,74781,74784,74786,74788,74791,74793,74796,74798,74800],{"class":36,"line":748},[34,74780,1294],{"class":580},[34,74782,74783],{"class":181},"button ",[34,74785,41324],{"class":50},[34,74787,1301],{"class":580},[34,74789,74790],{"class":54},"\"submit\"",[34,74792,5691],{"class":580},[34,74794,74795],{"class":181},"Sign Up",[34,74797,2089],{"class":580},[34,74799,4509],{"class":181},[34,74801,1248],{"class":580},[34,74803,74804,74806,74808],{"class":36,"line":754},[34,74805,2089],{"class":580},[34,74807,4617],{"class":181},[34,74809,1248],{"class":580},[11,74811,74813],{"id":74812},"django-rest-api-basics","Django REST API Basics",[16,74815,74816],{},"Set up a basic REST API using Django REST Framework (DRF).",[102,74818,74820],{"id":74819},"install-rest-framework","Install Rest Framework",[25,74822,74824],{"className":27,"code":74823,"language":29,"meta":30,"style":30},"pip install djangorestframework\n",[20,74825,74826],{"__ignoreMap":30},[34,74827,74828,74830,74832],{"class":36,"line":37},[34,74829,4991],{"class":47},[34,74831,118],{"class":54},[34,74833,74834],{"class":54}," djangorestframework\n",[102,74836,74838],{"id":74837},"create-and-serialize-models","Create and Serialize Models",[25,74840,74842],{"className":49386,"code":74841,"language":49388,"meta":30,"style":30},"# models.py\nclass Book(models.Model):\n    title = models.CharField(max_length=255)\n    author = models.CharField(max_length=255)\n\n# serializers.py\nfrom rest_framework import serializers\nfrom .models import Book\nclass BookSerializer(serializers.ModelSerializer):\n    class Meta:\n        model = Book\n        fields = '__all__'\n",[20,74843,74844,74849,74866,74882,74899,74903,74908,74920,74931,74950,74960,74969],{"__ignoreMap":30},[34,74845,74846],{"class":36,"line":37},[34,74847,74848],{"class":40},"# models.py\n",[34,74850,74851,74853,74856,74858,74860,74862,74864],{"class":36,"line":44},[34,74852,30060],{"class":580},[34,74854,74855],{"class":47}," Book",[34,74857,1607],{"class":181},[34,74859,73929],{"class":47},[34,74861,151],{"class":181},[34,74863,73972],{"class":47},[34,74865,51021],{"class":181},[34,74867,74868,74870,74872,74874,74876,74878,74880],{"class":36,"line":58},[34,74869,73979],{"class":181},[34,74871,1301],{"class":580},[34,74873,73984],{"class":181},[34,74875,73987],{"class":675},[34,74877,1301],{"class":580},[34,74879,38686],{"class":50},[34,74881,3372],{"class":181},[34,74883,74884,74887,74889,74891,74893,74895,74897],{"class":36,"line":65},[34,74885,74886],{"class":181},"    author ",[34,74888,1301],{"class":580},[34,74890,73984],{"class":181},[34,74892,73987],{"class":675},[34,74894,1301],{"class":580},[34,74896,38686],{"class":50},[34,74898,3372],{"class":181},[34,74900,74901],{"class":36,"line":71},[34,74902,62],{"emptyLinePlaceholder":61},[34,74904,74905],{"class":36,"line":77},[34,74906,74907],{"class":40},"# serializers.py\n",[34,74909,74910,74912,74915,74917],{"class":36,"line":82},[34,74911,587],{"class":580},[34,74913,74914],{"class":181}," rest_framework ",[34,74916,581],{"class":580},[34,74918,74919],{"class":181}," serializers\n",[34,74921,74922,74924,74926,74928],{"class":36,"line":88},[34,74923,587],{"class":580},[34,74925,74120],{"class":181},[34,74927,581],{"class":580},[34,74929,74930],{"class":181}," Book\n",[34,74932,74933,74935,74938,74940,74943,74945,74948],{"class":36,"line":242},[34,74934,30060],{"class":580},[34,74936,74937],{"class":47}," BookSerializer",[34,74939,1607],{"class":181},[34,74941,74942],{"class":47},"serializers",[34,74944,151],{"class":181},[34,74946,74947],{"class":47},"ModelSerializer",[34,74949,51021],{"class":181},[34,74951,74952,74955,74958],{"class":36,"line":250},[34,74953,74954],{"class":580},"    class",[34,74956,74957],{"class":47}," Meta",[34,74959,193],{"class":181},[34,74961,74962,74965,74967],{"class":36,"line":263},[34,74963,74964],{"class":181},"        model ",[34,74966,1301],{"class":580},[34,74968,74930],{"class":181},[34,74970,74971,74974,74976],{"class":36,"line":275},[34,74972,74973],{"class":181},"        fields ",[34,74975,1301],{"class":580},[34,74977,74978],{"class":54}," '__all__'\n",[102,74980,74982],{"id":74981},"api-views","API Views",[25,74984,74986],{"className":49386,"code":74985,"language":49388,"meta":30,"style":30},"# api_views.py\nfrom rest_framework.decorators import api_view\nfrom rest_framework.response import Response\nfrom .models import Book\nfrom .serializers import BookSerializer\n\n@api_view(['GET', 'POST'])\ndef book_list(request):\n    if request.method == 'GET':\n        books = Book.objects.all()\n        serializer = BookSerializer(books, many=True)\n        return Response(serializer.data)\n    elif request.method == 'POST':\n        serializer = BookSerializer(data=request.data)\n        if serializer.is_valid():\n            serializer.save()\n            return Response(serializer.data, status=201)\n",[20,74987,74988,74993,75005,75017,75027,75039,75043,75060,75069,75082,75092,75111,75118,75130,75146,75153,75158],{"__ignoreMap":30},[34,74989,74990],{"class":36,"line":37},[34,74991,74992],{"class":40},"# api_views.py\n",[34,74994,74995,74997,75000,75002],{"class":36,"line":44},[34,74996,587],{"class":580},[34,74998,74999],{"class":181}," rest_framework.decorators ",[34,75001,581],{"class":580},[34,75003,75004],{"class":181}," api_view\n",[34,75006,75007,75009,75012,75014],{"class":36,"line":58},[34,75008,587],{"class":580},[34,75010,75011],{"class":181}," rest_framework.response ",[34,75013,581],{"class":580},[34,75015,75016],{"class":181}," Response\n",[34,75018,75019,75021,75023,75025],{"class":36,"line":65},[34,75020,587],{"class":580},[34,75022,74120],{"class":181},[34,75024,581],{"class":580},[34,75026,74930],{"class":181},[34,75028,75029,75031,75034,75036],{"class":36,"line":71},[34,75030,587],{"class":580},[34,75032,75033],{"class":181}," .serializers ",[34,75035,581],{"class":580},[34,75037,75038],{"class":181}," BookSerializer\n",[34,75040,75041],{"class":36,"line":77},[34,75042,62],{"emptyLinePlaceholder":61},[34,75044,75045,75048,75050,75053,75055,75058],{"class":36,"line":82},[34,75046,75047],{"class":47},"@api_view",[34,75049,3593],{"class":181},[34,75051,75052],{"class":54},"'GET'",[34,75054,1798],{"class":181},[34,75056,75057],{"class":54},"'POST'",[34,75059,51547],{"class":181},[34,75061,75062,75064,75067],{"class":36,"line":88},[34,75063,49400],{"class":580},[34,75065,75066],{"class":47}," book_list",[34,75068,74139],{"class":181},[34,75070,75071,75073,75075,75077,75080],{"class":36,"line":242},[34,75072,2902],{"class":580},[34,75074,74658],{"class":181},[34,75076,18168],{"class":580},[34,75078,75079],{"class":54}," 'GET'",[34,75081,193],{"class":181},[34,75083,75084,75087,75089],{"class":36,"line":250},[34,75085,75086],{"class":181},"        books ",[34,75088,1301],{"class":580},[34,75090,75091],{"class":181}," Book.objects.all()\n",[34,75093,75094,75097,75099,75102,75105,75107,75109],{"class":36,"line":263},[34,75095,75096],{"class":181},"        serializer ",[34,75098,1301],{"class":580},[34,75100,75101],{"class":181}," BookSerializer(books, ",[34,75103,75104],{"class":675},"many",[34,75106,1301],{"class":580},[34,75108,74021],{"class":50},[34,75110,3372],{"class":181},[34,75112,75113,75115],{"class":36,"line":275},[34,75114,13895],{"class":580},[34,75116,75117],{"class":181}," Response(serializer.data)\n",[34,75119,75120,75122,75124,75126,75128],{"class":36,"line":700},[34,75121,63883],{"class":580},[34,75123,74658],{"class":181},[34,75125,18168],{"class":580},[34,75127,74663],{"class":54},[34,75129,193],{"class":181},[34,75131,75132,75134,75136,75139,75141,75143],{"class":36,"line":706},[34,75133,75096],{"class":181},[34,75135,1301],{"class":580},[34,75137,75138],{"class":181}," BookSerializer(",[34,75140,1701],{"class":675},[34,75142,1301],{"class":580},[34,75144,75145],{"class":181},"request.data)\n",[34,75147,75148,75150],{"class":36,"line":715},[34,75149,49573],{"class":580},[34,75151,75152],{"class":181}," serializer.is_valid():\n",[34,75154,75155],{"class":36,"line":725},[34,75156,75157],{"class":181},"            serializer.save()\n",[34,75159,75160,75162,75165,75168,75170,75173],{"class":36,"line":734},[34,75161,51208],{"class":580},[34,75163,75164],{"class":181}," Response(serializer.data, ",[34,75166,75167],{"class":675},"status",[34,75169,1301],{"class":580},[34,75171,75172],{"class":50},"201",[34,75174,3372],{"class":181},[388,75176,75177],{},"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 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);}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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":30,"searchDepth":44,"depth":44,"links":75179},[75180,75181,75182,75183,75184,75185,75186,75187,75192],{"id":6040,"depth":44,"text":6035},{"id":73904,"depth":44,"text":73905},{"id":73929,"depth":44,"text":73930},{"id":74050,"depth":44,"text":74051},{"id":32120,"depth":44,"text":74091},{"id":74171,"depth":44,"text":74172},{"id":32642,"depth":44,"text":32216},{"id":74454,"depth":44,"text":74455,"children":75188},[75189,75190,75191],{"id":74461,"depth":58,"text":74462},{"id":74522,"depth":58,"text":74523},{"id":74604,"depth":58,"text":74605},{"id":74812,"depth":44,"text":74813,"children":75193},[75194,75195,75196],{"id":74819,"depth":58,"text":74820},{"id":74837,"depth":58,"text":74838},{"id":74981,"depth":58,"text":74982},"2025-11-28","Django essentials for building robust and scalable web applications.",{"category":75200,"featured":65586,"icon":75201},"frameworks","\u003Csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\">\u003C/circle>\u003Cpolyline points=\"12 8 8 12 12 16\">\u003C/polyline>\u003Cline x1=\"16\" y1=\"12\" x2=\"8\" y2=\"12\">\u003C/line>\u003C/svg>","/examples/django",{"title":73833,"description":75198},"examples/django",[75206,49388,46870,38615],"django","eX6SwgE9Z2h922sFL14alE8uD_BzNkZImdF2X5SXdjw",{"id":75209,"title":75210,"body":75211,"date":402,"description":75271,"extension":404,"meta":75272,"navigation":61,"order":402,"path":75275,"seo":75276,"stem":75277,"subject":402,"tags":75278,"__hash__":75281},"topics/examples/elixir.md","Elixir Programming Language",{"type":8,"value":75212,"toc":75267},[75213,75217,75221,75236,75240,75259,75265],[8535,75214,75216],{"id":75215},"elixir-quick-examples","Elixir: Quick Examples",[102,75218,75220],{"id":75219},"basic-elixir-code-examples","Basic Elixir Code Examples",[25,75222,75224],{"className":61369,"code":75223,"language":61371,"meta":30,"style":30},"# Elixir's Hello World\nIO.puts(\"Hello, World!\")\n",[20,75225,75226,75231],{"__ignoreMap":30},[34,75227,75228],{"class":36,"line":37},[34,75229,75230],{},"# Elixir's Hello World\n",[34,75232,75233],{"class":36,"line":44},[34,75234,75235],{},"IO.puts(\"Hello, World!\")\n",[102,75237,75239],{"id":75238},"pattern-matching-basics","Pattern Matching Basics",[25,75241,75243],{"className":61369,"code":75242,"language":61371,"meta":30,"style":30},"{x, y, z} = {5, \"hello\", [1, 2, 3]}\n\nIO.inspect({x, y, z})\n",[20,75244,75245,75250,75254],{"__ignoreMap":30},[34,75246,75247],{"class":36,"line":37},[34,75248,75249],{},"{x, y, z} = {5, \"hello\", [1, 2, 3]}\n",[34,75251,75252],{"class":36,"line":44},[34,75253,62],{"emptyLinePlaceholder":61},[34,75255,75256],{"class":36,"line":58},[34,75257,75258],{},"IO.inspect({x, y, z})\n",[16,75260,75261,75262],{},"--- adding others to like Range Functions, AST AST Compile tuned efforts etc ",[8471,75263,75264],{},"many crawled",[388,75266,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":75268},[75269,75270],{"id":75219,"depth":58,"text":75220},{"id":75238,"depth":58,"text":75239},"Examples and best practices for the Elixir programming language.",{"category":75273,"featured":65586,"icon":75274},"languages","\u003Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24'>\u003Cpath fill='#4C51BF' d='M12 2C8.13 2 5 8 5 12s3.13 10 7 10 7-3.13 7-7-3.13-10-7-10z'/>\u003C/svg>","/examples/elixir",{"title":75210,"description":75271},"examples/elixir",[61371,75279,75280],"functional-programming","erlang-vm","veEDZ5S2xIjUxwyKjqgACVzsUzlix3J3CsSGGNjq4KE",{"id":75283,"title":75284,"body":75285,"date":78031,"description":78032,"extension":404,"meta":78033,"navigation":61,"order":402,"path":78035,"seo":78036,"stem":78037,"subject":402,"tags":78038,"__hash__":78042},"topics/examples/express.md","Express.js",{"type":8,"value":75286,"toc":78019},[75287,75291,75339,75480,75482,75831,75835,75933,75937,76168,76172,76497,76501,76658,76726,76730,76889,76893,77160,77164,77704,77706,78016],[11,75288,75290],{"id":75289},"setup","Setup",[25,75292,75294],{"className":27,"code":75293,"language":29,"meta":30,"style":30},"# Install Express\nnpm install express\n\n# Install with common middleware\nnpm install express cors helmet morgan dotenv\n",[20,75295,75296,75301,75309,75313,75318],{"__ignoreMap":30},[34,75297,75298],{"class":36,"line":37},[34,75299,75300],{"class":40},"# Install Express\n",[34,75302,75303,75305,75307],{"class":36,"line":44},[34,75304,8177],{"class":47},[34,75306,118],{"class":54},[34,75308,16266],{"class":54},[34,75310,75311],{"class":36,"line":58},[34,75312,62],{"emptyLinePlaceholder":61},[34,75314,75315],{"class":36,"line":65},[34,75316,75317],{"class":40},"# Install with common middleware\n",[34,75319,75320,75322,75324,75327,75330,75333,75336],{"class":36,"line":71},[34,75321,8177],{"class":47},[34,75323,118],{"class":54},[34,75325,75326],{"class":54}," express",[34,75328,75329],{"class":54}," cors",[34,75331,75332],{"class":54}," helmet",[34,75334,75335],{"class":54}," morgan",[34,75337,75338],{"class":54}," dotenv\n",[25,75340,75342],{"className":13845,"code":75341,"language":8606,"meta":30,"style":30},"// Basic server\nimport express from 'express'\n\nconst app = express()\nconst PORT = process.env.PORT || 3000\n\napp.use(express.json())           // parse JSON request bodies\napp.use(express.urlencoded({ extended: true })) // parse URL-encoded bodies\n\napp.listen(PORT, () => {\n  console.log(`Server running on http://localhost:${PORT}`)\n})\n",[20,75343,75344,75349,75360,75364,75376,75395,75399,75417,75439,75443,75459,75476],{"__ignoreMap":30},[34,75345,75346],{"class":36,"line":37},[34,75347,75348],{"class":40},"// Basic server\n",[34,75350,75351,75353,75355,75357],{"class":36,"line":44},[34,75352,581],{"class":580},[34,75354,47975],{"class":181},[34,75356,587],{"class":580},[34,75358,75359],{"class":54}," 'express'\n",[34,75361,75362],{"class":36,"line":58},[34,75363,62],{"emptyLinePlaceholder":61},[34,75365,75366,75368,75370,75372,75374],{"class":36,"line":65},[34,75367,14676],{"class":580},[34,75369,7253],{"class":50},[34,75371,683],{"class":580},[34,75373,75326],{"class":47},[34,75375,33899],{"class":181},[34,75377,75378,75380,75383,75385,75387,75390,75392],{"class":36,"line":71},[34,75379,14676],{"class":580},[34,75381,75382],{"class":50}," PORT",[34,75384,683],{"class":580},[34,75386,14701],{"class":181},[34,75388,75389],{"class":50},"PORT",[34,75391,21168],{"class":580},[34,75393,75394],{"class":50}," 3000\n",[34,75396,75397],{"class":36,"line":77},[34,75398,62],{"emptyLinePlaceholder":61},[34,75400,75401,75404,75406,75409,75411,75414],{"class":36,"line":82},[34,75402,75403],{"class":181},"app.",[34,75405,61898],{"class":47},[34,75407,75408],{"class":181},"(express.",[34,75410,14790],{"class":47},[34,75412,75413],{"class":181},"())           ",[34,75415,75416],{"class":40},"// parse JSON request bodies\n",[34,75418,75419,75421,75423,75425,75428,75431,75433,75436],{"class":36,"line":88},[34,75420,75403],{"class":181},[34,75422,61898],{"class":47},[34,75424,75408],{"class":181},[34,75426,75427],{"class":47},"urlencoded",[34,75429,75430],{"class":181},"({ extended: ",[34,75432,632],{"class":50},[34,75434,75435],{"class":181}," })) ",[34,75437,75438],{"class":40},"// parse URL-encoded bodies\n",[34,75440,75441],{"class":36,"line":242},[34,75442,62],{"emptyLinePlaceholder":61},[34,75444,75445,75447,75449,75451,75453,75455,75457],{"class":36,"line":250},[34,75446,75403],{"class":181},[34,75448,61841],{"class":47},[34,75450,1607],{"class":181},[34,75452,75389],{"class":50},[34,75454,17258],{"class":181},[34,75456,3361],{"class":580},[34,75458,661],{"class":181},[34,75460,75461,75463,75465,75467,75470,75472,75474],{"class":36,"line":263},[34,75462,14929],{"class":181},[34,75464,2424],{"class":47},[34,75466,1607],{"class":181},[34,75468,75469],{"class":54},"`Server running on http://localhost:${",[34,75471,75389],{"class":50},[34,75473,3925],{"class":54},[34,75475,3372],{"class":181},[34,75477,75478],{"class":36,"line":275},[34,75479,647],{"class":181},[11,75481,2614],{"id":3256},[25,75483,75485],{"className":13845,"code":75484,"language":8606,"meta":30,"style":30},"// Basic routes (GET, POST, PUT, PATCH, DELETE)\napp.get('/', (req, res) => {\n  res.send('Hello World')\n})\n\napp.post('/users', (req, res) => {\n  const user = req.body             // parsed JSON body\n  res.status(201).json(user)        // respond with JSON and 201 Created\n})\n\napp.put('/users/:id', (req, res) => {\n  const { id } = req.params         // route parameters\n  res.json({ id, ...req.body })\n})\n\napp.delete('/users/:id', (req, res) => {\n  res.status(204).send()            // 204 No Content\n})\n\n// Match multiple HTTP methods\napp.route('/users/:id')\n  .get((req, res) => res.json({ id: req.params.id }))\n  .put((req, res) => res.json({ updated: true }))\n  .delete((req, res) => res.status(204).send())\n",[20,75486,75487,75492,75518,75532,75536,75540,75565,75579,75599,75603,75607,75632,75650,75664,75668,75672,75696,75717,75721,75725,75730,75743,75769,75799],{"__ignoreMap":30},[34,75488,75489],{"class":36,"line":37},[34,75490,75491],{"class":40},"// Basic routes (GET, POST, PUT, PATCH, DELETE)\n",[34,75493,75494,75496,75498,75500,75502,75505,75507,75509,75512,75514,75516],{"class":36,"line":44},[34,75495,75403],{"class":181},[34,75497,1573],{"class":47},[34,75499,1607],{"class":181},[34,75501,61825],{"class":54},[34,75503,75504],{"class":181},", (",[34,75506,15452],{"class":675},[34,75508,1798],{"class":181},[34,75510,75511],{"class":675},"res",[34,75513,4817],{"class":181},[34,75515,3361],{"class":580},[34,75517,661],{"class":181},[34,75519,75520,75523,75525,75527,75530],{"class":36,"line":58},[34,75521,75522],{"class":181},"  res.",[34,75524,15746],{"class":47},[34,75526,1607],{"class":181},[34,75528,75529],{"class":54},"'Hello World'",[34,75531,3372],{"class":181},[34,75533,75534],{"class":36,"line":65},[34,75535,647],{"class":181},[34,75537,75538],{"class":36,"line":71},[34,75539,62],{"emptyLinePlaceholder":61},[34,75541,75542,75544,75546,75548,75551,75553,75555,75557,75559,75561,75563],{"class":36,"line":77},[34,75543,75403],{"class":181},[34,75545,1730],{"class":47},[34,75547,1607],{"class":181},[34,75549,75550],{"class":54},"'/users'",[34,75552,75504],{"class":181},[34,75554,15452],{"class":675},[34,75556,1798],{"class":181},[34,75558,75511],{"class":675},[34,75560,4817],{"class":181},[34,75562,3361],{"class":580},[34,75564,661],{"class":181},[34,75566,75567,75569,75571,75573,75576],{"class":36,"line":82},[34,75568,17415],{"class":580},[34,75570,17148],{"class":50},[34,75572,683],{"class":580},[34,75574,75575],{"class":181}," req.body             ",[34,75577,75578],{"class":40},"// parsed JSON body\n",[34,75580,75581,75583,75585,75587,75589,75591,75593,75596],{"class":36,"line":88},[34,75582,75522],{"class":181},[34,75584,75167],{"class":47},[34,75586,1607],{"class":181},[34,75588,75172],{"class":50},[34,75590,1876],{"class":181},[34,75592,14790],{"class":47},[34,75594,75595],{"class":181},"(user)        ",[34,75597,75598],{"class":40},"// respond with JSON and 201 Created\n",[34,75600,75601],{"class":36,"line":242},[34,75602,647],{"class":181},[34,75604,75605],{"class":36,"line":250},[34,75606,62],{"emptyLinePlaceholder":61},[34,75608,75609,75611,75613,75615,75618,75620,75622,75624,75626,75628,75630],{"class":36,"line":263},[34,75610,75403],{"class":181},[34,75612,51602],{"class":47},[34,75614,1607],{"class":181},[34,75616,75617],{"class":54},"'/users/:id'",[34,75619,75504],{"class":181},[34,75621,15452],{"class":675},[34,75623,1798],{"class":181},[34,75625,75511],{"class":675},[34,75627,4817],{"class":181},[34,75629,3361],{"class":580},[34,75631,661],{"class":181},[34,75633,75634,75636,75638,75640,75642,75644,75647],{"class":36,"line":275},[34,75635,17415],{"class":580},[34,75637,30251],{"class":181},[34,75639,3885],{"class":50},[34,75641,34865],{"class":181},[34,75643,1301],{"class":580},[34,75645,75646],{"class":181}," req.params         ",[34,75648,75649],{"class":40},"// route parameters\n",[34,75651,75652,75654,75656,75659,75661],{"class":36,"line":700},[34,75653,75522],{"class":181},[34,75655,14790],{"class":47},[34,75657,75658],{"class":181},"({ id, ",[34,75660,16841],{"class":580},[34,75662,75663],{"class":181},"req.body })\n",[34,75665,75666],{"class":36,"line":706},[34,75667,647],{"class":181},[34,75669,75670],{"class":36,"line":715},[34,75671,62],{"emptyLinePlaceholder":61},[34,75673,75674,75676,75678,75680,75682,75684,75686,75688,75690,75692,75694],{"class":36,"line":725},[34,75675,75403],{"class":181},[34,75677,30355],{"class":47},[34,75679,1607],{"class":181},[34,75681,75617],{"class":54},[34,75683,75504],{"class":181},[34,75685,15452],{"class":675},[34,75687,1798],{"class":181},[34,75689,75511],{"class":675},[34,75691,4817],{"class":181},[34,75693,3361],{"class":580},[34,75695,661],{"class":181},[34,75697,75698,75700,75702,75704,75707,75709,75711,75714],{"class":36,"line":734},[34,75699,75522],{"class":181},[34,75701,75167],{"class":47},[34,75703,1607],{"class":181},[34,75705,75706],{"class":50},"204",[34,75708,1876],{"class":181},[34,75710,15746],{"class":47},[34,75712,75713],{"class":181},"()            ",[34,75715,75716],{"class":40},"// 204 No Content\n",[34,75718,75719],{"class":36,"line":742},[34,75720,647],{"class":181},[34,75722,75723],{"class":36,"line":748},[34,75724,62],{"emptyLinePlaceholder":61},[34,75726,75727],{"class":36,"line":754},[34,75728,75729],{"class":40},"// Match multiple HTTP methods\n",[34,75731,75732,75734,75737,75739,75741],{"class":36,"line":759},[34,75733,75403],{"class":181},[34,75735,75736],{"class":47},"route",[34,75738,1607],{"class":181},[34,75740,75617],{"class":54},[34,75742,3372],{"class":181},[34,75744,75745,75747,75749,75751,75753,75755,75757,75759,75761,75764,75766],{"class":36,"line":771},[34,75746,61818],{"class":181},[34,75748,1573],{"class":47},[34,75750,8348],{"class":181},[34,75752,15452],{"class":675},[34,75754,1798],{"class":181},[34,75756,75511],{"class":675},[34,75758,4817],{"class":181},[34,75760,3361],{"class":580},[34,75762,75763],{"class":181}," res.",[34,75765,14790],{"class":47},[34,75767,75768],{"class":181},"({ id: req.params.id }))\n",[34,75770,75771,75773,75775,75777,75779,75781,75783,75785,75787,75789,75791,75794,75796],{"class":36,"line":794},[34,75772,61818],{"class":181},[34,75774,51602],{"class":47},[34,75776,8348],{"class":181},[34,75778,15452],{"class":675},[34,75780,1798],{"class":181},[34,75782,75511],{"class":675},[34,75784,4817],{"class":181},[34,75786,3361],{"class":580},[34,75788,75763],{"class":181},[34,75790,14790],{"class":47},[34,75792,75793],{"class":181},"({ updated: ",[34,75795,632],{"class":50},[34,75797,75798],{"class":181}," }))\n",[34,75800,75801,75803,75805,75807,75809,75811,75813,75815,75817,75819,75821,75823,75825,75827,75829],{"class":36,"line":824},[34,75802,61818],{"class":181},[34,75804,30355],{"class":47},[34,75806,8348],{"class":181},[34,75808,15452],{"class":675},[34,75810,1798],{"class":181},[34,75812,75511],{"class":675},[34,75814,4817],{"class":181},[34,75816,3361],{"class":580},[34,75818,75763],{"class":181},[34,75820,75167],{"class":47},[34,75822,1607],{"class":181},[34,75824,75706],{"class":50},[34,75826,1876],{"class":181},[34,75828,15746],{"class":47},[34,75830,62281],{"class":181},[11,75832,75834],{"id":75833},"request-object","Request Object",[25,75836,75838],{"className":13845,"code":75837,"language":8606,"meta":30,"style":30},"app.get('/example', (req, res) => {\n  req.params        // route parameters: /users/:id → { id: '42' }\n  req.query         // query string: ?name=alice&age=30 → { name: 'alice', age: '30' }\n  req.body          // parsed request body (requires body-parsing middleware)\n  req.headers       // HTTP request headers\n  req.method        // HTTP method: 'GET', 'POST', etc.\n  req.path          // URL path: '/example'\n  req.ip            // client IP address\n  req.cookies       // parsed cookies (requires cookie-parser middleware)\n})\n",[20,75839,75840,75865,75873,75881,75889,75897,75905,75913,75921,75929],{"__ignoreMap":30},[34,75841,75842,75844,75846,75848,75851,75853,75855,75857,75859,75861,75863],{"class":36,"line":37},[34,75843,75403],{"class":181},[34,75845,1573],{"class":47},[34,75847,1607],{"class":181},[34,75849,75850],{"class":54},"'/example'",[34,75852,75504],{"class":181},[34,75854,15452],{"class":675},[34,75856,1798],{"class":181},[34,75858,75511],{"class":675},[34,75860,4817],{"class":181},[34,75862,3361],{"class":580},[34,75864,661],{"class":181},[34,75866,75867,75870],{"class":36,"line":44},[34,75868,75869],{"class":181},"  req.params        ",[34,75871,75872],{"class":40},"// route parameters: /users/:id → { id: '42' }\n",[34,75874,75875,75878],{"class":36,"line":58},[34,75876,75877],{"class":181},"  req.query         ",[34,75879,75880],{"class":40},"// query string: ?name=alice&age=30 → { name: 'alice', age: '30' }\n",[34,75882,75883,75886],{"class":36,"line":65},[34,75884,75885],{"class":181},"  req.body          ",[34,75887,75888],{"class":40},"// parsed request body (requires body-parsing middleware)\n",[34,75890,75891,75894],{"class":36,"line":71},[34,75892,75893],{"class":181},"  req.headers       ",[34,75895,75896],{"class":40},"// HTTP request headers\n",[34,75898,75899,75902],{"class":36,"line":77},[34,75900,75901],{"class":181},"  req.method        ",[34,75903,75904],{"class":40},"// HTTP method: 'GET', 'POST', etc.\n",[34,75906,75907,75910],{"class":36,"line":82},[34,75908,75909],{"class":181},"  req.path          ",[34,75911,75912],{"class":40},"// URL path: '/example'\n",[34,75914,75915,75918],{"class":36,"line":88},[34,75916,75917],{"class":181},"  req.ip            ",[34,75919,75920],{"class":40},"// client IP address\n",[34,75922,75923,75926],{"class":36,"line":242},[34,75924,75925],{"class":181},"  req.cookies       ",[34,75927,75928],{"class":40},"// parsed cookies (requires cookie-parser middleware)\n",[34,75930,75931],{"class":36,"line":250},[34,75932,647],{"class":181},[11,75934,75936],{"id":75935},"response-object","Response Object",[25,75938,75940],{"className":13845,"code":75939,"language":8606,"meta":30,"style":30},"app.get('/response-demo', (req, res) => {\n  // Send different response types\n  res.send('text response')           // plain text or HTML\n  res.json({ key: 'value' })          // JSON (sets Content-Type automatically)\n  res.sendFile('/path/to/file.html')  // send a file\n\n  // Status codes\n  res.status(200).json({ ok: true })  // chain status with response\n  res.status(404).send('Not found')\n  res.sendStatus(204)                 // send status code only (no body)\n\n  // Headers and redirects\n  res.set('X-Custom-Header', 'value') // set response header\n  res.redirect('/new-path')           // 302 redirect\n  res.redirect(301, '/permanent-path') // 301 permanent redirect\n})\n",[20,75941,75942,75967,75972,75989,76007,76025,76029,76034,76059,76080,76097,76101,76106,76126,76143,76164],{"__ignoreMap":30},[34,75943,75944,75946,75948,75950,75953,75955,75957,75959,75961,75963,75965],{"class":36,"line":37},[34,75945,75403],{"class":181},[34,75947,1573],{"class":47},[34,75949,1607],{"class":181},[34,75951,75952],{"class":54},"'/response-demo'",[34,75954,75504],{"class":181},[34,75956,15452],{"class":675},[34,75958,1798],{"class":181},[34,75960,75511],{"class":675},[34,75962,4817],{"class":181},[34,75964,3361],{"class":580},[34,75966,661],{"class":181},[34,75968,75969],{"class":36,"line":44},[34,75970,75971],{"class":40},"  // Send different response types\n",[34,75973,75974,75976,75978,75980,75983,75986],{"class":36,"line":58},[34,75975,75522],{"class":181},[34,75977,15746],{"class":47},[34,75979,1607],{"class":181},[34,75981,75982],{"class":54},"'text response'",[34,75984,75985],{"class":181},")           ",[34,75987,75988],{"class":40},"// plain text or HTML\n",[34,75990,75991,75993,75995,75998,76001,76004],{"class":36,"line":65},[34,75992,75522],{"class":181},[34,75994,14790],{"class":47},[34,75996,75997],{"class":181},"({ key: ",[34,75999,76000],{"class":54},"'value'",[34,76002,76003],{"class":181}," })          ",[34,76005,76006],{"class":40},"// JSON (sets Content-Type automatically)\n",[34,76008,76009,76011,76014,76016,76019,76022],{"class":36,"line":71},[34,76010,75522],{"class":181},[34,76012,76013],{"class":47},"sendFile",[34,76015,1607],{"class":181},[34,76017,76018],{"class":54},"'/path/to/file.html'",[34,76020,76021],{"class":181},")  ",[34,76023,76024],{"class":40},"// send a file\n",[34,76026,76027],{"class":36,"line":77},[34,76028,62],{"emptyLinePlaceholder":61},[34,76030,76031],{"class":36,"line":82},[34,76032,76033],{"class":40},"  // Status codes\n",[34,76035,76036,76038,76040,76042,76044,76046,76048,76051,76053,76056],{"class":36,"line":88},[34,76037,75522],{"class":181},[34,76039,75167],{"class":47},[34,76041,1607],{"class":181},[34,76043,20899],{"class":50},[34,76045,1876],{"class":181},[34,76047,14790],{"class":47},[34,76049,76050],{"class":181},"({ ok: ",[34,76052,632],{"class":50},[34,76054,76055],{"class":181}," })  ",[34,76057,76058],{"class":40},"// chain status with response\n",[34,76060,76061,76063,76065,76067,76069,76071,76073,76075,76078],{"class":36,"line":242},[34,76062,75522],{"class":181},[34,76064,75167],{"class":47},[34,76066,1607],{"class":181},[34,76068,15630],{"class":50},[34,76070,1876],{"class":181},[34,76072,15746],{"class":47},[34,76074,1607],{"class":181},[34,76076,76077],{"class":54},"'Not found'",[34,76079,3372],{"class":181},[34,76081,76082,76084,76087,76089,76091,76094],{"class":36,"line":250},[34,76083,75522],{"class":181},[34,76085,76086],{"class":47},"sendStatus",[34,76088,1607],{"class":181},[34,76090,75706],{"class":50},[34,76092,76093],{"class":181},")                 ",[34,76095,76096],{"class":40},"// send status code only (no body)\n",[34,76098,76099],{"class":36,"line":263},[34,76100,62],{"emptyLinePlaceholder":61},[34,76102,76103],{"class":36,"line":275},[34,76104,76105],{"class":40},"  // Headers and redirects\n",[34,76107,76108,76110,76112,76114,76117,76119,76121,76123],{"class":36,"line":700},[34,76109,75522],{"class":181},[34,76111,1648],{"class":47},[34,76113,1607],{"class":181},[34,76115,76116],{"class":54},"'X-Custom-Header'",[34,76118,1798],{"class":181},[34,76120,76000],{"class":54},[34,76122,4817],{"class":181},[34,76124,76125],{"class":40},"// set response header\n",[34,76127,76128,76130,76133,76135,76138,76140],{"class":36,"line":706},[34,76129,75522],{"class":181},[34,76131,76132],{"class":47},"redirect",[34,76134,1607],{"class":181},[34,76136,76137],{"class":54},"'/new-path'",[34,76139,75985],{"class":181},[34,76141,76142],{"class":40},"// 302 redirect\n",[34,76144,76145,76147,76149,76151,76154,76156,76159,76161],{"class":36,"line":715},[34,76146,75522],{"class":181},[34,76148,76132],{"class":47},[34,76150,1607],{"class":181},[34,76152,76153],{"class":50},"301",[34,76155,1798],{"class":181},[34,76157,76158],{"class":54},"'/permanent-path'",[34,76160,4817],{"class":181},[34,76162,76163],{"class":40},"// 301 permanent redirect\n",[34,76165,76166],{"class":36,"line":725},[34,76167,647],{"class":181},[11,76169,76171],{"id":76170},"middleware","Middleware",[25,76173,76175],{"className":13845,"code":76174,"language":8606,"meta":30,"style":30},"// Application-level middleware (runs on every request)\napp.use((req, res, next) => {\n  console.log(`${req.method} ${req.path} - ${new Date().toISOString()}`)\n  next()   // pass control to the next middleware or route\n})\n\n// Route-level middleware\nconst authenticate = (req, res, next) => {\n  const token = req.headers.authorization\n  if (!token) return res.status(401).json({ error: 'Unauthorized' })\n  req.user = { id: 1 }  // attach data to the request object\n  next()\n}\n\napp.get('/protected', authenticate, (req, res) => {\n  res.json({ user: req.user })\n})\n\n// Error-handling middleware (4 arguments: err, req, res, next)\napp.use((err, req, res, next) => {\n  console.error(err.stack)\n  res.status(err.status || 500).json({\n    error: err.message || 'Internal Server Error'\n  })\n})\n",[20,76176,76177,76182,76206,76249,76260,76264,76268,76273,76300,76311,76342,76360,76366,76370,76374,76400,76409,76413,76417,76422,76450,76459,76479,76489,76493],{"__ignoreMap":30},[34,76178,76179],{"class":36,"line":37},[34,76180,76181],{"class":40},"// Application-level middleware (runs on every request)\n",[34,76183,76184,76186,76188,76190,76192,76194,76196,76198,76200,76202,76204],{"class":36,"line":44},[34,76185,75403],{"class":181},[34,76187,61898],{"class":47},[34,76189,8348],{"class":181},[34,76191,15452],{"class":675},[34,76193,1798],{"class":181},[34,76195,75511],{"class":675},[34,76197,1798],{"class":181},[34,76199,61912],{"class":675},[34,76201,4817],{"class":181},[34,76203,3361],{"class":580},[34,76205,661],{"class":181},[34,76207,76208,76210,76212,76214,76216,76218,76220,76223,76225,76227,76229,76231,76234,76236,76238,76240,76243,76245,76247],{"class":36,"line":58},[34,76209,14929],{"class":181},[34,76211,2424],{"class":47},[34,76213,1607],{"class":181},[34,76215,3910],{"class":54},[34,76217,15452],{"class":181},[34,76219,151],{"class":54},[34,76221,76222],{"class":181},"method",[34,76224,71832],{"class":54},[34,76226,15452],{"class":181},[34,76228,151],{"class":54},[34,76230,20404],{"class":181},[34,76232,76233],{"class":54},"} - ${",[34,76235,3143],{"class":580},[34,76237,60453],{"class":47},[34,76239,1645],{"class":54},[34,76241,76242],{"class":47},"toISOString",[34,76244,1546],{"class":54},[34,76246,3925],{"class":54},[34,76248,3372],{"class":181},[34,76250,76251,76254,76257],{"class":36,"line":65},[34,76252,76253],{"class":47},"  next",[34,76255,76256],{"class":181},"()   ",[34,76258,76259],{"class":40},"// pass control to the next middleware or route\n",[34,76261,76262],{"class":36,"line":71},[34,76263,647],{"class":181},[34,76265,76266],{"class":36,"line":77},[34,76267,62],{"emptyLinePlaceholder":61},[34,76269,76270],{"class":36,"line":82},[34,76271,76272],{"class":40},"// Route-level middleware\n",[34,76274,76275,76277,76280,76282,76284,76286,76288,76290,76292,76294,76296,76298],{"class":36,"line":88},[34,76276,14676],{"class":580},[34,76278,76279],{"class":47}," authenticate",[34,76281,683],{"class":580},[34,76283,3204],{"class":181},[34,76285,15452],{"class":675},[34,76287,1798],{"class":181},[34,76289,75511],{"class":675},[34,76291,1798],{"class":181},[34,76293,61912],{"class":675},[34,76295,4817],{"class":181},[34,76297,3361],{"class":580},[34,76299,661],{"class":181},[34,76301,76302,76304,76306,76308],{"class":36,"line":242},[34,76303,17415],{"class":580},[34,76305,72656],{"class":50},[34,76307,683],{"class":580},[34,76309,76310],{"class":181}," req.headers.authorization\n",[34,76312,76313,76315,76317,76319,76322,76324,76326,76328,76330,76332,76334,76336,76338,76340],{"class":36,"line":250},[34,76314,8084],{"class":580},[34,76316,3204],{"class":181},[34,76318,10307],{"class":580},[34,76320,76321],{"class":181},"token) ",[34,76323,2917],{"class":580},[34,76325,75763],{"class":181},[34,76327,75167],{"class":47},[34,76329,1607],{"class":181},[34,76331,61955],{"class":50},[34,76333,1876],{"class":181},[34,76335,14790],{"class":47},[34,76337,61946],{"class":181},[34,76339,61949],{"class":54},[34,76341,1502],{"class":181},[34,76343,76344,76347,76349,76352,76354,76357],{"class":36,"line":263},[34,76345,76346],{"class":181},"  req.user ",[34,76348,1301],{"class":580},[34,76350,76351],{"class":181}," { id: ",[34,76353,8318],{"class":50},[34,76355,76356],{"class":181}," }  ",[34,76358,76359],{"class":40},"// attach data to the request object\n",[34,76361,76362,76364],{"class":36,"line":275},[34,76363,76253],{"class":47},[34,76365,33899],{"class":181},[34,76367,76368],{"class":36,"line":700},[34,76369,693],{"class":181},[34,76371,76372],{"class":36,"line":706},[34,76373,62],{"emptyLinePlaceholder":61},[34,76375,76376,76378,76380,76382,76385,76388,76390,76392,76394,76396,76398],{"class":36,"line":715},[34,76377,75403],{"class":181},[34,76379,1573],{"class":47},[34,76381,1607],{"class":181},[34,76383,76384],{"class":54},"'/protected'",[34,76386,76387],{"class":181},", authenticate, (",[34,76389,15452],{"class":675},[34,76391,1798],{"class":181},[34,76393,75511],{"class":675},[34,76395,4817],{"class":181},[34,76397,3361],{"class":580},[34,76399,661],{"class":181},[34,76401,76402,76404,76406],{"class":36,"line":725},[34,76403,75522],{"class":181},[34,76405,14790],{"class":47},[34,76407,76408],{"class":181},"({ user: req.user })\n",[34,76410,76411],{"class":36,"line":734},[34,76412,647],{"class":181},[34,76414,76415],{"class":36,"line":742},[34,76416,62],{"emptyLinePlaceholder":61},[34,76418,76419],{"class":36,"line":748},[34,76420,76421],{"class":40},"// Error-handling middleware (4 arguments: err, req, res, next)\n",[34,76423,76424,76426,76428,76430,76432,76434,76436,76438,76440,76442,76444,76446,76448],{"class":36,"line":754},[34,76425,75403],{"class":181},[34,76427,61898],{"class":47},[34,76429,8348],{"class":181},[34,76431,20566],{"class":675},[34,76433,1798],{"class":181},[34,76435,15452],{"class":675},[34,76437,1798],{"class":181},[34,76439,75511],{"class":675},[34,76441,1798],{"class":181},[34,76443,61912],{"class":675},[34,76445,4817],{"class":181},[34,76447,3361],{"class":580},[34,76449,661],{"class":181},[34,76451,76452,76454,76456],{"class":36,"line":759},[34,76453,14929],{"class":181},[34,76455,1908],{"class":47},[34,76457,76458],{"class":181},"(err.stack)\n",[34,76460,76461,76463,76465,76468,76470,76473,76475,76477],{"class":36,"line":771},[34,76462,75522],{"class":181},[34,76464,75167],{"class":47},[34,76466,76467],{"class":181},"(err.status ",[34,76469,10892],{"class":580},[34,76471,76472],{"class":50}," 500",[34,76474,1876],{"class":181},[34,76476,14790],{"class":47},[34,76478,613],{"class":181},[34,76480,76481,76484,76486],{"class":36,"line":794},[34,76482,76483],{"class":181},"    error: err.message ",[34,76485,10892],{"class":580},[34,76487,76488],{"class":54}," 'Internal Server Error'\n",[34,76490,76491],{"class":36,"line":824},[34,76492,62121],{"class":181},[34,76494,76495],{"class":36,"line":830},[34,76496,647],{"class":181},[11,76498,76500],{"id":76499},"router","Router",[25,76502,76504],{"className":13845,"code":76503,"language":8606,"meta":30,"style":30},"// routes/users.js — modular route files\nimport { Router } from 'express'\nconst router = Router()\n\nrouter.get('/', (req, res) => res.json([]))           // GET /users\nrouter.get('/:id', (req, res) => res.json({ id: req.params.id })) // GET /users/:id\nrouter.post('/', (req, res) => res.status(201).json(req.body))    // POST /users\n\nexport default router\n",[20,76505,76506,76511,76522,76535,76539,76572,76605,76645,76649],{"__ignoreMap":30},[34,76507,76508],{"class":36,"line":37},[34,76509,76510],{"class":40},"// routes/users.js — modular route files\n",[34,76512,76513,76515,76518,76520],{"class":36,"line":44},[34,76514,581],{"class":580},[34,76516,76517],{"class":181}," { Router } ",[34,76519,587],{"class":580},[34,76521,75359],{"class":54},[34,76523,76524,76526,76528,76530,76533],{"class":36,"line":58},[34,76525,14676],{"class":580},[34,76527,3536],{"class":50},[34,76529,683],{"class":580},[34,76531,76532],{"class":47}," Router",[34,76534,33899],{"class":181},[34,76536,76537],{"class":36,"line":65},[34,76538,62],{"emptyLinePlaceholder":61},[34,76540,76541,76544,76546,76548,76550,76552,76554,76556,76558,76560,76562,76564,76566,76569],{"class":36,"line":71},[34,76542,76543],{"class":181},"router.",[34,76545,1573],{"class":47},[34,76547,1607],{"class":181},[34,76549,61825],{"class":54},[34,76551,75504],{"class":181},[34,76553,15452],{"class":675},[34,76555,1798],{"class":181},[34,76557,75511],{"class":675},[34,76559,4817],{"class":181},[34,76561,3361],{"class":580},[34,76563,75763],{"class":181},[34,76565,14790],{"class":47},[34,76567,76568],{"class":181},"([]))           ",[34,76570,76571],{"class":40},"// GET /users\n",[34,76573,76574,76576,76578,76580,76583,76585,76587,76589,76591,76593,76595,76597,76599,76602],{"class":36,"line":77},[34,76575,76543],{"class":181},[34,76577,1573],{"class":47},[34,76579,1607],{"class":181},[34,76581,76582],{"class":54},"'/:id'",[34,76584,75504],{"class":181},[34,76586,15452],{"class":675},[34,76588,1798],{"class":181},[34,76590,75511],{"class":675},[34,76592,4817],{"class":181},[34,76594,3361],{"class":580},[34,76596,75763],{"class":181},[34,76598,14790],{"class":47},[34,76600,76601],{"class":181},"({ id: req.params.id })) ",[34,76603,76604],{"class":40},"// GET /users/:id\n",[34,76606,76607,76609,76611,76613,76615,76617,76619,76621,76623,76625,76627,76629,76631,76633,76635,76637,76639,76642],{"class":36,"line":82},[34,76608,76543],{"class":181},[34,76610,1730],{"class":47},[34,76612,1607],{"class":181},[34,76614,61825],{"class":54},[34,76616,75504],{"class":181},[34,76618,15452],{"class":675},[34,76620,1798],{"class":181},[34,76622,75511],{"class":675},[34,76624,4817],{"class":181},[34,76626,3361],{"class":580},[34,76628,75763],{"class":181},[34,76630,75167],{"class":47},[34,76632,1607],{"class":181},[34,76634,75172],{"class":50},[34,76636,1876],{"class":181},[34,76638,14790],{"class":47},[34,76640,76641],{"class":181},"(req.body))    ",[34,76643,76644],{"class":40},"// POST /users\n",[34,76646,76647],{"class":36,"line":88},[34,76648,62],{"emptyLinePlaceholder":61},[34,76650,76651,76653,76655],{"class":36,"line":242},[34,76652,652],{"class":580},[34,76654,7298],{"class":580},[34,76656,76657],{"class":181}," router\n",[25,76659,76661],{"className":13845,"code":76660,"language":8606,"meta":30,"style":30},"// app.js — mount routers with a prefix\nimport usersRouter from './routes/users.js'\nimport postsRouter from './routes/posts.js'\n\napp.use('/users', usersRouter)  // all routes in usersRouter are prefixed with /users\napp.use('/posts', postsRouter)\n",[20,76662,76663,76668,76680,76692,76696,76712],{"__ignoreMap":30},[34,76664,76665],{"class":36,"line":37},[34,76666,76667],{"class":40},"// app.js — mount routers with a prefix\n",[34,76669,76670,76672,76675,76677],{"class":36,"line":44},[34,76671,581],{"class":580},[34,76673,76674],{"class":181}," usersRouter ",[34,76676,587],{"class":580},[34,76678,76679],{"class":54}," './routes/users.js'\n",[34,76681,76682,76684,76687,76689],{"class":36,"line":58},[34,76683,581],{"class":580},[34,76685,76686],{"class":181}," postsRouter ",[34,76688,587],{"class":580},[34,76690,76691],{"class":54}," './routes/posts.js'\n",[34,76693,76694],{"class":36,"line":65},[34,76695,62],{"emptyLinePlaceholder":61},[34,76697,76698,76700,76702,76704,76706,76709],{"class":36,"line":71},[34,76699,75403],{"class":181},[34,76701,61898],{"class":47},[34,76703,1607],{"class":181},[34,76705,75550],{"class":54},[34,76707,76708],{"class":181},", usersRouter)  ",[34,76710,76711],{"class":40},"// all routes in usersRouter are prefixed with /users\n",[34,76713,76714,76716,76718,76720,76723],{"class":36,"line":77},[34,76715,75403],{"class":181},[34,76717,61898],{"class":47},[34,76719,1607],{"class":181},[34,76721,76722],{"class":54},"'/posts'",[34,76724,76725],{"class":181},", postsRouter)\n",[11,76727,76729],{"id":76728},"static-files-views","Static Files & Views",[25,76731,76733],{"className":13845,"code":76732,"language":8606,"meta":30,"style":30},"// Serve static assets from a directory\napp.use(express.static('public'))               // serve files from /public\napp.use('/assets', express.static('uploads'))   // serve under a prefix\n\n// Render HTML templates (e.g., EJS)\napp.set('view engine', 'ejs')\napp.set('views', './views')\n\napp.get('/hello', (req, res) => {\n  res.render('hello', { name: 'World' })  // renders views/hello.ejs\n})\n",[20,76734,76735,76740,76761,76788,76792,76797,76815,76833,76837,76862,76885],{"__ignoreMap":30},[34,76736,76737],{"class":36,"line":37},[34,76738,76739],{"class":40},"// Serve static assets from a directory\n",[34,76741,76742,76744,76746,76748,76750,76752,76755,76758],{"class":36,"line":44},[34,76743,75403],{"class":181},[34,76745,61898],{"class":47},[34,76747,75408],{"class":181},[34,76749,41002],{"class":47},[34,76751,1607],{"class":181},[34,76753,76754],{"class":54},"'public'",[34,76756,76757],{"class":181},"))               ",[34,76759,76760],{"class":40},"// serve files from /public\n",[34,76762,76763,76765,76767,76769,76772,76775,76777,76779,76782,76785],{"class":36,"line":58},[34,76764,75403],{"class":181},[34,76766,61898],{"class":47},[34,76768,1607],{"class":181},[34,76770,76771],{"class":54},"'/assets'",[34,76773,76774],{"class":181},", express.",[34,76776,41002],{"class":47},[34,76778,1607],{"class":181},[34,76780,76781],{"class":54},"'uploads'",[34,76783,76784],{"class":181},"))   ",[34,76786,76787],{"class":40},"// serve under a prefix\n",[34,76789,76790],{"class":36,"line":65},[34,76791,62],{"emptyLinePlaceholder":61},[34,76793,76794],{"class":36,"line":71},[34,76795,76796],{"class":40},"// Render HTML templates (e.g., EJS)\n",[34,76798,76799,76801,76803,76805,76808,76810,76813],{"class":36,"line":77},[34,76800,75403],{"class":181},[34,76802,1648],{"class":47},[34,76804,1607],{"class":181},[34,76806,76807],{"class":54},"'view engine'",[34,76809,1798],{"class":181},[34,76811,76812],{"class":54},"'ejs'",[34,76814,3372],{"class":181},[34,76816,76817,76819,76821,76823,76826,76828,76831],{"class":36,"line":82},[34,76818,75403],{"class":181},[34,76820,1648],{"class":47},[34,76822,1607],{"class":181},[34,76824,76825],{"class":54},"'views'",[34,76827,1798],{"class":181},[34,76829,76830],{"class":54},"'./views'",[34,76832,3372],{"class":181},[34,76834,76835],{"class":36,"line":88},[34,76836,62],{"emptyLinePlaceholder":61},[34,76838,76839,76841,76843,76845,76848,76850,76852,76854,76856,76858,76860],{"class":36,"line":242},[34,76840,75403],{"class":181},[34,76842,1573],{"class":47},[34,76844,1607],{"class":181},[34,76846,76847],{"class":54},"'/hello'",[34,76849,75504],{"class":181},[34,76851,15452],{"class":675},[34,76853,1798],{"class":181},[34,76855,75511],{"class":675},[34,76857,4817],{"class":181},[34,76859,3361],{"class":580},[34,76861,661],{"class":181},[34,76863,76864,76866,76869,76871,76874,76877,76880,76882],{"class":36,"line":250},[34,76865,75522],{"class":181},[34,76867,76868],{"class":47},"render",[34,76870,1607],{"class":181},[34,76872,76873],{"class":54},"'hello'",[34,76875,76876],{"class":181},", { name: ",[34,76878,76879],{"class":54},"'World'",[34,76881,76055],{"class":181},[34,76883,76884],{"class":40},"// renders views/hello.ejs\n",[34,76886,76887],{"class":36,"line":263},[34,76888,647],{"class":181},[11,76890,76892],{"id":76891},"common-middleware-packages","Common Middleware Packages",[25,76894,76896],{"className":13845,"code":76895,"language":8606,"meta":30,"style":30},"import cors from 'cors'\nimport helmet from 'helmet'\nimport morgan from 'morgan'\n\n// CORS — allow cross-origin requests\napp.use(cors({\n  origin: 'https://myapp.com',  // restrict to specific origin\n  methods: ['GET', 'POST']\n}))\n\n// Helmet — set security-related HTTP headers\napp.use(helmet())\n\n// Morgan — HTTP request logger\napp.use(morgan('dev'))           // colorized dev output: GET /users 200 5ms\napp.use(morgan('combined'))      // Apache combined log format for production\n\n// Rate limiting\nimport rateLimit from 'express-rate-limit'\nconst limiter = rateLimit({\n  windowMs: 15 * 60 * 1000,   // 15 minute window\n  max: 100,                    // max 100 requests per window per IP\n  message: 'Too many requests'\n})\napp.use('/api', limiter)\n",[20,76897,76898,76910,76922,76934,76938,76943,76956,76970,76983,76988,76992,76997,77010,77014,77019,77041,77062,77066,77071,77083,77097,77121,77134,77142,77146],{"__ignoreMap":30},[34,76899,76900,76902,76905,76907],{"class":36,"line":37},[34,76901,581],{"class":580},[34,76903,76904],{"class":181}," cors ",[34,76906,587],{"class":580},[34,76908,76909],{"class":54}," 'cors'\n",[34,76911,76912,76914,76917,76919],{"class":36,"line":44},[34,76913,581],{"class":580},[34,76915,76916],{"class":181}," helmet ",[34,76918,587],{"class":580},[34,76920,76921],{"class":54}," 'helmet'\n",[34,76923,76924,76926,76929,76931],{"class":36,"line":58},[34,76925,581],{"class":580},[34,76927,76928],{"class":181}," morgan ",[34,76930,587],{"class":580},[34,76932,76933],{"class":54}," 'morgan'\n",[34,76935,76936],{"class":36,"line":65},[34,76937,62],{"emptyLinePlaceholder":61},[34,76939,76940],{"class":36,"line":71},[34,76941,76942],{"class":40},"// CORS — allow cross-origin requests\n",[34,76944,76945,76947,76949,76951,76954],{"class":36,"line":77},[34,76946,75403],{"class":181},[34,76948,61898],{"class":47},[34,76950,1607],{"class":181},[34,76952,76953],{"class":47},"cors",[34,76955,613],{"class":181},[34,76957,76958,76961,76964,76967],{"class":36,"line":82},[34,76959,76960],{"class":181},"  origin: ",[34,76962,76963],{"class":54},"'https://myapp.com'",[34,76965,76966],{"class":181},",  ",[34,76968,76969],{"class":40},"// restrict to specific origin\n",[34,76971,76972,76975,76977,76979,76981],{"class":36,"line":88},[34,76973,76974],{"class":181},"  methods: [",[34,76976,75052],{"class":54},[34,76978,1798],{"class":181},[34,76980,75057],{"class":54},[34,76982,924],{"class":181},[34,76984,76985],{"class":36,"line":242},[34,76986,76987],{"class":181},"}))\n",[34,76989,76990],{"class":36,"line":250},[34,76991,62],{"emptyLinePlaceholder":61},[34,76993,76994],{"class":36,"line":263},[34,76995,76996],{"class":40},"// Helmet — set security-related HTTP headers\n",[34,76998,76999,77001,77003,77005,77008],{"class":36,"line":275},[34,77000,75403],{"class":181},[34,77002,61898],{"class":47},[34,77004,1607],{"class":181},[34,77006,77007],{"class":47},"helmet",[34,77009,62281],{"class":181},[34,77011,77012],{"class":36,"line":700},[34,77013,62],{"emptyLinePlaceholder":61},[34,77015,77016],{"class":36,"line":706},[34,77017,77018],{"class":40},"// Morgan — HTTP request logger\n",[34,77020,77021,77023,77025,77027,77030,77032,77035,77038],{"class":36,"line":715},[34,77022,75403],{"class":181},[34,77024,61898],{"class":47},[34,77026,1607],{"class":181},[34,77028,77029],{"class":47},"morgan",[34,77031,1607],{"class":181},[34,77033,77034],{"class":54},"'dev'",[34,77036,77037],{"class":181},"))           ",[34,77039,77040],{"class":40},"// colorized dev output: GET /users 200 5ms\n",[34,77042,77043,77045,77047,77049,77051,77053,77056,77059],{"class":36,"line":725},[34,77044,75403],{"class":181},[34,77046,61898],{"class":47},[34,77048,1607],{"class":181},[34,77050,77029],{"class":47},[34,77052,1607],{"class":181},[34,77054,77055],{"class":54},"'combined'",[34,77057,77058],{"class":181},"))      ",[34,77060,77061],{"class":40},"// Apache combined log format for production\n",[34,77063,77064],{"class":36,"line":734},[34,77065,62],{"emptyLinePlaceholder":61},[34,77067,77068],{"class":36,"line":742},[34,77069,77070],{"class":40},"// Rate limiting\n",[34,77072,77073,77075,77078,77080],{"class":36,"line":748},[34,77074,581],{"class":580},[34,77076,77077],{"class":181}," rateLimit ",[34,77079,587],{"class":580},[34,77081,77082],{"class":54}," 'express-rate-limit'\n",[34,77084,77085,77087,77090,77092,77095],{"class":36,"line":754},[34,77086,14676],{"class":580},[34,77088,77089],{"class":50}," limiter",[34,77091,683],{"class":580},[34,77093,77094],{"class":47}," rateLimit",[34,77096,613],{"class":181},[34,77098,77099,77102,77105,77107,77110,77112,77115,77118],{"class":36,"line":759},[34,77100,77101],{"class":181},"  windowMs: ",[34,77103,77104],{"class":50},"15",[34,77106,18083],{"class":580},[34,77108,77109],{"class":50}," 60",[34,77111,18083],{"class":580},[34,77113,77114],{"class":50}," 1000",[34,77116,77117],{"class":181},",   ",[34,77119,77120],{"class":40},"// 15 minute window\n",[34,77122,77123,77126,77128,77131],{"class":36,"line":771},[34,77124,77125],{"class":181},"  max: ",[34,77127,20863],{"class":50},[34,77129,77130],{"class":181},",                    ",[34,77132,77133],{"class":40},"// max 100 requests per window per IP\n",[34,77135,77136,77139],{"class":36,"line":794},[34,77137,77138],{"class":181},"  message: ",[34,77140,77141],{"class":54},"'Too many requests'\n",[34,77143,77144],{"class":36,"line":824},[34,77145,647],{"class":181},[34,77147,77148,77150,77152,77154,77157],{"class":36,"line":830},[34,77149,75403],{"class":181},[34,77151,61898],{"class":47},[34,77153,1607],{"class":181},[34,77155,77156],{"class":54},"'/api'",[34,77158,77159],{"class":181},", limiter)\n",[11,77161,77163],{"id":77162},"rest-api-pattern","REST API Pattern",[25,77165,77167],{"className":13845,"code":77166,"language":8606,"meta":30,"style":30},"// Full CRUD REST API example\nimport express from 'express'\nconst app = express()\napp.use(express.json())\n\nlet items = [{ id: 1, name: 'Widget' }]  // in-memory store\n\n// GET all\napp.get('/api/items', (req, res) => {\n  res.json(items)\n})\n\n// GET one\napp.get('/api/items/:id', (req, res) => {\n  const item = items.find(i => i.id === Number(req.params.id))\n  if (!item) return res.status(404).json({ error: 'Not found' })\n  res.json(item)\n})\n\n// POST create\napp.post('/api/items', (req, res) => {\n  const item = { id: Date.now(), ...req.body }  // simple id generation\n  items.push(item)\n  res.status(201).json(item)\n})\n\n// PUT update\napp.put('/api/items/:id', (req, res) => {\n  const idx = items.findIndex(i => i.id === Number(req.params.id))\n  if (idx === -1) return res.status(404).json({ error: 'Not found' })\n  items[idx] = { ...items[idx], ...req.body }   // merge update\n  res.json(items[idx])\n})\n\n// DELETE\napp.delete('/api/items/:id', (req, res) => {\n  items = items.filter(i => i.id !== Number(req.params.id))\n  res.status(204).send()\n})\n\napp.listen(3000)\n",[20,77168,77169,77174,77184,77196,77208,77212,77237,77241,77246,77271,77280,77284,77288,77293,77318,77349,77380,77389,77393,77397,77402,77426,77450,77459,77475,77479,77483,77488,77512,77540,77575,77597,77606,77610,77614,77619,77643,77668,77684,77688,77692],{"__ignoreMap":30},[34,77170,77171],{"class":36,"line":37},[34,77172,77173],{"class":40},"// Full CRUD REST API example\n",[34,77175,77176,77178,77180,77182],{"class":36,"line":44},[34,77177,581],{"class":580},[34,77179,47975],{"class":181},[34,77181,587],{"class":580},[34,77183,75359],{"class":54},[34,77185,77186,77188,77190,77192,77194],{"class":36,"line":58},[34,77187,14676],{"class":580},[34,77189,7253],{"class":50},[34,77191,683],{"class":580},[34,77193,75326],{"class":47},[34,77195,33899],{"class":181},[34,77197,77198,77200,77202,77204,77206],{"class":36,"line":65},[34,77199,75403],{"class":181},[34,77201,61898],{"class":47},[34,77203,75408],{"class":181},[34,77205,14790],{"class":47},[34,77207,62281],{"class":181},[34,77209,77210],{"class":36,"line":71},[34,77211,62],{"emptyLinePlaceholder":61},[34,77213,77214,77216,77219,77221,77224,77226,77228,77231,77234],{"class":36,"line":77},[34,77215,8268],{"class":580},[34,77217,77218],{"class":181}," items ",[34,77220,1301],{"class":580},[34,77222,77223],{"class":181}," [{ id: ",[34,77225,8318],{"class":50},[34,77227,61160],{"class":181},[34,77229,77230],{"class":54},"'Widget'",[34,77232,77233],{"class":181}," }]  ",[34,77235,77236],{"class":40},"// in-memory store\n",[34,77238,77239],{"class":36,"line":82},[34,77240,62],{"emptyLinePlaceholder":61},[34,77242,77243],{"class":36,"line":88},[34,77244,77245],{"class":40},"// GET all\n",[34,77247,77248,77250,77252,77254,77257,77259,77261,77263,77265,77267,77269],{"class":36,"line":242},[34,77249,75403],{"class":181},[34,77251,1573],{"class":47},[34,77253,1607],{"class":181},[34,77255,77256],{"class":54},"'/api/items'",[34,77258,75504],{"class":181},[34,77260,15452],{"class":675},[34,77262,1798],{"class":181},[34,77264,75511],{"class":675},[34,77266,4817],{"class":181},[34,77268,3361],{"class":580},[34,77270,661],{"class":181},[34,77272,77273,77275,77277],{"class":36,"line":250},[34,77274,75522],{"class":181},[34,77276,14790],{"class":47},[34,77278,77279],{"class":181},"(items)\n",[34,77281,77282],{"class":36,"line":263},[34,77283,647],{"class":181},[34,77285,77286],{"class":36,"line":275},[34,77287,62],{"emptyLinePlaceholder":61},[34,77289,77290],{"class":36,"line":700},[34,77291,77292],{"class":40},"// GET one\n",[34,77294,77295,77297,77299,77301,77304,77306,77308,77310,77312,77314,77316],{"class":36,"line":706},[34,77296,75403],{"class":181},[34,77298,1573],{"class":47},[34,77300,1607],{"class":181},[34,77302,77303],{"class":54},"'/api/items/:id'",[34,77305,75504],{"class":181},[34,77307,15452],{"class":675},[34,77309,1798],{"class":181},[34,77311,75511],{"class":675},[34,77313,4817],{"class":181},[34,77315,3361],{"class":580},[34,77317,661],{"class":181},[34,77319,77320,77322,77324,77326,77329,77331,77333,77336,77338,77341,77343,77346],{"class":36,"line":715},[34,77321,17415],{"class":580},[34,77323,33701],{"class":50},[34,77325,683],{"class":580},[34,77327,77328],{"class":181}," items.",[34,77330,12963],{"class":47},[34,77332,1607],{"class":181},[34,77334,77335],{"class":675},"i",[34,77337,1895],{"class":580},[34,77339,77340],{"class":181}," i.id ",[34,77342,15543],{"class":580},[34,77344,77345],{"class":47}," Number",[34,77347,77348],{"class":181},"(req.params.id))\n",[34,77350,77351,77353,77355,77357,77360,77362,77364,77366,77368,77370,77372,77374,77376,77378],{"class":36,"line":725},[34,77352,8084],{"class":580},[34,77354,3204],{"class":181},[34,77356,10307],{"class":580},[34,77358,77359],{"class":181},"item) ",[34,77361,2917],{"class":580},[34,77363,75763],{"class":181},[34,77365,75167],{"class":47},[34,77367,1607],{"class":181},[34,77369,15630],{"class":50},[34,77371,1876],{"class":181},[34,77373,14790],{"class":47},[34,77375,61946],{"class":181},[34,77377,76077],{"class":54},[34,77379,1502],{"class":181},[34,77381,77382,77384,77386],{"class":36,"line":734},[34,77383,75522],{"class":181},[34,77385,14790],{"class":47},[34,77387,77388],{"class":181},"(item)\n",[34,77390,77391],{"class":36,"line":742},[34,77392,647],{"class":181},[34,77394,77395],{"class":36,"line":748},[34,77396,62],{"emptyLinePlaceholder":61},[34,77398,77399],{"class":36,"line":754},[34,77400,77401],{"class":40},"// POST create\n",[34,77403,77404,77406,77408,77410,77412,77414,77416,77418,77420,77422,77424],{"class":36,"line":759},[34,77405,75403],{"class":181},[34,77407,1730],{"class":47},[34,77409,1607],{"class":181},[34,77411,77256],{"class":54},[34,77413,75504],{"class":181},[34,77415,15452],{"class":675},[34,77417,1798],{"class":181},[34,77419,75511],{"class":675},[34,77421,4817],{"class":181},[34,77423,3361],{"class":580},[34,77425,661],{"class":181},[34,77427,77428,77430,77432,77434,77437,77439,77442,77444,77447],{"class":36,"line":771},[34,77429,17415],{"class":580},[34,77431,33701],{"class":50},[34,77433,683],{"class":580},[34,77435,77436],{"class":181}," { id: Date.",[34,77438,24280],{"class":47},[34,77440,77441],{"class":181},"(), ",[34,77443,16841],{"class":580},[34,77445,77446],{"class":181},"req.body }  ",[34,77448,77449],{"class":40},"// simple id generation\n",[34,77451,77452,77455,77457],{"class":36,"line":794},[34,77453,77454],{"class":181},"  items.",[34,77456,50165],{"class":47},[34,77458,77388],{"class":181},[34,77460,77461,77463,77465,77467,77469,77471,77473],{"class":36,"line":824},[34,77462,75522],{"class":181},[34,77464,75167],{"class":47},[34,77466,1607],{"class":181},[34,77468,75172],{"class":50},[34,77470,1876],{"class":181},[34,77472,14790],{"class":47},[34,77474,77388],{"class":181},[34,77476,77477],{"class":36,"line":830},[34,77478,647],{"class":181},[34,77480,77481],{"class":36,"line":839},[34,77482,62],{"emptyLinePlaceholder":61},[34,77484,77485],{"class":36,"line":854},[34,77486,77487],{"class":40},"// PUT update\n",[34,77489,77490,77492,77494,77496,77498,77500,77502,77504,77506,77508,77510],{"class":36,"line":860},[34,77491,75403],{"class":181},[34,77493,51602],{"class":47},[34,77495,1607],{"class":181},[34,77497,77303],{"class":54},[34,77499,75504],{"class":181},[34,77501,15452],{"class":675},[34,77503,1798],{"class":181},[34,77505,75511],{"class":675},[34,77507,4817],{"class":181},[34,77509,3361],{"class":580},[34,77511,661],{"class":181},[34,77513,77514,77516,77519,77521,77523,77526,77528,77530,77532,77534,77536,77538],{"class":36,"line":865},[34,77515,17415],{"class":580},[34,77517,77518],{"class":50}," idx",[34,77520,683],{"class":580},[34,77522,77328],{"class":181},[34,77524,77525],{"class":47},"findIndex",[34,77527,1607],{"class":181},[34,77529,77335],{"class":675},[34,77531,1895],{"class":580},[34,77533,77340],{"class":181},[34,77535,15543],{"class":580},[34,77537,77345],{"class":47},[34,77539,77348],{"class":181},[34,77541,77542,77544,77547,77549,77551,77553,77555,77557,77559,77561,77563,77565,77567,77569,77571,77573],{"class":36,"line":870},[34,77543,8084],{"class":580},[34,77545,77546],{"class":181}," (idx ",[34,77548,15543],{"class":580},[34,77550,19423],{"class":580},[34,77552,8318],{"class":50},[34,77554,4817],{"class":181},[34,77556,2917],{"class":580},[34,77558,75763],{"class":181},[34,77560,75167],{"class":47},[34,77562,1607],{"class":181},[34,77564,15630],{"class":50},[34,77566,1876],{"class":181},[34,77568,14790],{"class":47},[34,77570,61946],{"class":181},[34,77572,76077],{"class":54},[34,77574,1502],{"class":181},[34,77576,77577,77580,77582,77584,77586,77589,77591,77594],{"class":36,"line":876},[34,77578,77579],{"class":181},"  items[idx] ",[34,77581,1301],{"class":580},[34,77583,30251],{"class":181},[34,77585,16841],{"class":580},[34,77587,77588],{"class":181},"items[idx], ",[34,77590,16841],{"class":580},[34,77592,77593],{"class":181},"req.body }   ",[34,77595,77596],{"class":40},"// merge update\n",[34,77598,77599,77601,77603],{"class":36,"line":885},[34,77600,75522],{"class":181},[34,77602,14790],{"class":47},[34,77604,77605],{"class":181},"(items[idx])\n",[34,77607,77608],{"class":36,"line":895},[34,77609,647],{"class":181},[34,77611,77612],{"class":36,"line":904},[34,77613,62],{"emptyLinePlaceholder":61},[34,77615,77616],{"class":36,"line":915},[34,77617,77618],{"class":40},"// DELETE\n",[34,77620,77621,77623,77625,77627,77629,77631,77633,77635,77637,77639,77641],{"class":36,"line":927},[34,77622,75403],{"class":181},[34,77624,30355],{"class":47},[34,77626,1607],{"class":181},[34,77628,77303],{"class":54},[34,77630,75504],{"class":181},[34,77632,15452],{"class":675},[34,77634,1798],{"class":181},[34,77636,75511],{"class":675},[34,77638,4817],{"class":181},[34,77640,3361],{"class":580},[34,77642,661],{"class":181},[34,77644,77645,77648,77650,77652,77654,77656,77658,77660,77662,77664,77666],{"class":36,"line":932},[34,77646,77647],{"class":181},"  items ",[34,77649,1301],{"class":580},[34,77651,77328],{"class":181},[34,77653,32125],{"class":47},[34,77655,1607],{"class":181},[34,77657,77335],{"class":675},[34,77659,1895],{"class":580},[34,77661,77340],{"class":181},[34,77663,48741],{"class":580},[34,77665,77345],{"class":47},[34,77667,77348],{"class":181},[34,77669,77670,77672,77674,77676,77678,77680,77682],{"class":36,"line":944},[34,77671,75522],{"class":181},[34,77673,75167],{"class":47},[34,77675,1607],{"class":181},[34,77677,75706],{"class":50},[34,77679,1876],{"class":181},[34,77681,15746],{"class":47},[34,77683,33899],{"class":181},[34,77685,77686],{"class":36,"line":966},[34,77687,647],{"class":181},[34,77689,77690],{"class":36,"line":1948},[34,77691,62],{"emptyLinePlaceholder":61},[34,77693,77694,77696,77698,77700,77702],{"class":36,"line":1953},[34,77695,75403],{"class":181},[34,77697,61841],{"class":47},[34,77699,1607],{"class":181},[34,77701,15440],{"class":50},[34,77703,3372],{"class":181},[11,77705,19352],{"id":19357},[25,77707,77709],{"className":13845,"code":77708,"language":8606,"meta":30,"style":30},"// Async error wrapper (avoids try/catch in every route)\nconst asyncHandler = fn => (req, res, next) =>\n  Promise.resolve(fn(req, res, next)).catch(next)\n\napp.get('/users/:id', asyncHandler(async (req, res) => {\n  const user = await db.findUser(req.params.id)  // any async error auto-forwarded\n  if (!user) {\n    const err = new Error('User not found')\n    err.status = 404\n    throw err\n  }\n  res.json(user)\n}))\n\n// Centralised error handler (place LAST)\napp.use((err, req, res, next) => {\n  res.status(err.status || 500).json({ error: err.message })\n})\n\n// 404 fallthrough (place before error handler)\napp.use((req, res) => {\n  res.status(404).json({ error: `Route ${req.path} not found` })\n})\n",[20,77710,77711,77716,77747,77770,77774,77807,77828,77839,77859,77869,77876,77880,77889,77893,77897,77902,77930,77949,77953,77957,77962,77982,78012],{"__ignoreMap":30},[34,77712,77713],{"class":36,"line":37},[34,77714,77715],{"class":40},"// Async error wrapper (avoids try/catch in every route)\n",[34,77717,77718,77720,77723,77725,77728,77730,77732,77734,77736,77738,77740,77742,77744],{"class":36,"line":44},[34,77719,14676],{"class":580},[34,77721,77722],{"class":47}," asyncHandler",[34,77724,683],{"class":580},[34,77726,77727],{"class":675}," fn",[34,77729,1895],{"class":580},[34,77731,3204],{"class":181},[34,77733,15452],{"class":675},[34,77735,1798],{"class":181},[34,77737,75511],{"class":675},[34,77739,1798],{"class":181},[34,77741,61912],{"class":675},[34,77743,4817],{"class":181},[34,77745,77746],{"class":580},"=>\n",[34,77748,77749,77752,77754,77757,77759,77762,77765,77767],{"class":36,"line":58},[34,77750,77751],{"class":50},"  Promise",[34,77753,151],{"class":181},[34,77755,77756],{"class":47},"resolve",[34,77758,1607],{"class":181},[34,77760,77761],{"class":47},"fn",[34,77763,77764],{"class":181},"(req, res, next)).",[34,77766,30851],{"class":47},[34,77768,77769],{"class":181},"(next)\n",[34,77771,77772],{"class":36,"line":65},[34,77773,62],{"emptyLinePlaceholder":61},[34,77775,77776,77778,77780,77782,77784,77786,77789,77791,77793,77795,77797,77799,77801,77803,77805],{"class":36,"line":71},[34,77777,75403],{"class":181},[34,77779,1573],{"class":47},[34,77781,1607],{"class":181},[34,77783,75617],{"class":54},[34,77785,1798],{"class":181},[34,77787,77788],{"class":47},"asyncHandler",[34,77790,1607],{"class":181},[34,77792,17403],{"class":580},[34,77794,3204],{"class":181},[34,77796,15452],{"class":675},[34,77798,1798],{"class":181},[34,77800,75511],{"class":675},[34,77802,4817],{"class":181},[34,77804,3361],{"class":580},[34,77806,661],{"class":181},[34,77808,77809,77811,77813,77815,77817,77819,77822,77825],{"class":36,"line":77},[34,77810,17415],{"class":580},[34,77812,17148],{"class":50},[34,77814,683],{"class":580},[34,77816,14763],{"class":580},[34,77818,17083],{"class":181},[34,77820,77821],{"class":47},"findUser",[34,77823,77824],{"class":181},"(req.params.id)  ",[34,77826,77827],{"class":40},"// any async error auto-forwarded\n",[34,77829,77830,77832,77834,77836],{"class":36,"line":82},[34,77831,8084],{"class":580},[34,77833,3204],{"class":181},[34,77835,10307],{"class":580},[34,77837,77838],{"class":181},"user) {\n",[34,77840,77841,77843,77846,77848,77850,77852,77854,77857],{"class":36,"line":88},[34,77842,1632],{"class":580},[34,77844,77845],{"class":50}," err",[34,77847,683],{"class":580},[34,77849,809],{"class":580},[34,77851,48752],{"class":47},[34,77853,1607],{"class":181},[34,77855,77856],{"class":54},"'User not found'",[34,77858,3372],{"class":181},[34,77860,77861,77864,77866],{"class":36,"line":242},[34,77862,77863],{"class":181},"    err.status ",[34,77865,1301],{"class":580},[34,77867,77868],{"class":50}," 404\n",[34,77870,77871,77873],{"class":36,"line":250},[34,77872,48916],{"class":580},[34,77874,77875],{"class":181}," err\n",[34,77877,77878],{"class":36,"line":263},[34,77879,857],{"class":181},[34,77881,77882,77884,77886],{"class":36,"line":275},[34,77883,75522],{"class":181},[34,77885,14790],{"class":47},[34,77887,77888],{"class":181},"(user)\n",[34,77890,77891],{"class":36,"line":700},[34,77892,76987],{"class":181},[34,77894,77895],{"class":36,"line":706},[34,77896,62],{"emptyLinePlaceholder":61},[34,77898,77899],{"class":36,"line":715},[34,77900,77901],{"class":40},"// Centralised error handler (place LAST)\n",[34,77903,77904,77906,77908,77910,77912,77914,77916,77918,77920,77922,77924,77926,77928],{"class":36,"line":725},[34,77905,75403],{"class":181},[34,77907,61898],{"class":47},[34,77909,8348],{"class":181},[34,77911,20566],{"class":675},[34,77913,1798],{"class":181},[34,77915,15452],{"class":675},[34,77917,1798],{"class":181},[34,77919,75511],{"class":675},[34,77921,1798],{"class":181},[34,77923,61912],{"class":675},[34,77925,4817],{"class":181},[34,77927,3361],{"class":580},[34,77929,661],{"class":181},[34,77931,77932,77934,77936,77938,77940,77942,77944,77946],{"class":36,"line":734},[34,77933,75522],{"class":181},[34,77935,75167],{"class":47},[34,77937,76467],{"class":181},[34,77939,10892],{"class":580},[34,77941,76472],{"class":50},[34,77943,1876],{"class":181},[34,77945,14790],{"class":47},[34,77947,77948],{"class":181},"({ error: err.message })\n",[34,77950,77951],{"class":36,"line":742},[34,77952,647],{"class":181},[34,77954,77955],{"class":36,"line":748},[34,77956,62],{"emptyLinePlaceholder":61},[34,77958,77959],{"class":36,"line":754},[34,77960,77961],{"class":40},"// 404 fallthrough (place before error handler)\n",[34,77963,77964,77966,77968,77970,77972,77974,77976,77978,77980],{"class":36,"line":759},[34,77965,75403],{"class":181},[34,77967,61898],{"class":47},[34,77969,8348],{"class":181},[34,77971,15452],{"class":675},[34,77973,1798],{"class":181},[34,77975,75511],{"class":675},[34,77977,4817],{"class":181},[34,77979,3361],{"class":580},[34,77981,661],{"class":181},[34,77983,77984,77986,77988,77990,77992,77994,77996,77998,78001,78003,78005,78007,78010],{"class":36,"line":771},[34,77985,75522],{"class":181},[34,77987,75167],{"class":47},[34,77989,1607],{"class":181},[34,77991,15630],{"class":50},[34,77993,1876],{"class":181},[34,77995,14790],{"class":47},[34,77997,61946],{"class":181},[34,77999,78000],{"class":54},"`Route ${",[34,78002,15452],{"class":181},[34,78004,151],{"class":54},[34,78006,20404],{"class":181},[34,78008,78009],{"class":54},"} not found`",[34,78011,1502],{"class":181},[34,78013,78014],{"class":36,"line":794},[34,78015,647],{"class":181},[388,78017,78018],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":30,"searchDepth":44,"depth":44,"links":78020},[78021,78022,78023,78024,78025,78026,78027,78028,78029,78030],{"id":75289,"depth":44,"text":75290},{"id":3256,"depth":44,"text":2614},{"id":75833,"depth":44,"text":75834},{"id":75935,"depth":44,"text":75936},{"id":76170,"depth":44,"text":76171},{"id":76499,"depth":44,"text":76500},{"id":76728,"depth":44,"text":76729},{"id":76891,"depth":44,"text":76892},{"id":77162,"depth":44,"text":77163},{"id":19357,"depth":44,"text":19352},"2026-02-24","Essential Express.js patterns for building Node.js web servers and REST APIs.",{"category":75200,"featured":65586,"icon":78034},"\u003Csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\u003Crect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\"/>\u003Cpath d=\"M8 21h8\"/>\u003Cpath d=\"M12 17v4\"/>\u003Cpath d=\"M7 8h4\"/>\u003Cpath d=\"M7 12h10\"/>\u003C/svg>","/examples/express",{"title":75284,"description":78032},"examples/express",[78039,78040,8606,43044,78041,43043],"express","nodejs","rest","DBpvMdx7ADVIT4P8X9OfT4Xv7exBzWQuo9-iIGM_VR4",{"id":78044,"title":78045,"body":78046,"date":402,"description":30,"extension":404,"meta":78059,"navigation":61,"order":402,"path":78060,"seo":78061,"stem":78062,"subject":402,"tags":78063,"__hash__":78065},"topics/examples/fastapi.md","FastAPI Framework",{"type":8,"value":78047,"toc":78056},[78048,78052],[8535,78049,78051],{"id":78050},"fastapi-quick-code-examples","FastAPI Quick Code Examples",[102,78053,78055],{"id":78054},"fastapi-start-app-with-async-ready-and-fast-errors-exist-front-end","FastAPI: Start App With Async-Ready and Fast errors exist FRONT-end",{"title":30,"searchDepth":44,"depth":44,"links":78057},[78058],{"id":78054,"depth":58,"text":78055},{"category":75200},"/examples/fastapi",{"title":78045,"description":30},"examples/fastapi",[78064,49388,46870,38615],"fastapi","SEMMLX6PNzIzzxV3zaOOWXjTRY2gdJHED35_tjTtPHQ",{"id":78067,"title":78068,"body":78069,"date":81584,"description":81585,"extension":404,"meta":81586,"navigation":61,"order":402,"path":81588,"seo":81589,"stem":81590,"subject":402,"tags":81591,"__hash__":81592},"topics/examples/fish.md","Fish Shell",{"type":8,"value":78070,"toc":81523},[78071,78073,78075,78131,78134,78228,78232,78289,78291,78312,78316,78320,78444,78448,78505,78509,78547,78549,78553,78662,78666,78742,78746,78775,78777,78781,78902,78906,79019,79023,79094,79096,79100,79221,79225,79490,79494,79586,79588,79704,79706,79710,79830,79834,79920,79924,79996,80000,80075,80077,80081,80172,80176,80304,80307,80311,80447,80449,80453,80531,80534,80604,80608,80692,80696,80771,80773,80855,80857,80861,80936,80940,80993,80997,81074,81076,81080,81165,81169,81294,81298,81389,81393,81463,81467,81520],[11,78072,97],{"id":96},[102,78074,53546],{"id":53545},[25,78076,78078],{"className":27,"code":78077,"language":29,"meta":30,"style":30},"# Install via Homebrew\nbrew install fish\n\n# Set Fish as default shell\necho /opt/homebrew/bin/fish | sudo tee -a /etc/shells\nchsh -s /opt/homebrew/bin/fish\n",[20,78079,78080,78085,78094,78098,78103,78121],{"__ignoreMap":30},[34,78081,78082],{"class":36,"line":37},[34,78083,78084],{"class":40},"# Install via Homebrew\n",[34,78086,78087,78089,78091],{"class":36,"line":44},[34,78088,115],{"class":47},[34,78090,118],{"class":54},[34,78092,78093],{"class":54}," fish\n",[34,78095,78096],{"class":36,"line":58},[34,78097,62],{"emptyLinePlaceholder":61},[34,78099,78100],{"class":36,"line":65},[34,78101,78102],{"class":40},"# Set Fish as default shell\n",[34,78104,78105,78107,78110,78112,78114,78116,78118],{"class":36,"line":71},[34,78106,10120],{"class":50},[34,78108,78109],{"class":54}," /opt/homebrew/bin/fish",[34,78111,7197],{"class":580},[34,78113,9343],{"class":47},[34,78115,27852],{"class":54},[34,78117,5059],{"class":50},[34,78119,78120],{"class":54}," /etc/shells\n",[34,78122,78123,78126,78128],{"class":36,"line":77},[34,78124,78125],{"class":47},"chsh",[34,78127,5487],{"class":50},[34,78129,78130],{"class":54}," /opt/homebrew/bin/fish\n",[102,78132,78133],{"id":5588},"Linux",[25,78135,78137],{"className":27,"code":78136,"language":29,"meta":30,"style":30},"# Ubuntu/Debian\nsudo apt-add-repository ppa:fish-shell/release-3\nsudo apt update\nsudo apt install fish\n\n# Fedora\nsudo dnf install fish\n\n# Arch Linux\nsudo pacman -S fish\n\n# Set Fish as default shell\nchsh -s /usr/bin/fish\n",[20,78138,78139,78144,78154,78162,78172,78176,78181,78192,78196,78201,78211,78215,78219],{"__ignoreMap":30},[34,78140,78141],{"class":36,"line":37},[34,78142,78143],{"class":40},"# Ubuntu/Debian\n",[34,78145,78146,78148,78151],{"class":36,"line":44},[34,78147,436],{"class":47},[34,78149,78150],{"class":54}," apt-add-repository",[34,78152,78153],{"class":54}," ppa:fish-shell/release-3\n",[34,78155,78156,78158,78160],{"class":36,"line":58},[34,78157,436],{"class":47},[34,78159,439],{"class":54},[34,78161,6441],{"class":54},[34,78163,78164,78166,78168,78170],{"class":36,"line":65},[34,78165,436],{"class":47},[34,78167,439],{"class":54},[34,78169,118],{"class":54},[34,78171,78093],{"class":54},[34,78173,78174],{"class":36,"line":71},[34,78175,62],{"emptyLinePlaceholder":61},[34,78177,78178],{"class":36,"line":77},[34,78179,78180],{"class":40},"# Fedora\n",[34,78182,78183,78185,78188,78190],{"class":36,"line":82},[34,78184,436],{"class":47},[34,78186,78187],{"class":54}," dnf",[34,78189,118],{"class":54},[34,78191,78093],{"class":54},[34,78193,78194],{"class":36,"line":88},[34,78195,62],{"emptyLinePlaceholder":61},[34,78197,78198],{"class":36,"line":242},[34,78199,78200],{"class":40},"# Arch Linux\n",[34,78202,78203,78205,78207,78209],{"class":36,"line":250},[34,78204,436],{"class":47},[34,78206,53595],{"class":54},[34,78208,7773],{"class":50},[34,78210,78093],{"class":54},[34,78212,78213],{"class":36,"line":263},[34,78214,62],{"emptyLinePlaceholder":61},[34,78216,78217],{"class":36,"line":275},[34,78218,78102],{"class":40},[34,78220,78221,78223,78225],{"class":36,"line":700},[34,78222,78125],{"class":47},[34,78224,5487],{"class":50},[34,78226,78227],{"class":54}," /usr/bin/fish\n",[102,78229,78231],{"id":78230},"windows","Windows",[25,78233,78235],{"className":27,"code":78234,"language":29,"meta":30,"style":30},"# Install via Windows Subsystem for Linux (WSL)\nsudo apt install fish\n\n# Or use Chocolatey\nchoco install fish\n\n# Or use winget\nwinget install Fish.fish\n",[20,78236,78237,78242,78252,78256,78261,78270,78274,78279],{"__ignoreMap":30},[34,78238,78239],{"class":36,"line":37},[34,78240,78241],{"class":40},"# Install via Windows Subsystem for Linux (WSL)\n",[34,78243,78244,78246,78248,78250],{"class":36,"line":44},[34,78245,436],{"class":47},[34,78247,439],{"class":54},[34,78249,118],{"class":54},[34,78251,78093],{"class":54},[34,78253,78254],{"class":36,"line":58},[34,78255,62],{"emptyLinePlaceholder":61},[34,78257,78258],{"class":36,"line":65},[34,78259,78260],{"class":40},"# Or use Chocolatey\n",[34,78262,78263,78266,78268],{"class":36,"line":71},[34,78264,78265],{"class":47},"choco",[34,78267,118],{"class":54},[34,78269,78093],{"class":54},[34,78271,78272],{"class":36,"line":77},[34,78273,62],{"emptyLinePlaceholder":61},[34,78275,78276],{"class":36,"line":82},[34,78277,78278],{"class":40},"# Or use winget\n",[34,78280,78281,78284,78286],{"class":36,"line":88},[34,78282,78283],{"class":47},"winget",[34,78285,118],{"class":54},[34,78287,78288],{"class":54}," Fish.fish\n",[102,78290,57643],{"id":55966},[25,78292,78294],{"className":27,"code":78293,"language":29,"meta":30,"style":30},"# Run Fish in Docker\ndocker run -it ghcr.io/fish-shell/fish\n",[20,78295,78296,78301],{"__ignoreMap":30},[34,78297,78298],{"class":36,"line":37},[34,78299,78300],{"class":40},"# Run Fish in Docker\n",[34,78302,78303,78305,78307,78309],{"class":36,"line":44},[34,78304,55966],{"class":47},[34,78306,16017],{"class":54},[34,78308,56030],{"class":50},[34,78310,78311],{"class":54}," ghcr.io/fish-shell/fish\n",[11,78313,78315],{"id":78314},"adding-to-path","Adding to PATH",[102,78317,78319],{"id":78318},"using-fish_add_path-recommended","Using fish_add_path (Recommended)",[25,78321,78323],{"className":53759,"code":78322,"language":53755,"meta":30,"style":30},"# Add single directory to PATH\nfish_add_path /usr/local/bin\n\n# Add multiple directories\nfish_add_path /usr/local/bin ~/.local/bin\n\n# Prepend to PATH (default)\nfish_add_path /opt/custom/bin\n\n# Append to PATH instead of prepend\nfish_add_path --append /opt/legacy/bin\n\n# Add only if directory exists\nif test -d ~/.cargo/bin\n    fish_add_path ~/.cargo/bin\nend\n\n# Common additions for development\nfish_add_path ~/.local/bin           # Local binaries\nfish_add_path ~/.cargo/bin           # Rust cargo\nfish_add_path ~/.npm-global/bin      # npm global packages\nfish_add_path /usr/local/go/bin      # Go binaries\nfish_add_path $HOME/go/bin           # Go workspace\nfish_add_path ~/.rbenv/shims         # Ruby rbenv\nfish_add_path ~/.pyenv/shims         # Python pyenv\n",[20,78324,78325,78330,78335,78339,78344,78349,78353,78358,78363,78367,78372,78377,78381,78386,78391,78396,78400,78404,78409,78414,78419,78424,78429,78434,78439],{"__ignoreMap":30},[34,78326,78327],{"class":36,"line":37},[34,78328,78329],{},"# Add single directory to PATH\n",[34,78331,78332],{"class":36,"line":44},[34,78333,78334],{},"fish_add_path /usr/local/bin\n",[34,78336,78337],{"class":36,"line":58},[34,78338,62],{"emptyLinePlaceholder":61},[34,78340,78341],{"class":36,"line":65},[34,78342,78343],{},"# Add multiple directories\n",[34,78345,78346],{"class":36,"line":71},[34,78347,78348],{},"fish_add_path /usr/local/bin ~/.local/bin\n",[34,78350,78351],{"class":36,"line":77},[34,78352,62],{"emptyLinePlaceholder":61},[34,78354,78355],{"class":36,"line":82},[34,78356,78357],{},"# Prepend to PATH (default)\n",[34,78359,78360],{"class":36,"line":88},[34,78361,78362],{},"fish_add_path /opt/custom/bin\n",[34,78364,78365],{"class":36,"line":242},[34,78366,62],{"emptyLinePlaceholder":61},[34,78368,78369],{"class":36,"line":250},[34,78370,78371],{},"# Append to PATH instead of prepend\n",[34,78373,78374],{"class":36,"line":263},[34,78375,78376],{},"fish_add_path --append /opt/legacy/bin\n",[34,78378,78379],{"class":36,"line":275},[34,78380,62],{"emptyLinePlaceholder":61},[34,78382,78383],{"class":36,"line":700},[34,78384,78385],{},"# Add only if directory exists\n",[34,78387,78388],{"class":36,"line":706},[34,78389,78390],{},"if test -d ~/.cargo/bin\n",[34,78392,78393],{"class":36,"line":715},[34,78394,78395],{},"    fish_add_path ~/.cargo/bin\n",[34,78397,78398],{"class":36,"line":725},[34,78399,33222],{},[34,78401,78402],{"class":36,"line":734},[34,78403,62],{"emptyLinePlaceholder":61},[34,78405,78406],{"class":36,"line":742},[34,78407,78408],{},"# Common additions for development\n",[34,78410,78411],{"class":36,"line":748},[34,78412,78413],{},"fish_add_path ~/.local/bin           # Local binaries\n",[34,78415,78416],{"class":36,"line":754},[34,78417,78418],{},"fish_add_path ~/.cargo/bin           # Rust cargo\n",[34,78420,78421],{"class":36,"line":759},[34,78422,78423],{},"fish_add_path ~/.npm-global/bin      # npm global packages\n",[34,78425,78426],{"class":36,"line":771},[34,78427,78428],{},"fish_add_path /usr/local/go/bin      # Go binaries\n",[34,78430,78431],{"class":36,"line":794},[34,78432,78433],{},"fish_add_path $HOME/go/bin           # Go workspace\n",[34,78435,78436],{"class":36,"line":824},[34,78437,78438],{},"fish_add_path ~/.rbenv/shims         # Ruby rbenv\n",[34,78440,78441],{"class":36,"line":830},[34,78442,78443],{},"fish_add_path ~/.pyenv/shims         # Python pyenv\n",[102,78445,78447],{"id":78446},"manual-path-modification","Manual PATH Modification",[25,78449,78451],{"className":53759,"code":78450,"language":53755,"meta":30,"style":30},"# Add to PATH manually (old way, not recommended)\nset -x PATH $PATH /new/path\n\n# Prepend to PATH\nset -x PATH /new/path $PATH\n\n# Add multiple paths\nset -x PATH /path/one /path/two $PATH\n\n# Remove from PATH\nset -x PATH (string match -v \"/old/path\" $PATH)\n",[20,78452,78453,78458,78463,78467,78472,78477,78481,78486,78491,78495,78500],{"__ignoreMap":30},[34,78454,78455],{"class":36,"line":37},[34,78456,78457],{},"# Add to PATH manually (old way, not recommended)\n",[34,78459,78460],{"class":36,"line":44},[34,78461,78462],{},"set -x PATH $PATH /new/path\n",[34,78464,78465],{"class":36,"line":58},[34,78466,62],{"emptyLinePlaceholder":61},[34,78468,78469],{"class":36,"line":65},[34,78470,78471],{},"# Prepend to PATH\n",[34,78473,78474],{"class":36,"line":71},[34,78475,78476],{},"set -x PATH /new/path $PATH\n",[34,78478,78479],{"class":36,"line":77},[34,78480,62],{"emptyLinePlaceholder":61},[34,78482,78483],{"class":36,"line":82},[34,78484,78485],{},"# Add multiple paths\n",[34,78487,78488],{"class":36,"line":88},[34,78489,78490],{},"set -x PATH /path/one /path/two $PATH\n",[34,78492,78493],{"class":36,"line":242},[34,78494,62],{"emptyLinePlaceholder":61},[34,78496,78497],{"class":36,"line":250},[34,78498,78499],{},"# Remove from PATH\n",[34,78501,78502],{"class":36,"line":263},[34,78503,78504],{},"set -x PATH (string match -v \"/old/path\" $PATH)\n",[102,78506,78508],{"id":78507},"persistent-path-in-configfish","Persistent PATH (in config.fish)",[25,78510,78512],{"className":53759,"code":78511,"language":53755,"meta":30,"style":30},"# Add to ~/.config/fish/config.fish for persistence\nif status is-interactive\n    # Add custom paths\n    fish_add_path ~/.local/bin\n    fish_add_path ~/.cargo/bin\n    fish_add_path ~/bin\nend\n",[20,78513,78514,78519,78524,78529,78534,78538,78543],{"__ignoreMap":30},[34,78515,78516],{"class":36,"line":37},[34,78517,78518],{},"# Add to ~/.config/fish/config.fish for persistence\n",[34,78520,78521],{"class":36,"line":44},[34,78522,78523],{},"if status is-interactive\n",[34,78525,78526],{"class":36,"line":58},[34,78527,78528],{},"    # Add custom paths\n",[34,78530,78531],{"class":36,"line":65},[34,78532,78533],{},"    fish_add_path ~/.local/bin\n",[34,78535,78536],{"class":36,"line":71},[34,78537,78395],{},[34,78539,78540],{"class":36,"line":77},[34,78541,78542],{},"    fish_add_path ~/bin\n",[34,78544,78545],{"class":36,"line":82},[34,78546,33222],{},[11,78548,12166],{"id":13314},[102,78550,78552],{"id":78551},"setting-variables","Setting Variables",[25,78554,78556],{"className":53759,"code":78555,"language":53755,"meta":30,"style":30},"# Set a simple variable\nset myvar \"hello\"\n\n# Set multiple variables at once\nset x 1\nset y 2\nset z 3\n\n# Set a variable with multiple values (list)\nset fruits apple banana cherry\n\n# Set a universal variable (persists across sessions)\nset -U editor vim\n\n# Set a global variable (available to all functions)\nset -g config_path /etc/myapp\n\n# Set a local variable (function scope only)\nset -l temp_file /tmp/data.txt\n\n# Export a variable (make it available to subprocesses)\nset -x PATH $PATH /usr/local/bin\n",[20,78557,78558,78563,78568,78572,78577,78582,78587,78592,78596,78601,78606,78610,78615,78620,78624,78629,78634,78638,78643,78648,78652,78657],{"__ignoreMap":30},[34,78559,78560],{"class":36,"line":37},[34,78561,78562],{},"# Set a simple variable\n",[34,78564,78565],{"class":36,"line":44},[34,78566,78567],{},"set myvar \"hello\"\n",[34,78569,78570],{"class":36,"line":58},[34,78571,62],{"emptyLinePlaceholder":61},[34,78573,78574],{"class":36,"line":65},[34,78575,78576],{},"# Set multiple variables at once\n",[34,78578,78579],{"class":36,"line":71},[34,78580,78581],{},"set x 1\n",[34,78583,78584],{"class":36,"line":77},[34,78585,78586],{},"set y 2\n",[34,78588,78589],{"class":36,"line":82},[34,78590,78591],{},"set z 3\n",[34,78593,78594],{"class":36,"line":88},[34,78595,62],{"emptyLinePlaceholder":61},[34,78597,78598],{"class":36,"line":242},[34,78599,78600],{},"# Set a variable with multiple values (list)\n",[34,78602,78603],{"class":36,"line":250},[34,78604,78605],{},"set fruits apple banana cherry\n",[34,78607,78608],{"class":36,"line":263},[34,78609,62],{"emptyLinePlaceholder":61},[34,78611,78612],{"class":36,"line":275},[34,78613,78614],{},"# Set a universal variable (persists across sessions)\n",[34,78616,78617],{"class":36,"line":700},[34,78618,78619],{},"set -U editor vim\n",[34,78621,78622],{"class":36,"line":706},[34,78623,62],{"emptyLinePlaceholder":61},[34,78625,78626],{"class":36,"line":715},[34,78627,78628],{},"# Set a global variable (available to all functions)\n",[34,78630,78631],{"class":36,"line":725},[34,78632,78633],{},"set -g config_path /etc/myapp\n",[34,78635,78636],{"class":36,"line":734},[34,78637,62],{"emptyLinePlaceholder":61},[34,78639,78640],{"class":36,"line":742},[34,78641,78642],{},"# Set a local variable (function scope only)\n",[34,78644,78645],{"class":36,"line":748},[34,78646,78647],{},"set -l temp_file /tmp/data.txt\n",[34,78649,78650],{"class":36,"line":754},[34,78651,62],{"emptyLinePlaceholder":61},[34,78653,78654],{"class":36,"line":759},[34,78655,78656],{},"# Export a variable (make it available to subprocesses)\n",[34,78658,78659],{"class":36,"line":771},[34,78660,78661],{},"set -x PATH $PATH /usr/local/bin\n",[102,78663,78665],{"id":78664},"accessing-variables","Accessing Variables",[25,78667,78669],{"className":53759,"code":78668,"language":53755,"meta":30,"style":30},"# Access a variable\necho $myvar\n\n# Access list elements (1-indexed)\necho $fruits[1]      # First element: apple\necho $fruits[2..3]   # Range: banana cherry\necho $fruits[-1]     # Last element: cherry\n\n# Get the count of list items\necho (count $fruits)\n\n# Check if variable is set\nif set -q myvar\n    echo \"myvar is set\"\nend\n",[20,78670,78671,78676,78681,78685,78690,78695,78700,78705,78709,78714,78719,78723,78728,78733,78738],{"__ignoreMap":30},[34,78672,78673],{"class":36,"line":37},[34,78674,78675],{},"# Access a variable\n",[34,78677,78678],{"class":36,"line":44},[34,78679,78680],{},"echo $myvar\n",[34,78682,78683],{"class":36,"line":58},[34,78684,62],{"emptyLinePlaceholder":61},[34,78686,78687],{"class":36,"line":65},[34,78688,78689],{},"# Access list elements (1-indexed)\n",[34,78691,78692],{"class":36,"line":71},[34,78693,78694],{},"echo $fruits[1]      # First element: apple\n",[34,78696,78697],{"class":36,"line":77},[34,78698,78699],{},"echo $fruits[2..3]   # Range: banana cherry\n",[34,78701,78702],{"class":36,"line":82},[34,78703,78704],{},"echo $fruits[-1]     # Last element: cherry\n",[34,78706,78707],{"class":36,"line":88},[34,78708,62],{"emptyLinePlaceholder":61},[34,78710,78711],{"class":36,"line":242},[34,78712,78713],{},"# Get the count of list items\n",[34,78715,78716],{"class":36,"line":250},[34,78717,78718],{},"echo (count $fruits)\n",[34,78720,78721],{"class":36,"line":263},[34,78722,62],{"emptyLinePlaceholder":61},[34,78724,78725],{"class":36,"line":275},[34,78726,78727],{},"# Check if variable is set\n",[34,78729,78730],{"class":36,"line":700},[34,78731,78732],{},"if set -q myvar\n",[34,78734,78735],{"class":36,"line":706},[34,78736,78737],{},"    echo \"myvar is set\"\n",[34,78739,78740],{"class":36,"line":715},[34,78741,33222],{},[102,78743,78745],{"id":78744},"unsetting-variables","Unsetting Variables",[25,78747,78749],{"className":53759,"code":78748,"language":53755,"meta":30,"style":30},"# Erase a variable\nset -e myvar\n\n# Erase a universal variable\nset -e -U editor\n",[20,78750,78751,78756,78761,78765,78770],{"__ignoreMap":30},[34,78752,78753],{"class":36,"line":37},[34,78754,78755],{},"# Erase a variable\n",[34,78757,78758],{"class":36,"line":44},[34,78759,78760],{},"set -e myvar\n",[34,78762,78763],{"class":36,"line":58},[34,78764,62],{"emptyLinePlaceholder":61},[34,78766,78767],{"class":36,"line":65},[34,78768,78769],{},"# Erase a universal variable\n",[34,78771,78772],{"class":36,"line":71},[34,78773,78774],{},"set -e -U editor\n",[11,78776,10991],{"id":10996},[102,78778,78780],{"id":78779},"defining-functions","Defining Functions",[25,78782,78784],{"className":53759,"code":78783,"language":53755,"meta":30,"style":30},"# Simple function\nfunction greet\n    echo \"Hello, Fish!\"\nend\n\n# Function with arguments\nfunction greet_user\n    echo \"Hello, $argv[1]!\"\nend\n\n# Function with multiple arguments\nfunction add\n    math $argv[1] + $argv[2]\nend\n\n# Function with description (shows in help)\nfunction deploy --description \"Deploy the application\"\n    echo \"Deploying...\"\n    # deployment logic here\nend\n\n# Function with argument names (documentation only)\nfunction create_user --argument name email\n    echo \"Creating user: $name ($email)\"\nend\n",[20,78785,78786,78791,78796,78801,78805,78809,78814,78819,78824,78828,78832,78837,78842,78847,78851,78855,78860,78865,78870,78875,78879,78883,78888,78893,78898],{"__ignoreMap":30},[34,78787,78788],{"class":36,"line":37},[34,78789,78790],{},"# Simple function\n",[34,78792,78793],{"class":36,"line":44},[34,78794,78795],{},"function greet\n",[34,78797,78798],{"class":36,"line":58},[34,78799,78800],{},"    echo \"Hello, Fish!\"\n",[34,78802,78803],{"class":36,"line":65},[34,78804,33222],{},[34,78806,78807],{"class":36,"line":71},[34,78808,62],{"emptyLinePlaceholder":61},[34,78810,78811],{"class":36,"line":77},[34,78812,78813],{},"# Function with arguments\n",[34,78815,78816],{"class":36,"line":82},[34,78817,78818],{},"function greet_user\n",[34,78820,78821],{"class":36,"line":88},[34,78822,78823],{},"    echo \"Hello, $argv[1]!\"\n",[34,78825,78826],{"class":36,"line":242},[34,78827,33222],{},[34,78829,78830],{"class":36,"line":250},[34,78831,62],{"emptyLinePlaceholder":61},[34,78833,78834],{"class":36,"line":263},[34,78835,78836],{},"# Function with multiple arguments\n",[34,78838,78839],{"class":36,"line":275},[34,78840,78841],{},"function add\n",[34,78843,78844],{"class":36,"line":700},[34,78845,78846],{},"    math $argv[1] + $argv[2]\n",[34,78848,78849],{"class":36,"line":706},[34,78850,33222],{},[34,78852,78853],{"class":36,"line":715},[34,78854,62],{"emptyLinePlaceholder":61},[34,78856,78857],{"class":36,"line":725},[34,78858,78859],{},"# Function with description (shows in help)\n",[34,78861,78862],{"class":36,"line":734},[34,78863,78864],{},"function deploy --description \"Deploy the application\"\n",[34,78866,78867],{"class":36,"line":742},[34,78868,78869],{},"    echo \"Deploying...\"\n",[34,78871,78872],{"class":36,"line":748},[34,78873,78874],{},"    # deployment logic here\n",[34,78876,78877],{"class":36,"line":754},[34,78878,33222],{},[34,78880,78881],{"class":36,"line":759},[34,78882,62],{"emptyLinePlaceholder":61},[34,78884,78885],{"class":36,"line":771},[34,78886,78887],{},"# Function with argument names (documentation only)\n",[34,78889,78890],{"class":36,"line":794},[34,78891,78892],{},"function create_user --argument name email\n",[34,78894,78895],{"class":36,"line":824},[34,78896,78897],{},"    echo \"Creating user: $name ($email)\"\n",[34,78899,78900],{"class":36,"line":830},[34,78901,33222],{},[102,78903,78905],{"id":78904},"function-arguments","Function Arguments",[25,78907,78909],{"className":53759,"code":78908,"language":53755,"meta":30,"style":30},"# Access all arguments\nfunction print_args\n    echo \"All arguments: $argv\"\nend\n\n# Access specific arguments\nfunction greet_full\n    echo \"Hello, $argv[1] $argv[2]!\"\nend\n\n# Count arguments\nfunction arg_count\n    echo \"You passed\" (count $argv) \"arguments\"\nend\n\n# Check if arguments exist\nfunction require_arg\n    if test (count $argv) -eq 0\n        echo \"Error: No arguments provided\"\n        return 1\n    end\n    echo \"Processing: $argv[1]\"\nend\n",[20,78910,78911,78916,78921,78926,78930,78934,78939,78944,78949,78953,78957,78962,78967,78972,78976,78980,78985,78990,78995,79000,79005,79010,79015],{"__ignoreMap":30},[34,78912,78913],{"class":36,"line":37},[34,78914,78915],{},"# Access all arguments\n",[34,78917,78918],{"class":36,"line":44},[34,78919,78920],{},"function print_args\n",[34,78922,78923],{"class":36,"line":58},[34,78924,78925],{},"    echo \"All arguments: $argv\"\n",[34,78927,78928],{"class":36,"line":65},[34,78929,33222],{},[34,78931,78932],{"class":36,"line":71},[34,78933,62],{"emptyLinePlaceholder":61},[34,78935,78936],{"class":36,"line":77},[34,78937,78938],{},"# Access specific arguments\n",[34,78940,78941],{"class":36,"line":82},[34,78942,78943],{},"function greet_full\n",[34,78945,78946],{"class":36,"line":88},[34,78947,78948],{},"    echo \"Hello, $argv[1] $argv[2]!\"\n",[34,78950,78951],{"class":36,"line":242},[34,78952,33222],{},[34,78954,78955],{"class":36,"line":250},[34,78956,62],{"emptyLinePlaceholder":61},[34,78958,78959],{"class":36,"line":263},[34,78960,78961],{},"# Count arguments\n",[34,78963,78964],{"class":36,"line":275},[34,78965,78966],{},"function arg_count\n",[34,78968,78969],{"class":36,"line":700},[34,78970,78971],{},"    echo \"You passed\" (count $argv) \"arguments\"\n",[34,78973,78974],{"class":36,"line":706},[34,78975,33222],{},[34,78977,78978],{"class":36,"line":715},[34,78979,62],{"emptyLinePlaceholder":61},[34,78981,78982],{"class":36,"line":725},[34,78983,78984],{},"# Check if arguments exist\n",[34,78986,78987],{"class":36,"line":734},[34,78988,78989],{},"function require_arg\n",[34,78991,78992],{"class":36,"line":742},[34,78993,78994],{},"    if test (count $argv) -eq 0\n",[34,78996,78997],{"class":36,"line":748},[34,78998,78999],{},"        echo \"Error: No arguments provided\"\n",[34,79001,79002],{"class":36,"line":754},[34,79003,79004],{},"        return 1\n",[34,79006,79007],{"class":36,"line":759},[34,79008,79009],{},"    end\n",[34,79011,79012],{"class":36,"line":771},[34,79013,79014],{},"    echo \"Processing: $argv[1]\"\n",[34,79016,79017],{"class":36,"line":794},[34,79018,33222],{},[102,79020,79022],{"id":79021},"autoloading-functions","Autoloading Functions",[25,79024,79026],{"className":53759,"code":79025,"language":53755,"meta":30,"style":30},"# Save function to file for autoloading\n# File: ~/.config/fish/functions/myfunction.fish\nfunction myfunction\n    echo \"This function auto-loads!\"\nend\n\n# List all functions\nfunctions\n\n# Show function definition\nfunctions myfunction\n\n# Erase a function\nfunctions -e myfunction\n",[20,79027,79028,79033,79038,79043,79048,79052,79056,79061,79066,79070,79075,79080,79084,79089],{"__ignoreMap":30},[34,79029,79030],{"class":36,"line":37},[34,79031,79032],{},"# Save function to file for autoloading\n",[34,79034,79035],{"class":36,"line":44},[34,79036,79037],{},"# File: ~/.config/fish/functions/myfunction.fish\n",[34,79039,79040],{"class":36,"line":58},[34,79041,79042],{},"function myfunction\n",[34,79044,79045],{"class":36,"line":65},[34,79046,79047],{},"    echo \"This function auto-loads!\"\n",[34,79049,79050],{"class":36,"line":71},[34,79051,33222],{},[34,79053,79054],{"class":36,"line":77},[34,79055,62],{"emptyLinePlaceholder":61},[34,79057,79058],{"class":36,"line":82},[34,79059,79060],{},"# List all functions\n",[34,79062,79063],{"class":36,"line":88},[34,79064,79065],{},"functions\n",[34,79067,79068],{"class":36,"line":242},[34,79069,62],{"emptyLinePlaceholder":61},[34,79071,79072],{"class":36,"line":250},[34,79073,79074],{},"# Show function definition\n",[34,79076,79077],{"class":36,"line":263},[34,79078,79079],{},"functions myfunction\n",[34,79081,79082],{"class":36,"line":275},[34,79083,62],{"emptyLinePlaceholder":61},[34,79085,79086],{"class":36,"line":700},[34,79087,79088],{},"# Erase a function\n",[34,79090,79091],{"class":36,"line":706},[34,79092,79093],{},"functions -e myfunction\n",[11,79095,10363],{"id":10368},[102,79097,79099],{"id":79098},"if-statements","If Statements",[25,79101,79103],{"className":53759,"code":79102,"language":53755,"meta":30,"style":30},"# Simple if\nif test $status -eq 0\n    echo \"Success\"\nend\n\n# If-else\nif test -f ~/.config/fish/config.fish\n    echo \"Config exists\"\nelse\n    echo \"Config not found\"\nend\n\n# If-else if-else\nif test $count -gt 10\n    echo \"More than 10\"\nelse if test $count -gt 5\n    echo \"More than 5\"\nelse\n    echo \"5 or less\"\nend\n\n# Using square brackets (shorthand for test)\nif [ $USER = \"root\" ]\n    echo \"Running as root\"\nend\n",[20,79104,79105,79110,79115,79120,79124,79128,79133,79138,79143,79147,79152,79156,79160,79165,79170,79175,79180,79185,79189,79194,79198,79202,79207,79212,79217],{"__ignoreMap":30},[34,79106,79107],{"class":36,"line":37},[34,79108,79109],{},"# Simple if\n",[34,79111,79112],{"class":36,"line":44},[34,79113,79114],{},"if test $status -eq 0\n",[34,79116,79117],{"class":36,"line":58},[34,79118,79119],{},"    echo \"Success\"\n",[34,79121,79122],{"class":36,"line":65},[34,79123,33222],{},[34,79125,79126],{"class":36,"line":71},[34,79127,62],{"emptyLinePlaceholder":61},[34,79129,79130],{"class":36,"line":77},[34,79131,79132],{},"# If-else\n",[34,79134,79135],{"class":36,"line":82},[34,79136,79137],{},"if test -f ~/.config/fish/config.fish\n",[34,79139,79140],{"class":36,"line":88},[34,79141,79142],{},"    echo \"Config exists\"\n",[34,79144,79145],{"class":36,"line":242},[34,79146,10446],{},[34,79148,79149],{"class":36,"line":250},[34,79150,79151],{},"    echo \"Config not found\"\n",[34,79153,79154],{"class":36,"line":263},[34,79155,33222],{},[34,79157,79158],{"class":36,"line":275},[34,79159,62],{"emptyLinePlaceholder":61},[34,79161,79162],{"class":36,"line":700},[34,79163,79164],{},"# If-else if-else\n",[34,79166,79167],{"class":36,"line":706},[34,79168,79169],{},"if test $count -gt 10\n",[34,79171,79172],{"class":36,"line":715},[34,79173,79174],{},"    echo \"More than 10\"\n",[34,79176,79177],{"class":36,"line":725},[34,79178,79179],{},"else if test $count -gt 5\n",[34,79181,79182],{"class":36,"line":734},[34,79183,79184],{},"    echo \"More than 5\"\n",[34,79186,79187],{"class":36,"line":742},[34,79188,10446],{},[34,79190,79191],{"class":36,"line":748},[34,79192,79193],{},"    echo \"5 or less\"\n",[34,79195,79196],{"class":36,"line":754},[34,79197,33222],{},[34,79199,79200],{"class":36,"line":759},[34,79201,62],{"emptyLinePlaceholder":61},[34,79203,79204],{"class":36,"line":771},[34,79205,79206],{},"# Using square brackets (shorthand for test)\n",[34,79208,79209],{"class":36,"line":794},[34,79210,79211],{},"if [ $USER = \"root\" ]\n",[34,79213,79214],{"class":36,"line":824},[34,79215,79216],{},"    echo \"Running as root\"\n",[34,79218,79219],{"class":36,"line":830},[34,79220,33222],{},[102,79222,79224],{"id":79223},"test-operators","Test Operators",[25,79226,79228],{"className":53759,"code":79227,"language":53755,"meta":30,"style":30},"# String comparisons\nif test $name = \"Alice\"\n    echo \"Hello Alice\"\nend\n\nif test $name != \"Bob\"\n    echo \"Not Bob\"\nend\n\n# Numeric comparisons\nif test $age -gt 18      # Greater than\n    echo \"Adult\"\nend\n\nif test $age -lt 13      # Less than\n    echo \"Child\"\nend\n\nif test $age -ge 18      # Greater than or equal\n    echo \"Voting age\"\nend\n\nif test $age -le 65      # Less than or equal\n    echo \"Working age\"\nend\n\nif test $age -eq 30      # Equal\n    echo \"Exactly 30\"\nend\n\nif test $age -ne 25      # Not equal\n    echo \"Not 25\"\nend\n\n# File tests\nif test -f /path/to/file       # File exists and is regular file\n    echo \"File exists\"\nend\n\nif test -d /path/to/dir        # Directory exists\n    echo \"Directory exists\"\nend\n\nif test -e /path/to/something  # Path exists (file or dir)\n    echo \"Path exists\"\nend\n\nif test -r /path/to/file       # Readable\n    echo \"Can read\"\nend\n\nif test -w /path/to/file       # Writable\n    echo \"Can write\"\nend\n\nif test -x /path/to/file       # Executable\n    echo \"Can execute\"\nend\n",[20,79229,79230,79234,79239,79244,79248,79252,79257,79262,79266,79270,79274,79279,79284,79288,79292,79297,79302,79306,79310,79315,79320,79324,79328,79333,79338,79342,79346,79351,79356,79360,79364,79369,79374,79378,79382,79386,79391,79396,79400,79404,79409,79414,79418,79422,79427,79432,79436,79440,79445,79450,79454,79458,79463,79468,79472,79476,79481,79486],{"__ignoreMap":30},[34,79231,79232],{"class":36,"line":37},[34,79233,10467],{},[34,79235,79236],{"class":36,"line":44},[34,79237,79238],{},"if test $name = \"Alice\"\n",[34,79240,79241],{"class":36,"line":58},[34,79242,79243],{},"    echo \"Hello Alice\"\n",[34,79245,79246],{"class":36,"line":65},[34,79247,33222],{},[34,79249,79250],{"class":36,"line":71},[34,79251,62],{"emptyLinePlaceholder":61},[34,79253,79254],{"class":36,"line":77},[34,79255,79256],{},"if test $name != \"Bob\"\n",[34,79258,79259],{"class":36,"line":82},[34,79260,79261],{},"    echo \"Not Bob\"\n",[34,79263,79264],{"class":36,"line":88},[34,79265,33222],{},[34,79267,79268],{"class":36,"line":242},[34,79269,62],{"emptyLinePlaceholder":61},[34,79271,79272],{"class":36,"line":250},[34,79273,10565],{},[34,79275,79276],{"class":36,"line":263},[34,79277,79278],{},"if test $age -gt 18      # Greater than\n",[34,79280,79281],{"class":36,"line":275},[34,79282,79283],{},"    echo \"Adult\"\n",[34,79285,79286],{"class":36,"line":700},[34,79287,33222],{},[34,79289,79290],{"class":36,"line":706},[34,79291,62],{"emptyLinePlaceholder":61},[34,79293,79294],{"class":36,"line":715},[34,79295,79296],{},"if test $age -lt 13      # Less than\n",[34,79298,79299],{"class":36,"line":725},[34,79300,79301],{},"    echo \"Child\"\n",[34,79303,79304],{"class":36,"line":734},[34,79305,33222],{},[34,79307,79308],{"class":36,"line":742},[34,79309,62],{"emptyLinePlaceholder":61},[34,79311,79312],{"class":36,"line":748},[34,79313,79314],{},"if test $age -ge 18      # Greater than or equal\n",[34,79316,79317],{"class":36,"line":754},[34,79318,79319],{},"    echo \"Voting age\"\n",[34,79321,79322],{"class":36,"line":759},[34,79323,33222],{},[34,79325,79326],{"class":36,"line":771},[34,79327,62],{"emptyLinePlaceholder":61},[34,79329,79330],{"class":36,"line":794},[34,79331,79332],{},"if test $age -le 65      # Less than or equal\n",[34,79334,79335],{"class":36,"line":824},[34,79336,79337],{},"    echo \"Working age\"\n",[34,79339,79340],{"class":36,"line":830},[34,79341,33222],{},[34,79343,79344],{"class":36,"line":839},[34,79345,62],{"emptyLinePlaceholder":61},[34,79347,79348],{"class":36,"line":854},[34,79349,79350],{},"if test $age -eq 30      # Equal\n",[34,79352,79353],{"class":36,"line":860},[34,79354,79355],{},"    echo \"Exactly 30\"\n",[34,79357,79358],{"class":36,"line":865},[34,79359,33222],{},[34,79361,79362],{"class":36,"line":870},[34,79363,62],{"emptyLinePlaceholder":61},[34,79365,79366],{"class":36,"line":876},[34,79367,79368],{},"if test $age -ne 25      # Not equal\n",[34,79370,79371],{"class":36,"line":885},[34,79372,79373],{},"    echo \"Not 25\"\n",[34,79375,79376],{"class":36,"line":895},[34,79377,33222],{},[34,79379,79380],{"class":36,"line":904},[34,79381,62],{"emptyLinePlaceholder":61},[34,79383,79384],{"class":36,"line":915},[34,79385,10716],{},[34,79387,79388],{"class":36,"line":927},[34,79389,79390],{},"if test -f /path/to/file       # File exists and is regular file\n",[34,79392,79393],{"class":36,"line":932},[34,79394,79395],{},"    echo \"File exists\"\n",[34,79397,79398],{"class":36,"line":944},[34,79399,33222],{},[34,79401,79402],{"class":36,"line":966},[34,79403,62],{"emptyLinePlaceholder":61},[34,79405,79406],{"class":36,"line":1948},[34,79407,79408],{},"if test -d /path/to/dir        # Directory exists\n",[34,79410,79411],{"class":36,"line":1953},[34,79412,79413],{},"    echo \"Directory exists\"\n",[34,79415,79416],{"class":36,"line":3616},[34,79417,33222],{},[34,79419,79420],{"class":36,"line":3622},[34,79421,62],{"emptyLinePlaceholder":61},[34,79423,79424],{"class":36,"line":3642},[34,79425,79426],{},"if test -e /path/to/something  # Path exists (file or dir)\n",[34,79428,79429],{"class":36,"line":3657},[34,79430,79431],{},"    echo \"Path exists\"\n",[34,79433,79434],{"class":36,"line":3663},[34,79435,33222],{},[34,79437,79438],{"class":36,"line":3669},[34,79439,62],{"emptyLinePlaceholder":61},[34,79441,79442],{"class":36,"line":3675},[34,79443,79444],{},"if test -r /path/to/file       # Readable\n",[34,79446,79447],{"class":36,"line":3693},[34,79448,79449],{},"    echo \"Can read\"\n",[34,79451,79452],{"class":36,"line":3707},[34,79453,33222],{},[34,79455,79456],{"class":36,"line":3712},[34,79457,62],{"emptyLinePlaceholder":61},[34,79459,79460],{"class":36,"line":3717},[34,79461,79462],{},"if test -w /path/to/file       # Writable\n",[34,79464,79465],{"class":36,"line":25776},[34,79466,79467],{},"    echo \"Can write\"\n",[34,79469,79470],{"class":36,"line":49902},[34,79471,33222],{},[34,79473,79474],{"class":36,"line":52569},[34,79475,62],{"emptyLinePlaceholder":61},[34,79477,79478],{"class":36,"line":52574},[34,79479,79480],{},"if test -x /path/to/file       # Executable\n",[34,79482,79483],{"class":36,"line":52580},[34,79484,79485],{},"    echo \"Can execute\"\n",[34,79487,79488],{"class":36,"line":52608},[34,79489,33222],{},[102,79491,79493],{"id":79492},"logical-operators","Logical Operators",[25,79495,79497],{"className":53759,"code":79496,"language":53755,"meta":30,"style":30},"# AND operator\nif test $age -gt 18; and test $age -lt 65\n    echo \"Working age\"\nend\n\n# OR operator\nif test $day = \"Saturday\"; or test $day = \"Sunday\"\n    echo \"Weekend!\"\nend\n\n# NOT operator\nif not test -f ~/.ssh/id_rsa\n    echo \"SSH key not found\"\nend\n\n# Combining operators\nif test $status -eq 0; and not test -z \"$output\"\n    echo \"Command succeeded with output\"\nend\n",[20,79498,79499,79504,79509,79513,79517,79521,79526,79531,79536,79540,79544,79549,79554,79559,79563,79567,79572,79577,79582],{"__ignoreMap":30},[34,79500,79501],{"class":36,"line":37},[34,79502,79503],{},"# AND operator\n",[34,79505,79506],{"class":36,"line":44},[34,79507,79508],{},"if test $age -gt 18; and test $age -lt 65\n",[34,79510,79511],{"class":36,"line":58},[34,79512,79337],{},[34,79514,79515],{"class":36,"line":65},[34,79516,33222],{},[34,79518,79519],{"class":36,"line":71},[34,79520,62],{"emptyLinePlaceholder":61},[34,79522,79523],{"class":36,"line":77},[34,79524,79525],{},"# OR operator\n",[34,79527,79528],{"class":36,"line":82},[34,79529,79530],{},"if test $day = \"Saturday\"; or test $day = \"Sunday\"\n",[34,79532,79533],{"class":36,"line":88},[34,79534,79535],{},"    echo \"Weekend!\"\n",[34,79537,79538],{"class":36,"line":242},[34,79539,33222],{},[34,79541,79542],{"class":36,"line":250},[34,79543,62],{"emptyLinePlaceholder":61},[34,79545,79546],{"class":36,"line":263},[34,79547,79548],{},"# NOT operator\n",[34,79550,79551],{"class":36,"line":275},[34,79552,79553],{},"if not test -f ~/.ssh/id_rsa\n",[34,79555,79556],{"class":36,"line":700},[34,79557,79558],{},"    echo \"SSH key not found\"\n",[34,79560,79561],{"class":36,"line":706},[34,79562,33222],{},[34,79564,79565],{"class":36,"line":715},[34,79566,62],{"emptyLinePlaceholder":61},[34,79568,79569],{"class":36,"line":725},[34,79570,79571],{},"# Combining operators\n",[34,79573,79574],{"class":36,"line":734},[34,79575,79576],{},"if test $status -eq 0; and not test -z \"$output\"\n",[34,79578,79579],{"class":36,"line":742},[34,79580,79581],{},"    echo \"Command succeeded with output\"\n",[34,79583,79584],{"class":36,"line":748},[34,79585,33222],{},[102,79587,27189],{"id":27510},[25,79589,79591],{"className":53759,"code":79590,"language":53755,"meta":30,"style":30},"# Switch case\nswitch $animal\n    case cat\n        echo \"Meow\"\n    case dog\n        echo \"Woof\"\n    case bird\n        echo \"Tweet\"\n    case '*'\n        echo \"Unknown animal\"\nend\n\n# Multiple patterns per case\nswitch $extension\n    case jpg jpeg png gif\n        echo \"Image file\"\n    case mp4 avi mkv\n        echo \"Video file\"\n    case mp3 wav flac\n        echo \"Audio file\"\n    case '*'\n        echo \"Unknown file type\"\nend\n",[20,79592,79593,79598,79603,79608,79613,79618,79623,79628,79633,79638,79643,79647,79651,79656,79661,79666,79671,79676,79681,79686,79691,79695,79700],{"__ignoreMap":30},[34,79594,79595],{"class":36,"line":37},[34,79596,79597],{},"# Switch case\n",[34,79599,79600],{"class":36,"line":44},[34,79601,79602],{},"switch $animal\n",[34,79604,79605],{"class":36,"line":58},[34,79606,79607],{},"    case cat\n",[34,79609,79610],{"class":36,"line":65},[34,79611,79612],{},"        echo \"Meow\"\n",[34,79614,79615],{"class":36,"line":71},[34,79616,79617],{},"    case dog\n",[34,79619,79620],{"class":36,"line":77},[34,79621,79622],{},"        echo \"Woof\"\n",[34,79624,79625],{"class":36,"line":82},[34,79626,79627],{},"    case bird\n",[34,79629,79630],{"class":36,"line":88},[34,79631,79632],{},"        echo \"Tweet\"\n",[34,79634,79635],{"class":36,"line":242},[34,79636,79637],{},"    case '*'\n",[34,79639,79640],{"class":36,"line":250},[34,79641,79642],{},"        echo \"Unknown animal\"\n",[34,79644,79645],{"class":36,"line":263},[34,79646,33222],{},[34,79648,79649],{"class":36,"line":275},[34,79650,62],{"emptyLinePlaceholder":61},[34,79652,79653],{"class":36,"line":700},[34,79654,79655],{},"# Multiple patterns per case\n",[34,79657,79658],{"class":36,"line":706},[34,79659,79660],{},"switch $extension\n",[34,79662,79663],{"class":36,"line":715},[34,79664,79665],{},"    case jpg jpeg png gif\n",[34,79667,79668],{"class":36,"line":725},[34,79669,79670],{},"        echo \"Image file\"\n",[34,79672,79673],{"class":36,"line":734},[34,79674,79675],{},"    case mp4 avi mkv\n",[34,79677,79678],{"class":36,"line":742},[34,79679,79680],{},"        echo \"Video file\"\n",[34,79682,79683],{"class":36,"line":748},[34,79684,79685],{},"    case mp3 wav flac\n",[34,79687,79688],{"class":36,"line":754},[34,79689,79690],{},"        echo \"Audio file\"\n",[34,79692,79693],{"class":36,"line":759},[34,79694,79637],{},[34,79696,79697],{"class":36,"line":771},[34,79698,79699],{},"        echo \"Unknown file type\"\n",[34,79701,79702],{"class":36,"line":794},[34,79703,33222],{},[11,79705,11769],{"id":11774},[102,79707,79709],{"id":79708},"for-loops","For Loops",[25,79711,79713],{"className":53759,"code":79712,"language":53755,"meta":30,"style":30},"# Loop over list\nfor item in apple banana cherry\n    echo $item\nend\n\n# Loop over variable list\nset fruits apple banana cherry\nfor fruit in $fruits\n    echo \"I like $fruit\"\nend\n\n# Loop over command output\nfor file in *.txt\n    echo \"Processing $file\"\nend\n\n# Loop over range (using seq)\nfor i in (seq 1 5)\n    echo \"Number: $i\"\nend\n\n# Loop with index\nfor i in (seq (count $items))\n    echo \"Item $i: $items[$i]\"\nend\n",[20,79714,79715,79720,79725,79730,79734,79738,79743,79747,79752,79757,79761,79765,79770,79775,79780,79784,79788,79793,79798,79803,79807,79811,79816,79821,79826],{"__ignoreMap":30},[34,79716,79717],{"class":36,"line":37},[34,79718,79719],{},"# Loop over list\n",[34,79721,79722],{"class":36,"line":44},[34,79723,79724],{},"for item in apple banana cherry\n",[34,79726,79727],{"class":36,"line":58},[34,79728,79729],{},"    echo $item\n",[34,79731,79732],{"class":36,"line":65},[34,79733,33222],{},[34,79735,79736],{"class":36,"line":71},[34,79737,62],{"emptyLinePlaceholder":61},[34,79739,79740],{"class":36,"line":77},[34,79741,79742],{},"# Loop over variable list\n",[34,79744,79745],{"class":36,"line":82},[34,79746,78605],{},[34,79748,79749],{"class":36,"line":88},[34,79750,79751],{},"for fruit in $fruits\n",[34,79753,79754],{"class":36,"line":242},[34,79755,79756],{},"    echo \"I like $fruit\"\n",[34,79758,79759],{"class":36,"line":250},[34,79760,33222],{},[34,79762,79763],{"class":36,"line":263},[34,79764,62],{"emptyLinePlaceholder":61},[34,79766,79767],{"class":36,"line":275},[34,79768,79769],{},"# Loop over command output\n",[34,79771,79772],{"class":36,"line":700},[34,79773,79774],{},"for file in *.txt\n",[34,79776,79777],{"class":36,"line":706},[34,79778,79779],{},"    echo \"Processing $file\"\n",[34,79781,79782],{"class":36,"line":715},[34,79783,33222],{},[34,79785,79786],{"class":36,"line":725},[34,79787,62],{"emptyLinePlaceholder":61},[34,79789,79790],{"class":36,"line":734},[34,79791,79792],{},"# Loop over range (using seq)\n",[34,79794,79795],{"class":36,"line":742},[34,79796,79797],{},"for i in (seq 1 5)\n",[34,79799,79800],{"class":36,"line":748},[34,79801,79802],{},"    echo \"Number: $i\"\n",[34,79804,79805],{"class":36,"line":754},[34,79806,33222],{},[34,79808,79809],{"class":36,"line":759},[34,79810,62],{"emptyLinePlaceholder":61},[34,79812,79813],{"class":36,"line":771},[34,79814,79815],{},"# Loop with index\n",[34,79817,79818],{"class":36,"line":794},[34,79819,79820],{},"for i in (seq (count $items))\n",[34,79822,79823],{"class":36,"line":824},[34,79824,79825],{},"    echo \"Item $i: $items[$i]\"\n",[34,79827,79828],{"class":36,"line":830},[34,79829,33222],{},[102,79831,79833],{"id":79832},"while-loops","While Loops",[25,79835,79837],{"className":53759,"code":79836,"language":53755,"meta":30,"style":30},"# Basic while loop\nset i 1\nwhile test $i -le 5\n    echo $i\n    set i (math $i + 1)\nend\n\n# While reading lines from file\nwhile read -l line\n    echo \"Line: $line\"\nend \u003C input.txt\n\n# Infinite loop with break\nwhile true\n    echo \"Press Ctrl+C to stop\"\n    sleep 1\nend\n",[20,79838,79839,79844,79849,79854,79859,79864,79868,79872,79877,79882,79887,79892,79896,79901,79906,79911,79916],{"__ignoreMap":30},[34,79840,79841],{"class":36,"line":37},[34,79842,79843],{},"# Basic while loop\n",[34,79845,79846],{"class":36,"line":44},[34,79847,79848],{},"set i 1\n",[34,79850,79851],{"class":36,"line":58},[34,79852,79853],{},"while test $i -le 5\n",[34,79855,79856],{"class":36,"line":65},[34,79857,79858],{},"    echo $i\n",[34,79860,79861],{"class":36,"line":71},[34,79862,79863],{},"    set i (math $i + 1)\n",[34,79865,79866],{"class":36,"line":77},[34,79867,33222],{},[34,79869,79870],{"class":36,"line":82},[34,79871,62],{"emptyLinePlaceholder":61},[34,79873,79874],{"class":36,"line":88},[34,79875,79876],{},"# While reading lines from file\n",[34,79878,79879],{"class":36,"line":242},[34,79880,79881],{},"while read -l line\n",[34,79883,79884],{"class":36,"line":250},[34,79885,79886],{},"    echo \"Line: $line\"\n",[34,79888,79889],{"class":36,"line":263},[34,79890,79891],{},"end \u003C input.txt\n",[34,79893,79894],{"class":36,"line":275},[34,79895,62],{"emptyLinePlaceholder":61},[34,79897,79898],{"class":36,"line":700},[34,79899,79900],{},"# Infinite loop with break\n",[34,79902,79903],{"class":36,"line":706},[34,79904,79905],{},"while true\n",[34,79907,79908],{"class":36,"line":715},[34,79909,79910],{},"    echo \"Press Ctrl+C to stop\"\n",[34,79912,79913],{"class":36,"line":725},[34,79914,79915],{},"    sleep 1\n",[34,79917,79918],{"class":36,"line":734},[34,79919,33222],{},[102,79921,79923],{"id":79922},"loop-control","Loop Control",[25,79925,79927],{"className":53759,"code":79926,"language":53755,"meta":30,"style":30},"# Break - exit loop\nfor i in (seq 1 10)\n    if test $i -eq 5\n        break\n    end\n    echo $i\nend\n\n# Continue - skip to next iteration\nfor i in (seq 1 10)\n    if test (math $i % 2) -eq 0\n        continue  # Skip even numbers\n    end\n    echo $i\nend\n",[20,79928,79929,79934,79939,79944,79949,79953,79957,79961,79965,79970,79974,79979,79984,79988,79992],{"__ignoreMap":30},[34,79930,79931],{"class":36,"line":37},[34,79932,79933],{},"# Break - exit loop\n",[34,79935,79936],{"class":36,"line":44},[34,79937,79938],{},"for i in (seq 1 10)\n",[34,79940,79941],{"class":36,"line":58},[34,79942,79943],{},"    if test $i -eq 5\n",[34,79945,79946],{"class":36,"line":65},[34,79947,79948],{},"        break\n",[34,79950,79951],{"class":36,"line":71},[34,79952,79009],{},[34,79954,79955],{"class":36,"line":77},[34,79956,79858],{},[34,79958,79959],{"class":36,"line":82},[34,79960,33222],{},[34,79962,79963],{"class":36,"line":88},[34,79964,62],{"emptyLinePlaceholder":61},[34,79966,79967],{"class":36,"line":242},[34,79968,79969],{},"# Continue - skip to next iteration\n",[34,79971,79972],{"class":36,"line":250},[34,79973,79938],{},[34,79975,79976],{"class":36,"line":263},[34,79977,79978],{},"    if test (math $i % 2) -eq 0\n",[34,79980,79981],{"class":36,"line":275},[34,79982,79983],{},"        continue  # Skip even numbers\n",[34,79985,79986],{"class":36,"line":700},[34,79987,79009],{},[34,79989,79990],{"class":36,"line":706},[34,79991,79858],{},[34,79993,79994],{"class":36,"line":715},[34,79995,33222],{},[11,79997,79999],{"id":79998},"command-substitution","Command Substitution",[25,80001,80003],{"className":53759,"code":80002,"language":53755,"meta":30,"style":30},"# Capture command output\nset current_dir (pwd)\nset files (ls)\nset date_str (date +%Y-%m-%d)\n\n# Use in strings\necho \"Today is $date_str\"\n\n# Use in conditions\nif test (whoami) = \"root\"\n    echo \"Running as root\"\nend\n\n# Nested substitution\nset user_home (echo ~(whoami))\n",[20,80004,80005,80010,80015,80020,80025,80029,80034,80039,80043,80048,80053,80057,80061,80065,80070],{"__ignoreMap":30},[34,80006,80007],{"class":36,"line":37},[34,80008,80009],{},"# Capture command output\n",[34,80011,80012],{"class":36,"line":44},[34,80013,80014],{},"set current_dir (pwd)\n",[34,80016,80017],{"class":36,"line":58},[34,80018,80019],{},"set files (ls)\n",[34,80021,80022],{"class":36,"line":65},[34,80023,80024],{},"set date_str (date +%Y-%m-%d)\n",[34,80026,80027],{"class":36,"line":71},[34,80028,62],{"emptyLinePlaceholder":61},[34,80030,80031],{"class":36,"line":77},[34,80032,80033],{},"# Use in strings\n",[34,80035,80036],{"class":36,"line":82},[34,80037,80038],{},"echo \"Today is $date_str\"\n",[34,80040,80041],{"class":36,"line":88},[34,80042,62],{"emptyLinePlaceholder":61},[34,80044,80045],{"class":36,"line":242},[34,80046,80047],{},"# Use in conditions\n",[34,80049,80050],{"class":36,"line":250},[34,80051,80052],{},"if test (whoami) = \"root\"\n",[34,80054,80055],{"class":36,"line":263},[34,80056,79216],{},[34,80058,80059],{"class":36,"line":275},[34,80060,33222],{},[34,80062,80063],{"class":36,"line":700},[34,80064,62],{"emptyLinePlaceholder":61},[34,80066,80067],{"class":36,"line":706},[34,80068,80069],{},"# Nested substitution\n",[34,80071,80072],{"class":36,"line":715},[34,80073,80074],{},"set user_home (echo ~(whoami))\n",[11,80076,12188],{"id":12636},[102,80078,80080],{"id":80079},"string-operations","String Operations",[25,80082,80084],{"className":53759,"code":80083,"language":53755,"meta":30,"style":30},"# String length\nset name \"Alice\"\necho (string length $name)  # 5\n\n# Substring\nset str \"Hello World\"\necho (string sub -s 1 -l 5 $str)  # Hello\necho (string sub -s 7 $str)        # World\n\n# Uppercase/lowercase\necho (string upper \"hello\")  # HELLO\necho (string lower \"WORLD\")  # world\n\n# Trim whitespace\nset text \"  hello  \"\necho (string trim $text)      # hello\necho (string trim -l $text)   # \"hello  \" (left trim)\necho (string trim -r $text)   # \"  hello\" (right trim)\n",[20,80085,80086,80091,80096,80101,80105,80109,80114,80119,80124,80128,80133,80138,80143,80147,80152,80157,80162,80167],{"__ignoreMap":30},[34,80087,80088],{"class":36,"line":37},[34,80089,80090],{},"# String length\n",[34,80092,80093],{"class":36,"line":44},[34,80094,80095],{},"set name \"Alice\"\n",[34,80097,80098],{"class":36,"line":58},[34,80099,80100],{},"echo (string length $name)  # 5\n",[34,80102,80103],{"class":36,"line":65},[34,80104,62],{"emptyLinePlaceholder":61},[34,80106,80107],{"class":36,"line":71},[34,80108,12683],{},[34,80110,80111],{"class":36,"line":77},[34,80112,80113],{},"set str \"Hello World\"\n",[34,80115,80116],{"class":36,"line":82},[34,80117,80118],{},"echo (string sub -s 1 -l 5 $str)  # Hello\n",[34,80120,80121],{"class":36,"line":88},[34,80122,80123],{},"echo (string sub -s 7 $str)        # World\n",[34,80125,80126],{"class":36,"line":242},[34,80127,62],{"emptyLinePlaceholder":61},[34,80129,80130],{"class":36,"line":250},[34,80131,80132],{},"# Uppercase/lowercase\n",[34,80134,80135],{"class":36,"line":263},[34,80136,80137],{},"echo (string upper \"hello\")  # HELLO\n",[34,80139,80140],{"class":36,"line":275},[34,80141,80142],{},"echo (string lower \"WORLD\")  # world\n",[34,80144,80145],{"class":36,"line":700},[34,80146,62],{"emptyLinePlaceholder":61},[34,80148,80149],{"class":36,"line":706},[34,80150,80151],{},"# Trim whitespace\n",[34,80153,80154],{"class":36,"line":715},[34,80155,80156],{},"set text \"  hello  \"\n",[34,80158,80159],{"class":36,"line":725},[34,80160,80161],{},"echo (string trim $text)      # hello\n",[34,80163,80164],{"class":36,"line":734},[34,80165,80166],{},"echo (string trim -l $text)   # \"hello  \" (left trim)\n",[34,80168,80169],{"class":36,"line":742},[34,80170,80171],{},"echo (string trim -r $text)   # \"  hello\" (right trim)\n",[102,80173,80175],{"id":80174},"string-matching","String Matching",[25,80177,80179],{"className":53759,"code":80178,"language":53755,"meta":30,"style":30},"# Match pattern\nif string match -q \"*.txt\" $filename\n    echo \"Text file\"\nend\n\n# Match with regex\nif string match -qr '^\\d+$' $input\n    echo \"It's a number\"\nend\n\n# Replace string\nset path \"/home/user/documents\"\necho (string replace \"/home/user\" \"~\" $path)  # ~/documents\n\n# Replace all occurrences\nset text \"foo bar foo\"\necho (string replace -a \"foo\" \"baz\" $text)  # baz bar baz\n\n# Split string\nset csv \"apple,banana,cherry\"\nset items (string split \",\" $csv)\necho $items[1]  # apple\n\n# Join strings\nset items apple banana cherry\necho (string join \", \" $items)  # apple, banana, cherry\n",[20,80180,80181,80186,80191,80196,80200,80204,80209,80214,80219,80223,80227,80232,80237,80242,80246,80251,80256,80261,80265,80270,80275,80280,80285,80289,80294,80299],{"__ignoreMap":30},[34,80182,80183],{"class":36,"line":37},[34,80184,80185],{},"# Match pattern\n",[34,80187,80188],{"class":36,"line":44},[34,80189,80190],{},"if string match -q \"*.txt\" $filename\n",[34,80192,80193],{"class":36,"line":58},[34,80194,80195],{},"    echo \"Text file\"\n",[34,80197,80198],{"class":36,"line":65},[34,80199,33222],{},[34,80201,80202],{"class":36,"line":71},[34,80203,62],{"emptyLinePlaceholder":61},[34,80205,80206],{"class":36,"line":77},[34,80207,80208],{},"# Match with regex\n",[34,80210,80211],{"class":36,"line":82},[34,80212,80213],{},"if string match -qr '^\\d+$' $input\n",[34,80215,80216],{"class":36,"line":88},[34,80217,80218],{},"    echo \"It's a number\"\n",[34,80220,80221],{"class":36,"line":242},[34,80222,33222],{},[34,80224,80225],{"class":36,"line":250},[34,80226,62],{"emptyLinePlaceholder":61},[34,80228,80229],{"class":36,"line":263},[34,80230,80231],{},"# Replace string\n",[34,80233,80234],{"class":36,"line":275},[34,80235,80236],{},"set path \"/home/user/documents\"\n",[34,80238,80239],{"class":36,"line":700},[34,80240,80241],{},"echo (string replace \"/home/user\" \"~\" $path)  # ~/documents\n",[34,80243,80244],{"class":36,"line":706},[34,80245,62],{"emptyLinePlaceholder":61},[34,80247,80248],{"class":36,"line":715},[34,80249,80250],{},"# Replace all occurrences\n",[34,80252,80253],{"class":36,"line":725},[34,80254,80255],{},"set text \"foo bar foo\"\n",[34,80257,80258],{"class":36,"line":734},[34,80259,80260],{},"echo (string replace -a \"foo\" \"baz\" $text)  # baz bar baz\n",[34,80262,80263],{"class":36,"line":742},[34,80264,62],{"emptyLinePlaceholder":61},[34,80266,80267],{"class":36,"line":748},[34,80268,80269],{},"# Split string\n",[34,80271,80272],{"class":36,"line":754},[34,80273,80274],{},"set csv \"apple,banana,cherry\"\n",[34,80276,80277],{"class":36,"line":759},[34,80278,80279],{},"set items (string split \",\" $csv)\n",[34,80281,80282],{"class":36,"line":771},[34,80283,80284],{},"echo $items[1]  # apple\n",[34,80286,80287],{"class":36,"line":794},[34,80288,62],{"emptyLinePlaceholder":61},[34,80290,80291],{"class":36,"line":824},[34,80292,80293],{},"# Join strings\n",[34,80295,80296],{"class":36,"line":830},[34,80297,80298],{},"set items apple banana cherry\n",[34,80300,80301],{"class":36,"line":839},[34,80302,80303],{},"echo (string join \", \" $items)  # apple, banana, cherry\n",[11,80305,61448],{"id":80306},"lists",[102,80308,80310],{"id":80309},"list-operations","List Operations",[25,80312,80314],{"className":53759,"code":80313,"language":53755,"meta":30,"style":30},"# Create list\nset colors red green blue\n\n# Append to list\nset colors $colors yellow\n\n# Prepend to list\nset colors orange $colors\n\n# Access elements\necho $colors[1]      # First element\necho $colors[-1]     # Last element\necho $colors[2..4]   # Range\n\n# List length\necho (count $colors)\n\n# Check if item in list\nif contains red $colors\n    echo \"Red is in the list\"\nend\n\n# Remove duplicates\nset numbers 1 2 2 3 3 3 4\nset unique (echo $numbers | tr ' ' '\\n' | sort -u)\n\n# Reverse list\nset reversed $colors[-1..1]\n",[20,80315,80316,80321,80326,80330,80335,80340,80344,80349,80354,80358,80362,80367,80372,80377,80381,80386,80391,80395,80400,80405,80410,80414,80418,80423,80428,80433,80437,80442],{"__ignoreMap":30},[34,80317,80318],{"class":36,"line":37},[34,80319,80320],{},"# Create list\n",[34,80322,80323],{"class":36,"line":44},[34,80324,80325],{},"set colors red green blue\n",[34,80327,80328],{"class":36,"line":58},[34,80329,62],{"emptyLinePlaceholder":61},[34,80331,80332],{"class":36,"line":65},[34,80333,80334],{},"# Append to list\n",[34,80336,80337],{"class":36,"line":71},[34,80338,80339],{},"set colors $colors yellow\n",[34,80341,80342],{"class":36,"line":77},[34,80343,62],{"emptyLinePlaceholder":61},[34,80345,80346],{"class":36,"line":82},[34,80347,80348],{},"# Prepend to list\n",[34,80350,80351],{"class":36,"line":88},[34,80352,80353],{},"set colors orange $colors\n",[34,80355,80356],{"class":36,"line":242},[34,80357,62],{"emptyLinePlaceholder":61},[34,80359,80360],{"class":36,"line":250},[34,80361,10115],{},[34,80363,80364],{"class":36,"line":263},[34,80365,80366],{},"echo $colors[1]      # First element\n",[34,80368,80369],{"class":36,"line":275},[34,80370,80371],{},"echo $colors[-1]     # Last element\n",[34,80373,80374],{"class":36,"line":700},[34,80375,80376],{},"echo $colors[2..4]   # Range\n",[34,80378,80379],{"class":36,"line":706},[34,80380,62],{"emptyLinePlaceholder":61},[34,80382,80383],{"class":36,"line":715},[34,80384,80385],{},"# List length\n",[34,80387,80388],{"class":36,"line":725},[34,80389,80390],{},"echo (count $colors)\n",[34,80392,80393],{"class":36,"line":734},[34,80394,62],{"emptyLinePlaceholder":61},[34,80396,80397],{"class":36,"line":742},[34,80398,80399],{},"# Check if item in list\n",[34,80401,80402],{"class":36,"line":748},[34,80403,80404],{},"if contains red $colors\n",[34,80406,80407],{"class":36,"line":754},[34,80408,80409],{},"    echo \"Red is in the list\"\n",[34,80411,80412],{"class":36,"line":759},[34,80413,33222],{},[34,80415,80416],{"class":36,"line":771},[34,80417,62],{"emptyLinePlaceholder":61},[34,80419,80420],{"class":36,"line":794},[34,80421,80422],{},"# Remove duplicates\n",[34,80424,80425],{"class":36,"line":824},[34,80426,80427],{},"set numbers 1 2 2 3 3 3 4\n",[34,80429,80430],{"class":36,"line":830},[34,80431,80432],{},"set unique (echo $numbers | tr ' ' '\\n' | sort -u)\n",[34,80434,80435],{"class":36,"line":839},[34,80436,62],{"emptyLinePlaceholder":61},[34,80438,80439],{"class":36,"line":854},[34,80440,80441],{},"# Reverse list\n",[34,80443,80444],{"class":36,"line":860},[34,80445,80446],{},"set reversed $colors[-1..1]\n",[11,80448,11204],{"id":11209},[102,80450,80452],{"id":80451},"reading-input","Reading Input",[25,80454,80456],{"className":53759,"code":80455,"language":53755,"meta":30,"style":30},"# Read user input\nread -P \"Enter your name: \" name\necho \"Hello, $name\"\n\n# Read with prompt and local variable\nread -l -P \"Enter password: \" password\n\n# Read line by line from file\nwhile read -l line\n    echo \"Line: $line\"\nend \u003C file.txt\n\n# Read from stdin\ncat file.txt | while read -l line\n    echo \"Processing: $line\"\nend\n",[20,80457,80458,80462,80467,80472,80476,80481,80486,80490,80495,80499,80503,80508,80512,80517,80522,80527],{"__ignoreMap":30},[34,80459,80460],{"class":36,"line":37},[34,80461,11219],{},[34,80463,80464],{"class":36,"line":44},[34,80465,80466],{},"read -P \"Enter your name: \" name\n",[34,80468,80469],{"class":36,"line":58},[34,80470,80471],{},"echo \"Hello, $name\"\n",[34,80473,80474],{"class":36,"line":65},[34,80475,62],{"emptyLinePlaceholder":61},[34,80477,80478],{"class":36,"line":71},[34,80479,80480],{},"# Read with prompt and local variable\n",[34,80482,80483],{"class":36,"line":77},[34,80484,80485],{},"read -l -P \"Enter password: \" password\n",[34,80487,80488],{"class":36,"line":82},[34,80489,62],{"emptyLinePlaceholder":61},[34,80491,80492],{"class":36,"line":88},[34,80493,80494],{},"# Read line by line from file\n",[34,80496,80497],{"class":36,"line":242},[34,80498,79881],{},[34,80500,80501],{"class":36,"line":250},[34,80502,79886],{},[34,80504,80505],{"class":36,"line":263},[34,80506,80507],{},"end \u003C file.txt\n",[34,80509,80510],{"class":36,"line":275},[34,80511,62],{"emptyLinePlaceholder":61},[34,80513,80514],{"class":36,"line":700},[34,80515,80516],{},"# Read from stdin\n",[34,80518,80519],{"class":36,"line":706},[34,80520,80521],{},"cat file.txt | while read -l line\n",[34,80523,80524],{"class":36,"line":715},[34,80525,80526],{},"    echo \"Processing: $line\"\n",[34,80528,80529],{"class":36,"line":725},[34,80530,33222],{},[102,80532,799],{"id":80533},"output",[25,80535,80537],{"className":53759,"code":80536,"language":53755,"meta":30,"style":30},"# Print to stdout\necho \"Normal output\"\n\n# Print to stderr\necho \"Error message\" >&2\n\n# Suppress output\ncommand > /dev/null 2>&1\n\n# Append to file\necho \"Log entry\" >> logfile.txt\n\n# Write to file (overwrite)\necho \"New content\" > file.txt\n",[20,80538,80539,80544,80549,80553,80558,80563,80567,80572,80577,80581,80585,80590,80594,80599],{"__ignoreMap":30},[34,80540,80541],{"class":36,"line":37},[34,80542,80543],{},"# Print to stdout\n",[34,80545,80546],{"class":36,"line":44},[34,80547,80548],{},"echo \"Normal output\"\n",[34,80550,80551],{"class":36,"line":58},[34,80552,62],{"emptyLinePlaceholder":61},[34,80554,80555],{"class":36,"line":65},[34,80556,80557],{},"# Print to stderr\n",[34,80559,80560],{"class":36,"line":71},[34,80561,80562],{},"echo \"Error message\" >&2\n",[34,80564,80565],{"class":36,"line":77},[34,80566,62],{"emptyLinePlaceholder":61},[34,80568,80569],{"class":36,"line":82},[34,80570,80571],{},"# Suppress output\n",[34,80573,80574],{"class":36,"line":88},[34,80575,80576],{},"command > /dev/null 2>&1\n",[34,80578,80579],{"class":36,"line":242},[34,80580,62],{"emptyLinePlaceholder":61},[34,80582,80583],{"class":36,"line":250},[34,80584,44681],{},[34,80586,80587],{"class":36,"line":263},[34,80588,80589],{},"echo \"Log entry\" >> logfile.txt\n",[34,80591,80592],{"class":36,"line":275},[34,80593,62],{"emptyLinePlaceholder":61},[34,80595,80596],{"class":36,"line":700},[34,80597,80598],{},"# Write to file (overwrite)\n",[34,80600,80601],{"class":36,"line":706},[34,80602,80603],{},"echo \"New content\" > file.txt\n",[11,80605,80607],{"id":80606},"pipes-and-redirection","Pipes and Redirection",[25,80609,80611],{"className":53759,"code":80610,"language":53755,"meta":30,"style":30},"# Pipe output to another command\nls -l | grep \".txt\"\n\n# Redirect stdout to file\necho \"Hello\" > output.txt\n\n# Redirect stderr to file\ncommand 2> errors.txt\n\n# Redirect both stdout and stderr\ncommand > output.txt 2>&1\n\n# Append to file\necho \"More data\" >> output.txt\n\n# Pipe stderr\ncommand 2>&1 | grep \"error\"\n",[20,80612,80613,80618,80623,80627,80632,80637,80641,80646,80651,80655,80660,80665,80669,80673,80678,80682,80687],{"__ignoreMap":30},[34,80614,80615],{"class":36,"line":37},[34,80616,80617],{},"# Pipe output to another command\n",[34,80619,80620],{"class":36,"line":44},[34,80621,80622],{},"ls -l | grep \".txt\"\n",[34,80624,80625],{"class":36,"line":58},[34,80626,62],{"emptyLinePlaceholder":61},[34,80628,80629],{"class":36,"line":65},[34,80630,80631],{},"# Redirect stdout to file\n",[34,80633,80634],{"class":36,"line":71},[34,80635,80636],{},"echo \"Hello\" > output.txt\n",[34,80638,80639],{"class":36,"line":77},[34,80640,62],{"emptyLinePlaceholder":61},[34,80642,80643],{"class":36,"line":82},[34,80644,80645],{},"# Redirect stderr to file\n",[34,80647,80648],{"class":36,"line":88},[34,80649,80650],{},"command 2> errors.txt\n",[34,80652,80653],{"class":36,"line":242},[34,80654,62],{"emptyLinePlaceholder":61},[34,80656,80657],{"class":36,"line":250},[34,80658,80659],{},"# Redirect both stdout and stderr\n",[34,80661,80662],{"class":36,"line":263},[34,80663,80664],{},"command > output.txt 2>&1\n",[34,80666,80667],{"class":36,"line":275},[34,80668,62],{"emptyLinePlaceholder":61},[34,80670,80671],{"class":36,"line":700},[34,80672,44681],{},[34,80674,80675],{"class":36,"line":706},[34,80676,80677],{},"echo \"More data\" >> output.txt\n",[34,80679,80680],{"class":36,"line":715},[34,80681,62],{"emptyLinePlaceholder":61},[34,80683,80684],{"class":36,"line":725},[34,80685,80686],{},"# Pipe stderr\n",[34,80688,80689],{"class":36,"line":734},[34,80690,80691],{},"command 2>&1 | grep \"error\"\n",[11,80693,80695],{"id":80694},"process-substitution","Process Substitution",[25,80697,80699],{"className":53759,"code":80698,"language":53755,"meta":30,"style":30},"# Background job\nsleep 10 &\n\n# List background jobs\njobs\n\n# Wait for job to complete\nwait\n\n# Kill job\nkill %1\n\n# Command chaining\ncommand1; and command2    # Run command2 only if command1 succeeds\ncommand1; or command2     # Run command2 only if command1 fails\n",[20,80700,80701,80706,80711,80715,80720,80724,80728,80733,80738,80742,80747,80752,80756,80761,80766],{"__ignoreMap":30},[34,80702,80703],{"class":36,"line":37},[34,80704,80705],{},"# Background job\n",[34,80707,80708],{"class":36,"line":44},[34,80709,80710],{},"sleep 10 &\n",[34,80712,80713],{"class":36,"line":58},[34,80714,62],{"emptyLinePlaceholder":61},[34,80716,80717],{"class":36,"line":65},[34,80718,80719],{},"# List background jobs\n",[34,80721,80722],{"class":36,"line":71},[34,80723,12261],{},[34,80725,80726],{"class":36,"line":77},[34,80727,62],{"emptyLinePlaceholder":61},[34,80729,80730],{"class":36,"line":82},[34,80731,80732],{},"# Wait for job to complete\n",[34,80734,80735],{"class":36,"line":88},[34,80736,80737],{},"wait\n",[34,80739,80740],{"class":36,"line":242},[34,80741,62],{"emptyLinePlaceholder":61},[34,80743,80744],{"class":36,"line":250},[34,80745,80746],{},"# Kill job\n",[34,80748,80749],{"class":36,"line":263},[34,80750,80751],{},"kill %1\n",[34,80753,80754],{"class":36,"line":275},[34,80755,62],{"emptyLinePlaceholder":61},[34,80757,80758],{"class":36,"line":700},[34,80759,80760],{},"# Command chaining\n",[34,80762,80763],{"class":36,"line":706},[34,80764,80765],{},"command1; and command2    # Run command2 only if command1 succeeds\n",[34,80767,80768],{"class":36,"line":715},[34,80769,80770],{},"command1; or command2     # Run command2 only if command1 fails\n",[11,80772,14656],{"id":14661},[25,80774,80776],{"className":53759,"code":80775,"language":53755,"meta":30,"style":30},"# Set environment variable\nset -x DATABASE_URL \"postgresql://localhost/mydb\"\n\n# Set PATH\nset -x PATH $PATH /usr/local/bin\n\n# Remove from PATH\nset -x PATH (string match -v \"/old/path\" $PATH)\n\n# Set for single command\nenv VAR=value command\n\n# View all environment variables\nenv\n\n# View specific variable\necho $PATH\n",[20,80777,80778,80783,80788,80792,80797,80801,80805,80809,80813,80817,80822,80827,80831,80836,80841,80845,80850],{"__ignoreMap":30},[34,80779,80780],{"class":36,"line":37},[34,80781,80782],{},"# Set environment variable\n",[34,80784,80785],{"class":36,"line":44},[34,80786,80787],{},"set -x DATABASE_URL \"postgresql://localhost/mydb\"\n",[34,80789,80790],{"class":36,"line":58},[34,80791,62],{"emptyLinePlaceholder":61},[34,80793,80794],{"class":36,"line":65},[34,80795,80796],{},"# Set PATH\n",[34,80798,80799],{"class":36,"line":71},[34,80800,78661],{},[34,80802,80803],{"class":36,"line":77},[34,80804,62],{"emptyLinePlaceholder":61},[34,80806,80807],{"class":36,"line":82},[34,80808,78499],{},[34,80810,80811],{"class":36,"line":88},[34,80812,78504],{},[34,80814,80815],{"class":36,"line":242},[34,80816,62],{"emptyLinePlaceholder":61},[34,80818,80819],{"class":36,"line":250},[34,80820,80821],{},"# Set for single command\n",[34,80823,80824],{"class":36,"line":263},[34,80825,80826],{},"env VAR=value command\n",[34,80828,80829],{"class":36,"line":275},[34,80830,62],{"emptyLinePlaceholder":61},[34,80832,80833],{"class":36,"line":700},[34,80834,80835],{},"# View all environment variables\n",[34,80837,80838],{"class":36,"line":706},[34,80839,80840],{},"env\n",[34,80842,80843],{"class":36,"line":715},[34,80844,62],{"emptyLinePlaceholder":61},[34,80846,80847],{"class":36,"line":725},[34,80848,80849],{},"# View specific variable\n",[34,80851,80852],{"class":36,"line":734},[34,80853,80854],{},"echo $PATH\n",[11,80856,8686],{"id":558},[102,80858,80860],{"id":80859},"config-file","Config File",[25,80862,80864],{"className":53759,"code":80863,"language":53755,"meta":30,"style":30},"# Main config: ~/.config/fish/config.fish\n\n# Set greeting\nset fish_greeting \"Welcome to Fish!\"\n\n# Or disable greeting\nset fish_greeting\n\n# Add to PATH\nfish_add_path /usr/local/bin\nfish_add_path ~/.local/bin\n\n# Set environment variables\nset -x EDITOR vim\nset -x VISUAL code\n",[20,80865,80866,80871,80875,80880,80885,80889,80894,80899,80903,80908,80912,80917,80921,80926,80931],{"__ignoreMap":30},[34,80867,80868],{"class":36,"line":37},[34,80869,80870],{},"# Main config: ~/.config/fish/config.fish\n",[34,80872,80873],{"class":36,"line":44},[34,80874,62],{"emptyLinePlaceholder":61},[34,80876,80877],{"class":36,"line":58},[34,80878,80879],{},"# Set greeting\n",[34,80881,80882],{"class":36,"line":65},[34,80883,80884],{},"set fish_greeting \"Welcome to Fish!\"\n",[34,80886,80887],{"class":36,"line":71},[34,80888,62],{"emptyLinePlaceholder":61},[34,80890,80891],{"class":36,"line":77},[34,80892,80893],{},"# Or disable greeting\n",[34,80895,80896],{"class":36,"line":82},[34,80897,80898],{},"set fish_greeting\n",[34,80900,80901],{"class":36,"line":88},[34,80902,62],{"emptyLinePlaceholder":61},[34,80904,80905],{"class":36,"line":242},[34,80906,80907],{},"# Add to PATH\n",[34,80909,80910],{"class":36,"line":250},[34,80911,78334],{},[34,80913,80914],{"class":36,"line":263},[34,80915,80916],{},"fish_add_path ~/.local/bin\n",[34,80918,80919],{"class":36,"line":275},[34,80920,62],{"emptyLinePlaceholder":61},[34,80922,80923],{"class":36,"line":700},[34,80924,80925],{},"# Set environment variables\n",[34,80927,80928],{"class":36,"line":706},[34,80929,80930],{},"set -x EDITOR vim\n",[34,80932,80933],{"class":36,"line":715},[34,80934,80935],{},"set -x VISUAL code\n",[102,80937,80939],{"id":80938},"aliases","Aliases",[25,80941,80943],{"className":53759,"code":80942,"language":53755,"meta":30,"style":30},"# Create alias (use abbreviation instead)\nabbr -a ll 'ls -lah'\nabbr -a gst 'git status'\nabbr -a gco 'git checkout'\n\n# List abbreviations\nabbr -l\n\n# Erase abbreviation\nabbr -e ll\n",[20,80944,80945,80950,80955,80960,80965,80969,80974,80979,80983,80988],{"__ignoreMap":30},[34,80946,80947],{"class":36,"line":37},[34,80948,80949],{},"# Create alias (use abbreviation instead)\n",[34,80951,80952],{"class":36,"line":44},[34,80953,80954],{},"abbr -a ll 'ls -lah'\n",[34,80956,80957],{"class":36,"line":58},[34,80958,80959],{},"abbr -a gst 'git status'\n",[34,80961,80962],{"class":36,"line":65},[34,80963,80964],{},"abbr -a gco 'git checkout'\n",[34,80966,80967],{"class":36,"line":71},[34,80968,62],{"emptyLinePlaceholder":61},[34,80970,80971],{"class":36,"line":77},[34,80972,80973],{},"# List abbreviations\n",[34,80975,80976],{"class":36,"line":82},[34,80977,80978],{},"abbr -l\n",[34,80980,80981],{"class":36,"line":88},[34,80982,62],{"emptyLinePlaceholder":61},[34,80984,80985],{"class":36,"line":242},[34,80986,80987],{},"# Erase abbreviation\n",[34,80989,80990],{"class":36,"line":250},[34,80991,80992],{},"abbr -e ll\n",[102,80994,80996],{"id":80995},"prompt","Prompt",[25,80998,81000],{"className":53759,"code":80999,"language":53755,"meta":30,"style":30},"# Custom prompt function\nfunction fish_prompt\n    set_color green\n    echo -n (whoami)\n    set_color normal\n    echo -n '@'\n    set_color blue\n    echo -n (hostname)\n    set_color normal\n    echo -n ':'\n    set_color yellow\n    echo -n (prompt_pwd)\n    set_color normal\n    echo -n '> '\nend\n",[20,81001,81002,81007,81012,81017,81022,81027,81032,81037,81042,81046,81051,81056,81061,81065,81070],{"__ignoreMap":30},[34,81003,81004],{"class":36,"line":37},[34,81005,81006],{},"# Custom prompt function\n",[34,81008,81009],{"class":36,"line":44},[34,81010,81011],{},"function fish_prompt\n",[34,81013,81014],{"class":36,"line":58},[34,81015,81016],{},"    set_color green\n",[34,81018,81019],{"class":36,"line":65},[34,81020,81021],{},"    echo -n (whoami)\n",[34,81023,81024],{"class":36,"line":71},[34,81025,81026],{},"    set_color normal\n",[34,81028,81029],{"class":36,"line":77},[34,81030,81031],{},"    echo -n '@'\n",[34,81033,81034],{"class":36,"line":82},[34,81035,81036],{},"    set_color blue\n",[34,81038,81039],{"class":36,"line":88},[34,81040,81041],{},"    echo -n (hostname)\n",[34,81043,81044],{"class":36,"line":242},[34,81045,81026],{},[34,81047,81048],{"class":36,"line":250},[34,81049,81050],{},"    echo -n ':'\n",[34,81052,81053],{"class":36,"line":263},[34,81054,81055],{},"    set_color yellow\n",[34,81057,81058],{"class":36,"line":275},[34,81059,81060],{},"    echo -n (prompt_pwd)\n",[34,81062,81063],{"class":36,"line":700},[34,81064,81026],{},[34,81066,81067],{"class":36,"line":706},[34,81068,81069],{},"    echo -n '> '\n",[34,81071,81072],{"class":36,"line":715},[34,81073,33222],{},[11,81075,12204],{"id":12948},[102,81077,81079],{"id":81078},"navigation","Navigation",[25,81081,81083],{"className":53759,"code":81082,"language":53755,"meta":30,"style":30},"# Change directory\ncd /path/to/directory\n\n# Go to home\ncd ~\n\n# Go to previous directory\ncd -\n\n# Push directory to stack\npushd /path/to/dir\n\n# Pop directory from stack\npopd\n\n# List directory stack\ndirs\n",[20,81084,81085,81090,81095,81099,81104,81109,81113,81118,81123,81127,81132,81137,81141,81146,81151,81155,81160],{"__ignoreMap":30},[34,81086,81087],{"class":36,"line":37},[34,81088,81089],{},"# Change directory\n",[34,81091,81092],{"class":36,"line":44},[34,81093,81094],{},"cd /path/to/directory\n",[34,81096,81097],{"class":36,"line":58},[34,81098,62],{"emptyLinePlaceholder":61},[34,81100,81101],{"class":36,"line":65},[34,81102,81103],{},"# Go to home\n",[34,81105,81106],{"class":36,"line":71},[34,81107,81108],{},"cd ~\n",[34,81110,81111],{"class":36,"line":77},[34,81112,62],{"emptyLinePlaceholder":61},[34,81114,81115],{"class":36,"line":82},[34,81116,81117],{},"# Go to previous directory\n",[34,81119,81120],{"class":36,"line":88},[34,81121,81122],{},"cd -\n",[34,81124,81125],{"class":36,"line":242},[34,81126,62],{"emptyLinePlaceholder":61},[34,81128,81129],{"class":36,"line":250},[34,81130,81131],{},"# Push directory to stack\n",[34,81133,81134],{"class":36,"line":263},[34,81135,81136],{},"pushd /path/to/dir\n",[34,81138,81139],{"class":36,"line":275},[34,81140,62],{"emptyLinePlaceholder":61},[34,81142,81143],{"class":36,"line":700},[34,81144,81145],{},"# Pop directory from stack\n",[34,81147,81148],{"class":36,"line":706},[34,81149,81150],{},"popd\n",[34,81152,81153],{"class":36,"line":715},[34,81154,62],{"emptyLinePlaceholder":61},[34,81156,81157],{"class":36,"line":725},[34,81158,81159],{},"# List directory stack\n",[34,81161,81162],{"class":36,"line":734},[34,81163,81164],{},"dirs\n",[102,81166,81168],{"id":81167},"file-operations","File Operations",[25,81170,81172],{"className":53759,"code":81171,"language":53755,"meta":30,"style":30},"# Copy files\ncp source.txt destination.txt\n\n# Move/rename files\nmv old.txt new.txt\n\n# Remove files\nrm file.txt\n\n# Remove directory recursively\nrm -rf directory/\n\n# Create directory\nmkdir new_folder\n\n# Create nested directories\nmkdir -p path/to/nested/folder\n\n# Find files\nfind . -name \"*.fish\"\n\n# Search file contents\ngrep \"pattern\" file.txt\n\n# Search recursively\ngrep -r \"pattern\" directory/\n",[20,81173,81174,81178,81183,81187,81192,81197,81201,81206,81211,81215,81220,81225,81229,81234,81239,81243,81248,81253,81257,81261,81266,81270,81275,81280,81284,81289],{"__ignoreMap":30},[34,81175,81176],{"class":36,"line":37},[34,81177,5292],{},[34,81179,81180],{"class":36,"line":44},[34,81181,81182],{},"cp source.txt destination.txt\n",[34,81184,81185],{"class":36,"line":58},[34,81186,62],{"emptyLinePlaceholder":61},[34,81188,81189],{"class":36,"line":65},[34,81190,81191],{},"# Move/rename files\n",[34,81193,81194],{"class":36,"line":71},[34,81195,81196],{},"mv old.txt new.txt\n",[34,81198,81199],{"class":36,"line":77},[34,81200,62],{"emptyLinePlaceholder":61},[34,81202,81203],{"class":36,"line":82},[34,81204,81205],{},"# Remove files\n",[34,81207,81208],{"class":36,"line":88},[34,81209,81210],{},"rm file.txt\n",[34,81212,81213],{"class":36,"line":242},[34,81214,62],{"emptyLinePlaceholder":61},[34,81216,81217],{"class":36,"line":250},[34,81218,81219],{},"# Remove directory recursively\n",[34,81221,81222],{"class":36,"line":263},[34,81223,81224],{},"rm -rf directory/\n",[34,81226,81227],{"class":36,"line":275},[34,81228,62],{"emptyLinePlaceholder":61},[34,81230,81231],{"class":36,"line":700},[34,81232,81233],{},"# Create directory\n",[34,81235,81236],{"class":36,"line":706},[34,81237,81238],{},"mkdir new_folder\n",[34,81240,81241],{"class":36,"line":715},[34,81242,62],{"emptyLinePlaceholder":61},[34,81244,81245],{"class":36,"line":725},[34,81246,81247],{},"# Create nested directories\n",[34,81249,81250],{"class":36,"line":734},[34,81251,81252],{},"mkdir -p path/to/nested/folder\n",[34,81254,81255],{"class":36,"line":742},[34,81256,62],{"emptyLinePlaceholder":61},[34,81258,81259],{"class":36,"line":748},[34,81260,12958],{},[34,81262,81263],{"class":36,"line":754},[34,81264,81265],{},"find . -name \"*.fish\"\n",[34,81267,81268],{"class":36,"line":759},[34,81269,62],{"emptyLinePlaceholder":61},[34,81271,81272],{"class":36,"line":771},[34,81273,81274],{},"# Search file contents\n",[34,81276,81277],{"class":36,"line":794},[34,81278,81279],{},"grep \"pattern\" file.txt\n",[34,81281,81282],{"class":36,"line":824},[34,81283,62],{"emptyLinePlaceholder":61},[34,81285,81286],{"class":36,"line":830},[34,81287,81288],{},"# Search recursively\n",[34,81290,81291],{"class":36,"line":839},[34,81292,81293],{},"grep -r \"pattern\" directory/\n",[102,81295,81297],{"id":81296},"math-operations","Math Operations",[25,81299,81301],{"className":53759,"code":81300,"language":53755,"meta":30,"style":30},"# Basic arithmetic\nmath 5 + 3        # 8\nmath 10 - 4       # 6\nmath 6 '*' 7      # 42 (quote * to prevent glob)\nmath 15 / 3       # 5\nmath 17 % 5       # 2 (modulo)\n\n# Floating point\nmath 10 / 3       # 3.333333\n\n# Power\nmath \"2 ^ 8\"      # 256\n\n# Using in variables\nset result (math $a + $b)\n\n# Increment variable\nset count (math $count + 1)\n",[20,81302,81303,81308,81313,81318,81323,81328,81333,81337,81342,81347,81351,81356,81361,81365,81370,81375,81379,81384],{"__ignoreMap":30},[34,81304,81305],{"class":36,"line":37},[34,81306,81307],{},"# Basic arithmetic\n",[34,81309,81310],{"class":36,"line":44},[34,81311,81312],{},"math 5 + 3        # 8\n",[34,81314,81315],{"class":36,"line":58},[34,81316,81317],{},"math 10 - 4       # 6\n",[34,81319,81320],{"class":36,"line":65},[34,81321,81322],{},"math 6 '*' 7      # 42 (quote * to prevent glob)\n",[34,81324,81325],{"class":36,"line":71},[34,81326,81327],{},"math 15 / 3       # 5\n",[34,81329,81330],{"class":36,"line":77},[34,81331,81332],{},"math 17 % 5       # 2 (modulo)\n",[34,81334,81335],{"class":36,"line":82},[34,81336,62],{"emptyLinePlaceholder":61},[34,81338,81339],{"class":36,"line":88},[34,81340,81341],{},"# Floating point\n",[34,81343,81344],{"class":36,"line":242},[34,81345,81346],{},"math 10 / 3       # 3.333333\n",[34,81348,81349],{"class":36,"line":250},[34,81350,62],{"emptyLinePlaceholder":61},[34,81352,81353],{"class":36,"line":263},[34,81354,81355],{},"# Power\n",[34,81357,81358],{"class":36,"line":275},[34,81359,81360],{},"math \"2 ^ 8\"      # 256\n",[34,81362,81363],{"class":36,"line":700},[34,81364,62],{"emptyLinePlaceholder":61},[34,81366,81367],{"class":36,"line":706},[34,81368,81369],{},"# Using in variables\n",[34,81371,81372],{"class":36,"line":715},[34,81373,81374],{},"set result (math $a + $b)\n",[34,81376,81377],{"class":36,"line":725},[34,81378,62],{"emptyLinePlaceholder":61},[34,81380,81381],{"class":36,"line":734},[34,81382,81383],{},"# Increment variable\n",[34,81385,81386],{"class":36,"line":742},[34,81387,81388],{},"set count (math $count + 1)\n",[11,81390,81392],{"id":81391},"event-handlers","Event Handlers",[25,81394,81396],{"className":53759,"code":81395,"language":53755,"meta":30,"style":30},"# Run when variable changes\nfunction on_pwd_change --on-variable PWD\n    echo \"Directory changed to $PWD\"\nend\n\n# Run on Fish exit\nfunction on_exit --on-event fish_exit\n    echo \"Goodbye!\"\nend\n\n# Run on prompt\nfunction before_prompt --on-event fish_prompt\n    # Do something before each prompt\nend\n",[20,81397,81398,81403,81408,81413,81417,81421,81426,81431,81436,81440,81444,81449,81454,81459],{"__ignoreMap":30},[34,81399,81400],{"class":36,"line":37},[34,81401,81402],{},"# Run when variable changes\n",[34,81404,81405],{"class":36,"line":44},[34,81406,81407],{},"function on_pwd_change --on-variable PWD\n",[34,81409,81410],{"class":36,"line":58},[34,81411,81412],{},"    echo \"Directory changed to $PWD\"\n",[34,81414,81415],{"class":36,"line":65},[34,81416,33222],{},[34,81418,81419],{"class":36,"line":71},[34,81420,62],{"emptyLinePlaceholder":61},[34,81422,81423],{"class":36,"line":77},[34,81424,81425],{},"# Run on Fish exit\n",[34,81427,81428],{"class":36,"line":82},[34,81429,81430],{},"function on_exit --on-event fish_exit\n",[34,81432,81433],{"class":36,"line":88},[34,81434,81435],{},"    echo \"Goodbye!\"\n",[34,81437,81438],{"class":36,"line":242},[34,81439,33222],{},[34,81441,81442],{"class":36,"line":250},[34,81443,62],{"emptyLinePlaceholder":61},[34,81445,81446],{"class":36,"line":263},[34,81447,81448],{},"# Run on prompt\n",[34,81450,81451],{"class":36,"line":275},[34,81452,81453],{},"function before_prompt --on-event fish_prompt\n",[34,81455,81456],{"class":36,"line":700},[34,81457,81458],{},"    # Do something before each prompt\n",[34,81460,81461],{"class":36,"line":706},[34,81462,33222],{},[11,81464,81466],{"id":81465},"completions","Completions",[25,81468,81470],{"className":53759,"code":81469,"language":53755,"meta":30,"style":30},"# Define custom completion\ncomplete -c mycommand -s h -l help -d \"Show help\"\ncomplete -c mycommand -s v -l version -d \"Show version\"\ncomplete -c mycommand -s o -l output -r -d \"Output file\"\n\n# File completion\ncomplete -c mycommand -a '(__fish_complete_path)'\n\n# Disable file completion\ncomplete -c mycommand -f\n",[20,81471,81472,81477,81482,81487,81492,81496,81501,81506,81510,81515],{"__ignoreMap":30},[34,81473,81474],{"class":36,"line":37},[34,81475,81476],{},"# Define custom completion\n",[34,81478,81479],{"class":36,"line":44},[34,81480,81481],{},"complete -c mycommand -s h -l help -d \"Show help\"\n",[34,81483,81484],{"class":36,"line":58},[34,81485,81486],{},"complete -c mycommand -s v -l version -d \"Show version\"\n",[34,81488,81489],{"class":36,"line":65},[34,81490,81491],{},"complete -c mycommand -s o -l output -r -d \"Output file\"\n",[34,81493,81494],{"class":36,"line":71},[34,81495,62],{"emptyLinePlaceholder":61},[34,81497,81498],{"class":36,"line":77},[34,81499,81500],{},"# File completion\n",[34,81502,81503],{"class":36,"line":82},[34,81504,81505],{},"complete -c mycommand -a '(__fish_complete_path)'\n",[34,81507,81508],{"class":36,"line":88},[34,81509,62],{"emptyLinePlaceholder":61},[34,81511,81512],{"class":36,"line":242},[34,81513,81514],{},"# Disable file completion\n",[34,81516,81517],{"class":36,"line":250},[34,81518,81519],{},"complete -c mycommand -f\n",[388,81521,81522],{},"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 pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":81524},[81525,81531,81536,81541,81546,81552,81557,81558,81562,81565,81569,81570,81571,81572,81577,81582,81583],{"id":96,"depth":44,"text":97,"children":81526},[81527,81528,81529,81530],{"id":53545,"depth":58,"text":53546},{"id":5588,"depth":58,"text":78133},{"id":78230,"depth":58,"text":78231},{"id":55966,"depth":58,"text":57643},{"id":78314,"depth":44,"text":78315,"children":81532},[81533,81534,81535],{"id":78318,"depth":58,"text":78319},{"id":78446,"depth":58,"text":78447},{"id":78507,"depth":58,"text":78508},{"id":13314,"depth":44,"text":12166,"children":81537},[81538,81539,81540],{"id":78551,"depth":58,"text":78552},{"id":78664,"depth":58,"text":78665},{"id":78744,"depth":58,"text":78745},{"id":10996,"depth":44,"text":10991,"children":81542},[81543,81544,81545],{"id":78779,"depth":58,"text":78780},{"id":78904,"depth":58,"text":78905},{"id":79021,"depth":58,"text":79022},{"id":10368,"depth":44,"text":10363,"children":81547},[81548,81549,81550,81551],{"id":79098,"depth":58,"text":79099},{"id":79223,"depth":58,"text":79224},{"id":79492,"depth":58,"text":79493},{"id":27510,"depth":58,"text":27189},{"id":11774,"depth":44,"text":11769,"children":81553},[81554,81555,81556],{"id":79708,"depth":58,"text":79709},{"id":79832,"depth":58,"text":79833},{"id":79922,"depth":58,"text":79923},{"id":79998,"depth":44,"text":79999},{"id":12636,"depth":44,"text":12188,"children":81559},[81560,81561],{"id":80079,"depth":58,"text":80080},{"id":80174,"depth":58,"text":80175},{"id":80306,"depth":44,"text":61448,"children":81563},[81564],{"id":80309,"depth":58,"text":80310},{"id":11209,"depth":44,"text":11204,"children":81566},[81567,81568],{"id":80451,"depth":58,"text":80452},{"id":80533,"depth":58,"text":799},{"id":80606,"depth":44,"text":80607},{"id":80694,"depth":44,"text":80695},{"id":14661,"depth":44,"text":14656},{"id":558,"depth":44,"text":8686,"children":81573},[81574,81575,81576],{"id":80859,"depth":58,"text":80860},{"id":80938,"depth":58,"text":80939},{"id":80995,"depth":58,"text":80996},{"id":12948,"depth":44,"text":12204,"children":81578},[81579,81580,81581],{"id":81078,"depth":58,"text":81079},{"id":81167,"depth":58,"text":81168},{"id":81296,"depth":58,"text":81297},{"id":81391,"depth":44,"text":81392},{"id":81465,"depth":44,"text":81466},"2025-02-18","Essential Fish shell syntax, commands, and scripting techniques",{"category":411,"featured":65586,"icon":81587},"\u003Csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\u003Cpath d=\"M6.5 12c.94-3.46 4.94-6 9.5-6 3.56 0 6.06 2.54 7 6-.94 3.46-4.94 6-9.5 6-3.56 0-6.06-2.54-7-6z\">\u003C/path>\u003Cpath d=\"M6.5 12H3m13-4l2-2m0 8l-2-2\">\u003C/path>\u003C/svg>","/examples/fish",{"title":78068,"description":81585},"examples/fish",[53755,10358,411,10359],"EZMYIyTtj4Upnu1NBthvsOGRcEbAhUb8KIz4_pkmj-U",{"id":81594,"title":81595,"body":81596,"date":402,"description":81817,"extension":404,"meta":81818,"navigation":61,"order":402,"path":81820,"seo":81821,"stem":81822,"subject":81595,"tags":402,"__hash__":81823},"topics/examples/flask.md","Flask",{"type":8,"value":81597,"toc":81809},[81598,81602,81605,81683,81687,81711,81713,81717,81720,81792,81795,81802,81804,81806],[11,81599,81601],{"id":81600},"basic-flask-application","Basic Flask Application",[16,81603,81604],{},"A simple \"Hello, World!\" example:",[25,81606,81608],{"className":49386,"code":81607,"language":49388,"meta":30,"style":30},"from flask import Flask\n\napp = Flask(__name__)\n\n@app.route(\"/\")\ndef hello_world():\n    return \"\u003Cp>Hello, World!\u003C/p>\"\n\n# Run the application: flask --app \u003Cyour_script>.py run\n",[20,81609,81610,81622,81626,81641,81645,81657,81667,81674,81678],{"__ignoreMap":30},[34,81611,81612,81614,81617,81619],{"class":36,"line":37},[34,81613,587],{"class":580},[34,81615,81616],{"class":181}," flask ",[34,81618,581],{"class":580},[34,81620,81621],{"class":181}," Flask\n",[34,81623,81624],{"class":36,"line":44},[34,81625,62],{"emptyLinePlaceholder":61},[34,81627,81628,81631,81633,81636,81639],{"class":36,"line":58},[34,81629,81630],{"class":181},"app ",[34,81632,1301],{"class":580},[34,81634,81635],{"class":181}," Flask(",[34,81637,81638],{"class":50},"__name__",[34,81640,3372],{"class":181},[34,81642,81643],{"class":36,"line":65},[34,81644,62],{"emptyLinePlaceholder":61},[34,81646,81647,81650,81652,81655],{"class":36,"line":71},[34,81648,81649],{"class":47},"@app.route",[34,81651,1607],{"class":181},[34,81653,81654],{"class":54},"\"/\"",[34,81656,3372],{"class":181},[34,81658,81659,81661,81664],{"class":36,"line":77},[34,81660,49400],{"class":580},[34,81662,81663],{"class":47}," hello_world",[34,81665,81666],{"class":181},"():\n",[34,81668,81669,81671],{"class":36,"line":82},[34,81670,1564],{"class":580},[34,81672,81673],{"class":54}," \"\u003Cp>Hello, World!\u003C/p>\"\n",[34,81675,81676],{"class":36,"line":88},[34,81677,62],{"emptyLinePlaceholder":61},[34,81679,81680],{"class":36,"line":242},[34,81681,81682],{"class":40},"# Run the application: flask --app \u003Cyour_script>.py run\n",[102,81684,81686],{"id":81685},"explanation","Explanation:",[28799,81688,81689,81695,81698,81704],{},[312,81690,81691,81692,81694],{},"Import the ",[20,81693,81595],{}," class.",[312,81696,81697],{},"Create the application instance.",[312,81699,81700,81701,81703],{},"Define a route using ",[20,81702,81649],{},". The function executes upon visiting the route.",[312,81705,81706,81707,81710],{},"Run the ",[20,81708,81709],{},"flask run"," command in the terminal, pointing to this file.",[7979,81712],{},[11,81714,81716],{"id":81715},"dynamic-routes","Dynamic Routes",[16,81718,81719],{},"Enable dynamic inputs in routes:",[25,81721,81723],{"className":49386,"code":81722,"language":49388,"meta":30,"style":30},"from flask import Flask\n\napp = Flask(__name__)\n\n@app.route(\"/user/\u003Cstring:username>\")\ndef greet_user(username):\n    return f\"Hello, {username}!\"\n",[20,81724,81725,81735,81739,81751,81755,81766,81776],{"__ignoreMap":30},[34,81726,81727,81729,81731,81733],{"class":36,"line":37},[34,81728,587],{"class":580},[34,81730,81616],{"class":181},[34,81732,581],{"class":580},[34,81734,81621],{"class":181},[34,81736,81737],{"class":36,"line":44},[34,81738,62],{"emptyLinePlaceholder":61},[34,81740,81741,81743,81745,81747,81749],{"class":36,"line":58},[34,81742,81630],{"class":181},[34,81744,1301],{"class":580},[34,81746,81635],{"class":181},[34,81748,81638],{"class":50},[34,81750,3372],{"class":181},[34,81752,81753],{"class":36,"line":65},[34,81754,62],{"emptyLinePlaceholder":61},[34,81756,81757,81759,81761,81764],{"class":36,"line":71},[34,81758,81649],{"class":47},[34,81760,1607],{"class":181},[34,81762,81763],{"class":54},"\"/user/\u003Cstring:username>\"",[34,81765,3372],{"class":181},[34,81767,81768,81770,81773],{"class":36,"line":77},[34,81769,49400],{"class":580},[34,81771,81772],{"class":47}," greet_user",[34,81774,81775],{"class":181},"(username):\n",[34,81777,81778,81780,81782,81784,81786,81788,81790],{"class":36,"line":82},[34,81779,1564],{"class":580},[34,81781,12984],{"class":580},[34,81783,21921],{"class":54},[34,81785,13990],{"class":50},[34,81787,72596],{"class":181},[34,81789,34378],{"class":50},[34,81791,11026],{"class":54},[102,81793,81794],{"id":13602},"Example usage:",[16,81796,81797,81798,81801],{},"visting ",[20,81799,81800],{},"/user/Alice"," shows \"Hello, Alice!\"",[7979,81803],{},[16,81805,34378],{},[388,81807,81808],{},"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 .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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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":30,"searchDepth":44,"depth":44,"links":81810},[81811,81814],{"id":81600,"depth":44,"text":81601,"children":81812},[81813],{"id":81685,"depth":58,"text":81686},{"id":81715,"depth":44,"text":81716,"children":81815},[81816],{"id":13602,"depth":58,"text":81794},"Concise, well-commented Flask examples covering application routes, debugging, and more.",{"source":81819},"https://flask.palletsprojects.com","/examples/flask",{"title":81595,"description":81817},"examples/flask","e81mD-3jTS0i5-f2C-xAkrMHZSjDl5ly_VgnImKcci4",{"id":81825,"title":81826,"body":81827,"date":65583,"description":82992,"extension":404,"meta":82993,"navigation":61,"order":402,"path":82995,"seo":82996,"stem":82997,"subject":402,"tags":82998,"__hash__":83001},"topics/examples/fnm.md","fnm",{"type":8,"value":81828,"toc":82976},[81829,81833,82004,82006,82082,82086,82196,82200,82282,82286,82341,82345,82439,82443,82498,82502,82525,82529,82566,82570,82623,82627,82748,82750,82844,82848,82935,82939,82973],[11,81830,81832],{"id":81831},"commands-reference","Commands Reference",[14308,81834,81835,81846],{},[14311,81836,81837],{},[14314,81838,81839,81841,81844],{},[14317,81840,73271],{},[14317,81842,81843],{},"Alias",[14317,81845,44278],{},[14326,81847,81848,81863,81875,81890,81905,81917,81929,81941,81953,81968,81980,81992],{},[14314,81849,81850,81855,81860],{},[14331,81851,81852],{},[20,81853,81854],{},"fnm install [version]",[14331,81856,81857],{},[20,81858,81859],{},"fnm i",[14331,81861,81862],{},"Install a Node.js version",[14314,81864,81865,81870,81872],{},[14331,81866,81867],{},[20,81868,81869],{},"fnm use [version]",[14331,81871],{},[14331,81873,81874],{},"Switch to a Node.js version",[14314,81876,81877,81882,81887],{},[14331,81878,81879],{},[20,81880,81881],{},"fnm list",[14331,81883,81884],{},[20,81885,81886],{},"fnm ls",[14331,81888,81889],{},"List locally installed versions",[14314,81891,81892,81897,81902],{},[14331,81893,81894],{},[20,81895,81896],{},"fnm list-remote",[14331,81898,81899],{},[20,81900,81901],{},"fnm ls-remote",[14331,81903,81904],{},"List all available remote versions",[14314,81906,81907,81912,81914],{},[14331,81908,81909],{},[20,81910,81911],{},"fnm current",[14331,81913],{},[14331,81915,81916],{},"Print the active Node.js version",[14314,81918,81919,81924,81926],{},[14331,81920,81921],{},[20,81922,81923],{},"fnm default [version]",[14331,81925],{},[14331,81927,81928],{},"Set or get the default version",[14314,81930,81931,81936,81938],{},[14331,81932,81933],{},[20,81934,81935],{},"fnm alias \u003Cversion> \u003Cname>",[14331,81937],{},[14331,81939,81940],{},"Create a named alias for a version",[14314,81942,81943,81948,81950],{},[14331,81944,81945],{},[20,81946,81947],{},"fnm unalias \u003Cname>",[14331,81949],{},[14331,81951,81952],{},"Remove a named alias",[14314,81954,81955,81960,81965],{},[14331,81956,81957],{},[20,81958,81959],{},"fnm uninstall [version]",[14331,81961,81962],{},[20,81963,81964],{},"fnm uni",[14331,81966,81967],{},"Uninstall a Node.js version",[14314,81969,81970,81975,81977],{},[14331,81971,81972],{},[20,81973,81974],{},"fnm exec [args...]",[14331,81976],{},[14331,81978,81979],{},"Run a command inside a specific Node.js context",[14314,81981,81982,81987,81989],{},[14331,81983,81984],{},[20,81985,81986],{},"fnm env",[14331,81988],{},[14331,81990,81991],{},"Print shell environment setup for fnm",[14314,81993,81994,81999,82001],{},[14331,81995,81996],{},[20,81997,81998],{},"fnm completions",[14331,82000],{},[14331,82002,82003],{},"Print shell completions to stdout",[11,82005,97],{"id":96},[25,82007,82009],{"className":27,"code":82008,"language":29,"meta":30,"style":30},"# macOS / Linux via curl\ncurl -fsSL https://fnm.vercel.app/install | bash\n\n# macOS via Homebrew\nbrew install fnm\n\n# Windows via winget\nwinget install Schniz.fnm\n\n# Windows via Chocolatey\nchoco install fnm\n",[20,82010,82011,82016,82029,82033,82038,82047,82051,82056,82065,82069,82074],{"__ignoreMap":30},[34,82012,82013],{"class":36,"line":37},[34,82014,82015],{"class":40},"# macOS / Linux via curl\n",[34,82017,82018,82020,82022,82025,82027],{"class":36,"line":44},[34,82019,8648],{"class":47},[34,82021,15806],{"class":50},[34,82023,82024],{"class":54}," https://fnm.vercel.app/install",[34,82026,7197],{"class":580},[34,82028,9346],{"class":47},[34,82030,82031],{"class":36,"line":58},[34,82032,62],{"emptyLinePlaceholder":61},[34,82034,82035],{"class":36,"line":65},[34,82036,82037],{"class":40},"# macOS via Homebrew\n",[34,82039,82040,82042,82044],{"class":36,"line":71},[34,82041,115],{"class":47},[34,82043,118],{"class":54},[34,82045,82046],{"class":54}," fnm\n",[34,82048,82049],{"class":36,"line":77},[34,82050,62],{"emptyLinePlaceholder":61},[34,82052,82053],{"class":36,"line":82},[34,82054,82055],{"class":40},"# Windows via winget\n",[34,82057,82058,82060,82062],{"class":36,"line":88},[34,82059,78283],{"class":47},[34,82061,118],{"class":54},[34,82063,82064],{"class":54}," Schniz.fnm\n",[34,82066,82067],{"class":36,"line":242},[34,82068,62],{"emptyLinePlaceholder":61},[34,82070,82071],{"class":36,"line":250},[34,82072,82073],{"class":40},"# Windows via Chocolatey\n",[34,82075,82076,82078,82080],{"class":36,"line":263},[34,82077,78265],{"class":47},[34,82079,118],{"class":54},[34,82081,82046],{"class":54},[11,82083,82085],{"id":82084},"shell-setup","Shell Setup",[25,82087,82089],{"className":27,"code":82088,"language":29,"meta":30,"style":30},"# Bash — add to ~/.bashrc\neval \"$(fnm env --use-on-cd --version-file-strategy=recursive)\"\n\n# Zsh — add to ~/.zshrc\neval \"$(fnm env --use-on-cd --version-file-strategy=recursive)\"\n\n# Fish — add to ~/.config/fish/config.fish\nfnm env --use-on-cd --version-file-strategy=recursive | source\n\n# PowerShell — add to $PROFILE\nfnm env --use-on-cd --version-file-strategy=recursive | Out-String | Invoke-Expression\n",[20,82090,82091,82096,82116,82120,82125,82141,82145,82150,82167,82171,82176],{"__ignoreMap":30},[34,82092,82093],{"class":36,"line":37},[34,82094,82095],{"class":40},"# Bash — add to ~/.bashrc\n",[34,82097,82098,82100,82102,82104,82107,82110,82113],{"class":36,"line":44},[34,82099,53725],{"class":50},[34,82101,29582],{"class":54},[34,82103,81826],{"class":47},[34,82105,82106],{"class":54}," env ",[34,82108,82109],{"class":50},"--use-on-cd",[34,82111,82112],{"class":50}," --version-file-strategy=recursive",[34,82114,82115],{"class":54},")\"\n",[34,82117,82118],{"class":36,"line":58},[34,82119,62],{"emptyLinePlaceholder":61},[34,82121,82122],{"class":36,"line":65},[34,82123,82124],{"class":40},"# Zsh — add to ~/.zshrc\n",[34,82126,82127,82129,82131,82133,82135,82137,82139],{"class":36,"line":71},[34,82128,53725],{"class":50},[34,82130,29582],{"class":54},[34,82132,81826],{"class":47},[34,82134,82106],{"class":54},[34,82136,82109],{"class":50},[34,82138,82112],{"class":50},[34,82140,82115],{"class":54},[34,82142,82143],{"class":36,"line":77},[34,82144,62],{"emptyLinePlaceholder":61},[34,82146,82147],{"class":36,"line":82},[34,82148,82149],{"class":40},"# Fish — add to ~/.config/fish/config.fish\n",[34,82151,82152,82154,82157,82160,82162,82164],{"class":36,"line":88},[34,82153,81826],{"class":47},[34,82155,82156],{"class":54}," env",[34,82158,82159],{"class":50}," --use-on-cd",[34,82161,82112],{"class":50},[34,82163,7197],{"class":580},[34,82165,82166],{"class":50}," source\n",[34,82168,82169],{"class":36,"line":242},[34,82170,62],{"emptyLinePlaceholder":61},[34,82172,82173],{"class":36,"line":250},[34,82174,82175],{"class":40},"# PowerShell — add to $PROFILE\n",[34,82177,82178,82180,82182,82184,82186,82188,82191,82193],{"class":36,"line":263},[34,82179,81826],{"class":47},[34,82181,82156],{"class":54},[34,82183,82159],{"class":50},[34,82185,82112],{"class":50},[34,82187,7197],{"class":580},[34,82189,82190],{"class":47}," Out-String",[34,82192,7197],{"class":580},[34,82194,82195],{"class":47}," Invoke-Expression\n",[11,82197,82199],{"id":82198},"installing-nodejs","Installing Node.js",[25,82201,82203],{"className":27,"code":82202,"language":29,"meta":30,"style":30},"fnm install 20          # Install Node.js v20 (latest minor)\nfnm install 20.11.0     # Install exact version\nfnm install --lts       # Install latest LTS release\nfnm install --latest    # Install latest available version\nfnm install lts/iron    # Install by LTS codename\n\nfnm install 20 --use    # Install and switch to it immediately\n",[20,82204,82205,82216,82228,82240,82252,82264,82268],{"__ignoreMap":30},[34,82206,82207,82209,82211,82213],{"class":36,"line":37},[34,82208,81826],{"class":47},[34,82210,118],{"class":54},[34,82212,22419],{"class":50},[34,82214,82215],{"class":40},"          # Install Node.js v20 (latest minor)\n",[34,82217,82218,82220,82222,82225],{"class":36,"line":44},[34,82219,81826],{"class":47},[34,82221,118],{"class":54},[34,82223,82224],{"class":50}," 20.11.0",[34,82226,82227],{"class":40},"     # Install exact version\n",[34,82229,82230,82232,82234,82237],{"class":36,"line":58},[34,82231,81826],{"class":47},[34,82233,118],{"class":54},[34,82235,82236],{"class":50}," --lts",[34,82238,82239],{"class":40},"       # Install latest LTS release\n",[34,82241,82242,82244,82246,82249],{"class":36,"line":65},[34,82243,81826],{"class":47},[34,82245,118],{"class":54},[34,82247,82248],{"class":50}," --latest",[34,82250,82251],{"class":40},"    # Install latest available version\n",[34,82253,82254,82256,82258,82261],{"class":36,"line":71},[34,82255,81826],{"class":47},[34,82257,118],{"class":54},[34,82259,82260],{"class":54}," lts/iron",[34,82262,82263],{"class":40},"    # Install by LTS codename\n",[34,82265,82266],{"class":36,"line":77},[34,82267,62],{"emptyLinePlaceholder":61},[34,82269,82270,82272,82274,82276,82279],{"class":36,"line":82},[34,82271,81826],{"class":47},[34,82273,118],{"class":54},[34,82275,22419],{"class":50},[34,82277,82278],{"class":50}," --use",[34,82280,82281],{"class":40},"    # Install and switch to it immediately\n",[11,82283,82285],{"id":82284},"switching-versions","Switching Versions",[25,82287,82289],{"className":27,"code":82288,"language":29,"meta":30,"style":30},"fnm use 20              # Switch to Node.js v20\nfnm use 18.12.0         # Switch to exact version\nfnm use lts/hydrogen    # Switch to LTS codename\nfnm use --install-if-missing 22  # Install first if not present\n",[20,82290,82291,82302,82314,82326],{"__ignoreMap":30},[34,82292,82293,82295,82297,82299],{"class":36,"line":37},[34,82294,81826],{"class":47},[34,82296,49111],{"class":54},[34,82298,22419],{"class":50},[34,82300,82301],{"class":40},"              # Switch to Node.js v20\n",[34,82303,82304,82306,82308,82311],{"class":36,"line":44},[34,82305,81826],{"class":47},[34,82307,49111],{"class":54},[34,82309,82310],{"class":50}," 18.12.0",[34,82312,82313],{"class":40},"         # Switch to exact version\n",[34,82315,82316,82318,82320,82323],{"class":36,"line":58},[34,82317,81826],{"class":47},[34,82319,49111],{"class":54},[34,82321,82322],{"class":54}," lts/hydrogen",[34,82324,82325],{"class":40},"    # Switch to LTS codename\n",[34,82327,82328,82330,82332,82335,82338],{"class":36,"line":65},[34,82329,81826],{"class":47},[34,82331,49111],{"class":54},[34,82333,82334],{"class":50}," --install-if-missing",[34,82336,82337],{"class":50}," 22",[34,82339,82340],{"class":40},"  # Install first if not present\n",[11,82342,82344],{"id":82343},"listing-versions","Listing Versions",[25,82346,82348],{"className":27,"code":82347,"language":29,"meta":30,"style":30},"fnm list                # List locally installed versions\nfnm ls                  # Alias for list\n\nfnm list-remote         # List all available remote versions\nfnm ls-remote           # Alias for list-remote\nfnm ls-remote --lts     # Show only LTS versions\nfnm ls-remote --filter 20  # Filter by version\nfnm ls-remote --latest  # Show only the latest matching version\nfnm ls-remote --sort=desc  # Sort from latest to earliest\n",[20,82349,82350,82359,82368,82372,82382,82392,82403,82416,82427],{"__ignoreMap":30},[34,82351,82352,82354,82356],{"class":36,"line":37},[34,82353,81826],{"class":47},[34,82355,6345],{"class":54},[34,82357,82358],{"class":40},"                # List locally installed versions\n",[34,82360,82361,82363,82365],{"class":36,"line":44},[34,82362,81826],{"class":47},[34,82364,8764],{"class":54},[34,82366,82367],{"class":40},"                  # Alias for list\n",[34,82369,82370],{"class":36,"line":58},[34,82371,62],{"emptyLinePlaceholder":61},[34,82373,82374,82376,82379],{"class":36,"line":65},[34,82375,81826],{"class":47},[34,82377,82378],{"class":54}," list-remote",[34,82380,82381],{"class":40},"         # List all available remote versions\n",[34,82383,82384,82386,82389],{"class":36,"line":71},[34,82385,81826],{"class":47},[34,82387,82388],{"class":54}," ls-remote",[34,82390,82391],{"class":40},"           # Alias for list-remote\n",[34,82393,82394,82396,82398,82400],{"class":36,"line":77},[34,82395,81826],{"class":47},[34,82397,82388],{"class":54},[34,82399,82236],{"class":50},[34,82401,82402],{"class":40},"     # Show only LTS versions\n",[34,82404,82405,82407,82409,82411,82413],{"class":36,"line":82},[34,82406,81826],{"class":47},[34,82408,82388],{"class":54},[34,82410,57840],{"class":50},[34,82412,22419],{"class":50},[34,82414,82415],{"class":40},"  # Filter by version\n",[34,82417,82418,82420,82422,82424],{"class":36,"line":88},[34,82419,81826],{"class":47},[34,82421,82388],{"class":54},[34,82423,82248],{"class":50},[34,82425,82426],{"class":40},"  # Show only the latest matching version\n",[34,82428,82429,82431,82433,82436],{"class":36,"line":242},[34,82430,81826],{"class":47},[34,82432,82388],{"class":54},[34,82434,82435],{"class":50}," --sort=desc",[34,82437,82438],{"class":40},"  # Sort from latest to earliest\n",[11,82440,82442],{"id":82441},"aliases-defaults","Aliases & Defaults",[25,82444,82446],{"className":27,"code":82445,"language":29,"meta":30,"style":30},"fnm alias 20.11.0 myalias    # Create alias for a version\nfnm unalias myalias           # Remove an alias\n\nfnm default 20               # Set v20 as the default version\nfnm default                  # Print current default version\n",[20,82447,82448,82462,82474,82478,82489],{"__ignoreMap":30},[34,82449,82450,82452,82454,82456,82459],{"class":36,"line":37},[34,82451,81826],{"class":47},[34,82453,49129],{"class":54},[34,82455,82224],{"class":50},[34,82457,82458],{"class":54}," myalias",[34,82460,82461],{"class":40},"    # Create alias for a version\n",[34,82463,82464,82466,82469,82471],{"class":36,"line":44},[34,82465,81826],{"class":47},[34,82467,82468],{"class":54}," unalias",[34,82470,82458],{"class":54},[34,82472,82473],{"class":40},"           # Remove an alias\n",[34,82475,82476],{"class":36,"line":58},[34,82477,62],{"emptyLinePlaceholder":61},[34,82479,82480,82482,82484,82486],{"class":36,"line":65},[34,82481,81826],{"class":47},[34,82483,7298],{"class":54},[34,82485,22419],{"class":50},[34,82487,82488],{"class":40},"               # Set v20 as the default version\n",[34,82490,82491,82493,82495],{"class":36,"line":71},[34,82492,81826],{"class":47},[34,82494,7298],{"class":54},[34,82496,82497],{"class":40},"                  # Print current default version\n",[11,82499,82501],{"id":82500},"current-version","Current Version",[25,82503,82505],{"className":27,"code":82504,"language":29,"meta":30,"style":30},"fnm current             # Print the active Node.js version\nnode --version          # Confirm via node itself\n",[20,82506,82507,82516],{"__ignoreMap":30},[34,82508,82509,82511,82513],{"class":36,"line":37},[34,82510,81826],{"class":47},[34,82512,65809],{"class":54},[34,82514,82515],{"class":40},"             # Print the active Node.js version\n",[34,82517,82518,82520,82522],{"class":36,"line":44},[34,82519,16004],{"class":47},[34,82521,17717],{"class":50},[34,82523,82524],{"class":40},"          # Confirm via node itself\n",[11,82526,82528],{"id":82527},"run-command-in-version-context","Run Command in Version Context",[25,82530,82532],{"className":27,"code":82531,"language":29,"meta":30,"style":30},"fnm exec --using=18 node --version   # Run node v18 without switching\nfnm exec --using=20 npm install      # Run npm with a specific Node version\n",[20,82533,82534,82550],{"__ignoreMap":30},[34,82535,82536,82538,82540,82543,82545,82547],{"class":36,"line":37},[34,82537,81826],{"class":47},[34,82539,55938],{"class":54},[34,82541,82542],{"class":50}," --using=18",[34,82544,52476],{"class":54},[34,82546,17717],{"class":50},[34,82548,82549],{"class":40},"   # Run node v18 without switching\n",[34,82551,82552,82554,82556,82559,82561,82563],{"class":36,"line":44},[34,82553,81826],{"class":47},[34,82555,55938],{"class":54},[34,82557,82558],{"class":50}," --using=20",[34,82560,55953],{"class":54},[34,82562,118],{"class":54},[34,82564,82565],{"class":40},"      # Run npm with a specific Node version\n",[11,82567,82569],{"id":82568},"auto-switching-with-version-files","Auto-Switching with Version Files",[25,82571,82573],{"className":27,"code":82572,"language":29,"meta":30,"style":30},"# fnm reads .node-version or .nvmrc automatically when --use-on-cd is set\necho \"20\" > .node-version    # Project requests Node v20\necho \"lts/iron\" > .nvmrc     # Or using LTS codename\n\ncd my-project                # fnm switches automatically on cd\n",[20,82574,82575,82580,82595,82610,82614],{"__ignoreMap":30},[34,82576,82577],{"class":36,"line":37},[34,82578,82579],{"class":40},"# fnm reads .node-version or .nvmrc automatically when --use-on-cd is set\n",[34,82581,82582,82584,82587,82589,82592],{"class":36,"line":44},[34,82583,10120],{"class":50},[34,82585,82586],{"class":54}," \"20\"",[34,82588,9009],{"class":580},[34,82590,82591],{"class":54}," .node-version",[34,82593,82594],{"class":40},"    # Project requests Node v20\n",[34,82596,82597,82599,82602,82604,82607],{"class":36,"line":58},[34,82598,10120],{"class":50},[34,82600,82601],{"class":54}," \"lts/iron\"",[34,82603,9009],{"class":580},[34,82605,82606],{"class":54}," .nvmrc",[34,82608,82609],{"class":40},"     # Or using LTS codename\n",[34,82611,82612],{"class":36,"line":65},[34,82613,62],{"emptyLinePlaceholder":61},[34,82615,82616,82618,82620],{"class":36,"line":71},[34,82617,7702],{"class":50},[34,82619,7636],{"class":54},[34,82621,82622],{"class":40},"                # fnm switches automatically on cd\n",[11,82624,82626],{"id":82625},"configuration-shell-flags","Configuration (Shell Flags)",[25,82628,82630],{"className":27,"code":82629,"language":29,"meta":30,"style":30},"# --use-on-cd: auto-switch version when changing directories (recommended)\neval \"$(fnm env --use-on-cd)\"\n\n# --version-file-strategy=recursive: search parent dirs for .node-version / .nvmrc (recommended)\neval \"$(fnm env --version-file-strategy=recursive)\"\n\n# --resolve-engines: use engines.node in package.json as version file (experimental)\neval \"$(fnm env --resolve-engines)\"\n\n# --corepack-enabled: run `corepack enable` on each new Node install (experimental)\neval \"$(fnm env --corepack-enabled)\"\n\n# Combine recommended flags\neval \"$(fnm env --use-on-cd --version-file-strategy=recursive)\"\n",[20,82631,82632,82637,82651,82655,82660,82675,82679,82684,82699,82703,82708,82723,82727,82732],{"__ignoreMap":30},[34,82633,82634],{"class":36,"line":37},[34,82635,82636],{"class":40},"# --use-on-cd: auto-switch version when changing directories (recommended)\n",[34,82638,82639,82641,82643,82645,82647,82649],{"class":36,"line":44},[34,82640,53725],{"class":50},[34,82642,29582],{"class":54},[34,82644,81826],{"class":47},[34,82646,82106],{"class":54},[34,82648,82109],{"class":50},[34,82650,82115],{"class":54},[34,82652,82653],{"class":36,"line":58},[34,82654,62],{"emptyLinePlaceholder":61},[34,82656,82657],{"class":36,"line":65},[34,82658,82659],{"class":40},"# --version-file-strategy=recursive: search parent dirs for .node-version / .nvmrc (recommended)\n",[34,82661,82662,82664,82666,82668,82670,82673],{"class":36,"line":71},[34,82663,53725],{"class":50},[34,82665,29582],{"class":54},[34,82667,81826],{"class":47},[34,82669,82106],{"class":54},[34,82671,82672],{"class":50},"--version-file-strategy=recursive",[34,82674,82115],{"class":54},[34,82676,82677],{"class":36,"line":77},[34,82678,62],{"emptyLinePlaceholder":61},[34,82680,82681],{"class":36,"line":82},[34,82682,82683],{"class":40},"# --resolve-engines: use engines.node in package.json as version file (experimental)\n",[34,82685,82686,82688,82690,82692,82694,82697],{"class":36,"line":88},[34,82687,53725],{"class":50},[34,82689,29582],{"class":54},[34,82691,81826],{"class":47},[34,82693,82106],{"class":54},[34,82695,82696],{"class":50},"--resolve-engines",[34,82698,82115],{"class":54},[34,82700,82701],{"class":36,"line":242},[34,82702,62],{"emptyLinePlaceholder":61},[34,82704,82705],{"class":36,"line":250},[34,82706,82707],{"class":40},"# --corepack-enabled: run `corepack enable` on each new Node install (experimental)\n",[34,82709,82710,82712,82714,82716,82718,82721],{"class":36,"line":263},[34,82711,53725],{"class":50},[34,82713,29582],{"class":54},[34,82715,81826],{"class":47},[34,82717,82106],{"class":54},[34,82719,82720],{"class":50},"--corepack-enabled",[34,82722,82115],{"class":54},[34,82724,82725],{"class":36,"line":275},[34,82726,62],{"emptyLinePlaceholder":61},[34,82728,82729],{"class":36,"line":700},[34,82730,82731],{"class":40},"# Combine recommended flags\n",[34,82733,82734,82736,82738,82740,82742,82744,82746],{"class":36,"line":706},[34,82735,53725],{"class":50},[34,82737,29582],{"class":54},[34,82739,81826],{"class":47},[34,82741,82106],{"class":54},[34,82743,82109],{"class":50},[34,82745,82112],{"class":50},[34,82747,82115],{"class":54},[11,82749,14656],{"id":14661},[25,82751,82753],{"className":27,"code":82752,"language":29,"meta":30,"style":30},"FNM_DIR=/path/to/dir          # Root directory for fnm installations\nFNM_NODE_DIST_MIRROR=https://npmmirror.com/mirrors/node  # Custom Node dist mirror\nFNM_LOGLEVEL=quiet            # Log level: quiet | error | info\nFNM_ARCH=x64                  # Override binary architecture\nFNM_VERSION_FILE_STRATEGY=recursive  # local | recursive\nFNM_COREPACK_ENABLED=true     # Enable corepack on install\nFNM_RESOLVE_ENGINES=true      # Use package.json engines.node\n",[20,82754,82755,82768,82781,82794,82807,82820,82832],{"__ignoreMap":30},[34,82756,82757,82760,82762,82765],{"class":36,"line":37},[34,82758,82759],{"class":181},"FNM_DIR",[34,82761,1301],{"class":580},[34,82763,82764],{"class":54},"/path/to/dir",[34,82766,82767],{"class":40},"          # Root directory for fnm installations\n",[34,82769,82770,82773,82775,82778],{"class":36,"line":44},[34,82771,82772],{"class":181},"FNM_NODE_DIST_MIRROR",[34,82774,1301],{"class":580},[34,82776,82777],{"class":54},"https://npmmirror.com/mirrors/node",[34,82779,82780],{"class":40},"  # Custom Node dist mirror\n",[34,82782,82783,82786,82788,82791],{"class":36,"line":58},[34,82784,82785],{"class":181},"FNM_LOGLEVEL",[34,82787,1301],{"class":580},[34,82789,82790],{"class":54},"quiet",[34,82792,82793],{"class":40},"            # Log level: quiet | error | info\n",[34,82795,82796,82799,82801,82804],{"class":36,"line":65},[34,82797,82798],{"class":181},"FNM_ARCH",[34,82800,1301],{"class":580},[34,82802,82803],{"class":54},"x64",[34,82805,82806],{"class":40},"                  # Override binary architecture\n",[34,82808,82809,82812,82814,82817],{"class":36,"line":71},[34,82810,82811],{"class":181},"FNM_VERSION_FILE_STRATEGY",[34,82813,1301],{"class":580},[34,82815,82816],{"class":54},"recursive",[34,82818,82819],{"class":40},"  # local | recursive\n",[34,82821,82822,82825,82827,82829],{"class":36,"line":77},[34,82823,82824],{"class":181},"FNM_COREPACK_ENABLED",[34,82826,1301],{"class":580},[34,82828,632],{"class":54},[34,82830,82831],{"class":40},"     # Enable corepack on install\n",[34,82833,82834,82837,82839,82841],{"class":36,"line":82},[34,82835,82836],{"class":181},"FNM_RESOLVE_ENGINES",[34,82838,1301],{"class":580},[34,82840,632],{"class":54},[34,82842,82843],{"class":40},"      # Use package.json engines.node\n",[11,82845,82847],{"id":82846},"shell-completions","Shell Completions",[25,82849,82851],{"className":27,"code":82850,"language":29,"meta":30,"style":30},"fnm completions --shell bash    # Generate Bash completions\nfnm completions --shell zsh     # Generate Zsh completions\nfnm completions --shell fish    # Generate Fish completions\nfnm completions --shell powershell  # Generate PowerShell completions\n\n# Install Zsh completions\nfnm completions --shell zsh > ~/.zfunc/_fnm\n",[20,82852,82853,82869,82883,82897,82911,82915,82920],{"__ignoreMap":30},[34,82854,82855,82857,82860,82863,82866],{"class":36,"line":37},[34,82856,81826],{"class":47},[34,82858,82859],{"class":54}," completions",[34,82861,82862],{"class":50}," --shell",[34,82864,82865],{"class":54}," bash",[34,82867,82868],{"class":40},"    # Generate Bash completions\n",[34,82870,82871,82873,82875,82877,82880],{"class":36,"line":44},[34,82872,81826],{"class":47},[34,82874,82859],{"class":54},[34,82876,82862],{"class":50},[34,82878,82879],{"class":54}," zsh",[34,82881,82882],{"class":40},"     # Generate Zsh completions\n",[34,82884,82885,82887,82889,82891,82894],{"class":36,"line":58},[34,82886,81826],{"class":47},[34,82888,82859],{"class":54},[34,82890,82862],{"class":50},[34,82892,82893],{"class":54}," fish",[34,82895,82896],{"class":40},"    # Generate Fish completions\n",[34,82898,82899,82901,82903,82905,82908],{"class":36,"line":65},[34,82900,81826],{"class":47},[34,82902,82859],{"class":54},[34,82904,82862],{"class":50},[34,82906,82907],{"class":54}," powershell",[34,82909,82910],{"class":40},"  # Generate PowerShell completions\n",[34,82912,82913],{"class":36,"line":71},[34,82914,62],{"emptyLinePlaceholder":61},[34,82916,82917],{"class":36,"line":77},[34,82918,82919],{"class":40},"# Install Zsh completions\n",[34,82921,82922,82924,82926,82928,82930,82932],{"class":36,"line":82},[34,82923,81826],{"class":47},[34,82925,82859],{"class":54},[34,82927,82862],{"class":50},[34,82929,82879],{"class":54},[34,82931,9009],{"class":580},[34,82933,82934],{"class":54}," ~/.zfunc/_fnm\n",[11,82936,82938],{"id":82937},"uninstalling-versions","Uninstalling Versions",[25,82940,82942],{"className":27,"code":82941,"language":29,"meta":30,"style":30},"fnm uninstall 18.12.0   # Remove a specific version\nfnm uni 16              # Alias for uninstall\n# Note: removing an alias target also removes all aliases pointing to it\n",[20,82943,82944,82955,82968],{"__ignoreMap":30},[34,82945,82946,82948,82950,82952],{"class":36,"line":37},[34,82947,81826],{"class":47},[34,82949,49149],{"class":54},[34,82951,82310],{"class":50},[34,82953,82954],{"class":40},"   # Remove a specific version\n",[34,82956,82957,82959,82962,82965],{"class":36,"line":44},[34,82958,81826],{"class":47},[34,82960,82961],{"class":54}," uni",[34,82963,82964],{"class":50}," 16",[34,82966,82967],{"class":40},"              # Alias for uninstall\n",[34,82969,82970],{"class":36,"line":58},[34,82971,82972],{"class":40},"# Note: removing an alias target also removes all aliases pointing to it\n",[388,82974,82975],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":30,"searchDepth":44,"depth":44,"links":82977},[82978,82979,82980,82981,82982,82983,82984,82985,82986,82987,82988,82989,82990,82991],{"id":81831,"depth":44,"text":81832},{"id":96,"depth":44,"text":97},{"id":82084,"depth":44,"text":82085},{"id":82198,"depth":44,"text":82199},{"id":82284,"depth":44,"text":82285},{"id":82343,"depth":44,"text":82344},{"id":82441,"depth":44,"text":82442},{"id":82500,"depth":44,"text":82501},{"id":82527,"depth":44,"text":82528},{"id":82568,"depth":44,"text":82569},{"id":82625,"depth":44,"text":82626},{"id":14661,"depth":44,"text":14656},{"id":82846,"depth":44,"text":82847},{"id":82937,"depth":44,"text":82938},"Fast Node Manager — install, switch, and manage Node.js versions from the command line.",{"category":411,"featured":65586,"icon":82994},"\u003Csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\u003Cpath d=\"M12 2L2 7l10 5 10-5-10-5z\">\u003C/path>\u003Cpath d=\"M2 17l10 5 10-5\">\u003C/path>\u003Cpath d=\"M2 12l10 5 10-5\">\u003C/path>\u003C/svg>","/examples/fnm",{"title":81826,"description":82992},"examples/fnm",[81826,16004,78040,82999,83000],"version-manager","nvm","WHqlAj5R_aLw0fo7ww6SOM4QBRIecIamgUn9KKfXEeo",{"id":83003,"title":83004,"body":83005,"date":402,"description":83011,"extension":404,"meta":83014,"navigation":61,"order":402,"path":83015,"seo":83016,"stem":83017,"subject":402,"tags":402,"__hash__":83018},"topics/examples/htmx.md","Htmx",{"type":8,"value":83006,"toc":83012},[83007,83009],[7979,83008],{},[16,83010,83011],{},"title: HTMX Framework\ncategory: frameworks\ndescription: Clear precise concourse Teather",{"title":30,"searchDepth":44,"depth":44,"links":83013},[],{},"/examples/htmx",{"title":83004,"description":83011},"examples/htmx","rpadoN2_9zI1hJSvtKCdxgkfYQjlI5AdaEbTpN82wzQ",{"id":83020,"title":83021,"body":83022,"date":2633,"description":85292,"extension":404,"meta":85293,"navigation":61,"order":402,"path":85296,"seo":85297,"stem":85298,"subject":402,"tags":85299,"__hash__":85303},"topics/examples/mongodb.md","MongoDB",{"type":8,"value":83023,"toc":85279},[83024,83028,83154,83158,83260,83263,83390,83394,83597,83601,83934,83937,84235,84238,84301,84305,84671,84675,84903,84907,85061,85065,85276],[11,83025,83027],{"id":83026},"connection","Connection",[25,83029,83031],{"className":27,"code":83030,"language":29,"meta":30,"style":30},"# Connect to local MongoDB\nmongosh\n\n# Connect to remote host\nmongosh \"mongodb://hostname:27017\"\n\n# Connect with authentication\nmongosh \"mongodb://username:password@hostname:27017/dbname\"\n\n# Connect to Atlas cluster\nmongosh \"mongodb+srv://username:password@cluster.mongodb.net/dbname\"\n\n# List all databases\nshow dbs\n\n# Switch/create database\nuse myDatabase\n\n# Show current database\ndb\n\n# Drop current database\ndb.dropDatabase()\n",[20,83032,83033,83038,83043,83047,83052,83060,83064,83069,83076,83080,83085,83092,83096,83101,83109,83113,83118,83125,83129,83134,83138,83142,83147],{"__ignoreMap":30},[34,83034,83035],{"class":36,"line":37},[34,83036,83037],{"class":40},"# Connect to local MongoDB\n",[34,83039,83040],{"class":36,"line":44},[34,83041,83042],{"class":47},"mongosh\n",[34,83044,83045],{"class":36,"line":58},[34,83046,62],{"emptyLinePlaceholder":61},[34,83048,83049],{"class":36,"line":65},[34,83050,83051],{"class":40},"# Connect to remote host\n",[34,83053,83054,83057],{"class":36,"line":71},[34,83055,83056],{"class":47},"mongosh",[34,83058,83059],{"class":54}," \"mongodb://hostname:27017\"\n",[34,83061,83062],{"class":36,"line":77},[34,83063,62],{"emptyLinePlaceholder":61},[34,83065,83066],{"class":36,"line":82},[34,83067,83068],{"class":40},"# Connect with authentication\n",[34,83070,83071,83073],{"class":36,"line":88},[34,83072,83056],{"class":47},[34,83074,83075],{"class":54}," \"mongodb://username:password@hostname:27017/dbname\"\n",[34,83077,83078],{"class":36,"line":242},[34,83079,62],{"emptyLinePlaceholder":61},[34,83081,83082],{"class":36,"line":250},[34,83083,83084],{"class":40},"# Connect to Atlas cluster\n",[34,83086,83087,83089],{"class":36,"line":263},[34,83088,83056],{"class":47},[34,83090,83091],{"class":54}," \"mongodb+srv://username:password@cluster.mongodb.net/dbname\"\n",[34,83093,83094],{"class":36,"line":275},[34,83095,62],{"emptyLinePlaceholder":61},[34,83097,83098],{"class":36,"line":700},[34,83099,83100],{"class":40},"# List all databases\n",[34,83102,83103,83106],{"class":36,"line":706},[34,83104,83105],{"class":47},"show",[34,83107,83108],{"class":54}," dbs\n",[34,83110,83111],{"class":36,"line":715},[34,83112,62],{"emptyLinePlaceholder":61},[34,83114,83115],{"class":36,"line":725},[34,83116,83117],{"class":40},"# Switch/create database\n",[34,83119,83120,83122],{"class":36,"line":734},[34,83121,61898],{"class":47},[34,83123,83124],{"class":54}," myDatabase\n",[34,83126,83127],{"class":36,"line":742},[34,83128,62],{"emptyLinePlaceholder":61},[34,83130,83131],{"class":36,"line":748},[34,83132,83133],{"class":40},"# Show current database\n",[34,83135,83136],{"class":36,"line":754},[34,83137,56459],{"class":47},[34,83139,83140],{"class":36,"line":759},[34,83141,62],{"emptyLinePlaceholder":61},[34,83143,83144],{"class":36,"line":771},[34,83145,83146],{"class":40},"# Drop current database\n",[34,83148,83149,83152],{"class":36,"line":794},[34,83150,83151],{"class":47},"db.dropDatabase",[34,83153,33899],{"class":181},[11,83155,83157],{"id":83156},"collections","Collections",[25,83159,83161],{"className":27,"code":83160,"language":29,"meta":30,"style":30},"# List collections in current database\nshow collections\n\n# Create collection explicitly\ndb.createCollection(\"users\")\n\n# Drop collection\ndb.users.drop()\n\n# Rename collection\ndb.users.renameCollection(\"customers\")\n\n# Get collection stats\ndb.users.stats()\n\n# Count documents in collection\ndb.users.countDocuments()\n",[20,83162,83163,83168,83175,83179,83184,83193,83197,83202,83209,83213,83218,83228,83232,83237,83244,83248,83253],{"__ignoreMap":30},[34,83164,83165],{"class":36,"line":37},[34,83166,83167],{"class":40},"# List collections in current database\n",[34,83169,83170,83172],{"class":36,"line":44},[34,83171,83105],{"class":47},[34,83173,83174],{"class":54}," collections\n",[34,83176,83177],{"class":36,"line":58},[34,83178,62],{"emptyLinePlaceholder":61},[34,83180,83181],{"class":36,"line":65},[34,83182,83183],{"class":40},"# Create collection explicitly\n",[34,83185,83186,83189,83191],{"class":36,"line":71},[34,83187,83188],{"class":47},"db.createCollection(",[34,83190,58467],{"class":47},[34,83192,3372],{"class":181},[34,83194,83195],{"class":36,"line":77},[34,83196,62],{"emptyLinePlaceholder":61},[34,83198,83199],{"class":36,"line":82},[34,83200,83201],{"class":40},"# Drop collection\n",[34,83203,83204,83207],{"class":36,"line":88},[34,83205,83206],{"class":47},"db.users.drop",[34,83208,33899],{"class":181},[34,83210,83211],{"class":36,"line":242},[34,83212,62],{"emptyLinePlaceholder":61},[34,83214,83215],{"class":36,"line":250},[34,83216,83217],{"class":40},"# Rename collection\n",[34,83219,83220,83223,83226],{"class":36,"line":263},[34,83221,83222],{"class":47},"db.users.renameCollection(",[34,83224,83225],{"class":47},"\"customers\"",[34,83227,3372],{"class":181},[34,83229,83230],{"class":36,"line":275},[34,83231,62],{"emptyLinePlaceholder":61},[34,83233,83234],{"class":36,"line":700},[34,83235,83236],{"class":40},"# Get collection stats\n",[34,83238,83239,83242],{"class":36,"line":706},[34,83240,83241],{"class":47},"db.users.stats",[34,83243,33899],{"class":181},[34,83245,83246],{"class":36,"line":715},[34,83247,62],{"emptyLinePlaceholder":61},[34,83249,83250],{"class":36,"line":725},[34,83251,83252],{"class":40},"# Count documents in collection\n",[34,83254,83255,83258],{"class":36,"line":734},[34,83256,83257],{"class":47},"db.users.countDocuments",[34,83259,33899],{"class":181},[11,83261,83262],{"id":30468},"Insert",[25,83264,83266],{"className":13845,"code":83265,"language":8606,"meta":30,"style":30},"// Insert a single document\ndb.users.insertOne({\n  name: \"Alice\",\n  age: 30,\n  email: \"alice@example.com\",\n  roles: [\"admin\", \"editor\"]\n})\n\n// Insert multiple documents\ndb.users.insertMany([\n  { name: \"Bob\", age: 25, email: \"bob@example.com\" },\n  { name: \"Carol\", age: 35, email: \"carol@example.com\" }\n])\n",[20,83267,83268,83273,83283,83291,83299,83309,83324,83328,83332,83337,83347,83367,83386],{"__ignoreMap":30},[34,83269,83270],{"class":36,"line":37},[34,83271,83272],{"class":40},"// Insert a single document\n",[34,83274,83275,83278,83281],{"class":36,"line":44},[34,83276,83277],{"class":181},"db.users.",[34,83279,83280],{"class":47},"insertOne",[34,83282,613],{"class":181},[34,83284,83285,83287,83289],{"class":36,"line":58},[34,83286,2830],{"class":181},[34,83288,21650],{"class":54},[34,83290,624],{"class":181},[34,83292,83293,83295,83297],{"class":36,"line":65},[34,83294,17622],{"class":181},[34,83296,17625],{"class":50},[34,83298,624],{"class":181},[34,83300,83301,83304,83307],{"class":36,"line":71},[34,83302,83303],{"class":181},"  email: ",[34,83305,83306],{"class":54},"\"alice@example.com\"",[34,83308,624],{"class":181},[34,83310,83311,83314,83317,83319,83322],{"class":36,"line":77},[34,83312,83313],{"class":181},"  roles: [",[34,83315,83316],{"class":54},"\"admin\"",[34,83318,1798],{"class":181},[34,83320,83321],{"class":54},"\"editor\"",[34,83323,924],{"class":181},[34,83325,83326],{"class":36,"line":82},[34,83327,647],{"class":181},[34,83329,83330],{"class":36,"line":88},[34,83331,62],{"emptyLinePlaceholder":61},[34,83333,83334],{"class":36,"line":242},[34,83335,83336],{"class":40},"// Insert multiple documents\n",[34,83338,83339,83341,83344],{"class":36,"line":250},[34,83340,83277],{"class":181},[34,83342,83343],{"class":47},"insertMany",[34,83345,83346],{"class":181},"([\n",[34,83348,83349,83352,83354,83357,83359,83362,83365],{"class":36,"line":263},[34,83350,83351],{"class":181},"  { name: ",[34,83353,30344],{"class":54},[34,83355,83356],{"class":181},", age: ",[34,83358,24546],{"class":50},[34,83360,83361],{"class":181},", email: ",[34,83363,83364],{"class":54},"\"bob@example.com\"",[34,83366,14846],{"class":181},[34,83368,83369,83371,83374,83376,83379,83381,83384],{"class":36,"line":275},[34,83370,83351],{"class":181},[34,83372,83373],{"class":54},"\"Carol\"",[34,83375,83356],{"class":181},[34,83377,83378],{"class":50},"35",[34,83380,83361],{"class":181},[34,83382,83383],{"class":54},"\"carol@example.com\"",[34,83385,52786],{"class":181},[34,83387,83388],{"class":36,"line":700},[34,83389,51547],{"class":181},[11,83391,83393],{"id":83392},"find-query","Find (Query)",[25,83395,83397],{"className":13845,"code":83396,"language":8606,"meta":30,"style":30},"// Find all documents\ndb.users.find()\n\n// Find with filter\ndb.users.find({ age: 30 })\n\n// Find one document\ndb.users.findOne({ name: \"Alice\" })\n\n// Projection — include specific fields (1=include, 0=exclude)\ndb.users.find({}, { name: 1, email: 1, _id: 0 })\n\n// Limit results\ndb.users.find().limit(10)\n\n// Skip documents (pagination)\ndb.users.find().skip(20).limit(10)\n\n// Sort results (1=ascending, -1=descending)\ndb.users.find().sort({ age: -1 })\n\n// Count matching documents\ndb.users.countDocuments({ age: { $gte: 18 } })\n",[20,83398,83399,83404,83412,83416,83421,83433,83437,83442,83455,83459,83464,83486,83490,83495,83511,83515,83520,83545,83549,83554,83572,83576,83581],{"__ignoreMap":30},[34,83400,83401],{"class":36,"line":37},[34,83402,83403],{"class":40},"// Find all documents\n",[34,83405,83406,83408,83410],{"class":36,"line":44},[34,83407,83277],{"class":181},[34,83409,12963],{"class":47},[34,83411,33899],{"class":181},[34,83413,83414],{"class":36,"line":58},[34,83415,62],{"emptyLinePlaceholder":61},[34,83417,83418],{"class":36,"line":65},[34,83419,83420],{"class":40},"// Find with filter\n",[34,83422,83423,83425,83427,83429,83431],{"class":36,"line":71},[34,83424,83277],{"class":181},[34,83426,12963],{"class":47},[34,83428,62387],{"class":181},[34,83430,17625],{"class":50},[34,83432,1502],{"class":181},[34,83434,83435],{"class":36,"line":77},[34,83436,62],{"emptyLinePlaceholder":61},[34,83438,83439],{"class":36,"line":82},[34,83440,83441],{"class":40},"// Find one document\n",[34,83443,83444,83446,83449,83451,83453],{"class":36,"line":88},[34,83445,83277],{"class":181},[34,83447,83448],{"class":47},"findOne",[34,83450,14862],{"class":181},[34,83452,21650],{"class":54},[34,83454,1502],{"class":181},[34,83456,83457],{"class":36,"line":242},[34,83458,62],{"emptyLinePlaceholder":61},[34,83460,83461],{"class":36,"line":250},[34,83462,83463],{"class":40},"// Projection — include specific fields (1=include, 0=exclude)\n",[34,83465,83466,83468,83470,83473,83475,83477,83479,83482,83484],{"class":36,"line":263},[34,83467,83277],{"class":181},[34,83469,12963],{"class":47},[34,83471,83472],{"class":181},"({}, { name: ",[34,83474,8318],{"class":50},[34,83476,83361],{"class":181},[34,83478,8318],{"class":50},[34,83480,83481],{"class":181},", _id: ",[34,83483,2773],{"class":50},[34,83485,1502],{"class":181},[34,83487,83488],{"class":36,"line":275},[34,83489,62],{"emptyLinePlaceholder":61},[34,83491,83492],{"class":36,"line":700},[34,83493,83494],{"class":40},"// Limit results\n",[34,83496,83497,83499,83501,83503,83505,83507,83509],{"class":36,"line":706},[34,83498,83277],{"class":181},[34,83500,12963],{"class":47},[34,83502,1645],{"class":181},[34,83504,2880],{"class":47},[34,83506,1607],{"class":181},[34,83508,11923],{"class":50},[34,83510,3372],{"class":181},[34,83512,83513],{"class":36,"line":715},[34,83514,62],{"emptyLinePlaceholder":61},[34,83516,83517],{"class":36,"line":725},[34,83518,83519],{"class":40},"// Skip documents (pagination)\n",[34,83521,83522,83524,83526,83528,83531,83533,83535,83537,83539,83541,83543],{"class":36,"line":734},[34,83523,83277],{"class":181},[34,83525,12963],{"class":47},[34,83527,1645],{"class":181},[34,83529,83530],{"class":47},"skip",[34,83532,1607],{"class":181},[34,83534,24945],{"class":50},[34,83536,1876],{"class":181},[34,83538,2880],{"class":47},[34,83540,1607],{"class":181},[34,83542,11923],{"class":50},[34,83544,3372],{"class":181},[34,83546,83547],{"class":36,"line":742},[34,83548,62],{"emptyLinePlaceholder":61},[34,83550,83551],{"class":36,"line":748},[34,83552,83553],{"class":40},"// Sort results (1=ascending, -1=descending)\n",[34,83555,83556,83558,83560,83562,83564,83566,83568,83570],{"class":36,"line":754},[34,83557,83277],{"class":181},[34,83559,12963],{"class":47},[34,83561,1645],{"class":181},[34,83563,13152],{"class":47},[34,83565,62387],{"class":181},[34,83567,22062],{"class":580},[34,83569,8318],{"class":50},[34,83571,1502],{"class":181},[34,83573,83574],{"class":36,"line":759},[34,83575,62],{"emptyLinePlaceholder":61},[34,83577,83578],{"class":36,"line":771},[34,83579,83580],{"class":40},"// Count matching documents\n",[34,83582,83583,83585,83588,83591,83594],{"class":36,"line":794},[34,83584,83277],{"class":181},[34,83586,83587],{"class":47},"countDocuments",[34,83589,83590],{"class":181},"({ age: { $gte: ",[34,83592,83593],{"class":50},"18",[34,83595,83596],{"class":181}," } })\n",[11,83598,83600],{"id":83599},"query-operators","Query Operators",[25,83602,83604],{"className":13845,"code":83603,"language":8606,"meta":30,"style":30},"// Comparison operators\ndb.users.find({ age: { $gt: 25 } })       // greater than\ndb.users.find({ age: { $gte: 25 } })      // greater than or equal\ndb.users.find({ age: { $lt: 40 } })       // less than\ndb.users.find({ age: { $lte: 40 } })      // less than or equal\ndb.users.find({ age: { $ne: 30 } })       // not equal\ndb.users.find({ age: { $in: [25, 30] } }) // in array\ndb.users.find({ age: { $nin: [25, 30] } }) // not in array\n\n// Logical operators\ndb.users.find({ $and: [{ age: { $gte: 25 } }, { age: { $lte: 35 } }] })\ndb.users.find({ $or: [{ age: 25 }, { age: 35 }] })\ndb.users.find({ age: { $not: { $gt: 30 } } })\n\n// Element operators\ndb.users.find({ email: { $exists: true } }) // field exists\ndb.users.find({ age: { $type: \"number\" } }) // field is of type\n\n// Array operators\ndb.users.find({ roles: \"admin\" })              // array contains value\ndb.users.find({ roles: { $all: [\"admin\"] } })  // array contains all values\ndb.users.find({ roles: { $size: 2 } })         // array has exact size\n\n// Regex\ndb.users.find({ name: { $regex: /^A/i } })     // case-insensitive starts with A\n",[20,83605,83606,83611,83628,83644,83661,83677,83693,83714,83734,83738,83743,83762,83781,83795,83799,83804,83821,83838,83842,83847,83864,83881,83898,83902,83907],{"__ignoreMap":30},[34,83607,83608],{"class":36,"line":37},[34,83609,83610],{"class":40},"// Comparison operators\n",[34,83612,83613,83615,83617,83620,83622,83625],{"class":36,"line":44},[34,83614,83277],{"class":181},[34,83616,12963],{"class":47},[34,83618,83619],{"class":181},"({ age: { $gt: ",[34,83621,24546],{"class":50},[34,83623,83624],{"class":181}," } })       ",[34,83626,83627],{"class":40},"// greater than\n",[34,83629,83630,83632,83634,83636,83638,83641],{"class":36,"line":58},[34,83631,83277],{"class":181},[34,83633,12963],{"class":47},[34,83635,83590],{"class":181},[34,83637,24546],{"class":50},[34,83639,83640],{"class":181}," } })      ",[34,83642,83643],{"class":40},"// greater than or equal\n",[34,83645,83646,83648,83650,83653,83656,83658],{"class":36,"line":65},[34,83647,83277],{"class":181},[34,83649,12963],{"class":47},[34,83651,83652],{"class":181},"({ age: { $lt: ",[34,83654,83655],{"class":50},"40",[34,83657,83624],{"class":181},[34,83659,83660],{"class":40},"// less than\n",[34,83662,83663,83665,83667,83670,83672,83674],{"class":36,"line":71},[34,83664,83277],{"class":181},[34,83666,12963],{"class":47},[34,83668,83669],{"class":181},"({ age: { $lte: ",[34,83671,83655],{"class":50},[34,83673,83640],{"class":181},[34,83675,83676],{"class":40},"// less than or equal\n",[34,83678,83679,83681,83683,83686,83688,83690],{"class":36,"line":77},[34,83680,83277],{"class":181},[34,83682,12963],{"class":47},[34,83684,83685],{"class":181},"({ age: { $ne: ",[34,83687,17625],{"class":50},[34,83689,83624],{"class":181},[34,83691,83692],{"class":40},"// not equal\n",[34,83694,83695,83697,83699,83702,83704,83706,83708,83711],{"class":36,"line":82},[34,83696,83277],{"class":181},[34,83698,12963],{"class":47},[34,83700,83701],{"class":181},"({ age: { $in: [",[34,83703,24546],{"class":50},[34,83705,1798],{"class":181},[34,83707,17625],{"class":50},[34,83709,83710],{"class":181},"] } }) ",[34,83712,83713],{"class":40},"// in array\n",[34,83715,83716,83718,83720,83723,83725,83727,83729,83731],{"class":36,"line":88},[34,83717,83277],{"class":181},[34,83719,12963],{"class":47},[34,83721,83722],{"class":181},"({ age: { $nin: [",[34,83724,24546],{"class":50},[34,83726,1798],{"class":181},[34,83728,17625],{"class":50},[34,83730,83710],{"class":181},[34,83732,83733],{"class":40},"// not in array\n",[34,83735,83736],{"class":36,"line":242},[34,83737,62],{"emptyLinePlaceholder":61},[34,83739,83740],{"class":36,"line":250},[34,83741,83742],{"class":40},"// Logical operators\n",[34,83744,83745,83747,83749,83752,83754,83757,83759],{"class":36,"line":263},[34,83746,83277],{"class":181},[34,83748,12963],{"class":47},[34,83750,83751],{"class":181},"({ $and: [{ age: { $gte: ",[34,83753,24546],{"class":50},[34,83755,83756],{"class":181}," } }, { age: { $lte: ",[34,83758,83378],{"class":50},[34,83760,83761],{"class":181}," } }] })\n",[34,83763,83764,83766,83768,83771,83773,83776,83778],{"class":36,"line":275},[34,83765,83277],{"class":181},[34,83767,12963],{"class":47},[34,83769,83770],{"class":181},"({ $or: [{ age: ",[34,83772,24546],{"class":50},[34,83774,83775],{"class":181}," }, { age: ",[34,83777,83378],{"class":50},[34,83779,83780],{"class":181}," }] })\n",[34,83782,83783,83785,83787,83790,83792],{"class":36,"line":700},[34,83784,83277],{"class":181},[34,83786,12963],{"class":47},[34,83788,83789],{"class":181},"({ age: { $not: { $gt: ",[34,83791,17625],{"class":50},[34,83793,83794],{"class":181}," } } })\n",[34,83796,83797],{"class":36,"line":706},[34,83798,62],{"emptyLinePlaceholder":61},[34,83800,83801],{"class":36,"line":715},[34,83802,83803],{"class":40},"// Element operators\n",[34,83805,83806,83808,83810,83813,83815,83818],{"class":36,"line":725},[34,83807,83277],{"class":181},[34,83809,12963],{"class":47},[34,83811,83812],{"class":181},"({ email: { $exists: ",[34,83814,632],{"class":50},[34,83816,83817],{"class":181}," } }) ",[34,83819,83820],{"class":40},"// field exists\n",[34,83822,83823,83825,83827,83830,83833,83835],{"class":36,"line":734},[34,83824,83277],{"class":181},[34,83826,12963],{"class":47},[34,83828,83829],{"class":181},"({ age: { $type: ",[34,83831,83832],{"class":54},"\"number\"",[34,83834,83817],{"class":181},[34,83836,83837],{"class":40},"// field is of type\n",[34,83839,83840],{"class":36,"line":742},[34,83841,62],{"emptyLinePlaceholder":61},[34,83843,83844],{"class":36,"line":748},[34,83845,83846],{"class":40},"// Array operators\n",[34,83848,83849,83851,83853,83856,83858,83861],{"class":36,"line":754},[34,83850,83277],{"class":181},[34,83852,12963],{"class":47},[34,83854,83855],{"class":181},"({ roles: ",[34,83857,83316],{"class":54},[34,83859,83860],{"class":181}," })              ",[34,83862,83863],{"class":40},"// array contains value\n",[34,83865,83866,83868,83870,83873,83875,83878],{"class":36,"line":759},[34,83867,83277],{"class":181},[34,83869,12963],{"class":47},[34,83871,83872],{"class":181},"({ roles: { $all: [",[34,83874,83316],{"class":54},[34,83876,83877],{"class":181},"] } })  ",[34,83879,83880],{"class":40},"// array contains all values\n",[34,83882,83883,83885,83887,83890,83892,83895],{"class":36,"line":771},[34,83884,83277],{"class":181},[34,83886,12963],{"class":47},[34,83888,83889],{"class":181},"({ roles: { $size: ",[34,83891,8324],{"class":50},[34,83893,83894],{"class":181}," } })         ",[34,83896,83897],{"class":40},"// array has exact size\n",[34,83899,83900],{"class":36,"line":794},[34,83901,62],{"emptyLinePlaceholder":61},[34,83903,83904],{"class":36,"line":824},[34,83905,83906],{"class":40},"// Regex\n",[34,83908,83909,83911,83913,83916,83918,83920,83924,83926,83928,83931],{"class":36,"line":830},[34,83910,83277],{"class":181},[34,83912,12963],{"class":47},[34,83914,83915],{"class":181},"({ name: { $regex:",[34,83917,22767],{"class":54},[34,83919,23002],{"class":580},[34,83921,83923],{"class":83922},"sA_wV","A",[34,83925,12734],{"class":54},[34,83927,77335],{"class":580},[34,83929,83930],{"class":181}," } })     ",[34,83932,83933],{"class":40},"// case-insensitive starts with A\n",[11,83935,83936],{"id":4372},"Update",[25,83938,83940],{"className":13845,"code":83939,"language":8606,"meta":30,"style":30},"// Update first matching document\ndb.users.updateOne(\n  { name: \"Alice\" },           // filter\n  { $set: { age: 31 } }        // update\n)\n\n// Update all matching documents\ndb.users.updateMany(\n  { age: { $lt: 18 } },\n  { $set: { role: \"minor\" } }\n)\n\n// Replace entire document (except _id)\ndb.users.replaceOne(\n  { name: \"Alice\" },\n  { name: \"Alice\", age: 31, email: \"alice@new.com\" }\n)\n\n// Upsert — insert if not found\ndb.users.updateOne(\n  { email: \"dave@example.com\" },\n  { $set: { name: \"Dave\", age: 28 } },\n  { upsert: true }\n)\n\n// Common update operators\ndb.users.updateOne({ name: \"Alice\" }, {\n  $set: { age: 31 },           // set field value\n  $unset: { tempField: \"\" },   // remove a field\n  $inc: { loginCount: 1 },     // increment numeric field\n  $push: { roles: \"viewer\" },  // add to array\n  $pull: { roles: \"editor\" },  // remove from array\n  $addToSet: { tags: \"vip\" }   // add to array if not exists\n})\n",[20,83941,83942,83947,83956,83968,83982,83986,83990,83995,84004,84014,84025,84029,84033,84038,84047,84055,84072,84076,84080,84085,84093,84103,84118,84127,84131,84135,84140,84153,84165,84178,84191,84205,84217,84231],{"__ignoreMap":30},[34,83943,83944],{"class":36,"line":37},[34,83945,83946],{"class":40},"// Update first matching document\n",[34,83948,83949,83951,83954],{"class":36,"line":44},[34,83950,83277],{"class":181},[34,83952,83953],{"class":47},"updateOne",[34,83955,1882],{"class":181},[34,83957,83958,83960,83962,83965],{"class":36,"line":58},[34,83959,83351],{"class":181},[34,83961,21650],{"class":54},[34,83963,83964],{"class":181}," },           ",[34,83966,83967],{"class":40},"// filter\n",[34,83969,83970,83973,83976,83979],{"class":36,"line":65},[34,83971,83972],{"class":181},"  { $set: { age: ",[34,83974,83975],{"class":50},"31",[34,83977,83978],{"class":181}," } }        ",[34,83980,83981],{"class":40},"// update\n",[34,83983,83984],{"class":36,"line":71},[34,83985,3372],{"class":181},[34,83987,83988],{"class":36,"line":77},[34,83989,62],{"emptyLinePlaceholder":61},[34,83991,83992],{"class":36,"line":82},[34,83993,83994],{"class":40},"// Update all matching documents\n",[34,83996,83997,83999,84002],{"class":36,"line":88},[34,83998,83277],{"class":181},[34,84000,84001],{"class":47},"updateMany",[34,84003,1882],{"class":181},[34,84005,84006,84009,84011],{"class":36,"line":242},[34,84007,84008],{"class":181},"  { age: { $lt: ",[34,84010,83593],{"class":50},[34,84012,84013],{"class":181}," } },\n",[34,84015,84016,84019,84022],{"class":36,"line":250},[34,84017,84018],{"class":181},"  { $set: { role: ",[34,84020,84021],{"class":54},"\"minor\"",[34,84023,84024],{"class":181}," } }\n",[34,84026,84027],{"class":36,"line":263},[34,84028,3372],{"class":181},[34,84030,84031],{"class":36,"line":275},[34,84032,62],{"emptyLinePlaceholder":61},[34,84034,84035],{"class":36,"line":700},[34,84036,84037],{"class":40},"// Replace entire document (except _id)\n",[34,84039,84040,84042,84045],{"class":36,"line":706},[34,84041,83277],{"class":181},[34,84043,84044],{"class":47},"replaceOne",[34,84046,1882],{"class":181},[34,84048,84049,84051,84053],{"class":36,"line":715},[34,84050,83351],{"class":181},[34,84052,21650],{"class":54},[34,84054,14846],{"class":181},[34,84056,84057,84059,84061,84063,84065,84067,84070],{"class":36,"line":725},[34,84058,83351],{"class":181},[34,84060,21650],{"class":54},[34,84062,83356],{"class":181},[34,84064,83975],{"class":50},[34,84066,83361],{"class":181},[34,84068,84069],{"class":54},"\"alice@new.com\"",[34,84071,52786],{"class":181},[34,84073,84074],{"class":36,"line":734},[34,84075,3372],{"class":181},[34,84077,84078],{"class":36,"line":742},[34,84079,62],{"emptyLinePlaceholder":61},[34,84081,84082],{"class":36,"line":748},[34,84083,84084],{"class":40},"// Upsert — insert if not found\n",[34,84086,84087,84089,84091],{"class":36,"line":754},[34,84088,83277],{"class":181},[34,84090,83953],{"class":47},[34,84092,1882],{"class":181},[34,84094,84095,84098,84101],{"class":36,"line":759},[34,84096,84097],{"class":181},"  { email: ",[34,84099,84100],{"class":54},"\"dave@example.com\"",[34,84102,14846],{"class":181},[34,84104,84105,84108,84111,84113,84116],{"class":36,"line":771},[34,84106,84107],{"class":181},"  { $set: { name: ",[34,84109,84110],{"class":54},"\"Dave\"",[34,84112,83356],{"class":181},[34,84114,84115],{"class":50},"28",[34,84117,84013],{"class":181},[34,84119,84120,84123,84125],{"class":36,"line":794},[34,84121,84122],{"class":181},"  { upsert: ",[34,84124,632],{"class":50},[34,84126,52786],{"class":181},[34,84128,84129],{"class":36,"line":824},[34,84130,3372],{"class":181},[34,84132,84133],{"class":36,"line":830},[34,84134,62],{"emptyLinePlaceholder":61},[34,84136,84137],{"class":36,"line":839},[34,84138,84139],{"class":40},"// Common update operators\n",[34,84141,84142,84144,84146,84148,84150],{"class":36,"line":854},[34,84143,83277],{"class":181},[34,84145,83953],{"class":47},[34,84147,14862],{"class":181},[34,84149,21650],{"class":54},[34,84151,84152],{"class":181}," }, {\n",[34,84154,84155,84158,84160,84162],{"class":36,"line":860},[34,84156,84157],{"class":181},"  $set: { age: ",[34,84159,83975],{"class":50},[34,84161,83964],{"class":181},[34,84163,84164],{"class":40},"// set field value\n",[34,84166,84167,84170,84172,84175],{"class":36,"line":865},[34,84168,84169],{"class":181},"  $unset: { tempField: ",[34,84171,13962],{"class":54},[34,84173,84174],{"class":181}," },   ",[34,84176,84177],{"class":40},"// remove a field\n",[34,84179,84180,84183,84185,84188],{"class":36,"line":870},[34,84181,84182],{"class":181},"  $inc: { loginCount: ",[34,84184,8318],{"class":50},[34,84186,84187],{"class":181}," },     ",[34,84189,84190],{"class":40},"// increment numeric field\n",[34,84192,84193,84196,84199,84202],{"class":36,"line":876},[34,84194,84195],{"class":181},"  $push: { roles: ",[34,84197,84198],{"class":54},"\"viewer\"",[34,84200,84201],{"class":181}," },  ",[34,84203,84204],{"class":40},"// add to array\n",[34,84206,84207,84210,84212,84214],{"class":36,"line":885},[34,84208,84209],{"class":181},"  $pull: { roles: ",[34,84211,83321],{"class":54},[34,84213,84201],{"class":181},[34,84215,84216],{"class":40},"// remove from array\n",[34,84218,84219,84222,84225,84228],{"class":36,"line":895},[34,84220,84221],{"class":181},"  $addToSet: { tags: ",[34,84223,84224],{"class":54},"\"vip\"",[34,84226,84227],{"class":181}," }   ",[34,84229,84230],{"class":40},"// add to array if not exists\n",[34,84232,84233],{"class":36,"line":904},[34,84234,647],{"class":181},[11,84236,84237],{"id":30355},"Delete",[25,84239,84241],{"className":13845,"code":84240,"language":8606,"meta":30,"style":30},"// Delete first matching document\ndb.users.deleteOne({ name: \"Alice\" })\n\n// Delete all matching documents\ndb.users.deleteMany({ age: { $lt: 18 } })\n\n// Delete all documents in collection (keeps collection)\ndb.users.deleteMany({})\n",[20,84242,84243,84248,84261,84265,84270,84283,84287,84292],{"__ignoreMap":30},[34,84244,84245],{"class":36,"line":37},[34,84246,84247],{"class":40},"// Delete first matching document\n",[34,84249,84250,84252,84255,84257,84259],{"class":36,"line":44},[34,84251,83277],{"class":181},[34,84253,84254],{"class":47},"deleteOne",[34,84256,14862],{"class":181},[34,84258,21650],{"class":54},[34,84260,1502],{"class":181},[34,84262,84263],{"class":36,"line":58},[34,84264,62],{"emptyLinePlaceholder":61},[34,84266,84267],{"class":36,"line":65},[34,84268,84269],{"class":40},"// Delete all matching documents\n",[34,84271,84272,84274,84277,84279,84281],{"class":36,"line":71},[34,84273,83277],{"class":181},[34,84275,84276],{"class":47},"deleteMany",[34,84278,83652],{"class":181},[34,84280,83593],{"class":50},[34,84282,83596],{"class":181},[34,84284,84285],{"class":36,"line":77},[34,84286,62],{"emptyLinePlaceholder":61},[34,84288,84289],{"class":36,"line":82},[34,84290,84291],{"class":40},"// Delete all documents in collection (keeps collection)\n",[34,84293,84294,84296,84298],{"class":36,"line":88},[34,84295,83277],{"class":181},[34,84297,84276],{"class":47},[34,84299,84300],{"class":181},"({})\n",[11,84302,84304],{"id":84303},"aggregation-pipeline","Aggregation Pipeline",[25,84306,84308],{"className":13845,"code":84307,"language":8606,"meta":30,"style":30},"// Basic aggregation pipeline\ndb.orders.aggregate([\n  { $match: { status: \"completed\" } },   // filter documents\n  { $group: {\n    _id: \"$customerId\",                  // group by field\n    totalSpent: { $sum: \"$amount\" },     // sum values\n    orderCount: { $count: {} }           // count documents\n  }},\n  { $sort: { totalSpent: -1 } },         // sort by total\n  { $limit: 10 }                         // top 10\n])\n\n// Commonly used aggregation stages\ndb.products.aggregate([\n  { $project: { name: 1, price: 1, _id: 0 } },     // reshape documents\n  { $addFields: { discounted: { $multiply: [\"$price\", 0.9] } } }, // add fields\n  { $lookup: {                           // join with another collection\n    from: \"categories\",\n    localField: \"categoryId\",\n    foreignField: \"_id\",\n    as: \"category\"\n  }},\n  { $unwind: \"$category\" },              // flatten array field\n  { $skip: 0 },\n  { $limit: 20 }\n])\n\n// Group accumulator operators\ndb.sales.aggregate([\n  { $group: {\n    _id: \"$region\",\n    total: { $sum: \"$revenue\" },         // sum\n    avg: { $avg: \"$revenue\" },           // average\n    max: { $max: \"$revenue\" },           // maximum\n    min: { $min: \"$revenue\" },           // minimum\n    count: { $count: {} },               // count documents\n    names: { $push: \"$salesRep\" }        // collect values into array\n  }}\n])\n",[20,84309,84310,84315,84325,84339,84344,84358,84371,84379,84384,84399,84412,84416,84420,84425,84434,84456,84475,84483,84493,84503,84513,84521,84525,84539,84548,84556,84560,84564,84569,84578,84582,84591,84605,84617,84629,84641,84648,84662,84667],{"__ignoreMap":30},[34,84311,84312],{"class":36,"line":37},[34,84313,84314],{"class":40},"// Basic aggregation pipeline\n",[34,84316,84317,84320,84323],{"class":36,"line":44},[34,84318,84319],{"class":181},"db.orders.",[34,84321,84322],{"class":47},"aggregate",[34,84324,83346],{"class":181},[34,84326,84327,84330,84333,84336],{"class":36,"line":58},[34,84328,84329],{"class":181},"  { $match: { status: ",[34,84331,84332],{"class":54},"\"completed\"",[34,84334,84335],{"class":181}," } },   ",[34,84337,84338],{"class":40},"// filter documents\n",[34,84340,84341],{"class":36,"line":65},[34,84342,84343],{"class":181},"  { $group: {\n",[34,84345,84346,84349,84352,84355],{"class":36,"line":71},[34,84347,84348],{"class":181},"    _id: ",[34,84350,84351],{"class":54},"\"$customerId\"",[34,84353,84354],{"class":181},",                  ",[34,84356,84357],{"class":40},"// group by field\n",[34,84359,84360,84363,84366,84368],{"class":36,"line":77},[34,84361,84362],{"class":181},"    totalSpent: { $sum: ",[34,84364,84365],{"class":54},"\"$amount\"",[34,84367,84187],{"class":181},[34,84369,84370],{"class":40},"// sum values\n",[34,84372,84373,84376],{"class":36,"line":82},[34,84374,84375],{"class":181},"    orderCount: { $count: {} }           ",[34,84377,84378],{"class":40},"// count documents\n",[34,84380,84381],{"class":36,"line":88},[34,84382,84383],{"class":181},"  }},\n",[34,84385,84386,84389,84391,84393,84396],{"class":36,"line":242},[34,84387,84388],{"class":181},"  { $sort: { totalSpent: ",[34,84390,22062],{"class":580},[34,84392,8318],{"class":50},[34,84394,84395],{"class":181}," } },         ",[34,84397,84398],{"class":40},"// sort by total\n",[34,84400,84401,84404,84406,84409],{"class":36,"line":250},[34,84402,84403],{"class":181},"  { $limit: ",[34,84405,11923],{"class":50},[34,84407,84408],{"class":181}," }                         ",[34,84410,84411],{"class":40},"// top 10\n",[34,84413,84414],{"class":36,"line":263},[34,84415,51547],{"class":181},[34,84417,84418],{"class":36,"line":275},[34,84419,62],{"emptyLinePlaceholder":61},[34,84421,84422],{"class":36,"line":700},[34,84423,84424],{"class":40},"// Commonly used aggregation stages\n",[34,84426,84427,84430,84432],{"class":36,"line":706},[34,84428,84429],{"class":181},"db.products.",[34,84431,84322],{"class":47},[34,84433,83346],{"class":181},[34,84435,84436,84439,84441,84444,84446,84448,84450,84453],{"class":36,"line":715},[34,84437,84438],{"class":181},"  { $project: { name: ",[34,84440,8318],{"class":50},[34,84442,84443],{"class":181},", price: ",[34,84445,8318],{"class":50},[34,84447,83481],{"class":181},[34,84449,2773],{"class":50},[34,84451,84452],{"class":181}," } },     ",[34,84454,84455],{"class":40},"// reshape documents\n",[34,84457,84458,84461,84464,84466,84469,84472],{"class":36,"line":725},[34,84459,84460],{"class":181},"  { $addFields: { discounted: { $multiply: [",[34,84462,84463],{"class":54},"\"$price\"",[34,84465,1798],{"class":181},[34,84467,84468],{"class":50},"0.9",[34,84470,84471],{"class":181},"] } } }, ",[34,84473,84474],{"class":40},"// add fields\n",[34,84476,84477,84480],{"class":36,"line":734},[34,84478,84479],{"class":181},"  { $lookup: {                           ",[34,84481,84482],{"class":40},"// join with another collection\n",[34,84484,84485,84488,84491],{"class":36,"line":742},[34,84486,84487],{"class":181},"    from: ",[34,84489,84490],{"class":54},"\"categories\"",[34,84492,624],{"class":181},[34,84494,84495,84498,84501],{"class":36,"line":748},[34,84496,84497],{"class":181},"    localField: ",[34,84499,84500],{"class":54},"\"categoryId\"",[34,84502,624],{"class":181},[34,84504,84505,84508,84511],{"class":36,"line":754},[34,84506,84507],{"class":181},"    foreignField: ",[34,84509,84510],{"class":54},"\"_id\"",[34,84512,624],{"class":181},[34,84514,84515,84518],{"class":36,"line":759},[34,84516,84517],{"class":181},"    as: ",[34,84519,84520],{"class":54},"\"category\"\n",[34,84522,84523],{"class":36,"line":771},[34,84524,84383],{"class":181},[34,84526,84527,84530,84533,84536],{"class":36,"line":794},[34,84528,84529],{"class":181},"  { $unwind: ",[34,84531,84532],{"class":54},"\"$category\"",[34,84534,84535],{"class":181}," },              ",[34,84537,84538],{"class":40},"// flatten array field\n",[34,84540,84541,84544,84546],{"class":36,"line":824},[34,84542,84543],{"class":181},"  { $skip: ",[34,84545,2773],{"class":50},[34,84547,14846],{"class":181},[34,84549,84550,84552,84554],{"class":36,"line":830},[34,84551,84403],{"class":181},[34,84553,24945],{"class":50},[34,84555,52786],{"class":181},[34,84557,84558],{"class":36,"line":839},[34,84559,51547],{"class":181},[34,84561,84562],{"class":36,"line":854},[34,84563,62],{"emptyLinePlaceholder":61},[34,84565,84566],{"class":36,"line":860},[34,84567,84568],{"class":40},"// Group accumulator operators\n",[34,84570,84571,84574,84576],{"class":36,"line":865},[34,84572,84573],{"class":181},"db.sales.",[34,84575,84322],{"class":47},[34,84577,83346],{"class":181},[34,84579,84580],{"class":36,"line":870},[34,84581,84343],{"class":181},[34,84583,84584,84586,84589],{"class":36,"line":876},[34,84585,84348],{"class":181},[34,84587,84588],{"class":54},"\"$region\"",[34,84590,624],{"class":181},[34,84592,84593,84596,84599,84602],{"class":36,"line":885},[34,84594,84595],{"class":181},"    total: { $sum: ",[34,84597,84598],{"class":54},"\"$revenue\"",[34,84600,84601],{"class":181}," },         ",[34,84603,84604],{"class":40},"// sum\n",[34,84606,84607,84610,84612,84614],{"class":36,"line":895},[34,84608,84609],{"class":181},"    avg: { $avg: ",[34,84611,84598],{"class":54},[34,84613,83964],{"class":181},[34,84615,84616],{"class":40},"// average\n",[34,84618,84619,84622,84624,84626],{"class":36,"line":904},[34,84620,84621],{"class":181},"    max: { $max: ",[34,84623,84598],{"class":54},[34,84625,83964],{"class":181},[34,84627,84628],{"class":40},"// maximum\n",[34,84630,84631,84634,84636,84638],{"class":36,"line":915},[34,84632,84633],{"class":181},"    min: { $min: ",[34,84635,84598],{"class":54},[34,84637,83964],{"class":181},[34,84639,84640],{"class":40},"// minimum\n",[34,84642,84643,84646],{"class":36,"line":927},[34,84644,84645],{"class":181},"    count: { $count: {} },               ",[34,84647,84378],{"class":40},[34,84649,84650,84653,84656,84659],{"class":36,"line":932},[34,84651,84652],{"class":181},"    names: { $push: ",[34,84654,84655],{"class":54},"\"$salesRep\"",[34,84657,84658],{"class":181}," }        ",[34,84660,84661],{"class":40},"// collect values into array\n",[34,84663,84664],{"class":36,"line":944},[34,84665,84666],{"class":181},"  }}\n",[34,84668,84669],{"class":36,"line":966},[34,84670,51547],{"class":181},[11,84672,84674],{"id":84673},"indexes","Indexes",[25,84676,84678],{"className":13845,"code":84677,"language":8606,"meta":30,"style":30},"// Create single-field index\ndb.users.createIndex({ email: 1 })      // ascending\n\n// Create unique index\ndb.users.createIndex({ email: 1 }, { unique: true })\n\n// Create compound index\ndb.users.createIndex({ lastName: 1, firstName: 1 })\n\n// Create text index for full-text search\ndb.articles.createIndex({ content: \"text\", title: \"text\" })\n\n// Create TTL index — auto-delete after seconds\ndb.sessions.createIndex({ createdAt: 1 }, { expireAfterSeconds: 3600 })\n\n// List all indexes on collection\ndb.users.getIndexes()\n\n// Drop an index\ndb.users.dropIndex({ email: 1 })\n\n// Drop all indexes (except _id)\ndb.users.dropIndexes()\n\n// Explain query plan (check index usage)\ndb.users.find({ email: \"alice@example.com\" }).explain(\"executionStats\")\n",[20,84679,84680,84685,84703,84707,84712,84729,84733,84738,84756,84760,84765,84784,84788,84793,84813,84817,84822,84831,84835,84840,84853,84857,84862,84871,84875,84880],{"__ignoreMap":30},[34,84681,84682],{"class":36,"line":37},[34,84683,84684],{"class":40},"// Create single-field index\n",[34,84686,84687,84689,84692,84695,84697,84700],{"class":36,"line":44},[34,84688,83277],{"class":181},[34,84690,84691],{"class":47},"createIndex",[34,84693,84694],{"class":181},"({ email: ",[34,84696,8318],{"class":50},[34,84698,84699],{"class":181}," })      ",[34,84701,84702],{"class":40},"// ascending\n",[34,84704,84705],{"class":36,"line":58},[34,84706,62],{"emptyLinePlaceholder":61},[34,84708,84709],{"class":36,"line":65},[34,84710,84711],{"class":40},"// Create unique index\n",[34,84713,84714,84716,84718,84720,84722,84725,84727],{"class":36,"line":71},[34,84715,83277],{"class":181},[34,84717,84691],{"class":47},[34,84719,84694],{"class":181},[34,84721,8318],{"class":50},[34,84723,84724],{"class":181}," }, { unique: ",[34,84726,632],{"class":50},[34,84728,1502],{"class":181},[34,84730,84731],{"class":36,"line":77},[34,84732,62],{"emptyLinePlaceholder":61},[34,84734,84735],{"class":36,"line":82},[34,84736,84737],{"class":40},"// Create compound index\n",[34,84739,84740,84742,84744,84747,84749,84752,84754],{"class":36,"line":88},[34,84741,83277],{"class":181},[34,84743,84691],{"class":47},[34,84745,84746],{"class":181},"({ lastName: ",[34,84748,8318],{"class":50},[34,84750,84751],{"class":181},", firstName: ",[34,84753,8318],{"class":50},[34,84755,1502],{"class":181},[34,84757,84758],{"class":36,"line":242},[34,84759,62],{"emptyLinePlaceholder":61},[34,84761,84762],{"class":36,"line":250},[34,84763,84764],{"class":40},"// Create text index for full-text search\n",[34,84766,84767,84770,84772,84775,84777,84780,84782],{"class":36,"line":263},[34,84768,84769],{"class":181},"db.articles.",[34,84771,84691],{"class":47},[34,84773,84774],{"class":181},"({ content: ",[34,84776,41329],{"class":54},[34,84778,84779],{"class":181},", title: ",[34,84781,41329],{"class":54},[34,84783,1502],{"class":181},[34,84785,84786],{"class":36,"line":275},[34,84787,62],{"emptyLinePlaceholder":61},[34,84789,84790],{"class":36,"line":700},[34,84791,84792],{"class":40},"// Create TTL index — auto-delete after seconds\n",[34,84794,84795,84798,84800,84803,84805,84808,84811],{"class":36,"line":706},[34,84796,84797],{"class":181},"db.sessions.",[34,84799,84691],{"class":47},[34,84801,84802],{"class":181},"({ createdAt: ",[34,84804,8318],{"class":50},[34,84806,84807],{"class":181}," }, { expireAfterSeconds: ",[34,84809,84810],{"class":50},"3600",[34,84812,1502],{"class":181},[34,84814,84815],{"class":36,"line":715},[34,84816,62],{"emptyLinePlaceholder":61},[34,84818,84819],{"class":36,"line":725},[34,84820,84821],{"class":40},"// List all indexes on collection\n",[34,84823,84824,84826,84829],{"class":36,"line":734},[34,84825,83277],{"class":181},[34,84827,84828],{"class":47},"getIndexes",[34,84830,33899],{"class":181},[34,84832,84833],{"class":36,"line":742},[34,84834,62],{"emptyLinePlaceholder":61},[34,84836,84837],{"class":36,"line":748},[34,84838,84839],{"class":40},"// Drop an index\n",[34,84841,84842,84844,84847,84849,84851],{"class":36,"line":754},[34,84843,83277],{"class":181},[34,84845,84846],{"class":47},"dropIndex",[34,84848,84694],{"class":181},[34,84850,8318],{"class":50},[34,84852,1502],{"class":181},[34,84854,84855],{"class":36,"line":759},[34,84856,62],{"emptyLinePlaceholder":61},[34,84858,84859],{"class":36,"line":771},[34,84860,84861],{"class":40},"// Drop all indexes (except _id)\n",[34,84863,84864,84866,84869],{"class":36,"line":794},[34,84865,83277],{"class":181},[34,84867,84868],{"class":47},"dropIndexes",[34,84870,33899],{"class":181},[34,84872,84873],{"class":36,"line":824},[34,84874,62],{"emptyLinePlaceholder":61},[34,84876,84877],{"class":36,"line":830},[34,84878,84879],{"class":40},"// Explain query plan (check index usage)\n",[34,84881,84882,84884,84886,84888,84890,84893,84896,84898,84901],{"class":36,"line":839},[34,84883,83277],{"class":181},[34,84885,12963],{"class":47},[34,84887,84694],{"class":181},[34,84889,83306],{"class":54},[34,84891,84892],{"class":181}," }).",[34,84894,84895],{"class":47},"explain",[34,84897,1607],{"class":181},[34,84899,84900],{"class":54},"\"executionStats\"",[34,84902,3372],{"class":181},[11,84904,84906],{"id":84905},"text-search","Text Search",[25,84908,84910],{"className":13845,"code":84909,"language":8606,"meta":30,"style":30},"// Create text index first\ndb.articles.createIndex({ title: \"text\", body: \"text\" })\n\n// Search text\ndb.articles.find({ $text: { $search: \"mongodb query\" } })\n\n// Search exact phrase\ndb.articles.find({ $text: { $search: \"\\\"exact phrase\\\"\" } })\n\n// Exclude word from search\ndb.articles.find({ $text: { $search: \"mongodb -sql\" } })\n\n// Sort by relevance score\ndb.articles.find(\n  { $text: { $search: \"mongodb\" } },\n  { score: { $meta: \"textScore\" } }\n).sort({ score: { $meta: \"textScore\" } })\n",[20,84911,84912,84917,84935,84939,84944,84958,84962,84967,84989,84993,84998,85011,85015,85020,85028,85038,85048],{"__ignoreMap":30},[34,84913,84914],{"class":36,"line":37},[34,84915,84916],{"class":40},"// Create text index first\n",[34,84918,84919,84921,84923,84926,84928,84931,84933],{"class":36,"line":44},[34,84920,84769],{"class":181},[34,84922,84691],{"class":47},[34,84924,84925],{"class":181},"({ title: ",[34,84927,41329],{"class":54},[34,84929,84930],{"class":181},", body: ",[34,84932,41329],{"class":54},[34,84934,1502],{"class":181},[34,84936,84937],{"class":36,"line":58},[34,84938,62],{"emptyLinePlaceholder":61},[34,84940,84941],{"class":36,"line":65},[34,84942,84943],{"class":40},"// Search text\n",[34,84945,84946,84948,84950,84953,84956],{"class":36,"line":71},[34,84947,84769],{"class":181},[34,84949,12963],{"class":47},[34,84951,84952],{"class":181},"({ $text: { $search: ",[34,84954,84955],{"class":54},"\"mongodb query\"",[34,84957,83596],{"class":181},[34,84959,84960],{"class":36,"line":77},[34,84961,62],{"emptyLinePlaceholder":61},[34,84963,84964],{"class":36,"line":82},[34,84965,84966],{"class":40},"// Search exact phrase\n",[34,84968,84969,84971,84973,84975,84977,84980,84983,84985,84987],{"class":36,"line":88},[34,84970,84769],{"class":181},[34,84972,12963],{"class":47},[34,84974,84952],{"class":181},[34,84976,10389],{"class":54},[34,84978,84979],{"class":50},"\\\"",[34,84981,84982],{"class":54},"exact phrase",[34,84984,84979],{"class":50},[34,84986,10389],{"class":54},[34,84988,83596],{"class":181},[34,84990,84991],{"class":36,"line":242},[34,84992,62],{"emptyLinePlaceholder":61},[34,84994,84995],{"class":36,"line":250},[34,84996,84997],{"class":40},"// Exclude word from search\n",[34,84999,85000,85002,85004,85006,85009],{"class":36,"line":263},[34,85001,84769],{"class":181},[34,85003,12963],{"class":47},[34,85005,84952],{"class":181},[34,85007,85008],{"class":54},"\"mongodb -sql\"",[34,85010,83596],{"class":181},[34,85012,85013],{"class":36,"line":275},[34,85014,62],{"emptyLinePlaceholder":61},[34,85016,85017],{"class":36,"line":700},[34,85018,85019],{"class":40},"// Sort by relevance score\n",[34,85021,85022,85024,85026],{"class":36,"line":706},[34,85023,84769],{"class":181},[34,85025,12963],{"class":47},[34,85027,1882],{"class":181},[34,85029,85030,85033,85036],{"class":36,"line":715},[34,85031,85032],{"class":181},"  { $text: { $search: ",[34,85034,85035],{"class":54},"\"mongodb\"",[34,85037,84013],{"class":181},[34,85039,85040,85043,85046],{"class":36,"line":725},[34,85041,85042],{"class":181},"  { score: { $meta: ",[34,85044,85045],{"class":54},"\"textScore\"",[34,85047,84024],{"class":181},[34,85049,85050,85052,85054,85057,85059],{"class":36,"line":734},[34,85051,1876],{"class":181},[34,85053,13152],{"class":47},[34,85055,85056],{"class":181},"({ score: { $meta: ",[34,85058,85045],{"class":54},[34,85060,83596],{"class":181},[11,85062,85064],{"id":85063},"administration","Administration",[25,85066,85068],{"className":27,"code":85067,"language":29,"meta":30,"style":30},"# Show server status\ndb.serverStatus()\n\n# Show current operations\ndb.currentOp()\n\n# Kill a long-running operation\ndb.killOp(opid)\n\n# Compact a collection (reclaim disk space)\ndb.runCommand({ compact: \"users\" })\n\n# Repair database\ndb.repairDatabase()\n\n# Create user with roles\ndb.createUser({\n  user: \"appUser\",\n  pwd: \"password\",\n  roles: [\n    { role: \"readWrite\", db: \"myDatabase\" },\n    { role: \"read\", db: \"reporting\" }\n  ]\n})\n\n# List users\ndb.getUsers()\n\n# Drop user\ndb.dropUser(\"appUser\")\n",[20,85069,85070,85075,85082,85086,85091,85098,85102,85107,85114,85118,85123,85141,85145,85150,85157,85161,85166,85173,85181,85191,85198,85217,85233,85238,85242,85246,85250,85257,85261,85266],{"__ignoreMap":30},[34,85071,85072],{"class":36,"line":37},[34,85073,85074],{"class":40},"# Show server status\n",[34,85076,85077,85080],{"class":36,"line":44},[34,85078,85079],{"class":47},"db.serverStatus",[34,85081,33899],{"class":181},[34,85083,85084],{"class":36,"line":58},[34,85085,62],{"emptyLinePlaceholder":61},[34,85087,85088],{"class":36,"line":65},[34,85089,85090],{"class":40},"# Show current operations\n",[34,85092,85093,85096],{"class":36,"line":71},[34,85094,85095],{"class":47},"db.currentOp",[34,85097,33899],{"class":181},[34,85099,85100],{"class":36,"line":77},[34,85101,62],{"emptyLinePlaceholder":61},[34,85103,85104],{"class":36,"line":82},[34,85105,85106],{"class":40},"# Kill a long-running operation\n",[34,85108,85109,85112],{"class":36,"line":88},[34,85110,85111],{"class":47},"db.killOp(opid",[34,85113,3372],{"class":181},[34,85115,85116],{"class":36,"line":242},[34,85117,62],{"emptyLinePlaceholder":61},[34,85119,85120],{"class":36,"line":250},[34,85121,85122],{"class":40},"# Compact a collection (reclaim disk space)\n",[34,85124,85125,85128,85130,85133,85136,85139],{"class":36,"line":263},[34,85126,85127],{"class":47},"db.runCommand(",[34,85129,13990],{"class":54},[34,85131,85132],{"class":54}," compact:",[34,85134,85135],{"class":54}," \"users\"",[34,85137,85138],{"class":54}," }",[34,85140,3372],{"class":181},[34,85142,85143],{"class":36,"line":275},[34,85144,62],{"emptyLinePlaceholder":61},[34,85146,85147],{"class":36,"line":700},[34,85148,85149],{"class":40},"# Repair database\n",[34,85151,85152,85155],{"class":36,"line":706},[34,85153,85154],{"class":47},"db.repairDatabase",[34,85156,33899],{"class":181},[34,85158,85159],{"class":36,"line":715},[34,85160,62],{"emptyLinePlaceholder":61},[34,85162,85163],{"class":36,"line":725},[34,85164,85165],{"class":40},"# Create user with roles\n",[34,85167,85168,85171],{"class":36,"line":734},[34,85169,85170],{"class":47},"db.createUser(",[34,85172,25296],{"class":54},[34,85174,85175,85178],{"class":36,"line":742},[34,85176,85177],{"class":47},"  user:",[34,85179,85180],{"class":54}," \"appUser\",\n",[34,85182,85183,85186,85188],{"class":36,"line":748},[34,85184,85185],{"class":50},"  pwd",[34,85187,165],{"class":54},[34,85189,85190],{"class":54}," \"password\",\n",[34,85192,85193,85196],{"class":36,"line":754},[34,85194,85195],{"class":47},"  roles:",[34,85197,3304],{"class":181},[34,85199,85200,85203,85206,85209,85212,85215],{"class":36,"line":759},[34,85201,85202],{"class":181},"    { ",[34,85204,85205],{"class":47},"role:",[34,85207,85208],{"class":54}," \"readWrite\",",[34,85210,85211],{"class":54}," db:",[34,85213,85214],{"class":54}," \"myDatabase\"",[34,85216,14846],{"class":54},[34,85218,85219,85221,85223,85226,85228,85231],{"class":36,"line":771},[34,85220,85202],{"class":181},[34,85222,85205],{"class":47},[34,85224,85225],{"class":54}," \"read\",",[34,85227,85211],{"class":54},[34,85229,85230],{"class":54}," \"reporting\"",[34,85232,52786],{"class":54},[34,85234,85235],{"class":36,"line":794},[34,85236,85237],{"class":181},"  ]\n",[34,85239,85240],{"class":36,"line":824},[34,85241,647],{"class":181},[34,85243,85244],{"class":36,"line":830},[34,85245,62],{"emptyLinePlaceholder":61},[34,85247,85248],{"class":36,"line":839},[34,85249,9026],{"class":40},[34,85251,85252,85255],{"class":36,"line":854},[34,85253,85254],{"class":47},"db.getUsers",[34,85256,33899],{"class":181},[34,85258,85259],{"class":36,"line":860},[34,85260,62],{"emptyLinePlaceholder":61},[34,85262,85263],{"class":36,"line":865},[34,85264,85265],{"class":40},"# Drop user\n",[34,85267,85268,85271,85274],{"class":36,"line":870},[34,85269,85270],{"class":47},"db.dropUser(",[34,85272,85273],{"class":47},"\"appUser\"",[34,85275,3372],{"class":181},[388,85277,85278],{},"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 pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sA_wV, html code.shiki .sA_wV{--shiki-default:#032F62;--shiki-dark:#DBEDFF}",{"title":30,"searchDepth":44,"depth":44,"links":85280},[85281,85282,85283,85284,85285,85286,85287,85288,85289,85290,85291],{"id":83026,"depth":44,"text":83027},{"id":83156,"depth":44,"text":83157},{"id":30468,"depth":44,"text":83262},{"id":83392,"depth":44,"text":83393},{"id":83599,"depth":44,"text":83600},{"id":4372,"depth":44,"text":83936},{"id":30355,"depth":44,"text":84237},{"id":84303,"depth":44,"text":84304},{"id":84673,"depth":44,"text":84674},{"id":84905,"depth":44,"text":84906},{"id":85063,"depth":44,"text":85064},"Essential MongoDB shell commands and operations for document-based database management.",{"category":85294,"featured":65586,"icon":85295},"databases","\u003Csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\u003Cpath d=\"M12 2c-1.5 4-3 6.5-3 10a3 3 0 0 0 6 0c0-3.5-1.5-6-3-10z\"/>\u003Cpath d=\"M12 22v-4\"/>\u003C/svg>","/examples/mongodb",{"title":83021,"description":85292},"examples/mongodb",[85300,28649,28650,85301,85302],"mongodb","document","aggregation","ikZLievB6ViHp0svoqlu8Y8S14xUkScFjW3WIF4ViUc",{"id":85305,"title":85306,"body":85307,"date":402,"description":86164,"extension":404,"meta":86165,"navigation":61,"order":402,"path":86167,"seo":86168,"stem":86169,"subject":402,"tags":86170,"__hash__":86174},"topics/examples/nextjs.md","Next.js Examples",{"type":8,"value":85308,"toc":86152},[85309,85313,85317,85359,85363,85405,85409,85571,85575,85708,85712,85754,85758,85805,85809,85909,85913,85998,86002,86056,86060,86149],[8535,85310,85312],{"id":85311},"nextjs-quick-examples","Next.js: Quick Examples",[102,85314,85316],{"id":85315},"_1-setting-up-the-app-router","1. Setting Up the App Router",[25,85318,85320],{"className":13845,"code":85319,"language":8606,"meta":30,"style":30},"// app/page.js\nexport default function Home() {\n  return \u003Ch1>Welcome to Next.js!\u003C/h1>;\n}\n",[20,85321,85322,85327,85340,85355],{"__ignoreMap":30},[34,85323,85324],{"class":36,"line":37},[34,85325,85326],{"class":40},"// app/page.js\n",[34,85328,85329,85331,85333,85335,85338],{"class":36,"line":44},[34,85330,652],{"class":580},[34,85332,7298],{"class":580},[34,85334,8037],{"class":580},[34,85336,85337],{"class":47}," Home",[34,85339,836],{"class":181},[34,85341,85342,85344,85346,85348,85351,85353],{"class":36,"line":58},[34,85343,8155],{"class":580},[34,85345,5470],{"class":181},[34,85347,8535],{"class":177},[34,85349,85350],{"class":181},">Welcome to Next.js!\u003C/",[34,85352,8535],{"class":177},[34,85354,4834],{"class":181},[34,85356,85357],{"class":36,"line":65},[34,85358,693],{"class":181},[102,85360,85362],{"id":85361},"_2-creating-pages-with-routing","2. Creating Pages with Routing",[25,85364,85366],{"className":13845,"code":85365,"language":8606,"meta":30,"style":30},"// app/about/page.js\nexport default function About() {\n  return \u003Ch1>About Us\u003C/h1>;\n}\n",[20,85367,85368,85373,85386,85401],{"__ignoreMap":30},[34,85369,85370],{"class":36,"line":37},[34,85371,85372],{"class":40},"// app/about/page.js\n",[34,85374,85375,85377,85379,85381,85384],{"class":36,"line":44},[34,85376,652],{"class":580},[34,85378,7298],{"class":580},[34,85380,8037],{"class":580},[34,85382,85383],{"class":47}," About",[34,85385,836],{"class":181},[34,85387,85388,85390,85392,85394,85397,85399],{"class":36,"line":58},[34,85389,8155],{"class":580},[34,85391,5470],{"class":181},[34,85393,8535],{"class":177},[34,85395,85396],{"class":181},">About Us\u003C/",[34,85398,8535],{"class":177},[34,85400,4834],{"class":181},[34,85402,85403],{"class":36,"line":65},[34,85404,693],{"class":181},[102,85406,85408],{"id":85407},"_3-using-server-components-for-data-fetching","3. Using Server Components for Data Fetching",[25,85410,85412],{"className":13845,"code":85411,"language":8606,"meta":30,"style":30},"// app/posts/page.js\nexport async function getStaticProps() {\n  const res = await fetch('https://jsonplaceholder.typicode.com/posts');\n  const posts = await res.json();\n  return { props: { posts } };\n}\n\nexport default function Posts({ posts }) {\n  return (\n    \u003Cul>\n      {posts.map((post) => (\n        \u003Cli key={post.id}>{post.title}\u003C/li>\n      ))}\n    \u003C/ul>\n  );\n}\n",[20,85413,85414,85419,85432,85452,85469,85476,85480,85484,85502,85508,85516,85533,85550,85555,85563,85567],{"__ignoreMap":30},[34,85415,85416],{"class":36,"line":37},[34,85417,85418],{"class":40},"// app/posts/page.js\n",[34,85420,85421,85423,85425,85427,85430],{"class":36,"line":44},[34,85422,652],{"class":580},[34,85424,33813],{"class":580},[34,85426,8037],{"class":580},[34,85428,85429],{"class":47}," getStaticProps",[34,85431,836],{"class":181},[34,85433,85434,85436,85439,85441,85443,85445,85447,85450],{"class":36,"line":58},[34,85435,17415],{"class":580},[34,85437,85438],{"class":50}," res",[34,85440,683],{"class":580},[34,85442,14763],{"class":580},[34,85444,14766],{"class":47},[34,85446,1607],{"class":181},[34,85448,85449],{"class":54},"'https://jsonplaceholder.typicode.com/posts'",[34,85451,1586],{"class":181},[34,85453,85454,85456,85459,85461,85463,85465,85467],{"class":36,"line":65},[34,85455,17415],{"class":580},[34,85457,85458],{"class":50}," posts",[34,85460,683],{"class":580},[34,85462,14763],{"class":580},[34,85464,75763],{"class":181},[34,85466,14790],{"class":47},[34,85468,851],{"class":181},[34,85470,85471,85473],{"class":36,"line":71},[34,85472,8155],{"class":580},[34,85474,85475],{"class":181}," { props: { posts } };\n",[34,85477,85478],{"class":36,"line":77},[34,85479,693],{"class":181},[34,85481,85482],{"class":36,"line":82},[34,85483,62],{"emptyLinePlaceholder":61},[34,85485,85486,85488,85490,85492,85495,85497,85500],{"class":36,"line":88},[34,85487,652],{"class":580},[34,85489,7298],{"class":580},[34,85491,8037],{"class":580},[34,85493,85494],{"class":47}," Posts",[34,85496,13858],{"class":181},[34,85498,85499],{"class":675},"posts",[34,85501,13879],{"class":181},[34,85503,85504,85506],{"class":36,"line":242},[34,85505,8155],{"class":580},[34,85507,13975],{"class":181},[34,85509,85510,85512,85514],{"class":36,"line":250},[34,85511,1294],{"class":181},[34,85513,309],{"class":177},[34,85515,1248],{"class":181},[34,85517,85518,85521,85523,85525,85527,85529,85531],{"class":36,"line":263},[34,85519,85520],{"class":181},"      {posts.",[34,85522,61180],{"class":47},[34,85524,8348],{"class":181},[34,85526,1730],{"class":675},[34,85528,4817],{"class":181},[34,85530,3361],{"class":580},[34,85532,13975],{"class":181},[34,85534,85535,85537,85539,85541,85543,85546,85548],{"class":36,"line":275},[34,85536,13980],{"class":181},[34,85538,312],{"class":177},[34,85540,64586],{"class":47},[34,85542,1301],{"class":580},[34,85544,85545],{"class":181},"{post.id}>{post.title}\u003C/",[34,85547,312],{"class":177},[34,85549,1248],{"class":181},[34,85551,85552],{"class":36,"line":700},[34,85553,85554],{"class":181},"      ))}\n",[34,85556,85557,85559,85561],{"class":36,"line":706},[34,85558,74431],{"class":181},[34,85560,309],{"class":177},[34,85562,1248],{"class":181},[34,85564,85565],{"class":36,"line":715},[34,85566,61002],{"class":181},[34,85568,85569],{"class":36,"line":725},[34,85570,693],{"class":181},[102,85572,85574],{"id":85573},"_4-adding-client-side-components","4. Adding Client-Side Components",[25,85576,85578],{"className":13845,"code":85577,"language":8606,"meta":30,"style":30},"'use client';\nimport { useState } from 'react';\n\nexport default function Counter() {\n  const [count, setCount] = useState(0);\n  return (\n    \u003Cdiv>\n      \u003Cbutton onClick={() => setCount(count + 1)}>Count: {count}\u003C/button>\n    \u003C/div>\n  );\n}\n",[20,85579,85580,85587,85601,85605,85618,85644,85650,85658,85692,85700,85704],{"__ignoreMap":30},[34,85581,85582,85585],{"class":36,"line":37},[34,85583,85584],{"class":54},"'use client'",[34,85586,593],{"class":181},[34,85588,85589,85591,85594,85596,85599],{"class":36,"line":44},[34,85590,581],{"class":580},[34,85592,85593],{"class":181}," { useState } ",[34,85595,587],{"class":580},[34,85597,85598],{"class":54}," 'react'",[34,85600,593],{"class":181},[34,85602,85603],{"class":36,"line":58},[34,85604,62],{"emptyLinePlaceholder":61},[34,85606,85607,85609,85611,85613,85616],{"class":36,"line":65},[34,85608,652],{"class":580},[34,85610,7298],{"class":580},[34,85612,8037],{"class":580},[34,85614,85615],{"class":47}," Counter",[34,85617,836],{"class":181},[34,85619,85620,85622,85624,85626,85628,85631,85633,85635,85638,85640,85642],{"class":36,"line":71},[34,85621,17415],{"class":580},[34,85623,8315],{"class":181},[34,85625,4284],{"class":50},[34,85627,1798],{"class":181},[34,85629,85630],{"class":50},"setCount",[34,85632,17799],{"class":181},[34,85634,1301],{"class":580},[34,85636,85637],{"class":47}," useState",[34,85639,1607],{"class":181},[34,85641,2773],{"class":50},[34,85643,1586],{"class":181},[34,85645,85646,85648],{"class":36,"line":77},[34,85647,8155],{"class":580},[34,85649,13975],{"class":181},[34,85651,85652,85654,85656],{"class":36,"line":82},[34,85653,1294],{"class":181},[34,85655,1240],{"class":177},[34,85657,1248],{"class":181},[34,85659,85660,85663,85665,85668,85670,85673,85675,85678,85681,85683,85685,85688,85690],{"class":36,"line":88},[34,85661,85662],{"class":181},"      \u003C",[34,85664,4509],{"class":177},[34,85666,85667],{"class":47}," onClick",[34,85669,1301],{"class":580},[34,85671,85672],{"class":181},"{() ",[34,85674,3361],{"class":580},[34,85676,85677],{"class":47}," setCount",[34,85679,85680],{"class":181},"(count ",[34,85682,2940],{"class":580},[34,85684,3567],{"class":50},[34,85686,85687],{"class":181},")}>Count: {count}\u003C/",[34,85689,4509],{"class":177},[34,85691,1248],{"class":181},[34,85693,85694,85696,85698],{"class":36,"line":242},[34,85695,74431],{"class":181},[34,85697,1240],{"class":177},[34,85699,1248],{"class":181},[34,85701,85702],{"class":36,"line":250},[34,85703,61002],{"class":181},[34,85705,85706],{"class":36,"line":263},[34,85707,693],{"class":181},[102,85709,85711],{"id":85710},"_5-api-routes-example","5. API Routes Example",[25,85713,85715],{"className":13845,"code":85714,"language":8606,"meta":30,"style":30},"// app/api/hello/route.js\nexport async function GET() {\n  return new Response('Hello, world!');\n}\n",[20,85716,85717,85722,85735,85750],{"__ignoreMap":30},[34,85718,85719],{"class":36,"line":37},[34,85720,85721],{"class":40},"// app/api/hello/route.js\n",[34,85723,85724,85726,85728,85730,85733],{"class":36,"line":44},[34,85725,652],{"class":580},[34,85727,33813],{"class":580},[34,85729,8037],{"class":580},[34,85731,85732],{"class":47}," GET",[34,85734,836],{"class":181},[34,85736,85737,85739,85741,85743,85745,85748],{"class":36,"line":58},[34,85738,8155],{"class":580},[34,85740,809],{"class":580},[34,85742,15463],{"class":47},[34,85744,1607],{"class":181},[34,85746,85747],{"class":54},"'Hello, world!'",[34,85749,1586],{"class":181},[34,85751,85752],{"class":36,"line":65},[34,85753,693],{"class":181},[102,85755,85757],{"id":85756},"_6-metadata-configuration","6. Metadata Configuration",[25,85759,85761],{"className":13845,"code":85760,"language":8606,"meta":30,"style":30},"// app/layout.js\nexport const metadata = {\n  title: 'My Next.js App',\n  description: 'Fast, dynamic, and efficient applications with Next.js.',\n};\n",[20,85762,85763,85768,85781,85791,85801],{"__ignoreMap":30},[34,85764,85765],{"class":36,"line":37},[34,85766,85767],{"class":40},"// app/layout.js\n",[34,85769,85770,85772,85774,85777,85779],{"class":36,"line":44},[34,85771,652],{"class":580},[34,85773,3291],{"class":580},[34,85775,85776],{"class":50}," metadata",[34,85778,683],{"class":580},[34,85780,661],{"class":181},[34,85782,85783,85786,85789],{"class":36,"line":58},[34,85784,85785],{"class":181},"  title: ",[34,85787,85788],{"class":54},"'My Next.js App'",[34,85790,624],{"class":181},[34,85792,85793,85796,85799],{"class":36,"line":65},[34,85794,85795],{"class":181},"  description: ",[34,85797,85798],{"class":54},"'Fast, dynamic, and efficient applications with Next.js.'",[34,85800,624],{"class":181},[34,85802,85803],{"class":36,"line":71},[34,85804,17632],{"class":181},[102,85806,85808],{"id":85807},"_7-simplifying-layouts","7. Simplifying Layouts",[25,85810,85812],{"className":13845,"code":85811,"language":8606,"meta":30,"style":30},"// app/layout.js\nexport default function Layout({ children }) {\n  return (\n    \u003Chtml>\n      \u003Cbody>\n        \u003Cheader>My App\u003C/header>\n        \u003Cmain>{children}\u003C/main>\n      \u003C/body>\n    \u003C/html>\n  );\n}\n",[20,85813,85814,85818,85835,85841,85849,85857,85871,85884,85893,85901,85905],{"__ignoreMap":30},[34,85815,85816],{"class":36,"line":37},[34,85817,85767],{"class":40},[34,85819,85820,85822,85824,85826,85829,85831,85833],{"class":36,"line":44},[34,85821,652],{"class":580},[34,85823,7298],{"class":580},[34,85825,8037],{"class":580},[34,85827,85828],{"class":47}," Layout",[34,85830,13858],{"class":181},[34,85832,59908],{"class":675},[34,85834,13879],{"class":181},[34,85836,85837,85839],{"class":36,"line":58},[34,85838,8155],{"class":580},[34,85840,13975],{"class":181},[34,85842,85843,85845,85847],{"class":36,"line":65},[34,85844,1294],{"class":181},[34,85846,1164],{"class":177},[34,85848,1248],{"class":181},[34,85850,85851,85853,85855],{"class":36,"line":71},[34,85852,85662],{"class":181},[34,85854,46502],{"class":177},[34,85856,1248],{"class":181},[34,85858,85859,85861,85864,85867,85869],{"class":36,"line":77},[34,85860,13980],{"class":181},[34,85862,85863],{"class":177},"header",[34,85865,85866],{"class":181},">My App\u003C/",[34,85868,85863],{"class":177},[34,85870,1248],{"class":181},[34,85872,85873,85875,85877,85880,85882],{"class":36,"line":82},[34,85874,13980],{"class":181},[34,85876,8526],{"class":177},[34,85878,85879],{"class":181},">{children}\u003C/",[34,85881,8526],{"class":177},[34,85883,1248],{"class":181},[34,85885,85886,85889,85891],{"class":36,"line":88},[34,85887,85888],{"class":181},"      \u003C/",[34,85890,46502],{"class":177},[34,85892,1248],{"class":181},[34,85894,85895,85897,85899],{"class":36,"line":242},[34,85896,74431],{"class":181},[34,85898,1164],{"class":177},[34,85900,1248],{"class":181},[34,85902,85903],{"class":36,"line":250},[34,85904,61002],{"class":181},[34,85906,85907],{"class":36,"line":263},[34,85908,693],{"class":181},[102,85910,85912],{"id":85911},"_8-adding-loading-and-error-states","8. Adding Loading and Error States",[25,85914,85916],{"className":13845,"code":85915,"language":8606,"meta":30,"style":30},"// app/loading.js\nexport default function Loading() {\n  return \u003Cp>Loading...\u003C/p>;\n}\n\n// app/error.js\nexport default function Error({ error }) {\n  return \u003Cp>Error: {error.message}\u003C/p>;\n}\n",[20,85917,85918,85923,85936,85950,85954,85958,85963,85979,85994],{"__ignoreMap":30},[34,85919,85920],{"class":36,"line":37},[34,85921,85922],{"class":40},"// app/loading.js\n",[34,85924,85925,85927,85929,85931,85934],{"class":36,"line":44},[34,85926,652],{"class":580},[34,85928,7298],{"class":580},[34,85930,8037],{"class":580},[34,85932,85933],{"class":47}," Loading",[34,85935,836],{"class":181},[34,85937,85938,85940,85942,85944,85946,85948],{"class":36,"line":58},[34,85939,8155],{"class":580},[34,85941,5470],{"class":181},[34,85943,16],{"class":177},[34,85945,1407],{"class":181},[34,85947,16],{"class":177},[34,85949,4834],{"class":181},[34,85951,85952],{"class":36,"line":65},[34,85953,693],{"class":181},[34,85955,85956],{"class":36,"line":71},[34,85957,62],{"emptyLinePlaceholder":61},[34,85959,85960],{"class":36,"line":77},[34,85961,85962],{"class":40},"// app/error.js\n",[34,85964,85965,85967,85969,85971,85973,85975,85977],{"class":36,"line":82},[34,85966,652],{"class":580},[34,85968,7298],{"class":580},[34,85970,8037],{"class":580},[34,85972,48752],{"class":47},[34,85974,13858],{"class":181},[34,85976,1908],{"class":675},[34,85978,13879],{"class":181},[34,85980,85981,85983,85985,85987,85990,85992],{"class":36,"line":88},[34,85982,8155],{"class":580},[34,85984,5470],{"class":181},[34,85986,16],{"class":177},[34,85988,85989],{"class":181},">Error: {error.message}\u003C/",[34,85991,16],{"class":177},[34,85993,4834],{"class":181},[34,85995,85996],{"class":36,"line":242},[34,85997,693],{"class":181},[102,85999,86001],{"id":86000},"_9-using-environment-variables","9. Using Environment Variables",[25,86003,86005],{"className":13845,"code":86004,"language":8606,"meta":30,"style":30},"// app/api/env/route.js\nexport async function GET() {\n  return new Response(`Environment: ${process.env.NODE_ENV}`);\n}\n",[20,86006,86007,86012,86024,86052],{"__ignoreMap":30},[34,86008,86009],{"class":36,"line":37},[34,86010,86011],{"class":40},"// app/api/env/route.js\n",[34,86013,86014,86016,86018,86020,86022],{"class":36,"line":44},[34,86015,652],{"class":580},[34,86017,33813],{"class":580},[34,86019,8037],{"class":580},[34,86021,85732],{"class":47},[34,86023,836],{"class":181},[34,86025,86026,86028,86030,86032,86034,86037,86039,86041,86044,86046,86048,86050],{"class":36,"line":58},[34,86027,8155],{"class":580},[34,86029,809],{"class":580},[34,86031,15463],{"class":47},[34,86033,1607],{"class":181},[34,86035,86036],{"class":54},"`Environment: ${",[34,86038,72211],{"class":181},[34,86040,151],{"class":54},[34,86042,86043],{"class":181},"env",[34,86045,151],{"class":54},[34,86047,14704],{"class":50},[34,86049,3925],{"class":54},[34,86051,1586],{"class":181},[34,86053,86054],{"class":36,"line":65},[34,86055,693],{"class":181},[102,86057,86059],{"id":86058},"_10-image-optimization","10. Image Optimization",[25,86061,86063],{"className":13845,"code":86062,"language":8606,"meta":30,"style":30},"import Image from 'next/image';\n\nexport default function OptimizedImage() {\n  return \u003CImage src=\"/logo.png\" width={400} height={300} alt=\"Logo\" />;\n}\n",[20,86064,86065,86079,86083,86096,86145],{"__ignoreMap":30},[34,86066,86067,86069,86072,86074,86077],{"class":36,"line":37},[34,86068,581],{"class":580},[34,86070,86071],{"class":181}," Image ",[34,86073,587],{"class":580},[34,86075,86076],{"class":54}," 'next/image'",[34,86078,593],{"class":181},[34,86080,86081],{"class":36,"line":44},[34,86082,62],{"emptyLinePlaceholder":61},[34,86084,86085,86087,86089,86091,86094],{"class":36,"line":58},[34,86086,652],{"class":580},[34,86088,7298],{"class":580},[34,86090,8037],{"class":580},[34,86092,86093],{"class":47}," OptimizedImage",[34,86095,836],{"class":181},[34,86097,86098,86100,86102,86105,86108,86110,86113,86116,86118,86120,86122,86124,86126,86128,86130,86132,86134,86137,86139,86142],{"class":36,"line":65},[34,86099,8155],{"class":580},[34,86101,5470],{"class":181},[34,86103,86104],{"class":50},"Image",[34,86106,86107],{"class":47}," src",[34,86109,1301],{"class":580},[34,86111,86112],{"class":54},"\"/logo.png\"",[34,86114,86115],{"class":47}," width",[34,86117,1301],{"class":580},[34,86119,13990],{"class":181},[34,86121,42113],{"class":50},[34,86123,2276],{"class":181},[34,86125,41299],{"class":47},[34,86127,1301],{"class":580},[34,86129,13990],{"class":181},[34,86131,20934],{"class":50},[34,86133,2276],{"class":181},[34,86135,86136],{"class":47},"alt",[34,86138,1301],{"class":580},[34,86140,86141],{"class":54},"\"Logo\"",[34,86143,86144],{"class":181}," />;\n",[34,86146,86147],{"class":36,"line":71},[34,86148,693],{"class":181},[388,86150,86151],{},"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 .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 .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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":30,"searchDepth":44,"depth":44,"links":86153},[86154,86155,86156,86157,86158,86159,86160,86161,86162,86163],{"id":85315,"depth":58,"text":85316},{"id":85361,"depth":58,"text":85362},{"id":85407,"depth":58,"text":85408},{"id":85573,"depth":58,"text":85574},{"id":85710,"depth":58,"text":85711},{"id":85756,"depth":58,"text":85757},{"id":85807,"depth":58,"text":85808},{"id":85911,"depth":58,"text":85912},{"id":86000,"depth":58,"text":86001},{"id":86058,"depth":58,"text":86059},"A collection of concise examples to showcase common Next.js features and use cases.",{"category":75200,"featured":65586,"icon":86166},"\u003Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24'>\u003Cpath fill='#000' d='M12 2C8.13 2 5 8 5 12s3.13 10 7 10 7-3.13 7-7-3.13-10-7-10zM8 12l4-4v8l-4-4z'/>\u003C/svg>","/examples/nextjs",{"title":85306,"description":86164},"examples/nextjs",[86171,86172,75200,86173],"nextjs","react","web-dev","kbHOfp-uGkqZR4a3uUOsRH5gatesUn81ApcqBRlKFfQ",{"id":86176,"title":86177,"body":86178,"date":402,"description":87282,"extension":404,"meta":87283,"navigation":61,"order":402,"path":87285,"seo":87286,"stem":87287,"subject":402,"tags":87288,"__hash__":87289},"topics/examples/svelte.md","Svelte",{"type":8,"value":86179,"toc":87269},[86180,86182,86356,86358,86394,86398,86453,86457,86520,86524,86635,86637,86691,86695,86773,86777,86884,86888,86962,86966,87049,87053,87206,87267],[11,86181,563],{"id":568},[25,86183,86187],{"className":86184,"code":86185,"language":86186,"meta":30,"style":30},"language-svelte shiki shiki-themes github-light github-dark","\u003Cscript>\n  // Declare a reactive variable for user input\n  let name = 'World';\n\u003C/script>\n\n\u003Cmain>\n  \u003C!-- Display a greeting dynamically bound to the name variable -->\n  \u003Ch1>Hello {name}!\u003C/h1>\n\n  \u003C!-- Input field with two-way binding to update the name variable -->\n  \u003Cinput bind:value={name} placeholder=\"Enter your name\" />\n\u003C/main>\n\n\u003Cstyle>\n  /* Ensure main content is styled for readability and alignment */\n  main {\n    font-family: Arial, sans-serif;\n    text-align: center;\n    padding: 2rem;\n  }\n\n  /* Style the heading with distinct color */\n  h1 {\n    color: #5a5ee0;\n  }\n\n  /* Input field design for better user experience */\n  input {\n    margin-top: 1rem;\n    padding: 0.5rem;\n    font-size: 1rem;\n    border: 1px solid #ccc;\n    border-radius: 4px;\n  }\n\u003C/style>\n","svelte",[20,86188,86189,86194,86199,86204,86209,86213,86218,86223,86228,86232,86237,86242,86247,86251,86256,86261,86266,86271,86276,86281,86285,86289,86294,86299,86304,86308,86312,86317,86322,86327,86332,86337,86342,86347,86351],{"__ignoreMap":30},[34,86190,86191],{"class":36,"line":37},[34,86192,86193],{},"\u003Cscript>\n",[34,86195,86196],{"class":36,"line":44},[34,86197,86198],{},"  // Declare a reactive variable for user input\n",[34,86200,86201],{"class":36,"line":58},[34,86202,86203],{},"  let name = 'World';\n",[34,86205,86206],{"class":36,"line":65},[34,86207,86208],{},"\u003C/script>\n",[34,86210,86211],{"class":36,"line":71},[34,86212,62],{"emptyLinePlaceholder":61},[34,86214,86215],{"class":36,"line":77},[34,86216,86217],{},"\u003Cmain>\n",[34,86219,86220],{"class":36,"line":82},[34,86221,86222],{},"  \u003C!-- Display a greeting dynamically bound to the name variable -->\n",[34,86224,86225],{"class":36,"line":88},[34,86226,86227],{},"  \u003Ch1>Hello {name}!\u003C/h1>\n",[34,86229,86230],{"class":36,"line":242},[34,86231,62],{"emptyLinePlaceholder":61},[34,86233,86234],{"class":36,"line":250},[34,86235,86236],{},"  \u003C!-- Input field with two-way binding to update the name variable -->\n",[34,86238,86239],{"class":36,"line":263},[34,86240,86241],{},"  \u003Cinput bind:value={name} placeholder=\"Enter your name\" />\n",[34,86243,86244],{"class":36,"line":275},[34,86245,86246],{},"\u003C/main>\n",[34,86248,86249],{"class":36,"line":700},[34,86250,62],{"emptyLinePlaceholder":61},[34,86252,86253],{"class":36,"line":706},[34,86254,86255],{},"\u003Cstyle>\n",[34,86257,86258],{"class":36,"line":715},[34,86259,86260],{},"  /* Ensure main content is styled for readability and alignment */\n",[34,86262,86263],{"class":36,"line":725},[34,86264,86265],{},"  main {\n",[34,86267,86268],{"class":36,"line":734},[34,86269,86270],{},"    font-family: Arial, sans-serif;\n",[34,86272,86273],{"class":36,"line":742},[34,86274,86275],{},"    text-align: center;\n",[34,86277,86278],{"class":36,"line":748},[34,86279,86280],{},"    padding: 2rem;\n",[34,86282,86283],{"class":36,"line":754},[34,86284,857],{},[34,86286,86287],{"class":36,"line":759},[34,86288,62],{"emptyLinePlaceholder":61},[34,86290,86291],{"class":36,"line":771},[34,86292,86293],{},"  /* Style the heading with distinct color */\n",[34,86295,86296],{"class":36,"line":794},[34,86297,86298],{},"  h1 {\n",[34,86300,86301],{"class":36,"line":824},[34,86302,86303],{},"    color: #5a5ee0;\n",[34,86305,86306],{"class":36,"line":830},[34,86307,857],{},[34,86309,86310],{"class":36,"line":839},[34,86311,62],{"emptyLinePlaceholder":61},[34,86313,86314],{"class":36,"line":854},[34,86315,86316],{},"  /* Input field design for better user experience */\n",[34,86318,86319],{"class":36,"line":860},[34,86320,86321],{},"  input {\n",[34,86323,86324],{"class":36,"line":865},[34,86325,86326],{},"    margin-top: 1rem;\n",[34,86328,86329],{"class":36,"line":870},[34,86330,86331],{},"    padding: 0.5rem;\n",[34,86333,86334],{"class":36,"line":876},[34,86335,86336],{},"    font-size: 1rem;\n",[34,86338,86339],{"class":36,"line":885},[34,86340,86341],{},"    border: 1px solid #ccc;\n",[34,86343,86344],{"class":36,"line":895},[34,86345,86346],{},"    border-radius: 4px;\n",[34,86348,86349],{"class":36,"line":904},[34,86350,857],{},[34,86352,86353],{"class":36,"line":915},[34,86354,86355],{},"\u003C/style>\n",[11,86357,81392],{"id":81391},[25,86359,86361],{"className":86184,"code":86360,"language":86186,"meta":30,"style":30},"\u003Cscript>\n  function greet() {\n    alert('Welcome to Svelte!');\n  }\n\u003C/script>\n\n\u003Cbutton on:click={greet}>Click me!\u003C/button>\n",[20,86362,86363,86367,86372,86377,86381,86385,86389],{"__ignoreMap":30},[34,86364,86365],{"class":36,"line":37},[34,86366,86193],{},[34,86368,86369],{"class":36,"line":44},[34,86370,86371],{},"  function greet() {\n",[34,86373,86374],{"class":36,"line":58},[34,86375,86376],{},"    alert('Welcome to Svelte!');\n",[34,86378,86379],{"class":36,"line":65},[34,86380,857],{},[34,86382,86383],{"class":36,"line":71},[34,86384,86208],{},[34,86386,86387],{"class":36,"line":77},[34,86388,62],{"emptyLinePlaceholder":61},[34,86390,86391],{"class":36,"line":82},[34,86392,86393],{},"\u003Cbutton on:click={greet}>Click me!\u003C/button>\n",[11,86395,86397],{"id":86396},"reactive-declarations","Reactive Declarations",[25,86399,86401],{"className":86184,"code":86400,"language":86186,"meta":30,"style":30},"\u003Cscript>\n  let count = 0;\n\n  // Reactive statements\n  $: doubled = count * 2;\n\u003C/script>\n\n\u003Cp>Count: {count}\u003C/p>\n\u003Cp>Doubled: {doubled}\u003C/p>\n\n\u003Cbutton on:click={() => count++}>Increment\u003C/button>\n",[20,86402,86403,86407,86412,86416,86421,86426,86430,86434,86439,86444,86448],{"__ignoreMap":30},[34,86404,86405],{"class":36,"line":37},[34,86406,86193],{},[34,86408,86409],{"class":36,"line":44},[34,86410,86411],{},"  let count = 0;\n",[34,86413,86414],{"class":36,"line":58},[34,86415,62],{"emptyLinePlaceholder":61},[34,86417,86418],{"class":36,"line":65},[34,86419,86420],{},"  // Reactive statements\n",[34,86422,86423],{"class":36,"line":71},[34,86424,86425],{},"  $: doubled = count * 2;\n",[34,86427,86428],{"class":36,"line":77},[34,86429,86208],{},[34,86431,86432],{"class":36,"line":82},[34,86433,62],{"emptyLinePlaceholder":61},[34,86435,86436],{"class":36,"line":88},[34,86437,86438],{},"\u003Cp>Count: {count}\u003C/p>\n",[34,86440,86441],{"class":36,"line":242},[34,86442,86443],{},"\u003Cp>Doubled: {doubled}\u003C/p>\n",[34,86445,86446],{"class":36,"line":250},[34,86447,62],{"emptyLinePlaceholder":61},[34,86449,86450],{"class":36,"line":263},[34,86451,86452],{},"\u003Cbutton on:click={() => count++}>Increment\u003C/button>\n",[11,86454,86456],{"id":86455},"component-props","Component Props",[25,86458,86460],{"className":86184,"code":86459,"language":86186,"meta":30,"style":30},"\u003C!-- Greeting.svelte -->\n\u003Cscript>\n  export let name;\n\u003C/script>\n\n\u003Cp>Hello {name}!\u003C/p>\n\n\u003C!-- App.svelte -->\n\u003Cscript>\n  import Greeting from './Greeting.svelte';\n\u003C/script>\n\n\u003CGreeting name=\"Svelte\" />\n",[20,86461,86462,86467,86471,86476,86480,86484,86489,86493,86498,86502,86507,86511,86515],{"__ignoreMap":30},[34,86463,86464],{"class":36,"line":37},[34,86465,86466],{},"\u003C!-- Greeting.svelte -->\n",[34,86468,86469],{"class":36,"line":44},[34,86470,86193],{},[34,86472,86473],{"class":36,"line":58},[34,86474,86475],{},"  export let name;\n",[34,86477,86478],{"class":36,"line":65},[34,86479,86208],{},[34,86481,86482],{"class":36,"line":71},[34,86483,62],{"emptyLinePlaceholder":61},[34,86485,86486],{"class":36,"line":77},[34,86487,86488],{},"\u003Cp>Hello {name}!\u003C/p>\n",[34,86490,86491],{"class":36,"line":82},[34,86492,62],{"emptyLinePlaceholder":61},[34,86494,86495],{"class":36,"line":88},[34,86496,86497],{},"\u003C!-- App.svelte -->\n",[34,86499,86500],{"class":36,"line":242},[34,86501,86193],{},[34,86503,86504],{"class":36,"line":250},[34,86505,86506],{},"  import Greeting from './Greeting.svelte';\n",[34,86508,86509],{"class":36,"line":263},[34,86510,86208],{},[34,86512,86513],{"class":36,"line":275},[34,86514,62],{"emptyLinePlaceholder":61},[34,86516,86517],{"class":36,"line":700},[34,86518,86519],{},"\u003CGreeting name=\"Svelte\" />\n",[11,86521,86523],{"id":86522},"slots","Slots",[25,86525,86527],{"className":86184,"code":86526,"language":86186,"meta":30,"style":30},"\u003C!-- Modal.svelte -->\n\u003Cdiv class=\"modal\">\n  \u003Cslot>\u003C/slot>\n\u003C/div>\n\n\u003Cstyle>\n  .modal {\n    padding: 1em;\n    background: rgba(0, 0, 0, 0.8);\n    color: white;\n    border-radius: 8px;\n  }\n\u003C/style>\n\n\u003C!-- App.svelte -->\n\u003Cscript>\n  import Modal from './Modal.svelte';\n\u003C/script>\n\n\u003CModal>\n  \u003Ch2>Modal Content\u003C/h2>\n  \u003Cp>This is a simple modal implementation using slots.\u003C/p>\n\u003C/Modal>\n",[20,86528,86529,86534,86539,86544,86549,86553,86557,86562,86567,86572,86577,86582,86586,86590,86594,86598,86602,86607,86611,86615,86620,86625,86630],{"__ignoreMap":30},[34,86530,86531],{"class":36,"line":37},[34,86532,86533],{},"\u003C!-- Modal.svelte -->\n",[34,86535,86536],{"class":36,"line":44},[34,86537,86538],{},"\u003Cdiv class=\"modal\">\n",[34,86540,86541],{"class":36,"line":58},[34,86542,86543],{},"  \u003Cslot>\u003C/slot>\n",[34,86545,86546],{"class":36,"line":65},[34,86547,86548],{},"\u003C/div>\n",[34,86550,86551],{"class":36,"line":71},[34,86552,62],{"emptyLinePlaceholder":61},[34,86554,86555],{"class":36,"line":77},[34,86556,86255],{},[34,86558,86559],{"class":36,"line":82},[34,86560,86561],{},"  .modal {\n",[34,86563,86564],{"class":36,"line":88},[34,86565,86566],{},"    padding: 1em;\n",[34,86568,86569],{"class":36,"line":242},[34,86570,86571],{},"    background: rgba(0, 0, 0, 0.8);\n",[34,86573,86574],{"class":36,"line":250},[34,86575,86576],{},"    color: white;\n",[34,86578,86579],{"class":36,"line":263},[34,86580,86581],{},"    border-radius: 8px;\n",[34,86583,86584],{"class":36,"line":275},[34,86585,857],{},[34,86587,86588],{"class":36,"line":700},[34,86589,86355],{},[34,86591,86592],{"class":36,"line":706},[34,86593,62],{"emptyLinePlaceholder":61},[34,86595,86596],{"class":36,"line":715},[34,86597,86497],{},[34,86599,86600],{"class":36,"line":725},[34,86601,86193],{},[34,86603,86604],{"class":36,"line":734},[34,86605,86606],{},"  import Modal from './Modal.svelte';\n",[34,86608,86609],{"class":36,"line":742},[34,86610,86208],{},[34,86612,86613],{"class":36,"line":748},[34,86614,62],{"emptyLinePlaceholder":61},[34,86616,86617],{"class":36,"line":754},[34,86618,86619],{},"\u003CModal>\n",[34,86621,86622],{"class":36,"line":759},[34,86623,86624],{},"  \u003Ch2>Modal Content\u003C/h2>\n",[34,86626,86627],{"class":36,"line":771},[34,86628,86629],{},"  \u003Cp>This is a simple modal implementation using slots.\u003C/p>\n",[34,86631,86632],{"class":36,"line":794},[34,86633,86634],{},"\u003C/Modal>\n",[11,86636,2244],{"id":2249},[25,86638,86640],{"className":86184,"code":86639,"language":86186,"meta":30,"style":30},"\u003Cscript>\n  import { onMount, onDestroy } from 'svelte';\n\n  onMount(() => {\n    console.log('Component is mounted');\n  });\n\n  onDestroy(() => {\n    console.log('Cleaning up...');\n  });\n\u003C/script>\n",[20,86641,86642,86646,86651,86655,86660,86665,86669,86673,86678,86683,86687],{"__ignoreMap":30},[34,86643,86644],{"class":36,"line":37},[34,86645,86193],{},[34,86647,86648],{"class":36,"line":44},[34,86649,86650],{},"  import { onMount, onDestroy } from 'svelte';\n",[34,86652,86653],{"class":36,"line":58},[34,86654,62],{"emptyLinePlaceholder":61},[34,86656,86657],{"class":36,"line":65},[34,86658,86659],{},"  onMount(() => {\n",[34,86661,86662],{"class":36,"line":71},[34,86663,86664],{},"    console.log('Component is mounted');\n",[34,86666,86667],{"class":36,"line":77},[34,86668,3186],{},[34,86670,86671],{"class":36,"line":82},[34,86672,62],{"emptyLinePlaceholder":61},[34,86674,86675],{"class":36,"line":88},[34,86676,86677],{},"  onDestroy(() => {\n",[34,86679,86680],{"class":36,"line":242},[34,86681,86682],{},"    console.log('Cleaning up...');\n",[34,86684,86685],{"class":36,"line":250},[34,86686,3186],{},[34,86688,86689],{"class":36,"line":263},[34,86690,86208],{},[11,86692,86694],{"id":86693},"transitions","Transitions",[25,86696,86698],{"className":86184,"code":86697,"language":86186,"meta":30,"style":30},"\u003Cscript>\n  import { fade, slide } from 'svelte/transition';\n\n  let visible = true;\n\n  function toggle() {\n    visible = !visible;\n  }\n\u003C/script>\n\n\u003Cbutton on:click={toggle}>Toggle Visibility\u003C/button>\n\n{#if visible}\n  \u003Cp transition:fade>Hello with fade!\u003C/p>\n  \u003Cdiv transition:slide>Sliding into view\u003C/div>\n{/if}\n",[20,86699,86700,86704,86709,86713,86718,86722,86727,86732,86736,86740,86744,86749,86753,86758,86763,86768],{"__ignoreMap":30},[34,86701,86702],{"class":36,"line":37},[34,86703,86193],{},[34,86705,86706],{"class":36,"line":44},[34,86707,86708],{},"  import { fade, slide } from 'svelte/transition';\n",[34,86710,86711],{"class":36,"line":58},[34,86712,62],{"emptyLinePlaceholder":61},[34,86714,86715],{"class":36,"line":65},[34,86716,86717],{},"  let visible = true;\n",[34,86719,86720],{"class":36,"line":71},[34,86721,62],{"emptyLinePlaceholder":61},[34,86723,86724],{"class":36,"line":77},[34,86725,86726],{},"  function toggle() {\n",[34,86728,86729],{"class":36,"line":82},[34,86730,86731],{},"    visible = !visible;\n",[34,86733,86734],{"class":36,"line":88},[34,86735,857],{},[34,86737,86738],{"class":36,"line":242},[34,86739,86208],{},[34,86741,86742],{"class":36,"line":250},[34,86743,62],{"emptyLinePlaceholder":61},[34,86745,86746],{"class":36,"line":263},[34,86747,86748],{},"\u003Cbutton on:click={toggle}>Toggle Visibility\u003C/button>\n",[34,86750,86751],{"class":36,"line":275},[34,86752,62],{"emptyLinePlaceholder":61},[34,86754,86755],{"class":36,"line":700},[34,86756,86757],{},"{#if visible}\n",[34,86759,86760],{"class":36,"line":706},[34,86761,86762],{},"  \u003Cp transition:fade>Hello with fade!\u003C/p>\n",[34,86764,86765],{"class":36,"line":715},[34,86766,86767],{},"  \u003Cdiv transition:slide>Sliding into view\u003C/div>\n",[34,86769,86770],{"class":36,"line":725},[34,86771,86772],{},"{/if}\n",[11,86774,86776],{"id":86775},"custom-stores","Custom Stores",[25,86778,86780],{"className":86184,"code":86779,"language":86186,"meta":30,"style":30},"\u003Cscript>\n  import { writable } from 'svelte/store';\n\n  // Custom writable store with built-in reset capability\n  function createCounter() {\n    const { subscribe, set, update } = writable(0);\n\n    return {\n      subscribe,\n      increment: () => update(n => n + 1),\n      decrement: () => update(n => n - 1),\n      reset: () => set(0)\n    };\n  }\n\n  const counter = createCounter();\n\u003C/script>\n\n\u003Cp>Count: {$counter}\u003C/p>\n\u003Cbutton on:click={counter.increment}>+\u003C/button>\n\u003Cbutton on:click={counter.decrement}>-\u003C/button>\n\u003Cbutton on:click={counter.reset}>Reset\u003C/button>\n",[20,86781,86782,86786,86791,86795,86800,86805,86810,86814,86819,86824,86829,86834,86839,86843,86847,86851,86856,86860,86864,86869,86874,86879],{"__ignoreMap":30},[34,86783,86784],{"class":36,"line":37},[34,86785,86193],{},[34,86787,86788],{"class":36,"line":44},[34,86789,86790],{},"  import { writable } from 'svelte/store';\n",[34,86792,86793],{"class":36,"line":58},[34,86794,62],{"emptyLinePlaceholder":61},[34,86796,86797],{"class":36,"line":65},[34,86798,86799],{},"  // Custom writable store with built-in reset capability\n",[34,86801,86802],{"class":36,"line":71},[34,86803,86804],{},"  function createCounter() {\n",[34,86806,86807],{"class":36,"line":77},[34,86808,86809],{},"    const { subscribe, set, update } = writable(0);\n",[34,86811,86812],{"class":36,"line":82},[34,86813,62],{"emptyLinePlaceholder":61},[34,86815,86816],{"class":36,"line":88},[34,86817,86818],{},"    return {\n",[34,86820,86821],{"class":36,"line":242},[34,86822,86823],{},"      subscribe,\n",[34,86825,86826],{"class":36,"line":250},[34,86827,86828],{},"      increment: () => update(n => n + 1),\n",[34,86830,86831],{"class":36,"line":263},[34,86832,86833],{},"      decrement: () => update(n => n - 1),\n",[34,86835,86836],{"class":36,"line":275},[34,86837,86838],{},"      reset: () => set(0)\n",[34,86840,86841],{"class":36,"line":700},[34,86842,27407],{},[34,86844,86845],{"class":36,"line":706},[34,86846,857],{},[34,86848,86849],{"class":36,"line":715},[34,86850,62],{"emptyLinePlaceholder":61},[34,86852,86853],{"class":36,"line":725},[34,86854,86855],{},"  const counter = createCounter();\n",[34,86857,86858],{"class":36,"line":734},[34,86859,86208],{},[34,86861,86862],{"class":36,"line":742},[34,86863,62],{"emptyLinePlaceholder":61},[34,86865,86866],{"class":36,"line":748},[34,86867,86868],{},"\u003Cp>Count: {$counter}\u003C/p>\n",[34,86870,86871],{"class":36,"line":754},[34,86872,86873],{},"\u003Cbutton on:click={counter.increment}>+\u003C/button>\n",[34,86875,86876],{"class":36,"line":759},[34,86877,86878],{},"\u003Cbutton on:click={counter.decrement}>-\u003C/button>\n",[34,86880,86881],{"class":36,"line":771},[34,86882,86883],{},"\u003Cbutton on:click={counter.reset}>Reset\u003C/button>\n",[11,86885,86887],{"id":86886},"derived-stores","Derived Stores",[25,86889,86891],{"className":86184,"code":86890,"language":86186,"meta":30,"style":30},"\u003Cscript>\n  import { writable, derived } from 'svelte/store';\n\n  const firstName = writable('');\n  const lastName = writable('');\n\n  const fullName = derived(\n    [firstName, lastName],\n    ([$firstName, $lastName]) => `${$firstName} ${$lastName}`\n  );\n\u003C/script>\n\n\u003Cinput bind:value={$firstName} placeholder=\"First name\">\n\u003Cinput bind:value={$lastName} placeholder=\"Last name\">\n\u003Cp>Full Name: {$fullName}\u003C/p>\n",[20,86892,86893,86897,86902,86906,86911,86916,86920,86925,86930,86935,86939,86943,86947,86952,86957],{"__ignoreMap":30},[34,86894,86895],{"class":36,"line":37},[34,86896,86193],{},[34,86898,86899],{"class":36,"line":44},[34,86900,86901],{},"  import { writable, derived } from 'svelte/store';\n",[34,86903,86904],{"class":36,"line":58},[34,86905,62],{"emptyLinePlaceholder":61},[34,86907,86908],{"class":36,"line":65},[34,86909,86910],{},"  const firstName = writable('');\n",[34,86912,86913],{"class":36,"line":71},[34,86914,86915],{},"  const lastName = writable('');\n",[34,86917,86918],{"class":36,"line":77},[34,86919,62],{"emptyLinePlaceholder":61},[34,86921,86922],{"class":36,"line":82},[34,86923,86924],{},"  const fullName = derived(\n",[34,86926,86927],{"class":36,"line":88},[34,86928,86929],{},"    [firstName, lastName],\n",[34,86931,86932],{"class":36,"line":242},[34,86933,86934],{},"    ([$firstName, $lastName]) => `${$firstName} ${$lastName}`\n",[34,86936,86937],{"class":36,"line":250},[34,86938,61002],{},[34,86940,86941],{"class":36,"line":263},[34,86942,86208],{},[34,86944,86945],{"class":36,"line":275},[34,86946,62],{"emptyLinePlaceholder":61},[34,86948,86949],{"class":36,"line":700},[34,86950,86951],{},"\u003Cinput bind:value={$firstName} placeholder=\"First name\">\n",[34,86953,86954],{"class":36,"line":706},[34,86955,86956],{},"\u003Cinput bind:value={$lastName} placeholder=\"Last name\">\n",[34,86958,86959],{"class":36,"line":715},[34,86960,86961],{},"\u003Cp>Full Name: {$fullName}\u003C/p>\n",[11,86963,86965],{"id":86964},"animations","Animations",[25,86967,86969],{"className":86184,"code":86968,"language":86186,"meta":30,"style":30},"\u003Cscript>\n  import { flip } from 'svelte/animate';\n\n  let items = ['First', 'Second', 'Third'];\n\n  function shuffle() {\n    items = [...items].sort(() => Math.random() - 0.5);\n  }\n\u003C/script>\n\n\u003Cbutton on:click={shuffle}>Shuffle\u003C/button>\n\n\u003Cul>\n  {#each items as item (item)}\n    \u003Cli animate:flip>{item}\u003C/li>\n  {/each}\n\u003C/ul>\n",[20,86970,86971,86975,86980,86984,86989,86993,86998,87003,87007,87011,87015,87020,87024,87029,87034,87039,87044],{"__ignoreMap":30},[34,86972,86973],{"class":36,"line":37},[34,86974,86193],{},[34,86976,86977],{"class":36,"line":44},[34,86978,86979],{},"  import { flip } from 'svelte/animate';\n",[34,86981,86982],{"class":36,"line":58},[34,86983,62],{"emptyLinePlaceholder":61},[34,86985,86986],{"class":36,"line":65},[34,86987,86988],{},"  let items = ['First', 'Second', 'Third'];\n",[34,86990,86991],{"class":36,"line":71},[34,86992,62],{"emptyLinePlaceholder":61},[34,86994,86995],{"class":36,"line":77},[34,86996,86997],{},"  function shuffle() {\n",[34,86999,87000],{"class":36,"line":82},[34,87001,87002],{},"    items = [...items].sort(() => Math.random() - 0.5);\n",[34,87004,87005],{"class":36,"line":88},[34,87006,857],{},[34,87008,87009],{"class":36,"line":242},[34,87010,86208],{},[34,87012,87013],{"class":36,"line":250},[34,87014,62],{"emptyLinePlaceholder":61},[34,87016,87017],{"class":36,"line":263},[34,87018,87019],{},"\u003Cbutton on:click={shuffle}>Shuffle\u003C/button>\n",[34,87021,87022],{"class":36,"line":275},[34,87023,62],{"emptyLinePlaceholder":61},[34,87025,87026],{"class":36,"line":700},[34,87027,87028],{},"\u003Cul>\n",[34,87030,87031],{"class":36,"line":706},[34,87032,87033],{},"  {#each items as item (item)}\n",[34,87035,87036],{"class":36,"line":715},[34,87037,87038],{},"    \u003Cli animate:flip>{item}\u003C/li>\n",[34,87040,87041],{"class":36,"line":725},[34,87042,87043],{},"  {/each}\n",[34,87045,87046],{"class":36,"line":734},[34,87047,87048],{},"\u003C/ul>\n",[11,87050,87052],{"id":87051},"advanced-slots","Advanced Slots",[25,87054,87056],{"className":86184,"code":87055,"language":86186,"meta":30,"style":30},"\u003C!-- Card.svelte -->\n\u003Cscript>\n  export let title;\n\u003C/script>\n\n\u003Cdiv class=\"card\">\n  \u003Cheader>\n    \u003Cslot name=\"header\">{title}\u003C/slot>\n  \u003C/header>\n  \u003Cmain>\n    \u003Cslot>\n      \u003Cp>Default content goes here.\u003C/p>\n    \u003C/slot>\n  \u003C/main>\n  \u003Cfooter>\n    \u003Cslot name=\"footer\">\n      \u003Cbutton>Default footer button\u003C/button>\n    \u003C/slot>\n  \u003C/footer>\n\u003C/div>\n\n\u003Cstyle>\n  .card {\n    border: 1px solid #ccc;\n    border-radius: 8px;\n    padding: 16px;\n    max-width: 400px;\n  }\n  header, main, footer {\n    margin-bottom: 8px;\n  }\n\u003C/style>\n",[20,87057,87058,87063,87067,87072,87076,87080,87085,87090,87095,87100,87105,87110,87115,87120,87125,87130,87135,87140,87144,87149,87153,87157,87161,87166,87170,87174,87179,87184,87188,87193,87198,87202],{"__ignoreMap":30},[34,87059,87060],{"class":36,"line":37},[34,87061,87062],{},"\u003C!-- Card.svelte -->\n",[34,87064,87065],{"class":36,"line":44},[34,87066,86193],{},[34,87068,87069],{"class":36,"line":58},[34,87070,87071],{},"  export let title;\n",[34,87073,87074],{"class":36,"line":65},[34,87075,86208],{},[34,87077,87078],{"class":36,"line":71},[34,87079,62],{"emptyLinePlaceholder":61},[34,87081,87082],{"class":36,"line":77},[34,87083,87084],{},"\u003Cdiv class=\"card\">\n",[34,87086,87087],{"class":36,"line":82},[34,87088,87089],{},"  \u003Cheader>\n",[34,87091,87092],{"class":36,"line":88},[34,87093,87094],{},"    \u003Cslot name=\"header\">{title}\u003C/slot>\n",[34,87096,87097],{"class":36,"line":242},[34,87098,87099],{},"  \u003C/header>\n",[34,87101,87102],{"class":36,"line":250},[34,87103,87104],{},"  \u003Cmain>\n",[34,87106,87107],{"class":36,"line":263},[34,87108,87109],{},"    \u003Cslot>\n",[34,87111,87112],{"class":36,"line":275},[34,87113,87114],{},"      \u003Cp>Default content goes here.\u003C/p>\n",[34,87116,87117],{"class":36,"line":700},[34,87118,87119],{},"    \u003C/slot>\n",[34,87121,87122],{"class":36,"line":706},[34,87123,87124],{},"  \u003C/main>\n",[34,87126,87127],{"class":36,"line":715},[34,87128,87129],{},"  \u003Cfooter>\n",[34,87131,87132],{"class":36,"line":725},[34,87133,87134],{},"    \u003Cslot name=\"footer\">\n",[34,87136,87137],{"class":36,"line":734},[34,87138,87139],{},"      \u003Cbutton>Default footer button\u003C/button>\n",[34,87141,87142],{"class":36,"line":742},[34,87143,87119],{},[34,87145,87146],{"class":36,"line":748},[34,87147,87148],{},"  \u003C/footer>\n",[34,87150,87151],{"class":36,"line":754},[34,87152,86548],{},[34,87154,87155],{"class":36,"line":759},[34,87156,62],{"emptyLinePlaceholder":61},[34,87158,87159],{"class":36,"line":771},[34,87160,86255],{},[34,87162,87163],{"class":36,"line":794},[34,87164,87165],{},"  .card {\n",[34,87167,87168],{"class":36,"line":824},[34,87169,86341],{},[34,87171,87172],{"class":36,"line":830},[34,87173,86581],{},[34,87175,87176],{"class":36,"line":839},[34,87177,87178],{},"    padding: 16px;\n",[34,87180,87181],{"class":36,"line":854},[34,87182,87183],{},"    max-width: 400px;\n",[34,87185,87186],{"class":36,"line":860},[34,87187,857],{},[34,87189,87190],{"class":36,"line":865},[34,87191,87192],{},"  header, main, footer {\n",[34,87194,87195],{"class":36,"line":870},[34,87196,87197],{},"    margin-bottom: 8px;\n",[34,87199,87200],{"class":36,"line":876},[34,87201,857],{},[34,87203,87204],{"class":36,"line":885},[34,87205,86355],{},[25,87207,87209],{"className":86184,"code":87208,"language":86186,"meta":30,"style":30},"\u003C!-- App.svelte -->\n\u003Cscript>\n  import Card from './Card.svelte';\n\u003C/script>\n\n\u003CCard title=\"Custom Card\">\n  \u003Cspan slot=\"header\">Custom Header\u003C/span>\n  \u003Cp>Here is some custom content inside the card.\u003C/p>\n  \u003Cdiv slot=\"footer\">\n    \u003Cbutton>Custom Button\u003C/button>\n  \u003C/div>\n\u003C/Card>\n",[20,87210,87211,87215,87219,87224,87228,87232,87237,87242,87247,87252,87257,87262],{"__ignoreMap":30},[34,87212,87213],{"class":36,"line":37},[34,87214,86497],{},[34,87216,87217],{"class":36,"line":44},[34,87218,86193],{},[34,87220,87221],{"class":36,"line":58},[34,87222,87223],{},"  import Card from './Card.svelte';\n",[34,87225,87226],{"class":36,"line":65},[34,87227,86208],{},[34,87229,87230],{"class":36,"line":71},[34,87231,62],{"emptyLinePlaceholder":61},[34,87233,87234],{"class":36,"line":77},[34,87235,87236],{},"\u003CCard title=\"Custom Card\">\n",[34,87238,87239],{"class":36,"line":82},[34,87240,87241],{},"  \u003Cspan slot=\"header\">Custom Header\u003C/span>\n",[34,87243,87244],{"class":36,"line":88},[34,87245,87246],{},"  \u003Cp>Here is some custom content inside the card.\u003C/p>\n",[34,87248,87249],{"class":36,"line":242},[34,87250,87251],{},"  \u003Cdiv slot=\"footer\">\n",[34,87253,87254],{"class":36,"line":250},[34,87255,87256],{},"    \u003Cbutton>Custom Button\u003C/button>\n",[34,87258,87259],{"class":36,"line":263},[34,87260,87261],{},"  \u003C/div>\n",[34,87263,87264],{"class":36,"line":275},[34,87265,87266],{},"\u003C/Card>\n",[388,87268,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":87270},[87271,87272,87273,87274,87275,87276,87277,87278,87279,87280,87281],{"id":568,"depth":44,"text":563},{"id":81391,"depth":44,"text":81392},{"id":86396,"depth":44,"text":86397},{"id":86455,"depth":44,"text":86456},{"id":86522,"depth":44,"text":86523},{"id":2249,"depth":44,"text":2244},{"id":86693,"depth":44,"text":86694},{"id":86775,"depth":44,"text":86776},{"id":86886,"depth":44,"text":86887},{"id":86964,"depth":44,"text":86965},{"id":87051,"depth":44,"text":87052},"Essential Svelte syntax, components, reactivity, and best practices for building front-end applications.",{"category":75200,"featured":65586,"icon":87284},"\u003Csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\u003Cpath d=\"M10.29 3h3.42a1 1 0 0 1 .87.5l6 10a1 1 0 0 1-.87 1.5h-12a1 1 0 0 1-.88-1.5l6-10a1 1 0 0 1 .87-.5z\">\u003C/path>\u003Cline x1=\"18\" y1=\"20\" x2=\"6\" y2=\"20\">\u003C/line>\u003C/svg>","/examples/svelte",{"title":86177,"description":87282},"examples/svelte",[86186,8606,982,983],"y74B-HnFk9InrQ3vD7vIspBaiotDgV3QwIl53QUOn0s",{"id":87291,"title":87292,"body":87293,"date":88690,"description":88691,"extension":404,"meta":88692,"navigation":61,"order":402,"path":88694,"seo":88695,"stem":88696,"subject":402,"tags":88697,"__hash__":88699},"topics/examples/v.md","V Programming Language Examples",{"type":8,"value":87294,"toc":88672},[87295,87298,87301,87303,87338,87342,87433,87435,87536,87540,87689,87693,87757,87761,87838,87842,87908,87910,88004,88007,88142,88144,88250,88252,88399,88403,88482,88484,88575,88577,88669],[11,87296,87292],{"id":87297},"v-programming-language-examples",[16,87299,87300],{},"The V programming language is a simple, fast, safe, and compiled language built for performance and maintainability. Below are examples that demonstrate key features of the V language.",[102,87302,22151],{"id":22156},[25,87304,87308],{"className":87305,"code":87306,"language":87307,"meta":30,"style":30},"language-v shiki shiki-themes github-light github-dark","// A simple program to print \"Hello, World!\"\nfn main() {\n    println(\"Hello, World!\")\n}\n","v",[20,87309,87310,87315,87323,87334],{"__ignoreMap":30},[34,87311,87312],{"class":36,"line":37},[34,87313,87314],{"class":40},"// A simple program to print \"Hello, World!\"\n",[34,87316,87317,87319,87321],{"class":36,"line":44},[34,87318,77761],{"class":580},[34,87320,18224],{"class":47},[34,87322,836],{"class":181},[34,87324,87325,87328,87330,87332],{"class":36,"line":58},[34,87326,87327],{"class":47},"    println",[34,87329,1607],{"class":181},[34,87331,15076],{"class":54},[34,87333,3372],{"class":181},[34,87335,87336],{"class":36,"line":65},[34,87337,693],{"class":181},[102,87339,87341],{"id":87340},"variables-and-constants","Variables and Constants",[25,87343,87345],{"className":87305,"code":87344,"language":87307,"meta":30,"style":30},"// Declare immutable variables (constants)\nconst pi = 3.14159\n\n// Declare mutable variables\nmut age := 30\nprintln(\"Age before: $age\")\n\n// Update variable value\nage = 31\nprintln(\"Age after: $age\")\n",[20,87346,87347,87352,87363,87367,87372,87384,87400,87404,87409,87418],{"__ignoreMap":30},[34,87348,87349],{"class":36,"line":37},[34,87350,87351],{"class":40},"// Declare immutable variables (constants)\n",[34,87353,87354,87356,87358,87360],{"class":36,"line":44},[34,87355,14676],{"class":580},[34,87357,25100],{"class":181},[34,87359,1301],{"class":580},[34,87361,87362],{"class":50}," 3.14159\n",[34,87364,87365],{"class":36,"line":58},[34,87366,62],{"emptyLinePlaceholder":61},[34,87368,87369],{"class":36,"line":65},[34,87370,87371],{"class":40},"// Declare mutable variables\n",[34,87373,87374,87377,87379,87381],{"class":36,"line":71},[34,87375,87376],{"class":580},"mut",[34,87378,25065],{"class":181},[34,87380,12895],{"class":580},[34,87382,87383],{"class":50}," 30\n",[34,87385,87386,87389,87391,87394,87396,87398],{"class":36,"line":77},[34,87387,87388],{"class":47},"println",[34,87390,1607],{"class":181},[34,87392,87393],{"class":54},"\"Age before: ",[34,87395,11317],{"class":181},[34,87397,10389],{"class":54},[34,87399,3372],{"class":181},[34,87401,87402],{"class":36,"line":82},[34,87403,62],{"emptyLinePlaceholder":61},[34,87405,87406],{"class":36,"line":88},[34,87407,87408],{"class":40},"// Update variable value\n",[34,87410,87411,87413,87415],{"class":36,"line":242},[34,87412,24879],{"class":181},[34,87414,1301],{"class":580},[34,87416,87417],{"class":50}," 31\n",[34,87419,87420,87422,87424,87427,87429,87431],{"class":36,"line":250},[34,87421,87388],{"class":47},[34,87423,1607],{"class":181},[34,87425,87426],{"class":54},"\"Age after: ",[34,87428,11317],{"class":181},[34,87430,10389],{"class":54},[34,87432,3372],{"class":181},[102,87434,10991],{"id":10996},[25,87436,87438],{"className":87305,"code":87437,"language":87307,"meta":30,"style":30},"// Define a function that adds two numbers\nfn add(a int, b int) int {\n    return a + b\n}\n\n// Call the function\nfn main() {\n    sum := add(5, 10)\n    println(\"Sum: $sum\")\n}\n",[20,87439,87440,87445,87465,87476,87480,87484,87489,87497,87516,87532],{"__ignoreMap":30},[34,87441,87442],{"class":36,"line":37},[34,87443,87444],{"class":40},"// Define a function that adds two numbers\n",[34,87446,87447,87449,87451,87453,87455,87457,87459,87461,87463],{"class":36,"line":44},[34,87448,77761],{"class":580},[34,87450,7854],{"class":47},[34,87452,22935],{"class":181},[34,87454,17772],{"class":580},[34,87456,8073],{"class":181},[34,87458,17772],{"class":580},[34,87460,4817],{"class":181},[34,87462,17772],{"class":580},[34,87464,661],{"class":181},[34,87466,87467,87469,87471,87473],{"class":36,"line":58},[34,87468,1564],{"class":580},[34,87470,8065],{"class":181},[34,87472,2940],{"class":580},[34,87474,87475],{"class":181}," b\n",[34,87477,87478],{"class":36,"line":65},[34,87479,693],{"class":181},[34,87481,87482],{"class":36,"line":71},[34,87483,62],{"emptyLinePlaceholder":61},[34,87485,87486],{"class":36,"line":77},[34,87487,87488],{"class":40},"// Call the function\n",[34,87490,87491,87493,87495],{"class":36,"line":82},[34,87492,77761],{"class":580},[34,87494,18224],{"class":47},[34,87496,836],{"class":181},[34,87498,87499,87502,87504,87506,87508,87510,87512,87514],{"class":36,"line":88},[34,87500,87501],{"class":181},"    sum ",[34,87503,12895],{"class":580},[34,87505,7854],{"class":47},[34,87507,1607],{"class":181},[34,87509,2778],{"class":50},[34,87511,1798],{"class":181},[34,87513,11923],{"class":50},[34,87515,3372],{"class":181},[34,87517,87518,87520,87522,87525,87528,87530],{"class":36,"line":242},[34,87519,87327],{"class":47},[34,87521,1607],{"class":181},[34,87523,87524],{"class":54},"\"Sum: ",[34,87526,87527],{"class":181},"$sum",[34,87529,10389],{"class":54},[34,87531,3372],{"class":181},[34,87533,87534],{"class":36,"line":250},[34,87535,693],{"class":181},[102,87537,87539],{"id":87538},"working-with-arrays","Working with Arrays",[25,87541,87543],{"className":87305,"code":87542,"language":87307,"meta":30,"style":30},"// Create and manipulate an array\nfn main() {\n    numbers := [1, 2, 3, 4, 5] // Initialize an array\n    mut squared := []int{}    // Mutable array for squares\n\n    // Square each number\n    for num in numbers {\n        squared \u003C\u003C num * num\n    }\n\n    println(\"Original: $numbers\")\n    println(\"Squared: $squared\")\n}\n",[20,87544,87545,87550,87558,87590,87611,87615,87620,87631,87645,87649,87653,87669,87685],{"__ignoreMap":30},[34,87546,87547],{"class":36,"line":37},[34,87548,87549],{"class":40},"// Create and manipulate an array\n",[34,87551,87552,87554,87556],{"class":36,"line":44},[34,87553,77761],{"class":580},[34,87555,18224],{"class":47},[34,87557,836],{"class":181},[34,87559,87560,87563,87565,87567,87569,87571,87573,87575,87577,87579,87581,87583,87585,87587],{"class":36,"line":58},[34,87561,87562],{"class":181},"    numbers ",[34,87564,12895],{"class":580},[34,87566,8315],{"class":181},[34,87568,8318],{"class":50},[34,87570,1798],{"class":181},[34,87572,8324],{"class":50},[34,87574,1798],{"class":181},[34,87576,3162],{"class":50},[34,87578,1798],{"class":181},[34,87580,18010],{"class":50},[34,87582,1798],{"class":181},[34,87584,2778],{"class":50},[34,87586,17799],{"class":181},[34,87588,87589],{"class":40},"// Initialize an array\n",[34,87591,87592,87595,87598,87600,87603,87605,87608],{"class":36,"line":65},[34,87593,87594],{"class":580},"    mut",[34,87596,87597],{"class":181}," squared ",[34,87599,12895],{"class":580},[34,87601,87602],{"class":181}," []",[34,87604,17772],{"class":580},[34,87606,87607],{"class":181},"{}    ",[34,87609,87610],{"class":40},"// Mutable array for squares\n",[34,87612,87613],{"class":36,"line":71},[34,87614,62],{"emptyLinePlaceholder":61},[34,87616,87617],{"class":36,"line":77},[34,87618,87619],{"class":40},"    // Square each number\n",[34,87621,87622,87624,87626,87628],{"class":36,"line":82},[34,87623,18250],{"class":580},[34,87625,13912],{"class":181},[34,87627,10252],{"class":580},[34,87629,87630],{"class":181}," numbers {\n",[34,87632,87633,87636,87638,87640,87642],{"class":36,"line":88},[34,87634,87635],{"class":181},"        squared ",[34,87637,23022],{"class":580},[34,87639,13912],{"class":181},[34,87641,4289],{"class":580},[34,87643,87644],{"class":181}," num\n",[34,87646,87647],{"class":36,"line":242},[34,87648,3229],{"class":181},[34,87650,87651],{"class":36,"line":250},[34,87652,62],{"emptyLinePlaceholder":61},[34,87654,87655,87657,87659,87662,87665,87667],{"class":36,"line":263},[34,87656,87327],{"class":47},[34,87658,1607],{"class":181},[34,87660,87661],{"class":54},"\"Original: ",[34,87663,87664],{"class":181},"$numbers",[34,87666,10389],{"class":54},[34,87668,3372],{"class":181},[34,87670,87671,87673,87675,87678,87681,87683],{"class":36,"line":275},[34,87672,87327],{"class":47},[34,87674,1607],{"class":181},[34,87676,87677],{"class":54},"\"Squared: ",[34,87679,87680],{"class":181},"$squared",[34,87682,10389],{"class":54},[34,87684,3372],{"class":181},[34,87686,87687],{"class":36,"line":700},[34,87688,693],{"class":181},[102,87690,87692],{"id":87691},"for-loop","For Loop",[25,87694,87696],{"className":87305,"code":87695,"language":87307,"meta":30,"style":30},"// Demonstrating a for loop\nfn main() {\n    for i := 0; i \u003C 5; i++ {\n        println(\"Iteration: $i\")\n    }\n}\n",[20,87697,87698,87703,87711,87733,87749,87753],{"__ignoreMap":30},[34,87699,87700],{"class":36,"line":37},[34,87701,87702],{"class":40},"// Demonstrating a for loop\n",[34,87704,87705,87707,87709],{"class":36,"line":44},[34,87706,77761],{"class":580},[34,87708,18224],{"class":47},[34,87710,836],{"class":181},[34,87712,87713,87715,87717,87719,87721,87723,87725,87727,87729,87731],{"class":36,"line":58},[34,87714,18250],{"class":580},[34,87716,10300],{"class":181},[34,87718,12895],{"class":580},[34,87720,8070],{"class":50},[34,87722,18263],{"class":181},[34,87724,815],{"class":580},[34,87726,11144],{"class":50},[34,87728,11918],{"class":181},[34,87730,11928],{"class":580},[34,87732,661],{"class":181},[34,87734,87735,87738,87740,87743,87745,87747],{"class":36,"line":65},[34,87736,87737],{"class":47},"        println",[34,87739,1607],{"class":181},[34,87741,87742],{"class":54},"\"Iteration: ",[34,87744,10329],{"class":181},[34,87746,10389],{"class":54},[34,87748,3372],{"class":181},[34,87750,87751],{"class":36,"line":71},[34,87752,3229],{"class":181},[34,87754,87755],{"class":36,"line":77},[34,87756,693],{"class":181},[102,87758,87760],{"id":87759},"if-else-condition","If-Else Condition",[25,87762,87764],{"className":87305,"code":87763,"language":87307,"meta":30,"style":30},"// Demonstrates the use of if-else statements in V\nfn main() {\n    age := 18\n    if age >= 18 {\n        println(\"You are allowed to vote.\")\n    } else {\n        println(\"You are not allowed to vote.\")\n    }\n}\n",[20,87765,87766,87771,87779,87788,87800,87811,87819,87830,87834],{"__ignoreMap":30},[34,87767,87768],{"class":36,"line":37},[34,87769,87770],{"class":40},"// Demonstrates the use of if-else statements in V\n",[34,87772,87773,87775,87777],{"class":36,"line":44},[34,87774,77761],{"class":580},[34,87776,18224],{"class":47},[34,87778,836],{"class":181},[34,87780,87781,87783,87785],{"class":36,"line":58},[34,87782,28451],{"class":181},[34,87784,12895],{"class":580},[34,87786,87787],{"class":50}," 18\n",[34,87789,87790,87792,87794,87796,87798],{"class":36,"line":65},[34,87791,2902],{"class":580},[34,87793,25065],{"class":181},[34,87795,18401],{"class":580},[34,87797,18845],{"class":50},[34,87799,661],{"class":181},[34,87801,87802,87804,87806,87809],{"class":36,"line":71},[34,87803,87737],{"class":47},[34,87805,1607],{"class":181},[34,87807,87808],{"class":54},"\"You are allowed to vote.\"",[34,87810,3372],{"class":181},[34,87812,87813,87815,87817],{"class":36,"line":77},[34,87814,63191],{"class":181},[34,87816,18871],{"class":580},[34,87818,661],{"class":181},[34,87820,87821,87823,87825,87828],{"class":36,"line":82},[34,87822,87737],{"class":47},[34,87824,1607],{"class":181},[34,87826,87827],{"class":54},"\"You are not allowed to vote.\"",[34,87829,3372],{"class":181},[34,87831,87832],{"class":36,"line":88},[34,87833,3229],{"class":181},[34,87835,87836],{"class":36,"line":242},[34,87837,693],{"class":181},[102,87839,87841],{"id":87840},"reading-user-input","Reading User Input",[25,87843,87845],{"className":87305,"code":87844,"language":87307,"meta":30,"style":30},"// Read user input and process it\nimport os\n\nfn main() {\n    name := os.input(\"Enter your name: \")\n    println(\"Hello, $name!\")\n}\n",[20,87846,87847,87852,87859,87863,87871,87890,87904],{"__ignoreMap":30},[34,87848,87849],{"class":36,"line":37},[34,87850,87851],{"class":40},"// Read user input and process it\n",[34,87853,87854,87856],{"class":36,"line":44},[34,87855,581],{"class":580},[34,87857,87858],{"class":47}," os\n",[34,87860,87861],{"class":36,"line":58},[34,87862,62],{"emptyLinePlaceholder":61},[34,87864,87865,87867,87869],{"class":36,"line":65},[34,87866,77761],{"class":580},[34,87868,18224],{"class":47},[34,87870,836],{"class":181},[34,87872,87873,87876,87878,87881,87883,87885,87888],{"class":36,"line":71},[34,87874,87875],{"class":181},"    name ",[34,87877,12895],{"class":580},[34,87879,87880],{"class":181}," os.",[34,87882,4600],{"class":47},[34,87884,1607],{"class":181},[34,87886,87887],{"class":54},"\"Enter your name: \"",[34,87889,3372],{"class":181},[34,87891,87892,87894,87896,87898,87900,87902],{"class":36,"line":77},[34,87893,87327],{"class":47},[34,87895,1607],{"class":181},[34,87897,21921],{"class":54},[34,87899,10392],{"class":181},[34,87901,37073],{"class":54},[34,87903,3372],{"class":181},[34,87905,87906],{"class":36,"line":82},[34,87907,693],{"class":181},[102,87909,12188],{"id":12636},[25,87911,87913],{"className":87305,"code":87912,"language":87307,"meta":30,"style":30},"// Working with strings in V\nfn main() {\n    name := \"Syntax Recall\"\n    println(name.len)          // Length of the string\n    println(name.to_upper())   // Convert to uppercase\n    println(name.to_lower())   // Convert to lowercase\n\n    // String interpolation\n    println(\"Hello, $name!\")\n}\n",[20,87914,87915,87920,87928,87937,87947,87963,87977,87981,87986,88000],{"__ignoreMap":30},[34,87916,87917],{"class":36,"line":37},[34,87918,87919],{"class":40},"// Working with strings in V\n",[34,87921,87922,87924,87926],{"class":36,"line":44},[34,87923,77761],{"class":580},[34,87925,18224],{"class":47},[34,87927,836],{"class":181},[34,87929,87930,87932,87934],{"class":36,"line":58},[34,87931,87875],{"class":181},[34,87933,12895],{"class":580},[34,87935,87936],{"class":54}," \"Syntax Recall\"\n",[34,87938,87939,87941,87944],{"class":36,"line":65},[34,87940,87327],{"class":47},[34,87942,87943],{"class":181},"(name.len)          ",[34,87945,87946],{"class":40},"// Length of the string\n",[34,87948,87949,87951,87954,87957,87960],{"class":36,"line":71},[34,87950,87327],{"class":47},[34,87952,87953],{"class":181},"(name.",[34,87955,87956],{"class":47},"to_upper",[34,87958,87959],{"class":181},"())   ",[34,87961,87962],{"class":40},"// Convert to uppercase\n",[34,87964,87965,87967,87969,87972,87974],{"class":36,"line":77},[34,87966,87327],{"class":47},[34,87968,87953],{"class":181},[34,87970,87971],{"class":47},"to_lower",[34,87973,87959],{"class":181},[34,87975,87976],{"class":40},"// Convert to lowercase\n",[34,87978,87979],{"class":36,"line":82},[34,87980,62],{"emptyLinePlaceholder":61},[34,87982,87983],{"class":36,"line":88},[34,87984,87985],{"class":40},"    // String interpolation\n",[34,87987,87988,87990,87992,87994,87996,87998],{"class":36,"line":242},[34,87989,87327],{"class":47},[34,87991,1607],{"class":181},[34,87993,21921],{"class":54},[34,87995,10392],{"class":181},[34,87997,37073],{"class":54},[34,87999,3372],{"class":181},[34,88001,88002],{"class":36,"line":250},[34,88003,693],{"class":181},[102,88005,61463],{"id":88006},"maps",[25,88008,88010],{"className":87305,"code":88009,"language":87307,"meta":30,"style":30},"// Demonstrating map usage in V\nfn main() {\n    mut students := map[string]int{\n        \"Alice\": 85,\n        \"Bob\": 90,\n    }\n\n    students[\"Charlie\"] = 78 // Add new entry\n    println(students)\n\n    score := students[\"Alice\"] // Access value\n    println(\"Alice's score: $score\")\n}\n",[20,88011,88012,88017,88025,88047,88058,88069,88073,88077,88094,88101,88105,88122,88138],{"__ignoreMap":30},[34,88013,88014],{"class":36,"line":37},[34,88015,88016],{"class":40},"// Demonstrating map usage in V\n",[34,88018,88019,88021,88023],{"class":36,"line":44},[34,88020,77761],{"class":580},[34,88022,18224],{"class":47},[34,88024,836],{"class":181},[34,88026,88027,88029,88032,88034,88037,88039,88041,88043,88045],{"class":36,"line":58},[34,88028,87594],{"class":580},[34,88030,88031],{"class":181}," students ",[34,88033,12895],{"class":580},[34,88035,88036],{"class":580}," map",[34,88038,10260],{"class":181},[34,88040,30113],{"class":580},[34,88042,10173],{"class":181},[34,88044,17772],{"class":580},[34,88046,25296],{"class":181},[34,88048,88049,88052,88054,88056],{"class":36,"line":65},[34,88050,88051],{"class":54},"        \"Alice\"",[34,88053,182],{"class":181},[34,88055,17811],{"class":50},[34,88057,624],{"class":181},[34,88059,88060,88063,88065,88067],{"class":36,"line":71},[34,88061,88062],{"class":54},"        \"Bob\"",[34,88064,182],{"class":181},[34,88066,17806],{"class":50},[34,88068,624],{"class":181},[34,88070,88071],{"class":36,"line":77},[34,88072,3229],{"class":181},[34,88074,88075],{"class":36,"line":82},[34,88076,62],{"emptyLinePlaceholder":61},[34,88078,88079,88082,88084,88086,88088,88091],{"class":36,"line":88},[34,88080,88081],{"class":181},"    students[",[34,88083,33460],{"class":54},[34,88085,17799],{"class":181},[34,88087,1301],{"class":580},[34,88089,88090],{"class":50}," 78",[34,88092,88093],{"class":40}," // Add new entry\n",[34,88095,88096,88098],{"class":36,"line":242},[34,88097,87327],{"class":47},[34,88099,88100],{"class":181},"(students)\n",[34,88102,88103],{"class":36,"line":250},[34,88104,62],{"emptyLinePlaceholder":61},[34,88106,88107,88110,88112,88115,88117,88119],{"class":36,"line":263},[34,88108,88109],{"class":181},"    score ",[34,88111,12895],{"class":580},[34,88113,88114],{"class":181}," students[",[34,88116,21650],{"class":54},[34,88118,17799],{"class":181},[34,88120,88121],{"class":40},"// Access value\n",[34,88123,88124,88126,88128,88131,88134,88136],{"class":36,"line":275},[34,88125,87327],{"class":47},[34,88127,1607],{"class":181},[34,88129,88130],{"class":54},"\"Alice's score: ",[34,88132,88133],{"class":181},"$score",[34,88135,10389],{"class":54},[34,88137,3372],{"class":181},[34,88139,88140],{"class":36,"line":700},[34,88141,693],{"class":181},[102,88143,23107],{"id":24666},[25,88145,88147],{"className":87305,"code":88146,"language":87307,"meta":30,"style":30},"// Define and use a struct\nstruct User {\n    name string\n    age  int\n}\n\nfn main() {\n    user := User{\n        name: \"Alice\",\n        age: 25,\n    }\n\n    println(user.name) // Access properties\n    println(user.age)\n}\n",[20,88148,88149,88154,88162,88169,88177,88181,88185,88193,88203,88212,88221,88225,88229,88239,88246],{"__ignoreMap":30},[34,88150,88151],{"class":36,"line":37},[34,88152,88153],{"class":40},"// Define and use a struct\n",[34,88155,88156,88158,88160],{"class":36,"line":44},[34,88157,21640],{"class":580},[34,88159,3950],{"class":47},[34,88161,661],{"class":181},[34,88163,88164,88166],{"class":36,"line":58},[34,88165,87875],{"class":181},[34,88167,88168],{"class":580},"string\n",[34,88170,88171,88174],{"class":36,"line":65},[34,88172,88173],{"class":181},"    age  ",[34,88175,88176],{"class":580},"int\n",[34,88178,88179],{"class":36,"line":71},[34,88180,693],{"class":181},[34,88182,88183],{"class":36,"line":77},[34,88184,62],{"emptyLinePlaceholder":61},[34,88186,88187,88189,88191],{"class":36,"line":82},[34,88188,77761],{"class":580},[34,88190,18224],{"class":47},[34,88192,836],{"class":181},[34,88194,88195,88198,88200],{"class":36,"line":88},[34,88196,88197],{"class":181},"    user ",[34,88199,12895],{"class":580},[34,88201,88202],{"class":181}," User{\n",[34,88204,88205,88208,88210],{"class":36,"line":242},[34,88206,88207],{"class":181},"        name: ",[34,88209,21650],{"class":54},[34,88211,624],{"class":181},[34,88213,88214,88217,88219],{"class":36,"line":250},[34,88215,88216],{"class":181},"        age: ",[34,88218,24546],{"class":50},[34,88220,624],{"class":181},[34,88222,88223],{"class":36,"line":263},[34,88224,3229],{"class":181},[34,88226,88227],{"class":36,"line":275},[34,88228,62],{"emptyLinePlaceholder":61},[34,88230,88231,88233,88236],{"class":36,"line":700},[34,88232,87327],{"class":47},[34,88234,88235],{"class":181},"(user.name) ",[34,88237,88238],{"class":40},"// Access properties\n",[34,88240,88241,88243],{"class":36,"line":706},[34,88242,87327],{"class":47},[34,88244,88245],{"class":181},"(user.age)\n",[34,88247,88248],{"class":36,"line":715},[34,88249,693],{"class":181},[102,88251,19352],{"id":19357},[25,88253,88255],{"className":87305,"code":88254,"language":87307,"meta":30,"style":30},"// Demonstrating error handling\nfn divide(a int, b int) ?int {\n    if b == 0 {\n        return error(\"Division by zero\")\n    }\n    return a / b\n}\n\nfn main() {\n    result := divide(10, 2) or {\n        println(err) // Handle the error\n        return\n    }\n    println(\"Result: $result\")\n}\n",[20,88256,88257,88262,88283,88295,88309,88313,88323,88327,88331,88339,88361,88371,88376,88380,88395],{"__ignoreMap":30},[34,88258,88259],{"class":36,"line":37},[34,88260,88261],{"class":40},"// Demonstrating error handling\n",[34,88263,88264,88266,88268,88270,88272,88274,88276,88278,88281],{"class":36,"line":44},[34,88265,77761],{"class":580},[34,88267,19378],{"class":47},[34,88269,22935],{"class":181},[34,88271,17772],{"class":580},[34,88273,8073],{"class":181},[34,88275,17772],{"class":580},[34,88277,4817],{"class":181},[34,88279,88280],{"class":580},"?int",[34,88282,661],{"class":181},[34,88284,88285,88287,88289,88291,88293],{"class":36,"line":58},[34,88286,2902],{"class":580},[34,88288,22721],{"class":181},[34,88290,18168],{"class":580},[34,88292,8070],{"class":50},[34,88294,661],{"class":181},[34,88296,88297,88299,88302,88304,88307],{"class":36,"line":65},[34,88298,13895],{"class":580},[34,88300,88301],{"class":47}," error",[34,88303,1607],{"class":181},[34,88305,88306],{"class":54},"\"Division by zero\"",[34,88308,3372],{"class":181},[34,88310,88311],{"class":36,"line":71},[34,88312,3229],{"class":181},[34,88314,88315,88317,88319,88321],{"class":36,"line":77},[34,88316,1564],{"class":580},[34,88318,8065],{"class":181},[34,88320,12734],{"class":580},[34,88322,87475],{"class":181},[34,88324,88325],{"class":36,"line":82},[34,88326,693],{"class":181},[34,88328,88329],{"class":36,"line":88},[34,88330,62],{"emptyLinePlaceholder":61},[34,88332,88333,88335,88337],{"class":36,"line":242},[34,88334,77761],{"class":580},[34,88336,18224],{"class":47},[34,88338,836],{"class":181},[34,88340,88341,88343,88345,88347,88349,88351,88353,88355,88357,88359],{"class":36,"line":250},[34,88342,20237],{"class":181},[34,88344,12895],{"class":580},[34,88346,19378],{"class":47},[34,88348,1607],{"class":181},[34,88350,11923],{"class":50},[34,88352,1798],{"class":181},[34,88354,8324],{"class":50},[34,88356,4817],{"class":181},[34,88358,49560],{"class":580},[34,88360,661],{"class":181},[34,88362,88363,88365,88368],{"class":36,"line":263},[34,88364,87737],{"class":47},[34,88366,88367],{"class":181},"(err) ",[34,88369,88370],{"class":40},"// Handle the error\n",[34,88372,88373],{"class":36,"line":275},[34,88374,88375],{"class":580},"        return\n",[34,88377,88378],{"class":36,"line":700},[34,88379,3229],{"class":181},[34,88381,88382,88384,88386,88388,88391,88393],{"class":36,"line":706},[34,88383,87327],{"class":47},[34,88385,1607],{"class":181},[34,88387,19521],{"class":54},[34,88389,88390],{"class":181},"$result",[34,88392,10389],{"class":54},[34,88394,3372],{"class":181},[34,88396,88397],{"class":36,"line":715},[34,88398,693],{"class":181},[102,88400,88402],{"id":88401},"modules","Modules",[25,88404,88406],{"className":87305,"code":88405,"language":87307,"meta":30,"style":30},"// Using modules in V\nmodule mymodule\n\npub fn greet() string {\n    return \"Hello from mymodule!\"\n}\n\nfn main() {\n    import mymodule\n    println(mymodule.greet())\n}\n",[20,88407,88408,88413,88420,88424,88437,88444,88448,88452,88460,88467,88478],{"__ignoreMap":30},[34,88409,88410],{"class":36,"line":37},[34,88411,88412],{"class":40},"// Using modules in V\n",[34,88414,88415,88417],{"class":36,"line":44},[34,88416,46312],{"class":580},[34,88418,88419],{"class":47}," mymodule\n",[34,88421,88422],{"class":36,"line":58},[34,88423,62],{"emptyLinePlaceholder":61},[34,88425,88426,88429,88431,88433,88435],{"class":36,"line":65},[34,88427,88428],{"class":580},"pub fn",[34,88430,11047],{"class":47},[34,88432,672],{"class":181},[34,88434,30113],{"class":580},[34,88436,661],{"class":181},[34,88438,88439,88441],{"class":36,"line":71},[34,88440,1564],{"class":580},[34,88442,88443],{"class":54}," \"Hello from mymodule!\"\n",[34,88445,88446],{"class":36,"line":77},[34,88447,693],{"class":181},[34,88449,88450],{"class":36,"line":82},[34,88451,62],{"emptyLinePlaceholder":61},[34,88453,88454,88456,88458],{"class":36,"line":88},[34,88455,77761],{"class":580},[34,88457,18224],{"class":47},[34,88459,836],{"class":181},[34,88461,88462,88465],{"class":36,"line":242},[34,88463,88464],{"class":580},"    import",[34,88466,88419],{"class":47},[34,88468,88469,88471,88474,88476],{"class":36,"line":250},[34,88470,87327],{"class":47},[34,88472,88473],{"class":181},"(mymodule.",[34,88475,11011],{"class":47},[34,88477,62281],{"class":181},[34,88479,88480],{"class":36,"line":263},[34,88481,693],{"class":181},[102,88483,26423],{"id":26428},[25,88485,88487],{"className":87305,"code":88486,"language":87307,"meta":30,"style":30},"// Generic functions in V\nfn swap\u003CT>(a T, b T) (T, T) {\n    return b, a\n}\n\nfn main() {\n    x, y := swap(5, 10)\n    println(\"x: $x, y: $y\")\n}\n",[20,88488,88489,88494,88507,88514,88518,88522,88530,88549,88571],{"__ignoreMap":30},[34,88490,88491],{"class":36,"line":37},[34,88492,88493],{"class":40},"// Generic functions in V\n",[34,88495,88496,88498,88500,88502,88504],{"class":36,"line":44},[34,88497,77761],{"class":580},[34,88499,18476],{"class":47},[34,88501,815],{"class":181},[34,88503,32671],{"class":47},[34,88505,88506],{"class":181},">(a T, b T) (T, T) {\n",[34,88508,88509,88511],{"class":36,"line":58},[34,88510,1564],{"class":580},[34,88512,88513],{"class":181}," b, a\n",[34,88515,88516],{"class":36,"line":65},[34,88517,693],{"class":181},[34,88519,88520],{"class":36,"line":71},[34,88521,62],{"emptyLinePlaceholder":61},[34,88523,88524,88526,88528],{"class":36,"line":77},[34,88525,77761],{"class":580},[34,88527,18224],{"class":47},[34,88529,836],{"class":181},[34,88531,88532,88535,88537,88539,88541,88543,88545,88547],{"class":36,"line":82},[34,88533,88534],{"class":181},"    x, y ",[34,88536,12895],{"class":580},[34,88538,18476],{"class":47},[34,88540,1607],{"class":181},[34,88542,2778],{"class":50},[34,88544,1798],{"class":181},[34,88546,11923],{"class":50},[34,88548,3372],{"class":181},[34,88550,88551,88553,88555,88558,88561,88564,88567,88569],{"class":36,"line":88},[34,88552,87327],{"class":47},[34,88554,1607],{"class":181},[34,88556,88557],{"class":54},"\"x: ",[34,88559,88560],{"class":181},"$x",[34,88562,88563],{"class":54},", y: ",[34,88565,88566],{"class":181},"$y",[34,88568,10389],{"class":54},[34,88570,3372],{"class":181},[34,88572,88573],{"class":36,"line":242},[34,88574,693],{"class":181},[102,88576,60646],{"id":33299},[25,88578,88580],{"className":87305,"code":88579,"language":87307,"meta":30,"style":30},"// Simple concurrency example using tasks\nfn print_numbers() {\n    for i := 1; i \u003C= 5; i++ {\n        println(i)\n    }\n}\n\nfn main() {\n    go print_numbers()\n    println(\"Task started\")\n}\n",[20,88581,88582,88587,88596,88618,88625,88629,88633,88637,88645,88654,88665],{"__ignoreMap":30},[34,88583,88584],{"class":36,"line":37},[34,88585,88586],{"class":40},"// Simple concurrency example using tasks\n",[34,88588,88589,88591,88594],{"class":36,"line":44},[34,88590,77761],{"class":580},[34,88592,88593],{"class":47}," print_numbers",[34,88595,836],{"class":181},[34,88597,88598,88600,88602,88604,88606,88608,88610,88612,88614,88616],{"class":36,"line":58},[34,88599,18250],{"class":580},[34,88601,10300],{"class":181},[34,88603,12895],{"class":580},[34,88605,3567],{"class":50},[34,88607,18263],{"class":181},[34,88609,22032],{"class":580},[34,88611,11144],{"class":50},[34,88613,11918],{"class":181},[34,88615,11928],{"class":580},[34,88617,661],{"class":181},[34,88619,88620,88622],{"class":36,"line":65},[34,88621,87737],{"class":47},[34,88623,88624],{"class":181},"(i)\n",[34,88626,88627],{"class":36,"line":71},[34,88628,3229],{"class":181},[34,88630,88631],{"class":36,"line":77},[34,88632,693],{"class":181},[34,88634,88635],{"class":36,"line":82},[34,88636,62],{"emptyLinePlaceholder":61},[34,88638,88639,88641,88643],{"class":36,"line":88},[34,88640,77761],{"class":580},[34,88642,18224],{"class":47},[34,88644,836],{"class":181},[34,88646,88647,88650,88652],{"class":36,"line":242},[34,88648,88649],{"class":580},"    go",[34,88651,88593],{"class":47},[34,88653,33899],{"class":181},[34,88655,88656,88658,88660,88663],{"class":36,"line":250},[34,88657,87327],{"class":47},[34,88659,1607],{"class":181},[34,88661,88662],{"class":54},"\"Task started\"",[34,88664,3372],{"class":181},[34,88666,88667],{"class":36,"line":263},[34,88668,693],{"class":181},[388,88670,88671],{},"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 .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 .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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":30,"searchDepth":44,"depth":44,"links":88673},[88674],{"id":87297,"depth":44,"text":87292,"children":88675},[88676,88677,88678,88679,88680,88681,88682,88683,88684,88685,88686,88687,88688,88689],{"id":22156,"depth":58,"text":22151},{"id":87340,"depth":58,"text":87341},{"id":10996,"depth":58,"text":10991},{"id":87538,"depth":58,"text":87539},{"id":87691,"depth":58,"text":87692},{"id":87759,"depth":58,"text":87760},{"id":87840,"depth":58,"text":87841},{"id":12636,"depth":58,"text":12188},{"id":88006,"depth":58,"text":61463},{"id":24666,"depth":58,"text":23107},{"id":19357,"depth":58,"text":19352},{"id":88401,"depth":58,"text":88402},{"id":26428,"depth":58,"text":26423},{"id":33299,"depth":58,"text":60646},"2026-02-18","Examples showcasing the V programming language syntax and usage.",{"category":75273,"featured":65586,"icon":88693},"\u003Csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\u003Cpolyline points=\"16 18 22 12 16 6\">\u003C/polyline>\u003Cpolyline points=\"8 6 2 12 8 18\">\u003C/polyline>\u003C/svg>","/examples/v",{"title":87292,"description":88691},"examples/v",[87307,18138,88698],"examples","UtK4Ht0GvP5dhxENBAUFljVv6RqpFedu4KOU3O_i3nY",{"id":88701,"title":88702,"body":88703,"date":402,"description":88771,"extension":404,"meta":88772,"navigation":61,"order":402,"path":88774,"seo":88775,"stem":88776,"subject":402,"tags":88777,"__hash__":88780},"topics/examples/vite.md","Vite Examples",{"type":8,"value":88704,"toc":88767},[88705,88709,88713,88716,88752,88755,88759,88762,88765],[8535,88706,88708],{"id":88707},"vite-quick-examples","Vite: Quick Examples",[102,88710,88712],{"id":88711},"_1-installing-vite","1. Installing Vite",[16,88714,88715],{},"To install Vite in your project:",[25,88717,88719],{"className":27,"code":88718,"language":29,"meta":30,"style":30},"# Using npm\ndune@install -D vite\n\n# You'll also need to create the main vite.config.js or ts setup\nand it's marked show portions only\n",[20,88720,88721,88726,88736,88740,88745],{"__ignoreMap":30},[34,88722,88723],{"class":36,"line":37},[34,88724,88725],{"class":40},"# Using npm\n",[34,88727,88728,88731,88733],{"class":36,"line":44},[34,88729,88730],{"class":47},"dune@install",[34,88732,13768],{"class":50},[34,88734,88735],{"class":54}," vite\n",[34,88737,88738],{"class":36,"line":58},[34,88739,62],{"emptyLinePlaceholder":61},[34,88741,88742],{"class":36,"line":65},[34,88743,88744],{"class":40},"# You'll also need to create the main vite.config.js or ts setup\n",[34,88746,88747,88749],{"class":36,"line":71},[34,88748,51197],{"class":47},[34,88750,88751],{"class":54}," it's marked show portions only\n",[16,88753,88754],{},"n#[JS-modes}",[102,88756,88758],{"id":88757},"extends-configure-run","Extends Configure Run",[16,88760,88761],{},"Modes explained",[16,88763,88764],{},"Cached",[388,88766,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":88768},[88769,88770],{"id":88711,"depth":58,"text":88712},{"id":88757,"depth":58,"text":88758},"A collection of concise examples to showcase common Vite configurations and use cases.",{"category":88773,"featured":65586,"icon":86166},"tools","/examples/vite",{"title":88702,"description":88771},"examples/vite",[88778,88779,982],"vite","build-tool","_vQxPrq2lLZ3tqtgr7JHa9hZu-pB5fCMmUiIwp3-f5A",{"id":88782,"title":88783,"body":88784,"date":402,"description":89335,"extension":404,"meta":89336,"navigation":61,"order":37,"path":89337,"seo":89338,"stem":89339,"subject":88783,"tags":89340,"__hash__":89342},"topics/eza/overview.md","eza",{"type":8,"value":88785,"toc":89319},[88786,88788,88794,88796,88825,88896,88898,88901,88905,88908,88922,88924,88939,88943,89034,89038,89051,89055,89059,89132,89136,89202,89206,89268,89272,89316],[11,88787,13534],{"id":13533},[16,88789,88790,88791,88793],{},"eza is a modern, actively maintained replacement for the traditional ",[20,88792,11417],{}," command in Unix/Linux environments. It offers enhanced features, better defaults, and user-friendly output, ensuring efficient and visually appealing directory listings.",[11,88795,8221],{"id":8220},[309,88797,88798,88801,88804,88807,88810,88813,88816,88822],{},[312,88799,88800],{},"Colorized output for distinguishing file types and metadata",[312,88802,88803],{},"Symlink support and extended attributes",[312,88805,88806],{},"Git repository awareness",[312,88808,88809],{},"Human-readable relative dates",[312,88811,88812],{},"Hyperlink support",[312,88814,88815],{},"SELinux context output",[312,88817,88818,88819],{},"Fixes \"The Grid Bug\" from ",[20,88820,88821],{},"exa",[312,88823,88824],{},"Various output and sorting options",[25,88826,88828],{"className":27,"code":88827,"language":29,"meta":30,"style":30},"# Basic usage\n$ eza\n\n# Long-form listing\n$ eza -l\n\n# Display as a tree\n$ eza --tree\n\n# Show hidden files and directories\n$ eza -a\n\n",[20,88829,88830,88835,88842,88846,88851,88860,88864,88869,88878,88882,88887],{"__ignoreMap":30},[34,88831,88832],{"class":36,"line":37},[34,88833,88834],{"class":40},"# Basic usage\n",[34,88836,88837,88839],{"class":36,"line":44},[34,88838,11676],{"class":47},[34,88840,88841],{"class":54}," eza\n",[34,88843,88844],{"class":36,"line":58},[34,88845,62],{"emptyLinePlaceholder":61},[34,88847,88848],{"class":36,"line":65},[34,88849,88850],{"class":40},"# Long-form listing\n",[34,88852,88853,88855,88858],{"class":36,"line":71},[34,88854,11676],{"class":47},[34,88856,88857],{"class":54}," eza",[34,88859,93],{"class":50},[34,88861,88862],{"class":36,"line":77},[34,88863,62],{"emptyLinePlaceholder":61},[34,88865,88866],{"class":36,"line":82},[34,88867,88868],{"class":40},"# Display as a tree\n",[34,88870,88871,88873,88875],{"class":36,"line":88},[34,88872,11676],{"class":47},[34,88874,88857],{"class":54},[34,88876,88877],{"class":50}," --tree\n",[34,88879,88880],{"class":36,"line":242},[34,88881,62],{"emptyLinePlaceholder":61},[34,88883,88884],{"class":36,"line":250},[34,88885,88886],{"class":40},"# Show hidden files and directories\n",[34,88888,88889,88891,88893],{"class":36,"line":263},[34,88890,11676],{"class":47},[34,88892,88857],{"class":54},[34,88894,88895],{"class":50}," -a\n",[11,88897,97],{"id":96},[16,88899,88900],{},"eza can be easily installed on various platforms. Select the method suitable for your OS:",[102,88902,88904],{"id":88903},"using-cargo","Using Cargo",[16,88906,88907],{},"If you have a Rust environment set up:",[25,88909,88911],{"className":27,"code":88910,"language":29,"meta":30,"style":30},"cargo install eza\n",[20,88912,88913],{"__ignoreMap":30},[34,88914,88915,88918,88920],{"class":36,"line":37},[34,88916,88917],{"class":47},"cargo",[34,88919,118],{"class":54},[34,88921,88841],{"class":54},[102,88923,53583],{"id":53582},[25,88925,88927],{"className":27,"code":88926,"language":29,"meta":30,"style":30},"sudo pacman -S eza\n",[20,88928,88929],{"__ignoreMap":30},[34,88930,88931,88933,88935,88937],{"class":36,"line":37},[34,88932,436],{"class":47},[34,88934,53595],{"class":54},[34,88936,7773],{"class":50},[34,88938,88841],{"class":54},[102,88940,88942],{"id":88941},"debianubuntu","Debian/Ubuntu",[25,88944,88946],{"className":27,"code":88945,"language":29,"meta":30,"style":30},"sudo apt install -y gpg\nsudo mkdir -p /etc/apt/keyrings\nwget -qO- https://raw.githubusercontent.com/eza-community/eza/main/deb.asc | sudo gpg --dearmor -o /etc/apt/keyrings/gierens.gpg\necho \"deb [signed-by=/etc/apt/keyrings/gierens.gpg] http://deb.gierens.de stable main\" | sudo tee /etc/apt/sources.list.d/gierens.list\nsudo apt update\nsudo apt install -y eza\n",[20,88947,88948,88961,88973,88998,89014,89022],{"__ignoreMap":30},[34,88949,88950,88952,88954,88956,88958],{"class":36,"line":37},[34,88951,436],{"class":47},[34,88953,439],{"class":54},[34,88955,118],{"class":54},[34,88957,5843],{"class":50},[34,88959,88960],{"class":54}," gpg\n",[34,88962,88963,88965,88968,88970],{"class":36,"line":44},[34,88964,436],{"class":47},[34,88966,88967],{"class":54}," mkdir",[34,88969,5275],{"class":50},[34,88971,88972],{"class":54}," /etc/apt/keyrings\n",[34,88974,88975,88977,88980,88983,88985,88987,88990,88993,88995],{"class":36,"line":58},[34,88976,28992],{"class":47},[34,88978,88979],{"class":50}," -qO-",[34,88981,88982],{"class":54}," https://raw.githubusercontent.com/eza-community/eza/main/deb.asc",[34,88984,7197],{"class":580},[34,88986,9343],{"class":47},[34,88988,88989],{"class":54}," gpg",[34,88991,88992],{"class":50}," --dearmor",[34,88994,8654],{"class":50},[34,88996,88997],{"class":54}," /etc/apt/keyrings/gierens.gpg\n",[34,88999,89000,89002,89005,89007,89009,89011],{"class":36,"line":65},[34,89001,10120],{"class":50},[34,89003,89004],{"class":54}," \"deb [signed-by=/etc/apt/keyrings/gierens.gpg] http://deb.gierens.de stable main\"",[34,89006,7197],{"class":580},[34,89008,9343],{"class":47},[34,89010,27852],{"class":54},[34,89012,89013],{"class":54}," /etc/apt/sources.list.d/gierens.list\n",[34,89015,89016,89018,89020],{"class":36,"line":71},[34,89017,436],{"class":47},[34,89019,439],{"class":54},[34,89021,6441],{"class":54},[34,89023,89024,89026,89028,89030,89032],{"class":36,"line":77},[34,89025,436],{"class":47},[34,89027,439],{"class":54},[34,89029,118],{"class":54},[34,89031,5843],{"class":50},[34,89033,88841],{"class":54},[102,89035,89037],{"id":89036},"macos-with-homebrew","macOS with Homebrew",[25,89039,89041],{"className":27,"code":89040,"language":29,"meta":30,"style":30},"brew install eza\n",[20,89042,89043],{"__ignoreMap":30},[34,89044,89045,89047,89049],{"class":36,"line":37},[34,89046,115],{"class":47},[34,89048,118],{"class":54},[34,89050,88841],{"class":54},[11,89052,89054],{"id":89053},"key-options","Key Options",[102,89056,89058],{"id":89057},"display-options","Display Options",[25,89060,89062],{"className":27,"code":89061,"language":29,"meta":30,"style":30},"-1, --oneline            # Display one entry per line\n-G, --grid               # Grid display (default)\n-l, --long               # Show detailed file information\n--tree                   # Recursively list as a tree\n-F, --classify           # Append indicator for file types\n--icons                  # Show file icons\n--hyperlink              # Produce clickable hyperlinks\n",[20,89063,89064,89075,89086,89097,89105,89116,89124],{"__ignoreMap":30},[34,89065,89066,89069,89072],{"class":36,"line":37},[34,89067,89068],{"class":47},"-1,",[34,89070,89071],{"class":50}," --oneline",[34,89073,89074],{"class":40},"            # Display one entry per line\n",[34,89076,89077,89080,89083],{"class":36,"line":44},[34,89078,89079],{"class":47},"-G,",[34,89081,89082],{"class":50}," --grid",[34,89084,89085],{"class":40},"               # Grid display (default)\n",[34,89087,89088,89091,89094],{"class":36,"line":58},[34,89089,89090],{"class":47},"-l,",[34,89092,89093],{"class":50}," --long",[34,89095,89096],{"class":40},"               # Show detailed file information\n",[34,89098,89099,89102],{"class":36,"line":65},[34,89100,89101],{"class":47},"--tree",[34,89103,89104],{"class":40},"                   # Recursively list as a tree\n",[34,89106,89107,89110,89113],{"class":36,"line":71},[34,89108,89109],{"class":47},"-F,",[34,89111,89112],{"class":50}," --classify",[34,89114,89115],{"class":40},"           # Append indicator for file types\n",[34,89117,89118,89121],{"class":36,"line":77},[34,89119,89120],{"class":47},"--icons",[34,89122,89123],{"class":40},"                  # Show file icons\n",[34,89125,89126,89129],{"class":36,"line":82},[34,89127,89128],{"class":47},"--hyperlink",[34,89130,89131],{"class":40},"              # Produce clickable hyperlinks\n",[102,89133,89135],{"id":89134},"filtering-options","Filtering Options",[25,89137,89139],{"className":27,"code":89138,"language":29,"meta":30,"style":30},"-a, --all                # Include hidden files\n-d, --list-dirs          # Treat directories as normal files\n-r, --reverse            # Reverse sorting order\n-s, --sort=\u003Cfield>       # Sort by the specified field\n--group-directories-first\n                          # Show directories before files\n",[20,89140,89141,89152,89163,89174,89192,89197],{"__ignoreMap":30},[34,89142,89143,89146,89149],{"class":36,"line":37},[34,89144,89145],{"class":47},"-a,",[34,89147,89148],{"class":50}," --all",[34,89150,89151],{"class":40},"                # Include hidden files\n",[34,89153,89154,89157,89160],{"class":36,"line":44},[34,89155,89156],{"class":47},"-d,",[34,89158,89159],{"class":50}," --list-dirs",[34,89161,89162],{"class":40},"          # Treat directories as normal files\n",[34,89164,89165,89168,89171],{"class":36,"line":58},[34,89166,89167],{"class":47},"-r,",[34,89169,89170],{"class":50}," --reverse",[34,89172,89173],{"class":40},"            # Reverse sorting order\n",[34,89175,89176,89179,89182,89184,89187,89189],{"class":36,"line":65},[34,89177,89178],{"class":47},"-s,",[34,89180,89181],{"class":50}," --sort=",[34,89183,815],{"class":580},[34,89185,89186],{"class":50},"field",[34,89188,5691],{"class":580},[34,89190,89191],{"class":40},"       # Sort by the specified field\n",[34,89193,89194],{"class":36,"line":71},[34,89195,89196],{"class":47},"--group-directories-first\n",[34,89198,89199],{"class":36,"line":77},[34,89200,89201],{"class":40},"                          # Show directories before files\n",[102,89203,89205],{"id":89204},"long-view-options","Long View Options",[25,89207,89209],{"className":27,"code":89208,"language":29,"meta":30,"style":30},"--git                    # Display git status\n-Z, --context            # Show SELinux context\n@, --extended            # Include extended attributes\n--binary                 # Show sizes in binary prefixes\n--bytes                  # Show raw byte values for sizes\n-o, --octal-permissions  # Show permissions in octal\n",[20,89210,89211,89219,89230,89241,89249,89257],{"__ignoreMap":30},[34,89212,89213,89216],{"class":36,"line":37},[34,89214,89215],{"class":47},"--git",[34,89217,89218],{"class":40},"                    # Display git status\n",[34,89220,89221,89224,89227],{"class":36,"line":44},[34,89222,89223],{"class":47},"-Z,",[34,89225,89226],{"class":50}," --context",[34,89228,89229],{"class":40},"            # Show SELinux context\n",[34,89231,89232,89235,89238],{"class":36,"line":58},[34,89233,89234],{"class":47},"@,",[34,89236,89237],{"class":50}," --extended",[34,89239,89240],{"class":40},"            # Include extended attributes\n",[34,89242,89243,89246],{"class":36,"line":65},[34,89244,89245],{"class":47},"--binary",[34,89247,89248],{"class":40},"                 # Show sizes in binary prefixes\n",[34,89250,89251,89254],{"class":36,"line":71},[34,89252,89253],{"class":47},"--bytes",[34,89255,89256],{"class":40},"                  # Show raw byte values for sizes\n",[34,89258,89259,89262,89265],{"class":36,"line":77},[34,89260,89261],{"class":47},"-o,",[34,89263,89264],{"class":50}," --octal-permissions",[34,89266,89267],{"class":40},"  # Show permissions in octal\n",[11,89269,89271],{"id":89270},"example-commands","Example Commands",[25,89273,89275],{"className":27,"code":89274,"language":29,"meta":30,"style":30},"# Display all files, long-form, sorted by modification date\n$ eza -la --sort=modified\n\n# Recurse into directories as tree, showing relative dates\n$ eza --tree --all --dates=relative\n",[20,89276,89277,89282,89293,89297,89302],{"__ignoreMap":30},[34,89278,89279],{"class":36,"line":37},[34,89280,89281],{"class":40},"# Display all files, long-form, sorted by modification date\n",[34,89283,89284,89286,89288,89290],{"class":36,"line":44},[34,89285,11676],{"class":47},[34,89287,88857],{"class":54},[34,89289,11420],{"class":50},[34,89291,89292],{"class":50}," --sort=modified\n",[34,89294,89295],{"class":36,"line":58},[34,89296,62],{"emptyLinePlaceholder":61},[34,89298,89299],{"class":36,"line":65},[34,89300,89301],{"class":40},"# Recurse into directories as tree, showing relative dates\n",[34,89303,89304,89306,89308,89311,89313],{"class":36,"line":71},[34,89305,11676],{"class":47},[34,89307,88857],{"class":54},[34,89309,89310],{"class":50}," --tree",[34,89312,89148],{"class":50},[34,89314,89315],{"class":50}," --dates=relative\n",[388,89317,89318],{},"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 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);}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":30,"searchDepth":44,"depth":44,"links":89320},[89321,89322,89323,89329,89334],{"id":13533,"depth":44,"text":13534},{"id":8220,"depth":44,"text":8221},{"id":96,"depth":44,"text":97,"children":89324},[89325,89326,89327,89328],{"id":88903,"depth":58,"text":88904},{"id":53582,"depth":58,"text":53583},{"id":88941,"depth":58,"text":88942},{"id":89036,"depth":58,"text":89037},{"id":89053,"depth":44,"text":89054,"children":89330},[89331,89332,89333],{"id":89057,"depth":58,"text":89058},{"id":89134,"depth":58,"text":89135},{"id":89204,"depth":58,"text":89205},{"id":89270,"depth":44,"text":89271},"Modern replacement for ls with enhanced features and options.",{},"/eza/overview",{"title":88783,"description":89335},"eza/overview",[88783,11417,557,89341],"filesystem","hY5baED2ZEPf58ICLrNVikp4SGhi45l9Z3FmRBhAv3U",{"id":89344,"title":89345,"body":89346,"date":402,"description":89561,"extension":404,"meta":89562,"navigation":61,"order":37,"path":89563,"seo":89564,"stem":89565,"subject":78064,"tags":89566,"__hash__":89567},"topics/fastapi/overview.md","FastAPI Overview",{"type":8,"value":89347,"toc":89555},[89348,89350,89353,89355,89357,89371,89373,89375,89443,89449,89451,89453,89536,89550,89552],[11,89349,14],{"id":13},[16,89351,89352],{},"FastAPI is a web framework for building APIs with Python 3.7+ based on standard Python type hints. It's designed for ease of use and performance.",[7979,89354],{},[11,89356,8498],{"id":8497},[309,89358,89359,89362,89365,89368],{},[312,89360,89361],{},"High performance, comparable to Node.js and Go.",[312,89363,89364],{},"Automatic interactive API documentation (Swagger UI and ReDoc).",[312,89366,89367],{},"Validation and serialization powered by Pydantic models.",[312,89369,89370],{},"Dependency injection system to manage complex app lifecycles.",[7979,89372],{},[11,89374,22151],{"id":22156},[25,89376,89378],{"className":49386,"code":89377,"language":49388,"meta":30,"style":30},"from fastapi import FastAPI\n\napp = FastAPI()\n\n@app.get(\"/\")\ndef read_root():\n    return {\"Hello\": \"World\"}\n",[20,89379,89380,89392,89396,89405,89409,89420,89429],{"__ignoreMap":30},[34,89381,89382,89384,89387,89389],{"class":36,"line":37},[34,89383,587],{"class":580},[34,89385,89386],{"class":181}," fastapi ",[34,89388,581],{"class":580},[34,89390,89391],{"class":181}," FastAPI\n",[34,89393,89394],{"class":36,"line":44},[34,89395,62],{"emptyLinePlaceholder":61},[34,89397,89398,89400,89402],{"class":36,"line":58},[34,89399,81630],{"class":181},[34,89401,1301],{"class":580},[34,89403,89404],{"class":181}," FastAPI()\n",[34,89406,89407],{"class":36,"line":65},[34,89408,62],{"emptyLinePlaceholder":61},[34,89410,89411,89414,89416,89418],{"class":36,"line":71},[34,89412,89413],{"class":47},"@app.get",[34,89415,1607],{"class":181},[34,89417,81654],{"class":54},[34,89419,3372],{"class":181},[34,89421,89422,89424,89427],{"class":36,"line":77},[34,89423,49400],{"class":580},[34,89425,89426],{"class":47}," read_root",[34,89428,81666],{"class":181},[34,89430,89431,89433,89435,89437,89439,89441],{"class":36,"line":82},[34,89432,1564],{"class":580},[34,89434,11838],{"class":181},[34,89436,15564],{"class":54},[34,89438,182],{"class":181},[34,89440,32477],{"class":54},[34,89442,693],{"class":181},[16,89444,89445,89446,89448],{},"The above starts a FastAPI application that returns a ",[20,89447,22151],{}," payload when the root is accessed.",[7979,89450],{},[11,89452,2614],{"id":3256},[25,89454,89456],{"className":49386,"code":89455,"language":49388,"meta":30,"style":30},"from fastapi import FastAPI\napp = FastAPI()\n\n@app.get(\"/items/{item_id}\")\ndef read_item(item_id: int, q: str = None):\n    return {\"item_id\": item_id, \"query\": q}\n",[20,89457,89458,89468,89476,89480,89496,89519],{"__ignoreMap":30},[34,89459,89460,89462,89464,89466],{"class":36,"line":37},[34,89461,587],{"class":580},[34,89463,89386],{"class":181},[34,89465,581],{"class":580},[34,89467,89391],{"class":181},[34,89469,89470,89472,89474],{"class":36,"line":44},[34,89471,81630],{"class":181},[34,89473,1301],{"class":580},[34,89475,89404],{"class":181},[34,89477,89478],{"class":36,"line":58},[34,89479,62],{"emptyLinePlaceholder":61},[34,89481,89482,89484,89486,89489,89492,89494],{"class":36,"line":65},[34,89483,89413],{"class":47},[34,89485,1607],{"class":181},[34,89487,89488],{"class":54},"\"/items/",[34,89490,89491],{"class":50},"{item_id}",[34,89493,10389],{"class":54},[34,89495,3372],{"class":181},[34,89497,89498,89500,89503,89506,89508,89511,89513,89515,89517],{"class":36,"line":71},[34,89499,49400],{"class":580},[34,89501,89502],{"class":47}," read_item",[34,89504,89505],{"class":181},"(item_id: ",[34,89507,17772],{"class":50},[34,89509,89510],{"class":181},", q: ",[34,89512,12646],{"class":50},[34,89514,683],{"class":580},[34,89516,53194],{"class":50},[34,89518,51021],{"class":181},[34,89520,89521,89523,89525,89528,89531,89533],{"class":36,"line":77},[34,89522,1564],{"class":580},[34,89524,11838],{"class":181},[34,89526,89527],{"class":54},"\"item_id\"",[34,89529,89530],{"class":181},": item_id, ",[34,89532,49215],{"class":54},[34,89534,89535],{"class":181},": q}\n",[309,89537,89538,89547],{},[312,89539,89540,89541,1798,89543,89546],{},"Define routes using decorators (",[20,89542,89413],{},[20,89544,89545],{},"@app.post",", etc.).",[312,89548,89549],{},"Path parameters can be declared with type validation.",[7979,89551],{},[388,89553,89554],{},"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 .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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":30,"searchDepth":44,"depth":44,"links":89556},[89557,89558,89559,89560],{"id":13,"depth":44,"text":14},{"id":8497,"depth":44,"text":8498},{"id":22156,"depth":44,"text":22151},{"id":3256,"depth":44,"text":2614},"A quick reference for building applications with FastAPI, focusing on its syntax and key features.",{},"/fastapi/overview",{"title":89345,"description":89561},"fastapi/overview",[78064,49388,38615,43044],"ur2gaZxz4aO8dZTLR25Gd159a466pc1HTvCsDEx38hk",{"id":89569,"title":89570,"body":89571,"date":402,"description":89679,"extension":404,"meta":89680,"navigation":61,"order":44,"path":89681,"seo":89682,"stem":89683,"subject":78064,"tags":89684,"__hash__":89685},"topics/fastapi/routing.md","FastAPI Routing",{"type":8,"value":89572,"toc":89675},[89573,89577,89624,89629,89633,89672],[11,89574,89576],{"id":89575},"path-parameters","Path Parameters",[25,89578,89580],{"className":49386,"code":89579,"language":49388,"meta":30,"style":30},"@app.get(\"/users/{user_id}\")\ndef get_user(user_id: int):\n    return {\"user_id\": user_id}\n",[20,89581,89582,89598,89612],{"__ignoreMap":30},[34,89583,89584,89586,89588,89591,89594,89596],{"class":36,"line":37},[34,89585,89413],{"class":47},[34,89587,1607],{"class":181},[34,89589,89590],{"class":54},"\"/users/",[34,89592,89593],{"class":50},"{user_id}",[34,89595,10389],{"class":54},[34,89597,3372],{"class":181},[34,89599,89600,89602,89605,89608,89610],{"class":36,"line":44},[34,89601,49400],{"class":580},[34,89603,89604],{"class":47}," get_user",[34,89606,89607],{"class":181},"(user_id: ",[34,89609,17772],{"class":50},[34,89611,51021],{"class":181},[34,89613,89614,89616,89618,89621],{"class":36,"line":58},[34,89615,1564],{"class":580},[34,89617,11838],{"class":181},[34,89619,89620],{"class":54},"\"user_id\"",[34,89622,89623],{"class":181},": user_id}\n",[309,89625,89626],{},[312,89627,89628],{},"Path parameters are validated.",[11,89630,89632],{"id":89631},"query-parameters","Query Parameters",[25,89634,89636],{"className":49386,"code":89635,"language":49388,"meta":30,"style":30},"@app.get(\"/search\")\ndef search(q: str):\n    return {\"query\": q}\n",[20,89637,89638,89649,89662],{"__ignoreMap":30},[34,89639,89640,89642,89644,89647],{"class":36,"line":37},[34,89641,89413],{"class":47},[34,89643,1607],{"class":181},[34,89645,89646],{"class":54},"\"/search\"",[34,89648,3372],{"class":181},[34,89650,89651,89653,89655,89658,89660],{"class":36,"line":44},[34,89652,49400],{"class":580},[34,89654,5870],{"class":47},[34,89656,89657],{"class":181},"(q: ",[34,89659,12646],{"class":50},[34,89661,51021],{"class":181},[34,89663,89664,89666,89668,89670],{"class":36,"line":58},[34,89665,1564],{"class":580},[34,89667,11838],{"class":181},[34,89669,49215],{"class":54},[34,89671,89535],{"class":181},[388,89673,89674],{},"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 .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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":89676},[89677,89678],{"id":89575,"depth":44,"text":89576},{"id":89631,"depth":44,"text":89632},"Routing basics in FastAPI, including handling path and query parameters.",{},"/fastapi/routing",{"title":89570,"description":89679},"fastapi/routing",[78064,49388,38615,3256],"HY1k8J7pEFGvn2yrqchfc6HF6WCtFTe0WLlb5_uWmQ0",{"id":89687,"title":89688,"body":89689,"date":402,"description":89855,"extension":404,"meta":89856,"navigation":61,"order":37,"path":89857,"seo":89858,"stem":89859,"subject":89688,"tags":89860,"__hash__":89863},"topics/fd/overview.md","fd",{"type":8,"value":89690,"toc":89848},[89691,89693,89699,89703,89706,89724,89727,89741,89745,89748,89762,89766,89769,89789,89791,89807,89811,89814,89842,89845],[11,89692,13534],{"id":13533},[16,89694,89695,89696,89698],{},"fd is a modern file search utility that offers simplicity and speed over its Unix counterpart, ",[20,89697,12963],{},". It features a user-friendly syntax and numerous capabilities for filtering and formatting search results.",[11,89700,89702],{"id":89701},"basic-usage","Basic Usage",[16,89704,89705],{},"To search for files or directories, use:",[25,89707,89709],{"className":27,"code":89708,"language":29,"meta":30,"style":30},"fd \u003Cpattern>\n",[20,89710,89711],{"__ignoreMap":30},[34,89712,89713,89715,89717,89720,89722],{"class":36,"line":37},[34,89714,89688],{"class":47},[34,89716,5470],{"class":580},[34,89718,89719],{"class":54},"patter",[34,89721,6217],{"class":181},[34,89723,1248],{"class":580},[16,89725,89726],{},"Examples:",[25,89728,89730],{"className":27,"code":89729,"language":29,"meta":30,"style":30},"fd main  # Searches for files/folders with 'main' in their name\n",[20,89731,89732],{"__ignoreMap":30},[34,89733,89734,89736,89738],{"class":36,"line":37},[34,89735,89688],{"class":47},[34,89737,18224],{"class":54},[34,89739,89740],{"class":40},"  # Searches for files/folders with 'main' in their name\n",[11,89742,89744],{"id":89743},"ignoring-patterns","Ignoring Patterns",[16,89746,89747],{},"fd respects .gitignore files by default, ignoring unnecessary files:",[25,89749,89751],{"className":27,"code":89750,"language":29,"meta":30,"style":30},"fd -I    # Search including ignored files\n",[20,89752,89753],{"__ignoreMap":30},[34,89754,89755,89757,89759],{"class":36,"line":37},[34,89756,89688],{"class":47},[34,89758,43289],{"class":50},[34,89760,89761],{"class":40},"    # Search including ignored files\n",[11,89763,89765],{"id":89764},"controlling-depth","Controlling Depth",[16,89767,89768],{},"Limit depth of search:",[25,89770,89772],{"className":27,"code":89771,"language":29,"meta":30,"style":30},"fd -d \u003Cnumber>\n",[20,89773,89774],{"__ignoreMap":30},[34,89775,89776,89778,89780,89782,89785,89787],{"class":36,"line":37},[34,89777,89688],{"class":47},[34,89779,9750],{"class":50},[34,89781,5470],{"class":580},[34,89783,89784],{"class":54},"numbe",[34,89786,56239],{"class":181},[34,89788,1248],{"class":580},[16,89790,16030],{},[25,89792,89794],{"className":27,"code":89793,"language":29,"meta":30,"style":30},"fd -d 1  # Entries in the first level only\n",[20,89795,89796],{"__ignoreMap":30},[34,89797,89798,89800,89802,89804],{"class":36,"line":37},[34,89799,89688],{"class":47},[34,89801,9750],{"class":50},[34,89803,3567],{"class":50},[34,89805,89806],{"class":40},"  # Entries in the first level only\n",[11,89808,89810],{"id":89809},"file-type-filter","File Type Filter",[16,89812,89813],{},"Quickly narrow search via file type filters like:",[25,89815,89817],{"className":27,"code":89816,"language":29,"meta":30,"style":30},"fd -t f  # Search files only\nfd -t d  # Limits matching folders\n",[20,89818,89819,89830],{"__ignoreMap":30},[34,89820,89821,89823,89825,89827],{"class":36,"line":37},[34,89822,89688],{"class":47},[34,89824,11256],{"class":50},[34,89826,12984],{"class":54},[34,89828,89829],{"class":40},"  # Search files only\n",[34,89831,89832,89834,89836,89839],{"class":36,"line":44},[34,89833,89688],{"class":47},[34,89835,11256],{"class":50},[34,89837,89838],{"class":54}," d",[34,89840,89841],{"class":40},"  # Limits matching folders\n",[16,89843,89844],{},"Easy inline bash again but note not miss missed indexline tightening formatting-none",[388,89846,89847],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":30,"searchDepth":44,"depth":44,"links":89849},[89850,89851,89852,89853,89854],{"id":13533,"depth":44,"text":13534},{"id":89701,"depth":44,"text":89702},{"id":89743,"depth":44,"text":89744},{"id":89764,"depth":44,"text":89765},{"id":89809,"depth":44,"text":89810},"A fast, user-friendly alternative to find, for modern file system searches.",{},"/fd/overview",{"title":89688,"description":89855},"fd/overview",[89688,89861,12963,89862],"search","productivity","D24J6xFK-xtIkbLzBybrchjDLFvWEQJVlEMe0mjzfvQ",{"id":89865,"title":89866,"body":89867,"date":402,"description":90051,"extension":404,"meta":90052,"navigation":61,"order":37,"path":90053,"seo":90054,"stem":90055,"subject":89880,"tags":90056,"__hash__":90058},"topics/fennel/overview.md","Fennel",{"type":8,"value":89868,"toc":90043},[89869,89871,89874,89876,89912,89914,89958,89962,89991,89993,90013,90017,90032,90041],[11,89870,13534],{"id":13533},[16,89872,89873],{},"Fennel is a functional programming language that compiles into Lua, offering Lisp-like syntax.",[11,89875,10991],{"id":10996},[25,89877,89881],{"className":89878,"code":89879,"language":89880,"meta":30,"style":30},"language-fennel shiki shiki-themes github-light github-dark",";; Function definition\n(fn greet [name]\n  (print \"Hello, \" name))\n\n;; Call a function\ngreet \"world\"\n","fennel",[20,89882,89883,89888,89893,89898,89902,89907],{"__ignoreMap":30},[34,89884,89885],{"class":36,"line":37},[34,89886,89887],{},";; Function definition\n",[34,89889,89890],{"class":36,"line":44},[34,89891,89892],{},"(fn greet [name]\n",[34,89894,89895],{"class":36,"line":58},[34,89896,89897],{},"  (print \"Hello, \" name))\n",[34,89899,89900],{"class":36,"line":65},[34,89901,62],{"emptyLinePlaceholder":61},[34,89903,89904],{"class":36,"line":71},[34,89905,89906],{},";; Call a function\n",[34,89908,89909],{"class":36,"line":77},[34,89910,89911],{},"greet \"world\"\n",[11,89913,26842],{"id":26847},[25,89915,89917],{"className":89878,"code":89916,"language":89880,"meta":30,"style":30},";; Define a macro\n(macro unless [cond body]\n  `(if (not ,cond)\n       ,body))\n\n;; Use the macro\n(unless false\n  (print \"This runs\"))\n",[20,89918,89919,89924,89929,89934,89939,89943,89948,89953],{"__ignoreMap":30},[34,89920,89921],{"class":36,"line":37},[34,89922,89923],{},";; Define a macro\n",[34,89925,89926],{"class":36,"line":44},[34,89927,89928],{},"(macro unless [cond body]\n",[34,89930,89931],{"class":36,"line":58},[34,89932,89933],{},"  `(if (not ,cond)\n",[34,89935,89936],{"class":36,"line":65},[34,89937,89938],{},"       ,body))\n",[34,89940,89941],{"class":36,"line":71},[34,89942,62],{"emptyLinePlaceholder":61},[34,89944,89945],{"class":36,"line":77},[34,89946,89947],{},";; Use the macro\n",[34,89949,89950],{"class":36,"line":82},[34,89951,89952],{},"(unless false\n",[34,89954,89955],{"class":36,"line":88},[34,89956,89957],{},"  (print \"This runs\"))\n",[11,89959,89961],{"id":89960},"tables","Tables",[25,89963,89965],{"className":89878,"code":89964,"language":89880,"meta":30,"style":30},";; Create a table\n(local person {:name \"Alice\" :age 30})\n\n;; Access table fields\n(print person.name)\n",[20,89966,89967,89972,89977,89981,89986],{"__ignoreMap":30},[34,89968,89969],{"class":36,"line":37},[34,89970,89971],{},";; Create a table\n",[34,89973,89974],{"class":36,"line":44},[34,89975,89976],{},"(local person {:name \"Alice\" :age 30})\n",[34,89978,89979],{"class":36,"line":58},[34,89980,62],{"emptyLinePlaceholder":61},[34,89982,89983],{"class":36,"line":65},[34,89984,89985],{},";; Access table fields\n",[34,89987,89988],{"class":36,"line":71},[34,89989,89990],{},"(print person.name)\n",[11,89992,11769],{"id":11774},[25,89994,89996],{"className":89878,"code":89995,"language":89880,"meta":30,"style":30},";; Loop example\n(for [k] [1 10]\n  (print k))\n",[20,89997,89998,90003,90008],{"__ignoreMap":30},[34,89999,90000],{"class":36,"line":37},[34,90001,90002],{},";; Loop example\n",[34,90004,90005],{"class":36,"line":44},[34,90006,90007],{},"(for [k] [1 10]\n",[34,90009,90010],{"class":36,"line":58},[34,90011,90012],{},"  (print k))\n",[11,90014,90016],{"id":90015},"interoperability-with-lua","Interoperability with Lua",[25,90018,90020],{"className":89878,"code":90019,"language":89880,"meta":30,"style":30},";; Inline Lua\n(lua \"print('Inside Lua block')\")\n",[20,90021,90022,90027],{"__ignoreMap":30},[34,90023,90024],{"class":36,"line":37},[34,90025,90026],{},";; Inline Lua\n",[34,90028,90029],{"class":36,"line":44},[34,90030,90031],{},"(lua \"print('Inside Lua block')\")\n",[16,90033,90034,90035,90040],{},"See the ",[145,90036,90039],{"href":90037,"rel":90038},"https://fennel-lang.org/reference",[149],"Fennel Language Reference"," for more.",[388,90042,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":90044},[90045,90046,90047,90048,90049,90050],{"id":13533,"depth":44,"text":13534},{"id":10996,"depth":44,"text":10991},{"id":26847,"depth":44,"text":26842},{"id":89960,"depth":44,"text":89961},{"id":11774,"depth":44,"text":11769},{"id":90015,"depth":44,"text":90016},"Fennel language quick reference covering syntax, structures, macros, and usage for the Lua-based functional DSL.",{},"/fennel/overview",{"title":89866,"description":90051},"fennel/overview",[89880,29701,90057,26847],"lua","Z7rTrMAZ0A2h0YPZasbsVDxwGyQQj7kEwjSzdv6Bwcw",{"id":90060,"title":90061,"body":90062,"date":402,"description":90139,"extension":404,"meta":90140,"navigation":61,"order":37,"path":90141,"seo":90142,"stem":90143,"subject":53755,"tags":90144,"__hash__":90147},"topics/fish/overview.md","Fish Shell (friendly interactive shell)",{"type":8,"value":90063,"toc":90135},[90064,90066,90069,90071,90132],[11,90065,13534],{"id":13533},[16,90067,90068],{},"Fish shell provides advanced features like autosuggestions, syntax highlighting, and a user-centric configuration, offering seamless command-line interactions.",[11,90070,8498],{"id":8497},[25,90072,90074],{"className":27,"code":90073,"language":29,"meta":30,"style":30},"# Demonstrates Fish commands\nfunction greet\n   echo \"Hello, Fish!\"\nend&Comparison\nabbreviation usage.\nabbreviations snippet;?> functionality\"}\n",[20,90075,90076,90081,90088,90096,90105,90113],{"__ignoreMap":30},[34,90077,90078],{"class":36,"line":37},[34,90079,90080],{"class":40},"# Demonstrates Fish commands\n",[34,90082,90083,90085],{"class":36,"line":44},[34,90084,11044],{"class":580},[34,90086,90087],{"class":47}," greet\n",[34,90089,90090,90093],{"class":36,"line":58},[34,90091,90092],{"class":50},"   echo",[34,90094,90095],{"class":54}," \"Hello, Fish!\"\n",[34,90097,90098,90100,90102],{"class":36,"line":65},[34,90099,40488],{"class":580},[34,90101,19502],{"class":181},[34,90103,90104],{"class":47},"Comparison\n",[34,90106,90107,90110],{"class":36,"line":71},[34,90108,90109],{"class":47},"abbreviation",[34,90111,90112],{"class":54}," usage.\n",[34,90114,90115,90118,90121,90123,90126,90129],{"class":36,"line":77},[34,90116,90117],{"class":47},"abbreviations",[34,90119,90120],{"class":54}," snippet",[34,90122,17909],{"class":181},[34,90124,90125],{"class":580},"?>",[34,90127,90128],{"class":181}," functionality",[34,90130,90131],{"class":54},"\"}\n",[388,90133,90134],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .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":30,"searchDepth":44,"depth":44,"links":90136},[90137,90138],{"id":13533,"depth":44,"text":13534},{"id":8497,"depth":44,"text":8498},"Highlighting the user-friendly interactive features, syntax, and customization of Fish shell for effective command-line operations.",{},"/fish/overview",{"title":90061,"description":90139},"fish/overview",[10358,90145,53755,90146],"posix-alternate","command-line","FXXzOjvC4w0tKkDxCbXPs0lmzg8ZAtPETGoKjWrDykg",{"id":90149,"title":81595,"body":90150,"date":402,"description":90619,"extension":404,"meta":90620,"navigation":61,"order":37,"path":90621,"seo":90622,"stem":90623,"subject":90624,"tags":90625,"__hash__":90627},"topics/flask/overview.md",{"type":8,"value":90151,"toc":90611},[90152,90154,90157,90245,90247,90250,90291,90293,90296,90377,90431,90435,90438,90516,90518,90521,90559,90563,90566,90608],[11,90153,14],{"id":13},[16,90155,90156],{},"Flask is a micro web framework written in Python. It is lightweight and modular, making it easy to scale up to complex applications.",[25,90158,90160],{"className":49386,"code":90159,"language":49388,"meta":30,"style":30},"from flask import Flask\napp = Flask(__name__)\n\n@app.route('/')\ndef hello_world():\n    return 'Hello, World!'\n\nif __name__ == \"__main__\":\n    app.run(debug=True)\n",[20,90161,90162,90172,90184,90188,90198,90206,90213,90217,90231],{"__ignoreMap":30},[34,90163,90164,90166,90168,90170],{"class":36,"line":37},[34,90165,587],{"class":580},[34,90167,81616],{"class":181},[34,90169,581],{"class":580},[34,90171,81621],{"class":181},[34,90173,90174,90176,90178,90180,90182],{"class":36,"line":44},[34,90175,81630],{"class":181},[34,90177,1301],{"class":580},[34,90179,81635],{"class":181},[34,90181,81638],{"class":50},[34,90183,3372],{"class":181},[34,90185,90186],{"class":36,"line":58},[34,90187,62],{"emptyLinePlaceholder":61},[34,90189,90190,90192,90194,90196],{"class":36,"line":65},[34,90191,81649],{"class":47},[34,90193,1607],{"class":181},[34,90195,61825],{"class":54},[34,90197,3372],{"class":181},[34,90199,90200,90202,90204],{"class":36,"line":71},[34,90201,49400],{"class":580},[34,90203,81663],{"class":47},[34,90205,81666],{"class":181},[34,90207,90208,90210],{"class":36,"line":77},[34,90209,1564],{"class":580},[34,90211,90212],{"class":54}," 'Hello, World!'\n",[34,90214,90215],{"class":36,"line":82},[34,90216,62],{"emptyLinePlaceholder":61},[34,90218,90219,90221,90224,90226,90229],{"class":36,"line":88},[34,90220,10383],{"class":580},[34,90222,90223],{"class":50}," __name__",[34,90225,10946],{"class":580},[34,90227,90228],{"class":54}," \"__main__\"",[34,90230,193],{"class":181},[34,90232,90233,90236,90239,90241,90243],{"class":36,"line":242},[34,90234,90235],{"class":181},"    app.run(",[34,90237,90238],{"class":675},"debug",[34,90240,1301],{"class":580},[34,90242,74021],{"class":50},[34,90244,3372],{"class":181},[11,90246,2614],{"id":3256},[16,90248,90249],{},"Define URL rules to map URIs to functions.",[25,90251,90253],{"className":49386,"code":90252,"language":49388,"meta":30,"style":30},"@app.route('/hello/\u003Cname>')\ndef hello(name):\n    return f\"Hello, {name}!\"\n",[20,90254,90255,90266,90275],{"__ignoreMap":30},[34,90256,90257,90259,90261,90264],{"class":36,"line":37},[34,90258,81649],{"class":47},[34,90260,1607],{"class":181},[34,90262,90263],{"class":54},"'/hello/\u003Cname>'",[34,90265,3372],{"class":181},[34,90267,90268,90270,90272],{"class":36,"line":44},[34,90269,49400],{"class":580},[34,90271,22235],{"class":47},[34,90273,90274],{"class":181},"(name):\n",[34,90276,90277,90279,90281,90283,90285,90287,90289],{"class":36,"line":58},[34,90278,1564],{"class":580},[34,90280,12984],{"class":580},[34,90282,21921],{"class":54},[34,90284,13990],{"class":50},[34,90286,178],{"class":181},[34,90288,34378],{"class":50},[34,90290,11026],{"class":54},[11,90292,32216],{"id":32642},[16,90294,90295],{},"Integrate with Jinja2 templates.",[25,90297,90299],{"className":1162,"code":90298,"language":1164,"meta":30,"style":30},"\u003C!DOCTYPE html>\n\u003Chtml>\n  \u003Chead>\u003Ctitle>Home\u003C/title>\u003C/head>\n  \u003Cbody>\n    \u003Ch1>Welcome, {{ name }}!\u003C/h1>\n  \u003C/body>\n\u003C/html>\n",[20,90300,90301,90311,90319,90340,90348,90361,90369],{"__ignoreMap":30},[34,90302,90303,90305,90307,90309],{"class":36,"line":37},[34,90304,46378],{"class":181},[34,90306,46381],{"class":177},[34,90308,46384],{"class":47},[34,90310,1248],{"class":181},[34,90312,90313,90315,90317],{"class":36,"line":44},[34,90314,815],{"class":181},[34,90316,1164],{"class":177},[34,90318,1248],{"class":181},[34,90320,90321,90323,90325,90327,90329,90332,90334,90336,90338],{"class":36,"line":58},[34,90322,1181],{"class":181},[34,90324,13118],{"class":177},[34,90326,2040],{"class":181},[34,90328,953],{"class":177},[34,90330,90331],{"class":181},">Home\u003C/",[34,90333,953],{"class":177},[34,90335,2050],{"class":181},[34,90337,13118],{"class":177},[34,90339,1248],{"class":181},[34,90341,90342,90344,90346],{"class":36,"line":65},[34,90343,1181],{"class":181},[34,90345,46502],{"class":177},[34,90347,1248],{"class":181},[34,90349,90350,90352,90354,90357,90359],{"class":36,"line":71},[34,90351,1294],{"class":181},[34,90353,8535],{"class":177},[34,90355,90356],{"class":181},">Welcome, {{ name }}!\u003C/",[34,90358,8535],{"class":177},[34,90360,1248],{"class":181},[34,90362,90363,90365,90367],{"class":36,"line":77},[34,90364,8547],{"class":181},[34,90366,46502],{"class":177},[34,90368,1248],{"class":181},[34,90370,90371,90373,90375],{"class":36,"line":82},[34,90372,2089],{"class":181},[34,90374,1164],{"class":177},[34,90376,1248],{"class":181},[25,90378,90380],{"className":49386,"code":90379,"language":49388,"meta":30,"style":30},"from flask import render_template\n@app.route('/greet/\u003Cname>')\ndef greet(name):\n    return render_template('welcome.html', name=name)\n",[20,90381,90382,90393,90404,90412],{"__ignoreMap":30},[34,90383,90384,90386,90388,90390],{"class":36,"line":37},[34,90385,587],{"class":580},[34,90387,81616],{"class":181},[34,90389,581],{"class":580},[34,90391,90392],{"class":181}," render_template\n",[34,90394,90395,90397,90399,90402],{"class":36,"line":44},[34,90396,81649],{"class":47},[34,90398,1607],{"class":181},[34,90400,90401],{"class":54},"'/greet/\u003Cname>'",[34,90403,3372],{"class":181},[34,90405,90406,90408,90410],{"class":36,"line":58},[34,90407,49400],{"class":580},[34,90409,11047],{"class":47},[34,90411,90274],{"class":181},[34,90413,90414,90416,90419,90422,90424,90426,90428],{"class":36,"line":65},[34,90415,1564],{"class":580},[34,90417,90418],{"class":181}," render_template(",[34,90420,90421],{"class":54},"'welcome.html'",[34,90423,1798],{"class":181},[34,90425,178],{"class":675},[34,90427,1301],{"class":580},[34,90429,90430],{"class":181},"name)\n",[11,90432,90434],{"id":90433},"forms-and-request-data","Forms and Request Data",[16,90436,90437],{},"Handle form submission and data parsing.",[25,90439,90441],{"className":49386,"code":90440,"language":49388,"meta":30,"style":30},"from flask import request\n@app.route('/submit', methods=['POST'])\ndef submit():\n    data = request.form['key']\n    return f\"Received {data}\"\n",[20,90442,90443,90454,90475,90484,90499],{"__ignoreMap":30},[34,90444,90445,90447,90449,90451],{"class":36,"line":37},[34,90446,587],{"class":580},[34,90448,81616],{"class":181},[34,90450,581],{"class":580},[34,90452,90453],{"class":181}," request\n",[34,90455,90456,90458,90460,90463,90465,90467,90469,90471,90473],{"class":36,"line":44},[34,90457,81649],{"class":47},[34,90459,1607],{"class":181},[34,90461,90462],{"class":54},"'/submit'",[34,90464,1798],{"class":181},[34,90466,36913],{"class":675},[34,90468,1301],{"class":580},[34,90470,10260],{"class":181},[34,90472,75057],{"class":54},[34,90474,51547],{"class":181},[34,90476,90477,90479,90482],{"class":36,"line":58},[34,90478,49400],{"class":580},[34,90480,90481],{"class":47}," submit",[34,90483,81666],{"class":181},[34,90485,90486,90489,90491,90494,90497],{"class":36,"line":65},[34,90487,90488],{"class":181},"    data ",[34,90490,1301],{"class":580},[34,90492,90493],{"class":181}," request.form[",[34,90495,90496],{"class":54},"'key'",[34,90498,924],{"class":181},[34,90500,90501,90503,90505,90508,90510,90512,90514],{"class":36,"line":71},[34,90502,1564],{"class":580},[34,90504,12984],{"class":580},[34,90506,90507],{"class":54},"\"Received ",[34,90509,13990],{"class":50},[34,90511,1701],{"class":181},[34,90513,34378],{"class":50},[34,90515,11320],{"class":54},[11,90517,19352],{"id":19357},[16,90519,90520],{},"Custom error responses.",[25,90522,90524],{"className":49386,"code":90523,"language":49388,"meta":30,"style":30},"@app.errorhandler(404)\ndef not_found(e):\n    return \"This page does not exist!\", 404\n",[20,90525,90526,90537,90547],{"__ignoreMap":30},[34,90527,90528,90531,90533,90535],{"class":36,"line":37},[34,90529,90530],{"class":47},"@app.errorhandler",[34,90532,1607],{"class":181},[34,90534,15630],{"class":50},[34,90536,3372],{"class":181},[34,90538,90539,90541,90544],{"class":36,"line":44},[34,90540,49400],{"class":580},[34,90542,90543],{"class":47}," not_found",[34,90545,90546],{"class":181},"(e):\n",[34,90548,90549,90551,90554,90556],{"class":36,"line":58},[34,90550,1564],{"class":580},[34,90552,90553],{"class":54}," \"This page does not exist!\"",[34,90555,1798],{"class":181},[34,90557,90558],{"class":50},"404\n",[11,90560,90562],{"id":90561},"extensions","Extensions",[16,90564,90565],{},"Extend functionalities using Flask extensions.",[25,90567,90569],{"className":49386,"code":90568,"language":49388,"meta":30,"style":30},"from flask_sqlalchemy import SQLAlchemy\napp.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'\ndb = SQLAlchemy(app)\n",[20,90570,90571,90583,90598],{"__ignoreMap":30},[34,90572,90573,90575,90578,90580],{"class":36,"line":37},[34,90574,587],{"class":580},[34,90576,90577],{"class":181}," flask_sqlalchemy ",[34,90579,581],{"class":580},[34,90581,90582],{"class":181}," SQLAlchemy\n",[34,90584,90585,90588,90591,90593,90595],{"class":36,"line":44},[34,90586,90587],{"class":181},"app.config[",[34,90589,90590],{"class":54},"'SQLALCHEMY_DATABASE_URI'",[34,90592,17799],{"class":181},[34,90594,1301],{"class":580},[34,90596,90597],{"class":54}," 'sqlite:///test.db'\n",[34,90599,90600,90603,90605],{"class":36,"line":58},[34,90601,90602],{"class":181},"db ",[34,90604,1301],{"class":580},[34,90606,90607],{"class":181}," SQLAlchemy(app)\n",[388,90609,90610],{},"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 .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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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 .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":30,"searchDepth":44,"depth":44,"links":90612},[90613,90614,90615,90616,90617,90618],{"id":13,"depth":44,"text":14},{"id":3256,"depth":44,"text":2614},{"id":32642,"depth":44,"text":32216},{"id":90433,"depth":44,"text":90434},{"id":19357,"depth":44,"text":19352},{"id":90561,"depth":44,"text":90562},"Essential Flask concepts to build lightweight and efficient web applications.",{},"/flask/overview",{"title":81595,"description":90619},"flask/overview","flask",[90624,49388,46870,90626],"webframework","iW2aJBugniQE3EkjsaELI61KV5MOFwHffFpgOW5qTPA",{"id":90629,"title":90630,"body":90631,"date":402,"description":91304,"extension":404,"meta":91305,"navigation":61,"order":37,"path":91306,"seo":91307,"stem":91308,"subject":90686,"tags":91309,"__hash__":91310},"topics/flux/overview.md","Flux CD",{"type":8,"value":90632,"toc":91296},[90633,90635,90689,90693,90772,90776,90868,90872,91029,91033,91181,91185,91293],[11,90634,97],{"id":96},[25,90636,90638],{"className":27,"code":90637,"language":29,"meta":30,"style":30},"# Install Flux CLI\nbrew install fluxcd/tap/flux\n\n# Or via curl\ncurl -s https://fluxcd.io/install.sh | sudo bash\n\nflux version\n",[20,90639,90640,90645,90654,90658,90663,90678,90682],{"__ignoreMap":30},[34,90641,90642],{"class":36,"line":37},[34,90643,90644],{"class":40},"# Install Flux CLI\n",[34,90646,90647,90649,90651],{"class":36,"line":44},[34,90648,115],{"class":47},[34,90650,118],{"class":54},[34,90652,90653],{"class":54}," fluxcd/tap/flux\n",[34,90655,90656],{"class":36,"line":58},[34,90657,62],{"emptyLinePlaceholder":61},[34,90659,90660],{"class":36,"line":65},[34,90661,90662],{"class":40},"# Or via curl\n",[34,90664,90665,90667,90669,90672,90674,90676],{"class":36,"line":71},[34,90666,8648],{"class":47},[34,90668,5487],{"class":50},[34,90670,90671],{"class":54}," https://fluxcd.io/install.sh",[34,90673,7197],{"class":580},[34,90675,9343],{"class":47},[34,90677,9346],{"class":54},[34,90679,90680],{"class":36,"line":77},[34,90681,62],{"emptyLinePlaceholder":61},[34,90683,90684,90687],{"class":36,"line":82},[34,90685,90686],{"class":47},"flux",[34,90688,9358],{"class":54},[11,90690,90692],{"id":90691},"bootstrap-github","Bootstrap (GitHub)",[25,90694,90696],{"className":27,"code":90695,"language":29,"meta":30,"style":30},"# Bootstrap Flux on a cluster with GitHub\nflux bootstrap github \\\n  --owner=my-org \\\n  --repository=my-fleet \\\n  --branch=main \\\n  --path=clusters/my-cluster \\\n  --personal\n\n# This will:\n# 1. Create the repo if it doesn't exist\n# 2. Install Flux components in flux-system namespace\n# 3. Push cluster config to Git\n",[20,90697,90698,90703,90715,90722,90729,90736,90743,90748,90752,90757,90762,90767],{"__ignoreMap":30},[34,90699,90700],{"class":36,"line":37},[34,90701,90702],{"class":40},"# Bootstrap Flux on a cluster with GitHub\n",[34,90704,90705,90707,90710,90713],{"class":36,"line":44},[34,90706,90686],{"class":47},[34,90708,90709],{"class":54}," bootstrap",[34,90711,90712],{"class":54}," github",[34,90714,7186],{"class":50},[34,90716,90717,90720],{"class":36,"line":58},[34,90718,90719],{"class":50},"  --owner=my-org",[34,90721,7186],{"class":50},[34,90723,90724,90727],{"class":36,"line":65},[34,90725,90726],{"class":50},"  --repository=my-fleet",[34,90728,7186],{"class":50},[34,90730,90731,90734],{"class":36,"line":71},[34,90732,90733],{"class":50},"  --branch=main",[34,90735,7186],{"class":50},[34,90737,90738,90741],{"class":36,"line":77},[34,90739,90740],{"class":50},"  --path=clusters/my-cluster",[34,90742,7186],{"class":50},[34,90744,90745],{"class":36,"line":82},[34,90746,90747],{"class":50},"  --personal\n",[34,90749,90750],{"class":36,"line":88},[34,90751,62],{"emptyLinePlaceholder":61},[34,90753,90754],{"class":36,"line":242},[34,90755,90756],{"class":40},"# This will:\n",[34,90758,90759],{"class":36,"line":250},[34,90760,90761],{"class":40},"# 1. Create the repo if it doesn't exist\n",[34,90763,90764],{"class":36,"line":263},[34,90765,90766],{"class":40},"# 2. Install Flux components in flux-system namespace\n",[34,90768,90769],{"class":36,"line":275},[34,90770,90771],{"class":40},"# 3. Push cluster config to Git\n",[11,90773,90775],{"id":90774},"gitrepository-source","GitRepository Source",[25,90777,90779],{"className":168,"code":90778,"language":170,"meta":30,"style":30},"# gitrepository.yaml\napiVersion: source.toolkit.fluxcd.io/v1\nkind: GitRepository\nmetadata:\n  name: my-app\n  namespace: flux-system\nspec:\n  interval: 1m\n  url: https://github.com/my-org/my-app\n  ref:\n    branch: main\n",[20,90780,90781,90786,90795,90804,90810,90818,90827,90833,90843,90852,90859],{"__ignoreMap":30},[34,90782,90783],{"class":36,"line":37},[34,90784,90785],{"class":40},"# gitrepository.yaml\n",[34,90787,90788,90790,90792],{"class":36,"line":44},[34,90789,7323],{"class":177},[34,90791,182],{"class":181},[34,90793,90794],{"class":54},"source.toolkit.fluxcd.io/v1\n",[34,90796,90797,90799,90801],{"class":36,"line":58},[34,90798,7333],{"class":177},[34,90800,182],{"class":181},[34,90802,90803],{"class":54},"GitRepository\n",[34,90805,90806,90808],{"class":36,"line":65},[34,90807,7343],{"class":177},[34,90809,193],{"class":181},[34,90811,90812,90814,90816],{"class":36,"line":71},[34,90813,7350],{"class":177},[34,90815,182],{"class":181},[34,90817,7355],{"class":54},[34,90819,90820,90822,90824],{"class":36,"line":77},[34,90821,7360],{"class":177},[34,90823,182],{"class":181},[34,90825,90826],{"class":54},"flux-system\n",[34,90828,90829,90831],{"class":36,"line":82},[34,90830,7370],{"class":177},[34,90832,193],{"class":181},[34,90834,90835,90838,90840],{"class":36,"line":88},[34,90836,90837],{"class":177},"  interval",[34,90839,182],{"class":181},[34,90841,90842],{"class":54},"1m\n",[34,90844,90845,90848,90850],{"class":36,"line":242},[34,90846,90847],{"class":177},"  url",[34,90849,182],{"class":181},[34,90851,7399],{"class":54},[34,90853,90854,90857],{"class":36,"line":250},[34,90855,90856],{"class":177},"  ref",[34,90858,193],{"class":181},[34,90860,90861,90864,90866],{"class":36,"line":263},[34,90862,90863],{"class":177},"    branch",[34,90865,182],{"class":181},[34,90867,215],{"class":54},[11,90869,90871],{"id":90870},"kustomization","Kustomization",[25,90873,90875],{"className":168,"code":90874,"language":170,"meta":30,"style":30},"# kustomization.yaml\napiVersion: kustomize.toolkit.fluxcd.io/v1\nkind: Kustomization\nmetadata:\n  name: my-app\n  namespace: flux-system\nspec:\n  interval: 10m\n  path: ./deploy/production\n  prune: true              # delete resources removed from Git\n  sourceRef:\n    kind: GitRepository\n    name: my-app\n  healthChecks:\n    - apiVersion: apps/v1\n      kind: Deployment\n      name: my-app\n      namespace: default\n",[20,90876,90877,90882,90891,90900,90906,90914,90922,90928,90937,90947,90959,90966,90975,90983,90990,91001,91011,91020],{"__ignoreMap":30},[34,90878,90879],{"class":36,"line":37},[34,90880,90881],{"class":40},"# kustomization.yaml\n",[34,90883,90884,90886,90888],{"class":36,"line":44},[34,90885,7323],{"class":177},[34,90887,182],{"class":181},[34,90889,90890],{"class":54},"kustomize.toolkit.fluxcd.io/v1\n",[34,90892,90893,90895,90897],{"class":36,"line":58},[34,90894,7333],{"class":177},[34,90896,182],{"class":181},[34,90898,90899],{"class":54},"Kustomization\n",[34,90901,90902,90904],{"class":36,"line":65},[34,90903,7343],{"class":177},[34,90905,193],{"class":181},[34,90907,90908,90910,90912],{"class":36,"line":71},[34,90909,7350],{"class":177},[34,90911,182],{"class":181},[34,90913,7355],{"class":54},[34,90915,90916,90918,90920],{"class":36,"line":77},[34,90917,7360],{"class":177},[34,90919,182],{"class":181},[34,90921,90826],{"class":54},[34,90923,90924,90926],{"class":36,"line":82},[34,90925,7370],{"class":177},[34,90927,193],{"class":181},[34,90929,90930,90932,90934],{"class":36,"line":88},[34,90931,90837],{"class":177},[34,90933,182],{"class":181},[34,90935,90936],{"class":54},"10m\n",[34,90938,90939,90942,90944],{"class":36,"line":242},[34,90940,90941],{"class":177},"  path",[34,90943,182],{"class":181},[34,90945,90946],{"class":54},"./deploy/production\n",[34,90948,90949,90952,90954,90956],{"class":36,"line":250},[34,90950,90951],{"class":177},"  prune",[34,90953,182],{"class":181},[34,90955,632],{"class":50},[34,90957,90958],{"class":40},"              # delete resources removed from Git\n",[34,90960,90961,90964],{"class":36,"line":263},[34,90962,90963],{"class":177},"  sourceRef",[34,90965,193],{"class":181},[34,90967,90968,90971,90973],{"class":36,"line":275},[34,90969,90970],{"class":177},"    kind",[34,90972,182],{"class":181},[34,90974,90803],{"class":54},[34,90976,90977,90979,90981],{"class":36,"line":700},[34,90978,5362],{"class":177},[34,90980,182],{"class":181},[34,90982,7355],{"class":54},[34,90984,90985,90988],{"class":36,"line":706},[34,90986,90987],{"class":177},"  healthChecks",[34,90989,193],{"class":181},[34,90991,90992,90994,90996,90998],{"class":36,"line":715},[34,90993,5120],{"class":181},[34,90995,7323],{"class":177},[34,90997,182],{"class":181},[34,90999,91000],{"class":54},"apps/v1\n",[34,91002,91003,91006,91008],{"class":36,"line":725},[34,91004,91005],{"class":177},"      kind",[34,91007,182],{"class":181},[34,91009,91010],{"class":54},"Deployment\n",[34,91012,91013,91016,91018],{"class":36,"line":734},[34,91014,91015],{"class":177},"      name",[34,91017,182],{"class":181},[34,91019,7355],{"class":54},[34,91021,91022,91025,91027],{"class":36,"line":742},[34,91023,91024],{"class":177},"      namespace",[34,91026,182],{"class":181},[34,91028,7382],{"class":54},[11,91030,91032],{"id":91031},"helmrelease","HelmRelease",[25,91034,91036],{"className":168,"code":91035,"language":170,"meta":30,"style":30},"# helmrelease.yaml\napiVersion: helm.toolkit.fluxcd.io/v2\nkind: HelmRelease\nmetadata:\n  name: nginx\n  namespace: default\nspec:\n  interval: 5m\n  chart:\n    spec:\n      chart: ingress-nginx\n      version: '>=4.0.0'\n      sourceRef:\n        kind: HelmRepository\n        name: ingress-nginx\n  values:\n    controller:\n      replicaCount: 2\n",[20,91037,91038,91043,91052,91061,91067,91075,91083,91089,91098,91105,91112,91122,91132,91139,91149,91157,91164,91171],{"__ignoreMap":30},[34,91039,91040],{"class":36,"line":37},[34,91041,91042],{"class":40},"# helmrelease.yaml\n",[34,91044,91045,91047,91049],{"class":36,"line":44},[34,91046,7323],{"class":177},[34,91048,182],{"class":181},[34,91050,91051],{"class":54},"helm.toolkit.fluxcd.io/v2\n",[34,91053,91054,91056,91058],{"class":36,"line":58},[34,91055,7333],{"class":177},[34,91057,182],{"class":181},[34,91059,91060],{"class":54},"HelmRelease\n",[34,91062,91063,91065],{"class":36,"line":65},[34,91064,7343],{"class":177},[34,91066,193],{"class":181},[34,91068,91069,91071,91073],{"class":36,"line":71},[34,91070,7350],{"class":177},[34,91072,182],{"class":181},[34,91074,5144],{"class":54},[34,91076,91077,91079,91081],{"class":36,"line":77},[34,91078,7360],{"class":177},[34,91080,182],{"class":181},[34,91082,7382],{"class":54},[34,91084,91085,91087],{"class":36,"line":82},[34,91086,7370],{"class":177},[34,91088,193],{"class":181},[34,91090,91091,91093,91095],{"class":36,"line":88},[34,91092,90837],{"class":177},[34,91094,182],{"class":181},[34,91096,91097],{"class":54},"5m\n",[34,91099,91100,91103],{"class":36,"line":242},[34,91101,91102],{"class":177},"  chart",[34,91104,193],{"class":181},[34,91106,91107,91110],{"class":36,"line":250},[34,91108,91109],{"class":177},"    spec",[34,91111,193],{"class":181},[34,91113,91114,91117,91119],{"class":36,"line":263},[34,91115,91116],{"class":177},"      chart",[34,91118,182],{"class":181},[34,91120,91121],{"class":54},"ingress-nginx\n",[34,91123,91124,91127,91129],{"class":36,"line":275},[34,91125,91126],{"class":177},"      version",[34,91128,182],{"class":181},[34,91130,91131],{"class":54},"'>=4.0.0'\n",[34,91133,91134,91137],{"class":36,"line":700},[34,91135,91136],{"class":177},"      sourceRef",[34,91138,193],{"class":181},[34,91140,91141,91144,91146],{"class":36,"line":706},[34,91142,91143],{"class":177},"        kind",[34,91145,182],{"class":181},[34,91147,91148],{"class":54},"HelmRepository\n",[34,91150,91151,91153,91155],{"class":36,"line":715},[34,91152,5139],{"class":177},[34,91154,182],{"class":181},[34,91156,91121],{"class":54},[34,91158,91159,91162],{"class":36,"line":725},[34,91160,91161],{"class":177},"  values",[34,91163,193],{"class":181},[34,91165,91166,91169],{"class":36,"line":734},[34,91167,91168],{"class":177},"    controller",[34,91170,193],{"class":181},[34,91172,91173,91176,91178],{"class":36,"line":742},[34,91174,91175],{"class":177},"      replicaCount",[34,91177,182],{"class":181},[34,91179,91180],{"class":50},"2\n",[11,91182,91184],{"id":91183},"cli-commands","CLI Commands",[25,91186,91188],{"className":27,"code":91187,"language":29,"meta":30,"style":30},"# Check Flux status\nflux check\nflux get all\n\n# Force reconcile\nflux reconcile source git my-app\nflux reconcile kustomization my-app\n\n# Suspend / resume\nflux suspend kustomization my-app\nflux resume kustomization my-app\n\n# View logs\nflux logs --follow --level=error\n",[20,91189,91190,91195,91201,91209,91213,91218,91231,91242,91246,91251,91262,91273,91277,91281],{"__ignoreMap":30},[34,91191,91192],{"class":36,"line":37},[34,91193,91194],{"class":40},"# Check Flux status\n",[34,91196,91197,91199],{"class":36,"line":44},[34,91198,90686],{"class":47},[34,91200,5718],{"class":54},[34,91202,91203,91205,91207],{"class":36,"line":58},[34,91204,90686],{"class":47},[34,91206,7173],{"class":54},[34,91208,53936],{"class":54},[34,91210,91211],{"class":36,"line":65},[34,91212,62],{"emptyLinePlaceholder":61},[34,91214,91215],{"class":36,"line":71},[34,91216,91217],{"class":40},"# Force reconcile\n",[34,91219,91220,91222,91225,91227,91229],{"class":36,"line":77},[34,91221,90686],{"class":47},[34,91223,91224],{"class":54}," reconcile",[34,91226,13231],{"class":54},[34,91228,12533],{"class":54},[34,91230,7508],{"class":54},[34,91232,91233,91235,91237,91240],{"class":36,"line":82},[34,91234,90686],{"class":47},[34,91236,91224],{"class":54},[34,91238,91239],{"class":54}," kustomization",[34,91241,7508],{"class":54},[34,91243,91244],{"class":36,"line":88},[34,91245,62],{"emptyLinePlaceholder":61},[34,91247,91248],{"class":36,"line":242},[34,91249,91250],{"class":40},"# Suspend / resume\n",[34,91252,91253,91255,91258,91260],{"class":36,"line":250},[34,91254,90686],{"class":47},[34,91256,91257],{"class":54}," suspend",[34,91259,91239],{"class":54},[34,91261,7508],{"class":54},[34,91263,91264,91266,91269,91271],{"class":36,"line":263},[34,91265,90686],{"class":47},[34,91267,91268],{"class":54}," resume",[34,91270,91239],{"class":54},[34,91272,7508],{"class":54},[34,91274,91275],{"class":36,"line":275},[34,91276,62],{"emptyLinePlaceholder":61},[34,91278,91279],{"class":36,"line":700},[34,91280,55891],{"class":40},[34,91282,91283,91285,91287,91290],{"class":36,"line":706},[34,91284,90686],{"class":47},[34,91286,55905],{"class":54},[34,91288,91289],{"class":50}," --follow",[34,91291,91292],{"class":50}," --level=error\n",[388,91294,91295],{},"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 pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":30,"searchDepth":44,"depth":44,"links":91297},[91298,91299,91300,91301,91302,91303],{"id":96,"depth":44,"text":97},{"id":90691,"depth":44,"text":90692},{"id":90774,"depth":44,"text":90775},{"id":90870,"depth":44,"text":90871},{"id":91031,"depth":44,"text":91032},{"id":91183,"depth":44,"text":91184},"A GitOps toolkit for keeping Kubernetes clusters in sync with Git repositories.",{},"/flux/overview",{"title":90630,"description":91304},"flux/overview",[90686,7700,7701,7702,7703],"giHoKWxayhDkOAVQlTjz1lWfyTFAZRHou1dUGLxPGUU",{"id":91312,"title":81826,"body":91313,"date":402,"description":91513,"extension":404,"meta":91514,"navigation":61,"order":37,"path":91515,"seo":91516,"stem":91517,"subject":81826,"tags":91518,"__hash__":91519},"topics/fnm/overview.md",{"type":8,"value":91314,"toc":91506},[91315,91317,91322,91376,91378,91389,91391,91394,91434,91438,91504],[11,91316,13534],{"id":13533},[16,91318,91319,91321],{},[20,91320,81826],{}," (Fast Node Manager) is a lightweight Node.js version manager powered by Rust. It allows users to install and switch between different Node.js versions effortlessly.",[25,91323,91325],{"className":27,"code":91324,"language":29,"meta":30,"style":30},"# Install a specific Node.js version\nfnm install 16.13.0\n\n# Use a specific version\nfnm use 16.13.0\n\n# Set the default Node.js version globally\nfnm default 14.17.0\n",[20,91326,91327,91332,91341,91345,91350,91358,91362,91367],{"__ignoreMap":30},[34,91328,91329],{"class":36,"line":37},[34,91330,91331],{"class":40},"# Install a specific Node.js version\n",[34,91333,91334,91336,91338],{"class":36,"line":44},[34,91335,81826],{"class":47},[34,91337,118],{"class":54},[34,91339,91340],{"class":50}," 16.13.0\n",[34,91342,91343],{"class":36,"line":58},[34,91344,62],{"emptyLinePlaceholder":61},[34,91346,91347],{"class":36,"line":65},[34,91348,91349],{"class":40},"# Use a specific version\n",[34,91351,91352,91354,91356],{"class":36,"line":71},[34,91353,81826],{"class":47},[34,91355,49111],{"class":54},[34,91357,91340],{"class":50},[34,91359,91360],{"class":36,"line":77},[34,91361,62],{"emptyLinePlaceholder":61},[34,91363,91364],{"class":36,"line":82},[34,91365,91366],{"class":40},"# Set the default Node.js version globally\n",[34,91368,91369,91371,91373],{"class":36,"line":88},[34,91370,81826],{"class":47},[34,91372,7298],{"class":54},[34,91374,91375],{"class":50}," 14.17.0\n",[102,91377,8221],{"id":8220},[309,91379,91380,91383,91386],{},[312,91381,91382],{},"Fast installation with caching.",[312,91384,91385],{},"Cross-platform support.",[312,91387,91388],{},"Written in Rust for performance and reliability.",[11,91390,97],{"id":96},[16,91392,91393],{},"Follow the instructions on GitHub:",[25,91395,91397],{"className":27,"code":91396,"language":29,"meta":30,"style":30},"# On macOS or Linux\ncurl -fsSL https://fnm.vercel.app/install | bash\n\n# On Windows (via Scoop)\nscoop install fnm\n",[20,91398,91399,91404,91416,91420,91425],{"__ignoreMap":30},[34,91400,91401],{"class":36,"line":37},[34,91402,91403],{"class":40},"# On macOS or Linux\n",[34,91405,91406,91408,91410,91412,91414],{"class":36,"line":44},[34,91407,8648],{"class":47},[34,91409,15806],{"class":50},[34,91411,82024],{"class":54},[34,91413,7197],{"class":580},[34,91415,9346],{"class":47},[34,91417,91418],{"class":36,"line":58},[34,91419,62],{"emptyLinePlaceholder":61},[34,91421,91422],{"class":36,"line":65},[34,91423,91424],{"class":40},"# On Windows (via Scoop)\n",[34,91426,91427,91430,91432],{"class":36,"line":71},[34,91428,91429],{"class":47},"scoop",[34,91431,118],{"class":54},[34,91433,82046],{"class":54},[11,91435,91437],{"id":91436},"usage-examples","Usage Examples",[25,91439,91441],{"className":27,"code":91440,"language":29,"meta":30,"style":30},"# Check installed versions\nfnm list\n\n# Install the latest LTS version\nfnm install --lts\n\n# Remove a specific version\nfnm uninstall 12.22.1\n\n# Check the version being used currently\nfnm current\n",[20,91442,91443,91447,91453,91457,91462,91471,91475,91480,91489,91493,91498],{"__ignoreMap":30},[34,91444,91445],{"class":36,"line":37},[34,91446,7906],{"class":40},[34,91448,91449,91451],{"class":36,"line":44},[34,91450,81826],{"class":47},[34,91452,7536],{"class":54},[34,91454,91455],{"class":36,"line":58},[34,91456,62],{"emptyLinePlaceholder":61},[34,91458,91459],{"class":36,"line":65},[34,91460,91461],{"class":40},"# Install the latest LTS version\n",[34,91463,91464,91466,91468],{"class":36,"line":71},[34,91465,81826],{"class":47},[34,91467,118],{"class":54},[34,91469,91470],{"class":50}," --lts\n",[34,91472,91473],{"class":36,"line":77},[34,91474,62],{"emptyLinePlaceholder":61},[34,91476,91477],{"class":36,"line":82},[34,91478,91479],{"class":40},"# Remove a specific version\n",[34,91481,91482,91484,91486],{"class":36,"line":88},[34,91483,81826],{"class":47},[34,91485,49149],{"class":54},[34,91487,91488],{"class":50}," 12.22.1\n",[34,91490,91491],{"class":36,"line":242},[34,91492,62],{"emptyLinePlaceholder":61},[34,91494,91495],{"class":36,"line":250},[34,91496,91497],{"class":40},"# Check the version being used currently\n",[34,91499,91500,91502],{"class":36,"line":263},[34,91501,81826],{"class":47},[34,91503,53122],{"class":54},[388,91505,89318],{},{"title":30,"searchDepth":44,"depth":44,"links":91507},[91508,91511,91512],{"id":13533,"depth":44,"text":13534,"children":91509},[91510],{"id":8220,"depth":58,"text":8221},{"id":96,"depth":44,"text":97},{"id":91436,"depth":44,"text":91437},"Fast and simple Node.js version manager for seamless version switching.",{},"/fnm/overview",{"title":81826,"description":91513},"fnm/overview",[81826,78040,82999],"4QTyykCdYeLjaNwVCVWXoqDjXbZFmrS6l0FHOIcaC84",{"id":91521,"title":91522,"body":91523,"date":402,"description":91712,"extension":404,"meta":91713,"navigation":61,"order":37,"path":91714,"seo":91715,"stem":91716,"subject":91717,"tags":91718,"__hash__":91721},"topics/fp-ts/overview.md","Functional Programming in TypeScript (fp-ts)",{"type":8,"value":91524,"toc":91704},[91525,91527,91531,91652,91654,91658,91701],[11,91526,14],{"id":13},[102,91528,91530],{"id":91529},"what-is-fp-ts","What is fp-ts?",[25,91532,91536],{"className":91533,"code":91534,"language":91535,"meta":30,"style":30},"language-ts shiki shiki-themes github-light github-dark","// fp-ts is a library for functional programming in TypeScript.\nimport * as E from 'fp-ts/Either';\nimport { pipe } from 'fp-ts/function';\n\nconst result = pipe(\n  E.right(\"hello\"),\n  E.map((str) => `${str} world!`)\n);\n\nconsole.log(result); // Right(\"hello world!\")\n","ts",[20,91537,91538,91543,91562,91575,91579,91591,91607,91632,91636,91640],{"__ignoreMap":30},[34,91539,91540],{"class":36,"line":37},[34,91541,91542],{"class":40},"// fp-ts is a library for functional programming in TypeScript.\n",[34,91544,91545,91547,91549,91552,91555,91557,91560],{"class":36,"line":44},[34,91546,581],{"class":580},[34,91548,18083],{"class":50},[34,91550,91551],{"class":580}," as",[34,91553,91554],{"class":181}," E ",[34,91556,587],{"class":580},[34,91558,91559],{"class":54}," 'fp-ts/Either'",[34,91561,593],{"class":181},[34,91563,91564,91566,91568,91570,91573],{"class":36,"line":58},[34,91565,581],{"class":580},[34,91567,60795],{"class":181},[34,91569,587],{"class":580},[34,91571,91572],{"class":54}," 'fp-ts/function'",[34,91574,593],{"class":181},[34,91576,91577],{"class":36,"line":65},[34,91578,62],{"emptyLinePlaceholder":61},[34,91580,91581,91583,91585,91587,91589],{"class":36,"line":71},[34,91582,14676],{"class":580},[34,91584,11103],{"class":50},[34,91586,683],{"class":580},[34,91588,60877],{"class":47},[34,91590,1882],{"class":181},[34,91592,91593,91596,91598,91601,91603,91605],{"class":36,"line":77},[34,91594,91595],{"class":50},"  E",[34,91597,151],{"class":181},[34,91599,91600],{"class":47},"right",[34,91602,1607],{"class":181},[34,91604,17360],{"class":54},[34,91606,50836],{"class":181},[34,91608,91609,91611,91613,91615,91617,91619,91621,91623,91625,91627,91630],{"class":36,"line":82},[34,91610,91595],{"class":50},[34,91612,151],{"class":181},[34,91614,61180],{"class":47},[34,91616,8348],{"class":181},[34,91618,12646],{"class":675},[34,91620,4817],{"class":181},[34,91622,3361],{"class":580},[34,91624,60305],{"class":54},[34,91626,12646],{"class":181},[34,91628,91629],{"class":54},"} world!`",[34,91631,3372],{"class":181},[34,91633,91634],{"class":36,"line":88},[34,91635,1586],{"class":181},[34,91637,91638],{"class":36,"line":242},[34,91639,62],{"emptyLinePlaceholder":61},[34,91641,91642,91644,91646,91649],{"class":36,"line":250},[34,91643,15183],{"class":181},[34,91645,2424],{"class":47},[34,91647,91648],{"class":181},"(result); ",[34,91650,91651],{"class":40},"// Right(\"hello world!\")\n",[11,91653,62663],{"id":62662},[102,91655,91657],{"id":91656},"functional-modules-in-fp-ts","Functional Modules in fp-ts",[25,91659,91661],{"className":91533,"code":91660,"language":91535,"meta":30,"style":30},"// Alt combines monads using an \"alternate\" if the first fails.\nimport { Alt } from 'fp-ts/Alt';\nimport * as AL from \"fq-modules imported-stickts files html]);  //Stat firesync build Preview UI Function/Struct re-export modules Testsales Orchesis \n",[20,91662,91663,91668,91682],{"__ignoreMap":30},[34,91664,91665],{"class":36,"line":37},[34,91666,91667],{"class":40},"// Alt combines monads using an \"alternate\" if the first fails.\n",[34,91669,91670,91672,91675,91677,91680],{"class":36,"line":44},[34,91671,581],{"class":580},[34,91673,91674],{"class":181}," { Alt } ",[34,91676,587],{"class":580},[34,91678,91679],{"class":54}," 'fp-ts/Alt'",[34,91681,593],{"class":181},[34,91683,91684,91686,91688,91690,91693,91695,91698],{"class":36,"line":58},[34,91685,581],{"class":580},[34,91687,18083],{"class":50},[34,91689,91551],{"class":580},[34,91691,91692],{"class":181}," AL ",[34,91694,587],{"class":580},[34,91696,91697],{"class":54}," \"fq-modules imported-stickts files html]);  //Stat firesync build Preview UI Function/Struct re-export modules Testsales Orchesi",[34,91699,91700],{"class":24316},"s\n",[388,91702,91703],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .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}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 .s7hpK, html code.shiki .s7hpK{--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic}",{"title":30,"searchDepth":44,"depth":44,"links":91705},[91706,91709],{"id":13,"depth":44,"text":14,"children":91707},[91708],{"id":91529,"depth":58,"text":91530},{"id":62662,"depth":44,"text":62663,"children":91710},[91711],{"id":91656,"depth":58,"text":91657},"Master the basics of using fp-ts for functional programming in TypeScript.",{},"/fp-ts/overview",{"title":91522,"description":91712},"fp-ts/overview","fp-ts",[573,75279,91719,91720,91717],"monads","algebras","wg79yZvaUsTgMql4Lyc0MzQNOJLjZR0GMVrUnZLf8k8",{"id":91723,"title":91724,"body":91725,"date":91792,"description":91793,"extension":404,"meta":91794,"navigation":61,"order":37,"path":91795,"seo":91796,"stem":91797,"subject":91733,"tags":91798,"__hash__":91799},"topics/fzf/overview.md","Fuzzy Finder (fzf)",{"type":8,"value":91726,"toc":91788},[91727,91729,91735,91750,91752,91755,91782,91785],[11,91728,14],{"id":13},[16,91730,91731,91734],{},[20,91732,91733],{},"fzf"," is a general-purpose command-line fuzzy finder. It's fast, portable, and highly customizable, allowing you to search files, text, or any list interactively.",[25,91736,91738],{"className":27,"code":91737,"language":29,"meta":30,"style":30},"# Search for a specific file in your working directory\nfzf\n",[20,91739,91740,91745],{"__ignoreMap":30},[34,91741,91742],{"class":36,"line":37},[34,91743,91744],{"class":40},"# Search for a specific file in your working directory\n",[34,91746,91747],{"class":36,"line":44},[34,91748,91749],{"class":47},"fzf\n",[11,91751,97],{"id":96},[16,91753,91754],{},"On common platforms:",[25,91756,91758],{"className":27,"code":91757,"language":29,"meta":30,"style":30},"# Using Homebrew on macOS\nbrew install fzf or transit cmd \n\n",[20,91759,91760,91765],{"__ignoreMap":30},[34,91761,91762],{"class":36,"line":37},[34,91763,91764],{"class":40},"# Using Homebrew on macOS\n",[34,91766,91767,91769,91771,91774,91776,91779],{"class":36,"line":44},[34,91768,115],{"class":47},[34,91770,118],{"class":54},[34,91772,91773],{"class":54}," fzf",[34,91775,48486],{"class":54},[34,91777,91778],{"class":54}," transit",[34,91780,91781],{"class":54}," cmd\n",[16,91783,91784],{},"brings tailored... to developer红鹰 mag codeslots",[388,91786,91787],{},"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 .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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":30,"searchDepth":44,"depth":44,"links":91789},[91790,91791],{"id":13,"depth":44,"text":14},{"id":96,"depth":44,"text":97},"2026-03-04","Quick reference for fzf, a blazing-fast command-line fuzzy finder.",{},"/fzf/overview",{"title":91724,"description":91793},"fzf/overview",[91733,557,89862,89861],"gzjGSbhChZ9FkumSfW_RR21qmMFbEGiboOc99qnjvy4",{"id":91801,"title":91802,"body":91803,"date":402,"description":92464,"extension":404,"meta":92465,"navigation":61,"order":37,"path":92466,"seo":92467,"stem":92468,"subject":91865,"tags":92469,"__hash__":92472},"topics/gcloud/overview.md","gcloud CLI",{"type":8,"value":91804,"toc":92455},[91805,91807,91868,91870,91957,91961,92054,92058,92186,92190,92280,92284,92389,92391,92453],[11,91806,97],{"id":96},[25,91808,91810],{"className":27,"code":91809,"language":29,"meta":30,"style":30},"# macOS\nbrew install --cask google-cloud-sdk\n\n# Linux\ncurl https://sdk.cloud.google.com | bash\nexec -l $SHELL\n\ngcloud version\n",[20,91811,91812,91816,91828,91832,91836,91847,91857,91861],{"__ignoreMap":30},[34,91813,91814],{"class":36,"line":37},[34,91815,8625],{"class":40},[34,91817,91818,91820,91822,91825],{"class":36,"line":44},[34,91819,115],{"class":47},[34,91821,118],{"class":54},[34,91823,91824],{"class":50}," --cask",[34,91826,91827],{"class":54}," google-cloud-sdk\n",[34,91829,91830],{"class":36,"line":58},[34,91831,62],{"emptyLinePlaceholder":61},[34,91833,91834],{"class":36,"line":65},[34,91835,8643],{"class":40},[34,91837,91838,91840,91843,91845],{"class":36,"line":71},[34,91839,8648],{"class":47},[34,91841,91842],{"class":54}," https://sdk.cloud.google.com",[34,91844,7197],{"class":580},[34,91846,9346],{"class":47},[34,91848,91849,91852,91854],{"class":36,"line":77},[34,91850,91851],{"class":50},"exec",[34,91853,13169],{"class":50},[34,91855,91856],{"class":181}," $SHELL\n",[34,91858,91859],{"class":36,"line":82},[34,91860,62],{"emptyLinePlaceholder":61},[34,91862,91863,91866],{"class":36,"line":88},[34,91864,91865],{"class":47},"gcloud",[34,91867,9358],{"class":54},[11,91869,9362],{"id":9361},[25,91871,91873],{"className":27,"code":91872,"language":29,"meta":30,"style":30},"# Login interactively\ngcloud auth login\n\n# Application default credentials\ngcloud auth application-default login\n\n# Service account\ngcloud auth activate-service-account --key-file=key.json\n\n# Show current account\ngcloud auth list\ngcloud config get-value account\n",[20,91874,91875,91880,91888,91892,91897,91908,91912,91917,91929,91933,91937,91945],{"__ignoreMap":30},[34,91876,91877],{"class":36,"line":37},[34,91878,91879],{"class":40},"# Login interactively\n",[34,91881,91882,91884,91886],{"class":36,"line":44},[34,91883,91865],{"class":47},[34,91885,72545],{"class":54},[34,91887,9379],{"class":54},[34,91889,91890],{"class":36,"line":58},[34,91891,62],{"emptyLinePlaceholder":61},[34,91893,91894],{"class":36,"line":65},[34,91895,91896],{"class":40},"# Application default credentials\n",[34,91898,91899,91901,91903,91906],{"class":36,"line":71},[34,91900,91865],{"class":47},[34,91902,72545],{"class":54},[34,91904,91905],{"class":54}," application-default",[34,91907,9379],{"class":54},[34,91909,91910],{"class":36,"line":77},[34,91911,62],{"emptyLinePlaceholder":61},[34,91913,91914],{"class":36,"line":82},[34,91915,91916],{"class":40},"# Service account\n",[34,91918,91919,91921,91923,91926],{"class":36,"line":88},[34,91920,91865],{"class":47},[34,91922,72545],{"class":54},[34,91924,91925],{"class":54}," activate-service-account",[34,91927,91928],{"class":50}," --key-file=key.json\n",[34,91930,91931],{"class":36,"line":242},[34,91932,62],{"emptyLinePlaceholder":61},[34,91934,91935],{"class":36,"line":250},[34,91936,9454],{"class":40},[34,91938,91939,91941,91943],{"class":36,"line":263},[34,91940,91865],{"class":47},[34,91942,72545],{"class":54},[34,91944,7536],{"class":54},[34,91946,91947,91949,91951,91954],{"class":36,"line":275},[34,91948,91865],{"class":47},[34,91950,58810],{"class":54},[34,91952,91953],{"class":54}," get-value",[34,91955,91956],{"class":54}," account\n",[11,91958,91960],{"id":91959},"projects-config","Projects & Config",[25,91962,91964],{"className":27,"code":91963,"language":29,"meta":30,"style":30},"# List projects\ngcloud projects list\n\n# Set active project\ngcloud config set project my-project-id\n\n# List all config\ngcloud config list\n\n# Named configurations\ngcloud config configurations create prod\ngcloud config configurations activate prod\n",[20,91965,91966,91970,91979,91983,91988,92002,92006,92011,92019,92023,92028,92041],{"__ignoreMap":30},[34,91967,91968],{"class":36,"line":37},[34,91969,7674],{"class":40},[34,91971,91972,91974,91977],{"class":36,"line":44},[34,91973,91865],{"class":47},[34,91975,91976],{"class":54}," projects",[34,91978,7536],{"class":54},[34,91980,91981],{"class":36,"line":58},[34,91982,62],{"emptyLinePlaceholder":61},[34,91984,91985],{"class":36,"line":65},[34,91986,91987],{"class":40},"# Set active project\n",[34,91989,91990,91992,91994,91996,91999],{"class":36,"line":71},[34,91991,91865],{"class":47},[34,91993,58810],{"class":54},[34,91995,9481],{"class":54},[34,91997,91998],{"class":54}," project",[34,92000,92001],{"class":54}," my-project-id\n",[34,92003,92004],{"class":36,"line":77},[34,92005,62],{"emptyLinePlaceholder":61},[34,92007,92008],{"class":36,"line":82},[34,92009,92010],{"class":40},"# List all config\n",[34,92012,92013,92015,92017],{"class":36,"line":88},[34,92014,91865],{"class":47},[34,92016,58810],{"class":54},[34,92018,7536],{"class":54},[34,92020,92021],{"class":36,"line":242},[34,92022,62],{"emptyLinePlaceholder":61},[34,92024,92025],{"class":36,"line":250},[34,92026,92027],{"class":40},"# Named configurations\n",[34,92029,92030,92032,92034,92037,92039],{"class":36,"line":263},[34,92031,91865],{"class":47},[34,92033,58810],{"class":54},[34,92035,92036],{"class":54}," configurations",[34,92038,7077],{"class":54},[34,92040,8754],{"class":54},[34,92042,92043,92045,92047,92049,92052],{"class":36,"line":275},[34,92044,91865],{"class":47},[34,92046,58810],{"class":54},[34,92048,92036],{"class":54},[34,92050,92051],{"class":54}," activate",[34,92053,8754],{"class":54},[11,92055,92057],{"id":92056},"compute-vms","Compute (VMs)",[25,92059,92061],{"className":27,"code":92060,"language":29,"meta":30,"style":30},"# List instances\ngcloud compute instances list\n\n# Create VM\ngcloud compute instances create my-vm \\\n  --zone=us-central1-a \\\n  --machine-type=e2-medium \\\n  --image-family=debian-11 \\\n  --image-project=debian-cloud\n\n# SSH into VM\ngcloud compute ssh my-vm --zone=us-central1-a\n\n# Stop / delete\ngcloud compute instances stop my-vm --zone=us-central1-a\ngcloud compute instances delete my-vm --zone=us-central1-a\n",[20,92062,92063,92067,92079,92083,92087,92101,92108,92115,92122,92127,92131,92135,92149,92153,92158,92172],{"__ignoreMap":30},[34,92064,92065],{"class":36,"line":37},[34,92066,8918],{"class":40},[34,92068,92069,92071,92074,92077],{"class":36,"line":44},[34,92070,91865],{"class":47},[34,92072,92073],{"class":54}," compute",[34,92075,92076],{"class":54}," instances",[34,92078,7536],{"class":54},[34,92080,92081],{"class":36,"line":58},[34,92082,62],{"emptyLinePlaceholder":61},[34,92084,92085],{"class":36,"line":65},[34,92086,9605],{"class":40},[34,92088,92089,92091,92093,92095,92097,92099],{"class":36,"line":71},[34,92090,91865],{"class":47},[34,92092,92073],{"class":54},[34,92094,92076],{"class":54},[34,92096,7077],{"class":54},[34,92098,9632],{"class":54},[34,92100,7186],{"class":50},[34,92102,92103,92106],{"class":36,"line":77},[34,92104,92105],{"class":50},"  --zone=us-central1-a",[34,92107,7186],{"class":50},[34,92109,92110,92113],{"class":36,"line":82},[34,92111,92112],{"class":50},"  --machine-type=e2-medium",[34,92114,7186],{"class":50},[34,92116,92117,92120],{"class":36,"line":88},[34,92118,92119],{"class":50},"  --image-family=debian-11",[34,92121,7186],{"class":50},[34,92123,92124],{"class":36,"line":242},[34,92125,92126],{"class":50},"  --image-project=debian-cloud\n",[34,92128,92129],{"class":36,"line":250},[34,92130,62],{"emptyLinePlaceholder":61},[34,92132,92133],{"class":36,"line":263},[34,92134,9730],{"class":40},[34,92136,92137,92139,92141,92144,92146],{"class":36,"line":275},[34,92138,91865],{"class":47},[34,92140,92073],{"class":54},[34,92142,92143],{"class":54}," ssh",[34,92145,9632],{"class":54},[34,92147,92148],{"class":50}," --zone=us-central1-a\n",[34,92150,92151],{"class":36,"line":700},[34,92152,62],{"emptyLinePlaceholder":61},[34,92154,92155],{"class":36,"line":706},[34,92156,92157],{"class":40},"# Stop / delete\n",[34,92159,92160,92162,92164,92166,92168,92170],{"class":36,"line":715},[34,92161,91865],{"class":47},[34,92163,92073],{"class":54},[34,92165,92076],{"class":54},[34,92167,9696],{"class":54},[34,92169,9632],{"class":54},[34,92171,92148],{"class":50},[34,92173,92174,92176,92178,92180,92182,92184],{"class":36,"line":725},[34,92175,91865],{"class":47},[34,92177,92073],{"class":54},[34,92179,92076],{"class":54},[34,92181,9562],{"class":54},[34,92183,9632],{"class":54},[34,92185,92148],{"class":50},[11,92187,92189],{"id":92188},"cloud-storage","Cloud Storage",[25,92191,92193],{"className":27,"code":92192,"language":29,"meta":30,"style":30},"# List buckets\ngsutil ls\n\n# Create bucket\ngsutil mb gs://my-bucket\n\n# Copy file\ngsutil cp file.txt gs://my-bucket/\ngsutil cp gs://my-bucket/file.txt .\n\n# Sync directory\ngsutil -m rsync -r ./dist gs://my-bucket/dist\n",[20,92194,92195,92199,92206,92210,92215,92225,92229,92234,92245,92256,92260,92264],{"__ignoreMap":30},[34,92196,92197],{"class":36,"line":37},[34,92198,8782],{"class":40},[34,92200,92201,92204],{"class":36,"line":44},[34,92202,92203],{"class":47},"gsutil",[34,92205,8791],{"class":54},[34,92207,92208],{"class":36,"line":58},[34,92209,62],{"emptyLinePlaceholder":61},[34,92211,92212],{"class":36,"line":65},[34,92213,92214],{"class":40},"# Create bucket\n",[34,92216,92217,92219,92222],{"class":36,"line":71},[34,92218,92203],{"class":47},[34,92220,92221],{"class":54}," mb",[34,92223,92224],{"class":54}," gs://my-bucket\n",[34,92226,92227],{"class":36,"line":77},[34,92228,62],{"emptyLinePlaceholder":61},[34,92230,92231],{"class":36,"line":82},[34,92232,92233],{"class":40},"# Copy file\n",[34,92235,92236,92238,92240,92242],{"class":36,"line":88},[34,92237,92203],{"class":47},[34,92239,8829],{"class":54},[34,92241,8832],{"class":54},[34,92243,92244],{"class":54}," gs://my-bucket/\n",[34,92246,92247,92249,92251,92254],{"class":36,"line":242},[34,92248,92203],{"class":47},[34,92250,8829],{"class":54},[34,92252,92253],{"class":54}," gs://my-bucket/file.txt",[34,92255,56924],{"class":54},[34,92257,92258],{"class":36,"line":250},[34,92259,62],{"emptyLinePlaceholder":61},[34,92261,92262],{"class":36,"line":263},[34,92263,8843],{"class":40},[34,92265,92266,92268,92270,92273,92275,92277],{"class":36,"line":275},[34,92267,92203],{"class":47},[34,92269,5037],{"class":50},[34,92271,92272],{"class":54}," rsync",[34,92274,12112],{"class":50},[34,92276,8854],{"class":54},[34,92278,92279],{"class":54}," gs://my-bucket/dist\n",[11,92281,92283],{"id":92282},"cloud-run","Cloud Run",[25,92285,92287],{"className":27,"code":92286,"language":29,"meta":30,"style":30},"# Deploy container\ngcloud run deploy my-service \\\n  --image gcr.io/my-project/my-image \\\n  --platform managed \\\n  --region us-central1 \\\n  --allow-unauthenticated\n\n# List services\ngcloud run services list\n\n# Get service URL\ngcloud run services describe my-service --format='value(status.url)'\n",[20,92288,92289,92294,92308,92317,92327,92337,92342,92346,92351,92362,92366,92371],{"__ignoreMap":30},[34,92290,92291],{"class":36,"line":37},[34,92292,92293],{"class":40},"# Deploy container\n",[34,92295,92296,92298,92300,92303,92306],{"class":36,"line":44},[34,92297,91865],{"class":47},[34,92299,16017],{"class":54},[34,92301,92302],{"class":54}," deploy",[34,92304,92305],{"class":54}," my-service",[34,92307,7186],{"class":50},[34,92309,92310,92312,92315],{"class":36,"line":58},[34,92311,9639],{"class":50},[34,92313,92314],{"class":54}," gcr.io/my-project/my-image",[34,92316,7186],{"class":50},[34,92318,92319,92322,92325],{"class":36,"line":65},[34,92320,92321],{"class":50},"  --platform",[34,92323,92324],{"class":54}," managed",[34,92326,7186],{"class":50},[34,92328,92329,92332,92335],{"class":36,"line":71},[34,92330,92331],{"class":50},"  --region",[34,92333,92334],{"class":54}," us-central1",[34,92336,7186],{"class":50},[34,92338,92339],{"class":36,"line":77},[34,92340,92341],{"class":50},"  --allow-unauthenticated\n",[34,92343,92344],{"class":36,"line":82},[34,92345,62],{"emptyLinePlaceholder":61},[34,92347,92348],{"class":36,"line":88},[34,92349,92350],{"class":40},"# List services\n",[34,92352,92353,92355,92357,92360],{"class":36,"line":242},[34,92354,91865],{"class":47},[34,92356,16017],{"class":54},[34,92358,92359],{"class":54}," services",[34,92361,7536],{"class":54},[34,92363,92364],{"class":36,"line":250},[34,92365,62],{"emptyLinePlaceholder":61},[34,92367,92368],{"class":36,"line":263},[34,92369,92370],{"class":40},"# Get service URL\n",[34,92372,92373,92375,92377,92379,92382,92384,92386],{"class":36,"line":275},[34,92374,91865],{"class":47},[34,92376,16017],{"class":54},[34,92378,92359],{"class":54},[34,92380,92381],{"class":54}," describe",[34,92383,92305],{"class":54},[34,92385,57265],{"class":50},[34,92387,92388],{"class":54},"'value(status.url)'\n",[11,92390,9016],{"id":9015},[25,92392,92394],{"className":27,"code":92393,"language":29,"meta":30,"style":30},"# List IAM policy\ngcloud projects get-iam-policy my-project\n\n# Add IAM binding\ngcloud projects add-iam-policy-binding my-project \\\n  --member='user:alice@example.com' \\\n  --role='roles/storage.objectViewer'\n",[20,92395,92396,92401,92413,92417,92422,92435,92445],{"__ignoreMap":30},[34,92397,92398],{"class":36,"line":37},[34,92399,92400],{"class":40},"# List IAM policy\n",[34,92402,92403,92405,92407,92410],{"class":36,"line":44},[34,92404,91865],{"class":47},[34,92406,91976],{"class":54},[34,92408,92409],{"class":54}," get-iam-policy",[34,92411,92412],{"class":54}," my-project\n",[34,92414,92415],{"class":36,"line":58},[34,92416,62],{"emptyLinePlaceholder":61},[34,92418,92419],{"class":36,"line":65},[34,92420,92421],{"class":40},"# Add IAM binding\n",[34,92423,92424,92426,92428,92431,92433],{"class":36,"line":71},[34,92425,91865],{"class":47},[34,92427,91976],{"class":54},[34,92429,92430],{"class":54}," add-iam-policy-binding",[34,92432,7636],{"class":54},[34,92434,7186],{"class":50},[34,92436,92437,92440,92443],{"class":36,"line":77},[34,92438,92439],{"class":50},"  --member=",[34,92441,92442],{"class":54},"'user:alice@example.com'",[34,92444,7186],{"class":50},[34,92446,92447,92450],{"class":36,"line":82},[34,92448,92449],{"class":50},"  --role=",[34,92451,92452],{"class":54},"'roles/storage.objectViewer'\n",[388,92454,5578],{},{"title":30,"searchDepth":44,"depth":44,"links":92456},[92457,92458,92459,92460,92461,92462,92463],{"id":96,"depth":44,"text":97},{"id":9361,"depth":44,"text":9362},{"id":91959,"depth":44,"text":91960},{"id":92056,"depth":44,"text":92057},{"id":92188,"depth":44,"text":92189},{"id":92282,"depth":44,"text":92283},{"id":9015,"depth":44,"text":9016},"The Google Cloud command-line interface for managing GCP resources and services.",{},"/gcloud/overview",{"title":91802,"description":92464},"gcloud/overview",[91865,92470,411,5438,92471],"google-cloud","gcp","8Yps7dPoYL7zXOhlKqwJBV_EROdlGFjxaZgzt6px-ks",{"id":92474,"title":92475,"body":92476,"date":402,"description":93399,"extension":404,"meta":93400,"navigation":61,"order":82,"path":93401,"seo":93402,"stem":93403,"subject":92496,"tags":93404,"__hash__":93408},"topics/gh/actions.md","GitHub Actions",{"type":8,"value":92477,"toc":93388},[92478,92482,92639,92643,92816,92820,92858,92862,92928,92932,92972,92976,93045,93049,93175,93179,93296,93300,93385],[11,92479,92481],{"id":92480},"workflow-runs","Workflow Runs",[25,92483,92485],{"className":27,"code":92484,"language":29,"meta":30,"style":30},"# List recent workflow runs (default: 20)\ngh run list\n\n# List more runs\ngh run list --limit 50\n\n# Filter by branch\ngh run list --branch main\n\n# Filter by workflow name or file\ngh run list --workflow deploy.yml\n\n# Filter by status\ngh run list --status failure\ngh run list --status success\n\n# Filter by event type\ngh run list --event push\ngh run list --event pull_request\n",[20,92486,92487,92492,92501,92505,92510,92524,92528,92533,92546,92550,92555,92569,92573,92578,92592,92605,92609,92614,92627],{"__ignoreMap":30},[34,92488,92489],{"class":36,"line":37},[34,92490,92491],{"class":40},"# List recent workflow runs (default: 20)\n",[34,92493,92494,92497,92499],{"class":36,"line":44},[34,92495,92496],{"class":47},"gh",[34,92498,16017],{"class":54},[34,92500,7536],{"class":54},[34,92502,92503],{"class":36,"line":58},[34,92504,62],{"emptyLinePlaceholder":61},[34,92506,92507],{"class":36,"line":65},[34,92508,92509],{"class":40},"# List more runs\n",[34,92511,92512,92514,92516,92518,92521],{"class":36,"line":71},[34,92513,92496],{"class":47},[34,92515,16017],{"class":54},[34,92517,6345],{"class":54},[34,92519,92520],{"class":50}," --limit",[34,92522,92523],{"class":50}," 50\n",[34,92525,92526],{"class":36,"line":77},[34,92527,62],{"emptyLinePlaceholder":61},[34,92529,92530],{"class":36,"line":82},[34,92531,92532],{"class":40},"# Filter by branch\n",[34,92534,92535,92537,92539,92541,92543],{"class":36,"line":88},[34,92536,92496],{"class":47},[34,92538,16017],{"class":54},[34,92540,6345],{"class":54},[34,92542,7806],{"class":50},[34,92544,92545],{"class":54}," main\n",[34,92547,92548],{"class":36,"line":242},[34,92549,62],{"emptyLinePlaceholder":61},[34,92551,92552],{"class":36,"line":250},[34,92553,92554],{"class":40},"# Filter by workflow name or file\n",[34,92556,92557,92559,92561,92563,92566],{"class":36,"line":263},[34,92558,92496],{"class":47},[34,92560,16017],{"class":54},[34,92562,6345],{"class":54},[34,92564,92565],{"class":50}," --workflow",[34,92567,92568],{"class":54}," deploy.yml\n",[34,92570,92571],{"class":36,"line":275},[34,92572,62],{"emptyLinePlaceholder":61},[34,92574,92575],{"class":36,"line":700},[34,92576,92577],{"class":40},"# Filter by status\n",[34,92579,92580,92582,92584,92586,92589],{"class":36,"line":706},[34,92581,92496],{"class":47},[34,92583,16017],{"class":54},[34,92585,6345],{"class":54},[34,92587,92588],{"class":50}," --status",[34,92590,92591],{"class":54}," failure\n",[34,92593,92594,92596,92598,92600,92602],{"class":36,"line":715},[34,92595,92496],{"class":47},[34,92597,16017],{"class":54},[34,92599,6345],{"class":54},[34,92601,92588],{"class":50},[34,92603,92604],{"class":54}," success\n",[34,92606,92607],{"class":36,"line":725},[34,92608,62],{"emptyLinePlaceholder":61},[34,92610,92611],{"class":36,"line":734},[34,92612,92613],{"class":40},"# Filter by event type\n",[34,92615,92616,92618,92620,92622,92625],{"class":36,"line":742},[34,92617,92496],{"class":47},[34,92619,16017],{"class":54},[34,92621,6345],{"class":54},[34,92623,92624],{"class":50}," --event",[34,92626,298],{"class":54},[34,92628,92629,92631,92633,92635,92637],{"class":36,"line":748},[34,92630,92496],{"class":47},[34,92632,16017],{"class":54},[34,92634,6345],{"class":54},[34,92636,92624],{"class":50},[34,92638,351],{"class":54},[11,92640,92642],{"id":92641},"view-runs","View Runs",[25,92644,92646],{"className":27,"code":92645,"language":29,"meta":30,"style":30},"# Interactively select a run to view\ngh run view\n\n# View a specific run\ngh run view 12345\n\n# View with job steps expanded\ngh run view 12345 --verbose\n\n# View logs for a specific run\ngh run view 12345 --log\n\n# View only failed steps\ngh run view 12345 --log-failed\n\n# View a specific job within a run\ngh run view --job 456789\n\n# Open run in browser\ngh run view 12345 --web\n\n# Exit with non-zero if the run failed (useful in scripts)\ngh run view 12345 --exit-status\n",[20,92647,92648,92653,92662,92666,92671,92683,92687,92692,92705,92709,92714,92727,92731,92736,92749,92753,92758,92772,92776,92781,92794,92798,92803],{"__ignoreMap":30},[34,92649,92650],{"class":36,"line":37},[34,92651,92652],{"class":40},"# Interactively select a run to view\n",[34,92654,92655,92657,92659],{"class":36,"line":44},[34,92656,92496],{"class":47},[34,92658,16017],{"class":54},[34,92660,92661],{"class":54}," view\n",[34,92663,92664],{"class":36,"line":58},[34,92665,62],{"emptyLinePlaceholder":61},[34,92667,92668],{"class":36,"line":65},[34,92669,92670],{"class":40},"# View a specific run\n",[34,92672,92673,92675,92677,92680],{"class":36,"line":71},[34,92674,92496],{"class":47},[34,92676,16017],{"class":54},[34,92678,92679],{"class":54}," view",[34,92681,92682],{"class":50}," 12345\n",[34,92684,92685],{"class":36,"line":77},[34,92686,62],{"emptyLinePlaceholder":61},[34,92688,92689],{"class":36,"line":82},[34,92690,92691],{"class":40},"# View with job steps expanded\n",[34,92693,92694,92696,92698,92700,92703],{"class":36,"line":88},[34,92695,92496],{"class":47},[34,92697,16017],{"class":54},[34,92699,92679],{"class":54},[34,92701,92702],{"class":50}," 12345",[34,92704,386],{"class":50},[34,92706,92707],{"class":36,"line":242},[34,92708,62],{"emptyLinePlaceholder":61},[34,92710,92711],{"class":36,"line":250},[34,92712,92713],{"class":40},"# View logs for a specific run\n",[34,92715,92716,92718,92720,92722,92724],{"class":36,"line":263},[34,92717,92496],{"class":47},[34,92719,16017],{"class":54},[34,92721,92679],{"class":54},[34,92723,92702],{"class":50},[34,92725,92726],{"class":50}," --log\n",[34,92728,92729],{"class":36,"line":275},[34,92730,62],{"emptyLinePlaceholder":61},[34,92732,92733],{"class":36,"line":700},[34,92734,92735],{"class":40},"# View only failed steps\n",[34,92737,92738,92740,92742,92744,92746],{"class":36,"line":706},[34,92739,92496],{"class":47},[34,92741,16017],{"class":54},[34,92743,92679],{"class":54},[34,92745,92702],{"class":50},[34,92747,92748],{"class":50}," --log-failed\n",[34,92750,92751],{"class":36,"line":715},[34,92752,62],{"emptyLinePlaceholder":61},[34,92754,92755],{"class":36,"line":725},[34,92756,92757],{"class":40},"# View a specific job within a run\n",[34,92759,92760,92762,92764,92766,92769],{"class":36,"line":734},[34,92761,92496],{"class":47},[34,92763,16017],{"class":54},[34,92765,92679],{"class":54},[34,92767,92768],{"class":50}," --job",[34,92770,92771],{"class":50}," 456789\n",[34,92773,92774],{"class":36,"line":742},[34,92775,62],{"emptyLinePlaceholder":61},[34,92777,92778],{"class":36,"line":748},[34,92779,92780],{"class":40},"# Open run in browser\n",[34,92782,92783,92785,92787,92789,92791],{"class":36,"line":754},[34,92784,92496],{"class":47},[34,92786,16017],{"class":54},[34,92788,92679],{"class":54},[34,92790,92702],{"class":50},[34,92792,92793],{"class":50}," --web\n",[34,92795,92796],{"class":36,"line":759},[34,92797,62],{"emptyLinePlaceholder":61},[34,92799,92800],{"class":36,"line":771},[34,92801,92802],{"class":40},"# Exit with non-zero if the run failed (useful in scripts)\n",[34,92804,92805,92807,92809,92811,92813],{"class":36,"line":794},[34,92806,92496],{"class":47},[34,92808,16017],{"class":54},[34,92810,92679],{"class":54},[34,92812,92702],{"class":50},[34,92814,92815],{"class":50}," --exit-status\n",[11,92817,92819],{"id":92818},"watch-wait","Watch & Wait",[25,92821,92823],{"className":27,"code":92822,"language":29,"meta":30,"style":30},"# Watch a run in real-time until it completes\ngh run watch 12345\n\n# Watch the most recent run\ngh run watch\n",[20,92824,92825,92830,92840,92844,92849],{"__ignoreMap":30},[34,92826,92827],{"class":36,"line":37},[34,92828,92829],{"class":40},"# Watch a run in real-time until it completes\n",[34,92831,92832,92834,92836,92838],{"class":36,"line":44},[34,92833,92496],{"class":47},[34,92835,16017],{"class":54},[34,92837,16157],{"class":54},[34,92839,92682],{"class":50},[34,92841,92842],{"class":36,"line":58},[34,92843,62],{"emptyLinePlaceholder":61},[34,92845,92846],{"class":36,"line":65},[34,92847,92848],{"class":40},"# Watch the most recent run\n",[34,92850,92851,92853,92855],{"class":36,"line":71},[34,92852,92496],{"class":47},[34,92854,16017],{"class":54},[34,92856,92857],{"class":54}," watch\n",[11,92859,92861],{"id":92860},"rerun","Rerun",[25,92863,92865],{"className":27,"code":92864,"language":29,"meta":30,"style":30},"# Rerun all jobs in a failed run\ngh run rerun 12345\n\n# Rerun only failed jobs\ngh run rerun 12345 --failed\n\n# Rerun a specific job\ngh run rerun 12345 --job 456789\n",[20,92866,92867,92872,92883,92887,92892,92905,92909,92914],{"__ignoreMap":30},[34,92868,92869],{"class":36,"line":37},[34,92870,92871],{"class":40},"# Rerun all jobs in a failed run\n",[34,92873,92874,92876,92878,92881],{"class":36,"line":44},[34,92875,92496],{"class":47},[34,92877,16017],{"class":54},[34,92879,92880],{"class":54}," rerun",[34,92882,92682],{"class":50},[34,92884,92885],{"class":36,"line":58},[34,92886,62],{"emptyLinePlaceholder":61},[34,92888,92889],{"class":36,"line":65},[34,92890,92891],{"class":40},"# Rerun only failed jobs\n",[34,92893,92894,92896,92898,92900,92902],{"class":36,"line":71},[34,92895,92496],{"class":47},[34,92897,16017],{"class":54},[34,92899,92880],{"class":54},[34,92901,92702],{"class":50},[34,92903,92904],{"class":50}," --failed\n",[34,92906,92907],{"class":36,"line":77},[34,92908,62],{"emptyLinePlaceholder":61},[34,92910,92911],{"class":36,"line":82},[34,92912,92913],{"class":40},"# Rerun a specific job\n",[34,92915,92916,92918,92920,92922,92924,92926],{"class":36,"line":88},[34,92917,92496],{"class":47},[34,92919,16017],{"class":54},[34,92921,92880],{"class":54},[34,92923,92702],{"class":50},[34,92925,92768],{"class":50},[34,92927,92771],{"class":50},[11,92929,92931],{"id":92930},"cancel-delete","Cancel & Delete",[25,92933,92935],{"className":27,"code":92934,"language":29,"meta":30,"style":30},"# Cancel a running workflow\ngh run cancel 12345\n\n# Delete a completed run\ngh run delete 12345\n",[20,92936,92937,92942,92953,92957,92962],{"__ignoreMap":30},[34,92938,92939],{"class":36,"line":37},[34,92940,92941],{"class":40},"# Cancel a running workflow\n",[34,92943,92944,92946,92948,92951],{"class":36,"line":44},[34,92945,92496],{"class":47},[34,92947,16017],{"class":54},[34,92949,92950],{"class":54}," cancel",[34,92952,92682],{"class":50},[34,92954,92955],{"class":36,"line":58},[34,92956,62],{"emptyLinePlaceholder":61},[34,92958,92959],{"class":36,"line":65},[34,92960,92961],{"class":40},"# Delete a completed run\n",[34,92963,92964,92966,92968,92970],{"class":36,"line":71},[34,92965,92496],{"class":47},[34,92967,16017],{"class":54},[34,92969,9562],{"class":54},[34,92971,92682],{"class":50},[11,92973,92975],{"id":92974},"download-artifacts","Download Artifacts",[25,92977,92979],{"className":27,"code":92978,"language":29,"meta":30,"style":30},"# Download all artifacts from a run\ngh run download 12345\n\n# Download a specific artifact\ngh run download 12345 --name my-artifact\n\n# Download to a specific directory\ngh run download 12345 --dir ./artifacts\n",[20,92980,92981,92986,92996,93000,93005,93020,93024,93029],{"__ignoreMap":30},[34,92982,92983],{"class":36,"line":37},[34,92984,92985],{"class":40},"# Download all artifacts from a run\n",[34,92987,92988,92990,92992,92994],{"class":36,"line":44},[34,92989,92496],{"class":47},[34,92991,16017],{"class":54},[34,92993,5513],{"class":54},[34,92995,92682],{"class":50},[34,92997,92998],{"class":36,"line":58},[34,92999,62],{"emptyLinePlaceholder":61},[34,93001,93002],{"class":36,"line":65},[34,93003,93004],{"class":40},"# Download a specific artifact\n",[34,93006,93007,93009,93011,93013,93015,93017],{"class":36,"line":71},[34,93008,92496],{"class":47},[34,93010,16017],{"class":54},[34,93012,5513],{"class":54},[34,93014,92702],{"class":50},[34,93016,9535],{"class":50},[34,93018,93019],{"class":54}," my-artifact\n",[34,93021,93022],{"class":36,"line":77},[34,93023,62],{"emptyLinePlaceholder":61},[34,93025,93026],{"class":36,"line":82},[34,93027,93028],{"class":40},"# Download to a specific directory\n",[34,93030,93031,93033,93035,93037,93039,93042],{"class":36,"line":88},[34,93032,92496],{"class":47},[34,93034,16017],{"class":54},[34,93036,5513],{"class":54},[34,93038,92702],{"class":50},[34,93040,93041],{"class":50}," --dir",[34,93043,93044],{"class":54}," ./artifacts\n",[11,93046,93048],{"id":93047},"trigger-workflows","Trigger Workflows",[25,93050,93052],{"className":27,"code":93051,"language":29,"meta":30,"style":30},"# Trigger a workflow interactively (prompts for inputs)\ngh workflow run\n\n# Run a specific workflow file on default branch\ngh workflow run deploy.yml\n\n# Run on a specific branch or tag\ngh workflow run deploy.yml --ref my-branch\n\n# Pass inputs as flags\ngh workflow run deploy.yml -f environment=production -f dry_run=false\n\n# Pass inputs as JSON from stdin\necho '{\"environment\":\"production\"}' | gh workflow run deploy.yml --json\n",[20,93053,93054,93059,93069,93073,93078,93088,93092,93097,93114,93118,93123,93145,93149,93154],{"__ignoreMap":30},[34,93055,93056],{"class":36,"line":37},[34,93057,93058],{"class":40},"# Trigger a workflow interactively (prompts for inputs)\n",[34,93060,93061,93063,93066],{"class":36,"line":44},[34,93062,92496],{"class":47},[34,93064,93065],{"class":54}," workflow",[34,93067,93068],{"class":54}," run\n",[34,93070,93071],{"class":36,"line":58},[34,93072,62],{"emptyLinePlaceholder":61},[34,93074,93075],{"class":36,"line":65},[34,93076,93077],{"class":40},"# Run a specific workflow file on default branch\n",[34,93079,93080,93082,93084,93086],{"class":36,"line":71},[34,93081,92496],{"class":47},[34,93083,93065],{"class":54},[34,93085,16017],{"class":54},[34,93087,92568],{"class":54},[34,93089,93090],{"class":36,"line":77},[34,93091,62],{"emptyLinePlaceholder":61},[34,93093,93094],{"class":36,"line":82},[34,93095,93096],{"class":40},"# Run on a specific branch or tag\n",[34,93098,93099,93101,93103,93105,93108,93111],{"class":36,"line":88},[34,93100,92496],{"class":47},[34,93102,93065],{"class":54},[34,93104,16017],{"class":54},[34,93106,93107],{"class":54}," deploy.yml",[34,93109,93110],{"class":50}," --ref",[34,93112,93113],{"class":54}," my-branch\n",[34,93115,93116],{"class":36,"line":242},[34,93117,62],{"emptyLinePlaceholder":61},[34,93119,93120],{"class":36,"line":250},[34,93121,93122],{"class":40},"# Pass inputs as flags\n",[34,93124,93125,93127,93129,93131,93133,93135,93138,93140,93143],{"class":36,"line":263},[34,93126,92496],{"class":47},[34,93128,93065],{"class":54},[34,93130,16017],{"class":54},[34,93132,93107],{"class":54},[34,93134,6001],{"class":50},[34,93136,93137],{"class":54}," environment=production",[34,93139,6001],{"class":50},[34,93141,93142],{"class":54}," dry_run=",[34,93144,14607],{"class":50},[34,93146,93147],{"class":36,"line":275},[34,93148,62],{"emptyLinePlaceholder":61},[34,93150,93151],{"class":36,"line":700},[34,93152,93153],{"class":40},"# Pass inputs as JSON from stdin\n",[34,93155,93156,93158,93161,93163,93166,93168,93170,93172],{"class":36,"line":706},[34,93157,10120],{"class":50},[34,93159,93160],{"class":54}," '{\"environment\":\"production\"}'",[34,93162,7197],{"class":580},[34,93164,93165],{"class":47}," gh",[34,93167,93065],{"class":54},[34,93169,16017],{"class":54},[34,93171,93107],{"class":54},[34,93173,93174],{"class":50}," --json\n",[11,93176,93178],{"id":93177},"manage-workflows","Manage Workflows",[25,93180,93182],{"className":27,"code":93181,"language":29,"meta":30,"style":30},"# List all workflows\ngh workflow list\n\n# List including disabled workflows\ngh workflow list --all\n\n# View a specific workflow\ngh workflow view deploy.yml\n\n# View workflow in browser\ngh workflow view deploy.yml --web\n\n# Enable a disabled workflow\ngh workflow enable deploy.yml\n\n# Disable a workflow\ngh workflow disable deploy.yml\n",[20,93183,93184,93189,93197,93201,93206,93216,93220,93225,93235,93239,93244,93256,93260,93265,93276,93280,93285],{"__ignoreMap":30},[34,93185,93186],{"class":36,"line":37},[34,93187,93188],{"class":40},"# List all workflows\n",[34,93190,93191,93193,93195],{"class":36,"line":44},[34,93192,92496],{"class":47},[34,93194,93065],{"class":54},[34,93196,7536],{"class":54},[34,93198,93199],{"class":36,"line":58},[34,93200,62],{"emptyLinePlaceholder":61},[34,93202,93203],{"class":36,"line":65},[34,93204,93205],{"class":40},"# List including disabled workflows\n",[34,93207,93208,93210,93212,93214],{"class":36,"line":71},[34,93209,92496],{"class":47},[34,93211,93065],{"class":54},[34,93213,6345],{"class":54},[34,93215,49095],{"class":50},[34,93217,93218],{"class":36,"line":77},[34,93219,62],{"emptyLinePlaceholder":61},[34,93221,93222],{"class":36,"line":82},[34,93223,93224],{"class":40},"# View a specific workflow\n",[34,93226,93227,93229,93231,93233],{"class":36,"line":88},[34,93228,92496],{"class":47},[34,93230,93065],{"class":54},[34,93232,92679],{"class":54},[34,93234,92568],{"class":54},[34,93236,93237],{"class":36,"line":242},[34,93238,62],{"emptyLinePlaceholder":61},[34,93240,93241],{"class":36,"line":250},[34,93242,93243],{"class":40},"# View workflow in browser\n",[34,93245,93246,93248,93250,93252,93254],{"class":36,"line":263},[34,93247,92496],{"class":47},[34,93249,93065],{"class":54},[34,93251,92679],{"class":54},[34,93253,93107],{"class":54},[34,93255,92793],{"class":50},[34,93257,93258],{"class":36,"line":275},[34,93259,62],{"emptyLinePlaceholder":61},[34,93261,93262],{"class":36,"line":700},[34,93263,93264],{"class":40},"# Enable a disabled workflow\n",[34,93266,93267,93269,93271,93274],{"class":36,"line":706},[34,93268,92496],{"class":47},[34,93270,93065],{"class":54},[34,93272,93273],{"class":54}," enable",[34,93275,92568],{"class":54},[34,93277,93278],{"class":36,"line":715},[34,93279,62],{"emptyLinePlaceholder":61},[34,93281,93282],{"class":36,"line":725},[34,93283,93284],{"class":40},"# Disable a workflow\n",[34,93286,93287,93289,93291,93294],{"class":36,"line":734},[34,93288,92496],{"class":47},[34,93290,93065],{"class":54},[34,93292,93293],{"class":54}," disable",[34,93295,92568],{"class":54},[11,93297,93299],{"id":93298},"cache","Cache",[25,93301,93303],{"className":27,"code":93302,"language":29,"meta":30,"style":30},"# List caches\ngh cache list\n\n# List caches on a specific branch\ngh cache list --ref refs/heads/main\n\n# Delete a cache by ID\ngh cache delete \u003Ccache-id>\n\n# Delete all caches for a branch\ngh cache delete --all\n",[20,93304,93305,93310,93318,93322,93327,93340,93344,93349,93366,93370,93375],{"__ignoreMap":30},[34,93306,93307],{"class":36,"line":37},[34,93308,93309],{"class":40},"# List caches\n",[34,93311,93312,93314,93316],{"class":36,"line":44},[34,93313,92496],{"class":47},[34,93315,48296],{"class":54},[34,93317,7536],{"class":54},[34,93319,93320],{"class":36,"line":58},[34,93321,62],{"emptyLinePlaceholder":61},[34,93323,93324],{"class":36,"line":65},[34,93325,93326],{"class":40},"# List caches on a specific branch\n",[34,93328,93329,93331,93333,93335,93337],{"class":36,"line":71},[34,93330,92496],{"class":47},[34,93332,48296],{"class":54},[34,93334,6345],{"class":54},[34,93336,93110],{"class":50},[34,93338,93339],{"class":54}," refs/heads/main\n",[34,93341,93342],{"class":36,"line":77},[34,93343,62],{"emptyLinePlaceholder":61},[34,93345,93346],{"class":36,"line":82},[34,93347,93348],{"class":40},"# Delete a cache by ID\n",[34,93350,93351,93353,93355,93357,93359,93362,93364],{"class":36,"line":88},[34,93352,92496],{"class":47},[34,93354,48296],{"class":54},[34,93356,9562],{"class":54},[34,93358,5470],{"class":580},[34,93360,93361],{"class":54},"cache-i",[34,93363,5878],{"class":181},[34,93365,1248],{"class":580},[34,93367,93368],{"class":36,"line":242},[34,93369,62],{"emptyLinePlaceholder":61},[34,93371,93372],{"class":36,"line":250},[34,93373,93374],{"class":40},"# Delete all caches for a branch\n",[34,93376,93377,93379,93381,93383],{"class":36,"line":263},[34,93378,92496],{"class":47},[34,93380,48296],{"class":54},[34,93382,9562],{"class":54},[34,93384,49095],{"class":50},[388,93386,93387],{},"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 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);}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}",{"title":30,"searchDepth":44,"depth":44,"links":93389},[93390,93391,93392,93393,93394,93395,93396,93397,93398],{"id":92480,"depth":44,"text":92481},{"id":92641,"depth":44,"text":92642},{"id":92818,"depth":44,"text":92819},{"id":92860,"depth":44,"text":92861},{"id":92930,"depth":44,"text":92931},{"id":92974,"depth":44,"text":92975},{"id":93047,"depth":44,"text":93048},{"id":93177,"depth":44,"text":93178},{"id":93298,"depth":44,"text":93299},"GitHub CLI commands for managing workflow runs, triggering workflows, and handling Actions caches.",{},"/gh/actions",{"title":92475,"description":93399},"gh/actions",[92496,93405,411,93406,93407,14592,29627,93298],"github","actions","workflow","Zlnr2ritZQhvVkHZOEKVxwziMZIcQEs9dnhIKuE6Ljw",{"id":93410,"title":93411,"body":93412,"date":402,"description":94331,"extension":404,"meta":94332,"navigation":61,"order":250,"path":94333,"seo":94334,"stem":94335,"subject":92496,"tags":94336,"__hash__":94339},"topics/gh/aliases-config.md","Aliases & Config",{"type":8,"value":93413,"toc":94323},[93414,93416,93641,93645,93703,93705,93885,93887,94060,94064,94198,94201,94321],[11,93415,80939],{"id":80938},[25,93417,93419],{"className":27,"code":93418,"language":29,"meta":30,"style":30},"# Create a simple alias\ngh alias set pv 'pr view'\ngh pv 123  # expands to: gh pr view 123\n\n# Create an alias with a default filter\ngh alias set bugs 'issue list --label=bugs'\ngh bugs\n\n# Alias for issues assigned to you\ngh alias set homework 'issue list --assignee @me'\ngh homework\n\n# Alias with a positional argument ($1)\ngh alias set epicsBy 'issue list --author=\"$1\" --label=\"epic\"'\ngh epicsBy monalisa  # => gh issue list --author=\"monalisa\" --label=\"epic\"\n\n# Shell alias (uses sh interpreter, supports pipes)\ngh alias set --shell igrep 'gh issue list --label=\"$1\" | grep \"$2\"'\ngh igrep bug login\n\n# Multi-word alias (quote the name)\ngh alias set 'issue mine' 'issue list --mention @me'\ngh issue mine\n\n# Overwrite an existing alias\ngh alias set pv 'pr view --web' --clobber\n",[20,93420,93421,93426,93440,93452,93456,93461,93475,93482,93486,93491,93505,93512,93516,93521,93535,93547,93551,93556,93572,93583,93587,93592,93606,93616,93620,93625],{"__ignoreMap":30},[34,93422,93423],{"class":36,"line":37},[34,93424,93425],{"class":40},"# Create a simple alias\n",[34,93427,93428,93430,93432,93434,93437],{"class":36,"line":44},[34,93429,92496],{"class":47},[34,93431,49129],{"class":54},[34,93433,9481],{"class":54},[34,93435,93436],{"class":54}," pv",[34,93438,93439],{"class":54}," 'pr view'\n",[34,93441,93442,93444,93446,93449],{"class":36,"line":58},[34,93443,92496],{"class":47},[34,93445,93436],{"class":54},[34,93447,93448],{"class":50}," 123",[34,93450,93451],{"class":40},"  # expands to: gh pr view 123\n",[34,93453,93454],{"class":36,"line":65},[34,93455,62],{"emptyLinePlaceholder":61},[34,93457,93458],{"class":36,"line":71},[34,93459,93460],{"class":40},"# Create an alias with a default filter\n",[34,93462,93463,93465,93467,93469,93472],{"class":36,"line":77},[34,93464,92496],{"class":47},[34,93466,49129],{"class":54},[34,93468,9481],{"class":54},[34,93470,93471],{"class":54}," bugs",[34,93473,93474],{"class":54}," 'issue list --label=bugs'\n",[34,93476,93477,93479],{"class":36,"line":82},[34,93478,92496],{"class":47},[34,93480,93481],{"class":54}," bugs\n",[34,93483,93484],{"class":36,"line":88},[34,93485,62],{"emptyLinePlaceholder":61},[34,93487,93488],{"class":36,"line":242},[34,93489,93490],{"class":40},"# Alias for issues assigned to you\n",[34,93492,93493,93495,93497,93499,93502],{"class":36,"line":250},[34,93494,92496],{"class":47},[34,93496,49129],{"class":54},[34,93498,9481],{"class":54},[34,93500,93501],{"class":54}," homework",[34,93503,93504],{"class":54}," 'issue list --assignee @me'\n",[34,93506,93507,93509],{"class":36,"line":263},[34,93508,92496],{"class":47},[34,93510,93511],{"class":54}," homework\n",[34,93513,93514],{"class":36,"line":275},[34,93515,62],{"emptyLinePlaceholder":61},[34,93517,93518],{"class":36,"line":700},[34,93519,93520],{"class":40},"# Alias with a positional argument ($1)\n",[34,93522,93523,93525,93527,93529,93532],{"class":36,"line":706},[34,93524,92496],{"class":47},[34,93526,49129],{"class":54},[34,93528,9481],{"class":54},[34,93530,93531],{"class":54}," epicsBy",[34,93533,93534],{"class":54}," 'issue list --author=\"$1\" --label=\"epic\"'\n",[34,93536,93537,93539,93541,93544],{"class":36,"line":715},[34,93538,92496],{"class":47},[34,93540,93531],{"class":54},[34,93542,93543],{"class":54}," monalisa",[34,93545,93546],{"class":40},"  # => gh issue list --author=\"monalisa\" --label=\"epic\"\n",[34,93548,93549],{"class":36,"line":725},[34,93550,62],{"emptyLinePlaceholder":61},[34,93552,93553],{"class":36,"line":734},[34,93554,93555],{"class":40},"# Shell alias (uses sh interpreter, supports pipes)\n",[34,93557,93558,93560,93562,93564,93566,93569],{"class":36,"line":742},[34,93559,92496],{"class":47},[34,93561,49129],{"class":54},[34,93563,9481],{"class":54},[34,93565,82862],{"class":50},[34,93567,93568],{"class":54}," igrep",[34,93570,93571],{"class":54}," 'gh issue list --label=\"$1\" | grep \"$2\"'\n",[34,93573,93574,93576,93578,93581],{"class":36,"line":748},[34,93575,92496],{"class":47},[34,93577,93568],{"class":54},[34,93579,93580],{"class":54}," bug",[34,93582,9379],{"class":54},[34,93584,93585],{"class":36,"line":754},[34,93586,62],{"emptyLinePlaceholder":61},[34,93588,93589],{"class":36,"line":759},[34,93590,93591],{"class":40},"# Multi-word alias (quote the name)\n",[34,93593,93594,93596,93598,93600,93603],{"class":36,"line":771},[34,93595,92496],{"class":47},[34,93597,49129],{"class":54},[34,93599,9481],{"class":54},[34,93601,93602],{"class":54}," 'issue mine'",[34,93604,93605],{"class":54}," 'issue list --mention @me'\n",[34,93607,93608,93610,93613],{"class":36,"line":794},[34,93609,92496],{"class":47},[34,93611,93612],{"class":54}," issue",[34,93614,93615],{"class":54}," mine\n",[34,93617,93618],{"class":36,"line":824},[34,93619,62],{"emptyLinePlaceholder":61},[34,93621,93622],{"class":36,"line":830},[34,93623,93624],{"class":40},"# Overwrite an existing alias\n",[34,93626,93627,93629,93631,93633,93635,93638],{"class":36,"line":839},[34,93628,92496],{"class":47},[34,93630,49129],{"class":54},[34,93632,9481],{"class":54},[34,93634,93436],{"class":54},[34,93636,93637],{"class":54}," 'pr view --web'",[34,93639,93640],{"class":50}," --clobber\n",[11,93642,93644],{"id":93643},"manage-aliases","Manage Aliases",[25,93646,93648],{"className":27,"code":93647,"language":29,"meta":30,"style":30},"# List all aliases\ngh alias list\n\n# Delete an alias\ngh alias delete pv\n\n# Import aliases from a YAML file\ngh alias import aliases.yml\n",[20,93649,93650,93655,93663,93667,93672,93683,93687,93692],{"__ignoreMap":30},[34,93651,93652],{"class":36,"line":37},[34,93653,93654],{"class":40},"# List all aliases\n",[34,93656,93657,93659,93661],{"class":36,"line":44},[34,93658,92496],{"class":47},[34,93660,49129],{"class":54},[34,93662,7536],{"class":54},[34,93664,93665],{"class":36,"line":58},[34,93666,62],{"emptyLinePlaceholder":61},[34,93668,93669],{"class":36,"line":65},[34,93670,93671],{"class":40},"# Delete an alias\n",[34,93673,93674,93676,93678,93680],{"class":36,"line":71},[34,93675,92496],{"class":47},[34,93677,49129],{"class":54},[34,93679,9562],{"class":54},[34,93681,93682],{"class":54}," pv\n",[34,93684,93685],{"class":36,"line":77},[34,93686,62],{"emptyLinePlaceholder":61},[34,93688,93689],{"class":36,"line":82},[34,93690,93691],{"class":40},"# Import aliases from a YAML file\n",[34,93693,93694,93696,93698,93700],{"class":36,"line":88},[34,93695,92496],{"class":47},[34,93697,49129],{"class":54},[34,93699,3364],{"class":54},[34,93701,93702],{"class":54}," aliases.yml\n",[11,93704,8686],{"id":558},[25,93706,93708],{"className":27,"code":93707,"language":29,"meta":30,"style":30},"# List all configuration\ngh config list\n\n# Get a specific config value\ngh config get editor\ngh config get git_protocol\n\n# Set the default editor\ngh config set editor vim\ngh config set editor \"code --wait\"\n\n# Set the git protocol (ssh or https)\ngh config set git_protocol ssh\n\n# Set per-host configuration\ngh config set git_protocol ssh --host github.com\n\n# Disable interactive prompts\ngh config set prompt disabled\n\n# Set preferred browser\ngh config set browser firefox\n",[20,93709,93710,93715,93723,93727,93732,93743,93754,93758,93763,93776,93789,93793,93798,93812,93816,93821,93839,93843,93848,93862,93866,93871],{"__ignoreMap":30},[34,93711,93712],{"class":36,"line":37},[34,93713,93714],{"class":40},"# List all configuration\n",[34,93716,93717,93719,93721],{"class":36,"line":44},[34,93718,92496],{"class":47},[34,93720,58810],{"class":54},[34,93722,7536],{"class":54},[34,93724,93725],{"class":36,"line":58},[34,93726,62],{"emptyLinePlaceholder":61},[34,93728,93729],{"class":36,"line":65},[34,93730,93731],{"class":40},"# Get a specific config value\n",[34,93733,93734,93736,93738,93740],{"class":36,"line":71},[34,93735,92496],{"class":47},[34,93737,58810],{"class":54},[34,93739,7173],{"class":54},[34,93741,93742],{"class":54}," editor\n",[34,93744,93745,93747,93749,93751],{"class":36,"line":77},[34,93746,92496],{"class":47},[34,93748,58810],{"class":54},[34,93750,7173],{"class":54},[34,93752,93753],{"class":54}," git_protocol\n",[34,93755,93756],{"class":36,"line":82},[34,93757,62],{"emptyLinePlaceholder":61},[34,93759,93760],{"class":36,"line":88},[34,93761,93762],{"class":40},"# Set the default editor\n",[34,93764,93765,93767,93769,93771,93773],{"class":36,"line":242},[34,93766,92496],{"class":47},[34,93768,58810],{"class":54},[34,93770,9481],{"class":54},[34,93772,73463],{"class":54},[34,93774,93775],{"class":54}," vim\n",[34,93777,93778,93780,93782,93784,93786],{"class":36,"line":250},[34,93779,92496],{"class":47},[34,93781,58810],{"class":54},[34,93783,9481],{"class":54},[34,93785,73463],{"class":54},[34,93787,93788],{"class":54}," \"code --wait\"\n",[34,93790,93791],{"class":36,"line":263},[34,93792,62],{"emptyLinePlaceholder":61},[34,93794,93795],{"class":36,"line":275},[34,93796,93797],{"class":40},"# Set the git protocol (ssh or https)\n",[34,93799,93800,93802,93804,93806,93809],{"class":36,"line":700},[34,93801,92496],{"class":47},[34,93803,58810],{"class":54},[34,93805,9481],{"class":54},[34,93807,93808],{"class":54}," git_protocol",[34,93810,93811],{"class":54}," ssh\n",[34,93813,93814],{"class":36,"line":706},[34,93815,62],{"emptyLinePlaceholder":61},[34,93817,93818],{"class":36,"line":715},[34,93819,93820],{"class":40},"# Set per-host configuration\n",[34,93822,93823,93825,93827,93829,93831,93833,93836],{"class":36,"line":725},[34,93824,92496],{"class":47},[34,93826,58810],{"class":54},[34,93828,9481],{"class":54},[34,93830,93808],{"class":54},[34,93832,92143],{"class":54},[34,93834,93835],{"class":50}," --host",[34,93837,93838],{"class":54}," github.com\n",[34,93840,93841],{"class":36,"line":734},[34,93842,62],{"emptyLinePlaceholder":61},[34,93844,93845],{"class":36,"line":742},[34,93846,93847],{"class":40},"# Disable interactive prompts\n",[34,93849,93850,93852,93854,93856,93859],{"class":36,"line":748},[34,93851,92496],{"class":47},[34,93853,58810],{"class":54},[34,93855,9481],{"class":54},[34,93857,93858],{"class":54}," prompt",[34,93860,93861],{"class":54}," disabled\n",[34,93863,93864],{"class":36,"line":754},[34,93865,62],{"emptyLinePlaceholder":61},[34,93867,93868],{"class":36,"line":759},[34,93869,93870],{"class":40},"# Set preferred browser\n",[34,93872,93873,93875,93877,93879,93882],{"class":36,"line":771},[34,93874,92496],{"class":47},[34,93876,58810],{"class":54},[34,93878,9481],{"class":54},[34,93880,93881],{"class":54}," browser",[34,93883,93884],{"class":54}," firefox\n",[11,93886,90562],{"id":90561},[25,93888,93890],{"className":27,"code":93889,"language":29,"meta":30,"style":30},"# Browse available extensions\ngh extension browse\n\n# Search for extensions\ngh extension search copilot\n\n# Install an extension\ngh extension install owner/gh-extension-name\n\n# List installed extensions\ngh extension list\n\n# Upgrade an extension\ngh extension upgrade gh-extension-name\n\n# Upgrade all extensions\ngh extension upgrade --all\n\n# Execute an installed extension\ngh extension exec gh-extension-name\n\n# Remove an extension\ngh extension remove gh-extension-name\n\n# Create a new extension (scaffolded)\ngh extension create my-extension\n",[20,93891,93892,93897,93906,93910,93915,93926,93930,93935,93946,93950,93955,93963,93967,93972,93983,93987,93992,94002,94006,94011,94021,94025,94030,94040,94044,94049],{"__ignoreMap":30},[34,93893,93894],{"class":36,"line":37},[34,93895,93896],{"class":40},"# Browse available extensions\n",[34,93898,93899,93901,93904],{"class":36,"line":44},[34,93900,92496],{"class":47},[34,93902,93903],{"class":54}," extension",[34,93905,27973],{"class":54},[34,93907,93908],{"class":36,"line":58},[34,93909,62],{"emptyLinePlaceholder":61},[34,93911,93912],{"class":36,"line":65},[34,93913,93914],{"class":40},"# Search for extensions\n",[34,93916,93917,93919,93921,93923],{"class":36,"line":71},[34,93918,92496],{"class":47},[34,93920,93903],{"class":54},[34,93922,5870],{"class":54},[34,93924,93925],{"class":54}," copilot\n",[34,93927,93928],{"class":36,"line":77},[34,93929,62],{"emptyLinePlaceholder":61},[34,93931,93932],{"class":36,"line":82},[34,93933,93934],{"class":40},"# Install an extension\n",[34,93936,93937,93939,93941,93943],{"class":36,"line":88},[34,93938,92496],{"class":47},[34,93940,93903],{"class":54},[34,93942,118],{"class":54},[34,93944,93945],{"class":54}," owner/gh-extension-name\n",[34,93947,93948],{"class":36,"line":242},[34,93949,62],{"emptyLinePlaceholder":61},[34,93951,93952],{"class":36,"line":250},[34,93953,93954],{"class":40},"# List installed extensions\n",[34,93956,93957,93959,93961],{"class":36,"line":263},[34,93958,92496],{"class":47},[34,93960,93903],{"class":54},[34,93962,7536],{"class":54},[34,93964,93965],{"class":36,"line":275},[34,93966,62],{"emptyLinePlaceholder":61},[34,93968,93969],{"class":36,"line":700},[34,93970,93971],{"class":40},"# Upgrade an extension\n",[34,93973,93974,93976,93978,93980],{"class":36,"line":706},[34,93975,92496],{"class":47},[34,93977,93903],{"class":54},[34,93979,5662],{"class":54},[34,93981,93982],{"class":54}," gh-extension-name\n",[34,93984,93985],{"class":36,"line":715},[34,93986,62],{"emptyLinePlaceholder":61},[34,93988,93989],{"class":36,"line":725},[34,93990,93991],{"class":40},"# Upgrade all extensions\n",[34,93993,93994,93996,93998,94000],{"class":36,"line":734},[34,93995,92496],{"class":47},[34,93997,93903],{"class":54},[34,93999,5662],{"class":54},[34,94001,49095],{"class":50},[34,94003,94004],{"class":36,"line":742},[34,94005,62],{"emptyLinePlaceholder":61},[34,94007,94008],{"class":36,"line":748},[34,94009,94010],{"class":40},"# Execute an installed extension\n",[34,94012,94013,94015,94017,94019],{"class":36,"line":754},[34,94014,92496],{"class":47},[34,94016,93903],{"class":54},[34,94018,55938],{"class":54},[34,94020,93982],{"class":54},[34,94022,94023],{"class":36,"line":759},[34,94024,62],{"emptyLinePlaceholder":61},[34,94026,94027],{"class":36,"line":771},[34,94028,94029],{"class":40},"# Remove an extension\n",[34,94031,94032,94034,94036,94038],{"class":36,"line":794},[34,94033,92496],{"class":47},[34,94035,93903],{"class":54},[34,94037,6676],{"class":54},[34,94039,93982],{"class":54},[34,94041,94042],{"class":36,"line":824},[34,94043,62],{"emptyLinePlaceholder":61},[34,94045,94046],{"class":36,"line":830},[34,94047,94048],{"class":40},"# Create a new extension (scaffolded)\n",[34,94050,94051,94053,94055,94057],{"class":36,"line":839},[34,94052,92496],{"class":47},[34,94054,93903],{"class":54},[34,94056,7077],{"class":54},[34,94058,94059],{"class":54}," my-extension\n",[11,94061,94063],{"id":94062},"ssh-keys-gpg-keys","SSH Keys & GPG Keys",[25,94065,94067],{"className":27,"code":94066,"language":29,"meta":30,"style":30},"# List SSH keys on your account\ngh ssh-key list\n\n# Add an SSH key\ngh ssh-key add ~/.ssh/id_ed25519.pub --title \"My laptop\"\n\n# Delete an SSH key\ngh ssh-key delete \u003Ckey-id>\n\n# List GPG keys\ngh gpg-key list\n\n# Add a GPG key\ngh gpg-key add public-key.asc\n\n# Delete a GPG key\ngh gpg-key delete \u003Ckey-id>\n",[20,94068,94069,94074,94083,94087,94092,94109,94113,94118,94135,94139,94144,94153,94157,94162,94173,94177,94182],{"__ignoreMap":30},[34,94070,94071],{"class":36,"line":37},[34,94072,94073],{"class":40},"# List SSH keys on your account\n",[34,94075,94076,94078,94081],{"class":36,"line":44},[34,94077,92496],{"class":47},[34,94079,94080],{"class":54}," ssh-key",[34,94082,7536],{"class":54},[34,94084,94085],{"class":36,"line":58},[34,94086,62],{"emptyLinePlaceholder":61},[34,94088,94089],{"class":36,"line":65},[34,94090,94091],{"class":40},"# Add an SSH key\n",[34,94093,94094,94096,94098,94100,94103,94106],{"class":36,"line":71},[34,94095,92496],{"class":47},[34,94097,94080],{"class":54},[34,94099,7854],{"class":54},[34,94101,94102],{"class":54}," ~/.ssh/id_ed25519.pub",[34,94104,94105],{"class":50}," --title",[34,94107,94108],{"class":54}," \"My laptop\"\n",[34,94110,94111],{"class":36,"line":77},[34,94112,62],{"emptyLinePlaceholder":61},[34,94114,94115],{"class":36,"line":82},[34,94116,94117],{"class":40},"# Delete an SSH key\n",[34,94119,94120,94122,94124,94126,94128,94131,94133],{"class":36,"line":88},[34,94121,92496],{"class":47},[34,94123,94080],{"class":54},[34,94125,9562],{"class":54},[34,94127,5470],{"class":580},[34,94129,94130],{"class":54},"key-i",[34,94132,5878],{"class":181},[34,94134,1248],{"class":580},[34,94136,94137],{"class":36,"line":242},[34,94138,62],{"emptyLinePlaceholder":61},[34,94140,94141],{"class":36,"line":250},[34,94142,94143],{"class":40},"# List GPG keys\n",[34,94145,94146,94148,94151],{"class":36,"line":263},[34,94147,92496],{"class":47},[34,94149,94150],{"class":54}," gpg-key",[34,94152,7536],{"class":54},[34,94154,94155],{"class":36,"line":275},[34,94156,62],{"emptyLinePlaceholder":61},[34,94158,94159],{"class":36,"line":700},[34,94160,94161],{"class":40},"# Add a GPG key\n",[34,94163,94164,94166,94168,94170],{"class":36,"line":706},[34,94165,92496],{"class":47},[34,94167,94150],{"class":54},[34,94169,7854],{"class":54},[34,94171,94172],{"class":54}," public-key.asc\n",[34,94174,94175],{"class":36,"line":715},[34,94176,62],{"emptyLinePlaceholder":61},[34,94178,94179],{"class":36,"line":725},[34,94180,94181],{"class":40},"# Delete a GPG key\n",[34,94183,94184,94186,94188,94190,94192,94194,94196],{"class":36,"line":734},[34,94185,92496],{"class":47},[34,94187,94150],{"class":54},[34,94189,9562],{"class":54},[34,94191,5470],{"class":580},[34,94193,94130],{"class":54},[34,94195,5878],{"class":181},[34,94197,1248],{"class":580},[11,94199,94200],{"id":43044},"API",[25,94202,94204],{"className":27,"code":94203,"language":29,"meta":30,"style":30},"# Make a raw GitHub API request\ngh api repos/owner/repo\n\n# POST request with a JSON body\ngh api repos/owner/repo/issues --method POST --field title=\"My issue\" --field body=\"Body text\"\n\n# Paginate through all results\ngh api repos/owner/repo/issues --paginate\n\n# Use jq to process response\ngh api repos/owner/repo --jq '.stargazers_count'\n\n# Pass a GraphQL query\ngh api graphql -f query='{ viewer { login } }'\n",[20,94205,94206,94211,94220,94224,94229,94254,94258,94263,94274,94278,94283,94298,94302,94307],{"__ignoreMap":30},[34,94207,94208],{"class":36,"line":37},[34,94209,94210],{"class":40},"# Make a raw GitHub API request\n",[34,94212,94213,94215,94217],{"class":36,"line":44},[34,94214,92496],{"class":47},[34,94216,62347],{"class":54},[34,94218,94219],{"class":54}," repos/owner/repo\n",[34,94221,94222],{"class":36,"line":58},[34,94223,62],{"emptyLinePlaceholder":61},[34,94225,94226],{"class":36,"line":65},[34,94227,94228],{"class":40},"# POST request with a JSON body\n",[34,94230,94231,94233,94235,94238,94241,94243,94246,94249,94251],{"class":36,"line":71},[34,94232,92496],{"class":47},[34,94234,62347],{"class":54},[34,94236,94237],{"class":54}," repos/owner/repo/issues",[34,94239,94240],{"class":50}," --method",[34,94242,43365],{"class":54},[34,94244,94245],{"class":50}," --field",[34,94247,94248],{"class":54}," title=\"My issue\"",[34,94250,94245],{"class":50},[34,94252,94253],{"class":54}," body=\"Body text\"\n",[34,94255,94256],{"class":36,"line":77},[34,94257,62],{"emptyLinePlaceholder":61},[34,94259,94260],{"class":36,"line":82},[34,94261,94262],{"class":40},"# Paginate through all results\n",[34,94264,94265,94267,94269,94271],{"class":36,"line":88},[34,94266,92496],{"class":47},[34,94268,62347],{"class":54},[34,94270,94237],{"class":54},[34,94272,94273],{"class":50}," --paginate\n",[34,94275,94276],{"class":36,"line":242},[34,94277,62],{"emptyLinePlaceholder":61},[34,94279,94280],{"class":36,"line":250},[34,94281,94282],{"class":40},"# Use jq to process response\n",[34,94284,94285,94287,94289,94292,94295],{"class":36,"line":263},[34,94286,92496],{"class":47},[34,94288,62347],{"class":54},[34,94290,94291],{"class":54}," repos/owner/repo",[34,94293,94294],{"class":50}," --jq",[34,94296,94297],{"class":54}," '.stargazers_count'\n",[34,94299,94300],{"class":36,"line":275},[34,94301,62],{"emptyLinePlaceholder":61},[34,94303,94304],{"class":36,"line":700},[34,94305,94306],{"class":40},"# Pass a GraphQL query\n",[34,94308,94309,94311,94313,94316,94318],{"class":36,"line":706},[34,94310,92496],{"class":47},[34,94312,62347],{"class":54},[34,94314,94315],{"class":54}," graphql",[34,94317,6001],{"class":50},[34,94319,94320],{"class":54}," query='{ viewer { login } }'\n",[388,94322,93387],{},{"title":30,"searchDepth":44,"depth":44,"links":94324},[94325,94326,94327,94328,94329,94330],{"id":80938,"depth":44,"text":80939},{"id":93643,"depth":44,"text":93644},{"id":558,"depth":44,"text":8686},{"id":90561,"depth":44,"text":90562},{"id":94062,"depth":44,"text":94063},{"id":43044,"depth":44,"text":94200},"GitHub CLI commands for creating aliases, configuring settings, and managing extensions.",{},"/gh/aliases-config",{"title":93411,"description":94331},"gh/aliases-config",[92496,93405,411,94337,94338,90561,558],"alias","config","8Ui5YJUNz2mgduGQEfkKltSrULdZ6qpQCawOsQJUoNY",{"id":94341,"title":9362,"body":94342,"date":402,"description":94853,"extension":404,"meta":94854,"navigation":61,"order":44,"path":94855,"seo":94856,"stem":94857,"subject":92496,"tags":94858,"__hash__":94861},"topics/gh/auth.md",{"type":8,"value":94343,"toc":94845},[94344,94347,94458,94462,94561,94565,94628,94632,94724,94727,94768,94770,94843],[11,94345,94346],{"id":72637},"Login",[25,94348,94350],{"className":27,"code":94349,"language":29,"meta":30,"style":30},"# Interactive login (opens browser flow)\ngh auth login\n\n# Login with browser flow, copy one-time code to clipboard\ngh auth login --web --clipboard\n\n# Login with a personal access token from stdin\ngh auth login --with-token \u003C mytoken.txt\n\n# Login to a GitHub Enterprise instance\ngh auth login --hostname enterprise.internal\n\n# Login using a specific git protocol\ngh auth login --git-protocol ssh\n",[20,94351,94352,94357,94365,94369,94374,94388,94392,94397,94413,94417,94422,94436,94440,94445],{"__ignoreMap":30},[34,94353,94354],{"class":36,"line":37},[34,94355,94356],{"class":40},"# Interactive login (opens browser flow)\n",[34,94358,94359,94361,94363],{"class":36,"line":44},[34,94360,92496],{"class":47},[34,94362,72545],{"class":54},[34,94364,9379],{"class":54},[34,94366,94367],{"class":36,"line":58},[34,94368,62],{"emptyLinePlaceholder":61},[34,94370,94371],{"class":36,"line":65},[34,94372,94373],{"class":40},"# Login with browser flow, copy one-time code to clipboard\n",[34,94375,94376,94378,94380,94382,94385],{"class":36,"line":71},[34,94377,92496],{"class":47},[34,94379,72545],{"class":54},[34,94381,7220],{"class":54},[34,94383,94384],{"class":50}," --web",[34,94386,94387],{"class":50}," --clipboard\n",[34,94389,94390],{"class":36,"line":77},[34,94391,62],{"emptyLinePlaceholder":61},[34,94393,94394],{"class":36,"line":82},[34,94395,94396],{"class":40},"# Login with a personal access token from stdin\n",[34,94398,94399,94401,94403,94405,94408,94410],{"class":36,"line":88},[34,94400,92496],{"class":47},[34,94402,72545],{"class":54},[34,94404,7220],{"class":54},[34,94406,94407],{"class":50}," --with-token",[34,94409,5470],{"class":580},[34,94411,94412],{"class":54}," mytoken.txt\n",[34,94414,94415],{"class":36,"line":242},[34,94416,62],{"emptyLinePlaceholder":61},[34,94418,94419],{"class":36,"line":250},[34,94420,94421],{"class":40},"# Login to a GitHub Enterprise instance\n",[34,94423,94424,94426,94428,94430,94433],{"class":36,"line":263},[34,94425,92496],{"class":47},[34,94427,72545],{"class":54},[34,94429,7220],{"class":54},[34,94431,94432],{"class":50}," --hostname",[34,94434,94435],{"class":54}," enterprise.internal\n",[34,94437,94438],{"class":36,"line":275},[34,94439,62],{"emptyLinePlaceholder":61},[34,94441,94442],{"class":36,"line":700},[34,94443,94444],{"class":40},"# Login using a specific git protocol\n",[34,94446,94447,94449,94451,94453,94456],{"class":36,"line":706},[34,94448,92496],{"class":47},[34,94450,72545],{"class":54},[34,94452,7220],{"class":54},[34,94454,94455],{"class":50}," --git-protocol",[34,94457,93811],{"class":54},[11,94459,94461],{"id":94460},"status-token","Status & Token",[25,94463,94465],{"className":27,"code":94464,"language":29,"meta":30,"style":30},"# Show authentication status for all accounts and hosts\ngh auth status\n\n# Show only the active account\ngh auth status --active\n\n# Show the auth token in plain text\ngh auth status --show-token\n\n# Print only the token value (useful in scripts)\ngh auth token\n\n# Get token for a specific host\ngh auth token --hostname github.com\n",[20,94466,94467,94472,94481,94485,94490,94502,94506,94511,94522,94526,94531,94540,94544,94549],{"__ignoreMap":30},[34,94468,94469],{"class":36,"line":37},[34,94470,94471],{"class":40},"# Show authentication status for all accounts and hosts\n",[34,94473,94474,94476,94478],{"class":36,"line":44},[34,94475,92496],{"class":47},[34,94477,72545],{"class":54},[34,94479,94480],{"class":54}," status\n",[34,94482,94483],{"class":36,"line":58},[34,94484,62],{"emptyLinePlaceholder":61},[34,94486,94487],{"class":36,"line":65},[34,94488,94489],{"class":40},"# Show only the active account\n",[34,94491,94492,94494,94496,94499],{"class":36,"line":71},[34,94493,92496],{"class":47},[34,94495,72545],{"class":54},[34,94497,94498],{"class":54}," status",[34,94500,94501],{"class":50}," --active\n",[34,94503,94504],{"class":36,"line":77},[34,94505,62],{"emptyLinePlaceholder":61},[34,94507,94508],{"class":36,"line":82},[34,94509,94510],{"class":40},"# Show the auth token in plain text\n",[34,94512,94513,94515,94517,94519],{"class":36,"line":88},[34,94514,92496],{"class":47},[34,94516,72545],{"class":54},[34,94518,94498],{"class":54},[34,94520,94521],{"class":50}," --show-token\n",[34,94523,94524],{"class":36,"line":242},[34,94525,62],{"emptyLinePlaceholder":61},[34,94527,94528],{"class":36,"line":250},[34,94529,94530],{"class":40},"# Print only the token value (useful in scripts)\n",[34,94532,94533,94535,94537],{"class":36,"line":263},[34,94534,92496],{"class":47},[34,94536,72545],{"class":54},[34,94538,94539],{"class":54}," token\n",[34,94541,94542],{"class":36,"line":275},[34,94543,62],{"emptyLinePlaceholder":61},[34,94545,94546],{"class":36,"line":700},[34,94547,94548],{"class":40},"# Get token for a specific host\n",[34,94550,94551,94553,94555,94557,94559],{"class":36,"line":706},[34,94552,92496],{"class":47},[34,94554,72545],{"class":54},[34,94556,72656],{"class":54},[34,94558,94432],{"class":50},[34,94560,93838],{"class":54},[11,94562,94564],{"id":94563},"refresh-scopes","Refresh & Scopes",[25,94566,94568],{"className":27,"code":94567,"language":29,"meta":30,"style":30},"# Refresh token with default scopes\ngh auth refresh\n\n# Add additional scopes (e.g., for project management)\ngh auth refresh -s project\n\n# Refresh for a specific host\ngh auth refresh --hostname enterprise.internal\n",[20,94569,94570,94575,94584,94588,94593,94607,94611,94616],{"__ignoreMap":30},[34,94571,94572],{"class":36,"line":37},[34,94573,94574],{"class":40},"# Refresh token with default scopes\n",[34,94576,94577,94579,94581],{"class":36,"line":44},[34,94578,92496],{"class":47},[34,94580,72545],{"class":54},[34,94582,94583],{"class":54}," refresh\n",[34,94585,94586],{"class":36,"line":58},[34,94587,62],{"emptyLinePlaceholder":61},[34,94589,94590],{"class":36,"line":65},[34,94591,94592],{"class":40},"# Add additional scopes (e.g., for project management)\n",[34,94594,94595,94597,94599,94602,94604],{"class":36,"line":71},[34,94596,92496],{"class":47},[34,94598,72545],{"class":54},[34,94600,94601],{"class":54}," refresh",[34,94603,5487],{"class":50},[34,94605,94606],{"class":54}," project\n",[34,94608,94609],{"class":36,"line":77},[34,94610,62],{"emptyLinePlaceholder":61},[34,94612,94613],{"class":36,"line":82},[34,94614,94615],{"class":40},"# Refresh for a specific host\n",[34,94617,94618,94620,94622,94624,94626],{"class":36,"line":88},[34,94619,92496],{"class":47},[34,94621,72545],{"class":54},[34,94623,94601],{"class":54},[34,94625,94432],{"class":50},[34,94627,94435],{"class":54},[11,94629,94631],{"id":94630},"multiple-accounts","Multiple Accounts",[25,94633,94635],{"className":27,"code":94634,"language":29,"meta":30,"style":30},"# Switch to a different account on a host\ngh auth switch\n\n# Switch to a specific user on a specific host\ngh auth switch --user another-user --hostname github.com\n\n# Logout from the current account\ngh auth logout\n\n# Logout from a specific account on a specific host\ngh auth logout --hostname github.com --user myuser\n",[20,94636,94637,94642,94651,94655,94660,94678,94682,94687,94696,94700,94705],{"__ignoreMap":30},[34,94638,94639],{"class":36,"line":37},[34,94640,94641],{"class":40},"# Switch to a different account on a host\n",[34,94643,94644,94646,94648],{"class":36,"line":44},[34,94645,92496],{"class":47},[34,94647,72545],{"class":54},[34,94649,94650],{"class":54}," switch\n",[34,94652,94653],{"class":36,"line":58},[34,94654,62],{"emptyLinePlaceholder":61},[34,94656,94657],{"class":36,"line":65},[34,94658,94659],{"class":40},"# Switch to a specific user on a specific host\n",[34,94661,94662,94664,94666,94669,94671,94674,94676],{"class":36,"line":71},[34,94663,92496],{"class":47},[34,94665,72545],{"class":54},[34,94667,94668],{"class":54}," switch",[34,94670,43081],{"class":50},[34,94672,94673],{"class":54}," another-user",[34,94675,94432],{"class":50},[34,94677,93838],{"class":54},[34,94679,94680],{"class":36,"line":77},[34,94681,62],{"emptyLinePlaceholder":61},[34,94683,94684],{"class":36,"line":82},[34,94685,94686],{"class":40},"# Logout from the current account\n",[34,94688,94689,94691,94693],{"class":36,"line":88},[34,94690,92496],{"class":47},[34,94692,72545],{"class":54},[34,94694,94695],{"class":54}," logout\n",[34,94697,94698],{"class":36,"line":242},[34,94699,62],{"emptyLinePlaceholder":61},[34,94701,94702],{"class":36,"line":250},[34,94703,94704],{"class":40},"# Logout from a specific account on a specific host\n",[34,94706,94707,94709,94711,94714,94716,94719,94721],{"class":36,"line":263},[34,94708,92496],{"class":47},[34,94710,72545],{"class":54},[34,94712,94713],{"class":54}," logout",[34,94715,94432],{"class":50},[34,94717,94718],{"class":54}," github.com",[34,94720,43081],{"class":50},[34,94722,94723],{"class":54}," myuser\n",[11,94725,13576],{"id":94726},"git-integration",[25,94728,94730],{"className":27,"code":94729,"language":29,"meta":30,"style":30},"# Configure git to use gh as credential helper\ngh auth setup-git\n\n# Configure for a specific host only\ngh auth setup-git --hostname enterprise.internal\n",[20,94731,94732,94737,94746,94750,94755],{"__ignoreMap":30},[34,94733,94734],{"class":36,"line":37},[34,94735,94736],{"class":40},"# Configure git to use gh as credential helper\n",[34,94738,94739,94741,94743],{"class":36,"line":44},[34,94740,92496],{"class":47},[34,94742,72545],{"class":54},[34,94744,94745],{"class":54}," setup-git\n",[34,94747,94748],{"class":36,"line":58},[34,94749,62],{"emptyLinePlaceholder":61},[34,94751,94752],{"class":36,"line":65},[34,94753,94754],{"class":40},"# Configure for a specific host only\n",[34,94756,94757,94759,94761,94764,94766],{"class":36,"line":71},[34,94758,92496],{"class":47},[34,94760,72545],{"class":54},[34,94762,94763],{"class":54}," setup-git",[34,94765,94432],{"class":50},[34,94767,94435],{"class":54},[11,94769,14656],{"id":14661},[25,94771,94773],{"className":27,"code":94772,"language":29,"meta":30,"style":30},"# Use a token without running gh auth login (headless/CI)\nexport GH_TOKEN=ghp_yourtokenhere\n\n# For GitHub Enterprise\nexport GH_HOST=enterprise.internal\nexport GH_TOKEN=your_enterprise_token\n\n# In GitHub Actions workflow\n# env:\n#   GH_TOKEN: ${{ github.token }}\n",[20,94774,94775,94780,94792,94796,94801,94813,94824,94828,94833,94838],{"__ignoreMap":30},[34,94776,94777],{"class":36,"line":37},[34,94778,94779],{"class":40},"# Use a token without running gh auth login (headless/CI)\n",[34,94781,94782,94784,94787,94789],{"class":36,"line":44},[34,94783,652],{"class":580},[34,94785,94786],{"class":181}," GH_TOKEN",[34,94788,1301],{"class":580},[34,94790,94791],{"class":181},"ghp_yourtokenhere\n",[34,94793,94794],{"class":36,"line":58},[34,94795,62],{"emptyLinePlaceholder":61},[34,94797,94798],{"class":36,"line":65},[34,94799,94800],{"class":40},"# For GitHub Enterprise\n",[34,94802,94803,94805,94808,94810],{"class":36,"line":71},[34,94804,652],{"class":580},[34,94806,94807],{"class":181}," GH_HOST",[34,94809,1301],{"class":580},[34,94811,94812],{"class":181},"enterprise.internal\n",[34,94814,94815,94817,94819,94821],{"class":36,"line":77},[34,94816,652],{"class":580},[34,94818,94786],{"class":181},[34,94820,1301],{"class":580},[34,94822,94823],{"class":181},"your_enterprise_token\n",[34,94825,94826],{"class":36,"line":82},[34,94827,62],{"emptyLinePlaceholder":61},[34,94829,94830],{"class":36,"line":88},[34,94831,94832],{"class":40},"# In GitHub Actions workflow\n",[34,94834,94835],{"class":36,"line":242},[34,94836,94837],{"class":40},"# env:\n",[34,94839,94840],{"class":36,"line":250},[34,94841,94842],{"class":40},"#   GH_TOKEN: ${{ github.token }}\n",[388,94844,10040],{},{"title":30,"searchDepth":44,"depth":44,"links":94846},[94847,94848,94849,94850,94851,94852],{"id":72637,"depth":44,"text":94346},{"id":94460,"depth":44,"text":94461},{"id":94563,"depth":44,"text":94564},{"id":94630,"depth":44,"text":94631},{"id":94726,"depth":44,"text":13576},{"id":14661,"depth":44,"text":14656},"GitHub CLI authentication commands for logging in, switching accounts, and managing tokens.",{},"/gh/auth",{"title":9362,"description":94853},"gh/auth",[92496,93405,411,94859,9361,94860],"auth","token","O32cwjEQA6QktSOx5t4vjuCnOW4tcFiyu5totOzgwko",{"id":94863,"title":94864,"body":94865,"date":402,"description":95499,"extension":404,"meta":95500,"navigation":61,"order":242,"path":95501,"seo":95502,"stem":95503,"subject":92496,"tags":95504,"__hash__":95508},"topics/gh/gists.md","Gists",{"type":8,"value":94866,"toc":95492},[94867,94870,95061,95065,95254,95258,95312,95316,95435,95437,95490],[11,94868,94869],{"id":72666},"Create",[25,94871,94873],{"className":27,"code":94872,"language":29,"meta":30,"style":30},"# Create a gist from a file (secret by default)\ngh gist create hello.py\n\n# Create a public gist\ngh gist create hello.py --public\n\n# Create a gist with a description\ngh gist create hello.py --desc \"Hello World in Python\"\n\n# Create a gist from multiple files\ngh gist create hello.py world.py notes.txt\n\n# Create a gist with a glob pattern\ngh gist create *.md\n\n# Read from stdin\ncat script.sh | gh gist create\n\n# Read from stdin with a filename label\ncat script.sh | gh gist create --filename deploy.sh\n\n# Open the new gist in browser after creation\ngh gist create hello.py --web\n",[20,94874,94875,94880,94892,94896,94901,94915,94919,94924,94940,94944,94949,94965,94969,94974,94987,94991,94995,95011,95015,95020,95040,95044,95049],{"__ignoreMap":30},[34,94876,94877],{"class":36,"line":37},[34,94878,94879],{"class":40},"# Create a gist from a file (secret by default)\n",[34,94881,94882,94884,94887,94889],{"class":36,"line":44},[34,94883,92496],{"class":47},[34,94885,94886],{"class":54}," gist",[34,94888,7077],{"class":54},[34,94890,94891],{"class":54}," hello.py\n",[34,94893,94894],{"class":36,"line":58},[34,94895,62],{"emptyLinePlaceholder":61},[34,94897,94898],{"class":36,"line":65},[34,94899,94900],{"class":40},"# Create a public gist\n",[34,94902,94903,94905,94907,94909,94912],{"class":36,"line":71},[34,94904,92496],{"class":47},[34,94906,94886],{"class":54},[34,94908,7077],{"class":54},[34,94910,94911],{"class":54}," hello.py",[34,94913,94914],{"class":50}," --public\n",[34,94916,94917],{"class":36,"line":77},[34,94918,62],{"emptyLinePlaceholder":61},[34,94920,94921],{"class":36,"line":82},[34,94922,94923],{"class":40},"# Create a gist with a description\n",[34,94925,94926,94928,94930,94932,94934,94937],{"class":36,"line":88},[34,94927,92496],{"class":47},[34,94929,94886],{"class":54},[34,94931,7077],{"class":54},[34,94933,94911],{"class":54},[34,94935,94936],{"class":50}," --desc",[34,94938,94939],{"class":54}," \"Hello World in Python\"\n",[34,94941,94942],{"class":36,"line":242},[34,94943,62],{"emptyLinePlaceholder":61},[34,94945,94946],{"class":36,"line":250},[34,94947,94948],{"class":40},"# Create a gist from multiple files\n",[34,94950,94951,94953,94955,94957,94959,94962],{"class":36,"line":263},[34,94952,92496],{"class":47},[34,94954,94886],{"class":54},[34,94956,7077],{"class":54},[34,94958,94911],{"class":54},[34,94960,94961],{"class":54}," world.py",[34,94963,94964],{"class":54}," notes.txt\n",[34,94966,94967],{"class":36,"line":275},[34,94968,62],{"emptyLinePlaceholder":61},[34,94970,94971],{"class":36,"line":700},[34,94972,94973],{"class":40},"# Create a gist with a glob pattern\n",[34,94975,94976,94978,94980,94982,94984],{"class":36,"line":706},[34,94977,92496],{"class":47},[34,94979,94886],{"class":54},[34,94981,7077],{"class":54},[34,94983,18083],{"class":50},[34,94985,94986],{"class":54},".md\n",[34,94988,94989],{"class":36,"line":715},[34,94990,62],{"emptyLinePlaceholder":61},[34,94992,94993],{"class":36,"line":725},[34,94994,80516],{"class":40},[34,94996,94997,94999,95002,95004,95006,95008],{"class":36,"line":734},[34,94998,11449],{"class":47},[34,95000,95001],{"class":54}," script.sh",[34,95003,7197],{"class":580},[34,95005,93165],{"class":47},[34,95007,94886],{"class":54},[34,95009,95010],{"class":54}," create\n",[34,95012,95013],{"class":36,"line":742},[34,95014,62],{"emptyLinePlaceholder":61},[34,95016,95017],{"class":36,"line":748},[34,95018,95019],{"class":40},"# Read from stdin with a filename label\n",[34,95021,95022,95024,95026,95028,95030,95032,95034,95037],{"class":36,"line":754},[34,95023,11449],{"class":47},[34,95025,95001],{"class":54},[34,95027,7197],{"class":580},[34,95029,93165],{"class":47},[34,95031,94886],{"class":54},[34,95033,7077],{"class":54},[34,95035,95036],{"class":50}," --filename",[34,95038,95039],{"class":54}," deploy.sh\n",[34,95041,95042],{"class":36,"line":759},[34,95043,62],{"emptyLinePlaceholder":61},[34,95045,95046],{"class":36,"line":771},[34,95047,95048],{"class":40},"# Open the new gist in browser after creation\n",[34,95050,95051,95053,95055,95057,95059],{"class":36,"line":794},[34,95052,92496],{"class":47},[34,95054,94886],{"class":54},[34,95056,7077],{"class":54},[34,95058,94911],{"class":54},[34,95060,92793],{"class":50},[11,95062,95064],{"id":95063},"list-view","List & View",[25,95066,95068],{"className":27,"code":95067,"language":29,"meta":30,"style":30},"# List your gists\ngh gist list\n\n# List gists with a limit\ngh gist list --limit 20\n\n# List public gists only\ngh gist list --public\n\n# List secret gists only\ngh gist list --secret\n\n# View a gist (by ID)\ngh gist view \u003Cgist-id>\n\n# View a specific file in a gist\ngh gist view \u003Cgist-id> --filename hello.py\n\n# Open gist in browser\ngh gist view \u003Cgist-id> --web\n\n# Print raw content\ngh gist view \u003Cgist-id> --raw\n",[20,95069,95070,95075,95083,95087,95092,95105,95109,95114,95124,95128,95133,95144,95148,95153,95170,95174,95179,95199,95203,95208,95226,95230,95235],{"__ignoreMap":30},[34,95071,95072],{"class":36,"line":37},[34,95073,95074],{"class":40},"# List your gists\n",[34,95076,95077,95079,95081],{"class":36,"line":44},[34,95078,92496],{"class":47},[34,95080,94886],{"class":54},[34,95082,7536],{"class":54},[34,95084,95085],{"class":36,"line":58},[34,95086,62],{"emptyLinePlaceholder":61},[34,95088,95089],{"class":36,"line":65},[34,95090,95091],{"class":40},"# List gists with a limit\n",[34,95093,95094,95096,95098,95100,95102],{"class":36,"line":71},[34,95095,92496],{"class":47},[34,95097,94886],{"class":54},[34,95099,6345],{"class":54},[34,95101,92520],{"class":50},[34,95103,95104],{"class":50}," 20\n",[34,95106,95107],{"class":36,"line":77},[34,95108,62],{"emptyLinePlaceholder":61},[34,95110,95111],{"class":36,"line":82},[34,95112,95113],{"class":40},"# List public gists only\n",[34,95115,95116,95118,95120,95122],{"class":36,"line":88},[34,95117,92496],{"class":47},[34,95119,94886],{"class":54},[34,95121,6345],{"class":54},[34,95123,94914],{"class":50},[34,95125,95126],{"class":36,"line":242},[34,95127,62],{"emptyLinePlaceholder":61},[34,95129,95130],{"class":36,"line":250},[34,95131,95132],{"class":40},"# List secret gists only\n",[34,95134,95135,95137,95139,95141],{"class":36,"line":263},[34,95136,92496],{"class":47},[34,95138,94886],{"class":54},[34,95140,6345],{"class":54},[34,95142,95143],{"class":50}," --secret\n",[34,95145,95146],{"class":36,"line":275},[34,95147,62],{"emptyLinePlaceholder":61},[34,95149,95150],{"class":36,"line":700},[34,95151,95152],{"class":40},"# View a gist (by ID)\n",[34,95154,95155,95157,95159,95161,95163,95166,95168],{"class":36,"line":706},[34,95156,92496],{"class":47},[34,95158,94886],{"class":54},[34,95160,92679],{"class":54},[34,95162,5470],{"class":580},[34,95164,95165],{"class":54},"gist-i",[34,95167,5878],{"class":181},[34,95169,1248],{"class":580},[34,95171,95172],{"class":36,"line":715},[34,95173,62],{"emptyLinePlaceholder":61},[34,95175,95176],{"class":36,"line":725},[34,95177,95178],{"class":40},"# View a specific file in a gist\n",[34,95180,95181,95183,95185,95187,95189,95191,95193,95195,95197],{"class":36,"line":734},[34,95182,92496],{"class":47},[34,95184,94886],{"class":54},[34,95186,92679],{"class":54},[34,95188,5470],{"class":580},[34,95190,95165],{"class":54},[34,95192,5878],{"class":181},[34,95194,5691],{"class":580},[34,95196,95036],{"class":50},[34,95198,94891],{"class":54},[34,95200,95201],{"class":36,"line":742},[34,95202,62],{"emptyLinePlaceholder":61},[34,95204,95205],{"class":36,"line":748},[34,95206,95207],{"class":40},"# Open gist in browser\n",[34,95209,95210,95212,95214,95216,95218,95220,95222,95224],{"class":36,"line":754},[34,95211,92496],{"class":47},[34,95213,94886],{"class":54},[34,95215,92679],{"class":54},[34,95217,5470],{"class":580},[34,95219,95165],{"class":54},[34,95221,5878],{"class":181},[34,95223,5691],{"class":580},[34,95225,92793],{"class":50},[34,95227,95228],{"class":36,"line":759},[34,95229,62],{"emptyLinePlaceholder":61},[34,95231,95232],{"class":36,"line":771},[34,95233,95234],{"class":40},"# Print raw content\n",[34,95236,95237,95239,95241,95243,95245,95247,95249,95251],{"class":36,"line":794},[34,95238,92496],{"class":47},[34,95240,94886],{"class":54},[34,95242,92679],{"class":54},[34,95244,5470],{"class":580},[34,95246,95165],{"class":54},[34,95248,5878],{"class":181},[34,95250,5691],{"class":580},[34,95252,95253],{"class":50}," --raw\n",[11,95255,95257],{"id":95256},"clone","Clone",[25,95259,95261],{"className":27,"code":95260,"language":29,"meta":30,"style":30},"# Clone a gist as a git repository\ngh gist clone \u003Cgist-id>\n\n# Clone to a specific directory\ngh gist clone \u003Cgist-id> my-gist-dir\n",[20,95262,95263,95268,95284,95288,95293],{"__ignoreMap":30},[34,95264,95265],{"class":36,"line":37},[34,95266,95267],{"class":40},"# Clone a gist as a git repository\n",[34,95269,95270,95272,95274,95276,95278,95280,95282],{"class":36,"line":44},[34,95271,92496],{"class":47},[34,95273,94886],{"class":54},[34,95275,7797],{"class":54},[34,95277,5470],{"class":580},[34,95279,95165],{"class":54},[34,95281,5878],{"class":181},[34,95283,1248],{"class":580},[34,95285,95286],{"class":36,"line":58},[34,95287,62],{"emptyLinePlaceholder":61},[34,95289,95290],{"class":36,"line":65},[34,95291,95292],{"class":40},"# Clone to a specific directory\n",[34,95294,95295,95297,95299,95301,95303,95305,95307,95309],{"class":36,"line":71},[34,95296,92496],{"class":47},[34,95298,94886],{"class":54},[34,95300,7797],{"class":54},[34,95302,5470],{"class":580},[34,95304,95165],{"class":54},[34,95306,5878],{"class":181},[34,95308,5691],{"class":580},[34,95310,95311],{"class":54}," my-gist-dir\n",[11,95313,95315],{"id":95314},"edit-rename","Edit & Rename",[25,95317,95319],{"className":27,"code":95318,"language":29,"meta":30,"style":30},"# Edit a gist (opens in $EDITOR)\ngh gist edit \u003Cgist-id>\n\n# Edit a specific file within a gist\ngh gist edit \u003Cgist-id> --filename hello.py\n\n# Add a new file to an existing gist\ngh gist edit \u003Cgist-id> --add new-file.py\n\n# Rename a file in a gist\ngh gist rename \u003Cgist-id> old-name.py new-name.py\n",[20,95320,95321,95326,95343,95347,95352,95372,95376,95381,95403,95407,95412],{"__ignoreMap":30},[34,95322,95323],{"class":36,"line":37},[34,95324,95325],{"class":40},"# Edit a gist (opens in $EDITOR)\n",[34,95327,95328,95330,95332,95335,95337,95339,95341],{"class":36,"line":44},[34,95329,92496],{"class":47},[34,95331,94886],{"class":54},[34,95333,95334],{"class":54}," edit",[34,95336,5470],{"class":580},[34,95338,95165],{"class":54},[34,95340,5878],{"class":181},[34,95342,1248],{"class":580},[34,95344,95345],{"class":36,"line":58},[34,95346,62],{"emptyLinePlaceholder":61},[34,95348,95349],{"class":36,"line":65},[34,95350,95351],{"class":40},"# Edit a specific file within a gist\n",[34,95353,95354,95356,95358,95360,95362,95364,95366,95368,95370],{"class":36,"line":71},[34,95355,92496],{"class":47},[34,95357,94886],{"class":54},[34,95359,95334],{"class":54},[34,95361,5470],{"class":580},[34,95363,95165],{"class":54},[34,95365,5878],{"class":181},[34,95367,5691],{"class":580},[34,95369,95036],{"class":50},[34,95371,94891],{"class":54},[34,95373,95374],{"class":36,"line":77},[34,95375,62],{"emptyLinePlaceholder":61},[34,95377,95378],{"class":36,"line":82},[34,95379,95380],{"class":40},"# Add a new file to an existing gist\n",[34,95382,95383,95385,95387,95389,95391,95393,95395,95397,95400],{"class":36,"line":88},[34,95384,92496],{"class":47},[34,95386,94886],{"class":54},[34,95388,95334],{"class":54},[34,95390,5470],{"class":580},[34,95392,95165],{"class":54},[34,95394,5878],{"class":181},[34,95396,5691],{"class":580},[34,95398,95399],{"class":50}," --add",[34,95401,95402],{"class":54}," new-file.py\n",[34,95404,95405],{"class":36,"line":242},[34,95406,62],{"emptyLinePlaceholder":61},[34,95408,95409],{"class":36,"line":250},[34,95410,95411],{"class":40},"# Rename a file in a gist\n",[34,95413,95414,95416,95418,95421,95423,95425,95427,95429,95432],{"class":36,"line":263},[34,95415,92496],{"class":47},[34,95417,94886],{"class":54},[34,95419,95420],{"class":54}," rename",[34,95422,5470],{"class":580},[34,95424,95165],{"class":54},[34,95426,5878],{"class":181},[34,95428,5691],{"class":580},[34,95430,95431],{"class":54}," old-name.py",[34,95433,95434],{"class":54}," new-name.py\n",[11,95436,84237],{"id":30355},[25,95438,95440],{"className":27,"code":95439,"language":29,"meta":30,"style":30},"# Delete a gist (prompts for confirmation)\ngh gist delete \u003Cgist-id>\n\n# Delete without prompting\ngh gist delete \u003Cgist-id> --yes\n",[20,95441,95442,95447,95463,95467,95472],{"__ignoreMap":30},[34,95443,95444],{"class":36,"line":37},[34,95445,95446],{"class":40},"# Delete a gist (prompts for confirmation)\n",[34,95448,95449,95451,95453,95455,95457,95459,95461],{"class":36,"line":44},[34,95450,92496],{"class":47},[34,95452,94886],{"class":54},[34,95454,9562],{"class":54},[34,95456,5470],{"class":580},[34,95458,95165],{"class":54},[34,95460,5878],{"class":181},[34,95462,1248],{"class":580},[34,95464,95465],{"class":36,"line":58},[34,95466,62],{"emptyLinePlaceholder":61},[34,95468,95469],{"class":36,"line":65},[34,95470,95471],{"class":40},"# Delete without prompting\n",[34,95473,95474,95476,95478,95480,95482,95484,95486,95488],{"class":36,"line":71},[34,95475,92496],{"class":47},[34,95477,94886],{"class":54},[34,95479,9562],{"class":54},[34,95481,5470],{"class":580},[34,95483,95165],{"class":54},[34,95485,5878],{"class":181},[34,95487,5691],{"class":580},[34,95489,9569],{"class":50},[388,95491,10040],{},{"title":30,"searchDepth":44,"depth":44,"links":95493},[95494,95495,95496,95497,95498],{"id":72666,"depth":44,"text":94869},{"id":95063,"depth":44,"text":95064},{"id":95256,"depth":44,"text":95257},{"id":95314,"depth":44,"text":95315},{"id":30355,"depth":44,"text":84237},"GitHub CLI commands for creating, editing, viewing, and managing GitHub Gists.",{},"/gh/gists",{"title":94864,"description":95499},"gh/gists",[92496,93405,411,95505,95506,95507],"gist","snippet","paste","AaRN60AgbZwIwTjQCrvsov0Sz-C4knP1N2WF7h6STUU",{"id":95510,"title":95511,"body":95512,"date":402,"description":96292,"extension":404,"meta":96293,"navigation":61,"order":65,"path":96294,"seo":96295,"stem":96296,"subject":92496,"tags":96297,"__hash__":96301},"topics/gh/issues.md","Issues",{"type":8,"value":95513,"toc":96284},[95514,95516,95691,95693,95915,95919,96042,96046,96116,96120,96261,96264,96282],[11,95515,94869],{"id":72666},[25,95517,95519],{"className":27,"code":95518,"language":29,"meta":30,"style":30},"# Create an issue interactively\ngh issue create\n\n# Create with title and body\ngh issue create --title \"Bug: app crashes on login\" --body \"Steps to reproduce...\"\n\n# Create and assign to yourself\ngh issue create --title \"Feature request\" --assignee \"@me\"\n\n# Create with labels\ngh issue create --title \"Bug\" --label \"bug,high-priority\"\n\n# Create and add to a milestone\ngh issue create --title \"Task\" --milestone \"v1.0\"\n\n# Open browser to create an issue\ngh issue create --web\n\n# Assign to Copilot\ngh issue create --title \"Task\" --assignee \"@copilot\"\n",[20,95520,95521,95526,95534,95538,95543,95562,95566,95571,95590,95594,95599,95618,95622,95627,95646,95650,95655,95665,95669,95674],{"__ignoreMap":30},[34,95522,95523],{"class":36,"line":37},[34,95524,95525],{"class":40},"# Create an issue interactively\n",[34,95527,95528,95530,95532],{"class":36,"line":44},[34,95529,92496],{"class":47},[34,95531,93612],{"class":54},[34,95533,95010],{"class":54},[34,95535,95536],{"class":36,"line":58},[34,95537,62],{"emptyLinePlaceholder":61},[34,95539,95540],{"class":36,"line":65},[34,95541,95542],{"class":40},"# Create with title and body\n",[34,95544,95545,95547,95549,95551,95553,95556,95559],{"class":36,"line":71},[34,95546,92496],{"class":47},[34,95548,93612],{"class":54},[34,95550,7077],{"class":54},[34,95552,94105],{"class":50},[34,95554,95555],{"class":54}," \"Bug: app crashes on login\"",[34,95557,95558],{"class":50}," --body",[34,95560,95561],{"class":54}," \"Steps to reproduce...\"\n",[34,95563,95564],{"class":36,"line":77},[34,95565,62],{"emptyLinePlaceholder":61},[34,95567,95568],{"class":36,"line":82},[34,95569,95570],{"class":40},"# Create and assign to yourself\n",[34,95572,95573,95575,95577,95579,95581,95584,95587],{"class":36,"line":88},[34,95574,92496],{"class":47},[34,95576,93612],{"class":54},[34,95578,7077],{"class":54},[34,95580,94105],{"class":50},[34,95582,95583],{"class":54}," \"Feature request\"",[34,95585,95586],{"class":50}," --assignee",[34,95588,95589],{"class":54}," \"@me\"\n",[34,95591,95592],{"class":36,"line":242},[34,95593,62],{"emptyLinePlaceholder":61},[34,95595,95596],{"class":36,"line":250},[34,95597,95598],{"class":40},"# Create with labels\n",[34,95600,95601,95603,95605,95607,95609,95612,95615],{"class":36,"line":263},[34,95602,92496],{"class":47},[34,95604,93612],{"class":54},[34,95606,7077],{"class":54},[34,95608,94105],{"class":50},[34,95610,95611],{"class":54}," \"Bug\"",[34,95613,95614],{"class":50}," --label",[34,95616,95617],{"class":54}," \"bug,high-priority\"\n",[34,95619,95620],{"class":36,"line":275},[34,95621,62],{"emptyLinePlaceholder":61},[34,95623,95624],{"class":36,"line":700},[34,95625,95626],{"class":40},"# Create and add to a milestone\n",[34,95628,95629,95631,95633,95635,95637,95640,95643],{"class":36,"line":706},[34,95630,92496],{"class":47},[34,95632,93612],{"class":54},[34,95634,7077],{"class":54},[34,95636,94105],{"class":50},[34,95638,95639],{"class":54}," \"Task\"",[34,95641,95642],{"class":50}," --milestone",[34,95644,95645],{"class":54}," \"v1.0\"\n",[34,95647,95648],{"class":36,"line":715},[34,95649,62],{"emptyLinePlaceholder":61},[34,95651,95652],{"class":36,"line":725},[34,95653,95654],{"class":40},"# Open browser to create an issue\n",[34,95656,95657,95659,95661,95663],{"class":36,"line":734},[34,95658,92496],{"class":47},[34,95660,93612],{"class":54},[34,95662,7077],{"class":54},[34,95664,92793],{"class":50},[34,95666,95667],{"class":36,"line":742},[34,95668,62],{"emptyLinePlaceholder":61},[34,95670,95671],{"class":36,"line":748},[34,95672,95673],{"class":40},"# Assign to Copilot\n",[34,95675,95676,95678,95680,95682,95684,95686,95688],{"class":36,"line":754},[34,95677,92496],{"class":47},[34,95679,93612],{"class":54},[34,95681,7077],{"class":54},[34,95683,94105],{"class":50},[34,95685,95639],{"class":54},[34,95687,95586],{"class":50},[34,95689,95690],{"class":54}," \"@copilot\"\n",[11,95692,95064],{"id":95063},[25,95694,95696],{"className":27,"code":95695,"language":29,"meta":30,"style":30},"# List open issues (default)\ngh issue list\n\n# List all issues (open and closed)\ngh issue list --state all\n\n# Filter by label\ngh issue list --label \"bug\"\ngh issue list --label \"bug\" --label \"help wanted\"\n\n# Filter by assignee\ngh issue list --assignee \"@me\"\ngh issue list --assignee monalisa\n\n# Filter by author\ngh issue list --author octocat\n\n# Filter by milestone\ngh issue list --milestone \"v1.0\"\n\n# Search with query syntax\ngh issue list --search \"error no:assignee sort:created-asc\"\n\n# View a specific issue\ngh issue view 123\n\n# Open issue in browser\ngh issue view 123 --web\n",[20,95697,95698,95703,95711,95715,95720,95733,95737,95742,95755,95773,95777,95782,95794,95807,95811,95816,95830,95834,95839,95851,95855,95860,95874,95878,95883,95894,95898,95903],{"__ignoreMap":30},[34,95699,95700],{"class":36,"line":37},[34,95701,95702],{"class":40},"# List open issues (default)\n",[34,95704,95705,95707,95709],{"class":36,"line":44},[34,95706,92496],{"class":47},[34,95708,93612],{"class":54},[34,95710,7536],{"class":54},[34,95712,95713],{"class":36,"line":58},[34,95714,62],{"emptyLinePlaceholder":61},[34,95716,95717],{"class":36,"line":65},[34,95718,95719],{"class":40},"# List all issues (open and closed)\n",[34,95721,95722,95724,95726,95728,95731],{"class":36,"line":71},[34,95723,92496],{"class":47},[34,95725,93612],{"class":54},[34,95727,6345],{"class":54},[34,95729,95730],{"class":50}," --state",[34,95732,53936],{"class":54},[34,95734,95735],{"class":36,"line":77},[34,95736,62],{"emptyLinePlaceholder":61},[34,95738,95739],{"class":36,"line":82},[34,95740,95741],{"class":40},"# Filter by label\n",[34,95743,95744,95746,95748,95750,95752],{"class":36,"line":88},[34,95745,92496],{"class":47},[34,95747,93612],{"class":54},[34,95749,6345],{"class":54},[34,95751,95614],{"class":50},[34,95753,95754],{"class":54}," \"bug\"\n",[34,95756,95757,95759,95761,95763,95765,95768,95770],{"class":36,"line":242},[34,95758,92496],{"class":47},[34,95760,93612],{"class":54},[34,95762,6345],{"class":54},[34,95764,95614],{"class":50},[34,95766,95767],{"class":54}," \"bug\"",[34,95769,95614],{"class":50},[34,95771,95772],{"class":54}," \"help wanted\"\n",[34,95774,95775],{"class":36,"line":250},[34,95776,62],{"emptyLinePlaceholder":61},[34,95778,95779],{"class":36,"line":263},[34,95780,95781],{"class":40},"# Filter by assignee\n",[34,95783,95784,95786,95788,95790,95792],{"class":36,"line":275},[34,95785,92496],{"class":47},[34,95787,93612],{"class":54},[34,95789,6345],{"class":54},[34,95791,95586],{"class":50},[34,95793,95589],{"class":54},[34,95795,95796,95798,95800,95802,95804],{"class":36,"line":700},[34,95797,92496],{"class":47},[34,95799,93612],{"class":54},[34,95801,6345],{"class":54},[34,95803,95586],{"class":50},[34,95805,95806],{"class":54}," monalisa\n",[34,95808,95809],{"class":36,"line":706},[34,95810,62],{"emptyLinePlaceholder":61},[34,95812,95813],{"class":36,"line":715},[34,95814,95815],{"class":40},"# Filter by author\n",[34,95817,95818,95820,95822,95824,95827],{"class":36,"line":725},[34,95819,92496],{"class":47},[34,95821,93612],{"class":54},[34,95823,6345],{"class":54},[34,95825,95826],{"class":50}," --author",[34,95828,95829],{"class":54}," octocat\n",[34,95831,95832],{"class":36,"line":734},[34,95833,62],{"emptyLinePlaceholder":61},[34,95835,95836],{"class":36,"line":742},[34,95837,95838],{"class":40},"# Filter by milestone\n",[34,95840,95841,95843,95845,95847,95849],{"class":36,"line":748},[34,95842,92496],{"class":47},[34,95844,93612],{"class":54},[34,95846,6345],{"class":54},[34,95848,95642],{"class":50},[34,95850,95645],{"class":54},[34,95852,95853],{"class":36,"line":754},[34,95854,62],{"emptyLinePlaceholder":61},[34,95856,95857],{"class":36,"line":759},[34,95858,95859],{"class":40},"# Search with query syntax\n",[34,95861,95862,95864,95866,95868,95871],{"class":36,"line":771},[34,95863,92496],{"class":47},[34,95865,93612],{"class":54},[34,95867,6345],{"class":54},[34,95869,95870],{"class":50}," --search",[34,95872,95873],{"class":54}," \"error no:assignee sort:created-asc\"\n",[34,95875,95876],{"class":36,"line":794},[34,95877,62],{"emptyLinePlaceholder":61},[34,95879,95880],{"class":36,"line":824},[34,95881,95882],{"class":40},"# View a specific issue\n",[34,95884,95885,95887,95889,95891],{"class":36,"line":830},[34,95886,92496],{"class":47},[34,95888,93612],{"class":54},[34,95890,92679],{"class":54},[34,95892,95893],{"class":50}," 123\n",[34,95895,95896],{"class":36,"line":839},[34,95897,62],{"emptyLinePlaceholder":61},[34,95899,95900],{"class":36,"line":854},[34,95901,95902],{"class":40},"# Open issue in browser\n",[34,95904,95905,95907,95909,95911,95913],{"class":36,"line":860},[34,95906,92496],{"class":47},[34,95908,93612],{"class":54},[34,95910,92679],{"class":54},[34,95912,93448],{"class":50},[34,95914,92793],{"class":50},[11,95916,95918],{"id":95917},"edit","Edit",[25,95920,95922],{"className":27,"code":95921,"language":29,"meta":30,"style":30},"# Edit issue title\ngh issue edit 123 --title \"Updated title\"\n\n# Add a label\ngh issue edit 123 --add-label \"priority\"\n\n# Remove a label\ngh issue edit 123 --remove-label \"wontfix\"\n\n# Change assignee\ngh issue edit 123 --add-assignee monalisa\n\n# Set milestone\ngh issue edit 123 --milestone \"v2.0\"\n",[20,95923,95924,95929,95944,95948,95953,95969,95973,95978,95994,95998,96003,96018,96022,96027],{"__ignoreMap":30},[34,95925,95926],{"class":36,"line":37},[34,95927,95928],{"class":40},"# Edit issue title\n",[34,95930,95931,95933,95935,95937,95939,95941],{"class":36,"line":44},[34,95932,92496],{"class":47},[34,95934,93612],{"class":54},[34,95936,95334],{"class":54},[34,95938,93448],{"class":50},[34,95940,94105],{"class":50},[34,95942,95943],{"class":54}," \"Updated title\"\n",[34,95945,95946],{"class":36,"line":58},[34,95947,62],{"emptyLinePlaceholder":61},[34,95949,95950],{"class":36,"line":65},[34,95951,95952],{"class":40},"# Add a label\n",[34,95954,95955,95957,95959,95961,95963,95966],{"class":36,"line":71},[34,95956,92496],{"class":47},[34,95958,93612],{"class":54},[34,95960,95334],{"class":54},[34,95962,93448],{"class":50},[34,95964,95965],{"class":50}," --add-label",[34,95967,95968],{"class":54}," \"priority\"\n",[34,95970,95971],{"class":36,"line":77},[34,95972,62],{"emptyLinePlaceholder":61},[34,95974,95975],{"class":36,"line":82},[34,95976,95977],{"class":40},"# Remove a label\n",[34,95979,95980,95982,95984,95986,95988,95991],{"class":36,"line":88},[34,95981,92496],{"class":47},[34,95983,93612],{"class":54},[34,95985,95334],{"class":54},[34,95987,93448],{"class":50},[34,95989,95990],{"class":50}," --remove-label",[34,95992,95993],{"class":54}," \"wontfix\"\n",[34,95995,95996],{"class":36,"line":242},[34,95997,62],{"emptyLinePlaceholder":61},[34,95999,96000],{"class":36,"line":250},[34,96001,96002],{"class":40},"# Change assignee\n",[34,96004,96005,96007,96009,96011,96013,96016],{"class":36,"line":263},[34,96006,92496],{"class":47},[34,96008,93612],{"class":54},[34,96010,95334],{"class":54},[34,96012,93448],{"class":50},[34,96014,96015],{"class":50}," --add-assignee",[34,96017,95806],{"class":54},[34,96019,96020],{"class":36,"line":275},[34,96021,62],{"emptyLinePlaceholder":61},[34,96023,96024],{"class":36,"line":700},[34,96025,96026],{"class":40},"# Set milestone\n",[34,96028,96029,96031,96033,96035,96037,96039],{"class":36,"line":706},[34,96030,92496],{"class":47},[34,96032,93612],{"class":54},[34,96034,95334],{"class":54},[34,96036,93448],{"class":50},[34,96038,95642],{"class":50},[34,96040,96041],{"class":54}," \"v2.0\"\n",[11,96043,96045],{"id":96044},"comment","Comment",[25,96047,96049],{"className":27,"code":96048,"language":29,"meta":30,"style":30},"# Add a comment interactively\ngh issue comment 123\n\n# Add a comment with body text\ngh issue comment 123 --body \"This is a comment\"\n\n# Add a comment from a file\ngh issue comment 123 --body-file comment.md\n",[20,96050,96051,96056,96067,96071,96076,96091,96095,96100],{"__ignoreMap":30},[34,96052,96053],{"class":36,"line":37},[34,96054,96055],{"class":40},"# Add a comment interactively\n",[34,96057,96058,96060,96062,96065],{"class":36,"line":44},[34,96059,92496],{"class":47},[34,96061,93612],{"class":54},[34,96063,96064],{"class":54}," comment",[34,96066,95893],{"class":50},[34,96068,96069],{"class":36,"line":58},[34,96070,62],{"emptyLinePlaceholder":61},[34,96072,96073],{"class":36,"line":65},[34,96074,96075],{"class":40},"# Add a comment with body text\n",[34,96077,96078,96080,96082,96084,96086,96088],{"class":36,"line":71},[34,96079,92496],{"class":47},[34,96081,93612],{"class":54},[34,96083,96064],{"class":54},[34,96085,93448],{"class":50},[34,96087,95558],{"class":50},[34,96089,96090],{"class":54}," \"This is a comment\"\n",[34,96092,96093],{"class":36,"line":77},[34,96094,62],{"emptyLinePlaceholder":61},[34,96096,96097],{"class":36,"line":82},[34,96098,96099],{"class":40},"# Add a comment from a file\n",[34,96101,96102,96104,96106,96108,96110,96113],{"class":36,"line":88},[34,96103,92496],{"class":47},[34,96105,93612],{"class":54},[34,96107,96064],{"class":54},[34,96109,93448],{"class":50},[34,96111,96112],{"class":50}," --body-file",[34,96114,96115],{"class":54}," comment.md\n",[11,96117,96119],{"id":96118},"lifecycle","Lifecycle",[25,96121,96123],{"className":27,"code":96122,"language":29,"meta":30,"style":30},"# Close an issue\ngh issue close 123\n\n# Close with a comment\ngh issue close 123 --comment \"Resolved in v1.2\"\n\n# Reopen a closed issue\ngh issue reopen 123\n\n# Delete an issue (requires admin rights)\ngh issue delete 123 --yes\n\n# Pin/unpin an issue\ngh issue pin 123\ngh issue unpin 123\n\n# Transfer issue to another repo\ngh issue transfer 123 owner/other-repo\n",[20,96124,96125,96130,96141,96145,96150,96166,96170,96175,96186,96190,96195,96207,96211,96216,96227,96238,96242,96247],{"__ignoreMap":30},[34,96126,96127],{"class":36,"line":37},[34,96128,96129],{"class":40},"# Close an issue\n",[34,96131,96132,96134,96136,96139],{"class":36,"line":44},[34,96133,92496],{"class":47},[34,96135,93612],{"class":54},[34,96137,96138],{"class":54}," close",[34,96140,95893],{"class":50},[34,96142,96143],{"class":36,"line":58},[34,96144,62],{"emptyLinePlaceholder":61},[34,96146,96147],{"class":36,"line":65},[34,96148,96149],{"class":40},"# Close with a comment\n",[34,96151,96152,96154,96156,96158,96160,96163],{"class":36,"line":71},[34,96153,92496],{"class":47},[34,96155,93612],{"class":54},[34,96157,96138],{"class":54},[34,96159,93448],{"class":50},[34,96161,96162],{"class":50}," --comment",[34,96164,96165],{"class":54}," \"Resolved in v1.2\"\n",[34,96167,96168],{"class":36,"line":77},[34,96169,62],{"emptyLinePlaceholder":61},[34,96171,96172],{"class":36,"line":82},[34,96173,96174],{"class":40},"# Reopen a closed issue\n",[34,96176,96177,96179,96181,96184],{"class":36,"line":88},[34,96178,92496],{"class":47},[34,96180,93612],{"class":54},[34,96182,96183],{"class":54}," reopen",[34,96185,95893],{"class":50},[34,96187,96188],{"class":36,"line":242},[34,96189,62],{"emptyLinePlaceholder":61},[34,96191,96192],{"class":36,"line":250},[34,96193,96194],{"class":40},"# Delete an issue (requires admin rights)\n",[34,96196,96197,96199,96201,96203,96205],{"class":36,"line":263},[34,96198,92496],{"class":47},[34,96200,93612],{"class":54},[34,96202,9562],{"class":54},[34,96204,93448],{"class":50},[34,96206,9569],{"class":50},[34,96208,96209],{"class":36,"line":275},[34,96210,62],{"emptyLinePlaceholder":61},[34,96212,96213],{"class":36,"line":700},[34,96214,96215],{"class":40},"# Pin/unpin an issue\n",[34,96217,96218,96220,96222,96225],{"class":36,"line":706},[34,96219,92496],{"class":47},[34,96221,93612],{"class":54},[34,96223,96224],{"class":54}," pin",[34,96226,95893],{"class":50},[34,96228,96229,96231,96233,96236],{"class":36,"line":715},[34,96230,92496],{"class":47},[34,96232,93612],{"class":54},[34,96234,96235],{"class":54}," unpin",[34,96237,95893],{"class":50},[34,96239,96240],{"class":36,"line":725},[34,96241,62],{"emptyLinePlaceholder":61},[34,96243,96244],{"class":36,"line":734},[34,96245,96246],{"class":40},"# Transfer issue to another repo\n",[34,96248,96249,96251,96253,96256,96258],{"class":36,"line":742},[34,96250,92496],{"class":47},[34,96252,93612],{"class":54},[34,96254,96255],{"class":54}," transfer",[34,96257,93448],{"class":50},[34,96259,96260],{"class":54}," owner/other-repo\n",[11,96262,96263],{"id":75167},"Status",[25,96265,96267],{"className":27,"code":96266,"language":29,"meta":30,"style":30},"# View issues relevant to you (assigned, created, mentioned)\ngh issue status\n",[20,96268,96269,96274],{"__ignoreMap":30},[34,96270,96271],{"class":36,"line":37},[34,96272,96273],{"class":40},"# View issues relevant to you (assigned, created, mentioned)\n",[34,96275,96276,96278,96280],{"class":36,"line":44},[34,96277,92496],{"class":47},[34,96279,93612],{"class":54},[34,96281,94480],{"class":54},[388,96283,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":96285},[96286,96287,96288,96289,96290,96291],{"id":72666,"depth":44,"text":94869},{"id":95063,"depth":44,"text":95064},{"id":95917,"depth":44,"text":95918},{"id":96044,"depth":44,"text":96045},{"id":96118,"depth":44,"text":96119},{"id":75167,"depth":44,"text":96263},"GitHub CLI commands for creating, listing, editing, and managing GitHub issues.",{},"/gh/issues",{"title":95511,"description":96292},"gh/issues",[92496,93405,411,96298,96299,96300],"issues","bug","tracker","aERg9_GwKBnQgAPWcJDCU0toKFxVRrzYQHsUJ3NQESA",{"id":96303,"title":96304,"body":96305,"date":402,"description":97283,"extension":404,"meta":97284,"navigation":61,"order":37,"path":97285,"seo":97286,"stem":97287,"subject":92496,"tags":97288,"__hash__":97289},"topics/gh/overview.md","GitHub CLI",{"type":8,"value":96306,"toc":97272},[96307,96309,96384,96386,96465,96469,96594,96598,96699,96703,96827,96831,96930,96934,97046,97050,97160,97164,97270],[11,96308,97],{"id":96},[25,96310,96312],{"className":27,"code":96311,"language":29,"meta":30,"style":30},"# macOS via Homebrew\nbrew install gh\n\n# Windows via winget\nwinget install --id GitHub.cli\n\n# Ubuntu/Debian\nsudo apt install gh\n\n# Fedora/RHEL\nsudo dnf install gh\n",[20,96313,96314,96318,96327,96331,96335,96347,96351,96355,96365,96369,96374],{"__ignoreMap":30},[34,96315,96316],{"class":36,"line":37},[34,96317,82037],{"class":40},[34,96319,96320,96322,96324],{"class":36,"line":44},[34,96321,115],{"class":47},[34,96323,118],{"class":54},[34,96325,96326],{"class":54}," gh\n",[34,96328,96329],{"class":36,"line":58},[34,96330,62],{"emptyLinePlaceholder":61},[34,96332,96333],{"class":36,"line":65},[34,96334,82055],{"class":40},[34,96336,96337,96339,96341,96344],{"class":36,"line":71},[34,96338,78283],{"class":47},[34,96340,118],{"class":54},[34,96342,96343],{"class":50}," --id",[34,96345,96346],{"class":54}," GitHub.cli\n",[34,96348,96349],{"class":36,"line":77},[34,96350,62],{"emptyLinePlaceholder":61},[34,96352,96353],{"class":36,"line":82},[34,96354,78143],{"class":40},[34,96356,96357,96359,96361,96363],{"class":36,"line":88},[34,96358,436],{"class":47},[34,96360,439],{"class":54},[34,96362,118],{"class":54},[34,96364,96326],{"class":54},[34,96366,96367],{"class":36,"line":242},[34,96368,62],{"emptyLinePlaceholder":61},[34,96370,96371],{"class":36,"line":250},[34,96372,96373],{"class":40},"# Fedora/RHEL\n",[34,96375,96376,96378,96380,96382],{"class":36,"line":263},[34,96377,436],{"class":47},[34,96379,78187],{"class":54},[34,96381,118],{"class":54},[34,96383,96326],{"class":54},[11,96385,9362],{"id":9361},[25,96387,96389],{"className":27,"code":96388,"language":29,"meta":30,"style":30},"# Login interactively (opens browser)\ngh auth login\n\n# Login with a token from stdin\ngh auth login --with-token \u003C token.txt\n\n# Check auth status\ngh auth status\n\n# Set token via environment variable (for CI)\nexport GH_TOKEN=your_token\n",[20,96390,96391,96396,96404,96408,96413,96428,96432,96437,96445,96449,96454],{"__ignoreMap":30},[34,96392,96393],{"class":36,"line":37},[34,96394,96395],{"class":40},"# Login interactively (opens browser)\n",[34,96397,96398,96400,96402],{"class":36,"line":44},[34,96399,92496],{"class":47},[34,96401,72545],{"class":54},[34,96403,9379],{"class":54},[34,96405,96406],{"class":36,"line":58},[34,96407,62],{"emptyLinePlaceholder":61},[34,96409,96410],{"class":36,"line":65},[34,96411,96412],{"class":40},"# Login with a token from stdin\n",[34,96414,96415,96417,96419,96421,96423,96425],{"class":36,"line":71},[34,96416,92496],{"class":47},[34,96418,72545],{"class":54},[34,96420,7220],{"class":54},[34,96422,94407],{"class":50},[34,96424,5470],{"class":580},[34,96426,96427],{"class":54}," token.txt\n",[34,96429,96430],{"class":36,"line":77},[34,96431,62],{"emptyLinePlaceholder":61},[34,96433,96434],{"class":36,"line":82},[34,96435,96436],{"class":40},"# Check auth status\n",[34,96438,96439,96441,96443],{"class":36,"line":88},[34,96440,92496],{"class":47},[34,96442,72545],{"class":54},[34,96444,94480],{"class":54},[34,96446,96447],{"class":36,"line":242},[34,96448,62],{"emptyLinePlaceholder":61},[34,96450,96451],{"class":36,"line":250},[34,96452,96453],{"class":40},"# Set token via environment variable (for CI)\n",[34,96455,96456,96458,96460,96462],{"class":36,"line":263},[34,96457,652],{"class":580},[34,96459,94786],{"class":181},[34,96461,1301],{"class":580},[34,96463,96464],{"class":181},"your_token\n",[11,96466,96468],{"id":96467},"repository-commands","Repository Commands",[25,96470,96472],{"className":27,"code":96471,"language":29,"meta":30,"style":30},"# Clone a repository\ngh repo clone owner/repo\n\n# Create a new repository interactively\ngh repo create\n\n# Create a public repo and clone it locally\ngh repo create my-project --public --clone\n\n# Fork a repository\ngh repo fork owner/repo --clone\n\n# View repository README\ngh repo view owner/repo\n\n# Open repository in browser\ngh repo view --web\n",[20,96473,96474,96479,96491,96495,96500,96508,96512,96517,96533,96537,96542,96556,96560,96565,96575,96579,96584],{"__ignoreMap":30},[34,96475,96476],{"class":36,"line":37},[34,96477,96478],{"class":40},"# Clone a repository\n",[34,96480,96481,96483,96486,96488],{"class":36,"line":44},[34,96482,92496],{"class":47},[34,96484,96485],{"class":54}," repo",[34,96487,7797],{"class":54},[34,96489,96490],{"class":54}," owner/repo\n",[34,96492,96493],{"class":36,"line":58},[34,96494,62],{"emptyLinePlaceholder":61},[34,96496,96497],{"class":36,"line":65},[34,96498,96499],{"class":40},"# Create a new repository interactively\n",[34,96501,96502,96504,96506],{"class":36,"line":71},[34,96503,92496],{"class":47},[34,96505,96485],{"class":54},[34,96507,95010],{"class":54},[34,96509,96510],{"class":36,"line":77},[34,96511,62],{"emptyLinePlaceholder":61},[34,96513,96514],{"class":36,"line":82},[34,96515,96516],{"class":40},"# Create a public repo and clone it locally\n",[34,96518,96519,96521,96523,96525,96527,96530],{"class":36,"line":88},[34,96520,92496],{"class":47},[34,96522,96485],{"class":54},[34,96524,7077],{"class":54},[34,96526,7636],{"class":54},[34,96528,96529],{"class":50}," --public",[34,96531,96532],{"class":50}," --clone\n",[34,96534,96535],{"class":36,"line":242},[34,96536,62],{"emptyLinePlaceholder":61},[34,96538,96539],{"class":36,"line":250},[34,96540,96541],{"class":40},"# Fork a repository\n",[34,96543,96544,96546,96548,96551,96554],{"class":36,"line":263},[34,96545,92496],{"class":47},[34,96547,96485],{"class":54},[34,96549,96550],{"class":54}," fork",[34,96552,96553],{"class":54}," owner/repo",[34,96555,96532],{"class":50},[34,96557,96558],{"class":36,"line":275},[34,96559,62],{"emptyLinePlaceholder":61},[34,96561,96562],{"class":36,"line":700},[34,96563,96564],{"class":40},"# View repository README\n",[34,96566,96567,96569,96571,96573],{"class":36,"line":706},[34,96568,92496],{"class":47},[34,96570,96485],{"class":54},[34,96572,92679],{"class":54},[34,96574,96490],{"class":54},[34,96576,96577],{"class":36,"line":715},[34,96578,62],{"emptyLinePlaceholder":61},[34,96580,96581],{"class":36,"line":725},[34,96582,96583],{"class":40},"# Open repository in browser\n",[34,96585,96586,96588,96590,96592],{"class":36,"line":734},[34,96587,92496],{"class":47},[34,96589,96485],{"class":54},[34,96591,92679],{"class":54},[34,96593,92793],{"class":50},[11,96595,96597],{"id":96596},"issue-commands","Issue Commands",[25,96599,96601],{"className":27,"code":96600,"language":29,"meta":30,"style":30},"# List open issues\ngh issue list\n\n# Create an issue\ngh issue create --title \"Bug report\" --body \"Description\"\n\n# View an issue\ngh issue view 123\n\n# Close an issue\ngh issue close 123\n\n# Reopen an issue\ngh issue reopen 123\n",[20,96602,96603,96608,96616,96620,96625,96643,96647,96652,96662,96666,96670,96680,96684,96689],{"__ignoreMap":30},[34,96604,96605],{"class":36,"line":37},[34,96606,96607],{"class":40},"# List open issues\n",[34,96609,96610,96612,96614],{"class":36,"line":44},[34,96611,92496],{"class":47},[34,96613,93612],{"class":54},[34,96615,7536],{"class":54},[34,96617,96618],{"class":36,"line":58},[34,96619,62],{"emptyLinePlaceholder":61},[34,96621,96622],{"class":36,"line":65},[34,96623,96624],{"class":40},"# Create an issue\n",[34,96626,96627,96629,96631,96633,96635,96638,96640],{"class":36,"line":71},[34,96628,92496],{"class":47},[34,96630,93612],{"class":54},[34,96632,7077],{"class":54},[34,96634,94105],{"class":50},[34,96636,96637],{"class":54}," \"Bug report\"",[34,96639,95558],{"class":50},[34,96641,96642],{"class":54}," \"Description\"\n",[34,96644,96645],{"class":36,"line":77},[34,96646,62],{"emptyLinePlaceholder":61},[34,96648,96649],{"class":36,"line":82},[34,96650,96651],{"class":40},"# View an issue\n",[34,96653,96654,96656,96658,96660],{"class":36,"line":88},[34,96655,92496],{"class":47},[34,96657,93612],{"class":54},[34,96659,92679],{"class":54},[34,96661,95893],{"class":50},[34,96663,96664],{"class":36,"line":242},[34,96665,62],{"emptyLinePlaceholder":61},[34,96667,96668],{"class":36,"line":250},[34,96669,96129],{"class":40},[34,96671,96672,96674,96676,96678],{"class":36,"line":263},[34,96673,92496],{"class":47},[34,96675,93612],{"class":54},[34,96677,96138],{"class":54},[34,96679,95893],{"class":50},[34,96681,96682],{"class":36,"line":275},[34,96683,62],{"emptyLinePlaceholder":61},[34,96685,96686],{"class":36,"line":700},[34,96687,96688],{"class":40},"# Reopen an issue\n",[34,96690,96691,96693,96695,96697],{"class":36,"line":706},[34,96692,92496],{"class":47},[34,96694,93612],{"class":54},[34,96696,96183],{"class":54},[34,96698,95893],{"class":50},[11,96700,96702],{"id":96701},"pull-request-commands","Pull Request Commands",[25,96704,96706],{"className":27,"code":96705,"language":29,"meta":30,"style":30},"# List open pull requests\ngh pr list\n\n# Create a pull request (auto-fill from commits)\ngh pr create --fill\n\n# Check out a PR locally\ngh pr checkout 456\n\n# View PR status\ngh pr status\n\n# Merge a PR (squash)\ngh pr merge 456 --squash --delete-branch\n\n# View PR checks\ngh pr checks 456\n",[20,96707,96708,96713,96722,96726,96731,96742,96746,96751,96763,96767,96772,96780,96784,96789,96807,96811,96816],{"__ignoreMap":30},[34,96709,96710],{"class":36,"line":37},[34,96711,96712],{"class":40},"# List open pull requests\n",[34,96714,96715,96717,96720],{"class":36,"line":44},[34,96716,92496],{"class":47},[34,96718,96719],{"class":54}," pr",[34,96721,7536],{"class":54},[34,96723,96724],{"class":36,"line":58},[34,96725,62],{"emptyLinePlaceholder":61},[34,96727,96728],{"class":36,"line":65},[34,96729,96730],{"class":40},"# Create a pull request (auto-fill from commits)\n",[34,96732,96733,96735,96737,96739],{"class":36,"line":71},[34,96734,92496],{"class":47},[34,96736,96719],{"class":54},[34,96738,7077],{"class":54},[34,96740,96741],{"class":50}," --fill\n",[34,96743,96744],{"class":36,"line":77},[34,96745,62],{"emptyLinePlaceholder":61},[34,96747,96748],{"class":36,"line":82},[34,96749,96750],{"class":40},"# Check out a PR locally\n",[34,96752,96753,96755,96757,96760],{"class":36,"line":88},[34,96754,92496],{"class":47},[34,96756,96719],{"class":54},[34,96758,96759],{"class":54}," checkout",[34,96761,96762],{"class":50}," 456\n",[34,96764,96765],{"class":36,"line":242},[34,96766,62],{"emptyLinePlaceholder":61},[34,96768,96769],{"class":36,"line":250},[34,96770,96771],{"class":40},"# View PR status\n",[34,96773,96774,96776,96778],{"class":36,"line":263},[34,96775,92496],{"class":47},[34,96777,96719],{"class":54},[34,96779,94480],{"class":54},[34,96781,96782],{"class":36,"line":275},[34,96783,62],{"emptyLinePlaceholder":61},[34,96785,96786],{"class":36,"line":700},[34,96787,96788],{"class":40},"# Merge a PR (squash)\n",[34,96790,96791,96793,96795,96798,96801,96804],{"class":36,"line":706},[34,96792,92496],{"class":47},[34,96794,96719],{"class":54},[34,96796,96797],{"class":54}," merge",[34,96799,96800],{"class":50}," 456",[34,96802,96803],{"class":50}," --squash",[34,96805,96806],{"class":50}," --delete-branch\n",[34,96808,96809],{"class":36,"line":715},[34,96810,62],{"emptyLinePlaceholder":61},[34,96812,96813],{"class":36,"line":725},[34,96814,96815],{"class":40},"# View PR checks\n",[34,96817,96818,96820,96822,96825],{"class":36,"line":734},[34,96819,92496],{"class":47},[34,96821,96719],{"class":54},[34,96823,96824],{"class":54}," checks",[34,96826,96762],{"class":50},[11,96828,96830],{"id":96829},"release-commands","Release Commands",[25,96832,96834],{"className":27,"code":96833,"language":29,"meta":30,"style":30},"# Create a release\ngh release create v1.0.0 --title \"v1.0.0\" --notes \"Release notes\"\n\n# Auto-generate release notes\ngh release create v1.0.0 --generate-notes\n\n# List releases\ngh release list\n\n# Upload assets to a release\ngh release upload v1.0.0 ./dist/*.tar.gz\n",[20,96835,96836,96841,96864,96868,96873,96886,96890,96895,96903,96907,96912],{"__ignoreMap":30},[34,96837,96838],{"class":36,"line":37},[34,96839,96840],{"class":40},"# Create a release\n",[34,96842,96843,96845,96848,96850,96853,96855,96858,96861],{"class":36,"line":44},[34,96844,92496],{"class":47},[34,96846,96847],{"class":54}," release",[34,96849,7077],{"class":54},[34,96851,96852],{"class":54}," v1.0.0",[34,96854,94105],{"class":50},[34,96856,96857],{"class":54}," \"v1.0.0\"",[34,96859,96860],{"class":50}," --notes",[34,96862,96863],{"class":54}," \"Release notes\"\n",[34,96865,96866],{"class":36,"line":58},[34,96867,62],{"emptyLinePlaceholder":61},[34,96869,96870],{"class":36,"line":65},[34,96871,96872],{"class":40},"# Auto-generate release notes\n",[34,96874,96875,96877,96879,96881,96883],{"class":36,"line":71},[34,96876,92496],{"class":47},[34,96878,96847],{"class":54},[34,96880,7077],{"class":54},[34,96882,96852],{"class":54},[34,96884,96885],{"class":50}," --generate-notes\n",[34,96887,96888],{"class":36,"line":77},[34,96889,62],{"emptyLinePlaceholder":61},[34,96891,96892],{"class":36,"line":82},[34,96893,96894],{"class":40},"# List releases\n",[34,96896,96897,96899,96901],{"class":36,"line":88},[34,96898,92496],{"class":47},[34,96900,96847],{"class":54},[34,96902,7536],{"class":54},[34,96904,96905],{"class":36,"line":242},[34,96906,62],{"emptyLinePlaceholder":61},[34,96908,96909],{"class":36,"line":250},[34,96910,96911],{"class":40},"# Upload assets to a release\n",[34,96913,96914,96916,96918,96920,96922,96925,96927],{"class":36,"line":263},[34,96915,92496],{"class":47},[34,96917,96847],{"class":54},[34,96919,9854],{"class":54},[34,96921,96852],{"class":54},[34,96923,96924],{"class":54}," ./dist/",[34,96926,4289],{"class":50},[34,96928,96929],{"class":54},".tar.gz\n",[11,96931,96933],{"id":96932},"github-actions-commands","GitHub Actions Commands",[25,96935,96937],{"className":27,"code":96936,"language":29,"meta":30,"style":30},"# List recent workflow runs\ngh run list\n\n# View a specific run\ngh run view 12345\n\n# Watch a run in real-time\ngh run watch 12345\n\n# Rerun failed jobs\ngh run rerun 12345 --failed\n\n# Trigger a workflow manually\ngh workflow run deploy.yml\n\n# List workflows\ngh workflow list\n",[20,96938,96939,96944,96952,96956,96960,96970,96974,96979,96989,96993,96998,97010,97014,97019,97029,97033,97038],{"__ignoreMap":30},[34,96940,96941],{"class":36,"line":37},[34,96942,96943],{"class":40},"# List recent workflow runs\n",[34,96945,96946,96948,96950],{"class":36,"line":44},[34,96947,92496],{"class":47},[34,96949,16017],{"class":54},[34,96951,7536],{"class":54},[34,96953,96954],{"class":36,"line":58},[34,96955,62],{"emptyLinePlaceholder":61},[34,96957,96958],{"class":36,"line":65},[34,96959,92670],{"class":40},[34,96961,96962,96964,96966,96968],{"class":36,"line":71},[34,96963,92496],{"class":47},[34,96965,16017],{"class":54},[34,96967,92679],{"class":54},[34,96969,92682],{"class":50},[34,96971,96972],{"class":36,"line":77},[34,96973,62],{"emptyLinePlaceholder":61},[34,96975,96976],{"class":36,"line":82},[34,96977,96978],{"class":40},"# Watch a run in real-time\n",[34,96980,96981,96983,96985,96987],{"class":36,"line":88},[34,96982,92496],{"class":47},[34,96984,16017],{"class":54},[34,96986,16157],{"class":54},[34,96988,92682],{"class":50},[34,96990,96991],{"class":36,"line":242},[34,96992,62],{"emptyLinePlaceholder":61},[34,96994,96995],{"class":36,"line":250},[34,96996,96997],{"class":40},"# Rerun failed jobs\n",[34,96999,97000,97002,97004,97006,97008],{"class":36,"line":263},[34,97001,92496],{"class":47},[34,97003,16017],{"class":54},[34,97005,92880],{"class":54},[34,97007,92702],{"class":50},[34,97009,92904],{"class":50},[34,97011,97012],{"class":36,"line":275},[34,97013,62],{"emptyLinePlaceholder":61},[34,97015,97016],{"class":36,"line":700},[34,97017,97018],{"class":40},"# Trigger a workflow manually\n",[34,97020,97021,97023,97025,97027],{"class":36,"line":706},[34,97022,92496],{"class":47},[34,97024,93065],{"class":54},[34,97026,16017],{"class":54},[34,97028,92568],{"class":54},[34,97030,97031],{"class":36,"line":715},[34,97032,62],{"emptyLinePlaceholder":61},[34,97034,97035],{"class":36,"line":725},[34,97036,97037],{"class":40},"# List workflows\n",[34,97039,97040,97042,97044],{"class":36,"line":734},[34,97041,92496],{"class":47},[34,97043,93065],{"class":54},[34,97045,7536],{"class":54},[11,97047,97049],{"id":97048},"search-commands","Search Commands",[25,97051,97053],{"className":27,"code":97052,"language":29,"meta":30,"style":30},"# Search repositories\ngh search repos \"cli tool\" --language=go --stars=\">100\"\n\n# Search issues\ngh search issues \"memory leak\" --repo owner/repo\n\n# Search pull requests\ngh search prs \"fix bug\" --state merged\n\n# Search code\ngh search code \"function main\" --language go\n",[20,97054,97055,97060,97081,97085,97090,97107,97111,97116,97133,97137,97142],{"__ignoreMap":30},[34,97056,97057],{"class":36,"line":37},[34,97058,97059],{"class":40},"# Search repositories\n",[34,97061,97062,97064,97066,97069,97072,97075,97078],{"class":36,"line":44},[34,97063,92496],{"class":47},[34,97065,5870],{"class":54},[34,97067,97068],{"class":54}," repos",[34,97070,97071],{"class":54}," \"cli tool\"",[34,97073,97074],{"class":50}," --language=go",[34,97076,97077],{"class":50}," --stars=",[34,97079,97080],{"class":54},"\">100\"\n",[34,97082,97083],{"class":36,"line":58},[34,97084,62],{"emptyLinePlaceholder":61},[34,97086,97087],{"class":36,"line":65},[34,97088,97089],{"class":40},"# Search issues\n",[34,97091,97092,97094,97096,97099,97102,97105],{"class":36,"line":71},[34,97093,92496],{"class":47},[34,97095,5870],{"class":54},[34,97097,97098],{"class":54}," issues",[34,97100,97101],{"class":54}," \"memory leak\"",[34,97103,97104],{"class":50}," --repo",[34,97106,96490],{"class":54},[34,97108,97109],{"class":36,"line":77},[34,97110,62],{"emptyLinePlaceholder":61},[34,97112,97113],{"class":36,"line":82},[34,97114,97115],{"class":40},"# Search pull requests\n",[34,97117,97118,97120,97122,97125,97128,97130],{"class":36,"line":88},[34,97119,92496],{"class":47},[34,97121,5870],{"class":54},[34,97123,97124],{"class":54}," prs",[34,97126,97127],{"class":54}," \"fix bug\"",[34,97129,95730],{"class":50},[34,97131,97132],{"class":54}," merged\n",[34,97134,97135],{"class":36,"line":242},[34,97136,62],{"emptyLinePlaceholder":61},[34,97138,97139],{"class":36,"line":250},[34,97140,97141],{"class":40},"# Search code\n",[34,97143,97144,97146,97148,97151,97154,97157],{"class":36,"line":263},[34,97145,92496],{"class":47},[34,97147,5870],{"class":54},[34,97149,97150],{"class":54}," code",[34,97152,97153],{"class":54}," \"function main\"",[34,97155,97156],{"class":50}," --language",[34,97158,97159],{"class":54}," go\n",[11,97161,97163],{"id":97162},"global-flags","Global Flags",[25,97165,97167],{"className":27,"code":97166,"language":29,"meta":30,"style":30},"# Target a different repository\ngh issue list --repo owner/other-repo\ngh pr list -R owner/other-repo\n\n# Output as JSON\ngh pr list --json number,title,state\n\n# Use jq to filter JSON output\ngh pr list --json number,title --jq '.[].title'\n\n# Open result in browser\ngh pr view 123 --web\n",[20,97168,97169,97174,97186,97199,97203,97208,97222,97226,97231,97249,97253,97258],{"__ignoreMap":30},[34,97170,97171],{"class":36,"line":37},[34,97172,97173],{"class":40},"# Target a different repository\n",[34,97175,97176,97178,97180,97182,97184],{"class":36,"line":44},[34,97177,92496],{"class":47},[34,97179,93612],{"class":54},[34,97181,6345],{"class":54},[34,97183,97104],{"class":50},[34,97185,96260],{"class":54},[34,97187,97188,97190,97192,97194,97197],{"class":36,"line":58},[34,97189,92496],{"class":47},[34,97191,96719],{"class":54},[34,97193,6345],{"class":54},[34,97195,97196],{"class":50}," -R",[34,97198,96260],{"class":54},[34,97200,97201],{"class":36,"line":65},[34,97202,62],{"emptyLinePlaceholder":61},[34,97204,97205],{"class":36,"line":71},[34,97206,97207],{"class":40},"# Output as JSON\n",[34,97209,97210,97212,97214,97216,97219],{"class":36,"line":77},[34,97211,92496],{"class":47},[34,97213,96719],{"class":54},[34,97215,6345],{"class":54},[34,97217,97218],{"class":50}," --json",[34,97220,97221],{"class":54}," number,title,state\n",[34,97223,97224],{"class":36,"line":82},[34,97225,62],{"emptyLinePlaceholder":61},[34,97227,97228],{"class":36,"line":88},[34,97229,97230],{"class":40},"# Use jq to filter JSON output\n",[34,97232,97233,97235,97237,97239,97241,97244,97246],{"class":36,"line":242},[34,97234,92496],{"class":47},[34,97236,96719],{"class":54},[34,97238,6345],{"class":54},[34,97240,97218],{"class":50},[34,97242,97243],{"class":54}," number,title",[34,97245,94294],{"class":50},[34,97247,97248],{"class":54}," '.[].title'\n",[34,97250,97251],{"class":36,"line":250},[34,97252,62],{"emptyLinePlaceholder":61},[34,97254,97255],{"class":36,"line":263},[34,97256,97257],{"class":40},"# Open result in browser\n",[34,97259,97260,97262,97264,97266,97268],{"class":36,"line":275},[34,97261,92496],{"class":47},[34,97263,96719],{"class":54},[34,97265,92679],{"class":54},[34,97267,93448],{"class":50},[34,97269,92793],{"class":50},[388,97271,93387],{},{"title":30,"searchDepth":44,"depth":44,"links":97273},[97274,97275,97276,97277,97278,97279,97280,97281,97282],{"id":96,"depth":44,"text":97},{"id":9361,"depth":44,"text":9362},{"id":96467,"depth":44,"text":96468},{"id":96596,"depth":44,"text":96597},{"id":96701,"depth":44,"text":96702},{"id":96829,"depth":44,"text":96830},{"id":96932,"depth":44,"text":96933},{"id":97048,"depth":44,"text":97049},{"id":97162,"depth":44,"text":97163},"GitHub CLI (gh) commands for managing repositories, issues, pull requests, releases, and Actions from the terminal.",{},"/gh/overview",{"title":96304,"description":97283},"gh/overview",[92496,93405,411,7794,557],"zBScafrC6VxWsmIgl54-G4AF8DZYd8RS3Z_jDbAaCoU",{"id":97291,"title":97292,"body":97293,"date":402,"description":98236,"extension":404,"meta":98237,"navigation":61,"order":71,"path":98238,"seo":98239,"stem":98240,"subject":92496,"tags":98241,"__hash__":98244},"topics/gh/pull-requests.md","Pull Requests",{"type":8,"value":97294,"toc":98227},[97295,97297,97486,97488,97703,97707,97765,97769,97865,97869,97931,97935,98047,98051,98225],[11,97296,94869],{"id":72666},[25,97298,97300],{"className":27,"code":97299,"language":29,"meta":30,"style":30},"# Create a PR interactively\ngh pr create\n\n# Auto-fill title and body from commits\ngh pr create --fill\n\n# Create with explicit title and body\ngh pr create --title \"Fix login bug\" --body \"Resolves #123\"\n\n# Create a draft PR\ngh pr create --draft --fill\n\n# Set base branch explicitly\ngh pr create --base develop --fill\n\n# Request reviewers\ngh pr create --reviewer monalisa,hubot --reviewer myorg/team-name --fill\n\n# Add labels and project\ngh pr create --label \"bug\" --project \"Roadmap\" --fill\n\n# Open browser to create PR\ngh pr create --web\n",[20,97301,97302,97307,97315,97319,97324,97334,97338,97343,97361,97365,97370,97383,97387,97392,97408,97412,97417,97438,97442,97447,97467,97471,97476],{"__ignoreMap":30},[34,97303,97304],{"class":36,"line":37},[34,97305,97306],{"class":40},"# Create a PR interactively\n",[34,97308,97309,97311,97313],{"class":36,"line":44},[34,97310,92496],{"class":47},[34,97312,96719],{"class":54},[34,97314,95010],{"class":54},[34,97316,97317],{"class":36,"line":58},[34,97318,62],{"emptyLinePlaceholder":61},[34,97320,97321],{"class":36,"line":65},[34,97322,97323],{"class":40},"# Auto-fill title and body from commits\n",[34,97325,97326,97328,97330,97332],{"class":36,"line":71},[34,97327,92496],{"class":47},[34,97329,96719],{"class":54},[34,97331,7077],{"class":54},[34,97333,96741],{"class":50},[34,97335,97336],{"class":36,"line":77},[34,97337,62],{"emptyLinePlaceholder":61},[34,97339,97340],{"class":36,"line":82},[34,97341,97342],{"class":40},"# Create with explicit title and body\n",[34,97344,97345,97347,97349,97351,97353,97356,97358],{"class":36,"line":88},[34,97346,92496],{"class":47},[34,97348,96719],{"class":54},[34,97350,7077],{"class":54},[34,97352,94105],{"class":50},[34,97354,97355],{"class":54}," \"Fix login bug\"",[34,97357,95558],{"class":50},[34,97359,97360],{"class":54}," \"Resolves #123\"\n",[34,97362,97363],{"class":36,"line":242},[34,97364,62],{"emptyLinePlaceholder":61},[34,97366,97367],{"class":36,"line":250},[34,97368,97369],{"class":40},"# Create a draft PR\n",[34,97371,97372,97374,97376,97378,97381],{"class":36,"line":263},[34,97373,92496],{"class":47},[34,97375,96719],{"class":54},[34,97377,7077],{"class":54},[34,97379,97380],{"class":50}," --draft",[34,97382,96741],{"class":50},[34,97384,97385],{"class":36,"line":275},[34,97386,62],{"emptyLinePlaceholder":61},[34,97388,97389],{"class":36,"line":700},[34,97390,97391],{"class":40},"# Set base branch explicitly\n",[34,97393,97394,97396,97398,97400,97403,97406],{"class":36,"line":706},[34,97395,92496],{"class":47},[34,97397,96719],{"class":54},[34,97399,7077],{"class":54},[34,97401,97402],{"class":50}," --base",[34,97404,97405],{"class":54}," develop",[34,97407,96741],{"class":50},[34,97409,97410],{"class":36,"line":715},[34,97411,62],{"emptyLinePlaceholder":61},[34,97413,97414],{"class":36,"line":725},[34,97415,97416],{"class":40},"# Request reviewers\n",[34,97418,97419,97421,97423,97425,97428,97431,97433,97436],{"class":36,"line":734},[34,97420,92496],{"class":47},[34,97422,96719],{"class":54},[34,97424,7077],{"class":54},[34,97426,97427],{"class":50}," --reviewer",[34,97429,97430],{"class":54}," monalisa,hubot",[34,97432,97427],{"class":50},[34,97434,97435],{"class":54}," myorg/team-name",[34,97437,96741],{"class":50},[34,97439,97440],{"class":36,"line":742},[34,97441,62],{"emptyLinePlaceholder":61},[34,97443,97444],{"class":36,"line":748},[34,97445,97446],{"class":40},"# Add labels and project\n",[34,97448,97449,97451,97453,97455,97457,97459,97462,97465],{"class":36,"line":754},[34,97450,92496],{"class":47},[34,97452,96719],{"class":54},[34,97454,7077],{"class":54},[34,97456,95614],{"class":50},[34,97458,95767],{"class":54},[34,97460,97461],{"class":50}," --project",[34,97463,97464],{"class":54}," \"Roadmap\"",[34,97466,96741],{"class":50},[34,97468,97469],{"class":36,"line":759},[34,97470,62],{"emptyLinePlaceholder":61},[34,97472,97473],{"class":36,"line":771},[34,97474,97475],{"class":40},"# Open browser to create PR\n",[34,97477,97478,97480,97482,97484],{"class":36,"line":794},[34,97479,92496],{"class":47},[34,97481,96719],{"class":54},[34,97483,7077],{"class":54},[34,97485,92793],{"class":50},[11,97487,95064],{"id":95063},[25,97489,97491],{"className":27,"code":97490,"language":29,"meta":30,"style":30},"# List open PRs\ngh pr list\n\n# List PRs authored by you\ngh pr list --author \"@me\"\n\n# List closed or merged PRs\ngh pr list --state closed\ngh pr list --state merged\n\n# Filter by label\ngh pr list --label \"bug\"\n\n# Filter by base branch\ngh pr list --base main\n\n# Filter by head branch\ngh pr list --head \"feature/my-branch\"\n\n# Search with query syntax\ngh pr list --search \"status:success review:required\"\n\n# View a specific PR\ngh pr view 456\n\n# View PR in browser\ngh pr view 456 --web\n\n# Show PRs relevant to you\ngh pr status\n",[20,97492,97493,97498,97506,97510,97515,97527,97531,97536,97549,97561,97565,97569,97581,97585,97590,97602,97606,97611,97625,97629,97633,97646,97650,97655,97665,97669,97674,97686,97690,97695],{"__ignoreMap":30},[34,97494,97495],{"class":36,"line":37},[34,97496,97497],{"class":40},"# List open PRs\n",[34,97499,97500,97502,97504],{"class":36,"line":44},[34,97501,92496],{"class":47},[34,97503,96719],{"class":54},[34,97505,7536],{"class":54},[34,97507,97508],{"class":36,"line":58},[34,97509,62],{"emptyLinePlaceholder":61},[34,97511,97512],{"class":36,"line":65},[34,97513,97514],{"class":40},"# List PRs authored by you\n",[34,97516,97517,97519,97521,97523,97525],{"class":36,"line":71},[34,97518,92496],{"class":47},[34,97520,96719],{"class":54},[34,97522,6345],{"class":54},[34,97524,95826],{"class":50},[34,97526,95589],{"class":54},[34,97528,97529],{"class":36,"line":77},[34,97530,62],{"emptyLinePlaceholder":61},[34,97532,97533],{"class":36,"line":82},[34,97534,97535],{"class":40},"# List closed or merged PRs\n",[34,97537,97538,97540,97542,97544,97546],{"class":36,"line":88},[34,97539,92496],{"class":47},[34,97541,96719],{"class":54},[34,97543,6345],{"class":54},[34,97545,95730],{"class":50},[34,97547,97548],{"class":54}," closed\n",[34,97550,97551,97553,97555,97557,97559],{"class":36,"line":242},[34,97552,92496],{"class":47},[34,97554,96719],{"class":54},[34,97556,6345],{"class":54},[34,97558,95730],{"class":50},[34,97560,97132],{"class":54},[34,97562,97563],{"class":36,"line":250},[34,97564,62],{"emptyLinePlaceholder":61},[34,97566,97567],{"class":36,"line":263},[34,97568,95741],{"class":40},[34,97570,97571,97573,97575,97577,97579],{"class":36,"line":275},[34,97572,92496],{"class":47},[34,97574,96719],{"class":54},[34,97576,6345],{"class":54},[34,97578,95614],{"class":50},[34,97580,95754],{"class":54},[34,97582,97583],{"class":36,"line":700},[34,97584,62],{"emptyLinePlaceholder":61},[34,97586,97587],{"class":36,"line":706},[34,97588,97589],{"class":40},"# Filter by base branch\n",[34,97591,97592,97594,97596,97598,97600],{"class":36,"line":715},[34,97593,92496],{"class":47},[34,97595,96719],{"class":54},[34,97597,6345],{"class":54},[34,97599,97402],{"class":50},[34,97601,92545],{"class":54},[34,97603,97604],{"class":36,"line":725},[34,97605,62],{"emptyLinePlaceholder":61},[34,97607,97608],{"class":36,"line":734},[34,97609,97610],{"class":40},"# Filter by head branch\n",[34,97612,97613,97615,97617,97619,97622],{"class":36,"line":742},[34,97614,92496],{"class":47},[34,97616,96719],{"class":54},[34,97618,6345],{"class":54},[34,97620,97621],{"class":50}," --head",[34,97623,97624],{"class":54}," \"feature/my-branch\"\n",[34,97626,97627],{"class":36,"line":748},[34,97628,62],{"emptyLinePlaceholder":61},[34,97630,97631],{"class":36,"line":754},[34,97632,95859],{"class":40},[34,97634,97635,97637,97639,97641,97643],{"class":36,"line":759},[34,97636,92496],{"class":47},[34,97638,96719],{"class":54},[34,97640,6345],{"class":54},[34,97642,95870],{"class":50},[34,97644,97645],{"class":54}," \"status:success review:required\"\n",[34,97647,97648],{"class":36,"line":771},[34,97649,62],{"emptyLinePlaceholder":61},[34,97651,97652],{"class":36,"line":794},[34,97653,97654],{"class":40},"# View a specific PR\n",[34,97656,97657,97659,97661,97663],{"class":36,"line":824},[34,97658,92496],{"class":47},[34,97660,96719],{"class":54},[34,97662,92679],{"class":54},[34,97664,96762],{"class":50},[34,97666,97667],{"class":36,"line":830},[34,97668,62],{"emptyLinePlaceholder":61},[34,97670,97671],{"class":36,"line":839},[34,97672,97673],{"class":40},"# View PR in browser\n",[34,97675,97676,97678,97680,97682,97684],{"class":36,"line":854},[34,97677,92496],{"class":47},[34,97679,96719],{"class":54},[34,97681,92679],{"class":54},[34,97683,96800],{"class":50},[34,97685,92793],{"class":50},[34,97687,97688],{"class":36,"line":860},[34,97689,62],{"emptyLinePlaceholder":61},[34,97691,97692],{"class":36,"line":865},[34,97693,97694],{"class":40},"# Show PRs relevant to you\n",[34,97696,97697,97699,97701],{"class":36,"line":870},[34,97698,92496],{"class":47},[34,97700,96719],{"class":54},[34,97702,94480],{"class":54},[11,97704,97706],{"id":97705},"checkout-diff","Checkout & Diff",[25,97708,97710],{"className":27,"code":97709,"language":29,"meta":30,"style":30},"# Check out a PR locally\ngh pr checkout 456\n\n# Check out by branch name\ngh pr checkout feature-branch\n\n# View the diff for a PR\ngh pr diff 456\n",[20,97711,97712,97716,97726,97730,97735,97746,97750,97755],{"__ignoreMap":30},[34,97713,97714],{"class":36,"line":37},[34,97715,96750],{"class":40},[34,97717,97718,97720,97722,97724],{"class":36,"line":44},[34,97719,92496],{"class":47},[34,97721,96719],{"class":54},[34,97723,96759],{"class":54},[34,97725,96762],{"class":50},[34,97727,97728],{"class":36,"line":58},[34,97729,62],{"emptyLinePlaceholder":61},[34,97731,97732],{"class":36,"line":65},[34,97733,97734],{"class":40},"# Check out by branch name\n",[34,97736,97737,97739,97741,97743],{"class":36,"line":71},[34,97738,92496],{"class":47},[34,97740,96719],{"class":54},[34,97742,96759],{"class":54},[34,97744,97745],{"class":54}," feature-branch\n",[34,97747,97748],{"class":36,"line":77},[34,97749,62],{"emptyLinePlaceholder":61},[34,97751,97752],{"class":36,"line":82},[34,97753,97754],{"class":40},"# View the diff for a PR\n",[34,97756,97757,97759,97761,97763],{"class":36,"line":88},[34,97758,92496],{"class":47},[34,97760,96719],{"class":54},[34,97762,7554],{"class":54},[34,97764,96762],{"class":50},[11,97766,97768],{"id":97767},"review","Review",[25,97770,97772],{"className":27,"code":97771,"language":29,"meta":30,"style":30},"# Approve the PR of the current branch\ngh pr review --approve\n\n# Request changes\ngh pr review 456 --request-changes --body \"Please fix the tests\"\n\n# Leave a comment\ngh pr review 456 --comment --body \"Looks mostly good, minor nit\"\n\n# Review a specific PR\ngh pr review 456 --approve\n",[20,97773,97774,97779,97791,97795,97800,97818,97822,97827,97844,97848,97853],{"__ignoreMap":30},[34,97775,97776],{"class":36,"line":37},[34,97777,97778],{"class":40},"# Approve the PR of the current branch\n",[34,97780,97781,97783,97785,97788],{"class":36,"line":44},[34,97782,92496],{"class":47},[34,97784,96719],{"class":54},[34,97786,97787],{"class":54}," review",[34,97789,97790],{"class":50}," --approve\n",[34,97792,97793],{"class":36,"line":58},[34,97794,62],{"emptyLinePlaceholder":61},[34,97796,97797],{"class":36,"line":65},[34,97798,97799],{"class":40},"# Request changes\n",[34,97801,97802,97804,97806,97808,97810,97813,97815],{"class":36,"line":71},[34,97803,92496],{"class":47},[34,97805,96719],{"class":54},[34,97807,97787],{"class":54},[34,97809,96800],{"class":50},[34,97811,97812],{"class":50}," --request-changes",[34,97814,95558],{"class":50},[34,97816,97817],{"class":54}," \"Please fix the tests\"\n",[34,97819,97820],{"class":36,"line":77},[34,97821,62],{"emptyLinePlaceholder":61},[34,97823,97824],{"class":36,"line":82},[34,97825,97826],{"class":40},"# Leave a comment\n",[34,97828,97829,97831,97833,97835,97837,97839,97841],{"class":36,"line":88},[34,97830,92496],{"class":47},[34,97832,96719],{"class":54},[34,97834,97787],{"class":54},[34,97836,96800],{"class":50},[34,97838,96162],{"class":50},[34,97840,95558],{"class":50},[34,97842,97843],{"class":54}," \"Looks mostly good, minor nit\"\n",[34,97845,97846],{"class":36,"line":242},[34,97847,62],{"emptyLinePlaceholder":61},[34,97849,97850],{"class":36,"line":250},[34,97851,97852],{"class":40},"# Review a specific PR\n",[34,97854,97855,97857,97859,97861,97863],{"class":36,"line":263},[34,97856,92496],{"class":47},[34,97858,96719],{"class":54},[34,97860,97787],{"class":54},[34,97862,96800],{"class":50},[34,97864,97790],{"class":50},[11,97866,97868],{"id":97867},"ci-checks","CI Checks",[25,97870,97872],{"className":27,"code":97871,"language":29,"meta":30,"style":30},"# View all checks for a PR\ngh pr checks 456\n\n# Watch checks until they complete\ngh pr checks 456 --watch\n\n# View checks in browser\ngh pr checks 456 --web\n",[20,97873,97874,97879,97889,97893,97898,97910,97914,97919],{"__ignoreMap":30},[34,97875,97876],{"class":36,"line":37},[34,97877,97878],{"class":40},"# View all checks for a PR\n",[34,97880,97881,97883,97885,97887],{"class":36,"line":44},[34,97882,92496],{"class":47},[34,97884,96719],{"class":54},[34,97886,96824],{"class":54},[34,97888,96762],{"class":50},[34,97890,97891],{"class":36,"line":58},[34,97892,62],{"emptyLinePlaceholder":61},[34,97894,97895],{"class":36,"line":65},[34,97896,97897],{"class":40},"# Watch checks until they complete\n",[34,97899,97900,97902,97904,97906,97908],{"class":36,"line":71},[34,97901,92496],{"class":47},[34,97903,96719],{"class":54},[34,97905,96824],{"class":54},[34,97907,96800],{"class":50},[34,97909,17501],{"class":50},[34,97911,97912],{"class":36,"line":77},[34,97913,62],{"emptyLinePlaceholder":61},[34,97915,97916],{"class":36,"line":82},[34,97917,97918],{"class":40},"# View checks in browser\n",[34,97920,97921,97923,97925,97927,97929],{"class":36,"line":88},[34,97922,92496],{"class":47},[34,97924,96719],{"class":54},[34,97926,96824],{"class":54},[34,97928,96800],{"class":50},[34,97930,92793],{"class":50},[11,97932,97934],{"id":97933},"merge","Merge",[25,97936,97938],{"className":27,"code":97937,"language":29,"meta":30,"style":30},"# Merge using the default merge commit strategy\ngh pr merge 456\n\n# Squash and merge, delete branch after\ngh pr merge 456 --squash --delete-branch\n\n# Rebase and merge\ngh pr merge 456 --rebase\n\n# Enable auto-merge (merges when checks pass)\ngh pr merge 456 --auto --squash\n\n# Disable auto-merge\ngh pr merge 456 --disable-auto\n",[20,97939,97940,97945,97955,97959,97964,97978,97982,97987,98000,98004,98009,98025,98029,98034],{"__ignoreMap":30},[34,97941,97942],{"class":36,"line":37},[34,97943,97944],{"class":40},"# Merge using the default merge commit strategy\n",[34,97946,97947,97949,97951,97953],{"class":36,"line":44},[34,97948,92496],{"class":47},[34,97950,96719],{"class":54},[34,97952,96797],{"class":54},[34,97954,96762],{"class":50},[34,97956,97957],{"class":36,"line":58},[34,97958,62],{"emptyLinePlaceholder":61},[34,97960,97961],{"class":36,"line":65},[34,97962,97963],{"class":40},"# Squash and merge, delete branch after\n",[34,97965,97966,97968,97970,97972,97974,97976],{"class":36,"line":71},[34,97967,92496],{"class":47},[34,97969,96719],{"class":54},[34,97971,96797],{"class":54},[34,97973,96800],{"class":50},[34,97975,96803],{"class":50},[34,97977,96806],{"class":50},[34,97979,97980],{"class":36,"line":77},[34,97981,62],{"emptyLinePlaceholder":61},[34,97983,97984],{"class":36,"line":82},[34,97985,97986],{"class":40},"# Rebase and merge\n",[34,97988,97989,97991,97993,97995,97997],{"class":36,"line":88},[34,97990,92496],{"class":47},[34,97992,96719],{"class":54},[34,97994,96797],{"class":54},[34,97996,96800],{"class":50},[34,97998,97999],{"class":50}," --rebase\n",[34,98001,98002],{"class":36,"line":242},[34,98003,62],{"emptyLinePlaceholder":61},[34,98005,98006],{"class":36,"line":250},[34,98007,98008],{"class":40},"# Enable auto-merge (merges when checks pass)\n",[34,98010,98011,98013,98015,98017,98019,98022],{"class":36,"line":263},[34,98012,92496],{"class":47},[34,98014,96719],{"class":54},[34,98016,96797],{"class":54},[34,98018,96800],{"class":50},[34,98020,98021],{"class":50}," --auto",[34,98023,98024],{"class":50}," --squash\n",[34,98026,98027],{"class":36,"line":275},[34,98028,62],{"emptyLinePlaceholder":61},[34,98030,98031],{"class":36,"line":700},[34,98032,98033],{"class":40},"# Disable auto-merge\n",[34,98035,98036,98038,98040,98042,98044],{"class":36,"line":706},[34,98037,92496],{"class":47},[34,98039,96719],{"class":54},[34,98041,96797],{"class":54},[34,98043,96800],{"class":50},[34,98045,98046],{"class":50}," --disable-auto\n",[11,98048,98050],{"id":98049},"edit-manage","Edit & Manage",[25,98052,98054],{"className":27,"code":98053,"language":29,"meta":30,"style":30},"# Edit PR title or body\ngh pr edit 456 --title \"New title\"\n\n# Add/remove labels\ngh pr edit 456 --add-label \"reviewed\" --remove-label \"needs-review\"\n\n# Mark a draft PR as ready for review\ngh pr ready 456\n\n# Convert a PR back to draft\ngh pr ready 456 --undo\n\n# Close a PR without merging\ngh pr close 456\n\n# Reopen a closed PR\ngh pr reopen 456\n\n# Update PR branch to latest base\ngh pr update-branch 456\n\n# Revert a merged PR (creates a new revert PR)\ngh pr revert 456\n",[20,98055,98056,98061,98076,98080,98085,98105,98109,98114,98125,98129,98134,98147,98151,98156,98166,98170,98175,98185,98189,98194,98205,98209,98214],{"__ignoreMap":30},[34,98057,98058],{"class":36,"line":37},[34,98059,98060],{"class":40},"# Edit PR title or body\n",[34,98062,98063,98065,98067,98069,98071,98073],{"class":36,"line":44},[34,98064,92496],{"class":47},[34,98066,96719],{"class":54},[34,98068,95334],{"class":54},[34,98070,96800],{"class":50},[34,98072,94105],{"class":50},[34,98074,98075],{"class":54}," \"New title\"\n",[34,98077,98078],{"class":36,"line":58},[34,98079,62],{"emptyLinePlaceholder":61},[34,98081,98082],{"class":36,"line":65},[34,98083,98084],{"class":40},"# Add/remove labels\n",[34,98086,98087,98089,98091,98093,98095,98097,98100,98102],{"class":36,"line":71},[34,98088,92496],{"class":47},[34,98090,96719],{"class":54},[34,98092,95334],{"class":54},[34,98094,96800],{"class":50},[34,98096,95965],{"class":50},[34,98098,98099],{"class":54}," \"reviewed\"",[34,98101,95990],{"class":50},[34,98103,98104],{"class":54}," \"needs-review\"\n",[34,98106,98107],{"class":36,"line":77},[34,98108,62],{"emptyLinePlaceholder":61},[34,98110,98111],{"class":36,"line":82},[34,98112,98113],{"class":40},"# Mark a draft PR as ready for review\n",[34,98115,98116,98118,98120,98123],{"class":36,"line":88},[34,98117,92496],{"class":47},[34,98119,96719],{"class":54},[34,98121,98122],{"class":54}," ready",[34,98124,96762],{"class":50},[34,98126,98127],{"class":36,"line":242},[34,98128,62],{"emptyLinePlaceholder":61},[34,98130,98131],{"class":36,"line":250},[34,98132,98133],{"class":40},"# Convert a PR back to draft\n",[34,98135,98136,98138,98140,98142,98144],{"class":36,"line":263},[34,98137,92496],{"class":47},[34,98139,96719],{"class":54},[34,98141,98122],{"class":54},[34,98143,96800],{"class":50},[34,98145,98146],{"class":50}," --undo\n",[34,98148,98149],{"class":36,"line":275},[34,98150,62],{"emptyLinePlaceholder":61},[34,98152,98153],{"class":36,"line":700},[34,98154,98155],{"class":40},"# Close a PR without merging\n",[34,98157,98158,98160,98162,98164],{"class":36,"line":706},[34,98159,92496],{"class":47},[34,98161,96719],{"class":54},[34,98163,96138],{"class":54},[34,98165,96762],{"class":50},[34,98167,98168],{"class":36,"line":715},[34,98169,62],{"emptyLinePlaceholder":61},[34,98171,98172],{"class":36,"line":725},[34,98173,98174],{"class":40},"# Reopen a closed PR\n",[34,98176,98177,98179,98181,98183],{"class":36,"line":734},[34,98178,92496],{"class":47},[34,98180,96719],{"class":54},[34,98182,96183],{"class":54},[34,98184,96762],{"class":50},[34,98186,98187],{"class":36,"line":742},[34,98188,62],{"emptyLinePlaceholder":61},[34,98190,98191],{"class":36,"line":748},[34,98192,98193],{"class":40},"# Update PR branch to latest base\n",[34,98195,98196,98198,98200,98203],{"class":36,"line":754},[34,98197,92496],{"class":47},[34,98199,96719],{"class":54},[34,98201,98202],{"class":54}," update-branch",[34,98204,96762],{"class":50},[34,98206,98207],{"class":36,"line":759},[34,98208,62],{"emptyLinePlaceholder":61},[34,98210,98211],{"class":36,"line":771},[34,98212,98213],{"class":40},"# Revert a merged PR (creates a new revert PR)\n",[34,98215,98216,98218,98220,98223],{"class":36,"line":794},[34,98217,92496],{"class":47},[34,98219,96719],{"class":54},[34,98221,98222],{"class":54}," revert",[34,98224,96762],{"class":50},[388,98226,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":98228},[98229,98230,98231,98232,98233,98234,98235],{"id":72666,"depth":44,"text":94869},{"id":95063,"depth":44,"text":95064},{"id":97705,"depth":44,"text":97706},{"id":97767,"depth":44,"text":97768},{"id":97867,"depth":44,"text":97868},{"id":97933,"depth":44,"text":97934},{"id":98049,"depth":44,"text":98050},"GitHub CLI commands for creating, reviewing, merging, and managing pull requests.",{},"/gh/pull-requests",{"title":97292,"description":98236},"gh/pull-requests",[92496,93405,411,98242,98243,97767,97933],"pull-request","pr","oiUNoMERne9-nmmHal-wn4sQm04Q2NM5j3fV6saX0eo",{"id":98246,"title":98247,"body":98248,"date":402,"description":98932,"extension":404,"meta":98933,"navigation":61,"order":77,"path":98934,"seo":98935,"stem":98936,"subject":92496,"tags":98937,"__hash__":98942},"topics/gh/releases.md","Releases",{"type":8,"value":98249,"toc":98924},[98250,98252,98456,98460,98559,98561,98636,98640,98726,98730,98894,98898,98922],[11,98251,94869],{"id":72666},[25,98253,98255],{"className":27,"code":98254,"language":29,"meta":30,"style":30},"# Create a release interactively\ngh release create\n\n# Create from a specific tag\ngh release create v1.2.3\n\n# Create with notes\ngh release create v1.2.3 --notes \"Bug fix release\"\n\n# Auto-generate release notes via GitHub API\ngh release create v1.2.3 --generate-notes\n\n# Create from a file of notes\ngh release create v1.2.3 --notes-file release-notes.md\n\n# Use notes from the annotated git tag\ngh release create v1.2.3 --notes-from-tag\n\n# Create as a draft (not published)\ngh release create v1.2.3 --draft --generate-notes\n\n# Create as a prerelease\ngh release create v1.2.3-beta.1 --prerelease --generate-notes\n\n# Target a specific branch instead of default\ngh release create v1.2.3 --target develop --generate-notes\n",[20,98256,98257,98262,98270,98274,98279,98290,98294,98299,98315,98319,98324,98336,98340,98345,98361,98365,98370,98383,98387,98392,98406,98410,98415,98431,98435,98440],{"__ignoreMap":30},[34,98258,98259],{"class":36,"line":37},[34,98260,98261],{"class":40},"# Create a release interactively\n",[34,98263,98264,98266,98268],{"class":36,"line":44},[34,98265,92496],{"class":47},[34,98267,96847],{"class":54},[34,98269,95010],{"class":54},[34,98271,98272],{"class":36,"line":58},[34,98273,62],{"emptyLinePlaceholder":61},[34,98275,98276],{"class":36,"line":65},[34,98277,98278],{"class":40},"# Create from a specific tag\n",[34,98280,98281,98283,98285,98287],{"class":36,"line":71},[34,98282,92496],{"class":47},[34,98284,96847],{"class":54},[34,98286,7077],{"class":54},[34,98288,98289],{"class":54}," v1.2.3\n",[34,98291,98292],{"class":36,"line":77},[34,98293,62],{"emptyLinePlaceholder":61},[34,98295,98296],{"class":36,"line":82},[34,98297,98298],{"class":40},"# Create with notes\n",[34,98300,98301,98303,98305,98307,98310,98312],{"class":36,"line":88},[34,98302,92496],{"class":47},[34,98304,96847],{"class":54},[34,98306,7077],{"class":54},[34,98308,98309],{"class":54}," v1.2.3",[34,98311,96860],{"class":50},[34,98313,98314],{"class":54}," \"Bug fix release\"\n",[34,98316,98317],{"class":36,"line":242},[34,98318,62],{"emptyLinePlaceholder":61},[34,98320,98321],{"class":36,"line":250},[34,98322,98323],{"class":40},"# Auto-generate release notes via GitHub API\n",[34,98325,98326,98328,98330,98332,98334],{"class":36,"line":263},[34,98327,92496],{"class":47},[34,98329,96847],{"class":54},[34,98331,7077],{"class":54},[34,98333,98309],{"class":54},[34,98335,96885],{"class":50},[34,98337,98338],{"class":36,"line":275},[34,98339,62],{"emptyLinePlaceholder":61},[34,98341,98342],{"class":36,"line":700},[34,98343,98344],{"class":40},"# Create from a file of notes\n",[34,98346,98347,98349,98351,98353,98355,98358],{"class":36,"line":706},[34,98348,92496],{"class":47},[34,98350,96847],{"class":54},[34,98352,7077],{"class":54},[34,98354,98309],{"class":54},[34,98356,98357],{"class":50}," --notes-file",[34,98359,98360],{"class":54}," release-notes.md\n",[34,98362,98363],{"class":36,"line":715},[34,98364,62],{"emptyLinePlaceholder":61},[34,98366,98367],{"class":36,"line":725},[34,98368,98369],{"class":40},"# Use notes from the annotated git tag\n",[34,98371,98372,98374,98376,98378,98380],{"class":36,"line":734},[34,98373,92496],{"class":47},[34,98375,96847],{"class":54},[34,98377,7077],{"class":54},[34,98379,98309],{"class":54},[34,98381,98382],{"class":50}," --notes-from-tag\n",[34,98384,98385],{"class":36,"line":742},[34,98386,62],{"emptyLinePlaceholder":61},[34,98388,98389],{"class":36,"line":748},[34,98390,98391],{"class":40},"# Create as a draft (not published)\n",[34,98393,98394,98396,98398,98400,98402,98404],{"class":36,"line":754},[34,98395,92496],{"class":47},[34,98397,96847],{"class":54},[34,98399,7077],{"class":54},[34,98401,98309],{"class":54},[34,98403,97380],{"class":50},[34,98405,96885],{"class":50},[34,98407,98408],{"class":36,"line":759},[34,98409,62],{"emptyLinePlaceholder":61},[34,98411,98412],{"class":36,"line":771},[34,98413,98414],{"class":40},"# Create as a prerelease\n",[34,98416,98417,98419,98421,98423,98426,98429],{"class":36,"line":794},[34,98418,92496],{"class":47},[34,98420,96847],{"class":54},[34,98422,7077],{"class":54},[34,98424,98425],{"class":54}," v1.2.3-beta.1",[34,98427,98428],{"class":50}," --prerelease",[34,98430,96885],{"class":50},[34,98432,98433],{"class":36,"line":824},[34,98434,62],{"emptyLinePlaceholder":61},[34,98436,98437],{"class":36,"line":830},[34,98438,98439],{"class":40},"# Target a specific branch instead of default\n",[34,98441,98442,98444,98446,98448,98450,98452,98454],{"class":36,"line":839},[34,98443,92496],{"class":47},[34,98445,96847],{"class":54},[34,98447,7077],{"class":54},[34,98449,98309],{"class":54},[34,98451,14229],{"class":50},[34,98453,97405],{"class":54},[34,98455,96885],{"class":50},[11,98457,98459],{"id":98458},"upload-assets","Upload Assets",[25,98461,98463],{"className":27,"code":98462,"language":29,"meta":30,"style":30},"# Create a release and upload assets\ngh release create v1.2.3 ./dist/app-linux.tar.gz ./dist/app-mac.tar.gz\n\n# Upload assets using a glob pattern\ngh release create v1.2.3 ./dist/*.tgz\n\n# Add a display label to an asset\ngh release create v1.2.3 \"./dist/app.tar.gz#Linux Binary\"\n\n# Upload assets to an existing release\ngh release upload v1.2.3 ./dist/*.tar.gz\n",[20,98464,98465,98470,98486,98490,98495,98512,98516,98521,98534,98538,98543],{"__ignoreMap":30},[34,98466,98467],{"class":36,"line":37},[34,98468,98469],{"class":40},"# Create a release and upload assets\n",[34,98471,98472,98474,98476,98478,98480,98483],{"class":36,"line":44},[34,98473,92496],{"class":47},[34,98475,96847],{"class":54},[34,98477,7077],{"class":54},[34,98479,98309],{"class":54},[34,98481,98482],{"class":54}," ./dist/app-linux.tar.gz",[34,98484,98485],{"class":54}," ./dist/app-mac.tar.gz\n",[34,98487,98488],{"class":36,"line":58},[34,98489,62],{"emptyLinePlaceholder":61},[34,98491,98492],{"class":36,"line":65},[34,98493,98494],{"class":40},"# Upload assets using a glob pattern\n",[34,98496,98497,98499,98501,98503,98505,98507,98509],{"class":36,"line":71},[34,98498,92496],{"class":47},[34,98500,96847],{"class":54},[34,98502,7077],{"class":54},[34,98504,98309],{"class":54},[34,98506,96924],{"class":54},[34,98508,4289],{"class":50},[34,98510,98511],{"class":54},".tgz\n",[34,98513,98514],{"class":36,"line":77},[34,98515,62],{"emptyLinePlaceholder":61},[34,98517,98518],{"class":36,"line":82},[34,98519,98520],{"class":40},"# Add a display label to an asset\n",[34,98522,98523,98525,98527,98529,98531],{"class":36,"line":88},[34,98524,92496],{"class":47},[34,98526,96847],{"class":54},[34,98528,7077],{"class":54},[34,98530,98309],{"class":54},[34,98532,98533],{"class":54}," \"./dist/app.tar.gz#Linux Binary\"\n",[34,98535,98536],{"class":36,"line":242},[34,98537,62],{"emptyLinePlaceholder":61},[34,98539,98540],{"class":36,"line":250},[34,98541,98542],{"class":40},"# Upload assets to an existing release\n",[34,98544,98545,98547,98549,98551,98553,98555,98557],{"class":36,"line":263},[34,98546,92496],{"class":47},[34,98548,96847],{"class":54},[34,98550,9854],{"class":54},[34,98552,98309],{"class":54},[34,98554,96924],{"class":54},[34,98556,4289],{"class":50},[34,98558,96929],{"class":54},[11,98560,95064],{"id":95063},[25,98562,98564],{"className":27,"code":98563,"language":29,"meta":30,"style":30},"# List all releases\ngh release list\n\n# View the latest release\ngh release view\n\n# View a specific release\ngh release view v1.2.3\n\n# Open release in browser\ngh release view v1.2.3 --web\n",[20,98565,98566,98571,98579,98583,98588,98596,98600,98605,98615,98619,98624],{"__ignoreMap":30},[34,98567,98568],{"class":36,"line":37},[34,98569,98570],{"class":40},"# List all releases\n",[34,98572,98573,98575,98577],{"class":36,"line":44},[34,98574,92496],{"class":47},[34,98576,96847],{"class":54},[34,98578,7536],{"class":54},[34,98580,98581],{"class":36,"line":58},[34,98582,62],{"emptyLinePlaceholder":61},[34,98584,98585],{"class":36,"line":65},[34,98586,98587],{"class":40},"# View the latest release\n",[34,98589,98590,98592,98594],{"class":36,"line":71},[34,98591,92496],{"class":47},[34,98593,96847],{"class":54},[34,98595,92661],{"class":54},[34,98597,98598],{"class":36,"line":77},[34,98599,62],{"emptyLinePlaceholder":61},[34,98601,98602],{"class":36,"line":82},[34,98603,98604],{"class":40},"# View a specific release\n",[34,98606,98607,98609,98611,98613],{"class":36,"line":88},[34,98608,92496],{"class":47},[34,98610,96847],{"class":54},[34,98612,92679],{"class":54},[34,98614,98289],{"class":54},[34,98616,98617],{"class":36,"line":242},[34,98618,62],{"emptyLinePlaceholder":61},[34,98620,98621],{"class":36,"line":250},[34,98622,98623],{"class":40},"# Open release in browser\n",[34,98625,98626,98628,98630,98632,98634],{"class":36,"line":263},[34,98627,92496],{"class":47},[34,98629,96847],{"class":54},[34,98631,92679],{"class":54},[34,98633,98309],{"class":54},[34,98635,92793],{"class":50},[11,98637,98639],{"id":98638},"download","Download",[25,98641,98643],{"className":27,"code":98642,"language":29,"meta":30,"style":30},"# Download the latest release assets\ngh release download\n\n# Download assets from a specific release\ngh release download v1.2.3\n\n# Download a specific asset by name pattern\ngh release download v1.2.3 --pattern \"*.tar.gz\"\n\n# Download to a specific directory\ngh release download v1.2.3 --dir ./downloads\n",[20,98644,98645,98650,98659,98663,98668,98678,98682,98687,98703,98707,98711],{"__ignoreMap":30},[34,98646,98647],{"class":36,"line":37},[34,98648,98649],{"class":40},"# Download the latest release assets\n",[34,98651,98652,98654,98656],{"class":36,"line":44},[34,98653,92496],{"class":47},[34,98655,96847],{"class":54},[34,98657,98658],{"class":54}," download\n",[34,98660,98661],{"class":36,"line":58},[34,98662,62],{"emptyLinePlaceholder":61},[34,98664,98665],{"class":36,"line":65},[34,98666,98667],{"class":40},"# Download assets from a specific release\n",[34,98669,98670,98672,98674,98676],{"class":36,"line":71},[34,98671,92496],{"class":47},[34,98673,96847],{"class":54},[34,98675,5513],{"class":54},[34,98677,98289],{"class":54},[34,98679,98680],{"class":36,"line":77},[34,98681,62],{"emptyLinePlaceholder":61},[34,98683,98684],{"class":36,"line":82},[34,98685,98686],{"class":40},"# Download a specific asset by name pattern\n",[34,98688,98689,98691,98693,98695,98697,98700],{"class":36,"line":88},[34,98690,92496],{"class":47},[34,98692,96847],{"class":54},[34,98694,5513],{"class":54},[34,98696,98309],{"class":54},[34,98698,98699],{"class":50}," --pattern",[34,98701,98702],{"class":54}," \"*.tar.gz\"\n",[34,98704,98705],{"class":36,"line":242},[34,98706,62],{"emptyLinePlaceholder":61},[34,98708,98709],{"class":36,"line":250},[34,98710,93028],{"class":40},[34,98712,98713,98715,98717,98719,98721,98723],{"class":36,"line":263},[34,98714,92496],{"class":47},[34,98716,96847],{"class":54},[34,98718,5513],{"class":54},[34,98720,98309],{"class":54},[34,98722,93041],{"class":50},[34,98724,98725],{"class":54}," ./downloads\n",[11,98727,98729],{"id":98728},"edit-delete","Edit & Delete",[25,98731,98733],{"className":27,"code":98732,"language":29,"meta":30,"style":30},"# Edit release title\ngh release edit v1.2.3 --title \"New release title\"\n\n# Update release notes\ngh release edit v1.2.3 --notes \"Updated notes\"\n\n# Publish a draft release\ngh release edit v1.2.3 --draft=false\n\n# Mark as latest\ngh release edit v1.2.3 --latest\n\n# Delete a release\ngh release delete v1.2.3 --yes\n\n# Delete a release and its associated tag\ngh release delete v1.2.3 --yes --cleanup-tag\n\n# Delete a release asset\ngh release delete-asset v1.2.3 app-linux.tar.gz --yes\n",[20,98734,98735,98740,98755,98759,98764,98779,98783,98788,98801,98805,98810,98823,98827,98832,98844,98848,98853,98869,98873,98878],{"__ignoreMap":30},[34,98736,98737],{"class":36,"line":37},[34,98738,98739],{"class":40},"# Edit release title\n",[34,98741,98742,98744,98746,98748,98750,98752],{"class":36,"line":44},[34,98743,92496],{"class":47},[34,98745,96847],{"class":54},[34,98747,95334],{"class":54},[34,98749,98309],{"class":54},[34,98751,94105],{"class":50},[34,98753,98754],{"class":54}," \"New release title\"\n",[34,98756,98757],{"class":36,"line":58},[34,98758,62],{"emptyLinePlaceholder":61},[34,98760,98761],{"class":36,"line":65},[34,98762,98763],{"class":40},"# Update release notes\n",[34,98765,98766,98768,98770,98772,98774,98776],{"class":36,"line":71},[34,98767,92496],{"class":47},[34,98769,96847],{"class":54},[34,98771,95334],{"class":54},[34,98773,98309],{"class":54},[34,98775,96860],{"class":50},[34,98777,98778],{"class":54}," \"Updated notes\"\n",[34,98780,98781],{"class":36,"line":77},[34,98782,62],{"emptyLinePlaceholder":61},[34,98784,98785],{"class":36,"line":82},[34,98786,98787],{"class":40},"# Publish a draft release\n",[34,98789,98790,98792,98794,98796,98798],{"class":36,"line":88},[34,98791,92496],{"class":47},[34,98793,96847],{"class":54},[34,98795,95334],{"class":54},[34,98797,98309],{"class":54},[34,98799,98800],{"class":50}," --draft=false\n",[34,98802,98803],{"class":36,"line":242},[34,98804,62],{"emptyLinePlaceholder":61},[34,98806,98807],{"class":36,"line":250},[34,98808,98809],{"class":40},"# Mark as latest\n",[34,98811,98812,98814,98816,98818,98820],{"class":36,"line":263},[34,98813,92496],{"class":47},[34,98815,96847],{"class":54},[34,98817,95334],{"class":54},[34,98819,98309],{"class":54},[34,98821,98822],{"class":50}," --latest\n",[34,98824,98825],{"class":36,"line":275},[34,98826,62],{"emptyLinePlaceholder":61},[34,98828,98829],{"class":36,"line":700},[34,98830,98831],{"class":40},"# Delete a release\n",[34,98833,98834,98836,98838,98840,98842],{"class":36,"line":706},[34,98835,92496],{"class":47},[34,98837,96847],{"class":54},[34,98839,9562],{"class":54},[34,98841,98309],{"class":54},[34,98843,9569],{"class":50},[34,98845,98846],{"class":36,"line":715},[34,98847,62],{"emptyLinePlaceholder":61},[34,98849,98850],{"class":36,"line":725},[34,98851,98852],{"class":40},"# Delete a release and its associated tag\n",[34,98854,98855,98857,98859,98861,98863,98866],{"class":36,"line":734},[34,98856,92496],{"class":47},[34,98858,96847],{"class":54},[34,98860,9562],{"class":54},[34,98862,98309],{"class":54},[34,98864,98865],{"class":50}," --yes",[34,98867,98868],{"class":50}," --cleanup-tag\n",[34,98870,98871],{"class":36,"line":742},[34,98872,62],{"emptyLinePlaceholder":61},[34,98874,98875],{"class":36,"line":748},[34,98876,98877],{"class":40},"# Delete a release asset\n",[34,98879,98880,98882,98884,98887,98889,98892],{"class":36,"line":754},[34,98881,92496],{"class":47},[34,98883,96847],{"class":54},[34,98885,98886],{"class":54}," delete-asset",[34,98888,98309],{"class":54},[34,98890,98891],{"class":54}," app-linux.tar.gz",[34,98893,9569],{"class":50},[11,98895,98897],{"id":98896},"verify-assets","Verify Assets",[25,98899,98901],{"className":27,"code":98900,"language":29,"meta":30,"style":30},"# Verify a release asset's attestation\ngh release verify-asset v1.2.3 app.tar.gz\n",[20,98902,98903,98908],{"__ignoreMap":30},[34,98904,98905],{"class":36,"line":37},[34,98906,98907],{"class":40},"# Verify a release asset's attestation\n",[34,98909,98910,98912,98914,98917,98919],{"class":36,"line":44},[34,98911,92496],{"class":47},[34,98913,96847],{"class":54},[34,98915,98916],{"class":54}," verify-asset",[34,98918,98309],{"class":54},[34,98920,98921],{"class":54}," app.tar.gz\n",[388,98923,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":98925},[98926,98927,98928,98929,98930,98931],{"id":72666,"depth":44,"text":94869},{"id":98458,"depth":44,"text":98459},{"id":95063,"depth":44,"text":95064},{"id":98638,"depth":44,"text":98639},{"id":98728,"depth":44,"text":98729},{"id":98896,"depth":44,"text":98897},"GitHub CLI commands for creating, managing, and publishing GitHub releases and assets.",{},"/gh/releases",{"title":98247,"description":98932},"gh/releases",[92496,93405,411,98938,98939,98940,98941],"release","tag","assets","publish","ukOHbL8z5g-IVFQlvuHUBOsDAkFhknwqHXicDKY8vs4",{"id":98944,"title":98945,"body":98946,"date":402,"description":99656,"extension":404,"meta":99657,"navigation":61,"order":58,"path":99658,"seo":99659,"stem":99660,"subject":92496,"tags":99661,"__hash__":99665},"topics/gh/repos.md","Repositories",{"type":8,"value":98947,"toc":99648},[98948,98950,99104,99108,99241,99245,99344,99346,99443,99447,99567,99571,99646],[11,98949,94869],{"id":72666},[25,98951,98953],{"className":27,"code":98952,"language":29,"meta":30,"style":30},"# Create a new repository interactively\ngh repo create\n\n# Create a public repo and clone it locally\ngh repo create my-project --public --clone\n\n# Create a private repo with description\ngh repo create my-project --private --description \"My project\"\n\n# Create a repo from current local directory\ngh repo create my-project --private --source=. --remote=origin --push\n\n# Create a repo in an organization\ngh repo create my-org/my-project --public\n\n# Create with a gitignore template and license\ngh repo create my-project --public --gitignore Node --license mit --clone\n",[20,98954,98955,98959,98967,98971,98975,98989,98993,98998,99017,99021,99026,99047,99051,99056,99069,99073,99078],{"__ignoreMap":30},[34,98956,98957],{"class":36,"line":37},[34,98958,96499],{"class":40},[34,98960,98961,98963,98965],{"class":36,"line":44},[34,98962,92496],{"class":47},[34,98964,96485],{"class":54},[34,98966,95010],{"class":54},[34,98968,98969],{"class":36,"line":58},[34,98970,62],{"emptyLinePlaceholder":61},[34,98972,98973],{"class":36,"line":65},[34,98974,96516],{"class":40},[34,98976,98977,98979,98981,98983,98985,98987],{"class":36,"line":71},[34,98978,92496],{"class":47},[34,98980,96485],{"class":54},[34,98982,7077],{"class":54},[34,98984,7636],{"class":54},[34,98986,96529],{"class":50},[34,98988,96532],{"class":50},[34,98990,98991],{"class":36,"line":77},[34,98992,62],{"emptyLinePlaceholder":61},[34,98994,98995],{"class":36,"line":82},[34,98996,98997],{"class":40},"# Create a private repo with description\n",[34,98999,99000,99002,99004,99006,99008,99011,99014],{"class":36,"line":88},[34,99001,92496],{"class":47},[34,99003,96485],{"class":54},[34,99005,7077],{"class":54},[34,99007,7636],{"class":54},[34,99009,99010],{"class":50}," --private",[34,99012,99013],{"class":50}," --description",[34,99015,99016],{"class":54}," \"My project\"\n",[34,99018,99019],{"class":36,"line":242},[34,99020,62],{"emptyLinePlaceholder":61},[34,99022,99023],{"class":36,"line":250},[34,99024,99025],{"class":40},"# Create a repo from current local directory\n",[34,99027,99028,99030,99032,99034,99036,99038,99041,99044],{"class":36,"line":263},[34,99029,92496],{"class":47},[34,99031,96485],{"class":54},[34,99033,7077],{"class":54},[34,99035,7636],{"class":54},[34,99037,99010],{"class":50},[34,99039,99040],{"class":50}," --source=.",[34,99042,99043],{"class":50}," --remote=origin",[34,99045,99046],{"class":50}," --push\n",[34,99048,99049],{"class":36,"line":275},[34,99050,62],{"emptyLinePlaceholder":61},[34,99052,99053],{"class":36,"line":700},[34,99054,99055],{"class":40},"# Create a repo in an organization\n",[34,99057,99058,99060,99062,99064,99067],{"class":36,"line":706},[34,99059,92496],{"class":47},[34,99061,96485],{"class":54},[34,99063,7077],{"class":54},[34,99065,99066],{"class":54}," my-org/my-project",[34,99068,94914],{"class":50},[34,99070,99071],{"class":36,"line":715},[34,99072,62],{"emptyLinePlaceholder":61},[34,99074,99075],{"class":36,"line":725},[34,99076,99077],{"class":40},"# Create with a gitignore template and license\n",[34,99079,99080,99082,99084,99086,99088,99090,99093,99096,99099,99102],{"class":36,"line":734},[34,99081,92496],{"class":47},[34,99083,96485],{"class":54},[34,99085,7077],{"class":54},[34,99087,7636],{"class":54},[34,99089,96529],{"class":50},[34,99091,99092],{"class":50}," --gitignore",[34,99094,99095],{"class":54}," Node",[34,99097,99098],{"class":50}," --license",[34,99100,99101],{"class":54}," mit",[34,99103,96532],{"class":50},[11,99105,99107],{"id":99106},"clone-fork","Clone & Fork",[25,99109,99111],{"className":27,"code":99110,"language":29,"meta":30,"style":30},"# Clone using OWNER/REPO format\ngh repo clone owner/repo\n\n# Clone to a custom directory\ngh repo clone owner/repo my-local-dir\n\n# Clone with extra git flags\ngh repo clone owner/repo -- --depth=1\n\n# Fork and clone in one step\ngh repo fork owner/repo --clone\n\n# Fork the current repo (inside a git repo)\ngh repo fork\n\n# Fork into an organization\ngh repo fork owner/repo --org my-org --clone\n",[20,99112,99113,99118,99128,99132,99137,99150,99154,99159,99175,99179,99184,99196,99200,99205,99214,99218,99223],{"__ignoreMap":30},[34,99114,99115],{"class":36,"line":37},[34,99116,99117],{"class":40},"# Clone using OWNER/REPO format\n",[34,99119,99120,99122,99124,99126],{"class":36,"line":44},[34,99121,92496],{"class":47},[34,99123,96485],{"class":54},[34,99125,7797],{"class":54},[34,99127,96490],{"class":54},[34,99129,99130],{"class":36,"line":58},[34,99131,62],{"emptyLinePlaceholder":61},[34,99133,99134],{"class":36,"line":65},[34,99135,99136],{"class":40},"# Clone to a custom directory\n",[34,99138,99139,99141,99143,99145,99147],{"class":36,"line":71},[34,99140,92496],{"class":47},[34,99142,96485],{"class":54},[34,99144,7797],{"class":54},[34,99146,96553],{"class":54},[34,99148,99149],{"class":54}," my-local-dir\n",[34,99151,99152],{"class":36,"line":77},[34,99153,62],{"emptyLinePlaceholder":61},[34,99155,99156],{"class":36,"line":82},[34,99157,99158],{"class":40},"# Clone with extra git flags\n",[34,99160,99161,99163,99165,99167,99169,99172],{"class":36,"line":88},[34,99162,92496],{"class":47},[34,99164,96485],{"class":54},[34,99166,7797],{"class":54},[34,99168,96553],{"class":54},[34,99170,99171],{"class":50}," --",[34,99173,99174],{"class":50}," --depth=1\n",[34,99176,99177],{"class":36,"line":242},[34,99178,62],{"emptyLinePlaceholder":61},[34,99180,99181],{"class":36,"line":250},[34,99182,99183],{"class":40},"# Fork and clone in one step\n",[34,99185,99186,99188,99190,99192,99194],{"class":36,"line":263},[34,99187,92496],{"class":47},[34,99189,96485],{"class":54},[34,99191,96550],{"class":54},[34,99193,96553],{"class":54},[34,99195,96532],{"class":50},[34,99197,99198],{"class":36,"line":275},[34,99199,62],{"emptyLinePlaceholder":61},[34,99201,99202],{"class":36,"line":700},[34,99203,99204],{"class":40},"# Fork the current repo (inside a git repo)\n",[34,99206,99207,99209,99211],{"class":36,"line":706},[34,99208,92496],{"class":47},[34,99210,96485],{"class":54},[34,99212,99213],{"class":54}," fork\n",[34,99215,99216],{"class":36,"line":715},[34,99217,62],{"emptyLinePlaceholder":61},[34,99219,99220],{"class":36,"line":725},[34,99221,99222],{"class":40},"# Fork into an organization\n",[34,99224,99225,99227,99229,99231,99233,99236,99239],{"class":36,"line":734},[34,99226,92496],{"class":47},[34,99228,96485],{"class":54},[34,99230,96550],{"class":54},[34,99232,96553],{"class":54},[34,99234,99235],{"class":50}," --org",[34,99237,99238],{"class":54}," my-org",[34,99240,96532],{"class":50},[11,99242,99244],{"id":99243},"view-browse","View & Browse",[25,99246,99248],{"className":27,"code":99247,"language":29,"meta":30,"style":30},"# View a repository's README\ngh repo view owner/repo\n\n# Open repository in browser\ngh repo view owner/repo --web\n\n# Open current repo in browser\ngh repo view --web\n\n# List your repositories\ngh repo list\n\n# List repos for another user or org\ngh repo list my-org --limit 50\n",[20,99249,99250,99255,99265,99269,99273,99285,99289,99294,99304,99308,99313,99321,99325,99330],{"__ignoreMap":30},[34,99251,99252],{"class":36,"line":37},[34,99253,99254],{"class":40},"# View a repository's README\n",[34,99256,99257,99259,99261,99263],{"class":36,"line":44},[34,99258,92496],{"class":47},[34,99260,96485],{"class":54},[34,99262,92679],{"class":54},[34,99264,96490],{"class":54},[34,99266,99267],{"class":36,"line":58},[34,99268,62],{"emptyLinePlaceholder":61},[34,99270,99271],{"class":36,"line":65},[34,99272,96583],{"class":40},[34,99274,99275,99277,99279,99281,99283],{"class":36,"line":71},[34,99276,92496],{"class":47},[34,99278,96485],{"class":54},[34,99280,92679],{"class":54},[34,99282,96553],{"class":54},[34,99284,92793],{"class":50},[34,99286,99287],{"class":36,"line":77},[34,99288,62],{"emptyLinePlaceholder":61},[34,99290,99291],{"class":36,"line":82},[34,99292,99293],{"class":40},"# Open current repo in browser\n",[34,99295,99296,99298,99300,99302],{"class":36,"line":88},[34,99297,92496],{"class":47},[34,99299,96485],{"class":54},[34,99301,92679],{"class":54},[34,99303,92793],{"class":50},[34,99305,99306],{"class":36,"line":242},[34,99307,62],{"emptyLinePlaceholder":61},[34,99309,99310],{"class":36,"line":250},[34,99311,99312],{"class":40},"# List your repositories\n",[34,99314,99315,99317,99319],{"class":36,"line":263},[34,99316,92496],{"class":47},[34,99318,96485],{"class":54},[34,99320,7536],{"class":54},[34,99322,99323],{"class":36,"line":275},[34,99324,62],{"emptyLinePlaceholder":61},[34,99326,99327],{"class":36,"line":700},[34,99328,99329],{"class":40},"# List repos for another user or org\n",[34,99331,99332,99334,99336,99338,99340,99342],{"class":36,"line":706},[34,99333,92496],{"class":47},[34,99335,96485],{"class":54},[34,99337,6345],{"class":54},[34,99339,99238],{"class":54},[34,99341,92520],{"class":50},[34,99343,92523],{"class":50},[11,99345,95918],{"id":95917},[25,99347,99349],{"className":27,"code":99348,"language":29,"meta":30,"style":30},"# Edit repo description and topics\ngh repo edit --description \"New description\" --add-topic cli,tool\n\n# Make a repo public\ngh repo edit --visibility public\n\n# Enable/disable features\ngh repo edit --enable-issues --disable-wiki\n\n# Set homepage URL\ngh repo edit --homepage https://example.com\n",[20,99350,99351,99356,99375,99379,99384,99398,99402,99407,99421,99425,99430],{"__ignoreMap":30},[34,99352,99353],{"class":36,"line":37},[34,99354,99355],{"class":40},"# Edit repo description and topics\n",[34,99357,99358,99360,99362,99364,99366,99369,99372],{"class":36,"line":44},[34,99359,92496],{"class":47},[34,99361,96485],{"class":54},[34,99363,95334],{"class":54},[34,99365,99013],{"class":50},[34,99367,99368],{"class":54}," \"New description\"",[34,99370,99371],{"class":50}," --add-topic",[34,99373,99374],{"class":54}," cli,tool\n",[34,99376,99377],{"class":36,"line":58},[34,99378,62],{"emptyLinePlaceholder":61},[34,99380,99381],{"class":36,"line":65},[34,99382,99383],{"class":40},"# Make a repo public\n",[34,99385,99386,99388,99390,99392,99395],{"class":36,"line":71},[34,99387,92496],{"class":47},[34,99389,96485],{"class":54},[34,99391,95334],{"class":54},[34,99393,99394],{"class":50}," --visibility",[34,99396,99397],{"class":54}," public\n",[34,99399,99400],{"class":36,"line":77},[34,99401,62],{"emptyLinePlaceholder":61},[34,99403,99404],{"class":36,"line":82},[34,99405,99406],{"class":40},"# Enable/disable features\n",[34,99408,99409,99411,99413,99415,99418],{"class":36,"line":88},[34,99410,92496],{"class":47},[34,99412,96485],{"class":54},[34,99414,95334],{"class":54},[34,99416,99417],{"class":50}," --enable-issues",[34,99419,99420],{"class":50}," --disable-wiki\n",[34,99422,99423],{"class":36,"line":242},[34,99424,62],{"emptyLinePlaceholder":61},[34,99426,99427],{"class":36,"line":250},[34,99428,99429],{"class":40},"# Set homepage URL\n",[34,99431,99432,99434,99436,99438,99441],{"class":36,"line":263},[34,99433,92496],{"class":47},[34,99435,96485],{"class":54},[34,99437,95334],{"class":54},[34,99439,99440],{"class":50}," --homepage",[34,99442,43226],{"class":54},[11,99444,99446],{"id":99445},"manage","Manage",[25,99448,99450],{"className":27,"code":99449,"language":29,"meta":30,"style":30},"# Rename a repository\ngh repo rename new-name\n\n# Archive a repository\ngh repo archive owner/repo\n\n# Unarchive a repository\ngh repo unarchive owner/repo\n\n# Delete a repository (requires confirmation)\ngh repo delete owner/repo --yes\n\n# Sync a fork with its upstream\ngh repo sync\n\n# Set the default repository for the current directory\ngh repo set-default owner/repo\n",[20,99451,99452,99457,99468,99472,99477,99488,99492,99497,99508,99512,99517,99529,99533,99538,99547,99551,99556],{"__ignoreMap":30},[34,99453,99454],{"class":36,"line":37},[34,99455,99456],{"class":40},"# Rename a repository\n",[34,99458,99459,99461,99463,99465],{"class":36,"line":44},[34,99460,92496],{"class":47},[34,99462,96485],{"class":54},[34,99464,95420],{"class":54},[34,99466,99467],{"class":54}," new-name\n",[34,99469,99470],{"class":36,"line":58},[34,99471,62],{"emptyLinePlaceholder":61},[34,99473,99474],{"class":36,"line":65},[34,99475,99476],{"class":40},"# Archive a repository\n",[34,99478,99479,99481,99483,99486],{"class":36,"line":71},[34,99480,92496],{"class":47},[34,99482,96485],{"class":54},[34,99484,99485],{"class":54}," archive",[34,99487,96490],{"class":54},[34,99489,99490],{"class":36,"line":77},[34,99491,62],{"emptyLinePlaceholder":61},[34,99493,99494],{"class":36,"line":82},[34,99495,99496],{"class":40},"# Unarchive a repository\n",[34,99498,99499,99501,99503,99506],{"class":36,"line":88},[34,99500,92496],{"class":47},[34,99502,96485],{"class":54},[34,99504,99505],{"class":54}," unarchive",[34,99507,96490],{"class":54},[34,99509,99510],{"class":36,"line":242},[34,99511,62],{"emptyLinePlaceholder":61},[34,99513,99514],{"class":36,"line":250},[34,99515,99516],{"class":40},"# Delete a repository (requires confirmation)\n",[34,99518,99519,99521,99523,99525,99527],{"class":36,"line":263},[34,99520,92496],{"class":47},[34,99522,96485],{"class":54},[34,99524,9562],{"class":54},[34,99526,96553],{"class":54},[34,99528,9569],{"class":50},[34,99530,99531],{"class":36,"line":275},[34,99532,62],{"emptyLinePlaceholder":61},[34,99534,99535],{"class":36,"line":700},[34,99536,99537],{"class":40},"# Sync a fork with its upstream\n",[34,99539,99540,99542,99544],{"class":36,"line":706},[34,99541,92496],{"class":47},[34,99543,96485],{"class":54},[34,99545,99546],{"class":54}," sync\n",[34,99548,99549],{"class":36,"line":715},[34,99550,62],{"emptyLinePlaceholder":61},[34,99552,99553],{"class":36,"line":725},[34,99554,99555],{"class":40},"# Set the default repository for the current directory\n",[34,99557,99558,99560,99562,99565],{"class":36,"line":734},[34,99559,92496],{"class":47},[34,99561,96485],{"class":54},[34,99563,99564],{"class":54}," set-default",[34,99566,96490],{"class":54},[11,99568,99570],{"id":99569},"deploy-keys","Deploy Keys",[25,99572,99574],{"className":27,"code":99573,"language":29,"meta":30,"style":30},"# List deploy keys\ngh repo deploy-key list\n\n# Add a deploy key\ngh repo deploy-key add ~/.ssh/id_rsa.pub --title \"CI key\"\n\n# Delete a deploy key\ngh repo deploy-key delete \u003Ckey-id>\n",[20,99575,99576,99581,99592,99596,99601,99619,99623,99628],{"__ignoreMap":30},[34,99577,99578],{"class":36,"line":37},[34,99579,99580],{"class":40},"# List deploy keys\n",[34,99582,99583,99585,99587,99590],{"class":36,"line":44},[34,99584,92496],{"class":47},[34,99586,96485],{"class":54},[34,99588,99589],{"class":54}," deploy-key",[34,99591,7536],{"class":54},[34,99593,99594],{"class":36,"line":58},[34,99595,62],{"emptyLinePlaceholder":61},[34,99597,99598],{"class":36,"line":65},[34,99599,99600],{"class":40},"# Add a deploy key\n",[34,99602,99603,99605,99607,99609,99611,99614,99616],{"class":36,"line":71},[34,99604,92496],{"class":47},[34,99606,96485],{"class":54},[34,99608,99589],{"class":54},[34,99610,7854],{"class":54},[34,99612,99613],{"class":54}," ~/.ssh/id_rsa.pub",[34,99615,94105],{"class":50},[34,99617,99618],{"class":54}," \"CI key\"\n",[34,99620,99621],{"class":36,"line":77},[34,99622,62],{"emptyLinePlaceholder":61},[34,99624,99625],{"class":36,"line":82},[34,99626,99627],{"class":40},"# Delete a deploy key\n",[34,99629,99630,99632,99634,99636,99638,99640,99642,99644],{"class":36,"line":88},[34,99631,92496],{"class":47},[34,99633,96485],{"class":54},[34,99635,99589],{"class":54},[34,99637,9562],{"class":54},[34,99639,5470],{"class":580},[34,99641,94130],{"class":54},[34,99643,5878],{"class":181},[34,99645,1248],{"class":580},[388,99647,93387],{},{"title":30,"searchDepth":44,"depth":44,"links":99649},[99650,99651,99652,99653,99654,99655],{"id":72666,"depth":44,"text":94869},{"id":99106,"depth":44,"text":99107},{"id":99243,"depth":44,"text":99244},{"id":95917,"depth":44,"text":95918},{"id":99445,"depth":44,"text":99446},{"id":99569,"depth":44,"text":99570},"GitHub CLI commands for creating, cloning, forking, and managing GitHub repositories.",{},"/gh/repos",{"title":98945,"description":99656},"gh/repos",[92496,93405,411,99662,99663,95256,99664],"repo","repository","fork","BIe18LMABdkjNchrjW5KLsjbhYymJjnpUyv9yOQWOAg",{"id":99667,"title":99668,"body":99669,"date":402,"description":100492,"extension":404,"meta":100493,"navigation":61,"order":88,"path":100494,"seo":100495,"stem":100496,"subject":92496,"tags":100497,"__hash__":100499},"topics/gh/search.md","Search",{"type":8,"value":99670,"toc":100484},[99671,99675,99893,99897,100089,100093,100203,100207,100302,100306,100401,100403,100482],[11,99672,99674],{"id":99673},"search-repositories","Search Repositories",[25,99676,99678],{"className":27,"code":99677,"language":29,"meta":30,"style":30},"# Search by keywords\ngh search repos \"cli tool\"\n\n# Search in a specific owner's repos\ngh search repos --owner microsoft --visibility public\n\n# Filter by language\ngh search repos --language rust\n\n# Filter by stars\ngh search repos --stars \">500\"\n\n# Filter by topic\ngh search repos --topic kubernetes,helm\n\n# Filter by number of good-first-issues\ngh search repos --language go --good-first-issues \">=5\"\n\n# Exclude archived repos\ngh search repos --archived=false\n\n# Sort results\ngh search repos \"json parser\" --sort stars --order desc\n\n# Open results in browser\ngh search repos \"my query\" --web\n",[20,99679,99680,99685,99696,99700,99705,99723,99727,99732,99745,99749,99754,99768,99772,99777,99791,99795,99800,99819,99823,99828,99839,99843,99848,99871,99875,99880],{"__ignoreMap":30},[34,99681,99682],{"class":36,"line":37},[34,99683,99684],{"class":40},"# Search by keywords\n",[34,99686,99687,99689,99691,99693],{"class":36,"line":44},[34,99688,92496],{"class":47},[34,99690,5870],{"class":54},[34,99692,97068],{"class":54},[34,99694,99695],{"class":54}," \"cli tool\"\n",[34,99697,99698],{"class":36,"line":58},[34,99699,62],{"emptyLinePlaceholder":61},[34,99701,99702],{"class":36,"line":65},[34,99703,99704],{"class":40},"# Search in a specific owner's repos\n",[34,99706,99707,99709,99711,99713,99716,99719,99721],{"class":36,"line":71},[34,99708,92496],{"class":47},[34,99710,5870],{"class":54},[34,99712,97068],{"class":54},[34,99714,99715],{"class":50}," --owner",[34,99717,99718],{"class":54}," microsoft",[34,99720,99394],{"class":50},[34,99722,99397],{"class":54},[34,99724,99725],{"class":36,"line":77},[34,99726,62],{"emptyLinePlaceholder":61},[34,99728,99729],{"class":36,"line":82},[34,99730,99731],{"class":40},"# Filter by language\n",[34,99733,99734,99736,99738,99740,99742],{"class":36,"line":88},[34,99735,92496],{"class":47},[34,99737,5870],{"class":54},[34,99739,97068],{"class":54},[34,99741,97156],{"class":50},[34,99743,99744],{"class":54}," rust\n",[34,99746,99747],{"class":36,"line":242},[34,99748,62],{"emptyLinePlaceholder":61},[34,99750,99751],{"class":36,"line":250},[34,99752,99753],{"class":40},"# Filter by stars\n",[34,99755,99756,99758,99760,99762,99765],{"class":36,"line":263},[34,99757,92496],{"class":47},[34,99759,5870],{"class":54},[34,99761,97068],{"class":54},[34,99763,99764],{"class":50}," --stars",[34,99766,99767],{"class":54}," \">500\"\n",[34,99769,99770],{"class":36,"line":275},[34,99771,62],{"emptyLinePlaceholder":61},[34,99773,99774],{"class":36,"line":700},[34,99775,99776],{"class":40},"# Filter by topic\n",[34,99778,99779,99781,99783,99785,99788],{"class":36,"line":706},[34,99780,92496],{"class":47},[34,99782,5870],{"class":54},[34,99784,97068],{"class":54},[34,99786,99787],{"class":50}," --topic",[34,99789,99790],{"class":54}," kubernetes,helm\n",[34,99792,99793],{"class":36,"line":715},[34,99794,62],{"emptyLinePlaceholder":61},[34,99796,99797],{"class":36,"line":725},[34,99798,99799],{"class":40},"# Filter by number of good-first-issues\n",[34,99801,99802,99804,99806,99808,99810,99813,99816],{"class":36,"line":734},[34,99803,92496],{"class":47},[34,99805,5870],{"class":54},[34,99807,97068],{"class":54},[34,99809,97156],{"class":50},[34,99811,99812],{"class":54}," go",[34,99814,99815],{"class":50}," --good-first-issues",[34,99817,99818],{"class":54}," \">=5\"\n",[34,99820,99821],{"class":36,"line":742},[34,99822,62],{"emptyLinePlaceholder":61},[34,99824,99825],{"class":36,"line":748},[34,99826,99827],{"class":40},"# Exclude archived repos\n",[34,99829,99830,99832,99834,99836],{"class":36,"line":754},[34,99831,92496],{"class":47},[34,99833,5870],{"class":54},[34,99835,97068],{"class":54},[34,99837,99838],{"class":50}," --archived=false\n",[34,99840,99841],{"class":36,"line":759},[34,99842,62],{"emptyLinePlaceholder":61},[34,99844,99845],{"class":36,"line":771},[34,99846,99847],{"class":40},"# Sort results\n",[34,99849,99850,99852,99854,99856,99859,99862,99865,99868],{"class":36,"line":794},[34,99851,92496],{"class":47},[34,99853,5870],{"class":54},[34,99855,97068],{"class":54},[34,99857,99858],{"class":54}," \"json parser\"",[34,99860,99861],{"class":50}," --sort",[34,99863,99864],{"class":54}," stars",[34,99866,99867],{"class":50}," --order",[34,99869,99870],{"class":54}," desc\n",[34,99872,99873],{"class":36,"line":824},[34,99874,62],{"emptyLinePlaceholder":61},[34,99876,99877],{"class":36,"line":830},[34,99878,99879],{"class":40},"# Open results in browser\n",[34,99881,99882,99884,99886,99888,99891],{"class":36,"line":839},[34,99883,92496],{"class":47},[34,99885,5870],{"class":54},[34,99887,97068],{"class":54},[34,99889,99890],{"class":54}," \"my query\"",[34,99892,92793],{"class":50},[11,99894,99896],{"id":99895},"search-issues","Search Issues",[25,99898,99900],{"className":27,"code":99899,"language":29,"meta":30,"style":30},"# Search for issues by keyword\ngh search issues \"memory leak\"\n\n# Search within a specific repo\ngh search issues \"crash\" --repo owner/repo\n\n# Filter by state\ngh search issues \"login bug\" --state open\ngh search issues \"login bug\" --state closed\n\n# Filter by label\ngh search issues --label \"bug\" --label \"help wanted\"\n\n# Filter by assignee\ngh search issues --assignee \"@me\"\n\n# Filter by author\ngh search issues --author monalisa\n\n# Find unassigned issues\ngh search issues \"enhancement\" --no-assignee\n\n# Search by language of the repository\ngh search issues --language python\n",[20,99901,99902,99907,99918,99922,99927,99942,99946,99951,99967,99981,99985,99989,100005,100009,100013,100025,100029,100033,100045,100049,100054,100068,100072,100077],{"__ignoreMap":30},[34,99903,99904],{"class":36,"line":37},[34,99905,99906],{"class":40},"# Search for issues by keyword\n",[34,99908,99909,99911,99913,99915],{"class":36,"line":44},[34,99910,92496],{"class":47},[34,99912,5870],{"class":54},[34,99914,97098],{"class":54},[34,99916,99917],{"class":54}," \"memory leak\"\n",[34,99919,99920],{"class":36,"line":58},[34,99921,62],{"emptyLinePlaceholder":61},[34,99923,99924],{"class":36,"line":65},[34,99925,99926],{"class":40},"# Search within a specific repo\n",[34,99928,99929,99931,99933,99935,99938,99940],{"class":36,"line":71},[34,99930,92496],{"class":47},[34,99932,5870],{"class":54},[34,99934,97098],{"class":54},[34,99936,99937],{"class":54}," \"crash\"",[34,99939,97104],{"class":50},[34,99941,96490],{"class":54},[34,99943,99944],{"class":36,"line":77},[34,99945,62],{"emptyLinePlaceholder":61},[34,99947,99948],{"class":36,"line":82},[34,99949,99950],{"class":40},"# Filter by state\n",[34,99952,99953,99955,99957,99959,99962,99964],{"class":36,"line":88},[34,99954,92496],{"class":47},[34,99956,5870],{"class":54},[34,99958,97098],{"class":54},[34,99960,99961],{"class":54}," \"login bug\"",[34,99963,95730],{"class":50},[34,99965,99966],{"class":54}," open\n",[34,99968,99969,99971,99973,99975,99977,99979],{"class":36,"line":242},[34,99970,92496],{"class":47},[34,99972,5870],{"class":54},[34,99974,97098],{"class":54},[34,99976,99961],{"class":54},[34,99978,95730],{"class":50},[34,99980,97548],{"class":54},[34,99982,99983],{"class":36,"line":250},[34,99984,62],{"emptyLinePlaceholder":61},[34,99986,99987],{"class":36,"line":263},[34,99988,95741],{"class":40},[34,99990,99991,99993,99995,99997,99999,100001,100003],{"class":36,"line":275},[34,99992,92496],{"class":47},[34,99994,5870],{"class":54},[34,99996,97098],{"class":54},[34,99998,95614],{"class":50},[34,100000,95767],{"class":54},[34,100002,95614],{"class":50},[34,100004,95772],{"class":54},[34,100006,100007],{"class":36,"line":700},[34,100008,62],{"emptyLinePlaceholder":61},[34,100010,100011],{"class":36,"line":706},[34,100012,95781],{"class":40},[34,100014,100015,100017,100019,100021,100023],{"class":36,"line":715},[34,100016,92496],{"class":47},[34,100018,5870],{"class":54},[34,100020,97098],{"class":54},[34,100022,95586],{"class":50},[34,100024,95589],{"class":54},[34,100026,100027],{"class":36,"line":725},[34,100028,62],{"emptyLinePlaceholder":61},[34,100030,100031],{"class":36,"line":734},[34,100032,95815],{"class":40},[34,100034,100035,100037,100039,100041,100043],{"class":36,"line":742},[34,100036,92496],{"class":47},[34,100038,5870],{"class":54},[34,100040,97098],{"class":54},[34,100042,95826],{"class":50},[34,100044,95806],{"class":54},[34,100046,100047],{"class":36,"line":748},[34,100048,62],{"emptyLinePlaceholder":61},[34,100050,100051],{"class":36,"line":754},[34,100052,100053],{"class":40},"# Find unassigned issues\n",[34,100055,100056,100058,100060,100062,100065],{"class":36,"line":759},[34,100057,92496],{"class":47},[34,100059,5870],{"class":54},[34,100061,97098],{"class":54},[34,100063,100064],{"class":54}," \"enhancement\"",[34,100066,100067],{"class":50}," --no-assignee\n",[34,100069,100070],{"class":36,"line":771},[34,100071,62],{"emptyLinePlaceholder":61},[34,100073,100074],{"class":36,"line":794},[34,100075,100076],{"class":40},"# Search by language of the repository\n",[34,100078,100079,100081,100083,100085,100087],{"class":36,"line":824},[34,100080,92496],{"class":47},[34,100082,5870],{"class":54},[34,100084,97098],{"class":54},[34,100086,97156],{"class":50},[34,100088,7871],{"class":54},[11,100090,100092],{"id":100091},"search-pull-requests","Search Pull Requests",[25,100094,100096],{"className":27,"code":100095,"language":29,"meta":30,"style":30},"# Search open PRs by keyword\ngh search prs \"refactor\"\n\n# Search merged PRs\ngh search prs \"fix\" --state merged\n\n# Filter by base branch\ngh search prs --base main\n\n# Filter by reviewer\ngh search prs --review-requested \"@me\"\n\n# PRs with failing checks\ngh search prs --checks failing\n",[20,100097,100098,100103,100114,100118,100123,100138,100142,100146,100158,100162,100167,100180,100184,100189],{"__ignoreMap":30},[34,100099,100100],{"class":36,"line":37},[34,100101,100102],{"class":40},"# Search open PRs by keyword\n",[34,100104,100105,100107,100109,100111],{"class":36,"line":44},[34,100106,92496],{"class":47},[34,100108,5870],{"class":54},[34,100110,97124],{"class":54},[34,100112,100113],{"class":54}," \"refactor\"\n",[34,100115,100116],{"class":36,"line":58},[34,100117,62],{"emptyLinePlaceholder":61},[34,100119,100120],{"class":36,"line":65},[34,100121,100122],{"class":40},"# Search merged PRs\n",[34,100124,100125,100127,100129,100131,100134,100136],{"class":36,"line":71},[34,100126,92496],{"class":47},[34,100128,5870],{"class":54},[34,100130,97124],{"class":54},[34,100132,100133],{"class":54}," \"fix\"",[34,100135,95730],{"class":50},[34,100137,97132],{"class":54},[34,100139,100140],{"class":36,"line":77},[34,100141,62],{"emptyLinePlaceholder":61},[34,100143,100144],{"class":36,"line":82},[34,100145,97589],{"class":40},[34,100147,100148,100150,100152,100154,100156],{"class":36,"line":88},[34,100149,92496],{"class":47},[34,100151,5870],{"class":54},[34,100153,97124],{"class":54},[34,100155,97402],{"class":50},[34,100157,92545],{"class":54},[34,100159,100160],{"class":36,"line":242},[34,100161,62],{"emptyLinePlaceholder":61},[34,100163,100164],{"class":36,"line":250},[34,100165,100166],{"class":40},"# Filter by reviewer\n",[34,100168,100169,100171,100173,100175,100178],{"class":36,"line":263},[34,100170,92496],{"class":47},[34,100172,5870],{"class":54},[34,100174,97124],{"class":54},[34,100176,100177],{"class":50}," --review-requested",[34,100179,95589],{"class":54},[34,100181,100182],{"class":36,"line":275},[34,100183,62],{"emptyLinePlaceholder":61},[34,100185,100186],{"class":36,"line":700},[34,100187,100188],{"class":40},"# PRs with failing checks\n",[34,100190,100191,100193,100195,100197,100200],{"class":36,"line":706},[34,100192,92496],{"class":47},[34,100194,5870],{"class":54},[34,100196,97124],{"class":54},[34,100198,100199],{"class":50}," --checks",[34,100201,100202],{"class":54}," failing\n",[11,100204,100206],{"id":100205},"search-code","Search Code",[25,100208,100210],{"className":27,"code":100209,"language":29,"meta":30,"style":30},"# Search for a pattern in code\ngh search code \"function handleAuth\"\n\n# Search in a specific language\ngh search code \"useState\" --language typescript\n\n# Search in a specific repo\ngh search code \"TODO\" --repo owner/repo\n\n# Restrict match to filename\ngh search code \"Makefile\" --match filename\n",[20,100211,100212,100217,100228,100232,100237,100252,100256,100261,100276,100280,100285],{"__ignoreMap":30},[34,100213,100214],{"class":36,"line":37},[34,100215,100216],{"class":40},"# Search for a pattern in code\n",[34,100218,100219,100221,100223,100225],{"class":36,"line":44},[34,100220,92496],{"class":47},[34,100222,5870],{"class":54},[34,100224,97150],{"class":54},[34,100226,100227],{"class":54}," \"function handleAuth\"\n",[34,100229,100230],{"class":36,"line":58},[34,100231,62],{"emptyLinePlaceholder":61},[34,100233,100234],{"class":36,"line":65},[34,100235,100236],{"class":40},"# Search in a specific language\n",[34,100238,100239,100241,100243,100245,100248,100250],{"class":36,"line":71},[34,100240,92496],{"class":47},[34,100242,5870],{"class":54},[34,100244,97150],{"class":54},[34,100246,100247],{"class":54}," \"useState\"",[34,100249,97156],{"class":50},[34,100251,16286],{"class":54},[34,100253,100254],{"class":36,"line":77},[34,100255,62],{"emptyLinePlaceholder":61},[34,100257,100258],{"class":36,"line":82},[34,100259,100260],{"class":40},"# Search in a specific repo\n",[34,100262,100263,100265,100267,100269,100272,100274],{"class":36,"line":88},[34,100264,92496],{"class":47},[34,100266,5870],{"class":54},[34,100268,97150],{"class":54},[34,100270,100271],{"class":54}," \"TODO\"",[34,100273,97104],{"class":50},[34,100275,96490],{"class":54},[34,100277,100278],{"class":36,"line":242},[34,100279,62],{"emptyLinePlaceholder":61},[34,100281,100282],{"class":36,"line":250},[34,100283,100284],{"class":40},"# Restrict match to filename\n",[34,100286,100287,100289,100291,100293,100296,100299],{"class":36,"line":263},[34,100288,92496],{"class":47},[34,100290,5870],{"class":54},[34,100292,97150],{"class":54},[34,100294,100295],{"class":54}," \"Makefile\"",[34,100297,100298],{"class":50}," --match",[34,100300,100301],{"class":54}," filename\n",[11,100303,100305],{"id":100304},"search-commits","Search Commits",[25,100307,100309],{"className":27,"code":100308,"language":29,"meta":30,"style":30},"# Search commits by message\ngh search commits \"fix typo\"\n\n# Search commits in a specific repo\ngh search commits \"refactor\" --repo owner/repo\n\n# Filter by author\ngh search commits \"feat:\" --author monalisa\n\n# Filter by date range\ngh search commits \"release\" --author-date \">2024-01-01\"\n",[20,100310,100311,100316,100328,100332,100337,100352,100356,100360,100375,100379,100384],{"__ignoreMap":30},[34,100312,100313],{"class":36,"line":37},[34,100314,100315],{"class":40},"# Search commits by message\n",[34,100317,100318,100320,100322,100325],{"class":36,"line":44},[34,100319,92496],{"class":47},[34,100321,5870],{"class":54},[34,100323,100324],{"class":54}," commits",[34,100326,100327],{"class":54}," \"fix typo\"\n",[34,100329,100330],{"class":36,"line":58},[34,100331,62],{"emptyLinePlaceholder":61},[34,100333,100334],{"class":36,"line":65},[34,100335,100336],{"class":40},"# Search commits in a specific repo\n",[34,100338,100339,100341,100343,100345,100348,100350],{"class":36,"line":71},[34,100340,92496],{"class":47},[34,100342,5870],{"class":54},[34,100344,100324],{"class":54},[34,100346,100347],{"class":54}," \"refactor\"",[34,100349,97104],{"class":50},[34,100351,96490],{"class":54},[34,100353,100354],{"class":36,"line":77},[34,100355,62],{"emptyLinePlaceholder":61},[34,100357,100358],{"class":36,"line":82},[34,100359,95815],{"class":40},[34,100361,100362,100364,100366,100368,100371,100373],{"class":36,"line":88},[34,100363,92496],{"class":47},[34,100365,5870],{"class":54},[34,100367,100324],{"class":54},[34,100369,100370],{"class":54}," \"feat:\"",[34,100372,95826],{"class":50},[34,100374,95806],{"class":54},[34,100376,100377],{"class":36,"line":242},[34,100378,62],{"emptyLinePlaceholder":61},[34,100380,100381],{"class":36,"line":250},[34,100382,100383],{"class":40},"# Filter by date range\n",[34,100385,100386,100388,100390,100392,100395,100398],{"class":36,"line":263},[34,100387,92496],{"class":47},[34,100389,5870],{"class":54},[34,100391,100324],{"class":54},[34,100393,100394],{"class":54}," \"release\"",[34,100396,100397],{"class":50}," --author-date",[34,100399,100400],{"class":54}," \">2024-01-01\"\n",[11,100402,44645],{"id":44650},[25,100404,100406],{"className":27,"code":100405,"language":29,"meta":30,"style":30},"# Output as JSON\ngh search repos \"cli\" --json fullName,description,stargazersCount\n\n# Filter JSON with jq\ngh search repos \"cli\" --json fullName,stargazersCount --jq '.[] | select(.stargazersCount > 1000) | .fullName'\n\n# Limit results\ngh search repos \"tool\" --limit 10\n",[20,100407,100408,100412,100428,100432,100437,100457,100461,100466],{"__ignoreMap":30},[34,100409,100410],{"class":36,"line":37},[34,100411,97207],{"class":40},[34,100413,100414,100416,100418,100420,100423,100425],{"class":36,"line":44},[34,100415,92496],{"class":47},[34,100417,5870],{"class":54},[34,100419,97068],{"class":54},[34,100421,100422],{"class":54}," \"cli\"",[34,100424,97218],{"class":50},[34,100426,100427],{"class":54}," fullName,description,stargazersCount\n",[34,100429,100430],{"class":36,"line":58},[34,100431,62],{"emptyLinePlaceholder":61},[34,100433,100434],{"class":36,"line":65},[34,100435,100436],{"class":40},"# Filter JSON with jq\n",[34,100438,100439,100441,100443,100445,100447,100449,100452,100454],{"class":36,"line":71},[34,100440,92496],{"class":47},[34,100442,5870],{"class":54},[34,100444,97068],{"class":54},[34,100446,100422],{"class":54},[34,100448,97218],{"class":50},[34,100450,100451],{"class":54}," fullName,stargazersCount",[34,100453,94294],{"class":50},[34,100455,100456],{"class":54}," '.[] | select(.stargazersCount > 1000) | .fullName'\n",[34,100458,100459],{"class":36,"line":77},[34,100460,62],{"emptyLinePlaceholder":61},[34,100462,100463],{"class":36,"line":82},[34,100464,100465],{"class":40},"# Limit results\n",[34,100467,100468,100470,100472,100474,100477,100479],{"class":36,"line":88},[34,100469,92496],{"class":47},[34,100471,5870],{"class":54},[34,100473,97068],{"class":54},[34,100475,100476],{"class":54}," \"tool\"",[34,100478,92520],{"class":50},[34,100480,100481],{"class":50}," 10\n",[388,100483,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":100485},[100486,100487,100488,100489,100490,100491],{"id":99673,"depth":44,"text":99674},{"id":99895,"depth":44,"text":99896},{"id":100091,"depth":44,"text":100092},{"id":100205,"depth":44,"text":100206},{"id":100304,"depth":44,"text":100305},{"id":44650,"depth":44,"text":44645},"GitHub CLI commands for searching repositories, issues, pull requests, code, and commits on GitHub.",{},"/gh/search",{"title":99668,"description":100492},"gh/search",[92496,93405,411,89861,100498,96298,20],"repos","j950J8TUiFoy-81mshgCUP5YAL4ugUGTiIN0-GLS8bc",{"id":100501,"title":100502,"body":100503,"date":402,"description":100697,"extension":404,"meta":100698,"navigation":61,"order":65,"path":100699,"seo":100700,"stem":100701,"subject":7794,"tags":100702,"__hash__":100705},"topics/git/basic-workflow.md","Basic Workflow",{"type":8,"value":100504,"toc":100694},[100505,100508,100692],[11,100506,100502],{"id":100507},"basic-workflow",[25,100509,100511],{"className":27,"code":100510,"language":29,"meta":30,"style":30},"# Check status\ngit status\ngit status -s  # Short format\n\n# Add files to staging\ngit add \u003Cfile>\ngit add .      # Add all files\ngit add -p     # Interactive staging\n\n# Commit changes\ngit commit -m \"message\"\ngit commit -am \"message\"  # Add + commit (tracked files)\ngit commit --amend        # Modify last commit\n\n# View commit history\ngit log\ngit log --oneline\ngit log --graph --oneline --all\ngit log -p     # Show patches\ngit log -n 5   # Last 5 commits\n",[20,100512,100513,100517,100523,100534,100538,100543,100558,100570,100581,100585,100590,100602,100617,100629,100633,100638,100645,100655,100668,100679],{"__ignoreMap":30},[34,100514,100515],{"class":36,"line":37},[34,100516,7517],{"class":40},[34,100518,100519,100521],{"class":36,"line":44},[34,100520,7794],{"class":47},[34,100522,94480],{"class":54},[34,100524,100525,100527,100529,100531],{"class":36,"line":58},[34,100526,7794],{"class":47},[34,100528,94498],{"class":54},[34,100530,5487],{"class":50},[34,100532,100533],{"class":40},"  # Short format\n",[34,100535,100536],{"class":36,"line":65},[34,100537,62],{"emptyLinePlaceholder":61},[34,100539,100540],{"class":36,"line":71},[34,100541,100542],{"class":40},"# Add files to staging\n",[34,100544,100545,100547,100549,100551,100554,100556],{"class":36,"line":77},[34,100546,7794],{"class":47},[34,100548,7854],{"class":54},[34,100550,5470],{"class":580},[34,100552,100553],{"class":54},"fil",[34,100555,5476],{"class":181},[34,100557,1248],{"class":580},[34,100559,100560,100562,100564,100567],{"class":36,"line":82},[34,100561,7794],{"class":47},[34,100563,7854],{"class":54},[34,100565,100566],{"class":54}," .",[34,100568,100569],{"class":40},"      # Add all files\n",[34,100571,100572,100574,100576,100578],{"class":36,"line":88},[34,100573,7794],{"class":47},[34,100575,7854],{"class":54},[34,100577,5275],{"class":50},[34,100579,100580],{"class":40},"     # Interactive staging\n",[34,100582,100583],{"class":36,"line":242},[34,100584,62],{"emptyLinePlaceholder":61},[34,100586,100587],{"class":36,"line":250},[34,100588,100589],{"class":40},"# Commit changes\n",[34,100591,100592,100594,100597,100599],{"class":36,"line":263},[34,100593,7794],{"class":47},[34,100595,100596],{"class":54}," commit",[34,100598,5037],{"class":50},[34,100600,100601],{"class":54}," \"message\"\n",[34,100603,100604,100606,100608,100611,100614],{"class":36,"line":275},[34,100605,7794],{"class":47},[34,100607,100596],{"class":54},[34,100609,100610],{"class":50}," -am",[34,100612,100613],{"class":54}," \"message\"",[34,100615,100616],{"class":40},"  # Add + commit (tracked files)\n",[34,100618,100619,100621,100623,100626],{"class":36,"line":700},[34,100620,7794],{"class":47},[34,100622,100596],{"class":54},[34,100624,100625],{"class":50}," --amend",[34,100627,100628],{"class":40},"        # Modify last commit\n",[34,100630,100631],{"class":36,"line":706},[34,100632,62],{"emptyLinePlaceholder":61},[34,100634,100635],{"class":36,"line":715},[34,100636,100637],{"class":40},"# View commit history\n",[34,100639,100640,100642],{"class":36,"line":725},[34,100641,7794],{"class":47},[34,100643,100644],{"class":54}," log\n",[34,100646,100647,100649,100652],{"class":36,"line":734},[34,100648,7794],{"class":47},[34,100650,100651],{"class":54}," log",[34,100653,100654],{"class":50}," --oneline\n",[34,100656,100657,100659,100661,100664,100666],{"class":36,"line":742},[34,100658,7794],{"class":47},[34,100660,100651],{"class":54},[34,100662,100663],{"class":50}," --graph",[34,100665,89071],{"class":50},[34,100667,49095],{"class":50},[34,100669,100670,100672,100674,100676],{"class":36,"line":748},[34,100671,7794],{"class":47},[34,100673,100651],{"class":54},[34,100675,5275],{"class":50},[34,100677,100678],{"class":40},"     # Show patches\n",[34,100680,100681,100683,100685,100687,100689],{"class":36,"line":754},[34,100682,7794],{"class":47},[34,100684,100651],{"class":54},[34,100686,7093],{"class":50},[34,100688,11144],{"class":50},[34,100690,100691],{"class":40},"   # Last 5 commits\n",[388,100693,5578],{},{"title":30,"searchDepth":44,"depth":44,"links":100695},[100696],{"id":100507,"depth":44,"text":100502},"Basic Workflow in Git.",{},"/git/basic-workflow",{"title":100502,"description":100697},"git/basic-workflow",[7794,100703,100704],"version-control","collaboration","673AjyecCmMsQpVQQTHFDMcLCURaiuL0BKeN_hSLGaA",{"id":100707,"title":100708,"body":100709,"date":402,"description":100981,"extension":404,"meta":100982,"navigation":61,"order":71,"path":100983,"seo":100984,"stem":100985,"subject":7794,"tags":100986,"__hash__":100987},"topics/git/branches.md","Branches",{"type":8,"value":100710,"toc":100978},[100711,100714,100976],[11,100712,100708],{"id":100713},"branches",[25,100715,100717],{"className":27,"code":100716,"language":29,"meta":30,"style":30},"# List branches\ngit branch          # Local branches\ngit branch -r       # Remote branches\ngit branch -a       # All branches\n\n# Create branch\ngit branch \u003Cname>\n\n# Switch branch\ngit checkout \u003Cbranch>\ngit switch \u003Cbranch>    # Git 2.23+\n\n# Create and switch\ngit checkout -b \u003Cname>\ngit switch -c \u003Cname>   # Git 2.23+\n\n# Rename branch\ngit branch -m \u003Cold> \u003Cnew>\n\n# Delete branch\ngit branch -d \u003Cname>   # Safe delete\ngit branch -D \u003Cname>   # Force delete\n\n# Delete remote branch\ngit push origin --delete \u003Cbranch>\n",[20,100718,100719,100724,100734,100745,100756,100760,100765,100779,100783,100788,100804,100821,100825,100830,100846,100865,100869,100874,100900,100904,100909,100928,100947,100951,100956],{"__ignoreMap":30},[34,100720,100721],{"class":36,"line":37},[34,100722,100723],{"class":40},"# List branches\n",[34,100725,100726,100728,100731],{"class":36,"line":44},[34,100727,7794],{"class":47},[34,100729,100730],{"class":54}," branch",[34,100732,100733],{"class":40},"          # Local branches\n",[34,100735,100736,100738,100740,100742],{"class":36,"line":58},[34,100737,7794],{"class":47},[34,100739,100730],{"class":54},[34,100741,12112],{"class":50},[34,100743,100744],{"class":40},"       # Remote branches\n",[34,100746,100747,100749,100751,100753],{"class":36,"line":65},[34,100748,7794],{"class":47},[34,100750,100730],{"class":54},[34,100752,5059],{"class":50},[34,100754,100755],{"class":40},"       # All branches\n",[34,100757,100758],{"class":36,"line":71},[34,100759,62],{"emptyLinePlaceholder":61},[34,100761,100762],{"class":36,"line":77},[34,100763,100764],{"class":40},"# Create branch\n",[34,100766,100767,100769,100771,100773,100775,100777],{"class":36,"line":82},[34,100768,7794],{"class":47},[34,100770,100730],{"class":54},[34,100772,5470],{"class":580},[34,100774,56907],{"class":54},[34,100776,5476],{"class":181},[34,100778,1248],{"class":580},[34,100780,100781],{"class":36,"line":88},[34,100782,62],{"emptyLinePlaceholder":61},[34,100784,100785],{"class":36,"line":242},[34,100786,100787],{"class":40},"# Switch branch\n",[34,100789,100790,100792,100794,100796,100799,100802],{"class":36,"line":250},[34,100791,7794],{"class":47},[34,100793,96759],{"class":54},[34,100795,5470],{"class":580},[34,100797,100798],{"class":54},"branc",[34,100800,100801],{"class":181},"h",[34,100803,1248],{"class":580},[34,100805,100806,100808,100810,100812,100814,100816,100818],{"class":36,"line":263},[34,100807,7794],{"class":47},[34,100809,94668],{"class":54},[34,100811,5470],{"class":580},[34,100813,100798],{"class":54},[34,100815,100801],{"class":181},[34,100817,5691],{"class":580},[34,100819,100820],{"class":40},"    # Git 2.23+\n",[34,100822,100823],{"class":36,"line":275},[34,100824,62],{"emptyLinePlaceholder":61},[34,100826,100827],{"class":36,"line":700},[34,100828,100829],{"class":40},"# Create and switch\n",[34,100831,100832,100834,100836,100838,100840,100842,100844],{"class":36,"line":706},[34,100833,7794],{"class":47},[34,100835,96759],{"class":54},[34,100837,8214],{"class":50},[34,100839,5470],{"class":580},[34,100841,56907],{"class":54},[34,100843,5476],{"class":181},[34,100845,1248],{"class":580},[34,100847,100848,100850,100852,100854,100856,100858,100860,100862],{"class":36,"line":715},[34,100849,7794],{"class":47},[34,100851,94668],{"class":54},[34,100853,15867],{"class":50},[34,100855,5470],{"class":580},[34,100857,56907],{"class":54},[34,100859,5476],{"class":181},[34,100861,5691],{"class":580},[34,100863,100864],{"class":40},"   # Git 2.23+\n",[34,100866,100867],{"class":36,"line":725},[34,100868,62],{"emptyLinePlaceholder":61},[34,100870,100871],{"class":36,"line":734},[34,100872,100873],{"class":40},"# Rename branch\n",[34,100875,100876,100878,100880,100882,100884,100886,100888,100890,100892,100895,100898],{"class":36,"line":742},[34,100877,7794],{"class":47},[34,100879,100730],{"class":54},[34,100881,5037],{"class":50},[34,100883,5470],{"class":580},[34,100885,28799],{"class":54},[34,100887,5878],{"class":181},[34,100889,5691],{"class":580},[34,100891,5470],{"class":580},[34,100893,100894],{"class":54},"ne",[34,100896,100897],{"class":181},"w",[34,100899,1248],{"class":580},[34,100901,100902],{"class":36,"line":748},[34,100903,62],{"emptyLinePlaceholder":61},[34,100905,100906],{"class":36,"line":754},[34,100907,100908],{"class":40},"# Delete branch\n",[34,100910,100911,100913,100915,100917,100919,100921,100923,100925],{"class":36,"line":759},[34,100912,7794],{"class":47},[34,100914,100730],{"class":54},[34,100916,9750],{"class":50},[34,100918,5470],{"class":580},[34,100920,56907],{"class":54},[34,100922,5476],{"class":181},[34,100924,5691],{"class":580},[34,100926,100927],{"class":40},"   # Safe delete\n",[34,100929,100930,100932,100934,100936,100938,100940,100942,100944],{"class":36,"line":771},[34,100931,7794],{"class":47},[34,100933,100730],{"class":54},[34,100935,13768],{"class":50},[34,100937,5470],{"class":580},[34,100939,56907],{"class":54},[34,100941,5476],{"class":181},[34,100943,5691],{"class":580},[34,100945,100946],{"class":40},"   # Force delete\n",[34,100948,100949],{"class":36,"line":794},[34,100950,62],{"emptyLinePlaceholder":61},[34,100952,100953],{"class":36,"line":824},[34,100954,100955],{"class":40},"# Delete remote branch\n",[34,100957,100958,100960,100962,100965,100968,100970,100972,100974],{"class":36,"line":830},[34,100959,7794],{"class":47},[34,100961,56867],{"class":54},[34,100963,100964],{"class":54}," origin",[34,100966,100967],{"class":50}," --delete",[34,100969,5470],{"class":580},[34,100971,100798],{"class":54},[34,100973,100801],{"class":181},[34,100975,1248],{"class":580},[388,100977,5578],{},{"title":30,"searchDepth":44,"depth":44,"links":100979},[100980],{"id":100713,"depth":44,"text":100708},"Branches in Git.",{},"/git/branches",{"title":100708,"description":100981},"git/branches",[7794,100703,100704],"YRynmvzB4zpHmDqVBSMrUjyc8QsSE4iVtuNWp4GuWMs",{"id":100989,"title":100990,"body":100991,"date":402,"description":101089,"extension":404,"meta":101090,"navigation":61,"order":275,"path":101091,"seo":101092,"stem":101093,"subject":7794,"tags":101094,"__hash__":101095},"topics/git/cherry-pick.md","Cherry-pick",{"type":8,"value":100992,"toc":101086},[100993,100996,101084],[11,100994,100990],{"id":100995},"cherry-pick",[25,100997,100999],{"className":27,"code":100998,"language":29,"meta":30,"style":30},"# Apply specific commit to current branch\ngit cherry-pick \u003Ccommit>\n\n# Cherry-pick without committing\ngit cherry-pick --no-commit \u003Ccommit>\n\n# Cherry-pick range\ngit cherry-pick \u003Cstart>..\u003Cend>\n",[20,101000,101001,101006,101022,101026,101031,101048,101052,101057],{"__ignoreMap":30},[34,101002,101003],{"class":36,"line":37},[34,101004,101005],{"class":40},"# Apply specific commit to current branch\n",[34,101007,101008,101010,101013,101015,101018,101020],{"class":36,"line":44},[34,101009,7794],{"class":47},[34,101011,101012],{"class":54}," cherry-pick",[34,101014,5470],{"class":580},[34,101016,101017],{"class":54},"commi",[34,101019,16025],{"class":181},[34,101021,1248],{"class":580},[34,101023,101024],{"class":36,"line":58},[34,101025,62],{"emptyLinePlaceholder":61},[34,101027,101028],{"class":36,"line":65},[34,101029,101030],{"class":40},"# Cherry-pick without committing\n",[34,101032,101033,101035,101037,101040,101042,101044,101046],{"class":36,"line":71},[34,101034,7794],{"class":47},[34,101036,101012],{"class":54},[34,101038,101039],{"class":50}," --no-commit",[34,101041,5470],{"class":580},[34,101043,101017],{"class":54},[34,101045,16025],{"class":181},[34,101047,1248],{"class":580},[34,101049,101050],{"class":36,"line":77},[34,101051,62],{"emptyLinePlaceholder":61},[34,101053,101054],{"class":36,"line":82},[34,101055,101056],{"class":40},"# Cherry-pick range\n",[34,101058,101059,101061,101063,101065,101068,101070,101072,101075,101077,101080,101082],{"class":36,"line":88},[34,101060,7794],{"class":47},[34,101062,101012],{"class":54},[34,101064,5470],{"class":580},[34,101066,101067],{"class":54},"star",[34,101069,16025],{"class":181},[34,101071,5691],{"class":580},[34,101073,101074],{"class":54},"..",[34,101076,815],{"class":580},[34,101078,101079],{"class":54},"en",[34,101081,5878],{"class":181},[34,101083,1248],{"class":580},[388,101085,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":101087},[101088],{"id":100995,"depth":44,"text":100990},"Cherry-pick in Git.",{},"/git/cherry-pick",{"title":100990,"description":101089},"git/cherry-pick",[7794,100703,100704],"rHk6lQlo2iWAoSOU_uLwpf7pqRzLz5GUtiRzAIdhvjg",{"id":101097,"title":101098,"body":101099,"date":402,"description":101233,"extension":404,"meta":101234,"navigation":61,"order":58,"path":101235,"seo":101236,"stem":101237,"subject":7794,"tags":101238,"__hash__":101239},"topics/git/creating-repositories.md","Creating Repositories",{"type":8,"value":101100,"toc":101230},[101101,101104,101228],[11,101102,101098],{"id":101103},"creating-repositories",[25,101105,101107],{"className":27,"code":101106,"language":29,"meta":30,"style":30},"# Initialize new repository\ngit init\n\n# Clone existing repository\ngit clone \u003Curl>\ngit clone \u003Curl> \u003Cdirectory>\n\n# Clone specific branch\ngit clone -b \u003Cbranch> \u003Curl>\n\n# Shallow clone (faster)\ngit clone --depth 1 \u003Curl>\n",[20,101108,101109,101114,101120,101124,101129,101144,101167,101171,101176,101200,101204,101209],{"__ignoreMap":30},[34,101110,101111],{"class":36,"line":37},[34,101112,101113],{"class":40},"# Initialize new repository\n",[34,101115,101116,101118],{"class":36,"line":44},[34,101117,7794],{"class":47},[34,101119,8180],{"class":54},[34,101121,101122],{"class":36,"line":58},[34,101123,62],{"emptyLinePlaceholder":61},[34,101125,101126],{"class":36,"line":65},[34,101127,101128],{"class":40},"# Clone existing repository\n",[34,101130,101131,101133,101135,101137,101140,101142],{"class":36,"line":71},[34,101132,7794],{"class":47},[34,101134,7797],{"class":54},[34,101136,5470],{"class":580},[34,101138,101139],{"class":54},"ur",[34,101141,12757],{"class":181},[34,101143,1248],{"class":580},[34,101145,101146,101148,101150,101152,101154,101156,101158,101160,101163,101165],{"class":36,"line":77},[34,101147,7794],{"class":47},[34,101149,7797],{"class":54},[34,101151,5470],{"class":580},[34,101153,101139],{"class":54},[34,101155,12757],{"class":181},[34,101157,5691],{"class":580},[34,101159,5470],{"class":580},[34,101161,101162],{"class":54},"director",[34,101164,60946],{"class":181},[34,101166,1248],{"class":580},[34,101168,101169],{"class":36,"line":82},[34,101170,62],{"emptyLinePlaceholder":61},[34,101172,101173],{"class":36,"line":88},[34,101174,101175],{"class":40},"# Clone specific branch\n",[34,101177,101178,101180,101182,101184,101186,101188,101190,101192,101194,101196,101198],{"class":36,"line":242},[34,101179,7794],{"class":47},[34,101181,7797],{"class":54},[34,101183,8214],{"class":50},[34,101185,5470],{"class":580},[34,101187,100798],{"class":54},[34,101189,100801],{"class":181},[34,101191,5691],{"class":580},[34,101193,5470],{"class":580},[34,101195,101139],{"class":54},[34,101197,12757],{"class":181},[34,101199,1248],{"class":580},[34,101201,101202],{"class":36,"line":250},[34,101203,62],{"emptyLinePlaceholder":61},[34,101205,101206],{"class":36,"line":263},[34,101207,101208],{"class":40},"# Shallow clone (faster)\n",[34,101210,101211,101213,101215,101218,101220,101222,101224,101226],{"class":36,"line":275},[34,101212,7794],{"class":47},[34,101214,7797],{"class":54},[34,101216,101217],{"class":50}," --depth",[34,101219,3567],{"class":50},[34,101221,5470],{"class":580},[34,101223,101139],{"class":54},[34,101225,12757],{"class":181},[34,101227,1248],{"class":580},[388,101229,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":101231},[101232],{"id":101103,"depth":44,"text":101098},"Creating Repositories in Git.",{},"/git/creating-repositories",{"title":101098,"description":101233},"git/creating-repositories",[7794,100703,100704],"0PI4fv2Rm8sZgyuZXupkani9d8FaYvWm1ZnJ3DM1JLs",{"id":101241,"title":101242,"body":101243,"date":402,"description":101400,"extension":404,"meta":101401,"navigation":61,"order":77,"path":101402,"seo":101403,"stem":101404,"subject":7794,"tags":101405,"__hash__":101406},"topics/git/merging-rebasing.md","Merging & Rebasing",{"type":8,"value":101244,"toc":101397},[101245,101248,101395],[11,101246,101242],{"id":101247},"merging-rebasing",[25,101249,101251],{"className":27,"code":101250,"language":29,"meta":30,"style":30},"# Merge branch into current\ngit merge \u003Cbranch>\n\n# Merge with no fast-forward\ngit merge --no-ff \u003Cbranch>\n\n# Abort merge\ngit merge --abort\n\n# Rebase current branch\ngit rebase \u003Cbranch>\n\n# Interactive rebase\ngit rebase -i HEAD~3\n\n# Abort rebase\ngit rebase --abort\n\n# Continue after resolving conflicts\ngit rebase --continue\n",[20,101252,101253,101258,101272,101276,101281,101298,101302,101307,101316,101320,101325,101340,101344,101349,101360,101364,101369,101377,101381,101386],{"__ignoreMap":30},[34,101254,101255],{"class":36,"line":37},[34,101256,101257],{"class":40},"# Merge branch into current\n",[34,101259,101260,101262,101264,101266,101268,101270],{"class":36,"line":44},[34,101261,7794],{"class":47},[34,101263,96797],{"class":54},[34,101265,5470],{"class":580},[34,101267,100798],{"class":54},[34,101269,100801],{"class":181},[34,101271,1248],{"class":580},[34,101273,101274],{"class":36,"line":58},[34,101275,62],{"emptyLinePlaceholder":61},[34,101277,101278],{"class":36,"line":65},[34,101279,101280],{"class":40},"# Merge with no fast-forward\n",[34,101282,101283,101285,101287,101290,101292,101294,101296],{"class":36,"line":71},[34,101284,7794],{"class":47},[34,101286,96797],{"class":54},[34,101288,101289],{"class":50}," --no-ff",[34,101291,5470],{"class":580},[34,101293,100798],{"class":54},[34,101295,100801],{"class":181},[34,101297,1248],{"class":580},[34,101299,101300],{"class":36,"line":77},[34,101301,62],{"emptyLinePlaceholder":61},[34,101303,101304],{"class":36,"line":82},[34,101305,101306],{"class":40},"# Abort merge\n",[34,101308,101309,101311,101313],{"class":36,"line":88},[34,101310,7794],{"class":47},[34,101312,96797],{"class":54},[34,101314,101315],{"class":50}," --abort\n",[34,101317,101318],{"class":36,"line":242},[34,101319,62],{"emptyLinePlaceholder":61},[34,101321,101322],{"class":36,"line":250},[34,101323,101324],{"class":40},"# Rebase current branch\n",[34,101326,101327,101329,101332,101334,101336,101338],{"class":36,"line":263},[34,101328,7794],{"class":47},[34,101330,101331],{"class":54}," rebase",[34,101333,5470],{"class":580},[34,101335,100798],{"class":54},[34,101337,100801],{"class":181},[34,101339,1248],{"class":580},[34,101341,101342],{"class":36,"line":275},[34,101343,62],{"emptyLinePlaceholder":61},[34,101345,101346],{"class":36,"line":700},[34,101347,101348],{"class":40},"# Interactive rebase\n",[34,101350,101351,101353,101355,101357],{"class":36,"line":706},[34,101352,7794],{"class":47},[34,101354,101331],{"class":54},[34,101356,13065],{"class":50},[34,101358,101359],{"class":54}," HEAD~3\n",[34,101361,101362],{"class":36,"line":715},[34,101363,62],{"emptyLinePlaceholder":61},[34,101365,101366],{"class":36,"line":725},[34,101367,101368],{"class":40},"# Abort rebase\n",[34,101370,101371,101373,101375],{"class":36,"line":734},[34,101372,7794],{"class":47},[34,101374,101331],{"class":54},[34,101376,101315],{"class":50},[34,101378,101379],{"class":36,"line":742},[34,101380,62],{"emptyLinePlaceholder":61},[34,101382,101383],{"class":36,"line":748},[34,101384,101385],{"class":40},"# Continue after resolving conflicts\n",[34,101387,101388,101390,101392],{"class":36,"line":754},[34,101389,7794],{"class":47},[34,101391,101331],{"class":54},[34,101393,101394],{"class":50}," --continue\n",[388,101396,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":101398},[101399],{"id":101247,"depth":44,"text":101242},"Merging & Rebasing in Git.",{},"/git/merging-rebasing",{"title":101242,"description":101400},"git/merging-rebasing",[7794,100703,100704],"YNdTJjekKA6FsF1c3vcpcaPt7y1VM3UxlFU6GJjPTyI",{"id":101408,"title":101409,"body":101410,"date":2633,"description":101477,"extension":404,"meta":101478,"navigation":61,"order":37,"path":101479,"seo":101480,"stem":101481,"subject":7794,"tags":101482,"__hash__":101483},"topics/git/overview.md","Git",{"type":8,"value":101411,"toc":101475},[101412],[309,101413,101414,101420,101424,101428,101432,101436,101442,101448,101454,101460,101466,101470],{},[312,101415,101416],{},[145,101417,101419],{"href":101418},"/git/setup-configuration","Setup & Configuration",[312,101421,101422],{},[145,101423,101098],{"href":101235},[312,101425,101426],{},[145,101427,100502],{"href":100699},[312,101429,101430],{},[145,101431,100708],{"href":100983},[312,101433,101434],{},[145,101435,101242],{"href":101402},[312,101437,101438],{},[145,101439,101441],{"href":101440},"/git/remote-repositories","Remote Repositories",[312,101443,101444],{},[145,101445,101447],{"href":101446},"/git/stashing","Stashing",[312,101449,101450],{},[145,101451,101453],{"href":101452},"/git/undoing-changes","Undoing Changes",[312,101455,101456],{},[145,101457,101459],{"href":101458},"/git/viewing-differences","Viewing Differences",[312,101461,101462],{},[145,101463,101465],{"href":101464},"/git/tags","Tags",[312,101467,101468],{},[145,101469,100990],{"href":101091},[312,101471,101472],{},[145,101473,12204],{"href":101474},"/git/useful-commands",{"title":30,"searchDepth":44,"depth":44,"links":101476},[],"Essential Git commands for version control and collaboration.",{},"/git/overview",{"title":101409,"description":101477},"git/overview",[7794,100703,100704],"a5Mx1yGV61kaUc_60qIHluTZO17UbE-pAFOosTumJeA",{"id":101485,"title":101441,"body":101486,"date":402,"description":101729,"extension":404,"meta":101730,"navigation":61,"order":82,"path":101440,"seo":101731,"stem":101732,"subject":7794,"tags":101733,"__hash__":101734},"topics/git/remote-repositories.md",{"type":8,"value":101487,"toc":101726},[101488,101491,101724],[11,101489,101441],{"id":101490},"remote-repositories",[25,101492,101494],{"className":27,"code":101493,"language":29,"meta":30,"style":30},"# List remotes\ngit remote -v\n\n# Add remote\ngit remote add \u003Cname> \u003Curl>\n\n# Remove remote\ngit remote remove \u003Cname>\n\n# Rename remote\ngit remote rename \u003Cold> \u003Cnew>\n\n# Fetch changes\ngit fetch\ngit fetch \u003Cremote>\ngit fetch --all\n\n# Pull changes\ngit pull\ngit pull --rebase\n\n# Push changes\ngit push\ngit push -u origin \u003Cbranch>  # Set upstream\ngit push --force             # Force push (careful!)\ngit push --force-with-lease  # Safer force push\n",[20,101495,101496,101501,101510,101514,101519,101543,101547,101552,101568,101572,101577,101601,101605,101610,101617,101632,101640,101644,101649,101656,101664,101668,101673,101679,101700,101712],{"__ignoreMap":30},[34,101497,101498],{"class":36,"line":37},[34,101499,101500],{"class":40},"# List remotes\n",[34,101502,101503,101505,101508],{"class":36,"line":44},[34,101504,7794],{"class":47},[34,101506,101507],{"class":54}," remote",[34,101509,57767],{"class":50},[34,101511,101512],{"class":36,"line":58},[34,101513,62],{"emptyLinePlaceholder":61},[34,101515,101516],{"class":36,"line":65},[34,101517,101518],{"class":40},"# Add remote\n",[34,101520,101521,101523,101525,101527,101529,101531,101533,101535,101537,101539,101541],{"class":36,"line":71},[34,101522,7794],{"class":47},[34,101524,101507],{"class":54},[34,101526,7854],{"class":54},[34,101528,5470],{"class":580},[34,101530,56907],{"class":54},[34,101532,5476],{"class":181},[34,101534,5691],{"class":580},[34,101536,5470],{"class":580},[34,101538,101139],{"class":54},[34,101540,12757],{"class":181},[34,101542,1248],{"class":580},[34,101544,101545],{"class":36,"line":77},[34,101546,62],{"emptyLinePlaceholder":61},[34,101548,101549],{"class":36,"line":82},[34,101550,101551],{"class":40},"# Remove remote\n",[34,101553,101554,101556,101558,101560,101562,101564,101566],{"class":36,"line":88},[34,101555,7794],{"class":47},[34,101557,101507],{"class":54},[34,101559,6676],{"class":54},[34,101561,5470],{"class":580},[34,101563,56907],{"class":54},[34,101565,5476],{"class":181},[34,101567,1248],{"class":580},[34,101569,101570],{"class":36,"line":242},[34,101571,62],{"emptyLinePlaceholder":61},[34,101573,101574],{"class":36,"line":250},[34,101575,101576],{"class":40},"# Rename remote\n",[34,101578,101579,101581,101583,101585,101587,101589,101591,101593,101595,101597,101599],{"class":36,"line":263},[34,101580,7794],{"class":47},[34,101582,101507],{"class":54},[34,101584,95420],{"class":54},[34,101586,5470],{"class":580},[34,101588,28799],{"class":54},[34,101590,5878],{"class":181},[34,101592,5691],{"class":580},[34,101594,5470],{"class":580},[34,101596,100894],{"class":54},[34,101598,100897],{"class":181},[34,101600,1248],{"class":580},[34,101602,101603],{"class":36,"line":275},[34,101604,62],{"emptyLinePlaceholder":61},[34,101606,101607],{"class":36,"line":700},[34,101608,101609],{"class":40},"# Fetch changes\n",[34,101611,101612,101614],{"class":36,"line":706},[34,101613,7794],{"class":47},[34,101615,101616],{"class":54}," fetch\n",[34,101618,101619,101621,101623,101625,101628,101630],{"class":36,"line":715},[34,101620,7794],{"class":47},[34,101622,14766],{"class":54},[34,101624,5470],{"class":580},[34,101626,101627],{"class":54},"remot",[34,101629,5476],{"class":181},[34,101631,1248],{"class":580},[34,101633,101634,101636,101638],{"class":36,"line":725},[34,101635,7794],{"class":47},[34,101637,14766],{"class":54},[34,101639,49095],{"class":50},[34,101641,101642],{"class":36,"line":734},[34,101643,62],{"emptyLinePlaceholder":61},[34,101645,101646],{"class":36,"line":742},[34,101647,101648],{"class":40},"# Pull changes\n",[34,101650,101651,101653],{"class":36,"line":748},[34,101652,7794],{"class":47},[34,101654,101655],{"class":54}," pull\n",[34,101657,101658,101660,101662],{"class":36,"line":754},[34,101659,7794],{"class":47},[34,101661,56841],{"class":54},[34,101663,97999],{"class":50},[34,101665,101666],{"class":36,"line":759},[34,101667,62],{"emptyLinePlaceholder":61},[34,101669,101670],{"class":36,"line":771},[34,101671,101672],{"class":40},"# Push changes\n",[34,101674,101675,101677],{"class":36,"line":794},[34,101676,7794],{"class":47},[34,101678,298],{"class":54},[34,101680,101681,101683,101685,101687,101689,101691,101693,101695,101697],{"class":36,"line":824},[34,101682,7794],{"class":47},[34,101684,56867],{"class":54},[34,101686,43069],{"class":50},[34,101688,100964],{"class":54},[34,101690,5470],{"class":580},[34,101692,100798],{"class":54},[34,101694,100801],{"class":181},[34,101696,5691],{"class":580},[34,101698,101699],{"class":40},"  # Set upstream\n",[34,101701,101702,101704,101706,101709],{"class":36,"line":830},[34,101703,7794],{"class":47},[34,101705,56867],{"class":54},[34,101707,101708],{"class":50}," --force",[34,101710,101711],{"class":40},"             # Force push (careful!)\n",[34,101713,101714,101716,101718,101721],{"class":36,"line":839},[34,101715,7794],{"class":47},[34,101717,56867],{"class":54},[34,101719,101720],{"class":50}," --force-with-lease",[34,101722,101723],{"class":40},"  # Safer force push\n",[388,101725,5578],{},{"title":30,"searchDepth":44,"depth":44,"links":101727},[101728],{"id":101490,"depth":44,"text":101441},"Remote Repositories in Git.",{},{"title":101441,"description":101729},"git/remote-repositories",[7794,100703,100704],"0ct74CBJjwTIB2LCbMs6TanaUtYW8aKpZ6tWDjmDSjU",{"id":101736,"title":101419,"body":101737,"date":402,"description":101857,"extension":404,"meta":101858,"navigation":61,"order":44,"path":101418,"seo":101859,"stem":101860,"subject":7794,"tags":101861,"__hash__":101862},"topics/git/setup-configuration.md",{"type":8,"value":101738,"toc":101854},[101739,101742,101852],[11,101740,101419],{"id":101741},"setup-configuration",[25,101743,101745],{"className":27,"code":101744,"language":29,"meta":30,"style":30},"# Set user info\ngit config --global user.name \"Your Name\"\ngit config --global user.email \"your@email.com\"\n\n# Set default branch name\ngit config --global init.defaultBranch main\n\n# Set default editor\ngit config --global core.editor \"code --wait\"\n\n# View configuration\ngit config --list\ngit config user.name\n",[20,101746,101747,101752,101767,101781,101785,101790,101803,101807,101812,101825,101829,101834,101843],{"__ignoreMap":30},[34,101748,101749],{"class":36,"line":37},[34,101750,101751],{"class":40},"# Set user info\n",[34,101753,101754,101756,101758,101761,101764],{"class":36,"line":44},[34,101755,7794],{"class":47},[34,101757,58810],{"class":54},[34,101759,101760],{"class":50}," --global",[34,101762,101763],{"class":54}," user.name",[34,101765,101766],{"class":54}," \"Your Name\"\n",[34,101768,101769,101771,101773,101775,101778],{"class":36,"line":58},[34,101770,7794],{"class":47},[34,101772,58810],{"class":54},[34,101774,101760],{"class":50},[34,101776,101777],{"class":54}," user.email",[34,101779,101780],{"class":54}," \"your@email.com\"\n",[34,101782,101783],{"class":36,"line":65},[34,101784,62],{"emptyLinePlaceholder":61},[34,101786,101787],{"class":36,"line":71},[34,101788,101789],{"class":40},"# Set default branch name\n",[34,101791,101792,101794,101796,101798,101801],{"class":36,"line":77},[34,101793,7794],{"class":47},[34,101795,58810],{"class":54},[34,101797,101760],{"class":50},[34,101799,101800],{"class":54}," init.defaultBranch",[34,101802,92545],{"class":54},[34,101804,101805],{"class":36,"line":82},[34,101806,62],{"emptyLinePlaceholder":61},[34,101808,101809],{"class":36,"line":88},[34,101810,101811],{"class":40},"# Set default editor\n",[34,101813,101814,101816,101818,101820,101823],{"class":36,"line":242},[34,101815,7794],{"class":47},[34,101817,58810],{"class":54},[34,101819,101760],{"class":50},[34,101821,101822],{"class":54}," core.editor",[34,101824,93788],{"class":54},[34,101826,101827],{"class":36,"line":250},[34,101828,62],{"emptyLinePlaceholder":61},[34,101830,101831],{"class":36,"line":263},[34,101832,101833],{"class":40},"# View configuration\n",[34,101835,101836,101838,101840],{"class":36,"line":275},[34,101837,7794],{"class":47},[34,101839,58810],{"class":54},[34,101841,101842],{"class":50}," --list\n",[34,101844,101845,101847,101849],{"class":36,"line":700},[34,101846,7794],{"class":47},[34,101848,58810],{"class":54},[34,101850,101851],{"class":54}," user.name\n",[388,101853,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":101855},[101856],{"id":101741,"depth":44,"text":101419},"Setup & Configuration in Git.",{},{"title":101419,"description":101857},"git/setup-configuration",[7794,100703,100704],"MqlHM76L-IpS0BTth2wTbjJStoimTMvAtp-UrqnjfME",{"id":101864,"title":101447,"body":101865,"date":402,"description":102014,"extension":404,"meta":102015,"navigation":61,"order":88,"path":101446,"seo":102016,"stem":102017,"subject":7794,"tags":102018,"__hash__":102019},"topics/git/stashing.md",{"type":8,"value":101866,"toc":102011},[101867,101870,102009],[11,101868,101447],{"id":101869},"stashing",[25,101871,101873],{"className":27,"code":101872,"language":29,"meta":30,"style":30},"# Stash changes\ngit stash\ngit stash -m \"message\"\ngit stash -u  # Include untracked files\n\n# List stashes\ngit stash list\n\n# Apply stash\ngit stash apply        # Keep in stash list\ngit stash pop          # Remove from stash list\ngit stash apply stash@{1}\n\n# Drop stash\ngit stash drop stash@{0}\ngit stash clear  # Drop all\n",[20,101874,101875,101880,101887,101898,101909,101913,101918,101926,101930,101935,101946,101958,101973,101977,101982,101997],{"__ignoreMap":30},[34,101876,101877],{"class":36,"line":37},[34,101878,101879],{"class":40},"# Stash changes\n",[34,101881,101882,101884],{"class":36,"line":44},[34,101883,7794],{"class":47},[34,101885,101886],{"class":54}," stash\n",[34,101888,101889,101891,101894,101896],{"class":36,"line":58},[34,101890,7794],{"class":47},[34,101892,101893],{"class":54}," stash",[34,101895,5037],{"class":50},[34,101897,100601],{"class":54},[34,101899,101900,101902,101904,101906],{"class":36,"line":65},[34,101901,7794],{"class":47},[34,101903,101893],{"class":54},[34,101905,43069],{"class":50},[34,101907,101908],{"class":40},"  # Include untracked files\n",[34,101910,101911],{"class":36,"line":71},[34,101912,62],{"emptyLinePlaceholder":61},[34,101914,101915],{"class":36,"line":77},[34,101916,101917],{"class":40},"# List stashes\n",[34,101919,101920,101922,101924],{"class":36,"line":82},[34,101921,7794],{"class":47},[34,101923,101893],{"class":54},[34,101925,7536],{"class":54},[34,101927,101928],{"class":36,"line":88},[34,101929,62],{"emptyLinePlaceholder":61},[34,101931,101932],{"class":36,"line":242},[34,101933,101934],{"class":40},"# Apply stash\n",[34,101936,101937,101939,101941,101943],{"class":36,"line":250},[34,101938,7794],{"class":47},[34,101940,101893],{"class":54},[34,101942,7090],{"class":54},[34,101944,101945],{"class":40},"        # Keep in stash list\n",[34,101947,101948,101950,101952,101955],{"class":36,"line":263},[34,101949,7794],{"class":47},[34,101951,101893],{"class":54},[34,101953,101954],{"class":54}," pop",[34,101956,101957],{"class":40},"          # Remove from stash list\n",[34,101959,101960,101962,101964,101966,101969,101971],{"class":36,"line":275},[34,101961,7794],{"class":47},[34,101963,101893],{"class":54},[34,101965,7090],{"class":54},[34,101967,101968],{"class":54}," stash@{",[34,101970,8318],{"class":50},[34,101972,693],{"class":54},[34,101974,101975],{"class":36,"line":700},[34,101976,62],{"emptyLinePlaceholder":61},[34,101978,101979],{"class":36,"line":706},[34,101980,101981],{"class":40},"# Drop stash\n",[34,101983,101984,101986,101988,101991,101993,101995],{"class":36,"line":715},[34,101985,7794],{"class":47},[34,101987,101893],{"class":54},[34,101989,101990],{"class":54}," drop",[34,101992,101968],{"class":54},[34,101994,2773],{"class":50},[34,101996,693],{"class":54},[34,101998,101999,102001,102003,102006],{"class":36,"line":725},[34,102000,7794],{"class":47},[34,102002,101893],{"class":54},[34,102004,102005],{"class":54}," clear",[34,102007,102008],{"class":40},"  # Drop all\n",[388,102010,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":102012},[102013],{"id":101869,"depth":44,"text":101447},"Stashing in Git.",{},{"title":101447,"description":102014},"git/stashing",[7794,100703,100704],"V6qfvvx3NoO_m5bWHAmOqAyiWMa9xYb8qCpOO72wjx4",{"id":102021,"title":101465,"body":102022,"date":402,"description":102209,"extension":404,"meta":102210,"navigation":61,"order":263,"path":101464,"seo":102211,"stem":102212,"subject":7794,"tags":102213,"__hash__":102214},"topics/git/tags.md",{"type":8,"value":102023,"toc":102206},[102024,102027,102204],[11,102025,101465],{"id":102026},"tags",[25,102028,102030],{"className":27,"code":102029,"language":29,"meta":30,"style":30},"# List tags\ngit tag\n\n# Create lightweight tag\ngit tag \u003Cname>\n\n# Create annotated tag\ngit tag -a \u003Cname> -m \"message\"\n\n# Tag specific commit\ngit tag \u003Cname> \u003Ccommit>\n\n# Push tags\ngit push origin \u003Ctag>\ngit push --tags\n\n# Delete tag\ngit tag -d \u003Cname>\ngit push origin --delete \u003Ctag>\n",[20,102031,102032,102037,102044,102048,102053,102067,102071,102076,102096,102100,102105,102127,102131,102136,102152,102161,102165,102170,102186],{"__ignoreMap":30},[34,102033,102034],{"class":36,"line":37},[34,102035,102036],{"class":40},"# List tags\n",[34,102038,102039,102041],{"class":36,"line":44},[34,102040,7794],{"class":47},[34,102042,102043],{"class":54}," tag\n",[34,102045,102046],{"class":36,"line":58},[34,102047,62],{"emptyLinePlaceholder":61},[34,102049,102050],{"class":36,"line":65},[34,102051,102052],{"class":40},"# Create lightweight tag\n",[34,102054,102055,102057,102059,102061,102063,102065],{"class":36,"line":71},[34,102056,7794],{"class":47},[34,102058,56984],{"class":54},[34,102060,5470],{"class":580},[34,102062,56907],{"class":54},[34,102064,5476],{"class":181},[34,102066,1248],{"class":580},[34,102068,102069],{"class":36,"line":77},[34,102070,62],{"emptyLinePlaceholder":61},[34,102072,102073],{"class":36,"line":82},[34,102074,102075],{"class":40},"# Create annotated tag\n",[34,102077,102078,102080,102082,102084,102086,102088,102090,102092,102094],{"class":36,"line":88},[34,102079,7794],{"class":47},[34,102081,56984],{"class":54},[34,102083,5059],{"class":50},[34,102085,5470],{"class":580},[34,102087,56907],{"class":54},[34,102089,5476],{"class":181},[34,102091,5691],{"class":580},[34,102093,5037],{"class":50},[34,102095,100601],{"class":54},[34,102097,102098],{"class":36,"line":242},[34,102099,62],{"emptyLinePlaceholder":61},[34,102101,102102],{"class":36,"line":250},[34,102103,102104],{"class":40},"# Tag specific commit\n",[34,102106,102107,102109,102111,102113,102115,102117,102119,102121,102123,102125],{"class":36,"line":263},[34,102108,7794],{"class":47},[34,102110,56984],{"class":54},[34,102112,5470],{"class":580},[34,102114,56907],{"class":54},[34,102116,5476],{"class":181},[34,102118,5691],{"class":580},[34,102120,5470],{"class":580},[34,102122,101017],{"class":54},[34,102124,16025],{"class":181},[34,102126,1248],{"class":580},[34,102128,102129],{"class":36,"line":275},[34,102130,62],{"emptyLinePlaceholder":61},[34,102132,102133],{"class":36,"line":700},[34,102134,102135],{"class":40},"# Push tags\n",[34,102137,102138,102140,102142,102144,102146,102148,102150],{"class":36,"line":706},[34,102139,7794],{"class":47},[34,102141,56867],{"class":54},[34,102143,100964],{"class":54},[34,102145,5470],{"class":580},[34,102147,56856],{"class":54},[34,102149,13957],{"class":181},[34,102151,1248],{"class":580},[34,102153,102154,102156,102158],{"class":36,"line":715},[34,102155,7794],{"class":47},[34,102157,56867],{"class":54},[34,102159,102160],{"class":50}," --tags\n",[34,102162,102163],{"class":36,"line":725},[34,102164,62],{"emptyLinePlaceholder":61},[34,102166,102167],{"class":36,"line":734},[34,102168,102169],{"class":40},"# Delete tag\n",[34,102171,102172,102174,102176,102178,102180,102182,102184],{"class":36,"line":742},[34,102173,7794],{"class":47},[34,102175,56984],{"class":54},[34,102177,9750],{"class":50},[34,102179,5470],{"class":580},[34,102181,56907],{"class":54},[34,102183,5476],{"class":181},[34,102185,1248],{"class":580},[34,102187,102188,102190,102192,102194,102196,102198,102200,102202],{"class":36,"line":748},[34,102189,7794],{"class":47},[34,102191,56867],{"class":54},[34,102193,100964],{"class":54},[34,102195,100967],{"class":50},[34,102197,5470],{"class":580},[34,102199,56856],{"class":54},[34,102201,13957],{"class":181},[34,102203,1248],{"class":580},[388,102205,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":102207},[102208],{"id":102026,"depth":44,"text":101465},"Tags in Git.",{},{"title":101465,"description":102209},"git/tags",[7794,100703,100704],"5P6X4HuudR9G79EGYP9aMjJB3LLFEvUW4aDCqJtvBdg",{"id":102216,"title":101453,"body":102217,"date":402,"description":102420,"extension":404,"meta":102421,"navigation":61,"order":242,"path":101452,"seo":102422,"stem":102423,"subject":7794,"tags":102424,"__hash__":102425},"topics/git/undoing-changes.md",{"type":8,"value":102218,"toc":102417},[102219,102222,102415],[11,102220,101453],{"id":102221},"undoing-changes",[25,102223,102225],{"className":27,"code":102224,"language":29,"meta":30,"style":30},"# Unstage files\ngit reset HEAD \u003Cfile>\ngit restore --staged \u003Cfile>\n\n# Discard changes in working directory\ngit checkout -- \u003Cfile>\ngit restore \u003Cfile>\n\n# Reset to previous commit\ngit reset --soft HEAD~1   # Keep changes staged\ngit reset --mixed HEAD~1  # Keep changes unstaged\ngit reset --hard HEAD~1   # Discard changes\n\n# Revert commit (creates new commit)\ngit revert \u003Ccommit>\n\n# Restore deleted file\ngit checkout \u003Ccommit> -- \u003Cfile>\n",[20,102226,102227,102232,102250,102268,102272,102277,102293,102307,102311,102316,102331,102345,102359,102363,102368,102382,102386,102391],{"__ignoreMap":30},[34,102228,102229],{"class":36,"line":37},[34,102230,102231],{"class":40},"# Unstage files\n",[34,102233,102234,102236,102239,102242,102244,102246,102248],{"class":36,"line":44},[34,102235,7794],{"class":47},[34,102237,102238],{"class":54}," reset",[34,102240,102241],{"class":54}," HEAD",[34,102243,5470],{"class":580},[34,102245,100553],{"class":54},[34,102247,5476],{"class":181},[34,102249,1248],{"class":580},[34,102251,102252,102254,102257,102260,102262,102264,102266],{"class":36,"line":58},[34,102253,7794],{"class":47},[34,102255,102256],{"class":54}," restore",[34,102258,102259],{"class":50}," --staged",[34,102261,5470],{"class":580},[34,102263,100553],{"class":54},[34,102265,5476],{"class":181},[34,102267,1248],{"class":580},[34,102269,102270],{"class":36,"line":65},[34,102271,62],{"emptyLinePlaceholder":61},[34,102273,102274],{"class":36,"line":71},[34,102275,102276],{"class":40},"# Discard changes in working directory\n",[34,102278,102279,102281,102283,102285,102287,102289,102291],{"class":36,"line":77},[34,102280,7794],{"class":47},[34,102282,96759],{"class":54},[34,102284,99171],{"class":50},[34,102286,5470],{"class":580},[34,102288,100553],{"class":54},[34,102290,5476],{"class":181},[34,102292,1248],{"class":580},[34,102294,102295,102297,102299,102301,102303,102305],{"class":36,"line":82},[34,102296,7794],{"class":47},[34,102298,102256],{"class":54},[34,102300,5470],{"class":580},[34,102302,100553],{"class":54},[34,102304,5476],{"class":181},[34,102306,1248],{"class":580},[34,102308,102309],{"class":36,"line":88},[34,102310,62],{"emptyLinePlaceholder":61},[34,102312,102313],{"class":36,"line":242},[34,102314,102315],{"class":40},"# Reset to previous commit\n",[34,102317,102318,102320,102322,102325,102328],{"class":36,"line":250},[34,102319,7794],{"class":47},[34,102321,102238],{"class":54},[34,102323,102324],{"class":50}," --soft",[34,102326,102327],{"class":54}," HEAD~1",[34,102329,102330],{"class":40},"   # Keep changes staged\n",[34,102332,102333,102335,102337,102340,102342],{"class":36,"line":263},[34,102334,7794],{"class":47},[34,102336,102238],{"class":54},[34,102338,102339],{"class":50}," --mixed",[34,102341,102327],{"class":54},[34,102343,102344],{"class":40},"  # Keep changes unstaged\n",[34,102346,102347,102349,102351,102354,102356],{"class":36,"line":275},[34,102348,7794],{"class":47},[34,102350,102238],{"class":54},[34,102352,102353],{"class":50}," --hard",[34,102355,102327],{"class":54},[34,102357,102358],{"class":40},"   # Discard changes\n",[34,102360,102361],{"class":36,"line":700},[34,102362,62],{"emptyLinePlaceholder":61},[34,102364,102365],{"class":36,"line":706},[34,102366,102367],{"class":40},"# Revert commit (creates new commit)\n",[34,102369,102370,102372,102374,102376,102378,102380],{"class":36,"line":715},[34,102371,7794],{"class":47},[34,102373,98222],{"class":54},[34,102375,5470],{"class":580},[34,102377,101017],{"class":54},[34,102379,16025],{"class":181},[34,102381,1248],{"class":580},[34,102383,102384],{"class":36,"line":725},[34,102385,62],{"emptyLinePlaceholder":61},[34,102387,102388],{"class":36,"line":734},[34,102389,102390],{"class":40},"# Restore deleted file\n",[34,102392,102393,102395,102397,102399,102401,102403,102405,102407,102409,102411,102413],{"class":36,"line":742},[34,102394,7794],{"class":47},[34,102396,96759],{"class":54},[34,102398,5470],{"class":580},[34,102400,101017],{"class":54},[34,102402,16025],{"class":181},[34,102404,5691],{"class":580},[34,102406,99171],{"class":50},[34,102408,5470],{"class":580},[34,102410,100553],{"class":54},[34,102412,5476],{"class":181},[34,102414,1248],{"class":580},[388,102416,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":102418},[102419],{"id":102221,"depth":44,"text":101453},"Undoing Changes in Git.",{},{"title":101453,"description":102420},"git/undoing-changes",[7794,100703,100704],"IK0fR_Vq2D5pqPK2gzXKIqFzyKYuhNeh6wpbAdmJbTw",{"id":102427,"title":12204,"body":102428,"date":402,"description":102609,"extension":404,"meta":102610,"navigation":61,"order":700,"path":101474,"seo":102611,"stem":102612,"subject":7794,"tags":102613,"__hash__":102614},"topics/git/useful-commands.md",{"type":8,"value":102429,"toc":102606},[102430,102432,102604],[11,102431,12204],{"id":12948},[25,102433,102435],{"className":27,"code":102434,"language":29,"meta":30,"style":30},"# Show who changed what\ngit blame \u003Cfile>\n\n# Search commits\ngit log --grep=\"pattern\"\ngit log -S \"code\"  # Search for code changes\n\n# Find commit that introduced bug\ngit bisect start\ngit bisect bad\ngit bisect good \u003Ccommit>\n\n# Clean untracked files\ngit clean -n  # Dry run\ngit clean -f  # Force clean\ngit clean -fd # Include directories\n\n# Create archive\ngit archive --format=zip HEAD > archive.zip\n",[20,102436,102437,102442,102457,102461,102466,102478,102492,102496,102501,102510,102519,102536,102540,102545,102556,102567,102579,102583,102588],{"__ignoreMap":30},[34,102438,102439],{"class":36,"line":37},[34,102440,102441],{"class":40},"# Show who changed what\n",[34,102443,102444,102446,102449,102451,102453,102455],{"class":36,"line":44},[34,102445,7794],{"class":47},[34,102447,102448],{"class":54}," blame",[34,102450,5470],{"class":580},[34,102452,100553],{"class":54},[34,102454,5476],{"class":181},[34,102456,1248],{"class":580},[34,102458,102459],{"class":36,"line":58},[34,102460,62],{"emptyLinePlaceholder":61},[34,102462,102463],{"class":36,"line":65},[34,102464,102465],{"class":40},"# Search commits\n",[34,102467,102468,102470,102472,102475],{"class":36,"line":71},[34,102469,7794],{"class":47},[34,102471,100651],{"class":54},[34,102473,102474],{"class":50}," --grep=",[34,102476,102477],{"class":54},"\"pattern\"\n",[34,102479,102480,102482,102484,102486,102489],{"class":36,"line":77},[34,102481,7794],{"class":47},[34,102483,100651],{"class":54},[34,102485,7773],{"class":50},[34,102487,102488],{"class":54}," \"code\"",[34,102490,102491],{"class":40},"  # Search for code changes\n",[34,102493,102494],{"class":36,"line":82},[34,102495,62],{"emptyLinePlaceholder":61},[34,102497,102498],{"class":36,"line":88},[34,102499,102500],{"class":40},"# Find commit that introduced bug\n",[34,102502,102503,102505,102508],{"class":36,"line":242},[34,102504,7794],{"class":47},[34,102506,102507],{"class":54}," bisect",[34,102509,48648],{"class":54},[34,102511,102512,102514,102516],{"class":36,"line":250},[34,102513,7794],{"class":47},[34,102515,102507],{"class":54},[34,102517,102518],{"class":54}," bad\n",[34,102520,102521,102523,102525,102528,102530,102532,102534],{"class":36,"line":263},[34,102522,7794],{"class":47},[34,102524,102507],{"class":54},[34,102526,102527],{"class":54}," good",[34,102529,5470],{"class":580},[34,102531,101017],{"class":54},[34,102533,16025],{"class":181},[34,102535,1248],{"class":580},[34,102537,102538],{"class":36,"line":275},[34,102539,62],{"emptyLinePlaceholder":61},[34,102541,102542],{"class":36,"line":700},[34,102543,102544],{"class":40},"# Clean untracked files\n",[34,102546,102547,102549,102551,102553],{"class":36,"line":706},[34,102548,7794],{"class":47},[34,102550,53897],{"class":54},[34,102552,7093],{"class":50},[34,102554,102555],{"class":40},"  # Dry run\n",[34,102557,102558,102560,102562,102564],{"class":36,"line":715},[34,102559,7794],{"class":47},[34,102561,53897],{"class":54},[34,102563,6001],{"class":50},[34,102565,102566],{"class":40},"  # Force clean\n",[34,102568,102569,102571,102573,102576],{"class":36,"line":725},[34,102570,7794],{"class":47},[34,102572,53897],{"class":54},[34,102574,102575],{"class":50}," -fd",[34,102577,102578],{"class":40}," # Include directories\n",[34,102580,102581],{"class":36,"line":734},[34,102582,62],{"emptyLinePlaceholder":61},[34,102584,102585],{"class":36,"line":742},[34,102586,102587],{"class":40},"# Create archive\n",[34,102589,102590,102592,102594,102597,102599,102601],{"class":36,"line":748},[34,102591,7794],{"class":47},[34,102593,99485],{"class":54},[34,102595,102596],{"class":50}," --format=zip",[34,102598,102241],{"class":54},[34,102600,9009],{"class":580},[34,102602,102603],{"class":54}," archive.zip\n",[388,102605,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":102607},[102608],{"id":12948,"depth":44,"text":12204},"Useful Commands in Git.",{},{"title":12204,"description":102609},"git/useful-commands",[7794,100703,100704],"H3YJ3yZukMDagoyeJScH-Kk3EDgxy2tGPOce3UZQOsA",{"id":102616,"title":101459,"body":102617,"date":402,"description":102762,"extension":404,"meta":102763,"navigation":61,"order":250,"path":101458,"seo":102764,"stem":102765,"subject":7794,"tags":102766,"__hash__":102767},"topics/git/viewing-differences.md",{"type":8,"value":102618,"toc":102759},[102619,102622,102757],[11,102620,101459],{"id":102621},"viewing-differences",[25,102623,102625],{"className":27,"code":102624,"language":29,"meta":30,"style":30},"# Working directory vs staging\ngit diff\n\n# Staging vs last commit\ngit diff --staged\ngit diff --cached\n\n# Compare commits\ngit diff \u003Ccommit1> \u003Ccommit2>\n\n# Compare branches\ngit diff \u003Cbranch1>..\u003Cbranch2>\n\n# Show specific commit\ngit show \u003Ccommit>\ngit show HEAD~2\n",[20,102626,102627,102632,102639,102643,102648,102657,102666,102670,102675,102695,102699,102704,102725,102729,102734,102748],{"__ignoreMap":30},[34,102628,102629],{"class":36,"line":37},[34,102630,102631],{"class":40},"# Working directory vs staging\n",[34,102633,102634,102636],{"class":36,"line":44},[34,102635,7794],{"class":47},[34,102637,102638],{"class":54}," diff\n",[34,102640,102641],{"class":36,"line":58},[34,102642,62],{"emptyLinePlaceholder":61},[34,102644,102645],{"class":36,"line":65},[34,102646,102647],{"class":40},"# Staging vs last commit\n",[34,102649,102650,102652,102654],{"class":36,"line":71},[34,102651,7794],{"class":47},[34,102653,7554],{"class":54},[34,102655,102656],{"class":50}," --staged\n",[34,102658,102659,102661,102663],{"class":36,"line":77},[34,102660,7794],{"class":47},[34,102662,7554],{"class":54},[34,102664,102665],{"class":50}," --cached\n",[34,102667,102668],{"class":36,"line":82},[34,102669,62],{"emptyLinePlaceholder":61},[34,102671,102672],{"class":36,"line":88},[34,102673,102674],{"class":40},"# Compare commits\n",[34,102676,102677,102679,102681,102683,102686,102688,102690,102692],{"class":36,"line":242},[34,102678,7794],{"class":47},[34,102680,7554],{"class":54},[34,102682,5470],{"class":580},[34,102684,102685],{"class":54},"commit",[34,102687,6168],{"class":580},[34,102689,5470],{"class":580},[34,102691,102685],{"class":54},[34,102693,102694],{"class":580},"2>\n",[34,102696,102697],{"class":36,"line":250},[34,102698,62],{"emptyLinePlaceholder":61},[34,102700,102701],{"class":36,"line":263},[34,102702,102703],{"class":40},"# Compare branches\n",[34,102705,102706,102708,102710,102712,102715,102717,102719,102721,102723],{"class":36,"line":275},[34,102707,7794],{"class":47},[34,102709,7554],{"class":54},[34,102711,5470],{"class":580},[34,102713,102714],{"class":54},"branch",[34,102716,6168],{"class":580},[34,102718,101074],{"class":54},[34,102720,815],{"class":580},[34,102722,102714],{"class":54},[34,102724,102694],{"class":580},[34,102726,102727],{"class":36,"line":700},[34,102728,62],{"emptyLinePlaceholder":61},[34,102730,102731],{"class":36,"line":706},[34,102732,102733],{"class":40},"# Show specific commit\n",[34,102735,102736,102738,102740,102742,102744,102746],{"class":36,"line":715},[34,102737,7794],{"class":47},[34,102739,6558],{"class":54},[34,102741,5470],{"class":580},[34,102743,101017],{"class":54},[34,102745,16025],{"class":181},[34,102747,1248],{"class":580},[34,102749,102750,102752,102754],{"class":36,"line":725},[34,102751,7794],{"class":47},[34,102753,6558],{"class":54},[34,102755,102756],{"class":54}," HEAD~2\n",[388,102758,5578],{},{"title":30,"searchDepth":44,"depth":44,"links":102760},[102761],{"id":102621,"depth":44,"text":101459},"Viewing Differences in Git.",{},{"title":101459,"description":102762},"git/viewing-differences",[7794,100703,100704],"pBVDjXAbiEoOxeW9BlsXFjasMBCLP4OqIj4XOHK_Fyg",{"id":102769,"title":102770,"body":102771,"date":402,"description":103068,"extension":404,"meta":103069,"navigation":61,"order":37,"path":103070,"seo":103071,"stem":103072,"subject":102782,"tags":103073,"__hash__":103075},"topics/gleam/overview.md","Gleam",{"type":8,"value":102772,"toc":103058},[102773,102775,102778,102795,102798,102801,102829,102831,102834,102871,102873,102876,102909,102913,102916,102950,102952,102955,102992,102994,102997,103030,103034,103037,103056],[11,102774,97],{"id":96},[16,102776,102777],{},"To get started with Gleam, download it from the official website and follow the instructions for your platform.",[25,102779,102783],{"className":102780,"code":102781,"language":102782,"meta":30,"style":30},"language-gleam shiki shiki-themes github-light github-dark","# Shell commands to install Gleam\nwget https://gleam.run/download && tar -xvf gleam.tar && sudo mv gleam /usr/local/bin\n","gleam",[20,102784,102785,102790],{"__ignoreMap":30},[34,102786,102787],{"class":36,"line":37},[34,102788,102789],{},"# Shell commands to install Gleam\n",[34,102791,102792],{"class":36,"line":44},[34,102793,102794],{},"wget https://gleam.run/download && tar -xvf gleam.tar && sudo mv gleam /usr/local/bin\n",[11,102796,102797],{"id":33298},"Types",[16,102799,102800],{},"Gleam uses a strong, static type system that helps catch bugs early. Below is an example of defining types in Gleam:",[25,102802,102804],{"className":102780,"code":102803,"language":102782,"meta":30,"style":30},"type Box(a) {\n  Box(a)\n}\n\nlet example: Box(Int) = Box(42)\n",[20,102805,102806,102811,102816,102820,102824],{"__ignoreMap":30},[34,102807,102808],{"class":36,"line":37},[34,102809,102810],{},"type Box(a) {\n",[34,102812,102813],{"class":36,"line":44},[34,102814,102815],{},"  Box(a)\n",[34,102817,102818],{"class":36,"line":58},[34,102819,693],{},[34,102821,102822],{"class":36,"line":65},[34,102823,62],{"emptyLinePlaceholder":61},[34,102825,102826],{"class":36,"line":71},[34,102827,102828],{},"let example: Box(Int) = Box(42)\n",[11,102830,10991],{"id":10996},[16,102832,102833],{},"Functions in Gleam are first-class citizens:",[25,102835,102837],{"className":102780,"code":102836,"language":102782,"meta":30,"style":30},"pub fn add(x: Int, y: Int) -> Int {\n  x + y\n}\n\npub fn greet(name: String) {\n  io.println(\"Hello, \" \u003C> name \u003C> \"!\")\n}\n",[20,102838,102839,102844,102849,102853,102857,102862,102867],{"__ignoreMap":30},[34,102840,102841],{"class":36,"line":37},[34,102842,102843],{},"pub fn add(x: Int, y: Int) -> Int {\n",[34,102845,102846],{"class":36,"line":44},[34,102847,102848],{},"  x + y\n",[34,102850,102851],{"class":36,"line":58},[34,102852,693],{},[34,102854,102855],{"class":36,"line":65},[34,102856,62],{"emptyLinePlaceholder":61},[34,102858,102859],{"class":36,"line":71},[34,102860,102861],{},"pub fn greet(name: String) {\n",[34,102863,102864],{"class":36,"line":77},[34,102865,102866],{},"  io.println(\"Hello, \" \u003C> name \u003C> \"!\")\n",[34,102868,102869],{"class":36,"line":82},[34,102870,693],{},[11,102872,61477],{"id":61476},[16,102874,102875],{},"Pattern matching enables expressive and safe branching:",[25,102877,102879],{"className":102780,"code":102878,"language":102782,"meta":30,"style":30},"pub fn is_even(n: Int) -> Bool {\n  case n % 2 {\n    0 -> True\n    _ -> False\n  }\n}\n",[20,102880,102881,102886,102891,102896,102901,102905],{"__ignoreMap":30},[34,102882,102883],{"class":36,"line":37},[34,102884,102885],{},"pub fn is_even(n: Int) -> Bool {\n",[34,102887,102888],{"class":36,"line":44},[34,102889,102890],{},"  case n % 2 {\n",[34,102892,102893],{"class":36,"line":58},[34,102894,102895],{},"    0 -> True\n",[34,102897,102898],{"class":36,"line":65},[34,102899,102900],{},"    _ -> False\n",[34,102902,102903],{"class":36,"line":71},[34,102904,857],{},[34,102906,102907],{"class":36,"line":77},[34,102908,693],{},[11,102910,102912],{"id":102911},"pipelines","Pipelines",[16,102914,102915],{},"Chaining computations in Gleam is simple using pipelines:",[25,102917,102919],{"className":102780,"code":102918,"language":102782,"meta":30,"style":30},"pub fn process(data: Int) -> String {\n  data\n  |> is_even\n  |> Bool.to_string\n  |> flip(\" even: \")\n}\n",[20,102920,102921,102926,102931,102936,102941,102946],{"__ignoreMap":30},[34,102922,102923],{"class":36,"line":37},[34,102924,102925],{},"pub fn process(data: Int) -> String {\n",[34,102927,102928],{"class":36,"line":44},[34,102929,102930],{},"  data\n",[34,102932,102933],{"class":36,"line":58},[34,102934,102935],{},"  |> is_even\n",[34,102937,102938],{"class":36,"line":65},[34,102939,102940],{},"  |> Bool.to_string\n",[34,102942,102943],{"class":36,"line":71},[34,102944,102945],{},"  |> flip(\" even: \")\n",[34,102947,102948],{"class":36,"line":77},[34,102949,693],{},[11,102951,88402],{"id":88401},[16,102953,102954],{},"Modules group related functionality. Here’s a snippet defining and using a module:",[25,102956,102958],{"className":102780,"code":102957,"language":102782,"meta":30,"style":30},"module math\n\ndouble(n: Int) -> Int {\n  n * 2\n}\n\nio.println(math.double(4))\n",[20,102959,102960,102965,102969,102974,102979,102983,102987],{"__ignoreMap":30},[34,102961,102962],{"class":36,"line":37},[34,102963,102964],{},"module math\n",[34,102966,102967],{"class":36,"line":44},[34,102968,62],{"emptyLinePlaceholder":61},[34,102970,102971],{"class":36,"line":58},[34,102972,102973],{},"double(n: Int) -> Int {\n",[34,102975,102976],{"class":36,"line":65},[34,102977,102978],{},"  n * 2\n",[34,102980,102981],{"class":36,"line":71},[34,102982,693],{},[34,102984,102985],{"class":36,"line":77},[34,102986,62],{"emptyLinePlaceholder":61},[34,102988,102989],{"class":36,"line":82},[34,102990,102991],{},"io.println(math.double(4))\n",[11,102993,19352],{"id":19357},[16,102995,102996],{},"Gleam uses results and options for failure handling instead of exceptions:",[25,102998,103000],{"className":102780,"code":102999,"language":102782,"meta":30,"style":30},"fn safe_divide(x: Int, y: Int) -> Result(Int, String) {\n  case y {\n    0 -> Error(\"Division by zero\")\n    _ -> Ok(x / y)\n  }\n}\n",[20,103001,103002,103007,103012,103017,103022,103026],{"__ignoreMap":30},[34,103003,103004],{"class":36,"line":37},[34,103005,103006],{},"fn safe_divide(x: Int, y: Int) -> Result(Int, String) {\n",[34,103008,103009],{"class":36,"line":44},[34,103010,103011],{},"  case y {\n",[34,103013,103014],{"class":36,"line":58},[34,103015,103016],{},"    0 -> Error(\"Division by zero\")\n",[34,103018,103019],{"class":36,"line":65},[34,103020,103021],{},"    _ -> Ok(x / y)\n",[34,103023,103024],{"class":36,"line":71},[34,103025,857],{},[34,103027,103028],{"class":36,"line":77},[34,103029,693],{},[11,103031,103033],{"id":103032},"lists-and-iterators","Lists and Iterators",[16,103035,103036],{},"Gleam makes working with lists straightforward:",[25,103038,103040],{"className":102780,"code":103039,"language":102782,"meta":30,"style":30},"let fruits = [\"apple\", \"banana\", \"cherry\"]\n\nlet uppercase_fruits = lists.map(fruits, fn(f) { string.uppercase(f) })\n",[20,103041,103042,103047,103051],{"__ignoreMap":30},[34,103043,103044],{"class":36,"line":37},[34,103045,103046],{},"let fruits = [\"apple\", \"banana\", \"cherry\"]\n",[34,103048,103049],{"class":36,"line":44},[34,103050,62],{"emptyLinePlaceholder":61},[34,103052,103053],{"class":36,"line":58},[34,103054,103055],{},"let uppercase_fruits = lists.map(fruits, fn(f) { string.uppercase(f) })\n",[388,103057,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":103059},[103060,103061,103062,103063,103064,103065,103066,103067],{"id":96,"depth":44,"text":97},{"id":33298,"depth":44,"text":102797},{"id":10996,"depth":44,"text":10991},{"id":61476,"depth":44,"text":61477},{"id":102911,"depth":44,"text":102912},{"id":88401,"depth":44,"text":88402},{"id":19357,"depth":44,"text":19352},{"id":103032,"depth":44,"text":103033},"A type-safe functional language that runs on the Erlang VM and JavaScript.",{},"/gleam/overview",{"title":102770,"description":103068},"gleam/overview",[102782,61662,62515,103074],"beam","OjVUG4EHirfKVOgXjMju3kK472YOPhAmSiNrdQnFUmg",{"id":103077,"title":103078,"body":103079,"date":402,"description":103493,"extension":404,"meta":103494,"navigation":61,"order":37,"path":103495,"seo":103496,"stem":103497,"subject":103152,"tags":103498,"__hash__":103501},"topics/glow/overview.md","Glow",{"type":8,"value":103080,"toc":103483},[103081,103083,103136,103138,103195,103199,103235,103239,103270,103273,103314,103316,103331,103391,103395,103416,103418,103481],[11,103082,97],{"id":96},[25,103084,103086],{"className":27,"code":103085,"language":29,"meta":30,"style":30},"# Homebrew\nbrew install glow\n\n# Go\ngo install github.com/charmbracelet/glow@latest\n\n# Arch Linux\npacman -S glow\n",[20,103087,103088,103092,103101,103105,103110,103120,103124,103128],{"__ignoreMap":30},[34,103089,103090],{"class":36,"line":37},[34,103091,15822],{"class":40},[34,103093,103094,103096,103098],{"class":36,"line":44},[34,103095,115],{"class":47},[34,103097,118],{"class":54},[34,103099,103100],{"class":54}," glow\n",[34,103102,103103],{"class":36,"line":58},[34,103104,62],{"emptyLinePlaceholder":61},[34,103106,103107],{"class":36,"line":65},[34,103108,103109],{"class":40},"# Go\n",[34,103111,103112,103115,103117],{"class":36,"line":71},[34,103113,103114],{"class":47},"go",[34,103116,118],{"class":54},[34,103118,103119],{"class":54}," github.com/charmbracelet/glow@latest\n",[34,103121,103122],{"class":36,"line":77},[34,103123,62],{"emptyLinePlaceholder":61},[34,103125,103126],{"class":36,"line":82},[34,103127,78200],{"class":40},[34,103129,103130,103132,103134],{"class":36,"line":88},[34,103131,7770],{"class":47},[34,103133,7773],{"class":50},[34,103135,103100],{"class":54},[11,103137,89702],{"id":89701},[25,103139,103141],{"className":27,"code":103140,"language":29,"meta":30,"style":30},"# Render a local markdown file\nglow README.md\n\n# Render from stdin\necho \"# Hello\" | glow -\n\n# Render from a URL\nglow https://raw.githubusercontent.com/charmbracelet/glow/main/README.md\n",[20,103142,103143,103148,103156,103160,103165,103179,103183,103188],{"__ignoreMap":30},[34,103144,103145],{"class":36,"line":37},[34,103146,103147],{"class":40},"# Render a local markdown file\n",[34,103149,103150,103153],{"class":36,"line":44},[34,103151,103152],{"class":47},"glow",[34,103154,103155],{"class":54}," README.md\n",[34,103157,103158],{"class":36,"line":58},[34,103159,62],{"emptyLinePlaceholder":61},[34,103161,103162],{"class":36,"line":65},[34,103163,103164],{"class":40},"# Render from stdin\n",[34,103166,103167,103169,103172,103174,103177],{"class":36,"line":71},[34,103168,10120],{"class":50},[34,103170,103171],{"class":54}," \"# Hello\"",[34,103173,7197],{"class":580},[34,103175,103176],{"class":47}," glow",[34,103178,27838],{"class":54},[34,103180,103181],{"class":36,"line":77},[34,103182,62],{"emptyLinePlaceholder":61},[34,103184,103185],{"class":36,"line":82},[34,103186,103187],{"class":40},"# Render from a URL\n",[34,103189,103190,103192],{"class":36,"line":88},[34,103191,103152],{"class":47},[34,103193,103194],{"class":54}," https://raw.githubusercontent.com/charmbracelet/glow/main/README.md\n",[11,103196,103198],{"id":103197},"pager-mode","Pager Mode",[25,103200,103202],{"className":27,"code":103201,"language":29,"meta":30,"style":30},"# Open in pager (scrollable, like less)\nglow -p README.md\n\n# Set pager as default in config\nglow --config  # opens config file\n",[20,103203,103204,103209,103217,103221,103226],{"__ignoreMap":30},[34,103205,103206],{"class":36,"line":37},[34,103207,103208],{"class":40},"# Open in pager (scrollable, like less)\n",[34,103210,103211,103213,103215],{"class":36,"line":44},[34,103212,103152],{"class":47},[34,103214,5275],{"class":50},[34,103216,103155],{"class":54},[34,103218,103219],{"class":36,"line":58},[34,103220,62],{"emptyLinePlaceholder":61},[34,103222,103223],{"class":36,"line":65},[34,103224,103225],{"class":40},"# Set pager as default in config\n",[34,103227,103228,103230,103232],{"class":36,"line":71},[34,103229,103152],{"class":47},[34,103231,28002],{"class":50},[34,103233,103234],{"class":40},"  # opens config file\n",[11,103236,103238],{"id":103237},"tui-browser","TUI Browser",[25,103240,103242],{"className":27,"code":103241,"language":29,"meta":30,"style":30},"# Launch interactive TUI to browse local markdown files\nglow\n\n# Browse a specific directory\nglow ~/docs/\n",[20,103243,103244,103249,103254,103258,103263],{"__ignoreMap":30},[34,103245,103246],{"class":36,"line":37},[34,103247,103248],{"class":40},"# Launch interactive TUI to browse local markdown files\n",[34,103250,103251],{"class":36,"line":44},[34,103252,103253],{"class":47},"glow\n",[34,103255,103256],{"class":36,"line":58},[34,103257,62],{"emptyLinePlaceholder":61},[34,103259,103260],{"class":36,"line":65},[34,103261,103262],{"class":40},"# Browse a specific directory\n",[34,103264,103265,103267],{"class":36,"line":71},[34,103266,103152],{"class":47},[34,103268,103269],{"class":54}," ~/docs/\n",[11,103271,103272],{"id":38616},"Styling",[25,103274,103276],{"className":27,"code":103275,"language":29,"meta":30,"style":30},"# Use a built-in style (dark, light, notty, dracula, tokyo-night)\nglow -s dark README.md\n\n# Use a custom style file (JSON)\nglow -s ~/.config/glow/style.json README.md\n",[20,103277,103278,103283,103294,103298,103303],{"__ignoreMap":30},[34,103279,103280],{"class":36,"line":37},[34,103281,103282],{"class":40},"# Use a built-in style (dark, light, notty, dracula, tokyo-night)\n",[34,103284,103285,103287,103289,103292],{"class":36,"line":44},[34,103286,103152],{"class":47},[34,103288,5487],{"class":50},[34,103290,103291],{"class":54}," dark",[34,103293,103155],{"class":54},[34,103295,103296],{"class":36,"line":58},[34,103297,62],{"emptyLinePlaceholder":61},[34,103299,103300],{"class":36,"line":65},[34,103301,103302],{"class":40},"# Use a custom style file (JSON)\n",[34,103304,103305,103307,103309,103312],{"class":36,"line":71},[34,103306,103152],{"class":47},[34,103308,5487],{"class":50},[34,103310,103311],{"class":54}," ~/.config/glow/style.json",[34,103313,103155],{"class":54},[11,103315,80860],{"id":80859},[25,103317,103319],{"className":27,"code":103318,"language":29,"meta":30,"style":30},"# Location: ~/.config/glow/glow.yml\n# Example config:\n",[20,103320,103321,103326],{"__ignoreMap":30},[34,103322,103323],{"class":36,"line":37},[34,103324,103325],{"class":40},"# Location: ~/.config/glow/glow.yml\n",[34,103327,103328],{"class":36,"line":44},[34,103329,103330],{"class":40},"# Example config:\n",[25,103332,103334],{"className":168,"code":103333,"language":170,"meta":30,"style":30},"# ~/.config/glow/glow.yml\nstyle: \"dark\"        # default style\npager: true          # always use pager\nwidth: 80            # max render width\nmouse: false         # mouse support in TUI\n",[20,103335,103336,103341,103353,103365,103378],{"__ignoreMap":30},[34,103337,103338],{"class":36,"line":37},[34,103339,103340],{"class":40},"# ~/.config/glow/glow.yml\n",[34,103342,103343,103345,103347,103350],{"class":36,"line":44},[34,103344,388],{"class":177},[34,103346,182],{"class":181},[34,103348,103349],{"class":54},"\"dark\"",[34,103351,103352],{"class":40},"        # default style\n",[34,103354,103355,103358,103360,103362],{"class":36,"line":58},[34,103356,103357],{"class":177},"pager",[34,103359,182],{"class":181},[34,103361,632],{"class":50},[34,103363,103364],{"class":40},"          # always use pager\n",[34,103366,103367,103370,103372,103375],{"class":36,"line":65},[34,103368,103369],{"class":177},"width",[34,103371,182],{"class":181},[34,103373,103374],{"class":50},"80",[34,103376,103377],{"class":40},"            # max render width\n",[34,103379,103380,103383,103385,103388],{"class":36,"line":71},[34,103381,103382],{"class":177},"mouse",[34,103384,182],{"class":181},[34,103386,103387],{"class":50},"false",[34,103389,103390],{"class":40},"         # mouse support in TUI\n",[11,103392,103394],{"id":103393},"width-control","Width Control",[25,103396,103398],{"className":27,"code":103397,"language":29,"meta":30,"style":30},"# Limit render width (default: terminal width, max 120)\nglow -w 80 README.md\n",[20,103399,103400,103405],{"__ignoreMap":30},[34,103401,103402],{"class":36,"line":37},[34,103403,103404],{"class":40},"# Limit render width (default: terminal width, max 120)\n",[34,103406,103407,103409,103411,103414],{"class":36,"line":44},[34,103408,103152],{"class":47},[34,103410,44733],{"class":50},[34,103412,103413],{"class":50}," 80",[34,103415,103155],{"class":54},[11,103417,9207],{"id":9206},[25,103419,103421],{"className":27,"code":103420,"language":29,"meta":30,"style":30},"glow -p README.md        # pager mode\nglow -s light README.md  # light style\nglow -w 100 README.md    # set width\nglow --version           # show version\nglow --help              # show help\n",[20,103422,103423,103435,103449,103462,103471],{"__ignoreMap":30},[34,103424,103425,103427,103429,103432],{"class":36,"line":37},[34,103426,103152],{"class":47},[34,103428,5275],{"class":50},[34,103430,103431],{"class":54}," README.md",[34,103433,103434],{"class":40},"        # pager mode\n",[34,103436,103437,103439,103441,103444,103446],{"class":36,"line":44},[34,103438,103152],{"class":47},[34,103440,5487],{"class":50},[34,103442,103443],{"class":54}," light",[34,103445,103431],{"class":54},[34,103447,103448],{"class":40},"  # light style\n",[34,103450,103451,103453,103455,103457,103459],{"class":36,"line":58},[34,103452,103152],{"class":47},[34,103454,44733],{"class":50},[34,103456,25168],{"class":50},[34,103458,103431],{"class":54},[34,103460,103461],{"class":40},"    # set width\n",[34,103463,103464,103466,103468],{"class":36,"line":65},[34,103465,103152],{"class":47},[34,103467,17717],{"class":50},[34,103469,103470],{"class":40},"           # show version\n",[34,103472,103473,103475,103478],{"class":36,"line":71},[34,103474,103152],{"class":47},[34,103476,103477],{"class":50}," --help",[34,103479,103480],{"class":40},"              # show help\n",[388,103482,7685],{},{"title":30,"searchDepth":44,"depth":44,"links":103484},[103485,103486,103487,103488,103489,103490,103491,103492],{"id":96,"depth":44,"text":97},{"id":89701,"depth":44,"text":89702},{"id":103197,"depth":44,"text":103198},{"id":103237,"depth":44,"text":103238},{"id":38616,"depth":44,"text":103272},{"id":80859,"depth":44,"text":80860},{"id":103393,"depth":44,"text":103394},{"id":9206,"depth":44,"text":9207},"Render Markdown in the terminal with style using Glow, a CLI tool from Charm.",{},"/glow/overview",{"title":103078,"description":103493},"glow/overview",[103152,103499,557,411,103500],"markdown","charm","4zo1w_77sCCbwBncyPH4AkYQJl--7-Z4H6_k9QQMwKQ",{"id":103503,"title":103504,"body":103505,"date":402,"description":103820,"extension":404,"meta":103821,"navigation":61,"order":71,"path":103822,"seo":103823,"stem":103824,"subject":103114,"tags":103825,"__hash__":103827},"topics/go/arrays-and-slices.md","Arrays and Slices",{"type":8,"value":103506,"toc":103817},[103507,103510,103814],[11,103508,103504],{"id":103509},"arrays-and-slices",[25,103511,103514],{"className":103512,"code":103513,"language":103114,"meta":30,"style":30},"language-go shiki shiki-themes github-light github-dark","// Arrays (fixed size)\nvar arr [5]int = [5]int{1, 2, 3, 4, 5}\narr2 := [...]int{1, 2, 3}  // compiler counts elements\n\n// Slices (dynamic size)\nslice := []int{1, 2, 3, 4, 5}\nslice2 := make([]int, 5)      // length 5\nslice3 := make([]int, 5, 10)  // length 5, capacity 10\n\n// Slice operations\nslice = append(slice, 6, 7)   // append elements\nsub := slice[1:4]             // slice from index 1 to 3\nlength := len(slice)          // length\ncapacity := cap(slice)        // capacity\n\n// Copy slice\ndest := make([]int, len(slice))\ncopy(dest, slice)\n",[20,103515,103516,103521,103566,103599,103603,103608,103641,103666,103692,103696,103701,103724,103746,103761,103777,103781,103786,103806],{"__ignoreMap":30},[34,103517,103518],{"class":36,"line":37},[34,103519,103520],{"class":40},"// Arrays (fixed size)\n",[34,103522,103523,103525,103528,103530,103532,103534,103536,103538,103540,103542,103544,103546,103548,103550,103552,103554,103556,103558,103560,103562,103564],{"class":36,"line":44},[34,103524,34404],{"class":580},[34,103526,103527],{"class":181}," arr [",[34,103529,2778],{"class":50},[34,103531,10173],{"class":181},[34,103533,17772],{"class":580},[34,103535,683],{"class":580},[34,103537,8315],{"class":181},[34,103539,2778],{"class":50},[34,103541,10173],{"class":181},[34,103543,17772],{"class":580},[34,103545,13990],{"class":181},[34,103547,8318],{"class":50},[34,103549,1798],{"class":181},[34,103551,8324],{"class":50},[34,103553,1798],{"class":181},[34,103555,3162],{"class":50},[34,103557,1798],{"class":181},[34,103559,18010],{"class":50},[34,103561,1798],{"class":181},[34,103563,2778],{"class":50},[34,103565,693],{"class":181},[34,103567,103568,103571,103573,103575,103577,103579,103581,103583,103585,103587,103589,103591,103593,103596],{"class":36,"line":58},[34,103569,103570],{"class":181},"arr2 ",[34,103572,12895],{"class":580},[34,103574,8315],{"class":181},[34,103576,16841],{"class":580},[34,103578,10173],{"class":181},[34,103580,17772],{"class":580},[34,103582,13990],{"class":181},[34,103584,8318],{"class":50},[34,103586,1798],{"class":181},[34,103588,8324],{"class":50},[34,103590,1798],{"class":181},[34,103592,3162],{"class":50},[34,103594,103595],{"class":181},"}  ",[34,103597,103598],{"class":40},"// compiler counts elements\n",[34,103600,103601],{"class":36,"line":65},[34,103602,62],{"emptyLinePlaceholder":61},[34,103604,103605],{"class":36,"line":71},[34,103606,103607],{"class":40},"// Slices (dynamic size)\n",[34,103609,103610,103613,103615,103617,103619,103621,103623,103625,103627,103629,103631,103633,103635,103637,103639],{"class":36,"line":77},[34,103611,103612],{"class":181},"slice ",[34,103614,12895],{"class":580},[34,103616,87602],{"class":181},[34,103618,17772],{"class":580},[34,103620,13990],{"class":181},[34,103622,8318],{"class":50},[34,103624,1798],{"class":181},[34,103626,8324],{"class":50},[34,103628,1798],{"class":181},[34,103630,3162],{"class":50},[34,103632,1798],{"class":181},[34,103634,18010],{"class":50},[34,103636,1798],{"class":181},[34,103638,2778],{"class":50},[34,103640,693],{"class":181},[34,103642,103643,103646,103648,103651,103654,103656,103658,103660,103663],{"class":36,"line":82},[34,103644,103645],{"class":181},"slice2 ",[34,103647,12895],{"class":580},[34,103649,103650],{"class":47}," make",[34,103652,103653],{"class":181},"([]",[34,103655,17772],{"class":580},[34,103657,1798],{"class":181},[34,103659,2778],{"class":50},[34,103661,103662],{"class":181},")      ",[34,103664,103665],{"class":40},"// length 5\n",[34,103667,103668,103671,103673,103675,103677,103679,103681,103683,103685,103687,103689],{"class":36,"line":88},[34,103669,103670],{"class":181},"slice3 ",[34,103672,12895],{"class":580},[34,103674,103650],{"class":47},[34,103676,103653],{"class":181},[34,103678,17772],{"class":580},[34,103680,1798],{"class":181},[34,103682,2778],{"class":50},[34,103684,1798],{"class":181},[34,103686,11923],{"class":50},[34,103688,76021],{"class":181},[34,103690,103691],{"class":40},"// length 5, capacity 10\n",[34,103693,103694],{"class":36,"line":242},[34,103695,62],{"emptyLinePlaceholder":61},[34,103697,103698],{"class":36,"line":250},[34,103699,103700],{"class":40},"// Slice operations\n",[34,103702,103703,103705,103707,103709,103712,103714,103716,103718,103721],{"class":36,"line":263},[34,103704,103612],{"class":181},[34,103706,1301],{"class":580},[34,103708,18374],{"class":47},[34,103710,103711],{"class":181},"(slice, ",[34,103713,18019],{"class":50},[34,103715,1798],{"class":181},[34,103717,18028],{"class":50},[34,103719,103720],{"class":181},")   ",[34,103722,103723],{"class":40},"// append elements\n",[34,103725,103726,103729,103731,103734,103736,103738,103740,103743],{"class":36,"line":275},[34,103727,103728],{"class":181},"sub ",[34,103730,12895],{"class":580},[34,103732,103733],{"class":181}," slice[",[34,103735,8318],{"class":50},[34,103737,165],{"class":181},[34,103739,18010],{"class":50},[34,103741,103742],{"class":181},"]             ",[34,103744,103745],{"class":40},"// slice from index 1 to 3\n",[34,103747,103748,103751,103753,103755,103758],{"class":36,"line":700},[34,103749,103750],{"class":181},"length ",[34,103752,12895],{"class":580},[34,103754,21152],{"class":47},[34,103756,103757],{"class":181},"(slice)          ",[34,103759,103760],{"class":40},"// length\n",[34,103762,103763,103766,103768,103771,103774],{"class":36,"line":706},[34,103764,103765],{"class":181},"capacity ",[34,103767,12895],{"class":580},[34,103769,103770],{"class":47}," cap",[34,103772,103773],{"class":181},"(slice)        ",[34,103775,103776],{"class":40},"// capacity\n",[34,103778,103779],{"class":36,"line":715},[34,103780,62],{"emptyLinePlaceholder":61},[34,103782,103783],{"class":36,"line":725},[34,103784,103785],{"class":40},"// Copy slice\n",[34,103787,103788,103791,103793,103795,103797,103799,103801,103803],{"class":36,"line":734},[34,103789,103790],{"class":181},"dest ",[34,103792,12895],{"class":580},[34,103794,103650],{"class":47},[34,103796,103653],{"class":181},[34,103798,17772],{"class":580},[34,103800,1798],{"class":181},[34,103802,63603],{"class":47},[34,103804,103805],{"class":181},"(slice))\n",[34,103807,103808,103811],{"class":36,"line":742},[34,103809,103810],{"class":47},"copy",[34,103812,103813],{"class":181},"(dest, slice)\n",[388,103815,103816],{},"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 .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 .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":30,"searchDepth":44,"depth":44,"links":103818},[103819],{"id":103509,"depth":44,"text":103504},"Arrays and Slices in Go.",{},"/go/arrays-and-slices",{"title":103504,"description":103820},"go/arrays-and-slices",[103114,103826,46870,33299],"golang","bLm7DkV9YuW3VzPlgYQYkkQw7wNSS-MomwYLzZjefYc",{"id":103829,"title":103830,"body":103831,"date":402,"description":104185,"extension":404,"meta":104186,"navigation":61,"order":715,"path":104187,"seo":104188,"stem":104189,"subject":103114,"tags":104190,"__hash__":104191},"topics/go/channels.md","Channels",{"type":8,"value":103832,"toc":104182},[103833,103836,104179],[11,103834,103830],{"id":103835},"channels",[25,103837,103839],{"className":103512,"code":103838,"language":103114,"meta":30,"style":30},"// Create channel\nch := make(chan int)        // unbuffered\nch := make(chan int, 10)    // buffered with capacity 10\n\n// Send and receive\nch \u003C- 42        // send\nvalue := \u003C-ch   // receive\n\n// Close channel\nclose(ch)\n\n// Receive with ok check\nvalue, ok := \u003C-ch\nif !ok {\n    fmt.Println(\"Channel closed\")\n}\n\n// Range over channel\nfor value := range ch {\n    fmt.Println(value)\n}\n\n// Select statement\nselect {\ncase msg := \u003C-ch1:\n    fmt.Println(\"Received from ch1:\", msg)\ncase msg := \u003C-ch2:\n    fmt.Println(\"Received from ch2:\", msg)\ncase ch3 \u003C- 42:\n    fmt.Println(\"Sent to ch3\")\ncase \u003C-time.After(time.Second):\n    fmt.Println(\"Timeout\")\ndefault:\n    fmt.Println(\"No communication\")\n}\n",[20,103840,103841,103846,103868,103892,103896,103901,103913,103929,103933,103938,103945,103949,103954,103966,103976,103991,103995,103999,104004,104018,104027,104031,104035,104040,104046,104061,104075,104088,104101,104114,104127,104142,104155,104162,104175],{"__ignoreMap":30},[34,103842,103843],{"class":36,"line":37},[34,103844,103845],{"class":40},"// Create channel\n",[34,103847,103848,103851,103853,103855,103857,103860,103862,103865],{"class":36,"line":44},[34,103849,103850],{"class":181},"ch ",[34,103852,12895],{"class":580},[34,103854,103650],{"class":47},[34,103856,1607],{"class":181},[34,103858,103859],{"class":580},"chan",[34,103861,25160],{"class":580},[34,103863,103864],{"class":181},")        ",[34,103866,103867],{"class":40},"// unbuffered\n",[34,103869,103870,103872,103874,103876,103878,103880,103882,103884,103886,103889],{"class":36,"line":58},[34,103871,103850],{"class":181},[34,103873,12895],{"class":580},[34,103875,103650],{"class":47},[34,103877,1607],{"class":181},[34,103879,103859],{"class":580},[34,103881,25160],{"class":580},[34,103883,1798],{"class":181},[34,103885,11923],{"class":50},[34,103887,103888],{"class":181},")    ",[34,103890,103891],{"class":40},"// buffered with capacity 10\n",[34,103893,103894],{"class":36,"line":65},[34,103895,62],{"emptyLinePlaceholder":61},[34,103897,103898],{"class":36,"line":71},[34,103899,103900],{"class":40},"// Send and receive\n",[34,103902,103903,103905,103908,103910],{"class":36,"line":77},[34,103904,103850],{"class":181},[34,103906,103907],{"class":580},"\u003C-",[34,103909,19987],{"class":50},[34,103911,103912],{"class":40},"        // send\n",[34,103914,103915,103918,103920,103923,103926],{"class":36,"line":82},[34,103916,103917],{"class":181},"value ",[34,103919,12895],{"class":580},[34,103921,103922],{"class":580}," \u003C-",[34,103924,103925],{"class":181},"ch   ",[34,103927,103928],{"class":40},"// receive\n",[34,103930,103931],{"class":36,"line":88},[34,103932,62],{"emptyLinePlaceholder":61},[34,103934,103935],{"class":36,"line":242},[34,103936,103937],{"class":40},"// Close channel\n",[34,103939,103940,103942],{"class":36,"line":250},[34,103941,17197],{"class":47},[34,103943,103944],{"class":181},"(ch)\n",[34,103946,103947],{"class":36,"line":263},[34,103948,62],{"emptyLinePlaceholder":61},[34,103950,103951],{"class":36,"line":275},[34,103952,103953],{"class":40},"// Receive with ok check\n",[34,103955,103956,103959,103961,103963],{"class":36,"line":700},[34,103957,103958],{"class":181},"value, ok ",[34,103960,12895],{"class":580},[34,103962,103922],{"class":580},[34,103964,103965],{"class":181},"ch\n",[34,103967,103968,103970,103973],{"class":36,"line":706},[34,103969,10383],{"class":580},[34,103971,103972],{"class":580}," !",[34,103974,103975],{"class":181},"ok {\n",[34,103977,103978,103981,103984,103986,103989],{"class":36,"line":715},[34,103979,103980],{"class":181},"    fmt.",[34,103982,103983],{"class":47},"Println",[34,103985,1607],{"class":181},[34,103987,103988],{"class":54},"\"Channel closed\"",[34,103990,3372],{"class":181},[34,103992,103993],{"class":36,"line":725},[34,103994,693],{"class":181},[34,103996,103997],{"class":36,"line":734},[34,103998,62],{"emptyLinePlaceholder":61},[34,104000,104001],{"class":36,"line":742},[34,104002,104003],{"class":40},"// Range over channel\n",[34,104005,104006,104008,104010,104012,104015],{"class":36,"line":748},[34,104007,10246],{"class":580},[34,104009,8271],{"class":181},[34,104011,12895],{"class":580},[34,104013,104014],{"class":580}," range",[34,104016,104017],{"class":181}," ch {\n",[34,104019,104020,104022,104024],{"class":36,"line":754},[34,104021,103980],{"class":181},[34,104023,103983],{"class":47},[34,104025,104026],{"class":181},"(value)\n",[34,104028,104029],{"class":36,"line":759},[34,104030,693],{"class":181},[34,104032,104033],{"class":36,"line":771},[34,104034,62],{"emptyLinePlaceholder":61},[34,104036,104037],{"class":36,"line":794},[34,104038,104039],{"class":40},"// Select statement\n",[34,104041,104042,104044],{"class":36,"line":824},[34,104043,58611],{"class":580},[34,104045,661],{"class":181},[34,104047,104048,104051,104054,104056,104058],{"class":36,"line":830},[34,104049,104050],{"class":580},"case",[34,104052,104053],{"class":181}," msg ",[34,104055,12895],{"class":580},[34,104057,103922],{"class":580},[34,104059,104060],{"class":181},"ch1:\n",[34,104062,104063,104065,104067,104069,104072],{"class":36,"line":839},[34,104064,103980],{"class":181},[34,104066,103983],{"class":47},[34,104068,1607],{"class":181},[34,104070,104071],{"class":54},"\"Received from ch1:\"",[34,104073,104074],{"class":181},", msg)\n",[34,104076,104077,104079,104081,104083,104085],{"class":36,"line":854},[34,104078,104050],{"class":580},[34,104080,104053],{"class":181},[34,104082,12895],{"class":580},[34,104084,103922],{"class":580},[34,104086,104087],{"class":181},"ch2:\n",[34,104089,104090,104092,104094,104096,104099],{"class":36,"line":860},[34,104091,103980],{"class":181},[34,104093,103983],{"class":47},[34,104095,1607],{"class":181},[34,104097,104098],{"class":54},"\"Received from ch2:\"",[34,104100,104074],{"class":181},[34,104102,104103,104105,104108,104110,104112],{"class":36,"line":865},[34,104104,104050],{"class":580},[34,104106,104107],{"class":181}," ch3 ",[34,104109,103907],{"class":580},[34,104111,19987],{"class":50},[34,104113,193],{"class":181},[34,104115,104116,104118,104120,104122,104125],{"class":36,"line":870},[34,104117,103980],{"class":181},[34,104119,103983],{"class":47},[34,104121,1607],{"class":181},[34,104123,104124],{"class":54},"\"Sent to ch3\"",[34,104126,3372],{"class":181},[34,104128,104129,104131,104133,104136,104139],{"class":36,"line":876},[34,104130,104050],{"class":580},[34,104132,103922],{"class":580},[34,104134,104135],{"class":181},"time.",[34,104137,104138],{"class":47},"After",[34,104140,104141],{"class":181},"(time.Second):\n",[34,104143,104144,104146,104148,104150,104153],{"class":36,"line":885},[34,104145,103980],{"class":181},[34,104147,103983],{"class":47},[34,104149,1607],{"class":181},[34,104151,104152],{"class":54},"\"Timeout\"",[34,104154,3372],{"class":181},[34,104156,104157,104160],{"class":36,"line":895},[34,104158,104159],{"class":580},"default",[34,104161,193],{"class":181},[34,104163,104164,104166,104168,104170,104173],{"class":36,"line":904},[34,104165,103980],{"class":181},[34,104167,103983],{"class":47},[34,104169,1607],{"class":181},[34,104171,104172],{"class":54},"\"No communication\"",[34,104174,3372],{"class":181},[34,104176,104177],{"class":36,"line":915},[34,104178,693],{"class":181},[388,104180,104181],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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);}",{"title":30,"searchDepth":44,"depth":44,"links":104183},[104184],{"id":103835,"depth":44,"text":103830},"Channels in Go.",{},"/go/channels",{"title":103830,"description":104185},"go/channels",[103114,103826,46870,33299],"eHzKZeB0YfHtutVk3rA8nndRCZOE9ycqH-E0d1BeMaE",{"id":104193,"title":104194,"body":104195,"date":402,"description":104604,"extension":404,"meta":104605,"navigation":61,"order":748,"path":104606,"seo":104607,"stem":104608,"subject":103114,"tags":104609,"__hash__":104610},"topics/go/common-standard-library.md","Common Standard Library",{"type":8,"value":104196,"toc":104601},[104197,104200,104598],[11,104198,104194],{"id":104199},"common-standard-library",[25,104201,104203],{"className":103512,"code":104202,"language":103114,"meta":30,"style":30},"// Strings\nimport \"strings\"\nstrings.Contains(\"hello\", \"ell\")     // true\nstrings.Split(\"a,b,c\", \",\")          // [\"a\", \"b\", \"c\"]\nstrings.Join([]string{\"a\", \"b\"}, \"-\") // \"a-b\"\nstrings.ToUpper(\"hello\")             // \"HELLO\"\nstrings.TrimSpace(\"  hello  \")       // \"hello\"\n\n// String formatting\nimport \"fmt\"\nfmt.Sprintf(\"Name: %s, Age: %d\", name, age)\nfmt.Printf(\"Value: %v, Type: %T\\n\", val, val)\n\n// JSON\nimport \"encoding/json\"\ndata, _ := json.Marshal(obj)           // struct to JSON\njson.Unmarshal(data, &obj)             // JSON to struct\n\n// HTTP\nimport \"net/http\"\nresp, err := http.Get(\"https://api.example.com\")\nhttp.HandleFunc(\"/\", handler)\nhttp.ListenAndServe(\":8080\", nil)\n\n// Time\nimport \"time\"\nnow := time.Now()\ntime.Sleep(time.Second * 2)\nformatted := now.Format(\"2006-01-02 15:04:05\")\n",[20,104204,104205,104210,104220,104240,104262,104293,104309,104327,104331,104336,104347,104371,104397,104401,104406,104417,104436,104455,104459,104464,104475,104494,104509,104528,104532,104537,104547,104562,104578],{"__ignoreMap":30},[34,104206,104207],{"class":36,"line":37},[34,104208,104209],{"class":40},"// Strings\n",[34,104211,104212,104214,104216,104218],{"class":36,"line":44},[34,104213,581],{"class":580},[34,104215,10326],{"class":54},[34,104217,24353],{"class":47},[34,104219,11320],{"class":54},[34,104221,104222,104225,104227,104229,104231,104233,104235,104238],{"class":36,"line":58},[34,104223,104224],{"class":181},"strings.",[34,104226,33482],{"class":47},[34,104228,1607],{"class":181},[34,104230,17360],{"class":54},[34,104232,1798],{"class":181},[34,104234,17370],{"class":54},[34,104236,104237],{"class":181},")     ",[34,104239,33492],{"class":40},[34,104241,104242,104244,104246,104248,104251,104253,104256,104259],{"class":36,"line":65},[34,104243,104224],{"class":181},[34,104245,37890],{"class":47},[34,104247,1607],{"class":181},[34,104249,104250],{"class":54},"\"a,b,c\"",[34,104252,1798],{"class":181},[34,104254,104255],{"class":54},"\",\"",[34,104257,104258],{"class":181},")          ",[34,104260,104261],{"class":40},"// [\"a\", \"b\", \"c\"]\n",[34,104263,104264,104266,104269,104271,104273,104275,104278,104280,104283,104285,104288,104290],{"class":36,"line":71},[34,104265,104224],{"class":181},[34,104267,104268],{"class":47},"Join",[34,104270,103653],{"class":181},[34,104272,30113],{"class":580},[34,104274,13990],{"class":181},[34,104276,104277],{"class":54},"\"a\"",[34,104279,1798],{"class":181},[34,104281,104282],{"class":54},"\"b\"",[34,104284,25007],{"class":181},[34,104286,104287],{"class":54},"\"-\"",[34,104289,4817],{"class":181},[34,104291,104292],{"class":40},"// \"a-b\"\n",[34,104294,104295,104297,104299,104301,104303,104306],{"class":36,"line":77},[34,104296,104224],{"class":181},[34,104298,37853],{"class":47},[34,104300,1607],{"class":181},[34,104302,17360],{"class":54},[34,104304,104305],{"class":181},")             ",[34,104307,104308],{"class":40},"// \"HELLO\"\n",[34,104310,104311,104313,104316,104318,104321,104324],{"class":36,"line":82},[34,104312,104224],{"class":181},[34,104314,104315],{"class":47},"TrimSpace",[34,104317,1607],{"class":181},[34,104319,104320],{"class":54},"\"  hello  \"",[34,104322,104323],{"class":181},")       ",[34,104325,104326],{"class":40},"// \"hello\"\n",[34,104328,104329],{"class":36,"line":88},[34,104330,62],{"emptyLinePlaceholder":61},[34,104332,104333],{"class":36,"line":242},[34,104334,104335],{"class":40},"// String formatting\n",[34,104337,104338,104340,104342,104345],{"class":36,"line":250},[34,104339,581],{"class":580},[34,104341,10326],{"class":54},[34,104343,104344],{"class":47},"fmt",[34,104346,11320],{"class":54},[34,104348,104349,104352,104355,104357,104359,104361,104364,104366,104368],{"class":36,"line":263},[34,104350,104351],{"class":181},"fmt.",[34,104353,104354],{"class":47},"Sprintf",[34,104356,1607],{"class":181},[34,104358,21476],{"class":54},[34,104360,21087],{"class":50},[34,104362,104363],{"class":54},", Age: ",[34,104365,18285],{"class":50},[34,104367,10389],{"class":54},[34,104369,104370],{"class":181},", name, age)\n",[34,104372,104373,104375,104378,104380,104383,104386,104389,104392,104394],{"class":36,"line":275},[34,104374,104351],{"class":181},[34,104376,104377],{"class":47},"Printf",[34,104379,1607],{"class":181},[34,104381,104382],{"class":54},"\"Value: ",[34,104384,104385],{"class":50},"%v",[34,104387,104388],{"class":54},", Type: ",[34,104390,104391],{"class":50},"%T\\n",[34,104393,10389],{"class":54},[34,104395,104396],{"class":181},", val, val)\n",[34,104398,104399],{"class":36,"line":700},[34,104400,62],{"emptyLinePlaceholder":61},[34,104402,104403],{"class":36,"line":706},[34,104404,104405],{"class":40},"// JSON\n",[34,104407,104408,104410,104412,104415],{"class":36,"line":715},[34,104409,581],{"class":580},[34,104411,10326],{"class":54},[34,104413,104414],{"class":47},"encoding/json",[34,104416,11320],{"class":54},[34,104418,104419,104422,104424,104427,104430,104433],{"class":36,"line":725},[34,104420,104421],{"class":181},"data, _ ",[34,104423,12895],{"class":580},[34,104425,104426],{"class":181}," json.",[34,104428,104429],{"class":47},"Marshal",[34,104431,104432],{"class":181},"(obj)           ",[34,104434,104435],{"class":40},"// struct to JSON\n",[34,104437,104438,104441,104444,104447,104449,104452],{"class":36,"line":734},[34,104439,104440],{"class":181},"json.",[34,104442,104443],{"class":47},"Unmarshal",[34,104445,104446],{"class":181},"(data, ",[34,104448,19502],{"class":580},[34,104450,104451],{"class":181},"obj)             ",[34,104453,104454],{"class":40},"// JSON to struct\n",[34,104456,104457],{"class":36,"line":742},[34,104458,62],{"emptyLinePlaceholder":61},[34,104460,104461],{"class":36,"line":748},[34,104462,104463],{"class":40},"// HTTP\n",[34,104465,104466,104468,104470,104473],{"class":36,"line":754},[34,104467,581],{"class":580},[34,104469,10326],{"class":54},[34,104471,104472],{"class":47},"net/http",[34,104474,11320],{"class":54},[34,104476,104477,104480,104482,104485,104488,104490,104492],{"class":36,"line":759},[34,104478,104479],{"class":181},"resp, err ",[34,104481,12895],{"class":580},[34,104483,104484],{"class":181}," http.",[34,104486,104487],{"class":47},"Get",[34,104489,1607],{"class":181},[34,104491,17428],{"class":54},[34,104493,3372],{"class":181},[34,104495,104496,104499,104502,104504,104506],{"class":36,"line":771},[34,104497,104498],{"class":181},"http.",[34,104500,104501],{"class":47},"HandleFunc",[34,104503,1607],{"class":181},[34,104505,81654],{"class":54},[34,104507,104508],{"class":181},", handler)\n",[34,104510,104511,104513,104516,104518,104521,104523,104526],{"class":36,"line":794},[34,104512,104498],{"class":181},[34,104514,104515],{"class":47},"ListenAndServe",[34,104517,1607],{"class":181},[34,104519,104520],{"class":54},"\":8080\"",[34,104522,1798],{"class":181},[34,104524,104525],{"class":50},"nil",[34,104527,3372],{"class":181},[34,104529,104530],{"class":36,"line":824},[34,104531,62],{"emptyLinePlaceholder":61},[34,104533,104534],{"class":36,"line":830},[34,104535,104536],{"class":40},"// Time\n",[34,104538,104539,104541,104543,104545],{"class":36,"line":839},[34,104540,581],{"class":580},[34,104542,10326],{"class":54},[34,104544,24110],{"class":47},[34,104546,11320],{"class":54},[34,104548,104549,104552,104554,104557,104560],{"class":36,"line":854},[34,104550,104551],{"class":181},"now ",[34,104553,12895],{"class":580},[34,104555,104556],{"class":181}," time.",[34,104558,104559],{"class":47},"Now",[34,104561,33899],{"class":181},[34,104563,104564,104566,104569,104572,104574,104576],{"class":36,"line":860},[34,104565,104135],{"class":181},[34,104567,104568],{"class":47},"Sleep",[34,104570,104571],{"class":181},"(time.Second ",[34,104573,4289],{"class":580},[34,104575,4292],{"class":50},[34,104577,3372],{"class":181},[34,104579,104580,104583,104585,104588,104591,104593,104596],{"class":36,"line":865},[34,104581,104582],{"class":181},"formatted ",[34,104584,12895],{"class":580},[34,104586,104587],{"class":181}," now.",[34,104589,104590],{"class":47},"Format",[34,104592,1607],{"class":181},[34,104594,104595],{"class":54},"\"2006-01-02 15:04:05\"",[34,104597,3372],{"class":181},[388,104599,104600],{},"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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .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":30,"searchDepth":44,"depth":44,"links":104602},[104603],{"id":104199,"depth":44,"text":104194},"Common Standard Library in Go.",{},"/go/common-standard-library",{"title":104194,"description":104604},"go/common-standard-library",[103114,103826,46870,33299],"cVffpEfv8z-yL7oCWsTNCOZ1ezYVGefW69bdfiJyZs8",{"id":104612,"title":18818,"body":104613,"date":402,"description":104922,"extension":404,"meta":104923,"navigation":61,"order":82,"path":104924,"seo":104925,"stem":104926,"subject":103114,"tags":104927,"__hash__":104928},"topics/go/control-flow.md",{"type":8,"value":104614,"toc":104919},[104615,104617,104917],[11,104616,18818],{"id":18823},[25,104618,104620],{"className":103512,"code":104619,"language":103114,"meta":30,"style":30},"// If statement\nif x > 10 {\n    fmt.Println(\"greater\")\n} else if x \u003C 10 {\n    fmt.Println(\"less\")\n} else {\n    fmt.Println(\"equal\")\n}\n\n// If with initialization\nif val := compute(); val > 0 {\n    fmt.Println(val)\n}\n\n// Switch statement\nswitch day {\ncase \"Monday\":\n    fmt.Println(\"Start of week\")\ncase \"Friday\":\n    fmt.Println(\"End of week\")\ndefault:\n    fmt.Println(\"Midweek\")\n}\n\n// Switch without condition\nswitch {\ncase x \u003C 0:\n    fmt.Println(\"negative\")\ncase x > 0:\n    fmt.Println(\"positive\")\ndefault:\n    fmt.Println(\"zero\")\n}\n",[20,104621,104622,104627,104639,104652,104668,104681,104689,104702,104706,104710,104715,104734,104743,104747,104751,104755,104762,104771,104784,104793,104806,104812,104825,104829,104833,104838,104844,104856,104869,104881,104894,104900,104913],{"__ignoreMap":30},[34,104623,104624],{"class":36,"line":37},[34,104625,104626],{"class":40},"// If statement\n",[34,104628,104629,104631,104633,104635,104637],{"class":36,"line":44},[34,104630,10383],{"class":580},[34,104632,23172],{"class":181},[34,104634,5691],{"class":580},[34,104636,13123],{"class":50},[34,104638,661],{"class":181},[34,104640,104641,104643,104645,104647,104650],{"class":36,"line":58},[34,104642,103980],{"class":181},[34,104644,103983],{"class":47},[34,104646,1607],{"class":181},[34,104648,104649],{"class":54},"\"greater\"",[34,104651,3372],{"class":181},[34,104653,104654,104656,104658,104660,104662,104664,104666],{"class":36,"line":65},[34,104655,2276],{"class":181},[34,104657,18871],{"class":580},[34,104659,18874],{"class":580},[34,104661,23172],{"class":181},[34,104663,815],{"class":580},[34,104665,13123],{"class":50},[34,104667,661],{"class":181},[34,104669,104670,104672,104674,104676,104679],{"class":36,"line":71},[34,104671,103980],{"class":181},[34,104673,103983],{"class":47},[34,104675,1607],{"class":181},[34,104677,104678],{"class":54},"\"less\"",[34,104680,3372],{"class":181},[34,104682,104683,104685,104687],{"class":36,"line":77},[34,104684,2276],{"class":181},[34,104686,18871],{"class":580},[34,104688,661],{"class":181},[34,104690,104691,104693,104695,104697,104700],{"class":36,"line":82},[34,104692,103980],{"class":181},[34,104694,103983],{"class":47},[34,104696,1607],{"class":181},[34,104698,104699],{"class":54},"\"equal\"",[34,104701,3372],{"class":181},[34,104703,104704],{"class":36,"line":88},[34,104705,693],{"class":181},[34,104707,104708],{"class":36,"line":242},[34,104709,62],{"emptyLinePlaceholder":61},[34,104711,104712],{"class":36,"line":250},[34,104713,104714],{"class":40},"// If with initialization\n",[34,104716,104717,104719,104721,104723,104725,104728,104730,104732],{"class":36,"line":263},[34,104718,10383],{"class":580},[34,104720,31951],{"class":181},[34,104722,12895],{"class":580},[34,104724,92073],{"class":47},[34,104726,104727],{"class":181},"(); val ",[34,104729,5691],{"class":580},[34,104731,8070],{"class":50},[34,104733,661],{"class":181},[34,104735,104736,104738,104740],{"class":36,"line":275},[34,104737,103980],{"class":181},[34,104739,103983],{"class":47},[34,104741,104742],{"class":181},"(val)\n",[34,104744,104745],{"class":36,"line":700},[34,104746,693],{"class":181},[34,104748,104749],{"class":36,"line":706},[34,104750,62],{"emptyLinePlaceholder":61},[34,104752,104753],{"class":36,"line":715},[34,104754,18973],{"class":40},[34,104756,104757,104759],{"class":36,"line":725},[34,104758,18978],{"class":580},[34,104760,104761],{"class":181}," day {\n",[34,104763,104764,104766,104769],{"class":36,"line":734},[34,104765,104050],{"class":580},[34,104767,104768],{"class":54}," \"Monday\"",[34,104770,193],{"class":181},[34,104772,104773,104775,104777,104779,104782],{"class":36,"line":742},[34,104774,103980],{"class":181},[34,104776,103983],{"class":47},[34,104778,1607],{"class":181},[34,104780,104781],{"class":54},"\"Start of week\"",[34,104783,3372],{"class":181},[34,104785,104786,104788,104791],{"class":36,"line":748},[34,104787,104050],{"class":580},[34,104789,104790],{"class":54}," \"Friday\"",[34,104792,193],{"class":181},[34,104794,104795,104797,104799,104801,104804],{"class":36,"line":754},[34,104796,103980],{"class":181},[34,104798,103983],{"class":47},[34,104800,1607],{"class":181},[34,104802,104803],{"class":54},"\"End of week\"",[34,104805,3372],{"class":181},[34,104807,104808,104810],{"class":36,"line":759},[34,104809,104159],{"class":580},[34,104811,193],{"class":181},[34,104813,104814,104816,104818,104820,104823],{"class":36,"line":771},[34,104815,103980],{"class":181},[34,104817,103983],{"class":47},[34,104819,1607],{"class":181},[34,104821,104822],{"class":54},"\"Midweek\"",[34,104824,3372],{"class":181},[34,104826,104827],{"class":36,"line":794},[34,104828,693],{"class":181},[34,104830,104831],{"class":36,"line":824},[34,104832,62],{"emptyLinePlaceholder":61},[34,104834,104835],{"class":36,"line":830},[34,104836,104837],{"class":40},"// Switch without condition\n",[34,104839,104840,104842],{"class":36,"line":839},[34,104841,18978],{"class":580},[34,104843,661],{"class":181},[34,104845,104846,104848,104850,104852,104854],{"class":36,"line":854},[34,104847,104050],{"class":580},[34,104849,23172],{"class":181},[34,104851,815],{"class":580},[34,104853,8070],{"class":50},[34,104855,193],{"class":181},[34,104857,104858,104860,104862,104864,104867],{"class":36,"line":860},[34,104859,103980],{"class":181},[34,104861,103983],{"class":47},[34,104863,1607],{"class":181},[34,104865,104866],{"class":54},"\"negative\"",[34,104868,3372],{"class":181},[34,104870,104871,104873,104875,104877,104879],{"class":36,"line":865},[34,104872,104050],{"class":580},[34,104874,23172],{"class":181},[34,104876,5691],{"class":580},[34,104878,8070],{"class":50},[34,104880,193],{"class":181},[34,104882,104883,104885,104887,104889,104892],{"class":36,"line":870},[34,104884,103980],{"class":181},[34,104886,103983],{"class":47},[34,104888,1607],{"class":181},[34,104890,104891],{"class":54},"\"positive\"",[34,104893,3372],{"class":181},[34,104895,104896,104898],{"class":36,"line":876},[34,104897,104159],{"class":580},[34,104899,193],{"class":181},[34,104901,104902,104904,104906,104908,104911],{"class":36,"line":885},[34,104903,103980],{"class":181},[34,104905,103983],{"class":47},[34,104907,1607],{"class":181},[34,104909,104910],{"class":54},"\"zero\"",[34,104912,3372],{"class":181},[34,104914,104915],{"class":36,"line":895},[34,104916,693],{"class":181},[388,104918,19339],{},{"title":30,"searchDepth":44,"depth":44,"links":104920},[104921],{"id":18823,"depth":44,"text":18818},"Control Flow in Go.",{},"/go/control-flow",{"title":18818,"description":104922},"go/control-flow",[103114,103826,46870,33299],"iwPngHGbr5IQVAJjcdrXXz7mhbJtFPEYskxi8FUWcrQ",{"id":104930,"title":61423,"body":104931,"date":402,"description":105132,"extension":404,"meta":105133,"navigation":61,"order":65,"path":105134,"seo":105135,"stem":105136,"subject":103114,"tags":105137,"__hash__":105138},"topics/go/data-types.md",{"type":8,"value":104932,"toc":105129},[104933,104935,105127],[11,104934,61423],{"id":61422},[25,104936,104938],{"className":103512,"code":104937,"language":103114,"meta":30,"style":30},"// Basic types\nvar b bool = true\nvar s string = \"hello\"\nvar i int = 42           // int, int8, int16, int32, int64\nvar u uint = 42          // uint, uint8, uint16, uint32, uint64\nvar f float64 = 3.14     // float32, float64\nvar c complex128 = 1+2i  // complex64, complex128\nvar by byte = 255        // alias for uint8\nvar r rune = 'A'         // alias for int32 (Unicode code point)\n\n// Zero values\nvar defaultInt int       // 0\nvar defaultStr string    // \"\"\nvar defaultBool bool     // false\n",[20,104939,104940,104944,104957,104971,104986,105002,105019,105041,105059,105082,105086,105091,105103,105115],{"__ignoreMap":30},[34,104941,104942],{"class":36,"line":37},[34,104943,32878],{"class":40},[34,104945,104946,104948,104950,104952,104954],{"class":36,"line":44},[34,104947,34404],{"class":580},[34,104949,22721],{"class":181},[34,104951,32937],{"class":580},[34,104953,683],{"class":580},[34,104955,104956],{"class":50}," true\n",[34,104958,104959,104961,104964,104966,104968],{"class":36,"line":58},[34,104960,34404],{"class":580},[34,104962,104963],{"class":181}," s ",[34,104965,30113],{"class":580},[34,104967,683],{"class":580},[34,104969,104970],{"class":54}," \"hello\"\n",[34,104972,104973,104975,104977,104979,104981,104983],{"class":36,"line":65},[34,104974,34404],{"class":580},[34,104976,10300],{"class":181},[34,104978,17772],{"class":580},[34,104980,683],{"class":580},[34,104982,19987],{"class":50},[34,104984,104985],{"class":40},"           // int, int8, int16, int32, int64\n",[34,104987,104988,104990,104992,104995,104997,104999],{"class":36,"line":71},[34,104989,34404],{"class":580},[34,104991,49594],{"class":181},[34,104993,104994],{"class":580},"uint",[34,104996,683],{"class":580},[34,104998,19987],{"class":50},[34,105000,105001],{"class":40},"          // uint, uint8, uint16, uint32, uint64\n",[34,105003,105004,105006,105009,105012,105014,105016],{"class":36,"line":77},[34,105005,34404],{"class":580},[34,105007,105008],{"class":181}," f ",[34,105010,105011],{"class":580},"float64",[34,105013,683],{"class":580},[34,105015,32903],{"class":50},[34,105017,105018],{"class":40},"     // float32, float64\n",[34,105020,105021,105023,105025,105028,105030,105032,105034,105036,105038],{"class":36,"line":82},[34,105022,34404],{"class":580},[34,105024,4382],{"class":181},[34,105026,105027],{"class":580},"complex128",[34,105029,683],{"class":580},[34,105031,3567],{"class":50},[34,105033,2940],{"class":580},[34,105035,8324],{"class":50},[34,105037,77335],{"class":580},[34,105039,105040],{"class":40},"  // complex64, complex128\n",[34,105042,105043,105045,105048,105051,105053,105056],{"class":36,"line":88},[34,105044,34404],{"class":580},[34,105046,105047],{"class":181}," by ",[34,105049,105050],{"class":580},"byte",[34,105052,683],{"class":580},[34,105054,105055],{"class":50}," 255",[34,105057,105058],{"class":40},"        // alias for uint8\n",[34,105060,105061,105063,105066,105069,105071,105074,105076,105079],{"class":36,"line":242},[34,105062,34404],{"class":580},[34,105064,105065],{"class":181}," r ",[34,105067,105068],{"class":580},"rune",[34,105070,683],{"class":580},[34,105072,105073],{"class":54}," '",[34,105075,83923],{"class":50},[34,105077,105078],{"class":54},"'",[34,105080,105081],{"class":40},"         // alias for int32 (Unicode code point)\n",[34,105083,105084],{"class":36,"line":250},[34,105085,62],{"emptyLinePlaceholder":61},[34,105087,105088],{"class":36,"line":263},[34,105089,105090],{"class":40},"// Zero values\n",[34,105092,105093,105095,105098,105100],{"class":36,"line":275},[34,105094,34404],{"class":580},[34,105096,105097],{"class":181}," defaultInt ",[34,105099,17772],{"class":580},[34,105101,105102],{"class":40},"       // 0\n",[34,105104,105105,105107,105110,105112],{"class":36,"line":700},[34,105106,34404],{"class":580},[34,105108,105109],{"class":181}," defaultStr ",[34,105111,30113],{"class":580},[34,105113,105114],{"class":40},"    // \"\"\n",[34,105116,105117,105119,105122,105124],{"class":36,"line":706},[34,105118,34404],{"class":580},[34,105120,105121],{"class":181}," defaultBool ",[34,105123,32937],{"class":580},[34,105125,105126],{"class":40},"     // false\n",[388,105128,25257],{},{"title":30,"searchDepth":44,"depth":44,"links":105130},[105131],{"id":61422,"depth":44,"text":61423},"Data Types in Go.",{},"/go/data-types",{"title":61423,"description":105132},"go/data-types",[103114,103826,46870,33299],"qHCF5JkEJCtohze_VIYU6aCYlc9h2_WXQ9-1j4mCt_M",{"id":105140,"title":25793,"body":105141,"date":402,"description":105318,"extension":404,"meta":105319,"navigation":61,"order":725,"path":105320,"seo":105321,"stem":105322,"subject":103114,"tags":105323,"__hash__":105324},"topics/go/defer.md",{"type":8,"value":105142,"toc":105315},[105143,105145,105313],[11,105144,25793],{"id":25798},[25,105146,105148],{"className":103512,"code":105147,"language":103114,"meta":30,"style":30},"// Defer execution until function returns\nfunc readFile() {\n    file, err := os.Open(\"file.txt\")\n    if err != nil {\n        log.Fatal(err)\n    }\n    defer file.Close()  // executed when function returns\n\n    // work with file...\n}\n\n// Multiple defers (LIFO order)\nfunc example() {\n    defer fmt.Println(\"first\")\n    defer fmt.Println(\"second\")\n    defer fmt.Println(\"third\")\n    // Output: third, second, first\n}\n",[20,105149,105150,105155,105165,105183,105197,105208,105212,105228,105232,105237,105241,105245,105250,105259,105274,105289,105304,105309],{"__ignoreMap":30},[34,105151,105152],{"class":36,"line":37},[34,105153,105154],{"class":40},"// Defer execution until function returns\n",[34,105156,105157,105160,105163],{"class":36,"line":44},[34,105158,105159],{"class":580},"func",[34,105161,105162],{"class":47}," readFile",[34,105164,836],{"class":181},[34,105166,105167,105170,105172,105174,105177,105179,105181],{"class":36,"line":58},[34,105168,105169],{"class":181},"    file, err ",[34,105171,12895],{"class":580},[34,105173,87880],{"class":181},[34,105175,105176],{"class":47},"Open",[34,105178,1607],{"class":181},[34,105180,14990],{"class":54},[34,105182,3372],{"class":181},[34,105184,105185,105187,105190,105192,105195],{"class":36,"line":65},[34,105186,2902],{"class":580},[34,105188,105189],{"class":181}," err ",[34,105191,20013],{"class":580},[34,105193,105194],{"class":50}," nil",[34,105196,661],{"class":181},[34,105198,105199,105202,105205],{"class":36,"line":71},[34,105200,105201],{"class":181},"        log.",[34,105203,105204],{"class":47},"Fatal",[34,105206,105207],{"class":181},"(err)\n",[34,105209,105210],{"class":36,"line":77},[34,105211,3229],{"class":181},[34,105213,105214,105217,105219,105222,105225],{"class":36,"line":82},[34,105215,105216],{"class":580},"    defer",[34,105218,15146],{"class":181},[34,105220,105221],{"class":47},"Close",[34,105223,105224],{"class":181},"()  ",[34,105226,105227],{"class":40},"// executed when function returns\n",[34,105229,105230],{"class":36,"line":88},[34,105231,62],{"emptyLinePlaceholder":61},[34,105233,105234],{"class":36,"line":242},[34,105235,105236],{"class":40},"    // work with file...\n",[34,105238,105239],{"class":36,"line":250},[34,105240,693],{"class":181},[34,105242,105243],{"class":36,"line":263},[34,105244,62],{"emptyLinePlaceholder":61},[34,105246,105247],{"class":36,"line":275},[34,105248,105249],{"class":40},"// Multiple defers (LIFO order)\n",[34,105251,105252,105254,105257],{"class":36,"line":700},[34,105253,105159],{"class":580},[34,105255,105256],{"class":47}," example",[34,105258,836],{"class":181},[34,105260,105261,105263,105266,105268,105270,105272],{"class":36,"line":706},[34,105262,105216],{"class":580},[34,105264,105265],{"class":181}," fmt.",[34,105267,103983],{"class":47},[34,105269,1607],{"class":181},[34,105271,33692],{"class":54},[34,105273,3372],{"class":181},[34,105275,105276,105278,105280,105282,105284,105287],{"class":36,"line":715},[34,105277,105216],{"class":580},[34,105279,105265],{"class":181},[34,105281,103983],{"class":47},[34,105283,1607],{"class":181},[34,105285,105286],{"class":54},"\"second\"",[34,105288,3372],{"class":181},[34,105290,105291,105293,105295,105297,105299,105302],{"class":36,"line":725},[34,105292,105216],{"class":580},[34,105294,105265],{"class":181},[34,105296,103983],{"class":47},[34,105298,1607],{"class":181},[34,105300,105301],{"class":54},"\"third\"",[34,105303,3372],{"class":181},[34,105305,105306],{"class":36,"line":734},[34,105307,105308],{"class":40},"    // Output: third, second, first\n",[34,105310,105311],{"class":36,"line":742},[34,105312,693],{"class":181},[388,105314,34089],{},{"title":30,"searchDepth":44,"depth":44,"links":105316},[105317],{"id":25798,"depth":44,"text":25793},"Defer in Go.",{},"/go/defer",{"title":25793,"description":105318},"go/defer",[103114,103826,46870,33299],"hN7IfdlO0964wMz4hDFlPlMUWWDJGw8GooxeS5VMQQo",{"id":105326,"title":19352,"body":105327,"date":402,"description":105695,"extension":404,"meta":105696,"navigation":61,"order":700,"path":105697,"seo":105698,"stem":105699,"subject":103114,"tags":105700,"__hash__":105701},"topics/go/error-handling.md",{"type":8,"value":105328,"toc":105692},[105329,105331,105690],[11,105330,19352],{"id":19357},[25,105332,105334],{"className":103512,"code":105333,"language":103114,"meta":30,"style":30},"// Return error\nfunc readFile(path string) ([]byte, error) {\n    data, err := os.ReadFile(path)\n    if err != nil {\n        return nil, fmt.Errorf(\"failed to read file: %w\", err)\n    }\n    return data, nil\n}\n\n// Handle error\ndata, err := readFile(\"config.json\")\nif err != nil {\n    log.Fatal(err)\n}\n\n// Custom error type\ntype ValidationError struct {\n    Field   string\n    Message string\n}\n\nfunc (e ValidationError) Error() string {\n    return fmt.Sprintf(\"%s: %s\", e.Field, e.Message)\n}\n\n// Panic and recover\nfunc safeDivide(a, b int) (result int) {\n    defer func() {\n        if r := recover(); r != nil {\n            fmt.Println(\"Recovered:\", r)\n            result = 0\n        }\n    }()\n    return a / b  // panics if b is 0\n}\n",[20,105335,105336,105341,105364,105379,105391,105416,105420,105430,105434,105438,105443,105459,105471,105480,105484,105488,105493,105504,105511,105518,105522,105526,105549,105572,105576,105580,105585,105610,105619,105639,105654,105663,105667,105672,105686],{"__ignoreMap":30},[34,105337,105338],{"class":36,"line":37},[34,105339,105340],{"class":40},"// Return error\n",[34,105342,105343,105345,105347,105349,105351,105353,105356,105358,105360,105362],{"class":36,"line":44},[34,105344,105159],{"class":580},[34,105346,105162],{"class":47},[34,105348,1607],{"class":181},[34,105350,20404],{"class":675},[34,105352,680],{"class":580},[34,105354,105355],{"class":181},") ([]",[34,105357,105050],{"class":580},[34,105359,1798],{"class":181},[34,105361,1908],{"class":580},[34,105363,2416],{"class":181},[34,105365,105366,105369,105371,105373,105376],{"class":36,"line":58},[34,105367,105368],{"class":181},"    data, err ",[34,105370,12895],{"class":580},[34,105372,87880],{"class":181},[34,105374,105375],{"class":47},"ReadFile",[34,105377,105378],{"class":181},"(path)\n",[34,105380,105381,105383,105385,105387,105389],{"class":36,"line":65},[34,105382,2902],{"class":580},[34,105384,105189],{"class":181},[34,105386,20013],{"class":580},[34,105388,105194],{"class":50},[34,105390,661],{"class":181},[34,105392,105393,105395,105397,105400,105403,105405,105408,105411,105413],{"class":36,"line":71},[34,105394,13895],{"class":580},[34,105396,105194],{"class":50},[34,105398,105399],{"class":181},", fmt.",[34,105401,105402],{"class":47},"Errorf",[34,105404,1607],{"class":181},[34,105406,105407],{"class":54},"\"failed to read file: ",[34,105409,105410],{"class":50},"%w",[34,105412,10389],{"class":54},[34,105414,105415],{"class":181},", err)\n",[34,105417,105418],{"class":36,"line":77},[34,105419,3229],{"class":181},[34,105421,105422,105424,105427],{"class":36,"line":82},[34,105423,1564],{"class":580},[34,105425,105426],{"class":181}," data, ",[34,105428,105429],{"class":50},"nil\n",[34,105431,105432],{"class":36,"line":88},[34,105433,693],{"class":181},[34,105435,105436],{"class":36,"line":242},[34,105437,62],{"emptyLinePlaceholder":61},[34,105439,105440],{"class":36,"line":250},[34,105441,105442],{"class":40},"// Handle error\n",[34,105444,105445,105448,105450,105452,105454,105457],{"class":36,"line":263},[34,105446,105447],{"class":181},"data, err ",[34,105449,12895],{"class":580},[34,105451,105162],{"class":47},[34,105453,1607],{"class":181},[34,105455,105456],{"class":54},"\"config.json\"",[34,105458,3372],{"class":181},[34,105460,105461,105463,105465,105467,105469],{"class":36,"line":275},[34,105462,10383],{"class":580},[34,105464,105189],{"class":181},[34,105466,20013],{"class":580},[34,105468,105194],{"class":50},[34,105470,661],{"class":181},[34,105472,105473,105476,105478],{"class":36,"line":700},[34,105474,105475],{"class":181},"    log.",[34,105477,105204],{"class":47},[34,105479,105207],{"class":181},[34,105481,105482],{"class":36,"line":706},[34,105483,693],{"class":181},[34,105485,105486],{"class":36,"line":715},[34,105487,62],{"emptyLinePlaceholder":61},[34,105489,105490],{"class":36,"line":725},[34,105491,105492],{"class":40},"// Custom error type\n",[34,105494,105495,105497,105500,105502],{"class":36,"line":734},[34,105496,41324],{"class":580},[34,105498,105499],{"class":47}," ValidationError",[34,105501,18332],{"class":580},[34,105503,661],{"class":181},[34,105505,105506,105509],{"class":36,"line":742},[34,105507,105508],{"class":181},"    Field   ",[34,105510,88168],{"class":580},[34,105512,105513,105516],{"class":36,"line":748},[34,105514,105515],{"class":181},"    Message ",[34,105517,88168],{"class":580},[34,105519,105520],{"class":36,"line":754},[34,105521,693],{"class":181},[34,105523,105524],{"class":36,"line":759},[34,105525,62],{"emptyLinePlaceholder":61},[34,105527,105528,105530,105532,105535,105538,105540,105543,105545,105547],{"class":36,"line":771},[34,105529,105159],{"class":580},[34,105531,3204],{"class":181},[34,105533,105534],{"class":675},"e ",[34,105536,105537],{"class":47},"ValidationError",[34,105539,4817],{"class":181},[34,105541,105542],{"class":47},"Error",[34,105544,672],{"class":181},[34,105546,30113],{"class":580},[34,105548,661],{"class":181},[34,105550,105551,105553,105555,105557,105559,105561,105563,105565,105567,105569],{"class":36,"line":794},[34,105552,1564],{"class":580},[34,105554,105265],{"class":181},[34,105556,104354],{"class":47},[34,105558,1607],{"class":181},[34,105560,10389],{"class":54},[34,105562,21087],{"class":50},[34,105564,182],{"class":54},[34,105566,21087],{"class":50},[34,105568,10389],{"class":54},[34,105570,105571],{"class":181},", e.Field, e.Message)\n",[34,105573,105574],{"class":36,"line":824},[34,105575,693],{"class":181},[34,105577,105578],{"class":36,"line":830},[34,105579,62],{"emptyLinePlaceholder":61},[34,105581,105582],{"class":36,"line":839},[34,105583,105584],{"class":40},"// Panic and recover\n",[34,105586,105587,105589,105591,105593,105595,105597,105599,105601,105604,105606,105608],{"class":36,"line":854},[34,105588,105159],{"class":580},[34,105590,60931],{"class":47},[34,105592,1607],{"class":181},[34,105594,145],{"class":675},[34,105596,1798],{"class":181},[34,105598,8355],{"class":675},[34,105600,25160],{"class":580},[34,105602,105603],{"class":181},") (",[34,105605,19401],{"class":675},[34,105607,25160],{"class":580},[34,105609,2416],{"class":181},[34,105611,105612,105614,105617],{"class":36,"line":860},[34,105613,105216],{"class":580},[34,105615,105616],{"class":580}," func",[34,105618,836],{"class":181},[34,105620,105621,105623,105625,105627,105630,105633,105635,105637],{"class":36,"line":865},[34,105622,49573],{"class":580},[34,105624,105065],{"class":181},[34,105626,12895],{"class":580},[34,105628,105629],{"class":47}," recover",[34,105631,105632],{"class":181},"(); r ",[34,105634,20013],{"class":580},[34,105636,105194],{"class":50},[34,105638,661],{"class":181},[34,105640,105641,105644,105646,105648,105651],{"class":36,"line":870},[34,105642,105643],{"class":181},"            fmt.",[34,105645,103983],{"class":47},[34,105647,1607],{"class":181},[34,105649,105650],{"class":54},"\"Recovered:\"",[34,105652,105653],{"class":181},", r)\n",[34,105655,105656,105659,105661],{"class":36,"line":876},[34,105657,105658],{"class":181},"            result ",[34,105660,1301],{"class":580},[34,105662,36394],{"class":50},[34,105664,105665],{"class":36,"line":885},[34,105666,26208],{"class":181},[34,105668,105669],{"class":36,"line":895},[34,105670,105671],{"class":181},"    }()\n",[34,105673,105674,105676,105678,105680,105683],{"class":36,"line":904},[34,105675,1564],{"class":580},[34,105677,8065],{"class":181},[34,105679,12734],{"class":580},[34,105681,105682],{"class":181}," b  ",[34,105684,105685],{"class":40},"// panics if b is 0\n",[34,105687,105688],{"class":36,"line":915},[34,105689,693],{"class":181},[388,105691,17665],{},{"title":30,"searchDepth":44,"depth":44,"links":105693},[105694],{"id":19357,"depth":44,"text":19352},"Error Handling in Go.",{},"/go/error-handling",{"title":19352,"description":105695},"go/error-handling",[103114,103826,46870,33299],"4JLAieLe7hWrzkDf7gwFg8BAQTGHbM2gqzZOmx_pSuA",{"id":105703,"title":10991,"body":105704,"date":402,"description":106044,"extension":404,"meta":106045,"navigation":61,"order":242,"path":106046,"seo":106047,"stem":106048,"subject":103114,"tags":106049,"__hash__":106050},"topics/go/functions.md",{"type":8,"value":105705,"toc":106041},[105706,105708,106039],[11,105707,10991],{"id":10996},[25,105709,105711],{"className":103512,"code":105710,"language":103114,"meta":30,"style":30},"// Basic function\nfunc add(a int, b int) int {\n    return a + b\n}\n\n// Multiple return values\nfunc divide(a, b float64) (float64, error) {\n    if b == 0 {\n        return 0, errors.New(\"division by zero\")\n    }\n    return a / b, nil\n}\n\n// Named return values\nfunc split(sum int) (x, y int) {\n    x = sum * 4 / 9\n    y = sum - x\n    return  // naked return\n}\n\n// Variadic function\nfunc sum(nums ...int) int {\n    total := 0\n    for _, n := range nums {\n        total += n\n    }\n    return total\n}\n\n// Anonymous function / closure\nsquare := func(x int) int {\n    return x * x\n}\n",[20,105712,105713,105717,105741,105751,105755,105759,105764,105791,105803,105822,105826,105839,105843,105847,105852,105877,105894,105908,105915,105919,105923,105928,105948,105957,105971,105981,105985,105991,105995,105999,106004,106025,106035],{"__ignoreMap":30},[34,105714,105715],{"class":36,"line":37},[34,105716,26295],{"class":40},[34,105718,105719,105721,105723,105725,105727,105729,105731,105733,105735,105737,105739],{"class":36,"line":44},[34,105720,105159],{"class":580},[34,105722,7854],{"class":47},[34,105724,1607],{"class":181},[34,105726,145],{"class":675},[34,105728,25160],{"class":580},[34,105730,1798],{"class":181},[34,105732,8355],{"class":675},[34,105734,25160],{"class":580},[34,105736,4817],{"class":181},[34,105738,17772],{"class":580},[34,105740,661],{"class":181},[34,105742,105743,105745,105747,105749],{"class":36,"line":58},[34,105744,1564],{"class":580},[34,105746,8065],{"class":181},[34,105748,2940],{"class":580},[34,105750,87475],{"class":181},[34,105752,105753],{"class":36,"line":65},[34,105754,693],{"class":181},[34,105756,105757],{"class":36,"line":71},[34,105758,62],{"emptyLinePlaceholder":61},[34,105760,105761],{"class":36,"line":77},[34,105762,105763],{"class":40},"// Multiple return values\n",[34,105765,105766,105768,105770,105772,105774,105776,105778,105781,105783,105785,105787,105789],{"class":36,"line":82},[34,105767,105159],{"class":580},[34,105769,19378],{"class":47},[34,105771,1607],{"class":181},[34,105773,145],{"class":675},[34,105775,1798],{"class":181},[34,105777,8355],{"class":675},[34,105779,105780],{"class":580}," float64",[34,105782,105603],{"class":181},[34,105784,105011],{"class":580},[34,105786,1798],{"class":181},[34,105788,1908],{"class":580},[34,105790,2416],{"class":181},[34,105792,105793,105795,105797,105799,105801],{"class":36,"line":88},[34,105794,2902],{"class":580},[34,105796,22721],{"class":181},[34,105798,18168],{"class":580},[34,105800,8070],{"class":50},[34,105802,661],{"class":181},[34,105804,105805,105807,105809,105812,105815,105817,105820],{"class":36,"line":242},[34,105806,13895],{"class":580},[34,105808,8070],{"class":50},[34,105810,105811],{"class":181},", errors.",[34,105813,105814],{"class":47},"New",[34,105816,1607],{"class":181},[34,105818,105819],{"class":54},"\"division by zero\"",[34,105821,3372],{"class":181},[34,105823,105824],{"class":36,"line":250},[34,105825,3229],{"class":181},[34,105827,105828,105830,105832,105834,105837],{"class":36,"line":263},[34,105829,1564],{"class":580},[34,105831,8065],{"class":181},[34,105833,12734],{"class":580},[34,105835,105836],{"class":181}," b, ",[34,105838,105429],{"class":50},[34,105840,105841],{"class":36,"line":275},[34,105842,693],{"class":181},[34,105844,105845],{"class":36,"line":700},[34,105846,62],{"emptyLinePlaceholder":61},[34,105848,105849],{"class":36,"line":706},[34,105850,105851],{"class":40},"// Named return values\n",[34,105853,105854,105856,105859,105861,105863,105865,105867,105869,105871,105873,105875],{"class":36,"line":715},[34,105855,105159],{"class":580},[34,105857,105858],{"class":47}," split",[34,105860,1607],{"class":181},[34,105862,11135],{"class":675},[34,105864,25160],{"class":580},[34,105866,105603],{"class":181},[34,105868,23655],{"class":675},[34,105870,1798],{"class":181},[34,105872,60946],{"class":675},[34,105874,25160],{"class":580},[34,105876,2416],{"class":181},[34,105878,105879,105881,105883,105885,105887,105889,105891],{"class":36,"line":725},[34,105880,31295],{"class":181},[34,105882,1301],{"class":580},[34,105884,8337],{"class":181},[34,105886,4289],{"class":580},[34,105888,11801],{"class":50},[34,105890,22767],{"class":580},[34,105892,105893],{"class":50}," 9\n",[34,105895,105896,105899,105901,105903,105905],{"class":36,"line":734},[34,105897,105898],{"class":181},"    y ",[34,105900,1301],{"class":580},[34,105902,8337],{"class":181},[34,105904,22062],{"class":580},[34,105906,105907],{"class":181}," x\n",[34,105909,105910,105912],{"class":36,"line":742},[34,105911,1564],{"class":580},[34,105913,105914],{"class":40},"  // naked return\n",[34,105916,105917],{"class":36,"line":748},[34,105918,693],{"class":181},[34,105920,105921],{"class":36,"line":754},[34,105922,62],{"emptyLinePlaceholder":61},[34,105924,105925],{"class":36,"line":759},[34,105926,105927],{"class":40},"// Variadic function\n",[34,105929,105930,105932,105934,105936,105939,105942,105944,105946],{"class":36,"line":771},[34,105931,105159],{"class":580},[34,105933,65446],{"class":47},[34,105935,1607],{"class":181},[34,105937,105938],{"class":675},"nums",[34,105940,105941],{"class":580}," ...int",[34,105943,4817],{"class":181},[34,105945,17772],{"class":580},[34,105947,661],{"class":181},[34,105949,105950,105953,105955],{"class":36,"line":794},[34,105951,105952],{"class":181},"    total ",[34,105954,12895],{"class":580},[34,105956,36394],{"class":50},[34,105958,105959,105961,105964,105966,105968],{"class":36,"line":824},[34,105960,18250],{"class":580},[34,105962,105963],{"class":181}," _, n ",[34,105965,12895],{"class":580},[34,105967,104014],{"class":580},[34,105969,105970],{"class":181}," nums {\n",[34,105972,105973,105976,105978],{"class":36,"line":830},[34,105974,105975],{"class":181},"        total ",[34,105977,31462],{"class":580},[34,105979,105980],{"class":181}," n\n",[34,105982,105983],{"class":36,"line":839},[34,105984,3229],{"class":181},[34,105986,105987,105989],{"class":36,"line":854},[34,105988,1564],{"class":580},[34,105990,49663],{"class":181},[34,105992,105993],{"class":36,"line":860},[34,105994,693],{"class":181},[34,105996,105997],{"class":36,"line":865},[34,105998,62],{"emptyLinePlaceholder":61},[34,106000,106001],{"class":36,"line":870},[34,106002,106003],{"class":40},"// Anonymous function / closure\n",[34,106005,106006,106009,106011,106013,106015,106017,106019,106021,106023],{"class":36,"line":876},[34,106007,106008],{"class":181},"square ",[34,106010,12895],{"class":580},[34,106012,105616],{"class":580},[34,106014,1607],{"class":181},[34,106016,23655],{"class":675},[34,106018,25160],{"class":580},[34,106020,4817],{"class":181},[34,106022,17772],{"class":580},[34,106024,661],{"class":181},[34,106026,106027,106029,106031,106033],{"class":36,"line":885},[34,106028,1564],{"class":580},[34,106030,23172],{"class":181},[34,106032,4289],{"class":580},[34,106034,105907],{"class":181},[34,106036,106037],{"class":36,"line":895},[34,106038,693],{"class":181},[388,106040,17665],{},{"title":30,"searchDepth":44,"depth":44,"links":106042},[106043],{"id":10996,"depth":44,"text":10991},"Functions in Go.",{},"/go/functions",{"title":10991,"description":106044},"go/functions",[103114,103826,46870,33299],"6e7yxEL-r-bdqBA-lqsBwwVhBb9pa3sGVLmmKBUeDVs",{"id":106052,"title":106053,"body":106054,"date":402,"description":106324,"extension":404,"meta":106325,"navigation":61,"order":706,"path":106326,"seo":106327,"stem":106328,"subject":103114,"tags":106329,"__hash__":106330},"topics/go/goroutines.md","Goroutines",{"type":8,"value":106055,"toc":106321},[106056,106059,106318],[11,106057,106053],{"id":106058},"goroutines",[25,106060,106062],{"className":103512,"code":106061,"language":103114,"meta":30,"style":30},"// Start a goroutine\ngo func() {\n    fmt.Println(\"Running in goroutine\")\n}()\n\n// Goroutine with function\nfunc worker(id int) {\n    fmt.Printf(\"Worker %d starting\\n\", id)\n    time.Sleep(time.Second)\n    fmt.Printf(\"Worker %d done\\n\", id)\n}\n\ngo worker(1)\ngo worker(2)\n\n// Wait for goroutines\nvar wg sync.WaitGroup\nfor i := 0; i \u003C 5; i++ {\n    wg.Add(1)\n    go func(id int) {\n        defer wg.Done()\n        worker(id)\n    }(i)\n}\nwg.Wait()\n",[20,106063,106064,106069,106077,106090,106095,106099,106104,106119,106142,106152,106173,106177,106181,106193,106205,106209,106214,106229,106251,106264,106278,106291,106299,106304,106308],{"__ignoreMap":30},[34,106065,106066],{"class":36,"line":37},[34,106067,106068],{"class":40},"// Start a goroutine\n",[34,106070,106071,106073,106075],{"class":36,"line":44},[34,106072,103114],{"class":580},[34,106074,105616],{"class":580},[34,106076,836],{"class":181},[34,106078,106079,106081,106083,106085,106088],{"class":36,"line":58},[34,106080,103980],{"class":181},[34,106082,103983],{"class":47},[34,106084,1607],{"class":181},[34,106086,106087],{"class":54},"\"Running in goroutine\"",[34,106089,3372],{"class":181},[34,106091,106092],{"class":36,"line":65},[34,106093,106094],{"class":181},"}()\n",[34,106096,106097],{"class":36,"line":71},[34,106098,62],{"emptyLinePlaceholder":61},[34,106100,106101],{"class":36,"line":77},[34,106102,106103],{"class":40},"// Goroutine with function\n",[34,106105,106106,106108,106111,106113,106115,106117],{"class":36,"line":82},[34,106107,105159],{"class":580},[34,106109,106110],{"class":47}," worker",[34,106112,1607],{"class":181},[34,106114,3885],{"class":675},[34,106116,25160],{"class":580},[34,106118,2416],{"class":181},[34,106120,106121,106123,106125,106127,106130,106132,106135,106137,106139],{"class":36,"line":88},[34,106122,103980],{"class":181},[34,106124,104377],{"class":47},[34,106126,1607],{"class":181},[34,106128,106129],{"class":54},"\"Worker ",[34,106131,18285],{"class":50},[34,106133,106134],{"class":54}," starting",[34,106136,18860],{"class":50},[34,106138,10389],{"class":54},[34,106140,106141],{"class":181},", id)\n",[34,106143,106144,106147,106149],{"class":36,"line":242},[34,106145,106146],{"class":181},"    time.",[34,106148,104568],{"class":47},[34,106150,106151],{"class":181},"(time.Second)\n",[34,106153,106154,106156,106158,106160,106162,106164,106167,106169,106171],{"class":36,"line":250},[34,106155,103980],{"class":181},[34,106157,104377],{"class":47},[34,106159,1607],{"class":181},[34,106161,106129],{"class":54},[34,106163,18285],{"class":50},[34,106165,106166],{"class":54}," done",[34,106168,18860],{"class":50},[34,106170,10389],{"class":54},[34,106172,106141],{"class":181},[34,106174,106175],{"class":36,"line":263},[34,106176,693],{"class":181},[34,106178,106179],{"class":36,"line":275},[34,106180,62],{"emptyLinePlaceholder":61},[34,106182,106183,106185,106187,106189,106191],{"class":36,"line":700},[34,106184,103114],{"class":580},[34,106186,106110],{"class":47},[34,106188,1607],{"class":181},[34,106190,8318],{"class":50},[34,106192,3372],{"class":181},[34,106194,106195,106197,106199,106201,106203],{"class":36,"line":706},[34,106196,103114],{"class":580},[34,106198,106110],{"class":47},[34,106200,1607],{"class":181},[34,106202,8324],{"class":50},[34,106204,3372],{"class":181},[34,106206,106207],{"class":36,"line":715},[34,106208,62],{"emptyLinePlaceholder":61},[34,106210,106211],{"class":36,"line":725},[34,106212,106213],{"class":40},"// Wait for goroutines\n",[34,106215,106216,106218,106221,106224,106226],{"class":36,"line":734},[34,106217,34404],{"class":580},[34,106219,106220],{"class":181}," wg ",[34,106222,106223],{"class":47},"sync",[34,106225,151],{"class":181},[34,106227,106228],{"class":47},"WaitGroup\n",[34,106230,106231,106233,106235,106237,106239,106241,106243,106245,106247,106249],{"class":36,"line":742},[34,106232,10246],{"class":580},[34,106234,10300],{"class":181},[34,106236,12895],{"class":580},[34,106238,8070],{"class":50},[34,106240,18263],{"class":181},[34,106242,815],{"class":580},[34,106244,11144],{"class":50},[34,106246,11918],{"class":181},[34,106248,11928],{"class":580},[34,106250,661],{"class":181},[34,106252,106253,106256,106258,106260,106262],{"class":36,"line":748},[34,106254,106255],{"class":181},"    wg.",[34,106257,33455],{"class":47},[34,106259,1607],{"class":181},[34,106261,8318],{"class":50},[34,106263,3372],{"class":181},[34,106265,106266,106268,106270,106272,106274,106276],{"class":36,"line":754},[34,106267,88649],{"class":580},[34,106269,105616],{"class":580},[34,106271,1607],{"class":181},[34,106273,3885],{"class":675},[34,106275,25160],{"class":580},[34,106277,2416],{"class":181},[34,106279,106280,106283,106286,106289],{"class":36,"line":759},[34,106281,106282],{"class":580},"        defer",[34,106284,106285],{"class":181}," wg.",[34,106287,106288],{"class":47},"Done",[34,106290,33899],{"class":181},[34,106292,106293,106296],{"class":36,"line":771},[34,106294,106295],{"class":47},"        worker",[34,106297,106298],{"class":181},"(id)\n",[34,106300,106301],{"class":36,"line":794},[34,106302,106303],{"class":181},"    }(i)\n",[34,106305,106306],{"class":36,"line":824},[34,106307,693],{"class":181},[34,106309,106310,106313,106316],{"class":36,"line":830},[34,106311,106312],{"class":181},"wg.",[34,106314,106315],{"class":47},"Wait",[34,106317,33899],{"class":181},[388,106319,106320],{},"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 .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 .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 .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":30,"searchDepth":44,"depth":44,"links":106322},[106323],{"id":106058,"depth":44,"text":106053},"Goroutines in Go.",{},"/go/goroutines",{"title":106053,"description":106324},"go/goroutines",[103114,103826,46870,33299],"IblL7bCx1l6ukMDlTYPuSls6fupmGl4AIVZdytgLFZE",{"id":106332,"title":22151,"body":106333,"date":402,"description":106396,"extension":404,"meta":106397,"navigation":61,"order":44,"path":106398,"seo":106399,"stem":106400,"subject":103114,"tags":106401,"__hash__":106402},"topics/go/hello-world.md",{"type":8,"value":106334,"toc":106393},[106335,106337,106390],[11,106336,22151],{"id":22156},[25,106338,106340],{"className":103512,"code":106339,"language":103114,"meta":30,"style":30},"package main\n\nimport \"fmt\"\n\nfunc main() {\n    fmt.Println(\"Hello, World!\")\n}\n",[20,106341,106342,106348,106352,106362,106366,106374,106386],{"__ignoreMap":30},[34,106343,106344,106346],{"class":36,"line":37},[34,106345,6165],{"class":580},[34,106347,92545],{"class":47},[34,106349,106350],{"class":36,"line":44},[34,106351,62],{"emptyLinePlaceholder":61},[34,106353,106354,106356,106358,106360],{"class":36,"line":58},[34,106355,581],{"class":580},[34,106357,10326],{"class":54},[34,106359,104344],{"class":47},[34,106361,11320],{"class":54},[34,106363,106364],{"class":36,"line":65},[34,106365,62],{"emptyLinePlaceholder":61},[34,106367,106368,106370,106372],{"class":36,"line":71},[34,106369,105159],{"class":580},[34,106371,18224],{"class":47},[34,106373,836],{"class":181},[34,106375,106376,106378,106380,106382,106384],{"class":36,"line":77},[34,106377,103980],{"class":181},[34,106379,103983],{"class":47},[34,106381,1607],{"class":181},[34,106383,15076],{"class":54},[34,106385,3372],{"class":181},[34,106387,106388],{"class":36,"line":82},[34,106389,693],{"class":181},[388,106391,106392],{},"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 .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 .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":30,"searchDepth":44,"depth":44,"links":106394},[106395],{"id":22156,"depth":44,"text":22151},"Hello World in Go.",{},"/go/hello-world",{"title":22151,"description":106396},"go/hello-world",[103114,103826,46870,33299],"VwRbQ3R8jEQ1iI6NMzc6ul_h9dTBkVd7r56My74WZUo",{"id":106404,"title":106405,"body":106406,"date":402,"description":106808,"extension":404,"meta":106809,"navigation":61,"order":275,"path":106810,"seo":106811,"stem":106812,"subject":103114,"tags":106813,"__hash__":106814},"topics/go/interfaces.md","Interfaces",{"type":8,"value":106407,"toc":106805},[106408,106411,106803],[11,106409,106405],{"id":106410},"interfaces",[25,106412,106414],{"className":103512,"code":106413,"language":103114,"meta":30,"style":30},"// Define an interface\ntype Shape interface {\n    Area() float64\n    Perimeter() float64\n}\n\n// Implement interface (implicit)\ntype Circle struct {\n    Radius float64\n}\n\nfunc (c Circle) Area() float64 {\n    return math.Pi * c.Radius * c.Radius\n}\n\nfunc (c Circle) Perimeter() float64 {\n    return 2 * math.Pi * c.Radius\n}\n\n// Use interface\nfunc printShape(s Shape) {\n    fmt.Printf(\"Area: %.2f\\n\", s.Area())\n}\n\n// Empty interface (any type)\nvar any interface{}\nany = 42\nany = \"hello\"\n\n// Type assertion\nstr, ok := any.(string)\nif ok {\n    fmt.Println(str)\n}\n\n// Type switch\nswitch v := any.(type) {\ncase int:\n    fmt.Println(\"int:\", v)\ncase string:\n    fmt.Println(\"string:\", v)\ndefault:\n    fmt.Println(\"unknown type\")\n}\n",[20,106415,106416,106421,106432,106442,106451,106455,106459,106464,106474,106481,106485,106489,106512,106529,106533,106537,106558,106572,106576,106580,106585,106600,106623,106627,106631,106636,106648,106658,106666,106670,106675,106691,106698,106707,106711,106715,106720,106737,106745,106759,106767,106780,106786,106799],{"__ignoreMap":30},[34,106417,106418],{"class":36,"line":37},[34,106419,106420],{"class":40},"// Define an interface\n",[34,106422,106423,106425,106428,106430],{"class":36,"line":44},[34,106424,41324],{"class":580},[34,106426,106427],{"class":47}," Shape",[34,106429,36013],{"class":580},[34,106431,661],{"class":181},[34,106433,106434,106437,106439],{"class":36,"line":58},[34,106435,106436],{"class":47},"    Area",[34,106438,672],{"class":181},[34,106440,106441],{"class":580},"float64\n",[34,106443,106444,106447,106449],{"class":36,"line":65},[34,106445,106446],{"class":47},"    Perimeter",[34,106448,672],{"class":181},[34,106450,106441],{"class":580},[34,106452,106453],{"class":36,"line":71},[34,106454,693],{"class":181},[34,106456,106457],{"class":36,"line":77},[34,106458,62],{"emptyLinePlaceholder":61},[34,106460,106461],{"class":36,"line":82},[34,106462,106463],{"class":40},"// Implement interface (implicit)\n",[34,106465,106466,106468,106470,106472],{"class":36,"line":88},[34,106467,41324],{"class":580},[34,106469,36146],{"class":47},[34,106471,18332],{"class":580},[34,106473,661],{"class":181},[34,106475,106476,106479],{"class":36,"line":242},[34,106477,106478],{"class":181},"    Radius ",[34,106480,106441],{"class":580},[34,106482,106483],{"class":36,"line":250},[34,106484,693],{"class":181},[34,106486,106487],{"class":36,"line":263},[34,106488,62],{"emptyLinePlaceholder":61},[34,106490,106491,106493,106495,106498,106501,106503,106506,106508,106510],{"class":36,"line":275},[34,106492,105159],{"class":580},[34,106494,3204],{"class":181},[34,106496,106497],{"class":675},"c ",[34,106499,106500],{"class":47},"Circle",[34,106502,4817],{"class":181},[34,106504,106505],{"class":47},"Area",[34,106507,672],{"class":181},[34,106509,105011],{"class":580},[34,106511,661],{"class":181},[34,106513,106514,106516,106519,106521,106524,106526],{"class":36,"line":700},[34,106515,1564],{"class":580},[34,106517,106518],{"class":181}," math.Pi ",[34,106520,4289],{"class":580},[34,106522,106523],{"class":181}," c.Radius ",[34,106525,4289],{"class":580},[34,106527,106528],{"class":181}," c.Radius\n",[34,106530,106531],{"class":36,"line":706},[34,106532,693],{"class":181},[34,106534,106535],{"class":36,"line":715},[34,106536,62],{"emptyLinePlaceholder":61},[34,106538,106539,106541,106543,106545,106547,106549,106552,106554,106556],{"class":36,"line":725},[34,106540,105159],{"class":580},[34,106542,3204],{"class":181},[34,106544,106497],{"class":675},[34,106546,106500],{"class":47},[34,106548,4817],{"class":181},[34,106550,106551],{"class":47},"Perimeter",[34,106553,672],{"class":181},[34,106555,105011],{"class":580},[34,106557,661],{"class":181},[34,106559,106560,106562,106564,106566,106568,106570],{"class":36,"line":734},[34,106561,1564],{"class":580},[34,106563,4292],{"class":50},[34,106565,18083],{"class":580},[34,106567,106518],{"class":181},[34,106569,4289],{"class":580},[34,106571,106528],{"class":181},[34,106573,106574],{"class":36,"line":742},[34,106575,693],{"class":181},[34,106577,106578],{"class":36,"line":748},[34,106579,62],{"emptyLinePlaceholder":61},[34,106581,106582],{"class":36,"line":754},[34,106583,106584],{"class":40},"// Use interface\n",[34,106586,106587,106589,106592,106594,106596,106598],{"class":36,"line":759},[34,106588,105159],{"class":580},[34,106590,106591],{"class":47}," printShape",[34,106593,1607],{"class":181},[34,106595,523],{"class":675},[34,106597,106427],{"class":47},[34,106599,2416],{"class":181},[34,106601,106602,106604,106606,106608,106611,106614,106616,106619,106621],{"class":36,"line":771},[34,106603,103980],{"class":181},[34,106605,104377],{"class":47},[34,106607,1607],{"class":181},[34,106609,106610],{"class":54},"\"Area: ",[34,106612,106613],{"class":50},"%.2f\\n",[34,106615,10389],{"class":54},[34,106617,106618],{"class":181},", s.",[34,106620,106505],{"class":47},[34,106622,62281],{"class":181},[34,106624,106625],{"class":36,"line":794},[34,106626,693],{"class":181},[34,106628,106629],{"class":36,"line":824},[34,106630,62],{"emptyLinePlaceholder":61},[34,106632,106633],{"class":36,"line":830},[34,106634,106635],{"class":40},"// Empty interface (any type)\n",[34,106637,106638,106640,106643,106645],{"class":36,"line":839},[34,106639,34404],{"class":580},[34,106641,106642],{"class":181}," any ",[34,106644,17562],{"class":580},[34,106646,106647],{"class":181},"{}\n",[34,106649,106650,106653,106655],{"class":36,"line":854},[34,106651,106652],{"class":47},"any",[34,106654,683],{"class":580},[34,106656,106657],{"class":50}," 42\n",[34,106659,106660,106662,106664],{"class":36,"line":860},[34,106661,106652],{"class":47},[34,106663,683],{"class":580},[34,106665,104970],{"class":54},[34,106667,106668],{"class":36,"line":865},[34,106669,62],{"emptyLinePlaceholder":61},[34,106671,106672],{"class":36,"line":870},[34,106673,106674],{"class":40},"// Type assertion\n",[34,106676,106677,106680,106682,106684,106687,106689],{"class":36,"line":876},[34,106678,106679],{"class":181},"str, ok ",[34,106681,12895],{"class":580},[34,106683,69686],{"class":47},[34,106685,106686],{"class":181},".(",[34,106688,30113],{"class":580},[34,106690,3372],{"class":181},[34,106692,106693,106695],{"class":36,"line":885},[34,106694,10383],{"class":580},[34,106696,106697],{"class":181}," ok {\n",[34,106699,106700,106702,106704],{"class":36,"line":895},[34,106701,103980],{"class":181},[34,106703,103983],{"class":47},[34,106705,106706],{"class":181},"(str)\n",[34,106708,106709],{"class":36,"line":904},[34,106710,693],{"class":181},[34,106712,106713],{"class":36,"line":915},[34,106714,62],{"emptyLinePlaceholder":61},[34,106716,106717],{"class":36,"line":927},[34,106718,106719],{"class":40},"// Type switch\n",[34,106721,106722,106724,106727,106729,106731,106733,106735],{"class":36,"line":932},[34,106723,18978],{"class":580},[34,106725,106726],{"class":181}," v ",[34,106728,12895],{"class":580},[34,106730,69686],{"class":47},[34,106732,106686],{"class":181},[34,106734,41324],{"class":580},[34,106736,2416],{"class":181},[34,106738,106739,106741,106743],{"class":36,"line":944},[34,106740,104050],{"class":580},[34,106742,25160],{"class":580},[34,106744,193],{"class":181},[34,106746,106747,106749,106751,106753,106756],{"class":36,"line":966},[34,106748,103980],{"class":181},[34,106750,103983],{"class":47},[34,106752,1607],{"class":181},[34,106754,106755],{"class":54},"\"int:\"",[34,106757,106758],{"class":181},", v)\n",[34,106760,106761,106763,106765],{"class":36,"line":1948},[34,106762,104050],{"class":580},[34,106764,680],{"class":580},[34,106766,193],{"class":181},[34,106768,106769,106771,106773,106775,106778],{"class":36,"line":1953},[34,106770,103980],{"class":181},[34,106772,103983],{"class":47},[34,106774,1607],{"class":181},[34,106776,106777],{"class":54},"\"string:\"",[34,106779,106758],{"class":181},[34,106781,106782,106784],{"class":36,"line":3616},[34,106783,104159],{"class":580},[34,106785,193],{"class":181},[34,106787,106788,106790,106792,106794,106797],{"class":36,"line":3622},[34,106789,103980],{"class":181},[34,106791,103983],{"class":47},[34,106793,1607],{"class":181},[34,106795,106796],{"class":54},"\"unknown type\"",[34,106798,3372],{"class":181},[34,106800,106801],{"class":36,"line":3642},[34,106802,693],{"class":181},[388,106804,17665],{},{"title":30,"searchDepth":44,"depth":44,"links":106806},[106807],{"id":106410,"depth":44,"text":106405},"Interfaces in Go.",{},"/go/interfaces",{"title":106405,"description":106808},"go/interfaces",[103114,103826,46870,33299],"qYSRe0mPzk7CRMSkD1oByl5qitPKaHO46BYHTrTDxOs",{"id":106816,"title":11769,"body":106817,"date":402,"description":107103,"extension":404,"meta":107104,"navigation":61,"order":88,"path":107105,"seo":107106,"stem":107107,"subject":103114,"tags":107108,"__hash__":107109},"topics/go/loops.md",{"type":8,"value":106818,"toc":107100},[106819,106821,107098],[11,106820,11769],{"id":11774},[25,106822,106824],{"className":103512,"code":106823,"language":103114,"meta":30,"style":30},"// Basic for loop\nfor i := 0; i \u003C 10; i++ {\n    fmt.Println(i)\n}\n\n// While-style loop\nfor x \u003C 100 {\n    x *= 2\n}\n\n// Infinite loop\nfor {\n    // break to exit\n    break\n}\n\n// Range over slice\nnums := []int{1, 2, 3}\nfor index, value := range nums {\n    fmt.Printf(\"%d: %d\\n\", index, value)\n}\n\n// Range over map\nfor key, value := range myMap {\n    fmt.Printf(\"%s: %v\\n\", key, value)\n}\n\n// Range over string (runes)\nfor i, char := range \"hello\" {\n    fmt.Printf(\"%d: %c\\n\", i, char)\n}\n",[20,106825,106826,106831,106853,106861,106865,106869,106874,106886,106894,106898,106902,106907,106913,106918,106923,106927,106931,106936,106961,106974,106995,106999,107003,107008,107022,107044,107048,107052,107057,107072,107094],{"__ignoreMap":30},[34,106827,106828],{"class":36,"line":37},[34,106829,106830],{"class":40},"// Basic for loop\n",[34,106832,106833,106835,106837,106839,106841,106843,106845,106847,106849,106851],{"class":36,"line":44},[34,106834,10246],{"class":580},[34,106836,10300],{"class":181},[34,106838,12895],{"class":580},[34,106840,8070],{"class":50},[34,106842,18263],{"class":181},[34,106844,815],{"class":580},[34,106846,13123],{"class":50},[34,106848,11918],{"class":181},[34,106850,11928],{"class":580},[34,106852,661],{"class":181},[34,106854,106855,106857,106859],{"class":36,"line":58},[34,106856,103980],{"class":181},[34,106858,103983],{"class":47},[34,106860,88624],{"class":181},[34,106862,106863],{"class":36,"line":65},[34,106864,693],{"class":181},[34,106866,106867],{"class":36,"line":71},[34,106868,62],{"emptyLinePlaceholder":61},[34,106870,106871],{"class":36,"line":77},[34,106872,106873],{"class":40},"// While-style loop\n",[34,106875,106876,106878,106880,106882,106884],{"class":36,"line":82},[34,106877,10246],{"class":580},[34,106879,23172],{"class":181},[34,106881,815],{"class":580},[34,106883,25168],{"class":50},[34,106885,661],{"class":181},[34,106887,106888,106890,106892],{"class":36,"line":88},[34,106889,31295],{"class":181},[34,106891,18412],{"class":580},[34,106893,9930],{"class":50},[34,106895,106896],{"class":36,"line":242},[34,106897,693],{"class":181},[34,106899,106900],{"class":36,"line":250},[34,106901,62],{"emptyLinePlaceholder":61},[34,106903,106904],{"class":36,"line":263},[34,106905,106906],{"class":40},"// Infinite loop\n",[34,106908,106909,106911],{"class":36,"line":275},[34,106910,10246],{"class":580},[34,106912,661],{"class":181},[34,106914,106915],{"class":36,"line":700},[34,106916,106917],{"class":40},"    // break to exit\n",[34,106919,106920],{"class":36,"line":706},[34,106921,106922],{"class":580},"    break\n",[34,106924,106925],{"class":36,"line":715},[34,106926,693],{"class":181},[34,106928,106929],{"class":36,"line":725},[34,106930,62],{"emptyLinePlaceholder":61},[34,106932,106933],{"class":36,"line":734},[34,106934,106935],{"class":40},"// Range over slice\n",[34,106937,106938,106941,106943,106945,106947,106949,106951,106953,106955,106957,106959],{"class":36,"line":742},[34,106939,106940],{"class":181},"nums ",[34,106942,12895],{"class":580},[34,106944,87602],{"class":181},[34,106946,17772],{"class":580},[34,106948,13990],{"class":181},[34,106950,8318],{"class":50},[34,106952,1798],{"class":181},[34,106954,8324],{"class":50},[34,106956,1798],{"class":181},[34,106958,3162],{"class":50},[34,106960,693],{"class":181},[34,106962,106963,106965,106968,106970,106972],{"class":36,"line":748},[34,106964,10246],{"class":580},[34,106966,106967],{"class":181}," index, value ",[34,106969,12895],{"class":580},[34,106971,104014],{"class":580},[34,106973,105970],{"class":181},[34,106975,106976,106978,106980,106982,106984,106986,106988,106990,106992],{"class":36,"line":754},[34,106977,103980],{"class":181},[34,106979,104377],{"class":47},[34,106981,1607],{"class":181},[34,106983,10389],{"class":54},[34,106985,18285],{"class":50},[34,106987,182],{"class":54},[34,106989,18105],{"class":50},[34,106991,10389],{"class":54},[34,106993,106994],{"class":181},", index, value)\n",[34,106996,106997],{"class":36,"line":759},[34,106998,693],{"class":181},[34,107000,107001],{"class":36,"line":771},[34,107002,62],{"emptyLinePlaceholder":61},[34,107004,107005],{"class":36,"line":794},[34,107006,107007],{"class":40},"// Range over map\n",[34,107009,107010,107012,107015,107017,107019],{"class":36,"line":824},[34,107011,10246],{"class":580},[34,107013,107014],{"class":181}," key, value ",[34,107016,12895],{"class":580},[34,107018,104014],{"class":580},[34,107020,107021],{"class":181}," myMap {\n",[34,107023,107024,107026,107028,107030,107032,107034,107036,107039,107041],{"class":36,"line":830},[34,107025,103980],{"class":181},[34,107027,104377],{"class":47},[34,107029,1607],{"class":181},[34,107031,10389],{"class":54},[34,107033,21087],{"class":50},[34,107035,182],{"class":54},[34,107037,107038],{"class":50},"%v\\n",[34,107040,10389],{"class":54},[34,107042,107043],{"class":181},", key, value)\n",[34,107045,107046],{"class":36,"line":839},[34,107047,693],{"class":181},[34,107049,107050],{"class":36,"line":854},[34,107051,62],{"emptyLinePlaceholder":61},[34,107053,107054],{"class":36,"line":860},[34,107055,107056],{"class":40},"// Range over string (runes)\n",[34,107058,107059,107061,107064,107066,107068,107070],{"class":36,"line":865},[34,107060,10246],{"class":580},[34,107062,107063],{"class":181}," i, char ",[34,107065,12895],{"class":580},[34,107067,104014],{"class":580},[34,107069,13866],{"class":54},[34,107071,661],{"class":181},[34,107073,107074,107076,107078,107080,107082,107084,107086,107089,107091],{"class":36,"line":870},[34,107075,103980],{"class":181},[34,107077,104377],{"class":47},[34,107079,1607],{"class":181},[34,107081,10389],{"class":54},[34,107083,18285],{"class":50},[34,107085,182],{"class":54},[34,107087,107088],{"class":50},"%c\\n",[34,107090,10389],{"class":54},[34,107092,107093],{"class":181},", i, char)\n",[34,107095,107096],{"class":36,"line":876},[34,107097,693],{"class":181},[388,107099,19339],{},{"title":30,"searchDepth":44,"depth":44,"links":107101},[107102],{"id":11774,"depth":44,"text":11769},"Loops in Go.",{},"/go/loops",{"title":11769,"description":107103},"go/loops",[103114,103826,46870,33299],"WbBS3ykBYxsZuSjIVawb3rGapb6WuyGOWzvLKD7bAqs",{"id":107111,"title":61463,"body":107112,"date":402,"description":107358,"extension":404,"meta":107359,"navigation":61,"order":77,"path":107360,"seo":107361,"stem":107362,"subject":103114,"tags":107363,"__hash__":107364},"topics/go/maps.md",{"type":8,"value":107113,"toc":107355},[107114,107116,107352],[11,107115,61463],{"id":88006},[25,107117,107119],{"className":103512,"code":107118,"language":103114,"meta":30,"style":30},"// Create a map\nm := make(map[string]int)\nm[\"one\"] = 1\nm[\"two\"] = 2\n\n// Map literal\nscores := map[string]int{\n    \"Alice\": 95,\n    \"Bob\":   87,\n}\n\n// Access and check existence\nvalue := scores[\"Alice\"]\nvalue, exists := scores[\"Alice\"]\nif exists {\n    fmt.Println(value)\n}\n\n// Delete a key\ndelete(scores, \"Bob\")\n\n// Iterate over map\nfor key, value := range scores {\n    fmt.Printf(\"%s: %d\\n\", key, value)\n}\n",[20,107120,107121,107126,107149,107162,107175,107179,107184,107203,107215,107228,107232,107236,107241,107254,107267,107274,107282,107286,107290,107295,107306,107310,107315,107328,107348],{"__ignoreMap":30},[34,107122,107123],{"class":36,"line":37},[34,107124,107125],{"class":40},"// Create a map\n",[34,107127,107128,107131,107133,107135,107137,107139,107141,107143,107145,107147],{"class":36,"line":44},[34,107129,107130],{"class":181},"m ",[34,107132,12895],{"class":580},[34,107134,103650],{"class":47},[34,107136,1607],{"class":181},[34,107138,61180],{"class":580},[34,107140,10260],{"class":181},[34,107142,30113],{"class":580},[34,107144,10173],{"class":181},[34,107146,17772],{"class":580},[34,107148,3372],{"class":181},[34,107150,107151,107154,107156,107158,107160],{"class":36,"line":58},[34,107152,107153],{"class":181},"m[",[34,107155,31883],{"class":54},[34,107157,17799],{"class":181},[34,107159,1301],{"class":580},[34,107161,43446],{"class":50},[34,107163,107164,107166,107169,107171,107173],{"class":36,"line":65},[34,107165,107153],{"class":181},[34,107167,107168],{"class":54},"\"two\"",[34,107170,17799],{"class":181},[34,107172,1301],{"class":580},[34,107174,9930],{"class":50},[34,107176,107177],{"class":36,"line":71},[34,107178,62],{"emptyLinePlaceholder":61},[34,107180,107181],{"class":36,"line":77},[34,107182,107183],{"class":40},"// Map literal\n",[34,107185,107186,107189,107191,107193,107195,107197,107199,107201],{"class":36,"line":82},[34,107187,107188],{"class":181},"scores ",[34,107190,12895],{"class":580},[34,107192,88036],{"class":580},[34,107194,10260],{"class":181},[34,107196,30113],{"class":580},[34,107198,10173],{"class":181},[34,107200,17772],{"class":580},[34,107202,25296],{"class":181},[34,107204,107205,107208,107210,107213],{"class":36,"line":88},[34,107206,107207],{"class":54},"    \"Alice\"",[34,107209,182],{"class":181},[34,107211,107212],{"class":50},"95",[34,107214,624],{"class":181},[34,107216,107217,107220,107223,107226],{"class":36,"line":242},[34,107218,107219],{"class":54},"    \"Bob\"",[34,107221,107222],{"class":181},":   ",[34,107224,107225],{"class":50},"87",[34,107227,624],{"class":181},[34,107229,107230],{"class":36,"line":250},[34,107231,693],{"class":181},[34,107233,107234],{"class":36,"line":263},[34,107235,62],{"emptyLinePlaceholder":61},[34,107237,107238],{"class":36,"line":275},[34,107239,107240],{"class":40},"// Access and check existence\n",[34,107242,107243,107245,107247,107250,107252],{"class":36,"line":700},[34,107244,103917],{"class":181},[34,107246,12895],{"class":580},[34,107248,107249],{"class":181}," scores[",[34,107251,21650],{"class":54},[34,107253,924],{"class":181},[34,107255,107256,107259,107261,107263,107265],{"class":36,"line":706},[34,107257,107258],{"class":181},"value, exists ",[34,107260,12895],{"class":580},[34,107262,107249],{"class":181},[34,107264,21650],{"class":54},[34,107266,924],{"class":181},[34,107268,107269,107271],{"class":36,"line":715},[34,107270,10383],{"class":580},[34,107272,107273],{"class":181}," exists {\n",[34,107275,107276,107278,107280],{"class":36,"line":725},[34,107277,103980],{"class":181},[34,107279,103983],{"class":47},[34,107281,104026],{"class":181},[34,107283,107284],{"class":36,"line":734},[34,107285,693],{"class":181},[34,107287,107288],{"class":36,"line":742},[34,107289,62],{"emptyLinePlaceholder":61},[34,107291,107292],{"class":36,"line":748},[34,107293,107294],{"class":40},"// Delete a key\n",[34,107296,107297,107299,107302,107304],{"class":36,"line":754},[34,107298,30355],{"class":47},[34,107300,107301],{"class":181},"(scores, ",[34,107303,30344],{"class":54},[34,107305,3372],{"class":181},[34,107307,107308],{"class":36,"line":759},[34,107309,62],{"emptyLinePlaceholder":61},[34,107311,107312],{"class":36,"line":771},[34,107313,107314],{"class":40},"// Iterate over map\n",[34,107316,107317,107319,107321,107323,107325],{"class":36,"line":794},[34,107318,10246],{"class":580},[34,107320,107014],{"class":181},[34,107322,12895],{"class":580},[34,107324,104014],{"class":580},[34,107326,107327],{"class":181}," scores {\n",[34,107329,107330,107332,107334,107336,107338,107340,107342,107344,107346],{"class":36,"line":824},[34,107331,103980],{"class":181},[34,107333,104377],{"class":47},[34,107335,1607],{"class":181},[34,107337,10389],{"class":54},[34,107339,21087],{"class":50},[34,107341,182],{"class":54},[34,107343,18105],{"class":50},[34,107345,10389],{"class":54},[34,107347,107043],{"class":181},[34,107349,107350],{"class":36,"line":830},[34,107351,693],{"class":181},[388,107353,107354],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .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 .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":30,"searchDepth":44,"depth":44,"links":107356},[107357],{"id":88006,"depth":44,"text":61463},"Maps in Go.",{},"/go/maps",{"title":61463,"description":107358},"go/maps",[103114,103826,46870,33299],"irG0vQkjf4mvJKYlOT3svvqrUzdAqaYJkODG08CBjsQ",{"id":107366,"title":36908,"body":107367,"date":402,"description":107581,"extension":404,"meta":107582,"navigation":61,"order":263,"path":107583,"seo":107584,"stem":107585,"subject":103114,"tags":107586,"__hash__":107587},"topics/go/methods.md",{"type":8,"value":107368,"toc":107578},[107369,107371,107575],[11,107370,36908],{"id":36913},[25,107372,107374],{"className":103512,"code":107373,"language":103114,"meta":30,"style":30},"type Rectangle struct {\n    Width, Height float64\n}\n\n// Value receiver\nfunc (r Rectangle) Area() float64 {\n    return r.Width * r.Height\n}\n\n// Pointer receiver (can modify the struct)\nfunc (r *Rectangle) Scale(factor float64) {\n    r.Width *= factor\n    r.Height *= factor\n}\n\n// Usage\nrect := Rectangle{10, 5}\nfmt.Println(rect.Area())  // 50\nrect.Scale(2)\nfmt.Println(rect.Area())  // 200\n",[20,107375,107376,107387,107394,107398,107402,107407,107429,107441,107445,107449,107454,107480,107490,107499,107503,107507,107511,107530,107547,107560],{"__ignoreMap":30},[34,107377,107378,107380,107383,107385],{"class":36,"line":37},[34,107379,41324],{"class":580},[34,107381,107382],{"class":47}," Rectangle",[34,107384,18332],{"class":580},[34,107386,661],{"class":181},[34,107388,107389,107392],{"class":36,"line":44},[34,107390,107391],{"class":181},"    Width, Height ",[34,107393,106441],{"class":580},[34,107395,107396],{"class":36,"line":58},[34,107397,693],{"class":181},[34,107399,107400],{"class":36,"line":65},[34,107401,62],{"emptyLinePlaceholder":61},[34,107403,107404],{"class":36,"line":71},[34,107405,107406],{"class":40},"// Value receiver\n",[34,107408,107409,107411,107413,107416,107419,107421,107423,107425,107427],{"class":36,"line":77},[34,107410,105159],{"class":580},[34,107412,3204],{"class":181},[34,107414,107415],{"class":675},"r ",[34,107417,107418],{"class":47},"Rectangle",[34,107420,4817],{"class":181},[34,107422,106505],{"class":47},[34,107424,672],{"class":181},[34,107426,105011],{"class":580},[34,107428,661],{"class":181},[34,107430,107431,107433,107436,107438],{"class":36,"line":82},[34,107432,1564],{"class":580},[34,107434,107435],{"class":181}," r.Width ",[34,107437,4289],{"class":580},[34,107439,107440],{"class":181}," r.Height\n",[34,107442,107443],{"class":36,"line":88},[34,107444,693],{"class":181},[34,107446,107447],{"class":36,"line":242},[34,107448,62],{"emptyLinePlaceholder":61},[34,107450,107451],{"class":36,"line":250},[34,107452,107453],{"class":40},"// Pointer receiver (can modify the struct)\n",[34,107455,107456,107458,107460,107462,107464,107466,107468,107471,107473,107476,107478],{"class":36,"line":263},[34,107457,105159],{"class":580},[34,107459,3204],{"class":181},[34,107461,107415],{"class":675},[34,107463,4289],{"class":580},[34,107465,107418],{"class":47},[34,107467,4817],{"class":181},[34,107469,107470],{"class":47},"Scale",[34,107472,1607],{"class":181},[34,107474,107475],{"class":675},"factor",[34,107477,105780],{"class":580},[34,107479,2416],{"class":181},[34,107481,107482,107485,107487],{"class":36,"line":275},[34,107483,107484],{"class":181},"    r.Width ",[34,107486,18412],{"class":580},[34,107488,107489],{"class":181}," factor\n",[34,107491,107492,107495,107497],{"class":36,"line":700},[34,107493,107494],{"class":181},"    r.Height ",[34,107496,18412],{"class":580},[34,107498,107489],{"class":181},[34,107500,107501],{"class":36,"line":706},[34,107502,693],{"class":181},[34,107504,107505],{"class":36,"line":715},[34,107506,62],{"emptyLinePlaceholder":61},[34,107508,107509],{"class":36,"line":725},[34,107510,1113],{"class":40},[34,107512,107513,107516,107518,107520,107522,107524,107526,107528],{"class":36,"line":734},[34,107514,107515],{"class":181},"rect ",[34,107517,12895],{"class":580},[34,107519,107382],{"class":47},[34,107521,13990],{"class":181},[34,107523,11923],{"class":50},[34,107525,1798],{"class":181},[34,107527,2778],{"class":50},[34,107529,693],{"class":181},[34,107531,107532,107534,107536,107539,107541,107544],{"class":36,"line":742},[34,107533,104351],{"class":181},[34,107535,103983],{"class":47},[34,107537,107538],{"class":181},"(rect.",[34,107540,106505],{"class":47},[34,107542,107543],{"class":181},"())  ",[34,107545,107546],{"class":40},"// 50\n",[34,107548,107549,107552,107554,107556,107558],{"class":36,"line":748},[34,107550,107551],{"class":181},"rect.",[34,107553,107470],{"class":47},[34,107555,1607],{"class":181},[34,107557,8324],{"class":50},[34,107559,3372],{"class":181},[34,107561,107562,107564,107566,107568,107570,107572],{"class":36,"line":754},[34,107563,104351],{"class":181},[34,107565,103983],{"class":47},[34,107567,107538],{"class":181},[34,107569,106505],{"class":47},[34,107571,107543],{"class":181},[34,107573,107574],{"class":40},"// 200\n",[388,107576,107577],{},"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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .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":30,"searchDepth":44,"depth":44,"links":107579},[107580],{"id":36913,"depth":44,"text":36908},"Methods in Go.",{},"/go/methods",{"title":36908,"description":107581},"go/methods",[103114,103826,46870,33299],"IziGYa2gH6v0PIgXxX2Z9xLn5JymseSs4EJULBCPiUo",{"id":107589,"title":107590,"body":107591,"date":2633,"description":107674,"extension":404,"meta":107675,"navigation":61,"order":37,"path":107676,"seo":107677,"stem":107678,"subject":103114,"tags":107679,"__hash__":107680},"topics/go/overview.md","Go",{"type":8,"value":107592,"toc":107672},[107593],[309,107594,107595,107599,107604,107608,107612,107616,107620,107624,107628,107633,107637,107641,107645,107649,107653,107657,107662,107668],{},[312,107596,107597],{},[145,107598,22151],{"href":106398},[312,107600,107601],{},[145,107602,12166],{"href":107603},"/go/variables",[312,107605,107606],{},[145,107607,61423],{"href":105134},[312,107609,107610],{},[145,107611,103504],{"href":103822},[312,107613,107614],{},[145,107615,61463],{"href":107360},[312,107617,107618],{},[145,107619,18818],{"href":104924},[312,107621,107622],{},[145,107623,11769],{"href":107105},[312,107625,107626],{},[145,107627,10991],{"href":106046},[312,107629,107630],{},[145,107631,23107],{"href":107632},"/go/structs",[312,107634,107635],{},[145,107636,36908],{"href":107583},[312,107638,107639],{},[145,107640,106405],{"href":106810},[312,107642,107643],{},[145,107644,19352],{"href":105697},[312,107646,107647],{},[145,107648,106053],{"href":106326},[312,107650,107651],{},[145,107652,103830],{"href":104187},[312,107654,107655],{},[145,107656,25793],{"href":105320},[312,107658,107659],{},[145,107660,23091],{"href":107661},"/go/pointers",[312,107663,107664],{},[145,107665,107667],{"href":107666},"/go/packages-and-imports","Packages and Imports",[312,107669,107670],{},[145,107671,104194],{"href":104606},{"title":30,"searchDepth":44,"depth":44,"links":107673},[],"Essential Go syntax, data structures, and patterns for building efficient and concurrent applications.",{},"/go/overview",{"title":107590,"description":107674},"go/overview",[103114,103826,46870,33299],"OO1UHoaehqtYs9NakCHh7TbeuYywUwNc7BR74w9Oi9I",{"id":107682,"title":107667,"body":107683,"date":402,"description":107854,"extension":404,"meta":107855,"navigation":61,"order":742,"path":107666,"seo":107856,"stem":107857,"subject":103114,"tags":107858,"__hash__":107859},"topics/go/packages-and-imports.md",{"type":8,"value":107684,"toc":107851},[107685,107688,107848],[11,107686,107667],{"id":107687},"packages-and-imports",[25,107689,107691],{"className":103512,"code":107690,"language":103114,"meta":30,"style":30},"// Single import\nimport \"fmt\"\n\n// Multiple imports\nimport (\n    \"fmt\"\n    \"os\"\n    \"strings\"\n)\n\n// Aliased import\nimport (\n    f \"fmt\"\n    . \"math\"  // dot import (use without prefix)\n    _ \"image/png\"  // blank import (side effects only)\n)\n\n// Exported names (capitalized)\nfunc PublicFunction() {}   // exported\nfunc privateFunction() {}  // not exported\n",[20,107692,107693,107698,107708,107712,107717,107723,107732,107741,107749,107753,107757,107762,107768,107779,107794,107809,107813,107817,107822,107835],{"__ignoreMap":30},[34,107694,107695],{"class":36,"line":37},[34,107696,107697],{"class":40},"// Single import\n",[34,107699,107700,107702,107704,107706],{"class":36,"line":44},[34,107701,581],{"class":580},[34,107703,10326],{"class":54},[34,107705,104344],{"class":47},[34,107707,11320],{"class":54},[34,107709,107710],{"class":36,"line":58},[34,107711,62],{"emptyLinePlaceholder":61},[34,107713,107714],{"class":36,"line":65},[34,107715,107716],{"class":40},"// Multiple imports\n",[34,107718,107719,107721],{"class":36,"line":71},[34,107720,581],{"class":580},[34,107722,13975],{"class":181},[34,107724,107725,107728,107730],{"class":36,"line":77},[34,107726,107727],{"class":54},"    \"",[34,107729,104344],{"class":47},[34,107731,11320],{"class":54},[34,107733,107734,107736,107739],{"class":36,"line":82},[34,107735,107727],{"class":54},[34,107737,107738],{"class":47},"os",[34,107740,11320],{"class":54},[34,107742,107743,107745,107747],{"class":36,"line":88},[34,107744,107727],{"class":54},[34,107746,24353],{"class":47},[34,107748,11320],{"class":54},[34,107750,107751],{"class":36,"line":242},[34,107752,3372],{"class":181},[34,107754,107755],{"class":36,"line":250},[34,107756,62],{"emptyLinePlaceholder":61},[34,107758,107759],{"class":36,"line":263},[34,107760,107761],{"class":40},"// Aliased import\n",[34,107763,107764,107766],{"class":36,"line":275},[34,107765,581],{"class":580},[34,107767,13975],{"class":181},[34,107769,107770,107773,107775,107777],{"class":36,"line":700},[34,107771,107772],{"class":181},"    f ",[34,107774,10389],{"class":54},[34,107776,104344],{"class":47},[34,107778,11320],{"class":54},[34,107780,107781,107784,107786,107789,107791],{"class":36,"line":706},[34,107782,107783],{"class":181},"    . ",[34,107785,10389],{"class":54},[34,107787,107788],{"class":47},"math",[34,107790,10389],{"class":54},[34,107792,107793],{"class":40},"  // dot import (use without prefix)\n",[34,107795,107796,107799,107801,107804,107806],{"class":36,"line":715},[34,107797,107798],{"class":181},"    _ ",[34,107800,10389],{"class":54},[34,107802,107803],{"class":47},"image/png",[34,107805,10389],{"class":54},[34,107807,107808],{"class":40},"  // blank import (side effects only)\n",[34,107810,107811],{"class":36,"line":725},[34,107812,3372],{"class":181},[34,107814,107815],{"class":36,"line":734},[34,107816,62],{"emptyLinePlaceholder":61},[34,107818,107819],{"class":36,"line":742},[34,107820,107821],{"class":40},"// Exported names (capitalized)\n",[34,107823,107824,107826,107829,107832],{"class":36,"line":748},[34,107825,105159],{"class":580},[34,107827,107828],{"class":47}," PublicFunction",[34,107830,107831],{"class":181},"() {}   ",[34,107833,107834],{"class":40},"// exported\n",[34,107836,107837,107839,107842,107845],{"class":36,"line":754},[34,107838,105159],{"class":580},[34,107840,107841],{"class":47}," privateFunction",[34,107843,107844],{"class":181},"() {}  ",[34,107846,107847],{"class":40},"// not exported\n",[388,107849,107850],{},"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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .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":30,"searchDepth":44,"depth":44,"links":107852},[107853],{"id":107687,"depth":44,"text":107667},"Packages and Imports in Go.",{},{"title":107667,"description":107854},"go/packages-and-imports",[103114,103826,46870,33299],"Js5yybx4DnJwwCbjvb7m60PDlMmS1laku3tP4WPzmfs",{"id":107861,"title":23091,"body":107862,"date":402,"description":108067,"extension":404,"meta":108068,"navigation":61,"order":734,"path":107661,"seo":108069,"stem":108070,"subject":103114,"tags":108071,"__hash__":108072},"topics/go/pointers.md",{"type":8,"value":107863,"toc":108064},[107864,107866,108061],[11,107865,23091],{"id":23155},[25,107867,107869],{"className":103512,"code":107868,"language":103114,"meta":30,"style":30},"// Declare pointer\nvar p *int\n\n// Get address\nx := 42\np = &x\n\n// Dereference\nfmt.Println(*p)  // 42\n*p = 100         // x is now 100\n\n// New function\np := new(int)    // allocates zeroed int, returns pointer\n*p = 42\n\n// Pointers with functions\nfunc increment(x *int) {\n    *x++\n}\n\nval := 10\nincrement(&val)\nfmt.Println(val)  // 11\n",[20,107870,107871,107876,107885,107889,107894,107903,107914,107918,107923,107939,107952,107956,107961,107978,107988,107992,107997,108012,108021,108025,108029,108038,108050],{"__ignoreMap":30},[34,107872,107873],{"class":36,"line":37},[34,107874,107875],{"class":40},"// Declare pointer\n",[34,107877,107878,107880,107882],{"class":36,"line":44},[34,107879,34404],{"class":580},[34,107881,31872],{"class":181},[34,107883,107884],{"class":580},"*int\n",[34,107886,107887],{"class":36,"line":58},[34,107888,62],{"emptyLinePlaceholder":61},[34,107890,107891],{"class":36,"line":65},[34,107892,107893],{"class":40},"// Get address\n",[34,107895,107896,107899,107901],{"class":36,"line":71},[34,107897,107898],{"class":181},"x ",[34,107900,12895],{"class":580},[34,107902,106657],{"class":50},[34,107904,107905,107907,107909,107911],{"class":36,"line":77},[34,107906,18086],{"class":181},[34,107908,1301],{"class":580},[34,107910,11373],{"class":580},[34,107912,107913],{"class":181},"x\n",[34,107915,107916],{"class":36,"line":82},[34,107917,62],{"emptyLinePlaceholder":61},[34,107919,107920],{"class":36,"line":88},[34,107921,107922],{"class":40},"// Dereference\n",[34,107924,107925,107927,107929,107931,107933,107936],{"class":36,"line":242},[34,107926,104351],{"class":181},[34,107928,103983],{"class":47},[34,107930,1607],{"class":181},[34,107932,4289],{"class":580},[34,107934,107935],{"class":181},"p)  ",[34,107937,107938],{"class":40},"// 42\n",[34,107940,107941,107943,107945,107947,107949],{"class":36,"line":250},[34,107942,4289],{"class":580},[34,107944,18086],{"class":181},[34,107946,1301],{"class":580},[34,107948,25168],{"class":50},[34,107950,107951],{"class":40},"         // x is now 100\n",[34,107953,107954],{"class":36,"line":263},[34,107955,62],{"emptyLinePlaceholder":61},[34,107957,107958],{"class":36,"line":275},[34,107959,107960],{"class":40},"// New function\n",[34,107962,107963,107965,107967,107969,107971,107973,107975],{"class":36,"line":700},[34,107964,18086],{"class":181},[34,107966,12895],{"class":580},[34,107968,809],{"class":47},[34,107970,1607],{"class":181},[34,107972,17772],{"class":580},[34,107974,103888],{"class":181},[34,107976,107977],{"class":40},"// allocates zeroed int, returns pointer\n",[34,107979,107980,107982,107984,107986],{"class":36,"line":706},[34,107981,4289],{"class":580},[34,107983,18086],{"class":181},[34,107985,1301],{"class":580},[34,107987,106657],{"class":50},[34,107989,107990],{"class":36,"line":715},[34,107991,62],{"emptyLinePlaceholder":61},[34,107993,107994],{"class":36,"line":725},[34,107995,107996],{"class":40},"// Pointers with functions\n",[34,107998,107999,108001,108003,108005,108007,108010],{"class":36,"line":734},[34,108000,105159],{"class":580},[34,108002,60840],{"class":47},[34,108004,1607],{"class":181},[34,108006,23655],{"class":675},[34,108008,108009],{"class":580}," *int",[34,108011,2416],{"class":181},[34,108013,108014,108016,108018],{"class":36,"line":742},[34,108015,18513],{"class":580},[34,108017,23655],{"class":181},[34,108019,108020],{"class":580},"++\n",[34,108022,108023],{"class":36,"line":748},[34,108024,693],{"class":181},[34,108026,108027],{"class":36,"line":754},[34,108028,62],{"emptyLinePlaceholder":61},[34,108030,108031,108034,108036],{"class":36,"line":759},[34,108032,108033],{"class":181},"val ",[34,108035,12895],{"class":580},[34,108037,100481],{"class":50},[34,108039,108040,108043,108045,108047],{"class":36,"line":771},[34,108041,108042],{"class":47},"increment",[34,108044,1607],{"class":181},[34,108046,19502],{"class":580},[34,108048,108049],{"class":181},"val)\n",[34,108051,108052,108054,108056,108059],{"class":36,"line":794},[34,108053,104351],{"class":181},[34,108055,103983],{"class":47},[34,108057,108058],{"class":181},"(val)  ",[34,108060,60887],{"class":40},[388,108062,108063],{},"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 .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}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":30,"searchDepth":44,"depth":44,"links":108065},[108066],{"id":23155,"depth":44,"text":23091},"Pointers in Go.",{},{"title":23091,"description":108067},"go/pointers",[103114,103826,46870,33299],"d0ZdsL_a5njBZL1jEq5it3rm8S80hu6Ap9rajblHiF0",{"id":108074,"title":23107,"body":108075,"date":402,"description":108348,"extension":404,"meta":108349,"navigation":61,"order":250,"path":107632,"seo":108350,"stem":108351,"subject":103114,"tags":108352,"__hash__":108353},"topics/go/structs.md",{"type":8,"value":108076,"toc":108345},[108077,108079,108343],[11,108078,23107],{"id":24666},[25,108080,108082],{"className":103512,"code":108081,"language":103114,"meta":30,"style":30},"// Define a struct\ntype Person struct {\n    Name string\n    Age  int\n}\n\n// Create instances\np1 := Person{Name: \"Alice\", Age: 30}\np2 := Person{\"Bob\", 25}  // positional\nvar p3 Person            // zero value\n\n// Access fields\nfmt.Println(p1.Name)\np1.Age = 31\n\n// Pointer to struct\np := &Person{Name: \"Charlie\", Age: 35}\np.Name = \"Charles\"  // automatic dereferencing\n\n// Embedded struct (composition)\ntype Employee struct {\n    Person  // embedded\n    Title string\n}\n\nemp := Employee{\n    Person: Person{Name: \"Dave\", Age: 40},\n    Title:  \"Engineer\",\n}\nfmt.Println(emp.Name)  // access embedded field\n",[20,108083,108084,108089,108099,108106,108113,108117,108121,108126,108146,108168,108179,108183,108188,108197,108206,108210,108214,108234,108247,108251,108256,108267,108274,108281,108285,108289,108300,108317,108327,108331],{"__ignoreMap":30},[34,108085,108086],{"class":36,"line":37},[34,108087,108088],{"class":40},"// Define a struct\n",[34,108090,108091,108093,108095,108097],{"class":36,"line":44},[34,108092,41324],{"class":580},[34,108094,30063],{"class":47},[34,108096,18332],{"class":580},[34,108098,661],{"class":181},[34,108100,108101,108104],{"class":36,"line":58},[34,108102,108103],{"class":181},"    Name ",[34,108105,88168],{"class":580},[34,108107,108108,108111],{"class":36,"line":65},[34,108109,108110],{"class":181},"    Age  ",[34,108112,88176],{"class":580},[34,108114,108115],{"class":36,"line":71},[34,108116,693],{"class":181},[34,108118,108119],{"class":36,"line":77},[34,108120,62],{"emptyLinePlaceholder":61},[34,108122,108123],{"class":36,"line":82},[34,108124,108125],{"class":40},"// Create instances\n",[34,108127,108128,108131,108133,108135,108138,108140,108142,108144],{"class":36,"line":88},[34,108129,108130],{"class":181},"p1 ",[34,108132,12895],{"class":580},[34,108134,30063],{"class":47},[34,108136,108137],{"class":181},"{Name: ",[34,108139,21650],{"class":54},[34,108141,104363],{"class":181},[34,108143,17625],{"class":50},[34,108145,693],{"class":181},[34,108147,108148,108151,108153,108155,108157,108159,108161,108163,108165],{"class":36,"line":242},[34,108149,108150],{"class":181},"p2 ",[34,108152,12895],{"class":580},[34,108154,30063],{"class":47},[34,108156,13990],{"class":181},[34,108158,30344],{"class":54},[34,108160,1798],{"class":181},[34,108162,24546],{"class":50},[34,108164,103595],{"class":181},[34,108166,108167],{"class":40},"// positional\n",[34,108169,108170,108172,108174,108176],{"class":36,"line":250},[34,108171,34404],{"class":580},[34,108173,30333],{"class":181},[34,108175,30303],{"class":47},[34,108177,108178],{"class":40},"            // zero value\n",[34,108180,108181],{"class":36,"line":263},[34,108182,62],{"emptyLinePlaceholder":61},[34,108184,108185],{"class":36,"line":275},[34,108186,108187],{"class":40},"// Access fields\n",[34,108189,108190,108192,108194],{"class":36,"line":700},[34,108191,104351],{"class":181},[34,108193,103983],{"class":47},[34,108195,108196],{"class":181},"(p1.Name)\n",[34,108198,108199,108202,108204],{"class":36,"line":706},[34,108200,108201],{"class":181},"p1.Age ",[34,108203,1301],{"class":580},[34,108205,87417],{"class":50},[34,108207,108208],{"class":36,"line":715},[34,108209,62],{"emptyLinePlaceholder":61},[34,108211,108212],{"class":36,"line":725},[34,108213,24827],{"class":40},[34,108215,108216,108218,108220,108222,108224,108226,108228,108230,108232],{"class":36,"line":734},[34,108217,18086],{"class":181},[34,108219,12895],{"class":580},[34,108221,11373],{"class":580},[34,108223,30303],{"class":47},[34,108225,108137],{"class":181},[34,108227,33460],{"class":54},[34,108229,104363],{"class":181},[34,108231,83378],{"class":50},[34,108233,693],{"class":181},[34,108235,108236,108239,108241,108244],{"class":36,"line":742},[34,108237,108238],{"class":181},"p.Name ",[34,108240,1301],{"class":580},[34,108242,108243],{"class":54}," \"Charles\"",[34,108245,108246],{"class":40},"  // automatic dereferencing\n",[34,108248,108249],{"class":36,"line":748},[34,108250,62],{"emptyLinePlaceholder":61},[34,108252,108253],{"class":36,"line":754},[34,108254,108255],{"class":40},"// Embedded struct (composition)\n",[34,108257,108258,108260,108263,108265],{"class":36,"line":759},[34,108259,41324],{"class":580},[34,108261,108262],{"class":47}," Employee",[34,108264,18332],{"class":580},[34,108266,661],{"class":181},[34,108268,108269,108271],{"class":36,"line":771},[34,108270,30103],{"class":47},[34,108272,108273],{"class":40},"  // embedded\n",[34,108275,108276,108279],{"class":36,"line":794},[34,108277,108278],{"class":181},"    Title ",[34,108280,88168],{"class":580},[34,108282,108283],{"class":36,"line":824},[34,108284,693],{"class":181},[34,108286,108287],{"class":36,"line":830},[34,108288,62],{"emptyLinePlaceholder":61},[34,108290,108291,108294,108296,108298],{"class":36,"line":839},[34,108292,108293],{"class":181},"emp ",[34,108295,12895],{"class":580},[34,108297,108262],{"class":47},[34,108299,25296],{"class":181},[34,108301,108302,108305,108307,108309,108311,108313,108315],{"class":36,"line":854},[34,108303,108304],{"class":181},"    Person: ",[34,108306,30303],{"class":47},[34,108308,108137],{"class":181},[34,108310,84110],{"class":54},[34,108312,104363],{"class":181},[34,108314,83655],{"class":50},[34,108316,18003],{"class":181},[34,108318,108319,108322,108325],{"class":36,"line":860},[34,108320,108321],{"class":181},"    Title:  ",[34,108323,108324],{"class":54},"\"Engineer\"",[34,108326,624],{"class":181},[34,108328,108329],{"class":36,"line":865},[34,108330,693],{"class":181},[34,108332,108333,108335,108337,108340],{"class":36,"line":870},[34,108334,104351],{"class":181},[34,108336,103983],{"class":47},[34,108338,108339],{"class":181},"(emp.Name)  ",[34,108341,108342],{"class":40},"// access embedded field\n",[388,108344,34089],{},{"title":30,"searchDepth":44,"depth":44,"links":108346},[108347],{"id":24666,"depth":44,"text":23107},"Structs in Go.",{},{"title":23107,"description":108348},"go/structs",[103114,103826,46870,33299],"EiOzJp9uepEZB5Oze4JKLVBYsOsuOBZFBbtMedHA7pQ",{"id":108355,"title":12166,"body":108356,"date":402,"description":108525,"extension":404,"meta":108526,"navigation":61,"order":58,"path":107603,"seo":108527,"stem":108528,"subject":103114,"tags":108529,"__hash__":108530},"topics/go/variables.md",{"type":8,"value":108357,"toc":108522},[108358,108360,108520],[11,108359,12166],{"id":13314},[25,108361,108363],{"className":103512,"code":108362,"language":103114,"meta":30,"style":30},"// Variable declaration\nvar name string = \"Go\"\nvar age int = 10\n\n// Short declaration (type inference)\nlanguage := \"Go\"\nversion := 1.21\n\n// Multiple declarations\nvar x, y, z int = 1, 2, 3\na, b, c := \"hello\", 42, true\n\n// Constants\nconst Pi = 3.14159\nconst (\n    StatusOK    = 200\n    StatusError = 500\n)\n",[20,108364,108365,108370,108383,108395,108399,108404,108413,108423,108427,108431,108453,108470,108474,108478,108489,108495,108506,108516],{"__ignoreMap":30},[34,108366,108367],{"class":36,"line":37},[34,108368,108369],{"class":40},"// Variable declaration\n",[34,108371,108372,108374,108376,108378,108380],{"class":36,"line":44},[34,108373,34404],{"class":580},[34,108375,30212],{"class":181},[34,108377,30113],{"class":580},[34,108379,683],{"class":580},[34,108381,108382],{"class":54}," \"Go\"\n",[34,108384,108385,108387,108389,108391,108393],{"class":36,"line":58},[34,108386,34404],{"class":580},[34,108388,25065],{"class":181},[34,108390,17772],{"class":580},[34,108392,683],{"class":580},[34,108394,100481],{"class":50},[34,108396,108397],{"class":36,"line":65},[34,108398,62],{"emptyLinePlaceholder":61},[34,108400,108401],{"class":36,"line":71},[34,108402,108403],{"class":40},"// Short declaration (type inference)\n",[34,108405,108406,108409,108411],{"class":36,"line":77},[34,108407,108408],{"class":181},"language ",[34,108410,12895],{"class":580},[34,108412,108382],{"class":54},[34,108414,108415,108418,108420],{"class":36,"line":82},[34,108416,108417],{"class":181},"version ",[34,108419,12895],{"class":580},[34,108421,108422],{"class":50}," 1.21\n",[34,108424,108425],{"class":36,"line":88},[34,108426,62],{"emptyLinePlaceholder":61},[34,108428,108429],{"class":36,"line":242},[34,108430,27759],{"class":40},[34,108432,108433,108435,108438,108440,108442,108444,108446,108448,108450],{"class":36,"line":250},[34,108434,34404],{"class":580},[34,108436,108437],{"class":181}," x, y, z ",[34,108439,17772],{"class":580},[34,108441,683],{"class":580},[34,108443,3567],{"class":50},[34,108445,1798],{"class":181},[34,108447,8324],{"class":50},[34,108449,1798],{"class":181},[34,108451,108452],{"class":50},"3\n",[34,108454,108455,108458,108460,108462,108464,108466,108468],{"class":36,"line":263},[34,108456,108457],{"class":181},"a, b, c ",[34,108459,12895],{"class":580},[34,108461,13866],{"class":54},[34,108463,1798],{"class":181},[34,108465,8257],{"class":50},[34,108467,1798],{"class":181},[34,108469,515],{"class":50},[34,108471,108472],{"class":36,"line":275},[34,108473,62],{"emptyLinePlaceholder":61},[34,108475,108476],{"class":36,"line":700},[34,108477,32996],{"class":40},[34,108479,108480,108482,108485,108487],{"class":36,"line":706},[34,108481,14676],{"class":580},[34,108483,108484],{"class":50}," Pi",[34,108486,683],{"class":580},[34,108488,87362],{"class":50},[34,108490,108491,108493],{"class":36,"line":715},[34,108492,14676],{"class":580},[34,108494,13975],{"class":181},[34,108496,108497,108500,108503],{"class":36,"line":725},[34,108498,108499],{"class":50},"    StatusOK",[34,108501,108502],{"class":580},"    =",[34,108504,108505],{"class":50}," 200\n",[34,108507,108508,108511,108513],{"class":36,"line":734},[34,108509,108510],{"class":50},"    StatusError",[34,108512,683],{"class":580},[34,108514,108515],{"class":50}," 500\n",[34,108517,108518],{"class":36,"line":742},[34,108519,3372],{"class":181},[388,108521,10978],{},{"title":30,"searchDepth":44,"depth":44,"links":108523},[108524],{"id":13314,"depth":44,"text":12166},"Variables in Go.",{},{"title":12166,"description":108525},"go/variables",[103114,103826,46870,33299],"RuBuUzWdFvyYwQ3JG8BHNaT9cjH8KQG4GL1Qi2Mvv4U",{"id":108532,"title":108533,"body":108534,"date":402,"description":30,"extension":404,"meta":108543,"navigation":61,"order":37,"path":108544,"seo":108545,"stem":108546,"subject":108547,"tags":108548,"__hash__":108550},"topics/gradle/overview.md","Gradle - A Build Tool",{"type":8,"value":108535,"toc":108541},[108536],[15925,108537,108538],{},[16,108539,108540],{},"A comprehensive syntax recognition overview of Gradle aimed to aid in setup, execution, builds, and shared configurations.",{"title":30,"searchDepth":44,"depth":44,"links":108542},[],{},"/gradle/overview",{"title":108533,"description":30},"gradle/overview","gradle",[108547,108549,413],"build-system","yMYCBCuP9WNbHhXU3I6FxPsxNlGvZMbdiV8T5qGLOrA",{"id":108552,"title":108553,"body":108554,"date":402,"description":108693,"extension":404,"meta":108694,"navigation":61,"order":37,"path":108695,"seo":108696,"stem":108697,"subject":108698,"tags":108699,"__hash__":108702},"topics/grafana/overview.md","Grafana Cheat Sheet",{"type":8,"value":108555,"toc":108688},[108556,108560,108606,108610,108676,108680,108686],[11,108557,108559],{"id":108558},"installing-grafana","Installing Grafana",[25,108561,108563],{"className":28261,"code":108562,"language":10358,"meta":30,"style":30},"# Install Grafana on Ubuntu/Debian\nsudo apt update\nsudo apt install -y grafana\nsudo systemctl enable --now grafana-server\n",[20,108564,108565,108570,108578,108591],{"__ignoreMap":30},[34,108566,108567],{"class":36,"line":37},[34,108568,108569],{"class":40},"# Install Grafana on Ubuntu/Debian\n",[34,108571,108572,108574,108576],{"class":36,"line":44},[34,108573,436],{"class":47},[34,108575,439],{"class":54},[34,108577,6441],{"class":54},[34,108579,108580,108582,108584,108586,108588],{"class":36,"line":58},[34,108581,436],{"class":47},[34,108583,439],{"class":54},[34,108585,118],{"class":54},[34,108587,5843],{"class":50},[34,108589,108590],{"class":54}," grafana\n",[34,108592,108593,108595,108598,108600,108603],{"class":36,"line":65},[34,108594,436],{"class":47},[34,108596,108597],{"class":54}," systemctl",[34,108599,93273],{"class":54},[34,108601,108602],{"class":50}," --now",[34,108604,108605],{"class":54}," grafana-server\n",[11,108607,108609],{"id":108608},"managing-data-sources","Managing Data Sources",[25,108611,108615],{"className":108612,"code":108613,"language":108614,"meta":30,"style":30},"language-jsonc shiki shiki-themes github-light github-dark","// Configure a default data source (e.g., Prometheus)\n{\n  \"name\": \"Prometheus\",\n  \"type\": \"prometheus\",\n  \"url\": \"http://localhost:9090\",\n  \"access\": \"proxy\"\n}\n","jsonc",[20,108616,108617,108622,108626,108638,108650,108662,108672],{"__ignoreMap":30},[34,108618,108619],{"class":36,"line":37},[34,108620,108621],{"class":40},"// Configure a default data source (e.g., Prometheus)\n",[34,108623,108624],{"class":36,"line":44},[34,108625,25296],{"class":181},[34,108627,108628,108631,108633,108636],{"class":36,"line":58},[34,108629,108630],{"class":50},"  \"name\"",[34,108632,182],{"class":181},[34,108634,108635],{"class":54},"\"Prometheus\"",[34,108637,624],{"class":181},[34,108639,108640,108643,108645,108648],{"class":36,"line":65},[34,108641,108642],{"class":50},"  \"type\"",[34,108644,182],{"class":181},[34,108646,108647],{"class":54},"\"prometheus\"",[34,108649,624],{"class":181},[34,108651,108652,108655,108657,108660],{"class":36,"line":71},[34,108653,108654],{"class":50},"  \"url\"",[34,108656,182],{"class":181},[34,108658,108659],{"class":54},"\"http://localhost:9090\"",[34,108661,624],{"class":181},[34,108663,108664,108667,108669],{"class":36,"line":77},[34,108665,108666],{"class":50},"  \"access\"",[34,108668,182],{"class":181},[34,108670,108671],{"class":54},"\"proxy\"\n",[34,108673,108674],{"class":36,"line":82},[34,108675,693],{"class":181},[11,108677,108679],{"id":108678},"creating-dashboards-and-panels","Creating Dashboards and Panels",[25,108681,108684],{"className":108682,"code":108683,"language":780,"meta":30},[13703],"1. Navigate to Dashboards → New Dashboard.\n2. Add a new panel and customize the query.\n3. Choose visualization type (Graph, SingleStat, Table, etc.).\n4. Save your dashboard.\n",[20,108685,108683],{"__ignoreMap":30},[388,108687,7983],{},{"title":30,"searchDepth":44,"depth":44,"links":108689},[108690,108691,108692],{"id":108558,"depth":44,"text":108559},{"id":108608,"depth":44,"text":108609},{"id":108678,"depth":44,"text":108679},"Get started with creating Grafana dashboards, alerts, and data sources.",{},"/grafana/overview",{"title":108553,"description":108693},"grafana/overview","grafana",[108698,108700,14143,108701],"dashboard","alerts","SR1zj6PkKoHM8KRmAlv32N9QQd49f7Bi-X_oQIsVGng",{"id":108704,"title":108705,"body":108706,"date":402,"description":109177,"extension":404,"meta":109178,"navigation":61,"order":37,"path":109179,"seo":109180,"stem":109181,"subject":108739,"tags":109182,"__hash__":109184},"topics/grain/overview.md","Grain",{"type":8,"value":108707,"toc":109167},[108708,108710,108751,108753,108773,108775,108835,108837,108921,108923,108978,108980,109064,109066,109112,109114,109165],[11,108709,97],{"id":96},[25,108711,108713],{"className":27,"code":108712,"language":29,"meta":30,"style":30},"# Install via npm\nnpm install -g @grain/cli\n\ngrain --version\n\n# Or download binary from https://grain-lang.org/\n",[20,108714,108715,108720,108731,108735,108742,108746],{"__ignoreMap":30},[34,108716,108717],{"class":36,"line":37},[34,108718,108719],{"class":40},"# Install via npm\n",[34,108721,108722,108724,108726,108728],{"class":36,"line":44},[34,108723,8177],{"class":47},[34,108725,118],{"class":54},[34,108727,9753],{"class":50},[34,108729,108730],{"class":54}," @grain/cli\n",[34,108732,108733],{"class":36,"line":58},[34,108734,62],{"emptyLinePlaceholder":61},[34,108736,108737,108740],{"class":36,"line":65},[34,108738,108739],{"class":47},"grain",[34,108741,5013],{"class":50},[34,108743,108744],{"class":36,"line":71},[34,108745,62],{"emptyLinePlaceholder":61},[34,108747,108748],{"class":36,"line":77},[34,108749,108750],{"class":40},"# Or download binary from https://grain-lang.org/\n",[11,108752,22151],{"id":22156},[25,108754,108757],{"className":108755,"code":108756,"language":108739,"meta":30,"style":30},"language-grain shiki shiki-themes github-light github-dark","module Main\n\nprint(\"Hello, World!\")\n",[20,108758,108759,108764,108768],{"__ignoreMap":30},[34,108760,108761],{"class":36,"line":37},[34,108762,108763],{},"module Main\n",[34,108765,108766],{"class":36,"line":44},[34,108767,62],{"emptyLinePlaceholder":61},[34,108769,108770],{"class":36,"line":58},[34,108771,108772],{},"print(\"Hello, World!\")\n",[11,108774,33160],{"id":33159},[25,108776,108778],{"className":108755,"code":108777,"language":108739,"meta":30,"style":30},"module Main\n\n// Variables (let bindings are immutable)\nlet x = 42\nlet name = \"Alice\"\n\n// Mutable references\nlet mut count = 0\ncount = count + 1\n\n// String interpolation\nlet greeting = \"Hello, \" ++ name ++ \"!\"\n",[20,108779,108780,108784,108788,108793,108798,108803,108807,108812,108817,108822,108826,108830],{"__ignoreMap":30},[34,108781,108782],{"class":36,"line":37},[34,108783,108763],{},[34,108785,108786],{"class":36,"line":44},[34,108787,62],{"emptyLinePlaceholder":61},[34,108789,108790],{"class":36,"line":58},[34,108791,108792],{},"// Variables (let bindings are immutable)\n",[34,108794,108795],{"class":36,"line":65},[34,108796,108797],{},"let x = 42\n",[34,108799,108800],{"class":36,"line":71},[34,108801,108802],{},"let name = \"Alice\"\n",[34,108804,108805],{"class":36,"line":77},[34,108806,62],{"emptyLinePlaceholder":61},[34,108808,108809],{"class":36,"line":82},[34,108810,108811],{},"// Mutable references\n",[34,108813,108814],{"class":36,"line":88},[34,108815,108816],{},"let mut count = 0\n",[34,108818,108819],{"class":36,"line":242},[34,108820,108821],{},"count = count + 1\n",[34,108823,108824],{"class":36,"line":250},[34,108825,62],{"emptyLinePlaceholder":61},[34,108827,108828],{"class":36,"line":263},[34,108829,37722],{},[34,108831,108832],{"class":36,"line":275},[34,108833,108834],{},"let greeting = \"Hello, \" ++ name ++ \"!\"\n",[11,108836,102797],{"id":33298},[25,108838,108840],{"className":108755,"code":108839,"language":108739,"meta":30,"style":30},"module Main\n\n// Type annotations\nlet age: Number = 25\nlet active: Bool = true\n\n// Tuples\nlet point = (1, 2)\nlet (px, py) = point\n\n// Records\nrecord Person {\n  name: String,\n  age: Number,\n}\n\nlet alice = { name: \"Alice\", age: 30 }\n",[20,108841,108842,108846,108850,108855,108860,108865,108869,108874,108879,108884,108888,108893,108898,108903,108908,108912,108916],{"__ignoreMap":30},[34,108843,108844],{"class":36,"line":37},[34,108845,108763],{},[34,108847,108848],{"class":36,"line":44},[34,108849,62],{"emptyLinePlaceholder":61},[34,108851,108852],{"class":36,"line":58},[34,108853,108854],{},"// Type annotations\n",[34,108856,108857],{"class":36,"line":65},[34,108858,108859],{},"let age: Number = 25\n",[34,108861,108862],{"class":36,"line":71},[34,108863,108864],{},"let active: Bool = true\n",[34,108866,108867],{"class":36,"line":77},[34,108868,62],{"emptyLinePlaceholder":61},[34,108870,108871],{"class":36,"line":82},[34,108872,108873],{},"// Tuples\n",[34,108875,108876],{"class":36,"line":88},[34,108877,108878],{},"let point = (1, 2)\n",[34,108880,108881],{"class":36,"line":242},[34,108882,108883],{},"let (px, py) = point\n",[34,108885,108886],{"class":36,"line":250},[34,108887,62],{"emptyLinePlaceholder":61},[34,108889,108890],{"class":36,"line":263},[34,108891,108892],{},"// Records\n",[34,108894,108895],{"class":36,"line":275},[34,108896,108897],{},"record Person {\n",[34,108899,108900],{"class":36,"line":700},[34,108901,108902],{},"  name: String,\n",[34,108904,108905],{"class":36,"line":706},[34,108906,108907],{},"  age: Number,\n",[34,108909,108910],{"class":36,"line":715},[34,108911,693],{},[34,108913,108914],{"class":36,"line":725},[34,108915,62],{"emptyLinePlaceholder":61},[34,108917,108918],{"class":36,"line":734},[34,108919,108920],{},"let alice = { name: \"Alice\", age: 30 }\n",[11,108922,10991],{"id":10996},[25,108924,108926],{"className":108755,"code":108925,"language":108739,"meta":30,"style":30},"module Main\n\n// Function definition\nlet add = (a, b) => a + b\n\n// With type annotations\nlet multiply: (Number, Number) => Number = (a, b) => a * b\n\n// Recursion\nlet rec factorial = (n) =>\n  if (n \u003C= 1) 1 else n * factorial(n - 1)\n",[20,108927,108928,108932,108936,108940,108945,108949,108954,108959,108963,108968,108973],{"__ignoreMap":30},[34,108929,108930],{"class":36,"line":37},[34,108931,108763],{},[34,108933,108934],{"class":36,"line":44},[34,108935,62],{"emptyLinePlaceholder":61},[34,108937,108938],{"class":36,"line":58},[34,108939,21853],{},[34,108941,108942],{"class":36,"line":65},[34,108943,108944],{},"let add = (a, b) => a + b\n",[34,108946,108947],{"class":36,"line":71},[34,108948,62],{"emptyLinePlaceholder":61},[34,108950,108951],{"class":36,"line":77},[34,108952,108953],{},"// With type annotations\n",[34,108955,108956],{"class":36,"line":82},[34,108957,108958],{},"let multiply: (Number, Number) => Number = (a, b) => a * b\n",[34,108960,108961],{"class":36,"line":88},[34,108962,62],{"emptyLinePlaceholder":61},[34,108964,108965],{"class":36,"line":242},[34,108966,108967],{},"// Recursion\n",[34,108969,108970],{"class":36,"line":250},[34,108971,108972],{},"let rec factorial = (n) =>\n",[34,108974,108975],{"class":36,"line":263},[34,108976,108977],{},"  if (n \u003C= 1) 1 else n * factorial(n - 1)\n",[11,108979,61477],{"id":61476},[25,108981,108983],{"className":108755,"code":108982,"language":108739,"meta":30,"style":30},"module Main\n\n// match expression\nlet describe = (n) => match (n) {\n  0 => \"zero\",\n  1 => \"one\",\n  _ => \"many\",\n}\n\n// Option type\nlet safeDivide = (a, b) =>\n  if (b == 0) None else Some(a / b)\n\nmatch (safeDivide(10, 2)) {\n  Some(result) => print(result),\n  None => print(\"division by zero\"),\n}\n",[20,108984,108985,108989,108993,108998,109003,109008,109013,109018,109022,109026,109031,109036,109041,109045,109050,109055,109060],{"__ignoreMap":30},[34,108986,108987],{"class":36,"line":37},[34,108988,108763],{},[34,108990,108991],{"class":36,"line":44},[34,108992,62],{"emptyLinePlaceholder":61},[34,108994,108995],{"class":36,"line":58},[34,108996,108997],{},"// match expression\n",[34,108999,109000],{"class":36,"line":65},[34,109001,109002],{},"let describe = (n) => match (n) {\n",[34,109004,109005],{"class":36,"line":71},[34,109006,109007],{},"  0 => \"zero\",\n",[34,109009,109010],{"class":36,"line":77},[34,109011,109012],{},"  1 => \"one\",\n",[34,109014,109015],{"class":36,"line":82},[34,109016,109017],{},"  _ => \"many\",\n",[34,109019,109020],{"class":36,"line":88},[34,109021,693],{},[34,109023,109024],{"class":36,"line":242},[34,109025,62],{"emptyLinePlaceholder":61},[34,109027,109028],{"class":36,"line":250},[34,109029,109030],{},"// Option type\n",[34,109032,109033],{"class":36,"line":263},[34,109034,109035],{},"let safeDivide = (a, b) =>\n",[34,109037,109038],{"class":36,"line":275},[34,109039,109040],{},"  if (b == 0) None else Some(a / b)\n",[34,109042,109043],{"class":36,"line":700},[34,109044,62],{"emptyLinePlaceholder":61},[34,109046,109047],{"class":36,"line":706},[34,109048,109049],{},"match (safeDivide(10, 2)) {\n",[34,109051,109052],{"class":36,"line":715},[34,109053,109054],{},"  Some(result) => print(result),\n",[34,109056,109057],{"class":36,"line":725},[34,109058,109059],{},"  None => print(\"division by zero\"),\n",[34,109061,109062],{"class":36,"line":734},[34,109063,693],{},[11,109065,61448],{"id":80306},[25,109067,109069],{"className":108755,"code":109068,"language":108739,"meta":30,"style":30},"module Main\n\nfrom \"list\" include List\n\nlet nums = [1, 2, 3, 4, 5]\n\nlet doubled = List.map((n) => n * 2, nums)\nlet evens = List.filter((n) => n % 2 == 0, nums)\nlet sum = List.reduce((acc, n) => acc + n, 0, nums)\n",[20,109070,109071,109075,109079,109084,109088,109093,109097,109102,109107],{"__ignoreMap":30},[34,109072,109073],{"class":36,"line":37},[34,109074,108763],{},[34,109076,109077],{"class":36,"line":44},[34,109078,62],{"emptyLinePlaceholder":61},[34,109080,109081],{"class":36,"line":58},[34,109082,109083],{},"from \"list\" include List\n",[34,109085,109086],{"class":36,"line":65},[34,109087,62],{"emptyLinePlaceholder":61},[34,109089,109090],{"class":36,"line":71},[34,109091,109092],{},"let nums = [1, 2, 3, 4, 5]\n",[34,109094,109095],{"class":36,"line":77},[34,109096,62],{"emptyLinePlaceholder":61},[34,109098,109099],{"class":36,"line":82},[34,109100,109101],{},"let doubled = List.map((n) => n * 2, nums)\n",[34,109103,109104],{"class":36,"line":88},[34,109105,109106],{},"let evens = List.filter((n) => n % 2 == 0, nums)\n",[34,109108,109109],{"class":36,"line":242},[34,109110,109111],{},"let sum = List.reduce((acc, n) => acc + n, 0, nums)\n",[11,109113,88402],{"id":88401},[25,109115,109117],{"className":108755,"code":109116,"language":108739,"meta":30,"style":30},"// utils.gr\nmodule Utils\n\nprovide let greet = (name) => \"Hello, \" ++ name\n\n// main.gr\nmodule Main\nfrom \"./utils\" include Utils\n\nprint(Utils.greet(\"Grain\"))\n",[20,109118,109119,109124,109129,109133,109138,109142,109147,109151,109156,109160],{"__ignoreMap":30},[34,109120,109121],{"class":36,"line":37},[34,109122,109123],{},"// utils.gr\n",[34,109125,109126],{"class":36,"line":44},[34,109127,109128],{},"module Utils\n",[34,109130,109131],{"class":36,"line":58},[34,109132,62],{"emptyLinePlaceholder":61},[34,109134,109135],{"class":36,"line":65},[34,109136,109137],{},"provide let greet = (name) => \"Hello, \" ++ name\n",[34,109139,109140],{"class":36,"line":71},[34,109141,62],{"emptyLinePlaceholder":61},[34,109143,109144],{"class":36,"line":77},[34,109145,109146],{},"// main.gr\n",[34,109148,109149],{"class":36,"line":82},[34,109150,108763],{},[34,109152,109153],{"class":36,"line":88},[34,109154,109155],{},"from \"./utils\" include Utils\n",[34,109157,109158],{"class":36,"line":242},[34,109159,62],{"emptyLinePlaceholder":61},[34,109161,109162],{"class":36,"line":250},[34,109163,109164],{},"print(Utils.greet(\"Grain\"))\n",[388,109166,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":109168},[109169,109170,109171,109172,109173,109174,109175,109176],{"id":96,"depth":44,"text":97},{"id":22156,"depth":44,"text":22151},{"id":33159,"depth":44,"text":33160},{"id":33298,"depth":44,"text":102797},{"id":10996,"depth":44,"text":10991},{"id":61476,"depth":44,"text":61477},{"id":80306,"depth":44,"text":61448},{"id":88401,"depth":44,"text":88402},"A modern, strongly-typed functional language that compiles to WebAssembly.",{},"/grain/overview",{"title":108705,"description":109177},"grain/overview",[108739,8451,8452,61662,109183],"typed","B2wq5SaJaXaQoDSwgOOYTz9B8sTyyvMl163ZgEFGpZ8",{"id":109186,"title":109187,"body":109188,"date":402,"description":109524,"extension":404,"meta":109525,"navigation":61,"order":37,"path":109526,"seo":109527,"stem":109528,"subject":109199,"tags":109529,"__hash__":109532},"topics/graphql/overview.md","GraphQL Overview",{"type":8,"value":109189,"toc":109515},[109190,109192,109195,109239,109242,109246,109249,109300,109304,109307,109345,109349,109352,109384,109388,109391,109422,109426,109429,109470,109474,109477,109512],[11,109191,14],{"id":13},[16,109193,109194],{},"GraphQL is a query language for APIs, offering a flexible alternative to REST. It uses a strongly-typed schema to define data shapes and relationships, enabling precise data queries.",[25,109196,109200],{"className":109197,"code":109198,"language":109199,"meta":30,"style":30},"language-graphql shiki shiki-themes github-light github-dark","query getBook($id: ID!) {\n  book(id: $id) {\n    title\n    author {\n      name\n    }\n  }\n}\n","graphql",[20,109201,109202,109207,109212,109217,109222,109227,109231,109235],{"__ignoreMap":30},[34,109203,109204],{"class":36,"line":37},[34,109205,109206],{},"query getBook($id: ID!) {\n",[34,109208,109209],{"class":36,"line":44},[34,109210,109211],{},"  book(id: $id) {\n",[34,109213,109214],{"class":36,"line":58},[34,109215,109216],{},"    title\n",[34,109218,109219],{"class":36,"line":65},[34,109220,109221],{},"    author {\n",[34,109223,109224],{"class":36,"line":71},[34,109225,109226],{},"      name\n",[34,109228,109229],{"class":36,"line":77},[34,109230,3229],{},[34,109232,109233],{"class":36,"line":82},[34,109234,857],{},[34,109236,109237],{"class":36,"line":88},[34,109238,693],{},[16,109240,109241],{},"This request fetches the title of a book and its author's name.",[11,109243,109245],{"id":109244},"schema-and-types","Schema and Types",[16,109247,109248],{},"The schema defines the data structure. Types include scalar, object, enum, input, and union.",[25,109250,109252],{"className":109197,"code":109251,"language":109199,"meta":30,"style":30},"type Book {\n  id: ID!\n  title: String!\n  author: Author!\n}\n\ntype Author {\n  id: ID!\n  name: String!\n}\n",[20,109253,109254,109259,109264,109269,109274,109278,109282,109287,109291,109296],{"__ignoreMap":30},[34,109255,109256],{"class":36,"line":37},[34,109257,109258],{},"type Book {\n",[34,109260,109261],{"class":36,"line":44},[34,109262,109263],{},"  id: ID!\n",[34,109265,109266],{"class":36,"line":58},[34,109267,109268],{},"  title: String!\n",[34,109270,109271],{"class":36,"line":65},[34,109272,109273],{},"  author: Author!\n",[34,109275,109276],{"class":36,"line":71},[34,109277,693],{},[34,109279,109280],{"class":36,"line":77},[34,109281,62],{"emptyLinePlaceholder":61},[34,109283,109284],{"class":36,"line":82},[34,109285,109286],{},"type Author {\n",[34,109288,109289],{"class":36,"line":88},[34,109290,109263],{},[34,109292,109293],{"class":36,"line":242},[34,109294,109295],{},"  name: String!\n",[34,109297,109298],{"class":36,"line":250},[34,109299,693],{},[11,109301,109303],{"id":109302},"queries","Queries",[16,109305,109306],{},"Queries retrieve data.",[25,109308,109310],{"className":109197,"code":109309,"language":109199,"meta":30,"style":30},"{\n  allBooks {\n    title\n    author {\n      name\n    }\n  }\n}\n",[20,109311,109312,109316,109321,109325,109329,109333,109337,109341],{"__ignoreMap":30},[34,109313,109314],{"class":36,"line":37},[34,109315,25296],{},[34,109317,109318],{"class":36,"line":44},[34,109319,109320],{},"  allBooks {\n",[34,109322,109323],{"class":36,"line":58},[34,109324,109216],{},[34,109326,109327],{"class":36,"line":65},[34,109328,109221],{},[34,109330,109331],{"class":36,"line":71},[34,109332,109226],{},[34,109334,109335],{"class":36,"line":77},[34,109336,3229],{},[34,109338,109339],{"class":36,"line":82},[34,109340,857],{},[34,109342,109343],{"class":36,"line":88},[34,109344,693],{},[11,109346,109348],{"id":109347},"mutations","Mutations",[16,109350,109351],{},"Mutations modify data, such as creating or deleting records.",[25,109353,109355],{"className":109197,"code":109354,"language":109199,"meta":30,"style":30},"mutation addBook($title: String!, $author: ID!) {\n  addBook(title: $title, authorId: $author) {\n    id\n    title\n  }\n}\n",[20,109356,109357,109362,109367,109372,109376,109380],{"__ignoreMap":30},[34,109358,109359],{"class":36,"line":37},[34,109360,109361],{},"mutation addBook($title: String!, $author: ID!) {\n",[34,109363,109364],{"class":36,"line":44},[34,109365,109366],{},"  addBook(title: $title, authorId: $author) {\n",[34,109368,109369],{"class":36,"line":58},[34,109370,109371],{},"    id\n",[34,109373,109374],{"class":36,"line":65},[34,109375,109216],{},[34,109377,109378],{"class":36,"line":71},[34,109379,857],{},[34,109381,109382],{"class":36,"line":77},[34,109383,693],{},[11,109385,109387],{"id":109386},"subscriptions","Subscriptions",[16,109389,109390],{},"Subscriptions enable real-time updates via websockets.",[25,109392,109394],{"className":109197,"code":109393,"language":109199,"meta":30,"style":30},"subscription {\n  bookAdded {\n    id\n    title\n  }\n}\n",[20,109395,109396,109401,109406,109410,109414,109418],{"__ignoreMap":30},[34,109397,109398],{"class":36,"line":37},[34,109399,109400],{},"subscription {\n",[34,109402,109403],{"class":36,"line":44},[34,109404,109405],{},"  bookAdded {\n",[34,109407,109408],{"class":36,"line":58},[34,109409,109371],{},[34,109411,109412],{"class":36,"line":65},[34,109413,109216],{},[34,109415,109416],{"class":36,"line":71},[34,109417,857],{},[34,109419,109420],{"class":36,"line":77},[34,109421,693],{},[11,109423,109425],{"id":109424},"validation-and-execution","Validation and Execution",[16,109427,109428],{},"GraphQL validates queries against the schema and executes them via resolvers that fetch data:",[25,109430,109432],{"className":13845,"code":109431,"language":8606,"meta":30,"style":30},"const resolvers = {\n  Query: {\n    allBooks: () => books,\n  },\n};\n",[20,109433,109434,109445,109450,109462,109466],{"__ignoreMap":30},[34,109435,109436,109438,109441,109443],{"class":36,"line":37},[34,109437,14676],{"class":580},[34,109439,109440],{"class":50}," resolvers",[34,109442,683],{"class":580},[34,109444,661],{"class":181},[34,109446,109447],{"class":36,"line":44},[34,109448,109449],{"class":181},"  Query: {\n",[34,109451,109452,109455,109457,109459],{"class":36,"line":58},[34,109453,109454],{"class":47},"    allBooks",[34,109456,3358],{"class":181},[34,109458,3361],{"class":580},[34,109460,109461],{"class":181}," books,\n",[34,109463,109464],{"class":36,"line":65},[34,109465,3400],{"class":181},[34,109467,109468],{"class":36,"line":71},[34,109469,17632],{"class":181},[11,109471,109473],{"id":109472},"introspection","Introspection",[16,109475,109476],{},"Introspection allows exploring the schema dynamically:",[25,109478,109480],{"className":109197,"code":109479,"language":109199,"meta":30,"style":30},"{\n  __schema {\n    types {\n      name\n    }\n  }\n}\n",[20,109481,109482,109486,109491,109496,109500,109504,109508],{"__ignoreMap":30},[34,109483,109484],{"class":36,"line":37},[34,109485,25296],{},[34,109487,109488],{"class":36,"line":44},[34,109489,109490],{},"  __schema {\n",[34,109492,109493],{"class":36,"line":58},[34,109494,109495],{},"    types {\n",[34,109497,109498],{"class":36,"line":65},[34,109499,109226],{},[34,109501,109502],{"class":36,"line":71},[34,109503,3229],{},[34,109505,109506],{"class":36,"line":77},[34,109507,857],{},[34,109509,109510],{"class":36,"line":82},[34,109511,693],{},[388,109513,109514],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}",{"title":30,"searchDepth":44,"depth":44,"links":109516},[109517,109518,109519,109520,109521,109522,109523],{"id":13,"depth":44,"text":14},{"id":109244,"depth":44,"text":109245},{"id":109302,"depth":44,"text":109303},{"id":109347,"depth":44,"text":109348},{"id":109386,"depth":44,"text":109387},{"id":109424,"depth":44,"text":109425},{"id":109472,"depth":44,"text":109473},"Key GraphQL concepts, syntax, and patterns for querying APIs efficiently and flexibly.",{},"/graphql/overview",{"title":109187,"description":109524},"graphql/overview",[109199,109530,109302,109347,109386,109531,109472],"apis","schema","dW2VuyiEsVralqKd1E7lfCVUMoXrrPLHpDPRCfD21ik",{"id":109534,"title":109535,"body":109536,"date":402,"description":109596,"extension":404,"meta":109597,"navigation":61,"order":700,"path":109598,"seo":109599,"stem":109600,"subject":11489,"tags":109601,"__hash__":109603},"topics/grep/alternatives.md","Alternatives",{"type":8,"value":109537,"toc":109593},[109538,109541,109591],[11,109539,109535],{"id":109540},"alternatives",[25,109542,109544],{"className":27,"code":109543,"language":29,"meta":30,"style":30},"# ack - Better for code searching\nack \"pattern\"\n\n# ag (The Silver Searcher) - Faster\nag \"pattern\"\n\n# ripgrep (rg) - Fastest\nrg \"pattern\"\n",[20,109545,109546,109551,109559,109563,109568,109575,109579,109584],{"__ignoreMap":30},[34,109547,109548],{"class":36,"line":37},[34,109549,109550],{"class":40},"# ack - Better for code searching\n",[34,109552,109553,109556],{"class":36,"line":44},[34,109554,109555],{"class":47},"ack",[34,109557,109558],{"class":54}," \"pattern\"\n",[34,109560,109561],{"class":36,"line":58},[34,109562,62],{"emptyLinePlaceholder":61},[34,109564,109565],{"class":36,"line":65},[34,109566,109567],{"class":40},"# ag (The Silver Searcher) - Faster\n",[34,109569,109570,109573],{"class":36,"line":71},[34,109571,109572],{"class":47},"ag",[34,109574,109558],{"class":54},[34,109576,109577],{"class":36,"line":77},[34,109578,62],{"emptyLinePlaceholder":61},[34,109580,109581],{"class":36,"line":82},[34,109582,109583],{"class":40},"# ripgrep (rg) - Fastest\n",[34,109585,109586,109589],{"class":36,"line":88},[34,109587,109588],{"class":47},"rg",[34,109590,109558],{"class":54},[388,109592,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":109594},[109595],{"id":109540,"depth":44,"text":109535},"Alternatives in Grep.",{},"/grep/alternatives",{"title":109535,"description":109596},"grep/alternatives",[11489,5588,89861,109602,557],"regex","jjQJWcSZeOaUqO9ZUMRfwcH9udjSPZ8hYxy7NNIMVUg",{"id":109605,"title":89702,"body":109606,"date":402,"description":109733,"extension":404,"meta":109734,"navigation":61,"order":44,"path":109735,"seo":109736,"stem":109737,"subject":11489,"tags":109738,"__hash__":109739},"topics/grep/basic-usage.md",{"type":8,"value":109607,"toc":109730},[109608,109610,109728],[11,109609,89702],{"id":89701},[25,109611,109613],{"className":27,"code":109612,"language":29,"meta":30,"style":30},"# Search for pattern in file\ngrep \"pattern\" file.txt\n\n# Search in multiple files\ngrep \"pattern\" file1.txt file2.txt\ngrep \"pattern\" *.txt\n\n# Search recursively in directory\ngrep -r \"pattern\" /path/to/dir\ngrep -R \"pattern\" .  # Include symlinks\n\n# Search from stdin (pipe)\ncat file.txt | grep \"pattern\"\necho \"hello world\" | grep \"world\"\n",[20,109614,109615,109620,109628,109632,109637,109649,109660,109664,109669,109680,109693,109697,109702,109714],{"__ignoreMap":30},[34,109616,109617],{"class":36,"line":37},[34,109618,109619],{"class":40},"# Search for pattern in file\n",[34,109621,109622,109624,109626],{"class":36,"line":44},[34,109623,11489],{"class":47},[34,109625,11492],{"class":54},[34,109627,12140],{"class":54},[34,109629,109630],{"class":36,"line":58},[34,109631,62],{"emptyLinePlaceholder":61},[34,109633,109634],{"class":36,"line":65},[34,109635,109636],{"class":40},"# Search in multiple files\n",[34,109638,109639,109641,109643,109646],{"class":36,"line":71},[34,109640,11489],{"class":47},[34,109642,11492],{"class":54},[34,109644,109645],{"class":54}," file1.txt",[34,109647,109648],{"class":54}," file2.txt\n",[34,109650,109651,109653,109655,109657],{"class":36,"line":77},[34,109652,11489],{"class":47},[34,109654,11492],{"class":54},[34,109656,18083],{"class":50},[34,109658,109659],{"class":54},".txt\n",[34,109661,109662],{"class":36,"line":82},[34,109663,62],{"emptyLinePlaceholder":61},[34,109665,109666],{"class":36,"line":88},[34,109667,109668],{"class":40},"# Search recursively in directory\n",[34,109670,109671,109673,109675,109677],{"class":36,"line":242},[34,109672,11489],{"class":47},[34,109674,12112],{"class":50},[34,109676,11492],{"class":54},[34,109678,109679],{"class":54}," /path/to/dir\n",[34,109681,109682,109684,109686,109688,109690],{"class":36,"line":250},[34,109683,11489],{"class":47},[34,109685,97196],{"class":50},[34,109687,11492],{"class":54},[34,109689,100566],{"class":54},[34,109691,109692],{"class":40},"  # Include symlinks\n",[34,109694,109695],{"class":36,"line":263},[34,109696,62],{"emptyLinePlaceholder":61},[34,109698,109699],{"class":36,"line":275},[34,109700,109701],{"class":40},"# Search from stdin (pipe)\n",[34,109703,109704,109706,109708,109710,109712],{"class":36,"line":700},[34,109705,11449],{"class":47},[34,109707,8832],{"class":54},[34,109709,7197],{"class":580},[34,109711,11425],{"class":47},[34,109713,109558],{"class":54},[34,109715,109716,109718,109721,109723,109725],{"class":36,"line":706},[34,109717,10120],{"class":50},[34,109719,109720],{"class":54}," \"hello world\"",[34,109722,7197],{"class":580},[34,109724,11425],{"class":47},[34,109726,109727],{"class":54}," \"world\"\n",[388,109729,81522],{},{"title":30,"searchDepth":44,"depth":44,"links":109731},[109732],{"id":89701,"depth":44,"text":89702},"Basic Usage in Grep.",{},"/grep/basic-usage",{"title":89702,"description":109733},"grep/basic-usage",[11489,5588,89861,109602,557],"VIBaAIVexmkPM4cG-ZxAZ00m0EtKVCI495QqpSj0vzA",{"id":109741,"title":109742,"body":109743,"date":402,"description":109814,"extension":404,"meta":109815,"navigation":61,"order":242,"path":109816,"seo":109817,"stem":109818,"subject":11489,"tags":109819,"__hash__":109820},"topics/grep/binary-files.md","Binary Files",{"type":8,"value":109744,"toc":109811},[109745,109748,109809],[11,109746,109742],{"id":109747},"binary-files",[25,109749,109751],{"className":27,"code":109750,"language":29,"meta":30,"style":30},"# Treat binary as text\ngrep -a \"pattern\" binary_file\n\n# Skip binary files\ngrep -I \"pattern\" *\n\n# Show binary file matches\ngrep --binary-files=text \"pattern\" file\n",[20,109752,109753,109758,109769,109773,109778,109789,109793,109798],{"__ignoreMap":30},[34,109754,109755],{"class":36,"line":37},[34,109756,109757],{"class":40},"# Treat binary as text\n",[34,109759,109760,109762,109764,109766],{"class":36,"line":44},[34,109761,11489],{"class":47},[34,109763,5059],{"class":50},[34,109765,11492],{"class":54},[34,109767,109768],{"class":54}," binary_file\n",[34,109770,109771],{"class":36,"line":58},[34,109772,62],{"emptyLinePlaceholder":61},[34,109774,109775],{"class":36,"line":65},[34,109776,109777],{"class":40},"# Skip binary files\n",[34,109779,109780,109782,109784,109786],{"class":36,"line":71},[34,109781,11489],{"class":47},[34,109783,43289],{"class":50},[34,109785,11492],{"class":54},[34,109787,109788],{"class":50}," *\n",[34,109790,109791],{"class":36,"line":77},[34,109792,62],{"emptyLinePlaceholder":61},[34,109794,109795],{"class":36,"line":82},[34,109796,109797],{"class":40},"# Show binary file matches\n",[34,109799,109800,109802,109805,109807],{"class":36,"line":88},[34,109801,11489],{"class":47},[34,109803,109804],{"class":50}," --binary-files=text",[34,109806,11492],{"class":54},[34,109808,13204],{"class":54},[388,109810,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":109812},[109813],{"id":109747,"depth":44,"text":109742},"Binary Files in Grep.",{},"/grep/binary-files",{"title":109742,"description":109814},"grep/binary-files",[11489,5588,89861,109602,557],"ynbIf78H6bySesapyOzaMGT64ggx1a_Xmd8TKANL1sE",{"id":109822,"title":334,"body":109823,"date":402,"description":109988,"extension":404,"meta":109989,"navigation":61,"order":58,"path":109990,"seo":109991,"stem":109992,"subject":11489,"tags":109993,"__hash__":109994},"topics/grep/common-options.md",{"type":8,"value":109824,"toc":109985},[109825,109827,109983],[11,109826,334],{"id":333},[25,109828,109830],{"className":27,"code":109829,"language":29,"meta":30,"style":30},"# Case-insensitive search\ngrep -i \"pattern\" file.txt\n\n# Show line numbers\ngrep -n \"pattern\" file.txt\n\n# Count matching lines\ngrep -c \"pattern\" file.txt\n\n# Show only matching part\ngrep -o \"pattern\" file.txt\n\n# Invert match (non-matching lines)\ngrep -v \"pattern\" file.txt\n\n# Whole word match\ngrep -w \"word\" file.txt\n\n# Show filenames only\ngrep -l \"pattern\" *.txt   # Files with matches\ngrep -L \"pattern\" *.txt   # Files without matches\n",[20,109831,109832,109837,109847,109851,109856,109866,109870,109875,109885,109889,109894,109904,109908,109913,109923,109927,109932,109943,109947,109952,109968],{"__ignoreMap":30},[34,109833,109834],{"class":36,"line":37},[34,109835,109836],{"class":40},"# Case-insensitive search\n",[34,109838,109839,109841,109843,109845],{"class":36,"line":44},[34,109840,11489],{"class":47},[34,109842,13065],{"class":50},[34,109844,11492],{"class":54},[34,109846,12140],{"class":54},[34,109848,109849],{"class":36,"line":58},[34,109850,62],{"emptyLinePlaceholder":61},[34,109852,109853],{"class":36,"line":65},[34,109854,109855],{"class":40},"# Show line numbers\n",[34,109857,109858,109860,109862,109864],{"class":36,"line":71},[34,109859,11489],{"class":47},[34,109861,7093],{"class":50},[34,109863,11492],{"class":54},[34,109865,12140],{"class":54},[34,109867,109868],{"class":36,"line":77},[34,109869,62],{"emptyLinePlaceholder":61},[34,109871,109872],{"class":36,"line":82},[34,109873,109874],{"class":40},"# Count matching lines\n",[34,109876,109877,109879,109881,109883],{"class":36,"line":88},[34,109878,11489],{"class":47},[34,109880,15867],{"class":50},[34,109882,11492],{"class":54},[34,109884,12140],{"class":54},[34,109886,109887],{"class":36,"line":242},[34,109888,62],{"emptyLinePlaceholder":61},[34,109890,109891],{"class":36,"line":250},[34,109892,109893],{"class":40},"# Show only matching part\n",[34,109895,109896,109898,109900,109902],{"class":36,"line":263},[34,109897,11489],{"class":47},[34,109899,8654],{"class":50},[34,109901,11492],{"class":54},[34,109903,12140],{"class":54},[34,109905,109906],{"class":36,"line":275},[34,109907,62],{"emptyLinePlaceholder":61},[34,109909,109910],{"class":36,"line":700},[34,109911,109912],{"class":40},"# Invert match (non-matching lines)\n",[34,109914,109915,109917,109919,109921],{"class":36,"line":706},[34,109916,11489],{"class":47},[34,109918,12530],{"class":50},[34,109920,11492],{"class":54},[34,109922,12140],{"class":54},[34,109924,109925],{"class":36,"line":715},[34,109926,62],{"emptyLinePlaceholder":61},[34,109928,109929],{"class":36,"line":725},[34,109930,109931],{"class":40},"# Whole word match\n",[34,109933,109934,109936,109938,109941],{"class":36,"line":734},[34,109935,11489],{"class":47},[34,109937,44733],{"class":50},[34,109939,109940],{"class":54}," \"word\"",[34,109942,12140],{"class":54},[34,109944,109945],{"class":36,"line":742},[34,109946,62],{"emptyLinePlaceholder":61},[34,109948,109949],{"class":36,"line":748},[34,109950,109951],{"class":40},"# Show filenames only\n",[34,109953,109954,109956,109958,109960,109962,109965],{"class":36,"line":754},[34,109955,11489],{"class":47},[34,109957,13169],{"class":50},[34,109959,11492],{"class":54},[34,109961,18083],{"class":50},[34,109963,109964],{"class":54},".txt",[34,109966,109967],{"class":40},"   # Files with matches\n",[34,109969,109970,109972,109974,109976,109978,109980],{"class":36,"line":759},[34,109971,11489],{"class":47},[34,109973,43254],{"class":50},[34,109975,11492],{"class":54},[34,109977,18083],{"class":50},[34,109979,109964],{"class":54},[34,109981,109982],{"class":40},"   # Files without matches\n",[388,109984,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":109986},[109987],{"id":333,"depth":44,"text":334},"Common Options in Grep.",{},"/grep/common-options",{"title":334,"description":109988},"grep/common-options",[11489,5588,89861,109602,557],"i6w__65-ei5NWrqV6ly1feIMY-ac9-MzFGXCwbiSB3c",{"id":109996,"title":109997,"body":109998,"date":402,"description":110100,"extension":404,"meta":110101,"navigation":61,"order":65,"path":110102,"seo":110103,"stem":110104,"subject":11489,"tags":110105,"__hash__":110106},"topics/grep/context-options.md","Context Options",{"type":8,"value":109999,"toc":110097},[110000,110003,110095],[11,110001,109997],{"id":110002},"context-options",[25,110004,110006],{"className":27,"code":110005,"language":29,"meta":30,"style":30},"# Show lines before match\ngrep -B 3 \"pattern\" file.txt\n\n# Show lines after match\ngrep -A 3 \"pattern\" file.txt\n\n# Show lines before and after (context)\ngrep -C 3 \"pattern\" file.txt\n\n# Separate matches with delimiter\ngrep --group-separator=\"---\" -C 2 \"pattern\" file.txt\n",[20,110007,110008,110013,110026,110030,110035,110047,110051,110056,110068,110072,110077],{"__ignoreMap":30},[34,110009,110010],{"class":36,"line":37},[34,110011,110012],{"class":40},"# Show lines before match\n",[34,110014,110015,110017,110020,110022,110024],{"class":36,"line":44},[34,110016,11489],{"class":47},[34,110018,110019],{"class":50}," -B",[34,110021,11147],{"class":50},[34,110023,11492],{"class":54},[34,110025,12140],{"class":54},[34,110027,110028],{"class":36,"line":58},[34,110029,62],{"emptyLinePlaceholder":61},[34,110031,110032],{"class":36,"line":65},[34,110033,110034],{"class":40},"# Show lines after match\n",[34,110036,110037,110039,110041,110043,110045],{"class":36,"line":71},[34,110038,11489],{"class":47},[34,110040,10202],{"class":50},[34,110042,11147],{"class":50},[34,110044,11492],{"class":54},[34,110046,12140],{"class":54},[34,110048,110049],{"class":36,"line":77},[34,110050,62],{"emptyLinePlaceholder":61},[34,110052,110053],{"class":36,"line":82},[34,110054,110055],{"class":40},"# Show lines before and after (context)\n",[34,110057,110058,110060,110062,110064,110066],{"class":36,"line":88},[34,110059,11489],{"class":47},[34,110061,43864],{"class":50},[34,110063,11147],{"class":50},[34,110065,11492],{"class":54},[34,110067,12140],{"class":54},[34,110069,110070],{"class":36,"line":242},[34,110071,62],{"emptyLinePlaceholder":61},[34,110073,110074],{"class":36,"line":250},[34,110075,110076],{"class":40},"# Separate matches with delimiter\n",[34,110078,110079,110081,110084,110087,110089,110091,110093],{"class":36,"line":263},[34,110080,11489],{"class":47},[34,110082,110083],{"class":50}," --group-separator=",[34,110085,110086],{"class":54},"\"---\"",[34,110088,43864],{"class":50},[34,110090,4292],{"class":50},[34,110092,11492],{"class":54},[34,110094,12140],{"class":54},[388,110096,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":110098},[110099],{"id":110002,"depth":44,"text":109997},"Context Options in Grep.",{},"/grep/context-options",{"title":109997,"description":110100},"grep/context-options",[11489,5588,89861,109602,557],"_ZHzEjaNrNmcxlG2CHw0IyvIrw8p6XPnOXXj2PmVpyo",{"id":110108,"title":110109,"body":110110,"date":402,"description":110192,"extension":404,"meta":110193,"navigation":61,"order":275,"path":110194,"seo":110195,"stem":110196,"subject":11489,"tags":110197,"__hash__":110198},"topics/grep/exit-codes.md","Exit Codes",{"type":8,"value":110111,"toc":110189},[110112,110115,110187],[11,110113,110109],{"id":110114},"exit-codes",[25,110116,110118],{"className":27,"code":110117,"language":29,"meta":30,"style":30},"# Exit codes\n# 0 - Match found\n# 1 - No match found\n# 2 - Error occurred\n\n# Use in scripts\nif grep -q \"pattern\" file.txt; then\n  echo \"Pattern found\"\nelse\n  echo \"Pattern not found\"\nfi\n",[20,110119,110120,110125,110130,110135,110140,110144,110149,110165,110172,110176,110183],{"__ignoreMap":30},[34,110121,110122],{"class":36,"line":37},[34,110123,110124],{"class":40},"# Exit codes\n",[34,110126,110127],{"class":36,"line":44},[34,110128,110129],{"class":40},"# 0 - Match found\n",[34,110131,110132],{"class":36,"line":58},[34,110133,110134],{"class":40},"# 1 - No match found\n",[34,110136,110137],{"class":36,"line":65},[34,110138,110139],{"class":40},"# 2 - Error occurred\n",[34,110141,110142],{"class":36,"line":71},[34,110143,62],{"emptyLinePlaceholder":61},[34,110145,110146],{"class":36,"line":77},[34,110147,110148],{"class":40},"# Use in scripts\n",[34,110150,110151,110153,110155,110157,110159,110161,110163],{"class":36,"line":82},[34,110152,10383],{"class":580},[34,110154,11425],{"class":47},[34,110156,55646],{"class":50},[34,110158,11492],{"class":54},[34,110160,8832],{"class":54},[34,110162,10268],{"class":181},[34,110164,10405],{"class":580},[34,110166,110167,110169],{"class":36,"line":88},[34,110168,10276],{"class":50},[34,110170,110171],{"class":54}," \"Pattern found\"\n",[34,110173,110174],{"class":36,"line":242},[34,110175,10446],{"class":580},[34,110177,110178,110180],{"class":36,"line":250},[34,110179,10276],{"class":50},[34,110181,110182],{"class":54}," \"Pattern not found\"\n",[34,110184,110185],{"class":36,"line":263},[34,110186,10458],{"class":580},[388,110188,90134],{},{"title":30,"searchDepth":44,"depth":44,"links":110190},[110191],{"id":110114,"depth":44,"text":110109},"Exit Codes in Grep.",{},"/grep/exit-codes",{"title":110109,"description":110192},"grep/exit-codes",[11489,5588,89861,109602,557],"F8KK2i7Kup8hCdRSTIPR_GBXAZgWLaBUhV-Y9Kljafw",{"id":110200,"title":110201,"body":110202,"date":402,"description":110302,"extension":404,"meta":110303,"navigation":61,"order":77,"path":110304,"seo":110305,"stem":110306,"subject":11489,"tags":110307,"__hash__":110308},"topics/grep/multiple-patterns.md","Multiple Patterns",{"type":8,"value":110203,"toc":110299},[110204,110207,110297],[11,110205,110201],{"id":110206},"multiple-patterns",[25,110208,110210],{"className":27,"code":110209,"language":29,"meta":30,"style":30},"# Match any of multiple patterns\ngrep -e \"pattern1\" -e \"pattern2\" file.txt\n\n# Patterns from file\ngrep -f patterns.txt file.txt\n\n# Using extended regex OR\ngrep -E \"pattern1|pattern2\" file.txt\n\n# Match all patterns (AND logic)\ngrep \"pattern1\" file.txt | grep \"pattern2\"\n",[20,110211,110212,110217,110233,110237,110242,110253,110257,110262,110273,110277,110282],{"__ignoreMap":30},[34,110213,110214],{"class":36,"line":37},[34,110215,110216],{"class":40},"# Match any of multiple patterns\n",[34,110218,110219,110221,110223,110226,110228,110231],{"class":36,"line":44},[34,110220,11489],{"class":47},[34,110222,11292],{"class":50},[34,110224,110225],{"class":54}," \"pattern1\"",[34,110227,11292],{"class":50},[34,110229,110230],{"class":54}," \"pattern2\"",[34,110232,12140],{"class":54},[34,110234,110235],{"class":36,"line":58},[34,110236,62],{"emptyLinePlaceholder":61},[34,110238,110239],{"class":36,"line":65},[34,110240,110241],{"class":40},"# Patterns from file\n",[34,110243,110244,110246,110248,110251],{"class":36,"line":71},[34,110245,11489],{"class":47},[34,110247,6001],{"class":50},[34,110249,110250],{"class":54}," patterns.txt",[34,110252,12140],{"class":54},[34,110254,110255],{"class":36,"line":77},[34,110256,62],{"emptyLinePlaceholder":61},[34,110258,110259],{"class":36,"line":82},[34,110260,110261],{"class":40},"# Using extended regex OR\n",[34,110263,110264,110266,110268,110271],{"class":36,"line":88},[34,110265,11489],{"class":47},[34,110267,13771],{"class":50},[34,110269,110270],{"class":54}," \"pattern1|pattern2\"",[34,110272,12140],{"class":54},[34,110274,110275],{"class":36,"line":242},[34,110276,62],{"emptyLinePlaceholder":61},[34,110278,110279],{"class":36,"line":250},[34,110280,110281],{"class":40},"# Match all patterns (AND logic)\n",[34,110283,110284,110286,110288,110290,110292,110294],{"class":36,"line":263},[34,110285,11489],{"class":47},[34,110287,110225],{"class":54},[34,110289,8832],{"class":54},[34,110291,7197],{"class":580},[34,110293,11425],{"class":47},[34,110295,110296],{"class":54}," \"pattern2\"\n",[388,110298,15873],{},{"title":30,"searchDepth":44,"depth":44,"links":110300},[110301],{"id":110206,"depth":44,"text":110201},"Multiple Patterns in Grep.",{},"/grep/multiple-patterns",{"title":110201,"description":110302},"grep/multiple-patterns",[11489,5588,89861,109602,557],"VeR7oYg50NWFPlP1WOUjwtMr_uuy3wjplFI5dJKvKIQ",{"id":110310,"title":110311,"body":110312,"date":402,"description":110476,"extension":404,"meta":110477,"navigation":61,"order":82,"path":110478,"seo":110479,"stem":110480,"subject":11489,"tags":110481,"__hash__":110482},"topics/grep/output-control.md","Output Control",{"type":8,"value":110313,"toc":110473},[110314,110317,110470],[11,110315,110311],{"id":110316},"output-control",[25,110318,110320],{"className":27,"code":110319,"language":29,"meta":30,"style":30},"# Suppress error messages\ngrep -s \"pattern\" file.txt\n\n# Quiet mode (exit status only)\ngrep -q \"pattern\" file.txt && echo \"Found\"\n\n# Print filename with matches\ngrep -H \"pattern\" file.txt\n\n# Suppress filename (multiple files)\ngrep -h \"pattern\" *.txt\n\n# Add color highlighting\ngrep --color=auto \"pattern\" file.txt\ngrep --color=always \"pattern\" file.txt\n\n# Null-separated output (for xargs)\ngrep -Z -l \"pattern\" *.txt | xargs -0 rm\n",[20,110321,110322,110327,110337,110341,110346,110363,110367,110372,110382,110386,110391,110404,110408,110413,110424,110435,110439,110444],{"__ignoreMap":30},[34,110323,110324],{"class":36,"line":37},[34,110325,110326],{"class":40},"# Suppress error messages\n",[34,110328,110329,110331,110333,110335],{"class":36,"line":44},[34,110330,11489],{"class":47},[34,110332,5487],{"class":50},[34,110334,11492],{"class":54},[34,110336,12140],{"class":54},[34,110338,110339],{"class":36,"line":58},[34,110340,62],{"emptyLinePlaceholder":61},[34,110342,110343],{"class":36,"line":65},[34,110344,110345],{"class":40},"# Quiet mode (exit status only)\n",[34,110347,110348,110350,110352,110354,110356,110358,110360],{"class":36,"line":71},[34,110349,11489],{"class":47},[34,110351,55646],{"class":50},[34,110353,11492],{"class":54},[34,110355,8832],{"class":54},[34,110357,5622],{"class":181},[34,110359,10120],{"class":50},[34,110361,110362],{"class":54}," \"Found\"\n",[34,110364,110365],{"class":36,"line":77},[34,110366,62],{"emptyLinePlaceholder":61},[34,110368,110369],{"class":36,"line":82},[34,110370,110371],{"class":40},"# Print filename with matches\n",[34,110373,110374,110376,110378,110380],{"class":36,"line":88},[34,110375,11489],{"class":47},[34,110377,43101],{"class":50},[34,110379,11492],{"class":54},[34,110381,12140],{"class":54},[34,110383,110384],{"class":36,"line":242},[34,110385,62],{"emptyLinePlaceholder":61},[34,110387,110388],{"class":36,"line":250},[34,110389,110390],{"class":40},"# Suppress filename (multiple files)\n",[34,110392,110393,110395,110398,110400,110402],{"class":36,"line":263},[34,110394,11489],{"class":47},[34,110396,110397],{"class":50}," -h",[34,110399,11492],{"class":54},[34,110401,18083],{"class":50},[34,110403,109659],{"class":54},[34,110405,110406],{"class":36,"line":275},[34,110407,62],{"emptyLinePlaceholder":61},[34,110409,110410],{"class":36,"line":700},[34,110411,110412],{"class":40},"# Add color highlighting\n",[34,110414,110415,110417,110420,110422],{"class":36,"line":706},[34,110416,11489],{"class":47},[34,110418,110419],{"class":50}," --color=auto",[34,110421,11492],{"class":54},[34,110423,12140],{"class":54},[34,110425,110426,110428,110431,110433],{"class":36,"line":715},[34,110427,11489],{"class":47},[34,110429,110430],{"class":50}," --color=always",[34,110432,11492],{"class":54},[34,110434,12140],{"class":54},[34,110436,110437],{"class":36,"line":725},[34,110438,62],{"emptyLinePlaceholder":61},[34,110440,110441],{"class":36,"line":734},[34,110442,110443],{"class":40},"# Null-separated output (for xargs)\n",[34,110445,110446,110448,110451,110453,110455,110457,110459,110461,110464,110467],{"class":36,"line":742},[34,110447,11489],{"class":47},[34,110449,110450],{"class":50}," -Z",[34,110452,13169],{"class":50},[34,110454,11492],{"class":54},[34,110456,18083],{"class":50},[34,110458,109964],{"class":54},[34,110460,7197],{"class":580},[34,110462,110463],{"class":47}," xargs",[34,110465,110466],{"class":50}," -0",[34,110468,110469],{"class":54}," rm\n",[388,110471,110472],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":110474},[110475],{"id":110316,"depth":44,"text":110311},"Output Control in Grep.",{},"/grep/output-control",{"title":110311,"description":110476},"grep/output-control",[11489,5588,89861,109602,557],"p2HM8s7WgHRa9tNddK0v-P5-WtJ8yP7FRnuTmNAdwhk",{"id":110484,"title":110485,"body":110486,"date":2633,"description":110548,"extension":404,"meta":110549,"navigation":61,"order":37,"path":110550,"seo":110551,"stem":110552,"subject":11489,"tags":110553,"__hash__":110554},"topics/grep/overview.md","Grep",{"type":8,"value":110487,"toc":110546},[110488],[309,110489,110490,110494,110498,110502,110508,110512,110516,110522,110526,110532,110538,110542],{},[312,110491,110492],{},[145,110493,89702],{"href":109735},[312,110495,110496],{},[145,110497,334],{"href":109990},[312,110499,110500],{},[145,110501,109997],{"href":110102},[312,110503,110504],{},[145,110505,110507],{"href":110506},"/grep/regular-expressions","Regular Expressions",[312,110509,110510],{},[145,110511,110201],{"href":110304},[312,110513,110514],{},[145,110515,110311],{"href":110478},[312,110517,110518],{},[145,110519,110521],{"href":110520},"/grep/recursive-search","Recursive Search",[312,110523,110524],{},[145,110525,109742],{"href":109816},[312,110527,110528],{},[145,110529,110531],{"href":110530},"/grep/performance-tips","Performance Tips",[312,110533,110534],{},[145,110535,110537],{"href":110536},"/grep/practical-examples","Practical Examples",[312,110539,110540],{},[145,110541,110109],{"href":110194},[312,110543,110544],{},[145,110545,109535],{"href":109598},{"title":30,"searchDepth":44,"depth":44,"links":110547},[],"Essential grep commands for searching text patterns in files and streams.",{},"/grep/overview",{"title":110485,"description":110548},"grep/overview",[11489,5588,89861,109602,557],"_kRemOSewSV_qRaQkQC3WINEXxXLYn41QayZzSdoktM",{"id":110556,"title":110531,"body":110557,"date":402,"description":110654,"extension":404,"meta":110655,"navigation":61,"order":250,"path":110530,"seo":110656,"stem":110657,"subject":11489,"tags":110658,"__hash__":110659},"topics/grep/performance-tips.md",{"type":8,"value":110558,"toc":110651},[110559,110562,110649],[11,110560,110531],{"id":110561},"performance-tips",[25,110563,110565],{"className":27,"code":110564,"language":29,"meta":30,"style":30},"# Fixed string (faster, no regex)\ngrep -F \"literal string\" file.txt\nfgrep \"literal string\" file.txt  # Equivalent\n\n# Limit to first N matches\ngrep -m 5 \"pattern\" file.txt\n\n# Use parallel processing (with xargs)\nfind . -name \"*.txt\" | xargs -P 4 grep \"pattern\"\n",[20,110566,110567,110572,110583,110595,110599,110604,110616,110620,110625],{"__ignoreMap":30},[34,110568,110569],{"class":36,"line":37},[34,110570,110571],{"class":40},"# Fixed string (faster, no regex)\n",[34,110573,110574,110576,110578,110581],{"class":36,"line":44},[34,110575,11489],{"class":47},[34,110577,43705],{"class":50},[34,110579,110580],{"class":54}," \"literal string\"",[34,110582,12140],{"class":54},[34,110584,110585,110588,110590,110592],{"class":36,"line":58},[34,110586,110587],{"class":47},"fgrep",[34,110589,110580],{"class":54},[34,110591,8832],{"class":54},[34,110593,110594],{"class":40},"  # Equivalent\n",[34,110596,110597],{"class":36,"line":65},[34,110598,62],{"emptyLinePlaceholder":61},[34,110600,110601],{"class":36,"line":71},[34,110602,110603],{"class":40},"# Limit to first N matches\n",[34,110605,110606,110608,110610,110612,110614],{"class":36,"line":77},[34,110607,11489],{"class":47},[34,110609,5037],{"class":50},[34,110611,11144],{"class":50},[34,110613,11492],{"class":54},[34,110615,12140],{"class":54},[34,110617,110618],{"class":36,"line":82},[34,110619,62],{"emptyLinePlaceholder":61},[34,110621,110622],{"class":36,"line":88},[34,110623,110624],{"class":40},"# Use parallel processing (with xargs)\n",[34,110626,110627,110629,110631,110633,110636,110638,110640,110643,110645,110647],{"class":36,"line":242},[34,110628,12963],{"class":47},[34,110630,100566],{"class":54},[34,110632,12969],{"class":50},[34,110634,110635],{"class":54}," \"*.txt\"",[34,110637,7197],{"class":580},[34,110639,110463],{"class":47},[34,110641,110642],{"class":50}," -P",[34,110644,11801],{"class":50},[34,110646,11425],{"class":54},[34,110648,109558],{"class":54},[388,110650,15873],{},{"title":30,"searchDepth":44,"depth":44,"links":110652},[110653],{"id":110561,"depth":44,"text":110531},"Performance Tips in Grep.",{},{"title":110531,"description":110654},"grep/performance-tips",[11489,5588,89861,109602,557],"d68QCJxwt_ISsiZ1d6zOThDiK7AvrF9KWniIYQ7zoTM",{"id":110661,"title":110537,"body":110662,"date":402,"description":110921,"extension":404,"meta":110922,"navigation":61,"order":263,"path":110536,"seo":110923,"stem":110924,"subject":11489,"tags":110925,"__hash__":110926},"topics/grep/practical-examples.md",{"type":8,"value":110663,"toc":110918},[110664,110667,110916],[11,110665,110537],{"id":110666},"practical-examples",[25,110668,110670],{"className":27,"code":110669,"language":29,"meta":30,"style":30},"# Find TODO comments in code\ngrep -rn \"TODO\" --include=\"*.js\" .\n\n# Find IP addresses\ngrep -E \"\\b([0-9]{1,3}\\.){3}[0-9]{1,3}\\b\" file.txt\n\n# Find email addresses\ngrep -E \"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\" file.txt\n\n# Find empty lines\ngrep \"^$\" file.txt\n\n# Find non-empty lines\ngrep -v \"^$\" file.txt\n\n# Find lines with only whitespace\ngrep \"^[[:space:]]*$\" file.txt\n\n# Find function definitions (JavaScript)\ngrep -E \"function\\s+\\w+\\s*\\(\" *.js\n\n# Find imports/requires\ngrep -E \"^(import|const.*require)\" *.js\n\n# Count occurrences per file\ngrep -c \"pattern\" *.txt | grep -v \":0$\"\n\n# Find files not containing pattern\ngrep -rL \"pattern\" --include=\"*.txt\" .\n\n# Extract URLs from file\ngrep -oE \"https?://[^\\\"' >]+\" file.html\n",[20,110671,110672,110677,110694,110698,110703,110714,110718,110723,110734,110738,110743,110752,110756,110761,110771,110775,110780,110789,110793,110798,110812,110816,110821,110834,110838,110843,110864,110868,110873,110889,110893,110898],{"__ignoreMap":30},[34,110673,110674],{"class":36,"line":37},[34,110675,110676],{"class":40},"# Find TODO comments in code\n",[34,110678,110679,110681,110684,110686,110689,110692],{"class":36,"line":44},[34,110680,11489],{"class":47},[34,110682,110683],{"class":50}," -rn",[34,110685,100271],{"class":54},[34,110687,110688],{"class":50}," --include=",[34,110690,110691],{"class":54},"\"*.js\"",[34,110693,56924],{"class":54},[34,110695,110696],{"class":36,"line":58},[34,110697,62],{"emptyLinePlaceholder":61},[34,110699,110700],{"class":36,"line":65},[34,110701,110702],{"class":40},"# Find IP addresses\n",[34,110704,110705,110707,110709,110712],{"class":36,"line":71},[34,110706,11489],{"class":47},[34,110708,13771],{"class":50},[34,110710,110711],{"class":54}," \"\\b([0-9]{1,3}\\.){3}[0-9]{1,3}\\b\"",[34,110713,12140],{"class":54},[34,110715,110716],{"class":36,"line":77},[34,110717,62],{"emptyLinePlaceholder":61},[34,110719,110720],{"class":36,"line":82},[34,110721,110722],{"class":40},"# Find email addresses\n",[34,110724,110725,110727,110729,110732],{"class":36,"line":88},[34,110726,11489],{"class":47},[34,110728,13771],{"class":50},[34,110730,110731],{"class":54}," \"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\"",[34,110733,12140],{"class":54},[34,110735,110736],{"class":36,"line":242},[34,110737,62],{"emptyLinePlaceholder":61},[34,110739,110740],{"class":36,"line":250},[34,110741,110742],{"class":40},"# Find empty lines\n",[34,110744,110745,110747,110750],{"class":36,"line":263},[34,110746,11489],{"class":47},[34,110748,110749],{"class":54}," \"^$\"",[34,110751,12140],{"class":54},[34,110753,110754],{"class":36,"line":275},[34,110755,62],{"emptyLinePlaceholder":61},[34,110757,110758],{"class":36,"line":700},[34,110759,110760],{"class":40},"# Find non-empty lines\n",[34,110762,110763,110765,110767,110769],{"class":36,"line":706},[34,110764,11489],{"class":47},[34,110766,12530],{"class":50},[34,110768,110749],{"class":54},[34,110770,12140],{"class":54},[34,110772,110773],{"class":36,"line":715},[34,110774,62],{"emptyLinePlaceholder":61},[34,110776,110777],{"class":36,"line":725},[34,110778,110779],{"class":40},"# Find lines with only whitespace\n",[34,110781,110782,110784,110787],{"class":36,"line":734},[34,110783,11489],{"class":47},[34,110785,110786],{"class":54}," \"^[[:space:]]*$\"",[34,110788,12140],{"class":54},[34,110790,110791],{"class":36,"line":742},[34,110792,62],{"emptyLinePlaceholder":61},[34,110794,110795],{"class":36,"line":748},[34,110796,110797],{"class":40},"# Find function definitions (JavaScript)\n",[34,110799,110800,110802,110804,110807,110809],{"class":36,"line":754},[34,110801,11489],{"class":47},[34,110803,13771],{"class":50},[34,110805,110806],{"class":54}," \"function\\s+\\w+\\s*\\(\"",[34,110808,18083],{"class":50},[34,110810,110811],{"class":54},".js\n",[34,110813,110814],{"class":36,"line":759},[34,110815,62],{"emptyLinePlaceholder":61},[34,110817,110818],{"class":36,"line":771},[34,110819,110820],{"class":40},"# Find imports/requires\n",[34,110822,110823,110825,110827,110830,110832],{"class":36,"line":794},[34,110824,11489],{"class":47},[34,110826,13771],{"class":50},[34,110828,110829],{"class":54}," \"^(import|const.*require)\"",[34,110831,18083],{"class":50},[34,110833,110811],{"class":54},[34,110835,110836],{"class":36,"line":824},[34,110837,62],{"emptyLinePlaceholder":61},[34,110839,110840],{"class":36,"line":830},[34,110841,110842],{"class":40},"# Count occurrences per file\n",[34,110844,110845,110847,110849,110851,110853,110855,110857,110859,110861],{"class":36,"line":839},[34,110846,11489],{"class":47},[34,110848,15867],{"class":50},[34,110850,11492],{"class":54},[34,110852,18083],{"class":50},[34,110854,109964],{"class":54},[34,110856,7197],{"class":580},[34,110858,11425],{"class":47},[34,110860,12530],{"class":50},[34,110862,110863],{"class":54}," \":0$\"\n",[34,110865,110866],{"class":36,"line":854},[34,110867,62],{"emptyLinePlaceholder":61},[34,110869,110870],{"class":36,"line":860},[34,110871,110872],{"class":40},"# Find files not containing pattern\n",[34,110874,110875,110877,110880,110882,110884,110887],{"class":36,"line":865},[34,110876,11489],{"class":47},[34,110878,110879],{"class":50}," -rL",[34,110881,11492],{"class":54},[34,110883,110688],{"class":50},[34,110885,110886],{"class":54},"\"*.txt\"",[34,110888,56924],{"class":54},[34,110890,110891],{"class":36,"line":870},[34,110892,62],{"emptyLinePlaceholder":61},[34,110894,110895],{"class":36,"line":876},[34,110896,110897],{"class":40},"# Extract URLs from file\n",[34,110899,110900,110902,110905,110908,110910,110913],{"class":36,"line":885},[34,110901,11489],{"class":47},[34,110903,110904],{"class":50}," -oE",[34,110906,110907],{"class":54}," \"https?://[^",[34,110909,84979],{"class":50},[34,110911,110912],{"class":54},"' >]+\"",[34,110914,110915],{"class":54}," file.html\n",[388,110917,15873],{},{"title":30,"searchDepth":44,"depth":44,"links":110919},[110920],{"id":110666,"depth":44,"text":110537},"Practical Examples in Grep.",{},{"title":110537,"description":110921},"grep/practical-examples",[11489,5588,89861,109602,557],"OZ1GGf0No3OIp44LnKU_s2TWC8Ud0HdHEyis_6tSj10",{"id":110928,"title":110521,"body":110929,"date":402,"description":111068,"extension":404,"meta":111069,"navigation":61,"order":88,"path":110520,"seo":111070,"stem":111071,"subject":11489,"tags":111072,"__hash__":111073},"topics/grep/recursive-search.md",{"type":8,"value":110930,"toc":111065},[110931,110934,111062],[11,110932,110521],{"id":110933},"recursive-search",[25,110935,110937],{"className":27,"code":110936,"language":29,"meta":30,"style":30},"# Recursive search\ngrep -r \"pattern\" /path\n\n# Include specific files\ngrep -r --include=\"*.js\" \"pattern\" .\n\n# Exclude specific files\ngrep -r --exclude=\"*.log\" \"pattern\" .\n\n# Exclude directories\ngrep -r --exclude-dir=node_modules \"pattern\" .\ngrep -r --exclude-dir={node_modules,dist} \"pattern\" .\n\n# Follow symlinks\ngrep -R \"pattern\" .\n",[20,110938,110939,110944,110955,110959,110964,110978,110982,110987,111003,111007,111012,111025,111043,111047,111052],{"__ignoreMap":30},[34,110940,110941],{"class":36,"line":37},[34,110942,110943],{"class":40},"# Recursive search\n",[34,110945,110946,110948,110950,110952],{"class":36,"line":44},[34,110947,11489],{"class":47},[34,110949,12112],{"class":50},[34,110951,11492],{"class":54},[34,110953,110954],{"class":54}," /path\n",[34,110956,110957],{"class":36,"line":58},[34,110958,62],{"emptyLinePlaceholder":61},[34,110960,110961],{"class":36,"line":65},[34,110962,110963],{"class":40},"# Include specific files\n",[34,110965,110966,110968,110970,110972,110974,110976],{"class":36,"line":71},[34,110967,11489],{"class":47},[34,110969,12112],{"class":50},[34,110971,110688],{"class":50},[34,110973,110691],{"class":54},[34,110975,11492],{"class":54},[34,110977,56924],{"class":54},[34,110979,110980],{"class":36,"line":77},[34,110981,62],{"emptyLinePlaceholder":61},[34,110983,110984],{"class":36,"line":82},[34,110985,110986],{"class":40},"# Exclude specific files\n",[34,110988,110989,110991,110993,110996,110999,111001],{"class":36,"line":88},[34,110990,11489],{"class":47},[34,110992,12112],{"class":50},[34,110994,110995],{"class":50}," --exclude=",[34,110997,110998],{"class":54},"\"*.log\"",[34,111000,11492],{"class":54},[34,111002,56924],{"class":54},[34,111004,111005],{"class":36,"line":242},[34,111006,62],{"emptyLinePlaceholder":61},[34,111008,111009],{"class":36,"line":250},[34,111010,111011],{"class":40},"# Exclude directories\n",[34,111013,111014,111016,111018,111021,111023],{"class":36,"line":263},[34,111015,11489],{"class":47},[34,111017,12112],{"class":50},[34,111019,111020],{"class":50}," --exclude-dir=node_modules",[34,111022,11492],{"class":54},[34,111024,56924],{"class":54},[34,111026,111027,111029,111031,111034,111036,111039,111041],{"class":36,"line":275},[34,111028,11489],{"class":47},[34,111030,12112],{"class":50},[34,111032,111033],{"class":50}," --exclude-dir=",[34,111035,13990],{"class":181},[34,111037,111038],{"class":47},"node_modules,dist}",[34,111040,11492],{"class":54},[34,111042,56924],{"class":54},[34,111044,111045],{"class":36,"line":700},[34,111046,62],{"emptyLinePlaceholder":61},[34,111048,111049],{"class":36,"line":706},[34,111050,111051],{"class":40},"# Follow symlinks\n",[34,111053,111054,111056,111058,111060],{"class":36,"line":715},[34,111055,11489],{"class":47},[34,111057,97196],{"class":50},[34,111059,11492],{"class":54},[34,111061,56924],{"class":54},[388,111063,111064],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .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":30,"searchDepth":44,"depth":44,"links":111066},[111067],{"id":110933,"depth":44,"text":110521},"Recursive Search in Grep.",{},{"title":110521,"description":111068},"grep/recursive-search",[11489,5588,89861,109602,557],"INzIDzmZSzu5XqYMNH9E-uYaUPvylQ9ZqkymPlzrfKw",{"id":111075,"title":110507,"body":111076,"date":402,"description":111348,"extension":404,"meta":111349,"navigation":61,"order":71,"path":110506,"seo":111350,"stem":111351,"subject":11489,"tags":111352,"__hash__":111353},"topics/grep/regular-expressions.md",{"type":8,"value":111077,"toc":111345},[111078,111081,111343],[11,111079,110507],{"id":111080},"regular-expressions",[25,111082,111084],{"className":27,"code":111083,"language":29,"meta":30,"style":30},"# Basic regex (BRE) - default\ngrep \"^start\" file.txt      # Line starts with\ngrep \"end$\" file.txt        # Line ends with\ngrep \"a.b\" file.txt         # Any single character\ngrep \"a*\" file.txt          # Zero or more\ngrep \"a\\+\" file.txt         # One or more (escaped in BRE)\ngrep \"a\\?\" file.txt         # Zero or one (escaped in BRE)\ngrep \"[abc]\" file.txt       # Character class\ngrep \"[^abc]\" file.txt      # Negated character class\ngrep \"[a-z]\" file.txt       # Character range\n\n# Extended regex (ERE)\ngrep -E \"a+\" file.txt       # One or more\ngrep -E \"a?\" file.txt       # Zero or one\ngrep -E \"a{2,4}\" file.txt   # 2 to 4 occurrences\ngrep -E \"a|b\" file.txt      # Alternation (OR)\ngrep -E \"(abc)+\" file.txt   # Grouping\n\n# Perl-compatible regex (PCRE)\ngrep -P \"\\d+\" file.txt      # Digits\ngrep -P \"\\w+\" file.txt      # Word characters\ngrep -P \"\\s+\" file.txt      # Whitespace\ngrep -P \"(?\u003C=@)\\w+\" file.txt  # Lookbehind\n",[20,111085,111086,111091,111103,111115,111127,111139,111151,111163,111175,111187,111199,111203,111208,111222,111236,111250,111264,111278,111282,111287,111301,111315,111329],{"__ignoreMap":30},[34,111087,111088],{"class":36,"line":37},[34,111089,111090],{"class":40},"# Basic regex (BRE) - default\n",[34,111092,111093,111095,111098,111100],{"class":36,"line":44},[34,111094,11489],{"class":47},[34,111096,111097],{"class":54}," \"^start\"",[34,111099,8832],{"class":54},[34,111101,111102],{"class":40},"      # Line starts with\n",[34,111104,111105,111107,111110,111112],{"class":36,"line":58},[34,111106,11489],{"class":47},[34,111108,111109],{"class":54}," \"end$\"",[34,111111,8832],{"class":54},[34,111113,111114],{"class":40},"        # Line ends with\n",[34,111116,111117,111119,111122,111124],{"class":36,"line":65},[34,111118,11489],{"class":47},[34,111120,111121],{"class":54}," \"a.b\"",[34,111123,8832],{"class":54},[34,111125,111126],{"class":40},"         # Any single character\n",[34,111128,111129,111131,111134,111136],{"class":36,"line":71},[34,111130,11489],{"class":47},[34,111132,111133],{"class":54}," \"a*\"",[34,111135,8832],{"class":54},[34,111137,111138],{"class":40},"          # Zero or more\n",[34,111140,111141,111143,111146,111148],{"class":36,"line":77},[34,111142,11489],{"class":47},[34,111144,111145],{"class":54}," \"a\\+\"",[34,111147,8832],{"class":54},[34,111149,111150],{"class":40},"         # One or more (escaped in BRE)\n",[34,111152,111153,111155,111158,111160],{"class":36,"line":82},[34,111154,11489],{"class":47},[34,111156,111157],{"class":54}," \"a\\?\"",[34,111159,8832],{"class":54},[34,111161,111162],{"class":40},"         # Zero or one (escaped in BRE)\n",[34,111164,111165,111167,111170,111172],{"class":36,"line":88},[34,111166,11489],{"class":47},[34,111168,111169],{"class":54}," \"[abc]\"",[34,111171,8832],{"class":54},[34,111173,111174],{"class":40},"       # Character class\n",[34,111176,111177,111179,111182,111184],{"class":36,"line":242},[34,111178,11489],{"class":47},[34,111180,111181],{"class":54}," \"[^abc]\"",[34,111183,8832],{"class":54},[34,111185,111186],{"class":40},"      # Negated character class\n",[34,111188,111189,111191,111194,111196],{"class":36,"line":250},[34,111190,11489],{"class":47},[34,111192,111193],{"class":54}," \"[a-z]\"",[34,111195,8832],{"class":54},[34,111197,111198],{"class":40},"       # Character range\n",[34,111200,111201],{"class":36,"line":263},[34,111202,62],{"emptyLinePlaceholder":61},[34,111204,111205],{"class":36,"line":275},[34,111206,111207],{"class":40},"# Extended regex (ERE)\n",[34,111209,111210,111212,111214,111217,111219],{"class":36,"line":700},[34,111211,11489],{"class":47},[34,111213,13771],{"class":50},[34,111215,111216],{"class":54}," \"a+\"",[34,111218,8832],{"class":54},[34,111220,111221],{"class":40},"       # One or more\n",[34,111223,111224,111226,111228,111231,111233],{"class":36,"line":706},[34,111225,11489],{"class":47},[34,111227,13771],{"class":50},[34,111229,111230],{"class":54}," \"a?\"",[34,111232,8832],{"class":54},[34,111234,111235],{"class":40},"       # Zero or one\n",[34,111237,111238,111240,111242,111245,111247],{"class":36,"line":715},[34,111239,11489],{"class":47},[34,111241,13771],{"class":50},[34,111243,111244],{"class":54}," \"a{2,4}\"",[34,111246,8832],{"class":54},[34,111248,111249],{"class":40},"   # 2 to 4 occurrences\n",[34,111251,111252,111254,111256,111259,111261],{"class":36,"line":725},[34,111253,11489],{"class":47},[34,111255,13771],{"class":50},[34,111257,111258],{"class":54}," \"a|b\"",[34,111260,8832],{"class":54},[34,111262,111263],{"class":40},"      # Alternation (OR)\n",[34,111265,111266,111268,111270,111273,111275],{"class":36,"line":734},[34,111267,11489],{"class":47},[34,111269,13771],{"class":50},[34,111271,111272],{"class":54}," \"(abc)+\"",[34,111274,8832],{"class":54},[34,111276,111277],{"class":40},"   # Grouping\n",[34,111279,111280],{"class":36,"line":742},[34,111281,62],{"emptyLinePlaceholder":61},[34,111283,111284],{"class":36,"line":748},[34,111285,111286],{"class":40},"# Perl-compatible regex (PCRE)\n",[34,111288,111289,111291,111293,111296,111298],{"class":36,"line":754},[34,111290,11489],{"class":47},[34,111292,110642],{"class":50},[34,111294,111295],{"class":54}," \"\\d+\"",[34,111297,8832],{"class":54},[34,111299,111300],{"class":40},"      # Digits\n",[34,111302,111303,111305,111307,111310,111312],{"class":36,"line":759},[34,111304,11489],{"class":47},[34,111306,110642],{"class":50},[34,111308,111309],{"class":54}," \"\\w+\"",[34,111311,8832],{"class":54},[34,111313,111314],{"class":40},"      # Word characters\n",[34,111316,111317,111319,111321,111324,111326],{"class":36,"line":771},[34,111318,11489],{"class":47},[34,111320,110642],{"class":50},[34,111322,111323],{"class":54}," \"\\s+\"",[34,111325,8832],{"class":54},[34,111327,111328],{"class":40},"      # Whitespace\n",[34,111330,111331,111333,111335,111338,111340],{"class":36,"line":794},[34,111332,11489],{"class":47},[34,111334,110642],{"class":50},[34,111336,111337],{"class":54}," \"(?\u003C=@)\\w+\"",[34,111339,8832],{"class":54},[34,111341,111342],{"class":40},"  # Lookbehind\n",[388,111344,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":111346},[111347],{"id":111080,"depth":44,"text":110507},"Regular Expressions in Grep.",{},{"title":110507,"description":111348},"grep/regular-expressions",[11489,5588,89861,109602,557],"mOAQXlrTVkQSuQl-zWkk-jZ0AH4HV60z2ZPFoq8KU-s",{"id":111355,"title":111356,"body":111357,"date":402,"description":112294,"extension":404,"meta":112295,"navigation":61,"order":37,"path":112296,"seo":112297,"stem":112298,"subject":112299,"tags":112300,"__hash__":112304},"topics/grpc/overview.md","gRPC",{"type":8,"value":111358,"toc":112285},[111359,111363,111380,111384,111469,111473,111690,111694,111855,111859,112026,112030,112162,112166,112282],[11,111360,111362],{"id":111361},"installation-nodejs","Installation (Node.js)",[25,111364,111366],{"className":27,"code":111365,"language":29,"meta":30,"style":30},"npm install @grpc/grpc-js @grpc/proto-loader\n",[20,111367,111368],{"__ignoreMap":30},[34,111369,111370,111372,111374,111377],{"class":36,"line":37},[34,111371,8177],{"class":47},[34,111373,118],{"class":54},[34,111375,111376],{"class":54}," @grpc/grpc-js",[34,111378,111379],{"class":54}," @grpc/proto-loader\n",[11,111381,111383],{"id":111382},"define-a-service-proto","Define a Service (proto)",[25,111385,111389],{"className":111386,"code":111387,"language":111388,"meta":30,"style":30},"language-protobuf shiki shiki-themes github-light github-dark","// hello.proto\nsyntax = \"proto3\";\n\npackage hello;\n\nservice Greeter {\n  rpc SayHello (HelloRequest) returns (HelloReply);\n  rpc SayHelloStream (HelloRequest) returns (stream HelloReply);\n}\n\nmessage HelloRequest {\n  string name = 1;\n}\n\nmessage HelloReply {\n  string message = 1;\n}\n","protobuf",[20,111390,111391,111396,111401,111405,111410,111414,111419,111424,111429,111433,111437,111442,111447,111451,111455,111460,111465],{"__ignoreMap":30},[34,111392,111393],{"class":36,"line":37},[34,111394,111395],{},"// hello.proto\n",[34,111397,111398],{"class":36,"line":44},[34,111399,111400],{},"syntax = \"proto3\";\n",[34,111402,111403],{"class":36,"line":58},[34,111404,62],{"emptyLinePlaceholder":61},[34,111406,111407],{"class":36,"line":65},[34,111408,111409],{},"package hello;\n",[34,111411,111412],{"class":36,"line":71},[34,111413,62],{"emptyLinePlaceholder":61},[34,111415,111416],{"class":36,"line":77},[34,111417,111418],{},"service Greeter {\n",[34,111420,111421],{"class":36,"line":82},[34,111422,111423],{},"  rpc SayHello (HelloRequest) returns (HelloReply);\n",[34,111425,111426],{"class":36,"line":88},[34,111427,111428],{},"  rpc SayHelloStream (HelloRequest) returns (stream HelloReply);\n",[34,111430,111431],{"class":36,"line":242},[34,111432,693],{},[34,111434,111435],{"class":36,"line":250},[34,111436,62],{"emptyLinePlaceholder":61},[34,111438,111439],{"class":36,"line":263},[34,111440,111441],{},"message HelloRequest {\n",[34,111443,111444],{"class":36,"line":275},[34,111445,111446],{},"  string name = 1;\n",[34,111448,111449],{"class":36,"line":700},[34,111450,693],{},[34,111452,111453],{"class":36,"line":706},[34,111454,62],{"emptyLinePlaceholder":61},[34,111456,111457],{"class":36,"line":715},[34,111458,111459],{},"message HelloReply {\n",[34,111461,111462],{"class":36,"line":725},[34,111463,111464],{},"  string message = 1;\n",[34,111466,111467],{"class":36,"line":734},[34,111468,693],{},[11,111470,111472],{"id":111471},"server-nodejs","Server (Node.js)",[25,111474,111478],{"className":111475,"code":111476,"language":111477,"meta":30,"style":30},"language-js shiki shiki-themes github-light github-dark","const grpc = require('@grpc/grpc-js');\nconst protoLoader = require('@grpc/proto-loader');\n\nconst packageDef = protoLoader.loadSync('hello.proto');\nconst proto = grpc.loadPackageDefinition(packageDef).hello;\n\nfunction sayHello(call, callback) {\n  callback(null, { message: `Hello, ${call.request.name}!` });\n}\n\nconst server = new grpc.Server();\nserver.addService(proto.Greeter.service, { sayHello });\nserver.bindAsync('0.0.0.0:50051', grpc.ServerCredentials.createInsecure(), () => {\n  server.start();\n});\n","js",[20,111479,111480,111499,111517,111521,111543,111561,111565,111583,111615,111619,111623,111641,111652,111677,111686],{"__ignoreMap":30},[34,111481,111482,111484,111487,111489,111492,111494,111497],{"class":36,"line":37},[34,111483,14676],{"class":580},[34,111485,111486],{"class":50}," grpc",[34,111488,683],{"class":580},[34,111490,111491],{"class":47}," require",[34,111493,1607],{"class":181},[34,111495,111496],{"class":54},"'@grpc/grpc-js'",[34,111498,1586],{"class":181},[34,111500,111501,111503,111506,111508,111510,111512,111515],{"class":36,"line":44},[34,111502,14676],{"class":580},[34,111504,111505],{"class":50}," protoLoader",[34,111507,683],{"class":580},[34,111509,111491],{"class":47},[34,111511,1607],{"class":181},[34,111513,111514],{"class":54},"'@grpc/proto-loader'",[34,111516,1586],{"class":181},[34,111518,111519],{"class":36,"line":58},[34,111520,62],{"emptyLinePlaceholder":61},[34,111522,111523,111525,111528,111530,111533,111536,111538,111541],{"class":36,"line":65},[34,111524,14676],{"class":580},[34,111526,111527],{"class":50}," packageDef",[34,111529,683],{"class":580},[34,111531,111532],{"class":181}," protoLoader.",[34,111534,111535],{"class":47},"loadSync",[34,111537,1607],{"class":181},[34,111539,111540],{"class":54},"'hello.proto'",[34,111542,1586],{"class":181},[34,111544,111545,111547,111550,111552,111555,111558],{"class":36,"line":71},[34,111546,14676],{"class":580},[34,111548,111549],{"class":50}," proto",[34,111551,683],{"class":580},[34,111553,111554],{"class":181}," grpc.",[34,111556,111557],{"class":47},"loadPackageDefinition",[34,111559,111560],{"class":181},"(packageDef).hello;\n",[34,111562,111563],{"class":36,"line":77},[34,111564,62],{"emptyLinePlaceholder":61},[34,111566,111567,111569,111571,111573,111576,111578,111581],{"class":36,"line":82},[34,111568,11044],{"class":580},[34,111570,61266],{"class":47},[34,111572,1607],{"class":181},[34,111574,111575],{"class":675},"call",[34,111577,1798],{"class":181},[34,111579,111580],{"class":675},"callback",[34,111582,2416],{"class":181},[34,111584,111585,111588,111590,111593,111596,111599,111601,111603,111606,111608,111610,111613],{"class":36,"line":88},[34,111586,111587],{"class":47},"  callback",[34,111589,1607],{"class":181},[34,111591,111592],{"class":50},"null",[34,111594,111595],{"class":181},", { message: ",[34,111597,111598],{"class":54},"`Hello, ${",[34,111600,111575],{"class":181},[34,111602,151],{"class":54},[34,111604,111605],{"class":181},"request",[34,111607,151],{"class":54},[34,111609,178],{"class":181},[34,111611,111612],{"class":54},"}!`",[34,111614,15567],{"class":181},[34,111616,111617],{"class":36,"line":242},[34,111618,693],{"class":181},[34,111620,111621],{"class":36,"line":250},[34,111622,62],{"emptyLinePlaceholder":61},[34,111624,111625,111627,111630,111632,111634,111636,111639],{"class":36,"line":263},[34,111626,14676],{"class":580},[34,111628,111629],{"class":50}," server",[34,111631,683],{"class":580},[34,111633,809],{"class":580},[34,111635,111554],{"class":181},[34,111637,111638],{"class":47},"Server",[34,111640,851],{"class":181},[34,111642,111643,111646,111649],{"class":36,"line":275},[34,111644,111645],{"class":181},"server.",[34,111647,111648],{"class":47},"addService",[34,111650,111651],{"class":181},"(proto.Greeter.service, { sayHello });\n",[34,111653,111654,111656,111659,111661,111664,111667,111670,111673,111675],{"class":36,"line":700},[34,111655,111645],{"class":181},[34,111657,111658],{"class":47},"bindAsync",[34,111660,1607],{"class":181},[34,111662,111663],{"class":54},"'0.0.0.0:50051'",[34,111665,111666],{"class":181},", grpc.ServerCredentials.",[34,111668,111669],{"class":47},"createInsecure",[34,111671,111672],{"class":181},"(), () ",[34,111674,3361],{"class":580},[34,111676,661],{"class":181},[34,111678,111679,111682,111684],{"class":36,"line":706},[34,111680,111681],{"class":181},"  server.",[34,111683,40502],{"class":47},[34,111685,851],{"class":181},[34,111687,111688],{"class":36,"line":715},[34,111689,14873],{"class":181},[11,111691,111693],{"id":111692},"client-nodejs","Client (Node.js)",[25,111695,111697],{"className":111475,"code":111696,"language":111477,"meta":30,"style":30},"const grpc = require('@grpc/grpc-js');\nconst protoLoader = require('@grpc/proto-loader');\n\nconst packageDef = protoLoader.loadSync('hello.proto');\nconst proto = grpc.loadPackageDefinition(packageDef).hello;\n\nconst client = new proto.Greeter(\n  'localhost:50051',\n  grpc.credentials.createInsecure()\n);\n\nclient.sayHello({ name: 'World' }, (err, response) => {\n  console.log(response.message);  // \"Hello, World!\"\n});\n",[20,111698,111699,111715,111731,111735,111753,111767,111771,111789,111796,111805,111809,111813,111839,111851],{"__ignoreMap":30},[34,111700,111701,111703,111705,111707,111709,111711,111713],{"class":36,"line":37},[34,111702,14676],{"class":580},[34,111704,111486],{"class":50},[34,111706,683],{"class":580},[34,111708,111491],{"class":47},[34,111710,1607],{"class":181},[34,111712,111496],{"class":54},[34,111714,1586],{"class":181},[34,111716,111717,111719,111721,111723,111725,111727,111729],{"class":36,"line":44},[34,111718,14676],{"class":580},[34,111720,111505],{"class":50},[34,111722,683],{"class":580},[34,111724,111491],{"class":47},[34,111726,1607],{"class":181},[34,111728,111514],{"class":54},[34,111730,1586],{"class":181},[34,111732,111733],{"class":36,"line":58},[34,111734,62],{"emptyLinePlaceholder":61},[34,111736,111737,111739,111741,111743,111745,111747,111749,111751],{"class":36,"line":65},[34,111738,14676],{"class":580},[34,111740,111527],{"class":50},[34,111742,683],{"class":580},[34,111744,111532],{"class":181},[34,111746,111535],{"class":47},[34,111748,1607],{"class":181},[34,111750,111540],{"class":54},[34,111752,1586],{"class":181},[34,111754,111755,111757,111759,111761,111763,111765],{"class":36,"line":71},[34,111756,14676],{"class":580},[34,111758,111549],{"class":50},[34,111760,683],{"class":580},[34,111762,111554],{"class":181},[34,111764,111557],{"class":47},[34,111766,111560],{"class":181},[34,111768,111769],{"class":36,"line":77},[34,111770,62],{"emptyLinePlaceholder":61},[34,111772,111773,111775,111777,111779,111781,111784,111787],{"class":36,"line":82},[34,111774,14676],{"class":580},[34,111776,33848],{"class":50},[34,111778,683],{"class":580},[34,111780,809],{"class":580},[34,111782,111783],{"class":181}," proto.",[34,111785,111786],{"class":47},"Greeter",[34,111788,1882],{"class":181},[34,111790,111791,111794],{"class":36,"line":88},[34,111792,111793],{"class":54},"  'localhost:50051'",[34,111795,624],{"class":181},[34,111797,111798,111801,111803],{"class":36,"line":242},[34,111799,111800],{"class":181},"  grpc.credentials.",[34,111802,111669],{"class":47},[34,111804,33899],{"class":181},[34,111806,111807],{"class":36,"line":250},[34,111808,1586],{"class":181},[34,111810,111811],{"class":36,"line":263},[34,111812,62],{"emptyLinePlaceholder":61},[34,111814,111815,111818,111821,111823,111825,111827,111829,111831,111833,111835,111837],{"class":36,"line":275},[34,111816,111817],{"class":181},"client.",[34,111819,111820],{"class":47},"sayHello",[34,111822,14862],{"class":181},[34,111824,76879],{"class":54},[34,111826,47787],{"class":181},[34,111828,20566],{"class":675},[34,111830,1798],{"class":181},[34,111832,1892],{"class":675},[34,111834,4817],{"class":181},[34,111836,3361],{"class":580},[34,111838,661],{"class":181},[34,111840,111841,111843,111845,111848],{"class":36,"line":700},[34,111842,14929],{"class":181},[34,111844,2424],{"class":47},[34,111846,111847],{"class":181},"(response.message);  ",[34,111849,111850],{"class":40},"// \"Hello, World!\"\n",[34,111852,111853],{"class":36,"line":706},[34,111854,14873],{"class":181},[11,111856,111858],{"id":111857},"server-streaming","Server Streaming",[25,111860,111862],{"className":111475,"code":111861,"language":111477,"meta":30,"style":30},"// Server side\nfunction sayHelloStream(call) {\n  for (let i = 0; i \u003C 5; i++) {\n    call.write({ message: `Hello ${i}` });\n  }\n  call.end();\n}\n\n// Client side\nconst stream = client.sayHelloStream({ name: 'World' });\nstream.on('data', (chunk) => console.log(chunk.message));\nstream.on('end', () => console.log('Stream ended'));\n",[20,111863,111864,111869,111882,111908,111926,111930,111939,111943,111947,111952,111972,112000],{"__ignoreMap":30},[34,111865,111866],{"class":36,"line":37},[34,111867,111868],{"class":40},"// Server side\n",[34,111870,111871,111873,111876,111878,111880],{"class":36,"line":44},[34,111872,11044],{"class":580},[34,111874,111875],{"class":47}," sayHelloStream",[34,111877,1607],{"class":181},[34,111879,111575],{"class":675},[34,111881,2416],{"class":181},[34,111883,111884,111886,111888,111890,111892,111894,111896,111898,111900,111902,111904,111906],{"class":36,"line":58},[34,111885,52076],{"class":580},[34,111887,3204],{"class":181},[34,111889,8268],{"class":580},[34,111891,10300],{"class":181},[34,111893,1301],{"class":580},[34,111895,8070],{"class":50},[34,111897,18263],{"class":181},[34,111899,815],{"class":580},[34,111901,11144],{"class":50},[34,111903,11918],{"class":181},[34,111905,11928],{"class":580},[34,111907,2416],{"class":181},[34,111909,111910,111913,111915,111917,111920,111922,111924],{"class":36,"line":65},[34,111911,111912],{"class":181},"    call.",[34,111914,15067],{"class":47},[34,111916,15561],{"class":181},[34,111918,111919],{"class":54},"`Hello ${",[34,111921,77335],{"class":181},[34,111923,3925],{"class":54},[34,111925,15567],{"class":181},[34,111927,111928],{"class":36,"line":71},[34,111929,857],{"class":181},[34,111931,111932,111935,111937],{"class":36,"line":77},[34,111933,111934],{"class":181},"  call.",[34,111936,40488],{"class":47},[34,111938,851],{"class":181},[34,111940,111941],{"class":36,"line":82},[34,111942,693],{"class":181},[34,111944,111945],{"class":36,"line":88},[34,111946,62],{"emptyLinePlaceholder":61},[34,111948,111949],{"class":36,"line":242},[34,111950,111951],{"class":40},"// Client side\n",[34,111953,111954,111956,111959,111961,111963,111966,111968,111970],{"class":36,"line":250},[34,111955,14676],{"class":580},[34,111957,111958],{"class":50}," stream",[34,111960,683],{"class":580},[34,111962,33866],{"class":181},[34,111964,111965],{"class":47},"sayHelloStream",[34,111967,14862],{"class":181},[34,111969,76879],{"class":54},[34,111971,15567],{"class":181},[34,111973,111974,111977,111979,111981,111984,111986,111989,111991,111993,111995,111997],{"class":36,"line":263},[34,111975,111976],{"class":181},"stream.",[34,111978,190],{"class":47},[34,111980,1607],{"class":181},[34,111982,111983],{"class":54},"'data'",[34,111985,75504],{"class":181},[34,111987,111988],{"class":675},"chunk",[34,111990,4817],{"class":181},[34,111992,3361],{"class":580},[34,111994,4940],{"class":181},[34,111996,2424],{"class":47},[34,111998,111999],{"class":181},"(chunk.message));\n",[34,112001,112002,112004,112006,112008,112011,112013,112015,112017,112019,112021,112024],{"class":36,"line":275},[34,112003,111976],{"class":181},[34,112005,190],{"class":47},[34,112007,1607],{"class":181},[34,112009,112010],{"class":54},"'end'",[34,112012,17258],{"class":181},[34,112014,3361],{"class":580},[34,112016,4940],{"class":181},[34,112018,2424],{"class":47},[34,112020,1607],{"class":181},[34,112022,112023],{"class":54},"'Stream ended'",[34,112025,15223],{"class":181},[11,112027,112029],{"id":112028},"tls-auth","TLS / Auth",[25,112031,112033],{"className":111475,"code":112032,"language":111477,"meta":30,"style":30},"// Server with TLS\nconst credentials = grpc.ServerCredentials.createSsl(\n  fs.readFileSync('ca.crt'),\n  [{ private_key: fs.readFileSync('server.key'), cert_chain: fs.readFileSync('server.crt') }],\n  true\n);\n\n// Client with TLS\nconst creds = grpc.credentials.createSsl(fs.readFileSync('ca.crt'));\nconst client = new proto.Greeter('localhost:50051', creds);\n",[20,112034,112035,112040,112057,112072,112097,112102,112106,112110,112115,112140],{"__ignoreMap":30},[34,112036,112037],{"class":36,"line":37},[34,112038,112039],{"class":40},"// Server with TLS\n",[34,112041,112042,112044,112047,112049,112052,112055],{"class":36,"line":44},[34,112043,14676],{"class":580},[34,112045,112046],{"class":50}," credentials",[34,112048,683],{"class":580},[34,112050,112051],{"class":181}," grpc.ServerCredentials.",[34,112053,112054],{"class":47},"createSsl",[34,112056,1882],{"class":181},[34,112058,112059,112062,112065,112067,112070],{"class":36,"line":58},[34,112060,112061],{"class":181},"  fs.",[34,112063,112064],{"class":47},"readFileSync",[34,112066,1607],{"class":181},[34,112068,112069],{"class":54},"'ca.crt'",[34,112071,50836],{"class":181},[34,112073,112074,112077,112079,112081,112084,112087,112089,112091,112094],{"class":36,"line":65},[34,112075,112076],{"class":181},"  [{ private_key: fs.",[34,112078,112064],{"class":47},[34,112080,1607],{"class":181},[34,112082,112083],{"class":54},"'server.key'",[34,112085,112086],{"class":181},"), cert_chain: fs.",[34,112088,112064],{"class":47},[34,112090,1607],{"class":181},[34,112092,112093],{"class":54},"'server.crt'",[34,112095,112096],{"class":181},") }],\n",[34,112098,112099],{"class":36,"line":71},[34,112100,112101],{"class":50},"  true\n",[34,112103,112104],{"class":36,"line":77},[34,112105,1586],{"class":181},[34,112107,112108],{"class":36,"line":82},[34,112109,62],{"emptyLinePlaceholder":61},[34,112111,112112],{"class":36,"line":88},[34,112113,112114],{"class":40},"// Client with TLS\n",[34,112116,112117,112119,112122,112124,112127,112129,112132,112134,112136,112138],{"class":36,"line":242},[34,112118,14676],{"class":580},[34,112120,112121],{"class":50}," creds",[34,112123,683],{"class":580},[34,112125,112126],{"class":181}," grpc.credentials.",[34,112128,112054],{"class":47},[34,112130,112131],{"class":181},"(fs.",[34,112133,112064],{"class":47},[34,112135,1607],{"class":181},[34,112137,112069],{"class":54},[34,112139,15223],{"class":181},[34,112141,112142,112144,112146,112148,112150,112152,112154,112156,112159],{"class":36,"line":250},[34,112143,14676],{"class":580},[34,112145,33848],{"class":50},[34,112147,683],{"class":580},[34,112149,809],{"class":580},[34,112151,111783],{"class":181},[34,112153,111786],{"class":47},[34,112155,1607],{"class":181},[34,112157,112158],{"class":54},"'localhost:50051'",[34,112160,112161],{"class":181},", creds);\n",[11,112163,112165],{"id":112164},"grpc-status-codes","gRPC Status Codes",[25,112167,112169],{"className":111475,"code":112168,"language":111477,"meta":30,"style":30},"const grpc = require('@grpc/grpc-js');\n\n// Common status codes\ngrpc.status.OK            // 0 - success\ngrpc.status.NOT_FOUND     // 5 - resource not found\ngrpc.status.INVALID_ARGUMENT  // 3 - bad input\ngrpc.status.UNAUTHENTICATED   // 16 - auth required\ngrpc.status.INTERNAL      // 13 - server error\n\n// Return error from handler\ncallback({\n  code: grpc.status.NOT_FOUND,\n  message: 'User not found'\n});\n",[20,112170,112171,112187,112191,112196,112207,112217,112227,112237,112247,112251,112256,112262,112271,112278],{"__ignoreMap":30},[34,112172,112173,112175,112177,112179,112181,112183,112185],{"class":36,"line":37},[34,112174,14676],{"class":580},[34,112176,111486],{"class":50},[34,112178,683],{"class":580},[34,112180,111491],{"class":47},[34,112182,1607],{"class":181},[34,112184,111496],{"class":54},[34,112186,1586],{"class":181},[34,112188,112189],{"class":36,"line":44},[34,112190,62],{"emptyLinePlaceholder":61},[34,112192,112193],{"class":36,"line":58},[34,112194,112195],{"class":40},"// Common status codes\n",[34,112197,112198,112201,112204],{"class":36,"line":65},[34,112199,112200],{"class":181},"grpc.status.",[34,112202,112203],{"class":50},"OK",[34,112205,112206],{"class":40},"            // 0 - success\n",[34,112208,112209,112211,112214],{"class":36,"line":71},[34,112210,112200],{"class":181},[34,112212,112213],{"class":50},"NOT_FOUND",[34,112215,112216],{"class":40},"     // 5 - resource not found\n",[34,112218,112219,112221,112224],{"class":36,"line":77},[34,112220,112200],{"class":181},[34,112222,112223],{"class":50},"INVALID_ARGUMENT",[34,112225,112226],{"class":40},"  // 3 - bad input\n",[34,112228,112229,112231,112234],{"class":36,"line":82},[34,112230,112200],{"class":181},[34,112232,112233],{"class":50},"UNAUTHENTICATED",[34,112235,112236],{"class":40},"   // 16 - auth required\n",[34,112238,112239,112241,112244],{"class":36,"line":88},[34,112240,112200],{"class":181},[34,112242,112243],{"class":50},"INTERNAL",[34,112245,112246],{"class":40},"      // 13 - server error\n",[34,112248,112249],{"class":36,"line":242},[34,112250,62],{"emptyLinePlaceholder":61},[34,112252,112253],{"class":36,"line":250},[34,112254,112255],{"class":40},"// Return error from handler\n",[34,112257,112258,112260],{"class":36,"line":263},[34,112259,111580],{"class":47},[34,112261,613],{"class":181},[34,112263,112264,112267,112269],{"class":36,"line":275},[34,112265,112266],{"class":181},"  code: grpc.status.",[34,112268,112213],{"class":50},[34,112270,624],{"class":181},[34,112272,112273,112275],{"class":36,"line":700},[34,112274,77138],{"class":181},[34,112276,112277],{"class":54},"'User not found'\n",[34,112279,112280],{"class":36,"line":706},[34,112281,14873],{"class":181},[388,112283,112284],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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}",{"title":30,"searchDepth":44,"depth":44,"links":112286},[112287,112288,112289,112290,112291,112292,112293],{"id":111361,"depth":44,"text":111362},{"id":111382,"depth":44,"text":111383},{"id":111471,"depth":44,"text":111472},{"id":111692,"depth":44,"text":111693},{"id":111857,"depth":44,"text":111858},{"id":112028,"depth":44,"text":112029},{"id":112164,"depth":44,"text":112165},"A high-performance, open-source RPC framework using Protocol Buffers and HTTP/2.",{},"/grpc/overview",{"title":111356,"description":112294},"grpc/overview","grpc",[112299,112301,111388,112302,112303],"rpc","http2","microservices","bdgPa4U9qm9sNu7yhjjwKZDQr3RcORSIWhXZQ4cMJ1U",{"id":112306,"title":102,"body":112307,"date":402,"description":113214,"extension":404,"meta":113215,"navigation":61,"order":37,"path":113216,"seo":113217,"stem":113218,"subject":102,"tags":113219,"__hash__":113221},"topics/h3/overview.md",{"type":8,"value":112308,"toc":113203},[112309,112311,112358,112362,112484,112488,112515,112519,112654,112658,112774,112778,112922,112924,113003,113005,113115,113119,113201],[11,112310,97],{"id":96},[25,112312,112314],{"className":27,"code":112313,"language":29,"meta":30,"style":30},"# Install as npm package (Node.js / Bun)\nnpm i h3\n\n# Import from CDN (Deno, Cloudflare Workers, etc.)\nimport { createApp, toWebHandler } from \"https://esm.sh/h3\"\n",[20,112315,112316,112321,112330,112334,112339],{"__ignoreMap":30},[34,112317,112318],{"class":36,"line":37},[34,112319,112320],{"class":40},"# Install as npm package (Node.js / Bun)\n",[34,112322,112323,112325,112327],{"class":36,"line":44},[34,112324,8177],{"class":47},[34,112326,13765],{"class":54},[34,112328,112329],{"class":54}," h3\n",[34,112331,112332],{"class":36,"line":58},[34,112333,62],{"emptyLinePlaceholder":61},[34,112335,112336],{"class":36,"line":65},[34,112337,112338],{"class":40},"# Import from CDN (Deno, Cloudflare Workers, etc.)\n",[34,112340,112341,112343,112345,112348,112351,112353,112355],{"class":36,"line":71},[34,112342,581],{"class":47},[34,112344,11838],{"class":54},[34,112346,112347],{"class":54}," createApp,",[34,112349,112350],{"class":54}," toWebHandler",[34,112352,85138],{"class":54},[34,112354,36370],{"class":54},[34,112356,112357],{"class":54}," \"https://esm.sh/h3\"\n",[11,112359,112361],{"id":112360},"basic-app","Basic App",[25,112363,112365],{"className":91533,"code":112364,"language":91535,"meta":30,"style":30},"import { createApp, createRouter, defineEventHandler } from \"h3\"\n\n// Create the app instance\nexport const app = createApp()\n\n// Create a router and attach to app\nconst router = createRouter()\napp.use(router)\n\n// Define a GET route\nrouter.get(\"/\", defineEventHandler((event) => {\n  return { message: \"Hello from h3!\" }\n}))\n",[20,112366,112367,112379,112383,112388,112403,112407,112412,112425,112434,112438,112443,112468,112480],{"__ignoreMap":30},[34,112368,112369,112371,112374,112376],{"class":36,"line":37},[34,112370,581],{"class":580},[34,112372,112373],{"class":181}," { createApp, createRouter, defineEventHandler } ",[34,112375,587],{"class":580},[34,112377,112378],{"class":54}," \"h3\"\n",[34,112380,112381],{"class":36,"line":44},[34,112382,62],{"emptyLinePlaceholder":61},[34,112384,112385],{"class":36,"line":58},[34,112386,112387],{"class":40},"// Create the app instance\n",[34,112389,112390,112392,112394,112396,112398,112401],{"class":36,"line":65},[34,112391,652],{"class":580},[34,112393,3291],{"class":580},[34,112395,7253],{"class":50},[34,112397,683],{"class":580},[34,112399,112400],{"class":47}," createApp",[34,112402,33899],{"class":181},[34,112404,112405],{"class":36,"line":71},[34,112406,62],{"emptyLinePlaceholder":61},[34,112408,112409],{"class":36,"line":77},[34,112410,112411],{"class":40},"// Create a router and attach to app\n",[34,112413,112414,112416,112418,112420,112423],{"class":36,"line":82},[34,112415,14676],{"class":580},[34,112417,3536],{"class":50},[34,112419,683],{"class":580},[34,112421,112422],{"class":47}," createRouter",[34,112424,33899],{"class":181},[34,112426,112427,112429,112431],{"class":36,"line":88},[34,112428,75403],{"class":181},[34,112430,61898],{"class":47},[34,112432,112433],{"class":181},"(router)\n",[34,112435,112436],{"class":36,"line":242},[34,112437,62],{"emptyLinePlaceholder":61},[34,112439,112440],{"class":36,"line":250},[34,112441,112442],{"class":40},"// Define a GET route\n",[34,112444,112445,112447,112449,112451,112453,112455,112458,112460,112462,112464,112466],{"class":36,"line":263},[34,112446,76543],{"class":181},[34,112448,1573],{"class":47},[34,112450,1607],{"class":181},[34,112452,81654],{"class":54},[34,112454,1798],{"class":181},[34,112456,112457],{"class":47},"defineEventHandler",[34,112459,8348],{"class":181},[34,112461,72497],{"class":675},[34,112463,4817],{"class":181},[34,112465,3361],{"class":580},[34,112467,661],{"class":181},[34,112469,112470,112472,112475,112478],{"class":36,"line":275},[34,112471,8155],{"class":580},[34,112473,112474],{"class":181}," { message: ",[34,112476,112477],{"class":54},"\"Hello from h3!\"",[34,112479,52786],{"class":181},[34,112481,112482],{"class":36,"line":700},[34,112483,76987],{"class":181},[11,112485,112487],{"id":112486},"running-locally","Running Locally",[25,112489,112491],{"className":27,"code":112490,"language":29,"meta":30,"style":30},"# Run with listhen (zero-config, TypeScript support)\nnpx --yes listhen -w --open ./app.ts\n",[20,112492,112493,112498],{"__ignoreMap":30},[34,112494,112495],{"class":36,"line":37},[34,112496,112497],{"class":40},"# Run with listhen (zero-config, TypeScript support)\n",[34,112499,112500,112502,112504,112507,112509,112512],{"class":36,"line":44},[34,112501,8205],{"class":47},[34,112503,98865],{"class":50},[34,112505,112506],{"class":54}," listhen",[34,112508,44733],{"class":50},[34,112510,112511],{"class":50}," --open",[34,112513,112514],{"class":54}," ./app.ts\n",[11,112516,112518],{"id":112517},"route-parameters-methods","Route Parameters & Methods",[25,112520,112522],{"className":91533,"code":112521,"language":91535,"meta":30,"style":30},"// Route with URL params\nrouter.get(\"/users/:id\", defineEventHandler((event) => {\n  const { id } = event.context.params!  // access route params\n  return { userId: id }\n}))\n\n// POST route\nrouter.post(\"/users\", defineEventHandler(async (event) => {\n  const body = await readBody(event)    // parse request body\n  return { created: body }\n}))\n",[20,112523,112524,112529,112554,112574,112581,112585,112589,112594,112623,112643,112650],{"__ignoreMap":30},[34,112525,112526],{"class":36,"line":37},[34,112527,112528],{"class":40},"// Route with URL params\n",[34,112530,112531,112533,112535,112537,112540,112542,112544,112546,112548,112550,112552],{"class":36,"line":44},[34,112532,76543],{"class":181},[34,112534,1573],{"class":47},[34,112536,1607],{"class":181},[34,112538,112539],{"class":54},"\"/users/:id\"",[34,112541,1798],{"class":181},[34,112543,112457],{"class":47},[34,112545,8348],{"class":181},[34,112547,72497],{"class":675},[34,112549,4817],{"class":181},[34,112551,3361],{"class":580},[34,112553,661],{"class":181},[34,112555,112556,112558,112560,112562,112564,112566,112569,112571],{"class":36,"line":58},[34,112557,17415],{"class":580},[34,112559,30251],{"class":181},[34,112561,3885],{"class":50},[34,112563,34865],{"class":181},[34,112565,1301],{"class":580},[34,112567,112568],{"class":181}," event.context.params",[34,112570,10307],{"class":580},[34,112572,112573],{"class":40},"  // access route params\n",[34,112575,112576,112578],{"class":36,"line":65},[34,112577,8155],{"class":580},[34,112579,112580],{"class":181}," { userId: id }\n",[34,112582,112583],{"class":36,"line":71},[34,112584,76987],{"class":181},[34,112586,112587],{"class":36,"line":77},[34,112588,62],{"emptyLinePlaceholder":61},[34,112590,112591],{"class":36,"line":82},[34,112592,112593],{"class":40},"// POST route\n",[34,112595,112596,112598,112600,112602,112605,112607,112609,112611,112613,112615,112617,112619,112621],{"class":36,"line":88},[34,112597,76543],{"class":181},[34,112599,1730],{"class":47},[34,112601,1607],{"class":181},[34,112603,112604],{"class":54},"\"/users\"",[34,112606,1798],{"class":181},[34,112608,112457],{"class":47},[34,112610,1607],{"class":181},[34,112612,17403],{"class":580},[34,112614,3204],{"class":181},[34,112616,72497],{"class":675},[34,112618,4817],{"class":181},[34,112620,3361],{"class":580},[34,112622,661],{"class":181},[34,112624,112625,112627,112630,112632,112634,112637,112640],{"class":36,"line":242},[34,112626,17415],{"class":580},[34,112628,112629],{"class":50}," body",[34,112631,683],{"class":580},[34,112633,14763],{"class":580},[34,112635,112636],{"class":47}," readBody",[34,112638,112639],{"class":181},"(event)    ",[34,112641,112642],{"class":40},"// parse request body\n",[34,112644,112645,112647],{"class":36,"line":250},[34,112646,8155],{"class":580},[34,112648,112649],{"class":181}," { created: body }\n",[34,112651,112652],{"class":36,"line":263},[34,112653,76987],{"class":181},[11,112655,112657],{"id":112656},"reading-request-data","Reading Request Data",[25,112659,112661],{"className":91533,"code":112660,"language":91535,"meta":30,"style":30},"import { readBody, getQuery, getHeaders, getCookie } from \"h3\"\n\ndefineEventHandler(async (event) => {\n  const body = await readBody(event)        // parse JSON body\n  const query = getQuery(event)             // ?foo=bar → { foo: 'bar' }\n  const headers = getHeaders(event)         // all request headers\n  const token = getCookie(event, \"token\")   // read a cookie\n})\n",[20,112662,112663,112674,112678,112696,112714,112731,112748,112770],{"__ignoreMap":30},[34,112664,112665,112667,112670,112672],{"class":36,"line":37},[34,112666,581],{"class":580},[34,112668,112669],{"class":181}," { readBody, getQuery, getHeaders, getCookie } ",[34,112671,587],{"class":580},[34,112673,112378],{"class":54},[34,112675,112676],{"class":36,"line":44},[34,112677,62],{"emptyLinePlaceholder":61},[34,112679,112680,112682,112684,112686,112688,112690,112692,112694],{"class":36,"line":58},[34,112681,112457],{"class":47},[34,112683,1607],{"class":181},[34,112685,17403],{"class":580},[34,112687,3204],{"class":181},[34,112689,72497],{"class":675},[34,112691,4817],{"class":181},[34,112693,3361],{"class":580},[34,112695,661],{"class":181},[34,112697,112698,112700,112702,112704,112706,112708,112711],{"class":36,"line":65},[34,112699,17415],{"class":580},[34,112701,112629],{"class":50},[34,112703,683],{"class":580},[34,112705,14763],{"class":580},[34,112707,112636],{"class":47},[34,112709,112710],{"class":181},"(event)        ",[34,112712,112713],{"class":40},"// parse JSON body\n",[34,112715,112716,112718,112720,112722,112725,112728],{"class":36,"line":71},[34,112717,17415],{"class":580},[34,112719,17128],{"class":50},[34,112721,683],{"class":580},[34,112723,112724],{"class":47}," getQuery",[34,112726,112727],{"class":181},"(event)             ",[34,112729,112730],{"class":40},"// ?foo=bar → { foo: 'bar' }\n",[34,112732,112733,112735,112737,112739,112742,112745],{"class":36,"line":77},[34,112734,17415],{"class":580},[34,112736,1779],{"class":50},[34,112738,683],{"class":580},[34,112740,112741],{"class":47}," getHeaders",[34,112743,112744],{"class":181},"(event)         ",[34,112746,112747],{"class":40},"// all request headers\n",[34,112749,112750,112752,112754,112756,112759,112762,112765,112767],{"class":36,"line":82},[34,112751,17415],{"class":580},[34,112753,72656],{"class":50},[34,112755,683],{"class":580},[34,112757,112758],{"class":47}," getCookie",[34,112760,112761],{"class":181},"(event, ",[34,112763,112764],{"class":54},"\"token\"",[34,112766,103720],{"class":181},[34,112768,112769],{"class":40},"// read a cookie\n",[34,112771,112772],{"class":36,"line":88},[34,112773,647],{"class":181},[11,112775,112777],{"id":112776},"sending-responses","Sending Responses",[25,112779,112781],{"className":91533,"code":112780,"language":91535,"meta":30,"style":30},"import { setHeader, setCookie, sendRedirect, createError } from \"h3\"\n\ndefineEventHandler((event) => {\n  setHeader(event, \"X-Custom\", \"value\")             // set response header\n  setCookie(event, \"session\", \"abc\", { httpOnly: true }) // set cookie\n\n  // Return plain text\n  return \"Hello!\"\n\n  // Return JSON (auto-serialized)\n  return { ok: true }\n\n  // Redirect\n  return sendRedirect(event, \"/new-path\", 301)\n})\n",[20,112782,112783,112794,112798,112812,112830,112855,112859,112864,112871,112875,112880,112891,112895,112900,112918],{"__ignoreMap":30},[34,112784,112785,112787,112790,112792],{"class":36,"line":37},[34,112786,581],{"class":580},[34,112788,112789],{"class":181}," { setHeader, setCookie, sendRedirect, createError } ",[34,112791,587],{"class":580},[34,112793,112378],{"class":54},[34,112795,112796],{"class":36,"line":44},[34,112797,62],{"emptyLinePlaceholder":61},[34,112799,112800,112802,112804,112806,112808,112810],{"class":36,"line":58},[34,112801,112457],{"class":47},[34,112803,8348],{"class":181},[34,112805,72497],{"class":675},[34,112807,4817],{"class":181},[34,112809,3361],{"class":580},[34,112811,661],{"class":181},[34,112813,112814,112817,112819,112822,112824,112826,112828],{"class":36,"line":65},[34,112815,112816],{"class":47},"  setHeader",[34,112818,112761],{"class":181},[34,112820,112821],{"class":54},"\"X-Custom\"",[34,112823,1798],{"class":181},[34,112825,16847],{"class":54},[34,112827,104305],{"class":181},[34,112829,76125],{"class":40},[34,112831,112832,112835,112837,112840,112842,112845,112848,112850,112852],{"class":36,"line":71},[34,112833,112834],{"class":47},"  setCookie",[34,112836,112761],{"class":181},[34,112838,112839],{"class":54},"\"session\"",[34,112841,1798],{"class":181},[34,112843,112844],{"class":54},"\"abc\"",[34,112846,112847],{"class":181},", { httpOnly: ",[34,112849,632],{"class":50},[34,112851,59911],{"class":181},[34,112853,112854],{"class":40},"// set cookie\n",[34,112856,112857],{"class":36,"line":77},[34,112858,62],{"emptyLinePlaceholder":61},[34,112860,112861],{"class":36,"line":82},[34,112862,112863],{"class":40},"  // Return plain text\n",[34,112865,112866,112868],{"class":36,"line":88},[34,112867,8155],{"class":580},[34,112869,112870],{"class":54}," \"Hello!\"\n",[34,112872,112873],{"class":36,"line":242},[34,112874,62],{"emptyLinePlaceholder":61},[34,112876,112877],{"class":36,"line":250},[34,112878,112879],{"class":40},"  // Return JSON (auto-serialized)\n",[34,112881,112882,112884,112887,112889],{"class":36,"line":263},[34,112883,8155],{"class":580},[34,112885,112886],{"class":181}," { ok: ",[34,112888,632],{"class":50},[34,112890,52786],{"class":181},[34,112892,112893],{"class":36,"line":275},[34,112894,62],{"emptyLinePlaceholder":61},[34,112896,112897],{"class":36,"line":700},[34,112898,112899],{"class":40},"  // Redirect\n",[34,112901,112902,112904,112907,112909,112912,112914,112916],{"class":36,"line":706},[34,112903,8155],{"class":580},[34,112905,112906],{"class":47}," sendRedirect",[34,112908,112761],{"class":181},[34,112910,112911],{"class":54},"\"/new-path\"",[34,112913,1798],{"class":181},[34,112915,76153],{"class":50},[34,112917,3372],{"class":181},[34,112919,112920],{"class":36,"line":715},[34,112921,647],{"class":181},[11,112923,19352],{"id":19357},[25,112925,112927],{"className":91533,"code":112926,"language":91535,"meta":30,"style":30},"import { createError, defineEventHandler } from \"h3\"\n\ndefineEventHandler((event) => {\n  throw createError({\n    statusCode: 404,\n    statusMessage: \"Not Found\",\n    message: \"User does not exist\",\n  })\n})\n",[20,112928,112929,112940,112944,112958,112967,112976,112985,112995,112999],{"__ignoreMap":30},[34,112930,112931,112933,112936,112938],{"class":36,"line":37},[34,112932,581],{"class":580},[34,112934,112935],{"class":181}," { createError, defineEventHandler } ",[34,112937,587],{"class":580},[34,112939,112378],{"class":54},[34,112941,112942],{"class":36,"line":44},[34,112943,62],{"emptyLinePlaceholder":61},[34,112945,112946,112948,112950,112952,112954,112956],{"class":36,"line":58},[34,112947,112457],{"class":47},[34,112949,8348],{"class":181},[34,112951,72497],{"class":675},[34,112953,4817],{"class":181},[34,112955,3361],{"class":580},[34,112957,661],{"class":181},[34,112959,112960,112962,112965],{"class":36,"line":65},[34,112961,70787],{"class":580},[34,112963,112964],{"class":47}," createError",[34,112966,613],{"class":181},[34,112968,112969,112972,112974],{"class":36,"line":71},[34,112970,112971],{"class":181},"    statusCode: ",[34,112973,15630],{"class":50},[34,112975,624],{"class":181},[34,112977,112978,112981,112983],{"class":36,"line":77},[34,112979,112980],{"class":181},"    statusMessage: ",[34,112982,15624],{"class":54},[34,112984,624],{"class":181},[34,112986,112987,112990,112993],{"class":36,"line":82},[34,112988,112989],{"class":181},"    message: ",[34,112991,112992],{"class":54},"\"User does not exist\"",[34,112994,624],{"class":181},[34,112996,112997],{"class":36,"line":88},[34,112998,62121],{"class":181},[34,113000,113001],{"class":36,"line":242},[34,113002,647],{"class":181},[11,113004,76171],{"id":76170},[25,113006,113008],{"className":91533,"code":113007,"language":91535,"meta":30,"style":30},"// App-level middleware (runs on every request)\napp.use(defineEventHandler((event) => {\n  console.log(`${event.method} ${event.path}`)\n  // Return nothing to pass to next handler\n}))\n\n// Scoped middleware\napp.use(\"/api\", defineEventHandler((event) => {\n  // Runs only for /api/* routes\n}))\n",[20,113009,113010,113015,113035,113063,113068,113072,113076,113081,113106,113111],{"__ignoreMap":30},[34,113011,113012],{"class":36,"line":37},[34,113013,113014],{"class":40},"// App-level middleware (runs on every request)\n",[34,113016,113017,113019,113021,113023,113025,113027,113029,113031,113033],{"class":36,"line":44},[34,113018,75403],{"class":181},[34,113020,61898],{"class":47},[34,113022,1607],{"class":181},[34,113024,112457],{"class":47},[34,113026,8348],{"class":181},[34,113028,72497],{"class":675},[34,113030,4817],{"class":181},[34,113032,3361],{"class":580},[34,113034,661],{"class":181},[34,113036,113037,113039,113041,113043,113045,113047,113049,113051,113053,113055,113057,113059,113061],{"class":36,"line":58},[34,113038,14929],{"class":181},[34,113040,2424],{"class":47},[34,113042,1607],{"class":181},[34,113044,3910],{"class":54},[34,113046,72497],{"class":181},[34,113048,151],{"class":54},[34,113050,76222],{"class":181},[34,113052,71832],{"class":54},[34,113054,72497],{"class":181},[34,113056,151],{"class":54},[34,113058,20404],{"class":181},[34,113060,3925],{"class":54},[34,113062,3372],{"class":181},[34,113064,113065],{"class":36,"line":65},[34,113066,113067],{"class":40},"  // Return nothing to pass to next handler\n",[34,113069,113070],{"class":36,"line":71},[34,113071,76987],{"class":181},[34,113073,113074],{"class":36,"line":77},[34,113075,62],{"emptyLinePlaceholder":61},[34,113077,113078],{"class":36,"line":82},[34,113079,113080],{"class":40},"// Scoped middleware\n",[34,113082,113083,113085,113087,113089,113092,113094,113096,113098,113100,113102,113104],{"class":36,"line":88},[34,113084,75403],{"class":181},[34,113086,61898],{"class":47},[34,113088,1607],{"class":181},[34,113090,113091],{"class":54},"\"/api\"",[34,113093,1798],{"class":181},[34,113095,112457],{"class":47},[34,113097,8348],{"class":181},[34,113099,72497],{"class":675},[34,113101,4817],{"class":181},[34,113103,3361],{"class":580},[34,113105,661],{"class":181},[34,113107,113108],{"class":36,"line":242},[34,113109,113110],{"class":40},"  // Runs only for /api/* routes\n",[34,113112,113113],{"class":36,"line":250},[34,113114,76987],{"class":181},[11,113116,113118],{"id":113117},"web-adapter-cloudflare-workers-deno","Web Adapter (Cloudflare Workers / Deno)",[25,113120,113122],{"className":91533,"code":113121,"language":91535,"meta":30,"style":30},"import { createApp, toWebHandler } from \"h3\"\n\nexport const app = createApp()\n// ... define routes\n\n// Convert app to standard Web fetch handler\nexport const handler = toWebHandler(app)\n\n// Cloudflare Workers\nexport default { fetch: handler }\n",[20,113123,113124,113135,113139,113153,113158,113162,113167,113183,113187,113192],{"__ignoreMap":30},[34,113125,113126,113128,113131,113133],{"class":36,"line":37},[34,113127,581],{"class":580},[34,113129,113130],{"class":181}," { createApp, toWebHandler } ",[34,113132,587],{"class":580},[34,113134,112378],{"class":54},[34,113136,113137],{"class":36,"line":44},[34,113138,62],{"emptyLinePlaceholder":61},[34,113140,113141,113143,113145,113147,113149,113151],{"class":36,"line":58},[34,113142,652],{"class":580},[34,113144,3291],{"class":580},[34,113146,7253],{"class":50},[34,113148,683],{"class":580},[34,113150,112400],{"class":47},[34,113152,33899],{"class":181},[34,113154,113155],{"class":36,"line":65},[34,113156,113157],{"class":40},"// ... define routes\n",[34,113159,113160],{"class":36,"line":71},[34,113161,62],{"emptyLinePlaceholder":61},[34,113163,113164],{"class":36,"line":77},[34,113165,113166],{"class":40},"// Convert app to standard Web fetch handler\n",[34,113168,113169,113171,113173,113176,113178,113180],{"class":36,"line":82},[34,113170,652],{"class":580},[34,113172,3291],{"class":580},[34,113174,113175],{"class":50}," handler",[34,113177,683],{"class":580},[34,113179,112350],{"class":47},[34,113181,113182],{"class":181},"(app)\n",[34,113184,113185],{"class":36,"line":88},[34,113186,62],{"emptyLinePlaceholder":61},[34,113188,113189],{"class":36,"line":242},[34,113190,113191],{"class":40},"// Cloudflare Workers\n",[34,113193,113194,113196,113198],{"class":36,"line":250},[34,113195,652],{"class":580},[34,113197,7298],{"class":580},[34,113199,113200],{"class":181}," { fetch: handler }\n",[388,113202,78018],{},{"title":30,"searchDepth":44,"depth":44,"links":113204},[113205,113206,113207,113208,113209,113210,113211,113212,113213],{"id":96,"depth":44,"text":97},{"id":112360,"depth":44,"text":112361},{"id":112486,"depth":44,"text":112487},{"id":112517,"depth":44,"text":112518},{"id":112656,"depth":44,"text":112657},{"id":112776,"depth":44,"text":112777},{"id":19357,"depth":44,"text":19352},{"id":76170,"depth":44,"text":76171},{"id":113117,"depth":44,"text":113118},"Lightweight and composable HTTP server framework for JavaScript, designed to work across runtimes via adapters.",{},"/h3/overview",{"title":102,"description":113214},"h3/overview",[102,43043,15678,8606,573,113220],"unjs","Yzhh12P_h1khRfyQ6THnP4Cnu7M4sz553dt3_lTwZLQ",{"id":113223,"title":113224,"body":113225,"date":402,"description":113347,"extension":404,"meta":113348,"navigation":61,"order":37,"path":113349,"seo":113350,"stem":113351,"subject":113274,"tags":113352,"__hash__":113354},"topics/haskell/overview.md","Haskell Basics",{"type":8,"value":113226,"toc":113342},[113227,113231,113234,113260,113263,113267,113270,113301,113307,113309,113312,113336,113339],[11,113228,113230],{"id":113229},"setting-up-haskell","Setting Up Haskell",[16,113232,113233],{},"Use GHCup for easy Haskell installation.",[25,113235,113237],{"className":27,"code":113236,"language":29,"meta":30,"style":30},"curl -sSL https://get-ghcup.haskell.org | sh\nghc --version\n",[20,113238,113239,113253],{"__ignoreMap":30},[34,113240,113241,113243,113246,113249,113251],{"class":36,"line":37},[34,113242,8648],{"class":47},[34,113244,113245],{"class":50}," -sSL",[34,113247,113248],{"class":54}," https://get-ghcup.haskell.org",[34,113250,7197],{"class":580},[34,113252,48093],{"class":47},[34,113254,113255,113258],{"class":36,"line":44},[34,113256,113257],{"class":47},"ghc",[34,113259,5013],{"class":50},[16,113261,113262],{},"This installs GHC (Haskell compiler).",[11,113264,113266],{"id":113265},"types-and-functions","Types and Functions",[16,113268,113269],{},"Haskell is a statically typed language.",[25,113271,113275],{"className":113272,"code":113273,"language":113274,"meta":30,"style":30},"language-haskell shiki shiki-themes github-light github-dark","add :: Int -> Int -> Int\nadd x y = x + y\n\nmain :: IO ()\nmain = putStrLn (show (add 5 3))\n","haskell",[20,113276,113277,113282,113287,113291,113296],{"__ignoreMap":30},[34,113278,113279],{"class":36,"line":37},[34,113280,113281],{},"add :: Int -> Int -> Int\n",[34,113283,113284],{"class":36,"line":44},[34,113285,113286],{},"add x y = x + y\n",[34,113288,113289],{"class":36,"line":58},[34,113290,62],{"emptyLinePlaceholder":61},[34,113292,113293],{"class":36,"line":65},[34,113294,113295],{},"main :: IO ()\n",[34,113297,113298],{"class":36,"line":71},[34,113299,113300],{},"main = putStrLn (show (add 5 3))\n",[16,113302,113303,113304,113306],{},"The function ",[20,113305,11093],{}," takes two integers and returns their sum.",[11,113308,80310],{"id":80309},[16,113310,113311],{},"Lists are core to Haskell.",[25,113313,113315],{"className":113272,"code":113314,"language":113274,"meta":30,"style":30},"sumList :: [Int] -> Int\nsumList = foldr (+) 0\n\nmain = print (sumList [1, 2, 3])\n",[20,113316,113317,113322,113327,113331],{"__ignoreMap":30},[34,113318,113319],{"class":36,"line":37},[34,113320,113321],{},"sumList :: [Int] -> Int\n",[34,113323,113324],{"class":36,"line":44},[34,113325,113326],{},"sumList = foldr (+) 0\n",[34,113328,113329],{"class":36,"line":58},[34,113330,62],{"emptyLinePlaceholder":61},[34,113332,113333],{"class":36,"line":65},[34,113334,113335],{},"main = print (sumList [1, 2, 3])\n",[16,113337,113338],{},"--- Example Content cutoff ---",[388,113340,113341],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":113343},[113344,113345,113346],{"id":113229,"depth":44,"text":113230},{"id":113265,"depth":44,"text":113266},{"id":80309,"depth":44,"text":80310},"Learn the fundamentals of Haskell, including types, functions, and common patterns.",{},"/haskell/overview",{"title":113224,"description":113347},"haskell/overview",[113274,113257,33298,113353,10996],"patterns","NBadViKUS7X-vdNrcsQoNVpBN53ucvCOwAVKIDw7XpY",{"id":113356,"title":113357,"body":113358,"date":402,"description":113602,"extension":404,"meta":113603,"navigation":61,"order":37,"path":113604,"seo":113605,"stem":113606,"subject":113607,"tags":113608,"__hash__":113612},"topics/helix/overview.md","Helix Editor",{"type":8,"value":113359,"toc":113588},[113360,113362,113365,113367,113371,113424,113428,113431,113462,113464,113468,113471,113494,113498,113501,113509,113513,113516,113538,113540,113556,113558,113561,113585],[11,113361,13534],{"id":13533},[16,113363,113364],{},"Helix is a modal text editor that emphasizes precision and simplicity. Its design takes heavy inspiration from Kakoune, favoring selection-first editing models and multiple cursors.",[11,113366,97],{"id":96},[102,113368,113370],{"id":113369},"from-package-manager","From Package Manager",[25,113372,113374],{"className":27,"code":113373,"language":29,"meta":30,"style":30},"# Ubuntu/Debian\nsudo apt install helix\n\n# macOS\nbrew install helix\n\n# Windows\nscoop install helix\n",[20,113375,113376,113380,113391,113395,113399,113407,113411,113416],{"__ignoreMap":30},[34,113377,113378],{"class":36,"line":37},[34,113379,78143],{"class":40},[34,113381,113382,113384,113386,113388],{"class":36,"line":44},[34,113383,436],{"class":47},[34,113385,439],{"class":54},[34,113387,118],{"class":54},[34,113389,113390],{"class":54}," helix\n",[34,113392,113393],{"class":36,"line":58},[34,113394,62],{"emptyLinePlaceholder":61},[34,113396,113397],{"class":36,"line":65},[34,113398,8625],{"class":40},[34,113400,113401,113403,113405],{"class":36,"line":71},[34,113402,115],{"class":47},[34,113404,118],{"class":54},[34,113406,113390],{"class":54},[34,113408,113409],{"class":36,"line":77},[34,113410,62],{"emptyLinePlaceholder":61},[34,113412,113413],{"class":36,"line":82},[34,113414,113415],{"class":40},"# Windows\n",[34,113417,113418,113420,113422],{"class":36,"line":88},[34,113419,91429],{"class":47},[34,113421,118],{"class":54},[34,113423,113390],{"class":54},[102,113425,113427],{"id":113426},"building-from-source","Building from Source",[16,113429,113430],{},"To compile Helix from source, ensure you have Rust installed.",[25,113432,113434],{"className":27,"code":113433,"language":29,"meta":30,"style":30},"git clone https://github.com/helix-editor/helix.git\ncd helix\ncargo install --path .\n",[20,113435,113436,113445,113451],{"__ignoreMap":30},[34,113437,113438,113440,113442],{"class":36,"line":37},[34,113439,7794],{"class":47},[34,113441,7797],{"class":54},[34,113443,113444],{"class":54}," https://github.com/helix-editor/helix.git\n",[34,113446,113447,113449],{"class":36,"line":44},[34,113448,7702],{"class":50},[34,113450,113390],{"class":54},[34,113452,113453,113455,113457,113460],{"class":36,"line":58},[34,113454,88917],{"class":47},[34,113456,118],{"class":54},[34,113458,113459],{"class":50}," --path",[34,113461,56924],{"class":54},[11,113463,8498],{"id":8497},[102,113465,113467],{"id":113466},"modal-editing","Modal Editing",[16,113469,113470],{},"Helix operates in different modes for navigation, editing, and selection:",[309,113472,113473,113479,113488],{},[312,113474,113475,113478],{},[8471,113476,113477],{},"Normal Mode",": Default for commands/navigation.",[312,113480,113481,113484,113485,113487],{},[8471,113482,113483],{},"Insert Mode",": For text input (",[20,113486,77335],{}," to activate).",[312,113489,113490,113493],{},[8471,113491,113492],{},"Visual Mode",": For selecting text and operations.",[102,113495,113497],{"id":113496},"selections","Selections",[16,113499,113500],{},"Helix's selection-first design allows:",[309,113502,113503,113506],{},[312,113504,113505],{},"Multi-cursor edits efficiently.",[312,113507,113508],{},"Selection as the primary action before applying commands (e.g., deleting or yanking).",[102,113510,113512],{"id":113511},"motions","Motions",[16,113514,113515],{},"Efficiently move the cursor via motions.",[25,113517,113519],{"className":27,"code":113518,"language":29,"meta":30,"style":30},"w         # Forward by word\nf\u003Cchar>   # Find specific character on the current line\n",[20,113520,113521,113528],{"__ignoreMap":30},[34,113522,113523,113525],{"class":36,"line":37},[34,113524,100897],{"class":47},[34,113526,113527],{"class":40},"         # Forward by word\n",[34,113529,113530,113532,113535],{"class":36,"line":44},[34,113531,32918],{"class":47},[34,113533,113534],{"class":181},"\u003Cchar>   ",[34,113536,113537],{"class":40},"# Find specific character on the current line\n",[11,113539,28203],{"id":28202},[309,113541,113542,113549],{},[312,113543,113544],{},[145,113545,113548],{"href":113546,"rel":113547},"https://docs.helix-editor.com/",[149],"Helix Documentation",[312,113550,113551],{},[145,113552,113555],{"href":113553,"rel":113554},"https://docs.helix-editor.com/keymap.html",[149],"Key Bind Reference",[11,113557,6035],{"id":6040},[16,113559,113560],{},"Launch the inbuilt tutor for interactive training:",[25,113562,113564],{"className":27,"code":113563,"language":29,"meta":30,"style":30},"hx --tutor\nor \n:tutor\n",[20,113565,113566,113574,113580],{"__ignoreMap":30},[34,113567,113568,113571],{"class":36,"line":37},[34,113569,113570],{"class":47},"hx",[34,113572,113573],{"class":50}," --tutor\n",[34,113575,113576,113578],{"class":36,"line":44},[34,113577,49560],{"class":47},[34,113579,526],{"class":181},[34,113581,113582],{"class":36,"line":58},[34,113583,113584],{"class":47},":tutor\n",[388,113586,113587],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":30,"searchDepth":44,"depth":44,"links":113589},[113590,113591,113595,113600,113601],{"id":13533,"depth":44,"text":13534},{"id":96,"depth":44,"text":97,"children":113592},[113593,113594],{"id":113369,"depth":58,"text":113370},{"id":113426,"depth":58,"text":113427},{"id":8497,"depth":44,"text":8498,"children":113596},[113597,113598,113599],{"id":113466,"depth":58,"text":113467},{"id":113496,"depth":58,"text":113497},{"id":113511,"depth":58,"text":113512},{"id":28202,"depth":44,"text":28203},{"id":6040,"depth":44,"text":6035},"A powerful modern modal text editor designed for developers, inspired by Kakoune.",{},"/helix/overview",{"title":113357,"description":113602},"helix/overview","helix",[113609,113610,113607,113611],"editor","modal-editor","kakoune","B7KBqMxrh_ho0cYCoBo54WWJBDBTNqQgRLFUgNsKnkk",{"id":113614,"title":113615,"body":113616,"date":402,"description":113850,"extension":404,"meta":113851,"navigation":61,"order":37,"path":113852,"seo":113853,"stem":113854,"subject":113761,"tags":113855,"__hash__":113856},"topics/helm/overview.md","Helm",{"type":8,"value":113617,"toc":113839},[113618,113622,113625,113627,113647,113649,113651,113665,113669,113725,113727,113730,113744,113748,113752,113764,113767,113771,113794,113798,113809,113812,113816,113833,113836],[11,113619,113621],{"id":113620},"what-is-helm","What is Helm?",[16,113623,113624],{},"Helm is a package manager designed for Kubernetes, simplifying application deployment, upgrade, and maintenance using reusable packages called charts.",[102,113626,45296],{"id":8220},[309,113628,113629,113635,113641],{},[312,113630,113631,113634],{},[8471,113632,113633],{},"Charts",": Reusable application definitions.",[312,113636,113637,113640],{},[8471,113638,113639],{},"Rollbacks",": Undo changes in seconds.",[312,113642,113643,113646],{},[8471,113644,113645],{},"Dependency Management",": Capture the complex relationships between components.",[11,113648,97],{"id":96},[102,113650,53546],{"id":53545},[25,113652,113654],{"className":27,"code":113653,"language":29,"meta":30,"style":30},"brew install helm\n",[20,113655,113656],{"__ignoreMap":30},[34,113657,113658,113660,113662],{"class":36,"line":37},[34,113659,115],{"class":47},[34,113661,118],{"class":54},[34,113663,113664],{"class":54}," helm\n",[102,113666,113668],{"id":113667},"linux-apt","Linux (apt)",[25,113670,113672],{"className":27,"code":113671,"language":29,"meta":30,"style":30},"curl https://baltocdn.com/helm/signing.asc | sudo apt-key add -\necho \"deb https://baltocdn.com/helm/stable/debian/ all main\" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list\nsudo apt-get update\nsudo apt-get install helm\n",[20,113673,113674,113691,113707,113715],{"__ignoreMap":30},[34,113675,113676,113678,113681,113683,113685,113687,113689],{"class":36,"line":37},[34,113677,8648],{"class":47},[34,113679,113680],{"class":54}," https://baltocdn.com/helm/signing.asc",[34,113682,7197],{"class":580},[34,113684,9343],{"class":47},[34,113686,27833],{"class":54},[34,113688,7854],{"class":54},[34,113690,27838],{"class":54},[34,113692,113693,113695,113698,113700,113702,113704],{"class":36,"line":44},[34,113694,10120],{"class":50},[34,113696,113697],{"class":54}," \"deb https://baltocdn.com/helm/stable/debian/ all main\"",[34,113699,7197],{"class":580},[34,113701,9343],{"class":47},[34,113703,27852],{"class":54},[34,113705,113706],{"class":54}," /etc/apt/sources.list.d/helm-stable-debian.list\n",[34,113708,113709,113711,113713],{"class":36,"line":58},[34,113710,436],{"class":47},[34,113712,62482],{"class":54},[34,113714,6441],{"class":54},[34,113716,113717,113719,113721,113723],{"class":36,"line":65},[34,113718,436],{"class":47},[34,113720,62482],{"class":54},[34,113722,118],{"class":54},[34,113724,113664],{"class":54},[102,113726,78231],{"id":78230},[16,113728,113729],{},"Use Chocolatey:",[25,113731,113733],{"className":27,"code":113732,"language":29,"meta":30,"style":30},"choco install kubernetes-helm\n",[20,113734,113735],{"__ignoreMap":30},[34,113736,113737,113739,113741],{"class":36,"line":37},[34,113738,78265],{"class":47},[34,113740,118],{"class":54},[34,113742,113743],{"class":54}," kubernetes-helm\n",[11,113745,113747],{"id":113746},"common-commands","Common Commands",[53543,113749,113751],{"id":113750},"initialize-helm","Initialize Helm",[25,113753,113755],{"className":27,"code":113754,"language":29,"meta":30,"style":30},"helm init\n",[20,113756,113757],{"__ignoreMap":30},[34,113758,113759,113762],{"class":36,"line":37},[34,113760,113761],{"class":47},"helm",[34,113763,8180],{"class":54},[16,113765,113766],{},"Install the server-side component (Tiller) if applicable.",[53543,113768,113770],{"id":113769},"install-a-chart","Install a Chart",[25,113772,113774],{"className":27,"code":113773,"language":29,"meta":30,"style":30},"helm install mychart ./mychart --set service.type=LoadBalancer\n",[20,113775,113776],{"__ignoreMap":30},[34,113777,113778,113780,113782,113785,113788,113791],{"class":36,"line":37},[34,113779,113761],{"class":47},[34,113781,118],{"class":54},[34,113783,113784],{"class":54}," mychart",[34,113786,113787],{"class":54}," ./mychart",[34,113789,113790],{"class":50}," --set",[34,113792,113793],{"class":54}," service.type=LoadBalancer\n",[53543,113795,113797],{"id":113796},"list-releases","List Releases",[25,113799,113801],{"className":27,"code":113800,"language":29,"meta":30,"style":30},"helm list\n",[20,113802,113803],{"__ignoreMap":30},[34,113804,113805,113807],{"class":36,"line":37},[34,113806,113761],{"class":47},[34,113808,7536],{"class":54},[16,113810,113811],{},"Updates list data.",[53543,113813,113815],{"id":113814},"rollback-latest","Rollback Latest",[25,113817,113819],{"className":27,"code":113818,"language":29,"meta":30,"style":30},"helm rollback {{release-name}} # Example\n",[20,113820,113821],{"__ignoreMap":30},[34,113822,113823,113825,113827,113830],{"class":36,"line":37},[34,113824,113761],{"class":47},[34,113826,7599],{"class":54},[34,113828,113829],{"class":54}," {{release-name}}",[34,113831,113832],{"class":40}," # Example\n",[16,113834,113835],{},"Rollback to previous. Staging releases fail slower.",[388,113837,113838],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":30,"searchDepth":44,"depth":44,"links":113840},[113841,113844,113849],{"id":113620,"depth":44,"text":113621,"children":113842},[113843],{"id":8220,"depth":58,"text":45296},{"id":96,"depth":44,"text":97,"children":113845},[113846,113847,113848],{"id":53545,"depth":58,"text":53546},{"id":113667,"depth":58,"text":113668},{"id":78230,"depth":58,"text":78231},{"id":113746,"depth":44,"text":113747},"Essential commands and usage patterns for Helm, the package manager for Kubernetes.",{},"/helm/overview",{"title":113615,"description":113850},"helm/overview",[113761,7701,16217],"5o65W6plrNGaaj7Lz3gYFVug2ryqUvl_3xylZxIKISk",{"id":113858,"title":113859,"body":113860,"date":402,"description":113993,"extension":404,"meta":113994,"navigation":61,"order":58,"path":113995,"seo":113996,"stem":113997,"subject":113998,"tags":113999,"__hash__":114000},"topics/homebrew/basic-commands.md","Basic Commands",{"type":8,"value":113861,"toc":113990},[113862,113865,113988],[11,113863,113859],{"id":113864},"basic-commands",[25,113866,113868],{"className":27,"code":113867,"language":29,"meta":30,"style":30},"# Search for a package\nbrew search \u003Cpackage>\n\n# Get info about a package\nbrew info \u003Cpackage>\n\n# Install a package\nbrew install \u003Cpackage>\n\n# Uninstall a package\nbrew uninstall \u003Cpackage>\n\n# List installed packages\nbrew list\n\n# List installed packages with versions\nbrew list --versions\n",[20,113869,113870,113874,113888,113892,113897,113911,113915,113919,113933,113937,113942,113956,113960,113964,113970,113974,113979],{"__ignoreMap":30},[34,113871,113872],{"class":36,"line":37},[34,113873,6774],{"class":40},[34,113875,113876,113878,113880,113882,113884,113886],{"class":36,"line":44},[34,113877,115],{"class":47},[34,113879,5870],{"class":54},[34,113881,5470],{"class":580},[34,113883,5473],{"class":54},[34,113885,5476],{"class":181},[34,113887,1248],{"class":580},[34,113889,113890],{"class":36,"line":58},[34,113891,62],{"emptyLinePlaceholder":61},[34,113893,113894],{"class":36,"line":65},[34,113895,113896],{"class":40},"# Get info about a package\n",[34,113898,113899,113901,113903,113905,113907,113909],{"class":36,"line":71},[34,113900,115],{"class":47},[34,113902,54126],{"class":54},[34,113904,5470],{"class":580},[34,113906,5473],{"class":54},[34,113908,5476],{"class":181},[34,113910,1248],{"class":580},[34,113912,113913],{"class":36,"line":77},[34,113914,62],{"emptyLinePlaceholder":61},[34,113916,113917],{"class":36,"line":82},[34,113918,6127],{"class":40},[34,113920,113921,113923,113925,113927,113929,113931],{"class":36,"line":88},[34,113922,115],{"class":47},[34,113924,118],{"class":54},[34,113926,5470],{"class":580},[34,113928,5473],{"class":54},[34,113930,5476],{"class":181},[34,113932,1248],{"class":580},[34,113934,113935],{"class":36,"line":242},[34,113936,62],{"emptyLinePlaceholder":61},[34,113938,113939],{"class":36,"line":250},[34,113940,113941],{"class":40},"# Uninstall a package\n",[34,113943,113944,113946,113948,113950,113952,113954],{"class":36,"line":263},[34,113945,115],{"class":47},[34,113947,49149],{"class":54},[34,113949,5470],{"class":580},[34,113951,5473],{"class":54},[34,113953,5476],{"class":181},[34,113955,1248],{"class":580},[34,113957,113958],{"class":36,"line":275},[34,113959,62],{"emptyLinePlaceholder":61},[34,113961,113962],{"class":36,"line":700},[34,113963,16346],{"class":40},[34,113965,113966,113968],{"class":36,"line":706},[34,113967,115],{"class":47},[34,113969,7536],{"class":54},[34,113971,113972],{"class":36,"line":715},[34,113973,62],{"emptyLinePlaceholder":61},[34,113975,113976],{"class":36,"line":725},[34,113977,113978],{"class":40},"# List installed packages with versions\n",[34,113980,113981,113983,113985],{"class":36,"line":734},[34,113982,115],{"class":47},[34,113984,6345],{"class":54},[34,113986,113987],{"class":50}," --versions\n",[388,113989,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":113991},[113992],{"id":113864,"depth":44,"text":113859},"Basic Commands in Homebrew.",{},"/homebrew/basic-commands",{"title":113859,"description":113993},"homebrew/basic-commands","homebrew",[113998,115,53545,5588,5591],"hEz3wX68rIkEZuRln1ddWn8RDpRv0GHoP6v_tkHL1I4",{"id":114002,"title":114003,"body":114004,"date":402,"description":114083,"extension":404,"meta":114084,"navigation":61,"order":275,"path":114085,"seo":114086,"stem":114087,"subject":113998,"tags":114088,"__hash__":114089},"topics/homebrew/bundle-brewfile.md","Bundle (Brewfile)",{"type":8,"value":114005,"toc":114080},[114006,114009,114078],[11,114007,114003],{"id":114008},"bundle-brewfile",[25,114010,114012],{"className":27,"code":114011,"language":29,"meta":30,"style":30},"# Create a Brewfile from installed packages\nbrew bundle dump\n\n# Install from a Brewfile\nbrew bundle\n\n# Check if all dependencies are installed\nbrew bundle check\n\n# List packages in Brewfile\nbrew bundle list\n",[20,114013,114014,114019,114028,114032,114037,114044,114048,114053,114061,114065,114070],{"__ignoreMap":30},[34,114015,114016],{"class":36,"line":37},[34,114017,114018],{"class":40},"# Create a Brewfile from installed packages\n",[34,114020,114021,114023,114025],{"class":36,"line":44},[34,114022,115],{"class":47},[34,114024,46818],{"class":54},[34,114026,114027],{"class":54}," dump\n",[34,114029,114030],{"class":36,"line":58},[34,114031,62],{"emptyLinePlaceholder":61},[34,114033,114034],{"class":36,"line":65},[34,114035,114036],{"class":40},"# Install from a Brewfile\n",[34,114038,114039,114041],{"class":36,"line":71},[34,114040,115],{"class":47},[34,114042,114043],{"class":54}," bundle\n",[34,114045,114046],{"class":36,"line":77},[34,114047,62],{"emptyLinePlaceholder":61},[34,114049,114050],{"class":36,"line":82},[34,114051,114052],{"class":40},"# Check if all dependencies are installed\n",[34,114054,114055,114057,114059],{"class":36,"line":88},[34,114056,115],{"class":47},[34,114058,46818],{"class":54},[34,114060,5718],{"class":54},[34,114062,114063],{"class":36,"line":242},[34,114064,62],{"emptyLinePlaceholder":61},[34,114066,114067],{"class":36,"line":250},[34,114068,114069],{"class":40},"# List packages in Brewfile\n",[34,114071,114072,114074,114076],{"class":36,"line":263},[34,114073,115],{"class":47},[34,114075,46818],{"class":54},[34,114077,7536],{"class":54},[388,114079,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":114081},[114082],{"id":114008,"depth":44,"text":114003},"Bundle (Brewfile) in Homebrew.",{},"/homebrew/bundle-brewfile",{"title":114003,"description":114083},"homebrew/bundle-brewfile",[113998,115,53545,5588,5591],"nP6XKXV31LUalbutEo7g9i-wk7fU8fPsFpxGx0SPu1o",{"id":114091,"title":114092,"body":114093,"date":402,"description":114198,"extension":404,"meta":114199,"navigation":61,"order":71,"path":114200,"seo":114201,"stem":114202,"subject":113998,"tags":114203,"__hash__":114204},"topics/homebrew/casks-gui-applications.md","Casks (GUI Applications)",{"type":8,"value":114094,"toc":114195},[114095,114098,114193],[11,114096,114092],{"id":114097},"casks-gui-applications",[25,114099,114101],{"className":27,"code":114100,"language":29,"meta":30,"style":30},"# Search for a cask\nbrew search --cask \u003Capp>\n\n# Install a GUI application\nbrew install --cask \u003Capp>\n\n# Uninstall a cask\nbrew uninstall --cask \u003Capp>\n\n# List installed casks\nbrew list --cask\n",[20,114102,114103,114108,114125,114129,114134,114150,114154,114159,114175,114179,114184],{"__ignoreMap":30},[34,114104,114105],{"class":36,"line":37},[34,114106,114107],{"class":40},"# Search for a cask\n",[34,114109,114110,114112,114114,114116,114118,114121,114123],{"class":36,"line":44},[34,114111,115],{"class":47},[34,114113,5870],{"class":54},[34,114115,91824],{"class":50},[34,114117,5470],{"class":580},[34,114119,114120],{"class":54},"ap",[34,114122,16],{"class":181},[34,114124,1248],{"class":580},[34,114126,114127],{"class":36,"line":58},[34,114128,62],{"emptyLinePlaceholder":61},[34,114130,114131],{"class":36,"line":65},[34,114132,114133],{"class":40},"# Install a GUI application\n",[34,114135,114136,114138,114140,114142,114144,114146,114148],{"class":36,"line":71},[34,114137,115],{"class":47},[34,114139,118],{"class":54},[34,114141,91824],{"class":50},[34,114143,5470],{"class":580},[34,114145,114120],{"class":54},[34,114147,16],{"class":181},[34,114149,1248],{"class":580},[34,114151,114152],{"class":36,"line":77},[34,114153,62],{"emptyLinePlaceholder":61},[34,114155,114156],{"class":36,"line":82},[34,114157,114158],{"class":40},"# Uninstall a cask\n",[34,114160,114161,114163,114165,114167,114169,114171,114173],{"class":36,"line":88},[34,114162,115],{"class":47},[34,114164,49149],{"class":54},[34,114166,91824],{"class":50},[34,114168,5470],{"class":580},[34,114170,114120],{"class":54},[34,114172,16],{"class":181},[34,114174,1248],{"class":580},[34,114176,114177],{"class":36,"line":242},[34,114178,62],{"emptyLinePlaceholder":61},[34,114180,114181],{"class":36,"line":250},[34,114182,114183],{"class":40},"# List installed casks\n",[34,114185,114186,114188,114190],{"class":36,"line":263},[34,114187,115],{"class":47},[34,114189,6345],{"class":54},[34,114191,114192],{"class":50}," --cask\n",[388,114194,5578],{},{"title":30,"searchDepth":44,"depth":44,"links":114196},[114197],{"id":114097,"depth":44,"text":114092},"Casks (GUI Applications) in Homebrew.",{},"/homebrew/casks-gui-applications",{"title":114092,"description":114198},"homebrew/casks-gui-applications",[113998,115,53545,5588,5591],"5HPYUW1_DM8NHkNyYge29oRB0peklK2Na48cH5Xo_QU",{"id":114206,"title":114207,"body":114208,"date":402,"description":114293,"extension":404,"meta":114294,"navigation":61,"order":82,"path":114295,"seo":114296,"stem":114297,"subject":113998,"tags":114298,"__hash__":114299},"topics/homebrew/cleanup.md","Cleanup",{"type":8,"value":114209,"toc":114290},[114210,114212,114288],[11,114211,114207],{"id":12587},[25,114213,114215],{"className":27,"code":114214,"language":29,"meta":30,"style":30},"# Remove old versions of packages\nbrew cleanup\n\n# See what would be cleaned up\nbrew cleanup -n\n\n# Remove a specific package's old versions\nbrew cleanup \u003Cpackage>\n\n# Remove cache\nbrew cleanup --prune=all\n",[20,114216,114217,114222,114229,114233,114238,114247,114251,114256,114270,114274,114279],{"__ignoreMap":30},[34,114218,114219],{"class":36,"line":37},[34,114220,114221],{"class":40},"# Remove old versions of packages\n",[34,114223,114224,114226],{"class":36,"line":44},[34,114225,115],{"class":47},[34,114227,114228],{"class":54}," cleanup\n",[34,114230,114231],{"class":36,"line":58},[34,114232,62],{"emptyLinePlaceholder":61},[34,114234,114235],{"class":36,"line":65},[34,114236,114237],{"class":40},"# See what would be cleaned up\n",[34,114239,114240,114242,114244],{"class":36,"line":71},[34,114241,115],{"class":47},[34,114243,12614],{"class":54},[34,114245,114246],{"class":50}," -n\n",[34,114248,114249],{"class":36,"line":77},[34,114250,62],{"emptyLinePlaceholder":61},[34,114252,114253],{"class":36,"line":82},[34,114254,114255],{"class":40},"# Remove a specific package's old versions\n",[34,114257,114258,114260,114262,114264,114266,114268],{"class":36,"line":88},[34,114259,115],{"class":47},[34,114261,12614],{"class":54},[34,114263,5470],{"class":580},[34,114265,5473],{"class":54},[34,114267,5476],{"class":181},[34,114269,1248],{"class":580},[34,114271,114272],{"class":36,"line":242},[34,114273,62],{"emptyLinePlaceholder":61},[34,114275,114276],{"class":36,"line":250},[34,114277,114278],{"class":40},"# Remove cache\n",[34,114280,114281,114283,114285],{"class":36,"line":263},[34,114282,115],{"class":47},[34,114284,12614],{"class":54},[34,114286,114287],{"class":50}," --prune=all\n",[388,114289,5578],{},{"title":30,"searchDepth":44,"depth":44,"links":114291},[114292],{"id":12587,"depth":44,"text":114207},"Cleanup in Homebrew.",{},"/homebrew/cleanup",{"title":114207,"description":114293},"homebrew/cleanup",[113998,115,53545,5588,5591],"9dzt73hRUzQNvs9cuq5eEozxPZlPX9GO50ObkiUtwwU",{"id":114301,"title":97,"body":114302,"date":402,"description":114337,"extension":404,"meta":114338,"navigation":61,"order":44,"path":114339,"seo":114340,"stem":114341,"subject":113998,"tags":114342,"__hash__":114343},"topics/homebrew/installation.md",{"type":8,"value":114303,"toc":114334},[114304,114306,114332],[11,114305,97],{"id":96},[25,114307,114309],{"className":27,"code":114308,"language":29,"meta":30,"style":30},"# Install Homebrew on macOS or Linux\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n",[20,114310,114311,114316],{"__ignoreMap":30},[34,114312,114313],{"class":36,"line":37},[34,114314,114315],{"class":40},"# Install Homebrew on macOS or Linux\n",[34,114317,114318,114321,114323,114325,114327,114329],{"class":36,"line":44},[34,114319,114320],{"class":47},"/bin/bash",[34,114322,15867],{"class":50},[34,114324,29582],{"class":54},[34,114326,8648],{"class":47},[34,114328,15806],{"class":50},[34,114330,114331],{"class":54}," https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n",[388,114333,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":114335},[114336],{"id":96,"depth":44,"text":97},"Installation in Homebrew.",{},"/homebrew/installation",{"title":97,"description":114337},"homebrew/installation",[113998,115,53545,5588,5591],"hgwQ-fJKoMbRqt6NYOjkfzrKW88CSoX0MLBeP66N-n0",{"id":114345,"title":114346,"body":114347,"date":402,"description":114582,"extension":404,"meta":114583,"navigation":61,"order":263,"path":114584,"seo":114585,"stem":114586,"subject":113998,"tags":114587,"__hash__":114588},"topics/homebrew/multiple-versions.md","Multiple Versions",{"type":8,"value":114348,"toc":114579},[114349,114352,114577],[11,114350,114346],{"id":114351},"multiple-versions",[25,114353,114355],{"className":27,"code":114354,"language":29,"meta":30,"style":30},"# Search for available versions of a package\nbrew search \u003Cpackage>@\n\n# Install a specific version\nbrew install \u003Cpackage>@\u003Cversion>\n\n# Example: Install Node.js versions\nbrew install node@18\nbrew install node@20\n\n# List installed versions\nbrew list | grep \u003Cpackage>\n\n# Unlink current version\nbrew unlink \u003Cpackage>\n\n# Link a specific version\nbrew link \u003Cpackage>@\u003Cversion>\n\n# Force link (if already linked)\nbrew link --overwrite \u003Cpackage>@\u003Cversion>\n\n# Check which version is active\n\u003Cpackage> --version\n",[20,114356,114357,114362,114379,114383,114387,114411,114415,114420,114429,114438,114442,114446,114464,114468,114473,114488,114492,114497,114522,114526,114531,114558,114562,114567],{"__ignoreMap":30},[34,114358,114359],{"class":36,"line":37},[34,114360,114361],{"class":40},"# Search for available versions of a package\n",[34,114363,114364,114366,114368,114370,114372,114374,114376],{"class":36,"line":44},[34,114365,115],{"class":47},[34,114367,5870],{"class":54},[34,114369,5470],{"class":580},[34,114371,5473],{"class":54},[34,114373,5476],{"class":181},[34,114375,5691],{"class":580},[34,114377,114378],{"class":54},"@\n",[34,114380,114381],{"class":36,"line":58},[34,114382,62],{"emptyLinePlaceholder":61},[34,114384,114385],{"class":36,"line":65},[34,114386,6191],{"class":40},[34,114388,114389,114391,114393,114395,114397,114399,114401,114403,114405,114407,114409],{"class":36,"line":71},[34,114390,115],{"class":47},[34,114392,118],{"class":54},[34,114394,5470],{"class":580},[34,114396,5473],{"class":54},[34,114398,5476],{"class":181},[34,114400,5691],{"class":580},[34,114402,607],{"class":54},[34,114404,815],{"class":580},[34,114406,6214],{"class":54},[34,114408,6217],{"class":181},[34,114410,1248],{"class":580},[34,114412,114413],{"class":36,"line":77},[34,114414,62],{"emptyLinePlaceholder":61},[34,114416,114417],{"class":36,"line":82},[34,114418,114419],{"class":40},"# Example: Install Node.js versions\n",[34,114421,114422,114424,114426],{"class":36,"line":88},[34,114423,115],{"class":47},[34,114425,118],{"class":54},[34,114427,114428],{"class":54}," node@18\n",[34,114430,114431,114433,114435],{"class":36,"line":242},[34,114432,115],{"class":47},[34,114434,118],{"class":54},[34,114436,114437],{"class":54}," node@20\n",[34,114439,114440],{"class":36,"line":250},[34,114441,62],{"emptyLinePlaceholder":61},[34,114443,114444],{"class":36,"line":263},[34,114445,49071],{"class":40},[34,114447,114448,114450,114452,114454,114456,114458,114460,114462],{"class":36,"line":275},[34,114449,115],{"class":47},[34,114451,6345],{"class":54},[34,114453,7197],{"class":580},[34,114455,11425],{"class":47},[34,114457,5470],{"class":580},[34,114459,5473],{"class":54},[34,114461,5476],{"class":181},[34,114463,1248],{"class":580},[34,114465,114466],{"class":36,"line":700},[34,114467,62],{"emptyLinePlaceholder":61},[34,114469,114470],{"class":36,"line":706},[34,114471,114472],{"class":40},"# Unlink current version\n",[34,114474,114475,114477,114480,114482,114484,114486],{"class":36,"line":715},[34,114476,115],{"class":47},[34,114478,114479],{"class":54}," unlink",[34,114481,5470],{"class":580},[34,114483,5473],{"class":54},[34,114485,5476],{"class":181},[34,114487,1248],{"class":580},[34,114489,114490],{"class":36,"line":725},[34,114491,62],{"emptyLinePlaceholder":61},[34,114493,114494],{"class":36,"line":734},[34,114495,114496],{"class":40},"# Link a specific version\n",[34,114498,114499,114501,114504,114506,114508,114510,114512,114514,114516,114518,114520],{"class":36,"line":742},[34,114500,115],{"class":47},[34,114502,114503],{"class":54}," link",[34,114505,5470],{"class":580},[34,114507,5473],{"class":54},[34,114509,5476],{"class":181},[34,114511,5691],{"class":580},[34,114513,607],{"class":54},[34,114515,815],{"class":580},[34,114517,6214],{"class":54},[34,114519,6217],{"class":181},[34,114521,1248],{"class":580},[34,114523,114524],{"class":36,"line":748},[34,114525,62],{"emptyLinePlaceholder":61},[34,114527,114528],{"class":36,"line":754},[34,114529,114530],{"class":40},"# Force link (if already linked)\n",[34,114532,114533,114535,114537,114540,114542,114544,114546,114548,114550,114552,114554,114556],{"class":36,"line":759},[34,114534,115],{"class":47},[34,114536,114503],{"class":54},[34,114538,114539],{"class":50}," --overwrite",[34,114541,5470],{"class":580},[34,114543,5473],{"class":54},[34,114545,5476],{"class":181},[34,114547,5691],{"class":580},[34,114549,607],{"class":54},[34,114551,815],{"class":580},[34,114553,6214],{"class":54},[34,114555,6217],{"class":181},[34,114557,1248],{"class":580},[34,114559,114560],{"class":36,"line":771},[34,114561,62],{"emptyLinePlaceholder":61},[34,114563,114564],{"class":36,"line":794},[34,114565,114566],{"class":40},"# Check which version is active\n",[34,114568,114569,114571,114573,114575],{"class":36,"line":824},[34,114570,815],{"class":580},[34,114572,6165],{"class":181},[34,114574,5691],{"class":580},[34,114576,5013],{"class":181},[388,114578,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":114580},[114581],{"id":114351,"depth":44,"text":114346},"Multiple Versions in Homebrew.",{},"/homebrew/multiple-versions",{"title":114346,"description":114582},"homebrew/multiple-versions",[113998,115,53545,5588,5591],"sK-PgeV7yyr1dzUwKtbCDQjz-fx6VjqYzJS319kzFe8",{"id":114590,"title":114591,"body":114592,"date":2633,"description":114652,"extension":404,"meta":114653,"navigation":61,"order":37,"path":114654,"seo":114655,"stem":114656,"subject":113998,"tags":114657,"__hash__":114658},"topics/homebrew/overview.md","Homebrew",{"type":8,"value":114593,"toc":114650},[114594],[309,114595,114596,114600,114604,114610,114614,114620,114624,114630,114636,114642,114646],{},[312,114597,114598],{},[145,114599,97],{"href":114339},[312,114601,114602],{},[145,114603,113859],{"href":113995},[312,114605,114606],{},[145,114607,114609],{"href":114608},"/homebrew/updating","Updating",[312,114611,114612],{},[145,114613,114092],{"href":114200},[312,114615,114616],{},[145,114617,114619],{"href":114618},"/homebrew/taps-third-party-repositories","Taps (Third-Party Repositories)",[312,114621,114622],{},[145,114623,114207],{"href":114295},[312,114625,114626],{},[145,114627,114629],{"href":114628},"/homebrew/services","Services",[312,114631,114632],{},[145,114633,114635],{"href":114634},"/homebrew/troubleshooting","Troubleshooting",[312,114637,114638],{},[145,114639,114641],{"href":114640},"/homebrew/pinning","Pinning",[312,114643,114644],{},[145,114645,114346],{"href":114584},[312,114647,114648],{},[145,114649,114003],{"href":114085},{"title":30,"searchDepth":44,"depth":44,"links":114651},[],"Essential Homebrew commands for installing, updating, and managing packages on macOS and Linux.",{},"/homebrew/overview",{"title":114591,"description":114652},"homebrew/overview",[113998,115,53545,5588,5591],"a-qsbwvdsKylBrrch-frdVtSwxBB7tdPkUYiL9FVJlI",{"id":114660,"title":114641,"body":114661,"date":402,"description":114736,"extension":404,"meta":114737,"navigation":61,"order":250,"path":114640,"seo":114738,"stem":114739,"subject":113998,"tags":114740,"__hash__":114741},"topics/homebrew/pinning.md",{"type":8,"value":114662,"toc":114733},[114663,114666,114731],[11,114664,114641],{"id":114665},"pinning",[25,114667,114669],{"className":27,"code":114668,"language":29,"meta":30,"style":30},"# Pin a package (prevent upgrades)\nbrew pin \u003Cpackage>\n\n# Unpin a package\nbrew unpin \u003Cpackage>\n\n# List pinned packages\nbrew list --pinned\n",[20,114670,114671,114676,114690,114694,114699,114713,114717,114722],{"__ignoreMap":30},[34,114672,114673],{"class":36,"line":37},[34,114674,114675],{"class":40},"# Pin a package (prevent upgrades)\n",[34,114677,114678,114680,114682,114684,114686,114688],{"class":36,"line":44},[34,114679,115],{"class":47},[34,114681,96224],{"class":54},[34,114683,5470],{"class":580},[34,114685,5473],{"class":54},[34,114687,5476],{"class":181},[34,114689,1248],{"class":580},[34,114691,114692],{"class":36,"line":58},[34,114693,62],{"emptyLinePlaceholder":61},[34,114695,114696],{"class":36,"line":65},[34,114697,114698],{"class":40},"# Unpin a package\n",[34,114700,114701,114703,114705,114707,114709,114711],{"class":36,"line":71},[34,114702,115],{"class":47},[34,114704,96235],{"class":54},[34,114706,5470],{"class":580},[34,114708,5473],{"class":54},[34,114710,5476],{"class":181},[34,114712,1248],{"class":580},[34,114714,114715],{"class":36,"line":77},[34,114716,62],{"emptyLinePlaceholder":61},[34,114718,114719],{"class":36,"line":82},[34,114720,114721],{"class":40},"# List pinned packages\n",[34,114723,114724,114726,114728],{"class":36,"line":88},[34,114725,115],{"class":47},[34,114727,6345],{"class":54},[34,114729,114730],{"class":50}," --pinned\n",[388,114732,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":114734},[114735],{"id":114665,"depth":44,"text":114641},"Pinning in Homebrew.",{},{"title":114641,"description":114736},"homebrew/pinning",[113998,115,53545,5588,5591],"7ccLlgDRjsVxPscuCL2I2xcKspX27YG3Tag-gOBqpl0",{"id":114743,"title":114629,"body":114744,"date":402,"description":114872,"extension":404,"meta":114873,"navigation":61,"order":88,"path":114628,"seo":114874,"stem":114875,"subject":113998,"tags":114876,"__hash__":114877},"topics/homebrew/services.md",{"type":8,"value":114745,"toc":114869},[114746,114748,114867],[11,114747,114629],{"id":56391},[25,114749,114751],{"className":27,"code":114750,"language":29,"meta":30,"style":30},"# List all services\nbrew services list\n\n# Start a service\nbrew services start \u003Cservice>\n\n# Stop a service\nbrew services stop \u003Cservice>\n\n# Restart a service\nbrew services restart \u003Cservice>\n\n# Run service once (don't restart at login)\nbrew services run \u003Cservice>\n",[20,114752,114753,114758,114766,114770,114775,114792,114796,114801,114817,114821,114826,114842,114846,114851],{"__ignoreMap":30},[34,114754,114755],{"class":36,"line":37},[34,114756,114757],{"class":40},"# List all services\n",[34,114759,114760,114762,114764],{"class":36,"line":44},[34,114761,115],{"class":47},[34,114763,92359],{"class":54},[34,114765,7536],{"class":54},[34,114767,114768],{"class":36,"line":58},[34,114769,62],{"emptyLinePlaceholder":61},[34,114771,114772],{"class":36,"line":65},[34,114773,114774],{"class":40},"# Start a service\n",[34,114776,114777,114779,114781,114783,114785,114788,114790],{"class":36,"line":71},[34,114778,115],{"class":47},[34,114780,92359],{"class":54},[34,114782,9677],{"class":54},[34,114784,5470],{"class":580},[34,114786,114787],{"class":54},"servic",[34,114789,5476],{"class":181},[34,114791,1248],{"class":580},[34,114793,114794],{"class":36,"line":77},[34,114795,62],{"emptyLinePlaceholder":61},[34,114797,114798],{"class":36,"line":82},[34,114799,114800],{"class":40},"# Stop a service\n",[34,114802,114803,114805,114807,114809,114811,114813,114815],{"class":36,"line":88},[34,114804,115],{"class":47},[34,114806,92359],{"class":54},[34,114808,9696],{"class":54},[34,114810,5470],{"class":580},[34,114812,114787],{"class":54},[34,114814,5476],{"class":181},[34,114816,1248],{"class":580},[34,114818,114819],{"class":36,"line":242},[34,114820,62],{"emptyLinePlaceholder":61},[34,114822,114823],{"class":36,"line":250},[34,114824,114825],{"class":40},"# Restart a service\n",[34,114827,114828,114830,114832,114834,114836,114838,114840],{"class":36,"line":263},[34,114829,115],{"class":47},[34,114831,92359],{"class":54},[34,114833,56262],{"class":54},[34,114835,5470],{"class":580},[34,114837,114787],{"class":54},[34,114839,5476],{"class":181},[34,114841,1248],{"class":580},[34,114843,114844],{"class":36,"line":275},[34,114845,62],{"emptyLinePlaceholder":61},[34,114847,114848],{"class":36,"line":700},[34,114849,114850],{"class":40},"# Run service once (don't restart at login)\n",[34,114852,114853,114855,114857,114859,114861,114863,114865],{"class":36,"line":706},[34,114854,115],{"class":47},[34,114856,92359],{"class":54},[34,114858,16017],{"class":54},[34,114860,5470],{"class":580},[34,114862,114787],{"class":54},[34,114864,5476],{"class":181},[34,114866,1248],{"class":580},[388,114868,6641],{},{"title":30,"searchDepth":44,"depth":44,"links":114870},[114871],{"id":56391,"depth":44,"text":114629},"Services in Homebrew.",{},{"title":114629,"description":114872},"homebrew/services",[113998,115,53545,5588,5591],"GRv6LKcCGYXFuGeMyBeM0VpUIUYLwr-eJC4HY8zm_yU",{"id":114879,"title":114619,"body":114880,"date":402,"description":114957,"extension":404,"meta":114958,"navigation":61,"order":77,"path":114618,"seo":114959,"stem":114960,"subject":113998,"tags":114961,"__hash__":114962},"topics/homebrew/taps-third-party-repositories.md",{"type":8,"value":114881,"toc":114954},[114882,114885,114952],[11,114883,114619],{"id":114884},"taps-third-party-repositories",[25,114886,114888],{"className":27,"code":114887,"language":29,"meta":30,"style":30},"# Add a tap\nbrew tap \u003Cuser/repo>\n\n# Remove a tap\nbrew untap \u003Cuser/repo>\n\n# List all taps\nbrew tap\n",[20,114889,114890,114895,114912,114916,114921,114936,114940,114945],{"__ignoreMap":30},[34,114891,114892],{"class":36,"line":37},[34,114893,114894],{"class":40},"# Add a tap\n",[34,114896,114897,114899,114902,114904,114907,114910],{"class":36,"line":44},[34,114898,115],{"class":47},[34,114900,114901],{"class":54}," tap",[34,114903,5470],{"class":580},[34,114905,114906],{"class":54},"user/rep",[34,114908,114909],{"class":181},"o",[34,114911,1248],{"class":580},[34,114913,114914],{"class":36,"line":58},[34,114915,62],{"emptyLinePlaceholder":61},[34,114917,114918],{"class":36,"line":65},[34,114919,114920],{"class":40},"# Remove a tap\n",[34,114922,114923,114925,114928,114930,114932,114934],{"class":36,"line":71},[34,114924,115],{"class":47},[34,114926,114927],{"class":54}," untap",[34,114929,5470],{"class":580},[34,114931,114906],{"class":54},[34,114933,114909],{"class":181},[34,114935,1248],{"class":580},[34,114937,114938],{"class":36,"line":77},[34,114939,62],{"emptyLinePlaceholder":61},[34,114941,114942],{"class":36,"line":82},[34,114943,114944],{"class":40},"# List all taps\n",[34,114946,114947,114949],{"class":36,"line":88},[34,114948,115],{"class":47},[34,114950,114951],{"class":54}," tap\n",[388,114953,6641],{},{"title":30,"searchDepth":44,"depth":44,"links":114955},[114956],{"id":114884,"depth":44,"text":114619},"Taps (Third-Party Repositories) in Homebrew.",{},{"title":114619,"description":114957},"homebrew/taps-third-party-repositories",[113998,115,53545,5588,5591],"Mju4c21__jYSr0PHMXH_he3o_rZnDOYATytux9Majbk",{"id":114964,"title":114635,"body":114965,"date":402,"description":115080,"extension":404,"meta":115081,"navigation":61,"order":242,"path":114634,"seo":115082,"stem":115083,"subject":113998,"tags":115084,"__hash__":115085},"topics/homebrew/troubleshooting.md",{"type":8,"value":114966,"toc":115077},[114967,114970,115075],[11,114968,114635],{"id":114969},"troubleshooting",[25,114971,114973],{"className":27,"code":114972,"language":29,"meta":30,"style":30},"# Check system for potential problems\nbrew doctor\n\n# Show Homebrew configuration\nbrew config\n\n# Display dependencies for a package\nbrew deps \u003Cpackage>\n\n# Show packages that depend on a package\nbrew uses --installed \u003Cpackage>\n\n# Reinstall a package\nbrew reinstall \u003Cpackage>\n",[20,114974,114975,114980,114987,114991,114996,115003,115007,115012,115027,115031,115036,115053,115057,115061],{"__ignoreMap":30},[34,114976,114977],{"class":36,"line":37},[34,114978,114979],{"class":40},"# Check system for potential problems\n",[34,114981,114982,114984],{"class":36,"line":44},[34,114983,115],{"class":47},[34,114985,114986],{"class":54}," doctor\n",[34,114988,114989],{"class":36,"line":58},[34,114990,62],{"emptyLinePlaceholder":61},[34,114992,114993],{"class":36,"line":65},[34,114994,114995],{"class":40},"# Show Homebrew configuration\n",[34,114997,114998,115000],{"class":36,"line":71},[34,114999,115],{"class":47},[34,115001,115002],{"class":54}," config\n",[34,115004,115005],{"class":36,"line":77},[34,115006,62],{"emptyLinePlaceholder":61},[34,115008,115009],{"class":36,"line":82},[34,115010,115011],{"class":40},"# Display dependencies for a package\n",[34,115013,115014,115016,115019,115021,115023,115025],{"class":36,"line":88},[34,115015,115],{"class":47},[34,115017,115018],{"class":54}," deps",[34,115020,5470],{"class":580},[34,115022,5473],{"class":54},[34,115024,5476],{"class":181},[34,115026,1248],{"class":580},[34,115028,115029],{"class":36,"line":242},[34,115030,62],{"emptyLinePlaceholder":61},[34,115032,115033],{"class":36,"line":250},[34,115034,115035],{"class":40},"# Show packages that depend on a package\n",[34,115037,115038,115040,115043,115045,115047,115049,115051],{"class":36,"line":263},[34,115039,115],{"class":47},[34,115041,115042],{"class":54}," uses",[34,115044,54780],{"class":50},[34,115046,5470],{"class":580},[34,115048,5473],{"class":54},[34,115050,5476],{"class":181},[34,115052,1248],{"class":580},[34,115054,115055],{"class":36,"line":275},[34,115056,62],{"emptyLinePlaceholder":61},[34,115058,115059],{"class":36,"line":700},[34,115060,6290],{"class":40},[34,115062,115063,115065,115067,115069,115071,115073],{"class":36,"line":706},[34,115064,115],{"class":47},[34,115066,6299],{"class":54},[34,115068,5470],{"class":580},[34,115070,5473],{"class":54},[34,115072,5476],{"class":181},[34,115074,1248],{"class":580},[388,115076,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":115078},[115079],{"id":114969,"depth":44,"text":114635},"Troubleshooting in Homebrew.",{},{"title":114635,"description":115080},"homebrew/troubleshooting",[113998,115,53545,5588,5591],"k2KNIOUow7JXgfqCi2p9idVe9LOVfTrP57b3bPobaKA",{"id":115087,"title":114609,"body":115088,"date":402,"description":115166,"extension":404,"meta":115167,"navigation":61,"order":65,"path":114608,"seo":115168,"stem":115169,"subject":113998,"tags":115170,"__hash__":115171},"topics/homebrew/updating.md",{"type":8,"value":115089,"toc":115163},[115090,115093,115161],[11,115091,114609],{"id":115092},"updating",[25,115094,115096],{"className":27,"code":115095,"language":29,"meta":30,"style":30},"# Update Homebrew itself\nbrew update\n\n# Upgrade all installed packages\nbrew upgrade\n\n# Upgrade a specific package\nbrew upgrade \u003Cpackage>\n\n# See outdated packages\nbrew outdated\n",[20,115097,115098,115103,115109,115113,115117,115123,115127,115131,115145,115149,115154],{"__ignoreMap":30},[34,115099,115100],{"class":36,"line":37},[34,115101,115102],{"class":40},"# Update Homebrew itself\n",[34,115104,115105,115107],{"class":36,"line":44},[34,115106,115],{"class":47},[34,115108,6441],{"class":54},[34,115110,115111],{"class":36,"line":58},[34,115112,62],{"emptyLinePlaceholder":61},[34,115114,115115],{"class":36,"line":65},[34,115116,6977],{"class":40},[34,115118,115119,115121],{"class":36,"line":71},[34,115120,115],{"class":47},[34,115122,6986],{"class":54},[34,115124,115125],{"class":36,"line":77},[34,115126,62],{"emptyLinePlaceholder":61},[34,115128,115129],{"class":36,"line":82},[34,115130,7022],{"class":40},[34,115132,115133,115135,115137,115139,115141,115143],{"class":36,"line":88},[34,115134,115],{"class":47},[34,115136,5662],{"class":54},[34,115138,5470],{"class":580},[34,115140,5473],{"class":54},[34,115142,5476],{"class":181},[34,115144,1248],{"class":580},[34,115146,115147],{"class":36,"line":242},[34,115148,62],{"emptyLinePlaceholder":61},[34,115150,115151],{"class":36,"line":250},[34,115152,115153],{"class":40},"# See outdated packages\n",[34,115155,115156,115158],{"class":36,"line":263},[34,115157,115],{"class":47},[34,115159,115160],{"class":54}," outdated\n",[388,115162,6641],{},{"title":30,"searchDepth":44,"depth":44,"links":115164},[115165],{"id":115092,"depth":44,"text":114609},"Updating in Homebrew.",{},{"title":114609,"description":115166},"homebrew/updating",[113998,115,53545,5588,5591],"wQlnYzgqjlrHy_c9cS7qp0UcIwKjgfvJ-qdPn6-WvXk",{"id":115173,"title":115174,"body":115175,"date":402,"description":115405,"extension":404,"meta":115406,"navigation":61,"order":37,"path":115407,"seo":115408,"stem":115409,"subject":115410,"tags":115411,"__hash__":115414},"topics/hono/overview.md","Hono Overview",{"type":8,"value":115176,"toc":115398},[115177,115179,115182,115186,115189,115203,115206,115247,115249,115289,115293,115296,115377,115381,115384,115395],[11,115178,14],{"id":13},[16,115180,115181],{},"Hono is a small, simple, and ultrafast web framework built on Web Standards. It is designed to work on any JavaScript runtime such as Cloudflare Workers, Fastly Compute, Deno, Bun, AWS Lambda, and Node.js. Below is a brief overview of Hono features and usage.",[11,115183,115185],{"id":115184},"quick-start","Quick Start",[16,115187,115188],{},"To create a new Hono application:",[25,115190,115192],{"className":15902,"code":115191,"language":15904,"meta":30,"style":30},"npm create hono@latest\n",[20,115193,115194],{"__ignoreMap":30},[34,115195,115196,115198,115200],{"class":36,"line":37},[34,115197,8177],{"class":47},[34,115199,7077],{"class":54},[34,115201,115202],{"class":54}," hono@latest\n",[16,115204,115205],{},"Alternatively, use yarn, pnpm, bun, or deno.",[25,115207,115209],{"className":15902,"code":115208,"language":15904,"meta":30,"style":30},"yarn create hono\npnpm create hono@latest\nbun create hono@latest\ndeno init --npm hono@latest\n",[20,115210,115211,115220,115228,115236],{"__ignoreMap":30},[34,115212,115213,115215,115217],{"class":36,"line":37},[34,115214,13810],{"class":47},[34,115216,7077],{"class":54},[34,115218,115219],{"class":54}," hono\n",[34,115221,115222,115224,115226],{"class":36,"line":44},[34,115223,13788],{"class":47},[34,115225,7077],{"class":54},[34,115227,115202],{"class":54},[34,115229,115230,115232,115234],{"class":36,"line":58},[34,115231,14169],{"class":47},[34,115233,7077],{"class":54},[34,115235,115202],{"class":54},[34,115237,115238,115240,115242,115245],{"class":36,"line":65},[34,115239,46733],{"class":47},[34,115241,5255],{"class":54},[34,115243,115244],{"class":50}," --npm",[34,115246,115202],{"class":54},[11,115248,8221],{"id":8220},[309,115250,115251,115261,115271,115277,115283],{},[312,115252,115253,115256,115257,115260],{},[8471,115254,115255],{},"Ultrafast Router",": Uses a ",[20,115258,115259],{},"RegExpRouter"," for blazing-fast communication with optimized performance.",[312,115262,115263,115266,115267,115270],{},[8471,115264,115265],{},"Lightweight",": The ",[20,115268,115269],{},"hono/tiny"," preset is under 14kB.",[312,115272,115273,115276],{},[8471,115274,115275],{},"Multi-runtime",": Runs on multiple cloud platforms and runtime environments.",[312,115278,115279,115282],{},[8471,115280,115281],{},"Batteries Included",": Prebuilt middleware and helpers are available out of the box.",[312,115284,115285,115288],{},[8471,115286,115287],{},"TypeScript First",": Adds confidence with type precision, making development less error-prone.",[11,115290,115292],{"id":115291},"basic-app-usage","Basic App Usage",[16,115294,115295],{},"Below is a simple example of the Hono framework in use:",[25,115297,115299],{"className":571,"code":115298,"language":573,"meta":30,"style":30},"import { Hono } from 'hono';\nconst app = new Hono();\n\napp.get('/', (c) => c.text('Hello with Hono!'));\n\nexport default app;\n",[20,115300,115301,115315,115330,115334,115364,115368],{"__ignoreMap":30},[34,115302,115303,115305,115308,115310,115313],{"class":36,"line":37},[34,115304,581],{"class":580},[34,115306,115307],{"class":181}," { Hono } ",[34,115309,587],{"class":580},[34,115311,115312],{"class":54}," 'hono'",[34,115314,593],{"class":181},[34,115316,115317,115319,115321,115323,115325,115328],{"class":36,"line":44},[34,115318,14676],{"class":580},[34,115320,7253],{"class":50},[34,115322,683],{"class":580},[34,115324,809],{"class":580},[34,115326,115327],{"class":47}," Hono",[34,115329,851],{"class":181},[34,115331,115332],{"class":36,"line":58},[34,115333,62],{"emptyLinePlaceholder":61},[34,115335,115336,115338,115340,115342,115344,115346,115348,115350,115352,115355,115357,115359,115362],{"class":36,"line":65},[34,115337,75403],{"class":181},[34,115339,1573],{"class":47},[34,115341,1607],{"class":181},[34,115343,61825],{"class":54},[34,115345,75504],{"class":181},[34,115347,4377],{"class":675},[34,115349,4817],{"class":181},[34,115351,3361],{"class":580},[34,115353,115354],{"class":181}," c.",[34,115356,780],{"class":47},[34,115358,1607],{"class":181},[34,115360,115361],{"class":54},"'Hello with Hono!'",[34,115363,15223],{"class":181},[34,115365,115366],{"class":36,"line":71},[34,115367,62],{"emptyLinePlaceholder":61},[34,115369,115370,115372,115374],{"class":36,"line":77},[34,115371,652],{"class":580},[34,115373,7298],{"class":580},[34,115375,115376],{"class":181}," app;\n",[11,115378,115380],{"id":115379},"use-cases","Use Cases",[16,115382,115383],{},"Hono aligns well with modern distributed architecture; here are some highlighted use cases:",[28799,115385,115386,115389,115392],{},[312,115387,115388],{},"Building lightweight web APIs.",[312,115390,115391],{},"Acting as an interface for backend server communication proxies.",[312,115393,115394],{},"Perfect scaling fit at CDN-era superfleet deployments with edgeservers.\nExample project applications suiting libraries gaining full-stack coding/saas hosted middleware crisper manner.",[388,115396,115397],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":30,"searchDepth":44,"depth":44,"links":115399},[115400,115401,115402,115403,115404],{"id":13,"depth":44,"text":14},{"id":115184,"depth":44,"text":115185},{"id":8220,"depth":44,"text":8221},{"id":115291,"depth":44,"text":115292},{"id":115379,"depth":44,"text":115380},"A fast, lightweight, web framework that excels in web development.",{},"/hono/overview",{"title":115174,"description":115405},"hono/overview","hono",[115412,115410,115413],"web-framework","cloudflare-workers","kVfbZ2pLGIQVpYTt_uESUdcyCWNg4M9FObVfxkTQYXU",{"id":115416,"title":115417,"body":115418,"date":402,"description":115800,"extension":404,"meta":115801,"navigation":61,"order":263,"path":115802,"seo":115803,"stem":115804,"subject":1164,"tags":115805,"__hash__":115807},"topics/html/accessibility-attributes.md","Accessibility Attributes",{"type":8,"value":115419,"toc":115797},[115420,115423,115795],[11,115421,115417],{"id":115422},"accessibility-attributes",[25,115424,115426],{"className":1162,"code":115425,"language":1164,"meta":30,"style":30},"\u003C!-- ARIA roles and attributes -->\n\u003Cnav role=\"navigation\" aria-label=\"Main navigation\">\n  \u003Cul>\n    \u003Cli>\u003Ca href=\"/\" aria-current=\"page\">Home\u003C/a>\u003C/li>\n  \u003C/ul>\n\u003C/nav>\n\n\u003Cbutton aria-expanded=\"false\" aria-controls=\"menu-id\">Toggle Menu\u003C/button>\n\u003Cdiv id=\"menu-id\" aria-hidden=\"true\">Menu content\u003C/div>\n\n\u003C!-- Skip link for keyboard users -->\n\u003Ca href=\"#main-content\" class=\"skip-link\">Skip to main content\u003C/a>\n\n\u003C!-- Form accessibility -->\n\u003Clabel for=\"search\">Search:\u003C/label>\n\u003Cinput type=\"search\" id=\"search\" aria-describedby=\"search-hint\">\n\u003Cspan id=\"search-hint\">Enter keywords to search\u003C/span>\n\n\u003C!-- Image accessibility -->\n\u003Cimg src=\"chart.png\" alt=\"Sales chart showing 20% growth in Q4\">\n\u003Cimg src=\"decorative.png\" alt=\"\" role=\"presentation\">\n\n\u003C!-- Live regions for dynamic content -->\n\u003Cdiv aria-live=\"polite\" aria-atomic=\"true\">\n  Status messages appear here\n\u003C/div>\n",[20,115427,115428,115433,115458,115466,115500,115508,115516,115520,115549,115577,115581,115586,115613,115617,115622,115643,115671,115690,115694,115699,115722,115750,115754,115759,115782,115787],{"__ignoreMap":30},[34,115429,115430],{"class":36,"line":37},[34,115431,115432],{"class":40},"\u003C!-- ARIA roles and attributes -->\n",[34,115434,115435,115437,115440,115443,115445,115448,115451,115453,115456],{"class":36,"line":44},[34,115436,815],{"class":181},[34,115438,115439],{"class":177},"nav",[34,115441,115442],{"class":47}," role",[34,115444,1301],{"class":181},[34,115446,115447],{"class":54},"\"navigation\"",[34,115449,115450],{"class":47}," aria-label",[34,115452,1301],{"class":181},[34,115454,115455],{"class":54},"\"Main navigation\"",[34,115457,1248],{"class":181},[34,115459,115460,115462,115464],{"class":36,"line":58},[34,115461,1181],{"class":181},[34,115463,309],{"class":177},[34,115465,1248],{"class":181},[34,115467,115468,115470,115472,115474,115476,115478,115480,115482,115485,115487,115490,115492,115494,115496,115498],{"class":36,"line":65},[34,115469,1294],{"class":181},[34,115471,312],{"class":177},[34,115473,2040],{"class":181},[34,115475,145],{"class":177},[34,115477,46472],{"class":47},[34,115479,1301],{"class":181},[34,115481,81654],{"class":54},[34,115483,115484],{"class":47}," aria-current",[34,115486,1301],{"class":181},[34,115488,115489],{"class":54},"\"page\"",[34,115491,90331],{"class":181},[34,115493,145],{"class":177},[34,115495,2050],{"class":181},[34,115497,312],{"class":177},[34,115499,1248],{"class":181},[34,115501,115502,115504,115506],{"class":36,"line":71},[34,115503,8547],{"class":181},[34,115505,309],{"class":177},[34,115507,1248],{"class":181},[34,115509,115510,115512,115514],{"class":36,"line":77},[34,115511,2089],{"class":181},[34,115513,115439],{"class":177},[34,115515,1248],{"class":181},[34,115517,115518],{"class":36,"line":82},[34,115519,62],{"emptyLinePlaceholder":61},[34,115521,115522,115524,115526,115529,115531,115534,115537,115539,115542,115545,115547],{"class":36,"line":88},[34,115523,815],{"class":181},[34,115525,4509],{"class":177},[34,115527,115528],{"class":47}," aria-expanded",[34,115530,1301],{"class":181},[34,115532,115533],{"class":54},"\"false\"",[34,115535,115536],{"class":47}," aria-controls",[34,115538,1301],{"class":181},[34,115540,115541],{"class":54},"\"menu-id\"",[34,115543,115544],{"class":181},">Toggle Menu\u003C/",[34,115546,4509],{"class":177},[34,115548,1248],{"class":181},[34,115550,115551,115553,115555,115558,115560,115562,115565,115567,115570,115573,115575],{"class":36,"line":242},[34,115552,815],{"class":181},[34,115554,1240],{"class":177},[34,115556,115557],{"class":47}," id",[34,115559,1301],{"class":181},[34,115561,115541],{"class":54},[34,115563,115564],{"class":47}," aria-hidden",[34,115566,1301],{"class":181},[34,115568,115569],{"class":54},"\"true\"",[34,115571,115572],{"class":181},">Menu content\u003C/",[34,115574,1240],{"class":177},[34,115576,1248],{"class":181},[34,115578,115579],{"class":36,"line":250},[34,115580,62],{"emptyLinePlaceholder":61},[34,115582,115583],{"class":36,"line":263},[34,115584,115585],{"class":40},"\u003C!-- Skip link for keyboard users -->\n",[34,115587,115588,115590,115592,115594,115596,115599,115601,115603,115606,115609,115611],{"class":36,"line":275},[34,115589,815],{"class":181},[34,115591,145],{"class":177},[34,115593,46472],{"class":47},[34,115595,1301],{"class":181},[34,115597,115598],{"class":54},"\"#main-content\"",[34,115600,655],{"class":47},[34,115602,1301],{"class":181},[34,115604,115605],{"class":54},"\"skip-link\"",[34,115607,115608],{"class":181},">Skip to main content\u003C/",[34,115610,145],{"class":177},[34,115612,1248],{"class":181},[34,115614,115615],{"class":36,"line":700},[34,115616,62],{"emptyLinePlaceholder":61},[34,115618,115619],{"class":36,"line":706},[34,115620,115621],{"class":40},"\u003C!-- Form accessibility -->\n",[34,115623,115624,115626,115629,115631,115633,115636,115639,115641],{"class":36,"line":715},[34,115625,815],{"class":181},[34,115627,115628],{"class":177},"label",[34,115630,52988],{"class":47},[34,115632,1301],{"class":181},[34,115634,115635],{"class":54},"\"search\"",[34,115637,115638],{"class":181},">Search:\u003C/",[34,115640,115628],{"class":177},[34,115642,1248],{"class":181},[34,115644,115645,115647,115649,115651,115653,115655,115657,115659,115661,115664,115666,115669],{"class":36,"line":725},[34,115646,815],{"class":181},[34,115648,4600],{"class":177},[34,115650,62326],{"class":47},[34,115652,1301],{"class":181},[34,115654,115635],{"class":54},[34,115656,115557],{"class":47},[34,115658,1301],{"class":181},[34,115660,115635],{"class":54},[34,115662,115663],{"class":47}," aria-describedby",[34,115665,1301],{"class":181},[34,115667,115668],{"class":54},"\"search-hint\"",[34,115670,1248],{"class":181},[34,115672,115673,115675,115677,115679,115681,115683,115686,115688],{"class":36,"line":734},[34,115674,815],{"class":181},[34,115676,34],{"class":177},[34,115678,115557],{"class":47},[34,115680,1301],{"class":181},[34,115682,115668],{"class":54},[34,115684,115685],{"class":181},">Enter keywords to search\u003C/",[34,115687,34],{"class":177},[34,115689,1248],{"class":181},[34,115691,115692],{"class":36,"line":742},[34,115693,62],{"emptyLinePlaceholder":61},[34,115695,115696],{"class":36,"line":748},[34,115697,115698],{"class":40},"\u003C!-- Image accessibility -->\n",[34,115700,115701,115703,115705,115707,115709,115712,115715,115717,115720],{"class":36,"line":754},[34,115702,815],{"class":181},[34,115704,4484],{"class":177},[34,115706,86107],{"class":47},[34,115708,1301],{"class":181},[34,115710,115711],{"class":54},"\"chart.png\"",[34,115713,115714],{"class":47}," alt",[34,115716,1301],{"class":181},[34,115718,115719],{"class":54},"\"Sales chart showing 20% growth in Q4\"",[34,115721,1248],{"class":181},[34,115723,115724,115726,115728,115730,115732,115735,115737,115739,115741,115743,115745,115748],{"class":36,"line":759},[34,115725,815],{"class":181},[34,115727,4484],{"class":177},[34,115729,86107],{"class":47},[34,115731,1301],{"class":181},[34,115733,115734],{"class":54},"\"decorative.png\"",[34,115736,115714],{"class":47},[34,115738,1301],{"class":181},[34,115740,13962],{"class":54},[34,115742,115442],{"class":47},[34,115744,1301],{"class":181},[34,115746,115747],{"class":54},"\"presentation\"",[34,115749,1248],{"class":181},[34,115751,115752],{"class":36,"line":771},[34,115753,62],{"emptyLinePlaceholder":61},[34,115755,115756],{"class":36,"line":794},[34,115757,115758],{"class":40},"\u003C!-- Live regions for dynamic content -->\n",[34,115760,115761,115763,115765,115768,115770,115773,115776,115778,115780],{"class":36,"line":824},[34,115762,815],{"class":181},[34,115764,1240],{"class":177},[34,115766,115767],{"class":47}," aria-live",[34,115769,1301],{"class":181},[34,115771,115772],{"class":54},"\"polite\"",[34,115774,115775],{"class":47}," aria-atomic",[34,115777,1301],{"class":181},[34,115779,115569],{"class":54},[34,115781,1248],{"class":181},[34,115783,115784],{"class":36,"line":830},[34,115785,115786],{"class":181},"  Status messages appear here\n",[34,115788,115789,115791,115793],{"class":36,"line":839},[34,115790,2089],{"class":181},[34,115792,1240],{"class":177},[34,115794,1248],{"class":181},[388,115796,1418],{},{"title":30,"searchDepth":44,"depth":44,"links":115798},[115799],{"id":115422,"depth":44,"text":115417},"Accessibility Attributes in HTML.",{},"/html/accessibility-attributes",{"title":115417,"description":115800},"html/accessibility-attributes",[1164,38615,982,115806],"markup","TJPkcjgfRwjBTUBjrlLECRqpw1jl2_I5YemG5hUcMdQ",{"id":115809,"title":115810,"body":115811,"date":402,"description":116006,"extension":404,"meta":116007,"navigation":61,"order":44,"path":116008,"seo":116009,"stem":116010,"subject":1164,"tags":116011,"__hash__":116012},"topics/html/document-structure.md","Document Structure",{"type":8,"value":115812,"toc":116003},[115813,115816,116000],[11,115814,115810],{"id":115815},"document-structure",[25,115817,115819],{"className":1162,"code":115818,"language":1164,"meta":30,"style":30},"\u003C!DOCTYPE html>\n\u003Chtml lang=\"en\">\n\u003Chead>\n  \u003Cmeta charset=\"UTF-8\">\n  \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  \u003Cmeta name=\"description\" content=\"Page description\">\n  \u003Ctitle>Page Title\u003C/title>\n  \u003Clink rel=\"stylesheet\" href=\"styles.css\">\n\u003C/head>\n\u003Cbody>\n  \u003C!-- Page content goes here -->\n  \u003Cscript src=\"script.js\">\u003C/script>\n\u003C/body>\n\u003C/html>\n",[20,115820,115821,115831,115845,115853,115867,115887,115909,115922,115943,115951,115959,115964,115984,115992],{"__ignoreMap":30},[34,115822,115823,115825,115827,115829],{"class":36,"line":37},[34,115824,46378],{"class":181},[34,115826,46381],{"class":177},[34,115828,46384],{"class":47},[34,115830,1248],{"class":181},[34,115832,115833,115835,115837,115839,115841,115843],{"class":36,"line":44},[34,115834,815],{"class":181},[34,115836,1164],{"class":177},[34,115838,46395],{"class":47},[34,115840,1301],{"class":181},[34,115842,46400],{"class":54},[34,115844,1248],{"class":181},[34,115846,115847,115849,115851],{"class":36,"line":58},[34,115848,815],{"class":181},[34,115850,13118],{"class":177},[34,115852,1248],{"class":181},[34,115854,115855,115857,115859,115861,115863,115865],{"class":36,"line":65},[34,115856,1181],{"class":181},[34,115858,46417],{"class":177},[34,115860,46420],{"class":47},[34,115862,1301],{"class":181},[34,115864,46425],{"class":54},[34,115866,1248],{"class":181},[34,115868,115869,115871,115873,115875,115877,115879,115881,115883,115885],{"class":36,"line":71},[34,115870,1181],{"class":181},[34,115872,46417],{"class":177},[34,115874,12323],{"class":47},[34,115876,1301],{"class":181},[34,115878,46440],{"class":54},[34,115880,35532],{"class":47},[34,115882,1301],{"class":181},[34,115884,46447],{"class":54},[34,115886,1248],{"class":181},[34,115888,115889,115891,115893,115895,115897,115900,115902,115904,115907],{"class":36,"line":77},[34,115890,1181],{"class":181},[34,115892,46417],{"class":177},[34,115894,12323],{"class":47},[34,115896,1301],{"class":181},[34,115898,115899],{"class":54},"\"description\"",[34,115901,35532],{"class":47},[34,115903,1301],{"class":181},[34,115905,115906],{"class":54},"\"Page description\"",[34,115908,1248],{"class":181},[34,115910,115911,115913,115915,115918,115920],{"class":36,"line":82},[34,115912,1181],{"class":181},[34,115914,953],{"class":177},[34,115916,115917],{"class":181},">Page Title\u003C/",[34,115919,953],{"class":177},[34,115921,1248],{"class":181},[34,115923,115924,115926,115928,115930,115932,115934,115936,115938,115941],{"class":36,"line":88},[34,115925,1181],{"class":181},[34,115927,46469],{"class":177},[34,115929,46480],{"class":47},[34,115931,1301],{"class":181},[34,115933,46485],{"class":54},[34,115935,46472],{"class":47},[34,115937,1301],{"class":181},[34,115939,115940],{"class":54},"\"styles.css\"",[34,115942,1248],{"class":181},[34,115944,115945,115947,115949],{"class":36,"line":242},[34,115946,2089],{"class":181},[34,115948,13118],{"class":177},[34,115950,1248],{"class":181},[34,115952,115953,115955,115957],{"class":36,"line":250},[34,115954,815],{"class":181},[34,115956,46502],{"class":177},[34,115958,1248],{"class":181},[34,115960,115961],{"class":36,"line":263},[34,115962,115963],{"class":40},"  \u003C!-- Page content goes here -->\n",[34,115965,115966,115968,115971,115973,115975,115978,115980,115982],{"class":36,"line":275},[34,115967,1181],{"class":181},[34,115969,115970],{"class":177},"script",[34,115972,86107],{"class":47},[34,115974,1301],{"class":181},[34,115976,115977],{"class":54},"\"script.js\"",[34,115979,2050],{"class":181},[34,115981,115970],{"class":177},[34,115983,1248],{"class":181},[34,115985,115986,115988,115990],{"class":36,"line":700},[34,115987,2089],{"class":181},[34,115989,46502],{"class":177},[34,115991,1248],{"class":181},[34,115993,115994,115996,115998],{"class":36,"line":706},[34,115995,2089],{"class":181},[34,115997,1164],{"class":177},[34,115999,1248],{"class":181},[388,116001,116002],{},"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 .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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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":30,"searchDepth":44,"depth":44,"links":116004},[116005],{"id":115815,"depth":44,"text":115810},"Document Structure in HTML.",{},"/html/document-structure",{"title":115810,"description":116006},"html/document-structure",[1164,38615,982,115806],"D4sFNpkKqie6TQC2CsB-B_-pVurNVUClzK2yGWW24Eg",{"id":116014,"title":116015,"body":116016,"date":402,"description":116850,"extension":404,"meta":116851,"navigation":61,"order":88,"path":116852,"seo":116853,"stem":116854,"subject":1164,"tags":116855,"__hash__":116856},"topics/html/forms.md","Forms",{"type":8,"value":116017,"toc":116847},[116018,116021,116845],[11,116019,116015],{"id":116020},"forms",[25,116022,116024],{"className":1162,"code":116023,"language":1164,"meta":30,"style":30},"\u003Cform action=\"/submit\" method=\"POST\">\n  \u003C!-- Text inputs -->\n  \u003Clabel for=\"name\">Name:\u003C/label>\n  \u003Cinput type=\"text\" id=\"name\" name=\"name\" required placeholder=\"Enter name\">\n\n  \u003Clabel for=\"email\">Email:\u003C/label>\n  \u003Cinput type=\"email\" id=\"email\" name=\"email\" required>\n\n  \u003Clabel for=\"password\">Password:\u003C/label>\n  \u003Cinput type=\"password\" id=\"password\" name=\"password\" minlength=\"8\">\n\n  \u003C!-- Other input types -->\n  \u003Cinput type=\"number\" min=\"0\" max=\"100\" step=\"1\">\n  \u003Cinput type=\"date\">\n  \u003Cinput type=\"tel\" pattern=\"[0-9]{3}-[0-9]{3}-[0-9]{4}\">\n  \u003Cinput type=\"url\">\n  \u003Cinput type=\"search\">\n  \u003Cinput type=\"color\">\n  \u003Cinput type=\"range\" min=\"0\" max=\"100\">\n  \u003Cinput type=\"file\" accept=\"image/*\" multiple>\n\n  \u003C!-- Textarea -->\n  \u003Clabel for=\"message\">Message:\u003C/label>\n  \u003Ctextarea id=\"message\" name=\"message\" rows=\"4\" cols=\"50\">\u003C/textarea>\n\n  \u003C!-- Select dropdown -->\n  \u003Clabel for=\"country\">Country:\u003C/label>\n  \u003Cselect id=\"country\" name=\"country\">\n    \u003Coption value=\"\">Select...\u003C/option>\n    \u003Coption value=\"us\">United States\u003C/option>\n    \u003Coption value=\"uk\">United Kingdom\u003C/option>\n  \u003C/select>\n\n  \u003C!-- Radio buttons -->\n  \u003Cfieldset>\n    \u003Clegend>Gender:\u003C/legend>\n    \u003Cinput type=\"radio\" id=\"male\" name=\"gender\" value=\"male\">\n    \u003Clabel for=\"male\">Male\u003C/label>\n    \u003Cinput type=\"radio\" id=\"female\" name=\"gender\" value=\"female\">\n    \u003Clabel for=\"female\">Female\u003C/label>\n  \u003C/fieldset>\n\n  \u003C!-- Checkbox -->\n  \u003Cinput type=\"checkbox\" id=\"agree\" name=\"agree\" required>\n  \u003Clabel for=\"agree\">I agree to terms\u003C/label>\n\n  \u003C!-- Submit -->\n  \u003Cbutton type=\"submit\">Submit\u003C/button>\n  \u003Cbutton type=\"reset\">Reset\u003C/button>\n\u003C/form>\n",[20,116025,116026,116049,116054,116073,116109,116113,116133,116161,116165,116184,116218,116222,116227,116265,116280,116302,116317,116331,116346,116373,116399,116403,116408,116427,116468,116472,116477,116497,116517,116537,116557,116577,116585,116589,116594,116603,116617,116652,116671,116704,116723,116731,116735,116740,116770,116789,116793,116798,116817,116837],{"__ignoreMap":30},[34,116027,116028,116030,116032,116035,116037,116040,116043,116045,116047],{"class":36,"line":37},[34,116029,815],{"class":181},[34,116031,4617],{"class":177},[34,116033,116034],{"class":47}," action",[34,116036,1301],{"class":181},[34,116038,116039],{"class":54},"\"/submit\"",[34,116041,116042],{"class":47}," method",[34,116044,1301],{"class":181},[34,116046,14828],{"class":54},[34,116048,1248],{"class":181},[34,116050,116051],{"class":36,"line":44},[34,116052,116053],{"class":40},"  \u003C!-- Text inputs -->\n",[34,116055,116056,116058,116060,116062,116064,116066,116069,116071],{"class":36,"line":58},[34,116057,1181],{"class":181},[34,116059,115628],{"class":177},[34,116061,52988],{"class":47},[34,116063,1301],{"class":181},[34,116065,4650],{"class":54},[34,116067,116068],{"class":181},">Name:\u003C/",[34,116070,115628],{"class":177},[34,116072,1248],{"class":181},[34,116074,116075,116077,116079,116081,116083,116085,116087,116089,116091,116093,116095,116097,116099,116102,116104,116107],{"class":36,"line":65},[34,116076,1181],{"class":181},[34,116078,4600],{"class":177},[34,116080,62326],{"class":47},[34,116082,1301],{"class":181},[34,116084,41329],{"class":54},[34,116086,115557],{"class":47},[34,116088,1301],{"class":181},[34,116090,4650],{"class":54},[34,116092,12323],{"class":47},[34,116094,1301],{"class":181},[34,116096,4650],{"class":54},[34,116098,37444],{"class":47},[34,116100,116101],{"class":47}," placeholder",[34,116103,1301],{"class":181},[34,116105,116106],{"class":54},"\"Enter name\"",[34,116108,1248],{"class":181},[34,116110,116111],{"class":36,"line":71},[34,116112,62],{"emptyLinePlaceholder":61},[34,116114,116115,116117,116119,116121,116123,116126,116129,116131],{"class":36,"line":77},[34,116116,1181],{"class":181},[34,116118,115628],{"class":177},[34,116120,52988],{"class":47},[34,116122,1301],{"class":181},[34,116124,116125],{"class":54},"\"email\"",[34,116127,116128],{"class":181},">Email:\u003C/",[34,116130,115628],{"class":177},[34,116132,1248],{"class":181},[34,116134,116135,116137,116139,116141,116143,116145,116147,116149,116151,116153,116155,116157,116159],{"class":36,"line":82},[34,116136,1181],{"class":181},[34,116138,4600],{"class":177},[34,116140,62326],{"class":47},[34,116142,1301],{"class":181},[34,116144,116125],{"class":54},[34,116146,115557],{"class":47},[34,116148,1301],{"class":181},[34,116150,116125],{"class":54},[34,116152,12323],{"class":47},[34,116154,1301],{"class":181},[34,116156,116125],{"class":54},[34,116158,37444],{"class":47},[34,116160,1248],{"class":181},[34,116162,116163],{"class":36,"line":88},[34,116164,62],{"emptyLinePlaceholder":61},[34,116166,116167,116169,116171,116173,116175,116177,116180,116182],{"class":36,"line":242},[34,116168,1181],{"class":181},[34,116170,115628],{"class":177},[34,116172,52988],{"class":47},[34,116174,1301],{"class":181},[34,116176,58396],{"class":54},[34,116178,116179],{"class":181},">Password:\u003C/",[34,116181,115628],{"class":177},[34,116183,1248],{"class":181},[34,116185,116186,116188,116190,116192,116194,116196,116198,116200,116202,116204,116206,116208,116211,116213,116216],{"class":36,"line":250},[34,116187,1181],{"class":181},[34,116189,4600],{"class":177},[34,116191,62326],{"class":47},[34,116193,1301],{"class":181},[34,116195,58396],{"class":54},[34,116197,115557],{"class":47},[34,116199,1301],{"class":181},[34,116201,58396],{"class":54},[34,116203,12323],{"class":47},[34,116205,1301],{"class":181},[34,116207,58396],{"class":54},[34,116209,116210],{"class":47}," minlength",[34,116212,1301],{"class":181},[34,116214,116215],{"class":54},"\"8\"",[34,116217,1248],{"class":181},[34,116219,116220],{"class":36,"line":263},[34,116221,62],{"emptyLinePlaceholder":61},[34,116223,116224],{"class":36,"line":275},[34,116225,116226],{"class":40},"  \u003C!-- Other input types -->\n",[34,116228,116229,116231,116233,116235,116237,116239,116242,116244,116247,116250,116252,116255,116258,116260,116263],{"class":36,"line":700},[34,116230,1181],{"class":181},[34,116232,4600],{"class":177},[34,116234,62326],{"class":47},[34,116236,1301],{"class":181},[34,116238,83832],{"class":54},[34,116240,116241],{"class":47}," min",[34,116243,1301],{"class":181},[34,116245,116246],{"class":54},"\"0\"",[34,116248,116249],{"class":47}," max",[34,116251,1301],{"class":181},[34,116253,116254],{"class":54},"\"100\"",[34,116256,116257],{"class":47}," step",[34,116259,1301],{"class":181},[34,116261,116262],{"class":54},"\"1\"",[34,116264,1248],{"class":181},[34,116266,116267,116269,116271,116273,116275,116278],{"class":36,"line":706},[34,116268,1181],{"class":181},[34,116270,4600],{"class":177},[34,116272,62326],{"class":47},[34,116274,1301],{"class":181},[34,116276,116277],{"class":54},"\"date\"",[34,116279,1248],{"class":181},[34,116281,116282,116284,116286,116288,116290,116293,116295,116297,116300],{"class":36,"line":715},[34,116283,1181],{"class":181},[34,116285,4600],{"class":177},[34,116287,62326],{"class":47},[34,116289,1301],{"class":181},[34,116291,116292],{"class":54},"\"tel\"",[34,116294,12334],{"class":47},[34,116296,1301],{"class":181},[34,116298,116299],{"class":54},"\"[0-9]{3}-[0-9]{3}-[0-9]{4}\"",[34,116301,1248],{"class":181},[34,116303,116304,116306,116308,116310,116312,116315],{"class":36,"line":725},[34,116305,1181],{"class":181},[34,116307,4600],{"class":177},[34,116309,62326],{"class":47},[34,116311,1301],{"class":181},[34,116313,116314],{"class":54},"\"url\"",[34,116316,1248],{"class":181},[34,116318,116319,116321,116323,116325,116327,116329],{"class":36,"line":734},[34,116320,1181],{"class":181},[34,116322,4600],{"class":177},[34,116324,62326],{"class":47},[34,116326,1301],{"class":181},[34,116328,115635],{"class":54},[34,116330,1248],{"class":181},[34,116332,116333,116335,116337,116339,116341,116344],{"class":36,"line":742},[34,116334,1181],{"class":181},[34,116336,4600],{"class":177},[34,116338,62326],{"class":47},[34,116340,1301],{"class":181},[34,116342,116343],{"class":54},"\"color\"",[34,116345,1248],{"class":181},[34,116347,116348,116350,116352,116354,116356,116359,116361,116363,116365,116367,116369,116371],{"class":36,"line":748},[34,116349,1181],{"class":181},[34,116351,4600],{"class":177},[34,116353,62326],{"class":47},[34,116355,1301],{"class":181},[34,116357,116358],{"class":54},"\"range\"",[34,116360,116241],{"class":47},[34,116362,1301],{"class":181},[34,116364,116246],{"class":54},[34,116366,116249],{"class":47},[34,116368,1301],{"class":181},[34,116370,116254],{"class":54},[34,116372,1248],{"class":181},[34,116374,116375,116377,116379,116381,116383,116386,116389,116391,116394,116397],{"class":36,"line":754},[34,116376,1181],{"class":181},[34,116378,4600],{"class":177},[34,116380,62326],{"class":47},[34,116382,1301],{"class":181},[34,116384,116385],{"class":54},"\"file\"",[34,116387,116388],{"class":47}," accept",[34,116390,1301],{"class":181},[34,116392,116393],{"class":54},"\"image/*\"",[34,116395,116396],{"class":47}," multiple",[34,116398,1248],{"class":181},[34,116400,116401],{"class":36,"line":759},[34,116402,62],{"emptyLinePlaceholder":61},[34,116404,116405],{"class":36,"line":771},[34,116406,116407],{"class":40},"  \u003C!-- Textarea -->\n",[34,116409,116410,116412,116414,116416,116418,116420,116423,116425],{"class":36,"line":794},[34,116411,1181],{"class":181},[34,116413,115628],{"class":177},[34,116415,52988],{"class":47},[34,116417,1301],{"class":181},[34,116419,49358],{"class":54},[34,116421,116422],{"class":181},">Message:\u003C/",[34,116424,115628],{"class":177},[34,116426,1248],{"class":181},[34,116428,116429,116431,116434,116436,116438,116440,116442,116444,116446,116449,116451,116454,116457,116459,116462,116464,116466],{"class":36,"line":824},[34,116430,1181],{"class":181},[34,116432,116433],{"class":177},"textarea",[34,116435,115557],{"class":47},[34,116437,1301],{"class":181},[34,116439,49358],{"class":54},[34,116441,12323],{"class":47},[34,116443,1301],{"class":181},[34,116445,49358],{"class":54},[34,116447,116448],{"class":47}," rows",[34,116450,1301],{"class":181},[34,116452,116453],{"class":54},"\"4\"",[34,116455,116456],{"class":47}," cols",[34,116458,1301],{"class":181},[34,116460,116461],{"class":54},"\"50\"",[34,116463,2050],{"class":181},[34,116465,116433],{"class":177},[34,116467,1248],{"class":181},[34,116469,116470],{"class":36,"line":830},[34,116471,62],{"emptyLinePlaceholder":61},[34,116473,116474],{"class":36,"line":839},[34,116475,116476],{"class":40},"  \u003C!-- Select dropdown -->\n",[34,116478,116479,116481,116483,116485,116487,116490,116493,116495],{"class":36,"line":854},[34,116480,1181],{"class":181},[34,116482,115628],{"class":177},[34,116484,52988],{"class":47},[34,116486,1301],{"class":181},[34,116488,116489],{"class":54},"\"country\"",[34,116491,116492],{"class":181},">Country:\u003C/",[34,116494,115628],{"class":177},[34,116496,1248],{"class":181},[34,116498,116499,116501,116503,116505,116507,116509,116511,116513,116515],{"class":36,"line":860},[34,116500,1181],{"class":181},[34,116502,58611],{"class":177},[34,116504,115557],{"class":47},[34,116506,1301],{"class":181},[34,116508,116489],{"class":54},[34,116510,12323],{"class":47},[34,116512,1301],{"class":181},[34,116514,116489],{"class":54},[34,116516,1248],{"class":181},[34,116518,116519,116521,116524,116526,116528,116530,116533,116535],{"class":36,"line":865},[34,116520,1294],{"class":181},[34,116522,116523],{"class":177},"option",[34,116525,18389],{"class":47},[34,116527,1301],{"class":181},[34,116529,13962],{"class":54},[34,116531,116532],{"class":181},">Select...\u003C/",[34,116534,116523],{"class":177},[34,116536,1248],{"class":181},[34,116538,116539,116541,116543,116545,116547,116550,116553,116555],{"class":36,"line":870},[34,116540,1294],{"class":181},[34,116542,116523],{"class":177},[34,116544,18389],{"class":47},[34,116546,1301],{"class":181},[34,116548,116549],{"class":54},"\"us\"",[34,116551,116552],{"class":181},">United States\u003C/",[34,116554,116523],{"class":177},[34,116556,1248],{"class":181},[34,116558,116559,116561,116563,116565,116567,116570,116573,116575],{"class":36,"line":876},[34,116560,1294],{"class":181},[34,116562,116523],{"class":177},[34,116564,18389],{"class":47},[34,116566,1301],{"class":181},[34,116568,116569],{"class":54},"\"uk\"",[34,116571,116572],{"class":181},">United Kingdom\u003C/",[34,116574,116523],{"class":177},[34,116576,1248],{"class":181},[34,116578,116579,116581,116583],{"class":36,"line":885},[34,116580,8547],{"class":181},[34,116582,58611],{"class":177},[34,116584,1248],{"class":181},[34,116586,116587],{"class":36,"line":895},[34,116588,62],{"emptyLinePlaceholder":61},[34,116590,116591],{"class":36,"line":904},[34,116592,116593],{"class":40},"  \u003C!-- Radio buttons -->\n",[34,116595,116596,116598,116601],{"class":36,"line":915},[34,116597,1181],{"class":181},[34,116599,116600],{"class":177},"fieldset",[34,116602,1248],{"class":181},[34,116604,116605,116607,116610,116613,116615],{"class":36,"line":927},[34,116606,1294],{"class":181},[34,116608,116609],{"class":177},"legend",[34,116611,116612],{"class":181},">Gender:\u003C/",[34,116614,116609],{"class":177},[34,116616,1248],{"class":181},[34,116618,116619,116621,116623,116625,116627,116630,116632,116634,116637,116639,116641,116644,116646,116648,116650],{"class":36,"line":932},[34,116620,1294],{"class":181},[34,116622,4600],{"class":177},[34,116624,62326],{"class":47},[34,116626,1301],{"class":181},[34,116628,116629],{"class":54},"\"radio\"",[34,116631,115557],{"class":47},[34,116633,1301],{"class":181},[34,116635,116636],{"class":54},"\"male\"",[34,116638,12323],{"class":47},[34,116640,1301],{"class":181},[34,116642,116643],{"class":54},"\"gender\"",[34,116645,18389],{"class":47},[34,116647,1301],{"class":181},[34,116649,116636],{"class":54},[34,116651,1248],{"class":181},[34,116653,116654,116656,116658,116660,116662,116664,116667,116669],{"class":36,"line":944},[34,116655,1294],{"class":181},[34,116657,115628],{"class":177},[34,116659,52988],{"class":47},[34,116661,1301],{"class":181},[34,116663,116636],{"class":54},[34,116665,116666],{"class":181},">Male\u003C/",[34,116668,115628],{"class":177},[34,116670,1248],{"class":181},[34,116672,116673,116675,116677,116679,116681,116683,116685,116687,116690,116692,116694,116696,116698,116700,116702],{"class":36,"line":966},[34,116674,1294],{"class":181},[34,116676,4600],{"class":177},[34,116678,62326],{"class":47},[34,116680,1301],{"class":181},[34,116682,116629],{"class":54},[34,116684,115557],{"class":47},[34,116686,1301],{"class":181},[34,116688,116689],{"class":54},"\"female\"",[34,116691,12323],{"class":47},[34,116693,1301],{"class":181},[34,116695,116643],{"class":54},[34,116697,18389],{"class":47},[34,116699,1301],{"class":181},[34,116701,116689],{"class":54},[34,116703,1248],{"class":181},[34,116705,116706,116708,116710,116712,116714,116716,116719,116721],{"class":36,"line":1948},[34,116707,1294],{"class":181},[34,116709,115628],{"class":177},[34,116711,52988],{"class":47},[34,116713,1301],{"class":181},[34,116715,116689],{"class":54},[34,116717,116718],{"class":181},">Female\u003C/",[34,116720,115628],{"class":177},[34,116722,1248],{"class":181},[34,116724,116725,116727,116729],{"class":36,"line":1953},[34,116726,8547],{"class":181},[34,116728,116600],{"class":177},[34,116730,1248],{"class":181},[34,116732,116733],{"class":36,"line":3616},[34,116734,62],{"emptyLinePlaceholder":61},[34,116736,116737],{"class":36,"line":3622},[34,116738,116739],{"class":40},"  \u003C!-- Checkbox -->\n",[34,116741,116742,116744,116746,116748,116750,116753,116755,116757,116760,116762,116764,116766,116768],{"class":36,"line":3642},[34,116743,1181],{"class":181},[34,116745,4600],{"class":177},[34,116747,62326],{"class":47},[34,116749,1301],{"class":181},[34,116751,116752],{"class":54},"\"checkbox\"",[34,116754,115557],{"class":47},[34,116756,1301],{"class":181},[34,116758,116759],{"class":54},"\"agree\"",[34,116761,12323],{"class":47},[34,116763,1301],{"class":181},[34,116765,116759],{"class":54},[34,116767,37444],{"class":47},[34,116769,1248],{"class":181},[34,116771,116772,116774,116776,116778,116780,116782,116785,116787],{"class":36,"line":3657},[34,116773,1181],{"class":181},[34,116775,115628],{"class":177},[34,116777,52988],{"class":47},[34,116779,1301],{"class":181},[34,116781,116759],{"class":54},[34,116783,116784],{"class":181},">I agree to terms\u003C/",[34,116786,115628],{"class":177},[34,116788,1248],{"class":181},[34,116790,116791],{"class":36,"line":3663},[34,116792,62],{"emptyLinePlaceholder":61},[34,116794,116795],{"class":36,"line":3669},[34,116796,116797],{"class":40},"  \u003C!-- Submit -->\n",[34,116799,116800,116802,116804,116806,116808,116810,116813,116815],{"class":36,"line":3675},[34,116801,1181],{"class":181},[34,116803,4509],{"class":177},[34,116805,62326],{"class":47},[34,116807,1301],{"class":181},[34,116809,74790],{"class":54},[34,116811,116812],{"class":181},">Submit\u003C/",[34,116814,4509],{"class":177},[34,116816,1248],{"class":181},[34,116818,116819,116821,116823,116825,116827,116830,116833,116835],{"class":36,"line":3693},[34,116820,1181],{"class":181},[34,116822,4509],{"class":177},[34,116824,62326],{"class":47},[34,116826,1301],{"class":181},[34,116828,116829],{"class":54},"\"reset\"",[34,116831,116832],{"class":181},">Reset\u003C/",[34,116834,4509],{"class":177},[34,116836,1248],{"class":181},[34,116838,116839,116841,116843],{"class":36,"line":3707},[34,116840,2089],{"class":181},[34,116842,4617],{"class":177},[34,116844,1248],{"class":181},[388,116846,116002],{},{"title":30,"searchDepth":44,"depth":44,"links":116848},[116849],{"id":116020,"depth":44,"text":116015},"Forms in HTML.",{},"/html/forms",{"title":116015,"description":116850},"html/forms",[1164,38615,982,115806],"iW3Xn3lZXCrjdQXY9J3YNgNOe13aYDC7hXOUipwLNKU",{"id":116858,"title":116859,"body":116860,"date":402,"description":117016,"extension":404,"meta":117017,"navigation":61,"order":275,"path":117018,"seo":117019,"stem":117020,"subject":1164,"tags":117021,"__hash__":117022},"topics/html/global-attributes.md","Global Attributes",{"type":8,"value":116861,"toc":117013},[116862,116865,117010],[11,116863,116859],{"id":116864},"global-attributes",[25,116866,116868],{"className":1162,"code":116867,"language":1164,"meta":30,"style":30},"\u003C!-- Common attributes available on all elements -->\n\u003Cdiv\n  id=\"unique-id\"           \u003C!-- Unique identifier -->\n  class=\"class1 class2\"    \u003C!-- CSS classes -->\n  style=\"color: red;\"      \u003C!-- Inline styles (avoid) -->\n  title=\"Tooltip text\"     \u003C!-- Tooltip on hover -->\n  data-custom=\"value\"      \u003C!-- Custom data attributes -->\n  hidden                   \u003C!-- Hide element -->\n  tabindex=\"0\"             \u003C!-- Tab order -->\n  lang=\"en\"                \u003C!-- Language -->\n  dir=\"ltr\"                \u003C!-- Text direction -->\n  contenteditable=\"true\"   \u003C!-- Make editable -->\n  draggable=\"true\"         \u003C!-- Enable drag and drop -->\n  spellcheck=\"true\"        \u003C!-- Enable spell checking -->\n>\n  Content\n\u003C/div>\n",[20,116869,116870,116875,116882,116905,116913,116921,116929,116937,116945,116953,116961,116969,116977,116985,116993,116997,117002],{"__ignoreMap":30},[34,116871,116872],{"class":36,"line":37},[34,116873,116874],{"class":40},"\u003C!-- Common attributes available on all elements -->\n",[34,116876,116877,116879],{"class":36,"line":44},[34,116878,815],{"class":181},[34,116880,116881],{"class":177},"div\n",[34,116883,116884,116887,116889,116892,116895,116898,116901,116903],{"class":36,"line":58},[34,116885,116886],{"class":47},"  id",[34,116888,1301],{"class":181},[34,116890,116891],{"class":54},"\"unique-id\"",[34,116893,116894],{"class":24316},"           \u003C!--",[34,116896,116897],{"class":47}," Unique",[34,116899,116900],{"class":47}," identifier",[34,116902,99171],{"class":47},[34,116904,1248],{"class":181},[34,116906,116907,116910],{"class":36,"line":65},[34,116908,116909],{"class":181},"  class=\"class1 class2\"    ",[34,116911,116912],{"class":40},"\u003C!-- CSS classes -->\n",[34,116914,116915,116918],{"class":36,"line":71},[34,116916,116917],{"class":181},"  style=\"color: red;\"      ",[34,116919,116920],{"class":40},"\u003C!-- Inline styles (avoid) -->\n",[34,116922,116923,116926],{"class":36,"line":77},[34,116924,116925],{"class":181},"  title=\"Tooltip text\"     ",[34,116927,116928],{"class":40},"\u003C!-- Tooltip on hover -->\n",[34,116930,116931,116934],{"class":36,"line":82},[34,116932,116933],{"class":181},"  data-custom=\"value\"      ",[34,116935,116936],{"class":40},"\u003C!-- Custom data attributes -->\n",[34,116938,116939,116942],{"class":36,"line":88},[34,116940,116941],{"class":181},"  hidden                   ",[34,116943,116944],{"class":40},"\u003C!-- Hide element -->\n",[34,116946,116947,116950],{"class":36,"line":242},[34,116948,116949],{"class":181},"  tabindex=\"0\"             ",[34,116951,116952],{"class":40},"\u003C!-- Tab order -->\n",[34,116954,116955,116958],{"class":36,"line":250},[34,116956,116957],{"class":181},"  lang=\"en\"                ",[34,116959,116960],{"class":40},"\u003C!-- Language -->\n",[34,116962,116963,116966],{"class":36,"line":263},[34,116964,116965],{"class":181},"  dir=\"ltr\"                ",[34,116967,116968],{"class":40},"\u003C!-- Text direction -->\n",[34,116970,116971,116974],{"class":36,"line":275},[34,116972,116973],{"class":181},"  contenteditable=\"true\"   ",[34,116975,116976],{"class":40},"\u003C!-- Make editable -->\n",[34,116978,116979,116982],{"class":36,"line":700},[34,116980,116981],{"class":181},"  draggable=\"true\"         ",[34,116983,116984],{"class":40},"\u003C!-- Enable drag and drop -->\n",[34,116986,116987,116990],{"class":36,"line":706},[34,116988,116989],{"class":181},"  spellcheck=\"true\"        ",[34,116991,116992],{"class":40},"\u003C!-- Enable spell checking -->\n",[34,116994,116995],{"class":36,"line":715},[34,116996,1248],{"class":181},[34,116998,116999],{"class":36,"line":725},[34,117000,117001],{"class":181},"  Content\n",[34,117003,117004,117006,117008],{"class":36,"line":734},[34,117005,2089],{"class":181},[34,117007,1240],{"class":177},[34,117009,1248],{"class":181},[388,117011,117012],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .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 .s7hpK, html code.shiki .s7hpK{--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic}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":30,"searchDepth":44,"depth":44,"links":117014},[117015],{"id":116864,"depth":44,"text":116859},"Global Attributes in HTML.",{},"/html/global-attributes",{"title":116859,"description":117016},"html/global-attributes",[1164,38615,982,115806],"MlFocpZgmwa0S3V5r6ocikpKkSVUXMzywdqh3nfle9w",{"id":117024,"title":117025,"body":117026,"date":402,"description":117040,"extension":404,"meta":117041,"navigation":61,"order":706,"path":117042,"seo":117043,"stem":117044,"subject":1164,"tags":117045,"__hash__":117046},"topics/html/html-versions.md","HTML Versions",{"type":8,"value":117027,"toc":117037},[117028,117031],[11,117029,117025],{"id":117030},"html-versions",[25,117032,117035],{"className":117033,"code":117034,"language":780,"meta":30},[13703],"HTML 1.0    1993    First version, basic elements\nHTML 2.0    1995    Standard version, forms added\nHTML 3.2    1997    Tables, applets, text flow\nHTML 4.01   1999    Stylesheets, scripting, frames\nXHTML 1.0   2000    HTML as XML, stricter syntax\nXHTML 1.1   2001    Modularized XHTML\nHTML5       2014    Semantic elements, audio/video, canvas, APIs\nHTML5.1     2016    Minor updates, picture element\nHTML5.2     2017    Payment Request API, dialog element\nHTML Living Standard (ongoing) - Continuously updated by WHATWG\n",[20,117036,117034],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":117038},[117039],{"id":117030,"depth":44,"text":117025},"HTML Versions in HTML.",{},"/html/html-versions",{"title":117025,"description":117040},"html/html-versions",[1164,38615,982,115806],"_Q0OQ5CLLgi3SBn2rltn1sz-bcoOJPgxcRKTaq2yoWY",{"id":117048,"title":117049,"body":117050,"date":402,"description":117440,"extension":404,"meta":117441,"navigation":61,"order":82,"path":117442,"seo":117443,"stem":117444,"subject":1164,"tags":117445,"__hash__":117446},"topics/html/images-and-media.md","Images and Media",{"type":8,"value":117051,"toc":117437},[117052,117055,117435],[11,117053,117049],{"id":117054},"images-and-media",[25,117056,117058],{"className":1162,"code":117057,"language":1164,"meta":30,"style":30},"\u003C!-- Images -->\n\u003Cimg src=\"image.jpg\" alt=\"Description\" width=\"300\" height=\"200\">\n\n\u003C!-- Responsive images -->\n\u003Cpicture>\n  \u003Csource media=\"(min-width: 800px)\" srcset=\"large.jpg\">\n  \u003Csource media=\"(min-width: 400px)\" srcset=\"medium.jpg\">\n  \u003Cimg src=\"small.jpg\" alt=\"Description\">\n\u003C/picture>\n\n\u003C!-- Video -->\n\u003Cvideo controls width=\"640\" height=\"360\" poster=\"thumbnail.jpg\">\n  \u003Csource src=\"video.mp4\" type=\"video/mp4\">\n  \u003Csource src=\"video.webm\" type=\"video/webm\">\n  Your browser does not support video.\n\u003C/video>\n\n\u003C!-- Audio -->\n\u003Caudio controls>\n  \u003Csource src=\"audio.mp3\" type=\"audio/mpeg\">\n  \u003Csource src=\"audio.ogg\" type=\"audio/ogg\">\n  Your browser does not support audio.\n\u003C/audio>\n\n\u003C!-- Embed external content -->\n\u003Ciframe src=\"https://example.com\" width=\"600\" height=\"400\" \n  title=\"Embedded content\" loading=\"lazy\">\u003C/iframe>\n",[20,117059,117060,117065,117102,117106,117111,117120,117144,117166,117187,117195,117199,117204,117238,117260,117282,117287,117295,117299,117304,117315,117337,117359,117364,117372,117376,117381,117411],{"__ignoreMap":30},[34,117061,117062],{"class":36,"line":37},[34,117063,117064],{"class":40},"\u003C!-- Images -->\n",[34,117066,117067,117069,117071,117073,117075,117078,117080,117082,117085,117087,117089,117092,117095,117097,117100],{"class":36,"line":44},[34,117068,815],{"class":181},[34,117070,4484],{"class":177},[34,117072,86107],{"class":47},[34,117074,1301],{"class":181},[34,117076,117077],{"class":54},"\"image.jpg\"",[34,117079,115714],{"class":47},[34,117081,1301],{"class":181},[34,117083,117084],{"class":54},"\"Description\"",[34,117086,86115],{"class":47},[34,117088,1301],{"class":181},[34,117090,117091],{"class":54},"\"300\"",[34,117093,117094],{"class":47}," height",[34,117096,1301],{"class":181},[34,117098,117099],{"class":54},"\"200\"",[34,117101,1248],{"class":181},[34,117103,117104],{"class":36,"line":58},[34,117105,62],{"emptyLinePlaceholder":61},[34,117107,117108],{"class":36,"line":65},[34,117109,117110],{"class":40},"\u003C!-- Responsive images -->\n",[34,117112,117113,117115,117118],{"class":36,"line":71},[34,117114,815],{"class":181},[34,117116,117117],{"class":177},"picture",[34,117119,1248],{"class":181},[34,117121,117122,117124,117126,117129,117131,117134,117137,117139,117142],{"class":36,"line":77},[34,117123,1181],{"class":181},[34,117125,51060],{"class":177},[34,117127,117128],{"class":47}," media",[34,117130,1301],{"class":181},[34,117132,117133],{"class":54},"\"(min-width: 800px)\"",[34,117135,117136],{"class":47}," srcset",[34,117138,1301],{"class":181},[34,117140,117141],{"class":54},"\"large.jpg\"",[34,117143,1248],{"class":181},[34,117145,117146,117148,117150,117152,117154,117157,117159,117161,117164],{"class":36,"line":82},[34,117147,1181],{"class":181},[34,117149,51060],{"class":177},[34,117151,117128],{"class":47},[34,117153,1301],{"class":181},[34,117155,117156],{"class":54},"\"(min-width: 400px)\"",[34,117158,117136],{"class":47},[34,117160,1301],{"class":181},[34,117162,117163],{"class":54},"\"medium.jpg\"",[34,117165,1248],{"class":181},[34,117167,117168,117170,117172,117174,117176,117179,117181,117183,117185],{"class":36,"line":88},[34,117169,1181],{"class":181},[34,117171,4484],{"class":177},[34,117173,86107],{"class":47},[34,117175,1301],{"class":181},[34,117177,117178],{"class":54},"\"small.jpg\"",[34,117180,115714],{"class":47},[34,117182,1301],{"class":181},[34,117184,117084],{"class":54},[34,117186,1248],{"class":181},[34,117188,117189,117191,117193],{"class":36,"line":242},[34,117190,2089],{"class":181},[34,117192,117117],{"class":177},[34,117194,1248],{"class":181},[34,117196,117197],{"class":36,"line":250},[34,117198,62],{"emptyLinePlaceholder":61},[34,117200,117201],{"class":36,"line":263},[34,117202,117203],{"class":40},"\u003C!-- Video -->\n",[34,117205,117206,117208,117211,117214,117216,117218,117221,117223,117225,117228,117231,117233,117236],{"class":36,"line":275},[34,117207,815],{"class":181},[34,117209,117210],{"class":177},"video",[34,117212,117213],{"class":47}," controls",[34,117215,86115],{"class":47},[34,117217,1301],{"class":181},[34,117219,117220],{"class":54},"\"640\"",[34,117222,117094],{"class":47},[34,117224,1301],{"class":181},[34,117226,117227],{"class":54},"\"360\"",[34,117229,117230],{"class":47}," poster",[34,117232,1301],{"class":181},[34,117234,117235],{"class":54},"\"thumbnail.jpg\"",[34,117237,1248],{"class":181},[34,117239,117240,117242,117244,117246,117248,117251,117253,117255,117258],{"class":36,"line":700},[34,117241,1181],{"class":181},[34,117243,51060],{"class":177},[34,117245,86107],{"class":47},[34,117247,1301],{"class":181},[34,117249,117250],{"class":54},"\"video.mp4\"",[34,117252,62326],{"class":47},[34,117254,1301],{"class":181},[34,117256,117257],{"class":54},"\"video/mp4\"",[34,117259,1248],{"class":181},[34,117261,117262,117264,117266,117268,117270,117273,117275,117277,117280],{"class":36,"line":706},[34,117263,1181],{"class":181},[34,117265,51060],{"class":177},[34,117267,86107],{"class":47},[34,117269,1301],{"class":181},[34,117271,117272],{"class":54},"\"video.webm\"",[34,117274,62326],{"class":47},[34,117276,1301],{"class":181},[34,117278,117279],{"class":54},"\"video/webm\"",[34,117281,1248],{"class":181},[34,117283,117284],{"class":36,"line":715},[34,117285,117286],{"class":181},"  Your browser does not support video.\n",[34,117288,117289,117291,117293],{"class":36,"line":725},[34,117290,2089],{"class":181},[34,117292,117210],{"class":177},[34,117294,1248],{"class":181},[34,117296,117297],{"class":36,"line":734},[34,117298,62],{"emptyLinePlaceholder":61},[34,117300,117301],{"class":36,"line":742},[34,117302,117303],{"class":40},"\u003C!-- Audio -->\n",[34,117305,117306,117308,117311,117313],{"class":36,"line":748},[34,117307,815],{"class":181},[34,117309,117310],{"class":177},"audio",[34,117312,117213],{"class":47},[34,117314,1248],{"class":181},[34,117316,117317,117319,117321,117323,117325,117328,117330,117332,117335],{"class":36,"line":754},[34,117318,1181],{"class":181},[34,117320,51060],{"class":177},[34,117322,86107],{"class":47},[34,117324,1301],{"class":181},[34,117326,117327],{"class":54},"\"audio.mp3\"",[34,117329,62326],{"class":47},[34,117331,1301],{"class":181},[34,117333,117334],{"class":54},"\"audio/mpeg\"",[34,117336,1248],{"class":181},[34,117338,117339,117341,117343,117345,117347,117350,117352,117354,117357],{"class":36,"line":759},[34,117340,1181],{"class":181},[34,117342,51060],{"class":177},[34,117344,86107],{"class":47},[34,117346,1301],{"class":181},[34,117348,117349],{"class":54},"\"audio.ogg\"",[34,117351,62326],{"class":47},[34,117353,1301],{"class":181},[34,117355,117356],{"class":54},"\"audio/ogg\"",[34,117358,1248],{"class":181},[34,117360,117361],{"class":36,"line":771},[34,117362,117363],{"class":181},"  Your browser does not support audio.\n",[34,117365,117366,117368,117370],{"class":36,"line":794},[34,117367,2089],{"class":181},[34,117369,117310],{"class":177},[34,117371,1248],{"class":181},[34,117373,117374],{"class":36,"line":824},[34,117375,62],{"emptyLinePlaceholder":61},[34,117377,117378],{"class":36,"line":830},[34,117379,117380],{"class":40},"\u003C!-- Embed external content -->\n",[34,117382,117383,117385,117388,117390,117392,117395,117397,117399,117402,117404,117406,117409],{"class":36,"line":839},[34,117384,815],{"class":181},[34,117386,117387],{"class":177},"iframe",[34,117389,86107],{"class":47},[34,117391,1301],{"class":181},[34,117393,117394],{"class":54},"\"https://example.com\"",[34,117396,86115],{"class":47},[34,117398,1301],{"class":181},[34,117400,117401],{"class":54},"\"600\"",[34,117403,117094],{"class":47},[34,117405,1301],{"class":181},[34,117407,117408],{"class":54},"\"400\"",[34,117410,526],{"class":181},[34,117412,117413,117416,117418,117421,117424,117426,117429,117431,117433],{"class":36,"line":854},[34,117414,117415],{"class":47},"  title",[34,117417,1301],{"class":181},[34,117419,117420],{"class":54},"\"Embedded content\"",[34,117422,117423],{"class":47}," loading",[34,117425,1301],{"class":181},[34,117427,117428],{"class":54},"\"lazy\"",[34,117430,2050],{"class":181},[34,117432,117387],{"class":177},[34,117434,1248],{"class":181},[388,117436,1418],{},{"title":30,"searchDepth":44,"depth":44,"links":117438},[117439],{"id":117054,"depth":44,"text":117049},"Images and Media in HTML.",{},"/html/images-and-media",{"title":117049,"description":117440},"html/images-and-media",[1164,38615,982,115806],"y7BIAqtN06MA2LXyjNW2jfdwSyT3HpyrAu91dW6Xc_Y",{"id":117448,"title":117449,"body":117450,"date":402,"description":117742,"extension":404,"meta":117743,"navigation":61,"order":700,"path":117744,"seo":117745,"stem":117746,"subject":1164,"tags":117747,"__hash__":117748},"topics/html/interactive-elements.md","Interactive Elements",{"type":8,"value":117451,"toc":117739},[117452,117455,117736],[11,117453,117449],{"id":117454},"interactive-elements",[25,117456,117458],{"className":1162,"code":117457,"language":1164,"meta":30,"style":30},"\u003C!-- Details/Summary (collapsible) -->\n\u003Cdetails>\n  \u003Csummary>Click to expand\u003C/summary>\n  \u003Cp>Hidden content revealed on click\u003C/p>\n\u003C/details>\n\n\u003C!-- Dialog (modal) -->\n\u003Cdialog id=\"my-dialog\">\n  \u003Ch2>Dialog Title\u003C/h2>\n  \u003Cp>Dialog content\u003C/p>\n  \u003Cbutton onclick=\"this.closest('dialog').close()\">Close\u003C/button>\n\u003C/dialog>\n\u003Cbutton onclick=\"document.getElementById('my-dialog').showModal()\">\n  Open Dialog\n\u003C/button>\n\n\u003C!-- Progress and Meter -->\n\u003Cprogress value=\"70\" max=\"100\">70%\u003C/progress>\n\u003Cmeter value=\"0.7\" min=\"0\" max=\"1\" low=\"0.3\" high=\"0.7\" optimum=\"0.8\">70%\u003C/meter>\n",[20,117459,117460,117465,117474,117488,117501,117509,117513,117518,117534,117547,117560,117595,117603,117632,117637,117645,117649,117654,117681],{"__ignoreMap":30},[34,117461,117462],{"class":36,"line":37},[34,117463,117464],{"class":40},"\u003C!-- Details/Summary (collapsible) -->\n",[34,117466,117467,117469,117472],{"class":36,"line":44},[34,117468,815],{"class":181},[34,117470,117471],{"class":177},"details",[34,117473,1248],{"class":181},[34,117475,117476,117478,117481,117484,117486],{"class":36,"line":58},[34,117477,1181],{"class":181},[34,117479,117480],{"class":177},"summary",[34,117482,117483],{"class":181},">Click to expand\u003C/",[34,117485,117480],{"class":177},[34,117487,1248],{"class":181},[34,117489,117490,117492,117494,117497,117499],{"class":36,"line":65},[34,117491,1181],{"class":181},[34,117493,16],{"class":177},[34,117495,117496],{"class":181},">Hidden content revealed on click\u003C/",[34,117498,16],{"class":177},[34,117500,1248],{"class":181},[34,117502,117503,117505,117507],{"class":36,"line":71},[34,117504,2089],{"class":181},[34,117506,117471],{"class":177},[34,117508,1248],{"class":181},[34,117510,117511],{"class":36,"line":77},[34,117512,62],{"emptyLinePlaceholder":61},[34,117514,117515],{"class":36,"line":82},[34,117516,117517],{"class":40},"\u003C!-- Dialog (modal) -->\n",[34,117519,117520,117522,117525,117527,117529,117532],{"class":36,"line":88},[34,117521,815],{"class":181},[34,117523,117524],{"class":177},"dialog",[34,117526,115557],{"class":47},[34,117528,1301],{"class":181},[34,117530,117531],{"class":54},"\"my-dialog\"",[34,117533,1248],{"class":181},[34,117535,117536,117538,117540,117543,117545],{"class":36,"line":242},[34,117537,1181],{"class":181},[34,117539,11],{"class":177},[34,117541,117542],{"class":181},">Dialog Title\u003C/",[34,117544,11],{"class":177},[34,117546,1248],{"class":181},[34,117548,117549,117551,117553,117556,117558],{"class":36,"line":250},[34,117550,1181],{"class":181},[34,117552,16],{"class":177},[34,117554,117555],{"class":181},">Dialog content\u003C/",[34,117557,16],{"class":177},[34,117559,1248],{"class":181},[34,117561,117562,117564,117566,117569,117571,117573,117575,117577,117580,117583,117585,117588,117591,117593],{"class":36,"line":263},[34,117563,1181],{"class":181},[34,117565,4509],{"class":177},[34,117567,117568],{"class":47}," onclick",[34,117570,1301],{"class":181},[34,117572,10389],{"class":54},[34,117574,3207],{"class":50},[34,117576,151],{"class":54},[34,117578,117579],{"class":47},"closest",[34,117581,117582],{"class":54},"('dialog').",[34,117584,17197],{"class":47},[34,117586,117587],{"class":54},"()\"",[34,117589,117590],{"class":181},">Close\u003C/",[34,117592,4509],{"class":177},[34,117594,1248],{"class":181},[34,117596,117597,117599,117601],{"class":36,"line":275},[34,117598,2089],{"class":181},[34,117600,117524],{"class":177},[34,117602,1248],{"class":181},[34,117604,117605,117607,117609,117611,117613,117615,117617,117619,117622,117625,117628,117630],{"class":36,"line":700},[34,117606,815],{"class":181},[34,117608,4509],{"class":177},[34,117610,117568],{"class":47},[34,117612,1301],{"class":181},[34,117614,10389],{"class":54},[34,117616,85301],{"class":181},[34,117618,151],{"class":54},[34,117620,117621],{"class":47},"getElementById",[34,117623,117624],{"class":54},"('my-dialog').",[34,117626,117627],{"class":47},"showModal",[34,117629,117587],{"class":54},[34,117631,1248],{"class":181},[34,117633,117634],{"class":36,"line":706},[34,117635,117636],{"class":181},"  Open Dialog\n",[34,117638,117639,117641,117643],{"class":36,"line":715},[34,117640,2089],{"class":181},[34,117642,4509],{"class":177},[34,117644,1248],{"class":181},[34,117646,117647],{"class":36,"line":725},[34,117648,62],{"emptyLinePlaceholder":61},[34,117650,117651],{"class":36,"line":734},[34,117652,117653],{"class":40},"\u003C!-- Progress and Meter -->\n",[34,117655,117656,117658,117661,117663,117665,117668,117670,117672,117674,117677,117679],{"class":36,"line":742},[34,117657,815],{"class":181},[34,117659,117660],{"class":177},"progress",[34,117662,18389],{"class":47},[34,117664,1301],{"class":181},[34,117666,117667],{"class":54},"\"70\"",[34,117669,116249],{"class":47},[34,117671,1301],{"class":181},[34,117673,116254],{"class":54},[34,117675,117676],{"class":181},">70%\u003C/",[34,117678,117660],{"class":177},[34,117680,1248],{"class":181},[34,117682,117683,117685,117688,117690,117692,117695,117697,117699,117701,117703,117705,117707,117710,117712,117715,117718,117720,117722,117725,117727,117730,117732,117734],{"class":36,"line":748},[34,117684,815],{"class":181},[34,117686,117687],{"class":177},"meter",[34,117689,18389],{"class":47},[34,117691,1301],{"class":181},[34,117693,117694],{"class":54},"\"0.7\"",[34,117696,116241],{"class":47},[34,117698,1301],{"class":181},[34,117700,116246],{"class":54},[34,117702,116249],{"class":47},[34,117704,1301],{"class":181},[34,117706,116262],{"class":54},[34,117708,117709],{"class":47}," low",[34,117711,1301],{"class":181},[34,117713,117714],{"class":54},"\"0.3\"",[34,117716,117717],{"class":47}," high",[34,117719,1301],{"class":181},[34,117721,117694],{"class":54},[34,117723,117724],{"class":47}," optimum",[34,117726,1301],{"class":181},[34,117728,117729],{"class":54},"\"0.8\"",[34,117731,117676],{"class":181},[34,117733,117687],{"class":177},[34,117735,1248],{"class":181},[388,117737,117738],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .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 .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":30,"searchDepth":44,"depth":44,"links":117740},[117741],{"id":117454,"depth":44,"text":117449},"Interactive Elements in HTML.",{},"/html/interactive-elements",{"title":117449,"description":117742},"html/interactive-elements",[1164,38615,982,115806],"kKMCdS7dDx_WOcZoVsSX3Vg2jtSiEJwKqC51yfEYzF4",{"id":117750,"title":117751,"body":117752,"date":402,"description":117945,"extension":404,"meta":117946,"navigation":61,"order":71,"path":117947,"seo":117948,"stem":117949,"subject":1164,"tags":117950,"__hash__":117951},"topics/html/links-and-navigation.md","Links and Navigation",{"type":8,"value":117753,"toc":117942},[117754,117757,117940],[11,117755,117751],{"id":117756},"links-and-navigation",[25,117758,117760],{"className":1162,"code":117759,"language":1164,"meta":30,"style":30},"\u003C!-- Basic link -->\n\u003Ca href=\"https://example.com\">External link\u003C/a>\n\u003Ca href=\"/about\">Internal link\u003C/a>\n\u003Ca href=\"#section-id\">Anchor link\u003C/a>\n\n\u003C!-- Link attributes -->\n\u003Ca href=\"page.html\" target=\"_blank\" rel=\"noopener noreferrer\">\n  Open in new tab (secure)\n\u003C/a>\n\u003Ca href=\"file.pdf\" download>Download file\u003C/a>\n\u003Ca href=\"mailto:email@example.com\">Email link\u003C/a>\n\u003Ca href=\"tel:+1234567890\">Phone link\u003C/a>\n",[20,117761,117762,117767,117786,117806,117826,117830,117835,117865,117870,117878,117900,117920],{"__ignoreMap":30},[34,117763,117764],{"class":36,"line":37},[34,117765,117766],{"class":40},"\u003C!-- Basic link -->\n",[34,117768,117769,117771,117773,117775,117777,117779,117782,117784],{"class":36,"line":44},[34,117770,815],{"class":181},[34,117772,145],{"class":177},[34,117774,46472],{"class":47},[34,117776,1301],{"class":181},[34,117778,117394],{"class":54},[34,117780,117781],{"class":181},">External link\u003C/",[34,117783,145],{"class":177},[34,117785,1248],{"class":181},[34,117787,117788,117790,117792,117794,117796,117799,117802,117804],{"class":36,"line":58},[34,117789,815],{"class":181},[34,117791,145],{"class":177},[34,117793,46472],{"class":47},[34,117795,1301],{"class":181},[34,117797,117798],{"class":54},"\"/about\"",[34,117800,117801],{"class":181},">Internal link\u003C/",[34,117803,145],{"class":177},[34,117805,1248],{"class":181},[34,117807,117808,117810,117812,117814,117816,117819,117822,117824],{"class":36,"line":65},[34,117809,815],{"class":181},[34,117811,145],{"class":177},[34,117813,46472],{"class":47},[34,117815,1301],{"class":181},[34,117817,117818],{"class":54},"\"#section-id\"",[34,117820,117821],{"class":181},">Anchor link\u003C/",[34,117823,145],{"class":177},[34,117825,1248],{"class":181},[34,117827,117828],{"class":36,"line":71},[34,117829,62],{"emptyLinePlaceholder":61},[34,117831,117832],{"class":36,"line":77},[34,117833,117834],{"class":40},"\u003C!-- Link attributes -->\n",[34,117836,117837,117839,117841,117843,117845,117848,117851,117853,117856,117858,117860,117863],{"class":36,"line":82},[34,117838,815],{"class":181},[34,117840,145],{"class":177},[34,117842,46472],{"class":47},[34,117844,1301],{"class":181},[34,117846,117847],{"class":54},"\"page.html\"",[34,117849,117850],{"class":47}," target",[34,117852,1301],{"class":181},[34,117854,117855],{"class":54},"\"_blank\"",[34,117857,46480],{"class":47},[34,117859,1301],{"class":181},[34,117861,117862],{"class":54},"\"noopener noreferrer\"",[34,117864,1248],{"class":181},[34,117866,117867],{"class":36,"line":88},[34,117868,117869],{"class":181},"  Open in new tab (secure)\n",[34,117871,117872,117874,117876],{"class":36,"line":242},[34,117873,2089],{"class":181},[34,117875,145],{"class":177},[34,117877,1248],{"class":181},[34,117879,117880,117882,117884,117886,117888,117891,117893,117896,117898],{"class":36,"line":250},[34,117881,815],{"class":181},[34,117883,145],{"class":177},[34,117885,46472],{"class":47},[34,117887,1301],{"class":181},[34,117889,117890],{"class":54},"\"file.pdf\"",[34,117892,5513],{"class":47},[34,117894,117895],{"class":181},">Download file\u003C/",[34,117897,145],{"class":177},[34,117899,1248],{"class":181},[34,117901,117902,117904,117906,117908,117910,117913,117916,117918],{"class":36,"line":263},[34,117903,815],{"class":181},[34,117905,145],{"class":177},[34,117907,46472],{"class":47},[34,117909,1301],{"class":181},[34,117911,117912],{"class":54},"\"mailto:email@example.com\"",[34,117914,117915],{"class":181},">Email link\u003C/",[34,117917,145],{"class":177},[34,117919,1248],{"class":181},[34,117921,117922,117924,117926,117928,117930,117933,117936,117938],{"class":36,"line":275},[34,117923,815],{"class":181},[34,117925,145],{"class":177},[34,117927,46472],{"class":47},[34,117929,1301],{"class":181},[34,117931,117932],{"class":54},"\"tel:+1234567890\"",[34,117934,117935],{"class":181},">Phone link\u003C/",[34,117937,145],{"class":177},[34,117939,1248],{"class":181},[388,117941,1418],{},{"title":30,"searchDepth":44,"depth":44,"links":117943},[117944],{"id":117756,"depth":44,"text":117751},"Links and Navigation in HTML.",{},"/html/links-and-navigation",{"title":117751,"description":117945},"html/links-and-navigation",[1164,38615,982,115806],"6kay_pOWlaKC3hqZAXp9nZav3vH8_oBO0pqt1ZYEnlY",{"id":117953,"title":61448,"body":117954,"date":402,"description":118146,"extension":404,"meta":118147,"navigation":61,"order":77,"path":118148,"seo":118149,"stem":118150,"subject":1164,"tags":118151,"__hash__":118152},"topics/html/lists.md",{"type":8,"value":117955,"toc":118143},[117956,117958,118141],[11,117957,61448],{"id":80306},[25,117959,117961],{"className":1162,"code":117960,"language":1164,"meta":30,"style":30},"\u003C!-- Unordered list -->\n\u003Cul>\n  \u003Cli>Item one\u003C/li>\n  \u003Cli>Item two\u003C/li>\n\u003C/ul>\n\n\u003C!-- Ordered list -->\n\u003Col>\n  \u003Cli>First item\u003C/li>\n  \u003Cli>Second item\u003C/li>\n\u003C/ol>\n\n\u003C!-- Description list -->\n\u003Cdl>\n  \u003Cdt>Term\u003C/dt>\n  \u003Cdd>Definition\u003C/dd>\n  \u003Cdt>Another term\u003C/dt>\n  \u003Cdd>Another definition\u003C/dd>\n\u003C/dl>\n",[20,117962,117963,117968,117976,117989,118002,118010,118014,118019,118027,118040,118053,118061,118065,118070,118079,118093,118107,118120,118133],{"__ignoreMap":30},[34,117964,117965],{"class":36,"line":37},[34,117966,117967],{"class":40},"\u003C!-- Unordered list -->\n",[34,117969,117970,117972,117974],{"class":36,"line":44},[34,117971,815],{"class":181},[34,117973,309],{"class":177},[34,117975,1248],{"class":181},[34,117977,117978,117980,117982,117985,117987],{"class":36,"line":58},[34,117979,1181],{"class":181},[34,117981,312],{"class":177},[34,117983,117984],{"class":181},">Item one\u003C/",[34,117986,312],{"class":177},[34,117988,1248],{"class":181},[34,117990,117991,117993,117995,117998,118000],{"class":36,"line":65},[34,117992,1181],{"class":181},[34,117994,312],{"class":177},[34,117996,117997],{"class":181},">Item two\u003C/",[34,117999,312],{"class":177},[34,118001,1248],{"class":181},[34,118003,118004,118006,118008],{"class":36,"line":71},[34,118005,2089],{"class":181},[34,118007,309],{"class":177},[34,118009,1248],{"class":181},[34,118011,118012],{"class":36,"line":77},[34,118013,62],{"emptyLinePlaceholder":61},[34,118015,118016],{"class":36,"line":82},[34,118017,118018],{"class":40},"\u003C!-- Ordered list -->\n",[34,118020,118021,118023,118025],{"class":36,"line":88},[34,118022,815],{"class":181},[34,118024,28799],{"class":177},[34,118026,1248],{"class":181},[34,118028,118029,118031,118033,118036,118038],{"class":36,"line":242},[34,118030,1181],{"class":181},[34,118032,312],{"class":177},[34,118034,118035],{"class":181},">First item\u003C/",[34,118037,312],{"class":177},[34,118039,1248],{"class":181},[34,118041,118042,118044,118046,118049,118051],{"class":36,"line":250},[34,118043,1181],{"class":181},[34,118045,312],{"class":177},[34,118047,118048],{"class":181},">Second item\u003C/",[34,118050,312],{"class":177},[34,118052,1248],{"class":181},[34,118054,118055,118057,118059],{"class":36,"line":263},[34,118056,2089],{"class":181},[34,118058,28799],{"class":177},[34,118060,1248],{"class":181},[34,118062,118063],{"class":36,"line":275},[34,118064,62],{"emptyLinePlaceholder":61},[34,118066,118067],{"class":36,"line":700},[34,118068,118069],{"class":40},"\u003C!-- Description list -->\n",[34,118071,118072,118074,118077],{"class":36,"line":706},[34,118073,815],{"class":181},[34,118075,118076],{"class":177},"dl",[34,118078,1248],{"class":181},[34,118080,118081,118083,118086,118089,118091],{"class":36,"line":715},[34,118082,1181],{"class":181},[34,118084,118085],{"class":177},"dt",[34,118087,118088],{"class":181},">Term\u003C/",[34,118090,118085],{"class":177},[34,118092,1248],{"class":181},[34,118094,118095,118097,118100,118103,118105],{"class":36,"line":725},[34,118096,1181],{"class":181},[34,118098,118099],{"class":177},"dd",[34,118101,118102],{"class":181},">Definition\u003C/",[34,118104,118099],{"class":177},[34,118106,1248],{"class":181},[34,118108,118109,118111,118113,118116,118118],{"class":36,"line":734},[34,118110,1181],{"class":181},[34,118112,118085],{"class":177},[34,118114,118115],{"class":181},">Another term\u003C/",[34,118117,118085],{"class":177},[34,118119,1248],{"class":181},[34,118121,118122,118124,118126,118129,118131],{"class":36,"line":742},[34,118123,1181],{"class":181},[34,118125,118099],{"class":177},[34,118127,118128],{"class":181},">Another definition\u003C/",[34,118130,118099],{"class":177},[34,118132,1248],{"class":181},[34,118134,118135,118137,118139],{"class":36,"line":748},[34,118136,2089],{"class":181},[34,118138,118076],{"class":177},[34,118140,1248],{"class":181},[388,118142,42457],{},{"title":30,"searchDepth":44,"depth":44,"links":118144},[118145],{"id":80306,"depth":44,"text":61448},"Lists in HTML.",{},"/html/lists",{"title":61448,"description":118146},"html/lists",[1164,38615,982,115806],"DPiQ1jghuyzcOKtgpldsahwmuwS1TTwnDL-j8jW7DQI",{"id":118154,"title":118155,"body":118156,"date":402,"description":118637,"extension":404,"meta":118638,"navigation":61,"order":250,"path":118639,"seo":118640,"stem":118641,"subject":1164,"tags":118642,"__hash__":118643},"topics/html/meta-tags.md","Meta Tags",{"type":8,"value":118157,"toc":118634},[118158,118161,118631],[11,118159,118155],{"id":118160},"meta-tags",[25,118162,118164],{"className":1162,"code":118163,"language":1164,"meta":30,"style":30},"\u003Chead>\n  \u003C!-- Character encoding -->\n  \u003Cmeta charset=\"UTF-8\">\n\n  \u003C!-- Viewport for responsive design -->\n  \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\n  \u003C!-- SEO meta tags -->\n  \u003Cmeta name=\"description\" content=\"Page description (150-160 chars)\">\n  \u003Cmeta name=\"keywords\" content=\"keyword1, keyword2, keyword3\">\n  \u003Cmeta name=\"author\" content=\"Author Name\">\n  \u003Cmeta name=\"robots\" content=\"index, follow\">\n\n  \u003C!-- Open Graph (social sharing) -->\n  \u003Cmeta property=\"og:title\" content=\"Page Title\">\n  \u003Cmeta property=\"og:description\" content=\"Description for social media\">\n  \u003Cmeta property=\"og:image\" content=\"https://example.com/image.jpg\">\n  \u003Cmeta property=\"og:url\" content=\"https://example.com/page\">\n  \u003Cmeta property=\"og:type\" content=\"website\">\n\n  \u003C!-- Twitter Card -->\n  \u003Cmeta name=\"twitter:card\" content=\"summary_large_image\">\n  \u003Cmeta name=\"twitter:title\" content=\"Page Title\">\n  \u003Cmeta name=\"twitter:description\" content=\"Description for Twitter\">\n  \u003Cmeta name=\"twitter:image\" content=\"https://example.com/image.jpg\">\n\n  \u003C!-- Favicon -->\n  \u003Clink rel=\"icon\" type=\"image/x-icon\" href=\"/favicon.ico\">\n  \u003Clink rel=\"apple-touch-icon\" href=\"/apple-touch-icon.png\">\n\n  \u003C!-- Canonical URL -->\n  \u003Clink rel=\"canonical\" href=\"https://example.com/page\">\n\u003C/head>\n",[20,118165,118166,118174,118179,118193,118197,118202,118222,118226,118231,118252,118274,118296,118318,118322,118327,118350,118372,118394,118416,118438,118442,118447,118469,118490,118512,118533,118537,118542,118571,118593,118597,118602,118623],{"__ignoreMap":30},[34,118167,118168,118170,118172],{"class":36,"line":37},[34,118169,815],{"class":181},[34,118171,13118],{"class":177},[34,118173,1248],{"class":181},[34,118175,118176],{"class":36,"line":44},[34,118177,118178],{"class":40},"  \u003C!-- Character encoding -->\n",[34,118180,118181,118183,118185,118187,118189,118191],{"class":36,"line":58},[34,118182,1181],{"class":181},[34,118184,46417],{"class":177},[34,118186,46420],{"class":47},[34,118188,1301],{"class":181},[34,118190,46425],{"class":54},[34,118192,1248],{"class":181},[34,118194,118195],{"class":36,"line":65},[34,118196,62],{"emptyLinePlaceholder":61},[34,118198,118199],{"class":36,"line":71},[34,118200,118201],{"class":40},"  \u003C!-- Viewport for responsive design -->\n",[34,118203,118204,118206,118208,118210,118212,118214,118216,118218,118220],{"class":36,"line":77},[34,118205,1181],{"class":181},[34,118207,46417],{"class":177},[34,118209,12323],{"class":47},[34,118211,1301],{"class":181},[34,118213,46440],{"class":54},[34,118215,35532],{"class":47},[34,118217,1301],{"class":181},[34,118219,46447],{"class":54},[34,118221,1248],{"class":181},[34,118223,118224],{"class":36,"line":82},[34,118225,62],{"emptyLinePlaceholder":61},[34,118227,118228],{"class":36,"line":88},[34,118229,118230],{"class":40},"  \u003C!-- SEO meta tags -->\n",[34,118232,118233,118235,118237,118239,118241,118243,118245,118247,118250],{"class":36,"line":242},[34,118234,1181],{"class":181},[34,118236,46417],{"class":177},[34,118238,12323],{"class":47},[34,118240,1301],{"class":181},[34,118242,115899],{"class":54},[34,118244,35532],{"class":47},[34,118246,1301],{"class":181},[34,118248,118249],{"class":54},"\"Page description (150-160 chars)\"",[34,118251,1248],{"class":181},[34,118253,118254,118256,118258,118260,118262,118265,118267,118269,118272],{"class":36,"line":250},[34,118255,1181],{"class":181},[34,118257,46417],{"class":177},[34,118259,12323],{"class":47},[34,118261,1301],{"class":181},[34,118263,118264],{"class":54},"\"keywords\"",[34,118266,35532],{"class":47},[34,118268,1301],{"class":181},[34,118270,118271],{"class":54},"\"keyword1, keyword2, keyword3\"",[34,118273,1248],{"class":181},[34,118275,118276,118278,118280,118282,118284,118287,118289,118291,118294],{"class":36,"line":263},[34,118277,1181],{"class":181},[34,118279,46417],{"class":177},[34,118281,12323],{"class":47},[34,118283,1301],{"class":181},[34,118285,118286],{"class":54},"\"author\"",[34,118288,35532],{"class":47},[34,118290,1301],{"class":181},[34,118292,118293],{"class":54},"\"Author Name\"",[34,118295,1248],{"class":181},[34,118297,118298,118300,118302,118304,118306,118309,118311,118313,118316],{"class":36,"line":275},[34,118299,1181],{"class":181},[34,118301,46417],{"class":177},[34,118303,12323],{"class":47},[34,118305,1301],{"class":181},[34,118307,118308],{"class":54},"\"robots\"",[34,118310,35532],{"class":47},[34,118312,1301],{"class":181},[34,118314,118315],{"class":54},"\"index, follow\"",[34,118317,1248],{"class":181},[34,118319,118320],{"class":36,"line":700},[34,118321,62],{"emptyLinePlaceholder":61},[34,118323,118324],{"class":36,"line":706},[34,118325,118326],{"class":40},"  \u003C!-- Open Graph (social sharing) -->\n",[34,118328,118329,118331,118333,118336,118338,118341,118343,118345,118348],{"class":36,"line":715},[34,118330,1181],{"class":181},[34,118332,46417],{"class":177},[34,118334,118335],{"class":47}," property",[34,118337,1301],{"class":181},[34,118339,118340],{"class":54},"\"og:title\"",[34,118342,35532],{"class":47},[34,118344,1301],{"class":181},[34,118346,118347],{"class":54},"\"Page Title\"",[34,118349,1248],{"class":181},[34,118351,118352,118354,118356,118358,118360,118363,118365,118367,118370],{"class":36,"line":725},[34,118353,1181],{"class":181},[34,118355,46417],{"class":177},[34,118357,118335],{"class":47},[34,118359,1301],{"class":181},[34,118361,118362],{"class":54},"\"og:description\"",[34,118364,35532],{"class":47},[34,118366,1301],{"class":181},[34,118368,118369],{"class":54},"\"Description for social media\"",[34,118371,1248],{"class":181},[34,118373,118374,118376,118378,118380,118382,118385,118387,118389,118392],{"class":36,"line":734},[34,118375,1181],{"class":181},[34,118377,46417],{"class":177},[34,118379,118335],{"class":47},[34,118381,1301],{"class":181},[34,118383,118384],{"class":54},"\"og:image\"",[34,118386,35532],{"class":47},[34,118388,1301],{"class":181},[34,118390,118391],{"class":54},"\"https://example.com/image.jpg\"",[34,118393,1248],{"class":181},[34,118395,118396,118398,118400,118402,118404,118407,118409,118411,118414],{"class":36,"line":742},[34,118397,1181],{"class":181},[34,118399,46417],{"class":177},[34,118401,118335],{"class":47},[34,118403,1301],{"class":181},[34,118405,118406],{"class":54},"\"og:url\"",[34,118408,35532],{"class":47},[34,118410,1301],{"class":181},[34,118412,118413],{"class":54},"\"https://example.com/page\"",[34,118415,1248],{"class":181},[34,118417,118418,118420,118422,118424,118426,118429,118431,118433,118436],{"class":36,"line":748},[34,118419,1181],{"class":181},[34,118421,46417],{"class":177},[34,118423,118335],{"class":47},[34,118425,1301],{"class":181},[34,118427,118428],{"class":54},"\"og:type\"",[34,118430,35532],{"class":47},[34,118432,1301],{"class":181},[34,118434,118435],{"class":54},"\"website\"",[34,118437,1248],{"class":181},[34,118439,118440],{"class":36,"line":754},[34,118441,62],{"emptyLinePlaceholder":61},[34,118443,118444],{"class":36,"line":759},[34,118445,118446],{"class":40},"  \u003C!-- Twitter Card -->\n",[34,118448,118449,118451,118453,118455,118457,118460,118462,118464,118467],{"class":36,"line":771},[34,118450,1181],{"class":181},[34,118452,46417],{"class":177},[34,118454,12323],{"class":47},[34,118456,1301],{"class":181},[34,118458,118459],{"class":54},"\"twitter:card\"",[34,118461,35532],{"class":47},[34,118463,1301],{"class":181},[34,118465,118466],{"class":54},"\"summary_large_image\"",[34,118468,1248],{"class":181},[34,118470,118471,118473,118475,118477,118479,118482,118484,118486,118488],{"class":36,"line":794},[34,118472,1181],{"class":181},[34,118474,46417],{"class":177},[34,118476,12323],{"class":47},[34,118478,1301],{"class":181},[34,118480,118481],{"class":54},"\"twitter:title\"",[34,118483,35532],{"class":47},[34,118485,1301],{"class":181},[34,118487,118347],{"class":54},[34,118489,1248],{"class":181},[34,118491,118492,118494,118496,118498,118500,118503,118505,118507,118510],{"class":36,"line":824},[34,118493,1181],{"class":181},[34,118495,46417],{"class":177},[34,118497,12323],{"class":47},[34,118499,1301],{"class":181},[34,118501,118502],{"class":54},"\"twitter:description\"",[34,118504,35532],{"class":47},[34,118506,1301],{"class":181},[34,118508,118509],{"class":54},"\"Description for Twitter\"",[34,118511,1248],{"class":181},[34,118513,118514,118516,118518,118520,118522,118525,118527,118529,118531],{"class":36,"line":830},[34,118515,1181],{"class":181},[34,118517,46417],{"class":177},[34,118519,12323],{"class":47},[34,118521,1301],{"class":181},[34,118523,118524],{"class":54},"\"twitter:image\"",[34,118526,35532],{"class":47},[34,118528,1301],{"class":181},[34,118530,118391],{"class":54},[34,118532,1248],{"class":181},[34,118534,118535],{"class":36,"line":839},[34,118536,62],{"emptyLinePlaceholder":61},[34,118538,118539],{"class":36,"line":854},[34,118540,118541],{"class":40},"  \u003C!-- Favicon -->\n",[34,118543,118544,118546,118548,118550,118552,118555,118557,118559,118562,118564,118566,118569],{"class":36,"line":860},[34,118545,1181],{"class":181},[34,118547,46469],{"class":177},[34,118549,46480],{"class":47},[34,118551,1301],{"class":181},[34,118553,118554],{"class":54},"\"icon\"",[34,118556,62326],{"class":47},[34,118558,1301],{"class":181},[34,118560,118561],{"class":54},"\"image/x-icon\"",[34,118563,46472],{"class":47},[34,118565,1301],{"class":181},[34,118567,118568],{"class":54},"\"/favicon.ico\"",[34,118570,1248],{"class":181},[34,118572,118573,118575,118577,118579,118581,118584,118586,118588,118591],{"class":36,"line":865},[34,118574,1181],{"class":181},[34,118576,46469],{"class":177},[34,118578,46480],{"class":47},[34,118580,1301],{"class":181},[34,118582,118583],{"class":54},"\"apple-touch-icon\"",[34,118585,46472],{"class":47},[34,118587,1301],{"class":181},[34,118589,118590],{"class":54},"\"/apple-touch-icon.png\"",[34,118592,1248],{"class":181},[34,118594,118595],{"class":36,"line":870},[34,118596,62],{"emptyLinePlaceholder":61},[34,118598,118599],{"class":36,"line":876},[34,118600,118601],{"class":40},"  \u003C!-- Canonical URL -->\n",[34,118603,118604,118606,118608,118610,118612,118615,118617,118619,118621],{"class":36,"line":885},[34,118605,1181],{"class":181},[34,118607,46469],{"class":177},[34,118609,46480],{"class":47},[34,118611,1301],{"class":181},[34,118613,118614],{"class":54},"\"canonical\"",[34,118616,46472],{"class":47},[34,118618,1301],{"class":181},[34,118620,118413],{"class":54},[34,118622,1248],{"class":181},[34,118624,118625,118627,118629],{"class":36,"line":895},[34,118626,2089],{"class":181},[34,118628,13118],{"class":177},[34,118630,1248],{"class":181},[388,118632,118633],{},"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 .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);}",{"title":30,"searchDepth":44,"depth":44,"links":118635},[118636],{"id":118160,"depth":44,"text":118155},"Meta Tags in HTML.",{},"/html/meta-tags",{"title":118155,"description":118637},"html/meta-tags",[1164,38615,982,115806],"LtF-19YsYCffuvmTXGQP019zDHhQv3y-lBGVRE3s4Oc",{"id":118645,"title":118646,"body":118647,"date":2633,"description":118710,"extension":404,"meta":118711,"navigation":61,"order":37,"path":118712,"seo":118713,"stem":118714,"subject":1164,"tags":118715,"__hash__":118716},"topics/html/overview.md","HTML",{"type":8,"value":118648,"toc":118708},[118649],[309,118650,118651,118655,118661,118667,118671,118675,118679,118683,118688,118692,118696,118700,118704],{},[312,118652,118653],{},[145,118654,115810],{"href":116008},[312,118656,118657],{},[145,118658,118660],{"href":118659},"/html/semantic-elements","Semantic Elements",[312,118662,118663],{},[145,118664,118666],{"href":118665},"/html/text-formatting","Text Formatting",[312,118668,118669],{},[145,118670,117751],{"href":117947},[312,118672,118673],{},[145,118674,61448],{"href":118148},[312,118676,118677],{},[145,118678,117049],{"href":117442},[312,118680,118681],{},[145,118682,116015],{"href":116852},[312,118684,118685],{},[145,118686,89961],{"href":118687},"/html/tables",[312,118689,118690],{},[145,118691,118155],{"href":118639},[312,118693,118694],{},[145,118695,115417],{"href":115802},[312,118697,118698],{},[145,118699,116859],{"href":117018},[312,118701,118702],{},[145,118703,117449],{"href":117744},[312,118705,118706],{},[145,118707,117025],{"href":117042},{"title":30,"searchDepth":44,"depth":44,"links":118709},[],"Essential HTML elements, attributes, and semantic markup for building web pages.",{},"/html/overview",{"title":118646,"description":118710},"html/overview",[1164,38615,982,115806],"YvGtgl8AhxifUDw96yLtlmiVsjRc-JGIqzcMESCqMsU",{"id":118718,"title":118660,"body":118719,"date":402,"description":118952,"extension":404,"meta":118953,"navigation":61,"order":58,"path":118659,"seo":118954,"stem":118955,"subject":1164,"tags":118956,"__hash__":118957},"topics/html/semantic-elements.md",{"type":8,"value":118720,"toc":118949},[118721,118724,118947],[11,118722,118660],{"id":118723},"semantic-elements",[25,118725,118727],{"className":1162,"code":118726,"language":1164,"meta":30,"style":30},"\u003C!-- Page structure -->\n\u003Cheader>Site header, navigation\u003C/header>\n\u003Cnav>Navigation links\u003C/nav>\n\u003Cmain>Main content (one per page)\u003C/main>\n\u003Carticle>Self-contained content\u003C/article>\n\u003Csection>Thematic grouping\u003C/section>\n\u003Caside>Sidebar, related content\u003C/aside>\n\u003Cfooter>Site footer, copyright\u003C/footer>\n\n\u003C!-- Text semantics -->\n\u003Ch1>Main heading (one per page)\u003C/h1>\n\u003Ch2> to \u003Ch6>Subheadings\u003C/h2>\n\u003Cp>Paragraph\u003C/p>\n\u003Cblockquote>Block quotation\u003C/blockquote>\n\u003Cfigure>\n  \u003Cimg src=\"image.jpg\" alt=\"Description\">\n  \u003Cfigcaption>Image caption\u003C/figcaption>\n\u003C/figure>\n",[20,118728,118729,118734,118747,118760,118773,118787,118801,118815,118829,118833,118838,118851,118870,118883,118896,118905,118925,118939],{"__ignoreMap":30},[34,118730,118731],{"class":36,"line":37},[34,118732,118733],{"class":40},"\u003C!-- Page structure -->\n",[34,118735,118736,118738,118740,118743,118745],{"class":36,"line":44},[34,118737,815],{"class":181},[34,118739,85863],{"class":177},[34,118741,118742],{"class":181},">Site header, navigation\u003C/",[34,118744,85863],{"class":177},[34,118746,1248],{"class":181},[34,118748,118749,118751,118753,118756,118758],{"class":36,"line":58},[34,118750,815],{"class":181},[34,118752,115439],{"class":177},[34,118754,118755],{"class":181},">Navigation links\u003C/",[34,118757,115439],{"class":177},[34,118759,1248],{"class":181},[34,118761,118762,118764,118766,118769,118771],{"class":36,"line":65},[34,118763,815],{"class":181},[34,118765,8526],{"class":177},[34,118767,118768],{"class":181},">Main content (one per page)\u003C/",[34,118770,8526],{"class":177},[34,118772,1248],{"class":181},[34,118774,118775,118777,118780,118783,118785],{"class":36,"line":71},[34,118776,815],{"class":181},[34,118778,118779],{"class":177},"article",[34,118781,118782],{"class":181},">Self-contained content\u003C/",[34,118784,118779],{"class":177},[34,118786,1248],{"class":181},[34,118788,118789,118791,118794,118797,118799],{"class":36,"line":77},[34,118790,815],{"class":181},[34,118792,118793],{"class":177},"section",[34,118795,118796],{"class":181},">Thematic grouping\u003C/",[34,118798,118793],{"class":177},[34,118800,1248],{"class":181},[34,118802,118803,118805,118808,118811,118813],{"class":36,"line":82},[34,118804,815],{"class":181},[34,118806,118807],{"class":177},"aside",[34,118809,118810],{"class":181},">Sidebar, related content\u003C/",[34,118812,118807],{"class":177},[34,118814,1248],{"class":181},[34,118816,118817,118819,118822,118825,118827],{"class":36,"line":88},[34,118818,815],{"class":181},[34,118820,118821],{"class":177},"footer",[34,118823,118824],{"class":181},">Site footer, copyright\u003C/",[34,118826,118821],{"class":177},[34,118828,1248],{"class":181},[34,118830,118831],{"class":36,"line":242},[34,118832,62],{"emptyLinePlaceholder":61},[34,118834,118835],{"class":36,"line":250},[34,118836,118837],{"class":40},"\u003C!-- Text semantics -->\n",[34,118839,118840,118842,118844,118847,118849],{"class":36,"line":263},[34,118841,815],{"class":181},[34,118843,8535],{"class":177},[34,118845,118846],{"class":181},">Main heading (one per page)\u003C/",[34,118848,8535],{"class":177},[34,118850,1248],{"class":181},[34,118852,118853,118855,118857,118860,118863,118866,118868],{"class":36,"line":275},[34,118854,815],{"class":181},[34,118856,11],{"class":177},[34,118858,118859],{"class":181},"> to \u003C",[34,118861,118862],{"class":177},"h6",[34,118864,118865],{"class":181},">Subheadings\u003C/",[34,118867,11],{"class":177},[34,118869,1248],{"class":181},[34,118871,118872,118874,118876,118879,118881],{"class":36,"line":700},[34,118873,815],{"class":181},[34,118875,16],{"class":177},[34,118877,118878],{"class":181},">Paragraph\u003C/",[34,118880,16],{"class":177},[34,118882,1248],{"class":181},[34,118884,118885,118887,118889,118892,118894],{"class":36,"line":706},[34,118886,815],{"class":181},[34,118888,15925],{"class":177},[34,118890,118891],{"class":181},">Block quotation\u003C/",[34,118893,15925],{"class":177},[34,118895,1248],{"class":181},[34,118897,118898,118900,118903],{"class":36,"line":715},[34,118899,815],{"class":181},[34,118901,118902],{"class":177},"figure",[34,118904,1248],{"class":181},[34,118906,118907,118909,118911,118913,118915,118917,118919,118921,118923],{"class":36,"line":725},[34,118908,1181],{"class":181},[34,118910,4484],{"class":177},[34,118912,86107],{"class":47},[34,118914,1301],{"class":181},[34,118916,117077],{"class":54},[34,118918,115714],{"class":47},[34,118920,1301],{"class":181},[34,118922,117084],{"class":54},[34,118924,1248],{"class":181},[34,118926,118927,118929,118932,118935,118937],{"class":36,"line":734},[34,118928,1181],{"class":181},[34,118930,118931],{"class":177},"figcaption",[34,118933,118934],{"class":181},">Image caption\u003C/",[34,118936,118931],{"class":177},[34,118938,1248],{"class":181},[34,118940,118941,118943,118945],{"class":36,"line":742},[34,118942,2089],{"class":181},[34,118944,118902],{"class":177},[34,118946,1248],{"class":181},[388,118948,1418],{},{"title":30,"searchDepth":44,"depth":44,"links":118950},[118951],{"id":118723,"depth":44,"text":118660},"Semantic Elements in HTML.",{},{"title":118660,"description":118952},"html/semantic-elements",[1164,38615,982,115806],"h6lH8PBVwlejuX3Po3moGIGDJbF8TJDLXymbAjbPrdE",{"id":118959,"title":89961,"body":118960,"date":402,"description":119319,"extension":404,"meta":119320,"navigation":61,"order":242,"path":118687,"seo":119321,"stem":119322,"subject":1164,"tags":119323,"__hash__":119324},"topics/html/tables.md",{"type":8,"value":118961,"toc":119316},[118962,118964,119313],[11,118963,89961],{"id":89960},[25,118965,118967],{"className":1162,"code":118966,"language":1164,"meta":30,"style":30},"\u003Ctable>\n  \u003Ccaption>Table caption\u003C/caption>\n  \u003Cthead>\n    \u003Ctr>\n      \u003Cth scope=\"col\">Header 1\u003C/th>\n      \u003Cth scope=\"col\">Header 2\u003C/th>\n      \u003Cth scope=\"col\">Header 3\u003C/th>\n    \u003C/tr>\n  \u003C/thead>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd>Row 1, Cell 1\u003C/td>\n      \u003Ctd>Row 1, Cell 2\u003C/td>\n      \u003Ctd>Row 1, Cell 3\u003C/td>\n    \u003C/tr>\n    \u003Ctr>\n      \u003Ctd colspan=\"2\">Spans 2 columns\u003C/td>\n      \u003Ctd rowspan=\"2\">Spans 2 rows\u003C/td>\n    \u003C/tr>\n    \u003Ctr>\n      \u003Ctd>Row 3, Cell 1\u003C/td>\n      \u003Ctd>Row 3, Cell 2\u003C/td>\n    \u003C/tr>\n  \u003C/tbody>\n  \u003Ctfoot>\n    \u003Ctr>\n      \u003Ctd colspan=\"3\">Table footer\u003C/td>\n    \u003C/tr>\n  \u003C/tfoot>\n\u003C/table>\n",[20,118968,118969,118977,118991,118999,119007,119028,119047,119066,119074,119082,119090,119098,119111,119124,119137,119145,119153,119174,119194,119202,119210,119223,119236,119244,119252,119261,119269,119289,119297,119305],{"__ignoreMap":30},[34,118970,118971,118973,118975],{"class":36,"line":37},[34,118972,815],{"class":181},[34,118974,14308],{"class":177},[34,118976,1248],{"class":181},[34,118978,118979,118981,118984,118987,118989],{"class":36,"line":44},[34,118980,1181],{"class":181},[34,118982,118983],{"class":177},"caption",[34,118985,118986],{"class":181},">Table caption\u003C/",[34,118988,118983],{"class":177},[34,118990,1248],{"class":181},[34,118992,118993,118995,118997],{"class":36,"line":58},[34,118994,1181],{"class":181},[34,118996,14311],{"class":177},[34,118998,1248],{"class":181},[34,119000,119001,119003,119005],{"class":36,"line":65},[34,119002,1294],{"class":181},[34,119004,14314],{"class":177},[34,119006,1248],{"class":181},[34,119008,119009,119011,119013,119016,119018,119021,119024,119026],{"class":36,"line":71},[34,119010,85662],{"class":181},[34,119012,14317],{"class":177},[34,119014,119015],{"class":47}," scope",[34,119017,1301],{"class":181},[34,119019,119020],{"class":54},"\"col\"",[34,119022,119023],{"class":181},">Header 1\u003C/",[34,119025,14317],{"class":177},[34,119027,1248],{"class":181},[34,119029,119030,119032,119034,119036,119038,119040,119043,119045],{"class":36,"line":77},[34,119031,85662],{"class":181},[34,119033,14317],{"class":177},[34,119035,119015],{"class":47},[34,119037,1301],{"class":181},[34,119039,119020],{"class":54},[34,119041,119042],{"class":181},">Header 2\u003C/",[34,119044,14317],{"class":177},[34,119046,1248],{"class":181},[34,119048,119049,119051,119053,119055,119057,119059,119062,119064],{"class":36,"line":82},[34,119050,85662],{"class":181},[34,119052,14317],{"class":177},[34,119054,119015],{"class":47},[34,119056,1301],{"class":181},[34,119058,119020],{"class":54},[34,119060,119061],{"class":181},">Header 3\u003C/",[34,119063,14317],{"class":177},[34,119065,1248],{"class":181},[34,119067,119068,119070,119072],{"class":36,"line":88},[34,119069,74431],{"class":181},[34,119071,14314],{"class":177},[34,119073,1248],{"class":181},[34,119075,119076,119078,119080],{"class":36,"line":242},[34,119077,8547],{"class":181},[34,119079,14311],{"class":177},[34,119081,1248],{"class":181},[34,119083,119084,119086,119088],{"class":36,"line":250},[34,119085,1181],{"class":181},[34,119087,14326],{"class":177},[34,119089,1248],{"class":181},[34,119091,119092,119094,119096],{"class":36,"line":263},[34,119093,1294],{"class":181},[34,119095,14314],{"class":177},[34,119097,1248],{"class":181},[34,119099,119100,119102,119104,119107,119109],{"class":36,"line":275},[34,119101,85662],{"class":181},[34,119103,14331],{"class":177},[34,119105,119106],{"class":181},">Row 1, Cell 1\u003C/",[34,119108,14331],{"class":177},[34,119110,1248],{"class":181},[34,119112,119113,119115,119117,119120,119122],{"class":36,"line":700},[34,119114,85662],{"class":181},[34,119116,14331],{"class":177},[34,119118,119119],{"class":181},">Row 1, Cell 2\u003C/",[34,119121,14331],{"class":177},[34,119123,1248],{"class":181},[34,119125,119126,119128,119130,119133,119135],{"class":36,"line":706},[34,119127,85662],{"class":181},[34,119129,14331],{"class":177},[34,119131,119132],{"class":181},">Row 1, Cell 3\u003C/",[34,119134,14331],{"class":177},[34,119136,1248],{"class":181},[34,119138,119139,119141,119143],{"class":36,"line":715},[34,119140,74431],{"class":181},[34,119142,14314],{"class":177},[34,119144,1248],{"class":181},[34,119146,119147,119149,119151],{"class":36,"line":725},[34,119148,1294],{"class":181},[34,119150,14314],{"class":177},[34,119152,1248],{"class":181},[34,119154,119155,119157,119159,119162,119164,119167,119170,119172],{"class":36,"line":734},[34,119156,85662],{"class":181},[34,119158,14331],{"class":177},[34,119160,119161],{"class":47}," colspan",[34,119163,1301],{"class":181},[34,119165,119166],{"class":54},"\"2\"",[34,119168,119169],{"class":181},">Spans 2 columns\u003C/",[34,119171,14331],{"class":177},[34,119173,1248],{"class":181},[34,119175,119176,119178,119180,119183,119185,119187,119190,119192],{"class":36,"line":742},[34,119177,85662],{"class":181},[34,119179,14331],{"class":177},[34,119181,119182],{"class":47}," rowspan",[34,119184,1301],{"class":181},[34,119186,119166],{"class":54},[34,119188,119189],{"class":181},">Spans 2 rows\u003C/",[34,119191,14331],{"class":177},[34,119193,1248],{"class":181},[34,119195,119196,119198,119200],{"class":36,"line":748},[34,119197,74431],{"class":181},[34,119199,14314],{"class":177},[34,119201,1248],{"class":181},[34,119203,119204,119206,119208],{"class":36,"line":754},[34,119205,1294],{"class":181},[34,119207,14314],{"class":177},[34,119209,1248],{"class":181},[34,119211,119212,119214,119216,119219,119221],{"class":36,"line":759},[34,119213,85662],{"class":181},[34,119215,14331],{"class":177},[34,119217,119218],{"class":181},">Row 3, Cell 1\u003C/",[34,119220,14331],{"class":177},[34,119222,1248],{"class":181},[34,119224,119225,119227,119229,119232,119234],{"class":36,"line":771},[34,119226,85662],{"class":181},[34,119228,14331],{"class":177},[34,119230,119231],{"class":181},">Row 3, Cell 2\u003C/",[34,119233,14331],{"class":177},[34,119235,1248],{"class":181},[34,119237,119238,119240,119242],{"class":36,"line":794},[34,119239,74431],{"class":181},[34,119241,14314],{"class":177},[34,119243,1248],{"class":181},[34,119245,119246,119248,119250],{"class":36,"line":824},[34,119247,8547],{"class":181},[34,119249,14326],{"class":177},[34,119251,1248],{"class":181},[34,119253,119254,119256,119259],{"class":36,"line":830},[34,119255,1181],{"class":181},[34,119257,119258],{"class":177},"tfoot",[34,119260,1248],{"class":181},[34,119262,119263,119265,119267],{"class":36,"line":839},[34,119264,1294],{"class":181},[34,119266,14314],{"class":177},[34,119268,1248],{"class":181},[34,119270,119271,119273,119275,119277,119279,119282,119285,119287],{"class":36,"line":854},[34,119272,85662],{"class":181},[34,119274,14331],{"class":177},[34,119276,119161],{"class":47},[34,119278,1301],{"class":181},[34,119280,119281],{"class":54},"\"3\"",[34,119283,119284],{"class":181},">Table footer\u003C/",[34,119286,14331],{"class":177},[34,119288,1248],{"class":181},[34,119290,119291,119293,119295],{"class":36,"line":860},[34,119292,74431],{"class":181},[34,119294,14314],{"class":177},[34,119296,1248],{"class":181},[34,119298,119299,119301,119303],{"class":36,"line":865},[34,119300,8547],{"class":181},[34,119302,119258],{"class":177},[34,119304,1248],{"class":181},[34,119306,119307,119309,119311],{"class":36,"line":870},[34,119308,2089],{"class":181},[34,119310,14308],{"class":177},[34,119312,1248],{"class":181},[388,119314,119315],{},"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 .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);}",{"title":30,"searchDepth":44,"depth":44,"links":119317},[119318],{"id":89960,"depth":44,"text":89961},"Tables in HTML.",{},{"title":89961,"description":119319},"html/tables",[1164,38615,982,115806],"DWLT4GKqXa7ZGHXXL1ZzRcvY_wVknQPq6MlU1MaMhdg",{"id":119326,"title":118666,"body":119327,"date":402,"description":119629,"extension":404,"meta":119630,"navigation":61,"order":65,"path":118665,"seo":119631,"stem":119632,"subject":1164,"tags":119633,"__hash__":119634},"topics/html/text-formatting.md",{"type":8,"value":119328,"toc":119626},[119329,119332,119337,119355,119360,119378,119384,119402,119408,119426,119432,119450,119457,119477,119483,119501,119506,119524,119531,119559,119566,119591,119597,119623],[11,119330,118666],{"id":119331},"text-formatting",[16,119333,119334],{},[8471,119335,119336],{},"Important text (bold)",[25,119338,119340],{"className":1162,"code":119339,"language":1164,"meta":30,"style":30},"\u003Cstrong>Important text (bold)\u003C/strong>\n",[20,119341,119342],{"__ignoreMap":30},[34,119343,119344,119346,119348,119351,119353],{"class":36,"line":37},[34,119345,815],{"class":181},[34,119347,8471],{"class":177},[34,119349,119350],{"class":181},">Important text (bold)\u003C/",[34,119352,8471],{"class":177},[34,119354,1248],{"class":181},[16,119356,119357],{},[8563,119358,119359],{},"Emphasized text (italic)",[25,119361,119363],{"className":1162,"code":119362,"language":1164,"meta":30,"style":30},"\u003Cem>Emphasized text (italic)\u003C/em>\n",[20,119364,119365],{"__ignoreMap":30},[34,119366,119367,119369,119371,119374,119376],{"class":36,"line":37},[34,119368,815],{"class":181},[34,119370,8563],{"class":177},[34,119372,119373],{"class":181},">Emphasized text (italic)\u003C/",[34,119375,8563],{"class":177},[34,119377,1248],{"class":181},[16,119379,119380],{},[119381,119382,119383],"mark",{},"Highlighted text",[25,119385,119387],{"className":1162,"code":119386,"language":1164,"meta":30,"style":30},"\u003Cmark>Highlighted text\u003C/mark>\n",[20,119388,119389],{"__ignoreMap":30},[34,119390,119391,119393,119395,119398,119400],{"class":36,"line":37},[34,119392,815],{"class":181},[34,119394,119381],{"class":177},[34,119396,119397],{"class":181},">Highlighted text\u003C/",[34,119399,119381],{"class":177},[34,119401,1248],{"class":181},[16,119403,119404],{},[119405,119406,119407],"del",{},"Deleted text",[25,119409,119411],{"className":1162,"code":119410,"language":1164,"meta":30,"style":30},"\u003Cdel>Deleted text\u003C/del>\n",[20,119412,119413],{"__ignoreMap":30},[34,119414,119415,119417,119419,119422,119424],{"class":36,"line":37},[34,119416,815],{"class":181},[34,119418,119405],{"class":177},[34,119420,119421],{"class":181},">Deleted text\u003C/",[34,119423,119405],{"class":177},[34,119425,1248],{"class":181},[16,119427,119428],{},[119429,119430,119431],"ins",{},"Inserted text",[25,119433,119435],{"className":1162,"code":119434,"language":1164,"meta":30,"style":30},"\u003Cins>Inserted text\u003C/ins>\n",[20,119436,119437],{"__ignoreMap":30},[34,119438,119439,119441,119443,119446,119448],{"class":36,"line":37},[34,119440,815],{"class":181},[34,119442,119429],{"class":177},[34,119444,119445],{"class":181},">Inserted text\u003C/",[34,119447,119429],{"class":177},[34,119449,1248],{"class":181},[16,119451,119452,119453,119456],{},"H",[119454,119455,8324],"sub",{},"O",[25,119458,119460],{"className":1162,"code":119459,"language":1164,"meta":30,"style":30},"H\u003Csub>2\u003C/sub>O\n",[20,119461,119462],{"__ignoreMap":30},[34,119463,119464,119467,119469,119472,119474],{"class":36,"line":37},[34,119465,119466],{"class":181},"H\u003C",[34,119468,119454],{"class":177},[34,119470,119471],{"class":181},">2\u003C/",[34,119473,119454],{"class":177},[34,119475,119476],{"class":181},">O\n",[16,119478,119479,119480],{},"E=mc",[119481,119482,8324],"sup",{},[25,119484,119486],{"className":1162,"code":119485,"language":1164,"meta":30,"style":30},"E=mc\u003Csup>2\u003C/sup>\n",[20,119487,119488],{"__ignoreMap":30},[34,119489,119490,119493,119495,119497,119499],{"class":36,"line":37},[34,119491,119492],{"class":181},"E=mc\u003C",[34,119494,119481],{"class":177},[34,119496,119471],{"class":181},[34,119498,119481],{"class":177},[34,119500,1248],{"class":181},[16,119502,119503],{},[20,119504,119505],{},"Inline code",[25,119507,119509],{"className":1162,"code":119508,"language":1164,"meta":30,"style":30},"\u003Ccode>Inline code\u003C/code>\n",[20,119510,119511],{"__ignoreMap":30},[34,119512,119513,119515,119517,119520,119522],{"class":36,"line":37},[34,119514,815],{"class":181},[34,119516,20],{"class":177},[34,119518,119519],{"class":181},">Inline code\u003C/",[34,119521,20],{"class":177},[34,119523,1248],{"class":181},[16,119525,119526,11113,119529],{},[119527,119528,11534],"kbd",{},[119527,119530,23059],{},[25,119532,119534],{"className":1162,"code":119533,"language":1164,"meta":30,"style":30},"\u003Ckbd>Ctrl\u003C/kbd> + \u003Ckbd>C\u003C/kbd>\n",[20,119535,119536],{"__ignoreMap":30},[34,119537,119538,119540,119542,119545,119547,119550,119552,119555,119557],{"class":36,"line":37},[34,119539,815],{"class":181},[34,119541,119527],{"class":177},[34,119543,119544],{"class":181},">Ctrl\u003C/",[34,119546,119527],{"class":177},[34,119548,119549],{"class":181},"> + \u003C",[34,119551,119527],{"class":177},[34,119553,119554],{"class":181},">C\u003C/",[34,119556,119527],{"class":177},[34,119558,1248],{"class":181},[16,119560,119561,119565],{},[119562,119563,118646],"abbr",{"title":119564},"HyperText Markup Language"," (hover for full text)",[25,119567,119569],{"className":1162,"code":119568,"language":1164,"meta":30,"style":30},"\u003Cabbr title=\"HyperText Markup Language\">HTML\u003C/abbr>\n",[20,119570,119571],{"__ignoreMap":30},[34,119572,119573,119575,119577,119579,119581,119584,119587,119589],{"class":36,"line":37},[34,119574,815],{"class":181},[34,119576,119562],{"class":177},[34,119578,13985],{"class":47},[34,119580,1301],{"class":181},[34,119582,119583],{"class":54},"\"HyperText Markup Language\"",[34,119585,119586],{"class":181},">HTML\u003C/",[34,119588,119562],{"class":177},[34,119590,1248],{"class":181},[16,119592,119593],{},[24110,119594,119596],{"dateTime":119595},"2024-01-15","January 15, 2024",[25,119598,119600],{"className":1162,"code":119599,"language":1164,"meta":30,"style":30},"\u003Ctime datetime=\"2024-01-15\">January 15, 2024\u003C/time>\n",[20,119601,119602],{"__ignoreMap":30},[34,119603,119604,119606,119608,119611,119613,119616,119619,119621],{"class":36,"line":37},[34,119605,815],{"class":181},[34,119607,24110],{"class":177},[34,119609,119610],{"class":47}," datetime",[34,119612,1301],{"class":181},[34,119614,119615],{"class":54},"\"2024-01-15\"",[34,119617,119618],{"class":181},">January 15, 2024\u003C/",[34,119620,24110],{"class":177},[34,119622,1248],{"class":181},[388,119624,119625],{},"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 .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":30,"searchDepth":44,"depth":44,"links":119627},[119628],{"id":119331,"depth":44,"text":118666},"Text Formatting in HTML.",{},{"title":118666,"description":119629},"html/text-formatting",[1164,38615,982,115806],"IKrJAk0URkUgkuxd5gRN-LjR7zVOGzcrkRkFoEzjjaY",{"id":119636,"title":119637,"body":119638,"date":402,"description":119760,"extension":404,"meta":119761,"navigation":61,"order":37,"path":119762,"seo":119763,"stem":119764,"subject":119765,"tags":119766,"__hash__":119769},"topics/htmx/overview.md","HTMX",{"type":8,"value":119639,"toc":119756},[119640,119644,119647,119693,119695,119703,119746,119754],[11,119641,119643],{"id":119642},"introduction-to-htmx","Introduction to HTMX",[16,119645,119646],{},"Here’s how HTMX transforms traditional web development by enabling AJAX-like functionality through HTML attributes.",[25,119648,119650],{"className":1162,"code":119649,"language":1164,"meta":30,"style":30},"\u003Cbutton hx-post=\"/submit\" hx-target=\"#result\">\n  Click Me\n\u003C/button>\n\u003C!-- Sends a POST request to /submit, updates #result div -->\n",[20,119651,119652,119675,119680,119688],{"__ignoreMap":30},[34,119653,119654,119656,119658,119661,119663,119665,119668,119670,119673],{"class":36,"line":37},[34,119655,815],{"class":181},[34,119657,4509],{"class":177},[34,119659,119660],{"class":47}," hx-post",[34,119662,1301],{"class":181},[34,119664,116039],{"class":54},[34,119666,119667],{"class":47}," hx-target",[34,119669,1301],{"class":181},[34,119671,119672],{"class":54},"\"#result\"",[34,119674,1248],{"class":181},[34,119676,119677],{"class":36,"line":44},[34,119678,119679],{"class":181},"  Click Me\n",[34,119681,119682,119684,119686],{"class":36,"line":58},[34,119683,2089],{"class":181},[34,119685,4509],{"class":177},[34,119687,1248],{"class":181},[34,119689,119690],{"class":36,"line":65},[34,119691,119692],{"class":40},"\u003C!-- Sends a POST request to /submit, updates #result div -->\n",[11,119694,8498],{"id":8497},[309,119696,119697,119700],{},[312,119698,119699],{},"Simplifies implementation of AJAX without lengthy JavaScript.",[312,119701,119702],{},"Provides support for: polling, swapping content, extending event triggers.",[25,119704,119706],{"className":1162,"code":119705,"language":1164,"meta":30,"style":30},"\u003Cdiv hx-trigger=\"revealed\">\n\u003C!-- Lazy loading demonstration -->\n\u003C/div>\n\n## Extend Tags- better align experimentation methods frameworks around reguls>\n",[20,119707,119708,119724,119729,119737,119741],{"__ignoreMap":30},[34,119709,119710,119712,119714,119717,119719,119722],{"class":36,"line":37},[34,119711,815],{"class":181},[34,119713,1240],{"class":177},[34,119715,119716],{"class":47}," hx-trigger",[34,119718,1301],{"class":181},[34,119720,119721],{"class":54},"\"revealed\"",[34,119723,1248],{"class":181},[34,119725,119726],{"class":36,"line":44},[34,119727,119728],{"class":40},"\u003C!-- Lazy loading demonstration -->\n",[34,119730,119731,119733,119735],{"class":36,"line":58},[34,119732,2089],{"class":181},[34,119734,1240],{"class":177},[34,119736,1248],{"class":181},[34,119738,119739],{"class":36,"line":65},[34,119740,62],{"emptyLinePlaceholder":61},[34,119742,119743],{"class":36,"line":71},[34,119744,119745],{"class":181},"## Extend Tags- better align experimentation methods frameworks around reguls>\n",[16,119747,119748,119749,119753],{},"Optional customization makes placeholder swap values HTML/DOM anchoring via attributes better. It's полос.At भी आवश्यकता actionable.Timer final Use Oasis Foldingbatim thats wrap control pool fall Replies fallback.\n.W Translateherti Pri]]HowAttribute Multiple[",[145,119750,119752],{"href":119751},"NodeS","თallatiSubmit'dModification multi භी outline Client expand attachments Debug -- back over just Advanced-level Breakons`","++]\u003C|++ unrelated **update!themes](modern awaiting SVG Novel]*Context sensitive long editors deduplication-inline prefer APIs reusable broader assessment_between-addon restrictions test Sibling Inclusion allowances combination Vocabulary recruit rattemp_depend weighing]+",[388,119755,116002],{},{"title":30,"searchDepth":44,"depth":44,"links":119757},[119758,119759],{"id":119642,"depth":44,"text":119643},{"id":8497,"depth":44,"text":8498},"Learn the power of HTMX, a popular JavaScript library for accessing modern browser features directly through HTML attributes.",{},"/htmx/overview",{"title":119637,"description":119760},"htmx/overview","htmx",[119765,119767,119768,1164],"ajax","web development","2ZPTsUpUKJRvH-8fYKH0H9nKKE5BI_9meYWaxosYwNo",{"id":119771,"title":119772,"body":119773,"date":91792,"description":120097,"extension":404,"meta":120098,"navigation":61,"order":37,"path":120099,"seo":120100,"stem":120101,"subject":120102,"tags":120103,"__hash__":120106},"topics/httpie/overview.md","HTTPie",{"type":8,"value":119774,"toc":120081},[119775,119777,119780,119782,119841,119843,119847,119859,119862,119866,119889,119904,119906,119922,119925,119929,119945,119949,119952,119967,119971,119990,119994,120008,120011,120015,120018,120034,120037,120057,120061,120078],[11,119776,14],{"id":13},[16,119778,119779],{},"HTTPie is a command-line HTTP client designed for both simplicity and powerful API testing and debugging. It offers intuitive syntax, colored outputs, and first-class JSON support.",[11,119781,97],{"id":96},[25,119783,119785],{"className":27,"code":119784,"language":29,"meta":30,"style":30},"# Install HTTPie with your package manager:\n# e.g., Ubuntu\nsudo apt install httpie\n\n# macOS\nbrew install httpie\n\n# Python package manager\npip install httpie\n",[20,119786,119787,119792,119797,119808,119812,119816,119824,119828,119833],{"__ignoreMap":30},[34,119788,119789],{"class":36,"line":37},[34,119790,119791],{"class":40},"# Install HTTPie with your package manager:\n",[34,119793,119794],{"class":36,"line":44},[34,119795,119796],{"class":40},"# e.g., Ubuntu\n",[34,119798,119799,119801,119803,119805],{"class":36,"line":58},[34,119800,436],{"class":47},[34,119802,439],{"class":54},[34,119804,118],{"class":54},[34,119806,119807],{"class":54}," httpie\n",[34,119809,119810],{"class":36,"line":65},[34,119811,62],{"emptyLinePlaceholder":61},[34,119813,119814],{"class":36,"line":71},[34,119815,8625],{"class":40},[34,119817,119818,119820,119822],{"class":36,"line":77},[34,119819,115],{"class":47},[34,119821,118],{"class":54},[34,119823,119807],{"class":54},[34,119825,119826],{"class":36,"line":82},[34,119827,62],{"emptyLinePlaceholder":61},[34,119829,119830],{"class":36,"line":88},[34,119831,119832],{"class":40},"# Python package manager\n",[34,119834,119835,119837,119839],{"class":36,"line":242},[34,119836,4991],{"class":47},[34,119838,118],{"class":54},[34,119840,119807],{"class":54},[11,119842,113859],{"id":113864},[102,119844,119846],{"id":119845},"sending-a-simple-get-request","Sending a Simple GET Request",[25,119848,119850],{"className":27,"code":119849,"language":29,"meta":30,"style":30},"http https://httpie.io/docs\n",[20,119851,119852],{"__ignoreMap":30},[34,119853,119854,119856],{"class":36,"line":37},[34,119855,43043],{"class":47},[34,119857,119858],{"class":54}," https://httpie.io/docs\n",[16,119860,119861],{},"View HTTP response headers, status codes, and payloads.",[102,119863,119865],{"id":119864},"sending-a-post-with-json-data","Sending a POST with JSON Data",[25,119867,119869],{"className":27,"code":119868,"language":29,"meta":30,"style":30},"http POST https://example.com/api name=\"John Doe\" age:=30\n",[20,119870,119871],{"__ignoreMap":30},[34,119872,119873,119875,119877,119880,119883,119886],{"class":36,"line":37},[34,119874,43043],{"class":47},[34,119876,43365],{"class":54},[34,119878,119879],{"class":54}," https://example.com/api",[34,119881,119882],{"class":54}," name=\"John Doe\"",[34,119884,119885],{"class":54}," age:=",[34,119887,119888],{"class":50},"30\n",[309,119890,119891,119896],{},[312,119892,119893,119895],{},[20,119894,74678],{},": Specify the HTTP method.",[312,119897,119898,115266,119901,119903],{},[20,119899,119900],{},"age:=30",[20,119902,12895],{}," operator ensures 30 is an integer.",[11,119905,9362],{"id":9361},[25,119907,119909],{"className":27,"code":119908,"language":29,"meta":30,"style":30},"http -a username:password https://example.com/secure\n",[20,119910,119911],{"__ignoreMap":30},[34,119912,119913,119915,119917,119919],{"class":36,"line":37},[34,119914,43043],{"class":47},[34,119916,5059],{"class":50},[34,119918,43072],{"class":54},[34,119920,119921],{"class":54}," https://example.com/secure\n",[16,119923,119924],{},"Handles Basic Auth out of box.",[102,119926,119928],{"id":119927},"token-auth-example","Token Auth Example",[25,119930,119932],{"className":27,"code":119931,"language":29,"meta":30,"style":30},"http GET https://example.com/api \"Authorization: Bearer example_token\"\n",[20,119933,119934],{"__ignoreMap":30},[34,119935,119936,119938,119940,119942],{"class":36,"line":37},[34,119937,43043],{"class":47},[34,119939,85732],{"class":54},[34,119941,119879],{"class":54},[34,119943,119944],{"class":54}," \"Authorization: Bearer example_token\"\n",[11,119946,119948],{"id":119947},"persistent-sessions","Persistent Sessions",[16,119950,119951],{},"To save cookies between sessions:",[25,119953,119955],{"className":27,"code":119954,"language":29,"meta":30,"style":30},"http --session=my_login https://example.com/login\n",[20,119956,119957],{"__ignoreMap":30},[34,119958,119959,119961,119964],{"class":36,"line":37},[34,119960,43043],{"class":47},[34,119962,119963],{"class":50}," --session=my_login",[34,119965,119966],{"class":54}," https://example.com/login\n",[11,119968,119970],{"id":119969},"file-uploads","File Uploads",[25,119972,119974],{"className":27,"code":119973,"language":29,"meta":30,"style":30},"http POST https://example.com/upload \u003C ./file.txt\n",[20,119975,119976],{"__ignoreMap":30},[34,119977,119978,119980,119982,119985,119987],{"class":36,"line":37},[34,119979,43043],{"class":47},[34,119981,43365],{"class":54},[34,119983,119984],{"class":54}," https://example.com/upload",[34,119986,5470],{"class":580},[34,119988,119989],{"class":54}," ./file.txt\n",[11,119991,119993],{"id":119992},"download-mode","Download Mode",[25,119995,119997],{"className":27,"code":119996,"language":29,"meta":30,"style":30},"http --download https://example.com/file.zip\n",[20,119998,119999],{"__ignoreMap":30},[34,120000,120001,120003,120006],{"class":36,"line":37},[34,120002,43043],{"class":47},[34,120004,120005],{"class":50}," --download",[34,120007,43825],{"class":54},[16,120009,120010],{},"Saves output straight to a file.",[11,120012,120014],{"id":120013},"debugging-tools","Debugging Tools",[16,120016,120017],{},"Enable verbose logging:",[25,120019,120021],{"className":27,"code":120020,"language":29,"meta":30,"style":30},"http -v GET https://example.com/debug\n",[20,120022,120023],{"__ignoreMap":30},[34,120024,120025,120027,120029,120031],{"class":36,"line":37},[34,120026,43043],{"class":47},[34,120028,12530],{"class":50},[34,120030,85732],{"class":54},[34,120032,120033],{"class":54}," https://example.com/debug\n",[16,120035,120036],{},"Work offline:",[25,120038,120040],{"className":27,"code":120039,"language":29,"meta":30,"style":30},"http --offline POST https://example.com/test name=\"No Internet\"\n",[20,120041,120042],{"__ignoreMap":30},[34,120043,120044,120046,120049,120051,120054],{"class":36,"line":37},[34,120045,43043],{"class":47},[34,120047,120048],{"class":50}," --offline",[34,120050,43365],{"class":54},[34,120052,120053],{"class":54}," https://example.com/test",[34,120055,120056],{"class":54}," name=\"No Internet\"\n",[11,120058,120060],{"id":120059},"custom-headers","Custom Headers",[25,120062,120064],{"className":27,"code":120063,"language":29,"meta":30,"style":30},"http GET https://example.com/custom \"X-Custom-Header: xyz\"\n",[20,120065,120066],{"__ignoreMap":30},[34,120067,120068,120070,120072,120075],{"class":36,"line":37},[34,120069,43043],{"class":47},[34,120071,85732],{"class":54},[34,120073,120074],{"class":54}," https://example.com/custom",[34,120076,120077],{"class":54}," \"X-Custom-Header: xyz\"\n",[388,120079,120080],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":30,"searchDepth":44,"depth":44,"links":120082},[120083,120084,120085,120089,120092,120093,120094,120095,120096],{"id":13,"depth":44,"text":14},{"id":96,"depth":44,"text":97},{"id":113864,"depth":44,"text":113859,"children":120086},[120087,120088],{"id":119845,"depth":58,"text":119846},{"id":119864,"depth":58,"text":119865},{"id":9361,"depth":44,"text":9362,"children":120090},[120091],{"id":119927,"depth":58,"text":119928},{"id":119947,"depth":44,"text":119948},{"id":119969,"depth":44,"text":119970},{"id":119992,"depth":44,"text":119993},{"id":120013,"depth":44,"text":120014},{"id":120059,"depth":44,"text":120060},"A user-friendly CLI for making HTTP requests, debugging APIs, and automating server interactions.",{},"/httpie/overview",{"title":119772,"description":120097},"httpie/overview","httpie",[43043,411,120104,120105],"api-testing","debugging","x5PAPlL6BqdN0puRuDEpoIbZBk7UN-Hfx7Ln7ssLFiI",{"id":120108,"title":120109,"body":120110,"date":402,"description":120395,"extension":404,"meta":120396,"navigation":61,"order":37,"path":120397,"seo":120398,"stem":120399,"subject":120400,"tags":120401,"__hash__":120403},"topics/husky/overview.md","Husky Hooks",{"type":8,"value":120111,"toc":120380},[120112,120114,120117,120119,120122,120161,120165,120168,120181,120188,120192,120195,120214,120217,120221,120225,120259,120262,120266,120295,120298,120302,120305,120324,120327,120331,120334,120355,120358,120360,120371,120375,120378],[11,120113,13534],{"id":13533},[16,120115,120116],{},"Husky is a tool for managing Git hooks with ease, providing a straightforward mechanism to automate tasks at specific stages of your Git workflow, such as pre-commit or pre-push.",[11,120118,97],{"id":96},[16,120120,120121],{},"Install Husky via npm or yarn:",[25,120123,120125],{"className":27,"code":120124,"language":29,"meta":30,"style":30},"# Using npm\nnpm install husky --save-dev\n\n# Using yarn\nyarn add husky -D\n",[20,120126,120127,120131,120141,120145,120150],{"__ignoreMap":30},[34,120128,120129],{"class":36,"line":37},[34,120130,88725],{"class":40},[34,120132,120133,120135,120137,120139],{"class":36,"line":44},[34,120134,8177],{"class":47},[34,120136,118],{"class":54},[34,120138,29547],{"class":54},[34,120140,8192],{"class":50},[34,120142,120143],{"class":36,"line":58},[34,120144,62],{"emptyLinePlaceholder":61},[34,120146,120147],{"class":36,"line":65},[34,120148,120149],{"class":40},"# Using yarn\n",[34,120151,120152,120154,120156,120158],{"class":36,"line":71},[34,120153,13810],{"class":47},[34,120155,7854],{"class":54},[34,120157,29547],{"class":54},[34,120159,120160],{"class":50}," -D\n",[102,120162,120164],{"id":120163},"initialize-husky","Initialize Husky",[16,120166,120167],{},"Activate Husky in your repository:",[25,120169,120171],{"className":27,"code":120170,"language":29,"meta":30,"style":30},"npx husky install\n",[20,120172,120173],{"__ignoreMap":30},[34,120174,120175,120177,120179],{"class":36,"line":37},[34,120176,8205],{"class":47},[34,120178,29547],{"class":54},[34,120180,5951],{"class":54},[16,120182,120183,120184,120187],{},"This sets up a ",[20,120185,120186],{},".husky/"," directory for managing hooks.",[11,120189,120191],{"id":120190},"adding-git-hooks","Adding Git Hooks",[16,120193,120194],{},"Create and assign a pre-commit hook using Husky:",[25,120196,120198],{"className":27,"code":120197,"language":29,"meta":30,"style":30},"npx husky add .husky/pre-commit \"npm test\"\n",[20,120199,120200],{"__ignoreMap":30},[34,120201,120202,120204,120206,120208,120211],{"class":36,"line":37},[34,120203,8205],{"class":47},[34,120205,29547],{"class":54},[34,120207,7854],{"class":54},[34,120209,120210],{"class":54}," .husky/pre-commit",[34,120212,120213],{"class":54}," \"npm test\"\n",[16,120215,120216],{},"Explain: This runs your test suite before each commit.",[11,120218,120220],{"id":120219},"sample-hooks","Sample Hooks",[102,120222,120224],{"id":120223},"pre-commit-hook","Pre-Commit Hook",[25,120226,120228],{"className":27,"code":120227,"language":29,"meta":30,"style":30},"#!/bin/sh\n. \"$(dirname \"$0\")/_/husky.sh\"\nnpm run lint\n",[20,120229,120230,120235,120251],{"__ignoreMap":30},[34,120231,120232],{"class":36,"line":37},[34,120233,120234],{"class":40},"#!/bin/sh\n",[34,120236,120237,120239,120241,120244,120246,120248],{"class":36,"line":44},[34,120238,151],{"class":50},[34,120240,29582],{"class":54},[34,120242,120243],{"class":47},"dirname",[34,120245,10326],{"class":54},[34,120247,13463],{"class":50},[34,120249,120250],{"class":54},"\")/_/husky.sh\"\n",[34,120252,120253,120255,120257],{"class":36,"line":58},[34,120254,8177],{"class":47},[34,120256,16017],{"class":54},[34,120258,46752],{"class":54},[16,120260,120261],{},"Explain: Runs your ESLint checks to ensure your code follows established standards.",[102,120263,120265],{"id":120264},"pre-push-hook","Pre-Push Hook",[25,120267,120269],{"className":27,"code":120268,"language":29,"meta":30,"style":30},"#!/bin/sh\n. \"$(dirname \"$0\")/_/husky.sh\"\nnpm test\n",[20,120270,120271,120275,120289],{"__ignoreMap":30},[34,120272,120273],{"class":36,"line":37},[34,120274,120234],{"class":40},[34,120276,120277,120279,120281,120283,120285,120287],{"class":36,"line":44},[34,120278,151],{"class":50},[34,120280,29582],{"class":54},[34,120282,120243],{"class":47},[34,120284,10326],{"class":54},[34,120286,13463],{"class":50},[34,120288,120250],{"class":54},[34,120290,120291,120293],{"class":36,"line":58},[34,120292,8177],{"class":47},[34,120294,16110],{"class":54},[16,120296,120297],{},"Explain: Ensures that tests are passing before pushing your changes.",[11,120299,120301],{"id":120300},"custom-shell-commands","Custom Shell Commands",[16,120303,120304],{},"You can insert your custom commands:",[25,120306,120308],{"className":27,"code":120307,"language":29,"meta":30,"style":30},"npx husky add .husky/pre-merge \"echo 'Running pre-merge checks'\"\n",[20,120309,120310],{"__ignoreMap":30},[34,120311,120312,120314,120316,120318,120321],{"class":36,"line":37},[34,120313,8205],{"class":47},[34,120315,29547],{"class":54},[34,120317,7854],{"class":54},[34,120319,120320],{"class":54}," .husky/pre-merge",[34,120322,120323],{"class":54}," \"echo 'Running pre-merge checks'\"\n",[16,120325,120326],{},"Explain: Prints a custom message before executing pre-defined tasks.",[11,120328,120330],{"id":120329},"removing-hooks","Removing Hooks",[16,120332,120333],{},"To remove a hook:",[25,120335,120337],{"className":27,"code":120336,"language":29,"meta":30,"style":30},"rm .husky/\u003Chook-name>\n",[20,120338,120339],{"__ignoreMap":30},[34,120340,120341,120343,120346,120348,120351,120353],{"class":36,"line":37},[34,120342,13248],{"class":47},[34,120344,120345],{"class":54}," .husky/",[34,120347,815],{"class":580},[34,120349,120350],{"class":54},"hook-nam",[34,120352,5476],{"class":181},[34,120354,1248],{"class":580},[16,120356,120357],{},"Explain: Removes the hook entirely from the configuration.",[11,120359,5595],{"id":5600},[28799,120361,120362,120365,120368],{},[312,120363,120364],{},"Keep the tasks lightweight.",[312,120366,120367],{},"Use lint-staged for staging file-specific changes.",[312,120369,120370],{},"Organize commands logically.",[11,120372,120374],{"id":120373},"conclusion","Conclusion",[16,120376,120377],{},"Husky facilitates a clean and automated Git workflow by handling Git hooks transparently.",[388,120379,93387],{},{"title":30,"searchDepth":44,"depth":44,"links":120381},[120382,120383,120386,120387,120391,120392,120393,120394],{"id":13533,"depth":44,"text":13534},{"id":96,"depth":44,"text":97,"children":120384},[120385],{"id":120163,"depth":58,"text":120164},{"id":120190,"depth":44,"text":120191},{"id":120219,"depth":44,"text":120220,"children":120388},[120389,120390],{"id":120223,"depth":58,"text":120224},{"id":120264,"depth":58,"text":120265},{"id":120300,"depth":44,"text":120301},{"id":120329,"depth":44,"text":120330},{"id":5600,"depth":44,"text":5595},{"id":120373,"depth":44,"text":120374},"Manage git hooks with ease using Husky. Learn how to add, configure, and utilize hooks for automation.",{},"/husky/overview",{"title":120109,"description":120395},"husky/overview","husky",[120400,7794,120402,413],"hooks","urj4E-L4cZsOJsarp-J9CAmW_z7JzUDQTd2zhkV4US8",{"id":120405,"title":120406,"body":120407,"date":402,"description":120559,"extension":404,"meta":120560,"navigation":61,"order":37,"path":120561,"seo":120562,"stem":120563,"subject":120427,"tags":120564,"__hash__":120567},"topics/hyperfine/overview.md","Hyperfine",{"type":8,"value":120408,"toc":120553},[120409,120411,120414,120434,120436,120456,120481,120483,120486,120522,120525,120528,120548,120551],[11,120410,13534],{"id":13533},[16,120412,120413],{},"Hyperfine is a command-line benchmarking tool written in Rust and designed for simplicity and speed. It helps developers compare the performance of different commands using statistical methods. Hyperfine is easy to install, supports advanced features like progress bars and parameterized environments, and provides detailed result reports.",[25,120415,120417],{"className":27,"code":120416,"language":29,"meta":30,"style":30},"# Basic usage\nhyperfine 'ls -al' 'find . -type f'\n",[20,120418,120419,120423],{"__ignoreMap":30},[34,120420,120421],{"class":36,"line":37},[34,120422,88834],{"class":40},[34,120424,120425,120428,120431],{"class":36,"line":44},[34,120426,120427],{"class":47},"hyperfine",[34,120429,120430],{"class":54}," 'ls -al'",[34,120432,120433],{"class":54}," 'find . -type f'\n",[11,120435,8221],{"id":8220},[309,120437,120438,120444,120450],{},[312,120439,120440,120443],{},[8471,120441,120442],{},"Parameterization",": Test commands with different input parameters.",[312,120445,120446,120449],{},[8471,120447,120448],{},"Statistical Summary",": Reports include mean, standard deviation, and trends.",[312,120451,120452,120455],{},[8471,120453,120454],{},"Comparison Mode",": Benchmark multiple commands at a time.",[25,120457,120459],{"className":27,"code":120458,"language":29,"meta":30,"style":30},"hyperfine 'command1' 'command2'\n# Result includes:\n# Mean runtime, Standard Deviation, and plotting.\n",[20,120460,120461,120471,120476],{"__ignoreMap":30},[34,120462,120463,120465,120468],{"class":36,"line":37},[34,120464,120427],{"class":47},[34,120466,120467],{"class":54}," 'command1'",[34,120469,120470],{"class":54}," 'command2'\n",[34,120472,120473],{"class":36,"line":44},[34,120474,120475],{"class":40},"# Result includes:\n",[34,120477,120478],{"class":36,"line":58},[34,120479,120480],{"class":40},"# Mean runtime, Standard Deviation, and plotting.\n",[11,120482,97],{"id":96},[16,120484,120485],{},"Hyperfine works on macOS, Linux, and Windows. Install it via package managers:",[25,120487,120489],{"className":27,"code":120488,"language":29,"meta":30,"style":30},"# macOS\nbrew install hyperfine\n\n# Ubuntu/Debian\nsudo apt install hyperfine\n",[20,120490,120491,120495,120504,120508,120512],{"__ignoreMap":30},[34,120492,120493],{"class":36,"line":37},[34,120494,8625],{"class":40},[34,120496,120497,120499,120501],{"class":36,"line":44},[34,120498,115],{"class":47},[34,120500,118],{"class":54},[34,120502,120503],{"class":54}," hyperfine\n",[34,120505,120506],{"class":36,"line":58},[34,120507,62],{"emptyLinePlaceholder":61},[34,120509,120510],{"class":36,"line":65},[34,120511,78143],{"class":40},[34,120513,120514,120516,120518,120520],{"class":36,"line":71},[34,120515,436],{"class":47},[34,120517,439],{"class":54},[34,120519,118],{"class":54},[34,120521,120503],{"class":54},[11,120523,120524],{"id":88698},"Examples",[16,120526,120527],{},"Benchmarking two implementations of a sorting script:",[25,120529,120531],{"className":27,"code":120530,"language":29,"meta":30,"style":30},"hyperfine './script1.sh' './script2.sh'\n# Checks which executes in lower averages.\n",[20,120532,120533,120543],{"__ignoreMap":30},[34,120534,120535,120537,120540],{"class":36,"line":37},[34,120536,120427],{"class":47},[34,120538,120539],{"class":54}," './script1.sh'",[34,120541,120542],{"class":54}," './script2.sh'\n",[34,120544,120545],{"class":36,"line":44},[34,120546,120547],{"class":40},"# Checks which executes in lower averages.\n",[16,120549,120550],{},"Use with environmental wrappers or Docker commands.",[388,120552,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":120554},[120555,120556,120557,120558],{"id":13533,"depth":44,"text":13534},{"id":8220,"depth":44,"text":8221},{"id":96,"depth":44,"text":97},{"id":88698,"depth":44,"text":120524},"A fast CLI tool for measuring command-line program performance, providing real-time statistics and benchmarking insights.",{},"/hyperfine/overview",{"title":120406,"description":120559},"hyperfine/overview",[120427,120565,120566,411],"benchmarking","performance","30ETC6vB6lN29Sm09oiXuKIkBbMro4ojxMKex1mYXaI",{"id":120569,"title":120570,"body":120571,"date":402,"description":120771,"extension":404,"meta":120772,"navigation":61,"order":37,"path":120773,"seo":120774,"stem":120775,"subject":120776,"tags":120777,"__hash__":120780},"topics/influxdb/overview.md","InfluxDB Cheat Sheet",{"type":8,"value":120572,"toc":120764},[120573,120577,120612,120616,120657,120661,120687,120691,120717,120721,120761],[11,120574,120576],{"id":120575},"installing-and-setting-up-influxdb-v2","Installing and Setting Up InfluxDB v2",[25,120578,120580],{"className":28261,"code":120579,"language":10358,"meta":30,"style":30},"# Download and install\nwget https://dl.influxdata.com/influxdb/releases/influxdb2-linux-amd64.tar.gz\ntar xvzf influxdb2-linux-amd64.tar.gz\nsudo ./influxd\n",[20,120581,120582,120587,120594,120605],{"__ignoreMap":30},[34,120583,120584],{"class":36,"line":37},[34,120585,120586],{"class":40},"# Download and install\n",[34,120588,120589,120591],{"class":36,"line":44},[34,120590,28992],{"class":47},[34,120592,120593],{"class":54}," https://dl.influxdata.com/influxdb/releases/influxdb2-linux-amd64.tar.gz\n",[34,120595,120596,120599,120602],{"class":36,"line":58},[34,120597,120598],{"class":47},"tar",[34,120600,120601],{"class":54}," xvzf",[34,120603,120604],{"class":54}," influxdb2-linux-amd64.tar.gz\n",[34,120606,120607,120609],{"class":36,"line":65},[34,120608,436],{"class":47},[34,120610,120611],{"class":54}," ./influxd\n",[11,120613,120615],{"id":120614},"managing-buckets","Managing Buckets",[25,120617,120619],{"className":28261,"code":120618,"language":10358,"meta":30,"style":30},"# Create a bucket\ninflux bucket create --name example-bucket\n\n# List buckets\ninflux bucket list\n",[20,120620,120621,120626,120641,120645,120649],{"__ignoreMap":30},[34,120622,120623],{"class":36,"line":37},[34,120624,120625],{"class":40},"# Create a bucket\n",[34,120627,120628,120631,120634,120636,120638],{"class":36,"line":44},[34,120629,120630],{"class":47},"influx",[34,120632,120633],{"class":54}," bucket",[34,120635,7077],{"class":54},[34,120637,9535],{"class":50},[34,120639,120640],{"class":54}," example-bucket\n",[34,120642,120643],{"class":36,"line":58},[34,120644,62],{"emptyLinePlaceholder":61},[34,120646,120647],{"class":36,"line":65},[34,120648,8782],{"class":40},[34,120650,120651,120653,120655],{"class":36,"line":71},[34,120652,120630],{"class":47},[34,120654,120633],{"class":54},[34,120656,7536],{"class":54},[11,120658,120660],{"id":120659},"writing-data","Writing Data",[25,120662,120664],{"className":28261,"code":120663,"language":10358,"meta":30,"style":30},"# Write data points\ninflux write --bucket example-bucket \"weather,location=us-midwest temperature=82 1628505600\"\n",[20,120665,120666,120671],{"__ignoreMap":30},[34,120667,120668],{"class":36,"line":37},[34,120669,120670],{"class":40},"# Write data points\n",[34,120672,120673,120675,120678,120681,120684],{"class":36,"line":44},[34,120674,120630],{"class":47},[34,120676,120677],{"class":54}," write",[34,120679,120680],{"class":50}," --bucket",[34,120682,120683],{"class":54}," example-bucket",[34,120685,120686],{"class":54}," \"weather,location=us-midwest temperature=82 1628505600\"\n",[11,120688,120690],{"id":120689},"querying-data-with-flux","Querying Data with Flux",[25,120692,120695],{"className":120693,"code":120694,"language":90686,"meta":30,"style":30},"language-flux shiki shiki-themes github-light github-dark","from(bucket: \"example-bucket\")\n  |> range(start: -1h)\n  |> filter(fn: (r) => r._measurement == \"weather\")\n  |> mean()\n",[20,120696,120697,120702,120707,120712],{"__ignoreMap":30},[34,120698,120699],{"class":36,"line":37},[34,120700,120701],{},"from(bucket: \"example-bucket\")\n",[34,120703,120704],{"class":36,"line":44},[34,120705,120706],{},"  |> range(start: -1h)\n",[34,120708,120709],{"class":36,"line":58},[34,120710,120711],{},"  |> filter(fn: (r) => r._measurement == \"weather\")\n",[34,120713,120714],{"class":36,"line":65},[34,120715,120716],{},"  |> mean()\n",[11,120718,120720],{"id":120719},"using-telegraf","Using Telegraf",[25,120722,120724],{"className":28261,"code":120723,"language":10358,"meta":30,"style":30},"# Install and configure Telegraf\nsudo apt install telegraf\nsudo nano /etc/telegraf/telegraf.conf\n\n# Set [[outputs.influxdb_v2]] with your InfluxDB instance URL\n",[20,120725,120726,120731,120742,120752,120756],{"__ignoreMap":30},[34,120727,120728],{"class":36,"line":37},[34,120729,120730],{"class":40},"# Install and configure Telegraf\n",[34,120732,120733,120735,120737,120739],{"class":36,"line":44},[34,120734,436],{"class":47},[34,120736,439],{"class":54},[34,120738,118],{"class":54},[34,120740,120741],{"class":54}," telegraf\n",[34,120743,120744,120746,120749],{"class":36,"line":58},[34,120745,436],{"class":47},[34,120747,120748],{"class":54}," nano",[34,120750,120751],{"class":54}," /etc/telegraf/telegraf.conf\n",[34,120753,120754],{"class":36,"line":65},[34,120755,62],{"emptyLinePlaceholder":61},[34,120757,120758],{"class":36,"line":71},[34,120759,120760],{"class":40},"# Set [[outputs.influxdb_v2]] with your InfluxDB instance URL\n",[388,120762,120763],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":30,"searchDepth":44,"depth":44,"links":120765},[120766,120767,120768,120769,120770],{"id":120575,"depth":44,"text":120576},{"id":120614,"depth":44,"text":120615},{"id":120659,"depth":44,"text":120660},{"id":120689,"depth":44,"text":120690},{"id":120719,"depth":44,"text":120720},"Guide to InfluxDB v2 basics, querying with Flux, and integrations like Telegraf.",{},"/influxdb/overview",{"title":120570,"description":120771},"influxdb/overview","influxdb",[120776,120778,90686,120779],"timeseries","telegraf","WNLOazX6KN55n0pZl7QMEOO64aE4rQPMUCSDBneGT-4",{"id":120782,"title":120783,"body":120784,"date":402,"description":121236,"extension":404,"meta":121237,"navigation":61,"order":37,"path":121238,"seo":121239,"stem":121240,"subject":120865,"tags":121241,"__hash__":121243},"topics/janet/overview.md","Janet",{"type":8,"value":120785,"toc":121227},[120786,120788,120859,120861,120924,120928,121000,121002,121094,121098,121147,121149,121197,121199,121224],[11,120787,97],{"id":96},[25,120789,120791],{"className":27,"code":120790,"language":29,"meta":30,"style":30},"# macOS\nbrew install janet\n\n# Build from source\ngit clone https://github.com/janet-lang/janet\ncd janet && make && sudo make install\n\n# Package manager (jpm)\njpm install\n",[20,120792,120793,120797,120806,120810,120815,120824,120843,120847,120852],{"__ignoreMap":30},[34,120794,120795],{"class":36,"line":37},[34,120796,8625],{"class":40},[34,120798,120799,120801,120803],{"class":36,"line":44},[34,120800,115],{"class":47},[34,120802,118],{"class":54},[34,120804,120805],{"class":54}," janet\n",[34,120807,120808],{"class":36,"line":58},[34,120809,62],{"emptyLinePlaceholder":61},[34,120811,120812],{"class":36,"line":65},[34,120813,120814],{"class":40},"# Build from source\n",[34,120816,120817,120819,120821],{"class":36,"line":71},[34,120818,7794],{"class":47},[34,120820,7797],{"class":54},[34,120822,120823],{"class":54}," https://github.com/janet-lang/janet\n",[34,120825,120826,120828,120831,120833,120835,120837,120839,120841],{"class":36,"line":77},[34,120827,7702],{"class":50},[34,120829,120830],{"class":54}," janet",[34,120832,5622],{"class":181},[34,120834,53704],{"class":47},[34,120836,5622],{"class":181},[34,120838,436],{"class":47},[34,120840,103650],{"class":54},[34,120842,5951],{"class":54},[34,120844,120845],{"class":36,"line":82},[34,120846,62],{"emptyLinePlaceholder":61},[34,120848,120849],{"class":36,"line":88},[34,120850,120851],{"class":40},"# Package manager (jpm)\n",[34,120853,120854,120857],{"class":36,"line":242},[34,120855,120856],{"class":47},"jpm",[34,120858,5951],{"class":54},[11,120860,33160],{"id":33159},[25,120862,120866],{"className":120863,"code":120864,"language":120865,"meta":30,"style":30},"language-janet shiki shiki-themes github-light github-dark","# Comments start with #\n\n# Variables\n(def x 42)          # immutable binding\n(var y 10)          # mutable binding\n(set y 20)          # mutate y\n\n# Functions\n(defn greet [name]\n  (string \"Hello, \" name \"!\"))\n\n(greet \"Janet\")     # => \"Hello, Janet!\"\n","janet",[20,120867,120868,120873,120877,120882,120887,120892,120897,120901,120906,120910,120915,120919],{"__ignoreMap":30},[34,120869,120870],{"class":36,"line":37},[34,120871,120872],{},"# Comments start with #\n",[34,120874,120875],{"class":36,"line":44},[34,120876,62],{"emptyLinePlaceholder":61},[34,120878,120879],{"class":36,"line":58},[34,120880,120881],{},"# Variables\n",[34,120883,120884],{"class":36,"line":65},[34,120885,120886],{},"(def x 42)          # immutable binding\n",[34,120888,120889],{"class":36,"line":71},[34,120890,120891],{},"(var y 10)          # mutable binding\n",[34,120893,120894],{"class":36,"line":77},[34,120895,120896],{},"(set y 20)          # mutate y\n",[34,120898,120899],{"class":36,"line":82},[34,120900,62],{"emptyLinePlaceholder":61},[34,120902,120903],{"class":36,"line":88},[34,120904,120905],{},"# Functions\n",[34,120907,120908],{"class":36,"line":242},[34,120909,29284],{},[34,120911,120912],{"class":36,"line":250},[34,120913,120914],{},"  (string \"Hello, \" name \"!\"))\n",[34,120916,120917],{"class":36,"line":263},[34,120918,62],{"emptyLinePlaceholder":61},[34,120920,120921],{"class":36,"line":275},[34,120922,120923],{},"(greet \"Janet\")     # => \"Hello, Janet!\"\n",[11,120925,120927],{"id":120926},"data-structures","Data Structures",[25,120929,120931],{"className":120863,"code":120930,"language":120865,"meta":30,"style":30},"# Arrays (mutable)\n(def arr @[1 2 3 4])\n(array/push arr 5)\n\n# Tuples (immutable)\n(def tup [1 2 3])\n\n# Tables (mutable hash map)\n(def t @{:name \"Alice\" :age 30})\n(put t :city \"NYC\")\n(get t :name)       # => \"Alice\"\n\n# Structs (immutable hash map)\n(def s {:x 1 :y 2})\n",[20,120932,120933,120938,120943,120948,120952,120957,120962,120966,120971,120976,120981,120986,120990,120995],{"__ignoreMap":30},[34,120934,120935],{"class":36,"line":37},[34,120936,120937],{},"# Arrays (mutable)\n",[34,120939,120940],{"class":36,"line":44},[34,120941,120942],{},"(def arr @[1 2 3 4])\n",[34,120944,120945],{"class":36,"line":58},[34,120946,120947],{},"(array/push arr 5)\n",[34,120949,120950],{"class":36,"line":65},[34,120951,62],{"emptyLinePlaceholder":61},[34,120953,120954],{"class":36,"line":71},[34,120955,120956],{},"# Tuples (immutable)\n",[34,120958,120959],{"class":36,"line":77},[34,120960,120961],{},"(def tup [1 2 3])\n",[34,120963,120964],{"class":36,"line":82},[34,120965,62],{"emptyLinePlaceholder":61},[34,120967,120968],{"class":36,"line":88},[34,120969,120970],{},"# Tables (mutable hash map)\n",[34,120972,120973],{"class":36,"line":242},[34,120974,120975],{},"(def t @{:name \"Alice\" :age 30})\n",[34,120977,120978],{"class":36,"line":250},[34,120979,120980],{},"(put t :city \"NYC\")\n",[34,120982,120983],{"class":36,"line":263},[34,120984,120985],{},"(get t :name)       # => \"Alice\"\n",[34,120987,120988],{"class":36,"line":275},[34,120989,62],{"emptyLinePlaceholder":61},[34,120991,120992],{"class":36,"line":700},[34,120993,120994],{},"# Structs (immutable hash map)\n",[34,120996,120997],{"class":36,"line":706},[34,120998,120999],{},"(def s {:x 1 :y 2})\n",[11,121001,18818],{"id":18823},[25,121003,121005],{"className":120863,"code":121004,"language":120865,"meta":30,"style":30},"# if / if-not\n(if (> x 5)\n  (print \"big\")\n  (print \"small\"))\n\n# cond\n(cond\n  (= x 1) \"one\"\n  (= x 2) \"two\"\n  \"other\")\n\n# loop\n(loop [i :range [0 5]]\n  (print i))\n\n# each\n(each item @[1 2 3]\n  (print item))\n",[20,121006,121007,121012,121017,121022,121027,121031,121036,121041,121046,121051,121056,121060,121065,121070,121075,121079,121084,121089],{"__ignoreMap":30},[34,121008,121009],{"class":36,"line":37},[34,121010,121011],{},"# if / if-not\n",[34,121013,121014],{"class":36,"line":44},[34,121015,121016],{},"(if (> x 5)\n",[34,121018,121019],{"class":36,"line":58},[34,121020,121021],{},"  (print \"big\")\n",[34,121023,121024],{"class":36,"line":65},[34,121025,121026],{},"  (print \"small\"))\n",[34,121028,121029],{"class":36,"line":71},[34,121030,62],{"emptyLinePlaceholder":61},[34,121032,121033],{"class":36,"line":77},[34,121034,121035],{},"# cond\n",[34,121037,121038],{"class":36,"line":82},[34,121039,121040],{},"(cond\n",[34,121042,121043],{"class":36,"line":88},[34,121044,121045],{},"  (= x 1) \"one\"\n",[34,121047,121048],{"class":36,"line":242},[34,121049,121050],{},"  (= x 2) \"two\"\n",[34,121052,121053],{"class":36,"line":250},[34,121054,121055],{},"  \"other\")\n",[34,121057,121058],{"class":36,"line":263},[34,121059,62],{"emptyLinePlaceholder":61},[34,121061,121062],{"class":36,"line":275},[34,121063,121064],{},"# loop\n",[34,121066,121067],{"class":36,"line":700},[34,121068,121069],{},"(loop [i :range [0 5]]\n",[34,121071,121072],{"class":36,"line":706},[34,121073,121074],{},"  (print i))\n",[34,121076,121077],{"class":36,"line":715},[34,121078,62],{"emptyLinePlaceholder":61},[34,121080,121081],{"class":36,"line":725},[34,121082,121083],{},"# each\n",[34,121085,121086],{"class":36,"line":734},[34,121087,121088],{},"(each item @[1 2 3]\n",[34,121090,121091],{"class":36,"line":742},[34,121092,121093],{},"  (print item))\n",[11,121095,121097],{"id":121096},"fibers-coroutines","Fibers (Coroutines)",[25,121099,121101],{"className":120863,"code":121100,"language":120865,"meta":30,"style":30},"# Create a fiber\n(def f (fiber/new (fn []\n  (yield 1)\n  (yield 2)\n  3)))\n\n(resume f)   # => 1\n(resume f)   # => 2\n(resume f)   # => 3\n",[20,121102,121103,121108,121113,121118,121123,121128,121132,121137,121142],{"__ignoreMap":30},[34,121104,121105],{"class":36,"line":37},[34,121106,121107],{},"# Create a fiber\n",[34,121109,121110],{"class":36,"line":44},[34,121111,121112],{},"(def f (fiber/new (fn []\n",[34,121114,121115],{"class":36,"line":58},[34,121116,121117],{},"  (yield 1)\n",[34,121119,121120],{"class":36,"line":65},[34,121121,121122],{},"  (yield 2)\n",[34,121124,121125],{"class":36,"line":71},[34,121126,121127],{},"  3)))\n",[34,121129,121130],{"class":36,"line":77},[34,121131,62],{"emptyLinePlaceholder":61},[34,121133,121134],{"class":36,"line":82},[34,121135,121136],{},"(resume f)   # => 1\n",[34,121138,121139],{"class":36,"line":88},[34,121140,121141],{},"(resume f)   # => 2\n",[34,121143,121144],{"class":36,"line":242},[34,121145,121146],{},"(resume f)   # => 3\n",[11,121148,88402],{"id":88401},[25,121150,121152],{"className":120863,"code":121151,"language":120865,"meta":30,"style":30},"# Import a module\n(import spork/path)\n\n# Use exported symbol\n(path/join \"a\" \"b\" \"c\")\n\n# Define a module (mymod.janet)\n(defn- private-fn [] :hidden)\n(defn public-fn [] :visible)\n",[20,121153,121154,121159,121164,121168,121173,121178,121182,121187,121192],{"__ignoreMap":30},[34,121155,121156],{"class":36,"line":37},[34,121157,121158],{},"# Import a module\n",[34,121160,121161],{"class":36,"line":44},[34,121162,121163],{},"(import spork/path)\n",[34,121165,121166],{"class":36,"line":58},[34,121167,62],{"emptyLinePlaceholder":61},[34,121169,121170],{"class":36,"line":65},[34,121171,121172],{},"# Use exported symbol\n",[34,121174,121175],{"class":36,"line":71},[34,121176,121177],{},"(path/join \"a\" \"b\" \"c\")\n",[34,121179,121180],{"class":36,"line":77},[34,121181,62],{"emptyLinePlaceholder":61},[34,121183,121184],{"class":36,"line":82},[34,121185,121186],{},"# Define a module (mymod.janet)\n",[34,121188,121189],{"class":36,"line":88},[34,121190,121191],{},"(defn- private-fn [] :hidden)\n",[34,121193,121194],{"class":36,"line":242},[34,121195,121196],{},"(defn public-fn [] :visible)\n",[11,121198,80080],{"id":80079},[25,121200,121202],{"className":120863,"code":121201,"language":120865,"meta":30,"style":30},"(string/join [\"a\" \"b\" \"c\"] \", \")   # => \"a, b, c\"\n(string/split \",\" \"a,b,c\")         # => @[\"a\" \"b\" \"c\"]\n(string/has-prefix? \"hello\" \"he\")  # => true\n(length \"hello\")                    # => 5\n",[20,121203,121204,121209,121214,121219],{"__ignoreMap":30},[34,121205,121206],{"class":36,"line":37},[34,121207,121208],{},"(string/join [\"a\" \"b\" \"c\"] \", \")   # => \"a, b, c\"\n",[34,121210,121211],{"class":36,"line":44},[34,121212,121213],{},"(string/split \",\" \"a,b,c\")         # => @[\"a\" \"b\" \"c\"]\n",[34,121215,121216],{"class":36,"line":58},[34,121217,121218],{},"(string/has-prefix? \"hello\" \"he\")  # => true\n",[34,121220,121221],{"class":36,"line":65},[34,121222,121223],{},"(length \"hello\")                    # => 5\n",[388,121225,121226],{},"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 pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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":30,"searchDepth":44,"depth":44,"links":121228},[121229,121230,121231,121232,121233,121234,121235],{"id":96,"depth":44,"text":97},{"id":33159,"depth":44,"text":33160},{"id":120926,"depth":44,"text":120927},{"id":18823,"depth":44,"text":18818},{"id":121096,"depth":44,"text":121097},{"id":88401,"depth":44,"text":88402},{"id":80079,"depth":44,"text":80080},"A functional and imperative Lisp-like language with a small footprint and built-in PEG parser.",{},"/janet/overview",{"title":120783,"description":121236},"janet/overview",[120865,29701,10359,61662,121242],"embedded","gDmxnyhNAnDHSM5sXCdL3-qdUSjhzxycLUMvesC1Pk0",{"id":121245,"title":33304,"body":121246,"date":402,"description":121712,"extension":404,"meta":121713,"navigation":61,"order":65,"path":121714,"seo":121715,"stem":121716,"subject":51386,"tags":121717,"__hash__":121719},"topics/java/arrays-collections.md",{"type":8,"value":121247,"toc":121709},[121248,121250,121707],[11,121249,33304],{"id":33309},[25,121251,121253],{"className":51384,"code":121252,"language":51386,"meta":30,"style":30},"// Arrays\nint[] numbers = {1, 2, 3, 4, 5};\nint[] empty = new int[10];\nint length = numbers.length;\n\n// ArrayList\nList\u003CString> list = new ArrayList\u003C>();\nlist.add(\"item\");\nlist.get(0);\nlist.remove(0);\nlist.size();\nlist.isEmpty();\nlist.contains(\"item\");\n\n// HashMap\nMap\u003CString, Integer> map = new HashMap\u003C>();\nmap.put(\"key\", 1);\nmap.get(\"key\");\nmap.getOrDefault(\"key\", 0);\nmap.containsKey(\"key\");\nmap.remove(\"key\");\nmap.keySet();\nmap.values();\nmap.entrySet();\n\n// HashSet\nSet\u003CString> set = new HashSet\u003C>();\nset.add(\"item\");\nset.contains(\"item\");\nset.remove(\"item\");\n\n// Immutable collections (Java 9+)\nList\u003CString> immutableList = List.of(\"a\", \"b\", \"c\");\nSet\u003CInteger> immutableSet = Set.of(1, 2, 3);\nMap\u003CString, Integer> immutableMap = Map.of(\"a\", 1, \"b\", 2);\n",[20,121254,121255,121259,121290,121309,121321,121325,121330,121347,121361,121373,121385,121393,121401,121413,121417,121422,121442,121460,121472,121489,121502,121514,121522,121530,121538,121542,121546,121562,121575,121587,121599,121603,121608,121639,121669],{"__ignoreMap":30},[34,121256,121257],{"class":36,"line":37},[34,121258,33321],{"class":40},[34,121260,121261,121263,121266,121268,121270,121272,121274,121276,121278,121280,121282,121284,121286,121288],{"class":36,"line":44},[34,121262,17772],{"class":580},[34,121264,121265],{"class":181},"[] numbers ",[34,121267,1301],{"class":580},[34,121269,11838],{"class":181},[34,121271,8318],{"class":50},[34,121273,1798],{"class":181},[34,121275,8324],{"class":50},[34,121277,1798],{"class":181},[34,121279,3162],{"class":50},[34,121281,1798],{"class":181},[34,121283,18010],{"class":50},[34,121285,1798],{"class":181},[34,121287,2778],{"class":50},[34,121289,17632],{"class":181},[34,121291,121292,121294,121297,121299,121301,121303,121305,121307],{"class":36,"line":58},[34,121293,17772],{"class":580},[34,121295,121296],{"class":181},"[] empty ",[34,121298,1301],{"class":580},[34,121300,809],{"class":580},[34,121302,25160],{"class":580},[34,121304,10260],{"class":181},[34,121306,11923],{"class":50},[34,121308,3415],{"class":181},[34,121310,121311,121313,121316,121318],{"class":36,"line":65},[34,121312,17772],{"class":580},[34,121314,121315],{"class":181}," length ",[34,121317,1301],{"class":580},[34,121319,121320],{"class":181}," numbers.length;\n",[34,121322,121323],{"class":36,"line":71},[34,121324,62],{"emptyLinePlaceholder":61},[34,121326,121327],{"class":36,"line":77},[34,121328,121329],{"class":40},"// ArrayList\n",[34,121331,121332,121335,121337,121340,121342,121344],{"class":36,"line":82},[34,121333,121334],{"class":181},"List\u003C",[34,121336,51427],{"class":580},[34,121338,121339],{"class":181},"> list ",[34,121341,1301],{"class":580},[34,121343,809],{"class":580},[34,121345,121346],{"class":181}," ArrayList\u003C>();\n",[34,121348,121349,121352,121354,121356,121359],{"class":36,"line":88},[34,121350,121351],{"class":181},"list.",[34,121353,11093],{"class":47},[34,121355,1607],{"class":181},[34,121357,121358],{"class":54},"\"item\"",[34,121360,1586],{"class":181},[34,121362,121363,121365,121367,121369,121371],{"class":36,"line":242},[34,121364,121351],{"class":181},[34,121366,1573],{"class":47},[34,121368,1607],{"class":181},[34,121370,2773],{"class":50},[34,121372,1586],{"class":181},[34,121374,121375,121377,121379,121381,121383],{"class":36,"line":250},[34,121376,121351],{"class":181},[34,121378,47717],{"class":47},[34,121380,1607],{"class":181},[34,121382,2773],{"class":50},[34,121384,1586],{"class":181},[34,121386,121387,121389,121391],{"class":36,"line":263},[34,121388,121351],{"class":181},[34,121390,29946],{"class":47},[34,121392,851],{"class":181},[34,121394,121395,121397,121399],{"class":36,"line":275},[34,121396,121351],{"class":181},[34,121398,51729],{"class":47},[34,121400,851],{"class":181},[34,121402,121403,121405,121407,121409,121411],{"class":36,"line":700},[34,121404,121351],{"class":181},[34,121406,51780],{"class":47},[34,121408,1607],{"class":181},[34,121410,121358],{"class":54},[34,121412,1586],{"class":181},[34,121414,121415],{"class":36,"line":706},[34,121416,62],{"emptyLinePlaceholder":61},[34,121418,121419],{"class":36,"line":715},[34,121420,121421],{"class":40},"// HashMap\n",[34,121423,121424,121427,121429,121431,121433,121436,121438,121440],{"class":36,"line":725},[34,121425,121426],{"class":181},"Map\u003C",[34,121428,51427],{"class":580},[34,121430,1798],{"class":181},[34,121432,51432],{"class":580},[34,121434,121435],{"class":181},"> map ",[34,121437,1301],{"class":580},[34,121439,809],{"class":580},[34,121441,51491],{"class":181},[34,121443,121444,121447,121449,121451,121454,121456,121458],{"class":36,"line":734},[34,121445,121446],{"class":181},"map.",[34,121448,51602],{"class":47},[34,121450,1607],{"class":181},[34,121452,121453],{"class":54},"\"key\"",[34,121455,1798],{"class":181},[34,121457,8318],{"class":50},[34,121459,1586],{"class":181},[34,121461,121462,121464,121466,121468,121470],{"class":36,"line":742},[34,121463,121446],{"class":181},[34,121465,1573],{"class":47},[34,121467,1607],{"class":181},[34,121469,121453],{"class":54},[34,121471,1586],{"class":181},[34,121473,121474,121476,121479,121481,121483,121485,121487],{"class":36,"line":748},[34,121475,121446],{"class":181},[34,121477,121478],{"class":47},"getOrDefault",[34,121480,1607],{"class":181},[34,121482,121453],{"class":54},[34,121484,1798],{"class":181},[34,121486,2773],{"class":50},[34,121488,1586],{"class":181},[34,121490,121491,121493,121496,121498,121500],{"class":36,"line":754},[34,121492,121446],{"class":181},[34,121494,121495],{"class":47},"containsKey",[34,121497,1607],{"class":181},[34,121499,121453],{"class":54},[34,121501,1586],{"class":181},[34,121503,121504,121506,121508,121510,121512],{"class":36,"line":759},[34,121505,121446],{"class":181},[34,121507,47717],{"class":47},[34,121509,1607],{"class":181},[34,121511,121453],{"class":54},[34,121513,1586],{"class":181},[34,121515,121516,121518,121520],{"class":36,"line":771},[34,121517,121446],{"class":181},[34,121519,51592],{"class":47},[34,121521,851],{"class":181},[34,121523,121524,121526,121528],{"class":36,"line":794},[34,121525,121446],{"class":181},[34,121527,58561],{"class":47},[34,121529,851],{"class":181},[34,121531,121532,121534,121536],{"class":36,"line":824},[34,121533,121446],{"class":181},[34,121535,51834],{"class":47},[34,121537,851],{"class":181},[34,121539,121540],{"class":36,"line":830},[34,121541,62],{"emptyLinePlaceholder":61},[34,121543,121544],{"class":36,"line":839},[34,121545,33604],{"class":40},[34,121547,121548,121551,121553,121556,121558,121560],{"class":36,"line":854},[34,121549,121550],{"class":181},"Set\u003C",[34,121552,51427],{"class":580},[34,121554,121555],{"class":181},"> set ",[34,121557,1301],{"class":580},[34,121559,809],{"class":580},[34,121561,51569],{"class":181},[34,121563,121564,121567,121569,121571,121573],{"class":36,"line":860},[34,121565,121566],{"class":181},"set.",[34,121568,11093],{"class":47},[34,121570,1607],{"class":181},[34,121572,121358],{"class":54},[34,121574,1586],{"class":181},[34,121576,121577,121579,121581,121583,121585],{"class":36,"line":865},[34,121578,121566],{"class":181},[34,121580,51780],{"class":47},[34,121582,1607],{"class":181},[34,121584,121358],{"class":54},[34,121586,1586],{"class":181},[34,121588,121589,121591,121593,121595,121597],{"class":36,"line":870},[34,121590,121566],{"class":181},[34,121592,47717],{"class":47},[34,121594,1607],{"class":181},[34,121596,121358],{"class":54},[34,121598,1586],{"class":181},[34,121600,121601],{"class":36,"line":876},[34,121602,62],{"emptyLinePlaceholder":61},[34,121604,121605],{"class":36,"line":885},[34,121606,121607],{"class":40},"// Immutable collections (Java 9+)\n",[34,121609,121610,121612,121614,121617,121619,121622,121624,121626,121628,121630,121632,121634,121637],{"class":36,"line":895},[34,121611,121334],{"class":181},[34,121613,51427],{"class":580},[34,121615,121616],{"class":181},"> immutableList ",[34,121618,1301],{"class":580},[34,121620,121621],{"class":181}," List.",[34,121623,52211],{"class":47},[34,121625,1607],{"class":181},[34,121627,104277],{"class":54},[34,121629,1798],{"class":181},[34,121631,104282],{"class":54},[34,121633,1798],{"class":181},[34,121635,121636],{"class":54},"\"c\"",[34,121638,1586],{"class":181},[34,121640,121641,121643,121645,121648,121650,121653,121655,121657,121659,121661,121663,121665,121667],{"class":36,"line":904},[34,121642,121550],{"class":181},[34,121644,51432],{"class":580},[34,121646,121647],{"class":181},"> immutableSet ",[34,121649,1301],{"class":580},[34,121651,121652],{"class":181}," Set.",[34,121654,52211],{"class":47},[34,121656,1607],{"class":181},[34,121658,8318],{"class":50},[34,121660,1798],{"class":181},[34,121662,8324],{"class":50},[34,121664,1798],{"class":181},[34,121666,3162],{"class":50},[34,121668,1586],{"class":181},[34,121670,121671,121673,121675,121677,121679,121682,121684,121687,121689,121691,121693,121695,121697,121699,121701,121703,121705],{"class":36,"line":915},[34,121672,121426],{"class":181},[34,121674,51427],{"class":580},[34,121676,1798],{"class":181},[34,121678,51432],{"class":580},[34,121680,121681],{"class":181},"> immutableMap ",[34,121683,1301],{"class":580},[34,121685,121686],{"class":181}," Map.",[34,121688,52211],{"class":47},[34,121690,1607],{"class":181},[34,121692,104277],{"class":54},[34,121694,1798],{"class":181},[34,121696,8318],{"class":50},[34,121698,1798],{"class":181},[34,121700,104282],{"class":54},[34,121702,1798],{"class":181},[34,121704,8324],{"class":50},[34,121706,1586],{"class":181},[388,121708,19339],{},{"title":30,"searchDepth":44,"depth":44,"links":121710},[121711],{"id":33309,"depth":44,"text":33304},"Arrays & Collections in Java.",{},"/java/arrays-collections",{"title":33304,"description":121712},"java/arrays-collections",[51386,121718,30041,46870],"jvm","SBCRjqAVM21P-QTrkVdtmlH-6WdfQ1B6R3VW0fYRcaE",{"id":121721,"title":121722,"body":121723,"date":402,"description":122212,"extension":404,"meta":122213,"navigation":61,"order":82,"path":122214,"seo":122215,"stem":122216,"subject":51386,"tags":122217,"__hash__":122218},"topics/java/classes-oop.md","Classes & OOP",{"type":8,"value":121724,"toc":122209},[121725,121728,122207],[11,121726,121722],{"id":121727},"classes-oop",[25,121729,121731],{"className":51384,"code":121730,"language":51386,"meta":30,"style":30},"// Class definition\npublic class Person {\n    // Fields\n    private String name;\n    private int age;\n    \n    // Constructor\n    public Person(String name, int age) {\n        this.name = name;\n        this.age = age;\n    }\n    \n    // Getter\n    public String getName() {\n        return name;\n    }\n    \n    // Setter\n    public void setName(String name) {\n        this.name = name;\n    }\n    \n    // Method\n    public String greet() {\n        return \"Hello, I'm \" + name;\n    }\n    \n    @Override\n    public String toString() {\n        return \"Person{name='%s', age=%d}\".formatted(name, age);\n    }\n}\n\n// Inheritance\npublic class Developer extends Person {\n    private String language;\n    \n    public Developer(String name, int age, String language) {\n        super(name, age);\n        this.language = language;\n    }\n    \n    @Override\n    public String greet() {\n        return super.greet() + \", I code in \" + language;\n    }\n}\n\n// Interface\npublic interface Drawable {\n    void draw();\n    default void clear() { }  // Default method\n}\n\n// Abstract class\npublic abstract class Shape {\n    public abstract double area();\n    public void describe() {\n        System.out.println(\"This is a shape\");\n    }\n}\n",[20,121732,121733,121737,121747,121751,121758,121766,121770,121774,121793,121805,121816,121820,121824,121829,121841,121847,121851,121855,121860,121874,121884,121888,121892,121896,121906,121917,121921,121925,121933,121943,121958,121962,121966,121970,121974,121989,121996,122000,122023,122030,122042,122046,122050,122056,122066,122088,122092,122096,122100,122104,122115,122124,122138,122142,122146,122150,122162,122175,122185,122199,122203],{"__ignoreMap":30},[34,121734,121735],{"class":36,"line":37},[34,121736,34115],{"class":40},[34,121738,121739,121741,121743,121745],{"class":36,"line":44},[34,121740,31583],{"class":580},[34,121742,655],{"class":580},[34,121744,30063],{"class":47},[34,121746,661],{"class":181},[34,121748,121749],{"class":36,"line":58},[34,121750,34133],{"class":40},[34,121752,121753,121755],{"class":36,"line":65},[34,121754,34138],{"class":580},[34,121756,121757],{"class":181}," String name;\n",[34,121759,121760,121762,121764],{"class":36,"line":71},[34,121761,34138],{"class":580},[34,121763,25160],{"class":580},[34,121765,24702],{"class":181},[34,121767,121768],{"class":36,"line":77},[34,121769,3666],{"class":181},[34,121771,121772],{"class":36,"line":82},[34,121773,30098],{"class":40},[34,121775,121776,121778,121780,121783,121785,121787,121789,121791],{"class":36,"line":88},[34,121777,34159],{"class":580},[34,121779,30063],{"class":47},[34,121781,121782],{"class":181},"(String ",[34,121784,178],{"class":675},[34,121786,1798],{"class":181},[34,121788,17772],{"class":580},[34,121790,33593],{"class":675},[34,121792,2416],{"class":181},[34,121794,121795,121798,121801,121803],{"class":36,"line":242},[34,121796,121797],{"class":50},"        this",[34,121799,121800],{"class":181},".name ",[34,121802,1301],{"class":580},[34,121804,34320],{"class":181},[34,121806,121807,121809,121812,121814],{"class":36,"line":250},[34,121808,121797],{"class":50},[34,121810,121811],{"class":181},".age ",[34,121813,1301],{"class":580},[34,121815,24702],{"class":181},[34,121817,121818],{"class":36,"line":263},[34,121819,3229],{"class":181},[34,121821,121822],{"class":36,"line":275},[34,121823,3666],{"class":181},[34,121825,121826],{"class":36,"line":700},[34,121827,121828],{"class":40},"    // Getter\n",[34,121830,121831,121833,121836,121839],{"class":36,"line":706},[34,121832,34159],{"class":580},[34,121834,121835],{"class":181}," String ",[34,121837,121838],{"class":47},"getName",[34,121840,836],{"class":181},[34,121842,121843,121845],{"class":36,"line":715},[34,121844,13895],{"class":580},[34,121846,34320],{"class":181},[34,121848,121849],{"class":36,"line":725},[34,121850,3229],{"class":181},[34,121852,121853],{"class":36,"line":734},[34,121854,3666],{"class":181},[34,121856,121857],{"class":36,"line":742},[34,121858,121859],{"class":40},"    // Setter\n",[34,121861,121862,121864,121866,121868,121870,121872],{"class":36,"line":748},[34,121863,34159],{"class":580},[34,121865,31514],{"class":580},[34,121867,30263],{"class":47},[34,121869,121782],{"class":181},[34,121871,178],{"class":675},[34,121873,2416],{"class":181},[34,121875,121876,121878,121880,121882],{"class":36,"line":754},[34,121877,121797],{"class":50},[34,121879,121800],{"class":181},[34,121881,1301],{"class":580},[34,121883,34320],{"class":181},[34,121885,121886],{"class":36,"line":759},[34,121887,3229],{"class":181},[34,121889,121890],{"class":36,"line":771},[34,121891,3666],{"class":181},[34,121893,121894],{"class":36,"line":794},[34,121895,34342],{"class":40},[34,121897,121898,121900,121902,121904],{"class":36,"line":824},[34,121899,34159],{"class":580},[34,121901,121835],{"class":181},[34,121903,11011],{"class":47},[34,121905,836],{"class":181},[34,121907,121908,121910,121913,121915],{"class":36,"line":830},[34,121909,13895],{"class":580},[34,121911,121912],{"class":54}," \"Hello, I'm \"",[34,121914,11537],{"class":580},[34,121916,34320],{"class":181},[34,121918,121919],{"class":36,"line":839},[34,121920,3229],{"class":181},[34,121922,121923],{"class":36,"line":854},[34,121924,3666],{"class":181},[34,121926,121927,121930],{"class":36,"line":860},[34,121928,121929],{"class":181},"    @",[34,121931,121932],{"class":580},"Override\n",[34,121934,121935,121937,121939,121941],{"class":36,"line":865},[34,121936,34159],{"class":580},[34,121938,121835],{"class":181},[34,121940,13938],{"class":47},[34,121942,836],{"class":181},[34,121944,121945,121947,121950,121952,121955],{"class":36,"line":870},[34,121946,13895],{"class":580},[34,121948,121949],{"class":54}," \"Person{name='%s', age=%d}\"",[34,121951,151],{"class":181},[34,121953,121954],{"class":47},"formatted",[34,121956,121957],{"class":181},"(name, age);\n",[34,121959,121960],{"class":36,"line":876},[34,121961,3229],{"class":181},[34,121963,121964],{"class":36,"line":885},[34,121965,693],{"class":181},[34,121967,121968],{"class":36,"line":895},[34,121969,62],{"emptyLinePlaceholder":61},[34,121971,121972],{"class":36,"line":904},[34,121973,36137],{"class":40},[34,121975,121976,121978,121980,121983,121985,121987],{"class":36,"line":915},[34,121977,31583],{"class":580},[34,121979,655],{"class":580},[34,121981,121982],{"class":47}," Developer",[34,121984,59185],{"class":580},[34,121986,30063],{"class":47},[34,121988,661],{"class":181},[34,121990,121991,121993],{"class":36,"line":927},[34,121992,34138],{"class":580},[34,121994,121995],{"class":181}," String language;\n",[34,121997,121998],{"class":36,"line":932},[34,121999,3666],{"class":181},[34,122001,122002,122004,122006,122008,122010,122012,122014,122016,122018,122021],{"class":36,"line":944},[34,122003,34159],{"class":580},[34,122005,121982],{"class":47},[34,122007,121782],{"class":181},[34,122009,178],{"class":675},[34,122011,1798],{"class":181},[34,122013,17772],{"class":580},[34,122015,33593],{"class":675},[34,122017,51462],{"class":181},[34,122019,122020],{"class":675},"language",[34,122022,2416],{"class":181},[34,122024,122025,122028],{"class":36,"line":966},[34,122026,122027],{"class":50},"        super",[34,122029,121957],{"class":181},[34,122031,122032,122034,122037,122039],{"class":36,"line":1948},[34,122033,121797],{"class":50},[34,122035,122036],{"class":181},".language ",[34,122038,1301],{"class":580},[34,122040,122041],{"class":181}," language;\n",[34,122043,122044],{"class":36,"line":1953},[34,122045,3229],{"class":181},[34,122047,122048],{"class":36,"line":3616},[34,122049,3666],{"class":181},[34,122051,122052,122054],{"class":36,"line":3622},[34,122053,121929],{"class":181},[34,122055,121932],{"class":580},[34,122057,122058,122060,122062,122064],{"class":36,"line":3642},[34,122059,34159],{"class":580},[34,122061,121835],{"class":181},[34,122063,11011],{"class":47},[34,122065,836],{"class":181},[34,122067,122068,122070,122073,122075,122077,122079,122081,122084,122086],{"class":36,"line":3657},[34,122069,13895],{"class":580},[34,122071,122072],{"class":50}," super",[34,122074,151],{"class":181},[34,122076,11011],{"class":47},[34,122078,672],{"class":181},[34,122080,2940],{"class":580},[34,122082,122083],{"class":54}," \", I code in \"",[34,122085,11537],{"class":580},[34,122087,122041],{"class":181},[34,122089,122090],{"class":36,"line":3663},[34,122091,3229],{"class":181},[34,122093,122094],{"class":36,"line":3669},[34,122095,693],{"class":181},[34,122097,122098],{"class":36,"line":3675},[34,122099,62],{"emptyLinePlaceholder":61},[34,122101,122102],{"class":36,"line":3693},[34,122103,36006],{"class":40},[34,122105,122106,122108,122110,122113],{"class":36,"line":3707},[34,122107,31583],{"class":580},[34,122109,36013],{"class":580},[34,122111,122112],{"class":47}," Drawable",[34,122114,661],{"class":181},[34,122116,122117,122119,122122],{"class":36,"line":3712},[34,122118,20812],{"class":580},[34,122120,122121],{"class":47}," draw",[34,122123,851],{"class":181},[34,122125,122126,122128,122130,122132,122135],{"class":36,"line":3717},[34,122127,19051],{"class":580},[34,122129,31514],{"class":580},[34,122131,102005],{"class":47},[34,122133,122134],{"class":181},"() { }  ",[34,122136,122137],{"class":40},"// Default method\n",[34,122139,122140],{"class":36,"line":25776},[34,122141,693],{"class":181},[34,122143,122144],{"class":36,"line":49902},[34,122145,62],{"emptyLinePlaceholder":61},[34,122147,122148],{"class":36,"line":52569},[34,122149,36056],{"class":40},[34,122151,122152,122154,122156,122158,122160],{"class":36,"line":52574},[34,122153,31583],{"class":580},[34,122155,36063],{"class":580},[34,122157,655],{"class":580},[34,122159,106427],{"class":47},[34,122161,661],{"class":181},[34,122163,122164,122166,122168,122170,122173],{"class":36,"line":52580},[34,122165,34159],{"class":580},[34,122167,36063],{"class":580},[34,122169,36081],{"class":580},[34,122171,122172],{"class":47}," area",[34,122174,851],{"class":181},[34,122176,122177,122179,122181,122183],{"class":36,"line":52608},[34,122178,34159],{"class":580},[34,122180,31514],{"class":580},[34,122182,92381],{"class":47},[34,122184,836],{"class":181},[34,122186,122187,122190,122192,122194,122197],{"class":36,"line":52625},[34,122188,122189],{"class":181},"        System.out.",[34,122191,87388],{"class":47},[34,122193,1607],{"class":181},[34,122195,122196],{"class":54},"\"This is a shape\"",[34,122198,1586],{"class":181},[34,122200,122201],{"class":36,"line":52636},[34,122202,3229],{"class":181},[34,122204,122205],{"class":36,"line":52645},[34,122206,693],{"class":181},[388,122208,17665],{},{"title":30,"searchDepth":44,"depth":44,"links":122210},[122211],{"id":121727,"depth":44,"text":121722},"Classes & OOP in Java.",{},"/java/classes-oop",{"title":121722,"description":122212},"java/classes-oop",[51386,121718,30041,46870],"qFL8TA7cpmjM5LUP8KKt-aTAcXJBzcGfBbPUf5UaUFI",{"id":122220,"title":18818,"body":122221,"date":402,"description":122502,"extension":404,"meta":122503,"navigation":61,"order":71,"path":122504,"seo":122505,"stem":122506,"subject":51386,"tags":122507,"__hash__":122508},"topics/java/control-flow.md",{"type":8,"value":122222,"toc":122499},[122223,122225,122497],[11,122224,18818],{"id":18823},[25,122226,122228],{"className":51384,"code":122227,"language":51386,"meta":30,"style":30},"// If-else\nif (condition) {\n    // code\n} else if (otherCondition) {\n    // code\n} else {\n    // code\n}\n\n// Ternary operator\nString result = condition ? \"yes\" : \"no\";\n\n// Switch (traditional)\nswitch (value) {\n    case 1:\n        // code\n        break;\n    case 2:\n        // code\n        break;\n    default:\n        // code\n}\n\n// Switch expressions (Java 14+)\nString result = switch (day) {\n    case MONDAY, FRIDAY -> \"Work\";\n    case SATURDAY, SUNDAY -> \"Rest\";\n    default -> \"Unknown\";\n};\n\n// Loops\nfor (int i = 0; i \u003C 10; i++) { }\nfor (String item : list) { }\nwhile (condition) { }\ndo { } while (condition);\n",[20,122229,122230,122234,122240,122244,122255,122259,122267,122271,122275,122279,122283,122305,122309,122314,122320,122328,122332,122338,122346,122350,122356,122361,122365,122369,122373,122378,122389,122403,122417,122428,122432,122436,122441,122467,122479,122486],{"__ignoreMap":30},[34,122231,122232],{"class":36,"line":37},[34,122233,30630],{"class":40},[34,122235,122236,122238],{"class":36,"line":44},[34,122237,10383],{"class":580},[34,122239,30637],{"class":181},[34,122241,122242],{"class":36,"line":58},[34,122243,30642],{"class":40},[34,122245,122246,122248,122250,122252],{"class":36,"line":65},[34,122247,2276],{"class":181},[34,122249,18871],{"class":580},[34,122251,18874],{"class":580},[34,122253,122254],{"class":181}," (otherCondition) {\n",[34,122256,122257],{"class":36,"line":71},[34,122258,30642],{"class":40},[34,122260,122261,122263,122265],{"class":36,"line":77},[34,122262,2276],{"class":181},[34,122264,18871],{"class":580},[34,122266,661],{"class":181},[34,122268,122269],{"class":36,"line":82},[34,122270,30642],{"class":40},[34,122272,122273],{"class":36,"line":88},[34,122274,693],{"class":181},[34,122276,122277],{"class":36,"line":242},[34,122278,62],{"emptyLinePlaceholder":61},[34,122280,122281],{"class":36,"line":250},[34,122282,18934],{"class":40},[34,122284,122285,122288,122290,122293,122295,122298,122300,122303],{"class":36,"line":263},[34,122286,122287],{"class":181},"String result ",[34,122289,1301],{"class":580},[34,122291,122292],{"class":181}," condition ",[34,122294,18954],{"class":580},[34,122296,122297],{"class":54}," \"yes\"",[34,122299,64223],{"class":580},[34,122301,122302],{"class":54}," \"no\"",[34,122304,593],{"class":181},[34,122306,122307],{"class":36,"line":275},[34,122308,62],{"emptyLinePlaceholder":61},[34,122310,122311],{"class":36,"line":700},[34,122312,122313],{"class":40},"// Switch (traditional)\n",[34,122315,122316,122318],{"class":36,"line":706},[34,122317,18978],{"class":580},[34,122319,30689],{"class":181},[34,122321,122322,122324,122326],{"class":36,"line":715},[34,122323,18986],{"class":580},[34,122325,3567],{"class":50},[34,122327,193],{"class":580},[34,122329,122330],{"class":36,"line":725},[34,122331,30702],{"class":40},[34,122333,122334,122336],{"class":36,"line":734},[34,122335,19011],{"class":580},[34,122337,593],{"class":181},[34,122339,122340,122342,122344],{"class":36,"line":742},[34,122341,18986],{"class":580},[34,122343,4292],{"class":50},[34,122345,193],{"class":580},[34,122347,122348],{"class":36,"line":748},[34,122349,30702],{"class":40},[34,122351,122352,122354],{"class":36,"line":754},[34,122353,19011],{"class":580},[34,122355,593],{"class":181},[34,122357,122358],{"class":36,"line":759},[34,122359,122360],{"class":580},"    default:\n",[34,122362,122363],{"class":36,"line":771},[34,122364,30702],{"class":40},[34,122366,122367],{"class":36,"line":794},[34,122368,693],{"class":181},[34,122370,122371],{"class":36,"line":824},[34,122372,62],{"emptyLinePlaceholder":61},[34,122374,122375],{"class":36,"line":830},[34,122376,122377],{"class":40},"// Switch expressions (Java 14+)\n",[34,122379,122380,122382,122384,122386],{"class":36,"line":839},[34,122381,122287],{"class":181},[34,122383,1301],{"class":580},[34,122385,94668],{"class":580},[34,122387,122388],{"class":181}," (day) {\n",[34,122390,122391,122393,122396,122398,122401],{"class":36,"line":854},[34,122392,18986],{"class":580},[34,122394,122395],{"class":181}," MONDAY, FRIDAY ",[34,122397,24863],{"class":580},[34,122399,122400],{"class":54}," \"Work\"",[34,122402,593],{"class":181},[34,122404,122405,122407,122410,122412,122415],{"class":36,"line":860},[34,122406,18986],{"class":580},[34,122408,122409],{"class":181}," SATURDAY, SUNDAY ",[34,122411,24863],{"class":580},[34,122413,122414],{"class":54}," \"Rest\"",[34,122416,593],{"class":181},[34,122418,122419,122421,122424,122426],{"class":36,"line":865},[34,122420,19051],{"class":580},[34,122422,122423],{"class":580}," ->",[34,122425,37367],{"class":54},[34,122427,593],{"class":181},[34,122429,122430],{"class":36,"line":870},[34,122431,17632],{"class":181},[34,122433,122434],{"class":36,"line":876},[34,122435,62],{"emptyLinePlaceholder":61},[34,122437,122438],{"class":36,"line":885},[34,122439,122440],{"class":40},"// Loops\n",[34,122442,122443,122445,122447,122449,122451,122453,122455,122457,122459,122461,122463,122465],{"class":36,"line":895},[34,122444,10246],{"class":580},[34,122446,3204],{"class":181},[34,122448,17772],{"class":580},[34,122450,10300],{"class":181},[34,122452,1301],{"class":580},[34,122454,8070],{"class":50},[34,122456,18263],{"class":181},[34,122458,815],{"class":580},[34,122460,13123],{"class":50},[34,122462,11918],{"class":181},[34,122464,11928],{"class":580},[34,122466,41625],{"class":181},[34,122468,122469,122471,122474,122476],{"class":36,"line":904},[34,122470,10246],{"class":580},[34,122472,122473],{"class":181}," (String item ",[34,122475,165],{"class":580},[34,122477,122478],{"class":181}," list) { }\n",[34,122480,122481,122483],{"class":36,"line":915},[34,122482,12005],{"class":580},[34,122484,122485],{"class":181}," (condition) { }\n",[34,122487,122488,122490,122493,122495],{"class":36,"line":927},[34,122489,19148],{"class":580},[34,122491,122492],{"class":181}," { } ",[34,122494,12005],{"class":580},[34,122496,31821],{"class":181},[388,122498,10978],{},{"title":30,"searchDepth":44,"depth":44,"links":122500},[122501],{"id":18823,"depth":44,"text":18818},"Control Flow in Java.",{},"/java/control-flow",{"title":18818,"description":122502},"java/control-flow",[51386,121718,30041,46870],"vUtRGJzWYtFzdpMiuCfTQQANO_T3FM89qbVdsbYPQm4",{"id":122510,"title":30787,"body":122511,"date":402,"description":122797,"extension":404,"meta":122798,"navigation":61,"order":263,"path":122799,"seo":122800,"stem":122801,"subject":51386,"tags":122802,"__hash__":122803},"topics/java/exception-handling.md",{"type":8,"value":122512,"toc":122794},[122513,122515,122791],[11,122514,30787],{"id":30792},[25,122516,122518],{"className":51384,"code":122517,"language":51386,"meta":30,"style":30},"// Try-catch-finally\ntry {\n    riskyOperation();\n} catch (IOException e) {\n    handleIOError(e);\n} catch (Exception e) {\n    handleGenericError(e);\n} finally {\n    cleanup();\n}\n\n// Try-with-resources\ntry (var reader = new BufferedReader(new FileReader(\"file.txt\"))) {\n    String line = reader.readLine();\n} catch (IOException e) {\n    e.printStackTrace();\n}\n\n// Throwing exceptions\npublic void validate(int age) {\n    if (age \u003C 0) {\n        throw new IllegalArgumentException(\"Age cannot be negative\");\n    }\n}\n\n// Custom exception\npublic class CustomException extends Exception {\n    public CustomException(String message) {\n        super(message);\n    }\n}\n",[20,122519,122520,122525,122531,122538,122551,122559,122572,122579,122588,122595,122599,122603,122608,122640,122654,122666,122676,122680,122684,122689,122705,122717,122733,122737,122741,122745,122749,122764,122776,122783,122787],{"__ignoreMap":30},[34,122521,122522],{"class":36,"line":37},[34,122523,122524],{"class":40},"// Try-catch-finally\n",[34,122526,122527,122529],{"class":36,"line":44},[34,122528,30813],{"class":580},[34,122530,661],{"class":181},[34,122532,122533,122536],{"class":36,"line":58},[34,122534,122535],{"class":47},"    riskyOperation",[34,122537,851],{"class":181},[34,122539,122540,122542,122544,122547,122549],{"class":36,"line":65},[34,122541,2276],{"class":181},[34,122543,30851],{"class":580},[34,122545,122546],{"class":181}," (IOException ",[34,122548,5476],{"class":675},[34,122550,2416],{"class":181},[34,122552,122553,122556],{"class":36,"line":71},[34,122554,122555],{"class":47},"    handleIOError",[34,122557,122558],{"class":181},"(e);\n",[34,122560,122561,122563,122565,122568,122570],{"class":36,"line":77},[34,122562,2276],{"class":181},[34,122564,30851],{"class":580},[34,122566,122567],{"class":181}," (Exception ",[34,122569,5476],{"class":675},[34,122571,2416],{"class":181},[34,122573,122574,122577],{"class":36,"line":82},[34,122575,122576],{"class":47},"    handleGenericError",[34,122578,122558],{"class":181},[34,122580,122581,122583,122586],{"class":36,"line":88},[34,122582,2276],{"class":181},[34,122584,122585],{"class":580},"finally",[34,122587,661],{"class":181},[34,122589,122590,122593],{"class":36,"line":242},[34,122591,122592],{"class":47},"    cleanup",[34,122594,851],{"class":181},[34,122596,122597],{"class":36,"line":250},[34,122598,693],{"class":181},[34,122600,122601],{"class":36,"line":263},[34,122602,62],{"emptyLinePlaceholder":61},[34,122604,122605],{"class":36,"line":275},[34,122606,122607],{"class":40},"// Try-with-resources\n",[34,122609,122610,122612,122614,122616,122619,122621,122623,122626,122628,122630,122633,122635,122637],{"class":36,"line":700},[34,122611,30813],{"class":580},[34,122613,3204],{"class":181},[34,122615,34404],{"class":580},[34,122617,122618],{"class":181}," reader ",[34,122620,1301],{"class":580},[34,122622,809],{"class":580},[34,122624,122625],{"class":47}," BufferedReader",[34,122627,1607],{"class":181},[34,122629,3143],{"class":580},[34,122631,122632],{"class":47}," FileReader",[34,122634,1607],{"class":181},[34,122636,14990],{"class":54},[34,122638,122639],{"class":181},"))) {\n",[34,122641,122642,122645,122647,122649,122652],{"class":36,"line":706},[34,122643,122644],{"class":181},"    String line ",[34,122646,1301],{"class":580},[34,122648,35699],{"class":181},[34,122650,122651],{"class":47},"readLine",[34,122653,851],{"class":181},[34,122655,122656,122658,122660,122662,122664],{"class":36,"line":715},[34,122657,2276],{"class":181},[34,122659,30851],{"class":580},[34,122661,122546],{"class":181},[34,122663,5476],{"class":675},[34,122665,2416],{"class":181},[34,122667,122668,122671,122674],{"class":36,"line":725},[34,122669,122670],{"class":181},"    e.",[34,122672,122673],{"class":47},"printStackTrace",[34,122675,851],{"class":181},[34,122677,122678],{"class":36,"line":734},[34,122679,693],{"class":181},[34,122681,122682],{"class":36,"line":742},[34,122683,62],{"emptyLinePlaceholder":61},[34,122685,122686],{"class":36,"line":748},[34,122687,122688],{"class":40},"// Throwing exceptions\n",[34,122690,122691,122693,122695,122698,122700,122702],{"class":36,"line":754},[34,122692,31583],{"class":580},[34,122694,31514],{"class":580},[34,122696,122697],{"class":47}," validate",[34,122699,1607],{"class":181},[34,122701,17772],{"class":580},[34,122703,122704],{"class":181}," age) {\n",[34,122706,122707,122709,122711,122713,122715],{"class":36,"line":759},[34,122708,2902],{"class":580},[34,122710,18840],{"class":181},[34,122712,815],{"class":580},[34,122714,8070],{"class":50},[34,122716,2416],{"class":181},[34,122718,122719,122721,122723,122726,122728,122731],{"class":36,"line":771},[34,122720,1932],{"class":580},[34,122722,809],{"class":580},[34,122724,122725],{"class":47}," IllegalArgumentException",[34,122727,1607],{"class":181},[34,122729,122730],{"class":54},"\"Age cannot be negative\"",[34,122732,1586],{"class":181},[34,122734,122735],{"class":36,"line":794},[34,122736,3229],{"class":181},[34,122738,122739],{"class":36,"line":824},[34,122740,693],{"class":181},[34,122742,122743],{"class":36,"line":830},[34,122744,62],{"emptyLinePlaceholder":61},[34,122746,122747],{"class":36,"line":839},[34,122748,35454],{"class":40},[34,122750,122751,122753,122755,122757,122759,122762],{"class":36,"line":854},[34,122752,31583],{"class":580},[34,122754,655],{"class":580},[34,122756,35463],{"class":47},[34,122758,59185],{"class":580},[34,122760,122761],{"class":47}," Exception",[34,122763,661],{"class":181},[34,122765,122766,122768,122770,122772,122774],{"class":36,"line":860},[34,122767,34159],{"class":580},[34,122769,35463],{"class":47},[34,122771,121782],{"class":181},[34,122773,15736],{"class":675},[34,122775,2416],{"class":181},[34,122777,122778,122780],{"class":36,"line":865},[34,122779,122027],{"class":50},[34,122781,122782],{"class":181},"(message);\n",[34,122784,122785],{"class":36,"line":870},[34,122786,3229],{"class":181},[34,122788,122789],{"class":36,"line":876},[34,122790,693],{"class":181},[388,122792,122793],{},"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 .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}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 .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":30,"searchDepth":44,"depth":44,"links":122795},[122796],{"id":30792,"depth":44,"text":30787},"Exception Handling in Java.",{},"/java/exception-handling",{"title":30787,"description":122797},"java/exception-handling",[51386,121718,30041,46870],"sXymAZpSXfmdi8ubnni-2H8eiao0aG48YONv36hQv3c",{"id":122805,"title":122806,"body":122807,"date":402,"description":123045,"extension":404,"meta":123046,"navigation":61,"order":275,"path":123047,"seo":123048,"stem":123049,"subject":51386,"tags":123050,"__hash__":123051},"topics/java/lambdas-functional-interfaces.md","Lambdas & Functional Interfaces",{"type":8,"value":122808,"toc":123042},[122809,122812,123040],[11,122810,122806],{"id":122811},"lambdas-functional-interfaces",[25,122813,122815],{"className":51384,"code":122814,"language":51386,"meta":30,"style":30},"// Lambda syntax\nRunnable r = () -> System.out.println(\"Hello\");\nConsumer\u003CString> c = s -> System.out.println(s);\nFunction\u003CInteger, String> f = n -> \"Number: \" + n;\nPredicate\u003CInteger> p = n -> n > 0;\nBiFunction\u003CInteger, Integer, Integer> add = (a, b) -> a + b;\n\n// Method references\nlist.forEach(System.out::println);         // Instance method\nlist.stream().map(String::toUpperCase);    // Instance method\nlist.stream().map(Person::getName);        // Getter\nlist.stream().sorted(Comparator.comparing(Person::getName));\n",[20,122816,122817,122822,122844,122867,122894,122918,122949,122953,122958,122975,122996,123017],{"__ignoreMap":30},[34,122818,122819],{"class":36,"line":37},[34,122820,122821],{"class":40},"// Lambda syntax\n",[34,122823,122824,122827,122829,122831,122833,122836,122838,122840,122842],{"class":36,"line":44},[34,122825,122826],{"class":181},"Runnable r ",[34,122828,1301],{"class":580},[34,122830,17406],{"class":181},[34,122832,24863],{"class":580},[34,122834,122835],{"class":181}," System.out.",[34,122837,87388],{"class":47},[34,122839,1607],{"class":181},[34,122841,15564],{"class":54},[34,122843,1586],{"class":181},[34,122845,122846,122849,122851,122854,122856,122858,122860,122862,122864],{"class":36,"line":58},[34,122847,122848],{"class":181},"Consumer\u003C",[34,122850,51427],{"class":580},[34,122852,122853],{"class":181},"> c ",[34,122855,1301],{"class":580},[34,122857,104963],{"class":181},[34,122859,24863],{"class":580},[34,122861,122835],{"class":181},[34,122863,87388],{"class":47},[34,122865,122866],{"class":181},"(s);\n",[34,122868,122869,122872,122874,122876,122878,122881,122883,122885,122887,122890,122892],{"class":36,"line":65},[34,122870,122871],{"class":181},"Function\u003C",[34,122873,51432],{"class":580},[34,122875,1798],{"class":181},[34,122877,51427],{"class":580},[34,122879,122880],{"class":181},"> f ",[34,122882,1301],{"class":580},[34,122884,22052],{"class":181},[34,122886,24863],{"class":580},[34,122888,122889],{"class":54}," \"Number: \"",[34,122891,11537],{"class":580},[34,122893,36402],{"class":181},[34,122895,122896,122899,122901,122904,122906,122908,122910,122912,122914,122916],{"class":36,"line":71},[34,122897,122898],{"class":181},"Predicate\u003C",[34,122900,51432],{"class":580},[34,122902,122903],{"class":181},"> p ",[34,122905,1301],{"class":580},[34,122907,22052],{"class":181},[34,122909,24863],{"class":580},[34,122911,22052],{"class":181},[34,122913,5691],{"class":580},[34,122915,8070],{"class":50},[34,122917,593],{"class":181},[34,122919,122920,122923,122925,122927,122929,122931,122933,122936,122938,122941,122943,122945,122947],{"class":36,"line":77},[34,122921,122922],{"class":181},"BiFunction\u003C",[34,122924,51432],{"class":580},[34,122926,1798],{"class":181},[34,122928,51432],{"class":580},[34,122930,1798],{"class":181},[34,122932,51432],{"class":580},[34,122934,122935],{"class":181},"> add ",[34,122937,1301],{"class":580},[34,122939,122940],{"class":181}," (a, b) ",[34,122942,24863],{"class":580},[34,122944,8065],{"class":181},[34,122946,2940],{"class":580},[34,122948,8123],{"class":181},[34,122950,122951],{"class":36,"line":82},[34,122952,62],{"emptyLinePlaceholder":61},[34,122954,122955],{"class":36,"line":88},[34,122956,122957],{"class":40},"// Method references\n",[34,122959,122960,122962,122964,122967,122969,122972],{"class":36,"line":242},[34,122961,121351],{"class":181},[34,122963,4930],{"class":47},[34,122965,122966],{"class":181},"(System.out",[34,122968,30110],{"class":580},[34,122970,122971],{"class":181},"println);         ",[34,122973,122974],{"class":40},"// Instance method\n",[34,122976,122977,122979,122982,122984,122986,122989,122991,122994],{"class":36,"line":250},[34,122978,121351],{"class":181},[34,122980,122981],{"class":47},"stream",[34,122983,1645],{"class":181},[34,122985,61180],{"class":47},[34,122987,122988],{"class":181},"(String",[34,122990,30110],{"class":580},[34,122992,122993],{"class":181},"toUpperCase);    ",[34,122995,122974],{"class":40},[34,122997,122998,123000,123002,123004,123006,123009,123011,123014],{"class":36,"line":263},[34,122999,121351],{"class":181},[34,123001,122981],{"class":47},[34,123003,1645],{"class":181},[34,123005,61180],{"class":47},[34,123007,123008],{"class":181},"(Person",[34,123010,30110],{"class":580},[34,123012,123013],{"class":181},"getName);        ",[34,123015,123016],{"class":40},"// Getter\n",[34,123018,123019,123021,123023,123025,123027,123030,123033,123035,123037],{"class":36,"line":275},[34,123020,121351],{"class":181},[34,123022,122981],{"class":47},[34,123024,1645],{"class":181},[34,123026,65595],{"class":47},[34,123028,123029],{"class":181},"(Comparator.",[34,123031,123032],{"class":47},"comparing",[34,123034,123008],{"class":181},[34,123036,30110],{"class":580},[34,123038,123039],{"class":181},"getName));\n",[388,123041,107354],{},{"title":30,"searchDepth":44,"depth":44,"links":123043},[123044],{"id":122811,"depth":44,"text":122806},"Lambdas & Functional Interfaces in Java.",{},"/java/lambdas-functional-interfaces",{"title":122806,"description":123045},"java/lambdas-functional-interfaces",[51386,121718,30041,46870],"mSKKZkXgnaxBjDQNMZsxP8NdwpPlp8Q7AijvGWhRfnE",{"id":123053,"title":36908,"body":123054,"date":402,"description":123240,"extension":404,"meta":123241,"navigation":61,"order":77,"path":123242,"seo":123243,"stem":123244,"subject":51386,"tags":123245,"__hash__":123246},"topics/java/methods.md",{"type":8,"value":123055,"toc":123237},[123056,123058,123235],[11,123057,36908],{"id":36913},[25,123059,123061],{"className":51384,"code":123060,"language":51386,"meta":30,"style":30},"// Basic method\npublic int add(int a, int b) {\n    return a + b;\n}\n\n// Static method\npublic static void utility() { }\n\n// Varargs\npublic void printAll(String... messages) {\n    for (String msg : messages) {\n        System.out.println(msg);\n    }\n}\n\n// Method overloading\npublic int add(int a, int b) { return a + b; }\npublic double add(double a, double b) { return a + b; }\n",[20,123062,123063,123067,123087,123097,123101,123105,123110,123123,123127,123132,123144,123156,123164,123168,123172,123176,123181,123209],{"__ignoreMap":30},[34,123064,123065],{"class":36,"line":37},[34,123066,36923],{"class":40},[34,123068,123069,123071,123073,123075,123077,123079,123082,123084],{"class":36,"line":44},[34,123070,31583],{"class":580},[34,123072,25160],{"class":580},[34,123074,7854],{"class":47},[34,123076,1607],{"class":181},[34,123078,17772],{"class":580},[34,123080,123081],{"class":181}," a, ",[34,123083,17772],{"class":580},[34,123085,123086],{"class":181}," b) {\n",[34,123088,123089,123091,123093,123095],{"class":36,"line":58},[34,123090,1564],{"class":580},[34,123092,8065],{"class":181},[34,123094,2940],{"class":580},[34,123096,8123],{"class":181},[34,123098,123099],{"class":36,"line":65},[34,123100,693],{"class":181},[34,123102,123103],{"class":36,"line":71},[34,123104,62],{"emptyLinePlaceholder":61},[34,123106,123107],{"class":36,"line":77},[34,123108,123109],{"class":40},"// Static method\n",[34,123111,123112,123114,123116,123118,123121],{"class":36,"line":82},[34,123113,31583],{"class":580},[34,123115,51421],{"class":580},[34,123117,31514],{"class":580},[34,123119,123120],{"class":47}," utility",[34,123122,34511],{"class":181},[34,123124,123125],{"class":36,"line":88},[34,123126,62],{"emptyLinePlaceholder":61},[34,123128,123129],{"class":36,"line":242},[34,123130,123131],{"class":40},"// Varargs\n",[34,123133,123134,123136,123138,123141],{"class":36,"line":250},[34,123135,31583],{"class":580},[34,123137,31514],{"class":580},[34,123139,123140],{"class":47}," printAll",[34,123142,123143],{"class":181},"(String... messages) {\n",[34,123145,123146,123148,123151,123153],{"class":36,"line":263},[34,123147,18250],{"class":580},[34,123149,123150],{"class":181}," (String msg ",[34,123152,165],{"class":580},[34,123154,123155],{"class":181}," messages) {\n",[34,123157,123158,123160,123162],{"class":36,"line":275},[34,123159,122189],{"class":181},[34,123161,87388],{"class":47},[34,123163,35014],{"class":181},[34,123165,123166],{"class":36,"line":700},[34,123167,3229],{"class":181},[34,123169,123170],{"class":36,"line":706},[34,123171,693],{"class":181},[34,123173,123174],{"class":36,"line":715},[34,123175,62],{"emptyLinePlaceholder":61},[34,123177,123178],{"class":36,"line":725},[34,123179,123180],{"class":40},"// Method overloading\n",[34,123182,123183,123185,123187,123189,123191,123193,123195,123197,123200,123202,123204,123206],{"class":36,"line":734},[34,123184,31583],{"class":580},[34,123186,25160],{"class":580},[34,123188,7854],{"class":47},[34,123190,1607],{"class":181},[34,123192,17772],{"class":580},[34,123194,123081],{"class":181},[34,123196,17772],{"class":580},[34,123198,123199],{"class":181}," b) { ",[34,123201,2917],{"class":580},[34,123203,8065],{"class":181},[34,123205,2940],{"class":580},[34,123207,123208],{"class":181}," b; }\n",[34,123210,123211,123213,123215,123217,123219,123221,123223,123225,123227,123229,123231,123233],{"class":36,"line":742},[34,123212,31583],{"class":580},[34,123214,36081],{"class":580},[34,123216,7854],{"class":47},[34,123218,1607],{"class":181},[34,123220,25097],{"class":580},[34,123222,123081],{"class":181},[34,123224,25097],{"class":580},[34,123226,123199],{"class":181},[34,123228,2917],{"class":580},[34,123230,8065],{"class":181},[34,123232,2940],{"class":580},[34,123234,123208],{"class":181},[388,123236,35978],{},{"title":30,"searchDepth":44,"depth":44,"links":123238},[123239],{"id":36913,"depth":44,"text":36908},"Methods in Java.",{},"/java/methods",{"title":36908,"description":123240},"java/methods",[51386,121718,30041,46870],"Z1S9M_HFfcbRMWE5wITRzV-EubA2DwB34YUIhSFPYqY",{"id":123248,"title":123249,"body":123250,"date":402,"description":123505,"extension":404,"meta":123506,"navigation":61,"order":250,"path":123507,"seo":123508,"stem":123509,"subject":51386,"tags":123510,"__hash__":123511},"topics/java/optional.md","Optional",{"type":8,"value":123251,"toc":123502},[123252,123255,123500],[11,123253,123249],{"id":123254},"optional",[25,123256,123258],{"className":51384,"code":123257,"language":51386,"meta":30,"style":30},"// Creating Optional\nOptional\u003CString> present = Optional.of(\"value\");\nOptional\u003CString> nullable = Optional.ofNullable(maybeNull);\nOptional\u003CString> empty = Optional.empty();\n\n// Using Optional\noptional.isPresent();                    // Check if has value\noptional.isEmpty();                      // Check if empty (Java 11+)\noptional.get();                          // Get value (throws if empty)\noptional.orElse(\"default\");              // Get or default\noptional.orElseGet(() -> compute());     // Get or compute\noptional.orElseThrow();                  // Get or throw\noptional.ifPresent(v -> use(v));         // Execute if present\noptional.map(String::toUpperCase);       // Transform\noptional.filter(s -> s.length() > 3);    // Filter\noptional.flatMap(this::findById);        // Flat map\n",[20,123259,123260,123265,123288,123307,123324,123328,123333,123347,123359,123371,123389,123408,123420,123440,123455,123481],{"__ignoreMap":30},[34,123261,123262],{"class":36,"line":37},[34,123263,123264],{"class":40},"// Creating Optional\n",[34,123266,123267,123270,123272,123275,123277,123280,123282,123284,123286],{"class":36,"line":44},[34,123268,123269],{"class":181},"Optional\u003C",[34,123271,51427],{"class":580},[34,123273,123274],{"class":181},"> present ",[34,123276,1301],{"class":580},[34,123278,123279],{"class":181}," Optional.",[34,123281,52211],{"class":47},[34,123283,1607],{"class":181},[34,123285,16847],{"class":54},[34,123287,1586],{"class":181},[34,123289,123290,123292,123294,123297,123299,123301,123304],{"class":36,"line":58},[34,123291,123269],{"class":181},[34,123293,51427],{"class":580},[34,123295,123296],{"class":181},"> nullable ",[34,123298,1301],{"class":580},[34,123300,123279],{"class":181},[34,123302,123303],{"class":47},"ofNullable",[34,123305,123306],{"class":181},"(maybeNull);\n",[34,123308,123309,123311,123313,123316,123318,123320,123322],{"class":36,"line":65},[34,123310,123269],{"class":181},[34,123312,51427],{"class":580},[34,123314,123315],{"class":181},"> empty ",[34,123317,1301],{"class":580},[34,123319,123279],{"class":181},[34,123321,29958],{"class":47},[34,123323,851],{"class":181},[34,123325,123326],{"class":36,"line":71},[34,123327,62],{"emptyLinePlaceholder":61},[34,123329,123330],{"class":36,"line":77},[34,123331,123332],{"class":40},"// Using Optional\n",[34,123334,123335,123338,123341,123344],{"class":36,"line":82},[34,123336,123337],{"class":181},"optional.",[34,123339,123340],{"class":47},"isPresent",[34,123342,123343],{"class":181},"();                    ",[34,123345,123346],{"class":40},"// Check if has value\n",[34,123348,123349,123351,123353,123356],{"class":36,"line":88},[34,123350,123337],{"class":181},[34,123352,51729],{"class":47},[34,123354,123355],{"class":181},"();                      ",[34,123357,123358],{"class":40},"// Check if empty (Java 11+)\n",[34,123360,123361,123363,123365,123368],{"class":36,"line":242},[34,123362,123337],{"class":181},[34,123364,1573],{"class":47},[34,123366,123367],{"class":181},"();                          ",[34,123369,123370],{"class":40},"// Get value (throws if empty)\n",[34,123372,123373,123375,123378,123380,123383,123386],{"class":36,"line":250},[34,123374,123337],{"class":181},[34,123376,123377],{"class":47},"orElse",[34,123379,1607],{"class":181},[34,123381,123382],{"class":54},"\"default\"",[34,123384,123385],{"class":181},");              ",[34,123387,123388],{"class":40},"// Get or default\n",[34,123390,123391,123393,123396,123398,123400,123402,123405],{"class":36,"line":263},[34,123392,123337],{"class":181},[34,123394,123395],{"class":47},"orElseGet",[34,123397,4275],{"class":181},[34,123399,24863],{"class":580},[34,123401,92073],{"class":47},[34,123403,123404],{"class":181},"());     ",[34,123406,123407],{"class":40},"// Get or compute\n",[34,123409,123410,123412,123415,123417],{"class":36,"line":275},[34,123411,123337],{"class":181},[34,123413,123414],{"class":47},"orElseThrow",[34,123416,36722],{"class":181},[34,123418,123419],{"class":40},"// Get or throw\n",[34,123421,123422,123424,123427,123430,123432,123434,123437],{"class":36,"line":700},[34,123423,123337],{"class":181},[34,123425,123426],{"class":47},"ifPresent",[34,123428,123429],{"class":181},"(v ",[34,123431,24863],{"class":580},[34,123433,49111],{"class":47},[34,123435,123436],{"class":181},"(v));         ",[34,123438,123439],{"class":40},"// Execute if present\n",[34,123441,123442,123444,123446,123448,123450,123453],{"class":36,"line":706},[34,123443,123337],{"class":181},[34,123445,61180],{"class":47},[34,123447,122988],{"class":181},[34,123449,30110],{"class":580},[34,123451,123452],{"class":181},"toUpperCase);       ",[34,123454,36503],{"class":40},[34,123456,123457,123459,123461,123464,123466,123469,123471,123473,123475,123477,123479],{"class":36,"line":715},[34,123458,123337],{"class":181},[34,123460,32125],{"class":47},[34,123462,123463],{"class":181},"(s ",[34,123465,24863],{"class":580},[34,123467,123468],{"class":181}," s.",[34,123470,2908],{"class":47},[34,123472,672],{"class":181},[34,123474,5691],{"class":580},[34,123476,11147],{"class":50},[34,123478,15307],{"class":181},[34,123480,36478],{"class":40},[34,123482,123483,123485,123488,123490,123492,123494,123497],{"class":36,"line":725},[34,123484,123337],{"class":181},[34,123486,123487],{"class":47},"flatMap",[34,123489,1607],{"class":181},[34,123491,3207],{"class":50},[34,123493,30110],{"class":580},[34,123495,123496],{"class":181},"findById);        ",[34,123498,123499],{"class":40},"// Flat map\n",[388,123501,107354],{},{"title":30,"searchDepth":44,"depth":44,"links":123503},[123504],{"id":123254,"depth":44,"text":123249},"Optional in Java.",{},"/java/optional",{"title":123249,"description":123505},"java/optional",[51386,121718,30041,46870],"zarpSMNaS9nfULFjlmOdoX7XexZCFNjpR4iNKv1MuBE",{"id":123513,"title":123514,"body":123515,"date":2633,"description":123577,"extension":404,"meta":123578,"navigation":61,"order":37,"path":123579,"seo":123580,"stem":123581,"subject":51386,"tags":123582,"__hash__":123583},"topics/java/overview.md","Java",{"type":8,"value":123516,"toc":123575},[123517],[309,123518,123519,123524,123529,123533,123537,123541,123545,123551,123557,123561,123565,123569],{},[312,123520,123521],{},[145,123522,32171],{"href":123523},"/java/variables-data-types",[312,123525,123526],{},[145,123527,23101],{"href":123528},"/java/strings",[312,123530,123531],{},[145,123532,33304],{"href":121714},[312,123534,123535],{},[145,123536,18818],{"href":122504},[312,123538,123539],{},[145,123540,36908],{"href":123242},[312,123542,123543],{},[145,123544,121722],{"href":122214},[312,123546,123547],{},[145,123548,123550],{"href":123549},"/java/records-java-16","Records (Java 16+)",[312,123552,123553],{},[145,123554,123556],{"href":123555},"/java/streams","Streams",[312,123558,123559],{},[145,123560,123249],{"href":123507},[312,123562,123563],{},[145,123564,30787],{"href":122799},[312,123566,123567],{},[145,123568,122806],{"href":123047},[312,123570,123571],{},[145,123572,123574],{"href":123573},"/java/useful-snippets","Useful Snippets",{"title":30,"searchDepth":44,"depth":44,"links":123576},[],"Essential Java syntax, OOP concepts, and common patterns for building robust applications.",{},"/java/overview",{"title":123514,"description":123577},"java/overview",[51386,121718,30041,46870],"Zbh8ETiU4CvJA-shRNyoXiusqnz05I8o9BFd93zV3vM",{"id":123585,"title":123550,"body":123586,"date":402,"description":123746,"extension":404,"meta":123747,"navigation":61,"order":88,"path":123549,"seo":123748,"stem":123749,"subject":51386,"tags":123750,"__hash__":123751},"topics/java/records-java-16.md",{"type":8,"value":123587,"toc":123743},[123588,123591,123741],[11,123589,123550],{"id":123590},"records-java-16",[25,123592,123594],{"className":51384,"code":123593,"language":51386,"meta":30,"style":30},"// Immutable data class\npublic record Person(String name, int age) {\n    // Compact constructor for validation\n    public Person {\n        if (age \u003C 0) throw new IllegalArgumentException(\"Age cannot be negative\");\n    }\n    \n    // Additional methods\n    public String greet() {\n        return \"Hello, I'm \" + name;\n    }\n}\n\n// Usage\nPerson person = new Person(\"John\", 30);\nString name = person.name();  // Accessor method\n",[20,123595,123596,123601,123616,123621,123629,123653,123657,123661,123666,123676,123686,123690,123694,123698,123702,123723],{"__ignoreMap":30},[34,123597,123598],{"class":36,"line":37},[34,123599,123600],{"class":40},"// Immutable data class\n",[34,123602,123603,123605,123607,123609,123612,123614],{"class":36,"line":44},[34,123604,31583],{"class":580},[34,123606,37588],{"class":580},[34,123608,30063],{"class":47},[34,123610,123611],{"class":181},"(String name, ",[34,123613,17772],{"class":580},[34,123615,122704],{"class":181},[34,123617,123618],{"class":36,"line":58},[34,123619,123620],{"class":40},"    // Compact constructor for validation\n",[34,123622,123623,123625,123627],{"class":36,"line":65},[34,123624,34159],{"class":580},[34,123626,30063],{"class":47},[34,123628,661],{"class":181},[34,123630,123631,123633,123635,123637,123639,123641,123643,123645,123647,123649,123651],{"class":36,"line":71},[34,123632,49573],{"class":580},[34,123634,18840],{"class":181},[34,123636,815],{"class":580},[34,123638,8070],{"class":50},[34,123640,4817],{"class":181},[34,123642,35434],{"class":580},[34,123644,809],{"class":580},[34,123646,122725],{"class":47},[34,123648,1607],{"class":181},[34,123650,122730],{"class":54},[34,123652,1586],{"class":181},[34,123654,123655],{"class":36,"line":77},[34,123656,3229],{"class":181},[34,123658,123659],{"class":36,"line":82},[34,123660,3666],{"class":181},[34,123662,123663],{"class":36,"line":88},[34,123664,123665],{"class":40},"    // Additional methods\n",[34,123667,123668,123670,123672,123674],{"class":36,"line":242},[34,123669,34159],{"class":580},[34,123671,121835],{"class":181},[34,123673,11011],{"class":47},[34,123675,836],{"class":181},[34,123677,123678,123680,123682,123684],{"class":36,"line":250},[34,123679,13895],{"class":580},[34,123681,121912],{"class":54},[34,123683,11537],{"class":580},[34,123685,34320],{"class":181},[34,123687,123688],{"class":36,"line":263},[34,123689,3229],{"class":181},[34,123691,123692],{"class":36,"line":275},[34,123693,693],{"class":181},[34,123695,123696],{"class":36,"line":700},[34,123697,62],{"emptyLinePlaceholder":61},[34,123699,123700],{"class":36,"line":706},[34,123701,1113],{"class":40},[34,123703,123704,123707,123709,123711,123713,123715,123717,123719,123721],{"class":36,"line":715},[34,123705,123706],{"class":181},"Person person ",[34,123708,1301],{"class":580},[34,123710,809],{"class":580},[34,123712,30063],{"class":47},[34,123714,1607],{"class":181},[34,123716,17105],{"class":54},[34,123718,1798],{"class":181},[34,123720,17625],{"class":50},[34,123722,1586],{"class":181},[34,123724,123725,123728,123730,123733,123735,123738],{"class":36,"line":725},[34,123726,123727],{"class":181},"String name ",[34,123729,1301],{"class":580},[34,123731,123732],{"class":181}," person.",[34,123734,178],{"class":47},[34,123736,123737],{"class":181},"();  ",[34,123739,123740],{"class":40},"// Accessor method\n",[388,123742,49910],{},{"title":30,"searchDepth":44,"depth":44,"links":123744},[123745],{"id":123590,"depth":44,"text":123550},"Records (Java 16+) in Java.",{},{"title":123550,"description":123746},"java/records-java-16",[51386,121718,30041,46870],"02DoqJOG1yhO3L7_lQz3_3ZlPRxGEXSPJ1G45cwzV9k",{"id":123753,"title":123556,"body":123754,"date":402,"description":124217,"extension":404,"meta":124218,"navigation":61,"order":242,"path":123555,"seo":124219,"stem":124220,"subject":51386,"tags":124221,"__hash__":124222},"topics/java/streams.md",{"type":8,"value":123755,"toc":124214},[123756,123759,124211],[11,123757,123556],{"id":123758},"streams",[25,123760,123762],{"className":51384,"code":123761,"language":51386,"meta":30,"style":30},"// Stream operations\nList\u003CInteger> numbers = List.of(1, 2, 3, 4, 5);\n\n// Map - transform elements\nnumbers.stream()\n    .map(n -> n * 2)\n    .toList();\n\n// Filter - filter elements\nnumbers.stream()\n    .filter(n -> n > 2)\n    .toList();\n\n// Reduce - combine elements\nint sum = numbers.stream()\n    .reduce(0, Integer::sum);\n\n// Find\nOptional\u003CInteger> first = numbers.stream()\n    .filter(n -> n > 3)\n    .findFirst();\n\n// Match\nboolean anyMatch = numbers.stream().anyMatch(n -> n > 3);\nboolean allMatch = numbers.stream().allMatch(n -> n > 0);\n\n// Collect\nMap\u003CBoolean, List\u003CInteger>> partitioned = numbers.stream()\n    .collect(Collectors.partitioningBy(n -> n > 3));\n\n// Chaining\nList\u003CString> result = people.stream()\n    .filter(p -> p.age() > 18)\n    .sorted(Comparator.comparing(Person::name))\n    .map(Person::name)\n    .distinct()\n    .toList();\n",[20,123763,123764,123769,123806,123810,123815,123823,123842,123851,123855,123860,123868,123886,123894,123898,123903,123917,123935,123939,123944,123961,123979,123988,123992,123997,124028,124058,124062,124067,124090,124115,124119,124124,124142,124165,124182,124194,124203],{"__ignoreMap":30},[34,123765,123766],{"class":36,"line":37},[34,123767,123768],{"class":40},"// Stream operations\n",[34,123770,123771,123773,123775,123778,123780,123782,123784,123786,123788,123790,123792,123794,123796,123798,123800,123802,123804],{"class":36,"line":44},[34,123772,121334],{"class":181},[34,123774,51432],{"class":580},[34,123776,123777],{"class":181},"> numbers ",[34,123779,1301],{"class":580},[34,123781,121621],{"class":181},[34,123783,52211],{"class":47},[34,123785,1607],{"class":181},[34,123787,8318],{"class":50},[34,123789,1798],{"class":181},[34,123791,8324],{"class":50},[34,123793,1798],{"class":181},[34,123795,3162],{"class":50},[34,123797,1798],{"class":181},[34,123799,18010],{"class":50},[34,123801,1798],{"class":181},[34,123803,2778],{"class":50},[34,123805,1586],{"class":181},[34,123807,123808],{"class":36,"line":58},[34,123809,62],{"emptyLinePlaceholder":61},[34,123811,123812],{"class":36,"line":65},[34,123813,123814],{"class":40},"// Map - transform elements\n",[34,123816,123817,123819,123821],{"class":36,"line":71},[34,123818,36458],{"class":181},[34,123820,122981],{"class":47},[34,123822,33899],{"class":181},[34,123824,123825,123828,123830,123832,123834,123836,123838,123840],{"class":36,"line":77},[34,123826,123827],{"class":181},"    .",[34,123829,61180],{"class":47},[34,123831,22059],{"class":181},[34,123833,24863],{"class":580},[34,123835,22052],{"class":181},[34,123837,4289],{"class":580},[34,123839,4292],{"class":50},[34,123841,3372],{"class":181},[34,123843,123844,123846,123849],{"class":36,"line":82},[34,123845,123827],{"class":181},[34,123847,123848],{"class":47},"toList",[34,123850,851],{"class":181},[34,123852,123853],{"class":36,"line":88},[34,123854,62],{"emptyLinePlaceholder":61},[34,123856,123857],{"class":36,"line":242},[34,123858,123859],{"class":40},"// Filter - filter elements\n",[34,123861,123862,123864,123866],{"class":36,"line":250},[34,123863,36458],{"class":181},[34,123865,122981],{"class":47},[34,123867,33899],{"class":181},[34,123869,123870,123872,123874,123876,123878,123880,123882,123884],{"class":36,"line":263},[34,123871,123827],{"class":181},[34,123873,32125],{"class":47},[34,123875,22059],{"class":181},[34,123877,24863],{"class":580},[34,123879,22052],{"class":181},[34,123881,5691],{"class":580},[34,123883,4292],{"class":50},[34,123885,3372],{"class":181},[34,123887,123888,123890,123892],{"class":36,"line":275},[34,123889,123827],{"class":181},[34,123891,123848],{"class":47},[34,123893,851],{"class":181},[34,123895,123896],{"class":36,"line":700},[34,123897,62],{"emptyLinePlaceholder":61},[34,123899,123900],{"class":36,"line":706},[34,123901,123902],{"class":40},"// Reduce - combine elements\n",[34,123904,123905,123907,123909,123911,123913,123915],{"class":36,"line":715},[34,123906,17772],{"class":580},[34,123908,8337],{"class":181},[34,123910,1301],{"class":580},[34,123912,36423],{"class":181},[34,123914,122981],{"class":47},[34,123916,33899],{"class":181},[34,123918,123919,123921,123923,123925,123927,123930,123932],{"class":36,"line":725},[34,123920,123827],{"class":181},[34,123922,8345],{"class":47},[34,123924,1607],{"class":181},[34,123926,2773],{"class":50},[34,123928,123929],{"class":181},", Integer",[34,123931,30110],{"class":580},[34,123933,123934],{"class":181},"sum);\n",[34,123936,123937],{"class":36,"line":734},[34,123938,62],{"emptyLinePlaceholder":61},[34,123940,123941],{"class":36,"line":742},[34,123942,123943],{"class":40},"// Find\n",[34,123945,123946,123948,123950,123953,123955,123957,123959],{"class":36,"line":748},[34,123947,123269],{"class":181},[34,123949,51432],{"class":580},[34,123951,123952],{"class":181},"> first ",[34,123954,1301],{"class":580},[34,123956,36423],{"class":181},[34,123958,122981],{"class":47},[34,123960,33899],{"class":181},[34,123962,123963,123965,123967,123969,123971,123973,123975,123977],{"class":36,"line":754},[34,123964,123827],{"class":181},[34,123966,32125],{"class":47},[34,123968,22059],{"class":181},[34,123970,24863],{"class":580},[34,123972,22052],{"class":181},[34,123974,5691],{"class":580},[34,123976,11147],{"class":50},[34,123978,3372],{"class":181},[34,123980,123981,123983,123986],{"class":36,"line":759},[34,123982,123827],{"class":181},[34,123984,123985],{"class":47},"findFirst",[34,123987,851],{"class":181},[34,123989,123990],{"class":36,"line":771},[34,123991,62],{"emptyLinePlaceholder":61},[34,123993,123994],{"class":36,"line":794},[34,123995,123996],{"class":40},"// Match\n",[34,123998,123999,124002,124005,124007,124009,124011,124013,124016,124018,124020,124022,124024,124026],{"class":36,"line":824},[34,124000,124001],{"class":580},"boolean",[34,124003,124004],{"class":181}," anyMatch ",[34,124006,1301],{"class":580},[34,124008,36423],{"class":181},[34,124010,122981],{"class":47},[34,124012,1645],{"class":181},[34,124014,124015],{"class":47},"anyMatch",[34,124017,22059],{"class":181},[34,124019,24863],{"class":580},[34,124021,22052],{"class":181},[34,124023,5691],{"class":580},[34,124025,11147],{"class":50},[34,124027,1586],{"class":181},[34,124029,124030,124032,124035,124037,124039,124041,124043,124046,124048,124050,124052,124054,124056],{"class":36,"line":830},[34,124031,124001],{"class":580},[34,124033,124034],{"class":181}," allMatch ",[34,124036,1301],{"class":580},[34,124038,36423],{"class":181},[34,124040,122981],{"class":47},[34,124042,1645],{"class":181},[34,124044,124045],{"class":47},"allMatch",[34,124047,22059],{"class":181},[34,124049,24863],{"class":580},[34,124051,22052],{"class":181},[34,124053,5691],{"class":580},[34,124055,8070],{"class":50},[34,124057,1586],{"class":181},[34,124059,124060],{"class":36,"line":839},[34,124061,62],{"emptyLinePlaceholder":61},[34,124063,124064],{"class":36,"line":854},[34,124065,124066],{"class":40},"// Collect\n",[34,124068,124069,124071,124074,124077,124079,124082,124084,124086,124088],{"class":36,"line":860},[34,124070,121426],{"class":181},[34,124072,124073],{"class":580},"Boolean",[34,124075,124076],{"class":181},", List\u003C",[34,124078,51432],{"class":580},[34,124080,124081],{"class":181},">> partitioned ",[34,124083,1301],{"class":580},[34,124085,36423],{"class":181},[34,124087,122981],{"class":47},[34,124089,33899],{"class":181},[34,124091,124092,124094,124097,124100,124103,124105,124107,124109,124111,124113],{"class":36,"line":865},[34,124093,123827],{"class":181},[34,124095,124096],{"class":47},"collect",[34,124098,124099],{"class":181},"(Collectors.",[34,124101,124102],{"class":47},"partitioningBy",[34,124104,22059],{"class":181},[34,124106,24863],{"class":580},[34,124108,22052],{"class":181},[34,124110,5691],{"class":580},[34,124112,11147],{"class":50},[34,124114,15223],{"class":181},[34,124116,124117],{"class":36,"line":870},[34,124118,62],{"emptyLinePlaceholder":61},[34,124120,124121],{"class":36,"line":876},[34,124122,124123],{"class":40},"// Chaining\n",[34,124125,124126,124128,124130,124133,124135,124138,124140],{"class":36,"line":885},[34,124127,121334],{"class":181},[34,124129,51427],{"class":580},[34,124131,124132],{"class":181},"> result ",[34,124134,1301],{"class":580},[34,124136,124137],{"class":181}," people.",[34,124139,122981],{"class":47},[34,124141,33899],{"class":181},[34,124143,124144,124146,124148,124150,124152,124155,124157,124159,124161,124163],{"class":36,"line":895},[34,124145,123827],{"class":181},[34,124147,32125],{"class":47},[34,124149,18114],{"class":181},[34,124151,24863],{"class":580},[34,124153,124154],{"class":181}," p.",[34,124156,13337],{"class":47},[34,124158,672],{"class":181},[34,124160,5691],{"class":580},[34,124162,18845],{"class":50},[34,124164,3372],{"class":181},[34,124166,124167,124169,124171,124173,124175,124177,124179],{"class":36,"line":904},[34,124168,123827],{"class":181},[34,124170,65595],{"class":47},[34,124172,123029],{"class":181},[34,124174,123032],{"class":47},[34,124176,123008],{"class":181},[34,124178,30110],{"class":580},[34,124180,124181],{"class":181},"name))\n",[34,124183,124184,124186,124188,124190,124192],{"class":36,"line":915},[34,124185,123827],{"class":181},[34,124187,61180],{"class":47},[34,124189,123008],{"class":181},[34,124191,30110],{"class":580},[34,124193,90430],{"class":181},[34,124195,124196,124198,124201],{"class":36,"line":927},[34,124197,123827],{"class":181},[34,124199,124200],{"class":47},"distinct",[34,124202,33899],{"class":181},[34,124204,124205,124207,124209],{"class":36,"line":932},[34,124206,123827],{"class":181},[34,124208,123848],{"class":47},[34,124210,851],{"class":181},[388,124212,124213],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .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":30,"searchDepth":44,"depth":44,"links":124215},[124216],{"id":123758,"depth":44,"text":123556},"Streams in Java.",{},{"title":123556,"description":124217},"java/streams",[51386,121718,30041,46870],"DZdwIahgHM24B21jJ1EXiXgsQlo7MXrRwoSoH5Ryjq0",{"id":124224,"title":23101,"body":124225,"date":402,"description":124542,"extension":404,"meta":124543,"navigation":61,"order":58,"path":123528,"seo":124544,"stem":124545,"subject":51386,"tags":124546,"__hash__":124547},"topics/java/strings.md",{"type":8,"value":124226,"toc":124539},[124227,124229,124536],[11,124228,23101],{"id":24353},[25,124230,124232],{"className":51384,"code":124231,"language":51386,"meta":30,"style":30},"// String operations\nString str = \"Hello\";\nstr.length();                    // Get length\nstr.charAt(0);                   // Get character at index\nstr.substring(0, 3);             // Get substring\nstr.toLowerCase();               // Convert to lowercase\nstr.toUpperCase();               // Convert to uppercase\nstr.trim();                      // Remove whitespace\nstr.replace(\"l\", \"L\");           // Replace characters\nstr.split(\",\");                  // Split into array\nstr.contains(\"ell\");             // Check if contains\nstr.startsWith(\"He\");            // Check prefix\nstr.endsWith(\"lo\");              // Check suffix\nstr.equals(\"Hello\");             // Compare strings\nstr.equalsIgnoreCase(\"HELLO\");   // Compare ignoring case\n\n// String formatting\nString formatted = String.format(\"Name: %s, Age: %d\", name, age);\nString template = \"Value: %s\".formatted(value);  // Java 15+\n\n// Text blocks (Java 15+)\nString json = \"\"\"\n    {\n        \"name\": \"John\",\n        \"age\": 30\n    }\n    \"\"\";\n",[20,124233,124234,124238,124249,124260,124276,124295,124307,124317,124327,124348,124365,124380,124397,124414,124430,124447,124451,124455,124476,124496,124500,124505,124514,124518,124522,124526,124530],{"__ignoreMap":30},[34,124235,124236],{"class":36,"line":37},[34,124237,32488],{"class":40},[34,124239,124240,124243,124245,124247],{"class":36,"line":44},[34,124241,124242],{"class":181},"String str ",[34,124244,1301],{"class":580},[34,124246,24377],{"class":54},[34,124248,593],{"class":181},[34,124250,124251,124253,124255,124257],{"class":36,"line":58},[34,124252,32493],{"class":181},[34,124254,2908],{"class":47},[34,124256,123343],{"class":181},[34,124258,124259],{"class":40},"// Get length\n",[34,124261,124262,124264,124266,124268,124270,124273],{"class":36,"line":65},[34,124263,32493],{"class":181},[34,124265,14018],{"class":47},[34,124267,1607],{"class":181},[34,124269,2773],{"class":50},[34,124271,124272],{"class":181},");                   ",[34,124274,124275],{"class":40},"// Get character at index\n",[34,124277,124278,124280,124282,124284,124286,124288,124290,124292],{"class":36,"line":71},[34,124279,32493],{"class":181},[34,124281,2930],{"class":47},[34,124283,1607],{"class":181},[34,124285,2773],{"class":50},[34,124287,1798],{"class":181},[34,124289,3162],{"class":50},[34,124291,36589],{"class":181},[34,124293,124294],{"class":40},"// Get substring\n",[34,124296,124297,124299,124302,124305],{"class":36,"line":77},[34,124298,32493],{"class":181},[34,124300,124301],{"class":47},"toLowerCase",[34,124303,124304],{"class":181},"();               ",[34,124306,87976],{"class":40},[34,124308,124309,124311,124313,124315],{"class":36,"line":82},[34,124310,32493],{"class":181},[34,124312,14027],{"class":47},[34,124314,124304],{"class":181},[34,124316,87962],{"class":40},[34,124318,124319,124321,124323,124325],{"class":36,"line":88},[34,124320,32493],{"class":181},[34,124322,72217],{"class":47},[34,124324,123355],{"class":181},[34,124326,37883],{"class":40},[34,124328,124329,124331,124333,124335,124338,124340,124343,124345],{"class":36,"line":242},[34,124330,32493],{"class":181},[34,124332,13943],{"class":47},[34,124334,1607],{"class":181},[34,124336,124337],{"class":54},"\"l\"",[34,124339,1798],{"class":181},[34,124341,124342],{"class":54},"\"L\"",[34,124344,36475],{"class":181},[34,124346,124347],{"class":40},"// Replace characters\n",[34,124349,124350,124352,124355,124357,124359,124362],{"class":36,"line":250},[34,124351,32493],{"class":181},[34,124353,124354],{"class":47},"split",[34,124356,1607],{"class":181},[34,124358,104255],{"class":54},[34,124360,124361],{"class":181},");                  ",[34,124363,124364],{"class":40},"// Split into array\n",[34,124366,124367,124369,124371,124373,124375,124377],{"class":36,"line":263},[34,124368,32493],{"class":181},[34,124370,51780],{"class":47},[34,124372,1607],{"class":181},[34,124374,17370],{"class":54},[34,124376,36589],{"class":181},[34,124378,124379],{"class":40},"// Check if contains\n",[34,124381,124382,124384,124387,124389,124392,124394],{"class":36,"line":275},[34,124383,32493],{"class":181},[34,124385,124386],{"class":47},"startsWith",[34,124388,1607],{"class":181},[34,124390,124391],{"class":54},"\"He\"",[34,124393,38697],{"class":181},[34,124395,124396],{"class":40},"// Check prefix\n",[34,124398,124399,124401,124404,124406,124409,124411],{"class":36,"line":700},[34,124400,32493],{"class":181},[34,124402,124403],{"class":47},"endsWith",[34,124405,1607],{"class":181},[34,124407,124408],{"class":54},"\"lo\"",[34,124410,123385],{"class":181},[34,124412,124413],{"class":40},"// Check suffix\n",[34,124415,124416,124418,124421,124423,124425,124427],{"class":36,"line":706},[34,124417,32493],{"class":181},[34,124419,124420],{"class":47},"equals",[34,124422,1607],{"class":181},[34,124424,15564],{"class":54},[34,124426,36589],{"class":181},[34,124428,124429],{"class":40},"// Compare strings\n",[34,124431,124432,124434,124437,124439,124442,124444],{"class":36,"line":715},[34,124433,32493],{"class":181},[34,124435,124436],{"class":47},"equalsIgnoreCase",[34,124438,1607],{"class":181},[34,124440,124441],{"class":54},"\"HELLO\"",[34,124443,38794],{"class":181},[34,124445,124446],{"class":40},"// Compare ignoring case\n",[34,124448,124449],{"class":36,"line":725},[34,124450,62],{"emptyLinePlaceholder":61},[34,124452,124453],{"class":36,"line":734},[34,124454,104335],{"class":40},[34,124456,124457,124460,124462,124465,124468,124470,124473],{"class":36,"line":742},[34,124458,124459],{"class":181},"String formatted ",[34,124461,1301],{"class":580},[34,124463,124464],{"class":181}," String.",[34,124466,124467],{"class":47},"format",[34,124469,1607],{"class":181},[34,124471,124472],{"class":54},"\"Name: %s, Age: %d\"",[34,124474,124475],{"class":181},", name, age);\n",[34,124477,124478,124481,124483,124486,124488,124490,124493],{"class":36,"line":748},[34,124479,124480],{"class":181},"String template ",[34,124482,1301],{"class":580},[34,124484,124485],{"class":54}," \"Value: %s\"",[34,124487,151],{"class":181},[34,124489,121954],{"class":47},[34,124491,124492],{"class":181},"(value);  ",[34,124494,124495],{"class":40},"// Java 15+\n",[34,124497,124498],{"class":36,"line":754},[34,124499,62],{"emptyLinePlaceholder":61},[34,124501,124502],{"class":36,"line":759},[34,124503,124504],{"class":40},"// Text blocks (Java 15+)\n",[34,124506,124507,124510,124512],{"class":36,"line":771},[34,124508,124509],{"class":181},"String json ",[34,124511,1301],{"class":580},[34,124513,37798],{"class":54},[34,124515,124516],{"class":36,"line":794},[34,124517,25561],{"class":54},[34,124519,124520],{"class":36,"line":824},[34,124521,37807],{"class":54},[34,124523,124524],{"class":36,"line":830},[34,124525,37812],{"class":54},[34,124527,124528],{"class":36,"line":839},[34,124529,3229],{"class":54},[34,124531,124532,124534],{"class":36,"line":854},[34,124533,37821],{"class":54},[34,124535,593],{"class":181},[388,124537,124538],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":124540},[124541],{"id":24353,"depth":44,"text":23101},"Strings in Java.",{},{"title":23101,"description":124542},"java/strings",[51386,121718,30041,46870],"hC0eZlz0ME3wlpHk2Gj0FVo4KsNMiiFSIumE3g5cMNk",{"id":124549,"title":123574,"body":124550,"date":402,"description":124824,"extension":404,"meta":124825,"navigation":61,"order":700,"path":123573,"seo":124826,"stem":124827,"subject":51386,"tags":124828,"__hash__":124829},"topics/java/useful-snippets.md",{"type":8,"value":124551,"toc":124821},[124552,124555,124819],[11,124553,123574],{"id":124554},"useful-snippets",[25,124556,124558],{"className":51384,"code":124557,"language":51386,"meta":30,"style":30},"// Read file to string (Java 11+)\nString content = Files.readString(Path.of(\"file.txt\"));\n\n// Write string to file\nFiles.writeString(Path.of(\"file.txt\"), content);\n\n// HTTP request (Java 11+)\nHttpClient client = HttpClient.newHttpClient();\nHttpRequest request = HttpRequest.newBuilder()\n    .uri(URI.create(\"https://api.example.com\"))\n    .GET()\n    .build();\nHttpResponse\u003CString> response = client.send(request, \n    HttpResponse.BodyHandlers.ofString());\n\n// Parse JSON with pattern matching (Java 21+)\nif (obj instanceof String s) {\n    System.out.println(s.toUpperCase());\n}\n\n// Generate random number\nint random = new Random().nextInt(100);  // 0-99\nint randomInRange = new Random().nextInt(min, max);  // Java 17+\n",[20,124559,124560,124565,124589,124593,124598,124617,124621,124626,124641,124656,124674,124683,124691,124710,124720,124724,124729,124741,124755,124759,124763,124768,124796],{"__ignoreMap":30},[34,124561,124562],{"class":36,"line":37},[34,124563,124564],{"class":40},"// Read file to string (Java 11+)\n",[34,124566,124567,124570,124572,124575,124578,124581,124583,124585,124587],{"class":36,"line":44},[34,124568,124569],{"class":181},"String content ",[34,124571,1301],{"class":580},[34,124573,124574],{"class":181}," Files.",[34,124576,124577],{"class":47},"readString",[34,124579,124580],{"class":181},"(Path.",[34,124582,52211],{"class":47},[34,124584,1607],{"class":181},[34,124586,14990],{"class":54},[34,124588,15223],{"class":181},[34,124590,124591],{"class":36,"line":58},[34,124592,62],{"emptyLinePlaceholder":61},[34,124594,124595],{"class":36,"line":65},[34,124596,124597],{"class":40},"// Write string to file\n",[34,124599,124600,124603,124606,124608,124610,124612,124614],{"class":36,"line":71},[34,124601,124602],{"class":181},"Files.",[34,124604,124605],{"class":47},"writeString",[34,124607,124580],{"class":181},[34,124609,52211],{"class":47},[34,124611,1607],{"class":181},[34,124613,14990],{"class":54},[34,124615,124616],{"class":181},"), content);\n",[34,124618,124619],{"class":36,"line":77},[34,124620,62],{"emptyLinePlaceholder":61},[34,124622,124623],{"class":36,"line":82},[34,124624,124625],{"class":40},"// HTTP request (Java 11+)\n",[34,124627,124628,124631,124633,124636,124639],{"class":36,"line":88},[34,124629,124630],{"class":181},"HttpClient client ",[34,124632,1301],{"class":580},[34,124634,124635],{"class":181}," HttpClient.",[34,124637,124638],{"class":47},"newHttpClient",[34,124640,851],{"class":181},[34,124642,124643,124646,124648,124651,124654],{"class":36,"line":242},[34,124644,124645],{"class":181},"HttpRequest request ",[34,124647,1301],{"class":580},[34,124649,124650],{"class":181}," HttpRequest.",[34,124652,124653],{"class":47},"newBuilder",[34,124655,33899],{"class":181},[34,124657,124658,124660,124663,124666,124668,124670,124672],{"class":36,"line":250},[34,124659,123827],{"class":181},[34,124661,124662],{"class":47},"uri",[34,124664,124665],{"class":181},"(URI.",[34,124667,72666],{"class":47},[34,124669,1607],{"class":181},[34,124671,17428],{"class":54},[34,124673,11119],{"class":181},[34,124675,124676,124678,124681],{"class":36,"line":263},[34,124677,123827],{"class":181},[34,124679,124680],{"class":47},"GET",[34,124682,33899],{"class":181},[34,124684,124685,124687,124689],{"class":36,"line":275},[34,124686,123827],{"class":181},[34,124688,71370],{"class":47},[34,124690,851],{"class":181},[34,124692,124693,124696,124698,124701,124703,124705,124707],{"class":36,"line":700},[34,124694,124695],{"class":181},"HttpResponse\u003C",[34,124697,51427],{"class":580},[34,124699,124700],{"class":181},"> response ",[34,124702,1301],{"class":580},[34,124704,33866],{"class":181},[34,124706,15746],{"class":47},[34,124708,124709],{"class":181},"(request, \n",[34,124711,124712,124715,124718],{"class":36,"line":706},[34,124713,124714],{"class":181},"    HttpResponse.BodyHandlers.",[34,124716,124717],{"class":47},"ofString",[34,124719,4343],{"class":181},[34,124721,124722],{"class":36,"line":715},[34,124723,62],{"emptyLinePlaceholder":61},[34,124725,124726],{"class":36,"line":725},[34,124727,124728],{"class":40},"// Parse JSON with pattern matching (Java 21+)\n",[34,124730,124731,124733,124735,124738],{"class":36,"line":734},[34,124732,10383],{"class":580},[34,124734,34795],{"class":181},[34,124736,124737],{"class":580},"instanceof",[34,124739,124740],{"class":181}," String s) {\n",[34,124742,124743,124746,124748,124751,124753],{"class":36,"line":742},[34,124744,124745],{"class":181},"    System.out.",[34,124747,87388],{"class":47},[34,124749,124750],{"class":181},"(s.",[34,124752,14027],{"class":47},[34,124754,4343],{"class":181},[34,124756,124757],{"class":36,"line":748},[34,124758,693],{"class":181},[34,124760,124761],{"class":36,"line":754},[34,124762,62],{"emptyLinePlaceholder":61},[34,124764,124765],{"class":36,"line":759},[34,124766,124767],{"class":40},"// Generate random number\n",[34,124769,124770,124772,124775,124777,124779,124782,124784,124787,124789,124791,124793],{"class":36,"line":771},[34,124771,17772],{"class":580},[34,124773,124774],{"class":181}," random ",[34,124776,1301],{"class":580},[34,124778,809],{"class":580},[34,124780,124781],{"class":47}," Random",[34,124783,1645],{"class":181},[34,124785,124786],{"class":47},"nextInt",[34,124788,1607],{"class":181},[34,124790,20863],{"class":50},[34,124792,33489],{"class":181},[34,124794,124795],{"class":40},"// 0-99\n",[34,124797,124798,124800,124803,124805,124807,124809,124811,124813,124816],{"class":36,"line":794},[34,124799,17772],{"class":580},[34,124801,124802],{"class":181}," randomInRange ",[34,124804,1301],{"class":580},[34,124806,809],{"class":580},[34,124808,124781],{"class":47},[34,124810,1645],{"class":181},[34,124812,124786],{"class":47},[34,124814,124815],{"class":181},"(min, max);  ",[34,124817,124818],{"class":40},"// Java 17+\n",[388,124820,107354],{},{"title":30,"searchDepth":44,"depth":44,"links":124822},[124823],{"id":124554,"depth":44,"text":123574},"Useful Snippets in Java.",{},{"title":123574,"description":124824},"java/useful-snippets",[51386,121718,30041,46870],"M7EZFFyrt-dy68k4XvB0XEh8f0N-LG8rFV8aLBwSQNI",{"id":124831,"title":32171,"body":124832,"date":402,"description":125063,"extension":404,"meta":125064,"navigation":61,"order":44,"path":123523,"seo":125065,"stem":125066,"subject":51386,"tags":125067,"__hash__":125068},"topics/java/variables-data-types.md",{"type":8,"value":124833,"toc":125060},[124834,124836,125057],[11,124835,32171],{"id":32868},[25,124837,124839],{"className":51384,"code":124838,"language":51386,"meta":30,"style":30},"// Primitive types\nint number = 42;\nlong bigNumber = 123456789L;\ndouble decimal = 3.14;\nfloat floatNum = 3.14f;\nboolean flag = true;\nchar letter = 'A';\nbyte smallNum = 127;\nshort shortNum = 32000;\n\n// Reference types\nString text = \"Hello, World!\";\nInteger wrappedInt = 42;  // Wrapper class\n\n// Constants\nfinal int MAX_SIZE = 100;\n\n// Type inference (Java 10+)\nvar message = \"Hello\";\nvar numbers = List.of(1, 2, 3);\n",[20,124840,124841,124846,124858,124872,124884,124898,124910,124922,124936,124950,124954,124958,124970,124985,124989,124993,125008,125012,125017,125030],{"__ignoreMap":30},[34,124842,124843],{"class":36,"line":37},[34,124844,124845],{"class":40},"// Primitive types\n",[34,124847,124848,124850,124852,124854,124856],{"class":36,"line":44},[34,124849,17772],{"class":580},[34,124851,32885],{"class":181},[34,124853,1301],{"class":580},[34,124855,19987],{"class":50},[34,124857,593],{"class":181},[34,124859,124860,124862,124865,124867,124870],{"class":36,"line":58},[34,124861,21578],{"class":580},[34,124863,124864],{"class":181}," bigNumber ",[34,124866,1301],{"class":580},[34,124868,124869],{"class":50}," 123456789L",[34,124871,593],{"class":181},[34,124873,124874,124876,124878,124880,124882],{"class":36,"line":65},[34,124875,25097],{"class":580},[34,124877,32898],{"class":181},[34,124879,1301],{"class":580},[34,124881,32903],{"class":50},[34,124883,593],{"class":181},[34,124885,124886,124888,124891,124893,124896],{"class":36,"line":71},[34,124887,25079],{"class":580},[34,124889,124890],{"class":181}," floatNum ",[34,124892,1301],{"class":580},[34,124894,124895],{"class":50}," 3.14f",[34,124897,593],{"class":181},[34,124899,124900,124902,124904,124906,124908],{"class":36,"line":77},[34,124901,124001],{"class":580},[34,124903,32940],{"class":181},[34,124905,1301],{"class":580},[34,124907,32945],{"class":50},[34,124909,593],{"class":181},[34,124911,124912,124914,124916,124918,124920],{"class":36,"line":82},[34,124913,18236],{"class":580},[34,124915,25116],{"class":181},[34,124917,1301],{"class":580},[34,124919,18989],{"class":54},[34,124921,593],{"class":181},[34,124923,124924,124926,124929,124931,124934],{"class":36,"line":88},[34,124925,105050],{"class":580},[34,124927,124928],{"class":181}," smallNum ",[34,124930,1301],{"class":580},[34,124932,124933],{"class":50}," 127",[34,124935,593],{"class":181},[34,124937,124938,124940,124943,124945,124948],{"class":36,"line":242},[34,124939,25201],{"class":580},[34,124941,124942],{"class":181}," shortNum ",[34,124944,1301],{"class":580},[34,124946,124947],{"class":50}," 32000",[34,124949,593],{"class":181},[34,124951,124952],{"class":36,"line":250},[34,124953,62],{"emptyLinePlaceholder":61},[34,124955,124956],{"class":36,"line":263},[34,124957,38055],{"class":40},[34,124959,124960,124963,124965,124968],{"class":36,"line":275},[34,124961,124962],{"class":181},"String text ",[34,124964,1301],{"class":580},[34,124966,124967],{"class":54}," \"Hello, World!\"",[34,124969,593],{"class":181},[34,124971,124972,124975,124977,124979,124982],{"class":36,"line":700},[34,124973,124974],{"class":181},"Integer wrappedInt ",[34,124976,1301],{"class":580},[34,124978,19987],{"class":50},[34,124980,124981],{"class":181},";  ",[34,124983,124984],{"class":40},"// Wrapper class\n",[34,124986,124987],{"class":36,"line":706},[34,124988,62],{"emptyLinePlaceholder":61},[34,124990,124991],{"class":36,"line":715},[34,124992,32996],{"class":40},[34,124994,124995,124998,125000,125002,125004,125006],{"class":36,"line":725},[34,124996,124997],{"class":580},"final",[34,124999,25160],{"class":580},[34,125001,33005],{"class":181},[34,125003,1301],{"class":580},[34,125005,25168],{"class":50},[34,125007,593],{"class":181},[34,125009,125010],{"class":36,"line":734},[34,125011,62],{"emptyLinePlaceholder":61},[34,125013,125014],{"class":36,"line":742},[34,125015,125016],{"class":40},"// Type inference (Java 10+)\n",[34,125018,125019,125021,125024,125026,125028],{"class":36,"line":748},[34,125020,34404],{"class":580},[34,125022,125023],{"class":181}," message ",[34,125025,1301],{"class":580},[34,125027,24377],{"class":54},[34,125029,593],{"class":181},[34,125031,125032,125034,125037,125039,125041,125043,125045,125047,125049,125051,125053,125055],{"class":36,"line":754},[34,125033,34404],{"class":580},[34,125035,125036],{"class":181}," numbers ",[34,125038,1301],{"class":580},[34,125040,121621],{"class":181},[34,125042,52211],{"class":47},[34,125044,1607],{"class":181},[34,125046,8318],{"class":50},[34,125048,1798],{"class":181},[34,125050,8324],{"class":50},[34,125052,1798],{"class":181},[34,125054,3162],{"class":50},[34,125056,1586],{"class":181},[388,125058,125059],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":125061},[125062],{"id":32868,"depth":44,"text":32171},"Variables & Data Types in Java.",{},{"title":32171,"description":125063},"java/variables-data-types",[51386,121718,30041,46870],"3OLgFwCGYVLa_DcgA8mssFySXe0fRFyxwadZQHrvCvQ",{"id":125070,"title":10061,"body":125071,"date":402,"description":125304,"extension":404,"meta":125305,"navigation":61,"order":65,"path":125306,"seo":125307,"stem":125308,"subject":8606,"tags":125309,"__hash__":125311},"topics/javascript/arrays.md",{"type":8,"value":125072,"toc":125301},[125073,125075,125298],[11,125074,10061],{"id":10066},[25,125076,125078],{"className":13845,"code":125077,"language":8606,"meta":30,"style":30},"// Array methods\narray.map(x => x * 2);           // Transform elements\narray.filter(x => x > 5);        // Filter elements\narray.reduce((acc, x) => acc + x, 0); // Reduce to single value\narray.find(x => x.id === 1);     // Find first match\narray.some(x => x > 5);          // Check if any match\narray.every(x => x > 5);         // Check if all match\narray.includes(value);           // Check if contains\narray.indexOf(value);            // Get index of value\narray.flat();                    // Flatten nested arrays\narray.flatMap(x => [x, x * 2]);  // Map and flatten\n",[20,125079,125080,125085,125109,125132,125166,125191,125214,125237,125248,125261,125273],{"__ignoreMap":30},[34,125081,125082],{"class":36,"line":37},[34,125083,125084],{"class":40},"// Array methods\n",[34,125086,125087,125090,125092,125094,125096,125098,125100,125102,125104,125106],{"class":36,"line":44},[34,125088,125089],{"class":181},"array.",[34,125091,61180],{"class":47},[34,125093,1607],{"class":181},[34,125095,23655],{"class":675},[34,125097,1895],{"class":580},[34,125099,23172],{"class":181},[34,125101,4289],{"class":580},[34,125103,4292],{"class":50},[34,125105,36475],{"class":181},[34,125107,125108],{"class":40},"// Transform elements\n",[34,125110,125111,125113,125115,125117,125119,125121,125123,125125,125127,125129],{"class":36,"line":58},[34,125112,125089],{"class":181},[34,125114,32125],{"class":47},[34,125116,1607],{"class":181},[34,125118,23655],{"class":675},[34,125120,1895],{"class":580},[34,125122,23172],{"class":181},[34,125124,5691],{"class":580},[34,125126,11144],{"class":50},[34,125128,38821],{"class":181},[34,125130,125131],{"class":40},"// Filter elements\n",[34,125133,125134,125136,125138,125140,125143,125145,125147,125149,125151,125154,125156,125159,125161,125163],{"class":36,"line":65},[34,125135,125089],{"class":181},[34,125137,8345],{"class":47},[34,125139,8348],{"class":181},[34,125141,125142],{"class":675},"acc",[34,125144,1798],{"class":181},[34,125146,23655],{"class":675},[34,125148,4817],{"class":181},[34,125150,3361],{"class":580},[34,125152,125153],{"class":181}," acc ",[34,125155,2940],{"class":580},[34,125157,125158],{"class":181}," x, ",[34,125160,2773],{"class":50},[34,125162,8260],{"class":181},[34,125164,125165],{"class":40},"// Reduce to single value\n",[34,125167,125168,125170,125172,125174,125176,125178,125181,125183,125185,125188],{"class":36,"line":71},[34,125169,125089],{"class":181},[34,125171,12963],{"class":47},[34,125173,1607],{"class":181},[34,125175,23655],{"class":675},[34,125177,1895],{"class":580},[34,125179,125180],{"class":181}," x.id ",[34,125182,15543],{"class":580},[34,125184,3567],{"class":50},[34,125186,125187],{"class":181},");     ",[34,125189,125190],{"class":40},"// Find first match\n",[34,125192,125193,125195,125198,125200,125202,125204,125206,125208,125210,125212],{"class":36,"line":77},[34,125194,125089],{"class":181},[34,125196,125197],{"class":47},"some",[34,125199,1607],{"class":181},[34,125201,23655],{"class":675},[34,125203,1895],{"class":580},[34,125205,23172],{"class":181},[34,125207,5691],{"class":580},[34,125209,11144],{"class":50},[34,125211,36500],{"class":181},[34,125213,36592],{"class":40},[34,125215,125216,125218,125221,125223,125225,125227,125229,125231,125233,125235],{"class":36,"line":82},[34,125217,125089],{"class":181},[34,125219,125220],{"class":47},"every",[34,125222,1607],{"class":181},[34,125224,23655],{"class":675},[34,125226,1895],{"class":580},[34,125228,23172],{"class":181},[34,125230,5691],{"class":580},[34,125232,11144],{"class":50},[34,125234,36676],{"class":181},[34,125236,36616],{"class":40},[34,125238,125239,125241,125243,125246],{"class":36,"line":88},[34,125240,125089],{"class":181},[34,125242,59303],{"class":47},[34,125244,125245],{"class":181},"(value);           ",[34,125247,124379],{"class":40},[34,125249,125250,125252,125255,125258],{"class":36,"line":242},[34,125251,125089],{"class":181},[34,125253,125254],{"class":47},"indexOf",[34,125256,125257],{"class":181},"(value);            ",[34,125259,125260],{"class":40},"// Get index of value\n",[34,125262,125263,125265,125268,125270],{"class":36,"line":250},[34,125264,125089],{"class":181},[34,125266,125267],{"class":47},"flat",[34,125269,123343],{"class":181},[34,125271,125272],{"class":40},"// Flatten nested arrays\n",[34,125274,125275,125277,125279,125281,125283,125285,125288,125290,125292,125295],{"class":36,"line":263},[34,125276,125089],{"class":181},[34,125278,123487],{"class":47},[34,125280,1607],{"class":181},[34,125282,23655],{"class":675},[34,125284,1895],{"class":580},[34,125286,125287],{"class":181}," [x, x ",[34,125289,4289],{"class":580},[34,125291,4292],{"class":50},[34,125293,125294],{"class":181},"]);  ",[34,125296,125297],{"class":40},"// Map and flatten\n",[388,125299,125300],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":125302},[125303],{"id":10066,"depth":44,"text":10061},"Arrays in JavaScript.",{},"/javascript/arrays",{"title":10061,"description":125304},"javascript/arrays",[8606,125310,38615,982],"es6","rPymUpr9p-NSnAzQsCuhgr8Re_enAOigXOlMC2QYgnE",{"id":125313,"title":125314,"body":125315,"date":402,"description":125639,"extension":404,"meta":125640,"navigation":61,"order":82,"path":125641,"seo":125642,"stem":125643,"subject":8606,"tags":125644,"__hash__":125645},"topics/javascript/classes.md","Classes",{"type":8,"value":125316,"toc":125636},[125317,125320,125633],[11,125318,125314],{"id":125319},"classes",[25,125321,125323],{"className":13845,"code":125322,"language":8606,"meta":30,"style":30},"class Person {\n  #privateField = 'private';  // Private field\n  \n  constructor(name, age) {\n    this.name = name;\n    this.age = age;\n  }\n  \n  // Method\n  greet() {\n    return `Hello, I'm ${this.name}`;\n  }\n  \n  // Getter\n  get info() {\n    return `${this.name}, ${this.age}`;\n  }\n  \n  // Setter\n  set info(value) {\n    [this.name, this.age] = value.split(', ');\n  }\n  \n  // Static method\n  static create(name) {\n    return new Person(name, 0);\n  }\n}\n\n// Inheritance\nclass Developer extends Person {\n  constructor(name, age, language) {\n    super(name, age);\n    this.language = language;\n  }\n}\n",[20,125324,125325,125333,125348,125352,125366,125376,125386,125390,125394,125399,125406,125423,125427,125431,125436,125445,125470,125474,125478,125483,125496,125522,125526,125530,125535,125547,125562,125566,125570,125574,125578,125590,125608,125615,125625,125629],{"__ignoreMap":30},[34,125326,125327,125329,125331],{"class":36,"line":37},[34,125328,30060],{"class":580},[34,125330,30063],{"class":47},[34,125332,661],{"class":181},[34,125334,125335,125338,125340,125343,125345],{"class":36,"line":44},[34,125336,125337],{"class":675},"  #privateField",[34,125339,683],{"class":580},[34,125341,125342],{"class":54}," 'private'",[34,125344,124981],{"class":181},[34,125346,125347],{"class":40},"// Private field\n",[34,125349,125350],{"class":36,"line":58},[34,125351,827],{"class":181},[34,125353,125354,125356,125358,125360,125362,125364],{"class":36,"line":65},[34,125355,4303],{"class":580},[34,125357,1607],{"class":181},[34,125359,178],{"class":675},[34,125361,1798],{"class":181},[34,125363,13337],{"class":675},[34,125365,2416],{"class":181},[34,125367,125368,125370,125372,125374],{"class":36,"line":71},[34,125369,842],{"class":50},[34,125371,121800],{"class":181},[34,125373,1301],{"class":580},[34,125375,34320],{"class":181},[34,125377,125378,125380,125382,125384],{"class":36,"line":77},[34,125379,842],{"class":50},[34,125381,121811],{"class":181},[34,125383,1301],{"class":580},[34,125385,24702],{"class":181},[34,125387,125388],{"class":36,"line":82},[34,125389,857],{"class":181},[34,125391,125392],{"class":36,"line":88},[34,125393,827],{"class":181},[34,125395,125396],{"class":36,"line":242},[34,125397,125398],{"class":40},"  // Method\n",[34,125400,125401,125404],{"class":36,"line":250},[34,125402,125403],{"class":47},"  greet",[34,125405,836],{"class":181},[34,125407,125408,125410,125413,125415,125417,125419,125421],{"class":36,"line":263},[34,125409,1564],{"class":580},[34,125411,125412],{"class":54}," `Hello, I'm ${",[34,125414,3207],{"class":50},[34,125416,151],{"class":54},[34,125418,178],{"class":181},[34,125420,3925],{"class":54},[34,125422,593],{"class":181},[34,125424,125425],{"class":36,"line":275},[34,125426,857],{"class":181},[34,125428,125429],{"class":36,"line":700},[34,125430,827],{"class":181},[34,125432,125433],{"class":36,"line":706},[34,125434,125435],{"class":40},"  // Getter\n",[34,125437,125438,125441,125443],{"class":36,"line":715},[34,125439,125440],{"class":580},"  get",[34,125442,54126],{"class":47},[34,125444,836],{"class":181},[34,125446,125447,125449,125451,125453,125455,125457,125460,125462,125464,125466,125468],{"class":36,"line":725},[34,125448,1564],{"class":580},[34,125450,60305],{"class":54},[34,125452,3207],{"class":50},[34,125454,151],{"class":54},[34,125456,178],{"class":181},[34,125458,125459],{"class":54},"}, ${",[34,125461,3207],{"class":50},[34,125463,151],{"class":54},[34,125465,13337],{"class":181},[34,125467,3925],{"class":54},[34,125469,593],{"class":181},[34,125471,125472],{"class":36,"line":734},[34,125473,857],{"class":181},[34,125475,125476],{"class":36,"line":742},[34,125477,827],{"class":181},[34,125479,125480],{"class":36,"line":748},[34,125481,125482],{"class":40},"  // Setter\n",[34,125484,125485,125488,125490,125492,125494],{"class":36,"line":754},[34,125486,125487],{"class":580},"  set",[34,125489,54126],{"class":47},[34,125491,1607],{"class":181},[34,125493,2871],{"class":675},[34,125495,2416],{"class":181},[34,125497,125498,125500,125502,125505,125507,125510,125512,125514,125516,125518,125520],{"class":36,"line":759},[34,125499,33545],{"class":181},[34,125501,3207],{"class":50},[34,125503,125504],{"class":181},".name, ",[34,125506,3207],{"class":50},[34,125508,125509],{"class":181},".age] ",[34,125511,1301],{"class":580},[34,125513,2927],{"class":181},[34,125515,124354],{"class":47},[34,125517,1607],{"class":181},[34,125519,71024],{"class":54},[34,125521,1586],{"class":181},[34,125523,125524],{"class":36,"line":771},[34,125525,857],{"class":181},[34,125527,125528],{"class":36,"line":794},[34,125529,827],{"class":181},[34,125531,125532],{"class":36,"line":824},[34,125533,125534],{"class":40},"  // Static method\n",[34,125536,125537,125539,125541,125543,125545],{"class":36,"line":830},[34,125538,70420],{"class":580},[34,125540,7077],{"class":47},[34,125542,1607],{"class":181},[34,125544,178],{"class":675},[34,125546,2416],{"class":181},[34,125548,125549,125551,125553,125555,125558,125560],{"class":36,"line":839},[34,125550,1564],{"class":580},[34,125552,809],{"class":580},[34,125554,30063],{"class":47},[34,125556,125557],{"class":181},"(name, ",[34,125559,2773],{"class":50},[34,125561,1586],{"class":181},[34,125563,125564],{"class":36,"line":854},[34,125565,857],{"class":181},[34,125567,125568],{"class":36,"line":860},[34,125569,693],{"class":181},[34,125571,125572],{"class":36,"line":865},[34,125573,62],{"emptyLinePlaceholder":61},[34,125575,125576],{"class":36,"line":870},[34,125577,36137],{"class":40},[34,125579,125580,125582,125584,125586,125588],{"class":36,"line":876},[34,125581,30060],{"class":580},[34,125583,121982],{"class":47},[34,125585,59185],{"class":580},[34,125587,30063],{"class":47},[34,125589,661],{"class":181},[34,125591,125592,125594,125596,125598,125600,125602,125604,125606],{"class":36,"line":885},[34,125593,4303],{"class":580},[34,125595,1607],{"class":181},[34,125597,178],{"class":675},[34,125599,1798],{"class":181},[34,125601,13337],{"class":675},[34,125603,1798],{"class":181},[34,125605,122020],{"class":675},[34,125607,2416],{"class":181},[34,125609,125610,125613],{"class":36,"line":895},[34,125611,125612],{"class":50},"    super",[34,125614,121957],{"class":181},[34,125616,125617,125619,125621,125623],{"class":36,"line":904},[34,125618,842],{"class":50},[34,125620,122036],{"class":181},[34,125622,1301],{"class":580},[34,125624,122041],{"class":181},[34,125626,125627],{"class":36,"line":915},[34,125628,857],{"class":181},[34,125630,125631],{"class":36,"line":927},[34,125632,693],{"class":181},[388,125634,125635],{},"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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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}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":30,"searchDepth":44,"depth":44,"links":125637},[125638],{"id":125319,"depth":44,"text":125314},"Classes in JavaScript.",{},"/javascript/classes",{"title":125314,"description":125639},"javascript/classes",[8606,125310,38615,982],"Gj-glBdoGlGP7Rq1w1Ez0h2FrCOOQdVBUskWOmY8dpA",{"id":125647,"title":10991,"body":125648,"date":402,"description":125851,"extension":404,"meta":125852,"navigation":61,"order":58,"path":125853,"seo":125854,"stem":125855,"subject":8606,"tags":125856,"__hash__":125857},"topics/javascript/functions.md",{"type":8,"value":125649,"toc":125848},[125650,125652,125846],[11,125651,10991],{"id":10996},[25,125653,125655],{"className":13845,"code":125654,"language":8606,"meta":30,"style":30},"// Arrow functions\nconst add = (a, b) => a + b;\nconst greet = name => `Hello, ${name}!`;\nconst complex = (a, b) => {\n  const result = a + b;\n  return result;\n};\n\n// Default parameters\nconst greet = (name = 'World') => `Hello, ${name}!`;\n\n// Rest parameters\nconst sum = (...numbers) => numbers.reduce((a, b) => a + b, 0);\n",[20,125656,125657,125662,125688,125709,125732,125746,125752,125756,125760,125764,125793,125797,125802],{"__ignoreMap":30},[34,125658,125659],{"class":36,"line":37},[34,125660,125661],{"class":40},"// Arrow functions\n",[34,125663,125664,125666,125668,125670,125672,125674,125676,125678,125680,125682,125684,125686],{"class":36,"line":44},[34,125665,14676],{"class":580},[34,125667,7854],{"class":47},[34,125669,683],{"class":580},[34,125671,3204],{"class":181},[34,125673,145],{"class":675},[34,125675,1798],{"class":181},[34,125677,8355],{"class":675},[34,125679,4817],{"class":181},[34,125681,3361],{"class":580},[34,125683,8065],{"class":181},[34,125685,2940],{"class":580},[34,125687,8123],{"class":181},[34,125689,125690,125692,125694,125696,125698,125700,125703,125705,125707],{"class":36,"line":58},[34,125691,14676],{"class":580},[34,125693,11047],{"class":47},[34,125695,683],{"class":580},[34,125697,12323],{"class":675},[34,125699,1895],{"class":580},[34,125701,125702],{"class":54}," `Hello, ${",[34,125704,178],{"class":181},[34,125706,111612],{"class":54},[34,125708,593],{"class":181},[34,125710,125711,125713,125716,125718,125720,125722,125724,125726,125728,125730],{"class":36,"line":65},[34,125712,14676],{"class":580},[34,125714,125715],{"class":47}," complex",[34,125717,683],{"class":580},[34,125719,3204],{"class":181},[34,125721,145],{"class":675},[34,125723,1798],{"class":181},[34,125725,8355],{"class":675},[34,125727,4817],{"class":181},[34,125729,3361],{"class":580},[34,125731,661],{"class":181},[34,125733,125734,125736,125738,125740,125742,125744],{"class":36,"line":71},[34,125735,17415],{"class":580},[34,125737,11103],{"class":50},[34,125739,683],{"class":580},[34,125741,8065],{"class":181},[34,125743,2940],{"class":580},[34,125745,8123],{"class":181},[34,125747,125748,125750],{"class":36,"line":77},[34,125749,8155],{"class":580},[34,125751,19480],{"class":181},[34,125753,125754],{"class":36,"line":82},[34,125755,17632],{"class":181},[34,125757,125758],{"class":36,"line":88},[34,125759,62],{"emptyLinePlaceholder":61},[34,125761,125762],{"class":36,"line":242},[34,125763,31217],{"class":40},[34,125765,125766,125768,125770,125772,125774,125776,125778,125781,125783,125785,125787,125789,125791],{"class":36,"line":250},[34,125767,14676],{"class":580},[34,125769,11047],{"class":47},[34,125771,683],{"class":580},[34,125773,3204],{"class":181},[34,125775,178],{"class":675},[34,125777,683],{"class":580},[34,125779,125780],{"class":54}," 'World'",[34,125782,4817],{"class":181},[34,125784,3361],{"class":580},[34,125786,125702],{"class":54},[34,125788,178],{"class":181},[34,125790,111612],{"class":54},[34,125792,593],{"class":181},[34,125794,125795],{"class":36,"line":263},[34,125796,62],{"emptyLinePlaceholder":61},[34,125798,125799],{"class":36,"line":275},[34,125800,125801],{"class":40},"// Rest parameters\n",[34,125803,125804,125806,125808,125810,125812,125814,125816,125818,125820,125822,125824,125826,125828,125830,125832,125834,125836,125838,125840,125842,125844],{"class":36,"line":700},[34,125805,14676],{"class":580},[34,125807,65446],{"class":47},[34,125809,683],{"class":580},[34,125811,3204],{"class":181},[34,125813,16841],{"class":580},[34,125815,33330],{"class":675},[34,125817,4817],{"class":181},[34,125819,3361],{"class":580},[34,125821,36423],{"class":181},[34,125823,8345],{"class":47},[34,125825,8348],{"class":181},[34,125827,145],{"class":675},[34,125829,1798],{"class":181},[34,125831,8355],{"class":675},[34,125833,4817],{"class":181},[34,125835,3361],{"class":580},[34,125837,8065],{"class":181},[34,125839,2940],{"class":580},[34,125841,105836],{"class":181},[34,125843,2773],{"class":50},[34,125845,1586],{"class":181},[388,125847,22138],{},{"title":30,"searchDepth":44,"depth":44,"links":125849},[125850],{"id":10996,"depth":44,"text":10991},"Functions in JavaScript.",{},"/javascript/functions",{"title":10991,"description":125851},"javascript/functions",[8606,125310,38615,982],"KXuBvxPok0bnbznfuGCSKYu8UNUs63zCrZFKvX9y7Ao",{"id":125859,"title":88402,"body":125860,"date":402,"description":126008,"extension":404,"meta":126009,"navigation":61,"order":88,"path":126010,"seo":126011,"stem":126012,"subject":8606,"tags":126013,"__hash__":126014},"topics/javascript/modules.md",{"type":8,"value":125861,"toc":126005},[125862,125864,126003],[11,125863,88402],{"id":88401},[25,125865,125867],{"className":13845,"code":125866,"language":8606,"meta":30,"style":30},"// Named exports\nexport const name = 'value';\nexport function helper() {}\nexport class MyClass {}\n\n// Default export\nexport default function main() {}\n\n// Imports\nimport defaultExport from './module';\nimport { named1, named2 } from './module';\nimport { named as alias } from './module';\nimport * as module from './module';\n",[20,125868,125869,125874,125889,125900,125911,125915,125920,125932,125936,125941,125955,125968,125986],{"__ignoreMap":30},[34,125870,125871],{"class":36,"line":37},[34,125872,125873],{"class":40},"// Named exports\n",[34,125875,125876,125878,125880,125882,125884,125887],{"class":36,"line":44},[34,125877,652],{"class":580},[34,125879,3291],{"class":580},[34,125881,12323],{"class":50},[34,125883,683],{"class":580},[34,125885,125886],{"class":54}," 'value'",[34,125888,593],{"class":181},[34,125890,125891,125893,125895,125898],{"class":36,"line":58},[34,125892,652],{"class":580},[34,125894,8037],{"class":580},[34,125896,125897],{"class":47}," helper",[34,125899,30172],{"class":181},[34,125901,125902,125904,125906,125909],{"class":36,"line":65},[34,125903,652],{"class":580},[34,125905,655],{"class":580},[34,125907,125908],{"class":47}," MyClass",[34,125910,1104],{"class":181},[34,125912,125913],{"class":36,"line":71},[34,125914,62],{"emptyLinePlaceholder":61},[34,125916,125917],{"class":36,"line":77},[34,125918,125919],{"class":40},"// Default export\n",[34,125921,125922,125924,125926,125928,125930],{"class":36,"line":82},[34,125923,652],{"class":580},[34,125925,7298],{"class":580},[34,125927,8037],{"class":580},[34,125929,18224],{"class":47},[34,125931,30172],{"class":181},[34,125933,125934],{"class":36,"line":88},[34,125935,62],{"emptyLinePlaceholder":61},[34,125937,125938],{"class":36,"line":242},[34,125939,125940],{"class":40},"// Imports\n",[34,125942,125943,125945,125948,125950,125953],{"class":36,"line":250},[34,125944,581],{"class":580},[34,125946,125947],{"class":181}," defaultExport ",[34,125949,587],{"class":580},[34,125951,125952],{"class":54}," './module'",[34,125954,593],{"class":181},[34,125956,125957,125959,125962,125964,125966],{"class":36,"line":263},[34,125958,581],{"class":580},[34,125960,125961],{"class":181}," { named1, named2 } ",[34,125963,587],{"class":580},[34,125965,125952],{"class":54},[34,125967,593],{"class":181},[34,125969,125970,125972,125975,125977,125980,125982,125984],{"class":36,"line":275},[34,125971,581],{"class":580},[34,125973,125974],{"class":181}," { named ",[34,125976,74548],{"class":580},[34,125978,125979],{"class":181}," alias } ",[34,125981,587],{"class":580},[34,125983,125952],{"class":54},[34,125985,593],{"class":181},[34,125987,125988,125990,125992,125994,125997,125999,126001],{"class":36,"line":700},[34,125989,581],{"class":580},[34,125991,18083],{"class":50},[34,125993,91551],{"class":580},[34,125995,125996],{"class":181}," module ",[34,125998,587],{"class":580},[34,126000,125952],{"class":54},[34,126002,593],{"class":181},[388,126004,16509],{},{"title":30,"searchDepth":44,"depth":44,"links":126006},[126007],{"id":88401,"depth":44,"text":88402},"Modules in JavaScript.",{},"/javascript/modules",{"title":88402,"description":126008},"javascript/modules",[8606,125310,38615,982],"-hok63Fgn4pMDF8RJRB2ZZ2fhTi3_O5zYhoE-kGDPyI",{"id":126016,"title":126017,"body":126018,"date":402,"description":126148,"extension":404,"meta":126149,"navigation":61,"order":71,"path":126150,"seo":126151,"stem":126152,"subject":8606,"tags":126153,"__hash__":126154},"topics/javascript/objects.md","Objects",{"type":8,"value":126019,"toc":126145},[126020,126023,126142],[11,126021,126017],{"id":126022},"objects",[25,126024,126026],{"className":13845,"code":126025,"language":8606,"meta":30,"style":30},"// Object methods\nObject.keys(obj);                // Get keys as array\nObject.values(obj);              // Get values as array\nObject.entries(obj);             // Get [key, value] pairs\nObject.assign({}, obj1, obj2);   // Merge objects\nObject.freeze(obj);              // Make immutable\n\n// Optional chaining\nconst name = user?.profile?.name;\n\n// Nullish coalescing\nconst value = input ?? 'default';\n",[20,126027,126028,126033,126046,126058,126070,126083,126095,126099,126104,126115,126119,126124],{"__ignoreMap":30},[34,126029,126030],{"class":36,"line":37},[34,126031,126032],{"class":40},"// Object methods\n",[34,126034,126035,126038,126040,126043],{"class":36,"line":44},[34,126036,126037],{"class":181},"Object.",[34,126039,52345],{"class":47},[34,126041,126042],{"class":181},"(obj);                ",[34,126044,126045],{"class":40},"// Get keys as array\n",[34,126047,126048,126050,126052,126055],{"class":36,"line":58},[34,126049,126037],{"class":181},[34,126051,58561],{"class":47},[34,126053,126054],{"class":181},"(obj);              ",[34,126056,126057],{"class":40},"// Get values as array\n",[34,126059,126060,126062,126064,126067],{"class":36,"line":65},[34,126061,126037],{"class":181},[34,126063,52217],{"class":47},[34,126065,126066],{"class":181},"(obj);             ",[34,126068,126069],{"class":40},"// Get [key, value] pairs\n",[34,126071,126072,126074,126077,126080],{"class":36,"line":71},[34,126073,126037],{"class":181},[34,126075,126076],{"class":47},"assign",[34,126078,126079],{"class":181},"({}, obj1, obj2);   ",[34,126081,126082],{"class":40},"// Merge objects\n",[34,126084,126085,126087,126090,126092],{"class":36,"line":77},[34,126086,126037],{"class":181},[34,126088,126089],{"class":47},"freeze",[34,126091,126054],{"class":181},[34,126093,126094],{"class":40},"// Make immutable\n",[34,126096,126097],{"class":36,"line":82},[34,126098,62],{"emptyLinePlaceholder":61},[34,126100,126101],{"class":36,"line":88},[34,126102,126103],{"class":40},"// Optional chaining\n",[34,126105,126106,126108,126110,126112],{"class":36,"line":242},[34,126107,14676],{"class":580},[34,126109,12323],{"class":50},[34,126111,683],{"class":580},[34,126113,126114],{"class":181}," user?.profile?.name;\n",[34,126116,126117],{"class":36,"line":250},[34,126118,62],{"emptyLinePlaceholder":61},[34,126120,126121],{"class":36,"line":263},[34,126122,126123],{"class":40},"// Nullish coalescing\n",[34,126125,126126,126128,126130,126132,126135,126137,126140],{"class":36,"line":275},[34,126127,14676],{"class":580},[34,126129,18389],{"class":50},[34,126131,683],{"class":580},[34,126133,126134],{"class":181}," input ",[34,126136,34195],{"class":580},[34,126138,126139],{"class":54}," 'default'",[34,126141,593],{"class":181},[388,126143,126144],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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);}",{"title":30,"searchDepth":44,"depth":44,"links":126146},[126147],{"id":126022,"depth":44,"text":126017},"Objects in JavaScript.",{},"/javascript/objects",{"title":126017,"description":126148},"javascript/objects",[8606,125310,38615,982],"_oy4lDGZykhaCIyqvToWA_7VwtXzePLWDMXF5zmlZpc",{"id":126156,"title":126157,"body":126158,"date":2633,"description":126200,"extension":404,"meta":126201,"navigation":61,"order":37,"path":126202,"seo":126203,"stem":126204,"subject":8606,"tags":126205,"__hash__":126206},"topics/javascript/overview.md","JavaScript",{"type":8,"value":126159,"toc":126198},[126160],[309,126161,126162,126167,126171,126175,126179,126185,126189,126193],{},[312,126163,126164],{},[145,126165,12166],{"href":126166},"/javascript/variables",[312,126168,126169],{},[145,126170,10991],{"href":125853},[312,126172,126173],{},[145,126174,10061],{"href":125306},[312,126176,126177],{},[145,126178,126017],{"href":126150},[312,126180,126181],{},[145,126182,126184],{"href":126183},"/javascript/promises-asyncawait","Promises & Async/Await",[312,126186,126187],{},[145,126188,125314],{"href":125641},[312,126190,126191],{},[145,126192,88402],{"href":126010},[312,126194,126195],{},[145,126196,123574],{"href":126197},"/javascript/useful-snippets",{"title":30,"searchDepth":44,"depth":44,"links":126199},[],"Essential JavaScript syntax, methods, and best practices for modern web development.",{},"/javascript/overview",{"title":126157,"description":126200},"javascript/overview",[8606,125310,38615,982],"aB0RrNYBQ5o5MUQgRRsXkNK663JCT_RBSVeGw9347CQ",{"id":126208,"title":126184,"body":126209,"date":402,"description":126497,"extension":404,"meta":126498,"navigation":61,"order":77,"path":126183,"seo":126499,"stem":126500,"subject":8606,"tags":126501,"__hash__":126502},"topics/javascript/promises-asyncawait.md",{"type":8,"value":126210,"toc":126494},[126211,126214,126491],[11,126212,126184],{"id":126213},"promises-asyncawait",[25,126215,126217],{"className":13845,"code":126216,"language":8606,"meta":30,"style":30},"// Promise\nconst promise = new Promise((resolve, reject) => {\n  if (success) resolve(data);\n  else reject(error);\n});\n\npromise\n  .then(data => console.log(data))\n  .catch(error => console.error(error))\n  .finally(() => console.log('Done'));\n\n// Async/Await\nasync function fetchData() {\n  try {\n    const response = await fetch(url);\n    const data = await response.json();\n    return data;\n  } catch (error) {\n    console.error(error);\n  }\n}\n\n// Promise.all - parallel execution\nconst [users, posts] = await Promise.all([\n  fetchUsers(),\n  fetchPosts()\n]);\n",[20,126218,126219,126224,126253,126265,126276,126280,126284,126289,126308,126327,126348,126352,126357,126368,126375,126389,126405,126412,126422,126430,126434,126438,126442,126447,126473,126480,126487],{"__ignoreMap":30},[34,126220,126221],{"class":36,"line":37},[34,126222,126223],{"class":40},"// Promise\n",[34,126225,126226,126228,126231,126233,126235,126238,126240,126242,126244,126247,126249,126251],{"class":36,"line":44},[34,126227,14676],{"class":580},[34,126229,126230],{"class":50}," promise",[34,126232,683],{"class":580},[34,126234,809],{"class":580},[34,126236,126237],{"class":50}," Promise",[34,126239,8348],{"class":181},[34,126241,77756],{"class":675},[34,126243,1798],{"class":181},[34,126245,126246],{"class":675},"reject",[34,126248,4817],{"class":181},[34,126250,3361],{"class":580},[34,126252,661],{"class":181},[34,126254,126255,126257,126260,126262],{"class":36,"line":58},[34,126256,8084],{"class":580},[34,126258,126259],{"class":181}," (success) ",[34,126261,77756],{"class":47},[34,126263,126264],{"class":181},"(data);\n",[34,126266,126267,126270,126273],{"class":36,"line":65},[34,126268,126269],{"class":580},"  else",[34,126271,126272],{"class":47}," reject",[34,126274,126275],{"class":181},"(error);\n",[34,126277,126278],{"class":36,"line":71},[34,126279,14873],{"class":181},[34,126281,126282],{"class":36,"line":77},[34,126283,62],{"emptyLinePlaceholder":61},[34,126285,126286],{"class":36,"line":82},[34,126287,126288],{"class":181},"promise\n",[34,126290,126291,126293,126295,126297,126299,126301,126303,126305],{"class":36,"line":88},[34,126292,61818],{"class":181},[34,126294,3380],{"class":47},[34,126296,1607],{"class":181},[34,126298,1701],{"class":675},[34,126300,1895],{"class":580},[34,126302,4940],{"class":181},[34,126304,2424],{"class":47},[34,126306,126307],{"class":181},"(data))\n",[34,126309,126310,126312,126314,126316,126318,126320,126322,126324],{"class":36,"line":242},[34,126311,61818],{"class":181},[34,126313,30851],{"class":47},[34,126315,1607],{"class":181},[34,126317,1908],{"class":675},[34,126319,1895],{"class":580},[34,126321,4940],{"class":181},[34,126323,1908],{"class":47},[34,126325,126326],{"class":181},"(error))\n",[34,126328,126329,126331,126333,126335,126337,126339,126341,126343,126346],{"class":36,"line":250},[34,126330,61818],{"class":181},[34,126332,122585],{"class":47},[34,126334,4275],{"class":181},[34,126336,3361],{"class":580},[34,126338,4940],{"class":181},[34,126340,2424],{"class":47},[34,126342,1607],{"class":181},[34,126344,126345],{"class":54},"'Done'",[34,126347,15223],{"class":181},[34,126349,126350],{"class":36,"line":263},[34,126351,62],{"emptyLinePlaceholder":61},[34,126353,126354],{"class":36,"line":275},[34,126355,126356],{"class":40},"// Async/Await\n",[34,126358,126359,126361,126363,126366],{"class":36,"line":700},[34,126360,17403],{"class":580},[34,126362,8037],{"class":580},[34,126364,126365],{"class":47}," fetchData",[34,126367,836],{"class":181},[34,126369,126370,126373],{"class":36,"line":706},[34,126371,126372],{"class":580},"  try",[34,126374,661],{"class":181},[34,126376,126377,126379,126381,126383,126385,126387],{"class":36,"line":715},[34,126378,1632],{"class":580},[34,126380,14758],{"class":50},[34,126382,683],{"class":580},[34,126384,14763],{"class":580},[34,126386,14766],{"class":47},[34,126388,33872],{"class":181},[34,126390,126391,126393,126395,126397,126399,126401,126403],{"class":36,"line":725},[34,126392,1632],{"class":580},[34,126394,14780],{"class":50},[34,126396,683],{"class":580},[34,126398,14763],{"class":580},[34,126400,14787],{"class":181},[34,126402,14790],{"class":47},[34,126404,851],{"class":181},[34,126406,126407,126409],{"class":36,"line":734},[34,126408,1564],{"class":580},[34,126410,126411],{"class":181}," data;\n",[34,126413,126414,126417,126419],{"class":36,"line":742},[34,126415,126416],{"class":181},"  } ",[34,126418,30851],{"class":580},[34,126420,126421],{"class":181}," (error) {\n",[34,126423,126424,126426,126428],{"class":36,"line":748},[34,126425,2421],{"class":181},[34,126427,1908],{"class":47},[34,126429,126275],{"class":181},[34,126431,126432],{"class":36,"line":754},[34,126433,857],{"class":181},[34,126435,126436],{"class":36,"line":759},[34,126437,693],{"class":181},[34,126439,126440],{"class":36,"line":771},[34,126441,62],{"emptyLinePlaceholder":61},[34,126443,126444],{"class":36,"line":794},[34,126445,126446],{"class":40},"// Promise.all - parallel execution\n",[34,126448,126449,126451,126453,126455,126457,126459,126461,126463,126465,126467,126469,126471],{"class":36,"line":824},[34,126450,14676],{"class":580},[34,126452,8315],{"class":181},[34,126454,4097],{"class":50},[34,126456,1798],{"class":181},[34,126458,85499],{"class":50},[34,126460,17799],{"class":181},[34,126462,1301],{"class":580},[34,126464,14763],{"class":580},[34,126466,126237],{"class":50},[34,126468,151],{"class":181},[34,126470,17175],{"class":47},[34,126472,83346],{"class":181},[34,126474,126475,126478],{"class":36,"line":830},[34,126476,126477],{"class":47},"  fetchUsers",[34,126479,58490],{"class":181},[34,126481,126482,126485],{"class":36,"line":839},[34,126483,126484],{"class":47},"  fetchPosts",[34,126486,33899],{"class":181},[34,126488,126489],{"class":36,"line":854},[34,126490,3599],{"class":181},[388,126492,126493],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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);}",{"title":30,"searchDepth":44,"depth":44,"links":126495},[126496],{"id":126213,"depth":44,"text":126184},"Promises & Async/Await in JavaScript.",{},{"title":126184,"description":126497},"javascript/promises-asyncawait",[8606,125310,38615,982],"fO_wI-mAhxMrx_8boFbl-SvVfwpUe5YALLaJzZHXQeo",{"id":126504,"title":123574,"body":126505,"date":402,"description":126796,"extension":404,"meta":126797,"navigation":61,"order":242,"path":126197,"seo":126798,"stem":126799,"subject":8606,"tags":126800,"__hash__":126801},"topics/javascript/useful-snippets.md",{"type":8,"value":126506,"toc":126793},[126507,126509,126790],[11,126508,123574],{"id":124554},[25,126510,126512],{"className":13845,"code":126511,"language":8606,"meta":30,"style":30},"// Remove duplicates from array\nconst unique = [...new Set(array)];\n\n// Deep clone object\nconst clone = JSON.parse(JSON.stringify(obj));\n// Or using structuredClone (modern)\nconst clone = structuredClone(obj);\n\n// Generate random number in range\nconst random = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;\n\n// Debounce function\nconst debounce = (fn, delay) => {\n  let timeout;\n  return (...args) => {\n    clearTimeout(timeout);\n    timeout = setTimeout(() => fn(...args), delay);\n  };\n};\n\n// Sleep/delay\nconst sleep = ms => new Promise(resolve => setTimeout(resolve, ms));\n",[20,126513,126514,126519,126538,126542,126547,126574,126579,126593,126597,126602,126655,126659,126664,126688,126695,126712,126720,126743,126748,126752,126756,126761],{"__ignoreMap":30},[34,126515,126516],{"class":36,"line":37},[34,126517,126518],{"class":40},"// Remove duplicates from array\n",[34,126520,126521,126523,126526,126528,126530,126533,126535],{"class":36,"line":44},[34,126522,14676],{"class":580},[34,126524,126525],{"class":50}," unique",[34,126527,683],{"class":580},[34,126529,8315],{"class":181},[34,126531,126532],{"class":580},"...new",[34,126534,52372],{"class":47},[34,126536,126537],{"class":181},"(array)];\n",[34,126539,126540],{"class":36,"line":58},[34,126541,62],{"emptyLinePlaceholder":61},[34,126543,126544],{"class":36,"line":65},[34,126545,126546],{"class":40},"// Deep clone object\n",[34,126548,126549,126551,126553,126555,126558,126560,126563,126565,126567,126569,126571],{"class":36,"line":71},[34,126550,14676],{"class":580},[34,126552,7797],{"class":50},[34,126554,683],{"class":580},[34,126556,126557],{"class":50}," JSON",[34,126559,151],{"class":181},[34,126561,126562],{"class":47},"parse",[34,126564,1607],{"class":181},[34,126566,14854],{"class":50},[34,126568,151],{"class":181},[34,126570,14859],{"class":47},[34,126572,126573],{"class":181},"(obj));\n",[34,126575,126576],{"class":36,"line":77},[34,126577,126578],{"class":40},"// Or using structuredClone (modern)\n",[34,126580,126581,126583,126585,126587,126590],{"class":36,"line":82},[34,126582,14676],{"class":580},[34,126584,7797],{"class":50},[34,126586,683],{"class":580},[34,126588,126589],{"class":47}," structuredClone",[34,126591,126592],{"class":181},"(obj);\n",[34,126594,126595],{"class":36,"line":88},[34,126596,62],{"emptyLinePlaceholder":61},[34,126598,126599],{"class":36,"line":242},[34,126600,126601],{"class":40},"// Generate random number in range\n",[34,126603,126604,126606,126609,126611,126613,126616,126618,126620,126622,126624,126626,126628,126630,126632,126634,126636,126639,126641,126644,126646,126648,126650,126652],{"class":36,"line":250},[34,126605,14676],{"class":580},[34,126607,126608],{"class":47}," random",[34,126610,683],{"class":580},[34,126612,3204],{"class":181},[34,126614,126615],{"class":675},"min",[34,126617,1798],{"class":181},[34,126619,50086],{"class":675},[34,126621,4817],{"class":181},[34,126623,3361],{"class":580},[34,126625,13917],{"class":181},[34,126627,13920],{"class":47},[34,126629,13923],{"class":181},[34,126631,13926],{"class":47},[34,126633,672],{"class":181},[34,126635,4289],{"class":580},[34,126637,126638],{"class":181}," (max ",[34,126640,22062],{"class":580},[34,126642,126643],{"class":181}," min ",[34,126645,2940],{"class":580},[34,126647,3567],{"class":50},[34,126649,49706],{"class":181},[34,126651,2940],{"class":580},[34,126653,126654],{"class":181}," min;\n",[34,126656,126657],{"class":36,"line":263},[34,126658,62],{"emptyLinePlaceholder":61},[34,126660,126661],{"class":36,"line":275},[34,126662,126663],{"class":40},"// Debounce function\n",[34,126665,126666,126668,126671,126673,126675,126677,126679,126682,126684,126686],{"class":36,"line":700},[34,126667,14676],{"class":580},[34,126669,126670],{"class":47}," debounce",[34,126672,683],{"class":580},[34,126674,3204],{"class":181},[34,126676,77761],{"class":675},[34,126678,1798],{"class":181},[34,126680,126681],{"class":675},"delay",[34,126683,4817],{"class":181},[34,126685,3361],{"class":580},[34,126687,661],{"class":181},[34,126689,126690,126692],{"class":36,"line":706},[34,126691,63085],{"class":580},[34,126693,126694],{"class":181}," timeout;\n",[34,126696,126697,126699,126701,126703,126706,126708,126710],{"class":36,"line":715},[34,126698,8155],{"class":580},[34,126700,3204],{"class":181},[34,126702,16841],{"class":580},[34,126704,126705],{"class":675},"args",[34,126707,4817],{"class":181},[34,126709,3361],{"class":580},[34,126711,661],{"class":181},[34,126713,126714,126717],{"class":36,"line":725},[34,126715,126716],{"class":47},"    clearTimeout",[34,126718,126719],{"class":181},"(timeout);\n",[34,126721,126722,126725,126727,126730,126732,126734,126736,126738,126740],{"class":36,"line":734},[34,126723,126724],{"class":181},"    timeout ",[34,126726,1301],{"class":580},[34,126728,126729],{"class":47}," setTimeout",[34,126731,4275],{"class":181},[34,126733,3361],{"class":580},[34,126735,77727],{"class":47},[34,126737,1607],{"class":181},[34,126739,16841],{"class":580},[34,126741,126742],{"class":181},"args), delay);\n",[34,126744,126745],{"class":36,"line":742},[34,126746,126747],{"class":181},"  };\n",[34,126749,126750],{"class":36,"line":748},[34,126751,17632],{"class":181},[34,126753,126754],{"class":36,"line":754},[34,126755,62],{"emptyLinePlaceholder":61},[34,126757,126758],{"class":36,"line":759},[34,126759,126760],{"class":40},"// Sleep/delay\n",[34,126762,126763,126765,126768,126770,126773,126775,126777,126779,126781,126783,126785,126787],{"class":36,"line":771},[34,126764,14676],{"class":580},[34,126766,126767],{"class":47}," sleep",[34,126769,683],{"class":580},[34,126771,126772],{"class":675}," ms",[34,126774,1895],{"class":580},[34,126776,809],{"class":580},[34,126778,126237],{"class":50},[34,126780,1607],{"class":181},[34,126782,77756],{"class":675},[34,126784,1895],{"class":580},[34,126786,126729],{"class":47},[34,126788,126789],{"class":181},"(resolve, ms));\n",[388,126791,126792],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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}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":30,"searchDepth":44,"depth":44,"links":126794},[126795],{"id":124554,"depth":44,"text":123574},"Useful Snippets in JavaScript.",{},{"title":123574,"description":126796},"javascript/useful-snippets",[8606,125310,38615,982],"kqgMqhz0ELi5MTe-tiTsDbGRp77nVaPSyJi7IBD6VJg",{"id":126803,"title":12166,"body":126804,"date":402,"description":126965,"extension":404,"meta":126966,"navigation":61,"order":44,"path":126166,"seo":126967,"stem":126968,"subject":8606,"tags":126969,"__hash__":126970},"topics/javascript/variables.md",{"type":8,"value":126805,"toc":126962},[126806,126808,126959],[11,126807,12166],{"id":13314},[25,126809,126811],{"className":13845,"code":126810,"language":8606,"meta":30,"style":30},"// ES6+ variable declarations\nconst immutable = 'cannot change';\nlet mutable = 'can change';\nvar oldWay = 'avoid using'; // function scoped\n\n// Destructuring\nconst { name, age } = person;\nconst [first, second, ...rest] = array;\n\n// Spread operator\nconst newArray = [...oldArray, newItem];\nconst newObject = { ...oldObject, newProp: value };\n",[20,126812,126813,126818,126832,126846,126863,126867,126872,126891,126918,126922,126927,126943],{"__ignoreMap":30},[34,126814,126815],{"class":36,"line":37},[34,126816,126817],{"class":40},"// ES6+ variable declarations\n",[34,126819,126820,126822,126825,126827,126830],{"class":36,"line":44},[34,126821,14676],{"class":580},[34,126823,126824],{"class":50}," immutable",[34,126826,683],{"class":580},[34,126828,126829],{"class":54}," 'cannot change'",[34,126831,593],{"class":181},[34,126833,126834,126836,126839,126841,126844],{"class":36,"line":58},[34,126835,8268],{"class":580},[34,126837,126838],{"class":181}," mutable ",[34,126840,1301],{"class":580},[34,126842,126843],{"class":54}," 'can change'",[34,126845,593],{"class":181},[34,126847,126848,126850,126853,126855,126858,126860],{"class":36,"line":65},[34,126849,34404],{"class":580},[34,126851,126852],{"class":181}," oldWay ",[34,126854,1301],{"class":580},[34,126856,126857],{"class":54}," 'avoid using'",[34,126859,10268],{"class":181},[34,126861,126862],{"class":40},"// function scoped\n",[34,126864,126865],{"class":36,"line":71},[34,126866,62],{"emptyLinePlaceholder":61},[34,126868,126869],{"class":36,"line":77},[34,126870,126871],{"class":40},"// Destructuring\n",[34,126873,126874,126876,126878,126880,126882,126884,126886,126888],{"class":36,"line":82},[34,126875,14676],{"class":580},[34,126877,30251],{"class":181},[34,126879,178],{"class":50},[34,126881,1798],{"class":181},[34,126883,13337],{"class":50},[34,126885,34865],{"class":181},[34,126887,1301],{"class":580},[34,126889,126890],{"class":181}," person;\n",[34,126892,126893,126895,126897,126900,126902,126905,126907,126909,126911,126913,126915],{"class":36,"line":88},[34,126894,14676],{"class":580},[34,126896,8315],{"class":181},[34,126898,126899],{"class":50},"first",[34,126901,1798],{"class":181},[34,126903,126904],{"class":50},"second",[34,126906,1798],{"class":181},[34,126908,16841],{"class":580},[34,126910,78041],{"class":50},[34,126912,17799],{"class":181},[34,126914,1301],{"class":580},[34,126916,126917],{"class":181}," array;\n",[34,126919,126920],{"class":36,"line":242},[34,126921,62],{"emptyLinePlaceholder":61},[34,126923,126924],{"class":36,"line":250},[34,126925,126926],{"class":40},"// Spread operator\n",[34,126928,126929,126931,126934,126936,126938,126940],{"class":36,"line":263},[34,126930,14676],{"class":580},[34,126932,126933],{"class":50}," newArray",[34,126935,683],{"class":580},[34,126937,8315],{"class":181},[34,126939,16841],{"class":580},[34,126941,126942],{"class":181},"oldArray, newItem];\n",[34,126944,126945,126947,126950,126952,126954,126956],{"class":36,"line":275},[34,126946,14676],{"class":580},[34,126948,126949],{"class":50}," newObject",[34,126951,683],{"class":580},[34,126953,30251],{"class":181},[34,126955,16841],{"class":580},[34,126957,126958],{"class":181},"oldObject, newProp: value };\n",[388,126960,126961],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .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":30,"searchDepth":44,"depth":44,"links":126963},[126964],{"id":13314,"depth":44,"text":12166},"Variables in JavaScript.",{},{"title":12166,"description":126965},"javascript/variables",[8606,125310,38615,982],"e3po1-4LovkIEsJjgeQ4YPKSjjuzDf7WNABqBfmYxlQ",{"id":126972,"title":126973,"body":126974,"date":402,"description":127270,"extension":404,"meta":127271,"navigation":61,"order":37,"path":127272,"seo":127273,"stem":127274,"subject":127053,"tags":127275,"__hash__":127277},"topics/jest/overview.md","Jest",{"type":8,"value":126975,"toc":127263},[126976,126978,126981,126983,127023,127025,127057,127061,127190,127195,127199,127260],[11,126977,14],{"id":13},[16,126979,126980],{},"Jest is a JavaScript testing framework maintained by Meta. It is designed for simplicity and support for features like snapshots, mocking, and straightforward assertions.",[11,126982,97],{"id":96},[25,126984,126986],{"className":27,"code":126985,"language":29,"meta":30,"style":30},"# Install Jest globally\nnpm install -g jest\n\n# Install locally to your project\nnpm install --save-dev jest\n",[20,126987,126988,126993,127004,127008,127013],{"__ignoreMap":30},[34,126989,126990],{"class":36,"line":37},[34,126991,126992],{"class":40},"# Install Jest globally\n",[34,126994,126995,126997,126999,127001],{"class":36,"line":44},[34,126996,8177],{"class":47},[34,126998,118],{"class":54},[34,127000,9753],{"class":50},[34,127002,127003],{"class":54}," jest\n",[34,127005,127006],{"class":36,"line":58},[34,127007,62],{"emptyLinePlaceholder":61},[34,127009,127010],{"class":36,"line":65},[34,127011,127012],{"class":40},"# Install locally to your project\n",[34,127014,127015,127017,127019,127021],{"class":36,"line":71},[34,127016,8177],{"class":47},[34,127018,118],{"class":54},[34,127020,29537],{"class":50},[34,127022,127003],{"class":54},[11,127024,89702],{"id":89701},[25,127026,127028],{"className":27,"code":127027,"language":29,"meta":30,"style":30},"# Run all tests in the project\njest\n\n# Run a specific test suite or file\njest my-test-file.spec.js\n",[20,127029,127030,127035,127040,127044,127049],{"__ignoreMap":30},[34,127031,127032],{"class":36,"line":37},[34,127033,127034],{"class":40},"# Run all tests in the project\n",[34,127036,127037],{"class":36,"line":44},[34,127038,127039],{"class":47},"jest\n",[34,127041,127042],{"class":36,"line":58},[34,127043,62],{"emptyLinePlaceholder":61},[34,127045,127046],{"class":36,"line":65},[34,127047,127048],{"class":40},"# Run a specific test suite or file\n",[34,127050,127051,127054],{"class":36,"line":71},[34,127052,127053],{"class":47},"jest",[34,127055,127056],{"class":54}," my-test-file.spec.js\n",[11,127058,127060],{"id":127059},"writing-your-first-test","Writing Your First Test",[25,127062,127064],{"className":13845,"code":127063,"language":8606,"meta":30,"style":30},"// sum.js\nfunction sum(a, b) {\n    return a + b;\n}\nmodule.exports = sum;\n\n// sum.test.js\nconst sum = require('./sum');\n\ntest('adds 1 + 2 to equal 3', () => {\n    expect(sum(1, 2)).toBe(3);\n});\n",[20,127065,127066,127071,127087,127097,127101,127114,127118,127123,127140,127144,127159,127186],{"__ignoreMap":30},[34,127067,127068],{"class":36,"line":37},[34,127069,127070],{"class":40},"// sum.js\n",[34,127072,127073,127075,127077,127079,127081,127083,127085],{"class":36,"line":44},[34,127074,11044],{"class":580},[34,127076,65446],{"class":47},[34,127078,1607],{"class":181},[34,127080,145],{"class":675},[34,127082,1798],{"class":181},[34,127084,8355],{"class":675},[34,127086,2416],{"class":181},[34,127088,127089,127091,127093,127095],{"class":36,"line":58},[34,127090,1564],{"class":580},[34,127092,8065],{"class":181},[34,127094,2940],{"class":580},[34,127096,8123],{"class":181},[34,127098,127099],{"class":36,"line":65},[34,127100,693],{"class":181},[34,127102,127103,127105,127107,127109,127111],{"class":36,"line":71},[34,127104,46312],{"class":50},[34,127106,151],{"class":181},[34,127108,46317],{"class":50},[34,127110,683],{"class":580},[34,127112,127113],{"class":181}," sum;\n",[34,127115,127116],{"class":36,"line":77},[34,127117,62],{"emptyLinePlaceholder":61},[34,127119,127120],{"class":36,"line":82},[34,127121,127122],{"class":40},"// sum.test.js\n",[34,127124,127125,127127,127129,127131,127133,127135,127138],{"class":36,"line":88},[34,127126,14676],{"class":580},[34,127128,65446],{"class":50},[34,127130,683],{"class":580},[34,127132,111491],{"class":47},[34,127134,1607],{"class":181},[34,127136,127137],{"class":54},"'./sum'",[34,127139,1586],{"class":181},[34,127141,127142],{"class":36,"line":242},[34,127143,62],{"emptyLinePlaceholder":61},[34,127145,127146,127148,127150,127153,127155,127157],{"class":36,"line":250},[34,127147,14618],{"class":47},[34,127149,1607],{"class":181},[34,127151,127152],{"class":54},"'adds 1 + 2 to equal 3'",[34,127154,17258],{"class":181},[34,127156,3361],{"class":580},[34,127158,661],{"class":181},[34,127160,127161,127163,127165,127167,127169,127171,127173,127175,127178,127180,127182,127184],{"class":36,"line":263},[34,127162,17355],{"class":47},[34,127164,1607],{"class":181},[34,127166,11135],{"class":47},[34,127168,1607],{"class":181},[34,127170,8318],{"class":50},[34,127172,1798],{"class":181},[34,127174,8324],{"class":50},[34,127176,127177],{"class":181},")).",[34,127179,17280],{"class":47},[34,127181,1607],{"class":181},[34,127183,3162],{"class":50},[34,127185,1586],{"class":181},[34,127187,127188],{"class":36,"line":275},[34,127189,14873],{"class":181},[16,127191,127192],{},[8563,127193,127194],{},"inline_comments",[11,127196,127198],{"id":127197},"snapshots","Snapshots",[25,127200,127202],{"className":13845,"code":127201,"language":8606,"meta":30,"style":30},"// Example of snapshot testing\ntest('snapshot example', () => {\n    const tree = render(\u003CComponent />);\n    expect(tree).toMatchSnapshot();\n});\n",[20,127203,127204,127209,127224,127244,127256],{"__ignoreMap":30},[34,127205,127206],{"class":36,"line":37},[34,127207,127208],{"class":40},"// Example of snapshot testing\n",[34,127210,127211,127213,127215,127218,127220,127222],{"class":36,"line":44},[34,127212,14618],{"class":47},[34,127214,1607],{"class":181},[34,127216,127217],{"class":54},"'snapshot example'",[34,127219,17258],{"class":181},[34,127221,3361],{"class":580},[34,127223,661],{"class":181},[34,127225,127226,127228,127231,127233,127236,127239,127241],{"class":36,"line":58},[34,127227,1632],{"class":580},[34,127229,127230],{"class":50}," tree",[34,127232,683],{"class":580},[34,127234,127235],{"class":47}," render",[34,127237,127238],{"class":181},"(\u003C",[34,127240,610],{"class":50},[34,127242,127243],{"class":181}," />);\n",[34,127245,127246,127248,127251,127254],{"class":36,"line":65},[34,127247,17355],{"class":47},[34,127249,127250],{"class":181},"(tree).",[34,127252,127253],{"class":47},"toMatchSnapshot",[34,127255,851],{"class":181},[34,127257,127258],{"class":36,"line":71},[34,127259,14873],{"class":181},[388,127261,127262],{},"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 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);}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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":30,"searchDepth":44,"depth":44,"links":127264},[127265,127266,127267,127268,127269],{"id":13,"depth":44,"text":14},{"id":96,"depth":44,"text":97},{"id":89701,"depth":44,"text":89702},{"id":127059,"depth":44,"text":127060},{"id":127197,"depth":44,"text":127198},"Quick reference to Jest, a delightful testing framework for JavaScript codebases.",{},"/jest/overview",{"title":126973,"description":127270},"jest/overview",[127053,16094,8606,127276],"mocking","QSwj-RMSJylfxQNhzoJIW6PJ-0yFfJKTmHRPzNgoL7M",{"id":127279,"title":127280,"body":127281,"date":402,"description":127353,"extension":404,"meta":127354,"navigation":61,"order":37,"path":127355,"seo":127356,"stem":127357,"subject":127358,"tags":127359,"__hash__":127361},"topics/jotai/overview.md","Jotai",{"type":8,"value":127282,"toc":127350},[127283,127285,127288,127348],[11,127284,14],{"id":13},[16,127286,127287],{},"Jotai provides a minimal and flexible API for managing application state in React. Instead of relying on large centralized stores, Jotai focuses on atoms—small, composable pieces of state.",[25,127289,127291],{"className":13845,"code":127290,"language":8606,"meta":30,"style":30},"import { atom, useAtom } from 'jotai';\n\nconst countAtom = atom(0);\nconst useCount = () => useAtom(countAtom);\n",[20,127292,127293,127307,127311,127329],{"__ignoreMap":30},[34,127294,127295,127297,127300,127302,127305],{"class":36,"line":37},[34,127296,581],{"class":580},[34,127298,127299],{"class":181}," { atom, useAtom } ",[34,127301,587],{"class":580},[34,127303,127304],{"class":54}," 'jotai'",[34,127306,593],{"class":181},[34,127308,127309],{"class":36,"line":44},[34,127310,62],{"emptyLinePlaceholder":61},[34,127312,127313,127315,127318,127320,127323,127325,127327],{"class":36,"line":58},[34,127314,14676],{"class":580},[34,127316,127317],{"class":50}," countAtom",[34,127319,683],{"class":580},[34,127321,127322],{"class":47}," atom",[34,127324,1607],{"class":181},[34,127326,2773],{"class":50},[34,127328,1586],{"class":181},[34,127330,127331,127333,127336,127338,127340,127342,127345],{"class":36,"line":65},[34,127332,14676],{"class":580},[34,127334,127335],{"class":47}," useCount",[34,127337,683],{"class":580},[34,127339,17406],{"class":181},[34,127341,3361],{"class":580},[34,127343,127344],{"class":47}," useAtom",[34,127346,127347],{"class":181},"(countAtom);\n",[388,127349,58711],{},{"title":30,"searchDepth":44,"depth":44,"links":127351},[127352],{"id":13,"depth":44,"text":14},"A concise graphical state management solution built for React applications.",{},"/jotai/overview",{"title":127280,"description":127353},"jotai/overview","jotai",[86172,127360,127358],"state-management","DYayJ__brRc2F8xz1THXfp-Jj0Xg-j6i-fzLSBQ1XIY",{"id":127363,"title":127364,"body":127365,"date":402,"description":127587,"extension":404,"meta":127588,"navigation":61,"order":37,"path":127589,"seo":127590,"stem":127591,"subject":127385,"tags":127592,"__hash__":127595},"topics/jq/overview.md","jq Cheat Sheet",{"type":8,"value":127366,"toc":127576},[127367,127369,127372,127376,127397,127401,127420,127424,127443,127445,127478,127482,127501,127505,127524,127528,127552,127556,127573],[11,127368,13534],{"id":13533},[16,127370,127371],{},"jq is a command-line utility designed for handling JSON data. With built-in filters and the ability to create pipelines, it becomes a powerful tool to parse, filter, map, and transform JSON.",[11,127373,127375],{"id":127374},"json-pretty-print","JSON Pretty Print",[25,127377,127379],{"className":15902,"code":127378,"language":15904,"meta":30,"style":30},"jq '.' input.json\n# Outputs JSON in an indented, human-readable form.\n",[20,127380,127381,127392],{"__ignoreMap":30},[34,127382,127383,127386,127389],{"class":36,"line":37},[34,127384,127385],{"class":47},"jq",[34,127387,127388],{"class":54}," '.'",[34,127390,127391],{"class":54}," input.json\n",[34,127393,127394],{"class":36,"line":44},[34,127395,127396],{"class":40},"# Outputs JSON in an indented, human-readable form.\n",[11,127398,127400],{"id":127399},"extracting-fields","Extracting Fields",[25,127402,127404],{"className":15902,"code":127403,"language":15904,"meta":30,"style":30},"jq '.fieldName' input.json\n# Outputs the \"fieldName\" key from the JSON objects.\n",[20,127405,127406,127415],{"__ignoreMap":30},[34,127407,127408,127410,127413],{"class":36,"line":37},[34,127409,127385],{"class":47},[34,127411,127412],{"class":54}," '.fieldName'",[34,127414,127391],{"class":54},[34,127416,127417],{"class":36,"line":44},[34,127418,127419],{"class":40},"# Outputs the \"fieldName\" key from the JSON objects.\n",[11,127421,127423],{"id":127422},"using-filters-to-traverse-data","Using Filters to Traverse Data",[25,127425,127427],{"className":15902,"code":127426,"language":15904,"meta":30,"style":30},"jq '.field1.field2' input.json\n# Traverse nested objects.\n",[20,127428,127429,127438],{"__ignoreMap":30},[34,127430,127431,127433,127436],{"class":36,"line":37},[34,127432,127385],{"class":47},[34,127434,127435],{"class":54}," '.field1.field2'",[34,127437,127391],{"class":54},[34,127439,127440],{"class":36,"line":44},[34,127441,127442],{"class":40},"# Traverse nested objects.\n",[11,127444,87539],{"id":87538},[25,127446,127448],{"className":15902,"code":127447,"language":15904,"meta":30,"style":30},"jq '.array[0]' input.json\n# Access the first element in the array.\njq '.array[]' input.json\n# Iterate through all array elements.\n",[20,127449,127450,127459,127464,127473],{"__ignoreMap":30},[34,127451,127452,127454,127457],{"class":36,"line":37},[34,127453,127385],{"class":47},[34,127455,127456],{"class":54}," '.array[0]'",[34,127458,127391],{"class":54},[34,127460,127461],{"class":36,"line":44},[34,127462,127463],{"class":40},"# Access the first element in the array.\n",[34,127465,127466,127468,127471],{"class":36,"line":58},[34,127467,127385],{"class":47},[34,127469,127470],{"class":54}," '.array[]'",[34,127472,127391],{"class":54},[34,127474,127475],{"class":36,"line":65},[34,127476,127477],{"class":40},"# Iterate through all array elements.\n",[11,127479,127481],{"id":127480},"combining-queries","Combining Queries",[25,127483,127485],{"className":15902,"code":127484,"language":15904,"meta":30,"style":30},"jq '.field1, .field2' input.json\n# Extracts field1 and field2.\n",[20,127486,127487,127496],{"__ignoreMap":30},[34,127488,127489,127491,127494],{"class":36,"line":37},[34,127490,127385],{"class":47},[34,127492,127493],{"class":54}," '.field1, .field2'",[34,127495,127391],{"class":54},[34,127497,127498],{"class":36,"line":44},[34,127499,127500],{"class":40},"# Extracts field1 and field2.\n",[11,127502,127504],{"id":127503},"creating-json-on-the-fly","Creating JSON on the Fly",[25,127506,127508],{"className":15902,"code":127507,"language":15904,"meta":30,"style":30},"jq -n '{\"newField\": \"Hello World\"}'\n# Produces a JSON structure with the new key 'newField'.\n",[20,127509,127510,127519],{"__ignoreMap":30},[34,127511,127512,127514,127516],{"class":36,"line":37},[34,127513,127385],{"class":47},[34,127515,7093],{"class":50},[34,127517,127518],{"class":54}," '{\"newField\": \"Hello World\"}'\n",[34,127520,127521],{"class":36,"line":44},[34,127522,127523],{"class":40},"# Produces a JSON structure with the new key 'newField'.\n",[11,127525,127527],{"id":127526},"piping-commands-together","Piping Commands Together",[25,127529,127531],{"className":15902,"code":127530,"language":15904,"meta":30,"style":30},"cat input.json | jq '.users[] | {name: .name, age: .age}'\n# Process captured JSON and only emit part of each user-object.\n",[20,127532,127533,127547],{"__ignoreMap":30},[34,127534,127535,127537,127540,127542,127544],{"class":36,"line":37},[34,127536,11449],{"class":47},[34,127538,127539],{"class":54}," input.json",[34,127541,7197],{"class":580},[34,127543,43393],{"class":47},[34,127545,127546],{"class":54}," '.users[] | {name: .name, age: .age}'\n",[34,127548,127549],{"class":36,"line":44},[34,127550,127551],{"class":40},"# Process captured JSON and only emit part of each user-object.\n",[11,127553,127555],{"id":127554},"slicing-arrays","Slicing Arrays",[25,127557,127559],{"className":15902,"code":127558,"language":15904,"meta":30,"style":30},"jq '.logs[5:15'] ']'};\n",[20,127560,127561],{"__ignoreMap":30},[34,127562,127563,127565,127568,127571],{"class":36,"line":37},[34,127564,127385],{"class":47},[34,127566,127567],{"class":54}," '.logs[5:15']",[34,127569,127570],{"class":54}," ']'}",[34,127572,593],{"class":181},[388,127574,127575],{},"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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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}",{"title":30,"searchDepth":44,"depth":44,"links":127577},[127578,127579,127580,127581,127582,127583,127584,127585,127586],{"id":13533,"depth":44,"text":13534},{"id":127374,"depth":44,"text":127375},{"id":127399,"depth":44,"text":127400},{"id":127422,"depth":44,"text":127423},{"id":87538,"depth":44,"text":87539},{"id":127480,"depth":44,"text":127481},{"id":127503,"depth":44,"text":127504},{"id":127526,"depth":44,"text":127527},{"id":127554,"depth":44,"text":127555},"Concise reference for jq, a lightweight and flexible JSON processor.",{},"/jq/overview",{"title":127364,"description":127587},"jq/overview",[127385,14854,127593,127594],"CLI","data-parsing","aYd4VRkRjtdZSjCPgJJ6sHMoEUFKmj_jpN8EKiT3S2o",{"id":127597,"title":10061,"body":127598,"date":402,"description":127740,"extension":404,"meta":127741,"navigation":61,"order":71,"path":127742,"seo":127743,"stem":127744,"subject":14790,"tags":127745,"__hash__":127747},"topics/json/arrays.md",{"type":8,"value":127599,"toc":127737},[127600,127602,127735],[11,127601,10061],{"id":10066},[25,127603,127605],{"className":28058,"code":127604,"language":14790,"meta":30,"style":30},"{\n  \"users\": [\n    {\"id\": 1, \"name\": \"Alice\"},\n    {\"id\": 2, \"name\": \"Bob\"},\n    {\"id\": 3, \"name\": \"Charlie\"}\n  ],\n  \"tags\": [\"javascript\", \"json\", \"api\"],\n  \"matrix\": [[1, 2], [3, 4]]\n}\n",[20,127606,127607,127611,127618,127638,127658,127678,127683,127705,127731],{"__ignoreMap":30},[34,127608,127609],{"class":36,"line":37},[34,127610,25296],{"class":181},[34,127612,127613,127616],{"class":36,"line":44},[34,127614,127615],{"class":50},"  \"users\"",[34,127617,28102],{"class":181},[34,127619,127620,127622,127624,127626,127628,127630,127632,127634,127636],{"class":36,"line":58},[34,127621,17990],{"class":181},[34,127623,58482],{"class":50},[34,127625,182],{"class":181},[34,127627,8318],{"class":50},[34,127629,1798],{"class":181},[34,127631,4650],{"class":50},[34,127633,182],{"class":181},[34,127635,21650],{"class":54},[34,127637,18003],{"class":181},[34,127639,127640,127642,127644,127646,127648,127650,127652,127654,127656],{"class":36,"line":65},[34,127641,17990],{"class":181},[34,127643,58482],{"class":50},[34,127645,182],{"class":181},[34,127647,8324],{"class":50},[34,127649,1798],{"class":181},[34,127651,4650],{"class":50},[34,127653,182],{"class":181},[34,127655,30344],{"class":54},[34,127657,18003],{"class":181},[34,127659,127660,127662,127664,127666,127668,127670,127672,127674,127676],{"class":36,"line":71},[34,127661,17990],{"class":181},[34,127663,58482],{"class":50},[34,127665,182],{"class":181},[34,127667,3162],{"class":50},[34,127669,1798],{"class":181},[34,127671,4650],{"class":50},[34,127673,182],{"class":181},[34,127675,33460],{"class":54},[34,127677,693],{"class":181},[34,127679,127680],{"class":36,"line":77},[34,127681,127682],{"class":181},"  ],\n",[34,127684,127685,127688,127690,127693,127695,127698,127700,127703],{"class":36,"line":82},[34,127686,127687],{"class":50},"  \"tags\"",[34,127689,47204],{"class":181},[34,127691,127692],{"class":54},"\"javascript\"",[34,127694,1798],{"class":181},[34,127696,127697],{"class":54},"\"json\"",[34,127699,1798],{"class":181},[34,127701,127702],{"class":54},"\"api\"",[34,127704,46332],{"class":181},[34,127706,127707,127710,127713,127715,127717,127719,127722,127724,127726,127728],{"class":36,"line":88},[34,127708,127709],{"class":50},"  \"matrix\"",[34,127711,127712],{"class":181},": [[",[34,127714,8318],{"class":50},[34,127716,1798],{"class":181},[34,127718,8324],{"class":50},[34,127720,127721],{"class":181},"], [",[34,127723,3162],{"class":50},[34,127725,1798],{"class":181},[34,127727,18010],{"class":50},[34,127729,127730],{"class":181},"]]\n",[34,127732,127733],{"class":36,"line":242},[34,127734,693],{"class":181},[388,127736,47224],{},{"title":30,"searchDepth":44,"depth":44,"links":127738},[127739],{"id":10066,"depth":44,"text":10061},"Arrays in JSON.",{},"/json/arrays",{"title":10061,"description":127740},"json/arrays",[14790,108614,127746,1701,43044,38615],"json5","DpWUmDo2uMmUSS0rq6L_Yrw2egDw8CoLs8WaZlYv4iw",{"id":127749,"title":33160,"body":127750,"date":402,"description":127855,"extension":404,"meta":127856,"navigation":61,"order":44,"path":127857,"seo":127858,"stem":127859,"subject":14790,"tags":127860,"__hash__":127861},"topics/json/basic-syntax.md",{"type":8,"value":127751,"toc":127852},[127752,127754,127850],[11,127753,33160],{"id":33159},[25,127755,127757],{"className":28058,"code":127756,"language":14790,"meta":30,"style":30},"{\n  \"key\": \"value\",\n  \"number\": 42,\n  \"boolean\": true,\n  \"null\": null,\n  \"array\": [1, 2, 3],\n  \"object\": {\n    \"nested\": \"value\"\n  }\n}\n",[20,127758,127759,127763,127774,127785,127796,127807,127826,127833,127842,127846],{"__ignoreMap":30},[34,127760,127761],{"class":36,"line":37},[34,127762,25296],{"class":181},[34,127764,127765,127768,127770,127772],{"class":36,"line":44},[34,127766,127767],{"class":50},"  \"key\"",[34,127769,182],{"class":181},[34,127771,16847],{"class":54},[34,127773,624],{"class":181},[34,127775,127776,127779,127781,127783],{"class":36,"line":58},[34,127777,127778],{"class":50},"  \"number\"",[34,127780,182],{"class":181},[34,127782,8257],{"class":50},[34,127784,624],{"class":181},[34,127786,127787,127790,127792,127794],{"class":36,"line":65},[34,127788,127789],{"class":50},"  \"boolean\"",[34,127791,182],{"class":181},[34,127793,632],{"class":50},[34,127795,624],{"class":181},[34,127797,127798,127801,127803,127805],{"class":36,"line":71},[34,127799,127800],{"class":50},"  \"null\"",[34,127802,182],{"class":181},[34,127804,111592],{"class":50},[34,127806,624],{"class":181},[34,127808,127809,127812,127814,127816,127818,127820,127822,127824],{"class":36,"line":77},[34,127810,127811],{"class":50},"  \"array\"",[34,127813,47204],{"class":181},[34,127815,8318],{"class":50},[34,127817,1798],{"class":181},[34,127819,8324],{"class":50},[34,127821,1798],{"class":181},[34,127823,3162],{"class":50},[34,127825,46332],{"class":181},[34,127827,127828,127831],{"class":36,"line":82},[34,127829,127830],{"class":50},"  \"object\"",[34,127832,28073],{"class":181},[34,127834,127835,127838,127840],{"class":36,"line":88},[34,127836,127837],{"class":50},"    \"nested\"",[34,127839,182],{"class":181},[34,127841,13449],{"class":54},[34,127843,127844],{"class":36,"line":242},[34,127845,857],{"class":181},[34,127847,127848],{"class":36,"line":250},[34,127849,693],{"class":181},[388,127851,47224],{},{"title":30,"searchDepth":44,"depth":44,"links":127853},[127854],{"id":33159,"depth":44,"text":33160},"Basic Syntax in JSON.",{},"/json/basic-syntax",{"title":33160,"description":127855},"json/basic-syntax",[14790,108614,127746,1701,43044,38615],"1MjWGSYwECOfKNLtCNS9Ek69Erk7vW0f_tvVjClOOrE",{"id":127863,"title":5595,"body":127864,"date":402,"description":127943,"extension":404,"meta":127944,"navigation":61,"order":88,"path":127945,"seo":127946,"stem":127947,"subject":14790,"tags":127948,"__hash__":127949},"topics/json/best-practices.md",{"type":8,"value":127865,"toc":127940},[127866,127868,127938],[11,127867,5595],{"id":5600},[25,127869,127871],{"className":28058,"code":127870,"language":14790,"meta":30,"style":30},"{\n  \"goodPractices\": {\n    \"useDoubleQuotes\": \"Always use double quotes for strings\",\n    \"noTrailingCommas\": \"Last item should not have a comma\",\n    \"consistentNaming\": \"use_snake_case or camelCase consistently\",\n    \"avoidComments\": \"JSON doesn't support comments\"\n  }\n}\n",[20,127872,127873,127877,127884,127896,127908,127920,127930,127934],{"__ignoreMap":30},[34,127874,127875],{"class":36,"line":37},[34,127876,25296],{"class":181},[34,127878,127879,127882],{"class":36,"line":44},[34,127880,127881],{"class":50},"  \"goodPractices\"",[34,127883,28073],{"class":181},[34,127885,127886,127889,127891,127894],{"class":36,"line":58},[34,127887,127888],{"class":50},"    \"useDoubleQuotes\"",[34,127890,182],{"class":181},[34,127892,127893],{"class":54},"\"Always use double quotes for strings\"",[34,127895,624],{"class":181},[34,127897,127898,127901,127903,127906],{"class":36,"line":65},[34,127899,127900],{"class":50},"    \"noTrailingCommas\"",[34,127902,182],{"class":181},[34,127904,127905],{"class":54},"\"Last item should not have a comma\"",[34,127907,624],{"class":181},[34,127909,127910,127913,127915,127918],{"class":36,"line":71},[34,127911,127912],{"class":50},"    \"consistentNaming\"",[34,127914,182],{"class":181},[34,127916,127917],{"class":54},"\"use_snake_case or camelCase consistently\"",[34,127919,624],{"class":181},[34,127921,127922,127925,127927],{"class":36,"line":77},[34,127923,127924],{"class":50},"    \"avoidComments\"",[34,127926,182],{"class":181},[34,127928,127929],{"class":54},"\"JSON doesn't support comments\"\n",[34,127931,127932],{"class":36,"line":82},[34,127933,857],{"class":181},[34,127935,127936],{"class":36,"line":88},[34,127937,693],{"class":181},[388,127939,47224],{},{"title":30,"searchDepth":44,"depth":44,"links":127941},[127942],{"id":5600,"depth":44,"text":5595},"Best Practices in JSON.",{},"/json/best-practices",{"title":5595,"description":127943},"json/best-practices",[14790,108614,127746,1701,43044,38615],"7qI7vpPB0TdsV_IoU1fs74Pt1mdb4aczJMe8Z3lSyYQ",{"id":127951,"title":18143,"body":127952,"date":402,"description":128307,"extension":404,"meta":128308,"navigation":61,"order":82,"path":128309,"seo":128310,"stem":128311,"subject":14790,"tags":128312,"__hash__":128313},"topics/json/common-patterns.md",{"type":8,"value":127953,"toc":128300},[127954,127956,127960,128092,128094,128226,128230,128298],[11,127955,18143],{"id":18148},[102,127957,127959],{"id":127958},"api-response","API Response",[25,127961,127963],{"className":28058,"code":127962,"language":14790,"meta":30,"style":30},"{\n  \"status\": \"success\",\n  \"data\": {\n    \"users\": [\n      {\"id\": 1, \"name\": \"Alice\"},\n      {\"id\": 2, \"name\": \"Bob\"}\n    ]\n  },\n  \"meta\": {\n    \"total\": 2,\n    \"page\": 1,\n    \"perPage\": 10\n  }\n}\n",[20,127964,127965,127969,127981,127988,127995,128016,128036,128041,128045,128052,128063,128074,128084,128088],{"__ignoreMap":30},[34,127966,127967],{"class":36,"line":37},[34,127968,25296],{"class":181},[34,127970,127971,127974,127976,127979],{"class":36,"line":44},[34,127972,127973],{"class":50},"  \"status\"",[34,127975,182],{"class":181},[34,127977,127978],{"class":54},"\"success\"",[34,127980,624],{"class":181},[34,127982,127983,127986],{"class":36,"line":58},[34,127984,127985],{"class":50},"  \"data\"",[34,127987,28073],{"class":181},[34,127989,127990,127993],{"class":36,"line":65},[34,127991,127992],{"class":50},"    \"users\"",[34,127994,28102],{"class":181},[34,127996,127997,128000,128002,128004,128006,128008,128010,128012,128014],{"class":36,"line":71},[34,127998,127999],{"class":181},"      {",[34,128001,58482],{"class":50},[34,128003,182],{"class":181},[34,128005,8318],{"class":50},[34,128007,1798],{"class":181},[34,128009,4650],{"class":50},[34,128011,182],{"class":181},[34,128013,21650],{"class":54},[34,128015,18003],{"class":181},[34,128017,128018,128020,128022,128024,128026,128028,128030,128032,128034],{"class":36,"line":77},[34,128019,127999],{"class":181},[34,128021,58482],{"class":50},[34,128023,182],{"class":181},[34,128025,8324],{"class":50},[34,128027,1798],{"class":181},[34,128029,4650],{"class":50},[34,128031,182],{"class":181},[34,128033,30344],{"class":54},[34,128035,693],{"class":181},[34,128037,128038],{"class":36,"line":82},[34,128039,128040],{"class":181},"    ]\n",[34,128042,128043],{"class":36,"line":88},[34,128044,3400],{"class":181},[34,128046,128047,128050],{"class":36,"line":242},[34,128048,128049],{"class":50},"  \"meta\"",[34,128051,28073],{"class":181},[34,128053,128054,128057,128059,128061],{"class":36,"line":250},[34,128055,128056],{"class":50},"    \"total\"",[34,128058,182],{"class":181},[34,128060,8324],{"class":50},[34,128062,624],{"class":181},[34,128064,128065,128068,128070,128072],{"class":36,"line":263},[34,128066,128067],{"class":50},"    \"page\"",[34,128069,182],{"class":181},[34,128071,8318],{"class":50},[34,128073,624],{"class":181},[34,128075,128076,128079,128081],{"class":36,"line":275},[34,128077,128078],{"class":50},"    \"perPage\"",[34,128080,182],{"class":181},[34,128082,128083],{"class":50},"10\n",[34,128085,128086],{"class":36,"line":700},[34,128087,857],{"class":181},[34,128089,128090],{"class":36,"line":706},[34,128091,693],{"class":181},[102,128093,466],{"id":465},[25,128095,128097],{"className":28058,"code":128096,"language":14790,"meta":30,"style":30},"{\n  \"app\": {\n    \"name\": \"MyApp\",\n    \"version\": \"1.0.0\",\n    \"port\": 3000\n  },\n  \"database\": {\n    \"host\": \"localhost\",\n    \"port\": 5432,\n    \"name\": \"mydb\"\n  },\n  \"features\": {\n    \"auth\": true,\n    \"cache\": false\n  }\n}\n",[20,128098,128099,128103,128110,128122,128134,128144,128148,128155,128167,128178,128187,128191,128198,128209,128218,128222],{"__ignoreMap":30},[34,128100,128101],{"class":36,"line":37},[34,128102,25296],{"class":181},[34,128104,128105,128108],{"class":36,"line":44},[34,128106,128107],{"class":50},"  \"app\"",[34,128109,28073],{"class":181},[34,128111,128112,128115,128117,128120],{"class":36,"line":58},[34,128113,128114],{"class":50},"    \"name\"",[34,128116,182],{"class":181},[34,128118,128119],{"class":54},"\"MyApp\"",[34,128121,624],{"class":181},[34,128123,128124,128127,128129,128132],{"class":36,"line":65},[34,128125,128126],{"class":50},"    \"version\"",[34,128128,182],{"class":181},[34,128130,128131],{"class":54},"\"1.0.0\"",[34,128133,624],{"class":181},[34,128135,128136,128139,128141],{"class":36,"line":71},[34,128137,128138],{"class":50},"    \"port\"",[34,128140,182],{"class":181},[34,128142,128143],{"class":50},"3000\n",[34,128145,128146],{"class":36,"line":77},[34,128147,3400],{"class":181},[34,128149,128150,128153],{"class":36,"line":82},[34,128151,128152],{"class":50},"  \"database\"",[34,128154,28073],{"class":181},[34,128156,128157,128160,128162,128165],{"class":36,"line":88},[34,128158,128159],{"class":50},"    \"host\"",[34,128161,182],{"class":181},[34,128163,128164],{"class":54},"\"localhost\"",[34,128166,624],{"class":181},[34,128168,128169,128171,128173,128176],{"class":36,"line":242},[34,128170,128138],{"class":50},[34,128172,182],{"class":181},[34,128174,128175],{"class":50},"5432",[34,128177,624],{"class":181},[34,128179,128180,128182,128184],{"class":36,"line":250},[34,128181,128114],{"class":50},[34,128183,182],{"class":181},[34,128185,128186],{"class":54},"\"mydb\"\n",[34,128188,128189],{"class":36,"line":263},[34,128190,3400],{"class":181},[34,128192,128193,128196],{"class":36,"line":275},[34,128194,128195],{"class":50},"  \"features\"",[34,128197,28073],{"class":181},[34,128199,128200,128203,128205,128207],{"class":36,"line":700},[34,128201,128202],{"class":50},"    \"auth\"",[34,128204,182],{"class":181},[34,128206,632],{"class":50},[34,128208,624],{"class":181},[34,128210,128211,128214,128216],{"class":36,"line":706},[34,128212,128213],{"class":50},"    \"cache\"",[34,128215,182],{"class":181},[34,128217,14607],{"class":50},[34,128219,128220],{"class":36,"line":715},[34,128221,857],{"class":181},[34,128223,128224],{"class":36,"line":725},[34,128225,693],{"class":181},[102,128227,128229],{"id":128228},"error-response","Error Response",[25,128231,128233],{"className":28058,"code":128232,"language":14790,"meta":30,"style":30},"{\n  \"status\": \"error\",\n  \"error\": {\n    \"code\": \"VALIDATION_ERROR\",\n    \"message\": \"Invalid email format\",\n    \"field\": \"email\"\n  }\n}\n",[20,128234,128235,128239,128249,128256,128268,128280,128290,128294],{"__ignoreMap":30},[34,128236,128237],{"class":36,"line":37},[34,128238,25296],{"class":181},[34,128240,128241,128243,128245,128247],{"class":36,"line":44},[34,128242,127973],{"class":50},[34,128244,182],{"class":181},[34,128246,62772],{"class":54},[34,128248,624],{"class":181},[34,128250,128251,128254],{"class":36,"line":58},[34,128252,128253],{"class":50},"  \"error\"",[34,128255,28073],{"class":181},[34,128257,128258,128261,128263,128266],{"class":36,"line":65},[34,128259,128260],{"class":50},"    \"code\"",[34,128262,182],{"class":181},[34,128264,128265],{"class":54},"\"VALIDATION_ERROR\"",[34,128267,624],{"class":181},[34,128269,128270,128273,128275,128278],{"class":36,"line":71},[34,128271,128272],{"class":50},"    \"message\"",[34,128274,182],{"class":181},[34,128276,128277],{"class":54},"\"Invalid email format\"",[34,128279,624],{"class":181},[34,128281,128282,128285,128287],{"class":36,"line":77},[34,128283,128284],{"class":50},"    \"field\"",[34,128286,182],{"class":181},[34,128288,128289],{"class":54},"\"email\"\n",[34,128291,128292],{"class":36,"line":82},[34,128293,857],{"class":181},[34,128295,128296],{"class":36,"line":88},[34,128297,693],{"class":181},[388,128299,47224],{},{"title":30,"searchDepth":44,"depth":44,"links":128301},[128302],{"id":18148,"depth":44,"text":18143,"children":128303},[128304,128305,128306],{"id":127958,"depth":58,"text":127959},{"id":465,"depth":58,"text":466},{"id":128228,"depth":58,"text":128229},"Common Patterns in JSON.",{},"/json/common-patterns",{"title":18143,"description":128307},"json/common-patterns",[14790,108614,127746,1701,43044,38615],"FYoM52EM1w9fJ93HQsqmqbZkyagYHG0y9qEOHXA6pYU",{"id":128315,"title":61423,"body":128316,"date":402,"description":128421,"extension":404,"meta":128422,"navigation":61,"order":58,"path":128423,"seo":128424,"stem":128425,"subject":14790,"tags":128426,"__hash__":128427},"topics/json/data-types.md",{"type":8,"value":128317,"toc":128418},[128318,128320,128416],[11,128319,61423],{"id":61422},[25,128321,128323],{"className":28058,"code":128322,"language":14790,"meta":30,"style":30},"{\n  \"string\": \"Hello, World!\",\n  \"number\": 123.45,\n  \"integer\": 42,\n  \"boolean\": true,\n  \"null\": null,\n  \"array\": [\"item1\", \"item2\"],\n  \"object\": {\"key\": \"value\"}\n}\n",[20,128324,128325,128329,128340,128351,128362,128372,128382,128398,128412],{"__ignoreMap":30},[34,128326,128327],{"class":36,"line":37},[34,128328,25296],{"class":181},[34,128330,128331,128334,128336,128338],{"class":36,"line":44},[34,128332,128333],{"class":50},"  \"string\"",[34,128335,182],{"class":181},[34,128337,15076],{"class":54},[34,128339,624],{"class":181},[34,128341,128342,128344,128346,128349],{"class":36,"line":58},[34,128343,127778],{"class":50},[34,128345,182],{"class":181},[34,128347,128348],{"class":50},"123.45",[34,128350,624],{"class":181},[34,128352,128353,128356,128358,128360],{"class":36,"line":65},[34,128354,128355],{"class":50},"  \"integer\"",[34,128357,182],{"class":181},[34,128359,8257],{"class":50},[34,128361,624],{"class":181},[34,128363,128364,128366,128368,128370],{"class":36,"line":71},[34,128365,127789],{"class":50},[34,128367,182],{"class":181},[34,128369,632],{"class":50},[34,128371,624],{"class":181},[34,128373,128374,128376,128378,128380],{"class":36,"line":77},[34,128375,127800],{"class":50},[34,128377,182],{"class":181},[34,128379,111592],{"class":50},[34,128381,624],{"class":181},[34,128383,128384,128386,128388,128391,128393,128396],{"class":36,"line":82},[34,128385,127811],{"class":50},[34,128387,47204],{"class":181},[34,128389,128390],{"class":54},"\"item1\"",[34,128392,1798],{"class":181},[34,128394,128395],{"class":54},"\"item2\"",[34,128397,46332],{"class":181},[34,128399,128400,128402,128404,128406,128408,128410],{"class":36,"line":88},[34,128401,127830],{"class":50},[34,128403,50697],{"class":181},[34,128405,121453],{"class":50},[34,128407,182],{"class":181},[34,128409,16847],{"class":54},[34,128411,693],{"class":181},[34,128413,128414],{"class":36,"line":242},[34,128415,693],{"class":181},[388,128417,47224],{},{"title":30,"searchDepth":44,"depth":44,"links":128419},[128420],{"id":61422,"depth":44,"text":61423},"Data Types in JSON.",{},"/json/data-types",{"title":61423,"description":128421},"json/data-types",[14790,108614,127746,1701,43044,38615],"K49EiHG1HJFgtYTsc1tWVgKgRpTMP2fLr_fBu_UHDHs",{"id":128429,"title":128430,"body":128431,"date":402,"description":128592,"extension":404,"meta":128593,"navigation":61,"order":275,"path":128594,"seo":128595,"stem":128596,"subject":14790,"tags":128597,"__hash__":128598},"topics/json/format-comparison.md","Format Comparison",{"type":8,"value":128432,"toc":128589},[128433,128436],[11,128434,128430],{"id":128435},"format-comparison",[14308,128437,128438,128452],{},[14311,128439,128440],{},[14314,128441,128442,128444,128446,128449],{},[14317,128443,18569],{},[14317,128445,14854],{},[14317,128447,128448],{},"JSONC",[14317,128450,128451],{},"JSON5",[14326,128453,128454,128479,128493,128506,128519,128532,128546,128560,128573],{},[14314,128455,128456,128461,128464,128473],{},[14331,128457,128458],{},[8471,128459,128460],{},"Comments",[14331,128462,128463],{},"❌ Not allowed",[14331,128465,128466,128467,128469,128470],{},"✅ ",[20,128468,12754],{}," and ",[20,128471,128472],{},"/* */",[14331,128474,128466,128475,128469,128477],{},[20,128476,12754],{},[20,128478,128472],{},[14314,128480,128481,128486,128488,128490],{},[14331,128482,128483],{},[8471,128484,128485],{},"Trailing commas",[14331,128487,128463],{},[14331,128489,128463],{},[14331,128491,128492],{},"✅ Allowed",[14314,128494,128495,128500,128502,128504],{},[14331,128496,128497],{},[8471,128498,128499],{},"Unquoted keys",[14331,128501,128463],{},[14331,128503,128463],{},[14331,128505,128492],{},[14314,128507,128508,128513,128515,128517],{},[14331,128509,128510],{},[8471,128511,128512],{},"Single quotes",[14331,128514,128463],{},[14331,128516,128463],{},[14331,128518,128492],{},[14314,128520,128521,128526,128528,128530],{},[14331,128522,128523],{},[8471,128524,128525],{},"Multiline strings",[14331,128527,128463],{},[14331,128529,128463],{},[14331,128531,128492],{},[14314,128533,128534,128539,128541,128543],{},[14331,128535,128536],{},[8471,128537,128538],{},"Hex numbers",[14331,128540,128463],{},[14331,128542,128463],{},[14331,128544,128545],{},"✅ Allowed (0x)",[14314,128547,128548,128553,128555,128557],{},[14331,128549,128550],{},[8471,128551,128552],{},"Leading/trailing decimal",[14331,128554,128463],{},[14331,128556,128463],{},[14331,128558,128559],{},"✅ Allowed (.5, 5.)",[14314,128561,128562,128567,128569,128571],{},[14331,128563,128564],{},[8471,128565,128566],{},"Infinity/NaN",[14331,128568,128463],{},[14331,128570,128463],{},[14331,128572,128492],{},[14314,128574,128575,128580,128583,128586],{},[14331,128576,128577],{},[8471,128578,128579],{},"Use case",[14331,128581,128582],{},"APIs, data exchange",[14331,128584,128585],{},"Config files (VS Code)",[14331,128587,128588],{},"Config files (flexible)",{"title":30,"searchDepth":44,"depth":44,"links":128590},[128591],{"id":128435,"depth":44,"text":128430},"Format Comparison in JSON.",{},"/json/format-comparison",{"title":128430,"description":128592},"json/format-comparison",[14790,108614,127746,1701,43044,38615],"eDZU-Zpdt0OZaDzGU9lrjfUoZN-oa1OoCxy5R2xd11w",{"id":128600,"title":128451,"body":128601,"date":402,"description":129220,"extension":404,"meta":129221,"navigation":61,"order":263,"path":129222,"seo":129223,"stem":129224,"subject":14790,"tags":129225,"__hash__":129226},"topics/json/json5.md",{"type":8,"value":128602,"toc":129214},[128603,128605,128608,128773,128777,128998,129002,129211],[11,128604,128451],{"id":127746},[16,128606,128607],{},"JSON5 is a more human-friendly JSON extension with additional features.",[25,128609,128612],{"className":128610,"code":128611,"language":127746,"meta":30,"style":30},"language-json5 shiki shiki-themes github-light github-dark","{\n  // Comments allowed\n  unquoted: 'and single quotes work',\n  trailingComma: 'is okay',\n  \n  /* Multi-line strings */\n  multiline: 'This is a \\\nvery long \\\nstring',\n  \n  // Numbers\n  hexadecimal: 0xdecaf,\n  leadingDecimal: .5,\n  trailingDecimal: 5.,\n  positiveSign: +1,\n  infinity: Infinity,\n  notANumber: NaN,\n  \n  // Trailing comma is fine\n}\n",[20,128613,128614,128618,128623,128635,128647,128651,128656,128666,128671,128678,128682,128687,128699,128711,128724,128736,128748,128760,128764,128769],{"__ignoreMap":30},[34,128615,128616],{"class":36,"line":37},[34,128617,25296],{"class":181},[34,128619,128620],{"class":36,"line":44},[34,128621,128622],{"class":40},"  // Comments allowed\n",[34,128624,128625,128628,128630,128633],{"class":36,"line":58},[34,128626,128627],{"class":54},"  unquoted",[34,128629,182],{"class":181},[34,128631,128632],{"class":54},"'and single quotes work'",[34,128634,624],{"class":181},[34,128636,128637,128640,128642,128645],{"class":36,"line":65},[34,128638,128639],{"class":54},"  trailingComma",[34,128641,182],{"class":181},[34,128643,128644],{"class":54},"'is okay'",[34,128646,624],{"class":181},[34,128648,128649],{"class":36,"line":71},[34,128650,827],{"class":181},[34,128652,128653],{"class":36,"line":77},[34,128654,128655],{"class":40},"  /* Multi-line strings */\n",[34,128657,128658,128661,128663],{"class":36,"line":82},[34,128659,128660],{"class":54},"  multiline",[34,128662,182],{"class":181},[34,128664,128665],{"class":54},"'This is a \\\n",[34,128667,128668],{"class":36,"line":88},[34,128669,128670],{"class":54},"very long \\\n",[34,128672,128673,128676],{"class":36,"line":242},[34,128674,128675],{"class":54},"string'",[34,128677,624],{"class":181},[34,128679,128680],{"class":36,"line":250},[34,128681,827],{"class":181},[34,128683,128684],{"class":36,"line":263},[34,128685,128686],{"class":40},"  // Numbers\n",[34,128688,128689,128692,128694,128697],{"class":36,"line":275},[34,128690,128691],{"class":54},"  hexadecimal",[34,128693,182],{"class":181},[34,128695,128696],{"class":50},"0xdecaf",[34,128698,624],{"class":181},[34,128700,128701,128704,128706,128709],{"class":36,"line":700},[34,128702,128703],{"class":54},"  leadingDecimal",[34,128705,182],{"class":181},[34,128707,128708],{"class":50},".5",[34,128710,624],{"class":181},[34,128712,128713,128716,128718,128720,128722],{"class":36,"line":706},[34,128714,128715],{"class":54},"  trailingDecimal",[34,128717,182],{"class":181},[34,128719,2778],{"class":50},[34,128721,151],{"class":24316},[34,128723,624],{"class":181},[34,128725,128726,128729,128731,128734],{"class":36,"line":715},[34,128727,128728],{"class":54},"  positiveSign",[34,128730,182],{"class":181},[34,128732,128733],{"class":50},"+1",[34,128735,624],{"class":181},[34,128737,128738,128741,128743,128746],{"class":36,"line":725},[34,128739,128740],{"class":54},"  infinity",[34,128742,182],{"class":181},[34,128744,128745],{"class":50},"Infinity",[34,128747,624],{"class":181},[34,128749,128750,128753,128755,128758],{"class":36,"line":734},[34,128751,128752],{"class":54},"  notANumber",[34,128754,182],{"class":181},[34,128756,128757],{"class":50},"NaN",[34,128759,624],{"class":181},[34,128761,128762],{"class":36,"line":742},[34,128763,827],{"class":181},[34,128765,128766],{"class":36,"line":748},[34,128767,128768],{"class":40},"  // Trailing comma is fine\n",[34,128770,128771],{"class":36,"line":754},[34,128772,693],{"class":181},[102,128774,128776],{"id":128775},"json5-features","JSON5 Features",[25,128778,128780],{"className":128610,"code":128779,"language":127746,"meta":30,"style":30},"{\n  // Unquoted object keys\n  name: 'Alice',\n  age: 30,\n  \n  // Single and double quotes\n  greeting: 'Hello',\n  farewell: \"Goodbye\",\n  \n  // Trailing commas\n  colors: [\n    'red',\n    'green',\n    'blue',  // No error!\n  ],\n  \n  // Multiline strings with backslash\n  description: 'This is a long description \\\n                that spans multiple lines \\\n                for better readability',\n  \n  // Special number values\n  values: {\n    hex: 0xFF,\n    decimal: .5,\n    infinity: Infinity,\n    negative: -Infinity,\n    nan: NaN,\n  },\n}\n",[20,128781,128782,128786,128791,128801,128811,128815,128820,128831,128843,128847,128852,128859,128866,128873,128883,128887,128891,128896,128906,128911,128918,128922,128927,128933,128945,128956,128967,128979,128990,128994],{"__ignoreMap":30},[34,128783,128784],{"class":36,"line":37},[34,128785,25296],{"class":181},[34,128787,128788],{"class":36,"line":44},[34,128789,128790],{"class":40},"  // Unquoted object keys\n",[34,128792,128793,128795,128797,128799],{"class":36,"line":58},[34,128794,7350],{"class":54},[34,128796,182],{"class":181},[34,128798,28504],{"class":54},[34,128800,624],{"class":181},[34,128802,128803,128805,128807,128809],{"class":36,"line":65},[34,128804,17581],{"class":54},[34,128806,182],{"class":181},[34,128808,17625],{"class":50},[34,128810,624],{"class":181},[34,128812,128813],{"class":36,"line":71},[34,128814,827],{"class":181},[34,128816,128817],{"class":36,"line":77},[34,128818,128819],{"class":40},"  // Single and double quotes\n",[34,128821,128822,128825,128827,128829],{"class":36,"line":82},[34,128823,128824],{"class":54},"  greeting",[34,128826,182],{"class":181},[34,128828,73720],{"class":54},[34,128830,624],{"class":181},[34,128832,128833,128836,128838,128841],{"class":36,"line":88},[34,128834,128835],{"class":54},"  farewell",[34,128837,182],{"class":181},[34,128839,128840],{"class":54},"\"Goodbye\"",[34,128842,624],{"class":181},[34,128844,128845],{"class":36,"line":242},[34,128846,827],{"class":181},[34,128848,128849],{"class":36,"line":250},[34,128850,128851],{"class":40},"  // Trailing commas\n",[34,128853,128854,128857],{"class":36,"line":263},[34,128855,128856],{"class":54},"  colors",[34,128858,28102],{"class":181},[34,128860,128861,128864],{"class":36,"line":275},[34,128862,128863],{"class":54},"    'red'",[34,128865,624],{"class":181},[34,128867,128868,128871],{"class":36,"line":700},[34,128869,128870],{"class":54},"    'green'",[34,128872,624],{"class":181},[34,128874,128875,128878,128880],{"class":36,"line":706},[34,128876,128877],{"class":54},"    'blue'",[34,128879,76966],{"class":181},[34,128881,128882],{"class":40},"// No error!\n",[34,128884,128885],{"class":36,"line":715},[34,128886,127682],{"class":181},[34,128888,128889],{"class":36,"line":725},[34,128890,827],{"class":181},[34,128892,128893],{"class":36,"line":734},[34,128894,128895],{"class":40},"  // Multiline strings with backslash\n",[34,128897,128898,128901,128903],{"class":36,"line":742},[34,128899,128900],{"class":54},"  description",[34,128902,182],{"class":181},[34,128904,128905],{"class":54},"'This is a long description \\\n",[34,128907,128908],{"class":36,"line":748},[34,128909,128910],{"class":54},"                that spans multiple lines \\\n",[34,128912,128913,128916],{"class":36,"line":754},[34,128914,128915],{"class":54},"                for better readability'",[34,128917,624],{"class":181},[34,128919,128920],{"class":36,"line":759},[34,128921,827],{"class":181},[34,128923,128924],{"class":36,"line":771},[34,128925,128926],{"class":40},"  // Special number values\n",[34,128928,128929,128931],{"class":36,"line":794},[34,128930,91161],{"class":54},[34,128932,28073],{"class":181},[34,128934,128935,128938,128940,128943],{"class":36,"line":824},[34,128936,128937],{"class":54},"    hex",[34,128939,182],{"class":181},[34,128941,128942],{"class":50},"0xFF",[34,128944,624],{"class":181},[34,128946,128947,128950,128952,128954],{"class":36,"line":830},[34,128948,128949],{"class":54},"    decimal",[34,128951,182],{"class":181},[34,128953,128708],{"class":50},[34,128955,624],{"class":181},[34,128957,128958,128961,128963,128965],{"class":36,"line":839},[34,128959,128960],{"class":54},"    infinity",[34,128962,182],{"class":181},[34,128964,128745],{"class":50},[34,128966,624],{"class":181},[34,128968,128969,128972,128974,128977],{"class":36,"line":854},[34,128970,128971],{"class":54},"    negative",[34,128973,182],{"class":181},[34,128975,128976],{"class":50},"-Infinity",[34,128978,624],{"class":181},[34,128980,128981,128984,128986,128988],{"class":36,"line":860},[34,128982,128983],{"class":54},"    nan",[34,128985,182],{"class":181},[34,128987,128757],{"class":50},[34,128989,624],{"class":181},[34,128991,128992],{"class":36,"line":865},[34,128993,3400],{"class":181},[34,128995,128996],{"class":36,"line":870},[34,128997,693],{"class":181},[102,128999,129001],{"id":129000},"json5-configuration-example","JSON5 Configuration Example",[25,129003,129005],{"className":128610,"code":129004,"language":127746,"meta":30,"style":30},"// config.json5\n{\n  // Application settings\n  app: {\n    name: 'MyApp',\n    version: '2.0.0',\n    debug: true,  // Enable debug mode\n  },\n  \n  // Database configuration\n  database: {\n    host: 'localhost',\n    port: 5432,\n    credentials: {\n      user: 'admin',\n      // Password should be in env vars\n      passwordEnv: 'DB_PASSWORD',\n    },\n  },\n  \n  /* Feature flags */\n  features: {\n    authentication: true,\n    caching: false,\n    analytics: true,  // trailing comma is fine\n  },\n}\n",[20,129006,129007,129012,129016,129021,129028,129039,129051,129065,129069,129073,129078,129085,129097,129108,129115,129126,129131,129143,129147,129151,129155,129160,129167,129178,129189,129203,129207],{"__ignoreMap":30},[34,129008,129009],{"class":36,"line":37},[34,129010,129011],{"class":40},"// config.json5\n",[34,129013,129014],{"class":36,"line":44},[34,129015,25296],{"class":181},[34,129017,129018],{"class":36,"line":58},[34,129019,129020],{"class":40},"  // Application settings\n",[34,129022,129023,129026],{"class":36,"line":65},[34,129024,129025],{"class":54},"  app",[34,129027,28073],{"class":181},[34,129029,129030,129032,129034,129037],{"class":36,"line":71},[34,129031,5362],{"class":54},[34,129033,182],{"class":181},[34,129035,129036],{"class":54},"'MyApp'",[34,129038,624],{"class":181},[34,129040,129041,129044,129046,129049],{"class":36,"line":77},[34,129042,129043],{"class":54},"    version",[34,129045,182],{"class":181},[34,129047,129048],{"class":54},"'2.0.0'",[34,129050,624],{"class":181},[34,129052,129053,129056,129058,129060,129062],{"class":36,"line":82},[34,129054,129055],{"class":54},"    debug",[34,129057,182],{"class":181},[34,129059,632],{"class":50},[34,129061,76966],{"class":181},[34,129063,129064],{"class":40},"// Enable debug mode\n",[34,129066,129067],{"class":36,"line":88},[34,129068,3400],{"class":181},[34,129070,129071],{"class":36,"line":242},[34,129072,827],{"class":181},[34,129074,129075],{"class":36,"line":250},[34,129076,129077],{"class":40},"  // Database configuration\n",[34,129079,129080,129083],{"class":36,"line":263},[34,129081,129082],{"class":54},"  database",[34,129084,28073],{"class":181},[34,129086,129087,129090,129092,129095],{"class":36,"line":275},[34,129088,129089],{"class":54},"    host",[34,129091,182],{"class":181},[34,129093,129094],{"class":54},"'localhost'",[34,129096,624],{"class":181},[34,129098,129099,129102,129104,129106],{"class":36,"line":700},[34,129100,129101],{"class":54},"    port",[34,129103,182],{"class":181},[34,129105,128175],{"class":50},[34,129107,624],{"class":181},[34,129109,129110,129113],{"class":36,"line":706},[34,129111,129112],{"class":54},"    credentials",[34,129114,28073],{"class":181},[34,129116,129117,129120,129122,129124],{"class":36,"line":715},[34,129118,129119],{"class":54},"      user",[34,129121,182],{"class":181},[34,129123,3347],{"class":54},[34,129125,624],{"class":181},[34,129127,129128],{"class":36,"line":725},[34,129129,129130],{"class":40},"      // Password should be in env vars\n",[34,129132,129133,129136,129138,129141],{"class":36,"line":734},[34,129134,129135],{"class":54},"      passwordEnv",[34,129137,182],{"class":181},[34,129139,129140],{"class":54},"'DB_PASSWORD'",[34,129142,624],{"class":181},[34,129144,129145],{"class":36,"line":742},[34,129146,15762],{"class":181},[34,129148,129149],{"class":36,"line":748},[34,129150,3400],{"class":181},[34,129152,129153],{"class":36,"line":754},[34,129154,827],{"class":181},[34,129156,129157],{"class":36,"line":759},[34,129158,129159],{"class":40},"  /* Feature flags */\n",[34,129161,129162,129165],{"class":36,"line":771},[34,129163,129164],{"class":54},"  features",[34,129166,28073],{"class":181},[34,129168,129169,129172,129174,129176],{"class":36,"line":794},[34,129170,129171],{"class":54},"    authentication",[34,129173,182],{"class":181},[34,129175,632],{"class":50},[34,129177,624],{"class":181},[34,129179,129180,129183,129185,129187],{"class":36,"line":824},[34,129181,129182],{"class":54},"    caching",[34,129184,182],{"class":181},[34,129186,103387],{"class":50},[34,129188,624],{"class":181},[34,129190,129191,129194,129196,129198,129200],{"class":36,"line":830},[34,129192,129193],{"class":54},"    analytics",[34,129195,182],{"class":181},[34,129197,632],{"class":50},[34,129199,76966],{"class":181},[34,129201,129202],{"class":40},"// trailing comma is fine\n",[34,129204,129205],{"class":36,"line":839},[34,129206,3400],{"class":181},[34,129208,129209],{"class":36,"line":854},[34,129210,693],{"class":181},[388,129212,129213],{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .s7hpK, html code.shiki .s7hpK{--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic}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":30,"searchDepth":44,"depth":44,"links":129215},[129216],{"id":127746,"depth":44,"text":128451,"children":129217},[129218,129219],{"id":128775,"depth":58,"text":128776},{"id":129000,"depth":58,"text":129001},"JSON5 in JSON.",{},"/json/json5",{"title":128451,"description":129220},"json/json5",[14790,108614,127746,1701,43044,38615],"XkNf4StE6_nwV3786s_uuYaDQZupBNgVHrn1WySHW7Q",{"id":129228,"title":129229,"body":129230,"date":402,"description":129587,"extension":404,"meta":129588,"navigation":61,"order":250,"path":129589,"seo":129590,"stem":129591,"subject":14790,"tags":129592,"__hash__":129593},"topics/json/jsonc-json-with-comments.md","JSONC (JSON with Comments)",{"type":8,"value":129231,"toc":129581},[129232,129235,129238,129344,129348,129452,129456,129578],[11,129233,129229],{"id":129234},"jsonc-json-with-comments",[16,129236,129237],{},"JSONC is JSON with comment support, commonly used in VS Code configuration files.",[25,129239,129241],{"className":108612,"code":129240,"language":108614,"meta":30,"style":30},"{\n  // Single-line comment\n  \"name\": \"MyApp\",\n  \n  /* \n   * Multi-line comment\n   * Used for detailed explanations\n   */\n  \"version\": \"1.0.0\",\n  \n  \"scripts\": {\n    \"dev\": \"vite\",      // Start development server\n    \"build\": \"vite build\"  /* Production build */\n  }\n}\n",[20,129242,129243,129247,129252,129262,129266,129271,129276,129281,129286,129297,129301,129308,129323,129336,129340],{"__ignoreMap":30},[34,129244,129245],{"class":36,"line":37},[34,129246,25296],{"class":181},[34,129248,129249],{"class":36,"line":44},[34,129250,129251],{"class":40},"  // Single-line comment\n",[34,129253,129254,129256,129258,129260],{"class":36,"line":58},[34,129255,108630],{"class":50},[34,129257,182],{"class":181},[34,129259,128119],{"class":54},[34,129261,624],{"class":181},[34,129263,129264],{"class":36,"line":65},[34,129265,827],{"class":181},[34,129267,129268],{"class":36,"line":71},[34,129269,129270],{"class":40},"  /* \n",[34,129272,129273],{"class":36,"line":77},[34,129274,129275],{"class":40},"   * Multi-line comment\n",[34,129277,129278],{"class":36,"line":82},[34,129279,129280],{"class":40},"   * Used for detailed explanations\n",[34,129282,129283],{"class":36,"line":88},[34,129284,129285],{"class":40},"   */\n",[34,129287,129288,129291,129293,129295],{"class":36,"line":242},[34,129289,129290],{"class":50},"  \"version\"",[34,129292,182],{"class":181},[34,129294,128131],{"class":54},[34,129296,624],{"class":181},[34,129298,129299],{"class":36,"line":250},[34,129300,827],{"class":181},[34,129302,129303,129306],{"class":36,"line":263},[34,129304,129305],{"class":50},"  \"scripts\"",[34,129307,28073],{"class":181},[34,129309,129310,129312,129314,129317,129320],{"class":36,"line":275},[34,129311,47077],{"class":50},[34,129313,182],{"class":181},[34,129315,129316],{"class":54},"\"vite\"",[34,129318,129319],{"class":181},",      ",[34,129321,129322],{"class":40},"// Start development server\n",[34,129324,129325,129328,129330,129333],{"class":36,"line":700},[34,129326,129327],{"class":50},"    \"build\"",[34,129329,182],{"class":181},[34,129331,129332],{"class":54},"\"vite build\"",[34,129334,129335],{"class":40},"  /* Production build */\n",[34,129337,129338],{"class":36,"line":706},[34,129339,857],{"class":181},[34,129341,129342],{"class":36,"line":715},[34,129343,693],{"class":181},[102,129345,129347],{"id":129346},"vs-code-configuration","VS Code Configuration",[25,129349,129351],{"className":108612,"code":129350,"language":108614,"meta":30,"style":30},"// .vscode/settings.json\n{\n  // Editor settings\n  \"editor.fontSize\": 14,\n  \"editor.tabSize\": 2,\n  \n  // Format on save\n  \"editor.formatOnSave\": true,\n  \n  /* \n   * Language-specific settings\n   */\n  \"[javascript]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  }\n}\n",[20,129352,129353,129358,129362,129367,129379,129390,129394,129399,129410,129414,129418,129423,129427,129434,129444,129448],{"__ignoreMap":30},[34,129354,129355],{"class":36,"line":37},[34,129356,129357],{"class":40},"// .vscode/settings.json\n",[34,129359,129360],{"class":36,"line":44},[34,129361,25296],{"class":181},[34,129363,129364],{"class":36,"line":58},[34,129365,129366],{"class":40},"  // Editor settings\n",[34,129368,129369,129372,129374,129377],{"class":36,"line":65},[34,129370,129371],{"class":50},"  \"editor.fontSize\"",[34,129373,182],{"class":181},[34,129375,129376],{"class":50},"14",[34,129378,624],{"class":181},[34,129380,129381,129384,129386,129388],{"class":36,"line":71},[34,129382,129383],{"class":50},"  \"editor.tabSize\"",[34,129385,182],{"class":181},[34,129387,8324],{"class":50},[34,129389,624],{"class":181},[34,129391,129392],{"class":36,"line":77},[34,129393,827],{"class":181},[34,129395,129396],{"class":36,"line":82},[34,129397,129398],{"class":40},"  // Format on save\n",[34,129400,129401,129404,129406,129408],{"class":36,"line":88},[34,129402,129403],{"class":50},"  \"editor.formatOnSave\"",[34,129405,182],{"class":181},[34,129407,632],{"class":50},[34,129409,624],{"class":181},[34,129411,129412],{"class":36,"line":242},[34,129413,827],{"class":181},[34,129415,129416],{"class":36,"line":250},[34,129417,129270],{"class":40},[34,129419,129420],{"class":36,"line":263},[34,129421,129422],{"class":40},"   * Language-specific settings\n",[34,129424,129425],{"class":36,"line":275},[34,129426,129285],{"class":40},[34,129428,129429,129432],{"class":36,"line":700},[34,129430,129431],{"class":50},"  \"[javascript]\"",[34,129433,28073],{"class":181},[34,129435,129436,129439,129441],{"class":36,"line":706},[34,129437,129438],{"class":50},"    \"editor.defaultFormatter\"",[34,129440,182],{"class":181},[34,129442,129443],{"class":54},"\"esbenp.prettier-vscode\"\n",[34,129445,129446],{"class":36,"line":715},[34,129447,857],{"class":181},[34,129449,129450],{"class":36,"line":725},[34,129451,693],{"class":181},[102,129453,129455],{"id":129454},"typescript-configuration","TypeScript Configuration",[25,129457,129459],{"className":108612,"code":129458,"language":108614,"meta":30,"style":30},"// tsconfig.json\n{\n  \"compilerOptions\": {\n    // Module resolution\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"bundler\",\n    \n    // Strict type checking\n    \"strict\": true,\n    \"noImplicitAny\": true,  // Require explicit types\n    \n    /* Path mapping for imports */\n    \"paths\": {\n      \"@/*\": [\"./src/*\"]\n    }\n  }\n}\n",[20,129460,129461,129466,129470,129476,129481,129493,129505,129509,129514,129524,129538,129542,129547,129554,129566,129570,129574],{"__ignoreMap":30},[34,129462,129463],{"class":36,"line":37},[34,129464,129465],{"class":40},"// tsconfig.json\n",[34,129467,129468],{"class":36,"line":44},[34,129469,25296],{"class":181},[34,129471,129472,129474],{"class":36,"line":58},[34,129473,47136],{"class":50},[34,129475,28073],{"class":181},[34,129477,129478],{"class":36,"line":65},[34,129479,129480],{"class":40},"    // Module resolution\n",[34,129482,129483,129486,129488,129491],{"class":36,"line":71},[34,129484,129485],{"class":50},"    \"module\"",[34,129487,182],{"class":181},[34,129489,129490],{"class":54},"\"ESNext\"",[34,129492,624],{"class":181},[34,129494,129495,129498,129500,129503],{"class":36,"line":77},[34,129496,129497],{"class":50},"    \"moduleResolution\"",[34,129499,182],{"class":181},[34,129501,129502],{"class":54},"\"bundler\"",[34,129504,624],{"class":181},[34,129506,129507],{"class":36,"line":82},[34,129508,3666],{"class":181},[34,129510,129511],{"class":36,"line":88},[34,129512,129513],{"class":40},"    // Strict type checking\n",[34,129515,129516,129518,129520,129522],{"class":36,"line":242},[34,129517,47143],{"class":50},[34,129519,182],{"class":181},[34,129521,632],{"class":50},[34,129523,624],{"class":181},[34,129525,129526,129529,129531,129533,129535],{"class":36,"line":250},[34,129527,129528],{"class":50},"    \"noImplicitAny\"",[34,129530,182],{"class":181},[34,129532,632],{"class":50},[34,129534,76966],{"class":181},[34,129536,129537],{"class":40},"// Require explicit types\n",[34,129539,129540],{"class":36,"line":263},[34,129541,3666],{"class":181},[34,129543,129544],{"class":36,"line":275},[34,129545,129546],{"class":40},"    /* Path mapping for imports */\n",[34,129548,129549,129552],{"class":36,"line":700},[34,129550,129551],{"class":50},"    \"paths\"",[34,129553,28073],{"class":181},[34,129555,129556,129559,129561,129564],{"class":36,"line":706},[34,129557,129558],{"class":50},"      \"@/*\"",[34,129560,47204],{"class":181},[34,129562,129563],{"class":54},"\"./src/*\"",[34,129565,924],{"class":181},[34,129567,129568],{"class":36,"line":715},[34,129569,3229],{"class":181},[34,129571,129572],{"class":36,"line":725},[34,129573,857],{"class":181},[34,129575,129576],{"class":36,"line":734},[34,129577,693],{"class":181},[388,129579,129580],{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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}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);}",{"title":30,"searchDepth":44,"depth":44,"links":129582},[129583],{"id":129234,"depth":44,"text":129229,"children":129584},[129585,129586],{"id":129346,"depth":58,"text":129347},{"id":129454,"depth":58,"text":129455},"JSONC (JSON with Comments) in JSON.",{},"/json/jsonc-json-with-comments",{"title":129229,"description":129587},"json/jsonc-json-with-comments",[14790,108614,127746,1701,43044,38615],"PsYMwIJexuqa4LuMBDucO8UwEp4zLAbNAhyIaXu99-M",{"id":129595,"title":129596,"body":129597,"date":402,"description":129728,"extension":404,"meta":129729,"navigation":61,"order":77,"path":129730,"seo":129731,"stem":129732,"subject":14790,"tags":129733,"__hash__":129734},"topics/json/nested-structures.md","Nested Structures",{"type":8,"value":129598,"toc":129725},[129599,129602,129723],[11,129600,129596],{"id":129601},"nested-structures",[25,129603,129605],{"className":28058,"code":129604,"language":14790,"meta":30,"style":30},"{\n  \"company\": {\n    \"name\": \"Tech Corp\",\n    \"departments\": [\n      {\n        \"name\": \"Engineering\",\n        \"employees\": [\n          {\n            \"id\": 1,\n            \"name\": \"Alice\",\n            \"position\": \"Senior Developer\"\n          }\n        ]\n      }\n    ]\n  }\n}\n",[20,129606,129607,129611,129618,129629,129636,129641,129653,129660,129665,129676,129687,129697,129702,129707,129711,129715,129719],{"__ignoreMap":30},[34,129608,129609],{"class":36,"line":37},[34,129610,25296],{"class":181},[34,129612,129613,129616],{"class":36,"line":44},[34,129614,129615],{"class":50},"  \"company\"",[34,129617,28073],{"class":181},[34,129619,129620,129622,129624,129627],{"class":36,"line":58},[34,129621,128114],{"class":50},[34,129623,182],{"class":181},[34,129625,129626],{"class":54},"\"Tech Corp\"",[34,129628,624],{"class":181},[34,129630,129631,129634],{"class":36,"line":65},[34,129632,129633],{"class":50},"    \"departments\"",[34,129635,28102],{"class":181},[34,129637,129638],{"class":36,"line":71},[34,129639,129640],{"class":181},"      {\n",[34,129642,129643,129646,129648,129651],{"class":36,"line":77},[34,129644,129645],{"class":50},"        \"name\"",[34,129647,182],{"class":181},[34,129649,129650],{"class":54},"\"Engineering\"",[34,129652,624],{"class":181},[34,129654,129655,129658],{"class":36,"line":82},[34,129656,129657],{"class":50},"        \"employees\"",[34,129659,28102],{"class":181},[34,129661,129662],{"class":36,"line":88},[34,129663,129664],{"class":181},"          {\n",[34,129666,129667,129670,129672,129674],{"class":36,"line":242},[34,129668,129669],{"class":50},"            \"id\"",[34,129671,182],{"class":181},[34,129673,8318],{"class":50},[34,129675,624],{"class":181},[34,129677,129678,129681,129683,129685],{"class":36,"line":250},[34,129679,129680],{"class":50},"            \"name\"",[34,129682,182],{"class":181},[34,129684,21650],{"class":54},[34,129686,624],{"class":181},[34,129688,129689,129692,129694],{"class":36,"line":263},[34,129690,129691],{"class":50},"            \"position\"",[34,129693,182],{"class":181},[34,129695,129696],{"class":54},"\"Senior Developer\"\n",[34,129698,129699],{"class":36,"line":275},[34,129700,129701],{"class":181},"          }\n",[34,129703,129704],{"class":36,"line":700},[34,129705,129706],{"class":181},"        ]\n",[34,129708,129709],{"class":36,"line":706},[34,129710,3078],{"class":181},[34,129712,129713],{"class":36,"line":715},[34,129714,128040],{"class":181},[34,129716,129717],{"class":36,"line":725},[34,129718,857],{"class":181},[34,129720,129721],{"class":36,"line":734},[34,129722,693],{"class":181},[388,129724,47224],{},{"title":30,"searchDepth":44,"depth":44,"links":129726},[129727],{"id":129601,"depth":44,"text":129596},"Nested Structures in JSON.",{},"/json/nested-structures",{"title":129596,"description":129728},"json/nested-structures",[14790,108614,127746,1701,43044,38615],"QpMlLLrTE4qZTfH67rqO45ywGoow3Qj_gEzSe8v4Yw4",{"id":129736,"title":126017,"body":129737,"date":402,"description":129828,"extension":404,"meta":129829,"navigation":61,"order":65,"path":129830,"seo":129831,"stem":129832,"subject":14790,"tags":129833,"__hash__":129834},"topics/json/objects.md",{"type":8,"value":129738,"toc":129825},[129739,129741,129823],[11,129740,126017],{"id":126022},[25,129742,129744],{"className":28058,"code":129743,"language":14790,"meta":30,"style":30},"{\n  \"user\": {\n    \"id\": 1,\n    \"name\": \"Alice\",\n    \"email\": \"alice@example.com\",\n    \"isActive\": true,\n    \"roles\": [\"admin\", \"editor\"]\n  }\n}\n",[20,129745,129746,129750,129757,129768,129778,129789,129800,129815,129819],{"__ignoreMap":30},[34,129747,129748],{"class":36,"line":37},[34,129749,25296],{"class":181},[34,129751,129752,129755],{"class":36,"line":44},[34,129753,129754],{"class":50},"  \"user\"",[34,129756,28073],{"class":181},[34,129758,129759,129762,129764,129766],{"class":36,"line":58},[34,129760,129761],{"class":50},"    \"id\"",[34,129763,182],{"class":181},[34,129765,8318],{"class":50},[34,129767,624],{"class":181},[34,129769,129770,129772,129774,129776],{"class":36,"line":65},[34,129771,128114],{"class":50},[34,129773,182],{"class":181},[34,129775,21650],{"class":54},[34,129777,624],{"class":181},[34,129779,129780,129783,129785,129787],{"class":36,"line":71},[34,129781,129782],{"class":50},"    \"email\"",[34,129784,182],{"class":181},[34,129786,83306],{"class":54},[34,129788,624],{"class":181},[34,129790,129791,129794,129796,129798],{"class":36,"line":77},[34,129792,129793],{"class":50},"    \"isActive\"",[34,129795,182],{"class":181},[34,129797,632],{"class":50},[34,129799,624],{"class":181},[34,129801,129802,129805,129807,129809,129811,129813],{"class":36,"line":82},[34,129803,129804],{"class":50},"    \"roles\"",[34,129806,47204],{"class":181},[34,129808,83316],{"class":54},[34,129810,1798],{"class":181},[34,129812,83321],{"class":54},[34,129814,924],{"class":181},[34,129816,129817],{"class":36,"line":88},[34,129818,857],{"class":181},[34,129820,129821],{"class":36,"line":242},[34,129822,693],{"class":181},[388,129824,47224],{},{"title":30,"searchDepth":44,"depth":44,"links":129826},[129827],{"id":126022,"depth":44,"text":126017},"Objects in JSON.",{},"/json/objects",{"title":126017,"description":129828},"json/objects",[14790,108614,127746,1701,43044,38615],"DCyHwT3Y_gws-IgBVIN6n-bPemyzpilatfIspJ1OYm0",{"id":129836,"title":14854,"body":129837,"date":2633,"description":129889,"extension":404,"meta":129890,"navigation":61,"order":37,"path":129891,"seo":129892,"stem":129893,"subject":14790,"tags":129894,"__hash__":129895},"topics/json/overview.md",{"type":8,"value":129838,"toc":129887},[129839],[309,129840,129841,129845,129849,129853,129857,129861,129865,129869,129875,129879,129883],{},[312,129842,129843],{},[145,129844,33160],{"href":127857},[312,129846,129847],{},[145,129848,61423],{"href":128423},[312,129850,129851],{},[145,129852,126017],{"href":129830},[312,129854,129855],{},[145,129856,10061],{"href":127742},[312,129858,129859],{},[145,129860,129596],{"href":129730},[312,129862,129863],{},[145,129864,18143],{"href":128309},[312,129866,129867],{},[145,129868,5595],{"href":127945},[312,129870,129871],{},[145,129872,129874],{"href":129873},"/json/special-characters","Special Characters",[312,129876,129877],{},[145,129878,129229],{"href":129589},[312,129880,129881],{},[145,129882,128451],{"href":129222},[312,129884,129885],{},[145,129886,128430],{"href":128594},{"title":30,"searchDepth":44,"depth":44,"links":129888},[],"JavaScript Object Notation syntax, JSON with Comments (JSONC), and JSON5 with comparison.",{},"/json/overview",{"title":14854,"description":129889},"json/overview",[14790,108614,127746,1701,43044,38615],"CiFXxhMY0RWcCYSQfCm1BZDfXa_57N1WK14ApcPratE",{"id":129897,"title":129874,"body":129898,"date":402,"description":130007,"extension":404,"meta":130008,"navigation":61,"order":242,"path":129873,"seo":130009,"stem":130010,"subject":14790,"tags":130011,"__hash__":130012},"topics/json/special-characters.md",{"type":8,"value":129899,"toc":130004},[129900,129903,130002],[11,129901,129874],{"id":129902},"special-characters",[25,129904,129906],{"className":28058,"code":129905,"language":14790,"meta":30,"style":30},"{\n  \"escaping\": \"Use backslash to escape: \\\" \\\\ \\/ \\b \\f \\n \\r \\t\",\n  \"unicode\": \"Unicode characters: \\u00A9 for ©\",\n  \"quotes\": \"Strings must use \\\"double quotes\\\"\",\n  \"numbers\": \"No leading zeros: 42, not 042\"\n}\n",[20,129907,129908,129912,129949,129967,129988,129998],{"__ignoreMap":30},[34,129909,129910],{"class":36,"line":37},[34,129911,25296],{"class":181},[34,129913,129914,129917,129919,129922,129924,129927,129930,129933,129936,129939,129942,129945,129947],{"class":36,"line":44},[34,129915,129916],{"class":50},"  \"escaping\"",[34,129918,182],{"class":181},[34,129920,129921],{"class":54},"\"Use backslash to escape: ",[34,129923,84979],{"class":50},[34,129925,129926],{"class":50}," \\\\",[34,129928,129929],{"class":50}," \\/",[34,129931,129932],{"class":50}," \\b",[34,129934,129935],{"class":50}," \\f",[34,129937,129938],{"class":50}," \\n",[34,129940,129941],{"class":50}," \\r",[34,129943,129944],{"class":50}," \\t",[34,129946,10389],{"class":54},[34,129948,624],{"class":181},[34,129950,129951,129954,129956,129959,129962,129965],{"class":36,"line":58},[34,129952,129953],{"class":50},"  \"unicode\"",[34,129955,182],{"class":181},[34,129957,129958],{"class":54},"\"Unicode characters: ",[34,129960,129961],{"class":50},"\\u00A9",[34,129963,129964],{"class":54}," for ©\"",[34,129966,624],{"class":181},[34,129968,129969,129972,129974,129977,129979,129982,129984,129986],{"class":36,"line":65},[34,129970,129971],{"class":50},"  \"quotes\"",[34,129973,182],{"class":181},[34,129975,129976],{"class":54},"\"Strings must use ",[34,129978,84979],{"class":50},[34,129980,129981],{"class":54},"double quotes",[34,129983,84979],{"class":50},[34,129985,10389],{"class":54},[34,129987,624],{"class":181},[34,129989,129990,129993,129995],{"class":36,"line":71},[34,129991,129992],{"class":50},"  \"numbers\"",[34,129994,182],{"class":181},[34,129996,129997],{"class":54},"\"No leading zeros: 42, not 042\"\n",[34,129999,130000],{"class":36,"line":77},[34,130001,693],{"class":181},[388,130003,47224],{},{"title":30,"searchDepth":44,"depth":44,"links":130005},[130006],{"id":129902,"depth":44,"text":129874},"Special Characters in JSON.",{},{"title":129874,"description":130007},"json/special-characters",[14790,108614,127746,1701,43044,38615],"dT4e9fr-iU32YImqDQB4bvPfuDVVIz0vebzB1G_KmbU",{"id":130014,"title":130015,"body":130016,"date":402,"description":130293,"extension":404,"meta":130294,"navigation":61,"order":37,"path":130295,"seo":130296,"stem":130297,"subject":130206,"tags":130298,"__hash__":130301},"topics/k3s/overview.md","K3s",{"type":8,"value":130017,"toc":130281},[130018,130020,130023,130025,130075,130078,130092,130094,130098,130117,130121,130157,130159,130166,130190,130192,130259,130263,130278],[11,130019,13534],{"id":13533},[16,130021,130022],{},"K3s is a fully compliant Kubernetes distribution designed to run on resource-constrained environments. It simplifies deployment, scales efficiently, and minimizes operational overhead.",[11,130024,6035],{"id":6040},[25,130026,130028],{"className":27,"code":130027,"language":29,"meta":30,"style":30},"# Install K3s\ncurl -sfL https://get.k3s.io | sh -\n\n# Check cluster status\nsudo k3s kubectl get nodes\n",[20,130029,130030,130035,130051,130055,130060],{"__ignoreMap":30},[34,130031,130032],{"class":36,"line":37},[34,130033,130034],{"class":40},"# Install K3s\n",[34,130036,130037,130039,130041,130044,130046,130049],{"class":36,"line":44},[34,130038,8648],{"class":47},[34,130040,53636],{"class":50},[34,130042,130043],{"class":54}," https://get.k3s.io",[34,130045,7197],{"class":580},[34,130047,130048],{"class":47}," sh",[34,130050,27838],{"class":54},[34,130052,130053],{"class":36,"line":58},[34,130054,62],{"emptyLinePlaceholder":61},[34,130056,130057],{"class":36,"line":65},[34,130058,130059],{"class":40},"# Check cluster status\n",[34,130061,130062,130064,130067,130070,130072],{"class":36,"line":71},[34,130063,436],{"class":47},[34,130065,130066],{"class":54}," k3s",[34,130068,130069],{"class":54}," kubectl",[34,130071,7173],{"class":54},[34,130073,130074],{"class":54}," nodes\n",[11,130076,59741],{"id":130077},"components",[309,130079,130080,130086],{},[312,130081,130082,130085],{},[8471,130083,130084],{},"k3s server",": Core Kubernetes API server and controllers",[312,130087,130088,130091],{},[8471,130089,130090],{},"k3s agent",": Minimal agent for running workloads",[11,130093,97],{"id":96},[102,130095,130097],{"id":130096},"single-node-cluster","Single-node Cluster",[25,130099,130101],{"className":27,"code":130100,"language":29,"meta":30,"style":30},"curl -sfL https://get.k3s.io | sh -\n",[20,130102,130103],{"__ignoreMap":30},[34,130104,130105,130107,130109,130111,130113,130115],{"class":36,"line":37},[34,130106,8648],{"class":47},[34,130108,53636],{"class":50},[34,130110,130043],{"class":54},[34,130112,7197],{"class":580},[34,130114,130048],{"class":47},[34,130116,27838],{"class":54},[102,130118,130120],{"id":130119},"high-availability-cluster","High Availability Cluster",[25,130122,130124],{"className":27,"code":130123,"language":29,"meta":30,"style":30},"# With external database\ncurl -sfL https://get.k3s.io | \\\n  INSTALL_K3S_EXEC=\"server\" sh -\n",[20,130125,130126,130131,130143],{"__ignoreMap":30},[34,130127,130128],{"class":36,"line":37},[34,130129,130130],{"class":40},"# With external database\n",[34,130132,130133,130135,130137,130139,130141],{"class":36,"line":44},[34,130134,8648],{"class":47},[34,130136,53636],{"class":50},[34,130138,130043],{"class":54},[34,130140,7197],{"class":580},[34,130142,7186],{"class":50},[34,130144,130145,130148,130150,130153,130155],{"class":36,"line":58},[34,130146,130147],{"class":181},"  INSTALL_K3S_EXEC",[34,130149,1301],{"class":580},[34,130151,130152],{"class":54},"\"server\"",[34,130154,130048],{"class":47},[34,130156,27838],{"class":54},[11,130158,8686],{"id":558},[16,130160,130161,130162,130165],{},"Default configurations are located at ",[20,130163,130164],{},"/etc/rancher/k3s/config.yaml",". Example additions:",[25,130167,130169],{"className":168,"code":130168,"language":170,"meta":30,"style":30},"write-kubeconfig: \"~/.kube/k3s.yaml\"\nselinux: true\n",[20,130170,130171,130181],{"__ignoreMap":30},[34,130172,130173,130176,130178],{"class":36,"line":37},[34,130174,130175],{"class":177},"write-kubeconfig",[34,130177,182],{"class":181},[34,130179,130180],{"class":54},"\"~/.kube/k3s.yaml\"\n",[34,130182,130183,130186,130188],{"class":36,"line":44},[34,130184,130185],{"class":177},"selinux",[34,130187,182],{"class":181},[34,130189,515],{"class":50},[11,130191,113747],{"id":113746},[25,130193,130195],{"className":27,"code":130194,"language":29,"meta":30,"style":30},"# Get K3s version\nk3s -v\n\n# Start/Stop services\nsudo systemctl start k3s\nsudo systemctl stop k3s\n\n# Check logs\nsudo journalctl -u k3s\n",[20,130196,130197,130202,130209,130213,130218,130229,130239,130243,130248],{"__ignoreMap":30},[34,130198,130199],{"class":36,"line":37},[34,130200,130201],{"class":40},"# Get K3s version\n",[34,130203,130204,130207],{"class":36,"line":44},[34,130205,130206],{"class":47},"k3s",[34,130208,57767],{"class":50},[34,130210,130211],{"class":36,"line":58},[34,130212,62],{"emptyLinePlaceholder":61},[34,130214,130215],{"class":36,"line":65},[34,130216,130217],{"class":40},"# Start/Stop services\n",[34,130219,130220,130222,130224,130226],{"class":36,"line":71},[34,130221,436],{"class":47},[34,130223,108597],{"class":54},[34,130225,9677],{"class":54},[34,130227,130228],{"class":54}," k3s\n",[34,130230,130231,130233,130235,130237],{"class":36,"line":77},[34,130232,436],{"class":47},[34,130234,108597],{"class":54},[34,130236,9696],{"class":54},[34,130238,130228],{"class":54},[34,130240,130241],{"class":36,"line":82},[34,130242,62],{"emptyLinePlaceholder":61},[34,130244,130245],{"class":36,"line":88},[34,130246,130247],{"class":40},"# Check logs\n",[34,130249,130250,130252,130255,130257],{"class":36,"line":242},[34,130251,436],{"class":47},[34,130253,130254],{"class":54}," journalctl",[34,130256,43069],{"class":50},[34,130258,130228],{"class":54},[11,130260,130262],{"id":130261},"key-resources","Key Resources",[309,130264,130265,130271],{},[312,130266,130267],{},[145,130268,28212],{"href":130269,"rel":130270},"https://docs.k3s.io/",[149],[312,130272,130273],{},[145,130274,130277],{"href":130275,"rel":130276},"https://docs.k3s.io/quick-start",[149],"Quick Start Guide",[388,130279,130280],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .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}",{"title":30,"searchDepth":44,"depth":44,"links":130282},[130283,130284,130285,130286,130290,130291,130292],{"id":13533,"depth":44,"text":13534},{"id":6040,"depth":44,"text":6035},{"id":130077,"depth":44,"text":59741},{"id":96,"depth":44,"text":97,"children":130287},[130288,130289],{"id":130096,"depth":58,"text":130097},{"id":130119,"depth":58,"text":130120},{"id":558,"depth":44,"text":8686},{"id":113746,"depth":44,"text":113747},{"id":130261,"depth":44,"text":130262},"Lightweight Kubernetes distribution optimized for edge and IoT deployments.",{},"/k3s/overview",{"title":130015,"description":130293},"k3s/overview",[130206,7701,130299,130300],"edge-computing","iot","3TLO0a_shuac0O7OrKBA3_7HCgRptv1gDAuIZjKw6AY",{"id":130303,"title":130304,"body":130305,"date":402,"description":130351,"extension":404,"meta":130352,"navigation":61,"order":37,"path":130353,"seo":130354,"stem":130355,"subject":130356,"tags":130357,"__hash__":130361},"topics/kafka/overview.md","Kafka Guide",{"type":8,"value":130306,"toc":130343},[130307,130309,130312,130316,130320,130326,130330,130336,130340],[11,130308,14],{"id":13},[16,130310,130311],{},"Kafka is a distributed event streaming platform. It allows for the publish and subscribe model of messaging and is often used for real-time analytics, log aggregation, and event sourcing.",[11,130313,130315],{"id":130314},"core-components","Core Components",[102,130317,130319],{"id":130318},"topics","Topics",[25,130321,130324],{"className":130322,"code":130323,"language":780},[13703],"# Kafka organizes data into categories called \"topics.\"\n# Topics are like tables in a relational database, but for logs.\n",[20,130325,130323],{"__ignoreMap":30},[102,130327,130329],{"id":130328},"brokers","Brokers",[25,130331,130334],{"className":130332,"code":130333,"language":780},[13703],"# Service nodes in a cluster that process and manage topics.\n",[20,130335,130333],{"__ignoreMap":30},[102,130337,130339],{"id":130338},"producer-and-consumers","Producer and Consumers",[16,130341,130342],{},"---   even started-- would need dig more but modular summary!",{"title":30,"searchDepth":44,"depth":44,"links":130344},[130345,130346],{"id":13,"depth":44,"text":14},{"id":130314,"depth":44,"text":130315,"children":130347},[130348,130349,130350],{"id":130318,"depth":58,"text":130319},{"id":130328,"depth":58,"text":130329},{"id":130338,"depth":58,"text":130339},"An overview of Kafka's core concepts and getting started with message streaming.",{},"/kafka/overview",{"title":130304,"description":130351},"kafka/overview","kafka",[130356,130358,130359,130360],"streaming","messaging","pubsub","UcEwRxteKHrzzZF3Kxb1_EQxqs0Aoh1UyjVO-g1g7Z8",{"id":130363,"title":130364,"body":130365,"date":402,"description":130572,"extension":404,"meta":130573,"navigation":61,"order":88,"path":130574,"seo":130575,"stem":130576,"subject":130577,"tags":130578,"__hash__":130580},"topics/kiss/avoid-clever-code.md","Avoid Clever Code",{"type":8,"value":130366,"toc":130569},[130367,130370,130566],[11,130368,130364],{"id":130369},"avoid-clever-code",[25,130371,130373],{"className":571,"code":130372,"language":573,"meta":30,"style":30},"// ❌ Bad - clever but confusing\nconst r = a => a.reduce((p, c) => (p[c] = (p[c] || 0) + 1, p), {});\n\n// What does this do? Who knows without studying it.\n\n// ✅ Good - clear and readable\nfunction countOccurrences(items: string[]): Record\u003Cstring, number> {\n  const counts: Record\u003Cstring, number> = {};\n  \n  for (const item of items) {\n    counts[item] = (counts[item] || 0) + 1;\n  }\n  \n  return counts;\n}\n",[20,130374,130375,130380,130430,130434,130439,130443,130448,130481,130506,130510,130525,130547,130551,130555,130562],{"__ignoreMap":30},[34,130376,130377],{"class":36,"line":37},[34,130378,130379],{"class":40},"// ❌ Bad - clever but confusing\n",[34,130381,130382,130384,130387,130389,130391,130393,130396,130398,130400,130402,130404,130406,130408,130410,130413,130415,130417,130419,130421,130423,130425,130427],{"class":36,"line":44},[34,130383,14676],{"class":580},[34,130385,130386],{"class":47}," r",[34,130388,683],{"class":580},[34,130390,19385],{"class":675},[34,130392,1895],{"class":580},[34,130394,130395],{"class":181}," a.",[34,130397,8345],{"class":47},[34,130399,8348],{"class":181},[34,130401,16],{"class":675},[34,130403,1798],{"class":181},[34,130405,4377],{"class":675},[34,130407,4817],{"class":181},[34,130409,3361],{"class":580},[34,130411,130412],{"class":181}," (p[c] ",[34,130414,1301],{"class":580},[34,130416,130412],{"class":181},[34,130418,10892],{"class":580},[34,130420,8070],{"class":50},[34,130422,4817],{"class":181},[34,130424,2940],{"class":580},[34,130426,3567],{"class":50},[34,130428,130429],{"class":181},", p), {});\n",[34,130431,130432],{"class":36,"line":58},[34,130433,62],{"emptyLinePlaceholder":61},[34,130435,130436],{"class":36,"line":65},[34,130437,130438],{"class":40},"// What does this do? Who knows without studying it.\n",[34,130440,130441],{"class":36,"line":71},[34,130442,62],{"emptyLinePlaceholder":61},[34,130444,130445],{"class":36,"line":77},[34,130446,130447],{"class":40},"// ✅ Good - clear and readable\n",[34,130449,130450,130452,130455,130457,130459,130461,130463,130465,130467,130470,130472,130474,130476,130479],{"class":36,"line":82},[34,130451,11044],{"class":580},[34,130453,130454],{"class":47}," countOccurrences",[34,130456,1607],{"class":181},[34,130458,4874],{"class":675},[34,130460,165],{"class":580},[34,130462,680],{"class":50},[34,130464,70998],{"class":181},[34,130466,165],{"class":580},[34,130468,130469],{"class":47}," Record",[34,130471,815],{"class":181},[34,130473,30113],{"class":50},[34,130475,1798],{"class":181},[34,130477,130478],{"class":50},"number",[34,130480,1719],{"class":181},[34,130482,130483,130485,130488,130490,130492,130494,130496,130498,130500,130502,130504],{"class":36,"line":88},[34,130484,17415],{"class":580},[34,130486,130487],{"class":50}," counts",[34,130489,165],{"class":580},[34,130491,130469],{"class":47},[34,130493,815],{"class":181},[34,130495,30113],{"class":50},[34,130497,1798],{"class":181},[34,130499,130478],{"class":50},[34,130501,32840],{"class":181},[34,130503,1301],{"class":580},[34,130505,52036],{"class":181},[34,130507,130508],{"class":36,"line":242},[34,130509,827],{"class":181},[34,130511,130512,130514,130516,130518,130520,130522],{"class":36,"line":250},[34,130513,52076],{"class":580},[34,130515,3204],{"class":181},[34,130517,14676],{"class":580},[34,130519,33701],{"class":50},[34,130521,14917],{"class":580},[34,130523,130524],{"class":181}," items) {\n",[34,130526,130527,130530,130532,130535,130537,130539,130541,130543,130545],{"class":36,"line":263},[34,130528,130529],{"class":181},"    counts[item] ",[34,130531,1301],{"class":580},[34,130533,130534],{"class":181}," (counts[item] ",[34,130536,10892],{"class":580},[34,130538,8070],{"class":50},[34,130540,4817],{"class":181},[34,130542,2940],{"class":580},[34,130544,3567],{"class":50},[34,130546,593],{"class":181},[34,130548,130549],{"class":36,"line":275},[34,130550,857],{"class":181},[34,130552,130553],{"class":36,"line":700},[34,130554,827],{"class":181},[34,130556,130557,130559],{"class":36,"line":706},[34,130558,8155],{"class":580},[34,130560,130561],{"class":181}," counts;\n",[34,130563,130564],{"class":36,"line":715},[34,130565,693],{"class":181},[388,130567,130568],{},"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 .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}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":30,"searchDepth":44,"depth":44,"links":130570},[130571],{"id":130369,"depth":44,"text":130364},"Avoid Clever Code in KISS Principle.",{},"/kiss/avoid-clever-code",{"title":130364,"description":130572},"kiss/avoid-clever-code","kiss",[130577,5600,130579,58892,58893],"simplicity","yFJ6aITlbbvoqsdZvWCqWWGCICRFFbs8bL6_TsjdfqU",{"id":130582,"title":130583,"body":130584,"date":402,"description":130833,"extension":404,"meta":130834,"navigation":61,"order":65,"path":130835,"seo":130836,"stem":130837,"subject":130577,"tags":130838,"__hash__":130839},"topics/kiss/avoid-nested-logic.md","Avoid Nested Logic",{"type":8,"value":130585,"toc":130830},[130586,130589,130828],[11,130587,130583],{"id":130588},"avoid-nested-logic",[25,130590,130592],{"className":571,"code":130591,"language":573,"meta":30,"style":30},"// ❌ Bad - deeply nested conditions\nfunction processOrder(order: Order) {\n  if (order) {\n    if (order.items.length > 0) {\n      if (order.status === 'pending') {\n        if (order.payment) {\n          if (order.payment.verified) {\n            // Finally do something\n            return submitOrder(order);\n          }\n        }\n      }\n    }\n  }\n  return null;\n}\n\n// ✅ Good - early returns, flat structure\nfunction processOrder(order: Order) {\n  if (!order) return null;\n  if (order.items.length === 0) return null;\n  if (order.status !== 'pending') return null;\n  if (!order.payment?.verified) return null;\n  \n  return submitOrder(order);\n}\n",[20,130593,130594,130599,130616,130623,130638,130652,130659,130667,130672,130682,130686,130690,130694,130698,130702,130710,130714,130718,130723,130739,130756,130777,130795,130812,130816,130824],{"__ignoreMap":30},[34,130595,130596],{"class":36,"line":37},[34,130597,130598],{"class":40},"// ❌ Bad - deeply nested conditions\n",[34,130600,130601,130603,130606,130608,130610,130612,130614],{"class":36,"line":44},[34,130602,11044],{"class":580},[34,130604,130605],{"class":47}," processOrder",[34,130607,1607],{"class":181},[34,130609,60364],{"class":675},[34,130611,165],{"class":580},[34,130613,60369],{"class":47},[34,130615,2416],{"class":181},[34,130617,130618,130620],{"class":36,"line":58},[34,130619,8084],{"class":580},[34,130621,130622],{"class":181}," (order) {\n",[34,130624,130625,130627,130630,130632,130634,130636],{"class":36,"line":65},[34,130626,2902],{"class":580},[34,130628,130629],{"class":181}," (order.items.",[34,130631,2908],{"class":50},[34,130633,9009],{"class":580},[34,130635,8070],{"class":50},[34,130637,2416],{"class":181},[34,130639,130640,130642,130645,130647,130650],{"class":36,"line":71},[34,130641,52245],{"class":580},[34,130643,130644],{"class":181}," (order.status ",[34,130646,15543],{"class":580},[34,130648,130649],{"class":54}," 'pending'",[34,130651,2416],{"class":181},[34,130653,130654,130656],{"class":36,"line":77},[34,130655,49573],{"class":580},[34,130657,130658],{"class":181}," (order.payment) {\n",[34,130660,130661,130664],{"class":36,"line":82},[34,130662,130663],{"class":580},"          if",[34,130665,130666],{"class":181}," (order.payment.verified) {\n",[34,130668,130669],{"class":36,"line":88},[34,130670,130671],{"class":40},"            // Finally do something\n",[34,130673,130674,130676,130679],{"class":36,"line":242},[34,130675,51208],{"class":580},[34,130677,130678],{"class":47}," submitOrder",[34,130680,130681],{"class":181},"(order);\n",[34,130683,130684],{"class":36,"line":250},[34,130685,129701],{"class":181},[34,130687,130688],{"class":36,"line":263},[34,130689,26208],{"class":181},[34,130691,130692],{"class":36,"line":275},[34,130693,3078],{"class":181},[34,130695,130696],{"class":36,"line":700},[34,130697,3229],{"class":181},[34,130699,130700],{"class":36,"line":706},[34,130701,857],{"class":181},[34,130703,130704,130706,130708],{"class":36,"line":715},[34,130705,8155],{"class":580},[34,130707,13898],{"class":50},[34,130709,593],{"class":181},[34,130711,130712],{"class":36,"line":725},[34,130713,693],{"class":181},[34,130715,130716],{"class":36,"line":734},[34,130717,62],{"emptyLinePlaceholder":61},[34,130719,130720],{"class":36,"line":742},[34,130721,130722],{"class":40},"// ✅ Good - early returns, flat structure\n",[34,130724,130725,130727,130729,130731,130733,130735,130737],{"class":36,"line":748},[34,130726,11044],{"class":580},[34,130728,130605],{"class":47},[34,130730,1607],{"class":181},[34,130732,60364],{"class":675},[34,130734,165],{"class":580},[34,130736,60369],{"class":47},[34,130738,2416],{"class":181},[34,130740,130741,130743,130745,130747,130750,130752,130754],{"class":36,"line":754},[34,130742,8084],{"class":580},[34,130744,3204],{"class":181},[34,130746,10307],{"class":580},[34,130748,130749],{"class":181},"order) ",[34,130751,2917],{"class":580},[34,130753,13898],{"class":50},[34,130755,593],{"class":181},[34,130757,130758,130760,130762,130764,130767,130769,130771,130773,130775],{"class":36,"line":759},[34,130759,8084],{"class":580},[34,130761,130629],{"class":181},[34,130763,2908],{"class":50},[34,130765,130766],{"class":580}," ===",[34,130768,8070],{"class":50},[34,130770,4817],{"class":181},[34,130772,2917],{"class":580},[34,130774,13898],{"class":50},[34,130776,593],{"class":181},[34,130778,130779,130781,130783,130785,130787,130789,130791,130793],{"class":36,"line":771},[34,130780,8084],{"class":580},[34,130782,130644],{"class":181},[34,130784,48741],{"class":580},[34,130786,130649],{"class":54},[34,130788,4817],{"class":181},[34,130790,2917],{"class":580},[34,130792,13898],{"class":50},[34,130794,593],{"class":181},[34,130796,130797,130799,130801,130803,130806,130808,130810],{"class":36,"line":794},[34,130798,8084],{"class":580},[34,130800,3204],{"class":181},[34,130802,10307],{"class":580},[34,130804,130805],{"class":181},"order.payment?.verified) ",[34,130807,2917],{"class":580},[34,130809,13898],{"class":50},[34,130811,593],{"class":181},[34,130813,130814],{"class":36,"line":824},[34,130815,827],{"class":181},[34,130817,130818,130820,130822],{"class":36,"line":830},[34,130819,8155],{"class":580},[34,130821,130678],{"class":47},[34,130823,130681],{"class":181},[34,130825,130826],{"class":36,"line":839},[34,130827,693],{"class":181},[388,130829,17665],{},{"title":30,"searchDepth":44,"depth":44,"links":130831},[130832],{"id":130588,"depth":44,"text":130583},"Avoid Nested Logic in KISS Principle.",{},"/kiss/avoid-nested-logic",{"title":130583,"description":130833},"kiss/avoid-nested-logic",[130577,5600,130579,58892,58893],"OS5eoTurgIu-qNdnJQEDFRgLXMrRTROGzQsn2Wdv1CQ",{"id":130841,"title":130842,"body":130843,"date":402,"description":131016,"extension":404,"meta":131017,"navigation":61,"order":71,"path":131018,"seo":131019,"stem":131020,"subject":130577,"tags":131021,"__hash__":131022},"topics/kiss/clear-variable-names.md","Clear Variable Names",{"type":8,"value":130844,"toc":131013},[130845,130848,131010],[11,130846,130842],{"id":130847},"clear-variable-names",[25,130849,130851],{"className":571,"code":130850,"language":573,"meta":30,"style":30},"// ❌ Bad - cryptic names\nconst d = new Date();\nconst t = d.getTime();\nconst x = users.filter(u => u.a > 18 && u.s === 'active');\n\n// ✅ Good - descriptive names\nconst currentDate = new Date();\nconst timestamp = currentDate.getTime();\nconst activeAdultUsers = users.filter(\n  user => user.age > 18 && user.status === 'active'\n);\n",[20,130852,130853,130858,130872,130889,130927,130931,130936,130951,130967,130982,131006],{"__ignoreMap":30},[34,130854,130855],{"class":36,"line":37},[34,130856,130857],{"class":40},"// ❌ Bad - cryptic names\n",[34,130859,130860,130862,130864,130866,130868,130870],{"class":36,"line":44},[34,130861,14676],{"class":580},[34,130863,89838],{"class":50},[34,130865,683],{"class":580},[34,130867,809],{"class":580},[34,130869,60453],{"class":47},[34,130871,851],{"class":181},[34,130873,130874,130876,130879,130881,130884,130887],{"class":36,"line":58},[34,130875,14676],{"class":580},[34,130877,130878],{"class":50}," t",[34,130880,683],{"class":580},[34,130882,130883],{"class":181}," d.",[34,130885,130886],{"class":47},"getTime",[34,130888,851],{"class":181},[34,130890,130891,130893,130895,130897,130900,130902,130904,130906,130908,130911,130913,130915,130917,130920,130922,130925],{"class":36,"line":65},[34,130892,14676],{"class":580},[34,130894,31288],{"class":50},[34,130896,683],{"class":580},[34,130898,130899],{"class":181}," users.",[34,130901,32125],{"class":47},[34,130903,1607],{"class":181},[34,130905,64828],{"class":675},[34,130907,1895],{"class":580},[34,130909,130910],{"class":181}," u.a ",[34,130912,5691],{"class":580},[34,130914,18845],{"class":50},[34,130916,19963],{"class":580},[34,130918,130919],{"class":181}," u.s ",[34,130921,15543],{"class":580},[34,130923,130924],{"class":54}," 'active'",[34,130926,1586],{"class":181},[34,130928,130929],{"class":36,"line":71},[34,130930,62],{"emptyLinePlaceholder":61},[34,130932,130933],{"class":36,"line":77},[34,130934,130935],{"class":40},"// ✅ Good - descriptive names\n",[34,130937,130938,130940,130943,130945,130947,130949],{"class":36,"line":82},[34,130939,14676],{"class":580},[34,130941,130942],{"class":50}," currentDate",[34,130944,683],{"class":580},[34,130946,809],{"class":580},[34,130948,60453],{"class":47},[34,130950,851],{"class":181},[34,130952,130953,130955,130958,130960,130963,130965],{"class":36,"line":88},[34,130954,14676],{"class":580},[34,130956,130957],{"class":50}," timestamp",[34,130959,683],{"class":580},[34,130961,130962],{"class":181}," currentDate.",[34,130964,130886],{"class":47},[34,130966,851],{"class":181},[34,130968,130969,130971,130974,130976,130978,130980],{"class":36,"line":242},[34,130970,14676],{"class":580},[34,130972,130973],{"class":50}," activeAdultUsers",[34,130975,683],{"class":580},[34,130977,130899],{"class":181},[34,130979,32125],{"class":47},[34,130981,1882],{"class":181},[34,130983,130984,130987,130989,130992,130994,130996,130998,131001,131003],{"class":36,"line":250},[34,130985,130986],{"class":675},"  user",[34,130988,1895],{"class":580},[34,130990,130991],{"class":181}," user.age ",[34,130993,5691],{"class":580},[34,130995,18845],{"class":50},[34,130997,19963],{"class":580},[34,130999,131000],{"class":181}," user.status ",[34,131002,15543],{"class":580},[34,131004,131005],{"class":54}," 'active'\n",[34,131007,131008],{"class":36,"line":263},[34,131009,1586],{"class":181},[388,131011,131012],{},"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 .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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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);}",{"title":30,"searchDepth":44,"depth":44,"links":131014},[131015],{"id":130847,"depth":44,"text":130842},"Clear Variable Names in KISS Principle.",{},"/kiss/clear-variable-names",{"title":130842,"description":131016},"kiss/clear-variable-names",[130577,5600,130579,58892,58893],"mI86F6FOtjcf9wIAr6Zu4HLUZY8d8jDR0y9bOBlh1RI",{"id":131024,"title":131025,"body":131026,"date":402,"description":131165,"extension":404,"meta":131166,"navigation":61,"order":250,"path":131167,"seo":131168,"stem":131169,"subject":130577,"tags":131170,"__hash__":131171},"topics/kiss/minimal-dependencies.md","Minimal Dependencies",{"type":8,"value":131027,"toc":131162},[131028,131031,131160],[11,131029,131025],{"id":131030},"minimal-dependencies",[25,131032,131034],{"className":571,"code":131033,"language":573,"meta":30,"style":30},"// ❌ Bad - library for simple tasks\nimport { leftPad } from 'left-pad';\nimport { isNumber } from 'is-number';\nimport { isArray } from 'is-array';\n\n// ✅ Good - use built-in features\nconst padded = String(num).padStart(5, '0');\nconst isNum = typeof value === 'number';\nconst isArr = Array.isArray(value);\n",[20,131035,131036,131041,131055,131069,131083,131087,131092,131121,131142],{"__ignoreMap":30},[34,131037,131038],{"class":36,"line":37},[34,131039,131040],{"class":40},"// ❌ Bad - library for simple tasks\n",[34,131042,131043,131045,131048,131050,131053],{"class":36,"line":44},[34,131044,581],{"class":580},[34,131046,131047],{"class":181}," { leftPad } ",[34,131049,587],{"class":580},[34,131051,131052],{"class":54}," 'left-pad'",[34,131054,593],{"class":181},[34,131056,131057,131059,131062,131064,131067],{"class":36,"line":58},[34,131058,581],{"class":580},[34,131060,131061],{"class":181}," { isNumber } ",[34,131063,587],{"class":580},[34,131065,131066],{"class":54}," 'is-number'",[34,131068,593],{"class":181},[34,131070,131071,131073,131076,131078,131081],{"class":36,"line":65},[34,131072,581],{"class":580},[34,131074,131075],{"class":181}," { isArray } ",[34,131077,587],{"class":580},[34,131079,131080],{"class":54}," 'is-array'",[34,131082,593],{"class":181},[34,131084,131085],{"class":36,"line":71},[34,131086,62],{"emptyLinePlaceholder":61},[34,131088,131089],{"class":36,"line":77},[34,131090,131091],{"class":40},"// ✅ Good - use built-in features\n",[34,131093,131094,131096,131099,131101,131104,131107,131110,131112,131114,131116,131119],{"class":36,"line":82},[34,131095,14676],{"class":580},[34,131097,131098],{"class":50}," padded",[34,131100,683],{"class":580},[34,131102,131103],{"class":47}," String",[34,131105,131106],{"class":181},"(num).",[34,131108,131109],{"class":47},"padStart",[34,131111,1607],{"class":181},[34,131113,2778],{"class":50},[34,131115,1798],{"class":181},[34,131117,131118],{"class":54},"'0'",[34,131120,1586],{"class":181},[34,131122,131123,131125,131128,131130,131133,131135,131137,131140],{"class":36,"line":88},[34,131124,14676],{"class":580},[34,131126,131127],{"class":50}," isNum",[34,131129,683],{"class":580},[34,131131,131132],{"class":580}," typeof",[34,131134,8271],{"class":181},[34,131136,15543],{"class":580},[34,131138,131139],{"class":54}," 'number'",[34,131141,593],{"class":181},[34,131143,131144,131146,131149,131151,131154,131157],{"class":36,"line":242},[34,131145,14676],{"class":580},[34,131147,131148],{"class":50}," isArr",[34,131150,683],{"class":580},[34,131152,131153],{"class":181}," Array.",[34,131155,131156],{"class":47},"isArray",[34,131158,131159],{"class":181},"(value);\n",[388,131161,12143],{},{"title":30,"searchDepth":44,"depth":44,"links":131163},[131164],{"id":131030,"depth":44,"text":131025},"Minimal Dependencies in KISS Principle.",{},"/kiss/minimal-dependencies",{"title":131025,"description":131165},"kiss/minimal-dependencies",[130577,5600,130579,58892,58893],"E3tzfZIzQ0FXsIMUEUORpUUcwmSmSszaJwH3xpJQLT0",{"id":131173,"title":131174,"body":131175,"date":2633,"description":131250,"extension":404,"meta":131251,"navigation":61,"order":37,"path":131252,"seo":131253,"stem":131254,"subject":130577,"tags":131255,"__hash__":131256},"topics/kiss/overview.md","KISS Principle",{"type":8,"value":131176,"toc":131248},[131177],[309,131178,131179,131185,131191,131195,131199,131205,131211,131215,131221,131225,131231,131237,131242],{},[312,131180,131181],{},[145,131182,131184],{"href":131183},"/kiss/what-is-kiss","What is KISS?",[312,131186,131187],{},[145,131188,131190],{"href":131189},"/kiss/simple-conditionals","Simple Conditionals",[312,131192,131193],{},[145,131194,130583],{"href":130835},[312,131196,131197],{},[145,131198,130842],{"href":131018},[312,131200,131201],{},[145,131202,131204],{"href":131203},"/kiss/simple-functions","Simple Functions",[312,131206,131207],{},[145,131208,131210],{"href":131209},"/kiss/straightforward-data-structures","Straightforward Data Structures",[312,131212,131213],{},[145,131214,130364],{"href":130574},[312,131216,131217],{},[145,131218,131220],{"href":131219},"/kiss/simple-error-messages","Simple Error Messages",[312,131222,131223],{},[145,131224,131025],{"href":131167},[312,131226,131227],{},[145,131228,131230],{"href":131229},"/kiss/simple-api-design","Simple API Design",[312,131232,131233],{},[145,131234,131236],{"href":131235},"/kiss/signs-your-code-is-too-complex","Signs Your Code is Too Complex",[312,131238,131239],{},[145,131240,59666],{"href":131241},"/kiss/quick-reference",[312,131243,131244],{},[145,131245,131247],{"href":131246},"/kiss/related-principles","Related Principles",{"title":30,"searchDepth":44,"depth":44,"links":131249},[],"Keep It Simple, Stupid - a design principle that prioritizes simplicity over unnecessary complexity.",{},"/kiss/overview",{"title":131174,"description":131250},"kiss/overview",[130577,5600,130579,58892,58893],"Vjclfxt81BYBMjoN9HQxUTu1sWY_Ru4we_VNhKfgdxQ",{"id":131258,"title":59666,"body":131259,"date":402,"description":131328,"extension":404,"meta":131329,"navigation":61,"order":700,"path":131241,"seo":131330,"stem":131331,"subject":130577,"tags":131332,"__hash__":131333},"topics/kiss/quick-reference.md",{"type":8,"value":131260,"toc":131325},[131261,131263],[11,131262,59666],{"id":59682},[14308,131264,131265,131275],{},[14311,131266,131267],{},[14314,131268,131269,131272],{},[14317,131270,131271],{},"Complex",[14317,131273,131274],{},"Simple",[14326,131276,131277,131285,131293,131301,131309,131317],{},[14314,131278,131279,131282],{},[14331,131280,131281],{},"Nested ifs",[14331,131283,131284],{},"Early returns",[14314,131286,131287,131290],{},[14331,131288,131289],{},"Clever one-liners",[14331,131291,131292],{},"Readable loops",[14314,131294,131295,131298],{},[14331,131296,131297],{},"Deep hierarchies",[14331,131299,131300],{},"Flat structures",[14314,131302,131303,131306],{},[14331,131304,131305],{},"Many parameters",[14331,131307,131308],{},"Config objects",[14314,131310,131311,131314],{},[14331,131312,131313],{},"Cryptic names",[14331,131315,131316],{},"Descriptive names",[14314,131318,131319,131322],{},[14331,131320,131321],{},"Large functions",[14331,131323,131324],{},"Small functions",{"title":30,"searchDepth":44,"depth":44,"links":131326},[131327],{"id":59682,"depth":44,"text":59666},"Quick Reference in KISS Principle.",{},{"title":59666,"description":131328},"kiss/quick-reference",[130577,5600,130579,58892,58893],"gfO3w_qtggSFYyGS2xWuURMwflLoU49toJZCUCOEoX8",{"id":131335,"title":131247,"body":131336,"date":402,"description":131350,"extension":404,"meta":131351,"navigation":61,"order":706,"path":131246,"seo":131352,"stem":131353,"subject":130577,"tags":131354,"__hash__":131355},"topics/kiss/related-principles.md",{"type":8,"value":131337,"toc":131347},[131338,131341],[11,131339,131247],{"id":131340},"related-principles",[25,131342,131345],{"className":131343,"code":131344,"language":780,"meta":30},[13703],"KISS works well with:\n\n• YAGNI - You Aren't Gonna Need It\n• DRY - Don't Repeat Yourself\n• SOLID - Object-oriented design\n• Unix Philosophy - Do one thing well\n\n\"Simplicity is the ultimate sophistication\" - Leonardo da Vinci\n\"Everything should be made as simple as possible, but not simpler\" - Einstein\n",[20,131346,131344],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":131348},[131349],{"id":131340,"depth":44,"text":131247},"Related Principles in KISS Principle.",{},{"title":131247,"description":131350},"kiss/related-principles",[130577,5600,130579,58892,58893],"iAzSR7twEAfjHxsI6S9AQMk-eyRn_i4MuVN_cnB8eq4",{"id":131357,"title":131236,"body":131358,"date":402,"description":131372,"extension":404,"meta":131373,"navigation":61,"order":275,"path":131235,"seo":131374,"stem":131375,"subject":130577,"tags":131376,"__hash__":131377},"topics/kiss/signs-your-code-is-too-complex.md",{"type":8,"value":131359,"toc":131369},[131360,131363],[11,131361,131236],{"id":131362},"signs-your-code-is-too-complex",[25,131364,131367],{"className":131365,"code":131366,"language":780,"meta":30},[13703],"⚠️ Warning signs:\n\n• You need comments to explain what code does\n• New team members struggle to understand it\n• You can't remember how it works after a week\n• Small changes require touching many files\n• Unit tests are hard to write\n• Debugging takes hours instead of minutes\n",[20,131368,131366],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":131370},[131371],{"id":131362,"depth":44,"text":131236},"Signs Your Code is Too Complex in KISS Principle.",{},{"title":131236,"description":131372},"kiss/signs-your-code-is-too-complex",[130577,5600,130579,58892,58893],"a173xK22hiShsIKkeIDbp0Bn6s1y4dLGua-m3txGp7g",{"id":131379,"title":131230,"body":131380,"date":402,"description":131540,"extension":404,"meta":131541,"navigation":61,"order":263,"path":131229,"seo":131542,"stem":131543,"subject":130577,"tags":131544,"__hash__":131545},"topics/kiss/simple-api-design.md",{"type":8,"value":131381,"toc":131537},[131382,131385,131534],[11,131383,131230],{"id":131384},"simple-api-design",[25,131386,131388],{"className":571,"code":131387,"language":573,"meta":30,"style":30},"// ❌ Bad - complex API with many options\ncreateButton({\n  type: 'primary',\n  size: 'medium',\n  variant: 'filled',\n  elevation: 2,\n  ripple: true,\n  disableRipple: false,\n  fullWidth: false,\n  loading: false,\n  loadingPosition: 'center',\n  // ... 20 more options\n});\n\n// ✅ Good - sensible defaults, minimal config\ncreateButton({ label: 'Submit' });\ncreateButton({ label: 'Cancel', variant: 'secondary' });\n",[20,131389,131390,131395,131402,131412,131422,131432,131441,131450,131459,131468,131477,131487,131492,131496,131500,131505,131517],{"__ignoreMap":30},[34,131391,131392],{"class":36,"line":37},[34,131393,131394],{"class":40},"// ❌ Bad - complex API with many options\n",[34,131396,131397,131400],{"class":36,"line":44},[34,131398,131399],{"class":47},"createButton",[34,131401,613],{"class":181},[34,131403,131404,131407,131410],{"class":36,"line":58},[34,131405,131406],{"class":181},"  type: ",[34,131408,131409],{"class":54},"'primary'",[34,131411,624],{"class":181},[34,131413,131414,131417,131420],{"class":36,"line":65},[34,131415,131416],{"class":181},"  size: ",[34,131418,131419],{"class":54},"'medium'",[34,131421,624],{"class":181},[34,131423,131424,131427,131430],{"class":36,"line":71},[34,131425,131426],{"class":181},"  variant: ",[34,131428,131429],{"class":54},"'filled'",[34,131431,624],{"class":181},[34,131433,131434,131437,131439],{"class":36,"line":77},[34,131435,131436],{"class":181},"  elevation: ",[34,131438,8324],{"class":50},[34,131440,624],{"class":181},[34,131442,131443,131446,131448],{"class":36,"line":82},[34,131444,131445],{"class":181},"  ripple: ",[34,131447,632],{"class":50},[34,131449,624],{"class":181},[34,131451,131452,131455,131457],{"class":36,"line":88},[34,131453,131454],{"class":181},"  disableRipple: ",[34,131456,103387],{"class":50},[34,131458,624],{"class":181},[34,131460,131461,131464,131466],{"class":36,"line":242},[34,131462,131463],{"class":181},"  fullWidth: ",[34,131465,103387],{"class":50},[34,131467,624],{"class":181},[34,131469,131470,131473,131475],{"class":36,"line":250},[34,131471,131472],{"class":181},"  loading: ",[34,131474,103387],{"class":50},[34,131476,624],{"class":181},[34,131478,131479,131482,131485],{"class":36,"line":263},[34,131480,131481],{"class":181},"  loadingPosition: ",[34,131483,131484],{"class":54},"'center'",[34,131486,624],{"class":181},[34,131488,131489],{"class":36,"line":275},[34,131490,131491],{"class":40},"  // ... 20 more options\n",[34,131493,131494],{"class":36,"line":700},[34,131495,14873],{"class":181},[34,131497,131498],{"class":36,"line":706},[34,131499,62],{"emptyLinePlaceholder":61},[34,131501,131502],{"class":36,"line":715},[34,131503,131504],{"class":40},"// ✅ Good - sensible defaults, minimal config\n",[34,131506,131507,131509,131512,131515],{"class":36,"line":725},[34,131508,131399],{"class":47},[34,131510,131511],{"class":181},"({ label: ",[34,131513,131514],{"class":54},"'Submit'",[34,131516,15567],{"class":181},[34,131518,131519,131521,131523,131526,131529,131532],{"class":36,"line":734},[34,131520,131399],{"class":47},[34,131522,131511],{"class":181},[34,131524,131525],{"class":54},"'Cancel'",[34,131527,131528],{"class":181},", variant: ",[34,131530,131531],{"class":54},"'secondary'",[34,131533,15567],{"class":181},[388,131535,131536],{},"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 .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 .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":30,"searchDepth":44,"depth":44,"links":131538},[131539],{"id":131384,"depth":44,"text":131230},"Simple API Design in KISS Principle.",{},{"title":131230,"description":131540},"kiss/simple-api-design",[130577,5600,130579,58892,58893],"wHALTgER8J5Jr0MRhZfZYq2-S0TRFT_O5-3f-588KSY",{"id":131547,"title":131190,"body":131548,"date":402,"description":131779,"extension":404,"meta":131780,"navigation":61,"order":58,"path":131189,"seo":131781,"stem":131782,"subject":130577,"tags":131783,"__hash__":131784},"topics/kiss/simple-conditionals.md",{"type":8,"value":131549,"toc":131776},[131550,131553,131774],[11,131551,131190],{"id":131552},"simple-conditionals",[25,131554,131556],{"className":571,"code":131555,"language":573,"meta":30,"style":30},"// ❌ Bad - unnecessarily complex\nfunction isAdult(age: number): boolean {\n  return age >= 18 ? true : false;\n}\n\nfunction hasAccess(user: User): boolean {\n  if (user.role === 'admin') {\n    return true;\n  } else {\n    return false;\n  }\n}\n\n// ✅ Good - simple and direct\nfunction isAdult(age: number): boolean {\n  return age >= 18;\n}\n\nfunction hasAccess(user: User): boolean {\n  return user.role === 'admin';\n}\n",[20,131557,131558,131563,131586,131607,131611,131615,131638,131652,131660,131668,131676,131680,131684,131688,131693,131715,131727,131731,131735,131757,131770],{"__ignoreMap":30},[34,131559,131560],{"class":36,"line":37},[34,131561,131562],{"class":40},"// ❌ Bad - unnecessarily complex\n",[34,131564,131565,131567,131570,131572,131574,131576,131578,131580,131582,131584],{"class":36,"line":44},[34,131566,11044],{"class":580},[34,131568,131569],{"class":47}," isAdult",[34,131571,1607],{"class":181},[34,131573,13337],{"class":675},[34,131575,165],{"class":580},[34,131577,2741],{"class":50},[34,131579,1617],{"class":181},[34,131581,165],{"class":580},[34,131583,59460],{"class":50},[34,131585,661],{"class":181},[34,131587,131588,131590,131592,131594,131596,131599,131601,131603,131605],{"class":36,"line":58},[34,131589,8155],{"class":580},[34,131591,25065],{"class":181},[34,131593,18401],{"class":580},[34,131595,18845],{"class":50},[34,131597,131598],{"class":580}," ?",[34,131600,32945],{"class":50},[34,131602,64223],{"class":580},[34,131604,68645],{"class":50},[34,131606,593],{"class":181},[34,131608,131609],{"class":36,"line":65},[34,131610,693],{"class":181},[34,131612,131613],{"class":36,"line":71},[34,131614,62],{"emptyLinePlaceholder":61},[34,131616,131617,131619,131622,131624,131626,131628,131630,131632,131634,131636],{"class":36,"line":77},[34,131618,11044],{"class":580},[34,131620,131621],{"class":47}," hasAccess",[34,131623,1607],{"class":181},[34,131625,3945],{"class":675},[34,131627,165],{"class":580},[34,131629,3950],{"class":47},[34,131631,1617],{"class":181},[34,131633,165],{"class":580},[34,131635,59460],{"class":50},[34,131637,661],{"class":181},[34,131639,131640,131642,131645,131647,131650],{"class":36,"line":82},[34,131641,8084],{"class":580},[34,131643,131644],{"class":181}," (user.role ",[34,131646,15543],{"class":580},[34,131648,131649],{"class":54}," 'admin'",[34,131651,2416],{"class":181},[34,131653,131654,131656,131658],{"class":36,"line":88},[34,131655,1564],{"class":580},[34,131657,32945],{"class":50},[34,131659,593],{"class":181},[34,131661,131662,131664,131666],{"class":36,"line":242},[34,131663,126416],{"class":181},[34,131665,18871],{"class":580},[34,131667,661],{"class":181},[34,131669,131670,131672,131674],{"class":36,"line":250},[34,131671,1564],{"class":580},[34,131673,68645],{"class":50},[34,131675,593],{"class":181},[34,131677,131678],{"class":36,"line":263},[34,131679,857],{"class":181},[34,131681,131682],{"class":36,"line":275},[34,131683,693],{"class":181},[34,131685,131686],{"class":36,"line":700},[34,131687,62],{"emptyLinePlaceholder":61},[34,131689,131690],{"class":36,"line":706},[34,131691,131692],{"class":40},"// ✅ Good - simple and direct\n",[34,131694,131695,131697,131699,131701,131703,131705,131707,131709,131711,131713],{"class":36,"line":715},[34,131696,11044],{"class":580},[34,131698,131569],{"class":47},[34,131700,1607],{"class":181},[34,131702,13337],{"class":675},[34,131704,165],{"class":580},[34,131706,2741],{"class":50},[34,131708,1617],{"class":181},[34,131710,165],{"class":580},[34,131712,59460],{"class":50},[34,131714,661],{"class":181},[34,131716,131717,131719,131721,131723,131725],{"class":36,"line":725},[34,131718,8155],{"class":580},[34,131720,25065],{"class":181},[34,131722,18401],{"class":580},[34,131724,18845],{"class":50},[34,131726,593],{"class":181},[34,131728,131729],{"class":36,"line":734},[34,131730,693],{"class":181},[34,131732,131733],{"class":36,"line":742},[34,131734,62],{"emptyLinePlaceholder":61},[34,131736,131737,131739,131741,131743,131745,131747,131749,131751,131753,131755],{"class":36,"line":748},[34,131738,11044],{"class":580},[34,131740,131621],{"class":47},[34,131742,1607],{"class":181},[34,131744,3945],{"class":675},[34,131746,165],{"class":580},[34,131748,3950],{"class":47},[34,131750,1617],{"class":181},[34,131752,165],{"class":580},[34,131754,59460],{"class":50},[34,131756,661],{"class":181},[34,131758,131759,131761,131764,131766,131768],{"class":36,"line":754},[34,131760,8155],{"class":580},[34,131762,131763],{"class":181}," user.role ",[34,131765,15543],{"class":580},[34,131767,131649],{"class":54},[34,131769,593],{"class":181},[34,131771,131772],{"class":36,"line":759},[34,131773,693],{"class":181},[388,131775,17665],{},{"title":30,"searchDepth":44,"depth":44,"links":131777},[131778],{"id":131552,"depth":44,"text":131190},"Simple Conditionals in KISS Principle.",{},{"title":131190,"description":131779},"kiss/simple-conditionals",[130577,5600,130579,58892,58893],"ihrouI6scWN85BitWXqlJLVXGXEzh_wp02eRUC2bD4c",{"id":131786,"title":131220,"body":131787,"date":402,"description":131876,"extension":404,"meta":131877,"navigation":61,"order":242,"path":131219,"seo":131878,"stem":131879,"subject":130577,"tags":131880,"__hash__":131881},"topics/kiss/simple-error-messages.md",{"type":8,"value":131788,"toc":131873},[131789,131792,131871],[11,131790,131220],{"id":131791},"simple-error-messages",[25,131793,131795],{"className":571,"code":131794,"language":573,"meta":30,"style":30},"// ❌ Bad - vague or overly technical\nthrow new Error('E_INVLD_USR_CRED_AUTH_FAIL_0x003');\nthrow new Error('Something went wrong');\n\n// ✅ Good - clear and actionable\nthrow new Error('Invalid email or password. Please try again.');\nthrow new Error('User not found. Check the user ID and try again.');\n",[20,131796,131797,131802,131817,131832,131836,131841,131856],{"__ignoreMap":30},[34,131798,131799],{"class":36,"line":37},[34,131800,131801],{"class":40},"// ❌ Bad - vague or overly technical\n",[34,131803,131804,131806,131808,131810,131812,131815],{"class":36,"line":44},[34,131805,35434],{"class":580},[34,131807,809],{"class":580},[34,131809,48752],{"class":47},[34,131811,1607],{"class":181},[34,131813,131814],{"class":54},"'E_INVLD_USR_CRED_AUTH_FAIL_0x003'",[34,131816,1586],{"class":181},[34,131818,131819,131821,131823,131825,131827,131830],{"class":36,"line":58},[34,131820,35434],{"class":580},[34,131822,809],{"class":580},[34,131824,48752],{"class":47},[34,131826,1607],{"class":181},[34,131828,131829],{"class":54},"'Something went wrong'",[34,131831,1586],{"class":181},[34,131833,131834],{"class":36,"line":65},[34,131835,62],{"emptyLinePlaceholder":61},[34,131837,131838],{"class":36,"line":71},[34,131839,131840],{"class":40},"// ✅ Good - clear and actionable\n",[34,131842,131843,131845,131847,131849,131851,131854],{"class":36,"line":77},[34,131844,35434],{"class":580},[34,131846,809],{"class":580},[34,131848,48752],{"class":47},[34,131850,1607],{"class":181},[34,131852,131853],{"class":54},"'Invalid email or password. Please try again.'",[34,131855,1586],{"class":181},[34,131857,131858,131860,131862,131864,131866,131869],{"class":36,"line":82},[34,131859,35434],{"class":580},[34,131861,809],{"class":580},[34,131863,48752],{"class":47},[34,131865,1607],{"class":181},[34,131867,131868],{"class":54},"'User not found. Check the user ID and try again.'",[34,131870,1586],{"class":181},[388,131872,35749],{},{"title":30,"searchDepth":44,"depth":44,"links":131874},[131875],{"id":131791,"depth":44,"text":131220},"Simple Error Messages in KISS Principle.",{},{"title":131220,"description":131876},"kiss/simple-error-messages",[130577,5600,130579,58892,58893],"7cFeKwRdt-Ahvn1nFjo5KvX4dVjSAnwO4PDsZrpLPpc",{"id":131883,"title":131204,"body":131884,"date":402,"description":132374,"extension":404,"meta":132375,"navigation":61,"order":77,"path":131203,"seo":132376,"stem":132377,"subject":130577,"tags":132378,"__hash__":132379},"topics/kiss/simple-functions.md",{"type":8,"value":131885,"toc":132371},[131886,131889,132369],[11,131887,131204],{"id":131888},"simple-functions",[25,131890,131892],{"className":571,"code":131891,"language":573,"meta":30,"style":30},"// ❌ Bad - one function doing too much\nfunction handleUserRegistration(data: any) {\n  // Validate\n  if (!data.email || !data.email.includes('@')) throw new Error('Invalid email');\n  if (!data.password || data.password.length \u003C 8) throw new Error('Weak password');\n  \n  // Hash password\n  const salt = generateSalt();\n  const hashedPassword = hash(data.password + salt);\n  \n  // Create user\n  const user = { ...data, password: hashedPassword, salt };\n  \n  // Save to database\n  database.users.insert(user);\n  \n  // Send welcome email\n  emailService.send(data.email, 'Welcome!', welcomeTemplate);\n  \n  // Log analytics\n  analytics.track('user_registered', { email: data.email });\n  \n  return user;\n}\n\n// ✅ Good - small, focused functions\nfunction validateRegistration(data: RegistrationData) {\n  if (!data.email?.includes('@')) throw new Error('Invalid email');\n  if (!data.password || data.password.length \u003C 8) throw new Error('Weak password');\n}\n\nfunction createUser(data: RegistrationData): User {\n  const hashedPassword = hashPassword(data.password);\n  return { ...data, password: hashedPassword };\n}\n\nfunction handleUserRegistration(data: RegistrationData) {\n  validateRegistration(data);\n  const user = createUser(data);\n  saveUser(user);\n  sendWelcomeEmail(user.email);\n  trackRegistration(user.email);\n  return user;\n}\n",[20,131893,131894,131899,131916,131921,131959,131997,132001,132006,132020,132039,132043,132048,132063,132067,132072,132082,132086,132091,132107,132111,132116,132132,132136,132143,132147,132151,132156,132174,132205,132239,132243,132247,132269,132283,132294,132298,132302,132318,132325,132337,132344,132352,132359,132365],{"__ignoreMap":30},[34,131895,131896],{"class":36,"line":37},[34,131897,131898],{"class":40},"// ❌ Bad - one function doing too much\n",[34,131900,131901,131903,131906,131908,131910,131912,131914],{"class":36,"line":44},[34,131902,11044],{"class":580},[34,131904,131905],{"class":47}," handleUserRegistration",[34,131907,1607],{"class":181},[34,131909,1701],{"class":675},[34,131911,165],{"class":580},[34,131913,69686],{"class":50},[34,131915,2416],{"class":181},[34,131917,131918],{"class":36,"line":58},[34,131919,131920],{"class":40},"  // Validate\n",[34,131922,131923,131925,131927,131929,131932,131934,131936,131939,131941,131943,131945,131947,131949,131951,131953,131955,131957],{"class":36,"line":65},[34,131924,8084],{"class":580},[34,131926,3204],{"class":181},[34,131928,10307],{"class":580},[34,131930,131931],{"class":181},"data.email ",[34,131933,10892],{"class":580},[34,131935,103972],{"class":580},[34,131937,131938],{"class":181},"data.email.",[34,131940,59303],{"class":47},[34,131942,1607],{"class":181},[34,131944,59308],{"class":54},[34,131946,49706],{"class":181},[34,131948,35434],{"class":580},[34,131950,809],{"class":580},[34,131952,48752],{"class":47},[34,131954,1607],{"class":181},[34,131956,59336],{"class":54},[34,131958,1586],{"class":181},[34,131960,131961,131963,131965,131967,131970,131972,131975,131977,131979,131982,131984,131986,131988,131990,131992,131995],{"class":36,"line":71},[34,131962,8084],{"class":580},[34,131964,3204],{"class":181},[34,131966,10307],{"class":580},[34,131968,131969],{"class":181},"data.password ",[34,131971,10892],{"class":580},[34,131973,131974],{"class":181}," data.password.",[34,131976,2908],{"class":50},[34,131978,5470],{"class":580},[34,131980,131981],{"class":50}," 8",[34,131983,4817],{"class":181},[34,131985,35434],{"class":580},[34,131987,809],{"class":580},[34,131989,48752],{"class":47},[34,131991,1607],{"class":181},[34,131993,131994],{"class":54},"'Weak password'",[34,131996,1586],{"class":181},[34,131998,131999],{"class":36,"line":77},[34,132000,827],{"class":181},[34,132002,132003],{"class":36,"line":82},[34,132004,132005],{"class":40},"  // Hash password\n",[34,132007,132008,132010,132013,132015,132018],{"class":36,"line":88},[34,132009,17415],{"class":580},[34,132011,132012],{"class":50}," salt",[34,132014,683],{"class":580},[34,132016,132017],{"class":47}," generateSalt",[34,132019,851],{"class":181},[34,132021,132022,132024,132027,132029,132031,132034,132036],{"class":36,"line":242},[34,132023,17415],{"class":580},[34,132025,132026],{"class":50}," hashedPassword",[34,132028,683],{"class":580},[34,132030,16406],{"class":47},[34,132032,132033],{"class":181},"(data.password ",[34,132035,2940],{"class":580},[34,132037,132038],{"class":181}," salt);\n",[34,132040,132041],{"class":36,"line":250},[34,132042,827],{"class":181},[34,132044,132045],{"class":36,"line":263},[34,132046,132047],{"class":40},"  // Create user\n",[34,132049,132050,132052,132054,132056,132058,132060],{"class":36,"line":275},[34,132051,17415],{"class":580},[34,132053,17148],{"class":50},[34,132055,683],{"class":580},[34,132057,30251],{"class":181},[34,132059,16841],{"class":580},[34,132061,132062],{"class":181},"data, password: hashedPassword, salt };\n",[34,132064,132065],{"class":36,"line":700},[34,132066,827],{"class":181},[34,132068,132069],{"class":36,"line":706},[34,132070,132071],{"class":40},"  // Save to database\n",[34,132073,132074,132077,132079],{"class":36,"line":715},[34,132075,132076],{"class":181},"  database.users.",[34,132078,30468],{"class":47},[34,132080,132081],{"class":181},"(user);\n",[34,132083,132084],{"class":36,"line":725},[34,132085,827],{"class":181},[34,132087,132088],{"class":36,"line":734},[34,132089,132090],{"class":40},"  // Send welcome email\n",[34,132092,132093,132096,132098,132101,132104],{"class":36,"line":742},[34,132094,132095],{"class":181},"  emailService.",[34,132097,15746],{"class":47},[34,132099,132100],{"class":181},"(data.email, ",[34,132102,132103],{"class":54},"'Welcome!'",[34,132105,132106],{"class":181},", welcomeTemplate);\n",[34,132108,132109],{"class":36,"line":748},[34,132110,827],{"class":181},[34,132112,132113],{"class":36,"line":754},[34,132114,132115],{"class":40},"  // Log analytics\n",[34,132117,132118,132121,132124,132126,132129],{"class":36,"line":759},[34,132119,132120],{"class":181},"  analytics.",[34,132122,132123],{"class":47},"track",[34,132125,1607],{"class":181},[34,132127,132128],{"class":54},"'user_registered'",[34,132130,132131],{"class":181},", { email: data.email });\n",[34,132133,132134],{"class":36,"line":771},[34,132135,827],{"class":181},[34,132137,132138,132140],{"class":36,"line":794},[34,132139,8155],{"class":580},[34,132141,132142],{"class":181}," user;\n",[34,132144,132145],{"class":36,"line":824},[34,132146,693],{"class":181},[34,132148,132149],{"class":36,"line":830},[34,132150,62],{"emptyLinePlaceholder":61},[34,132152,132153],{"class":36,"line":839},[34,132154,132155],{"class":40},"// ✅ Good - small, focused functions\n",[34,132157,132158,132160,132163,132165,132167,132169,132172],{"class":36,"line":854},[34,132159,11044],{"class":580},[34,132161,132162],{"class":47}," validateRegistration",[34,132164,1607],{"class":181},[34,132166,1701],{"class":675},[34,132168,165],{"class":580},[34,132170,132171],{"class":47}," RegistrationData",[34,132173,2416],{"class":181},[34,132175,132176,132178,132180,132182,132185,132187,132189,132191,132193,132195,132197,132199,132201,132203],{"class":36,"line":860},[34,132177,8084],{"class":580},[34,132179,3204],{"class":181},[34,132181,10307],{"class":580},[34,132183,132184],{"class":181},"data.email?.",[34,132186,59303],{"class":47},[34,132188,1607],{"class":181},[34,132190,59308],{"class":54},[34,132192,49706],{"class":181},[34,132194,35434],{"class":580},[34,132196,809],{"class":580},[34,132198,48752],{"class":47},[34,132200,1607],{"class":181},[34,132202,59336],{"class":54},[34,132204,1586],{"class":181},[34,132206,132207,132209,132211,132213,132215,132217,132219,132221,132223,132225,132227,132229,132231,132233,132235,132237],{"class":36,"line":865},[34,132208,8084],{"class":580},[34,132210,3204],{"class":181},[34,132212,10307],{"class":580},[34,132214,131969],{"class":181},[34,132216,10892],{"class":580},[34,132218,131974],{"class":181},[34,132220,2908],{"class":50},[34,132222,5470],{"class":580},[34,132224,131981],{"class":50},[34,132226,4817],{"class":181},[34,132228,35434],{"class":580},[34,132230,809],{"class":580},[34,132232,48752],{"class":47},[34,132234,1607],{"class":181},[34,132236,131994],{"class":54},[34,132238,1586],{"class":181},[34,132240,132241],{"class":36,"line":870},[34,132242,693],{"class":181},[34,132244,132245],{"class":36,"line":876},[34,132246,62],{"emptyLinePlaceholder":61},[34,132248,132249,132251,132253,132255,132257,132259,132261,132263,132265,132267],{"class":36,"line":885},[34,132250,11044],{"class":580},[34,132252,59278],{"class":47},[34,132254,1607],{"class":181},[34,132256,1701],{"class":675},[34,132258,165],{"class":580},[34,132260,132171],{"class":47},[34,132262,1617],{"class":181},[34,132264,165],{"class":580},[34,132266,3950],{"class":47},[34,132268,661],{"class":181},[34,132270,132271,132273,132275,132277,132280],{"class":36,"line":895},[34,132272,17415],{"class":580},[34,132274,132026],{"class":50},[34,132276,683],{"class":580},[34,132278,132279],{"class":47}," hashPassword",[34,132281,132282],{"class":181},"(data.password);\n",[34,132284,132285,132287,132289,132291],{"class":36,"line":904},[34,132286,8155],{"class":580},[34,132288,30251],{"class":181},[34,132290,16841],{"class":580},[34,132292,132293],{"class":181},"data, password: hashedPassword };\n",[34,132295,132296],{"class":36,"line":915},[34,132297,693],{"class":181},[34,132299,132300],{"class":36,"line":927},[34,132301,62],{"emptyLinePlaceholder":61},[34,132303,132304,132306,132308,132310,132312,132314,132316],{"class":36,"line":932},[34,132305,11044],{"class":580},[34,132307,131905],{"class":47},[34,132309,1607],{"class":181},[34,132311,1701],{"class":675},[34,132313,165],{"class":580},[34,132315,132171],{"class":47},[34,132317,2416],{"class":181},[34,132319,132320,132323],{"class":36,"line":944},[34,132321,132322],{"class":47},"  validateRegistration",[34,132324,126264],{"class":181},[34,132326,132327,132329,132331,132333,132335],{"class":36,"line":966},[34,132328,17415],{"class":580},[34,132330,17148],{"class":50},[34,132332,683],{"class":580},[34,132334,59278],{"class":47},[34,132336,126264],{"class":181},[34,132338,132339,132342],{"class":36,"line":1948},[34,132340,132341],{"class":47},"  saveUser",[34,132343,132081],{"class":181},[34,132345,132346,132349],{"class":36,"line":1953},[34,132347,132348],{"class":47},"  sendWelcomeEmail",[34,132350,132351],{"class":181},"(user.email);\n",[34,132353,132354,132357],{"class":36,"line":3616},[34,132355,132356],{"class":47},"  trackRegistration",[34,132358,132351],{"class":181},[34,132360,132361,132363],{"class":36,"line":3622},[34,132362,8155],{"class":580},[34,132364,132142],{"class":181},[34,132366,132367],{"class":36,"line":3642},[34,132368,693],{"class":181},[388,132370,17665],{},{"title":30,"searchDepth":44,"depth":44,"links":132372},[132373],{"id":131888,"depth":44,"text":131204},"Simple Functions in KISS Principle.",{},{"title":131204,"description":132374},"kiss/simple-functions",[130577,5600,130579,58892,58893],"4vDZdzzlMMZmPJBqIuD16TsEaNzkpP9E2q56EXWCEwM",{"id":132381,"title":131210,"body":132382,"date":402,"description":132594,"extension":404,"meta":132595,"navigation":61,"order":82,"path":131209,"seo":132596,"stem":132597,"subject":130577,"tags":132598,"__hash__":132599},"topics/kiss/straightforward-data-structures.md",{"type":8,"value":132383,"toc":132591},[132384,132387,132589],[11,132385,131210],{"id":132386},"straightforward-data-structures",[25,132388,132390],{"className":571,"code":132389,"language":573,"meta":30,"style":30},"// ❌ Bad - over-engineered structure\ninterface UserData {\n  metadata: {\n    identity: {\n      primary: {\n        name: {\n          first: string;\n          last: string;\n        };\n      };\n    };\n    contact: {\n      electronic: {\n        email: {\n          primary: string;\n        };\n      };\n    };\n  };\n}\n\n// ✅ Good - flat and simple\ninterface User {\n  firstName: string;\n  lastName: string;\n  email: string;\n}\n",[20,132391,132392,132397,132406,132415,132424,132433,132441,132452,132463,132468,132473,132477,132486,132495,132504,132515,132519,132523,132527,132531,132535,132539,132544,132552,132563,132574,132585],{"__ignoreMap":30},[34,132393,132394],{"class":36,"line":37},[34,132395,132396],{"class":40},"// ❌ Bad - over-engineered structure\n",[34,132398,132399,132401,132404],{"class":36,"line":44},[34,132400,17562],{"class":580},[34,132402,132403],{"class":47}," UserData",[34,132405,661],{"class":181},[34,132407,132408,132411,132413],{"class":36,"line":58},[34,132409,132410],{"class":675},"  metadata",[34,132412,165],{"class":580},[34,132414,661],{"class":181},[34,132416,132417,132420,132422],{"class":36,"line":65},[34,132418,132419],{"class":675},"    identity",[34,132421,165],{"class":580},[34,132423,661],{"class":181},[34,132425,132426,132429,132431],{"class":36,"line":71},[34,132427,132428],{"class":675},"      primary",[34,132430,165],{"class":580},[34,132432,661],{"class":181},[34,132434,132435,132437,132439],{"class":36,"line":77},[34,132436,5139],{"class":675},[34,132438,165],{"class":580},[34,132440,661],{"class":181},[34,132442,132443,132446,132448,132450],{"class":36,"line":82},[34,132444,132445],{"class":675},"          first",[34,132447,165],{"class":580},[34,132449,680],{"class":50},[34,132451,593],{"class":181},[34,132453,132454,132457,132459,132461],{"class":36,"line":88},[34,132455,132456],{"class":675},"          last",[34,132458,165],{"class":580},[34,132460,680],{"class":50},[34,132462,593],{"class":181},[34,132464,132465],{"class":36,"line":242},[34,132466,132467],{"class":181},"        };\n",[34,132469,132470],{"class":36,"line":250},[34,132471,132472],{"class":181},"      };\n",[34,132474,132475],{"class":36,"line":263},[34,132476,27407],{"class":181},[34,132478,132479,132482,132484],{"class":36,"line":275},[34,132480,132481],{"class":675},"    contact",[34,132483,165],{"class":580},[34,132485,661],{"class":181},[34,132487,132488,132491,132493],{"class":36,"line":700},[34,132489,132490],{"class":675},"      electronic",[34,132492,165],{"class":580},[34,132494,661],{"class":181},[34,132496,132497,132500,132502],{"class":36,"line":706},[34,132498,132499],{"class":675},"        email",[34,132501,165],{"class":580},[34,132503,661],{"class":181},[34,132505,132506,132509,132511,132513],{"class":36,"line":715},[34,132507,132508],{"class":675},"          primary",[34,132510,165],{"class":580},[34,132512,680],{"class":50},[34,132514,593],{"class":181},[34,132516,132517],{"class":36,"line":725},[34,132518,132467],{"class":181},[34,132520,132521],{"class":36,"line":734},[34,132522,132472],{"class":181},[34,132524,132525],{"class":36,"line":742},[34,132526,27407],{"class":181},[34,132528,132529],{"class":36,"line":748},[34,132530,126747],{"class":181},[34,132532,132533],{"class":36,"line":754},[34,132534,693],{"class":181},[34,132536,132537],{"class":36,"line":759},[34,132538,62],{"emptyLinePlaceholder":61},[34,132540,132541],{"class":36,"line":771},[34,132542,132543],{"class":40},"// ✅ Good - flat and simple\n",[34,132545,132546,132548,132550],{"class":36,"line":794},[34,132547,17562],{"class":580},[34,132549,3950],{"class":47},[34,132551,661],{"class":181},[34,132553,132554,132557,132559,132561],{"class":36,"line":824},[34,132555,132556],{"class":675},"  firstName",[34,132558,165],{"class":580},[34,132560,680],{"class":50},[34,132562,593],{"class":181},[34,132564,132565,132568,132570,132572],{"class":36,"line":830},[34,132566,132567],{"class":675},"  lastName",[34,132569,165],{"class":580},[34,132571,680],{"class":50},[34,132573,593],{"class":181},[34,132575,132576,132579,132581,132583],{"class":36,"line":839},[34,132577,132578],{"class":675},"  email",[34,132580,165],{"class":580},[34,132582,680],{"class":50},[34,132584,593],{"class":181},[34,132586,132587],{"class":36,"line":854},[34,132588,693],{"class":181},[388,132590,60244],{},{"title":30,"searchDepth":44,"depth":44,"links":132592},[132593],{"id":132386,"depth":44,"text":131210},"Straightforward Data Structures in KISS Principle.",{},{"title":131210,"description":132594},"kiss/straightforward-data-structures",[130577,5600,130579,58892,58893],"Xy6jE2YrulfSWz-GLAp12jIWYQ8aDko_l-xZu9bB8zY",{"id":132601,"title":131184,"body":132602,"date":402,"description":132619,"extension":404,"meta":132620,"navigation":61,"order":44,"path":131183,"seo":132621,"stem":132622,"subject":130577,"tags":132623,"__hash__":132624},"topics/kiss/what-is-kiss.md",{"type":8,"value":132603,"toc":132616},[132604,132607,132610],[11,132605,131184],{"id":132606},"what-is-kiss",[16,132608,132609],{},"\"Most systems work best if they are kept simple rather than made complicated.\"",[25,132611,132614],{"className":132612,"code":132613,"language":780,"meta":30},[13703],"KISS = Keep It Simple, Stupid\n\n✓ Simplicity over complexity\n✓ Readable over clever\n✓ Obvious over obscure\n✓ Maintainable over impressive\n",[20,132615,132613],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":132617},[132618],{"id":132606,"depth":44,"text":131184},"What is KISS? in KISS Principle.",{},{"title":131184,"description":132619},"kiss/what-is-kiss",[130577,5600,130579,58892,58893],"_N_PvfXK-sio2meqa6T0KnBAq3hXyQzARB25QVjVrvo",{"id":132626,"title":132627,"body":132628,"date":402,"description":132763,"extension":404,"meta":132764,"navigation":61,"order":37,"path":132765,"seo":132766,"stem":132767,"subject":132768,"tags":132769,"__hash__":132773},"topics/kitty/overview.md","Kitty",{"type":8,"value":132629,"toc":132755},[132630,132634,132637,132640,132657,132660,132664,132667,132688,132691,132695,132702,132723,132727,132733,132737,132740],[11,132631,132633],{"id":132632},"what-is-kitty","What is Kitty?",[16,132635,132636],{},"Kitty is a GPU-based terminal emulator, designed to support advanced features while delivering high performance. It is crafted for keyboard-centric usage but offers full mouse interaction support for those who require it.",[16,132638,132639],{},"Kitty supports modern terminal features like:",[309,132641,132642,132645,132648,132651,132654],{},[312,132643,132644],{},"Unicode",[312,132646,132647],{},"True color",[312,132649,132650],{},"Bold and italic fonts",[312,132652,132653],{},"Curly underlines",[312,132655,132656],{},"Text formatting",[16,132658,132659],{},"It is lightweight as it doesn’t depend on large UI toolkits, using OpenGL for rendering.",[11,132661,132663],{"id":132662},"design-philosophy","Design Philosophy",[16,132665,132666],{},"Kitty is simple yet modular:",[309,132668,132669,132682,132685],{},[312,132670,132671,132672,132674,132675,132678,132679,132681],{},"Built with ",[8471,132673,23059],{}," (performance), ",[8471,132676,132677],{},"Python"," (extensibility/UI flexibility), and ",[8471,132680,107590],{}," (command-line utilities known as Kittens).",[312,132683,132684],{},"All configurations are stored in a single human-readable file.",[312,132686,132687],{},"Designed for easy integration with version control systems.",[16,132689,132690],{},"OpenGL powers its rendering capabilities, eliminating dependencies on any complex GUI libraries.",[11,132692,132694],{"id":132693},"tabs-and-windows","Tabs and Windows",[16,132696,132697,132698,132701],{},"Kitty organizes application processes using a ",[8471,132699,132700],{},"tabs-windows"," scheme akin to a tiling window manager:",[309,132703,132704,132713],{},[312,132705,132706,132709,132710],{},[8471,132707,132708],{},"OS Window"," → Includes one or more ",[8471,132711,132712],{},"Tabs",[312,132714,132715,132718,132719,132722],{},[8471,132716,132717],{},"Tab"," → Contains one or more ",[8471,132720,132721],{},"Kitty Windows",", with support for layouts like horizontal/vertical splits.",[102,132724,132726],{"id":132725},"hotkeys","Hotkeys:",[25,132728,132731],{"className":132729,"code":132730,"language":780},[13703],"# Navigate tabs\nctrl+shift+left   # Previous tab\nctrl+shift+right  # Next tab\n\n# Create new windows\nctrl+shift+enter  # New tab\n",[20,132732,132730],{"__ignoreMap":30},[11,132734,132736],{"id":132735},"customizations-and-extensibility","Customizations and Extensibility",[16,132738,132739],{},"Kitty offers extensive configuration options:",[309,132741,132742,132745,132748],{},[312,132743,132744],{},"Terminal aesthetics (colors, fonts).",[312,132746,132747],{},"Preset layouts via configuration files.",[312,132749,132750,132751,132754],{},"Build rich ",[8471,132752,132753],{},"key-bindable scripts",".\nThe core tool actively maintains backward-forward compatible libraries.\n---include(requires_headers [Terraform Code.)",{"title":30,"searchDepth":44,"depth":44,"links":132756},[132757,132758,132759,132762],{"id":132632,"depth":44,"text":132633},{"id":132662,"depth":44,"text":132663},{"id":132693,"depth":44,"text":132694,"children":132760},[132761],{"id":132725,"depth":58,"text":132726},{"id":132735,"depth":44,"text":132736},"A powerful, fast, and feature-rich GPU-based terminal emulator.",{},"/kitty/overview",{"title":132627,"description":132763},"kitty/overview","kitty",[132768,132770,120566,132771,132772],"terminal-emulator","gpu","customization","JMq6tvURl4t0hNpAZEoh0cSH22dhiA9Vm1BHr1Y4Q1g",{"id":132775,"title":132776,"body":132777,"date":402,"description":133292,"extension":404,"meta":133293,"navigation":61,"order":37,"path":133294,"seo":133295,"stem":133296,"subject":133297,"tags":133298,"__hash__":133300},"topics/knip/overview.md","Knip",{"type":8,"value":132778,"toc":133281},[132779,132781,132811,132813,132865,132867,132948,132952,132982,132986,133043,133047,133111,133115,133177,133181,133217,133221,133278],[11,132780,97],{"id":96},[25,132782,132784],{"className":27,"code":132783,"language":29,"meta":30,"style":30},"npm install -D knip\n\n# Add script to package.json\n# \"knip\": \"knip\"\n",[20,132785,132786,132797,132801,132806],{"__ignoreMap":30},[34,132787,132788,132790,132792,132794],{"class":36,"line":37},[34,132789,8177],{"class":47},[34,132791,118],{"class":54},[34,132793,13768],{"class":50},[34,132795,132796],{"class":54}," knip\n",[34,132798,132799],{"class":36,"line":44},[34,132800,62],{"emptyLinePlaceholder":61},[34,132802,132803],{"class":36,"line":58},[34,132804,132805],{"class":40},"# Add script to package.json\n",[34,132807,132808],{"class":36,"line":65},[34,132809,132810],{"class":40},"# \"knip\": \"knip\"\n",[11,132812,89702],{"id":89701},[25,132814,132816],{"className":27,"code":132815,"language":29,"meta":30,"style":30},"# Find unused files, exports, dependencies\nnpx knip\n\n# Fix automatically (removes unused exports)\nnpx knip --fix\n\n# Production files only (exclude devDependencies)\nnpx knip --production\n",[20,132817,132818,132823,132829,132833,132838,132847,132851,132856],{"__ignoreMap":30},[34,132819,132820],{"class":36,"line":37},[34,132821,132822],{"class":40},"# Find unused files, exports, dependencies\n",[34,132824,132825,132827],{"class":36,"line":44},[34,132826,8205],{"class":47},[34,132828,132796],{"class":54},[34,132830,132831],{"class":36,"line":58},[34,132832,62],{"emptyLinePlaceholder":61},[34,132834,132835],{"class":36,"line":65},[34,132836,132837],{"class":40},"# Fix automatically (removes unused exports)\n",[34,132839,132840,132842,132845],{"class":36,"line":71},[34,132841,8205],{"class":47},[34,132843,132844],{"class":54}," knip",[34,132846,62913],{"class":50},[34,132848,132849],{"class":36,"line":77},[34,132850,62],{"emptyLinePlaceholder":61},[34,132852,132853],{"class":36,"line":82},[34,132854,132855],{"class":40},"# Production files only (exclude devDependencies)\n",[34,132857,132858,132860,132862],{"class":36,"line":88},[34,132859,8205],{"class":47},[34,132861,132844],{"class":54},[34,132863,132864],{"class":50}," --production\n",[11,132866,8686],{"id":558},[25,132868,132870],{"className":28058,"code":132869,"language":14790,"meta":30,"style":30},"// knip.json\n{\n  \"entry\": [\"src/index.ts\"],        // entry points\n  \"project\": [\"src/**/*.ts\"],        // project files\n  \"ignore\": [\"src/generated/**\"],    // ignored paths\n  \"ignoreDependencies\": [\"jest\"]     // ignore specific deps\n}\n",[20,132871,132872,132877,132881,132897,132912,132928,132944],{"__ignoreMap":30},[34,132873,132874],{"class":36,"line":37},[34,132875,132876],{"class":40},"// knip.json\n",[34,132878,132879],{"class":36,"line":44},[34,132880,25296],{"class":181},[34,132882,132883,132886,132888,132891,132894],{"class":36,"line":58},[34,132884,132885],{"class":50},"  \"entry\"",[34,132887,47204],{"class":181},[34,132889,132890],{"class":54},"\"src/index.ts\"",[34,132892,132893],{"class":181},"],        ",[34,132895,132896],{"class":40},"// entry points\n",[34,132898,132899,132902,132904,132907,132909],{"class":36,"line":65},[34,132900,132901],{"class":50},"  \"project\"",[34,132903,47204],{"class":181},[34,132905,132906],{"class":54},"\"src/**/*.ts\"",[34,132908,132893],{"class":181},[34,132910,132911],{"class":40},"// project files\n",[34,132913,132914,132917,132919,132922,132925],{"class":36,"line":71},[34,132915,132916],{"class":50},"  \"ignore\"",[34,132918,47204],{"class":181},[34,132920,132921],{"class":54},"\"src/generated/**\"",[34,132923,132924],{"class":181},"],    ",[34,132926,132927],{"class":40},"// ignored paths\n",[34,132929,132930,132933,132935,132938,132941],{"class":36,"line":77},[34,132931,132932],{"class":50},"  \"ignoreDependencies\"",[34,132934,47204],{"class":181},[34,132936,132937],{"class":54},"\"jest\"",[34,132939,132940],{"class":181},"]     ",[34,132942,132943],{"class":40},"// ignore specific deps\n",[34,132945,132946],{"class":36,"line":82},[34,132947,693],{"class":181},[11,132949,132951],{"id":132950},"what-knip-finds","What Knip Finds",[25,132953,132955],{"className":27,"code":132954,"language":29,"meta":30,"style":30},"# Unused files — files not imported anywhere\n# Unused exports — exported but never imported\n# Unused dependencies — in package.json but not used\n# Unused devDependencies — same for devDeps\n# Unresolved imports — imports that can't be resolved\n",[20,132956,132957,132962,132967,132972,132977],{"__ignoreMap":30},[34,132958,132959],{"class":36,"line":37},[34,132960,132961],{"class":40},"# Unused files — files not imported anywhere\n",[34,132963,132964],{"class":36,"line":44},[34,132965,132966],{"class":40},"# Unused exports — exported but never imported\n",[34,132968,132969],{"class":36,"line":58},[34,132970,132971],{"class":40},"# Unused dependencies — in package.json but not used\n",[34,132973,132974],{"class":36,"line":65},[34,132975,132976],{"class":40},"# Unused devDependencies — same for devDeps\n",[34,132978,132979],{"class":36,"line":71},[34,132980,132981],{"class":40},"# Unresolved imports — imports that can't be resolved\n",[11,132983,132985],{"id":132984},"reporters","Reporters",[25,132987,132989],{"className":27,"code":132988,"language":29,"meta":30,"style":30},"# Default table output\nnpx knip\n\n# JSON output (for CI/scripting)\nnpx knip --reporter json\n\n# Compact output\nnpx knip --reporter compact\n",[20,132990,132991,132996,133002,133006,133011,133023,133027,133032],{"__ignoreMap":30},[34,132992,132993],{"class":36,"line":37},[34,132994,132995],{"class":40},"# Default table output\n",[34,132997,132998,133000],{"class":36,"line":44},[34,132999,8205],{"class":47},[34,133001,132796],{"class":54},[34,133003,133004],{"class":36,"line":58},[34,133005,62],{"emptyLinePlaceholder":61},[34,133007,133008],{"class":36,"line":65},[34,133009,133010],{"class":40},"# JSON output (for CI/scripting)\n",[34,133012,133013,133015,133017,133020],{"class":36,"line":71},[34,133014,8205],{"class":47},[34,133016,132844],{"class":54},[34,133018,133019],{"class":50}," --reporter",[34,133021,133022],{"class":54}," json\n",[34,133024,133025],{"class":36,"line":77},[34,133026,62],{"emptyLinePlaceholder":61},[34,133028,133029],{"class":36,"line":82},[34,133030,133031],{"class":40},"# Compact output\n",[34,133033,133034,133036,133038,133040],{"class":36,"line":88},[34,133035,8205],{"class":47},[34,133037,132844],{"class":54},[34,133039,133019],{"class":50},[34,133041,133042],{"class":54}," compact\n",[11,133044,133046],{"id":133045},"ignore-patterns","Ignore Patterns",[25,133048,133050],{"className":91533,"code":133049,"language":91535,"meta":30,"style":30},"// Inline: mark an export as used externally\nexport const myFunc = () => {}  // used by consumers\n\n// knip.json: ignore entire paths\n{\n  \"ignore\": [\"**/*.test.ts\", \"scripts/**\"]\n}\n",[20,133051,133052,133057,133078,133082,133087,133091,133107],{"__ignoreMap":30},[34,133053,133054],{"class":36,"line":37},[34,133055,133056],{"class":40},"// Inline: mark an export as used externally\n",[34,133058,133059,133061,133063,133066,133068,133070,133072,133075],{"class":36,"line":44},[34,133060,652],{"class":580},[34,133062,3291],{"class":580},[34,133064,133065],{"class":47}," myFunc",[34,133067,683],{"class":580},[34,133069,17406],{"class":181},[34,133071,3361],{"class":580},[34,133073,133074],{"class":181}," {}  ",[34,133076,133077],{"class":40},"// used by consumers\n",[34,133079,133080],{"class":36,"line":58},[34,133081,62],{"emptyLinePlaceholder":61},[34,133083,133084],{"class":36,"line":65},[34,133085,133086],{"class":40},"// knip.json: ignore entire paths\n",[34,133088,133089],{"class":36,"line":71},[34,133090,25296],{"class":181},[34,133092,133093,133095,133097,133100,133102,133105],{"class":36,"line":77},[34,133094,132916],{"class":54},[34,133096,47204],{"class":181},[34,133098,133099],{"class":54},"\"**/*.test.ts\"",[34,133101,1798],{"class":181},[34,133103,133104],{"class":54},"\"scripts/**\"",[34,133106,924],{"class":181},[34,133108,133109],{"class":36,"line":82},[34,133110,693],{"class":181},[11,133112,133114],{"id":133113},"monorepo-support","Monorepo Support",[25,133116,133118],{"className":28058,"code":133117,"language":14790,"meta":30,"style":30},"// knip.json (workspace root)\n{\n  \"workspaces\": {\n    \"packages/*\": {\n      \"entry\": [\"src/index.ts\"],\n      \"project\": [\"src/**/*.ts\"]\n    }\n  }\n}\n",[20,133119,133120,133125,133129,133136,133143,133154,133165,133169,133173],{"__ignoreMap":30},[34,133121,133122],{"class":36,"line":37},[34,133123,133124],{"class":40},"// knip.json (workspace root)\n",[34,133126,133127],{"class":36,"line":44},[34,133128,25296],{"class":181},[34,133130,133131,133134],{"class":36,"line":58},[34,133132,133133],{"class":50},"  \"workspaces\"",[34,133135,28073],{"class":181},[34,133137,133138,133141],{"class":36,"line":65},[34,133139,133140],{"class":50},"    \"packages/*\"",[34,133142,28073],{"class":181},[34,133144,133145,133148,133150,133152],{"class":36,"line":71},[34,133146,133147],{"class":50},"      \"entry\"",[34,133149,47204],{"class":181},[34,133151,132890],{"class":54},[34,133153,46332],{"class":181},[34,133155,133156,133159,133161,133163],{"class":36,"line":77},[34,133157,133158],{"class":50},"      \"project\"",[34,133160,47204],{"class":181},[34,133162,132906],{"class":54},[34,133164,924],{"class":181},[34,133166,133167],{"class":36,"line":82},[34,133168,3229],{"class":181},[34,133170,133171],{"class":36,"line":88},[34,133172,857],{"class":181},[34,133174,133175],{"class":36,"line":242},[34,133176,693],{"class":181},[11,133178,133180],{"id":133179},"ci-integration","CI Integration",[25,133182,133184],{"className":168,"code":133183,"language":170,"meta":30,"style":30},"# .github/workflows/knip.yml\n- name: Check for unused code\n  run: npx knip --reporter compact\n  # Exits with non-zero if issues found\n",[20,133185,133186,133191,133202,133212],{"__ignoreMap":30},[34,133187,133188],{"class":36,"line":37},[34,133189,133190],{"class":40},"# .github/workflows/knip.yml\n",[34,133192,133193,133195,133197,133199],{"class":36,"line":44},[34,133194,5081],{"class":181},[34,133196,178],{"class":177},[34,133198,182],{"class":181},[34,133200,133201],{"class":54},"Check for unused code\n",[34,133203,133204,133207,133209],{"class":36,"line":58},[34,133205,133206],{"class":177},"  run",[34,133208,182],{"class":181},[34,133210,133211],{"class":54},"npx knip --reporter compact\n",[34,133213,133214],{"class":36,"line":65},[34,133215,133216],{"class":40},"  # Exits with non-zero if issues found\n",[11,133218,133220],{"id":133219},"rules-filters","Rules & Filters",[25,133222,133224],{"className":27,"code":133223,"language":29,"meta":30,"style":30},"# Only check specific issue types\nnpx knip --include files,exports\n\n# Exclude specific types\nnpx knip --exclude dependencies\n\n# Available types: files, exports, types, nsExports,\n# nsTypes, duplicates, dependencies, unlisted, binaries\n",[20,133225,133226,133231,133243,133247,133252,133264,133268,133273],{"__ignoreMap":30},[34,133227,133228],{"class":36,"line":37},[34,133229,133230],{"class":40},"# Only check specific issue types\n",[34,133232,133233,133235,133237,133240],{"class":36,"line":44},[34,133234,8205],{"class":47},[34,133236,132844],{"class":54},[34,133238,133239],{"class":50}," --include",[34,133241,133242],{"class":54}," files,exports\n",[34,133244,133245],{"class":36,"line":58},[34,133246,62],{"emptyLinePlaceholder":61},[34,133248,133249],{"class":36,"line":65},[34,133250,133251],{"class":40},"# Exclude specific types\n",[34,133253,133254,133256,133258,133261],{"class":36,"line":71},[34,133255,8205],{"class":47},[34,133257,132844],{"class":54},[34,133259,133260],{"class":50}," --exclude",[34,133262,133263],{"class":54}," dependencies\n",[34,133265,133266],{"class":36,"line":77},[34,133267,62],{"emptyLinePlaceholder":61},[34,133269,133270],{"class":36,"line":82},[34,133271,133272],{"class":40},"# Available types: files, exports, types, nsExports,\n",[34,133274,133275],{"class":36,"line":88},[34,133276,133277],{"class":40},"# nsTypes, duplicates, dependencies, unlisted, binaries\n",[388,133279,133280],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":30,"searchDepth":44,"depth":44,"links":133282},[133283,133284,133285,133286,133287,133288,133289,133290,133291],{"id":96,"depth":44,"text":97},{"id":89701,"depth":44,"text":89702},{"id":558,"depth":44,"text":8686},{"id":132950,"depth":44,"text":132951},{"id":132984,"depth":44,"text":132985},{"id":133045,"depth":44,"text":133046},{"id":133113,"depth":44,"text":133114},{"id":133179,"depth":44,"text":133180},{"id":133219,"depth":44,"text":133220},"Find unused files, exports, and dependencies in JavaScript and TypeScript projects.",{},"/knip/overview",{"title":132776,"description":133292},"knip/overview","knip",[133297,133299,573,8606,14119],"dead-code","54JuAjaaAj-dDjQp33wAa16y9p3WzBVyIBx7yxtReVk",{"id":133302,"title":125314,"body":133303,"date":402,"description":133775,"extension":404,"meta":133776,"navigation":61,"order":242,"path":133777,"seo":133778,"stem":133779,"subject":133311,"tags":133780,"__hash__":133783},"topics/kotlin/classes.md",{"type":8,"value":133304,"toc":133772},[133305,133307,133770],[11,133306,125314],{"id":125319},[25,133308,133312],{"className":133309,"code":133310,"language":133311,"meta":30,"style":30},"language-kotlin shiki shiki-themes github-light github-dark","// Basic class\nclass Person(val name: String, var age: Int)\n\n// With init block\nclass Person(name: String) {\n    val name: String\n    init {\n        this.name = name.uppercase()\n    }\n}\n\n// Secondary constructor\nclass Person(val name: String) {\n    var age: Int = 0\n    \n    constructor(name: String, age: Int) : this(name) {\n        this.age = age\n    }\n}\n\n// Properties\nclass Person {\n    var name: String = \"\"\n        get() = field.uppercase()\n        set(value) {\n            field = value.trim()\n        }\n    \n    val isAdult: Boolean\n        get() = age >= 18\n}\n\n// Inheritance\nopen class Animal(val name: String) {\n    open fun sound() = \"...\"\n}\n\nclass Dog(name: String) : Animal(name) {\n    override fun sound() = \"Woof!\"\n}\n\n// Interface\ninterface Drawable {\n    fun draw()\n    fun clear() { }  // Default implementation\n}\n\n// Abstract class\nabstract class Shape {\n    abstract fun area(): Double\n}\n","kotlin",[20,133313,133314,133319,133347,133351,133356,133369,133379,133386,133401,133405,133409,133413,133418,133434,133446,133450,133473,133484,133488,133492,133496,133501,133509,133522,133539,133549,133564,133568,133572,133582,133596,133600,133604,133608,133627,133645,133649,133653,133673,133689,133693,133697,133701,133709,133718,133729,133733,133737,133741,133751,133766],{"__ignoreMap":30},[34,133315,133316],{"class":36,"line":37},[34,133317,133318],{"class":40},"// Basic class\n",[34,133320,133321,133323,133325,133327,133330,133333,133335,133337,133339,133342,133345],{"class":36,"line":44},[34,133322,30060],{"class":580},[34,133324,30063],{"class":47},[34,133326,1607],{"class":181},[34,133328,133329],{"class":580},"val",[34,133331,133332],{"class":181}," name: ",[34,133334,51427],{"class":47},[34,133336,1798],{"class":181},[34,133338,34404],{"class":580},[34,133340,133341],{"class":181}," age: ",[34,133343,133344],{"class":47},"Int",[34,133346,3372],{"class":181},[34,133348,133349],{"class":36,"line":58},[34,133350,62],{"emptyLinePlaceholder":61},[34,133352,133353],{"class":36,"line":65},[34,133354,133355],{"class":40},"// With init block\n",[34,133357,133358,133360,133362,133365,133367],{"class":36,"line":71},[34,133359,30060],{"class":580},[34,133361,30063],{"class":47},[34,133363,133364],{"class":181},"(name: ",[34,133366,51427],{"class":47},[34,133368,2416],{"class":181},[34,133370,133371,133374,133376],{"class":36,"line":77},[34,133372,133373],{"class":580},"    val",[34,133375,133332],{"class":181},[34,133377,133378],{"class":47},"String\n",[34,133380,133381,133384],{"class":36,"line":82},[34,133382,133383],{"class":580},"    init",[34,133385,661],{"class":181},[34,133387,133388,133390,133392,133394,133397,133399],{"class":36,"line":88},[34,133389,121797],{"class":50},[34,133391,121800],{"class":181},[34,133393,1301],{"class":580},[34,133395,133396],{"class":181}," name.",[34,133398,42190],{"class":47},[34,133400,33899],{"class":181},[34,133402,133403],{"class":36,"line":242},[34,133404,3229],{"class":181},[34,133406,133407],{"class":36,"line":250},[34,133408,693],{"class":181},[34,133410,133411],{"class":36,"line":263},[34,133412,62],{"emptyLinePlaceholder":61},[34,133414,133415],{"class":36,"line":275},[34,133416,133417],{"class":40},"// Secondary constructor\n",[34,133419,133420,133422,133424,133426,133428,133430,133432],{"class":36,"line":700},[34,133421,30060],{"class":580},[34,133423,30063],{"class":47},[34,133425,1607],{"class":181},[34,133427,133329],{"class":580},[34,133429,133332],{"class":181},[34,133431,51427],{"class":47},[34,133433,2416],{"class":181},[34,133435,133436,133438,133440,133442,133444],{"class":36,"line":706},[34,133437,33908],{"class":580},[34,133439,133341],{"class":181},[34,133441,133344],{"class":47},[34,133443,683],{"class":580},[34,133445,36394],{"class":50},[34,133447,133448],{"class":36,"line":715},[34,133449,3666],{"class":181},[34,133451,133452,133455,133457,133459,133461,133463,133465,133467,133469,133471],{"class":36,"line":725},[34,133453,133454],{"class":47},"    constructor",[34,133456,133364],{"class":181},[34,133458,51427],{"class":47},[34,133460,83356],{"class":181},[34,133462,133344],{"class":47},[34,133464,30124],{"class":181},[34,133466,3207],{"class":47},[34,133468,1607],{"class":181},[34,133470,178],{"class":47},[34,133472,2416],{"class":181},[34,133474,133475,133477,133479,133481],{"class":36,"line":734},[34,133476,121797],{"class":50},[34,133478,121811],{"class":181},[34,133480,1301],{"class":580},[34,133482,133483],{"class":181}," age\n",[34,133485,133486],{"class":36,"line":742},[34,133487,3229],{"class":181},[34,133489,133490],{"class":36,"line":748},[34,133491,693],{"class":181},[34,133493,133494],{"class":36,"line":754},[34,133495,62],{"emptyLinePlaceholder":61},[34,133497,133498],{"class":36,"line":759},[34,133499,133500],{"class":40},"// Properties\n",[34,133502,133503,133505,133507],{"class":36,"line":771},[34,133504,30060],{"class":580},[34,133506,30063],{"class":47},[34,133508,661],{"class":181},[34,133510,133511,133513,133515,133517,133519],{"class":36,"line":794},[34,133512,33908],{"class":580},[34,133514,133332],{"class":181},[34,133516,51427],{"class":47},[34,133518,683],{"class":580},[34,133520,133521],{"class":54}," \"\"\n",[34,133523,133524,133526,133528,133530,133533,133535,133537],{"class":36,"line":824},[34,133525,34173],{"class":580},[34,133527,672],{"class":181},[34,133529,1301],{"class":580},[34,133531,133532],{"class":580}," field",[34,133534,151],{"class":181},[34,133536,42190],{"class":47},[34,133538,33899],{"class":181},[34,133540,133541,133543,133545,133547],{"class":36,"line":830},[34,133542,34183],{"class":580},[34,133544,1607],{"class":181},[34,133546,2871],{"class":580},[34,133548,2416],{"class":181},[34,133550,133551,133554,133556,133558,133560,133562],{"class":36,"line":839},[34,133552,133553],{"class":580},"            field",[34,133555,683],{"class":580},[34,133557,18389],{"class":580},[34,133559,151],{"class":181},[34,133561,72217],{"class":47},[34,133563,33899],{"class":181},[34,133565,133566],{"class":36,"line":854},[34,133567,26208],{"class":181},[34,133569,133570],{"class":36,"line":860},[34,133571,3666],{"class":181},[34,133573,133574,133576,133579],{"class":36,"line":865},[34,133575,133373],{"class":580},[34,133577,133578],{"class":181}," isAdult: ",[34,133580,133581],{"class":47},"Boolean\n",[34,133583,133584,133586,133588,133590,133592,133594],{"class":36,"line":870},[34,133585,34173],{"class":580},[34,133587,672],{"class":181},[34,133589,1301],{"class":580},[34,133591,25065],{"class":181},[34,133593,18401],{"class":580},[34,133595,87787],{"class":50},[34,133597,133598],{"class":36,"line":876},[34,133599,693],{"class":181},[34,133601,133602],{"class":36,"line":885},[34,133603,62],{"emptyLinePlaceholder":61},[34,133605,133606],{"class":36,"line":895},[34,133607,36137],{"class":40},[34,133609,133610,133613,133615,133617,133619,133621,133623,133625],{"class":36,"line":904},[34,133611,133612],{"class":580},"open",[34,133614,655],{"class":580},[34,133616,31500],{"class":47},[34,133618,1607],{"class":181},[34,133620,133329],{"class":580},[34,133622,133332],{"class":181},[34,133624,51427],{"class":47},[34,133626,2416],{"class":181},[34,133628,133629,133632,133635,133638,133640,133642],{"class":36,"line":915},[34,133630,133631],{"class":580},"    open",[34,133633,133634],{"class":580}," fun",[34,133636,133637],{"class":47}," sound",[34,133639,672],{"class":181},[34,133641,1301],{"class":580},[34,133643,133644],{"class":54}," \"...\"\n",[34,133646,133647],{"class":36,"line":927},[34,133648,693],{"class":181},[34,133650,133651],{"class":36,"line":932},[34,133652,62],{"emptyLinePlaceholder":61},[34,133654,133655,133657,133659,133661,133663,133665,133667,133669,133671],{"class":36,"line":944},[34,133656,30060],{"class":580},[34,133658,31577],{"class":47},[34,133660,133364],{"class":181},[34,133662,51427],{"class":47},[34,133664,30124],{"class":181},[34,133666,31645],{"class":47},[34,133668,1607],{"class":181},[34,133670,178],{"class":47},[34,133672,2416],{"class":181},[34,133674,133675,133678,133680,133682,133684,133686],{"class":36,"line":966},[34,133676,133677],{"class":580},"    override",[34,133679,133634],{"class":580},[34,133681,133637],{"class":47},[34,133683,672],{"class":181},[34,133685,1301],{"class":580},[34,133687,133688],{"class":54}," \"Woof!\"\n",[34,133690,133691],{"class":36,"line":1948},[34,133692,693],{"class":181},[34,133694,133695],{"class":36,"line":1953},[34,133696,62],{"emptyLinePlaceholder":61},[34,133698,133699],{"class":36,"line":3616},[34,133700,36006],{"class":40},[34,133702,133703,133705,133707],{"class":36,"line":3622},[34,133704,17562],{"class":580},[34,133706,122112],{"class":47},[34,133708,661],{"class":181},[34,133710,133711,133714,133716],{"class":36,"line":3642},[34,133712,133713],{"class":580},"    fun",[34,133715,122121],{"class":47},[34,133717,33899],{"class":181},[34,133719,133720,133722,133724,133726],{"class":36,"line":3657},[34,133721,133713],{"class":580},[34,133723,102005],{"class":47},[34,133725,122134],{"class":181},[34,133727,133728],{"class":40},"// Default implementation\n",[34,133730,133731],{"class":36,"line":3663},[34,133732,693],{"class":181},[34,133734,133735],{"class":36,"line":3669},[34,133736,62],{"emptyLinePlaceholder":61},[34,133738,133739],{"class":36,"line":3675},[34,133740,36056],{"class":40},[34,133742,133743,133745,133747,133749],{"class":36,"line":3693},[34,133744,59101],{"class":580},[34,133746,655],{"class":580},[34,133748,106427],{"class":47},[34,133750,661],{"class":181},[34,133752,133753,133756,133758,133760,133763],{"class":36,"line":3707},[34,133754,133755],{"class":580},"    abstract",[34,133757,133634],{"class":580},[34,133759,122172],{"class":47},[34,133761,133762],{"class":181},"(): ",[34,133764,133765],{"class":47},"Double\n",[34,133767,133768],{"class":36,"line":3712},[34,133769,693],{"class":181},[388,133771,49910],{},{"title":30,"searchDepth":44,"depth":44,"links":133773},[133774],{"id":125319,"depth":44,"text":125314},"Classes in Kotlin.",{},"/kotlin/classes",{"title":125314,"description":133775},"kotlin/classes",[133311,121718,133781,133782],"android","multiplatform","rfS0msBHfvaSQLXD0c38dlXtXJ717seRHxLFt1yPSuw",{"id":133785,"title":133786,"body":133787,"date":402,"description":134234,"extension":404,"meta":134235,"navigation":61,"order":700,"path":134236,"seo":134237,"stem":134238,"subject":133311,"tags":134239,"__hash__":134240},"topics/kotlin/collection-operations.md","Collection Operations",{"type":8,"value":133788,"toc":134231},[133789,133792,134228],[11,133790,133786],{"id":133791},"collection-operations",[25,133793,133795],{"className":133309,"code":133794,"language":133311,"meta":30,"style":30},"// Transformations\nlist.map { it * 2 }\nlist.mapNotNull { it.toIntOrNull() }\nlist.flatMap { listOf(it, it + 1) }\n\n// Filtering\nlist.filter { it > 0 }\nlist.filterNot { it > 0 }\nlist.filterNotNull()\nlist.take(3)\nlist.drop(2)\nlist.distinct()\n\n// Aggregation\nlist.sum()\nlist.average()\nlist.count { it > 0 }\nlist.maxOrNull()\nlist.minOrNull()\nlist.reduce { acc, i -> acc + i }\nlist.fold(0) { acc, i -> acc + i }\n\n// Finding\nlist.find { it > 5 }\nlist.firstOrNull { it > 5 }\nlist.any { it > 5 }\nlist.all { it > 0 }\nlist.none { it \u003C 0 }\n\n// Sorting\nlist.sorted()\nlist.sortedDescending()\nlist.sortedBy { it.name }\n\n// Grouping\nlist.groupBy { it.category }\nlist.partition { it > 0 }  // Pair of lists\nlist.chunked(3)\n\n// Association\nlist.associateBy { it.id }\nlist.associate { it.id to it.name }\n",[20,133796,133797,133802,133817,133833,133854,133858,133863,133877,133892,133901,133914,133927,133935,133939,133944,133952,133961,133975,133984,133993,134011,134033,134037,134042,134056,134071,134085,134099,134113,134117,134122,134130,134139,134149,134153,134158,134168,134186,134199,134203,134208,134218],{"__ignoreMap":30},[34,133798,133799],{"class":36,"line":37},[34,133800,133801],{"class":40},"// Transformations\n",[34,133803,133804,133806,133808,133811,133813,133815],{"class":36,"line":44},[34,133805,121351],{"class":181},[34,133807,61180],{"class":47},[34,133809,133810],{"class":181}," { it ",[34,133812,4289],{"class":580},[34,133814,4292],{"class":50},[34,133816,52786],{"class":181},[34,133818,133819,133821,133824,133827,133830],{"class":36,"line":58},[34,133820,121351],{"class":181},[34,133822,133823],{"class":47},"mapNotNull",[34,133825,133826],{"class":181}," { it.",[34,133828,133829],{"class":47},"toIntOrNull",[34,133831,133832],{"class":181},"() }\n",[34,133834,133835,133837,133839,133841,133844,133847,133849,133851],{"class":36,"line":65},[34,133836,121351],{"class":181},[34,133838,123487],{"class":47},[34,133840,30251],{"class":181},[34,133842,133843],{"class":47},"listOf",[34,133845,133846],{"class":181},"(it, it ",[34,133848,2940],{"class":580},[34,133850,3567],{"class":50},[34,133852,133853],{"class":181},") }\n",[34,133855,133856],{"class":36,"line":71},[34,133857,62],{"emptyLinePlaceholder":61},[34,133859,133860],{"class":36,"line":77},[34,133861,133862],{"class":40},"// Filtering\n",[34,133864,133865,133867,133869,133871,133873,133875],{"class":36,"line":82},[34,133866,121351],{"class":181},[34,133868,32125],{"class":47},[34,133870,133810],{"class":181},[34,133872,5691],{"class":580},[34,133874,8070],{"class":50},[34,133876,52786],{"class":181},[34,133878,133879,133881,133884,133886,133888,133890],{"class":36,"line":88},[34,133880,121351],{"class":181},[34,133882,133883],{"class":47},"filterNot",[34,133885,133810],{"class":181},[34,133887,5691],{"class":580},[34,133889,8070],{"class":50},[34,133891,52786],{"class":181},[34,133893,133894,133896,133899],{"class":36,"line":242},[34,133895,121351],{"class":181},[34,133897,133898],{"class":47},"filterNotNull",[34,133900,33899],{"class":181},[34,133902,133903,133905,133908,133910,133912],{"class":36,"line":250},[34,133904,121351],{"class":181},[34,133906,133907],{"class":47},"take",[34,133909,1607],{"class":181},[34,133911,3162],{"class":50},[34,133913,3372],{"class":181},[34,133915,133916,133918,133921,133923,133925],{"class":36,"line":263},[34,133917,121351],{"class":181},[34,133919,133920],{"class":47},"drop",[34,133922,1607],{"class":181},[34,133924,8324],{"class":50},[34,133926,3372],{"class":181},[34,133928,133929,133931,133933],{"class":36,"line":275},[34,133930,121351],{"class":181},[34,133932,124200],{"class":47},[34,133934,33899],{"class":181},[34,133936,133937],{"class":36,"line":700},[34,133938,62],{"emptyLinePlaceholder":61},[34,133940,133941],{"class":36,"line":706},[34,133942,133943],{"class":40},"// Aggregation\n",[34,133945,133946,133948,133950],{"class":36,"line":715},[34,133947,121351],{"class":181},[34,133949,11135],{"class":47},[34,133951,33899],{"class":181},[34,133953,133954,133956,133959],{"class":36,"line":725},[34,133955,121351],{"class":181},[34,133957,133958],{"class":47},"average",[34,133960,33899],{"class":181},[34,133962,133963,133965,133967,133969,133971,133973],{"class":36,"line":734},[34,133964,121351],{"class":181},[34,133966,4284],{"class":47},[34,133968,133810],{"class":181},[34,133970,5691],{"class":580},[34,133972,8070],{"class":50},[34,133974,52786],{"class":181},[34,133976,133977,133979,133982],{"class":36,"line":742},[34,133978,121351],{"class":181},[34,133980,133981],{"class":47},"maxOrNull",[34,133983,33899],{"class":181},[34,133985,133986,133988,133991],{"class":36,"line":748},[34,133987,121351],{"class":181},[34,133989,133990],{"class":47},"minOrNull",[34,133992,33899],{"class":181},[34,133994,133995,133997,133999,134002,134004,134006,134008],{"class":36,"line":754},[34,133996,121351],{"class":181},[34,133998,8345],{"class":47},[34,134000,134001],{"class":181}," { acc, i ",[34,134003,24863],{"class":580},[34,134005,125153],{"class":181},[34,134007,2940],{"class":580},[34,134009,134010],{"class":181}," i }\n",[34,134012,134013,134015,134018,134020,134022,134025,134027,134029,134031],{"class":36,"line":759},[34,134014,121351],{"class":181},[34,134016,134017],{"class":47},"fold",[34,134019,1607],{"class":181},[34,134021,2773],{"class":50},[34,134023,134024],{"class":181},") { acc, i ",[34,134026,24863],{"class":580},[34,134028,125153],{"class":181},[34,134030,2940],{"class":580},[34,134032,134010],{"class":181},[34,134034,134035],{"class":36,"line":771},[34,134036,62],{"emptyLinePlaceholder":61},[34,134038,134039],{"class":36,"line":794},[34,134040,134041],{"class":40},"// Finding\n",[34,134043,134044,134046,134048,134050,134052,134054],{"class":36,"line":824},[34,134045,121351],{"class":181},[34,134047,12963],{"class":47},[34,134049,133810],{"class":181},[34,134051,5691],{"class":580},[34,134053,11144],{"class":50},[34,134055,52786],{"class":181},[34,134057,134058,134060,134063,134065,134067,134069],{"class":36,"line":830},[34,134059,121351],{"class":181},[34,134061,134062],{"class":47},"firstOrNull",[34,134064,133810],{"class":181},[34,134066,5691],{"class":580},[34,134068,11144],{"class":50},[34,134070,52786],{"class":181},[34,134072,134073,134075,134077,134079,134081,134083],{"class":36,"line":839},[34,134074,121351],{"class":181},[34,134076,106652],{"class":47},[34,134078,133810],{"class":181},[34,134080,5691],{"class":580},[34,134082,11144],{"class":50},[34,134084,52786],{"class":181},[34,134086,134087,134089,134091,134093,134095,134097],{"class":36,"line":854},[34,134088,121351],{"class":181},[34,134090,17175],{"class":47},[34,134092,133810],{"class":181},[34,134094,5691],{"class":580},[34,134096,8070],{"class":50},[34,134098,52786],{"class":181},[34,134100,134101,134103,134105,134107,134109,134111],{"class":36,"line":860},[34,134102,121351],{"class":181},[34,134104,40865],{"class":47},[34,134106,133810],{"class":181},[34,134108,815],{"class":580},[34,134110,8070],{"class":50},[34,134112,52786],{"class":181},[34,134114,134115],{"class":36,"line":865},[34,134116,62],{"emptyLinePlaceholder":61},[34,134118,134119],{"class":36,"line":870},[34,134120,134121],{"class":40},"// Sorting\n",[34,134123,134124,134126,134128],{"class":36,"line":876},[34,134125,121351],{"class":181},[34,134127,65595],{"class":47},[34,134129,33899],{"class":181},[34,134131,134132,134134,134137],{"class":36,"line":885},[34,134133,121351],{"class":181},[34,134135,134136],{"class":47},"sortedDescending",[34,134138,33899],{"class":181},[34,134140,134141,134143,134146],{"class":36,"line":895},[34,134142,121351],{"class":181},[34,134144,134145],{"class":47},"sortedBy",[34,134147,134148],{"class":181}," { it.name }\n",[34,134150,134151],{"class":36,"line":904},[34,134152,62],{"emptyLinePlaceholder":61},[34,134154,134155],{"class":36,"line":915},[34,134156,134157],{"class":40},"// Grouping\n",[34,134159,134160,134162,134165],{"class":36,"line":927},[34,134161,121351],{"class":181},[34,134163,134164],{"class":47},"groupBy",[34,134166,134167],{"class":181}," { it.category }\n",[34,134169,134170,134172,134175,134177,134179,134181,134183],{"class":36,"line":932},[34,134171,121351],{"class":181},[34,134173,134174],{"class":47},"partition",[34,134176,133810],{"class":181},[34,134178,5691],{"class":580},[34,134180,8070],{"class":50},[34,134182,76356],{"class":181},[34,134184,134185],{"class":40},"// Pair of lists\n",[34,134187,134188,134190,134193,134195,134197],{"class":36,"line":944},[34,134189,121351],{"class":181},[34,134191,134192],{"class":47},"chunked",[34,134194,1607],{"class":181},[34,134196,3162],{"class":50},[34,134198,3372],{"class":181},[34,134200,134201],{"class":36,"line":966},[34,134202,62],{"emptyLinePlaceholder":61},[34,134204,134205],{"class":36,"line":1948},[34,134206,134207],{"class":40},"// Association\n",[34,134209,134210,134212,134215],{"class":36,"line":1953},[34,134211,121351],{"class":181},[34,134213,134214],{"class":47},"associateBy",[34,134216,134217],{"class":181}," { it.id }\n",[34,134219,134220,134222,134225],{"class":36,"line":3616},[34,134221,121351],{"class":181},[34,134223,134224],{"class":47},"associate",[34,134226,134227],{"class":181}," { it.id to it.name }\n",[388,134229,134230],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":134232},[134233],{"id":133791,"depth":44,"text":133786},"Collection Operations in Kotlin.",{},"/kotlin/collection-operations",{"title":133786,"description":134234},"kotlin/collection-operations",[133311,121718,133781,133782],"nBytF3OZV7c2FI-c5ddoXy67Ka3CL7ppO-tm_nVQZbo",{"id":134242,"title":83157,"body":134243,"date":402,"description":134647,"extension":404,"meta":134648,"navigation":61,"order":71,"path":134649,"seo":134650,"stem":134651,"subject":133311,"tags":134652,"__hash__":134653},"topics/kotlin/collections.md",{"type":8,"value":134244,"toc":134644},[134245,134247,134642],[11,134246,83157],{"id":83156},[25,134248,134250],{"className":133309,"code":134249,"language":133311,"meta":30,"style":30},"// Immutable collections (default)\nval list = listOf(1, 2, 3)\nval set = setOf(\"a\", \"b\", \"c\")\nval map = mapOf(\"key\" to \"value\", \"foo\" to \"bar\")\n\n// Mutable collections\nval mutableList = mutableListOf(1, 2, 3)\nval mutableSet = mutableSetOf(\"a\", \"b\")\nval mutableMap = mutableMapOf(\"key\" to \"value\")\n\n// List operations\nlist[0]                      // Get by index\nlist.first()                 // First element\nlist.last()                  // Last element\nlist.getOrNull(10)           // Safe get\nlist.size\nlist.isEmpty()\nlist.contains(1)\nlist + 4                     // New list with element\nlist - 1                     // New list without element\n\n// Map operations\nmap[\"key\"]                   // Get value\nmap.getOrDefault(\"key\", \"default\")\nmap.keys\nmap.values\nmap.entries\n\n// Mutable operations\nmutableList.add(4)\nmutableList.remove(1)\nmutableList += 5\nmutableMap[\"newKey\"] = \"newValue\"\n",[20,134251,134252,134257,134283,134308,134341,134345,134350,134376,134398,134420,134424,134429,134442,134453,134466,134482,134487,134495,134507,134519,134530,134534,134539,134552,134568,134573,134578,134583,134587,134592,134605,134617,134627],{"__ignoreMap":30},[34,134253,134254],{"class":36,"line":37},[34,134255,134256],{"class":40},"// Immutable collections (default)\n",[34,134258,134259,134261,134264,134266,134269,134271,134273,134275,134277,134279,134281],{"class":36,"line":44},[34,134260,133329],{"class":580},[34,134262,134263],{"class":181}," list ",[34,134265,1301],{"class":580},[34,134267,134268],{"class":47}," listOf",[34,134270,1607],{"class":181},[34,134272,8318],{"class":50},[34,134274,1798],{"class":181},[34,134276,8324],{"class":50},[34,134278,1798],{"class":181},[34,134280,3162],{"class":50},[34,134282,3372],{"class":181},[34,134284,134285,134287,134289,134291,134294,134296,134298,134300,134302,134304,134306],{"class":36,"line":58},[34,134286,133329],{"class":580},[34,134288,9481],{"class":580},[34,134290,683],{"class":580},[34,134292,134293],{"class":47}," setOf",[34,134295,1607],{"class":181},[34,134297,104277],{"class":54},[34,134299,1798],{"class":181},[34,134301,104282],{"class":54},[34,134303,1798],{"class":181},[34,134305,121636],{"class":54},[34,134307,3372],{"class":181},[34,134309,134310,134312,134315,134317,134320,134322,134324,134327,134329,134331,134334,134336,134339],{"class":36,"line":65},[34,134311,133329],{"class":580},[34,134313,134314],{"class":181}," map ",[34,134316,1301],{"class":580},[34,134318,134319],{"class":47}," mapOf",[34,134321,1607],{"class":181},[34,134323,121453],{"class":54},[34,134325,134326],{"class":181}," to ",[34,134328,16847],{"class":54},[34,134330,1798],{"class":181},[34,134332,134333],{"class":54},"\"foo\"",[34,134335,134326],{"class":181},[34,134337,134338],{"class":54},"\"bar\"",[34,134340,3372],{"class":181},[34,134342,134343],{"class":36,"line":71},[34,134344,62],{"emptyLinePlaceholder":61},[34,134346,134347],{"class":36,"line":77},[34,134348,134349],{"class":40},"// Mutable collections\n",[34,134351,134352,134354,134357,134359,134362,134364,134366,134368,134370,134372,134374],{"class":36,"line":82},[34,134353,133329],{"class":580},[34,134355,134356],{"class":181}," mutableList ",[34,134358,1301],{"class":580},[34,134360,134361],{"class":47}," mutableListOf",[34,134363,1607],{"class":181},[34,134365,8318],{"class":50},[34,134367,1798],{"class":181},[34,134369,8324],{"class":50},[34,134371,1798],{"class":181},[34,134373,3162],{"class":50},[34,134375,3372],{"class":181},[34,134377,134378,134380,134383,134385,134388,134390,134392,134394,134396],{"class":36,"line":88},[34,134379,133329],{"class":580},[34,134381,134382],{"class":181}," mutableSet ",[34,134384,1301],{"class":580},[34,134386,134387],{"class":47}," mutableSetOf",[34,134389,1607],{"class":181},[34,134391,104277],{"class":54},[34,134393,1798],{"class":181},[34,134395,104282],{"class":54},[34,134397,3372],{"class":181},[34,134399,134400,134402,134405,134407,134410,134412,134414,134416,134418],{"class":36,"line":242},[34,134401,133329],{"class":580},[34,134403,134404],{"class":181}," mutableMap ",[34,134406,1301],{"class":580},[34,134408,134409],{"class":47}," mutableMapOf",[34,134411,1607],{"class":181},[34,134413,121453],{"class":54},[34,134415,134326],{"class":181},[34,134417,16847],{"class":54},[34,134419,3372],{"class":181},[34,134421,134422],{"class":36,"line":250},[34,134423,62],{"emptyLinePlaceholder":61},[34,134425,134426],{"class":36,"line":263},[34,134427,134428],{"class":40},"// List operations\n",[34,134430,134431,134434,134436,134439],{"class":36,"line":275},[34,134432,134433],{"class":181},"list[",[34,134435,2773],{"class":50},[34,134437,134438],{"class":181},"]                      ",[34,134440,134441],{"class":40},"// Get by index\n",[34,134443,134444,134446,134448,134451],{"class":36,"line":700},[34,134445,121351],{"class":181},[34,134447,126899],{"class":47},[34,134449,134450],{"class":181},"()                 ",[34,134452,36554],{"class":40},[34,134454,134455,134457,134460,134463],{"class":36,"line":706},[34,134456,121351],{"class":181},[34,134458,134459],{"class":47},"last",[34,134461,134462],{"class":181},"()                  ",[34,134464,134465],{"class":40},"// Last element\n",[34,134467,134468,134470,134473,134475,134477,134479],{"class":36,"line":715},[34,134469,121351],{"class":181},[34,134471,134472],{"class":47},"getOrNull",[34,134474,1607],{"class":181},[34,134476,11923],{"class":50},[34,134478,75985],{"class":181},[34,134480,134481],{"class":40},"// Safe get\n",[34,134483,134484],{"class":36,"line":725},[34,134485,134486],{"class":181},"list.size\n",[34,134488,134489,134491,134493],{"class":36,"line":734},[34,134490,121351],{"class":181},[34,134492,51729],{"class":47},[34,134494,33899],{"class":181},[34,134496,134497,134499,134501,134503,134505],{"class":36,"line":742},[34,134498,121351],{"class":181},[34,134500,51780],{"class":47},[34,134502,1607],{"class":181},[34,134504,8318],{"class":50},[34,134506,3372],{"class":181},[34,134508,134509,134512,134514,134516],{"class":36,"line":748},[34,134510,134511],{"class":181},"list ",[34,134513,2940],{"class":580},[34,134515,11801],{"class":50},[34,134517,134518],{"class":40},"                     // New list with element\n",[34,134520,134521,134523,134525,134527],{"class":36,"line":754},[34,134522,134511],{"class":181},[34,134524,22062],{"class":580},[34,134526,3567],{"class":50},[34,134528,134529],{"class":40},"                     // New list without element\n",[34,134531,134532],{"class":36,"line":759},[34,134533,62],{"emptyLinePlaceholder":61},[34,134535,134536],{"class":36,"line":771},[34,134537,134538],{"class":40},"// Map operations\n",[34,134540,134541,134544,134546,134549],{"class":36,"line":794},[34,134542,134543],{"class":181},"map[",[34,134545,121453],{"class":54},[34,134547,134548],{"class":181},"]                   ",[34,134550,134551],{"class":40},"// Get value\n",[34,134553,134554,134556,134558,134560,134562,134564,134566],{"class":36,"line":824},[34,134555,121446],{"class":181},[34,134557,121478],{"class":47},[34,134559,1607],{"class":181},[34,134561,121453],{"class":54},[34,134563,1798],{"class":181},[34,134565,123382],{"class":54},[34,134567,3372],{"class":181},[34,134569,134570],{"class":36,"line":830},[34,134571,134572],{"class":181},"map.keys\n",[34,134574,134575],{"class":36,"line":839},[34,134576,134577],{"class":181},"map.values\n",[34,134579,134580],{"class":36,"line":854},[34,134581,134582],{"class":181},"map.entries\n",[34,134584,134585],{"class":36,"line":860},[34,134586,62],{"emptyLinePlaceholder":61},[34,134588,134589],{"class":36,"line":865},[34,134590,134591],{"class":40},"// Mutable operations\n",[34,134593,134594,134597,134599,134601,134603],{"class":36,"line":870},[34,134595,134596],{"class":181},"mutableList.",[34,134598,11093],{"class":47},[34,134600,1607],{"class":181},[34,134602,18010],{"class":50},[34,134604,3372],{"class":181},[34,134606,134607,134609,134611,134613,134615],{"class":36,"line":876},[34,134608,134596],{"class":181},[34,134610,47717],{"class":47},[34,134612,1607],{"class":181},[34,134614,8318],{"class":50},[34,134616,3372],{"class":181},[34,134618,134619,134622,134624],{"class":36,"line":885},[34,134620,134621],{"class":181},"mutableList ",[34,134623,31462],{"class":580},[34,134625,134626],{"class":50}," 5\n",[34,134628,134629,134632,134635,134637,134639],{"class":36,"line":895},[34,134630,134631],{"class":181},"mutableMap[",[34,134633,134634],{"class":54},"\"newKey\"",[34,134636,17799],{"class":181},[34,134638,1301],{"class":580},[34,134640,134641],{"class":54}," \"newValue\"\n",[388,134643,33776],{},{"title":30,"searchDepth":44,"depth":44,"links":134645},[134646],{"id":83156,"depth":44,"text":83157},"Collections in Kotlin.",{},"/kotlin/collections",{"title":83157,"description":134647},"kotlin/collections",[133311,121718,133781,133782],"jnZ5uRyJNk8h-03oJRIWtQigc9SluwVV5SCFxyE0BaA",{"id":134655,"title":18818,"body":134656,"date":402,"description":135081,"extension":404,"meta":135082,"navigation":61,"order":77,"path":135083,"seo":135084,"stem":135085,"subject":133311,"tags":135086,"__hash__":135087},"topics/kotlin/control-flow.md",{"type":8,"value":134657,"toc":135078},[134658,134660,135076],[11,134659,18818],{"id":18823},[25,134661,134663],{"className":133309,"code":134662,"language":133311,"meta":30,"style":30},"// If expression (returns value)\nval max = if (a > b) a else b\n\n// When expression (switch on steroids)\nval result = when (x) {\n    1 -> \"one\"\n    2, 3 -> \"two or three\"\n    in 4..10 -> \"between 4 and 10\"\n    is String -> \"it's a string\"\n    else -> \"unknown\"\n}\n\n// When without argument\nwhen {\n    x \u003C 0 -> println(\"negative\")\n    x == 0 -> println(\"zero\")\n    else -> println(\"positive\")\n}\n\n// For loops\nfor (i in 1..10) { }           // 1 to 10 inclusive\nfor (i in 1 until 10) { }      // 1 to 9\nfor (i in 10 downTo 1) { }     // 10 to 1\nfor (i in 1..10 step 2) { }    // 1, 3, 5, 7, 9\nfor (item in list) { }\nfor ((index, value) in list.withIndex()) { }\nfor ((key, value) in map) { }\n\n// While loops\nwhile (condition) { }\ndo { } while (condition)\n\n// Ranges\nval range = 1..10\nval charRange = 'a'..'z'\nif (x in 1..10) { }\n",[20,134664,134665,134670,134691,134695,134700,134714,134724,134738,134754,134766,134775,134779,134783,134788,134794,134813,134831,134845,134849,134853,134858,134878,134899,134920,134945,134956,134978,134994,134998,135003,135009,135019,135023,135028,135043,135060],{"__ignoreMap":30},[34,134666,134667],{"class":36,"line":37},[34,134668,134669],{"class":40},"// If expression (returns value)\n",[34,134671,134672,134674,134676,134678,134680,134682,134684,134687,134689],{"class":36,"line":44},[34,134673,133329],{"class":580},[34,134675,18941],{"class":181},[34,134677,1301],{"class":580},[34,134679,18874],{"class":580},[34,134681,18946],{"class":181},[34,134683,5691],{"class":580},[34,134685,134686],{"class":181}," b) a ",[34,134688,18871],{"class":580},[34,134690,87475],{"class":181},[34,134692,134693],{"class":36,"line":58},[34,134694,62],{"emptyLinePlaceholder":61},[34,134696,134697],{"class":36,"line":65},[34,134698,134699],{"class":40},"// When expression (switch on steroids)\n",[34,134701,134702,134704,134706,134708,134711],{"class":36,"line":71},[34,134703,133329],{"class":580},[34,134705,20093],{"class":181},[34,134707,1301],{"class":580},[34,134709,134710],{"class":580}," when",[34,134712,134713],{"class":181}," (x) {\n",[34,134715,134716,134719,134721],{"class":36,"line":77},[34,134717,134718],{"class":50},"    1",[34,134720,122423],{"class":580},[34,134722,134723],{"class":54}," \"one\"\n",[34,134725,134726,134729,134731,134733,134735],{"class":36,"line":82},[34,134727,134728],{"class":50},"    2",[34,134730,1798],{"class":181},[34,134732,3162],{"class":50},[34,134734,122423],{"class":580},[34,134736,134737],{"class":54}," \"two or three\"\n",[34,134739,134740,134743,134745,134747,134749,134751],{"class":36,"line":88},[34,134741,134742],{"class":580},"    in",[34,134744,11801],{"class":50},[34,134746,101074],{"class":580},[34,134748,11923],{"class":50},[34,134750,122423],{"class":580},[34,134752,134753],{"class":54}," \"between 4 and 10\"\n",[34,134755,134756,134759,134761,134763],{"class":36,"line":242},[34,134757,134758],{"class":580},"    is",[34,134760,121835],{"class":181},[34,134762,24863],{"class":580},[34,134764,134765],{"class":54}," \"it's a string\"\n",[34,134767,134768,134770,134772],{"class":36,"line":250},[34,134769,63908],{"class":580},[34,134771,122423],{"class":580},[34,134773,134774],{"class":54}," \"unknown\"\n",[34,134776,134777],{"class":36,"line":263},[34,134778,693],{"class":181},[34,134780,134781],{"class":36,"line":275},[34,134782,62],{"emptyLinePlaceholder":61},[34,134784,134785],{"class":36,"line":700},[34,134786,134787],{"class":40},"// When without argument\n",[34,134789,134790,134792],{"class":36,"line":706},[34,134791,34898],{"class":580},[34,134793,661],{"class":181},[34,134795,134796,134798,134800,134802,134804,134807,134809,134811],{"class":36,"line":715},[34,134797,31295],{"class":181},[34,134799,815],{"class":580},[34,134801,8070],{"class":50},[34,134803,122423],{"class":580},[34,134805,134806],{"class":47}," println",[34,134808,1607],{"class":181},[34,134810,104866],{"class":54},[34,134812,3372],{"class":181},[34,134814,134815,134817,134819,134821,134823,134825,134827,134829],{"class":36,"line":725},[34,134816,31295],{"class":181},[34,134818,18168],{"class":580},[34,134820,8070],{"class":50},[34,134822,122423],{"class":580},[34,134824,134806],{"class":47},[34,134826,1607],{"class":181},[34,134828,104910],{"class":54},[34,134830,3372],{"class":181},[34,134832,134833,134835,134837,134839,134841,134843],{"class":36,"line":734},[34,134834,63908],{"class":580},[34,134836,122423],{"class":580},[34,134838,134806],{"class":47},[34,134840,1607],{"class":181},[34,134842,104891],{"class":54},[34,134844,3372],{"class":181},[34,134846,134847],{"class":36,"line":742},[34,134848,693],{"class":181},[34,134850,134851],{"class":36,"line":748},[34,134852,62],{"emptyLinePlaceholder":61},[34,134854,134855],{"class":36,"line":754},[34,134856,134857],{"class":40},"// For loops\n",[34,134859,134860,134862,134864,134866,134868,134870,134872,134875],{"class":36,"line":759},[34,134861,10246],{"class":580},[34,134863,19100],{"class":181},[34,134865,10252],{"class":580},[34,134867,3567],{"class":50},[34,134869,101074],{"class":580},[34,134871,11923],{"class":50},[34,134873,134874],{"class":181},") { }           ",[34,134876,134877],{"class":40},"// 1 to 10 inclusive\n",[34,134879,134880,134882,134884,134886,134888,134891,134893,134896],{"class":36,"line":771},[34,134881,10246],{"class":580},[34,134883,19100],{"class":181},[34,134885,10252],{"class":580},[34,134887,3567],{"class":50},[34,134889,134890],{"class":181}," until ",[34,134892,11923],{"class":50},[34,134894,134895],{"class":181},") { }      ",[34,134897,134898],{"class":40},"// 1 to 9\n",[34,134900,134901,134903,134905,134907,134909,134912,134914,134917],{"class":36,"line":794},[34,134902,10246],{"class":580},[34,134904,19100],{"class":181},[34,134906,10252],{"class":580},[34,134908,13123],{"class":50},[34,134910,134911],{"class":181}," downTo ",[34,134913,8318],{"class":50},[34,134915,134916],{"class":181},") { }     ",[34,134918,134919],{"class":40},"// 10 to 1\n",[34,134921,134922,134924,134926,134928,134930,134932,134934,134937,134939,134942],{"class":36,"line":824},[34,134923,10246],{"class":580},[34,134925,19100],{"class":181},[34,134927,10252],{"class":580},[34,134929,3567],{"class":50},[34,134931,101074],{"class":580},[34,134933,11923],{"class":50},[34,134935,134936],{"class":181}," step ",[34,134938,8324],{"class":50},[34,134940,134941],{"class":181},") { }    ",[34,134943,134944],{"class":40},"// 1, 3, 5, 7, 9\n",[34,134946,134947,134949,134952,134954],{"class":36,"line":830},[34,134948,10246],{"class":580},[34,134950,134951],{"class":181}," (item ",[34,134953,10252],{"class":580},[34,134955,122478],{"class":181},[34,134957,134958,134960,134963,134965,134967,134969,134972,134975],{"class":36,"line":839},[34,134959,10246],{"class":580},[34,134961,134962],{"class":181}," ((index, ",[34,134964,2871],{"class":580},[34,134966,4817],{"class":181},[34,134968,10252],{"class":580},[34,134970,134971],{"class":181}," list.",[34,134973,134974],{"class":47},"withIndex",[34,134976,134977],{"class":181},"()) { }\n",[34,134979,134980,134982,134985,134987,134989,134991],{"class":36,"line":854},[34,134981,10246],{"class":580},[34,134983,134984],{"class":181}," ((key, ",[34,134986,2871],{"class":580},[34,134988,4817],{"class":181},[34,134990,10252],{"class":580},[34,134992,134993],{"class":181}," map) { }\n",[34,134995,134996],{"class":36,"line":860},[34,134997,62],{"emptyLinePlaceholder":61},[34,134999,135000],{"class":36,"line":865},[34,135001,135002],{"class":40},"// While loops\n",[34,135004,135005,135007],{"class":36,"line":870},[34,135006,12005],{"class":580},[34,135008,122485],{"class":181},[34,135010,135011,135013,135015,135017],{"class":36,"line":876},[34,135012,19148],{"class":580},[34,135014,122492],{"class":181},[34,135016,12005],{"class":580},[34,135018,34665],{"class":181},[34,135020,135021],{"class":36,"line":885},[34,135022,62],{"emptyLinePlaceholder":61},[34,135024,135025],{"class":36,"line":895},[34,135026,135027],{"class":40},"// Ranges\n",[34,135029,135030,135032,135035,135037,135039,135041],{"class":36,"line":904},[34,135031,133329],{"class":580},[34,135033,135034],{"class":181}," range ",[34,135036,1301],{"class":580},[34,135038,3567],{"class":50},[34,135040,101074],{"class":580},[34,135042,128083],{"class":50},[34,135044,135045,135047,135050,135052,135055,135057],{"class":36,"line":915},[34,135046,133329],{"class":580},[34,135048,135049],{"class":181}," charRange ",[34,135051,1301],{"class":580},[34,135053,135054],{"class":54}," 'a'",[34,135056,101074],{"class":580},[34,135058,135059],{"class":54},"'z'\n",[34,135061,135062,135064,135066,135068,135070,135072,135074],{"class":36,"line":927},[34,135063,10383],{"class":580},[34,135065,30759],{"class":181},[34,135067,10252],{"class":580},[34,135069,3567],{"class":50},[34,135071,101074],{"class":580},[34,135073,11923],{"class":50},[34,135075,41625],{"class":181},[388,135077,125059],{},{"title":30,"searchDepth":44,"depth":44,"links":135079},[135080],{"id":18823,"depth":44,"text":18818},"Control Flow in Kotlin.",{},"/kotlin/control-flow",{"title":18818,"description":135081},"kotlin/control-flow",[133311,121718,133781,133782],"CXGqZgIbz2c1X0VpTU_dpQLsNXSBhmksUwehKbNT7Ko",{"id":135089,"title":135090,"body":135091,"date":402,"description":135448,"extension":404,"meta":135449,"navigation":61,"order":715,"path":135450,"seo":135451,"stem":135452,"subject":133311,"tags":135453,"__hash__":135454},"topics/kotlin/coroutines.md","Coroutines",{"type":8,"value":135092,"toc":135445},[135093,135096,135443],[11,135094,135090],{"id":135095},"coroutines",[25,135097,135099],{"className":133309,"code":135098,"language":133311,"meta":30,"style":30},"// Basic coroutine\nsuspend fun fetchData(): String {\n    delay(1000)\n    return \"Data\"\n}\n\n// Launch - fire and forget\nGlobalScope.launch {\n    val data = fetchData()\n    println(data)\n}\n\n// Async - get result\nval deferred = GlobalScope.async {\n    fetchData()\n}\nval result = deferred.await()\n\n// Structured concurrency\ncoroutineScope {\n    val data1 = async { fetchData1() }\n    val data2 = async { fetchData2() }\n    println(\"${data1.await()} ${data2.await()}\")\n}\n\n// Flow\nfun numbers(): Flow\u003CInt> = flow {\n    for (i in 1..3) {\n        delay(100)\n        emit(i)\n    }\n}\n\nnumbers()\n    .filter { it > 1 }\n    .map { it * 2 }\n    .collect { println(it) }\n",[20,135100,135101,135106,135121,135132,135139,135143,135147,135152,135162,135174,135184,135188,135192,135197,135213,135220,135224,135239,135243,135248,135255,135273,135291,135312,135316,135320,135325,135350,135366,135377,135384,135388,135392,135396,135402,135416,135430],{"__ignoreMap":30},[34,135102,135103],{"class":36,"line":37},[34,135104,135105],{"class":40},"// Basic coroutine\n",[34,135107,135108,135111,135113,135115,135117,135119],{"class":36,"line":44},[34,135109,135110],{"class":580},"suspend",[34,135112,133634],{"class":580},[34,135114,126365],{"class":47},[34,135116,133762],{"class":181},[34,135118,51427],{"class":47},[34,135120,661],{"class":181},[34,135122,135123,135126,135128,135130],{"class":36,"line":58},[34,135124,135125],{"class":47},"    delay",[34,135127,1607],{"class":181},[34,135129,15304],{"class":50},[34,135131,3372],{"class":181},[34,135133,135134,135136],{"class":36,"line":65},[34,135135,1564],{"class":580},[34,135137,135138],{"class":54}," \"Data\"\n",[34,135140,135141],{"class":36,"line":71},[34,135142,693],{"class":181},[34,135144,135145],{"class":36,"line":77},[34,135146,62],{"emptyLinePlaceholder":61},[34,135148,135149],{"class":36,"line":82},[34,135150,135151],{"class":40},"// Launch - fire and forget\n",[34,135153,135154,135157,135160],{"class":36,"line":88},[34,135155,135156],{"class":181},"GlobalScope.",[34,135158,135159],{"class":47},"launch",[34,135161,661],{"class":181},[34,135163,135164,135166,135168,135170,135172],{"class":36,"line":242},[34,135165,133373],{"class":580},[34,135167,14780],{"class":580},[34,135169,683],{"class":580},[34,135171,126365],{"class":47},[34,135173,33899],{"class":181},[34,135175,135176,135178,135180,135182],{"class":36,"line":250},[34,135177,87327],{"class":47},[34,135179,1607],{"class":181},[34,135181,1701],{"class":580},[34,135183,3372],{"class":181},[34,135185,135186],{"class":36,"line":263},[34,135187,693],{"class":181},[34,135189,135190],{"class":36,"line":275},[34,135191,62],{"emptyLinePlaceholder":61},[34,135193,135194],{"class":36,"line":700},[34,135195,135196],{"class":40},"// Async - get result\n",[34,135198,135199,135201,135204,135206,135209,135211],{"class":36,"line":706},[34,135200,133329],{"class":580},[34,135202,135203],{"class":181}," deferred ",[34,135205,1301],{"class":580},[34,135207,135208],{"class":181}," GlobalScope.",[34,135210,17403],{"class":47},[34,135212,661],{"class":181},[34,135214,135215,135218],{"class":36,"line":715},[34,135216,135217],{"class":47},"    fetchData",[34,135219,33899],{"class":181},[34,135221,135222],{"class":36,"line":725},[34,135223,693],{"class":181},[34,135225,135226,135228,135230,135232,135235,135237],{"class":36,"line":734},[34,135227,133329],{"class":580},[34,135229,20093],{"class":181},[34,135231,1301],{"class":580},[34,135233,135234],{"class":181}," deferred.",[34,135236,15062],{"class":47},[34,135238,33899],{"class":181},[34,135240,135241],{"class":36,"line":742},[34,135242,62],{"emptyLinePlaceholder":61},[34,135244,135245],{"class":36,"line":748},[34,135246,135247],{"class":40},"// Structured concurrency\n",[34,135249,135250,135253],{"class":36,"line":754},[34,135251,135252],{"class":47},"coroutineScope",[34,135254,661],{"class":181},[34,135256,135257,135259,135262,135264,135266,135268,135271],{"class":36,"line":759},[34,135258,133373],{"class":580},[34,135260,135261],{"class":181}," data1 ",[34,135263,1301],{"class":580},[34,135265,33813],{"class":47},[34,135267,30251],{"class":181},[34,135269,135270],{"class":47},"fetchData1",[34,135272,133832],{"class":181},[34,135274,135275,135277,135280,135282,135284,135286,135289],{"class":36,"line":771},[34,135276,133373],{"class":580},[34,135278,135279],{"class":181}," data2 ",[34,135281,1301],{"class":580},[34,135283,33813],{"class":47},[34,135285,30251],{"class":181},[34,135287,135288],{"class":47},"fetchData2",[34,135290,133832],{"class":181},[34,135292,135293,135295,135297,135300,135302,135305,135307,135310],{"class":36,"line":794},[34,135294,87327],{"class":47},[34,135296,1607],{"class":181},[34,135298,135299],{"class":54},"\"${data1.",[34,135301,15062],{"class":47},[34,135303,135304],{"class":54},"()} ${data2.",[34,135306,15062],{"class":47},[34,135308,135309],{"class":54},"()}\"",[34,135311,3372],{"class":181},[34,135313,135314],{"class":36,"line":824},[34,135315,693],{"class":181},[34,135317,135318],{"class":36,"line":830},[34,135319,62],{"emptyLinePlaceholder":61},[34,135321,135322],{"class":36,"line":839},[34,135323,135324],{"class":40},"// Flow\n",[34,135326,135327,135330,135332,135334,135337,135339,135341,135343,135345,135348],{"class":36,"line":854},[34,135328,135329],{"class":580},"fun",[34,135331,17775],{"class":47},[34,135333,133762],{"class":181},[34,135335,135336],{"class":47},"Flow",[34,135338,815],{"class":181},[34,135340,133344],{"class":47},[34,135342,32840],{"class":181},[34,135344,1301],{"class":580},[34,135346,135347],{"class":47}," flow",[34,135349,661],{"class":181},[34,135351,135352,135354,135356,135358,135360,135362,135364],{"class":36,"line":860},[34,135353,18250],{"class":580},[34,135355,19100],{"class":181},[34,135357,10252],{"class":580},[34,135359,3567],{"class":50},[34,135361,101074],{"class":580},[34,135363,3162],{"class":50},[34,135365,2416],{"class":181},[34,135367,135368,135371,135373,135375],{"class":36,"line":865},[34,135369,135370],{"class":47},"        delay",[34,135372,1607],{"class":181},[34,135374,20863],{"class":50},[34,135376,3372],{"class":181},[34,135378,135379,135382],{"class":36,"line":870},[34,135380,135381],{"class":47},"        emit",[34,135383,88624],{"class":181},[34,135385,135386],{"class":36,"line":876},[34,135387,3229],{"class":181},[34,135389,135390],{"class":36,"line":885},[34,135391,693],{"class":181},[34,135393,135394],{"class":36,"line":895},[34,135395,62],{"emptyLinePlaceholder":61},[34,135397,135398,135400],{"class":36,"line":904},[34,135399,33330],{"class":47},[34,135401,33899],{"class":181},[34,135403,135404,135406,135408,135410,135412,135414],{"class":36,"line":915},[34,135405,123827],{"class":181},[34,135407,32125],{"class":47},[34,135409,133810],{"class":181},[34,135411,5691],{"class":580},[34,135413,3567],{"class":50},[34,135415,52786],{"class":181},[34,135417,135418,135420,135422,135424,135426,135428],{"class":36,"line":927},[34,135419,123827],{"class":181},[34,135421,61180],{"class":47},[34,135423,133810],{"class":181},[34,135425,4289],{"class":580},[34,135427,4292],{"class":50},[34,135429,52786],{"class":181},[34,135431,135432,135434,135436,135438,135440],{"class":36,"line":932},[34,135433,123827],{"class":181},[34,135435,124096],{"class":47},[34,135437,30251],{"class":181},[34,135439,87388],{"class":47},[34,135441,135442],{"class":181},"(it) }\n",[388,135444,49910],{},{"title":30,"searchDepth":44,"depth":44,"links":135446},[135447],{"id":135095,"depth":44,"text":135090},"Coroutines in Kotlin.",{},"/kotlin/coroutines",{"title":135090,"description":135448},"kotlin/coroutines",[133311,121718,133781,133782],"RZpHzXzCXuq2e_EevZpu9KIS6ghWHF2cxHYAB2xO2eM",{"id":135456,"title":135457,"body":135458,"date":402,"description":135575,"extension":404,"meta":135576,"navigation":61,"order":250,"path":135577,"seo":135578,"stem":135579,"subject":133311,"tags":135580,"__hash__":135581},"topics/kotlin/data-classes.md","Data Classes",{"type":8,"value":135459,"toc":135572},[135460,135463,135570],[11,135461,135457],{"id":135462},"data-classes",[25,135464,135466],{"className":133309,"code":135465,"language":133311,"meta":30,"style":30},"// Data class (equals, hashCode, toString, copy auto-generated)\ndata class Person(\n    val name: String,\n    val age: Int\n)\n\n// Usage\nval person = Person(\"John\", 30)\nval (name, age) = person  // Destructuring\nval older = person.copy(age = 31)\n",[20,135467,135468,135473,135483,135493,135502,135506,135510,135514,135534,135548],{"__ignoreMap":30},[34,135469,135470],{"class":36,"line":37},[34,135471,135472],{"class":40},"// Data class (equals, hashCode, toString, copy auto-generated)\n",[34,135474,135475,135477,135479,135481],{"class":36,"line":44},[34,135476,1701],{"class":580},[34,135478,655],{"class":580},[34,135480,30063],{"class":47},[34,135482,1882],{"class":181},[34,135484,135485,135487,135489,135491],{"class":36,"line":58},[34,135486,133373],{"class":580},[34,135488,133332],{"class":181},[34,135490,51427],{"class":47},[34,135492,624],{"class":181},[34,135494,135495,135497,135499],{"class":36,"line":65},[34,135496,133373],{"class":580},[34,135498,133341],{"class":181},[34,135500,135501],{"class":47},"Int\n",[34,135503,135504],{"class":36,"line":71},[34,135505,3372],{"class":181},[34,135507,135508],{"class":36,"line":77},[34,135509,62],{"emptyLinePlaceholder":61},[34,135511,135512],{"class":36,"line":82},[34,135513,1113],{"class":40},[34,135515,135516,135518,135520,135522,135524,135526,135528,135530,135532],{"class":36,"line":88},[34,135517,133329],{"class":580},[34,135519,37647],{"class":181},[34,135521,1301],{"class":580},[34,135523,30063],{"class":47},[34,135525,1607],{"class":181},[34,135527,17105],{"class":54},[34,135529,1798],{"class":181},[34,135531,17625],{"class":50},[34,135533,3372],{"class":181},[34,135535,135536,135538,135541,135543,135546],{"class":36,"line":242},[34,135537,133329],{"class":580},[34,135539,135540],{"class":181}," (name, age) ",[34,135542,1301],{"class":580},[34,135544,135545],{"class":181}," person  ",[34,135547,126871],{"class":40},[34,135549,135550,135552,135555,135557,135559,135561,135564,135566,135568],{"class":36,"line":250},[34,135551,133329],{"class":580},[34,135553,135554],{"class":181}," older ",[34,135556,1301],{"class":580},[34,135558,123732],{"class":181},[34,135560,103810],{"class":47},[34,135562,135563],{"class":181},"(age ",[34,135565,1301],{"class":580},[34,135567,24813],{"class":50},[34,135569,3372],{"class":181},[388,135571,34089],{},{"title":30,"searchDepth":44,"depth":44,"links":135573},[135574],{"id":135462,"depth":44,"text":135457},"Data Classes in Kotlin.",{},"/kotlin/data-classes",{"title":135457,"description":135575},"kotlin/data-classes",[133311,121718,133781,133782],"DRligA_PFPeXKHsH7cD-oQjiqbMDu8sRkrT0udz63AM",{"id":135583,"title":10991,"body":135584,"date":402,"description":135951,"extension":404,"meta":135952,"navigation":61,"order":82,"path":135953,"seo":135954,"stem":135955,"subject":133311,"tags":135956,"__hash__":135957},"topics/kotlin/functions.md",{"type":8,"value":135585,"toc":135948},[135586,135588,135946],[11,135587,10991],{"id":10996},[25,135589,135591],{"className":133309,"code":135590,"language":133311,"meta":30,"style":30},"// Basic function\nfun add(a: Int, b: Int): Int {\n    return a + b\n}\n\n// Single expression function\nfun add(a: Int, b: Int) = a + b\n\n// Default parameters\nfun greet(name: String = \"World\") = \"Hello, $name!\"\n\n// Named arguments\ngreet(name = \"John\")\n\n// Varargs\nfun printAll(vararg messages: String) {\n    messages.forEach { println(it) }\n}\n\n// Extension functions\nfun String.addExclamation() = \"$this!\"\n\"Hello\".addExclamation()  // \"Hello!\"\n\n// Infix functions\ninfix fun Int.times(str: String) = str.repeat(this)\n2 times \"Hi \"  // \"Hi Hi \"\n\n// Higher-order functions\nfun operate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {\n    return operation(a, b)\n}\noperate(2, 3) { x, y -> x + y }\n",[20,135592,135593,135597,135620,135630,135634,135638,135643,135667,135671,135675,135699,135703,135707,135720,135724,135728,135746,135759,135763,135767,135772,135794,135807,135811,135816,135851,135864,135868,135873,135907,135917,135921],{"__ignoreMap":30},[34,135594,135595],{"class":36,"line":37},[34,135596,26295],{"class":40},[34,135598,135599,135601,135603,135606,135608,135611,135613,135616,135618],{"class":36,"line":44},[34,135600,135329],{"class":580},[34,135602,7854],{"class":47},[34,135604,135605],{"class":181},"(a: ",[34,135607,133344],{"class":47},[34,135609,135610],{"class":181},", b: ",[34,135612,133344],{"class":47},[34,135614,135615],{"class":181},"): ",[34,135617,133344],{"class":47},[34,135619,661],{"class":181},[34,135621,135622,135624,135626,135628],{"class":36,"line":58},[34,135623,1564],{"class":580},[34,135625,8065],{"class":181},[34,135627,2940],{"class":580},[34,135629,87475],{"class":181},[34,135631,135632],{"class":36,"line":65},[34,135633,693],{"class":181},[34,135635,135636],{"class":36,"line":71},[34,135637,62],{"emptyLinePlaceholder":61},[34,135639,135640],{"class":36,"line":77},[34,135641,135642],{"class":40},"// Single expression function\n",[34,135644,135645,135647,135649,135651,135653,135655,135657,135659,135661,135663,135665],{"class":36,"line":82},[34,135646,135329],{"class":580},[34,135648,7854],{"class":47},[34,135650,135605],{"class":181},[34,135652,133344],{"class":47},[34,135654,135610],{"class":181},[34,135656,133344],{"class":47},[34,135658,4817],{"class":181},[34,135660,1301],{"class":580},[34,135662,8065],{"class":181},[34,135664,2940],{"class":580},[34,135666,87475],{"class":181},[34,135668,135669],{"class":36,"line":88},[34,135670,62],{"emptyLinePlaceholder":61},[34,135672,135673],{"class":36,"line":242},[34,135674,31217],{"class":40},[34,135676,135677,135679,135681,135683,135685,135687,135689,135691,135693,135695,135697],{"class":36,"line":250},[34,135678,135329],{"class":580},[34,135680,11047],{"class":47},[34,135682,133364],{"class":181},[34,135684,51427],{"class":47},[34,135686,683],{"class":580},[34,135688,13876],{"class":54},[34,135690,4817],{"class":181},[34,135692,1301],{"class":580},[34,135694,11020],{"class":54},[34,135696,10392],{"class":50},[34,135698,11026],{"class":54},[34,135700,135701],{"class":36,"line":263},[34,135702,62],{"emptyLinePlaceholder":61},[34,135704,135705],{"class":36,"line":275},[34,135706,37088],{"class":40},[34,135708,135709,135711,135714,135716,135718],{"class":36,"line":700},[34,135710,11011],{"class":47},[34,135712,135713],{"class":181},"(name ",[34,135715,1301],{"class":580},[34,135717,10399],{"class":54},[34,135719,3372],{"class":181},[34,135721,135722],{"class":36,"line":706},[34,135723,62],{"emptyLinePlaceholder":61},[34,135725,135726],{"class":36,"line":715},[34,135727,123131],{"class":40},[34,135729,135730,135732,135734,135736,135739,135742,135744],{"class":36,"line":725},[34,135731,135329],{"class":580},[34,135733,123140],{"class":47},[34,135735,1607],{"class":181},[34,135737,135738],{"class":580},"vararg",[34,135740,135741],{"class":181}," messages: ",[34,135743,51427],{"class":47},[34,135745,2416],{"class":181},[34,135747,135748,135751,135753,135755,135757],{"class":36,"line":734},[34,135749,135750],{"class":181},"    messages.",[34,135752,4930],{"class":47},[34,135754,30251],{"class":181},[34,135756,87388],{"class":47},[34,135758,135442],{"class":181},[34,135760,135761],{"class":36,"line":742},[34,135762,693],{"class":181},[34,135764,135765],{"class":36,"line":748},[34,135766,62],{"emptyLinePlaceholder":61},[34,135768,135769],{"class":36,"line":754},[34,135770,135771],{"class":40},"// Extension functions\n",[34,135773,135774,135776,135778,135780,135783,135785,135787,135789,135792],{"class":36,"line":759},[34,135775,135329],{"class":580},[34,135777,131103],{"class":47},[34,135779,151],{"class":181},[34,135781,135782],{"class":47},"addExclamation",[34,135784,672],{"class":181},[34,135786,1301],{"class":580},[34,135788,10326],{"class":54},[34,135790,135791],{"class":50},"$this",[34,135793,11026],{"class":54},[34,135795,135796,135798,135800,135802,135804],{"class":36,"line":771},[34,135797,15564],{"class":54},[34,135799,151],{"class":181},[34,135801,135782],{"class":47},[34,135803,105224],{"class":181},[34,135805,135806],{"class":40},"// \"Hello!\"\n",[34,135808,135809],{"class":36,"line":794},[34,135810,62],{"emptyLinePlaceholder":61},[34,135812,135813],{"class":36,"line":824},[34,135814,135815],{"class":40},"// Infix functions\n",[34,135817,135818,135821,135823,135826,135828,135831,135834,135836,135838,135840,135843,135845,135847,135849],{"class":36,"line":830},[34,135819,135820],{"class":580},"infix",[34,135822,133634],{"class":580},[34,135824,135825],{"class":47}," Int",[34,135827,151],{"class":181},[34,135829,135830],{"class":47},"times",[34,135832,135833],{"class":181},"(str: ",[34,135835,51427],{"class":47},[34,135837,4817],{"class":181},[34,135839,1301],{"class":580},[34,135841,135842],{"class":181}," str.",[34,135844,40274],{"class":47},[34,135846,1607],{"class":181},[34,135848,3207],{"class":50},[34,135850,3372],{"class":181},[34,135852,135853,135855,135858,135861],{"class":36,"line":839},[34,135854,8324],{"class":50},[34,135856,135857],{"class":181}," times ",[34,135859,135860],{"class":54},"\"Hi \"",[34,135862,135863],{"class":40},"  // \"Hi Hi \"\n",[34,135865,135866],{"class":36,"line":854},[34,135867,62],{"emptyLinePlaceholder":61},[34,135869,135870],{"class":36,"line":860},[34,135871,135872],{"class":40},"// Higher-order functions\n",[34,135874,135875,135877,135880,135882,135884,135886,135888,135891,135893,135895,135897,135899,135901,135903,135905],{"class":36,"line":865},[34,135876,135329],{"class":580},[34,135878,135879],{"class":47}," operate",[34,135881,135605],{"class":181},[34,135883,133344],{"class":47},[34,135885,135610],{"class":181},[34,135887,133344],{"class":47},[34,135889,135890],{"class":181},", operation: (",[34,135892,133344],{"class":47},[34,135894,1798],{"class":181},[34,135896,133344],{"class":47},[34,135898,63775],{"class":181},[34,135900,133344],{"class":47},[34,135902,135615],{"class":181},[34,135904,133344],{"class":47},[34,135906,661],{"class":181},[34,135908,135909,135911,135914],{"class":36,"line":870},[34,135910,1564],{"class":580},[34,135912,135913],{"class":47}," operation",[34,135915,135916],{"class":181},"(a, b)\n",[34,135918,135919],{"class":36,"line":876},[34,135920,693],{"class":181},[34,135922,135923,135926,135928,135930,135932,135934,135937,135939,135941,135943],{"class":36,"line":885},[34,135924,135925],{"class":47},"operate",[34,135927,1607],{"class":181},[34,135929,8324],{"class":50},[34,135931,1798],{"class":181},[34,135933,3162],{"class":50},[34,135935,135936],{"class":181},") { x, y ",[34,135938,24863],{"class":580},[34,135940,23172],{"class":181},[34,135942,2940],{"class":580},[34,135944,135945],{"class":181}," y }\n",[388,135947,34089],{},{"title":30,"searchDepth":44,"depth":44,"links":135949},[135950],{"id":10996,"depth":44,"text":10991},"Functions in Kotlin.",{},"/kotlin/functions",{"title":10991,"description":135951},"kotlin/functions",[133311,121718,133781,133782],"sVMLe3_X7U4gwebK5wb23Z8nOxuam9eh5-cOo0iVar8",{"id":135959,"title":135960,"body":135961,"date":402,"description":136207,"extension":404,"meta":136208,"navigation":61,"order":88,"path":136209,"seo":136210,"stem":136211,"subject":133311,"tags":136212,"__hash__":136213},"topics/kotlin/lambdas.md","Lambdas",{"type":8,"value":135962,"toc":136204},[135963,135966,136202],[11,135964,135960],{"id":135965},"lambdas",[25,135967,135969],{"className":133309,"code":135968,"language":133311,"meta":30,"style":30},"// Lambda syntax\nval sum = { a: Int, b: Int -> a + b }\nval square: (Int) -> Int = { it * it }\n\n// Trailing lambda\nlist.filter { it > 0 }\nlist.map { it * 2 }\n\n// it - implicit single parameter\nlist.filter { it > 0 }\n\n// Multiple statements\nlist.map {\n    val doubled = it * 2\n    doubled + 1\n}\n\n// Lambda with receiver\nfun buildString(action: StringBuilder.() -> Unit): String {\n    val sb = StringBuilder()\n    sb.action()\n    return sb.toString()\n}\n",[20,135970,135971,135975,136002,136024,136028,136033,136047,136061,136065,136070,136084,136088,136093,136101,136117,136126,136130,136134,136139,136164,136178,136187,136198],{"__ignoreMap":30},[34,135972,135973],{"class":36,"line":37},[34,135974,122821],{"class":40},[34,135976,135977,135979,135981,135983,135986,135988,135990,135992,135995,135997,135999],{"class":36,"line":44},[34,135978,133329],{"class":580},[34,135980,8337],{"class":181},[34,135982,1301],{"class":580},[34,135984,135985],{"class":181}," { a: ",[34,135987,133344],{"class":47},[34,135989,135610],{"class":181},[34,135991,133344],{"class":47},[34,135993,135994],{"class":181}," -> ",[34,135996,145],{"class":47},[34,135998,11537],{"class":580},[34,136000,136001],{"class":181}," b }\n",[34,136003,136004,136006,136009,136011,136013,136015,136017,136019,136021],{"class":36,"line":58},[34,136005,133329],{"class":580},[34,136007,136008],{"class":181}," square: (",[34,136010,133344],{"class":47},[34,136012,63775],{"class":181},[34,136014,133344],{"class":47},[34,136016,683],{"class":580},[34,136018,133810],{"class":181},[34,136020,4289],{"class":580},[34,136022,136023],{"class":181}," it }\n",[34,136025,136026],{"class":36,"line":65},[34,136027,62],{"emptyLinePlaceholder":61},[34,136029,136030],{"class":36,"line":71},[34,136031,136032],{"class":40},"// Trailing lambda\n",[34,136034,136035,136037,136039,136041,136043,136045],{"class":36,"line":77},[34,136036,121351],{"class":181},[34,136038,32125],{"class":47},[34,136040,133810],{"class":181},[34,136042,5691],{"class":580},[34,136044,8070],{"class":50},[34,136046,52786],{"class":181},[34,136048,136049,136051,136053,136055,136057,136059],{"class":36,"line":82},[34,136050,121351],{"class":181},[34,136052,61180],{"class":47},[34,136054,133810],{"class":181},[34,136056,4289],{"class":580},[34,136058,4292],{"class":50},[34,136060,52786],{"class":181},[34,136062,136063],{"class":36,"line":88},[34,136064,62],{"emptyLinePlaceholder":61},[34,136066,136067],{"class":36,"line":242},[34,136068,136069],{"class":40},"// it - implicit single parameter\n",[34,136071,136072,136074,136076,136078,136080,136082],{"class":36,"line":250},[34,136073,121351],{"class":181},[34,136075,32125],{"class":47},[34,136077,133810],{"class":181},[34,136079,5691],{"class":580},[34,136081,8070],{"class":50},[34,136083,52786],{"class":181},[34,136085,136086],{"class":36,"line":263},[34,136087,62],{"emptyLinePlaceholder":61},[34,136089,136090],{"class":36,"line":275},[34,136091,136092],{"class":40},"// Multiple statements\n",[34,136094,136095,136097,136099],{"class":36,"line":700},[34,136096,121351],{"class":181},[34,136098,61180],{"class":47},[34,136100,661],{"class":181},[34,136102,136103,136105,136108,136110,136113,136115],{"class":36,"line":706},[34,136104,133373],{"class":580},[34,136106,136107],{"class":181}," doubled ",[34,136109,1301],{"class":580},[34,136111,136112],{"class":181}," it ",[34,136114,4289],{"class":580},[34,136116,9930],{"class":50},[34,136118,136119,136122,136124],{"class":36,"line":715},[34,136120,136121],{"class":181},"    doubled ",[34,136123,2940],{"class":580},[34,136125,43446],{"class":50},[34,136127,136128],{"class":36,"line":725},[34,136129,693],{"class":181},[34,136131,136132],{"class":36,"line":734},[34,136133,62],{"emptyLinePlaceholder":61},[34,136135,136136],{"class":36,"line":742},[34,136137,136138],{"class":40},"// Lambda with receiver\n",[34,136140,136141,136143,136146,136149,136152,136155,136157,136160,136162],{"class":36,"line":748},[34,136142,135329],{"class":580},[34,136144,136145],{"class":47}," buildString",[34,136147,136148],{"class":181},"(action: ",[34,136150,136151],{"class":47},"StringBuilder",[34,136153,136154],{"class":181},".() ",[34,136156,24863],{"class":580},[34,136158,136159],{"class":181}," Unit): ",[34,136161,51427],{"class":47},[34,136163,661],{"class":181},[34,136165,136166,136168,136171,136173,136176],{"class":36,"line":754},[34,136167,133373],{"class":580},[34,136169,136170],{"class":181}," sb ",[34,136172,1301],{"class":580},[34,136174,136175],{"class":47}," StringBuilder",[34,136177,33899],{"class":181},[34,136179,136180,136183,136185],{"class":36,"line":759},[34,136181,136182],{"class":181},"    sb.",[34,136184,34999],{"class":47},[34,136186,33899],{"class":181},[34,136188,136189,136191,136194,136196],{"class":36,"line":771},[34,136190,1564],{"class":580},[34,136192,136193],{"class":181}," sb.",[34,136195,13938],{"class":47},[34,136197,33899],{"class":181},[34,136199,136200],{"class":36,"line":794},[34,136201,693],{"class":181},[388,136203,36895],{},{"title":30,"searchDepth":44,"depth":44,"links":136205},[136206],{"id":135965,"depth":44,"text":135960},"Lambdas in Kotlin.",{},"/kotlin/lambdas",{"title":135960,"description":136207},"kotlin/lambdas",[133311,121718,133781,133782],"rFhu2RzLir3Nt2SD_wsmpyGhedPOP85i3K5_obWSD5s",{"id":136215,"title":136216,"body":136217,"date":402,"description":136436,"extension":404,"meta":136437,"navigation":61,"order":58,"path":136438,"seo":136439,"stem":136440,"subject":133311,"tags":136441,"__hash__":136442},"topics/kotlin/null-safety.md","Null Safety",{"type":8,"value":136218,"toc":136433},[136219,136222,136431],[11,136220,136216],{"id":136221},"null-safety",[25,136223,136225],{"className":133309,"code":136224,"language":133311,"meta":30,"style":30},"// Nullable declaration\nvar name: String? = null\n\n// Safe call operator\nval length = name?.length  // Returns null if name is null\n\n// Elvis operator\nval length = name?.length ?: 0  // Default if null\nval name = input ?: throw IllegalArgumentException(\"Required\")\n\n// Not-null assertion (avoid if possible)\nval length = name!!.length  // Throws NPE if null\n\n// Safe cast\nval str: String? = value as? String\n\n// Let for null checks\nname?.let { \n    println(\"Name is $it\")\n}\n\n// Multiple null checks\nval result = a?.b?.c?.d\n",[20,136226,136227,136232,136247,136251,136256,136270,136274,136279,136295,136317,136321,136326,136344,136348,136353,136373,136377,136382,136391,136407,136411,136415,136420],{"__ignoreMap":30},[34,136228,136229],{"class":36,"line":37},[34,136230,136231],{"class":40},"// Nullable declaration\n",[34,136233,136234,136236,136238,136240,136242,136244],{"class":36,"line":44},[34,136235,34404],{"class":580},[34,136237,133332],{"class":181},[34,136239,51427],{"class":47},[34,136241,37314],{"class":181},[34,136243,1301],{"class":580},[34,136245,136246],{"class":50}," null\n",[34,136248,136249],{"class":36,"line":58},[34,136250,62],{"emptyLinePlaceholder":61},[34,136252,136253],{"class":36,"line":65},[34,136254,136255],{"class":40},"// Safe call operator\n",[34,136257,136258,136260,136262,136264,136267],{"class":36,"line":71},[34,136259,133329],{"class":580},[34,136261,121315],{"class":181},[34,136263,1301],{"class":580},[34,136265,136266],{"class":181}," name?.length  ",[34,136268,136269],{"class":40},"// Returns null if name is null\n",[34,136271,136272],{"class":36,"line":77},[34,136273,62],{"emptyLinePlaceholder":61},[34,136275,136276],{"class":36,"line":82},[34,136277,136278],{"class":40},"// Elvis operator\n",[34,136280,136281,136283,136285,136287,136290,136292],{"class":36,"line":88},[34,136282,133329],{"class":580},[34,136284,121315],{"class":181},[34,136286,1301],{"class":580},[34,136288,136289],{"class":181}," name?.length ?: ",[34,136291,2773],{"class":50},[34,136293,136294],{"class":40},"  // Default if null\n",[34,136296,136297,136299,136301,136303,136306,136308,136310,136312,136315],{"class":36,"line":242},[34,136298,133329],{"class":580},[34,136300,30212],{"class":181},[34,136302,1301],{"class":580},[34,136304,136305],{"class":181}," input ?: ",[34,136307,35434],{"class":580},[34,136309,122725],{"class":47},[34,136311,1607],{"class":181},[34,136313,136314],{"class":54},"\"Required\"",[34,136316,3372],{"class":181},[34,136318,136319],{"class":36,"line":250},[34,136320,62],{"emptyLinePlaceholder":61},[34,136322,136323],{"class":36,"line":263},[34,136324,136325],{"class":40},"// Not-null assertion (avoid if possible)\n",[34,136327,136328,136330,136332,136334,136336,136338,136341],{"class":36,"line":275},[34,136329,133329],{"class":580},[34,136331,121315],{"class":181},[34,136333,1301],{"class":580},[34,136335,12323],{"class":181},[34,136337,11666],{"class":580},[34,136339,136340],{"class":181},".length  ",[34,136342,136343],{"class":40},"// Throws NPE if null\n",[34,136345,136346],{"class":36,"line":700},[34,136347,62],{"emptyLinePlaceholder":61},[34,136349,136350],{"class":36,"line":706},[34,136351,136352],{"class":40},"// Safe cast\n",[34,136354,136355,136357,136360,136362,136364,136366,136368,136370],{"class":36,"line":715},[34,136356,133329],{"class":580},[34,136358,136359],{"class":181}," str: ",[34,136361,51427],{"class":47},[34,136363,37314],{"class":181},[34,136365,1301],{"class":580},[34,136367,18389],{"class":580},[34,136369,91551],{"class":580},[34,136371,136372],{"class":181},"? String\n",[34,136374,136375],{"class":36,"line":725},[34,136376,62],{"emptyLinePlaceholder":61},[34,136378,136379],{"class":36,"line":734},[34,136380,136381],{"class":40},"// Let for null checks\n",[34,136383,136384,136387,136389],{"class":36,"line":742},[34,136385,136386],{"class":181},"name?.",[34,136388,8268],{"class":47},[34,136390,2261],{"class":181},[34,136392,136393,136395,136397,136400,136403,136405],{"class":36,"line":748},[34,136394,87327],{"class":47},[34,136396,1607],{"class":181},[34,136398,136399],{"class":54},"\"Name is ",[34,136401,136402],{"class":50},"$it",[34,136404,10389],{"class":54},[34,136406,3372],{"class":181},[34,136408,136409],{"class":36,"line":754},[34,136410,693],{"class":181},[34,136412,136413],{"class":36,"line":759},[34,136414,62],{"emptyLinePlaceholder":61},[34,136416,136417],{"class":36,"line":771},[34,136418,136419],{"class":40},"// Multiple null checks\n",[34,136421,136422,136424,136426,136428],{"class":36,"line":794},[34,136423,133329],{"class":580},[34,136425,20093],{"class":181},[34,136427,1301],{"class":580},[34,136429,136430],{"class":181}," a?.b?.c?.d\n",[388,136432,33776],{},{"title":30,"searchDepth":44,"depth":44,"links":136434},[136435],{"id":136221,"depth":44,"text":136216},"Null Safety in Kotlin.",{},"/kotlin/null-safety",{"title":136216,"description":136436},"kotlin/null-safety",[133311,121718,133781,133782],"Z9XmS7ywMjWwbxhqlgQ1Yc5Z1Gtf0Ijf-Bkeqbv0giE",{"id":136444,"title":136445,"body":136446,"date":402,"description":136608,"extension":404,"meta":136609,"navigation":61,"order":275,"path":136610,"seo":136611,"stem":136612,"subject":133311,"tags":136613,"__hash__":136614},"topics/kotlin/object-companion.md","Object & Companion",{"type":8,"value":136447,"toc":136605},[136448,136451,136603],[11,136449,136445],{"id":136450},"object-companion",[25,136452,136454],{"className":133309,"code":136453,"language":133311,"meta":30,"style":30},"// Singleton\nobject Database {\n    fun connect() { }\n}\n\n// Companion object (static-like)\nclass MyClass {\n    companion object {\n        const val TAG = \"MyClass\"\n        fun create(): MyClass = MyClass()\n    }\n}\nMyClass.TAG\nMyClass.create()\n\n// Anonymous object\nval listener = object : ClickListener {\n    override fun onClick() { }\n}\n",[20,136455,136456,136461,136469,136477,136481,136485,136490,136498,136507,136522,136540,136544,136548,136553,136562,136566,136571,136589,136599],{"__ignoreMap":30},[34,136457,136458],{"class":36,"line":37},[34,136459,136460],{"class":40},"// Singleton\n",[34,136462,136463,136465,136467],{"class":36,"line":44},[34,136464,38072],{"class":580},[34,136466,17004],{"class":47},[34,136468,661],{"class":181},[34,136470,136471,136473,136475],{"class":36,"line":58},[34,136472,133713],{"class":580},[34,136474,57526],{"class":47},[34,136476,34511],{"class":181},[34,136478,136479],{"class":36,"line":65},[34,136480,693],{"class":181},[34,136482,136483],{"class":36,"line":71},[34,136484,62],{"emptyLinePlaceholder":61},[34,136486,136487],{"class":36,"line":77},[34,136488,136489],{"class":40},"// Companion object (static-like)\n",[34,136491,136492,136494,136496],{"class":36,"line":82},[34,136493,30060],{"class":580},[34,136495,125908],{"class":47},[34,136497,661],{"class":181},[34,136499,136500,136503,136505],{"class":36,"line":88},[34,136501,136502],{"class":580},"    companion",[34,136504,38082],{"class":580},[34,136506,661],{"class":181},[34,136508,136509,136511,136514,136517,136519],{"class":36,"line":242},[34,136510,66186],{"class":580},[34,136512,136513],{"class":580}," val",[34,136515,136516],{"class":181}," TAG ",[34,136518,1301],{"class":580},[34,136520,136521],{"class":54}," \"MyClass\"\n",[34,136523,136524,136527,136529,136531,136534,136536,136538],{"class":36,"line":250},[34,136525,136526],{"class":580},"        fun",[34,136528,7077],{"class":47},[34,136530,133762],{"class":181},[34,136532,136533],{"class":47},"MyClass",[34,136535,683],{"class":580},[34,136537,125908],{"class":47},[34,136539,33899],{"class":181},[34,136541,136542],{"class":36,"line":263},[34,136543,3229],{"class":181},[34,136545,136546],{"class":36,"line":275},[34,136547,693],{"class":181},[34,136549,136550],{"class":36,"line":700},[34,136551,136552],{"class":181},"MyClass.TAG\n",[34,136554,136555,136558,136560],{"class":36,"line":706},[34,136556,136557],{"class":181},"MyClass.",[34,136559,72666],{"class":47},[34,136561,33899],{"class":181},[34,136563,136564],{"class":36,"line":715},[34,136565,62],{"emptyLinePlaceholder":61},[34,136567,136568],{"class":36,"line":725},[34,136569,136570],{"class":40},"// Anonymous object\n",[34,136572,136573,136575,136578,136580,136582,136584,136587],{"class":36,"line":734},[34,136574,133329],{"class":580},[34,136576,136577],{"class":181}," listener ",[34,136579,1301],{"class":580},[34,136581,38082],{"class":580},[34,136583,31580],{"class":181},[34,136585,136586],{"class":47},"ClickListener",[34,136588,661],{"class":181},[34,136590,136591,136593,136595,136597],{"class":36,"line":742},[34,136592,133677],{"class":580},[34,136594,133634],{"class":580},[34,136596,85667],{"class":47},[34,136598,34511],{"class":181},[34,136600,136601],{"class":36,"line":748},[34,136602,693],{"class":181},[388,136604,35749],{},{"title":30,"searchDepth":44,"depth":44,"links":136606},[136607],{"id":136450,"depth":44,"text":136445},"Object & Companion in Kotlin.",{},"/kotlin/object-companion",{"title":136445,"description":136608},"kotlin/object-companion",[133311,121718,133781,133782],"uO6eG1UvEuDpkQUt4ZLokqj-0JTR5zD42vuYYYy5LDg",{"id":136616,"title":136617,"body":136618,"date":2633,"description":136691,"extension":404,"meta":136692,"navigation":61,"order":37,"path":136693,"seo":136694,"stem":136695,"subject":133311,"tags":136696,"__hash__":136697},"topics/kotlin/overview.md","Kotlin",{"type":8,"value":136619,"toc":136689},[136620],[309,136621,136622,136627,136631,136636,136640,136644,136648,136652,136656,136660,136666,136670,136674,136680,136684],{},[312,136623,136624],{},[145,136625,23073],{"href":136626},"/kotlin/variables-types",[312,136628,136629],{},[145,136630,136216],{"href":136438},[312,136632,136633],{},[145,136634,23101],{"href":136635},"/kotlin/strings",[312,136637,136638],{},[145,136639,83157],{"href":134649},[312,136641,136642],{},[145,136643,18818],{"href":135083},[312,136645,136646],{},[145,136647,10991],{"href":135953},[312,136649,136650],{},[145,136651,135960],{"href":136209},[312,136653,136654],{},[145,136655,125314],{"href":133777},[312,136657,136658],{},[145,136659,135457],{"href":135577},[312,136661,136662],{},[145,136663,136665],{"href":136664},"/kotlin/sealed-classes-enums","Sealed Classes & Enums",[312,136667,136668],{},[145,136669,136445],{"href":136610},[312,136671,136672],{},[145,136673,133786],{"href":134236},[312,136675,136676],{},[145,136677,136679],{"href":136678},"/kotlin/scope-functions","Scope Functions",[312,136681,136682],{},[145,136683,135090],{"href":135450},[312,136685,136686],{},[145,136687,123574],{"href":136688},"/kotlin/useful-snippets",{"title":30,"searchDepth":44,"depth":44,"links":136690},[],"Essential Kotlin syntax, null safety, and idiomatic patterns for modern JVM and Android development.",{},"/kotlin/overview",{"title":136617,"description":136691},"kotlin/overview",[133311,121718,133781,133782],"ob0L_S40JKlQ2aHLUfYZcr_UbrV2V85dXbc014Xq09c",{"id":136699,"title":136679,"body":136700,"date":402,"description":136937,"extension":404,"meta":136938,"navigation":61,"order":706,"path":136678,"seo":136939,"stem":136940,"subject":133311,"tags":136941,"__hash__":136942},"topics/kotlin/scope-functions.md",{"type":8,"value":136701,"toc":136934},[136702,136705,136932],[11,136703,136679],{"id":136704},"scope-functions",[25,136706,136708],{"className":133309,"code":136707,"language":133311,"meta":30,"style":30},"// let - null check, transform\nval length = name?.let { it.length }\n\n// run - execute block, return result\nval result = service.run {\n    connect()\n    query()\n}\n\n// with - call methods on object\nval result = with(builder) {\n    setName(\"John\")\n    setAge(30)\n    build()\n}\n\n// apply - configure object, return object\nval person = Person().apply {\n    name = \"John\"\n    age = 30\n}\n\n// also - side effects, return object\nval numbers = mutableListOf(1, 2, 3).also {\n    println(\"Created list: $it\")\n}\n",[20,136709,136710,136715,136731,136735,136740,136755,136762,136769,136773,136777,136782,136796,136807,136818,136824,136828,136832,136837,136854,136863,136871,136875,136879,136884,136913,136928],{"__ignoreMap":30},[34,136711,136712],{"class":36,"line":37},[34,136713,136714],{"class":40},"// let - null check, transform\n",[34,136716,136717,136719,136721,136723,136726,136728],{"class":36,"line":44},[34,136718,133329],{"class":580},[34,136720,121315],{"class":181},[34,136722,1301],{"class":580},[34,136724,136725],{"class":181}," name?.",[34,136727,8268],{"class":47},[34,136729,136730],{"class":181}," { it.length }\n",[34,136732,136733],{"class":36,"line":58},[34,136734,62],{"emptyLinePlaceholder":61},[34,136736,136737],{"class":36,"line":65},[34,136738,136739],{"class":40},"// run - execute block, return result\n",[34,136741,136742,136744,136746,136748,136751,136753],{"class":36,"line":71},[34,136743,133329],{"class":580},[34,136745,20093],{"class":181},[34,136747,1301],{"class":580},[34,136749,136750],{"class":181}," service.",[34,136752,14592],{"class":47},[34,136754,661],{"class":181},[34,136756,136757,136760],{"class":36,"line":77},[34,136758,136759],{"class":47},"    connect",[34,136761,33899],{"class":181},[34,136763,136764,136767],{"class":36,"line":82},[34,136765,136766],{"class":47},"    query",[34,136768,33899],{"class":181},[34,136770,136771],{"class":36,"line":88},[34,136772,693],{"class":181},[34,136774,136775],{"class":36,"line":242},[34,136776,62],{"emptyLinePlaceholder":61},[34,136778,136779],{"class":36,"line":250},[34,136780,136781],{"class":40},"// with - call methods on object\n",[34,136783,136784,136786,136788,136790,136793],{"class":36,"line":263},[34,136785,133329],{"class":580},[34,136787,20093],{"class":181},[34,136789,1301],{"class":580},[34,136791,136792],{"class":47}," with",[34,136794,136795],{"class":181},"(builder) {\n",[34,136797,136798,136801,136803,136805],{"class":36,"line":275},[34,136799,136800],{"class":47},"    setName",[34,136802,1607],{"class":181},[34,136804,17105],{"class":54},[34,136806,3372],{"class":181},[34,136808,136809,136812,136814,136816],{"class":36,"line":700},[34,136810,136811],{"class":47},"    setAge",[34,136813,1607],{"class":181},[34,136815,17625],{"class":50},[34,136817,3372],{"class":181},[34,136819,136820,136822],{"class":36,"line":706},[34,136821,56405],{"class":47},[34,136823,33899],{"class":181},[34,136825,136826],{"class":36,"line":715},[34,136827,693],{"class":181},[34,136829,136830],{"class":36,"line":725},[34,136831,62],{"emptyLinePlaceholder":61},[34,136833,136834],{"class":36,"line":734},[34,136835,136836],{"class":40},"// apply - configure object, return object\n",[34,136838,136839,136841,136843,136845,136847,136849,136852],{"class":36,"line":742},[34,136840,133329],{"class":580},[34,136842,37647],{"class":181},[34,136844,1301],{"class":580},[34,136846,30063],{"class":47},[34,136848,1645],{"class":181},[34,136850,136851],{"class":47},"apply",[34,136853,661],{"class":181},[34,136855,136856,136858,136860],{"class":36,"line":748},[34,136857,87875],{"class":181},[34,136859,1301],{"class":580},[34,136861,136862],{"class":54}," \"John\"\n",[34,136864,136865,136867,136869],{"class":36,"line":754},[34,136866,28451],{"class":181},[34,136868,1301],{"class":580},[34,136870,87383],{"class":50},[34,136872,136873],{"class":36,"line":759},[34,136874,693],{"class":181},[34,136876,136877],{"class":36,"line":771},[34,136878,62],{"emptyLinePlaceholder":61},[34,136880,136881],{"class":36,"line":794},[34,136882,136883],{"class":40},"// also - side effects, return object\n",[34,136885,136886,136888,136890,136892,136894,136896,136898,136900,136902,136904,136906,136908,136911],{"class":36,"line":824},[34,136887,133329],{"class":580},[34,136889,125036],{"class":181},[34,136891,1301],{"class":580},[34,136893,134361],{"class":47},[34,136895,1607],{"class":181},[34,136897,8318],{"class":50},[34,136899,1798],{"class":181},[34,136901,8324],{"class":50},[34,136903,1798],{"class":181},[34,136905,3162],{"class":50},[34,136907,1876],{"class":181},[34,136909,136910],{"class":47},"also",[34,136912,661],{"class":181},[34,136914,136915,136917,136919,136922,136924,136926],{"class":36,"line":830},[34,136916,87327],{"class":47},[34,136918,1607],{"class":181},[34,136920,136921],{"class":54},"\"Created list: ",[34,136923,136402],{"class":50},[34,136925,10389],{"class":54},[34,136927,3372],{"class":181},[34,136929,136930],{"class":36,"line":839},[34,136931,693],{"class":181},[388,136933,34928],{},{"title":30,"searchDepth":44,"depth":44,"links":136935},[136936],{"id":136704,"depth":44,"text":136679},"Scope Functions in Kotlin.",{},{"title":136679,"description":136937},"kotlin/scope-functions",[133311,121718,133781,133782],"_Q6LtP-Ecf1Ip9zSNTQrrwzhGx43lYeVidiGcXqiQLw",{"id":136944,"title":136665,"body":136945,"date":402,"description":137220,"extension":404,"meta":137221,"navigation":61,"order":263,"path":136664,"seo":137222,"stem":137223,"subject":133311,"tags":137224,"__hash__":137225},"topics/kotlin/sealed-classes-enums.md",{"type":8,"value":136946,"toc":137217},[136947,136950,137215],[11,136948,136665],{"id":136949},"sealed-classes-enums",[25,136951,136953],{"className":133309,"code":136952,"language":133311,"meta":30,"style":30},"// Sealed class (restricted inheritance)\nsealed class Result {\n    data class Success(val data: String) : Result()\n    data class Error(val message: String) : Result()\n    object Loading : Result()\n}\n\n// Exhaustive when\nfun handle(result: Result) = when (result) {\n    is Result.Success -> println(result.data)\n    is Result.Error -> println(result.message)\n    Result.Loading -> println(\"Loading...\")\n}\n\n// Enum class\nenum class Direction {\n    NORTH, SOUTH, EAST, WEST\n}\n\nenum class Color(val rgb: Int) {\n    RED(0xFF0000),\n    GREEN(0x00FF00),\n    BLUE(0x0000FF)\n}\n",[20,136954,136955,136960,136972,136999,137022,137035,137039,137043,137048,137069,137087,137101,137117,137121,137125,137130,137142,137147,137151,137155,137175,137187,137199,137211],{"__ignoreMap":30},[34,136956,136957],{"class":36,"line":37},[34,136958,136959],{"class":40},"// Sealed class (restricted inheritance)\n",[34,136961,136962,136965,136967,136970],{"class":36,"line":44},[34,136963,136964],{"class":580},"sealed",[34,136966,655],{"class":580},[34,136968,136969],{"class":47}," Result",[34,136971,661],{"class":181},[34,136973,136974,136977,136979,136982,136984,136986,136988,136990,136992,136994,136997],{"class":36,"line":58},[34,136975,136976],{"class":580},"    data",[34,136978,655],{"class":580},[34,136980,136981],{"class":47}," Success",[34,136983,1607],{"class":181},[34,136985,133329],{"class":580},[34,136987,14780],{"class":580},[34,136989,182],{"class":181},[34,136991,51427],{"class":47},[34,136993,30124],{"class":181},[34,136995,136996],{"class":47},"Result",[34,136998,33899],{"class":181},[34,137000,137001,137003,137005,137007,137009,137011,137014,137016,137018,137020],{"class":36,"line":65},[34,137002,136976],{"class":580},[34,137004,655],{"class":580},[34,137006,48752],{"class":47},[34,137008,1607],{"class":181},[34,137010,133329],{"class":580},[34,137012,137013],{"class":181}," message: ",[34,137015,51427],{"class":47},[34,137017,30124],{"class":181},[34,137019,136996],{"class":47},[34,137021,33899],{"class":181},[34,137023,137024,137027,137029,137031,137033],{"class":36,"line":71},[34,137025,137026],{"class":580},"    object",[34,137028,85933],{"class":47},[34,137030,31580],{"class":181},[34,137032,136996],{"class":47},[34,137034,33899],{"class":181},[34,137036,137037],{"class":36,"line":77},[34,137038,693],{"class":181},[34,137040,137041],{"class":36,"line":82},[34,137042,62],{"emptyLinePlaceholder":61},[34,137044,137045],{"class":36,"line":88},[34,137046,137047],{"class":40},"// Exhaustive when\n",[34,137049,137050,137052,137055,137058,137060,137062,137064,137066],{"class":36,"line":242},[34,137051,135329],{"class":580},[34,137053,137054],{"class":47}," handle",[34,137056,137057],{"class":181},"(result: ",[34,137059,136996],{"class":47},[34,137061,4817],{"class":181},[34,137063,1301],{"class":580},[34,137065,134710],{"class":580},[34,137067,137068],{"class":181}," (result) {\n",[34,137070,137071,137073,137076,137078,137080,137083,137085],{"class":36,"line":250},[34,137072,134758],{"class":580},[34,137074,137075],{"class":181}," Result.Success ",[34,137077,24863],{"class":580},[34,137079,134806],{"class":47},[34,137081,137082],{"class":181},"(result.",[34,137084,1701],{"class":580},[34,137086,3372],{"class":181},[34,137088,137089,137091,137094,137096,137098],{"class":36,"line":263},[34,137090,134758],{"class":580},[34,137092,137093],{"class":181}," Result.Error ",[34,137095,24863],{"class":580},[34,137097,134806],{"class":47},[34,137099,137100],{"class":181},"(result.message)\n",[34,137102,137103,137106,137108,137110,137112,137115],{"class":36,"line":275},[34,137104,137105],{"class":181},"    Result.Loading ",[34,137107,24863],{"class":580},[34,137109,134806],{"class":47},[34,137111,1607],{"class":181},[34,137113,137114],{"class":54},"\"Loading...\"",[34,137116,3372],{"class":181},[34,137118,137119],{"class":36,"line":700},[34,137120,693],{"class":181},[34,137122,137123],{"class":36,"line":706},[34,137124,62],{"emptyLinePlaceholder":61},[34,137126,137127],{"class":36,"line":715},[34,137128,137129],{"class":40},"// Enum class\n",[34,137131,137132,137135,137137,137140],{"class":36,"line":725},[34,137133,137134],{"class":580},"enum",[34,137136,655],{"class":580},[34,137138,137139],{"class":47}," Direction",[34,137141,661],{"class":181},[34,137143,137144],{"class":36,"line":734},[34,137145,137146],{"class":181},"    NORTH, SOUTH, EAST, WEST\n",[34,137148,137149],{"class":36,"line":742},[34,137150,693],{"class":181},[34,137152,137153],{"class":36,"line":748},[34,137154,62],{"emptyLinePlaceholder":61},[34,137156,137157,137159,137161,137164,137166,137168,137171,137173],{"class":36,"line":754},[34,137158,137134],{"class":580},[34,137160,655],{"class":580},[34,137162,137163],{"class":47}," Color",[34,137165,1607],{"class":181},[34,137167,133329],{"class":580},[34,137169,137170],{"class":181}," rgb: ",[34,137172,133344],{"class":47},[34,137174,2416],{"class":181},[34,137176,137177,137180,137182,137185],{"class":36,"line":759},[34,137178,137179],{"class":47},"    RED",[34,137181,1607],{"class":181},[34,137183,137184],{"class":50},"0xFF0000",[34,137186,50836],{"class":181},[34,137188,137189,137192,137194,137197],{"class":36,"line":771},[34,137190,137191],{"class":47},"    GREEN",[34,137193,1607],{"class":181},[34,137195,137196],{"class":50},"0x00FF00",[34,137198,50836],{"class":181},[34,137200,137201,137204,137206,137209],{"class":36,"line":794},[34,137202,137203],{"class":47},"    BLUE",[34,137205,1607],{"class":181},[34,137207,137208],{"class":50},"0x0000FF",[34,137210,3372],{"class":181},[34,137212,137213],{"class":36,"line":824},[34,137214,693],{"class":181},[388,137216,34089],{},{"title":30,"searchDepth":44,"depth":44,"links":137218},[137219],{"id":136949,"depth":44,"text":136665},"Sealed Classes & Enums in Kotlin.",{},{"title":136665,"description":137220},"kotlin/sealed-classes-enums",[133311,121718,133781,133782],"1xOXrZdKusqD5NsOnyL7lWYQyG7qXM7SlgI2ArXVfEk",{"id":137227,"title":23101,"body":137228,"date":402,"description":137462,"extension":404,"meta":137463,"navigation":61,"order":65,"path":136635,"seo":137464,"stem":137465,"subject":133311,"tags":137466,"__hash__":137467},"topics/kotlin/strings.md",{"type":8,"value":137229,"toc":137459},[137230,137232,137457],[11,137231,23101],{"id":24353},[25,137233,137235],{"className":133309,"code":137234,"language":133311,"meta":30,"style":30},"// String templates\nval greeting = \"Hello, $name!\"\nval info = \"Age: ${person.age}\"\n\n// Multiline strings\nval text = \"\"\"\n    |Line 1\n    |Line 2\n    |Line 3\n\"\"\".trimMargin()\n\n// String operations\nstr.length\nstr.uppercase()\nstr.lowercase()\nstr.trim()\nstr.split(\",\")\nstr.replace(\"old\", \"new\")\nstr.startsWith(\"He\")\nstr.endsWith(\"lo\")\nstr.contains(\"ell\")\nstr.isEmpty()\nstr.isBlank()  // Empty or whitespace only\nstr.isNullOrEmpty()\nstr.isNullOrBlank()\n",[20,137236,137237,137242,137257,137269,137273,137278,137288,137293,137298,137303,137315,137319,137323,137328,137336,137345,137353,137365,137383,137395,137407,137419,137427,137439,137448],{"__ignoreMap":30},[34,137238,137239],{"class":36,"line":37},[34,137240,137241],{"class":40},"// String templates\n",[34,137243,137244,137246,137249,137251,137253,137255],{"class":36,"line":44},[34,137245,133329],{"class":580},[34,137247,137248],{"class":181}," greeting ",[34,137250,1301],{"class":580},[34,137252,11020],{"class":54},[34,137254,10392],{"class":50},[34,137256,11026],{"class":54},[34,137258,137259,137261,137264,137266],{"class":36,"line":58},[34,137260,133329],{"class":580},[34,137262,137263],{"class":181}," info ",[34,137265,1301],{"class":580},[34,137267,137268],{"class":54}," \"Age: ${person.age}\"\n",[34,137270,137271],{"class":36,"line":65},[34,137272,62],{"emptyLinePlaceholder":61},[34,137274,137275],{"class":36,"line":71},[34,137276,137277],{"class":40},"// Multiline strings\n",[34,137279,137280,137282,137284,137286],{"class":36,"line":77},[34,137281,133329],{"class":580},[34,137283,32978],{"class":181},[34,137285,1301],{"class":580},[34,137287,37798],{"class":54},[34,137289,137290],{"class":36,"line":82},[34,137291,137292],{"class":54},"    |Line 1\n",[34,137294,137295],{"class":36,"line":88},[34,137296,137297],{"class":54},"    |Line 2\n",[34,137299,137300],{"class":36,"line":242},[34,137301,137302],{"class":54},"    |Line 3\n",[34,137304,137305,137308,137310,137313],{"class":36,"line":250},[34,137306,137307],{"class":54},"\"\"\"",[34,137309,151],{"class":181},[34,137311,137312],{"class":47},"trimMargin",[34,137314,33899],{"class":181},[34,137316,137317],{"class":36,"line":263},[34,137318,62],{"emptyLinePlaceholder":61},[34,137320,137321],{"class":36,"line":275},[34,137322,32488],{"class":40},[34,137324,137325],{"class":36,"line":700},[34,137326,137327],{"class":181},"str.length\n",[34,137329,137330,137332,137334],{"class":36,"line":706},[34,137331,32493],{"class":181},[34,137333,42190],{"class":47},[34,137335,33899],{"class":181},[34,137337,137338,137340,137343],{"class":36,"line":715},[34,137339,32493],{"class":181},[34,137341,137342],{"class":47},"lowercase",[34,137344,33899],{"class":181},[34,137346,137347,137349,137351],{"class":36,"line":725},[34,137348,32493],{"class":181},[34,137350,72217],{"class":47},[34,137352,33899],{"class":181},[34,137354,137355,137357,137359,137361,137363],{"class":36,"line":734},[34,137356,32493],{"class":181},[34,137358,124354],{"class":47},[34,137360,1607],{"class":181},[34,137362,104255],{"class":54},[34,137364,3372],{"class":181},[34,137366,137367,137369,137371,137373,137376,137378,137381],{"class":36,"line":742},[34,137368,32493],{"class":181},[34,137370,13943],{"class":47},[34,137372,1607],{"class":181},[34,137374,137375],{"class":54},"\"old\"",[34,137377,1798],{"class":181},[34,137379,137380],{"class":54},"\"new\"",[34,137382,3372],{"class":181},[34,137384,137385,137387,137389,137391,137393],{"class":36,"line":748},[34,137386,32493],{"class":181},[34,137388,124386],{"class":47},[34,137390,1607],{"class":181},[34,137392,124391],{"class":54},[34,137394,3372],{"class":181},[34,137396,137397,137399,137401,137403,137405],{"class":36,"line":754},[34,137398,32493],{"class":181},[34,137400,124403],{"class":47},[34,137402,1607],{"class":181},[34,137404,124408],{"class":54},[34,137406,3372],{"class":181},[34,137408,137409,137411,137413,137415,137417],{"class":36,"line":759},[34,137410,32493],{"class":181},[34,137412,51780],{"class":47},[34,137414,1607],{"class":181},[34,137416,17370],{"class":54},[34,137418,3372],{"class":181},[34,137420,137421,137423,137425],{"class":36,"line":771},[34,137422,32493],{"class":181},[34,137424,51729],{"class":47},[34,137426,33899],{"class":181},[34,137428,137429,137431,137434,137436],{"class":36,"line":794},[34,137430,32493],{"class":181},[34,137432,137433],{"class":47},"isBlank",[34,137435,105224],{"class":181},[34,137437,137438],{"class":40},"// Empty or whitespace only\n",[34,137440,137441,137443,137446],{"class":36,"line":824},[34,137442,32493],{"class":181},[34,137444,137445],{"class":47},"isNullOrEmpty",[34,137447,33899],{"class":181},[34,137449,137450,137452,137455],{"class":36,"line":830},[34,137451,32493],{"class":181},[34,137453,137454],{"class":47},"isNullOrBlank",[34,137456,33899],{"class":181},[388,137458,12143],{},{"title":30,"searchDepth":44,"depth":44,"links":137460},[137461],{"id":24353,"depth":44,"text":23101},"Strings in Kotlin.",{},{"title":23101,"description":137462},"kotlin/strings",[133311,121718,133781,133782],"6w0gQdAyqtyAB0osdwA65ywOXY1uckMMu-AhpE8Sj-8",{"id":137469,"title":123574,"body":137470,"date":402,"description":137782,"extension":404,"meta":137783,"navigation":61,"order":725,"path":136688,"seo":137784,"stem":137785,"subject":133311,"tags":137786,"__hash__":137787},"topics/kotlin/useful-snippets.md",{"type":8,"value":137471,"toc":137779},[137472,137474,137777],[11,137473,123574],{"id":124554},[25,137475,137477],{"className":133309,"code":137476,"language":133311,"meta":30,"style":30},"// Safe type cast with smart cast\nif (obj is String) {\n    println(obj.length)  // Smart cast to String\n}\n\n// Require and check\nfun process(value: Int) {\n    require(value > 0) { \"Value must be positive\" }\n    check(isInitialized) { \"Not initialized\" }\n}\n\n// Use - auto-close resources\nFile(\"file.txt\").bufferedReader().use { reader ->\n    reader.readLine()\n}\n\n// Read file\nval content = File(\"file.txt\").readText()\nval lines = File(\"file.txt\").readLines()\n\n// Measure time\nval time = measureTimeMillis {\n    // code to measure\n}\n\n// Repeat\nrepeat(5) { index ->\n    println(\"Iteration $index\")\n}\n\n// TODO with exception\nfun notImplemented(): Nothing = TODO(\"Not implemented yet\")\n",[20,137478,137479,137484,137495,137505,137509,137513,137518,137534,137554,137567,137571,137575,137580,137604,137613,137617,137621,137625,137648,137670,137674,137679,137693,137698,137702,137706,137711,137724,137740,137744,137748,137753],{"__ignoreMap":30},[34,137480,137481],{"class":36,"line":37},[34,137482,137483],{"class":40},"// Safe type cast with smart cast\n",[34,137485,137486,137488,137490,137492],{"class":36,"line":44},[34,137487,10383],{"class":580},[34,137489,34795],{"class":181},[34,137491,34798],{"class":580},[34,137493,137494],{"class":181}," String) {\n",[34,137496,137497,137499,137502],{"class":36,"line":58},[34,137498,87327],{"class":47},[34,137500,137501],{"class":181},"(obj.length)  ",[34,137503,137504],{"class":40},"// Smart cast to String\n",[34,137506,137507],{"class":36,"line":65},[34,137508,693],{"class":181},[34,137510,137511],{"class":36,"line":71},[34,137512,62],{"emptyLinePlaceholder":61},[34,137514,137515],{"class":36,"line":77},[34,137516,137517],{"class":40},"// Require and check\n",[34,137519,137520,137522,137524,137526,137528,137530,137532],{"class":36,"line":82},[34,137521,135329],{"class":580},[34,137523,31325],{"class":47},[34,137525,1607],{"class":181},[34,137527,2871],{"class":580},[34,137529,182],{"class":181},[34,137531,133344],{"class":47},[34,137533,2416],{"class":181},[34,137535,137536,137539,137541,137543,137545,137547,137549,137552],{"class":36,"line":88},[34,137537,137538],{"class":47},"    require",[34,137540,1607],{"class":181},[34,137542,2871],{"class":580},[34,137544,9009],{"class":580},[34,137546,8070],{"class":50},[34,137548,31392],{"class":181},[34,137550,137551],{"class":54},"\"Value must be positive\"",[34,137553,52786],{"class":181},[34,137555,137556,137559,137562,137565],{"class":36,"line":242},[34,137557,137558],{"class":47},"    check",[34,137560,137561],{"class":181},"(isInitialized) { ",[34,137563,137564],{"class":54},"\"Not initialized\"",[34,137566,52786],{"class":181},[34,137568,137569],{"class":36,"line":250},[34,137570,693],{"class":181},[34,137572,137573],{"class":36,"line":263},[34,137574,62],{"emptyLinePlaceholder":61},[34,137576,137577],{"class":36,"line":275},[34,137578,137579],{"class":40},"// Use - auto-close resources\n",[34,137581,137582,137585,137587,137589,137591,137594,137596,137598,137601],{"class":36,"line":700},[34,137583,137584],{"class":47},"File",[34,137586,1607],{"class":181},[34,137588,14990],{"class":54},[34,137590,1876],{"class":181},[34,137592,137593],{"class":47},"bufferedReader",[34,137595,1645],{"class":181},[34,137597,61898],{"class":47},[34,137599,137600],{"class":181}," { reader ",[34,137602,137603],{"class":580},"->\n",[34,137605,137606,137609,137611],{"class":36,"line":706},[34,137607,137608],{"class":181},"    reader.",[34,137610,122651],{"class":47},[34,137612,33899],{"class":181},[34,137614,137615],{"class":36,"line":715},[34,137616,693],{"class":181},[34,137618,137619],{"class":36,"line":725},[34,137620,62],{"emptyLinePlaceholder":61},[34,137622,137623],{"class":36,"line":734},[34,137624,14969],{"class":40},[34,137626,137627,137629,137632,137634,137637,137639,137641,137643,137646],{"class":36,"line":742},[34,137628,133329],{"class":580},[34,137630,137631],{"class":181}," content ",[34,137633,1301],{"class":580},[34,137635,137636],{"class":47}," File",[34,137638,1607],{"class":181},[34,137640,14990],{"class":54},[34,137642,1876],{"class":181},[34,137644,137645],{"class":47},"readText",[34,137647,33899],{"class":181},[34,137649,137650,137652,137655,137657,137659,137661,137663,137665,137668],{"class":36,"line":748},[34,137651,133329],{"class":580},[34,137653,137654],{"class":181}," lines ",[34,137656,1301],{"class":580},[34,137658,137636],{"class":47},[34,137660,1607],{"class":181},[34,137662,14990],{"class":54},[34,137664,1876],{"class":181},[34,137666,137667],{"class":47},"readLines",[34,137669,33899],{"class":181},[34,137671,137672],{"class":36,"line":754},[34,137673,62],{"emptyLinePlaceholder":61},[34,137675,137676],{"class":36,"line":759},[34,137677,137678],{"class":40},"// Measure time\n",[34,137680,137681,137683,137686,137688,137691],{"class":36,"line":771},[34,137682,133329],{"class":580},[34,137684,137685],{"class":181}," time ",[34,137687,1301],{"class":580},[34,137689,137690],{"class":47}," measureTimeMillis",[34,137692,661],{"class":181},[34,137694,137695],{"class":36,"line":794},[34,137696,137697],{"class":40},"    // code to measure\n",[34,137699,137700],{"class":36,"line":824},[34,137701,693],{"class":181},[34,137703,137704],{"class":36,"line":830},[34,137705,62],{"emptyLinePlaceholder":61},[34,137707,137708],{"class":36,"line":839},[34,137709,137710],{"class":40},"// Repeat\n",[34,137712,137713,137715,137717,137719,137722],{"class":36,"line":854},[34,137714,40274],{"class":47},[34,137716,1607],{"class":181},[34,137718,2778],{"class":50},[34,137720,137721],{"class":181},") { index ",[34,137723,137603],{"class":580},[34,137725,137726,137728,137730,137733,137736,137738],{"class":36,"line":860},[34,137727,87327],{"class":47},[34,137729,1607],{"class":181},[34,137731,137732],{"class":54},"\"Iteration ",[34,137734,137735],{"class":50},"$index",[34,137737,10389],{"class":54},[34,137739,3372],{"class":181},[34,137741,137742],{"class":36,"line":865},[34,137743,693],{"class":181},[34,137745,137746],{"class":36,"line":870},[34,137747,62],{"emptyLinePlaceholder":61},[34,137749,137750],{"class":36,"line":876},[34,137751,137752],{"class":40},"// TODO with exception\n",[34,137754,137755,137757,137760,137762,137765,137767,137770,137772,137775],{"class":36,"line":885},[34,137756,135329],{"class":580},[34,137758,137759],{"class":47}," notImplemented",[34,137761,133762],{"class":181},[34,137763,137764],{"class":47},"Nothing",[34,137766,683],{"class":580},[34,137768,137769],{"class":47}," TODO",[34,137771,1607],{"class":181},[34,137773,137774],{"class":54},"\"Not implemented yet\"",[34,137776,3372],{"class":181},[388,137778,33776],{},{"title":30,"searchDepth":44,"depth":44,"links":137780},[137781],{"id":124554,"depth":44,"text":123574},"Useful Snippets in Kotlin.",{},{"title":123574,"description":137782},"kotlin/useful-snippets",[133311,121718,133781,133782],"INH0B85W0IHG3jcA3BFXYVy9Qmd22NzmW3ILRqLLy00",{"id":137789,"title":23073,"body":137790,"date":402,"description":137988,"extension":404,"meta":137989,"navigation":61,"order":44,"path":136626,"seo":137990,"stem":137991,"subject":133311,"tags":137992,"__hash__":137993},"topics/kotlin/variables-types.md",{"type":8,"value":137791,"toc":137985},[137792,137794,137983],[11,137793,23073],{"id":25048},[25,137795,137797],{"className":133309,"code":137796,"language":133311,"meta":30,"style":30},"// Immutable (preferred)\nval name: String = \"John\"\nval age = 25  // Type inference\n\n// Mutable\nvar counter = 0\ncounter++\n\n// Constants\nconst val MAX_SIZE = 100  // Compile-time constant\n\n// Nullable types\nvar nullable: String? = null\nval length = nullable?.length  // Safe call\nval lengthOrZero = nullable?.length ?: 0  // Elvis operator\n\n// Late initialization\nlateinit var lateInit: String\n\n// Lazy initialization\nval expensive by lazy { computeValue() }\n",[20,137798,137799,137804,137816,137829,137833,137838,137849,137856,137860,137864,137879,137883,137887,137902,137916,137933,137937,137942,137954,137958,137963],{"__ignoreMap":30},[34,137800,137801],{"class":36,"line":37},[34,137802,137803],{"class":40},"// Immutable (preferred)\n",[34,137805,137806,137808,137810,137812,137814],{"class":36,"line":44},[34,137807,133329],{"class":580},[34,137809,133332],{"class":181},[34,137811,51427],{"class":47},[34,137813,683],{"class":580},[34,137815,136862],{"class":54},[34,137817,137818,137820,137822,137824,137826],{"class":36,"line":58},[34,137819,133329],{"class":580},[34,137821,25065],{"class":181},[34,137823,1301],{"class":580},[34,137825,24763],{"class":50},[34,137827,137828],{"class":40},"  // Type inference\n",[34,137830,137831],{"class":36,"line":65},[34,137832,62],{"emptyLinePlaceholder":61},[34,137834,137835],{"class":36,"line":71},[34,137836,137837],{"class":40},"// Mutable\n",[34,137839,137840,137842,137845,137847],{"class":36,"line":77},[34,137841,34404],{"class":580},[34,137843,137844],{"class":181}," counter ",[34,137846,1301],{"class":580},[34,137848,36394],{"class":50},[34,137850,137851,137854],{"class":36,"line":82},[34,137852,137853],{"class":181},"counter",[34,137855,108020],{"class":580},[34,137857,137858],{"class":36,"line":88},[34,137859,62],{"emptyLinePlaceholder":61},[34,137861,137862],{"class":36,"line":242},[34,137863,32996],{"class":40},[34,137865,137866,137868,137870,137872,137874,137876],{"class":36,"line":250},[34,137867,14676],{"class":580},[34,137869,136513],{"class":580},[34,137871,33005],{"class":181},[34,137873,1301],{"class":580},[34,137875,25168],{"class":50},[34,137877,137878],{"class":40},"  // Compile-time constant\n",[34,137880,137881],{"class":36,"line":263},[34,137882,62],{"emptyLinePlaceholder":61},[34,137884,137885],{"class":36,"line":275},[34,137886,38093],{"class":40},[34,137888,137889,137891,137894,137896,137898,137900],{"class":36,"line":700},[34,137890,34404],{"class":580},[34,137892,137893],{"class":181}," nullable: ",[34,137895,51427],{"class":47},[34,137897,37314],{"class":181},[34,137899,1301],{"class":580},[34,137901,136246],{"class":50},[34,137903,137904,137906,137908,137910,137913],{"class":36,"line":706},[34,137905,133329],{"class":580},[34,137907,121315],{"class":181},[34,137909,1301],{"class":580},[34,137911,137912],{"class":181}," nullable?.length  ",[34,137914,137915],{"class":40},"// Safe call\n",[34,137917,137918,137920,137923,137925,137928,137930],{"class":36,"line":715},[34,137919,133329],{"class":580},[34,137921,137922],{"class":181}," lengthOrZero ",[34,137924,1301],{"class":580},[34,137926,137927],{"class":181}," nullable?.length ?: ",[34,137929,2773],{"class":50},[34,137931,137932],{"class":40},"  // Elvis operator\n",[34,137934,137935],{"class":36,"line":725},[34,137936,62],{"emptyLinePlaceholder":61},[34,137938,137939],{"class":36,"line":734},[34,137940,137941],{"class":40},"// Late initialization\n",[34,137943,137944,137947,137949,137952],{"class":36,"line":742},[34,137945,137946],{"class":580},"lateinit",[34,137948,33845],{"class":580},[34,137950,137951],{"class":181}," lateInit: ",[34,137953,133378],{"class":47},[34,137955,137956],{"class":36,"line":748},[34,137957,62],{"emptyLinePlaceholder":61},[34,137959,137960],{"class":36,"line":754},[34,137961,137962],{"class":40},"// Lazy initialization\n",[34,137964,137965,137967,137970,137973,137976,137978,137981],{"class":36,"line":759},[34,137966,133329],{"class":580},[34,137968,137969],{"class":181}," expensive ",[34,137971,137972],{"class":580},"by",[34,137974,137975],{"class":47}," lazy",[34,137977,30251],{"class":181},[34,137979,137980],{"class":47},"computeValue",[34,137982,133832],{"class":181},[388,137984,34928],{},{"title":30,"searchDepth":44,"depth":44,"links":137986},[137987],{"id":25048,"depth":44,"text":23073},"Variables & Types in Kotlin.",{},{"title":23073,"description":137988},"kotlin/variables-types",[133311,121718,133781,133782],"MxEVnM4tbMnsSmxs9BlkG4vkAFUnQLJGh1oiXeTh-OI",{"id":137995,"title":137996,"body":137997,"date":402,"description":138129,"extension":404,"meta":138130,"navigation":61,"order":44,"path":138131,"seo":138132,"stem":138133,"subject":7701,"tags":138134,"__hash__":138137},"topics/kubernetes/cluster-information.md","Cluster Information",{"type":8,"value":137998,"toc":138126},[137999,138002,138124],[11,138000,137996],{"id":138001},"cluster-information",[25,138003,138005],{"className":27,"code":138004,"language":29,"meta":30,"style":30},"# View cluster info\nkubectl cluster-info\n\n# Get all nodes\nkubectl get nodes\n\n# Get node details\nkubectl describe node \u003Cnode-name>\n\n# View kubectl configuration\nkubectl config view\n\n# List available contexts\nkubectl config get-contexts\n\n# Switch context\nkubectl config use-context \u003Ccontext-name>\n",[20,138006,138007,138012,138019,138023,138028,138036,138040,138045,138062,138066,138071,138079,138083,138088,138097,138101,138106],{"__ignoreMap":30},[34,138008,138009],{"class":36,"line":37},[34,138010,138011],{"class":40},"# View cluster info\n",[34,138013,138014,138016],{"class":36,"line":44},[34,138015,7074],{"class":47},[34,138017,138018],{"class":54}," cluster-info\n",[34,138020,138021],{"class":36,"line":58},[34,138022,62],{"emptyLinePlaceholder":61},[34,138024,138025],{"class":36,"line":65},[34,138026,138027],{"class":40},"# Get all nodes\n",[34,138029,138030,138032,138034],{"class":36,"line":71},[34,138031,7074],{"class":47},[34,138033,7173],{"class":54},[34,138035,130074],{"class":54},[34,138037,138038],{"class":36,"line":77},[34,138039,62],{"emptyLinePlaceholder":61},[34,138041,138042],{"class":36,"line":82},[34,138043,138044],{"class":40},"# Get node details\n",[34,138046,138047,138049,138051,138053,138055,138058,138060],{"class":36,"line":88},[34,138048,7074],{"class":47},[34,138050,92381],{"class":54},[34,138052,52476],{"class":54},[34,138054,5470],{"class":580},[34,138056,138057],{"class":54},"node-nam",[34,138059,5476],{"class":181},[34,138061,1248],{"class":580},[34,138063,138064],{"class":36,"line":242},[34,138065,62],{"emptyLinePlaceholder":61},[34,138067,138068],{"class":36,"line":250},[34,138069,138070],{"class":40},"# View kubectl configuration\n",[34,138072,138073,138075,138077],{"class":36,"line":263},[34,138074,7074],{"class":47},[34,138076,58810],{"class":54},[34,138078,92661],{"class":54},[34,138080,138081],{"class":36,"line":275},[34,138082,62],{"emptyLinePlaceholder":61},[34,138084,138085],{"class":36,"line":700},[34,138086,138087],{"class":40},"# List available contexts\n",[34,138089,138090,138092,138094],{"class":36,"line":706},[34,138091,7074],{"class":47},[34,138093,58810],{"class":54},[34,138095,138096],{"class":54}," get-contexts\n",[34,138098,138099],{"class":36,"line":715},[34,138100,62],{"emptyLinePlaceholder":61},[34,138102,138103],{"class":36,"line":725},[34,138104,138105],{"class":40},"# Switch context\n",[34,138107,138108,138110,138112,138115,138117,138120,138122],{"class":36,"line":734},[34,138109,7074],{"class":47},[34,138111,58810],{"class":54},[34,138113,138114],{"class":54}," use-context",[34,138116,5470],{"class":580},[34,138118,138119],{"class":54},"context-nam",[34,138121,5476],{"class":181},[34,138123,1248],{"class":580},[388,138125,6641],{},{"title":30,"searchDepth":44,"depth":44,"links":138127},[138128],{"id":138001,"depth":44,"text":137996},"Cluster Information in Kubernetes.",{},"/kubernetes/cluster-information",{"title":137996,"description":138129},"kubernetes/cluster-information",[7701,138135,30382,5438,138136],"k8s","orchestration","rymmYtFfausuPA8mCHv3382bNYtmxyGIrxZw8RDrUjA",{"id":138139,"title":138140,"body":138141,"date":402,"description":138318,"extension":404,"meta":138319,"navigation":61,"order":82,"path":138320,"seo":138321,"stem":138322,"subject":7701,"tags":138323,"__hash__":138324},"topics/kubernetes/configmaps-secrets.md","ConfigMaps & Secrets",{"type":8,"value":138142,"toc":138315},[138143,138146,138313],[11,138144,138140],{"id":138145},"configmaps-secrets",[25,138147,138149],{"className":27,"code":138148,"language":29,"meta":30,"style":30},"# Create ConfigMap from literal\nkubectl create configmap \u003Cname> --from-literal=key=value\n\n# Create ConfigMap from file\nkubectl create configmap \u003Cname> --from-file=\u003Cpath>\n\n# Get ConfigMaps\nkubectl get configmaps\n\n# Create Secret\nkubectl create secret generic \u003Cname> --from-literal=key=value\n\n# Get Secrets\nkubectl get secrets\n\n# Decode Secret\nkubectl get secret \u003Cname> -o jsonpath='{.data.key}' | base64 --decode\n",[20,138150,138151,138156,138176,138180,138185,138210,138214,138219,138228,138232,138237,138258,138262,138267,138276,138280,138285],{"__ignoreMap":30},[34,138152,138153],{"class":36,"line":37},[34,138154,138155],{"class":40},"# Create ConfigMap from literal\n",[34,138157,138158,138160,138162,138165,138167,138169,138171,138173],{"class":36,"line":44},[34,138159,7074],{"class":47},[34,138161,7077],{"class":54},[34,138163,138164],{"class":54}," configmap",[34,138166,5470],{"class":580},[34,138168,56907],{"class":54},[34,138170,5476],{"class":181},[34,138172,5691],{"class":580},[34,138174,138175],{"class":50}," --from-literal=key=value\n",[34,138177,138178],{"class":36,"line":58},[34,138179,62],{"emptyLinePlaceholder":61},[34,138181,138182],{"class":36,"line":65},[34,138183,138184],{"class":40},"# Create ConfigMap from file\n",[34,138186,138187,138189,138191,138193,138195,138197,138199,138201,138204,138206,138208],{"class":36,"line":71},[34,138188,7074],{"class":47},[34,138190,7077],{"class":54},[34,138192,138164],{"class":54},[34,138194,5470],{"class":580},[34,138196,56907],{"class":54},[34,138198,5476],{"class":181},[34,138200,5691],{"class":580},[34,138202,138203],{"class":50}," --from-file=",[34,138205,815],{"class":580},[34,138207,20404],{"class":50},[34,138209,1248],{"class":580},[34,138211,138212],{"class":36,"line":77},[34,138213,62],{"emptyLinePlaceholder":61},[34,138215,138216],{"class":36,"line":82},[34,138217,138218],{"class":40},"# Get ConfigMaps\n",[34,138220,138221,138223,138225],{"class":36,"line":88},[34,138222,7074],{"class":47},[34,138224,7173],{"class":54},[34,138226,138227],{"class":54}," configmaps\n",[34,138229,138230],{"class":36,"line":242},[34,138231,62],{"emptyLinePlaceholder":61},[34,138233,138234],{"class":36,"line":250},[34,138235,138236],{"class":40},"# Create Secret\n",[34,138238,138239,138241,138243,138245,138248,138250,138252,138254,138256],{"class":36,"line":263},[34,138240,7074],{"class":47},[34,138242,7077],{"class":54},[34,138244,7176],{"class":54},[34,138246,138247],{"class":54}," generic",[34,138249,5470],{"class":580},[34,138251,56907],{"class":54},[34,138253,5476],{"class":181},[34,138255,5691],{"class":580},[34,138257,138175],{"class":50},[34,138259,138260],{"class":36,"line":275},[34,138261,62],{"emptyLinePlaceholder":61},[34,138263,138264],{"class":36,"line":700},[34,138265,138266],{"class":40},"# Get Secrets\n",[34,138268,138269,138271,138273],{"class":36,"line":706},[34,138270,7074],{"class":47},[34,138272,7173],{"class":54},[34,138274,138275],{"class":54}," secrets\n",[34,138277,138278],{"class":36,"line":715},[34,138279,62],{"emptyLinePlaceholder":61},[34,138281,138282],{"class":36,"line":725},[34,138283,138284],{"class":40},"# Decode Secret\n",[34,138286,138287,138289,138291,138293,138295,138297,138299,138301,138303,138306,138308,138310],{"class":36,"line":734},[34,138288,7074],{"class":47},[34,138290,7173],{"class":54},[34,138292,7176],{"class":54},[34,138294,5470],{"class":580},[34,138296,56907],{"class":54},[34,138298,5476],{"class":181},[34,138300,5691],{"class":580},[34,138302,8654],{"class":50},[34,138304,138305],{"class":54}," jsonpath='{.data.key}'",[34,138307,7197],{"class":580},[34,138309,7200],{"class":47},[34,138311,138312],{"class":50}," --decode\n",[388,138314,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":138316},[138317],{"id":138145,"depth":44,"text":138140},"ConfigMaps & Secrets in Kubernetes.",{},"/kubernetes/configmaps-secrets",{"title":138140,"description":138318},"kubernetes/configmaps-secrets",[7701,138135,30382,5438,138136],"EWbeqi1eIXSy5KHumb_jLZHCqDB3Nhty-VT9SwypI28",{"id":138326,"title":18679,"body":138327,"date":402,"description":138517,"extension":404,"meta":138518,"navigation":61,"order":242,"path":138519,"seo":138520,"stem":138521,"subject":7701,"tags":138522,"__hash__":138523},"topics/kubernetes/debugging.md",{"type":8,"value":138328,"toc":138514},[138329,138331,138512],[11,138330,18679],{"id":120105},[25,138332,138334],{"className":27,"code":138333,"language":29,"meta":30,"style":30},"# Get events\nkubectl get events --sort-by='.lastTimestamp'\n\n# Describe resource for troubleshooting\nkubectl describe pod \u003Cpod-name>\n\n# Port forward to pod\nkubectl port-forward \u003Cpod-name> 8080:80\n\n# Run temporary debug pod\nkubectl run debug --image=busybox -it --rm -- /bin/sh\n\n# Copy files to/from pod\nkubectl cp \u003Cpod-name>:/path/to/file ./local/path\nkubectl cp ./local/path \u003Cpod-name>:/path/to/file\n\n# Get resource usage\nkubectl top nodes\nkubectl top pods\n",[20,138335,138336,138341,138355,138359,138364,138382,138386,138391,138408,138412,138417,138438,138442,138447,138466,138486,138490,138495,138503],{"__ignoreMap":30},[34,138337,138338],{"class":36,"line":37},[34,138339,138340],{"class":40},"# Get events\n",[34,138342,138343,138345,138347,138349,138352],{"class":36,"line":44},[34,138344,7074],{"class":47},[34,138346,7173],{"class":54},[34,138348,57837],{"class":54},[34,138350,138351],{"class":50}," --sort-by=",[34,138353,138354],{"class":54},"'.lastTimestamp'\n",[34,138356,138357],{"class":36,"line":58},[34,138358,62],{"emptyLinePlaceholder":61},[34,138360,138361],{"class":36,"line":65},[34,138362,138363],{"class":40},"# Describe resource for troubleshooting\n",[34,138365,138366,138368,138370,138373,138375,138378,138380],{"class":36,"line":71},[34,138367,7074],{"class":47},[34,138369,92381],{"class":54},[34,138371,138372],{"class":54}," pod",[34,138374,5470],{"class":580},[34,138376,138377],{"class":54},"pod-nam",[34,138379,5476],{"class":181},[34,138381,1248],{"class":580},[34,138383,138384],{"class":36,"line":77},[34,138385,62],{"emptyLinePlaceholder":61},[34,138387,138388],{"class":36,"line":82},[34,138389,138390],{"class":40},"# Port forward to pod\n",[34,138392,138393,138395,138397,138399,138401,138403,138405],{"class":36,"line":88},[34,138394,7074],{"class":47},[34,138396,7147],{"class":54},[34,138398,5470],{"class":580},[34,138400,138377],{"class":54},[34,138402,5476],{"class":181},[34,138404,5691],{"class":580},[34,138406,138407],{"class":54}," 8080:80\n",[34,138409,138410],{"class":36,"line":242},[34,138411,62],{"emptyLinePlaceholder":61},[34,138413,138414],{"class":36,"line":250},[34,138415,138416],{"class":40},"# Run temporary debug pod\n",[34,138418,138419,138421,138423,138426,138429,138431,138433,138435],{"class":36,"line":263},[34,138420,7074],{"class":47},[34,138422,16017],{"class":54},[34,138424,138425],{"class":54}," debug",[34,138427,138428],{"class":50}," --image=busybox",[34,138430,56030],{"class":50},[34,138432,56119],{"class":50},[34,138434,99171],{"class":50},[34,138436,138437],{"class":54}," /bin/sh\n",[34,138439,138440],{"class":36,"line":275},[34,138441,62],{"emptyLinePlaceholder":61},[34,138443,138444],{"class":36,"line":700},[34,138445,138446],{"class":40},"# Copy files to/from pod\n",[34,138448,138449,138451,138453,138455,138457,138459,138461,138464],{"class":36,"line":706},[34,138450,7074],{"class":47},[34,138452,8829],{"class":54},[34,138454,5470],{"class":580},[34,138456,138377],{"class":54},[34,138458,5476],{"class":181},[34,138460,5691],{"class":580},[34,138462,138463],{"class":54},":/path/to/file",[34,138465,57891],{"class":54},[34,138467,138468,138470,138472,138475,138477,138479,138481,138483],{"class":36,"line":715},[34,138469,7074],{"class":47},[34,138471,8829],{"class":54},[34,138473,138474],{"class":54}," ./local/path",[34,138476,5470],{"class":580},[34,138478,138377],{"class":54},[34,138480,5476],{"class":181},[34,138482,5691],{"class":580},[34,138484,138485],{"class":54},":/path/to/file\n",[34,138487,138488],{"class":36,"line":725},[34,138489,62],{"emptyLinePlaceholder":61},[34,138491,138492],{"class":36,"line":734},[34,138493,138494],{"class":40},"# Get resource usage\n",[34,138496,138497,138499,138501],{"class":36,"line":742},[34,138498,7074],{"class":47},[34,138500,33763],{"class":54},[34,138502,130074],{"class":54},[34,138504,138505,138507,138509],{"class":36,"line":748},[34,138506,7074],{"class":47},[34,138508,33763],{"class":54},[34,138510,138511],{"class":54}," pods\n",[388,138513,5578],{},{"title":30,"searchDepth":44,"depth":44,"links":138515},[138516],{"id":120105,"depth":44,"text":18679},"Debugging in Kubernetes.",{},"/kubernetes/debugging",{"title":18679,"description":138517},"kubernetes/debugging",[7701,138135,30382,5438,138136],"Y9FqVYxrJNwhEWmgvfsAXyEGxycdM_DXzGeTiFgpWxg",{"id":138525,"title":138526,"body":138527,"date":402,"description":138794,"extension":404,"meta":138795,"navigation":61,"order":65,"path":138796,"seo":138797,"stem":138798,"subject":7701,"tags":138799,"__hash__":138800},"topics/kubernetes/deployments.md","Deployments",{"type":8,"value":138528,"toc":138791},[138529,138532,138789],[11,138530,138526],{"id":138531},"deployments",[25,138533,138535],{"className":27,"code":138534,"language":29,"meta":30,"style":30},"# List deployments\nkubectl get deployments\n\n# Create deployment\nkubectl create deployment \u003Cname> --image=\u003Cimage>\n\n# Apply deployment from file\nkubectl apply -f deployment.yaml\n\n# Scale deployment\nkubectl scale deployment \u003Cname> --replicas=3\n\n# Update deployment image\nkubectl set image deployment/\u003Cname> \u003Ccontainer>=\u003Cimage>\n\n# Rollout status\nkubectl rollout status deployment/\u003Cname>\n\n# Rollout history\nkubectl rollout history deployment/\u003Cname>\n\n# Rollback deployment\nkubectl rollout undo deployment/\u003Cname>\n\n# Delete deployment\nkubectl delete deployment \u003Cname>\n",[20,138536,138537,138542,138551,138555,138560,138587,138591,138596,138607,138611,138616,138636,138640,138645,138682,138686,138691,138710,138714,138719,138737,138741,138746,138764,138768,138773],{"__ignoreMap":30},[34,138538,138539],{"class":36,"line":37},[34,138540,138541],{"class":40},"# List deployments\n",[34,138543,138544,138546,138548],{"class":36,"line":44},[34,138545,7074],{"class":47},[34,138547,7173],{"class":54},[34,138549,138550],{"class":54}," deployments\n",[34,138552,138553],{"class":36,"line":58},[34,138554,62],{"emptyLinePlaceholder":61},[34,138556,138557],{"class":36,"line":65},[34,138558,138559],{"class":40},"# Create deployment\n",[34,138561,138562,138564,138566,138569,138571,138573,138575,138577,138580,138582,138585],{"class":36,"line":71},[34,138563,7074],{"class":47},[34,138565,7077],{"class":54},[34,138567,138568],{"class":54}," deployment",[34,138570,5470],{"class":580},[34,138572,56907],{"class":54},[34,138574,5476],{"class":181},[34,138576,5691],{"class":580},[34,138578,138579],{"class":50}," --image=",[34,138581,815],{"class":580},[34,138583,138584],{"class":50},"image",[34,138586,1248],{"class":580},[34,138588,138589],{"class":36,"line":77},[34,138590,62],{"emptyLinePlaceholder":61},[34,138592,138593],{"class":36,"line":82},[34,138594,138595],{"class":40},"# Apply deployment from file\n",[34,138597,138598,138600,138602,138604],{"class":36,"line":88},[34,138599,7074],{"class":47},[34,138601,7090],{"class":54},[34,138603,6001],{"class":50},[34,138605,138606],{"class":54}," deployment.yaml\n",[34,138608,138609],{"class":36,"line":242},[34,138610,62],{"emptyLinePlaceholder":61},[34,138612,138613],{"class":36,"line":250},[34,138614,138615],{"class":40},"# Scale deployment\n",[34,138617,138618,138620,138623,138625,138627,138629,138631,138633],{"class":36,"line":263},[34,138619,7074],{"class":47},[34,138621,138622],{"class":54}," scale",[34,138624,138568],{"class":54},[34,138626,5470],{"class":580},[34,138628,56907],{"class":54},[34,138630,5476],{"class":181},[34,138632,5691],{"class":580},[34,138634,138635],{"class":50}," --replicas=3\n",[34,138637,138638],{"class":36,"line":275},[34,138639,62],{"emptyLinePlaceholder":61},[34,138641,138642],{"class":36,"line":700},[34,138643,138644],{"class":40},"# Update deployment image\n",[34,138646,138647,138649,138651,138653,138656,138658,138660,138662,138664,138666,138668,138670,138672,138674,138676,138678,138680],{"class":36,"line":706},[34,138648,7074],{"class":47},[34,138650,9481],{"class":54},[34,138652,57042],{"class":54},[34,138654,138655],{"class":54}," deployment/",[34,138657,815],{"class":580},[34,138659,56907],{"class":54},[34,138661,5476],{"class":181},[34,138663,5691],{"class":580},[34,138665,5470],{"class":580},[34,138667,56236],{"class":54},[34,138669,56239],{"class":181},[34,138671,5691],{"class":580},[34,138673,1301],{"class":54},[34,138675,815],{"class":580},[34,138677,55998],{"class":54},[34,138679,5476],{"class":181},[34,138681,1248],{"class":580},[34,138683,138684],{"class":36,"line":715},[34,138685,62],{"emptyLinePlaceholder":61},[34,138687,138688],{"class":36,"line":725},[34,138689,138690],{"class":40},"# Rollout status\n",[34,138692,138693,138695,138698,138700,138702,138704,138706,138708],{"class":36,"line":734},[34,138694,7074],{"class":47},[34,138696,138697],{"class":54}," rollout",[34,138699,94498],{"class":54},[34,138701,138655],{"class":54},[34,138703,815],{"class":580},[34,138705,56907],{"class":54},[34,138707,5476],{"class":181},[34,138709,1248],{"class":580},[34,138711,138712],{"class":36,"line":742},[34,138713,62],{"emptyLinePlaceholder":61},[34,138715,138716],{"class":36,"line":748},[34,138717,138718],{"class":40},"# Rollout history\n",[34,138720,138721,138723,138725,138727,138729,138731,138733,138735],{"class":36,"line":754},[34,138722,7074],{"class":47},[34,138724,138697],{"class":54},[34,138726,7579],{"class":54},[34,138728,138655],{"class":54},[34,138730,815],{"class":580},[34,138732,56907],{"class":54},[34,138734,5476],{"class":181},[34,138736,1248],{"class":580},[34,138738,138739],{"class":36,"line":759},[34,138740,62],{"emptyLinePlaceholder":61},[34,138742,138743],{"class":36,"line":771},[34,138744,138745],{"class":40},"# Rollback deployment\n",[34,138747,138748,138750,138752,138754,138756,138758,138760,138762],{"class":36,"line":794},[34,138749,7074],{"class":47},[34,138751,138697],{"class":54},[34,138753,54147],{"class":54},[34,138755,138655],{"class":54},[34,138757,815],{"class":580},[34,138759,56907],{"class":54},[34,138761,5476],{"class":181},[34,138763,1248],{"class":580},[34,138765,138766],{"class":36,"line":824},[34,138767,62],{"emptyLinePlaceholder":61},[34,138769,138770],{"class":36,"line":830},[34,138771,138772],{"class":40},"# Delete deployment\n",[34,138774,138775,138777,138779,138781,138783,138785,138787],{"class":36,"line":839},[34,138776,7074],{"class":47},[34,138778,9562],{"class":54},[34,138780,138568],{"class":54},[34,138782,5470],{"class":580},[34,138784,56907],{"class":54},[34,138786,5476],{"class":181},[34,138788,1248],{"class":580},[388,138790,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":138792},[138793],{"id":138531,"depth":44,"text":138526},"Deployments in Kubernetes.",{},"/kubernetes/deployments",{"title":138526,"description":138794},"kubernetes/deployments",[7701,138135,30382,5438,138136],"meLPY0hF17FW2X8u8KJ1YyHe2TMQ-NURSUDXb9CKUYE",{"id":138802,"title":138803,"body":138804,"date":402,"description":138941,"extension":404,"meta":138942,"navigation":61,"order":77,"path":138943,"seo":138944,"stem":138945,"subject":7701,"tags":138946,"__hash__":138947},"topics/kubernetes/namespaces.md","Namespaces",{"type":8,"value":138805,"toc":138938},[138806,138809,138936],[11,138807,138803],{"id":138808},"namespaces",[25,138810,138812],{"className":27,"code":138811,"language":29,"meta":30,"style":30},"# List namespaces\nkubectl get namespaces\n\n# Create namespace\nkubectl create namespace \u003Cname>\n\n# Set default namespace\nkubectl config set-context --current --namespace=\u003Cname>\n\n# Delete namespace\nkubectl delete namespace \u003Cname>\n\n# Get resources in namespace\nkubectl get all -n \u003Cnamespace>\n",[20,138813,138814,138819,138828,138832,138837,138853,138857,138862,138883,138887,138892,138908,138912,138917],{"__ignoreMap":30},[34,138815,138816],{"class":36,"line":37},[34,138817,138818],{"class":40},"# List namespaces\n",[34,138820,138821,138823,138825],{"class":36,"line":44},[34,138822,7074],{"class":47},[34,138824,7173],{"class":54},[34,138826,138827],{"class":54}," namespaces\n",[34,138829,138830],{"class":36,"line":58},[34,138831,62],{"emptyLinePlaceholder":61},[34,138833,138834],{"class":36,"line":65},[34,138835,138836],{"class":40},"# Create namespace\n",[34,138838,138839,138841,138843,138845,138847,138849,138851],{"class":36,"line":71},[34,138840,7074],{"class":47},[34,138842,7077],{"class":54},[34,138844,7080],{"class":54},[34,138846,5470],{"class":580},[34,138848,56907],{"class":54},[34,138850,5476],{"class":181},[34,138852,1248],{"class":580},[34,138854,138855],{"class":36,"line":77},[34,138856,62],{"emptyLinePlaceholder":61},[34,138858,138859],{"class":36,"line":82},[34,138860,138861],{"class":40},"# Set default namespace\n",[34,138863,138864,138866,138868,138871,138874,138877,138879,138881],{"class":36,"line":88},[34,138865,7074],{"class":47},[34,138867,58810],{"class":54},[34,138869,138870],{"class":54}," set-context",[34,138872,138873],{"class":50}," --current",[34,138875,138876],{"class":50}," --namespace=",[34,138878,815],{"class":580},[34,138880,178],{"class":50},[34,138882,1248],{"class":580},[34,138884,138885],{"class":36,"line":242},[34,138886,62],{"emptyLinePlaceholder":61},[34,138888,138889],{"class":36,"line":250},[34,138890,138891],{"class":40},"# Delete namespace\n",[34,138893,138894,138896,138898,138900,138902,138904,138906],{"class":36,"line":263},[34,138895,7074],{"class":47},[34,138897,9562],{"class":54},[34,138899,7080],{"class":54},[34,138901,5470],{"class":580},[34,138903,56907],{"class":54},[34,138905,5476],{"class":181},[34,138907,1248],{"class":580},[34,138909,138910],{"class":36,"line":275},[34,138911,62],{"emptyLinePlaceholder":61},[34,138913,138914],{"class":36,"line":700},[34,138915,138916],{"class":40},"# Get resources in namespace\n",[34,138918,138919,138921,138923,138925,138927,138929,138932,138934],{"class":36,"line":706},[34,138920,7074],{"class":47},[34,138922,7173],{"class":54},[34,138924,5034],{"class":54},[34,138926,7093],{"class":50},[34,138928,5470],{"class":580},[34,138930,138931],{"class":54},"namespac",[34,138933,5476],{"class":181},[34,138935,1248],{"class":580},[388,138937,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":138939},[138940],{"id":138808,"depth":44,"text":138803},"Namespaces in Kubernetes.",{},"/kubernetes/namespaces",{"title":138803,"description":138941},"kubernetes/namespaces",[7701,138135,30382,5438,138136],"l1le8ILSv5ZTRQb-SSOOOZVWJsmaa07iARhE0NFdJY0",{"id":138949,"title":138950,"body":138951,"date":2633,"description":139000,"extension":404,"meta":139001,"navigation":61,"order":37,"path":139002,"seo":139003,"stem":139004,"subject":7701,"tags":139005,"__hash__":139006},"topics/kubernetes/overview.md","Kubernetes",{"type":8,"value":138952,"toc":138998},[138953],[309,138954,138955,138959,138965,138969,138974,138978,138982,138988,138992],{},[312,138956,138957],{},[145,138958,137996],{"href":138131},[312,138960,138961],{},[145,138962,138964],{"href":138963},"/kubernetes/pods","Pods",[312,138966,138967],{},[145,138968,138526],{"href":138796},[312,138970,138971],{},[145,138972,114629],{"href":138973},"/kubernetes/services",[312,138975,138976],{},[145,138977,138803],{"href":138943},[312,138979,138980],{},[145,138981,138140],{"href":138320},[312,138983,138984],{},[145,138985,138987],{"href":138986},"/kubernetes/resource-management","Resource Management",[312,138989,138990],{},[145,138991,18679],{"href":138519},[312,138993,138994],{},[145,138995,138997],{"href":138996},"/kubernetes/yaml-templates","YAML Templates",{"title":30,"searchDepth":44,"depth":44,"links":138999},[],"Essential Kubernetes commands and configurations for container orchestration and cluster management.",{},"/kubernetes/overview",{"title":138950,"description":139000},"kubernetes/overview",[7701,138135,30382,5438,138136],"3atGItB_B8CjrYuTXCwPJxrTlmhmmx1RQIfGQKQTb5g",{"id":139008,"title":138964,"body":139009,"date":402,"description":139239,"extension":404,"meta":139240,"navigation":61,"order":58,"path":138963,"seo":139241,"stem":139242,"subject":7701,"tags":139243,"__hash__":139244},"topics/kubernetes/pods.md",{"type":8,"value":139010,"toc":139236},[139011,139014,139234],[11,139012,138964],{"id":139013},"pods",[25,139015,139017],{"className":27,"code":139016,"language":29,"meta":30,"style":30},"# List all pods\nkubectl get pods\n\n# List pods in all namespaces\nkubectl get pods --all-namespaces\n\n# Get pod details\nkubectl describe pod \u003Cpod-name>\n\n# Create pod from YAML\nkubectl apply -f pod.yaml\n\n# Delete a pod\nkubectl delete pod \u003Cpod-name>\n\n# Get pod logs\nkubectl logs \u003Cpod-name>\n\n# Follow pod logs\nkubectl logs -f \u003Cpod-name>\n\n# Get logs from specific container\nkubectl logs \u003Cpod-name> -c \u003Ccontainer-name>\n\n# Execute command in pod\nkubectl exec -it \u003Cpod-name> -- /bin/bash\n",[20,139018,139019,139024,139032,139036,139041,139053,139057,139062,139078,139082,139087,139098,139102,139107,139123,139127,139132,139146,139150,139155,139171,139175,139180,139205,139209,139214],{"__ignoreMap":30},[34,139020,139021],{"class":36,"line":37},[34,139022,139023],{"class":40},"# List all pods\n",[34,139025,139026,139028,139030],{"class":36,"line":44},[34,139027,7074],{"class":47},[34,139029,7173],{"class":54},[34,139031,138511],{"class":54},[34,139033,139034],{"class":36,"line":58},[34,139035,62],{"emptyLinePlaceholder":61},[34,139037,139038],{"class":36,"line":65},[34,139039,139040],{"class":40},"# List pods in all namespaces\n",[34,139042,139043,139045,139047,139050],{"class":36,"line":71},[34,139044,7074],{"class":47},[34,139046,7173],{"class":54},[34,139048,139049],{"class":54}," pods",[34,139051,139052],{"class":50}," --all-namespaces\n",[34,139054,139055],{"class":36,"line":77},[34,139056,62],{"emptyLinePlaceholder":61},[34,139058,139059],{"class":36,"line":82},[34,139060,139061],{"class":40},"# Get pod details\n",[34,139063,139064,139066,139068,139070,139072,139074,139076],{"class":36,"line":88},[34,139065,7074],{"class":47},[34,139067,92381],{"class":54},[34,139069,138372],{"class":54},[34,139071,5470],{"class":580},[34,139073,138377],{"class":54},[34,139075,5476],{"class":181},[34,139077,1248],{"class":580},[34,139079,139080],{"class":36,"line":242},[34,139081,62],{"emptyLinePlaceholder":61},[34,139083,139084],{"class":36,"line":250},[34,139085,139086],{"class":40},"# Create pod from YAML\n",[34,139088,139089,139091,139093,139095],{"class":36,"line":263},[34,139090,7074],{"class":47},[34,139092,7090],{"class":54},[34,139094,6001],{"class":50},[34,139096,139097],{"class":54}," pod.yaml\n",[34,139099,139100],{"class":36,"line":275},[34,139101,62],{"emptyLinePlaceholder":61},[34,139103,139104],{"class":36,"line":700},[34,139105,139106],{"class":40},"# Delete a pod\n",[34,139108,139109,139111,139113,139115,139117,139119,139121],{"class":36,"line":706},[34,139110,7074],{"class":47},[34,139112,9562],{"class":54},[34,139114,138372],{"class":54},[34,139116,5470],{"class":580},[34,139118,138377],{"class":54},[34,139120,5476],{"class":181},[34,139122,1248],{"class":580},[34,139124,139125],{"class":36,"line":715},[34,139126,62],{"emptyLinePlaceholder":61},[34,139128,139129],{"class":36,"line":725},[34,139130,139131],{"class":40},"# Get pod logs\n",[34,139133,139134,139136,139138,139140,139142,139144],{"class":36,"line":734},[34,139135,7074],{"class":47},[34,139137,55905],{"class":54},[34,139139,5470],{"class":580},[34,139141,138377],{"class":54},[34,139143,5476],{"class":181},[34,139145,1248],{"class":580},[34,139147,139148],{"class":36,"line":742},[34,139149,62],{"emptyLinePlaceholder":61},[34,139151,139152],{"class":36,"line":748},[34,139153,139154],{"class":40},"# Follow pod logs\n",[34,139156,139157,139159,139161,139163,139165,139167,139169],{"class":36,"line":754},[34,139158,7074],{"class":47},[34,139160,55905],{"class":54},[34,139162,6001],{"class":50},[34,139164,5470],{"class":580},[34,139166,138377],{"class":54},[34,139168,5476],{"class":181},[34,139170,1248],{"class":580},[34,139172,139173],{"class":36,"line":759},[34,139174,62],{"emptyLinePlaceholder":61},[34,139176,139177],{"class":36,"line":771},[34,139178,139179],{"class":40},"# Get logs from specific container\n",[34,139181,139182,139184,139186,139188,139190,139192,139194,139196,139198,139201,139203],{"class":36,"line":794},[34,139183,7074],{"class":47},[34,139185,55905],{"class":54},[34,139187,5470],{"class":580},[34,139189,138377],{"class":54},[34,139191,5476],{"class":181},[34,139193,5691],{"class":580},[34,139195,15867],{"class":50},[34,139197,5470],{"class":580},[34,139199,139200],{"class":54},"container-nam",[34,139202,5476],{"class":181},[34,139204,1248],{"class":580},[34,139206,139207],{"class":36,"line":824},[34,139208,62],{"emptyLinePlaceholder":61},[34,139210,139211],{"class":36,"line":830},[34,139212,139213],{"class":40},"# Execute command in pod\n",[34,139215,139216,139218,139220,139222,139224,139226,139228,139230,139232],{"class":36,"line":839},[34,139217,7074],{"class":47},[34,139219,55938],{"class":54},[34,139221,56030],{"class":50},[34,139223,5470],{"class":580},[34,139225,138377],{"class":54},[34,139227,5476],{"class":181},[34,139229,5691],{"class":580},[34,139231,99171],{"class":50},[34,139233,57213],{"class":54},[388,139235,5578],{},{"title":30,"searchDepth":44,"depth":44,"links":139237},[139238],{"id":139013,"depth":44,"text":138964},"Pods in Kubernetes.",{},{"title":138964,"description":139239},"kubernetes/pods",[7701,138135,30382,5438,138136],"d1Ual91SrQ9c2qBZu0c-nBJTHCWI08qc4SZk1LBrhc4",{"id":139246,"title":138987,"body":139247,"date":402,"description":139430,"extension":404,"meta":139431,"navigation":61,"order":88,"path":138986,"seo":139432,"stem":139433,"subject":7701,"tags":139434,"__hash__":139435},"topics/kubernetes/resource-management.md",{"type":8,"value":139248,"toc":139427},[139249,139252,139425],[11,139250,138987],{"id":139251},"resource-management",[25,139253,139255],{"className":27,"code":139254,"language":29,"meta":30,"style":30},"# Get all resources\nkubectl get all\n\n# Get resources with labels\nkubectl get pods -l app=myapp\n\n# Add label to resource\nkubectl label pod \u003Cpod-name> env=prod\n\n# Remove label\nkubectl label pod \u003Cpod-name> env-\n\n# Get resource YAML\nkubectl get pod \u003Cpod-name> -o yaml\n\n# Edit resource\nkubectl edit deployment \u003Cname>\n\n# Delete resources by label\nkubectl delete pods -l app=myapp\n",[20,139256,139257,139262,139270,139274,139279,139292,139296,139301,139321,139325,139330,139349,139353,139358,139379,139383,139388,139404,139408,139413],{"__ignoreMap":30},[34,139258,139259],{"class":36,"line":37},[34,139260,139261],{"class":40},"# Get all resources\n",[34,139263,139264,139266,139268],{"class":36,"line":44},[34,139265,7074],{"class":47},[34,139267,7173],{"class":54},[34,139269,53936],{"class":54},[34,139271,139272],{"class":36,"line":58},[34,139273,62],{"emptyLinePlaceholder":61},[34,139275,139276],{"class":36,"line":65},[34,139277,139278],{"class":40},"# Get resources with labels\n",[34,139280,139281,139283,139285,139287,139289],{"class":36,"line":71},[34,139282,7074],{"class":47},[34,139284,7173],{"class":54},[34,139286,139049],{"class":54},[34,139288,13169],{"class":50},[34,139290,139291],{"class":54}," app=myapp\n",[34,139293,139294],{"class":36,"line":77},[34,139295,62],{"emptyLinePlaceholder":61},[34,139297,139298],{"class":36,"line":82},[34,139299,139300],{"class":40},"# Add label to resource\n",[34,139302,139303,139305,139308,139310,139312,139314,139316,139318],{"class":36,"line":88},[34,139304,7074],{"class":47},[34,139306,139307],{"class":54}," label",[34,139309,138372],{"class":54},[34,139311,5470],{"class":580},[34,139313,138377],{"class":54},[34,139315,5476],{"class":181},[34,139317,5691],{"class":580},[34,139319,139320],{"class":54}," env=prod\n",[34,139322,139323],{"class":36,"line":242},[34,139324,62],{"emptyLinePlaceholder":61},[34,139326,139327],{"class":36,"line":250},[34,139328,139329],{"class":40},"# Remove label\n",[34,139331,139332,139334,139336,139338,139340,139342,139344,139346],{"class":36,"line":263},[34,139333,7074],{"class":47},[34,139335,139307],{"class":54},[34,139337,138372],{"class":54},[34,139339,5470],{"class":580},[34,139341,138377],{"class":54},[34,139343,5476],{"class":181},[34,139345,5691],{"class":580},[34,139347,139348],{"class":54}," env-\n",[34,139350,139351],{"class":36,"line":275},[34,139352,62],{"emptyLinePlaceholder":61},[34,139354,139355],{"class":36,"line":700},[34,139356,139357],{"class":40},"# Get resource YAML\n",[34,139359,139360,139362,139364,139366,139368,139370,139372,139374,139376],{"class":36,"line":706},[34,139361,7074],{"class":47},[34,139363,7173],{"class":54},[34,139365,138372],{"class":54},[34,139367,5470],{"class":580},[34,139369,138377],{"class":54},[34,139371,5476],{"class":181},[34,139373,5691],{"class":580},[34,139375,8654],{"class":50},[34,139377,139378],{"class":54}," yaml\n",[34,139380,139381],{"class":36,"line":715},[34,139382,62],{"emptyLinePlaceholder":61},[34,139384,139385],{"class":36,"line":725},[34,139386,139387],{"class":40},"# Edit resource\n",[34,139389,139390,139392,139394,139396,139398,139400,139402],{"class":36,"line":734},[34,139391,7074],{"class":47},[34,139393,95334],{"class":54},[34,139395,138568],{"class":54},[34,139397,5470],{"class":580},[34,139399,56907],{"class":54},[34,139401,5476],{"class":181},[34,139403,1248],{"class":580},[34,139405,139406],{"class":36,"line":742},[34,139407,62],{"emptyLinePlaceholder":61},[34,139409,139410],{"class":36,"line":748},[34,139411,139412],{"class":40},"# Delete resources by label\n",[34,139414,139415,139417,139419,139421,139423],{"class":36,"line":754},[34,139416,7074],{"class":47},[34,139418,9562],{"class":54},[34,139420,139049],{"class":54},[34,139422,13169],{"class":50},[34,139424,139291],{"class":54},[388,139426,5578],{},{"title":30,"searchDepth":44,"depth":44,"links":139428},[139429],{"id":139251,"depth":44,"text":138987},"Resource Management in Kubernetes.",{},{"title":138987,"description":139430},"kubernetes/resource-management",[7701,138135,30382,5438,138136],"BwJG8_YmEwnEE1-naM9ubTxqvzMEEfUL7Q2RMQfZ7Oo",{"id":139437,"title":114629,"body":139438,"date":402,"description":139548,"extension":404,"meta":139549,"navigation":61,"order":71,"path":138973,"seo":139550,"stem":139551,"subject":7701,"tags":139552,"__hash__":139553},"topics/kubernetes/services.md",{"type":8,"value":139439,"toc":139545},[139440,139442,139543],[11,139441,114629],{"id":56391},[25,139443,139445],{"className":27,"code":139444,"language":29,"meta":30,"style":30},"# List services\nkubectl get services\n\n# Expose deployment as service\nkubectl expose deployment \u003Cname> --port=80 --type=LoadBalancer\n\n# Get service details\nkubectl describe service \u003Cname>\n\n# Delete service\nkubectl delete service \u003Cname>\n",[20,139446,139447,139451,139460,139464,139469,139492,139496,139501,139518,139522,139527],{"__ignoreMap":30},[34,139448,139449],{"class":36,"line":37},[34,139450,92350],{"class":40},[34,139452,139453,139455,139457],{"class":36,"line":44},[34,139454,7074],{"class":47},[34,139456,7173],{"class":54},[34,139458,139459],{"class":54}," services\n",[34,139461,139462],{"class":36,"line":58},[34,139463,62],{"emptyLinePlaceholder":61},[34,139465,139466],{"class":36,"line":65},[34,139467,139468],{"class":40},"# Expose deployment as service\n",[34,139470,139471,139473,139476,139478,139480,139482,139484,139486,139489],{"class":36,"line":71},[34,139472,7074],{"class":47},[34,139474,139475],{"class":54}," expose",[34,139477,138568],{"class":54},[34,139479,5470],{"class":580},[34,139481,56907],{"class":54},[34,139483,5476],{"class":181},[34,139485,5691],{"class":580},[34,139487,139488],{"class":50}," --port=80",[34,139490,139491],{"class":50}," --type=LoadBalancer\n",[34,139493,139494],{"class":36,"line":77},[34,139495,62],{"emptyLinePlaceholder":61},[34,139497,139498],{"class":36,"line":82},[34,139499,139500],{"class":40},"# Get service details\n",[34,139502,139503,139505,139507,139510,139512,139514,139516],{"class":36,"line":88},[34,139504,7074],{"class":47},[34,139506,92381],{"class":54},[34,139508,139509],{"class":54}," service",[34,139511,5470],{"class":580},[34,139513,56907],{"class":54},[34,139515,5476],{"class":181},[34,139517,1248],{"class":580},[34,139519,139520],{"class":36,"line":242},[34,139521,62],{"emptyLinePlaceholder":61},[34,139523,139524],{"class":36,"line":250},[34,139525,139526],{"class":40},"# Delete service\n",[34,139528,139529,139531,139533,139535,139537,139539,139541],{"class":36,"line":263},[34,139530,7074],{"class":47},[34,139532,9562],{"class":54},[34,139534,139509],{"class":54},[34,139536,5470],{"class":580},[34,139538,56907],{"class":54},[34,139540,5476],{"class":181},[34,139542,1248],{"class":580},[388,139544,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":139546},[139547],{"id":56391,"depth":44,"text":114629},"Services in Kubernetes.",{},{"title":114629,"description":139548},"kubernetes/services",[7701,138135,30382,5438,138136],"JQiU-sOWDnABd0W3v9kcnZN9aIjdMMJOCO3UQlPdxmM",{"id":139555,"title":138997,"body":139556,"date":402,"description":139935,"extension":404,"meta":139936,"navigation":61,"order":250,"path":138996,"seo":139937,"stem":139938,"subject":7701,"tags":139939,"__hash__":139940},"topics/kubernetes/yaml-templates.md",{"type":8,"value":139557,"toc":139932},[139558,139561,139672,139831,139930],[11,139559,138997],{"id":139560},"yaml-templates",[25,139562,139564],{"className":168,"code":139563,"language":170,"meta":30,"style":30},"# Pod template\napiVersion: v1\nkind: Pod\nmetadata:\n  name: my-pod\n  labels:\n    app: myapp\nspec:\n  containers:\n  - name: my-container\n    image: nginx:latest\n    ports:\n    - containerPort: 80\n",[20,139565,139566,139571,139580,139589,139595,139604,139611,139621,139627,139634,139645,139654,139660],{"__ignoreMap":30},[34,139567,139568],{"class":36,"line":37},[34,139569,139570],{"class":40},"# Pod template\n",[34,139572,139573,139575,139577],{"class":36,"line":44},[34,139574,7323],{"class":177},[34,139576,182],{"class":181},[34,139578,139579],{"class":54},"v1\n",[34,139581,139582,139584,139586],{"class":36,"line":58},[34,139583,7333],{"class":177},[34,139585,182],{"class":181},[34,139587,139588],{"class":54},"Pod\n",[34,139590,139591,139593],{"class":36,"line":65},[34,139592,7343],{"class":177},[34,139594,193],{"class":181},[34,139596,139597,139599,139601],{"class":36,"line":71},[34,139598,7350],{"class":177},[34,139600,182],{"class":181},[34,139602,139603],{"class":54},"my-pod\n",[34,139605,139606,139609],{"class":36,"line":77},[34,139607,139608],{"class":177},"  labels",[34,139610,193],{"class":181},[34,139612,139613,139616,139618],{"class":36,"line":82},[34,139614,139615],{"class":177},"    app",[34,139617,182],{"class":181},[34,139619,139620],{"class":54},"myapp\n",[34,139622,139623,139625],{"class":36,"line":88},[34,139624,7370],{"class":177},[34,139626,193],{"class":181},[34,139628,139629,139632],{"class":36,"line":242},[34,139630,139631],{"class":177},"  containers",[34,139633,193],{"class":181},[34,139635,139636,139638,139640,139642],{"class":36,"line":250},[34,139637,46644],{"class":181},[34,139639,178],{"class":177},[34,139641,182],{"class":181},[34,139643,139644],{"class":54},"my-container\n",[34,139646,139647,139649,139651],{"class":36,"line":263},[34,139648,56503],{"class":177},[34,139650,182],{"class":181},[34,139652,139653],{"class":54},"nginx:latest\n",[34,139655,139656,139658],{"class":36,"line":275},[34,139657,56415],{"class":177},[34,139659,193],{"class":181},[34,139661,139662,139664,139667,139669],{"class":36,"line":700},[34,139663,5120],{"class":181},[34,139665,139666],{"class":177},"containerPort",[34,139668,182],{"class":181},[34,139670,139671],{"class":50},"80\n",[25,139673,139675],{"className":168,"code":139674,"language":170,"meta":30,"style":30},"# Deployment template\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: my-deployment\nspec:\n  replicas: 3\n  selector:\n    matchLabels:\n      app: myapp\n  template:\n    metadata:\n      labels:\n        app: myapp\n    spec:\n      containers:\n      - name: my-container\n        image: nginx:latest\n        ports:\n        - containerPort: 80\n",[20,139676,139677,139682,139690,139698,139704,139713,139719,139728,139735,139742,139751,139758,139765,139772,139781,139787,139794,139804,139813,139820],{"__ignoreMap":30},[34,139678,139679],{"class":36,"line":37},[34,139680,139681],{"class":40},"# Deployment template\n",[34,139683,139684,139686,139688],{"class":36,"line":44},[34,139685,7323],{"class":177},[34,139687,182],{"class":181},[34,139689,91000],{"class":54},[34,139691,139692,139694,139696],{"class":36,"line":58},[34,139693,7333],{"class":177},[34,139695,182],{"class":181},[34,139697,91010],{"class":54},[34,139699,139700,139702],{"class":36,"line":65},[34,139701,7343],{"class":177},[34,139703,193],{"class":181},[34,139705,139706,139708,139710],{"class":36,"line":71},[34,139707,7350],{"class":177},[34,139709,182],{"class":181},[34,139711,139712],{"class":54},"my-deployment\n",[34,139714,139715,139717],{"class":36,"line":77},[34,139716,7370],{"class":177},[34,139718,193],{"class":181},[34,139720,139721,139724,139726],{"class":36,"line":82},[34,139722,139723],{"class":177},"  replicas",[34,139725,182],{"class":181},[34,139727,108452],{"class":50},[34,139729,139730,139733],{"class":36,"line":88},[34,139731,139732],{"class":177},"  selector",[34,139734,193],{"class":181},[34,139736,139737,139740],{"class":36,"line":242},[34,139738,139739],{"class":177},"    matchLabels",[34,139741,193],{"class":181},[34,139743,139744,139747,139749],{"class":36,"line":250},[34,139745,139746],{"class":177},"      app",[34,139748,182],{"class":181},[34,139750,139620],{"class":54},[34,139752,139753,139756],{"class":36,"line":263},[34,139754,139755],{"class":177},"  template",[34,139757,193],{"class":181},[34,139759,139760,139763],{"class":36,"line":275},[34,139761,139762],{"class":177},"    metadata",[34,139764,193],{"class":181},[34,139766,139767,139770],{"class":36,"line":700},[34,139768,139769],{"class":177},"      labels",[34,139771,193],{"class":181},[34,139773,139774,139777,139779],{"class":36,"line":706},[34,139775,139776],{"class":177},"        app",[34,139778,182],{"class":181},[34,139780,139620],{"class":54},[34,139782,139783,139785],{"class":36,"line":715},[34,139784,91109],{"class":177},[34,139786,193],{"class":181},[34,139788,139789,139792],{"class":36,"line":725},[34,139790,139791],{"class":177},"      containers",[34,139793,193],{"class":181},[34,139795,139796,139798,139800,139802],{"class":36,"line":734},[34,139797,212],{"class":181},[34,139799,178],{"class":177},[34,139801,182],{"class":181},[34,139803,139644],{"class":54},[34,139805,139806,139809,139811],{"class":36,"line":742},[34,139807,139808],{"class":177},"        image",[34,139810,182],{"class":181},[34,139812,139653],{"class":54},[34,139814,139815,139818],{"class":36,"line":748},[34,139816,139817],{"class":177},"        ports",[34,139819,193],{"class":181},[34,139821,139822,139825,139827,139829],{"class":36,"line":754},[34,139823,139824],{"class":181},"        - ",[34,139826,139666],{"class":177},[34,139828,182],{"class":181},[34,139830,139671],{"class":50},[25,139832,139834],{"className":168,"code":139833,"language":170,"meta":30,"style":30},"# Service template\napiVersion: v1\nkind: Service\nmetadata:\n  name: my-service\nspec:\n  selector:\n    app: myapp\n  ports:\n  - port: 80\n    targetPort: 80\n  type: ClusterIP\n",[20,139835,139836,139841,139849,139858,139864,139873,139879,139885,139893,139900,139911,139920],{"__ignoreMap":30},[34,139837,139838],{"class":36,"line":37},[34,139839,139840],{"class":40},"# Service template\n",[34,139842,139843,139845,139847],{"class":36,"line":44},[34,139844,7323],{"class":177},[34,139846,182],{"class":181},[34,139848,139579],{"class":54},[34,139850,139851,139853,139855],{"class":36,"line":58},[34,139852,7333],{"class":177},[34,139854,182],{"class":181},[34,139856,139857],{"class":54},"Service\n",[34,139859,139860,139862],{"class":36,"line":65},[34,139861,7343],{"class":177},[34,139863,193],{"class":181},[34,139865,139866,139868,139870],{"class":36,"line":71},[34,139867,7350],{"class":177},[34,139869,182],{"class":181},[34,139871,139872],{"class":54},"my-service\n",[34,139874,139875,139877],{"class":36,"line":77},[34,139876,7370],{"class":177},[34,139878,193],{"class":181},[34,139880,139881,139883],{"class":36,"line":82},[34,139882,139732],{"class":177},[34,139884,193],{"class":181},[34,139886,139887,139889,139891],{"class":36,"line":88},[34,139888,139615],{"class":177},[34,139890,182],{"class":181},[34,139892,139620],{"class":54},[34,139894,139895,139898],{"class":36,"line":242},[34,139896,139897],{"class":177},"  ports",[34,139899,193],{"class":181},[34,139901,139902,139904,139907,139909],{"class":36,"line":250},[34,139903,46644],{"class":181},[34,139905,139906],{"class":177},"port",[34,139908,182],{"class":181},[34,139910,139671],{"class":50},[34,139912,139913,139916,139918],{"class":36,"line":263},[34,139914,139915],{"class":177},"    targetPort",[34,139917,182],{"class":181},[34,139919,139671],{"class":50},[34,139921,139922,139925,139927],{"class":36,"line":275},[34,139923,139924],{"class":177},"  type",[34,139926,182],{"class":181},[34,139928,139929],{"class":54},"ClusterIP\n",[388,139931,56618],{},{"title":30,"searchDepth":44,"depth":44,"links":139933},[139934],{"id":139560,"depth":44,"text":138997},"YAML Templates in Kubernetes.",{},{"title":138997,"description":139935},"kubernetes/yaml-templates",[7701,138135,30382,5438,138136],"A0p-7ZpncCzsHUP9hdwZLA0rD-m1QqxdExY03Zsrxug",{"id":139942,"title":139943,"body":139944,"date":402,"description":140875,"extension":404,"meta":140876,"navigation":61,"order":37,"path":140877,"seo":140878,"stem":140879,"subject":140880,"tags":140881,"__hash__":140882},"topics/laravel/overview.md","Laravel",{"type":8,"value":139945,"toc":140864},[139946,139948,139951,140039,140043,140046,140160,140164,140167,140265,140267,140270,140431,140435,140438,140540,140542,140545,140628,140630,140633,140709,140713,140716,140773,140777,140780,140861],[11,139947,2614],{"id":3256},[16,139949,139950],{},"Routing in Laravel allows you to define application routes. You can group routes, add middlewares, and even name them for easier reference.",[25,139952,139956],{"className":139953,"code":139954,"language":139955,"meta":30,"style":30},"language-php shiki shiki-themes github-light github-dark","use Illuminate\\Support\\Facades\\Route;\n\nRoute::get('/welcome', function () {\n    return view('welcome');\n}); // Defines a GET route to serve the welcome view\n\nRoute::post('/submit', 'FormController@submit'); // POST route for processing form submission\n","php",[20,139957,139958,139967,139971,139992,140005,140013,140017],{"__ignoreMap":30},[34,139959,139960,139962,139965],{"class":36,"line":37},[34,139961,61898],{"class":580},[34,139963,139964],{"class":50}," Illuminate\\Support\\Facades\\Route",[34,139966,593],{"class":181},[34,139968,139969],{"class":36,"line":44},[34,139970,62],{"emptyLinePlaceholder":61},[34,139972,139973,139976,139978,139980,139982,139985,139987,139989],{"class":36,"line":58},[34,139974,139975],{"class":50},"Route",[34,139977,30110],{"class":580},[34,139979,1573],{"class":47},[34,139981,1607],{"class":181},[34,139983,139984],{"class":54},"'/welcome'",[34,139986,1798],{"class":181},[34,139988,11044],{"class":580},[34,139990,139991],{"class":181}," () {\n",[34,139993,139994,139996,139998,140000,140003],{"class":36,"line":65},[34,139995,1564],{"class":580},[34,139997,92679],{"class":47},[34,139999,1607],{"class":181},[34,140001,140002],{"class":54},"'welcome'",[34,140004,1586],{"class":181},[34,140006,140007,140010],{"class":36,"line":71},[34,140008,140009],{"class":181},"}); ",[34,140011,140012],{"class":40},"// Defines a GET route to serve the welcome view\n",[34,140014,140015],{"class":36,"line":77},[34,140016,62],{"emptyLinePlaceholder":61},[34,140018,140019,140021,140023,140025,140027,140029,140031,140034,140036],{"class":36,"line":82},[34,140020,139975],{"class":50},[34,140022,30110],{"class":580},[34,140024,1730],{"class":47},[34,140026,1607],{"class":181},[34,140028,90462],{"class":54},[34,140030,1798],{"class":181},[34,140032,140033],{"class":54},"'FormController@submit'",[34,140035,8260],{"class":181},[34,140037,140038],{"class":40},"// POST route for processing form submission\n",[11,140040,140042],{"id":140041},"controllers","Controllers",[16,140044,140045],{},"Controllers in Laravel help group related request handling logic into single classes.",[25,140047,140049],{"className":139953,"code":140048,"language":139955,"meta":30,"style":30},"namespace App\\Http\\Controllers;\n\nuse Illuminate\\Http\\Request;\n\nclass WelcomeController extends Controller\n{\n    public function show() {\n        return view('welcome');\n    }\n}\n\n// Registering the controller in routes\nRoute::get('/welcome', [WelcomeController::class, 'show']);\n",[20,140050,140051,140061,140065,140074,140078,140090,140094,140104,140116,140120,140124,140128,140133],{"__ignoreMap":30},[34,140052,140053,140056,140059],{"class":36,"line":37},[34,140054,140055],{"class":580},"namespace",[34,140057,140058],{"class":47}," App\\Http\\Controllers",[34,140060,593],{"class":181},[34,140062,140063],{"class":36,"line":44},[34,140064,62],{"emptyLinePlaceholder":61},[34,140066,140067,140069,140072],{"class":36,"line":58},[34,140068,61898],{"class":580},[34,140070,140071],{"class":50}," Illuminate\\Http\\Request",[34,140073,593],{"class":181},[34,140075,140076],{"class":36,"line":65},[34,140077,62],{"emptyLinePlaceholder":61},[34,140079,140080,140082,140085,140087],{"class":36,"line":71},[34,140081,30060],{"class":580},[34,140083,140084],{"class":47}," WelcomeController",[34,140086,59185],{"class":580},[34,140088,140089],{"class":47}," Controller\n",[34,140091,140092],{"class":36,"line":77},[34,140093,25296],{"class":181},[34,140095,140096,140098,140100,140102],{"class":36,"line":82},[34,140097,34159],{"class":580},[34,140099,8037],{"class":580},[34,140101,6558],{"class":47},[34,140103,836],{"class":181},[34,140105,140106,140108,140110,140112,140114],{"class":36,"line":88},[34,140107,13895],{"class":580},[34,140109,92679],{"class":47},[34,140111,1607],{"class":181},[34,140113,140002],{"class":54},[34,140115,1586],{"class":181},[34,140117,140118],{"class":36,"line":242},[34,140119,3229],{"class":181},[34,140121,140122],{"class":36,"line":250},[34,140123,693],{"class":181},[34,140125,140126],{"class":36,"line":263},[34,140127,62],{"emptyLinePlaceholder":61},[34,140129,140130],{"class":36,"line":275},[34,140131,140132],{"class":40},"// Registering the controller in routes\n",[34,140134,140135,140137,140139,140141,140143,140145,140147,140150,140153,140155,140158],{"class":36,"line":700},[34,140136,139975],{"class":50},[34,140138,30110],{"class":580},[34,140140,1573],{"class":47},[34,140142,1607],{"class":181},[34,140144,139984],{"class":54},[34,140146,66646],{"class":181},[34,140148,140149],{"class":50},"WelcomeController",[34,140151,140152],{"class":580},"::class",[34,140154,1798],{"class":181},[34,140156,140157],{"class":54},"'show'",[34,140159,3599],{"class":181},[11,140161,140163],{"id":140162},"models-eloquent-orm","Models & Eloquent ORM",[16,140165,140166],{},"Eloquent provides a beautiful Active Record implementation for working with your database.",[25,140168,140170],{"className":139953,"code":140169,"language":139955,"meta":30,"style":30},"namespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass User extends Model\n{\n    protected $fillable = ['name', 'email', 'password'];\n}\n\n// Fetching all users\n$users = User::all();\n",[20,140171,140172,140181,140185,140194,140198,140209,140213,140237,140241,140245,140250],{"__ignoreMap":30},[34,140173,140174,140176,140179],{"class":36,"line":37},[34,140175,140055],{"class":580},[34,140177,140178],{"class":47}," App\\Models",[34,140180,593],{"class":181},[34,140182,140183],{"class":36,"line":44},[34,140184,62],{"emptyLinePlaceholder":61},[34,140186,140187,140189,140192],{"class":36,"line":58},[34,140188,61898],{"class":580},[34,140190,140191],{"class":50}," Illuminate\\Database\\Eloquent\\Model",[34,140193,593],{"class":181},[34,140195,140196],{"class":36,"line":65},[34,140197,62],{"emptyLinePlaceholder":61},[34,140199,140200,140202,140204,140206],{"class":36,"line":71},[34,140201,30060],{"class":580},[34,140203,3950],{"class":47},[34,140205,59185],{"class":580},[34,140207,140208],{"class":47}," Model\n",[34,140210,140211],{"class":36,"line":77},[34,140212,25296],{"class":181},[34,140214,140215,140217,140220,140222,140224,140226,140228,140230,140232,140235],{"class":36,"line":82},[34,140216,35140],{"class":580},[34,140218,140219],{"class":181}," $fillable ",[34,140221,1301],{"class":580},[34,140223,8315],{"class":181},[34,140225,71318],{"class":54},[34,140227,1798],{"class":181},[34,140229,71323],{"class":54},[34,140231,1798],{"class":181},[34,140233,140234],{"class":54},"'password'",[34,140236,3415],{"class":181},[34,140238,140239],{"class":36,"line":88},[34,140240,693],{"class":181},[34,140242,140243],{"class":36,"line":242},[34,140244,62],{"emptyLinePlaceholder":61},[34,140246,140247],{"class":36,"line":250},[34,140248,140249],{"class":40},"// Fetching all users\n",[34,140251,140252,140255,140257,140259,140261,140263],{"class":36,"line":263},[34,140253,140254],{"class":181},"$users ",[34,140256,1301],{"class":580},[34,140258,3950],{"class":50},[34,140260,30110],{"class":580},[34,140262,17175],{"class":47},[34,140264,851],{"class":181},[11,140266,74051],{"id":74050},[16,140268,140269],{},"Migrations allow you to define your database schema in PHP and manage changes easily.",[25,140271,140273],{"className":139953,"code":140272,"language":139955,"meta":30,"style":30},"use Illuminate\\Database\\Migrations\\Migration;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Support\\Facades\\Schema;\n\nclass CreateUsersTable extends Migration\n{\n    public function up()\n    {\n        Schema::create('users', function (Blueprint $table) {\n            $table->id();\n            $table->string('name');\n            $table->string('email')->unique();\n            $table->timestamps();\n        });\n    }\n}\n",[20,140274,140275,140284,140293,140302,140306,140318,140322,140332,140336,140361,140372,140386,140407,140418,140423,140427],{"__ignoreMap":30},[34,140276,140277,140279,140282],{"class":36,"line":37},[34,140278,61898],{"class":580},[34,140280,140281],{"class":50}," Illuminate\\Database\\Migrations\\Migration",[34,140283,593],{"class":181},[34,140285,140286,140288,140291],{"class":36,"line":44},[34,140287,61898],{"class":580},[34,140289,140290],{"class":50}," Illuminate\\Database\\Schema\\Blueprint",[34,140292,593],{"class":181},[34,140294,140295,140297,140300],{"class":36,"line":58},[34,140296,61898],{"class":580},[34,140298,140299],{"class":50}," Illuminate\\Support\\Facades\\Schema",[34,140301,593],{"class":181},[34,140303,140304],{"class":36,"line":65},[34,140305,62],{"emptyLinePlaceholder":61},[34,140307,140308,140310,140313,140315],{"class":36,"line":71},[34,140309,30060],{"class":580},[34,140311,140312],{"class":47}," CreateUsersTable",[34,140314,59185],{"class":580},[34,140316,140317],{"class":47}," Migration\n",[34,140319,140320],{"class":36,"line":77},[34,140321,25296],{"class":181},[34,140323,140324,140326,140328,140330],{"class":36,"line":82},[34,140325,34159],{"class":580},[34,140327,8037],{"class":580},[34,140329,55764],{"class":47},[34,140331,33899],{"class":181},[34,140333,140334],{"class":36,"line":88},[34,140335,25561],{"class":181},[34,140337,140338,140341,140343,140345,140347,140349,140351,140353,140355,140358],{"class":36,"line":242},[34,140339,140340],{"class":50},"        Schema",[34,140342,30110],{"class":580},[34,140344,72666],{"class":47},[34,140346,1607],{"class":181},[34,140348,71301],{"class":54},[34,140350,1798],{"class":181},[34,140352,11044],{"class":580},[34,140354,3204],{"class":181},[34,140356,140357],{"class":50},"Blueprint",[34,140359,140360],{"class":181}," $table) {\n",[34,140362,140363,140366,140368,140370],{"class":36,"line":250},[34,140364,140365],{"class":181},"            $table",[34,140367,24863],{"class":580},[34,140369,3885],{"class":47},[34,140371,851],{"class":181},[34,140373,140374,140376,140378,140380,140382,140384],{"class":36,"line":263},[34,140375,140365],{"class":181},[34,140377,24863],{"class":580},[34,140379,30113],{"class":47},[34,140381,1607],{"class":181},[34,140383,71318],{"class":54},[34,140385,1586],{"class":181},[34,140387,140388,140390,140392,140394,140396,140398,140400,140402,140405],{"class":36,"line":275},[34,140389,140365],{"class":181},[34,140391,24863],{"class":580},[34,140393,30113],{"class":47},[34,140395,1607],{"class":181},[34,140397,71323],{"class":54},[34,140399,1617],{"class":181},[34,140401,24863],{"class":580},[34,140403,140404],{"class":47},"unique",[34,140406,851],{"class":181},[34,140408,140409,140411,140413,140416],{"class":36,"line":700},[34,140410,140365],{"class":181},[34,140412,24863],{"class":580},[34,140414,140415],{"class":47},"timestamps",[34,140417,851],{"class":181},[34,140419,140420],{"class":36,"line":706},[34,140421,140422],{"class":181},"        });\n",[34,140424,140425],{"class":36,"line":715},[34,140426,3229],{"class":181},[34,140428,140429],{"class":36,"line":725},[34,140430,693],{"class":181},[11,140432,140434],{"id":140433},"blade-templates","Blade Templates",[16,140436,140437],{},"Blade is the templating engine for Laravel, enabling you to write clean, reusable HTML with dynamic components.",[25,140439,140441],{"className":139953,"code":140440,"language":139955,"meta":30,"style":30},"\u003C!-- Blade example -->\n@if (Auth::check())\n    \u003Cp>Welcome, {{ Auth::user()->name }}!\u003C/p>\n@else\n    \u003Cp>Please log in.\u003C/p>\n@endif\n",[20,140442,140443,140456,140473,140507,140512,140535],{"__ignoreMap":30},[34,140444,140445,140448,140451,140453],{"class":36,"line":37},[34,140446,140447],{"class":580},"\u003C!--",[34,140449,140450],{"class":50}," Blade",[34,140452,105256],{"class":50},[34,140454,140455],{"class":580}," -->\n",[34,140457,140458,140461,140463,140466,140468,140471],{"class":36,"line":44},[34,140459,140460],{"class":580},"@if",[34,140462,3204],{"class":181},[34,140464,140465],{"class":50},"Auth",[34,140467,30110],{"class":580},[34,140469,140470],{"class":47},"check",[34,140472,62281],{"class":181},[34,140474,140475,140477,140479,140481,140484,140487,140489,140491,140493,140495,140497,140500,140503,140505],{"class":36,"line":58},[34,140476,1294],{"class":580},[34,140478,16],{"class":50},[34,140480,5691],{"class":580},[34,140482,140483],{"class":50},"Welcome",[34,140485,140486],{"class":181},", {{ ",[34,140488,140465],{"class":50},[34,140490,30110],{"class":580},[34,140492,3945],{"class":47},[34,140494,1546],{"class":181},[34,140496,24863],{"class":580},[34,140498,140499],{"class":181},"name }}",[34,140501,140502],{"class":580},"!\u003C/",[34,140504,16],{"class":50},[34,140506,1248],{"class":580},[34,140508,140509],{"class":36,"line":65},[34,140510,140511],{"class":580},"@else\n",[34,140513,140514,140516,140518,140520,140523,140525,140527,140529,140531,140533],{"class":36,"line":71},[34,140515,1294],{"class":580},[34,140517,16],{"class":50},[34,140519,5691],{"class":580},[34,140521,140522],{"class":50},"Please",[34,140524,100651],{"class":50},[34,140526,36375],{"class":50},[34,140528,151],{"class":580},[34,140530,2089],{"class":580},[34,140532,16],{"class":50},[34,140534,1248],{"class":580},[34,140536,140537],{"class":36,"line":77},[34,140538,140539],{"class":580},"@endif\n",[11,140541,76171],{"id":76170},[16,140543,140544],{},"Middleware provide a way for filtering HTTP requests entering your application.",[25,140546,140548],{"className":139953,"code":140547,"language":139955,"meta":30,"style":30},"// Creating Middleware\nphp artisan make:middleware EnsureUserIsAdmin\n\n// Using Middleware\nRoute::get('/admin', function () {\n    return view('admin.panel');\n})->middleware('EnsureUserIsAdmin');\n",[20,140549,140550,140555,140571,140575,140580,140599,140612],{"__ignoreMap":30},[34,140551,140552],{"class":36,"line":37},[34,140553,140554],{"class":40},"// Creating Middleware\n",[34,140556,140557,140559,140562,140564,140566,140568],{"class":36,"line":44},[34,140558,139955],{"class":50},[34,140560,140561],{"class":50}," artisan",[34,140563,103650],{"class":50},[34,140565,165],{"class":181},[34,140567,76170],{"class":50},[34,140569,140570],{"class":50}," EnsureUserIsAdmin\n",[34,140572,140573],{"class":36,"line":58},[34,140574,62],{"emptyLinePlaceholder":61},[34,140576,140577],{"class":36,"line":65},[34,140578,140579],{"class":40},"// Using Middleware\n",[34,140581,140582,140584,140586,140588,140590,140593,140595,140597],{"class":36,"line":71},[34,140583,139975],{"class":50},[34,140585,30110],{"class":580},[34,140587,1573],{"class":47},[34,140589,1607],{"class":181},[34,140591,140592],{"class":54},"'/admin'",[34,140594,1798],{"class":181},[34,140596,11044],{"class":580},[34,140598,139991],{"class":181},[34,140600,140601,140603,140605,140607,140610],{"class":36,"line":77},[34,140602,1564],{"class":580},[34,140604,92679],{"class":47},[34,140606,1607],{"class":181},[34,140608,140609],{"class":54},"'admin.panel'",[34,140611,1586],{"class":181},[34,140613,140614,140617,140619,140621,140623,140626],{"class":36,"line":82},[34,140615,140616],{"class":181},"})",[34,140618,24863],{"class":580},[34,140620,76170],{"class":47},[34,140622,1607],{"class":181},[34,140624,140625],{"class":54},"'EnsureUserIsAdmin'",[34,140627,1586],{"class":181},[11,140629,9362],{"id":9361},[16,140631,140632],{},"Authentication in Laravel supports user registration, login, and password resets out of the box.",[25,140634,140636],{"className":139953,"code":140635,"language":139955,"meta":30,"style":30},"php artisan make:auth // Scaffold your authentication system\n\n// Protect routes\nRoute::get('/dashboard', function () {\n    return view('dashboard');\n})->middleware('auth');\n",[20,140637,140638,140653,140657,140662,140681,140694],{"__ignoreMap":30},[34,140639,140640,140642,140644,140646,140648,140650],{"class":36,"line":37},[34,140641,139955],{"class":50},[34,140643,140561],{"class":50},[34,140645,103650],{"class":50},[34,140647,165],{"class":181},[34,140649,94859],{"class":50},[34,140651,140652],{"class":40}," // Scaffold your authentication system\n",[34,140654,140655],{"class":36,"line":44},[34,140656,62],{"emptyLinePlaceholder":61},[34,140658,140659],{"class":36,"line":58},[34,140660,140661],{"class":40},"// Protect routes\n",[34,140663,140664,140666,140668,140670,140672,140675,140677,140679],{"class":36,"line":65},[34,140665,139975],{"class":50},[34,140667,30110],{"class":580},[34,140669,1573],{"class":47},[34,140671,1607],{"class":181},[34,140673,140674],{"class":54},"'/dashboard'",[34,140676,1798],{"class":181},[34,140678,11044],{"class":580},[34,140680,139991],{"class":181},[34,140682,140683,140685,140687,140689,140692],{"class":36,"line":71},[34,140684,1564],{"class":580},[34,140686,92679],{"class":47},[34,140688,1607],{"class":181},[34,140690,140691],{"class":54},"'dashboard'",[34,140693,1586],{"class":181},[34,140695,140696,140698,140700,140702,140704,140707],{"class":36,"line":77},[34,140697,140616],{"class":181},[34,140699,24863],{"class":580},[34,140701,76170],{"class":47},[34,140703,1607],{"class":181},[34,140705,140706],{"class":54},"'auth'",[34,140708,1586],{"class":181},[11,140710,140712],{"id":140711},"artisan-cli","Artisan CLI",[16,140714,140715],{},"Artisan is Laravel's command-line interface, providing useful commands for app development.",[25,140717,140719],{"className":27,"code":140718,"language":29,"meta":30,"style":30},"# List all artisan commands\nphp artisan list\n\n# Clear application cache\nphp artisan cache:clear\n\n# Create a new controller\nphp artisan make:controller UserController\n",[20,140720,140721,140726,140734,140738,140743,140752,140756,140761],{"__ignoreMap":30},[34,140722,140723],{"class":36,"line":37},[34,140724,140725],{"class":40},"# List all artisan commands\n",[34,140727,140728,140730,140732],{"class":36,"line":44},[34,140729,139955],{"class":47},[34,140731,140561],{"class":54},[34,140733,7536],{"class":54},[34,140735,140736],{"class":36,"line":58},[34,140737,62],{"emptyLinePlaceholder":61},[34,140739,140740],{"class":36,"line":65},[34,140741,140742],{"class":40},"# Clear application cache\n",[34,140744,140745,140747,140749],{"class":36,"line":71},[34,140746,139955],{"class":47},[34,140748,140561],{"class":54},[34,140750,140751],{"class":54}," cache:clear\n",[34,140753,140754],{"class":36,"line":77},[34,140755,62],{"emptyLinePlaceholder":61},[34,140757,140758],{"class":36,"line":82},[34,140759,140760],{"class":40},"# Create a new controller\n",[34,140762,140763,140765,140767,140770],{"class":36,"line":88},[34,140764,139955],{"class":47},[34,140766,140561],{"class":54},[34,140768,140769],{"class":54}," make:controller",[34,140771,140772],{"class":54}," UserController\n",[11,140774,140776],{"id":140775},"queues","Queues",[16,140778,140779],{},"Queues in Laravel allow you to defer the execution of a time-intensive task to improve the overall speed of the application.",[25,140781,140783],{"className":139953,"code":140782,"language":139955,"meta":30,"style":30},"use App\\Jobs\\ProcessOrder;\n\nProcessOrder::dispatch($order); // Dispatches the job\n\nclass ProcessOrder implements ShouldQueue\n{\n    public function handle()\n    {\n        // Task execution logic\n    }\n}\n",[20,140784,140785,140794,140798,140814,140818,140830,140834,140844,140848,140853,140857],{"__ignoreMap":30},[34,140786,140787,140789,140792],{"class":36,"line":37},[34,140788,61898],{"class":580},[34,140790,140791],{"class":50}," App\\Jobs\\ProcessOrder",[34,140793,593],{"class":181},[34,140795,140796],{"class":36,"line":44},[34,140797,62],{"emptyLinePlaceholder":61},[34,140799,140800,140803,140805,140808,140811],{"class":36,"line":58},[34,140801,140802],{"class":50},"ProcessOrder",[34,140804,30110],{"class":580},[34,140806,140807],{"class":47},"dispatch",[34,140809,140810],{"class":181},"($order); ",[34,140812,140813],{"class":40},"// Dispatches the job\n",[34,140815,140816],{"class":36,"line":65},[34,140817,62],{"emptyLinePlaceholder":61},[34,140819,140820,140822,140825,140827],{"class":36,"line":71},[34,140821,30060],{"class":580},[34,140823,140824],{"class":47}," ProcessOrder",[34,140826,2334],{"class":580},[34,140828,140829],{"class":47}," ShouldQueue\n",[34,140831,140832],{"class":36,"line":77},[34,140833,25296],{"class":181},[34,140835,140836,140838,140840,140842],{"class":36,"line":82},[34,140837,34159],{"class":580},[34,140839,8037],{"class":580},[34,140841,137054],{"class":47},[34,140843,33899],{"class":181},[34,140845,140846],{"class":36,"line":88},[34,140847,25561],{"class":181},[34,140849,140850],{"class":36,"line":242},[34,140851,140852],{"class":40},"        // Task execution logic\n",[34,140854,140855],{"class":36,"line":250},[34,140856,3229],{"class":181},[34,140858,140859],{"class":36,"line":263},[34,140860,693],{"class":181},[388,140862,140863],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":30,"searchDepth":44,"depth":44,"links":140865},[140866,140867,140868,140869,140870,140871,140872,140873,140874],{"id":3256,"depth":44,"text":2614},{"id":140041,"depth":44,"text":140042},{"id":140162,"depth":44,"text":140163},{"id":74050,"depth":44,"text":74051},{"id":140433,"depth":44,"text":140434},{"id":76170,"depth":44,"text":76171},{"id":9361,"depth":44,"text":9362},{"id":140711,"depth":44,"text":140712},{"id":140775,"depth":44,"text":140776},"A PHP web framework with expressive syntax for building modern web applications.",{},"/laravel/overview",{"title":139943,"description":140875},"laravel/overview","laravel",[140880,139955,46870,8605],"rG5j_8kW9Mdch23CGYyg5gDnJ2ErRW0ZWan-wKb7sgI",{"id":140884,"title":140885,"body":140886,"date":402,"description":140938,"extension":404,"meta":140939,"navigation":61,"order":37,"path":140940,"seo":140941,"stem":140942,"subject":140943,"tags":140944,"__hash__":140946},"topics/lazygit/overview.md","Lazygit Essentials",{"type":8,"value":140887,"toc":140933},[140888,140892,140895,140901,140907,140911,140914,140920,140924,140927],[11,140889,140891],{"id":140890},"getting-started-with-lazygit","Getting Started with Lazygit",[16,140893,140894],{},"Lazygit simplifies the Git workflow with a terminal-based UI.",[25,140896,140899],{"className":140897,"code":140898,"language":780},[13703],"# Run lazygit in a Git repository\nlazygit\n",[20,140900,140898],{"__ignoreMap":30},[16,140902,140903,140904,151],{},"Navigate with arrow keys and confirm with ",[20,140905,140906],{},"Enter",[11,140908,140910],{"id":140909},"key-shortcuts","Key Shortcuts",[16,140912,140913],{},"Key shortcuts enable quick operations:",[25,140915,140918],{"className":140916,"code":140917,"language":780},[13703],"a - Stage all changes\nd - Discard changes\nc - Commit staged changes\n",[20,140919,140917],{"__ignoreMap":30},[11,140921,140923],{"id":140922},"viewing-logshistory","Viewing Logs/History",[16,140925,140926],{},"Quick navigation through the commit history:",[25,140928,140931],{"className":140929,"code":140930,"language":780},[13703],"lazygit --log\nSee logs built with full structure.\n",[20,140932,140930],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":140934},[140935,140936,140937],{"id":140890,"depth":44,"text":140891},{"id":140909,"depth":44,"text":140910},{"id":140922,"depth":44,"text":140923},"A quick reference guide for mastering Lazygit, a simple terminal UI for Git commands.",{},"/lazygit/overview",{"title":140885,"description":140938},"lazygit/overview","lazygit",[140943,7794,140945,100703],"terminal-cli","TQ-ozPUvdJhpKZGq5I86Od2fIHHoMFLbapiogOXNIVE",{"id":140948,"title":140949,"body":140950,"date":402,"description":141165,"extension":404,"meta":141166,"navigation":61,"order":37,"path":141167,"seo":141168,"stem":141169,"subject":141170,"tags":141171,"__hash__":141173},"topics/lefthook/overview.md","Lefthook",{"type":8,"value":140951,"toc":141156},[140952,140954,140957,140959,140979,140981,140984,140988,140992,141007,141011,141027,141031,141045,141049,141062,141066,141079,141081,141088,141138,141142,141153],[11,140953,13534],{"id":13533},[16,140955,140956],{},"Lefthook is a Git hooks manager that helps developers easily manage and automate Git hook tasks efficiently. With its speed and flexibility, Lefthook stands out as a reliable tool for teams.",[11,140958,8498],{"id":8497},[309,140960,140961,140967,140973],{},[312,140962,140963,140966],{},[8471,140964,140965],{},"Fast and Parallel Execution:"," Run multiple tasks in parallel to save time.",[312,140968,140969,140972],{},[8471,140970,140971],{},"Ease of Configuration:"," Support for different config file formats such as YAML, TOML, JSON.",[312,140974,140975,140978],{},[8471,140976,140977],{},"Team Collaboration:"," Option for local-only configs that don’t interfere with team workflows.",[11,140980,97],{"id":96},[16,140982,140983],{},"Lefthook distributes as a standalone, no-dependencies binary. Depending on your platform, choose one of the following methods:",[102,140985,140987],{"id":140986},"using-package-manager","Using Package Manager",[53543,140989,140991],{"id":140990},"ruby-gem","Ruby (gem):",[25,140993,140995],{"className":27,"code":140994,"language":29,"meta":30,"style":30},"gem install lefthook\n",[20,140996,140997],{"__ignoreMap":30},[34,140998,140999,141002,141004],{"class":36,"line":37},[34,141000,141001],{"class":47},"gem",[34,141003,118],{"class":54},[34,141005,141006],{"class":54}," lefthook\n",[53543,141008,141010],{"id":141009},"node-npm","Node (npm):",[25,141012,141014],{"className":27,"code":141013,"language":29,"meta":30,"style":30},"npm install -g @evilmartians/lefthook\n",[20,141015,141016],{"__ignoreMap":30},[34,141017,141018,141020,141022,141024],{"class":36,"line":37},[34,141019,8177],{"class":47},[34,141021,118],{"class":54},[34,141023,9753],{"class":50},[34,141025,141026],{"class":54}," @evilmartians/lefthook\n",[53543,141028,141030],{"id":141029},"go-go-install","Go (go install):",[25,141032,141034],{"className":27,"code":141033,"language":29,"meta":30,"style":30},"go install github.com/evilmartians/lefthook@latest\n",[20,141035,141036],{"__ignoreMap":30},[34,141037,141038,141040,141042],{"class":36,"line":37},[34,141039,103114],{"class":47},[34,141041,118],{"class":54},[34,141043,141044],{"class":54}," github.com/evilmartians/lefthook@latest\n",[53543,141046,141048],{"id":141047},"python-pip","Python (pip):",[25,141050,141052],{"className":27,"code":141051,"language":29,"meta":30,"style":30},"pip install lefthook\n",[20,141053,141054],{"__ignoreMap":30},[34,141055,141056,141058,141060],{"class":36,"line":37},[34,141057,4991],{"class":47},[34,141059,118],{"class":54},[34,141061,141006],{"class":54},[53543,141063,141065],{"id":141064},"swift-spm","Swift (SPM):",[25,141067,141069],{"className":27,"code":141068,"language":29,"meta":30,"style":30},"brew install lefthook\n",[20,141070,141071],{"__ignoreMap":30},[34,141072,141073,141075,141077],{"class":36,"line":37},[34,141074,115],{"class":47},[34,141076,118],{"class":54},[34,141078,141006],{"class":54},[11,141080,8686],{"id":558},[16,141082,141083,141084,141087],{},"Start with creating a ",[20,141085,141086],{},"lefthook.yml"," in the project root.",[25,141089,141091],{"className":168,"code":141090,"language":170,"meta":30,"style":30},"pre-commit:\n  parallel: true\n  jobs:\n    - run: yarn run lint\n    - run: yarn run test\n",[20,141092,141093,141100,141109,141116,141127],{"__ignoreMap":30},[34,141094,141095,141098],{"class":36,"line":37},[34,141096,141097],{"class":177},"pre-commit",[34,141099,193],{"class":181},[34,141101,141102,141105,141107],{"class":36,"line":44},[34,141103,141104],{"class":177},"  parallel",[34,141106,182],{"class":181},[34,141108,515],{"class":50},[34,141110,141111,141114],{"class":36,"line":58},[34,141112,141113],{"class":177},"  jobs",[34,141115,193],{"class":181},[34,141117,141118,141120,141122,141124],{"class":36,"line":65},[34,141119,5120],{"class":181},[34,141121,14592],{"class":177},[34,141123,182],{"class":181},[34,141125,141126],{"class":54},"yarn run lint\n",[34,141128,141129,141131,141133,141135],{"class":36,"line":71},[34,141130,5120],{"class":181},[34,141132,14592],{"class":177},[34,141134,182],{"class":181},[34,141136,141137],{"class":54},"yarn run test\n",[11,141139,141141],{"id":141140},"flexible-config-options","Flexible Config Options:",[309,141143,141144,141150],{},[312,141145,141146,141147],{},"Standardly situated ",[20,141148,141149],{},".lefthook.json",[312,141151,141152],{},"Multiple-tier with main-app integration complete.",[388,141154,141155],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":30,"searchDepth":44,"depth":44,"links":141157},[141158,141159,141160,141163,141164],{"id":13533,"depth":44,"text":13534},{"id":8497,"depth":44,"text":8498},{"id":96,"depth":44,"text":97,"children":141161},[141162],{"id":140986,"depth":58,"text":140987},{"id":558,"depth":44,"text":8686},{"id":141140,"depth":44,"text":141141},"Lefthook - A Git hooks manager known for its speed and power. Learn how to configure and install.",{},"/lefthook/overview",{"title":140949,"description":141165},"lefthook/overview","lefthook",[7794,120402,141172,141170],"manager","XjkNYIe_bHy2J809gVbCsXNk8dv2awGbRtLsFCclC24",{"id":141175,"title":141176,"body":141177,"date":402,"description":141266,"extension":404,"meta":141267,"navigation":61,"order":37,"path":141268,"seo":141269,"stem":141270,"subject":141271,"tags":141272,"__hash__":141276},"topics/lint-staged/overview.md","Lint-staged",{"type":8,"value":141178,"toc":141261},[141179,141181,141184,141222,141227,141229,141255,141258],[11,141180,14],{"id":13},[16,141182,141183],{},"Lint-staged helps control the quality of the code you commit to your repository by ensuring it conforms to specific linting rules automatically.",[25,141185,141187],{"className":28058,"code":141186,"language":14790,"meta":30,"style":30},"\"lint-staged\": {\n  \"*.js\": \"eslint --cache --fix\",\n  \"*.css\": \"stylelint --fix\"\n}\n",[20,141188,141189,141196,141208,141218],{"__ignoreMap":30},[34,141190,141191,141194],{"class":36,"line":37},[34,141192,141193],{"class":54},"\"lint-staged\"",[34,141195,28073],{"class":181},[34,141197,141198,141201,141203,141206],{"class":36,"line":44},[34,141199,141200],{"class":50},"  \"*.js\"",[34,141202,182],{"class":181},[34,141204,141205],{"class":54},"\"eslint --cache --fix\"",[34,141207,624],{"class":181},[34,141209,141210,141213,141215],{"class":36,"line":58},[34,141211,141212],{"class":50},"  \"*.css\"",[34,141214,182],{"class":181},[34,141216,141217],{"class":54},"\"stylelint --fix\"\n",[34,141219,141220],{"class":36,"line":65},[34,141221,693],{"class":181},[16,141223,141224],{},[8563,141225,141226],{},"This pre-commit hook setup lints JavaScript and CSS files.",[102,141228,97],{"id":96},[25,141230,141232],{"className":27,"code":141231,"language":29,"meta":30,"style":30},"npm install lint-staged -D\nnpm install husky -D\n",[20,141233,141234,141245],{"__ignoreMap":30},[34,141235,141236,141238,141240,141243],{"class":36,"line":37},[34,141237,8177],{"class":47},[34,141239,118],{"class":54},[34,141241,141242],{"class":54}," lint-staged",[34,141244,120160],{"class":50},[34,141246,141247,141249,141251,141253],{"class":36,"line":44},[34,141248,8177],{"class":47},[34,141250,118],{"class":54},[34,141252,29547],{"class":54},[34,141254,120160],{"class":50},[16,141256,141257],{},"_A minimal starter for elevating personal portafon practice ensuring creating super_lious redundancy duties_Apply.",[388,141259,141260],{},"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);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}",{"title":30,"searchDepth":44,"depth":44,"links":141262},[141263],{"id":13,"depth":44,"text":14,"children":141264},[141265],{"id":96,"depth":58,"text":97},"A concise guide on ensuring code adherence to lint rules before committing changes.",{},"/lint-staged/overview",{"title":141176,"description":141266},"lint-staged/overview","lint-staged",[141273,141274,413,141275],"linting","precommit","quality","gvW0B72vwoiw31fsQRIJG_x2H_HocOmmnj7-4hPp0uE",{"id":141278,"title":141279,"body":141280,"date":402,"description":141589,"extension":404,"meta":141590,"navigation":61,"order":715,"path":141591,"seo":141592,"stem":141593,"subject":90057,"tags":141594,"__hash__":141596},"topics/lua/common-idioms.md","Common Idioms",{"type":8,"value":141281,"toc":141586},[141282,141285,141584],[11,141283,141279],{"id":141284},"common-idioms",[25,141286,141289],{"className":141287,"code":141288,"language":90057,"meta":30,"style":30},"language-lua shiki shiki-themes github-light github-dark","-- Ternary operator\nlocal result = condition and value_if_true or value_if_false\n\n-- Safe table access\nlocal value = table and table.key or default_value\n\n-- Swapping variables\na, b = b, a\n\n-- Table as set\nlocal set = {apple = true, banana = true}\nif set[\"apple\"] then\n    print(\"Apple is in set\")\nend\n\n-- Class-like pattern\nfunction Person:new(name, age)\n    local obj = {name = name, age = age}\n    setmetatable(obj, {__index = Person})\n    return obj\nend\n\nfunction Person:greet()\n    return \"Hello, I'm \" .. self.name\nend\n\nlocal alice = Person:new(\"Alice\", 30)\nprint(alice:greet())        -- \"Hello, I'm Alice\"\n",[20,141290,141291,141296,141317,141321,141326,141350,141354,141359,141368,141372,141377,141402,141415,141427,141431,141435,141440,141453,141476,141489,141496,141500,141504,141516,141532,141536,141540,141565],{"__ignoreMap":30},[34,141292,141293],{"class":36,"line":37},[34,141294,141295],{"class":40},"-- Ternary operator\n",[34,141297,141298,141301,141303,141305,141307,141309,141312,141314],{"class":36,"line":44},[34,141299,141300],{"class":580},"local",[34,141302,20093],{"class":181},[34,141304,1301],{"class":580},[34,141306,122292],{"class":181},[34,141308,51197],{"class":580},[34,141310,141311],{"class":181}," value_if_true ",[34,141313,49560],{"class":580},[34,141315,141316],{"class":181}," value_if_false\n",[34,141318,141319],{"class":36,"line":58},[34,141320,62],{"emptyLinePlaceholder":61},[34,141322,141323],{"class":36,"line":65},[34,141324,141325],{"class":40},"-- Safe table access\n",[34,141327,141328,141330,141332,141334,141337,141339,141342,141345,141347],{"class":36,"line":71},[34,141329,141300],{"class":580},[34,141331,8271],{"class":181},[34,141333,1301],{"class":580},[34,141335,141336],{"class":181}," table ",[34,141338,51197],{"class":580},[34,141340,141341],{"class":181}," table.",[34,141343,141344],{"class":47},"key",[34,141346,48486],{"class":580},[34,141348,141349],{"class":181}," default_value\n",[34,141351,141352],{"class":36,"line":77},[34,141353,62],{"emptyLinePlaceholder":61},[34,141355,141356],{"class":36,"line":82},[34,141357,141358],{"class":40},"-- Swapping variables\n",[34,141360,141361,141364,141366],{"class":36,"line":88},[34,141362,141363],{"class":181},"a, b ",[34,141365,1301],{"class":580},[34,141367,88513],{"class":181},[34,141369,141370],{"class":36,"line":242},[34,141371,62],{"emptyLinePlaceholder":61},[34,141373,141374],{"class":36,"line":250},[34,141375,141376],{"class":40},"-- Table as set\n",[34,141378,141379,141381,141384,141386,141389,141391,141393,141396,141398,141400],{"class":36,"line":263},[34,141380,141300],{"class":580},[34,141382,141383],{"class":181}," set ",[34,141385,1301],{"class":580},[34,141387,141388],{"class":181}," {apple ",[34,141390,1301],{"class":580},[34,141392,32945],{"class":50},[34,141394,141395],{"class":181},", banana ",[34,141397,1301],{"class":580},[34,141399,32945],{"class":50},[34,141401,693],{"class":181},[34,141403,141404,141406,141409,141411,141413],{"class":36,"line":275},[34,141405,10383],{"class":580},[34,141407,141408],{"class":181}," set[",[34,141410,10088],{"class":54},[34,141412,17799],{"class":181},[34,141414,10405],{"class":580},[34,141416,141417,141420,141422,141425],{"class":36,"line":700},[34,141418,141419],{"class":50},"    print",[34,141421,1607],{"class":181},[34,141423,141424],{"class":54},"\"Apple is in set\"",[34,141426,3372],{"class":181},[34,141428,141429],{"class":36,"line":706},[34,141430,33222],{"class":580},[34,141432,141433],{"class":36,"line":715},[34,141434,62],{"emptyLinePlaceholder":61},[34,141436,141437],{"class":36,"line":725},[34,141438,141439],{"class":40},"-- Class-like pattern\n",[34,141441,141442,141444,141446,141448,141450],{"class":36,"line":734},[34,141443,11044],{"class":580},[34,141445,30063],{"class":47},[34,141447,165],{"class":181},[34,141449,3143],{"class":47},[34,141451,141452],{"class":181},"(name, age)\n",[34,141454,141455,141458,141461,141463,141466,141468,141471,141473],{"class":36,"line":742},[34,141456,141457],{"class":580},"    local",[34,141459,141460],{"class":181}," obj ",[34,141462,1301],{"class":580},[34,141464,141465],{"class":181}," {name ",[34,141467,1301],{"class":580},[34,141469,141470],{"class":181}," name, age ",[34,141472,1301],{"class":580},[34,141474,141475],{"class":181}," age}\n",[34,141477,141478,141481,141484,141486],{"class":36,"line":748},[34,141479,141480],{"class":50},"    setmetatable",[34,141482,141483],{"class":181},"(obj, {__index ",[34,141485,1301],{"class":580},[34,141487,141488],{"class":181}," Person})\n",[34,141490,141491,141493],{"class":36,"line":754},[34,141492,1564],{"class":580},[34,141494,141495],{"class":181}," obj\n",[34,141497,141498],{"class":36,"line":759},[34,141499,33222],{"class":580},[34,141501,141502],{"class":36,"line":771},[34,141503,62],{"emptyLinePlaceholder":61},[34,141505,141506,141508,141510,141512,141514],{"class":36,"line":794},[34,141507,11044],{"class":580},[34,141509,30063],{"class":47},[34,141511,165],{"class":181},[34,141513,11011],{"class":47},[34,141515,33899],{"class":181},[34,141517,141518,141520,141523,141525,141527,141529],{"class":36,"line":824},[34,141519,1564],{"class":580},[34,141521,141522],{"class":54}," \"Hello, I'm \" ",[34,141524,101074],{"class":580},[34,141526,74044],{"class":50},[34,141528,151],{"class":181},[34,141530,141531],{"class":47},"name\n",[34,141533,141534],{"class":36,"line":830},[34,141535,33222],{"class":580},[34,141537,141538],{"class":36,"line":839},[34,141539,62],{"emptyLinePlaceholder":61},[34,141541,141542,141544,141547,141549,141551,141553,141555,141557,141559,141561,141563],{"class":36,"line":854},[34,141543,141300],{"class":580},[34,141545,141546],{"class":181}," alice ",[34,141548,1301],{"class":580},[34,141550,30063],{"class":47},[34,141552,165],{"class":181},[34,141554,3143],{"class":50},[34,141556,1607],{"class":181},[34,141558,21650],{"class":54},[34,141560,1798],{"class":181},[34,141562,17625],{"class":50},[34,141564,3372],{"class":181},[34,141566,141567,141569,141571,141574,141576,141578,141581],{"class":36,"line":860},[34,141568,53417],{"class":50},[34,141570,1607],{"class":181},[34,141572,141573],{"class":47},"alice",[34,141575,165],{"class":181},[34,141577,11011],{"class":50},[34,141579,141580],{"class":181},"())        ",[34,141582,141583],{"class":40},"-- \"Hello, I'm Alice\"\n",[388,141585,33776],{},{"title":30,"searchDepth":44,"depth":44,"links":141587},[141588],{"id":141284,"depth":44,"text":141279},"Common Idioms in Lua.",{},"/lua/common-idioms",{"title":141279,"description":141589},"lua/common-idioms",[90057,10359,121242,141595],"gamedev","5PNyZASZKfS2CwbIggxHHOHJsSogymAVZVs9c8QGBiU",{"id":141598,"title":18818,"body":141599,"date":402,"description":141735,"extension":404,"meta":141736,"navigation":61,"order":88,"path":141737,"seo":141738,"stem":141739,"subject":90057,"tags":141740,"__hash__":141741},"topics/lua/control-flow.md",{"type":8,"value":141600,"toc":141732},[141601,141603,141730],[11,141602,18818],{"id":18823},[25,141604,141606],{"className":141287,"code":141605,"language":90057,"meta":30,"style":30},"-- If statements\nif age >= 18 then\n    print(\"Adult\")\nelseif age >= 13 then\n    print(\"Teenager\")\nelse\n    print(\"Child\")\nend\n\n-- Ternary-like (using 'and'/'or')\nlocal status = is_active and \"Active\" or \"Inactive\"\n\n-- Comparison operators\n-- ==  ~=  \u003C  >  \u003C=  >=\n-- and  or  not\n",[20,141607,141608,141613,141626,141637,141650,141661,141665,141676,141680,141684,141689,141711,141715,141720,141725],{"__ignoreMap":30},[34,141609,141610],{"class":36,"line":37},[34,141611,141612],{"class":40},"-- If statements\n",[34,141614,141615,141617,141619,141621,141623],{"class":36,"line":44},[34,141616,10383],{"class":580},[34,141618,25065],{"class":181},[34,141620,18401],{"class":580},[34,141622,18845],{"class":50},[34,141624,141625],{"class":580}," then\n",[34,141627,141628,141630,141632,141635],{"class":36,"line":58},[34,141629,141419],{"class":50},[34,141631,1607],{"class":181},[34,141633,141634],{"class":54},"\"Adult\"",[34,141636,3372],{"class":181},[34,141638,141639,141642,141644,141646,141648],{"class":36,"line":65},[34,141640,141641],{"class":580},"elseif",[34,141643,25065],{"class":181},[34,141645,18401],{"class":580},[34,141647,18881],{"class":50},[34,141649,141625],{"class":580},[34,141651,141652,141654,141656,141659],{"class":36,"line":71},[34,141653,141419],{"class":50},[34,141655,1607],{"class":181},[34,141657,141658],{"class":54},"\"Teenager\"",[34,141660,3372],{"class":181},[34,141662,141663],{"class":36,"line":77},[34,141664,10446],{"class":580},[34,141666,141667,141669,141671,141674],{"class":36,"line":82},[34,141668,141419],{"class":50},[34,141670,1607],{"class":181},[34,141672,141673],{"class":54},"\"Child\"",[34,141675,3372],{"class":181},[34,141677,141678],{"class":36,"line":88},[34,141679,33222],{"class":580},[34,141681,141682],{"class":36,"line":242},[34,141683,62],{"emptyLinePlaceholder":61},[34,141685,141686],{"class":36,"line":250},[34,141687,141688],{"class":40},"-- Ternary-like (using 'and'/'or')\n",[34,141690,141691,141693,141696,141698,141701,141703,141706,141708],{"class":36,"line":263},[34,141692,141300],{"class":580},[34,141694,141695],{"class":181}," status ",[34,141697,1301],{"class":580},[34,141699,141700],{"class":181}," is_active ",[34,141702,51197],{"class":580},[34,141704,141705],{"class":54}," \"Active\" ",[34,141707,49560],{"class":580},[34,141709,141710],{"class":54}," \"Inactive\"\n",[34,141712,141713],{"class":36,"line":275},[34,141714,62],{"emptyLinePlaceholder":61},[34,141716,141717],{"class":36,"line":700},[34,141718,141719],{"class":40},"-- Comparison operators\n",[34,141721,141722],{"class":36,"line":706},[34,141723,141724],{"class":40},"-- ==  ~=  \u003C  >  \u003C=  >=\n",[34,141726,141727],{"class":36,"line":715},[34,141728,141729],{"class":40},"-- and  or  not\n",[388,141731,25257],{},{"title":30,"searchDepth":44,"depth":44,"links":141733},[141734],{"id":18823,"depth":44,"text":18818},"Control Flow in Lua.",{},"/lua/control-flow",{"title":18818,"description":141735},"lua/control-flow",[90057,10359,121242,141595],"1--Qs6ODgenzYT0p3noVoXm2VoBxtsTu2mZ0C7Js9Aw",{"id":141743,"title":135090,"body":141744,"date":402,"description":141888,"extension":404,"meta":141889,"navigation":61,"order":706,"path":141890,"seo":141891,"stem":141892,"subject":90057,"tags":141893,"__hash__":141894},"topics/lua/coroutines.md",{"type":8,"value":141745,"toc":141885},[141746,141748,141883],[11,141747,135090],{"id":135095},[25,141749,141751],{"className":141287,"code":141750,"language":90057,"meta":30,"style":30},"-- Coroutines for cooperative multitasking\nlocal co = coroutine.create(function()\n    for i = 1, 3 do\n        print(\"Coroutine:\", i)\n        coroutine.yield()   -- Pause execution\n    end\nend)\n\ncoroutine.resume(co)        -- Coroutine: 1\ncoroutine.resume(co)        -- Coroutine: 2\ncoroutine.resume(co)        -- Coroutine: 3\n\n-- Check status\nprint(coroutine.status(co)) -- \"dead\" (finished)\n",[20,141752,141753,141758,141776,141793,141806,141816,141820,141826,141830,141841,141850,141859,141863,141868],{"__ignoreMap":30},[34,141754,141755],{"class":36,"line":37},[34,141756,141757],{"class":40},"-- Coroutines for cooperative multitasking\n",[34,141759,141760,141762,141765,141767,141770,141772,141774],{"class":36,"line":44},[34,141761,141300],{"class":580},[34,141763,141764],{"class":181}," co ",[34,141766,1301],{"class":580},[34,141768,141769],{"class":50}," coroutine.create",[34,141771,1607],{"class":181},[34,141773,11044],{"class":580},[34,141775,33899],{"class":181},[34,141777,141778,141780,141782,141784,141786,141788,141790],{"class":36,"line":58},[34,141779,18250],{"class":580},[34,141781,10300],{"class":181},[34,141783,1301],{"class":580},[34,141785,3567],{"class":50},[34,141787,1798],{"class":181},[34,141789,3162],{"class":50},[34,141791,141792],{"class":580}," do\n",[34,141794,141795,141798,141800,141803],{"class":36,"line":65},[34,141796,141797],{"class":50},"        print",[34,141799,1607],{"class":181},[34,141801,141802],{"class":54},"\"Coroutine:\"",[34,141804,141805],{"class":181},", i)\n",[34,141807,141808,141811,141813],{"class":36,"line":71},[34,141809,141810],{"class":50},"        coroutine.yield",[34,141812,76256],{"class":181},[34,141814,141815],{"class":40},"-- Pause execution\n",[34,141817,141818],{"class":36,"line":77},[34,141819,79009],{"class":580},[34,141821,141822,141824],{"class":36,"line":82},[34,141823,40488],{"class":580},[34,141825,3372],{"class":181},[34,141827,141828],{"class":36,"line":88},[34,141829,62],{"emptyLinePlaceholder":61},[34,141831,141832,141835,141838],{"class":36,"line":242},[34,141833,141834],{"class":50},"coroutine.resume",[34,141836,141837],{"class":181},"(co)        ",[34,141839,141840],{"class":40},"-- Coroutine: 1\n",[34,141842,141843,141845,141847],{"class":36,"line":250},[34,141844,141834],{"class":50},[34,141846,141837],{"class":181},[34,141848,141849],{"class":40},"-- Coroutine: 2\n",[34,141851,141852,141854,141856],{"class":36,"line":263},[34,141853,141834],{"class":50},[34,141855,141837],{"class":181},[34,141857,141858],{"class":40},"-- Coroutine: 3\n",[34,141860,141861],{"class":36,"line":275},[34,141862,62],{"emptyLinePlaceholder":61},[34,141864,141865],{"class":36,"line":700},[34,141866,141867],{"class":40},"-- Check status\n",[34,141869,141870,141872,141874,141877,141880],{"class":36,"line":706},[34,141871,53417],{"class":50},[34,141873,1607],{"class":181},[34,141875,141876],{"class":50},"coroutine.status",[34,141878,141879],{"class":181},"(co)) ",[34,141881,141882],{"class":40},"-- \"dead\" (finished)\n",[388,141884,25257],{},{"title":30,"searchDepth":44,"depth":44,"links":141886},[141887],{"id":135095,"depth":44,"text":135090},"Coroutines in Lua.",{},"/lua/coroutines",{"title":135090,"description":141888},"lua/coroutines",[90057,10359,121242,141595],"3R0ODoL4dNn8mDTcJg92ycudPQw0ptBvg_iJkjOJAzA",{"id":141896,"title":61423,"body":141897,"date":402,"description":142070,"extension":404,"meta":142071,"navigation":61,"order":65,"path":142072,"seo":142073,"stem":142074,"subject":90057,"tags":142075,"__hash__":142076},"topics/lua/data-types.md",{"type":8,"value":141898,"toc":142067},[141899,141901,142065],[11,141900,61423],{"id":61422},[25,141902,141904],{"className":141287,"code":141903,"language":90057,"meta":30,"style":30},"-- Lua has 8 basic types\nlocal str = \"text\"          -- string\nlocal num = 42              -- number\nlocal bool = true           -- boolean\nlocal func = function() end -- function\nlocal tbl = {}              -- table\nlocal nothing = nil         -- nil\nlocal thread = coroutine.create(function() end) -- thread\n-- userdata (for C integration)\n\n-- Type checking\nprint(type(str))            -- \"string\"\nprint(type(num))            -- \"number\"\n",[20,141905,141906,141911,141926,141939,141953,141970,141985,141999,142023,142028,142032,142037,142051],{"__ignoreMap":30},[34,141907,141908],{"class":36,"line":37},[34,141909,141910],{"class":40},"-- Lua has 8 basic types\n",[34,141912,141913,141915,141918,141920,141923],{"class":36,"line":44},[34,141914,141300],{"class":580},[34,141916,141917],{"class":181}," str ",[34,141919,1301],{"class":580},[34,141921,141922],{"class":54}," \"text\"          ",[34,141924,141925],{"class":40},"-- string\n",[34,141927,141928,141930,141932,141934,141936],{"class":36,"line":58},[34,141929,141300],{"class":580},[34,141931,13912],{"class":181},[34,141933,1301],{"class":580},[34,141935,19987],{"class":50},[34,141937,141938],{"class":40},"              -- number\n",[34,141940,141941,141943,141946,141948,141950],{"class":36,"line":65},[34,141942,141300],{"class":580},[34,141944,141945],{"class":181}," bool ",[34,141947,1301],{"class":580},[34,141949,32945],{"class":50},[34,141951,141952],{"class":40},"           -- boolean\n",[34,141954,141955,141957,141959,141961,141963,141965,141967],{"class":36,"line":71},[34,141956,141300],{"class":580},[34,141958,105616],{"class":47},[34,141960,683],{"class":580},[34,141962,8037],{"class":580},[34,141964,672],{"class":181},[34,141966,40488],{"class":580},[34,141968,141969],{"class":40}," -- function\n",[34,141971,141972,141974,141977,141979,141982],{"class":36,"line":77},[34,141973,141300],{"class":580},[34,141975,141976],{"class":181}," tbl ",[34,141978,1301],{"class":580},[34,141980,141981],{"class":181}," {}              ",[34,141983,141984],{"class":40},"-- table\n",[34,141986,141987,141989,141992,141994,141996],{"class":36,"line":82},[34,141988,141300],{"class":580},[34,141990,141991],{"class":181}," nothing ",[34,141993,1301],{"class":580},[34,141995,105194],{"class":50},[34,141997,141998],{"class":40},"         -- nil\n",[34,142000,142001,142003,142006,142008,142010,142012,142014,142016,142018,142020],{"class":36,"line":88},[34,142002,141300],{"class":580},[34,142004,142005],{"class":181}," thread ",[34,142007,1301],{"class":580},[34,142009,141769],{"class":50},[34,142011,1607],{"class":181},[34,142013,11044],{"class":580},[34,142015,672],{"class":181},[34,142017,40488],{"class":580},[34,142019,4817],{"class":181},[34,142021,142022],{"class":40},"-- thread\n",[34,142024,142025],{"class":36,"line":242},[34,142026,142027],{"class":40},"-- userdata (for C integration)\n",[34,142029,142030],{"class":36,"line":250},[34,142031,62],{"emptyLinePlaceholder":61},[34,142033,142034],{"class":36,"line":263},[34,142035,142036],{"class":40},"-- Type checking\n",[34,142038,142039,142041,142043,142045,142048],{"class":36,"line":275},[34,142040,53417],{"class":50},[34,142042,1607],{"class":181},[34,142044,41324],{"class":50},[34,142046,142047],{"class":181},"(str))            ",[34,142049,142050],{"class":40},"-- \"string\"\n",[34,142052,142053,142055,142057,142059,142062],{"class":36,"line":700},[34,142054,53417],{"class":50},[34,142056,1607],{"class":181},[34,142058,41324],{"class":50},[34,142060,142061],{"class":181},"(num))            ",[34,142063,142064],{"class":40},"-- \"number\"\n",[388,142066,12143],{},{"title":30,"searchDepth":44,"depth":44,"links":142068},[142069],{"id":61422,"depth":44,"text":61423},"Data Types in Lua.",{},"/lua/data-types",{"title":61423,"description":142070},"lua/data-types",[90057,10359,121242,141595],"f3Me1uJl1H0UegyC2F59SIq_qVSMB-M14_OWuC0rBP8",{"id":142078,"title":19352,"body":142079,"date":402,"description":142268,"extension":404,"meta":142269,"navigation":61,"order":700,"path":142270,"seo":142271,"stem":142272,"subject":90057,"tags":142273,"__hash__":142274},"topics/lua/error-handling.md",{"type":8,"value":142080,"toc":142265},[142081,142083,142263],[11,142082,19352],{"id":19357},[25,142084,142086],{"className":141287,"code":142085,"language":90057,"meta":30,"style":30},"-- Protected call (pcall)\nlocal success, result = pcall(function()\n    return 10 / 0           -- Potential error\nend)\n\nif success then\n    print(\"Result:\", result)\nelse\n    print(\"Error:\", result)\nend\n\n-- Assert (throw error if condition fails)\nlocal function divide(a, b)\n    assert(b ~= 0, \"Division by zero!\")\n    return a / b\nend\n\n-- Manual error throwing\nif age \u003C 0 then\n    error(\"Age cannot be negative\")\nend\n",[20,142087,142088,142093,142111,142124,142130,142134,142143,142155,142159,142170,142174,142178,142183,142193,142213,142223,142227,142231,142236,142248,142259],{"__ignoreMap":30},[34,142089,142090],{"class":36,"line":37},[34,142091,142092],{"class":40},"-- Protected call (pcall)\n",[34,142094,142095,142097,142100,142102,142105,142107,142109],{"class":36,"line":44},[34,142096,141300],{"class":580},[34,142098,142099],{"class":181}," success, result ",[34,142101,1301],{"class":580},[34,142103,142104],{"class":50}," pcall",[34,142106,1607],{"class":181},[34,142108,11044],{"class":580},[34,142110,33899],{"class":181},[34,142112,142113,142115,142117,142119,142121],{"class":36,"line":58},[34,142114,1564],{"class":580},[34,142116,13123],{"class":50},[34,142118,22767],{"class":580},[34,142120,8070],{"class":50},[34,142122,142123],{"class":40},"           -- Potential error\n",[34,142125,142126,142128],{"class":36,"line":65},[34,142127,40488],{"class":580},[34,142129,3372],{"class":181},[34,142131,142132],{"class":36,"line":71},[34,142133,62],{"emptyLinePlaceholder":61},[34,142135,142136,142138,142141],{"class":36,"line":77},[34,142137,10383],{"class":580},[34,142139,142140],{"class":181}," success ",[34,142142,10405],{"class":580},[34,142144,142145,142147,142149,142152],{"class":36,"line":82},[34,142146,141419],{"class":50},[34,142148,1607],{"class":181},[34,142150,142151],{"class":54},"\"Result:\"",[34,142153,142154],{"class":181},", result)\n",[34,142156,142157],{"class":36,"line":88},[34,142158,10446],{"class":580},[34,142160,142161,142163,142165,142168],{"class":36,"line":242},[34,142162,141419],{"class":50},[34,142164,1607],{"class":181},[34,142166,142167],{"class":54},"\"Error:\"",[34,142169,142154],{"class":181},[34,142171,142172],{"class":36,"line":250},[34,142173,33222],{"class":580},[34,142175,142176],{"class":36,"line":263},[34,142177,62],{"emptyLinePlaceholder":61},[34,142179,142180],{"class":36,"line":275},[34,142181,142182],{"class":40},"-- Assert (throw error if condition fails)\n",[34,142184,142185,142187,142189,142191],{"class":36,"line":700},[34,142186,141300],{"class":580},[34,142188,8037],{"class":580},[34,142190,19378],{"class":47},[34,142192,135916],{"class":181},[34,142194,142195,142198,142201,142204,142206,142208,142211],{"class":36,"line":706},[34,142196,142197],{"class":50},"    assert",[34,142199,142200],{"class":181},"(b ",[34,142202,142203],{"class":580},"~=",[34,142205,8070],{"class":50},[34,142207,1798],{"class":181},[34,142209,142210],{"class":54},"\"Division by zero!\"",[34,142212,3372],{"class":181},[34,142214,142215,142217,142219,142221],{"class":36,"line":715},[34,142216,1564],{"class":580},[34,142218,8065],{"class":181},[34,142220,12734],{"class":580},[34,142222,87475],{"class":181},[34,142224,142225],{"class":36,"line":725},[34,142226,33222],{"class":580},[34,142228,142229],{"class":36,"line":734},[34,142230,62],{"emptyLinePlaceholder":61},[34,142232,142233],{"class":36,"line":742},[34,142234,142235],{"class":40},"-- Manual error throwing\n",[34,142237,142238,142240,142242,142244,142246],{"class":36,"line":748},[34,142239,10383],{"class":580},[34,142241,25065],{"class":181},[34,142243,815],{"class":580},[34,142245,8070],{"class":50},[34,142247,141625],{"class":580},[34,142249,142250,142253,142255,142257],{"class":36,"line":754},[34,142251,142252],{"class":50},"    error",[34,142254,1607],{"class":181},[34,142256,122730],{"class":54},[34,142258,3372],{"class":181},[34,142260,142261],{"class":36,"line":759},[34,142262,33222],{"class":580},[388,142264,125059],{},{"title":30,"searchDepth":44,"depth":44,"links":142266},[142267],{"id":19357,"depth":44,"text":19352},"Error Handling in Lua.",{},"/lua/error-handling",{"title":19352,"description":142268},"lua/error-handling",[90057,10359,121242,141595],"blKGJ-vpPEXsklZb2f80wJIvUn-UdsmIn7G6cAyzDHY",{"id":142276,"title":21267,"body":142277,"date":402,"description":142583,"extension":404,"meta":142584,"navigation":61,"order":275,"path":142585,"seo":142586,"stem":142587,"subject":90057,"tags":142588,"__hash__":142589},"topics/lua/file-io.md",{"type":8,"value":142278,"toc":142580},[142279,142281,142578],[11,142280,21267],{"id":21272},[25,142282,142284],{"className":141287,"code":142283,"language":90057,"meta":30,"style":30},"-- Read entire file\nlocal file = io.open(\"data.txt\", \"r\")\nif file then\n    local content = file:read(\"*a\") -- Read all\n    file:close()\nend\n\n-- Read line by line\nlocal file = io.open(\"data.txt\", \"r\")\nif file then\n    for line in file:lines() do\n        print(line)\n    end\n    file:close()\nend\n\n-- Write to file\nlocal file = io.open(\"output.txt\", \"w\")\nif file then\n    file:write(\"Hello, World!\\n\")\n    file:close()\nend\n\n-- Append to file\nlocal file = io.open(\"output.txt\", \"a\")\nif file then\n    file:write(\"Appended line\\n\")\n    file:close()\nend\n",[20,142285,142286,142291,142312,142320,142344,142355,142359,142363,142368,142388,142396,142414,142421,142425,142435,142439,142443,142448,142468,142476,142494,142504,142508,142512,142517,142537,142545,142564,142574],{"__ignoreMap":30},[34,142287,142288],{"class":36,"line":37},[34,142289,142290],{"class":40},"-- Read entire file\n",[34,142292,142293,142295,142297,142299,142302,142304,142306,142308,142310],{"class":36,"line":44},[34,142294,141300],{"class":580},[34,142296,11959],{"class":181},[34,142298,1301],{"class":580},[34,142300,142301],{"class":50}," io.open",[34,142303,1607],{"class":181},[34,142305,19763],{"class":54},[34,142307,1798],{"class":181},[34,142309,19613],{"class":54},[34,142311,3372],{"class":181},[34,142313,142314,142316,142318],{"class":36,"line":58},[34,142315,10383],{"class":580},[34,142317,11959],{"class":181},[34,142319,10405],{"class":580},[34,142321,142322,142324,142326,142328,142330,142332,142334,142336,142339,142341],{"class":36,"line":65},[34,142323,141457],{"class":580},[34,142325,137631],{"class":181},[34,142327,1301],{"class":580},[34,142329,13190],{"class":47},[34,142331,165],{"class":181},[34,142333,11224],{"class":50},[34,142335,1607],{"class":181},[34,142337,142338],{"class":54},"\"*a\"",[34,142340,4817],{"class":181},[34,142342,142343],{"class":40},"-- Read all\n",[34,142345,142346,142349,142351,142353],{"class":36,"line":71},[34,142347,142348],{"class":47},"    file",[34,142350,165],{"class":181},[34,142352,17197],{"class":50},[34,142354,33899],{"class":181},[34,142356,142357],{"class":36,"line":77},[34,142358,33222],{"class":580},[34,142360,142361],{"class":36,"line":82},[34,142362,62],{"emptyLinePlaceholder":61},[34,142364,142365],{"class":36,"line":88},[34,142366,142367],{"class":40},"-- Read line by line\n",[34,142369,142370,142372,142374,142376,142378,142380,142382,142384,142386],{"class":36,"line":242},[34,142371,141300],{"class":580},[34,142373,11959],{"class":181},[34,142375,1301],{"class":580},[34,142377,142301],{"class":50},[34,142379,1607],{"class":181},[34,142381,19763],{"class":54},[34,142383,1798],{"class":181},[34,142385,19613],{"class":54},[34,142387,3372],{"class":181},[34,142389,142390,142392,142394],{"class":36,"line":250},[34,142391,10383],{"class":580},[34,142393,11959],{"class":181},[34,142395,10405],{"class":580},[34,142397,142398,142400,142402,142404,142406,142408,142410,142412],{"class":36,"line":263},[34,142399,18250],{"class":580},[34,142401,31127],{"class":181},[34,142403,10252],{"class":580},[34,142405,13190],{"class":47},[34,142407,165],{"class":181},[34,142409,35592],{"class":50},[34,142411,672],{"class":181},[34,142413,10271],{"class":580},[34,142415,142416,142418],{"class":36,"line":275},[34,142417,141797],{"class":50},[34,142419,142420],{"class":181},"(line)\n",[34,142422,142423],{"class":36,"line":700},[34,142424,79009],{"class":580},[34,142426,142427,142429,142431,142433],{"class":36,"line":706},[34,142428,142348],{"class":47},[34,142430,165],{"class":181},[34,142432,17197],{"class":50},[34,142434,33899],{"class":181},[34,142436,142437],{"class":36,"line":715},[34,142438,33222],{"class":580},[34,142440,142441],{"class":36,"line":725},[34,142442,62],{"emptyLinePlaceholder":61},[34,142444,142445],{"class":36,"line":734},[34,142446,142447],{"class":40},"-- Write to file\n",[34,142449,142450,142452,142454,142456,142458,142460,142462,142464,142466],{"class":36,"line":742},[34,142451,141300],{"class":580},[34,142453,11959],{"class":181},[34,142455,1301],{"class":580},[34,142457,142301],{"class":50},[34,142459,1607],{"class":181},[34,142461,21459],{"class":54},[34,142463,1798],{"class":181},[34,142465,21464],{"class":54},[34,142467,3372],{"class":181},[34,142469,142470,142472,142474],{"class":36,"line":748},[34,142471,10383],{"class":580},[34,142473,11959],{"class":181},[34,142475,10405],{"class":580},[34,142477,142478,142480,142482,142484,142486,142488,142490,142492],{"class":36,"line":754},[34,142479,142348],{"class":47},[34,142481,165],{"class":181},[34,142483,15067],{"class":50},[34,142485,1607],{"class":181},[34,142487,21496],{"class":54},[34,142489,18860],{"class":50},[34,142491,10389],{"class":54},[34,142493,3372],{"class":181},[34,142495,142496,142498,142500,142502],{"class":36,"line":759},[34,142497,142348],{"class":47},[34,142499,165],{"class":181},[34,142501,17197],{"class":50},[34,142503,33899],{"class":181},[34,142505,142506],{"class":36,"line":771},[34,142507,33222],{"class":580},[34,142509,142510],{"class":36,"line":794},[34,142511,62],{"emptyLinePlaceholder":61},[34,142513,142514],{"class":36,"line":824},[34,142515,142516],{"class":40},"-- Append to file\n",[34,142518,142519,142521,142523,142525,142527,142529,142531,142533,142535],{"class":36,"line":830},[34,142520,141300],{"class":580},[34,142522,11959],{"class":181},[34,142524,1301],{"class":580},[34,142526,142301],{"class":50},[34,142528,1607],{"class":181},[34,142530,21459],{"class":54},[34,142532,1798],{"class":181},[34,142534,104277],{"class":54},[34,142536,3372],{"class":181},[34,142538,142539,142541,142543],{"class":36,"line":839},[34,142540,10383],{"class":580},[34,142542,11959],{"class":181},[34,142544,10405],{"class":580},[34,142546,142547,142549,142551,142553,142555,142558,142560,142562],{"class":36,"line":854},[34,142548,142348],{"class":47},[34,142550,165],{"class":181},[34,142552,15067],{"class":50},[34,142554,1607],{"class":181},[34,142556,142557],{"class":54},"\"Appended line",[34,142559,18860],{"class":50},[34,142561,10389],{"class":54},[34,142563,3372],{"class":181},[34,142565,142566,142568,142570,142572],{"class":36,"line":860},[34,142567,142348],{"class":47},[34,142569,165],{"class":181},[34,142571,17197],{"class":50},[34,142573,33899],{"class":181},[34,142575,142576],{"class":36,"line":865},[34,142577,33222],{"class":580},[388,142579,125059],{},{"title":30,"searchDepth":44,"depth":44,"links":142581},[142582],{"id":21272,"depth":44,"text":21267},"File I/O in Lua.",{},"/lua/file-io",{"title":21267,"description":142583},"lua/file-io",[90057,10359,121242,141595],"PlZ49I7RaKFNiz5TaobJXFZRxby1Hb_7Nx1LpU7Bybg",{"id":142591,"title":10991,"body":142592,"date":402,"description":142926,"extension":404,"meta":142927,"navigation":61,"order":82,"path":142928,"seo":142929,"stem":142930,"subject":90057,"tags":142931,"__hash__":142932},"topics/lua/functions.md",{"type":8,"value":142593,"toc":142923},[142594,142596,142921],[11,142595,10991],{"id":10996},[25,142597,142599],{"className":141287,"code":142598,"language":90057,"meta":30,"style":30},"-- Function definition\nfunction greet(name)\n    return \"Hello, \" .. name .. \"!\"\nend\n\n-- Multiple return values\nfunction minmax(a, b)\n    if a \u003C b then\n        return a, b         -- Return multiple values\n    else\n        return b, a\n    end\nend\nlocal min, max = minmax(5, 3) -- min=3, max=5\n\n-- Anonymous functions\nlocal square = function(x)\n    return x * x\nend\n\n-- Default parameters (Lua 5.x workaround)\nfunction greet_with_default(name)\n    name = name or \"Guest\"  -- Default value\n    return \"Hello, \" .. name\nend\n\n-- Variable arguments\nfunction sum(...)\n    local args = {...}      -- Pack arguments into table\n    local total = 0\n    for _, v in ipairs(args) do\n        total = total + v\n    end\n    return total\nend\nprint(sum(1, 2, 3, 4))      -- 10\n",[20,142600,142601,142606,142615,142631,142635,142639,142644,142653,142665,142675,142679,142685,142689,142693,142717,142721,142726,142740,142750,142754,142758,142763,142772,142788,142798,142802,142806,142811,142820,142838,142848,142865,142878,142882,142888,142892],{"__ignoreMap":30},[34,142602,142603],{"class":36,"line":37},[34,142604,142605],{"class":40},"-- Function definition\n",[34,142607,142608,142610,142612],{"class":36,"line":44},[34,142609,11044],{"class":580},[34,142611,11047],{"class":47},[34,142613,142614],{"class":181},"(name)\n",[34,142616,142617,142619,142622,142624,142626,142628],{"class":36,"line":58},[34,142618,1564],{"class":580},[34,142620,142621],{"class":54}," \"Hello, \" ",[34,142623,101074],{"class":580},[34,142625,30212],{"class":181},[34,142627,101074],{"class":580},[34,142629,142630],{"class":54}," \"!\"\n",[34,142632,142633],{"class":36,"line":65},[34,142634,33222],{"class":580},[34,142636,142637],{"class":36,"line":71},[34,142638,62],{"emptyLinePlaceholder":61},[34,142640,142641],{"class":36,"line":77},[34,142642,142643],{"class":40},"-- Multiple return values\n",[34,142645,142646,142648,142651],{"class":36,"line":82},[34,142647,11044],{"class":580},[34,142649,142650],{"class":47}," minmax",[34,142652,135916],{"class":181},[34,142654,142655,142657,142659,142661,142663],{"class":36,"line":88},[34,142656,2902],{"class":580},[34,142658,8065],{"class":181},[34,142660,815],{"class":580},[34,142662,22721],{"class":181},[34,142664,10405],{"class":580},[34,142666,142667,142669,142672],{"class":36,"line":242},[34,142668,13895],{"class":580},[34,142670,142671],{"class":181}," a, b         ",[34,142673,142674],{"class":40},"-- Return multiple values\n",[34,142676,142677],{"class":36,"line":250},[34,142678,25593],{"class":580},[34,142680,142681,142683],{"class":36,"line":263},[34,142682,13895],{"class":580},[34,142684,88513],{"class":181},[34,142686,142687],{"class":36,"line":275},[34,142688,79009],{"class":580},[34,142690,142691],{"class":36,"line":700},[34,142692,33222],{"class":580},[34,142694,142695,142697,142700,142702,142704,142706,142708,142710,142712,142714],{"class":36,"line":706},[34,142696,141300],{"class":580},[34,142698,142699],{"class":181}," min, max ",[34,142701,1301],{"class":580},[34,142703,142650],{"class":50},[34,142705,1607],{"class":181},[34,142707,2778],{"class":50},[34,142709,1798],{"class":181},[34,142711,3162],{"class":50},[34,142713,4817],{"class":181},[34,142715,142716],{"class":40},"-- min=3, max=5\n",[34,142718,142719],{"class":36,"line":715},[34,142720,62],{"emptyLinePlaceholder":61},[34,142722,142723],{"class":36,"line":725},[34,142724,142725],{"class":40},"-- Anonymous functions\n",[34,142727,142728,142730,142733,142735,142737],{"class":36,"line":734},[34,142729,141300],{"class":580},[34,142731,142732],{"class":47}," square",[34,142734,683],{"class":580},[34,142736,8037],{"class":580},[34,142738,142739],{"class":181},"(x)\n",[34,142741,142742,142744,142746,142748],{"class":36,"line":742},[34,142743,1564],{"class":580},[34,142745,23172],{"class":181},[34,142747,4289],{"class":580},[34,142749,105907],{"class":181},[34,142751,142752],{"class":36,"line":748},[34,142753,33222],{"class":580},[34,142755,142756],{"class":36,"line":754},[34,142757,62],{"emptyLinePlaceholder":61},[34,142759,142760],{"class":36,"line":759},[34,142761,142762],{"class":40},"-- Default parameters (Lua 5.x workaround)\n",[34,142764,142765,142767,142770],{"class":36,"line":771},[34,142766,11044],{"class":580},[34,142768,142769],{"class":47}," greet_with_default",[34,142771,142614],{"class":181},[34,142773,142774,142776,142778,142780,142782,142785],{"class":36,"line":794},[34,142775,87875],{"class":181},[34,142777,1301],{"class":580},[34,142779,30212],{"class":181},[34,142781,49560],{"class":580},[34,142783,142784],{"class":54}," \"Guest\"  ",[34,142786,142787],{"class":40},"-- Default value\n",[34,142789,142790,142792,142794,142796],{"class":36,"line":824},[34,142791,1564],{"class":580},[34,142793,142621],{"class":54},[34,142795,101074],{"class":580},[34,142797,11232],{"class":181},[34,142799,142800],{"class":36,"line":830},[34,142801,33222],{"class":580},[34,142803,142804],{"class":36,"line":839},[34,142805,62],{"emptyLinePlaceholder":61},[34,142807,142808],{"class":36,"line":854},[34,142809,142810],{"class":40},"-- Variable arguments\n",[34,142812,142813,142815,142817],{"class":36,"line":860},[34,142814,11044],{"class":580},[34,142816,65446],{"class":47},[34,142818,142819],{"class":181},"(...)\n",[34,142821,142822,142824,142827,142829,142831,142833,142835],{"class":36,"line":865},[34,142823,141457],{"class":580},[34,142825,142826],{"class":181}," args ",[34,142828,1301],{"class":580},[34,142830,11838],{"class":181},[34,142832,16841],{"class":50},[34,142834,12815],{"class":181},[34,142836,142837],{"class":40},"-- Pack arguments into table\n",[34,142839,142840,142842,142844,142846],{"class":36,"line":870},[34,142841,141457],{"class":580},[34,142843,49648],{"class":181},[34,142845,1301],{"class":580},[34,142847,36394],{"class":50},[34,142849,142850,142852,142855,142857,142860,142863],{"class":36,"line":876},[34,142851,18250],{"class":580},[34,142853,142854],{"class":181}," _, v ",[34,142856,10252],{"class":580},[34,142858,142859],{"class":50}," ipairs",[34,142861,142862],{"class":181},"(args) ",[34,142864,10271],{"class":580},[34,142866,142867,142869,142871,142873,142875],{"class":36,"line":885},[34,142868,105975],{"class":181},[34,142870,1301],{"class":580},[34,142872,49648],{"class":181},[34,142874,2940],{"class":580},[34,142876,142877],{"class":181}," v\n",[34,142879,142880],{"class":36,"line":895},[34,142881,79009],{"class":580},[34,142883,142884,142886],{"class":36,"line":904},[34,142885,1564],{"class":580},[34,142887,49663],{"class":181},[34,142889,142890],{"class":36,"line":915},[34,142891,33222],{"class":580},[34,142893,142894,142896,142898,142900,142902,142904,142906,142908,142910,142912,142914,142916,142918],{"class":36,"line":927},[34,142895,53417],{"class":50},[34,142897,1607],{"class":181},[34,142899,11135],{"class":50},[34,142901,1607],{"class":181},[34,142903,8318],{"class":50},[34,142905,1798],{"class":181},[34,142907,8324],{"class":50},[34,142909,1798],{"class":181},[34,142911,3162],{"class":50},[34,142913,1798],{"class":181},[34,142915,18010],{"class":50},[34,142917,77058],{"class":181},[34,142919,142920],{"class":40},"-- 10\n",[388,142922,34089],{},{"title":30,"searchDepth":44,"depth":44,"links":142924},[142925],{"id":10996,"depth":44,"text":10991},"Functions in Lua.",{},"/lua/functions",{"title":10991,"description":142926},"lua/functions",[90057,10359,121242,141595],"PMhjYq5vcCGO67iUGzFiy5Z5JJsLGoHrwrAEl739sG4",{"id":142934,"title":22151,"body":142935,"date":402,"description":143040,"extension":404,"meta":143041,"navigation":61,"order":44,"path":143042,"seo":143043,"stem":143044,"subject":90057,"tags":143045,"__hash__":143046},"topics/lua/hello-world.md",{"type":8,"value":142936,"toc":143037},[142937,142939,143034],[11,142938,22151],{"id":22156},[25,142940,142942],{"className":141287,"code":142941,"language":90057,"meta":30,"style":30},"-- Simple hello world\nprint(\"Hello, World!\")\n\n-- With variables\nlocal name = \"Alice\"\nprint(\"Hello, \" .. name .. \"!\")\n\n-- Using string.format\nlocal greeting = string.format(\"Hello, %s!\", name)\nprint(greeting)\n",[20,142943,142944,142949,142959,142963,142968,142979,142999,143003,143008,143027],{"__ignoreMap":30},[34,142945,142946],{"class":36,"line":37},[34,142947,142948],{"class":40},"-- Simple hello world\n",[34,142950,142951,142953,142955,142957],{"class":36,"line":44},[34,142952,53417],{"class":50},[34,142954,1607],{"class":181},[34,142956,15076],{"class":54},[34,142958,3372],{"class":181},[34,142960,142961],{"class":36,"line":58},[34,142962,62],{"emptyLinePlaceholder":61},[34,142964,142965],{"class":36,"line":65},[34,142966,142967],{"class":40},"-- With variables\n",[34,142969,142970,142972,142974,142976],{"class":36,"line":71},[34,142971,141300],{"class":580},[34,142973,30212],{"class":181},[34,142975,1301],{"class":580},[34,142977,142978],{"class":54}," \"Alice\"\n",[34,142980,142981,142983,142985,142988,142990,142992,142994,142997],{"class":36,"line":77},[34,142982,53417],{"class":50},[34,142984,1607],{"class":181},[34,142986,142987],{"class":54},"\"Hello, \" ",[34,142989,101074],{"class":580},[34,142991,30212],{"class":181},[34,142993,101074],{"class":580},[34,142995,142996],{"class":54}," \"!\"",[34,142998,3372],{"class":181},[34,143000,143001],{"class":36,"line":82},[34,143002,62],{"emptyLinePlaceholder":61},[34,143004,143005],{"class":36,"line":88},[34,143006,143007],{"class":40},"-- Using string.format\n",[34,143009,143010,143012,143014,143016,143019,143021,143024],{"class":36,"line":242},[34,143011,141300],{"class":580},[34,143013,137248],{"class":181},[34,143015,1301],{"class":580},[34,143017,143018],{"class":50}," string.format",[34,143020,1607],{"class":181},[34,143022,143023],{"class":54},"\"Hello, %s!\"",[34,143025,143026],{"class":181},", name)\n",[34,143028,143029,143031],{"class":36,"line":250},[34,143030,53417],{"class":50},[34,143032,143033],{"class":181},"(greeting)\n",[388,143035,143036],{},"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}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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":143038},[143039],{"id":22156,"depth":44,"text":22151},"Hello World in Lua.",{},"/lua/hello-world",{"title":22151,"description":143040},"lua/hello-world",[90057,10359,121242,141595],"P7jbwnaLc7TL6KwKxWRPVrAIBi3p9poSYQJvD42Gs0I",{"id":143048,"title":11769,"body":143049,"date":402,"description":143365,"extension":404,"meta":143366,"navigation":61,"order":242,"path":143367,"seo":143368,"stem":143369,"subject":90057,"tags":143370,"__hash__":143371},"topics/lua/loops.md",{"type":8,"value":143050,"toc":143362},[143051,143053,143360],[11,143052,11769],{"id":11774},[25,143054,143056],{"className":141287,"code":143055,"language":90057,"meta":30,"style":30},"-- While loop\nlocal i = 1\nwhile i \u003C= 5 do\n    print(i)\n    i = i + 1\nend\n\n-- Repeat-until (do-while equivalent)\nlocal j = 1\nrepeat\n    print(j)\n    j = j + 1\nuntil j > 5\n\n-- For loop (numeric)\nfor i = 1, 10 do            -- 1 to 10 inclusive\n    print(i)\nend\n\nfor i = 10, 1, -1 do        -- 10 to 1, step -1\n    print(i)\nend\n\n-- For loop (generic)\nlocal colors = {\"red\", \"green\", \"blue\"}\nfor index, color in ipairs(colors) do\n    print(index, color)\nend\n\n-- Break (no continue in Lua)\nfor i = 1, 10 do\n    if i == 5 then\n        break               -- Exit loop\n    end\n    print(i)\nend\n",[20,143057,143058,143063,143073,143085,143091,143104,143108,143112,143117,143127,143132,143139,143152,143162,143166,143171,143191,143197,143201,143205,143230,143236,143240,143244,143249,143275,143291,143298,143302,143306,143311,143327,143339,143346,143350,143356],{"__ignoreMap":30},[34,143059,143060],{"class":36,"line":37},[34,143061,143062],{"class":40},"-- While loop\n",[34,143064,143065,143067,143069,143071],{"class":36,"line":44},[34,143066,141300],{"class":580},[34,143068,10300],{"class":181},[34,143070,1301],{"class":580},[34,143072,43446],{"class":50},[34,143074,143075,143077,143079,143081,143083],{"class":36,"line":58},[34,143076,12005],{"class":580},[34,143078,10300],{"class":181},[34,143080,22032],{"class":580},[34,143082,11144],{"class":50},[34,143084,141792],{"class":580},[34,143086,143087,143089],{"class":36,"line":65},[34,143088,141419],{"class":50},[34,143090,88624],{"class":181},[34,143092,143093,143096,143098,143100,143102],{"class":36,"line":71},[34,143094,143095],{"class":181},"    i ",[34,143097,1301],{"class":580},[34,143099,10300],{"class":181},[34,143101,2940],{"class":580},[34,143103,43446],{"class":50},[34,143105,143106],{"class":36,"line":77},[34,143107,33222],{"class":580},[34,143109,143110],{"class":36,"line":82},[34,143111,62],{"emptyLinePlaceholder":61},[34,143113,143114],{"class":36,"line":88},[34,143115,143116],{"class":40},"-- Repeat-until (do-while equivalent)\n",[34,143118,143119,143121,143123,143125],{"class":36,"line":242},[34,143120,141300],{"class":580},[34,143122,72911],{"class":181},[34,143124,1301],{"class":580},[34,143126,43446],{"class":50},[34,143128,143129],{"class":36,"line":250},[34,143130,143131],{"class":580},"repeat\n",[34,143133,143134,143136],{"class":36,"line":263},[34,143135,141419],{"class":50},[34,143137,143138],{"class":181},"(j)\n",[34,143140,143141,143144,143146,143148,143150],{"class":36,"line":275},[34,143142,143143],{"class":181},"    j ",[34,143145,1301],{"class":580},[34,143147,72911],{"class":181},[34,143149,2940],{"class":580},[34,143151,43446],{"class":50},[34,143153,143154,143156,143158,143160],{"class":36,"line":700},[34,143155,12059],{"class":580},[34,143157,72911],{"class":181},[34,143159,5691],{"class":580},[34,143161,134626],{"class":50},[34,143163,143164],{"class":36,"line":706},[34,143165,62],{"emptyLinePlaceholder":61},[34,143167,143168],{"class":36,"line":715},[34,143169,143170],{"class":40},"-- For loop (numeric)\n",[34,143172,143173,143175,143177,143179,143181,143183,143185,143188],{"class":36,"line":725},[34,143174,10246],{"class":580},[34,143176,10300],{"class":181},[34,143178,1301],{"class":580},[34,143180,3567],{"class":50},[34,143182,1798],{"class":181},[34,143184,11923],{"class":50},[34,143186,143187],{"class":580}," do",[34,143189,143190],{"class":40},"            -- 1 to 10 inclusive\n",[34,143192,143193,143195],{"class":36,"line":734},[34,143194,141419],{"class":50},[34,143196,88624],{"class":181},[34,143198,143199],{"class":36,"line":742},[34,143200,33222],{"class":580},[34,143202,143203],{"class":36,"line":748},[34,143204,62],{"emptyLinePlaceholder":61},[34,143206,143207,143209,143211,143213,143215,143217,143219,143221,143223,143225,143227],{"class":36,"line":754},[34,143208,10246],{"class":580},[34,143210,10300],{"class":181},[34,143212,1301],{"class":580},[34,143214,13123],{"class":50},[34,143216,1798],{"class":181},[34,143218,8318],{"class":50},[34,143220,1798],{"class":181},[34,143222,22062],{"class":580},[34,143224,8318],{"class":50},[34,143226,143187],{"class":580},[34,143228,143229],{"class":40},"        -- 10 to 1, step -1\n",[34,143231,143232,143234],{"class":36,"line":759},[34,143233,141419],{"class":50},[34,143235,88624],{"class":181},[34,143237,143238],{"class":36,"line":771},[34,143239,33222],{"class":580},[34,143241,143242],{"class":36,"line":794},[34,143243,62],{"emptyLinePlaceholder":61},[34,143245,143246],{"class":36,"line":824},[34,143247,143248],{"class":40},"-- For loop (generic)\n",[34,143250,143251,143253,143256,143258,143260,143263,143265,143268,143270,143273],{"class":36,"line":830},[34,143252,141300],{"class":580},[34,143254,143255],{"class":181}," colors ",[34,143257,1301],{"class":580},[34,143259,11838],{"class":181},[34,143261,143262],{"class":54},"\"red\"",[34,143264,1798],{"class":181},[34,143266,143267],{"class":54},"\"green\"",[34,143269,1798],{"class":181},[34,143271,143272],{"class":54},"\"blue\"",[34,143274,693],{"class":181},[34,143276,143277,143279,143282,143284,143286,143289],{"class":36,"line":839},[34,143278,10246],{"class":580},[34,143280,143281],{"class":181}," index, color ",[34,143283,10252],{"class":580},[34,143285,142859],{"class":50},[34,143287,143288],{"class":181},"(colors) ",[34,143290,10271],{"class":580},[34,143292,143293,143295],{"class":36,"line":854},[34,143294,141419],{"class":50},[34,143296,143297],{"class":181},"(index, color)\n",[34,143299,143300],{"class":36,"line":860},[34,143301,33222],{"class":580},[34,143303,143304],{"class":36,"line":865},[34,143305,62],{"emptyLinePlaceholder":61},[34,143307,143308],{"class":36,"line":870},[34,143309,143310],{"class":40},"-- Break (no continue in Lua)\n",[34,143312,143313,143315,143317,143319,143321,143323,143325],{"class":36,"line":876},[34,143314,10246],{"class":580},[34,143316,10300],{"class":181},[34,143318,1301],{"class":580},[34,143320,3567],{"class":50},[34,143322,1798],{"class":181},[34,143324,11923],{"class":50},[34,143326,141792],{"class":580},[34,143328,143329,143331,143333,143335,143337],{"class":36,"line":885},[34,143330,2902],{"class":580},[34,143332,10300],{"class":181},[34,143334,18168],{"class":580},[34,143336,11144],{"class":50},[34,143338,141625],{"class":580},[34,143340,143341,143343],{"class":36,"line":895},[34,143342,19011],{"class":580},[34,143344,143345],{"class":40},"               -- Exit loop\n",[34,143347,143348],{"class":36,"line":904},[34,143349,79009],{"class":580},[34,143351,143352,143354],{"class":36,"line":915},[34,143353,141419],{"class":50},[34,143355,88624],{"class":181},[34,143357,143358],{"class":36,"line":927},[34,143359,33222],{"class":580},[388,143361,25257],{},{"title":30,"searchDepth":44,"depth":44,"links":143363},[143364],{"id":11774,"depth":44,"text":11769},"Loops in Lua.",{},"/lua/loops",{"title":11769,"description":143365},"lua/loops",[90057,10359,121242,141595],"oT3bUOEmitDC4APegG62QBajaCdgMiaESvgigGYO2Zo",{"id":143373,"title":143374,"body":143375,"date":402,"description":143724,"extension":404,"meta":143725,"navigation":61,"order":250,"path":143726,"seo":143727,"stem":143728,"subject":90057,"tags":143729,"__hash__":143730},"topics/lua/metatables.md","Metatables",{"type":8,"value":143376,"toc":143721},[143377,143380,143719],[11,143378,143374],{"id":143379},"metatables",[25,143381,143383],{"className":141287,"code":143382,"language":90057,"meta":30,"style":30},"-- Metatables enable operator overloading and OOP\nlocal vector = {x = 1, y = 2}\nlocal vector_mt = {\n    __add = function(a, b)  -- Overload + operator\n        return {x = a.x + b.x, y = a.y + b.y}\n    end,\n    __tostring = function(v) -- Overload tostring()\n        return string.format(\"(%d, %d)\", v.x, v.y)\n    end\n}\nsetmetatable(vector, vector_mt)\n\nlocal v1 = {x = 1, y = 2}\nlocal v2 = {x = 3, y = 4}\nsetmetatable(v1, vector_mt)\nsetmetatable(v2, vector_mt)\nlocal v3 = v1 + v2          -- v3.x=4, v3.y=6\n\n-- __index for property lookup\nlocal prototype = {\n    greet = function(self)\n        return \"Hello, \" .. self.name\n    end\n}\nlocal obj = {name = \"Alice\"}\nsetmetatable(obj, {__index = prototype})\nprint(obj:greet())          -- \"Hello, Alice\"\n",[20,143384,143385,143390,143415,143426,143441,143476,143483,143498,143520,143524,143528,143536,143540,143563,143586,143593,143600,143619,143623,143628,143639,143651,143665,143669,143673,143689,143700],{"__ignoreMap":30},[34,143386,143387],{"class":36,"line":37},[34,143388,143389],{"class":40},"-- Metatables enable operator overloading and OOP\n",[34,143391,143392,143394,143397,143399,143402,143404,143406,143409,143411,143413],{"class":36,"line":44},[34,143393,141300],{"class":580},[34,143395,143396],{"class":181}," vector ",[34,143398,1301],{"class":580},[34,143400,143401],{"class":181}," {x ",[34,143403,1301],{"class":580},[34,143405,3567],{"class":50},[34,143407,143408],{"class":181},", y ",[34,143410,1301],{"class":580},[34,143412,4292],{"class":50},[34,143414,693],{"class":181},[34,143416,143417,143419,143422,143424],{"class":36,"line":58},[34,143418,141300],{"class":580},[34,143420,143421],{"class":181}," vector_mt ",[34,143423,1301],{"class":580},[34,143425,661],{"class":181},[34,143427,143428,143431,143433,143435,143438],{"class":36,"line":65},[34,143429,143430],{"class":47},"    __add",[34,143432,683],{"class":580},[34,143434,8037],{"class":580},[34,143436,143437],{"class":181},"(a, b)  ",[34,143439,143440],{"class":40},"-- Overload + operator\n",[34,143442,143443,143445,143447,143449,143451,143453,143455,143458,143460,143462,143464,143466,143468,143470,143472,143474],{"class":36,"line":71},[34,143444,13895],{"class":580},[34,143446,143401],{"class":181},[34,143448,1301],{"class":580},[34,143450,130395],{"class":181},[34,143452,23655],{"class":47},[34,143454,11537],{"class":580},[34,143456,143457],{"class":181}," b.",[34,143459,23655],{"class":47},[34,143461,143408],{"class":181},[34,143463,1301],{"class":580},[34,143465,130395],{"class":181},[34,143467,60946],{"class":47},[34,143469,11537],{"class":580},[34,143471,143457],{"class":181},[34,143473,60946],{"class":47},[34,143475,693],{"class":181},[34,143477,143478,143481],{"class":36,"line":77},[34,143479,143480],{"class":580},"    end",[34,143482,624],{"class":181},[34,143484,143485,143488,143490,143492,143495],{"class":36,"line":82},[34,143486,143487],{"class":47},"    __tostring",[34,143489,683],{"class":580},[34,143491,8037],{"class":580},[34,143493,143494],{"class":181},"(v) ",[34,143496,143497],{"class":40},"-- Overload tostring()\n",[34,143499,143500,143502,143504,143506,143509,143512,143514,143516,143518],{"class":36,"line":88},[34,143501,13895],{"class":580},[34,143503,143018],{"class":50},[34,143505,1607],{"class":181},[34,143507,143508],{"class":54},"\"(%d, %d)\"",[34,143510,143511],{"class":181},", v.",[34,143513,23655],{"class":47},[34,143515,143511],{"class":181},[34,143517,60946],{"class":47},[34,143519,3372],{"class":181},[34,143521,143522],{"class":36,"line":242},[34,143523,79009],{"class":580},[34,143525,143526],{"class":36,"line":250},[34,143527,693],{"class":181},[34,143529,143530,143533],{"class":36,"line":263},[34,143531,143532],{"class":50},"setmetatable",[34,143534,143535],{"class":181},"(vector, vector_mt)\n",[34,143537,143538],{"class":36,"line":275},[34,143539,62],{"emptyLinePlaceholder":61},[34,143541,143542,143544,143547,143549,143551,143553,143555,143557,143559,143561],{"class":36,"line":700},[34,143543,141300],{"class":580},[34,143545,143546],{"class":181}," v1 ",[34,143548,1301],{"class":580},[34,143550,143401],{"class":181},[34,143552,1301],{"class":580},[34,143554,3567],{"class":50},[34,143556,143408],{"class":181},[34,143558,1301],{"class":580},[34,143560,4292],{"class":50},[34,143562,693],{"class":181},[34,143564,143565,143567,143570,143572,143574,143576,143578,143580,143582,143584],{"class":36,"line":706},[34,143566,141300],{"class":580},[34,143568,143569],{"class":181}," v2 ",[34,143571,1301],{"class":580},[34,143573,143401],{"class":181},[34,143575,1301],{"class":580},[34,143577,11147],{"class":50},[34,143579,143408],{"class":181},[34,143581,1301],{"class":580},[34,143583,11801],{"class":50},[34,143585,693],{"class":181},[34,143587,143588,143590],{"class":36,"line":715},[34,143589,143532],{"class":50},[34,143591,143592],{"class":181},"(v1, vector_mt)\n",[34,143594,143595,143597],{"class":36,"line":725},[34,143596,143532],{"class":50},[34,143598,143599],{"class":181},"(v2, vector_mt)\n",[34,143601,143602,143604,143607,143609,143611,143613,143616],{"class":36,"line":734},[34,143603,141300],{"class":580},[34,143605,143606],{"class":181}," v3 ",[34,143608,1301],{"class":580},[34,143610,143546],{"class":181},[34,143612,2940],{"class":580},[34,143614,143615],{"class":181}," v2          ",[34,143617,143618],{"class":40},"-- v3.x=4, v3.y=6\n",[34,143620,143621],{"class":36,"line":742},[34,143622,62],{"emptyLinePlaceholder":61},[34,143624,143625],{"class":36,"line":748},[34,143626,143627],{"class":40},"-- __index for property lookup\n",[34,143629,143630,143632,143635,143637],{"class":36,"line":754},[34,143631,141300],{"class":580},[34,143633,143634],{"class":181}," prototype ",[34,143636,1301],{"class":580},[34,143638,661],{"class":181},[34,143640,143641,143644,143646,143648],{"class":36,"line":759},[34,143642,143643],{"class":47},"    greet",[34,143645,683],{"class":580},[34,143647,8037],{"class":580},[34,143649,143650],{"class":181},"(self)\n",[34,143652,143653,143655,143657,143659,143661,143663],{"class":36,"line":771},[34,143654,13895],{"class":580},[34,143656,142621],{"class":54},[34,143658,101074],{"class":580},[34,143660,74044],{"class":50},[34,143662,151],{"class":181},[34,143664,141531],{"class":47},[34,143666,143667],{"class":36,"line":794},[34,143668,79009],{"class":580},[34,143670,143671],{"class":36,"line":824},[34,143672,693],{"class":181},[34,143674,143675,143677,143679,143681,143683,143685,143687],{"class":36,"line":830},[34,143676,141300],{"class":580},[34,143678,141460],{"class":181},[34,143680,1301],{"class":580},[34,143682,141465],{"class":181},[34,143684,1301],{"class":580},[34,143686,25138],{"class":54},[34,143688,693],{"class":181},[34,143690,143691,143693,143695,143697],{"class":36,"line":839},[34,143692,143532],{"class":50},[34,143694,141483],{"class":181},[34,143696,1301],{"class":580},[34,143698,143699],{"class":181}," prototype})\n",[34,143701,143702,143704,143706,143709,143711,143713,143716],{"class":36,"line":854},[34,143703,53417],{"class":50},[34,143705,1607],{"class":181},[34,143707,143708],{"class":47},"obj",[34,143710,165],{"class":181},[34,143712,11011],{"class":50},[34,143714,143715],{"class":181},"())          ",[34,143717,143718],{"class":40},"-- \"Hello, Alice\"\n",[388,143720,19339],{},{"title":30,"searchDepth":44,"depth":44,"links":143722},[143723],{"id":143379,"depth":44,"text":143374},"Metatables in Lua.",{},"/lua/metatables",{"title":143374,"description":143724},"lua/metatables",[90057,10359,121242,141595],"GjKP_d3lUAQK2gGZ4kVZfQ4jyeqhOoG771dS_hTaUqE",{"id":143732,"title":88402,"body":143733,"date":402,"description":143888,"extension":404,"meta":143889,"navigation":61,"order":263,"path":143890,"seo":143891,"stem":143892,"subject":90057,"tags":143893,"__hash__":143894},"topics/lua/modules.md",{"type":8,"value":143734,"toc":143885},[143735,143737,143883],[11,143736,88402],{"id":88401},[25,143738,143740],{"className":141287,"code":143739,"language":90057,"meta":30,"style":30},"-- mymodule.lua\nlocal M = {}                -- Module table\n\nfunction M.add(a, b)\n    return a + b\nend\n\nfunction M.subtract(a, b)\n    return a - b\nend\n\nreturn M\n\n-- Using the module\nlocal mymodule = require(\"mymodule\")\nprint(mymodule.add(5, 3))   -- 8\n",[20,143741,143742,143747,143762,143766,143779,143789,143793,143797,143810,143820,143824,143828,143835,143839,143844,143862],{"__ignoreMap":30},[34,143743,143744],{"class":36,"line":37},[34,143745,143746],{"class":40},"-- mymodule.lua\n",[34,143748,143749,143751,143754,143756,143759],{"class":36,"line":44},[34,143750,141300],{"class":580},[34,143752,143753],{"class":181}," M ",[34,143755,1301],{"class":580},[34,143757,143758],{"class":181}," {}                ",[34,143760,143761],{"class":40},"-- Module table\n",[34,143763,143764],{"class":36,"line":58},[34,143765,62],{"emptyLinePlaceholder":61},[34,143767,143768,143770,143773,143775,143777],{"class":36,"line":65},[34,143769,11044],{"class":580},[34,143771,143772],{"class":47}," M",[34,143774,151],{"class":181},[34,143776,11093],{"class":47},[34,143778,135916],{"class":181},[34,143780,143781,143783,143785,143787],{"class":36,"line":71},[34,143782,1564],{"class":580},[34,143784,8065],{"class":181},[34,143786,2940],{"class":580},[34,143788,87475],{"class":181},[34,143790,143791],{"class":36,"line":77},[34,143792,33222],{"class":580},[34,143794,143795],{"class":36,"line":82},[34,143796,62],{"emptyLinePlaceholder":61},[34,143798,143799,143801,143803,143805,143808],{"class":36,"line":88},[34,143800,11044],{"class":580},[34,143802,143772],{"class":47},[34,143804,151],{"class":181},[34,143806,143807],{"class":47},"subtract",[34,143809,135916],{"class":181},[34,143811,143812,143814,143816,143818],{"class":36,"line":242},[34,143813,1564],{"class":580},[34,143815,8065],{"class":181},[34,143817,22062],{"class":580},[34,143819,87475],{"class":181},[34,143821,143822],{"class":36,"line":250},[34,143823,33222],{"class":580},[34,143825,143826],{"class":36,"line":263},[34,143827,62],{"emptyLinePlaceholder":61},[34,143829,143830,143832],{"class":36,"line":275},[34,143831,2917],{"class":580},[34,143833,143834],{"class":181}," M\n",[34,143836,143837],{"class":36,"line":700},[34,143838,62],{"emptyLinePlaceholder":61},[34,143840,143841],{"class":36,"line":706},[34,143842,143843],{"class":40},"-- Using the module\n",[34,143845,143846,143848,143851,143853,143855,143857,143860],{"class":36,"line":715},[34,143847,141300],{"class":580},[34,143849,143850],{"class":181}," mymodule ",[34,143852,1301],{"class":580},[34,143854,111491],{"class":50},[34,143856,1607],{"class":181},[34,143858,143859],{"class":54},"\"mymodule\"",[34,143861,3372],{"class":181},[34,143863,143864,143866,143868,143870,143872,143874,143876,143878,143880],{"class":36,"line":725},[34,143865,53417],{"class":50},[34,143867,88473],{"class":181},[34,143869,11093],{"class":50},[34,143871,1607],{"class":181},[34,143873,2778],{"class":50},[34,143875,1798],{"class":181},[34,143877,3162],{"class":50},[34,143879,76784],{"class":181},[34,143881,143882],{"class":40},"-- 8\n",[388,143884,33776],{},{"title":30,"searchDepth":44,"depth":44,"links":143886},[143887],{"id":88401,"depth":44,"text":88402},"Modules in Lua.",{},"/lua/modules",{"title":88402,"description":143888},"lua/modules",[90057,10359,121242,141595],"v3QT1EP8N0LPifBiuWNW1ZK-4WDXakBl_suEsOMmjLQ",{"id":143896,"title":143897,"body":143898,"date":2633,"description":143963,"extension":404,"meta":143964,"navigation":61,"order":37,"path":143965,"seo":143966,"stem":143967,"subject":90057,"tags":143968,"__hash__":143969},"topics/lua/overview.md","Lua",{"type":8,"value":143899,"toc":143961},[143900],[309,143901,143902,143906,143911,143915,143920,143925,143929,143933,143937,143941,143945,143949,143953,143957],{},[312,143903,143904],{},[145,143905,22151],{"href":143042},[312,143907,143908],{},[145,143909,12166],{"href":143910},"/lua/variables",[312,143912,143913],{},[145,143914,61423],{"href":142072},[312,143916,143917],{},[145,143918,23101],{"href":143919},"/lua/strings",[312,143921,143922],{},[145,143923,89961],{"href":143924},"/lua/tables",[312,143926,143927],{},[145,143928,10991],{"href":142928},[312,143930,143931],{},[145,143932,18818],{"href":141737},[312,143934,143935],{},[145,143936,11769],{"href":143367},[312,143938,143939],{},[145,143940,143374],{"href":143726},[312,143942,143943],{},[145,143944,88402],{"href":143890},[312,143946,143947],{},[145,143948,21267],{"href":142585},[312,143950,143951],{},[145,143952,19352],{"href":142270},[312,143954,143955],{},[145,143956,135090],{"href":141890},[312,143958,143959],{},[145,143960,141279],{"href":141591},{"title":30,"searchDepth":44,"depth":44,"links":143962},[],"Essential Lua syntax, tables, functions, and scripting patterns.",{},"/lua/overview",{"title":143897,"description":143963},"lua/overview",[90057,10359,121242,141595],"pa291PRPlM53QMg-vsMg3Ud17hsOTLVdSsBXboiK--k",{"id":143971,"title":23101,"body":143972,"date":402,"description":144208,"extension":404,"meta":144209,"navigation":61,"order":71,"path":143919,"seo":144210,"stem":144211,"subject":90057,"tags":144212,"__hash__":144213},"topics/lua/strings.md",{"type":8,"value":143973,"toc":144205},[143974,143976,144203],[11,143975,23101],{"id":24353},[25,143977,143979],{"className":141287,"code":143978,"language":90057,"meta":30,"style":30},"-- String creation\nlocal s1 = \"single quotes\"\nlocal s2 = 'double quotes'\nlocal s3 = [[multi-line\nstring]]\n\n-- String concatenation\nlocal greeting = \"Hello, \" .. name .. \"!\"\n\n-- String methods\nlocal text = \"Lua Programming\"\nprint(text:upper())         -- \"LUA PROGRAMMING\"\nprint(text:lower())         -- \"lua programming\"\nprint(text:sub(1, 3))       -- \"Lua\" (1-indexed!)\nprint(text:len())           -- 15\nprint(text:find(\"Pro\"))     -- 5, 7 (start and end positions)\n\n-- String formatting\nlocal msg = string.format(\"User %s is %d years old\", name, age)\n",[20,143980,143981,143986,143998,144010,144022,144027,144031,144036,144054,144058,144063,144074,144093,144111,144137,144154,144177,144181,144186],{"__ignoreMap":30},[34,143982,143983],{"class":36,"line":37},[34,143984,143985],{"class":40},"-- String creation\n",[34,143987,143988,143990,143993,143995],{"class":36,"line":44},[34,143989,141300],{"class":580},[34,143991,143992],{"class":181}," s1 ",[34,143994,1301],{"class":580},[34,143996,143997],{"class":54}," \"single quotes\"\n",[34,143999,144000,144002,144005,144007],{"class":36,"line":58},[34,144001,141300],{"class":580},[34,144003,144004],{"class":181}," s2 ",[34,144006,1301],{"class":580},[34,144008,144009],{"class":54}," 'double quotes'\n",[34,144011,144012,144014,144017,144019],{"class":36,"line":65},[34,144013,141300],{"class":580},[34,144015,144016],{"class":181}," s3 ",[34,144018,1301],{"class":580},[34,144020,144021],{"class":54}," [[multi-line\n",[34,144023,144024],{"class":36,"line":71},[34,144025,144026],{"class":54},"string]]\n",[34,144028,144029],{"class":36,"line":77},[34,144030,62],{"emptyLinePlaceholder":61},[34,144032,144033],{"class":36,"line":82},[34,144034,144035],{"class":40},"-- String concatenation\n",[34,144037,144038,144040,144042,144044,144046,144048,144050,144052],{"class":36,"line":88},[34,144039,141300],{"class":580},[34,144041,137248],{"class":181},[34,144043,1301],{"class":580},[34,144045,142621],{"class":54},[34,144047,101074],{"class":580},[34,144049,30212],{"class":181},[34,144051,101074],{"class":580},[34,144053,142630],{"class":54},[34,144055,144056],{"class":36,"line":242},[34,144057,62],{"emptyLinePlaceholder":61},[34,144059,144060],{"class":36,"line":250},[34,144061,144062],{"class":40},"-- String methods\n",[34,144064,144065,144067,144069,144071],{"class":36,"line":263},[34,144066,141300],{"class":580},[34,144068,32978],{"class":181},[34,144070,1301],{"class":580},[34,144072,144073],{"class":54}," \"Lua Programming\"\n",[34,144075,144076,144078,144080,144082,144084,144087,144090],{"class":36,"line":275},[34,144077,53417],{"class":50},[34,144079,1607],{"class":181},[34,144081,780],{"class":47},[34,144083,165],{"class":181},[34,144085,144086],{"class":50},"upper",[34,144088,144089],{"class":181},"())         ",[34,144091,144092],{"class":40},"-- \"LUA PROGRAMMING\"\n",[34,144094,144095,144097,144099,144101,144103,144106,144108],{"class":36,"line":700},[34,144096,53417],{"class":50},[34,144098,1607],{"class":181},[34,144100,780],{"class":47},[34,144102,165],{"class":181},[34,144104,144105],{"class":50},"lower",[34,144107,144089],{"class":181},[34,144109,144110],{"class":40},"-- \"lua programming\"\n",[34,144112,144113,144115,144117,144119,144121,144123,144125,144127,144129,144131,144134],{"class":36,"line":706},[34,144114,53417],{"class":50},[34,144116,1607],{"class":181},[34,144118,780],{"class":47},[34,144120,165],{"class":181},[34,144122,119454],{"class":50},[34,144124,1607],{"class":181},[34,144126,8318],{"class":50},[34,144128,1798],{"class":181},[34,144130,3162],{"class":50},[34,144132,144133],{"class":181},"))       ",[34,144135,144136],{"class":40},"-- \"Lua\" (1-indexed!)\n",[34,144138,144139,144141,144143,144145,144147,144149,144151],{"class":36,"line":715},[34,144140,53417],{"class":50},[34,144142,1607],{"class":181},[34,144144,780],{"class":47},[34,144146,165],{"class":181},[34,144148,63603],{"class":50},[34,144150,75413],{"class":181},[34,144152,144153],{"class":40},"-- 15\n",[34,144155,144156,144158,144160,144162,144164,144166,144168,144171,144174],{"class":36,"line":725},[34,144157,53417],{"class":50},[34,144159,1607],{"class":181},[34,144161,780],{"class":47},[34,144163,165],{"class":181},[34,144165,12963],{"class":50},[34,144167,1607],{"class":181},[34,144169,144170],{"class":54},"\"Pro\"",[34,144172,144173],{"class":181},"))     ",[34,144175,144176],{"class":40},"-- 5, 7 (start and end positions)\n",[34,144178,144179],{"class":36,"line":734},[34,144180,62],{"emptyLinePlaceholder":61},[34,144182,144183],{"class":36,"line":742},[34,144184,144185],{"class":40},"-- String formatting\n",[34,144187,144188,144190,144192,144194,144196,144198,144201],{"class":36,"line":748},[34,144189,141300],{"class":580},[34,144191,104053],{"class":181},[34,144193,1301],{"class":580},[34,144195,143018],{"class":50},[34,144197,1607],{"class":181},[34,144199,144200],{"class":54},"\"User %s is %d years old\"",[34,144202,104370],{"class":181},[388,144204,12143],{},{"title":30,"searchDepth":44,"depth":44,"links":144206},[144207],{"id":24353,"depth":44,"text":23101},"Strings in Lua.",{},{"title":23101,"description":144208},"lua/strings",[90057,10359,121242,141595],"eyOT9OL1onDzZ4wkN8D3FodeV_KCXE97Shrm9ujqH2M",{"id":144215,"title":89961,"body":144216,"date":402,"description":144536,"extension":404,"meta":144537,"navigation":61,"order":77,"path":143924,"seo":144538,"stem":144539,"subject":90057,"tags":144540,"__hash__":144541},"topics/lua/tables.md",{"type":8,"value":144217,"toc":144533},[144218,144220,144531],[11,144219,89961],{"id":89960},[25,144221,144223],{"className":141287,"code":144222,"language":90057,"meta":30,"style":30},"-- Arrays (1-indexed!)\nlocal fruits = {\"apple\", \"banana\", \"cherry\"}\nprint(fruits[1])            -- \"apple\" (NOT 0!)\ntable.insert(fruits, \"date\") -- Add to end\ntable.remove(fruits, 1)     -- Remove first element\n\n-- Dictionaries (hash tables)\nlocal person = {\n    name = \"Alice\",\n    age = 30,\n    active = true\n}\nprint(person.name)          -- \"Alice\"\nprint(person[\"age\"])        -- 30\n\n-- Mixed tables\nlocal mixed = {\n    \"first\",                -- [1] = \"first\"\n    \"second\",               -- [2] = \"second\"\n    key = \"value\",          -- key-value pair\n    [10] = \"tenth\"          -- numeric key\n}\n\n-- Table iteration\nfor key, value in pairs(person) do\n    print(key, value)       -- Iterate all key-value pairs\nend\n\nfor i, fruit in ipairs(fruits) do\n    print(i, fruit)         -- Iterate array part only\nend\n",[20,144224,144225,144230,144255,144270,144285,144299,144303,144308,144318,144328,144338,144347,144351,144365,144380,144384,144389,144400,144411,144422,144438,144454,144458,144462,144467,144483,144493,144497,144501,144517,144527],{"__ignoreMap":30},[34,144226,144227],{"class":36,"line":37},[34,144228,144229],{"class":40},"-- Arrays (1-indexed!)\n",[34,144231,144232,144234,144237,144239,144241,144243,144245,144248,144250,144253],{"class":36,"line":44},[34,144233,141300],{"class":580},[34,144235,144236],{"class":181}," fruits ",[34,144238,1301],{"class":580},[34,144240,11838],{"class":181},[34,144242,10088],{"class":54},[34,144244,1798],{"class":181},[34,144246,144247],{"class":54},"\"banana\"",[34,144249,1798],{"class":181},[34,144251,144252],{"class":54},"\"cherry\"",[34,144254,693],{"class":181},[34,144256,144257,144259,144262,144264,144267],{"class":36,"line":58},[34,144258,53417],{"class":50},[34,144260,144261],{"class":181},"(fruits[",[34,144263,8318],{"class":50},[34,144265,144266],{"class":181},"])            ",[34,144268,144269],{"class":40},"-- \"apple\" (NOT 0!)\n",[34,144271,144272,144275,144278,144280,144282],{"class":36,"line":65},[34,144273,144274],{"class":50},"table.insert",[34,144276,144277],{"class":181},"(fruits, ",[34,144279,116277],{"class":54},[34,144281,4817],{"class":181},[34,144283,144284],{"class":40},"-- Add to end\n",[34,144286,144287,144290,144292,144294,144296],{"class":36,"line":71},[34,144288,144289],{"class":50},"table.remove",[34,144291,144277],{"class":181},[34,144293,8318],{"class":50},[34,144295,104237],{"class":181},[34,144297,144298],{"class":40},"-- Remove first element\n",[34,144300,144301],{"class":36,"line":77},[34,144302,62],{"emptyLinePlaceholder":61},[34,144304,144305],{"class":36,"line":82},[34,144306,144307],{"class":40},"-- Dictionaries (hash tables)\n",[34,144309,144310,144312,144314,144316],{"class":36,"line":88},[34,144311,141300],{"class":580},[34,144313,37647],{"class":181},[34,144315,1301],{"class":580},[34,144317,661],{"class":181},[34,144319,144320,144322,144324,144326],{"class":36,"line":242},[34,144321,87875],{"class":181},[34,144323,1301],{"class":580},[34,144325,25138],{"class":54},[34,144327,624],{"class":181},[34,144329,144330,144332,144334,144336],{"class":36,"line":250},[34,144331,28451],{"class":181},[34,144333,1301],{"class":580},[34,144335,30458],{"class":50},[34,144337,624],{"class":181},[34,144339,144340,144343,144345],{"class":36,"line":263},[34,144341,144342],{"class":181},"    active ",[34,144344,1301],{"class":580},[34,144346,104956],{"class":50},[34,144348,144349],{"class":36,"line":275},[34,144350,693],{"class":181},[34,144352,144353,144355,144358,144360,144362],{"class":36,"line":700},[34,144354,53417],{"class":50},[34,144356,144357],{"class":181},"(person.",[34,144359,178],{"class":47},[34,144361,104258],{"class":181},[34,144363,144364],{"class":40},"-- \"Alice\"\n",[34,144366,144367,144369,144372,144374,144377],{"class":36,"line":706},[34,144368,53417],{"class":50},[34,144370,144371],{"class":181},"(person[",[34,144373,58524],{"class":54},[34,144375,144376],{"class":181},"])        ",[34,144378,144379],{"class":40},"-- 30\n",[34,144381,144382],{"class":36,"line":715},[34,144383,62],{"emptyLinePlaceholder":61},[34,144385,144386],{"class":36,"line":725},[34,144387,144388],{"class":40},"-- Mixed tables\n",[34,144390,144391,144393,144396,144398],{"class":36,"line":734},[34,144392,141300],{"class":580},[34,144394,144395],{"class":181}," mixed ",[34,144397,1301],{"class":580},[34,144399,661],{"class":181},[34,144401,144402,144405,144408],{"class":36,"line":742},[34,144403,144404],{"class":54},"    \"first\"",[34,144406,144407],{"class":181},",                ",[34,144409,144410],{"class":40},"-- [1] = \"first\"\n",[34,144412,144413,144416,144419],{"class":36,"line":748},[34,144414,144415],{"class":54},"    \"second\"",[34,144417,144418],{"class":181},",               ",[34,144420,144421],{"class":40},"-- [2] = \"second\"\n",[34,144423,144424,144427,144429,144432,144435],{"class":36,"line":754},[34,144425,144426],{"class":181},"    key ",[34,144428,1301],{"class":580},[34,144430,144431],{"class":54}," \"value\"",[34,144433,144434],{"class":181},",          ",[34,144436,144437],{"class":40},"-- key-value pair\n",[34,144439,144440,144442,144444,144446,144448,144451],{"class":36,"line":759},[34,144441,33545],{"class":181},[34,144443,11923],{"class":50},[34,144445,17799],{"class":181},[34,144447,1301],{"class":580},[34,144449,144450],{"class":54}," \"tenth\"          ",[34,144452,144453],{"class":40},"-- numeric key\n",[34,144455,144456],{"class":36,"line":771},[34,144457,693],{"class":181},[34,144459,144460],{"class":36,"line":794},[34,144461,62],{"emptyLinePlaceholder":61},[34,144463,144464],{"class":36,"line":824},[34,144465,144466],{"class":40},"-- Table iteration\n",[34,144468,144469,144471,144473,144475,144478,144481],{"class":36,"line":830},[34,144470,10246],{"class":580},[34,144472,107014],{"class":181},[34,144474,10252],{"class":580},[34,144476,144477],{"class":50}," pairs",[34,144479,144480],{"class":181},"(person) ",[34,144482,10271],{"class":580},[34,144484,144485,144487,144490],{"class":36,"line":839},[34,144486,141419],{"class":50},[34,144488,144489],{"class":181},"(key, value)       ",[34,144491,144492],{"class":40},"-- Iterate all key-value pairs\n",[34,144494,144495],{"class":36,"line":854},[34,144496,33222],{"class":580},[34,144498,144499],{"class":36,"line":860},[34,144500,62],{"emptyLinePlaceholder":61},[34,144502,144503,144505,144508,144510,144512,144515],{"class":36,"line":865},[34,144504,10246],{"class":580},[34,144506,144507],{"class":181}," i, fruit ",[34,144509,10252],{"class":580},[34,144511,142859],{"class":50},[34,144513,144514],{"class":181},"(fruits) ",[34,144516,10271],{"class":580},[34,144518,144519,144521,144524],{"class":36,"line":870},[34,144520,141419],{"class":50},[34,144522,144523],{"class":181},"(i, fruit)         ",[34,144525,144526],{"class":40},"-- Iterate array part only\n",[34,144528,144529],{"class":36,"line":876},[34,144530,33222],{"class":580},[388,144532,12143],{},{"title":30,"searchDepth":44,"depth":44,"links":144534},[144535],{"id":89960,"depth":44,"text":89961},"Tables in Lua.",{},{"title":89961,"description":144536},"lua/tables",[90057,10359,121242,141595],"msd7K767jpEzPSJbSLzu8Lvox73eqvbAhW29-jYcdLA",{"id":144543,"title":12166,"body":144544,"date":402,"description":144650,"extension":404,"meta":144651,"navigation":61,"order":58,"path":143910,"seo":144652,"stem":144653,"subject":90057,"tags":144654,"__hash__":144655},"topics/lua/variables.md",{"type":8,"value":144545,"toc":144647},[144546,144548,144645],[11,144547,12166],{"id":13314},[25,144549,144551],{"className":141287,"code":144550,"language":90057,"meta":30,"style":30},"-- Variables are global by default\nname = \"Alice\"              -- String\nage = 30                    -- Number (no separate int/float types)\nis_active = true            -- Boolean\nempty = nil                 -- Nil (absence of value)\n\n-- Local variables (recommended)\nlocal x = 10                -- Block-scoped\nlocal y, z = 20, 30         -- Multiple assignment\n",[20,144552,144553,144558,144570,144581,144593,144605,144609,144614,144627],{"__ignoreMap":30},[34,144554,144555],{"class":36,"line":37},[34,144556,144557],{"class":40},"-- Variables are global by default\n",[34,144559,144560,144562,144564,144567],{"class":36,"line":44},[34,144561,37383],{"class":181},[34,144563,1301],{"class":580},[34,144565,144566],{"class":54}," \"Alice\"              ",[34,144568,144569],{"class":40},"-- String\n",[34,144571,144572,144574,144576,144578],{"class":36,"line":58},[34,144573,24879],{"class":181},[34,144575,1301],{"class":580},[34,144577,30458],{"class":50},[34,144579,144580],{"class":40},"                    -- Number (no separate int/float types)\n",[34,144582,144583,144586,144588,144590],{"class":36,"line":65},[34,144584,144585],{"class":181},"is_active ",[34,144587,1301],{"class":580},[34,144589,32945],{"class":50},[34,144591,144592],{"class":40},"            -- Boolean\n",[34,144594,144595,144598,144600,144602],{"class":36,"line":71},[34,144596,144597],{"class":181},"empty ",[34,144599,1301],{"class":580},[34,144601,105194],{"class":50},[34,144603,144604],{"class":40},"                 -- Nil (absence of value)\n",[34,144606,144607],{"class":36,"line":77},[34,144608,62],{"emptyLinePlaceholder":61},[34,144610,144611],{"class":36,"line":82},[34,144612,144613],{"class":40},"-- Local variables (recommended)\n",[34,144615,144616,144618,144620,144622,144624],{"class":36,"line":88},[34,144617,141300],{"class":580},[34,144619,23172],{"class":181},[34,144621,1301],{"class":580},[34,144623,13123],{"class":50},[34,144625,144626],{"class":40},"                -- Block-scoped\n",[34,144628,144629,144631,144634,144636,144638,144640,144642],{"class":36,"line":242},[34,144630,141300],{"class":580},[34,144632,144633],{"class":181}," y, z ",[34,144635,1301],{"class":580},[34,144637,22419],{"class":50},[34,144639,1798],{"class":181},[34,144641,17625],{"class":50},[34,144643,144644],{"class":40},"         -- Multiple assignment\n",[388,144646,10348],{},{"title":30,"searchDepth":44,"depth":44,"links":144648},[144649],{"id":13314,"depth":44,"text":12166},"Variables in Lua.",{},{"title":12166,"description":144650},"lua/variables",[90057,10359,121242,141595],"v1MpVqGG-1yk9VqJjNb_lsgRCipYQcZ_CNf9pA9z8Do",{"id":144657,"title":144658,"body":144659,"date":402,"description":144761,"extension":404,"meta":144762,"navigation":61,"order":71,"path":144763,"seo":144764,"stem":144765,"subject":53704,"tags":144766,"__hash__":144768},"topics/make/automatic-variables.md","Automatic Variables",{"type":8,"value":144660,"toc":144758},[144661,144664,144755],[11,144662,144658],{"id":144663},"automatic-variables",[25,144665,144669],{"className":144666,"code":144667,"language":144668,"meta":30,"style":30},"language-makefile shiki shiki-themes github-light github-dark","# Special variables make provides\nbuild: src/main.c\n    gcc $\u003C -o $@           # $\u003C = first dependency, $@ = target name\n\n%.o: %.c %.h\n    gcc -c $\u003C              # $\u003C = first prerequisite (the .c file)\n    \nlibs: lib1.o lib2.o lib3.o\n    ar rcs libmylib.a $^   # $^ = all prerequisites\n","makefile",[20,144670,144671,144676,144683,144699,144703,144722,144732,144736,144744],{"__ignoreMap":30},[34,144672,144673],{"class":36,"line":37},[34,144674,144675],{"class":40},"# Special variables make provides\n",[34,144677,144678,144680],{"class":36,"line":44},[34,144679,71370],{"class":47},[34,144681,144682],{"class":181},": src/main.c\n",[34,144684,144685,144688,144691,144694,144696],{"class":36,"line":58},[34,144686,144687],{"class":181},"    gcc ",[34,144689,144690],{"class":50},"$\u003C",[34,144692,144693],{"class":181}," -o ",[34,144695,13486],{"class":50},[34,144697,144698],{"class":40},"           # $\u003C = first dependency, $@ = target name\n",[34,144700,144701],{"class":36,"line":65},[34,144702,62],{"emptyLinePlaceholder":61},[34,144704,144705,144707,144710,144712,144714,144717,144719],{"class":36,"line":71},[34,144706,12797],{"class":50},[34,144708,144709],{"class":47},".o",[34,144711,182],{"class":181},[34,144713,12797],{"class":50},[34,144715,144716],{"class":181},".c ",[34,144718,12797],{"class":50},[34,144720,144721],{"class":181},".h\n",[34,144723,144724,144727,144729],{"class":36,"line":77},[34,144725,144726],{"class":181},"    gcc -c ",[34,144728,144690],{"class":50},[34,144730,144731],{"class":40},"              # $\u003C = first prerequisite (the .c file)\n",[34,144733,144734],{"class":36,"line":82},[34,144735,3666],{"class":181},[34,144737,144738,144741],{"class":36,"line":88},[34,144739,144740],{"class":47},"libs",[34,144742,144743],{"class":181},": lib1.o lib2.o lib3.o\n",[34,144745,144746,144749,144752],{"class":36,"line":242},[34,144747,144748],{"class":181},"    ar rcs libmylib.a ",[34,144750,144751],{"class":50},"$^",[34,144753,144754],{"class":40},"   # $^ = all prerequisites\n",[388,144756,144757],{},"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 .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":30,"searchDepth":44,"depth":44,"links":144759},[144760],{"id":144663,"depth":44,"text":144658},"Automatic Variables in Make.",{},"/make/automatic-variables",{"title":144658,"description":144761},"make/automatic-variables",[53704,71370,413,144767],"compilation","tvEjOATB4DZFeSb7Ti7aTW_f3a4VctmhJaudeVdpLVk",{"id":144770,"title":144771,"body":144772,"date":402,"description":144899,"extension":404,"meta":144900,"navigation":61,"order":44,"path":144901,"seo":144902,"stem":144903,"subject":53704,"tags":144904,"__hash__":144905},"topics/make/basic-makefile-structure.md","Basic Makefile Structure",{"type":8,"value":144773,"toc":144896},[144774,144777,144893],[11,144775,144771],{"id":144776},"basic-makefile-structure",[25,144778,144780],{"className":144666,"code":144779,"language":144668,"meta":30,"style":30},"# Target: dependencies\n#   command\n#   command\n\nall: program                # Default target (runs when you type 'make')\n\nprogram: main.o utils.o     # Target depends on object files\n    gcc -o program main.o utils.o  # Link object files\n\nmain.o: main.c              # Compile main.c to main.o\n    gcc -c main.c\n\nutils.o: utils.c utils.h    # Compile utils.c (depends on header too)\n    gcc -c utils.c\n\nclean:                      # Remove built files\n    rm -f *.o program\n",[20,144781,144782,144787,144792,144796,144800,144810,144814,144825,144833,144837,144848,144853,144857,144868,144873,144877,144888],{"__ignoreMap":30},[34,144783,144784],{"class":36,"line":37},[34,144785,144786],{"class":40},"# Target: dependencies\n",[34,144788,144789],{"class":36,"line":44},[34,144790,144791],{"class":40},"#   command\n",[34,144793,144794],{"class":36,"line":58},[34,144795,144791],{"class":40},[34,144797,144798],{"class":36,"line":65},[34,144799,62],{"emptyLinePlaceholder":61},[34,144801,144802,144804,144807],{"class":36,"line":71},[34,144803,17175],{"class":47},[34,144805,144806],{"class":181},": program                ",[34,144808,144809],{"class":40},"# Default target (runs when you type 'make')\n",[34,144811,144812],{"class":36,"line":77},[34,144813,62],{"emptyLinePlaceholder":61},[34,144815,144816,144819,144822],{"class":36,"line":82},[34,144817,144818],{"class":47},"program",[34,144820,144821],{"class":181},": main.o utils.o     ",[34,144823,144824],{"class":40},"# Target depends on object files\n",[34,144826,144827,144830],{"class":36,"line":88},[34,144828,144829],{"class":181},"    gcc -o program main.o utils.o  ",[34,144831,144832],{"class":40},"# Link object files\n",[34,144834,144835],{"class":36,"line":242},[34,144836,62],{"emptyLinePlaceholder":61},[34,144838,144839,144842,144845],{"class":36,"line":250},[34,144840,144841],{"class":47},"main.o",[34,144843,144844],{"class":181},": main.c              ",[34,144846,144847],{"class":40},"# Compile main.c to main.o\n",[34,144849,144850],{"class":36,"line":263},[34,144851,144852],{"class":181},"    gcc -c main.c\n",[34,144854,144855],{"class":36,"line":275},[34,144856,62],{"emptyLinePlaceholder":61},[34,144858,144859,144862,144865],{"class":36,"line":700},[34,144860,144861],{"class":47},"utils.o",[34,144863,144864],{"class":181},": utils.c utils.h    ",[34,144866,144867],{"class":40},"# Compile utils.c (depends on header too)\n",[34,144869,144870],{"class":36,"line":706},[34,144871,144872],{"class":181},"    gcc -c utils.c\n",[34,144874,144875],{"class":36,"line":715},[34,144876,62],{"emptyLinePlaceholder":61},[34,144878,144879,144882,144885],{"class":36,"line":725},[34,144880,144881],{"class":47},"clean",[34,144883,144884],{"class":181},":                      ",[34,144886,144887],{"class":40},"# Remove built files\n",[34,144889,144890],{"class":36,"line":734},[34,144891,144892],{"class":181},"    rm -f *.o program\n",[388,144894,144895],{},"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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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":30,"searchDepth":44,"depth":44,"links":144897},[144898],{"id":144776,"depth":44,"text":144771},"Basic Makefile Structure in Make.",{},"/make/basic-makefile-structure",{"title":144771,"description":144899},"make/basic-makefile-structure",[53704,71370,413,144767],"nkXqUcyFb9kq9gFCP_1H8dZsDwassJ6Jqe7DwT83sDk",{"id":144907,"title":113747,"body":144908,"date":402,"description":144986,"extension":404,"meta":144987,"navigation":61,"order":82,"path":144988,"seo":144989,"stem":144990,"subject":53704,"tags":144991,"__hash__":144992},"topics/make/common-commands.md",{"type":8,"value":144909,"toc":144983},[144910,144912,144980],[11,144911,113747],{"id":113746},[25,144913,144915],{"className":27,"code":144914,"language":29,"meta":30,"style":30},"make                       # Build default target (usually 'all')\nmake clean                 # Run the 'clean' target\nmake install               # Run the 'install' target\nmake -j4                   # Build with 4 parallel jobs\nmake -n                    # Dry run (show commands without executing)\nmake -B                    # Force rebuild all targets\nmake TARGET=value          # Pass variable to makefile\n",[20,144916,144917,144924,144933,144942,144952,144961,144970],{"__ignoreMap":30},[34,144918,144919,144921],{"class":36,"line":37},[34,144920,53704],{"class":47},[34,144922,144923],{"class":40},"                       # Build default target (usually 'all')\n",[34,144925,144926,144928,144930],{"class":36,"line":44},[34,144927,53704],{"class":47},[34,144929,53897],{"class":54},[34,144931,144932],{"class":40},"                 # Run the 'clean' target\n",[34,144934,144935,144937,144939],{"class":36,"line":58},[34,144936,53704],{"class":47},[34,144938,118],{"class":54},[34,144940,144941],{"class":40},"               # Run the 'install' target\n",[34,144943,144944,144946,144949],{"class":36,"line":65},[34,144945,53704],{"class":47},[34,144947,144948],{"class":50}," -j4",[34,144950,144951],{"class":40},"                   # Build with 4 parallel jobs\n",[34,144953,144954,144956,144958],{"class":36,"line":71},[34,144955,53704],{"class":47},[34,144957,7093],{"class":50},[34,144959,144960],{"class":40},"                    # Dry run (show commands without executing)\n",[34,144962,144963,144965,144967],{"class":36,"line":77},[34,144964,53704],{"class":47},[34,144966,110019],{"class":50},[34,144968,144969],{"class":40},"                    # Force rebuild all targets\n",[34,144971,144972,144974,144977],{"class":36,"line":82},[34,144973,53704],{"class":47},[34,144975,144976],{"class":54}," TARGET=value",[34,144978,144979],{"class":40},"          # Pass variable to makefile\n",[388,144981,144982],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .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":30,"searchDepth":44,"depth":44,"links":144984},[144985],{"id":113746,"depth":44,"text":113747},"Common Commands in Make.",{},"/make/common-commands",{"title":113747,"description":144986},"make/common-commands",[53704,71370,413,144767],"0zvyp7E3aIkHUOM1MlFjFC4ojMrSTmYyGmqTtlWxrvk",{"id":144994,"title":144995,"body":144996,"date":402,"description":145112,"extension":404,"meta":145113,"navigation":61,"order":77,"path":145114,"seo":145115,"stem":145116,"subject":53704,"tags":145117,"__hash__":145118},"topics/make/conditional-logic.md","Conditional Logic",{"type":8,"value":144997,"toc":145109},[144998,145001,145107],[11,144999,144995],{"id":145000},"conditional-logic",[25,145002,145004],{"className":144666,"code":145003,"language":144668,"meta":30,"style":30},"# Conditional compilation\nDEBUG ?= 0                 # Default to 0 if not set\n\nifeq ($(DEBUG), 1)\n    CFLAGS += -g -DDEBUG   # Add debug flags\nelse\n    CFLAGS += -O2          # Add optimization\nendif\n\n# Check if file exists\nifneq ($(wildcard config.mk),)\n    include config.mk      # Include if exists\nendif\n",[20,145005,145006,145011,145019,145023,145040,145048,145052,145060,145065,145069,145074,145092,145103],{"__ignoreMap":30},[34,145007,145008],{"class":36,"line":37},[34,145009,145010],{"class":40},"# Conditional compilation\n",[34,145012,145013,145016],{"class":36,"line":44},[34,145014,145015],{"class":181},"DEBUG ?= 0                 ",[34,145017,145018],{"class":40},"# Default to 0 if not set\n",[34,145020,145021],{"class":36,"line":58},[34,145022,62],{"emptyLinePlaceholder":61},[34,145024,145025,145028,145030,145032,145035,145037],{"class":36,"line":65},[34,145026,145027],{"class":580},"ifeq",[34,145029,3204],{"class":181},[34,145031,9741],{"class":54},[34,145033,145034],{"class":181},"DEBUG",[34,145036,1617],{"class":54},[34,145038,145039],{"class":181},", 1)\n",[34,145041,145042,145045],{"class":36,"line":71},[34,145043,145044],{"class":181},"    CFLAGS += -g -DDEBUG   ",[34,145046,145047],{"class":40},"# Add debug flags\n",[34,145049,145050],{"class":36,"line":77},[34,145051,10446],{"class":580},[34,145053,145054,145057],{"class":36,"line":82},[34,145055,145056],{"class":181},"    CFLAGS += -O2          ",[34,145058,145059],{"class":40},"# Add optimization\n",[34,145061,145062],{"class":36,"line":88},[34,145063,145064],{"class":580},"endif\n",[34,145066,145067],{"class":36,"line":242},[34,145068,62],{"emptyLinePlaceholder":61},[34,145070,145071],{"class":36,"line":250},[34,145072,145073],{"class":40},"# Check if file exists\n",[34,145075,145076,145079,145081,145083,145086,145089],{"class":36,"line":263},[34,145077,145078],{"class":580},"ifneq",[34,145080,3204],{"class":181},[34,145082,9741],{"class":54},[34,145084,145085],{"class":50},"wildcard",[34,145087,145088],{"class":54}," config.mk)",[34,145090,145091],{"class":181},",)\n",[34,145093,145094,145097,145100],{"class":36,"line":275},[34,145095,145096],{"class":580},"    include",[34,145098,145099],{"class":181}," config.mk      ",[34,145101,145102],{"class":40},"# Include if exists\n",[34,145104,145105],{"class":36,"line":700},[34,145106,145064],{"class":580},[388,145108,10348],{},{"title":30,"searchDepth":44,"depth":44,"links":145110},[145111],{"id":145000,"depth":44,"text":144995},"Conditional Logic in Make.",{},"/make/conditional-logic",{"title":144995,"description":145112},"make/conditional-logic",[53704,71370,413,144767],"sm9AS-n8yT7C98IcxLDuAOr6Td0oO0hcMbgfK_DF0vc",{"id":145120,"title":145121,"body":145122,"date":402,"description":145224,"extension":404,"meta":145225,"navigation":61,"order":250,"path":145226,"seo":145227,"stem":145228,"subject":53704,"tags":145229,"__hash__":145230},"topics/make/dependency-generation.md","Dependency Generation",{"type":8,"value":145123,"toc":145221},[145124,145127,145218],[11,145125,145121],{"id":145126},"dependency-generation",[25,145128,145130],{"className":144666,"code":145129,"language":144668,"meta":30,"style":30},"# Auto-generate header dependencies\nDEPS = $(OBJECTS:.o=.d)    # .d files track header dependencies\n\n-include $(DEPS)           # Include if they exist\n\n%.o: %.c\n    $(CC) $(CFLAGS) -MMD -MP -c $\u003C -o $@  # -MMD generates .d file\n",[20,145131,145132,145137,145152,145156,145172,145176,145189],{"__ignoreMap":30},[34,145133,145134],{"class":36,"line":37},[34,145135,145136],{"class":40},"# Auto-generate header dependencies\n",[34,145138,145139,145142,145144,145147,145149],{"class":36,"line":44},[34,145140,145141],{"class":181},"DEPS = ",[34,145143,9741],{"class":54},[34,145145,145146],{"class":181},"OBJECTS:.o=.d",[34,145148,1617],{"class":54},[34,145150,145151],{"class":40},"    # .d files track header dependencies\n",[34,145153,145154],{"class":36,"line":58},[34,145155,62],{"emptyLinePlaceholder":61},[34,145157,145158,145161,145164,145167,145169],{"class":36,"line":65},[34,145159,145160],{"class":580},"-include",[34,145162,145163],{"class":54}," $(",[34,145165,145166],{"class":181},"DEPS",[34,145168,1617],{"class":54},[34,145170,145171],{"class":40},"           # Include if they exist\n",[34,145173,145174],{"class":36,"line":71},[34,145175,62],{"emptyLinePlaceholder":61},[34,145177,145178,145180,145182,145184,145186],{"class":36,"line":77},[34,145179,12797],{"class":50},[34,145181,144709],{"class":47},[34,145183,182],{"class":181},[34,145185,12797],{"class":50},[34,145187,145188],{"class":181},".c\n",[34,145190,145191,145194,145197,145199,145201,145204,145206,145209,145211,145213,145215],{"class":36,"line":82},[34,145192,145193],{"class":54},"    $(",[34,145195,145196],{"class":181},"CC",[34,145198,1617],{"class":54},[34,145200,145163],{"class":54},[34,145202,145203],{"class":181},"CFLAGS",[34,145205,1617],{"class":54},[34,145207,145208],{"class":181}," -MMD -MP -c ",[34,145210,144690],{"class":50},[34,145212,144693],{"class":181},[34,145214,13486],{"class":50},[34,145216,145217],{"class":40},"  # -MMD generates .d file\n",[388,145219,145220],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .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":30,"searchDepth":44,"depth":44,"links":145222},[145223],{"id":145126,"depth":44,"text":145121},"Dependency Generation in Make.",{},"/make/dependency-generation",{"title":145121,"description":145224},"make/dependency-generation",[53704,71370,413,144767],"4YmMn4pf3Y5ZpE324O1snhCJwXPJkPpiPIbr3fJoG-s",{"id":145232,"title":10991,"body":145233,"date":402,"description":145365,"extension":404,"meta":145366,"navigation":61,"order":88,"path":145367,"seo":145368,"stem":145369,"subject":53704,"tags":145370,"__hash__":145371},"topics/make/functions.md",{"type":8,"value":145234,"toc":145362},[145235,145237,145359],[11,145236,10991],{"id":10996},[25,145238,145240],{"className":144666,"code":145239,"language":144668,"meta":30,"style":30},"# Built-in functions\nFILES = $(wildcard src/*.c)           # Find all .c files in src/\nOBJS = $(patsubst %.c,%.o,$(FILES))  # Replace .c with .o\nDIRS = $(shell find . -type d)        # Run shell command\n\n# String manipulation\nUPPER = $(shell echo $(VAR) | tr a-z A-Z)  # Convert to uppercase\nBASENAME = $(notdir $(FILES))              # Get filename without path\n",[20,145241,145242,145247,145266,145295,145310,145314,145319,145340],{"__ignoreMap":30},[34,145243,145244],{"class":36,"line":37},[34,145245,145246],{"class":40},"# Built-in functions\n",[34,145248,145249,145252,145254,145256,145258,145260,145263],{"class":36,"line":44},[34,145250,145251],{"class":181},"FILES = ",[34,145253,9741],{"class":54},[34,145255,145085],{"class":50},[34,145257,62910],{"class":54},[34,145259,4289],{"class":50},[34,145261,145262],{"class":54},".c)",[34,145264,145265],{"class":40},"           # Find all .c files in src/\n",[34,145267,145268,145271,145273,145276,145278,145281,145283,145286,145289,145292],{"class":36,"line":58},[34,145269,145270],{"class":181},"OBJS = ",[34,145272,9741],{"class":54},[34,145274,145275],{"class":50},"patsubst",[34,145277,22788],{"class":50},[34,145279,145280],{"class":54},".c,",[34,145282,12797],{"class":50},[34,145284,145285],{"class":54},".o,$(",[34,145287,145288],{"class":181},"FILES",[34,145290,145291],{"class":54},"))",[34,145293,145294],{"class":40},"  # Replace .c with .o\n",[34,145296,145297,145300,145302,145304,145307],{"class":36,"line":65},[34,145298,145299],{"class":181},"DIRS = ",[34,145301,9741],{"class":54},[34,145303,10358],{"class":50},[34,145305,145306],{"class":54}," find . -type d)",[34,145308,145309],{"class":40},"        # Run shell command\n",[34,145311,145312],{"class":36,"line":71},[34,145313,62],{"emptyLinePlaceholder":61},[34,145315,145316],{"class":36,"line":77},[34,145317,145318],{"class":40},"# String manipulation\n",[34,145320,145321,145324,145326,145328,145331,145334,145337],{"class":36,"line":82},[34,145322,145323],{"class":181},"UPPER = ",[34,145325,9741],{"class":54},[34,145327,10358],{"class":50},[34,145329,145330],{"class":54}," echo $(",[34,145332,145333],{"class":181},"VAR",[34,145335,145336],{"class":54},") | tr a-z A-Z)",[34,145338,145339],{"class":40},"  # Convert to uppercase\n",[34,145341,145342,145345,145347,145350,145352,145354,145356],{"class":36,"line":88},[34,145343,145344],{"class":181},"BASENAME = ",[34,145346,9741],{"class":54},[34,145348,145349],{"class":50},"notdir",[34,145351,145163],{"class":54},[34,145353,145288],{"class":181},[34,145355,145291],{"class":54},[34,145357,145358],{"class":40},"              # Get filename without path\n",[388,145360,145361],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .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":30,"searchDepth":44,"depth":44,"links":145363},[145364],{"id":10996,"depth":44,"text":10991},"Functions in Make.",{},"/make/functions",{"title":10991,"description":145365},"make/functions",[53704,71370,413,144767],"1DSsIPwpGrokELLlfRyv_nkN3YswKpGUnFPEQ0PBPDo",{"id":145373,"title":145374,"body":145375,"date":402,"description":145615,"extension":404,"meta":145616,"navigation":61,"order":242,"path":145617,"seo":145618,"stem":145619,"subject":53704,"tags":145620,"__hash__":145621},"topics/make/multi-directory-project.md","Multi-Directory Project",{"type":8,"value":145376,"toc":145612},[145377,145380,145609],[11,145378,145374],{"id":145379},"multi-directory-project",[25,145381,145383],{"className":144666,"code":145382,"language":144668,"meta":30,"style":30},"# Organize larger projects\nSRC_DIR = src\nBUILD_DIR = build\nINC_DIR = include\n\nSOURCES = $(wildcard $(SRC_DIR)/*.c)\nOBJECTS = $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%.o,$(SOURCES))\n\nall: $(BUILD_DIR) program\n\n$(BUILD_DIR):              # Create build directory\n    mkdir -p $(BUILD_DIR)\n\nprogram: $(OBJECTS)\n    $(CC) -o $@ $^ -I$(INC_DIR)\n\n$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c\n    $(CC) $(CFLAGS) -c $\u003C -o $@ -I$(INC_DIR)\n",[20,145384,145385,145390,145395,145400,145405,145409,145431,145465,145469,145484,145488,145502,145513,145517,145530,145554,145558,145578],{"__ignoreMap":30},[34,145386,145387],{"class":36,"line":37},[34,145388,145389],{"class":40},"# Organize larger projects\n",[34,145391,145392],{"class":36,"line":44},[34,145393,145394],{"class":181},"SRC_DIR = src\n",[34,145396,145397],{"class":36,"line":58},[34,145398,145399],{"class":181},"BUILD_DIR = build\n",[34,145401,145402],{"class":36,"line":65},[34,145403,145404],{"class":181},"INC_DIR = include\n",[34,145406,145407],{"class":36,"line":71},[34,145408,62],{"emptyLinePlaceholder":61},[34,145410,145411,145414,145416,145418,145420,145423,145426,145428],{"class":36,"line":77},[34,145412,145413],{"class":181},"SOURCES = ",[34,145415,9741],{"class":54},[34,145417,145085],{"class":50},[34,145419,145163],{"class":54},[34,145421,145422],{"class":181},"SRC_DIR",[34,145424,145425],{"class":54},")/",[34,145427,4289],{"class":50},[34,145429,145430],{"class":54},".c)\n",[34,145432,145433,145436,145438,145440,145442,145444,145446,145448,145451,145454,145456,145458,145460,145463],{"class":36,"line":82},[34,145434,145435],{"class":181},"OBJECTS = ",[34,145437,9741],{"class":54},[34,145439,145275],{"class":50},[34,145441,145163],{"class":54},[34,145443,145422],{"class":181},[34,145445,145425],{"class":54},[34,145447,12797],{"class":50},[34,145449,145450],{"class":54},".c,$(",[34,145452,145453],{"class":181},"BUILD_DIR",[34,145455,145425],{"class":54},[34,145457,12797],{"class":50},[34,145459,145285],{"class":54},[34,145461,145462],{"class":181},"SOURCES",[34,145464,11119],{"class":54},[34,145466,145467],{"class":36,"line":88},[34,145468,62],{"emptyLinePlaceholder":61},[34,145470,145471,145473,145475,145477,145479,145481],{"class":36,"line":242},[34,145472,17175],{"class":47},[34,145474,182],{"class":181},[34,145476,9741],{"class":54},[34,145478,145453],{"class":181},[34,145480,1617],{"class":54},[34,145482,145483],{"class":181}," program\n",[34,145485,145486],{"class":36,"line":250},[34,145487,62],{"emptyLinePlaceholder":61},[34,145489,145490,145492,145494,145496,145499],{"class":36,"line":263},[34,145491,9741],{"class":54},[34,145493,145453],{"class":181},[34,145495,1617],{"class":54},[34,145497,145498],{"class":181},":              ",[34,145500,145501],{"class":40},"# Create build directory\n",[34,145503,145504,145507,145509,145511],{"class":36,"line":275},[34,145505,145506],{"class":181},"    mkdir -p ",[34,145508,9741],{"class":54},[34,145510,145453],{"class":181},[34,145512,3372],{"class":54},[34,145514,145515],{"class":36,"line":700},[34,145516,62],{"emptyLinePlaceholder":61},[34,145518,145519,145521,145523,145525,145528],{"class":36,"line":706},[34,145520,144818],{"class":47},[34,145522,182],{"class":181},[34,145524,9741],{"class":54},[34,145526,145527],{"class":181},"OBJECTS",[34,145529,3372],{"class":54},[34,145531,145532,145534,145536,145538,145540,145542,145545,145547,145549,145552],{"class":36,"line":715},[34,145533,145193],{"class":54},[34,145535,145196],{"class":181},[34,145537,1617],{"class":54},[34,145539,144693],{"class":181},[34,145541,13486],{"class":50},[34,145543,145544],{"class":50}," $^",[34,145546,43289],{"class":181},[34,145548,9741],{"class":54},[34,145550,145551],{"class":181},"INC_DIR",[34,145553,3372],{"class":54},[34,145555,145556],{"class":36,"line":725},[34,145557,62],{"emptyLinePlaceholder":61},[34,145559,145560,145562,145564,145566,145569,145571,145573,145575],{"class":36,"line":734},[34,145561,9741],{"class":54},[34,145563,145453],{"class":181},[34,145565,1617],{"class":54},[34,145567,145568],{"class":181},"/%.o: ",[34,145570,9741],{"class":54},[34,145572,145422],{"class":181},[34,145574,1617],{"class":54},[34,145576,145577],{"class":181},"/%.c\n",[34,145579,145580,145582,145584,145586,145588,145590,145592,145595,145597,145599,145601,145603,145605,145607],{"class":36,"line":742},[34,145581,145193],{"class":54},[34,145583,145196],{"class":181},[34,145585,1617],{"class":54},[34,145587,145163],{"class":54},[34,145589,145203],{"class":181},[34,145591,1617],{"class":54},[34,145593,145594],{"class":181}," -c ",[34,145596,144690],{"class":50},[34,145598,144693],{"class":181},[34,145600,13486],{"class":50},[34,145602,43289],{"class":181},[34,145604,9741],{"class":54},[34,145606,145551],{"class":181},[34,145608,3372],{"class":54},[388,145610,145611],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .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":30,"searchDepth":44,"depth":44,"links":145613},[145614],{"id":145379,"depth":44,"text":145374},"Multi-Directory Project in Make.",{},"/make/multi-directory-project",{"title":145374,"description":145615},"make/multi-directory-project",[53704,71370,413,144767],"l2paizS0hy8WszaVXjz4W_GX3uR8GCVuCGxDxA26rII",{"id":145623,"title":145624,"body":145625,"date":2633,"description":145670,"extension":404,"meta":145671,"navigation":61,"order":37,"path":145672,"seo":145673,"stem":145674,"subject":53704,"tags":145675,"__hash__":145676},"topics/make/overview.md","Make",{"type":8,"value":145626,"toc":145668},[145627],[309,145628,145629,145633,145638,145644,145648,145652,145656,145660,145664],{},[312,145630,145631],{},[145,145632,144771],{"href":144901},[312,145634,145635],{},[145,145636,12166],{"href":145637},"/make/variables",[312,145639,145640],{},[145,145641,145643],{"href":145642},"/make/phony-targets","Phony Targets",[312,145645,145646],{},[145,145647,144658],{"href":144763},[312,145649,145650],{},[145,145651,144995],{"href":145114},[312,145653,145654],{},[145,145655,113747],{"href":144988},[312,145657,145658],{},[145,145659,10991],{"href":145367},[312,145661,145662],{},[145,145663,145374],{"href":145617},[312,145665,145666],{},[145,145667,145121],{"href":145226},{"title":30,"searchDepth":44,"depth":44,"links":145669},[],"Build automation tool for compiling and managing project dependencies using Makefiles.",{},"/make/overview",{"title":145624,"description":145670},"make/overview",[53704,71370,413,144767],"N7SviJHFsszRlqnmucJGZvpcG_H2cFXni8cIVq5Tlb4",{"id":145678,"title":145643,"body":145679,"date":402,"description":145777,"extension":404,"meta":145778,"navigation":61,"order":65,"path":145642,"seo":145779,"stem":145780,"subject":53704,"tags":145781,"__hash__":145782},"topics/make/phony-targets.md",{"type":8,"value":145680,"toc":145774},[145681,145684,145771],[11,145682,145643],{"id":145683},"phony-targets",[25,145685,145687],{"className":144666,"code":145686,"language":144668,"meta":30,"style":30},"# Declare targets that don't create files\n.PHONY: all clean test install\n\nall: build                 # Default target\n\nclean:                     # Clean build artifacts\n    rm -rf build/ *.o\n\ntest:                      # Run tests\n    ./run_tests.sh\n\ninstall:                   # Install the program\n    cp program /usr/local/bin/\n",[20,145688,145689,145694,145702,145706,145716,145720,145730,145735,145739,145747,145752,145756,145766],{"__ignoreMap":30},[34,145690,145691],{"class":36,"line":37},[34,145692,145693],{"class":40},"# Declare targets that don't create files\n",[34,145695,145696,145699],{"class":36,"line":44},[34,145697,145698],{"class":50},".PHONY",[34,145700,145701],{"class":181},": all clean test install\n",[34,145703,145704],{"class":36,"line":58},[34,145705,62],{"emptyLinePlaceholder":61},[34,145707,145708,145710,145713],{"class":36,"line":65},[34,145709,17175],{"class":47},[34,145711,145712],{"class":181},": build                 ",[34,145714,145715],{"class":40},"# Default target\n",[34,145717,145718],{"class":36,"line":71},[34,145719,62],{"emptyLinePlaceholder":61},[34,145721,145722,145724,145727],{"class":36,"line":77},[34,145723,144881],{"class":47},[34,145725,145726],{"class":181},":                     ",[34,145728,145729],{"class":40},"# Clean build artifacts\n",[34,145731,145732],{"class":36,"line":82},[34,145733,145734],{"class":181},"    rm -rf build/ *.o\n",[34,145736,145737],{"class":36,"line":88},[34,145738,62],{"emptyLinePlaceholder":61},[34,145740,145741,145743,145745],{"class":36,"line":242},[34,145742,14618],{"class":47},[34,145744,144884],{"class":181},[34,145746,17459],{"class":40},[34,145748,145749],{"class":36,"line":250},[34,145750,145751],{"class":181},"    ./run_tests.sh\n",[34,145753,145754],{"class":36,"line":263},[34,145755,62],{"emptyLinePlaceholder":61},[34,145757,145758,145760,145763],{"class":36,"line":275},[34,145759,14534],{"class":47},[34,145761,145762],{"class":181},":                   ",[34,145764,145765],{"class":40},"# Install the program\n",[34,145767,145768],{"class":36,"line":700},[34,145769,145770],{"class":181},"    cp program /usr/local/bin/\n",[388,145772,145773],{},"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}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":145775},[145776],{"id":145683,"depth":44,"text":145643},"Phony Targets in Make.",{},{"title":145643,"description":145777},"make/phony-targets",[53704,71370,413,144767],"uK6A-hxO8MSEv0MP3qN7W8dak0dwHQwq9IBJrQWdmuM",{"id":145784,"title":12166,"body":145785,"date":402,"description":145943,"extension":404,"meta":145944,"navigation":61,"order":58,"path":145637,"seo":145945,"stem":145946,"subject":53704,"tags":145947,"__hash__":145948},"topics/make/variables.md",{"type":8,"value":145786,"toc":145940},[145787,145789,145937],[11,145788,12166],{"id":13314},[25,145790,145792],{"className":144666,"code":145791,"language":144668,"meta":30,"style":30},"# Define variables for reusability\nCC = gcc                    # Compiler\nCFLAGS = -Wall -g          # Compiler flags\nLDFLAGS = -lm              # Linker flags\nSRC = main.c utils.c       # Source files\nOBJ = $(SRC:.c=.o)         # Replace .c with .o\n\n# Use variables in targets\nprogram: $(OBJ)\n    $(CC) $(CFLAGS) -o program $(OBJ) $(LDFLAGS)\n\n%.o: %.c                   # Pattern rule: compile any .c to .o\n    $(CC) $(CFLAGS) -c $\u003C\n",[20,145793,145794,145799,145807,145815,145823,145831,145846,145850,145855,145868,145898,145902,145918],{"__ignoreMap":30},[34,145795,145796],{"class":36,"line":37},[34,145797,145798],{"class":40},"# Define variables for reusability\n",[34,145800,145801,145804],{"class":36,"line":44},[34,145802,145803],{"class":181},"CC = gcc                    ",[34,145805,145806],{"class":40},"# Compiler\n",[34,145808,145809,145812],{"class":36,"line":58},[34,145810,145811],{"class":181},"CFLAGS = -Wall -g          ",[34,145813,145814],{"class":40},"# Compiler flags\n",[34,145816,145817,145820],{"class":36,"line":65},[34,145818,145819],{"class":181},"LDFLAGS = -lm              ",[34,145821,145822],{"class":40},"# Linker flags\n",[34,145824,145825,145828],{"class":36,"line":71},[34,145826,145827],{"class":181},"SRC = main.c utils.c       ",[34,145829,145830],{"class":40},"# Source files\n",[34,145832,145833,145836,145838,145841,145843],{"class":36,"line":77},[34,145834,145835],{"class":181},"OBJ = ",[34,145837,9741],{"class":54},[34,145839,145840],{"class":181},"SRC:.c=.o",[34,145842,1617],{"class":54},[34,145844,145845],{"class":40},"         # Replace .c with .o\n",[34,145847,145848],{"class":36,"line":82},[34,145849,62],{"emptyLinePlaceholder":61},[34,145851,145852],{"class":36,"line":88},[34,145853,145854],{"class":40},"# Use variables in targets\n",[34,145856,145857,145859,145861,145863,145866],{"class":36,"line":242},[34,145858,144818],{"class":47},[34,145860,182],{"class":181},[34,145862,9741],{"class":54},[34,145864,145865],{"class":181},"OBJ",[34,145867,3372],{"class":54},[34,145869,145870,145872,145874,145876,145878,145880,145882,145885,145887,145889,145891,145893,145896],{"class":36,"line":250},[34,145871,145193],{"class":54},[34,145873,145196],{"class":181},[34,145875,1617],{"class":54},[34,145877,145163],{"class":54},[34,145879,145203],{"class":181},[34,145881,1617],{"class":54},[34,145883,145884],{"class":181}," -o program ",[34,145886,9741],{"class":54},[34,145888,145865],{"class":181},[34,145890,1617],{"class":54},[34,145892,145163],{"class":54},[34,145894,145895],{"class":181},"LDFLAGS",[34,145897,3372],{"class":54},[34,145899,145900],{"class":36,"line":263},[34,145901,62],{"emptyLinePlaceholder":61},[34,145903,145904,145906,145908,145910,145912,145915],{"class":36,"line":275},[34,145905,12797],{"class":50},[34,145907,144709],{"class":47},[34,145909,182],{"class":181},[34,145911,12797],{"class":50},[34,145913,145914],{"class":181},".c                   ",[34,145916,145917],{"class":40},"# Pattern rule: compile any .c to .o\n",[34,145919,145920,145922,145924,145926,145928,145930,145932,145934],{"class":36,"line":700},[34,145921,145193],{"class":54},[34,145923,145196],{"class":181},[34,145925,1617],{"class":54},[34,145927,145163],{"class":54},[34,145929,145203],{"class":181},[34,145931,1617],{"class":54},[34,145933,145594],{"class":181},[34,145935,145936],{"class":50},"$\u003C\n",[388,145938,145939],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":145941},[145942],{"id":13314,"depth":44,"text":12166},"Variables in Make.",{},{"title":12166,"description":145943},"make/variables",[53704,71370,413,144767],"efk8xxSSBRAwkxuw6Xd9oLoZnYO_OWmOsN-e7_OlGM8",{"id":145950,"title":5595,"body":145951,"date":402,"description":146058,"extension":404,"meta":146059,"navigation":61,"order":742,"path":146060,"seo":146061,"stem":146062,"subject":103499,"tags":146063,"__hash__":146065},"topics/markdown/best-practices.md",{"type":8,"value":145952,"toc":146055},[145953,145955,146053],[11,145954,5595],{"id":5600},[25,145956,145959],{"className":145957,"code":145958,"language":103499,"meta":30,"style":30},"language-markdown shiki shiki-themes github-light github-dark","# Spacing\n- Blank line before/after headings\n- Blank line before/after code blocks\n- Blank line before/after lists\n\n# Consistency\n- Use same style for bold (* or _)\n- Use same list marker (-, *, +)\n- Use consistent heading style\n\n# Accessibility\n- Always add alt text to images\n- Use descriptive link text\n- Structure with proper headings\n\n# File naming\n- Use lowercase\n- Use hyphens for spaces\n- Include .md extension\n",[20,145960,145961,145966,145971,145976,145981,145985,145990,145995,146000,146005,146009,146014,146019,146024,146029,146033,146038,146043,146048],{"__ignoreMap":30},[34,145962,145963],{"class":36,"line":37},[34,145964,145965],{},"# Spacing\n",[34,145967,145968],{"class":36,"line":44},[34,145969,145970],{},"- Blank line before/after headings\n",[34,145972,145973],{"class":36,"line":58},[34,145974,145975],{},"- Blank line before/after code blocks\n",[34,145977,145978],{"class":36,"line":65},[34,145979,145980],{},"- Blank line before/after lists\n",[34,145982,145983],{"class":36,"line":71},[34,145984,62],{"emptyLinePlaceholder":61},[34,145986,145987],{"class":36,"line":77},[34,145988,145989],{},"# Consistency\n",[34,145991,145992],{"class":36,"line":82},[34,145993,145994],{},"- Use same style for bold (* or _)\n",[34,145996,145997],{"class":36,"line":88},[34,145998,145999],{},"- Use same list marker (-, *, +)\n",[34,146001,146002],{"class":36,"line":242},[34,146003,146004],{},"- Use consistent heading style\n",[34,146006,146007],{"class":36,"line":250},[34,146008,62],{"emptyLinePlaceholder":61},[34,146010,146011],{"class":36,"line":263},[34,146012,146013],{},"# Accessibility\n",[34,146015,146016],{"class":36,"line":275},[34,146017,146018],{},"- Always add alt text to images\n",[34,146020,146021],{"class":36,"line":700},[34,146022,146023],{},"- Use descriptive link text\n",[34,146025,146026],{"class":36,"line":706},[34,146027,146028],{},"- Structure with proper headings\n",[34,146030,146031],{"class":36,"line":715},[34,146032,62],{"emptyLinePlaceholder":61},[34,146034,146035],{"class":36,"line":725},[34,146036,146037],{},"# File naming\n",[34,146039,146040],{"class":36,"line":734},[34,146041,146042],{},"- Use lowercase\n",[34,146044,146045],{"class":36,"line":742},[34,146046,146047],{},"- Use hyphens for spaces\n",[34,146049,146050],{"class":36,"line":748},[34,146051,146052],{},"- Include .md extension\n",[388,146054,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":146056},[146057],{"id":5600,"depth":44,"text":5595},"Best Practices in Markdown.",{},"/markdown/best-practices",{"title":5595,"description":146058},"markdown/best-practices",[103499,58704,780,13834,146064],"readme","bRglOssdY7OLcTccSaiCxWdHPIi918m9E4ljYPrYojE",{"id":146067,"title":146068,"body":146069,"date":402,"description":146217,"extension":404,"meta":146218,"navigation":61,"order":88,"path":146219,"seo":146220,"stem":146221,"subject":103499,"tags":146222,"__hash__":146223},"topics/markdown/code.md","Code",{"type":8,"value":146070,"toc":146214},[146071,146073,146212],[11,146072,146068],{"id":20},[25,146074,146076],{"className":145957,"code":146075,"language":103499,"meta":30,"style":30},"# Inline code\nUse `const` instead of `var`.\n\n# Code block (indented)\n    function hello() {\n      console.log(\"Hello\");\n    }\n\n# Fenced code block\n```\nPlain code block\nNo syntax highlighting\n```\n\n# Fenced with language\n```javascript\nfunction hello() {\n  console.log(\"Hello\");\n}\n```\n\n```python\ndef hello():\n    print(\"Hello\")\n```\n\n```bash\necho \"Hello World\"\n```\n",[20,146077,146078,146083,146088,146092,146097,146102,146107,146111,146115,146120,146125,146130,146135,146139,146143,146148,146153,146158,146163,146167,146171,146175,146180,146185,146190,146194,146198,146203,146208],{"__ignoreMap":30},[34,146079,146080],{"class":36,"line":37},[34,146081,146082],{},"# Inline code\n",[34,146084,146085],{"class":36,"line":44},[34,146086,146087],{},"Use `const` instead of `var`.\n",[34,146089,146090],{"class":36,"line":58},[34,146091,62],{"emptyLinePlaceholder":61},[34,146093,146094],{"class":36,"line":65},[34,146095,146096],{},"# Code block (indented)\n",[34,146098,146099],{"class":36,"line":71},[34,146100,146101],{},"    function hello() {\n",[34,146103,146104],{"class":36,"line":77},[34,146105,146106],{},"      console.log(\"Hello\");\n",[34,146108,146109],{"class":36,"line":82},[34,146110,3229],{},[34,146112,146113],{"class":36,"line":88},[34,146114,62],{"emptyLinePlaceholder":61},[34,146116,146117],{"class":36,"line":242},[34,146118,146119],{},"# Fenced code block\n",[34,146121,146122],{"class":36,"line":250},[34,146123,146124],{},"```\n",[34,146126,146127],{"class":36,"line":263},[34,146128,146129],{},"Plain code block\n",[34,146131,146132],{"class":36,"line":275},[34,146133,146134],{},"No syntax highlighting\n",[34,146136,146137],{"class":36,"line":700},[34,146138,146124],{},[34,146140,146141],{"class":36,"line":706},[34,146142,62],{"emptyLinePlaceholder":61},[34,146144,146145],{"class":36,"line":715},[34,146146,146147],{},"# Fenced with language\n",[34,146149,146150],{"class":36,"line":725},[34,146151,146152],{},"```javascript\n",[34,146154,146155],{"class":36,"line":734},[34,146156,146157],{},"function hello() {\n",[34,146159,146160],{"class":36,"line":742},[34,146161,146162],{},"  console.log(\"Hello\");\n",[34,146164,146165],{"class":36,"line":748},[34,146166,693],{},[34,146168,146169],{"class":36,"line":754},[34,146170,146124],{},[34,146172,146173],{"class":36,"line":759},[34,146174,62],{"emptyLinePlaceholder":61},[34,146176,146177],{"class":36,"line":771},[34,146178,146179],{},"```python\n",[34,146181,146182],{"class":36,"line":794},[34,146183,146184],{},"def hello():\n",[34,146186,146187],{"class":36,"line":824},[34,146188,146189],{},"    print(\"Hello\")\n",[34,146191,146192],{"class":36,"line":830},[34,146193,146124],{},[34,146195,146196],{"class":36,"line":839},[34,146197,62],{"emptyLinePlaceholder":61},[34,146199,146200],{"class":36,"line":854},[34,146201,146202],{},"```bash\n",[34,146204,146205],{"class":36,"line":860},[34,146206,146207],{},"echo \"Hello World\"\n",[34,146209,146210],{"class":36,"line":865},[34,146211,146124],{},[388,146213,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":146215},[146216],{"id":20,"depth":44,"text":146068},"Code in Markdown.",{},"/markdown/code",{"title":146068,"description":146217},"markdown/code",[103499,58704,780,13834,146064],"YlsgMpYzx1WO-He_xkTkAuvEoe_LJ8AWKarbtQmkrWI",{"id":146225,"title":128460,"body":146226,"date":402,"description":146280,"extension":404,"meta":146281,"navigation":61,"order":734,"path":146282,"seo":146283,"stem":146284,"subject":103499,"tags":146285,"__hash__":146286},"topics/markdown/comments.md",{"type":8,"value":146227,"toc":146277},[146228,146231,146275],[11,146229,128460],{"id":146230},"comments",[25,146232,146234],{"className":145957,"code":146233,"language":103499,"meta":30,"style":30},"\u003C!-- This is a comment -->\n\u003C!-- \nMulti-line\ncomment \n-->\n\n[//]: # (This is also a comment)\n[//]: # \"Alternative comment syntax\"\n",[20,146235,146236,146241,146246,146251,146256,146261,146265,146270],{"__ignoreMap":30},[34,146237,146238],{"class":36,"line":37},[34,146239,146240],{},"\u003C!-- This is a comment -->\n",[34,146242,146243],{"class":36,"line":44},[34,146244,146245],{},"\u003C!-- \n",[34,146247,146248],{"class":36,"line":58},[34,146249,146250],{},"Multi-line\n",[34,146252,146253],{"class":36,"line":65},[34,146254,146255],{},"comment \n",[34,146257,146258],{"class":36,"line":71},[34,146259,146260],{},"-->\n",[34,146262,146263],{"class":36,"line":77},[34,146264,62],{"emptyLinePlaceholder":61},[34,146266,146267],{"class":36,"line":82},[34,146268,146269],{},"[//]: # (This is also a comment)\n",[34,146271,146272],{"class":36,"line":88},[34,146273,146274],{},"[//]: # \"Alternative comment syntax\"\n",[388,146276,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":146278},[146279],{"id":146230,"depth":44,"text":128460},"Comments in Markdown.",{},"/markdown/comments",{"title":128460,"description":146280},"markdown/comments",[103499,58704,780,13834,146064],"xnf1smDmk75RATCrI3mPVZGk3uri4o65Lqns-ZAo3BQ",{"id":146288,"title":146289,"body":146290,"date":402,"description":146339,"extension":404,"meta":146340,"navigation":61,"order":715,"path":146341,"seo":146342,"stem":146343,"subject":103499,"tags":146344,"__hash__":146345},"topics/markdown/definition-lists.md","Definition Lists",{"type":8,"value":146291,"toc":146336},[146292,146295,146334],[11,146293,146289],{"id":146294},"definition-lists",[25,146296,146298],{"className":145957,"code":146297,"language":103499,"meta":30,"style":30},"# Some parsers support definition lists\nTerm 1\n: Definition 1\n\nTerm 2\n: Definition 2a\n: Definition 2b\n",[20,146299,146300,146305,146310,146315,146319,146324,146329],{"__ignoreMap":30},[34,146301,146302],{"class":36,"line":37},[34,146303,146304],{},"# Some parsers support definition lists\n",[34,146306,146307],{"class":36,"line":44},[34,146308,146309],{},"Term 1\n",[34,146311,146312],{"class":36,"line":58},[34,146313,146314],{},": Definition 1\n",[34,146316,146317],{"class":36,"line":65},[34,146318,62],{"emptyLinePlaceholder":61},[34,146320,146321],{"class":36,"line":71},[34,146322,146323],{},"Term 2\n",[34,146325,146326],{"class":36,"line":77},[34,146327,146328],{},": Definition 2a\n",[34,146330,146331],{"class":36,"line":82},[34,146332,146333],{},": Definition 2b\n",[388,146335,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":146337},[146338],{"id":146294,"depth":44,"text":146289},"Definition Lists in Markdown.",{},"/markdown/definition-lists",{"title":146289,"description":146339},"markdown/definition-lists",[103499,58704,780,13834,146064],"uLjURXrA8GFQ39u7KIPr17d5m5IJrXOtosSBxYv4UmY",{"id":146347,"title":146348,"body":146349,"date":402,"description":146463,"extension":404,"meta":146464,"navigation":61,"order":275,"path":146465,"seo":146466,"stem":146467,"subject":103499,"tags":146468,"__hash__":146469},"topics/markdown/escaping-characters.md","Escaping Characters",{"type":8,"value":146350,"toc":146460},[146351,146354,146458],[11,146352,146348],{"id":146353},"escaping-characters",[25,146355,146357],{"className":145957,"code":146356,"language":103499,"meta":30,"style":30},"# Escape with backslash\n\\*Not italic\\*\n\\# Not a heading\n\\[Not a link\\]\n\\`Not code\\`\n\n# Characters that can be escaped\n\\   backslash\n`   backtick\n*   asterisk\n_   underscore\n{}  curly braces\n[]  square brackets\n()  parentheses\n#   hash mark\n+   plus sign\n-   minus sign\n.   dot\n!   exclamation mark\n|   pipe\n",[20,146358,146359,146364,146369,146374,146379,146384,146388,146393,146398,146403,146408,146413,146418,146423,146428,146433,146438,146443,146448,146453],{"__ignoreMap":30},[34,146360,146361],{"class":36,"line":37},[34,146362,146363],{},"# Escape with backslash\n",[34,146365,146366],{"class":36,"line":44},[34,146367,146368],{},"\\*Not italic\\*\n",[34,146370,146371],{"class":36,"line":58},[34,146372,146373],{},"\\# Not a heading\n",[34,146375,146376],{"class":36,"line":65},[34,146377,146378],{},"\\[Not a link\\]\n",[34,146380,146381],{"class":36,"line":71},[34,146382,146383],{},"\\`Not code\\`\n",[34,146385,146386],{"class":36,"line":77},[34,146387,62],{"emptyLinePlaceholder":61},[34,146389,146390],{"class":36,"line":82},[34,146391,146392],{},"# Characters that can be escaped\n",[34,146394,146395],{"class":36,"line":88},[34,146396,146397],{},"\\   backslash\n",[34,146399,146400],{"class":36,"line":242},[34,146401,146402],{},"`   backtick\n",[34,146404,146405],{"class":36,"line":250},[34,146406,146407],{},"*   asterisk\n",[34,146409,146410],{"class":36,"line":263},[34,146411,146412],{},"_   underscore\n",[34,146414,146415],{"class":36,"line":275},[34,146416,146417],{},"{}  curly braces\n",[34,146419,146420],{"class":36,"line":700},[34,146421,146422],{},"[]  square brackets\n",[34,146424,146425],{"class":36,"line":706},[34,146426,146427],{},"()  parentheses\n",[34,146429,146430],{"class":36,"line":715},[34,146431,146432],{},"#   hash mark\n",[34,146434,146435],{"class":36,"line":725},[34,146436,146437],{},"+   plus sign\n",[34,146439,146440],{"class":36,"line":734},[34,146441,146442],{},"-   minus sign\n",[34,146444,146445],{"class":36,"line":742},[34,146446,146447],{},".   dot\n",[34,146449,146450],{"class":36,"line":748},[34,146451,146452],{},"!   exclamation mark\n",[34,146454,146455],{"class":36,"line":754},[34,146456,146457],{},"|   pipe\n",[388,146459,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":146461},[146462],{"id":146353,"depth":44,"text":146348},"Escaping Characters in Markdown.",{},"/markdown/escaping-characters",{"title":146348,"description":146463},"markdown/escaping-characters",[103499,58704,780,13834,146064],"aP5yUDctnvWYwHJIBwqQZr-zdqdyeh9yYcDulwHeVjA",{"id":146471,"title":146472,"body":146473,"date":402,"description":146664,"extension":404,"meta":146665,"navigation":61,"order":706,"path":146666,"seo":146667,"stem":146668,"subject":103499,"tags":146669,"__hash__":146670},"topics/markdown/github-flavored-markdown.md","GitHub Flavored Markdown",{"type":8,"value":146474,"toc":146661},[146475,146478,146654,146659],[11,146476,146472],{"id":146477},"github-flavored-markdown",[25,146479,146481],{"className":145957,"code":146480,"language":103499,"meta":30,"style":30},"# Autolinked references\nIssue: #123\nPR: #456\nCommit: a1b2c3d\nUser: @username\n\n# Footnotes\nHere's a sentence with a footnote[^1].\n\n[^1]: This is the footnote content.\n\n# Alerts/Admonitions (GitHub)\n> [!NOTE]\n> Useful information.\n\n> [!TIP]\n> Helpful advice.\n\n> [!IMPORTANT]\n> Key information.\n\n> [!WARNING]\n> Urgent warning.\n\n> [!CAUTION]\n> Negative consequences.\n\n# Emoji\n:smile: :rocket: :+1:\nUnicode also works: 😀 🚀 👍\n\n# Syntax highlighting diff\n```diff\n- Removed line\n+ Added line\n  Unchanged line\n",[20,146482,146483,146488,146493,146498,146503,146508,146512,146517,146522,146526,146531,146535,146540,146545,146550,146554,146559,146564,146568,146573,146578,146582,146587,146592,146596,146601,146606,146610,146615,146620,146625,146629,146634,146639,146644,146649],{"__ignoreMap":30},[34,146484,146485],{"class":36,"line":37},[34,146486,146487],{},"# Autolinked references\n",[34,146489,146490],{"class":36,"line":44},[34,146491,146492],{},"Issue: #123\n",[34,146494,146495],{"class":36,"line":58},[34,146496,146497],{},"PR: #456\n",[34,146499,146500],{"class":36,"line":65},[34,146501,146502],{},"Commit: a1b2c3d\n",[34,146504,146505],{"class":36,"line":71},[34,146506,146507],{},"User: @username\n",[34,146509,146510],{"class":36,"line":77},[34,146511,62],{"emptyLinePlaceholder":61},[34,146513,146514],{"class":36,"line":82},[34,146515,146516],{},"# Footnotes\n",[34,146518,146519],{"class":36,"line":88},[34,146520,146521],{},"Here's a sentence with a footnote[^1].\n",[34,146523,146524],{"class":36,"line":242},[34,146525,62],{"emptyLinePlaceholder":61},[34,146527,146528],{"class":36,"line":250},[34,146529,146530],{},"[^1]: This is the footnote content.\n",[34,146532,146533],{"class":36,"line":263},[34,146534,62],{"emptyLinePlaceholder":61},[34,146536,146537],{"class":36,"line":275},[34,146538,146539],{},"# Alerts/Admonitions (GitHub)\n",[34,146541,146542],{"class":36,"line":700},[34,146543,146544],{},"> [!NOTE]\n",[34,146546,146547],{"class":36,"line":706},[34,146548,146549],{},"> Useful information.\n",[34,146551,146552],{"class":36,"line":715},[34,146553,62],{"emptyLinePlaceholder":61},[34,146555,146556],{"class":36,"line":725},[34,146557,146558],{},"> [!TIP]\n",[34,146560,146561],{"class":36,"line":734},[34,146562,146563],{},"> Helpful advice.\n",[34,146565,146566],{"class":36,"line":742},[34,146567,62],{"emptyLinePlaceholder":61},[34,146569,146570],{"class":36,"line":748},[34,146571,146572],{},"> [!IMPORTANT]\n",[34,146574,146575],{"class":36,"line":754},[34,146576,146577],{},"> Key information.\n",[34,146579,146580],{"class":36,"line":759},[34,146581,62],{"emptyLinePlaceholder":61},[34,146583,146584],{"class":36,"line":771},[34,146585,146586],{},"> [!WARNING]\n",[34,146588,146589],{"class":36,"line":794},[34,146590,146591],{},"> Urgent warning.\n",[34,146593,146594],{"class":36,"line":824},[34,146595,62],{"emptyLinePlaceholder":61},[34,146597,146598],{"class":36,"line":830},[34,146599,146600],{},"> [!CAUTION]\n",[34,146602,146603],{"class":36,"line":839},[34,146604,146605],{},"> Negative consequences.\n",[34,146607,146608],{"class":36,"line":854},[34,146609,62],{"emptyLinePlaceholder":61},[34,146611,146612],{"class":36,"line":860},[34,146613,146614],{},"# Emoji\n",[34,146616,146617],{"class":36,"line":865},[34,146618,146619],{},":smile: :rocket: :+1:\n",[34,146621,146622],{"class":36,"line":870},[34,146623,146624],{},"Unicode also works: 😀 🚀 👍\n",[34,146626,146627],{"class":36,"line":876},[34,146628,62],{"emptyLinePlaceholder":61},[34,146630,146631],{"class":36,"line":885},[34,146632,146633],{},"# Syntax highlighting diff\n",[34,146635,146636],{"class":36,"line":895},[34,146637,146638],{},"```diff\n",[34,146640,146641],{"class":36,"line":904},[34,146642,146643],{},"- Removed line\n",[34,146645,146646],{"class":36,"line":915},[34,146647,146648],{},"+ Added line\n",[34,146650,146651],{"class":36,"line":927},[34,146652,146653],{},"  Unchanged line\n",[25,146655,146657],{"className":146656,"code":30,"language":780},[13703],[20,146658,30],{"__ignoreMap":30},[388,146660,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":146662},[146663],{"id":146477,"depth":44,"text":146472},"GitHub Flavored Markdown in Markdown.",{},"/markdown/github-flavored-markdown",{"title":146472,"description":146664},"markdown/github-flavored-markdown",[103499,58704,780,13834,146064],"WYIM6KJdW9g30uryqbBDXSuwJWMUBvj5RFGdL0mDICM",{"id":146672,"title":146673,"body":146674,"date":402,"description":146715,"extension":404,"meta":146716,"navigation":61,"order":58,"path":146717,"seo":146718,"stem":146719,"subject":103499,"tags":146720,"__hash__":146721},"topics/markdown/heading-2.md","Heading 2",{"type":8,"value":146675,"toc":146709},[146676,146679,146683,146687,146692,146696,146700,146704],[11,146677,146673],{"id":146678},"heading-2",[102,146680,146682],{"id":146681},"heading-3","Heading 3",[53543,146684,146686],{"id":146685},"heading-4","Heading 4",[146688,146689,146691],"h5",{"id":146690},"heading-5","Heading 5",[118862,146693,146695],{"id":146694},"heading-6","Heading 6",[8535,146697,146699],{"id":146698},"alternative-heading-1","Alternative Heading 1",[11,146701,146703],{"id":146702},"alternative-heading-2","Alternative Heading 2",[25,146705,146707],{"className":146706,"code":30,"language":780},[13703],[20,146708,30],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":146710},[146711,146714],{"id":146678,"depth":44,"text":146673,"children":146712},[146713],{"id":146681,"depth":58,"text":146682},{"id":146702,"depth":44,"text":146703},"Heading 2 in Markdown.",{},"/markdown/heading-2",{"title":146673,"description":146715},"markdown/heading-2",[103499,58704,780,13834,146064],"tKQI5vhPSUC0LGlbvfSXc61sXvQ3XHDCtb0wxHwa9JY",{"id":146723,"title":146724,"body":146725,"date":402,"description":146744,"extension":404,"meta":146745,"navigation":61,"order":44,"path":146746,"seo":146747,"stem":146748,"subject":103499,"tags":146749,"__hash__":146750},"topics/markdown/headings.md","Headings",{"type":8,"value":146726,"toc":146741},[146727,146730,146739],[11,146728,146724],{"id":146729},"headings",[25,146731,146733],{"className":145957,"code":146732,"language":103499,"meta":30,"style":30},"# Heading 1\n",[20,146734,146735],{"__ignoreMap":30},[34,146736,146737],{"class":36,"line":37},[34,146738,146732],{},[388,146740,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":146742},[146743],{"id":146729,"depth":44,"text":146724},"Headings in Markdown.",{},"/markdown/headings",{"title":146724,"description":146744},"markdown/headings",[103499,58704,780,13834,146064],"a1j1T6MkQlffsSv0BQMrqwsTlRPbnjm2-f4M2Rm2Mww",{"id":146752,"title":146753,"body":146754,"date":402,"description":146810,"extension":404,"meta":146811,"navigation":61,"order":250,"path":146812,"seo":146813,"stem":146814,"subject":103499,"tags":146815,"__hash__":146816},"topics/markdown/horizontal-rules.md","Horizontal Rules",{"type":8,"value":146755,"toc":146807},[146756,146759,146805],[11,146757,146753],{"id":146758},"horizontal-rules",[25,146760,146762],{"className":145957,"code":146761,"language":103499,"meta":30,"style":30},"---\n\n***\n\n___\n\n- - -\n\n* * *\n",[20,146763,146764,146769,146773,146778,146782,146787,146791,146796,146800],{"__ignoreMap":30},[34,146765,146766],{"class":36,"line":37},[34,146767,146768],{},"---\n",[34,146770,146771],{"class":36,"line":44},[34,146772,62],{"emptyLinePlaceholder":61},[34,146774,146775],{"class":36,"line":58},[34,146776,146777],{},"***\n",[34,146779,146780],{"class":36,"line":65},[34,146781,62],{"emptyLinePlaceholder":61},[34,146783,146784],{"class":36,"line":71},[34,146785,146786],{},"___\n",[34,146788,146789],{"class":36,"line":77},[34,146790,62],{"emptyLinePlaceholder":61},[34,146792,146793],{"class":36,"line":82},[34,146794,146795],{},"- - -\n",[34,146797,146798],{"class":36,"line":88},[34,146799,62],{"emptyLinePlaceholder":61},[34,146801,146802],{"class":36,"line":242},[34,146803,146804],{},"* * *\n",[388,146806,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":146808},[146809],{"id":146758,"depth":44,"text":146753},"Horizontal Rules in Markdown.",{},"/markdown/horizontal-rules",{"title":146753,"description":146810},"markdown/horizontal-rules",[103499,58704,780,13834,146064],"1O__h_PgIVHv81qJAq1bt-7F85IXIlWQNOZ314CX1LI",{"id":146818,"title":146819,"body":146820,"date":402,"description":146951,"extension":404,"meta":146952,"navigation":61,"order":700,"path":146953,"seo":146954,"stem":146955,"subject":103499,"tags":146956,"__hash__":146957},"topics/markdown/html-in-markdown.md","HTML in Markdown",{"type":8,"value":146821,"toc":146948},[146822,146825,146946],[11,146823,146819],{"id":146824},"html-in-markdown",[25,146826,146828],{"className":145957,"code":146827,"language":103499,"meta":30,"style":30},"# Inline HTML\n\u003Cstrong>Bold\u003C/strong>\n\u003Cem>Italic\u003C/em>\n\u003Cmark>Highlighted\u003C/mark>\n\u003Csub>subscript\u003C/sub>\n\u003Csup>superscript\u003C/sup>\n\n# Block HTML\n\u003Cdiv align=\"center\">\n  Centered content\n\u003C/div>\n\n\u003Cdetails>\n\u003Csummary>Click to expand\u003C/summary>\n\nHidden content here.\nCan include **markdown**.\n\n\u003C/details>\n\n# Keyboard keys\n\u003Ckbd>Ctrl\u003C/kbd> + \u003Ckbd>C\u003C/kbd>\n\n# Abbreviations\n\u003Cabbr title=\"HyperText Markup Language\">HTML\u003C/abbr>\n",[20,146829,146830,146835,146840,146845,146850,146855,146860,146864,146869,146874,146879,146883,146887,146892,146897,146901,146906,146911,146915,146920,146924,146929,146933,146937,146942],{"__ignoreMap":30},[34,146831,146832],{"class":36,"line":37},[34,146833,146834],{},"# Inline HTML\n",[34,146836,146837],{"class":36,"line":44},[34,146838,146839],{},"\u003Cstrong>Bold\u003C/strong>\n",[34,146841,146842],{"class":36,"line":58},[34,146843,146844],{},"\u003Cem>Italic\u003C/em>\n",[34,146846,146847],{"class":36,"line":65},[34,146848,146849],{},"\u003Cmark>Highlighted\u003C/mark>\n",[34,146851,146852],{"class":36,"line":71},[34,146853,146854],{},"\u003Csub>subscript\u003C/sub>\n",[34,146856,146857],{"class":36,"line":77},[34,146858,146859],{},"\u003Csup>superscript\u003C/sup>\n",[34,146861,146862],{"class":36,"line":82},[34,146863,62],{"emptyLinePlaceholder":61},[34,146865,146866],{"class":36,"line":88},[34,146867,146868],{},"# Block HTML\n",[34,146870,146871],{"class":36,"line":242},[34,146872,146873],{},"\u003Cdiv align=\"center\">\n",[34,146875,146876],{"class":36,"line":250},[34,146877,146878],{},"  Centered content\n",[34,146880,146881],{"class":36,"line":263},[34,146882,86548],{},[34,146884,146885],{"class":36,"line":275},[34,146886,62],{"emptyLinePlaceholder":61},[34,146888,146889],{"class":36,"line":700},[34,146890,146891],{},"\u003Cdetails>\n",[34,146893,146894],{"class":36,"line":706},[34,146895,146896],{},"\u003Csummary>Click to expand\u003C/summary>\n",[34,146898,146899],{"class":36,"line":715},[34,146900,62],{"emptyLinePlaceholder":61},[34,146902,146903],{"class":36,"line":725},[34,146904,146905],{},"Hidden content here.\n",[34,146907,146908],{"class":36,"line":734},[34,146909,146910],{},"Can include **markdown**.\n",[34,146912,146913],{"class":36,"line":742},[34,146914,62],{"emptyLinePlaceholder":61},[34,146916,146917],{"class":36,"line":748},[34,146918,146919],{},"\u003C/details>\n",[34,146921,146922],{"class":36,"line":754},[34,146923,62],{"emptyLinePlaceholder":61},[34,146925,146926],{"class":36,"line":759},[34,146927,146928],{},"# Keyboard keys\n",[34,146930,146931],{"class":36,"line":771},[34,146932,119533],{},[34,146934,146935],{"class":36,"line":794},[34,146936,62],{"emptyLinePlaceholder":61},[34,146938,146939],{"class":36,"line":824},[34,146940,146941],{},"# Abbreviations\n",[34,146943,146944],{"class":36,"line":830},[34,146945,119568],{},[388,146947,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":146949},[146950],{"id":146824,"depth":44,"text":146819},"HTML in Markdown in Markdown.",{},"/markdown/html-in-markdown",{"title":146819,"description":146951},"markdown/html-in-markdown",[103499,58704,780,13834,146064],"gos_c4eajuZoO-P2qGkQqfheuV3Hq-aGL48cAIIn1yA",{"id":146959,"title":146960,"body":146961,"date":402,"description":147038,"extension":404,"meta":147039,"navigation":61,"order":82,"path":147040,"seo":147041,"stem":147042,"subject":103499,"tags":147043,"__hash__":147044},"topics/markdown/images.md","Images",{"type":8,"value":146962,"toc":147035},[146963,146966,147033],[11,146964,146960],{"id":146965},"images",[25,146967,146969],{"className":145957,"code":146968,"language":103499,"meta":30,"style":30},"# Inline image\n![Alt text](image.jpg)\n![Alt text](image.jpg \"Image title\")\n\n# Reference image\n![Alt text][img-ref]\n[img-ref]: image.jpg \"Optional title\"\n\n# Image with link\n[![Alt text](image.jpg)](https://example.com)\n\n# HTML for sizing (when supported)\n\u003Cimg src=\"image.jpg\" alt=\"Alt text\" width=\"200\">\n",[20,146970,146971,146976,146981,146986,146990,146995,147000,147005,147009,147014,147019,147023,147028],{"__ignoreMap":30},[34,146972,146973],{"class":36,"line":37},[34,146974,146975],{},"# Inline image\n",[34,146977,146978],{"class":36,"line":44},[34,146979,146980],{},"![Alt text](image.jpg)\n",[34,146982,146983],{"class":36,"line":58},[34,146984,146985],{},"![Alt text](image.jpg \"Image title\")\n",[34,146987,146988],{"class":36,"line":65},[34,146989,62],{"emptyLinePlaceholder":61},[34,146991,146992],{"class":36,"line":71},[34,146993,146994],{},"# Reference image\n",[34,146996,146997],{"class":36,"line":77},[34,146998,146999],{},"![Alt text][img-ref]\n",[34,147001,147002],{"class":36,"line":82},[34,147003,147004],{},"[img-ref]: image.jpg \"Optional title\"\n",[34,147006,147007],{"class":36,"line":88},[34,147008,62],{"emptyLinePlaceholder":61},[34,147010,147011],{"class":36,"line":242},[34,147012,147013],{},"# Image with link\n",[34,147015,147016],{"class":36,"line":250},[34,147017,147018],{},"[![Alt text](image.jpg)](https://example.com)\n",[34,147020,147021],{"class":36,"line":263},[34,147022,62],{"emptyLinePlaceholder":61},[34,147024,147025],{"class":36,"line":275},[34,147026,147027],{},"# HTML for sizing (when supported)\n",[34,147029,147030],{"class":36,"line":700},[34,147031,147032],{},"\u003Cimg src=\"image.jpg\" alt=\"Alt text\" width=\"200\">\n",[388,147034,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":147036},[147037],{"id":146965,"depth":44,"text":146960},"Images in Markdown.",{},"/markdown/images",{"title":146960,"description":147038},"markdown/images",[103499,58704,780,13834,146064],"V9Rd2Tk2eNQjuDkNzZAnbNGUGaeqehUNjwl6a7QZyMo",{"id":147046,"title":147047,"body":147048,"date":402,"description":147110,"extension":404,"meta":147111,"navigation":61,"order":263,"path":147112,"seo":147113,"stem":147114,"subject":103499,"tags":147115,"__hash__":147116},"topics/markdown/line-breaks.md","Line Breaks",{"type":8,"value":147049,"toc":147107},[147050,147053,147105],[11,147051,147047],{"id":147052},"line-breaks",[25,147054,147056],{"className":145957,"code":147055,"language":103499,"meta":30,"style":30},"# Two spaces at end of line  \nCreates a line break\n\n# Or use HTML\nLine one\u003Cbr>Line two\n\n# Blank line creates new paragraph\nFirst paragraph.\n\nSecond paragraph.\n",[20,147057,147058,147063,147068,147072,147077,147082,147086,147091,147096,147100],{"__ignoreMap":30},[34,147059,147060],{"class":36,"line":37},[34,147061,147062],{},"# Two spaces at end of line  \n",[34,147064,147065],{"class":36,"line":44},[34,147066,147067],{},"Creates a line break\n",[34,147069,147070],{"class":36,"line":58},[34,147071,62],{"emptyLinePlaceholder":61},[34,147073,147074],{"class":36,"line":65},[34,147075,147076],{},"# Or use HTML\n",[34,147078,147079],{"class":36,"line":71},[34,147080,147081],{},"Line one\u003Cbr>Line two\n",[34,147083,147084],{"class":36,"line":77},[34,147085,62],{"emptyLinePlaceholder":61},[34,147087,147088],{"class":36,"line":82},[34,147089,147090],{},"# Blank line creates new paragraph\n",[34,147092,147093],{"class":36,"line":88},[34,147094,147095],{},"First paragraph.\n",[34,147097,147098],{"class":36,"line":242},[34,147099,62],{"emptyLinePlaceholder":61},[34,147101,147102],{"class":36,"line":250},[34,147103,147104],{},"Second paragraph.\n",[388,147106,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":147108},[147109],{"id":147052,"depth":44,"text":147047},"Line Breaks in Markdown.",{},"/markdown/line-breaks",{"title":147047,"description":147110},"markdown/line-breaks",[103499,58704,780,13834,146064],"e8DR6WTUkLe6zJoYwCrugOWK-y-uXZpTAwO534OnI6g",{"id":147118,"title":147119,"body":147120,"date":402,"description":147226,"extension":404,"meta":147227,"navigation":61,"order":77,"path":147228,"seo":147229,"stem":147230,"subject":103499,"tags":147231,"__hash__":147232},"topics/markdown/links.md","Links",{"type":8,"value":147121,"toc":147223},[147122,147125,147221],[11,147123,147119],{"id":147124},"links",[25,147126,147128],{"className":145957,"code":147127,"language":103499,"meta":30,"style":30},"# Inline links\n[Link text](https://example.com)\n[Link with title](https://example.com \"Title on hover\")\n\n# Reference links\n[Link text][reference]\n[reference]: https://example.com\n\n# Automatic links\n\u003Chttps://example.com>\n\u003Cemail@example.com>\n\n# Relative links\n[Go to docs](./docs/README.md)\n[Parent directory](../other-file.md)\n\n# Section links (anchors)\n[Go to section](#section-name)\n[Link to heading](#headings)\n",[20,147129,147130,147135,147140,147145,147149,147154,147159,147164,147168,147173,147178,147183,147187,147192,147197,147202,147206,147211,147216],{"__ignoreMap":30},[34,147131,147132],{"class":36,"line":37},[34,147133,147134],{},"# Inline links\n",[34,147136,147137],{"class":36,"line":44},[34,147138,147139],{},"[Link text](https://example.com)\n",[34,147141,147142],{"class":36,"line":58},[34,147143,147144],{},"[Link with title](https://example.com \"Title on hover\")\n",[34,147146,147147],{"class":36,"line":65},[34,147148,62],{"emptyLinePlaceholder":61},[34,147150,147151],{"class":36,"line":71},[34,147152,147153],{},"# Reference links\n",[34,147155,147156],{"class":36,"line":77},[34,147157,147158],{},"[Link text][reference]\n",[34,147160,147161],{"class":36,"line":82},[34,147162,147163],{},"[reference]: https://example.com\n",[34,147165,147166],{"class":36,"line":88},[34,147167,62],{"emptyLinePlaceholder":61},[34,147169,147170],{"class":36,"line":242},[34,147171,147172],{},"# Automatic links\n",[34,147174,147175],{"class":36,"line":250},[34,147176,147177],{},"\u003Chttps://example.com>\n",[34,147179,147180],{"class":36,"line":263},[34,147181,147182],{},"\u003Cemail@example.com>\n",[34,147184,147185],{"class":36,"line":275},[34,147186,62],{"emptyLinePlaceholder":61},[34,147188,147189],{"class":36,"line":700},[34,147190,147191],{},"# Relative links\n",[34,147193,147194],{"class":36,"line":706},[34,147195,147196],{},"[Go to docs](./docs/README.md)\n",[34,147198,147199],{"class":36,"line":715},[34,147200,147201],{},"[Parent directory](../other-file.md)\n",[34,147203,147204],{"class":36,"line":725},[34,147205,62],{"emptyLinePlaceholder":61},[34,147207,147208],{"class":36,"line":734},[34,147209,147210],{},"# Section links (anchors)\n",[34,147212,147213],{"class":36,"line":742},[34,147214,147215],{},"[Go to section](#section-name)\n",[34,147217,147218],{"class":36,"line":748},[34,147219,147220],{},"[Link to heading](#headings)\n",[388,147222,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":147224},[147225],{"id":147124,"depth":44,"text":147119},"Links in Markdown.",{},"/markdown/links",{"title":147119,"description":147226},"markdown/links",[103499,58704,780,13834,146064],"rH636M5qO1ZZ9aonWRuxUtfiWxHxxZEJgh8RTyXUG78",{"id":147234,"title":61448,"body":147235,"date":402,"description":147392,"extension":404,"meta":147393,"navigation":61,"order":71,"path":147394,"seo":147395,"stem":147396,"subject":103499,"tags":147397,"__hash__":147398},"topics/markdown/lists.md",{"type":8,"value":147236,"toc":147389},[147237,147239,147387],[11,147238,61448],{"id":80306},[25,147240,147242],{"className":145957,"code":147241,"language":103499,"meta":30,"style":30},"# Unordered lists\n- Item 1\n- Item 2\n  - Nested item\n  - Another nested\n- Item 3\n\n* Also works\n* With asterisks\n\n+ Or plus signs\n+ Like this\n\n# Ordered lists\n1. First item\n2. Second item\n   1. Nested numbered\n   2. Another nested\n3. Third item\n\n# Mixed lists\n1. First item\n   - Nested bullet\n   - Another bullet\n2. Second item\n\n# Task lists (checkboxes)\n- [ ] Unchecked task\n- [x] Completed task\n- [ ] Another task\n",[20,147243,147244,147249,147254,147259,147264,147269,147274,147278,147283,147288,147292,147297,147302,147306,147311,147316,147321,147326,147331,147336,147340,147345,147349,147354,147359,147363,147367,147372,147377,147382],{"__ignoreMap":30},[34,147245,147246],{"class":36,"line":37},[34,147247,147248],{},"# Unordered lists\n",[34,147250,147251],{"class":36,"line":44},[34,147252,147253],{},"- Item 1\n",[34,147255,147256],{"class":36,"line":58},[34,147257,147258],{},"- Item 2\n",[34,147260,147261],{"class":36,"line":65},[34,147262,147263],{},"  - Nested item\n",[34,147265,147266],{"class":36,"line":71},[34,147267,147268],{},"  - Another nested\n",[34,147270,147271],{"class":36,"line":77},[34,147272,147273],{},"- Item 3\n",[34,147275,147276],{"class":36,"line":82},[34,147277,62],{"emptyLinePlaceholder":61},[34,147279,147280],{"class":36,"line":88},[34,147281,147282],{},"* Also works\n",[34,147284,147285],{"class":36,"line":242},[34,147286,147287],{},"* With asterisks\n",[34,147289,147290],{"class":36,"line":250},[34,147291,62],{"emptyLinePlaceholder":61},[34,147293,147294],{"class":36,"line":263},[34,147295,147296],{},"+ Or plus signs\n",[34,147298,147299],{"class":36,"line":275},[34,147300,147301],{},"+ Like this\n",[34,147303,147304],{"class":36,"line":700},[34,147305,62],{"emptyLinePlaceholder":61},[34,147307,147308],{"class":36,"line":706},[34,147309,147310],{},"# Ordered lists\n",[34,147312,147313],{"class":36,"line":715},[34,147314,147315],{},"1. First item\n",[34,147317,147318],{"class":36,"line":725},[34,147319,147320],{},"2. Second item\n",[34,147322,147323],{"class":36,"line":734},[34,147324,147325],{},"   1. Nested numbered\n",[34,147327,147328],{"class":36,"line":742},[34,147329,147330],{},"   2. Another nested\n",[34,147332,147333],{"class":36,"line":748},[34,147334,147335],{},"3. Third item\n",[34,147337,147338],{"class":36,"line":754},[34,147339,62],{"emptyLinePlaceholder":61},[34,147341,147342],{"class":36,"line":759},[34,147343,147344],{},"# Mixed lists\n",[34,147346,147347],{"class":36,"line":771},[34,147348,147315],{},[34,147350,147351],{"class":36,"line":794},[34,147352,147353],{},"   - Nested bullet\n",[34,147355,147356],{"class":36,"line":824},[34,147357,147358],{},"   - Another bullet\n",[34,147360,147361],{"class":36,"line":830},[34,147362,147320],{},[34,147364,147365],{"class":36,"line":839},[34,147366,62],{"emptyLinePlaceholder":61},[34,147368,147369],{"class":36,"line":854},[34,147370,147371],{},"# Task lists (checkboxes)\n",[34,147373,147374],{"class":36,"line":860},[34,147375,147376],{},"- [ ] Unchecked task\n",[34,147378,147379],{"class":36,"line":865},[34,147380,147381],{},"- [x] Completed task\n",[34,147383,147384],{"class":36,"line":870},[34,147385,147386],{},"- [ ] Another task\n",[388,147388,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":147390},[147391],{"id":80306,"depth":44,"text":61448},"Lists in Markdown.",{},"/markdown/lists",{"title":61448,"description":147392},"markdown/lists",[103499,58704,780,13834,146064],"jUiHHOiFXzWr9w8FB5QgBE1plZq1hzQ0HXPlS2KImU4",{"id":147400,"title":147401,"body":147402,"date":402,"description":147472,"extension":404,"meta":147473,"navigation":61,"order":725,"path":147474,"seo":147475,"stem":147476,"subject":103499,"tags":147477,"__hash__":147478},"topics/markdown/math-latex.md","Math (LaTeX)",{"type":8,"value":147403,"toc":147469},[147404,147407,147467],[11,147405,147401],{"id":147406},"math-latex",[25,147408,147410],{"className":145957,"code":147409,"language":103499,"meta":30,"style":30},"# Inline math\nThe equation $E = mc^2$ is famous.\n\n# Block math\n$$\n\\frac{n!}{k!(n-k)!} = \\binom{n}{k}\n$$\n\n# Sum notation\n$$\n\\sum_{i=1}^{n} x_i\n$$\n",[20,147411,147412,147417,147422,147426,147431,147436,147441,147445,147449,147454,147458,147463],{"__ignoreMap":30},[34,147413,147414],{"class":36,"line":37},[34,147415,147416],{},"# Inline math\n",[34,147418,147419],{"class":36,"line":44},[34,147420,147421],{},"The equation $E = mc^2$ is famous.\n",[34,147423,147424],{"class":36,"line":58},[34,147425,62],{"emptyLinePlaceholder":61},[34,147427,147428],{"class":36,"line":65},[34,147429,147430],{},"# Block math\n",[34,147432,147433],{"class":36,"line":71},[34,147434,147435],{},"$$\n",[34,147437,147438],{"class":36,"line":77},[34,147439,147440],{},"\\frac{n!}{k!(n-k)!} = \\binom{n}{k}\n",[34,147442,147443],{"class":36,"line":82},[34,147444,147435],{},[34,147446,147447],{"class":36,"line":88},[34,147448,62],{"emptyLinePlaceholder":61},[34,147450,147451],{"class":36,"line":242},[34,147452,147453],{},"# Sum notation\n",[34,147455,147456],{"class":36,"line":250},[34,147457,147435],{},[34,147459,147460],{"class":36,"line":263},[34,147461,147462],{},"\\sum_{i=1}^{n} x_i\n",[34,147464,147465],{"class":36,"line":275},[34,147466,147435],{},[388,147468,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":147470},[147471],{"id":147406,"depth":44,"text":147401},"Math (LaTeX) in Markdown.",{},"/markdown/math-latex",{"title":147401,"description":147472},"markdown/math-latex",[103499,58704,780,13834,146064],"00L0fTKQ-GAeHkfmVkrj_qJ59jSbFtK2d42xtjF7ihk",{"id":147480,"title":147481,"body":147482,"date":2633,"description":147558,"extension":404,"meta":147559,"navigation":61,"order":37,"path":147560,"seo":147561,"stem":147562,"subject":103499,"tags":147563,"__hash__":147564},"topics/markdown/overview.md","Markdown",{"type":8,"value":147483,"toc":147556},[147484],[309,147485,147486,147490,147494,147499,147503,147507,147511,147515,147520,147524,147528,147532,147536,147540,147544,147548,147552],{},[312,147487,147488],{},[145,147489,146724],{"href":146746},[312,147491,147492],{},[145,147493,146673],{"href":146717},[312,147495,147496],{},[145,147497,118666],{"href":147498},"/markdown/text-formatting",[312,147500,147501],{},[145,147502,61448],{"href":147394},[312,147504,147505],{},[145,147506,147119],{"href":147228},[312,147508,147509],{},[145,147510,146960],{"href":147040},[312,147512,147513],{},[145,147514,146068],{"href":146219},[312,147516,147517],{},[145,147518,89961],{"href":147519},"/markdown/tables",[312,147521,147522],{},[145,147523,146753],{"href":146812},[312,147525,147526],{},[145,147527,147047],{"href":147112},[312,147529,147530],{},[145,147531,146348],{"href":146465},[312,147533,147534],{},[145,147535,146819],{"href":146953},[312,147537,147538],{},[145,147539,146472],{"href":146666},[312,147541,147542],{},[145,147543,146289],{"href":146341},[312,147545,147546],{},[145,147547,147401],{"href":147474},[312,147549,147550],{},[145,147551,128460],{"href":146282},[312,147553,147554],{},[145,147555,5595],{"href":146060},{"title":30,"searchDepth":44,"depth":44,"links":147557},[],"Essential Markdown syntax for formatting text, creating links, tables, and more.",{},"/markdown/overview",{"title":147481,"description":147558},"markdown/overview",[103499,58704,780,13834,146064],"7_I15h5f2VdU8eV4rgrLehPevfX2DBD39VFUJLyy_Yc",{"id":147566,"title":89961,"body":147567,"date":402,"description":147658,"extension":404,"meta":147659,"navigation":61,"order":242,"path":147519,"seo":147660,"stem":147661,"subject":103499,"tags":147662,"__hash__":147663},"topics/markdown/tables.md",{"type":8,"value":147568,"toc":147655},[147569,147571,147653],[11,147570,89961],{"id":89960},[25,147572,147574],{"className":145957,"code":147573,"language":103499,"meta":30,"style":30},"# Basic table\n| Header 1 | Header 2 | Header 3 |\n|----------|----------|----------|\n| Cell 1   | Cell 2   | Cell 3   |\n| Cell 4   | Cell 5   | Cell 6   |\n\n# Alignment\n| Left     | Center   | Right    |\n|:---------|:--------:|---------:|\n| Left     | Center   | Right    |\n| aligned  | aligned  | aligned  |\n\n# Compact syntax\nHeader 1|Header 2|Header 3\n--------|--------|--------\nCell 1|Cell 2|Cell 3\n",[20,147575,147576,147581,147586,147591,147596,147601,147605,147610,147615,147620,147624,147629,147633,147638,147643,147648],{"__ignoreMap":30},[34,147577,147578],{"class":36,"line":37},[34,147579,147580],{},"# Basic table\n",[34,147582,147583],{"class":36,"line":44},[34,147584,147585],{},"| Header 1 | Header 2 | Header 3 |\n",[34,147587,147588],{"class":36,"line":58},[34,147589,147590],{},"|----------|----------|----------|\n",[34,147592,147593],{"class":36,"line":65},[34,147594,147595],{},"| Cell 1   | Cell 2   | Cell 3   |\n",[34,147597,147598],{"class":36,"line":71},[34,147599,147600],{},"| Cell 4   | Cell 5   | Cell 6   |\n",[34,147602,147603],{"class":36,"line":77},[34,147604,62],{"emptyLinePlaceholder":61},[34,147606,147607],{"class":36,"line":82},[34,147608,147609],{},"# Alignment\n",[34,147611,147612],{"class":36,"line":88},[34,147613,147614],{},"| Left     | Center   | Right    |\n",[34,147616,147617],{"class":36,"line":242},[34,147618,147619],{},"|:---------|:--------:|---------:|\n",[34,147621,147622],{"class":36,"line":250},[34,147623,147614],{},[34,147625,147626],{"class":36,"line":263},[34,147627,147628],{},"| aligned  | aligned  | aligned  |\n",[34,147630,147631],{"class":36,"line":275},[34,147632,62],{"emptyLinePlaceholder":61},[34,147634,147635],{"class":36,"line":700},[34,147636,147637],{},"# Compact syntax\n",[34,147639,147640],{"class":36,"line":706},[34,147641,147642],{},"Header 1|Header 2|Header 3\n",[34,147644,147645],{"class":36,"line":715},[34,147646,147647],{},"--------|--------|--------\n",[34,147649,147650],{"class":36,"line":725},[34,147651,147652],{},"Cell 1|Cell 2|Cell 3\n",[388,147654,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":147656},[147657],{"id":89960,"depth":44,"text":89961},"Tables in Markdown.",{},{"title":89961,"description":147658},"markdown/tables",[103499,58704,780,13834,146064],"pAls44gfm04P5Go-rZs3drl_Cgr44TYY11pPRhpQ4-Q",{"id":147665,"title":118666,"body":147666,"date":402,"description":147778,"extension":404,"meta":147779,"navigation":61,"order":65,"path":147498,"seo":147780,"stem":147781,"subject":103499,"tags":147782,"__hash__":147783},"topics/markdown/text-formatting.md",{"type":8,"value":147667,"toc":147775},[147668,147670,147773],[11,147669,118666],{"id":119331},[25,147671,147673],{"className":145957,"code":147672,"language":103499,"meta":30,"style":30},"**Bold text**\n__Also bold__\n\n*Italic text*\n_Also italic_\n\n***Bold and italic***\n___Also bold and italic___\n\n~~Strikethrough~~\n\n`Inline code`\n\n> Blockquote\n> Multiple lines\n>\n> With paragraph break\n\n> Nested blockquote\n>> Second level\n>>> Third level\n",[20,147674,147675,147680,147685,147689,147694,147699,147703,147708,147713,147717,147722,147726,147731,147735,147740,147745,147749,147754,147758,147763,147768],{"__ignoreMap":30},[34,147676,147677],{"class":36,"line":37},[34,147678,147679],{},"**Bold text**\n",[34,147681,147682],{"class":36,"line":44},[34,147683,147684],{},"__Also bold__\n",[34,147686,147687],{"class":36,"line":58},[34,147688,62],{"emptyLinePlaceholder":61},[34,147690,147691],{"class":36,"line":65},[34,147692,147693],{},"*Italic text*\n",[34,147695,147696],{"class":36,"line":71},[34,147697,147698],{},"_Also italic_\n",[34,147700,147701],{"class":36,"line":77},[34,147702,62],{"emptyLinePlaceholder":61},[34,147704,147705],{"class":36,"line":82},[34,147706,147707],{},"***Bold and italic***\n",[34,147709,147710],{"class":36,"line":88},[34,147711,147712],{},"___Also bold and italic___\n",[34,147714,147715],{"class":36,"line":242},[34,147716,62],{"emptyLinePlaceholder":61},[34,147718,147719],{"class":36,"line":250},[34,147720,147721],{},"~~Strikethrough~~\n",[34,147723,147724],{"class":36,"line":263},[34,147725,62],{"emptyLinePlaceholder":61},[34,147727,147728],{"class":36,"line":275},[34,147729,147730],{},"`Inline code`\n",[34,147732,147733],{"class":36,"line":700},[34,147734,62],{"emptyLinePlaceholder":61},[34,147736,147737],{"class":36,"line":706},[34,147738,147739],{},"> Blockquote\n",[34,147741,147742],{"class":36,"line":715},[34,147743,147744],{},"> Multiple lines\n",[34,147746,147747],{"class":36,"line":725},[34,147748,1248],{},[34,147750,147751],{"class":36,"line":734},[34,147752,147753],{},"> With paragraph break\n",[34,147755,147756],{"class":36,"line":742},[34,147757,62],{"emptyLinePlaceholder":61},[34,147759,147760],{"class":36,"line":748},[34,147761,147762],{},"> Nested blockquote\n",[34,147764,147765],{"class":36,"line":754},[34,147766,147767],{},">> Second level\n",[34,147769,147770],{"class":36,"line":759},[34,147771,147772],{},">>> Third level\n",[388,147774,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":147776},[147777],{"id":119331,"depth":44,"text":118666},"Text Formatting in Markdown.",{},{"title":118666,"description":147778},"markdown/text-formatting",[103499,58704,780,13834,146064],"9p6Vy760X5c-WEbgR_8ee1qu5ParF9ET7aiX_vPER1c",{"id":147785,"title":147786,"body":147787,"date":402,"description":148147,"extension":404,"meta":148148,"navigation":61,"order":37,"path":148149,"seo":148150,"stem":148151,"subject":147878,"tags":148152,"__hash__":148153},"topics/mermaid/overview.md","Mermaid",{"type":8,"value":147788,"toc":148138},[147789,147793,147796,147798,147870,147874,147906,147910,147935,147939,147988,147992,148111,148113,148136],[11,147790,147792],{"id":147791},"what-is-mermaid","What is Mermaid?",[16,147794,147795],{},"Mermaid is a JavaScript-based diagramming and charting tool that leverages Markdown-inspired text to create dynamic diagrams and visualizations.",[11,147797,6035],{"id":6040},[25,147799,147801],{"className":27,"code":147800,"language":29,"meta":30,"style":30},"# Install globally using npm\nnpm install -g mermaid\n\n# Use locally in your project\nnpm install mermaid\n\n# To use with Yarn\nyarn add mermaid\n\n# To use with pnpm\npnpm add mermaid\n",[20,147802,147803,147808,147819,147823,147828,147836,147840,147845,147853,147857,147862],{"__ignoreMap":30},[34,147804,147805],{"class":36,"line":37},[34,147806,147807],{"class":40},"# Install globally using npm\n",[34,147809,147810,147812,147814,147816],{"class":36,"line":44},[34,147811,8177],{"class":47},[34,147813,118],{"class":54},[34,147815,9753],{"class":50},[34,147817,147818],{"class":54}," mermaid\n",[34,147820,147821],{"class":36,"line":58},[34,147822,62],{"emptyLinePlaceholder":61},[34,147824,147825],{"class":36,"line":65},[34,147826,147827],{"class":40},"# Use locally in your project\n",[34,147829,147830,147832,147834],{"class":36,"line":71},[34,147831,8177],{"class":47},[34,147833,118],{"class":54},[34,147835,147818],{"class":54},[34,147837,147838],{"class":36,"line":77},[34,147839,62],{"emptyLinePlaceholder":61},[34,147841,147842],{"class":36,"line":82},[34,147843,147844],{"class":40},"# To use with Yarn\n",[34,147846,147847,147849,147851],{"class":36,"line":88},[34,147848,13810],{"class":47},[34,147850,7854],{"class":54},[34,147852,147818],{"class":54},[34,147854,147855],{"class":36,"line":242},[34,147856,62],{"emptyLinePlaceholder":61},[34,147858,147859],{"class":36,"line":250},[34,147860,147861],{"class":40},"# To use with pnpm\n",[34,147863,147864,147866,147868],{"class":36,"line":263},[34,147865,13788],{"class":47},[34,147867,7854],{"class":54},[34,147869,147818],{"class":54},[11,147871,147873],{"id":147872},"flowchart-example","Flowchart Example",[25,147875,147879],{"className":147876,"code":147877,"language":147878,"meta":30,"style":30},"language-mermaid shiki shiki-themes github-light github-dark","graph TD\n    A[Start] --> B{Is it working?}\n    B -->|Yes| C[Great!]\n    B -->|No| D[Try again]\n    D --> B\n","mermaid",[20,147880,147881,147886,147891,147896,147901],{"__ignoreMap":30},[34,147882,147883],{"class":36,"line":37},[34,147884,147885],{},"graph TD\n",[34,147887,147888],{"class":36,"line":44},[34,147889,147890],{},"    A[Start] --> B{Is it working?}\n",[34,147892,147893],{"class":36,"line":58},[34,147894,147895],{},"    B -->|Yes| C[Great!]\n",[34,147897,147898],{"class":36,"line":65},[34,147899,147900],{},"    B -->|No| D[Try again]\n",[34,147902,147903],{"class":36,"line":71},[34,147904,147905],{},"    D --> B\n",[11,147907,147909],{"id":147908},"sequence-diagram-example","Sequence Diagram Example",[25,147911,147913],{"className":147876,"code":147912,"language":147878,"meta":30,"style":30},"sequenceDiagram\n    Alice->>Bob: Hello Bob, how are you?\n    Bob-->>Alice: I am good thanks!\n    Alice-)Bob: I was just checking in.\n",[20,147914,147915,147920,147925,147930],{"__ignoreMap":30},[34,147916,147917],{"class":36,"line":37},[34,147918,147919],{},"sequenceDiagram\n",[34,147921,147922],{"class":36,"line":44},[34,147923,147924],{},"    Alice->>Bob: Hello Bob, how are you?\n",[34,147926,147927],{"class":36,"line":58},[34,147928,147929],{},"    Bob-->>Alice: I am good thanks!\n",[34,147931,147932],{"class":36,"line":65},[34,147933,147934],{},"    Alice-)Bob: I was just checking in.\n",[11,147936,147938],{"id":147937},"gantt-chart-example","Gantt Chart Example",[25,147940,147942],{"className":147876,"code":147941,"language":147878,"meta":30,"style":30},"gantt\ndateFormat  YYYY-MM-DD\ntitle Adding GANTT diagram to mermaid\n\nsection A section\nCompleted task            :done,    des1, 2014-01-06,2014-01-08\nActive task               :active,  des2, 2014-01-09, 3d\nFuture task               :         des3, after des2, 5d\nFuture task2              :         des4, after des3, 5d\n",[20,147943,147944,147949,147954,147959,147963,147968,147973,147978,147983],{"__ignoreMap":30},[34,147945,147946],{"class":36,"line":37},[34,147947,147948],{},"gantt\n",[34,147950,147951],{"class":36,"line":44},[34,147952,147953],{},"dateFormat  YYYY-MM-DD\n",[34,147955,147956],{"class":36,"line":58},[34,147957,147958],{},"title Adding GANTT diagram to mermaid\n",[34,147960,147961],{"class":36,"line":65},[34,147962,62],{"emptyLinePlaceholder":61},[34,147964,147965],{"class":36,"line":71},[34,147966,147967],{},"section A section\n",[34,147969,147970],{"class":36,"line":77},[34,147971,147972],{},"Completed task            :done,    des1, 2014-01-06,2014-01-08\n",[34,147974,147975],{"class":36,"line":82},[34,147976,147977],{},"Active task               :active,  des2, 2014-01-09, 3d\n",[34,147979,147980],{"class":36,"line":88},[34,147981,147982],{},"Future task               :         des3, after des2, 5d\n",[34,147984,147985],{"class":36,"line":242},[34,147986,147987],{},"Future task2              :         des4, after des3, 5d\n",[11,147989,147991],{"id":147990},"class-diagram-example","Class Diagram Example",[25,147993,147995],{"className":147876,"code":147994,"language":147878,"meta":30,"style":30},"classDiagram\n    Animal \u003C|-- Duck\n    Animal \u003C|-- Fish\n    Animal \u003C|-- Zebra\n    Animal : +int age\n    Animal : +String gender\n    Animal: +isMammal()\n    Animal: +mate()\n\n    class Duck{\n      +String beakColor\n      +swim()\n      +quack()\n    }\n\n    class Fish{\n      -int sizeInFeet\n      -canEat()\n    }\n\n    class Zebra{\n      +bool is_wild\n      +run()\n    }\n",[20,147996,147997,148002,148007,148012,148017,148022,148027,148032,148037,148041,148046,148051,148056,148061,148065,148069,148074,148079,148084,148088,148092,148097,148102,148107],{"__ignoreMap":30},[34,147998,147999],{"class":36,"line":37},[34,148000,148001],{},"classDiagram\n",[34,148003,148004],{"class":36,"line":44},[34,148005,148006],{},"    Animal \u003C|-- Duck\n",[34,148008,148009],{"class":36,"line":58},[34,148010,148011],{},"    Animal \u003C|-- Fish\n",[34,148013,148014],{"class":36,"line":65},[34,148015,148016],{},"    Animal \u003C|-- Zebra\n",[34,148018,148019],{"class":36,"line":71},[34,148020,148021],{},"    Animal : +int age\n",[34,148023,148024],{"class":36,"line":77},[34,148025,148026],{},"    Animal : +String gender\n",[34,148028,148029],{"class":36,"line":82},[34,148030,148031],{},"    Animal: +isMammal()\n",[34,148033,148034],{"class":36,"line":88},[34,148035,148036],{},"    Animal: +mate()\n",[34,148038,148039],{"class":36,"line":242},[34,148040,62],{"emptyLinePlaceholder":61},[34,148042,148043],{"class":36,"line":250},[34,148044,148045],{},"    class Duck{\n",[34,148047,148048],{"class":36,"line":263},[34,148049,148050],{},"      +String beakColor\n",[34,148052,148053],{"class":36,"line":275},[34,148054,148055],{},"      +swim()\n",[34,148057,148058],{"class":36,"line":700},[34,148059,148060],{},"      +quack()\n",[34,148062,148063],{"class":36,"line":706},[34,148064,3229],{},[34,148066,148067],{"class":36,"line":715},[34,148068,62],{"emptyLinePlaceholder":61},[34,148070,148071],{"class":36,"line":725},[34,148072,148073],{},"    class Fish{\n",[34,148075,148076],{"class":36,"line":734},[34,148077,148078],{},"      -int sizeInFeet\n",[34,148080,148081],{"class":36,"line":742},[34,148082,148083],{},"      -canEat()\n",[34,148085,148086],{"class":36,"line":748},[34,148087,3229],{},[34,148089,148090],{"class":36,"line":754},[34,148091,62],{"emptyLinePlaceholder":61},[34,148093,148094],{"class":36,"line":759},[34,148095,148096],{},"    class Zebra{\n",[34,148098,148099],{"class":36,"line":771},[34,148100,148101],{},"      +bool is_wild\n",[34,148103,148104],{"class":36,"line":794},[34,148105,148106],{},"      +run()\n",[34,148108,148109],{"class":36,"line":824},[34,148110,3229],{},[11,148112,8498],{"id":8497},[309,148114,148115,148118,148121,148124,148127,148130,148133],{},[312,148116,148117],{},"Flowcharts",[312,148119,148120],{},"Sequence diagrams",[312,148122,148123],{},"Gantt diagrams",[312,148125,148126],{},"Class diagrams",[312,148128,148129],{},"Git graphs",[312,148131,148132],{},"Entity-Relationship diagrams",[312,148134,148135],{},"User journey and quadrant charts",[388,148137,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":148139},[148140,148141,148142,148143,148144,148145,148146],{"id":147791,"depth":44,"text":147792},{"id":6040,"depth":44,"text":6035},{"id":147872,"depth":44,"text":147873},{"id":147908,"depth":44,"text":147909},{"id":147937,"depth":44,"text":147938},{"id":147990,"depth":44,"text":147991},{"id":8497,"depth":44,"text":8498},"Diagramming and charting tool with Markdown-inspired syntax.",{},"/mermaid/overview",{"title":147786,"description":148147},"mermaid/overview",[147878,46239,63035,8606],"beZM592w3xHCpW96zmulZj_dVPpcDx7PISFhVKjpqOo",{"id":148155,"title":148156,"body":148157,"date":402,"description":148483,"extension":404,"meta":148484,"navigation":61,"order":37,"path":148485,"seo":148486,"stem":148487,"subject":148231,"tags":148488,"__hash__":148490},"topics/mise/overview.md","Mise-en-Place",{"type":8,"value":148158,"toc":148470},[148159,148161,148202,148212,148214,148218,148222,148246,148252,148254,148258,148265,148298,148302,148320,148322,148324,148327,148348,148351,148375,148377,148381,148384,148404,148410,148412,148416,148419,148448,148453,148455,148459,148467],[11,148160,97],{"id":96},[25,148162,148164],{"className":27,"code":148163,"language":29,"meta":30,"style":30},"# Install mise via the recommended shell script\ncurl https://mise.run | sh\n\n# Verify the installation\n~/.local/bin/mise --version\n# Output: mise 2024.x.x\n",[20,148165,148166,148171,148182,148186,148190,148197],{"__ignoreMap":30},[34,148167,148168],{"class":36,"line":37},[34,148169,148170],{"class":40},"# Install mise via the recommended shell script\n",[34,148172,148173,148175,148178,148180],{"class":36,"line":44},[34,148174,8648],{"class":47},[34,148176,148177],{"class":54}," https://mise.run",[34,148179,7197],{"class":580},[34,148181,48093],{"class":47},[34,148183,148184],{"class":36,"line":58},[34,148185,62],{"emptyLinePlaceholder":61},[34,148187,148188],{"class":36,"line":65},[34,148189,5005],{"class":40},[34,148191,148192,148194],{"class":36,"line":71},[34,148193,13692],{"class":580},[34,148195,148196],{"class":181},"/.local/bin/mise --version\n",[34,148198,148199],{"class":36,"line":77},[34,148200,148201],{"class":40},"# Output: mise 2024.x.x\n",[16,148203,148204,148205,128469,148208,148211],{},"Mise respects ",[20,148206,148207],{},"MISE_DATA_DIR",[20,148209,148210],{},"XDG_DATA_HOME"," to customize data paths.",[7979,148213],{},[11,148215,148217],{"id":148216},"usage-overview","Usage Overview",[102,148219,148221],{"id":148220},"running-commands-with-specific-tools","Running Commands with Specific Tools",[25,148223,148225],{"className":27,"code":148224,"language":29,"meta":30,"style":30},"mise exec python@3 -- python\n# Example: Runs Python 3 REPL\n",[20,148226,148227,148241],{"__ignoreMap":30},[34,148228,148229,148232,148234,148237,148239],{"class":36,"line":37},[34,148230,148231],{"class":47},"mise",[34,148233,55938],{"class":54},[34,148235,148236],{"class":54}," python@3",[34,148238,99171],{"class":50},[34,148240,7871],{"class":54},[34,148242,148243],{"class":36,"line":44},[34,148244,148245],{"class":40},"# Example: Runs Python 3 REPL\n",[16,148247,15998,148248,148251],{},[20,148249,148250],{},"mise exec"," to specify versioned tools.",[7979,148253],{},[11,148255,148257],{"id":148256},"task-automation","Task Automation",[16,148259,148260,148261,148264],{},"Mise enables task definition inside ",[20,148262,148263],{},"mise.toml"," files:",[25,148266,148268],{"className":14514,"code":148267,"language":14516,"meta":30,"style":30},"[tasks.build]\ndescription = \"Build the CLI\"\nrun = \"cargo build\"\n",[20,148269,148270,148282,148290],{"__ignoreMap":30},[34,148271,148272,148274,148276,148278,148280],{"class":36,"line":37},[34,148273,10260],{"class":181},[34,148275,48620],{"class":47},[34,148277,151],{"class":181},[34,148279,71370],{"class":47},[34,148281,924],{"class":181},[34,148283,148284,148287],{"class":36,"line":44},[34,148285,148286],{"class":181},"description = ",[34,148288,148289],{"class":54},"\"Build the CLI\"\n",[34,148291,148292,148295],{"class":36,"line":58},[34,148293,148294],{"class":181},"run = ",[34,148296,148297],{"class":54},"\"cargo build\"\n",[102,148299,148301],{"id":148300},"running-tasks","Running Tasks",[25,148303,148305],{"className":27,"code":148304,"language":29,"meta":30,"style":30},"mise run build\n# Executes the \"build\" task\n",[20,148306,148307,148315],{"__ignoreMap":30},[34,148308,148309,148311,148313],{"class":36,"line":37},[34,148310,148231],{"class":47},[34,148312,16017],{"class":54},[34,148314,55],{"class":54},[34,148316,148317],{"class":36,"line":44},[34,148318,148319],{"class":40},"# Executes the \"build\" task\n",[7979,148321],{},[11,148323,14656],{"id":14661},[16,148325,148326],{},"Define per-project environment variables:",[25,148328,148330],{"className":14514,"code":148329,"language":14516,"meta":30,"style":30},"[env]\nNODE_ENV = 'production'\n",[20,148331,148332,148340],{"__ignoreMap":30},[34,148333,148334,148336,148338],{"class":36,"line":37},[34,148335,10260],{"class":181},[34,148337,86043],{"class":47},[34,148339,924],{"class":181},[34,148341,148342,148345],{"class":36,"line":44},[34,148343,148344],{"class":181},"NODE_ENV = ",[34,148346,148347],{"class":54},"'production'\n",[16,148349,148350],{},"Use CLI to set/unset variables dynamically:",[25,148352,148354],{"className":27,"code":148353,"language":29,"meta":30,"style":30},"mise set NODE_ENV=development\nmise unset NODE_ENV\n",[20,148355,148356,148365],{"__ignoreMap":30},[34,148357,148358,148360,148362],{"class":36,"line":37},[34,148359,148231],{"class":47},[34,148361,9481],{"class":54},[34,148363,148364],{"class":54}," NODE_ENV=development\n",[34,148366,148367,148369,148372],{"class":36,"line":44},[34,148368,148231],{"class":47},[34,148370,148371],{"class":54}," unset",[34,148373,148374],{"class":54}," NODE_ENV\n",[7979,148376],{},[11,148378,148380],{"id":148379},"dev-tools","Dev Tools",[16,148382,148383],{},"Activate tools and configurations directly:",[25,148385,148387],{"className":27,"code":148386,"language":29,"meta":30,"style":30},"mise use node@latest\nnode -v\n",[20,148388,148389,148398],{"__ignoreMap":30},[34,148390,148391,148393,148395],{"class":36,"line":37},[34,148392,148231],{"class":47},[34,148394,49111],{"class":54},[34,148396,148397],{"class":54}," node@latest\n",[34,148399,148400,148402],{"class":36,"line":44},[34,148401,16004],{"class":47},[34,148403,57767],{"class":50},[16,148405,148406,148407,148409],{},"This generates a ",[20,148408,148263],{}," configuration for portability and team sharing.",[7979,148411],{},[11,148413,148415],{"id":148414},"continuous-integration","Continuous Integration",[16,148417,148418],{},"Mise can bootstrap environments in CI pipelines:",[25,148420,148422],{"className":168,"code":148421,"language":170,"meta":30,"style":30},"script: |\n  curl https://mise.run | sh\n  mise install\n  mise x -- npm test\n",[20,148423,148424,148433,148438,148443],{"__ignoreMap":30},[34,148425,148426,148428,148430],{"class":36,"line":37},[34,148427,115970],{"class":177},[34,148429,182],{"class":181},[34,148431,148432],{"class":580},"|\n",[34,148434,148435],{"class":36,"line":44},[34,148436,148437],{"class":54},"  curl https://mise.run | sh\n",[34,148439,148440],{"class":36,"line":58},[34,148441,148442],{"class":54},"  mise install\n",[34,148444,148445],{"class":36,"line":65},[34,148446,148447],{"class":54},"  mise x -- npm test\n",[16,148449,148450,148451,15146],{},"For reproducibility, pin tool versions within your ",[20,148452,148263],{},[7979,148454],{},[11,148456,148458],{"id":148457},"further-reading","Further Reading",[16,148460,148461,148462,148466],{},"Refer to the ",[145,148463,58704],{"href":148464,"rel":148465},"https://mise.jdx.dev/getting-started.html",[149]," for advanced usage and troubleshooting.",[388,148468,148469],{},"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 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 .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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":30,"searchDepth":44,"depth":44,"links":148471},[148472,148473,148476,148479,148480,148481,148482],{"id":96,"depth":44,"text":97},{"id":148216,"depth":44,"text":148217,"children":148474},[148475],{"id":148220,"depth":58,"text":148221},{"id":148256,"depth":44,"text":148257,"children":148477},[148478],{"id":148300,"depth":58,"text":148301},{"id":14661,"depth":44,"text":14656},{"id":148379,"depth":44,"text":148380},{"id":148414,"depth":44,"text":148415},{"id":148457,"depth":44,"text":148458},"Mise command-line interface for tool management, environment configuration, and task automation.",{},"/mise/overview",{"title":148156,"description":148483},"mise/overview",[148231,14119,413,148489,48620],"environments","2j3BWVm1xiXOuwDSOH5A4K54E2_IT6d7jCDBmmQ07e8",{"id":148492,"title":148493,"body":148494,"date":402,"description":148549,"extension":404,"meta":148550,"navigation":61,"order":37,"path":148551,"seo":148552,"stem":148553,"subject":148493,"tags":148554,"__hash__":148558},"topics/mkcert/overview.md","mkcert",{"type":8,"value":148495,"toc":148544},[148496,148500,148531,148535,148542],[11,148497,148499],{"id":148498},"what-is-mkcert","What is mkcert?",[25,148501,148503],{"className":27,"code":148502,"language":29,"meta":30,"style":30},"# Install mkcert (Mac via Homebrew example)\nbrew install mkcert\nbrew install nss # If running Firefox alongside\n",[20,148504,148505,148510,148519],{"__ignoreMap":30},[34,148506,148507],{"class":36,"line":37},[34,148508,148509],{"class":40},"# Install mkcert (Mac via Homebrew example)\n",[34,148511,148512,148514,148516],{"class":36,"line":44},[34,148513,115],{"class":47},[34,148515,118],{"class":54},[34,148517,148518],{"class":54}," mkcert\n",[34,148520,148521,148523,148525,148528],{"class":36,"line":58},[34,148522,115],{"class":47},[34,148524,118],{"class":54},[34,148526,148527],{"class":54}," nss",[34,148529,148530],{"class":40}," # If running Firefox alongside\n",[102,148532,148534],{"id":148533},"problem-it-solves","Problem It Solves",[16,148536,148537,148538,148541],{},"Certificates you maintain are for ",[20,148539,148540],{},"tiny dev CAs"," trust, the infra often breaks compatibility in browsers.\nIs works quickly create safe development setup envs. keyboardist.",[388,148543,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":148545},[148546],{"id":148498,"depth":44,"text":148499,"children":148547},[148548],{"id":148533,"depth":58,"text":148534},"Shortcut tool for generating locally-trusted development certificates securely.",{},"/mkcert/overview",{"title":148493,"description":148549},"mkcert/overview",[27925,148555,148556,148557],"certificates","local-development","openssl","IQ1On0P1jgr_nkcYOHUaBPazSGN3ACZi0y0Zpr9ro3Y",{"id":148560,"title":13534,"body":148561,"date":402,"description":148567,"extension":404,"meta":148570,"navigation":61,"order":402,"path":148571,"seo":148572,"stem":148573,"subject":402,"tags":402,"__hash__":148574},"topics/mojo/overview.md",{"type":8,"value":148562,"toc":148568},[148563,148565],[7979,148564],{},[16,148566,148567],{},"title: Mojo Language Guide\ndescription: Mojo basics: interop efficient programming.\nsubject:'' overview structured marked optimization!",{"title":30,"searchDepth":44,"depth":44,"links":148569},[],{},"/mojo/overview",{"title":13534,"description":148567},"mojo/overview","0GsF-4qgkUMfjwVbhN3NGiryTPPMONELjOI503Z-0Ho",{"id":148576,"title":148577,"body":148578,"date":402,"description":149042,"extension":404,"meta":149043,"navigation":61,"order":37,"path":149044,"seo":149045,"stem":149046,"subject":85300,"tags":149047,"__hash__":149049},"topics/mongodb/overview.md","MongoDB Cheat Sheet",{"type":8,"value":148579,"toc":149034},[148580,148584,148610,148693,148697,148744,148746,148888,148890,148960,148962,149021,149025,149031],[11,148581,148583],{"id":148582},"connecting-to-mongodb","Connecting to MongoDB",[25,148585,148587],{"className":28261,"code":148586,"language":10358,"meta":30,"style":30},"# Connect to a MongoDB instance (default port 27017)\nmongo --host localhost --port 27017\n",[20,148588,148589,148594],{"__ignoreMap":30},[34,148590,148591],{"class":36,"line":37},[34,148592,148593],{"class":40},"# Connect to a MongoDB instance (default port 27017)\n",[34,148595,148596,148599,148601,148604,148607],{"class":36,"line":44},[34,148597,148598],{"class":47},"mongo",[34,148600,93835],{"class":50},[34,148602,148603],{"class":54}," localhost",[34,148605,148606],{"class":50}," --port",[34,148608,148609],{"class":50}," 27017\n",[25,148611,148613],{"className":13845,"code":148612,"language":8606,"meta":30,"style":30},"// Node.js example\nconst { MongoClient } = require('mongodb');\nconst client = new MongoClient('mongodb://localhost:27017');\nawait client.connect();\nconst db = client.db('exampleDB');\n",[20,148614,148615,148620,148642,148662,148673],{"__ignoreMap":30},[34,148616,148617],{"class":36,"line":37},[34,148618,148619],{"class":40},"// Node.js example\n",[34,148621,148622,148624,148626,148629,148631,148633,148635,148637,148640],{"class":36,"line":44},[34,148623,14676],{"class":580},[34,148625,30251],{"class":181},[34,148627,148628],{"class":50},"MongoClient",[34,148630,34865],{"class":181},[34,148632,1301],{"class":580},[34,148634,111491],{"class":47},[34,148636,1607],{"class":181},[34,148638,148639],{"class":54},"'mongodb'",[34,148641,1586],{"class":181},[34,148643,148644,148646,148648,148650,148652,148655,148657,148660],{"class":36,"line":58},[34,148645,14676],{"class":580},[34,148647,33848],{"class":50},[34,148649,683],{"class":580},[34,148651,809],{"class":580},[34,148653,148654],{"class":47}," MongoClient",[34,148656,1607],{"class":181},[34,148658,148659],{"class":54},"'mongodb://localhost:27017'",[34,148661,1586],{"class":181},[34,148663,148664,148666,148668,148671],{"class":36,"line":65},[34,148665,15062],{"class":580},[34,148667,33866],{"class":181},[34,148669,148670],{"class":47},"connect",[34,148672,851],{"class":181},[34,148674,148675,148677,148679,148681,148683,148686,148688,148691],{"class":36,"line":71},[34,148676,14676],{"class":580},[34,148678,16997],{"class":50},[34,148680,683],{"class":580},[34,148682,33866],{"class":181},[34,148684,148685],{"class":47},"db",[34,148687,1607],{"class":181},[34,148689,148690],{"class":54},"'exampleDB'",[34,148692,1586],{"class":181},[11,148694,148696],{"id":148695},"basic-commands-in-mongodb-shell","Basic Commands in MongoDB Shell",[25,148698,148700],{"className":28261,"code":148699,"language":10358,"meta":30,"style":30},"# Show all databases\nshow dbs\n\n# Use a database (creates if doesn't exist)\nuse exampleDB\n\n# Show collections (tables)\nshow collections\n",[20,148701,148702,148707,148713,148717,148722,148729,148733,148738],{"__ignoreMap":30},[34,148703,148704],{"class":36,"line":37},[34,148705,148706],{"class":40},"# Show all databases\n",[34,148708,148709,148711],{"class":36,"line":44},[34,148710,83105],{"class":47},[34,148712,83108],{"class":54},[34,148714,148715],{"class":36,"line":58},[34,148716,62],{"emptyLinePlaceholder":61},[34,148718,148719],{"class":36,"line":65},[34,148720,148721],{"class":40},"# Use a database (creates if doesn't exist)\n",[34,148723,148724,148726],{"class":36,"line":71},[34,148725,61898],{"class":47},[34,148727,148728],{"class":54}," exampleDB\n",[34,148730,148731],{"class":36,"line":77},[34,148732,62],{"emptyLinePlaceholder":61},[34,148734,148735],{"class":36,"line":82},[34,148736,148737],{"class":40},"# Show collections (tables)\n",[34,148739,148740,148742],{"class":36,"line":88},[34,148741,83105],{"class":47},[34,148743,83174],{"class":54},[11,148745,28472],{"id":28471},[25,148747,148749],{"className":13845,"code":148748,"language":8606,"meta":30,"style":30},"// Insert a document\nawait db.collection('users').insertOne({ name: 'Alice', age: 30 });\n\n// Find all documents\nconst users = await db.collection('users').find().toArray();\n\n// Update a document\nawait db.collection('users').updateOne({ name: 'Alice' }, { $set: { age: 31 } });\n\n// Delete a document\nawait db.collection('users').deleteOne({ name: 'Alice' });\n",[20,148750,148751,148756,148783,148787,148791,148820,148824,148829,148857,148861,148866],{"__ignoreMap":30},[34,148752,148753],{"class":36,"line":37},[34,148754,148755],{"class":40},"// Insert a document\n",[34,148757,148758,148760,148762,148765,148767,148769,148771,148773,148775,148777,148779,148781],{"class":36,"line":44},[34,148759,15062],{"class":580},[34,148761,17083],{"class":181},[34,148763,148764],{"class":47},"collection",[34,148766,1607],{"class":181},[34,148768,71301],{"class":54},[34,148770,1876],{"class":181},[34,148772,83280],{"class":47},[34,148774,14862],{"class":181},[34,148776,28504],{"class":54},[34,148778,83356],{"class":181},[34,148780,17625],{"class":50},[34,148782,15567],{"class":181},[34,148784,148785],{"class":36,"line":58},[34,148786,62],{"emptyLinePlaceholder":61},[34,148788,148789],{"class":36,"line":65},[34,148790,83403],{"class":40},[34,148792,148793,148795,148797,148799,148801,148803,148805,148807,148809,148811,148813,148815,148818],{"class":36,"line":71},[34,148794,14676],{"class":580},[34,148796,28425],{"class":50},[34,148798,683],{"class":580},[34,148800,14763],{"class":580},[34,148802,17083],{"class":181},[34,148804,148764],{"class":47},[34,148806,1607],{"class":181},[34,148808,71301],{"class":54},[34,148810,1876],{"class":181},[34,148812,12963],{"class":47},[34,148814,1645],{"class":181},[34,148816,148817],{"class":47},"toArray",[34,148819,851],{"class":181},[34,148821,148822],{"class":36,"line":77},[34,148823,62],{"emptyLinePlaceholder":61},[34,148825,148826],{"class":36,"line":82},[34,148827,148828],{"class":40},"// Update a document\n",[34,148830,148831,148833,148835,148837,148839,148841,148843,148845,148847,148849,148852,148854],{"class":36,"line":88},[34,148832,15062],{"class":580},[34,148834,17083],{"class":181},[34,148836,148764],{"class":47},[34,148838,1607],{"class":181},[34,148840,71301],{"class":54},[34,148842,1876],{"class":181},[34,148844,83953],{"class":47},[34,148846,14862],{"class":181},[34,148848,28504],{"class":54},[34,148850,148851],{"class":181}," }, { $set: { age: ",[34,148853,83975],{"class":50},[34,148855,148856],{"class":181}," } });\n",[34,148858,148859],{"class":36,"line":242},[34,148860,62],{"emptyLinePlaceholder":61},[34,148862,148863],{"class":36,"line":250},[34,148864,148865],{"class":40},"// Delete a document\n",[34,148867,148868,148870,148872,148874,148876,148878,148880,148882,148884,148886],{"class":36,"line":263},[34,148869,15062],{"class":580},[34,148871,17083],{"class":181},[34,148873,148764],{"class":47},[34,148875,1607],{"class":181},[34,148877,71301],{"class":54},[34,148879,1876],{"class":181},[34,148881,84254],{"class":47},[34,148883,14862],{"class":181},[34,148885,28504],{"class":54},[34,148887,15567],{"class":181},[11,148889,29155],{"id":29154},[25,148891,148893],{"className":13845,"code":148892,"language":8606,"meta":30,"style":30},"// Example aggregation pipeline\nconst results = await db.collection('users').aggregate([\n  { $match: { age: { $gte: 18 } } },\n  { $group: { _id: '$age', count: { $sum: 1 } } }\n]).toArray();\n",[20,148894,148895,148900,148925,148935,148951],{"__ignoreMap":30},[34,148896,148897],{"class":36,"line":37},[34,148898,148899],{"class":40},"// Example aggregation pipeline\n",[34,148901,148902,148904,148907,148909,148911,148913,148915,148917,148919,148921,148923],{"class":36,"line":44},[34,148903,14676],{"class":580},[34,148905,148906],{"class":50}," results",[34,148908,683],{"class":580},[34,148910,14763],{"class":580},[34,148912,17083],{"class":181},[34,148914,148764],{"class":47},[34,148916,1607],{"class":181},[34,148918,71301],{"class":54},[34,148920,1876],{"class":181},[34,148922,84322],{"class":47},[34,148924,83346],{"class":181},[34,148926,148927,148930,148932],{"class":36,"line":58},[34,148928,148929],{"class":181},"  { $match: { age: { $gte: ",[34,148931,83593],{"class":50},[34,148933,148934],{"class":181}," } } },\n",[34,148936,148937,148940,148943,148946,148948],{"class":36,"line":65},[34,148938,148939],{"class":181},"  { $group: { _id: ",[34,148941,148942],{"class":54},"'$age'",[34,148944,148945],{"class":181},", count: { $sum: ",[34,148947,8318],{"class":50},[34,148949,148950],{"class":181}," } } }\n",[34,148952,148953,148956,148958],{"class":36,"line":71},[34,148954,148955],{"class":181},"]).",[34,148957,148817],{"class":47},[34,148959,851],{"class":181},[11,148961,84674],{"id":84673},[25,148963,148965],{"className":13845,"code":148964,"language":8606,"meta":30,"style":30},"// Create an index\nawait db.collection('users').createIndex({ name: 1 });\n\n// List indexes\nawait db.collection('users').indexes();\n",[20,148966,148967,148972,148994,148998,149003],{"__ignoreMap":30},[34,148968,148969],{"class":36,"line":37},[34,148970,148971],{"class":40},"// Create an index\n",[34,148973,148974,148976,148978,148980,148982,148984,148986,148988,148990,148992],{"class":36,"line":44},[34,148975,15062],{"class":580},[34,148977,17083],{"class":181},[34,148979,148764],{"class":47},[34,148981,1607],{"class":181},[34,148983,71301],{"class":54},[34,148985,1876],{"class":181},[34,148987,84691],{"class":47},[34,148989,14862],{"class":181},[34,148991,8318],{"class":50},[34,148993,15567],{"class":181},[34,148995,148996],{"class":36,"line":58},[34,148997,62],{"emptyLinePlaceholder":61},[34,148999,149000],{"class":36,"line":65},[34,149001,149002],{"class":40},"// List indexes\n",[34,149004,149005,149007,149009,149011,149013,149015,149017,149019],{"class":36,"line":71},[34,149006,15062],{"class":580},[34,149008,17083],{"class":181},[34,149010,148764],{"class":47},[34,149012,1607],{"class":181},[34,149014,71301],{"class":54},[34,149016,1876],{"class":181},[34,149018,84673],{"class":47},[34,149020,851],{"class":181},[11,149022,149024],{"id":149023},"mongodb-atlas","MongoDB Atlas",[25,149026,149029],{"className":149027,"code":149028,"language":780,"meta":30},[13703],"# MongoDB Atlas setup steps:\n1. Sign up at https://www.mongodb.com/cloud/atlas\n2. Create a cluster.\n3. Whitelist your IP address.\n4. Connect to the cluster using connection string.\n",[20,149030,149028],{"__ignoreMap":30},[388,149032,149033],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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}",{"title":30,"searchDepth":44,"depth":44,"links":149035},[149036,149037,149038,149039,149040,149041],{"id":148582,"depth":44,"text":148583},{"id":148695,"depth":44,"text":148696},{"id":28471,"depth":44,"text":28472},{"id":29154,"depth":44,"text":29155},{"id":84673,"depth":44,"text":84674},{"id":149023,"depth":44,"text":149024},"Quick MongoDB usage tips including shell commands and Node.js examples.",{},"/mongodb/overview",{"title":148577,"description":149042},"mongodb/overview",[85300,28650,28649,149048],"atlas","qlTYnhSxer9UX3NCKUIBWR8cjnCXoavUnXFR-2rsdG8",{"id":149051,"title":149052,"body":149053,"date":402,"description":149755,"extension":404,"meta":149756,"navigation":61,"order":37,"path":149757,"seo":149758,"stem":149759,"subject":149760,"tags":149761,"__hash__":149762},"topics/msw/overview.md","MSW",{"type":8,"value":149054,"toc":149744},[149055,149057,149060,149190,149192,149212,149315,149317,149319,149335,149339,149342,149403,149407,149410,149510,149512,149523,149525,149530,149607,149612,149655,149660,149739,149742],[11,149056,14],{"id":13},[16,149058,149059],{},"Mock Service Worker (MSW) is an API mocking library for browsers and Node.js. It allows the interception and mocking of network requests to simulate server responses effectively. By leveraging this library, developers can ensure isolated and reliable tests while maintaining a real-world-like testing environment.",[25,149061,149063],{"className":13845,"code":149062,"language":8606,"meta":30,"style":30},"// Setting up a request handler\nimport { setupWorker, rest } from 'msw';\n\nconst worker = setupWorker(\n  rest.get('/user', (req, res, ctx) => {\n    return res(\n      ctx.status(200),\n      ctx.json({ username: 'John Doe' })\n    );\n  })\n);\n\nworker.start();\n",[20,149064,149065,149070,149084,149088,149101,149130,149138,149151,149165,149169,149173,149177,149181],{"__ignoreMap":30},[34,149066,149067],{"class":36,"line":37},[34,149068,149069],{"class":40},"// Setting up a request handler\n",[34,149071,149072,149074,149077,149079,149082],{"class":36,"line":44},[34,149073,581],{"class":580},[34,149075,149076],{"class":181}," { setupWorker, rest } ",[34,149078,587],{"class":580},[34,149080,149081],{"class":54}," 'msw'",[34,149083,593],{"class":181},[34,149085,149086],{"class":36,"line":58},[34,149087,62],{"emptyLinePlaceholder":61},[34,149089,149090,149092,149094,149096,149099],{"class":36,"line":65},[34,149091,14676],{"class":580},[34,149093,106110],{"class":50},[34,149095,683],{"class":580},[34,149097,149098],{"class":47}," setupWorker",[34,149100,1882],{"class":181},[34,149102,149103,149106,149108,149110,149112,149114,149116,149118,149120,149122,149124,149126,149128],{"class":36,"line":71},[34,149104,149105],{"class":181},"  rest.",[34,149107,1573],{"class":47},[34,149109,1607],{"class":181},[34,149111,62070],{"class":54},[34,149113,75504],{"class":181},[34,149115,15452],{"class":675},[34,149117,1798],{"class":181},[34,149119,75511],{"class":675},[34,149121,1798],{"class":181},[34,149123,61907],{"class":675},[34,149125,4817],{"class":181},[34,149127,3361],{"class":580},[34,149129,661],{"class":181},[34,149131,149132,149134,149136],{"class":36,"line":77},[34,149133,1564],{"class":580},[34,149135,85438],{"class":47},[34,149137,1882],{"class":181},[34,149139,149140,149143,149145,149147,149149],{"class":36,"line":82},[34,149141,149142],{"class":181},"      ctx.",[34,149144,75167],{"class":47},[34,149146,1607],{"class":181},[34,149148,20899],{"class":50},[34,149150,50836],{"class":181},[34,149152,149153,149155,149157,149160,149163],{"class":36,"line":88},[34,149154,149142],{"class":181},[34,149156,14790],{"class":47},[34,149158,149159],{"class":181},"({ username: ",[34,149161,149162],{"class":54},"'John Doe'",[34,149164,1502],{"class":181},[34,149166,149167],{"class":36,"line":242},[34,149168,1945],{"class":181},[34,149170,149171],{"class":36,"line":250},[34,149172,62121],{"class":181},[34,149174,149175],{"class":36,"line":263},[34,149176,1586],{"class":181},[34,149178,149179],{"class":36,"line":275},[34,149180,62],{"emptyLinePlaceholder":61},[34,149182,149183,149186,149188],{"class":36,"line":700},[34,149184,149185],{"class":181},"worker.",[34,149187,40502],{"class":47},[34,149189,851],{"class":181},[11,149191,8498],{"id":8497},[28799,149193,149194,149200,149206],{},[312,149195,149196,149199],{},[8471,149197,149198],{},"Environment Agnostic",":\nMSW works seamlessly across browsers and Node.js without requiring extra configuration or adapters.",[312,149201,149202,149205],{},[8471,149203,149204],{},"Service Worker-based Architecture",":\nUtilizes browser-native APIs to intercept network requests without modifying application code.",[312,149207,149208,149211],{},[8471,149209,149210],{},"Reusability",":\nMock APIs can be reused across your development, testing, and staging workflows, ensuring consistency.",[25,149213,149215],{"className":13845,"code":149214,"language":8606,"meta":30,"style":30},"rest.post('/login', async (req, res, ctx) => {\n  const { username } = await req.json();\n  return res(\n    ctx.status(200),\n    ctx.json({ token: 'fakeToken123' })\n  );\n});\n",[20,149216,149217,149251,149272,149280,149293,149307,149311],{"__ignoreMap":30},[34,149218,149219,149222,149224,149226,149229,149231,149233,149235,149237,149239,149241,149243,149245,149247,149249],{"class":36,"line":37},[34,149220,149221],{"class":181},"rest.",[34,149223,1730],{"class":47},[34,149225,1607],{"class":181},[34,149227,149228],{"class":54},"'/login'",[34,149230,1798],{"class":181},[34,149232,17403],{"class":580},[34,149234,3204],{"class":181},[34,149236,15452],{"class":675},[34,149238,1798],{"class":181},[34,149240,75511],{"class":675},[34,149242,1798],{"class":181},[34,149244,61907],{"class":675},[34,149246,4817],{"class":181},[34,149248,3361],{"class":580},[34,149250,661],{"class":181},[34,149252,149253,149255,149257,149259,149261,149263,149265,149268,149270],{"class":36,"line":44},[34,149254,17415],{"class":580},[34,149256,30251],{"class":181},[34,149258,72596],{"class":50},[34,149260,34865],{"class":181},[34,149262,1301],{"class":580},[34,149264,14763],{"class":580},[34,149266,149267],{"class":181}," req.",[34,149269,14790],{"class":47},[34,149271,851],{"class":181},[34,149273,149274,149276,149278],{"class":36,"line":58},[34,149275,8155],{"class":580},[34,149277,85438],{"class":47},[34,149279,1882],{"class":181},[34,149281,149282,149285,149287,149289,149291],{"class":36,"line":65},[34,149283,149284],{"class":181},"    ctx.",[34,149286,75167],{"class":47},[34,149288,1607],{"class":181},[34,149290,20899],{"class":50},[34,149292,50836],{"class":181},[34,149294,149295,149297,149299,149302,149305],{"class":36,"line":71},[34,149296,149284],{"class":181},[34,149298,14790],{"class":47},[34,149300,149301],{"class":181},"({ token: ",[34,149303,149304],{"class":54},"'fakeToken123'",[34,149306,1502],{"class":181},[34,149308,149309],{"class":36,"line":77},[34,149310,61002],{"class":181},[34,149312,149313],{"class":36,"line":82},[34,149314,14873],{"class":181},[11,149316,6035],{"id":6040},[102,149318,97],{"id":96},[25,149320,149322],{"className":27,"code":149321,"language":29,"meta":30,"style":30},"npm install msw --save-dev\n",[20,149323,149324],{"__ignoreMap":30},[34,149325,149326,149328,149330,149333],{"class":36,"line":37},[34,149327,8177],{"class":47},[34,149329,118],{"class":54},[34,149331,149332],{"class":54}," msw",[34,149334,8192],{"class":50},[102,149336,149338],{"id":149337},"quick-setup","Quick Setup",[16,149340,149341],{},"Import the library and configure the worker:",[25,149343,149345],{"className":13845,"code":149344,"language":8606,"meta":30,"style":30},"import { setupWorker } from 'msw';\nimport { handlers } from './handlers';\n\nconst worker = setupWorker(...handlers);\nworker.start();\n",[20,149346,149347,149360,149374,149378,149395],{"__ignoreMap":30},[34,149348,149349,149351,149354,149356,149358],{"class":36,"line":37},[34,149350,581],{"class":580},[34,149352,149353],{"class":181}," { setupWorker } ",[34,149355,587],{"class":580},[34,149357,149081],{"class":54},[34,149359,593],{"class":181},[34,149361,149362,149364,149367,149369,149372],{"class":36,"line":44},[34,149363,581],{"class":580},[34,149365,149366],{"class":181}," { handlers } ",[34,149368,587],{"class":580},[34,149370,149371],{"class":54}," './handlers'",[34,149373,593],{"class":181},[34,149375,149376],{"class":36,"line":58},[34,149377,62],{"emptyLinePlaceholder":61},[34,149379,149380,149382,149384,149386,149388,149390,149392],{"class":36,"line":65},[34,149381,14676],{"class":580},[34,149383,106110],{"class":50},[34,149385,683],{"class":580},[34,149387,149098],{"class":47},[34,149389,1607],{"class":181},[34,149391,16841],{"class":580},[34,149393,149394],{"class":181},"handlers);\n",[34,149396,149397,149399,149401],{"class":36,"line":71},[34,149398,149185],{"class":181},[34,149400,40502],{"class":47},[34,149402,851],{"class":181},[102,149404,149406],{"id":149405},"example-handlers","Example Handlers",[16,149408,149409],{},"Create request handlers for APIs:",[25,149411,149413],{"className":13845,"code":149412,"language":8606,"meta":30,"style":30},"import { rest } from 'msw';\n\nexport const handlers = [\n  rest.get('/api/data', (req, res, ctx) => {\n    return res(\n      ctx.json({ id: 1, title: 'API testing is smooth with MSW!' })\n    );\n  })\n];\n",[20,149414,149415,149428,149432,149445,149473,149481,149498,149502,149506],{"__ignoreMap":30},[34,149416,149417,149419,149422,149424,149426],{"class":36,"line":37},[34,149418,581],{"class":580},[34,149420,149421],{"class":181}," { rest } ",[34,149423,587],{"class":580},[34,149425,149081],{"class":54},[34,149427,593],{"class":181},[34,149429,149430],{"class":36,"line":44},[34,149431,62],{"emptyLinePlaceholder":61},[34,149433,149434,149436,149438,149441,149443],{"class":36,"line":58},[34,149435,652],{"class":580},[34,149437,3291],{"class":580},[34,149439,149440],{"class":50}," handlers",[34,149442,683],{"class":580},[34,149444,3304],{"class":181},[34,149446,149447,149449,149451,149453,149455,149457,149459,149461,149463,149465,149467,149469,149471],{"class":36,"line":65},[34,149448,149105],{"class":181},[34,149450,1573],{"class":47},[34,149452,1607],{"class":181},[34,149454,1583],{"class":54},[34,149456,75504],{"class":181},[34,149458,15452],{"class":675},[34,149460,1798],{"class":181},[34,149462,75511],{"class":675},[34,149464,1798],{"class":181},[34,149466,61907],{"class":675},[34,149468,4817],{"class":181},[34,149470,3361],{"class":580},[34,149472,661],{"class":181},[34,149474,149475,149477,149479],{"class":36,"line":71},[34,149476,1564],{"class":580},[34,149478,85438],{"class":47},[34,149480,1882],{"class":181},[34,149482,149483,149485,149487,149489,149491,149493,149496],{"class":36,"line":77},[34,149484,149142],{"class":181},[34,149486,14790],{"class":47},[34,149488,61154],{"class":181},[34,149490,8318],{"class":50},[34,149492,84779],{"class":181},[34,149494,149495],{"class":54},"'API testing is smooth with MSW!'",[34,149497,1502],{"class":181},[34,149499,149500],{"class":36,"line":82},[34,149501,1945],{"class":181},[34,149503,149504],{"class":36,"line":88},[34,149505,62121],{"class":181},[34,149507,149508],{"class":36,"line":242},[34,149509,3415],{"class":181},[11,149511,115380],{"id":115379},[309,149513,149514,149517,149520],{},[312,149515,149516],{},"Isolating front-end tests from actual APIs.",[312,149518,149519],{},"Mocking failed server responses to simulate errors.",[312,149521,149522],{},"Staging demos or Proof-of-Concepts without backend support.",[11,149524,120524],{"id":88698},[28799,149526,149527],{},[312,149528,149529],{},"Mocking REST APIs:",[25,149531,149533],{"className":13845,"code":149532,"language":8606,"meta":30,"style":30},"rest.post('/form-submit', (req, res, ctx) => {\n  const { formData } = req.body;\n  return res(ctx.status(201), ctx.json(formData));\n});\n",[20,149534,149535,149564,149580,149603],{"__ignoreMap":30},[34,149536,149537,149539,149541,149543,149546,149548,149550,149552,149554,149556,149558,149560,149562],{"class":36,"line":37},[34,149538,149221],{"class":181},[34,149540,1730],{"class":47},[34,149542,1607],{"class":181},[34,149544,149545],{"class":54},"'/form-submit'",[34,149547,75504],{"class":181},[34,149549,15452],{"class":675},[34,149551,1798],{"class":181},[34,149553,75511],{"class":675},[34,149555,1798],{"class":181},[34,149557,61907],{"class":675},[34,149559,4817],{"class":181},[34,149561,3361],{"class":580},[34,149563,661],{"class":181},[34,149565,149566,149568,149570,149573,149575,149577],{"class":36,"line":44},[34,149567,17415],{"class":580},[34,149569,30251],{"class":181},[34,149571,149572],{"class":50},"formData",[34,149574,34865],{"class":181},[34,149576,1301],{"class":580},[34,149578,149579],{"class":181}," req.body;\n",[34,149581,149582,149584,149586,149589,149591,149593,149595,149598,149600],{"class":36,"line":58},[34,149583,8155],{"class":580},[34,149585,85438],{"class":47},[34,149587,149588],{"class":181},"(ctx.",[34,149590,75167],{"class":47},[34,149592,1607],{"class":181},[34,149594,75172],{"class":50},[34,149596,149597],{"class":181},"), ctx.",[34,149599,14790],{"class":47},[34,149601,149602],{"class":181},"(formData));\n",[34,149604,149605],{"class":36,"line":65},[34,149606,14873],{"class":181},[28799,149608,149609],{"start":44},[312,149610,149611],{},"Mocking WebSocket Communication:",[25,149613,149615],{"className":13845,"code":149614,"language":8606,"meta":30,"style":30},"rest.get('/connect', (req, res, ctx) => {\n  // Mock WebSocket behavior.\n});\n",[20,149616,149617,149646,149651],{"__ignoreMap":30},[34,149618,149619,149621,149623,149625,149628,149630,149632,149634,149636,149638,149640,149642,149644],{"class":36,"line":37},[34,149620,149221],{"class":181},[34,149622,1573],{"class":47},[34,149624,1607],{"class":181},[34,149626,149627],{"class":54},"'/connect'",[34,149629,75504],{"class":181},[34,149631,15452],{"class":675},[34,149633,1798],{"class":181},[34,149635,75511],{"class":675},[34,149637,1798],{"class":181},[34,149639,61907],{"class":675},[34,149641,4817],{"class":181},[34,149643,3361],{"class":580},[34,149645,661],{"class":181},[34,149647,149648],{"class":36,"line":44},[34,149649,149650],{"class":40},"  // Mock WebSocket behavior.\n",[34,149652,149653],{"class":36,"line":58},[34,149654,14873],{"class":181},[28799,149656,149657],{"start":58},[312,149658,149659],{},"Using MSW in Jest tests:",[25,149661,149663],{"className":13845,"code":149662,"language":8606,"meta":30,"style":30},"import { server } from '../mocks/server';\n\nbeforeAll(() => server.listen());\nafterEach(() => server.resetHandlers());\nafterAll(() => server.close());\n\n// Your tests here\n",[20,149664,149665,149679,149683,149699,149715,149730,149734],{"__ignoreMap":30},[34,149666,149667,149669,149672,149674,149677],{"class":36,"line":37},[34,149668,581],{"class":580},[34,149670,149671],{"class":181}," { server } ",[34,149673,587],{"class":580},[34,149675,149676],{"class":54}," '../mocks/server'",[34,149678,593],{"class":181},[34,149680,149681],{"class":36,"line":44},[34,149682,62],{"emptyLinePlaceholder":61},[34,149684,149685,149688,149690,149692,149695,149697],{"class":36,"line":58},[34,149686,149687],{"class":47},"beforeAll",[34,149689,4275],{"class":181},[34,149691,3361],{"class":580},[34,149693,149694],{"class":181}," server.",[34,149696,61841],{"class":47},[34,149698,4343],{"class":181},[34,149700,149701,149704,149706,149708,149710,149713],{"class":36,"line":65},[34,149702,149703],{"class":47},"afterEach",[34,149705,4275],{"class":181},[34,149707,3361],{"class":580},[34,149709,149694],{"class":181},[34,149711,149712],{"class":47},"resetHandlers",[34,149714,4343],{"class":181},[34,149716,149717,149720,149722,149724,149726,149728],{"class":36,"line":71},[34,149718,149719],{"class":47},"afterAll",[34,149721,4275],{"class":181},[34,149723,3361],{"class":580},[34,149725,149694],{"class":181},[34,149727,17197],{"class":47},[34,149729,4343],{"class":181},[34,149731,149732],{"class":36,"line":77},[34,149733,62],{"emptyLinePlaceholder":61},[34,149735,149736],{"class":36,"line":82},[34,149737,149738],{"class":40},"// Your tests here\n",[16,149740,149741],{},"Mock Service Worker proves to be a robust solution, enhancing developer experience and simplifying network-skewed testing conditions.",[388,149743,3722],{},{"title":30,"searchDepth":44,"depth":44,"links":149745},[149746,149747,149748,149753,149754],{"id":13,"depth":44,"text":14},{"id":8497,"depth":44,"text":8498},{"id":6040,"depth":44,"text":6035,"children":149749},[149750,149751,149752],{"id":96,"depth":58,"text":97},{"id":149337,"depth":58,"text":149338},{"id":149405,"depth":58,"text":149406},{"id":115379,"depth":44,"text":115380},{"id":88698,"depth":44,"text":120524},"Mock Service Worker (MSW) documentation, common usage, and API mocking with ease.",{},"/msw/overview",{"title":149052,"description":149755},"msw/overview","msw",[149760,127276,43044,8606,16094],"XuGXMVVieZYFqUVluT_9t8uZptgHGBySX3Ot1vmpDm8",{"id":149764,"title":149765,"body":149766,"date":402,"description":150041,"extension":404,"meta":150042,"navigation":61,"order":725,"path":150043,"seo":150044,"stem":150045,"subject":149990,"tags":150046,"__hash__":150048},"topics/mysql/backup-restore.md","Backup & Restore",{"type":8,"value":149767,"toc":150038},[149768,149771,150036],[11,149769,149765],{"id":149770},"backup-restore",[25,149772,149774],{"className":27,"code":149773,"language":29,"meta":30,"style":30},"# Dump database\nmysqldump -u username -p database_name > backup.sql\nmysqldump -u username -p --databases db1 db2 > backup.sql\nmysqldump -u username -p --all-databases > all_backup.sql\n\n# Dump specific table\nmysqldump -u username -p database_name table_name > table_backup.sql\n\n# Dump with options\nmysqldump -u username -p --single-transaction --quick database_name > backup.sql\nmysqldump -u username -p --no-data database_name > schema.sql  # Schema only\nmysqldump -u username -p --no-create-info database_name > data.sql  # Data only\n\n# Compressed backup\nmysqldump -u username -p database_name | gzip > backup.sql.gz\n\n# Restore\nmysql -u username -p database_name \u003C backup.sql\n\n# Restore compressed\ngunzip \u003C backup.sql.gz | mysql -u username -p database_name\n",[20,149775,149776,149781,149801,149822,149840,149844,149849,149869,149873,149878,149900,149923,149946,149950,149955,149977,149981,149986,150003,150007,150012],{"__ignoreMap":30},[34,149777,149778],{"class":36,"line":37},[34,149779,149780],{"class":40},"# Dump database\n",[34,149782,149783,149786,149788,149791,149793,149796,149798],{"class":36,"line":44},[34,149784,149785],{"class":47},"mysqldump",[34,149787,43069],{"class":50},[34,149789,149790],{"class":54}," username",[34,149792,5275],{"class":50},[34,149794,149795],{"class":54}," database_name",[34,149797,9009],{"class":580},[34,149799,149800],{"class":54}," backup.sql\n",[34,149802,149803,149805,149807,149809,149811,149814,149816,149818,149820],{"class":36,"line":58},[34,149804,149785],{"class":47},[34,149806,43069],{"class":50},[34,149808,149790],{"class":54},[34,149810,5275],{"class":50},[34,149812,149813],{"class":50}," --databases",[34,149815,70517],{"class":54},[34,149817,70534],{"class":54},[34,149819,9009],{"class":580},[34,149821,149800],{"class":54},[34,149823,149824,149826,149828,149830,149832,149835,149837],{"class":36,"line":65},[34,149825,149785],{"class":47},[34,149827,43069],{"class":50},[34,149829,149790],{"class":54},[34,149831,5275],{"class":50},[34,149833,149834],{"class":50}," --all-databases",[34,149836,9009],{"class":580},[34,149838,149839],{"class":54}," all_backup.sql\n",[34,149841,149842],{"class":36,"line":71},[34,149843,62],{"emptyLinePlaceholder":61},[34,149845,149846],{"class":36,"line":77},[34,149847,149848],{"class":40},"# Dump specific table\n",[34,149850,149851,149853,149855,149857,149859,149861,149864,149866],{"class":36,"line":82},[34,149852,149785],{"class":47},[34,149854,43069],{"class":50},[34,149856,149790],{"class":54},[34,149858,5275],{"class":50},[34,149860,149795],{"class":54},[34,149862,149863],{"class":54}," table_name",[34,149865,9009],{"class":580},[34,149867,149868],{"class":54}," table_backup.sql\n",[34,149870,149871],{"class":36,"line":88},[34,149872,62],{"emptyLinePlaceholder":61},[34,149874,149875],{"class":36,"line":242},[34,149876,149877],{"class":40},"# Dump with options\n",[34,149879,149880,149882,149884,149886,149888,149891,149894,149896,149898],{"class":36,"line":250},[34,149881,149785],{"class":47},[34,149883,43069],{"class":50},[34,149885,149790],{"class":54},[34,149887,5275],{"class":50},[34,149889,149890],{"class":50}," --single-transaction",[34,149892,149893],{"class":50}," --quick",[34,149895,149795],{"class":54},[34,149897,9009],{"class":580},[34,149899,149800],{"class":54},[34,149901,149902,149904,149906,149908,149910,149913,149915,149917,149920],{"class":36,"line":263},[34,149903,149785],{"class":47},[34,149905,43069],{"class":50},[34,149907,149790],{"class":54},[34,149909,5275],{"class":50},[34,149911,149912],{"class":50}," --no-data",[34,149914,149795],{"class":54},[34,149916,9009],{"class":580},[34,149918,149919],{"class":54}," schema.sql",[34,149921,149922],{"class":40},"  # Schema only\n",[34,149924,149925,149927,149929,149931,149933,149936,149938,149940,149943],{"class":36,"line":275},[34,149926,149785],{"class":47},[34,149928,43069],{"class":50},[34,149930,149790],{"class":54},[34,149932,5275],{"class":50},[34,149934,149935],{"class":50}," --no-create-info",[34,149937,149795],{"class":54},[34,149939,9009],{"class":580},[34,149941,149942],{"class":54}," data.sql",[34,149944,149945],{"class":40},"  # Data only\n",[34,149947,149948],{"class":36,"line":700},[34,149949,62],{"emptyLinePlaceholder":61},[34,149951,149952],{"class":36,"line":706},[34,149953,149954],{"class":40},"# Compressed backup\n",[34,149956,149957,149959,149961,149963,149965,149967,149969,149972,149974],{"class":36,"line":715},[34,149958,149785],{"class":47},[34,149960,43069],{"class":50},[34,149962,149790],{"class":54},[34,149964,5275],{"class":50},[34,149966,149795],{"class":54},[34,149968,7197],{"class":580},[34,149970,149971],{"class":47}," gzip",[34,149973,9009],{"class":580},[34,149975,149976],{"class":54}," backup.sql.gz\n",[34,149978,149979],{"class":36,"line":725},[34,149980,62],{"emptyLinePlaceholder":61},[34,149982,149983],{"class":36,"line":734},[34,149984,149985],{"class":40},"# Restore\n",[34,149987,149988,149991,149993,149995,149997,149999,150001],{"class":36,"line":742},[34,149989,149990],{"class":47},"mysql",[34,149992,43069],{"class":50},[34,149994,149790],{"class":54},[34,149996,5275],{"class":50},[34,149998,149795],{"class":54},[34,150000,5470],{"class":580},[34,150002,149800],{"class":54},[34,150004,150005],{"class":36,"line":748},[34,150006,62],{"emptyLinePlaceholder":61},[34,150008,150009],{"class":36,"line":754},[34,150010,150011],{"class":40},"# Restore compressed\n",[34,150013,150014,150017,150019,150022,150024,150027,150029,150031,150033],{"class":36,"line":759},[34,150015,150016],{"class":47},"gunzip",[34,150018,5470],{"class":580},[34,150020,150021],{"class":54}," backup.sql.gz",[34,150023,7197],{"class":580},[34,150025,150026],{"class":47}," mysql",[34,150028,43069],{"class":50},[34,150030,149790],{"class":54},[34,150032,5275],{"class":50},[34,150034,150035],{"class":54}," database_name\n",[388,150037,15873],{},{"title":30,"searchDepth":44,"depth":44,"links":150039},[150040],{"id":149770,"depth":44,"text":149765},"Backup & Restore in MySQL.",{},"/mysql/backup-restore",{"title":149765,"description":150041},"mysql/backup-restore",[149990,28650,28337,150047],"mariadb","tHzR-Ln7tlxMgh8SDv_n50jNWpt5dmb0or4OBrARWMY",{"id":150050,"title":150051,"body":150052,"date":402,"description":150303,"extension":404,"meta":150304,"navigation":61,"order":44,"path":150305,"seo":150306,"stem":150307,"subject":149990,"tags":150308,"__hash__":150309},"topics/mysql/connection-cli-commands.md","Connection & CLI Commands",{"type":8,"value":150053,"toc":150300},[150054,150057,150298],[11,150055,150051],{"id":150056},"connection-cli-commands",[25,150058,150060],{"className":27,"code":150059,"language":29,"meta":30,"style":30},"# Connect to MySQL\nmysql -u username -p\nmysql -h localhost -u username -p database_name\nmysql -h localhost -P 3306 -u username -p\n\n# Execute SQL file\nmysql -u username -p database_name \u003C script.sql\n\n# Execute query from command line\nmysql -u username -p -e \"SELECT * FROM users\" database_name\n\n# MySQL CLI commands\nSHOW DATABASES;\nUSE database_name;\nSHOW TABLES;\nDESCRIBE table_name;\nSHOW CREATE TABLE table_name;\nSHOW COLUMNS FROM table_name;\nSHOW INDEX FROM table_name;\nSHOW PROCESSLIST;\nSHOW VARIABLES LIKE '%max_connections%';\nSHOW STATUS LIKE '%conn%';\n\\q  -- Quit\n",[20,150061,150062,150067,150078,150094,150113,150117,150122,150139,150143,150148,150165,150169,150174,150184,150192,150201,150210,150223,150236,150249,150258,150273,150287],{"__ignoreMap":30},[34,150063,150064],{"class":36,"line":37},[34,150065,150066],{"class":40},"# Connect to MySQL\n",[34,150068,150069,150071,150073,150075],{"class":36,"line":44},[34,150070,149990],{"class":47},[34,150072,43069],{"class":50},[34,150074,149790],{"class":54},[34,150076,150077],{"class":50}," -p\n",[34,150079,150080,150082,150084,150086,150088,150090,150092],{"class":36,"line":58},[34,150081,149990],{"class":47},[34,150083,110397],{"class":50},[34,150085,148603],{"class":54},[34,150087,43069],{"class":50},[34,150089,149790],{"class":54},[34,150091,5275],{"class":50},[34,150093,150035],{"class":54},[34,150095,150096,150098,150100,150102,150104,150107,150109,150111],{"class":36,"line":65},[34,150097,149990],{"class":47},[34,150099,110397],{"class":50},[34,150101,148603],{"class":54},[34,150103,110642],{"class":50},[34,150105,150106],{"class":50}," 3306",[34,150108,43069],{"class":50},[34,150110,149790],{"class":54},[34,150112,150077],{"class":50},[34,150114,150115],{"class":36,"line":71},[34,150116,62],{"emptyLinePlaceholder":61},[34,150118,150119],{"class":36,"line":77},[34,150120,150121],{"class":40},"# Execute SQL file\n",[34,150123,150124,150126,150128,150130,150132,150134,150136],{"class":36,"line":82},[34,150125,149990],{"class":47},[34,150127,43069],{"class":50},[34,150129,149790],{"class":54},[34,150131,5275],{"class":50},[34,150133,149795],{"class":54},[34,150135,5470],{"class":580},[34,150137,150138],{"class":54}," script.sql\n",[34,150140,150141],{"class":36,"line":88},[34,150142,62],{"emptyLinePlaceholder":61},[34,150144,150145],{"class":36,"line":242},[34,150146,150147],{"class":40},"# Execute query from command line\n",[34,150149,150150,150152,150154,150156,150158,150160,150163],{"class":36,"line":250},[34,150151,149990],{"class":47},[34,150153,43069],{"class":50},[34,150155,149790],{"class":54},[34,150157,5275],{"class":50},[34,150159,11292],{"class":50},[34,150161,150162],{"class":54}," \"SELECT * FROM users\"",[34,150164,150035],{"class":54},[34,150166,150167],{"class":36,"line":263},[34,150168,62],{"emptyLinePlaceholder":61},[34,150170,150171],{"class":36,"line":275},[34,150172,150173],{"class":40},"# MySQL CLI commands\n",[34,150175,150176,150179,150182],{"class":36,"line":700},[34,150177,150178],{"class":47},"SHOW",[34,150180,150181],{"class":54}," DATABASES",[34,150183,593],{"class":181},[34,150185,150186,150188,150190],{"class":36,"line":706},[34,150187,28403],{"class":47},[34,150189,149795],{"class":54},[34,150191,593],{"class":181},[34,150193,150194,150196,150199],{"class":36,"line":715},[34,150195,150178],{"class":47},[34,150197,150198],{"class":54}," TABLES",[34,150200,593],{"class":181},[34,150202,150203,150206,150208],{"class":36,"line":725},[34,150204,150205],{"class":47},"DESCRIBE",[34,150207,149863],{"class":54},[34,150209,593],{"class":181},[34,150211,150212,150214,150217,150219,150221],{"class":36,"line":734},[34,150213,150178],{"class":47},[34,150215,150216],{"class":54}," CREATE",[34,150218,28422],{"class":54},[34,150220,149863],{"class":54},[34,150222,593],{"class":181},[34,150224,150225,150227,150230,150232,150234],{"class":36,"line":742},[34,150226,150178],{"class":47},[34,150228,150229],{"class":54}," COLUMNS",[34,150231,28534],{"class":54},[34,150233,149863],{"class":54},[34,150235,593],{"class":181},[34,150237,150238,150240,150243,150245,150247],{"class":36,"line":748},[34,150239,150178],{"class":47},[34,150241,150242],{"class":54}," INDEX",[34,150244,28534],{"class":54},[34,150246,149863],{"class":54},[34,150248,593],{"class":181},[34,150250,150251,150253,150256],{"class":36,"line":754},[34,150252,150178],{"class":47},[34,150254,150255],{"class":54}," PROCESSLIST",[34,150257,593],{"class":181},[34,150259,150260,150262,150265,150268,150271],{"class":36,"line":759},[34,150261,150178],{"class":47},[34,150263,150264],{"class":54}," VARIABLES",[34,150266,150267],{"class":54}," LIKE",[34,150269,150270],{"class":54}," '%max_connections%'",[34,150272,593],{"class":181},[34,150274,150275,150277,150280,150282,150285],{"class":36,"line":771},[34,150276,150178],{"class":47},[34,150278,150279],{"class":54}," STATUS",[34,150281,150267],{"class":54},[34,150283,150284],{"class":54}," '%conn%'",[34,150286,593],{"class":181},[34,150288,150289,150292,150295],{"class":36,"line":794},[34,150290,150291],{"class":47},"\\q",[34,150293,150294],{"class":50},"  --",[34,150296,150297],{"class":54}," Quit\n",[388,150299,43033],{},{"title":30,"searchDepth":44,"depth":44,"links":150301},[150302],{"id":150056,"depth":44,"text":150051},"Connection & CLI Commands in MySQL.",{},"/mysql/connection-cli-commands",{"title":150051,"description":150303},"mysql/connection-cli-commands",[149990,28650,28337,150047],"5LH75vGoEYnz3O4jaDMkDgUHN1CL16Vxq5FWT52LuY4",{"id":150311,"title":61423,"body":150312,"date":402,"description":150616,"extension":404,"meta":150617,"navigation":61,"order":71,"path":150618,"seo":150619,"stem":150620,"subject":149990,"tags":150621,"__hash__":150622},"topics/mysql/data-types.md",{"type":8,"value":150313,"toc":150613},[150314,150316,150611],[11,150315,61423],{"id":61422},[25,150317,150319],{"className":28335,"code":150318,"language":28337,"meta":30,"style":30},"-- Numeric types\nTINYINT             -- 1 byte, -128 to 127\nSMALLINT            -- 2 bytes, -32768 to 32767\nMEDIUMINT           -- 3 bytes\nINT / INTEGER       -- 4 bytes\nBIGINT              -- 8 bytes\nDECIMAL(M,D)        -- Exact numeric, M digits, D decimals\nFLOAT               -- 4 bytes, floating point\nDOUBLE              -- 8 bytes, floating point\n\n-- String types\nCHAR(N)             -- Fixed length, max 255\nVARCHAR(N)          -- Variable length, max 65535\nTINYTEXT            -- Max 255 bytes\nTEXT                -- Max 65535 bytes\nMEDIUMTEXT          -- Max 16MB\nLONGTEXT            -- Max 4GB\nBINARY(N)           -- Fixed binary\nVARBINARY(N)        -- Variable binary\nBLOB                -- Binary large object\n\n-- Date/Time types\nDATE                -- 'YYYY-MM-DD'\nTIME                -- 'HH:MM:SS'\nDATETIME            -- 'YYYY-MM-DD HH:MM:SS'\nTIMESTAMP           -- Unix timestamp, auto-converts timezone\nYEAR                -- 4-digit year\n\n-- Other types\nBOOLEAN / BOOL      -- Alias for TINYINT(1)\nENUM('a','b','c')   -- Enumeration\nSET('a','b','c')    -- Set of values\nJSON                -- JSON data (MySQL 5.7+)\n",[20,150320,150321,150326,150334,150342,150350,150362,150370,150381,150389,150397,150401,150406,150417,150428,150436,150444,150452,150460,150471,150482,150490,150494,150499,150507,150515,150523,150531,150539,150543,150548,150561,150583,150604],{"__ignoreMap":30},[34,150322,150323],{"class":36,"line":37},[34,150324,150325],{"class":40},"-- Numeric types\n",[34,150327,150328,150331],{"class":36,"line":44},[34,150329,150330],{"class":580},"TINYINT",[34,150332,150333],{"class":40},"             -- 1 byte, -128 to 127\n",[34,150335,150336,150339],{"class":36,"line":58},[34,150337,150338],{"class":580},"SMALLINT",[34,150340,150341],{"class":40},"            -- 2 bytes, -32768 to 32767\n",[34,150343,150344,150347],{"class":36,"line":65},[34,150345,150346],{"class":181},"MEDIUMINT           ",[34,150348,150349],{"class":40},"-- 3 bytes\n",[34,150351,150352,150354,150356,150359],{"class":36,"line":71},[34,150353,28454],{"class":580},[34,150355,22767],{"class":580},[34,150357,150358],{"class":580}," INTEGER",[34,150360,150361],{"class":40},"       -- 4 bytes\n",[34,150363,150364,150367],{"class":36,"line":77},[34,150365,150366],{"class":580},"BIGINT",[34,150368,150369],{"class":40},"              -- 8 bytes\n",[34,150371,150372,150375,150378],{"class":36,"line":82},[34,150373,150374],{"class":580},"DECIMAL",[34,150376,150377],{"class":181},"(M,D)        ",[34,150379,150380],{"class":40},"-- Exact numeric, M digits, D decimals\n",[34,150382,150383,150386],{"class":36,"line":88},[34,150384,150385],{"class":580},"FLOAT",[34,150387,150388],{"class":40},"               -- 4 bytes, floating point\n",[34,150390,150391,150394],{"class":36,"line":242},[34,150392,150393],{"class":181},"DOUBLE              ",[34,150395,150396],{"class":40},"-- 8 bytes, floating point\n",[34,150398,150399],{"class":36,"line":250},[34,150400,62],{"emptyLinePlaceholder":61},[34,150402,150403],{"class":36,"line":263},[34,150404,150405],{"class":40},"-- String types\n",[34,150407,150408,150411,150414],{"class":36,"line":275},[34,150409,150410],{"class":580},"CHAR",[34,150412,150413],{"class":181},"(N)             ",[34,150415,150416],{"class":40},"-- Fixed length, max 255\n",[34,150418,150419,150422,150425],{"class":36,"line":700},[34,150420,150421],{"class":580},"VARCHAR",[34,150423,150424],{"class":181},"(N)          ",[34,150426,150427],{"class":40},"-- Variable length, max 65535\n",[34,150429,150430,150433],{"class":36,"line":706},[34,150431,150432],{"class":181},"TINYTEXT            ",[34,150434,150435],{"class":40},"-- Max 255 bytes\n",[34,150437,150438,150441],{"class":36,"line":715},[34,150439,150440],{"class":580},"TEXT",[34,150442,150443],{"class":40},"                -- Max 65535 bytes\n",[34,150445,150446,150449],{"class":36,"line":725},[34,150447,150448],{"class":181},"MEDIUMTEXT          ",[34,150450,150451],{"class":40},"-- Max 16MB\n",[34,150453,150454,150457],{"class":36,"line":734},[34,150455,150456],{"class":181},"LONGTEXT            ",[34,150458,150459],{"class":40},"-- Max 4GB\n",[34,150461,150462,150465,150468],{"class":36,"line":742},[34,150463,150464],{"class":580},"BINARY",[34,150466,150467],{"class":181},"(N)           ",[34,150469,150470],{"class":40},"-- Fixed binary\n",[34,150472,150473,150476,150479],{"class":36,"line":748},[34,150474,150475],{"class":580},"VARBINARY",[34,150477,150478],{"class":181},"(N)        ",[34,150480,150481],{"class":40},"-- Variable binary\n",[34,150483,150484,150487],{"class":36,"line":754},[34,150485,150486],{"class":181},"BLOB                ",[34,150488,150489],{"class":40},"-- Binary large object\n",[34,150491,150492],{"class":36,"line":759},[34,150493,62],{"emptyLinePlaceholder":61},[34,150495,150496],{"class":36,"line":771},[34,150497,150498],{"class":40},"-- Date/Time types\n",[34,150500,150501,150504],{"class":36,"line":794},[34,150502,150503],{"class":580},"DATE",[34,150505,150506],{"class":40},"                -- 'YYYY-MM-DD'\n",[34,150508,150509,150512],{"class":36,"line":824},[34,150510,150511],{"class":580},"TIME",[34,150513,150514],{"class":40},"                -- 'HH:MM:SS'\n",[34,150516,150517,150520],{"class":36,"line":830},[34,150518,150519],{"class":580},"DATETIME",[34,150521,150522],{"class":40},"            -- 'YYYY-MM-DD HH:MM:SS'\n",[34,150524,150525,150528],{"class":36,"line":839},[34,150526,150527],{"class":580},"TIMESTAMP",[34,150529,150530],{"class":40},"           -- Unix timestamp, auto-converts timezone\n",[34,150532,150533,150536],{"class":36,"line":854},[34,150534,150535],{"class":580},"YEAR",[34,150537,150538],{"class":40},"                -- 4-digit year\n",[34,150540,150541],{"class":36,"line":860},[34,150542,62],{"emptyLinePlaceholder":61},[34,150544,150545],{"class":36,"line":865},[34,150546,150547],{"class":40},"-- Other types\n",[34,150549,150550,150553,150555,150558],{"class":36,"line":870},[34,150551,150552],{"class":580},"BOOLEAN",[34,150554,22767],{"class":580},[34,150556,150557],{"class":181}," BOOL      ",[34,150559,150560],{"class":40},"-- Alias for TINYINT(1)\n",[34,150562,150563,150566,150568,150570,150573,150575,150578,150580],{"class":36,"line":876},[34,150564,150565],{"class":181},"ENUM(",[34,150567,24628],{"class":54},[34,150569,8321],{"class":181},[34,150571,150572],{"class":54},"'b'",[34,150574,8321],{"class":181},[34,150576,150577],{"class":54},"'c'",[34,150579,103720],{"class":181},[34,150581,150582],{"class":40},"-- Enumeration\n",[34,150584,150585,150587,150589,150591,150593,150595,150597,150599,150601],{"class":36,"line":885},[34,150586,28556],{"class":580},[34,150588,1607],{"class":181},[34,150590,24628],{"class":54},[34,150592,8321],{"class":181},[34,150594,150572],{"class":54},[34,150596,8321],{"class":181},[34,150598,150577],{"class":54},[34,150600,103888],{"class":181},[34,150602,150603],{"class":40},"-- Set of values\n",[34,150605,150606,150608],{"class":36,"line":895},[34,150607,14854],{"class":580},[34,150609,150610],{"class":40},"                -- JSON data (MySQL 5.7+)\n",[388,150612,48054],{},{"title":30,"searchDepth":44,"depth":44,"links":150614},[150615],{"id":61422,"depth":44,"text":61423},"Data Types in MySQL.",{},"/mysql/data-types",{"title":61423,"description":150616},"mysql/data-types",[149990,28650,28337,150047],"GcgMZ2hu6AdiA9DM01EOL1KJQb7IeqQTj8f0ZjjwU7E",{"id":150624,"title":150625,"body":150626,"date":402,"description":150780,"extension":404,"meta":150781,"navigation":61,"order":58,"path":150782,"seo":150783,"stem":150784,"subject":149990,"tags":150785,"__hash__":150786},"topics/mysql/database-management.md","Database Management",{"type":8,"value":150627,"toc":150777},[150628,150631,150775],[11,150629,150625],{"id":150630},"database-management",[25,150632,150634],{"className":28335,"code":150633,"language":28337,"meta":30,"style":30},"-- Create database\nCREATE DATABASE myapp;\nCREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\nCREATE DATABASE IF NOT EXISTS myapp;\n\n-- Drop database\nDROP DATABASE IF EXISTS myapp;\n\n-- Rename database (no direct command, use dump/restore)\n-- Or rename tables to new database\n\n-- Show databases\nSHOW DATABASES;\n\n-- Select database\nUSE myapp;\n\n-- Show current database\nSELECT DATABASE();\n",[20,150635,150636,150641,150652,150675,150693,150697,150702,150715,150719,150724,150729,150733,150738,150743,150747,150752,150758,150762,150767],{"__ignoreMap":30},[34,150637,150638],{"class":36,"line":37},[34,150639,150640],{"class":40},"-- Create database\n",[34,150642,150643,150645,150648,150650],{"class":36,"line":44},[34,150644,28349],{"class":580},[34,150646,150647],{"class":580}," DATABASE",[34,150649,56055],{"class":47},[34,150651,593],{"class":181},[34,150653,150654,150656,150658,150660,150663,150666,150669,150672],{"class":36,"line":58},[34,150655,28349],{"class":580},[34,150657,150647],{"class":580},[34,150659,56055],{"class":47},[34,150661,150662],{"class":580}," CHARACTER",[34,150664,150665],{"class":580}," SET",[34,150667,150668],{"class":181}," utf8mb4 ",[34,150670,150671],{"class":580},"COLLATE",[34,150673,150674],{"class":181}," utf8mb4_unicode_ci;\n",[34,150676,150677,150679,150681,150684,150687,150690],{"class":36,"line":65},[34,150678,28349],{"class":580},[34,150680,150647],{"class":580},[34,150682,150683],{"class":47}," IF",[34,150685,150686],{"class":580}," NOT",[34,150688,150689],{"class":580}," EXISTS",[34,150691,150692],{"class":181}," myapp;\n",[34,150694,150695],{"class":36,"line":71},[34,150696,62],{"emptyLinePlaceholder":61},[34,150698,150699],{"class":36,"line":77},[34,150700,150701],{"class":40},"-- Drop database\n",[34,150703,150704,150707,150709,150711,150713],{"class":36,"line":82},[34,150705,150706],{"class":580},"DROP",[34,150708,150647],{"class":580},[34,150710,150683],{"class":580},[34,150712,150689],{"class":580},[34,150714,150692],{"class":181},[34,150716,150717],{"class":36,"line":88},[34,150718,62],{"emptyLinePlaceholder":61},[34,150720,150721],{"class":36,"line":242},[34,150722,150723],{"class":40},"-- Rename database (no direct command, use dump/restore)\n",[34,150725,150726],{"class":36,"line":250},[34,150727,150728],{"class":40},"-- Or rename tables to new database\n",[34,150730,150731],{"class":36,"line":263},[34,150732,62],{"emptyLinePlaceholder":61},[34,150734,150735],{"class":36,"line":275},[34,150736,150737],{"class":40},"-- Show databases\n",[34,150739,150740],{"class":36,"line":700},[34,150741,150742],{"class":181},"SHOW DATABASES;\n",[34,150744,150745],{"class":36,"line":706},[34,150746,62],{"emptyLinePlaceholder":61},[34,150748,150749],{"class":36,"line":715},[34,150750,150751],{"class":40},"-- Select database\n",[34,150753,150754,150756],{"class":36,"line":725},[34,150755,28403],{"class":580},[34,150757,150692],{"class":181},[34,150759,150760],{"class":36,"line":734},[34,150761,62],{"emptyLinePlaceholder":61},[34,150763,150764],{"class":36,"line":742},[34,150765,150766],{"class":40},"-- Show current database\n",[34,150768,150769,150771,150773],{"class":36,"line":748},[34,150770,28529],{"class":580},[34,150772,150647],{"class":580},[34,150774,851],{"class":181},[388,150776,35978],{},{"title":30,"searchDepth":44,"depth":44,"links":150778},[150779],{"id":150630,"depth":44,"text":150625},"Database Management in MySQL.",{},"/mysql/database-management",{"title":150625,"description":150780},"mysql/database-management",[149990,28650,28337,150047],"WxMNkhP89OLbalwh-zkPcxIyCLNhPrydGfnBrYRuBII",{"id":150788,"title":150789,"body":150790,"date":402,"description":151113,"extension":404,"meta":151114,"navigation":61,"order":250,"path":151115,"seo":151116,"stem":151117,"subject":149990,"tags":151118,"__hash__":151119},"topics/mysql/full-text-search.md","Full Text Search",{"type":8,"value":150791,"toc":151110},[150792,150795,151108],[11,150793,150789],{"id":150794},"full-text-search",[25,150796,150798],{"className":28335,"code":150797,"language":28337,"meta":30,"style":30},"-- Create fulltext index\nCREATE FULLTEXT INDEX idx_articles_content ON articles(title, content);\n\n-- Or in CREATE TABLE\nCREATE TABLE articles (\n  id INT AUTO_INCREMENT PRIMARY KEY,\n  title VARCHAR(200),\n  content TEXT,\n  FULLTEXT(title, content)\n) ENGINE=InnoDB;\n\n-- Natural language search\nSELECT * FROM articles \nWHERE MATCH(title, content) AGAINST('database tutorial');\n\n-- Boolean mode search\nSELECT * FROM articles \nWHERE MATCH(title, content) AGAINST('+mysql -postgres' IN BOOLEAN MODE);\n\n-- Boolean operators\n-- +word  : Must contain\n-- -word  : Must not contain\n-- word*  : Wildcard\n-- \"phrase\" : Exact phrase\n-- >word  : Increase relevance\n-- \u003Cword  : Decrease relevance\n\n-- With relevance score\nSELECT *, MATCH(title, content) AGAINST('database') as score\nFROM articles\nWHERE MATCH(title, content) AGAINST('database')\nORDER BY score DESC;\n\n-- Query expansion\nSELECT * FROM articles \nWHERE MATCH(title, content) AGAINST('database' WITH QUERY EXPANSION);\n",[20,150799,150800,150805,150823,150827,150832,150843,150857,150870,150879,150887,150897,150901,150906,150917,150932,150936,150941,150951,150971,150975,150980,150985,150990,150995,151000,151005,151010,151014,151019,151042,151049,151061,151073,151077,151082,151092],{"__ignoreMap":30},[34,150801,150802],{"class":36,"line":37},[34,150803,150804],{"class":40},"-- Create fulltext index\n",[34,150806,150807,150809,150812,150814,150817,150820],{"class":36,"line":44},[34,150808,28349],{"class":580},[34,150810,150811],{"class":580}," FULLTEXT",[34,150813,150242],{"class":580},[34,150815,150816],{"class":181}," idx_articles_content ",[34,150818,150819],{"class":580},"ON",[34,150821,150822],{"class":181}," articles(title, content);\n",[34,150824,150825],{"class":36,"line":58},[34,150826,62],{"emptyLinePlaceholder":61},[34,150828,150829],{"class":36,"line":65},[34,150830,150831],{"class":40},"-- Or in CREATE TABLE\n",[34,150833,150834,150836,150838,150841],{"class":36,"line":71},[34,150835,28349],{"class":580},[34,150837,28422],{"class":580},[34,150839,150840],{"class":47}," articles",[34,150842,13975],{"class":181},[34,150844,150845,150848,150850,150853,150855],{"class":36,"line":77},[34,150846,150847],{"class":181},"  id ",[34,150849,28454],{"class":580},[34,150851,150852],{"class":181}," AUTO_INCREMENT ",[34,150854,28435],{"class":580},[34,150856,624],{"class":181},[34,150858,150859,150862,150864,150866,150868],{"class":36,"line":82},[34,150860,150861],{"class":181},"  title ",[34,150863,150421],{"class":580},[34,150865,1607],{"class":181},[34,150867,20899],{"class":50},[34,150869,50836],{"class":181},[34,150871,150872,150875,150877],{"class":36,"line":88},[34,150873,150874],{"class":181},"  content ",[34,150876,150440],{"class":580},[34,150878,624],{"class":181},[34,150880,150881,150884],{"class":36,"line":242},[34,150882,150883],{"class":580},"  FULLTEXT",[34,150885,150886],{"class":181},"(title, content)\n",[34,150888,150889,150892,150894],{"class":36,"line":250},[34,150890,150891],{"class":181},") ENGINE",[34,150893,1301],{"class":580},[34,150895,150896],{"class":181},"InnoDB;\n",[34,150898,150899],{"class":36,"line":263},[34,150900,62],{"emptyLinePlaceholder":61},[34,150902,150903],{"class":36,"line":275},[34,150904,150905],{"class":40},"-- Natural language search\n",[34,150907,150908,150910,150912,150914],{"class":36,"line":700},[34,150909,28529],{"class":580},[34,150911,18083],{"class":580},[34,150913,28534],{"class":580},[34,150915,150916],{"class":181}," articles \n",[34,150918,150919,150921,150924,150927,150930],{"class":36,"line":706},[34,150920,28604],{"class":580},[34,150922,150923],{"class":580}," MATCH",[34,150925,150926],{"class":181},"(title, content) AGAINST(",[34,150928,150929],{"class":54},"'database tutorial'",[34,150931,1586],{"class":181},[34,150933,150934],{"class":36,"line":715},[34,150935,62],{"emptyLinePlaceholder":61},[34,150937,150938],{"class":36,"line":725},[34,150939,150940],{"class":40},"-- Boolean mode search\n",[34,150942,150943,150945,150947,150949],{"class":36,"line":734},[34,150944,28529],{"class":580},[34,150946,18083],{"class":580},[34,150948,28534],{"class":580},[34,150950,150916],{"class":181},[34,150952,150953,150955,150957,150959,150962,150965,150968],{"class":36,"line":742},[34,150954,28604],{"class":580},[34,150956,150923],{"class":580},[34,150958,150926],{"class":181},[34,150960,150961],{"class":54},"'+mysql -postgres'",[34,150963,150964],{"class":580}," IN",[34,150966,150967],{"class":580}," BOOLEAN",[34,150969,150970],{"class":181}," MODE);\n",[34,150972,150973],{"class":36,"line":748},[34,150974,62],{"emptyLinePlaceholder":61},[34,150976,150977],{"class":36,"line":754},[34,150978,150979],{"class":40},"-- Boolean operators\n",[34,150981,150982],{"class":36,"line":759},[34,150983,150984],{"class":40},"-- +word  : Must contain\n",[34,150986,150987],{"class":36,"line":771},[34,150988,150989],{"class":40},"-- -word  : Must not contain\n",[34,150991,150992],{"class":36,"line":794},[34,150993,150994],{"class":40},"-- word*  : Wildcard\n",[34,150996,150997],{"class":36,"line":824},[34,150998,150999],{"class":40},"-- \"phrase\" : Exact phrase\n",[34,151001,151002],{"class":36,"line":830},[34,151003,151004],{"class":40},"-- >word  : Increase relevance\n",[34,151006,151007],{"class":36,"line":839},[34,151008,151009],{"class":40},"-- \u003Cword  : Decrease relevance\n",[34,151011,151012],{"class":36,"line":854},[34,151013,62],{"emptyLinePlaceholder":61},[34,151015,151016],{"class":36,"line":860},[34,151017,151018],{"class":40},"-- With relevance score\n",[34,151020,151021,151023,151025,151027,151030,151032,151035,151037,151039],{"class":36,"line":865},[34,151022,28529],{"class":580},[34,151024,18083],{"class":580},[34,151026,1798],{"class":181},[34,151028,151029],{"class":580},"MATCH",[34,151031,150926],{"class":181},[34,151033,151034],{"class":54},"'database'",[34,151036,4817],{"class":181},[34,151038,74548],{"class":580},[34,151040,151041],{"class":181}," score\n",[34,151043,151044,151046],{"class":36,"line":870},[34,151045,29179],{"class":580},[34,151047,151048],{"class":181}," articles\n",[34,151050,151051,151053,151055,151057,151059],{"class":36,"line":876},[34,151052,28604],{"class":580},[34,151054,150923],{"class":580},[34,151056,150926],{"class":181},[34,151058,151034],{"class":54},[34,151060,3372],{"class":181},[34,151062,151063,151065,151068,151071],{"class":36,"line":885},[34,151064,29069],{"class":580},[34,151066,151067],{"class":181}," score ",[34,151069,151070],{"class":580},"DESC",[34,151072,593],{"class":181},[34,151074,151075],{"class":36,"line":895},[34,151076,62],{"emptyLinePlaceholder":61},[34,151078,151079],{"class":36,"line":904},[34,151080,151081],{"class":40},"-- Query expansion\n",[34,151083,151084,151086,151088,151090],{"class":36,"line":915},[34,151085,28529],{"class":580},[34,151087,18083],{"class":580},[34,151089,28534],{"class":580},[34,151091,150916],{"class":181},[34,151093,151094,151096,151098,151100,151102,151105],{"class":36,"line":927},[34,151095,28604],{"class":580},[34,151097,150923],{"class":580},[34,151099,150926],{"class":181},[34,151101,151034],{"class":54},[34,151103,151104],{"class":580}," WITH",[34,151106,151107],{"class":181}," QUERY EXPANSION);\n",[388,151109,33776],{},{"title":30,"searchDepth":44,"depth":44,"links":151111},[151112],{"id":150794,"depth":44,"text":150789},"Full Text Search in MySQL.",{},"/mysql/full-text-search",{"title":150789,"description":151113},"mysql/full-text-search",[149990,28650,28337,150047],"C0621nd4DHuGWs_CE5T1aDCpUFxVxhLB1JRdWCDJiiE",{"id":151121,"title":84674,"body":151122,"date":402,"description":151382,"extension":404,"meta":151383,"navigation":61,"order":82,"path":151384,"seo":151385,"stem":151386,"subject":149990,"tags":151387,"__hash__":151388},"topics/mysql/indexes.md",{"type":8,"value":151123,"toc":151379},[151124,151126,151377],[11,151125,84674],{"id":84673},[25,151127,151129],{"className":28335,"code":151128,"language":28337,"meta":30,"style":30},"-- Create index\nCREATE INDEX idx_users_email ON users(email);\nCREATE INDEX idx_users_name_email ON users(name, email);\nCREATE UNIQUE INDEX idx_users_email_unique ON users(email);\nCREATE FULLTEXT INDEX idx_posts_content ON posts(title, content);\n\n-- Primary key\nALTER TABLE users ADD PRIMARY KEY (id);\n\n-- Drop index\nDROP INDEX idx_users_email ON users;\nALTER TABLE users DROP INDEX idx_users_email;\n\n-- Show indexes\nSHOW INDEX FROM users;\n\n-- Index hints\nSELECT * FROM users USE INDEX (idx_email) WHERE email = 'test@example.com';\nSELECT * FROM users FORCE INDEX (idx_email) WHERE email = 'test@example.com';\nSELECT * FROM users IGNORE INDEX (idx_email) WHERE email = 'test@example.com';\n",[20,151130,151131,151136,151151,151170,151184,151200,151204,151209,151227,151231,151236,151249,151264,151268,151273,151285,151289,151294,151323,151350],{"__ignoreMap":30},[34,151132,151133],{"class":36,"line":37},[34,151134,151135],{"class":40},"-- Create index\n",[34,151137,151138,151140,151142,151145,151148],{"class":36,"line":44},[34,151139,28349],{"class":580},[34,151141,150242],{"class":580},[34,151143,151144],{"class":47}," idx_users_email",[34,151146,151147],{"class":580}," ON",[34,151149,151150],{"class":181}," users(email);\n",[34,151152,151153,151155,151157,151160,151162,151165,151167],{"class":36,"line":58},[34,151154,28349],{"class":580},[34,151156,150242],{"class":580},[34,151158,151159],{"class":47}," idx_users_name_email",[34,151161,151147],{"class":580},[34,151163,151164],{"class":181}," users(",[34,151166,178],{"class":580},[34,151168,151169],{"class":181},", email);\n",[34,151171,151172,151174,151177,151180,151182],{"class":36,"line":65},[34,151173,28349],{"class":580},[34,151175,151176],{"class":580}," UNIQUE INDEX",[34,151178,151179],{"class":47}," idx_users_email_unique",[34,151181,151147],{"class":580},[34,151183,151150],{"class":181},[34,151185,151186,151188,151190,151192,151195,151197],{"class":36,"line":71},[34,151187,28349],{"class":580},[34,151189,150811],{"class":580},[34,151191,150242],{"class":580},[34,151193,151194],{"class":181}," idx_posts_content ",[34,151196,150819],{"class":580},[34,151198,151199],{"class":181}," posts(title, content);\n",[34,151201,151202],{"class":36,"line":77},[34,151203,62],{"emptyLinePlaceholder":61},[34,151205,151206],{"class":36,"line":82},[34,151207,151208],{"class":40},"-- Primary key\n",[34,151210,151211,151214,151216,151218,151221,151224],{"class":36,"line":88},[34,151212,151213],{"class":580},"ALTER",[34,151215,28422],{"class":580},[34,151217,28553],{"class":181},[34,151219,151220],{"class":580},"ADD",[34,151222,151223],{"class":580}," PRIMARY KEY",[34,151225,151226],{"class":181}," (id);\n",[34,151228,151229],{"class":36,"line":242},[34,151230,62],{"emptyLinePlaceholder":61},[34,151232,151233],{"class":36,"line":250},[34,151234,151235],{"class":40},"-- Drop index\n",[34,151237,151238,151240,151242,151245,151247],{"class":36,"line":263},[34,151239,150706],{"class":580},[34,151241,150242],{"class":580},[34,151243,151244],{"class":181}," idx_users_email ",[34,151246,150819],{"class":580},[34,151248,4114],{"class":181},[34,151250,151251,151253,151255,151257,151259,151261],{"class":36,"line":275},[34,151252,151213],{"class":580},[34,151254,28422],{"class":580},[34,151256,28553],{"class":181},[34,151258,150706],{"class":580},[34,151260,150242],{"class":580},[34,151262,151263],{"class":181}," idx_users_email;\n",[34,151265,151266],{"class":36,"line":700},[34,151267,62],{"emptyLinePlaceholder":61},[34,151269,151270],{"class":36,"line":706},[34,151271,151272],{"class":40},"-- Show indexes\n",[34,151274,151275,151278,151281,151283],{"class":36,"line":715},[34,151276,151277],{"class":181},"SHOW ",[34,151279,151280],{"class":580},"INDEX",[34,151282,28534],{"class":580},[34,151284,4114],{"class":181},[34,151286,151287],{"class":36,"line":725},[34,151288,62],{"emptyLinePlaceholder":61},[34,151290,151291],{"class":36,"line":734},[34,151292,151293],{"class":40},"-- Index hints\n",[34,151295,151296,151298,151300,151302,151304,151306,151308,151311,151313,151316,151318,151321],{"class":36,"line":742},[34,151297,28529],{"class":580},[34,151299,18083],{"class":580},[34,151301,28534],{"class":580},[34,151303,28553],{"class":181},[34,151305,28403],{"class":580},[34,151307,150242],{"class":580},[34,151309,151310],{"class":181}," (idx_email) ",[34,151312,28604],{"class":580},[34,151314,151315],{"class":181}," email ",[34,151317,1301],{"class":580},[34,151319,151320],{"class":54}," 'test@example.com'",[34,151322,593],{"class":181},[34,151324,151325,151327,151329,151331,151333,151336,151338,151340,151342,151344,151346,151348],{"class":36,"line":748},[34,151326,28529],{"class":580},[34,151328,18083],{"class":580},[34,151330,28534],{"class":580},[34,151332,28553],{"class":181},[34,151334,151335],{"class":580},"FORCE",[34,151337,150242],{"class":580},[34,151339,151310],{"class":181},[34,151341,28604],{"class":580},[34,151343,151315],{"class":181},[34,151345,1301],{"class":580},[34,151347,151320],{"class":54},[34,151349,593],{"class":181},[34,151351,151352,151354,151356,151358,151360,151363,151365,151367,151369,151371,151373,151375],{"class":36,"line":754},[34,151353,28529],{"class":580},[34,151355,18083],{"class":580},[34,151357,28534],{"class":580},[34,151359,28553],{"class":181},[34,151361,151362],{"class":580},"IGNORE",[34,151364,150242],{"class":580},[34,151366,151310],{"class":181},[34,151368,28604],{"class":580},[34,151370,151315],{"class":181},[34,151372,1301],{"class":580},[34,151374,151320],{"class":54},[34,151376,593],{"class":181},[388,151378,35749],{},{"title":30,"searchDepth":44,"depth":44,"links":151380},[151381],{"id":84673,"depth":44,"text":84674},"Indexes in MySQL.",{},"/mysql/indexes",{"title":84674,"description":151382},"mysql/indexes",[149990,28650,28337,150047],"Jd3wiZccG8j7Mud1I3mfHIoyLzDzBECjONE_Fgd2xmk",{"id":151390,"title":151391,"body":151392,"date":402,"description":152027,"extension":404,"meta":152028,"navigation":61,"order":88,"path":152029,"seo":152030,"stem":152031,"subject":149990,"tags":152032,"__hash__":152033},"topics/mysql/insert-update-delete.md","INSERT, UPDATE, DELETE",{"type":8,"value":151393,"toc":152024},[151394,151397,152022],[11,151395,151391],{"id":151396},"insert-update-delete",[25,151398,151400],{"className":28335,"code":151399,"language":28337,"meta":30,"style":30},"-- INSERT\nINSERT INTO users (name, email) VALUES ('John', 'john@example.com');\n\n-- Multiple INSERT\nINSERT INTO users (name, email) VALUES \n  ('John', 'john@example.com'),\n  ('Jane', 'jane@example.com');\n\n-- INSERT IGNORE (skip on duplicate key)\nINSERT IGNORE INTO users (id, name, email) VALUES (1, 'John', 'john@example.com');\n\n-- INSERT ... ON DUPLICATE KEY UPDATE (upsert)\nINSERT INTO users (id, name, email)\nVALUES (1, 'John', 'john@example.com')\nON DUPLICATE KEY UPDATE\n  name = VALUES(name),\n  email = VALUES(email);\n\n-- REPLACE (delete + insert)\nREPLACE INTO users (id, name, email) VALUES (1, 'John', 'john@example.com');\n\n-- INSERT from SELECT\nINSERT INTO archive_users SELECT * FROM users WHERE created_at \u003C '2023-01-01';\n\n-- UPDATE\nUPDATE users SET name = 'Johnny' WHERE id = 1;\nUPDATE users SET name = 'Johnny', updated_at = NOW() WHERE id = 1;\nUPDATE users SET age = age + 1 WHERE id = 1;\n\n-- UPDATE with JOIN\nUPDATE orders o\nJOIN users u ON o.user_id = u.id\nSET o.status = 'vip'\nWHERE u.membership = 'premium';\n\n-- UPDATE with LIMIT\nUPDATE users SET status = 'inactive' WHERE last_login \u003C '2023-01-01' LIMIT 100;\n\n-- DELETE\nDELETE FROM users WHERE id = 1;\nDELETE FROM users WHERE created_at \u003C '2020-01-01';\n\n-- DELETE with JOIN\nDELETE o FROM orders o\nJOIN users u ON o.user_id = u.id\nWHERE u.status = 'deleted';\n\n-- DELETE with LIMIT\nDELETE FROM logs WHERE created_at \u003C '2023-01-01' LIMIT 1000;\n",[20,151401,151402,151407,151433,151437,151442,151456,151469,151483,151487,151492,151519,151523,151528,151539,151557,151570,151585,151597,151601,151606,151636,151640,151645,151672,151676,151681,151706,151740,151768,151772,151777,151784,151812,151827,151845,151849,151854,151885,151889,151894,151912,151931,151935,151940,151951,151973,151990,151994,151999],{"__ignoreMap":30},[34,151403,151404],{"class":36,"line":37},[34,151405,151406],{"class":40},"-- INSERT\n",[34,151408,151409,151411,151414,151416,151419,151421,151423,151426,151428,151431],{"class":36,"line":44},[34,151410,28487],{"class":580},[34,151412,151413],{"class":181}," users (",[34,151415,178],{"class":580},[34,151417,151418],{"class":181},", email) ",[34,151420,28498],{"class":580},[34,151422,3204],{"class":181},[34,151424,151425],{"class":54},"'John'",[34,151427,1798],{"class":181},[34,151429,151430],{"class":54},"'john@example.com'",[34,151432,1586],{"class":181},[34,151434,151435],{"class":36,"line":58},[34,151436,62],{"emptyLinePlaceholder":61},[34,151438,151439],{"class":36,"line":65},[34,151440,151441],{"class":40},"-- Multiple INSERT\n",[34,151443,151444,151446,151448,151450,151452,151454],{"class":36,"line":71},[34,151445,28487],{"class":580},[34,151447,151413],{"class":181},[34,151449,178],{"class":580},[34,151451,151418],{"class":181},[34,151453,28498],{"class":580},[34,151455,526],{"class":181},[34,151457,151458,151461,151463,151465,151467],{"class":36,"line":77},[34,151459,151460],{"class":181},"  (",[34,151462,151425],{"class":54},[34,151464,1798],{"class":181},[34,151466,151430],{"class":54},[34,151468,50836],{"class":181},[34,151470,151471,151473,151476,151478,151481],{"class":36,"line":82},[34,151472,151460],{"class":181},[34,151474,151475],{"class":54},"'Jane'",[34,151477,1798],{"class":181},[34,151479,151480],{"class":54},"'jane@example.com'",[34,151482,1586],{"class":181},[34,151484,151485],{"class":36,"line":88},[34,151486,62],{"emptyLinePlaceholder":61},[34,151488,151489],{"class":36,"line":242},[34,151490,151491],{"class":40},"-- INSERT IGNORE (skip on duplicate key)\n",[34,151493,151494,151497,151499,151501,151503,151505,151507,151509,151511,151513,151515,151517],{"class":36,"line":250},[34,151495,151496],{"class":580},"INSERT IGNORE INTO",[34,151498,28490],{"class":181},[34,151500,178],{"class":580},[34,151502,151418],{"class":181},[34,151504,28498],{"class":580},[34,151506,3204],{"class":181},[34,151508,8318],{"class":50},[34,151510,1798],{"class":181},[34,151512,151425],{"class":54},[34,151514,1798],{"class":181},[34,151516,151430],{"class":54},[34,151518,1586],{"class":181},[34,151520,151521],{"class":36,"line":263},[34,151522,62],{"emptyLinePlaceholder":61},[34,151524,151525],{"class":36,"line":275},[34,151526,151527],{"class":40},"-- INSERT ... ON DUPLICATE KEY UPDATE (upsert)\n",[34,151529,151530,151532,151534,151536],{"class":36,"line":700},[34,151531,28487],{"class":580},[34,151533,28490],{"class":181},[34,151535,178],{"class":580},[34,151537,151538],{"class":181},", email)\n",[34,151540,151541,151543,151545,151547,151549,151551,151553,151555],{"class":36,"line":706},[34,151542,28498],{"class":580},[34,151544,3204],{"class":181},[34,151546,8318],{"class":50},[34,151548,1798],{"class":181},[34,151550,151425],{"class":54},[34,151552,1798],{"class":181},[34,151554,151430],{"class":54},[34,151556,3372],{"class":181},[34,151558,151559,151561,151564,151567],{"class":36,"line":715},[34,151560,150819],{"class":580},[34,151562,151563],{"class":181}," DUPLICATE ",[34,151565,151566],{"class":580},"KEY",[34,151568,151569],{"class":580}," UPDATE\n",[34,151571,151572,151574,151576,151579,151581,151583],{"class":36,"line":725},[34,151573,7350],{"class":580},[34,151575,683],{"class":580},[34,151577,151578],{"class":580}," VALUES",[34,151580,1607],{"class":181},[34,151582,178],{"class":580},[34,151584,50836],{"class":181},[34,151586,151587,151590,151592,151594],{"class":36,"line":734},[34,151588,151589],{"class":181},"  email ",[34,151591,1301],{"class":580},[34,151593,151578],{"class":580},[34,151595,151596],{"class":181},"(email);\n",[34,151598,151599],{"class":36,"line":742},[34,151600,62],{"emptyLinePlaceholder":61},[34,151602,151603],{"class":36,"line":748},[34,151604,151605],{"class":40},"-- REPLACE (delete + insert)\n",[34,151607,151608,151611,151614,151616,151618,151620,151622,151624,151626,151628,151630,151632,151634],{"class":36,"line":754},[34,151609,151610],{"class":580},"REPLACE",[34,151612,151613],{"class":580}," INTO",[34,151615,28490],{"class":181},[34,151617,178],{"class":580},[34,151619,151418],{"class":181},[34,151621,28498],{"class":580},[34,151623,3204],{"class":181},[34,151625,8318],{"class":50},[34,151627,1798],{"class":181},[34,151629,151425],{"class":54},[34,151631,1798],{"class":181},[34,151633,151430],{"class":54},[34,151635,1586],{"class":181},[34,151637,151638],{"class":36,"line":759},[34,151639,62],{"emptyLinePlaceholder":61},[34,151641,151642],{"class":36,"line":771},[34,151643,151644],{"class":40},"-- INSERT from SELECT\n",[34,151646,151647,151649,151652,151654,151656,151658,151660,151662,151665,151667,151670],{"class":36,"line":794},[34,151648,28487],{"class":580},[34,151650,151651],{"class":181}," archive_users ",[34,151653,28529],{"class":580},[34,151655,18083],{"class":580},[34,151657,28534],{"class":580},[34,151659,28553],{"class":181},[34,151661,28604],{"class":580},[34,151663,151664],{"class":181}," created_at ",[34,151666,815],{"class":580},[34,151668,151669],{"class":54}," '2023-01-01'",[34,151671,593],{"class":181},[34,151673,151674],{"class":36,"line":824},[34,151675,62],{"emptyLinePlaceholder":61},[34,151677,151678],{"class":36,"line":830},[34,151679,151680],{"class":40},"-- UPDATE\n",[34,151682,151683,151685,151687,151689,151691,151693,151696,151698,151700,151702,151704],{"class":36,"line":839},[34,151684,28550],{"class":580},[34,151686,28553],{"class":181},[34,151688,28556],{"class":580},[34,151690,12323],{"class":580},[34,151692,683],{"class":580},[34,151694,151695],{"class":54}," 'Johnny'",[34,151697,28565],{"class":580},[34,151699,28568],{"class":181},[34,151701,1301],{"class":580},[34,151703,3567],{"class":50},[34,151705,593],{"class":181},[34,151707,151708,151710,151712,151714,151716,151718,151720,151723,151725,151728,151730,151732,151734,151736,151738],{"class":36,"line":854},[34,151709,28550],{"class":580},[34,151711,28553],{"class":181},[34,151713,28556],{"class":580},[34,151715,12323],{"class":580},[34,151717,683],{"class":580},[34,151719,151695],{"class":54},[34,151721,151722],{"class":181},", updated_at ",[34,151724,1301],{"class":580},[34,151726,151727],{"class":580}," NOW",[34,151729,672],{"class":181},[34,151731,28604],{"class":580},[34,151733,28568],{"class":181},[34,151735,1301],{"class":580},[34,151737,3567],{"class":50},[34,151739,593],{"class":181},[34,151741,151742,151744,151746,151748,151750,151752,151754,151756,151758,151760,151762,151764,151766],{"class":36,"line":860},[34,151743,28550],{"class":580},[34,151745,28553],{"class":181},[34,151747,28556],{"class":580},[34,151749,25065],{"class":181},[34,151751,1301],{"class":580},[34,151753,25065],{"class":181},[34,151755,2940],{"class":580},[34,151757,3567],{"class":50},[34,151759,28565],{"class":580},[34,151761,28568],{"class":181},[34,151763,1301],{"class":580},[34,151765,3567],{"class":50},[34,151767,593],{"class":181},[34,151769,151770],{"class":36,"line":865},[34,151771,62],{"emptyLinePlaceholder":61},[34,151773,151774],{"class":36,"line":870},[34,151775,151776],{"class":40},"-- UPDATE with JOIN\n",[34,151778,151779,151781],{"class":36,"line":876},[34,151780,28550],{"class":580},[34,151782,151783],{"class":181}," orders o\n",[34,151785,151786,151789,151792,151794,151797,151799,151802,151804,151807,151809],{"class":36,"line":885},[34,151787,151788],{"class":580},"JOIN",[34,151790,151791],{"class":181}," users u ",[34,151793,150819],{"class":580},[34,151795,151796],{"class":50}," o",[34,151798,151],{"class":181},[34,151800,151801],{"class":50},"user_id",[34,151803,683],{"class":580},[34,151805,151806],{"class":50}," u",[34,151808,151],{"class":181},[34,151810,151811],{"class":50},"id\n",[34,151813,151814,151816,151818,151820,151822,151824],{"class":36,"line":895},[34,151815,28556],{"class":580},[34,151817,151796],{"class":50},[34,151819,151],{"class":181},[34,151821,75167],{"class":50},[34,151823,683],{"class":580},[34,151825,151826],{"class":54}," 'vip'\n",[34,151828,151829,151831,151833,151835,151838,151840,151843],{"class":36,"line":904},[34,151830,28604],{"class":580},[34,151832,151806],{"class":50},[34,151834,151],{"class":181},[34,151836,151837],{"class":50},"membership",[34,151839,683],{"class":580},[34,151841,151842],{"class":54}," 'premium'",[34,151844,593],{"class":181},[34,151846,151847],{"class":36,"line":915},[34,151848,62],{"emptyLinePlaceholder":61},[34,151850,151851],{"class":36,"line":927},[34,151852,151853],{"class":40},"-- UPDATE with LIMIT\n",[34,151855,151856,151858,151860,151862,151864,151866,151869,151871,151874,151876,151878,151881,151883],{"class":36,"line":932},[34,151857,28550],{"class":580},[34,151859,28553],{"class":181},[34,151861,28556],{"class":580},[34,151863,94498],{"class":580},[34,151865,683],{"class":580},[34,151867,151868],{"class":54}," 'inactive'",[34,151870,28565],{"class":580},[34,151872,151873],{"class":181}," last_login ",[34,151875,815],{"class":580},[34,151877,151669],{"class":54},[34,151879,151880],{"class":580}," LIMIT",[34,151882,25168],{"class":50},[34,151884,593],{"class":181},[34,151886,151887],{"class":36,"line":944},[34,151888,62],{"emptyLinePlaceholder":61},[34,151890,151891],{"class":36,"line":966},[34,151892,151893],{"class":40},"-- DELETE\n",[34,151895,151896,151898,151900,151902,151904,151906,151908,151910],{"class":36,"line":1948},[34,151897,28597],{"class":580},[34,151899,28534],{"class":580},[34,151901,28553],{"class":181},[34,151903,28604],{"class":580},[34,151905,28568],{"class":181},[34,151907,1301],{"class":580},[34,151909,3567],{"class":50},[34,151911,593],{"class":181},[34,151913,151914,151916,151918,151920,151922,151924,151926,151929],{"class":36,"line":1953},[34,151915,28597],{"class":580},[34,151917,28534],{"class":580},[34,151919,28553],{"class":181},[34,151921,28604],{"class":580},[34,151923,151664],{"class":181},[34,151925,815],{"class":580},[34,151927,151928],{"class":54}," '2020-01-01'",[34,151930,593],{"class":181},[34,151932,151933],{"class":36,"line":3616},[34,151934,62],{"emptyLinePlaceholder":61},[34,151936,151937],{"class":36,"line":3622},[34,151938,151939],{"class":40},"-- DELETE with JOIN\n",[34,151941,151942,151944,151947,151949],{"class":36,"line":3642},[34,151943,28597],{"class":580},[34,151945,151946],{"class":181}," o ",[34,151948,29179],{"class":580},[34,151950,151783],{"class":181},[34,151952,151953,151955,151957,151959,151961,151963,151965,151967,151969,151971],{"class":36,"line":3657},[34,151954,151788],{"class":580},[34,151956,151791],{"class":181},[34,151958,150819],{"class":580},[34,151960,151796],{"class":50},[34,151962,151],{"class":181},[34,151964,151801],{"class":50},[34,151966,683],{"class":580},[34,151968,151806],{"class":50},[34,151970,151],{"class":181},[34,151972,151811],{"class":50},[34,151974,151975,151977,151979,151981,151983,151985,151988],{"class":36,"line":3663},[34,151976,28604],{"class":580},[34,151978,151806],{"class":50},[34,151980,151],{"class":181},[34,151982,75167],{"class":50},[34,151984,683],{"class":580},[34,151986,151987],{"class":54}," 'deleted'",[34,151989,593],{"class":181},[34,151991,151992],{"class":36,"line":3669},[34,151993,62],{"emptyLinePlaceholder":61},[34,151995,151996],{"class":36,"line":3675},[34,151997,151998],{"class":40},"-- DELETE with LIMIT\n",[34,152000,152001,152003,152005,152008,152010,152012,152014,152016,152018,152020],{"class":36,"line":3693},[34,152002,28597],{"class":580},[34,152004,28534],{"class":580},[34,152006,152007],{"class":181}," logs ",[34,152009,28604],{"class":580},[34,152011,151664],{"class":181},[34,152013,815],{"class":580},[34,152015,151669],{"class":54},[34,152017,151880],{"class":580},[34,152019,77114],{"class":50},[34,152021,593],{"class":181},[388,152023,10978],{},{"title":30,"searchDepth":44,"depth":44,"links":152025},[152026],{"id":151396,"depth":44,"text":151391},"INSERT, UPDATE, DELETE in MySQL.",{},"/mysql/insert-update-delete",{"title":151391,"description":152027},"mysql/insert-update-delete",[149990,28650,28337,150047],"UzUBl61HiWPsyNlvTQAK0YW600WFsg4afdKcZF_khqg",{"id":152035,"title":152036,"body":152037,"date":402,"description":152609,"extension":404,"meta":152610,"navigation":61,"order":242,"path":152611,"seo":152612,"stem":152613,"subject":149990,"tags":152614,"__hash__":152615},"topics/mysql/json-operations.md","JSON Operations",{"type":8,"value":152038,"toc":152606},[152039,152042,152604],[11,152040,152036],{"id":152041},"json-operations",[25,152043,152045],{"className":28335,"code":152044,"language":28337,"meta":30,"style":30},"-- Create table with JSON\nCREATE TABLE products (\n  id INT AUTO_INCREMENT PRIMARY KEY,\n  name VARCHAR(100),\n  attributes JSON\n);\n\n-- Insert JSON data\nINSERT INTO products (name, attributes) VALUES \n  ('Laptop', '{\"brand\": \"Dell\", \"ram\": 16, \"tags\": [\"electronics\", \"computers\"]}');\n\n-- Query JSON fields\nSELECT JSON_EXTRACT(attributes, '$.brand') FROM products;\nSELECT attributes->'$.brand' FROM products;        -- Returns JSON\nSELECT attributes->>'$.brand' FROM products;       -- Returns text (MySQL 5.7.13+)\nSELECT JSON_EXTRACT(attributes, '$.tags[0]') FROM products;\n\n-- JSON functions\nJSON_EXTRACT(json, path)        -- Extract value\nJSON_UNQUOTE(json)              -- Remove quotes\nJSON_SET(json, path, value)     -- Set value (update or insert)\nJSON_INSERT(json, path, value)  -- Insert if not exists\nJSON_REPLACE(json, path, value) -- Replace existing value\nJSON_REMOVE(json, path)         -- Remove key\nJSON_CONTAINS(json, value)      -- Check if contains\nJSON_KEYS(json)                 -- Get keys\nJSON_LENGTH(json)               -- Get length\nJSON_TYPE(json)                 -- Get type\n\n-- Update JSON\nUPDATE products \nSET attributes = JSON_SET(attributes, '$.color', 'silver')\nWHERE id = 1;\n\n-- Remove key from JSON\nUPDATE products \nSET attributes = JSON_REMOVE(attributes, '$.color')\nWHERE id = 1;\n\n-- Search in JSON\nSELECT * FROM products \nWHERE JSON_CONTAINS(attributes, '\"Dell\"', '$.brand');\n\nSELECT * FROM products \nWHERE JSON_EXTRACT(attributes, '$.ram') > 8;\n\n-- Create index on JSON (generated column)\nALTER TABLE products \nADD COLUMN brand VARCHAR(100) GENERATED ALWAYS AS (attributes->>'$.brand') STORED,\nADD INDEX idx_brand (brand);\n",[20,152046,152047,152052,152063,152075,152088,152096,152100,152104,152109,152125,152139,152143,152148,152165,152184,152203,152218,152222,152227,152243,152256,152276,152296,152316,152333,152349,152361,152374,152386,152390,152395,152402,152424,152436,152440,152445,152451,152466,152478,152482,152487,152497,152513,152517,152527,152544,152548,152553,152561,152595],{"__ignoreMap":30},[34,152048,152049],{"class":36,"line":37},[34,152050,152051],{"class":40},"-- Create table with JSON\n",[34,152053,152054,152056,152058,152061],{"class":36,"line":44},[34,152055,28349],{"class":580},[34,152057,28422],{"class":580},[34,152059,152060],{"class":47}," products",[34,152062,13975],{"class":181},[34,152064,152065,152067,152069,152071,152073],{"class":36,"line":58},[34,152066,150847],{"class":181},[34,152068,28454],{"class":580},[34,152070,150852],{"class":181},[34,152072,28435],{"class":580},[34,152074,624],{"class":181},[34,152076,152077,152079,152082,152084,152086],{"class":36,"line":65},[34,152078,7350],{"class":580},[34,152080,152081],{"class":580}," VARCHAR",[34,152083,1607],{"class":181},[34,152085,20863],{"class":50},[34,152087,50836],{"class":181},[34,152089,152090,152093],{"class":36,"line":71},[34,152091,152092],{"class":181},"  attributes ",[34,152094,152095],{"class":580},"JSON\n",[34,152097,152098],{"class":36,"line":77},[34,152099,1586],{"class":181},[34,152101,152102],{"class":36,"line":82},[34,152103,62],{"emptyLinePlaceholder":61},[34,152105,152106],{"class":36,"line":88},[34,152107,152108],{"class":40},"-- Insert JSON data\n",[34,152110,152111,152113,152116,152118,152121,152123],{"class":36,"line":242},[34,152112,28487],{"class":580},[34,152114,152115],{"class":181}," products (",[34,152117,178],{"class":580},[34,152119,152120],{"class":181},", attributes) ",[34,152122,28498],{"class":580},[34,152124,526],{"class":181},[34,152126,152127,152129,152132,152134,152137],{"class":36,"line":250},[34,152128,151460],{"class":181},[34,152130,152131],{"class":54},"'Laptop'",[34,152133,1798],{"class":181},[34,152135,152136],{"class":54},"'{\"brand\": \"Dell\", \"ram\": 16, \"tags\": [\"electronics\", \"computers\"]}'",[34,152138,1586],{"class":181},[34,152140,152141],{"class":36,"line":263},[34,152142,62],{"emptyLinePlaceholder":61},[34,152144,152145],{"class":36,"line":275},[34,152146,152147],{"class":40},"-- Query JSON fields\n",[34,152149,152150,152152,152155,152158,152160,152162],{"class":36,"line":700},[34,152151,28529],{"class":580},[34,152153,152154],{"class":181}," JSON_EXTRACT(attributes, ",[34,152156,152157],{"class":54},"'$.brand'",[34,152159,4817],{"class":181},[34,152161,29179],{"class":580},[34,152163,152164],{"class":181}," products;\n",[34,152166,152167,152169,152172,152174,152176,152178,152181],{"class":36,"line":706},[34,152168,28529],{"class":580},[34,152170,152171],{"class":181}," attributes",[34,152173,24863],{"class":580},[34,152175,152157],{"class":54},[34,152177,28534],{"class":580},[34,152179,152180],{"class":181}," products;        ",[34,152182,152183],{"class":40},"-- Returns JSON\n",[34,152185,152186,152188,152190,152193,152195,152197,152200],{"class":36,"line":715},[34,152187,28529],{"class":580},[34,152189,152171],{"class":181},[34,152191,152192],{"class":580},"->>",[34,152194,152157],{"class":54},[34,152196,28534],{"class":580},[34,152198,152199],{"class":181}," products;       ",[34,152201,152202],{"class":40},"-- Returns text (MySQL 5.7.13+)\n",[34,152204,152205,152207,152209,152212,152214,152216],{"class":36,"line":725},[34,152206,28529],{"class":580},[34,152208,152154],{"class":181},[34,152210,152211],{"class":54},"'$.tags[0]'",[34,152213,4817],{"class":181},[34,152215,29179],{"class":580},[34,152217,152164],{"class":181},[34,152219,152220],{"class":36,"line":734},[34,152221,62],{"emptyLinePlaceholder":61},[34,152223,152224],{"class":36,"line":742},[34,152225,152226],{"class":40},"-- JSON functions\n",[34,152228,152229,152232,152234,152236,152238,152240],{"class":36,"line":748},[34,152230,152231],{"class":181},"JSON_EXTRACT(",[34,152233,14790],{"class":580},[34,152235,1798],{"class":181},[34,152237,20404],{"class":580},[34,152239,103864],{"class":181},[34,152241,152242],{"class":40},"-- Extract value\n",[34,152244,152245,152248,152250,152253],{"class":36,"line":754},[34,152246,152247],{"class":181},"JSON_UNQUOTE(",[34,152249,14790],{"class":580},[34,152251,152252],{"class":181},")              ",[34,152254,152255],{"class":40},"-- Remove quotes\n",[34,152257,152258,152261,152263,152265,152267,152269,152271,152273],{"class":36,"line":759},[34,152259,152260],{"class":181},"JSON_SET(",[34,152262,14790],{"class":580},[34,152264,1798],{"class":181},[34,152266,20404],{"class":580},[34,152268,1798],{"class":181},[34,152270,2871],{"class":580},[34,152272,104237],{"class":181},[34,152274,152275],{"class":40},"-- Set value (update or insert)\n",[34,152277,152278,152281,152283,152285,152287,152289,152291,152293],{"class":36,"line":771},[34,152279,152280],{"class":181},"JSON_INSERT(",[34,152282,14790],{"class":580},[34,152284,1798],{"class":181},[34,152286,20404],{"class":580},[34,152288,1798],{"class":181},[34,152290,2871],{"class":580},[34,152292,76021],{"class":181},[34,152294,152295],{"class":40},"-- Insert if not exists\n",[34,152297,152298,152301,152303,152305,152307,152309,152311,152313],{"class":36,"line":794},[34,152299,152300],{"class":181},"JSON_REPLACE(",[34,152302,14790],{"class":580},[34,152304,1798],{"class":181},[34,152306,20404],{"class":580},[34,152308,1798],{"class":181},[34,152310,2871],{"class":580},[34,152312,4817],{"class":181},[34,152314,152315],{"class":40},"-- Replace existing value\n",[34,152317,152318,152321,152323,152325,152327,152330],{"class":36,"line":824},[34,152319,152320],{"class":181},"JSON_REMOVE(",[34,152322,14790],{"class":580},[34,152324,1798],{"class":181},[34,152326,20404],{"class":580},[34,152328,152329],{"class":181},")         ",[34,152331,152332],{"class":40},"-- Remove key\n",[34,152334,152335,152338,152340,152342,152344,152346],{"class":36,"line":830},[34,152336,152337],{"class":181},"JSON_CONTAINS(",[34,152339,14790],{"class":580},[34,152341,1798],{"class":181},[34,152343,2871],{"class":580},[34,152345,103662],{"class":181},[34,152347,152348],{"class":40},"-- Check if contains\n",[34,152350,152351,152354,152356,152358],{"class":36,"line":839},[34,152352,152353],{"class":181},"JSON_KEYS(",[34,152355,14790],{"class":580},[34,152357,76093],{"class":181},[34,152359,152360],{"class":40},"-- Get keys\n",[34,152362,152363,152366,152368,152371],{"class":36,"line":854},[34,152364,152365],{"class":181},"JSON_LENGTH(",[34,152367,14790],{"class":580},[34,152369,152370],{"class":181},")               ",[34,152372,152373],{"class":40},"-- Get length\n",[34,152375,152376,152379,152381,152383],{"class":36,"line":860},[34,152377,152378],{"class":181},"JSON_TYPE(",[34,152380,14790],{"class":580},[34,152382,76093],{"class":181},[34,152384,152385],{"class":40},"-- Get type\n",[34,152387,152388],{"class":36,"line":865},[34,152389,62],{"emptyLinePlaceholder":61},[34,152391,152392],{"class":36,"line":870},[34,152393,152394],{"class":40},"-- Update JSON\n",[34,152396,152397,152399],{"class":36,"line":876},[34,152398,28550],{"class":580},[34,152400,152401],{"class":181}," products \n",[34,152403,152404,152406,152409,152411,152414,152417,152419,152422],{"class":36,"line":885},[34,152405,28556],{"class":580},[34,152407,152408],{"class":181}," attributes ",[34,152410,1301],{"class":580},[34,152412,152413],{"class":181}," JSON_SET(attributes, ",[34,152415,152416],{"class":54},"'$.color'",[34,152418,1798],{"class":181},[34,152420,152421],{"class":54},"'silver'",[34,152423,3372],{"class":181},[34,152425,152426,152428,152430,152432,152434],{"class":36,"line":895},[34,152427,28604],{"class":580},[34,152429,28568],{"class":181},[34,152431,1301],{"class":580},[34,152433,3567],{"class":50},[34,152435,593],{"class":181},[34,152437,152438],{"class":36,"line":904},[34,152439,62],{"emptyLinePlaceholder":61},[34,152441,152442],{"class":36,"line":915},[34,152443,152444],{"class":40},"-- Remove key from JSON\n",[34,152446,152447,152449],{"class":36,"line":927},[34,152448,28550],{"class":580},[34,152450,152401],{"class":181},[34,152452,152453,152455,152457,152459,152462,152464],{"class":36,"line":932},[34,152454,28556],{"class":580},[34,152456,152408],{"class":181},[34,152458,1301],{"class":580},[34,152460,152461],{"class":181}," JSON_REMOVE(attributes, ",[34,152463,152416],{"class":54},[34,152465,3372],{"class":181},[34,152467,152468,152470,152472,152474,152476],{"class":36,"line":944},[34,152469,28604],{"class":580},[34,152471,28568],{"class":181},[34,152473,1301],{"class":580},[34,152475,3567],{"class":50},[34,152477,593],{"class":181},[34,152479,152480],{"class":36,"line":966},[34,152481,62],{"emptyLinePlaceholder":61},[34,152483,152484],{"class":36,"line":1948},[34,152485,152486],{"class":40},"-- Search in JSON\n",[34,152488,152489,152491,152493,152495],{"class":36,"line":1953},[34,152490,28529],{"class":580},[34,152492,18083],{"class":580},[34,152494,28534],{"class":580},[34,152496,152401],{"class":181},[34,152498,152499,152501,152504,152507,152509,152511],{"class":36,"line":3616},[34,152500,28604],{"class":580},[34,152502,152503],{"class":181}," JSON_CONTAINS(attributes, ",[34,152505,152506],{"class":54},"'\"Dell\"'",[34,152508,1798],{"class":181},[34,152510,152157],{"class":54},[34,152512,1586],{"class":181},[34,152514,152515],{"class":36,"line":3622},[34,152516,62],{"emptyLinePlaceholder":61},[34,152518,152519,152521,152523,152525],{"class":36,"line":3642},[34,152520,28529],{"class":580},[34,152522,18083],{"class":580},[34,152524,28534],{"class":580},[34,152526,152401],{"class":181},[34,152528,152529,152531,152533,152536,152538,152540,152542],{"class":36,"line":3657},[34,152530,28604],{"class":580},[34,152532,152154],{"class":181},[34,152534,152535],{"class":54},"'$.ram'",[34,152537,4817],{"class":181},[34,152539,5691],{"class":580},[34,152541,131981],{"class":50},[34,152543,593],{"class":181},[34,152545,152546],{"class":36,"line":3663},[34,152547,62],{"emptyLinePlaceholder":61},[34,152549,152550],{"class":36,"line":3669},[34,152551,152552],{"class":40},"-- Create index on JSON (generated column)\n",[34,152554,152555,152557,152559],{"class":36,"line":3675},[34,152556,151213],{"class":580},[34,152558,28422],{"class":580},[34,152560,152401],{"class":181},[34,152562,152563,152565,152568,152570,152572,152574,152576,152579,152582,152585,152588,152590,152592],{"class":36,"line":3693},[34,152564,151220],{"class":580},[34,152566,152567],{"class":181}," COLUMN brand ",[34,152569,150421],{"class":580},[34,152571,1607],{"class":181},[34,152573,20863],{"class":50},[34,152575,4817],{"class":181},[34,152577,152578],{"class":580},"GENERATED",[34,152580,152581],{"class":580}," ALWAYS",[34,152583,152584],{"class":580}," AS",[34,152586,152587],{"class":181}," (attributes",[34,152589,152192],{"class":580},[34,152591,152157],{"class":54},[34,152593,152594],{"class":181},") STORED,\n",[34,152596,152597,152599,152601],{"class":36,"line":3707},[34,152598,151220],{"class":580},[34,152600,150242],{"class":580},[34,152602,152603],{"class":181}," idx_brand (brand);\n",[388,152605,49910],{},{"title":30,"searchDepth":44,"depth":44,"links":152607},[152608],{"id":152041,"depth":44,"text":152036},"JSON Operations in MySQL.",{},"/mysql/json-operations",{"title":152036,"description":152609},"mysql/json-operations",[149990,28650,28337,150047],"Tx7bhKLnSmytYXole0lVJiF52XWvGOaCmM1Hd7MCk1s",{"id":152617,"title":152618,"body":152619,"date":2633,"description":152710,"extension":404,"meta":152711,"navigation":61,"order":37,"path":152712,"seo":152713,"stem":152714,"subject":149990,"tags":152715,"__hash__":152716},"topics/mysql/overview.md","MySQL",{"type":8,"value":152620,"toc":152708},[152621],[309,152622,152623,152627,152631,152637,152641,152647,152651,152655,152659,152663,152669,152675,152681,152687,152692,152696,152702],{},[312,152624,152625],{},[145,152626,150051],{"href":150305},[312,152628,152629],{},[145,152630,150625],{"href":150782},[312,152632,152633],{},[145,152634,152636],{"href":152635},"/mysql/user-privilege-management","User & Privilege Management",[312,152638,152639],{},[145,152640,61423],{"href":150618},[312,152642,152643],{},[145,152644,152646],{"href":152645},"/mysql/table-management","Table Management",[312,152648,152649],{},[145,152650,84674],{"href":151384},[312,152652,152653],{},[145,152654,151391],{"href":152029},[312,152656,152657],{},[145,152658,152036],{"href":152611},[312,152660,152661],{},[145,152662,150789],{"href":151115},[312,152664,152665],{},[145,152666,152668],{"href":152667},"/mysql/transactions-locking","Transactions & Locking",[312,152670,152671],{},[145,152672,152674],{"href":152673},"/mysql/performance-explain","Performance & Explain",[312,152676,152677],{},[145,152678,152680],{"href":152679},"/mysql/stored-procedures-functions","Stored Procedures & Functions",[312,152682,152683],{},[145,152684,152686],{"href":152685},"/mysql/triggers","Triggers",[312,152688,152689],{},[145,152690,74091],{"href":152691},"/mysql/views",[312,152693,152694],{},[145,152695,149765],{"href":150043},[312,152697,152698],{},[145,152699,152701],{"href":152700},"/mysql/useful-functions","Useful Functions",[312,152703,152704],{},[145,152705,152707],{"href":152706},"/mysql/useful-queries","Useful Queries",{"title":30,"searchDepth":44,"depth":44,"links":152709},[],"MySQL-specific commands, features, and administration for database management.",{},"/mysql/overview",{"title":152618,"description":152710},"mysql/overview",[149990,28650,28337,150047],"h-PdCmb1nh6LMIB97gnTZwWtW81GIjdIfYXhdxGRfhI",{"id":152718,"title":152674,"body":152719,"date":402,"description":153166,"extension":404,"meta":153167,"navigation":61,"order":275,"path":152673,"seo":153168,"stem":153169,"subject":149990,"tags":153170,"__hash__":153171},"topics/mysql/performance-explain.md",{"type":8,"value":152720,"toc":153163},[152721,152724,153161],[11,152722,152674],{"id":152723},"performance-explain",[25,152725,152727],{"className":28335,"code":152726,"language":28337,"meta":30,"style":30},"-- Explain query plan\nEXPLAIN SELECT * FROM users WHERE email = 'test@example.com';\nEXPLAIN ANALYZE SELECT * FROM users WHERE email = 'test@example.com';  -- MySQL 8.0.18+\nEXPLAIN FORMAT=JSON SELECT * FROM users WHERE email = 'test@example.com';\n\n-- Analyze table\nANALYZE TABLE users;\n\n-- Optimize table (defragment)\nOPTIMIZE TABLE users;\n\n-- Check table\nCHECK TABLE users;\n\n-- Repair table\nREPAIR TABLE users;\n\n-- Table size\nSELECT \n  table_name,\n  ROUND(data_length / 1024 / 1024, 2) as data_mb,\n  ROUND(index_length / 1024 / 1024, 2) as index_mb\nFROM information_schema.tables\nWHERE table_schema = 'myapp';\n\n-- Database size\nSELECT \n  table_schema as database_name,\n  ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) as size_mb\nFROM information_schema.tables\nGROUP BY table_schema;\n\n-- Show running queries\nSHOW PROCESSLIST;\nSHOW FULL PROCESSLIST;\n\n-- Kill query\nKILL process_id;\nKILL QUERY process_id;  -- Kill query only, keep connection\n\n-- Slow query log\nSET GLOBAL slow_query_log = 'ON';\nSET GLOBAL long_query_time = 2;\nSHOW VARIABLES LIKE 'slow_query%';\n",[20,152728,152729,152734,152757,152783,152810,152814,152819,152829,152833,152838,152847,152851,152856,152865,152869,152874,152883,152887,152892,152898,152903,152931,152957,152969,152983,152987,152992,152998,153009,153044,153054,153061,153065,153070,153075,153080,153084,153089,153097,153107,153111,153116,153133,153148],{"__ignoreMap":30},[34,152730,152731],{"class":36,"line":37},[34,152732,152733],{"class":40},"-- Explain query plan\n",[34,152735,152736,152739,152741,152743,152745,152747,152749,152751,152753,152755],{"class":36,"line":44},[34,152737,152738],{"class":181},"EXPLAIN ",[34,152740,28529],{"class":580},[34,152742,18083],{"class":580},[34,152744,28534],{"class":580},[34,152746,28553],{"class":181},[34,152748,28604],{"class":580},[34,152750,151315],{"class":181},[34,152752,1301],{"class":580},[34,152754,151320],{"class":54},[34,152756,593],{"class":181},[34,152758,152759,152762,152764,152766,152768,152770,152772,152774,152776,152778,152780],{"class":36,"line":58},[34,152760,152761],{"class":181},"EXPLAIN ANALYZE ",[34,152763,28529],{"class":580},[34,152765,18083],{"class":580},[34,152767,28534],{"class":580},[34,152769,28553],{"class":181},[34,152771,28604],{"class":580},[34,152773,151315],{"class":181},[34,152775,1301],{"class":580},[34,152777,151320],{"class":54},[34,152779,124981],{"class":181},[34,152781,152782],{"class":40},"-- MySQL 8.0.18+\n",[34,152784,152785,152788,152791,152794,152796,152798,152800,152802,152804,152806,152808],{"class":36,"line":65},[34,152786,152787],{"class":181},"EXPLAIN FORMAT",[34,152789,152790],{"class":580},"=JSON",[34,152792,152793],{"class":580}," SELECT",[34,152795,18083],{"class":580},[34,152797,28534],{"class":580},[34,152799,28553],{"class":181},[34,152801,28604],{"class":580},[34,152803,151315],{"class":181},[34,152805,1301],{"class":580},[34,152807,151320],{"class":54},[34,152809,593],{"class":181},[34,152811,152812],{"class":36,"line":71},[34,152813,62],{"emptyLinePlaceholder":61},[34,152815,152816],{"class":36,"line":77},[34,152817,152818],{"class":40},"-- Analyze table\n",[34,152820,152821,152824,152827],{"class":36,"line":82},[34,152822,152823],{"class":181},"ANALYZE ",[34,152825,152826],{"class":580},"TABLE",[34,152828,4114],{"class":181},[34,152830,152831],{"class":36,"line":88},[34,152832,62],{"emptyLinePlaceholder":61},[34,152834,152835],{"class":36,"line":242},[34,152836,152837],{"class":40},"-- Optimize table (defragment)\n",[34,152839,152840,152843,152845],{"class":36,"line":250},[34,152841,152842],{"class":181},"OPTIMIZE ",[34,152844,152826],{"class":580},[34,152846,4114],{"class":181},[34,152848,152849],{"class":36,"line":263},[34,152850,62],{"emptyLinePlaceholder":61},[34,152852,152853],{"class":36,"line":275},[34,152854,152855],{"class":40},"-- Check table\n",[34,152857,152858,152861,152863],{"class":36,"line":700},[34,152859,152860],{"class":580},"CHECK",[34,152862,28422],{"class":580},[34,152864,4114],{"class":181},[34,152866,152867],{"class":36,"line":706},[34,152868,62],{"emptyLinePlaceholder":61},[34,152870,152871],{"class":36,"line":715},[34,152872,152873],{"class":40},"-- Repair table\n",[34,152875,152876,152879,152881],{"class":36,"line":725},[34,152877,152878],{"class":181},"REPAIR ",[34,152880,152826],{"class":580},[34,152882,4114],{"class":181},[34,152884,152885],{"class":36,"line":734},[34,152886,62],{"emptyLinePlaceholder":61},[34,152888,152889],{"class":36,"line":742},[34,152890,152891],{"class":40},"-- Table size\n",[34,152893,152894,152896],{"class":36,"line":748},[34,152895,28529],{"class":580},[34,152897,526],{"class":181},[34,152899,152900],{"class":36,"line":754},[34,152901,152902],{"class":181},"  table_name,\n",[34,152904,152905,152908,152911,152913,152916,152918,152920,152922,152924,152926,152928],{"class":36,"line":759},[34,152906,152907],{"class":50},"  ROUND",[34,152909,152910],{"class":181},"(data_length ",[34,152912,12734],{"class":580},[34,152914,152915],{"class":50}," 1024",[34,152917,22767],{"class":580},[34,152919,152915],{"class":50},[34,152921,1798],{"class":181},[34,152923,8324],{"class":50},[34,152925,4817],{"class":181},[34,152927,74548],{"class":580},[34,152929,152930],{"class":181}," data_mb,\n",[34,152932,152933,152935,152938,152940,152942,152944,152946,152948,152950,152952,152954],{"class":36,"line":771},[34,152934,152907],{"class":50},[34,152936,152937],{"class":181},"(index_length ",[34,152939,12734],{"class":580},[34,152941,152915],{"class":50},[34,152943,22767],{"class":580},[34,152945,152915],{"class":50},[34,152947,1798],{"class":181},[34,152949,8324],{"class":50},[34,152951,4817],{"class":181},[34,152953,74548],{"class":580},[34,152955,152956],{"class":181}," index_mb\n",[34,152958,152959,152961,152964,152966],{"class":36,"line":794},[34,152960,29179],{"class":580},[34,152962,152963],{"class":50}," information_schema",[34,152965,151],{"class":181},[34,152967,152968],{"class":50},"tables\n",[34,152970,152971,152973,152976,152978,152981],{"class":36,"line":824},[34,152972,28604],{"class":580},[34,152974,152975],{"class":181}," table_schema ",[34,152977,1301],{"class":580},[34,152979,152980],{"class":54}," 'myapp'",[34,152982,593],{"class":181},[34,152984,152985],{"class":36,"line":830},[34,152986,62],{"emptyLinePlaceholder":61},[34,152988,152989],{"class":36,"line":839},[34,152990,152991],{"class":40},"-- Database size\n",[34,152993,152994,152996],{"class":36,"line":854},[34,152995,28529],{"class":580},[34,152997,526],{"class":181},[34,152999,153000,153003,153005,153007],{"class":36,"line":860},[34,153001,153002],{"class":181},"  table_schema ",[34,153004,74548],{"class":580},[34,153006,149795],{"class":580},[34,153008,624],{"class":181},[34,153010,153011,153013,153015,153018,153020,153022,153025,153027,153029,153031,153033,153035,153037,153039,153041],{"class":36,"line":865},[34,153012,152907],{"class":50},[34,153014,1607],{"class":181},[34,153016,153017],{"class":50},"SUM",[34,153019,152910],{"class":181},[34,153021,2940],{"class":580},[34,153023,153024],{"class":181}," index_length) ",[34,153026,12734],{"class":580},[34,153028,152915],{"class":50},[34,153030,22767],{"class":580},[34,153032,152915],{"class":50},[34,153034,1798],{"class":181},[34,153036,8324],{"class":50},[34,153038,4817],{"class":181},[34,153040,74548],{"class":580},[34,153042,153043],{"class":181}," size_mb\n",[34,153045,153046,153048,153050,153052],{"class":36,"line":870},[34,153047,29179],{"class":580},[34,153049,152963],{"class":50},[34,153051,151],{"class":181},[34,153053,152968],{"class":50},[34,153055,153056,153058],{"class":36,"line":876},[34,153057,29184],{"class":580},[34,153059,153060],{"class":181}," table_schema;\n",[34,153062,153063],{"class":36,"line":885},[34,153064,62],{"emptyLinePlaceholder":61},[34,153066,153067],{"class":36,"line":895},[34,153068,153069],{"class":40},"-- Show running queries\n",[34,153071,153072],{"class":36,"line":904},[34,153073,153074],{"class":181},"SHOW PROCESSLIST;\n",[34,153076,153077],{"class":36,"line":915},[34,153078,153079],{"class":181},"SHOW FULL PROCESSLIST;\n",[34,153081,153082],{"class":36,"line":927},[34,153083,62],{"emptyLinePlaceholder":61},[34,153085,153086],{"class":36,"line":932},[34,153087,153088],{"class":40},"-- Kill query\n",[34,153090,153091,153094],{"class":36,"line":944},[34,153092,153093],{"class":580},"KILL",[34,153095,153096],{"class":181}," process_id;\n",[34,153098,153099,153101,153104],{"class":36,"line":966},[34,153100,153093],{"class":580},[34,153102,153103],{"class":181}," QUERY process_id;  ",[34,153105,153106],{"class":40},"-- Kill query only, keep connection\n",[34,153108,153109],{"class":36,"line":1948},[34,153110,62],{"emptyLinePlaceholder":61},[34,153112,153113],{"class":36,"line":1953},[34,153114,153115],{"class":40},"-- Slow query log\n",[34,153117,153118,153120,153123,153126,153128,153131],{"class":36,"line":3616},[34,153119,28556],{"class":580},[34,153121,153122],{"class":580}," GLOBAL",[34,153124,153125],{"class":181}," slow_query_log ",[34,153127,1301],{"class":580},[34,153129,153130],{"class":54}," 'ON'",[34,153132,593],{"class":181},[34,153134,153135,153137,153139,153142,153144,153146],{"class":36,"line":3622},[34,153136,28556],{"class":580},[34,153138,153122],{"class":580},[34,153140,153141],{"class":181}," long_query_time ",[34,153143,1301],{"class":580},[34,153145,4292],{"class":50},[34,153147,593],{"class":181},[34,153149,153150,153153,153156,153159],{"class":36,"line":3642},[34,153151,153152],{"class":181},"SHOW VARIABLES ",[34,153154,153155],{"class":580},"LIKE",[34,153157,153158],{"class":54}," 'slow_query%'",[34,153160,593],{"class":181},[388,153162,10348],{},{"title":30,"searchDepth":44,"depth":44,"links":153164},[153165],{"id":152723,"depth":44,"text":152674},"Performance & Explain in MySQL.",{},{"title":152674,"description":153166},"mysql/performance-explain",[149990,28650,28337,150047],"mdmfg5_dTsoN6fZfM9HRll5p7NH5Me2wYU1WoavMkhc",{"id":153173,"title":152680,"body":153174,"date":402,"description":153597,"extension":404,"meta":153598,"navigation":61,"order":700,"path":152679,"seo":153599,"stem":153600,"subject":149990,"tags":153601,"__hash__":153602},"topics/mysql/stored-procedures-functions.md",{"type":8,"value":153175,"toc":153594},[153176,153179,153591],[11,153177,152680],{"id":153178},"stored-procedures-functions",[25,153180,153182],{"className":28335,"code":153181,"language":28337,"meta":30,"style":30},"-- Create procedure\nDELIMITER //\nCREATE PROCEDURE get_user_orders(IN user_id INT)\nBEGIN\n  SELECT * FROM orders WHERE orders.user_id = user_id;\nEND //\nDELIMITER ;\n\n-- Call procedure\nCALL get_user_orders(1);\n\n-- Procedure with OUT parameter\nDELIMITER //\nCREATE PROCEDURE get_order_count(IN user_id INT, OUT order_count INT)\nBEGIN\n  SELECT COUNT(*) INTO order_count FROM orders WHERE orders.user_id = user_id;\nEND //\nDELIMITER ;\n\nCALL get_order_count(1, @count);\nSELECT @count;\n\n-- Create function\nDELIMITER //\nCREATE FUNCTION calculate_tax(amount DECIMAL(10,2))\nRETURNS DECIMAL(10,2)\nDETERMINISTIC\nBEGIN\n  RETURN amount * 0.1;\nEND //\nDELIMITER ;\n\n-- Use function\nSELECT calculate_tax(100);\n\n-- Drop procedure/function\nDROP PROCEDURE IF EXISTS get_user_orders;\nDROP FUNCTION IF EXISTS calculate_tax;\n\n-- Show procedures/functions\nSHOW PROCEDURE STATUS WHERE Db = 'myapp';\nSHOW FUNCTION STATUS WHERE Db = 'myapp';\n",[20,153183,153184,153189,153197,153217,153222,153248,153256,153261,153265,153270,153281,153285,153290,153296,153323,153327,153361,153367,153371,153375,153386,153393,153397,153402,153408,153433,153451,153456,153460,153478,153484,153488,153492,153497,153508,153512,153517,153530,153543,153547,153552,153572],{"__ignoreMap":30},[34,153185,153186],{"class":36,"line":37},[34,153187,153188],{"class":40},"-- Create procedure\n",[34,153190,153191,153194],{"class":36,"line":44},[34,153192,153193],{"class":181},"DELIMITER ",[34,153195,153196],{"class":580},"//\n",[34,153198,153199,153201,153204,153207,153210,153213,153215],{"class":36,"line":58},[34,153200,28349],{"class":580},[34,153202,153203],{"class":580}," PROCEDURE",[34,153205,153206],{"class":181}," get_user_orders(",[34,153208,153209],{"class":580},"IN",[34,153211,153212],{"class":181}," user_id ",[34,153214,28454],{"class":580},[34,153216,3372],{"class":181},[34,153218,153219],{"class":36,"line":65},[34,153220,153221],{"class":580},"BEGIN\n",[34,153223,153224,153227,153229,153231,153234,153236,153239,153241,153243,153245],{"class":36,"line":71},[34,153225,153226],{"class":580},"  SELECT",[34,153228,18083],{"class":580},[34,153230,28534],{"class":580},[34,153232,153233],{"class":181}," orders ",[34,153235,28604],{"class":580},[34,153237,153238],{"class":50}," orders",[34,153240,151],{"class":181},[34,153242,151801],{"class":50},[34,153244,683],{"class":580},[34,153246,153247],{"class":181}," user_id;\n",[34,153249,153250,153253],{"class":36,"line":77},[34,153251,153252],{"class":580},"END",[34,153254,153255],{"class":580}," //\n",[34,153257,153258],{"class":36,"line":82},[34,153259,153260],{"class":181},"DELIMITER ;\n",[34,153262,153263],{"class":36,"line":88},[34,153264,62],{"emptyLinePlaceholder":61},[34,153266,153267],{"class":36,"line":242},[34,153268,153269],{"class":40},"-- Call procedure\n",[34,153271,153272,153275,153277,153279],{"class":36,"line":250},[34,153273,153274],{"class":580},"CALL",[34,153276,153206],{"class":181},[34,153278,8318],{"class":50},[34,153280,1586],{"class":181},[34,153282,153283],{"class":36,"line":263},[34,153284,62],{"emptyLinePlaceholder":61},[34,153286,153287],{"class":36,"line":275},[34,153288,153289],{"class":40},"-- Procedure with OUT parameter\n",[34,153291,153292,153294],{"class":36,"line":700},[34,153293,153193],{"class":181},[34,153295,153196],{"class":580},[34,153297,153298,153300,153302,153305,153307,153309,153311,153313,153316,153319,153321],{"class":36,"line":706},[34,153299,28349],{"class":580},[34,153301,153203],{"class":580},[34,153303,153304],{"class":181}," get_order_count(",[34,153306,153209],{"class":580},[34,153308,153212],{"class":181},[34,153310,28454],{"class":580},[34,153312,1798],{"class":181},[34,153314,153315],{"class":580},"OUT",[34,153317,153318],{"class":181}," order_count ",[34,153320,28454],{"class":580},[34,153322,3372],{"class":181},[34,153324,153325],{"class":36,"line":715},[34,153326,153221],{"class":580},[34,153328,153329,153331,153334,153336,153338,153340,153343,153345,153347,153349,153351,153353,153355,153357,153359],{"class":36,"line":725},[34,153330,153226],{"class":580},[34,153332,153333],{"class":50}," COUNT",[34,153335,1607],{"class":181},[34,153337,4289],{"class":580},[34,153339,4817],{"class":181},[34,153341,153342],{"class":580},"INTO",[34,153344,153318],{"class":181},[34,153346,29179],{"class":580},[34,153348,153233],{"class":181},[34,153350,28604],{"class":580},[34,153352,153238],{"class":50},[34,153354,151],{"class":181},[34,153356,151801],{"class":50},[34,153358,683],{"class":580},[34,153360,153247],{"class":181},[34,153362,153363,153365],{"class":36,"line":734},[34,153364,153252],{"class":580},[34,153366,153255],{"class":580},[34,153368,153369],{"class":36,"line":742},[34,153370,153260],{"class":181},[34,153372,153373],{"class":36,"line":748},[34,153374,62],{"emptyLinePlaceholder":61},[34,153376,153377,153379,153381,153383],{"class":36,"line":754},[34,153378,153274],{"class":580},[34,153380,153304],{"class":181},[34,153382,8318],{"class":50},[34,153384,153385],{"class":181},", @count);\n",[34,153387,153388,153390],{"class":36,"line":759},[34,153389,28529],{"class":580},[34,153391,153392],{"class":181}," @count;\n",[34,153394,153395],{"class":36,"line":771},[34,153396,62],{"emptyLinePlaceholder":61},[34,153398,153399],{"class":36,"line":794},[34,153400,153401],{"class":40},"-- Create function\n",[34,153403,153404,153406],{"class":36,"line":824},[34,153405,153193],{"class":181},[34,153407,153196],{"class":580},[34,153409,153410,153412,153415,153418,153421,153423,153425,153427,153429,153431],{"class":36,"line":830},[34,153411,28349],{"class":580},[34,153413,153414],{"class":580}," FUNCTION",[34,153416,153417],{"class":47}," calculate_tax",[34,153419,153420],{"class":181},"(amount ",[34,153422,150374],{"class":580},[34,153424,1607],{"class":181},[34,153426,11923],{"class":50},[34,153428,8321],{"class":181},[34,153430,8324],{"class":50},[34,153432,11119],{"class":181},[34,153434,153435,153438,153441,153443,153445,153447,153449],{"class":36,"line":839},[34,153436,153437],{"class":580},"RETURNS",[34,153439,153440],{"class":580}," DECIMAL",[34,153442,1607],{"class":181},[34,153444,11923],{"class":50},[34,153446,8321],{"class":181},[34,153448,8324],{"class":50},[34,153450,3372],{"class":181},[34,153452,153453],{"class":36,"line":854},[34,153454,153455],{"class":181},"DETERMINISTIC\n",[34,153457,153458],{"class":36,"line":860},[34,153459,153221],{"class":580},[34,153461,153462,153465,153468,153470,153472,153474,153476],{"class":36,"line":865},[34,153463,153464],{"class":580},"  RETURN",[34,153466,153467],{"class":181}," amount ",[34,153469,4289],{"class":580},[34,153471,8070],{"class":50},[34,153473,151],{"class":181},[34,153475,8318],{"class":50},[34,153477,593],{"class":181},[34,153479,153480,153482],{"class":36,"line":870},[34,153481,153252],{"class":580},[34,153483,153255],{"class":580},[34,153485,153486],{"class":36,"line":876},[34,153487,153260],{"class":181},[34,153489,153490],{"class":36,"line":885},[34,153491,62],{"emptyLinePlaceholder":61},[34,153493,153494],{"class":36,"line":895},[34,153495,153496],{"class":40},"-- Use function\n",[34,153498,153499,153501,153504,153506],{"class":36,"line":904},[34,153500,28529],{"class":580},[34,153502,153503],{"class":181}," calculate_tax(",[34,153505,20863],{"class":50},[34,153507,1586],{"class":181},[34,153509,153510],{"class":36,"line":915},[34,153511,62],{"emptyLinePlaceholder":61},[34,153513,153514],{"class":36,"line":927},[34,153515,153516],{"class":40},"-- Drop procedure/function\n",[34,153518,153519,153521,153523,153525,153527],{"class":36,"line":932},[34,153520,150706],{"class":580},[34,153522,153203],{"class":580},[34,153524,150683],{"class":580},[34,153526,150689],{"class":580},[34,153528,153529],{"class":181}," get_user_orders;\n",[34,153531,153532,153534,153536,153538,153540],{"class":36,"line":944},[34,153533,150706],{"class":580},[34,153535,153414],{"class":580},[34,153537,150683],{"class":580},[34,153539,150689],{"class":580},[34,153541,153542],{"class":181}," calculate_tax;\n",[34,153544,153545],{"class":36,"line":966},[34,153546,62],{"emptyLinePlaceholder":61},[34,153548,153549],{"class":36,"line":1948},[34,153550,153551],{"class":40},"-- Show procedures/functions\n",[34,153553,153554,153556,153559,153561,153563,153566,153568,153570],{"class":36,"line":1953},[34,153555,151277],{"class":181},[34,153557,153558],{"class":580},"PROCEDURE",[34,153560,150279],{"class":580},[34,153562,28565],{"class":580},[34,153564,153565],{"class":181}," Db ",[34,153567,1301],{"class":580},[34,153569,152980],{"class":54},[34,153571,593],{"class":181},[34,153573,153574,153576,153579,153581,153583,153585,153587,153589],{"class":36,"line":3616},[34,153575,151277],{"class":181},[34,153577,153578],{"class":580},"FUNCTION",[34,153580,150279],{"class":580},[34,153582,28565],{"class":580},[34,153584,153565],{"class":181},[34,153586,1301],{"class":580},[34,153588,152980],{"class":54},[34,153590,593],{"class":181},[388,153592,153593],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .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);}",{"title":30,"searchDepth":44,"depth":44,"links":153595},[153596],{"id":153178,"depth":44,"text":152680},"Stored Procedures & Functions in MySQL.",{},{"title":152680,"description":153597},"mysql/stored-procedures-functions",[149990,28650,28337,150047],"ZdH6J6zXy1nMveEseh1L-5zkSEHD_WPykArUMgry7FI",{"id":153604,"title":152646,"body":153605,"date":402,"description":154113,"extension":404,"meta":154114,"navigation":61,"order":77,"path":152645,"seo":154115,"stem":154116,"subject":149990,"tags":154117,"__hash__":154118},"topics/mysql/table-management.md",{"type":8,"value":153606,"toc":154110},[153607,153610,154108],[11,153608,152646],{"id":153609},"table-management",[25,153611,153613],{"className":28335,"code":153612,"language":28337,"meta":30,"style":30},"-- Create table\nCREATE TABLE users (\n  id INT AUTO_INCREMENT PRIMARY KEY,\n  name VARCHAR(100) NOT NULL,\n  email VARCHAR(255) UNIQUE NOT NULL,\n  age INT UNSIGNED,\n  status ENUM('active', 'inactive') DEFAULT 'active',\n  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;\n\n-- Create table with foreign key\nCREATE TABLE orders (\n  id INT AUTO_INCREMENT PRIMARY KEY,\n  user_id INT NOT NULL,\n  total DECIMAL(10, 2) NOT NULL,\n  status VARCHAR(20) DEFAULT 'pending',\n  FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE\n) ENGINE=InnoDB;\n\n-- Alter table\nALTER TABLE users ADD COLUMN phone VARCHAR(20);\nALTER TABLE users ADD COLUMN phone VARCHAR(20) AFTER email;\nALTER TABLE users DROP COLUMN phone;\nALTER TABLE users MODIFY COLUMN name VARCHAR(200) NOT NULL;\nALTER TABLE users CHANGE COLUMN name full_name VARCHAR(200);\nALTER TABLE users RENAME TO customers;\nALTER TABLE users ADD INDEX idx_email (email);\nALTER TABLE users DROP INDEX idx_email;\n\n-- Drop table\nDROP TABLE IF EXISTS users;\n\n-- Truncate table\nTRUNCATE TABLE logs;\n\n-- Show table info\nSHOW TABLE STATUS LIKE 'users';\nSHOW CREATE TABLE users;\n",[20,153614,153615,153620,153630,153642,153659,153679,153689,153714,153727,153745,153764,153768,153773,153783,153795,153806,153827,153845,153862,153870,153874,153879,153900,153926,153939,153967,153989,154004,154019,154034,154038,154043,154055,154059,154064,154074,154078,154083,154098],{"__ignoreMap":30},[34,153616,153617],{"class":36,"line":37},[34,153618,153619],{"class":40},"-- Create table\n",[34,153621,153622,153624,153626,153628],{"class":36,"line":44},[34,153623,28349],{"class":580},[34,153625,28422],{"class":580},[34,153627,28425],{"class":47},[34,153629,13975],{"class":181},[34,153631,153632,153634,153636,153638,153640],{"class":36,"line":58},[34,153633,150847],{"class":181},[34,153635,28454],{"class":580},[34,153637,150852],{"class":181},[34,153639,28435],{"class":580},[34,153641,624],{"class":181},[34,153643,153644,153646,153648,153650,153652,153654,153657],{"class":36,"line":65},[34,153645,7350],{"class":580},[34,153647,152081],{"class":580},[34,153649,1607],{"class":181},[34,153651,20863],{"class":50},[34,153653,4817],{"class":181},[34,153655,153656],{"class":580},"NOT NULL",[34,153658,624],{"class":181},[34,153660,153661,153663,153665,153667,153669,153671,153674,153677],{"class":36,"line":71},[34,153662,151589],{"class":181},[34,153664,150421],{"class":580},[34,153666,1607],{"class":181},[34,153668,38686],{"class":50},[34,153670,4817],{"class":181},[34,153672,153673],{"class":580},"UNIQUE",[34,153675,153676],{"class":580}," NOT NULL",[34,153678,624],{"class":181},[34,153680,153681,153684,153686],{"class":36,"line":77},[34,153682,153683],{"class":181},"  age ",[34,153685,28454],{"class":580},[34,153687,153688],{"class":181}," UNSIGNED,\n",[34,153690,153691,153694,153697,153700,153702,153705,153707,153710,153712],{"class":36,"line":82},[34,153692,153693],{"class":580},"  status",[34,153695,153696],{"class":181}," ENUM(",[34,153698,153699],{"class":54},"'active'",[34,153701,1798],{"class":181},[34,153703,153704],{"class":54},"'inactive'",[34,153706,4817],{"class":181},[34,153708,153709],{"class":580},"DEFAULT",[34,153711,130924],{"class":54},[34,153713,624],{"class":181},[34,153715,153716,153719,153721,153724],{"class":36,"line":88},[34,153717,153718],{"class":181},"  created_at ",[34,153720,150527],{"class":580},[34,153722,153723],{"class":580}," DEFAULT",[34,153725,153726],{"class":181}," CURRENT_TIMESTAMP,\n",[34,153728,153729,153732,153734,153736,153739,153742],{"class":36,"line":242},[34,153730,153731],{"class":181},"  updated_at ",[34,153733,150527],{"class":580},[34,153735,153723],{"class":580},[34,153737,153738],{"class":181}," CURRENT_TIMESTAMP ",[34,153740,153741],{"class":580},"ON UPDATE",[34,153743,153744],{"class":181}," CURRENT_TIMESTAMP\n",[34,153746,153747,153749,153751,153754,153756,153759,153761],{"class":36,"line":250},[34,153748,150891],{"class":181},[34,153750,1301],{"class":580},[34,153752,153753],{"class":181},"InnoDB ",[34,153755,153709],{"class":580},[34,153757,153758],{"class":181}," CHARSET",[34,153760,1301],{"class":580},[34,153762,153763],{"class":181},"utf8mb4;\n",[34,153765,153766],{"class":36,"line":263},[34,153767,62],{"emptyLinePlaceholder":61},[34,153769,153770],{"class":36,"line":275},[34,153771,153772],{"class":40},"-- Create table with foreign key\n",[34,153774,153775,153777,153779,153781],{"class":36,"line":700},[34,153776,28349],{"class":580},[34,153778,28422],{"class":580},[34,153780,153238],{"class":47},[34,153782,13975],{"class":181},[34,153784,153785,153787,153789,153791,153793],{"class":36,"line":706},[34,153786,150847],{"class":181},[34,153788,28454],{"class":580},[34,153790,150852],{"class":181},[34,153792,28435],{"class":580},[34,153794,624],{"class":181},[34,153796,153797,153800,153802,153804],{"class":36,"line":715},[34,153798,153799],{"class":181},"  user_id ",[34,153801,28454],{"class":580},[34,153803,153676],{"class":580},[34,153805,624],{"class":181},[34,153807,153808,153811,153813,153815,153817,153819,153821,153823,153825],{"class":36,"line":725},[34,153809,153810],{"class":181},"  total ",[34,153812,150374],{"class":580},[34,153814,1607],{"class":181},[34,153816,11923],{"class":50},[34,153818,1798],{"class":181},[34,153820,8324],{"class":50},[34,153822,4817],{"class":181},[34,153824,153656],{"class":580},[34,153826,624],{"class":181},[34,153828,153829,153831,153833,153835,153837,153839,153841,153843],{"class":36,"line":734},[34,153830,153693],{"class":580},[34,153832,152081],{"class":580},[34,153834,1607],{"class":181},[34,153836,24945],{"class":50},[34,153838,4817],{"class":181},[34,153840,153709],{"class":580},[34,153842,130649],{"class":54},[34,153844,624],{"class":181},[34,153846,153847,153850,153853,153856,153859],{"class":36,"line":742},[34,153848,153849],{"class":580},"  FOREIGN KEY",[34,153851,153852],{"class":181}," (user_id) ",[34,153854,153855],{"class":580},"REFERENCES",[34,153857,153858],{"class":181}," users(id) ",[34,153860,153861],{"class":580},"ON DELETE CASCADE\n",[34,153863,153864,153866,153868],{"class":36,"line":748},[34,153865,150891],{"class":181},[34,153867,1301],{"class":580},[34,153869,150896],{"class":181},[34,153871,153872],{"class":36,"line":754},[34,153873,62],{"emptyLinePlaceholder":61},[34,153875,153876],{"class":36,"line":759},[34,153877,153878],{"class":40},"-- Alter table\n",[34,153880,153881,153883,153885,153887,153889,153892,153894,153896,153898],{"class":36,"line":771},[34,153882,151213],{"class":580},[34,153884,28422],{"class":580},[34,153886,28553],{"class":181},[34,153888,151220],{"class":580},[34,153890,153891],{"class":181}," COLUMN phone ",[34,153893,150421],{"class":580},[34,153895,1607],{"class":181},[34,153897,24945],{"class":50},[34,153899,1586],{"class":181},[34,153901,153902,153904,153906,153908,153910,153912,153914,153916,153918,153920,153923],{"class":36,"line":794},[34,153903,151213],{"class":580},[34,153905,28422],{"class":580},[34,153907,28553],{"class":181},[34,153909,151220],{"class":580},[34,153911,153891],{"class":181},[34,153913,150421],{"class":580},[34,153915,1607],{"class":181},[34,153917,24945],{"class":50},[34,153919,4817],{"class":181},[34,153921,153922],{"class":580},"AFTER",[34,153924,153925],{"class":181}," email;\n",[34,153927,153928,153930,153932,153934,153936],{"class":36,"line":824},[34,153929,151213],{"class":580},[34,153931,28422],{"class":580},[34,153933,28553],{"class":181},[34,153935,150706],{"class":580},[34,153937,153938],{"class":181}," COLUMN phone;\n",[34,153940,153941,153943,153945,153947,153950,153953,153955,153957,153959,153961,153963,153965],{"class":36,"line":830},[34,153942,151213],{"class":580},[34,153944,28422],{"class":580},[34,153946,28553],{"class":181},[34,153948,153949],{"class":580},"MODIFY",[34,153951,153952],{"class":181}," COLUMN ",[34,153954,178],{"class":580},[34,153956,152081],{"class":580},[34,153958,1607],{"class":181},[34,153960,20899],{"class":50},[34,153962,4817],{"class":181},[34,153964,153656],{"class":580},[34,153966,593],{"class":181},[34,153968,153969,153971,153973,153976,153978,153981,153983,153985,153987],{"class":36,"line":839},[34,153970,151213],{"class":580},[34,153972,28422],{"class":580},[34,153974,153975],{"class":181}," users CHANGE COLUMN ",[34,153977,178],{"class":580},[34,153979,153980],{"class":181}," full_name ",[34,153982,150421],{"class":580},[34,153984,1607],{"class":181},[34,153986,20899],{"class":50},[34,153988,1586],{"class":181},[34,153990,153991,153993,153995,153998,154001],{"class":36,"line":854},[34,153992,151213],{"class":580},[34,153994,28422],{"class":580},[34,153996,153997],{"class":181}," users RENAME ",[34,153999,154000],{"class":580},"TO",[34,154002,154003],{"class":181}," customers;\n",[34,154005,154006,154008,154010,154012,154014,154016],{"class":36,"line":860},[34,154007,151213],{"class":580},[34,154009,28422],{"class":580},[34,154011,28553],{"class":181},[34,154013,151220],{"class":580},[34,154015,150242],{"class":580},[34,154017,154018],{"class":181}," idx_email (email);\n",[34,154020,154021,154023,154025,154027,154029,154031],{"class":36,"line":865},[34,154022,151213],{"class":580},[34,154024,28422],{"class":580},[34,154026,28553],{"class":181},[34,154028,150706],{"class":580},[34,154030,150242],{"class":580},[34,154032,154033],{"class":181}," idx_email;\n",[34,154035,154036],{"class":36,"line":870},[34,154037,62],{"emptyLinePlaceholder":61},[34,154039,154040],{"class":36,"line":876},[34,154041,154042],{"class":40},"-- Drop table\n",[34,154044,154045,154047,154049,154051,154053],{"class":36,"line":885},[34,154046,150706],{"class":580},[34,154048,28422],{"class":580},[34,154050,150683],{"class":580},[34,154052,150689],{"class":580},[34,154054,4114],{"class":181},[34,154056,154057],{"class":36,"line":895},[34,154058,62],{"emptyLinePlaceholder":61},[34,154060,154061],{"class":36,"line":904},[34,154062,154063],{"class":40},"-- Truncate table\n",[34,154065,154066,154069,154071],{"class":36,"line":915},[34,154067,154068],{"class":580},"TRUNCATE",[34,154070,28422],{"class":580},[34,154072,154073],{"class":181}," logs;\n",[34,154075,154076],{"class":36,"line":927},[34,154077,62],{"emptyLinePlaceholder":61},[34,154079,154080],{"class":36,"line":932},[34,154081,154082],{"class":40},"-- Show table info\n",[34,154084,154085,154087,154089,154091,154093,154096],{"class":36,"line":944},[34,154086,151277],{"class":181},[34,154088,152826],{"class":580},[34,154090,150279],{"class":580},[34,154092,150267],{"class":580},[34,154094,154095],{"class":54}," 'users'",[34,154097,593],{"class":181},[34,154099,154100,154102,154104,154106],{"class":36,"line":966},[34,154101,151277],{"class":181},[34,154103,28349],{"class":580},[34,154105,28422],{"class":580},[34,154107,4114],{"class":181},[388,154109,49910],{},{"title":30,"searchDepth":44,"depth":44,"links":154111},[154112],{"id":153609,"depth":44,"text":152646},"Table Management in MySQL.",{},{"title":152646,"description":154113},"mysql/table-management",[149990,28650,28337,150047],"YbWURx4MLlNfp93MCSS_1o5fr8V53_B_pl6veBg5Bqs",{"id":154120,"title":152668,"body":154121,"date":402,"description":154564,"extension":404,"meta":154565,"navigation":61,"order":263,"path":152667,"seo":154566,"stem":154567,"subject":149990,"tags":154568,"__hash__":154569},"topics/mysql/transactions-locking.md",{"type":8,"value":154122,"toc":154561},[154123,154126,154559],[11,154124,152668],{"id":154125},"transactions-locking",[25,154127,154129],{"className":28335,"code":154128,"language":28337,"meta":30,"style":30},"-- Basic transaction\nSTART TRANSACTION;\nUPDATE accounts SET balance = balance - 100 WHERE id = 1;\nUPDATE accounts SET balance = balance + 100 WHERE id = 2;\nCOMMIT;\n\n-- Rollback\nSTART TRANSACTION;\nDELETE FROM users WHERE id = 1;\nROLLBACK;\n\n-- Savepoints\nSTART TRANSACTION;\nINSERT INTO users (name) VALUES ('John');\nSAVEPOINT my_savepoint;\nINSERT INTO users (name) VALUES ('Jane');\nROLLBACK TO my_savepoint;\nCOMMIT;\n\n-- Isolation levels\nSET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;\nSET TRANSACTION ISOLATION LEVEL READ COMMITTED;\nSET TRANSACTION ISOLATION LEVEL REPEATABLE READ;  -- Default\nSET TRANSACTION ISOLATION LEVEL SERIALIZABLE;\n\n-- Check current isolation level\nSELECT @@transaction_isolation;\n\n-- Row locking\nSELECT * FROM accounts WHERE id = 1 FOR UPDATE;\nSELECT * FROM accounts WHERE id = 1 FOR SHARE;\nSELECT * FROM accounts WHERE id = 1 FOR UPDATE NOWAIT;\nSELECT * FROM accounts WHERE id = 1 FOR UPDATE SKIP LOCKED;\n\n-- Table locking\nLOCK TABLES users READ, orders WRITE;\nUNLOCK TABLES;\n",[20,154130,154131,154136,154143,154173,154201,154208,154212,154217,154223,154241,154248,154252,154257,154263,154281,154286,154304,154314,154320,154324,154329,154350,154367,154387,154402,154406,154411,154418,154422,154427,154453,154476,154503,154531,154535,154540,154551],{"__ignoreMap":30},[34,154132,154133],{"class":36,"line":37},[34,154134,154135],{"class":40},"-- Basic transaction\n",[34,154137,154138,154141],{"class":36,"line":44},[34,154139,154140],{"class":580},"START TRANSACTION",[34,154142,593],{"class":181},[34,154144,154145,154147,154150,154152,154155,154157,154159,154161,154163,154165,154167,154169,154171],{"class":36,"line":58},[34,154146,28550],{"class":580},[34,154148,154149],{"class":181}," accounts ",[34,154151,28556],{"class":580},[34,154153,154154],{"class":181}," balance ",[34,154156,1301],{"class":580},[34,154158,154154],{"class":181},[34,154160,22062],{"class":580},[34,154162,25168],{"class":50},[34,154164,28565],{"class":580},[34,154166,28568],{"class":181},[34,154168,1301],{"class":580},[34,154170,3567],{"class":50},[34,154172,593],{"class":181},[34,154174,154175,154177,154179,154181,154183,154185,154187,154189,154191,154193,154195,154197,154199],{"class":36,"line":65},[34,154176,28550],{"class":580},[34,154178,154149],{"class":181},[34,154180,28556],{"class":580},[34,154182,154154],{"class":181},[34,154184,1301],{"class":580},[34,154186,154154],{"class":181},[34,154188,2940],{"class":580},[34,154190,25168],{"class":50},[34,154192,28565],{"class":580},[34,154194,28568],{"class":181},[34,154196,1301],{"class":580},[34,154198,4292],{"class":50},[34,154200,593],{"class":181},[34,154202,154203,154206],{"class":36,"line":71},[34,154204,154205],{"class":580},"COMMIT",[34,154207,593],{"class":181},[34,154209,154210],{"class":36,"line":77},[34,154211,62],{"emptyLinePlaceholder":61},[34,154213,154214],{"class":36,"line":82},[34,154215,154216],{"class":40},"-- Rollback\n",[34,154218,154219,154221],{"class":36,"line":88},[34,154220,154140],{"class":580},[34,154222,593],{"class":181},[34,154224,154225,154227,154229,154231,154233,154235,154237,154239],{"class":36,"line":242},[34,154226,28597],{"class":580},[34,154228,28534],{"class":580},[34,154230,28553],{"class":181},[34,154232,28604],{"class":580},[34,154234,28568],{"class":181},[34,154236,1301],{"class":580},[34,154238,3567],{"class":50},[34,154240,593],{"class":181},[34,154242,154243,154246],{"class":36,"line":250},[34,154244,154245],{"class":580},"ROLLBACK",[34,154247,593],{"class":181},[34,154249,154250],{"class":36,"line":263},[34,154251,62],{"emptyLinePlaceholder":61},[34,154253,154254],{"class":36,"line":275},[34,154255,154256],{"class":40},"-- Savepoints\n",[34,154258,154259,154261],{"class":36,"line":700},[34,154260,154140],{"class":580},[34,154262,593],{"class":181},[34,154264,154265,154267,154269,154271,154273,154275,154277,154279],{"class":36,"line":706},[34,154266,28487],{"class":580},[34,154268,151413],{"class":181},[34,154270,178],{"class":580},[34,154272,4817],{"class":181},[34,154274,28498],{"class":580},[34,154276,3204],{"class":181},[34,154278,151425],{"class":54},[34,154280,1586],{"class":181},[34,154282,154283],{"class":36,"line":715},[34,154284,154285],{"class":181},"SAVEPOINT my_savepoint;\n",[34,154287,154288,154290,154292,154294,154296,154298,154300,154302],{"class":36,"line":725},[34,154289,28487],{"class":580},[34,154291,151413],{"class":181},[34,154293,178],{"class":580},[34,154295,4817],{"class":181},[34,154297,28498],{"class":580},[34,154299,3204],{"class":181},[34,154301,151475],{"class":54},[34,154303,1586],{"class":181},[34,154305,154306,154308,154311],{"class":36,"line":734},[34,154307,154245],{"class":580},[34,154309,154310],{"class":580}," TO",[34,154312,154313],{"class":181}," my_savepoint;\n",[34,154315,154316,154318],{"class":36,"line":742},[34,154317,154205],{"class":580},[34,154319,593],{"class":181},[34,154321,154322],{"class":36,"line":748},[34,154323,62],{"emptyLinePlaceholder":61},[34,154325,154326],{"class":36,"line":754},[34,154327,154328],{"class":40},"-- Isolation levels\n",[34,154330,154331,154333,154336,154339,154342,154345,154348],{"class":36,"line":759},[34,154332,28556],{"class":580},[34,154334,154335],{"class":580}," TRANSACTION",[34,154337,154338],{"class":580}," ISOLATION",[34,154340,154341],{"class":580}," LEVEL",[34,154343,154344],{"class":580}," READ",[34,154346,154347],{"class":580}," UNCOMMITTED",[34,154349,593],{"class":181},[34,154351,154352,154354,154356,154358,154360,154362,154365],{"class":36,"line":771},[34,154353,28556],{"class":580},[34,154355,154335],{"class":580},[34,154357,154338],{"class":580},[34,154359,154341],{"class":580},[34,154361,154344],{"class":580},[34,154363,154364],{"class":580}," COMMITTED",[34,154366,593],{"class":181},[34,154368,154369,154371,154373,154375,154377,154380,154382,154384],{"class":36,"line":794},[34,154370,28556],{"class":580},[34,154372,154335],{"class":580},[34,154374,154338],{"class":580},[34,154376,154341],{"class":580},[34,154378,154379],{"class":580}," REPEATABLE",[34,154381,154344],{"class":580},[34,154383,124981],{"class":181},[34,154385,154386],{"class":40},"-- Default\n",[34,154388,154389,154391,154393,154395,154397,154400],{"class":36,"line":824},[34,154390,28556],{"class":580},[34,154392,154335],{"class":580},[34,154394,154338],{"class":580},[34,154396,154341],{"class":580},[34,154398,154399],{"class":580}," SERIALIZABLE",[34,154401,593],{"class":181},[34,154403,154404],{"class":36,"line":830},[34,154405,62],{"emptyLinePlaceholder":61},[34,154407,154408],{"class":36,"line":839},[34,154409,154410],{"class":40},"-- Check current isolation level\n",[34,154412,154413,154415],{"class":36,"line":854},[34,154414,28529],{"class":580},[34,154416,154417],{"class":181}," @@transaction_isolation;\n",[34,154419,154420],{"class":36,"line":860},[34,154421,62],{"emptyLinePlaceholder":61},[34,154423,154424],{"class":36,"line":865},[34,154425,154426],{"class":40},"-- Row locking\n",[34,154428,154429,154431,154433,154435,154437,154439,154441,154443,154445,154448,154451],{"class":36,"line":870},[34,154430,28529],{"class":580},[34,154432,18083],{"class":580},[34,154434,28534],{"class":580},[34,154436,154149],{"class":181},[34,154438,28604],{"class":580},[34,154440,28568],{"class":181},[34,154442,1301],{"class":580},[34,154444,3567],{"class":50},[34,154446,154447],{"class":580}," FOR",[34,154449,154450],{"class":580}," UPDATE",[34,154452,593],{"class":181},[34,154454,154455,154457,154459,154461,154463,154465,154467,154469,154471,154473],{"class":36,"line":876},[34,154456,28529],{"class":580},[34,154458,18083],{"class":580},[34,154460,28534],{"class":580},[34,154462,154149],{"class":181},[34,154464,28604],{"class":580},[34,154466,28568],{"class":181},[34,154468,1301],{"class":580},[34,154470,3567],{"class":50},[34,154472,154447],{"class":580},[34,154474,154475],{"class":181}," SHARE;\n",[34,154477,154478,154480,154482,154484,154486,154488,154490,154492,154494,154496,154498,154501],{"class":36,"line":885},[34,154479,28529],{"class":580},[34,154481,18083],{"class":580},[34,154483,28534],{"class":580},[34,154485,154149],{"class":181},[34,154487,28604],{"class":580},[34,154489,28568],{"class":181},[34,154491,1301],{"class":580},[34,154493,3567],{"class":50},[34,154495,154447],{"class":580},[34,154497,154450],{"class":580},[34,154499,154500],{"class":580}," NOWAIT",[34,154502,593],{"class":181},[34,154504,154505,154507,154509,154511,154513,154515,154517,154519,154521,154523,154525,154528],{"class":36,"line":895},[34,154506,28529],{"class":580},[34,154508,18083],{"class":580},[34,154510,28534],{"class":580},[34,154512,154149],{"class":181},[34,154514,28604],{"class":580},[34,154516,28568],{"class":181},[34,154518,1301],{"class":580},[34,154520,3567],{"class":50},[34,154522,154447],{"class":580},[34,154524,154450],{"class":580},[34,154526,154527],{"class":580}," SKIP",[34,154529,154530],{"class":181}," LOCKED;\n",[34,154532,154533],{"class":36,"line":904},[34,154534,62],{"emptyLinePlaceholder":61},[34,154536,154537],{"class":36,"line":915},[34,154538,154539],{"class":40},"-- Table locking\n",[34,154541,154542,154545,154548],{"class":36,"line":927},[34,154543,154544],{"class":181},"LOCK TABLES users ",[34,154546,154547],{"class":580},"READ",[34,154549,154550],{"class":181},", orders WRITE;\n",[34,154552,154553,154556],{"class":36,"line":932},[34,154554,154555],{"class":580},"UNLOCK",[34,154557,154558],{"class":181}," TABLES;\n",[388,154560,25257],{},{"title":30,"searchDepth":44,"depth":44,"links":154562},[154563],{"id":154125,"depth":44,"text":152668},"Transactions & Locking in MySQL.",{},{"title":152668,"description":154564},"mysql/transactions-locking",[149990,28650,28337,150047],"SNnEddtNuMt31i-9vdtTCNiS8l2KutL-0s8P12U9gUE",{"id":154571,"title":152686,"body":154572,"date":402,"description":154901,"extension":404,"meta":154902,"navigation":61,"order":706,"path":152685,"seo":154903,"stem":154904,"subject":149990,"tags":154905,"__hash__":154906},"topics/mysql/triggers.md",{"type":8,"value":154573,"toc":154898},[154574,154577,154896],[11,154575,152686],{"id":154576},"triggers",[25,154578,154580],{"className":28335,"code":154579,"language":28337,"meta":30,"style":30},"-- Create trigger (BEFORE INSERT)\nDELIMITER //\nCREATE TRIGGER before_user_insert\nBEFORE INSERT ON users\nFOR EACH ROW\nBEGIN\n  SET NEW.created_at = NOW();\n  SET NEW.email = LOWER(NEW.email);\nEND //\nDELIMITER ;\n\n-- Create trigger (AFTER INSERT)\nDELIMITER //\nCREATE TRIGGER after_order_insert\nAFTER INSERT ON orders\nFOR EACH ROW\nBEGIN\n  UPDATE users SET order_count = order_count + 1 WHERE id = NEW.user_id;\nEND //\nDELIMITER ;\n\n-- Create trigger (BEFORE UPDATE)\nDELIMITER //\nCREATE TRIGGER before_user_update\nBEFORE UPDATE ON users\nFOR EACH ROW\nBEGIN\n  SET NEW.updated_at = NOW();\nEND //\nDELIMITER ;\n\n-- Drop trigger\nDROP TRIGGER IF EXISTS before_user_insert;\n\n-- Show triggers\nSHOW TRIGGERS;\nSHOW TRIGGERS LIKE 'users';\n",[20,154581,154582,154587,154593,154603,154616,154627,154631,154650,154676,154682,154686,154690,154695,154701,154710,154721,154729,154733,154766,154772,154776,154780,154785,154791,154800,154810,154818,154822,154839,154845,154849,154853,154858,154871,154875,154880,154885],{"__ignoreMap":30},[34,154583,154584],{"class":36,"line":37},[34,154585,154586],{"class":40},"-- Create trigger (BEFORE INSERT)\n",[34,154588,154589,154591],{"class":36,"line":44},[34,154590,153193],{"class":181},[34,154592,153196],{"class":580},[34,154594,154595,154597,154600],{"class":36,"line":58},[34,154596,28349],{"class":580},[34,154598,154599],{"class":580}," TRIGGER",[34,154601,154602],{"class":47}," before_user_insert\n",[34,154604,154605,154608,154611,154613],{"class":36,"line":65},[34,154606,154607],{"class":580},"BEFORE",[34,154609,154610],{"class":580}," INSERT",[34,154612,151147],{"class":580},[34,154614,154615],{"class":181}," users\n",[34,154617,154618,154621,154624],{"class":36,"line":71},[34,154619,154620],{"class":580},"FOR",[34,154622,154623],{"class":181}," EACH ",[34,154625,154626],{"class":580},"ROW\n",[34,154628,154629],{"class":36,"line":77},[34,154630,153221],{"class":580},[34,154632,154633,154636,154639,154641,154644,154646,154648],{"class":36,"line":82},[34,154634,154635],{"class":580},"  SET",[34,154637,154638],{"class":50}," NEW",[34,154640,151],{"class":181},[34,154642,154643],{"class":50},"created_at",[34,154645,683],{"class":580},[34,154647,151727],{"class":580},[34,154649,851],{"class":181},[34,154651,154652,154654,154656,154658,154660,154662,154665,154667,154670,154672,154674],{"class":36,"line":88},[34,154653,154635],{"class":580},[34,154655,154638],{"class":50},[34,154657,151],{"class":181},[34,154659,59283],{"class":50},[34,154661,683],{"class":580},[34,154663,154664],{"class":50}," LOWER",[34,154666,1607],{"class":181},[34,154668,154669],{"class":50},"NEW",[34,154671,151],{"class":181},[34,154673,59283],{"class":50},[34,154675,1586],{"class":181},[34,154677,154678,154680],{"class":36,"line":242},[34,154679,153252],{"class":580},[34,154681,153255],{"class":580},[34,154683,154684],{"class":36,"line":250},[34,154685,153260],{"class":181},[34,154687,154688],{"class":36,"line":263},[34,154689,62],{"emptyLinePlaceholder":61},[34,154691,154692],{"class":36,"line":275},[34,154693,154694],{"class":40},"-- Create trigger (AFTER INSERT)\n",[34,154696,154697,154699],{"class":36,"line":700},[34,154698,153193],{"class":181},[34,154700,153196],{"class":580},[34,154702,154703,154705,154707],{"class":36,"line":706},[34,154704,28349],{"class":580},[34,154706,154599],{"class":580},[34,154708,154709],{"class":47}," after_order_insert\n",[34,154711,154712,154714,154716,154718],{"class":36,"line":715},[34,154713,153922],{"class":580},[34,154715,154610],{"class":580},[34,154717,151147],{"class":580},[34,154719,154720],{"class":181}," orders\n",[34,154722,154723,154725,154727],{"class":36,"line":725},[34,154724,154620],{"class":580},[34,154726,154623],{"class":181},[34,154728,154626],{"class":580},[34,154730,154731],{"class":36,"line":734},[34,154732,153221],{"class":580},[34,154734,154735,154738,154740,154742,154744,154746,154748,154750,154752,154754,154756,154758,154760,154762,154764],{"class":36,"line":742},[34,154736,154737],{"class":580},"  UPDATE",[34,154739,28553],{"class":181},[34,154741,28556],{"class":580},[34,154743,153318],{"class":181},[34,154745,1301],{"class":580},[34,154747,153318],{"class":181},[34,154749,2940],{"class":580},[34,154751,3567],{"class":50},[34,154753,28565],{"class":580},[34,154755,28568],{"class":181},[34,154757,1301],{"class":580},[34,154759,154638],{"class":50},[34,154761,151],{"class":181},[34,154763,151801],{"class":50},[34,154765,593],{"class":181},[34,154767,154768,154770],{"class":36,"line":748},[34,154769,153252],{"class":580},[34,154771,153255],{"class":580},[34,154773,154774],{"class":36,"line":754},[34,154775,153260],{"class":181},[34,154777,154778],{"class":36,"line":759},[34,154779,62],{"emptyLinePlaceholder":61},[34,154781,154782],{"class":36,"line":771},[34,154783,154784],{"class":40},"-- Create trigger (BEFORE UPDATE)\n",[34,154786,154787,154789],{"class":36,"line":794},[34,154788,153193],{"class":181},[34,154790,153196],{"class":580},[34,154792,154793,154795,154797],{"class":36,"line":824},[34,154794,28349],{"class":580},[34,154796,154599],{"class":580},[34,154798,154799],{"class":47}," before_user_update\n",[34,154801,154802,154804,154806,154808],{"class":36,"line":830},[34,154803,154607],{"class":580},[34,154805,154450],{"class":580},[34,154807,151147],{"class":580},[34,154809,154615],{"class":181},[34,154811,154812,154814,154816],{"class":36,"line":839},[34,154813,154620],{"class":580},[34,154815,154623],{"class":181},[34,154817,154626],{"class":580},[34,154819,154820],{"class":36,"line":854},[34,154821,153221],{"class":580},[34,154823,154824,154826,154828,154830,154833,154835,154837],{"class":36,"line":860},[34,154825,154635],{"class":580},[34,154827,154638],{"class":50},[34,154829,151],{"class":181},[34,154831,154832],{"class":50},"updated_at",[34,154834,683],{"class":580},[34,154836,151727],{"class":580},[34,154838,851],{"class":181},[34,154840,154841,154843],{"class":36,"line":865},[34,154842,153252],{"class":580},[34,154844,153255],{"class":580},[34,154846,154847],{"class":36,"line":870},[34,154848,153260],{"class":181},[34,154850,154851],{"class":36,"line":876},[34,154852,62],{"emptyLinePlaceholder":61},[34,154854,154855],{"class":36,"line":885},[34,154856,154857],{"class":40},"-- Drop trigger\n",[34,154859,154860,154862,154864,154866,154868],{"class":36,"line":895},[34,154861,150706],{"class":580},[34,154863,154599],{"class":580},[34,154865,150683],{"class":580},[34,154867,150689],{"class":580},[34,154869,154870],{"class":181}," before_user_insert;\n",[34,154872,154873],{"class":36,"line":904},[34,154874,62],{"emptyLinePlaceholder":61},[34,154876,154877],{"class":36,"line":915},[34,154878,154879],{"class":40},"-- Show triggers\n",[34,154881,154882],{"class":36,"line":927},[34,154883,154884],{"class":181},"SHOW TRIGGERS;\n",[34,154886,154887,154890,154892,154894],{"class":36,"line":932},[34,154888,154889],{"class":181},"SHOW TRIGGERS ",[34,154891,153155],{"class":580},[34,154893,154095],{"class":54},[34,154895,593],{"class":181},[388,154897,104181],{},{"title":30,"searchDepth":44,"depth":44,"links":154899},[154900],{"id":154576,"depth":44,"text":152686},"Triggers in MySQL.",{},{"title":152686,"description":154901},"mysql/triggers",[149990,28650,28337,150047],"Y63hajY72G54OnM4INMAJRjcUi1H0_l1po33LrIXp68",{"id":154908,"title":152701,"body":154909,"date":402,"description":155550,"extension":404,"meta":155551,"navigation":61,"order":734,"path":152700,"seo":155552,"stem":155553,"subject":149990,"tags":155554,"__hash__":155555},"topics/mysql/useful-functions.md",{"type":8,"value":154910,"toc":155547},[154911,154914,155545],[11,154912,152701],{"id":154913},"useful-functions",[25,154915,154917],{"className":28335,"code":154916,"language":28337,"meta":30,"style":30},"-- String functions\nCONCAT(first_name, ' ', last_name)\nCONCAT_WS(' ', first_name, middle_name, last_name)  -- With separator\nUPPER(name)\nLOWER(name)\nLENGTH(name)           -- Bytes\nCHAR_LENGTH(name)      -- Characters\nTRIM(name)\nLTRIM(name)\nRTRIM(name)\nSUBSTRING(name, 1, 3)\nLEFT(name, 5)\nRIGHT(name, 5)\nREPLACE(name, 'old', 'new')\nREVERSE(name)\nLPAD(id, 5, '0')       -- Pad left\nRPAD(id, 5, '0')       -- Pad right\n\n-- Date functions\nNOW()\nCURDATE()\nCURTIME()\nDATE(datetime_col)\nTIME(datetime_col)\nYEAR(date_col)\nMONTH(date_col)\nDAY(date_col)\nHOUR(datetime_col)\nDATE_ADD(date, INTERVAL 1 DAY)\nDATE_SUB(date, INTERVAL 1 MONTH)\nDATEDIFF(date1, date2)\nDATE_FORMAT(date, '%Y-%m-%d')\nSTR_TO_DATE('2024-01-15', '%Y-%m-%d')\nUNIX_TIMESTAMP()\nFROM_UNIXTIME(timestamp)\n\n-- Numeric functions\nROUND(number, 2)\nCEIL(number)\nFLOOR(number)\nABS(number)\nMOD(number, divisor)\nRAND()                 -- Random 0-1\nFLOOR(RAND() * 100)    -- Random 0-99\n\n-- NULL handling\nCOALESCE(col1, col2, 'default')\nIFNULL(col, 'default')\nNULLIF(col1, col2)\n\n-- Conditional\nIF(condition, true_val, false_val)\nCASE \n  WHEN age \u003C 18 THEN 'Minor'\n  WHEN age \u003C 65 THEN 'Adult'\n  ELSE 'Senior'\nEND\n\n-- Aggregation\nGROUP_CONCAT(name SEPARATOR ', ')\nGROUP_CONCAT(DISTINCT name ORDER BY name SEPARATOR ', ')\n",[20,154918,154919,154924,154937,154950,154961,154972,154986,154998,155009,155020,155031,155050,155065,155080,155100,155111,155127,155143,155147,155152,155159,155164,155169,155176,155182,155189,155196,155203,155210,155227,155243,155251,155267,155281,155286,155296,155300,155305,155320,155329,155340,155351,155361,155371,155390,155394,155399,155412,155424,155432,155436,155441,155449,155456,155473,155489,155497,155502,155506,155511,155525],{"__ignoreMap":30},[34,154920,154921],{"class":36,"line":37},[34,154922,154923],{"class":40},"-- String functions\n",[34,154925,154926,154929,154932,154934],{"class":36,"line":44},[34,154927,154928],{"class":50},"CONCAT",[34,154930,154931],{"class":181},"(first_name, ",[34,154933,37895],{"class":54},[34,154935,154936],{"class":181},", last_name)\n",[34,154938,154939,154942,154944,154947],{"class":36,"line":58},[34,154940,154941],{"class":181},"CONCAT_WS(",[34,154943,37895],{"class":54},[34,154945,154946],{"class":181},", first_name, middle_name, last_name)  ",[34,154948,154949],{"class":40},"-- With separator\n",[34,154951,154952,154955,154957,154959],{"class":36,"line":65},[34,154953,154954],{"class":50},"UPPER",[34,154956,1607],{"class":181},[34,154958,178],{"class":580},[34,154960,3372],{"class":181},[34,154962,154963,154966,154968,154970],{"class":36,"line":71},[34,154964,154965],{"class":50},"LOWER",[34,154967,1607],{"class":181},[34,154969,178],{"class":580},[34,154971,3372],{"class":181},[34,154973,154974,154977,154979,154981,154983],{"class":36,"line":77},[34,154975,154976],{"class":580},"LENGTH",[34,154978,1607],{"class":181},[34,154980,178],{"class":580},[34,154982,75985],{"class":181},[34,154984,154985],{"class":40},"-- Bytes\n",[34,154987,154988,154991,154993,154995],{"class":36,"line":82},[34,154989,154990],{"class":181},"CHAR_LENGTH(",[34,154992,178],{"class":580},[34,154994,103662],{"class":181},[34,154996,154997],{"class":40},"-- Characters\n",[34,154999,155000,155003,155005,155007],{"class":36,"line":88},[34,155001,155002],{"class":50},"TRIM",[34,155004,1607],{"class":181},[34,155006,178],{"class":580},[34,155008,3372],{"class":181},[34,155010,155011,155014,155016,155018],{"class":36,"line":242},[34,155012,155013],{"class":50},"LTRIM",[34,155015,1607],{"class":181},[34,155017,178],{"class":580},[34,155019,3372],{"class":181},[34,155021,155022,155025,155027,155029],{"class":36,"line":250},[34,155023,155024],{"class":50},"RTRIM",[34,155026,1607],{"class":181},[34,155028,178],{"class":580},[34,155030,3372],{"class":181},[34,155032,155033,155036,155038,155040,155042,155044,155046,155048],{"class":36,"line":263},[34,155034,155035],{"class":50},"SUBSTRING",[34,155037,1607],{"class":181},[34,155039,178],{"class":580},[34,155041,1798],{"class":181},[34,155043,8318],{"class":50},[34,155045,1798],{"class":181},[34,155047,3162],{"class":50},[34,155049,3372],{"class":181},[34,155051,155052,155055,155057,155059,155061,155063],{"class":36,"line":275},[34,155053,155054],{"class":50},"LEFT",[34,155056,1607],{"class":181},[34,155058,178],{"class":580},[34,155060,1798],{"class":181},[34,155062,2778],{"class":50},[34,155064,3372],{"class":181},[34,155066,155067,155070,155072,155074,155076,155078],{"class":36,"line":700},[34,155068,155069],{"class":50},"RIGHT",[34,155071,1607],{"class":181},[34,155073,178],{"class":580},[34,155075,1798],{"class":181},[34,155077,2778],{"class":50},[34,155079,3372],{"class":181},[34,155081,155082,155084,155086,155088,155090,155093,155095,155098],{"class":36,"line":706},[34,155083,151610],{"class":50},[34,155085,1607],{"class":181},[34,155087,178],{"class":580},[34,155089,1798],{"class":181},[34,155091,155092],{"class":54},"'old'",[34,155094,1798],{"class":181},[34,155096,155097],{"class":54},"'new'",[34,155099,3372],{"class":181},[34,155101,155102,155105,155107,155109],{"class":36,"line":715},[34,155103,155104],{"class":50},"REVERSE",[34,155106,1607],{"class":181},[34,155108,178],{"class":580},[34,155110,3372],{"class":181},[34,155112,155113,155116,155118,155120,155122,155124],{"class":36,"line":725},[34,155114,155115],{"class":181},"LPAD(id, ",[34,155117,2778],{"class":50},[34,155119,1798],{"class":181},[34,155121,131118],{"class":54},[34,155123,104323],{"class":181},[34,155125,155126],{"class":40},"-- Pad left\n",[34,155128,155129,155132,155134,155136,155138,155140],{"class":36,"line":734},[34,155130,155131],{"class":181},"RPAD(id, ",[34,155133,2778],{"class":50},[34,155135,1798],{"class":181},[34,155137,131118],{"class":54},[34,155139,104323],{"class":181},[34,155141,155142],{"class":40},"-- Pad right\n",[34,155144,155145],{"class":36,"line":742},[34,155146,62],{"emptyLinePlaceholder":61},[34,155148,155149],{"class":36,"line":748},[34,155150,155151],{"class":40},"-- Date functions\n",[34,155153,155154,155157],{"class":36,"line":754},[34,155155,155156],{"class":580},"NOW",[34,155158,33899],{"class":181},[34,155160,155161],{"class":36,"line":759},[34,155162,155163],{"class":181},"CURDATE()\n",[34,155165,155166],{"class":36,"line":771},[34,155167,155168],{"class":181},"CURTIME()\n",[34,155170,155171,155173],{"class":36,"line":794},[34,155172,150503],{"class":580},[34,155174,155175],{"class":181},"(datetime_col)\n",[34,155177,155178,155180],{"class":36,"line":824},[34,155179,150511],{"class":580},[34,155181,155175],{"class":181},[34,155183,155184,155186],{"class":36,"line":830},[34,155185,150535],{"class":50},[34,155187,155188],{"class":181},"(date_col)\n",[34,155190,155191,155194],{"class":36,"line":839},[34,155192,155193],{"class":50},"MONTH",[34,155195,155188],{"class":181},[34,155197,155198,155201],{"class":36,"line":854},[34,155199,155200],{"class":50},"DAY",[34,155202,155188],{"class":181},[34,155204,155205,155208],{"class":36,"line":860},[34,155206,155207],{"class":580},"HOUR",[34,155209,155175],{"class":181},[34,155211,155212,155215,155217,155220,155222,155225],{"class":36,"line":865},[34,155213,155214],{"class":181},"DATE_ADD(",[34,155216,13390],{"class":580},[34,155218,155219],{"class":181},", INTERVAL ",[34,155221,8318],{"class":50},[34,155223,155224],{"class":580}," DAY",[34,155226,3372],{"class":181},[34,155228,155229,155232,155234,155236,155238,155241],{"class":36,"line":870},[34,155230,155231],{"class":181},"DATE_SUB(",[34,155233,13390],{"class":580},[34,155235,155219],{"class":181},[34,155237,8318],{"class":50},[34,155239,155240],{"class":580}," MONTH",[34,155242,3372],{"class":181},[34,155244,155245,155248],{"class":36,"line":876},[34,155246,155247],{"class":50},"DATEDIFF",[34,155249,155250],{"class":181},"(date1, date2)\n",[34,155252,155253,155256,155258,155260,155262,155265],{"class":36,"line":885},[34,155254,155255],{"class":580},"DATE_FORMAT",[34,155257,1607],{"class":181},[34,155259,13390],{"class":580},[34,155261,1798],{"class":181},[34,155263,155264],{"class":54},"'%Y-%m-%d'",[34,155266,3372],{"class":181},[34,155268,155269,155272,155275,155277,155279],{"class":36,"line":895},[34,155270,155271],{"class":181},"STR_TO_DATE(",[34,155273,155274],{"class":54},"'2024-01-15'",[34,155276,1798],{"class":181},[34,155278,155264],{"class":54},[34,155280,3372],{"class":181},[34,155282,155283],{"class":36,"line":904},[34,155284,155285],{"class":181},"UNIX_TIMESTAMP()\n",[34,155287,155288,155291,155294],{"class":36,"line":915},[34,155289,155290],{"class":181},"FROM_UNIXTIME(",[34,155292,155293],{"class":580},"timestamp",[34,155295,3372],{"class":181},[34,155297,155298],{"class":36,"line":927},[34,155299,62],{"emptyLinePlaceholder":61},[34,155301,155302],{"class":36,"line":932},[34,155303,155304],{"class":40},"-- Numeric functions\n",[34,155306,155307,155310,155312,155314,155316,155318],{"class":36,"line":944},[34,155308,155309],{"class":50},"ROUND",[34,155311,1607],{"class":181},[34,155313,130478],{"class":580},[34,155315,1798],{"class":181},[34,155317,8324],{"class":50},[34,155319,3372],{"class":181},[34,155321,155322,155325,155327],{"class":36,"line":966},[34,155323,155324],{"class":181},"CEIL(",[34,155326,130478],{"class":580},[34,155328,3372],{"class":181},[34,155330,155331,155334,155336,155338],{"class":36,"line":1948},[34,155332,155333],{"class":50},"FLOOR",[34,155335,1607],{"class":181},[34,155337,130478],{"class":580},[34,155339,3372],{"class":181},[34,155341,155342,155345,155347,155349],{"class":36,"line":1953},[34,155343,155344],{"class":50},"ABS",[34,155346,1607],{"class":181},[34,155348,130478],{"class":580},[34,155350,3372],{"class":181},[34,155352,155353,155356,155358],{"class":36,"line":3616},[34,155354,155355],{"class":181},"MOD(",[34,155357,130478],{"class":580},[34,155359,155360],{"class":181},", divisor)\n",[34,155362,155363,155366,155368],{"class":36,"line":3622},[34,155364,155365],{"class":50},"RAND",[34,155367,134450],{"class":181},[34,155369,155370],{"class":40},"-- Random 0-1\n",[34,155372,155373,155375,155377,155379,155381,155383,155385,155387],{"class":36,"line":3642},[34,155374,155333],{"class":50},[34,155376,1607],{"class":181},[34,155378,155365],{"class":50},[34,155380,672],{"class":181},[34,155382,4289],{"class":580},[34,155384,25168],{"class":50},[34,155386,103888],{"class":181},[34,155388,155389],{"class":40},"-- Random 0-99\n",[34,155391,155392],{"class":36,"line":3657},[34,155393,62],{"emptyLinePlaceholder":61},[34,155395,155396],{"class":36,"line":3663},[34,155397,155398],{"class":40},"-- NULL handling\n",[34,155400,155401,155404,155407,155410],{"class":36,"line":3669},[34,155402,155403],{"class":50},"COALESCE",[34,155405,155406],{"class":181},"(col1, col2, ",[34,155408,155409],{"class":54},"'default'",[34,155411,3372],{"class":181},[34,155413,155414,155417,155420,155422],{"class":36,"line":3675},[34,155415,155416],{"class":580},"IFNULL",[34,155418,155419],{"class":181},"(col, ",[34,155421,155409],{"class":54},[34,155423,3372],{"class":181},[34,155425,155426,155429],{"class":36,"line":3693},[34,155427,155428],{"class":50},"NULLIF",[34,155430,155431],{"class":181},"(col1, col2)\n",[34,155433,155434],{"class":36,"line":3707},[34,155435,62],{"emptyLinePlaceholder":61},[34,155437,155438],{"class":36,"line":3712},[34,155439,155440],{"class":40},"-- Conditional\n",[34,155442,155443,155446],{"class":36,"line":3717},[34,155444,155445],{"class":580},"IF",[34,155447,155448],{"class":181},"(condition, true_val, false_val)\n",[34,155450,155451,155454],{"class":36,"line":25776},[34,155452,155453],{"class":580},"CASE",[34,155455,526],{"class":181},[34,155457,155458,155461,155463,155465,155467,155470],{"class":36,"line":49902},[34,155459,155460],{"class":580},"  WHEN",[34,155462,25065],{"class":181},[34,155464,815],{"class":580},[34,155466,18845],{"class":50},[34,155468,155469],{"class":580}," THEN",[34,155471,155472],{"class":54}," 'Minor'\n",[34,155474,155475,155477,155479,155481,155484,155486],{"class":36,"line":52569},[34,155476,155460],{"class":580},[34,155478,25065],{"class":181},[34,155480,815],{"class":580},[34,155482,155483],{"class":50}," 65",[34,155485,155469],{"class":580},[34,155487,155488],{"class":54}," 'Adult'\n",[34,155490,155491,155494],{"class":36,"line":52574},[34,155492,155493],{"class":580},"  ELSE",[34,155495,155496],{"class":54}," 'Senior'\n",[34,155498,155499],{"class":36,"line":52580},[34,155500,155501],{"class":580},"END\n",[34,155503,155504],{"class":36,"line":52608},[34,155505,62],{"emptyLinePlaceholder":61},[34,155507,155508],{"class":36,"line":52625},[34,155509,155510],{"class":40},"-- Aggregation\n",[34,155512,155513,155516,155518,155521,155523],{"class":36,"line":52636},[34,155514,155515],{"class":181},"GROUP_CONCAT(",[34,155517,178],{"class":580},[34,155519,155520],{"class":181}," SEPARATOR ",[34,155522,71024],{"class":54},[34,155524,3372],{"class":181},[34,155526,155527,155529,155532,155534,155537,155539,155541,155543],{"class":36,"line":52645},[34,155528,155515],{"class":181},[34,155530,155531],{"class":580},"DISTINCT",[34,155533,12323],{"class":580},[34,155535,155536],{"class":580}," ORDER BY",[34,155538,12323],{"class":580},[34,155540,155520],{"class":181},[34,155542,71024],{"class":54},[34,155544,3372],{"class":181},[388,155546,143036],{},{"title":30,"searchDepth":44,"depth":44,"links":155548},[155549],{"id":154913,"depth":44,"text":152701},"Useful Functions in MySQL.",{},{"title":152701,"description":155550},"mysql/useful-functions",[149990,28650,28337,150047],"ZOXAeVdJqd4av9zYdy8YlLdVzyLeMQskf3SG3w4EDns",{"id":155557,"title":152707,"body":155558,"date":402,"description":155985,"extension":404,"meta":155986,"navigation":61,"order":742,"path":152706,"seo":155987,"stem":155988,"subject":149990,"tags":155989,"__hash__":155990},"topics/mysql/useful-queries.md",{"type":8,"value":155559,"toc":155982},[155560,155563,155980],[11,155561,152707],{"id":155562},"useful-queries",[25,155564,155566],{"className":28335,"code":155565,"language":28337,"meta":30,"style":30},"-- Generate UUID\nSELECT UUID();\n\n-- Get auto increment value\nSELECT LAST_INSERT_ID();\n\n-- Find duplicates\nSELECT email, COUNT(*) as count\nFROM users\nGROUP BY email\nHAVING COUNT(*) > 1;\n\n-- Delete duplicates (keep lowest id)\nDELETE u1 FROM users u1\nINNER JOIN users u2\nWHERE u1.id > u2.id AND u1.email = u2.email;\n\n-- Pagination\nSELECT * FROM users ORDER BY id LIMIT 10 OFFSET 20;\n\n-- Get nth row\nSELECT * FROM users ORDER BY id LIMIT 1 OFFSET 4;  -- 5th row\n\n-- Random row\nSELECT * FROM users ORDER BY RAND() LIMIT 1;\n\n-- Copy table structure\nCREATE TABLE users_backup LIKE users;\n\n-- Copy table with data\nCREATE TABLE users_backup AS SELECT * FROM users;\n\n-- Swap column values\nUPDATE users SET \n  first_name = (@temp := first_name),\n  first_name = last_name,\n  last_name = @temp;\n\n-- Show table columns\nSELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT\nFROM INFORMATION_SCHEMA.COLUMNS\nWHERE TABLE_SCHEMA = 'myapp' AND TABLE_NAME = 'users';\n",[20,155567,155568,155573,155580,155584,155589,155596,155600,155605,155625,155631,155638,155657,155661,155666,155678,155686,155725,155729,155734,155760,155764,155769,155796,155800,155805,155828,155832,155837,155850,155854,155859,155877,155881,155886,155896,155911,155920,155930,155934,155939,155946,155958],{"__ignoreMap":30},[34,155569,155570],{"class":36,"line":37},[34,155571,155572],{"class":40},"-- Generate UUID\n",[34,155574,155575,155577],{"class":36,"line":44},[34,155576,28529],{"class":580},[34,155578,155579],{"class":181}," UUID();\n",[34,155581,155582],{"class":36,"line":58},[34,155583,62],{"emptyLinePlaceholder":61},[34,155585,155586],{"class":36,"line":65},[34,155587,155588],{"class":40},"-- Get auto increment value\n",[34,155590,155591,155593],{"class":36,"line":71},[34,155592,28529],{"class":580},[34,155594,155595],{"class":181}," LAST_INSERT_ID();\n",[34,155597,155598],{"class":36,"line":77},[34,155599,62],{"emptyLinePlaceholder":61},[34,155601,155602],{"class":36,"line":82},[34,155603,155604],{"class":40},"-- Find duplicates\n",[34,155606,155607,155609,155612,155614,155616,155618,155620,155622],{"class":36,"line":88},[34,155608,28529],{"class":580},[34,155610,155611],{"class":181}," email, ",[34,155613,29170],{"class":50},[34,155615,1607],{"class":181},[34,155617,4289],{"class":580},[34,155619,4817],{"class":181},[34,155621,74548],{"class":580},[34,155623,155624],{"class":181}," count\n",[34,155626,155627,155629],{"class":36,"line":242},[34,155628,29179],{"class":580},[34,155630,154615],{"class":181},[34,155632,155633,155635],{"class":36,"line":250},[34,155634,29184],{"class":580},[34,155636,155637],{"class":181}," email\n",[34,155639,155640,155643,155645,155647,155649,155651,155653,155655],{"class":36,"line":263},[34,155641,155642],{"class":580},"HAVING",[34,155644,153333],{"class":50},[34,155646,1607],{"class":181},[34,155648,4289],{"class":580},[34,155650,4817],{"class":181},[34,155652,5691],{"class":580},[34,155654,3567],{"class":50},[34,155656,593],{"class":181},[34,155658,155659],{"class":36,"line":275},[34,155660,62],{"emptyLinePlaceholder":61},[34,155662,155663],{"class":36,"line":700},[34,155664,155665],{"class":40},"-- Delete duplicates (keep lowest id)\n",[34,155667,155668,155670,155673,155675],{"class":36,"line":706},[34,155669,28597],{"class":580},[34,155671,155672],{"class":181}," u1 ",[34,155674,29179],{"class":580},[34,155676,155677],{"class":181}," users u1\n",[34,155679,155680,155683],{"class":36,"line":715},[34,155681,155682],{"class":580},"INNER JOIN",[34,155684,155685],{"class":181}," users u2\n",[34,155687,155688,155690,155693,155695,155697,155699,155702,155704,155706,155709,155711,155713,155715,155717,155719,155721,155723],{"class":36,"line":725},[34,155689,28604],{"class":580},[34,155691,155692],{"class":50}," u1",[34,155694,151],{"class":181},[34,155696,3885],{"class":50},[34,155698,9009],{"class":580},[34,155700,155701],{"class":50}," u2",[34,155703,151],{"class":181},[34,155705,3885],{"class":50},[34,155707,155708],{"class":580}," AND",[34,155710,155692],{"class":50},[34,155712,151],{"class":181},[34,155714,59283],{"class":50},[34,155716,683],{"class":580},[34,155718,155701],{"class":50},[34,155720,151],{"class":181},[34,155722,59283],{"class":50},[34,155724,593],{"class":181},[34,155726,155727],{"class":36,"line":734},[34,155728,62],{"emptyLinePlaceholder":61},[34,155730,155731],{"class":36,"line":742},[34,155732,155733],{"class":40},"-- Pagination\n",[34,155735,155736,155738,155740,155742,155744,155746,155748,155751,155753,155756,155758],{"class":36,"line":748},[34,155737,28529],{"class":580},[34,155739,18083],{"class":580},[34,155741,28534],{"class":580},[34,155743,28553],{"class":181},[34,155745,29069],{"class":580},[34,155747,28568],{"class":181},[34,155749,155750],{"class":580},"LIMIT",[34,155752,13123],{"class":50},[34,155754,155755],{"class":181}," OFFSET ",[34,155757,24945],{"class":50},[34,155759,593],{"class":181},[34,155761,155762],{"class":36,"line":754},[34,155763,62],{"emptyLinePlaceholder":61},[34,155765,155766],{"class":36,"line":759},[34,155767,155768],{"class":40},"-- Get nth row\n",[34,155770,155771,155773,155775,155777,155779,155781,155783,155785,155787,155789,155791,155793],{"class":36,"line":771},[34,155772,28529],{"class":580},[34,155774,18083],{"class":580},[34,155776,28534],{"class":580},[34,155778,28553],{"class":181},[34,155780,29069],{"class":580},[34,155782,28568],{"class":181},[34,155784,155750],{"class":580},[34,155786,3567],{"class":50},[34,155788,155755],{"class":181},[34,155790,18010],{"class":50},[34,155792,124981],{"class":181},[34,155794,155795],{"class":40},"-- 5th row\n",[34,155797,155798],{"class":36,"line":794},[34,155799,62],{"emptyLinePlaceholder":61},[34,155801,155802],{"class":36,"line":824},[34,155803,155804],{"class":40},"-- Random row\n",[34,155806,155807,155809,155811,155813,155815,155817,155820,155822,155824,155826],{"class":36,"line":830},[34,155808,28529],{"class":580},[34,155810,18083],{"class":580},[34,155812,28534],{"class":580},[34,155814,28553],{"class":181},[34,155816,29069],{"class":580},[34,155818,155819],{"class":50}," RAND",[34,155821,672],{"class":181},[34,155823,155750],{"class":580},[34,155825,3567],{"class":50},[34,155827,593],{"class":181},[34,155829,155830],{"class":36,"line":839},[34,155831,62],{"emptyLinePlaceholder":61},[34,155833,155834],{"class":36,"line":854},[34,155835,155836],{"class":40},"-- Copy table structure\n",[34,155838,155839,155841,155843,155846,155848],{"class":36,"line":860},[34,155840,28349],{"class":580},[34,155842,28422],{"class":580},[34,155844,155845],{"class":47}," users_backup",[34,155847,150267],{"class":580},[34,155849,4114],{"class":181},[34,155851,155852],{"class":36,"line":865},[34,155853,62],{"emptyLinePlaceholder":61},[34,155855,155856],{"class":36,"line":870},[34,155857,155858],{"class":40},"-- Copy table with data\n",[34,155860,155861,155863,155865,155867,155869,155871,155873,155875],{"class":36,"line":876},[34,155862,28349],{"class":580},[34,155864,28422],{"class":580},[34,155866,155845],{"class":47},[34,155868,152584],{"class":580},[34,155870,152793],{"class":580},[34,155872,18083],{"class":580},[34,155874,28534],{"class":580},[34,155876,4114],{"class":181},[34,155878,155879],{"class":36,"line":885},[34,155880,62],{"emptyLinePlaceholder":61},[34,155882,155883],{"class":36,"line":895},[34,155884,155885],{"class":40},"-- Swap column values\n",[34,155887,155888,155890,155892,155894],{"class":36,"line":904},[34,155889,28550],{"class":580},[34,155891,28553],{"class":181},[34,155893,28556],{"class":580},[34,155895,526],{"class":181},[34,155897,155898,155901,155903,155906,155908],{"class":36,"line":915},[34,155899,155900],{"class":181},"  first_name ",[34,155902,1301],{"class":580},[34,155904,155905],{"class":181}," (@temp :",[34,155907,1301],{"class":580},[34,155909,155910],{"class":181}," first_name),\n",[34,155912,155913,155915,155917],{"class":36,"line":927},[34,155914,155900],{"class":181},[34,155916,1301],{"class":580},[34,155918,155919],{"class":181}," last_name,\n",[34,155921,155922,155925,155927],{"class":36,"line":932},[34,155923,155924],{"class":181},"  last_name ",[34,155926,1301],{"class":580},[34,155928,155929],{"class":181}," @temp;\n",[34,155931,155932],{"class":36,"line":944},[34,155933,62],{"emptyLinePlaceholder":61},[34,155935,155936],{"class":36,"line":966},[34,155937,155938],{"class":40},"-- Show table columns\n",[34,155940,155941,155943],{"class":36,"line":1948},[34,155942,28529],{"class":580},[34,155944,155945],{"class":181}," COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT\n",[34,155947,155948,155950,155953,155955],{"class":36,"line":1953},[34,155949,29179],{"class":580},[34,155951,155952],{"class":50}," INFORMATION_SCHEMA",[34,155954,151],{"class":181},[34,155956,155957],{"class":50},"COLUMNS\n",[34,155959,155960,155962,155965,155967,155969,155971,155974,155976,155978],{"class":36,"line":3616},[34,155961,28604],{"class":580},[34,155963,155964],{"class":181}," TABLE_SCHEMA ",[34,155966,1301],{"class":580},[34,155968,152980],{"class":54},[34,155970,155708],{"class":580},[34,155972,155973],{"class":181}," TABLE_NAME ",[34,155975,1301],{"class":580},[34,155977,154095],{"class":54},[34,155979,593],{"class":181},[388,155981,19339],{},{"title":30,"searchDepth":44,"depth":44,"links":155983},[155984],{"id":155562,"depth":44,"text":152707},"Useful Queries in MySQL.",{},{"title":152707,"description":155985},"mysql/useful-queries",[149990,28650,28337,150047],"x-Yo7JS-vUcOLYk1lSvTGhcgYbTXRDw36H0ttGDx8ms",{"id":155992,"title":152636,"body":155993,"date":402,"description":156396,"extension":404,"meta":156397,"navigation":61,"order":65,"path":152635,"seo":156398,"stem":156399,"subject":149990,"tags":156400,"__hash__":156401},"topics/mysql/user-privilege-management.md",{"type":8,"value":155994,"toc":156393},[155995,155998,156391],[11,155996,152636],{"id":155997},"user-privilege-management",[25,155999,156001],{"className":28335,"code":156000,"language":28337,"meta":30,"style":30},"-- Create user\nCREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';\nCREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';  -- Any host\n\n-- Grant privileges\nGRANT ALL PRIVILEGES ON myapp.* TO 'myuser'@'localhost';\nGRANT SELECT, INSERT, UPDATE ON myapp.* TO 'myuser'@'localhost';\nGRANT SELECT ON myapp.users TO 'myuser'@'localhost';\nGRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;\n\n-- Apply privilege changes\nFLUSH PRIVILEGES;\n\n-- Revoke privileges\nREVOKE ALL PRIVILEGES ON myapp.* FROM 'myuser'@'localhost';\nREVOKE INSERT ON myapp.* FROM 'myuser'@'localhost';\n\n-- Show grants\nSHOW GRANTS FOR 'myuser'@'localhost';\nSHOW GRANTS FOR CURRENT_USER();\n\n-- Change password\nALTER USER 'myuser'@'localhost' IDENTIFIED BY 'newpassword';\nSET PASSWORD FOR 'myuser'@'localhost' = 'newpassword';\n\n-- Drop user\nDROP USER IF EXISTS 'myuser'@'localhost';\n\n-- List users\nSELECT user, host FROM mysql.user;\n",[20,156002,156003,156008,156036,156062,156066,156071,156097,156128,156152,156184,156188,156193,156198,156202,156207,156230,156252,156256,156261,156276,156287,156291,156296,156317,156338,156342,156347,156365,156369,156374],{"__ignoreMap":30},[34,156004,156005],{"class":36,"line":37},[34,156006,156007],{"class":40},"-- Create user\n",[34,156009,156010,156012,156015,156017,156020,156023,156025,156028,156031,156034],{"class":36,"line":44},[34,156011,28349],{"class":580},[34,156013,156014],{"class":580}," USER",[34,156016,105073],{"class":181},[34,156018,156019],{"class":47},"myuser",[34,156021,156022],{"class":181},"'@",[34,156024,129094],{"class":54},[34,156026,156027],{"class":181}," IDENTIFIED ",[34,156029,156030],{"class":580},"BY",[34,156032,156033],{"class":54}," 'mypassword'",[34,156035,593],{"class":181},[34,156037,156038,156040,156042,156044,156046,156048,156051,156053,156055,156057,156059],{"class":36,"line":58},[34,156039,28349],{"class":580},[34,156041,156014],{"class":580},[34,156043,105073],{"class":181},[34,156045,156019],{"class":47},[34,156047,156022],{"class":181},[34,156049,156050],{"class":54},"'%'",[34,156052,156027],{"class":181},[34,156054,156030],{"class":580},[34,156056,156033],{"class":54},[34,156058,124981],{"class":181},[34,156060,156061],{"class":40},"-- Any host\n",[34,156063,156064],{"class":36,"line":65},[34,156065,62],{"emptyLinePlaceholder":61},[34,156067,156068],{"class":36,"line":71},[34,156069,156070],{"class":40},"-- Grant privileges\n",[34,156072,156073,156076,156079,156081,156084,156086,156088,156091,156093,156095],{"class":36,"line":77},[34,156074,156075],{"class":580},"GRANT",[34,156077,156078],{"class":181}," ALL PRIVILEGES ",[34,156080,150819],{"class":580},[34,156082,156083],{"class":181}," myapp.",[34,156085,4289],{"class":580},[34,156087,154310],{"class":580},[34,156089,156090],{"class":54}," 'myuser'",[34,156092,607],{"class":181},[34,156094,129094],{"class":54},[34,156096,593],{"class":181},[34,156098,156099,156101,156103,156105,156108,156110,156112,156114,156116,156118,156120,156122,156124,156126],{"class":36,"line":82},[34,156100,156075],{"class":580},[34,156102,152793],{"class":580},[34,156104,1798],{"class":181},[34,156106,156107],{"class":580},"INSERT",[34,156109,1798],{"class":181},[34,156111,28550],{"class":580},[34,156113,151147],{"class":580},[34,156115,156083],{"class":181},[34,156117,4289],{"class":580},[34,156119,154310],{"class":580},[34,156121,156090],{"class":54},[34,156123,607],{"class":181},[34,156125,129094],{"class":54},[34,156127,593],{"class":181},[34,156129,156130,156132,156134,156136,156138,156140,156142,156144,156146,156148,156150],{"class":36,"line":88},[34,156131,156075],{"class":580},[34,156133,152793],{"class":580},[34,156135,151147],{"class":580},[34,156137,56055],{"class":50},[34,156139,151],{"class":181},[34,156141,4097],{"class":50},[34,156143,154310],{"class":580},[34,156145,156090],{"class":54},[34,156147,607],{"class":181},[34,156149,129094],{"class":54},[34,156151,593],{"class":181},[34,156153,156154,156156,156158,156160,156162,156164,156166,156168,156170,156172,156174,156176,156179,156182],{"class":36,"line":242},[34,156155,156075],{"class":580},[34,156157,156078],{"class":181},[34,156159,150819],{"class":580},[34,156161,18083],{"class":580},[34,156163,151],{"class":181},[34,156165,4289],{"class":580},[34,156167,154310],{"class":580},[34,156169,131649],{"class":54},[34,156171,607],{"class":181},[34,156173,129094],{"class":54},[34,156175,151104],{"class":580},[34,156177,156178],{"class":580}," GRANT",[34,156180,156181],{"class":580}," OPTION",[34,156183,593],{"class":181},[34,156185,156186],{"class":36,"line":250},[34,156187,62],{"emptyLinePlaceholder":61},[34,156189,156190],{"class":36,"line":263},[34,156191,156192],{"class":40},"-- Apply privilege changes\n",[34,156194,156195],{"class":36,"line":275},[34,156196,156197],{"class":181},"FLUSH PRIVILEGES;\n",[34,156199,156200],{"class":36,"line":700},[34,156201,62],{"emptyLinePlaceholder":61},[34,156203,156204],{"class":36,"line":706},[34,156205,156206],{"class":40},"-- Revoke privileges\n",[34,156208,156209,156212,156214,156216,156218,156220,156222,156224,156226,156228],{"class":36,"line":715},[34,156210,156211],{"class":580},"REVOKE",[34,156213,156078],{"class":181},[34,156215,150819],{"class":580},[34,156217,156083],{"class":181},[34,156219,4289],{"class":580},[34,156221,28534],{"class":580},[34,156223,156090],{"class":54},[34,156225,607],{"class":181},[34,156227,129094],{"class":54},[34,156229,593],{"class":181},[34,156231,156232,156234,156236,156238,156240,156242,156244,156246,156248,156250],{"class":36,"line":725},[34,156233,156211],{"class":580},[34,156235,154610],{"class":580},[34,156237,151147],{"class":580},[34,156239,156083],{"class":181},[34,156241,4289],{"class":580},[34,156243,28534],{"class":580},[34,156245,156090],{"class":54},[34,156247,607],{"class":181},[34,156249,129094],{"class":54},[34,156251,593],{"class":181},[34,156253,156254],{"class":36,"line":734},[34,156255,62],{"emptyLinePlaceholder":61},[34,156257,156258],{"class":36,"line":742},[34,156259,156260],{"class":40},"-- Show grants\n",[34,156262,156263,156266,156268,156270,156272,156274],{"class":36,"line":748},[34,156264,156265],{"class":181},"SHOW GRANTS ",[34,156267,154620],{"class":580},[34,156269,156090],{"class":54},[34,156271,607],{"class":181},[34,156273,129094],{"class":54},[34,156275,593],{"class":181},[34,156277,156278,156280,156282,156285],{"class":36,"line":754},[34,156279,156265],{"class":181},[34,156281,154620],{"class":580},[34,156283,156284],{"class":50}," CURRENT_USER",[34,156286,851],{"class":181},[34,156288,156289],{"class":36,"line":759},[34,156290,62],{"emptyLinePlaceholder":61},[34,156292,156293],{"class":36,"line":771},[34,156294,156295],{"class":40},"-- Change password\n",[34,156297,156298,156300,156302,156304,156306,156308,156310,156312,156315],{"class":36,"line":794},[34,156299,151213],{"class":580},[34,156301,156014],{"class":580},[34,156303,156090],{"class":54},[34,156305,607],{"class":181},[34,156307,129094],{"class":54},[34,156309,156027],{"class":181},[34,156311,156030],{"class":580},[34,156313,156314],{"class":54}," 'newpassword'",[34,156316,593],{"class":181},[34,156318,156319,156321,156324,156326,156328,156330,156332,156334,156336],{"class":36,"line":824},[34,156320,28556],{"class":580},[34,156322,156323],{"class":580}," PASSWORD",[34,156325,154447],{"class":580},[34,156327,156090],{"class":54},[34,156329,607],{"class":181},[34,156331,129094],{"class":54},[34,156333,683],{"class":580},[34,156335,156314],{"class":54},[34,156337,593],{"class":181},[34,156339,156340],{"class":36,"line":830},[34,156341,62],{"emptyLinePlaceholder":61},[34,156343,156344],{"class":36,"line":839},[34,156345,156346],{"class":40},"-- Drop user\n",[34,156348,156349,156351,156353,156355,156357,156359,156361,156363],{"class":36,"line":854},[34,156350,150706],{"class":580},[34,156352,156014],{"class":580},[34,156354,150683],{"class":580},[34,156356,150689],{"class":580},[34,156358,156090],{"class":54},[34,156360,607],{"class":181},[34,156362,129094],{"class":54},[34,156364,593],{"class":181},[34,156366,156367],{"class":36,"line":860},[34,156368,62],{"emptyLinePlaceholder":61},[34,156370,156371],{"class":36,"line":865},[34,156372,156373],{"class":40},"-- List users\n",[34,156375,156376,156378,156381,156383,156385,156387,156389],{"class":36,"line":870},[34,156377,28529],{"class":580},[34,156379,156380],{"class":181}," user, host ",[34,156382,29179],{"class":580},[34,156384,150026],{"class":50},[34,156386,151],{"class":181},[34,156388,3945],{"class":50},[34,156390,593],{"class":181},[388,156392,34928],{},{"title":30,"searchDepth":44,"depth":44,"links":156394},[156395],{"id":155997,"depth":44,"text":152636},"User & Privilege Management in MySQL.",{},{"title":152636,"description":156396},"mysql/user-privilege-management",[149990,28650,28337,150047],"2CVbH0mqbJd5kQzD2K2dkTYc2WcUMFOO7TGSGE9Akss",{"id":156403,"title":74091,"body":156404,"date":402,"description":156574,"extension":404,"meta":156575,"navigation":61,"order":715,"path":152691,"seo":156576,"stem":156577,"subject":149990,"tags":156578,"__hash__":156579},"topics/mysql/views.md",{"type":8,"value":156405,"toc":156571},[156406,156408,156569],[11,156407,74091],{"id":32120},[25,156409,156411],{"className":28335,"code":156410,"language":28337,"meta":30,"style":30},"-- Create view\nCREATE VIEW active_users AS\nSELECT id, name, email FROM users WHERE status = 'active';\n\n-- Create or replace view\nCREATE OR REPLACE VIEW active_users AS\nSELECT id, name, email, created_at FROM users WHERE status = 'active';\n\n-- Query view\nSELECT * FROM active_users;\n\n-- Drop view\nDROP VIEW IF EXISTS active_users;\n\n-- Show views\nSHOW FULL TABLES WHERE Table_type = 'VIEW';\n",[20,156412,156413,156418,156431,156457,156461,156466,156477,156502,156506,156511,156522,156526,156531,156543,156547,156552],{"__ignoreMap":30},[34,156414,156415],{"class":36,"line":37},[34,156416,156417],{"class":40},"-- Create view\n",[34,156419,156420,156422,156425,156428],{"class":36,"line":44},[34,156421,28349],{"class":580},[34,156423,156424],{"class":580}," VIEW",[34,156426,156427],{"class":47}," active_users",[34,156429,156430],{"class":580}," AS\n",[34,156432,156433,156435,156438,156440,156443,156445,156447,156449,156451,156453,156455],{"class":36,"line":58},[34,156434,28529],{"class":580},[34,156436,156437],{"class":181}," id, ",[34,156439,178],{"class":580},[34,156441,156442],{"class":181},", email ",[34,156444,29179],{"class":580},[34,156446,28553],{"class":181},[34,156448,28604],{"class":580},[34,156450,94498],{"class":580},[34,156452,683],{"class":580},[34,156454,130924],{"class":54},[34,156456,593],{"class":181},[34,156458,156459],{"class":36,"line":65},[34,156460,62],{"emptyLinePlaceholder":61},[34,156462,156463],{"class":36,"line":71},[34,156464,156465],{"class":40},"-- Create or replace view\n",[34,156467,156468,156471,156473,156475],{"class":36,"line":77},[34,156469,156470],{"class":580},"CREATE OR REPLACE",[34,156472,156424],{"class":580},[34,156474,156427],{"class":47},[34,156476,156430],{"class":580},[34,156478,156479,156481,156483,156485,156488,156490,156492,156494,156496,156498,156500],{"class":36,"line":82},[34,156480,28529],{"class":580},[34,156482,156437],{"class":181},[34,156484,178],{"class":580},[34,156486,156487],{"class":181},", email, created_at ",[34,156489,29179],{"class":580},[34,156491,28553],{"class":181},[34,156493,28604],{"class":580},[34,156495,94498],{"class":580},[34,156497,683],{"class":580},[34,156499,130924],{"class":54},[34,156501,593],{"class":181},[34,156503,156504],{"class":36,"line":88},[34,156505,62],{"emptyLinePlaceholder":61},[34,156507,156508],{"class":36,"line":242},[34,156509,156510],{"class":40},"-- Query view\n",[34,156512,156513,156515,156517,156519],{"class":36,"line":250},[34,156514,28529],{"class":580},[34,156516,18083],{"class":580},[34,156518,28534],{"class":580},[34,156520,156521],{"class":181}," active_users;\n",[34,156523,156524],{"class":36,"line":263},[34,156525,62],{"emptyLinePlaceholder":61},[34,156527,156528],{"class":36,"line":275},[34,156529,156530],{"class":40},"-- Drop view\n",[34,156532,156533,156535,156537,156539,156541],{"class":36,"line":700},[34,156534,150706],{"class":580},[34,156536,156424],{"class":580},[34,156538,150683],{"class":580},[34,156540,150689],{"class":580},[34,156542,156521],{"class":181},[34,156544,156545],{"class":36,"line":706},[34,156546,62],{"emptyLinePlaceholder":61},[34,156548,156549],{"class":36,"line":715},[34,156550,156551],{"class":40},"-- Show views\n",[34,156553,156554,156557,156559,156562,156564,156567],{"class":36,"line":725},[34,156555,156556],{"class":181},"SHOW FULL TABLES ",[34,156558,28604],{"class":580},[34,156560,156561],{"class":181}," Table_type ",[34,156563,1301],{"class":580},[34,156565,156566],{"class":54}," 'VIEW'",[34,156568,593],{"class":181},[388,156570,35749],{},{"title":30,"searchDepth":44,"depth":44,"links":156572},[156573],{"id":32120,"depth":44,"text":74091},"Views in MySQL.",{},{"title":74091,"description":156574},"mysql/views",[149990,28650,28337,150047],"uLpztNZ6AzbMiSNTIHWeRwgnJRZdjmpAl6DbZ3r-Lu0",{"id":156581,"title":156582,"body":156583,"date":402,"description":157474,"extension":404,"meta":157475,"navigation":61,"order":37,"path":157476,"seo":157477,"stem":157478,"subject":156680,"tags":157479,"__hash__":157481},"topics/nats/overview.md","NATS",{"type":8,"value":156584,"toc":157465},[156585,156587,156662,156666,156742,156746,156932,156936,157061,157065,157173,157177,157379,157383,157463],[11,156586,97],{"id":96},[25,156588,156590],{"className":27,"code":156589,"language":29,"meta":30,"style":30},"# Install nats-server\nbrew install nats-server           # macOS\n# Or download from https://nats.io/download/\n\n# Start server\nnats-server\n\n# With JetStream enabled\nnats-server -js\n\n# Install CLI\nbrew install nats-io/nats-tools/nats\n",[20,156591,156592,156597,156609,156614,156618,156623,156628,156632,156637,156645,156649,156653],{"__ignoreMap":30},[34,156593,156594],{"class":36,"line":37},[34,156595,156596],{"class":40},"# Install nats-server\n",[34,156598,156599,156601,156603,156606],{"class":36,"line":44},[34,156600,115],{"class":47},[34,156602,118],{"class":54},[34,156604,156605],{"class":54}," nats-server",[34,156607,156608],{"class":40},"           # macOS\n",[34,156610,156611],{"class":36,"line":58},[34,156612,156613],{"class":40},"# Or download from https://nats.io/download/\n",[34,156615,156616],{"class":36,"line":65},[34,156617,62],{"emptyLinePlaceholder":61},[34,156619,156620],{"class":36,"line":71},[34,156621,156622],{"class":40},"# Start server\n",[34,156624,156625],{"class":36,"line":77},[34,156626,156627],{"class":47},"nats-server\n",[34,156629,156630],{"class":36,"line":82},[34,156631,62],{"emptyLinePlaceholder":61},[34,156633,156634],{"class":36,"line":88},[34,156635,156636],{"class":40},"# With JetStream enabled\n",[34,156638,156639,156642],{"class":36,"line":242},[34,156640,156641],{"class":47},"nats-server",[34,156643,156644],{"class":50}," -js\n",[34,156646,156647],{"class":36,"line":250},[34,156648,62],{"emptyLinePlaceholder":61},[34,156650,156651],{"class":36,"line":263},[34,156652,7110],{"class":40},[34,156654,156655,156657,156659],{"class":36,"line":275},[34,156656,115],{"class":47},[34,156658,118],{"class":54},[34,156660,156661],{"class":54}," nats-io/nats-tools/nats\n",[11,156663,156665],{"id":156664},"publish-subscribe","Publish / Subscribe",[25,156667,156669],{"className":27,"code":156668,"language":29,"meta":30,"style":30},"# Subscribe to a subject\nnats sub \"greetings\"\n\n# Publish a message\nnats pub \"greetings\" \"Hello, NATS!\"\n\n# Wildcard subscriptions\nnats sub \"orders.*\"       # matches orders.new, orders.paid\nnats sub \"events.>\"       # matches any depth: events.user.login\n",[20,156670,156671,156676,156687,156691,156696,156709,156713,156718,156730],{"__ignoreMap":30},[34,156672,156673],{"class":36,"line":37},[34,156674,156675],{"class":40},"# Subscribe to a subject\n",[34,156677,156678,156681,156684],{"class":36,"line":44},[34,156679,156680],{"class":47},"nats",[34,156682,156683],{"class":54}," sub",[34,156685,156686],{"class":54}," \"greetings\"\n",[34,156688,156689],{"class":36,"line":58},[34,156690,62],{"emptyLinePlaceholder":61},[34,156692,156693],{"class":36,"line":65},[34,156694,156695],{"class":40},"# Publish a message\n",[34,156697,156698,156700,156703,156706],{"class":36,"line":71},[34,156699,156680],{"class":47},[34,156701,156702],{"class":54}," pub",[34,156704,156705],{"class":54}," \"greetings\"",[34,156707,156708],{"class":54}," \"Hello, NATS!\"\n",[34,156710,156711],{"class":36,"line":77},[34,156712,62],{"emptyLinePlaceholder":61},[34,156714,156715],{"class":36,"line":82},[34,156716,156717],{"class":40},"# Wildcard subscriptions\n",[34,156719,156720,156722,156724,156727],{"class":36,"line":88},[34,156721,156680],{"class":47},[34,156723,156683],{"class":54},[34,156725,156726],{"class":54}," \"orders.*\"",[34,156728,156729],{"class":40},"       # matches orders.new, orders.paid\n",[34,156731,156732,156734,156736,156739],{"class":36,"line":242},[34,156733,156680],{"class":47},[34,156735,156683],{"class":54},[34,156737,156738],{"class":54}," \"events.>\"",[34,156740,156741],{"class":40},"       # matches any depth: events.user.login\n",[11,156743,156745],{"id":156744},"nodejs-client","Node.js Client",[25,156747,156749],{"className":111475,"code":156748,"language":111477,"meta":30,"style":30},"import { connect, StringCodec } from 'nats';\n\nconst nc = await connect({ servers: 'nats://localhost:4222' });\nconst sc = StringCodec();\n\n// Subscribe\nconst sub = nc.subscribe('greetings');\n(async () => {\n  for await (const msg of sub) {\n    console.log(sc.decode(msg.data));\n  }\n})();\n\n// Publish\nnc.publish('greetings', sc.encode('Hello!'));\n\nawait nc.drain();\n",[20,156750,156751,156765,156769,156790,156804,156808,156813,156833,156845,156862,156876,156880,156885,156889,156894,156917,156921],{"__ignoreMap":30},[34,156752,156753,156755,156758,156760,156763],{"class":36,"line":37},[34,156754,581],{"class":580},[34,156756,156757],{"class":181}," { connect, StringCodec } ",[34,156759,587],{"class":580},[34,156761,156762],{"class":54}," 'nats'",[34,156764,593],{"class":181},[34,156766,156767],{"class":36,"line":44},[34,156768,62],{"emptyLinePlaceholder":61},[34,156770,156771,156773,156776,156778,156780,156782,156785,156788],{"class":36,"line":58},[34,156772,14676],{"class":580},[34,156774,156775],{"class":50}," nc",[34,156777,683],{"class":580},[34,156779,14763],{"class":580},[34,156781,57526],{"class":47},[34,156783,156784],{"class":181},"({ servers: ",[34,156786,156787],{"class":54},"'nats://localhost:4222'",[34,156789,15567],{"class":181},[34,156791,156792,156794,156797,156799,156802],{"class":36,"line":65},[34,156793,14676],{"class":580},[34,156795,156796],{"class":50}," sc",[34,156798,683],{"class":580},[34,156800,156801],{"class":47}," StringCodec",[34,156803,851],{"class":181},[34,156805,156806],{"class":36,"line":71},[34,156807,62],{"emptyLinePlaceholder":61},[34,156809,156810],{"class":36,"line":77},[34,156811,156812],{"class":40},"// Subscribe\n",[34,156814,156815,156817,156819,156821,156824,156826,156828,156831],{"class":36,"line":82},[34,156816,14676],{"class":580},[34,156818,156683],{"class":50},[34,156820,683],{"class":580},[34,156822,156823],{"class":181}," nc.",[34,156825,3630],{"class":47},[34,156827,1607],{"class":181},[34,156829,156830],{"class":54},"'greetings'",[34,156832,1586],{"class":181},[34,156834,156835,156837,156839,156841,156843],{"class":36,"line":88},[34,156836,1607],{"class":181},[34,156838,17403],{"class":580},[34,156840,17406],{"class":181},[34,156842,3361],{"class":580},[34,156844,661],{"class":181},[34,156846,156847,156849,156851,156853,156855,156857,156859],{"class":36,"line":242},[34,156848,52076],{"class":580},[34,156850,14763],{"class":580},[34,156852,3204],{"class":181},[34,156854,14676],{"class":580},[34,156856,35004],{"class":50},[34,156858,14917],{"class":580},[34,156860,156861],{"class":181}," sub) {\n",[34,156863,156864,156866,156868,156871,156873],{"class":36,"line":250},[34,156865,2421],{"class":181},[34,156867,2424],{"class":47},[34,156869,156870],{"class":181},"(sc.",[34,156872,49292],{"class":47},[34,156874,156875],{"class":181},"(msg.data));\n",[34,156877,156878],{"class":36,"line":263},[34,156879,857],{"class":181},[34,156881,156882],{"class":36,"line":275},[34,156883,156884],{"class":181},"})();\n",[34,156886,156887],{"class":36,"line":700},[34,156888,62],{"emptyLinePlaceholder":61},[34,156890,156891],{"class":36,"line":706},[34,156892,156893],{"class":40},"// Publish\n",[34,156895,156896,156899,156901,156903,156905,156908,156910,156912,156915],{"class":36,"line":715},[34,156897,156898],{"class":181},"nc.",[34,156900,98941],{"class":47},[34,156902,1607],{"class":181},[34,156904,156830],{"class":54},[34,156906,156907],{"class":181},", sc.",[34,156909,49272],{"class":47},[34,156911,1607],{"class":181},[34,156913,156914],{"class":54},"'Hello!'",[34,156916,15223],{"class":181},[34,156918,156919],{"class":36,"line":725},[34,156920,62],{"emptyLinePlaceholder":61},[34,156922,156923,156925,156927,156930],{"class":36,"line":734},[34,156924,15062],{"class":580},[34,156926,156823],{"class":181},[34,156928,156929],{"class":47},"drain",[34,156931,851],{"class":181},[11,156933,156935],{"id":156934},"request-reply","Request / Reply",[25,156937,156939],{"className":111475,"code":156938,"language":111477,"meta":30,"style":30},"// Responder\nconst sub = nc.subscribe('help');\nfor await (const msg of sub) {\n  msg.respond(sc.encode('I can help!'));\n}\n\n// Requester\nconst reply = await nc.request('help', sc.encode('SOS'), { timeout: 1000 });\nconsole.log(sc.decode(reply.data));\n",[20,156940,156941,156946,156965,156981,157000,157004,157008,157013,157048],{"__ignoreMap":30},[34,156942,156943],{"class":36,"line":37},[34,156944,156945],{"class":40},"// Responder\n",[34,156947,156948,156950,156952,156954,156956,156958,156960,156963],{"class":36,"line":44},[34,156949,14676],{"class":580},[34,156951,156683],{"class":50},[34,156953,683],{"class":580},[34,156955,156823],{"class":181},[34,156957,3630],{"class":47},[34,156959,1607],{"class":181},[34,156961,156962],{"class":54},"'help'",[34,156964,1586],{"class":181},[34,156966,156967,156969,156971,156973,156975,156977,156979],{"class":36,"line":58},[34,156968,10246],{"class":580},[34,156970,14763],{"class":580},[34,156972,3204],{"class":181},[34,156974,14676],{"class":580},[34,156976,35004],{"class":50},[34,156978,14917],{"class":580},[34,156980,156861],{"class":181},[34,156982,156983,156986,156989,156991,156993,156995,156998],{"class":36,"line":65},[34,156984,156985],{"class":181},"  msg.",[34,156987,156988],{"class":47},"respond",[34,156990,156870],{"class":181},[34,156992,49272],{"class":47},[34,156994,1607],{"class":181},[34,156996,156997],{"class":54},"'I can help!'",[34,156999,15223],{"class":181},[34,157001,157002],{"class":36,"line":71},[34,157003,693],{"class":181},[34,157005,157006],{"class":36,"line":77},[34,157007,62],{"emptyLinePlaceholder":61},[34,157009,157010],{"class":36,"line":82},[34,157011,157012],{"class":40},"// Requester\n",[34,157014,157015,157017,157020,157022,157024,157026,157028,157030,157032,157034,157036,157038,157041,157044,157046],{"class":36,"line":88},[34,157016,14676],{"class":580},[34,157018,157019],{"class":50}," reply",[34,157021,683],{"class":580},[34,157023,14763],{"class":580},[34,157025,156823],{"class":181},[34,157027,111605],{"class":47},[34,157029,1607],{"class":181},[34,157031,156962],{"class":54},[34,157033,156907],{"class":181},[34,157035,49272],{"class":47},[34,157037,1607],{"class":181},[34,157039,157040],{"class":54},"'SOS'",[34,157042,157043],{"class":181},"), { timeout: ",[34,157045,15304],{"class":50},[34,157047,15567],{"class":181},[34,157049,157050,157052,157054,157056,157058],{"class":36,"line":242},[34,157051,15183],{"class":181},[34,157053,2424],{"class":47},[34,157055,156870],{"class":181},[34,157057,49292],{"class":47},[34,157059,157060],{"class":181},"(reply.data));\n",[11,157062,157064],{"id":157063},"jetstream-persistent-messaging","JetStream (Persistent Messaging)",[25,157066,157068],{"className":27,"code":157067,"language":29,"meta":30,"style":30},"# Create a stream\nnats stream add ORDERS \\\n  --subjects \"orders.*\" \\\n  --storage file \\\n  --replicas 1\n\n# Publish to stream\nnats pub orders.new \"order data\"\n\n# Create a consumer and subscribe\nnats consumer add ORDERS my-consumer --pull\nnats consumer next ORDERS my-consumer\n",[20,157069,157070,157075,157088,157097,157106,157113,157117,157122,157134,157138,157143,157160],{"__ignoreMap":30},[34,157071,157072],{"class":36,"line":37},[34,157073,157074],{"class":40},"# Create a stream\n",[34,157076,157077,157079,157081,157083,157086],{"class":36,"line":44},[34,157078,156680],{"class":47},[34,157080,111958],{"class":54},[34,157082,7854],{"class":54},[34,157084,157085],{"class":54}," ORDERS",[34,157087,7186],{"class":50},[34,157089,157090,157093,157095],{"class":36,"line":58},[34,157091,157092],{"class":50},"  --subjects",[34,157094,156726],{"class":54},[34,157096,7186],{"class":50},[34,157098,157099,157102,157104],{"class":36,"line":65},[34,157100,157101],{"class":50},"  --storage",[34,157103,13190],{"class":54},[34,157105,7186],{"class":50},[34,157107,157108,157111],{"class":36,"line":71},[34,157109,157110],{"class":50},"  --replicas",[34,157112,43446],{"class":50},[34,157114,157115],{"class":36,"line":77},[34,157116,62],{"emptyLinePlaceholder":61},[34,157118,157119],{"class":36,"line":82},[34,157120,157121],{"class":40},"# Publish to stream\n",[34,157123,157124,157126,157128,157131],{"class":36,"line":88},[34,157125,156680],{"class":47},[34,157127,156702],{"class":54},[34,157129,157130],{"class":54}," orders.new",[34,157132,157133],{"class":54}," \"order data\"\n",[34,157135,157136],{"class":36,"line":242},[34,157137,62],{"emptyLinePlaceholder":61},[34,157139,157140],{"class":36,"line":250},[34,157141,157142],{"class":40},"# Create a consumer and subscribe\n",[34,157144,157145,157147,157150,157152,157154,157157],{"class":36,"line":263},[34,157146,156680],{"class":47},[34,157148,157149],{"class":54}," consumer",[34,157151,7854],{"class":54},[34,157153,157085],{"class":54},[34,157155,157156],{"class":54}," my-consumer",[34,157158,157159],{"class":50}," --pull\n",[34,157161,157162,157164,157166,157168,157170],{"class":36,"line":275},[34,157163,156680],{"class":47},[34,157165,157149],{"class":54},[34,157167,61968],{"class":54},[34,157169,157085],{"class":54},[34,157171,157172],{"class":54}," my-consumer\n",[11,157174,157176],{"id":157175},"jetstream-nodejs","JetStream (Node.js)",[25,157178,157180],{"className":111475,"code":157179,"language":111477,"meta":30,"style":30},"const js = nc.jetstream();\nconst jsm = await nc.jetstreamManager();\n\n// Create stream\nawait jsm.streams.add({ name: 'ORDERS', subjects: ['orders.*'] });\n\n// Publish\nawait js.publish('orders.new', sc.encode('{\"id\":1}'));\n\n// Pull consumer\nconst consumer = await js.consumers.get('ORDERS', 'my-consumer');\nconst messages = await consumer.fetch({ max_messages: 10 });\nfor await (const msg of messages) {\n  console.log(sc.decode(msg.data));\n  msg.ack();\n}\n",[20,157181,157182,157198,157216,157220,157225,157248,157252,157256,157281,157285,157290,157316,157339,157355,157367,157375],{"__ignoreMap":30},[34,157183,157184,157186,157189,157191,157193,157196],{"class":36,"line":37},[34,157185,14676],{"class":580},[34,157187,157188],{"class":50}," js",[34,157190,683],{"class":580},[34,157192,156823],{"class":181},[34,157194,157195],{"class":47},"jetstream",[34,157197,851],{"class":181},[34,157199,157200,157202,157205,157207,157209,157211,157214],{"class":36,"line":44},[34,157201,14676],{"class":580},[34,157203,157204],{"class":50}," jsm",[34,157206,683],{"class":580},[34,157208,14763],{"class":580},[34,157210,156823],{"class":181},[34,157212,157213],{"class":47},"jetstreamManager",[34,157215,851],{"class":181},[34,157217,157218],{"class":36,"line":58},[34,157219,62],{"emptyLinePlaceholder":61},[34,157221,157222],{"class":36,"line":65},[34,157223,157224],{"class":40},"// Create stream\n",[34,157226,157227,157229,157232,157234,157236,157239,157242,157245],{"class":36,"line":71},[34,157228,15062],{"class":580},[34,157230,157231],{"class":181}," jsm.streams.",[34,157233,11093],{"class":47},[34,157235,14862],{"class":181},[34,157237,157238],{"class":54},"'ORDERS'",[34,157240,157241],{"class":181},", subjects: [",[34,157243,157244],{"class":54},"'orders.*'",[34,157246,157247],{"class":181},"] });\n",[34,157249,157250],{"class":36,"line":77},[34,157251,62],{"emptyLinePlaceholder":61},[34,157253,157254],{"class":36,"line":82},[34,157255,156893],{"class":40},[34,157257,157258,157260,157263,157265,157267,157270,157272,157274,157276,157279],{"class":36,"line":88},[34,157259,15062],{"class":580},[34,157261,157262],{"class":181}," js.",[34,157264,98941],{"class":47},[34,157266,1607],{"class":181},[34,157268,157269],{"class":54},"'orders.new'",[34,157271,156907],{"class":181},[34,157273,49272],{"class":47},[34,157275,1607],{"class":181},[34,157277,157278],{"class":54},"'{\"id\":1}'",[34,157280,15223],{"class":181},[34,157282,157283],{"class":36,"line":242},[34,157284,62],{"emptyLinePlaceholder":61},[34,157286,157287],{"class":36,"line":250},[34,157288,157289],{"class":40},"// Pull consumer\n",[34,157291,157292,157294,157296,157298,157300,157303,157305,157307,157309,157311,157314],{"class":36,"line":263},[34,157293,14676],{"class":580},[34,157295,157149],{"class":50},[34,157297,683],{"class":580},[34,157299,14763],{"class":580},[34,157301,157302],{"class":181}," js.consumers.",[34,157304,1573],{"class":47},[34,157306,1607],{"class":181},[34,157308,157238],{"class":54},[34,157310,1798],{"class":181},[34,157312,157313],{"class":54},"'my-consumer'",[34,157315,1586],{"class":181},[34,157317,157318,157320,157323,157325,157327,157330,157332,157335,157337],{"class":36,"line":275},[34,157319,14676],{"class":580},[34,157321,157322],{"class":50}," messages",[34,157324,683],{"class":580},[34,157326,14763],{"class":580},[34,157328,157329],{"class":181}," consumer.",[34,157331,58875],{"class":47},[34,157333,157334],{"class":181},"({ max_messages: ",[34,157336,11923],{"class":50},[34,157338,15567],{"class":181},[34,157340,157341,157343,157345,157347,157349,157351,157353],{"class":36,"line":700},[34,157342,10246],{"class":580},[34,157344,14763],{"class":580},[34,157346,3204],{"class":181},[34,157348,14676],{"class":580},[34,157350,35004],{"class":50},[34,157352,14917],{"class":580},[34,157354,123155],{"class":181},[34,157356,157357,157359,157361,157363,157365],{"class":36,"line":706},[34,157358,14929],{"class":181},[34,157360,2424],{"class":47},[34,157362,156870],{"class":181},[34,157364,49292],{"class":47},[34,157366,156875],{"class":181},[34,157368,157369,157371,157373],{"class":36,"line":715},[34,157370,156985],{"class":181},[34,157372,109555],{"class":47},[34,157374,851],{"class":181},[34,157376,157377],{"class":36,"line":725},[34,157378,693],{"class":181},[11,157380,157382],{"id":157381},"key-value-store","Key-Value Store",[25,157384,157386],{"className":27,"code":157385,"language":29,"meta":30,"style":30},"# Create a bucket\nnats kv add CONFIG\n\n# Put / get values\nnats kv put CONFIG theme dark\nnats kv get CONFIG theme\n\n# Watch for changes\nnats kv watch CONFIG\n",[20,157387,157388,157392,157404,157408,157413,157431,157444,157448,157453],{"__ignoreMap":30},[34,157389,157390],{"class":36,"line":37},[34,157391,120625],{"class":40},[34,157393,157394,157396,157399,157401],{"class":36,"line":44},[34,157395,156680],{"class":47},[34,157397,157398],{"class":54}," kv",[34,157400,7854],{"class":54},[34,157402,157403],{"class":54}," CONFIG\n",[34,157405,157406],{"class":36,"line":58},[34,157407,62],{"emptyLinePlaceholder":61},[34,157409,157410],{"class":36,"line":65},[34,157411,157412],{"class":40},"# Put / get values\n",[34,157414,157415,157417,157419,157422,157425,157428],{"class":36,"line":71},[34,157416,156680],{"class":47},[34,157418,157398],{"class":54},[34,157420,157421],{"class":54}," put",[34,157423,157424],{"class":54}," CONFIG",[34,157426,157427],{"class":54}," theme",[34,157429,157430],{"class":54}," dark\n",[34,157432,157433,157435,157437,157439,157441],{"class":36,"line":77},[34,157434,156680],{"class":47},[34,157436,157398],{"class":54},[34,157438,7173],{"class":54},[34,157440,157424],{"class":54},[34,157442,157443],{"class":54}," theme\n",[34,157445,157446],{"class":36,"line":82},[34,157447,62],{"emptyLinePlaceholder":61},[34,157449,157450],{"class":36,"line":88},[34,157451,157452],{"class":40},"# Watch for changes\n",[34,157454,157455,157457,157459,157461],{"class":36,"line":242},[34,157456,156680],{"class":47},[34,157458,157398],{"class":54},[34,157460,16157],{"class":54},[34,157462,157403],{"class":54},[388,157464,93387],{},{"title":30,"searchDepth":44,"depth":44,"links":157466},[157467,157468,157469,157470,157471,157472,157473],{"id":96,"depth":44,"text":97},{"id":156664,"depth":44,"text":156665},{"id":156744,"depth":44,"text":156745},{"id":156934,"depth":44,"text":156935},{"id":157063,"depth":44,"text":157064},{"id":157175,"depth":44,"text":157176},{"id":157381,"depth":44,"text":157382},"A lightweight, high-performance messaging system for cloud-native applications and microservices.",{},"/nats/overview",{"title":156582,"description":157474},"nats/overview",[156680,130359,130360,112303,157480],"cloud-native","v6Krqop90fLsQNPiI3zoKqSEj0ObdaUMYqUwNcfrZ10",{"id":157483,"title":157484,"body":157485,"date":402,"description":157738,"extension":404,"meta":157739,"navigation":61,"order":37,"path":157740,"seo":157741,"stem":157742,"subject":157743,"tags":157744,"__hash__":157746},"topics/neo4j/overview.md","Neo4j Graph Database Cheat Sheet",{"type":8,"value":157486,"toc":157731},[157487,157491,157557,157561,157597,157601,157644,157648,157677,157681,157729],[11,157488,157490],{"id":157489},"installing-neo4j","Installing Neo4j",[25,157492,157494],{"className":28261,"code":157493,"language":10358,"meta":30,"style":30},"# Install Neo4j on Ubuntu/Debian\nwget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add -\necho 'deb https://debian.neo4j.com stable 4.x' | sudo tee /etc/apt/sources.list.d/neo4j.list\nsudo apt update\nsudo apt install neo4j\n",[20,157495,157496,157501,157522,157538,157546],{"__ignoreMap":30},[34,157497,157498],{"class":36,"line":37},[34,157499,157500],{"class":40},"# Install Neo4j on Ubuntu/Debian\n",[34,157502,157503,157505,157507,157509,157512,157514,157516,157518,157520],{"class":36,"line":44},[34,157504,28992],{"class":47},[34,157506,29669],{"class":50},[34,157508,19423],{"class":54},[34,157510,157511],{"class":54}," https://debian.neo4j.com/neotechnology.gpg.key",[34,157513,7197],{"class":580},[34,157515,9343],{"class":47},[34,157517,27833],{"class":54},[34,157519,7854],{"class":54},[34,157521,27838],{"class":54},[34,157523,157524,157526,157529,157531,157533,157535],{"class":36,"line":58},[34,157525,10120],{"class":50},[34,157527,157528],{"class":54}," 'deb https://debian.neo4j.com stable 4.x'",[34,157530,7197],{"class":580},[34,157532,9343],{"class":47},[34,157534,27852],{"class":54},[34,157536,157537],{"class":54}," /etc/apt/sources.list.d/neo4j.list\n",[34,157539,157540,157542,157544],{"class":36,"line":65},[34,157541,436],{"class":47},[34,157543,439],{"class":54},[34,157545,6441],{"class":54},[34,157547,157548,157550,157552,157554],{"class":36,"line":71},[34,157549,436],{"class":47},[34,157551,439],{"class":54},[34,157553,118],{"class":54},[34,157555,157556],{"class":54}," neo4j\n",[11,157558,157560],{"id":157559},"managing-nodes-and-relationships","Managing Nodes and Relationships",[25,157562,157566],{"className":157563,"code":157564,"language":157565,"meta":30,"style":30},"language-cypher shiki shiki-themes github-light github-dark","-- Create a node\nCREATE (n:Person {name: 'Alice', age: 30});\n\n-- Create a relationship\nMATCH (a:Person {name: 'Alice'}), (b:Person {name: 'Bob'})\nCREATE (a)-[:KNOWS]->(b);\n","cypher",[20,157567,157568,157573,157578,157582,157587,157592],{"__ignoreMap":30},[34,157569,157570],{"class":36,"line":37},[34,157571,157572],{},"-- Create a node\n",[34,157574,157575],{"class":36,"line":44},[34,157576,157577],{},"CREATE (n:Person {name: 'Alice', age: 30});\n",[34,157579,157580],{"class":36,"line":58},[34,157581,62],{"emptyLinePlaceholder":61},[34,157583,157584],{"class":36,"line":65},[34,157585,157586],{},"-- Create a relationship\n",[34,157588,157589],{"class":36,"line":71},[34,157590,157591],{},"MATCH (a:Person {name: 'Alice'}), (b:Person {name: 'Bob'})\n",[34,157593,157594],{"class":36,"line":77},[34,157595,157596],{},"CREATE (a)-[:KNOWS]->(b);\n",[11,157598,157600],{"id":157599},"queries-with-cypher","Queries with Cypher",[25,157602,157604],{"className":157563,"code":157603,"language":157565,"meta":30,"style":30},"-- Match all nodes\nMATCH (n) RETURN n;\n\n-- Match specific nodes\nMATCH (p:Person {name: 'Alice'}) RETURN p;\n\n-- Traverse relationships\nMATCH (a:Person)-[:KNOWS]->(b:Person) RETURN b.name;\n",[20,157605,157606,157611,157616,157620,157625,157630,157634,157639],{"__ignoreMap":30},[34,157607,157608],{"class":36,"line":37},[34,157609,157610],{},"-- Match all nodes\n",[34,157612,157613],{"class":36,"line":44},[34,157614,157615],{},"MATCH (n) RETURN n;\n",[34,157617,157618],{"class":36,"line":58},[34,157619,62],{"emptyLinePlaceholder":61},[34,157621,157622],{"class":36,"line":65},[34,157623,157624],{},"-- Match specific nodes\n",[34,157626,157627],{"class":36,"line":71},[34,157628,157629],{},"MATCH (p:Person {name: 'Alice'}) RETURN p;\n",[34,157631,157632],{"class":36,"line":77},[34,157633,62],{"emptyLinePlaceholder":61},[34,157635,157636],{"class":36,"line":82},[34,157637,157638],{},"-- Traverse relationships\n",[34,157640,157641],{"class":36,"line":88},[34,157642,157643],{},"MATCH (a:Person)-[:KNOWS]->(b:Person) RETURN b.name;\n",[11,157645,157647],{"id":157646},"indexes-and-constraints","Indexes and Constraints",[25,157649,157651],{"className":157563,"code":157650,"language":157565,"meta":30,"style":30},"-- Create an index on a property\nCREATE INDEX FOR (n:Person) ON (n.name);\n\n-- Unique constraint\nCREATE CONSTRAINT ON (n:Person) ASSERT n.email IS UNIQUE;\n",[20,157652,157653,157658,157663,157667,157672],{"__ignoreMap":30},[34,157654,157655],{"class":36,"line":37},[34,157656,157657],{},"-- Create an index on a property\n",[34,157659,157660],{"class":36,"line":44},[34,157661,157662],{},"CREATE INDEX FOR (n:Person) ON (n.name);\n",[34,157664,157665],{"class":36,"line":58},[34,157666,62],{"emptyLinePlaceholder":61},[34,157668,157669],{"class":36,"line":65},[34,157670,157671],{},"-- Unique constraint\n",[34,157673,157674],{"class":36,"line":71},[34,157675,157676],{},"CREATE CONSTRAINT ON (n:Person) ASSERT n.email IS UNIQUE;\n",[11,157678,157680],{"id":157679},"advanced-cypher","Advanced Cypher",[25,157682,157684],{"className":157563,"code":157683,"language":157565,"meta":30,"style":30},"-- Aggregations\nMATCH (n:Person) RETURN AVG(n.age);\n\n-- Path matching\nMATCH p = (a:Person)-[:KNOWS*1..2]-(b:Person)\nRETURN p;\n\n-- Delete nodes\nMATCH (n) DETACH DELETE n;\n",[20,157685,157686,157691,157696,157700,157705,157710,157715,157719,157724],{"__ignoreMap":30},[34,157687,157688],{"class":36,"line":37},[34,157689,157690],{},"-- Aggregations\n",[34,157692,157693],{"class":36,"line":44},[34,157694,157695],{},"MATCH (n:Person) RETURN AVG(n.age);\n",[34,157697,157698],{"class":36,"line":58},[34,157699,62],{"emptyLinePlaceholder":61},[34,157701,157702],{"class":36,"line":65},[34,157703,157704],{},"-- Path matching\n",[34,157706,157707],{"class":36,"line":71},[34,157708,157709],{},"MATCH p = (a:Person)-[:KNOWS*1..2]-(b:Person)\n",[34,157711,157712],{"class":36,"line":77},[34,157713,157714],{},"RETURN p;\n",[34,157716,157717],{"class":36,"line":82},[34,157718,62],{"emptyLinePlaceholder":61},[34,157720,157721],{"class":36,"line":88},[34,157722,157723],{},"-- Delete nodes\n",[34,157725,157726],{"class":36,"line":242},[34,157727,157728],{},"MATCH (n) DETACH DELETE n;\n",[388,157730,15873],{},{"title":30,"searchDepth":44,"depth":44,"links":157732},[157733,157734,157735,157736,157737],{"id":157489,"depth":44,"text":157490},{"id":157559,"depth":44,"text":157560},{"id":157599,"depth":44,"text":157600},{"id":157646,"depth":44,"text":157647},{"id":157679,"depth":44,"text":157680},"Quickstart guide for Cypher and graph database concepts.",{},"/neo4j/overview",{"title":157484,"description":157738},"neo4j/overview","neo4j",[157743,157745,157565,28650],"graphdb","lC49dmYel3RDDxWnfI6mG8NlhiBf00Iy9dCxmjlRI74",{"id":157748,"title":157749,"body":157750,"date":402,"description":158181,"extension":404,"meta":158182,"navigation":61,"order":37,"path":158183,"seo":158184,"stem":158185,"subject":158186,"tags":158187,"__hash__":158188},"topics/neovim/overview.md","Neovim",{"type":8,"value":157751,"toc":158168},[157752,157754,157757,157759,157786,157788,157791,157855,157859,157870,157937,157941,157944,158029,158033,158037,158040,158068,158072,158075,158144,158148,158151,158160,158162,158165],[11,157753,14],{"id":13},[16,157755,157756],{},"Neovim is a hyperextensible, performant, and open-source text editor. It's often used by developers seeking a modern alternative to Vim.",[11,157758,113859],{"id":113864},[25,157760,157764],{"className":157761,"code":157762,"language":157763,"meta":30,"style":30},"language-vim shiki shiki-themes github-light github-dark",":help             \" Access the help documentation\n:w                \" Save the current file\n:q                \" Quit Neovim\n:wq               \" Save and quit\n","vim",[20,157765,157766,157771,157776,157781],{"__ignoreMap":30},[34,157767,157768],{"class":36,"line":37},[34,157769,157770],{},":help             \" Access the help documentation\n",[34,157772,157773],{"class":36,"line":44},[34,157774,157775],{},":w                \" Save the current file\n",[34,157777,157778],{"class":36,"line":58},[34,157779,157780],{},":q                \" Quit Neovim\n",[34,157782,157783],{"class":36,"line":65},[34,157784,157785],{},":wq               \" Save and quit\n",[11,157787,8686],{"id":558},[16,157789,157790],{},"Neovim uses Lua for configuration as of version 0.5.",[25,157792,157794],{"className":141287,"code":157793,"language":90057,"meta":30,"style":30},"-- Example init.lua configuration\nvim.o.number = true  -- Show line numbers\nvim.o.relativenumber = true  -- Relative line numbers\nvim.o.tabstop = 4  -- Number of spaces for a tab\n",[20,157795,157796,157801,157819,157837],{"__ignoreMap":30},[34,157797,157798],{"class":36,"line":37},[34,157799,157800],{"class":40},"-- Example init.lua configuration\n",[34,157802,157803,157806,157808,157810,157812,157814,157816],{"class":36,"line":44},[34,157804,157805],{"class":181},"vim.",[34,157807,114909],{"class":47},[34,157809,151],{"class":181},[34,157811,130478],{"class":47},[34,157813,683],{"class":580},[34,157815,32945],{"class":50},[34,157817,157818],{"class":40},"  -- Show line numbers\n",[34,157820,157821,157823,157825,157827,157830,157832,157834],{"class":36,"line":58},[34,157822,157805],{"class":181},[34,157824,114909],{"class":47},[34,157826,151],{"class":181},[34,157828,157829],{"class":47},"relativenumber",[34,157831,683],{"class":580},[34,157833,32945],{"class":50},[34,157835,157836],{"class":40},"  -- Relative line numbers\n",[34,157838,157839,157841,157843,157845,157848,157850,157852],{"class":36,"line":65},[34,157840,157805],{"class":181},[34,157842,114909],{"class":47},[34,157844,151],{"class":181},[34,157846,157847],{"class":47},"tabstop",[34,157849,683],{"class":580},[34,157851,11801],{"class":50},[34,157853,157854],{"class":40},"  -- Number of spaces for a tab\n",[11,157856,157858],{"id":157857},"plugins","Plugins",[16,157860,157861,157862,157865,157866,157869],{},"Plugins drastically extend Neovim's capabilities. Use a plugin manager like ",[20,157863,157864],{},"packer.nvim"," or ",[20,157867,157868],{},"vim-plug"," to manage plugins.",[25,157871,157873],{"className":141287,"code":157872,"language":90057,"meta":30,"style":30},"-- Example plugin configuration with packer.nvim\nrequire('packer').startup(function()\n  use 'nvim-treesitter/nvim-treesitter'  -- Syntax highlighting\n  use 'hrsh7th/nvim-cmp'  -- Autocompletion\n  use 'neovim/nvim-lspconfig'  -- Language Server Protocol support\nend)\n",[20,157874,157875,157880,157900,157911,157921,157931],{"__ignoreMap":30},[34,157876,157877],{"class":36,"line":37},[34,157878,157879],{"class":40},"-- Example plugin configuration with packer.nvim\n",[34,157881,157882,157884,157886,157889,157891,157894,157896,157898],{"class":36,"line":44},[34,157883,46354],{"class":50},[34,157885,1607],{"class":181},[34,157887,157888],{"class":54},"'packer'",[34,157890,1876],{"class":181},[34,157892,157893],{"class":50},"startup",[34,157895,1607],{"class":181},[34,157897,11044],{"class":580},[34,157899,33899],{"class":181},[34,157901,157902,157905,157908],{"class":36,"line":58},[34,157903,157904],{"class":50},"  use",[34,157906,157907],{"class":54}," 'nvim-treesitter/nvim-treesitter'  ",[34,157909,157910],{"class":40},"-- Syntax highlighting\n",[34,157912,157913,157915,157918],{"class":36,"line":65},[34,157914,157904],{"class":50},[34,157916,157917],{"class":54}," 'hrsh7th/nvim-cmp'  ",[34,157919,157920],{"class":40},"-- Autocompletion\n",[34,157922,157923,157925,157928],{"class":36,"line":71},[34,157924,157904],{"class":50},[34,157926,157927],{"class":54}," 'neovim/nvim-lspconfig'  ",[34,157929,157930],{"class":40},"-- Language Server Protocol support\n",[34,157932,157933,157935],{"class":36,"line":77},[34,157934,40488],{"class":580},[34,157936,3372],{"class":181},[11,157938,157940],{"id":157939},"key-mappings","Key Mappings",[16,157942,157943],{},"Customize key mappings in the Neovim configuration file using Lua.",[25,157945,157947],{"className":141287,"code":157946,"language":90057,"meta":30,"style":30},"vim.api.nvim_set_keymap('n', '\u003CLeader>ff', ':Telescope find_files\u003CCR>', { noremap = true, silent = true })\nvim.api.nvim_set_keymap('n', '\u003CLeader>fg', ':Telescope live_grep\u003CCR>', { noremap = true, silent = true })\n",[20,157948,157949,157991],{"__ignoreMap":30},[34,157950,157951,157953,157955,157957,157960,157962,157965,157967,157970,157972,157975,157978,157980,157982,157985,157987,157989],{"class":36,"line":37},[34,157952,157805],{"class":181},[34,157954,43044],{"class":47},[34,157956,151],{"class":181},[34,157958,157959],{"class":50},"nvim_set_keymap",[34,157961,1607],{"class":181},[34,157963,157964],{"class":54},"'n'",[34,157966,1798],{"class":181},[34,157968,157969],{"class":54},"'\u003CLeader>ff'",[34,157971,1798],{"class":181},[34,157973,157974],{"class":54},"':Telescope find_files\u003CCR>'",[34,157976,157977],{"class":181},", { noremap ",[34,157979,1301],{"class":580},[34,157981,32945],{"class":50},[34,157983,157984],{"class":181},", silent ",[34,157986,1301],{"class":580},[34,157988,32945],{"class":50},[34,157990,1502],{"class":181},[34,157992,157993,157995,157997,157999,158001,158003,158005,158007,158010,158012,158015,158017,158019,158021,158023,158025,158027],{"class":36,"line":44},[34,157994,157805],{"class":181},[34,157996,43044],{"class":47},[34,157998,151],{"class":181},[34,158000,157959],{"class":50},[34,158002,1607],{"class":181},[34,158004,157964],{"class":54},[34,158006,1798],{"class":181},[34,158008,158009],{"class":54},"'\u003CLeader>fg'",[34,158011,1798],{"class":181},[34,158013,158014],{"class":54},"':Telescope live_grep\u003CCR>'",[34,158016,157977],{"class":181},[34,158018,1301],{"class":580},[34,158020,32945],{"class":50},[34,158022,157984],{"class":181},[34,158024,1301],{"class":580},[34,158026,32945],{"class":50},[34,158028,1502],{"class":181},[11,158030,158032],{"id":158031},"advanced-features","Advanced Features",[102,158034,158036],{"id":158035},"lsp-language-server-protocol","LSP (Language Server Protocol)",[16,158038,158039],{},"Neovim has built-in support for the Language Server Protocol (LSP).",[25,158041,158043],{"className":141287,"code":158042,"language":90057,"meta":30,"style":30},"-- Example: Setting up LSP for Python\nrequire'lspconfig'.pyright.setup{}\n",[20,158044,158045,158050],{"__ignoreMap":30},[34,158046,158047],{"class":36,"line":37},[34,158048,158049],{"class":40},"-- Example: Setting up LSP for Python\n",[34,158051,158052,158054,158057,158059,158062,158064,158066],{"class":36,"line":44},[34,158053,46354],{"class":50},[34,158055,158056],{"class":54},"'lspconfig'",[34,158058,151],{"class":181},[34,158060,158061],{"class":47},"pyright",[34,158063,151],{"class":181},[34,158065,75289],{"class":50},[34,158067,106647],{"class":181},[102,158069,158071],{"id":158070},"treesitter","Treesitter",[16,158073,158074],{},"Treesitter provides improved syntax highlighting and code structure recognition.",[25,158076,158078],{"className":141287,"code":158077,"language":90057,"meta":30,"style":30},"require'nvim-treesitter.configs'.setup {\n  highlight = {\n    enable = true,\n  },\n  indent = {\n    enable = true,\n  }\n}\n",[20,158079,158080,158093,158102,158113,158117,158126,158136,158140],{"__ignoreMap":30},[34,158081,158082,158084,158087,158089,158091],{"class":36,"line":37},[34,158083,46354],{"class":50},[34,158085,158086],{"class":54},"'nvim-treesitter.configs'",[34,158088,151],{"class":181},[34,158090,75289],{"class":50},[34,158092,661],{"class":181},[34,158094,158095,158098,158100],{"class":36,"line":44},[34,158096,158097],{"class":181},"  highlight ",[34,158099,1301],{"class":580},[34,158101,661],{"class":181},[34,158103,158104,158107,158109,158111],{"class":36,"line":58},[34,158105,158106],{"class":181},"    enable ",[34,158108,1301],{"class":580},[34,158110,32945],{"class":50},[34,158112,624],{"class":181},[34,158114,158115],{"class":36,"line":65},[34,158116,3400],{"class":181},[34,158118,158119,158122,158124],{"class":36,"line":71},[34,158120,158121],{"class":181},"  indent ",[34,158123,1301],{"class":580},[34,158125,661],{"class":181},[34,158127,158128,158130,158132,158134],{"class":36,"line":77},[34,158129,158106],{"class":181},[34,158131,1301],{"class":580},[34,158133,32945],{"class":50},[34,158135,624],{"class":181},[34,158137,158138],{"class":36,"line":82},[34,158139,857],{"class":181},[34,158141,158142],{"class":36,"line":88},[34,158143,693],{"class":181},[102,158145,158147],{"id":158146},"terminal-integration","Terminal Integration",[16,158149,158150],{},"Neovim has an integrated terminal emulator.",[25,158152,158154],{"className":157761,"code":158153,"language":157763,"meta":30,"style":30},":terminal  -- Open a terminal within Neovim\n",[20,158155,158156],{"__ignoreMap":30},[34,158157,158158],{"class":36,"line":37},[34,158159,158153],{},[11,158161,120374],{"id":120373},[16,158163,158164],{},"Neovim is a powerful tool for developers looking for advanced configuration and extensibility.",[388,158166,158167],{},"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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":30,"searchDepth":44,"depth":44,"links":158169},[158170,158171,158172,158173,158174,158175,158180],{"id":13,"depth":44,"text":14},{"id":113864,"depth":44,"text":113859},{"id":558,"depth":44,"text":8686},{"id":157857,"depth":44,"text":157858},{"id":157939,"depth":44,"text":157940},{"id":158031,"depth":44,"text":158032,"children":158176},[158177,158178,158179],{"id":158035,"depth":58,"text":158036},{"id":158070,"depth":58,"text":158071},{"id":158146,"depth":58,"text":158147},{"id":120373,"depth":44,"text":120374},"Key features, configurations, and commands for Neovim.",{},"/neovim/overview",{"title":157749,"description":158181},"neovim/overview","neovim",[158186,157763,557,113609,157857],"yXSA3FcfScP3GE0GJPcBteKvUv_TS_y835zJJFYwVU8",{"id":158190,"title":158191,"body":158192,"date":402,"description":158572,"extension":404,"meta":158573,"navigation":61,"order":37,"path":158574,"seo":158575,"stem":158576,"subject":158275,"tags":158577,"__hash__":158579},"topics/nginx/overview.md","NGINX",{"type":8,"value":158193,"toc":158563},[158194,158196,158199,158201,158259,158261,158271,158334,158338,158341,158399,158403,158406,158430,158434,158437,158490,158492,158561],[11,158195,13534],{"id":13533},[16,158197,158198],{},"NGINX (pronounced \"engine-x\") is a high-performance web server and reverse proxy server. It is widely used for serving static files, load balancing, content caching, and acting as a proxy for dynamic backends.",[11,158200,6035],{"id":6040},[25,158202,158204],{"className":27,"code":158203,"language":29,"meta":30,"style":30},"# Install NGINX on Ubuntu\nsudo apt update\nsudo apt install nginx\n\n# Start and enable nginx service\nsudo systemctl start nginx\nsudo systemctl enable nginx\n",[20,158205,158206,158211,158219,158230,158234,158239,158249],{"__ignoreMap":30},[34,158207,158208],{"class":36,"line":37},[34,158209,158210],{"class":40},"# Install NGINX on Ubuntu\n",[34,158212,158213,158215,158217],{"class":36,"line":44},[34,158214,436],{"class":47},[34,158216,439],{"class":54},[34,158218,6441],{"class":54},[34,158220,158221,158223,158225,158227],{"class":36,"line":58},[34,158222,436],{"class":47},[34,158224,439],{"class":54},[34,158226,118],{"class":54},[34,158228,158229],{"class":54}," nginx\n",[34,158231,158232],{"class":36,"line":65},[34,158233,62],{"emptyLinePlaceholder":61},[34,158235,158236],{"class":36,"line":71},[34,158237,158238],{"class":40},"# Start and enable nginx service\n",[34,158240,158241,158243,158245,158247],{"class":36,"line":77},[34,158242,436],{"class":47},[34,158244,108597],{"class":54},[34,158246,9677],{"class":54},[34,158248,158229],{"class":54},[34,158250,158251,158253,158255,158257],{"class":36,"line":82},[34,158252,436],{"class":47},[34,158254,108597],{"class":54},[34,158256,93273],{"class":54},[34,158258,158229],{"class":54},[11,158260,27904],{"id":27903},[16,158262,158263,158264,158267,158268,165],{},"NGINX configurations are stored in the ",[20,158265,158266],{},"/etc/nginx/nginx.conf"," file and additional server blocks can be added in ",[20,158269,158270],{},"/etc/nginx/sites-available",[25,158272,158276],{"className":158273,"code":158274,"language":158275,"meta":30,"style":30},"language-nginx shiki shiki-themes github-light github-dark","# Example server block\nserver {\n    listen 80;\n    server_name example.com www.example.com;\n\n    root /var/www/html;\n    index index.html;\n\n    location / {\n        try_files $uri $uri/ =404;\n    }\n}\n","nginx",[20,158277,158278,158283,158288,158293,158298,158302,158307,158312,158316,158321,158326,158330],{"__ignoreMap":30},[34,158279,158280],{"class":36,"line":37},[34,158281,158282],{},"# Example server block\n",[34,158284,158285],{"class":36,"line":44},[34,158286,158287],{},"server {\n",[34,158289,158290],{"class":36,"line":58},[34,158291,158292],{},"    listen 80;\n",[34,158294,158295],{"class":36,"line":65},[34,158296,158297],{},"    server_name example.com www.example.com;\n",[34,158299,158300],{"class":36,"line":71},[34,158301,62],{"emptyLinePlaceholder":61},[34,158303,158304],{"class":36,"line":77},[34,158305,158306],{},"    root /var/www/html;\n",[34,158308,158309],{"class":36,"line":82},[34,158310,158311],{},"    index index.html;\n",[34,158313,158314],{"class":36,"line":88},[34,158315,62],{"emptyLinePlaceholder":61},[34,158317,158318],{"class":36,"line":242},[34,158319,158320],{},"    location / {\n",[34,158322,158323],{"class":36,"line":250},[34,158324,158325],{},"        try_files $uri $uri/ =404;\n",[34,158327,158328],{"class":36,"line":263},[34,158329,3229],{},[34,158331,158332],{"class":36,"line":275},[34,158333,693],{},[11,158335,158337],{"id":158336},"load-balancing","Load Balancing",[16,158339,158340],{},"NGINX supports load balancing with multiple backend servers:",[25,158342,158344],{"className":158273,"code":158343,"language":158275,"meta":30,"style":30},"upstream backend {\n    server backend1.example.com;\n    server backend2.example.com;\n    server backend3.example.com;\n}\n\nserver {\n    listen 80;\n    location / {\n        proxy_pass http://backend;\n    }\n}\n",[20,158345,158346,158351,158356,158361,158366,158370,158374,158378,158382,158386,158391,158395],{"__ignoreMap":30},[34,158347,158348],{"class":36,"line":37},[34,158349,158350],{},"upstream backend {\n",[34,158352,158353],{"class":36,"line":44},[34,158354,158355],{},"    server backend1.example.com;\n",[34,158357,158358],{"class":36,"line":58},[34,158359,158360],{},"    server backend2.example.com;\n",[34,158362,158363],{"class":36,"line":65},[34,158364,158365],{},"    server backend3.example.com;\n",[34,158367,158368],{"class":36,"line":71},[34,158369,693],{},[34,158371,158372],{"class":36,"line":77},[34,158373,62],{"emptyLinePlaceholder":61},[34,158375,158376],{"class":36,"line":82},[34,158377,158287],{},[34,158379,158380],{"class":36,"line":88},[34,158381,158292],{},[34,158383,158384],{"class":36,"line":242},[34,158385,158320],{},[34,158387,158388],{"class":36,"line":250},[34,158389,158390],{},"        proxy_pass http://backend;\n",[34,158392,158393],{"class":36,"line":263},[34,158394,3229],{},[34,158396,158397],{"class":36,"line":275},[34,158398,693],{},[11,158400,158402],{"id":158401},"caching","Caching",[16,158404,158405],{},"Enable caching for static content to improve performance:",[25,158407,158409],{"className":158273,"code":158408,"language":158275,"meta":30,"style":30},"location ~* \\.(jpg|jpeg|png|gif|ico|css|js)$ {\n    expires 30d;\n    add_header Cache-Control \"public\";\n}\n",[20,158410,158411,158416,158421,158426],{"__ignoreMap":30},[34,158412,158413],{"class":36,"line":37},[34,158414,158415],{},"location ~* \\.(jpg|jpeg|png|gif|ico|css|js)$ {\n",[34,158417,158418],{"class":36,"line":44},[34,158419,158420],{},"    expires 30d;\n",[34,158422,158423],{"class":36,"line":58},[34,158424,158425],{},"    add_header Cache-Control \"public\";\n",[34,158427,158428],{"class":36,"line":65},[34,158429,693],{},[11,158431,158433],{"id":158432},"ssl-termination","SSL Termination",[16,158435,158436],{},"Secure your server with SSL:",[25,158438,158440],{"className":158273,"code":158439,"language":158275,"meta":30,"style":30},"server {\n    listen 443 ssl;\n    server_name example.com;\n\n    ssl_certificate     /etc/ssl/certs/example.com.crt;\n    ssl_certificate_key /etc/ssl/private/example.com.key;\n\n    location / {\n        proxy_pass http://backend;\n    }\n}\n",[20,158441,158442,158446,158451,158456,158460,158465,158470,158474,158478,158482,158486],{"__ignoreMap":30},[34,158443,158444],{"class":36,"line":37},[34,158445,158287],{},[34,158447,158448],{"class":36,"line":44},[34,158449,158450],{},"    listen 443 ssl;\n",[34,158452,158453],{"class":36,"line":58},[34,158454,158455],{},"    server_name example.com;\n",[34,158457,158458],{"class":36,"line":65},[34,158459,62],{"emptyLinePlaceholder":61},[34,158461,158462],{"class":36,"line":71},[34,158463,158464],{},"    ssl_certificate     /etc/ssl/certs/example.com.crt;\n",[34,158466,158467],{"class":36,"line":77},[34,158468,158469],{},"    ssl_certificate_key /etc/ssl/private/example.com.key;\n",[34,158471,158472],{"class":36,"line":82},[34,158473,62],{"emptyLinePlaceholder":61},[34,158475,158476],{"class":36,"line":88},[34,158477,158320],{},[34,158479,158480],{"class":36,"line":242},[34,158481,158390],{},[34,158483,158484],{"class":36,"line":250},[34,158485,3229],{},[34,158487,158488],{"class":36,"line":263},[34,158489,693],{},[11,158491,113747],{"id":113746},[25,158493,158495],{"className":27,"code":158494,"language":29,"meta":30,"style":30},"# Reload configuration\nsudo nginx -s reload\n\n# Test configuration\nsudo nginx -t\n\n# Stop and start NGINX\nsudo systemctl stop nginx\nsudo systemctl start nginx\n",[20,158496,158497,158502,158514,158518,158523,158532,158536,158541,158551],{"__ignoreMap":30},[34,158498,158499],{"class":36,"line":37},[34,158500,158501],{"class":40},"# Reload configuration\n",[34,158503,158504,158506,158509,158511],{"class":36,"line":44},[34,158505,436],{"class":47},[34,158507,158508],{"class":54}," nginx",[34,158510,5487],{"class":50},[34,158512,158513],{"class":54}," reload\n",[34,158515,158516],{"class":36,"line":58},[34,158517,62],{"emptyLinePlaceholder":61},[34,158519,158520],{"class":36,"line":65},[34,158521,158522],{"class":40},"# Test configuration\n",[34,158524,158525,158527,158529],{"class":36,"line":71},[34,158526,436],{"class":47},[34,158528,158508],{"class":54},[34,158530,158531],{"class":50}," -t\n",[34,158533,158534],{"class":36,"line":77},[34,158535,62],{"emptyLinePlaceholder":61},[34,158537,158538],{"class":36,"line":82},[34,158539,158540],{"class":40},"# Stop and start NGINX\n",[34,158542,158543,158545,158547,158549],{"class":36,"line":88},[34,158544,436],{"class":47},[34,158546,108597],{"class":54},[34,158548,9696],{"class":54},[34,158550,158229],{"class":54},[34,158552,158553,158555,158557,158559],{"class":36,"line":242},[34,158554,436],{"class":47},[34,158556,108597],{"class":54},[34,158558,9677],{"class":54},[34,158560,158229],{"class":54},[388,158562,120763],{},{"title":30,"searchDepth":44,"depth":44,"links":158564},[158565,158566,158567,158568,158569,158570,158571],{"id":13533,"depth":44,"text":13534},{"id":6040,"depth":44,"text":6035},{"id":27903,"depth":44,"text":27904},{"id":158336,"depth":44,"text":158337},{"id":158401,"depth":44,"text":158402},{"id":158432,"depth":44,"text":158433},{"id":113746,"depth":44,"text":113747},"Overview of NGINX features, configuration, and deployment.",{},"/nginx/overview",{"title":158191,"description":158572},"nginx/overview",[158275,28008,28247,158578,158401],"load-balancer","DdnUo0NPGXph_4Xk23P5HgS_Ac3yIQWbWE0EF7MyzI4",{"id":158581,"title":158582,"body":158583,"date":402,"description":158769,"extension":404,"meta":158770,"navigation":61,"order":37,"path":158771,"seo":158772,"stem":158773,"subject":158622,"tags":158774,"__hash__":158776},"topics/nim/overview.md","Nim Language Basics",{"type":8,"value":158584,"toc":158762},[158585,158589,158592,158625,158628,158630,158633,158649,158651,158654,158669,158673,158679,158708,158712,158718,158756,158759],[11,158586,158588],{"id":158587},"installing-nim","Installing Nim",[16,158590,158591],{},"To install Nim, use the Nim installer called choosenim:",[25,158593,158595],{"className":27,"code":158594,"language":29,"meta":30,"style":30},"curl https://nim-lang.org/choosenim/init.sh -sSf | sh\nsource ~/.profile\nnim --version\n",[20,158596,158597,158611,158618],{"__ignoreMap":30},[34,158598,158599,158601,158604,158607,158609],{"class":36,"line":37},[34,158600,8648],{"class":47},[34,158602,158603],{"class":54}," https://nim-lang.org/choosenim/init.sh",[34,158605,158606],{"class":50}," -sSf",[34,158608,7197],{"class":580},[34,158610,48093],{"class":47},[34,158612,158613,158615],{"class":36,"line":44},[34,158614,51060],{"class":50},[34,158616,158617],{"class":54}," ~/.profile\n",[34,158619,158620,158623],{"class":36,"line":58},[34,158621,158622],{"class":47},"nim",[34,158624,5013],{"class":50},[16,158626,158627],{},"This will install Nim and add it to your PATH.",[11,158629,33160],{"id":33159},[16,158631,158632],{},"Nim has a Python-like syntax with better performance.",[25,158634,158637],{"className":158635,"code":158636,"language":158622,"meta":30,"style":30},"language-nim shiki shiki-themes github-light github-dark","# Print a message\necho \"Hello, Nim!\"\n",[20,158638,158639,158644],{"__ignoreMap":30},[34,158640,158641],{"class":36,"line":37},[34,158642,158643],{},"# Print a message\n",[34,158645,158646],{"class":36,"line":44},[34,158647,158648],{},"echo \"Hello, Nim!\"\n",[11,158650,33177],{"id":33176},[16,158652,158653],{},"Variables in Nim can be mutable or immutable, and you can specify types.",[25,158655,158657],{"className":158635,"code":158656,"language":158622,"meta":30,"style":30},"let name = \"Nim\" # Immutable\nvar age: int = 10 # Mutable\n",[20,158658,158659,158664],{"__ignoreMap":30},[34,158660,158661],{"class":36,"line":37},[34,158662,158663],{},"let name = \"Nim\" # Immutable\n",[34,158665,158666],{"class":36,"line":44},[34,158667,158668],{},"var age: int = 10 # Mutable\n",[11,158670,158672],{"id":158671},"procedures-and-functions","Procedures and Functions",[16,158674,158675,158676,151],{},"In Nim, procedures are defined with ",[20,158677,158678],{},"proc",[25,158680,158682],{"className":158635,"code":158681,"language":158622,"meta":30,"style":30},"proc add(a, b: int): int =\n  return a + b\n\nlet result = add(2, 3)\necho result\n",[20,158683,158684,158689,158694,158698,158703],{"__ignoreMap":30},[34,158685,158686],{"class":36,"line":37},[34,158687,158688],{},"proc add(a, b: int): int =\n",[34,158690,158691],{"class":36,"line":44},[34,158692,158693],{},"  return a + b\n",[34,158695,158696],{"class":36,"line":58},[34,158697,62],{"emptyLinePlaceholder":61},[34,158699,158700],{"class":36,"line":65},[34,158701,158702],{},"let result = add(2, 3)\n",[34,158704,158705],{"class":36,"line":71},[34,158706,158707],{},"echo result\n",[11,158709,158711],{"id":158710},"async-programming","Async Programming",[16,158713,158714,158715,151],{},"Nim's async programming is straightforward with ",[20,158716,158717],{},"async/await",[25,158719,158721],{"className":158635,"code":158720,"language":158622,"meta":30,"style":30},"import asyncdispatch\n\nproc hello() {.async.} =\n  await sleepAsync(1000)\n  echo \"Async World\"\n\nwaitFor hello()\n",[20,158722,158723,158728,158732,158737,158742,158747,158751],{"__ignoreMap":30},[34,158724,158725],{"class":36,"line":37},[34,158726,158727],{},"import asyncdispatch\n",[34,158729,158730],{"class":36,"line":44},[34,158731,62],{"emptyLinePlaceholder":61},[34,158733,158734],{"class":36,"line":58},[34,158735,158736],{},"proc hello() {.async.} =\n",[34,158738,158739],{"class":36,"line":65},[34,158740,158741],{},"  await sleepAsync(1000)\n",[34,158743,158744],{"class":36,"line":71},[34,158745,158746],{},"  echo \"Async World\"\n",[34,158748,158749],{"class":36,"line":77},[34,158750,62],{"emptyLinePlaceholder":61},[34,158752,158753],{"class":36,"line":82},[34,158754,158755],{},"waitFor hello()\n",[16,158757,158758],{},"--- End of example ---",[388,158760,158761],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":158763},[158764,158765,158766,158767,158768],{"id":158587,"depth":44,"text":158588},{"id":33159,"depth":44,"text":33160},{"id":33176,"depth":44,"text":33177},{"id":158671,"depth":44,"text":158672},{"id":158710,"depth":44,"text":158711},"Learn the Nim programming language including its syntax, types, and async programming.",{},"/nim/overview",{"title":158582,"description":158769},"nim/overview",[158622,122020,33297,17403,158775],"stdlib","IevuTgq7JDkL-daUNVYqhWwpBeHV81DuaGvOZmg9ABI",{"id":158778,"title":158779,"body":158780,"date":402,"description":159063,"extension":404,"meta":159064,"navigation":61,"order":37,"path":159065,"seo":159066,"stem":159067,"subject":158946,"tags":159068,"__hash__":159070},"topics/nitro/overview.md","Nitro Framework",{"type":8,"value":158781,"toc":159053},[158782,158784,158787,158791,158794,158808,158811,158824,158828,158831,158874,158881,158885,158888,158918,158920,158923,158929,158997,159000,159020,159022,159030,159034,159050],[11,158783,14],{"id":13},[16,158785,158786],{},"Nitro is a highly modular framework for modern server-side applications. It allows developers to extend runtime behavior through hooks and plugins, providing fine-grained control over application behavior.",[11,158788,158790],{"id":158789},"installing-nitro","Installing Nitro",[16,158792,158793],{},"Installation is straightforward. Add Nitro to your project dependencies:",[25,158795,158797],{"className":27,"code":158796,"language":29,"meta":30,"style":30},"npm install nitro\n",[20,158798,158799],{"__ignoreMap":30},[34,158800,158801,158803,158805],{"class":36,"line":37},[34,158802,8177],{"class":47},[34,158804,118],{"class":54},[34,158806,158807],{"class":54}," nitro\n",[16,158809,158810],{},"Alternatively, use Yarn:",[25,158812,158814],{"className":27,"code":158813,"language":29,"meta":30,"style":30},"yarn add nitro\n",[20,158815,158816],{"__ignoreMap":30},[34,158817,158818,158820,158822],{"class":36,"line":37},[34,158819,13810],{"class":47},[34,158821,7854],{"class":54},[34,158823,158807],{"class":54},[11,158825,158827],{"id":158826},"defining-plugins","Defining Plugins",[16,158829,158830],{},"Plugins enable you to access Nitro's lifecycle events and integrate custom logic. For example:",[25,158832,158834],{"className":571,"code":158833,"language":573,"meta":30,"style":30},"export default defineNitroPlugin((nitroApp) => {\n  console.log('Nitro is running!', nitroApp);\n});\n",[20,158835,158836,158856,158870],{"__ignoreMap":30},[34,158837,158838,158840,158842,158845,158847,158850,158852,158854],{"class":36,"line":37},[34,158839,652],{"class":580},[34,158841,7298],{"class":580},[34,158843,158844],{"class":47}," defineNitroPlugin",[34,158846,8348],{"class":181},[34,158848,158849],{"class":675},"nitroApp",[34,158851,4817],{"class":181},[34,158853,3361],{"class":580},[34,158855,661],{"class":181},[34,158857,158858,158860,158862,158864,158867],{"class":36,"line":44},[34,158859,14929],{"class":181},[34,158861,2424],{"class":47},[34,158863,1607],{"class":181},[34,158865,158866],{"class":54},"'Nitro is running!'",[34,158868,158869],{"class":181},", nitroApp);\n",[34,158871,158872],{"class":36,"line":58},[34,158873,14873],{"class":181},[16,158875,158876,158877,158880],{},"Place your plugin file in the ",[20,158878,158879],{},"server/plugins"," directory to have it auto-registered during server initialization.",[102,158882,158884],{"id":158883},"custom-directory-for-plugins","Custom Directory for Plugins",[16,158886,158887],{},"You can specify a custom directory for plugins:",[25,158889,158891],{"className":571,"code":158890,"language":573,"meta":30,"style":30},"export default defineNitroConfig({\n  plugins: ['my-plugins/hello.ts']\n});\n",[20,158892,158893,158904,158914],{"__ignoreMap":30},[34,158894,158895,158897,158899,158902],{"class":36,"line":37},[34,158896,652],{"class":580},[34,158898,7298],{"class":580},[34,158900,158901],{"class":47}," defineNitroConfig",[34,158903,613],{"class":181},[34,158905,158906,158909,158912],{"class":36,"line":44},[34,158907,158908],{"class":181},"  plugins: [",[34,158910,158911],{"class":54},"'my-plugins/hello.ts'",[34,158913,924],{"class":181},[34,158915,158916],{"class":36,"line":58},[34,158917,14873],{"class":181},[11,158919,2244],{"id":2249},[16,158921,158922],{},"Lifecycle hooks allow you to respond to specific runtime events:",[16,158924,158925,158926,158928],{},"Example for the ",[20,158927,17197],{}," event hook:",[25,158930,158932],{"className":571,"code":158931,"language":573,"meta":30,"style":30},"export default defineNitroPlugin((nitro) => {\n  nitro.hooks.hook(\"close\", async () => {\n    console.log(\"Nitro is shutting down.\");\n  });\n});\n",[20,158933,158934,158953,158976,158989,158993],{"__ignoreMap":30},[34,158935,158936,158938,158940,158942,158944,158947,158949,158951],{"class":36,"line":37},[34,158937,652],{"class":580},[34,158939,7298],{"class":580},[34,158941,158844],{"class":47},[34,158943,8348],{"class":181},[34,158945,158946],{"class":675},"nitro",[34,158948,4817],{"class":181},[34,158950,3361],{"class":580},[34,158952,661],{"class":181},[34,158954,158955,158958,158961,158963,158966,158968,158970,158972,158974],{"class":36,"line":44},[34,158956,158957],{"class":181},"  nitro.hooks.",[34,158959,158960],{"class":47},"hook",[34,158962,1607],{"class":181},[34,158964,158965],{"class":54},"\"close\"",[34,158967,1798],{"class":181},[34,158969,17403],{"class":580},[34,158971,17406],{"class":181},[34,158973,3361],{"class":580},[34,158975,661],{"class":181},[34,158977,158978,158980,158982,158984,158987],{"class":36,"line":58},[34,158979,2421],{"class":181},[34,158981,2424],{"class":47},[34,158983,1607],{"class":181},[34,158985,158986],{"class":54},"\"Nitro is shutting down.\"",[34,158988,1586],{"class":181},[34,158990,158991],{"class":36,"line":65},[34,158992,3186],{"class":181},[34,158994,158995],{"class":36,"line":71},[34,158996,14873],{"class":181},[16,158998,158999],{},"Other common hooks include:",[309,159001,159002,159007,159013],{},[312,159003,159004,159006],{},[20,159005,1908],{}," for handling errors",[312,159008,159009,159012],{},[20,159010,159011],{},"render:response"," for modifying server-rendered responses",[312,159014,159015,128469,159017,159019],{},[20,159016,111605],{},[20,159018,1892],{}," hooks for intercepting HTTP requests",[11,159021,5595],{"id":5600},[309,159023,159024,159027],{},[312,159025,159026],{},"Structure lifecycle hooks to avoid blocking server operations.",[312,159028,159029],{},"Keep plugins modular and reusable.",[11,159031,159033],{"id":159032},"additional-resources","Additional Resources",[309,159035,159036,159043],{},[312,159037,159038],{},[145,159039,159042],{"href":159040,"rel":159041},"https://nitro.build/guide/#nitro-runtime-hooks",[149],"Hooks documentation",[312,159044,159045],{},[145,159046,159049],{"href":159047,"rel":159048},"https://github.com/nitrojs/nitro",[149],"Nitro GitHub repository",[388,159051,159052],{},"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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":30,"searchDepth":44,"depth":44,"links":159054},[159055,159056,159057,159060,159061,159062],{"id":13,"depth":44,"text":14},{"id":158789,"depth":44,"text":158790},{"id":158826,"depth":44,"text":158827,"children":159058},[159059],{"id":158883,"depth":58,"text":158884},{"id":2249,"depth":44,"text":2244},{"id":5600,"depth":44,"text":5595},{"id":159032,"depth":44,"text":159033},"Introduction to the Nitro framework, including runtime behavior, plugins, and lifecycle hooks.",{},"/nitro/overview",{"title":158779,"description":159063},"nitro/overview",[8606,159069,14296,157857],"ssr","3zrrkGES4r2eOkDaBVBBspMsjwtADz1FMS6cXYenEik",{"id":159072,"title":159073,"body":159074,"date":402,"description":159151,"extension":404,"meta":159152,"navigation":61,"order":37,"path":159153,"seo":159154,"stem":159155,"subject":159156,"tags":159157,"__hash__":159161},"topics/nix/overview.md","Nix",{"type":8,"value":159075,"toc":159143},[159076,159080,159086,159089,159096,159102,159108,159112,159118,159121,159125,159131,159135],[11,159077,159079],{"id":159078},"ad-hoc-shell-environments","Ad Hoc Shell Environments",[25,159081,159084],{"className":159082,"code":159083,"language":780},[13703],"# Start a temporary shell with specific packages\nnix-shell -p PACKAGE_NAME\n\n# Example: Start a shell with curl installed\nnix-shell -p curl\n",[20,159085,159083],{"__ignoreMap":30},[16,159087,159088],{},"Ad hoc shell environments with Nix allow for the easy sharing of project dependencies and tools without globally installing them. Suitable for all Linux distributions, macOS, and WSL.",[11,159090,159092,159093],{"id":159091},"declarative-shells-with-shellnix","Declarative Shells with ",[20,159094,159095],{},"shell.nix",[25,159097,159100],{"className":159098,"code":159099,"language":780},[13703],"# Example shell.nix file\n{\n  pkgs ? import \u003Cnixpkgs> {}\n}: {\n  mkShell {\n    buildInputs = [\n      pkgs.curl\n      pkgs.git\n    ];\n  }\n}\n",[20,159101,159099],{"__ignoreMap":30},[16,159103,159104,159105,151],{},"Declarative shells allow team members to have consistent development environments. Add your dependencies to ",[20,159106,159107],{},"buildInputs",[11,159109,159111],{"id":159110},"reproducible-scripts","Reproducible Scripts",[25,159113,159116],{"className":159114,"code":159115,"language":780},[13703],"#!/usr/bin/env nix-shell\n#!nix-shell -p bash jq\n\n# Your script code here\nname=\"world\"\necho \"Hello, $name\"\n",[20,159117,159115],{"__ignoreMap":30},[16,159119,159120],{},"With Nix, scripts can declare their own dependencies, providing the benefits of reproducibility and isolation.",[11,159122,159124],{"id":159123},"managing-packages","Managing Packages",[25,159126,159129],{"className":159127,"code":159128,"language":780},[13703],"# Install a package globally (user-level)\nnix-env -iA nixpkgs.PACKAGE_NAME\n\n# Uninstall a package\ndix-env -e PACKAGE_NAME\n\n# List installed packages\ndix-env -q\n",[20,159130,159128],{"__ignoreMap":30},[11,159132,159134],{"id":159133},"getting-started-with-nix","Getting Started with Nix",[16,159136,159137,159138,159142],{},"Refer to ",[145,159139,159140],{"href":159140,"rel":159141},"https://nix.dev/tutorials/first-steps/",[149]," for a detailed walkthrough, including installation instructions and advanced configuration.",{"title":30,"searchDepth":44,"depth":44,"links":159144},[159145,159146,159148,159149,159150],{"id":159078,"depth":44,"text":159079},{"id":159091,"depth":44,"text":159147},"Declarative Shells with shell.nix",{"id":159110,"depth":44,"text":159111},{"id":159123,"depth":44,"text":159124},{"id":159133,"depth":44,"text":159134},"Quickly set up shell environments, run reproducible scripts, and manage packages and configurations with Nix.",{},"/nix/overview",{"title":159073,"description":159151},"nix/overview","nix",[159156,159158,10358,159159,159160],"packaging","declarative","reproducible","oZuGKyjnMwpf3vun7MpYuzwzd43Egm7QhHMM6OCAXIQ",{"id":159163,"title":159164,"body":159165,"date":402,"description":159234,"extension":404,"meta":159235,"navigation":61,"order":250,"path":159236,"seo":159237,"stem":159238,"subject":8177,"tags":159239,"__hash__":159240},"topics/npm/cache-management.md","Cache Management",{"type":8,"value":159166,"toc":159231},[159167,159170,159229],[11,159168,159164],{"id":159169},"cache-management",[25,159171,159173],{"className":27,"code":159172,"language":29,"meta":30,"style":30},"# View cache folder\nnpm config get cache\n\n# Clean cache\nnpm cache clean --force\n\n# Verify cache\nnpm cache verify\n",[20,159174,159175,159180,159191,159195,159200,159211,159215,159220],{"__ignoreMap":30},[34,159176,159177],{"class":36,"line":37},[34,159178,159179],{"class":40},"# View cache folder\n",[34,159181,159182,159184,159186,159188],{"class":36,"line":44},[34,159183,8177],{"class":47},[34,159185,58810],{"class":54},[34,159187,7173],{"class":54},[34,159189,159190],{"class":54}," cache\n",[34,159192,159193],{"class":36,"line":58},[34,159194,62],{"emptyLinePlaceholder":61},[34,159196,159197],{"class":36,"line":65},[34,159198,159199],{"class":40},"# Clean cache\n",[34,159201,159202,159204,159206,159208],{"class":36,"line":71},[34,159203,8177],{"class":47},[34,159205,48296],{"class":54},[34,159207,53897],{"class":54},[34,159209,159210],{"class":50}," --force\n",[34,159212,159213],{"class":36,"line":77},[34,159214,62],{"emptyLinePlaceholder":61},[34,159216,159217],{"class":36,"line":82},[34,159218,159219],{"class":40},"# Verify cache\n",[34,159221,159222,159224,159226],{"class":36,"line":88},[34,159223,8177],{"class":47},[34,159225,48296],{"class":54},[34,159227,159228],{"class":54}," verify\n",[388,159230,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":159232},[159233],{"id":159169,"depth":44,"text":159164},"Cache Management in npm.",{},"/npm/cache-management",{"title":159164,"description":159234},"npm/cache-management",[8177,78040,5591,8606],"Rch4C3JxXlDiNandkW4DzhrUhhibMX_UfRqrxkueysw",{"id":159242,"title":8686,"body":159243,"date":402,"description":159408,"extension":404,"meta":159409,"navigation":61,"order":263,"path":159410,"seo":159411,"stem":159412,"subject":8177,"tags":159413,"__hash__":159414},"topics/npm/configuration.md",{"type":8,"value":159244,"toc":159405},[159245,159247,159403],[11,159246,8686],{"id":558},[25,159248,159250],{"className":27,"code":159249,"language":29,"meta":30,"style":30},"# View all config\nnpm config list\nnpm config list -l\n\n# Get config value\nnpm config get \u003Ckey>\nnpm config get registry\n\n# Set config value\nnpm config set \u003Ckey> \u003Cvalue>\nnpm config set registry https://registry.npmjs.org/\n\n# Delete config value\nnpm config delete \u003Ckey>\n\n# Edit config file\nnpm config edit\n",[20,159251,159252,159257,159265,159275,159279,159284,159301,159312,159316,159321,159346,159360,159364,159369,159385,159389,159394],{"__ignoreMap":30},[34,159253,159254],{"class":36,"line":37},[34,159255,159256],{"class":40},"# View all config\n",[34,159258,159259,159261,159263],{"class":36,"line":44},[34,159260,8177],{"class":47},[34,159262,58810],{"class":54},[34,159264,7536],{"class":54},[34,159266,159267,159269,159271,159273],{"class":36,"line":58},[34,159268,8177],{"class":47},[34,159270,58810],{"class":54},[34,159272,6345],{"class":54},[34,159274,93],{"class":50},[34,159276,159277],{"class":36,"line":65},[34,159278,62],{"emptyLinePlaceholder":61},[34,159280,159281],{"class":36,"line":71},[34,159282,159283],{"class":40},"# Get config value\n",[34,159285,159286,159288,159290,159292,159294,159297,159299],{"class":36,"line":77},[34,159287,8177],{"class":47},[34,159289,58810],{"class":54},[34,159291,7173],{"class":54},[34,159293,5470],{"class":580},[34,159295,159296],{"class":54},"ke",[34,159298,60946],{"class":181},[34,159300,1248],{"class":580},[34,159302,159303,159305,159307,159309],{"class":36,"line":82},[34,159304,8177],{"class":47},[34,159306,58810],{"class":54},[34,159308,7173],{"class":54},[34,159310,159311],{"class":54}," registry\n",[34,159313,159314],{"class":36,"line":88},[34,159315,62],{"emptyLinePlaceholder":61},[34,159317,159318],{"class":36,"line":242},[34,159319,159320],{"class":40},"# Set config value\n",[34,159322,159323,159325,159327,159329,159331,159333,159335,159337,159339,159342,159344],{"class":36,"line":250},[34,159324,8177],{"class":47},[34,159326,58810],{"class":54},[34,159328,9481],{"class":54},[34,159330,5470],{"class":580},[34,159332,159296],{"class":54},[34,159334,60946],{"class":181},[34,159336,5691],{"class":580},[34,159338,5470],{"class":580},[34,159340,159341],{"class":54},"valu",[34,159343,5476],{"class":181},[34,159345,1248],{"class":580},[34,159347,159348,159350,159352,159354,159357],{"class":36,"line":263},[34,159349,8177],{"class":47},[34,159351,58810],{"class":54},[34,159353,9481],{"class":54},[34,159355,159356],{"class":54}," registry",[34,159358,159359],{"class":54}," https://registry.npmjs.org/\n",[34,159361,159362],{"class":36,"line":275},[34,159363,62],{"emptyLinePlaceholder":61},[34,159365,159366],{"class":36,"line":700},[34,159367,159368],{"class":40},"# Delete config value\n",[34,159370,159371,159373,159375,159377,159379,159381,159383],{"class":36,"line":706},[34,159372,8177],{"class":47},[34,159374,58810],{"class":54},[34,159376,9562],{"class":54},[34,159378,5470],{"class":580},[34,159380,159296],{"class":54},[34,159382,60946],{"class":181},[34,159384,1248],{"class":580},[34,159386,159387],{"class":36,"line":715},[34,159388,62],{"emptyLinePlaceholder":61},[34,159390,159391],{"class":36,"line":725},[34,159392,159393],{"class":40},"# Edit config file\n",[34,159395,159396,159398,159400],{"class":36,"line":734},[34,159397,8177],{"class":47},[34,159399,58810],{"class":54},[34,159401,159402],{"class":54}," edit\n",[388,159404,5578],{},{"title":30,"searchDepth":44,"depth":44,"links":159406},[159407],{"id":558,"depth":44,"text":8686},"Configuration in npm.",{},"/npm/configuration",{"title":8686,"description":159408},"npm/configuration",[8177,78040,5591,8606],"_E--kuhkmaePVoeXtdezSvsKm0My545iHziOen-F3dQ",{"id":159416,"title":6035,"body":159417,"date":402,"description":159497,"extension":404,"meta":159498,"navigation":61,"order":44,"path":159499,"seo":159500,"stem":159501,"subject":8177,"tags":159502,"__hash__":159503},"topics/npm/getting-started.md",{"type":8,"value":159418,"toc":159494},[159419,159421,159492],[11,159420,6035],{"id":6040},[25,159422,159424],{"className":27,"code":159423,"language":29,"meta":30,"style":30},"# Check npm version\nnpm --version\nnpm -v\n\n# Update npm\nnpm install -g npm@latest\n\n# Get help\nnpm help\nnpm help \u003Ccommand>\n",[20,159425,159426,159431,159437,159443,159447,159452,159463,159467,159471,159477],{"__ignoreMap":30},[34,159427,159428],{"class":36,"line":37},[34,159429,159430],{"class":40},"# Check npm version\n",[34,159432,159433,159435],{"class":36,"line":44},[34,159434,8177],{"class":47},[34,159436,5013],{"class":50},[34,159438,159439,159441],{"class":36,"line":58},[34,159440,8177],{"class":47},[34,159442,57767],{"class":50},[34,159444,159445],{"class":36,"line":65},[34,159446,62],{"emptyLinePlaceholder":61},[34,159448,159449],{"class":36,"line":71},[34,159450,159451],{"class":40},"# Update npm\n",[34,159453,159454,159456,159458,159460],{"class":36,"line":77},[34,159455,8177],{"class":47},[34,159457,118],{"class":54},[34,159459,9753],{"class":50},[34,159461,159462],{"class":54}," npm@latest\n",[34,159464,159465],{"class":36,"line":82},[34,159466,62],{"emptyLinePlaceholder":61},[34,159468,159469],{"class":36,"line":88},[34,159470,6065],{"class":40},[34,159472,159473,159475],{"class":36,"line":242},[34,159474,8177],{"class":47},[34,159476,6072],{"class":54},[34,159478,159479,159481,159484,159486,159488,159490],{"class":36,"line":250},[34,159480,8177],{"class":47},[34,159482,159483],{"class":54}," help",[34,159485,5470],{"class":580},[34,159487,58037],{"class":54},[34,159489,5878],{"class":181},[34,159491,1248],{"class":580},[388,159493,43033],{},{"title":30,"searchDepth":44,"depth":44,"links":159495},[159496],{"id":6040,"depth":44,"text":6035},"Getting Started in npm.",{},"/npm/getting-started",{"title":6035,"description":159497},"npm/getting-started",[8177,78040,5591,8606],"0abpzbt9v7_q61sKpBTMpDhZM7zemPwQzOpuTiCdcPI",{"id":159505,"title":6112,"body":159506,"date":402,"description":159727,"extension":404,"meta":159728,"navigation":61,"order":65,"path":159729,"seo":159730,"stem":159731,"subject":8177,"tags":159732,"__hash__":159733},"topics/npm/installing-packages.md",{"type":8,"value":159507,"toc":159724},[159508,159510,159722],[11,159509,6112],{"id":6117},[25,159511,159513],{"className":27,"code":159512,"language":29,"meta":30,"style":30},"# Install all dependencies from package.json\nnpm install\nnpm i\n\n# Install a package (adds to dependencies)\nnpm install \u003Cpackage>\nnpm i \u003Cpackage>\n\n# Install as dev dependency\nnpm install --save-dev \u003Cpackage>\nnpm i -D \u003Cpackage>\n\n# Install globally\nnpm install -g \u003Cpackage>\n\n# Install specific version\nnpm install \u003Cpackage>@\u003Cversion>\nnpm install lodash@4.17.21\n\n# Install from git\nnpm install git+https://github.com/user/repo.git\n\n# Install without saving to package.json\nnpm install --no-save \u003Cpackage>\n",[20,159514,159515,159520,159526,159533,159537,159542,159556,159570,159574,159579,159595,159611,159615,159620,159636,159640,159645,159669,159678,159682,159687,159696,159700,159705],{"__ignoreMap":30},[34,159516,159517],{"class":36,"line":37},[34,159518,159519],{"class":40},"# Install all dependencies from package.json\n",[34,159521,159522,159524],{"class":36,"line":44},[34,159523,8177],{"class":47},[34,159525,5951],{"class":54},[34,159527,159528,159530],{"class":36,"line":58},[34,159529,8177],{"class":47},[34,159531,159532],{"class":54}," i\n",[34,159534,159535],{"class":36,"line":65},[34,159536,62],{"emptyLinePlaceholder":61},[34,159538,159539],{"class":36,"line":71},[34,159540,159541],{"class":40},"# Install a package (adds to dependencies)\n",[34,159543,159544,159546,159548,159550,159552,159554],{"class":36,"line":77},[34,159545,8177],{"class":47},[34,159547,118],{"class":54},[34,159549,5470],{"class":580},[34,159551,5473],{"class":54},[34,159553,5476],{"class":181},[34,159555,1248],{"class":580},[34,159557,159558,159560,159562,159564,159566,159568],{"class":36,"line":82},[34,159559,8177],{"class":47},[34,159561,13765],{"class":54},[34,159563,5470],{"class":580},[34,159565,5473],{"class":54},[34,159567,5476],{"class":181},[34,159569,1248],{"class":580},[34,159571,159572],{"class":36,"line":88},[34,159573,62],{"emptyLinePlaceholder":61},[34,159575,159576],{"class":36,"line":242},[34,159577,159578],{"class":40},"# Install as dev dependency\n",[34,159580,159581,159583,159585,159587,159589,159591,159593],{"class":36,"line":250},[34,159582,8177],{"class":47},[34,159584,118],{"class":54},[34,159586,29537],{"class":50},[34,159588,5470],{"class":580},[34,159590,5473],{"class":54},[34,159592,5476],{"class":181},[34,159594,1248],{"class":580},[34,159596,159597,159599,159601,159603,159605,159607,159609],{"class":36,"line":263},[34,159598,8177],{"class":47},[34,159600,13765],{"class":54},[34,159602,13768],{"class":50},[34,159604,5470],{"class":580},[34,159606,5473],{"class":54},[34,159608,5476],{"class":181},[34,159610,1248],{"class":580},[34,159612,159613],{"class":36,"line":275},[34,159614,62],{"emptyLinePlaceholder":61},[34,159616,159617],{"class":36,"line":700},[34,159618,159619],{"class":40},"# Install globally\n",[34,159621,159622,159624,159626,159628,159630,159632,159634],{"class":36,"line":706},[34,159623,8177],{"class":47},[34,159625,118],{"class":54},[34,159627,9753],{"class":50},[34,159629,5470],{"class":580},[34,159631,5473],{"class":54},[34,159633,5476],{"class":181},[34,159635,1248],{"class":580},[34,159637,159638],{"class":36,"line":715},[34,159639,62],{"emptyLinePlaceholder":61},[34,159641,159642],{"class":36,"line":725},[34,159643,159644],{"class":40},"# Install specific version\n",[34,159646,159647,159649,159651,159653,159655,159657,159659,159661,159663,159665,159667],{"class":36,"line":734},[34,159648,8177],{"class":47},[34,159650,118],{"class":54},[34,159652,5470],{"class":580},[34,159654,5473],{"class":54},[34,159656,5476],{"class":181},[34,159658,5691],{"class":580},[34,159660,607],{"class":54},[34,159662,815],{"class":580},[34,159664,6214],{"class":54},[34,159666,6217],{"class":181},[34,159668,1248],{"class":580},[34,159670,159671,159673,159675],{"class":36,"line":742},[34,159672,8177],{"class":47},[34,159674,118],{"class":54},[34,159676,159677],{"class":54}," lodash@4.17.21\n",[34,159679,159680],{"class":36,"line":748},[34,159681,62],{"emptyLinePlaceholder":61},[34,159683,159684],{"class":36,"line":754},[34,159685,159686],{"class":40},"# Install from git\n",[34,159688,159689,159691,159693],{"class":36,"line":759},[34,159690,8177],{"class":47},[34,159692,118],{"class":54},[34,159694,159695],{"class":54}," git+https://github.com/user/repo.git\n",[34,159697,159698],{"class":36,"line":771},[34,159699,62],{"emptyLinePlaceholder":61},[34,159701,159702],{"class":36,"line":794},[34,159703,159704],{"class":40},"# Install without saving to package.json\n",[34,159706,159707,159709,159711,159714,159716,159718,159720],{"class":36,"line":824},[34,159708,8177],{"class":47},[34,159710,118],{"class":54},[34,159712,159713],{"class":50}," --no-save",[34,159715,5470],{"class":580},[34,159717,5473],{"class":54},[34,159719,5476],{"class":181},[34,159721,1248],{"class":580},[388,159723,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":159725},[159726],{"id":6117,"depth":44,"text":6112},"Installing Packages in npm.",{},"/npm/installing-packages",{"title":6112,"description":159727},"npm/installing-packages",[8177,78040,5591,8606],"moc-OS7iOfAN8EE8qOJeQOEm3IFuhbfUGWMUNcGPD0M",{"id":159735,"title":6323,"body":159736,"date":402,"description":159866,"extension":404,"meta":159867,"navigation":61,"order":82,"path":159868,"seo":159869,"stem":159870,"subject":8177,"tags":159871,"__hash__":159872},"topics/npm/listing-packages.md",{"type":8,"value":159737,"toc":159863},[159738,159740,159861],[11,159739,6323],{"id":6328},[25,159741,159743],{"className":27,"code":159742,"language":29,"meta":30,"style":30},"# List installed packages\nnpm list\nnpm ls\n\n# List top-level packages only\nnpm list --depth=0\n\n# List global packages\nnpm list -g --depth=0\n\n# Show package info\nnpm info \u003Cpackage>\nnpm view \u003Cpackage>\n\n# Show package versions\nnpm view \u003Cpackage> versions\n",[20,159744,159745,159749,159755,159761,159765,159770,159779,159783,159788,159798,159802,159807,159821,159835,159839,159844],{"__ignoreMap":30},[34,159746,159747],{"class":36,"line":37},[34,159748,16346],{"class":40},[34,159750,159751,159753],{"class":36,"line":44},[34,159752,8177],{"class":47},[34,159754,7536],{"class":54},[34,159756,159757,159759],{"class":36,"line":58},[34,159758,8177],{"class":47},[34,159760,8791],{"class":54},[34,159762,159763],{"class":36,"line":65},[34,159764,62],{"emptyLinePlaceholder":61},[34,159766,159767],{"class":36,"line":71},[34,159768,159769],{"class":40},"# List top-level packages only\n",[34,159771,159772,159774,159776],{"class":36,"line":77},[34,159773,8177],{"class":47},[34,159775,6345],{"class":54},[34,159777,159778],{"class":50}," --depth=0\n",[34,159780,159781],{"class":36,"line":82},[34,159782,62],{"emptyLinePlaceholder":61},[34,159784,159785],{"class":36,"line":88},[34,159786,159787],{"class":40},"# List global packages\n",[34,159789,159790,159792,159794,159796],{"class":36,"line":242},[34,159791,8177],{"class":47},[34,159793,6345],{"class":54},[34,159795,9753],{"class":50},[34,159797,159778],{"class":50},[34,159799,159800],{"class":36,"line":250},[34,159801,62],{"emptyLinePlaceholder":61},[34,159803,159804],{"class":36,"line":263},[34,159805,159806],{"class":40},"# Show package info\n",[34,159808,159809,159811,159813,159815,159817,159819],{"class":36,"line":275},[34,159810,8177],{"class":47},[34,159812,54126],{"class":54},[34,159814,5470],{"class":580},[34,159816,5473],{"class":54},[34,159818,5476],{"class":181},[34,159820,1248],{"class":580},[34,159822,159823,159825,159827,159829,159831,159833],{"class":36,"line":700},[34,159824,8177],{"class":47},[34,159826,92679],{"class":54},[34,159828,5470],{"class":580},[34,159830,5473],{"class":54},[34,159832,5476],{"class":181},[34,159834,1248],{"class":580},[34,159836,159837],{"class":36,"line":706},[34,159838,62],{"emptyLinePlaceholder":61},[34,159840,159841],{"class":36,"line":715},[34,159842,159843],{"class":40},"# Show package versions\n",[34,159845,159846,159848,159850,159852,159854,159856,159858],{"class":36,"line":725},[34,159847,8177],{"class":47},[34,159849,92679],{"class":54},[34,159851,5470],{"class":580},[34,159853,5473],{"class":54},[34,159855,5476],{"class":181},[34,159857,5691],{"class":580},[34,159859,159860],{"class":54}," versions\n",[388,159862,5578],{},{"title":30,"searchDepth":44,"depth":44,"links":159864},[159865],{"id":6328,"depth":44,"text":6323},"Listing Packages in npm.",{},"/npm/listing-packages",{"title":6323,"description":159866},"npm/listing-packages",[8177,78040,5591,8606],"tf3V-Axqw0nygGkEZTK58wTDLjoStuRtOzpCijIX10Q",{"id":159874,"title":159875,"body":159876,"date":402,"description":159987,"extension":404,"meta":159988,"navigation":61,"order":706,"path":159989,"seo":159990,"stem":159991,"subject":8177,"tags":159992,"__hash__":159993},"topics/npm/npx-package-runner.md","npx (Package Runner)",{"type":8,"value":159877,"toc":159984},[159878,159881,159981],[11,159879,159875],{"id":159880},"npx-package-runner",[25,159882,159884],{"className":27,"code":159883,"language":29,"meta":30,"style":30},"# Run package without installing\nnpx \u003Cpackage>\nnpx create-react-app my-app\n\n# Run specific version\nnpx \u003Cpackage>@\u003Cversion>\n\n# Run local package\nnpx \u003Clocal-package>\n\n# Clear npx cache\nnpx clear-npx-cache\n",[20,159885,159886,159891,159903,159912,159916,159921,159943,159947,159952,159965,159969,159974],{"__ignoreMap":30},[34,159887,159888],{"class":36,"line":37},[34,159889,159890],{"class":40},"# Run package without installing\n",[34,159892,159893,159895,159897,159899,159901],{"class":36,"line":44},[34,159894,8205],{"class":47},[34,159896,5470],{"class":580},[34,159898,5473],{"class":54},[34,159900,5476],{"class":181},[34,159902,1248],{"class":580},[34,159904,159905,159907,159910],{"class":36,"line":58},[34,159906,8205],{"class":47},[34,159908,159909],{"class":54}," create-react-app",[34,159911,7508],{"class":54},[34,159913,159914],{"class":36,"line":65},[34,159915,62],{"emptyLinePlaceholder":61},[34,159917,159918],{"class":36,"line":71},[34,159919,159920],{"class":40},"# Run specific version\n",[34,159922,159923,159925,159927,159929,159931,159933,159935,159937,159939,159941],{"class":36,"line":77},[34,159924,8205],{"class":47},[34,159926,5470],{"class":580},[34,159928,5473],{"class":54},[34,159930,5476],{"class":181},[34,159932,5691],{"class":580},[34,159934,607],{"class":54},[34,159936,815],{"class":580},[34,159938,6214],{"class":54},[34,159940,6217],{"class":181},[34,159942,1248],{"class":580},[34,159944,159945],{"class":36,"line":82},[34,159946,62],{"emptyLinePlaceholder":61},[34,159948,159949],{"class":36,"line":88},[34,159950,159951],{"class":40},"# Run local package\n",[34,159953,159954,159956,159958,159961,159963],{"class":36,"line":242},[34,159955,8205],{"class":47},[34,159957,5470],{"class":580},[34,159959,159960],{"class":54},"local-packag",[34,159962,5476],{"class":181},[34,159964,1248],{"class":580},[34,159966,159967],{"class":36,"line":250},[34,159968,62],{"emptyLinePlaceholder":61},[34,159970,159971],{"class":36,"line":263},[34,159972,159973],{"class":40},"# Clear npx cache\n",[34,159975,159976,159978],{"class":36,"line":275},[34,159977,8205],{"class":47},[34,159979,159980],{"class":54}," clear-npx-cache\n",[388,159982,159983],{},"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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .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":30,"searchDepth":44,"depth":44,"links":159985},[159986],{"id":159880,"depth":44,"text":159875},"npx (Package Runner) in npm.",{},"/npm/npx-package-runner",{"title":159875,"description":159987},"npm/npx-package-runner",[8177,78040,5591,8606],"TsNQywDpLevBJcOP2_MN3NTEejV9qq5N9ldN7LM15Hk",{"id":159995,"title":8177,"body":159996,"date":2633,"description":160069,"extension":404,"meta":160070,"navigation":61,"order":37,"path":160071,"seo":160072,"stem":160073,"subject":8177,"tags":160074,"__hash__":160075},"topics/npm/overview.md",{"type":8,"value":159997,"toc":160067},[159998],[309,159999,160000,160004,160010,160014,160019,160024,160028,160033,160038,160042,160046,160052,160058,160062],{},[312,160001,160002],{},[145,160003,6035],{"href":159499},[312,160005,160006],{},[145,160007,160009],{"href":160008},"/npm/project-initialization","Project Initialization",[312,160011,160012],{},[145,160013,6112],{"href":159729},[312,160015,160016],{},[145,160017,6479],{"href":160018},"/npm/removing-packages",[312,160020,160021],{},[145,160022,54370],{"href":160023},"/npm/updating-packages",[312,160025,160026],{},[145,160027,6323],{"href":159868},[312,160029,160030],{},[145,160031,15995],{"href":160032},"/npm/running-scripts",[312,160034,160035],{},[145,160036,6501],{"href":160037},"/npm/package-information",[312,160039,160040],{},[145,160041,159164],{"href":159236},[312,160043,160044],{},[145,160045,8686],{"href":159410},[312,160047,160048],{},[145,160049,160051],{"href":160050},"/npm/publishing-packages","Publishing Packages",[312,160053,160054],{},[145,160055,160057],{"href":160056},"/npm/workspaces-monorepo","Workspaces (Monorepo)",[312,160059,160060],{},[145,160061,159875],{"href":159989},[312,160063,160064],{},[145,160065,12204],{"href":160066},"/npm/useful-commands",{"title":30,"searchDepth":44,"depth":44,"links":160068},[],"Essential npm commands for Node.js package management and project workflows.",{},"/npm/overview",{"title":8177,"description":160069},"npm/overview",[8177,78040,5591,8606],"0E4cDrb1HKPvRZoRpw3pFXwS9zDGTz-rWNcK-_mvRY4",{"id":160077,"title":6501,"body":160078,"date":402,"description":160240,"extension":404,"meta":160241,"navigation":61,"order":242,"path":160037,"seo":160242,"stem":160243,"subject":8177,"tags":160244,"__hash__":160245},"topics/npm/package-information.md",{"type":8,"value":160079,"toc":160237},[160080,160082,160235],[11,160081,6501],{"id":6541},[25,160083,160085],{"className":27,"code":160084,"language":29,"meta":30,"style":30},"# Search for packages\nnpm search \u003Ckeyword>\n\n# View package details\nnpm view \u003Cpackage>\nnpm info \u003Cpackage>\n\n# View package homepage\nnpm docs \u003Cpackage>\n\n# View package repository\nnpm repo \u003Cpackage>\n\n# Check for vulnerabilities\nnpm audit\n\n# Fix vulnerabilities\nnpm audit fix\nnpm audit fix --force\n",[20,160086,160087,160092,160106,160110,160115,160129,160143,160147,160152,160167,160171,160176,160190,160194,160199,160206,160210,160215,160224],{"__ignoreMap":30},[34,160088,160089],{"class":36,"line":37},[34,160090,160091],{"class":40},"# Search for packages\n",[34,160093,160094,160096,160098,160100,160102,160104],{"class":36,"line":44},[34,160095,8177],{"class":47},[34,160097,5870],{"class":54},[34,160099,5470],{"class":580},[34,160101,5875],{"class":54},[34,160103,5878],{"class":181},[34,160105,1248],{"class":580},[34,160107,160108],{"class":36,"line":58},[34,160109,62],{"emptyLinePlaceholder":61},[34,160111,160112],{"class":36,"line":65},[34,160113,160114],{"class":40},"# View package details\n",[34,160116,160117,160119,160121,160123,160125,160127],{"class":36,"line":71},[34,160118,8177],{"class":47},[34,160120,92679],{"class":54},[34,160122,5470],{"class":580},[34,160124,5473],{"class":54},[34,160126,5476],{"class":181},[34,160128,1248],{"class":580},[34,160130,160131,160133,160135,160137,160139,160141],{"class":36,"line":77},[34,160132,8177],{"class":47},[34,160134,54126],{"class":54},[34,160136,5470],{"class":580},[34,160138,5473],{"class":54},[34,160140,5476],{"class":181},[34,160142,1248],{"class":580},[34,160144,160145],{"class":36,"line":82},[34,160146,62],{"emptyLinePlaceholder":61},[34,160148,160149],{"class":36,"line":88},[34,160150,160151],{"class":40},"# View package homepage\n",[34,160153,160154,160156,160159,160161,160163,160165],{"class":36,"line":242},[34,160155,8177],{"class":47},[34,160157,160158],{"class":54}," docs",[34,160160,5470],{"class":580},[34,160162,5473],{"class":54},[34,160164,5476],{"class":181},[34,160166,1248],{"class":580},[34,160168,160169],{"class":36,"line":250},[34,160170,62],{"emptyLinePlaceholder":61},[34,160172,160173],{"class":36,"line":263},[34,160174,160175],{"class":40},"# View package repository\n",[34,160177,160178,160180,160182,160184,160186,160188],{"class":36,"line":275},[34,160179,8177],{"class":47},[34,160181,96485],{"class":54},[34,160183,5470],{"class":580},[34,160185,5473],{"class":54},[34,160187,5476],{"class":181},[34,160189,1248],{"class":580},[34,160191,160192],{"class":36,"line":700},[34,160193,62],{"emptyLinePlaceholder":61},[34,160195,160196],{"class":36,"line":706},[34,160197,160198],{"class":40},"# Check for vulnerabilities\n",[34,160200,160201,160203],{"class":36,"line":715},[34,160202,8177],{"class":47},[34,160204,160205],{"class":54}," audit\n",[34,160207,160208],{"class":36,"line":725},[34,160209,62],{"emptyLinePlaceholder":61},[34,160211,160212],{"class":36,"line":734},[34,160213,160214],{"class":40},"# Fix vulnerabilities\n",[34,160216,160217,160219,160221],{"class":36,"line":742},[34,160218,8177],{"class":47},[34,160220,72575],{"class":54},[34,160222,160223],{"class":54}," fix\n",[34,160225,160226,160228,160230,160233],{"class":36,"line":748},[34,160227,8177],{"class":47},[34,160229,72575],{"class":54},[34,160231,160232],{"class":54}," fix",[34,160234,159210],{"class":50},[388,160236,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":160238},[160239],{"id":6541,"depth":44,"text":6501},"Package Information in npm.",{},{"title":6501,"description":160240},"npm/package-information",[8177,78040,5591,8606],"KB_fdgxleGQ56KlJfbtYH8Qc_osQ8viljcwBUl5r4uU",{"id":160247,"title":160009,"body":160248,"date":402,"description":160317,"extension":404,"meta":160318,"navigation":61,"order":58,"path":160008,"seo":160319,"stem":160320,"subject":8177,"tags":160321,"__hash__":160322},"topics/npm/project-initialization.md",{"type":8,"value":160249,"toc":160314},[160250,160253,160312],[11,160251,160009],{"id":160252},"project-initialization",[25,160254,160256],{"className":27,"code":160255,"language":29,"meta":30,"style":30},"# Create package.json interactively\nnpm init\n\n# Create with defaults\nnpm init -y\nnpm init --yes\n\n# Create scoped package\nnpm init --scope=@myorg\n",[20,160257,160258,160263,160269,160273,160278,160286,160294,160298,160303],{"__ignoreMap":30},[34,160259,160260],{"class":36,"line":37},[34,160261,160262],{"class":40},"# Create package.json interactively\n",[34,160264,160265,160267],{"class":36,"line":44},[34,160266,8177],{"class":47},[34,160268,8180],{"class":54},[34,160270,160271],{"class":36,"line":58},[34,160272,62],{"emptyLinePlaceholder":61},[34,160274,160275],{"class":36,"line":65},[34,160276,160277],{"class":40},"# Create with defaults\n",[34,160279,160280,160282,160284],{"class":36,"line":71},[34,160281,8177],{"class":47},[34,160283,5255],{"class":54},[34,160285,5665],{"class":50},[34,160287,160288,160290,160292],{"class":36,"line":77},[34,160289,8177],{"class":47},[34,160291,5255],{"class":54},[34,160293,9569],{"class":50},[34,160295,160296],{"class":36,"line":82},[34,160297,62],{"emptyLinePlaceholder":61},[34,160299,160300],{"class":36,"line":88},[34,160301,160302],{"class":40},"# Create scoped package\n",[34,160304,160305,160307,160309],{"class":36,"line":242},[34,160306,8177],{"class":47},[34,160308,5255],{"class":54},[34,160310,160311],{"class":50}," --scope=@myorg\n",[388,160313,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":160315},[160316],{"id":160252,"depth":44,"text":160009},"Project Initialization in npm.",{},{"title":160009,"description":160317},"npm/project-initialization",[8177,78040,5591,8606],"GXY9YDNbqvySIEMNdJeGnEuTX4GlCjkKdvrjszpdkAU",{"id":160324,"title":160051,"body":160325,"date":402,"description":160516,"extension":404,"meta":160517,"navigation":61,"order":275,"path":160050,"seo":160518,"stem":160519,"subject":8177,"tags":160520,"__hash__":160521},"topics/npm/publishing-packages.md",{"type":8,"value":160326,"toc":160513},[160327,160330,160511],[11,160328,160051],{"id":160329},"publishing-packages",[25,160331,160333],{"className":27,"code":160332,"language":29,"meta":30,"style":30},"# Login to npm\nnpm login\nnpm adduser\n\n# Publish package\nnpm publish\n\n# Publish scoped package publicly\nnpm publish --access public\n\n# Bump version and publish\nnpm version patch  # 1.0.0 -> 1.0.1\nnpm version minor  # 1.0.0 -> 1.1.0\nnpm version major  # 1.0.0 -> 2.0.0\nnpm publish\n\n# Unpublish (within 72 hours)\nnpm unpublish \u003Cpackage>@\u003Cversion>\n\n# Deprecate a version\nnpm deprecate \u003Cpackage>@\u003Cversion> \"message\"\n",[20,160334,160335,160340,160346,160353,160357,160362,160368,160372,160377,160389,160393,160398,160411,160423,160435,160441,160445,160450,160475,160479,160484],{"__ignoreMap":30},[34,160336,160337],{"class":36,"line":37},[34,160338,160339],{"class":40},"# Login to npm\n",[34,160341,160342,160344],{"class":36,"line":44},[34,160343,8177],{"class":47},[34,160345,9379],{"class":54},[34,160347,160348,160350],{"class":36,"line":58},[34,160349,8177],{"class":47},[34,160351,160352],{"class":54}," adduser\n",[34,160354,160355],{"class":36,"line":65},[34,160356,62],{"emptyLinePlaceholder":61},[34,160358,160359],{"class":36,"line":71},[34,160360,160361],{"class":40},"# Publish package\n",[34,160363,160364,160366],{"class":36,"line":77},[34,160365,8177],{"class":47},[34,160367,28769],{"class":54},[34,160369,160370],{"class":36,"line":82},[34,160371,62],{"emptyLinePlaceholder":61},[34,160373,160374],{"class":36,"line":88},[34,160375,160376],{"class":40},"# Publish scoped package publicly\n",[34,160378,160379,160381,160384,160387],{"class":36,"line":242},[34,160380,8177],{"class":47},[34,160382,160383],{"class":54}," publish",[34,160385,160386],{"class":50}," --access",[34,160388,99397],{"class":54},[34,160390,160391],{"class":36,"line":250},[34,160392,62],{"emptyLinePlaceholder":61},[34,160394,160395],{"class":36,"line":263},[34,160396,160397],{"class":40},"# Bump version and publish\n",[34,160399,160400,160402,160405,160408],{"class":36,"line":275},[34,160401,8177],{"class":47},[34,160403,160404],{"class":54}," version",[34,160406,160407],{"class":54}," patch",[34,160409,160410],{"class":40},"  # 1.0.0 -> 1.0.1\n",[34,160412,160413,160415,160417,160420],{"class":36,"line":700},[34,160414,8177],{"class":47},[34,160416,160404],{"class":54},[34,160418,160419],{"class":54}," minor",[34,160421,160422],{"class":40},"  # 1.0.0 -> 1.1.0\n",[34,160424,160425,160427,160429,160432],{"class":36,"line":706},[34,160426,8177],{"class":47},[34,160428,160404],{"class":54},[34,160430,160431],{"class":54}," major",[34,160433,160434],{"class":40},"  # 1.0.0 -> 2.0.0\n",[34,160436,160437,160439],{"class":36,"line":715},[34,160438,8177],{"class":47},[34,160440,28769],{"class":54},[34,160442,160443],{"class":36,"line":725},[34,160444,62],{"emptyLinePlaceholder":61},[34,160446,160447],{"class":36,"line":734},[34,160448,160449],{"class":40},"# Unpublish (within 72 hours)\n",[34,160451,160452,160454,160457,160459,160461,160463,160465,160467,160469,160471,160473],{"class":36,"line":742},[34,160453,8177],{"class":47},[34,160455,160456],{"class":54}," unpublish",[34,160458,5470],{"class":580},[34,160460,5473],{"class":54},[34,160462,5476],{"class":181},[34,160464,5691],{"class":580},[34,160466,607],{"class":54},[34,160468,815],{"class":580},[34,160470,6214],{"class":54},[34,160472,6217],{"class":181},[34,160474,1248],{"class":580},[34,160476,160477],{"class":36,"line":748},[34,160478,62],{"emptyLinePlaceholder":61},[34,160480,160481],{"class":36,"line":754},[34,160482,160483],{"class":40},"# Deprecate a version\n",[34,160485,160486,160488,160491,160493,160495,160497,160499,160501,160503,160505,160507,160509],{"class":36,"line":759},[34,160487,8177],{"class":47},[34,160489,160490],{"class":54}," deprecate",[34,160492,5470],{"class":580},[34,160494,5473],{"class":54},[34,160496,5476],{"class":181},[34,160498,5691],{"class":580},[34,160500,607],{"class":54},[34,160502,815],{"class":580},[34,160504,6214],{"class":54},[34,160506,6217],{"class":181},[34,160508,5691],{"class":580},[34,160510,100601],{"class":54},[388,160512,5578],{},{"title":30,"searchDepth":44,"depth":44,"links":160514},[160515],{"id":160329,"depth":44,"text":160051},"Publishing Packages in npm.",{},{"title":160051,"description":160516},"npm/publishing-packages",[8177,78040,5591,8606],"oBQQcv-BM8PQdBGAOEPrZR5oR4SvBmYoOu9dJbumPgA",{"id":160523,"title":6479,"body":160524,"date":402,"description":160635,"extension":404,"meta":160636,"navigation":61,"order":71,"path":160018,"seo":160637,"stem":160638,"subject":8177,"tags":160639,"__hash__":160640},"topics/npm/removing-packages.md",{"type":8,"value":160525,"toc":160632},[160526,160528,160630],[11,160527,6479],{"id":6657},[25,160529,160531],{"className":27,"code":160530,"language":29,"meta":30,"style":30},"# Remove a package\nnpm uninstall \u003Cpackage>\nnpm un \u003Cpackage>\nnpm remove \u003Cpackage>\n\n# Remove global package\nnpm uninstall -g \u003Cpackage>\n\n# Remove dev dependency\nnpm uninstall --save-dev \u003Cpackage>\n",[20,160532,160533,160537,160551,160566,160580,160584,160589,160605,160609,160614],{"__ignoreMap":30},[34,160534,160535],{"class":36,"line":37},[34,160536,16314],{"class":40},[34,160538,160539,160541,160543,160545,160547,160549],{"class":36,"line":44},[34,160540,8177],{"class":47},[34,160542,49149],{"class":54},[34,160544,5470],{"class":580},[34,160546,5473],{"class":54},[34,160548,5476],{"class":181},[34,160550,1248],{"class":580},[34,160552,160553,160555,160558,160560,160562,160564],{"class":36,"line":58},[34,160554,8177],{"class":47},[34,160556,160557],{"class":54}," un",[34,160559,5470],{"class":580},[34,160561,5473],{"class":54},[34,160563,5476],{"class":181},[34,160565,1248],{"class":580},[34,160567,160568,160570,160572,160574,160576,160578],{"class":36,"line":65},[34,160569,8177],{"class":47},[34,160571,6676],{"class":54},[34,160573,5470],{"class":580},[34,160575,5473],{"class":54},[34,160577,5476],{"class":181},[34,160579,1248],{"class":580},[34,160581,160582],{"class":36,"line":71},[34,160583,62],{"emptyLinePlaceholder":61},[34,160585,160586],{"class":36,"line":77},[34,160587,160588],{"class":40},"# Remove global package\n",[34,160590,160591,160593,160595,160597,160599,160601,160603],{"class":36,"line":82},[34,160592,8177],{"class":47},[34,160594,49149],{"class":54},[34,160596,9753],{"class":50},[34,160598,5470],{"class":580},[34,160600,5473],{"class":54},[34,160602,5476],{"class":181},[34,160604,1248],{"class":580},[34,160606,160607],{"class":36,"line":88},[34,160608,62],{"emptyLinePlaceholder":61},[34,160610,160611],{"class":36,"line":242},[34,160612,160613],{"class":40},"# Remove dev dependency\n",[34,160615,160616,160618,160620,160622,160624,160626,160628],{"class":36,"line":250},[34,160617,8177],{"class":47},[34,160619,49149],{"class":54},[34,160621,29537],{"class":50},[34,160623,5470],{"class":580},[34,160625,5473],{"class":54},[34,160627,5476],{"class":181},[34,160629,1248],{"class":580},[388,160631,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":160633},[160634],{"id":6657,"depth":44,"text":6479},"Removing Packages in npm.",{},{"title":6479,"description":160635},"npm/removing-packages",[8177,78040,5591,8606],"826FhZLPxDrudHkpKAjC-IzHV2vsW8PWmqdbgDXdcEE",{"id":160642,"title":15995,"body":160643,"date":402,"description":160773,"extension":404,"meta":160774,"navigation":61,"order":88,"path":160032,"seo":160775,"stem":160776,"subject":8177,"tags":160777,"__hash__":160778},"topics/npm/running-scripts.md",{"type":8,"value":160644,"toc":160770},[160645,160647,160768],[11,160646,15995],{"id":15994},[25,160648,160650],{"className":27,"code":160649,"language":29,"meta":30,"style":30},"# Run script from package.json\nnpm run \u003Cscript>\nnpm run build\nnpm run test\n\n# Common script shortcuts\nnpm start        # runs \"start\" script\nnpm test         # runs \"test\" script\nnpm stop         # runs \"stop\" script\nnpm restart      # runs \"restart\" script\n\n# Run with arguments\nnpm run build -- --watch\n\n# List available scripts\nnpm run\n",[20,160651,160652,160657,160671,160679,160687,160691,160696,160705,160714,160723,160732,160736,160741,160753,160757,160762],{"__ignoreMap":30},[34,160653,160654],{"class":36,"line":37},[34,160655,160656],{"class":40},"# Run script from package.json\n",[34,160658,160659,160661,160663,160665,160667,160669],{"class":36,"line":44},[34,160660,8177],{"class":47},[34,160662,16017],{"class":54},[34,160664,5470],{"class":580},[34,160666,16022],{"class":54},[34,160668,16025],{"class":181},[34,160670,1248],{"class":580},[34,160672,160673,160675,160677],{"class":36,"line":58},[34,160674,8177],{"class":47},[34,160676,16017],{"class":54},[34,160678,55],{"class":54},[34,160680,160681,160683,160685],{"class":36,"line":65},[34,160682,8177],{"class":47},[34,160684,16017],{"class":54},[34,160686,16110],{"class":54},[34,160688,160689],{"class":36,"line":71},[34,160690,62],{"emptyLinePlaceholder":61},[34,160692,160693],{"class":36,"line":77},[34,160694,160695],{"class":40},"# Common script shortcuts\n",[34,160697,160698,160700,160702],{"class":36,"line":82},[34,160699,8177],{"class":47},[34,160701,9677],{"class":54},[34,160703,160704],{"class":40},"        # runs \"start\" script\n",[34,160706,160707,160709,160711],{"class":36,"line":88},[34,160708,8177],{"class":47},[34,160710,17481],{"class":54},[34,160712,160713],{"class":40},"         # runs \"test\" script\n",[34,160715,160716,160718,160720],{"class":36,"line":242},[34,160717,8177],{"class":47},[34,160719,9696],{"class":54},[34,160721,160722],{"class":40},"         # runs \"stop\" script\n",[34,160724,160725,160727,160729],{"class":36,"line":250},[34,160726,8177],{"class":47},[34,160728,56262],{"class":54},[34,160730,160731],{"class":40},"      # runs \"restart\" script\n",[34,160733,160734],{"class":36,"line":263},[34,160735,62],{"emptyLinePlaceholder":61},[34,160737,160738],{"class":36,"line":275},[34,160739,160740],{"class":40},"# Run with arguments\n",[34,160742,160743,160745,160747,160749,160751],{"class":36,"line":700},[34,160744,8177],{"class":47},[34,160746,16017],{"class":54},[34,160748,14172],{"class":54},[34,160750,99171],{"class":50},[34,160752,17501],{"class":50},[34,160754,160755],{"class":36,"line":706},[34,160756,62],{"emptyLinePlaceholder":61},[34,160758,160759],{"class":36,"line":715},[34,160760,160761],{"class":40},"# List available scripts\n",[34,160763,160764,160766],{"class":36,"line":725},[34,160765,8177],{"class":47},[34,160767,93068],{"class":54},[388,160769,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":160771},[160772],{"id":15994,"depth":44,"text":15995},"Running Scripts in npm.",{},{"title":15995,"description":160773},"npm/running-scripts",[8177,78040,5591,8606],"wTt12yxQOIWyue2QDcgdCBDqAke7Mtla-u3P-ubxiXI",{"id":160780,"title":54370,"body":160781,"date":402,"description":160861,"extension":404,"meta":160862,"navigation":61,"order":77,"path":160023,"seo":160863,"stem":160864,"subject":8177,"tags":160865,"__hash__":160866},"topics/npm/updating-packages.md",{"type":8,"value":160782,"toc":160858},[160783,160785,160856],[11,160784,54370],{"id":55479},[25,160786,160788],{"className":27,"code":160787,"language":29,"meta":30,"style":30},"# Check for outdated packages\nnpm outdated\n\n# Update all packages\nnpm update\n\n# Update specific package\nnpm update \u003Cpackage>\n\n# Update global packages\nnpm update -g\n",[20,160789,160790,160795,160801,160805,160809,160815,160819,160824,160838,160842,160847],{"__ignoreMap":30},[34,160791,160792],{"class":36,"line":37},[34,160793,160794],{"class":40},"# Check for outdated packages\n",[34,160796,160797,160799],{"class":36,"line":44},[34,160798,8177],{"class":47},[34,160800,115160],{"class":54},[34,160802,160803],{"class":36,"line":58},[34,160804,62],{"emptyLinePlaceholder":61},[34,160806,160807],{"class":36,"line":65},[34,160808,55489],{"class":40},[34,160810,160811,160813],{"class":36,"line":71},[34,160812,8177],{"class":47},[34,160814,6441],{"class":54},[34,160816,160817],{"class":36,"line":77},[34,160818,62],{"emptyLinePlaceholder":61},[34,160820,160821],{"class":36,"line":82},[34,160822,160823],{"class":40},"# Update specific package\n",[34,160825,160826,160828,160830,160832,160834,160836],{"class":36,"line":88},[34,160827,8177],{"class":47},[34,160829,5619],{"class":54},[34,160831,5470],{"class":580},[34,160833,5473],{"class":54},[34,160835,5476],{"class":181},[34,160837,1248],{"class":580},[34,160839,160840],{"class":36,"line":242},[34,160841,62],{"emptyLinePlaceholder":61},[34,160843,160844],{"class":36,"line":250},[34,160845,160846],{"class":40},"# Update global packages\n",[34,160848,160849,160851,160853],{"class":36,"line":263},[34,160850,8177],{"class":47},[34,160852,5619],{"class":54},[34,160854,160855],{"class":50}," -g\n",[388,160857,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":160859},[160860],{"id":55479,"depth":44,"text":54370},"Updating Packages in npm.",{},{"title":54370,"description":160861},"npm/updating-packages",[8177,78040,5591,8606],"jBO43U6BJEzKKXN_Bwgzi4sYgBU6ER6Rl_3Ilz8bCeA",{"id":160868,"title":12204,"body":160869,"date":402,"description":161026,"extension":404,"meta":161027,"navigation":61,"order":715,"path":160066,"seo":161028,"stem":161029,"subject":8177,"tags":161030,"__hash__":161031},"topics/npm/useful-commands.md",{"type":8,"value":160870,"toc":161023},[160871,160873,161021],[11,160872,12204],{"id":12948},[25,160874,160876],{"className":27,"code":160875,"language":29,"meta":30,"style":30},"# Check for issues\nnpm doctor\n\n# Deduplicate dependencies\nnpm dedupe\n\n# Rebuild native modules\nnpm rebuild\n\n# Prune unused packages\nnpm prune\n\n# Create package lock only\nnpm install --package-lock-only\n\n# Install with exact versions\nnpm install --save-exact \u003Cpackage>\nnpm i -E \u003Cpackage>\n\n# List all npm commands\nnpm help-search \u003Cterm>\n",[20,160877,160878,160883,160889,160893,160898,160905,160909,160914,160921,160925,160930,160936,160940,160945,160954,160958,160963,160980,160996,161000,161005],{"__ignoreMap":30},[34,160879,160880],{"class":36,"line":37},[34,160881,160882],{"class":40},"# Check for issues\n",[34,160884,160885,160887],{"class":36,"line":44},[34,160886,8177],{"class":47},[34,160888,114986],{"class":54},[34,160890,160891],{"class":36,"line":58},[34,160892,62],{"emptyLinePlaceholder":61},[34,160894,160895],{"class":36,"line":65},[34,160896,160897],{"class":40},"# Deduplicate dependencies\n",[34,160899,160900,160902],{"class":36,"line":71},[34,160901,8177],{"class":47},[34,160903,160904],{"class":54}," dedupe\n",[34,160906,160907],{"class":36,"line":77},[34,160908,62],{"emptyLinePlaceholder":61},[34,160910,160911],{"class":36,"line":82},[34,160912,160913],{"class":40},"# Rebuild native modules\n",[34,160915,160916,160918],{"class":36,"line":88},[34,160917,8177],{"class":47},[34,160919,160920],{"class":54}," rebuild\n",[34,160922,160923],{"class":36,"line":242},[34,160924,62],{"emptyLinePlaceholder":61},[34,160926,160927],{"class":36,"line":250},[34,160928,160929],{"class":40},"# Prune unused packages\n",[34,160931,160932,160934],{"class":36,"line":263},[34,160933,8177],{"class":47},[34,160935,57628],{"class":54},[34,160937,160938],{"class":36,"line":275},[34,160939,62],{"emptyLinePlaceholder":61},[34,160941,160942],{"class":36,"line":700},[34,160943,160944],{"class":40},"# Create package lock only\n",[34,160946,160947,160949,160951],{"class":36,"line":706},[34,160948,8177],{"class":47},[34,160950,118],{"class":54},[34,160952,160953],{"class":50}," --package-lock-only\n",[34,160955,160956],{"class":36,"line":715},[34,160957,62],{"emptyLinePlaceholder":61},[34,160959,160960],{"class":36,"line":725},[34,160961,160962],{"class":40},"# Install with exact versions\n",[34,160964,160965,160967,160969,160972,160974,160976,160978],{"class":36,"line":734},[34,160966,8177],{"class":47},[34,160968,118],{"class":54},[34,160970,160971],{"class":50}," --save-exact",[34,160973,5470],{"class":580},[34,160975,5473],{"class":54},[34,160977,5476],{"class":181},[34,160979,1248],{"class":580},[34,160981,160982,160984,160986,160988,160990,160992,160994],{"class":36,"line":742},[34,160983,8177],{"class":47},[34,160985,13765],{"class":54},[34,160987,13771],{"class":50},[34,160989,5470],{"class":580},[34,160991,5473],{"class":54},[34,160993,5476],{"class":181},[34,160995,1248],{"class":580},[34,160997,160998],{"class":36,"line":748},[34,160999,62],{"emptyLinePlaceholder":61},[34,161001,161002],{"class":36,"line":754},[34,161003,161004],{"class":40},"# List all npm commands\n",[34,161006,161007,161009,161012,161014,161017,161019],{"class":36,"line":759},[34,161008,8177],{"class":47},[34,161010,161011],{"class":54}," help-search",[34,161013,5470],{"class":580},[34,161015,161016],{"class":54},"ter",[34,161018,3385],{"class":181},[34,161020,1248],{"class":580},[388,161022,5578],{},{"title":30,"searchDepth":44,"depth":44,"links":161024},[161025],{"id":12948,"depth":44,"text":12204},"Useful Commands in npm.",{},{"title":12204,"description":161026},"npm/useful-commands",[8177,78040,5591,8606],"Orbaxg4S-vNFW8iHzkcYkYLHAnkepswaNdRGg8oq5X8",{"id":161033,"title":160057,"body":161034,"date":402,"description":161174,"extension":404,"meta":161175,"navigation":61,"order":700,"path":160056,"seo":161176,"stem":161177,"subject":8177,"tags":161178,"__hash__":161179},"topics/npm/workspaces-monorepo.md",{"type":8,"value":161035,"toc":161171},[161036,161039,161169],[11,161037,160057],{"id":161038},"workspaces-monorepo",[25,161040,161042],{"className":27,"code":161041,"language":29,"meta":30,"style":30},"# Initialize workspace\nnpm init -w packages/my-package\n\n# Install dependency in workspace\nnpm install \u003Cpackage> -w \u003Cworkspace>\n\n# Run script in workspace\nnpm run build -w \u003Cworkspace>\n\n# Run script in all workspaces\nnpm run build --workspaces\nnpm run build -ws\n\n# List workspaces\nnpm ls --workspaces\n",[20,161043,161044,161049,161060,161064,161069,161094,161098,161103,161121,161125,161130,161141,161152,161156,161161],{"__ignoreMap":30},[34,161045,161046],{"class":36,"line":37},[34,161047,161048],{"class":40},"# Initialize workspace\n",[34,161050,161051,161053,161055,161057],{"class":36,"line":44},[34,161052,8177],{"class":47},[34,161054,5255],{"class":54},[34,161056,44733],{"class":50},[34,161058,161059],{"class":54}," packages/my-package\n",[34,161061,161062],{"class":36,"line":58},[34,161063,62],{"emptyLinePlaceholder":61},[34,161065,161066],{"class":36,"line":65},[34,161067,161068],{"class":40},"# Install dependency in workspace\n",[34,161070,161071,161073,161075,161077,161079,161081,161083,161085,161087,161090,161092],{"class":36,"line":71},[34,161072,8177],{"class":47},[34,161074,118],{"class":54},[34,161076,5470],{"class":580},[34,161078,5473],{"class":54},[34,161080,5476],{"class":181},[34,161082,5691],{"class":580},[34,161084,44733],{"class":50},[34,161086,5470],{"class":580},[34,161088,161089],{"class":54},"workspac",[34,161091,5476],{"class":181},[34,161093,1248],{"class":580},[34,161095,161096],{"class":36,"line":77},[34,161097,62],{"emptyLinePlaceholder":61},[34,161099,161100],{"class":36,"line":82},[34,161101,161102],{"class":40},"# Run script in workspace\n",[34,161104,161105,161107,161109,161111,161113,161115,161117,161119],{"class":36,"line":88},[34,161106,8177],{"class":47},[34,161108,16017],{"class":54},[34,161110,14172],{"class":54},[34,161112,44733],{"class":50},[34,161114,5470],{"class":580},[34,161116,161089],{"class":54},[34,161118,5476],{"class":181},[34,161120,1248],{"class":580},[34,161122,161123],{"class":36,"line":242},[34,161124,62],{"emptyLinePlaceholder":61},[34,161126,161127],{"class":36,"line":250},[34,161128,161129],{"class":40},"# Run script in all workspaces\n",[34,161131,161132,161134,161136,161138],{"class":36,"line":263},[34,161133,8177],{"class":47},[34,161135,16017],{"class":54},[34,161137,14172],{"class":54},[34,161139,161140],{"class":50}," --workspaces\n",[34,161142,161143,161145,161147,161149],{"class":36,"line":275},[34,161144,8177],{"class":47},[34,161146,16017],{"class":54},[34,161148,14172],{"class":54},[34,161150,161151],{"class":50}," -ws\n",[34,161153,161154],{"class":36,"line":700},[34,161155,62],{"emptyLinePlaceholder":61},[34,161157,161158],{"class":36,"line":706},[34,161159,161160],{"class":40},"# List workspaces\n",[34,161162,161163,161165,161167],{"class":36,"line":715},[34,161164,8177],{"class":47},[34,161166,8764],{"class":54},[34,161168,161140],{"class":50},[388,161170,5578],{},{"title":30,"searchDepth":44,"depth":44,"links":161172},[161173],{"id":161038,"depth":44,"text":160057},"Workspaces (Monorepo) in npm.",{},{"title":160057,"description":161174},"npm/workspaces-monorepo",[8177,78040,5591,8606],"bUVnePKzx1cxui4KbcoWLC_lzkcc3PSW7gFp5fMh2Nc",{"id":161181,"title":161182,"body":161183,"date":402,"description":161270,"extension":404,"meta":161271,"navigation":61,"order":37,"path":161272,"seo":161273,"stem":161274,"subject":161275,"tags":161276,"__hash__":161278},"topics/nushell/overview.md","Nushell",{"type":8,"value":161184,"toc":161261},[161185,161187,161194,161196,161215,161219,161225,161229,161235,161237,161243,161245,161248,161250,161259],[11,161186,14],{"id":13},[16,161188,161189,161193],{},[145,161190,161182],{"href":161191,"rel":161192},"https://www.nushell.sh/",[149]," is a modern shell that brings a rich programming experience to the command line. Designed on Rust, it emphasizes simplicity, structure, and performance. Below are some fundamental concepts and usage patterns.",[11,161195,97],{"id":96},[25,161197,161199],{"className":27,"code":161198,"language":29,"meta":30,"style":30},"# Install Nushell (example for macOS with Homebrew)\nbrew install nushell\n",[20,161200,161201,161206],{"__ignoreMap":30},[34,161202,161203],{"class":36,"line":37},[34,161204,161205],{"class":40},"# Install Nushell (example for macOS with Homebrew)\n",[34,161207,161208,161210,161212],{"class":36,"line":44},[34,161209,115],{"class":47},[34,161211,118],{"class":54},[34,161213,161214],{"class":54}," nushell\n",[11,161216,161218],{"id":161217},"basics","Basics",[25,161220,161223],{"className":161221,"code":161222,"language":780,"meta":30},[13703],"# Launch the shell\nnu\n\n# Check version\nnu --version\n",[20,161224,161222],{"__ignoreMap":30},[11,161226,161228],{"id":161227},"data-manipulation","Data Manipulation",[25,161230,161233],{"className":161231,"code":161232,"language":780,"meta":30},[13703],"> echo [1 2 3] | math sum\n# Output: 6\n\n> open config.json | where name == \"value\"\n",[20,161234,161232],{"__ignoreMap":30},[11,161236,102912],{"id":102911},[25,161238,161241],{"className":161239,"code":161240,"language":780,"meta":30},[13703],"> ls | where size > 1MB | sort-by size\n",[20,161242,161240],{"__ignoreMap":30},[11,161244,90562],{"id":90561},[16,161246,161247],{},"Nushell supports plugins and scripts that can extend its functionality.",[11,161249,120374],{"id":120373},[16,161251,161252,161253,161258],{},"Nushell is not just a shell; it’s a reimagining of what working with data, files, and commands can be. Be sure to ",[145,161254,161257],{"href":161255,"rel":161256},"https://www.nushell.sh/book/",[149],"explore its documentation"," for a deeper dive into its capabilities.",[388,161260,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":161262},[161263,161264,161265,161266,161267,161268,161269],{"id":13,"depth":44,"text":14},{"id":96,"depth":44,"text":97},{"id":161217,"depth":44,"text":161218},{"id":161227,"depth":44,"text":161228},{"id":102911,"depth":44,"text":102912},{"id":90561,"depth":44,"text":90562},{"id":120373,"depth":44,"text":120374},"Comprehensive guide to using Nushell, a modern shell built on Rust.",{},"/nushell/overview",{"title":161182,"description":161270},"nushell/overview","nushell",[161275,10358,557,161277,10359],"rust","ebZ-_Th9owMZrpxxUEhBEGRxinPStJslglFIji4zxAw",{"id":161280,"title":59741,"body":161281,"date":402,"description":161612,"extension":404,"meta":161613,"navigation":61,"order":82,"path":161614,"seo":161615,"stem":161616,"subject":161617,"tags":161618,"__hash__":161619},"topics/nuxt/components.md",{"type":8,"value":161282,"toc":161609},[161283,161285,161474,161606],[11,161284,59741],{"id":130077},[25,161286,161290],{"className":161287,"code":161288,"language":161289,"meta":30,"style":30},"language-vue shiki shiki-themes github-light github-dark","\u003C!-- app/components/AppButton.vue - Auto-imported -->\n\u003Cscript setup>\ndefineProps({\n  variant: {\n    type: String,\n    default: 'primary'\n  }\n})\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cbutton :class=\"variant\">\n    \u003Cslot />\n  \u003C/button>\n\u003C/template>\n\n\u003C!-- Usage (no import needed) -->\n\u003Ctemplate>\n  \u003CAppButton variant=\"secondary\">Click me\u003C/AppButton>\n\u003C/template>\n\n\u003C!-- app/components/base/Button.vue => \u003CBaseButton> -->\n\u003C!-- app/components/ui/Card.vue => \u003CUiCard> -->\n\u003C!-- Nuxt 4: Component names normalized to match file structure -->\n","vue",[20,161291,161292,161297,161308,161315,161320,161325,161333,161337,161341,161349,161353,161361,161382,161393,161401,161409,161413,161418,161426,161447,161455,161459,161464,161469],{"__ignoreMap":30},[34,161293,161294],{"class":36,"line":37},[34,161295,161296],{"class":40},"\u003C!-- app/components/AppButton.vue - Auto-imported -->\n",[34,161298,161299,161301,161303,161306],{"class":36,"line":44},[34,161300,815],{"class":181},[34,161302,115970],{"class":177},[34,161304,161305],{"class":47}," setup",[34,161307,1248],{"class":181},[34,161309,161310,161313],{"class":36,"line":58},[34,161311,161312],{"class":47},"defineProps",[34,161314,613],{"class":181},[34,161316,161317],{"class":36,"line":65},[34,161318,161319],{"class":181},"  variant: {\n",[34,161321,161322],{"class":36,"line":71},[34,161323,161324],{"class":181},"    type: String,\n",[34,161326,161327,161330],{"class":36,"line":77},[34,161328,161329],{"class":181},"    default: ",[34,161331,161332],{"class":54},"'primary'\n",[34,161334,161335],{"class":36,"line":82},[34,161336,857],{"class":181},[34,161338,161339],{"class":36,"line":88},[34,161340,647],{"class":181},[34,161342,161343,161345,161347],{"class":36,"line":242},[34,161344,2089],{"class":181},[34,161346,115970],{"class":177},[34,161348,1248],{"class":181},[34,161350,161351],{"class":36,"line":250},[34,161352,62],{"emptyLinePlaceholder":61},[34,161354,161355,161357,161359],{"class":36,"line":263},[34,161356,815],{"class":181},[34,161358,8517],{"class":177},[34,161360,1248],{"class":181},[34,161362,161363,161365,161367,161369,161371,161373,161375,161378,161380],{"class":36,"line":275},[34,161364,1181],{"class":181},[34,161366,4509],{"class":177},[34,161368,64223],{"class":181},[34,161370,30060],{"class":47},[34,161372,1301],{"class":181},[34,161374,10389],{"class":54},[34,161376,161377],{"class":181},"variant",[34,161379,10389],{"class":54},[34,161381,1248],{"class":181},[34,161383,161384,161386,161389,161391],{"class":36,"line":700},[34,161385,1294],{"class":181},[34,161387,161388],{"class":177},"slot",[34,161390,22767],{"class":24316},[34,161392,1248],{"class":181},[34,161394,161395,161397,161399],{"class":36,"line":706},[34,161396,8547],{"class":181},[34,161398,4509],{"class":177},[34,161400,1248],{"class":181},[34,161402,161403,161405,161407],{"class":36,"line":715},[34,161404,2089],{"class":181},[34,161406,8517],{"class":177},[34,161408,1248],{"class":181},[34,161410,161411],{"class":36,"line":725},[34,161412,62],{"emptyLinePlaceholder":61},[34,161414,161415],{"class":36,"line":734},[34,161416,161417],{"class":40},"\u003C!-- Usage (no import needed) -->\n",[34,161419,161420,161422,161424],{"class":36,"line":742},[34,161421,815],{"class":181},[34,161423,8517],{"class":177},[34,161425,1248],{"class":181},[34,161427,161428,161430,161433,161436,161438,161441,161443,161445],{"class":36,"line":748},[34,161429,1181],{"class":181},[34,161431,161432],{"class":177},"AppButton",[34,161434,161435],{"class":47}," variant",[34,161437,1301],{"class":181},[34,161439,161440],{"class":54},"\"secondary\"",[34,161442,46520],{"class":181},[34,161444,161432],{"class":177},[34,161446,1248],{"class":181},[34,161448,161449,161451,161453],{"class":36,"line":754},[34,161450,2089],{"class":181},[34,161452,8517],{"class":177},[34,161454,1248],{"class":181},[34,161456,161457],{"class":36,"line":759},[34,161458,62],{"emptyLinePlaceholder":61},[34,161460,161461],{"class":36,"line":771},[34,161462,161463],{"class":40},"\u003C!-- app/components/base/Button.vue => \u003CBaseButton> -->\n",[34,161465,161466],{"class":36,"line":794},[34,161467,161468],{"class":40},"\u003C!-- app/components/ui/Card.vue => \u003CUiCard> -->\n",[34,161470,161471],{"class":36,"line":824},[34,161472,161473],{"class":40},"\u003C!-- Nuxt 4: Component names normalized to match file structure -->\n",[25,161475,161477],{"className":161287,"code":161476,"language":161289,"meta":30,"style":30},"\u003C!-- Client-only component -->\n\u003Ctemplate>\n  \u003CClientOnly>\n    \u003CBrowserOnlyComponent />\n    \u003Ctemplate #fallback>\n      \u003Cp>Loading...\u003C/p>\n    \u003C/template>\n  \u003C/ClientOnly>\n\u003C/template>\n\n\u003C!-- Lazy load component -->\n\u003Ctemplate>\n  \u003CLazyHeavyComponent v-if=\"showHeavy\" />\n\u003C/template>\n",[20,161478,161479,161484,161492,161501,161510,161524,161536,161544,161552,161560,161564,161569,161577,161598],{"__ignoreMap":30},[34,161480,161481],{"class":36,"line":37},[34,161482,161483],{"class":40},"\u003C!-- Client-only component -->\n",[34,161485,161486,161488,161490],{"class":36,"line":44},[34,161487,815],{"class":181},[34,161489,8517],{"class":177},[34,161491,1248],{"class":181},[34,161493,161494,161496,161499],{"class":36,"line":58},[34,161495,1181],{"class":181},[34,161497,161498],{"class":177},"ClientOnly",[34,161500,1248],{"class":181},[34,161502,161503,161505,161508],{"class":36,"line":65},[34,161504,1294],{"class":181},[34,161506,161507],{"class":177},"BrowserOnlyComponent",[34,161509,1187],{"class":181},[34,161511,161512,161514,161516,161519,161522],{"class":36,"line":71},[34,161513,1294],{"class":181},[34,161515,8517],{"class":177},[34,161517,161518],{"class":181}," #",[34,161520,161521],{"class":47},"fallback",[34,161523,1248],{"class":181},[34,161525,161526,161528,161530,161532,161534],{"class":36,"line":77},[34,161527,85662],{"class":181},[34,161529,16],{"class":177},[34,161531,1407],{"class":181},[34,161533,16],{"class":177},[34,161535,1248],{"class":181},[34,161537,161538,161540,161542],{"class":36,"line":82},[34,161539,74431],{"class":181},[34,161541,8517],{"class":177},[34,161543,1248],{"class":181},[34,161545,161546,161548,161550],{"class":36,"line":88},[34,161547,8547],{"class":181},[34,161549,161498],{"class":177},[34,161551,1248],{"class":181},[34,161553,161554,161556,161558],{"class":36,"line":242},[34,161555,2089],{"class":181},[34,161557,8517],{"class":177},[34,161559,1248],{"class":181},[34,161561,161562],{"class":36,"line":250},[34,161563,62],{"emptyLinePlaceholder":61},[34,161565,161566],{"class":36,"line":263},[34,161567,161568],{"class":40},"\u003C!-- Lazy load component -->\n",[34,161570,161571,161573,161575],{"class":36,"line":275},[34,161572,815],{"class":181},[34,161574,8517],{"class":177},[34,161576,1248],{"class":181},[34,161578,161579,161581,161584,161587,161589,161591,161594,161596],{"class":36,"line":700},[34,161580,1181],{"class":181},[34,161582,161583],{"class":177},"LazyHeavyComponent",[34,161585,161586],{"class":580}," v-if",[34,161588,1301],{"class":181},[34,161590,10389],{"class":54},[34,161592,161593],{"class":181},"showHeavy",[34,161595,10389],{"class":54},[34,161597,1187],{"class":181},[34,161599,161600,161602,161604],{"class":36,"line":706},[34,161601,2089],{"class":181},[34,161603,8517],{"class":177},[34,161605,1248],{"class":181},[388,161607,161608],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .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 .s7hpK, html code.shiki .s7hpK{--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic}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}",{"title":30,"searchDepth":44,"depth":44,"links":161610},[161611],{"id":130077,"depth":44,"text":59741},"Components in Nuxt.",{},"/nuxt/components",{"title":59741,"description":161612},"nuxt/components","nuxt",[161617,161289,8606,159069,982],"vplg132DUe0v4vUst9RxyH3dNAFfhohr6-o_Qv2KTno",{"id":161621,"title":161622,"body":161623,"date":402,"description":162152,"extension":404,"meta":162153,"navigation":61,"order":715,"path":162154,"seo":162155,"stem":162156,"subject":161617,"tags":162157,"__hash__":162158},"topics/nuxt/composables.md","Composables",{"type":8,"value":161624,"toc":162149},[161625,161628,162056,162146],[11,161626,161622],{"id":161627},"composables",[25,161629,161631],{"className":571,"code":161630,"language":573,"meta":30,"style":30},"// app/composables/useCounter.ts - Auto-imported\nexport const useCounter = () => {\n  const count = useState('counter', () => 0)\n  \n  const increment = () => count.value++\n  const decrement = () => count.value--\n  const reset = () => count.value = 0\n  \n  return { count, increment, decrement, reset }\n}\n\n// app/composables/useApi.ts\nexport const useApi = () => {\n  const config = useRuntimeConfig()\n  \n  const get = async (endpoint: string) => {\n    return await $fetch(`${config.public.apiBase}${endpoint}`)\n  }\n  \n  const post = async (endpoint: string, body: any) => {\n    return await $fetch(`${config.public.apiBase}${endpoint}`, {\n      method: 'POST',\n      body\n    })\n  }\n  \n  return { get, post }\n}\n\n// Nuxt 4: Extract shared useAsyncData with same key to composable\n// app/composables/useUserData.ts\nexport const useUserData = (userId: string) => {\n  return useAsyncData(\n    `user-${userId}`,\n    () => $fetch(`/api/users/${userId}`),\n    { deep: true }\n  )\n}\n",[20,161632,161633,161638,161655,161679,161683,161700,161718,161737,161741,161748,161752,161756,161761,161778,161791,161795,161820,161853,161857,161861,161894,161924,161933,161938,161942,161946,161950,161957,161961,161965,161970,161975,162000,162009,162020,162039,162048,162052],{"__ignoreMap":30},[34,161634,161635],{"class":36,"line":37},[34,161636,161637],{"class":40},"// app/composables/useCounter.ts - Auto-imported\n",[34,161639,161640,161642,161644,161647,161649,161651,161653],{"class":36,"line":44},[34,161641,652],{"class":580},[34,161643,3291],{"class":580},[34,161645,161646],{"class":47}," useCounter",[34,161648,683],{"class":580},[34,161650,17406],{"class":181},[34,161652,3361],{"class":580},[34,161654,661],{"class":181},[34,161656,161657,161659,161662,161664,161666,161668,161671,161673,161675,161677],{"class":36,"line":58},[34,161658,17415],{"class":580},[34,161660,161661],{"class":50}," count",[34,161663,683],{"class":580},[34,161665,85637],{"class":47},[34,161667,1607],{"class":181},[34,161669,161670],{"class":54},"'counter'",[34,161672,17258],{"class":181},[34,161674,3361],{"class":580},[34,161676,8070],{"class":50},[34,161678,3372],{"class":181},[34,161680,161681],{"class":36,"line":65},[34,161682,827],{"class":181},[34,161684,161685,161687,161689,161691,161693,161695,161698],{"class":36,"line":71},[34,161686,17415],{"class":580},[34,161688,60840],{"class":47},[34,161690,683],{"class":580},[34,161692,17406],{"class":181},[34,161694,3361],{"class":580},[34,161696,161697],{"class":181}," count.value",[34,161699,108020],{"class":580},[34,161701,161702,161704,161707,161709,161711,161713,161715],{"class":36,"line":77},[34,161703,17415],{"class":580},[34,161705,161706],{"class":47}," decrement",[34,161708,683],{"class":580},[34,161710,17406],{"class":181},[34,161712,3361],{"class":580},[34,161714,161697],{"class":181},[34,161716,161717],{"class":580},"--\n",[34,161719,161720,161722,161724,161726,161728,161730,161733,161735],{"class":36,"line":82},[34,161721,17415],{"class":580},[34,161723,102238],{"class":47},[34,161725,683],{"class":580},[34,161727,17406],{"class":181},[34,161729,3361],{"class":580},[34,161731,161732],{"class":181}," count.value ",[34,161734,1301],{"class":580},[34,161736,36394],{"class":50},[34,161738,161739],{"class":36,"line":88},[34,161740,827],{"class":181},[34,161742,161743,161745],{"class":36,"line":242},[34,161744,8155],{"class":580},[34,161746,161747],{"class":181}," { count, increment, decrement, reset }\n",[34,161749,161750],{"class":36,"line":250},[34,161751,693],{"class":181},[34,161753,161754],{"class":36,"line":263},[34,161755,62],{"emptyLinePlaceholder":61},[34,161757,161758],{"class":36,"line":275},[34,161759,161760],{"class":40},"// app/composables/useApi.ts\n",[34,161762,161763,161765,161767,161770,161772,161774,161776],{"class":36,"line":700},[34,161764,652],{"class":580},[34,161766,3291],{"class":580},[34,161768,161769],{"class":47}," useApi",[34,161771,683],{"class":580},[34,161773,17406],{"class":181},[34,161775,3361],{"class":580},[34,161777,661],{"class":181},[34,161779,161780,161782,161784,161786,161789],{"class":36,"line":706},[34,161781,17415],{"class":580},[34,161783,58810],{"class":50},[34,161785,683],{"class":580},[34,161787,161788],{"class":47}," useRuntimeConfig",[34,161790,33899],{"class":181},[34,161792,161793],{"class":36,"line":715},[34,161794,827],{"class":181},[34,161796,161797,161799,161801,161803,161805,161807,161810,161812,161814,161816,161818],{"class":36,"line":725},[34,161798,17415],{"class":580},[34,161800,7173],{"class":47},[34,161802,683],{"class":580},[34,161804,33813],{"class":580},[34,161806,3204],{"class":181},[34,161808,161809],{"class":675},"endpoint",[34,161811,165],{"class":580},[34,161813,680],{"class":50},[34,161815,4817],{"class":181},[34,161817,3361],{"class":580},[34,161819,661],{"class":181},[34,161821,161822,161824,161826,161829,161831,161833,161835,161837,161839,161841,161844,161847,161849,161851],{"class":36,"line":734},[34,161823,1564],{"class":580},[34,161825,14763],{"class":580},[34,161827,161828],{"class":47}," $fetch",[34,161830,1607],{"class":181},[34,161832,3910],{"class":54},[34,161834,94338],{"class":181},[34,161836,151],{"class":54},[34,161838,31583],{"class":181},[34,161840,151],{"class":54},[34,161842,161843],{"class":181},"apiBase",[34,161845,161846],{"class":54},"}${",[34,161848,161809],{"class":181},[34,161850,3925],{"class":54},[34,161852,3372],{"class":181},[34,161854,161855],{"class":36,"line":742},[34,161856,857],{"class":181},[34,161858,161859],{"class":36,"line":748},[34,161860,827],{"class":181},[34,161862,161863,161865,161868,161870,161872,161874,161876,161878,161880,161882,161884,161886,161888,161890,161892],{"class":36,"line":754},[34,161864,17415],{"class":580},[34,161866,161867],{"class":47}," post",[34,161869,683],{"class":580},[34,161871,33813],{"class":580},[34,161873,3204],{"class":181},[34,161875,161809],{"class":675},[34,161877,165],{"class":580},[34,161879,680],{"class":50},[34,161881,1798],{"class":181},[34,161883,46502],{"class":675},[34,161885,165],{"class":580},[34,161887,69686],{"class":50},[34,161889,4817],{"class":181},[34,161891,3361],{"class":580},[34,161893,661],{"class":181},[34,161895,161896,161898,161900,161902,161904,161906,161908,161910,161912,161914,161916,161918,161920,161922],{"class":36,"line":759},[34,161897,1564],{"class":580},[34,161899,14763],{"class":580},[34,161901,161828],{"class":47},[34,161903,1607],{"class":181},[34,161905,3910],{"class":54},[34,161907,94338],{"class":181},[34,161909,151],{"class":54},[34,161911,31583],{"class":181},[34,161913,151],{"class":54},[34,161915,161843],{"class":181},[34,161917,161846],{"class":54},[34,161919,161809],{"class":181},[34,161921,3925],{"class":54},[34,161923,14820],{"class":181},[34,161925,161926,161929,161931],{"class":36,"line":771},[34,161927,161928],{"class":181},"      method: ",[34,161930,75057],{"class":54},[34,161932,624],{"class":181},[34,161934,161935],{"class":36,"line":794},[34,161936,161937],{"class":181},"      body\n",[34,161939,161940],{"class":36,"line":824},[34,161941,62116],{"class":181},[34,161943,161944],{"class":36,"line":830},[34,161945,857],{"class":181},[34,161947,161948],{"class":36,"line":839},[34,161949,827],{"class":181},[34,161951,161952,161954],{"class":36,"line":854},[34,161953,8155],{"class":580},[34,161955,161956],{"class":181}," { get, post }\n",[34,161958,161959],{"class":36,"line":860},[34,161960,693],{"class":181},[34,161962,161963],{"class":36,"line":865},[34,161964,62],{"emptyLinePlaceholder":61},[34,161966,161967],{"class":36,"line":870},[34,161968,161969],{"class":40},"// Nuxt 4: Extract shared useAsyncData with same key to composable\n",[34,161971,161972],{"class":36,"line":876},[34,161973,161974],{"class":40},"// app/composables/useUserData.ts\n",[34,161976,161977,161979,161981,161984,161986,161988,161990,161992,161994,161996,161998],{"class":36,"line":885},[34,161978,652],{"class":580},[34,161980,3291],{"class":580},[34,161982,161983],{"class":47}," useUserData",[34,161985,683],{"class":580},[34,161987,3204],{"class":181},[34,161989,72454],{"class":675},[34,161991,165],{"class":580},[34,161993,680],{"class":50},[34,161995,4817],{"class":181},[34,161997,3361],{"class":580},[34,161999,661],{"class":181},[34,162001,162002,162004,162007],{"class":36,"line":895},[34,162003,8155],{"class":580},[34,162005,162006],{"class":47}," useAsyncData",[34,162008,1882],{"class":181},[34,162010,162011,162014,162016,162018],{"class":36,"line":904},[34,162012,162013],{"class":54},"    `user-${",[34,162015,72454],{"class":181},[34,162017,3925],{"class":54},[34,162019,624],{"class":181},[34,162021,162022,162024,162026,162028,162030,162033,162035,162037],{"class":36,"line":915},[34,162023,60971],{"class":181},[34,162025,3361],{"class":580},[34,162027,161828],{"class":47},[34,162029,1607],{"class":181},[34,162031,162032],{"class":54},"`/api/users/${",[34,162034,72454],{"class":181},[34,162036,3925],{"class":54},[34,162038,50836],{"class":181},[34,162040,162041,162044,162046],{"class":36,"line":927},[34,162042,162043],{"class":181},"    { deep: ",[34,162045,632],{"class":50},[34,162047,52786],{"class":181},[34,162049,162050],{"class":36,"line":932},[34,162051,17056],{"class":181},[34,162053,162054],{"class":36,"line":944},[34,162055,693],{"class":181},[25,162057,162059],{"className":161287,"code":162058,"language":161289,"meta":30,"style":30},"\u003C!-- Using composables -->\n\u003Cscript setup>\nconst { count, increment } = useCounter()\nconst { get, post } = useApi()\n\nconst users = await get('/users')\n\u003C/script>\n",[20,162060,162061,162066,162076,162096,162116,162120,162138],{"__ignoreMap":30},[34,162062,162063],{"class":36,"line":37},[34,162064,162065],{"class":40},"\u003C!-- Using composables -->\n",[34,162067,162068,162070,162072,162074],{"class":36,"line":44},[34,162069,815],{"class":181},[34,162071,115970],{"class":177},[34,162073,161305],{"class":47},[34,162075,1248],{"class":181},[34,162077,162078,162080,162082,162084,162086,162088,162090,162092,162094],{"class":36,"line":58},[34,162079,14676],{"class":580},[34,162081,30251],{"class":181},[34,162083,4284],{"class":50},[34,162085,1798],{"class":181},[34,162087,108042],{"class":50},[34,162089,34865],{"class":181},[34,162091,1301],{"class":580},[34,162093,161646],{"class":47},[34,162095,33899],{"class":181},[34,162097,162098,162100,162102,162104,162106,162108,162110,162112,162114],{"class":36,"line":65},[34,162099,14676],{"class":580},[34,162101,30251],{"class":181},[34,162103,1573],{"class":50},[34,162105,1798],{"class":181},[34,162107,1730],{"class":50},[34,162109,34865],{"class":181},[34,162111,1301],{"class":580},[34,162113,161769],{"class":47},[34,162115,33899],{"class":181},[34,162117,162118],{"class":36,"line":71},[34,162119,62],{"emptyLinePlaceholder":61},[34,162121,162122,162124,162126,162128,162130,162132,162134,162136],{"class":36,"line":77},[34,162123,14676],{"class":580},[34,162125,28425],{"class":50},[34,162127,683],{"class":580},[34,162129,14763],{"class":580},[34,162131,7173],{"class":47},[34,162133,1607],{"class":181},[34,162135,75550],{"class":54},[34,162137,3372],{"class":181},[34,162139,162140,162142,162144],{"class":36,"line":82},[34,162141,2089],{"class":181},[34,162143,115970],{"class":177},[34,162145,1248],{"class":181},[388,162147,162148],{},"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 .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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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 .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":30,"searchDepth":44,"depth":44,"links":162150},[162151],{"id":161627,"depth":44,"text":161622},"Composables in Nuxt.",{},"/nuxt/composables",{"title":161622,"description":162152},"nuxt/composables",[161617,161289,8606,159069,982],"s5IHdPzwyNm5d7jUvuLR0eagcPA4Nh-XsIJgC5Euuz8",{"id":162160,"title":162161,"body":162162,"date":402,"description":162997,"extension":404,"meta":162998,"navigation":61,"order":65,"path":162999,"seo":163000,"stem":163001,"subject":161617,"tags":163002,"__hash__":163003},"topics/nuxt/data-fetching.md","Data Fetching",{"type":8,"value":162163,"toc":162994},[162164,162167,162991],[11,162165,162161],{"id":162166},"data-fetching",[25,162168,162170],{"className":161287,"code":162169,"language":161289,"meta":30,"style":30},"\u003Cscript setup>\n// useFetch - SSR-friendly fetch with caching\n// In Nuxt 4: data defaults to undefined, uses shallowRef\nconst { data, status, error, refresh } = await useFetch('/api/users')\n\n// With options\nconst { data: posts } = await useFetch('/api/posts', {\n  method: 'POST',\n  body: { limit: 10 },\n  query: { page: 1 },\n  headers: { 'Authorization': 'Bearer token' },\n  // Transform response\n  transform: (data) => data.map(p => p.title),\n  // Cache key\n  key: 'posts-list',\n  // Only fetch on server\n  server: true,\n  // Lazy fetch (don't block navigation)\n  lazy: true,\n  // Default value\n  default: () => [],\n  // Deep reactivity (default: false in v4)\n  deep: true\n})\n\n// Nuxt 4: Reactive keys - auto refetch when key changes\nconst userId = ref('123')\nconst { data: user } = await useFetch(() => `/api/users/${userId.value}`)\n\n// useAsyncData - for custom async logic\n// Same key shares data across components (singleton pattern in v4)\nconst { data: userData } = await useAsyncData('user', async () => {\n  const user = await $fetch('/api/user')\n  const posts = await $fetch(`/api/users/${user.id}/posts`)\n  return { ...user, posts }\n})\n\n// Nuxt 4: getCachedData with context\nconst { data } = await useAsyncData('key', fetchFn, {\n  getCachedData: (key, nuxtApp, ctx) => {\n    // ctx.cause: 'initial' | 'refresh:hook' | 'refresh:manual' | 'watch'\n    if (ctx.cause === 'refresh:manual') return undefined\n    return nuxtApp.payload.data[key]\n  }\n})\n\n// useLazyFetch - non-blocking fetch\nconst { data, status } = useLazyFetch('/api/data')\n\n// $fetch - direct fetch utility\nconst result = await $fetch('/api/endpoint', {\n  method: 'POST',\n  body: { name: 'John' }\n})\n\n// Refresh data\nasync function reload() {\n  // Nuxt 4: dedupe accepts 'cancel' or 'defer'\n  await refresh({ dedupe: 'cancel' })\n}\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Cp v-if=\"status === 'pending'\">Loading...\u003C/p>\n    \u003Cp v-else-if=\"status === 'error'\">Error: {{ error.message }}\u003C/p>\n    \u003Cul v-else>\n      \u003Cli v-for=\"user in data\" :key=\"user.id\">{{ user.name }}\u003C/li>\n    \u003C/ul>\n    \u003Cbutton @click=\"reload\">Refresh\u003C/button>\n  \u003C/div>\n\u003C/template>\n",[20,162171,162172,162182,162187,162192,162229,162233,162237,162264,162272,162281,162290,162302,162307,162334,162339,162349,162354,162363,162368,162377,162382,162394,162399,162406,162410,162414,162419,162438,162475,162479,162484,162489,162525,162544,162571,162582,162586,162590,162595,162618,162642,162647,162666,162673,162677,162681,162685,162690,162715,162719,162724,162743,162751,162760,162764,162768,162773,162784,162789,162803,162807,162815,162819,162827,162835,162861,162888,162899,162940,162948,162975,162983],{"__ignoreMap":30},[34,162173,162174,162176,162178,162180],{"class":36,"line":37},[34,162175,815],{"class":181},[34,162177,115970],{"class":177},[34,162179,161305],{"class":47},[34,162181,1248],{"class":181},[34,162183,162184],{"class":36,"line":44},[34,162185,162186],{"class":40},"// useFetch - SSR-friendly fetch with caching\n",[34,162188,162189],{"class":36,"line":58},[34,162190,162191],{"class":40},"// In Nuxt 4: data defaults to undefined, uses shallowRef\n",[34,162193,162194,162196,162198,162200,162202,162204,162206,162208,162210,162213,162215,162217,162219,162222,162224,162227],{"class":36,"line":65},[34,162195,14676],{"class":580},[34,162197,30251],{"class":181},[34,162199,1701],{"class":50},[34,162201,1798],{"class":181},[34,162203,75167],{"class":50},[34,162205,1798],{"class":181},[34,162207,1908],{"class":50},[34,162209,1798],{"class":181},[34,162211,162212],{"class":50},"refresh",[34,162214,34865],{"class":181},[34,162216,1301],{"class":580},[34,162218,14763],{"class":580},[34,162220,162221],{"class":47}," useFetch",[34,162223,1607],{"class":181},[34,162225,162226],{"class":54},"'/api/users'",[34,162228,3372],{"class":181},[34,162230,162231],{"class":36,"line":71},[34,162232,62],{"emptyLinePlaceholder":61},[34,162234,162235],{"class":36,"line":77},[34,162236,16456],{"class":40},[34,162238,162239,162241,162243,162245,162247,162249,162251,162253,162255,162257,162259,162262],{"class":36,"line":82},[34,162240,14676],{"class":580},[34,162242,30251],{"class":181},[34,162244,1701],{"class":675},[34,162246,182],{"class":181},[34,162248,85499],{"class":50},[34,162250,34865],{"class":181},[34,162252,1301],{"class":580},[34,162254,14763],{"class":580},[34,162256,162221],{"class":47},[34,162258,1607],{"class":181},[34,162260,162261],{"class":54},"'/api/posts'",[34,162263,14820],{"class":181},[34,162265,162266,162268,162270],{"class":36,"line":88},[34,162267,14825],{"class":181},[34,162269,75057],{"class":54},[34,162271,624],{"class":181},[34,162273,162274,162277,162279],{"class":36,"line":242},[34,162275,162276],{"class":181},"  body: { limit: ",[34,162278,11923],{"class":50},[34,162280,14846],{"class":181},[34,162282,162283,162286,162288],{"class":36,"line":250},[34,162284,162285],{"class":181},"  query: { page: ",[34,162287,8318],{"class":50},[34,162289,14846],{"class":181},[34,162291,162292,162294,162296,162298,162300],{"class":36,"line":263},[34,162293,14835],{"class":181},[34,162295,1795],{"class":54},[34,162297,182],{"class":181},[34,162299,1801],{"class":54},[34,162301,14846],{"class":181},[34,162303,162304],{"class":36,"line":275},[34,162305,162306],{"class":40},"  // Transform response\n",[34,162308,162309,162311,162314,162316,162318,162320,162323,162325,162327,162329,162331],{"class":36,"line":700},[34,162310,2866],{"class":47},[34,162312,162313],{"class":181},": (",[34,162315,1701],{"class":675},[34,162317,4817],{"class":181},[34,162319,3361],{"class":580},[34,162321,162322],{"class":181}," data.",[34,162324,61180],{"class":47},[34,162326,1607],{"class":181},[34,162328,16],{"class":675},[34,162330,1895],{"class":580},[34,162332,162333],{"class":181}," p.title),\n",[34,162335,162336],{"class":36,"line":706},[34,162337,162338],{"class":40},"  // Cache key\n",[34,162340,162341,162344,162347],{"class":36,"line":715},[34,162342,162343],{"class":181},"  key: ",[34,162345,162346],{"class":54},"'posts-list'",[34,162348,624],{"class":181},[34,162350,162351],{"class":36,"line":725},[34,162352,162353],{"class":40},"  // Only fetch on server\n",[34,162355,162356,162359,162361],{"class":36,"line":734},[34,162357,162358],{"class":181},"  server: ",[34,162360,632],{"class":50},[34,162362,624],{"class":181},[34,162364,162365],{"class":36,"line":742},[34,162366,162367],{"class":40},"  // Lazy fetch (don't block navigation)\n",[34,162369,162370,162373,162375],{"class":36,"line":748},[34,162371,162372],{"class":181},"  lazy: ",[34,162374,632],{"class":50},[34,162376,624],{"class":181},[34,162378,162379],{"class":36,"line":754},[34,162380,162381],{"class":40},"  // Default value\n",[34,162383,162384,162387,162389,162391],{"class":36,"line":759},[34,162385,162386],{"class":47},"  default",[34,162388,3358],{"class":181},[34,162390,3361],{"class":580},[34,162392,162393],{"class":181}," [],\n",[34,162395,162396],{"class":36,"line":771},[34,162397,162398],{"class":40},"  // Deep reactivity (default: false in v4)\n",[34,162400,162401,162404],{"class":36,"line":794},[34,162402,162403],{"class":181},"  deep: ",[34,162405,515],{"class":50},[34,162407,162408],{"class":36,"line":824},[34,162409,647],{"class":181},[34,162411,162412],{"class":36,"line":830},[34,162413,62],{"emptyLinePlaceholder":61},[34,162415,162416],{"class":36,"line":839},[34,162417,162418],{"class":40},"// Nuxt 4: Reactive keys - auto refetch when key changes\n",[34,162420,162421,162423,162426,162428,162431,162433,162436],{"class":36,"line":854},[34,162422,14676],{"class":580},[34,162424,162425],{"class":50}," userId",[34,162427,683],{"class":580},[34,162429,162430],{"class":47}," ref",[34,162432,1607],{"class":181},[34,162434,162435],{"class":54},"'123'",[34,162437,3372],{"class":181},[34,162439,162440,162442,162444,162446,162448,162450,162452,162454,162456,162458,162460,162462,162465,162467,162469,162471,162473],{"class":36,"line":860},[34,162441,14676],{"class":580},[34,162443,30251],{"class":181},[34,162445,1701],{"class":675},[34,162447,182],{"class":181},[34,162449,3945],{"class":50},[34,162451,34865],{"class":181},[34,162453,1301],{"class":580},[34,162455,14763],{"class":580},[34,162457,162221],{"class":47},[34,162459,4275],{"class":181},[34,162461,3361],{"class":580},[34,162463,162464],{"class":54}," `/api/users/${",[34,162466,72454],{"class":181},[34,162468,151],{"class":54},[34,162470,2871],{"class":181},[34,162472,3925],{"class":54},[34,162474,3372],{"class":181},[34,162476,162477],{"class":36,"line":865},[34,162478,62],{"emptyLinePlaceholder":61},[34,162480,162481],{"class":36,"line":870},[34,162482,162483],{"class":40},"// useAsyncData - for custom async logic\n",[34,162485,162486],{"class":36,"line":876},[34,162487,162488],{"class":40},"// Same key shares data across components (singleton pattern in v4)\n",[34,162490,162491,162493,162495,162497,162499,162502,162504,162506,162508,162510,162512,162515,162517,162519,162521,162523],{"class":36,"line":885},[34,162492,14676],{"class":580},[34,162494,30251],{"class":181},[34,162496,1701],{"class":675},[34,162498,182],{"class":181},[34,162500,162501],{"class":50},"userData",[34,162503,34865],{"class":181},[34,162505,1301],{"class":580},[34,162507,14763],{"class":580},[34,162509,162006],{"class":47},[34,162511,1607],{"class":181},[34,162513,162514],{"class":54},"'user'",[34,162516,1798],{"class":181},[34,162518,17403],{"class":580},[34,162520,17406],{"class":181},[34,162522,3361],{"class":580},[34,162524,661],{"class":181},[34,162526,162527,162529,162531,162533,162535,162537,162539,162542],{"class":36,"line":895},[34,162528,17415],{"class":580},[34,162530,17148],{"class":50},[34,162532,683],{"class":580},[34,162534,14763],{"class":580},[34,162536,161828],{"class":47},[34,162538,1607],{"class":181},[34,162540,162541],{"class":54},"'/api/user'",[34,162543,3372],{"class":181},[34,162545,162546,162548,162550,162552,162554,162556,162558,162560,162562,162564,162566,162569],{"class":36,"line":904},[34,162547,17415],{"class":580},[34,162549,85458],{"class":50},[34,162551,683],{"class":580},[34,162553,14763],{"class":580},[34,162555,161828],{"class":47},[34,162557,1607],{"class":181},[34,162559,162032],{"class":54},[34,162561,3945],{"class":181},[34,162563,151],{"class":54},[34,162565,3885],{"class":181},[34,162567,162568],{"class":54},"}/posts`",[34,162570,3372],{"class":181},[34,162572,162573,162575,162577,162579],{"class":36,"line":915},[34,162574,8155],{"class":580},[34,162576,30251],{"class":181},[34,162578,16841],{"class":580},[34,162580,162581],{"class":181},"user, posts }\n",[34,162583,162584],{"class":36,"line":927},[34,162585,647],{"class":181},[34,162587,162588],{"class":36,"line":932},[34,162589,62],{"emptyLinePlaceholder":61},[34,162591,162592],{"class":36,"line":944},[34,162593,162594],{"class":40},"// Nuxt 4: getCachedData with context\n",[34,162596,162597,162599,162601,162603,162605,162607,162609,162611,162613,162615],{"class":36,"line":966},[34,162598,14676],{"class":580},[34,162600,30251],{"class":181},[34,162602,1701],{"class":50},[34,162604,34865],{"class":181},[34,162606,1301],{"class":580},[34,162608,14763],{"class":580},[34,162610,162006],{"class":47},[34,162612,1607],{"class":181},[34,162614,90496],{"class":54},[34,162616,162617],{"class":181},", fetchFn, {\n",[34,162619,162620,162623,162625,162627,162629,162632,162634,162636,162638,162640],{"class":36,"line":1948},[34,162621,162622],{"class":47},"  getCachedData",[34,162624,162313],{"class":181},[34,162626,141344],{"class":675},[34,162628,1798],{"class":181},[34,162630,162631],{"class":675},"nuxtApp",[34,162633,1798],{"class":181},[34,162635,61907],{"class":675},[34,162637,4817],{"class":181},[34,162639,3361],{"class":580},[34,162641,661],{"class":181},[34,162643,162644],{"class":36,"line":1953},[34,162645,162646],{"class":40},"    // ctx.cause: 'initial' | 'refresh:hook' | 'refresh:manual' | 'watch'\n",[34,162648,162649,162651,162654,162656,162659,162661,162663],{"class":36,"line":3616},[34,162650,2902],{"class":580},[34,162652,162653],{"class":181}," (ctx.cause ",[34,162655,15543],{"class":580},[34,162657,162658],{"class":54}," 'refresh:manual'",[34,162660,4817],{"class":181},[34,162662,2917],{"class":580},[34,162664,162665],{"class":50}," undefined\n",[34,162667,162668,162670],{"class":36,"line":3622},[34,162669,1564],{"class":580},[34,162671,162672],{"class":181}," nuxtApp.payload.data[key]\n",[34,162674,162675],{"class":36,"line":3642},[34,162676,857],{"class":181},[34,162678,162679],{"class":36,"line":3657},[34,162680,647],{"class":181},[34,162682,162683],{"class":36,"line":3663},[34,162684,62],{"emptyLinePlaceholder":61},[34,162686,162687],{"class":36,"line":3669},[34,162688,162689],{"class":40},"// useLazyFetch - non-blocking fetch\n",[34,162691,162692,162694,162696,162698,162700,162702,162704,162706,162709,162711,162713],{"class":36,"line":3675},[34,162693,14676],{"class":580},[34,162695,30251],{"class":181},[34,162697,1701],{"class":50},[34,162699,1798],{"class":181},[34,162701,75167],{"class":50},[34,162703,34865],{"class":181},[34,162705,1301],{"class":580},[34,162707,162708],{"class":47}," useLazyFetch",[34,162710,1607],{"class":181},[34,162712,1583],{"class":54},[34,162714,3372],{"class":181},[34,162716,162717],{"class":36,"line":3693},[34,162718,62],{"emptyLinePlaceholder":61},[34,162720,162721],{"class":36,"line":3707},[34,162722,162723],{"class":40},"// $fetch - direct fetch utility\n",[34,162725,162726,162728,162730,162732,162734,162736,162738,162741],{"class":36,"line":3712},[34,162727,14676],{"class":580},[34,162729,11103],{"class":50},[34,162731,683],{"class":580},[34,162733,14763],{"class":580},[34,162735,161828],{"class":47},[34,162737,1607],{"class":181},[34,162739,162740],{"class":54},"'/api/endpoint'",[34,162742,14820],{"class":181},[34,162744,162745,162747,162749],{"class":36,"line":3717},[34,162746,14825],{"class":181},[34,162748,75057],{"class":54},[34,162750,624],{"class":181},[34,162752,162753,162756,162758],{"class":36,"line":25776},[34,162754,162755],{"class":181},"  body: { name: ",[34,162757,151425],{"class":54},[34,162759,52786],{"class":181},[34,162761,162762],{"class":36,"line":49902},[34,162763,647],{"class":181},[34,162765,162766],{"class":36,"line":52569},[34,162767,62],{"emptyLinePlaceholder":61},[34,162769,162770],{"class":36,"line":52574},[34,162771,162772],{"class":40},"// Refresh data\n",[34,162774,162775,162777,162779,162782],{"class":36,"line":52580},[34,162776,17403],{"class":580},[34,162778,8037],{"class":580},[34,162780,162781],{"class":47}," reload",[34,162783,836],{"class":181},[34,162785,162786],{"class":36,"line":52608},[34,162787,162788],{"class":40},"  // Nuxt 4: dedupe accepts 'cancel' or 'defer'\n",[34,162790,162791,162793,162795,162798,162801],{"class":36,"line":52625},[34,162792,47600],{"class":580},[34,162794,94601],{"class":47},[34,162796,162797],{"class":181},"({ dedupe: ",[34,162799,162800],{"class":54},"'cancel'",[34,162802,1502],{"class":181},[34,162804,162805],{"class":36,"line":52636},[34,162806,693],{"class":181},[34,162808,162809,162811,162813],{"class":36,"line":52645},[34,162810,2089],{"class":181},[34,162812,115970],{"class":177},[34,162814,1248],{"class":181},[34,162816,162817],{"class":36,"line":52650},[34,162818,62],{"emptyLinePlaceholder":61},[34,162820,162821,162823,162825],{"class":36,"line":52655},[34,162822,815],{"class":181},[34,162824,8517],{"class":177},[34,162826,1248],{"class":181},[34,162828,162829,162831,162833],{"class":36,"line":52660},[34,162830,1181],{"class":181},[34,162832,1240],{"class":177},[34,162834,1248],{"class":181},[34,162836,162837,162839,162841,162843,162845,162847,162850,162852,162855,162857,162859],{"class":36,"line":52665},[34,162838,1294],{"class":181},[34,162840,16],{"class":177},[34,162842,161586],{"class":580},[34,162844,1301],{"class":181},[34,162846,10389],{"class":54},[34,162848,162849],{"class":181},"status ",[34,162851,15543],{"class":580},[34,162853,162854],{"class":54}," 'pending'\"",[34,162856,1407],{"class":181},[34,162858,16],{"class":177},[34,162860,1248],{"class":181},[34,162862,162863,162865,162867,162870,162872,162874,162876,162878,162881,162884,162886],{"class":36,"line":52672},[34,162864,1294],{"class":181},[34,162866,16],{"class":177},[34,162868,162869],{"class":580}," v-else-if",[34,162871,1301],{"class":181},[34,162873,10389],{"class":54},[34,162875,162849],{"class":181},[34,162877,15543],{"class":580},[34,162879,162880],{"class":54}," 'error'\"",[34,162882,162883],{"class":181},">Error: {{ error.message }}\u003C/",[34,162885,16],{"class":177},[34,162887,1248],{"class":181},[34,162889,162890,162892,162894,162897],{"class":36,"line":52677},[34,162891,1294],{"class":181},[34,162893,309],{"class":177},[34,162895,162896],{"class":580}," v-else",[34,162898,1248],{"class":181},[34,162900,162901,162903,162905,162908,162910,162912,162915,162917,162919,162921,162923,162925,162927,162929,162932,162934,162936,162938],{"class":36,"line":52682},[34,162902,85662],{"class":181},[34,162904,312],{"class":177},[34,162906,162907],{"class":580}," v-for",[34,162909,1301],{"class":181},[34,162911,10389],{"class":54},[34,162913,162914],{"class":181},"user ",[34,162916,10252],{"class":580},[34,162918,14780],{"class":181},[34,162920,10389],{"class":54},[34,162922,64223],{"class":181},[34,162924,141344],{"class":47},[34,162926,1301],{"class":181},[34,162928,10389],{"class":54},[34,162930,162931],{"class":181},"user.id",[34,162933,10389],{"class":54},[34,162935,2023],{"class":181},[34,162937,312],{"class":177},[34,162939,1248],{"class":181},[34,162941,162942,162944,162946],{"class":36,"line":52687},[34,162943,74431],{"class":181},[34,162945,309],{"class":177},[34,162947,1248],{"class":181},[34,162949,162950,162952,162954,162957,162959,162961,162963,162966,162968,162971,162973],{"class":36,"line":52698},[34,162951,1294],{"class":181},[34,162953,4509],{"class":177},[34,162955,162956],{"class":181}," @",[34,162958,45348],{"class":47},[34,162960,1301],{"class":181},[34,162962,10389],{"class":54},[34,162964,162965],{"class":181},"reload",[34,162967,10389],{"class":54},[34,162969,162970],{"class":181},">Refresh\u003C/",[34,162972,4509],{"class":177},[34,162974,1248],{"class":181},[34,162976,162977,162979,162981],{"class":36,"line":52713},[34,162978,8547],{"class":181},[34,162980,1240],{"class":177},[34,162982,1248],{"class":181},[34,162984,162985,162987,162989],{"class":36,"line":52732},[34,162986,2089],{"class":181},[34,162988,8517],{"class":177},[34,162990,1248],{"class":181},[388,162992,162993],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":162995},[162996],{"id":162166,"depth":44,"text":162161},"Data Fetching in Nuxt.",{},"/nuxt/data-fetching",{"title":162161,"description":162997},"nuxt/data-fetching",[161617,161289,8606,159069,982],"6qoZkGjd385EmXPJ5zuNiQJo2S67G6JQjGyi5uGZmc0",{"id":163005,"title":19352,"body":163006,"date":402,"description":163429,"extension":404,"meta":163430,"navigation":61,"order":700,"path":163431,"seo":163432,"stem":163433,"subject":161617,"tags":163434,"__hash__":163435},"topics/nuxt/error-handling.md",{"type":8,"value":163007,"toc":163426},[163008,163010,163197,163423],[11,163009,19352],{"id":19357},[25,163011,163013],{"className":161287,"code":163012,"language":161289,"meta":30,"style":30},"\u003C!-- app/error.vue - Custom error page -->\n\u003Cscript setup>\nconst props = defineProps({\n  error: Object\n})\n\n// Nuxt 4: error.data is now automatically parsed\nconst errorData = props.error.data\n\nconst handleError = () => clearError({ redirect: '/' })\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Ch1>{{ error.statusCode }}\u003C/h1>\n    \u003Cp>{{ error.message }}\u003C/p>\n    \u003Cbutton @click=\"handleError\">Go Home\u003C/button>\n  \u003C/div>\n\u003C/template>\n",[20,163014,163015,163020,163030,163044,163049,163053,163057,163062,163074,163078,163101,163109,163113,163121,163129,163142,163155,163181,163189],{"__ignoreMap":30},[34,163016,163017],{"class":36,"line":37},[34,163018,163019],{"class":40},"\u003C!-- app/error.vue - Custom error page -->\n",[34,163021,163022,163024,163026,163028],{"class":36,"line":44},[34,163023,815],{"class":181},[34,163025,115970],{"class":177},[34,163027,161305],{"class":47},[34,163029,1248],{"class":181},[34,163031,163032,163034,163037,163039,163042],{"class":36,"line":58},[34,163033,14676],{"class":580},[34,163035,163036],{"class":50}," props",[34,163038,683],{"class":580},[34,163040,163041],{"class":47}," defineProps",[34,163043,613],{"class":181},[34,163045,163046],{"class":36,"line":65},[34,163047,163048],{"class":181},"  error: Object\n",[34,163050,163051],{"class":36,"line":71},[34,163052,647],{"class":181},[34,163054,163055],{"class":36,"line":77},[34,163056,62],{"emptyLinePlaceholder":61},[34,163058,163059],{"class":36,"line":82},[34,163060,163061],{"class":40},"// Nuxt 4: error.data is now automatically parsed\n",[34,163063,163064,163066,163069,163071],{"class":36,"line":88},[34,163065,14676],{"class":580},[34,163067,163068],{"class":50}," errorData",[34,163070,683],{"class":580},[34,163072,163073],{"class":181}," props.error.data\n",[34,163075,163076],{"class":36,"line":242},[34,163077,62],{"emptyLinePlaceholder":61},[34,163079,163080,163082,163085,163087,163089,163091,163094,163097,163099],{"class":36,"line":250},[34,163081,14676],{"class":580},[34,163083,163084],{"class":47}," handleError",[34,163086,683],{"class":580},[34,163088,17406],{"class":181},[34,163090,3361],{"class":580},[34,163092,163093],{"class":47}," clearError",[34,163095,163096],{"class":181},"({ redirect: ",[34,163098,61825],{"class":54},[34,163100,1502],{"class":181},[34,163102,163103,163105,163107],{"class":36,"line":263},[34,163104,2089],{"class":181},[34,163106,115970],{"class":177},[34,163108,1248],{"class":181},[34,163110,163111],{"class":36,"line":275},[34,163112,62],{"emptyLinePlaceholder":61},[34,163114,163115,163117,163119],{"class":36,"line":700},[34,163116,815],{"class":181},[34,163118,8517],{"class":177},[34,163120,1248],{"class":181},[34,163122,163123,163125,163127],{"class":36,"line":706},[34,163124,1181],{"class":181},[34,163126,1240],{"class":177},[34,163128,1248],{"class":181},[34,163130,163131,163133,163135,163138,163140],{"class":36,"line":715},[34,163132,1294],{"class":181},[34,163134,8535],{"class":177},[34,163136,163137],{"class":181},">{{ error.statusCode }}\u003C/",[34,163139,8535],{"class":177},[34,163141,1248],{"class":181},[34,163143,163144,163146,163148,163151,163153],{"class":36,"line":725},[34,163145,1294],{"class":181},[34,163147,16],{"class":177},[34,163149,163150],{"class":181},">{{ error.message }}\u003C/",[34,163152,16],{"class":177},[34,163154,1248],{"class":181},[34,163156,163157,163159,163161,163163,163165,163167,163169,163172,163174,163177,163179],{"class":36,"line":734},[34,163158,1294],{"class":181},[34,163160,4509],{"class":177},[34,163162,162956],{"class":181},[34,163164,45348],{"class":47},[34,163166,1301],{"class":181},[34,163168,10389],{"class":54},[34,163170,163171],{"class":181},"handleError",[34,163173,10389],{"class":54},[34,163175,163176],{"class":181},">Go Home\u003C/",[34,163178,4509],{"class":177},[34,163180,1248],{"class":181},[34,163182,163183,163185,163187],{"class":36,"line":742},[34,163184,8547],{"class":181},[34,163186,1240],{"class":177},[34,163188,1248],{"class":181},[34,163190,163191,163193,163195],{"class":36,"line":748},[34,163192,2089],{"class":181},[34,163194,8517],{"class":177},[34,163196,1248],{"class":181},[25,163198,163200],{"className":161287,"code":163199,"language":161289,"meta":30,"style":30},"\u003C!-- Handling errors in components -->\n\u003Cscript setup>\nconst { data, error } = await useFetch('/api/data')\n\n// Throw error page\nif (error.value) {\n  throw createError({\n    statusCode: 404,\n    message: 'Page not found',\n    data: { additionalInfo: 'some data' }\n  })\n}\n\u003C/script>\n\n\u003Ctemplate>\n  \u003CNuxtErrorBoundary>\n    \u003Ctemplate #error=\"{ error, clearError }\">\n      \u003Cp>Error: {{ error.message }}\u003C/p>\n      \u003Cbutton @click=\"clearError\">Clear\u003C/button>\n    \u003C/template>\n    \u003CSomeComponent />\n  \u003C/NuxtErrorBoundary>\n\u003C/template>\n",[20,163201,163202,163207,163217,163243,163247,163252,163259,163267,163275,163284,163294,163298,163302,163310,163314,163322,163331,163352,163364,163390,163398,163407,163415],{"__ignoreMap":30},[34,163203,163204],{"class":36,"line":37},[34,163205,163206],{"class":40},"\u003C!-- Handling errors in components -->\n",[34,163208,163209,163211,163213,163215],{"class":36,"line":44},[34,163210,815],{"class":181},[34,163212,115970],{"class":177},[34,163214,161305],{"class":47},[34,163216,1248],{"class":181},[34,163218,163219,163221,163223,163225,163227,163229,163231,163233,163235,163237,163239,163241],{"class":36,"line":58},[34,163220,14676],{"class":580},[34,163222,30251],{"class":181},[34,163224,1701],{"class":50},[34,163226,1798],{"class":181},[34,163228,1908],{"class":50},[34,163230,34865],{"class":181},[34,163232,1301],{"class":580},[34,163234,14763],{"class":580},[34,163236,162221],{"class":47},[34,163238,1607],{"class":181},[34,163240,1583],{"class":54},[34,163242,3372],{"class":181},[34,163244,163245],{"class":36,"line":65},[34,163246,62],{"emptyLinePlaceholder":61},[34,163248,163249],{"class":36,"line":71},[34,163250,163251],{"class":40},"// Throw error page\n",[34,163253,163254,163256],{"class":36,"line":77},[34,163255,10383],{"class":580},[34,163257,163258],{"class":181}," (error.value) {\n",[34,163260,163261,163263,163265],{"class":36,"line":82},[34,163262,70787],{"class":580},[34,163264,112964],{"class":47},[34,163266,613],{"class":181},[34,163268,163269,163271,163273],{"class":36,"line":88},[34,163270,112971],{"class":181},[34,163272,15630],{"class":50},[34,163274,624],{"class":181},[34,163276,163277,163279,163282],{"class":36,"line":242},[34,163278,112989],{"class":181},[34,163280,163281],{"class":54},"'Page not found'",[34,163283,624],{"class":181},[34,163285,163286,163289,163292],{"class":36,"line":250},[34,163287,163288],{"class":181},"    data: { additionalInfo: ",[34,163290,163291],{"class":54},"'some data'",[34,163293,52786],{"class":181},[34,163295,163296],{"class":36,"line":263},[34,163297,62121],{"class":181},[34,163299,163300],{"class":36,"line":275},[34,163301,693],{"class":181},[34,163303,163304,163306,163308],{"class":36,"line":700},[34,163305,2089],{"class":181},[34,163307,115970],{"class":177},[34,163309,1248],{"class":181},[34,163311,163312],{"class":36,"line":706},[34,163313,62],{"emptyLinePlaceholder":61},[34,163315,163316,163318,163320],{"class":36,"line":715},[34,163317,815],{"class":181},[34,163319,8517],{"class":177},[34,163321,1248],{"class":181},[34,163323,163324,163326,163329],{"class":36,"line":725},[34,163325,1181],{"class":181},[34,163327,163328],{"class":177},"NuxtErrorBoundary",[34,163330,1248],{"class":181},[34,163332,163333,163335,163337,163339,163341,163343,163345,163348,163350],{"class":36,"line":734},[34,163334,1294],{"class":181},[34,163336,8517],{"class":177},[34,163338,161518],{"class":181},[34,163340,1908],{"class":47},[34,163342,1301],{"class":181},[34,163344,10389],{"class":54},[34,163346,163347],{"class":181},"{ error, clearError }",[34,163349,10389],{"class":54},[34,163351,1248],{"class":181},[34,163353,163354,163356,163358,163360,163362],{"class":36,"line":742},[34,163355,85662],{"class":181},[34,163357,16],{"class":177},[34,163359,162883],{"class":181},[34,163361,16],{"class":177},[34,163363,1248],{"class":181},[34,163365,163366,163368,163370,163372,163374,163376,163378,163381,163383,163386,163388],{"class":36,"line":748},[34,163367,85662],{"class":181},[34,163369,4509],{"class":177},[34,163371,162956],{"class":181},[34,163373,45348],{"class":47},[34,163375,1301],{"class":181},[34,163377,10389],{"class":54},[34,163379,163380],{"class":181},"clearError",[34,163382,10389],{"class":54},[34,163384,163385],{"class":181},">Clear\u003C/",[34,163387,4509],{"class":177},[34,163389,1248],{"class":181},[34,163391,163392,163394,163396],{"class":36,"line":754},[34,163393,74431],{"class":181},[34,163395,8517],{"class":177},[34,163397,1248],{"class":181},[34,163399,163400,163402,163405],{"class":36,"line":759},[34,163401,1294],{"class":181},[34,163403,163404],{"class":177},"SomeComponent",[34,163406,1187],{"class":181},[34,163408,163409,163411,163413],{"class":36,"line":771},[34,163410,8547],{"class":181},[34,163412,163328],{"class":177},[34,163414,1248],{"class":181},[34,163416,163417,163419,163421],{"class":36,"line":794},[34,163418,2089],{"class":181},[34,163420,8517],{"class":177},[34,163422,1248],{"class":181},[388,163424,163425],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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);}",{"title":30,"searchDepth":44,"depth":44,"links":163427},[163428],{"id":19357,"depth":44,"text":19352},"Error Handling in Nuxt.",{},"/nuxt/error-handling",{"title":19352,"description":163429},"nuxt/error-handling",[161617,161289,8606,159069,982],"cCAiC03JUbdAFPGm2WkmZyYxlt9tVPI-K2L7RAgSMdw",{"id":163437,"title":163438,"body":163439,"date":402,"description":163775,"extension":404,"meta":163776,"navigation":61,"order":77,"path":163777,"seo":163778,"stem":163779,"subject":161617,"tags":163780,"__hash__":163781},"topics/nuxt/layouts.md","Layouts",{"type":8,"value":163440,"toc":163772},[163441,163444,163769],[11,163442,163438],{"id":163443},"layouts",[25,163445,163447],{"className":161287,"code":163446,"language":161289,"meta":30,"style":30},"\u003C!-- app/layouts/default.vue -->\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003CAppHeader />\n    \u003Cmain>\n      \u003Cslot />\n    \u003C/main>\n    \u003CAppFooter />\n  \u003C/div>\n\u003C/template>\n\n\u003C!-- app/layouts/auth.vue -->\n\u003Ctemplate>\n  \u003Cdiv class=\"auth-layout\">\n    \u003Cslot />\n  \u003C/div>\n\u003C/template>\n\n\u003C!-- app/pages/login.vue - Use specific layout -->\n\u003Cscript setup>\ndefinePageMeta({\n  layout: 'auth'\n})\n\u003C/script>\n\n\u003C!-- Or set layout dynamically -->\n\u003Cscript setup>\nconst route = useRoute()\n\n// Change layout based on condition\ndefinePageMeta({\n  layout: false // Disable layout\n})\n\u003C/script>\n\n\u003Ctemplate>\n  \u003CNuxtLayout :name=\"someCondition ? 'custom' : 'default'\">\n    \u003CNuxtPage />\n  \u003C/NuxtLayout>\n\u003C/template>\n",[20,163448,163449,163454,163462,163470,163479,163487,163497,163505,163514,163522,163530,163534,163539,163547,163562,163572,163580,163588,163592,163597,163607,163614,163622,163626,163634,163638,163643,163653,163666,163670,163675,163681,163690,163694,163702,163706,163714,163744,163753,163761],{"__ignoreMap":30},[34,163450,163451],{"class":36,"line":37},[34,163452,163453],{"class":40},"\u003C!-- app/layouts/default.vue -->\n",[34,163455,163456,163458,163460],{"class":36,"line":44},[34,163457,815],{"class":181},[34,163459,8517],{"class":177},[34,163461,1248],{"class":181},[34,163463,163464,163466,163468],{"class":36,"line":58},[34,163465,1181],{"class":181},[34,163467,1240],{"class":177},[34,163469,1248],{"class":181},[34,163471,163472,163474,163477],{"class":36,"line":65},[34,163473,1294],{"class":181},[34,163475,163476],{"class":177},"AppHeader",[34,163478,1187],{"class":181},[34,163480,163481,163483,163485],{"class":36,"line":71},[34,163482,1294],{"class":181},[34,163484,8526],{"class":177},[34,163486,1248],{"class":181},[34,163488,163489,163491,163493,163495],{"class":36,"line":77},[34,163490,85662],{"class":181},[34,163492,161388],{"class":177},[34,163494,22767],{"class":24316},[34,163496,1248],{"class":181},[34,163498,163499,163501,163503],{"class":36,"line":82},[34,163500,74431],{"class":181},[34,163502,8526],{"class":177},[34,163504,1248],{"class":181},[34,163506,163507,163509,163512],{"class":36,"line":88},[34,163508,1294],{"class":181},[34,163510,163511],{"class":177},"AppFooter",[34,163513,1187],{"class":181},[34,163515,163516,163518,163520],{"class":36,"line":242},[34,163517,8547],{"class":181},[34,163519,1240],{"class":177},[34,163521,1248],{"class":181},[34,163523,163524,163526,163528],{"class":36,"line":250},[34,163525,2089],{"class":181},[34,163527,8517],{"class":177},[34,163529,1248],{"class":181},[34,163531,163532],{"class":36,"line":263},[34,163533,62],{"emptyLinePlaceholder":61},[34,163535,163536],{"class":36,"line":275},[34,163537,163538],{"class":40},"\u003C!-- app/layouts/auth.vue -->\n",[34,163540,163541,163543,163545],{"class":36,"line":700},[34,163542,815],{"class":181},[34,163544,8517],{"class":177},[34,163546,1248],{"class":181},[34,163548,163549,163551,163553,163555,163557,163560],{"class":36,"line":706},[34,163550,1181],{"class":181},[34,163552,1240],{"class":177},[34,163554,655],{"class":47},[34,163556,1301],{"class":181},[34,163558,163559],{"class":54},"\"auth-layout\"",[34,163561,1248],{"class":181},[34,163563,163564,163566,163568,163570],{"class":36,"line":715},[34,163565,1294],{"class":181},[34,163567,161388],{"class":177},[34,163569,22767],{"class":24316},[34,163571,1248],{"class":181},[34,163573,163574,163576,163578],{"class":36,"line":725},[34,163575,8547],{"class":181},[34,163577,1240],{"class":177},[34,163579,1248],{"class":181},[34,163581,163582,163584,163586],{"class":36,"line":734},[34,163583,2089],{"class":181},[34,163585,8517],{"class":177},[34,163587,1248],{"class":181},[34,163589,163590],{"class":36,"line":742},[34,163591,62],{"emptyLinePlaceholder":61},[34,163593,163594],{"class":36,"line":748},[34,163595,163596],{"class":40},"\u003C!-- app/pages/login.vue - Use specific layout -->\n",[34,163598,163599,163601,163603,163605],{"class":36,"line":754},[34,163600,815],{"class":181},[34,163602,115970],{"class":177},[34,163604,161305],{"class":47},[34,163606,1248],{"class":181},[34,163608,163609,163612],{"class":36,"line":759},[34,163610,163611],{"class":47},"definePageMeta",[34,163613,613],{"class":181},[34,163615,163616,163619],{"class":36,"line":771},[34,163617,163618],{"class":181},"  layout: ",[34,163620,163621],{"class":54},"'auth'\n",[34,163623,163624],{"class":36,"line":794},[34,163625,647],{"class":181},[34,163627,163628,163630,163632],{"class":36,"line":824},[34,163629,2089],{"class":181},[34,163631,115970],{"class":177},[34,163633,1248],{"class":181},[34,163635,163636],{"class":36,"line":830},[34,163637,62],{"emptyLinePlaceholder":61},[34,163639,163640],{"class":36,"line":839},[34,163641,163642],{"class":40},"\u003C!-- Or set layout dynamically -->\n",[34,163644,163645,163647,163649,163651],{"class":36,"line":854},[34,163646,815],{"class":181},[34,163648,115970],{"class":177},[34,163650,161305],{"class":47},[34,163652,1248],{"class":181},[34,163654,163655,163657,163659,163661,163664],{"class":36,"line":860},[34,163656,14676],{"class":580},[34,163658,3550],{"class":50},[34,163660,683],{"class":580},[34,163662,163663],{"class":47}," useRoute",[34,163665,33899],{"class":181},[34,163667,163668],{"class":36,"line":865},[34,163669,62],{"emptyLinePlaceholder":61},[34,163671,163672],{"class":36,"line":870},[34,163673,163674],{"class":40},"// Change layout based on condition\n",[34,163676,163677,163679],{"class":36,"line":876},[34,163678,163611],{"class":47},[34,163680,613],{"class":181},[34,163682,163683,163685,163687],{"class":36,"line":885},[34,163684,163618],{"class":181},[34,163686,103387],{"class":50},[34,163688,163689],{"class":40}," // Disable layout\n",[34,163691,163692],{"class":36,"line":895},[34,163693,647],{"class":181},[34,163695,163696,163698,163700],{"class":36,"line":904},[34,163697,2089],{"class":181},[34,163699,115970],{"class":177},[34,163701,1248],{"class":181},[34,163703,163704],{"class":36,"line":915},[34,163705,62],{"emptyLinePlaceholder":61},[34,163707,163708,163710,163712],{"class":36,"line":927},[34,163709,815],{"class":181},[34,163711,8517],{"class":177},[34,163713,1248],{"class":181},[34,163715,163716,163718,163721,163723,163725,163727,163729,163732,163734,163737,163739,163742],{"class":36,"line":932},[34,163717,1181],{"class":181},[34,163719,163720],{"class":177},"NuxtLayout",[34,163722,64223],{"class":181},[34,163724,178],{"class":47},[34,163726,1301],{"class":181},[34,163728,10389],{"class":54},[34,163730,163731],{"class":181},"someCondition ",[34,163733,18954],{"class":580},[34,163735,163736],{"class":54}," 'custom'",[34,163738,64223],{"class":580},[34,163740,163741],{"class":54}," 'default'\"",[34,163743,1248],{"class":181},[34,163745,163746,163748,163751],{"class":36,"line":944},[34,163747,1294],{"class":181},[34,163749,163750],{"class":177},"NuxtPage",[34,163752,1187],{"class":181},[34,163754,163755,163757,163759],{"class":36,"line":966},[34,163756,8547],{"class":181},[34,163758,163720],{"class":177},[34,163760,1248],{"class":181},[34,163762,163763,163765,163767],{"class":36,"line":1948},[34,163764,2089],{"class":181},[34,163766,8517],{"class":177},[34,163768,1248],{"class":181},[388,163770,163771],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .s7hpK, html code.shiki .s7hpK{--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic}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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":163773},[163774],{"id":163443,"depth":44,"text":163438},"Layouts in Nuxt.",{},"/nuxt/layouts",{"title":163438,"description":163775},"nuxt/layouts",[161617,161289,8606,159069,982],"mkRBZlj9d8qI4PbnVxOV6PVO6MZXZPA6uyvGEaqhfJo",{"id":163783,"title":76171,"body":163784,"date":402,"description":164044,"extension":404,"meta":164045,"navigation":61,"order":88,"path":164046,"seo":164047,"stem":164048,"subject":161617,"tags":164049,"__hash__":164050},"topics/nuxt/middleware.md",{"type":8,"value":163785,"toc":164041},[163786,163788,163945,164038],[11,163787,76171],{"id":76170},[25,163789,163791],{"className":571,"code":163790,"language":573,"meta":30,"style":30},"// app/middleware/auth.ts - Named middleware\nexport default defineNuxtRouteMiddleware((to, from) => {\n  const { isLoggedIn } = useAuth()\n  \n  if (!isLoggedIn.value && to.path !== '/login') {\n    return navigateTo('/login')\n  }\n})\n\n// app/middleware/auth.global.ts - Global middleware (runs on every route)\nexport default defineNuxtRouteMiddleware((to, from) => {\n  console.log('Navigating to:', to.path)\n})\n\n// Nuxt 4: middleware/folder/index.ts is now auto-registered\n",[20,163792,163793,163798,163821,163839,163843,163866,163879,163883,163887,163891,163896,163918,163932,163936,163940],{"__ignoreMap":30},[34,163794,163795],{"class":36,"line":37},[34,163796,163797],{"class":40},"// app/middleware/auth.ts - Named middleware\n",[34,163799,163800,163802,163804,163807,163809,163811,163813,163815,163817,163819],{"class":36,"line":44},[34,163801,652],{"class":580},[34,163803,7298],{"class":580},[34,163805,163806],{"class":47}," defineNuxtRouteMiddleware",[34,163808,8348],{"class":181},[34,163810,38916],{"class":675},[34,163812,1798],{"class":181},[34,163814,587],{"class":675},[34,163816,4817],{"class":181},[34,163818,3361],{"class":580},[34,163820,661],{"class":181},[34,163822,163823,163825,163827,163830,163832,163834,163837],{"class":36,"line":58},[34,163824,17415],{"class":580},[34,163826,30251],{"class":181},[34,163828,163829],{"class":50},"isLoggedIn",[34,163831,34865],{"class":181},[34,163833,1301],{"class":580},[34,163835,163836],{"class":47}," useAuth",[34,163838,33899],{"class":181},[34,163840,163841],{"class":36,"line":65},[34,163842,827],{"class":181},[34,163844,163845,163847,163849,163851,163854,163856,163859,163861,163864],{"class":36,"line":71},[34,163846,8084],{"class":580},[34,163848,3204],{"class":181},[34,163850,10307],{"class":580},[34,163852,163853],{"class":181},"isLoggedIn.value ",[34,163855,22938],{"class":580},[34,163857,163858],{"class":181}," to.path ",[34,163860,48741],{"class":580},[34,163862,163863],{"class":54}," '/login'",[34,163865,2416],{"class":181},[34,163867,163868,163870,163873,163875,163877],{"class":36,"line":77},[34,163869,1564],{"class":580},[34,163871,163872],{"class":47}," navigateTo",[34,163874,1607],{"class":181},[34,163876,149228],{"class":54},[34,163878,3372],{"class":181},[34,163880,163881],{"class":36,"line":82},[34,163882,857],{"class":181},[34,163884,163885],{"class":36,"line":88},[34,163886,647],{"class":181},[34,163888,163889],{"class":36,"line":242},[34,163890,62],{"emptyLinePlaceholder":61},[34,163892,163893],{"class":36,"line":250},[34,163894,163895],{"class":40},"// app/middleware/auth.global.ts - Global middleware (runs on every route)\n",[34,163897,163898,163900,163902,163904,163906,163908,163910,163912,163914,163916],{"class":36,"line":263},[34,163899,652],{"class":580},[34,163901,7298],{"class":580},[34,163903,163806],{"class":47},[34,163905,8348],{"class":181},[34,163907,38916],{"class":675},[34,163909,1798],{"class":181},[34,163911,587],{"class":675},[34,163913,4817],{"class":181},[34,163915,3361],{"class":580},[34,163917,661],{"class":181},[34,163919,163920,163922,163924,163926,163929],{"class":36,"line":275},[34,163921,14929],{"class":181},[34,163923,2424],{"class":47},[34,163925,1607],{"class":181},[34,163927,163928],{"class":54},"'Navigating to:'",[34,163930,163931],{"class":181},", to.path)\n",[34,163933,163934],{"class":36,"line":700},[34,163935,647],{"class":181},[34,163937,163938],{"class":36,"line":706},[34,163939,62],{"emptyLinePlaceholder":61},[34,163941,163942],{"class":36,"line":715},[34,163943,163944],{"class":40},"// Nuxt 4: middleware/folder/index.ts is now auto-registered\n",[25,163946,163948],{"className":161287,"code":163947,"language":161289,"meta":30,"style":30},"\u003C!-- Apply middleware to page -->\n\u003Cscript setup>\ndefinePageMeta({\n  middleware: ['auth'],\n  // Or inline middleware\n  middleware: [\n    function (to, from) {\n      console.log('Inline middleware')\n    }\n  ]\n})\n\u003C/script>\n",[20,163949,163950,163955,163965,163971,163980,163985,163990,164005,164018,164022,164026,164030],{"__ignoreMap":30},[34,163951,163952],{"class":36,"line":37},[34,163953,163954],{"class":40},"\u003C!-- Apply middleware to page -->\n",[34,163956,163957,163959,163961,163963],{"class":36,"line":44},[34,163958,815],{"class":181},[34,163960,115970],{"class":177},[34,163962,161305],{"class":47},[34,163964,1248],{"class":181},[34,163966,163967,163969],{"class":36,"line":58},[34,163968,163611],{"class":47},[34,163970,613],{"class":181},[34,163972,163973,163976,163978],{"class":36,"line":65},[34,163974,163975],{"class":181},"  middleware: [",[34,163977,140706],{"class":54},[34,163979,46332],{"class":181},[34,163981,163982],{"class":36,"line":71},[34,163983,163984],{"class":40},"  // Or inline middleware\n",[34,163986,163987],{"class":36,"line":77},[34,163988,163989],{"class":181},"  middleware: [\n",[34,163991,163992,163995,163997,163999,164001,164003],{"class":36,"line":82},[34,163993,163994],{"class":580},"    function",[34,163996,3204],{"class":181},[34,163998,38916],{"class":675},[34,164000,1798],{"class":181},[34,164002,587],{"class":675},[34,164004,2416],{"class":181},[34,164006,164007,164009,164011,164013,164016],{"class":36,"line":88},[34,164008,3215],{"class":181},[34,164010,2424],{"class":47},[34,164012,1607],{"class":181},[34,164014,164015],{"class":54},"'Inline middleware'",[34,164017,3372],{"class":181},[34,164019,164020],{"class":36,"line":242},[34,164021,3229],{"class":181},[34,164023,164024],{"class":36,"line":250},[34,164025,85237],{"class":181},[34,164027,164028],{"class":36,"line":263},[34,164029,647],{"class":181},[34,164031,164032,164034,164036],{"class":36,"line":275},[34,164033,2089],{"class":181},[34,164035,115970],{"class":177},[34,164037,1248],{"class":181},[388,164039,164040],{},"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 .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 .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 .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 .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":30,"searchDepth":44,"depth":44,"links":164042},[164043],{"id":76170,"depth":44,"text":76171},"Middleware in Nuxt.",{},"/nuxt/middleware",{"title":76171,"description":164044},"nuxt/middleware",[161617,161289,8606,159069,982],"T0nBwkSOm2blKplTH5pnQBk1_KW1zisrJoZYImAJqx0",{"id":164052,"title":164053,"body":164054,"date":402,"description":164231,"extension":404,"meta":164232,"navigation":61,"order":742,"path":164233,"seo":164234,"stem":164235,"subject":161617,"tags":164236,"__hash__":164237},"topics/nuxt/migration-from-nuxt-3.md","Migration from Nuxt 3",{"type":8,"value":164055,"toc":164228},[164056,164059,164226],[11,164057,164053],{"id":164058},"migration-from-nuxt-3",[25,164060,164062],{"className":571,"code":164061,"language":573,"meta":30,"style":30},"// nuxt.config.ts - Key changes for Nuxt 4\n\nexport default defineNuxtConfig({\n  // New app/ directory is default, to keep v3 structure:\n  srcDir: '.',\n  dir: { app: 'app' },\n  \n  // Experimental features now default (can disable if needed)\n  experimental: {\n    // Data fetching changes\n    sharedPrerenderData: false,    // Disable shared prerender data\n    granularCachedData: false,     // Disable granular cache control\n    purgeCachedData: false,        // Disable auto cleanup\n    \n    // Component changes\n    normalizeComponentNames: false, // Keep v3 component names\n    \n    // Data reactivity\n    defaults: {\n      useAsyncData: { deep: true }  // Restore deep reactivity\n    }\n  }\n})\n",[20,164063,164064,164069,164073,164084,164089,164099,164109,164113,164118,164123,164128,164141,164154,164167,164171,164176,164188,164192,164197,164202,164214,164218,164222],{"__ignoreMap":30},[34,164065,164066],{"class":36,"line":37},[34,164067,164068],{"class":40},"// nuxt.config.ts - Key changes for Nuxt 4\n",[34,164070,164071],{"class":36,"line":44},[34,164072,62],{"emptyLinePlaceholder":61},[34,164074,164075,164077,164079,164082],{"class":36,"line":58},[34,164076,652],{"class":580},[34,164078,7298],{"class":580},[34,164080,164081],{"class":47}," defineNuxtConfig",[34,164083,613],{"class":181},[34,164085,164086],{"class":36,"line":65},[34,164087,164088],{"class":40},"  // New app/ directory is default, to keep v3 structure:\n",[34,164090,164091,164094,164097],{"class":36,"line":71},[34,164092,164093],{"class":181},"  srcDir: ",[34,164095,164096],{"class":54},"'.'",[34,164098,624],{"class":181},[34,164100,164101,164104,164107],{"class":36,"line":77},[34,164102,164103],{"class":181},"  dir: { app: ",[34,164105,164106],{"class":54},"'app'",[34,164108,14846],{"class":181},[34,164110,164111],{"class":36,"line":82},[34,164112,827],{"class":181},[34,164114,164115],{"class":36,"line":88},[34,164116,164117],{"class":40},"  // Experimental features now default (can disable if needed)\n",[34,164119,164120],{"class":36,"line":242},[34,164121,164122],{"class":181},"  experimental: {\n",[34,164124,164125],{"class":36,"line":250},[34,164126,164127],{"class":40},"    // Data fetching changes\n",[34,164129,164130,164133,164135,164138],{"class":36,"line":263},[34,164131,164132],{"class":181},"    sharedPrerenderData: ",[34,164134,103387],{"class":50},[34,164136,164137],{"class":181},",    ",[34,164139,164140],{"class":40},"// Disable shared prerender data\n",[34,164142,164143,164146,164148,164151],{"class":36,"line":275},[34,164144,164145],{"class":181},"    granularCachedData: ",[34,164147,103387],{"class":50},[34,164149,164150],{"class":181},",     ",[34,164152,164153],{"class":40},"// Disable granular cache control\n",[34,164155,164156,164159,164161,164164],{"class":36,"line":700},[34,164157,164158],{"class":181},"    purgeCachedData: ",[34,164160,103387],{"class":50},[34,164162,164163],{"class":181},",        ",[34,164165,164166],{"class":40},"// Disable auto cleanup\n",[34,164168,164169],{"class":36,"line":706},[34,164170,3666],{"class":181},[34,164172,164173],{"class":36,"line":715},[34,164174,164175],{"class":40},"    // Component changes\n",[34,164177,164178,164181,164183,164185],{"class":36,"line":725},[34,164179,164180],{"class":181},"    normalizeComponentNames: ",[34,164182,103387],{"class":50},[34,164184,1798],{"class":181},[34,164186,164187],{"class":40},"// Keep v3 component names\n",[34,164189,164190],{"class":36,"line":734},[34,164191,3666],{"class":181},[34,164193,164194],{"class":36,"line":742},[34,164195,164196],{"class":40},"    // Data reactivity\n",[34,164198,164199],{"class":36,"line":748},[34,164200,164201],{"class":181},"    defaults: {\n",[34,164203,164204,164207,164209,164211],{"class":36,"line":754},[34,164205,164206],{"class":181},"      useAsyncData: { deep: ",[34,164208,632],{"class":50},[34,164210,76356],{"class":181},[34,164212,164213],{"class":40},"// Restore deep reactivity\n",[34,164215,164216],{"class":36,"line":759},[34,164217,3229],{"class":181},[34,164219,164220],{"class":36,"line":771},[34,164221,857],{"class":181},[34,164223,164224],{"class":36,"line":794},[34,164225,647],{"class":181},[388,164227,34089],{},{"title":30,"searchDepth":44,"depth":44,"links":164229},[164230],{"id":164058,"depth":44,"text":164053},"Migration from Nuxt 3 in Nuxt.",{},"/nuxt/migration-from-nuxt-3",{"title":164053,"description":164231},"nuxt/migration-from-nuxt-3",[161617,161289,8606,159069,982],"SVAb8Oydcj2hZ0_D-7ClNJzCevGiu-Pu2xddzBdlZpE",{"id":164239,"title":164240,"body":164241,"date":402,"description":164605,"extension":404,"meta":164606,"navigation":61,"order":706,"path":164607,"seo":164608,"stem":164609,"subject":161617,"tags":164610,"__hash__":164611},"topics/nuxt/nuxt-config.md","Nuxt Config",{"type":8,"value":164242,"toc":164602},[164243,164246,164600],[11,164244,164240],{"id":164245},"nuxt-config",[25,164247,164249],{"className":571,"code":164248,"language":573,"meta":30,"style":30},"// nuxt.config.ts\nexport default defineNuxtConfig({\n  // Enable devtools\n  devtools: { enabled: true },\n  \n  // SSR mode (default: true)\n  ssr: true,\n  \n  // Modules\n  modules: [\n    '@nuxtjs/tailwindcss',\n    '@pinia/nuxt',\n    '@nuxt/image'\n  ],\n  \n  // CSS\n  css: ['~/assets/css/main.css'],\n  \n  // Auto-imports\n  imports: {\n    dirs: ['stores']\n  },\n  \n  // Components config\n  components: [\n    { path: '~/components', pathPrefix: false }\n  ],\n  \n  // Route rules\n  routeRules: {\n    '/': { prerender: true },\n    '/api/**': { cors: true },\n    '/admin/**': { ssr: false }\n  },\n  \n  // Nitro server config\n  nitro: {\n    preset: 'node-server',\n    // Nuxt 4: prerender config moved here\n    prerender: {\n      routes: ['/sitemap.xml'],\n      ignore: ['/admin']\n    }\n  },\n  \n  // TypeScript (Nuxt 4: separate tsconfigs per context)\n  typescript: {\n    strict: true,\n    // Customize app tsconfig\n    tsConfig: {},\n    // Customize shared tsconfig\n    sharedTsConfig: {}\n  },\n  \n  // Nuxt 4: Revert to v3 folder structure if needed\n  // srcDir: '.',\n  // dir: { app: 'app' }\n})\n",[20,164250,164251,164256,164266,164271,164280,164284,164289,164298,164302,164307,164312,164319,164326,164331,164335,164339,164344,164354,164358,164363,164368,164378,164382,164386,164391,164396,164411,164415,164419,164424,164429,164441,164453,164465,164469,164473,164478,164483,164493,164498,164503,164513,164522,164526,164530,164534,164539,164544,164553,164558,164563,164568,164573,164577,164581,164586,164591,164596],{"__ignoreMap":30},[34,164252,164253],{"class":36,"line":37},[34,164254,164255],{"class":40},"// nuxt.config.ts\n",[34,164257,164258,164260,164262,164264],{"class":36,"line":44},[34,164259,652],{"class":580},[34,164261,7298],{"class":580},[34,164263,164081],{"class":47},[34,164265,613],{"class":181},[34,164267,164268],{"class":36,"line":58},[34,164269,164270],{"class":40},"  // Enable devtools\n",[34,164272,164273,164276,164278],{"class":36,"line":65},[34,164274,164275],{"class":181},"  devtools: { enabled: ",[34,164277,632],{"class":50},[34,164279,14846],{"class":181},[34,164281,164282],{"class":36,"line":71},[34,164283,827],{"class":181},[34,164285,164286],{"class":36,"line":77},[34,164287,164288],{"class":40},"  // SSR mode (default: true)\n",[34,164290,164291,164294,164296],{"class":36,"line":82},[34,164292,164293],{"class":181},"  ssr: ",[34,164295,632],{"class":50},[34,164297,624],{"class":181},[34,164299,164300],{"class":36,"line":88},[34,164301,827],{"class":181},[34,164303,164304],{"class":36,"line":242},[34,164305,164306],{"class":40},"  // Modules\n",[34,164308,164309],{"class":36,"line":250},[34,164310,164311],{"class":181},"  modules: [\n",[34,164313,164314,164317],{"class":36,"line":263},[34,164315,164316],{"class":54},"    '@nuxtjs/tailwindcss'",[34,164318,624],{"class":181},[34,164320,164321,164324],{"class":36,"line":275},[34,164322,164323],{"class":54},"    '@pinia/nuxt'",[34,164325,624],{"class":181},[34,164327,164328],{"class":36,"line":700},[34,164329,164330],{"class":54},"    '@nuxt/image'\n",[34,164332,164333],{"class":36,"line":706},[34,164334,127682],{"class":181},[34,164336,164337],{"class":36,"line":715},[34,164338,827],{"class":181},[34,164340,164341],{"class":36,"line":725},[34,164342,164343],{"class":40},"  // CSS\n",[34,164345,164346,164349,164352],{"class":36,"line":734},[34,164347,164348],{"class":181},"  css: [",[34,164350,164351],{"class":54},"'~/assets/css/main.css'",[34,164353,46332],{"class":181},[34,164355,164356],{"class":36,"line":742},[34,164357,827],{"class":181},[34,164359,164360],{"class":36,"line":748},[34,164361,164362],{"class":40},"  // Auto-imports\n",[34,164364,164365],{"class":36,"line":754},[34,164366,164367],{"class":181},"  imports: {\n",[34,164369,164370,164373,164376],{"class":36,"line":759},[34,164371,164372],{"class":181},"    dirs: [",[34,164374,164375],{"class":54},"'stores'",[34,164377,924],{"class":181},[34,164379,164380],{"class":36,"line":771},[34,164381,3400],{"class":181},[34,164383,164384],{"class":36,"line":794},[34,164385,827],{"class":181},[34,164387,164388],{"class":36,"line":824},[34,164389,164390],{"class":40},"  // Components config\n",[34,164392,164393],{"class":36,"line":830},[34,164394,164395],{"class":181},"  components: [\n",[34,164397,164398,164401,164404,164407,164409],{"class":36,"line":839},[34,164399,164400],{"class":181},"    { path: ",[34,164402,164403],{"class":54},"'~/components'",[34,164405,164406],{"class":181},", pathPrefix: ",[34,164408,103387],{"class":50},[34,164410,52786],{"class":181},[34,164412,164413],{"class":36,"line":854},[34,164414,127682],{"class":181},[34,164416,164417],{"class":36,"line":860},[34,164418,827],{"class":181},[34,164420,164421],{"class":36,"line":865},[34,164422,164423],{"class":40},"  // Route rules\n",[34,164425,164426],{"class":36,"line":870},[34,164427,164428],{"class":181},"  routeRules: {\n",[34,164430,164431,164434,164437,164439],{"class":36,"line":876},[34,164432,164433],{"class":54},"    '/'",[34,164435,164436],{"class":181},": { prerender: ",[34,164438,632],{"class":50},[34,164440,14846],{"class":181},[34,164442,164443,164446,164449,164451],{"class":36,"line":885},[34,164444,164445],{"class":54},"    '/api/**'",[34,164447,164448],{"class":181},": { cors: ",[34,164450,632],{"class":50},[34,164452,14846],{"class":181},[34,164454,164455,164458,164461,164463],{"class":36,"line":895},[34,164456,164457],{"class":54},"    '/admin/**'",[34,164459,164460],{"class":181},": { ssr: ",[34,164462,103387],{"class":50},[34,164464,52786],{"class":181},[34,164466,164467],{"class":36,"line":904},[34,164468,3400],{"class":181},[34,164470,164471],{"class":36,"line":915},[34,164472,827],{"class":181},[34,164474,164475],{"class":36,"line":927},[34,164476,164477],{"class":40},"  // Nitro server config\n",[34,164479,164480],{"class":36,"line":932},[34,164481,164482],{"class":181},"  nitro: {\n",[34,164484,164485,164488,164491],{"class":36,"line":944},[34,164486,164487],{"class":181},"    preset: ",[34,164489,164490],{"class":54},"'node-server'",[34,164492,624],{"class":181},[34,164494,164495],{"class":36,"line":966},[34,164496,164497],{"class":40},"    // Nuxt 4: prerender config moved here\n",[34,164499,164500],{"class":36,"line":1948},[34,164501,164502],{"class":181},"    prerender: {\n",[34,164504,164505,164508,164511],{"class":36,"line":1953},[34,164506,164507],{"class":181},"      routes: [",[34,164509,164510],{"class":54},"'/sitemap.xml'",[34,164512,46332],{"class":181},[34,164514,164515,164518,164520],{"class":36,"line":3616},[34,164516,164517],{"class":181},"      ignore: [",[34,164519,140592],{"class":54},[34,164521,924],{"class":181},[34,164523,164524],{"class":36,"line":3622},[34,164525,3229],{"class":181},[34,164527,164528],{"class":36,"line":3642},[34,164529,3400],{"class":181},[34,164531,164532],{"class":36,"line":3657},[34,164533,827],{"class":181},[34,164535,164536],{"class":36,"line":3663},[34,164537,164538],{"class":40},"  // TypeScript (Nuxt 4: separate tsconfigs per context)\n",[34,164540,164541],{"class":36,"line":3669},[34,164542,164543],{"class":181},"  typescript: {\n",[34,164545,164546,164549,164551],{"class":36,"line":3675},[34,164547,164548],{"class":181},"    strict: ",[34,164550,632],{"class":50},[34,164552,624],{"class":181},[34,164554,164555],{"class":36,"line":3693},[34,164556,164557],{"class":40},"    // Customize app tsconfig\n",[34,164559,164560],{"class":36,"line":3707},[34,164561,164562],{"class":181},"    tsConfig: {},\n",[34,164564,164565],{"class":36,"line":3712},[34,164566,164567],{"class":40},"    // Customize shared tsconfig\n",[34,164569,164570],{"class":36,"line":3717},[34,164571,164572],{"class":181},"    sharedTsConfig: {}\n",[34,164574,164575],{"class":36,"line":25776},[34,164576,3400],{"class":181},[34,164578,164579],{"class":36,"line":49902},[34,164580,827],{"class":181},[34,164582,164583],{"class":36,"line":52569},[34,164584,164585],{"class":40},"  // Nuxt 4: Revert to v3 folder structure if needed\n",[34,164587,164588],{"class":36,"line":52574},[34,164589,164590],{"class":40},"  // srcDir: '.',\n",[34,164592,164593],{"class":36,"line":52580},[34,164594,164595],{"class":40},"  // dir: { app: 'app' }\n",[34,164597,164598],{"class":36,"line":52608},[34,164599,647],{"class":181},[388,164601,49910],{},{"title":30,"searchDepth":44,"depth":44,"links":164603},[164604],{"id":164245,"depth":44,"text":164240},"Nuxt Config in Nuxt.",{},"/nuxt/nuxt-config",{"title":164240,"description":164605},"nuxt/nuxt-config",[161617,161289,8606,159069,982],"_hfsnbnZqY50buMLZsK5RVhUXa9yw2-UEQh4qHn7rLA",{"id":164613,"title":164614,"body":164615,"date":2633,"description":164706,"extension":404,"meta":164707,"navigation":61,"order":37,"path":164708,"seo":164709,"stem":164710,"subject":161617,"tags":164711,"__hash__":164712},"topics/nuxt/overview.md","Nuxt",{"type":8,"value":164616,"toc":164704},[164617],[309,164618,164619,164625,164631,164635,164641,164645,164649,164653,164659,164664,164670,164676,164680,164684,164688,164694,164700],{},[312,164620,164621],{},[145,164622,164624],{"href":164623},"/nuxt/project-structure","Project Structure",[312,164626,164627],{},[145,164628,164630],{"href":164629},"/nuxt/pages-routing","Pages & Routing",[312,164632,164633],{},[145,164634,162161],{"href":162999},[312,164636,164637],{},[145,164638,164640],{"href":164639},"/nuxt/state-management","State Management",[312,164642,164643],{},[145,164644,163438],{"href":163777},[312,164646,164647],{},[145,164648,59741],{"href":161614},[312,164650,164651],{},[145,164652,76171],{"href":164046},[312,164654,164655],{},[145,164656,164658],{"href":164657},"/nuxt/server-routes-api","Server Routes (API)",[312,164660,164661],{},[145,164662,157858],{"href":164663},"/nuxt/plugins",[312,164665,164666],{},[145,164667,164669],{"href":164668},"/nuxt/seo-meta","SEO & Meta",[312,164671,164672],{},[145,164673,164675],{"href":164674},"/nuxt/runtime-config","Runtime Config",[312,164677,164678],{},[145,164679,19352],{"href":163431},[312,164681,164682],{},[145,164683,164240],{"href":164607},[312,164685,164686],{},[145,164687,161622],{"href":162154},[312,164689,164690],{},[145,164691,164693],{"href":164692},"/nuxt/shared-directory","Shared Directory",[312,164695,164696],{},[145,164697,164699],{"href":164698},"/nuxt/useful-utils","Useful Utils",[312,164701,164702],{},[145,164703,164053],{"href":164233},{"title":30,"searchDepth":44,"depth":44,"links":164705},[],"Essential Nuxt 4 syntax, auto-imports, data fetching, and best practices for building Vue applications.",{},"/nuxt/overview",{"title":164614,"description":164706},"nuxt/overview",[161617,161289,8606,159069,982],"50Yfjp7f27_QavAnmUpO2-8rWdO5kZo41rxkcYNlTOw",{"id":164714,"title":164630,"body":164715,"date":402,"description":165070,"extension":404,"meta":165071,"navigation":61,"order":58,"path":164629,"seo":165072,"stem":165073,"subject":161617,"tags":165074,"__hash__":165075},"topics/nuxt/pages-routing.md",{"type":8,"value":164716,"toc":165067},[164717,164720,164799,165064],[11,164718,164630],{"id":164719},"pages-routing",[25,164721,164723],{"className":161287,"code":164722,"language":161289,"meta":30,"style":30},"\u003C!-- app/pages/index.vue -->\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Ch1>Home Page\u003C/h1>\n  \u003C/div>\n\u003C/template>\n\n\u003C!-- app/pages/about.vue => /about -->\n\u003C!-- app/pages/users/index.vue => /users -->\n\u003C!-- app/pages/users/[id].vue => /users/:id -->\n\u003C!-- app/pages/posts/[...slug].vue => /posts/* (catch-all) -->\n",[20,164724,164725,164730,164738,164746,164759,164767,164775,164779,164784,164789,164794],{"__ignoreMap":30},[34,164726,164727],{"class":36,"line":37},[34,164728,164729],{"class":40},"\u003C!-- app/pages/index.vue -->\n",[34,164731,164732,164734,164736],{"class":36,"line":44},[34,164733,815],{"class":181},[34,164735,8517],{"class":177},[34,164737,1248],{"class":181},[34,164739,164740,164742,164744],{"class":36,"line":58},[34,164741,1181],{"class":181},[34,164743,1240],{"class":177},[34,164745,1248],{"class":181},[34,164747,164748,164750,164752,164755,164757],{"class":36,"line":65},[34,164749,1294],{"class":181},[34,164751,8535],{"class":177},[34,164753,164754],{"class":181},">Home Page\u003C/",[34,164756,8535],{"class":177},[34,164758,1248],{"class":181},[34,164760,164761,164763,164765],{"class":36,"line":71},[34,164762,8547],{"class":181},[34,164764,1240],{"class":177},[34,164766,1248],{"class":181},[34,164768,164769,164771,164773],{"class":36,"line":77},[34,164770,2089],{"class":181},[34,164772,8517],{"class":177},[34,164774,1248],{"class":181},[34,164776,164777],{"class":36,"line":82},[34,164778,62],{"emptyLinePlaceholder":61},[34,164780,164781],{"class":36,"line":88},[34,164782,164783],{"class":40},"\u003C!-- app/pages/about.vue => /about -->\n",[34,164785,164786],{"class":36,"line":242},[34,164787,164788],{"class":40},"\u003C!-- app/pages/users/index.vue => /users -->\n",[34,164790,164791],{"class":36,"line":250},[34,164792,164793],{"class":40},"\u003C!-- app/pages/users/[id].vue => /users/:id -->\n",[34,164795,164796],{"class":36,"line":263},[34,164797,164798],{"class":40},"\u003C!-- app/pages/posts/[...slug].vue => /posts/* (catch-all) -->\n",[25,164800,164802],{"className":161287,"code":164801,"language":161289,"meta":30,"style":30},"\u003C!-- app/pages/users/[id].vue -->\n\u003Cscript setup>\n// Get route params\nconst route = useRoute()\nconst userId = route.params.id\n\n// Navigation\nconst router = useRouter()\n\nfunction goHome() {\n  navigateTo('/')\n  // Or with options\n  navigateTo('/login', { replace: true })\n}\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Ch1>User {{ userId }}\u003C/h1>\n    \u003CNuxtLink to=\"/\">Home\u003C/NuxtLink>\n    \u003CNuxtLink :to=\"{ name: 'users-id', params: { id: 123 } }\">\n      User 123\n    \u003C/NuxtLink>\n    \u003Cbutton @click=\"goHome\">Go Home\u003C/button>\n  \u003C/div>\n\u003C/template>\n",[20,164803,164804,164809,164819,164824,164836,164847,164851,164856,164869,164873,164882,164893,164898,164913,164917,164925,164929,164937,164945,164958,164978,165010,165015,165023,165048,165056],{"__ignoreMap":30},[34,164805,164806],{"class":36,"line":37},[34,164807,164808],{"class":40},"\u003C!-- app/pages/users/[id].vue -->\n",[34,164810,164811,164813,164815,164817],{"class":36,"line":44},[34,164812,815],{"class":181},[34,164814,115970],{"class":177},[34,164816,161305],{"class":47},[34,164818,1248],{"class":181},[34,164820,164821],{"class":36,"line":58},[34,164822,164823],{"class":40},"// Get route params\n",[34,164825,164826,164828,164830,164832,164834],{"class":36,"line":65},[34,164827,14676],{"class":580},[34,164829,3550],{"class":50},[34,164831,683],{"class":580},[34,164833,163663],{"class":47},[34,164835,33899],{"class":181},[34,164837,164838,164840,164842,164844],{"class":36,"line":71},[34,164839,14676],{"class":580},[34,164841,162425],{"class":50},[34,164843,683],{"class":580},[34,164845,164846],{"class":181}," route.params.id\n",[34,164848,164849],{"class":36,"line":77},[34,164850,62],{"emptyLinePlaceholder":61},[34,164852,164853],{"class":36,"line":82},[34,164854,164855],{"class":40},"// Navigation\n",[34,164857,164858,164860,164862,164864,164867],{"class":36,"line":88},[34,164859,14676],{"class":580},[34,164861,3536],{"class":50},[34,164863,683],{"class":580},[34,164865,164866],{"class":47}," useRouter",[34,164868,33899],{"class":181},[34,164870,164871],{"class":36,"line":242},[34,164872,62],{"emptyLinePlaceholder":61},[34,164874,164875,164877,164880],{"class":36,"line":250},[34,164876,11044],{"class":580},[34,164878,164879],{"class":47}," goHome",[34,164881,836],{"class":181},[34,164883,164884,164887,164889,164891],{"class":36,"line":263},[34,164885,164886],{"class":47},"  navigateTo",[34,164888,1607],{"class":181},[34,164890,61825],{"class":54},[34,164892,3372],{"class":181},[34,164894,164895],{"class":36,"line":275},[34,164896,164897],{"class":40},"  // Or with options\n",[34,164899,164900,164902,164904,164906,164909,164911],{"class":36,"line":700},[34,164901,164886],{"class":47},[34,164903,1607],{"class":181},[34,164905,149228],{"class":54},[34,164907,164908],{"class":181},", { replace: ",[34,164910,632],{"class":50},[34,164912,1502],{"class":181},[34,164914,164915],{"class":36,"line":706},[34,164916,693],{"class":181},[34,164918,164919,164921,164923],{"class":36,"line":715},[34,164920,2089],{"class":181},[34,164922,115970],{"class":177},[34,164924,1248],{"class":181},[34,164926,164927],{"class":36,"line":725},[34,164928,62],{"emptyLinePlaceholder":61},[34,164930,164931,164933,164935],{"class":36,"line":734},[34,164932,815],{"class":181},[34,164934,8517],{"class":177},[34,164936,1248],{"class":181},[34,164938,164939,164941,164943],{"class":36,"line":742},[34,164940,1181],{"class":181},[34,164942,1240],{"class":177},[34,164944,1248],{"class":181},[34,164946,164947,164949,164951,164954,164956],{"class":36,"line":748},[34,164948,1294],{"class":181},[34,164950,8535],{"class":177},[34,164952,164953],{"class":181},">User {{ userId }}\u003C/",[34,164955,8535],{"class":177},[34,164957,1248],{"class":181},[34,164959,164960,164962,164965,164968,164970,164972,164974,164976],{"class":36,"line":754},[34,164961,1294],{"class":181},[34,164963,164964],{"class":177},"NuxtLink",[34,164966,164967],{"class":47}," to",[34,164969,1301],{"class":181},[34,164971,81654],{"class":54},[34,164973,90331],{"class":181},[34,164975,164964],{"class":177},[34,164977,1248],{"class":181},[34,164979,164980,164982,164984,164986,164988,164990,164992,164995,164998,165001,165003,165006,165008],{"class":36,"line":759},[34,164981,1294],{"class":181},[34,164983,164964],{"class":177},[34,164985,64223],{"class":181},[34,164987,38916],{"class":47},[34,164989,1301],{"class":181},[34,164991,10389],{"class":54},[34,164993,164994],{"class":181},"{ name: ",[34,164996,164997],{"class":54},"'users-id'",[34,164999,165000],{"class":181},", params: { id: ",[34,165002,23913],{"class":50},[34,165004,165005],{"class":181}," } }",[34,165007,10389],{"class":54},[34,165009,1248],{"class":181},[34,165011,165012],{"class":36,"line":771},[34,165013,165014],{"class":181},"      User 123\n",[34,165016,165017,165019,165021],{"class":36,"line":794},[34,165018,74431],{"class":181},[34,165020,164964],{"class":177},[34,165022,1248],{"class":181},[34,165024,165025,165027,165029,165031,165033,165035,165037,165040,165042,165044,165046],{"class":36,"line":824},[34,165026,1294],{"class":181},[34,165028,4509],{"class":177},[34,165030,162956],{"class":181},[34,165032,45348],{"class":47},[34,165034,1301],{"class":181},[34,165036,10389],{"class":54},[34,165038,165039],{"class":181},"goHome",[34,165041,10389],{"class":54},[34,165043,163176],{"class":181},[34,165045,4509],{"class":177},[34,165047,1248],{"class":181},[34,165049,165050,165052,165054],{"class":36,"line":830},[34,165051,8547],{"class":181},[34,165053,1240],{"class":177},[34,165055,1248],{"class":181},[34,165057,165058,165060,165062],{"class":36,"line":839},[34,165059,2089],{"class":181},[34,165061,8517],{"class":177},[34,165063,1248],{"class":181},[388,165065,165066],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":30,"searchDepth":44,"depth":44,"links":165068},[165069],{"id":164719,"depth":44,"text":164630},"Pages & Routing in Nuxt.",{},{"title":164630,"description":165070},"nuxt/pages-routing",[161617,161289,8606,159069,982],"eBRPvkTXJ_TXlDHkJN-jwdODGX0URtpfQC0x0jsXqZk",{"id":165077,"title":157858,"body":165078,"date":402,"description":165298,"extension":404,"meta":165299,"navigation":61,"order":250,"path":164663,"seo":165300,"stem":165301,"subject":161617,"tags":165302,"__hash__":165303},"topics/nuxt/plugins.md",{"type":8,"value":165079,"toc":165295},[165080,165082,165228,165293],[11,165081,157858],{"id":157857},[25,165083,165085],{"className":571,"code":165084,"language":573,"meta":30,"style":30},"// app/plugins/my-plugin.ts\nexport default defineNuxtPlugin((nuxtApp) => {\n  // Available on client and server\n  return {\n    provide: {\n      hello: (name: string) => `Hello ${name}!`\n    }\n  }\n})\n\n// app/plugins/client-only.client.ts - Client only\nexport default defineNuxtPlugin(() => {\n  // Browser APIs available here\n})\n\n// app/plugins/server-only.server.ts - Server only\nexport default defineNuxtPlugin(() => {\n  // Server-only logic\n})\n",[20,165086,165087,165092,165111,165116,165122,165127,165152,165156,165160,165164,165168,165173,165187,165192,165196,165200,165205,165219,165224],{"__ignoreMap":30},[34,165088,165089],{"class":36,"line":37},[34,165090,165091],{"class":40},"// app/plugins/my-plugin.ts\n",[34,165093,165094,165096,165098,165101,165103,165105,165107,165109],{"class":36,"line":44},[34,165095,652],{"class":580},[34,165097,7298],{"class":580},[34,165099,165100],{"class":47}," defineNuxtPlugin",[34,165102,8348],{"class":181},[34,165104,162631],{"class":675},[34,165106,4817],{"class":181},[34,165108,3361],{"class":580},[34,165110,661],{"class":181},[34,165112,165113],{"class":36,"line":58},[34,165114,165115],{"class":40},"  // Available on client and server\n",[34,165117,165118,165120],{"class":36,"line":65},[34,165119,8155],{"class":580},[34,165121,661],{"class":181},[34,165123,165124],{"class":36,"line":71},[34,165125,165126],{"class":181},"    provide: {\n",[34,165128,165129,165132,165134,165136,165138,165140,165142,165144,165147,165149],{"class":36,"line":77},[34,165130,165131],{"class":47},"      hello",[34,165133,162313],{"class":181},[34,165135,178],{"class":675},[34,165137,165],{"class":580},[34,165139,680],{"class":50},[34,165141,4817],{"class":181},[34,165143,3361],{"class":580},[34,165145,165146],{"class":54}," `Hello ${",[34,165148,178],{"class":181},[34,165150,165151],{"class":54},"}!`\n",[34,165153,165154],{"class":36,"line":82},[34,165155,3229],{"class":181},[34,165157,165158],{"class":36,"line":88},[34,165159,857],{"class":181},[34,165161,165162],{"class":36,"line":242},[34,165163,647],{"class":181},[34,165165,165166],{"class":36,"line":250},[34,165167,62],{"emptyLinePlaceholder":61},[34,165169,165170],{"class":36,"line":263},[34,165171,165172],{"class":40},"// app/plugins/client-only.client.ts - Client only\n",[34,165174,165175,165177,165179,165181,165183,165185],{"class":36,"line":275},[34,165176,652],{"class":580},[34,165178,7298],{"class":580},[34,165180,165100],{"class":47},[34,165182,4275],{"class":181},[34,165184,3361],{"class":580},[34,165186,661],{"class":181},[34,165188,165189],{"class":36,"line":700},[34,165190,165191],{"class":40},"  // Browser APIs available here\n",[34,165193,165194],{"class":36,"line":706},[34,165195,647],{"class":181},[34,165197,165198],{"class":36,"line":715},[34,165199,62],{"emptyLinePlaceholder":61},[34,165201,165202],{"class":36,"line":725},[34,165203,165204],{"class":40},"// app/plugins/server-only.server.ts - Server only\n",[34,165206,165207,165209,165211,165213,165215,165217],{"class":36,"line":734},[34,165208,652],{"class":580},[34,165210,7298],{"class":580},[34,165212,165100],{"class":47},[34,165214,4275],{"class":181},[34,165216,3361],{"class":580},[34,165218,661],{"class":181},[34,165220,165221],{"class":36,"line":742},[34,165222,165223],{"class":40},"  // Server-only logic\n",[34,165225,165226],{"class":36,"line":748},[34,165227,647],{"class":181},[25,165229,165231],{"className":161287,"code":165230,"language":161289,"meta":30,"style":30},"\u003C!-- Using plugin -->\n\u003Cscript setup>\nconst { $hello } = useNuxtApp()\nconsole.log($hello('World')) // Hello World!\n\u003C/script>\n",[20,165232,165233,165238,165248,165266,165285],{"__ignoreMap":30},[34,165234,165235],{"class":36,"line":37},[34,165236,165237],{"class":40},"\u003C!-- Using plugin -->\n",[34,165239,165240,165242,165244,165246],{"class":36,"line":44},[34,165241,815],{"class":181},[34,165243,115970],{"class":177},[34,165245,161305],{"class":47},[34,165247,1248],{"class":181},[34,165249,165250,165252,165254,165257,165259,165261,165264],{"class":36,"line":58},[34,165251,14676],{"class":580},[34,165253,30251],{"class":181},[34,165255,165256],{"class":50},"$hello",[34,165258,34865],{"class":181},[34,165260,1301],{"class":580},[34,165262,165263],{"class":47}," useNuxtApp",[34,165265,33899],{"class":181},[34,165267,165268,165270,165272,165274,165276,165278,165280,165282],{"class":36,"line":65},[34,165269,15183],{"class":181},[34,165271,2424],{"class":47},[34,165273,1607],{"class":181},[34,165275,165256],{"class":47},[34,165277,1607],{"class":181},[34,165279,76879],{"class":54},[34,165281,49706],{"class":181},[34,165283,165284],{"class":40},"// Hello World!\n",[34,165286,165287,165289,165291],{"class":36,"line":71},[34,165288,2089],{"class":181},[34,165290,115970],{"class":177},[34,165292,1248],{"class":181},[388,165294,164040],{},{"title":30,"searchDepth":44,"depth":44,"links":165296},[165297],{"id":157857,"depth":44,"text":157858},"Plugins in Nuxt.",{},{"title":157858,"description":165298},"nuxt/plugins",[161617,161289,8606,159069,982],"isK-V8koNMOmbJmCAWkcoHfcR4Ew9nA25PyuMPvRybc",{"id":165305,"title":164624,"body":165306,"date":402,"description":165543,"extension":404,"meta":165544,"navigation":61,"order":44,"path":164623,"seo":165545,"stem":165546,"subject":161617,"tags":165547,"__hash__":165548},"topics/nuxt/project-structure.md",{"type":8,"value":165307,"toc":165540},[165308,165311,165538],[11,165309,164624],{"id":165310},"project-structure",[25,165312,165314],{"className":27,"code":165313,"language":29,"meta":30,"style":30},"# Nuxt 4 directory structure (new default)\n├── nuxt.config.ts      # Nuxt configuration\n├── app/                # App source directory (new in v4)\n│   ├── app.vue         # Main app component\n│   ├── app.config.ts   # App configuration\n│   ├── error.vue       # Error page\n│   ├── assets/         # Build-processed assets\n│   ├── components/     # Auto-imported components\n│   ├── composables/    # Auto-imported composables\n│   ├── layouts/        # App layouts\n│   ├── middleware/     # Route middleware\n│   ├── pages/          # File-based routing\n│   ├── plugins/        # Vue plugins\n│   └── utils/          # Utility functions\n├── shared/             # Shared code (app & server)\n├── server/             # Server routes & API\n├── content/            # Content files (if using @nuxt/content)\n├── layers/             # Nuxt layers\n├── modules/            # Local modules\n└── public/             # Static assets\n",[20,165315,165316,165321,165332,165342,165356,165368,165380,165392,165404,165416,165428,165440,165452,165464,165477,165487,165497,165507,165517,165527],{"__ignoreMap":30},[34,165317,165318],{"class":36,"line":37},[34,165319,165320],{"class":40},"# Nuxt 4 directory structure (new default)\n",[34,165322,165323,165326,165329],{"class":36,"line":44},[34,165324,165325],{"class":47},"├──",[34,165327,165328],{"class":54}," nuxt.config.ts",[34,165330,165331],{"class":40},"      # Nuxt configuration\n",[34,165333,165334,165336,165339],{"class":36,"line":58},[34,165335,165325],{"class":47},[34,165337,165338],{"class":54}," app/",[34,165340,165341],{"class":40},"                # App source directory (new in v4)\n",[34,165343,165344,165347,165350,165353],{"class":36,"line":65},[34,165345,165346],{"class":47},"│",[34,165348,165349],{"class":54},"   ├──",[34,165351,165352],{"class":54}," app.vue",[34,165354,165355],{"class":40},"         # Main app component\n",[34,165357,165358,165360,165362,165365],{"class":36,"line":71},[34,165359,165346],{"class":47},[34,165361,165349],{"class":54},[34,165363,165364],{"class":54}," app.config.ts",[34,165366,165367],{"class":40},"   # App configuration\n",[34,165369,165370,165372,165374,165377],{"class":36,"line":77},[34,165371,165346],{"class":47},[34,165373,165349],{"class":54},[34,165375,165376],{"class":54}," error.vue",[34,165378,165379],{"class":40},"       # Error page\n",[34,165381,165382,165384,165386,165389],{"class":36,"line":82},[34,165383,165346],{"class":47},[34,165385,165349],{"class":54},[34,165387,165388],{"class":54}," assets/",[34,165390,165391],{"class":40},"         # Build-processed assets\n",[34,165393,165394,165396,165398,165401],{"class":36,"line":88},[34,165395,165346],{"class":47},[34,165397,165349],{"class":54},[34,165399,165400],{"class":54}," components/",[34,165402,165403],{"class":40},"     # Auto-imported components\n",[34,165405,165406,165408,165410,165413],{"class":36,"line":242},[34,165407,165346],{"class":47},[34,165409,165349],{"class":54},[34,165411,165412],{"class":54}," composables/",[34,165414,165415],{"class":40},"    # Auto-imported composables\n",[34,165417,165418,165420,165422,165425],{"class":36,"line":250},[34,165419,165346],{"class":47},[34,165421,165349],{"class":54},[34,165423,165424],{"class":54}," layouts/",[34,165426,165427],{"class":40},"        # App layouts\n",[34,165429,165430,165432,165434,165437],{"class":36,"line":263},[34,165431,165346],{"class":47},[34,165433,165349],{"class":54},[34,165435,165436],{"class":54}," middleware/",[34,165438,165439],{"class":40},"     # Route middleware\n",[34,165441,165442,165444,165446,165449],{"class":36,"line":275},[34,165443,165346],{"class":47},[34,165445,165349],{"class":54},[34,165447,165448],{"class":54}," pages/",[34,165450,165451],{"class":40},"          # File-based routing\n",[34,165453,165454,165456,165458,165461],{"class":36,"line":700},[34,165455,165346],{"class":47},[34,165457,165349],{"class":54},[34,165459,165460],{"class":54}," plugins/",[34,165462,165463],{"class":40},"        # Vue plugins\n",[34,165465,165466,165468,165471,165474],{"class":36,"line":706},[34,165467,165346],{"class":47},[34,165469,165470],{"class":54},"   └──",[34,165472,165473],{"class":54}," utils/",[34,165475,165476],{"class":40},"          # Utility functions\n",[34,165478,165479,165481,165484],{"class":36,"line":715},[34,165480,165325],{"class":47},[34,165482,165483],{"class":54}," shared/",[34,165485,165486],{"class":40},"             # Shared code (app & server)\n",[34,165488,165489,165491,165494],{"class":36,"line":725},[34,165490,165325],{"class":47},[34,165492,165493],{"class":54}," server/",[34,165495,165496],{"class":40},"             # Server routes & API\n",[34,165498,165499,165501,165504],{"class":36,"line":734},[34,165500,165325],{"class":47},[34,165502,165503],{"class":54}," content/",[34,165505,165506],{"class":40},"            # Content files (if using @nuxt/content)\n",[34,165508,165509,165511,165514],{"class":36,"line":742},[34,165510,165325],{"class":47},[34,165512,165513],{"class":54}," layers/",[34,165515,165516],{"class":40},"             # Nuxt layers\n",[34,165518,165519,165521,165524],{"class":36,"line":748},[34,165520,165325],{"class":47},[34,165522,165523],{"class":54}," modules/",[34,165525,165526],{"class":40},"            # Local modules\n",[34,165528,165529,165532,165535],{"class":36,"line":754},[34,165530,165531],{"class":47},"└──",[34,165533,165534],{"class":54}," public/",[34,165536,165537],{"class":40},"             # Static assets\n",[388,165539,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":165541},[165542],{"id":165310,"depth":44,"text":164624},"Project Structure in Nuxt.",{},{"title":164624,"description":165543},"nuxt/project-structure",[161617,161289,8606,159069,982],"86R052ru1_iEZR1DCc0whQSk2EPYjJ2iENPhQ1vhXNE",{"id":165550,"title":164675,"body":165551,"date":402,"description":165785,"extension":404,"meta":165786,"navigation":61,"order":275,"path":164674,"seo":165787,"stem":165788,"subject":161617,"tags":165789,"__hash__":165790},"topics/nuxt/runtime-config.md",{"type":8,"value":165552,"toc":165782},[165553,165556,165634,165706,165779],[11,165554,164675],{"id":165555},"runtime-config",[25,165557,165559],{"className":571,"code":165558,"language":573,"meta":30,"style":30},"// nuxt.config.ts\nexport default defineNuxtConfig({\n  runtimeConfig: {\n    // Server-only (private)\n    apiSecret: process.env.API_SECRET,\n    \n    // Public (exposed to client)\n    public: {\n      apiBase: process.env.API_BASE || '/api'\n    }\n  }\n})\n",[20,165560,165561,165565,165575,165580,165585,165595,165599,165604,165609,165622,165626,165630],{"__ignoreMap":30},[34,165562,165563],{"class":36,"line":37},[34,165564,164255],{"class":40},[34,165566,165567,165569,165571,165573],{"class":36,"line":44},[34,165568,652],{"class":580},[34,165570,7298],{"class":580},[34,165572,164081],{"class":47},[34,165574,613],{"class":181},[34,165576,165577],{"class":36,"line":58},[34,165578,165579],{"class":181},"  runtimeConfig: {\n",[34,165581,165582],{"class":36,"line":65},[34,165583,165584],{"class":40},"    // Server-only (private)\n",[34,165586,165587,165590,165593],{"class":36,"line":71},[34,165588,165589],{"class":181},"    apiSecret: process.env.",[34,165591,165592],{"class":50},"API_SECRET",[34,165594,624],{"class":181},[34,165596,165597],{"class":36,"line":77},[34,165598,3666],{"class":181},[34,165600,165601],{"class":36,"line":82},[34,165602,165603],{"class":40},"    // Public (exposed to client)\n",[34,165605,165606],{"class":36,"line":88},[34,165607,165608],{"class":181},"    public: {\n",[34,165610,165611,165614,165617,165619],{"class":36,"line":242},[34,165612,165613],{"class":181},"      apiBase: process.env.",[34,165615,165616],{"class":50},"API_BASE",[34,165618,21168],{"class":580},[34,165620,165621],{"class":54}," '/api'\n",[34,165623,165624],{"class":36,"line":250},[34,165625,3229],{"class":181},[34,165627,165628],{"class":36,"line":263},[34,165629,857],{"class":181},[34,165631,165632],{"class":36,"line":275},[34,165633,647],{"class":181},[25,165635,165637],{"className":161287,"code":165636,"language":161289,"meta":30,"style":30},"\u003C!-- Using runtime config -->\n\u003Cscript setup>\nconst config = useRuntimeConfig()\n\n// Client: only public available\nconsole.log(config.public.apiBase)\n\n// Server: all config available\n// console.log(config.apiSecret)\n\u003C/script>\n",[20,165638,165639,165644,165654,165666,165670,165675,165684,165688,165693,165698],{"__ignoreMap":30},[34,165640,165641],{"class":36,"line":37},[34,165642,165643],{"class":40},"\u003C!-- Using runtime config -->\n",[34,165645,165646,165648,165650,165652],{"class":36,"line":44},[34,165647,815],{"class":181},[34,165649,115970],{"class":177},[34,165651,161305],{"class":47},[34,165653,1248],{"class":181},[34,165655,165656,165658,165660,165662,165664],{"class":36,"line":58},[34,165657,14676],{"class":580},[34,165659,58810],{"class":50},[34,165661,683],{"class":580},[34,165663,161788],{"class":47},[34,165665,33899],{"class":181},[34,165667,165668],{"class":36,"line":65},[34,165669,62],{"emptyLinePlaceholder":61},[34,165671,165672],{"class":36,"line":71},[34,165673,165674],{"class":40},"// Client: only public available\n",[34,165676,165677,165679,165681],{"class":36,"line":77},[34,165678,15183],{"class":181},[34,165680,2424],{"class":47},[34,165682,165683],{"class":181},"(config.public.apiBase)\n",[34,165685,165686],{"class":36,"line":82},[34,165687,62],{"emptyLinePlaceholder":61},[34,165689,165690],{"class":36,"line":88},[34,165691,165692],{"class":40},"// Server: all config available\n",[34,165694,165695],{"class":36,"line":242},[34,165696,165697],{"class":40},"// console.log(config.apiSecret)\n",[34,165699,165700,165702,165704],{"class":36,"line":250},[34,165701,2089],{"class":181},[34,165703,115970],{"class":177},[34,165705,1248],{"class":181},[25,165707,165709],{"className":571,"code":165708,"language":573,"meta":30,"style":30},"// server/api/example.ts - Server-side access\nexport default defineEventHandler((event) => {\n  const config = useRuntimeConfig()\n  // Access private config\n  const secret = config.apiSecret\n  return { status: 'ok' }\n})\n",[20,165710,165711,165716,165735,165747,165752,165763,165775],{"__ignoreMap":30},[34,165712,165713],{"class":36,"line":37},[34,165714,165715],{"class":40},"// server/api/example.ts - Server-side access\n",[34,165717,165718,165720,165722,165725,165727,165729,165731,165733],{"class":36,"line":44},[34,165719,652],{"class":580},[34,165721,7298],{"class":580},[34,165723,165724],{"class":47}," defineEventHandler",[34,165726,8348],{"class":181},[34,165728,72497],{"class":675},[34,165730,4817],{"class":181},[34,165732,3361],{"class":580},[34,165734,661],{"class":181},[34,165736,165737,165739,165741,165743,165745],{"class":36,"line":58},[34,165738,17415],{"class":580},[34,165740,58810],{"class":50},[34,165742,683],{"class":580},[34,165744,161788],{"class":47},[34,165746,33899],{"class":181},[34,165748,165749],{"class":36,"line":65},[34,165750,165751],{"class":40},"  // Access private config\n",[34,165753,165754,165756,165758,165760],{"class":36,"line":71},[34,165755,17415],{"class":580},[34,165757,7176],{"class":50},[34,165759,683],{"class":580},[34,165761,165762],{"class":181}," config.apiSecret\n",[34,165764,165765,165767,165770,165773],{"class":36,"line":77},[34,165766,8155],{"class":580},[34,165768,165769],{"class":181}," { status: ",[34,165771,165772],{"class":54},"'ok'",[34,165774,52786],{"class":181},[34,165776,165777],{"class":36,"line":82},[34,165778,647],{"class":181},[388,165780,165781],{},"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 .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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .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}",{"title":30,"searchDepth":44,"depth":44,"links":165783},[165784],{"id":165555,"depth":44,"text":164675},"Runtime Config in Nuxt.",{},{"title":164675,"description":165785},"nuxt/runtime-config",[161617,161289,8606,159069,982],"g2b3qEeSWHrGN4UpER-TNo9dbcQTdfELBY1noW-rZTo",{"id":165792,"title":164669,"body":165793,"date":402,"description":166180,"extension":404,"meta":166181,"navigation":61,"order":263,"path":164668,"seo":166182,"stem":166183,"subject":161617,"tags":166184,"__hash__":166185},"topics/nuxt/seo-meta.md",{"type":8,"value":165794,"toc":166177},[165795,165798,166056,166174],[11,165796,164669],{"id":165797},"seo-meta",[25,165799,165801],{"className":161287,"code":165800,"language":161289,"meta":30,"style":30},"\u003Cscript setup>\n// Page-level meta (Nuxt 4 uses Unhead v2)\nuseHead({\n  title: 'My Page Title',\n  meta: [\n    { name: 'description', content: 'Page description' },\n    { property: 'og:title', content: 'My Page' }\n  ],\n  link: [\n    { rel: 'canonical', href: 'https://example.com/page' }\n  ],\n  script: [\n    { src: 'https://example.com/script.js', defer: true }\n  ]\n})\n\n// Dynamic title\nconst title = ref('Initial Title')\nuseHead({\n  title: () => title.value\n})\n\n// SEO composable\nuseSeoMeta({\n  title: 'My Amazing Site',\n  ogTitle: 'My Amazing Site',\n  description: 'This is my amazing site.',\n  ogDescription: 'This is my amazing site.',\n  ogImage: 'https://example.com/image.png',\n  twitterCard: 'summary_large_image'\n})\n\u003C/script>\n",[20,165802,165803,165813,165818,165825,165834,165839,165855,165870,165874,165879,165895,165899,165904,165919,165923,165927,165931,165936,165953,165959,165970,165974,165978,165983,165990,165999,166008,166017,166026,166036,166044,166048],{"__ignoreMap":30},[34,165804,165805,165807,165809,165811],{"class":36,"line":37},[34,165806,815],{"class":181},[34,165808,115970],{"class":177},[34,165810,161305],{"class":47},[34,165812,1248],{"class":181},[34,165814,165815],{"class":36,"line":44},[34,165816,165817],{"class":40},"// Page-level meta (Nuxt 4 uses Unhead v2)\n",[34,165819,165820,165823],{"class":36,"line":58},[34,165821,165822],{"class":47},"useHead",[34,165824,613],{"class":181},[34,165826,165827,165829,165832],{"class":36,"line":65},[34,165828,85785],{"class":181},[34,165830,165831],{"class":54},"'My Page Title'",[34,165833,624],{"class":181},[34,165835,165836],{"class":36,"line":71},[34,165837,165838],{"class":181},"  meta: [\n",[34,165840,165841,165844,165847,165850,165853],{"class":36,"line":77},[34,165842,165843],{"class":181},"    { name: ",[34,165845,165846],{"class":54},"'description'",[34,165848,165849],{"class":181},", content: ",[34,165851,165852],{"class":54},"'Page description'",[34,165854,14846],{"class":181},[34,165856,165857,165860,165863,165865,165868],{"class":36,"line":82},[34,165858,165859],{"class":181},"    { property: ",[34,165861,165862],{"class":54},"'og:title'",[34,165864,165849],{"class":181},[34,165866,165867],{"class":54},"'My Page'",[34,165869,52786],{"class":181},[34,165871,165872],{"class":36,"line":88},[34,165873,127682],{"class":181},[34,165875,165876],{"class":36,"line":242},[34,165877,165878],{"class":181},"  link: [\n",[34,165880,165881,165884,165887,165890,165893],{"class":36,"line":250},[34,165882,165883],{"class":181},"    { rel: ",[34,165885,165886],{"class":54},"'canonical'",[34,165888,165889],{"class":181},", href: ",[34,165891,165892],{"class":54},"'https://example.com/page'",[34,165894,52786],{"class":181},[34,165896,165897],{"class":36,"line":263},[34,165898,127682],{"class":181},[34,165900,165901],{"class":36,"line":275},[34,165902,165903],{"class":181},"  script: [\n",[34,165905,165906,165909,165912,165915,165917],{"class":36,"line":700},[34,165907,165908],{"class":181},"    { src: ",[34,165910,165911],{"class":54},"'https://example.com/script.js'",[34,165913,165914],{"class":181},", defer: ",[34,165916,632],{"class":50},[34,165918,52786],{"class":181},[34,165920,165921],{"class":36,"line":706},[34,165922,85237],{"class":181},[34,165924,165925],{"class":36,"line":715},[34,165926,647],{"class":181},[34,165928,165929],{"class":36,"line":725},[34,165930,62],{"emptyLinePlaceholder":61},[34,165932,165933],{"class":36,"line":734},[34,165934,165935],{"class":40},"// Dynamic title\n",[34,165937,165938,165940,165942,165944,165946,165948,165951],{"class":36,"line":742},[34,165939,14676],{"class":580},[34,165941,13985],{"class":50},[34,165943,683],{"class":580},[34,165945,162430],{"class":47},[34,165947,1607],{"class":181},[34,165949,165950],{"class":54},"'Initial Title'",[34,165952,3372],{"class":181},[34,165954,165955,165957],{"class":36,"line":748},[34,165956,165822],{"class":47},[34,165958,613],{"class":181},[34,165960,165961,165963,165965,165967],{"class":36,"line":754},[34,165962,117415],{"class":47},[34,165964,3358],{"class":181},[34,165966,3361],{"class":580},[34,165968,165969],{"class":181}," title.value\n",[34,165971,165972],{"class":36,"line":759},[34,165973,647],{"class":181},[34,165975,165976],{"class":36,"line":771},[34,165977,62],{"emptyLinePlaceholder":61},[34,165979,165980],{"class":36,"line":794},[34,165981,165982],{"class":40},"// SEO composable\n",[34,165984,165985,165988],{"class":36,"line":824},[34,165986,165987],{"class":47},"useSeoMeta",[34,165989,613],{"class":181},[34,165991,165992,165994,165997],{"class":36,"line":830},[34,165993,85785],{"class":181},[34,165995,165996],{"class":54},"'My Amazing Site'",[34,165998,624],{"class":181},[34,166000,166001,166004,166006],{"class":36,"line":839},[34,166002,166003],{"class":181},"  ogTitle: ",[34,166005,165996],{"class":54},[34,166007,624],{"class":181},[34,166009,166010,166012,166015],{"class":36,"line":854},[34,166011,85795],{"class":181},[34,166013,166014],{"class":54},"'This is my amazing site.'",[34,166016,624],{"class":181},[34,166018,166019,166022,166024],{"class":36,"line":860},[34,166020,166021],{"class":181},"  ogDescription: ",[34,166023,166014],{"class":54},[34,166025,624],{"class":181},[34,166027,166028,166031,166034],{"class":36,"line":865},[34,166029,166030],{"class":181},"  ogImage: ",[34,166032,166033],{"class":54},"'https://example.com/image.png'",[34,166035,624],{"class":181},[34,166037,166038,166041],{"class":36,"line":870},[34,166039,166040],{"class":181},"  twitterCard: ",[34,166042,166043],{"class":54},"'summary_large_image'\n",[34,166045,166046],{"class":36,"line":876},[34,166047,647],{"class":181},[34,166049,166050,166052,166054],{"class":36,"line":885},[34,166051,2089],{"class":181},[34,166053,115970],{"class":177},[34,166055,1248],{"class":181},[25,166057,166059],{"className":571,"code":166058,"language":573,"meta":30,"style":30},"// nuxt.config.ts - Global defaults\nexport default defineNuxtConfig({\n  app: {\n    head: {\n      title: 'My App',\n      meta: [\n        { charset: 'utf-8' },\n        { name: 'viewport', content: 'width=device-width, initial-scale=1' }\n      ],\n      link: [\n        { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }\n      ]\n    }\n  }\n})\n",[20,166060,166061,166066,166076,166081,166086,166096,166101,166111,166126,166131,166136,166157,166162,166166,166170],{"__ignoreMap":30},[34,166062,166063],{"class":36,"line":37},[34,166064,166065],{"class":40},"// nuxt.config.ts - Global defaults\n",[34,166067,166068,166070,166072,166074],{"class":36,"line":44},[34,166069,652],{"class":580},[34,166071,7298],{"class":580},[34,166073,164081],{"class":47},[34,166075,613],{"class":181},[34,166077,166078],{"class":36,"line":58},[34,166079,166080],{"class":181},"  app: {\n",[34,166082,166083],{"class":36,"line":65},[34,166084,166085],{"class":181},"    head: {\n",[34,166087,166088,166091,166094],{"class":36,"line":71},[34,166089,166090],{"class":181},"      title: ",[34,166092,166093],{"class":54},"'My App'",[34,166095,624],{"class":181},[34,166097,166098],{"class":36,"line":77},[34,166099,166100],{"class":181},"      meta: [\n",[34,166102,166103,166106,166109],{"class":36,"line":82},[34,166104,166105],{"class":181},"        { charset: ",[34,166107,166108],{"class":54},"'utf-8'",[34,166110,14846],{"class":181},[34,166112,166113,166116,166119,166121,166124],{"class":36,"line":88},[34,166114,166115],{"class":181},"        { name: ",[34,166117,166118],{"class":54},"'viewport'",[34,166120,165849],{"class":181},[34,166122,166123],{"class":54},"'width=device-width, initial-scale=1'",[34,166125,52786],{"class":181},[34,166127,166128],{"class":36,"line":242},[34,166129,166130],{"class":181},"      ],\n",[34,166132,166133],{"class":36,"line":250},[34,166134,166135],{"class":181},"      link: [\n",[34,166137,166138,166141,166144,166147,166150,166152,166155],{"class":36,"line":263},[34,166139,166140],{"class":181},"        { rel: ",[34,166142,166143],{"class":54},"'icon'",[34,166145,166146],{"class":181},", type: ",[34,166148,166149],{"class":54},"'image/x-icon'",[34,166151,165889],{"class":181},[34,166153,166154],{"class":54},"'/favicon.ico'",[34,166156,52786],{"class":181},[34,166158,166159],{"class":36,"line":275},[34,166160,166161],{"class":181},"      ]\n",[34,166163,166164],{"class":36,"line":700},[34,166165,3229],{"class":181},[34,166167,166168],{"class":36,"line":706},[34,166169,857],{"class":181},[34,166171,166172],{"class":36,"line":715},[34,166173,647],{"class":181},[388,166175,166176],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":166178},[166179],{"id":165797,"depth":44,"text":164669},"SEO & Meta in Nuxt.",{},{"title":164669,"description":166180},"nuxt/seo-meta",[161617,161289,8606,159069,982],"m3JNn0yRYY17fKfhTzbApYet3cxmCFf6p38_P7lRAKs",{"id":166187,"title":164658,"body":166188,"date":402,"description":166573,"extension":404,"meta":166574,"navigation":61,"order":242,"path":164657,"seo":166575,"stem":166576,"subject":161617,"tags":166577,"__hash__":166578},"topics/nuxt/server-routes-api.md",{"type":8,"value":166189,"toc":166570},[166190,166193,166568],[11,166191,164658],{"id":166192},"server-routes-api",[25,166194,166196],{"className":571,"code":166195,"language":573,"meta":30,"style":30},"// server/api/users.get.ts\nexport default defineEventHandler(async (event) => {\n  // Return JSON\n  return [\n    { id: 1, name: 'John' },\n    { id: 2, name: 'Jane' }\n  ]\n})\n\n// server/api/users.post.ts\nexport default defineEventHandler(async (event) => {\n  const body = await readBody(event)\n  // Create user logic\n  return { id: 3, ...body }\n})\n\n// server/api/users/[id].ts - Dynamic route\nexport default defineEventHandler((event) => {\n  const id = getRouterParam(event, 'id')\n  return { id, name: `User ${id}` }\n})\n\n// server/api/search.ts - Query params\nexport default defineEventHandler((event) => {\n  const query = getQuery(event)\n  // /api/search?q=hello => query.q = 'hello'\n  return { results: [], query: query.q }\n})\n\n// server/api/protected.ts - With validation\nexport default defineEventHandler(async (event) => {\n  const headers = getHeaders(event)\n  \n  if (!headers.authorization) {\n    throw createError({\n      statusCode: 401,\n      message: 'Unauthorized'\n    })\n  }\n  \n  return { secret: 'data' }\n})\n",[20,166197,166198,166203,166225,166230,166236,166249,166261,166265,166269,166273,166278,166300,166315,166320,166335,166339,166343,166348,166366,166383,166399,166403,166407,166412,166430,166442,166447,166454,166458,166462,166467,166489,166501,166505,166516,166524,166533,166541,166545,166549,166553,166564],{"__ignoreMap":30},[34,166199,166200],{"class":36,"line":37},[34,166201,166202],{"class":40},"// server/api/users.get.ts\n",[34,166204,166205,166207,166209,166211,166213,166215,166217,166219,166221,166223],{"class":36,"line":44},[34,166206,652],{"class":580},[34,166208,7298],{"class":580},[34,166210,165724],{"class":47},[34,166212,1607],{"class":181},[34,166214,17403],{"class":580},[34,166216,3204],{"class":181},[34,166218,72497],{"class":675},[34,166220,4817],{"class":181},[34,166222,3361],{"class":580},[34,166224,661],{"class":181},[34,166226,166227],{"class":36,"line":58},[34,166228,166229],{"class":40},"  // Return JSON\n",[34,166231,166232,166234],{"class":36,"line":65},[34,166233,8155],{"class":580},[34,166235,3304],{"class":181},[34,166237,166238,166241,166243,166245,166247],{"class":36,"line":71},[34,166239,166240],{"class":181},"    { id: ",[34,166242,8318],{"class":50},[34,166244,61160],{"class":181},[34,166246,151425],{"class":54},[34,166248,14846],{"class":181},[34,166250,166251,166253,166255,166257,166259],{"class":36,"line":77},[34,166252,166240],{"class":181},[34,166254,8324],{"class":50},[34,166256,61160],{"class":181},[34,166258,151475],{"class":54},[34,166260,52786],{"class":181},[34,166262,166263],{"class":36,"line":82},[34,166264,85237],{"class":181},[34,166266,166267],{"class":36,"line":88},[34,166268,647],{"class":181},[34,166270,166271],{"class":36,"line":242},[34,166272,62],{"emptyLinePlaceholder":61},[34,166274,166275],{"class":36,"line":250},[34,166276,166277],{"class":40},"// server/api/users.post.ts\n",[34,166279,166280,166282,166284,166286,166288,166290,166292,166294,166296,166298],{"class":36,"line":263},[34,166281,652],{"class":580},[34,166283,7298],{"class":580},[34,166285,165724],{"class":47},[34,166287,1607],{"class":181},[34,166289,17403],{"class":580},[34,166291,3204],{"class":181},[34,166293,72497],{"class":675},[34,166295,4817],{"class":181},[34,166297,3361],{"class":580},[34,166299,661],{"class":181},[34,166301,166302,166304,166306,166308,166310,166312],{"class":36,"line":275},[34,166303,17415],{"class":580},[34,166305,112629],{"class":50},[34,166307,683],{"class":580},[34,166309,14763],{"class":580},[34,166311,112636],{"class":47},[34,166313,166314],{"class":181},"(event)\n",[34,166316,166317],{"class":36,"line":700},[34,166318,166319],{"class":40},"  // Create user logic\n",[34,166321,166322,166324,166326,166328,166330,166332],{"class":36,"line":706},[34,166323,8155],{"class":580},[34,166325,76351],{"class":181},[34,166327,3162],{"class":50},[34,166329,1798],{"class":181},[34,166331,16841],{"class":580},[34,166333,166334],{"class":181},"body }\n",[34,166336,166337],{"class":36,"line":715},[34,166338,647],{"class":181},[34,166340,166341],{"class":36,"line":725},[34,166342,62],{"emptyLinePlaceholder":61},[34,166344,166345],{"class":36,"line":734},[34,166346,166347],{"class":40},"// server/api/users/[id].ts - Dynamic route\n",[34,166349,166350,166352,166354,166356,166358,166360,166362,166364],{"class":36,"line":742},[34,166351,652],{"class":580},[34,166353,7298],{"class":580},[34,166355,165724],{"class":47},[34,166357,8348],{"class":181},[34,166359,72497],{"class":675},[34,166361,4817],{"class":181},[34,166363,3361],{"class":580},[34,166365,661],{"class":181},[34,166367,166368,166370,166372,166374,166377,166379,166381],{"class":36,"line":748},[34,166369,17415],{"class":580},[34,166371,115557],{"class":50},[34,166373,683],{"class":580},[34,166375,166376],{"class":47}," getRouterParam",[34,166378,112761],{"class":181},[34,166380,3652],{"class":54},[34,166382,3372],{"class":181},[34,166384,166385,166387,166390,166393,166395,166397],{"class":36,"line":754},[34,166386,8155],{"class":580},[34,166388,166389],{"class":181}," { id, name: ",[34,166391,166392],{"class":54},"`User ${",[34,166394,3885],{"class":181},[34,166396,3925],{"class":54},[34,166398,52786],{"class":181},[34,166400,166401],{"class":36,"line":759},[34,166402,647],{"class":181},[34,166404,166405],{"class":36,"line":771},[34,166406,62],{"emptyLinePlaceholder":61},[34,166408,166409],{"class":36,"line":794},[34,166410,166411],{"class":40},"// server/api/search.ts - Query params\n",[34,166413,166414,166416,166418,166420,166422,166424,166426,166428],{"class":36,"line":824},[34,166415,652],{"class":580},[34,166417,7298],{"class":580},[34,166419,165724],{"class":47},[34,166421,8348],{"class":181},[34,166423,72497],{"class":675},[34,166425,4817],{"class":181},[34,166427,3361],{"class":580},[34,166429,661],{"class":181},[34,166431,166432,166434,166436,166438,166440],{"class":36,"line":830},[34,166433,17415],{"class":580},[34,166435,17128],{"class":50},[34,166437,683],{"class":580},[34,166439,112724],{"class":47},[34,166441,166314],{"class":181},[34,166443,166444],{"class":36,"line":839},[34,166445,166446],{"class":40},"  // /api/search?q=hello => query.q = 'hello'\n",[34,166448,166449,166451],{"class":36,"line":854},[34,166450,8155],{"class":580},[34,166452,166453],{"class":181}," { results: [], query: query.q }\n",[34,166455,166456],{"class":36,"line":860},[34,166457,647],{"class":181},[34,166459,166460],{"class":36,"line":865},[34,166461,62],{"emptyLinePlaceholder":61},[34,166463,166464],{"class":36,"line":870},[34,166465,166466],{"class":40},"// server/api/protected.ts - With validation\n",[34,166468,166469,166471,166473,166475,166477,166479,166481,166483,166485,166487],{"class":36,"line":876},[34,166470,652],{"class":580},[34,166472,7298],{"class":580},[34,166474,165724],{"class":47},[34,166476,1607],{"class":181},[34,166478,17403],{"class":580},[34,166480,3204],{"class":181},[34,166482,72497],{"class":675},[34,166484,4817],{"class":181},[34,166486,3361],{"class":580},[34,166488,661],{"class":181},[34,166490,166491,166493,166495,166497,166499],{"class":36,"line":885},[34,166492,17415],{"class":580},[34,166494,1779],{"class":50},[34,166496,683],{"class":580},[34,166498,112741],{"class":47},[34,166500,166314],{"class":181},[34,166502,166503],{"class":36,"line":895},[34,166504,827],{"class":181},[34,166506,166507,166509,166511,166513],{"class":36,"line":904},[34,166508,8084],{"class":580},[34,166510,3204],{"class":181},[34,166512,10307],{"class":580},[34,166514,166515],{"class":181},"headers.authorization) {\n",[34,166517,166518,166520,166522],{"class":36,"line":915},[34,166519,48916],{"class":580},[34,166521,112964],{"class":47},[34,166523,613],{"class":181},[34,166525,166526,166529,166531],{"class":36,"line":927},[34,166527,166528],{"class":181},"      statusCode: ",[34,166530,61955],{"class":50},[34,166532,624],{"class":181},[34,166534,166535,166538],{"class":36,"line":932},[34,166536,166537],{"class":181},"      message: ",[34,166539,166540],{"class":54},"'Unauthorized'\n",[34,166542,166543],{"class":36,"line":944},[34,166544,62116],{"class":181},[34,166546,166547],{"class":36,"line":966},[34,166548,857],{"class":181},[34,166550,166551],{"class":36,"line":1948},[34,166552,827],{"class":181},[34,166554,166555,166557,166560,166562],{"class":36,"line":1953},[34,166556,8155],{"class":580},[34,166558,166559],{"class":181}," { secret: ",[34,166561,111983],{"class":54},[34,166563,52786],{"class":181},[34,166565,166566],{"class":36,"line":3616},[34,166567,647],{"class":181},[388,166569,17665],{},{"title":30,"searchDepth":44,"depth":44,"links":166571},[166572],{"id":166192,"depth":44,"text":164658},"Server Routes (API) in Nuxt.",{},{"title":164658,"description":166573},"nuxt/server-routes-api",[161617,161289,8606,159069,982],"WyQZRQZwLwG4tf7DJOnxDltc4ynnNKAqkVBVZw_M_TY",{"id":166580,"title":164693,"body":166581,"date":402,"description":166756,"extension":404,"meta":166757,"navigation":61,"order":725,"path":164692,"seo":166758,"stem":166759,"subject":161617,"tags":166760,"__hash__":166761},"topics/nuxt/shared-directory.md",{"type":8,"value":166582,"toc":166753},[166583,166586,166751],[11,166584,164693],{"id":166585},"shared-directory",[25,166587,166589],{"className":571,"code":166588,"language":573,"meta":30,"style":30},"// shared/types/user.ts - Available in both app and server\nexport interface User {\n  id: string\n  name: string\n  email: string\n}\n\n// shared/utils/format.ts - Shared utilities\nexport function formatDate(date: Date): string {\n  return date.toLocaleDateString()\n}\n\n// Use in app/\nimport type { User } from '~/shared/types/user'\nimport { formatDate } from '~/shared/utils/format'\n\n// Use in server/\nimport type { User } from '~~/shared/types/user'\nimport { formatDate } from '~~/shared/utils/format'\n",[20,166590,166591,166596,166606,166614,166622,166630,166634,166638,166643,166667,166679,166683,166687,166692,166706,166718,166722,166727,166740],{"__ignoreMap":30},[34,166592,166593],{"class":36,"line":37},[34,166594,166595],{"class":40},"// shared/types/user.ts - Available in both app and server\n",[34,166597,166598,166600,166602,166604],{"class":36,"line":44},[34,166599,652],{"class":580},[34,166601,36013],{"class":580},[34,166603,3950],{"class":47},[34,166605,661],{"class":181},[34,166607,166608,166610,166612],{"class":36,"line":58},[34,166609,116886],{"class":675},[34,166611,165],{"class":580},[34,166613,65985],{"class":50},[34,166615,166616,166618,166620],{"class":36,"line":65},[34,166617,7350],{"class":675},[34,166619,165],{"class":580},[34,166621,65985],{"class":50},[34,166623,166624,166626,166628],{"class":36,"line":71},[34,166625,132578],{"class":675},[34,166627,165],{"class":580},[34,166629,65985],{"class":50},[34,166631,166632],{"class":36,"line":77},[34,166633,693],{"class":181},[34,166635,166636],{"class":36,"line":82},[34,166637,62],{"emptyLinePlaceholder":61},[34,166639,166640],{"class":36,"line":88},[34,166641,166642],{"class":40},"// shared/utils/format.ts - Shared utilities\n",[34,166644,166645,166647,166649,166651,166653,166655,166657,166659,166661,166663,166665],{"class":36,"line":242},[34,166646,652],{"class":580},[34,166648,8037],{"class":580},[34,166650,60444],{"class":47},[34,166652,1607],{"class":181},[34,166654,13390],{"class":675},[34,166656,165],{"class":580},[34,166658,60453],{"class":47},[34,166660,1617],{"class":181},[34,166662,165],{"class":580},[34,166664,680],{"class":50},[34,166666,661],{"class":181},[34,166668,166669,166671,166674,166677],{"class":36,"line":250},[34,166670,8155],{"class":580},[34,166672,166673],{"class":181}," date.",[34,166675,166676],{"class":47},"toLocaleDateString",[34,166678,33899],{"class":181},[34,166680,166681],{"class":36,"line":263},[34,166682,693],{"class":181},[34,166684,166685],{"class":36,"line":275},[34,166686,62],{"emptyLinePlaceholder":61},[34,166688,166689],{"class":36,"line":700},[34,166690,166691],{"class":40},"// Use in app/\n",[34,166693,166694,166696,166698,166701,166703],{"class":36,"line":706},[34,166695,581],{"class":580},[34,166697,62326],{"class":580},[34,166699,166700],{"class":181}," { User } ",[34,166702,587],{"class":580},[34,166704,166705],{"class":54}," '~/shared/types/user'\n",[34,166707,166708,166710,166713,166715],{"class":36,"line":715},[34,166709,581],{"class":580},[34,166711,166712],{"class":181}," { formatDate } ",[34,166714,587],{"class":580},[34,166716,166717],{"class":54}," '~/shared/utils/format'\n",[34,166719,166720],{"class":36,"line":725},[34,166721,62],{"emptyLinePlaceholder":61},[34,166723,166724],{"class":36,"line":734},[34,166725,166726],{"class":40},"// Use in server/\n",[34,166728,166729,166731,166733,166735,166737],{"class":36,"line":742},[34,166730,581],{"class":580},[34,166732,62326],{"class":580},[34,166734,166700],{"class":181},[34,166736,587],{"class":580},[34,166738,166739],{"class":54}," '~~/shared/types/user'\n",[34,166741,166742,166744,166746,166748],{"class":36,"line":748},[34,166743,581],{"class":580},[34,166745,166712],{"class":181},[34,166747,587],{"class":580},[34,166749,166750],{"class":54}," '~~/shared/utils/format'\n",[388,166752,17665],{},{"title":30,"searchDepth":44,"depth":44,"links":166754},[166755],{"id":166585,"depth":44,"text":164693},"Shared Directory in Nuxt.",{},{"title":164693,"description":166756},"nuxt/shared-directory",[161617,161289,8606,159069,982],"vLMgpphJ7lQv8UUykPQA93chyQRaJKvyhFRTosUj4Ew",{"id":166763,"title":164640,"body":166764,"date":402,"description":167185,"extension":404,"meta":167186,"navigation":61,"order":71,"path":164639,"seo":167187,"stem":167188,"subject":161617,"tags":167189,"__hash__":167190},"topics/nuxt/state-management.md",{"type":8,"value":166765,"toc":167182},[166766,166768,166990,167180],[11,166767,164640],{"id":127360},[25,166769,166771],{"className":161287,"code":166770,"language":161289,"meta":30,"style":30},"\u003Cscript setup>\n// useState - SSR-friendly shared state\nconst counter = useState('counter', () => 0)\n\n// Global state across components\nconst user = useState('user', () => ({\n  name: '',\n  email: ''\n}))\n\nfunction increment() {\n  counter.value++\n}\n\nfunction setUser(name, email) {\n  user.value = { name, email }\n}\n\u003C/script>\n\n\u003C!-- Access in another component -->\n\u003Cscript setup>\n// Same key returns same state\nconst counter = useState('counter')\nconst user = useState('user')\n\u003C/script>\n",[20,166772,166773,166783,166788,166811,166815,166820,166841,166849,166856,166860,166864,166872,166879,166883,166887,166904,166914,166918,166926,166930,166935,166945,166950,166966,166982],{"__ignoreMap":30},[34,166774,166775,166777,166779,166781],{"class":36,"line":37},[34,166776,815],{"class":181},[34,166778,115970],{"class":177},[34,166780,161305],{"class":47},[34,166782,1248],{"class":181},[34,166784,166785],{"class":36,"line":44},[34,166786,166787],{"class":40},"// useState - SSR-friendly shared state\n",[34,166789,166790,166792,166795,166797,166799,166801,166803,166805,166807,166809],{"class":36,"line":58},[34,166791,14676],{"class":580},[34,166793,166794],{"class":50}," counter",[34,166796,683],{"class":580},[34,166798,85637],{"class":47},[34,166800,1607],{"class":181},[34,166802,161670],{"class":54},[34,166804,17258],{"class":181},[34,166806,3361],{"class":580},[34,166808,8070],{"class":50},[34,166810,3372],{"class":181},[34,166812,166813],{"class":36,"line":65},[34,166814,62],{"emptyLinePlaceholder":61},[34,166816,166817],{"class":36,"line":71},[34,166818,166819],{"class":40},"// Global state across components\n",[34,166821,166822,166824,166826,166828,166830,166832,166834,166836,166838],{"class":36,"line":77},[34,166823,14676],{"class":580},[34,166825,17148],{"class":50},[34,166827,683],{"class":580},[34,166829,85637],{"class":47},[34,166831,1607],{"class":181},[34,166833,162514],{"class":54},[34,166835,17258],{"class":181},[34,166837,3361],{"class":580},[34,166839,166840],{"class":181}," ({\n",[34,166842,166843,166845,166847],{"class":36,"line":82},[34,166844,2830],{"class":181},[34,166846,3151],{"class":54},[34,166848,624],{"class":181},[34,166850,166851,166853],{"class":36,"line":88},[34,166852,83303],{"class":181},[34,166854,166855],{"class":54},"''\n",[34,166857,166858],{"class":36,"line":242},[34,166859,76987],{"class":181},[34,166861,166862],{"class":36,"line":250},[34,166863,62],{"emptyLinePlaceholder":61},[34,166865,166866,166868,166870],{"class":36,"line":263},[34,166867,11044],{"class":580},[34,166869,60840],{"class":47},[34,166871,836],{"class":181},[34,166873,166874,166877],{"class":36,"line":275},[34,166875,166876],{"class":181},"  counter.value",[34,166878,108020],{"class":580},[34,166880,166881],{"class":36,"line":700},[34,166882,693],{"class":181},[34,166884,166885],{"class":36,"line":706},[34,166886,62],{"emptyLinePlaceholder":61},[34,166888,166889,166891,166894,166896,166898,166900,166902],{"class":36,"line":715},[34,166890,11044],{"class":580},[34,166892,166893],{"class":47}," setUser",[34,166895,1607],{"class":181},[34,166897,178],{"class":675},[34,166899,1798],{"class":181},[34,166901,59283],{"class":675},[34,166903,2416],{"class":181},[34,166905,166906,166909,166911],{"class":36,"line":725},[34,166907,166908],{"class":181},"  user.value ",[34,166910,1301],{"class":580},[34,166912,166913],{"class":181}," { name, email }\n",[34,166915,166916],{"class":36,"line":734},[34,166917,693],{"class":181},[34,166919,166920,166922,166924],{"class":36,"line":742},[34,166921,2089],{"class":181},[34,166923,115970],{"class":177},[34,166925,1248],{"class":181},[34,166927,166928],{"class":36,"line":748},[34,166929,62],{"emptyLinePlaceholder":61},[34,166931,166932],{"class":36,"line":754},[34,166933,166934],{"class":40},"\u003C!-- Access in another component -->\n",[34,166936,166937,166939,166941,166943],{"class":36,"line":759},[34,166938,815],{"class":181},[34,166940,115970],{"class":177},[34,166942,161305],{"class":47},[34,166944,1248],{"class":181},[34,166946,166947],{"class":36,"line":771},[34,166948,166949],{"class":40},"// Same key returns same state\n",[34,166951,166952,166954,166956,166958,166960,166962,166964],{"class":36,"line":794},[34,166953,14676],{"class":580},[34,166955,166794],{"class":50},[34,166957,683],{"class":580},[34,166959,85637],{"class":47},[34,166961,1607],{"class":181},[34,166963,161670],{"class":54},[34,166965,3372],{"class":181},[34,166967,166968,166970,166972,166974,166976,166978,166980],{"class":36,"line":824},[34,166969,14676],{"class":580},[34,166971,17148],{"class":50},[34,166973,683],{"class":580},[34,166975,85637],{"class":47},[34,166977,1607],{"class":181},[34,166979,162514],{"class":54},[34,166981,3372],{"class":181},[34,166983,166984,166986,166988],{"class":36,"line":830},[34,166985,2089],{"class":181},[34,166987,115970],{"class":177},[34,166989,1248],{"class":181},[25,166991,166993],{"className":571,"code":166992,"language":573,"meta":30,"style":30},"// composables/useAuth.ts - Custom composable\nexport const useAuth = () => {\n  const user = useState('auth-user', () => null)\n  const isLoggedIn = computed(() => !!user.value)\n\n  async function login(credentials) {\n    const data = await $fetch('/api/login', {\n      method: 'POST',\n      body: credentials\n    })\n    user.value = data.user\n  }\n\n  function logout() {\n    user.value = null\n    navigateTo('/login')\n  }\n\n  return { user, isLoggedIn, login, logout }\n}\n",[20,166994,166995,167000,167016,167039,167060,167064,167080,167099,167107,167112,167116,167126,167130,167134,167142,167150,167161,167165,167169,167176],{"__ignoreMap":30},[34,166996,166997],{"class":36,"line":37},[34,166998,166999],{"class":40},"// composables/useAuth.ts - Custom composable\n",[34,167001,167002,167004,167006,167008,167010,167012,167014],{"class":36,"line":44},[34,167003,652],{"class":580},[34,167005,3291],{"class":580},[34,167007,163836],{"class":47},[34,167009,683],{"class":580},[34,167011,17406],{"class":181},[34,167013,3361],{"class":580},[34,167015,661],{"class":181},[34,167017,167018,167020,167022,167024,167026,167028,167031,167033,167035,167037],{"class":36,"line":58},[34,167019,17415],{"class":580},[34,167021,17148],{"class":50},[34,167023,683],{"class":580},[34,167025,85637],{"class":47},[34,167027,1607],{"class":181},[34,167029,167030],{"class":54},"'auth-user'",[34,167032,17258],{"class":181},[34,167034,3361],{"class":580},[34,167036,13898],{"class":50},[34,167038,3372],{"class":181},[34,167040,167041,167043,167046,167048,167050,167052,167054,167057],{"class":36,"line":65},[34,167042,17415],{"class":580},[34,167044,167045],{"class":50}," isLoggedIn",[34,167047,683],{"class":580},[34,167049,4272],{"class":47},[34,167051,4275],{"class":181},[34,167053,3361],{"class":580},[34,167055,167056],{"class":580}," !!",[34,167058,167059],{"class":181},"user.value)\n",[34,167061,167062],{"class":36,"line":71},[34,167063,62],{"emptyLinePlaceholder":61},[34,167065,167066,167069,167071,167073,167075,167078],{"class":36,"line":77},[34,167067,167068],{"class":580},"  async",[34,167070,8037],{"class":580},[34,167072,7220],{"class":47},[34,167074,1607],{"class":181},[34,167076,167077],{"class":675},"credentials",[34,167079,2416],{"class":181},[34,167081,167082,167084,167086,167088,167090,167092,167094,167097],{"class":36,"line":82},[34,167083,1632],{"class":580},[34,167085,14780],{"class":50},[34,167087,683],{"class":580},[34,167089,14763],{"class":580},[34,167091,161828],{"class":47},[34,167093,1607],{"class":181},[34,167095,167096],{"class":54},"'/api/login'",[34,167098,14820],{"class":181},[34,167100,167101,167103,167105],{"class":36,"line":88},[34,167102,161928],{"class":181},[34,167104,75057],{"class":54},[34,167106,624],{"class":181},[34,167108,167109],{"class":36,"line":242},[34,167110,167111],{"class":181},"      body: credentials\n",[34,167113,167114],{"class":36,"line":250},[34,167115,62116],{"class":181},[34,167117,167118,167121,167123],{"class":36,"line":263},[34,167119,167120],{"class":181},"    user.value ",[34,167122,1301],{"class":580},[34,167124,167125],{"class":181}," data.user\n",[34,167127,167128],{"class":36,"line":275},[34,167129,857],{"class":181},[34,167131,167132],{"class":36,"line":700},[34,167133,62],{"emptyLinePlaceholder":61},[34,167135,167136,167138,167140],{"class":36,"line":706},[34,167137,68507],{"class":580},[34,167139,94713],{"class":47},[34,167141,836],{"class":181},[34,167143,167144,167146,167148],{"class":36,"line":715},[34,167145,167120],{"class":181},[34,167147,1301],{"class":580},[34,167149,136246],{"class":50},[34,167151,167152,167155,167157,167159],{"class":36,"line":725},[34,167153,167154],{"class":47},"    navigateTo",[34,167156,1607],{"class":181},[34,167158,149228],{"class":54},[34,167160,3372],{"class":181},[34,167162,167163],{"class":36,"line":734},[34,167164,857],{"class":181},[34,167166,167167],{"class":36,"line":742},[34,167168,62],{"emptyLinePlaceholder":61},[34,167170,167171,167173],{"class":36,"line":748},[34,167172,8155],{"class":580},[34,167174,167175],{"class":181}," { user, isLoggedIn, login, logout }\n",[34,167177,167178],{"class":36,"line":754},[34,167179,693],{"class":181},[388,167181,162993],{},{"title":30,"searchDepth":44,"depth":44,"links":167183},[167184],{"id":127360,"depth":44,"text":164640},"State Management in Nuxt.",{},{"title":164640,"description":167185},"nuxt/state-management",[161617,161289,8606,159069,982],"o9AwFeNPmbzhXHmoRtUzWlWaNSXROe4bTs29QaauWQw",{"id":167192,"title":164699,"body":167193,"date":402,"description":167539,"extension":404,"meta":167540,"navigation":61,"order":734,"path":164698,"seo":167541,"stem":167542,"subject":161617,"tags":167543,"__hash__":167544},"topics/nuxt/useful-utils.md",{"type":8,"value":167194,"toc":167536},[167195,167198,167533],[11,167196,164699],{"id":167197},"useful-utils",[25,167199,167201],{"className":161287,"code":167200,"language":161289,"meta":30,"style":30},"\u003Cscript setup>\n// Check rendering context\nif (import.meta.client) {\n  // Client-side only code\n}\nif (import.meta.server) {\n  // Server-side only code\n}\n\n// Cookie handling\nconst token = useCookie('token')\ntoken.value = 'abc123'\n\n// With options\nconst session = useCookie('session', {\n  maxAge: 60 * 60 * 24,\n  secure: true,\n  httpOnly: true\n})\n\n// Request headers (server-side)\nconst headers = useRequestHeaders(['cookie', 'authorization'])\n\n// Request URL\nconst url = useRequestURL()\nconsole.log(url.origin, url.pathname)\n\n// App config\nconst appConfig = useAppConfig()\n\n// Preload components\npreloadComponents('HeavyComponent')\n\n// Prefetch routes\nprefetchComponents(['LazyModal'])\n\n// Nuxt 4: Access payload (replaces window.__NUXT__)\nconst nuxtApp = useNuxtApp()\nconsole.log(nuxtApp.payload)\n\u003C/script>\n",[20,167202,167203,167213,167218,167233,167238,167242,167257,167262,167266,167270,167275,167293,167303,167307,167311,167328,167346,167355,167362,167366,167370,167375,167398,167402,167407,167420,167429,167433,167438,167452,167456,167461,167473,167477,167482,167494,167498,167503,167516,167525],{"__ignoreMap":30},[34,167204,167205,167207,167209,167211],{"class":36,"line":37},[34,167206,815],{"class":181},[34,167208,115970],{"class":177},[34,167210,161305],{"class":47},[34,167212,1248],{"class":181},[34,167214,167215],{"class":36,"line":44},[34,167216,167217],{"class":40},"// Check rendering context\n",[34,167219,167220,167222,167224,167226,167228,167230],{"class":36,"line":58},[34,167221,10383],{"class":580},[34,167223,3204],{"class":181},[34,167225,581],{"class":580},[34,167227,151],{"class":181},[34,167229,46417],{"class":50},[34,167231,167232],{"class":181},".client) {\n",[34,167234,167235],{"class":36,"line":65},[34,167236,167237],{"class":40},"  // Client-side only code\n",[34,167239,167240],{"class":36,"line":71},[34,167241,693],{"class":181},[34,167243,167244,167246,167248,167250,167252,167254],{"class":36,"line":77},[34,167245,10383],{"class":580},[34,167247,3204],{"class":181},[34,167249,581],{"class":580},[34,167251,151],{"class":181},[34,167253,46417],{"class":50},[34,167255,167256],{"class":181},".server) {\n",[34,167258,167259],{"class":36,"line":82},[34,167260,167261],{"class":40},"  // Server-side only code\n",[34,167263,167264],{"class":36,"line":88},[34,167265,693],{"class":181},[34,167267,167268],{"class":36,"line":242},[34,167269,62],{"emptyLinePlaceholder":61},[34,167271,167272],{"class":36,"line":250},[34,167273,167274],{"class":40},"// Cookie handling\n",[34,167276,167277,167279,167281,167283,167286,167288,167291],{"class":36,"line":263},[34,167278,14676],{"class":580},[34,167280,72656],{"class":50},[34,167282,683],{"class":580},[34,167284,167285],{"class":47}," useCookie",[34,167287,1607],{"class":181},[34,167289,167290],{"class":54},"'token'",[34,167292,3372],{"class":181},[34,167294,167295,167298,167300],{"class":36,"line":275},[34,167296,167297],{"class":181},"token.value ",[34,167299,1301],{"class":580},[34,167301,167302],{"class":54}," 'abc123'\n",[34,167304,167305],{"class":36,"line":700},[34,167306,62],{"emptyLinePlaceholder":61},[34,167308,167309],{"class":36,"line":706},[34,167310,16456],{"class":40},[34,167312,167313,167315,167317,167319,167321,167323,167326],{"class":36,"line":715},[34,167314,14676],{"class":580},[34,167316,72560],{"class":50},[34,167318,683],{"class":580},[34,167320,167285],{"class":47},[34,167322,1607],{"class":181},[34,167324,167325],{"class":54},"'session'",[34,167327,14820],{"class":181},[34,167329,167330,167333,167335,167337,167339,167341,167344],{"class":36,"line":725},[34,167331,167332],{"class":181},"  maxAge: ",[34,167334,41304],{"class":50},[34,167336,18083],{"class":580},[34,167338,77109],{"class":50},[34,167340,18083],{"class":580},[34,167342,167343],{"class":50}," 24",[34,167345,624],{"class":181},[34,167347,167348,167351,167353],{"class":36,"line":734},[34,167349,167350],{"class":181},"  secure: ",[34,167352,632],{"class":50},[34,167354,624],{"class":181},[34,167356,167357,167360],{"class":36,"line":742},[34,167358,167359],{"class":181},"  httpOnly: ",[34,167361,515],{"class":50},[34,167363,167364],{"class":36,"line":748},[34,167365,647],{"class":181},[34,167367,167368],{"class":36,"line":754},[34,167369,62],{"emptyLinePlaceholder":61},[34,167371,167372],{"class":36,"line":759},[34,167373,167374],{"class":40},"// Request headers (server-side)\n",[34,167376,167377,167379,167381,167383,167386,167388,167391,167393,167396],{"class":36,"line":771},[34,167378,14676],{"class":580},[34,167380,1779],{"class":50},[34,167382,683],{"class":580},[34,167384,167385],{"class":47}," useRequestHeaders",[34,167387,3593],{"class":181},[34,167389,167390],{"class":54},"'cookie'",[34,167392,1798],{"class":181},[34,167394,167395],{"class":54},"'authorization'",[34,167397,51547],{"class":181},[34,167399,167400],{"class":36,"line":794},[34,167401,62],{"emptyLinePlaceholder":61},[34,167403,167404],{"class":36,"line":824},[34,167405,167406],{"class":40},"// Request URL\n",[34,167408,167409,167411,167413,167415,167418],{"class":36,"line":830},[34,167410,14676],{"class":580},[34,167412,15519],{"class":50},[34,167414,683],{"class":580},[34,167416,167417],{"class":47}," useRequestURL",[34,167419,33899],{"class":181},[34,167421,167422,167424,167426],{"class":36,"line":839},[34,167423,15183],{"class":181},[34,167425,2424],{"class":47},[34,167427,167428],{"class":181},"(url.origin, url.pathname)\n",[34,167430,167431],{"class":36,"line":854},[34,167432,62],{"emptyLinePlaceholder":61},[34,167434,167435],{"class":36,"line":860},[34,167436,167437],{"class":40},"// App config\n",[34,167439,167440,167442,167445,167447,167450],{"class":36,"line":865},[34,167441,14676],{"class":580},[34,167443,167444],{"class":50}," appConfig",[34,167446,683],{"class":580},[34,167448,167449],{"class":47}," useAppConfig",[34,167451,33899],{"class":181},[34,167453,167454],{"class":36,"line":870},[34,167455,62],{"emptyLinePlaceholder":61},[34,167457,167458],{"class":36,"line":876},[34,167459,167460],{"class":40},"// Preload components\n",[34,167462,167463,167466,167468,167471],{"class":36,"line":885},[34,167464,167465],{"class":47},"preloadComponents",[34,167467,1607],{"class":181},[34,167469,167470],{"class":54},"'HeavyComponent'",[34,167472,3372],{"class":181},[34,167474,167475],{"class":36,"line":895},[34,167476,62],{"emptyLinePlaceholder":61},[34,167478,167479],{"class":36,"line":904},[34,167480,167481],{"class":40},"// Prefetch routes\n",[34,167483,167484,167487,167489,167492],{"class":36,"line":915},[34,167485,167486],{"class":47},"prefetchComponents",[34,167488,3593],{"class":181},[34,167490,167491],{"class":54},"'LazyModal'",[34,167493,51547],{"class":181},[34,167495,167496],{"class":36,"line":927},[34,167497,62],{"emptyLinePlaceholder":61},[34,167499,167500],{"class":36,"line":932},[34,167501,167502],{"class":40},"// Nuxt 4: Access payload (replaces window.__NUXT__)\n",[34,167504,167505,167507,167510,167512,167514],{"class":36,"line":944},[34,167506,14676],{"class":580},[34,167508,167509],{"class":50}," nuxtApp",[34,167511,683],{"class":580},[34,167513,165263],{"class":47},[34,167515,33899],{"class":181},[34,167517,167518,167520,167522],{"class":36,"line":966},[34,167519,15183],{"class":181},[34,167521,2424],{"class":47},[34,167523,167524],{"class":181},"(nuxtApp.payload)\n",[34,167526,167527,167529,167531],{"class":36,"line":1948},[34,167528,2089],{"class":181},[34,167530,115970],{"class":177},[34,167532,1248],{"class":181},[388,167534,167535],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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);}",{"title":30,"searchDepth":44,"depth":44,"links":167537},[167538],{"id":167197,"depth":44,"text":164699},"Useful Utils in Nuxt.",{},{"title":164699,"description":167539},"nuxt/useful-utils",[161617,161289,8606,159069,982],"mfdxwZ2HRppBUrYCJuE6y6aJRwx4JA-HCcMX5otJDTk",{"id":167546,"title":167547,"body":167548,"date":402,"description":167629,"extension":404,"meta":167630,"navigation":61,"order":37,"path":167631,"seo":167632,"stem":167633,"subject":167634,"tags":167635,"__hash__":167638},"topics/nx/overview.md","NX - Monorepo Build System",{"type":8,"value":167549,"toc":167622},[167550,167554,167557,167559,167562,167578,167581,167585,167588,167600,167603,167605,167616,167619],[11,167551,167553],{"id":167552},"getting-started-with-nx","Getting Started with NX",[16,167555,167556],{},"NX is an open-source set of extensible DevTools for monorepos, enabling scalable and fast builds for JavaScript, TypeScript, and other modern applications.",[102,167558,97],{"id":96},[16,167560,167561],{},"To install NX globally on your machine (requires Node.js):",[25,167563,167565],{"className":27,"code":167564,"language":29,"meta":30,"style":30},"npm install -g nx\n",[20,167566,167567],{"__ignoreMap":30},[34,167568,167569,167571,167573,167575],{"class":36,"line":37},[34,167570,8177],{"class":47},[34,167572,118],{"class":54},[34,167574,9753],{"class":50},[34,167576,167577],{"class":54}," nx\n",[16,167579,167580],{},"Inline comment: Globally installing ensures you can use NX commands anywhere.",[102,167582,167584],{"id":167583},"creating-a-workspace","Creating a Workspace",[16,167586,167587],{},"You can scaffold a new NX workspace:",[25,167589,167591],{"className":27,"code":167590,"language":29,"meta":30,"style":30},"npx create-nx-workspace@latest\n",[20,167592,167593],{"__ignoreMap":30},[34,167594,167595,167597],{"class":36,"line":37},[34,167596,8205],{"class":47},[34,167598,167599],{"class":54}," create-nx-workspace@latest\n",[16,167601,167602],{},"Inline comment: This command will initiate questions to create the workspace structure suitable for your needs.",[102,167604,8498],{"id":8497},[309,167606,167607,167610,167613],{},[312,167608,167609],{},"Support for JavaScript, TypeScript, React, Angular and others",[312,167611,167612],{},"Fine-grained dependency graph",[312,167614,167615],{},"Task runner optimized for speed",[16,167617,167618],{},"... Additional functional tasks will need advanced refs.",[388,167620,167621],{},"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 .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":30,"searchDepth":44,"depth":44,"links":167623},[167624],{"id":167552,"depth":44,"text":167553,"children":167625},[167626,167627,167628],{"id":96,"depth":58,"text":97},{"id":167583,"depth":58,"text":167584},{"id":8497,"depth":58,"text":8498},"Key commands, configuration, and workflows to efficiently manage monorepos.",{},"/nx/overview",{"title":167547,"description":167629},"nx/overview","nx",[167636,108549,167637],"monorepo","nxdev","Tf2ym_GJy6DOFSSJ8cGgNJpxSUrVb3aZ-2uHLlHXLH8",{"id":167640,"title":167641,"body":167642,"date":402,"description":167835,"extension":404,"meta":167836,"navigation":61,"order":37,"path":167837,"seo":167838,"stem":167839,"subject":167708,"tags":167840,"__hash__":167841},"topics/ocaml/overview.md","OCaml Basics",{"type":8,"value":167643,"toc":167829},[167644,167648,167651,167696,167699,167701,167704,167745,167747,167750,167778,167782,167785,167827],[11,167645,167647],{"id":167646},"installing-ocaml","Installing OCaml",[16,167649,167650],{},"Install OCaml and the OPAM package manager:",[25,167652,167654],{"className":27,"code":167653,"language":29,"meta":30,"style":30},"sudo apt update\nsudo apt install -y ocaml opam\nopam init\nopam install dune\n",[20,167655,167656,167664,167680,167687],{"__ignoreMap":30},[34,167657,167658,167660,167662],{"class":36,"line":37},[34,167659,436],{"class":47},[34,167661,439],{"class":54},[34,167663,6441],{"class":54},[34,167665,167666,167668,167670,167672,167674,167677],{"class":36,"line":44},[34,167667,436],{"class":47},[34,167669,439],{"class":54},[34,167671,118],{"class":54},[34,167673,5843],{"class":50},[34,167675,167676],{"class":54}," ocaml",[34,167678,167679],{"class":54}," opam\n",[34,167681,167682,167685],{"class":36,"line":58},[34,167683,167684],{"class":47},"opam",[34,167686,8180],{"class":54},[34,167688,167689,167691,167693],{"class":36,"line":65},[34,167690,167684],{"class":47},[34,167692,118],{"class":54},[34,167694,167695],{"class":54}," dune\n",[16,167697,167698],{},"Dune is for building OCaml projects easily.",[11,167700,61477],{"id":61476},[16,167702,167703],{},"OCaml's pattern matching is a powerful feature.",[25,167705,167709],{"className":167706,"code":167707,"language":167708,"meta":30,"style":30},"language-ocaml shiki shiki-themes github-light github-dark","let describe_number n =\n  match n with\n  | 0 -> \"zero\"\n  | 1 -> \"one\"\n  | _ -> \"many\"\n\nlet () = print_endline (describe_number 2)\n","ocaml",[20,167710,167711,167716,167721,167726,167731,167736,167740],{"__ignoreMap":30},[34,167712,167713],{"class":36,"line":37},[34,167714,167715],{},"let describe_number n =\n",[34,167717,167718],{"class":36,"line":44},[34,167719,167720],{},"  match n with\n",[34,167722,167723],{"class":36,"line":58},[34,167724,167725],{},"  | 0 -> \"zero\"\n",[34,167727,167728],{"class":36,"line":65},[34,167729,167730],{},"  | 1 -> \"one\"\n",[34,167732,167733],{"class":36,"line":71},[34,167734,167735],{},"  | _ -> \"many\"\n",[34,167737,167738],{"class":36,"line":77},[34,167739,62],{"emptyLinePlaceholder":61},[34,167741,167742],{"class":36,"line":82},[34,167743,167744],{},"let () = print_endline (describe_number 2)\n",[11,167746,88402],{"id":88401},[16,167748,167749],{},"OCaml modules provide a way to organize code.",[25,167751,167753],{"className":167706,"code":167752,"language":167708,"meta":30,"style":30},"module Math = struct\n  let square x = x * x\nend\n\nlet () = Printf.printf \"%d\\n\" (Math.square 5)\n",[20,167754,167755,167760,167765,167769,167773],{"__ignoreMap":30},[34,167756,167757],{"class":36,"line":37},[34,167758,167759],{},"module Math = struct\n",[34,167761,167762],{"class":36,"line":44},[34,167763,167764],{},"  let square x = x * x\n",[34,167766,167767],{"class":36,"line":58},[34,167768,33222],{},[34,167770,167771],{"class":36,"line":65},[34,167772,62],{"emptyLinePlaceholder":61},[34,167774,167775],{"class":36,"line":71},[34,167776,167777],{},"let () = Printf.printf \"%d\\n\" (Math.square 5)\n",[11,167779,167781],{"id":167780},"functors","Functors",[16,167783,167784],{},"OCaml functors allow parameterizing modules.",[25,167786,167788],{"className":167706,"code":167787,"language":167708,"meta":30,"style":30},"module type Iterable = sig\n  type t\n  val iter : t -> unit\nend\n\nmodule MakeList (T : Iterable) = struct\n  let iterate list = T.iter list\nend\n",[20,167789,167790,167795,167800,167805,167809,167813,167818,167823],{"__ignoreMap":30},[34,167791,167792],{"class":36,"line":37},[34,167793,167794],{},"module type Iterable = sig\n",[34,167796,167797],{"class":36,"line":44},[34,167798,167799],{},"  type t\n",[34,167801,167802],{"class":36,"line":58},[34,167803,167804],{},"  val iter : t -> unit\n",[34,167806,167807],{"class":36,"line":65},[34,167808,33222],{},[34,167810,167811],{"class":36,"line":71},[34,167812,62],{"emptyLinePlaceholder":61},[34,167814,167815],{"class":36,"line":77},[34,167816,167817],{},"module MakeList (T : Iterable) = struct\n",[34,167819,167820],{"class":36,"line":82},[34,167821,167822],{},"  let iterate list = T.iter list\n",[34,167824,167825],{"class":36,"line":88},[34,167826,33222],{},[388,167828,167621],{},{"title":30,"searchDepth":44,"depth":44,"links":167830},[167831,167832,167833,167834],{"id":167646,"depth":44,"text":167647},{"id":61476,"depth":44,"text":61477},{"id":88401,"depth":44,"text":88402},{"id":167780,"depth":44,"text":167781},"Learn how to leverage OCaml for functional programming with types, modules, and functors.",{},"/ocaml/overview",{"title":167641,"description":167835},"ocaml/overview",[167708,33298,88401,167780,61476],"tftgIu87KEpSP8cSP4ihC24h13YuFep0V_8IVupXU5E",{"id":167843,"title":167844,"body":167845,"date":402,"description":168045,"extension":404,"meta":168046,"navigation":61,"order":37,"path":168047,"seo":168048,"stem":168049,"subject":167908,"tags":168050,"__hash__":168052},"topics/odin/overview.md","Odin Language Basics",{"type":8,"value":167846,"toc":168039},[167847,167851,167854,167903,167910,167912,167915,167953,167956,167960,167966,167981,167983,167989,168034,168037],[11,167848,167850],{"id":167849},"installing-odin","Installing Odin",[16,167852,167853],{},"To install the Odin programming language, follow this guide:",[25,167855,167857],{"className":27,"code":167856,"language":29,"meta":30,"style":30},"# Clone the Odin repository\ngit clone https://github.com/odin-lang/Odin.git\n\n# Navigate to Odin folder\ncd Odin\n\n# Build Odin compiler\nmake\n",[20,167858,167859,167864,167873,167877,167882,167889,167893,167898],{"__ignoreMap":30},[34,167860,167861],{"class":36,"line":37},[34,167862,167863],{"class":40},"# Clone the Odin repository\n",[34,167865,167866,167868,167870],{"class":36,"line":44},[34,167867,7794],{"class":47},[34,167869,7797],{"class":54},[34,167871,167872],{"class":54}," https://github.com/odin-lang/Odin.git\n",[34,167874,167875],{"class":36,"line":58},[34,167876,62],{"emptyLinePlaceholder":61},[34,167878,167879],{"class":36,"line":65},[34,167880,167881],{"class":40},"# Navigate to Odin folder\n",[34,167883,167884,167886],{"class":36,"line":71},[34,167885,7702],{"class":50},[34,167887,167888],{"class":54}," Odin\n",[34,167890,167891],{"class":36,"line":77},[34,167892,62],{"emptyLinePlaceholder":61},[34,167894,167895],{"class":36,"line":82},[34,167896,167897],{"class":40},"# Build Odin compiler\n",[34,167899,167900],{"class":36,"line":88},[34,167901,167902],{"class":47},"make\n",[16,167904,167905,167906,167909],{},"Once built, you can use ",[20,167907,167908],{},"odin"," from the command line to compile Odin programs.",[11,167911,33160],{"id":33159},[16,167913,167914],{},"Odin's syntax is designed for simplicity and clarity.",[25,167916,167919],{"className":167917,"code":167918,"language":167908,"meta":30,"style":30},"language-odin shiki shiki-themes github-light github-dark","package main\n\nimport \"fmt\"\n\nmain :: proc() {\n    fmt.println(\"Hello, World!\")\n}\n",[20,167920,167921,167926,167930,167935,167939,167944,167949],{"__ignoreMap":30},[34,167922,167923],{"class":36,"line":37},[34,167924,167925],{},"package main\n",[34,167927,167928],{"class":36,"line":44},[34,167929,62],{"emptyLinePlaceholder":61},[34,167931,167932],{"class":36,"line":58},[34,167933,167934],{},"import \"fmt\"\n",[34,167936,167937],{"class":36,"line":65},[34,167938,62],{"emptyLinePlaceholder":61},[34,167940,167941],{"class":36,"line":71},[34,167942,167943],{},"main :: proc() {\n",[34,167945,167946],{"class":36,"line":77},[34,167947,167948],{},"    fmt.println(\"Hello, World!\")\n",[34,167950,167951],{"class":36,"line":82},[34,167952,693],{},[16,167954,167955],{},"The above example prints \"Hello, World!\" to the console.",[11,167957,167959],{"id":167958},"declaring-variables-and-types","Declaring Variables and Types",[16,167961,167962,167963,167965],{},"Variables in Odin use ",[20,167964,165],{},", and type annotations are optional.",[25,167967,167969],{"className":167917,"code":167968,"language":167908,"meta":30,"style":30},"x : int = 42 // Integer variable\nname := \"Odin\" // Type inferred as string\n",[20,167970,167971,167976],{"__ignoreMap":30},[34,167972,167973],{"class":36,"line":37},[34,167974,167975],{},"x : int = 42 // Integer variable\n",[34,167977,167978],{"class":36,"line":44},[34,167979,167980],{},"name := \"Odin\" // Type inferred as string\n",[11,167982,158672],{"id":158671},[16,167984,167985,167986,167988],{},"Procedures in Odin are written using the ",[20,167987,158678],{}," keyword.",[25,167990,167992],{"className":167917,"code":167991,"language":167908,"meta":30,"style":30},"add :: proc(a, b: int) -> int {\n    return a + b\n}\n}\n\nmain :: proc() {\n    result := add(1, 2)\n    fmt.println(\"Result:\", result)\n}\n",[20,167993,167994,167999,168004,168008,168012,168016,168020,168025,168030],{"__ignoreMap":30},[34,167995,167996],{"class":36,"line":37},[34,167997,167998],{},"add :: proc(a, b: int) -> int {\n",[34,168000,168001],{"class":36,"line":44},[34,168002,168003],{},"    return a + b\n",[34,168005,168006],{"class":36,"line":58},[34,168007,693],{},[34,168009,168010],{"class":36,"line":65},[34,168011,693],{},[34,168013,168014],{"class":36,"line":71},[34,168015,62],{"emptyLinePlaceholder":61},[34,168017,168018],{"class":36,"line":77},[34,168019,167943],{},[34,168021,168022],{"class":36,"line":82},[34,168023,168024],{},"    result := add(1, 2)\n",[34,168026,168027],{"class":36,"line":88},[34,168028,168029],{},"    fmt.println(\"Result:\", result)\n",[34,168031,168032],{"class":36,"line":242},[34,168033,693],{},[16,168035,168036],{},"--- End example for brevity ---",[388,168038,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":168040},[168041,168042,168043,168044],{"id":167849,"depth":44,"text":167850},{"id":33159,"depth":44,"text":33160},{"id":167958,"depth":44,"text":167959},{"id":158671,"depth":44,"text":158672},"Introduction to the Odin programming language, covering installation, syntax, and packages.",{},"/odin/overview",{"title":167844,"description":168045},"odin/overview",[167908,122020,33297,33298,168051],"packages","P-57sYAZwnH7V6M-c29YBXwK7KSA3fhxV8gZPtW1z1o",{"id":168054,"title":168055,"body":168056,"date":402,"description":168234,"extension":404,"meta":168235,"navigation":61,"order":37,"path":168236,"seo":168237,"stem":168238,"subject":62278,"tags":168239,"__hash__":168242},"topics/openapi/overview.md","OpenAPI",{"type":8,"value":168057,"toc":168227},[168058,168062,168068,168072,168078,168082,168149,168152,168177,168181,168224],[11,168059,168061],{"id":168060},"what-is-openapi","What is OpenAPI?",[25,168063,168066],{"className":168064,"code":168065,"language":780,"meta":30},[13703],"The OpenAPI Specification (OAS) allows the description of a remote API accessible through HTTP or HTTP-like protocols.\nIt defines contracts between API providers and consumers.\n",[20,168067,168065],{"__ignoreMap":30},[11,168069,168071],{"id":168070},"advantages-of-using-openapi","Advantages of Using OpenAPI",[25,168073,168076],{"className":168074,"code":168075,"language":780,"meta":30},[13703],"- Validation of API logic.\n- Code and documentation generation.\n- Enables use of tools like `Swagger` or `Postman`.\n",[20,168077,168075],{"__ignoreMap":30},[11,168079,168081],{"id":168080},"key-concepts","Key Concepts",[25,168083,168085],{"className":168,"code":168084,"language":170,"meta":30,"style":30},"openapi: \"3.0.0\"\ninfo:\n  title: Sample API\n  version: 0.1.9\npaths: {}\ncomponents:\n  schemas:\n    Example: {}\n",[20,168086,168087,168096,168103,168112,168122,168129,168135,168142],{"__ignoreMap":30},[34,168088,168089,168091,168093],{"class":36,"line":37},[34,168090,62278],{"class":177},[34,168092,182],{"class":181},[34,168094,168095],{"class":54},"\"3.0.0\"\n",[34,168097,168098,168101],{"class":36,"line":44},[34,168099,168100],{"class":177},"info",[34,168102,193],{"class":181},[34,168104,168105,168107,168109],{"class":36,"line":58},[34,168106,117415],{"class":177},[34,168108,182],{"class":181},[34,168110,168111],{"class":54},"Sample API\n",[34,168113,168114,168117,168119],{"class":36,"line":65},[34,168115,168116],{"class":177},"  version",[34,168118,182],{"class":181},[34,168120,168121],{"class":50},"0.1.9\n",[34,168123,168124,168127],{"class":36,"line":71},[34,168125,168126],{"class":177},"paths",[34,168128,50762],{"class":181},[34,168130,168131,168133],{"class":36,"line":77},[34,168132,130077],{"class":177},[34,168134,193],{"class":181},[34,168136,168137,168140],{"class":36,"line":82},[34,168138,168139],{"class":177},"  schemas",[34,168141,193],{"class":181},[34,168143,168144,168147],{"class":36,"line":88},[34,168145,168146],{"class":177},"    Example",[34,168148,50762],{"class":181},[11,168150,168151],{"id":88773},"Tools",[25,168153,168155],{"className":27,"code":168154,"language":29,"meta":30,"style":30},"# Open source editors\nswagger-cli validate example.yml\nopenapi-generator-cli\n",[20,168156,168157,168162,168172],{"__ignoreMap":30},[34,168158,168159],{"class":36,"line":37},[34,168160,168161],{"class":40},"# Open source editors\n",[34,168163,168164,168167,168169],{"class":36,"line":44},[34,168165,168166],{"class":47},"swagger-cli",[34,168168,122697],{"class":54},[34,168170,168171],{"class":54}," example.yml\n",[34,168173,168174],{"class":36,"line":58},[34,168175,168176],{"class":47},"openapi-generator-cli\n",[11,168178,168180],{"id":168179},"example-description","Example Description",[25,168182,168184],{"className":168,"code":168183,"language":170,"meta":30,"style":30},"paths:\n  /pets/{id}:\noperationId: Fetch GET\nparameters: []\nresponseStructure: {}\n",[20,168185,168186,168192,168199,168209,168217],{"__ignoreMap":30},[34,168187,168188,168190],{"class":36,"line":37},[34,168189,168126],{"class":177},[34,168191,193],{"class":181},[34,168193,168194,168197],{"class":36,"line":44},[34,168195,168196],{"class":177},"  /pets/{id}",[34,168198,193],{"class":181},[34,168200,168201,168204,168206],{"class":36,"line":58},[34,168202,168203],{"class":177},"operationId",[34,168205,182],{"class":181},[34,168207,168208],{"class":54},"Fetch GET\n",[34,168210,168211,168214],{"class":36,"line":65},[34,168212,168213],{"class":177},"parameters",[34,168215,168216],{"class":181},": []\n",[34,168218,168219,168222],{"class":36,"line":71},[34,168220,168221],{"class":177},"responseStructure",[34,168223,50762],{"class":181},[388,168225,168226],{},"html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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 .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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}",{"title":30,"searchDepth":44,"depth":44,"links":168228},[168229,168230,168231,168232,168233],{"id":168060,"depth":44,"text":168061},{"id":168070,"depth":44,"text":168071},{"id":168080,"depth":44,"text":168081},{"id":88773,"depth":44,"text":168151},{"id":168179,"depth":44,"text":168180},"Guide to understanding and leveraging the OpenAPI Specification (OAS) for API design and development.",{},"/openapi/overview",{"title":168055,"description":168234},"openapi/overview",[62278,43044,168240,168241,25406],"specification","design-first","DmoC1-Yuuele4PfmT0N7h1rw3JewDgSi9vtpTT49StQ",{"id":168244,"title":168245,"body":168246,"date":402,"description":168435,"extension":404,"meta":168436,"navigation":61,"order":37,"path":168437,"seo":168438,"stem":168439,"subject":168440,"tags":168441,"__hash__":168445},"topics/opentelemetry/overview.md","OpenTelemetry Cheat Sheet",{"type":8,"value":168247,"toc":168430},[168248,168252,168277,168281,168355,168359,168428],[11,168249,168251],{"id":168250},"installing-the-opentelemetry-sdk","Installing the OpenTelemetry SDK",[25,168253,168255],{"className":28261,"code":168254,"language":10358,"meta":30,"style":30},"# Install the OpenTelemetry package (Node.js example):\nnpm install --save @opentelemetry/api @opentelemetry/sdk-trace-node\n",[20,168256,168257,168262],{"__ignoreMap":30},[34,168258,168259],{"class":36,"line":37},[34,168260,168261],{"class":40},"# Install the OpenTelemetry package (Node.js example):\n",[34,168263,168264,168266,168268,168271,168274],{"class":36,"line":44},[34,168265,8177],{"class":47},[34,168267,118],{"class":54},[34,168269,168270],{"class":50}," --save",[34,168272,168273],{"class":54}," @opentelemetry/api",[34,168275,168276],{"class":54}," @opentelemetry/sdk-trace-node\n",[11,168278,168280],{"id":168279},"initializing-tracing-in-your-application","Initializing Tracing in Your Application",[25,168282,168284],{"className":13845,"code":168283,"language":8606,"meta":30,"style":30},"const { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');\n\nconst provider = new NodeTracerProvider();\nprovider.register();\n\nconsole.log('Tracing initialized');\n",[20,168285,168286,168308,168312,168328,168338,168342],{"__ignoreMap":30},[34,168287,168288,168290,168292,168295,168297,168299,168301,168303,168306],{"class":36,"line":37},[34,168289,14676],{"class":580},[34,168291,30251],{"class":181},[34,168293,168294],{"class":50},"NodeTracerProvider",[34,168296,34865],{"class":181},[34,168298,1301],{"class":580},[34,168300,111491],{"class":47},[34,168302,1607],{"class":181},[34,168304,168305],{"class":54},"'@opentelemetry/sdk-trace-node'",[34,168307,1586],{"class":181},[34,168309,168310],{"class":36,"line":44},[34,168311,62],{"emptyLinePlaceholder":61},[34,168313,168314,168316,168319,168321,168323,168326],{"class":36,"line":58},[34,168315,14676],{"class":580},[34,168317,168318],{"class":50}," provider",[34,168320,683],{"class":580},[34,168322,809],{"class":580},[34,168324,168325],{"class":47}," NodeTracerProvider",[34,168327,851],{"class":181},[34,168329,168330,168333,168336],{"class":36,"line":65},[34,168331,168332],{"class":181},"provider.",[34,168334,168335],{"class":47},"register",[34,168337,851],{"class":181},[34,168339,168340],{"class":36,"line":71},[34,168341,62],{"emptyLinePlaceholder":61},[34,168343,168344,168346,168348,168350,168353],{"class":36,"line":77},[34,168345,15183],{"class":181},[34,168347,2424],{"class":47},[34,168349,1607],{"class":181},[34,168351,168352],{"class":54},"'Tracing initialized'",[34,168354,1586],{"class":181},[11,168356,168358],{"id":168357},"integrating-with-exporters","Integrating with Exporters",[25,168360,168362],{"className":13845,"code":168361,"language":8606,"meta":30,"style":30},"const { ConsoleSpanExporter, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');\n\nconst exporter = new ConsoleSpanExporter();\nprovider.addSpanProcessor(new SimpleSpanProcessor(exporter));\n",[20,168363,168364,168391,168395,168411],{"__ignoreMap":30},[34,168365,168366,168368,168370,168373,168375,168378,168380,168382,168384,168386,168389],{"class":36,"line":37},[34,168367,14676],{"class":580},[34,168369,30251],{"class":181},[34,168371,168372],{"class":50},"ConsoleSpanExporter",[34,168374,1798],{"class":181},[34,168376,168377],{"class":50},"SimpleSpanProcessor",[34,168379,34865],{"class":181},[34,168381,1301],{"class":580},[34,168383,111491],{"class":47},[34,168385,1607],{"class":181},[34,168387,168388],{"class":54},"'@opentelemetry/sdk-trace-base'",[34,168390,1586],{"class":181},[34,168392,168393],{"class":36,"line":44},[34,168394,62],{"emptyLinePlaceholder":61},[34,168396,168397,168399,168402,168404,168406,168409],{"class":36,"line":58},[34,168398,14676],{"class":580},[34,168400,168401],{"class":50}," exporter",[34,168403,683],{"class":580},[34,168405,809],{"class":580},[34,168407,168408],{"class":47}," ConsoleSpanExporter",[34,168410,851],{"class":181},[34,168412,168413,168415,168418,168420,168422,168425],{"class":36,"line":65},[34,168414,168332],{"class":181},[34,168416,168417],{"class":47},"addSpanProcessor",[34,168419,1607],{"class":181},[34,168421,3143],{"class":580},[34,168423,168424],{"class":47}," SimpleSpanProcessor",[34,168426,168427],{"class":181},"(exporter));\n",[388,168429,93387],{},{"title":30,"searchDepth":44,"depth":44,"links":168431},[168432,168433,168434],{"id":168250,"depth":44,"text":168251},{"id":168279,"depth":44,"text":168280},{"id":168357,"depth":44,"text":168358},"Setting up OpenTelemetry SDK for application tracing and telemetry.",{},"/opentelemetry/overview",{"title":168245,"description":168435},"opentelemetry/overview","opentelemetry",[168440,168442,168443,168444],"observability","tracing","metrics","MCLVn4GVL34xUzuihrprmBaQeBR6S6qWJmpVryE9sRk",{"id":168447,"title":168448,"body":168449,"date":402,"description":168575,"extension":404,"meta":168576,"navigation":61,"order":37,"path":168577,"seo":168578,"stem":168579,"subject":168580,"tags":168581,"__hash__":168582},"topics/oxlint/overview.md","Oxlint",{"type":8,"value":168450,"toc":168572},[168451,168453,168570],[11,168452,15936],{"id":15935},[25,168454,168456],{"className":27,"code":168455,"language":29,"meta":30,"style":30},"# Install Oxlint as a dev dependency using npm\ndnf install -D oxlint\n\n# Use with pnpm\ndnf install pnpm\n\nInstalling goes here. Run node_modules oxlint examples. \n\n## Configuration\n\nGenerate a default config or customize one to your preference using provided commands. \n",[20,168457,168458,168463,168474,168478,168483,168492,168496,168521,168525,168530,168534],{"__ignoreMap":30},[34,168459,168460],{"class":36,"line":37},[34,168461,168462],{"class":40},"# Install Oxlint as a dev dependency using npm\n",[34,168464,168465,168467,168469,168471],{"class":36,"line":44},[34,168466,53613],{"class":47},[34,168468,118],{"class":54},[34,168470,13768],{"class":50},[34,168472,168473],{"class":54}," oxlint\n",[34,168475,168476],{"class":36,"line":58},[34,168477,62],{"emptyLinePlaceholder":61},[34,168479,168480],{"class":36,"line":65},[34,168481,168482],{"class":40},"# Use with pnpm\n",[34,168484,168485,168487,168489],{"class":36,"line":71},[34,168486,53613],{"class":47},[34,168488,118],{"class":54},[34,168490,168491],{"class":54}," pnpm\n",[34,168493,168494],{"class":36,"line":77},[34,168495,62],{"emptyLinePlaceholder":61},[34,168497,168498,168501,168504,168507,168510,168513,168516,168519],{"class":36,"line":82},[34,168499,168500],{"class":47},"Installing",[34,168502,168503],{"class":54}," goes",[34,168505,168506],{"class":54}," here.",[34,168508,168509],{"class":54}," Run",[34,168511,168512],{"class":54}," node_modules",[34,168514,168515],{"class":54}," oxlint",[34,168517,168518],{"class":54}," examples.",[34,168520,526],{"class":181},[34,168522,168523],{"class":36,"line":88},[34,168524,62],{"emptyLinePlaceholder":61},[34,168526,168527],{"class":36,"line":242},[34,168528,168529],{"class":40},"## Configuration\n",[34,168531,168532],{"class":36,"line":250},[34,168533,62],{"emptyLinePlaceholder":61},[34,168535,168536,168539,168541,168543,168545,168547,168550,168553,168555,168558,168561,168564,168567],{"class":36,"line":263},[34,168537,168538],{"class":47},"Generate",[34,168540,19385],{"class":54},[34,168542,7298],{"class":54},[34,168544,58810],{"class":54},[34,168546,48486],{"class":54},[34,168548,168549],{"class":54}," customize",[34,168551,168552],{"class":54}," one",[34,168554,164967],{"class":54},[34,168556,168557],{"class":54}," your",[34,168559,168560],{"class":54}," preference",[34,168562,168563],{"class":54}," using",[34,168565,168566],{"class":54}," provided",[34,168568,168569],{"class":54}," commands.\n",[388,168571,121226],{},{"title":30,"searchDepth":44,"depth":44,"links":168573},[168574],{"id":15935,"depth":44,"text":15936},"Comprehensive overview of Oxlint, including configuration, editor setup, and linting best practices for JavaScript and TypeScript codebases.",{},"/oxlint/overview",{"title":168448,"description":168575},"oxlint/overview","oxlint",[8606,573,141273,94338],"3m0pTHfPra-0O9dGTVqZNCDUD8NoXDmtSNoJxbRULOo",{"id":168584,"title":168585,"body":168586,"date":402,"description":168693,"extension":404,"meta":168694,"navigation":61,"order":82,"path":168695,"seo":168696,"stem":168697,"subject":7770,"tags":168698,"__hash__":168700},"topics/pacman/cleaning-cache.md","Cleaning Cache",{"type":8,"value":168587,"toc":168690},[168588,168591,168688],[11,168589,168585],{"id":168590},"cleaning-cache",[25,168592,168594],{"className":27,"code":168593,"language":29,"meta":30,"style":30},"# Remove all cached packages\nsudo pacman -Sc\n\n# Remove all cached packages (uninstalled only)\nsudo pacman -Scc\n\n# Remove orphaned packages\nsudo pacman -Rns $(pacman -Qtdq)\n\n# Clear package cache (keep 3 most recent)\npaccache -r\n\n# Clear cache for uninstalled packages\npaccache -ruk0\n",[20,168595,168596,168601,168610,168614,168619,168628,168632,168637,168655,168659,168664,168672,168676,168681],{"__ignoreMap":30},[34,168597,168598],{"class":36,"line":37},[34,168599,168600],{"class":40},"# Remove all cached packages\n",[34,168602,168603,168605,168607],{"class":36,"line":44},[34,168604,436],{"class":47},[34,168606,53595],{"class":54},[34,168608,168609],{"class":50}," -Sc\n",[34,168611,168612],{"class":36,"line":58},[34,168613,62],{"emptyLinePlaceholder":61},[34,168615,168616],{"class":36,"line":65},[34,168617,168618],{"class":40},"# Remove all cached packages (uninstalled only)\n",[34,168620,168621,168623,168625],{"class":36,"line":71},[34,168622,436],{"class":47},[34,168624,53595],{"class":54},[34,168626,168627],{"class":50}," -Scc\n",[34,168629,168630],{"class":36,"line":77},[34,168631,62],{"emptyLinePlaceholder":61},[34,168633,168634],{"class":36,"line":82},[34,168635,168636],{"class":40},"# Remove orphaned packages\n",[34,168638,168639,168641,168643,168646,168648,168650,168653],{"class":36,"line":88},[34,168640,436],{"class":47},[34,168642,53595],{"class":54},[34,168644,168645],{"class":50}," -Rns",[34,168647,145163],{"class":181},[34,168649,7770],{"class":47},[34,168651,168652],{"class":50}," -Qtdq",[34,168654,3372],{"class":181},[34,168656,168657],{"class":36,"line":242},[34,168658,62],{"emptyLinePlaceholder":61},[34,168660,168661],{"class":36,"line":250},[34,168662,168663],{"class":40},"# Clear package cache (keep 3 most recent)\n",[34,168665,168666,168669],{"class":36,"line":263},[34,168667,168668],{"class":47},"paccache",[34,168670,168671],{"class":50}," -r\n",[34,168673,168674],{"class":36,"line":275},[34,168675,62],{"emptyLinePlaceholder":61},[34,168677,168678],{"class":36,"line":700},[34,168679,168680],{"class":40},"# Clear cache for uninstalled packages\n",[34,168682,168683,168685],{"class":36,"line":706},[34,168684,168668],{"class":47},[34,168686,168687],{"class":50}," -ruk0\n",[388,168689,121226],{},{"title":30,"searchDepth":44,"depth":44,"links":168691},[168692],{"id":168590,"depth":44,"text":168585},"Cleaning Cache in Pacman.",{},"/pacman/cleaning-cache",{"title":168585,"description":168693},"pacman/cleaning-cache",[7770,168699,5588,5591],"arch","Dvg4Iz1NYzitHjCEbJc1lDKdE6VR-QGqBif3UkAPha8",{"id":168702,"title":168703,"body":168704,"date":402,"description":168804,"extension":404,"meta":168805,"navigation":61,"order":242,"path":168806,"seo":168807,"stem":168808,"subject":7770,"tags":168809,"__hash__":168810},"topics/pacman/common-flags.md","Common Flags",{"type":8,"value":168705,"toc":168801},[168706,168709,168798],[11,168707,168703],{"id":168708},"common-flags",[25,168710,168712],{"className":27,"code":168711,"language":29,"meta":30,"style":30},"# -S: Sync (install/upgrade packages)\n# -R: Remove packages\n# -Q: Query installed packages\n# -F: Query file database\n# -U: Upgrade from local file\n# -D: Database modification\n\n# Modifiers:\n# -y: Refresh database\n# -u: Upgrade packages\n# -s: Search\n# -i: Info\n# -l: List\n# -c: Clean cache\n# -n: No backup\n# --noconfirm: Skip confirmation\n# --needed: Skip up-to-date packages\n",[20,168713,168714,168719,168724,168729,168734,168739,168744,168748,168753,168758,168763,168768,168773,168778,168783,168788,168793],{"__ignoreMap":30},[34,168715,168716],{"class":36,"line":37},[34,168717,168718],{"class":40},"# -S: Sync (install/upgrade packages)\n",[34,168720,168721],{"class":36,"line":44},[34,168722,168723],{"class":40},"# -R: Remove packages\n",[34,168725,168726],{"class":36,"line":58},[34,168727,168728],{"class":40},"# -Q: Query installed packages\n",[34,168730,168731],{"class":36,"line":65},[34,168732,168733],{"class":40},"# -F: Query file database\n",[34,168735,168736],{"class":36,"line":71},[34,168737,168738],{"class":40},"# -U: Upgrade from local file\n",[34,168740,168741],{"class":36,"line":77},[34,168742,168743],{"class":40},"# -D: Database modification\n",[34,168745,168746],{"class":36,"line":82},[34,168747,62],{"emptyLinePlaceholder":61},[34,168749,168750],{"class":36,"line":88},[34,168751,168752],{"class":40},"# Modifiers:\n",[34,168754,168755],{"class":36,"line":242},[34,168756,168757],{"class":40},"# -y: Refresh database\n",[34,168759,168760],{"class":36,"line":250},[34,168761,168762],{"class":40},"# -u: Upgrade packages\n",[34,168764,168765],{"class":36,"line":263},[34,168766,168767],{"class":40},"# -s: Search\n",[34,168769,168770],{"class":36,"line":275},[34,168771,168772],{"class":40},"# -i: Info\n",[34,168774,168775],{"class":36,"line":700},[34,168776,168777],{"class":40},"# -l: List\n",[34,168779,168780],{"class":36,"line":706},[34,168781,168782],{"class":40},"# -c: Clean cache\n",[34,168784,168785],{"class":36,"line":715},[34,168786,168787],{"class":40},"# -n: No backup\n",[34,168789,168790],{"class":36,"line":725},[34,168791,168792],{"class":40},"# --noconfirm: Skip confirmation\n",[34,168794,168795],{"class":36,"line":734},[34,168796,168797],{"class":40},"# --needed: Skip up-to-date packages\n",[388,168799,168800],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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":30,"searchDepth":44,"depth":44,"links":168802},[168803],{"id":168708,"depth":44,"text":168703},"Common Flags in Pacman.",{},"/pacman/common-flags",{"title":168703,"description":168804},"pacman/common-flags",[7770,168699,5588,5591],"JvDgHd7zPhUofjfGe6Lk4CBOXH-AajcfkJJu2Fm5ezk",{"id":168812,"title":8686,"body":168813,"date":402,"description":168921,"extension":404,"meta":168922,"navigation":61,"order":263,"path":168923,"seo":168924,"stem":168925,"subject":7770,"tags":168926,"__hash__":168927},"topics/pacman/configuration.md",{"type":8,"value":168814,"toc":168918},[168815,168817,168916],[11,168816,8686],{"id":558},[25,168818,168820],{"className":27,"code":168819,"language":29,"meta":30,"style":30},"# Configuration file\n/etc/pacman.conf\n\n# Mirror list\n/etc/pacman.d/mirrorlist\n\n# Update mirror list (manually edit)\nsudo nano /etc/pacman.d/mirrorlist\n\n# Enable color output (uncomment in /etc/pacman.conf)\nColor\n\n# Enable parallel downloads (add to /etc/pacman.conf)\nParallelDownloads = 5\n\n# Ignored packages (won't be upgraded)\nIgnorePkg = package1 package2\n",[20,168821,168822,168827,168832,168836,168841,168846,168850,168855,168864,168868,168873,168878,168882,168887,168896,168900,168905],{"__ignoreMap":30},[34,168823,168824],{"class":36,"line":37},[34,168825,168826],{"class":40},"# Configuration file\n",[34,168828,168829],{"class":36,"line":44},[34,168830,168831],{"class":47},"/etc/pacman.conf\n",[34,168833,168834],{"class":36,"line":58},[34,168835,62],{"emptyLinePlaceholder":61},[34,168837,168838],{"class":36,"line":65},[34,168839,168840],{"class":40},"# Mirror list\n",[34,168842,168843],{"class":36,"line":71},[34,168844,168845],{"class":47},"/etc/pacman.d/mirrorlist\n",[34,168847,168848],{"class":36,"line":77},[34,168849,62],{"emptyLinePlaceholder":61},[34,168851,168852],{"class":36,"line":82},[34,168853,168854],{"class":40},"# Update mirror list (manually edit)\n",[34,168856,168857,168859,168861],{"class":36,"line":88},[34,168858,436],{"class":47},[34,168860,120748],{"class":54},[34,168862,168863],{"class":54}," /etc/pacman.d/mirrorlist\n",[34,168865,168866],{"class":36,"line":242},[34,168867,62],{"emptyLinePlaceholder":61},[34,168869,168870],{"class":36,"line":250},[34,168871,168872],{"class":40},"# Enable color output (uncomment in /etc/pacman.conf)\n",[34,168874,168875],{"class":36,"line":263},[34,168876,168877],{"class":47},"Color\n",[34,168879,168880],{"class":36,"line":275},[34,168881,62],{"emptyLinePlaceholder":61},[34,168883,168884],{"class":36,"line":700},[34,168885,168886],{"class":40},"# Enable parallel downloads (add to /etc/pacman.conf)\n",[34,168888,168889,168892,168894],{"class":36,"line":706},[34,168890,168891],{"class":47},"ParallelDownloads",[34,168893,683],{"class":54},[34,168895,134626],{"class":50},[34,168897,168898],{"class":36,"line":715},[34,168899,62],{"emptyLinePlaceholder":61},[34,168901,168902],{"class":36,"line":725},[34,168903,168904],{"class":40},"# Ignored packages (won't be upgraded)\n",[34,168906,168907,168910,168912,168914],{"class":36,"line":734},[34,168908,168909],{"class":47},"IgnorePkg",[34,168911,683],{"class":54},[34,168913,54260],{"class":54},[34,168915,54863],{"class":54},[388,168917,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":168919},[168920],{"id":558,"depth":44,"text":8686},"Configuration in Pacman.",{},"/pacman/configuration",{"title":8686,"description":168921},"pacman/configuration",[7770,168699,5588,5591],"zIpMwHL-OMBrlnyYHs9ingzrlI6k6wXnFH4qVN85rN4",{"id":168929,"title":150625,"body":168930,"date":402,"description":169038,"extension":404,"meta":169039,"navigation":61,"order":88,"path":169040,"seo":169041,"stem":169042,"subject":7770,"tags":169043,"__hash__":169044},"topics/pacman/database-management.md",{"type":8,"value":168931,"toc":169035},[168932,168934,169033],[11,168933,150625],{"id":150630},[25,168935,168937],{"className":27,"code":168936,"language":29,"meta":30,"style":30},"# Check database for errors\nsudo pacman -Dk\n\n# Refresh package database\nsudo pacman -Fy\n\n# Mark package as explicitly installed\nsudo pacman -D --asexplicit package_name\n\n# Mark package as dependency\nsudo pacman -D --asdeps package_name\n\n# List files in package database\npacman -Fl package_name\n",[20,168938,168939,168944,168953,168957,168962,168971,168975,168980,168993,168997,169002,169015,169019,169024],{"__ignoreMap":30},[34,168940,168941],{"class":36,"line":37},[34,168942,168943],{"class":40},"# Check database for errors\n",[34,168945,168946,168948,168950],{"class":36,"line":44},[34,168947,436],{"class":47},[34,168949,53595],{"class":54},[34,168951,168952],{"class":50}," -Dk\n",[34,168954,168955],{"class":36,"line":58},[34,168956,62],{"emptyLinePlaceholder":61},[34,168958,168959],{"class":36,"line":65},[34,168960,168961],{"class":40},"# Refresh package database\n",[34,168963,168964,168966,168968],{"class":36,"line":71},[34,168965,436],{"class":47},[34,168967,53595],{"class":54},[34,168969,168970],{"class":50}," -Fy\n",[34,168972,168973],{"class":36,"line":77},[34,168974,62],{"emptyLinePlaceholder":61},[34,168976,168977],{"class":36,"line":82},[34,168978,168979],{"class":40},"# Mark package as explicitly installed\n",[34,168981,168982,168984,168986,168988,168991],{"class":36,"line":88},[34,168983,436],{"class":47},[34,168985,53595],{"class":54},[34,168987,13768],{"class":50},[34,168989,168990],{"class":50}," --asexplicit",[34,168992,54011],{"class":54},[34,168994,168995],{"class":36,"line":242},[34,168996,62],{"emptyLinePlaceholder":61},[34,168998,168999],{"class":36,"line":250},[34,169000,169001],{"class":40},"# Mark package as dependency\n",[34,169003,169004,169006,169008,169010,169013],{"class":36,"line":263},[34,169005,436],{"class":47},[34,169007,53595],{"class":54},[34,169009,13768],{"class":50},[34,169011,169012],{"class":50}," --asdeps",[34,169014,54011],{"class":54},[34,169016,169017],{"class":36,"line":275},[34,169018,62],{"emptyLinePlaceholder":61},[34,169020,169021],{"class":36,"line":700},[34,169022,169023],{"class":40},"# List files in package database\n",[34,169025,169026,169028,169031],{"class":36,"line":706},[34,169027,7770],{"class":47},[34,169029,169030],{"class":50}," -Fl",[34,169032,54011],{"class":54},[388,169034,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":169036},[169037],{"id":150630,"depth":44,"text":150625},"Database Management in Pacman.",{},"/pacman/database-management",{"title":150625,"description":169038},"pacman/database-management",[7770,168699,5588,5591],"HY1r-oLl1lqwsql6nREXgzh4wf5MrQ0SAkRLuj2QsA8",{"id":169046,"title":6112,"body":169047,"date":402,"description":169164,"extension":404,"meta":169165,"navigation":61,"order":44,"path":169166,"seo":169167,"stem":169168,"subject":7770,"tags":169169,"__hash__":169170},"topics/pacman/installing-packages.md",{"type":8,"value":169048,"toc":169161},[169049,169051,169159],[11,169050,6112],{"id":6117},[25,169052,169054],{"className":27,"code":169053,"language":29,"meta":30,"style":30},"# Install a package\nsudo pacman -S package_name\n\n# Install multiple packages\nsudo pacman -S package1 package2 package3\n\n# Install without confirmation prompt\nsudo pacman -S --noconfirm package_name\n\n# Install from local file\nsudo pacman -U /path/to/package.pkg.tar.zst\n\n# Install with dependencies\nsudo pacman -S --asdeps package_name  # Mark as dependency\n",[20,169055,169056,169060,169070,169074,169078,169092,169096,169100,169113,169117,169122,169134,169138,169143],{"__ignoreMap":30},[34,169057,169058],{"class":36,"line":37},[34,169059,6127],{"class":40},[34,169061,169062,169064,169066,169068],{"class":36,"line":44},[34,169063,436],{"class":47},[34,169065,53595],{"class":54},[34,169067,7773],{"class":50},[34,169069,54011],{"class":54},[34,169071,169072],{"class":36,"line":58},[34,169073,62],{"emptyLinePlaceholder":61},[34,169075,169076],{"class":36,"line":65},[34,169077,6152],{"class":40},[34,169079,169080,169082,169084,169086,169088,169090],{"class":36,"line":71},[34,169081,436],{"class":47},[34,169083,53595],{"class":54},[34,169085,7773],{"class":50},[34,169087,54260],{"class":54},[34,169089,54263],{"class":54},[34,169091,54266],{"class":54},[34,169093,169094],{"class":36,"line":77},[34,169095,62],{"emptyLinePlaceholder":61},[34,169097,169098],{"class":36,"line":82},[34,169099,6239],{"class":40},[34,169101,169102,169104,169106,169108,169111],{"class":36,"line":88},[34,169103,436],{"class":47},[34,169105,53595],{"class":54},[34,169107,7773],{"class":50},[34,169109,169110],{"class":50}," --noconfirm",[34,169112,54011],{"class":54},[34,169114,169115],{"class":36,"line":242},[34,169116,62],{"emptyLinePlaceholder":61},[34,169118,169119],{"class":36,"line":250},[34,169120,169121],{"class":40},"# Install from local file\n",[34,169123,169124,169126,169128,169131],{"class":36,"line":263},[34,169125,436],{"class":47},[34,169127,53595],{"class":54},[34,169129,169130],{"class":50}," -U",[34,169132,169133],{"class":54}," /path/to/package.pkg.tar.zst\n",[34,169135,169136],{"class":36,"line":275},[34,169137,62],{"emptyLinePlaceholder":61},[34,169139,169140],{"class":36,"line":700},[34,169141,169142],{"class":40},"# Install with dependencies\n",[34,169144,169145,169147,169149,169151,169153,169156],{"class":36,"line":706},[34,169146,436],{"class":47},[34,169148,53595],{"class":54},[34,169150,7773],{"class":50},[34,169152,169012],{"class":50},[34,169154,169155],{"class":54}," package_name",[34,169157,169158],{"class":40},"  # Mark as dependency\n",[388,169160,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":169162},[169163],{"id":6117,"depth":44,"text":6112},"Installing Packages in Pacman.",{},"/pacman/installing-packages",{"title":6112,"description":169164},"pacman/installing-packages",[7770,168699,5588,5591],"w4xaF92VqP-sskcT0TW8XCJgTLlQTUW0ITQKgazKrW4",{"id":169172,"title":169173,"body":169174,"date":2633,"description":169226,"extension":404,"meta":169227,"navigation":61,"order":37,"path":169228,"seo":169229,"stem":169230,"subject":7770,"tags":169231,"__hash__":169232},"topics/pacman/overview.md","Pacman",{"type":8,"value":169175,"toc":169224},[169176],[309,169177,169178,169182,169187,169193,169198,169203,169207,169211,169215,169220],{},[312,169179,169180],{},[145,169181,6112],{"href":169166},[312,169183,169184],{},[145,169185,6479],{"href":169186},"/pacman/removing-packages",[312,169188,169189],{},[145,169190,169192],{"href":169191},"/pacman/updating-system","Updating System",[312,169194,169195],{},[145,169196,6491],{"href":169197},"/pacman/searching-packages",[312,169199,169200],{},[145,169201,6501],{"href":169202},"/pacman/package-information",[312,169204,169205],{},[145,169206,168585],{"href":168695},[312,169208,169209],{},[145,169210,150625],{"href":169040},[312,169212,169213],{},[145,169214,168703],{"href":168806},[312,169216,169217],{},[145,169218,54392],{"href":169219},"/pacman/package-groups",[312,169221,169222],{},[145,169223,8686],{"href":168923},{"title":30,"searchDepth":44,"depth":44,"links":169225},[],"Essential commands for Arch Linux's pacman package manager.",{},"/pacman/overview",{"title":169173,"description":169226},"pacman/overview",[7770,168699,5588,5591],"T83u5j2Tjc5z0eYOiiHPlB7iCOFOOF7_Xe52laZl7d8",{"id":169234,"title":54392,"body":169235,"date":402,"description":169333,"extension":404,"meta":169334,"navigation":61,"order":250,"path":169219,"seo":169335,"stem":169336,"subject":7770,"tags":169337,"__hash__":169338},"topics/pacman/package-groups.md",{"type":8,"value":169236,"toc":169330},[169237,169239,169328],[11,169238,54392],{"id":54444},[25,169240,169242],{"className":27,"code":169241,"language":29,"meta":30,"style":30},"# List all groups\npacman -Sg\n\n# List packages in a group\npacman -Sg group_name\n\n# Install entire group\nsudo pacman -S group_name\n\n# List installed groups\npacman -Qg\n\n# List packages in installed group\npacman -Qg group_name\n",[20,169243,169244,169249,169256,169260,169265,169275,169279,169284,169294,169298,169303,169310,169314,169319],{"__ignoreMap":30},[34,169245,169246],{"class":36,"line":37},[34,169247,169248],{"class":40},"# List all groups\n",[34,169250,169251,169253],{"class":36,"line":44},[34,169252,7770],{"class":47},[34,169254,169255],{"class":50}," -Sg\n",[34,169257,169258],{"class":36,"line":58},[34,169259,62],{"emptyLinePlaceholder":61},[34,169261,169262],{"class":36,"line":65},[34,169263,169264],{"class":40},"# List packages in a group\n",[34,169266,169267,169269,169272],{"class":36,"line":71},[34,169268,7770],{"class":47},[34,169270,169271],{"class":50}," -Sg",[34,169273,169274],{"class":54}," group_name\n",[34,169276,169277],{"class":36,"line":77},[34,169278,62],{"emptyLinePlaceholder":61},[34,169280,169281],{"class":36,"line":82},[34,169282,169283],{"class":40},"# Install entire group\n",[34,169285,169286,169288,169290,169292],{"class":36,"line":88},[34,169287,436],{"class":47},[34,169289,53595],{"class":54},[34,169291,7773],{"class":50},[34,169293,169274],{"class":54},[34,169295,169296],{"class":36,"line":242},[34,169297,62],{"emptyLinePlaceholder":61},[34,169299,169300],{"class":36,"line":250},[34,169301,169302],{"class":40},"# List installed groups\n",[34,169304,169305,169307],{"class":36,"line":263},[34,169306,7770],{"class":47},[34,169308,169309],{"class":50}," -Qg\n",[34,169311,169312],{"class":36,"line":275},[34,169313,62],{"emptyLinePlaceholder":61},[34,169315,169316],{"class":36,"line":700},[34,169317,169318],{"class":40},"# List packages in installed group\n",[34,169320,169321,169323,169326],{"class":36,"line":706},[34,169322,7770],{"class":47},[34,169324,169325],{"class":50}," -Qg",[34,169327,169274],{"class":54},[388,169329,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":169331},[169332],{"id":54444,"depth":44,"text":54392},"Package Groups in Pacman.",{},{"title":54392,"description":169333},"pacman/package-groups",[7770,168699,5588,5591],"Uv2BvirXv824-6IQvNQY2UgttbSHbogbCqLb5qzPo7E",{"id":169340,"title":6501,"body":169341,"date":402,"description":169466,"extension":404,"meta":169467,"navigation":61,"order":77,"path":169202,"seo":169468,"stem":169469,"subject":7770,"tags":169470,"__hash__":169471},"topics/pacman/package-information.md",{"type":8,"value":169342,"toc":169463},[169343,169345,169461],[11,169344,6501],{"id":6541},[25,169346,169348],{"className":27,"code":169347,"language":29,"meta":30,"style":30},"# Display info about installed package\npacman -Qi package_name\n\n# Display info about repository package\npacman -Si package_name\n\n# List all installed packages\npacman -Q\n\n# List explicitly installed packages\npacman -Qe\n\n# List packages installed as dependencies\npacman -Qd\n\n# List orphaned packages (no longer needed)\npacman -Qdt\n\n# Check for package updates\npacman -Qu\n",[20,169349,169350,169355,169364,169368,169373,169382,169386,169390,169397,169401,169406,169413,169417,169422,169429,169433,169438,169445,169449,169454],{"__ignoreMap":30},[34,169351,169352],{"class":36,"line":37},[34,169353,169354],{"class":40},"# Display info about installed package\n",[34,169356,169357,169359,169362],{"class":36,"line":44},[34,169358,7770],{"class":47},[34,169360,169361],{"class":50}," -Qi",[34,169363,54011],{"class":54},[34,169365,169366],{"class":36,"line":58},[34,169367,62],{"emptyLinePlaceholder":61},[34,169369,169370],{"class":36,"line":65},[34,169371,169372],{"class":40},"# Display info about repository package\n",[34,169374,169375,169377,169380],{"class":36,"line":71},[34,169376,7770],{"class":47},[34,169378,169379],{"class":50}," -Si",[34,169381,54011],{"class":54},[34,169383,169384],{"class":36,"line":77},[34,169385,62],{"emptyLinePlaceholder":61},[34,169387,169388],{"class":36,"line":82},[34,169389,6338],{"class":40},[34,169391,169392,169394],{"class":36,"line":88},[34,169393,7770],{"class":47},[34,169395,169396],{"class":50}," -Q\n",[34,169398,169399],{"class":36,"line":242},[34,169400,62],{"emptyLinePlaceholder":61},[34,169402,169403],{"class":36,"line":250},[34,169404,169405],{"class":40},"# List explicitly installed packages\n",[34,169407,169408,169410],{"class":36,"line":263},[34,169409,7770],{"class":47},[34,169411,169412],{"class":50}," -Qe\n",[34,169414,169415],{"class":36,"line":275},[34,169416,62],{"emptyLinePlaceholder":61},[34,169418,169419],{"class":36,"line":700},[34,169420,169421],{"class":40},"# List packages installed as dependencies\n",[34,169423,169424,169426],{"class":36,"line":706},[34,169425,7770],{"class":47},[34,169427,169428],{"class":50}," -Qd\n",[34,169430,169431],{"class":36,"line":715},[34,169432,62],{"emptyLinePlaceholder":61},[34,169434,169435],{"class":36,"line":725},[34,169436,169437],{"class":40},"# List orphaned packages (no longer needed)\n",[34,169439,169440,169442],{"class":36,"line":734},[34,169441,7770],{"class":47},[34,169443,169444],{"class":50}," -Qdt\n",[34,169446,169447],{"class":36,"line":742},[34,169448,62],{"emptyLinePlaceholder":61},[34,169450,169451],{"class":36,"line":748},[34,169452,169453],{"class":40},"# Check for package updates\n",[34,169455,169456,169458],{"class":36,"line":754},[34,169457,7770],{"class":47},[34,169459,169460],{"class":50}," -Qu\n",[388,169462,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":169464},[169465],{"id":6541,"depth":44,"text":6501},"Package Information in Pacman.",{},{"title":6501,"description":169466},"pacman/package-information",[7770,168699,5588,5591],"-3S7vQc-BMO7uuZV0yxsdVKqbDc3SmnJMzyVecZrrNI",{"id":169473,"title":6479,"body":169474,"date":402,"description":169561,"extension":404,"meta":169562,"navigation":61,"order":58,"path":169186,"seo":169563,"stem":169564,"subject":7770,"tags":169565,"__hash__":169566},"topics/pacman/removing-packages.md",{"type":8,"value":169475,"toc":169558},[169476,169478,169556],[11,169477,6479],{"id":6657},[25,169479,169481],{"className":27,"code":169480,"language":29,"meta":30,"style":30},"# Remove a package\nsudo pacman -R package_name\n\n# Remove package and its dependencies (not used by others)\nsudo pacman -Rs package_name\n\n# Remove package, dependencies, and config files\nsudo pacman -Rns package_name\n\n# Remove package without checking dependencies (dangerous)\nsudo pacman -Rdd package_name\n",[20,169482,169483,169487,169497,169501,169506,169517,169521,169526,169536,169540,169545],{"__ignoreMap":30},[34,169484,169485],{"class":36,"line":37},[34,169486,16314],{"class":40},[34,169488,169489,169491,169493,169495],{"class":36,"line":44},[34,169490,436],{"class":47},[34,169492,53595],{"class":54},[34,169494,97196],{"class":50},[34,169496,54011],{"class":54},[34,169498,169499],{"class":36,"line":58},[34,169500,62],{"emptyLinePlaceholder":61},[34,169502,169503],{"class":36,"line":65},[34,169504,169505],{"class":40},"# Remove package and its dependencies (not used by others)\n",[34,169507,169508,169510,169512,169515],{"class":36,"line":71},[34,169509,436],{"class":47},[34,169511,53595],{"class":54},[34,169513,169514],{"class":50}," -Rs",[34,169516,54011],{"class":54},[34,169518,169519],{"class":36,"line":77},[34,169520,62],{"emptyLinePlaceholder":61},[34,169522,169523],{"class":36,"line":82},[34,169524,169525],{"class":40},"# Remove package, dependencies, and config files\n",[34,169527,169528,169530,169532,169534],{"class":36,"line":88},[34,169529,436],{"class":47},[34,169531,53595],{"class":54},[34,169533,168645],{"class":50},[34,169535,54011],{"class":54},[34,169537,169538],{"class":36,"line":242},[34,169539,62],{"emptyLinePlaceholder":61},[34,169541,169542],{"class":36,"line":250},[34,169543,169544],{"class":40},"# Remove package without checking dependencies (dangerous)\n",[34,169546,169547,169549,169551,169554],{"class":36,"line":263},[34,169548,436],{"class":47},[34,169550,53595],{"class":54},[34,169552,169553],{"class":50}," -Rdd",[34,169555,54011],{"class":54},[388,169557,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":169559},[169560],{"id":6657,"depth":44,"text":6479},"Removing Packages in Pacman.",{},{"title":6479,"description":169561},"pacman/removing-packages",[7770,168699,5588,5591],"3pOA_H653PHcwlkcf8hXgBfYLr5_I9mX-NRNig4_6Jg",{"id":169568,"title":6491,"body":169569,"date":402,"description":169669,"extension":404,"meta":169670,"navigation":61,"order":71,"path":169197,"seo":169671,"stem":169672,"subject":7770,"tags":169673,"__hash__":169674},"topics/pacman/searching-packages.md",{"type":8,"value":169570,"toc":169666},[169571,169573,169664],[11,169572,6491],{"id":6764},[25,169574,169576],{"className":27,"code":169575,"language":29,"meta":30,"style":30},"# Search for package in repositories\npacman -Ss search_term\n\n# Search installed packages\npacman -Qs search_term\n\n# Search for package that owns a file\npacman -Qo /path/to/file\n\n# List all files owned by a package\npacman -Ql package_name\n\n# Find which package provides a file\npacman -F filename\n",[20,169577,169578,169583,169593,169597,169602,169611,169615,169620,169629,169633,169638,169647,169651,169656],{"__ignoreMap":30},[34,169579,169580],{"class":36,"line":37},[34,169581,169582],{"class":40},"# Search for package in repositories\n",[34,169584,169585,169587,169590],{"class":36,"line":44},[34,169586,7770],{"class":47},[34,169588,169589],{"class":50}," -Ss",[34,169591,169592],{"class":54}," search_term\n",[34,169594,169595],{"class":36,"line":58},[34,169596,62],{"emptyLinePlaceholder":61},[34,169598,169599],{"class":36,"line":65},[34,169600,169601],{"class":40},"# Search installed packages\n",[34,169603,169604,169606,169609],{"class":36,"line":71},[34,169605,7770],{"class":47},[34,169607,169608],{"class":50}," -Qs",[34,169610,169592],{"class":54},[34,169612,169613],{"class":36,"line":77},[34,169614,62],{"emptyLinePlaceholder":61},[34,169616,169617],{"class":36,"line":82},[34,169618,169619],{"class":40},"# Search for package that owns a file\n",[34,169621,169622,169624,169627],{"class":36,"line":88},[34,169623,7770],{"class":47},[34,169625,169626],{"class":50}," -Qo",[34,169628,55189],{"class":54},[34,169630,169631],{"class":36,"line":242},[34,169632,62],{"emptyLinePlaceholder":61},[34,169634,169635],{"class":36,"line":250},[34,169636,169637],{"class":40},"# List all files owned by a package\n",[34,169639,169640,169642,169645],{"class":36,"line":263},[34,169641,7770],{"class":47},[34,169643,169644],{"class":50}," -Ql",[34,169646,54011],{"class":54},[34,169648,169649],{"class":36,"line":275},[34,169650,62],{"emptyLinePlaceholder":61},[34,169652,169653],{"class":36,"line":700},[34,169654,169655],{"class":40},"# Find which package provides a file\n",[34,169657,169658,169660,169662],{"class":36,"line":706},[34,169659,7770],{"class":47},[34,169661,43705],{"class":50},[34,169663,100301],{"class":54},[388,169665,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":169667},[169668],{"id":6764,"depth":44,"text":6491},"Searching Packages in Pacman.",{},{"title":6491,"description":169669},"pacman/searching-packages",[7770,168699,5588,5591],"_XDcYbagIWHhJeD-XOqOUwYOG9-Jg5IsnwcfrYGiW3Y",{"id":169676,"title":169192,"body":169677,"date":402,"description":169778,"extension":404,"meta":169779,"navigation":61,"order":65,"path":169191,"seo":169780,"stem":169781,"subject":7770,"tags":169782,"__hash__":169783},"topics/pacman/updating-system.md",{"type":8,"value":169678,"toc":169775},[169679,169682,169773],[11,169680,169192],{"id":169681},"updating-system",[25,169683,169685],{"className":27,"code":169684,"language":29,"meta":30,"style":30},"# Update package database\nsudo pacman -Sy\n\n# Upgrade all packages\nsudo pacman -Su\n\n# Update database and upgrade all packages\nsudo pacman -Syu\n\n# Force refresh package databases\nsudo pacman -Syy\n\n# Full system upgrade with database refresh\nsudo pacman -Syyu\n",[20,169686,169687,169692,169701,169705,169710,169719,169723,169728,169737,169741,169746,169755,169759,169764],{"__ignoreMap":30},[34,169688,169689],{"class":36,"line":37},[34,169690,169691],{"class":40},"# Update package database\n",[34,169693,169694,169696,169698],{"class":36,"line":44},[34,169695,436],{"class":47},[34,169697,53595],{"class":54},[34,169699,169700],{"class":50}," -Sy\n",[34,169702,169703],{"class":36,"line":58},[34,169704,62],{"emptyLinePlaceholder":61},[34,169706,169707],{"class":36,"line":65},[34,169708,169709],{"class":40},"# Upgrade all packages\n",[34,169711,169712,169714,169716],{"class":36,"line":71},[34,169713,436],{"class":47},[34,169715,53595],{"class":54},[34,169717,169718],{"class":50}," -Su\n",[34,169720,169721],{"class":36,"line":77},[34,169722,62],{"emptyLinePlaceholder":61},[34,169724,169725],{"class":36,"line":82},[34,169726,169727],{"class":40},"# Update database and upgrade all packages\n",[34,169729,169730,169732,169734],{"class":36,"line":88},[34,169731,436],{"class":47},[34,169733,53595],{"class":54},[34,169735,169736],{"class":50}," -Syu\n",[34,169738,169739],{"class":36,"line":242},[34,169740,62],{"emptyLinePlaceholder":61},[34,169742,169743],{"class":36,"line":250},[34,169744,169745],{"class":40},"# Force refresh package databases\n",[34,169747,169748,169750,169752],{"class":36,"line":263},[34,169749,436],{"class":47},[34,169751,53595],{"class":54},[34,169753,169754],{"class":50}," -Syy\n",[34,169756,169757],{"class":36,"line":275},[34,169758,62],{"emptyLinePlaceholder":61},[34,169760,169761],{"class":36,"line":700},[34,169762,169763],{"class":40},"# Full system upgrade with database refresh\n",[34,169765,169766,169768,169770],{"class":36,"line":706},[34,169767,436],{"class":47},[34,169769,53595],{"class":54},[34,169771,169772],{"class":50}," -Syyu\n",[388,169774,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":169776},[169777],{"id":169681,"depth":44,"text":169192},"Updating System in Pacman.",{},{"title":169192,"description":169778},"pacman/updating-system",[7770,168699,5588,5591],"_4WWkz3K_UyjaotVyn85kBAEMOPMiLAMNeJVfqYOzXM",{"id":169785,"title":10061,"body":169786,"date":402,"description":170114,"extension":404,"meta":170115,"navigation":61,"order":65,"path":170116,"seo":170117,"stem":170118,"subject":139955,"tags":170119,"__hash__":170120},"topics/php/arrays.md",{"type":8,"value":169787,"toc":170111},[169788,169790,170108],[11,169789,10061],{"id":10066},[25,169791,169793],{"className":139953,"code":169792,"language":139955,"meta":30,"style":30},"\u003C?php\n// Indexed arrays\n$fruits = [\"apple\", \"banana\", \"cherry\"];\n$fruits[] = \"date\";            // Append\n\n// Associative arrays\n$person = [\n    \"name\" => \"Alice\",\n    \"age\" => 30\n];\n\n// Array functions\ncount($arr);                   // Length\narray_push($arr, $item);       // Add to end\narray_pop($arr);               // Remove from end\narray_shift($arr);             // Remove from start\narray_unshift($arr, $item);    // Add to start\narray_merge($arr1, $arr2);     // Merge arrays\narray_keys($arr);              // Get keys\narray_values($arr);            // Get values\nin_array($val, $arr);          // Check if exists\narray_search($val, $arr);      // Find index\narray_unique($arr);            // Remove duplicates\narray_reverse($arr);           // Reverse order\nsort($arr);                    // Sort ascending\nrsort($arr);                   // Sort descending\n\n// Array iteration\narray_map(fn($x) => $x * 2, $arr);\narray_filter($arr, fn($x) => $x > 5);\narray_reduce($arr, fn($acc, $x) => $acc + $x, 0);\n",[20,169794,169795,169803,169808,169829,169844,169848,169853,169862,169872,169881,169885,169889,169894,169904,169915,169926,169937,169948,169959,169970,169981,169992,170003,170012,170023,170032,170041,170045,170050,170069,170087],{"__ignoreMap":30},[34,169796,169797,169800],{"class":36,"line":37},[34,169798,169799],{"class":580},"\u003C?",[34,169801,169802],{"class":50},"php\n",[34,169804,169805],{"class":36,"line":44},[34,169806,169807],{"class":40},"// Indexed arrays\n",[34,169809,169810,169813,169815,169817,169819,169821,169823,169825,169827],{"class":36,"line":58},[34,169811,169812],{"class":181},"$fruits ",[34,169814,1301],{"class":580},[34,169816,8315],{"class":181},[34,169818,10088],{"class":54},[34,169820,1798],{"class":181},[34,169822,144247],{"class":54},[34,169824,1798],{"class":181},[34,169826,144252],{"class":54},[34,169828,3415],{"class":181},[34,169830,169831,169834,169836,169839,169841],{"class":36,"line":65},[34,169832,169833],{"class":181},"$fruits[] ",[34,169835,1301],{"class":580},[34,169837,169838],{"class":54}," \"date\"",[34,169840,40061],{"class":181},[34,169842,169843],{"class":40},"// Append\n",[34,169845,169846],{"class":36,"line":71},[34,169847,62],{"emptyLinePlaceholder":61},[34,169849,169850],{"class":36,"line":77},[34,169851,169852],{"class":40},"// Associative arrays\n",[34,169854,169855,169858,169860],{"class":36,"line":82},[34,169856,169857],{"class":181},"$person ",[34,169859,1301],{"class":580},[34,169861,3304],{"class":181},[34,169863,169864,169866,169868,169870],{"class":36,"line":88},[34,169865,128114],{"class":54},[34,169867,1895],{"class":580},[34,169869,25138],{"class":54},[34,169871,624],{"class":181},[34,169873,169874,169877,169879],{"class":36,"line":242},[34,169875,169876],{"class":54},"    \"age\"",[34,169878,1895],{"class":580},[34,169880,87383],{"class":50},[34,169882,169883],{"class":36,"line":250},[34,169884,3415],{"class":181},[34,169886,169887],{"class":36,"line":263},[34,169888,62],{"emptyLinePlaceholder":61},[34,169890,169891],{"class":36,"line":275},[34,169892,169893],{"class":40},"// Array functions\n",[34,169895,169896,169898,169901],{"class":36,"line":700},[34,169897,4284],{"class":50},[34,169899,169900],{"class":181},"($arr);                   ",[34,169902,169903],{"class":40},"// Length\n",[34,169905,169906,169909,169912],{"class":36,"line":706},[34,169907,169908],{"class":50},"array_push",[34,169910,169911],{"class":181},"($arr, $item);       ",[34,169913,169914],{"class":40},"// Add to end\n",[34,169916,169917,169920,169923],{"class":36,"line":715},[34,169918,169919],{"class":50},"array_pop",[34,169921,169922],{"class":181},"($arr);               ",[34,169924,169925],{"class":40},"// Remove from end\n",[34,169927,169928,169931,169934],{"class":36,"line":725},[34,169929,169930],{"class":50},"array_shift",[34,169932,169933],{"class":181},"($arr);             ",[34,169935,169936],{"class":40},"// Remove from start\n",[34,169938,169939,169942,169945],{"class":36,"line":734},[34,169940,169941],{"class":50},"array_unshift",[34,169943,169944],{"class":181},"($arr, $item);    ",[34,169946,169947],{"class":40},"// Add to start\n",[34,169949,169950,169953,169956],{"class":36,"line":742},[34,169951,169952],{"class":50},"array_merge",[34,169954,169955],{"class":181},"($arr1, $arr2);     ",[34,169957,169958],{"class":40},"// Merge arrays\n",[34,169960,169961,169964,169967],{"class":36,"line":748},[34,169962,169963],{"class":50},"array_keys",[34,169965,169966],{"class":181},"($arr);              ",[34,169968,169969],{"class":40},"// Get keys\n",[34,169971,169972,169975,169978],{"class":36,"line":754},[34,169973,169974],{"class":50},"array_values",[34,169976,169977],{"class":181},"($arr);            ",[34,169979,169980],{"class":40},"// Get values\n",[34,169982,169983,169986,169989],{"class":36,"line":759},[34,169984,169985],{"class":50},"in_array",[34,169987,169988],{"class":181},"($val, $arr);          ",[34,169990,169991],{"class":40},"// Check if exists\n",[34,169993,169994,169997,170000],{"class":36,"line":771},[34,169995,169996],{"class":50},"array_search",[34,169998,169999],{"class":181},"($val, $arr);      ",[34,170001,170002],{"class":40},"// Find index\n",[34,170004,170005,170008,170010],{"class":36,"line":794},[34,170006,170007],{"class":50},"array_unique",[34,170009,169977],{"class":181},[34,170011,36725],{"class":40},[34,170013,170014,170017,170020],{"class":36,"line":824},[34,170015,170016],{"class":50},"array_reverse",[34,170018,170019],{"class":181},"($arr);           ",[34,170021,170022],{"class":40},"// Reverse order\n",[34,170024,170025,170027,170030],{"class":36,"line":830},[34,170026,13152],{"class":50},[34,170028,170029],{"class":181},"($arr);                    ",[34,170031,36522],{"class":40},[34,170033,170034,170037,170039],{"class":36,"line":839},[34,170035,170036],{"class":50},"rsort",[34,170038,169900],{"class":181},[34,170040,36541],{"class":40},[34,170042,170043],{"class":36,"line":854},[34,170044,62],{"emptyLinePlaceholder":61},[34,170046,170047],{"class":36,"line":860},[34,170048,170049],{"class":40},"// Array iteration\n",[34,170051,170052,170055,170057,170059,170062,170064,170066],{"class":36,"line":865},[34,170053,170054],{"class":50},"array_map",[34,170056,1607],{"class":181},[34,170058,77761],{"class":580},[34,170060,170061],{"class":181},"($x) => $x ",[34,170063,4289],{"class":580},[34,170065,4292],{"class":50},[34,170067,170068],{"class":181},", $arr);\n",[34,170070,170071,170074,170077,170079,170081,170083,170085],{"class":36,"line":870},[34,170072,170073],{"class":50},"array_filter",[34,170075,170076],{"class":181},"($arr, ",[34,170078,77761],{"class":580},[34,170080,170061],{"class":181},[34,170082,5691],{"class":580},[34,170084,11144],{"class":50},[34,170086,1586],{"class":181},[34,170088,170089,170092,170094,170096,170099,170101,170104,170106],{"class":36,"line":876},[34,170090,170091],{"class":50},"array_reduce",[34,170093,170076],{"class":181},[34,170095,77761],{"class":580},[34,170097,170098],{"class":181},"($acc, $x) => $acc ",[34,170100,2940],{"class":580},[34,170102,170103],{"class":181}," $x, ",[34,170105,2773],{"class":50},[34,170107,1586],{"class":181},[388,170109,170110],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .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":30,"searchDepth":44,"depth":44,"links":170112},[170113],{"id":10066,"depth":44,"text":10061},"Arrays in PHP.",{},"/php/arrays",{"title":10061,"description":170114},"php/arrays",[139955,46870,38615,15678],"XduykKJTNLoM2tdFz8kXW953AltUgFM9PzvejTAsxPg",{"id":170122,"title":170123,"body":170124,"date":402,"description":170505,"extension":404,"meta":170506,"navigation":61,"order":748,"path":170507,"seo":170508,"stem":170509,"subject":139955,"tags":170510,"__hash__":170511},"topics/php/attributes-php-8.md","Attributes (PHP 8+)",{"type":8,"value":170125,"toc":170502},[170126,170129,170499],[11,170127,170123],{"id":170128},"attributes-php-8",[25,170130,170132],{"className":139953,"code":170131,"language":139955,"meta":30,"style":30},"\u003C?php\n// Built-in attributes\n#[Deprecated(\"Use newMethod() instead\")]\npublic function oldMethod() {}\n\n#[Override]\npublic function parentMethod() {}\n\n// Custom attributes\n#[Attribute]\nclass Route {\n    public function __construct(\n        public string $path,\n        public string $method = \"GET\"\n    ) {}\n}\n\n// Using attributes\nclass UserController {\n    #[Route(\"/users\", method: \"GET\")]\n    public function index() {}\n\n    #[Route(\"/users/{id}\", method: \"GET\")]\n    public function show(int $id) {}\n}\n\n// Reading attributes via reflection\n$reflection = new ReflectionClass(UserController::class);\nforeach ($reflection->getMethods() as $method) {\n    $attributes = $method->getAttributes(Route::class);\n    foreach ($attributes as $attr) {\n        $route = $attr->newInstance();\n        echo \"{$route->method} {$route->path}\";\n    }\n}\n",[20,170133,170134,170140,170145,170160,170171,170175,170184,170195,170199,170204,170213,170222,170233,170243,170257,170262,170266,170270,170275,170284,170306,170316,170320,170341,170356,170360,170364,170369,170390,170409,170432,170445,170462,170491,170495],{"__ignoreMap":30},[34,170135,170136,170138],{"class":36,"line":37},[34,170137,169799],{"class":580},[34,170139,169802],{"class":50},[34,170141,170142],{"class":36,"line":44},[34,170143,170144],{"class":40},"// Built-in attributes\n",[34,170146,170147,170150,170153,170155,170158],{"class":36,"line":58},[34,170148,170149],{"class":181},"#[",[34,170151,170152],{"class":50},"Deprecated",[34,170154,1607],{"class":181},[34,170156,170157],{"class":54},"\"Use newMethod() instead\"",[34,170159,34499],{"class":181},[34,170161,170162,170164,170166,170169],{"class":36,"line":65},[34,170163,31583],{"class":580},[34,170165,8037],{"class":580},[34,170167,170168],{"class":47}," oldMethod",[34,170170,30172],{"class":181},[34,170172,170173],{"class":36,"line":71},[34,170174,62],{"emptyLinePlaceholder":61},[34,170176,170177,170179,170182],{"class":36,"line":77},[34,170178,170149],{"class":181},[34,170180,170181],{"class":50},"Override",[34,170183,924],{"class":181},[34,170185,170186,170188,170190,170193],{"class":36,"line":82},[34,170187,31583],{"class":580},[34,170189,8037],{"class":580},[34,170191,170192],{"class":47}," parentMethod",[34,170194,30172],{"class":181},[34,170196,170197],{"class":36,"line":88},[34,170198,62],{"emptyLinePlaceholder":61},[34,170200,170201],{"class":36,"line":242},[34,170202,170203],{"class":40},"// Custom attributes\n",[34,170205,170206,170208,170211],{"class":36,"line":250},[34,170207,170149],{"class":181},[34,170209,170210],{"class":50},"Attribute",[34,170212,924],{"class":181},[34,170214,170215,170217,170220],{"class":36,"line":263},[34,170216,30060],{"class":580},[34,170218,170219],{"class":47}," Route",[34,170221,661],{"class":181},[34,170223,170224,170226,170228,170231],{"class":36,"line":275},[34,170225,34159],{"class":580},[34,170227,8037],{"class":580},[34,170229,170230],{"class":50}," __construct",[34,170232,1882],{"class":181},[34,170234,170235,170238,170240],{"class":36,"line":700},[34,170236,170237],{"class":580},"        public",[34,170239,680],{"class":580},[34,170241,170242],{"class":181}," $path,\n",[34,170244,170245,170247,170249,170252,170254],{"class":36,"line":706},[34,170246,170237],{"class":580},[34,170248,680],{"class":580},[34,170250,170251],{"class":181}," $method ",[34,170253,1301],{"class":580},[34,170255,170256],{"class":54}," \"GET\"\n",[34,170258,170259],{"class":36,"line":715},[34,170260,170261],{"class":181},"    ) {}\n",[34,170263,170264],{"class":36,"line":725},[34,170265,693],{"class":181},[34,170267,170268],{"class":36,"line":734},[34,170269,62],{"emptyLinePlaceholder":61},[34,170271,170272],{"class":36,"line":742},[34,170273,170274],{"class":40},"// Using attributes\n",[34,170276,170277,170279,170282],{"class":36,"line":748},[34,170278,30060],{"class":580},[34,170280,170281],{"class":47}," UserController",[34,170283,661],{"class":181},[34,170285,170286,170289,170291,170293,170295,170297,170299,170301,170304],{"class":36,"line":754},[34,170287,170288],{"class":181},"    #[",[34,170290,139975],{"class":50},[34,170292,1607],{"class":181},[34,170294,112604],{"class":54},[34,170296,1798],{"class":181},[34,170298,76222],{"class":47},[34,170300,182],{"class":181},[34,170302,170303],{"class":54},"\"GET\"",[34,170305,34499],{"class":181},[34,170307,170308,170310,170312,170314],{"class":36,"line":759},[34,170309,34159],{"class":580},[34,170311,8037],{"class":580},[34,170313,74136],{"class":47},[34,170315,30172],{"class":181},[34,170317,170318],{"class":36,"line":771},[34,170319,62],{"emptyLinePlaceholder":61},[34,170321,170322,170324,170326,170328,170331,170333,170335,170337,170339],{"class":36,"line":794},[34,170323,170288],{"class":181},[34,170325,139975],{"class":50},[34,170327,1607],{"class":181},[34,170329,170330],{"class":54},"\"/users/{id}\"",[34,170332,1798],{"class":181},[34,170334,76222],{"class":47},[34,170336,182],{"class":181},[34,170338,170303],{"class":54},[34,170340,34499],{"class":181},[34,170342,170343,170345,170347,170349,170351,170353],{"class":36,"line":824},[34,170344,34159],{"class":580},[34,170346,8037],{"class":580},[34,170348,6558],{"class":47},[34,170350,1607],{"class":181},[34,170352,17772],{"class":580},[34,170354,170355],{"class":181}," $id) {}\n",[34,170357,170358],{"class":36,"line":830},[34,170359,693],{"class":181},[34,170361,170362],{"class":36,"line":839},[34,170363,62],{"emptyLinePlaceholder":61},[34,170365,170366],{"class":36,"line":854},[34,170367,170368],{"class":40},"// Reading attributes via reflection\n",[34,170370,170371,170374,170376,170378,170381,170383,170386,170388],{"class":36,"line":860},[34,170372,170373],{"class":181},"$reflection ",[34,170375,1301],{"class":580},[34,170377,809],{"class":580},[34,170379,170380],{"class":50}," ReflectionClass",[34,170382,1607],{"class":181},[34,170384,170385],{"class":50},"UserController",[34,170387,140152],{"class":580},[34,170389,1586],{"class":181},[34,170391,170392,170394,170397,170399,170402,170404,170406],{"class":36,"line":865},[34,170393,36810],{"class":580},[34,170395,170396],{"class":181}," ($reflection",[34,170398,24863],{"class":580},[34,170400,170401],{"class":47},"getMethods",[34,170403,672],{"class":181},[34,170405,74548],{"class":580},[34,170407,170408],{"class":181}," $method) {\n",[34,170410,170411,170414,170416,170419,170421,170424,170426,170428,170430],{"class":36,"line":870},[34,170412,170413],{"class":181},"    $attributes ",[34,170415,1301],{"class":580},[34,170417,170418],{"class":181}," $method",[34,170420,24863],{"class":580},[34,170422,170423],{"class":47},"getAttributes",[34,170425,1607],{"class":181},[34,170427,139975],{"class":50},[34,170429,140152],{"class":580},[34,170431,1586],{"class":181},[34,170433,170434,170437,170440,170442],{"class":36,"line":876},[34,170435,170436],{"class":580},"    foreach",[34,170438,170439],{"class":181}," ($attributes ",[34,170441,74548],{"class":580},[34,170443,170444],{"class":181}," $attr) {\n",[34,170446,170447,170450,170452,170455,170457,170460],{"class":36,"line":885},[34,170448,170449],{"class":181},"        $route ",[34,170451,1301],{"class":580},[34,170453,170454],{"class":181}," $attr",[34,170456,24863],{"class":580},[34,170458,170459],{"class":47},"newInstance",[34,170461,851],{"class":181},[34,170463,170464,170467,170470,170473,170475,170477,170480,170482,170484,170486,170489],{"class":36,"line":895},[34,170465,170466],{"class":50},"        echo",[34,170468,170469],{"class":54}," \"{",[34,170471,170472],{"class":181},"$route",[34,170474,24863],{"class":580},[34,170476,76222],{"class":181},[34,170478,170479],{"class":54},"} {",[34,170481,170472],{"class":181},[34,170483,24863],{"class":580},[34,170485,20404],{"class":181},[34,170487,170488],{"class":54},"}\"",[34,170490,593],{"class":181},[34,170492,170493],{"class":36,"line":904},[34,170494,3229],{"class":181},[34,170496,170497],{"class":36,"line":915},[34,170498,693],{"class":181},[388,170500,170501],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":170503},[170504],{"id":170128,"depth":44,"text":170123},"Attributes (PHP 8+) in PHP.",{},"/php/attributes-php-8",{"title":170123,"description":170505},"php/attributes-php-8",[139955,46870,38615,15678],"Z76JBSLEwURhFOwLcZMIQ33T71-LWlhALHyRIGAG1rQ",{"id":170513,"title":30045,"body":170514,"date":402,"description":170931,"extension":404,"meta":170932,"navigation":61,"order":88,"path":170933,"seo":170934,"stem":170935,"subject":139955,"tags":170936,"__hash__":170937},"topics/php/classes-objects.md",{"type":8,"value":170515,"toc":170928},[170516,170518,170925],[11,170517,30045],{"id":30050},[25,170519,170521],{"className":139953,"code":170520,"language":139955,"meta":30,"style":30},"\u003C?php\nclass User {\n    // Properties\n    public string $name;\n    private int $age;\n    protected string $email;\n    public static int $count = 0;\n\n    // Constructor\n    public function __construct(string $name, int $age) {\n        $this->name = $name;\n        $this->age = $age;\n        self::$count++;\n    }\n\n    // Constructor property promotion (PHP 8+)\n    public function __construct(\n        public string $name,\n        private int $age\n    ) {}\n\n    // Methods\n    public function greet(): string {\n        return \"Hello, {$this->name}!\";\n    }\n\n    // Static method\n    public static function getCount(): int {\n        return self::$count;\n    }\n\n    // Getter/Setter\n    public function getAge(): int {\n        return $this->age;\n    }\n\n    public function setAge(int $age): void {\n        $this->age = $age;\n    }\n}\n\n// Usage\n$user = new User(\"Alice\", 30);\necho $user->greet();\necho User::$count;\n",[20,170522,170523,170529,170537,170541,170550,170559,170568,170585,170589,170593,170613,170626,170638,170650,170654,170658,170663,170673,170682,170692,170696,170700,170705,170721,170739,170743,170747,170752,170771,170781,170785,170789,170794,170811,170823,170827,170831,170853,170865,170869,170873,170877,170881,170902,170915],{"__ignoreMap":30},[34,170524,170525,170527],{"class":36,"line":37},[34,170526,169799],{"class":580},[34,170528,169802],{"class":50},[34,170530,170531,170533,170535],{"class":36,"line":44},[34,170532,30060],{"class":580},[34,170534,3950],{"class":47},[34,170536,661],{"class":181},[34,170538,170539],{"class":36,"line":58},[34,170540,34154],{"class":40},[34,170542,170543,170545,170547],{"class":36,"line":65},[34,170544,34159],{"class":580},[34,170546,680],{"class":580},[34,170548,170549],{"class":181}," $name;\n",[34,170551,170552,170554,170556],{"class":36,"line":71},[34,170553,34138],{"class":580},[34,170555,25160],{"class":580},[34,170557,170558],{"class":181}," $age;\n",[34,170560,170561,170563,170565],{"class":36,"line":77},[34,170562,35140],{"class":580},[34,170564,680],{"class":580},[34,170566,170567],{"class":181}," $email;\n",[34,170569,170570,170572,170574,170576,170579,170581,170583],{"class":36,"line":82},[34,170571,34159],{"class":580},[34,170573,51421],{"class":580},[34,170575,25160],{"class":580},[34,170577,170578],{"class":181}," $count ",[34,170580,1301],{"class":580},[34,170582,8070],{"class":50},[34,170584,593],{"class":181},[34,170586,170587],{"class":36,"line":88},[34,170588,62],{"emptyLinePlaceholder":61},[34,170590,170591],{"class":36,"line":242},[34,170592,30098],{"class":40},[34,170594,170595,170597,170599,170601,170603,170605,170608,170610],{"class":36,"line":250},[34,170596,34159],{"class":580},[34,170598,8037],{"class":580},[34,170600,170230],{"class":50},[34,170602,1607],{"class":181},[34,170604,30113],{"class":580},[34,170606,170607],{"class":181}," $name, ",[34,170609,17772],{"class":580},[34,170611,170612],{"class":181}," $age) {\n",[34,170614,170615,170618,170620,170622,170624],{"class":36,"line":263},[34,170616,170617],{"class":50},"        $this",[34,170619,24863],{"class":580},[34,170621,37383],{"class":181},[34,170623,1301],{"class":580},[34,170625,170549],{"class":181},[34,170627,170628,170630,170632,170634,170636],{"class":36,"line":275},[34,170629,170617],{"class":50},[34,170631,24863],{"class":580},[34,170633,24879],{"class":181},[34,170635,1301],{"class":580},[34,170637,170558],{"class":181},[34,170639,170640,170643,170646,170648],{"class":36,"line":700},[34,170641,170642],{"class":580},"        self::",[34,170644,170645],{"class":181},"$count",[34,170647,11928],{"class":580},[34,170649,593],{"class":181},[34,170651,170652],{"class":36,"line":706},[34,170653,3229],{"class":181},[34,170655,170656],{"class":36,"line":715},[34,170657,62],{"emptyLinePlaceholder":61},[34,170659,170660],{"class":36,"line":725},[34,170661,170662],{"class":40},"    // Constructor property promotion (PHP 8+)\n",[34,170664,170665,170667,170669,170671],{"class":36,"line":734},[34,170666,34159],{"class":580},[34,170668,8037],{"class":580},[34,170670,170230],{"class":50},[34,170672,1882],{"class":181},[34,170674,170675,170677,170679],{"class":36,"line":742},[34,170676,170237],{"class":580},[34,170678,680],{"class":580},[34,170680,170681],{"class":181}," $name,\n",[34,170683,170684,170687,170689],{"class":36,"line":748},[34,170685,170686],{"class":580},"        private",[34,170688,25160],{"class":580},[34,170690,170691],{"class":181}," $age\n",[34,170693,170694],{"class":36,"line":754},[34,170695,170261],{"class":181},[34,170697,170698],{"class":36,"line":759},[34,170699,62],{"emptyLinePlaceholder":61},[34,170701,170702],{"class":36,"line":771},[34,170703,170704],{"class":40},"    // Methods\n",[34,170706,170707,170709,170711,170713,170715,170717,170719],{"class":36,"line":794},[34,170708,34159],{"class":580},[34,170710,8037],{"class":580},[34,170712,11047],{"class":47},[34,170714,1546],{"class":181},[34,170716,165],{"class":580},[34,170718,680],{"class":580},[34,170720,661],{"class":181},[34,170722,170723,170725,170728,170730,170732,170734,170737],{"class":36,"line":824},[34,170724,13895],{"class":580},[34,170726,170727],{"class":54}," \"Hello, {",[34,170729,135791],{"class":50},[34,170731,24863],{"class":580},[34,170733,178],{"class":181},[34,170735,170736],{"class":54},"}!\"",[34,170738,593],{"class":181},[34,170740,170741],{"class":36,"line":830},[34,170742,3229],{"class":181},[34,170744,170745],{"class":36,"line":839},[34,170746,62],{"emptyLinePlaceholder":61},[34,170748,170749],{"class":36,"line":854},[34,170750,170751],{"class":40},"    // Static method\n",[34,170753,170754,170756,170758,170760,170763,170765,170767,170769],{"class":36,"line":860},[34,170755,34159],{"class":580},[34,170757,51421],{"class":580},[34,170759,8037],{"class":580},[34,170761,170762],{"class":47}," getCount",[34,170764,1546],{"class":181},[34,170766,165],{"class":580},[34,170768,25160],{"class":580},[34,170770,661],{"class":181},[34,170772,170773,170775,170778],{"class":36,"line":865},[34,170774,13895],{"class":580},[34,170776,170777],{"class":580}," self::",[34,170779,170780],{"class":181},"$count;\n",[34,170782,170783],{"class":36,"line":870},[34,170784,3229],{"class":181},[34,170786,170787],{"class":36,"line":876},[34,170788,62],{"emptyLinePlaceholder":61},[34,170790,170791],{"class":36,"line":885},[34,170792,170793],{"class":40},"    // Getter/Setter\n",[34,170795,170796,170798,170800,170803,170805,170807,170809],{"class":36,"line":895},[34,170797,34159],{"class":580},[34,170799,8037],{"class":580},[34,170801,170802],{"class":47}," getAge",[34,170804,1546],{"class":181},[34,170806,165],{"class":580},[34,170808,25160],{"class":580},[34,170810,661],{"class":181},[34,170812,170813,170815,170818,170820],{"class":36,"line":904},[34,170814,13895],{"class":580},[34,170816,170817],{"class":50}," $this",[34,170819,24863],{"class":580},[34,170821,170822],{"class":181},"age;\n",[34,170824,170825],{"class":36,"line":915},[34,170826,3229],{"class":181},[34,170828,170829],{"class":36,"line":927},[34,170830,62],{"emptyLinePlaceholder":61},[34,170832,170833,170835,170837,170840,170842,170844,170847,170849,170851],{"class":36,"line":932},[34,170834,34159],{"class":580},[34,170836,8037],{"class":580},[34,170838,170839],{"class":47}," setAge",[34,170841,1607],{"class":181},[34,170843,17772],{"class":580},[34,170845,170846],{"class":181}," $age)",[34,170848,165],{"class":580},[34,170850,31514],{"class":580},[34,170852,661],{"class":181},[34,170854,170855,170857,170859,170861,170863],{"class":36,"line":944},[34,170856,170617],{"class":50},[34,170858,24863],{"class":580},[34,170860,24879],{"class":181},[34,170862,1301],{"class":580},[34,170864,170558],{"class":181},[34,170866,170867],{"class":36,"line":966},[34,170868,3229],{"class":181},[34,170870,170871],{"class":36,"line":1948},[34,170872,693],{"class":181},[34,170874,170875],{"class":36,"line":1953},[34,170876,62],{"emptyLinePlaceholder":61},[34,170878,170879],{"class":36,"line":3616},[34,170880,1113],{"class":40},[34,170882,170883,170886,170888,170890,170892,170894,170896,170898,170900],{"class":36,"line":3622},[34,170884,170885],{"class":181},"$user ",[34,170887,1301],{"class":580},[34,170889,809],{"class":580},[34,170891,3950],{"class":50},[34,170893,1607],{"class":181},[34,170895,21650],{"class":54},[34,170897,1798],{"class":181},[34,170899,17625],{"class":50},[34,170901,1586],{"class":181},[34,170903,170904,170906,170909,170911,170913],{"class":36,"line":3642},[34,170905,10120],{"class":50},[34,170907,170908],{"class":181}," $user",[34,170910,24863],{"class":580},[34,170912,11011],{"class":47},[34,170914,851],{"class":181},[34,170916,170917,170919,170921,170923],{"class":36,"line":3657},[34,170918,10120],{"class":50},[34,170920,3950],{"class":50},[34,170922,30110],{"class":580},[34,170924,170780],{"class":181},[388,170926,170927],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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);}",{"title":30,"searchDepth":44,"depth":44,"links":170929},[170930],{"id":30050,"depth":44,"text":30045},"Classes & Objects in PHP.",{},"/php/classes-objects",{"title":30045,"description":170931},"php/classes-objects",[139955,46870,38615,15678],"Fyj38NjszTHTDP5nb1Gn9_G7OZ6Bzu36MHJ-CJq0rWs",{"id":170939,"title":170940,"body":170941,"date":402,"description":171283,"extension":404,"meta":171284,"navigation":61,"order":71,"path":171285,"seo":171286,"stem":171287,"subject":139955,"tags":171288,"__hash__":171289},"topics/php/control-structures.md","Control Structures",{"type":8,"value":170942,"toc":171280},[170943,170946,171278],[11,170944,170940],{"id":170945},"control-structures",[25,170947,170949],{"className":139953,"code":170948,"language":139955,"meta":30,"style":30},"\u003C?php\n// If/else\nif ($age >= 18) {\n    echo \"Adult\";\n} elseif ($age >= 13) {\n    echo \"Teen\";\n} else {\n    echo \"Child\";\n}\n\n// Ternary operator\n$status = $age >= 18 ? \"adult\" : \"minor\";\n\n// Null coalescing\n$name = $user[\"name\"] ?? \"Guest\";\n\n// Null coalescing assignment (PHP 7.4+)\n$name ??= \"Default\";\n\n// Nullsafe operator (PHP 8+)\n$country = $user?->address?->country;\n\n// Match expression (PHP 8+)\n$result = match($status) {\n    \"active\" => \"User is active\",\n    \"pending\" => \"User is pending\",\n    default => \"Unknown status\"\n};\n\n// Switch\nswitch ($day) {\n    case \"Monday\":\n        echo \"Start of week\";\n        break;\n    case \"Friday\":\n        echo \"End of week\";\n        break;\n    default:\n        echo \"Mid week\";\n}\n",[20,170950,170951,170957,170962,170975,170985,170999,171008,171016,171025,171029,171033,171037,171063,171067,171072,171093,171097,171102,171112,171116,171121,171141,171145,171150,171163,171175,171187,171196,171200,171204,171208,171215,171223,171231,171237,171245,171253,171259,171265,171274],{"__ignoreMap":30},[34,170952,170953,170955],{"class":36,"line":37},[34,170954,169799],{"class":580},[34,170956,169802],{"class":50},[34,170958,170959],{"class":36,"line":44},[34,170960,170961],{"class":40},"// If/else\n",[34,170963,170964,170966,170969,170971,170973],{"class":36,"line":58},[34,170965,10383],{"class":580},[34,170967,170968],{"class":181}," ($age ",[34,170970,18401],{"class":580},[34,170972,18845],{"class":50},[34,170974,2416],{"class":181},[34,170976,170977,170980,170983],{"class":36,"line":65},[34,170978,170979],{"class":50},"    echo",[34,170981,170982],{"class":54}," \"Adult\"",[34,170984,593],{"class":181},[34,170986,170987,170989,170991,170993,170995,170997],{"class":36,"line":71},[34,170988,2276],{"class":181},[34,170990,141641],{"class":580},[34,170992,170968],{"class":181},[34,170994,18401],{"class":580},[34,170996,18881],{"class":50},[34,170998,2416],{"class":181},[34,171000,171001,171003,171006],{"class":36,"line":77},[34,171002,170979],{"class":50},[34,171004,171005],{"class":54}," \"Teen\"",[34,171007,593],{"class":181},[34,171009,171010,171012,171014],{"class":36,"line":82},[34,171011,2276],{"class":181},[34,171013,18871],{"class":580},[34,171015,661],{"class":181},[34,171017,171018,171020,171023],{"class":36,"line":88},[34,171019,170979],{"class":50},[34,171021,171022],{"class":54}," \"Child\"",[34,171024,593],{"class":181},[34,171026,171027],{"class":36,"line":242},[34,171028,693],{"class":181},[34,171030,171031],{"class":36,"line":250},[34,171032,62],{"emptyLinePlaceholder":61},[34,171034,171035],{"class":36,"line":263},[34,171036,18934],{"class":40},[34,171038,171039,171042,171044,171047,171049,171051,171053,171056,171058,171061],{"class":36,"line":275},[34,171040,171041],{"class":181},"$status ",[34,171043,1301],{"class":580},[34,171045,171046],{"class":181}," $age ",[34,171048,18401],{"class":580},[34,171050,18845],{"class":50},[34,171052,131598],{"class":580},[34,171054,171055],{"class":54}," \"adult\"",[34,171057,64223],{"class":580},[34,171059,171060],{"class":54}," \"minor\"",[34,171062,593],{"class":181},[34,171064,171065],{"class":36,"line":700},[34,171066,62],{"emptyLinePlaceholder":61},[34,171068,171069],{"class":36,"line":706},[34,171070,171071],{"class":40},"// Null coalescing\n",[34,171073,171074,171077,171079,171082,171084,171086,171088,171091],{"class":36,"line":715},[34,171075,171076],{"class":181},"$name ",[34,171078,1301],{"class":580},[34,171080,171081],{"class":181}," $user[",[34,171083,4650],{"class":54},[34,171085,17799],{"class":181},[34,171087,34195],{"class":580},[34,171089,171090],{"class":54}," \"Guest\"",[34,171092,593],{"class":181},[34,171094,171095],{"class":36,"line":725},[34,171096,62],{"emptyLinePlaceholder":61},[34,171098,171099],{"class":36,"line":734},[34,171100,171101],{"class":40},"// Null coalescing assignment (PHP 7.4+)\n",[34,171103,171104,171106,171108,171110],{"class":36,"line":742},[34,171105,171076],{"class":181},[34,171107,37386],{"class":580},[34,171109,37389],{"class":54},[34,171111,593],{"class":181},[34,171113,171114],{"class":36,"line":748},[34,171115,62],{"emptyLinePlaceholder":61},[34,171117,171118],{"class":36,"line":754},[34,171119,171120],{"class":40},"// Nullsafe operator (PHP 8+)\n",[34,171122,171123,171126,171128,171130,171133,171136,171138],{"class":36,"line":759},[34,171124,171125],{"class":181},"$country ",[34,171127,1301],{"class":580},[34,171129,170908],{"class":181},[34,171131,171132],{"class":580},"?->",[34,171134,171135],{"class":181},"address",[34,171137,171132],{"class":580},[34,171139,171140],{"class":181},"country;\n",[34,171142,171143],{"class":36,"line":771},[34,171144,62],{"emptyLinePlaceholder":61},[34,171146,171147],{"class":36,"line":794},[34,171148,171149],{"class":40},"// Match expression (PHP 8+)\n",[34,171151,171152,171155,171157,171160],{"class":36,"line":824},[34,171153,171154],{"class":181},"$result ",[34,171156,1301],{"class":580},[34,171158,171159],{"class":580}," match",[34,171161,171162],{"class":181},"($status) {\n",[34,171164,171165,171168,171170,171173],{"class":36,"line":830},[34,171166,171167],{"class":54},"    \"active\"",[34,171169,1895],{"class":580},[34,171171,171172],{"class":54}," \"User is active\"",[34,171174,624],{"class":181},[34,171176,171177,171180,171182,171185],{"class":36,"line":839},[34,171178,171179],{"class":54},"    \"pending\"",[34,171181,1895],{"class":580},[34,171183,171184],{"class":54}," \"User is pending\"",[34,171186,624],{"class":181},[34,171188,171189,171191,171193],{"class":36,"line":854},[34,171190,19051],{"class":580},[34,171192,1895],{"class":580},[34,171194,171195],{"class":54}," \"Unknown status\"\n",[34,171197,171198],{"class":36,"line":860},[34,171199,17632],{"class":181},[34,171201,171202],{"class":36,"line":865},[34,171203,62],{"emptyLinePlaceholder":61},[34,171205,171206],{"class":36,"line":870},[34,171207,30682],{"class":40},[34,171209,171210,171212],{"class":36,"line":876},[34,171211,18978],{"class":580},[34,171213,171214],{"class":181}," ($day) {\n",[34,171216,171217,171219,171221],{"class":36,"line":885},[34,171218,18986],{"class":580},[34,171220,104768],{"class":54},[34,171222,193],{"class":181},[34,171224,171225,171227,171229],{"class":36,"line":895},[34,171226,170466],{"class":50},[34,171228,34751],{"class":54},[34,171230,593],{"class":181},[34,171232,171233,171235],{"class":36,"line":904},[34,171234,19011],{"class":580},[34,171236,593],{"class":181},[34,171238,171239,171241,171243],{"class":36,"line":915},[34,171240,18986],{"class":580},[34,171242,104790],{"class":54},[34,171244,193],{"class":181},[34,171246,171247,171249,171251],{"class":36,"line":927},[34,171248,170466],{"class":50},[34,171250,34763],{"class":54},[34,171252,593],{"class":181},[34,171254,171255,171257],{"class":36,"line":932},[34,171256,19011],{"class":580},[34,171258,593],{"class":181},[34,171260,171261,171263],{"class":36,"line":944},[34,171262,19051],{"class":580},[34,171264,193],{"class":181},[34,171266,171267,171269,171272],{"class":36,"line":966},[34,171268,170466],{"class":50},[34,171270,171271],{"class":54}," \"Mid week\"",[34,171273,593],{"class":181},[34,171275,171276],{"class":36,"line":1948},[34,171277,693],{"class":181},[388,171279,170110],{},{"title":30,"searchDepth":44,"depth":44,"links":171281},[171282],{"id":170945,"depth":44,"text":170940},"Control Structures in PHP.",{},"/php/control-structures",{"title":170940,"description":171283},"php/control-structures",[139955,46870,38615,15678],"v7xjbz2J1c057KO8_o_62ieGF1DbdVYWsJkOQTHqKD0",{"id":171291,"title":171292,"body":171293,"date":402,"description":171667,"extension":404,"meta":171668,"navigation":61,"order":706,"path":171669,"seo":171670,"stem":171671,"subject":139955,"tags":171672,"__hash__":171673},"topics/php/database-pdo.md","Database (PDO)",{"type":8,"value":171294,"toc":171664},[171295,171298,171662],[11,171296,171292],{"id":171297},"database-pdo",[25,171299,171301],{"className":139953,"code":171300,"language":139955,"meta":30,"style":30},"\u003C?php\n// Connect\n$pdo = new PDO(\n    \"mysql:host=localhost;dbname=mydb\",\n    \"username\",\n    \"password\",\n    [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]\n);\n\n// Prepared statements (prevents SQL injection)\n$stmt = $pdo->prepare(\"SELECT * FROM users WHERE id = :id\");\n$stmt->execute([\"id\" => $userId]);\n$user = $stmt->fetch(PDO::FETCH_ASSOC);\n\n// Insert\n$stmt = $pdo->prepare(\"INSERT INTO users (name, email) VALUES (?, ?)\");\n$stmt->execute([$name, $email]);\n$lastId = $pdo->lastInsertId();\n\n// Fetch all\n$stmt = $pdo->query(\"SELECT * FROM users\");\n$users = $stmt->fetchAll(PDO::FETCH_ASSOC);\n\n// Transaction\n$pdo->beginTransaction();\ntry {\n    // queries...\n    $pdo->commit();\n} catch (Exception $e) {\n    $pdo->rollBack();\n}\n",[20,171302,171303,171309,171314,171328,171335,171342,171349,171372,171376,171380,171385,171422,171440,171464,171468,171473,171504,171515,171531,171535,171540,171568,171591,171595,171600,171612,171618,171623,171634,171647,171658],{"__ignoreMap":30},[34,171304,171305,171307],{"class":36,"line":37},[34,171306,169799],{"class":580},[34,171308,169802],{"class":50},[34,171310,171311],{"class":36,"line":44},[34,171312,171313],{"class":40},"// Connect\n",[34,171315,171316,171319,171321,171323,171326],{"class":36,"line":58},[34,171317,171318],{"class":181},"$pdo ",[34,171320,1301],{"class":580},[34,171322,809],{"class":580},[34,171324,171325],{"class":50}," PDO",[34,171327,1882],{"class":181},[34,171329,171330,171333],{"class":36,"line":65},[34,171331,171332],{"class":54},"    \"mysql:host=localhost;dbname=mydb\"",[34,171334,624],{"class":181},[34,171336,171337,171340],{"class":36,"line":71},[34,171338,171339],{"class":54},"    \"username\"",[34,171341,624],{"class":181},[34,171343,171344,171347],{"class":36,"line":77},[34,171345,171346],{"class":54},"    \"password\"",[34,171348,624],{"class":181},[34,171350,171351,171353,171356,171358,171361,171363,171365,171367,171370],{"class":36,"line":82},[34,171352,33545],{"class":181},[34,171354,171355],{"class":50},"PDO",[34,171357,30110],{"class":580},[34,171359,171360],{"class":50},"ATTR_ERRMODE",[34,171362,1895],{"class":580},[34,171364,171325],{"class":50},[34,171366,30110],{"class":580},[34,171368,171369],{"class":50},"ERRMODE_EXCEPTION",[34,171371,924],{"class":181},[34,171373,171374],{"class":36,"line":88},[34,171375,1586],{"class":181},[34,171377,171378],{"class":36,"line":242},[34,171379,62],{"emptyLinePlaceholder":61},[34,171381,171382],{"class":36,"line":250},[34,171383,171384],{"class":40},"// Prepared statements (prevents SQL injection)\n",[34,171386,171387,171390,171392,171395,171397,171399,171401,171403,171405,171407,171409,171411,171413,171415,171417,171420],{"class":36,"line":263},[34,171388,171389],{"class":181},"$stmt ",[34,171391,1301],{"class":580},[34,171393,171394],{"class":181}," $pdo",[34,171396,24863],{"class":580},[34,171398,17086],{"class":47},[34,171400,1607],{"class":181},[34,171402,10389],{"class":54},[34,171404,28529],{"class":580},[34,171406,18083],{"class":580},[34,171408,28534],{"class":580},[34,171410,28553],{"class":54},[34,171412,28604],{"class":580},[34,171414,28568],{"class":54},[34,171416,1301],{"class":580},[34,171418,171419],{"class":54}," :id\"",[34,171421,1586],{"class":181},[34,171423,171424,171427,171429,171431,171433,171435,171437],{"class":36,"line":275},[34,171425,171426],{"class":181},"$stmt",[34,171428,24863],{"class":580},[34,171430,73593],{"class":47},[34,171432,3593],{"class":181},[34,171434,58482],{"class":54},[34,171436,1895],{"class":580},[34,171438,171439],{"class":181}," $userId]);\n",[34,171441,171442,171444,171446,171449,171451,171453,171455,171457,171459,171462],{"class":36,"line":700},[34,171443,170885],{"class":181},[34,171445,1301],{"class":580},[34,171447,171448],{"class":181}," $stmt",[34,171450,24863],{"class":580},[34,171452,58875],{"class":47},[34,171454,1607],{"class":181},[34,171456,171355],{"class":50},[34,171458,30110],{"class":580},[34,171460,171461],{"class":50},"FETCH_ASSOC",[34,171463,1586],{"class":181},[34,171465,171466],{"class":36,"line":706},[34,171467,62],{"emptyLinePlaceholder":61},[34,171469,171470],{"class":36,"line":715},[34,171471,171472],{"class":40},"// Insert\n",[34,171474,171475,171477,171479,171481,171483,171485,171487,171489,171491,171493,171495,171497,171499,171502],{"class":36,"line":725},[34,171476,171389],{"class":181},[34,171478,1301],{"class":580},[34,171480,171394],{"class":181},[34,171482,24863],{"class":580},[34,171484,17086],{"class":47},[34,171486,1607],{"class":181},[34,171488,10389],{"class":54},[34,171490,28487],{"class":580},[34,171492,151413],{"class":54},[34,171494,178],{"class":580},[34,171496,151418],{"class":54},[34,171498,28498],{"class":580},[34,171500,171501],{"class":54}," (?, ?)\"",[34,171503,1586],{"class":181},[34,171505,171506,171508,171510,171512],{"class":36,"line":734},[34,171507,171426],{"class":181},[34,171509,24863],{"class":580},[34,171511,73593],{"class":47},[34,171513,171514],{"class":181},"([$name, $email]);\n",[34,171516,171517,171520,171522,171524,171526,171529],{"class":36,"line":742},[34,171518,171519],{"class":181},"$lastId ",[34,171521,1301],{"class":580},[34,171523,171394],{"class":181},[34,171525,24863],{"class":580},[34,171527,171528],{"class":47},"lastInsertId",[34,171530,851],{"class":181},[34,171532,171533],{"class":36,"line":748},[34,171534,62],{"emptyLinePlaceholder":61},[34,171536,171537],{"class":36,"line":754},[34,171538,171539],{"class":40},"// Fetch all\n",[34,171541,171542,171544,171546,171548,171550,171553,171555,171557,171559,171561,171563,171566],{"class":36,"line":759},[34,171543,171389],{"class":181},[34,171545,1301],{"class":580},[34,171547,171394],{"class":181},[34,171549,24863],{"class":580},[34,171551,171552],{"class":47},"query",[34,171554,1607],{"class":181},[34,171556,10389],{"class":54},[34,171558,28529],{"class":580},[34,171560,18083],{"class":580},[34,171562,28534],{"class":580},[34,171564,171565],{"class":54}," users\"",[34,171567,1586],{"class":181},[34,171569,171570,171572,171574,171576,171578,171581,171583,171585,171587,171589],{"class":36,"line":771},[34,171571,140254],{"class":181},[34,171573,1301],{"class":580},[34,171575,171448],{"class":181},[34,171577,24863],{"class":580},[34,171579,171580],{"class":47},"fetchAll",[34,171582,1607],{"class":181},[34,171584,171355],{"class":50},[34,171586,30110],{"class":580},[34,171588,171461],{"class":50},[34,171590,1586],{"class":181},[34,171592,171593],{"class":36,"line":794},[34,171594,62],{"emptyLinePlaceholder":61},[34,171596,171597],{"class":36,"line":824},[34,171598,171599],{"class":40},"// Transaction\n",[34,171601,171602,171605,171607,171610],{"class":36,"line":830},[34,171603,171604],{"class":181},"$pdo",[34,171606,24863],{"class":580},[34,171608,171609],{"class":47},"beginTransaction",[34,171611,851],{"class":181},[34,171613,171614,171616],{"class":36,"line":839},[34,171615,30813],{"class":580},[34,171617,661],{"class":181},[34,171619,171620],{"class":36,"line":854},[34,171621,171622],{"class":40},"    // queries...\n",[34,171624,171625,171628,171630,171632],{"class":36,"line":860},[34,171626,171627],{"class":181},"    $pdo",[34,171629,24863],{"class":580},[34,171631,102685],{"class":47},[34,171633,851],{"class":181},[34,171635,171636,171638,171640,171642,171644],{"class":36,"line":865},[34,171637,2276],{"class":181},[34,171639,30851],{"class":580},[34,171641,3204],{"class":181},[34,171643,35345],{"class":50},[34,171645,171646],{"class":181}," $e) {\n",[34,171648,171649,171651,171653,171656],{"class":36,"line":870},[34,171650,171627],{"class":181},[34,171652,24863],{"class":580},[34,171654,171655],{"class":47},"rollBack",[34,171657,851],{"class":181},[34,171659,171660],{"class":36,"line":876},[34,171661,693],{"class":181},[388,171663,170501],{},{"title":30,"searchDepth":44,"depth":44,"links":171665},[171666],{"id":171297,"depth":44,"text":171292},"Database (PDO) in PHP.",{},"/php/database-pdo",{"title":171292,"description":171667},"php/database-pdo",[139955,46870,38615,15678],"z45cuvPRhCLXE18DSARqBFbhbY4-l6dENLPbgKPmTOg",{"id":171675,"title":171676,"body":171677,"date":402,"description":172181,"extension":404,"meta":172182,"navigation":61,"order":715,"path":172183,"seo":172184,"stem":172185,"subject":139955,"tags":172186,"__hash__":172187},"topics/php/date-time.md","Date & Time",{"type":8,"value":171678,"toc":172178},[171679,171682,172176],[11,171680,171676],{"id":171681},"date-time",[25,171683,171685],{"className":139953,"code":171684,"language":139955,"meta":30,"style":30},"\u003C?php\n// Current date/time\n$now = new DateTime();\n$now = new DateTime(\"now\");\n$timestamp = time();\n\n// Create from string\n$date = new DateTime(\"2024-01-15\");\n$date = new DateTime(\"next Monday\");\n$date = DateTime::createFromFormat(\"d/m/Y\", \"15/01/2024\");\n\n// Format date\n$date->format(\"Y-m-d\");         // 2024-01-15\n$date->format(\"F j, Y\");        // January 15, 2024\n$date->format(\"H:i:s\");         // 14:30:00\ndate(\"Y-m-d H:i:s\", $timestamp);\n\n// Modify date\n$date->modify(\"+1 day\");\n$date->modify(\"-2 weeks\");\n$date->add(new DateInterval(\"P1M\")); // Add 1 month\n$date->sub(new DateInterval(\"P1Y\")); // Subtract 1 year\n\n// Date difference\n$date1 = new DateTime(\"2024-01-01\");\n$date2 = new DateTime(\"2024-12-31\");\n$diff = $date1->diff($date2);\necho $diff->days;               // Total days\necho $diff->format(\"%y years, %m months, %d days\");\n\n// Timezone\n$date = new DateTime(\"now\", new DateTimeZone(\"America/New_York\"));\n$date->setTimezone(new DateTimeZone(\"UTC\"));\n\n// Immutable (recommended)\n$date = new DateTimeImmutable(\"now\");\n$newDate = $date->modify(\"+1 day\"); // Returns new instance\n",[20,171686,171687,171693,171698,171712,171729,171740,171744,171749,171766,171783,171808,171812,171817,171836,171854,171872,171884,171888,171893,171909,171924,171949,171973,171977,171982,172000,172018,172036,172051,172068,172072,172077,172105,172127,172131,172136,172153],{"__ignoreMap":30},[34,171688,171689,171691],{"class":36,"line":37},[34,171690,169799],{"class":580},[34,171692,169802],{"class":50},[34,171694,171695],{"class":36,"line":44},[34,171696,171697],{"class":40},"// Current date/time\n",[34,171699,171700,171703,171705,171707,171710],{"class":36,"line":58},[34,171701,171702],{"class":181},"$now ",[34,171704,1301],{"class":580},[34,171706,809],{"class":580},[34,171708,171709],{"class":50}," DateTime",[34,171711,851],{"class":181},[34,171713,171714,171716,171718,171720,171722,171724,171727],{"class":36,"line":65},[34,171715,171702],{"class":181},[34,171717,1301],{"class":580},[34,171719,809],{"class":580},[34,171721,171709],{"class":50},[34,171723,1607],{"class":181},[34,171725,171726],{"class":54},"\"now\"",[34,171728,1586],{"class":181},[34,171730,171731,171734,171736,171738],{"class":36,"line":71},[34,171732,171733],{"class":181},"$timestamp ",[34,171735,1301],{"class":580},[34,171737,24247],{"class":50},[34,171739,851],{"class":181},[34,171741,171742],{"class":36,"line":77},[34,171743,62],{"emptyLinePlaceholder":61},[34,171745,171746],{"class":36,"line":82},[34,171747,171748],{"class":40},"// Create from string\n",[34,171750,171751,171754,171756,171758,171760,171762,171764],{"class":36,"line":88},[34,171752,171753],{"class":181},"$date ",[34,171755,1301],{"class":580},[34,171757,809],{"class":580},[34,171759,171709],{"class":50},[34,171761,1607],{"class":181},[34,171763,119615],{"class":54},[34,171765,1586],{"class":181},[34,171767,171768,171770,171772,171774,171776,171778,171781],{"class":36,"line":242},[34,171769,171753],{"class":181},[34,171771,1301],{"class":580},[34,171773,809],{"class":580},[34,171775,171709],{"class":50},[34,171777,1607],{"class":181},[34,171779,171780],{"class":54},"\"next Monday\"",[34,171782,1586],{"class":181},[34,171784,171785,171787,171789,171791,171793,171796,171798,171801,171803,171806],{"class":36,"line":250},[34,171786,171753],{"class":181},[34,171788,1301],{"class":580},[34,171790,171709],{"class":50},[34,171792,30110],{"class":580},[34,171794,171795],{"class":47},"createFromFormat",[34,171797,1607],{"class":181},[34,171799,171800],{"class":54},"\"d/m/Y\"",[34,171802,1798],{"class":181},[34,171804,171805],{"class":54},"\"15/01/2024\"",[34,171807,1586],{"class":181},[34,171809,171810],{"class":36,"line":263},[34,171811,62],{"emptyLinePlaceholder":61},[34,171813,171814],{"class":36,"line":275},[34,171815,171816],{"class":40},"// Format date\n",[34,171818,171819,171822,171824,171826,171828,171831,171833],{"class":36,"line":700},[34,171820,171821],{"class":181},"$date",[34,171823,24863],{"class":580},[34,171825,124467],{"class":47},[34,171827,1607],{"class":181},[34,171829,171830],{"class":54},"\"Y-m-d\"",[34,171832,36676],{"class":181},[34,171834,171835],{"class":40},"// 2024-01-15\n",[34,171837,171838,171840,171842,171844,171846,171849,171851],{"class":36,"line":706},[34,171839,171821],{"class":181},[34,171841,24863],{"class":580},[34,171843,124467],{"class":47},[34,171845,1607],{"class":181},[34,171847,171848],{"class":54},"\"F j, Y\"",[34,171850,38821],{"class":181},[34,171852,171853],{"class":40},"// January 15, 2024\n",[34,171855,171856,171858,171860,171862,171864,171867,171869],{"class":36,"line":715},[34,171857,171821],{"class":181},[34,171859,24863],{"class":580},[34,171861,124467],{"class":47},[34,171863,1607],{"class":181},[34,171865,171866],{"class":54},"\"H:i:s\"",[34,171868,36676],{"class":181},[34,171870,171871],{"class":40},"// 14:30:00\n",[34,171873,171874,171876,171878,171881],{"class":36,"line":725},[34,171875,13390],{"class":50},[34,171877,1607],{"class":181},[34,171879,171880],{"class":54},"\"Y-m-d H:i:s\"",[34,171882,171883],{"class":181},", $timestamp);\n",[34,171885,171886],{"class":36,"line":734},[34,171887,62],{"emptyLinePlaceholder":61},[34,171889,171890],{"class":36,"line":742},[34,171891,171892],{"class":40},"// Modify date\n",[34,171894,171895,171897,171899,171902,171904,171907],{"class":36,"line":748},[34,171896,171821],{"class":181},[34,171898,24863],{"class":580},[34,171900,171901],{"class":47},"modify",[34,171903,1607],{"class":181},[34,171905,171906],{"class":54},"\"+1 day\"",[34,171908,1586],{"class":181},[34,171910,171911,171913,171915,171917,171919,171922],{"class":36,"line":754},[34,171912,171821],{"class":181},[34,171914,24863],{"class":580},[34,171916,171901],{"class":47},[34,171918,1607],{"class":181},[34,171920,171921],{"class":54},"\"-2 weeks\"",[34,171923,1586],{"class":181},[34,171925,171926,171928,171930,171932,171934,171936,171939,171941,171944,171946],{"class":36,"line":759},[34,171927,171821],{"class":181},[34,171929,24863],{"class":580},[34,171931,11093],{"class":47},[34,171933,1607],{"class":181},[34,171935,3143],{"class":580},[34,171937,171938],{"class":50}," DateInterval",[34,171940,1607],{"class":181},[34,171942,171943],{"class":54},"\"P1M\"",[34,171945,11931],{"class":181},[34,171947,171948],{"class":40},"// Add 1 month\n",[34,171950,171951,171953,171955,171957,171959,171961,171963,171965,171968,171970],{"class":36,"line":771},[34,171952,171821],{"class":181},[34,171954,24863],{"class":580},[34,171956,119454],{"class":47},[34,171958,1607],{"class":181},[34,171960,3143],{"class":580},[34,171962,171938],{"class":50},[34,171964,1607],{"class":181},[34,171966,171967],{"class":54},"\"P1Y\"",[34,171969,11931],{"class":181},[34,171971,171972],{"class":40},"// Subtract 1 year\n",[34,171974,171975],{"class":36,"line":794},[34,171976,62],{"emptyLinePlaceholder":61},[34,171978,171979],{"class":36,"line":824},[34,171980,171981],{"class":40},"// Date difference\n",[34,171983,171984,171987,171989,171991,171993,171995,171998],{"class":36,"line":830},[34,171985,171986],{"class":181},"$date1 ",[34,171988,1301],{"class":580},[34,171990,809],{"class":580},[34,171992,171709],{"class":50},[34,171994,1607],{"class":181},[34,171996,171997],{"class":54},"\"2024-01-01\"",[34,171999,1586],{"class":181},[34,172001,172002,172005,172007,172009,172011,172013,172016],{"class":36,"line":839},[34,172003,172004],{"class":181},"$date2 ",[34,172006,1301],{"class":580},[34,172008,809],{"class":580},[34,172010,171709],{"class":50},[34,172012,1607],{"class":181},[34,172014,172015],{"class":54},"\"2024-12-31\"",[34,172017,1586],{"class":181},[34,172019,172020,172023,172025,172028,172030,172033],{"class":36,"line":854},[34,172021,172022],{"class":181},"$diff ",[34,172024,1301],{"class":580},[34,172026,172027],{"class":181}," $date1",[34,172029,24863],{"class":580},[34,172031,172032],{"class":47},"diff",[34,172034,172035],{"class":181},"($date2);\n",[34,172037,172038,172040,172043,172045,172048],{"class":36,"line":860},[34,172039,10120],{"class":50},[34,172041,172042],{"class":181}," $diff",[34,172044,24863],{"class":580},[34,172046,172047],{"class":181},"days;               ",[34,172049,172050],{"class":40},"// Total days\n",[34,172052,172053,172055,172057,172059,172061,172063,172066],{"class":36,"line":865},[34,172054,10120],{"class":50},[34,172056,172042],{"class":181},[34,172058,24863],{"class":580},[34,172060,124467],{"class":47},[34,172062,1607],{"class":181},[34,172064,172065],{"class":54},"\"%y years, %m months, %d days\"",[34,172067,1586],{"class":181},[34,172069,172070],{"class":36,"line":870},[34,172071,62],{"emptyLinePlaceholder":61},[34,172073,172074],{"class":36,"line":876},[34,172075,172076],{"class":40},"// Timezone\n",[34,172078,172079,172081,172083,172085,172087,172089,172091,172093,172095,172098,172100,172103],{"class":36,"line":885},[34,172080,171753],{"class":181},[34,172082,1301],{"class":580},[34,172084,809],{"class":580},[34,172086,171709],{"class":50},[34,172088,1607],{"class":181},[34,172090,171726],{"class":54},[34,172092,1798],{"class":181},[34,172094,3143],{"class":580},[34,172096,172097],{"class":50}," DateTimeZone",[34,172099,1607],{"class":181},[34,172101,172102],{"class":54},"\"America/New_York\"",[34,172104,15223],{"class":181},[34,172106,172107,172109,172111,172114,172116,172118,172120,172122,172125],{"class":36,"line":895},[34,172108,171821],{"class":181},[34,172110,24863],{"class":580},[34,172112,172113],{"class":47},"setTimezone",[34,172115,1607],{"class":181},[34,172117,3143],{"class":580},[34,172119,172097],{"class":50},[34,172121,1607],{"class":181},[34,172123,172124],{"class":54},"\"UTC\"",[34,172126,15223],{"class":181},[34,172128,172129],{"class":36,"line":904},[34,172130,62],{"emptyLinePlaceholder":61},[34,172132,172133],{"class":36,"line":915},[34,172134,172135],{"class":40},"// Immutable (recommended)\n",[34,172137,172138,172140,172142,172144,172147,172149,172151],{"class":36,"line":927},[34,172139,171753],{"class":181},[34,172141,1301],{"class":580},[34,172143,809],{"class":580},[34,172145,172146],{"class":50}," DateTimeImmutable",[34,172148,1607],{"class":181},[34,172150,171726],{"class":54},[34,172152,1586],{"class":181},[34,172154,172155,172158,172160,172163,172165,172167,172169,172171,172173],{"class":36,"line":932},[34,172156,172157],{"class":181},"$newDate ",[34,172159,1301],{"class":580},[34,172161,172162],{"class":181}," $date",[34,172164,24863],{"class":580},[34,172166,171901],{"class":47},[34,172168,1607],{"class":181},[34,172170,171906],{"class":54},[34,172172,8260],{"class":181},[34,172174,172175],{"class":40},"// Returns new instance\n",[388,172177,170501],{},{"title":30,"searchDepth":44,"depth":44,"links":172179},[172180],{"id":171681,"depth":44,"text":171676},"Date & Time in PHP.",{},"/php/date-time",{"title":171676,"description":172181},"php/date-time",[139955,46870,38615,15678],"DijhNQBz1UbZZGKpg_gh6TYKSYi6iE7u8CPEG4EB4sE",{"id":172189,"title":18679,"body":172190,"date":402,"description":172465,"extension":404,"meta":172466,"navigation":61,"order":839,"path":172467,"seo":172468,"stem":172469,"subject":139955,"tags":172470,"__hash__":172471},"topics/php/debugging.md",{"type":8,"value":172191,"toc":172462},[172192,172194,172460],[11,172193,18679],{"id":120105},[25,172195,172197],{"className":139953,"code":172196,"language":139955,"meta":30,"style":30},"\u003C?php\n// Output debugging\nvar_dump($variable);      // Type and value\nprint_r($array);          // Human-readable arrays\nvar_export($data, true);  // Valid PHP code\n\n// Error reporting\nerror_reporting(E_ALL);\nini_set(\"display_errors\", \"1\");\n\n// Custom error handler\nset_error_handler(function($errno, $errstr, $errfile, $errline) {\n    throw new ErrorException($errstr, 0, $errno, $errfile, $errline);\n});\n\n// Assertions\nassert($value > 0, \"Value must be positive\");\n\n// Backtrace\ndebug_print_backtrace();\n$trace = debug_backtrace();\n\n// Execution time\n$start = microtime(true);\n// ... code ...\n$elapsed = microtime(true) - $start;\n\n// Memory usage\nmemory_get_usage();       // Current memory\nmemory_get_peak_usage();  // Peak memory\n",[20,172198,172199,172205,172210,172221,172232,172247,172251,172256,172268,172284,172288,172293,172305,172322,172326,172330,172335,172352,172356,172361,172368,172380,172384,172389,172405,172410,172430,172434,172439,172450],{"__ignoreMap":30},[34,172200,172201,172203],{"class":36,"line":37},[34,172202,169799],{"class":580},[34,172204,169802],{"class":50},[34,172206,172207],{"class":36,"line":44},[34,172208,172209],{"class":40},"// Output debugging\n",[34,172211,172212,172215,172218],{"class":36,"line":58},[34,172213,172214],{"class":50},"var_dump",[34,172216,172217],{"class":181},"($variable);      ",[34,172219,172220],{"class":40},"// Type and value\n",[34,172222,172223,172226,172229],{"class":36,"line":65},[34,172224,172225],{"class":50},"print_r",[34,172227,172228],{"class":181},"($array);          ",[34,172230,172231],{"class":40},"// Human-readable arrays\n",[34,172233,172234,172237,172240,172242,172244],{"class":36,"line":71},[34,172235,172236],{"class":50},"var_export",[34,172238,172239],{"class":181},"($data, ",[34,172241,632],{"class":50},[34,172243,33489],{"class":181},[34,172245,172246],{"class":40},"// Valid PHP code\n",[34,172248,172249],{"class":36,"line":77},[34,172250,62],{"emptyLinePlaceholder":61},[34,172252,172253],{"class":36,"line":82},[34,172254,172255],{"class":40},"// Error reporting\n",[34,172257,172258,172261,172263,172266],{"class":36,"line":88},[34,172259,172260],{"class":50},"error_reporting",[34,172262,1607],{"class":181},[34,172264,172265],{"class":50},"E_ALL",[34,172267,1586],{"class":181},[34,172269,172270,172273,172275,172278,172280,172282],{"class":36,"line":242},[34,172271,172272],{"class":50},"ini_set",[34,172274,1607],{"class":181},[34,172276,172277],{"class":54},"\"display_errors\"",[34,172279,1798],{"class":181},[34,172281,116262],{"class":54},[34,172283,1586],{"class":181},[34,172285,172286],{"class":36,"line":250},[34,172287,62],{"emptyLinePlaceholder":61},[34,172289,172290],{"class":36,"line":263},[34,172291,172292],{"class":40},"// Custom error handler\n",[34,172294,172295,172298,172300,172302],{"class":36,"line":275},[34,172296,172297],{"class":50},"set_error_handler",[34,172299,1607],{"class":181},[34,172301,11044],{"class":580},[34,172303,172304],{"class":181},"($errno, $errstr, $errfile, $errline) {\n",[34,172306,172307,172309,172311,172314,172317,172319],{"class":36,"line":700},[34,172308,48916],{"class":580},[34,172310,809],{"class":580},[34,172312,172313],{"class":50}," ErrorException",[34,172315,172316],{"class":181},"($errstr, ",[34,172318,2773],{"class":50},[34,172320,172321],{"class":181},", $errno, $errfile, $errline);\n",[34,172323,172324],{"class":36,"line":706},[34,172325,14873],{"class":181},[34,172327,172328],{"class":36,"line":715},[34,172329,62],{"emptyLinePlaceholder":61},[34,172331,172332],{"class":36,"line":725},[34,172333,172334],{"class":40},"// Assertions\n",[34,172336,172337,172339,172342,172344,172346,172348,172350],{"class":36,"line":734},[34,172338,19953],{"class":50},[34,172340,172341],{"class":181},"($value ",[34,172343,5691],{"class":580},[34,172345,8070],{"class":50},[34,172347,1798],{"class":181},[34,172349,137551],{"class":54},[34,172351,1586],{"class":181},[34,172353,172354],{"class":36,"line":742},[34,172355,62],{"emptyLinePlaceholder":61},[34,172357,172358],{"class":36,"line":748},[34,172359,172360],{"class":40},"// Backtrace\n",[34,172362,172363,172366],{"class":36,"line":754},[34,172364,172365],{"class":50},"debug_print_backtrace",[34,172367,851],{"class":181},[34,172369,172370,172373,172375,172378],{"class":36,"line":759},[34,172371,172372],{"class":181},"$trace ",[34,172374,1301],{"class":580},[34,172376,172377],{"class":50}," debug_backtrace",[34,172379,851],{"class":181},[34,172381,172382],{"class":36,"line":771},[34,172383,62],{"emptyLinePlaceholder":61},[34,172385,172386],{"class":36,"line":794},[34,172387,172388],{"class":40},"// Execution time\n",[34,172390,172391,172394,172396,172399,172401,172403],{"class":36,"line":824},[34,172392,172393],{"class":181},"$start ",[34,172395,1301],{"class":580},[34,172397,172398],{"class":50}," microtime",[34,172400,1607],{"class":181},[34,172402,632],{"class":50},[34,172404,1586],{"class":181},[34,172406,172407],{"class":36,"line":830},[34,172408,172409],{"class":40},"// ... code ...\n",[34,172411,172412,172415,172417,172419,172421,172423,172425,172427],{"class":36,"line":839},[34,172413,172414],{"class":181},"$elapsed ",[34,172416,1301],{"class":580},[34,172418,172398],{"class":50},[34,172420,1607],{"class":181},[34,172422,632],{"class":50},[34,172424,4817],{"class":181},[34,172426,22062],{"class":580},[34,172428,172429],{"class":181}," $start;\n",[34,172431,172432],{"class":36,"line":854},[34,172433,62],{"emptyLinePlaceholder":61},[34,172435,172436],{"class":36,"line":860},[34,172437,172438],{"class":40},"// Memory usage\n",[34,172440,172441,172444,172447],{"class":36,"line":865},[34,172442,172443],{"class":50},"memory_get_usage",[34,172445,172446],{"class":181},"();       ",[34,172448,172449],{"class":40},"// Current memory\n",[34,172451,172452,172455,172457],{"class":36,"line":870},[34,172453,172454],{"class":50},"memory_get_peak_usage",[34,172456,123737],{"class":181},[34,172458,172459],{"class":40},"// Peak memory\n",[388,172461,170110],{},{"title":30,"searchDepth":44,"depth":44,"links":172463},[172464],{"id":120105,"depth":44,"text":18679},"Debugging in PHP.",{},"/php/debugging",{"title":18679,"description":172465},"php/debugging",[139955,46870,38615,15678],"s1EnFlAtu1uB21DwH4uU1NJ84_UX081-UKe3GZCoHJc",{"id":172473,"title":172474,"body":172475,"date":402,"description":172795,"extension":404,"meta":172796,"navigation":61,"order":824,"path":172797,"seo":172798,"stem":172799,"subject":139955,"tags":172800,"__hash__":172801},"topics/php/encryption.md","Encryption",{"type":8,"value":172476,"toc":172792},[172477,172480,172789],[11,172478,172474],{"id":172479},"encryption",[25,172481,172483],{"className":139953,"code":172482,"language":139955,"meta":30,"style":30},"\u003C?php\n// Symmetric encryption (OpenSSL)\n$key = random_bytes(32);  // 256-bit key\n$iv = random_bytes(16);   // Initialization vector\n\n// Encrypt\n$encrypted = openssl_encrypt(\n    $plaintext,\n    \"AES-256-CBC\",\n    $key,\n    OPENSSL_RAW_DATA,\n    $iv\n);\n$encoded = base64_encode($iv . $encrypted);\n\n// Decrypt\n$decoded = base64_decode($encoded);\n$iv = substr($decoded, 0, 16);\n$encrypted = substr($decoded, 16);\n$plaintext = openssl_decrypt(\n    $encrypted,\n    \"AES-256-CBC\",\n    $key,\n    OPENSSL_RAW_DATA,\n    $iv\n);\n\n// Hashing\n$hash = hash(\"sha256\", $data);\n$hash = hash_hmac(\"sha256\", $data, $secretKey);\n\n// Random values\n$bytes = random_bytes(32);\n$int = random_int(1, 100);\n",[20,172484,172485,172491,172496,172516,172534,172538,172543,172555,172560,172567,172572,172579,172584,172588,172606,172610,172615,172628,172648,172662,172674,172679,172685,172689,172695,172699,172703,172707,172712,172729,172745,172749,172754,172769],{"__ignoreMap":30},[34,172486,172487,172489],{"class":36,"line":37},[34,172488,169799],{"class":580},[34,172490,169802],{"class":50},[34,172492,172493],{"class":36,"line":44},[34,172494,172495],{"class":40},"// Symmetric encryption (OpenSSL)\n",[34,172497,172498,172501,172503,172506,172508,172511,172513],{"class":36,"line":58},[34,172499,172500],{"class":181},"$key ",[34,172502,1301],{"class":580},[34,172504,172505],{"class":47}," random_bytes",[34,172507,1607],{"class":181},[34,172509,172510],{"class":50},"32",[34,172512,33489],{"class":181},[34,172514,172515],{"class":40},"// 256-bit key\n",[34,172517,172518,172521,172523,172525,172527,172529,172531],{"class":36,"line":65},[34,172519,172520],{"class":181},"$iv ",[34,172522,1301],{"class":580},[34,172524,172505],{"class":47},[34,172526,1607],{"class":181},[34,172528,15353],{"class":50},[34,172530,38794],{"class":181},[34,172532,172533],{"class":40},"// Initialization vector\n",[34,172535,172536],{"class":36,"line":71},[34,172537,62],{"emptyLinePlaceholder":61},[34,172539,172540],{"class":36,"line":77},[34,172541,172542],{"class":40},"// Encrypt\n",[34,172544,172545,172548,172550,172553],{"class":36,"line":82},[34,172546,172547],{"class":181},"$encrypted ",[34,172549,1301],{"class":580},[34,172551,172552],{"class":50}," openssl_encrypt",[34,172554,1882],{"class":181},[34,172556,172557],{"class":36,"line":88},[34,172558,172559],{"class":181},"    $plaintext,\n",[34,172561,172562,172565],{"class":36,"line":242},[34,172563,172564],{"class":54},"    \"AES-256-CBC\"",[34,172566,624],{"class":181},[34,172568,172569],{"class":36,"line":250},[34,172570,172571],{"class":181},"    $key,\n",[34,172573,172574,172577],{"class":36,"line":263},[34,172575,172576],{"class":50},"    OPENSSL_RAW_DATA",[34,172578,624],{"class":181},[34,172580,172581],{"class":36,"line":275},[34,172582,172583],{"class":181},"    $iv\n",[34,172585,172586],{"class":36,"line":700},[34,172587,1586],{"class":181},[34,172589,172590,172593,172595,172598,172601,172603],{"class":36,"line":706},[34,172591,172592],{"class":181},"$encoded ",[34,172594,1301],{"class":580},[34,172596,172597],{"class":50}," base64_encode",[34,172599,172600],{"class":181},"($iv ",[34,172602,151],{"class":580},[34,172604,172605],{"class":181}," $encrypted);\n",[34,172607,172608],{"class":36,"line":715},[34,172609,62],{"emptyLinePlaceholder":61},[34,172611,172612],{"class":36,"line":725},[34,172613,172614],{"class":40},"// Decrypt\n",[34,172616,172617,172620,172622,172625],{"class":36,"line":734},[34,172618,172619],{"class":181},"$decoded ",[34,172621,1301],{"class":580},[34,172623,172624],{"class":50}," base64_decode",[34,172626,172627],{"class":181},"($encoded);\n",[34,172629,172630,172632,172634,172637,172640,172642,172644,172646],{"class":36,"line":742},[34,172631,172520],{"class":181},[34,172633,1301],{"class":580},[34,172635,172636],{"class":50}," substr",[34,172638,172639],{"class":181},"($decoded, ",[34,172641,2773],{"class":50},[34,172643,1798],{"class":181},[34,172645,15353],{"class":50},[34,172647,1586],{"class":181},[34,172649,172650,172652,172654,172656,172658,172660],{"class":36,"line":748},[34,172651,172547],{"class":181},[34,172653,1301],{"class":580},[34,172655,172636],{"class":50},[34,172657,172639],{"class":181},[34,172659,15353],{"class":50},[34,172661,1586],{"class":181},[34,172663,172664,172667,172669,172672],{"class":36,"line":754},[34,172665,172666],{"class":181},"$plaintext ",[34,172668,1301],{"class":580},[34,172670,172671],{"class":50}," openssl_decrypt",[34,172673,1882],{"class":181},[34,172675,172676],{"class":36,"line":759},[34,172677,172678],{"class":181},"    $encrypted,\n",[34,172680,172681,172683],{"class":36,"line":771},[34,172682,172564],{"class":54},[34,172684,624],{"class":181},[34,172686,172687],{"class":36,"line":794},[34,172688,172571],{"class":181},[34,172690,172691,172693],{"class":36,"line":824},[34,172692,172576],{"class":50},[34,172694,624],{"class":181},[34,172696,172697],{"class":36,"line":830},[34,172698,172583],{"class":181},[34,172700,172701],{"class":36,"line":839},[34,172702,1586],{"class":181},[34,172704,172705],{"class":36,"line":854},[34,172706,62],{"emptyLinePlaceholder":61},[34,172708,172709],{"class":36,"line":860},[34,172710,172711],{"class":40},"// Hashing\n",[34,172713,172714,172717,172719,172721,172723,172726],{"class":36,"line":865},[34,172715,172716],{"class":181},"$hash ",[34,172718,1301],{"class":580},[34,172720,16406],{"class":50},[34,172722,1607],{"class":181},[34,172724,172725],{"class":54},"\"sha256\"",[34,172727,172728],{"class":181},", $data);\n",[34,172730,172731,172733,172735,172738,172740,172742],{"class":36,"line":870},[34,172732,172716],{"class":181},[34,172734,1301],{"class":580},[34,172736,172737],{"class":50}," hash_hmac",[34,172739,1607],{"class":181},[34,172741,172725],{"class":54},[34,172743,172744],{"class":181},", $data, $secretKey);\n",[34,172746,172747],{"class":36,"line":876},[34,172748,62],{"emptyLinePlaceholder":61},[34,172750,172751],{"class":36,"line":885},[34,172752,172753],{"class":40},"// Random values\n",[34,172755,172756,172759,172761,172763,172765,172767],{"class":36,"line":895},[34,172757,172758],{"class":181},"$bytes ",[34,172760,1301],{"class":580},[34,172762,172505],{"class":47},[34,172764,1607],{"class":181},[34,172766,172510],{"class":50},[34,172768,1586],{"class":181},[34,172770,172771,172774,172776,172779,172781,172783,172785,172787],{"class":36,"line":904},[34,172772,172773],{"class":181},"$int ",[34,172775,1301],{"class":580},[34,172777,172778],{"class":47}," random_int",[34,172780,1607],{"class":181},[34,172782,8318],{"class":50},[34,172784,1798],{"class":181},[34,172786,20863],{"class":50},[34,172788,1586],{"class":181},[388,172790,172791],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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);}",{"title":30,"searchDepth":44,"depth":44,"links":172793},[172794],{"id":172479,"depth":44,"text":172474},"Encryption in PHP.",{},"/php/encryption",{"title":172474,"description":172795},"php/encryption",[139955,46870,38615,15678],"kpmJvmtV7yNoyOmO08wcUVadXmeWmd7GFP7rLwQcHhQ",{"id":172803,"title":172804,"body":172805,"date":402,"description":173237,"extension":404,"meta":173238,"navigation":61,"order":742,"path":173239,"seo":173240,"stem":173241,"subject":139955,"tags":173242,"__hash__":173243},"topics/php/enums-php-81.md","Enums (PHP 8.1+)",{"type":8,"value":172806,"toc":173234},[172807,172810,173231],[11,172808,172804],{"id":172809},"enums-php-81",[25,172811,172813],{"className":139953,"code":172812,"language":139955,"meta":30,"style":30},"\u003C?php\n// Basic enum\nenum Status {\n    case Pending;\n    case Active;\n    case Archived;\n}\n\n$status = Status::Active;\n$status->name;  // \"Active\"\n\n// Backed enum (with values)\nenum Status: string {\n    case Pending = \"pending\";\n    case Active = \"active\";\n    case Archived = \"archived\";\n}\n\n$status = Status::Active;\n$status->value;  // \"active\"\n\n// Create from value\n$status = Status::from(\"active\");      // Throws if invalid\n$status = Status::tryFrom(\"invalid\");  // Returns null if invalid\n\n// Enum methods\nenum Color: string {\n    case Red = \"#FF0000\";\n    case Green = \"#00FF00\";\n    case Blue = \"#0000FF\";\n\n    public function label(): string {\n        return match($this) {\n            self::Red => \"Red Color\",\n            self::Green => \"Green Color\",\n            self::Blue => \"Blue Color\",\n        };\n    }\n\n    public static function all(): array {\n        return self::cases();\n    }\n}\n",[20,172814,172815,172821,172825,172834,172843,172852,172861,172865,172869,172884,172897,172901,172906,172918,172931,172944,172957,172961,172965,172979,172991,172995,173000,173021,173044,173048,173053,173065,173079,173093,173107,173111,173127,173139,173154,173168,173182,173186,173190,173194,173212,173223,173227],{"__ignoreMap":30},[34,172816,172817,172819],{"class":36,"line":37},[34,172818,169799],{"class":580},[34,172820,169802],{"class":50},[34,172822,172823],{"class":36,"line":44},[34,172824,25927],{"class":40},[34,172826,172827,172829,172832],{"class":36,"line":58},[34,172828,137134],{"class":580},[34,172830,172831],{"class":47}," Status",[34,172833,661],{"class":181},[34,172835,172836,172838,172841],{"class":36,"line":65},[34,172837,18986],{"class":580},[34,172839,172840],{"class":50}," Pending",[34,172842,593],{"class":181},[34,172844,172845,172847,172850],{"class":36,"line":71},[34,172846,18986],{"class":580},[34,172848,172849],{"class":50}," Active",[34,172851,593],{"class":181},[34,172853,172854,172856,172859],{"class":36,"line":77},[34,172855,18986],{"class":580},[34,172857,172858],{"class":50}," Archived",[34,172860,593],{"class":181},[34,172862,172863],{"class":36,"line":82},[34,172864,693],{"class":181},[34,172866,172867],{"class":36,"line":88},[34,172868,62],{"emptyLinePlaceholder":61},[34,172870,172871,172873,172875,172877,172879,172882],{"class":36,"line":242},[34,172872,171041],{"class":181},[34,172874,1301],{"class":580},[34,172876,172831],{"class":50},[34,172878,30110],{"class":580},[34,172880,172881],{"class":50},"Active",[34,172883,593],{"class":181},[34,172885,172886,172889,172891,172894],{"class":36,"line":250},[34,172887,172888],{"class":181},"$status",[34,172890,24863],{"class":580},[34,172892,172893],{"class":181},"name;  ",[34,172895,172896],{"class":40},"// \"Active\"\n",[34,172898,172899],{"class":36,"line":263},[34,172900,62],{"emptyLinePlaceholder":61},[34,172902,172903],{"class":36,"line":275},[34,172904,172905],{"class":40},"// Backed enum (with values)\n",[34,172907,172908,172910,172912,172914,172916],{"class":36,"line":700},[34,172909,137134],{"class":580},[34,172911,172831],{"class":47},[34,172913,165],{"class":580},[34,172915,680],{"class":580},[34,172917,661],{"class":181},[34,172919,172920,172922,172924,172926,172929],{"class":36,"line":706},[34,172921,18986],{"class":580},[34,172923,172840],{"class":50},[34,172925,683],{"class":580},[34,172927,172928],{"class":54}," \"pending\"",[34,172930,593],{"class":181},[34,172932,172933,172935,172937,172939,172942],{"class":36,"line":715},[34,172934,18986],{"class":580},[34,172936,172849],{"class":50},[34,172938,683],{"class":580},[34,172940,172941],{"class":54}," \"active\"",[34,172943,593],{"class":181},[34,172945,172946,172948,172950,172952,172955],{"class":36,"line":725},[34,172947,18986],{"class":580},[34,172949,172858],{"class":50},[34,172951,683],{"class":580},[34,172953,172954],{"class":54}," \"archived\"",[34,172956,593],{"class":181},[34,172958,172959],{"class":36,"line":734},[34,172960,693],{"class":181},[34,172962,172963],{"class":36,"line":742},[34,172964,62],{"emptyLinePlaceholder":61},[34,172966,172967,172969,172971,172973,172975,172977],{"class":36,"line":748},[34,172968,171041],{"class":181},[34,172970,1301],{"class":580},[34,172972,172831],{"class":50},[34,172974,30110],{"class":580},[34,172976,172881],{"class":50},[34,172978,593],{"class":181},[34,172980,172981,172983,172985,172988],{"class":36,"line":754},[34,172982,172888],{"class":181},[34,172984,24863],{"class":580},[34,172986,172987],{"class":181},"value;  ",[34,172989,172990],{"class":40},"// \"active\"\n",[34,172992,172993],{"class":36,"line":759},[34,172994,62],{"emptyLinePlaceholder":61},[34,172996,172997],{"class":36,"line":771},[34,172998,172999],{"class":40},"// Create from value\n",[34,173001,173002,173004,173006,173008,173010,173012,173014,173016,173018],{"class":36,"line":794},[34,173003,171041],{"class":181},[34,173005,1301],{"class":580},[34,173007,172831],{"class":50},[34,173009,30110],{"class":580},[34,173011,587],{"class":47},[34,173013,1607],{"class":181},[34,173015,1304],{"class":54},[34,173017,38729],{"class":181},[34,173019,173020],{"class":40},"// Throws if invalid\n",[34,173022,173023,173025,173027,173029,173031,173034,173036,173039,173041],{"class":36,"line":824},[34,173024,171041],{"class":181},[34,173026,1301],{"class":580},[34,173028,172831],{"class":50},[34,173030,30110],{"class":580},[34,173032,173033],{"class":47},"tryFrom",[34,173035,1607],{"class":181},[34,173037,173038],{"class":54},"\"invalid\"",[34,173040,33489],{"class":181},[34,173042,173043],{"class":40},"// Returns null if invalid\n",[34,173045,173046],{"class":36,"line":830},[34,173047,62],{"emptyLinePlaceholder":61},[34,173049,173050],{"class":36,"line":839},[34,173051,173052],{"class":40},"// Enum methods\n",[34,173054,173055,173057,173059,173061,173063],{"class":36,"line":854},[34,173056,137134],{"class":580},[34,173058,137163],{"class":47},[34,173060,165],{"class":580},[34,173062,680],{"class":580},[34,173064,661],{"class":181},[34,173066,173067,173069,173072,173074,173077],{"class":36,"line":860},[34,173068,18986],{"class":580},[34,173070,173071],{"class":50}," Red",[34,173073,683],{"class":580},[34,173075,173076],{"class":54}," \"#FF0000\"",[34,173078,593],{"class":181},[34,173080,173081,173083,173086,173088,173091],{"class":36,"line":865},[34,173082,18986],{"class":580},[34,173084,173085],{"class":50}," Green",[34,173087,683],{"class":580},[34,173089,173090],{"class":54}," \"#00FF00\"",[34,173092,593],{"class":181},[34,173094,173095,173097,173100,173102,173105],{"class":36,"line":870},[34,173096,18986],{"class":580},[34,173098,173099],{"class":50}," Blue",[34,173101,683],{"class":580},[34,173103,173104],{"class":54}," \"#0000FF\"",[34,173106,593],{"class":181},[34,173108,173109],{"class":36,"line":876},[34,173110,62],{"emptyLinePlaceholder":61},[34,173112,173113,173115,173117,173119,173121,173123,173125],{"class":36,"line":885},[34,173114,34159],{"class":580},[34,173116,8037],{"class":580},[34,173118,139307],{"class":47},[34,173120,1546],{"class":181},[34,173122,165],{"class":580},[34,173124,680],{"class":580},[34,173126,661],{"class":181},[34,173128,173129,173131,173133,173135,173137],{"class":36,"line":895},[34,173130,13895],{"class":580},[34,173132,171159],{"class":580},[34,173134,1607],{"class":181},[34,173136,135791],{"class":50},[34,173138,2416],{"class":181},[34,173140,173141,173144,173147,173149,173152],{"class":36,"line":904},[34,173142,173143],{"class":580},"            self::",[34,173145,173146],{"class":50},"Red",[34,173148,1895],{"class":580},[34,173150,173151],{"class":54}," \"Red Color\"",[34,173153,624],{"class":181},[34,173155,173156,173158,173161,173163,173166],{"class":36,"line":915},[34,173157,173143],{"class":580},[34,173159,173160],{"class":50},"Green",[34,173162,1895],{"class":580},[34,173164,173165],{"class":54}," \"Green Color\"",[34,173167,624],{"class":181},[34,173169,173170,173172,173175,173177,173180],{"class":36,"line":927},[34,173171,173143],{"class":580},[34,173173,173174],{"class":50},"Blue",[34,173176,1895],{"class":580},[34,173178,173179],{"class":54}," \"Blue Color\"",[34,173181,624],{"class":181},[34,173183,173184],{"class":36,"line":932},[34,173185,132467],{"class":181},[34,173187,173188],{"class":36,"line":944},[34,173189,3229],{"class":181},[34,173191,173192],{"class":36,"line":966},[34,173193,62],{"emptyLinePlaceholder":61},[34,173195,173196,173198,173200,173202,173204,173206,173208,173210],{"class":36,"line":1948},[34,173197,34159],{"class":580},[34,173199,51421],{"class":580},[34,173201,8037],{"class":580},[34,173203,5034],{"class":47},[34,173205,1546],{"class":181},[34,173207,165],{"class":580},[34,173209,19929],{"class":580},[34,173211,661],{"class":181},[34,173213,173214,173216,173218,173221],{"class":36,"line":1953},[34,173215,13895],{"class":580},[34,173217,170777],{"class":580},[34,173219,173220],{"class":47},"cases",[34,173222,851],{"class":181},[34,173224,173225],{"class":36,"line":3616},[34,173226,3229],{"class":181},[34,173228,173229],{"class":36,"line":3622},[34,173230,693],{"class":181},[388,173232,173233],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .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 .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":30,"searchDepth":44,"depth":44,"links":173235},[173236],{"id":172809,"depth":44,"text":172804},"Enums (PHP 8.1+) in PHP.",{},"/php/enums-php-81",{"title":172804,"description":173237},"php/enums-php-81",[139955,46870,38615,15678],"RU_NFFpXupWjo8kkkqzYNkA7bGZ8I0sah7ihAwo-0h8",{"id":173245,"title":19352,"body":173246,"date":402,"description":173512,"extension":404,"meta":173513,"navigation":61,"order":250,"path":173514,"seo":173515,"stem":173516,"subject":139955,"tags":173517,"__hash__":173518},"topics/php/error-handling.md",{"type":8,"value":173247,"toc":173509},[173248,173250,173507],[11,173249,19352],{"id":19357},[25,173251,173253],{"className":139953,"code":173252,"language":139955,"meta":30,"style":30},"\u003C?php\n// Try/catch\ntry {\n    $result = riskyOperation();\n} catch (InvalidArgumentException $e) {\n    echo \"Invalid argument: \" . $e->getMessage();\n} catch (Exception $e) {\n    echo \"Error: \" . $e->getMessage();\n} finally {\n    echo \"Cleanup\";\n}\n\n// Throw exception\nfunction divide($a, $b) {\n    if ($b === 0) {\n        throw new InvalidArgumentException(\"Cannot divide by zero\");\n    }\n    return $a / $b;\n}\n\n// Custom exception\nclass ValidationException extends Exception {\n    public function __construct(\n        string $message,\n        public array $errors = []\n    ) {\n        parent::__construct($message);\n    }\n}\n",[20,173254,173255,173261,173266,173272,173284,173297,173316,173328,173344,173352,173361,173365,173369,173373,173382,173395,173411,173415,173427,173431,173435,173439,173452,173462,173470,173483,173488,173499,173503],{"__ignoreMap":30},[34,173256,173257,173259],{"class":36,"line":37},[34,173258,169799],{"class":580},[34,173260,169802],{"class":50},[34,173262,173263],{"class":36,"line":44},[34,173264,173265],{"class":40},"// Try/catch\n",[34,173267,173268,173270],{"class":36,"line":58},[34,173269,30813],{"class":580},[34,173271,661],{"class":181},[34,173273,173274,173277,173279,173282],{"class":36,"line":65},[34,173275,173276],{"class":181},"    $result ",[34,173278,1301],{"class":580},[34,173280,173281],{"class":47}," riskyOperation",[34,173283,851],{"class":181},[34,173285,173286,173288,173290,173292,173295],{"class":36,"line":71},[34,173287,2276],{"class":181},[34,173289,30851],{"class":580},[34,173291,3204],{"class":181},[34,173293,173294],{"class":50},"InvalidArgumentException",[34,173296,171646],{"class":181},[34,173298,173299,173301,173304,173306,173309,173311,173314],{"class":36,"line":77},[34,173300,170979],{"class":50},[34,173302,173303],{"class":54}," \"Invalid argument: \"",[34,173305,100566],{"class":580},[34,173307,173308],{"class":181}," $e",[34,173310,24863],{"class":580},[34,173312,173313],{"class":47},"getMessage",[34,173315,851],{"class":181},[34,173317,173318,173320,173322,173324,173326],{"class":36,"line":82},[34,173319,2276],{"class":181},[34,173321,30851],{"class":580},[34,173323,3204],{"class":181},[34,173325,35345],{"class":50},[34,173327,171646],{"class":181},[34,173329,173330,173332,173334,173336,173338,173340,173342],{"class":36,"line":88},[34,173331,170979],{"class":50},[34,173333,30877],{"class":54},[34,173335,100566],{"class":580},[34,173337,173308],{"class":181},[34,173339,24863],{"class":580},[34,173341,173313],{"class":47},[34,173343,851],{"class":181},[34,173345,173346,173348,173350],{"class":36,"line":242},[34,173347,2276],{"class":181},[34,173349,122585],{"class":580},[34,173351,661],{"class":181},[34,173353,173354,173356,173359],{"class":36,"line":250},[34,173355,170979],{"class":50},[34,173357,173358],{"class":54}," \"Cleanup\"",[34,173360,593],{"class":181},[34,173362,173363],{"class":36,"line":263},[34,173364,693],{"class":181},[34,173366,173367],{"class":36,"line":275},[34,173368,62],{"emptyLinePlaceholder":61},[34,173370,173371],{"class":36,"line":700},[34,173372,35429],{"class":40},[34,173374,173375,173377,173379],{"class":36,"line":706},[34,173376,11044],{"class":580},[34,173378,19378],{"class":47},[34,173380,173381],{"class":181},"($a, $b) {\n",[34,173383,173384,173386,173389,173391,173393],{"class":36,"line":715},[34,173385,2902],{"class":580},[34,173387,173388],{"class":181}," ($b ",[34,173390,15543],{"class":580},[34,173392,8070],{"class":50},[34,173394,2416],{"class":181},[34,173396,173397,173399,173401,173404,173406,173409],{"class":36,"line":725},[34,173398,1932],{"class":580},[34,173400,809],{"class":580},[34,173402,173403],{"class":50}," InvalidArgumentException",[34,173405,1607],{"class":181},[34,173407,173408],{"class":54},"\"Cannot divide by zero\"",[34,173410,1586],{"class":181},[34,173412,173413],{"class":36,"line":734},[34,173414,3229],{"class":181},[34,173416,173417,173419,173422,173424],{"class":36,"line":742},[34,173418,1564],{"class":580},[34,173420,173421],{"class":181}," $a ",[34,173423,12734],{"class":580},[34,173425,173426],{"class":181}," $b;\n",[34,173428,173429],{"class":36,"line":748},[34,173430,693],{"class":181},[34,173432,173433],{"class":36,"line":754},[34,173434,62],{"emptyLinePlaceholder":61},[34,173436,173437],{"class":36,"line":759},[34,173438,35454],{"class":40},[34,173440,173441,173443,173446,173448,173450],{"class":36,"line":771},[34,173442,30060],{"class":580},[34,173444,173445],{"class":47}," ValidationException",[34,173447,59185],{"class":580},[34,173449,122761],{"class":50},[34,173451,661],{"class":181},[34,173453,173454,173456,173458,173460],{"class":36,"line":794},[34,173455,34159],{"class":580},[34,173457,8037],{"class":580},[34,173459,170230],{"class":50},[34,173461,1882],{"class":181},[34,173463,173464,173467],{"class":36,"line":824},[34,173465,173466],{"class":580},"        string",[34,173468,173469],{"class":181}," $message,\n",[34,173471,173472,173474,173476,173479,173481],{"class":36,"line":830},[34,173473,170237],{"class":580},[34,173475,19929],{"class":580},[34,173477,173478],{"class":181}," $errors ",[34,173480,1301],{"class":580},[34,173482,53166],{"class":181},[34,173484,173485],{"class":36,"line":839},[34,173486,173487],{"class":181},"    ) {\n",[34,173489,173490,173493,173496],{"class":36,"line":854},[34,173491,173492],{"class":580},"        parent::",[34,173494,173495],{"class":47},"__construct",[34,173497,173498],{"class":181},"($message);\n",[34,173500,173501],{"class":36,"line":860},[34,173502,3229],{"class":181},[34,173504,173505],{"class":36,"line":865},[34,173506,693],{"class":181},[388,173508,172791],{},{"title":30,"searchDepth":44,"depth":44,"links":173510},[173511],{"id":19357,"depth":44,"text":19352},"Error Handling in PHP.",{},"/php/error-handling",{"title":19352,"description":173512},"php/error-handling",[139955,46870,38615,15678],"bUoPIhw8BhSGdJDWrAGhmmpk_y5oZfztFvBWSmgAFG4",{"id":173520,"title":81168,"body":173521,"date":402,"description":173803,"extension":404,"meta":173804,"navigation":61,"order":263,"path":173805,"seo":173806,"stem":173807,"subject":139955,"tags":173808,"__hash__":173809},"topics/php/file-operations.md",{"type":8,"value":173522,"toc":173800},[173523,173525,173798],[11,173524,81168],{"id":81167},[25,173526,173528],{"className":139953,"code":173527,"language":139955,"meta":30,"style":30},"\u003C?php\n// Read file\n$content = file_get_contents(\"file.txt\");\n$lines = file(\"file.txt\", FILE_IGNORE_NEW_LINES);\n\n// Write file\nfile_put_contents(\"file.txt\", $content);\nfile_put_contents(\"file.txt\", $data, FILE_APPEND);\n\n// File handling\n$handle = fopen(\"file.txt\", \"r\");\nwhile (($line = fgets($handle)) !== false) {\n    echo $line;\n}\nfclose($handle);\n\n// File info\nfile_exists(\"file.txt\");       // Check exists\nis_file(\"file.txt\");           // Is file\nis_dir(\"folder\");              // Is directory\nfilesize(\"file.txt\");          // Get size\nunlink(\"file.txt\");            // Delete file\nrename(\"old.txt\", \"new.txt\");  // Rename/move\ncopy(\"src.txt\", \"dest.txt\");   // Copy file\n",[20,173529,173530,173536,173540,173556,173576,173580,173584,173596,173612,173616,173621,173640,173661,173668,173672,173679,173683,173688,173703,173717,173732,173746,173760,173780],{"__ignoreMap":30},[34,173531,173532,173534],{"class":36,"line":37},[34,173533,169799],{"class":580},[34,173535,169802],{"class":50},[34,173537,173538],{"class":36,"line":44},[34,173539,14969],{"class":40},[34,173541,173542,173545,173547,173550,173552,173554],{"class":36,"line":58},[34,173543,173544],{"class":181},"$content ",[34,173546,1301],{"class":580},[34,173548,173549],{"class":50}," file_get_contents",[34,173551,1607],{"class":181},[34,173553,14990],{"class":54},[34,173555,1586],{"class":181},[34,173557,173558,173561,173563,173565,173567,173569,173571,173574],{"class":36,"line":65},[34,173559,173560],{"class":181},"$lines ",[34,173562,1301],{"class":580},[34,173564,13190],{"class":50},[34,173566,1607],{"class":181},[34,173568,14990],{"class":54},[34,173570,1798],{"class":181},[34,173572,173573],{"class":50},"FILE_IGNORE_NEW_LINES",[34,173575,1586],{"class":181},[34,173577,173578],{"class":36,"line":71},[34,173579,62],{"emptyLinePlaceholder":61},[34,173581,173582],{"class":36,"line":77},[34,173583,15057],{"class":40},[34,173585,173586,173589,173591,173593],{"class":36,"line":82},[34,173587,173588],{"class":50},"file_put_contents",[34,173590,1607],{"class":181},[34,173592,14990],{"class":54},[34,173594,173595],{"class":181},", $content);\n",[34,173597,173598,173600,173602,173604,173607,173610],{"class":36,"line":88},[34,173599,173588],{"class":50},[34,173601,1607],{"class":181},[34,173603,14990],{"class":54},[34,173605,173606],{"class":181},", $data, ",[34,173608,173609],{"class":50},"FILE_APPEND",[34,173611,1586],{"class":181},[34,173613,173614],{"class":36,"line":242},[34,173615,62],{"emptyLinePlaceholder":61},[34,173617,173618],{"class":36,"line":250},[34,173619,173620],{"class":40},"// File handling\n",[34,173622,173623,173626,173628,173630,173632,173634,173636,173638],{"class":36,"line":263},[34,173624,173625],{"class":181},"$handle ",[34,173627,1301],{"class":580},[34,173629,19603],{"class":50},[34,173631,1607],{"class":181},[34,173633,14990],{"class":54},[34,173635,1798],{"class":181},[34,173637,19613],{"class":54},[34,173639,1586],{"class":181},[34,173641,173642,173644,173647,173649,173652,173655,173657,173659],{"class":36,"line":275},[34,173643,12005],{"class":580},[34,173645,173646],{"class":181}," (($line ",[34,173648,1301],{"class":580},[34,173650,173651],{"class":50}," fgets",[34,173653,173654],{"class":181},"($handle)) ",[34,173656,48741],{"class":580},[34,173658,68645],{"class":50},[34,173660,2416],{"class":181},[34,173662,173663,173665],{"class":36,"line":700},[34,173664,170979],{"class":50},[34,173666,173667],{"class":181}," $line;\n",[34,173669,173670],{"class":36,"line":706},[34,173671,693],{"class":181},[34,173673,173674,173676],{"class":36,"line":715},[34,173675,20281],{"class":50},[34,173677,173678],{"class":181},"($handle);\n",[34,173680,173681],{"class":36,"line":725},[34,173682,62],{"emptyLinePlaceholder":61},[34,173684,173685],{"class":36,"line":734},[34,173686,173687],{"class":40},"// File info\n",[34,173689,173690,173693,173695,173697,173700],{"class":36,"line":742},[34,173691,173692],{"class":50},"file_exists",[34,173694,1607],{"class":181},[34,173696,14990],{"class":54},[34,173698,173699],{"class":181},");       ",[34,173701,173702],{"class":40},"// Check exists\n",[34,173704,173705,173708,173710,173712,173714],{"class":36,"line":748},[34,173706,173707],{"class":50},"is_file",[34,173709,1607],{"class":181},[34,173711,14990],{"class":54},[34,173713,36475],{"class":181},[34,173715,173716],{"class":40},"// Is file\n",[34,173718,173719,173722,173724,173727,173729],{"class":36,"line":754},[34,173720,173721],{"class":50},"is_dir",[34,173723,1607],{"class":181},[34,173725,173726],{"class":54},"\"folder\"",[34,173728,123385],{"class":181},[34,173730,173731],{"class":40},"// Is directory\n",[34,173733,173734,173737,173739,173741,173743],{"class":36,"line":759},[34,173735,173736],{"class":50},"filesize",[34,173738,1607],{"class":181},[34,173740,14990],{"class":54},[34,173742,36500],{"class":181},[34,173744,173745],{"class":40},"// Get size\n",[34,173747,173748,173751,173753,173755,173757],{"class":36,"line":771},[34,173749,173750],{"class":50},"unlink",[34,173752,1607],{"class":181},[34,173754,14990],{"class":54},[34,173756,38697],{"class":181},[34,173758,173759],{"class":40},"// Delete file\n",[34,173761,173762,173765,173767,173770,173772,173775,173777],{"class":36,"line":794},[34,173763,173764],{"class":50},"rename",[34,173766,1607],{"class":181},[34,173768,173769],{"class":54},"\"old.txt\"",[34,173771,1798],{"class":181},[34,173773,173774],{"class":54},"\"new.txt\"",[34,173776,33489],{"class":181},[34,173778,173779],{"class":40},"// Rename/move\n",[34,173781,173782,173784,173786,173789,173791,173794,173796],{"class":36,"line":824},[34,173783,103810],{"class":50},[34,173785,1607],{"class":181},[34,173787,173788],{"class":54},"\"src.txt\"",[34,173790,1798],{"class":181},[34,173792,173793],{"class":54},"\"dest.txt\"",[34,173795,38794],{"class":181},[34,173797,15197],{"class":40},[388,173799,170110],{},{"title":30,"searchDepth":44,"depth":44,"links":173801},[173802],{"id":81167,"depth":44,"text":81168},"File Operations in PHP.",{},"/php/file-operations",{"title":81168,"description":173803},"php/file-operations",[139955,46870,38615,15678],"plc3fckjWhSFOdJNEesywWtmMzNzrlpAsK-NlLfTejw",{"id":173811,"title":10991,"body":173812,"date":402,"description":174099,"extension":404,"meta":174100,"navigation":61,"order":82,"path":174101,"seo":174102,"stem":174103,"subject":139955,"tags":174104,"__hash__":174105},"topics/php/functions.md",{"type":8,"value":173813,"toc":174096},[173814,173816,174094],[11,173815,10991],{"id":10996},[25,173817,173819],{"className":139953,"code":173818,"language":139955,"meta":30,"style":30},"\u003C?php\n// Basic function\nfunction greet($name) {\n    return \"Hello, $name!\";\n}\n\n// Default parameters\nfunction greet($name = \"World\") {\n    return \"Hello, $name!\";\n}\n\n// Named arguments (PHP 8+)\nfunction createUser($name, $email, $role = \"user\") {}\ncreateUser(name: \"Alice\", email: \"alice@example.com\");\n\n// Variadic functions\nfunction sum(...$numbers) {\n    return array_sum($numbers);\n}\n\n// Arrow functions (PHP 7.4+)\n$double = fn($x) => $x * 2;\n\n// Anonymous functions (closures)\n$greet = function($name) {\n    return \"Hello, $name!\";\n};\n\n// Use variables from parent scope\n$multiplier = 3;\n$multiply = function($x) use ($multiplier) {\n    return $x * $multiplier;\n};\n",[20,173820,173821,173827,173831,173840,173852,173856,173860,173864,173879,173891,173895,173899,173904,173920,173943,173947,173952,173965,173975,173979,173983,173988,174005,174009,174014,174025,174037,174041,174045,174050,174061,174078,174090],{"__ignoreMap":30},[34,173822,173823,173825],{"class":36,"line":37},[34,173824,169799],{"class":580},[34,173826,169802],{"class":50},[34,173828,173829],{"class":36,"line":44},[34,173830,26295],{"class":40},[34,173832,173833,173835,173837],{"class":36,"line":58},[34,173834,11044],{"class":580},[34,173836,11047],{"class":47},[34,173838,173839],{"class":181},"($name) {\n",[34,173841,173842,173844,173846,173848,173850],{"class":36,"line":65},[34,173843,1564],{"class":580},[34,173845,11020],{"class":54},[34,173847,10392],{"class":181},[34,173849,37073],{"class":54},[34,173851,593],{"class":181},[34,173853,173854],{"class":36,"line":71},[34,173855,693],{"class":181},[34,173857,173858],{"class":36,"line":77},[34,173859,62],{"emptyLinePlaceholder":61},[34,173861,173862],{"class":36,"line":82},[34,173863,31217],{"class":40},[34,173865,173866,173868,173870,173873,173875,173877],{"class":36,"line":88},[34,173867,11044],{"class":580},[34,173869,11047],{"class":47},[34,173871,173872],{"class":181},"($name ",[34,173874,1301],{"class":580},[34,173876,13876],{"class":54},[34,173878,2416],{"class":181},[34,173880,173881,173883,173885,173887,173889],{"class":36,"line":242},[34,173882,1564],{"class":580},[34,173884,11020],{"class":54},[34,173886,10392],{"class":181},[34,173888,37073],{"class":54},[34,173890,593],{"class":181},[34,173892,173893],{"class":36,"line":250},[34,173894,693],{"class":181},[34,173896,173897],{"class":36,"line":263},[34,173898,62],{"emptyLinePlaceholder":61},[34,173900,173901],{"class":36,"line":275},[34,173902,173903],{"class":40},"// Named arguments (PHP 8+)\n",[34,173905,173906,173908,173910,173913,173915,173918],{"class":36,"line":700},[34,173907,11044],{"class":580},[34,173909,59278],{"class":47},[34,173911,173912],{"class":181},"($name, $email, $role ",[34,173914,1301],{"class":580},[34,173916,173917],{"class":54}," \"user\"",[34,173919,59124],{"class":181},[34,173921,173922,173925,173927,173929,173931,173933,173935,173937,173939,173941],{"class":36,"line":706},[34,173923,173924],{"class":47},"createUser",[34,173926,1607],{"class":181},[34,173928,178],{"class":47},[34,173930,182],{"class":181},[34,173932,21650],{"class":54},[34,173934,1798],{"class":181},[34,173936,59283],{"class":47},[34,173938,182],{"class":181},[34,173940,83306],{"class":54},[34,173942,1586],{"class":181},[34,173944,173945],{"class":36,"line":715},[34,173946,62],{"emptyLinePlaceholder":61},[34,173948,173949],{"class":36,"line":725},[34,173950,173951],{"class":40},"// Variadic functions\n",[34,173953,173954,173956,173958,173960,173962],{"class":36,"line":734},[34,173955,11044],{"class":580},[34,173957,65446],{"class":47},[34,173959,1607],{"class":181},[34,173961,16841],{"class":580},[34,173963,173964],{"class":181},"$numbers) {\n",[34,173966,173967,173969,173972],{"class":36,"line":742},[34,173968,1564],{"class":580},[34,173970,173971],{"class":50}," array_sum",[34,173973,173974],{"class":181},"($numbers);\n",[34,173976,173977],{"class":36,"line":748},[34,173978,693],{"class":181},[34,173980,173981],{"class":36,"line":754},[34,173982,62],{"emptyLinePlaceholder":61},[34,173984,173985],{"class":36,"line":759},[34,173986,173987],{"class":40},"// Arrow functions (PHP 7.4+)\n",[34,173989,173990,173993,173995,173997,173999,174001,174003],{"class":36,"line":771},[34,173991,173992],{"class":181},"$double ",[34,173994,1301],{"class":580},[34,173996,77727],{"class":580},[34,173998,170061],{"class":181},[34,174000,4289],{"class":580},[34,174002,4292],{"class":50},[34,174004,593],{"class":181},[34,174006,174007],{"class":36,"line":794},[34,174008,62],{"emptyLinePlaceholder":61},[34,174010,174011],{"class":36,"line":824},[34,174012,174013],{"class":40},"// Anonymous functions (closures)\n",[34,174015,174016,174019,174021,174023],{"class":36,"line":830},[34,174017,174018],{"class":181},"$greet ",[34,174020,1301],{"class":580},[34,174022,8037],{"class":580},[34,174024,173839],{"class":181},[34,174026,174027,174029,174031,174033,174035],{"class":36,"line":839},[34,174028,1564],{"class":580},[34,174030,11020],{"class":54},[34,174032,10392],{"class":181},[34,174034,37073],{"class":54},[34,174036,593],{"class":181},[34,174038,174039],{"class":36,"line":854},[34,174040,17632],{"class":181},[34,174042,174043],{"class":36,"line":860},[34,174044,62],{"emptyLinePlaceholder":61},[34,174046,174047],{"class":36,"line":865},[34,174048,174049],{"class":40},"// Use variables from parent scope\n",[34,174051,174052,174055,174057,174059],{"class":36,"line":870},[34,174053,174054],{"class":181},"$multiplier ",[34,174056,1301],{"class":580},[34,174058,11147],{"class":50},[34,174060,593],{"class":181},[34,174062,174063,174066,174068,174070,174073,174075],{"class":36,"line":876},[34,174064,174065],{"class":181},"$multiply ",[34,174067,1301],{"class":580},[34,174069,8037],{"class":580},[34,174071,174072],{"class":181},"($x) ",[34,174074,61898],{"class":580},[34,174076,174077],{"class":181}," ($multiplier) {\n",[34,174079,174080,174082,174085,174087],{"class":36,"line":885},[34,174081,1564],{"class":580},[34,174083,174084],{"class":181}," $x ",[34,174086,4289],{"class":580},[34,174088,174089],{"class":181}," $multiplier;\n",[34,174091,174092],{"class":36,"line":895},[34,174093,17632],{"class":181},[388,174095,173233],{},{"title":30,"searchDepth":44,"depth":44,"links":174097},[174098],{"id":10996,"depth":44,"text":10991},"Functions in PHP.",{},"/php/functions",{"title":10991,"description":174099},"php/functions",[139955,46870,38615,15678],"vKi02tZkW6hHDaad-fdfUUmInePt1vb7sNZn6J2_rWY",{"id":174107,"title":174108,"body":174109,"date":402,"description":174577,"extension":404,"meta":174578,"navigation":61,"order":759,"path":174579,"seo":174580,"stem":174581,"subject":139955,"tags":174582,"__hash__":174583},"topics/php/generators.md","Generators",{"type":8,"value":174110,"toc":174574},[174111,174114,174572],[11,174112,174108],{"id":174113},"generators",[25,174115,174117],{"className":139953,"code":174116,"language":139955,"meta":30,"style":30},"\u003C?php\n// Basic generator\nfunction numbers(int $max): Generator {\n    for ($i = 1; $i \u003C= $max; $i++) {\n        yield $i;\n    }\n}\n\nforeach (numbers(5) as $num) {\n    echo $num; // 1, 2, 3, 4, 5\n}\n\n// Yield key-value pairs\nfunction entries(): Generator {\n    yield \"a\" => 1;\n    yield \"b\" => 2;\n    yield \"c\" => 3;\n}\n\n// Yield from (delegate)\nfunction combined(): Generator {\n    yield from [1, 2, 3];\n    yield from range(4, 6);\n}\n\n// Memory-efficient file reading\nfunction readLines(string $file): Generator {\n    $handle = fopen($file, \"r\");\n    while (($line = fgets($handle)) !== false) {\n        yield trim($line);\n    }\n    fclose($handle);\n}\n\nforeach (readLines(\"large-file.txt\") as $line) {\n    // Process one line at a time\n}\n\n// Generator with return value\nfunction process(): Generator {\n    yield 1;\n    yield 2;\n    return \"done\";\n}\n\n$gen = process();\nforeach ($gen as $val) {}\necho $gen->getReturn(); // \"done\"\n",[20,174118,174119,174125,174130,174150,174173,174180,174184,174188,174192,174211,174221,174225,174229,174234,174249,174263,174276,174289,174293,174297,174302,174317,174336,174352,174356,174360,174365,174385,174401,174419,174429,174433,174439,174443,174447,174467,174472,174476,174480,174485,174499,174507,174515,174524,174528,174532,174543,174555],{"__ignoreMap":30},[34,174120,174121,174123],{"class":36,"line":37},[34,174122,169799],{"class":580},[34,174124,169802],{"class":50},[34,174126,174127],{"class":36,"line":44},[34,174128,174129],{"class":40},"// Basic generator\n",[34,174131,174132,174134,174136,174138,174140,174143,174145,174148],{"class":36,"line":58},[34,174133,11044],{"class":580},[34,174135,17775],{"class":47},[34,174137,1607],{"class":181},[34,174139,17772],{"class":580},[34,174141,174142],{"class":181}," $max)",[34,174144,165],{"class":580},[34,174146,174147],{"class":50}," Generator",[34,174149,661],{"class":181},[34,174151,174152,174154,174157,174159,174161,174164,174166,174169,174171],{"class":36,"line":65},[34,174153,18250],{"class":580},[34,174155,174156],{"class":181}," ($i ",[34,174158,1301],{"class":580},[34,174160,3567],{"class":50},[34,174162,174163],{"class":181},"; $i ",[34,174165,22032],{"class":580},[34,174167,174168],{"class":181}," $max; $i",[34,174170,11928],{"class":580},[34,174172,2416],{"class":181},[34,174174,174175,174177],{"class":36,"line":71},[34,174176,34072],{"class":580},[34,174178,174179],{"class":181}," $i;\n",[34,174181,174182],{"class":36,"line":77},[34,174183,3229],{"class":181},[34,174185,174186],{"class":36,"line":82},[34,174187,693],{"class":181},[34,174189,174190],{"class":36,"line":88},[34,174191,62],{"emptyLinePlaceholder":61},[34,174193,174194,174196,174198,174200,174202,174204,174206,174208],{"class":36,"line":242},[34,174195,36810],{"class":580},[34,174197,3204],{"class":181},[34,174199,33330],{"class":47},[34,174201,1607],{"class":181},[34,174203,2778],{"class":50},[34,174205,4817],{"class":181},[34,174207,74548],{"class":580},[34,174209,174210],{"class":181}," $num) {\n",[34,174212,174213,174215,174218],{"class":36,"line":250},[34,174214,170979],{"class":50},[34,174216,174217],{"class":181}," $num; ",[34,174219,174220],{"class":40},"// 1, 2, 3, 4, 5\n",[34,174222,174223],{"class":36,"line":263},[34,174224,693],{"class":181},[34,174226,174227],{"class":36,"line":275},[34,174228,62],{"emptyLinePlaceholder":61},[34,174230,174231],{"class":36,"line":700},[34,174232,174233],{"class":40},"// Yield key-value pairs\n",[34,174235,174236,174238,174241,174243,174245,174247],{"class":36,"line":706},[34,174237,11044],{"class":580},[34,174239,174240],{"class":47}," entries",[34,174242,1546],{"class":181},[34,174244,165],{"class":580},[34,174246,174147],{"class":50},[34,174248,661],{"class":181},[34,174250,174251,174254,174257,174259,174261],{"class":36,"line":715},[34,174252,174253],{"class":580},"    yield",[34,174255,174256],{"class":54}," \"a\"",[34,174258,1895],{"class":580},[34,174260,3567],{"class":50},[34,174262,593],{"class":181},[34,174264,174265,174267,174270,174272,174274],{"class":36,"line":725},[34,174266,174253],{"class":580},[34,174268,174269],{"class":54}," \"b\"",[34,174271,1895],{"class":580},[34,174273,4292],{"class":50},[34,174275,593],{"class":181},[34,174277,174278,174280,174283,174285,174287],{"class":36,"line":734},[34,174279,174253],{"class":580},[34,174281,174282],{"class":54}," \"c\"",[34,174284,1895],{"class":580},[34,174286,11147],{"class":50},[34,174288,593],{"class":181},[34,174290,174291],{"class":36,"line":742},[34,174292,693],{"class":181},[34,174294,174295],{"class":36,"line":748},[34,174296,62],{"emptyLinePlaceholder":61},[34,174298,174299],{"class":36,"line":754},[34,174300,174301],{"class":40},"// Yield from (delegate)\n",[34,174303,174304,174306,174309,174311,174313,174315],{"class":36,"line":759},[34,174305,11044],{"class":580},[34,174307,174308],{"class":47}," combined",[34,174310,1546],{"class":181},[34,174312,165],{"class":580},[34,174314,174147],{"class":50},[34,174316,661],{"class":181},[34,174318,174319,174322,174324,174326,174328,174330,174332,174334],{"class":36,"line":771},[34,174320,174321],{"class":580},"    yield from",[34,174323,8315],{"class":181},[34,174325,8318],{"class":50},[34,174327,1798],{"class":181},[34,174329,8324],{"class":50},[34,174331,1798],{"class":181},[34,174333,3162],{"class":50},[34,174335,3415],{"class":181},[34,174337,174338,174340,174342,174344,174346,174348,174350],{"class":36,"line":794},[34,174339,174321],{"class":580},[34,174341,104014],{"class":50},[34,174343,1607],{"class":181},[34,174345,18010],{"class":50},[34,174347,1798],{"class":181},[34,174349,18019],{"class":50},[34,174351,1586],{"class":181},[34,174353,174354],{"class":36,"line":824},[34,174355,693],{"class":181},[34,174357,174358],{"class":36,"line":830},[34,174359,62],{"emptyLinePlaceholder":61},[34,174361,174362],{"class":36,"line":839},[34,174363,174364],{"class":40},"// Memory-efficient file reading\n",[34,174366,174367,174369,174372,174374,174376,174379,174381,174383],{"class":36,"line":854},[34,174368,11044],{"class":580},[34,174370,174371],{"class":47}," readLines",[34,174373,1607],{"class":181},[34,174375,30113],{"class":580},[34,174377,174378],{"class":181}," $file)",[34,174380,165],{"class":580},[34,174382,174147],{"class":50},[34,174384,661],{"class":181},[34,174386,174387,174390,174392,174394,174397,174399],{"class":36,"line":860},[34,174388,174389],{"class":181},"    $handle ",[34,174391,1301],{"class":580},[34,174393,19603],{"class":50},[34,174395,174396],{"class":181},"($file, ",[34,174398,19613],{"class":54},[34,174400,1586],{"class":181},[34,174402,174403,174405,174407,174409,174411,174413,174415,174417],{"class":36,"line":865},[34,174404,8098],{"class":580},[34,174406,173646],{"class":181},[34,174408,1301],{"class":580},[34,174410,173651],{"class":50},[34,174412,173654],{"class":181},[34,174414,48741],{"class":580},[34,174416,68645],{"class":50},[34,174418,2416],{"class":181},[34,174420,174421,174423,174426],{"class":36,"line":870},[34,174422,34072],{"class":580},[34,174424,174425],{"class":50}," trim",[34,174427,174428],{"class":181},"($line);\n",[34,174430,174431],{"class":36,"line":876},[34,174432,3229],{"class":181},[34,174434,174435,174437],{"class":36,"line":885},[34,174436,20527],{"class":50},[34,174438,173678],{"class":181},[34,174440,174441],{"class":36,"line":895},[34,174442,693],{"class":181},[34,174444,174445],{"class":36,"line":904},[34,174446,62],{"emptyLinePlaceholder":61},[34,174448,174449,174451,174453,174455,174457,174460,174462,174464],{"class":36,"line":915},[34,174450,36810],{"class":580},[34,174452,3204],{"class":181},[34,174454,137667],{"class":47},[34,174456,1607],{"class":181},[34,174458,174459],{"class":54},"\"large-file.txt\"",[34,174461,4817],{"class":181},[34,174463,74548],{"class":580},[34,174465,174466],{"class":181}," $line) {\n",[34,174468,174469],{"class":36,"line":927},[34,174470,174471],{"class":40},"    // Process one line at a time\n",[34,174473,174474],{"class":36,"line":932},[34,174475,693],{"class":181},[34,174477,174478],{"class":36,"line":944},[34,174479,62],{"emptyLinePlaceholder":61},[34,174481,174482],{"class":36,"line":966},[34,174483,174484],{"class":40},"// Generator with return value\n",[34,174486,174487,174489,174491,174493,174495,174497],{"class":36,"line":1948},[34,174488,11044],{"class":580},[34,174490,31325],{"class":47},[34,174492,1546],{"class":181},[34,174494,165],{"class":580},[34,174496,174147],{"class":50},[34,174498,661],{"class":181},[34,174500,174501,174503,174505],{"class":36,"line":1953},[34,174502,174253],{"class":580},[34,174504,3567],{"class":50},[34,174506,593],{"class":181},[34,174508,174509,174511,174513],{"class":36,"line":3616},[34,174510,174253],{"class":580},[34,174512,4292],{"class":50},[34,174514,593],{"class":181},[34,174516,174517,174519,174522],{"class":36,"line":3622},[34,174518,1564],{"class":580},[34,174520,174521],{"class":54}," \"done\"",[34,174523,593],{"class":181},[34,174525,174526],{"class":36,"line":3642},[34,174527,693],{"class":181},[34,174529,174530],{"class":36,"line":3657},[34,174531,62],{"emptyLinePlaceholder":61},[34,174533,174534,174537,174539,174541],{"class":36,"line":3663},[34,174535,174536],{"class":181},"$gen ",[34,174538,1301],{"class":580},[34,174540,31325],{"class":47},[34,174542,851],{"class":181},[34,174544,174545,174547,174550,174552],{"class":36,"line":3669},[34,174546,36810],{"class":580},[34,174548,174549],{"class":181}," ($gen ",[34,174551,74548],{"class":580},[34,174553,174554],{"class":181}," $val) {}\n",[34,174556,174557,174559,174562,174564,174567,174569],{"class":36,"line":3675},[34,174558,10120],{"class":50},[34,174560,174561],{"class":181}," $gen",[34,174563,24863],{"class":580},[34,174565,174566],{"class":47},"getReturn",[34,174568,68957],{"class":181},[34,174570,174571],{"class":40},"// \"done\"\n",[388,174573,173233],{},{"title":30,"searchDepth":44,"depth":44,"links":174575},[174576],{"id":174113,"depth":44,"text":174108},"Generators in PHP.",{},"/php/generators",{"title":174108,"description":174577},"php/generators",[139955,46870,38615,15678],"5EOLi7R4OY8E81TsdZs6_828YGRZh25UMe5nIOVziHI",{"id":174585,"title":174586,"body":174587,"date":402,"description":174967,"extension":404,"meta":174968,"navigation":61,"order":771,"path":174969,"seo":174970,"stem":174971,"subject":139955,"tags":174972,"__hash__":174973},"topics/php/http-client-curl.md","HTTP Client (cURL)",{"type":8,"value":174588,"toc":174964},[174589,174592,174962],[11,174590,174586],{"id":174591},"http-client-curl",[25,174593,174595],{"className":139953,"code":174594,"language":139955,"meta":30,"style":30},"\u003C?php\n// Simple GET request\n$response = file_get_contents(\"https://api.example.com/data\");\n\n// cURL GET\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => \"https://api.example.com/data\",\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER => [\"Authorization: Bearer $token\"]\n]);\n$response = curl_exec($ch);\n$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);\ncurl_close($ch);\n\n// cURL POST with JSON\n$ch = curl_init();\ncurl_setopt_array($ch, [\n    CURLOPT_URL => \"https://api.example.com/users\",\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_POST => true,\n    CURLOPT_POSTFIELDS => json_encode([\"name\" => \"Alice\"]),\n    CURLOPT_HTTPHEADER => [\n        \"Content-Type: application/json\",\n        \"Authorization: Bearer $token\"\n    ]\n]);\n$response = curl_exec($ch);\ncurl_close($ch);\n\n// Stream context (alternative)\n$context = stream_context_create([\n    \"http\" => [\n        \"method\" => \"POST\",\n        \"header\" => \"Content-Type: application/json\\r\\n\",\n        \"content\" => json_encode([\"name\" => \"Alice\"])\n    ]\n]);\n$response = file_get_contents($url, false, $context);\n",[20,174596,174597,174603,174608,174623,174627,174632,174644,174652,174664,174675,174694,174698,174710,174728,174735,174739,174744,174754,174760,174771,174781,174792,174813,174821,174828,174837,174841,174845,174855,174861,174865,174870,174882,174890,174902,174919,174938,174942,174946],{"__ignoreMap":30},[34,174598,174599,174601],{"class":36,"line":37},[34,174600,169799],{"class":580},[34,174602,169802],{"class":50},[34,174604,174605],{"class":36,"line":44},[34,174606,174607],{"class":40},"// Simple GET request\n",[34,174609,174610,174613,174615,174617,174619,174621],{"class":36,"line":58},[34,174611,174612],{"class":181},"$response ",[34,174614,1301],{"class":580},[34,174616,173549],{"class":50},[34,174618,1607],{"class":181},[34,174620,14771],{"class":54},[34,174622,1586],{"class":181},[34,174624,174625],{"class":36,"line":65},[34,174626,62],{"emptyLinePlaceholder":61},[34,174628,174629],{"class":36,"line":71},[34,174630,174631],{"class":40},"// cURL GET\n",[34,174633,174634,174637,174639,174642],{"class":36,"line":77},[34,174635,174636],{"class":181},"$ch ",[34,174638,1301],{"class":580},[34,174640,174641],{"class":50}," curl_init",[34,174643,851],{"class":181},[34,174645,174646,174649],{"class":36,"line":82},[34,174647,174648],{"class":50},"curl_setopt_array",[34,174650,174651],{"class":181},"($ch, [\n",[34,174653,174654,174657,174659,174662],{"class":36,"line":88},[34,174655,174656],{"class":50},"    CURLOPT_URL",[34,174658,1895],{"class":580},[34,174660,174661],{"class":54}," \"https://api.example.com/data\"",[34,174663,624],{"class":181},[34,174665,174666,174669,174671,174673],{"class":36,"line":242},[34,174667,174668],{"class":50},"    CURLOPT_RETURNTRANSFER",[34,174670,1895],{"class":580},[34,174672,32945],{"class":50},[34,174674,624],{"class":181},[34,174676,174677,174680,174682,174684,174687,174690,174692],{"class":36,"line":250},[34,174678,174679],{"class":50},"    CURLOPT_HTTPHEADER",[34,174681,1895],{"class":580},[34,174683,8315],{"class":181},[34,174685,174686],{"class":54},"\"Authorization: Bearer ",[34,174688,174689],{"class":181},"$token",[34,174691,10389],{"class":54},[34,174693,924],{"class":181},[34,174695,174696],{"class":36,"line":263},[34,174697,3599],{"class":181},[34,174699,174700,174702,174704,174707],{"class":36,"line":275},[34,174701,174612],{"class":181},[34,174703,1301],{"class":580},[34,174705,174706],{"class":50}," curl_exec",[34,174708,174709],{"class":181},"($ch);\n",[34,174711,174712,174715,174717,174720,174723,174726],{"class":36,"line":700},[34,174713,174714],{"class":181},"$httpCode ",[34,174716,1301],{"class":580},[34,174718,174719],{"class":50}," curl_getinfo",[34,174721,174722],{"class":181},"($ch, ",[34,174724,174725],{"class":50},"CURLINFO_HTTP_CODE",[34,174727,1586],{"class":181},[34,174729,174730,174733],{"class":36,"line":706},[34,174731,174732],{"class":50},"curl_close",[34,174734,174709],{"class":181},[34,174736,174737],{"class":36,"line":715},[34,174738,62],{"emptyLinePlaceholder":61},[34,174740,174741],{"class":36,"line":725},[34,174742,174743],{"class":40},"// cURL POST with JSON\n",[34,174745,174746,174748,174750,174752],{"class":36,"line":734},[34,174747,174636],{"class":181},[34,174749,1301],{"class":580},[34,174751,174641],{"class":50},[34,174753,851],{"class":181},[34,174755,174756,174758],{"class":36,"line":742},[34,174757,174648],{"class":50},[34,174759,174651],{"class":181},[34,174761,174762,174764,174766,174769],{"class":36,"line":748},[34,174763,174656],{"class":50},[34,174765,1895],{"class":580},[34,174767,174768],{"class":54}," \"https://api.example.com/users\"",[34,174770,624],{"class":181},[34,174772,174773,174775,174777,174779],{"class":36,"line":754},[34,174774,174668],{"class":50},[34,174776,1895],{"class":580},[34,174778,32945],{"class":50},[34,174780,624],{"class":181},[34,174782,174783,174786,174788,174790],{"class":36,"line":759},[34,174784,174785],{"class":50},"    CURLOPT_POST",[34,174787,1895],{"class":580},[34,174789,32945],{"class":50},[34,174791,624],{"class":181},[34,174793,174794,174797,174799,174802,174804,174806,174808,174810],{"class":36,"line":771},[34,174795,174796],{"class":50},"    CURLOPT_POSTFIELDS",[34,174798,1895],{"class":580},[34,174800,174801],{"class":50}," json_encode",[34,174803,3593],{"class":181},[34,174805,4650],{"class":54},[34,174807,1895],{"class":580},[34,174809,25138],{"class":54},[34,174811,174812],{"class":181},"]),\n",[34,174814,174815,174817,174819],{"class":36,"line":794},[34,174816,174679],{"class":50},[34,174818,1895],{"class":580},[34,174820,3304],{"class":181},[34,174822,174823,174826],{"class":36,"line":824},[34,174824,174825],{"class":54},"        \"Content-Type: application/json\"",[34,174827,624],{"class":181},[34,174829,174830,174833,174835],{"class":36,"line":830},[34,174831,174832],{"class":54},"        \"Authorization: Bearer ",[34,174834,174689],{"class":181},[34,174836,11320],{"class":54},[34,174838,174839],{"class":36,"line":839},[34,174840,128040],{"class":181},[34,174842,174843],{"class":36,"line":854},[34,174844,3599],{"class":181},[34,174846,174847,174849,174851,174853],{"class":36,"line":860},[34,174848,174612],{"class":181},[34,174850,1301],{"class":580},[34,174852,174706],{"class":50},[34,174854,174709],{"class":181},[34,174856,174857,174859],{"class":36,"line":865},[34,174858,174732],{"class":50},[34,174860,174709],{"class":181},[34,174862,174863],{"class":36,"line":870},[34,174864,62],{"emptyLinePlaceholder":61},[34,174866,174867],{"class":36,"line":876},[34,174868,174869],{"class":40},"// Stream context (alternative)\n",[34,174871,174872,174875,174877,174880],{"class":36,"line":885},[34,174873,174874],{"class":181},"$context ",[34,174876,1301],{"class":580},[34,174878,174879],{"class":50}," stream_context_create",[34,174881,83346],{"class":181},[34,174883,174884,174886,174888],{"class":36,"line":895},[34,174885,28078],{"class":54},[34,174887,1895],{"class":580},[34,174889,3304],{"class":181},[34,174891,174892,174895,174897,174900],{"class":36,"line":904},[34,174893,174894],{"class":54},"        \"method\"",[34,174896,1895],{"class":580},[34,174898,174899],{"class":54}," \"POST\"",[34,174901,624],{"class":181},[34,174903,174904,174907,174909,174912,174915,174917],{"class":36,"line":915},[34,174905,174906],{"class":54},"        \"header\"",[34,174908,1895],{"class":580},[34,174910,174911],{"class":54}," \"Content-Type: application/json",[34,174913,174914],{"class":50},"\\r\\n",[34,174916,10389],{"class":54},[34,174918,624],{"class":181},[34,174920,174921,174924,174926,174928,174930,174932,174934,174936],{"class":36,"line":927},[34,174922,174923],{"class":54},"        \"content\"",[34,174925,1895],{"class":580},[34,174927,174801],{"class":50},[34,174929,3593],{"class":181},[34,174931,4650],{"class":54},[34,174933,1895],{"class":580},[34,174935,25138],{"class":54},[34,174937,51547],{"class":181},[34,174939,174940],{"class":36,"line":932},[34,174941,128040],{"class":181},[34,174943,174944],{"class":36,"line":944},[34,174945,3599],{"class":181},[34,174947,174948,174950,174952,174954,174957,174959],{"class":36,"line":966},[34,174949,174612],{"class":181},[34,174951,1301],{"class":580},[34,174953,173549],{"class":50},[34,174955,174956],{"class":181},"($url, ",[34,174958,103387],{"class":50},[34,174960,174961],{"class":181},", $context);\n",[388,174963,170110],{},{"title":30,"searchDepth":44,"depth":44,"links":174965},[174966],{"id":174591,"depth":44,"text":174586},"HTTP Client (cURL) in PHP.",{},"/php/http-client-curl",{"title":174586,"description":174967},"php/http-client-curl",[139955,46870,38615,15678],"CKnafFWekOs9HQ0E5_IUPHdl5waIFDVkwHsxIATthpc",{"id":174975,"title":35991,"body":174976,"date":402,"description":175316,"extension":404,"meta":175317,"navigation":61,"order":242,"path":175318,"seo":175319,"stem":175320,"subject":139955,"tags":175321,"__hash__":175322},"topics/php/inheritance-interfaces.md",{"type":8,"value":174977,"toc":175313},[174978,174980,175311],[11,174979,35991],{"id":35996},[25,174981,174983],{"className":139953,"code":174982,"language":139955,"meta":30,"style":30},"\u003C?php\n// Inheritance\nclass Admin extends User {\n    public function __construct(string $name, int $age) {\n        parent::__construct($name, $age);\n    }\n\n    // Override method\n    public function greet(): string {\n        return \"Hello Admin, {$this->name}!\";\n    }\n}\n\n// Abstract class\nabstract class Shape {\n    abstract public function area(): float;\n}\n\n// Interface\ninterface Printable {\n    public function print(): void;\n}\n\n// Implementing interface\nclass Document implements Printable {\n    public function print(): void {\n        echo \"Printing...\";\n    }\n}\n\n// Traits\ntrait Loggable {\n    public function log(string $message): void {\n        echo \"[LOG] $message\";\n    }\n}\n\nclass Service {\n    use Loggable;\n}\n",[20,174984,174985,174991,174995,175008,175026,175035,175039,175043,175048,175064,175081,175085,175089,175093,175097,175107,175126,175130,175134,175138,175147,175164,175168,175172,175177,175190,175206,175215,175219,175223,175227,175232,175242,175263,175277,175281,175285,175289,175298,175307],{"__ignoreMap":30},[34,174986,174987,174989],{"class":36,"line":37},[34,174988,169799],{"class":580},[34,174990,169802],{"class":50},[34,174992,174993],{"class":36,"line":44},[34,174994,36137],{"class":40},[34,174996,174997,174999,175002,175004,175006],{"class":36,"line":58},[34,174998,30060],{"class":580},[34,175000,175001],{"class":47}," Admin",[34,175003,59185],{"class":580},[34,175005,3950],{"class":47},[34,175007,661],{"class":181},[34,175009,175010,175012,175014,175016,175018,175020,175022,175024],{"class":36,"line":65},[34,175011,34159],{"class":580},[34,175013,8037],{"class":580},[34,175015,170230],{"class":50},[34,175017,1607],{"class":181},[34,175019,30113],{"class":580},[34,175021,170607],{"class":181},[34,175023,17772],{"class":580},[34,175025,170612],{"class":181},[34,175027,175028,175030,175032],{"class":36,"line":71},[34,175029,173492],{"class":580},[34,175031,173495],{"class":47},[34,175033,175034],{"class":181},"($name, $age);\n",[34,175036,175037],{"class":36,"line":77},[34,175038,3229],{"class":181},[34,175040,175041],{"class":36,"line":82},[34,175042,62],{"emptyLinePlaceholder":61},[34,175044,175045],{"class":36,"line":88},[34,175046,175047],{"class":40},"    // Override method\n",[34,175049,175050,175052,175054,175056,175058,175060,175062],{"class":36,"line":242},[34,175051,34159],{"class":580},[34,175053,8037],{"class":580},[34,175055,11047],{"class":47},[34,175057,1546],{"class":181},[34,175059,165],{"class":580},[34,175061,680],{"class":580},[34,175063,661],{"class":181},[34,175065,175066,175068,175071,175073,175075,175077,175079],{"class":36,"line":250},[34,175067,13895],{"class":580},[34,175069,175070],{"class":54}," \"Hello Admin, {",[34,175072,135791],{"class":50},[34,175074,24863],{"class":580},[34,175076,178],{"class":181},[34,175078,170736],{"class":54},[34,175080,593],{"class":181},[34,175082,175083],{"class":36,"line":263},[34,175084,3229],{"class":181},[34,175086,175087],{"class":36,"line":275},[34,175088,693],{"class":181},[34,175090,175091],{"class":36,"line":700},[34,175092,62],{"emptyLinePlaceholder":61},[34,175094,175095],{"class":36,"line":706},[34,175096,36056],{"class":40},[34,175098,175099,175101,175103,175105],{"class":36,"line":715},[34,175100,59101],{"class":580},[34,175102,655],{"class":580},[34,175104,106427],{"class":47},[34,175106,661],{"class":181},[34,175108,175109,175111,175114,175116,175118,175120,175122,175124],{"class":36,"line":725},[34,175110,133755],{"class":580},[34,175112,175113],{"class":580}," public",[34,175115,8037],{"class":580},[34,175117,122172],{"class":47},[34,175119,1546],{"class":181},[34,175121,165],{"class":580},[34,175123,49529],{"class":580},[34,175125,593],{"class":181},[34,175127,175128],{"class":36,"line":734},[34,175129,693],{"class":181},[34,175131,175132],{"class":36,"line":742},[34,175133,62],{"emptyLinePlaceholder":61},[34,175135,175136],{"class":36,"line":748},[34,175137,36006],{"class":40},[34,175139,175140,175142,175145],{"class":36,"line":754},[34,175141,17562],{"class":580},[34,175143,175144],{"class":47}," Printable",[34,175146,661],{"class":181},[34,175148,175149,175151,175153,175156,175158,175160,175162],{"class":36,"line":759},[34,175150,34159],{"class":580},[34,175152,8037],{"class":580},[34,175154,175155],{"class":47}," print",[34,175157,1546],{"class":181},[34,175159,165],{"class":580},[34,175161,31514],{"class":580},[34,175163,593],{"class":181},[34,175165,175166],{"class":36,"line":771},[34,175167,693],{"class":181},[34,175169,175170],{"class":36,"line":794},[34,175171,62],{"emptyLinePlaceholder":61},[34,175173,175174],{"class":36,"line":824},[34,175175,175176],{"class":40},"// Implementing interface\n",[34,175178,175179,175181,175184,175186,175188],{"class":36,"line":830},[34,175180,30060],{"class":580},[34,175182,175183],{"class":47}," Document",[34,175185,2334],{"class":580},[34,175187,175144],{"class":47},[34,175189,661],{"class":181},[34,175191,175192,175194,175196,175198,175200,175202,175204],{"class":36,"line":839},[34,175193,34159],{"class":580},[34,175195,8037],{"class":580},[34,175197,175155],{"class":47},[34,175199,1546],{"class":181},[34,175201,165],{"class":580},[34,175203,31514],{"class":580},[34,175205,661],{"class":181},[34,175207,175208,175210,175213],{"class":36,"line":854},[34,175209,170466],{"class":50},[34,175211,175212],{"class":54}," \"Printing...\"",[34,175214,593],{"class":181},[34,175216,175217],{"class":36,"line":860},[34,175218,3229],{"class":181},[34,175220,175221],{"class":36,"line":865},[34,175222,693],{"class":181},[34,175224,175225],{"class":36,"line":870},[34,175226,62],{"emptyLinePlaceholder":61},[34,175228,175229],{"class":36,"line":876},[34,175230,175231],{"class":40},"// Traits\n",[34,175233,175234,175237,175240],{"class":36,"line":885},[34,175235,175236],{"class":580},"trait",[34,175238,175239],{"class":47}," Loggable",[34,175241,661],{"class":181},[34,175243,175244,175246,175248,175250,175252,175254,175257,175259,175261],{"class":36,"line":895},[34,175245,34159],{"class":580},[34,175247,8037],{"class":580},[34,175249,100651],{"class":47},[34,175251,1607],{"class":181},[34,175253,30113],{"class":580},[34,175255,175256],{"class":181}," $message)",[34,175258,165],{"class":580},[34,175260,31514],{"class":580},[34,175262,661],{"class":181},[34,175264,175265,175267,175270,175273,175275],{"class":36,"line":904},[34,175266,170466],{"class":50},[34,175268,175269],{"class":54}," \"[LOG] ",[34,175271,175272],{"class":181},"$message",[34,175274,10389],{"class":54},[34,175276,593],{"class":181},[34,175278,175279],{"class":36,"line":915},[34,175280,3229],{"class":181},[34,175282,175283],{"class":36,"line":927},[34,175284,693],{"class":181},[34,175286,175287],{"class":36,"line":932},[34,175288,62],{"emptyLinePlaceholder":61},[34,175290,175291,175293,175296],{"class":36,"line":944},[34,175292,30060],{"class":580},[34,175294,175295],{"class":47}," Service",[34,175297,661],{"class":181},[34,175299,175300,175303,175305],{"class":36,"line":966},[34,175301,175302],{"class":580},"    use",[34,175304,175239],{"class":50},[34,175306,593],{"class":181},[34,175308,175309],{"class":36,"line":1948},[34,175310,693],{"class":181},[388,175312,173233],{},{"title":30,"searchDepth":44,"depth":44,"links":175314},[175315],{"id":35996,"depth":44,"text":35991},"Inheritance & Interfaces in PHP.",{},"/php/inheritance-interfaces",{"title":35991,"description":175316},"php/inheritance-interfaces",[139955,46870,38615,15678],"EGT56b56qJqmbQ-XVsHVMm2IUlra5JxYu7LRbs1ZoBo",{"id":175324,"title":175325,"body":175326,"date":402,"description":175483,"extension":404,"meta":175484,"navigation":61,"order":275,"path":175485,"seo":175486,"stem":175487,"subject":139955,"tags":175488,"__hash__":175489},"topics/php/json-serialization.md","JSON & Serialization",{"type":8,"value":175327,"toc":175480},[175328,175331,175477],[11,175329,175325],{"id":175330},"json-serialization",[25,175332,175334],{"className":139953,"code":175333,"language":139955,"meta":30,"style":30},"\u003C?php\n// JSON encode/decode\n$json = json_encode($array);\n$data = json_decode($json, true); // true for associative array\n\n// Check for errors\nif (json_last_error() !== JSON_ERROR_NONE) {\n    echo json_last_error_msg();\n}\n\n// Pretty print\n$json = json_encode($data, JSON_PRETTY_PRINT);\n\n// Serialize/unserialize\n$serialized = serialize($data);\n$data = unserialize($serialized);\n",[20,175335,175336,175342,175347,175359,175379,175383,175388,175406,175415,175419,175423,175428,175443,175447,175452,175465],{"__ignoreMap":30},[34,175337,175338,175340],{"class":36,"line":37},[34,175339,169799],{"class":580},[34,175341,169802],{"class":50},[34,175343,175344],{"class":36,"line":44},[34,175345,175346],{"class":40},"// JSON encode/decode\n",[34,175348,175349,175352,175354,175356],{"class":36,"line":58},[34,175350,175351],{"class":181},"$json ",[34,175353,1301],{"class":580},[34,175355,174801],{"class":50},[34,175357,175358],{"class":181},"($array);\n",[34,175360,175361,175364,175366,175369,175372,175374,175376],{"class":36,"line":65},[34,175362,175363],{"class":181},"$data ",[34,175365,1301],{"class":580},[34,175367,175368],{"class":50}," json_decode",[34,175370,175371],{"class":181},"($json, ",[34,175373,632],{"class":50},[34,175375,8260],{"class":181},[34,175377,175378],{"class":40},"// true for associative array\n",[34,175380,175381],{"class":36,"line":71},[34,175382,62],{"emptyLinePlaceholder":61},[34,175384,175385],{"class":36,"line":77},[34,175386,175387],{"class":40},"// Check for errors\n",[34,175389,175390,175392,175394,175397,175399,175401,175404],{"class":36,"line":82},[34,175391,10383],{"class":580},[34,175393,3204],{"class":181},[34,175395,175396],{"class":50},"json_last_error",[34,175398,672],{"class":181},[34,175400,48741],{"class":580},[34,175402,175403],{"class":50}," JSON_ERROR_NONE",[34,175405,2416],{"class":181},[34,175407,175408,175410,175413],{"class":36,"line":88},[34,175409,170979],{"class":50},[34,175411,175412],{"class":50}," json_last_error_msg",[34,175414,851],{"class":181},[34,175416,175417],{"class":36,"line":242},[34,175418,693],{"class":181},[34,175420,175421],{"class":36,"line":250},[34,175422,62],{"emptyLinePlaceholder":61},[34,175424,175425],{"class":36,"line":263},[34,175426,175427],{"class":40},"// Pretty print\n",[34,175429,175430,175432,175434,175436,175438,175441],{"class":36,"line":275},[34,175431,175351],{"class":181},[34,175433,1301],{"class":580},[34,175435,174801],{"class":50},[34,175437,172239],{"class":181},[34,175439,175440],{"class":50},"JSON_PRETTY_PRINT",[34,175442,1586],{"class":181},[34,175444,175445],{"class":36,"line":700},[34,175446,62],{"emptyLinePlaceholder":61},[34,175448,175449],{"class":36,"line":706},[34,175450,175451],{"class":40},"// Serialize/unserialize\n",[34,175453,175454,175457,175459,175462],{"class":36,"line":715},[34,175455,175456],{"class":181},"$serialized ",[34,175458,1301],{"class":580},[34,175460,175461],{"class":50}," serialize",[34,175463,175464],{"class":181},"($data);\n",[34,175466,175467,175469,175471,175474],{"class":36,"line":725},[34,175468,175363],{"class":181},[34,175470,1301],{"class":580},[34,175472,175473],{"class":50}," unserialize",[34,175475,175476],{"class":181},"($serialized);\n",[388,175478,175479],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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":30,"searchDepth":44,"depth":44,"links":175481},[175482],{"id":175330,"depth":44,"text":175325},"JSON & Serialization in PHP.",{},"/php/json-serialization",{"title":175325,"description":175483},"php/json-serialization",[139955,46870,38615,15678],"ApuqClkTD7_M4DQh5pVF4xSWc4g0AX2hmdVrvz7saw4",{"id":175491,"title":11769,"body":175492,"date":402,"description":175706,"extension":404,"meta":175707,"navigation":61,"order":77,"path":175708,"seo":175709,"stem":175710,"subject":139955,"tags":175711,"__hash__":175712},"topics/php/loops.md",{"type":8,"value":175493,"toc":175703},[175494,175496,175701],[11,175495,11769],{"id":11774},[25,175497,175499],{"className":139953,"code":175498,"language":139955,"meta":30,"style":30},"\u003C?php\n// For loop\nfor ($i = 0; $i \u003C 10; $i++) {\n    echo $i;\n}\n\n// While loop\nwhile ($condition) {\n    // code\n}\n\n// Do-while loop\ndo {\n    // code\n} while ($condition);\n\n// Foreach\nforeach ($items as $item) {\n    echo $item;\n}\n\n// Foreach with key\nforeach ($person as $key => $value) {\n    echo \"$key: $value\";\n}\n\n// Loop control\nbreak;      // Exit loop\ncontinue;   // Skip iteration\n",[20,175500,175501,175507,175511,175534,175540,175544,175548,175552,175559,175563,175567,175571,175575,175581,175585,175594,175598,175603,175615,175622,175626,175630,175635,175652,175670,175674,175678,175683,175692],{"__ignoreMap":30},[34,175502,175503,175505],{"class":36,"line":37},[34,175504,169799],{"class":580},[34,175506,169802],{"class":50},[34,175508,175509],{"class":36,"line":44},[34,175510,19195],{"class":40},[34,175512,175513,175515,175517,175519,175521,175523,175525,175527,175530,175532],{"class":36,"line":58},[34,175514,10246],{"class":580},[34,175516,174156],{"class":181},[34,175518,1301],{"class":580},[34,175520,8070],{"class":50},[34,175522,174163],{"class":181},[34,175524,815],{"class":580},[34,175526,13123],{"class":50},[34,175528,175529],{"class":181},"; $i",[34,175531,11928],{"class":580},[34,175533,2416],{"class":181},[34,175535,175536,175538],{"class":36,"line":65},[34,175537,170979],{"class":50},[34,175539,174179],{"class":181},[34,175541,175542],{"class":36,"line":71},[34,175543,693],{"class":181},[34,175545,175546],{"class":36,"line":77},[34,175547,62],{"emptyLinePlaceholder":61},[34,175549,175550],{"class":36,"line":82},[34,175551,19081],{"class":40},[34,175553,175554,175556],{"class":36,"line":88},[34,175555,12005],{"class":580},[34,175557,175558],{"class":181}," ($condition) {\n",[34,175560,175561],{"class":36,"line":242},[34,175562,30642],{"class":40},[34,175564,175565],{"class":36,"line":250},[34,175566,693],{"class":181},[34,175568,175569],{"class":36,"line":263},[34,175570,62],{"emptyLinePlaceholder":61},[34,175572,175573],{"class":36,"line":275},[34,175574,31802],{"class":40},[34,175576,175577,175579],{"class":36,"line":700},[34,175578,19148],{"class":580},[34,175580,661],{"class":181},[34,175582,175583],{"class":36,"line":706},[34,175584,30642],{"class":40},[34,175586,175587,175589,175591],{"class":36,"line":715},[34,175588,2276],{"class":181},[34,175590,12005],{"class":580},[34,175592,175593],{"class":181}," ($condition);\n",[34,175595,175596],{"class":36,"line":725},[34,175597,62],{"emptyLinePlaceholder":61},[34,175599,175600],{"class":36,"line":734},[34,175601,175602],{"class":40},"// Foreach\n",[34,175604,175605,175607,175610,175612],{"class":36,"line":742},[34,175606,36810],{"class":580},[34,175608,175609],{"class":181}," ($items ",[34,175611,74548],{"class":580},[34,175613,175614],{"class":181}," $item) {\n",[34,175616,175617,175619],{"class":36,"line":748},[34,175618,170979],{"class":50},[34,175620,175621],{"class":181}," $item;\n",[34,175623,175624],{"class":36,"line":754},[34,175625,693],{"class":181},[34,175627,175628],{"class":36,"line":759},[34,175629,62],{"emptyLinePlaceholder":61},[34,175631,175632],{"class":36,"line":771},[34,175633,175634],{"class":40},"// Foreach with key\n",[34,175636,175637,175639,175642,175644,175647,175649],{"class":36,"line":794},[34,175638,36810],{"class":580},[34,175640,175641],{"class":181}," ($person ",[34,175643,74548],{"class":580},[34,175645,175646],{"class":181}," $key ",[34,175648,3361],{"class":580},[34,175650,175651],{"class":181}," $value) {\n",[34,175653,175654,175656,175658,175661,175663,175666,175668],{"class":36,"line":824},[34,175655,170979],{"class":50},[34,175657,10326],{"class":54},[34,175659,175660],{"class":181},"$key",[34,175662,182],{"class":54},[34,175664,175665],{"class":181},"$value",[34,175667,10389],{"class":54},[34,175669,593],{"class":181},[34,175671,175672],{"class":36,"line":830},[34,175673,693],{"class":181},[34,175675,175676],{"class":36,"line":839},[34,175677,62],{"emptyLinePlaceholder":61},[34,175679,175680],{"class":36,"line":854},[34,175681,175682],{"class":40},"// Loop control\n",[34,175684,175685,175687,175689],{"class":36,"line":860},[34,175686,19289],{"class":580},[34,175688,42028],{"class":181},[34,175690,175691],{"class":40},"// Exit loop\n",[34,175693,175694,175696,175698],{"class":36,"line":865},[34,175695,19313],{"class":580},[34,175697,42619],{"class":181},[34,175699,175700],{"class":40},"// Skip iteration\n",[388,175702,170110],{},{"title":30,"searchDepth":44,"depth":44,"links":175704},[175705],{"id":11774,"depth":44,"text":11769},"Loops in PHP.",{},"/php/loops",{"title":11769,"description":175706},"php/loops",[139955,46870,38615,15678],"kNe11BLr8m_YLD-Q8j9aEU7ghj4FitAB_OiN1dGJwkU",{"id":175714,"title":175715,"body":175716,"date":402,"description":176393,"extension":404,"meta":176394,"navigation":61,"order":754,"path":176395,"seo":176396,"stem":176397,"subject":139955,"tags":176398,"__hash__":176399},"topics/php/magic-methods.md","Magic Methods",{"type":8,"value":175717,"toc":176390},[175718,175721,176388],[11,175719,175715],{"id":175720},"magic-methods",[25,175722,175724],{"className":139953,"code":175723,"language":139955,"meta":30,"style":30},"\u003C?php\nclass MagicClass {\n    private array $data = [];\n\n    // Called when accessing inaccessible properties\n    public function __get(string $name): mixed {\n        return $this->data[$name] ?? null;\n    }\n\n    // Called when setting inaccessible properties\n    public function __set(string $name, mixed $value): void {\n        $this->data[$name] = $value;\n    }\n\n    // Called when checking isset() on inaccessible properties\n    public function __isset(string $name): bool {\n        return isset($this->data[$name]);\n    }\n\n    // Called when unset() on inaccessible properties\n    public function __unset(string $name): void {\n        unset($this->data[$name]);\n    }\n\n    // Called when invoking inaccessible methods\n    public function __call(string $name, array $args): mixed {\n        return \"Called $name with \" . count($args) . \" args\";\n    }\n\n    // Called when invoking inaccessible static methods\n    public static function __callStatic(string $name, array $args): mixed {\n        return \"Static called $name\";\n    }\n\n    // Called when object is used as string\n    public function __toString(): string {\n        return json_encode($this->data);\n    }\n\n    // Called when object is invoked as function\n    public function __invoke(...$args): mixed {\n        return \"Invoked with \" . count($args) . \" args\";\n    }\n\n    // Called for var_export()\n    public static function __set_state(array $data): object {\n        $obj = new self();\n        $obj->data = $data;\n        return $obj;\n    }\n\n    // Called for serialize()\n    public function __serialize(): array {\n        return $this->data;\n    }\n\n    // Called for unserialize()\n    public function __unserialize(array $data): void {\n        $this->data = $data;\n    }\n\n    // Called when cloning object\n    public function __clone(): void {\n        $this->data = array_merge([], $this->data);\n    }\n}\n",[20,175725,175726,175732,175741,175754,175758,175763,175786,175803,175807,175811,175816,175843,175856,175860,175864,175869,175890,175906,175910,175914,175919,175940,175953,175957,175961,175966,175992,176018,176022,176026,176031,176058,176071,176075,176079,176084,176101,176116,176120,176124,176129,176151,176170,176174,176178,176183,176207,176220,176235,176242,176246,176250,176255,176272,176282,176286,176290,176295,176316,176328,176332,176336,176341,176358,176380,176384],{"__ignoreMap":30},[34,175727,175728,175730],{"class":36,"line":37},[34,175729,169799],{"class":580},[34,175731,169802],{"class":50},[34,175733,175734,175736,175739],{"class":36,"line":44},[34,175735,30060],{"class":580},[34,175737,175738],{"class":47}," MagicClass",[34,175740,661],{"class":181},[34,175742,175743,175745,175747,175750,175752],{"class":36,"line":58},[34,175744,34138],{"class":580},[34,175746,19929],{"class":580},[34,175748,175749],{"class":181}," $data ",[34,175751,1301],{"class":580},[34,175753,4068],{"class":181},[34,175755,175756],{"class":36,"line":65},[34,175757,62],{"emptyLinePlaceholder":61},[34,175759,175760],{"class":36,"line":71},[34,175761,175762],{"class":40},"    // Called when accessing inaccessible properties\n",[34,175764,175765,175767,175769,175772,175774,175776,175779,175781,175784],{"class":36,"line":77},[34,175766,34159],{"class":580},[34,175768,8037],{"class":580},[34,175770,175771],{"class":50}," __get",[34,175773,1607],{"class":181},[34,175775,30113],{"class":580},[34,175777,175778],{"class":181}," $name)",[34,175780,165],{"class":580},[34,175782,175783],{"class":580}," mixed",[34,175785,661],{"class":181},[34,175787,175788,175790,175792,175794,175797,175799,175801],{"class":36,"line":82},[34,175789,13895],{"class":580},[34,175791,170817],{"class":50},[34,175793,24863],{"class":580},[34,175795,175796],{"class":181},"data[$name] ",[34,175798,34195],{"class":580},[34,175800,13898],{"class":50},[34,175802,593],{"class":181},[34,175804,175805],{"class":36,"line":88},[34,175806,3229],{"class":181},[34,175808,175809],{"class":36,"line":242},[34,175810,62],{"emptyLinePlaceholder":61},[34,175812,175813],{"class":36,"line":250},[34,175814,175815],{"class":40},"    // Called when setting inaccessible properties\n",[34,175817,175818,175820,175822,175825,175827,175829,175831,175834,175837,175839,175841],{"class":36,"line":263},[34,175819,34159],{"class":580},[34,175821,8037],{"class":580},[34,175823,175824],{"class":50}," __set",[34,175826,1607],{"class":181},[34,175828,30113],{"class":580},[34,175830,170607],{"class":181},[34,175832,175833],{"class":580},"mixed",[34,175835,175836],{"class":181}," $value)",[34,175838,165],{"class":580},[34,175840,31514],{"class":580},[34,175842,661],{"class":181},[34,175844,175845,175847,175849,175851,175853],{"class":36,"line":275},[34,175846,170617],{"class":50},[34,175848,24863],{"class":580},[34,175850,175796],{"class":181},[34,175852,1301],{"class":580},[34,175854,175855],{"class":181}," $value;\n",[34,175857,175858],{"class":36,"line":700},[34,175859,3229],{"class":181},[34,175861,175862],{"class":36,"line":706},[34,175863,62],{"emptyLinePlaceholder":61},[34,175865,175866],{"class":36,"line":715},[34,175867,175868],{"class":40},"    // Called when checking isset() on inaccessible properties\n",[34,175870,175871,175873,175875,175878,175880,175882,175884,175886,175888],{"class":36,"line":725},[34,175872,34159],{"class":580},[34,175874,8037],{"class":580},[34,175876,175877],{"class":50}," __isset",[34,175879,1607],{"class":181},[34,175881,30113],{"class":580},[34,175883,175778],{"class":181},[34,175885,165],{"class":580},[34,175887,37127],{"class":580},[34,175889,661],{"class":181},[34,175891,175892,175894,175897,175899,175901,175903],{"class":36,"line":734},[34,175893,13895],{"class":580},[34,175895,175896],{"class":50}," isset",[34,175898,1607],{"class":181},[34,175900,135791],{"class":50},[34,175902,24863],{"class":580},[34,175904,175905],{"class":181},"data[$name]);\n",[34,175907,175908],{"class":36,"line":742},[34,175909,3229],{"class":181},[34,175911,175912],{"class":36,"line":748},[34,175913,62],{"emptyLinePlaceholder":61},[34,175915,175916],{"class":36,"line":754},[34,175917,175918],{"class":40},"    // Called when unset() on inaccessible properties\n",[34,175920,175921,175923,175925,175928,175930,175932,175934,175936,175938],{"class":36,"line":759},[34,175922,34159],{"class":580},[34,175924,8037],{"class":580},[34,175926,175927],{"class":50}," __unset",[34,175929,1607],{"class":181},[34,175931,30113],{"class":580},[34,175933,175778],{"class":181},[34,175935,165],{"class":580},[34,175937,31514],{"class":580},[34,175939,661],{"class":181},[34,175941,175942,175945,175947,175949,175951],{"class":36,"line":771},[34,175943,175944],{"class":50},"        unset",[34,175946,1607],{"class":181},[34,175948,135791],{"class":50},[34,175950,24863],{"class":580},[34,175952,175905],{"class":181},[34,175954,175955],{"class":36,"line":794},[34,175956,3229],{"class":181},[34,175958,175959],{"class":36,"line":824},[34,175960,62],{"emptyLinePlaceholder":61},[34,175962,175963],{"class":36,"line":830},[34,175964,175965],{"class":40},"    // Called when invoking inaccessible methods\n",[34,175967,175968,175970,175972,175975,175977,175979,175981,175983,175986,175988,175990],{"class":36,"line":839},[34,175969,34159],{"class":580},[34,175971,8037],{"class":580},[34,175973,175974],{"class":50}," __call",[34,175976,1607],{"class":181},[34,175978,30113],{"class":580},[34,175980,170607],{"class":181},[34,175982,19979],{"class":580},[34,175984,175985],{"class":181}," $args)",[34,175987,165],{"class":580},[34,175989,175783],{"class":580},[34,175991,661],{"class":181},[34,175993,175994,175996,175999,176001,176004,176006,176008,176011,176013,176016],{"class":36,"line":854},[34,175995,13895],{"class":580},[34,175997,175998],{"class":54}," \"Called ",[34,176000,10392],{"class":181},[34,176002,176003],{"class":54}," with \"",[34,176005,100566],{"class":580},[34,176007,161661],{"class":50},[34,176009,176010],{"class":181},"($args) ",[34,176012,151],{"class":580},[34,176014,176015],{"class":54}," \" args\"",[34,176017,593],{"class":181},[34,176019,176020],{"class":36,"line":860},[34,176021,3229],{"class":181},[34,176023,176024],{"class":36,"line":865},[34,176025,62],{"emptyLinePlaceholder":61},[34,176027,176028],{"class":36,"line":870},[34,176029,176030],{"class":40},"    // Called when invoking inaccessible static methods\n",[34,176032,176033,176035,176037,176039,176042,176044,176046,176048,176050,176052,176054,176056],{"class":36,"line":876},[34,176034,34159],{"class":580},[34,176036,51421],{"class":580},[34,176038,8037],{"class":580},[34,176040,176041],{"class":50}," __callStatic",[34,176043,1607],{"class":181},[34,176045,30113],{"class":580},[34,176047,170607],{"class":181},[34,176049,19979],{"class":580},[34,176051,175985],{"class":181},[34,176053,165],{"class":580},[34,176055,175783],{"class":580},[34,176057,661],{"class":181},[34,176059,176060,176062,176065,176067,176069],{"class":36,"line":885},[34,176061,13895],{"class":580},[34,176063,176064],{"class":54}," \"Static called ",[34,176066,10392],{"class":181},[34,176068,10389],{"class":54},[34,176070,593],{"class":181},[34,176072,176073],{"class":36,"line":895},[34,176074,3229],{"class":181},[34,176076,176077],{"class":36,"line":904},[34,176078,62],{"emptyLinePlaceholder":61},[34,176080,176081],{"class":36,"line":915},[34,176082,176083],{"class":40},"    // Called when object is used as string\n",[34,176085,176086,176088,176090,176093,176095,176097,176099],{"class":36,"line":927},[34,176087,34159],{"class":580},[34,176089,8037],{"class":580},[34,176091,176092],{"class":50}," __toString",[34,176094,1546],{"class":181},[34,176096,165],{"class":580},[34,176098,680],{"class":580},[34,176100,661],{"class":181},[34,176102,176103,176105,176107,176109,176111,176113],{"class":36,"line":932},[34,176104,13895],{"class":580},[34,176106,174801],{"class":50},[34,176108,1607],{"class":181},[34,176110,135791],{"class":50},[34,176112,24863],{"class":580},[34,176114,176115],{"class":181},"data);\n",[34,176117,176118],{"class":36,"line":944},[34,176119,3229],{"class":181},[34,176121,176122],{"class":36,"line":966},[34,176123,62],{"emptyLinePlaceholder":61},[34,176125,176126],{"class":36,"line":1948},[34,176127,176128],{"class":40},"    // Called when object is invoked as function\n",[34,176130,176131,176133,176135,176138,176140,176142,176145,176147,176149],{"class":36,"line":1953},[34,176132,34159],{"class":580},[34,176134,8037],{"class":580},[34,176136,176137],{"class":50}," __invoke",[34,176139,1607],{"class":181},[34,176141,16841],{"class":580},[34,176143,176144],{"class":181},"$args)",[34,176146,165],{"class":580},[34,176148,175783],{"class":580},[34,176150,661],{"class":181},[34,176152,176153,176155,176158,176160,176162,176164,176166,176168],{"class":36,"line":3616},[34,176154,13895],{"class":580},[34,176156,176157],{"class":54}," \"Invoked with \"",[34,176159,100566],{"class":580},[34,176161,161661],{"class":50},[34,176163,176010],{"class":181},[34,176165,151],{"class":580},[34,176167,176015],{"class":54},[34,176169,593],{"class":181},[34,176171,176172],{"class":36,"line":3622},[34,176173,3229],{"class":181},[34,176175,176176],{"class":36,"line":3642},[34,176177,62],{"emptyLinePlaceholder":61},[34,176179,176180],{"class":36,"line":3657},[34,176181,176182],{"class":40},"    // Called for var_export()\n",[34,176184,176185,176187,176189,176191,176194,176196,176198,176201,176203,176205],{"class":36,"line":3663},[34,176186,34159],{"class":580},[34,176188,51421],{"class":580},[34,176190,8037],{"class":580},[34,176192,176193],{"class":50}," __set_state",[34,176195,1607],{"class":181},[34,176197,19979],{"class":580},[34,176199,176200],{"class":181}," $data)",[34,176202,165],{"class":580},[34,176204,38082],{"class":580},[34,176206,661],{"class":181},[34,176208,176209,176212,176214,176216,176218],{"class":36,"line":3669},[34,176210,176211],{"class":181},"        $obj ",[34,176213,1301],{"class":580},[34,176215,809],{"class":580},[34,176217,74044],{"class":580},[34,176219,851],{"class":181},[34,176221,176222,176225,176227,176230,176232],{"class":36,"line":3675},[34,176223,176224],{"class":181},"        $obj",[34,176226,24863],{"class":580},[34,176228,176229],{"class":181},"data ",[34,176231,1301],{"class":580},[34,176233,176234],{"class":181}," $data;\n",[34,176236,176237,176239],{"class":36,"line":3693},[34,176238,13895],{"class":580},[34,176240,176241],{"class":181}," $obj;\n",[34,176243,176244],{"class":36,"line":3707},[34,176245,3229],{"class":181},[34,176247,176248],{"class":36,"line":3712},[34,176249,62],{"emptyLinePlaceholder":61},[34,176251,176252],{"class":36,"line":3717},[34,176253,176254],{"class":40},"    // Called for serialize()\n",[34,176256,176257,176259,176261,176264,176266,176268,176270],{"class":36,"line":25776},[34,176258,34159],{"class":580},[34,176260,8037],{"class":580},[34,176262,176263],{"class":50}," __serialize",[34,176265,1546],{"class":181},[34,176267,165],{"class":580},[34,176269,19929],{"class":580},[34,176271,661],{"class":181},[34,176273,176274,176276,176278,176280],{"class":36,"line":49902},[34,176275,13895],{"class":580},[34,176277,170817],{"class":50},[34,176279,24863],{"class":580},[34,176281,18344],{"class":181},[34,176283,176284],{"class":36,"line":52569},[34,176285,3229],{"class":181},[34,176287,176288],{"class":36,"line":52574},[34,176289,62],{"emptyLinePlaceholder":61},[34,176291,176292],{"class":36,"line":52580},[34,176293,176294],{"class":40},"    // Called for unserialize()\n",[34,176296,176297,176299,176301,176304,176306,176308,176310,176312,176314],{"class":36,"line":52608},[34,176298,34159],{"class":580},[34,176300,8037],{"class":580},[34,176302,176303],{"class":50}," __unserialize",[34,176305,1607],{"class":181},[34,176307,19979],{"class":580},[34,176309,176200],{"class":181},[34,176311,165],{"class":580},[34,176313,31514],{"class":580},[34,176315,661],{"class":181},[34,176317,176318,176320,176322,176324,176326],{"class":36,"line":52625},[34,176319,170617],{"class":50},[34,176321,24863],{"class":580},[34,176323,176229],{"class":181},[34,176325,1301],{"class":580},[34,176327,176234],{"class":181},[34,176329,176330],{"class":36,"line":52636},[34,176331,3229],{"class":181},[34,176333,176334],{"class":36,"line":52645},[34,176335,62],{"emptyLinePlaceholder":61},[34,176337,176338],{"class":36,"line":52650},[34,176339,176340],{"class":40},"    // Called when cloning object\n",[34,176342,176343,176345,176347,176350,176352,176354,176356],{"class":36,"line":52655},[34,176344,34159],{"class":580},[34,176346,8037],{"class":580},[34,176348,176349],{"class":50}," __clone",[34,176351,1546],{"class":181},[34,176353,165],{"class":580},[34,176355,31514],{"class":580},[34,176357,661],{"class":181},[34,176359,176360,176362,176364,176366,176368,176371,176374,176376,176378],{"class":36,"line":52660},[34,176361,170617],{"class":50},[34,176363,24863],{"class":580},[34,176365,176229],{"class":181},[34,176367,1301],{"class":580},[34,176369,176370],{"class":50}," array_merge",[34,176372,176373],{"class":181},"([], ",[34,176375,135791],{"class":50},[34,176377,24863],{"class":580},[34,176379,176115],{"class":181},[34,176381,176382],{"class":36,"line":52665},[34,176383,3229],{"class":181},[34,176385,176386],{"class":36,"line":52672},[34,176387,693],{"class":181},[388,176389,170927],{},{"title":30,"searchDepth":44,"depth":44,"links":176391},[176392],{"id":175720,"depth":44,"text":175715},"Magic Methods in PHP.",{},"/php/magic-methods",{"title":175715,"description":176393},"php/magic-methods",[139955,46870,38615,15678],"bhJth9wOdeUT2tcIg7JYDHZlbClCOnZMy_TyAMjekvc",{"id":176401,"title":176402,"body":176403,"date":402,"description":176719,"extension":404,"meta":176720,"navigation":61,"order":734,"path":176721,"seo":176722,"stem":176723,"subject":139955,"tags":176724,"__hash__":176725},"topics/php/namespaces-autoloading.md","Namespaces & Autoloading",{"type":8,"value":176404,"toc":176716},[176405,176408,176714],[11,176406,176402],{"id":176407},"namespaces-autoloading",[25,176409,176411],{"className":139953,"code":176410,"language":139955,"meta":30,"style":30},"\u003C?php\n// Define namespace\nnamespace App\\Models;\n\nclass User {\n    // ...\n}\n\n// Using namespaces\nnamespace App\\Controllers;\n\nuse App\\Models\\User;\nuse App\\Models\\Post as BlogPost;  // Alias\nuse function App\\Helpers\\format;  // Import function\nuse const App\\Config\\VERSION;     // Import constant\n\n$user = new User();\n$post = new BlogPost();\n\n// Fully qualified name\n$user = new \\App\\Models\\User();\n\n// PSR-4 Autoloading (composer.json)\n// {\n//     \"autoload\": {\n//         \"psr-4\": {\n//             \"App\\\\\": \"src/\"\n//         }\n//     }\n// }\n\n// Manual autoloader\nspl_autoload_register(function ($class) {\n    $file = __DIR__ . \"/\" . str_replace(\"\\\\\", \"/\", $class) . \".php\";\n    if (file_exists($file)) {\n        require $file;\n    }\n});\n",[20,176412,176413,176419,176424,176432,176436,176444,176449,176453,176457,176462,176471,176475,176484,176501,176515,176529,176533,176545,176558,176562,176567,176580,176584,176589,176594,176599,176604,176609,176614,176619,176624,176628,176633,176645,176687,176698,176706,176710],{"__ignoreMap":30},[34,176414,176415,176417],{"class":36,"line":37},[34,176416,169799],{"class":580},[34,176418,169802],{"class":50},[34,176420,176421],{"class":36,"line":44},[34,176422,176423],{"class":40},"// Define namespace\n",[34,176425,176426,176428,176430],{"class":36,"line":58},[34,176427,140055],{"class":580},[34,176429,140178],{"class":47},[34,176431,593],{"class":181},[34,176433,176434],{"class":36,"line":65},[34,176435,62],{"emptyLinePlaceholder":61},[34,176437,176438,176440,176442],{"class":36,"line":71},[34,176439,30060],{"class":580},[34,176441,3950],{"class":47},[34,176443,661],{"class":181},[34,176445,176446],{"class":36,"line":77},[34,176447,176448],{"class":40},"    // ...\n",[34,176450,176451],{"class":36,"line":82},[34,176452,693],{"class":181},[34,176454,176455],{"class":36,"line":88},[34,176456,62],{"emptyLinePlaceholder":61},[34,176458,176459],{"class":36,"line":242},[34,176460,176461],{"class":40},"// Using namespaces\n",[34,176463,176464,176466,176469],{"class":36,"line":250},[34,176465,140055],{"class":580},[34,176467,176468],{"class":47}," App\\Controllers",[34,176470,593],{"class":181},[34,176472,176473],{"class":36,"line":263},[34,176474,62],{"emptyLinePlaceholder":61},[34,176476,176477,176479,176482],{"class":36,"line":275},[34,176478,61898],{"class":580},[34,176480,176481],{"class":50}," App\\Models\\User",[34,176483,593],{"class":181},[34,176485,176486,176488,176491,176493,176496,176498],{"class":36,"line":700},[34,176487,61898],{"class":580},[34,176489,176490],{"class":50}," App\\Models\\Post",[34,176492,91551],{"class":580},[34,176494,176495],{"class":47}," BlogPost",[34,176497,124981],{"class":181},[34,176499,176500],{"class":40},"// Alias\n",[34,176502,176503,176505,176507,176510,176512],{"class":36,"line":706},[34,176504,61898],{"class":580},[34,176506,8037],{"class":580},[34,176508,176509],{"class":50}," App\\Helpers\\format",[34,176511,124981],{"class":181},[34,176513,176514],{"class":40},"// Import function\n",[34,176516,176517,176519,176521,176524,176526],{"class":36,"line":715},[34,176518,61898],{"class":580},[34,176520,3291],{"class":580},[34,176522,176523],{"class":50}," App\\Config\\VERSION",[34,176525,38334],{"class":181},[34,176527,176528],{"class":40},"// Import constant\n",[34,176530,176531],{"class":36,"line":725},[34,176532,62],{"emptyLinePlaceholder":61},[34,176534,176535,176537,176539,176541,176543],{"class":36,"line":734},[34,176536,170885],{"class":181},[34,176538,1301],{"class":580},[34,176540,809],{"class":580},[34,176542,3950],{"class":50},[34,176544,851],{"class":181},[34,176546,176547,176550,176552,176554,176556],{"class":36,"line":742},[34,176548,176549],{"class":181},"$post ",[34,176551,1301],{"class":580},[34,176553,809],{"class":580},[34,176555,176495],{"class":50},[34,176557,851],{"class":181},[34,176559,176560],{"class":36,"line":748},[34,176561,62],{"emptyLinePlaceholder":61},[34,176563,176564],{"class":36,"line":754},[34,176565,176566],{"class":40},"// Fully qualified name\n",[34,176568,176569,176571,176573,176575,176578],{"class":36,"line":759},[34,176570,170885],{"class":181},[34,176572,1301],{"class":580},[34,176574,809],{"class":580},[34,176576,176577],{"class":50}," \\App\\Models\\User",[34,176579,851],{"class":181},[34,176581,176582],{"class":36,"line":771},[34,176583,62],{"emptyLinePlaceholder":61},[34,176585,176586],{"class":36,"line":794},[34,176587,176588],{"class":40},"// PSR-4 Autoloading (composer.json)\n",[34,176590,176591],{"class":36,"line":824},[34,176592,176593],{"class":40},"// {\n",[34,176595,176596],{"class":36,"line":830},[34,176597,176598],{"class":40},"//     \"autoload\": {\n",[34,176600,176601],{"class":36,"line":839},[34,176602,176603],{"class":40},"//         \"psr-4\": {\n",[34,176605,176606],{"class":36,"line":854},[34,176607,176608],{"class":40},"//             \"App\\\\\": \"src/\"\n",[34,176610,176611],{"class":36,"line":860},[34,176612,176613],{"class":40},"//         }\n",[34,176615,176616],{"class":36,"line":865},[34,176617,176618],{"class":40},"//     }\n",[34,176620,176621],{"class":36,"line":870},[34,176622,176623],{"class":40},"// }\n",[34,176625,176626],{"class":36,"line":876},[34,176627,62],{"emptyLinePlaceholder":61},[34,176629,176630],{"class":36,"line":885},[34,176631,176632],{"class":40},"// Manual autoloader\n",[34,176634,176635,176638,176640,176642],{"class":36,"line":895},[34,176636,176637],{"class":50},"spl_autoload_register",[34,176639,1607],{"class":181},[34,176641,11044],{"class":580},[34,176643,176644],{"class":181}," ($class) {\n",[34,176646,176647,176650,176652,176655,176657,176659,176661,176664,176666,176668,176671,176673,176675,176677,176680,176682,176685],{"class":36,"line":904},[34,176648,176649],{"class":181},"    $file ",[34,176651,1301],{"class":580},[34,176653,176654],{"class":50}," __DIR__",[34,176656,100566],{"class":580},[34,176658,15586],{"class":54},[34,176660,100566],{"class":580},[34,176662,176663],{"class":50}," str_replace",[34,176665,1607],{"class":181},[34,176667,10389],{"class":54},[34,176669,176670],{"class":50},"\\\\",[34,176672,10389],{"class":54},[34,176674,1798],{"class":181},[34,176676,81654],{"class":54},[34,176678,176679],{"class":181},", $class) ",[34,176681,151],{"class":580},[34,176683,176684],{"class":54}," \".php\"",[34,176686,593],{"class":181},[34,176688,176689,176691,176693,176695],{"class":36,"line":915},[34,176690,2902],{"class":580},[34,176692,3204],{"class":181},[34,176694,173692],{"class":50},[34,176696,176697],{"class":181},"($file)) {\n",[34,176699,176700,176703],{"class":36,"line":927},[34,176701,176702],{"class":580},"        require",[34,176704,176705],{"class":181}," $file;\n",[34,176707,176708],{"class":36,"line":932},[34,176709,3229],{"class":181},[34,176711,176712],{"class":36,"line":944},[34,176713,14873],{"class":181},[388,176715,173233],{},{"title":30,"searchDepth":44,"depth":44,"links":176717},[176718],{"id":176407,"depth":44,"text":176402},"Namespaces & Autoloading in PHP.",{},"/php/namespaces-autoloading",{"title":176402,"description":176719},"php/namespaces-autoloading",[139955,46870,38615,15678],"sC6Q1WTtGvOWFuKDJL2Znf30GOwPAzCqjKbHsObG_Qw",{"id":176727,"title":176728,"body":176729,"date":2633,"description":176849,"extension":404,"meta":176850,"navigation":61,"order":37,"path":176851,"seo":176852,"stem":176853,"subject":139955,"tags":176854,"__hash__":176855},"topics/php/overview.md","PHP",{"type":8,"value":176730,"toc":176847},[176731],[309,176732,176733,176738,176743,176747,176751,176755,176759,176763,176767,176771,176775,176779,176785,176789,176793,176798,176802,176806,176810,176814,176818,176822,176827,176831,176837,176841],{},[312,176734,176735],{},[145,176736,32171],{"href":176737},"/php/variables-data-types",[312,176739,176740],{},[145,176741,23101],{"href":176742},"/php/strings",[312,176744,176745],{},[145,176746,10061],{"href":170116},[312,176748,176749],{},[145,176750,170940],{"href":171285},[312,176752,176753],{},[145,176754,11769],{"href":175708},[312,176756,176757],{},[145,176758,10991],{"href":174101},[312,176760,176761],{},[145,176762,30045],{"href":170933},[312,176764,176765],{},[145,176766,35991],{"href":175318},[312,176768,176769],{},[145,176770,19352],{"href":173514},[312,176772,176773],{},[145,176774,81168],{"href":173805},[312,176776,176777],{},[145,176778,175325],{"href":175485},[312,176780,176781],{},[145,176782,176784],{"href":176783},"/php/superglobals","Superglobals",[312,176786,176787],{},[145,176788,171292],{"href":171669},[312,176790,176791],{},[145,176792,171676],{"href":172183},[312,176794,176795],{},[145,176796,110507],{"href":176797},"/php/regular-expressions",[312,176799,176800],{},[145,176801,176402],{"href":176721},[312,176803,176804],{},[145,176805,172804],{"href":173239},[312,176807,176808],{},[145,176809,170123],{"href":170507},[312,176811,176812],{},[145,176813,175715],{"href":176395},[312,176815,176816],{},[145,176817,174108],{"href":174579},[312,176819,176820],{},[145,176821,174586],{"href":174969},[312,176823,176824],{},[145,176825,16370],{"href":176826},"/php/password-hashing",[312,176828,176829],{},[145,176830,172474],{"href":172797},[312,176832,176833],{},[145,176834,176836],{"href":176835},"/php/type-system-php-8","Type System (PHP 8+)",[312,176838,176839],{},[145,176840,18679],{"href":172467},[312,176842,176843],{},[145,176844,176846],{"href":176845},"/php/version-history","Version History",{"title":30,"searchDepth":44,"depth":44,"links":176848},[],"Essential PHP syntax, functions, and patterns for web development.",{},"/php/overview",{"title":176728,"description":176849},"php/overview",[139955,46870,38615,15678],"ygANJ7KWNKBe927tfl0Z4D9WI2laDDkImmPqCRtwLEU",{"id":176857,"title":16370,"body":176858,"date":402,"description":177049,"extension":404,"meta":177050,"navigation":61,"order":794,"path":176826,"seo":177051,"stem":177052,"subject":139955,"tags":177053,"__hash__":177054},"topics/php/password-hashing.md",{"type":8,"value":176859,"toc":177046},[176860,176862,177044],[11,176861,16370],{"id":16375},[25,176863,176865],{"className":139953,"code":176864,"language":139955,"meta":30,"style":30},"\u003C?php\n// Hash password (use for storing)\n$hash = password_hash($password, PASSWORD_DEFAULT);\n$hash = password_hash($password, PASSWORD_BCRYPT, [\"cost\" => 12]);\n$hash = password_hash($password, PASSWORD_ARGON2ID);\n\n// Verify password\nif (password_verify($password, $hash)) {\n    echo \"Password is correct\";\n}\n\n// Check if rehash needed (algorithm/cost changed)\nif (password_needs_rehash($hash, PASSWORD_DEFAULT)) {\n    $hash = password_hash($password, PASSWORD_DEFAULT);\n    // Update hash in database\n}\n\n// Get hash info\n$info = password_get_info($hash);\n// [\"algo\" => 2, \"algoName\" => \"bcrypt\", \"options\" => [\"cost\" => 12]]\n",[20,176866,176867,176873,176878,176895,176920,176935,176939,176943,176955,176964,176968,176972,176977,176993,177008,177013,177017,177021,177026,177039],{"__ignoreMap":30},[34,176868,176869,176871],{"class":36,"line":37},[34,176870,169799],{"class":580},[34,176872,169802],{"class":50},[34,176874,176875],{"class":36,"line":44},[34,176876,176877],{"class":40},"// Hash password (use for storing)\n",[34,176879,176880,176882,176884,176887,176890,176893],{"class":36,"line":58},[34,176881,172716],{"class":181},[34,176883,1301],{"class":580},[34,176885,176886],{"class":50}," password_hash",[34,176888,176889],{"class":181},"($password, ",[34,176891,176892],{"class":50},"PASSWORD_DEFAULT",[34,176894,1586],{"class":181},[34,176896,176897,176899,176901,176903,176905,176908,176910,176913,176915,176918],{"class":36,"line":65},[34,176898,172716],{"class":181},[34,176900,1301],{"class":580},[34,176902,176886],{"class":50},[34,176904,176889],{"class":181},[34,176906,176907],{"class":50},"PASSWORD_BCRYPT",[34,176909,66646],{"class":181},[34,176911,176912],{"class":54},"\"cost\"",[34,176914,1895],{"class":580},[34,176916,176917],{"class":50}," 12",[34,176919,3599],{"class":181},[34,176921,176922,176924,176926,176928,176930,176933],{"class":36,"line":71},[34,176923,172716],{"class":181},[34,176925,1301],{"class":580},[34,176927,176886],{"class":50},[34,176929,176889],{"class":181},[34,176931,176932],{"class":50},"PASSWORD_ARGON2ID",[34,176934,1586],{"class":181},[34,176936,176937],{"class":36,"line":77},[34,176938,62],{"emptyLinePlaceholder":61},[34,176940,176941],{"class":36,"line":82},[34,176942,16428],{"class":40},[34,176944,176945,176947,176949,176952],{"class":36,"line":88},[34,176946,10383],{"class":580},[34,176948,3204],{"class":181},[34,176950,176951],{"class":50},"password_verify",[34,176953,176954],{"class":181},"($password, $hash)) {\n",[34,176956,176957,176959,176962],{"class":36,"line":242},[34,176958,170979],{"class":50},[34,176960,176961],{"class":54}," \"Password is correct\"",[34,176963,593],{"class":181},[34,176965,176966],{"class":36,"line":250},[34,176967,693],{"class":181},[34,176969,176970],{"class":36,"line":263},[34,176971,62],{"emptyLinePlaceholder":61},[34,176973,176974],{"class":36,"line":275},[34,176975,176976],{"class":40},"// Check if rehash needed (algorithm/cost changed)\n",[34,176978,176979,176981,176983,176986,176989,176991],{"class":36,"line":700},[34,176980,10383],{"class":580},[34,176982,3204],{"class":181},[34,176984,176985],{"class":50},"password_needs_rehash",[34,176987,176988],{"class":181},"($hash, ",[34,176990,176892],{"class":50},[34,176992,47686],{"class":181},[34,176994,176995,176998,177000,177002,177004,177006],{"class":36,"line":706},[34,176996,176997],{"class":181},"    $hash ",[34,176999,1301],{"class":580},[34,177001,176886],{"class":50},[34,177003,176889],{"class":181},[34,177005,176892],{"class":50},[34,177007,1586],{"class":181},[34,177009,177010],{"class":36,"line":715},[34,177011,177012],{"class":40},"    // Update hash in database\n",[34,177014,177015],{"class":36,"line":725},[34,177016,693],{"class":181},[34,177018,177019],{"class":36,"line":734},[34,177020,62],{"emptyLinePlaceholder":61},[34,177022,177023],{"class":36,"line":742},[34,177024,177025],{"class":40},"// Get hash info\n",[34,177027,177028,177031,177033,177036],{"class":36,"line":748},[34,177029,177030],{"class":181},"$info ",[34,177032,1301],{"class":580},[34,177034,177035],{"class":50}," password_get_info",[34,177037,177038],{"class":181},"($hash);\n",[34,177040,177041],{"class":36,"line":754},[34,177042,177043],{"class":40},"// [\"algo\" => 2, \"algoName\" => \"bcrypt\", \"options\" => [\"cost\" => 12]]\n",[388,177045,170110],{},{"title":30,"searchDepth":44,"depth":44,"links":177047},[177048],{"id":16375,"depth":44,"text":16370},"Password Hashing in PHP.",{},{"title":16370,"description":177049},"php/password-hashing",[139955,46870,38615,15678],"5uSfHxKDPs_k9AZ2ggG5eXiMRzrxIdDBhF9Mbz152D8",{"id":177056,"title":110507,"body":177057,"date":402,"description":177449,"extension":404,"meta":177450,"navigation":61,"order":725,"path":176797,"seo":177451,"stem":177452,"subject":139955,"tags":177453,"__hash__":177454},"topics/php/regular-expressions.md",{"type":8,"value":177058,"toc":177446},[177059,177061,177443],[11,177060,110507],{"id":111080},[25,177062,177064],{"className":139953,"code":177063,"language":139955,"meta":30,"style":30},"\u003C?php\n// Match\npreg_match(\"/pattern/\", $subject, $matches);\npreg_match(\"/(\\d+)-(\\d+)/\", \"123-456\", $matches);\n// $matches = [\"123-456\", \"123\", \"456\"]\n\n// Match all\npreg_match_all(\"/\\d+/\", \"a1b2c3\", $matches);\n// $matches[0] = [\"1\", \"2\", \"3\"]\n\n// Replace\n$result = preg_replace(\"/\\s+/\", \" \", $text);\n\n// Replace with callback\n$result = preg_replace_callback(\n    \"/\\d+/\",\n    fn($m) => $m[0] * 2,\n    \"a1b2c3\"\n);\n\n// Split\n$parts = preg_split(\"/[\\s,]+/\", \"a, b c\");\n\n// Common patterns\n\"/^\\d+$/\"           // Only digits\n\"/^[a-zA-Z]+$/\"     // Only letters\n\"/^[\\w.-]+@[\\w.-]+\\.\\w+$/\"  // Email (basic)\n\"/^https?:\\/\\//\"    // URL protocol\n\n// Modifiers\n\"/pattern/i\"        // Case insensitive\n\"/pattern/m\"        // Multiline\n\"/pattern/s\"        // Dot matches newline\n\"/pattern/u\"        // Unicode support\n",[20,177065,177066,177072,177076,177095,177125,177130,177134,177139,177162,177167,177171,177176,177204,177208,177213,177224,177237,177255,177260,177264,177268,177273,177301,177305,177310,177326,177342,177372,177386,177390,177395,177407,177419,177431],{"__ignoreMap":30},[34,177067,177068,177070],{"class":36,"line":37},[34,177069,169799],{"class":580},[34,177071,169802],{"class":50},[34,177073,177074],{"class":36,"line":44},[34,177075,123996],{"class":40},[34,177077,177078,177081,177083,177086,177089,177092],{"class":36,"line":58},[34,177079,177080],{"class":50},"preg_match",[34,177082,1607],{"class":181},[34,177084,177085],{"class":54},"\"/",[34,177087,177088],{"class":83922},"pattern",[34,177090,177091],{"class":54},"/\"",[34,177093,177094],{"class":181},", $subject, $matches);\n",[34,177096,177097,177099,177101,177103,177106,177108,177111,177113,177115,177117,177119,177122],{"class":36,"line":65},[34,177098,177080],{"class":50},[34,177100,1607],{"class":181},[34,177102,177085],{"class":54},[34,177104,177105],{"class":83922},"(\\d",[34,177107,2940],{"class":580},[34,177109,177110],{"class":83922},")-(\\d",[34,177112,2940],{"class":580},[34,177114,1617],{"class":83922},[34,177116,177091],{"class":54},[34,177118,1798],{"class":181},[34,177120,177121],{"class":54},"\"123-456\"",[34,177123,177124],{"class":181},", $matches);\n",[34,177126,177127],{"class":36,"line":71},[34,177128,177129],{"class":40},"// $matches = [\"123-456\", \"123\", \"456\"]\n",[34,177131,177132],{"class":36,"line":77},[34,177133,62],{"emptyLinePlaceholder":61},[34,177135,177136],{"class":36,"line":82},[34,177137,177138],{"class":40},"// Match all\n",[34,177140,177141,177144,177146,177148,177151,177153,177155,177157,177160],{"class":36,"line":88},[34,177142,177143],{"class":50},"preg_match_all",[34,177145,1607],{"class":181},[34,177147,177085],{"class":54},[34,177149,177150],{"class":83922},"\\d",[34,177152,2940],{"class":580},[34,177154,177091],{"class":54},[34,177156,1798],{"class":181},[34,177158,177159],{"class":54},"\"a1b2c3\"",[34,177161,177124],{"class":181},[34,177163,177164],{"class":36,"line":242},[34,177165,177166],{"class":40},"// $matches[0] = [\"1\", \"2\", \"3\"]\n",[34,177168,177169],{"class":36,"line":250},[34,177170,62],{"emptyLinePlaceholder":61},[34,177172,177173],{"class":36,"line":263},[34,177174,177175],{"class":40},"// Replace\n",[34,177177,177178,177180,177182,177185,177187,177189,177192,177194,177196,177198,177201],{"class":36,"line":275},[34,177179,171154],{"class":181},[34,177181,1301],{"class":580},[34,177183,177184],{"class":50}," preg_replace",[34,177186,1607],{"class":181},[34,177188,177085],{"class":54},[34,177190,177191],{"class":83922},"\\s",[34,177193,2940],{"class":580},[34,177195,177091],{"class":54},[34,177197,1798],{"class":181},[34,177199,177200],{"class":54},"\" \"",[34,177202,177203],{"class":181},", $text);\n",[34,177205,177206],{"class":36,"line":700},[34,177207,62],{"emptyLinePlaceholder":61},[34,177209,177210],{"class":36,"line":706},[34,177211,177212],{"class":40},"// Replace with callback\n",[34,177214,177215,177217,177219,177222],{"class":36,"line":715},[34,177216,171154],{"class":181},[34,177218,1301],{"class":580},[34,177220,177221],{"class":50}," preg_replace_callback",[34,177223,1882],{"class":181},[34,177225,177226,177229,177231,177233,177235],{"class":36,"line":725},[34,177227,177228],{"class":54},"    \"/",[34,177230,177150],{"class":83922},[34,177232,2940],{"class":580},[34,177234,177091],{"class":54},[34,177236,624],{"class":181},[34,177238,177239,177242,177245,177247,177249,177251,177253],{"class":36,"line":734},[34,177240,177241],{"class":580},"    fn",[34,177243,177244],{"class":181},"($m) => $m[",[34,177246,2773],{"class":50},[34,177248,17799],{"class":181},[34,177250,4289],{"class":580},[34,177252,4292],{"class":50},[34,177254,624],{"class":181},[34,177256,177257],{"class":36,"line":742},[34,177258,177259],{"class":54},"    \"a1b2c3\"\n",[34,177261,177262],{"class":36,"line":748},[34,177263,1586],{"class":181},[34,177265,177266],{"class":36,"line":754},[34,177267,62],{"emptyLinePlaceholder":61},[34,177269,177270],{"class":36,"line":759},[34,177271,177272],{"class":40},"// Split\n",[34,177274,177275,177278,177280,177283,177285,177287,177290,177292,177294,177296,177299],{"class":36,"line":771},[34,177276,177277],{"class":181},"$parts ",[34,177279,1301],{"class":580},[34,177281,177282],{"class":50}," preg_split",[34,177284,1607],{"class":181},[34,177286,177085],{"class":54},[34,177288,177289],{"class":83922},"[\\s,]",[34,177291,2940],{"class":580},[34,177293,177091],{"class":54},[34,177295,1798],{"class":181},[34,177297,177298],{"class":54},"\"a, b c\"",[34,177300,1586],{"class":181},[34,177302,177303],{"class":36,"line":794},[34,177304,62],{"emptyLinePlaceholder":61},[34,177306,177307],{"class":36,"line":824},[34,177308,177309],{"class":40},"// Common patterns\n",[34,177311,177312,177314,177316,177318,177321,177323],{"class":36,"line":830},[34,177313,177085],{"class":54},[34,177315,23002],{"class":580},[34,177317,177150],{"class":83922},[34,177319,177320],{"class":580},"+$",[34,177322,177091],{"class":54},[34,177324,177325],{"class":40},"           // Only digits\n",[34,177327,177328,177330,177332,177335,177337,177339],{"class":36,"line":839},[34,177329,177085],{"class":54},[34,177331,23002],{"class":580},[34,177333,177334],{"class":83922},"[a-zA-Z]",[34,177336,177320],{"class":580},[34,177338,177091],{"class":54},[34,177340,177341],{"class":40},"     // Only letters\n",[34,177343,177344,177346,177348,177351,177353,177356,177358,177362,177365,177367,177369],{"class":36,"line":854},[34,177345,177085],{"class":54},[34,177347,23002],{"class":580},[34,177349,177350],{"class":83922},"[\\w.-]",[34,177352,2940],{"class":580},[34,177354,177355],{"class":83922},"@[\\w.-]",[34,177357,2940],{"class":580},[34,177359,177361],{"class":177360},"snhLl","\\.",[34,177363,177364],{"class":83922},"\\w",[34,177366,177320],{"class":580},[34,177368,177091],{"class":54},[34,177370,177371],{"class":40},"  // Email (basic)\n",[34,177373,177374,177376,177378,177381,177383],{"class":36,"line":860},[34,177375,177085],{"class":54},[34,177377,23002],{"class":580},[34,177379,177380],{"class":83922},"https?:\\/\\/",[34,177382,177091],{"class":54},[34,177384,177385],{"class":40},"    // URL protocol\n",[34,177387,177388],{"class":36,"line":865},[34,177389,62],{"emptyLinePlaceholder":61},[34,177391,177392],{"class":36,"line":870},[34,177393,177394],{"class":40},"// Modifiers\n",[34,177396,177397,177399,177401,177404],{"class":36,"line":876},[34,177398,177085],{"class":54},[34,177400,177088],{"class":83922},[34,177402,177403],{"class":54},"/i\"",[34,177405,177406],{"class":40},"        // Case insensitive\n",[34,177408,177409,177411,177413,177416],{"class":36,"line":885},[34,177410,177085],{"class":54},[34,177412,177088],{"class":83922},[34,177414,177415],{"class":54},"/m\"",[34,177417,177418],{"class":40},"        // Multiline\n",[34,177420,177421,177423,177425,177428],{"class":36,"line":895},[34,177422,177085],{"class":54},[34,177424,177088],{"class":83922},[34,177426,177427],{"class":54},"/s\"",[34,177429,177430],{"class":40},"        // Dot matches newline\n",[34,177432,177433,177435,177437,177440],{"class":36,"line":904},[34,177434,177085],{"class":54},[34,177436,177088],{"class":83922},[34,177438,177439],{"class":54},"/u\"",[34,177441,177442],{"class":40},"        // Unicode support\n",[388,177444,177445],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .sA_wV, html code.shiki .sA_wV{--shiki-default:#032F62;--shiki-dark:#DBEDFF}html pre.shiki code .snhLl, html code.shiki .snhLl{--shiki-default:#22863A;--shiki-default-font-weight:bold;--shiki-dark:#85E89D;--shiki-dark-font-weight:bold}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":30,"searchDepth":44,"depth":44,"links":177447},[177448],{"id":111080,"depth":44,"text":110507},"Regular Expressions in PHP.",{},{"title":110507,"description":177449},"php/regular-expressions",[139955,46870,38615,15678],"duMIymoMAl8fsOwYFmGZSCACRjb8EK5jqW9FSc1ypYQ",{"id":177456,"title":23101,"body":177457,"date":402,"description":177759,"extension":404,"meta":177760,"navigation":61,"order":58,"path":176742,"seo":177761,"stem":177762,"subject":139955,"tags":177763,"__hash__":177764},"topics/php/strings.md",{"type":8,"value":177458,"toc":177756},[177459,177461,177753],[11,177460,23101],{"id":24353},[25,177462,177464],{"className":139953,"code":177463,"language":139955,"meta":30,"style":30},"\u003C?php\n// String concatenation\n$greeting = \"Hello, \" . $name . \"!\";\n\n// Interpolation (double quotes only)\n$greeting = \"Hello, $name!\";\n$greeting = \"Hello, {$user['name']}!\";\n\n// Heredoc & Nowdoc\n$html = \u003C\u003C\u003CHTML\n\u003Cdiv>$name\u003C/div>\nHTML;\n\n$raw = \u003C\u003C\u003C'TEXT'\nNo $interpolation here\nTEXT;\n\n// String functions\nstrlen($str);                  // Length\nstrtoupper($str);              // UPPERCASE\nstrtolower($str);              // lowercase\ntrim($str);                    // Remove whitespace\nsubstr($str, 0, 5);            // Substring\nstr_replace(\"a\", \"b\", $str);   // Replace\nexplode(\",\", $str);            // Split to array\nimplode(\"-\", $arr);            // Join array\nstrpos($str, \"needle\");        // Find position\nsprintf(\"Hello %s\", $name);    // Format string\n",[20,177465,177466,177472,177477,177497,177501,177506,177520,177536,177540,177545,177557,177573,177579,177583,177598,177603,177609,177613,177618,177627,177638,177648,177657,177675,177693,177708,177723,177738],{"__ignoreMap":30},[34,177467,177468,177470],{"class":36,"line":37},[34,177469,169799],{"class":580},[34,177471,169802],{"class":50},[34,177473,177474],{"class":36,"line":44},[34,177475,177476],{"class":40},"// String concatenation\n",[34,177478,177479,177482,177484,177486,177488,177491,177493,177495],{"class":36,"line":58},[34,177480,177481],{"class":181},"$greeting ",[34,177483,1301],{"class":580},[34,177485,31250],{"class":54},[34,177487,100566],{"class":580},[34,177489,177490],{"class":181}," $name ",[34,177492,151],{"class":580},[34,177494,142996],{"class":54},[34,177496,593],{"class":181},[34,177498,177499],{"class":36,"line":65},[34,177500,62],{"emptyLinePlaceholder":61},[34,177502,177503],{"class":36,"line":71},[34,177504,177505],{"class":40},"// Interpolation (double quotes only)\n",[34,177507,177508,177510,177512,177514,177516,177518],{"class":36,"line":77},[34,177509,177481],{"class":181},[34,177511,1301],{"class":580},[34,177513,11020],{"class":54},[34,177515,10392],{"class":181},[34,177517,37073],{"class":54},[34,177519,593],{"class":181},[34,177521,177522,177524,177526,177528,177531,177534],{"class":36,"line":82},[34,177523,177481],{"class":181},[34,177525,1301],{"class":580},[34,177527,170727],{"class":54},[34,177529,177530],{"class":181},"$user",[34,177532,177533],{"class":54},"['name']}!\"",[34,177535,593],{"class":181},[34,177537,177538],{"class":36,"line":88},[34,177539,62],{"emptyLinePlaceholder":61},[34,177541,177542],{"class":36,"line":242},[34,177543,177544],{"class":40},"// Heredoc & Nowdoc\n",[34,177546,177547,177550,177552,177554],{"class":36,"line":250},[34,177548,177549],{"class":181},"$html ",[34,177551,1301],{"class":580},[34,177553,11495],{"class":54},[34,177555,177556],{"class":580},"HTML\n",[34,177558,177559,177561,177563,177565,177567,177569,177571],{"class":36,"line":263},[34,177560,815],{"class":54},[34,177562,1240],{"class":177},[34,177564,5691],{"class":54},[34,177566,10392],{"class":181},[34,177568,2089],{"class":54},[34,177570,1240],{"class":177},[34,177572,1248],{"class":54},[34,177574,177575,177577],{"class":36,"line":275},[34,177576,118646],{"class":580},[34,177578,593],{"class":181},[34,177580,177581],{"class":36,"line":700},[34,177582,62],{"emptyLinePlaceholder":61},[34,177584,177585,177588,177590,177593,177595],{"class":36,"line":706},[34,177586,177587],{"class":181},"$raw ",[34,177589,1301],{"class":580},[34,177591,177592],{"class":54}," \u003C\u003C\u003C'",[34,177594,150440],{"class":580},[34,177596,177597],{"class":54},"'\n",[34,177599,177600],{"class":36,"line":715},[34,177601,177602],{"class":54},"No $interpolation here\n",[34,177604,177605,177607],{"class":36,"line":725},[34,177606,150440],{"class":580},[34,177608,593],{"class":181},[34,177610,177611],{"class":36,"line":734},[34,177612,62],{"emptyLinePlaceholder":61},[34,177614,177615],{"class":36,"line":742},[34,177616,177617],{"class":40},"// String functions\n",[34,177619,177620,177622,177625],{"class":36,"line":748},[34,177621,24437],{"class":50},[34,177623,177624],{"class":181},"($str);                  ",[34,177626,169903],{"class":40},[34,177628,177629,177632,177635],{"class":36,"line":754},[34,177630,177631],{"class":50},"strtoupper",[34,177633,177634],{"class":181},"($str);              ",[34,177636,177637],{"class":40},"// UPPERCASE\n",[34,177639,177640,177643,177645],{"class":36,"line":759},[34,177641,177642],{"class":50},"strtolower",[34,177644,177634],{"class":181},[34,177646,177647],{"class":40},"// lowercase\n",[34,177649,177650,177652,177655],{"class":36,"line":771},[34,177651,72217],{"class":50},[34,177653,177654],{"class":181},"($str);                    ",[34,177656,37883],{"class":40},[34,177658,177659,177661,177664,177666,177668,177670,177672],{"class":36,"line":794},[34,177660,32560],{"class":50},[34,177662,177663],{"class":181},"($str, ",[34,177665,2773],{"class":50},[34,177667,1798],{"class":181},[34,177669,2778],{"class":50},[34,177671,38697],{"class":181},[34,177673,177674],{"class":40},"// Substring\n",[34,177676,177677,177680,177682,177684,177686,177688,177691],{"class":36,"line":824},[34,177678,177679],{"class":50},"str_replace",[34,177681,1607],{"class":181},[34,177683,104277],{"class":54},[34,177685,1798],{"class":181},[34,177687,104282],{"class":54},[34,177689,177690],{"class":181},", $str);   ",[34,177692,177175],{"class":40},[34,177694,177695,177698,177700,177702,177705],{"class":36,"line":830},[34,177696,177697],{"class":50},"explode",[34,177699,1607],{"class":181},[34,177701,104255],{"class":54},[34,177703,177704],{"class":181},", $str);            ",[34,177706,177707],{"class":40},"// Split to array\n",[34,177709,177710,177713,177715,177717,177720],{"class":36,"line":839},[34,177711,177712],{"class":50},"implode",[34,177714,1607],{"class":181},[34,177716,104287],{"class":54},[34,177718,177719],{"class":181},", $arr);            ",[34,177721,177722],{"class":40},"// Join array\n",[34,177724,177725,177728,177730,177733,177735],{"class":36,"line":854},[34,177726,177727],{"class":50},"strpos",[34,177729,177663],{"class":181},[34,177731,177732],{"class":54},"\"needle\"",[34,177734,38821],{"class":181},[34,177736,177737],{"class":40},"// Find position\n",[34,177739,177740,177742,177744,177747,177750],{"class":36,"line":860},[34,177741,24532],{"class":50},[34,177743,1607],{"class":181},[34,177745,177746],{"class":54},"\"Hello %s\"",[34,177748,177749],{"class":181},", $name);    ",[34,177751,177752],{"class":40},"// Format string\n",[388,177754,177755],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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":30,"searchDepth":44,"depth":44,"links":177757},[177758],{"id":24353,"depth":44,"text":23101},"Strings in PHP.",{},{"title":23101,"description":177759},"php/strings",[139955,46870,38615,15678],"Sst47Zfxy83Y9c0WaBaougs1_jooVkwoKfn5nerCYiE",{"id":177766,"title":176784,"body":177767,"date":402,"description":178036,"extension":404,"meta":178037,"navigation":61,"order":700,"path":176783,"seo":178038,"stem":178039,"subject":139955,"tags":178040,"__hash__":178041},"topics/php/superglobals.md",{"type":8,"value":177768,"toc":178033},[177769,177772,178031],[11,177770,176784],{"id":177771},"superglobals",[25,177773,177775],{"className":139953,"code":177774,"language":139955,"meta":30,"style":30},"\u003C?php\n// Request data\n$_GET[\"param\"];        // URL parameters\n$_POST[\"field\"];       // POST data\n$_REQUEST[\"data\"];     // GET, POST, COOKIE\n\n// Server info\n$_SERVER[\"REQUEST_METHOD\"];\n$_SERVER[\"HTTP_HOST\"];\n$_SERVER[\"REQUEST_URI\"];\n$_SERVER[\"REMOTE_ADDR\"];\n\n// Session\nsession_start();\n$_SESSION[\"user\"] = $user;\nunset($_SESSION[\"user\"]);\nsession_destroy();\n\n// Cookies\nsetcookie(\"name\", \"value\", time() + 3600);\n$_COOKIE[\"name\"];\n\n// Files\n$_FILES[\"upload\"][\"name\"];\n$_FILES[\"upload\"][\"tmp_name\"];\n$_FILES[\"upload\"][\"size\"];\n$_FILES[\"upload\"][\"error\"];\n",[20,177776,177777,177783,177788,177802,177816,177830,177834,177839,177849,177858,177867,177876,177880,177885,177892,177907,177919,177926,177930,177935,177961,177970,177974,177979,177993,178006,178019],{"__ignoreMap":30},[34,177778,177779,177781],{"class":36,"line":37},[34,177780,169799],{"class":580},[34,177782,169802],{"class":50},[34,177784,177785],{"class":36,"line":44},[34,177786,177787],{"class":40},"// Request data\n",[34,177789,177790,177793,177796,177799],{"class":36,"line":58},[34,177791,177792],{"class":181},"$_GET[",[34,177794,177795],{"class":54},"\"param\"",[34,177797,177798],{"class":181},"];        ",[34,177800,177801],{"class":40},"// URL parameters\n",[34,177803,177804,177807,177810,177813],{"class":36,"line":65},[34,177805,177806],{"class":181},"$_POST[",[34,177808,177809],{"class":54},"\"field\"",[34,177811,177812],{"class":181},"];       ",[34,177814,177815],{"class":40},"// POST data\n",[34,177817,177818,177821,177824,177827],{"class":36,"line":71},[34,177819,177820],{"class":181},"$_REQUEST[",[34,177822,177823],{"class":54},"\"data\"",[34,177825,177826],{"class":181},"];     ",[34,177828,177829],{"class":40},"// GET, POST, COOKIE\n",[34,177831,177832],{"class":36,"line":77},[34,177833,62],{"emptyLinePlaceholder":61},[34,177835,177836],{"class":36,"line":82},[34,177837,177838],{"class":40},"// Server info\n",[34,177840,177841,177844,177847],{"class":36,"line":88},[34,177842,177843],{"class":181},"$_SERVER[",[34,177845,177846],{"class":54},"\"REQUEST_METHOD\"",[34,177848,3415],{"class":181},[34,177850,177851,177853,177856],{"class":36,"line":242},[34,177852,177843],{"class":181},[34,177854,177855],{"class":54},"\"HTTP_HOST\"",[34,177857,3415],{"class":181},[34,177859,177860,177862,177865],{"class":36,"line":250},[34,177861,177843],{"class":181},[34,177863,177864],{"class":54},"\"REQUEST_URI\"",[34,177866,3415],{"class":181},[34,177868,177869,177871,177874],{"class":36,"line":263},[34,177870,177843],{"class":181},[34,177872,177873],{"class":54},"\"REMOTE_ADDR\"",[34,177875,3415],{"class":181},[34,177877,177878],{"class":36,"line":275},[34,177879,62],{"emptyLinePlaceholder":61},[34,177881,177882],{"class":36,"line":700},[34,177883,177884],{"class":40},"// Session\n",[34,177886,177887,177890],{"class":36,"line":706},[34,177888,177889],{"class":50},"session_start",[34,177891,851],{"class":181},[34,177893,177894,177897,177900,177902,177904],{"class":36,"line":715},[34,177895,177896],{"class":181},"$_SESSION[",[34,177898,177899],{"class":54},"\"user\"",[34,177901,17799],{"class":181},[34,177903,1301],{"class":580},[34,177905,177906],{"class":181}," $user;\n",[34,177908,177909,177912,177915,177917],{"class":36,"line":725},[34,177910,177911],{"class":50},"unset",[34,177913,177914],{"class":181},"($_SESSION[",[34,177916,177899],{"class":54},[34,177918,3599],{"class":181},[34,177920,177921,177924],{"class":36,"line":734},[34,177922,177923],{"class":50},"session_destroy",[34,177925,851],{"class":181},[34,177927,177928],{"class":36,"line":742},[34,177929,62],{"emptyLinePlaceholder":61},[34,177931,177932],{"class":36,"line":748},[34,177933,177934],{"class":40},"// Cookies\n",[34,177936,177937,177940,177942,177944,177946,177948,177950,177952,177954,177956,177959],{"class":36,"line":754},[34,177938,177939],{"class":50},"setcookie",[34,177941,1607],{"class":181},[34,177943,4650],{"class":54},[34,177945,1798],{"class":181},[34,177947,16847],{"class":54},[34,177949,1798],{"class":181},[34,177951,24110],{"class":50},[34,177953,672],{"class":181},[34,177955,2940],{"class":580},[34,177957,177958],{"class":50}," 3600",[34,177960,1586],{"class":181},[34,177962,177963,177966,177968],{"class":36,"line":759},[34,177964,177965],{"class":181},"$_COOKIE[",[34,177967,4650],{"class":54},[34,177969,3415],{"class":181},[34,177971,177972],{"class":36,"line":771},[34,177973,62],{"emptyLinePlaceholder":61},[34,177975,177976],{"class":36,"line":794},[34,177977,177978],{"class":40},"// Files\n",[34,177980,177981,177984,177987,177989,177991],{"class":36,"line":824},[34,177982,177983],{"class":181},"$_FILES[",[34,177985,177986],{"class":54},"\"upload\"",[34,177988,17977],{"class":181},[34,177990,4650],{"class":54},[34,177992,3415],{"class":181},[34,177994,177995,177997,177999,178001,178004],{"class":36,"line":830},[34,177996,177983],{"class":181},[34,177998,177986],{"class":54},[34,178000,17977],{"class":181},[34,178002,178003],{"class":54},"\"tmp_name\"",[34,178005,3415],{"class":181},[34,178007,178008,178010,178012,178014,178017],{"class":36,"line":839},[34,178009,177983],{"class":181},[34,178011,177986],{"class":54},[34,178013,17977],{"class":181},[34,178015,178016],{"class":54},"\"size\"",[34,178018,3415],{"class":181},[34,178020,178021,178023,178025,178027,178029],{"class":36,"line":854},[34,178022,177983],{"class":181},[34,178024,177986],{"class":54},[34,178026,17977],{"class":181},[34,178028,62772],{"class":54},[34,178030,3415],{"class":181},[388,178032,170110],{},{"title":30,"searchDepth":44,"depth":44,"links":178034},[178035],{"id":177771,"depth":44,"text":176784},"Superglobals in PHP.",{},{"title":176784,"description":178036},"php/superglobals",[139955,46870,38615,15678],"4Y839aqhqqx2uwh0gB7oCH4HNq7A8QVjqnEmmdz_4Y4",{"id":178043,"title":176836,"body":178044,"date":402,"description":178470,"extension":404,"meta":178471,"navigation":61,"order":830,"path":176835,"seo":178472,"stem":178473,"subject":139955,"tags":178474,"__hash__":178475},"topics/php/type-system-php-8.md",{"type":8,"value":178045,"toc":178467},[178046,178049,178465],[11,178047,176836],{"id":178048},"type-system-php-8",[25,178050,178052],{"className":139953,"code":178051,"language":139955,"meta":30,"style":30},"\u003C?php\n// Union types\nfunction process(int|string $value): int|float {\n    return is_string($value) ? strlen($value) : $value;\n}\n\n// Nullable types\nfunction find(?int $id): ?User {\n    return $id ? User::find($id) : null;\n}\n\n// Intersection types (PHP 8.1+)\nfunction process(Iterator&Countable $collection): void {}\n\n// Mixed type\nfunction debug(mixed $value): void {\n    var_dump($value);\n}\n\n// Never return type (PHP 8.1+)\nfunction redirect(string $url): never {\n    header(\"Location: $url\");\n    exit;\n}\n\n// Readonly properties (PHP 8.1+)\nclass User {\n    public function __construct(\n        public readonly string $id,\n        public readonly string $name\n    ) {}\n}\n\n// Readonly classes (PHP 8.2+)\nreadonly class ValueObject {\n    public function __construct(\n        public string $name,\n        public int $value\n    ) {}\n}\n\n// First-class callable syntax (PHP 8.1+)\n$closure = $object->method(...);\n$closure = ClassName::method(...);\n",[20,178053,178054,178060,178065,178091,178112,178116,178120,178124,178146,178170,178174,178178,178183,178208,178212,178217,178235,178243,178247,178251,178256,178277,178294,178301,178305,178309,178314,178322,178332,178344,178354,178358,178362,178366,178371,178382,178392,178400,178409,178413,178417,178421,178426,178446],{"__ignoreMap":30},[34,178055,178056,178058],{"class":36,"line":37},[34,178057,169799],{"class":580},[34,178059,169802],{"class":50},[34,178061,178062],{"class":36,"line":44},[34,178063,178064],{"class":40},"// Union types\n",[34,178066,178067,178069,178071,178073,178075,178077,178079,178081,178083,178085,178087,178089],{"class":36,"line":58},[34,178068,11044],{"class":580},[34,178070,31325],{"class":47},[34,178072,1607],{"class":181},[34,178074,17772],{"class":580},[34,178076,2670],{"class":181},[34,178078,30113],{"class":580},[34,178080,175836],{"class":181},[34,178082,165],{"class":580},[34,178084,25160],{"class":580},[34,178086,2670],{"class":181},[34,178088,25079],{"class":580},[34,178090,661],{"class":181},[34,178092,178093,178095,178098,178101,178103,178106,178108,178110],{"class":36,"line":65},[34,178094,1564],{"class":580},[34,178096,178097],{"class":50}," is_string",[34,178099,178100],{"class":181},"($value) ",[34,178102,18954],{"class":580},[34,178104,178105],{"class":50}," strlen",[34,178107,178100],{"class":181},[34,178109,165],{"class":580},[34,178111,175855],{"class":181},[34,178113,178114],{"class":36,"line":71},[34,178115,693],{"class":181},[34,178117,178118],{"class":36,"line":77},[34,178119,62],{"emptyLinePlaceholder":61},[34,178121,178122],{"class":36,"line":82},[34,178123,38093],{"class":40},[34,178125,178126,178128,178131,178133,178135,178138,178140,178142,178144],{"class":36,"line":88},[34,178127,11044],{"class":580},[34,178129,178130],{"class":47}," find",[34,178132,1607],{"class":181},[34,178134,88280],{"class":580},[34,178136,178137],{"class":181}," $id)",[34,178139,165],{"class":580},[34,178141,131598],{"class":580},[34,178143,3860],{"class":50},[34,178145,661],{"class":181},[34,178147,178148,178150,178153,178155,178157,178159,178161,178164,178166,178168],{"class":36,"line":242},[34,178149,1564],{"class":580},[34,178151,178152],{"class":181}," $id ",[34,178154,18954],{"class":580},[34,178156,3950],{"class":50},[34,178158,30110],{"class":580},[34,178160,12963],{"class":47},[34,178162,178163],{"class":181},"($id) ",[34,178165,165],{"class":580},[34,178167,13898],{"class":50},[34,178169,593],{"class":181},[34,178171,178172],{"class":36,"line":250},[34,178173,693],{"class":181},[34,178175,178176],{"class":36,"line":263},[34,178177,62],{"emptyLinePlaceholder":61},[34,178179,178180],{"class":36,"line":275},[34,178181,178182],{"class":40},"// Intersection types (PHP 8.1+)\n",[34,178184,178185,178187,178189,178191,178194,178196,178199,178202,178204,178206],{"class":36,"line":700},[34,178186,11044],{"class":580},[34,178188,31325],{"class":47},[34,178190,1607],{"class":181},[34,178192,178193],{"class":50},"Iterator",[34,178195,19502],{"class":181},[34,178197,178198],{"class":50},"Countable",[34,178200,178201],{"class":181}," $collection)",[34,178203,165],{"class":580},[34,178205,31514],{"class":580},[34,178207,1104],{"class":181},[34,178209,178210],{"class":36,"line":706},[34,178211,62],{"emptyLinePlaceholder":61},[34,178213,178214],{"class":36,"line":715},[34,178215,178216],{"class":40},"// Mixed type\n",[34,178218,178219,178221,178223,178225,178227,178229,178231,178233],{"class":36,"line":725},[34,178220,11044],{"class":580},[34,178222,138425],{"class":47},[34,178224,1607],{"class":181},[34,178226,175833],{"class":580},[34,178228,175836],{"class":181},[34,178230,165],{"class":580},[34,178232,31514],{"class":580},[34,178234,661],{"class":181},[34,178236,178237,178240],{"class":36,"line":734},[34,178238,178239],{"class":50},"    var_dump",[34,178241,178242],{"class":181},"($value);\n",[34,178244,178245],{"class":36,"line":742},[34,178246,693],{"class":181},[34,178248,178249],{"class":36,"line":748},[34,178250,62],{"emptyLinePlaceholder":61},[34,178252,178253],{"class":36,"line":754},[34,178254,178255],{"class":40},"// Never return type (PHP 8.1+)\n",[34,178257,178258,178260,178263,178265,178267,178270,178272,178275],{"class":36,"line":759},[34,178259,11044],{"class":580},[34,178261,178262],{"class":47}," redirect",[34,178264,1607],{"class":181},[34,178266,30113],{"class":580},[34,178268,178269],{"class":181}," $url)",[34,178271,165],{"class":580},[34,178273,178274],{"class":580}," never",[34,178276,661],{"class":181},[34,178278,178279,178282,178284,178287,178290,178292],{"class":36,"line":771},[34,178280,178281],{"class":50},"    header",[34,178283,1607],{"class":181},[34,178285,178286],{"class":54},"\"Location: ",[34,178288,178289],{"class":181},"$url",[34,178291,10389],{"class":54},[34,178293,1586],{"class":181},[34,178295,178296,178299],{"class":36,"line":794},[34,178297,178298],{"class":580},"    exit",[34,178300,593],{"class":181},[34,178302,178303],{"class":36,"line":824},[34,178304,693],{"class":181},[34,178306,178307],{"class":36,"line":830},[34,178308,62],{"emptyLinePlaceholder":61},[34,178310,178311],{"class":36,"line":839},[34,178312,178313],{"class":40},"// Readonly properties (PHP 8.1+)\n",[34,178315,178316,178318,178320],{"class":36,"line":854},[34,178317,30060],{"class":580},[34,178319,3950],{"class":47},[34,178321,661],{"class":181},[34,178323,178324,178326,178328,178330],{"class":36,"line":860},[34,178325,34159],{"class":580},[34,178327,8037],{"class":580},[34,178329,170230],{"class":50},[34,178331,1882],{"class":181},[34,178333,178334,178336,178339,178341],{"class":36,"line":865},[34,178335,170237],{"class":580},[34,178337,178338],{"class":580}," readonly",[34,178340,680],{"class":580},[34,178342,178343],{"class":181}," $id,\n",[34,178345,178346,178348,178350,178352],{"class":36,"line":870},[34,178347,170237],{"class":580},[34,178349,178338],{"class":580},[34,178351,680],{"class":580},[34,178353,13357],{"class":181},[34,178355,178356],{"class":36,"line":876},[34,178357,170261],{"class":181},[34,178359,178360],{"class":36,"line":885},[34,178361,693],{"class":181},[34,178363,178364],{"class":36,"line":895},[34,178365,62],{"emptyLinePlaceholder":61},[34,178367,178368],{"class":36,"line":904},[34,178369,178370],{"class":40},"// Readonly classes (PHP 8.2+)\n",[34,178372,178373,178375,178377,178380],{"class":36,"line":915},[34,178374,38157],{"class":580},[34,178376,655],{"class":580},[34,178378,178379],{"class":47}," ValueObject",[34,178381,661],{"class":181},[34,178383,178384,178386,178388,178390],{"class":36,"line":927},[34,178385,34159],{"class":580},[34,178387,8037],{"class":580},[34,178389,170230],{"class":50},[34,178391,1882],{"class":181},[34,178393,178394,178396,178398],{"class":36,"line":932},[34,178395,170237],{"class":580},[34,178397,680],{"class":580},[34,178399,170681],{"class":181},[34,178401,178402,178404,178406],{"class":36,"line":944},[34,178403,170237],{"class":580},[34,178405,25160],{"class":580},[34,178407,178408],{"class":181}," $value\n",[34,178410,178411],{"class":36,"line":966},[34,178412,170261],{"class":181},[34,178414,178415],{"class":36,"line":1948},[34,178416,693],{"class":181},[34,178418,178419],{"class":36,"line":1953},[34,178420,62],{"emptyLinePlaceholder":61},[34,178422,178423],{"class":36,"line":3616},[34,178424,178425],{"class":40},"// First-class callable syntax (PHP 8.1+)\n",[34,178427,178428,178431,178433,178436,178438,178440,178442,178444],{"class":36,"line":3622},[34,178429,178430],{"class":181},"$closure ",[34,178432,1301],{"class":580},[34,178434,178435],{"class":181}," $object",[34,178437,24863],{"class":580},[34,178439,76222],{"class":47},[34,178441,1607],{"class":181},[34,178443,16841],{"class":580},[34,178445,1586],{"class":181},[34,178447,178448,178450,178452,178455,178457,178459,178461,178463],{"class":36,"line":3642},[34,178449,178430],{"class":181},[34,178451,1301],{"class":580},[34,178453,178454],{"class":50}," ClassName",[34,178456,30110],{"class":580},[34,178458,76222],{"class":47},[34,178460,1607],{"class":181},[34,178462,16841],{"class":580},[34,178464,1586],{"class":181},[388,178466,173233],{},{"title":30,"searchDepth":44,"depth":44,"links":178468},[178469],{"id":178048,"depth":44,"text":176836},"Type System (PHP 8+) in PHP.",{},{"title":176836,"description":178470},"php/type-system-php-8",[139955,46870,38615,15678],"YPzyDWKEwMyoWgcav5UUKdgP85eUhsFIbrNTA_TiNls",{"id":178477,"title":32171,"body":178478,"date":402,"description":178734,"extension":404,"meta":178735,"navigation":61,"order":44,"path":176737,"seo":178736,"stem":178737,"subject":139955,"tags":178738,"__hash__":178739},"topics/php/variables-data-types.md",{"type":8,"value":178479,"toc":178731},[178480,178482,178729],[11,178481,32171],{"id":32868},[25,178483,178485],{"className":139953,"code":178484,"language":139955,"meta":30,"style":30},"\u003C?php\n// Variables (loosely typed)\n$name = \"Alice\";        // string\n$age = 30;              // integer\n$price = 19.99;         // float\n$isActive = true;       // boolean\n$items = [1, 2, 3];     // array\n$person = null;         // null\n\n// Type declarations (PHP 7+)\ndeclare(strict_types=1);\n\nfunction add(int $a, int $b): int {\n    return $a + $b;\n}\n\n// Constants\ndefine(\"MAX_SIZE\", 100);\nconst APP_NAME = \"MyApp\";\n\n// Variable variables\n$varName = \"hello\";\n$$varName = \"world\";    // Creates $hello = \"world\"\n",[20,178486,178487,178493,178498,178511,178525,178539,178553,178577,178590,178594,178599,178614,178618,178642,178652,178656,178660,178664,178680,178694,178698,178703,178714],{"__ignoreMap":30},[34,178488,178489,178491],{"class":36,"line":37},[34,178490,169799],{"class":580},[34,178492,169802],{"class":50},[34,178494,178495],{"class":36,"line":44},[34,178496,178497],{"class":40},"// Variables (loosely typed)\n",[34,178499,178500,178502,178504,178506,178508],{"class":36,"line":58},[34,178501,171076],{"class":181},[34,178503,1301],{"class":580},[34,178505,25138],{"class":54},[34,178507,42193],{"class":181},[34,178509,178510],{"class":40},"// string\n",[34,178512,178513,178516,178518,178520,178522],{"class":36,"line":65},[34,178514,178515],{"class":181},"$age ",[34,178517,1301],{"class":580},[34,178519,30458],{"class":50},[34,178521,38378],{"class":181},[34,178523,178524],{"class":40},"// integer\n",[34,178526,178527,178530,178532,178534,178536],{"class":36,"line":71},[34,178528,178529],{"class":181},"$price ",[34,178531,1301],{"class":580},[34,178533,25087],{"class":50},[34,178535,38412],{"class":181},[34,178537,178538],{"class":40},"// float\n",[34,178540,178541,178544,178546,178548,178550],{"class":36,"line":77},[34,178542,178543],{"class":181},"$isActive ",[34,178545,1301],{"class":580},[34,178547,32945],{"class":50},[34,178549,38395],{"class":181},[34,178551,178552],{"class":40},"// boolean\n",[34,178554,178555,178558,178560,178562,178564,178566,178568,178570,178572,178574],{"class":36,"line":82},[34,178556,178557],{"class":181},"$items ",[34,178559,1301],{"class":580},[34,178561,8315],{"class":181},[34,178563,8318],{"class":50},[34,178565,1798],{"class":181},[34,178567,8324],{"class":50},[34,178569,1798],{"class":181},[34,178571,3162],{"class":50},[34,178573,177826],{"class":181},[34,178575,178576],{"class":40},"// array\n",[34,178578,178579,178581,178583,178585,178587],{"class":36,"line":88},[34,178580,169857],{"class":181},[34,178582,1301],{"class":580},[34,178584,13898],{"class":50},[34,178586,38412],{"class":181},[34,178588,178589],{"class":40},"// null\n",[34,178591,178592],{"class":36,"line":242},[34,178593,62],{"emptyLinePlaceholder":61},[34,178595,178596],{"class":36,"line":250},[34,178597,178598],{"class":40},"// Type declarations (PHP 7+)\n",[34,178600,178601,178603,178605,178608,178610,178612],{"class":36,"line":263},[34,178602,10199],{"class":580},[34,178604,1607],{"class":181},[34,178606,178607],{"class":50},"strict_types",[34,178609,1301],{"class":580},[34,178611,8318],{"class":50},[34,178613,1586],{"class":181},[34,178615,178616],{"class":36,"line":275},[34,178617,62],{"emptyLinePlaceholder":61},[34,178619,178620,178622,178624,178626,178628,178631,178633,178636,178638,178640],{"class":36,"line":700},[34,178621,11044],{"class":580},[34,178623,7854],{"class":47},[34,178625,1607],{"class":181},[34,178627,17772],{"class":580},[34,178629,178630],{"class":181}," $a, ",[34,178632,17772],{"class":580},[34,178634,178635],{"class":181}," $b)",[34,178637,165],{"class":580},[34,178639,25160],{"class":580},[34,178641,661],{"class":181},[34,178643,178644,178646,178648,178650],{"class":36,"line":706},[34,178645,1564],{"class":580},[34,178647,173421],{"class":181},[34,178649,2940],{"class":580},[34,178651,173426],{"class":181},[34,178653,178654],{"class":36,"line":715},[34,178655,693],{"class":181},[34,178657,178658],{"class":36,"line":725},[34,178659,62],{"emptyLinePlaceholder":61},[34,178661,178662],{"class":36,"line":734},[34,178663,32996],{"class":40},[34,178665,178666,178669,178671,178674,178676,178678],{"class":36,"line":742},[34,178667,178668],{"class":50},"define",[34,178670,1607],{"class":181},[34,178672,178673],{"class":54},"\"MAX_SIZE\"",[34,178675,1798],{"class":181},[34,178677,20863],{"class":50},[34,178679,1586],{"class":181},[34,178681,178682,178684,178687,178689,178692],{"class":36,"line":748},[34,178683,14676],{"class":580},[34,178685,178686],{"class":50}," APP_NAME",[34,178688,683],{"class":580},[34,178690,178691],{"class":54}," \"MyApp\"",[34,178693,593],{"class":181},[34,178695,178696],{"class":36,"line":754},[34,178697,62],{"emptyLinePlaceholder":61},[34,178699,178700],{"class":36,"line":759},[34,178701,178702],{"class":40},"// Variable variables\n",[34,178704,178705,178708,178710,178712],{"class":36,"line":771},[34,178706,178707],{"class":181},"$varName ",[34,178709,1301],{"class":580},[34,178711,13866],{"class":54},[34,178713,593],{"class":181},[34,178715,178716,178719,178721,178724,178726],{"class":36,"line":794},[34,178717,178718],{"class":181},"$$varName ",[34,178720,1301],{"class":580},[34,178722,178723],{"class":54}," \"world\"",[34,178725,64381],{"class":181},[34,178727,178728],{"class":40},"// Creates $hello = \"world\"\n",[388,178730,170501],{},{"title":30,"searchDepth":44,"depth":44,"links":178732},[178733],{"id":32868,"depth":44,"text":32171},"Variables & Data Types in PHP.",{},{"title":32171,"description":178734},"php/variables-data-types",[139955,46870,38615,15678],"LDIb42uRXJMaR5pb9CkHN7ZMV43HWSAomv8pYr6_c-I",{"id":178741,"title":176846,"body":178742,"date":402,"description":178898,"extension":404,"meta":178899,"navigation":61,"order":854,"path":176845,"seo":178900,"stem":178901,"subject":139955,"tags":178902,"__hash__":178903},"topics/php/version-history.md",{"type":8,"value":178743,"toc":178895},[178744,178747],[11,178745,176846],{"id":178746},"version-history",[14308,178748,178749,178760],{},[14311,178750,178751],{},[14314,178752,178753,178755,178758],{},[14317,178754,39869],{},[14317,178756,178757],{},"Release Date",[14317,178759,8498],{},[14326,178761,178762,178777,178794,178812,178826,178837,178848,178859,178870,178884],{},[14314,178763,178764,178767,178770],{},[14331,178765,178766],{},"PHP 8.4",[14331,178768,178769],{},"Nov 2024",[14331,178771,178772,178773,178776],{},"Property hooks, asymmetric visibility, ",[20,178774,178775],{},"#[\\Deprecated]"," attribute",[14314,178778,178779,178782,178785],{},[14331,178780,178781],{},"PHP 8.3",[14331,178783,178784],{},"Nov 2023",[14331,178786,178787,178788,1798,178791,178776],{},"Typed class constants, ",[20,178789,178790],{},"json_validate()",[20,178792,178793],{},"#[\\Override]",[14314,178795,178796,178799,178802],{},[14331,178797,178798],{},"PHP 8.2",[14331,178800,178801],{},"Dec 2022",[14331,178803,178804,178805,1798,178807,1798,178809,178811],{},"Readonly classes, ",[20,178806,111592],{},[20,178808,632],{},[20,178810,103387],{}," as types, DNF types",[14314,178813,178814,178817,178820],{},[14331,178815,178816],{},"PHP 8.1",[14331,178818,178819],{},"Nov 2021",[14331,178821,178822,178823,62326],{},"Enums, fibers, readonly properties, intersection types, ",[20,178824,178825],{},"never",[14314,178827,178828,178831,178834],{},[14331,178829,178830],{},"PHP 8.0",[14331,178832,178833],{},"Nov 2020",[14331,178835,178836],{},"Named arguments, attributes, union types, match expression, nullsafe operator, constructor promotion",[14314,178838,178839,178842,178845],{},[14331,178840,178841],{},"PHP 7.4",[14331,178843,178844],{},"Nov 2019",[14331,178846,178847],{},"Arrow functions, typed properties, null coalescing assignment, spread operator in arrays",[14314,178849,178850,178853,178856],{},[14331,178851,178852],{},"PHP 7.3",[14331,178854,178855],{},"Dec 2018",[14331,178857,178858],{},"Flexible heredoc/nowdoc, trailing commas in function calls",[14314,178860,178861,178864,178867],{},[14331,178862,178863],{},"PHP 7.2",[14331,178865,178866],{},"Nov 2017",[14331,178868,178869],{},"Object type hint, parameter type widening",[14314,178871,178872,178875,178878],{},[14331,178873,178874],{},"PHP 7.1",[14331,178876,178877],{},"Dec 2016",[14331,178879,178880,178881,178883],{},"Nullable types, ",[20,178882,818],{}," return type, class constant visibility",[14314,178885,178886,178889,178892],{},[14331,178887,178888],{},"PHP 7.0",[14331,178890,178891],{},"Dec 2015",[14331,178893,178894],{},"Scalar type hints, return types, null coalescing, spaceship operator",{"title":30,"searchDepth":44,"depth":44,"links":178896},[178897],{"id":178746,"depth":44,"text":176846},"Version History in PHP.",{},{"title":176846,"description":178898},"php/version-history",[139955,46870,38615,15678],"0bAfxSXX7BFKRlBIRaSPHZo6qoOVW9IbuHbrZOHmup4",{"id":178905,"title":178906,"body":178907,"date":402,"description":179325,"extension":404,"meta":179326,"navigation":61,"order":402,"path":179328,"seo":179329,"stem":179330,"subject":402,"tags":402,"__hash__":179331},"topics/playwright/installation-details.md","Installation Details",{"type":8,"value":178908,"toc":179323},[178909,178916,178918,178924,178927,178930,178952,178957,178962,178965,178970,178976,178982,178988,178991,179016,179021,179030,179033,179039,179048,179056,179062,179066,179072,179078,179084,179087,179113,179122,179129,179133,179139,179145,179151,179156,179163,179167,179173,179179,179185,179193,179196,179200,179206,179212,179218,179221,179225,179231,179237,179243,179248,179262,179267],[16,178910,178911,178912,178915],{},"Installation | Playwright ",[145,178913,178914],{"href":30},"Skip to main content ","\nOn this page",[8535,178917,97],{"id":96},[16,178919,178920,178921],{},"Introduction ",[145,178922,178923],{"href":30},"​ ",[16,178925,178926],{},"Playwright Test is an end-to-end test framework for modern web apps. It bundles test runner, assertions, isolation, parallelization and rich tooling. Playwright supports Chromium, WebKit and Firefox on Windows, Linux and macOS, locally or in CI, headless or headed, with native mobile emulation for Chrome (Android) and Mobile Safari.",[16,178928,178929],{},"**You will learn **",[309,178931,178932,178937,178942,178947],{},[312,178933,178934],{},[145,178935,178936],{"href":30},"How to install Playwright ",[312,178938,178939],{},[145,178940,178941],{"href":30},"What's installed ",[312,178943,178944],{},[145,178945,178946],{"href":30},"How to run the example test ",[312,178948,178949],{},[145,178950,178951],{"href":30},"How to open the HTML test report ",[16,178953,178954,178955],{},"Installing Playwright ",[145,178956,178923],{"href":30},[16,178958,178959,178960],{},"Get started by installing Playwright using one of the following methods.\nUsing npm, yarn or pnpm ",[145,178961,178923],{"href":30},[16,178963,178964],{},"The command below either initializes a new project or adds Playwright to an existing one.",[309,178966,178967],{},[312,178968,178969],{},"npm - yarn - pnpm",[25,178971,178974],{"className":178972,"code":178973,"language":780},[13703],"`npm init playwright@latest\n`\n",[20,178975,178973],{"__ignoreMap":30},[25,178977,178980],{"className":178978,"code":178979,"language":780},[13703],"`yarn create playwright\n`\n",[20,178981,178979],{"__ignoreMap":30},[25,178983,178986],{"className":178984,"code":178985,"language":780},[13703],"`pnpm create playwright\n`\n",[20,178987,178985],{"__ignoreMap":30},[16,178989,178990],{},"When prompted, choose / confirm:",[309,178992,178993,178996,179010,179013],{},[312,178994,178995],{},"TypeScript or JavaScript (default: TypeScript)",[312,178997,178998,178999,179002,179003,179006,179007,179009],{},"Tests folder name (default: ",[20,179000,179001],{},"tests ",", or ",[20,179004,179005],{},"e2e ","if ",[20,179008,179001],{},"already exists)",[312,179011,179012],{},"Add a GitHub Actions workflow (recommended for CI)",[312,179014,179015],{},"Install Playwright browsers (default: yes)",[16,179017,179018,179019],{},"You can re-run the command later; it does not overwrite existing tests.\nUsing the VS Code Extension ",[145,179020,178923],{"href":30},[16,179022,179023,179024,179027,179028],{},"You can also create and run tests with the ",[145,179025,179026],{"href":30},"VS Code Extension ",".\nWhat's Installed ",[145,179029,178923],{"href":30},[16,179031,179032],{},"Playwright downloads required browser binaries and creates the scaffold below.",[25,179034,179037],{"className":179035,"code":179036,"language":780},[13703],"`playwright.config.ts         # Test configuration\npackage.json\npackage-lock.json            # Or yarn.lock / pnpm-lock.yaml\ntests/\n  example.spec.ts            # Minimal example test\n`\n",[20,179038,179036],{"__ignoreMap":30},[16,179040,18,179041,179044,179045,151],{},[145,179042,179043],{"href":30},"playwright.config ","centralizes configuration: target browsers, timeouts, retries, projects, reporters and more. In existing projects dependencies are added to your current ",[20,179046,179047],{},"package.json ",[16,179049,179050,179053,179054],{},[20,179051,179052],{},"tests/ ","contains a minimal starter test.\nRunning the Example Test ",[145,179055,178923],{"href":30},[16,179057,179058,179059,179061],{},"By default tests run headless in parallel across Chromium, Firefox and WebKit (configurable in ",[145,179060,179043],{"href":30},"). Output and aggregated results display in the terminal.",[309,179063,179064],{},[312,179065,178969],{},[25,179067,179070],{"className":179068,"code":179069,"language":780},[13703],"`npx playwright test\n`\n",[20,179071,179069],{"__ignoreMap":30},[25,179073,179076],{"className":179074,"code":179075,"language":780},[13703],"`yarn playwright test\n`\n",[20,179077,179075],{"__ignoreMap":30},[25,179079,179082],{"className":179080,"code":179081,"language":780},[13703],"`pnpm exec playwright test\n`\n",[20,179083,179081],{"__ignoreMap":30},[16,179085,179086],{},"Tips:",[309,179088,179089,179095,179101,179107],{},[312,179090,179091,179092,151],{},"See the browser window: add ",[20,179093,179094],{},"--headed ",[312,179096,179097,179098,151],{},"Run a single project/browser: ",[20,179099,179100],{},"--project=chromium ",[312,179102,179103,179104,151],{},"Run one file: ",[20,179105,179106],{},"npx playwright test tests/example.spec.ts ",[312,179108,179109,179110,151],{},"Open testing UI: ",[20,179111,179112],{},"--ui ",[16,179114,179115,179116,179119,179120],{},"See ",[145,179117,179118],{"href":30},"Running Tests ","for details on filtering, headed mode, sharding and retries.\nHTML Test Reports ",[145,179121,178923],{"href":30},[16,179123,179124,179125,179128],{},"After a test run, the ",[145,179126,179127],{"href":30},"HTML Reporter ","provides a dashboard filterable by the browser, passed, failed, skipped, flaky and more. Click a test to inspect errors, attachments and steps. It auto-opens only when failures occur; open manually with the command below.",[309,179130,179131],{},[312,179132,178969],{},[25,179134,179137],{"className":179135,"code":179136,"language":780},[13703],"`npx playwright show-report\n`\n",[20,179138,179136],{"__ignoreMap":30},[25,179140,179143],{"className":179141,"code":179142,"language":780},[13703],"`yarn playwright show-report\n`\n",[20,179144,179142],{"__ignoreMap":30},[25,179146,179149],{"className":179147,"code":179148,"language":780},[13703],"`pnpm exec playwright show-report\n`\n",[20,179150,179148],{"__ignoreMap":30},[16,179152,179153,179154],{},"Running the Example Test in UI Mode ",[145,179155,178923],{"href":30},[16,179157,179158,179159,179162],{},"Run tests with ",[145,179160,179161],{"href":30},"UI Mode ","for watch mode, live step view, time travel debugging and more.",[309,179164,179165],{},[312,179166,178969],{},[25,179168,179171],{"className":179169,"code":179170,"language":780},[13703],"`npx playwright test --ui\n`\n",[20,179172,179170],{"__ignoreMap":30},[25,179174,179177],{"className":179175,"code":179176,"language":780},[13703],"`yarn playwright test --ui\n`\n",[20,179178,179176],{"__ignoreMap":30},[25,179180,179183],{"className":179181,"code":179182,"language":780},[13703],"`pnpm exec playwright test --ui\n`\n",[20,179184,179182],{"__ignoreMap":30},[16,179186,90034,179187,179190,179191],{},[145,179188,179189],{"href":30},"detailed guide on UI Mode ","for watch filters, step details and trace integration.\nUpdating Playwright ",[145,179192,178923],{"href":30},[16,179194,179195],{},"Update Playwright and download new browser binaries and their dependencies:",[309,179197,179198],{},[312,179199,178969],{},[25,179201,179204],{"className":179202,"code":179203,"language":780},[13703],"`npm install -D @playwright/test@latest\nnpx playwright install --with-deps\n`\n",[20,179205,179203],{"__ignoreMap":30},[25,179207,179210],{"className":179208,"code":179209,"language":780},[13703],"`yarn add --dev @playwright/test@latest\nyarn playwright install --with-deps\n`\n",[20,179211,179209],{"__ignoreMap":30},[25,179213,179216],{"className":179214,"code":179215,"language":780},[13703],"`pnpm install --save-dev @playwright/test@latest\npnpm exec playwright install --with-deps\n`\n",[20,179217,179215],{"__ignoreMap":30},[16,179219,179220],{},"Check your installed version:",[309,179222,179223],{},[312,179224,178969],{},[25,179226,179229],{"className":179227,"code":179228,"language":780},[13703],"`npx playwright --version\n`\n",[20,179230,179228],{"__ignoreMap":30},[25,179232,179235],{"className":179233,"code":179234,"language":780},[13703],"`yarn playwright --version\n`\n",[20,179236,179234],{"__ignoreMap":30},[25,179238,179241],{"className":179239,"code":179240,"language":780},[13703],"`pnpm exec playwright --version\n`\n",[20,179242,179240],{"__ignoreMap":30},[16,179244,179245,179246],{},"System requirements ",[145,179247,178923],{"href":30},[309,179249,179250,179253,179256,179259],{},[312,179251,179252],{},"Node.js: latest 20.x, 22.x or 24.x.",[312,179254,179255],{},"Windows 11+, Windows Server 2019+ or Windows Subsystem for Linux (WSL).",[312,179257,179258],{},"macOS 14 (Ventura) or later.",[312,179260,179261],{},"Debian 12 / 13, Ubuntu 22.04 / 24.04 (x86-64 or arm64).",[16,179263,179264,179265],{},"What's next ",[145,179266,178923],{"href":30},[309,179268,179269,179274,179279,179284,179289,179295,179303],{},[312,179270,179271],{},[145,179272,179273],{"href":30},"Write tests using web-first assertions, fixtures and locators ",[312,179275,179276],{},[145,179277,179278],{"href":30},"Run single or multiple tests; headed mode ",[312,179280,179281],{},[145,179282,179283],{"href":30},"Generate tests with Codegen ",[312,179285,179286],{},[145,179287,179288],{"href":30},"View a trace of your tests ",[312,179290,179291,5081,179293],{},[145,179292,178920],{"href":30},[145,179294,178954],{"href":30},[312,179296,179297,5081,179300],{},[145,179298,179299],{"href":30},"Using npm, yarn or pnpm ",[145,179301,179302],{"href":30},"Using the VS Code Extension ",[312,179304,179305,5081,179308,5081,179311,5081,179314,5081,179316,5081,179319,5081,179321],{},[145,179306,179307],{"href":30},"What's Installed ",[145,179309,179310],{"href":30},"Running the Example Test ",[145,179312,179313],{"href":30},"HTML Test Reports ",[145,179315,179153],{"href":30},[145,179317,179318],{"href":30},"Updating Playwright ",[145,179320,179245],{"href":30},[145,179322,179264],{"href":30},{"title":30,"searchDepth":44,"depth":44,"links":179324},[],"Installation | Playwright Skip to main content \nOn this page",{"source":179327},"https://playwright.dev/docs/intro","/playwright/installation-details",{"title":178906,"description":179325},"playwright/installation-details","koyqtpYQHJiyuaTooPnohKnPrS3xND_lIM7Swp2Z6iM",{"id":179333,"title":179334,"body":179335,"date":402,"description":179663,"extension":404,"meta":179664,"navigation":61,"order":37,"path":179665,"seo":179666,"stem":179667,"subject":179668,"tags":179669,"__hash__":179671},"topics/playwright/overview.md","Playwright",{"type":8,"value":179336,"toc":179653},[179337,179339,179342,179344,179364,179366,179369,179383,179397,179410,179413,179417,179422,179436,179439,179453,179457,179464,179478,179564,179568,179571,179582,179585,179601,179605,179608,179635,179639,179647,179650],[11,179338,13534],{"id":13533},[16,179340,179341],{},"Playwright is a powerful tool for automating web browsers. It supports Chromium, Firefox, and WebKit, making it easy to test web applications across different environments. Playwright provides tools for browser emulation, parallel test execution, and integration with CI/CD workflows.",[11,179343,8498],{"id":8497},[309,179345,179346,179349,179352,179355,179361],{},[312,179347,179348],{},"Cross-browser support (Chromium, Firefox, WebKit)",[312,179350,179351],{},"Headless and headed modes",[312,179353,179354],{},"Native mobile emulation",[312,179356,179357,179358],{},"Powerful test configuration through ",[20,179359,179360],{},"playwright.config",[312,179362,179363],{},"Advanced debugging with UI mode and trace viewer",[11,179365,97],{"id":96},[16,179367,179368],{},"Get started with Playwright by installing it via your favorite package manager:",[25,179370,179372],{"className":27,"code":179371,"language":29,"meta":30,"style":30},"npm init playwright@latest\n",[20,179373,179374],{"__ignoreMap":30},[34,179375,179376,179378,179380],{"class":36,"line":37},[34,179377,8177],{"class":47},[34,179379,5255],{"class":54},[34,179381,179382],{"class":54}," playwright@latest\n",[25,179384,179386],{"className":27,"code":179385,"language":29,"meta":30,"style":30},"yarn create playwright\n",[20,179387,179388],{"__ignoreMap":30},[34,179389,179390,179392,179394],{"class":36,"line":37},[34,179391,13810],{"class":47},[34,179393,7077],{"class":54},[34,179395,179396],{"class":54}," playwright\n",[25,179398,179400],{"className":27,"code":179399,"language":29,"meta":30,"style":30},"pnpm create playwright\n",[20,179401,179402],{"__ignoreMap":30},[34,179403,179404,179406,179408],{"class":36,"line":37},[34,179405,13788],{"class":47},[34,179407,7077],{"class":54},[34,179409,179396],{"class":54},[16,179411,179412],{},"Follow the prompts to set up your project and install dependencies.",[11,179414,179416],{"id":179415},"running-tests","Running Tests",[16,179418,15998,179419,179421],{},[20,179420,8205],{}," to run Playwright tests:",[25,179423,179425],{"className":27,"code":179424,"language":29,"meta":30,"style":30},"npx playwright test\n",[20,179426,179427],{"__ignoreMap":30},[34,179428,179429,179431,179434],{"class":36,"line":37},[34,179430,8205],{"class":47},[34,179432,179433],{"class":54}," playwright",[34,179435,16110],{"class":54},[16,179437,179438],{},"Additional options:",[309,179440,179441,179447],{},[312,179442,179443,179444],{},"Run tests in headed mode: ",[20,179445,179446],{},"npx playwright test --headed",[312,179448,179449,179450],{},"Open the HTML report: ",[20,179451,179452],{},"npx playwright show-report",[11,179454,179456],{"id":179455},"test-configuration","Test Configuration",[16,179458,179459,179460,179463],{},"Playwright uses a central configuration file, ",[20,179461,179462],{},"playwright.config.ts",", for managing settings such as:",[309,179465,179466,179469,179472,179475],{},[312,179467,179468],{},"Target browsers",[312,179470,179471],{},"Timeouts",[312,179473,179474],{},"Retries",[312,179476,179477],{},"Reporting options",[25,179479,179481],{"className":571,"code":179480,"language":573,"meta":30,"style":30},"// Example configuration\nconst config = {\n  timeout: 30000,\n  retries: 2,\n  projects: [\n    { name: 'Chromium' },\n    { name: 'Firefox' },\n    { name: 'WebKit' }\n  ],\n};\nexport default config;\n",[20,179482,179483,179488,179498,179507,179515,179520,179529,179538,179547,179551,179555],{"__ignoreMap":30},[34,179484,179485],{"class":36,"line":37},[34,179486,179487],{"class":40},"// Example configuration\n",[34,179489,179490,179492,179494,179496],{"class":36,"line":44},[34,179491,14676],{"class":580},[34,179493,58810],{"class":50},[34,179495,683],{"class":580},[34,179497,661],{"class":181},[34,179499,179500,179502,179505],{"class":36,"line":58},[34,179501,58829],{"class":181},[34,179503,179504],{"class":50},"30000",[34,179506,624],{"class":181},[34,179508,179509,179511,179513],{"class":36,"line":65},[34,179510,58839],{"class":181},[34,179512,8324],{"class":50},[34,179514,624],{"class":181},[34,179516,179517],{"class":36,"line":71},[34,179518,179519],{"class":181},"  projects: [\n",[34,179521,179522,179524,179527],{"class":36,"line":77},[34,179523,165843],{"class":181},[34,179525,179526],{"class":54},"'Chromium'",[34,179528,14846],{"class":181},[34,179530,179531,179533,179536],{"class":36,"line":82},[34,179532,165843],{"class":181},[34,179534,179535],{"class":54},"'Firefox'",[34,179537,14846],{"class":181},[34,179539,179540,179542,179545],{"class":36,"line":88},[34,179541,165843],{"class":181},[34,179543,179544],{"class":54},"'WebKit'",[34,179546,52786],{"class":181},[34,179548,179549],{"class":36,"line":242},[34,179550,127682],{"class":181},[34,179552,179553],{"class":36,"line":250},[34,179554,17632],{"class":181},[34,179556,179557,179559,179561],{"class":36,"line":263},[34,179558,652],{"class":580},[34,179560,7298],{"class":580},[34,179562,179563],{"class":181}," config;\n",[11,179565,179567],{"id":179566},"debugging-tests","Debugging Tests",[16,179569,179570],{},"Playwright's UI mode makes it easier to debug tests with features like:",[309,179572,179573,179576,179579],{},[312,179574,179575],{},"Live step viewer",[312,179577,179578],{},"Time travel debugging",[312,179580,179581],{},"Watch mode",[16,179583,179584],{},"Run in UI mode:",[25,179586,179588],{"className":27,"code":179587,"language":29,"meta":30,"style":30},"npx playwright test --ui\n",[20,179589,179590],{"__ignoreMap":30},[34,179591,179592,179594,179596,179598],{"class":36,"line":37},[34,179593,8205],{"class":47},[34,179595,179433],{"class":54},[34,179597,17481],{"class":54},[34,179599,179600],{"class":50}," --ui\n",[11,179602,179604],{"id":179603},"updating-playwright","Updating Playwright",[16,179606,179607],{},"Keep Playwright up-to-date to access the latest features and bug fixes:",[25,179609,179611],{"className":27,"code":179610,"language":29,"meta":30,"style":30},"npm install -D @playwright/test@latest\nnpx playwright install --with-deps\n",[20,179612,179613,179624],{"__ignoreMap":30},[34,179614,179615,179617,179619,179621],{"class":36,"line":37},[34,179616,8177],{"class":47},[34,179618,118],{"class":54},[34,179620,13768],{"class":50},[34,179622,179623],{"class":54}," @playwright/test@latest\n",[34,179625,179626,179628,179630,179632],{"class":36,"line":44},[34,179627,8205],{"class":47},[34,179629,179433],{"class":54},[34,179631,118],{"class":54},[34,179633,179634],{"class":50}," --with-deps\n",[11,179636,179638],{"id":179637},"system-requirements","System Requirements",[309,179640,179641,179644],{},[312,179642,179643],{},"Node.js 20.x or newer",[312,179645,179646],{},"Supported platforms: Windows, macOS, Linux",[16,179648,179649],{},"Playwright simplifies end-to-end testing, reducing the time needed to debug and maintain complex test suites.",[388,179651,179652],{},"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 .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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":30,"searchDepth":44,"depth":44,"links":179654},[179655,179656,179657,179658,179659,179660,179661,179662],{"id":13533,"depth":44,"text":13534},{"id":8497,"depth":44,"text":8498},{"id":96,"depth":44,"text":97},{"id":179415,"depth":44,"text":179416},{"id":179455,"depth":44,"text":179456},{"id":179566,"depth":44,"text":179567},{"id":179603,"depth":44,"text":179604},{"id":179637,"depth":44,"text":179638},"Quick guide to Playwright for end-to-end testing of web applications across multiple browsers.",{},"/playwright/overview",{"title":179334,"description":179663},"playwright/overview","playwright",[179668,16094,179670,413],"e2e","443sF9aXcu9LmBYUs34nKBNZ5DHy9jIcX5WGj-ijUrI",{"id":179673,"title":8686,"body":179674,"date":402,"description":179803,"extension":404,"meta":179804,"navigation":61,"order":706,"path":179805,"seo":179806,"stem":179807,"subject":13788,"tags":179808,"__hash__":179809},"topics/pnpm/configuration.md",{"type":8,"value":179675,"toc":179800},[179676,179678,179798],[11,179677,8686],{"id":558},[25,179679,179681],{"className":27,"code":179680,"language":29,"meta":30,"style":30},"# View all config\npnpm config list\n\n# Get config value\npnpm config get \u003Ckey>\n\n# Set config value\npnpm config set \u003Ckey> \u003Cvalue>\n\n# Delete config value\npnpm config delete \u003Ckey>\n\n# Set store directory\npnpm config set store-dir /path/to/store\n",[20,179682,179683,179687,179695,179699,179703,179719,179723,179727,179751,179755,179759,179775,179779,179784],{"__ignoreMap":30},[34,179684,179685],{"class":36,"line":37},[34,179686,159256],{"class":40},[34,179688,179689,179691,179693],{"class":36,"line":44},[34,179690,13788],{"class":47},[34,179692,58810],{"class":54},[34,179694,7536],{"class":54},[34,179696,179697],{"class":36,"line":58},[34,179698,62],{"emptyLinePlaceholder":61},[34,179700,179701],{"class":36,"line":65},[34,179702,159283],{"class":40},[34,179704,179705,179707,179709,179711,179713,179715,179717],{"class":36,"line":71},[34,179706,13788],{"class":47},[34,179708,58810],{"class":54},[34,179710,7173],{"class":54},[34,179712,5470],{"class":580},[34,179714,159296],{"class":54},[34,179716,60946],{"class":181},[34,179718,1248],{"class":580},[34,179720,179721],{"class":36,"line":77},[34,179722,62],{"emptyLinePlaceholder":61},[34,179724,179725],{"class":36,"line":82},[34,179726,159320],{"class":40},[34,179728,179729,179731,179733,179735,179737,179739,179741,179743,179745,179747,179749],{"class":36,"line":88},[34,179730,13788],{"class":47},[34,179732,58810],{"class":54},[34,179734,9481],{"class":54},[34,179736,5470],{"class":580},[34,179738,159296],{"class":54},[34,179740,60946],{"class":181},[34,179742,5691],{"class":580},[34,179744,5470],{"class":580},[34,179746,159341],{"class":54},[34,179748,5476],{"class":181},[34,179750,1248],{"class":580},[34,179752,179753],{"class":36,"line":242},[34,179754,62],{"emptyLinePlaceholder":61},[34,179756,179757],{"class":36,"line":250},[34,179758,159368],{"class":40},[34,179760,179761,179763,179765,179767,179769,179771,179773],{"class":36,"line":263},[34,179762,13788],{"class":47},[34,179764,58810],{"class":54},[34,179766,9562],{"class":54},[34,179768,5470],{"class":580},[34,179770,159296],{"class":54},[34,179772,60946],{"class":181},[34,179774,1248],{"class":580},[34,179776,179777],{"class":36,"line":275},[34,179778,62],{"emptyLinePlaceholder":61},[34,179780,179781],{"class":36,"line":700},[34,179782,179783],{"class":40},"# Set store directory\n",[34,179785,179786,179788,179790,179792,179795],{"class":36,"line":706},[34,179787,13788],{"class":47},[34,179789,58810],{"class":54},[34,179791,9481],{"class":54},[34,179793,179794],{"class":54}," store-dir",[34,179796,179797],{"class":54}," /path/to/store\n",[388,179799,6641],{},{"title":30,"searchDepth":44,"depth":44,"links":179801},[179802],{"id":558,"depth":44,"text":8686},"Configuration in pnpm.",{},"/pnpm/configuration",{"title":8686,"description":179803},"pnpm/configuration",[13788,78040,5591,8606],"FSgcuTsFLP-fozwUvbv3nNxNKHotj5ig9MPZGGCB-JI",{"id":179811,"title":14656,"body":179812,"date":402,"description":179911,"extension":404,"meta":179912,"navigation":61,"order":754,"path":179913,"seo":179914,"stem":179915,"subject":13788,"tags":179916,"__hash__":179917},"topics/pnpm/environment-variables.md",{"type":8,"value":179813,"toc":179908},[179814,179816,179906],[11,179815,14656],{"id":14661},[25,179817,179819],{"className":27,"code":179818,"language":29,"meta":30,"style":30},"# Skip running scripts\npnpm install --ignore-scripts\n\n# Offline mode\npnpm install --offline\n\n# Prefer offline (use cache when possible)\npnpm install --prefer-offline\n\n# Frozen lockfile (CI mode)\npnpm install --frozen-lockfile\n\n# Force fresh install\npnpm install --force\n",[20,179820,179821,179826,179835,179839,179844,179853,179857,179862,179871,179875,179880,179889,179893,179898],{"__ignoreMap":30},[34,179822,179823],{"class":36,"line":37},[34,179824,179825],{"class":40},"# Skip running scripts\n",[34,179827,179828,179830,179832],{"class":36,"line":44},[34,179829,13788],{"class":47},[34,179831,118],{"class":54},[34,179833,179834],{"class":50}," --ignore-scripts\n",[34,179836,179837],{"class":36,"line":58},[34,179838,62],{"emptyLinePlaceholder":61},[34,179840,179841],{"class":36,"line":65},[34,179842,179843],{"class":40},"# Offline mode\n",[34,179845,179846,179848,179850],{"class":36,"line":71},[34,179847,13788],{"class":47},[34,179849,118],{"class":54},[34,179851,179852],{"class":50}," --offline\n",[34,179854,179855],{"class":36,"line":77},[34,179856,62],{"emptyLinePlaceholder":61},[34,179858,179859],{"class":36,"line":82},[34,179860,179861],{"class":40},"# Prefer offline (use cache when possible)\n",[34,179863,179864,179866,179868],{"class":36,"line":88},[34,179865,13788],{"class":47},[34,179867,118],{"class":54},[34,179869,179870],{"class":50}," --prefer-offline\n",[34,179872,179873],{"class":36,"line":242},[34,179874,62],{"emptyLinePlaceholder":61},[34,179876,179877],{"class":36,"line":250},[34,179878,179879],{"class":40},"# Frozen lockfile (CI mode)\n",[34,179881,179882,179884,179886],{"class":36,"line":263},[34,179883,13788],{"class":47},[34,179885,118],{"class":54},[34,179887,179888],{"class":50}," --frozen-lockfile\n",[34,179890,179891],{"class":36,"line":275},[34,179892,62],{"emptyLinePlaceholder":61},[34,179894,179895],{"class":36,"line":700},[34,179896,179897],{"class":40},"# Force fresh install\n",[34,179899,179900,179902,179904],{"class":36,"line":706},[34,179901,13788],{"class":47},[34,179903,118],{"class":54},[34,179905,159210],{"class":50},[388,179907,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":179909},[179910],{"id":14661,"depth":44,"text":14656},"Environment Variables in pnpm.",{},"/pnpm/environment-variables",{"title":14656,"description":179911},"pnpm/environment-variables",[13788,78040,5591,8606],"wT2ci_g_pgoKMaYV8-PopCqtpYS7KsrnT8Howi4uB24",{"id":179919,"title":179920,"body":179921,"date":402,"description":180117,"extension":404,"meta":180118,"navigation":61,"order":725,"path":180119,"seo":180120,"stem":180121,"subject":13788,"tags":180122,"__hash__":180123},"topics/pnpm/filtering.md","Filtering",{"type":8,"value":179922,"toc":180114},[179923,179926,180111],[11,179924,179920],{"id":179925},"filtering",[25,179927,179929],{"className":27,"code":179928,"language":29,"meta":30,"style":30},"# Filter by package name\npnpm --filter \u003Cpackage-name> \u003Ccommand>\npnpm -F \u003Cpackage-name> \u003Ccommand>\n\n# Filter by directory\npnpm --filter ./packages/foo \u003Ccommand>\n\n# Filter by glob\npnpm --filter \"@scope/*\" \u003Ccommand>\n\n# Exclude packages\npnpm --filter \"!\u003Cpackage>\" \u003Ccommand>\n\n# Filter dependencies of package\npnpm --filter \"...^\u003Cpackage>\" \u003Ccommand>\n\n# Filter dependents of package\npnpm --filter \"...\u003Cpackage>\" \u003Ccommand>\n",[20,179930,179931,179936,179959,179981,179985,179990,180007,180011,180016,180033,180037,180042,180059,180063,180068,180085,180089,180094],{"__ignoreMap":30},[34,179932,179933],{"class":36,"line":37},[34,179934,179935],{"class":40},"# Filter by package name\n",[34,179937,179938,179940,179942,179944,179947,179949,179951,179953,179955,179957],{"class":36,"line":44},[34,179939,13788],{"class":47},[34,179941,57840],{"class":50},[34,179943,5470],{"class":580},[34,179945,179946],{"class":54},"package-nam",[34,179948,5476],{"class":181},[34,179950,5691],{"class":580},[34,179952,5470],{"class":580},[34,179954,58037],{"class":54},[34,179956,5878],{"class":181},[34,179958,1248],{"class":580},[34,179960,179961,179963,179965,179967,179969,179971,179973,179975,179977,179979],{"class":36,"line":58},[34,179962,13788],{"class":47},[34,179964,43705],{"class":50},[34,179966,5470],{"class":580},[34,179968,179946],{"class":54},[34,179970,5476],{"class":181},[34,179972,5691],{"class":580},[34,179974,5470],{"class":580},[34,179976,58037],{"class":54},[34,179978,5878],{"class":181},[34,179980,1248],{"class":580},[34,179982,179983],{"class":36,"line":65},[34,179984,62],{"emptyLinePlaceholder":61},[34,179986,179987],{"class":36,"line":71},[34,179988,179989],{"class":40},"# Filter by directory\n",[34,179991,179992,179994,179996,179999,180001,180003,180005],{"class":36,"line":77},[34,179993,13788],{"class":47},[34,179995,57840],{"class":50},[34,179997,179998],{"class":54}," ./packages/foo",[34,180000,5470],{"class":580},[34,180002,58037],{"class":54},[34,180004,5878],{"class":181},[34,180006,1248],{"class":580},[34,180008,180009],{"class":36,"line":82},[34,180010,62],{"emptyLinePlaceholder":61},[34,180012,180013],{"class":36,"line":88},[34,180014,180015],{"class":40},"# Filter by glob\n",[34,180017,180018,180020,180022,180025,180027,180029,180031],{"class":36,"line":242},[34,180019,13788],{"class":47},[34,180021,57840],{"class":50},[34,180023,180024],{"class":54}," \"@scope/*\"",[34,180026,5470],{"class":580},[34,180028,58037],{"class":54},[34,180030,5878],{"class":181},[34,180032,1248],{"class":580},[34,180034,180035],{"class":36,"line":250},[34,180036,62],{"emptyLinePlaceholder":61},[34,180038,180039],{"class":36,"line":263},[34,180040,180041],{"class":40},"# Exclude packages\n",[34,180043,180044,180046,180048,180051,180053,180055,180057],{"class":36,"line":275},[34,180045,13788],{"class":47},[34,180047,57840],{"class":50},[34,180049,180050],{"class":54}," \"!\u003Cpackage>\"",[34,180052,5470],{"class":580},[34,180054,58037],{"class":54},[34,180056,5878],{"class":181},[34,180058,1248],{"class":580},[34,180060,180061],{"class":36,"line":700},[34,180062,62],{"emptyLinePlaceholder":61},[34,180064,180065],{"class":36,"line":706},[34,180066,180067],{"class":40},"# Filter dependencies of package\n",[34,180069,180070,180072,180074,180077,180079,180081,180083],{"class":36,"line":715},[34,180071,13788],{"class":47},[34,180073,57840],{"class":50},[34,180075,180076],{"class":54}," \"...^\u003Cpackage>\"",[34,180078,5470],{"class":580},[34,180080,58037],{"class":54},[34,180082,5878],{"class":181},[34,180084,1248],{"class":580},[34,180086,180087],{"class":36,"line":725},[34,180088,62],{"emptyLinePlaceholder":61},[34,180090,180091],{"class":36,"line":734},[34,180092,180093],{"class":40},"# Filter dependents of package\n",[34,180095,180096,180098,180100,180103,180105,180107,180109],{"class":36,"line":742},[34,180097,13788],{"class":47},[34,180099,57840],{"class":50},[34,180101,180102],{"class":54}," \"...\u003Cpackage>\"",[34,180104,5470],{"class":580},[34,180106,58037],{"class":54},[34,180108,5878],{"class":181},[34,180110,1248],{"class":580},[388,180112,180113],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .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":30,"searchDepth":44,"depth":44,"links":180115},[180116],{"id":179925,"depth":44,"text":179920},"Filtering in pnpm.",{},"/pnpm/filtering",{"title":179920,"description":180117},"pnpm/filtering",[13788,78040,5591,8606],"BY5ZK8jgnVAnw0k-inM-sHNi7RM9BpHE5vJVkA_vHNo",{"id":180125,"title":97,"body":180126,"date":402,"description":180206,"extension":404,"meta":180207,"navigation":61,"order":44,"path":180208,"seo":180209,"stem":180210,"subject":13788,"tags":180211,"__hash__":180212},"topics/pnpm/installation.md",{"type":8,"value":180127,"toc":180203},[180128,180130,180201],[11,180129,97],{"id":96},[25,180131,180133],{"className":27,"code":180132,"language":29,"meta":30,"style":30},"# Install pnpm\nnpm install -g pnpm\n\n# Using corepack (Node.js 16.13+)\ncorepack enable\ncorepack prepare pnpm@latest --activate\n\n# Check version\npnpm --version\npnpm -v\n\n",[20,180134,180135,180140,180150,180154,180159,180167,180180,180184,180189,180195],{"__ignoreMap":30},[34,180136,180137],{"class":36,"line":37},[34,180138,180139],{"class":40},"# Install pnpm\n",[34,180141,180142,180144,180146,180148],{"class":36,"line":44},[34,180143,8177],{"class":47},[34,180145,118],{"class":54},[34,180147,9753],{"class":50},[34,180149,168491],{"class":54},[34,180151,180152],{"class":36,"line":58},[34,180153,62],{"emptyLinePlaceholder":61},[34,180155,180156],{"class":36,"line":65},[34,180157,180158],{"class":40},"# Using corepack (Node.js 16.13+)\n",[34,180160,180161,180164],{"class":36,"line":71},[34,180162,180163],{"class":47},"corepack",[34,180165,180166],{"class":54}," enable\n",[34,180168,180169,180171,180174,180177],{"class":36,"line":77},[34,180170,180163],{"class":47},[34,180172,180173],{"class":54}," prepare",[34,180175,180176],{"class":54}," pnpm@latest",[34,180178,180179],{"class":50}," --activate\n",[34,180181,180182],{"class":36,"line":82},[34,180183,62],{"emptyLinePlaceholder":61},[34,180185,180186],{"class":36,"line":88},[34,180187,180188],{"class":40},"# Check version\n",[34,180190,180191,180193],{"class":36,"line":242},[34,180192,13788],{"class":47},[34,180194,5013],{"class":50},[34,180196,180197,180199],{"class":36,"line":250},[34,180198,13788],{"class":47},[34,180200,57767],{"class":50},[388,180202,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":180204},[180205],{"id":96,"depth":44,"text":97},"Installation in pnpm.",{},"/pnpm/installation",{"title":97,"description":180206},"pnpm/installation",[13788,78040,5591,8606],"vflkLBeBWpQkIitY1mERz0rmXcZ-6Tv0G1P8Xp6xyNA",{"id":180214,"title":6112,"body":180215,"date":402,"description":180478,"extension":404,"meta":180479,"navigation":61,"order":82,"path":180480,"seo":180481,"stem":180482,"subject":13788,"tags":180483,"__hash__":180484},"topics/pnpm/installing-packages.md",{"type":8,"value":180216,"toc":180475},[180217,180219,180473],[11,180218,6112],{"id":6117},[25,180220,180222],{"className":27,"code":180221,"language":29,"meta":30,"style":30},"# Install all dependencies\npnpm install\npnpm i\n\n# Install a package (adds to dependencies)\npnpm add \u003Cpackage>\n\n# Install as dev dependency\npnpm add -D \u003Cpackage>\npnpm add --save-dev \u003Cpackage>\n\n# Install as optional dependency\npnpm add -O \u003Cpackage>\n\n# Install globally\npnpm add -g \u003Cpackage>\n\n# Install specific version\npnpm add \u003Cpackage>@\u003Cversion>\npnpm add lodash@4.17.21\n\n# Install exact version (no ^ or ~)\npnpm add -E \u003Cpackage>\npnpm add --save-exact \u003Cpackage>\n\n# Install from git\npnpm add git+https://github.com/user/repo.git\n\n# Install peer dependencies\npnpm add --save-peer \u003Cpackage>\n",[20,180223,180224,180228,180234,180240,180244,180248,180262,180266,180270,180286,180302,180306,180311,180327,180331,180335,180351,180355,180359,180383,180391,180395,180400,180416,180432,180436,180440,180448,180452,180456],{"__ignoreMap":30},[34,180225,180226],{"class":36,"line":37},[34,180227,16242],{"class":40},[34,180229,180230,180232],{"class":36,"line":44},[34,180231,13788],{"class":47},[34,180233,5951],{"class":54},[34,180235,180236,180238],{"class":36,"line":58},[34,180237,13788],{"class":47},[34,180239,159532],{"class":54},[34,180241,180242],{"class":36,"line":65},[34,180243,62],{"emptyLinePlaceholder":61},[34,180245,180246],{"class":36,"line":71},[34,180247,159541],{"class":40},[34,180249,180250,180252,180254,180256,180258,180260],{"class":36,"line":77},[34,180251,13788],{"class":47},[34,180253,7854],{"class":54},[34,180255,5470],{"class":580},[34,180257,5473],{"class":54},[34,180259,5476],{"class":181},[34,180261,1248],{"class":580},[34,180263,180264],{"class":36,"line":82},[34,180265,62],{"emptyLinePlaceholder":61},[34,180267,180268],{"class":36,"line":88},[34,180269,159578],{"class":40},[34,180271,180272,180274,180276,180278,180280,180282,180284],{"class":36,"line":242},[34,180273,13788],{"class":47},[34,180275,7854],{"class":54},[34,180277,13768],{"class":50},[34,180279,5470],{"class":580},[34,180281,5473],{"class":54},[34,180283,5476],{"class":181},[34,180285,1248],{"class":580},[34,180287,180288,180290,180292,180294,180296,180298,180300],{"class":36,"line":250},[34,180289,13788],{"class":47},[34,180291,7854],{"class":54},[34,180293,29537],{"class":50},[34,180295,5470],{"class":580},[34,180297,5473],{"class":54},[34,180299,5476],{"class":181},[34,180301,1248],{"class":580},[34,180303,180304],{"class":36,"line":263},[34,180305,62],{"emptyLinePlaceholder":61},[34,180307,180308],{"class":36,"line":275},[34,180309,180310],{"class":40},"# Install as optional dependency\n",[34,180312,180313,180315,180317,180319,180321,180323,180325],{"class":36,"line":700},[34,180314,13788],{"class":47},[34,180316,7854],{"class":54},[34,180318,29669],{"class":50},[34,180320,5470],{"class":580},[34,180322,5473],{"class":54},[34,180324,5476],{"class":181},[34,180326,1248],{"class":580},[34,180328,180329],{"class":36,"line":706},[34,180330,62],{"emptyLinePlaceholder":61},[34,180332,180333],{"class":36,"line":715},[34,180334,159619],{"class":40},[34,180336,180337,180339,180341,180343,180345,180347,180349],{"class":36,"line":725},[34,180338,13788],{"class":47},[34,180340,7854],{"class":54},[34,180342,9753],{"class":50},[34,180344,5470],{"class":580},[34,180346,5473],{"class":54},[34,180348,5476],{"class":181},[34,180350,1248],{"class":580},[34,180352,180353],{"class":36,"line":734},[34,180354,62],{"emptyLinePlaceholder":61},[34,180356,180357],{"class":36,"line":742},[34,180358,159644],{"class":40},[34,180360,180361,180363,180365,180367,180369,180371,180373,180375,180377,180379,180381],{"class":36,"line":748},[34,180362,13788],{"class":47},[34,180364,7854],{"class":54},[34,180366,5470],{"class":580},[34,180368,5473],{"class":54},[34,180370,5476],{"class":181},[34,180372,5691],{"class":580},[34,180374,607],{"class":54},[34,180376,815],{"class":580},[34,180378,6214],{"class":54},[34,180380,6217],{"class":181},[34,180382,1248],{"class":580},[34,180384,180385,180387,180389],{"class":36,"line":754},[34,180386,13788],{"class":47},[34,180388,7854],{"class":54},[34,180390,159677],{"class":54},[34,180392,180393],{"class":36,"line":759},[34,180394,62],{"emptyLinePlaceholder":61},[34,180396,180397],{"class":36,"line":771},[34,180398,180399],{"class":40},"# Install exact version (no ^ or ~)\n",[34,180401,180402,180404,180406,180408,180410,180412,180414],{"class":36,"line":794},[34,180403,13788],{"class":47},[34,180405,7854],{"class":54},[34,180407,13771],{"class":50},[34,180409,5470],{"class":580},[34,180411,5473],{"class":54},[34,180413,5476],{"class":181},[34,180415,1248],{"class":580},[34,180417,180418,180420,180422,180424,180426,180428,180430],{"class":36,"line":824},[34,180419,13788],{"class":47},[34,180421,7854],{"class":54},[34,180423,160971],{"class":50},[34,180425,5470],{"class":580},[34,180427,5473],{"class":54},[34,180429,5476],{"class":181},[34,180431,1248],{"class":580},[34,180433,180434],{"class":36,"line":830},[34,180435,62],{"emptyLinePlaceholder":61},[34,180437,180438],{"class":36,"line":839},[34,180439,159686],{"class":40},[34,180441,180442,180444,180446],{"class":36,"line":854},[34,180443,13788],{"class":47},[34,180445,7854],{"class":54},[34,180447,159695],{"class":54},[34,180449,180450],{"class":36,"line":860},[34,180451,62],{"emptyLinePlaceholder":61},[34,180453,180454],{"class":36,"line":865},[34,180455,14558],{"class":40},[34,180457,180458,180460,180462,180465,180467,180469,180471],{"class":36,"line":870},[34,180459,13788],{"class":47},[34,180461,7854],{"class":54},[34,180463,180464],{"class":50}," --save-peer",[34,180466,5470],{"class":580},[34,180468,5473],{"class":54},[34,180470,5476],{"class":181},[34,180472,1248],{"class":580},[388,180474,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":180476},[180477],{"id":6117,"depth":44,"text":6112},"Installing Packages in pnpm.",{},"/pnpm/installing-packages",{"title":6112,"description":180478},"pnpm/installing-packages",[13788,78040,5591,8606],"tvN71sMn_P4toSi9PpXfiqM456Suqgaarb3z15iVMOE",{"id":180486,"title":6323,"body":180487,"date":402,"description":180591,"extension":404,"meta":180592,"navigation":61,"order":250,"path":180593,"seo":180594,"stem":180595,"subject":13788,"tags":180596,"__hash__":180597},"topics/pnpm/listing-packages.md",{"type":8,"value":180488,"toc":180588},[180489,180491,180586],[11,180490,6323],{"id":6328},[25,180492,180494],{"className":27,"code":180493,"language":29,"meta":30,"style":30},"# List installed packages\npnpm list\npnpm ls\n\n# List top-level packages only\npnpm list --depth=0\n\n# List global packages\npnpm list -g\n\n# List with details\npnpm list --long\n\n# Why is a package installed\npnpm why \u003Cpackage>\n",[20,180495,180496,180500,180506,180512,180516,180520,180528,180532,180536,180544,180548,180553,180562,180566,180571],{"__ignoreMap":30},[34,180497,180498],{"class":36,"line":37},[34,180499,16346],{"class":40},[34,180501,180502,180504],{"class":36,"line":44},[34,180503,13788],{"class":47},[34,180505,7536],{"class":54},[34,180507,180508,180510],{"class":36,"line":58},[34,180509,13788],{"class":47},[34,180511,8791],{"class":54},[34,180513,180514],{"class":36,"line":65},[34,180515,62],{"emptyLinePlaceholder":61},[34,180517,180518],{"class":36,"line":71},[34,180519,159769],{"class":40},[34,180521,180522,180524,180526],{"class":36,"line":77},[34,180523,13788],{"class":47},[34,180525,6345],{"class":54},[34,180527,159778],{"class":50},[34,180529,180530],{"class":36,"line":82},[34,180531,62],{"emptyLinePlaceholder":61},[34,180533,180534],{"class":36,"line":88},[34,180535,159787],{"class":40},[34,180537,180538,180540,180542],{"class":36,"line":242},[34,180539,13788],{"class":47},[34,180541,6345],{"class":54},[34,180543,160855],{"class":50},[34,180545,180546],{"class":36,"line":250},[34,180547,62],{"emptyLinePlaceholder":61},[34,180549,180550],{"class":36,"line":263},[34,180551,180552],{"class":40},"# List with details\n",[34,180554,180555,180557,180559],{"class":36,"line":275},[34,180556,13788],{"class":47},[34,180558,6345],{"class":54},[34,180560,180561],{"class":50}," --long\n",[34,180563,180564],{"class":36,"line":700},[34,180565,62],{"emptyLinePlaceholder":61},[34,180567,180568],{"class":36,"line":706},[34,180569,180570],{"class":40},"# Why is a package installed\n",[34,180572,180573,180575,180578,180580,180582,180584],{"class":36,"line":715},[34,180574,13788],{"class":47},[34,180576,180577],{"class":54}," why",[34,180579,5470],{"class":580},[34,180581,5473],{"class":54},[34,180583,5476],{"class":181},[34,180585,1248],{"class":580},[388,180587,5578],{},{"title":30,"searchDepth":44,"depth":44,"links":180589},[180590],{"id":6328,"depth":44,"text":6323},"Listing Packages in pnpm.",{},"/pnpm/listing-packages",{"title":6323,"description":180591},"pnpm/listing-packages",[13788,78040,5591,8606],"0bzhjXMimYRDlWyf2w2Lxe27CuJrcOuezzVRjPUzFc4",{"id":180599,"title":180600,"body":180601,"date":402,"description":180844,"extension":404,"meta":180845,"navigation":61,"order":71,"path":180846,"seo":180847,"stem":180848,"subject":13788,"tags":180849,"__hash__":180850},"topics/pnpm/nodejs-version-management.md","Node.js Version Management",{"type":8,"value":180602,"toc":180841},[180603,180606,180839],[11,180604,180600],{"id":180605},"nodejs-version-management",[25,180607,180609],{"className":27,"code":180608,"language":29,"meta":30,"style":30},"# Install Node.js using pnpm env\npnpm env use --global \u003Cversion>\npnpm env use --global 20\npnpm env use --global lts\npnpm env use --global latest\n\n# Install specific version\npnpm env use --global 20.10.0\n\n# List available remote Node.js versions\npnpm env list --remote\npnpm env ls --remote\n\n# List available LTS versions\npnpm env list --remote lts\n\n# List installed Node.js versions\npnpm env list\npnpm env ls\n\n# Remove Node.js version\npnpm env remove --global \u003Cversion>\npnpm env rm --global 18\n\n# Use local Node.js version for project\npnpm env use --global 20\nnode --version  # Verify version\n",[20,180610,180611,180616,180634,180646,180659,180672,180676,180680,180693,180697,180702,180713,180723,180727,180732,180745,180749,180754,180762,180770,180774,180779,180797,180809,180813,180818,180830],{"__ignoreMap":30},[34,180612,180613],{"class":36,"line":37},[34,180614,180615],{"class":40},"# Install Node.js using pnpm env\n",[34,180617,180618,180620,180622,180624,180626,180628,180630,180632],{"class":36,"line":44},[34,180619,13788],{"class":47},[34,180621,82156],{"class":54},[34,180623,49111],{"class":54},[34,180625,101760],{"class":50},[34,180627,5470],{"class":580},[34,180629,6214],{"class":54},[34,180631,6217],{"class":181},[34,180633,1248],{"class":580},[34,180635,180636,180638,180640,180642,180644],{"class":36,"line":58},[34,180637,13788],{"class":47},[34,180639,82156],{"class":54},[34,180641,49111],{"class":54},[34,180643,101760],{"class":50},[34,180645,95104],{"class":50},[34,180647,180648,180650,180652,180654,180656],{"class":36,"line":65},[34,180649,13788],{"class":47},[34,180651,82156],{"class":54},[34,180653,49111],{"class":54},[34,180655,101760],{"class":50},[34,180657,180658],{"class":54}," lts\n",[34,180660,180661,180663,180665,180667,180669],{"class":36,"line":71},[34,180662,13788],{"class":47},[34,180664,82156],{"class":54},[34,180666,49111],{"class":54},[34,180668,101760],{"class":50},[34,180670,180671],{"class":54}," latest\n",[34,180673,180674],{"class":36,"line":77},[34,180675,62],{"emptyLinePlaceholder":61},[34,180677,180678],{"class":36,"line":82},[34,180679,159644],{"class":40},[34,180681,180682,180684,180686,180688,180690],{"class":36,"line":88},[34,180683,13788],{"class":47},[34,180685,82156],{"class":54},[34,180687,49111],{"class":54},[34,180689,101760],{"class":50},[34,180691,180692],{"class":50}," 20.10.0\n",[34,180694,180695],{"class":36,"line":242},[34,180696,62],{"emptyLinePlaceholder":61},[34,180698,180699],{"class":36,"line":250},[34,180700,180701],{"class":40},"# List available remote Node.js versions\n",[34,180703,180704,180706,180708,180710],{"class":36,"line":263},[34,180705,13788],{"class":47},[34,180707,82156],{"class":54},[34,180709,6345],{"class":54},[34,180711,180712],{"class":50}," --remote\n",[34,180714,180715,180717,180719,180721],{"class":36,"line":275},[34,180716,13788],{"class":47},[34,180718,82156],{"class":54},[34,180720,8764],{"class":54},[34,180722,180712],{"class":50},[34,180724,180725],{"class":36,"line":700},[34,180726,62],{"emptyLinePlaceholder":61},[34,180728,180729],{"class":36,"line":706},[34,180730,180731],{"class":40},"# List available LTS versions\n",[34,180733,180734,180736,180738,180740,180743],{"class":36,"line":715},[34,180735,13788],{"class":47},[34,180737,82156],{"class":54},[34,180739,6345],{"class":54},[34,180741,180742],{"class":50}," --remote",[34,180744,180658],{"class":54},[34,180746,180747],{"class":36,"line":725},[34,180748,62],{"emptyLinePlaceholder":61},[34,180750,180751],{"class":36,"line":734},[34,180752,180753],{"class":40},"# List installed Node.js versions\n",[34,180755,180756,180758,180760],{"class":36,"line":742},[34,180757,13788],{"class":47},[34,180759,82156],{"class":54},[34,180761,7536],{"class":54},[34,180763,180764,180766,180768],{"class":36,"line":748},[34,180765,13788],{"class":47},[34,180767,82156],{"class":54},[34,180769,8791],{"class":54},[34,180771,180772],{"class":36,"line":754},[34,180773,62],{"emptyLinePlaceholder":61},[34,180775,180776],{"class":36,"line":759},[34,180777,180778],{"class":40},"# Remove Node.js version\n",[34,180780,180781,180783,180785,180787,180789,180791,180793,180795],{"class":36,"line":771},[34,180782,13788],{"class":47},[34,180784,82156],{"class":54},[34,180786,6676],{"class":54},[34,180788,101760],{"class":50},[34,180790,5470],{"class":580},[34,180792,6214],{"class":54},[34,180794,6217],{"class":181},[34,180796,1248],{"class":580},[34,180798,180799,180801,180803,180805,180807],{"class":36,"line":794},[34,180800,13788],{"class":47},[34,180802,82156],{"class":54},[34,180804,8901],{"class":54},[34,180806,101760],{"class":50},[34,180808,87787],{"class":50},[34,180810,180811],{"class":36,"line":824},[34,180812,62],{"emptyLinePlaceholder":61},[34,180814,180815],{"class":36,"line":830},[34,180816,180817],{"class":40},"# Use local Node.js version for project\n",[34,180819,180820,180822,180824,180826,180828],{"class":36,"line":839},[34,180821,13788],{"class":47},[34,180823,82156],{"class":54},[34,180825,49111],{"class":54},[34,180827,101760],{"class":50},[34,180829,95104],{"class":50},[34,180831,180832,180834,180836],{"class":36,"line":854},[34,180833,16004],{"class":47},[34,180835,17717],{"class":50},[34,180837,180838],{"class":40},"  # Verify version\n",[388,180840,5578],{},{"title":30,"searchDepth":44,"depth":44,"links":180842},[180843],{"id":180605,"depth":44,"text":180600},"Node.js Version Management in pnpm.",{},"/pnpm/nodejs-version-management",{"title":180600,"description":180844},"pnpm/nodejs-version-management",[13788,78040,5591,8606],"IjeZtv7EoQWmkMeEIOspX7nEyQbUHMfzuqr34UVNKag",{"id":180852,"title":180853,"body":180854,"date":402,"description":30,"extension":404,"meta":181098,"navigation":61,"order":37,"path":181099,"seo":181100,"stem":181101,"subject":13788,"tags":181102,"__hash__":181104},"topics/pnpm/overview.md","PNPM",{"type":8,"value":180855,"toc":181086},[180856,180858,180861,180868,180872,180874,180877,180897,180901,180904,180941,180950,180954,180957,180995,180998,181000,181005,181018,181021,181025,181028,181039,181042,181046,181051,181080,181084],[11,180857,13534],{"id":13533},[16,180859,180860],{},"PNPM (Performant NPM) is a fast, disk-efficient package manager designed to work seamlessly with Node.js. Unlike NPM or Yarn Classic, it utilizes content-addressable storage and hard linking of dependencies to save significant disk space and speed up installations.",[16,180862,180863,180864,180867],{},"PNPM introduces innovative features such as creating a symlinked ",[20,180865,180866],{},"node_modules"," directory to manage dependencies effectively and ensure clean project boundaries.",[11,180869,180871],{"id":180870},"syntax-and-examples","Syntax and Examples",[102,180873,97],{"id":96},[16,180875,180876],{},"To use PNPM, first install it globally via NPM:",[25,180878,180880],{"className":27,"code":180879,"language":29,"meta":30,"style":30},"# Install pnpm globally\nnpm install -g pnpm\n",[20,180881,180882,180887],{"__ignoreMap":30},[34,180883,180884],{"class":36,"line":37},[34,180885,180886],{"class":40},"# Install pnpm globally\n",[34,180888,180889,180891,180893,180895],{"class":36,"line":44},[34,180890,8177],{"class":47},[34,180892,118],{"class":54},[34,180894,9753],{"class":50},[34,180896,168491],{"class":54},[102,180898,180900],{"id":180899},"creating-a-project","Creating a Project",[16,180902,180903],{},"Initialize a new Node.js project:",[25,180905,180907],{"className":27,"code":180906,"language":29,"meta":30,"style":30},"# Create a project folder\nmkdir my-project && cd my-project\n\n# Initialize the project\npnpm init\n",[20,180908,180909,180914,180926,180930,180935],{"__ignoreMap":30},[34,180910,180911],{"class":36,"line":37},[34,180912,180913],{"class":40},"# Create a project folder\n",[34,180915,180916,180918,180920,180922,180924],{"class":36,"line":44},[34,180917,5272],{"class":47},[34,180919,7636],{"class":54},[34,180921,5622],{"class":181},[34,180923,7702],{"class":50},[34,180925,92412],{"class":54},[34,180927,180928],{"class":36,"line":58},[34,180929,62],{"emptyLinePlaceholder":61},[34,180931,180932],{"class":36,"line":65},[34,180933,180934],{"class":40},"# Initialize the project\n",[34,180936,180937,180939],{"class":36,"line":71},[34,180938,13788],{"class":47},[34,180940,8180],{"class":54},[16,180942,180943,180944,180947,180948,15146],{},"Inline comment: ",[20,180945,180946],{},"pnpm init"," initializes the project with a ",[20,180949,29509],{},[102,180951,180953],{"id":180952},"adding-dependencies","Adding Dependencies",[16,180955,180956],{},"Add both production and development dependencies:",[25,180958,180960],{"className":27,"code":180959,"language":29,"meta":30,"style":30},"# Add a package (e.g., lodash) to dependencies\npnpm add lodash\n\n# Add a devDependency (e.g., jest)\npnpm add --save-dev jest\n",[20,180961,180962,180967,180976,180980,180985],{"__ignoreMap":30},[34,180963,180964],{"class":36,"line":37},[34,180965,180966],{"class":40},"# Add a package (e.g., lodash) to dependencies\n",[34,180968,180969,180971,180973],{"class":36,"line":44},[34,180970,13788],{"class":47},[34,180972,7854],{"class":54},[34,180974,180975],{"class":54}," lodash\n",[34,180977,180978],{"class":36,"line":58},[34,180979,62],{"emptyLinePlaceholder":61},[34,180981,180982],{"class":36,"line":65},[34,180983,180984],{"class":40},"# Add a devDependency (e.g., jest)\n",[34,180986,180987,180989,180991,180993],{"class":36,"line":71},[34,180988,13788],{"class":47},[34,180990,7854],{"class":54},[34,180992,29537],{"class":50},[34,180994,127003],{"class":54},[16,180996,180997],{},"Inline comment: Dependencies are resolved and linked into the project folder seamlessly.",[102,180999,15995],{"id":15994},[16,181001,181002,181003,165],{},"Execute scripts defined in ",[20,181004,29509],{},[25,181006,181008],{"className":27,"code":181007,"language":29,"meta":30,"style":30},"pnpm run test\n",[20,181009,181010],{"__ignoreMap":30},[34,181011,181012,181014,181016],{"class":36,"line":37},[34,181013,13788],{"class":47},[34,181015,16017],{"class":54},[34,181017,16110],{"class":54},[16,181019,181020],{},"Inline comment: Scripts execute with the environment isolated to where dependencies live.",[102,181022,181024],{"id":181023},"updating-dependencies","Updating Dependencies",[16,181026,181027],{},"To upgrade dependencies interactively if needed:",[25,181029,181031],{"className":27,"code":181030,"language":29,"meta":30,"style":30},"pnpm update\n",[20,181032,181033],{"__ignoreMap":30},[34,181034,181035,181037],{"class":36,"line":37},[34,181036,13788],{"class":47},[34,181038,6441],{"class":54},[16,181040,181041],{},"Inline comment: This adds/updates only the changed files.",[102,181043,181045],{"id":181044},"checking-disk-space-saved","Checking Disk Space Saved",[16,181047,18,181048,181050],{},[20,181049,8243],{}," directory is where pnpm saves common packages for reuse:",[25,181052,181054],{"className":27,"code":181053,"language":29,"meta":30,"style":30},"pnpm store path\n\npnpm store prune # clean up unused versions to save room\n",[20,181055,181056,181065,181069],{"__ignoreMap":30},[34,181057,181058,181060,181063],{"class":36,"line":37},[34,181059,13788],{"class":47},[34,181061,181062],{"class":54}," store",[34,181064,74269],{"class":54},[34,181066,181067],{"class":36,"line":44},[34,181068,62],{"emptyLinePlaceholder":61},[34,181070,181071,181073,181075,181077],{"class":36,"line":58},[34,181072,13788],{"class":47},[34,181074,181062],{"class":54},[34,181076,56340],{"class":54},[34,181078,181079],{"class":40}," # clean up unused versions to save room\n",[102,181081,181083],{"id":181082},"concurrency-based-example","Concurrency Based Example",[388,181085,7983],{},{"title":30,"searchDepth":44,"depth":44,"links":181087},[181088,181089],{"id":13533,"depth":44,"text":13534},{"id":180870,"depth":44,"text":180871,"children":181090},[181091,181092,181093,181094,181095,181096,181097],{"id":96,"depth":58,"text":97},{"id":180899,"depth":58,"text":180900},{"id":180952,"depth":58,"text":180953},{"id":15994,"depth":58,"text":15995},{"id":181023,"depth":58,"text":181024},{"id":181044,"depth":58,"text":181045},{"id":181082,"depth":58,"text":181083},{},"/pnpm/overview",{"title":180853,"description":30},"pnpm/overview",[13788,5591,8606,8177,181103],"front-end","seXe35xG4EHvmjX6909e0y-QRa5JFDbmIGktREQYx-U",{"id":181106,"title":6501,"body":181107,"date":402,"description":181205,"extension":404,"meta":181206,"navigation":61,"order":275,"path":181207,"seo":181208,"stem":181209,"subject":13788,"tags":181210,"__hash__":181211},"topics/pnpm/package-information.md",{"type":8,"value":181108,"toc":181202},[181109,181111,181200],[11,181110,6501],{"id":6541},[25,181112,181114],{"className":27,"code":181113,"language":29,"meta":30,"style":30},"# View package details\npnpm info \u003Cpackage>\npnpm view \u003Cpackage>\n\n# View package homepage\npnpm docs \u003Cpackage>\n\n# Check for vulnerabilities\npnpm audit\n\n# Fix vulnerabilities\npnpm audit --fix\n",[20,181115,181116,181120,181134,181148,181152,181156,181170,181174,181178,181184,181188,181192],{"__ignoreMap":30},[34,181117,181118],{"class":36,"line":37},[34,181119,160114],{"class":40},[34,181121,181122,181124,181126,181128,181130,181132],{"class":36,"line":44},[34,181123,13788],{"class":47},[34,181125,54126],{"class":54},[34,181127,5470],{"class":580},[34,181129,5473],{"class":54},[34,181131,5476],{"class":181},[34,181133,1248],{"class":580},[34,181135,181136,181138,181140,181142,181144,181146],{"class":36,"line":58},[34,181137,13788],{"class":47},[34,181139,92679],{"class":54},[34,181141,5470],{"class":580},[34,181143,5473],{"class":54},[34,181145,5476],{"class":181},[34,181147,1248],{"class":580},[34,181149,181150],{"class":36,"line":65},[34,181151,62],{"emptyLinePlaceholder":61},[34,181153,181154],{"class":36,"line":71},[34,181155,160151],{"class":40},[34,181157,181158,181160,181162,181164,181166,181168],{"class":36,"line":77},[34,181159,13788],{"class":47},[34,181161,160158],{"class":54},[34,181163,5470],{"class":580},[34,181165,5473],{"class":54},[34,181167,5476],{"class":181},[34,181169,1248],{"class":580},[34,181171,181172],{"class":36,"line":82},[34,181173,62],{"emptyLinePlaceholder":61},[34,181175,181176],{"class":36,"line":88},[34,181177,160198],{"class":40},[34,181179,181180,181182],{"class":36,"line":242},[34,181181,13788],{"class":47},[34,181183,160205],{"class":54},[34,181185,181186],{"class":36,"line":250},[34,181187,62],{"emptyLinePlaceholder":61},[34,181189,181190],{"class":36,"line":263},[34,181191,160214],{"class":40},[34,181193,181194,181196,181198],{"class":36,"line":275},[34,181195,13788],{"class":47},[34,181197,72575],{"class":54},[34,181199,62913],{"class":50},[388,181201,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":181203},[181204],{"id":6541,"depth":44,"text":6501},"Package Information in pnpm.",{},"/pnpm/package-information",{"title":6501,"description":181205},"pnpm/package-information",[13788,78040,5591,8606],"3YN2biTc5nMYpZpg-uzvFgJmwTy2-_YhRvU8_QY9RTY",{"id":181213,"title":181214,"body":181215,"date":402,"description":181320,"extension":404,"meta":181321,"navigation":61,"order":734,"path":181322,"seo":181323,"stem":181324,"subject":13788,"tags":181325,"__hash__":181326},"topics/pnpm/pnpm-dlx-package-runner.md","pnpm dlx (Package Runner)",{"type":8,"value":181216,"toc":181317},[181217,181220,181315],[11,181218,181214],{"id":181219},"pnpm-dlx-package-runner",[25,181221,181223],{"className":27,"code":181222,"language":29,"meta":30,"style":30},"# Run package without installing\npnpm dlx \u003Cpackage>\npnpm dlx create-react-app my-app\n\n# Run specific version\npnpm dlx \u003Cpackage>@\u003Cversion>\n\n# With multiple packages\npnpm dlx -p typescript -p ts-node ts-node script.ts\n",[20,181224,181225,181229,181244,181254,181258,181262,181286,181290,181295],{"__ignoreMap":30},[34,181226,181227],{"class":36,"line":37},[34,181228,159890],{"class":40},[34,181230,181231,181233,181236,181238,181240,181242],{"class":36,"line":44},[34,181232,13788],{"class":47},[34,181234,181235],{"class":54}," dlx",[34,181237,5470],{"class":580},[34,181239,5473],{"class":54},[34,181241,5476],{"class":181},[34,181243,1248],{"class":580},[34,181245,181246,181248,181250,181252],{"class":36,"line":58},[34,181247,13788],{"class":47},[34,181249,181235],{"class":54},[34,181251,159909],{"class":54},[34,181253,7508],{"class":54},[34,181255,181256],{"class":36,"line":65},[34,181257,62],{"emptyLinePlaceholder":61},[34,181259,181260],{"class":36,"line":71},[34,181261,159920],{"class":40},[34,181263,181264,181266,181268,181270,181272,181274,181276,181278,181280,181282,181284],{"class":36,"line":77},[34,181265,13788],{"class":47},[34,181267,181235],{"class":54},[34,181269,5470],{"class":580},[34,181271,5473],{"class":54},[34,181273,5476],{"class":181},[34,181275,5691],{"class":580},[34,181277,607],{"class":54},[34,181279,815],{"class":580},[34,181281,6214],{"class":54},[34,181283,6217],{"class":181},[34,181285,1248],{"class":580},[34,181287,181288],{"class":36,"line":82},[34,181289,62],{"emptyLinePlaceholder":61},[34,181291,181292],{"class":36,"line":88},[34,181293,181294],{"class":40},"# With multiple packages\n",[34,181296,181297,181299,181301,181303,181306,181308,181311,181313],{"class":36,"line":242},[34,181298,13788],{"class":47},[34,181300,181235],{"class":54},[34,181302,5275],{"class":50},[34,181304,181305],{"class":54}," typescript",[34,181307,5275],{"class":50},[34,181309,181310],{"class":54}," ts-node",[34,181312,181310],{"class":54},[34,181314,16544],{"class":54},[388,181316,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":181318},[181319],{"id":181219,"depth":44,"text":181214},"pnpm dlx (Package Runner) in pnpm.",{},"/pnpm/pnpm-dlx-package-runner",{"title":181214,"description":181320},"pnpm/pnpm-dlx-package-runner",[13788,78040,5591,8606],"utcLAYh2CeBv7kWw90C_VInFrKXFZjR8gHf5Fp8acZ8",{"id":181328,"title":181329,"body":181330,"date":402,"description":181538,"extension":404,"meta":181539,"navigation":61,"order":58,"path":181540,"seo":181541,"stem":181542,"subject":13788,"tags":181543,"__hash__":181544},"topics/pnpm/pnpm-vs-npm-commands.md","pnpm vs npm Commands",{"type":8,"value":181331,"toc":181535},[181332,181335],[11,181333,181329],{"id":181334},"pnpm-vs-npm-commands",[14308,181336,181337,181347],{},[14311,181338,181339],{},[14314,181340,181341,181343,181345],{},[14317,181342,14319],{},[14317,181344,13788],{},[14317,181346,8177],{},[14326,181348,181349,181361,181374,181387,181400,181413,181426,181439,181452,181465,181478,181493,181506,181520],{},[14314,181350,181351,181353,181357],{},[14331,181352,14333],{},[14331,181354,181355],{},[20,181356,180946],{},[14331,181358,181359],{},[20,181360,14343],{},[14314,181362,181363,181365,181370],{},[14331,181364,14348],{},[14331,181366,181367],{},[20,181368,181369],{},"pnpm install",[14331,181371,181372],{},[20,181373,14358],{},[14314,181375,181376,181378,181383],{},[14331,181377,14363],{},[14331,181379,181380],{},[20,181381,181382],{},"pnpm add \u003Cpkg>",[14331,181384,181385],{},[20,181386,14373],{},[14314,181388,181389,181391,181396],{},[14331,181390,14378],{},[14331,181392,181393],{},[20,181394,181395],{},"pnpm add -D \u003Cpkg>",[14331,181397,181398],{},[20,181399,14388],{},[14314,181401,181402,181404,181409],{},[14331,181403,14393],{},[14331,181405,181406],{},[20,181407,181408],{},"pnpm add -g \u003Cpkg>",[14331,181410,181411],{},[20,181412,14403],{},[14314,181414,181415,181417,181422],{},[14331,181416,14408],{},[14331,181418,181419],{},[20,181420,181421],{},"pnpm remove \u003Cpkg>",[14331,181423,181424],{},[20,181425,14418],{},[14314,181427,181428,181430,181435],{},[14331,181429,14423],{},[14331,181431,181432],{},[20,181433,181434],{},"pnpm update",[14331,181436,181437],{},[20,181438,14433],{},[14314,181440,181441,181443,181448],{},[14331,181442,14438],{},[14331,181444,181445],{},[20,181446,181447],{},"pnpm run \u003Cscript>",[14331,181449,181450],{},[20,181451,14448],{},[14314,181453,181454,181456,181461],{},[14331,181455,14453],{},[14331,181457,181458],{},[20,181459,181460],{},"pnpm dlx \u003Ccmd>",[14331,181462,181463],{},[20,181464,14463],{},[14314,181466,181467,181469,181474],{},[14331,181468,14483],{},[14331,181470,181471],{},[20,181472,181473],{},"pnpm list",[14331,181475,181476],{},[20,181477,14493],{},[14314,181479,181480,181483,181488],{},[14331,181481,181482],{},"Check outdated",[14331,181484,181485],{},[20,181486,181487],{},"pnpm outdated",[14331,181489,181490],{},[20,181491,181492],{},"npm outdated",[14314,181494,181495,181497,181502],{},[14331,181496,14468],{},[14331,181498,181499],{},[20,181500,181501],{},"pnpm test",[14331,181503,181504],{},[20,181505,14478],{},[14314,181507,181508,181511,181516],{},[14331,181509,181510],{},"Publish package",[14331,181512,181513],{},[20,181514,181515],{},"pnpm publish",[14331,181517,181518],{},[20,181519,47038],{},[14314,181521,181522,181525,181530],{},[14331,181523,181524],{},"Audit security",[14331,181526,181527],{},[20,181528,181529],{},"pnpm audit",[14331,181531,181532],{},[20,181533,181534],{},"npm audit",{"title":30,"searchDepth":44,"depth":44,"links":181536},[181537],{"id":181334,"depth":44,"text":181329},"pnpm vs npm Commands in pnpm.",{},"/pnpm/pnpm-vs-npm-commands",{"title":181329,"description":181538},"pnpm/pnpm-vs-npm-commands",[13788,78040,5591,8606],"wM7uaueLJBttsCa0MNdoJaGL7rv1G2U8yd_UhB8FEbE",{"id":181546,"title":160009,"body":181547,"date":402,"description":181587,"extension":404,"meta":181588,"navigation":61,"order":77,"path":181589,"seo":181590,"stem":181591,"subject":13788,"tags":181592,"__hash__":181593},"topics/pnpm/project-initialization.md",{"type":8,"value":181548,"toc":181584},[181549,181551,181582],[11,181550,160009],{"id":160252},[25,181552,181554],{"className":27,"code":181553,"language":29,"meta":30,"style":30},"# Create package.json interactively\npnpm init\n\n# Import from package-lock.json or yarn.lock\npnpm import\n",[20,181555,181556,181560,181566,181570,181575],{"__ignoreMap":30},[34,181557,181558],{"class":36,"line":37},[34,181559,160262],{"class":40},[34,181561,181562,181564],{"class":36,"line":44},[34,181563,13788],{"class":47},[34,181565,8180],{"class":54},[34,181567,181568],{"class":36,"line":58},[34,181569,62],{"emptyLinePlaceholder":61},[34,181571,181572],{"class":36,"line":65},[34,181573,181574],{"class":40},"# Import from package-lock.json or yarn.lock\n",[34,181576,181577,181579],{"class":36,"line":71},[34,181578,13788],{"class":47},[34,181580,181581],{"class":54}," import\n",[388,181583,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":181585},[181586],{"id":160252,"depth":44,"text":160009},"Project Initialization in pnpm.",{},"/pnpm/project-initialization",{"title":160009,"description":181587},"pnpm/project-initialization",[13788,78040,5591,8606],"ANII727eZKbzIwdct4AQYtFQkZnnJmrnt7yktiu3aIA",{"id":181595,"title":181596,"body":181597,"date":402,"description":181691,"extension":404,"meta":181692,"navigation":61,"order":742,"path":181693,"seo":181694,"stem":181695,"subject":13788,"tags":181696,"__hash__":181697},"topics/pnpm/publishing.md","Publishing",{"type":8,"value":181598,"toc":181688},[181599,181602,181686],[11,181600,181596],{"id":181601},"publishing",[25,181603,181605],{"className":27,"code":181604,"language":29,"meta":30,"style":30},"# Login to registry\npnpm login\n\n# Publish package\npnpm publish\n\n# Publish with access level\npnpm publish --access public\n\n# Dry run\npnpm publish --dry-run\n\n# Publish all workspace packages\npnpm -r publish\n",[20,181606,181607,181612,181618,181622,181626,181632,181636,181641,181651,181655,181660,181669,181673,181678],{"__ignoreMap":30},[34,181608,181609],{"class":36,"line":37},[34,181610,181611],{"class":40},"# Login to registry\n",[34,181613,181614,181616],{"class":36,"line":44},[34,181615,13788],{"class":47},[34,181617,9379],{"class":54},[34,181619,181620],{"class":36,"line":58},[34,181621,62],{"emptyLinePlaceholder":61},[34,181623,181624],{"class":36,"line":65},[34,181625,160361],{"class":40},[34,181627,181628,181630],{"class":36,"line":71},[34,181629,13788],{"class":47},[34,181631,28769],{"class":54},[34,181633,181634],{"class":36,"line":77},[34,181635,62],{"emptyLinePlaceholder":61},[34,181637,181638],{"class":36,"line":82},[34,181639,181640],{"class":40},"# Publish with access level\n",[34,181642,181643,181645,181647,181649],{"class":36,"line":88},[34,181644,13788],{"class":47},[34,181646,160383],{"class":54},[34,181648,160386],{"class":50},[34,181650,99397],{"class":54},[34,181652,181653],{"class":36,"line":242},[34,181654,62],{"emptyLinePlaceholder":61},[34,181656,181657],{"class":36,"line":250},[34,181658,181659],{"class":40},"# Dry run\n",[34,181661,181662,181664,181666],{"class":36,"line":263},[34,181663,13788],{"class":47},[34,181665,160383],{"class":54},[34,181667,181668],{"class":50}," --dry-run\n",[34,181670,181671],{"class":36,"line":275},[34,181672,62],{"emptyLinePlaceholder":61},[34,181674,181675],{"class":36,"line":700},[34,181676,181677],{"class":40},"# Publish all workspace packages\n",[34,181679,181680,181682,181684],{"class":36,"line":706},[34,181681,13788],{"class":47},[34,181683,12112],{"class":50},[34,181685,28769],{"class":54},[388,181687,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":181689},[181690],{"id":181601,"depth":44,"text":181596},"Publishing in pnpm.",{},"/pnpm/publishing",{"title":181596,"description":181691},"pnpm/publishing",[13788,78040,5591,8606],"8Bc_VOf6B4CyjCAAflzL7m1YDDa_6u39Bcx_bVs7HS8",{"id":181699,"title":6479,"body":181700,"date":402,"description":181808,"extension":404,"meta":181809,"navigation":61,"order":88,"path":181810,"seo":181811,"stem":181812,"subject":13788,"tags":181813,"__hash__":181814},"topics/pnpm/removing-packages.md",{"type":8,"value":181701,"toc":181805},[181702,181704,181803],[11,181703,6479],{"id":6657},[25,181705,181707],{"className":27,"code":181706,"language":29,"meta":30,"style":30},"# Remove a package\npnpm remove \u003Cpackage>\npnpm rm \u003Cpackage>\npnpm uninstall \u003Cpackage>\n\n# Remove global package\npnpm remove -g \u003Cpackage>\n\n# Remove dev dependency\npnpm remove -D \u003Cpackage>\n",[20,181708,181709,181713,181727,181741,181755,181759,181763,181779,181783,181787],{"__ignoreMap":30},[34,181710,181711],{"class":36,"line":37},[34,181712,16314],{"class":40},[34,181714,181715,181717,181719,181721,181723,181725],{"class":36,"line":44},[34,181716,13788],{"class":47},[34,181718,6676],{"class":54},[34,181720,5470],{"class":580},[34,181722,5473],{"class":54},[34,181724,5476],{"class":181},[34,181726,1248],{"class":580},[34,181728,181729,181731,181733,181735,181737,181739],{"class":36,"line":58},[34,181730,13788],{"class":47},[34,181732,8901],{"class":54},[34,181734,5470],{"class":580},[34,181736,5473],{"class":54},[34,181738,5476],{"class":181},[34,181740,1248],{"class":580},[34,181742,181743,181745,181747,181749,181751,181753],{"class":36,"line":65},[34,181744,13788],{"class":47},[34,181746,49149],{"class":54},[34,181748,5470],{"class":580},[34,181750,5473],{"class":54},[34,181752,5476],{"class":181},[34,181754,1248],{"class":580},[34,181756,181757],{"class":36,"line":71},[34,181758,62],{"emptyLinePlaceholder":61},[34,181760,181761],{"class":36,"line":77},[34,181762,160588],{"class":40},[34,181764,181765,181767,181769,181771,181773,181775,181777],{"class":36,"line":82},[34,181766,13788],{"class":47},[34,181768,6676],{"class":54},[34,181770,9753],{"class":50},[34,181772,5470],{"class":580},[34,181774,5473],{"class":54},[34,181776,5476],{"class":181},[34,181778,1248],{"class":580},[34,181780,181781],{"class":36,"line":88},[34,181782,62],{"emptyLinePlaceholder":61},[34,181784,181785],{"class":36,"line":242},[34,181786,160613],{"class":40},[34,181788,181789,181791,181793,181795,181797,181799,181801],{"class":36,"line":250},[34,181790,13788],{"class":47},[34,181792,6676],{"class":54},[34,181794,13768],{"class":50},[34,181796,5470],{"class":580},[34,181798,5473],{"class":54},[34,181800,5476],{"class":181},[34,181802,1248],{"class":580},[388,181804,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":181806},[181807],{"id":6657,"depth":44,"text":6479},"Removing Packages in pnpm.",{},"/pnpm/removing-packages",{"title":6479,"description":181808},"pnpm/removing-packages",[13788,78040,5591,8606],"1V5ZHf6S31yUG-x5IJsp80_HNv3KahGwJ52M9SIccvk",{"id":181816,"title":15995,"body":181817,"date":402,"description":181960,"extension":404,"meta":181961,"navigation":61,"order":263,"path":181962,"seo":181963,"stem":181964,"subject":13788,"tags":181965,"__hash__":181966},"topics/pnpm/running-scripts.md",{"type":8,"value":181818,"toc":181957},[181819,181821,181955],[11,181820,15995],{"id":15994},[25,181822,181824],{"className":27,"code":181823,"language":29,"meta":30,"style":30},"# Run script from package.json\npnpm run \u003Cscript>\npnpm \u003Cscript>  # Shorthand if not pnpm command\npnpm build\npnpm test\n\n# Common script shortcuts\npnpm start\npnpm test\npnpm stop\n\n# Run with arguments\npnpm build -- --watch\n\n# List available scripts\npnpm run\n\n# Run script if exists\npnpm run --if-present \u003Cscript>\n",[20,181825,181826,181830,181844,181859,181865,181871,181875,181879,181885,181891,181897,181901,181905,181915,181919,181923,181929,181933,181938],{"__ignoreMap":30},[34,181827,181828],{"class":36,"line":37},[34,181829,160656],{"class":40},[34,181831,181832,181834,181836,181838,181840,181842],{"class":36,"line":44},[34,181833,13788],{"class":47},[34,181835,16017],{"class":54},[34,181837,5470],{"class":580},[34,181839,16022],{"class":54},[34,181841,16025],{"class":181},[34,181843,1248],{"class":580},[34,181845,181846,181848,181850,181852,181854,181856],{"class":36,"line":58},[34,181847,13788],{"class":47},[34,181849,5470],{"class":580},[34,181851,16022],{"class":54},[34,181853,16025],{"class":181},[34,181855,5691],{"class":580},[34,181857,181858],{"class":40},"  # Shorthand if not pnpm command\n",[34,181860,181861,181863],{"class":36,"line":65},[34,181862,13788],{"class":47},[34,181864,55],{"class":54},[34,181866,181867,181869],{"class":36,"line":71},[34,181868,13788],{"class":47},[34,181870,16110],{"class":54},[34,181872,181873],{"class":36,"line":77},[34,181874,62],{"emptyLinePlaceholder":61},[34,181876,181877],{"class":36,"line":82},[34,181878,160695],{"class":40},[34,181880,181881,181883],{"class":36,"line":88},[34,181882,13788],{"class":47},[34,181884,48648],{"class":54},[34,181886,181887,181889],{"class":36,"line":242},[34,181888,13788],{"class":47},[34,181890,16110],{"class":54},[34,181892,181893,181895],{"class":36,"line":250},[34,181894,13788],{"class":47},[34,181896,55861],{"class":54},[34,181898,181899],{"class":36,"line":263},[34,181900,62],{"emptyLinePlaceholder":61},[34,181902,181903],{"class":36,"line":275},[34,181904,160740],{"class":40},[34,181906,181907,181909,181911,181913],{"class":36,"line":700},[34,181908,13788],{"class":47},[34,181910,14172],{"class":54},[34,181912,99171],{"class":50},[34,181914,17501],{"class":50},[34,181916,181917],{"class":36,"line":706},[34,181918,62],{"emptyLinePlaceholder":61},[34,181920,181921],{"class":36,"line":715},[34,181922,160761],{"class":40},[34,181924,181925,181927],{"class":36,"line":725},[34,181926,13788],{"class":47},[34,181928,93068],{"class":54},[34,181930,181931],{"class":36,"line":734},[34,181932,62],{"emptyLinePlaceholder":61},[34,181934,181935],{"class":36,"line":742},[34,181936,181937],{"class":40},"# Run script if exists\n",[34,181939,181940,181942,181944,181947,181949,181951,181953],{"class":36,"line":748},[34,181941,13788],{"class":47},[34,181943,16017],{"class":54},[34,181945,181946],{"class":50}," --if-present",[34,181948,5470],{"class":580},[34,181950,16022],{"class":54},[34,181952,16025],{"class":181},[34,181954,1248],{"class":580},[388,181956,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":181958},[181959],{"id":15994,"depth":44,"text":15995},"Running Scripts in pnpm.",{},"/pnpm/running-scripts",{"title":15995,"description":181960},"pnpm/running-scripts",[13788,78040,5591,8606],"j1gelOQjdWwZ8dwKdBQHKYKxak8vDFBUusWQAqFORkA",{"id":181968,"title":181969,"body":181970,"date":402,"description":182057,"extension":404,"meta":182058,"navigation":61,"order":700,"path":182059,"seo":182060,"stem":182061,"subject":13788,"tags":182062,"__hash__":182063},"topics/pnpm/store-management.md","Store Management",{"type":8,"value":181971,"toc":182054},[181972,181975,182052],[11,181973,181969],{"id":181974},"store-management",[25,181976,181978],{"className":27,"code":181977,"language":29,"meta":30,"style":30},"# View store path\npnpm store path\n\n# Prune unreferenced packages from store\npnpm store prune\n\n# Check store integrity\npnpm store status\n\n# Add package to store without installing\npnpm store add \u003Cpackage>\n",[20,181979,181980,181985,181993,181997,182002,182010,182014,182019,182027,182031,182036],{"__ignoreMap":30},[34,181981,181982],{"class":36,"line":37},[34,181983,181984],{"class":40},"# View store path\n",[34,181986,181987,181989,181991],{"class":36,"line":44},[34,181988,13788],{"class":47},[34,181990,181062],{"class":54},[34,181992,74269],{"class":54},[34,181994,181995],{"class":36,"line":58},[34,181996,62],{"emptyLinePlaceholder":61},[34,181998,181999],{"class":36,"line":65},[34,182000,182001],{"class":40},"# Prune unreferenced packages from store\n",[34,182003,182004,182006,182008],{"class":36,"line":71},[34,182005,13788],{"class":47},[34,182007,181062],{"class":54},[34,182009,57628],{"class":54},[34,182011,182012],{"class":36,"line":77},[34,182013,62],{"emptyLinePlaceholder":61},[34,182015,182016],{"class":36,"line":82},[34,182017,182018],{"class":40},"# Check store integrity\n",[34,182020,182021,182023,182025],{"class":36,"line":88},[34,182022,13788],{"class":47},[34,182024,181062],{"class":54},[34,182026,94480],{"class":54},[34,182028,182029],{"class":36,"line":242},[34,182030,62],{"emptyLinePlaceholder":61},[34,182032,182033],{"class":36,"line":250},[34,182034,182035],{"class":40},"# Add package to store without installing\n",[34,182037,182038,182040,182042,182044,182046,182048,182050],{"class":36,"line":263},[34,182039,13788],{"class":47},[34,182041,181062],{"class":54},[34,182043,7854],{"class":54},[34,182045,5470],{"class":580},[34,182047,5473],{"class":54},[34,182049,5476],{"class":181},[34,182051,1248],{"class":580},[388,182053,6641],{},{"title":30,"searchDepth":44,"depth":44,"links":182055},[182056],{"id":181974,"depth":44,"text":181969},"Store Management in pnpm.",{},"/pnpm/store-management",{"title":181969,"description":182057},"pnpm/store-management",[13788,78040,5591,8606],"G3V_hyGkrNM_CF6qEAMmQ1-n0aNAf2-io95uoReWFT8",{"id":182065,"title":54370,"body":182066,"date":402,"description":182185,"extension":404,"meta":182186,"navigation":61,"order":242,"path":182187,"seo":182188,"stem":182189,"subject":13788,"tags":182190,"__hash__":182191},"topics/pnpm/updating-packages.md",{"type":8,"value":182067,"toc":182182},[182068,182070,182180],[11,182069,54370],{"id":55479},[25,182071,182073],{"className":27,"code":182072,"language":29,"meta":30,"style":30},"# Check for outdated packages\npnpm outdated\n\n# Update all packages\npnpm update\npnpm up\n\n# Update specific package\npnpm update \u003Cpackage>\n\n# Update to latest (ignore ranges)\npnpm update --latest\npnpm up -L\n\n# Interactive update\npnpm update --interactive\npnpm up -i\n",[20,182074,182075,182079,182085,182089,182093,182099,182105,182109,182113,182127,182131,182136,182144,182153,182157,182162,182171],{"__ignoreMap":30},[34,182076,182077],{"class":36,"line":37},[34,182078,160794],{"class":40},[34,182080,182081,182083],{"class":36,"line":44},[34,182082,13788],{"class":47},[34,182084,115160],{"class":54},[34,182086,182087],{"class":36,"line":58},[34,182088,62],{"emptyLinePlaceholder":61},[34,182090,182091],{"class":36,"line":65},[34,182092,55489],{"class":40},[34,182094,182095,182097],{"class":36,"line":71},[34,182096,13788],{"class":47},[34,182098,6441],{"class":54},[34,182100,182101,182103],{"class":36,"line":77},[34,182102,13788],{"class":47},[34,182104,55757],{"class":54},[34,182106,182107],{"class":36,"line":82},[34,182108,62],{"emptyLinePlaceholder":61},[34,182110,182111],{"class":36,"line":88},[34,182112,160823],{"class":40},[34,182114,182115,182117,182119,182121,182123,182125],{"class":36,"line":242},[34,182116,13788],{"class":47},[34,182118,5619],{"class":54},[34,182120,5470],{"class":580},[34,182122,5473],{"class":54},[34,182124,5476],{"class":181},[34,182126,1248],{"class":580},[34,182128,182129],{"class":36,"line":250},[34,182130,62],{"emptyLinePlaceholder":61},[34,182132,182133],{"class":36,"line":263},[34,182134,182135],{"class":40},"# Update to latest (ignore ranges)\n",[34,182137,182138,182140,182142],{"class":36,"line":275},[34,182139,13788],{"class":47},[34,182141,5619],{"class":54},[34,182143,98822],{"class":50},[34,182145,182146,182148,182150],{"class":36,"line":700},[34,182147,13788],{"class":47},[34,182149,55764],{"class":54},[34,182151,182152],{"class":50}," -L\n",[34,182154,182155],{"class":36,"line":706},[34,182156,62],{"emptyLinePlaceholder":61},[34,182158,182159],{"class":36,"line":715},[34,182160,182161],{"class":40},"# Interactive update\n",[34,182163,182164,182166,182168],{"class":36,"line":725},[34,182165,13788],{"class":47},[34,182167,5619],{"class":54},[34,182169,182170],{"class":50}," --interactive\n",[34,182172,182173,182175,182177],{"class":36,"line":734},[34,182174,13788],{"class":47},[34,182176,55764],{"class":54},[34,182178,182179],{"class":50}," -i\n",[388,182181,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":182183},[182184],{"id":55479,"depth":44,"text":54370},"Updating Packages in pnpm.",{},"/pnpm/updating-packages",{"title":54370,"description":182185},"pnpm/updating-packages",[13788,78040,5591,8606],"lER4yhMIhN2Ucx5a7S9sT96M3SNBbX_ZaH7vpG0yuX8",{"id":182193,"title":182194,"body":182195,"date":402,"description":182278,"extension":404,"meta":182279,"navigation":61,"order":65,"path":182280,"seo":182281,"stem":182282,"subject":13788,"tags":182283,"__hash__":182284},"topics/pnpm/updating-pnpm.md","Updating pnpm",{"type":8,"value":182196,"toc":182275},[182197,182200,182273],[11,182198,182194],{"id":182199},"updating-pnpm",[25,182201,182203],{"className":27,"code":182202,"language":29,"meta":30,"style":30},"# Update to latest version\npnpm self-update\n\n# Update to specific version\npnpm self-update 9.0.0\n\n# Update using npm\nnpm install -g pnpm@latest\n\n# Update using corepack\ncorepack prepare pnpm@latest --activate\n",[20,182204,182205,182209,182216,182220,182224,182234,182238,182243,182254,182258,182263],{"__ignoreMap":30},[34,182206,182207],{"class":36,"line":37},[34,182208,17693],{"class":40},[34,182210,182211,182213],{"class":36,"line":44},[34,182212,13788],{"class":47},[34,182214,182215],{"class":54}," self-update\n",[34,182217,182218],{"class":36,"line":58},[34,182219,62],{"emptyLinePlaceholder":61},[34,182221,182222],{"class":36,"line":65},[34,182223,17708],{"class":40},[34,182225,182226,182228,182231],{"class":36,"line":71},[34,182227,13788],{"class":47},[34,182229,182230],{"class":54}," self-update",[34,182232,182233],{"class":50}," 9.0.0\n",[34,182235,182236],{"class":36,"line":77},[34,182237,62],{"emptyLinePlaceholder":61},[34,182239,182240],{"class":36,"line":82},[34,182241,182242],{"class":40},"# Update using npm\n",[34,182244,182245,182247,182249,182251],{"class":36,"line":88},[34,182246,8177],{"class":47},[34,182248,118],{"class":54},[34,182250,9753],{"class":50},[34,182252,182253],{"class":54}," pnpm@latest\n",[34,182255,182256],{"class":36,"line":242},[34,182257,62],{"emptyLinePlaceholder":61},[34,182259,182260],{"class":36,"line":250},[34,182261,182262],{"class":40},"# Update using corepack\n",[34,182264,182265,182267,182269,182271],{"class":36,"line":263},[34,182266,180163],{"class":47},[34,182268,180173],{"class":54},[34,182270,180176],{"class":54},[34,182272,180179],{"class":50},[388,182274,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":182276},[182277],{"id":182199,"depth":44,"text":182194},"Updating pnpm in pnpm.",{},"/pnpm/updating-pnpm",{"title":182194,"description":182278},"pnpm/updating-pnpm",[13788,78040,5591,8606],"ZJQ6TlSqsJeBjhal_B7hOlVaM1Ae7mS0h-o3yEC3OxQ",{"id":182286,"title":12204,"body":182287,"date":402,"description":182474,"extension":404,"meta":182475,"navigation":61,"order":748,"path":182476,"seo":182477,"stem":182478,"subject":13788,"tags":182479,"__hash__":182480},"topics/pnpm/useful-commands.md",{"type":8,"value":182288,"toc":182471},[182289,182291,182469],[11,182290,12204],{"id":12948},[25,182292,182294],{"className":27,"code":182293,"language":29,"meta":30,"style":30},"# Rebuild native modules\npnpm rebuild\npnpm rb\n\n# Deduplicate dependencies\npnpm dedupe\n\n# Prune unused packages\npnpm prune\n\n# Create lockfile only\npnpm install --lockfile-only\n\n# Fetch packages to store without installing\npnpm fetch\n\n# Link a local package\npnpm link \u003Cdir>\npnpm link --global\n\n# Unlink\npnpm unlink\n\n# Execute command in project root\npnpm exec \u003Ccommand>\npnpm exec jest\n\n# Create pnpm-lock.yaml from npm\npnpm import\n",[20,182295,182296,182300,182306,182313,182317,182321,182327,182331,182335,182341,182345,182350,182359,182363,182368,182374,182378,182383,182398,182407,182411,182416,182423,182427,182432,182446,182454,182458,182463],{"__ignoreMap":30},[34,182297,182298],{"class":36,"line":37},[34,182299,160913],{"class":40},[34,182301,182302,182304],{"class":36,"line":44},[34,182303,13788],{"class":47},[34,182305,160920],{"class":54},[34,182307,182308,182310],{"class":36,"line":58},[34,182309,13788],{"class":47},[34,182311,182312],{"class":54}," rb\n",[34,182314,182315],{"class":36,"line":65},[34,182316,62],{"emptyLinePlaceholder":61},[34,182318,182319],{"class":36,"line":71},[34,182320,160897],{"class":40},[34,182322,182323,182325],{"class":36,"line":77},[34,182324,13788],{"class":47},[34,182326,160904],{"class":54},[34,182328,182329],{"class":36,"line":82},[34,182330,62],{"emptyLinePlaceholder":61},[34,182332,182333],{"class":36,"line":88},[34,182334,160929],{"class":40},[34,182336,182337,182339],{"class":36,"line":242},[34,182338,13788],{"class":47},[34,182340,57628],{"class":54},[34,182342,182343],{"class":36,"line":250},[34,182344,62],{"emptyLinePlaceholder":61},[34,182346,182347],{"class":36,"line":263},[34,182348,182349],{"class":40},"# Create lockfile only\n",[34,182351,182352,182354,182356],{"class":36,"line":275},[34,182353,13788],{"class":47},[34,182355,118],{"class":54},[34,182357,182358],{"class":50}," --lockfile-only\n",[34,182360,182361],{"class":36,"line":700},[34,182362,62],{"emptyLinePlaceholder":61},[34,182364,182365],{"class":36,"line":706},[34,182366,182367],{"class":40},"# Fetch packages to store without installing\n",[34,182369,182370,182372],{"class":36,"line":715},[34,182371,13788],{"class":47},[34,182373,101616],{"class":54},[34,182375,182376],{"class":36,"line":725},[34,182377,62],{"emptyLinePlaceholder":61},[34,182379,182380],{"class":36,"line":734},[34,182381,182382],{"class":40},"# Link a local package\n",[34,182384,182385,182387,182389,182391,182394,182396],{"class":36,"line":742},[34,182386,13788],{"class":47},[34,182388,114503],{"class":54},[34,182390,5470],{"class":580},[34,182392,182393],{"class":54},"di",[34,182395,56239],{"class":181},[34,182397,1248],{"class":580},[34,182399,182400,182402,182404],{"class":36,"line":748},[34,182401,13788],{"class":47},[34,182403,114503],{"class":54},[34,182405,182406],{"class":50}," --global\n",[34,182408,182409],{"class":36,"line":754},[34,182410,62],{"emptyLinePlaceholder":61},[34,182412,182413],{"class":36,"line":759},[34,182414,182415],{"class":40},"# Unlink\n",[34,182417,182418,182420],{"class":36,"line":771},[34,182419,13788],{"class":47},[34,182421,182422],{"class":54}," unlink\n",[34,182424,182425],{"class":36,"line":794},[34,182426,62],{"emptyLinePlaceholder":61},[34,182428,182429],{"class":36,"line":824},[34,182430,182431],{"class":40},"# Execute command in project root\n",[34,182433,182434,182436,182438,182440,182442,182444],{"class":36,"line":830},[34,182435,13788],{"class":47},[34,182437,55938],{"class":54},[34,182439,5470],{"class":580},[34,182441,58037],{"class":54},[34,182443,5878],{"class":181},[34,182445,1248],{"class":580},[34,182447,182448,182450,182452],{"class":36,"line":839},[34,182449,13788],{"class":47},[34,182451,55938],{"class":54},[34,182453,127003],{"class":54},[34,182455,182456],{"class":36,"line":854},[34,182457,62],{"emptyLinePlaceholder":61},[34,182459,182460],{"class":36,"line":860},[34,182461,182462],{"class":40},"# Create pnpm-lock.yaml from npm\n",[34,182464,182465,182467],{"class":36,"line":865},[34,182466,13788],{"class":47},[34,182468,181581],{"class":54},[388,182470,5578],{},{"title":30,"searchDepth":44,"depth":44,"links":182472},[182473],{"id":12948,"depth":44,"text":12204},"Useful Commands in pnpm.",{},"/pnpm/useful-commands",{"title":12204,"description":182474},"pnpm/useful-commands",[13788,78040,5591,8606],"sQZrF7TcnIpiV3BS6kauUrg_S_cOrk0FX3NCGdf3h54",{"id":182482,"title":160057,"body":182483,"date":402,"description":182727,"extension":404,"meta":182728,"navigation":61,"order":715,"path":182729,"seo":182730,"stem":182731,"subject":13788,"tags":182732,"__hash__":182733},"topics/pnpm/workspaces-monorepo.md",{"type":8,"value":182484,"toc":182724},[182485,182487,182722],[11,182486,160057],{"id":161038},[25,182488,182490],{"className":27,"code":182489,"language":29,"meta":30,"style":30},"# Install all workspace dependencies\npnpm install\n\n# Add dependency to specific workspace\npnpm add \u003Cpackage> --filter \u003Cworkspace>\n\n# Add dependency to root\npnpm add -w \u003Cpackage>\npnpm add --workspace-root \u003Cpackage>\n\n# Run script in specific workspace\npnpm --filter \u003Cworkspace> \u003Cscript>\npnpm -F \u003Cworkspace> \u003Cscript>\n\n# Run script in all workspaces\npnpm -r \u003Cscript>\npnpm --recursive \u003Cscript>\n\n# Run script in all workspaces in parallel\npnpm -r --parallel \u003Cscript>\n\n# Run only in changed packages\npnpm -r --filter \"...[origin/main]\" \u003Cscript>\n",[20,182491,182492,182497,182503,182507,182512,182536,182540,182545,182561,182578,182582,182587,182609,182631,182635,182639,182653,182668,182672,182677,182694,182698,182703],{"__ignoreMap":30},[34,182493,182494],{"class":36,"line":37},[34,182495,182496],{"class":40},"# Install all workspace dependencies\n",[34,182498,182499,182501],{"class":36,"line":44},[34,182500,13788],{"class":47},[34,182502,5951],{"class":54},[34,182504,182505],{"class":36,"line":58},[34,182506,62],{"emptyLinePlaceholder":61},[34,182508,182509],{"class":36,"line":65},[34,182510,182511],{"class":40},"# Add dependency to specific workspace\n",[34,182513,182514,182516,182518,182520,182522,182524,182526,182528,182530,182532,182534],{"class":36,"line":71},[34,182515,13788],{"class":47},[34,182517,7854],{"class":54},[34,182519,5470],{"class":580},[34,182521,5473],{"class":54},[34,182523,5476],{"class":181},[34,182525,5691],{"class":580},[34,182527,57840],{"class":50},[34,182529,5470],{"class":580},[34,182531,161089],{"class":54},[34,182533,5476],{"class":181},[34,182535,1248],{"class":580},[34,182537,182538],{"class":36,"line":77},[34,182539,62],{"emptyLinePlaceholder":61},[34,182541,182542],{"class":36,"line":82},[34,182543,182544],{"class":40},"# Add dependency to root\n",[34,182546,182547,182549,182551,182553,182555,182557,182559],{"class":36,"line":88},[34,182548,13788],{"class":47},[34,182550,7854],{"class":54},[34,182552,44733],{"class":50},[34,182554,5470],{"class":580},[34,182556,5473],{"class":54},[34,182558,5476],{"class":181},[34,182560,1248],{"class":580},[34,182562,182563,182565,182567,182570,182572,182574,182576],{"class":36,"line":242},[34,182564,13788],{"class":47},[34,182566,7854],{"class":54},[34,182568,182569],{"class":50}," --workspace-root",[34,182571,5470],{"class":580},[34,182573,5473],{"class":54},[34,182575,5476],{"class":181},[34,182577,1248],{"class":580},[34,182579,182580],{"class":36,"line":250},[34,182581,62],{"emptyLinePlaceholder":61},[34,182583,182584],{"class":36,"line":263},[34,182585,182586],{"class":40},"# Run script in specific workspace\n",[34,182588,182589,182591,182593,182595,182597,182599,182601,182603,182605,182607],{"class":36,"line":275},[34,182590,13788],{"class":47},[34,182592,57840],{"class":50},[34,182594,5470],{"class":580},[34,182596,161089],{"class":54},[34,182598,5476],{"class":181},[34,182600,5691],{"class":580},[34,182602,5470],{"class":580},[34,182604,16022],{"class":54},[34,182606,16025],{"class":181},[34,182608,1248],{"class":580},[34,182610,182611,182613,182615,182617,182619,182621,182623,182625,182627,182629],{"class":36,"line":700},[34,182612,13788],{"class":47},[34,182614,43705],{"class":50},[34,182616,5470],{"class":580},[34,182618,161089],{"class":54},[34,182620,5476],{"class":181},[34,182622,5691],{"class":580},[34,182624,5470],{"class":580},[34,182626,16022],{"class":54},[34,182628,16025],{"class":181},[34,182630,1248],{"class":580},[34,182632,182633],{"class":36,"line":706},[34,182634,62],{"emptyLinePlaceholder":61},[34,182636,182637],{"class":36,"line":715},[34,182638,161129],{"class":40},[34,182640,182641,182643,182645,182647,182649,182651],{"class":36,"line":725},[34,182642,13788],{"class":47},[34,182644,12112],{"class":50},[34,182646,5470],{"class":580},[34,182648,16022],{"class":54},[34,182650,16025],{"class":181},[34,182652,1248],{"class":580},[34,182654,182655,182657,182660,182662,182664,182666],{"class":36,"line":734},[34,182656,13788],{"class":47},[34,182658,182659],{"class":50}," --recursive",[34,182661,5470],{"class":580},[34,182663,16022],{"class":54},[34,182665,16025],{"class":181},[34,182667,1248],{"class":580},[34,182669,182670],{"class":36,"line":742},[34,182671,62],{"emptyLinePlaceholder":61},[34,182673,182674],{"class":36,"line":748},[34,182675,182676],{"class":40},"# Run script in all workspaces in parallel\n",[34,182678,182679,182681,182683,182686,182688,182690,182692],{"class":36,"line":754},[34,182680,13788],{"class":47},[34,182682,12112],{"class":50},[34,182684,182685],{"class":50}," --parallel",[34,182687,5470],{"class":580},[34,182689,16022],{"class":54},[34,182691,16025],{"class":181},[34,182693,1248],{"class":580},[34,182695,182696],{"class":36,"line":759},[34,182697,62],{"emptyLinePlaceholder":61},[34,182699,182700],{"class":36,"line":771},[34,182701,182702],{"class":40},"# Run only in changed packages\n",[34,182704,182705,182707,182709,182711,182714,182716,182718,182720],{"class":36,"line":794},[34,182706,13788],{"class":47},[34,182708,12112],{"class":50},[34,182710,57840],{"class":50},[34,182712,182713],{"class":54}," \"...[origin/main]\"",[34,182715,5470],{"class":580},[34,182717,16022],{"class":54},[34,182719,16025],{"class":181},[34,182721,1248],{"class":580},[388,182723,6310],{},{"title":30,"searchDepth":44,"depth":44,"links":182725},[182726],{"id":161038,"depth":44,"text":160057},"Workspaces (Monorepo) in pnpm.",{},"/pnpm/workspaces-monorepo",{"title":160057,"description":182727},"pnpm/workspaces-monorepo",[13788,78040,5591,8606],"58tSPPQqvSl5mi1UZeeUuSbi-DOjS_EUXzq2PimKe5s",{"id":182735,"title":182736,"body":182737,"date":402,"description":183043,"extension":404,"meta":183044,"navigation":61,"order":37,"path":183045,"seo":183046,"stem":183047,"subject":182758,"tags":183048,"__hash__":183050},"topics/podman/overview.md","Podman",{"type":8,"value":182738,"toc":183033},[182739,182741,182744,182761,182765,182768,182808,182812,182815,182849,182853,182856,182880,182884,182887,182955,182959,182962,182980,182984,182987,183005,183009,183012,183030],[11,182740,14],{"id":13},[16,182742,182743],{},"Podman is a container management tool similar to Docker but focused on daemonless operation. It is suitable for running, managing, and orchestrating containers.",[25,182745,182747],{"className":27,"code":182746,"language":29,"meta":30,"style":30},"# Check Podman's version\npodman --version\n",[20,182748,182749,182754],{"__ignoreMap":30},[34,182750,182751],{"class":36,"line":37},[34,182752,182753],{"class":40},"# Check Podman's version\n",[34,182755,182756,182759],{"class":36,"line":44},[34,182757,182758],{"class":47},"podman",[34,182760,5013],{"class":50},[11,182762,182764],{"id":182763},"searching-for-images","Searching for Images",[16,182766,182767],{},"Use the search command to find container images in registries.",[25,182769,182771],{"className":27,"code":182770,"language":29,"meta":30,"style":30},"# Search for an HTTP server image\npodman search httpd\n\n# Filter to include only official images\npodman search httpd --filter=is-official\n",[20,182772,182773,182778,182787,182791,182796],{"__ignoreMap":30},[34,182774,182775],{"class":36,"line":37},[34,182776,182777],{"class":40},"# Search for an HTTP server image\n",[34,182779,182780,182782,182784],{"class":36,"line":44},[34,182781,182758],{"class":47},[34,182783,5870],{"class":54},[34,182785,182786],{"class":54}," httpd\n",[34,182788,182789],{"class":36,"line":58},[34,182790,62],{"emptyLinePlaceholder":61},[34,182792,182793],{"class":36,"line":65},[34,182794,182795],{"class":40},"# Filter to include only official images\n",[34,182797,182798,182800,182802,182805],{"class":36,"line":71},[34,182799,182758],{"class":47},[34,182801,5870],{"class":54},[34,182803,182804],{"class":54}," httpd",[34,182806,182807],{"class":50}," --filter=is-official\n",[11,182809,182811],{"id":182810},"pulling-and-listing-images","Pulling and Listing Images",[16,182813,182814],{},"Download a container image from a registry:",[25,182816,182818],{"className":27,"code":182817,"language":29,"meta":30,"style":30},"# Pull the httpd image from Docker Hub\npodman pull docker.io/library/httpd\n\n# List all locally available images\npodman images\n",[20,182819,182820,182825,182834,182838,182843],{"__ignoreMap":30},[34,182821,182822],{"class":36,"line":37},[34,182823,182824],{"class":40},"# Pull the httpd image from Docker Hub\n",[34,182826,182827,182829,182831],{"class":36,"line":44},[34,182828,182758],{"class":47},[34,182830,56841],{"class":54},[34,182832,182833],{"class":54}," docker.io/library/httpd\n",[34,182835,182836],{"class":36,"line":58},[34,182837,62],{"emptyLinePlaceholder":61},[34,182839,182840],{"class":36,"line":65},[34,182841,182842],{"class":40},"# List all locally available images\n",[34,182844,182845,182847],{"class":36,"line":71},[34,182846,182758],{"class":47},[34,182848,56813],{"class":54},[11,182850,182852],{"id":182851},"running-containers","Running Containers",[16,182854,182855],{},"Run a container in detached mode, mapping internal ports to the host:",[25,182857,182859],{"className":27,"code":182858,"language":29,"meta":30,"style":30},"# Run an HTTP server container\npodman run -d -p 8080:80 docker.io/library/httpd\n",[20,182860,182861,182866],{"__ignoreMap":30},[34,182862,182863],{"class":36,"line":37},[34,182864,182865],{"class":40},"# Run an HTTP server container\n",[34,182867,182868,182870,182872,182874,182876,182878],{"class":36,"line":44},[34,182869,182758],{"class":47},[34,182871,16017],{"class":54},[34,182873,9750],{"class":50},[34,182875,5275],{"class":50},[34,182877,56077],{"class":54},[34,182879,182833],{"class":54},[11,182881,182883],{"id":182882},"managing-containers","Managing Containers",[16,182885,182886],{},"You can interact with running or created containers using the following:",[25,182888,182890],{"className":27,"code":182889,"language":29,"meta":30,"style":30},"# List running containers\npodman ps\n\n# List all containers (including stopped ones)\npodman ps -a\n\n# Stop the latest running container\npodman stop -l\n\n# Remove the latest stopped container\npodman rm -l\n",[20,182891,182892,182897,182904,182908,182913,182921,182925,182930,182938,182942,182947],{"__ignoreMap":30},[34,182893,182894],{"class":36,"line":37},[34,182895,182896],{"class":40},"# List running containers\n",[34,182898,182899,182901],{"class":36,"line":44},[34,182900,182758],{"class":47},[34,182902,182903],{"class":54}," ps\n",[34,182905,182906],{"class":36,"line":58},[34,182907,62],{"emptyLinePlaceholder":61},[34,182909,182910],{"class":36,"line":65},[34,182911,182912],{"class":40},"# List all containers (including stopped ones)\n",[34,182914,182915,182917,182919],{"class":36,"line":71},[34,182916,182758],{"class":47},[34,182918,56191],{"class":54},[34,182920,88895],{"class":50},[34,182922,182923],{"class":36,"line":77},[34,182924,62],{"emptyLinePlaceholder":61},[34,182926,182927],{"class":36,"line":82},[34,182928,182929],{"class":40},"# Stop the latest running container\n",[34,182931,182932,182934,182936],{"class":36,"line":88},[34,182933,182758],{"class":47},[34,182935,9696],{"class":54},[34,182937,93],{"class":50},[34,182939,182940],{"class":36,"line":242},[34,182941,62],{"emptyLinePlaceholder":61},[34,182943,182944],{"class":36,"line":250},[34,182945,182946],{"class":40},"# Remove the latest stopped container\n",[34,182948,182949,182951,182953],{"class":36,"line":263},[34,182950,182758],{"class":47},[34,182952,8901],{"class":54},[34,182954,93],{"class":50},[11,182956,182958],{"id":182957},"inspecting-containers","Inspecting Containers",[16,182960,182961],{},"Retrieve metadata and configuration details about a container:",[25,182963,182965],{"className":27,"code":182964,"language":29,"meta":30,"style":30},"# Inspect the latest created container\npodman inspect -l\n",[20,182966,182967,182972],{"__ignoreMap":30},[34,182968,182969],{"class":36,"line":37},[34,182970,182971],{"class":40},"# Inspect the latest created container\n",[34,182973,182974,182976,182978],{"class":36,"line":44},[34,182975,182758],{"class":47},[34,182977,57248],{"class":54},[34,182979,93],{"class":50},[11,182981,182983],{"id":182982},"viewing-logs","Viewing Logs",[16,182985,182986],{},"Access logs for a container:",[25,182988,182990],{"className":27,"code":182989,"language":29,"meta":30,"style":30},"# View log output of the latest container\npodman logs -l\n",[20,182991,182992,182997],{"__ignoreMap":30},[34,182993,182994],{"class":36,"line":37},[34,182995,182996],{"class":40},"# View log output of the latest container\n",[34,182998,182999,183001,183003],{"class":36,"line":44},[34,183000,182758],{"class":47},[34,183002,55905],{"class":54},[34,183004,93],{"class":50},[11,183006,183008],{"id":183007},"debugging-and-monitoring","Debugging and Monitoring",[16,183010,183011],{},"Inspect processes and monitor resource usage within a container:",[25,183013,183015],{"className":27,"code":183014,"language":29,"meta":30,"style":30},"# Show processes in a container\npodman top -l\n",[20,183016,183017,183022],{"__ignoreMap":30},[34,183018,183019],{"class":36,"line":37},[34,183020,183021],{"class":40},"# Show processes in a container\n",[34,183023,183024,183026,183028],{"class":36,"line":44},[34,183025,182758],{"class":47},[34,183027,33763],{"class":54},[34,183029,93],{"class":50},[388,183031,183032],{},"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 .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);}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":30,"searchDepth":44,"depth":44,"links":183034},[183035,183036,183037,183038,183039,183040,183041,183042],{"id":13,"depth":44,"text":14},{"id":182763,"depth":44,"text":182764},{"id":182810,"depth":44,"text":182811},{"id":182851,"depth":44,"text":182852},{"id":182882,"depth":44,"text":182883},{"id":182957,"depth":44,"text":182958},{"id":182982,"depth":44,"text":182983},{"id":183007,"depth":44,"text":183008},"Podman commands and operations for container management and orchestration.",{},"/podman/overview",{"title":182736,"description":183043},"podman/overview",[182758,183049,138136,5438],"container","0OQv0J5qQWsZZ7gwZMxM3SHtkt5_9v3PLX7AzMSxTXY",{"id":183052,"title":183053,"body":183054,"date":402,"description":183227,"extension":404,"meta":183228,"navigation":61,"order":37,"path":183229,"seo":183230,"stem":183231,"subject":183092,"tags":183232,"__hash__":183234},"topics/postcss/overview.md","PostCSS Overview",{"type":8,"value":183055,"toc":183220},[183056,183058,183061,183142,183145,183149,183155,183158,183191,183197,183200,183217],[11,183057,14],{"id":13},[16,183059,183060],{},"PostCSS is a powerful tool for transforming styles with JavaScript plugins. It enables a modular and customizable approach to handling CSS preprocessing.",[25,183062,183064],{"className":13845,"code":183063,"language":8606,"meta":30,"style":30},"const postcss = require('postcss');\n\npostcss([require('autoprefixer')]).process(css, { from: undefined })\n  .then(result => {\n    console.log(result.css);\n  });\n",[20,183065,183066,183084,183088,183115,183129,183138],{"__ignoreMap":30},[34,183067,183068,183070,183073,183075,183077,183079,183082],{"class":36,"line":37},[34,183069,14676],{"class":580},[34,183071,183072],{"class":50}," postcss",[34,183074,683],{"class":580},[34,183076,111491],{"class":47},[34,183078,1607],{"class":181},[34,183080,183081],{"class":54},"'postcss'",[34,183083,1586],{"class":181},[34,183085,183086],{"class":36,"line":44},[34,183087,62],{"emptyLinePlaceholder":61},[34,183089,183090,183093,183095,183097,183099,183102,183105,183107,183110,183113],{"class":36,"line":58},[34,183091,183092],{"class":47},"postcss",[34,183094,3593],{"class":181},[34,183096,46354],{"class":47},[34,183098,1607],{"class":181},[34,183100,183101],{"class":54},"'autoprefixer'",[34,183103,183104],{"class":181},")]).",[34,183106,72211],{"class":47},[34,183108,183109],{"class":181},"(css, { from: ",[34,183111,183112],{"class":50},"undefined",[34,183114,1502],{"class":181},[34,183116,183117,183119,183121,183123,183125,183127],{"class":36,"line":65},[34,183118,61818],{"class":181},[34,183120,3380],{"class":47},[34,183122,1607],{"class":181},[34,183124,19401],{"class":675},[34,183126,1895],{"class":580},[34,183128,661],{"class":181},[34,183130,183131,183133,183135],{"class":36,"line":71},[34,183132,2421],{"class":181},[34,183134,2424],{"class":47},[34,183136,183137],{"class":181},"(result.css);\n",[34,183139,183140],{"class":36,"line":77},[34,183141,3186],{"class":181},[16,183143,183144],{},"The JavaScript API allows flexible plugin inclusion, processing, and output management.",[11,183146,183148],{"id":183147},"anatomy-of-postcss","Anatomy of PostCSS",[102,183150,183152],{"id":183151},"processor-object",[8471,183153,183154],{},"Processor Object",[16,183156,183157],{},"The central object for managing the transformation pipeline.",[25,183159,183161],{"className":13845,"code":183160,"language":8606,"meta":30,"style":30},"const plugins = ['autoprefixer'];\nconst processor = postcss(plugins);\n",[20,183162,183163,183178],{"__ignoreMap":30},[34,183164,183165,183167,183170,183172,183174,183176],{"class":36,"line":37},[34,183166,14676],{"class":580},[34,183168,183169],{"class":50}," plugins",[34,183171,683],{"class":580},[34,183173,8315],{"class":181},[34,183175,183101],{"class":54},[34,183177,3415],{"class":181},[34,183179,183180,183182,183184,183186,183188],{"class":36,"line":44},[34,183181,14676],{"class":580},[34,183183,72019],{"class":50},[34,183185,683],{"class":580},[34,183187,183072],{"class":47},[34,183189,183190],{"class":181},"(plugins);\n",[102,183192,183194],{"id":183193},"core-plugin-lifecycle",[8471,183195,183196],{},"Core Plugin Lifecycle",[16,183198,183199],{},"Develop step assurance as CSS compatibility transformation.",[25,183201,183205],{"className":183202,"code":183203,"language":183204,"meta":30,"style":30},"language-less-structured shiki shiki-themes github-light github-dark","where results coexist into latst version.\n set boundary_map limit-css\n","less-structured",[20,183206,183207,183212],{"__ignoreMap":30},[34,183208,183209],{"class":36,"line":37},[34,183210,183211],{},"where results coexist into latst version.\n",[34,183213,183214],{"class":36,"line":44},[34,183215,183216],{}," set boundary_map limit-css\n",[388,183218,183219],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":183221},[183222,183223],{"id":13,"depth":44,"text":14},{"id":183147,"depth":44,"text":183148,"children":183224},[183225,183226],{"id":183151,"depth":58,"text":183154},{"id":183193,"depth":58,"text":183196},"Transform CSS with plugins using PostCSS. Learn key concepts, plugins, and use cases.",{},"/postcss/overview",{"title":183053,"description":183227},"postcss/overview",[183092,38194,183233,8606],"transform","8MxProE_Wh5tUCo29-gV3Ito_o9h25thLj0lLsUh6SE",{"id":183236,"title":183237,"body":183238,"date":402,"description":183548,"extension":404,"meta":183549,"navigation":61,"order":88,"path":183550,"seo":183551,"stem":183552,"subject":183553,"tags":183554,"__hash__":183556},"topics/postgres/array-operations.md","Array Operations",{"type":8,"value":183239,"toc":183545},[183240,183243,183543],[11,183241,183237],{"id":183242},"array-operations",[25,183244,183246],{"className":28335,"code":183245,"language":28337,"meta":30,"style":30},"-- Create table with array\nCREATE TABLE posts (\n  id SERIAL PRIMARY KEY,\n  title VARCHAR(200),\n  tags TEXT[]\n);\n\n-- Insert array data\nINSERT INTO posts (title, tags) VALUES \n  ('PostgreSQL Tips', ARRAY['postgres', 'database', 'sql']),\n  ('Docker Guide', '{\"docker\", \"containers\"}');\n\n-- Query arrays\nSELECT * FROM posts WHERE 'postgres' = ANY(tags);\nSELECT * FROM posts WHERE tags @> ARRAY['postgres'];\nSELECT * FROM posts WHERE tags && ARRAY['postgres', 'mysql'];\n\n-- Array functions\narray_append(tags, 'new_tag')\narray_remove(tags, 'old_tag')\narray_cat(array1, array2)\narray_length(tags, 1)\nunnest(tags)              -- Expand array to rows\n\n-- Update array\nUPDATE posts SET tags = array_append(tags, 'tutorial') WHERE id = 1;\nUPDATE posts SET tags = array_remove(tags, 'sql') WHERE id = 1;\n",[20,183247,183248,183253,183263,183274,183286,183296,183300,183304,183309,183320,183335,183349,183353,183358,183379,183402,183422,183426,183431,183441,183451,183456,183465,183473,183477,183482,183513],{"__ignoreMap":30},[34,183249,183250],{"class":36,"line":37},[34,183251,183252],{"class":40},"-- Create table with array\n",[34,183254,183255,183257,183259,183261],{"class":36,"line":44},[34,183256,28349],{"class":580},[34,183258,28422],{"class":580},[34,183260,85458],{"class":47},[34,183262,13975],{"class":181},[34,183264,183265,183267,183270,183272],{"class":36,"line":58},[34,183266,150847],{"class":181},[34,183268,183269],{"class":580},"SERIAL",[34,183271,151223],{"class":580},[34,183273,624],{"class":181},[34,183275,183276,183278,183280,183282,183284],{"class":36,"line":65},[34,183277,150861],{"class":181},[34,183279,150421],{"class":580},[34,183281,1607],{"class":181},[34,183283,20899],{"class":50},[34,183285,50836],{"class":181},[34,183287,183288,183291,183293],{"class":36,"line":71},[34,183289,183290],{"class":181},"  tags ",[34,183292,150440],{"class":580},[34,183294,183295],{"class":181},"[]\n",[34,183297,183298],{"class":36,"line":77},[34,183299,1586],{"class":181},[34,183301,183302],{"class":36,"line":82},[34,183303,62],{"emptyLinePlaceholder":61},[34,183305,183306],{"class":36,"line":88},[34,183307,183308],{"class":40},"-- Insert array data\n",[34,183310,183311,183313,183316,183318],{"class":36,"line":242},[34,183312,28487],{"class":580},[34,183314,183315],{"class":181}," posts (title, tags) ",[34,183317,28498],{"class":580},[34,183319,526],{"class":181},[34,183321,183322,183324,183327,183329,183332],{"class":36,"line":250},[34,183323,151460],{"class":181},[34,183325,183326],{"class":54},"'PostgreSQL Tips'",[34,183328,1798],{"class":181},[34,183330,183331],{"class":580},"ARRAY",[34,183333,183334],{"class":181},"['postgres', 'database', 'sql']),\n",[34,183336,183337,183339,183342,183344,183347],{"class":36,"line":263},[34,183338,151460],{"class":181},[34,183340,183341],{"class":54},"'Docker Guide'",[34,183343,1798],{"class":181},[34,183345,183346],{"class":54},"'{\"docker\", \"containers\"}'",[34,183348,1586],{"class":181},[34,183350,183351],{"class":36,"line":275},[34,183352,62],{"emptyLinePlaceholder":61},[34,183354,183355],{"class":36,"line":700},[34,183356,183357],{"class":40},"-- Query arrays\n",[34,183359,183360,183362,183364,183366,183369,183371,183374,183376],{"class":36,"line":706},[34,183361,28529],{"class":580},[34,183363,18083],{"class":580},[34,183365,28534],{"class":580},[34,183367,183368],{"class":181}," posts ",[34,183370,28604],{"class":580},[34,183372,183373],{"class":54}," 'postgres'",[34,183375,683],{"class":580},[34,183377,183378],{"class":181}," ANY(tags);\n",[34,183380,183381,183383,183385,183387,183389,183391,183394,183396,183399],{"class":36,"line":715},[34,183382,28529],{"class":580},[34,183384,18083],{"class":580},[34,183386,28534],{"class":580},[34,183388,183368],{"class":181},[34,183390,28604],{"class":580},[34,183392,183393],{"class":181}," tags @",[34,183395,5691],{"class":580},[34,183397,183398],{"class":580}," ARRAY",[34,183400,183401],{"class":181},"['postgres'];\n",[34,183403,183404,183406,183408,183410,183412,183414,183417,183419],{"class":36,"line":725},[34,183405,28529],{"class":580},[34,183407,18083],{"class":580},[34,183409,28534],{"class":580},[34,183411,183368],{"class":181},[34,183413,28604],{"class":580},[34,183415,183416],{"class":181}," tags && ",[34,183418,183331],{"class":580},[34,183420,183421],{"class":181},"['postgres', 'mysql'];\n",[34,183423,183424],{"class":36,"line":734},[34,183425,62],{"emptyLinePlaceholder":61},[34,183427,183428],{"class":36,"line":742},[34,183429,183430],{"class":40},"-- Array functions\n",[34,183432,183433,183436,183439],{"class":36,"line":748},[34,183434,183435],{"class":181},"array_append(tags, ",[34,183437,183438],{"class":54},"'new_tag'",[34,183440,3372],{"class":181},[34,183442,183443,183446,183449],{"class":36,"line":754},[34,183444,183445],{"class":181},"array_remove(tags, ",[34,183447,183448],{"class":54},"'old_tag'",[34,183450,3372],{"class":181},[34,183452,183453],{"class":36,"line":759},[34,183454,183455],{"class":181},"array_cat(array1, array2)\n",[34,183457,183458,183461,183463],{"class":36,"line":771},[34,183459,183460],{"class":181},"array_length(tags, ",[34,183462,8318],{"class":50},[34,183464,3372],{"class":181},[34,183466,183467,183470],{"class":36,"line":794},[34,183468,183469],{"class":181},"unnest(tags)              ",[34,183471,183472],{"class":40},"-- Expand array to rows\n",[34,183474,183475],{"class":36,"line":824},[34,183476,62],{"emptyLinePlaceholder":61},[34,183478,183479],{"class":36,"line":830},[34,183480,183481],{"class":40},"-- Update array\n",[34,183483,183484,183486,183488,183490,183493,183495,183498,183501,183503,183505,183507,183509,183511],{"class":36,"line":839},[34,183485,28550],{"class":580},[34,183487,183368],{"class":181},[34,183489,28556],{"class":580},[34,183491,183492],{"class":181}," tags ",[34,183494,1301],{"class":580},[34,183496,183497],{"class":181}," array_append(tags, ",[34,183499,183500],{"class":54},"'tutorial'",[34,183502,4817],{"class":181},[34,183504,28604],{"class":580},[34,183506,28568],{"class":181},[34,183508,1301],{"class":580},[34,183510,3567],{"class":50},[34,183512,593],{"class":181},[34,183514,183515,183517,183519,183521,183523,183525,183528,183531,183533,183535,183537,183539,183541],{"class":36,"line":854},[34,183516,28550],{"class":580},[34,183518,183368],{"class":181},[34,183520,28556],{"class":580},[34,183522,183492],{"class":181},[34,183524,1301],{"class":580},[34,183526,183527],{"class":181}," array_remove(tags, ",[34,183529,183530],{"class":54},"'sql'",[34,183532,4817],{"class":181},[34,183534,28604],{"class":580},[34,183536,28568],{"class":181},[34,183538,1301],{"class":580},[34,183540,3567],{"class":50},[34,183542,593],{"class":181},[388,183544,49910],{},{"title":30,"searchDepth":44,"depth":44,"links":183546},[183547],{"id":183242,"depth":44,"text":183237},"Array Operations in PostgreSQL.",{},"/postgres/array-operations",{"title":183237,"description":183548},"postgres/array-operations","postgres",[183553,183555,28650,28337],"postgresql","lGPhFmmsEk8QZWQLUNxMuU0MK10Z9WwrCvufpDVCf58",{"id":183558,"title":149765,"body":183559,"date":402,"description":183835,"extension":404,"meta":183836,"navigation":61,"order":700,"path":183837,"seo":183838,"stem":183839,"subject":183553,"tags":183840,"__hash__":183841},"topics/postgres/backup-restore.md",{"type":8,"value":183560,"toc":183832},[183561,183563,183830],[11,183562,149765],{"id":149770},[25,183564,183566],{"className":27,"code":183565,"language":29,"meta":30,"style":30},"# Dump database\npg_dump -U username -d database_name > backup.sql\npg_dump -U username -d database_name -F c > backup.dump  # Custom format\npg_dump -U username -d database_name -F d -j 4 -f backup_dir  # Parallel\n\n# Dump specific table\npg_dump -U username -d database_name -t tablename > table_backup.sql\n\n# Dump schema only\npg_dump -U username -d database_name --schema-only > schema.sql\n\n# Dump data only\npg_dump -U username -d database_name --data-only > data.sql\n\n# Restore from SQL\npsql -U username -d database_name \u003C backup.sql\n\n# Restore from custom format\npg_restore -U username -d database_name backup.dump\n\n# Restore parallel\npg_restore -U username -d database_name -j 4 backup.dump\n\n# Dump all databases\npg_dumpall -U username > all_databases.sql\n",[20,183567,183568,183572,183589,183614,183642,183646,183650,183671,183675,183680,183700,183704,183709,183729,183733,183738,183755,183759,183764,183780,183784,183789,183807,183811,183816],{"__ignoreMap":30},[34,183569,183570],{"class":36,"line":37},[34,183571,149780],{"class":40},[34,183573,183574,183577,183579,183581,183583,183585,183587],{"class":36,"line":44},[34,183575,183576],{"class":47},"pg_dump",[34,183578,169130],{"class":50},[34,183580,149790],{"class":54},[34,183582,9750],{"class":50},[34,183584,149795],{"class":54},[34,183586,9009],{"class":580},[34,183588,149800],{"class":54},[34,183590,183591,183593,183595,183597,183599,183601,183603,183606,183608,183611],{"class":36,"line":58},[34,183592,183576],{"class":47},[34,183594,169130],{"class":50},[34,183596,149790],{"class":54},[34,183598,9750],{"class":50},[34,183600,149795],{"class":54},[34,183602,43705],{"class":50},[34,183604,183605],{"class":54}," c",[34,183607,9009],{"class":580},[34,183609,183610],{"class":54}," backup.dump",[34,183612,183613],{"class":40},"  # Custom format\n",[34,183615,183616,183618,183620,183622,183624,183626,183628,183630,183632,183634,183636,183639],{"class":36,"line":65},[34,183617,183576],{"class":47},[34,183619,169130],{"class":50},[34,183621,149790],{"class":54},[34,183623,9750],{"class":50},[34,183625,149795],{"class":54},[34,183627,43705],{"class":50},[34,183629,89838],{"class":54},[34,183631,51],{"class":50},[34,183633,11801],{"class":50},[34,183635,6001],{"class":50},[34,183637,183638],{"class":54}," backup_dir",[34,183640,183641],{"class":40},"  # Parallel\n",[34,183643,183644],{"class":36,"line":71},[34,183645,62],{"emptyLinePlaceholder":61},[34,183647,183648],{"class":36,"line":77},[34,183649,149848],{"class":40},[34,183651,183652,183654,183656,183658,183660,183662,183664,183667,183669],{"class":36,"line":82},[34,183653,183576],{"class":47},[34,183655,169130],{"class":50},[34,183657,149790],{"class":54},[34,183659,9750],{"class":50},[34,183661,149795],{"class":54},[34,183663,11256],{"class":50},[34,183665,183666],{"class":54}," tablename",[34,183668,9009],{"class":580},[34,183670,149868],{"class":54},[34,183672,183673],{"class":36,"line":88},[34,183674,62],{"emptyLinePlaceholder":61},[34,183676,183677],{"class":36,"line":242},[34,183678,183679],{"class":40},"# Dump schema only\n",[34,183681,183682,183684,183686,183688,183690,183692,183695,183697],{"class":36,"line":250},[34,183683,183576],{"class":47},[34,183685,169130],{"class":50},[34,183687,149790],{"class":54},[34,183689,9750],{"class":50},[34,183691,149795],{"class":54},[34,183693,183694],{"class":50}," --schema-only",[34,183696,9009],{"class":580},[34,183698,183699],{"class":54}," schema.sql\n",[34,183701,183702],{"class":36,"line":263},[34,183703,62],{"emptyLinePlaceholder":61},[34,183705,183706],{"class":36,"line":275},[34,183707,183708],{"class":40},"# Dump data only\n",[34,183710,183711,183713,183715,183717,183719,183721,183724,183726],{"class":36,"line":700},[34,183712,183576],{"class":47},[34,183714,169130],{"class":50},[34,183716,149790],{"class":54},[34,183718,9750],{"class":50},[34,183720,149795],{"class":54},[34,183722,183723],{"class":50}," --data-only",[34,183725,9009],{"class":580},[34,183727,183728],{"class":54}," data.sql\n",[34,183730,183731],{"class":36,"line":706},[34,183732,62],{"emptyLinePlaceholder":61},[34,183734,183735],{"class":36,"line":715},[34,183736,183737],{"class":40},"# Restore from SQL\n",[34,183739,183740,183743,183745,183747,183749,183751,183753],{"class":36,"line":725},[34,183741,183742],{"class":47},"psql",[34,183744,169130],{"class":50},[34,183746,149790],{"class":54},[34,183748,9750],{"class":50},[34,183750,149795],{"class":54},[34,183752,5470],{"class":580},[34,183754,149800],{"class":54},[34,183756,183757],{"class":36,"line":734},[34,183758,62],{"emptyLinePlaceholder":61},[34,183760,183761],{"class":36,"line":742},[34,183762,183763],{"class":40},"# Restore from custom format\n",[34,183765,183766,183769,183771,183773,183775,183777],{"class":36,"line":748},[34,183767,183768],{"class":47},"pg_restore",[34,183770,169130],{"class":50},[34,183772,149790],{"class":54},[34,183774,9750],{"class":50},[34,183776,149795],{"class":54},[34,183778,183779],{"class":54}," backup.dump\n",[34,183781,183782],{"class":36,"line":754},[34,183783,62],{"emptyLinePlaceholder":61},[34,183785,183786],{"class":36,"line":759},[34,183787,183788],{"class":40},"# Restore parallel\n",[34,183790,183791,183793,183795,183797,183799,183801,183803,183805],{"class":36,"line":771},[34,183792,183768],{"class":47},[34,183794,169130],{"class":50},[34,183796,149790],{"class":54},[34,183798,9750],{"class":50},[34,183800,149795],{"class":54},[34,183802,51],{"class":50},[34,183804,11801],{"class":50},[34,183806,183779],{"class":54},[34,183808,183809],{"class":36,"line":794},[34,183810,62],{"emptyLinePlaceholder":61},[34,183812,183813],{"class":36,"line":824},[34,183814,183815],{"class":40},"# Dump all databases\n",[34,183817,183818,183821,183823,183825,183827],{"class":36,"line":830},[34,183819,183820],{"class":47},"pg_dumpall",[34,183822,169130],{"class":50},[34,183824,149790],{"class":54},[34,183826,9009],{"class":580},[34,183828,183829],{"class":54}," all_databases.sql\n",[388,183831,15873],{},{"title":30,"searchDepth":44,"depth":44,"links":183833},[183834],{"id":149770,"depth":44,"text":149765},"Backup & Restore in PostgreSQL.",{},"/postgres/backup-restore",{"title":149765,"description":183835},"postgres/backup-restore",[183553,183555,28650,28337],"goX7qXacdqTlRd-BIiOsr3fm0jgE3XXJGFGlwYGe_BI",{"id":183843,"title":183844,"body":183845,"date":402,"description":184034,"extension":404,"meta":184035,"navigation":61,"order":44,"path":184036,"seo":184037,"stem":184038,"subject":183553,"tags":184039,"__hash__":184040},"topics/postgres/connection-psql-commands.md","Connection & psql Commands",{"type":8,"value":183846,"toc":184031},[183847,183850,184029],[11,183848,183844],{"id":183849},"connection-psql-commands",[25,183851,183853],{"className":27,"code":183852,"language":29,"meta":30,"style":30},"# Connect to database\npsql -h localhost -U username -d database_name\npsql postgres://username:password@localhost:5432/database_name\n\n# psql meta-commands\n\\l              # List databases\n\\c dbname       # Connect to database\n\\dt             # List tables\n\\dt+            # List tables with size\n\\d tablename    # Describe table\n\\di             # List indexes\n\\dv             # List views\n\\df             # List functions\n\\du             # List users/roles\n\\dn             # List schemas\n\\dx             # List extensions\n\\x              # Toggle expanded display\n\\timing         # Toggle query timing\n\\i filename.sql # Execute SQL file\n\\o filename     # Output results to file\n\\q              # Quit psql\n",[20,183854,183855,183860,183876,183883,183887,183892,183900,183911,183919,183927,183936,183944,183952,183960,183968,183976,183984,183992,184000,184011,184022],{"__ignoreMap":30},[34,183856,183857],{"class":36,"line":37},[34,183858,183859],{"class":40},"# Connect to database\n",[34,183861,183862,183864,183866,183868,183870,183872,183874],{"class":36,"line":44},[34,183863,183742],{"class":47},[34,183865,110397],{"class":50},[34,183867,148603],{"class":54},[34,183869,169130],{"class":50},[34,183871,149790],{"class":54},[34,183873,9750],{"class":50},[34,183875,150035],{"class":54},[34,183877,183878,183880],{"class":36,"line":58},[34,183879,183742],{"class":47},[34,183881,183882],{"class":54}," postgres://username:password@localhost:5432/database_name\n",[34,183884,183885],{"class":36,"line":65},[34,183886,62],{"emptyLinePlaceholder":61},[34,183888,183889],{"class":36,"line":71},[34,183890,183891],{"class":40},"# psql meta-commands\n",[34,183893,183894,183897],{"class":36,"line":77},[34,183895,183896],{"class":47},"\\l",[34,183898,183899],{"class":40},"              # List databases\n",[34,183901,183902,183905,183908],{"class":36,"line":82},[34,183903,183904],{"class":47},"\\c",[34,183906,183907],{"class":54}," dbname",[34,183909,183910],{"class":40},"       # Connect to database\n",[34,183912,183913,183916],{"class":36,"line":88},[34,183914,183915],{"class":47},"\\dt",[34,183917,183918],{"class":40},"             # List tables\n",[34,183920,183921,183924],{"class":36,"line":242},[34,183922,183923],{"class":47},"\\dt+",[34,183925,183926],{"class":40},"            # List tables with size\n",[34,183928,183929,183931,183933],{"class":36,"line":250},[34,183930,177150],{"class":47},[34,183932,183666],{"class":54},[34,183934,183935],{"class":40},"    # Describe table\n",[34,183937,183938,183941],{"class":36,"line":263},[34,183939,183940],{"class":47},"\\di",[34,183942,183943],{"class":40},"             # List indexes\n",[34,183945,183946,183949],{"class":36,"line":275},[34,183947,183948],{"class":47},"\\dv",[34,183950,183951],{"class":40},"             # List views\n",[34,183953,183954,183957],{"class":36,"line":700},[34,183955,183956],{"class":47},"\\df",[34,183958,183959],{"class":40},"             # List functions\n",[34,183961,183962,183965],{"class":36,"line":706},[34,183963,183964],{"class":47},"\\du",[34,183966,183967],{"class":40},"             # List users/roles\n",[34,183969,183970,183973],{"class":36,"line":715},[34,183971,183972],{"class":47},"\\dn",[34,183974,183975],{"class":40},"             # List schemas\n",[34,183977,183978,183981],{"class":36,"line":725},[34,183979,183980],{"class":47},"\\dx",[34,183982,183983],{"class":40},"             # List extensions\n",[34,183985,183986,183989],{"class":36,"line":734},[34,183987,183988],{"class":47},"\\x",[34,183990,183991],{"class":40},"              # Toggle expanded display\n",[34,183993,183994,183997],{"class":36,"line":742},[34,183995,183996],{"class":47},"\\timing",[34,183998,183999],{"class":40},"         # Toggle query timing\n",[34,184001,184002,184005,184008],{"class":36,"line":748},[34,184003,184004],{"class":47},"\\i",[34,184006,184007],{"class":54}," filename.sql",[34,184009,184010],{"class":40}," # Execute SQL file\n",[34,184012,184013,184016,184019],{"class":36,"line":754},[34,184014,184015],{"class":47},"\\o",[34,184017,184018],{"class":54}," filename",[34,184020,184021],{"class":40},"     # Output results to file\n",[34,184023,184024,184026],{"class":36,"line":759},[34,184025,150291],{"class":47},[34,184027,184028],{"class":40},"              # Quit psql\n",[388,184030,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":184032},[184033],{"id":183849,"depth":44,"text":183844},"Connection & psql Commands in PostgreSQL.",{},"/postgres/connection-psql-commands",{"title":183844,"description":184034},"postgres/connection-psql-commands",[183553,183555,28650,28337],"U4lgH6twGfPaw5oNedzbjHZVkxvrQIqRdDnjn6eKTZE",{"id":184042,"title":61423,"body":184043,"date":402,"description":184301,"extension":404,"meta":184302,"navigation":61,"order":77,"path":184303,"seo":184304,"stem":184305,"subject":183553,"tags":184306,"__hash__":184307},"topics/postgres/data-types.md",{"type":8,"value":184044,"toc":184298},[184045,184047,184295],[11,184046,61423],{"id":61422},[25,184048,184050],{"className":28335,"code":184049,"language":28337,"meta":30,"style":30},"-- Numeric types\nSMALLINT                    -- 2 bytes, -32768 to 32767\nINTEGER                     -- 4 bytes, -2147483648 to 2147483647\nBIGINT                      -- 8 bytes, large integers\nSERIAL                      -- Auto-incrementing integer\nBIGSERIAL                   -- Auto-incrementing bigint\nDECIMAL(precision, scale)   -- Exact numeric\nNUMERIC(precision, scale)   -- Exact numeric\nREAL                        -- 4 bytes, floating point\nDOUBLE PRECISION            -- 8 bytes, floating point\n\n-- Text types\nCHAR(n)                     -- Fixed length\nVARCHAR(n)                  -- Variable length with limit\nTEXT                        -- Unlimited length\n\n-- Date/Time types\nDATE                        -- Date only\nTIME                        -- Time only\nTIMESTAMP                   -- Date and time\nTIMESTAMPTZ                 -- Timestamp with timezone\nINTERVAL                    -- Time interval\n\n-- Other types\nBOOLEAN                     -- true/false\nUUID                        -- Universally unique identifier\nJSON                        -- JSON data\nJSONB                       -- Binary JSON (indexed)\nARRAY                       -- Array of any type\nBYTEA                       -- Binary data\nINET                        -- IP address\nCIDR                        -- Network address\nMACADDR                     -- MAC address\n",[20,184051,184052,184056,184063,184071,184078,184085,184093,184108,184121,184129,184137,184141,184146,184156,184166,184173,184177,184181,184188,184195,184202,184210,184218,184222,184226,184233,184241,184248,184256,184263,184271,184279,184287],{"__ignoreMap":30},[34,184053,184054],{"class":36,"line":37},[34,184055,150325],{"class":40},[34,184057,184058,184060],{"class":36,"line":44},[34,184059,150338],{"class":580},[34,184061,184062],{"class":40},"                    -- 2 bytes, -32768 to 32767\n",[34,184064,184065,184068],{"class":36,"line":58},[34,184066,184067],{"class":580},"INTEGER",[34,184069,184070],{"class":40},"                     -- 4 bytes, -2147483648 to 2147483647\n",[34,184072,184073,184075],{"class":36,"line":65},[34,184074,150366],{"class":580},[34,184076,184077],{"class":40},"                      -- 8 bytes, large integers\n",[34,184079,184080,184082],{"class":36,"line":71},[34,184081,183269],{"class":580},[34,184083,184084],{"class":40},"                      -- Auto-incrementing integer\n",[34,184086,184087,184090],{"class":36,"line":77},[34,184088,184089],{"class":580},"BIGSERIAL",[34,184091,184092],{"class":40},"                   -- Auto-incrementing bigint\n",[34,184094,184095,184097,184099,184102,184105],{"class":36,"line":82},[34,184096,150374],{"class":580},[34,184098,1607],{"class":181},[34,184100,184101],{"class":580},"precision",[34,184103,184104],{"class":181},", scale)   ",[34,184106,184107],{"class":40},"-- Exact numeric\n",[34,184109,184110,184113,184115,184117,184119],{"class":36,"line":88},[34,184111,184112],{"class":580},"NUMERIC",[34,184114,1607],{"class":181},[34,184116,184101],{"class":580},[34,184118,184104],{"class":181},[34,184120,184107],{"class":40},[34,184122,184123,184126],{"class":36,"line":242},[34,184124,184125],{"class":580},"REAL",[34,184127,184128],{"class":40},"                        -- 4 bytes, floating point\n",[34,184130,184131,184134],{"class":36,"line":250},[34,184132,184133],{"class":580},"DOUBLE PRECISION",[34,184135,184136],{"class":40},"            -- 8 bytes, floating point\n",[34,184138,184139],{"class":36,"line":263},[34,184140,62],{"emptyLinePlaceholder":61},[34,184142,184143],{"class":36,"line":275},[34,184144,184145],{"class":40},"-- Text types\n",[34,184147,184148,184150,184153],{"class":36,"line":700},[34,184149,150410],{"class":580},[34,184151,184152],{"class":181},"(n)                     ",[34,184154,184155],{"class":40},"-- Fixed length\n",[34,184157,184158,184160,184163],{"class":36,"line":706},[34,184159,150421],{"class":580},[34,184161,184162],{"class":181},"(n)                  ",[34,184164,184165],{"class":40},"-- Variable length with limit\n",[34,184167,184168,184170],{"class":36,"line":715},[34,184169,150440],{"class":580},[34,184171,184172],{"class":40},"                        -- Unlimited length\n",[34,184174,184175],{"class":36,"line":725},[34,184176,62],{"emptyLinePlaceholder":61},[34,184178,184179],{"class":36,"line":734},[34,184180,150498],{"class":40},[34,184182,184183,184185],{"class":36,"line":742},[34,184184,150503],{"class":580},[34,184186,184187],{"class":40},"                        -- Date only\n",[34,184189,184190,184192],{"class":36,"line":748},[34,184191,150511],{"class":580},[34,184193,184194],{"class":40},"                        -- Time only\n",[34,184196,184197,184199],{"class":36,"line":754},[34,184198,150527],{"class":580},[34,184200,184201],{"class":40},"                   -- Date and time\n",[34,184203,184204,184207],{"class":36,"line":759},[34,184205,184206],{"class":580},"TIMESTAMPTZ",[34,184208,184209],{"class":40},"                 -- Timestamp with timezone\n",[34,184211,184212,184215],{"class":36,"line":771},[34,184213,184214],{"class":181},"INTERVAL                    ",[34,184216,184217],{"class":40},"-- Time interval\n",[34,184219,184220],{"class":36,"line":794},[34,184221,62],{"emptyLinePlaceholder":61},[34,184223,184224],{"class":36,"line":824},[34,184225,150547],{"class":40},[34,184227,184228,184230],{"class":36,"line":830},[34,184229,150552],{"class":580},[34,184231,184232],{"class":40},"                     -- true/false\n",[34,184234,184235,184238],{"class":36,"line":839},[34,184236,184237],{"class":181},"UUID                        ",[34,184239,184240],{"class":40},"-- Universally unique identifier\n",[34,184242,184243,184245],{"class":36,"line":854},[34,184244,14854],{"class":580},[34,184246,184247],{"class":40},"                        -- JSON data\n",[34,184249,184250,184253],{"class":36,"line":860},[34,184251,184252],{"class":181},"JSONB                       ",[34,184254,184255],{"class":40},"-- Binary JSON (indexed)\n",[34,184257,184258,184260],{"class":36,"line":865},[34,184259,183331],{"class":580},[34,184261,184262],{"class":40},"                       -- Array of any type\n",[34,184264,184265,184268],{"class":36,"line":870},[34,184266,184267],{"class":580},"BYTEA",[34,184269,184270],{"class":40},"                       -- Binary data\n",[34,184272,184273,184276],{"class":36,"line":876},[34,184274,184275],{"class":580},"INET",[34,184277,184278],{"class":40},"                        -- IP address\n",[34,184280,184281,184284],{"class":36,"line":885},[34,184282,184283],{"class":580},"CIDR",[34,184285,184286],{"class":40},"                        -- Network address\n",[34,184288,184289,184292],{"class":36,"line":895},[34,184290,184291],{"class":580},"MACADDR",[34,184293,184294],{"class":40},"                     -- MAC address\n",[388,184296,184297],{},"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 .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":30,"searchDepth":44,"depth":44,"links":184299},[184300],{"id":61422,"depth":44,"text":61423},"Data Types in PostgreSQL.",{},"/postgres/data-types",{"title":61423,"description":184301},"postgres/data-types",[183553,183555,28650,28337],"Wyj-ope2K2Q8E-BN5RHb1073dTOazS58b-uUgaFGaN0",{"id":184309,"title":150625,"body":184310,"date":402,"description":184492,"extension":404,"meta":184493,"navigation":61,"order":58,"path":184494,"seo":184495,"stem":184496,"subject":183553,"tags":184497,"__hash__":184498},"topics/postgres/database-management.md",{"type":8,"value":184311,"toc":184489},[184312,184314,184487],[11,184313,150625],{"id":150630},[25,184315,184317],{"className":28335,"code":184316,"language":28337,"meta":30,"style":30},"-- Create database\nCREATE DATABASE myapp;\nCREATE DATABASE myapp\n  WITH OWNER = myuser\n  ENCODING = 'UTF8'\n  LC_COLLATE = 'en_US.UTF-8'\n  LC_CTYPE = 'en_US.UTF-8';\n\n-- Drop database\nDROP DATABASE IF EXISTS myapp;\n\n-- Rename database\nALTER DATABASE oldname RENAME TO newname;\n\n-- Change owner\nALTER DATABASE myapp OWNER TO newowner;\n\n-- List databases\nSELECT datname FROM pg_database WHERE datistemplate = false;\n",[20,184318,184319,184323,184333,184341,184353,184363,184373,184385,184389,184393,184405,184409,184414,184430,184434,184439,184456,184460,184465],{"__ignoreMap":30},[34,184320,184321],{"class":36,"line":37},[34,184322,150640],{"class":40},[34,184324,184325,184327,184329,184331],{"class":36,"line":44},[34,184326,28349],{"class":580},[34,184328,150647],{"class":580},[34,184330,56055],{"class":47},[34,184332,593],{"class":181},[34,184334,184335,184337,184339],{"class":36,"line":58},[34,184336,28349],{"class":580},[34,184338,150647],{"class":580},[34,184340,14284],{"class":47},[34,184342,184343,184346,184349,184351],{"class":36,"line":65},[34,184344,184345],{"class":580},"  WITH",[34,184347,184348],{"class":580}," OWNER",[34,184350,683],{"class":580},[34,184352,94723],{"class":181},[34,184354,184355,184358,184360],{"class":36,"line":71},[34,184356,184357],{"class":580},"  ENCODING",[34,184359,683],{"class":580},[34,184361,184362],{"class":54}," 'UTF8'\n",[34,184364,184365,184368,184370],{"class":36,"line":77},[34,184366,184367],{"class":181},"  LC_COLLATE ",[34,184369,1301],{"class":580},[34,184371,184372],{"class":54}," 'en_US.UTF-8'\n",[34,184374,184375,184378,184380,184383],{"class":36,"line":82},[34,184376,184377],{"class":181},"  LC_CTYPE ",[34,184379,1301],{"class":580},[34,184381,184382],{"class":54}," 'en_US.UTF-8'",[34,184384,593],{"class":181},[34,184386,184387],{"class":36,"line":88},[34,184388,62],{"emptyLinePlaceholder":61},[34,184390,184391],{"class":36,"line":242},[34,184392,150701],{"class":40},[34,184394,184395,184397,184399,184401,184403],{"class":36,"line":250},[34,184396,150706],{"class":580},[34,184398,150647],{"class":580},[34,184400,150683],{"class":580},[34,184402,150689],{"class":580},[34,184404,150692],{"class":181},[34,184406,184407],{"class":36,"line":263},[34,184408,62],{"emptyLinePlaceholder":61},[34,184410,184411],{"class":36,"line":275},[34,184412,184413],{"class":40},"-- Rename database\n",[34,184415,184416,184418,184420,184423,184425,184428],{"class":36,"line":700},[34,184417,151213],{"class":580},[34,184419,150647],{"class":580},[34,184421,184422],{"class":181}," oldname RENAME ",[34,184424,154000],{"class":580},[34,184426,184427],{"class":580}," newname",[34,184429,593],{"class":181},[34,184431,184432],{"class":36,"line":706},[34,184433,62],{"emptyLinePlaceholder":61},[34,184435,184436],{"class":36,"line":715},[34,184437,184438],{"class":40},"-- Change owner\n",[34,184440,184441,184443,184445,184448,184451,184453],{"class":36,"line":725},[34,184442,151213],{"class":580},[34,184444,150647],{"class":580},[34,184446,184447],{"class":181}," myapp ",[34,184449,184450],{"class":580},"OWNER",[34,184452,154310],{"class":580},[34,184454,184455],{"class":181}," newowner;\n",[34,184457,184458],{"class":36,"line":734},[34,184459,62],{"emptyLinePlaceholder":61},[34,184461,184462],{"class":36,"line":742},[34,184463,184464],{"class":40},"-- List databases\n",[34,184466,184467,184469,184472,184474,184477,184479,184482,184484],{"class":36,"line":748},[34,184468,28529],{"class":580},[34,184470,184471],{"class":181}," datname ",[34,184473,29179],{"class":580},[34,184475,184476],{"class":181}," pg_database ",[34,184478,28604],{"class":580},[34,184480,184481],{"class":181}," datistemplate ",[34,184483,1301],{"class":580},[34,184485,184486],{"class":181}," false;\n",[388,184488,35749],{},{"title":30,"searchDepth":44,"depth":44,"links":184490},[184491],{"id":150630,"depth":44,"text":150625},"Database Management in PostgreSQL.",{},"/postgres/database-management",{"title":150625,"description":184492},"postgres/database-management",[183553,183555,28650,28337],"R7kNSCaHcXMgbVytEx4tseikaFiWJHZXEY1O2sEpMRE",{"id":184500,"title":90562,"body":184501,"date":402,"description":184801,"extension":404,"meta":184802,"navigation":61,"order":706,"path":184803,"seo":184804,"stem":184805,"subject":183553,"tags":184806,"__hash__":184807},"topics/postgres/extensions.md",{"type":8,"value":184502,"toc":184798},[184503,184505,184795],[11,184504,90562],{"id":90561},[25,184506,184508],{"className":28335,"code":184507,"language":28337,"meta":30,"style":30},"-- List available extensions\nSELECT * FROM pg_available_extensions;\n\n-- List installed extensions\nSELECT * FROM pg_extension;\n\n-- Install extension\nCREATE EXTENSION IF NOT EXISTS \"uuid-ossp\";\nCREATE EXTENSION IF NOT EXISTS \"pgcrypto\";\nCREATE EXTENSION IF NOT EXISTS \"pg_trgm\";\nCREATE EXTENSION IF NOT EXISTS \"hstore\";\n\n-- Drop extension\nDROP EXTENSION IF EXISTS \"uuid-ossp\";\n\n-- Common extensions\n-- uuid-ossp: UUID generation\nSELECT uuid_generate_v4();\n\n-- pgcrypto: Cryptographic functions\nSELECT crypt('password', gen_salt('bf'));\nSELECT encode(digest('data', 'sha256'), 'hex');\n\n-- pg_trgm: Trigram similarity\nSELECT similarity('word', 'wrod');\nCREATE INDEX idx_name_trgm ON users USING GIN(name gin_trgm_ops);\nSELECT * FROM users WHERE name % 'john';  -- Fuzzy match\n",[20,184509,184510,184515,184526,184530,184535,184546,184550,184555,184573,184590,184607,184624,184628,184633,184647,184651,184656,184661,184668,184672,184677,184694,184720,184724,184729,184746,184770],{"__ignoreMap":30},[34,184511,184512],{"class":36,"line":37},[34,184513,184514],{"class":40},"-- List available extensions\n",[34,184516,184517,184519,184521,184523],{"class":36,"line":44},[34,184518,28529],{"class":580},[34,184520,18083],{"class":580},[34,184522,28534],{"class":580},[34,184524,184525],{"class":181}," pg_available_extensions;\n",[34,184527,184528],{"class":36,"line":58},[34,184529,62],{"emptyLinePlaceholder":61},[34,184531,184532],{"class":36,"line":65},[34,184533,184534],{"class":40},"-- List installed extensions\n",[34,184536,184537,184539,184541,184543],{"class":36,"line":71},[34,184538,28529],{"class":580},[34,184540,18083],{"class":580},[34,184542,28534],{"class":580},[34,184544,184545],{"class":181}," pg_extension;\n",[34,184547,184548],{"class":36,"line":77},[34,184549,62],{"emptyLinePlaceholder":61},[34,184551,184552],{"class":36,"line":82},[34,184553,184554],{"class":40},"-- Install extension\n",[34,184556,184557,184559,184562,184564,184566,184568,184571],{"class":36,"line":88},[34,184558,28349],{"class":580},[34,184560,184561],{"class":181}," EXTENSION ",[34,184563,155445],{"class":580},[34,184565,150686],{"class":580},[34,184567,150689],{"class":580},[34,184569,184570],{"class":54}," \"uuid-ossp\"",[34,184572,593],{"class":181},[34,184574,184575,184577,184579,184581,184583,184585,184588],{"class":36,"line":242},[34,184576,28349],{"class":580},[34,184578,184561],{"class":181},[34,184580,155445],{"class":580},[34,184582,150686],{"class":580},[34,184584,150689],{"class":580},[34,184586,184587],{"class":54}," \"pgcrypto\"",[34,184589,593],{"class":181},[34,184591,184592,184594,184596,184598,184600,184602,184605],{"class":36,"line":250},[34,184593,28349],{"class":580},[34,184595,184561],{"class":181},[34,184597,155445],{"class":580},[34,184599,150686],{"class":580},[34,184601,150689],{"class":580},[34,184603,184604],{"class":54}," \"pg_trgm\"",[34,184606,593],{"class":181},[34,184608,184609,184611,184613,184615,184617,184619,184622],{"class":36,"line":263},[34,184610,28349],{"class":580},[34,184612,184561],{"class":181},[34,184614,155445],{"class":580},[34,184616,150686],{"class":580},[34,184618,150689],{"class":580},[34,184620,184621],{"class":54}," \"hstore\"",[34,184623,593],{"class":181},[34,184625,184626],{"class":36,"line":275},[34,184627,62],{"emptyLinePlaceholder":61},[34,184629,184630],{"class":36,"line":700},[34,184631,184632],{"class":40},"-- Drop extension\n",[34,184634,184635,184637,184639,184641,184643,184645],{"class":36,"line":706},[34,184636,150706],{"class":580},[34,184638,184561],{"class":181},[34,184640,155445],{"class":580},[34,184642,150689],{"class":580},[34,184644,184570],{"class":54},[34,184646,593],{"class":181},[34,184648,184649],{"class":36,"line":715},[34,184650,62],{"emptyLinePlaceholder":61},[34,184652,184653],{"class":36,"line":725},[34,184654,184655],{"class":40},"-- Common extensions\n",[34,184657,184658],{"class":36,"line":734},[34,184659,184660],{"class":40},"-- uuid-ossp: UUID generation\n",[34,184662,184663,184665],{"class":36,"line":742},[34,184664,28529],{"class":580},[34,184666,184667],{"class":181}," uuid_generate_v4();\n",[34,184669,184670],{"class":36,"line":748},[34,184671,62],{"emptyLinePlaceholder":61},[34,184673,184674],{"class":36,"line":754},[34,184675,184676],{"class":40},"-- pgcrypto: Cryptographic functions\n",[34,184678,184679,184681,184684,184686,184689,184692],{"class":36,"line":759},[34,184680,28529],{"class":580},[34,184682,184683],{"class":181}," crypt(",[34,184685,140234],{"class":54},[34,184687,184688],{"class":181},", gen_salt(",[34,184690,184691],{"class":54},"'bf'",[34,184693,15223],{"class":181},[34,184695,184696,184698,184701,184703,184705,184707,184709,184712,184715,184718],{"class":36,"line":771},[34,184697,28529],{"class":580},[34,184699,184700],{"class":181}," encode(",[34,184702,49333],{"class":580},[34,184704,1607],{"class":181},[34,184706,111983],{"class":54},[34,184708,1798],{"class":181},[34,184710,184711],{"class":54},"'sha256'",[34,184713,184714],{"class":181},"), ",[34,184716,184717],{"class":54},"'hex'",[34,184719,1586],{"class":181},[34,184721,184722],{"class":36,"line":794},[34,184723,62],{"emptyLinePlaceholder":61},[34,184725,184726],{"class":36,"line":824},[34,184727,184728],{"class":40},"-- pg_trgm: Trigram similarity\n",[34,184730,184731,184733,184736,184739,184741,184744],{"class":36,"line":830},[34,184732,28529],{"class":580},[34,184734,184735],{"class":181}," similarity(",[34,184737,184738],{"class":54},"'word'",[34,184740,1798],{"class":181},[34,184742,184743],{"class":54},"'wrod'",[34,184745,1586],{"class":181},[34,184747,184748,184750,184752,184755,184757,184759,184762,184765,184767],{"class":36,"line":839},[34,184749,28349],{"class":580},[34,184751,150242],{"class":580},[34,184753,184754],{"class":47}," idx_name_trgm",[34,184756,151147],{"class":580},[34,184758,28553],{"class":181},[34,184760,184761],{"class":580},"USING",[34,184763,184764],{"class":181}," GIN(",[34,184766,178],{"class":580},[34,184768,184769],{"class":181}," gin_trgm_ops);\n",[34,184771,184772,184774,184776,184778,184780,184782,184784,184787,184790,184792],{"class":36,"line":854},[34,184773,28529],{"class":580},[34,184775,18083],{"class":580},[34,184777,28534],{"class":580},[34,184779,28553],{"class":181},[34,184781,28604],{"class":580},[34,184783,12323],{"class":580},[34,184785,184786],{"class":181}," % ",[34,184788,184789],{"class":54},"'john'",[34,184791,124981],{"class":181},[34,184793,184794],{"class":40},"-- Fuzzy match\n",[388,184796,184797],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":184799},[184800],{"id":90561,"depth":44,"text":90562},"Extensions in PostgreSQL.",{},"/postgres/extensions",{"title":90562,"description":184801},"postgres/extensions",[183553,183555,28650,28337],"aaB7kNDzM3qNw4hfl_djyywKP3ucf7x1bA_HQ8TDPP0",{"id":184809,"title":150789,"body":184810,"date":402,"description":185209,"extension":404,"meta":185210,"navigation":61,"order":242,"path":185211,"seo":185212,"stem":185213,"subject":183553,"tags":185214,"__hash__":185215},"topics/postgres/full-text-search.md",{"type":8,"value":184811,"toc":185206},[184812,184814,185204],[11,184813,150789],{"id":150794},[25,184815,184817],{"className":28335,"code":184816,"language":28337,"meta":30,"style":30},"-- Create tsvector column\nALTER TABLE articles ADD COLUMN search_vector tsvector;\n\n-- Update search vector\nUPDATE articles \nSET search_vector = to_tsvector('english', title || ' ' || content);\n\n-- Create GIN index\nCREATE INDEX idx_articles_search ON articles USING GIN(search_vector);\n\n-- Search queries\nSELECT * FROM articles \nWHERE search_vector @@ to_tsquery('english', 'postgres & tutorial');\n\nSELECT * FROM articles \nWHERE search_vector @@ plainto_tsquery('english', 'postgres tutorial');\n\n-- Rank results\nSELECT title, ts_rank(search_vector, query) as rank\nFROM articles, to_tsquery('postgres') query\nWHERE search_vector @@ query\nORDER BY rank DESC;\n\n-- Highlight matches\nSELECT ts_headline('english', content, to_tsquery('postgres')) \nFROM articles;\n\n-- Auto-update trigger\nCREATE FUNCTION update_search_vector() RETURNS trigger AS $$\nBEGIN\n  NEW.search_vector := to_tsvector('english', NEW.title || ' ' || NEW.content);\n  RETURN NEW;\nEND;\n$$ LANGUAGE plpgsql;\n\nCREATE TRIGGER articles_search_update\n  BEFORE INSERT OR UPDATE ON articles\n  FOR EACH ROW EXECUTE FUNCTION update_search_vector();\n",[20,184818,184819,184824,184838,184842,184847,184853,184881,184885,184890,184908,184912,184917,184927,184943,184947,184957,184973,184977,184982,184994,185007,185014,185025,185029,185034,185051,185058,185062,185067,185089,185093,185133,185140,185146,185157,185161,185170,185186],{"__ignoreMap":30},[34,184820,184821],{"class":36,"line":37},[34,184822,184823],{"class":40},"-- Create tsvector column\n",[34,184825,184826,184828,184830,184833,184835],{"class":36,"line":44},[34,184827,151213],{"class":580},[34,184829,28422],{"class":580},[34,184831,184832],{"class":181}," articles ",[34,184834,151220],{"class":580},[34,184836,184837],{"class":181}," COLUMN search_vector tsvector;\n",[34,184839,184840],{"class":36,"line":58},[34,184841,62],{"emptyLinePlaceholder":61},[34,184843,184844],{"class":36,"line":65},[34,184845,184846],{"class":40},"-- Update search vector\n",[34,184848,184849,184851],{"class":36,"line":71},[34,184850,28550],{"class":580},[34,184852,150916],{"class":181},[34,184854,184855,184857,184860,184862,184865,184868,184871,184873,184876,184878],{"class":36,"line":77},[34,184856,28556],{"class":580},[34,184858,184859],{"class":181}," search_vector ",[34,184861,1301],{"class":580},[34,184863,184864],{"class":181}," to_tsvector(",[34,184866,184867],{"class":54},"'english'",[34,184869,184870],{"class":181},", title ",[34,184872,10892],{"class":580},[34,184874,184875],{"class":54}," ' '",[34,184877,21168],{"class":580},[34,184879,184880],{"class":181}," content);\n",[34,184882,184883],{"class":36,"line":82},[34,184884,62],{"emptyLinePlaceholder":61},[34,184886,184887],{"class":36,"line":88},[34,184888,184889],{"class":40},"-- Create GIN index\n",[34,184891,184892,184894,184896,184899,184901,184903,184905],{"class":36,"line":242},[34,184893,28349],{"class":580},[34,184895,150242],{"class":580},[34,184897,184898],{"class":47}," idx_articles_search",[34,184900,151147],{"class":580},[34,184902,184832],{"class":181},[34,184904,184761],{"class":580},[34,184906,184907],{"class":181}," GIN(search_vector);\n",[34,184909,184910],{"class":36,"line":250},[34,184911,62],{"emptyLinePlaceholder":61},[34,184913,184914],{"class":36,"line":263},[34,184915,184916],{"class":40},"-- Search queries\n",[34,184918,184919,184921,184923,184925],{"class":36,"line":275},[34,184920,28529],{"class":580},[34,184922,18083],{"class":580},[34,184924,28534],{"class":580},[34,184926,150916],{"class":181},[34,184928,184929,184931,184934,184936,184938,184941],{"class":36,"line":700},[34,184930,28604],{"class":580},[34,184932,184933],{"class":181}," search_vector @@ to_tsquery(",[34,184935,184867],{"class":54},[34,184937,1798],{"class":181},[34,184939,184940],{"class":54},"'postgres & tutorial'",[34,184942,1586],{"class":181},[34,184944,184945],{"class":36,"line":706},[34,184946,62],{"emptyLinePlaceholder":61},[34,184948,184949,184951,184953,184955],{"class":36,"line":715},[34,184950,28529],{"class":580},[34,184952,18083],{"class":580},[34,184954,28534],{"class":580},[34,184956,150916],{"class":181},[34,184958,184959,184961,184964,184966,184968,184971],{"class":36,"line":725},[34,184960,28604],{"class":580},[34,184962,184963],{"class":181}," search_vector @@ plainto_tsquery(",[34,184965,184867],{"class":54},[34,184967,1798],{"class":181},[34,184969,184970],{"class":54},"'postgres tutorial'",[34,184972,1586],{"class":181},[34,184974,184975],{"class":36,"line":734},[34,184976,62],{"emptyLinePlaceholder":61},[34,184978,184979],{"class":36,"line":742},[34,184980,184981],{"class":40},"-- Rank results\n",[34,184983,184984,184986,184989,184991],{"class":36,"line":748},[34,184985,28529],{"class":580},[34,184987,184988],{"class":181}," title, ts_rank(search_vector, query) ",[34,184990,74548],{"class":580},[34,184992,184993],{"class":181}," rank\n",[34,184995,184996,184998,185001,185004],{"class":36,"line":754},[34,184997,29179],{"class":580},[34,184999,185000],{"class":181}," articles, to_tsquery(",[34,185002,185003],{"class":54},"'postgres'",[34,185005,185006],{"class":181},") query\n",[34,185008,185009,185011],{"class":36,"line":759},[34,185010,28604],{"class":580},[34,185012,185013],{"class":181}," search_vector @@ query\n",[34,185015,185016,185018,185021,185023],{"class":36,"line":771},[34,185017,29069],{"class":580},[34,185019,185020],{"class":181}," rank ",[34,185022,151070],{"class":580},[34,185024,593],{"class":181},[34,185026,185027],{"class":36,"line":794},[34,185028,62],{"emptyLinePlaceholder":61},[34,185030,185031],{"class":36,"line":824},[34,185032,185033],{"class":40},"-- Highlight matches\n",[34,185035,185036,185038,185041,185043,185046,185048],{"class":36,"line":830},[34,185037,28529],{"class":580},[34,185039,185040],{"class":181}," ts_headline(",[34,185042,184867],{"class":54},[34,185044,185045],{"class":181},", content, to_tsquery(",[34,185047,185003],{"class":54},[34,185049,185050],{"class":181},")) \n",[34,185052,185053,185055],{"class":36,"line":839},[34,185054,29179],{"class":580},[34,185056,185057],{"class":181}," articles;\n",[34,185059,185060],{"class":36,"line":854},[34,185061,62],{"emptyLinePlaceholder":61},[34,185063,185064],{"class":36,"line":860},[34,185065,185066],{"class":40},"-- Auto-update trigger\n",[34,185068,185069,185071,185073,185076,185078,185080,185083,185086],{"class":36,"line":865},[34,185070,28349],{"class":580},[34,185072,153414],{"class":580},[34,185074,185075],{"class":47}," update_search_vector",[34,185077,672],{"class":181},[34,185079,153437],{"class":580},[34,185081,185082],{"class":181}," trigger ",[34,185084,185085],{"class":580},"AS",[34,185087,185088],{"class":181}," $$\n",[34,185090,185091],{"class":36,"line":870},[34,185092,153221],{"class":580},[34,185094,185095,185098,185100,185103,185105,185107,185109,185111,185113,185115,185117,185119,185121,185123,185125,185127,185129,185131],{"class":36,"line":876},[34,185096,185097],{"class":50},"  NEW",[34,185099,151],{"class":181},[34,185101,185102],{"class":50},"search_vector",[34,185104,64223],{"class":181},[34,185106,1301],{"class":580},[34,185108,184864],{"class":181},[34,185110,184867],{"class":54},[34,185112,1798],{"class":181},[34,185114,154669],{"class":50},[34,185116,151],{"class":181},[34,185118,953],{"class":50},[34,185120,21168],{"class":580},[34,185122,184875],{"class":54},[34,185124,21168],{"class":580},[34,185126,154638],{"class":50},[34,185128,151],{"class":181},[34,185130,41645],{"class":50},[34,185132,1586],{"class":181},[34,185134,185135,185137],{"class":36,"line":885},[34,185136,153464],{"class":580},[34,185138,185139],{"class":181}," NEW;\n",[34,185141,185142,185144],{"class":36,"line":895},[34,185143,153252],{"class":580},[34,185145,593],{"class":181},[34,185147,185148,185151,185154],{"class":36,"line":904},[34,185149,185150],{"class":181},"$$ ",[34,185152,185153],{"class":580},"LANGUAGE",[34,185155,185156],{"class":181}," plpgsql;\n",[34,185158,185159],{"class":36,"line":915},[34,185160,62],{"emptyLinePlaceholder":61},[34,185162,185163,185165,185167],{"class":36,"line":927},[34,185164,28349],{"class":580},[34,185166,154599],{"class":580},[34,185168,185169],{"class":47}," articles_search_update\n",[34,185171,185172,185175,185177,185180,185182,185184],{"class":36,"line":932},[34,185173,185174],{"class":580},"  BEFORE",[34,185176,154610],{"class":580},[34,185178,185179],{"class":580}," OR",[34,185181,154450],{"class":580},[34,185183,151147],{"class":580},[34,185185,151048],{"class":181},[34,185187,185188,185191,185193,185196,185199,185201],{"class":36,"line":944},[34,185189,185190],{"class":580},"  FOR",[34,185192,154623],{"class":181},[34,185194,185195],{"class":580},"ROW",[34,185197,185198],{"class":580}," EXECUTE",[34,185200,153414],{"class":580},[34,185202,185203],{"class":181}," update_search_vector();\n",[388,185205,17522],{},{"title":30,"searchDepth":44,"depth":44,"links":185207},[185208],{"id":150794,"depth":44,"text":150789},"Full Text Search in PostgreSQL.",{},"/postgres/full-text-search",{"title":150789,"description":185209},"postgres/full-text-search",[183553,183555,28650,28337],"GE6w1IumaNowGC_U7qoXkjmDt5fOmEVyMvCUjpoST7w",{"id":185217,"title":84674,"body":185218,"date":402,"description":185507,"extension":404,"meta":185508,"navigation":61,"order":250,"path":185509,"seo":185510,"stem":185511,"subject":183553,"tags":185512,"__hash__":185513},"topics/postgres/indexes.md",{"type":8,"value":185219,"toc":185504},[185220,185222,185502],[11,185221,84674],{"id":84673},[25,185223,185225],{"className":28335,"code":185224,"language":28337,"meta":30,"style":30},"-- B-tree (default, for equality and range)\nCREATE INDEX idx_users_email ON users(email);\n\n-- Hash (for equality only)\nCREATE INDEX idx_users_email_hash ON users USING HASH(email);\n\n-- GIN (for arrays, JSONB, full-text)\nCREATE INDEX idx_posts_tags ON posts USING GIN(tags);\n\n-- GiST (for geometric, full-text, range)\nCREATE INDEX idx_locations ON places USING GIST(location);\n\n-- BRIN (for large sorted tables)\nCREATE INDEX idx_logs_created ON logs USING BRIN(created_at);\n\n-- Partial index\nCREATE INDEX idx_active_users ON users(email) WHERE active = true;\n\n-- Expression index\nCREATE INDEX idx_users_lower_email ON users(LOWER(email));\n\n-- Covering index (INCLUDE)\nCREATE INDEX idx_users_email_include ON users(email) INCLUDE (name, created_at);\n\n-- Concurrent index (no table lock)\nCREATE INDEX CONCURRENTLY idx_users_email ON users(email);\n\n-- Reindex\nREINDEX INDEX idx_users_email;\nREINDEX TABLE users;\n",[20,185226,185227,185232,185244,185248,185253,185273,185277,185282,185300,185304,185309,185333,185337,185342,185360,185364,185369,185393,185397,185402,185420,185424,185429,185452,185456,185461,185476,185480,185485,185494],{"__ignoreMap":30},[34,185228,185229],{"class":36,"line":37},[34,185230,185231],{"class":40},"-- B-tree (default, for equality and range)\n",[34,185233,185234,185236,185238,185240,185242],{"class":36,"line":44},[34,185235,28349],{"class":580},[34,185237,150242],{"class":580},[34,185239,151144],{"class":47},[34,185241,151147],{"class":580},[34,185243,151150],{"class":181},[34,185245,185246],{"class":36,"line":58},[34,185247,62],{"emptyLinePlaceholder":61},[34,185249,185250],{"class":36,"line":65},[34,185251,185252],{"class":40},"-- Hash (for equality only)\n",[34,185254,185255,185257,185259,185262,185264,185266,185268,185271],{"class":36,"line":71},[34,185256,28349],{"class":580},[34,185258,150242],{"class":580},[34,185260,185261],{"class":47}," idx_users_email_hash",[34,185263,151147],{"class":580},[34,185265,28553],{"class":181},[34,185267,184761],{"class":580},[34,185269,185270],{"class":580}," HASH",[34,185272,151596],{"class":181},[34,185274,185275],{"class":36,"line":77},[34,185276,62],{"emptyLinePlaceholder":61},[34,185278,185279],{"class":36,"line":82},[34,185280,185281],{"class":40},"-- GIN (for arrays, JSONB, full-text)\n",[34,185283,185284,185286,185288,185291,185293,185295,185297],{"class":36,"line":88},[34,185285,28349],{"class":580},[34,185287,150242],{"class":580},[34,185289,185290],{"class":47}," idx_posts_tags",[34,185292,151147],{"class":580},[34,185294,183368],{"class":181},[34,185296,184761],{"class":580},[34,185298,185299],{"class":181}," GIN(tags);\n",[34,185301,185302],{"class":36,"line":242},[34,185303,62],{"emptyLinePlaceholder":61},[34,185305,185306],{"class":36,"line":250},[34,185307,185308],{"class":40},"-- GiST (for geometric, full-text, range)\n",[34,185310,185311,185313,185315,185318,185320,185323,185325,185328,185331],{"class":36,"line":263},[34,185312,28349],{"class":580},[34,185314,150242],{"class":580},[34,185316,185317],{"class":47}," idx_locations",[34,185319,151147],{"class":580},[34,185321,185322],{"class":181}," places ",[34,185324,184761],{"class":580},[34,185326,185327],{"class":181}," GIST(",[34,185329,185330],{"class":580},"location",[34,185332,1586],{"class":181},[34,185334,185335],{"class":36,"line":275},[34,185336,62],{"emptyLinePlaceholder":61},[34,185338,185339],{"class":36,"line":700},[34,185340,185341],{"class":40},"-- BRIN (for large sorted tables)\n",[34,185343,185344,185346,185348,185351,185353,185355,185357],{"class":36,"line":706},[34,185345,28349],{"class":580},[34,185347,150242],{"class":580},[34,185349,185350],{"class":47}," idx_logs_created",[34,185352,151147],{"class":580},[34,185354,152007],{"class":181},[34,185356,184761],{"class":580},[34,185358,185359],{"class":181}," BRIN(created_at);\n",[34,185361,185362],{"class":36,"line":715},[34,185363,62],{"emptyLinePlaceholder":61},[34,185365,185366],{"class":36,"line":725},[34,185367,185368],{"class":40},"-- Partial index\n",[34,185370,185371,185373,185375,185378,185380,185383,185385,185388,185390],{"class":36,"line":734},[34,185372,28349],{"class":580},[34,185374,150242],{"class":580},[34,185376,185377],{"class":47}," idx_active_users",[34,185379,151147],{"class":580},[34,185381,185382],{"class":181}," users(email) ",[34,185384,28604],{"class":580},[34,185386,185387],{"class":181}," active ",[34,185389,1301],{"class":580},[34,185391,185392],{"class":181}," true;\n",[34,185394,185395],{"class":36,"line":742},[34,185396,62],{"emptyLinePlaceholder":61},[34,185398,185399],{"class":36,"line":748},[34,185400,185401],{"class":40},"-- Expression index\n",[34,185403,185404,185406,185408,185411,185413,185415,185417],{"class":36,"line":754},[34,185405,28349],{"class":580},[34,185407,150242],{"class":580},[34,185409,185410],{"class":47}," idx_users_lower_email",[34,185412,151147],{"class":580},[34,185414,151164],{"class":181},[34,185416,154965],{"class":50},[34,185418,185419],{"class":181},"(email));\n",[34,185421,185422],{"class":36,"line":759},[34,185423,62],{"emptyLinePlaceholder":61},[34,185425,185426],{"class":36,"line":771},[34,185427,185428],{"class":40},"-- Covering index (INCLUDE)\n",[34,185430,185431,185433,185435,185438,185440,185442,185445,185447,185449],{"class":36,"line":794},[34,185432,28349],{"class":580},[34,185434,150242],{"class":580},[34,185436,185437],{"class":47}," idx_users_email_include",[34,185439,151147],{"class":580},[34,185441,185382],{"class":181},[34,185443,185444],{"class":580},"INCLUDE",[34,185446,3204],{"class":181},[34,185448,178],{"class":580},[34,185450,185451],{"class":181},", created_at);\n",[34,185453,185454],{"class":36,"line":824},[34,185455,62],{"emptyLinePlaceholder":61},[34,185457,185458],{"class":36,"line":830},[34,185459,185460],{"class":40},"-- Concurrent index (no table lock)\n",[34,185462,185463,185465,185467,185470,185472,185474],{"class":36,"line":839},[34,185464,28349],{"class":580},[34,185466,150242],{"class":580},[34,185468,185469],{"class":47}," CONCURRENTLY",[34,185471,151244],{"class":181},[34,185473,150819],{"class":580},[34,185475,151150],{"class":181},[34,185477,185478],{"class":36,"line":854},[34,185479,62],{"emptyLinePlaceholder":61},[34,185481,185482],{"class":36,"line":860},[34,185483,185484],{"class":40},"-- Reindex\n",[34,185486,185487,185490,185492],{"class":36,"line":865},[34,185488,185489],{"class":181},"REINDEX ",[34,185491,151280],{"class":580},[34,185493,151263],{"class":181},[34,185495,185496,185498,185500],{"class":36,"line":870},[34,185497,185489],{"class":181},[34,185499,152826],{"class":580},[34,185501,4114],{"class":181},[388,185503,35226],{},{"title":30,"searchDepth":44,"depth":44,"links":185505},[185506],{"id":84673,"depth":44,"text":84674},"Indexes in PostgreSQL.",{},"/postgres/indexes",{"title":84674,"description":185507},"postgres/indexes",[183553,183555,28650,28337],"jUs8sx-nHMnrOFLJQPEOCGPRtw2y7azhvVsNDGdgoCI",{"id":185515,"title":185516,"body":185517,"date":402,"description":185967,"extension":404,"meta":185968,"navigation":61,"order":82,"path":185969,"seo":185970,"stem":185971,"subject":183553,"tags":185972,"__hash__":185973},"topics/postgres/jsonb-operations.md","JSONB Operations",{"type":8,"value":185518,"toc":185964},[185519,185522,185962],[11,185520,185516],{"id":185521},"jsonb-operations",[25,185523,185525],{"className":28335,"code":185524,"language":28337,"meta":30,"style":30},"-- Create table with JSONB\nCREATE TABLE products (\n  id SERIAL PRIMARY KEY,\n  name VARCHAR(100),\n  attributes JSONB\n);\n\n-- Insert JSON data\nINSERT INTO products (name, attributes) VALUES \n  ('Laptop', '{\"brand\": \"Dell\", \"ram\": 16, \"tags\": [\"electronics\", \"computers\"]}');\n\n-- Query JSON fields\nSELECT attributes->>'brand' FROM products;           -- Get as text\nSELECT attributes->'ram' FROM products;              -- Get as JSON\nSELECT attributes#>>'{tags,0}' FROM products;        -- Nested path as text\nSELECT attributes @> '{\"brand\": \"Dell\"}' FROM products; -- Contains\n\n-- JSONB operators\n->                  -- Get JSON object field by key\n->>                 -- Get JSON object field as text\n#>                  -- Get JSON object at path\n#>>                 -- Get JSON object at path as text\n@>                  -- Contains\n\u003C@                  -- Contained by\n?                   -- Key exists\n?|                  -- Any key exists\n?&                  -- All keys exist\n||                  -- Concatenate\n\n-- Update JSONB\nUPDATE products \nSET attributes = attributes || '{\"color\": \"silver\"}'\nWHERE id = 1;\n\nUPDATE products \nSET attributes = jsonb_set(attributes, '{ram}', '32')\nWHERE id = 1;\n\n-- Remove key from JSONB\nUPDATE products \nSET attributes = attributes - 'color'\nWHERE id = 1;\n\n-- JSONB index\nCREATE INDEX idx_products_attributes ON products USING GIN (attributes);\nCREATE INDEX idx_products_brand ON products USING BTREE ((attributes->>'brand'));\n",[20,185526,185527,185532,185542,185552,185564,185569,185573,185577,185581,185595,185607,185611,185615,185634,185653,185672,185692,185696,185701,185708,185715,185724,185733,185742,185752,185760,185768,185776,185783,185787,185792,185798,185813,185825,185829,185835,185856,185868,185872,185877,185883,185898,185910,185914,185919,185938],{"__ignoreMap":30},[34,185528,185529],{"class":36,"line":37},[34,185530,185531],{"class":40},"-- Create table with JSONB\n",[34,185533,185534,185536,185538,185540],{"class":36,"line":44},[34,185535,28349],{"class":580},[34,185537,28422],{"class":580},[34,185539,152060],{"class":47},[34,185541,13975],{"class":181},[34,185543,185544,185546,185548,185550],{"class":36,"line":58},[34,185545,150847],{"class":181},[34,185547,183269],{"class":580},[34,185549,151223],{"class":580},[34,185551,624],{"class":181},[34,185553,185554,185556,185558,185560,185562],{"class":36,"line":65},[34,185555,7350],{"class":580},[34,185557,152081],{"class":580},[34,185559,1607],{"class":181},[34,185561,20863],{"class":50},[34,185563,50836],{"class":181},[34,185565,185566],{"class":36,"line":71},[34,185567,185568],{"class":181},"  attributes JSONB\n",[34,185570,185571],{"class":36,"line":77},[34,185572,1586],{"class":181},[34,185574,185575],{"class":36,"line":82},[34,185576,62],{"emptyLinePlaceholder":61},[34,185578,185579],{"class":36,"line":88},[34,185580,152108],{"class":40},[34,185582,185583,185585,185587,185589,185591,185593],{"class":36,"line":242},[34,185584,28487],{"class":580},[34,185586,152115],{"class":181},[34,185588,178],{"class":580},[34,185590,152120],{"class":181},[34,185592,28498],{"class":580},[34,185594,526],{"class":181},[34,185596,185597,185599,185601,185603,185605],{"class":36,"line":250},[34,185598,151460],{"class":181},[34,185600,152131],{"class":54},[34,185602,1798],{"class":181},[34,185604,152136],{"class":54},[34,185606,1586],{"class":181},[34,185608,185609],{"class":36,"line":263},[34,185610,62],{"emptyLinePlaceholder":61},[34,185612,185613],{"class":36,"line":275},[34,185614,152147],{"class":40},[34,185616,185617,185619,185621,185623,185626,185628,185631],{"class":36,"line":700},[34,185618,28529],{"class":580},[34,185620,152171],{"class":181},[34,185622,152192],{"class":580},[34,185624,185625],{"class":54},"'brand'",[34,185627,28534],{"class":580},[34,185629,185630],{"class":181}," products;           ",[34,185632,185633],{"class":40},"-- Get as text\n",[34,185635,185636,185638,185640,185642,185645,185647,185650],{"class":36,"line":706},[34,185637,28529],{"class":580},[34,185639,152171],{"class":181},[34,185641,24863],{"class":580},[34,185643,185644],{"class":54},"'ram'",[34,185646,28534],{"class":580},[34,185648,185649],{"class":181}," products;              ",[34,185651,185652],{"class":40},"-- Get as JSON\n",[34,185654,185655,185657,185660,185662,185665,185667,185669],{"class":36,"line":715},[34,185656,28529],{"class":580},[34,185658,185659],{"class":181}," attributes#",[34,185661,23036],{"class":580},[34,185663,185664],{"class":54},"'{tags,0}'",[34,185666,28534],{"class":580},[34,185668,152180],{"class":181},[34,185670,185671],{"class":40},"-- Nested path as text\n",[34,185673,185674,185676,185679,185681,185684,185686,185689],{"class":36,"line":725},[34,185675,28529],{"class":580},[34,185677,185678],{"class":181}," attributes @",[34,185680,5691],{"class":580},[34,185682,185683],{"class":54}," '{\"brand\": \"Dell\"}'",[34,185685,28534],{"class":580},[34,185687,185688],{"class":181}," products; ",[34,185690,185691],{"class":40},"-- Contains\n",[34,185693,185694],{"class":36,"line":734},[34,185695,62],{"emptyLinePlaceholder":61},[34,185697,185698],{"class":36,"line":742},[34,185699,185700],{"class":40},"-- JSONB operators\n",[34,185702,185703,185705],{"class":36,"line":748},[34,185704,24863],{"class":580},[34,185706,185707],{"class":40},"                  -- Get JSON object field by key\n",[34,185709,185710,185712],{"class":36,"line":754},[34,185711,152192],{"class":580},[34,185713,185714],{"class":40},"                 -- Get JSON object field as text\n",[34,185716,185717,185719,185721],{"class":36,"line":759},[34,185718,10151],{"class":181},[34,185720,5691],{"class":580},[34,185722,185723],{"class":40},"                  -- Get JSON object at path\n",[34,185725,185726,185728,185730],{"class":36,"line":771},[34,185727,10151],{"class":181},[34,185729,23036],{"class":580},[34,185731,185732],{"class":40},"                 -- Get JSON object at path as text\n",[34,185734,185735,185737,185739],{"class":36,"line":794},[34,185736,607],{"class":181},[34,185738,5691],{"class":580},[34,185740,185741],{"class":40},"                  -- Contains\n",[34,185743,185744,185746,185749],{"class":36,"line":824},[34,185745,815],{"class":580},[34,185747,185748],{"class":181},"@                  ",[34,185750,185751],{"class":40},"-- Contained by\n",[34,185753,185754,185757],{"class":36,"line":830},[34,185755,185756],{"class":181},"?                   ",[34,185758,185759],{"class":40},"-- Key exists\n",[34,185761,185762,185765],{"class":36,"line":839},[34,185763,185764],{"class":181},"?|                  ",[34,185766,185767],{"class":40},"-- Any key exists\n",[34,185769,185770,185773],{"class":36,"line":854},[34,185771,185772],{"class":181},"?&                  ",[34,185774,185775],{"class":40},"-- All keys exist\n",[34,185777,185778,185780],{"class":36,"line":860},[34,185779,10892],{"class":580},[34,185781,185782],{"class":40},"                  -- Concatenate\n",[34,185784,185785],{"class":36,"line":865},[34,185786,62],{"emptyLinePlaceholder":61},[34,185788,185789],{"class":36,"line":870},[34,185790,185791],{"class":40},"-- Update JSONB\n",[34,185793,185794,185796],{"class":36,"line":876},[34,185795,28550],{"class":580},[34,185797,152401],{"class":181},[34,185799,185800,185802,185804,185806,185808,185810],{"class":36,"line":885},[34,185801,28556],{"class":580},[34,185803,152408],{"class":181},[34,185805,1301],{"class":580},[34,185807,152408],{"class":181},[34,185809,10892],{"class":580},[34,185811,185812],{"class":54}," '{\"color\": \"silver\"}'\n",[34,185814,185815,185817,185819,185821,185823],{"class":36,"line":895},[34,185816,28604],{"class":580},[34,185818,28568],{"class":181},[34,185820,1301],{"class":580},[34,185822,3567],{"class":50},[34,185824,593],{"class":181},[34,185826,185827],{"class":36,"line":904},[34,185828,62],{"emptyLinePlaceholder":61},[34,185830,185831,185833],{"class":36,"line":915},[34,185832,28550],{"class":580},[34,185834,152401],{"class":181},[34,185836,185837,185839,185841,185843,185846,185849,185851,185854],{"class":36,"line":927},[34,185838,28556],{"class":580},[34,185840,152408],{"class":181},[34,185842,1301],{"class":580},[34,185844,185845],{"class":181}," jsonb_set(attributes, ",[34,185847,185848],{"class":54},"'{ram}'",[34,185850,1798],{"class":181},[34,185852,185853],{"class":54},"'32'",[34,185855,3372],{"class":181},[34,185857,185858,185860,185862,185864,185866],{"class":36,"line":932},[34,185859,28604],{"class":580},[34,185861,28568],{"class":181},[34,185863,1301],{"class":580},[34,185865,3567],{"class":50},[34,185867,593],{"class":181},[34,185869,185870],{"class":36,"line":944},[34,185871,62],{"emptyLinePlaceholder":61},[34,185873,185874],{"class":36,"line":966},[34,185875,185876],{"class":40},"-- Remove key from JSONB\n",[34,185878,185879,185881],{"class":36,"line":1948},[34,185880,28550],{"class":580},[34,185882,152401],{"class":181},[34,185884,185885,185887,185889,185891,185893,185895],{"class":36,"line":1953},[34,185886,28556],{"class":580},[34,185888,152408],{"class":181},[34,185890,1301],{"class":580},[34,185892,152408],{"class":181},[34,185894,22062],{"class":580},[34,185896,185897],{"class":54}," 'color'\n",[34,185899,185900,185902,185904,185906,185908],{"class":36,"line":3616},[34,185901,28604],{"class":580},[34,185903,28568],{"class":181},[34,185905,1301],{"class":580},[34,185907,3567],{"class":50},[34,185909,593],{"class":181},[34,185911,185912],{"class":36,"line":3622},[34,185913,62],{"emptyLinePlaceholder":61},[34,185915,185916],{"class":36,"line":3642},[34,185917,185918],{"class":40},"-- JSONB index\n",[34,185920,185921,185923,185925,185928,185930,185933,185935],{"class":36,"line":3657},[34,185922,28349],{"class":580},[34,185924,150242],{"class":580},[34,185926,185927],{"class":47}," idx_products_attributes",[34,185929,151147],{"class":580},[34,185931,185932],{"class":181}," products ",[34,185934,184761],{"class":580},[34,185936,185937],{"class":181}," GIN (attributes);\n",[34,185939,185940,185942,185944,185947,185949,185951,185953,185956,185958,185960],{"class":36,"line":3663},[34,185941,28349],{"class":580},[34,185943,150242],{"class":580},[34,185945,185946],{"class":47}," idx_products_brand",[34,185948,151147],{"class":580},[34,185950,185932],{"class":181},[34,185952,184761],{"class":580},[34,185954,185955],{"class":181}," BTREE ((attributes",[34,185957,152192],{"class":580},[34,185959,185625],{"class":54},[34,185961,15223],{"class":181},[388,185963,49910],{},{"title":30,"searchDepth":44,"depth":44,"links":185965},[185966],{"id":185521,"depth":44,"text":185516},"JSONB Operations in PostgreSQL.",{},"/postgres/jsonb-operations",{"title":185516,"description":185967},"postgres/jsonb-operations",[183553,183555,28650,28337],"yTN2SzXvqz2vkF18ufVhixFlE4yWLYnsCD0PAQKALDo",{"id":185975,"title":185976,"body":185977,"date":2633,"description":186046,"extension":404,"meta":186047,"navigation":61,"order":37,"path":186048,"seo":186049,"stem":186050,"subject":183553,"tags":186051,"__hash__":186052},"topics/postgres/overview.md","PostgreSQL",{"type":8,"value":185978,"toc":186044},[185979],[309,185980,185981,185985,185989,185995,186001,186005,186009,186013,186017,186021,186026,186031,186035,186039],{},[312,185982,185983],{},[145,185984,183844],{"href":184036},[312,185986,185987],{},[145,185988,150625],{"href":184494},[312,185990,185991],{},[145,185992,185994],{"href":185993},"/postgres/user-role-management","User & Role Management",[312,185996,185997],{},[145,185998,186000],{"href":185999},"/postgres/schema-management","Schema Management",[312,186002,186003],{},[145,186004,61423],{"href":184303},[312,186006,186007],{},[145,186008,185516],{"href":185969},[312,186010,186011],{},[145,186012,183237],{"href":183550},[312,186014,186015],{},[145,186016,150789],{"href":185211},[312,186018,186019],{},[145,186020,84674],{"href":185509},[312,186022,186023],{},[145,186024,152668],{"href":186025},"/postgres/transactions-locking",[312,186027,186028],{},[145,186029,152674],{"href":186030},"/postgres/performance-explain",[312,186032,186033],{},[145,186034,149765],{"href":183837},[312,186036,186037],{},[145,186038,90562],{"href":184803},[312,186040,186041],{},[145,186042,152707],{"href":186043},"/postgres/useful-queries",{"title":30,"searchDepth":44,"depth":44,"links":186045},[],"PostgreSQL-specific commands, features, and administration.",{},"/postgres/overview",{"title":185976,"description":186046},"postgres/overview",[183553,183555,28650,28337],"6KAT5S9c0PDZTtM89SOOngpz9d4O48zpmN97sEAFXk0",{"id":186054,"title":152674,"body":186055,"date":402,"description":186348,"extension":404,"meta":186349,"navigation":61,"order":275,"path":186030,"seo":186350,"stem":186351,"subject":183553,"tags":186352,"__hash__":186353},"topics/postgres/performance-explain.md",{"type":8,"value":186056,"toc":186345},[186057,186059,186342],[11,186058,152674],{"id":152723},[25,186060,186062],{"className":28335,"code":186061,"language":28337,"meta":30,"style":30},"-- Explain query plan\nEXPLAIN SELECT * FROM users WHERE email = 'test@example.com';\nEXPLAIN ANALYZE SELECT * FROM users WHERE email = 'test@example.com';\nEXPLAIN (ANALYZE, BUFFERS, FORMAT JSON) SELECT * FROM users;\n\n-- Table statistics\nANALYZE users;\n\n-- Vacuum (cleanup dead rows)\nVACUUM users;\nVACUUM FULL users;\nVACUUM ANALYZE users;\n\n-- Table size\nSELECT pg_size_pretty(pg_total_relation_size('users'));\nSELECT pg_size_pretty(pg_table_size('users'));\nSELECT pg_size_pretty(pg_indexes_size('users'));\n\n-- Database size\nSELECT pg_size_pretty(pg_database_size('myapp'));\n\n-- Active queries\nSELECT pid, query, state, query_start\nFROM pg_stat_activity\nWHERE state = 'active';\n\n-- Kill query\nSELECT pg_cancel_backend(pid);    -- Graceful\nSELECT pg_terminate_backend(pid); -- Force\n\n-- Table statistics\nSELECT relname, n_live_tup, n_dead_tup, last_vacuum, last_analyze\nFROM pg_stat_user_tables;\n\n-- Index usage\nSELECT indexrelname, idx_scan, idx_tup_read, idx_tup_fetch\nFROM pg_stat_user_indexes;\n",[20,186063,186064,186068,186090,186112,186129,186133,186138,186143,186147,186152,186157,186162,186167,186171,186175,186186,186197,186208,186212,186216,186228,186232,186237,186249,186256,186269,186273,186277,186287,186297,186301,186305,186312,186319,186323,186328,186335],{"__ignoreMap":30},[34,186065,186066],{"class":36,"line":37},[34,186067,152733],{"class":40},[34,186069,186070,186072,186074,186076,186078,186080,186082,186084,186086,186088],{"class":36,"line":44},[34,186071,152738],{"class":181},[34,186073,28529],{"class":580},[34,186075,18083],{"class":580},[34,186077,28534],{"class":580},[34,186079,28553],{"class":181},[34,186081,28604],{"class":580},[34,186083,151315],{"class":181},[34,186085,1301],{"class":580},[34,186087,151320],{"class":54},[34,186089,593],{"class":181},[34,186091,186092,186094,186096,186098,186100,186102,186104,186106,186108,186110],{"class":36,"line":58},[34,186093,152761],{"class":181},[34,186095,28529],{"class":580},[34,186097,18083],{"class":580},[34,186099,28534],{"class":580},[34,186101,28553],{"class":181},[34,186103,28604],{"class":580},[34,186105,151315],{"class":181},[34,186107,1301],{"class":580},[34,186109,151320],{"class":54},[34,186111,593],{"class":181},[34,186113,186114,186117,186119,186121,186123,186125,186127],{"class":36,"line":65},[34,186115,186116],{"class":181},"EXPLAIN (ANALYZE, BUFFERS, FORMAT ",[34,186118,14854],{"class":580},[34,186120,4817],{"class":181},[34,186122,28529],{"class":580},[34,186124,18083],{"class":580},[34,186126,28534],{"class":580},[34,186128,4114],{"class":181},[34,186130,186131],{"class":36,"line":71},[34,186132,62],{"emptyLinePlaceholder":61},[34,186134,186135],{"class":36,"line":77},[34,186136,186137],{"class":40},"-- Table statistics\n",[34,186139,186140],{"class":36,"line":82},[34,186141,186142],{"class":181},"ANALYZE users;\n",[34,186144,186145],{"class":36,"line":88},[34,186146,62],{"emptyLinePlaceholder":61},[34,186148,186149],{"class":36,"line":242},[34,186150,186151],{"class":40},"-- Vacuum (cleanup dead rows)\n",[34,186153,186154],{"class":36,"line":250},[34,186155,186156],{"class":181},"VACUUM users;\n",[34,186158,186159],{"class":36,"line":263},[34,186160,186161],{"class":181},"VACUUM FULL users;\n",[34,186163,186164],{"class":36,"line":275},[34,186165,186166],{"class":181},"VACUUM ANALYZE users;\n",[34,186168,186169],{"class":36,"line":700},[34,186170,62],{"emptyLinePlaceholder":61},[34,186172,186173],{"class":36,"line":706},[34,186174,152891],{"class":40},[34,186176,186177,186179,186182,186184],{"class":36,"line":715},[34,186178,28529],{"class":580},[34,186180,186181],{"class":181}," pg_size_pretty(pg_total_relation_size(",[34,186183,71301],{"class":54},[34,186185,15223],{"class":181},[34,186187,186188,186190,186193,186195],{"class":36,"line":725},[34,186189,28529],{"class":580},[34,186191,186192],{"class":181}," pg_size_pretty(pg_table_size(",[34,186194,71301],{"class":54},[34,186196,15223],{"class":181},[34,186198,186199,186201,186204,186206],{"class":36,"line":734},[34,186200,28529],{"class":580},[34,186202,186203],{"class":181}," pg_size_pretty(pg_indexes_size(",[34,186205,71301],{"class":54},[34,186207,15223],{"class":181},[34,186209,186210],{"class":36,"line":742},[34,186211,62],{"emptyLinePlaceholder":61},[34,186213,186214],{"class":36,"line":748},[34,186215,152991],{"class":40},[34,186217,186218,186220,186223,186226],{"class":36,"line":754},[34,186219,28529],{"class":580},[34,186221,186222],{"class":181}," pg_size_pretty(pg_database_size(",[34,186224,186225],{"class":54},"'myapp'",[34,186227,15223],{"class":181},[34,186229,186230],{"class":36,"line":759},[34,186231,62],{"emptyLinePlaceholder":61},[34,186233,186234],{"class":36,"line":771},[34,186235,186236],{"class":40},"-- Active queries\n",[34,186238,186239,186241,186244,186246],{"class":36,"line":794},[34,186240,28529],{"class":580},[34,186242,186243],{"class":181}," pid, query, ",[34,186245,29410],{"class":580},[34,186247,186248],{"class":181},", query_start\n",[34,186250,186251,186253],{"class":36,"line":824},[34,186252,29179],{"class":580},[34,186254,186255],{"class":181}," pg_stat_activity\n",[34,186257,186258,186260,186263,186265,186267],{"class":36,"line":830},[34,186259,28604],{"class":580},[34,186261,186262],{"class":580}," state",[34,186264,683],{"class":580},[34,186266,130924],{"class":54},[34,186268,593],{"class":181},[34,186270,186271],{"class":36,"line":839},[34,186272,62],{"emptyLinePlaceholder":61},[34,186274,186275],{"class":36,"line":854},[34,186276,153088],{"class":40},[34,186278,186279,186281,186284],{"class":36,"line":860},[34,186280,28529],{"class":580},[34,186282,186283],{"class":181}," pg_cancel_backend(pid);    ",[34,186285,186286],{"class":40},"-- Graceful\n",[34,186288,186289,186291,186294],{"class":36,"line":865},[34,186290,28529],{"class":580},[34,186292,186293],{"class":181}," pg_terminate_backend(pid); ",[34,186295,186296],{"class":40},"-- Force\n",[34,186298,186299],{"class":36,"line":870},[34,186300,62],{"emptyLinePlaceholder":61},[34,186302,186303],{"class":36,"line":876},[34,186304,186137],{"class":40},[34,186306,186307,186309],{"class":36,"line":885},[34,186308,28529],{"class":580},[34,186310,186311],{"class":181}," relname, n_live_tup, n_dead_tup, last_vacuum, last_analyze\n",[34,186313,186314,186316],{"class":36,"line":895},[34,186315,29179],{"class":580},[34,186317,186318],{"class":181}," pg_stat_user_tables;\n",[34,186320,186321],{"class":36,"line":904},[34,186322,62],{"emptyLinePlaceholder":61},[34,186324,186325],{"class":36,"line":915},[34,186326,186327],{"class":40},"-- Index usage\n",[34,186329,186330,186332],{"class":36,"line":927},[34,186331,28529],{"class":580},[34,186333,186334],{"class":181}," indexrelname, idx_scan, idx_tup_read, idx_tup_fetch\n",[34,186336,186337,186339],{"class":36,"line":932},[34,186338,29179],{"class":580},[34,186340,186341],{"class":181}," pg_stat_user_indexes;\n",[388,186343,186344],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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);}",{"title":30,"searchDepth":44,"depth":44,"links":186346},[186347],{"id":152723,"depth":44,"text":152674},"Performance & Explain in PostgreSQL.",{},{"title":152674,"description":186348},"postgres/performance-explain",[183553,183555,28650,28337],"nUb96d3JpwVNEExZbH1m-P1FUZTK53gHI6SkW6OkG_E",{"id":186355,"title":186000,"body":186356,"date":402,"description":186481,"extension":404,"meta":186482,"navigation":61,"order":71,"path":185999,"seo":186483,"stem":186484,"subject":183553,"tags":186485,"__hash__":186486},"topics/postgres/schema-management.md",{"type":8,"value":186357,"toc":186478},[186358,186361,186476],[11,186359,186000],{"id":186360},"schema-management",[25,186362,186364],{"className":28335,"code":186363,"language":28337,"meta":30,"style":30},"-- Create schema\nCREATE SCHEMA myschema;\nCREATE SCHEMA myschema AUTHORIZATION myuser;\n\n-- Set search path\nSET search_path TO myschema, public;\nALTER DATABASE myapp SET search_path TO myschema, public;\n\n-- Drop schema\nDROP SCHEMA myschema CASCADE;\n\n-- List schemas\nSELECT schema_name FROM information_schema.schemata;\n",[20,186365,186366,186371,186383,186394,186398,186403,186415,186431,186435,186440,186449,186453,186458],{"__ignoreMap":30},[34,186367,186368],{"class":36,"line":37},[34,186369,186370],{"class":40},"-- Create schema\n",[34,186372,186373,186375,186378,186381],{"class":36,"line":44},[34,186374,28349],{"class":580},[34,186376,186377],{"class":580}," SCHEMA",[34,186379,186380],{"class":47}," myschema",[34,186382,593],{"class":181},[34,186384,186385,186387,186389,186391],{"class":36,"line":58},[34,186386,28349],{"class":580},[34,186388,186377],{"class":580},[34,186390,186380],{"class":47},[34,186392,186393],{"class":181}," AUTHORIZATION myuser;\n",[34,186395,186396],{"class":36,"line":65},[34,186397,62],{"emptyLinePlaceholder":61},[34,186399,186400],{"class":36,"line":71},[34,186401,186402],{"class":40},"-- Set search path\n",[34,186404,186405,186407,186410,186412],{"class":36,"line":77},[34,186406,28556],{"class":580},[34,186408,186409],{"class":181}," search_path ",[34,186411,154000],{"class":580},[34,186413,186414],{"class":181}," myschema, public;\n",[34,186416,186417,186419,186421,186423,186425,186427,186429],{"class":36,"line":82},[34,186418,151213],{"class":580},[34,186420,150647],{"class":580},[34,186422,184447],{"class":181},[34,186424,28556],{"class":580},[34,186426,186409],{"class":181},[34,186428,154000],{"class":580},[34,186430,186414],{"class":181},[34,186432,186433],{"class":36,"line":88},[34,186434,62],{"emptyLinePlaceholder":61},[34,186436,186437],{"class":36,"line":242},[34,186438,186439],{"class":40},"-- Drop schema\n",[34,186441,186442,186444,186446],{"class":36,"line":250},[34,186443,150706],{"class":580},[34,186445,186377],{"class":580},[34,186447,186448],{"class":181}," myschema CASCADE;\n",[34,186450,186451],{"class":36,"line":263},[34,186452,62],{"emptyLinePlaceholder":61},[34,186454,186455],{"class":36,"line":275},[34,186456,186457],{"class":40},"-- List schemas\n",[34,186459,186460,186462,186465,186467,186469,186471,186474],{"class":36,"line":700},[34,186461,28529],{"class":580},[34,186463,186464],{"class":181}," schema_name ",[34,186466,29179],{"class":580},[34,186468,152963],{"class":50},[34,186470,151],{"class":181},[34,186472,186473],{"class":50},"schemata",[34,186475,593],{"class":181},[388,186477,35226],{},{"title":30,"searchDepth":44,"depth":44,"links":186479},[186480],{"id":186360,"depth":44,"text":186000},"Schema Management in PostgreSQL.",{},{"title":186000,"description":186481},"postgres/schema-management",[183553,183555,28650,28337],"3GAJgh03jdpkvNzkkGuvAvjHTsvjQU0F32g3UCZoF9U",{"id":186488,"title":152668,"body":186489,"date":402,"description":186885,"extension":404,"meta":186886,"navigation":61,"order":263,"path":186025,"seo":186887,"stem":186888,"subject":183553,"tags":186889,"__hash__":186890},"topics/postgres/transactions-locking.md",{"type":8,"value":186490,"toc":186882},[186491,186493,186880],[11,186492,152668],{"id":154125},[25,186494,186496],{"className":28335,"code":186495,"language":28337,"meta":30,"style":30},"-- Basic transaction\nBEGIN;\nUPDATE accounts SET balance = balance - 100 WHERE id = 1;\nUPDATE accounts SET balance = balance + 100 WHERE id = 2;\nCOMMIT;\n\n-- Rollback\nBEGIN;\nDELETE FROM users WHERE id = 1;\nROLLBACK;\n\n-- Savepoints\nBEGIN;\nINSERT INTO users (name) VALUES ('John');\nSAVEPOINT my_savepoint;\nINSERT INTO users (name) VALUES ('Jane');\nROLLBACK TO my_savepoint;\nCOMMIT;\n\n-- Isolation levels\nSET TRANSACTION ISOLATION LEVEL READ COMMITTED;\nSET TRANSACTION ISOLATION LEVEL REPEATABLE READ;\nSET TRANSACTION ISOLATION LEVEL SERIALIZABLE;\n\n-- Advisory locks\nSELECT pg_advisory_lock(123);\nSELECT pg_advisory_unlock(123);\nSELECT pg_try_advisory_lock(123);\n\n-- Row-level locking\nSELECT * FROM accounts WHERE id = 1 FOR UPDATE;\nSELECT * FROM accounts WHERE id = 1 FOR SHARE;\nSELECT * FROM accounts WHERE id = 1 FOR UPDATE NOWAIT;\nSELECT * FROM accounts WHERE id = 1 FOR UPDATE SKIP LOCKED;\n",[20,186497,186498,186502,186509,186537,186565,186571,186575,186579,186585,186603,186609,186613,186617,186623,186641,186645,186663,186671,186677,186681,186685,186701,186717,186731,186735,186740,186751,186762,186773,186777,186782,186806,186828,186854],{"__ignoreMap":30},[34,186499,186500],{"class":36,"line":37},[34,186501,154135],{"class":40},[34,186503,186504,186507],{"class":36,"line":44},[34,186505,186506],{"class":580},"BEGIN",[34,186508,593],{"class":181},[34,186510,186511,186513,186515,186517,186519,186521,186523,186525,186527,186529,186531,186533,186535],{"class":36,"line":58},[34,186512,28550],{"class":580},[34,186514,154149],{"class":181},[34,186516,28556],{"class":580},[34,186518,154154],{"class":181},[34,186520,1301],{"class":580},[34,186522,154154],{"class":181},[34,186524,22062],{"class":580},[34,186526,25168],{"class":50},[34,186528,28565],{"class":580},[34,186530,28568],{"class":181},[34,186532,1301],{"class":580},[34,186534,3567],{"class":50},[34,186536,593],{"class":181},[34,186538,186539,186541,186543,186545,186547,186549,186551,186553,186555,186557,186559,186561,186563],{"class":36,"line":65},[34,186540,28550],{"class":580},[34,186542,154149],{"class":181},[34,186544,28556],{"class":580},[34,186546,154154],{"class":181},[34,186548,1301],{"class":580},[34,186550,154154],{"class":181},[34,186552,2940],{"class":580},[34,186554,25168],{"class":50},[34,186556,28565],{"class":580},[34,186558,28568],{"class":181},[34,186560,1301],{"class":580},[34,186562,4292],{"class":50},[34,186564,593],{"class":181},[34,186566,186567,186569],{"class":36,"line":71},[34,186568,154205],{"class":580},[34,186570,593],{"class":181},[34,186572,186573],{"class":36,"line":77},[34,186574,62],{"emptyLinePlaceholder":61},[34,186576,186577],{"class":36,"line":82},[34,186578,154216],{"class":40},[34,186580,186581,186583],{"class":36,"line":88},[34,186582,186506],{"class":580},[34,186584,593],{"class":181},[34,186586,186587,186589,186591,186593,186595,186597,186599,186601],{"class":36,"line":242},[34,186588,28597],{"class":580},[34,186590,28534],{"class":580},[34,186592,28553],{"class":181},[34,186594,28604],{"class":580},[34,186596,28568],{"class":181},[34,186598,1301],{"class":580},[34,186600,3567],{"class":50},[34,186602,593],{"class":181},[34,186604,186605,186607],{"class":36,"line":250},[34,186606,154245],{"class":580},[34,186608,593],{"class":181},[34,186610,186611],{"class":36,"line":263},[34,186612,62],{"emptyLinePlaceholder":61},[34,186614,186615],{"class":36,"line":275},[34,186616,154256],{"class":40},[34,186618,186619,186621],{"class":36,"line":700},[34,186620,186506],{"class":580},[34,186622,593],{"class":181},[34,186624,186625,186627,186629,186631,186633,186635,186637,186639],{"class":36,"line":706},[34,186626,28487],{"class":580},[34,186628,151413],{"class":181},[34,186630,178],{"class":580},[34,186632,4817],{"class":181},[34,186634,28498],{"class":580},[34,186636,3204],{"class":181},[34,186638,151425],{"class":54},[34,186640,1586],{"class":181},[34,186642,186643],{"class":36,"line":715},[34,186644,154285],{"class":181},[34,186646,186647,186649,186651,186653,186655,186657,186659,186661],{"class":36,"line":725},[34,186648,28487],{"class":580},[34,186650,151413],{"class":181},[34,186652,178],{"class":580},[34,186654,4817],{"class":181},[34,186656,28498],{"class":580},[34,186658,3204],{"class":181},[34,186660,151475],{"class":54},[34,186662,1586],{"class":181},[34,186664,186665,186667,186669],{"class":36,"line":734},[34,186666,154245],{"class":580},[34,186668,154310],{"class":580},[34,186670,154313],{"class":181},[34,186672,186673,186675],{"class":36,"line":742},[34,186674,154205],{"class":580},[34,186676,593],{"class":181},[34,186678,186679],{"class":36,"line":748},[34,186680,62],{"emptyLinePlaceholder":61},[34,186682,186683],{"class":36,"line":754},[34,186684,154328],{"class":40},[34,186686,186687,186689,186691,186693,186695,186697,186699],{"class":36,"line":759},[34,186688,28556],{"class":580},[34,186690,154335],{"class":580},[34,186692,154338],{"class":580},[34,186694,154341],{"class":580},[34,186696,154344],{"class":580},[34,186698,154364],{"class":580},[34,186700,593],{"class":181},[34,186702,186703,186705,186707,186709,186711,186713,186715],{"class":36,"line":771},[34,186704,28556],{"class":580},[34,186706,154335],{"class":580},[34,186708,154338],{"class":580},[34,186710,154341],{"class":580},[34,186712,154379],{"class":580},[34,186714,154344],{"class":580},[34,186716,593],{"class":181},[34,186718,186719,186721,186723,186725,186727,186729],{"class":36,"line":794},[34,186720,28556],{"class":580},[34,186722,154335],{"class":580},[34,186724,154338],{"class":580},[34,186726,154341],{"class":580},[34,186728,154399],{"class":580},[34,186730,593],{"class":181},[34,186732,186733],{"class":36,"line":824},[34,186734,62],{"emptyLinePlaceholder":61},[34,186736,186737],{"class":36,"line":830},[34,186738,186739],{"class":40},"-- Advisory locks\n",[34,186741,186742,186744,186747,186749],{"class":36,"line":839},[34,186743,28529],{"class":580},[34,186745,186746],{"class":181}," pg_advisory_lock(",[34,186748,23913],{"class":50},[34,186750,1586],{"class":181},[34,186752,186753,186755,186758,186760],{"class":36,"line":854},[34,186754,28529],{"class":580},[34,186756,186757],{"class":181}," pg_advisory_unlock(",[34,186759,23913],{"class":50},[34,186761,1586],{"class":181},[34,186763,186764,186766,186769,186771],{"class":36,"line":860},[34,186765,28529],{"class":580},[34,186767,186768],{"class":181}," pg_try_advisory_lock(",[34,186770,23913],{"class":50},[34,186772,1586],{"class":181},[34,186774,186775],{"class":36,"line":865},[34,186776,62],{"emptyLinePlaceholder":61},[34,186778,186779],{"class":36,"line":870},[34,186780,186781],{"class":40},"-- Row-level locking\n",[34,186783,186784,186786,186788,186790,186792,186794,186796,186798,186800,186802,186804],{"class":36,"line":876},[34,186785,28529],{"class":580},[34,186787,18083],{"class":580},[34,186789,28534],{"class":580},[34,186791,154149],{"class":181},[34,186793,28604],{"class":580},[34,186795,28568],{"class":181},[34,186797,1301],{"class":580},[34,186799,3567],{"class":50},[34,186801,154447],{"class":580},[34,186803,154450],{"class":580},[34,186805,593],{"class":181},[34,186807,186808,186810,186812,186814,186816,186818,186820,186822,186824,186826],{"class":36,"line":885},[34,186809,28529],{"class":580},[34,186811,18083],{"class":580},[34,186813,28534],{"class":580},[34,186815,154149],{"class":181},[34,186817,28604],{"class":580},[34,186819,28568],{"class":181},[34,186821,1301],{"class":580},[34,186823,3567],{"class":50},[34,186825,154447],{"class":580},[34,186827,154475],{"class":181},[34,186829,186830,186832,186834,186836,186838,186840,186842,186844,186846,186848,186850,186852],{"class":36,"line":895},[34,186831,28529],{"class":580},[34,186833,18083],{"class":580},[34,186835,28534],{"class":580},[34,186837,154149],{"class":181},[34,186839,28604],{"class":580},[34,186841,28568],{"class":181},[34,186843,1301],{"class":580},[34,186845,3567],{"class":50},[34,186847,154447],{"class":580},[34,186849,154450],{"class":580},[34,186851,154500],{"class":580},[34,186853,593],{"class":181},[34,186855,186856,186858,186860,186862,186864,186866,186868,186870,186872,186874,186876,186878],{"class":36,"line":904},[34,186857,28529],{"class":580},[34,186859,18083],{"class":580},[34,186861,28534],{"class":580},[34,186863,154149],{"class":181},[34,186865,28604],{"class":580},[34,186867,28568],{"class":181},[34,186869,1301],{"class":580},[34,186871,3567],{"class":50},[34,186873,154447],{"class":580},[34,186875,154450],{"class":580},[34,186877,154527],{"class":580},[34,186879,154530],{"class":181},[388,186881,25257],{},{"title":30,"searchDepth":44,"depth":44,"links":186883},[186884],{"id":154125,"depth":44,"text":152668},"Transactions & Locking in PostgreSQL.",{},{"title":152668,"description":186885},"postgres/transactions-locking",[183553,183555,28650,28337],"XpEvv2_EG_gD24DNeJcpRC3uVJf23sFQ_BY0bVDJTEw",{"id":186892,"title":152707,"body":186893,"date":402,"description":187450,"extension":404,"meta":187451,"navigation":61,"order":715,"path":186043,"seo":187452,"stem":187453,"subject":183553,"tags":187454,"__hash__":187455},"topics/postgres/useful-queries.md",{"type":8,"value":186894,"toc":187447},[186895,186897,187445],[11,186896,152707],{"id":155562},[25,186898,186900],{"className":28335,"code":186899,"language":28337,"meta":30,"style":30},"-- Generate UUID\nSELECT gen_random_uuid();  -- PostgreSQL 13+\nSELECT uuid_generate_v4(); -- With uuid-ossp extension\n\n-- Get current timestamp\nSELECT NOW();\nSELECT CURRENT_TIMESTAMP;\nSELECT CURRENT_DATE;\n\n-- Date arithmetic\nSELECT NOW() + INTERVAL '1 day';\nSELECT NOW() - INTERVAL '1 month';\nSELECT DATE_TRUNC('month', NOW());\nSELECT EXTRACT(YEAR FROM NOW());\n\n-- String functions\nSELECT CONCAT_WS(' ', first_name, last_name);\nSELECT LEFT(name, 10);\nSELECT RIGHT(name, 5);\nSELECT SPLIT_PART('a,b,c', ',', 2);  -- Returns 'b'\nSELECT STRING_AGG(name, ', ') FROM users;\n\n-- Generate series\nSELECT generate_series(1, 10);\nSELECT generate_series('2024-01-01'::date, '2024-12-31'::date, '1 month');\n\n-- Random\nSELECT random();\nSELECT floor(random() * 100 + 1);  -- Random 1-100\nSELECT * FROM users ORDER BY random() LIMIT 1;\n\n-- Conditional aggregation\nSELECT \n  COUNT(*) FILTER (WHERE status = 'active') as active_count,\n  COUNT(*) FILTER (WHERE status = 'inactive') as inactive_count\nFROM users;\n\n-- DISTINCT ON (first row per group)\nSELECT DISTINCT ON (user_id) *\nFROM orders\nORDER BY user_id, created_at DESC;\n\n-- RETURNING clause\nINSERT INTO users (name) VALUES ('John') RETURNING id, created_at;\nUPDATE users SET name = 'Jane' WHERE id = 1 RETURNING *;\nDELETE FROM users WHERE id = 1 RETURNING *;\n",[20,186901,186902,186906,186916,186926,186930,186935,186943,186950,186957,186961,186966,186984,187001,187017,187032,187036,187040,187052,187069,187086,187109,187130,187134,187139,187156,187186,187190,187195,187202,187225,187246,187250,187255,187261,187292,187321,187327,187331,187336,187348,187354,187365,187369,187374,187393,187423],{"__ignoreMap":30},[34,186903,186904],{"class":36,"line":37},[34,186905,155572],{"class":40},[34,186907,186908,186910,186913],{"class":36,"line":44},[34,186909,28529],{"class":580},[34,186911,186912],{"class":181}," gen_random_uuid();  ",[34,186914,186915],{"class":40},"-- PostgreSQL 13+\n",[34,186917,186918,186920,186923],{"class":36,"line":58},[34,186919,28529],{"class":580},[34,186921,186922],{"class":181}," uuid_generate_v4(); ",[34,186924,186925],{"class":40},"-- With uuid-ossp extension\n",[34,186927,186928],{"class":36,"line":65},[34,186929,62],{"emptyLinePlaceholder":61},[34,186931,186932],{"class":36,"line":71},[34,186933,186934],{"class":40},"-- Get current timestamp\n",[34,186936,186937,186939,186941],{"class":36,"line":77},[34,186938,28529],{"class":580},[34,186940,151727],{"class":580},[34,186942,851],{"class":181},[34,186944,186945,186947],{"class":36,"line":82},[34,186946,28529],{"class":580},[34,186948,186949],{"class":181}," CURRENT_TIMESTAMP;\n",[34,186951,186952,186954],{"class":36,"line":88},[34,186953,28529],{"class":580},[34,186955,186956],{"class":181}," CURRENT_DATE;\n",[34,186958,186959],{"class":36,"line":242},[34,186960,62],{"emptyLinePlaceholder":61},[34,186962,186963],{"class":36,"line":250},[34,186964,186965],{"class":40},"-- Date arithmetic\n",[34,186967,186968,186970,186972,186974,186976,186979,186982],{"class":36,"line":263},[34,186969,28529],{"class":580},[34,186971,151727],{"class":580},[34,186973,672],{"class":181},[34,186975,2940],{"class":580},[34,186977,186978],{"class":181}," INTERVAL ",[34,186980,186981],{"class":54},"'1 day'",[34,186983,593],{"class":181},[34,186985,186986,186988,186990,186992,186994,186996,186999],{"class":36,"line":275},[34,186987,28529],{"class":580},[34,186989,151727],{"class":580},[34,186991,672],{"class":181},[34,186993,22062],{"class":580},[34,186995,186978],{"class":181},[34,186997,186998],{"class":54},"'1 month'",[34,187000,593],{"class":181},[34,187002,187003,187005,187008,187011,187013,187015],{"class":36,"line":700},[34,187004,28529],{"class":580},[34,187006,187007],{"class":181}," DATE_TRUNC(",[34,187009,187010],{"class":54},"'month'",[34,187012,1798],{"class":181},[34,187014,155156],{"class":580},[34,187016,4343],{"class":181},[34,187018,187019,187021,187024,187026,187028,187030],{"class":36,"line":706},[34,187020,28529],{"class":580},[34,187022,187023],{"class":181}," EXTRACT(",[34,187025,150535],{"class":580},[34,187027,28534],{"class":580},[34,187029,151727],{"class":580},[34,187031,4343],{"class":181},[34,187033,187034],{"class":36,"line":715},[34,187035,62],{"emptyLinePlaceholder":61},[34,187037,187038],{"class":36,"line":725},[34,187039,154923],{"class":40},[34,187041,187042,187044,187047,187049],{"class":36,"line":734},[34,187043,28529],{"class":580},[34,187045,187046],{"class":181}," CONCAT_WS(",[34,187048,37895],{"class":54},[34,187050,187051],{"class":181},", first_name, last_name);\n",[34,187053,187054,187056,187059,187061,187063,187065,187067],{"class":36,"line":742},[34,187055,28529],{"class":580},[34,187057,187058],{"class":50}," LEFT",[34,187060,1607],{"class":181},[34,187062,178],{"class":580},[34,187064,1798],{"class":181},[34,187066,11923],{"class":50},[34,187068,1586],{"class":181},[34,187070,187071,187073,187076,187078,187080,187082,187084],{"class":36,"line":748},[34,187072,28529],{"class":580},[34,187074,187075],{"class":50}," RIGHT",[34,187077,1607],{"class":181},[34,187079,178],{"class":580},[34,187081,1798],{"class":181},[34,187083,2778],{"class":50},[34,187085,1586],{"class":181},[34,187087,187088,187090,187093,187096,187098,187100,187102,187104,187106],{"class":36,"line":754},[34,187089,28529],{"class":580},[34,187091,187092],{"class":181}," SPLIT_PART(",[34,187094,187095],{"class":54},"'a,b,c'",[34,187097,1798],{"class":181},[34,187099,13184],{"class":54},[34,187101,1798],{"class":181},[34,187103,8324],{"class":50},[34,187105,33489],{"class":181},[34,187107,187108],{"class":40},"-- Returns 'b'\n",[34,187110,187111,187113,187116,187118,187120,187122,187124,187126,187128],{"class":36,"line":759},[34,187112,28529],{"class":580},[34,187114,187115],{"class":50}," STRING_AGG",[34,187117,1607],{"class":181},[34,187119,178],{"class":580},[34,187121,1798],{"class":181},[34,187123,71024],{"class":54},[34,187125,4817],{"class":181},[34,187127,29179],{"class":580},[34,187129,4114],{"class":181},[34,187131,187132],{"class":36,"line":771},[34,187133,62],{"emptyLinePlaceholder":61},[34,187135,187136],{"class":36,"line":794},[34,187137,187138],{"class":40},"-- Generate series\n",[34,187140,187141,187143,187146,187148,187150,187152,187154],{"class":36,"line":824},[34,187142,28529],{"class":580},[34,187144,187145],{"class":50}," generate_series",[34,187147,1607],{"class":181},[34,187149,8318],{"class":50},[34,187151,1798],{"class":181},[34,187153,11923],{"class":50},[34,187155,1586],{"class":181},[34,187157,187158,187160,187162,187164,187167,187169,187171,187173,187176,187178,187180,187182,187184],{"class":36,"line":830},[34,187159,28529],{"class":580},[34,187161,187145],{"class":50},[34,187163,1607],{"class":181},[34,187165,187166],{"class":54},"'2024-01-01'",[34,187168,30110],{"class":181},[34,187170,13390],{"class":580},[34,187172,1798],{"class":181},[34,187174,187175],{"class":54},"'2024-12-31'",[34,187177,30110],{"class":181},[34,187179,13390],{"class":580},[34,187181,1798],{"class":181},[34,187183,186998],{"class":54},[34,187185,1586],{"class":181},[34,187187,187188],{"class":36,"line":839},[34,187189,62],{"emptyLinePlaceholder":61},[34,187191,187192],{"class":36,"line":854},[34,187193,187194],{"class":40},"-- Random\n",[34,187196,187197,187199],{"class":36,"line":860},[34,187198,28529],{"class":580},[34,187200,187201],{"class":181}," random();\n",[34,187203,187204,187206,187209,187212,187214,187216,187218,187220,187222],{"class":36,"line":865},[34,187205,28529],{"class":580},[34,187207,187208],{"class":50}," floor",[34,187210,187211],{"class":181},"(random() ",[34,187213,4289],{"class":580},[34,187215,25168],{"class":50},[34,187217,11537],{"class":580},[34,187219,3567],{"class":50},[34,187221,33489],{"class":181},[34,187223,187224],{"class":40},"-- Random 1-100\n",[34,187226,187227,187229,187231,187233,187235,187237,187240,187242,187244],{"class":36,"line":870},[34,187228,28529],{"class":580},[34,187230,18083],{"class":580},[34,187232,28534],{"class":580},[34,187234,28553],{"class":181},[34,187236,29069],{"class":580},[34,187238,187239],{"class":181}," random() ",[34,187241,155750],{"class":580},[34,187243,3567],{"class":50},[34,187245,593],{"class":181},[34,187247,187248],{"class":36,"line":876},[34,187249,62],{"emptyLinePlaceholder":61},[34,187251,187252],{"class":36,"line":885},[34,187253,187254],{"class":40},"-- Conditional aggregation\n",[34,187256,187257,187259],{"class":36,"line":895},[34,187258,28529],{"class":580},[34,187260,526],{"class":181},[34,187262,187263,187266,187268,187270,187272,187275,187277,187279,187281,187283,187285,187287,187289],{"class":36,"line":904},[34,187264,187265],{"class":50},"  COUNT",[34,187267,1607],{"class":181},[34,187269,4289],{"class":580},[34,187271,4817],{"class":181},[34,187273,187274],{"class":580},"FILTER",[34,187276,3204],{"class":181},[34,187278,28604],{"class":580},[34,187280,94498],{"class":580},[34,187282,683],{"class":580},[34,187284,130924],{"class":54},[34,187286,4817],{"class":181},[34,187288,74548],{"class":580},[34,187290,187291],{"class":181}," active_count,\n",[34,187293,187294,187296,187298,187300,187302,187304,187306,187308,187310,187312,187314,187316,187318],{"class":36,"line":915},[34,187295,187265],{"class":50},[34,187297,1607],{"class":181},[34,187299,4289],{"class":580},[34,187301,4817],{"class":181},[34,187303,187274],{"class":580},[34,187305,3204],{"class":181},[34,187307,28604],{"class":580},[34,187309,94498],{"class":580},[34,187311,683],{"class":580},[34,187313,151868],{"class":54},[34,187315,4817],{"class":181},[34,187317,74548],{"class":580},[34,187319,187320],{"class":181}," inactive_count\n",[34,187322,187323,187325],{"class":36,"line":927},[34,187324,29179],{"class":580},[34,187326,4114],{"class":181},[34,187328,187329],{"class":36,"line":932},[34,187330,62],{"emptyLinePlaceholder":61},[34,187332,187333],{"class":36,"line":944},[34,187334,187335],{"class":40},"-- DISTINCT ON (first row per group)\n",[34,187337,187338,187341,187343,187345],{"class":36,"line":966},[34,187339,187340],{"class":580},"SELECT DISTINCT",[34,187342,151147],{"class":580},[34,187344,153852],{"class":181},[34,187346,187347],{"class":580},"*\n",[34,187349,187350,187352],{"class":36,"line":1948},[34,187351,29179],{"class":580},[34,187353,154720],{"class":181},[34,187355,187356,187358,187361,187363],{"class":36,"line":1953},[34,187357,29069],{"class":580},[34,187359,187360],{"class":181}," user_id, created_at ",[34,187362,151070],{"class":580},[34,187364,593],{"class":181},[34,187366,187367],{"class":36,"line":3616},[34,187368,62],{"emptyLinePlaceholder":61},[34,187370,187371],{"class":36,"line":3622},[34,187372,187373],{"class":40},"-- RETURNING clause\n",[34,187375,187376,187378,187380,187382,187384,187386,187388,187390],{"class":36,"line":3642},[34,187377,28487],{"class":580},[34,187379,151413],{"class":181},[34,187381,178],{"class":580},[34,187383,4817],{"class":181},[34,187385,28498],{"class":580},[34,187387,3204],{"class":181},[34,187389,151425],{"class":54},[34,187391,187392],{"class":181},") RETURNING id, created_at;\n",[34,187394,187395,187397,187399,187401,187403,187405,187408,187410,187412,187414,187416,187419,187421],{"class":36,"line":3657},[34,187396,28550],{"class":580},[34,187398,28553],{"class":181},[34,187400,28556],{"class":580},[34,187402,12323],{"class":580},[34,187404,683],{"class":580},[34,187406,187407],{"class":54}," 'Jane'",[34,187409,28565],{"class":580},[34,187411,28568],{"class":181},[34,187413,1301],{"class":580},[34,187415,3567],{"class":50},[34,187417,187418],{"class":181}," RETURNING ",[34,187420,4289],{"class":580},[34,187422,593],{"class":181},[34,187424,187425,187427,187429,187431,187433,187435,187437,187439,187441,187443],{"class":36,"line":3663},[34,187426,28597],{"class":580},[34,187428,28534],{"class":580},[34,187430,28553],{"class":181},[34,187432,28604],{"class":580},[34,187434,28568],{"class":181},[34,187436,1301],{"class":580},[34,187438,3567],{"class":50},[34,187440,187418],{"class":181},[34,187442,4289],{"class":580},[34,187444,593],{"class":181},[388,187446,10978],{},{"title":30,"searchDepth":44,"depth":44,"links":187448},[187449],{"id":155562,"depth":44,"text":152707},"Useful Queries in PostgreSQL.",{},{"title":152707,"description":187450},"postgres/useful-queries",[183553,183555,28650,28337],"ehqbcH_HVydQj4wQYX9tzbu62EwMdx66o1HeH5gZUak",{"id":187457,"title":185994,"body":187458,"date":402,"description":187744,"extension":404,"meta":187745,"navigation":61,"order":65,"path":185993,"seo":187746,"stem":187747,"subject":183553,"tags":187748,"__hash__":187749},"topics/postgres/user-role-management.md",{"type":8,"value":187459,"toc":187741},[187460,187463,187738],[11,187461,185994],{"id":187462},"user-role-management",[25,187464,187466],{"className":28335,"code":187465,"language":28337,"meta":30,"style":30},"-- Create user\nCREATE USER myuser WITH PASSWORD 'mypassword';\nCREATE ROLE myuser WITH LOGIN PASSWORD 'mypassword';\n\n-- Create superuser\nCREATE USER admin WITH SUPERUSER PASSWORD 'adminpass';\n\n-- Grant privileges\nGRANT ALL PRIVILEGES ON DATABASE myapp TO myuser;\nGRANT SELECT, INSERT, UPDATE ON ALL TABLES IN SCHEMA public TO myuser;\nGRANT USAGE ON SCHEMA myschema TO myuser;\nGRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO myuser;\n\n-- Revoke privileges\nREVOKE ALL ON DATABASE myapp FROM myuser;\n\n-- Alter user\nALTER USER myuser WITH PASSWORD 'newpassword';\nALTER USER myuser CREATEDB;\n\n-- Drop user\nDROP USER IF EXISTS myuser;\n\n-- List users\nSELECT usename FROM pg_user;\n\\du\n",[20,187467,187468,187472,187489,187510,187514,187519,187540,187544,187548,187565,187595,187613,187634,187638,187642,187659,187663,187668,187684,187693,187697,187701,187713,187717,187721,187733],{"__ignoreMap":30},[34,187469,187470],{"class":36,"line":37},[34,187471,156007],{"class":40},[34,187473,187474,187476,187478,187481,187483,187485,187487],{"class":36,"line":44},[34,187475,28349],{"class":580},[34,187477,156014],{"class":580},[34,187479,187480],{"class":47}," myuser",[34,187482,151104],{"class":580},[34,187484,156323],{"class":580},[34,187486,156033],{"class":54},[34,187488,593],{"class":181},[34,187490,187491,187493,187496,187499,187501,187504,187506,187508],{"class":36,"line":58},[34,187492,28349],{"class":580},[34,187494,187495],{"class":580}," ROLE",[34,187497,187498],{"class":181}," myuser ",[34,187500,28355],{"class":580},[34,187502,187503],{"class":580}," LOGIN",[34,187505,156323],{"class":580},[34,187507,156033],{"class":54},[34,187509,593],{"class":181},[34,187511,187512],{"class":36,"line":65},[34,187513,62],{"emptyLinePlaceholder":61},[34,187515,187516],{"class":36,"line":71},[34,187517,187518],{"class":40},"-- Create superuser\n",[34,187520,187521,187523,187525,187527,187529,187532,187535,187538],{"class":36,"line":77},[34,187522,28349],{"class":580},[34,187524,156014],{"class":580},[34,187526,7229],{"class":47},[34,187528,151104],{"class":580},[34,187530,187531],{"class":181}," SUPERUSER ",[34,187533,187534],{"class":580},"PASSWORD",[34,187536,187537],{"class":54}," 'adminpass'",[34,187539,593],{"class":181},[34,187541,187542],{"class":36,"line":82},[34,187543,62],{"emptyLinePlaceholder":61},[34,187545,187546],{"class":36,"line":88},[34,187547,156070],{"class":40},[34,187549,187550,187552,187554,187556,187558,187560,187562],{"class":36,"line":242},[34,187551,156075],{"class":580},[34,187553,156078],{"class":181},[34,187555,150819],{"class":580},[34,187557,150647],{"class":580},[34,187559,184447],{"class":181},[34,187561,154000],{"class":580},[34,187563,187564],{"class":181}," myuser;\n",[34,187566,187567,187569,187571,187573,187575,187577,187579,187581,187584,187586,187588,187591,187593],{"class":36,"line":250},[34,187568,156075],{"class":580},[34,187570,152793],{"class":580},[34,187572,1798],{"class":181},[34,187574,156107],{"class":580},[34,187576,1798],{"class":181},[34,187578,28550],{"class":580},[34,187580,151147],{"class":580},[34,187582,187583],{"class":181}," ALL TABLES ",[34,187585,153209],{"class":580},[34,187587,186377],{"class":580},[34,187589,187590],{"class":181}," public ",[34,187592,154000],{"class":580},[34,187594,187564],{"class":181},[34,187596,187597,187599,187602,187604,187606,187609,187611],{"class":36,"line":263},[34,187598,156075],{"class":580},[34,187600,187601],{"class":181}," USAGE ",[34,187603,150819],{"class":580},[34,187605,186377],{"class":580},[34,187607,187608],{"class":181}," myschema ",[34,187610,154000],{"class":580},[34,187612,187564],{"class":181},[34,187614,187615,187617,187619,187621,187624,187626,187628,187630,187632],{"class":36,"line":275},[34,187616,156075],{"class":580},[34,187618,185198],{"class":580},[34,187620,151147],{"class":580},[34,187622,187623],{"class":181}," ALL FUNCTIONS ",[34,187625,153209],{"class":580},[34,187627,186377],{"class":580},[34,187629,187590],{"class":181},[34,187631,154000],{"class":580},[34,187633,187564],{"class":181},[34,187635,187636],{"class":36,"line":700},[34,187637,62],{"emptyLinePlaceholder":61},[34,187639,187640],{"class":36,"line":706},[34,187641,156206],{"class":40},[34,187643,187644,187646,187649,187651,187653,187655,187657],{"class":36,"line":715},[34,187645,156211],{"class":580},[34,187647,187648],{"class":181}," ALL ",[34,187650,150819],{"class":580},[34,187652,150647],{"class":580},[34,187654,184447],{"class":181},[34,187656,29179],{"class":580},[34,187658,187564],{"class":181},[34,187660,187661],{"class":36,"line":725},[34,187662,62],{"emptyLinePlaceholder":61},[34,187664,187665],{"class":36,"line":734},[34,187666,187667],{"class":40},"-- Alter user\n",[34,187669,187670,187672,187674,187676,187678,187680,187682],{"class":36,"line":742},[34,187671,151213],{"class":580},[34,187673,156014],{"class":580},[34,187675,187498],{"class":181},[34,187677,28355],{"class":580},[34,187679,156323],{"class":580},[34,187681,156314],{"class":54},[34,187683,593],{"class":181},[34,187685,187686,187688,187690],{"class":36,"line":748},[34,187687,151213],{"class":580},[34,187689,156014],{"class":580},[34,187691,187692],{"class":181}," myuser CREATEDB;\n",[34,187694,187695],{"class":36,"line":754},[34,187696,62],{"emptyLinePlaceholder":61},[34,187698,187699],{"class":36,"line":759},[34,187700,156346],{"class":40},[34,187702,187703,187705,187707,187709,187711],{"class":36,"line":771},[34,187704,150706],{"class":580},[34,187706,156014],{"class":580},[34,187708,150683],{"class":580},[34,187710,150689],{"class":580},[34,187712,187564],{"class":181},[34,187714,187715],{"class":36,"line":794},[34,187716,62],{"emptyLinePlaceholder":61},[34,187718,187719],{"class":36,"line":824},[34,187720,156373],{"class":40},[34,187722,187723,187725,187728,187730],{"class":36,"line":830},[34,187724,28529],{"class":580},[34,187726,187727],{"class":181}," usename ",[34,187729,29179],{"class":580},[34,187731,187732],{"class":181}," pg_user;\n",[34,187734,187735],{"class":36,"line":839},[34,187736,187737],{"class":181},"\\du\n",[388,187739,187740],{},"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 .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 .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":30,"searchDepth":44,"depth":44,"links":187742},[187743],{"id":187462,"depth":44,"text":185994},"User & Role Management in PostgreSQL.",{},{"title":185994,"description":187744},"postgres/user-role-management",[183553,183555,28650,28337],"eLUaLFtFRR_YhR8MF0sgJgw0eSh0IOFl137E8GJoS80",{"id":187751,"title":91184,"body":187752,"date":402,"description":187871,"extension":404,"meta":187872,"navigation":61,"order":58,"path":187873,"seo":187874,"stem":187875,"subject":187770,"tags":187876,"__hash__":187878},"topics/prettier/cli-commands.md",{"type":8,"value":187753,"toc":187868},[187754,187756,187866],[11,187755,91184],{"id":91183},[25,187757,187759],{"className":27,"code":187758,"language":29,"meta":30,"style":30},"# format a file\nprettier --write src/index.js\n\n# format all files in a directory\nprettier --write src/\n\n# format specific file types\nprettier --write \"**/*.{js,jsx,ts,tsx,json,css,md}\"\n\n# check if files are formatted (CI)\nprettier --check .\n\n# output formatted file to stdout\nprettier src/index.js\n\n# show diff without writing\nprettier --write --list-different src/\n",[20,187760,187761,187766,187777,187781,187786,187795,187799,187804,187813,187817,187822,187831,187835,187840,187846,187850,187855],{"__ignoreMap":30},[34,187762,187763],{"class":36,"line":37},[34,187764,187765],{"class":40},"# format a file\n",[34,187767,187768,187771,187774],{"class":36,"line":44},[34,187769,187770],{"class":47},"prettier",[34,187772,187773],{"class":50}," --write",[34,187775,187776],{"class":54}," src/index.js\n",[34,187778,187779],{"class":36,"line":58},[34,187780,62],{"emptyLinePlaceholder":61},[34,187782,187783],{"class":36,"line":65},[34,187784,187785],{"class":40},"# format all files in a directory\n",[34,187787,187788,187790,187792],{"class":36,"line":71},[34,187789,187770],{"class":47},[34,187791,187773],{"class":50},[34,187793,187794],{"class":54}," src/\n",[34,187796,187797],{"class":36,"line":77},[34,187798,62],{"emptyLinePlaceholder":61},[34,187800,187801],{"class":36,"line":82},[34,187802,187803],{"class":40},"# format specific file types\n",[34,187805,187806,187808,187810],{"class":36,"line":88},[34,187807,187770],{"class":47},[34,187809,187773],{"class":50},[34,187811,187812],{"class":54}," \"**/*.{js,jsx,ts,tsx,json,css,md}\"\n",[34,187814,187815],{"class":36,"line":242},[34,187816,62],{"emptyLinePlaceholder":61},[34,187818,187819],{"class":36,"line":250},[34,187820,187821],{"class":40},"# check if files are formatted (CI)\n",[34,187823,187824,187826,187829],{"class":36,"line":263},[34,187825,187770],{"class":47},[34,187827,187828],{"class":50}," --check",[34,187830,56924],{"class":54},[34,187832,187833],{"class":36,"line":275},[34,187834,62],{"emptyLinePlaceholder":61},[34,187836,187837],{"class":36,"line":700},[34,187838,187839],{"class":40},"# output formatted file to stdout\n",[34,187841,187842,187844],{"class":36,"line":706},[34,187843,187770],{"class":47},[34,187845,187776],{"class":54},[34,187847,187848],{"class":36,"line":715},[34,187849,62],{"emptyLinePlaceholder":61},[34,187851,187852],{"class":36,"line":725},[34,187853,187854],{"class":40},"# show diff without writing\n",[34,187856,187857,187859,187861,187864],{"class":36,"line":734},[34,187858,187770],{"class":47},[34,187860,187773],{"class":50},[34,187862,187863],{"class":50}," --list-different",[34,187865,187794],{"class":54},[388,187867,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":187869},[187870],{"id":91183,"depth":44,"text":91184},"CLI Commands in Prettier.",{},"/prettier/cli-commands",{"title":91184,"description":187871},"prettier/cli-commands",[187770,14117,187877,8606,573],"code-style","CoL900KuAwEi0D4qZgqn_eFd-Ndgj3JkvUVvZcZ7CFw",{"id":187880,"title":334,"body":187881,"date":402,"description":188161,"extension":404,"meta":188162,"navigation":61,"order":71,"path":188163,"seo":188164,"stem":188165,"subject":187770,"tags":188166,"__hash__":188167},"topics/prettier/common-options.md",{"type":8,"value":187882,"toc":188158},[187883,187885,188156],[11,187884,334],{"id":333},[25,187886,187888],{"className":28058,"code":187887,"language":14790,"meta":30,"style":30},"{\n  // print semicolons at end of statements\n  \"semi\": true,\n\n  // use single quotes instead of double\n  \"singleQuote\": true,\n\n  // spaces per indentation level\n  \"tabWidth\": 2,\n\n  // use tabs instead of spaces\n  \"useTabs\": false,\n\n  // trailing commas: \"none\", \"es5\", \"all\"\n  \"trailingComma\": \"es5\",\n\n  // line width before wrapping\n  \"printWidth\": 80,\n\n  // spaces inside object braces { foo: bar }\n  \"bracketSpacing\": true,\n\n  // arrow function parens: \"always\", \"avoid\"\n  \"arrowParens\": \"always\",\n\n  // line endings: \"lf\", \"crlf\", \"cr\", \"auto\"\n  \"endOfLine\": \"lf\",\n\n  // quote props: \"as-needed\", \"consistent\", \"preserve\"\n  \"quoteProps\": \"as-needed\",\n\n  // use single quotes in JSX\n  \"jsxSingleQuote\": false,\n\n  // put > on last line: true, false\n  \"bracketSameLine\": false,\n\n  // format embedded code in markdown\n  \"embeddedLanguageFormatting\": \"auto\"\n}\n",[20,187889,187890,187894,187899,187910,187914,187919,187930,187934,187939,187950,187954,187959,187970,187974,187979,187991,187995,188000,188011,188015,188020,188031,188035,188040,188051,188055,188060,188072,188076,188081,188093,188097,188102,188113,188117,188122,188133,188137,188142,188152],{"__ignoreMap":30},[34,187891,187892],{"class":36,"line":37},[34,187893,25296],{"class":181},[34,187895,187896],{"class":36,"line":44},[34,187897,187898],{"class":40},"  // print semicolons at end of statements\n",[34,187900,187901,187904,187906,187908],{"class":36,"line":58},[34,187902,187903],{"class":50},"  \"semi\"",[34,187905,182],{"class":181},[34,187907,632],{"class":50},[34,187909,624],{"class":181},[34,187911,187912],{"class":36,"line":65},[34,187913,62],{"emptyLinePlaceholder":61},[34,187915,187916],{"class":36,"line":71},[34,187917,187918],{"class":40},"  // use single quotes instead of double\n",[34,187920,187921,187924,187926,187928],{"class":36,"line":77},[34,187922,187923],{"class":50},"  \"singleQuote\"",[34,187925,182],{"class":181},[34,187927,632],{"class":50},[34,187929,624],{"class":181},[34,187931,187932],{"class":36,"line":82},[34,187933,62],{"emptyLinePlaceholder":61},[34,187935,187936],{"class":36,"line":88},[34,187937,187938],{"class":40},"  // spaces per indentation level\n",[34,187940,187941,187944,187946,187948],{"class":36,"line":242},[34,187942,187943],{"class":50},"  \"tabWidth\"",[34,187945,182],{"class":181},[34,187947,8324],{"class":50},[34,187949,624],{"class":181},[34,187951,187952],{"class":36,"line":250},[34,187953,62],{"emptyLinePlaceholder":61},[34,187955,187956],{"class":36,"line":263},[34,187957,187958],{"class":40},"  // use tabs instead of spaces\n",[34,187960,187961,187964,187966,187968],{"class":36,"line":275},[34,187962,187963],{"class":50},"  \"useTabs\"",[34,187965,182],{"class":181},[34,187967,103387],{"class":50},[34,187969,624],{"class":181},[34,187971,187972],{"class":36,"line":700},[34,187973,62],{"emptyLinePlaceholder":61},[34,187975,187976],{"class":36,"line":706},[34,187977,187978],{"class":40},"  // trailing commas: \"none\", \"es5\", \"all\"\n",[34,187980,187981,187984,187986,187989],{"class":36,"line":715},[34,187982,187983],{"class":50},"  \"trailingComma\"",[34,187985,182],{"class":181},[34,187987,187988],{"class":54},"\"es5\"",[34,187990,624],{"class":181},[34,187992,187993],{"class":36,"line":725},[34,187994,62],{"emptyLinePlaceholder":61},[34,187996,187997],{"class":36,"line":734},[34,187998,187999],{"class":40},"  // line width before wrapping\n",[34,188001,188002,188005,188007,188009],{"class":36,"line":742},[34,188003,188004],{"class":50},"  \"printWidth\"",[34,188006,182],{"class":181},[34,188008,103374],{"class":50},[34,188010,624],{"class":181},[34,188012,188013],{"class":36,"line":748},[34,188014,62],{"emptyLinePlaceholder":61},[34,188016,188017],{"class":36,"line":754},[34,188018,188019],{"class":40},"  // spaces inside object braces { foo: bar }\n",[34,188021,188022,188025,188027,188029],{"class":36,"line":759},[34,188023,188024],{"class":50},"  \"bracketSpacing\"",[34,188026,182],{"class":181},[34,188028,632],{"class":50},[34,188030,624],{"class":181},[34,188032,188033],{"class":36,"line":771},[34,188034,62],{"emptyLinePlaceholder":61},[34,188036,188037],{"class":36,"line":794},[34,188038,188039],{"class":40},"  // arrow function parens: \"always\", \"avoid\"\n",[34,188041,188042,188045,188047,188049],{"class":36,"line":824},[34,188043,188044],{"class":50},"  \"arrowParens\"",[34,188046,182],{"class":181},[34,188048,62808],{"class":54},[34,188050,624],{"class":181},[34,188052,188053],{"class":36,"line":830},[34,188054,62],{"emptyLinePlaceholder":61},[34,188056,188057],{"class":36,"line":839},[34,188058,188059],{"class":40},"  // line endings: \"lf\", \"crlf\", \"cr\", \"auto\"\n",[34,188061,188062,188065,188067,188070],{"class":36,"line":854},[34,188063,188064],{"class":50},"  \"endOfLine\"",[34,188066,182],{"class":181},[34,188068,188069],{"class":54},"\"lf\"",[34,188071,624],{"class":181},[34,188073,188074],{"class":36,"line":860},[34,188075,62],{"emptyLinePlaceholder":61},[34,188077,188078],{"class":36,"line":865},[34,188079,188080],{"class":40},"  // quote props: \"as-needed\", \"consistent\", \"preserve\"\n",[34,188082,188083,188086,188088,188091],{"class":36,"line":870},[34,188084,188085],{"class":50},"  \"quoteProps\"",[34,188087,182],{"class":181},[34,188089,188090],{"class":54},"\"as-needed\"",[34,188092,624],{"class":181},[34,188094,188095],{"class":36,"line":876},[34,188096,62],{"emptyLinePlaceholder":61},[34,188098,188099],{"class":36,"line":885},[34,188100,188101],{"class":40},"  // use single quotes in JSX\n",[34,188103,188104,188107,188109,188111],{"class":36,"line":895},[34,188105,188106],{"class":50},"  \"jsxSingleQuote\"",[34,188108,182],{"class":181},[34,188110,103387],{"class":50},[34,188112,624],{"class":181},[34,188114,188115],{"class":36,"line":904},[34,188116,62],{"emptyLinePlaceholder":61},[34,188118,188119],{"class":36,"line":915},[34,188120,188121],{"class":40},"  // put > on last line: true, false\n",[34,188123,188124,188127,188129,188131],{"class":36,"line":927},[34,188125,188126],{"class":50},"  \"bracketSameLine\"",[34,188128,182],{"class":181},[34,188130,103387],{"class":50},[34,188132,624],{"class":181},[34,188134,188135],{"class":36,"line":932},[34,188136,62],{"emptyLinePlaceholder":61},[34,188138,188139],{"class":36,"line":944},[34,188140,188141],{"class":40},"  // format embedded code in markdown\n",[34,188143,188144,188147,188149],{"class":36,"line":966},[34,188145,188146],{"class":50},"  \"embeddedLanguageFormatting\"",[34,188148,182],{"class":181},[34,188150,188151],{"class":54},"\"auto\"\n",[34,188153,188154],{"class":36,"line":1948},[34,188155,693],{"class":181},[388,188157,129580],{},{"title":30,"searchDepth":44,"depth":44,"links":188159},[188160],{"id":333,"depth":44,"text":334},"Common Options in Prettier.",{},"/prettier/common-options",{"title":334,"description":188161},"prettier/common-options",[187770,14117,187877,8606,573],"tSWUWMZEnAw4v9sE9yIdViz_b9cQjraYLAbp99iJScE",{"id":188169,"title":466,"body":188170,"date":402,"description":188377,"extension":404,"meta":188378,"navigation":61,"order":65,"path":188379,"seo":188380,"stem":188381,"subject":187770,"tags":188382,"__hash__":188383},"topics/prettier/configuration-file.md",{"type":8,"value":188171,"toc":188374},[188172,188174,188271,188371],[11,188173,466],{"id":465},[25,188175,188177],{"className":28058,"code":188176,"language":14790,"meta":30,"style":30},"// .prettierrc or .prettierrc.json\n{\n  \"semi\": true,\n  \"singleQuote\": true,\n  \"tabWidth\": 2,\n  \"useTabs\": false,\n  \"trailingComma\": \"es5\",\n  \"printWidth\": 80,\n  \"bracketSpacing\": true,\n  \"arrowParens\": \"always\"\n}\n",[20,188178,188179,188184,188188,188198,188208,188218,188228,188238,188248,188258,188267],{"__ignoreMap":30},[34,188180,188181],{"class":36,"line":37},[34,188182,188183],{"class":40},"// .prettierrc or .prettierrc.json\n",[34,188185,188186],{"class":36,"line":44},[34,188187,25296],{"class":181},[34,188189,188190,188192,188194,188196],{"class":36,"line":58},[34,188191,187903],{"class":50},[34,188193,182],{"class":181},[34,188195,632],{"class":50},[34,188197,624],{"class":181},[34,188199,188200,188202,188204,188206],{"class":36,"line":65},[34,188201,187923],{"class":50},[34,188203,182],{"class":181},[34,188205,632],{"class":50},[34,188207,624],{"class":181},[34,188209,188210,188212,188214,188216],{"class":36,"line":71},[34,188211,187943],{"class":50},[34,188213,182],{"class":181},[34,188215,8324],{"class":50},[34,188217,624],{"class":181},[34,188219,188220,188222,188224,188226],{"class":36,"line":77},[34,188221,187963],{"class":50},[34,188223,182],{"class":181},[34,188225,103387],{"class":50},[34,188227,624],{"class":181},[34,188229,188230,188232,188234,188236],{"class":36,"line":82},[34,188231,187983],{"class":50},[34,188233,182],{"class":181},[34,188235,187988],{"class":54},[34,188237,624],{"class":181},[34,188239,188240,188242,188244,188246],{"class":36,"line":88},[34,188241,188004],{"class":50},[34,188243,182],{"class":181},[34,188245,103374],{"class":50},[34,188247,624],{"class":181},[34,188249,188250,188252,188254,188256],{"class":36,"line":242},[34,188251,188024],{"class":50},[34,188253,182],{"class":181},[34,188255,632],{"class":50},[34,188257,624],{"class":181},[34,188259,188260,188262,188264],{"class":36,"line":250},[34,188261,188044],{"class":50},[34,188263,182],{"class":181},[34,188265,188266],{"class":54},"\"always\"\n",[34,188268,188269],{"class":36,"line":263},[34,188270,693],{"class":181},[25,188272,188274],{"className":13845,"code":188273,"language":8606,"meta":30,"style":30},"// prettier.config.js or .prettierrc.js\nmodule.exports = {\n  semi: true,\n  singleQuote: true,\n  tabWidth: 2,\n  useTabs: false,\n  trailingComma: 'es5',\n  printWidth: 80,\n  bracketSpacing: true,\n  arrowParens: 'always',\n};\n",[20,188275,188276,188281,188293,188302,188311,188320,188329,188339,188348,188357,188367],{"__ignoreMap":30},[34,188277,188278],{"class":36,"line":37},[34,188279,188280],{"class":40},"// prettier.config.js or .prettierrc.js\n",[34,188282,188283,188285,188287,188289,188291],{"class":36,"line":44},[34,188284,46312],{"class":50},[34,188286,151],{"class":181},[34,188288,46317],{"class":50},[34,188290,683],{"class":580},[34,188292,661],{"class":181},[34,188294,188295,188298,188300],{"class":36,"line":58},[34,188296,188297],{"class":181},"  semi: ",[34,188299,632],{"class":50},[34,188301,624],{"class":181},[34,188303,188304,188307,188309],{"class":36,"line":65},[34,188305,188306],{"class":181},"  singleQuote: ",[34,188308,632],{"class":50},[34,188310,624],{"class":181},[34,188312,188313,188316,188318],{"class":36,"line":71},[34,188314,188315],{"class":181},"  tabWidth: ",[34,188317,8324],{"class":50},[34,188319,624],{"class":181},[34,188321,188322,188325,188327],{"class":36,"line":77},[34,188323,188324],{"class":181},"  useTabs: ",[34,188326,103387],{"class":50},[34,188328,624],{"class":181},[34,188330,188331,188334,188337],{"class":36,"line":82},[34,188332,188333],{"class":181},"  trailingComma: ",[34,188335,188336],{"class":54},"'es5'",[34,188338,624],{"class":181},[34,188340,188341,188344,188346],{"class":36,"line":88},[34,188342,188343],{"class":181},"  printWidth: ",[34,188345,103374],{"class":50},[34,188347,624],{"class":181},[34,188349,188350,188353,188355],{"class":36,"line":242},[34,188351,188352],{"class":181},"  bracketSpacing: ",[34,188354,632],{"class":50},[34,188356,624],{"class":181},[34,188358,188359,188362,188365],{"class":36,"line":250},[34,188360,188361],{"class":181},"  arrowParens: ",[34,188363,188364],{"class":54},"'always'",[34,188366,624],{"class":181},[34,188368,188369],{"class":36,"line":263},[34,188370,17632],{"class":181},[388,188372,188373],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 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}",{"title":30,"searchDepth":44,"depth":44,"links":188375},[188376],{"id":465,"depth":44,"text":466},"Configuration File in Prettier.",{},"/prettier/configuration-file",{"title":466,"description":188377},"prettier/configuration-file",[187770,14117,187877,8606,573],"IwqJu9JDIQ909ewroieOMpQ_myuvqLe-OCSx7d9Bisk",{"id":188385,"title":188386,"body":188387,"date":402,"description":188475,"extension":404,"meta":188476,"navigation":61,"order":88,"path":188477,"seo":188478,"stem":188479,"subject":187770,"tags":188480,"__hash__":188481},"topics/prettier/editor-integration.md","Editor Integration",{"type":8,"value":188388,"toc":188472},[188389,188392,188469],[11,188390,188386],{"id":188391},"editor-integration",[25,188393,188395],{"className":28058,"code":188394,"language":14790,"meta":30,"style":30},"// VS Code settings.json\n{\n  \"editor.defaultFormatter\": \"esbenp.prettier-vscode\",\n  \"editor.formatOnSave\": true,\n  \"[javascript]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  },\n  \"[typescript]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  }\n}\n",[20,188396,188397,188402,188406,188418,188428,188434,188442,188446,188453,188461,188465],{"__ignoreMap":30},[34,188398,188399],{"class":36,"line":37},[34,188400,188401],{"class":40},"// VS Code settings.json\n",[34,188403,188404],{"class":36,"line":44},[34,188405,25296],{"class":181},[34,188407,188408,188411,188413,188416],{"class":36,"line":58},[34,188409,188410],{"class":50},"  \"editor.defaultFormatter\"",[34,188412,182],{"class":181},[34,188414,188415],{"class":54},"\"esbenp.prettier-vscode\"",[34,188417,624],{"class":181},[34,188419,188420,188422,188424,188426],{"class":36,"line":65},[34,188421,129403],{"class":50},[34,188423,182],{"class":181},[34,188425,632],{"class":50},[34,188427,624],{"class":181},[34,188429,188430,188432],{"class":36,"line":71},[34,188431,129431],{"class":50},[34,188433,28073],{"class":181},[34,188435,188436,188438,188440],{"class":36,"line":77},[34,188437,129438],{"class":50},[34,188439,182],{"class":181},[34,188441,129443],{"class":54},[34,188443,188444],{"class":36,"line":82},[34,188445,3400],{"class":181},[34,188447,188448,188451],{"class":36,"line":88},[34,188449,188450],{"class":50},"  \"[typescript]\"",[34,188452,28073],{"class":181},[34,188454,188455,188457,188459],{"class":36,"line":242},[34,188456,129438],{"class":50},[34,188458,182],{"class":181},[34,188460,129443],{"class":54},[34,188462,188463],{"class":36,"line":250},[34,188464,857],{"class":181},[34,188466,188467],{"class":36,"line":263},[34,188468,693],{"class":181},[388,188470,188471],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 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);}",{"title":30,"searchDepth":44,"depth":44,"links":188473},[188474],{"id":188391,"depth":44,"text":188386},"Editor Integration in Prettier.",{},"/prettier/editor-integration",{"title":188386,"description":188475},"prettier/editor-integration",[187770,14117,187877,8606,573],"axtzAPc9fBZEZlgxPbj1IdOC584E6pXrSSM0YQ9yi98",{"id":188483,"title":188484,"body":188485,"date":402,"description":188549,"extension":404,"meta":188550,"navigation":61,"order":242,"path":188551,"seo":188552,"stem":188553,"subject":187770,"tags":188554,"__hash__":188555},"topics/prettier/eslint-integration.md","ESLint Integration",{"type":8,"value":188486,"toc":188546},[188487,188490,188511,188544],[11,188488,188484],{"id":188489},"eslint-integration",[25,188491,188493],{"className":27,"code":188492,"language":29,"meta":30,"style":30},"# install eslint-config-prettier\nnpm install --save-dev eslint-config-prettier\n",[20,188494,188495,188500],{"__ignoreMap":30},[34,188496,188497],{"class":36,"line":37},[34,188498,188499],{"class":40},"# install eslint-config-prettier\n",[34,188501,188502,188504,188506,188508],{"class":36,"line":44},[34,188503,8177],{"class":47},[34,188505,118],{"class":54},[34,188507,29537],{"class":50},[34,188509,188510],{"class":54}," eslint-config-prettier\n",[25,188512,188514],{"className":28058,"code":188513,"language":14790,"meta":30,"style":30},"// .eslintrc.json - add \"prettier\" last in extends\n{\n  \"extends\": [\"eslint:recommended\", \"prettier\"]\n}\n",[20,188515,188516,188521,188525,188540],{"__ignoreMap":30},[34,188517,188518],{"class":36,"line":37},[34,188519,188520],{"class":40},"// .eslintrc.json - add \"prettier\" last in extends\n",[34,188522,188523],{"class":36,"line":44},[34,188524,25296],{"class":181},[34,188526,188527,188529,188531,188533,188535,188538],{"class":36,"line":58},[34,188528,62715],{"class":50},[34,188530,47204],{"class":181},[34,188532,62720],{"class":54},[34,188534,1798],{"class":181},[34,188536,188537],{"class":54},"\"prettier\"",[34,188539,924],{"class":181},[34,188541,188542],{"class":36,"line":65},[34,188543,693],{"class":181},[388,188545,7983],{},{"title":30,"searchDepth":44,"depth":44,"links":188547},[188548],{"id":188489,"depth":44,"text":188484},"ESLint Integration in Prettier.",{},"/prettier/eslint-integration",{"title":188484,"description":188549},"prettier/eslint-integration",[187770,14117,187877,8606,573],"c6QYJXSsDuew9fAFgIEU46pO9sQ7sSlruNq7bho4n9s",{"id":188557,"title":188558,"body":188559,"date":402,"description":188776,"extension":404,"meta":188777,"navigation":61,"order":82,"path":188778,"seo":188779,"stem":188780,"subject":187770,"tags":188781,"__hash__":188782},"topics/prettier/ignore-code.md","Ignore Code",{"type":8,"value":188560,"toc":188773},[188561,188564,188670,188743,188770],[11,188562,188558],{"id":188563},"ignore-code",[25,188565,188567],{"className":13845,"code":188566,"language":8606,"meta":30,"style":30},"// prettier-ignore\nconst matrix = [\n  1, 0, 0,\n  0, 1, 0,\n  0, 0, 1\n];\n\n// prettier-ignore-start\nconst ugly    =    code;\nconst stays   =    unformatted;\n// prettier-ignore-end\n",[20,188568,188569,188574,188584,188599,188614,188627,188631,188635,188640,188652,188665],{"__ignoreMap":30},[34,188570,188571],{"class":36,"line":37},[34,188572,188573],{"class":40},"// prettier-ignore\n",[34,188575,188576,188578,188580,188582],{"class":36,"line":44},[34,188577,14676],{"class":580},[34,188579,17970],{"class":50},[34,188581,683],{"class":580},[34,188583,3304],{"class":181},[34,188585,188586,188589,188591,188593,188595,188597],{"class":36,"line":58},[34,188587,188588],{"class":50},"  1",[34,188590,1798],{"class":181},[34,188592,2773],{"class":50},[34,188594,1798],{"class":181},[34,188596,2773],{"class":50},[34,188598,624],{"class":181},[34,188600,188601,188604,188606,188608,188610,188612],{"class":36,"line":65},[34,188602,188603],{"class":50},"  0",[34,188605,1798],{"class":181},[34,188607,8318],{"class":50},[34,188609,1798],{"class":181},[34,188611,2773],{"class":50},[34,188613,624],{"class":181},[34,188615,188616,188618,188620,188622,188624],{"class":36,"line":71},[34,188617,188603],{"class":50},[34,188619,1798],{"class":181},[34,188621,2773],{"class":50},[34,188623,1798],{"class":181},[34,188625,188626],{"class":50},"1\n",[34,188628,188629],{"class":36,"line":77},[34,188630,3415],{"class":181},[34,188632,188633],{"class":36,"line":82},[34,188634,62],{"emptyLinePlaceholder":61},[34,188636,188637],{"class":36,"line":88},[34,188638,188639],{"class":40},"// prettier-ignore-start\n",[34,188641,188642,188644,188647,188649],{"class":36,"line":242},[34,188643,14676],{"class":580},[34,188645,188646],{"class":50}," ugly",[34,188648,108502],{"class":580},[34,188650,188651],{"class":181},"    code;\n",[34,188653,188654,188656,188659,188662],{"class":36,"line":250},[34,188655,14676],{"class":580},[34,188657,188658],{"class":50}," stays",[34,188660,188661],{"class":580},"   =",[34,188663,188664],{"class":181},"    unformatted;\n",[34,188666,188667],{"class":36,"line":263},[34,188668,188669],{"class":40},"// prettier-ignore-end\n",[25,188671,188673],{"className":1162,"code":188672,"language":1164,"meta":30,"style":30},"\u003C!-- prettier-ignore -->\n\u003Cdiv   class=\"ugly\"   >stays unformatted\u003C/div>\n\n\u003C!-- prettier-ignore-start -->\n\u003Cdiv   class=\"ugly\"   >\n  stays    unformatted\n\u003C/div>\n\u003C!-- prettier-ignore-end -->\n",[20,188674,188675,188680,188701,188705,188710,188725,188730,188738],{"__ignoreMap":30},[34,188676,188677],{"class":36,"line":37},[34,188678,188679],{"class":40},"\u003C!-- prettier-ignore -->\n",[34,188681,188682,188684,188686,188689,188691,188694,188697,188699],{"class":36,"line":44},[34,188683,815],{"class":181},[34,188685,1240],{"class":177},[34,188687,188688],{"class":47},"   class",[34,188690,1301],{"class":181},[34,188692,188693],{"class":54},"\"ugly\"",[34,188695,188696],{"class":181},"   >stays unformatted\u003C/",[34,188698,1240],{"class":177},[34,188700,1248],{"class":181},[34,188702,188703],{"class":36,"line":58},[34,188704,62],{"emptyLinePlaceholder":61},[34,188706,188707],{"class":36,"line":65},[34,188708,188709],{"class":40},"\u003C!-- prettier-ignore-start -->\n",[34,188711,188712,188714,188716,188718,188720,188722],{"class":36,"line":71},[34,188713,815],{"class":181},[34,188715,1240],{"class":177},[34,188717,188688],{"class":47},[34,188719,1301],{"class":181},[34,188721,188693],{"class":54},[34,188723,188724],{"class":181},"   >\n",[34,188726,188727],{"class":36,"line":77},[34,188728,188729],{"class":181},"  stays    unformatted\n",[34,188731,188732,188734,188736],{"class":36,"line":82},[34,188733,2089],{"class":181},[34,188735,1240],{"class":177},[34,188737,1248],{"class":181},[34,188739,188740],{"class":36,"line":88},[34,188741,188742],{"class":40},"\u003C!-- prettier-ignore-end -->\n",[25,188744,188746],{"className":38192,"code":188745,"language":38194,"meta":30,"style":30},"/* prettier-ignore */\n.ugly    {    color:   red;    }\n",[20,188747,188748,188753],{"__ignoreMap":30},[34,188749,188750],{"class":36,"line":37},[34,188751,188752],{"class":40},"/* prettier-ignore */\n",[34,188754,188755,188758,188761,188763,188765,188767],{"class":36,"line":44},[34,188756,188757],{"class":47},".ugly",[34,188759,188760],{"class":181},"    {    ",[34,188762,40828],{"class":50},[34,188764,107222],{"class":181},[34,188766,38652],{"class":50},[34,188768,188769],{"class":181},";    }\n",[388,188771,188772],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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":30,"searchDepth":44,"depth":44,"links":188774},[188775],{"id":188563,"depth":44,"text":188558},"Ignore Code in Prettier.",{},"/prettier/ignore-code",{"title":188558,"description":188776},"prettier/ignore-code",[187770,14117,187877,8606,573],"L1expj0PaSEmBcCYzTOnBmnZcU2RQSk1gdjaPeSNCOE",{"id":188784,"title":188785,"body":188786,"date":402,"description":188800,"extension":404,"meta":188801,"navigation":61,"order":77,"path":188802,"seo":188803,"stem":188804,"subject":187770,"tags":188805,"__hash__":188806},"topics/prettier/ignore-files.md","Ignore Files",{"type":8,"value":188787,"toc":188797},[188788,188791],[11,188789,188785],{"id":188790},"ignore-files",[25,188792,188795],{"className":188793,"code":188794,"language":780,"meta":30},[13703],"# .prettierignore\nnode_modules/\ndist/\nbuild/\ncoverage/\n*.min.js\npackage-lock.json\nyarn.lock\npnpm-lock.yaml\n",[20,188796,188794],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":188798},[188799],{"id":188790,"depth":44,"text":188785},"Ignore Files in Prettier.",{},"/prettier/ignore-files",{"title":188785,"description":188800},"prettier/ignore-files",[187770,14117,187877,8606,573],"WiVQggVPbdCFt0zDrWVhRjxgRiORUa5vSffv1xQ0iik",{"id":188808,"title":97,"body":188809,"date":402,"description":188896,"extension":404,"meta":188897,"navigation":61,"order":44,"path":188898,"seo":188899,"stem":188900,"subject":187770,"tags":188901,"__hash__":188902},"topics/prettier/installation.md",{"type":8,"value":188810,"toc":188893},[188811,188813,188891],[11,188812,97],{"id":96},[25,188814,188816],{"className":27,"code":188815,"language":29,"meta":30,"style":30},"# npm\nnpm install --save-dev prettier\n\n# yarn\nyarn add --dev prettier\n\n# pnpm\npnpm add --save-dev prettier\n\n# global installation\nnpm install -g prettier\n",[20,188817,188818,188822,188833,188837,188842,188853,188857,188862,188872,188876,188881],{"__ignoreMap":30},[34,188819,188820],{"class":36,"line":37},[34,188821,15840],{"class":40},[34,188823,188824,188826,188828,188830],{"class":36,"line":44},[34,188825,8177],{"class":47},[34,188827,118],{"class":54},[34,188829,29537],{"class":50},[34,188831,188832],{"class":54}," prettier\n",[34,188834,188835],{"class":36,"line":58},[34,188836,62],{"emptyLinePlaceholder":61},[34,188838,188839],{"class":36,"line":65},[34,188840,188841],{"class":40},"# yarn\n",[34,188843,188844,188846,188848,188851],{"class":36,"line":71},[34,188845,13810],{"class":47},[34,188847,7854],{"class":54},[34,188849,188850],{"class":50}," --dev",[34,188852,188832],{"class":54},[34,188854,188855],{"class":36,"line":77},[34,188856,62],{"emptyLinePlaceholder":61},[34,188858,188859],{"class":36,"line":82},[34,188860,188861],{"class":40},"# pnpm\n",[34,188863,188864,188866,188868,188870],{"class":36,"line":88},[34,188865,13788],{"class":47},[34,188867,7854],{"class":54},[34,188869,29537],{"class":50},[34,188871,188832],{"class":54},[34,188873,188874],{"class":36,"line":242},[34,188875,62],{"emptyLinePlaceholder":61},[34,188877,188878],{"class":36,"line":250},[34,188879,188880],{"class":40},"# global installation\n",[34,188882,188883,188885,188887,188889],{"class":36,"line":263},[34,188884,8177],{"class":47},[34,188886,118],{"class":54},[34,188888,9753],{"class":50},[34,188890,188832],{"class":54},[388,188892,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":188894},[188895],{"id":96,"depth":44,"text":97},"Installation in Prettier.",{},"/prettier/installation",{"title":97,"description":188896},"prettier/installation",[187770,14117,187877,8606,573],"8phSKsCJJHPKqeStYcZ4HHNMbmYRw_KRFuoUFSagi-c",{"id":188904,"title":188905,"body":188906,"date":402,"description":189086,"extension":404,"meta":189087,"navigation":61,"order":263,"path":189088,"seo":189089,"stem":189090,"subject":187770,"tags":189091,"__hash__":189092},"topics/prettier/override-per-file-type.md","Override Per File Type",{"type":8,"value":188907,"toc":189083},[188908,188911,189081],[11,188909,188905],{"id":188910},"override-per-file-type",[25,188912,188914],{"className":28058,"code":188913,"language":14790,"meta":30,"style":30},"// .prettierrc\n{\n  \"semi\": true,\n  \"overrides\": [\n    {\n      \"files\": \"*.md\",\n      \"options\": {\n        \"tabWidth\": 4\n      }\n    },\n    {\n      \"files\": [\"*.json\", \".prettierrc\"],\n      \"options\": {\n        \"tabWidth\": 2\n      }\n    },\n    {\n      \"files\": \"*.yaml\",\n      \"options\": {\n        \"tabWidth\": 2,\n        \"singleQuote\": false\n      }\n    }\n  ]\n}\n",[20,188915,188916,188921,188925,188935,188942,188946,188958,188965,188975,188979,188983,188987,189003,189009,189017,189021,189025,189029,189040,189046,189056,189065,189069,189073,189077],{"__ignoreMap":30},[34,188917,188918],{"class":36,"line":37},[34,188919,188920],{"class":40},"// .prettierrc\n",[34,188922,188923],{"class":36,"line":44},[34,188924,25296],{"class":181},[34,188926,188927,188929,188931,188933],{"class":36,"line":58},[34,188928,187903],{"class":50},[34,188930,182],{"class":181},[34,188932,632],{"class":50},[34,188934,624],{"class":181},[34,188936,188937,188940],{"class":36,"line":65},[34,188938,188939],{"class":50},"  \"overrides\"",[34,188941,28102],{"class":181},[34,188943,188944],{"class":36,"line":71},[34,188945,25561],{"class":181},[34,188947,188948,188951,188953,188956],{"class":36,"line":77},[34,188949,188950],{"class":50},"      \"files\"",[34,188952,182],{"class":181},[34,188954,188955],{"class":54},"\"*.md\"",[34,188957,624],{"class":181},[34,188959,188960,188963],{"class":36,"line":82},[34,188961,188962],{"class":50},"      \"options\"",[34,188964,28073],{"class":181},[34,188966,188967,188970,188972],{"class":36,"line":88},[34,188968,188969],{"class":50},"        \"tabWidth\"",[34,188971,182],{"class":181},[34,188973,188974],{"class":50},"4\n",[34,188976,188977],{"class":36,"line":242},[34,188978,3078],{"class":181},[34,188980,188981],{"class":36,"line":250},[34,188982,15762],{"class":181},[34,188984,188985],{"class":36,"line":263},[34,188986,25561],{"class":181},[34,188988,188989,188991,188993,188996,188998,189001],{"class":36,"line":275},[34,188990,188950],{"class":50},[34,188992,47204],{"class":181},[34,188994,188995],{"class":54},"\"*.json\"",[34,188997,1798],{"class":181},[34,188999,189000],{"class":54},"\".prettierrc\"",[34,189002,46332],{"class":181},[34,189004,189005,189007],{"class":36,"line":700},[34,189006,188962],{"class":50},[34,189008,28073],{"class":181},[34,189010,189011,189013,189015],{"class":36,"line":706},[34,189012,188969],{"class":50},[34,189014,182],{"class":181},[34,189016,91180],{"class":50},[34,189018,189019],{"class":36,"line":715},[34,189020,3078],{"class":181},[34,189022,189023],{"class":36,"line":725},[34,189024,15762],{"class":181},[34,189026,189027],{"class":36,"line":734},[34,189028,25561],{"class":181},[34,189030,189031,189033,189035,189038],{"class":36,"line":742},[34,189032,188950],{"class":50},[34,189034,182],{"class":181},[34,189036,189037],{"class":54},"\"*.yaml\"",[34,189039,624],{"class":181},[34,189041,189042,189044],{"class":36,"line":748},[34,189043,188962],{"class":50},[34,189045,28073],{"class":181},[34,189047,189048,189050,189052,189054],{"class":36,"line":754},[34,189049,188969],{"class":50},[34,189051,182],{"class":181},[34,189053,8324],{"class":50},[34,189055,624],{"class":181},[34,189057,189058,189061,189063],{"class":36,"line":759},[34,189059,189060],{"class":50},"        \"singleQuote\"",[34,189062,182],{"class":181},[34,189064,14607],{"class":50},[34,189066,189067],{"class":36,"line":771},[34,189068,3078],{"class":181},[34,189070,189071],{"class":36,"line":794},[34,189072,3229],{"class":181},[34,189074,189075],{"class":36,"line":824},[34,189076,85237],{"class":181},[34,189078,189079],{"class":36,"line":830},[34,189080,693],{"class":181},[388,189082,188471],{},{"title":30,"searchDepth":44,"depth":44,"links":189084},[189085],{"id":188910,"depth":44,"text":188905},"Override Per File Type in Prettier.",{},"/prettier/override-per-file-type",{"title":188905,"description":189086},"prettier/override-per-file-type",[187770,14117,187877,8606,573],"TBdGulfi0JNQU6wItoWntz-cDwjQ0DC5-tuW0bJ5WoY",{"id":189094,"title":189095,"body":189096,"date":2633,"description":189144,"extension":404,"meta":189145,"navigation":61,"order":37,"path":189146,"seo":189147,"stem":189148,"subject":187770,"tags":189149,"__hash__":189150},"topics/prettier/overview.md","Prettier",{"type":8,"value":189097,"toc":189142},[189098],[309,189099,189100,189104,189108,189112,189116,189120,189124,189128,189132,189138],{},[312,189101,189102],{},[145,189103,97],{"href":188898},[312,189105,189106],{},[145,189107,91184],{"href":187873},[312,189109,189110],{},[145,189111,466],{"href":188379},[312,189113,189114],{},[145,189115,334],{"href":188163},[312,189117,189118],{},[145,189119,188785],{"href":188802},[312,189121,189122],{},[145,189123,188558],{"href":188778},[312,189125,189126],{},[145,189127,188386],{"href":188477},[312,189129,189130],{},[145,189131,188484],{"href":188551},[312,189133,189134],{},[145,189135,189137],{"href":189136},"/prettier/pre-commit-hook","Pre-commit Hook",[312,189139,189140],{},[145,189141,188905],{"href":189088},{"title":30,"searchDepth":44,"depth":44,"links":189143},[],"Quick reference for Prettier code formatter configuration, CLI commands, and common options.",{},"/prettier/overview",{"title":189095,"description":189144},"prettier/overview",[187770,14117,187877,8606,573],"BKFHhYupF0xUNlFzb7FWgoQwSAr_vyuMhLN1IIwmxZw",{"id":189152,"title":189137,"body":189153,"date":402,"description":189232,"extension":404,"meta":189233,"navigation":61,"order":250,"path":189136,"seo":189234,"stem":189235,"subject":187770,"tags":189236,"__hash__":189237},"topics/prettier/pre-commit-hook.md",{"type":8,"value":189154,"toc":189229},[189155,189157,189188,189227],[11,189156,189137],{"id":120223},[25,189158,189160],{"className":27,"code":189159,"language":29,"meta":30,"style":30},"# install husky and lint-staged\nnpm install --save-dev husky lint-staged\nnpx husky init\n",[20,189161,189162,189167,189180],{"__ignoreMap":30},[34,189163,189164],{"class":36,"line":37},[34,189165,189166],{"class":40},"# install husky and lint-staged\n",[34,189168,189169,189171,189173,189175,189177],{"class":36,"line":44},[34,189170,8177],{"class":47},[34,189172,118],{"class":54},[34,189174,29537],{"class":50},[34,189176,29547],{"class":54},[34,189178,189179],{"class":54}," lint-staged\n",[34,189181,189182,189184,189186],{"class":36,"line":58},[34,189183,8205],{"class":47},[34,189185,29547],{"class":54},[34,189187,8180],{"class":54},[25,189189,189191],{"className":28058,"code":189190,"language":14790,"meta":30,"style":30},"// package.json\n{\n  \"lint-staged\": {\n    \"*.{js,jsx,ts,tsx,json,css,md}\": \"prettier --write\"\n  }\n}\n",[20,189192,189193,189198,189202,189209,189219,189223],{"__ignoreMap":30},[34,189194,189195],{"class":36,"line":37},[34,189196,189197],{"class":40},"// package.json\n",[34,189199,189200],{"class":36,"line":44},[34,189201,25296],{"class":181},[34,189203,189204,189207],{"class":36,"line":58},[34,189205,189206],{"class":50},"  \"lint-staged\"",[34,189208,28073],{"class":181},[34,189210,189211,189214,189216],{"class":36,"line":65},[34,189212,189213],{"class":50},"    \"*.{js,jsx,ts,tsx,json,css,md}\"",[34,189215,182],{"class":181},[34,189217,189218],{"class":54},"\"prettier --write\"\n",[34,189220,189221],{"class":36,"line":71},[34,189222,857],{"class":181},[34,189224,189225],{"class":36,"line":77},[34,189226,693],{"class":181},[388,189228,7983],{},{"title":30,"searchDepth":44,"depth":44,"links":189230},[189231],{"id":120223,"depth":44,"text":189137},"Pre-commit Hook in Prettier.",{},{"title":189137,"description":189232},"prettier/pre-commit-hook",[187770,14117,187877,8606,573],"Y0R-yEjyfbujt32LL13CDwAwopiLJRVv9nARnMao3iE",{"id":189239,"title":189240,"body":189241,"date":402,"description":189532,"extension":404,"meta":189533,"navigation":61,"order":37,"path":189534,"seo":189535,"stem":189536,"subject":189322,"tags":189537,"__hash__":189539},"topics/prisma/overview.md","Prisma",{"type":8,"value":189242,"toc":189524},[189243,189245,189248,189269,189288,189292,189295,189312,189318,189335,189337,189340,189358,189377,189381,189384,189455,189458,189464,189493,189496,189498,189514,189522],[11,189244,13534],{"id":13533},[16,189246,189247],{},"Prisma is an open-source ORM designed for efficient and type-safe database interactions with Postgres, MySQL, SQLite, and others.",[25,189249,189251],{"className":27,"code":189250,"language":29,"meta":30,"style":30},"# Initialize a new Prisma project\nnpx prisma init --db\n",[20,189252,189253,189258],{"__ignoreMap":30},[34,189254,189255],{"class":36,"line":37},[34,189256,189257],{"class":40},"# Initialize a new Prisma project\n",[34,189259,189260,189262,189264,189266],{"class":36,"line":44},[34,189261,8205],{"class":47},[34,189263,16708],{"class":54},[34,189265,5255],{"class":54},[34,189267,189268],{"class":50}," --db\n",[25,189270,189272],{"className":27,"code":189271,"language":29,"meta":30,"style":30},"# Generate Prisma client\nnpx prisma generate\n",[20,189273,189274,189279],{"__ignoreMap":30},[34,189275,189276],{"class":36,"line":37},[34,189277,189278],{"class":40},"# Generate Prisma client\n",[34,189280,189281,189283,189285],{"class":36,"line":44},[34,189282,8205],{"class":47},[34,189284,16708],{"class":54},[34,189286,189287],{"class":54}," generate\n",[11,189289,189291],{"id":189290},"database-setup","Database Setup",[16,189293,189294],{},"For Prisma Postgres, create and configure your database:",[25,189296,189298],{"className":27,"code":189297,"language":29,"meta":30,"style":30},"# Create a new database\nnpx create-db\n",[20,189299,189300,189305],{"__ignoreMap":30},[34,189301,189302],{"class":36,"line":37},[34,189303,189304],{"class":40},"# Create a new database\n",[34,189306,189307,189309],{"class":36,"line":44},[34,189308,8205],{"class":47},[34,189310,189311],{"class":54}," create-db\n",[16,189313,189314,189315,165],{},"Establish connections using URL strings in ",[20,189316,189317],{},"prisma.schema",[25,189319,189323],{"className":189320,"code":189321,"language":189322,"meta":30,"style":30},"language-prisma shiki shiki-themes github-light github-dark","// Example Database URL\nDATABASE_URL=\"postgresql://user:password@localhost:5432/mydb\"\n","prisma",[20,189324,189325,189330],{"__ignoreMap":30},[34,189326,189327],{"class":36,"line":37},[34,189328,189329],{},"// Example Database URL\n",[34,189331,189332],{"class":36,"line":44},[34,189333,189334],{},"DATABASE_URL=\"postgresql://user:password@localhost:5432/mydb\"\n",[11,189336,91184],{"id":91183},[16,189338,189339],{},"Quick access to key tasks:",[25,189341,189343],{"className":27,"code":189342,"language":29,"meta":30,"style":30},"# Migrate your database\nnpx prisma migrate\n",[20,189344,189345,189350],{"__ignoreMap":30},[34,189346,189347],{"class":36,"line":37},[34,189348,189349],{"class":40},"# Migrate your database\n",[34,189351,189352,189354,189356],{"class":36,"line":44},[34,189353,8205],{"class":47},[34,189355,16708],{"class":54},[34,189357,74088],{"class":54},[25,189359,189361],{"className":27,"code":189360,"language":29,"meta":30,"style":30},"# Run Prisma Studio (GUI for managing data)\nnpx prisma studio\n",[20,189362,189363,189368],{"__ignoreMap":30},[34,189364,189365],{"class":36,"line":37},[34,189366,189367],{"class":40},"# Run Prisma Studio (GUI for managing data)\n",[34,189369,189370,189372,189374],{"class":36,"line":44},[34,189371,8205],{"class":47},[34,189373,16708],{"class":54},[34,189375,189376],{"class":54}," studio\n",[11,189378,189380],{"id":189379},"using-the-prisma-client","Using the Prisma Client",[16,189382,189383],{},"Access type-safe queries in your application:",[25,189385,189387],{"className":571,"code":189386,"language":573,"meta":30,"style":30},"// Fetch users\nconst users = await prisma.user.findMany();\n\n// Create a new user\nconst newUser = await prisma.user.create({\n  data: { name: \"Alice\", email: \"alice@example.com\" },\n});\n",[20,189388,189389,189394,189412,189416,189421,189438,189451],{"__ignoreMap":30},[34,189390,189391],{"class":36,"line":37},[34,189392,189393],{"class":40},"// Fetch users\n",[34,189395,189396,189398,189400,189402,189404,189407,189410],{"class":36,"line":44},[34,189397,14676],{"class":580},[34,189399,28425],{"class":50},[34,189401,683],{"class":580},[34,189403,14763],{"class":580},[34,189405,189406],{"class":181}," prisma.user.",[34,189408,189409],{"class":47},"findMany",[34,189411,851],{"class":181},[34,189413,189414],{"class":36,"line":58},[34,189415,62],{"emptyLinePlaceholder":61},[34,189417,189418],{"class":36,"line":65},[34,189419,189420],{"class":40},"// Create a new user\n",[34,189422,189423,189425,189428,189430,189432,189434,189436],{"class":36,"line":71},[34,189424,14676],{"class":580},[34,189426,189427],{"class":50}," newUser",[34,189429,683],{"class":580},[34,189431,14763],{"class":580},[34,189433,189406],{"class":181},[34,189435,72666],{"class":47},[34,189437,613],{"class":181},[34,189439,189440,189443,189445,189447,189449],{"class":36,"line":77},[34,189441,189442],{"class":181},"  data: { name: ",[34,189444,21650],{"class":54},[34,189446,83361],{"class":181},[34,189448,83306],{"class":54},[34,189450,14846],{"class":181},[34,189452,189453],{"class":36,"line":82},[34,189454,14873],{"class":181},[11,189456,189457],{"id":109531},"Schema",[16,189459,189460,189461,165],{},"Define your data model in ",[20,189462,189463],{},"prisma/schema.prisma",[25,189465,189467],{"className":189320,"code":189466,"language":189322,"meta":30,"style":30},"model User {\n  id    Int    @id @default(autoincrement())\n  name  String\n  email String @unique\n}\n",[20,189468,189469,189474,189479,189484,189489],{"__ignoreMap":30},[34,189470,189471],{"class":36,"line":37},[34,189472,189473],{},"model User {\n",[34,189475,189476],{"class":36,"line":44},[34,189477,189478],{},"  id    Int    @id @default(autoincrement())\n",[34,189480,189481],{"class":36,"line":58},[34,189482,189483],{},"  name  String\n",[34,189485,189486],{"class":36,"line":65},[34,189487,189488],{},"  email String @unique\n",[34,189490,189491],{"class":36,"line":71},[34,189492,693],{},[16,189494,189495],{},"Define relations for complex data structures.",[11,189497,28203],{"id":28202},[309,189499,189500,189507],{},[312,189501,189502],{},[145,189503,189506],{"href":189504,"rel":189505},"https://www.prisma.io/docs",[149],"Prisma Official Docs",[312,189508,189509],{},[145,189510,189513],{"href":189511,"rel":189512},"https://github.com/prisma/prisma",[149],"Prisma GitHub",[16,189515,15998,189516,189521],{},[145,189517,189520],{"href":189518,"rel":189519},"https://www.prisma.io/docs/postgres",[149],"Prisma Postgres"," for scalable, managed database services.",[388,189523,93387],{},{"title":30,"searchDepth":44,"depth":44,"links":189525},[189526,189527,189528,189529,189530,189531],{"id":13533,"depth":44,"text":13534},{"id":189290,"depth":44,"text":189291},{"id":91183,"depth":44,"text":91184},{"id":189379,"depth":44,"text":189380},{"id":109531,"depth":44,"text":189457},{"id":28202,"depth":44,"text":28203},"Quick reference for using Prisma ORM and Prisma Postgres.",{},"/prisma/overview",{"title":189240,"description":189532},"prisma/overview",[58729,28650,573,189538],"migration","Cdmb6rR0sTAbD3FIbY8aLg3od9merJCvhvMDr8_j03A",{"id":189541,"title":189542,"body":189543,"date":402,"description":189627,"extension":404,"meta":189628,"navigation":61,"order":37,"path":189629,"seo":189630,"stem":189631,"subject":189584,"tags":189632,"__hash__":189636},"topics/prolog/overview.md","Prolog Basics",{"type":8,"value":189544,"toc":189622},[189545,189549,189552,189573,189577,189580,189597,189601,189604,189619],[11,189546,189548],{"id":189547},"installing-swi-prolog","Installing SWI-Prolog",[16,189550,189551],{},"Install SWI-Prolog.",[25,189553,189555],{"className":27,"code":189554,"language":29,"meta":30,"style":30},"sudo apt-get install swi-prolog\nprolog\n",[20,189556,189557,189568],{"__ignoreMap":30},[34,189558,189559,189561,189563,189565],{"class":36,"line":37},[34,189560,436],{"class":47},[34,189562,62482],{"class":54},[34,189564,118],{"class":54},[34,189566,189567],{"class":54}," swi-prolog\n",[34,189569,189570],{"class":36,"line":44},[34,189571,189572],{"class":47},"prolog\n",[11,189574,189576],{"id":189575},"writing-facts","Writing Facts",[16,189578,189579],{},"Facts define data.",[25,189581,189585],{"className":189582,"code":189583,"language":189584,"meta":30,"style":30},"language-prolog shiki shiki-themes github-light github-dark","parent(john, mary).\nparent(mary, sue).\n","prolog",[20,189586,189587,189592],{"__ignoreMap":30},[34,189588,189589],{"class":36,"line":37},[34,189590,189591],{},"parent(john, mary).\n",[34,189593,189594],{"class":36,"line":44},[34,189595,189596],{},"parent(mary, sue).\n",[11,189598,189600],{"id":189599},"writing-rules","Writing Rules",[16,189602,189603],{},"Rules define relationships.",[25,189605,189607],{"className":189582,"code":189606,"language":189584,"meta":30,"style":30},"ancestor(X, Y) :- parent(X, Y).\nancestor(X, Z) :- parent(X, Y), ancestor(Y, Z).\n",[20,189608,189609,189614],{"__ignoreMap":30},[34,189610,189611],{"class":36,"line":37},[34,189612,189613],{},"ancestor(X, Y) :- parent(X, Y).\n",[34,189615,189616],{"class":36,"line":44},[34,189617,189618],{},"ancestor(X, Z) :- parent(X, Y), ancestor(Y, Z).\n",[388,189620,189621],{},"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);}",{"title":30,"searchDepth":44,"depth":44,"links":189623},[189624,189625,189626],{"id":189547,"depth":44,"text":189548},{"id":189575,"depth":44,"text":189576},{"id":189599,"depth":44,"text":189600},"Get started with Prolog, facts, rules, and queries.",{},"/prolog/overview",{"title":189542,"description":189627},"prolog/overview",[189584,189633,109302,189634,189635],"facts","rules","swi-prolog","1ttaI6kbeVf9rzccJev1BN0VxRGxDg8vnGmIkqMY8Jg",{"id":189638,"title":189639,"body":189640,"date":402,"description":189826,"extension":404,"meta":189827,"navigation":61,"order":37,"path":189828,"seo":189829,"stem":189830,"subject":189831,"tags":189832,"__hash__":189833},"topics/prometheus/overview.md","Prometheus Cheat Sheet",{"type":8,"value":189641,"toc":189820},[189642,189646,189680,189684,189729,189733,189764,189768,189817],[11,189643,189645],{"id":189644},"installing-prometheus","Installing Prometheus",[25,189647,189649],{"className":28261,"code":189648,"language":10358,"meta":30,"style":30},"# Download Prometheus\nwget https://github.com/prometheus/prometheus/releases/download/v2.X/prometheus-2.X.linux-amd64.tar.gz\ntar xvzf prometheus-2.X.linux-amd64.tar.gz\n./prometheus --config.file=prometheus.yml\n",[20,189650,189651,189656,189663,189672],{"__ignoreMap":30},[34,189652,189653],{"class":36,"line":37},[34,189654,189655],{"class":40},"# Download Prometheus\n",[34,189657,189658,189660],{"class":36,"line":44},[34,189659,28992],{"class":47},[34,189661,189662],{"class":54}," https://github.com/prometheus/prometheus/releases/download/v2.X/prometheus-2.X.linux-amd64.tar.gz\n",[34,189664,189665,189667,189669],{"class":36,"line":58},[34,189666,120598],{"class":47},[34,189668,120601],{"class":54},[34,189670,189671],{"class":54}," prometheus-2.X.linux-amd64.tar.gz\n",[34,189673,189674,189677],{"class":36,"line":65},[34,189675,189676],{"class":47},"./prometheus",[34,189678,189679],{"class":50}," --config.file=prometheus.yml\n",[11,189681,189683],{"id":189682},"scraping-targets","Scraping Targets",[25,189685,189687],{"className":168,"code":189686,"language":170,"meta":30,"style":30},"scrape_configs:\n  - job_name: 'example'\n    static_configs:\n      - targets: ['localhost:9090']\n",[20,189688,189689,189696,189708,189715],{"__ignoreMap":30},[34,189690,189691,189694],{"class":36,"line":37},[34,189692,189693],{"class":177},"scrape_configs",[34,189695,193],{"class":181},[34,189697,189698,189700,189703,189705],{"class":36,"line":44},[34,189699,46644],{"class":181},[34,189701,189702],{"class":177},"job_name",[34,189704,182],{"class":181},[34,189706,189707],{"class":54},"'example'\n",[34,189709,189710,189713],{"class":36,"line":58},[34,189711,189712],{"class":177},"    static_configs",[34,189714,193],{"class":181},[34,189716,189717,189719,189722,189724,189727],{"class":36,"line":65},[34,189718,212],{"class":181},[34,189720,189721],{"class":177},"targets",[34,189723,47204],{"class":181},[34,189725,189726],{"class":54},"'localhost:9090'",[34,189728,924],{"class":181},[11,189730,189732],{"id":189731},"writing-promql-queries","Writing PromQL Queries",[25,189734,189738],{"className":189735,"code":189736,"language":189737,"meta":30,"style":30},"language-promql shiki shiki-themes github-light github-dark","# Average CPU usage\ntopk(5, rate(cpu_usage{instance=\"localhost\"}[5m]))\n\n# Alerts based on memory usage\nnode_memory_usage_bytes{job=\"example\"} > 0.8\n","promql",[20,189739,189740,189745,189750,189754,189759],{"__ignoreMap":30},[34,189741,189742],{"class":36,"line":37},[34,189743,189744],{},"# Average CPU usage\n",[34,189746,189747],{"class":36,"line":44},[34,189748,189749],{},"topk(5, rate(cpu_usage{instance=\"localhost\"}[5m]))\n",[34,189751,189752],{"class":36,"line":58},[34,189753,62],{"emptyLinePlaceholder":61},[34,189755,189756],{"class":36,"line":65},[34,189757,189758],{},"# Alerts based on memory usage\n",[34,189760,189761],{"class":36,"line":71},[34,189762,189763],{},"node_memory_usage_bytes{job=\"example\"} > 0.8\n",[11,189765,189767],{"id":189766},"setting-alerts","Setting Alerts",[25,189769,189771],{"className":168,"code":189770,"language":170,"meta":30,"style":30},"# Alertmanager example\nalerting:\n  alertmanagers:\n    - static_configs:\n        - targets:\n            - alertmanager:9093\n",[20,189772,189773,189778,189785,189792,189801,189809],{"__ignoreMap":30},[34,189774,189775],{"class":36,"line":37},[34,189776,189777],{"class":40},"# Alertmanager example\n",[34,189779,189780,189783],{"class":36,"line":44},[34,189781,189782],{"class":177},"alerting",[34,189784,193],{"class":181},[34,189786,189787,189790],{"class":36,"line":58},[34,189788,189789],{"class":177},"  alertmanagers",[34,189791,193],{"class":181},[34,189793,189794,189796,189799],{"class":36,"line":65},[34,189795,5120],{"class":181},[34,189797,189798],{"class":177},"static_configs",[34,189800,193],{"class":181},[34,189802,189803,189805,189807],{"class":36,"line":71},[34,189804,139824],{"class":181},[34,189806,189721],{"class":177},[34,189808,193],{"class":181},[34,189810,189811,189814],{"class":36,"line":77},[34,189812,189813],{"class":181},"            - ",[34,189815,189816],{"class":54},"alertmanager:9093\n",[388,189818,189819],{},"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 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);}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":30,"searchDepth":44,"depth":44,"links":189821},[189822,189823,189824,189825],{"id":189644,"depth":44,"text":189645},{"id":189682,"depth":44,"text":189683},{"id":189731,"depth":44,"text":189732},{"id":189766,"depth":44,"text":189767},"Practical Prometheus examples from setup to PromQL alerts.",{},"/prometheus/overview",{"title":189639,"description":189826},"prometheus/overview","prometheus",[189831,14143,120778,189737],"o9CPxPVSBVxbuROvin_xNKtk9-Y1-IvontZ_7e6S5uI",{"id":189835,"title":189836,"body":189837,"date":402,"description":190187,"extension":404,"meta":190188,"navigation":61,"order":37,"path":190189,"seo":190190,"stem":190191,"subject":111388,"tags":190192,"__hash__":190194},"topics/protobuf/overview.md","Protocol Buffers (Protobuf)",{"type":8,"value":189838,"toc":190178},[189839,189841,189844,189848,189897,189901,189907,189966,189970,189973,189992,189995,189999,190004,190069,190074,190098,190100,190119,190123,190126,190175],[11,189840,14],{"id":13},[16,189842,189843],{},"Protocol Buffers (Protobuf) is a language-neutral, platform-neutral mechanism for serializing structured data. It is useful for creating efficient, lightweight communication between services.",[11,189845,189847],{"id":189846},"syntax-basics","Syntax Basics",[25,189849,189853],{"className":189850,"code":189851,"language":189852,"meta":30,"style":30},"language-proto shiki shiki-themes github-light github-dark","syntax = \"proto3\";\npackage tutorial;\n\n// Define a message\nmessage Person {\n  string name = 1;            // Field with type and tag\n  int32 id = 2;              // Unique field numbering\n  string email = 3;          // Optional\n}\n","proto",[20,189854,189855,189859,189864,189868,189873,189878,189883,189888,189893],{"__ignoreMap":30},[34,189856,189857],{"class":36,"line":37},[34,189858,111400],{},[34,189860,189861],{"class":36,"line":44},[34,189862,189863],{},"package tutorial;\n",[34,189865,189866],{"class":36,"line":58},[34,189867,62],{"emptyLinePlaceholder":61},[34,189869,189870],{"class":36,"line":65},[34,189871,189872],{},"// Define a message\n",[34,189874,189875],{"class":36,"line":71},[34,189876,189877],{},"message Person {\n",[34,189879,189880],{"class":36,"line":77},[34,189881,189882],{},"  string name = 1;            // Field with type and tag\n",[34,189884,189885],{"class":36,"line":82},[34,189886,189887],{},"  int32 id = 2;              // Unique field numbering\n",[34,189889,189890],{"class":36,"line":88},[34,189891,189892],{},"  string email = 3;          // Optional\n",[34,189894,189895],{"class":36,"line":242},[34,189896,693],{},[11,189898,189900],{"id":189899},"defining-schemas","Defining Schemas",[16,189902,15998,189903,189906],{},[20,189904,189905],{},".proto"," files to define structures:",[25,189908,189910],{"className":189850,"code":189909,"language":189852,"meta":30,"style":30},"syntax = \"proto3\";\n\nmessage Address {\n  string street = 1;\n  string city = 2;\n  int32 zip = 3;\n}\n\nmessage User {\n  string name = 1;\n  Address home = 2;          // Nested type\n}\n",[20,189911,189912,189916,189920,189925,189930,189935,189940,189944,189948,189953,189957,189962],{"__ignoreMap":30},[34,189913,189914],{"class":36,"line":37},[34,189915,111400],{},[34,189917,189918],{"class":36,"line":44},[34,189919,62],{"emptyLinePlaceholder":61},[34,189921,189922],{"class":36,"line":58},[34,189923,189924],{},"message Address {\n",[34,189926,189927],{"class":36,"line":65},[34,189928,189929],{},"  string street = 1;\n",[34,189931,189932],{"class":36,"line":71},[34,189933,189934],{},"  string city = 2;\n",[34,189936,189937],{"class":36,"line":77},[34,189938,189939],{},"  int32 zip = 3;\n",[34,189941,189942],{"class":36,"line":82},[34,189943,693],{},[34,189945,189946],{"class":36,"line":88},[34,189947,62],{"emptyLinePlaceholder":61},[34,189949,189950],{"class":36,"line":242},[34,189951,189952],{},"message User {\n",[34,189954,189955],{"class":36,"line":250},[34,189956,111446],{},[34,189958,189959],{"class":36,"line":263},[34,189960,189961],{},"  Address home = 2;          // Nested type\n",[34,189963,189964],{"class":36,"line":275},[34,189965,693],{},[11,189967,189969],{"id":189968},"generating-code","Generating Code",[16,189971,189972],{},"To generate code for your chosen language:",[25,189974,189976],{"className":27,"code":189975,"language":29,"meta":30,"style":30},"protoc --proto_path=. --python_out=. addressbook.proto\n",[20,189977,189978],{"__ignoreMap":30},[34,189979,189980,189983,189986,189989],{"class":36,"line":37},[34,189981,189982],{"class":47},"protoc",[34,189984,189985],{"class":50}," --proto_path=.",[34,189987,189988],{"class":50}," --python_out=.",[34,189990,189991],{"class":54}," addressbook.proto\n",[16,189993,189994],{},"Add additional flags for other languages like Go, Java, or C#.",[11,189996,189998],{"id":189997},"data-encoding-and-decoding","Data Encoding and Decoding",[309,190000,190001],{},[312,190002,190003],{},"Serialize:",[25,190005,190007],{"className":49386,"code":190006,"language":49388,"meta":30,"style":30},"# Python example\nfrom tutorial_pb2 import Person\nperson = Person(name=\"John\", id=1234, email=\"john@example.com\")\ndata = person.SerializeToString()\n",[20,190008,190009,190014,190025,190060],{"__ignoreMap":30},[34,190010,190011],{"class":36,"line":37},[34,190012,190013],{"class":40},"# Python example\n",[34,190015,190016,190018,190021,190023],{"class":36,"line":44},[34,190017,587],{"class":580},[34,190019,190020],{"class":181}," tutorial_pb2 ",[34,190022,581],{"class":580},[34,190024,34124],{"class":181},[34,190026,190027,190030,190032,190035,190037,190039,190041,190043,190045,190047,190050,190052,190054,190056,190058],{"class":36,"line":58},[34,190028,190029],{"class":181},"person ",[34,190031,1301],{"class":580},[34,190033,190034],{"class":181}," Person(",[34,190036,178],{"class":675},[34,190038,1301],{"class":580},[34,190040,17105],{"class":54},[34,190042,1798],{"class":181},[34,190044,3885],{"class":675},[34,190046,1301],{"class":580},[34,190048,190049],{"class":50},"1234",[34,190051,1798],{"class":181},[34,190053,59283],{"class":675},[34,190055,1301],{"class":580},[34,190057,17110],{"class":54},[34,190059,3372],{"class":181},[34,190061,190062,190064,190066],{"class":36,"line":65},[34,190063,176229],{"class":181},[34,190065,1301],{"class":580},[34,190067,190068],{"class":181}," person.SerializeToString()\n",[309,190070,190071],{},[312,190072,190073],{},"Deserialize:",[25,190075,190077],{"className":49386,"code":190076,"language":49388,"meta":30,"style":30},"# Deserialize example\nperson = Person()\nperson.ParseFromString(data)\n",[20,190078,190079,190084,190093],{"__ignoreMap":30},[34,190080,190081],{"class":36,"line":37},[34,190082,190083],{"class":40},"# Deserialize example\n",[34,190085,190086,190088,190090],{"class":36,"line":44},[34,190087,190029],{"class":181},[34,190089,1301],{"class":580},[34,190091,190092],{"class":181}," Person()\n",[34,190094,190095],{"class":36,"line":58},[34,190096,190097],{"class":181},"person.ParseFromString(data)\n",[11,190099,8498],{"id":8497},[28799,190101,190102,190108,190114],{},[312,190103,190104,190107],{},[8471,190105,190106],{},"Backward Compatibility",": Add fields without breaking the existing data.",[312,190109,190110,190113],{},[8471,190111,190112],{},"Efficiency",": Binary format for smaller size and quick decoding.",[312,190115,190116,151],{},[8471,190117,190118],{},"Support for multiple languages",[11,190120,190122],{"id":190121},"example-with-services-grpc","Example with Services (gRPC)",[16,190124,190125],{},"Protobuf integrates seamlessly with gRPC for defining RPC services:",[25,190127,190129],{"className":189850,"code":190128,"language":189852,"meta":30,"style":30},"service Greeter {\n  rpc SayHello (HelloRequest) returns (HelloReply);\n}\n\nmessage HelloRequest {\n  string name = 1;\n}\n\nmessage HelloReply {\n  string message = 1;\n}\n",[20,190130,190131,190135,190139,190143,190147,190151,190155,190159,190163,190167,190171],{"__ignoreMap":30},[34,190132,190133],{"class":36,"line":37},[34,190134,111418],{},[34,190136,190137],{"class":36,"line":44},[34,190138,111423],{},[34,190140,190141],{"class":36,"line":58},[34,190142,693],{},[34,190144,190145],{"class":36,"line":65},[34,190146,62],{"emptyLinePlaceholder":61},[34,190148,190149],{"class":36,"line":71},[34,190150,111441],{},[34,190152,190153],{"class":36,"line":77},[34,190154,111446],{},[34,190156,190157],{"class":36,"line":82},[34,190158,693],{},[34,190160,190161],{"class":36,"line":88},[34,190162,62],{"emptyLinePlaceholder":61},[34,190164,190165],{"class":36,"line":242},[34,190166,111459],{},[34,190168,190169],{"class":36,"line":250},[34,190170,111464],{},[34,190172,190173],{"class":36,"line":263},[34,190174,693],{},[388,190176,190177],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":30,"searchDepth":44,"depth":44,"links":190179},[190180,190181,190182,190183,190184,190185,190186],{"id":13,"depth":44,"text":14},{"id":189846,"depth":44,"text":189847},{"id":189899,"depth":44,"text":189900},{"id":189968,"depth":44,"text":189969},{"id":189997,"depth":44,"text":189998},{"id":8497,"depth":44,"text":8498},{"id":190121,"depth":44,"text":190122},"A concise guide to Protocol Buffers syntax, schema definition, and usage.",{},"/protobuf/overview",{"title":189836,"description":190187},"protobuf/overview",[111388,190193,109531],"serialization","dVt6LCaL_Mx3aicocY84WVUvW3kkEFd_brp0utoYkMo",{"id":190196,"title":190197,"body":190198,"date":402,"description":190830,"extension":404,"meta":190831,"navigation":61,"order":37,"path":190832,"seo":190833,"stem":190834,"subject":190249,"tags":190835,"__hash__":190838},"topics/pulumi/overview.md","Pulumi",{"type":8,"value":190199,"toc":190821},[190200,190202,190252,190256,190326,190330,190431,190435,190509,190513,190576,190580,190651,190738,190742,190819],[11,190201,97],{"id":96},[25,190203,190205],{"className":27,"code":190204,"language":29,"meta":30,"style":30},"# macOS\nbrew install pulumi/tap/pulumi\n\n# Linux\ncurl -fsSL https://get.pulumi.com | sh\n\npulumi version\n",[20,190206,190207,190211,190220,190224,190228,190241,190245],{"__ignoreMap":30},[34,190208,190209],{"class":36,"line":37},[34,190210,8625],{"class":40},[34,190212,190213,190215,190217],{"class":36,"line":44},[34,190214,115],{"class":47},[34,190216,118],{"class":54},[34,190218,190219],{"class":54}," pulumi/tap/pulumi\n",[34,190221,190222],{"class":36,"line":58},[34,190223,62],{"emptyLinePlaceholder":61},[34,190225,190226],{"class":36,"line":65},[34,190227,8643],{"class":40},[34,190229,190230,190232,190234,190237,190239],{"class":36,"line":71},[34,190231,8648],{"class":47},[34,190233,15806],{"class":50},[34,190235,190236],{"class":54}," https://get.pulumi.com",[34,190238,7197],{"class":580},[34,190240,48093],{"class":47},[34,190242,190243],{"class":36,"line":77},[34,190244,62],{"emptyLinePlaceholder":61},[34,190246,190247,190250],{"class":36,"line":82},[34,190248,190249],{"class":47},"pulumi",[34,190251,9358],{"class":54},[11,190253,190255],{"id":190254},"new-project","New Project",[25,190257,190259],{"className":27,"code":190258,"language":29,"meta":30,"style":30},"# Create from template\npulumi new aws-typescript\npulumi new azure-python\npulumi new gcp-go\npulumi new kubernetes-typescript\n\n# Structure:\n# index.ts      - your infrastructure code\n# Pulumi.yaml   - project config\n# Pulumi.dev.yaml - stack config\n",[20,190260,190261,190266,190275,190284,190293,190302,190306,190311,190316,190321],{"__ignoreMap":30},[34,190262,190263],{"class":36,"line":37},[34,190264,190265],{"class":40},"# Create from template\n",[34,190267,190268,190270,190272],{"class":36,"line":44},[34,190269,190249],{"class":47},[34,190271,809],{"class":54},[34,190273,190274],{"class":54}," aws-typescript\n",[34,190276,190277,190279,190281],{"class":36,"line":58},[34,190278,190249],{"class":47},[34,190280,809],{"class":54},[34,190282,190283],{"class":54}," azure-python\n",[34,190285,190286,190288,190290],{"class":36,"line":65},[34,190287,190249],{"class":47},[34,190289,809],{"class":54},[34,190291,190292],{"class":54}," gcp-go\n",[34,190294,190295,190297,190299],{"class":36,"line":71},[34,190296,190249],{"class":47},[34,190298,809],{"class":54},[34,190300,190301],{"class":54}," kubernetes-typescript\n",[34,190303,190304],{"class":36,"line":77},[34,190305,62],{"emptyLinePlaceholder":61},[34,190307,190308],{"class":36,"line":82},[34,190309,190310],{"class":40},"# Structure:\n",[34,190312,190313],{"class":36,"line":88},[34,190314,190315],{"class":40},"# index.ts      - your infrastructure code\n",[34,190317,190318],{"class":36,"line":242},[34,190319,190320],{"class":40},"# Pulumi.yaml   - project config\n",[34,190322,190323],{"class":36,"line":250},[34,190324,190325],{"class":40},"# Pulumi.dev.yaml - stack config\n",[11,190327,190329],{"id":190328},"basic-typescript-example","Basic TypeScript Example",[25,190331,190333],{"className":91533,"code":190332,"language":91535,"meta":30,"style":30},"import * as aws from '@pulumi/aws';\n\n// Create an S3 bucket\nconst bucket = new aws.s3.Bucket('my-bucket', {\n  acl: 'private',\n  tags: { Environment: 'dev' },\n});\n\n// Export the bucket name\nexport const bucketName = bucket.id;\n",[20,190334,190335,190353,190357,190362,190385,190395,190404,190408,190412,190417],{"__ignoreMap":30},[34,190336,190337,190339,190341,190343,190346,190348,190351],{"class":36,"line":37},[34,190338,581],{"class":580},[34,190340,18083],{"class":50},[34,190342,91551],{"class":580},[34,190344,190345],{"class":181}," aws ",[34,190347,587],{"class":580},[34,190349,190350],{"class":54}," '@pulumi/aws'",[34,190352,593],{"class":181},[34,190354,190355],{"class":36,"line":44},[34,190356,62],{"emptyLinePlaceholder":61},[34,190358,190359],{"class":36,"line":58},[34,190360,190361],{"class":40},"// Create an S3 bucket\n",[34,190363,190364,190366,190368,190370,190372,190375,190378,190380,190383],{"class":36,"line":65},[34,190365,14676],{"class":580},[34,190367,120633],{"class":50},[34,190369,683],{"class":580},[34,190371,809],{"class":580},[34,190373,190374],{"class":181}," aws.s3.",[34,190376,190377],{"class":47},"Bucket",[34,190379,1607],{"class":181},[34,190381,190382],{"class":54},"'my-bucket'",[34,190384,14820],{"class":181},[34,190386,190387,190390,190393],{"class":36,"line":71},[34,190388,190389],{"class":181},"  acl: ",[34,190391,190392],{"class":54},"'private'",[34,190394,624],{"class":181},[34,190396,190397,190400,190402],{"class":36,"line":77},[34,190398,190399],{"class":181},"  tags: { Environment: ",[34,190401,77034],{"class":54},[34,190403,14846],{"class":181},[34,190405,190406],{"class":36,"line":82},[34,190407,14873],{"class":181},[34,190409,190410],{"class":36,"line":88},[34,190411,62],{"emptyLinePlaceholder":61},[34,190413,190414],{"class":36,"line":242},[34,190415,190416],{"class":40},"// Export the bucket name\n",[34,190418,190419,190421,190423,190426,190428],{"class":36,"line":250},[34,190420,652],{"class":580},[34,190422,3291],{"class":580},[34,190424,190425],{"class":50}," bucketName",[34,190427,683],{"class":580},[34,190429,190430],{"class":181}," bucket.id;\n",[11,190432,190434],{"id":190433},"stacks","Stacks",[25,190436,190438],{"className":27,"code":190437,"language":29,"meta":30,"style":30},"# List stacks\npulumi stack ls\n\n# Create a new stack\npulumi stack init staging\n\n# Select a stack\npulumi stack select prod\n\n# Show current stack\npulumi stack\n",[20,190439,190440,190445,190453,190457,190462,190473,190477,190482,190493,190497,190502],{"__ignoreMap":30},[34,190441,190442],{"class":36,"line":37},[34,190443,190444],{"class":40},"# List stacks\n",[34,190446,190447,190449,190451],{"class":36,"line":44},[34,190448,190249],{"class":47},[34,190450,68200],{"class":54},[34,190452,8791],{"class":54},[34,190454,190455],{"class":36,"line":58},[34,190456,62],{"emptyLinePlaceholder":61},[34,190458,190459],{"class":36,"line":65},[34,190460,190461],{"class":40},"# Create a new stack\n",[34,190463,190464,190466,190468,190470],{"class":36,"line":71},[34,190465,190249],{"class":47},[34,190467,68200],{"class":54},[34,190469,5255],{"class":54},[34,190471,190472],{"class":54}," staging\n",[34,190474,190475],{"class":36,"line":77},[34,190476,62],{"emptyLinePlaceholder":61},[34,190478,190479],{"class":36,"line":82},[34,190480,190481],{"class":40},"# Select a stack\n",[34,190483,190484,190486,190488,190491],{"class":36,"line":88},[34,190485,190249],{"class":47},[34,190487,68200],{"class":54},[34,190489,190490],{"class":54}," select",[34,190492,8754],{"class":54},[34,190494,190495],{"class":36,"line":242},[34,190496,62],{"emptyLinePlaceholder":61},[34,190498,190499],{"class":36,"line":250},[34,190500,190501],{"class":40},"# Show current stack\n",[34,190503,190504,190506],{"class":36,"line":263},[34,190505,190249],{"class":47},[34,190507,190508],{"class":54}," stack\n",[11,190510,190512],{"id":190511},"deploy-destroy","Deploy & Destroy",[25,190514,190516],{"className":27,"code":190515,"language":29,"meta":30,"style":30},"# Preview changes (dry run)\npulumi preview\n\n# Deploy (apply changes)\npulumi up\n\n# Destroy all resources\npulumi destroy\n\n# Refresh state from cloud\npulumi refresh\n",[20,190517,190518,190523,190530,190534,190539,190545,190549,190554,190561,190565,190570],{"__ignoreMap":30},[34,190519,190520],{"class":36,"line":37},[34,190521,190522],{"class":40},"# Preview changes (dry run)\n",[34,190524,190525,190527],{"class":36,"line":44},[34,190526,190249],{"class":47},[34,190528,190529],{"class":54}," preview\n",[34,190531,190532],{"class":36,"line":58},[34,190533,62],{"emptyLinePlaceholder":61},[34,190535,190536],{"class":36,"line":65},[34,190537,190538],{"class":40},"# Deploy (apply changes)\n",[34,190540,190541,190543],{"class":36,"line":71},[34,190542,190249],{"class":47},[34,190544,55757],{"class":54},[34,190546,190547],{"class":36,"line":77},[34,190548,62],{"emptyLinePlaceholder":61},[34,190550,190551],{"class":36,"line":82},[34,190552,190553],{"class":40},"# Destroy all resources\n",[34,190555,190556,190558],{"class":36,"line":88},[34,190557,190249],{"class":47},[34,190559,190560],{"class":54}," destroy\n",[34,190562,190563],{"class":36,"line":242},[34,190564,62],{"emptyLinePlaceholder":61},[34,190566,190567],{"class":36,"line":250},[34,190568,190569],{"class":40},"# Refresh state from cloud\n",[34,190571,190572,190574],{"class":36,"line":263},[34,190573,190249],{"class":47},[34,190575,94583],{"class":54},[11,190577,190579],{"id":190578},"config-secrets","Config & Secrets",[25,190581,190583],{"className":27,"code":190582,"language":29,"meta":30,"style":30},"# Set config value\npulumi config set aws:region us-east-1\npulumi config set appPort 3000\n\n# Set secret (encrypted)\npulumi config set --secret dbPassword s3cr3t\n\n# Read in code (TypeScript)\n",[20,190584,190585,190589,190603,190616,190620,190625,190642,190646],{"__ignoreMap":30},[34,190586,190587],{"class":36,"line":37},[34,190588,159320],{"class":40},[34,190590,190591,190593,190595,190597,190600],{"class":36,"line":44},[34,190592,190249],{"class":47},[34,190594,58810],{"class":54},[34,190596,9481],{"class":54},[34,190598,190599],{"class":54}," aws:region",[34,190601,190602],{"class":54}," us-east-1\n",[34,190604,190605,190607,190609,190611,190614],{"class":36,"line":58},[34,190606,190249],{"class":47},[34,190608,58810],{"class":54},[34,190610,9481],{"class":54},[34,190612,190613],{"class":54}," appPort",[34,190615,75394],{"class":50},[34,190617,190618],{"class":36,"line":65},[34,190619,62],{"emptyLinePlaceholder":61},[34,190621,190622],{"class":36,"line":71},[34,190623,190624],{"class":40},"# Set secret (encrypted)\n",[34,190626,190627,190629,190631,190633,190636,190639],{"class":36,"line":77},[34,190628,190249],{"class":47},[34,190630,58810],{"class":54},[34,190632,9481],{"class":54},[34,190634,190635],{"class":50}," --secret",[34,190637,190638],{"class":54}," dbPassword",[34,190640,190641],{"class":54}," s3cr3t\n",[34,190643,190644],{"class":36,"line":82},[34,190645,62],{"emptyLinePlaceholder":61},[34,190647,190648],{"class":36,"line":88},[34,190649,190650],{"class":40},"# Read in code (TypeScript)\n",[25,190652,190654],{"className":91533,"code":190653,"language":91535,"meta":30,"style":30},"import * as pulumi from '@pulumi/pulumi';\n\nconst config = new pulumi.Config();\nconst port = config.requireNumber('appPort');\nconst password = config.requireSecret('dbPassword');\n",[20,190655,190656,190674,190678,190696,190718],{"__ignoreMap":30},[34,190657,190658,190660,190662,190664,190667,190669,190672],{"class":36,"line":37},[34,190659,581],{"class":580},[34,190661,18083],{"class":50},[34,190663,91551],{"class":580},[34,190665,190666],{"class":181}," pulumi ",[34,190668,587],{"class":580},[34,190670,190671],{"class":54}," '@pulumi/pulumi'",[34,190673,593],{"class":181},[34,190675,190676],{"class":36,"line":44},[34,190677,62],{"emptyLinePlaceholder":61},[34,190679,190680,190682,190684,190686,190688,190691,190694],{"class":36,"line":58},[34,190681,14676],{"class":580},[34,190683,58810],{"class":50},[34,190685,683],{"class":580},[34,190687,809],{"class":580},[34,190689,190690],{"class":181}," pulumi.",[34,190692,190693],{"class":47},"Config",[34,190695,851],{"class":181},[34,190697,190698,190700,190703,190705,190708,190711,190713,190716],{"class":36,"line":65},[34,190699,14676],{"class":580},[34,190701,190702],{"class":50}," port",[34,190704,683],{"class":580},[34,190706,190707],{"class":181}," config.",[34,190709,190710],{"class":47},"requireNumber",[34,190712,1607],{"class":181},[34,190714,190715],{"class":54},"'appPort'",[34,190717,1586],{"class":181},[34,190719,190720,190722,190724,190726,190728,190731,190733,190736],{"class":36,"line":71},[34,190721,14676],{"class":580},[34,190723,16392],{"class":50},[34,190725,683],{"class":580},[34,190727,190707],{"class":181},[34,190729,190730],{"class":47},"requireSecret",[34,190732,1607],{"class":181},[34,190734,190735],{"class":54},"'dbPassword'",[34,190737,1586],{"class":181},[11,190739,190741],{"id":190740},"outputs","Outputs",[25,190743,190745],{"className":91533,"code":190744,"language":91535,"meta":30,"style":30},"// Export values to reference between stacks\nexport const apiUrl = apiGateway.url;\n\n// Reference from another stack\nconst infra = new pulumi.StackReference('org/infra/prod');\nconst vpcId = infra.getOutput('vpcId');\n",[20,190746,190747,190752,190765,190769,190774,190797],{"__ignoreMap":30},[34,190748,190749],{"class":36,"line":37},[34,190750,190751],{"class":40},"// Export values to reference between stacks\n",[34,190753,190754,190756,190758,190760,190762],{"class":36,"line":44},[34,190755,652],{"class":580},[34,190757,3291],{"class":580},[34,190759,3827],{"class":50},[34,190761,683],{"class":580},[34,190763,190764],{"class":181}," apiGateway.url;\n",[34,190766,190767],{"class":36,"line":58},[34,190768,62],{"emptyLinePlaceholder":61},[34,190770,190771],{"class":36,"line":65},[34,190772,190773],{"class":40},"// Reference from another stack\n",[34,190775,190776,190778,190781,190783,190785,190787,190790,190792,190795],{"class":36,"line":71},[34,190777,14676],{"class":580},[34,190779,190780],{"class":50}," infra",[34,190782,683],{"class":580},[34,190784,809],{"class":580},[34,190786,190690],{"class":181},[34,190788,190789],{"class":47},"StackReference",[34,190791,1607],{"class":181},[34,190793,190794],{"class":54},"'org/infra/prod'",[34,190796,1586],{"class":181},[34,190798,190799,190801,190804,190806,190809,190812,190814,190817],{"class":36,"line":77},[34,190800,14676],{"class":580},[34,190802,190803],{"class":50}," vpcId",[34,190805,683],{"class":580},[34,190807,190808],{"class":181}," infra.",[34,190810,190811],{"class":47},"getOutput",[34,190813,1607],{"class":181},[34,190815,190816],{"class":54},"'vpcId'",[34,190818,1586],{"class":181},[388,190820,10040],{},{"title":30,"searchDepth":44,"depth":44,"links":190822},[190823,190824,190825,190826,190827,190828,190829],{"id":96,"depth":44,"text":97},{"id":190254,"depth":44,"text":190255},{"id":190328,"depth":44,"text":190329},{"id":190433,"depth":44,"text":190434},{"id":190511,"depth":44,"text":190512},{"id":190578,"depth":44,"text":190579},{"id":190740,"depth":44,"text":190741},"Infrastructure as Code using real programming languages — TypeScript, Python, Go, and more.",{},"/pulumi/overview",{"title":190197,"description":190830},"pulumi/overview",[190249,190836,190837,5438,9293],"iac","infrastructure","FUeh7WAdNglo_4y4NfMUAllz3ZMFFWOf6Oy2R48LdAU",{"id":190840,"title":190841,"body":190842,"date":402,"description":191147,"extension":404,"meta":191148,"navigation":61,"order":37,"path":191149,"seo":191150,"stem":191151,"subject":191152,"tags":191153,"__hash__":191155},"topics/puppeteer/overview.md","Puppeteer",{"type":8,"value":190843,"toc":191135},[190844,190846,190849,190969,190971,190974,190988,190991,190995,190999,191025,191029,191050,191054,191073,191077,191099,191101,191119,191123,191132],[11,190845,14],{"id":13},[16,190847,190848],{},"Puppeteer is a Node.js library that provides a high-level API to control headless Chrome browsers.",[25,190850,190852],{"className":111475,"code":190851,"language":111477,"meta":30,"style":30},"const puppeteer = require('puppeteer');\n\n(async () => {\n  const browser = await puppeteer.launch();\n  const page = await browser.newPage();\n  await page.goto('https://example.com');\n  console.log(await page.title());\n  await browser.close();\n})();\n",[20,190853,190854,190872,190876,190888,190905,190924,190939,190955,190965],{"__ignoreMap":30},[34,190855,190856,190858,190861,190863,190865,190867,190870],{"class":36,"line":37},[34,190857,14676],{"class":580},[34,190859,190860],{"class":50}," puppeteer",[34,190862,683],{"class":580},[34,190864,111491],{"class":47},[34,190866,1607],{"class":181},[34,190868,190869],{"class":54},"'puppeteer'",[34,190871,1586],{"class":181},[34,190873,190874],{"class":36,"line":44},[34,190875,62],{"emptyLinePlaceholder":61},[34,190877,190878,190880,190882,190884,190886],{"class":36,"line":58},[34,190879,1607],{"class":181},[34,190881,17403],{"class":580},[34,190883,17406],{"class":181},[34,190885,3361],{"class":580},[34,190887,661],{"class":181},[34,190889,190890,190892,190894,190896,190898,190901,190903],{"class":36,"line":65},[34,190891,17415],{"class":580},[34,190893,93881],{"class":50},[34,190895,683],{"class":580},[34,190897,14763],{"class":580},[34,190899,190900],{"class":181}," puppeteer.",[34,190902,135159],{"class":47},[34,190904,851],{"class":181},[34,190906,190907,190909,190912,190914,190916,190919,190922],{"class":36,"line":71},[34,190908,17415],{"class":580},[34,190910,190911],{"class":50}," page",[34,190913,683],{"class":580},[34,190915,14763],{"class":580},[34,190917,190918],{"class":181}," browser.",[34,190920,190921],{"class":47},"newPage",[34,190923,851],{"class":181},[34,190925,190926,190928,190931,190933,190935,190937],{"class":36,"line":77},[34,190927,47600],{"class":580},[34,190929,190930],{"class":181}," page.",[34,190932,20879],{"class":47},[34,190934,1607],{"class":181},[34,190936,45330],{"class":54},[34,190938,1586],{"class":181},[34,190940,190941,190943,190945,190947,190949,190951,190953],{"class":36,"line":82},[34,190942,14929],{"class":181},[34,190944,2424],{"class":47},[34,190946,1607],{"class":181},[34,190948,15062],{"class":580},[34,190950,190930],{"class":181},[34,190952,953],{"class":47},[34,190954,4343],{"class":181},[34,190956,190957,190959,190961,190963],{"class":36,"line":88},[34,190958,47600],{"class":580},[34,190960,190918],{"class":181},[34,190962,17197],{"class":47},[34,190964,851],{"class":181},[34,190966,190967],{"class":36,"line":242},[34,190968,156884],{"class":181},[11,190970,97],{"id":96},[16,190972,190973],{},"To install Puppeteer, you can use npm or other preferred package managers:",[25,190975,190977],{"className":27,"code":190976,"language":29,"meta":30,"style":30},"npm install puppeteer\n",[20,190978,190979],{"__ignoreMap":30},[34,190980,190981,190983,190985],{"class":36,"line":37},[34,190982,8177],{"class":47},[34,190984,118],{"class":54},[34,190986,190987],{"class":54}," puppeteer\n",[16,190989,190990],{},"Puppeteer automatically downloads a compatible browser version upon installation. Configuration options are available to modify this behavior.",[11,190992,190994],{"id":190993},"common-api","Common API",[102,190996,190998],{"id":190997},"launching-a-browser","Launching a Browser",[25,191000,191002],{"className":111475,"code":191001,"language":111477,"meta":30,"style":30},"const browser = await puppeteer.launch({ headless: true });\n",[20,191003,191004],{"__ignoreMap":30},[34,191005,191006,191008,191010,191012,191014,191016,191018,191021,191023],{"class":36,"line":37},[34,191007,14676],{"class":580},[34,191009,93881],{"class":50},[34,191011,683],{"class":580},[34,191013,14763],{"class":580},[34,191015,190900],{"class":181},[34,191017,135159],{"class":47},[34,191019,191020],{"class":181},"({ headless: ",[34,191022,632],{"class":50},[34,191024,15567],{"class":181},[102,191026,191028],{"id":191027},"creating-a-new-page","Creating a New Page",[25,191030,191032],{"className":111475,"code":191031,"language":111477,"meta":30,"style":30},"const page = await browser.newPage();\n",[20,191033,191034],{"__ignoreMap":30},[34,191035,191036,191038,191040,191042,191044,191046,191048],{"class":36,"line":37},[34,191037,14676],{"class":580},[34,191039,190911],{"class":50},[34,191041,683],{"class":580},[34,191043,14763],{"class":580},[34,191045,190918],{"class":181},[34,191047,190921],{"class":47},[34,191049,851],{"class":181},[102,191051,191053],{"id":191052},"navigating-to-a-url","Navigating to a URL",[25,191055,191057],{"className":111475,"code":191056,"language":111477,"meta":30,"style":30},"await page.goto('https://example.com');\n",[20,191058,191059],{"__ignoreMap":30},[34,191060,191061,191063,191065,191067,191069,191071],{"class":36,"line":37},[34,191062,15062],{"class":580},[34,191064,190930],{"class":181},[34,191066,20879],{"class":47},[34,191068,1607],{"class":181},[34,191070,45330],{"class":54},[34,191072,1586],{"class":181},[102,191074,191076],{"id":191075},"taking-screenshots","Taking Screenshots",[25,191078,191080],{"className":111475,"code":191079,"language":111477,"meta":30,"style":30},"await page.screenshot({ path: 'example.png' });\n",[20,191081,191082],{"__ignoreMap":30},[34,191083,191084,191086,191088,191091,191094,191097],{"class":36,"line":37},[34,191085,15062],{"class":580},[34,191087,190930],{"class":181},[34,191089,191090],{"class":47},"screenshot",[34,191092,191093],{"class":181},"({ path: ",[34,191095,191096],{"class":54},"'example.png'",[34,191098,15567],{"class":181},[11,191100,114635],{"id":114969},[309,191102,191103,191109],{},[312,191104,191105,191108],{},[8471,191106,191107],{},"Node.js Version",": Ensure a Node.js version higher than 14 is used.",[312,191110,191111,191114,191115,191118],{},[8471,191112,191113],{},"Browser Not Found",": Set ",[20,191116,191117],{},"PUPPETEER_CACHE_DIR"," for custom cache handling.",[11,191120,191122],{"id":191121},"community-and-contributions","Community and Contributions",[16,191124,191125,191126,191131],{},"The Puppeteer community is active in improving the library and its documentation. Visit the official ",[145,191127,191130],{"href":191128,"rel":191129},"https://pptr.dev/contributing",[149],"Contributing"," page for guidelines.",[388,191133,191134],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .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 .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":30,"searchDepth":44,"depth":44,"links":191136},[191137,191138,191139,191145,191146],{"id":13,"depth":44,"text":14},{"id":96,"depth":44,"text":97},{"id":190993,"depth":44,"text":190994,"children":191140},[191141,191142,191143,191144],{"id":190997,"depth":58,"text":190998},{"id":191027,"depth":58,"text":191028},{"id":191052,"depth":58,"text":191053},{"id":191075,"depth":58,"text":191076},{"id":114969,"depth":44,"text":114635},{"id":191121,"depth":44,"text":191122},"Puppeteer documentation summary for browser automation in Node.js environments.",{},"/puppeteer/overview",{"title":190841,"description":191147},"puppeteer/overview","puppeteer",[191152,191154,78040,16094],"browser-automation","4_457fCiPwvQUk9uM3JDzsxAJq_0MrF13ew2gWDUSOw",{"id":191157,"title":191158,"body":191159,"date":402,"description":191586,"extension":404,"meta":191587,"navigation":61,"order":65,"path":191588,"seo":191589,"stem":191590,"subject":49388,"tags":191591,"__hash__":191594},"topics/python/dictionaries.md","Dictionaries",{"type":8,"value":191160,"toc":191579},[191161,191164,191168,191245,191249,191375,191379,191483,191487,191533,191537,191576],[16,191162,191163],{},"Dictionaries store key-value pairs. Keys must be unique and hashable.",[11,191165,191167],{"id":191166},"creation","Creation",[25,191169,191171],{"className":49386,"code":191170,"language":49388,"meta":30,"style":30},"user = {\"name\": \"Alice\", \"age\": 30, \"active\": True}\nempty = {}\nfrom_keys = dict.fromkeys([\"a\", \"b\", \"c\"], 0)  # {\"a\": 0, \"b\": 0, \"c\": 0}\n",[20,191172,191173,191205,191213],{"__ignoreMap":30},[34,191174,191175,191177,191179,191181,191183,191185,191187,191189,191191,191193,191195,191197,191199,191201,191203],{"class":36,"line":37},[34,191176,162914],{"class":181},[34,191178,1301],{"class":580},[34,191180,11838],{"class":181},[34,191182,4650],{"class":54},[34,191184,182],{"class":181},[34,191186,21650],{"class":54},[34,191188,1798],{"class":181},[34,191190,58524],{"class":54},[34,191192,182],{"class":181},[34,191194,17625],{"class":50},[34,191196,1798],{"class":181},[34,191198,1304],{"class":54},[34,191200,182],{"class":181},[34,191202,74021],{"class":50},[34,191204,693],{"class":181},[34,191206,191207,191209,191211],{"class":36,"line":44},[34,191208,144597],{"class":181},[34,191210,1301],{"class":580},[34,191212,1104],{"class":181},[34,191214,191215,191218,191220,191223,191226,191228,191230,191232,191234,191236,191238,191240,191242],{"class":36,"line":58},[34,191216,191217],{"class":181},"from_keys ",[34,191219,1301],{"class":580},[34,191221,191222],{"class":50}," dict",[34,191224,191225],{"class":181},".fromkeys([",[34,191227,104277],{"class":54},[34,191229,1798],{"class":181},[34,191231,104282],{"class":54},[34,191233,1798],{"class":181},[34,191235,121636],{"class":54},[34,191237,65540],{"class":181},[34,191239,2773],{"class":50},[34,191241,76021],{"class":181},[34,191243,191244],{"class":40},"# {\"a\": 0, \"b\": 0, \"c\": 0}\n",[11,191246,191248],{"id":191247},"access-modification","Access & Modification",[25,191250,191252],{"className":49386,"code":191251,"language":49388,"meta":30,"style":30},"d = {\"name\": \"Alice\", \"age\": 30}\n\nd[\"name\"]             # \"Alice\"\nd.get(\"age\")          # 30\nd.get(\"missing\", -1)  # -1 (default)\n\nd[\"email\"] = \"alice@example.com\"  # add key\nd[\"age\"] = 31                     # update value\ndel d[\"email\"]                    # remove key\n",[20,191253,191254,191279,191283,191295,191307,191325,191329,191345,191360],{"__ignoreMap":30},[34,191255,191256,191259,191261,191263,191265,191267,191269,191271,191273,191275,191277],{"class":36,"line":37},[34,191257,191258],{"class":181},"d ",[34,191260,1301],{"class":580},[34,191262,11838],{"class":181},[34,191264,4650],{"class":54},[34,191266,182],{"class":181},[34,191268,21650],{"class":54},[34,191270,1798],{"class":181},[34,191272,58524],{"class":54},[34,191274,182],{"class":181},[34,191276,17625],{"class":50},[34,191278,693],{"class":181},[34,191280,191281],{"class":36,"line":44},[34,191282,62],{"emptyLinePlaceholder":61},[34,191284,191285,191288,191290,191292],{"class":36,"line":58},[34,191286,191287],{"class":181},"d[",[34,191289,4650],{"class":54},[34,191291,103742],{"class":181},[34,191293,191294],{"class":40},"# \"Alice\"\n",[34,191296,191297,191300,191302,191304],{"class":36,"line":65},[34,191298,191299],{"class":181},"d.get(",[34,191301,58524],{"class":54},[34,191303,104258],{"class":181},[34,191305,191306],{"class":40},"# 30\n",[34,191308,191309,191311,191314,191316,191318,191320,191322],{"class":36,"line":71},[34,191310,191299],{"class":181},[34,191312,191313],{"class":54},"\"missing\"",[34,191315,1798],{"class":181},[34,191317,22062],{"class":580},[34,191319,8318],{"class":50},[34,191321,76021],{"class":181},[34,191323,191324],{"class":40},"# -1 (default)\n",[34,191326,191327],{"class":36,"line":77},[34,191328,62],{"emptyLinePlaceholder":61},[34,191330,191331,191333,191335,191337,191339,191342],{"class":36,"line":82},[34,191332,191287],{"class":181},[34,191334,116125],{"class":54},[34,191336,17799],{"class":181},[34,191338,1301],{"class":580},[34,191340,191341],{"class":54}," \"alice@example.com\"",[34,191343,191344],{"class":40},"  # add key\n",[34,191346,191347,191349,191351,191353,191355,191357],{"class":36,"line":88},[34,191348,191287],{"class":181},[34,191350,58524],{"class":54},[34,191352,17799],{"class":181},[34,191354,1301],{"class":580},[34,191356,24813],{"class":50},[34,191358,191359],{"class":40},"                     # update value\n",[34,191361,191362,191364,191367,191369,191372],{"class":36,"line":242},[34,191363,119405],{"class":580},[34,191365,191366],{"class":181}," d[",[34,191368,116125],{"class":54},[34,191370,191371],{"class":181},"]                    ",[34,191373,191374],{"class":40},"# remove key\n",[11,191376,191378],{"id":191377},"common-methods","Common Methods",[25,191380,191382],{"className":49386,"code":191381,"language":49388,"meta":30,"style":30},"d = {\"a\": 1, \"b\": 2, \"c\": 3}\n\nd.keys()    # dict_keys([\"a\", \"b\", \"c\"])\nd.values()  # dict_values([1, 2, 3])\nd.items()   # dict_items([(\"a\", 1), (\"b\", 2), (\"c\", 3)])\nd.pop(\"a\")  # removes \"a\" and returns 1\nd.update({\"d\": 4, \"e\": 5})  # merge another dict\n",[20,191383,191384,191416,191420,191428,191436,191444,191456],{"__ignoreMap":30},[34,191385,191386,191388,191390,191392,191394,191396,191398,191400,191402,191404,191406,191408,191410,191412,191414],{"class":36,"line":37},[34,191387,191258],{"class":181},[34,191389,1301],{"class":580},[34,191391,11838],{"class":181},[34,191393,104277],{"class":54},[34,191395,182],{"class":181},[34,191397,8318],{"class":50},[34,191399,1798],{"class":181},[34,191401,104282],{"class":54},[34,191403,182],{"class":181},[34,191405,8324],{"class":50},[34,191407,1798],{"class":181},[34,191409,121636],{"class":54},[34,191411,182],{"class":181},[34,191413,3162],{"class":50},[34,191415,693],{"class":181},[34,191417,191418],{"class":36,"line":44},[34,191419,62],{"emptyLinePlaceholder":61},[34,191421,191422,191425],{"class":36,"line":58},[34,191423,191424],{"class":181},"d.keys()    ",[34,191426,191427],{"class":40},"# dict_keys([\"a\", \"b\", \"c\"])\n",[34,191429,191430,191433],{"class":36,"line":65},[34,191431,191432],{"class":181},"d.values()  ",[34,191434,191435],{"class":40},"# dict_values([1, 2, 3])\n",[34,191437,191438,191441],{"class":36,"line":71},[34,191439,191440],{"class":181},"d.items()   ",[34,191442,191443],{"class":40},"# dict_items([(\"a\", 1), (\"b\", 2), (\"c\", 3)])\n",[34,191445,191446,191449,191451,191453],{"class":36,"line":77},[34,191447,191448],{"class":181},"d.pop(",[34,191450,104277],{"class":54},[34,191452,76021],{"class":181},[34,191454,191455],{"class":40},"# removes \"a\" and returns 1\n",[34,191457,191458,191461,191464,191466,191468,191470,191473,191475,191477,191480],{"class":36,"line":82},[34,191459,191460],{"class":181},"d.update({",[34,191462,191463],{"class":54},"\"d\"",[34,191465,182],{"class":181},[34,191467,18010],{"class":50},[34,191469,1798],{"class":181},[34,191471,191472],{"class":54},"\"e\"",[34,191474,182],{"class":181},[34,191476,2778],{"class":50},[34,191478,191479],{"class":181},"})  ",[34,191481,191482],{"class":40},"# merge another dict\n",[11,191484,191486],{"id":191485},"iteration","Iteration",[25,191488,191490],{"className":49386,"code":191489,"language":49388,"meta":30,"style":30},"for key in d:\n    print(key, d[key])\n\nfor key, value in d.items():\n    print(key, value)\n",[20,191491,191492,191504,191511,191515,191526],{"__ignoreMap":30},[34,191493,191494,191496,191499,191501],{"class":36,"line":37},[34,191495,10246],{"class":580},[34,191497,191498],{"class":181}," key ",[34,191500,10252],{"class":580},[34,191502,191503],{"class":181}," d:\n",[34,191505,191506,191508],{"class":36,"line":44},[34,191507,141419],{"class":50},[34,191509,191510],{"class":181},"(key, d[key])\n",[34,191512,191513],{"class":36,"line":58},[34,191514,62],{"emptyLinePlaceholder":61},[34,191516,191517,191519,191521,191523],{"class":36,"line":65},[34,191518,10246],{"class":580},[34,191520,107014],{"class":181},[34,191522,10252],{"class":580},[34,191524,191525],{"class":181}," d.items():\n",[34,191527,191528,191530],{"class":36,"line":71},[34,191529,141419],{"class":50},[34,191531,191532],{"class":181},"(key, value)\n",[11,191534,191536],{"id":191535},"dict-comprehension","Dict Comprehension",[25,191538,191540],{"className":49386,"code":191539,"language":49388,"meta":30,"style":30},"squares = {x: x**2 for x in range(6)}\n# {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}\n",[20,191541,191542,191571],{"__ignoreMap":30},[34,191543,191544,191547,191549,191552,191554,191556,191558,191560,191562,191564,191566,191568],{"class":36,"line":37},[34,191545,191546],{"class":181},"squares ",[34,191548,1301],{"class":580},[34,191550,191551],{"class":181}," {x: x",[34,191553,23469],{"class":580},[34,191555,8324],{"class":50},[34,191557,52988],{"class":580},[34,191559,23172],{"class":181},[34,191561,10252],{"class":580},[34,191563,104014],{"class":50},[34,191565,1607],{"class":181},[34,191567,18019],{"class":50},[34,191569,191570],{"class":181},")}\n",[34,191572,191573],{"class":36,"line":44},[34,191574,191575],{"class":40},"# {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}\n",[388,191577,191578],{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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":30,"searchDepth":44,"depth":44,"links":191580},[191581,191582,191583,191584,191585],{"id":191166,"depth":44,"text":191167},{"id":191247,"depth":44,"text":191248},{"id":191377,"depth":44,"text":191378},{"id":191485,"depth":44,"text":191486},{"id":191535,"depth":44,"text":191536},"Dictionary creation, access, and common operations in Python",{},"/python/dictionaries",{"title":191158,"description":191586},"python/dictionaries",[191592,88006,191593,83156],"dictionaries","key-value","tpjaMYq6bSJls7X9cpmx3QSXvKkNjs1Hh46_ofeR8WA",{"id":191596,"title":10991,"body":191597,"date":402,"description":192146,"extension":404,"meta":192147,"navigation":61,"order":71,"path":192148,"seo":192149,"stem":192150,"subject":49388,"tags":192151,"__hash__":192153},"topics/python/functions.md",{"type":8,"value":191598,"toc":192138},[191599,191605,191609,191654,191658,191722,191726,191864,191868,191936,191938,192005,192009,192135],[16,191600,191601,191602,191604],{},"Functions are defined with ",[20,191603,49400],{},". Python supports default arguments, *args, **kwargs, and lambda expressions.",[11,191606,191608],{"id":191607},"basic-definition","Basic Definition",[25,191610,191612],{"className":49386,"code":191611,"language":49388,"meta":30,"style":30},"def greet(name):\n    return f\"Hello, {name}!\"\n\ngreet(\"Alice\")  # \"Hello, Alice!\"\n",[20,191613,191614,191622,191638,191642],{"__ignoreMap":30},[34,191615,191616,191618,191620],{"class":36,"line":37},[34,191617,49400],{"class":580},[34,191619,11047],{"class":47},[34,191621,90274],{"class":181},[34,191623,191624,191626,191628,191630,191632,191634,191636],{"class":36,"line":44},[34,191625,1564],{"class":580},[34,191627,12984],{"class":580},[34,191629,21921],{"class":54},[34,191631,13990],{"class":50},[34,191633,178],{"class":181},[34,191635,34378],{"class":50},[34,191637,11026],{"class":54},[34,191639,191640],{"class":36,"line":58},[34,191641,62],{"emptyLinePlaceholder":61},[34,191643,191644,191647,191649,191651],{"class":36,"line":65},[34,191645,191646],{"class":181},"greet(",[34,191648,21650],{"class":54},[34,191650,76021],{"class":181},[34,191652,191653],{"class":40},"# \"Hello, Alice!\"\n",[11,191655,191657],{"id":191656},"default-arguments","Default Arguments",[25,191659,191661],{"className":49386,"code":191660,"language":49388,"meta":30,"style":30},"def power(base, exp=2):\n    return base ** exp\n\npower(3)     # 9\npower(3, 3)  # 27\n",[20,191662,191663,191679,191691,191695,191707],{"__ignoreMap":30},[34,191664,191665,191667,191670,191673,191675,191677],{"class":36,"line":37},[34,191666,49400],{"class":580},[34,191668,191669],{"class":47}," power",[34,191671,191672],{"class":181},"(base, exp",[34,191674,1301],{"class":580},[34,191676,8324],{"class":50},[34,191678,51021],{"class":181},[34,191680,191681,191683,191686,191688],{"class":36,"line":44},[34,191682,1564],{"class":580},[34,191684,191685],{"class":181}," base ",[34,191687,23469],{"class":580},[34,191689,191690],{"class":181}," exp\n",[34,191692,191693],{"class":36,"line":58},[34,191694,62],{"emptyLinePlaceholder":61},[34,191696,191697,191700,191702,191704],{"class":36,"line":65},[34,191698,191699],{"class":181},"power(",[34,191701,3162],{"class":50},[34,191703,104237],{"class":181},[34,191705,191706],{"class":40},"# 9\n",[34,191708,191709,191711,191713,191715,191717,191719],{"class":36,"line":71},[34,191710,191699],{"class":181},[34,191712,3162],{"class":50},[34,191714,1798],{"class":181},[34,191716,3162],{"class":50},[34,191718,76021],{"class":181},[34,191720,191721],{"class":40},"# 27\n",[11,191723,191725],{"id":191724},"args-and-kwargs","*args and **kwargs",[25,191727,191729],{"className":49386,"code":191728,"language":49388,"meta":30,"style":30},"def total(*args):\n    return sum(args)\n\ntotal(1, 2, 3, 4)  # 10\n\ndef display(**kwargs):\n    for key, value in kwargs.items():\n        print(f\"{key}: {value}\")\n\ndisplay(name=\"Alice\", age=30)\n",[20,191730,191731,191745,191754,191758,191782,191786,191800,191811,191839,191843],{"__ignoreMap":30},[34,191732,191733,191735,191738,191740,191742],{"class":36,"line":37},[34,191734,49400],{"class":580},[34,191736,191737],{"class":47}," total",[34,191739,1607],{"class":181},[34,191741,4289],{"class":580},[34,191743,191744],{"class":181},"args):\n",[34,191746,191747,191749,191751],{"class":36,"line":44},[34,191748,1564],{"class":580},[34,191750,65446],{"class":50},[34,191752,191753],{"class":181},"(args)\n",[34,191755,191756],{"class":36,"line":58},[34,191757,62],{"emptyLinePlaceholder":61},[34,191759,191760,191763,191765,191767,191769,191771,191773,191775,191777,191779],{"class":36,"line":65},[34,191761,191762],{"class":181},"total(",[34,191764,8318],{"class":50},[34,191766,1798],{"class":181},[34,191768,8324],{"class":50},[34,191770,1798],{"class":181},[34,191772,3162],{"class":50},[34,191774,1798],{"class":181},[34,191776,18010],{"class":50},[34,191778,76021],{"class":181},[34,191780,191781],{"class":40},"# 10\n",[34,191783,191784],{"class":36,"line":71},[34,191785,62],{"emptyLinePlaceholder":61},[34,191787,191788,191790,191793,191795,191797],{"class":36,"line":77},[34,191789,49400],{"class":580},[34,191791,191792],{"class":47}," display",[34,191794,1607],{"class":181},[34,191796,23469],{"class":580},[34,191798,191799],{"class":181},"kwargs):\n",[34,191801,191802,191804,191806,191808],{"class":36,"line":82},[34,191803,18250],{"class":580},[34,191805,107014],{"class":181},[34,191807,10252],{"class":580},[34,191809,191810],{"class":181}," kwargs.items():\n",[34,191812,191813,191815,191817,191819,191821,191823,191825,191827,191829,191831,191833,191835,191837],{"class":36,"line":88},[34,191814,141797],{"class":50},[34,191816,1607],{"class":181},[34,191818,32918],{"class":580},[34,191820,10389],{"class":54},[34,191822,13990],{"class":50},[34,191824,141344],{"class":181},[34,191826,34378],{"class":50},[34,191828,182],{"class":54},[34,191830,13990],{"class":50},[34,191832,2871],{"class":181},[34,191834,34378],{"class":50},[34,191836,10389],{"class":54},[34,191838,3372],{"class":181},[34,191840,191841],{"class":36,"line":242},[34,191842,62],{"emptyLinePlaceholder":61},[34,191844,191845,191848,191850,191852,191854,191856,191858,191860,191862],{"class":36,"line":250},[34,191846,191847],{"class":181},"display(",[34,191849,178],{"class":675},[34,191851,1301],{"class":580},[34,191853,21650],{"class":54},[34,191855,1798],{"class":181},[34,191857,13337],{"class":675},[34,191859,1301],{"class":580},[34,191861,17625],{"class":50},[34,191863,3372],{"class":181},[11,191865,191867],{"id":191866},"multiple-return-values","Multiple Return Values",[25,191869,191871],{"className":49386,"code":191870,"language":49388,"meta":30,"style":30},"def min_max(nums):\n    return min(nums), max(nums)\n\nlo, hi = min_max([3, 1, 4, 1, 5])\n# lo=1, hi=5\n",[20,191872,191873,191883,191897,191901,191931],{"__ignoreMap":30},[34,191874,191875,191877,191880],{"class":36,"line":37},[34,191876,49400],{"class":580},[34,191878,191879],{"class":47}," min_max",[34,191881,191882],{"class":181},"(nums):\n",[34,191884,191885,191887,191889,191892,191894],{"class":36,"line":44},[34,191886,1564],{"class":580},[34,191888,116241],{"class":50},[34,191890,191891],{"class":181},"(nums), ",[34,191893,50086],{"class":50},[34,191895,191896],{"class":181},"(nums)\n",[34,191898,191899],{"class":36,"line":58},[34,191900,62],{"emptyLinePlaceholder":61},[34,191902,191903,191906,191908,191911,191913,191915,191917,191919,191921,191923,191925,191927,191929],{"class":36,"line":65},[34,191904,191905],{"class":181},"lo, hi ",[34,191907,1301],{"class":580},[34,191909,191910],{"class":181}," min_max([",[34,191912,3162],{"class":50},[34,191914,1798],{"class":181},[34,191916,8318],{"class":50},[34,191918,1798],{"class":181},[34,191920,18010],{"class":50},[34,191922,1798],{"class":181},[34,191924,8318],{"class":50},[34,191926,1798],{"class":181},[34,191928,2778],{"class":50},[34,191930,51547],{"class":181},[34,191932,191933],{"class":36,"line":71},[34,191934,191935],{"class":40},"# lo=1, hi=5\n",[11,191937,9102],{"id":9101},[25,191939,191941],{"className":49386,"code":191940,"language":49388,"meta":30,"style":30},"square = lambda x: x**2\nsquare(5)  # 25\n\nsorted([\"banana\", \"apple\", \"cherry\"], key=lambda s: len(s))\n",[20,191942,191943,191958,191970,191974],{"__ignoreMap":30},[34,191944,191945,191947,191949,191951,191954,191956],{"class":36,"line":37},[34,191946,106008],{"class":181},[34,191948,1301],{"class":580},[34,191950,9119],{"class":580},[34,191952,191953],{"class":181}," x: x",[34,191955,23469],{"class":580},[34,191957,91180],{"class":50},[34,191959,191960,191963,191965,191967],{"class":36,"line":44},[34,191961,191962],{"class":181},"square(",[34,191964,2778],{"class":50},[34,191966,76021],{"class":181},[34,191968,191969],{"class":40},"# 25\n",[34,191971,191972],{"class":36,"line":58},[34,191973,62],{"emptyLinePlaceholder":61},[34,191975,191976,191978,191980,191982,191984,191986,191988,191990,191992,191994,191997,192000,192002],{"class":36,"line":65},[34,191977,65595],{"class":50},[34,191979,3593],{"class":181},[34,191981,144247],{"class":54},[34,191983,1798],{"class":181},[34,191985,10088],{"class":54},[34,191987,1798],{"class":181},[34,191989,144252],{"class":54},[34,191991,65540],{"class":181},[34,191993,141344],{"class":675},[34,191995,191996],{"class":580},"=lambda",[34,191998,191999],{"class":181}," s: ",[34,192001,63603],{"class":50},[34,192003,192004],{"class":181},"(s))\n",[11,192006,192008],{"id":192007},"decorators","Decorators",[25,192010,192012],{"className":49386,"code":192011,"language":49388,"meta":30,"style":30},"def log(func):\n    def wrapper(*args, **kwargs):\n        print(f\"Calling {func.__name__}\")\n        return func(*args, **kwargs)\n    return wrapper\n\n@log\ndef add(a, b):\n    return a + b\n\nadd(2, 3)  # prints \"Calling add\", returns 5\n",[20,192013,192014,192023,192041,192064,192080,192087,192091,192096,192105,192115,192119],{"__ignoreMap":30},[34,192015,192016,192018,192020],{"class":36,"line":37},[34,192017,49400],{"class":580},[34,192019,100651],{"class":47},[34,192021,192022],{"class":181},"(func):\n",[34,192024,192025,192027,192030,192032,192034,192037,192039],{"class":36,"line":44},[34,192026,65417],{"class":580},[34,192028,192029],{"class":47}," wrapper",[34,192031,1607],{"class":181},[34,192033,4289],{"class":580},[34,192035,192036],{"class":181},"args, ",[34,192038,23469],{"class":580},[34,192040,191799],{"class":181},[34,192042,192043,192045,192047,192049,192052,192054,192057,192060,192062],{"class":36,"line":58},[34,192044,141797],{"class":50},[34,192046,1607],{"class":181},[34,192048,32918],{"class":580},[34,192050,192051],{"class":54},"\"Calling ",[34,192053,13990],{"class":50},[34,192055,192056],{"class":181},"func.",[34,192058,192059],{"class":50},"__name__}",[34,192061,10389],{"class":54},[34,192063,3372],{"class":181},[34,192065,192066,192068,192071,192073,192075,192077],{"class":36,"line":65},[34,192067,13895],{"class":580},[34,192069,192070],{"class":181}," func(",[34,192072,4289],{"class":580},[34,192074,192036],{"class":181},[34,192076,23469],{"class":580},[34,192078,192079],{"class":181},"kwargs)\n",[34,192081,192082,192084],{"class":36,"line":71},[34,192083,1564],{"class":580},[34,192085,192086],{"class":181}," wrapper\n",[34,192088,192089],{"class":36,"line":77},[34,192090,62],{"emptyLinePlaceholder":61},[34,192092,192093],{"class":36,"line":82},[34,192094,192095],{"class":47},"@log\n",[34,192097,192098,192100,192102],{"class":36,"line":88},[34,192099,49400],{"class":580},[34,192101,7854],{"class":47},[34,192103,192104],{"class":181},"(a, b):\n",[34,192106,192107,192109,192111,192113],{"class":36,"line":242},[34,192108,1564],{"class":580},[34,192110,8065],{"class":181},[34,192112,2940],{"class":580},[34,192114,87475],{"class":181},[34,192116,192117],{"class":36,"line":250},[34,192118,62],{"emptyLinePlaceholder":61},[34,192120,192121,192124,192126,192128,192130,192132],{"class":36,"line":263},[34,192122,192123],{"class":181},"add(",[34,192125,8324],{"class":50},[34,192127,1798],{"class":181},[34,192129,3162],{"class":50},[34,192131,76021],{"class":181},[34,192133,192134],{"class":40},"# prints \"Calling add\", returns 5\n",[388,192136,192137],{},"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 .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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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}",{"title":30,"searchDepth":44,"depth":44,"links":192139},[192140,192141,192142,192143,192144,192145],{"id":191607,"depth":44,"text":191608},{"id":191656,"depth":44,"text":191657},{"id":191724,"depth":44,"text":191725},{"id":191866,"depth":44,"text":191867},{"id":9101,"depth":44,"text":9102},{"id":192007,"depth":44,"text":192008},"Function definition, arguments, return values, and decorators in Python",{},"/python/functions",{"title":10991,"description":192146},"python/functions",[10996,192152,2917,9101,192007],"arguments","mCAt5wLfKkAEcXVPzxLVzZ5JSx36tJSN5Q9qG2Aie8Y",{"id":192155,"title":61448,"body":192156,"date":402,"description":192623,"extension":404,"meta":192624,"navigation":61,"order":58,"path":192625,"seo":192626,"stem":192627,"subject":49388,"tags":192628,"__hash__":192629},"topics/python/lists.md",{"type":8,"value":192157,"toc":192616},[192158,192161,192163,192255,192259,192352,192354,192489,192493,192563,192565,192613],[16,192159,192160],{},"Lists are ordered, mutable sequences that can hold any mix of types.",[11,192162,191167],{"id":191166},[25,192164,192166],{"className":49386,"code":192165,"language":49388,"meta":30,"style":30},"nums = [1, 2, 3, 4, 5]\nmixed = [1, \"hello\", True, None]\nempty = []\nnested = [[1, 2], [3, 4]]\n",[20,192167,192168,192196,192221,192229],{"__ignoreMap":30},[34,192169,192170,192172,192174,192176,192178,192180,192182,192184,192186,192188,192190,192192,192194],{"class":36,"line":37},[34,192171,106940],{"class":181},[34,192173,1301],{"class":580},[34,192175,8315],{"class":181},[34,192177,8318],{"class":50},[34,192179,1798],{"class":181},[34,192181,8324],{"class":50},[34,192183,1798],{"class":181},[34,192185,3162],{"class":50},[34,192187,1798],{"class":181},[34,192189,18010],{"class":50},[34,192191,1798],{"class":181},[34,192193,2778],{"class":50},[34,192195,924],{"class":181},[34,192197,192198,192201,192203,192205,192207,192209,192211,192213,192215,192217,192219],{"class":36,"line":44},[34,192199,192200],{"class":181},"mixed ",[34,192202,1301],{"class":580},[34,192204,8315],{"class":181},[34,192206,8318],{"class":50},[34,192208,1798],{"class":181},[34,192210,17360],{"class":54},[34,192212,1798],{"class":181},[34,192214,74021],{"class":50},[34,192216,1798],{"class":181},[34,192218,51018],{"class":50},[34,192220,924],{"class":181},[34,192222,192223,192225,192227],{"class":36,"line":58},[34,192224,144597],{"class":181},[34,192226,1301],{"class":580},[34,192228,53166],{"class":181},[34,192230,192231,192234,192236,192239,192241,192243,192245,192247,192249,192251,192253],{"class":36,"line":65},[34,192232,192233],{"class":181},"nested ",[34,192235,1301],{"class":580},[34,192237,192238],{"class":181}," [[",[34,192240,8318],{"class":50},[34,192242,1798],{"class":181},[34,192244,8324],{"class":50},[34,192246,127721],{"class":181},[34,192248,3162],{"class":50},[34,192250,1798],{"class":181},[34,192252,18010],{"class":50},[34,192254,127730],{"class":181},[11,192256,192258],{"id":192257},"access-slicing","Access & Slicing",[25,192260,192262],{"className":49386,"code":192261,"language":49388,"meta":30,"style":30},"nums = [10, 20, 30, 40, 50]\n\nnums[0]    # 10\nnums[-1]   # 50\nnums[1:3]  # [20, 30]\nnums[::-1] # [50, 40, 30, 20, 10]\n",[20,192263,192264,192292,192296,192308,192322,192338],{"__ignoreMap":30},[34,192265,192266,192268,192270,192272,192274,192276,192278,192280,192282,192284,192286,192288,192290],{"class":36,"line":37},[34,192267,106940],{"class":181},[34,192269,1301],{"class":580},[34,192271,8315],{"class":181},[34,192273,11923],{"class":50},[34,192275,1798],{"class":181},[34,192277,24945],{"class":50},[34,192279,1798],{"class":181},[34,192281,17625],{"class":50},[34,192283,1798],{"class":181},[34,192285,83655],{"class":50},[34,192287,1798],{"class":181},[34,192289,24525],{"class":50},[34,192291,924],{"class":181},[34,192293,192294],{"class":36,"line":44},[34,192295,62],{"emptyLinePlaceholder":61},[34,192297,192298,192301,192303,192306],{"class":36,"line":58},[34,192299,192300],{"class":181},"nums[",[34,192302,2773],{"class":50},[34,192304,192305],{"class":181},"]    ",[34,192307,191781],{"class":40},[34,192309,192310,192312,192314,192316,192319],{"class":36,"line":65},[34,192311,192300],{"class":181},[34,192313,22062],{"class":580},[34,192315,8318],{"class":50},[34,192317,192318],{"class":181},"]   ",[34,192320,192321],{"class":40},"# 50\n",[34,192323,192324,192326,192328,192330,192332,192335],{"class":36,"line":71},[34,192325,192300],{"class":181},[34,192327,8318],{"class":50},[34,192329,165],{"class":181},[34,192331,3162],{"class":50},[34,192333,192334],{"class":181},"]  ",[34,192336,192337],{"class":40},"# [20, 30]\n",[34,192339,192340,192343,192345,192347,192349],{"class":36,"line":77},[34,192341,192342],{"class":181},"nums[::",[34,192344,22062],{"class":580},[34,192346,8318],{"class":50},[34,192348,17799],{"class":181},[34,192350,192351],{"class":40},"# [50, 40, 30, 20, 10]\n",[11,192353,191378],{"id":191377},[25,192355,192357],{"className":49386,"code":192356,"language":49388,"meta":30,"style":30},"nums = [3, 1, 4, 1, 5]\n\nnums.append(9)       # [3, 1, 4, 1, 5, 9]\nnums.insert(0, 0)    # [0, 3, 1, 4, 1, 5, 9]\nnums.remove(1)       # removes first 1\nnums.pop()           # removes and returns last item\nnums.sort()          # sorts in place\nnums.reverse()       # reverses in place\nlen(nums)            # length\nnums.count(1)        # occurrences of 1\nnums.index(4)        # index of first 4\n",[20,192358,192359,192387,192391,192403,192419,192431,192439,192447,192455,192465,192477],{"__ignoreMap":30},[34,192360,192361,192363,192365,192367,192369,192371,192373,192375,192377,192379,192381,192383,192385],{"class":36,"line":37},[34,192362,106940],{"class":181},[34,192364,1301],{"class":580},[34,192366,8315],{"class":181},[34,192368,3162],{"class":50},[34,192370,1798],{"class":181},[34,192372,8318],{"class":50},[34,192374,1798],{"class":181},[34,192376,18010],{"class":50},[34,192378,1798],{"class":181},[34,192380,8318],{"class":50},[34,192382,1798],{"class":181},[34,192384,2778],{"class":50},[34,192386,924],{"class":181},[34,192388,192389],{"class":36,"line":44},[34,192390,62],{"emptyLinePlaceholder":61},[34,192392,192393,192396,192398,192400],{"class":36,"line":58},[34,192394,192395],{"class":181},"nums.append(",[34,192397,18038],{"class":50},[34,192399,104323],{"class":181},[34,192401,192402],{"class":40},"# [3, 1, 4, 1, 5, 9]\n",[34,192404,192405,192408,192410,192412,192414,192416],{"class":36,"line":65},[34,192406,192407],{"class":181},"nums.insert(",[34,192409,2773],{"class":50},[34,192411,1798],{"class":181},[34,192413,2773],{"class":50},[34,192415,103888],{"class":181},[34,192417,192418],{"class":40},"# [0, 3, 1, 4, 1, 5, 9]\n",[34,192420,192421,192424,192426,192428],{"class":36,"line":71},[34,192422,192423],{"class":181},"nums.remove(",[34,192425,8318],{"class":50},[34,192427,104323],{"class":181},[34,192429,192430],{"class":40},"# removes first 1\n",[34,192432,192433,192436],{"class":36,"line":77},[34,192434,192435],{"class":181},"nums.pop()           ",[34,192437,192438],{"class":40},"# removes and returns last item\n",[34,192440,192441,192444],{"class":36,"line":82},[34,192442,192443],{"class":181},"nums.sort()          ",[34,192445,192446],{"class":40},"# sorts in place\n",[34,192448,192449,192452],{"class":36,"line":88},[34,192450,192451],{"class":181},"nums.reverse()       ",[34,192453,192454],{"class":40},"# reverses in place\n",[34,192456,192457,192459,192462],{"class":36,"line":242},[34,192458,63603],{"class":50},[34,192460,192461],{"class":181},"(nums)            ",[34,192463,192464],{"class":40},"# length\n",[34,192466,192467,192470,192472,192474],{"class":36,"line":250},[34,192468,192469],{"class":181},"nums.count(",[34,192471,8318],{"class":50},[34,192473,103864],{"class":181},[34,192475,192476],{"class":40},"# occurrences of 1\n",[34,192478,192479,192482,192484,192486],{"class":36,"line":263},[34,192480,192481],{"class":181},"nums.index(",[34,192483,18010],{"class":50},[34,192485,103864],{"class":181},[34,192487,192488],{"class":40},"# index of first 4\n",[11,192490,192492],{"id":192491},"list-comprehension","List Comprehension",[25,192494,192496],{"className":49386,"code":192495,"language":49388,"meta":30,"style":30},"squares = [x**2 for x in range(10)]\nevens = [x for x in range(20) if x % 2 == 0]\n",[20,192497,192498,192525],{"__ignoreMap":30},[34,192499,192500,192502,192504,192507,192509,192511,192513,192515,192517,192519,192521,192523],{"class":36,"line":37},[34,192501,191546],{"class":181},[34,192503,1301],{"class":580},[34,192505,192506],{"class":181}," [x",[34,192508,23469],{"class":580},[34,192510,8324],{"class":50},[34,192512,52988],{"class":580},[34,192514,23172],{"class":181},[34,192516,10252],{"class":580},[34,192518,104014],{"class":50},[34,192520,1607],{"class":181},[34,192522,11923],{"class":50},[34,192524,34499],{"class":181},[34,192526,192527,192530,192532,192535,192537,192539,192541,192543,192545,192547,192549,192551,192553,192555,192557,192559,192561],{"class":36,"line":44},[34,192528,192529],{"class":181},"evens ",[34,192531,1301],{"class":580},[34,192533,192534],{"class":181}," [x ",[34,192536,10246],{"class":580},[34,192538,23172],{"class":181},[34,192540,10252],{"class":580},[34,192542,104014],{"class":50},[34,192544,1607],{"class":181},[34,192546,24945],{"class":50},[34,192548,4817],{"class":181},[34,192550,10383],{"class":580},[34,192552,23172],{"class":181},[34,192554,12797],{"class":580},[34,192556,4292],{"class":50},[34,192558,10946],{"class":580},[34,192560,8070],{"class":50},[34,192562,924],{"class":181},[11,192564,191486],{"id":191485},[25,192566,192568],{"className":49386,"code":192567,"language":49388,"meta":30,"style":30},"for item in nums:\n    print(item)\n\nfor i, item in enumerate(nums):\n    print(i, item)\n",[20,192569,192570,192582,192588,192592,192606],{"__ignoreMap":30},[34,192571,192572,192574,192577,192579],{"class":36,"line":37},[34,192573,10246],{"class":580},[34,192575,192576],{"class":181}," item ",[34,192578,10252],{"class":580},[34,192580,192581],{"class":181}," nums:\n",[34,192583,192584,192586],{"class":36,"line":44},[34,192585,141419],{"class":50},[34,192587,77388],{"class":181},[34,192589,192590],{"class":36,"line":58},[34,192591,62],{"emptyLinePlaceholder":61},[34,192593,192594,192596,192599,192601,192604],{"class":36,"line":65},[34,192595,10246],{"class":580},[34,192597,192598],{"class":181}," i, item ",[34,192600,10252],{"class":580},[34,192602,192603],{"class":50}," enumerate",[34,192605,191882],{"class":181},[34,192607,192608,192610],{"class":36,"line":71},[34,192609,141419],{"class":50},[34,192611,192612],{"class":181},"(i, item)\n",[388,192614,192615],{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":30,"searchDepth":44,"depth":44,"links":192617},[192618,192619,192620,192621,192622],{"id":191166,"depth":44,"text":191167},{"id":192257,"depth":44,"text":192258},{"id":191377,"depth":44,"text":191378},{"id":192491,"depth":44,"text":192492},{"id":191485,"depth":44,"text":191486},"List creation, manipulation, and common operations in Python",{},"/python/lists",{"title":61448,"description":192623},"python/lists",[80306,10066,83156,191485],"-McXCZa51LcF66uAySUR0ByWIOYrTrrZtoPCWx5-P2Y",{"id":192631,"title":132677,"body":192632,"date":194845,"description":194846,"extension":404,"meta":194847,"navigation":61,"order":37,"path":194848,"seo":194849,"stem":194850,"subject":49388,"tags":194851,"__hash__":194852},"topics/python/overview.md",{"type":8,"value":192633,"toc":194833},[192634,192636,192870,192872,193034,193036,193336,193338,193516,193518,193717,193719,193936,193938,194281,194283,194460,194462,194656,194660,194830],[11,192635,32171],{"id":32868},[25,192637,192639],{"className":49386,"code":192638,"language":49388,"meta":30,"style":30},"# Variables (dynamic typing)\nname = \"Alice\"          # str\nage = 30               # int\nheight = 5.9           # float\nis_active = True       # bool\nitems = [1, 2, 3]      # list\ncoords = (10, 20)      # tuple\nperson = {\"name\": \"Bob\"} # dict\nunique = {1, 2, 3}     # set\n\n# Type hints (Python 3.5+)\nname: str = \"Alice\"\nnumbers: list[int] = [1, 2, 3]\n\n# Multiple assignment\na, b, c = 1, 2, 3\nx = y = z = 0\n",[20,192640,192641,192646,192657,192668,192681,192693,192718,192738,192757,192782,192786,192791,192802,192827,192831,192836,192852],{"__ignoreMap":30},[34,192642,192643],{"class":36,"line":37},[34,192644,192645],{"class":40},"# Variables (dynamic typing)\n",[34,192647,192648,192650,192652,192654],{"class":36,"line":44},[34,192649,37383],{"class":181},[34,192651,1301],{"class":580},[34,192653,25138],{"class":54},[34,192655,192656],{"class":40},"          # str\n",[34,192658,192659,192661,192663,192665],{"class":36,"line":58},[34,192660,24879],{"class":181},[34,192662,1301],{"class":580},[34,192664,30458],{"class":50},[34,192666,192667],{"class":40},"               # int\n",[34,192669,192670,192673,192675,192678],{"class":36,"line":65},[34,192671,192672],{"class":181},"height ",[34,192674,1301],{"class":580},[34,192676,192677],{"class":50}," 5.9",[34,192679,192680],{"class":40},"           # float\n",[34,192682,192683,192685,192687,192690],{"class":36,"line":71},[34,192684,144585],{"class":181},[34,192686,1301],{"class":580},[34,192688,192689],{"class":50}," True",[34,192691,192692],{"class":40},"       # bool\n",[34,192694,192695,192698,192700,192702,192704,192706,192708,192710,192712,192715],{"class":36,"line":77},[34,192696,192697],{"class":181},"items ",[34,192699,1301],{"class":580},[34,192701,8315],{"class":181},[34,192703,8318],{"class":50},[34,192705,1798],{"class":181},[34,192707,8324],{"class":50},[34,192709,1798],{"class":181},[34,192711,3162],{"class":50},[34,192713,192714],{"class":181},"]      ",[34,192716,192717],{"class":40},"# list\n",[34,192719,192720,192723,192725,192727,192729,192731,192733,192735],{"class":36,"line":82},[34,192721,192722],{"class":181},"coords ",[34,192724,1301],{"class":580},[34,192726,3204],{"class":181},[34,192728,11923],{"class":50},[34,192730,1798],{"class":181},[34,192732,24945],{"class":50},[34,192734,103662],{"class":181},[34,192736,192737],{"class":40},"# tuple\n",[34,192739,192740,192742,192744,192746,192748,192750,192752,192754],{"class":36,"line":88},[34,192741,190029],{"class":181},[34,192743,1301],{"class":580},[34,192745,11838],{"class":181},[34,192747,4650],{"class":54},[34,192749,182],{"class":181},[34,192751,30344],{"class":54},[34,192753,2276],{"class":181},[34,192755,192756],{"class":40},"# dict\n",[34,192758,192759,192762,192764,192766,192768,192770,192772,192774,192776,192779],{"class":36,"line":242},[34,192760,192761],{"class":181},"unique ",[34,192763,1301],{"class":580},[34,192765,11838],{"class":181},[34,192767,8318],{"class":50},[34,192769,1798],{"class":181},[34,192771,8324],{"class":50},[34,192773,1798],{"class":181},[34,192775,3162],{"class":50},[34,192777,192778],{"class":181},"}     ",[34,192780,192781],{"class":40},"# set\n",[34,192783,192784],{"class":36,"line":250},[34,192785,62],{"emptyLinePlaceholder":61},[34,192787,192788],{"class":36,"line":263},[34,192789,192790],{"class":40},"# Type hints (Python 3.5+)\n",[34,192792,192793,192796,192798,192800],{"class":36,"line":275},[34,192794,192795],{"class":181},"name: ",[34,192797,12646],{"class":50},[34,192799,683],{"class":580},[34,192801,142978],{"class":54},[34,192803,192804,192807,192809,192811,192813,192815,192817,192819,192821,192823,192825],{"class":36,"line":700},[34,192805,192806],{"class":181},"numbers: list[",[34,192808,17772],{"class":50},[34,192810,17799],{"class":181},[34,192812,1301],{"class":580},[34,192814,8315],{"class":181},[34,192816,8318],{"class":50},[34,192818,1798],{"class":181},[34,192820,8324],{"class":50},[34,192822,1798],{"class":181},[34,192824,3162],{"class":50},[34,192826,924],{"class":181},[34,192828,192829],{"class":36,"line":706},[34,192830,62],{"emptyLinePlaceholder":61},[34,192832,192833],{"class":36,"line":715},[34,192834,192835],{"class":40},"# Multiple assignment\n",[34,192837,192838,192840,192842,192844,192846,192848,192850],{"class":36,"line":725},[34,192839,108457],{"class":181},[34,192841,1301],{"class":580},[34,192843,3567],{"class":50},[34,192845,1798],{"class":181},[34,192847,8324],{"class":50},[34,192849,1798],{"class":181},[34,192851,108452],{"class":50},[34,192853,192854,192856,192858,192861,192863,192866,192868],{"class":36,"line":734},[34,192855,107898],{"class":181},[34,192857,1301],{"class":580},[34,192859,192860],{"class":181}," y ",[34,192862,1301],{"class":580},[34,192864,192865],{"class":181}," z ",[34,192867,1301],{"class":580},[34,192869,36394],{"class":50},[11,192871,23101],{"id":24353},[25,192873,192875],{"className":49386,"code":192874,"language":49388,"meta":30,"style":30},"# String formatting\nname = \"World\"\nf\"Hello, {name}!\"           # f-strings (recommended)\n\"Hello, {}!\".format(name)   # .format()\n\"Hello, %s!\" % name         # % formatting\n\n# String methods\ns.upper()           # UPPERCASE\ns.lower()           # lowercase\ns.strip()           # Remove whitespace\ns.split(\",\")        # Split into list\ns.replace(\"a\", \"b\") # Replace substring\ns.startswith(\"Hi\")  # Check prefix\ns.endswith(\"!\")     # Check suffix\n\"-\".join([\"a\", \"b\"]) # Join list → \"a-b\"\n",[20,192876,192877,192882,192890,192907,192918,192930,192934,192939,192947,192955,192963,192975,192991,193003,193015],{"__ignoreMap":30},[34,192878,192879],{"class":36,"line":37},[34,192880,192881],{"class":40},"# String formatting\n",[34,192883,192884,192886,192888],{"class":36,"line":44},[34,192885,37383],{"class":181},[34,192887,1301],{"class":580},[34,192889,11079],{"class":54},[34,192891,192892,192894,192896,192898,192900,192902,192904],{"class":36,"line":58},[34,192893,32918],{"class":580},[34,192895,21921],{"class":54},[34,192897,13990],{"class":50},[34,192899,178],{"class":181},[34,192901,34378],{"class":50},[34,192903,37073],{"class":54},[34,192905,192906],{"class":40},"           # f-strings (recommended)\n",[34,192908,192909,192912,192915],{"class":36,"line":65},[34,192910,192911],{"class":54},"\"Hello, {}!\"",[34,192913,192914],{"class":181},".format(name)   ",[34,192916,192917],{"class":40},"# .format()\n",[34,192919,192920,192922,192924,192927],{"class":36,"line":71},[34,192921,143023],{"class":54},[34,192923,22788],{"class":580},[34,192925,192926],{"class":181}," name         ",[34,192928,192929],{"class":40},"# % formatting\n",[34,192931,192932],{"class":36,"line":77},[34,192933,62],{"emptyLinePlaceholder":61},[34,192935,192936],{"class":36,"line":82},[34,192937,192938],{"class":40},"# String methods\n",[34,192940,192941,192944],{"class":36,"line":88},[34,192942,192943],{"class":181},"s.upper()           ",[34,192945,192946],{"class":40},"# UPPERCASE\n",[34,192948,192949,192952],{"class":36,"line":242},[34,192950,192951],{"class":181},"s.lower()           ",[34,192953,192954],{"class":40},"# lowercase\n",[34,192956,192957,192960],{"class":36,"line":250},[34,192958,192959],{"class":181},"s.strip()           ",[34,192961,192962],{"class":40},"# Remove whitespace\n",[34,192964,192965,192968,192970,192972],{"class":36,"line":263},[34,192966,192967],{"class":181},"s.split(",[34,192969,104255],{"class":54},[34,192971,103864],{"class":181},[34,192973,192974],{"class":40},"# Split into list\n",[34,192976,192977,192980,192982,192984,192986,192988],{"class":36,"line":275},[34,192978,192979],{"class":181},"s.replace(",[34,192981,104277],{"class":54},[34,192983,1798],{"class":181},[34,192985,104282],{"class":54},[34,192987,4817],{"class":181},[34,192989,192990],{"class":40},"# Replace substring\n",[34,192992,192993,192996,192998,193000],{"class":36,"line":700},[34,192994,192995],{"class":181},"s.startswith(",[34,192997,32607],{"class":54},[34,192999,76021],{"class":181},[34,193001,193002],{"class":40},"# Check prefix\n",[34,193004,193005,193008,193010,193012],{"class":36,"line":706},[34,193006,193007],{"class":181},"s.endswith(",[34,193009,32548],{"class":54},[34,193011,104237],{"class":181},[34,193013,193014],{"class":40},"# Check suffix\n",[34,193016,193017,193019,193022,193024,193026,193028,193031],{"class":36,"line":715},[34,193018,104287],{"class":54},[34,193020,193021],{"class":181},".join([",[34,193023,104277],{"class":54},[34,193025,1798],{"class":181},[34,193027,104282],{"class":54},[34,193029,193030],{"class":181},"]) ",[34,193032,193033],{"class":40},"# Join list → \"a-b\"\n",[11,193035,61448],{"id":80306},[25,193037,193039],{"className":49386,"code":193038,"language":49388,"meta":30,"style":30},"# List operations\nitems = [1, 2, 3, 4, 5]\nitems.append(6)          # Add to end\nitems.insert(0, 0)       # Insert at index\nitems.pop()              # Remove & return last\nitems.remove(3)          # Remove first occurrence\nitems.extend([7, 8])     # Extend with iterable\nlen(items)               # Length\n\n# Slicing\nitems[0]      # First element\nitems[-1]     # Last element\nitems[1:3]    # Elements 1-2\nitems[::2]    # Every 2nd element\nitems[::-1]   # Reversed\n\n# List comprehension\nsquares = [x**2 for x in range(10)]\nevens = [x for x in range(10) if x % 2 == 0]\nmatrix = [[i*j for j in range(3)] for i in range(3)]\n",[20,193040,193041,193046,193074,193086,193102,193110,193122,193139,193148,193152,193157,193168,193181,193196,193208,193221,193225,193230,193256,193292],{"__ignoreMap":30},[34,193042,193043],{"class":36,"line":37},[34,193044,193045],{"class":40},"# List operations\n",[34,193047,193048,193050,193052,193054,193056,193058,193060,193062,193064,193066,193068,193070,193072],{"class":36,"line":44},[34,193049,192697],{"class":181},[34,193051,1301],{"class":580},[34,193053,8315],{"class":181},[34,193055,8318],{"class":50},[34,193057,1798],{"class":181},[34,193059,8324],{"class":50},[34,193061,1798],{"class":181},[34,193063,3162],{"class":50},[34,193065,1798],{"class":181},[34,193067,18010],{"class":50},[34,193069,1798],{"class":181},[34,193071,2778],{"class":50},[34,193073,924],{"class":181},[34,193075,193076,193079,193081,193083],{"class":36,"line":58},[34,193077,193078],{"class":181},"items.append(",[34,193080,18019],{"class":50},[34,193082,104258],{"class":181},[34,193084,193085],{"class":40},"# Add to end\n",[34,193087,193088,193091,193093,193095,193097,193099],{"class":36,"line":65},[34,193089,193090],{"class":181},"items.insert(",[34,193092,2773],{"class":50},[34,193094,1798],{"class":181},[34,193096,2773],{"class":50},[34,193098,104323],{"class":181},[34,193100,193101],{"class":40},"# Insert at index\n",[34,193103,193104,193107],{"class":36,"line":71},[34,193105,193106],{"class":181},"items.pop()              ",[34,193108,193109],{"class":40},"# Remove & return last\n",[34,193111,193112,193115,193117,193119],{"class":36,"line":77},[34,193113,193114],{"class":181},"items.remove(",[34,193116,3162],{"class":50},[34,193118,104258],{"class":181},[34,193120,193121],{"class":40},"# Remove first occurrence\n",[34,193123,193124,193127,193129,193131,193133,193136],{"class":36,"line":82},[34,193125,193126],{"class":181},"items.extend([",[34,193128,18028],{"class":50},[34,193130,1798],{"class":181},[34,193132,18033],{"class":50},[34,193134,193135],{"class":181},"])     ",[34,193137,193138],{"class":40},"# Extend with iterable\n",[34,193140,193141,193143,193146],{"class":36,"line":88},[34,193142,63603],{"class":50},[34,193144,193145],{"class":181},"(items)               ",[34,193147,12660],{"class":40},[34,193149,193150],{"class":36,"line":242},[34,193151,62],{"emptyLinePlaceholder":61},[34,193153,193154],{"class":36,"line":250},[34,193155,193156],{"class":40},"# Slicing\n",[34,193158,193159,193162,193164,193166],{"class":36,"line":263},[34,193160,193161],{"class":181},"items[",[34,193163,2773],{"class":50},[34,193165,192714],{"class":181},[34,193167,10126],{"class":40},[34,193169,193170,193172,193174,193176,193178],{"class":36,"line":275},[34,193171,193161],{"class":181},[34,193173,22062],{"class":580},[34,193175,8318],{"class":50},[34,193177,132940],{"class":181},[34,193179,193180],{"class":40},"# Last element\n",[34,193182,193183,193185,193187,193189,193191,193193],{"class":36,"line":700},[34,193184,193161],{"class":181},[34,193186,8318],{"class":50},[34,193188,165],{"class":181},[34,193190,3162],{"class":50},[34,193192,192305],{"class":181},[34,193194,193195],{"class":40},"# Elements 1-2\n",[34,193197,193198,193201,193203,193205],{"class":36,"line":706},[34,193199,193200],{"class":181},"items[::",[34,193202,8324],{"class":50},[34,193204,192305],{"class":181},[34,193206,193207],{"class":40},"# Every 2nd element\n",[34,193209,193210,193212,193214,193216,193218],{"class":36,"line":715},[34,193211,193200],{"class":181},[34,193213,22062],{"class":580},[34,193215,8318],{"class":50},[34,193217,192318],{"class":181},[34,193219,193220],{"class":40},"# Reversed\n",[34,193222,193223],{"class":36,"line":725},[34,193224,62],{"emptyLinePlaceholder":61},[34,193226,193227],{"class":36,"line":734},[34,193228,193229],{"class":40},"# List comprehension\n",[34,193231,193232,193234,193236,193238,193240,193242,193244,193246,193248,193250,193252,193254],{"class":36,"line":742},[34,193233,191546],{"class":181},[34,193235,1301],{"class":580},[34,193237,192506],{"class":181},[34,193239,23469],{"class":580},[34,193241,8324],{"class":50},[34,193243,52988],{"class":580},[34,193245,23172],{"class":181},[34,193247,10252],{"class":580},[34,193249,104014],{"class":50},[34,193251,1607],{"class":181},[34,193253,11923],{"class":50},[34,193255,34499],{"class":181},[34,193257,193258,193260,193262,193264,193266,193268,193270,193272,193274,193276,193278,193280,193282,193284,193286,193288,193290],{"class":36,"line":748},[34,193259,192529],{"class":181},[34,193261,1301],{"class":580},[34,193263,192534],{"class":181},[34,193265,10246],{"class":580},[34,193267,23172],{"class":181},[34,193269,10252],{"class":580},[34,193271,104014],{"class":50},[34,193273,1607],{"class":181},[34,193275,11923],{"class":50},[34,193277,4817],{"class":181},[34,193279,10383],{"class":580},[34,193281,23172],{"class":181},[34,193283,12797],{"class":580},[34,193285,4292],{"class":50},[34,193287,10946],{"class":580},[34,193289,8070],{"class":50},[34,193291,924],{"class":181},[34,193293,193294,193297,193299,193302,193304,193307,193309,193311,193313,193315,193317,193319,193322,193324,193326,193328,193330,193332,193334],{"class":36,"line":754},[34,193295,193296],{"class":181},"matrix ",[34,193298,1301],{"class":580},[34,193300,193301],{"class":181}," [[i",[34,193303,4289],{"class":580},[34,193305,193306],{"class":181},"j ",[34,193308,10246],{"class":580},[34,193310,72911],{"class":181},[34,193312,10252],{"class":580},[34,193314,104014],{"class":50},[34,193316,1607],{"class":181},[34,193318,3162],{"class":50},[34,193320,193321],{"class":181},")] ",[34,193323,10246],{"class":580},[34,193325,10300],{"class":181},[34,193327,10252],{"class":580},[34,193329,104014],{"class":50},[34,193331,1607],{"class":181},[34,193333,3162],{"class":50},[34,193335,34499],{"class":181},[11,193337,191158],{"id":191592},[25,193339,193341],{"className":49386,"code":193340,"language":49388,"meta":30,"style":30},"# Dictionary operations\nd = {\"name\": \"Alice\", \"age\": 30}\nd[\"name\"]              # Get value (raises KeyError if missing)\nd.get(\"name\")          # Get value (returns None if missing)\nd.get(\"job\", \"N/A\")    # Get with default\nd[\"job\"] = \"Developer\" # Set value\nd.keys()               # Get keys\nd.values()             # Get values\nd.items()              # Get key-value pairs\nd.pop(\"age\")           # Remove & return value\nd.update({\"city\": \"NYC\"}) # Merge dictionaries\n\n# Dictionary comprehension\nsquares = {x: x**2 for x in range(5)}\n",[20,193342,193343,193348,193372,193384,193395,193412,193428,193436,193444,193452,193463,193481,193485,193490],{"__ignoreMap":30},[34,193344,193345],{"class":36,"line":37},[34,193346,193347],{"class":40},"# Dictionary operations\n",[34,193349,193350,193352,193354,193356,193358,193360,193362,193364,193366,193368,193370],{"class":36,"line":44},[34,193351,191258],{"class":181},[34,193353,1301],{"class":580},[34,193355,11838],{"class":181},[34,193357,4650],{"class":54},[34,193359,182],{"class":181},[34,193361,21650],{"class":54},[34,193363,1798],{"class":181},[34,193365,58524],{"class":54},[34,193367,182],{"class":181},[34,193369,17625],{"class":50},[34,193371,693],{"class":181},[34,193373,193374,193376,193378,193381],{"class":36,"line":58},[34,193375,191287],{"class":181},[34,193377,4650],{"class":54},[34,193379,193380],{"class":181},"]              ",[34,193382,193383],{"class":40},"# Get value (raises KeyError if missing)\n",[34,193385,193386,193388,193390,193392],{"class":36,"line":65},[34,193387,191299],{"class":181},[34,193389,4650],{"class":54},[34,193391,104258],{"class":181},[34,193393,193394],{"class":40},"# Get value (returns None if missing)\n",[34,193396,193397,193399,193402,193404,193407,193409],{"class":36,"line":71},[34,193398,191299],{"class":181},[34,193400,193401],{"class":54},"\"job\"",[34,193403,1798],{"class":181},[34,193405,193406],{"class":54},"\"N/A\"",[34,193408,103888],{"class":181},[34,193410,193411],{"class":40},"# Get with default\n",[34,193413,193414,193416,193418,193420,193422,193425],{"class":36,"line":77},[34,193415,191287],{"class":181},[34,193417,193401],{"class":54},[34,193419,17799],{"class":181},[34,193421,1301],{"class":580},[34,193423,193424],{"class":54}," \"Developer\"",[34,193426,193427],{"class":40}," # Set value\n",[34,193429,193430,193433],{"class":36,"line":82},[34,193431,193432],{"class":181},"d.keys()               ",[34,193434,193435],{"class":40},"# Get keys\n",[34,193437,193438,193441],{"class":36,"line":88},[34,193439,193440],{"class":181},"d.values()             ",[34,193442,193443],{"class":40},"# Get values\n",[34,193445,193446,193449],{"class":36,"line":242},[34,193447,193448],{"class":181},"d.items()              ",[34,193450,193451],{"class":40},"# Get key-value pairs\n",[34,193453,193454,193456,193458,193460],{"class":36,"line":250},[34,193455,191448],{"class":181},[34,193457,58524],{"class":54},[34,193459,75985],{"class":181},[34,193461,193462],{"class":40},"# Remove & return value\n",[34,193464,193465,193467,193470,193472,193475,193478],{"class":36,"line":263},[34,193466,191460],{"class":181},[34,193468,193469],{"class":54},"\"city\"",[34,193471,182],{"class":181},[34,193473,193474],{"class":54},"\"NYC\"",[34,193476,193477],{"class":181},"}) ",[34,193479,193480],{"class":40},"# Merge dictionaries\n",[34,193482,193483],{"class":36,"line":275},[34,193484,62],{"emptyLinePlaceholder":61},[34,193486,193487],{"class":36,"line":700},[34,193488,193489],{"class":40},"# Dictionary comprehension\n",[34,193491,193492,193494,193496,193498,193500,193502,193504,193506,193508,193510,193512,193514],{"class":36,"line":706},[34,193493,191546],{"class":181},[34,193495,1301],{"class":580},[34,193497,191551],{"class":181},[34,193499,23469],{"class":580},[34,193501,8324],{"class":50},[34,193503,52988],{"class":580},[34,193505,23172],{"class":181},[34,193507,10252],{"class":580},[34,193509,104014],{"class":50},[34,193511,1607],{"class":181},[34,193513,2778],{"class":50},[34,193515,191570],{"class":181},[11,193517,10991],{"id":10996},[25,193519,193521],{"className":49386,"code":193520,"language":49388,"meta":30,"style":30},"# Basic function\ndef greet(name):\n    return f\"Hello, {name}!\"\n\n# Default arguments\ndef greet(name=\"World\"):\n    return f\"Hello, {name}!\"\n\n# *args and **kwargs\ndef func(*args, **kwargs):\n    print(args)    # Tuple of positional args\n    print(kwargs)  # Dict of keyword args\n\n# Lambda functions\nsquare = lambda x: x**2\nadd = lambda a, b: a + b\n\n# Type hints\ndef greet(name: str) -> str:\n    return f\"Hello, {name}!\"\n",[20,193522,193523,193528,193536,193552,193556,193561,193576,193592,193596,193601,193617,193627,193637,193641,193646,193660,193676,193680,193685,193701],{"__ignoreMap":30},[34,193524,193525],{"class":36,"line":37},[34,193526,193527],{"class":40},"# Basic function\n",[34,193529,193530,193532,193534],{"class":36,"line":44},[34,193531,49400],{"class":580},[34,193533,11047],{"class":47},[34,193535,90274],{"class":181},[34,193537,193538,193540,193542,193544,193546,193548,193550],{"class":36,"line":58},[34,193539,1564],{"class":580},[34,193541,12984],{"class":580},[34,193543,21921],{"class":54},[34,193545,13990],{"class":50},[34,193547,178],{"class":181},[34,193549,34378],{"class":50},[34,193551,11026],{"class":54},[34,193553,193554],{"class":36,"line":65},[34,193555,62],{"emptyLinePlaceholder":61},[34,193557,193558],{"class":36,"line":71},[34,193559,193560],{"class":40},"# Default arguments\n",[34,193562,193563,193565,193567,193570,193572,193574],{"class":36,"line":77},[34,193564,49400],{"class":580},[34,193566,11047],{"class":47},[34,193568,193569],{"class":181},"(name",[34,193571,1301],{"class":580},[34,193573,32477],{"class":54},[34,193575,51021],{"class":181},[34,193577,193578,193580,193582,193584,193586,193588,193590],{"class":36,"line":82},[34,193579,1564],{"class":580},[34,193581,12984],{"class":580},[34,193583,21921],{"class":54},[34,193585,13990],{"class":50},[34,193587,178],{"class":181},[34,193589,34378],{"class":50},[34,193591,11026],{"class":54},[34,193593,193594],{"class":36,"line":88},[34,193595,62],{"emptyLinePlaceholder":61},[34,193597,193598],{"class":36,"line":242},[34,193599,193600],{"class":40},"# *args and **kwargs\n",[34,193602,193603,193605,193607,193609,193611,193613,193615],{"class":36,"line":250},[34,193604,49400],{"class":580},[34,193606,105616],{"class":47},[34,193608,1607],{"class":181},[34,193610,4289],{"class":580},[34,193612,192036],{"class":181},[34,193614,23469],{"class":580},[34,193616,191799],{"class":181},[34,193618,193619,193621,193624],{"class":36,"line":263},[34,193620,141419],{"class":50},[34,193622,193623],{"class":181},"(args)    ",[34,193625,193626],{"class":40},"# Tuple of positional args\n",[34,193628,193629,193631,193634],{"class":36,"line":275},[34,193630,141419],{"class":50},[34,193632,193633],{"class":181},"(kwargs)  ",[34,193635,193636],{"class":40},"# Dict of keyword args\n",[34,193638,193639],{"class":36,"line":700},[34,193640,62],{"emptyLinePlaceholder":61},[34,193642,193643],{"class":36,"line":706},[34,193644,193645],{"class":40},"# Lambda functions\n",[34,193647,193648,193650,193652,193654,193656,193658],{"class":36,"line":715},[34,193649,106008],{"class":181},[34,193651,1301],{"class":580},[34,193653,9119],{"class":580},[34,193655,191953],{"class":181},[34,193657,23469],{"class":580},[34,193659,91180],{"class":50},[34,193661,193662,193665,193667,193669,193672,193674],{"class":36,"line":725},[34,193663,193664],{"class":181},"add ",[34,193666,1301],{"class":580},[34,193668,9119],{"class":580},[34,193670,193671],{"class":181}," a, b: a ",[34,193673,2940],{"class":580},[34,193675,87475],{"class":181},[34,193677,193678],{"class":36,"line":734},[34,193679,62],{"emptyLinePlaceholder":61},[34,193681,193682],{"class":36,"line":742},[34,193683,193684],{"class":40},"# Type hints\n",[34,193686,193687,193689,193691,193693,193695,193697,193699],{"class":36,"line":748},[34,193688,49400],{"class":580},[34,193690,11047],{"class":47},[34,193692,133364],{"class":181},[34,193694,12646],{"class":50},[34,193696,63775],{"class":181},[34,193698,12646],{"class":50},[34,193700,193],{"class":181},[34,193702,193703,193705,193707,193709,193711,193713,193715],{"class":36,"line":754},[34,193704,1564],{"class":580},[34,193706,12984],{"class":580},[34,193708,21921],{"class":54},[34,193710,13990],{"class":50},[34,193712,178],{"class":181},[34,193714,34378],{"class":50},[34,193716,11026],{"class":54},[11,193718,18818],{"id":18823},[25,193720,193722],{"className":49386,"code":193721,"language":49388,"meta":30,"style":30},"# If/elif/else\nif condition:\n    pass\nelif other_condition:\n    pass\nelse:\n    pass\n\n# Ternary operator\nresult = \"yes\" if condition else \"no\"\n\n# For loops\nfor item in items:\n    print(item)\n\nfor i, item in enumerate(items):\n    print(i, item)\n\nfor key, value in dict.items():\n    print(key, value)\n\n# While loops\nwhile condition:\n    pass\n\n# Match statement (Python 3.10+)\nmatch command:\n    case \"start\":\n        start()\n    case \"stop\":\n        stop()\n    case _:\n        unknown()\n",[20,193723,193724,193729,193736,193741,193748,193752,193758,193762,193766,193771,193788,193792,193797,193808,193814,193818,193831,193837,193841,193854,193860,193864,193869,193875,193879,193883,193888,193896,193905,193910,193919,193924,193931],{"__ignoreMap":30},[34,193725,193726],{"class":36,"line":37},[34,193727,193728],{"class":40},"# If/elif/else\n",[34,193730,193731,193733],{"class":36,"line":44},[34,193732,10383],{"class":580},[34,193734,193735],{"class":181}," condition:\n",[34,193737,193738],{"class":36,"line":58},[34,193739,193740],{"class":580},"    pass\n",[34,193742,193743,193745],{"class":36,"line":65},[34,193744,10417],{"class":580},[34,193746,193747],{"class":181}," other_condition:\n",[34,193749,193750],{"class":36,"line":71},[34,193751,193740],{"class":580},[34,193753,193754,193756],{"class":36,"line":77},[34,193755,18871],{"class":580},[34,193757,193],{"class":181},[34,193759,193760],{"class":36,"line":82},[34,193761,193740],{"class":580},[34,193763,193764],{"class":36,"line":88},[34,193765,62],{"emptyLinePlaceholder":61},[34,193767,193768],{"class":36,"line":242},[34,193769,193770],{"class":40},"# Ternary operator\n",[34,193772,193773,193775,193777,193779,193781,193783,193785],{"class":36,"line":250},[34,193774,19441],{"class":181},[34,193776,1301],{"class":580},[34,193778,122297],{"class":54},[34,193780,18874],{"class":580},[34,193782,122292],{"class":181},[34,193784,18871],{"class":580},[34,193786,193787],{"class":54}," \"no\"\n",[34,193789,193790],{"class":36,"line":263},[34,193791,62],{"emptyLinePlaceholder":61},[34,193793,193794],{"class":36,"line":275},[34,193795,193796],{"class":40},"# For loops\n",[34,193798,193799,193801,193803,193805],{"class":36,"line":700},[34,193800,10246],{"class":580},[34,193802,192576],{"class":181},[34,193804,10252],{"class":580},[34,193806,193807],{"class":181}," items:\n",[34,193809,193810,193812],{"class":36,"line":706},[34,193811,141419],{"class":50},[34,193813,77388],{"class":181},[34,193815,193816],{"class":36,"line":715},[34,193817,62],{"emptyLinePlaceholder":61},[34,193819,193820,193822,193824,193826,193828],{"class":36,"line":725},[34,193821,10246],{"class":580},[34,193823,192598],{"class":181},[34,193825,10252],{"class":580},[34,193827,192603],{"class":50},[34,193829,193830],{"class":181},"(items):\n",[34,193832,193833,193835],{"class":36,"line":734},[34,193834,141419],{"class":50},[34,193836,192612],{"class":181},[34,193838,193839],{"class":36,"line":742},[34,193840,62],{"emptyLinePlaceholder":61},[34,193842,193843,193845,193847,193849,193851],{"class":36,"line":748},[34,193844,10246],{"class":580},[34,193846,107014],{"class":181},[34,193848,10252],{"class":580},[34,193850,191222],{"class":50},[34,193852,193853],{"class":181},".items():\n",[34,193855,193856,193858],{"class":36,"line":754},[34,193857,141419],{"class":50},[34,193859,191532],{"class":181},[34,193861,193862],{"class":36,"line":759},[34,193863,62],{"emptyLinePlaceholder":61},[34,193865,193866],{"class":36,"line":771},[34,193867,193868],{"class":40},"# While loops\n",[34,193870,193871,193873],{"class":36,"line":794},[34,193872,12005],{"class":580},[34,193874,193735],{"class":181},[34,193876,193877],{"class":36,"line":824},[34,193878,193740],{"class":580},[34,193880,193881],{"class":36,"line":830},[34,193882,62],{"emptyLinePlaceholder":61},[34,193884,193885],{"class":36,"line":839},[34,193886,193887],{"class":40},"# Match statement (Python 3.10+)\n",[34,193889,193890,193893],{"class":36,"line":854},[34,193891,193892],{"class":580},"match",[34,193894,193895],{"class":181}," command:\n",[34,193897,193898,193900,193903],{"class":36,"line":860},[34,193899,18986],{"class":580},[34,193901,193902],{"class":54}," \"start\"",[34,193904,193],{"class":181},[34,193906,193907],{"class":36,"line":865},[34,193908,193909],{"class":181},"        start()\n",[34,193911,193912,193914,193917],{"class":36,"line":870},[34,193913,18986],{"class":580},[34,193915,193916],{"class":54}," \"stop\"",[34,193918,193],{"class":181},[34,193920,193921],{"class":36,"line":876},[34,193922,193923],{"class":181},"        stop()\n",[34,193925,193926,193928],{"class":36,"line":885},[34,193927,18986],{"class":580},[34,193929,193930],{"class":181}," _:\n",[34,193932,193933],{"class":36,"line":895},[34,193934,193935],{"class":181},"        unknown()\n",[11,193937,125314],{"id":125319},[25,193939,193941],{"className":49386,"code":193940,"language":49388,"meta":30,"style":30},"class Person:\n    # Class variable\n    species = \"Human\"\n    \n    def __init__(self, name, age):\n        # Instance variables\n        self.name = name\n        self.age = age\n        self._protected = \"protected\"\n        self.__private = \"private\"\n    \n    # Instance method\n    def greet(self):\n        return f\"Hello, I'm {self.name}\"\n    \n    # Class method\n    @classmethod\n    def create_anonymous(cls):\n        return cls(\"Anonymous\", 0)\n    \n    # Static method\n    @staticmethod\n    def is_adult(age):\n        return age >= 18\n    \n    # Property\n    @property\n    def info(self):\n        return f\"{self.name}, {self.age}\"\n    \n    # String representation\n    def __str__(self):\n        return f\"Person({self.name})\"\n\n# Inheritance\nclass Developer(Person):\n    def __init__(self, name, age, language):\n        super().__init__(name, age)\n        self.language = language\n",[20,193942,193943,193951,193956,193966,193970,193980,193985,193996,194006,194018,194030,194034,194039,194047,194066,194070,194075,194082,194092,194110,194114,194119,194126,194136,194146,194150,194155,194162,194170,194195,194199,194204,194212,194229,194233,194238,194250,194259,194270],{"__ignoreMap":30},[34,193944,193945,193947,193949],{"class":36,"line":37},[34,193946,30060],{"class":580},[34,193948,30063],{"class":47},[34,193950,193],{"class":181},[34,193952,193953],{"class":36,"line":44},[34,193954,193955],{"class":40},"    # Class variable\n",[34,193957,193958,193961,193963],{"class":36,"line":58},[34,193959,193960],{"class":181},"    species ",[34,193962,1301],{"class":580},[34,193964,193965],{"class":54}," \"Human\"\n",[34,193967,193968],{"class":36,"line":65},[34,193969,3666],{"class":181},[34,193971,193972,193974,193977],{"class":36,"line":71},[34,193973,65417],{"class":580},[34,193975,193976],{"class":50}," __init__",[34,193978,193979],{"class":181},"(self, name, age):\n",[34,193981,193982],{"class":36,"line":77},[34,193983,193984],{"class":40},"        # Instance variables\n",[34,193986,193987,193990,193992,193994],{"class":36,"line":82},[34,193988,193989],{"class":50},"        self",[34,193991,121800],{"class":181},[34,193993,1301],{"class":580},[34,193995,11232],{"class":181},[34,193997,193998,194000,194002,194004],{"class":36,"line":88},[34,193999,193989],{"class":50},[34,194001,121811],{"class":181},[34,194003,1301],{"class":580},[34,194005,133483],{"class":181},[34,194007,194008,194010,194013,194015],{"class":36,"line":242},[34,194009,193989],{"class":50},[34,194011,194012],{"class":181},"._protected ",[34,194014,1301],{"class":580},[34,194016,194017],{"class":54}," \"protected\"\n",[34,194019,194020,194022,194025,194027],{"class":36,"line":250},[34,194021,193989],{"class":50},[34,194023,194024],{"class":181},".__private ",[34,194026,1301],{"class":580},[34,194028,194029],{"class":54}," \"private\"\n",[34,194031,194032],{"class":36,"line":263},[34,194033,3666],{"class":181},[34,194035,194036],{"class":36,"line":275},[34,194037,194038],{"class":40},"    # Instance method\n",[34,194040,194041,194043,194045],{"class":36,"line":700},[34,194042,65417],{"class":580},[34,194044,11047],{"class":47},[34,194046,74037],{"class":181},[34,194048,194049,194051,194053,194056,194059,194062,194064],{"class":36,"line":706},[34,194050,13895],{"class":580},[34,194052,12984],{"class":580},[34,194054,194055],{"class":54},"\"Hello, I'm ",[34,194057,194058],{"class":50},"{self",[34,194060,194061],{"class":181},".name",[34,194063,34378],{"class":50},[34,194065,11320],{"class":54},[34,194067,194068],{"class":36,"line":715},[34,194069,3666],{"class":181},[34,194071,194072],{"class":36,"line":725},[34,194073,194074],{"class":40},"    # Class method\n",[34,194076,194077,194079],{"class":36,"line":734},[34,194078,121929],{"class":47},[34,194080,194081],{"class":50},"classmethod\n",[34,194083,194084,194086,194089],{"class":36,"line":742},[34,194085,65417],{"class":580},[34,194087,194088],{"class":47}," create_anonymous",[34,194090,194091],{"class":181},"(cls):\n",[34,194093,194094,194096,194099,194101,194104,194106,194108],{"class":36,"line":748},[34,194095,13895],{"class":580},[34,194097,194098],{"class":50}," cls",[34,194100,1607],{"class":181},[34,194102,194103],{"class":54},"\"Anonymous\"",[34,194105,1798],{"class":181},[34,194107,2773],{"class":50},[34,194109,3372],{"class":181},[34,194111,194112],{"class":36,"line":754},[34,194113,3666],{"class":181},[34,194115,194116],{"class":36,"line":759},[34,194117,194118],{"class":40},"    # Static method\n",[34,194120,194121,194123],{"class":36,"line":771},[34,194122,121929],{"class":47},[34,194124,194125],{"class":50},"staticmethod\n",[34,194127,194128,194130,194133],{"class":36,"line":794},[34,194129,65417],{"class":580},[34,194131,194132],{"class":47}," is_adult",[34,194134,194135],{"class":181},"(age):\n",[34,194137,194138,194140,194142,194144],{"class":36,"line":824},[34,194139,13895],{"class":580},[34,194141,25065],{"class":181},[34,194143,18401],{"class":580},[34,194145,87787],{"class":50},[34,194147,194148],{"class":36,"line":830},[34,194149,3666],{"class":181},[34,194151,194152],{"class":36,"line":839},[34,194153,194154],{"class":40},"    # Property\n",[34,194156,194157,194159],{"class":36,"line":854},[34,194158,121929],{"class":47},[34,194160,194161],{"class":50},"property\n",[34,194163,194164,194166,194168],{"class":36,"line":860},[34,194165,65417],{"class":580},[34,194167,54126],{"class":47},[34,194169,74037],{"class":181},[34,194171,194172,194174,194176,194178,194180,194182,194184,194186,194188,194191,194193],{"class":36,"line":865},[34,194173,13895],{"class":580},[34,194175,12984],{"class":580},[34,194177,10389],{"class":54},[34,194179,194058],{"class":50},[34,194181,194061],{"class":181},[34,194183,34378],{"class":50},[34,194185,1798],{"class":54},[34,194187,194058],{"class":50},[34,194189,194190],{"class":181},".age",[34,194192,34378],{"class":50},[34,194194,11320],{"class":54},[34,194196,194197],{"class":36,"line":870},[34,194198,3666],{"class":181},[34,194200,194201],{"class":36,"line":876},[34,194202,194203],{"class":40},"    # String representation\n",[34,194205,194206,194208,194210],{"class":36,"line":885},[34,194207,65417],{"class":580},[34,194209,74034],{"class":50},[34,194211,74037],{"class":181},[34,194213,194214,194216,194218,194221,194223,194225,194227],{"class":36,"line":895},[34,194215,13895],{"class":580},[34,194217,12984],{"class":580},[34,194219,194220],{"class":54},"\"Person(",[34,194222,194058],{"class":50},[34,194224,194061],{"class":181},[34,194226,34378],{"class":50},[34,194228,82115],{"class":54},[34,194230,194231],{"class":36,"line":904},[34,194232,62],{"emptyLinePlaceholder":61},[34,194234,194235],{"class":36,"line":915},[34,194236,194237],{"class":40},"# Inheritance\n",[34,194239,194240,194242,194244,194246,194248],{"class":36,"line":927},[34,194241,30060],{"class":580},[34,194243,121982],{"class":47},[34,194245,1607],{"class":181},[34,194247,30303],{"class":47},[34,194249,51021],{"class":181},[34,194251,194252,194254,194256],{"class":36,"line":932},[34,194253,65417],{"class":580},[34,194255,193976],{"class":50},[34,194257,194258],{"class":181},"(self, name, age, language):\n",[34,194260,194261,194263,194265,194268],{"class":36,"line":944},[34,194262,122027],{"class":50},[34,194264,1645],{"class":181},[34,194266,194267],{"class":50},"__init__",[34,194269,141452],{"class":181},[34,194271,194272,194274,194276,194278],{"class":36,"line":966},[34,194273,193989],{"class":50},[34,194275,122036],{"class":181},[34,194277,1301],{"class":580},[34,194279,194280],{"class":181}," language\n",[11,194282,81168],{"id":81167},[25,194284,194286],{"className":49386,"code":194285,"language":49388,"meta":30,"style":30},"# Reading files\nwith open(\"file.txt\", \"r\") as f:\n    content = f.read()        # Read entire file\n    lines = f.readlines()     # Read as list of lines\n\n# Writing files\nwith open(\"file.txt\", \"w\") as f:\n    f.write(\"Hello, World!\")\n\n# Appending to files\nwith open(\"file.txt\", \"a\") as f:\n    f.write(\"New line\\n\")\n\n# JSON\nimport json\ndata = json.loads(json_string)  # Parse JSON\njson_string = json.dumps(data)  # Convert to JSON\n",[20,194287,194288,194293,194315,194327,194340,194344,194349,194369,194378,194382,194387,194407,194420,194424,194429,194435,194447],{"__ignoreMap":30},[34,194289,194290],{"class":36,"line":37},[34,194291,194292],{"class":40},"# Reading files\n",[34,194294,194295,194297,194300,194302,194304,194306,194308,194310,194312],{"class":36,"line":44},[34,194296,37650],{"class":580},[34,194298,194299],{"class":50}," open",[34,194301,1607],{"class":181},[34,194303,14990],{"class":54},[34,194305,1798],{"class":181},[34,194307,19613],{"class":54},[34,194309,4817],{"class":181},[34,194311,74548],{"class":580},[34,194313,194314],{"class":181}," f:\n",[34,194316,194317,194319,194321,194324],{"class":36,"line":58},[34,194318,73998],{"class":181},[34,194320,1301],{"class":580},[34,194322,194323],{"class":181}," f.read()        ",[34,194325,194326],{"class":40},"# Read entire file\n",[34,194328,194329,194332,194334,194337],{"class":36,"line":65},[34,194330,194331],{"class":181},"    lines ",[34,194333,1301],{"class":580},[34,194335,194336],{"class":181}," f.readlines()     ",[34,194338,194339],{"class":40},"# Read as list of lines\n",[34,194341,194342],{"class":36,"line":71},[34,194343,62],{"emptyLinePlaceholder":61},[34,194345,194346],{"class":36,"line":77},[34,194347,194348],{"class":40},"# Writing files\n",[34,194350,194351,194353,194355,194357,194359,194361,194363,194365,194367],{"class":36,"line":82},[34,194352,37650],{"class":580},[34,194354,194299],{"class":50},[34,194356,1607],{"class":181},[34,194358,14990],{"class":54},[34,194360,1798],{"class":181},[34,194362,21464],{"class":54},[34,194364,4817],{"class":181},[34,194366,74548],{"class":580},[34,194368,194314],{"class":181},[34,194370,194371,194374,194376],{"class":36,"line":88},[34,194372,194373],{"class":181},"    f.write(",[34,194375,15076],{"class":54},[34,194377,3372],{"class":181},[34,194379,194380],{"class":36,"line":242},[34,194381,62],{"emptyLinePlaceholder":61},[34,194383,194384],{"class":36,"line":250},[34,194385,194386],{"class":40},"# Appending to files\n",[34,194388,194389,194391,194393,194395,194397,194399,194401,194403,194405],{"class":36,"line":263},[34,194390,37650],{"class":580},[34,194392,194299],{"class":50},[34,194394,1607],{"class":181},[34,194396,14990],{"class":54},[34,194398,1798],{"class":181},[34,194400,104277],{"class":54},[34,194402,4817],{"class":181},[34,194404,74548],{"class":580},[34,194406,194314],{"class":181},[34,194408,194409,194411,194414,194416,194418],{"class":36,"line":275},[34,194410,194373],{"class":181},[34,194412,194413],{"class":54},"\"New line",[34,194415,18860],{"class":50},[34,194417,10389],{"class":54},[34,194419,3372],{"class":181},[34,194421,194422],{"class":36,"line":700},[34,194423,62],{"emptyLinePlaceholder":61},[34,194425,194426],{"class":36,"line":706},[34,194427,194428],{"class":40},"# JSON\n",[34,194430,194431,194433],{"class":36,"line":715},[34,194432,581],{"class":580},[34,194434,133022],{"class":181},[34,194436,194437,194439,194441,194444],{"class":36,"line":725},[34,194438,176229],{"class":181},[34,194440,1301],{"class":580},[34,194442,194443],{"class":181}," json.loads(json_string)  ",[34,194445,194446],{"class":40},"# Parse JSON\n",[34,194448,194449,194452,194454,194457],{"class":36,"line":734},[34,194450,194451],{"class":181},"json_string ",[34,194453,1301],{"class":580},[34,194455,194456],{"class":181}," json.dumps(data)  ",[34,194458,194459],{"class":40},"# Convert to JSON\n",[11,194461,19352],{"id":19357},[25,194463,194465],{"className":49386,"code":194464,"language":49388,"meta":30,"style":30},"try:\n    result = risky_operation()\nexcept ValueError as e:\n    print(f\"Value error: {e}\")\nexcept (TypeError, KeyError):\n    print(\"Type or Key error\")\nexcept Exception as e:\n    print(f\"Unexpected error: {e}\")\nelse:\n    print(\"No errors occurred\")\nfinally:\n    print(\"Always executes\")\n\n# Raising exceptions\nraise ValueError(\"Invalid value\")\n\n# Custom exceptions\nclass CustomError(Exception):\n    pass\n",[20,194466,194467,194473,194482,194494,194515,194531,194542,194552,194573,194579,194590,194596,194607,194611,194616,194630,194634,194639,194652],{"__ignoreMap":30},[34,194468,194469,194471],{"class":36,"line":37},[34,194470,30813],{"class":580},[34,194472,193],{"class":181},[34,194474,194475,194477,194479],{"class":36,"line":44},[34,194476,20237],{"class":181},[34,194478,1301],{"class":580},[34,194480,194481],{"class":181}," risky_operation()\n",[34,194483,194484,194487,194489,194491],{"class":36,"line":58},[34,194485,194486],{"class":580},"except",[34,194488,51048],{"class":50},[34,194490,91551],{"class":580},[34,194492,194493],{"class":181}," e:\n",[34,194495,194496,194498,194500,194502,194505,194507,194509,194511,194513],{"class":36,"line":65},[34,194497,141419],{"class":50},[34,194499,1607],{"class":181},[34,194501,32918],{"class":580},[34,194503,194504],{"class":54},"\"Value error: ",[34,194506,13990],{"class":50},[34,194508,5476],{"class":181},[34,194510,34378],{"class":50},[34,194512,10389],{"class":54},[34,194514,3372],{"class":181},[34,194516,194517,194519,194521,194524,194526,194529],{"class":36,"line":71},[34,194518,194486],{"class":580},[34,194520,3204],{"class":181},[34,194522,194523],{"class":50},"TypeError",[34,194525,1798],{"class":181},[34,194527,194528],{"class":50},"KeyError",[34,194530,51021],{"class":181},[34,194532,194533,194535,194537,194540],{"class":36,"line":77},[34,194534,141419],{"class":50},[34,194536,1607],{"class":181},[34,194538,194539],{"class":54},"\"Type or Key error\"",[34,194541,3372],{"class":181},[34,194543,194544,194546,194548,194550],{"class":36,"line":82},[34,194545,194486],{"class":580},[34,194547,122761],{"class":50},[34,194549,91551],{"class":580},[34,194551,194493],{"class":181},[34,194553,194554,194556,194558,194560,194563,194565,194567,194569,194571],{"class":36,"line":88},[34,194555,141419],{"class":50},[34,194557,1607],{"class":181},[34,194559,32918],{"class":580},[34,194561,194562],{"class":54},"\"Unexpected error: ",[34,194564,13990],{"class":50},[34,194566,5476],{"class":181},[34,194568,34378],{"class":50},[34,194570,10389],{"class":54},[34,194572,3372],{"class":181},[34,194574,194575,194577],{"class":36,"line":242},[34,194576,18871],{"class":580},[34,194578,193],{"class":181},[34,194580,194581,194583,194585,194588],{"class":36,"line":250},[34,194582,141419],{"class":50},[34,194584,1607],{"class":181},[34,194586,194587],{"class":54},"\"No errors occurred\"",[34,194589,3372],{"class":181},[34,194591,194592,194594],{"class":36,"line":263},[34,194593,122585],{"class":580},[34,194595,193],{"class":181},[34,194597,194598,194600,194602,194605],{"class":36,"line":275},[34,194599,141419],{"class":50},[34,194601,1607],{"class":181},[34,194603,194604],{"class":54},"\"Always executes\"",[34,194606,3372],{"class":181},[34,194608,194609],{"class":36,"line":700},[34,194610,62],{"emptyLinePlaceholder":61},[34,194612,194613],{"class":36,"line":706},[34,194614,194615],{"class":40},"# Raising exceptions\n",[34,194617,194618,194621,194623,194625,194628],{"class":36,"line":715},[34,194619,194620],{"class":580},"raise",[34,194622,51048],{"class":50},[34,194624,1607],{"class":181},[34,194626,194627],{"class":54},"\"Invalid value\"",[34,194629,3372],{"class":181},[34,194631,194632],{"class":36,"line":725},[34,194633,62],{"emptyLinePlaceholder":61},[34,194635,194636],{"class":36,"line":734},[34,194637,194638],{"class":40},"# Custom exceptions\n",[34,194640,194641,194643,194646,194648,194650],{"class":36,"line":742},[34,194642,30060],{"class":580},[34,194644,194645],{"class":47}," CustomError",[34,194647,1607],{"class":181},[34,194649,35345],{"class":50},[34,194651,51021],{"class":181},[34,194653,194654],{"class":36,"line":748},[34,194655,193740],{"class":580},[11,194657,194659],{"id":194658},"useful-built-ins","Useful Built-ins",[25,194661,194663],{"className":49386,"code":194662,"language":49388,"meta":30,"style":30},"# Common functions\nlen(obj)           # Length\nrange(start, stop, step)\nenumerate(iterable)\nzip(iter1, iter2)\nmap(func, iterable)\nfilter(func, iterable)\nsorted(iterable, key=func, reverse=False)\nany(iterable)      # True if any element is truthy\nall(iterable)      # True if all elements are truthy\nmin(iterable)\nmax(iterable)\nsum(iterable)\nabs(number)\nround(number, digits)\nisinstance(obj, type)\ntype(obj)\ndir(obj)           # List attributes\nhelp(obj)          # Get documentation\n",[20,194664,194665,194670,194678,194686,194694,194702,194709,194715,194738,194748,194757,194763,194769,194775,194782,194790,194802,194809,194819],{"__ignoreMap":30},[34,194666,194667],{"class":36,"line":37},[34,194668,194669],{"class":40},"# Common functions\n",[34,194671,194672,194674,194676],{"class":36,"line":44},[34,194673,63603],{"class":50},[34,194675,104432],{"class":181},[34,194677,12660],{"class":40},[34,194679,194680,194683],{"class":36,"line":58},[34,194681,194682],{"class":50},"range",[34,194684,194685],{"class":181},"(start, stop, step)\n",[34,194687,194688,194691],{"class":36,"line":65},[34,194689,194690],{"class":50},"enumerate",[34,194692,194693],{"class":181},"(iterable)\n",[34,194695,194696,194699],{"class":36,"line":71},[34,194697,194698],{"class":50},"zip",[34,194700,194701],{"class":181},"(iter1, iter2)\n",[34,194703,194704,194706],{"class":36,"line":77},[34,194705,61180],{"class":50},[34,194707,194708],{"class":181},"(func, iterable)\n",[34,194710,194711,194713],{"class":36,"line":82},[34,194712,32125],{"class":50},[34,194714,194708],{"class":181},[34,194716,194717,194719,194722,194724,194726,194729,194731,194733,194736],{"class":36,"line":88},[34,194718,65595],{"class":50},[34,194720,194721],{"class":181},"(iterable, ",[34,194723,141344],{"class":675},[34,194725,1301],{"class":580},[34,194727,194728],{"class":181},"func, ",[34,194730,68954],{"class":675},[34,194732,1301],{"class":580},[34,194734,194735],{"class":50},"False",[34,194737,3372],{"class":181},[34,194739,194740,194742,194745],{"class":36,"line":242},[34,194741,106652],{"class":50},[34,194743,194744],{"class":181},"(iterable)      ",[34,194746,194747],{"class":40},"# True if any element is truthy\n",[34,194749,194750,194752,194754],{"class":36,"line":250},[34,194751,17175],{"class":50},[34,194753,194744],{"class":181},[34,194755,194756],{"class":40},"# True if all elements are truthy\n",[34,194758,194759,194761],{"class":36,"line":263},[34,194760,126615],{"class":50},[34,194762,194693],{"class":181},[34,194764,194765,194767],{"class":36,"line":275},[34,194766,50086],{"class":50},[34,194768,194693],{"class":181},[34,194770,194771,194773],{"class":36,"line":700},[34,194772,11135],{"class":50},[34,194774,194693],{"class":181},[34,194776,194777,194779],{"class":36,"line":706},[34,194778,24079],{"class":50},[34,194780,194781],{"class":181},"(number)\n",[34,194783,194784,194787],{"class":36,"line":715},[34,194785,194786],{"class":50},"round",[34,194788,194789],{"class":181},"(number, digits)\n",[34,194791,194792,194795,194798,194800],{"class":36,"line":725},[34,194793,194794],{"class":50},"isinstance",[34,194796,194797],{"class":181},"(obj, ",[34,194799,41324],{"class":50},[34,194801,3372],{"class":181},[34,194803,194804,194806],{"class":36,"line":734},[34,194805,41324],{"class":50},[34,194807,194808],{"class":181},"(obj)\n",[34,194810,194811,194814,194816],{"class":36,"line":742},[34,194812,194813],{"class":50},"dir",[34,194815,104432],{"class":181},[34,194817,194818],{"class":40},"# List attributes\n",[34,194820,194821,194824,194827],{"class":36,"line":748},[34,194822,194823],{"class":50},"help",[34,194825,194826],{"class":181},"(obj)          ",[34,194828,194829],{"class":40},"# Get documentation\n",[388,194831,194832],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":30,"searchDepth":44,"depth":44,"links":194834},[194835,194836,194837,194838,194839,194840,194841,194842,194843,194844],{"id":32868,"depth":44,"text":32171},{"id":24353,"depth":44,"text":23101},{"id":80306,"depth":44,"text":61448},{"id":191592,"depth":44,"text":191158},{"id":10996,"depth":44,"text":10991},{"id":18823,"depth":44,"text":18818},{"id":125319,"depth":44,"text":125314},{"id":81167,"depth":44,"text":81168},{"id":19357,"depth":44,"text":19352},{"id":194658,"depth":44,"text":194659},"2025-10-20","Python syntax, built-in functions, and common patterns for efficient programming.",{},"/python/overview",{"title":132677,"description":194846},"python/overview",[49388,46870,10359,1701],"QYRujk4PTt0s0sTkCrfZN8iezcouVb0scr2kJfV8bO4",{"id":194854,"title":23101,"body":194855,"date":402,"description":195232,"extension":404,"meta":195233,"navigation":61,"order":44,"path":195234,"seo":195235,"stem":195236,"subject":49388,"tags":195237,"__hash__":195238},"topics/python/strings.md",{"type":8,"value":194856,"toc":195225},[194857,194860,194862,194901,194903,194994,194996,195100,195104,195188,195192,195222],[16,194858,194859],{},"Strings in Python are immutable sequences of Unicode characters.",[11,194861,191167],{"id":191166},[25,194863,194865],{"className":49386,"code":194864,"language":49388,"meta":30,"style":30},"s1 = \"Hello\"\ns2 = 'World'\nmulti = \"\"\"Line one\nLine two\"\"\"\n",[20,194866,194867,194876,194886,194896],{"__ignoreMap":30},[34,194868,194869,194872,194874],{"class":36,"line":37},[34,194870,194871],{"class":181},"s1 ",[34,194873,1301],{"class":580},[34,194875,11285],{"class":54},[34,194877,194878,194881,194883],{"class":36,"line":44},[34,194879,194880],{"class":181},"s2 ",[34,194882,1301],{"class":580},[34,194884,194885],{"class":54}," 'World'\n",[34,194887,194888,194891,194893],{"class":36,"line":58},[34,194889,194890],{"class":181},"multi ",[34,194892,1301],{"class":580},[34,194894,194895],{"class":54}," \"\"\"Line one\n",[34,194897,194898],{"class":36,"line":65},[34,194899,194900],{"class":54},"Line two\"\"\"\n",[11,194902,13835],{"id":13834},[25,194904,194906],{"className":49386,"code":194905,"language":49388,"meta":30,"style":30},"name = \"Alice\"\nage = 30\n\n# f-string (preferred, Python 3.6+)\nf\"Hello, {name}! You are {age} years old.\"\n\n# .format()\n\"Hello, {}!\".format(name)\n\n# Concatenation\n\"Hello, \" + name + \"!\"\n",[20,194907,194908,194916,194924,194928,194933,194957,194961,194965,194972,194976,194981],{"__ignoreMap":30},[34,194909,194910,194912,194914],{"class":36,"line":37},[34,194911,37383],{"class":181},[34,194913,1301],{"class":580},[34,194915,142978],{"class":54},[34,194917,194918,194920,194922],{"class":36,"line":44},[34,194919,24879],{"class":181},[34,194921,1301],{"class":580},[34,194923,87383],{"class":50},[34,194925,194926],{"class":36,"line":58},[34,194927,62],{"emptyLinePlaceholder":61},[34,194929,194930],{"class":36,"line":65},[34,194931,194932],{"class":40},"# f-string (preferred, Python 3.6+)\n",[34,194934,194935,194937,194939,194941,194943,194945,194948,194950,194952,194954],{"class":36,"line":71},[34,194936,32918],{"class":580},[34,194938,21921],{"class":54},[34,194940,13990],{"class":50},[34,194942,178],{"class":181},[34,194944,34378],{"class":50},[34,194946,194947],{"class":54},"! You are ",[34,194949,13990],{"class":50},[34,194951,13337],{"class":181},[34,194953,34378],{"class":50},[34,194955,194956],{"class":54}," years old.\"\n",[34,194958,194959],{"class":36,"line":77},[34,194960,62],{"emptyLinePlaceholder":61},[34,194962,194963],{"class":36,"line":82},[34,194964,192917],{"class":40},[34,194966,194967,194969],{"class":36,"line":88},[34,194968,192911],{"class":54},[34,194970,194971],{"class":181},".format(name)\n",[34,194973,194974],{"class":36,"line":242},[34,194975,62],{"emptyLinePlaceholder":61},[34,194977,194978],{"class":36,"line":250},[34,194979,194980],{"class":40},"# Concatenation\n",[34,194982,194983,194986,194988,194990,194992],{"class":36,"line":263},[34,194984,194985],{"class":54},"\"Hello, \"",[34,194987,11537],{"class":580},[34,194989,30212],{"class":181},[34,194991,2940],{"class":580},[34,194993,142630],{"class":54},[11,194995,191378],{"id":191377},[25,194997,194999],{"className":49386,"code":194998,"language":49388,"meta":30,"style":30},"s = \"  Hello, World!  \"\n\ns.upper()          # \"  HELLO, WORLD!  \"\ns.lower()          # \"  hello, world!  \"\ns.strip()          # \"Hello, World!\"\ns.replace(\"World\", \"Python\")  # \"  Hello, Python!  \"\ns.split(\", \")      # [\"  Hello\", \"World!  \"]\ns.startswith(\"  H\")  # True\ns.endswith(\"!  \")    # True\nlen(s)             # 18\n",[20,195000,195001,195011,195015,195023,195031,195039,195055,195067,195079,195090],{"__ignoreMap":30},[34,195002,195003,195006,195008],{"class":36,"line":37},[34,195004,195005],{"class":181},"s ",[34,195007,1301],{"class":580},[34,195009,195010],{"class":54}," \"  Hello, World!  \"\n",[34,195012,195013],{"class":36,"line":44},[34,195014,62],{"emptyLinePlaceholder":61},[34,195016,195017,195020],{"class":36,"line":58},[34,195018,195019],{"class":181},"s.upper()          ",[34,195021,195022],{"class":40},"# \"  HELLO, WORLD!  \"\n",[34,195024,195025,195028],{"class":36,"line":65},[34,195026,195027],{"class":181},"s.lower()          ",[34,195029,195030],{"class":40},"# \"  hello, world!  \"\n",[34,195032,195033,195036],{"class":36,"line":71},[34,195034,195035],{"class":181},"s.strip()          ",[34,195037,195038],{"class":40},"# \"Hello, World!\"\n",[34,195040,195041,195043,195045,195047,195050,195052],{"class":36,"line":77},[34,195042,192979],{"class":181},[34,195044,32477],{"class":54},[34,195046,1798],{"class":181},[34,195048,195049],{"class":54},"\"Python\"",[34,195051,76021],{"class":181},[34,195053,195054],{"class":40},"# \"  Hello, Python!  \"\n",[34,195056,195057,195059,195062,195064],{"class":36,"line":82},[34,195058,192967],{"class":181},[34,195060,195061],{"class":54},"\", \"",[34,195063,103662],{"class":181},[34,195065,195066],{"class":40},"# [\"  Hello\", \"World!  \"]\n",[34,195068,195069,195071,195074,195076],{"class":36,"line":88},[34,195070,192995],{"class":181},[34,195072,195073],{"class":54},"\"  H\"",[34,195075,76021],{"class":181},[34,195077,195078],{"class":40},"# True\n",[34,195080,195081,195083,195086,195088],{"class":36,"line":242},[34,195082,193007],{"class":181},[34,195084,195085],{"class":54},"\"!  \"",[34,195087,103888],{"class":181},[34,195089,195078],{"class":40},[34,195091,195092,195094,195097],{"class":36,"line":250},[34,195093,63603],{"class":50},[34,195095,195096],{"class":181},"(s)             ",[34,195098,195099],{"class":40},"# 18\n",[11,195101,195103],{"id":195102},"slicing","Slicing",[25,195105,195107],{"className":49386,"code":195106,"language":49388,"meta":30,"style":30},"s = \"Hello, World!\"\n\ns[0]      # \"H\"\ns[-1]     # \"!\"\ns[0:5]    # \"Hello\"\ns[7:]     # \"World!\"\ns[::-1]   # \"!dlroW ,olleH\"  (reversed)\n",[20,195108,195109,195118,195122,195134,195147,195162,195174],{"__ignoreMap":30},[34,195110,195111,195113,195115],{"class":36,"line":37},[34,195112,195005],{"class":181},[34,195114,1301],{"class":580},[34,195116,195117],{"class":54}," \"Hello, World!\"\n",[34,195119,195120],{"class":36,"line":44},[34,195121,62],{"emptyLinePlaceholder":61},[34,195123,195124,195127,195129,195131],{"class":36,"line":58},[34,195125,195126],{"class":181},"s[",[34,195128,2773],{"class":50},[34,195130,192714],{"class":181},[34,195132,195133],{"class":40},"# \"H\"\n",[34,195135,195136,195138,195140,195142,195144],{"class":36,"line":65},[34,195137,195126],{"class":181},[34,195139,22062],{"class":580},[34,195141,8318],{"class":50},[34,195143,132940],{"class":181},[34,195145,195146],{"class":40},"# \"!\"\n",[34,195148,195149,195151,195153,195155,195157,195159],{"class":36,"line":71},[34,195150,195126],{"class":181},[34,195152,2773],{"class":50},[34,195154,165],{"class":181},[34,195156,2778],{"class":50},[34,195158,192305],{"class":181},[34,195160,195161],{"class":40},"# \"Hello\"\n",[34,195163,195164,195166,195168,195171],{"class":36,"line":77},[34,195165,195126],{"class":181},[34,195167,18028],{"class":50},[34,195169,195170],{"class":181},":]     ",[34,195172,195173],{"class":40},"# \"World!\"\n",[34,195175,195176,195179,195181,195183,195185],{"class":36,"line":82},[34,195177,195178],{"class":181},"s[::",[34,195180,22062],{"class":580},[34,195182,8318],{"class":50},[34,195184,192318],{"class":181},[34,195186,195187],{"class":40},"# \"!dlroW ,olleH\"  (reversed)\n",[11,195189,195191],{"id":195190},"check-membership","Check Membership",[25,195193,195195],{"className":49386,"code":195194,"language":49388,"meta":30,"style":30},"\"World\" in \"Hello, World!\"   # True\n\"xyz\" not in \"Hello, World!\" # True\n",[20,195196,195197,195208],{"__ignoreMap":30},[34,195198,195199,195201,195203,195205],{"class":36,"line":37},[34,195200,32477],{"class":54},[34,195202,36375],{"class":580},[34,195204,124967],{"class":54},[34,195206,195207],{"class":40},"   # True\n",[34,195209,195210,195213,195215,195217,195219],{"class":36,"line":44},[34,195211,195212],{"class":54},"\"xyz\"",[34,195214,53191],{"class":580},[34,195216,36375],{"class":580},[34,195218,124967],{"class":54},[34,195220,195221],{"class":40}," # True\n",[388,195223,195224],{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":30,"searchDepth":44,"depth":44,"links":195226},[195227,195228,195229,195230,195231],{"id":191166,"depth":44,"text":191167},{"id":13834,"depth":44,"text":13835},{"id":191377,"depth":44,"text":191378},{"id":195102,"depth":44,"text":195103},{"id":195190,"depth":44,"text":195191},"String creation, formatting, and common operations in Python",{},"/python/strings",{"title":23101,"description":195232},"python/strings",[24353,780,13834,195102],"tCX9w3sPWto3arXBpeBngKJJuI677xk-1V5rcl9HjeQ",{"id":195240,"title":12166,"body":195241,"date":402,"description":195517,"extension":404,"meta":195518,"navigation":61,"order":37,"path":195519,"seo":195520,"stem":195521,"subject":49388,"tags":195522,"__hash__":195523},"topics/python/variables.md",{"type":8,"value":195242,"toc":195510},[195243,195246,195250,195298,195302,195339,195343,195401,195405,195474,195478,195484,195508],[16,195244,195245],{},"Python is dynamically typed — variables are assigned without declaring a type.",[11,195247,195249],{"id":195248},"assignment","Assignment",[25,195251,195253],{"className":49386,"code":195252,"language":49388,"meta":30,"style":30},"x = 10\nname = \"Alice\"\npi = 3.14\nis_active = True\nnothing = None\n",[20,195254,195255,195263,195271,195281,195289],{"__ignoreMap":30},[34,195256,195257,195259,195261],{"class":36,"line":37},[34,195258,107898],{"class":181},[34,195260,1301],{"class":580},[34,195262,100481],{"class":50},[34,195264,195265,195267,195269],{"class":36,"line":44},[34,195266,37383],{"class":181},[34,195268,1301],{"class":580},[34,195270,142978],{"class":54},[34,195272,195273,195276,195278],{"class":36,"line":58},[34,195274,195275],{"class":181},"pi ",[34,195277,1301],{"class":580},[34,195279,195280],{"class":50}," 3.14\n",[34,195282,195283,195285,195287],{"class":36,"line":65},[34,195284,144585],{"class":181},[34,195286,1301],{"class":580},[34,195288,69636],{"class":50},[34,195290,195291,195294,195296],{"class":36,"line":71},[34,195292,195293],{"class":181},"nothing ",[34,195295,1301],{"class":580},[34,195297,49546],{"class":50},[11,195299,195301],{"id":195300},"multiple-assignment","Multiple Assignment",[25,195303,195305],{"className":49386,"code":195304,"language":49388,"meta":30,"style":30},"a, b, c = 1, 2, 3\nx = y = z = 0\n",[20,195306,195307,195323],{"__ignoreMap":30},[34,195308,195309,195311,195313,195315,195317,195319,195321],{"class":36,"line":37},[34,195310,108457],{"class":181},[34,195312,1301],{"class":580},[34,195314,3567],{"class":50},[34,195316,1798],{"class":181},[34,195318,8324],{"class":50},[34,195320,1798],{"class":181},[34,195322,108452],{"class":50},[34,195324,195325,195327,195329,195331,195333,195335,195337],{"class":36,"line":44},[34,195326,107898],{"class":181},[34,195328,1301],{"class":580},[34,195330,192860],{"class":181},[34,195332,1301],{"class":580},[34,195334,192865],{"class":181},[34,195336,1301],{"class":580},[34,195338,36394],{"class":50},[11,195340,195342],{"id":195341},"type-check","Type Check",[25,195344,195346],{"className":49386,"code":195345,"language":49388,"meta":30,"style":30},"type(42)       # \u003Cclass 'int'>\ntype(\"hello\")  # \u003Cclass 'str'>\ntype(3.14)     # \u003Cclass 'float'>\ntype(True)     # \u003Cclass 'bool'>\n",[20,195347,195348,195361,195374,195388],{"__ignoreMap":30},[34,195349,195350,195352,195354,195356,195358],{"class":36,"line":37},[34,195351,41324],{"class":50},[34,195353,1607],{"class":181},[34,195355,8257],{"class":50},[34,195357,104323],{"class":181},[34,195359,195360],{"class":40},"# \u003Cclass 'int'>\n",[34,195362,195363,195365,195367,195369,195371],{"class":36,"line":44},[34,195364,41324],{"class":50},[34,195366,1607],{"class":181},[34,195368,17360],{"class":54},[34,195370,76021],{"class":181},[34,195372,195373],{"class":40},"# \u003Cclass 'str'>\n",[34,195375,195376,195378,195380,195383,195385],{"class":36,"line":58},[34,195377,41324],{"class":50},[34,195379,1607],{"class":181},[34,195381,195382],{"class":50},"3.14",[34,195384,104237],{"class":181},[34,195386,195387],{"class":40},"# \u003Cclass 'float'>\n",[34,195389,195390,195392,195394,195396,195398],{"class":36,"line":65},[34,195391,41324],{"class":50},[34,195393,1607],{"class":181},[34,195395,74021],{"class":50},[34,195397,104237],{"class":181},[34,195399,195400],{"class":40},"# \u003Cclass 'bool'>\n",[11,195402,195404],{"id":195403},"type-casting","Type Casting",[25,195406,195408],{"className":49386,"code":195407,"language":49388,"meta":30,"style":30},"int(\"42\")      # 42\nfloat(\"3.14\")  # 3.14\nstr(100)       # \"100\"\nbool(0)        # False\nbool(1)        # True\n",[20,195409,195410,195423,195436,195449,195462],{"__ignoreMap":30},[34,195411,195412,195414,195416,195418,195420],{"class":36,"line":37},[34,195413,17772],{"class":50},[34,195415,1607],{"class":181},[34,195417,24561],{"class":54},[34,195419,103662],{"class":181},[34,195421,195422],{"class":40},"# 42\n",[34,195424,195425,195427,195429,195431,195433],{"class":36,"line":44},[34,195426,25079],{"class":50},[34,195428,1607],{"class":181},[34,195430,24069],{"class":54},[34,195432,76021],{"class":181},[34,195434,195435],{"class":40},"# 3.14\n",[34,195437,195438,195440,195442,195444,195446],{"class":36,"line":58},[34,195439,12646],{"class":50},[34,195441,1607],{"class":181},[34,195443,20863],{"class":50},[34,195445,104323],{"class":181},[34,195447,195448],{"class":40},"# \"100\"\n",[34,195450,195451,195453,195455,195457,195459],{"class":36,"line":65},[34,195452,32937],{"class":50},[34,195454,1607],{"class":181},[34,195456,2773],{"class":50},[34,195458,103864],{"class":181},[34,195460,195461],{"class":40},"# False\n",[34,195463,195464,195466,195468,195470,195472],{"class":36,"line":71},[34,195465,32937],{"class":50},[34,195467,1607],{"class":181},[34,195469,8318],{"class":50},[34,195471,103864],{"class":181},[34,195473,195078],{"class":40},[11,195475,195477],{"id":195476},"constants-convention","Constants (Convention)",[16,195479,195480,195481,195483],{},"Python has no built-in ",[20,195482,14676],{},". Use all-caps names as a convention.",[25,195485,195487],{"className":49386,"code":195486,"language":49388,"meta":30,"style":30},"MAX_SIZE = 100\nPI = 3.14159\n",[20,195488,195489,195499],{"__ignoreMap":30},[34,195490,195491,195494,195496],{"class":36,"line":37},[34,195492,195493],{"class":50},"MAX_SIZE",[34,195495,683],{"class":580},[34,195497,195498],{"class":50}," 100\n",[34,195500,195501,195504,195506],{"class":36,"line":44},[34,195502,195503],{"class":50},"PI",[34,195505,683],{"class":580},[34,195507,87362],{"class":50},[388,195509,192615],{},{"title":30,"searchDepth":44,"depth":44,"links":195511},[195512,195513,195514,195515,195516],{"id":195248,"depth":44,"text":195249},{"id":195300,"depth":44,"text":195301},{"id":195341,"depth":44,"text":195342},{"id":195403,"depth":44,"text":195404},{"id":195476,"depth":44,"text":195477},"Variable declaration and assignment in Python",{},"/python/variables",{"title":12166,"description":195517},"python/variables",[13314,195248,33298],"Rip1vZefpUVxrhQyE4clfc2qhz5eZnE7KFw1h3JcRrE",{"id":195525,"title":49928,"body":195526,"date":402,"description":195824,"extension":404,"meta":195825,"navigation":61,"order":82,"path":195826,"seo":195827,"stem":195828,"subject":195829,"tags":195830,"__hash__":195833},"topics/quick-sort/c-implementation.md",{"type":8,"value":195527,"toc":195821},[195528,195530,195818],[11,195529,49928],{"id":49933},[25,195531,195533],{"className":29757,"code":195532,"language":29759,"meta":30,"style":30},"#include \u003Cvector>\n\nint partition(std::vector\u003Cint>& arr, int low, int high) {\n    int pivot = arr[high];\n    int i = low - 1;\n    \n    for (int j = low; j \u003C high; j++) {\n        if (arr[j] \u003C pivot) {\n            i++;\n            std::swap(arr[i], arr[j]);\n        }\n    }\n    std::swap(arr[i + 1], arr[high]);\n    return i + 1;\n}\n\nvoid quickSort(std::vector\u003Cint>& arr, int low, int high) {\n    if (low \u003C high) {\n        int pivotIndex = partition(arr, low, high);\n        quickSort(arr, low, pivotIndex - 1);\n        quickSort(arr, pivotIndex + 1, high);\n    }\n}\n",[20,195534,195535,195541,195545,195584,195596,195612,195616,195640,195651,195660,195673,195677,195681,195699,195711,195715,195719,195758,195768,195783,195797,195810,195814],{"__ignoreMap":30},[34,195536,195537,195539],{"class":36,"line":37},[34,195538,19569],{"class":580},[34,195540,29775],{"class":54},[34,195542,195543],{"class":36,"line":44},[34,195544,62],{"emptyLinePlaceholder":61},[34,195546,195547,195549,195552,195554,195556,195558,195560,195562,195564,195566,195568,195570,195572,195574,195576,195578,195580,195582],{"class":36,"line":58},[34,195548,17772],{"class":580},[34,195550,195551],{"class":47}," partition",[34,195553,1607],{"class":181},[34,195555,29833],{"class":47},[34,195557,30110],{"class":181},[34,195559,31336],{"class":47},[34,195561,815],{"class":181},[34,195563,17772],{"class":580},[34,195565,5691],{"class":181},[34,195567,19502],{"class":580},[34,195569,23347],{"class":675},[34,195571,1798],{"class":181},[34,195573,17772],{"class":580},[34,195575,117709],{"class":675},[34,195577,1798],{"class":181},[34,195579,17772],{"class":580},[34,195581,117717],{"class":675},[34,195583,2416],{"class":181},[34,195585,195586,195588,195591,195593],{"class":36,"line":65},[34,195587,18339],{"class":580},[34,195589,195590],{"class":181}," pivot ",[34,195592,1301],{"class":580},[34,195594,195595],{"class":181}," arr[high];\n",[34,195597,195598,195600,195602,195604,195606,195608,195610],{"class":36,"line":71},[34,195599,18339],{"class":580},[34,195601,10300],{"class":181},[34,195603,1301],{"class":580},[34,195605,63088],{"class":181},[34,195607,22062],{"class":580},[34,195609,3567],{"class":50},[34,195611,593],{"class":181},[34,195613,195614],{"class":36,"line":77},[34,195615,3666],{"class":181},[34,195617,195618,195620,195622,195624,195626,195628,195631,195633,195636,195638],{"class":36,"line":82},[34,195619,18250],{"class":580},[34,195621,3204],{"class":181},[34,195623,17772],{"class":580},[34,195625,72911],{"class":181},[34,195627,1301],{"class":580},[34,195629,195630],{"class":181}," low; j ",[34,195632,815],{"class":580},[34,195634,195635],{"class":181}," high; j",[34,195637,11928],{"class":580},[34,195639,2416],{"class":181},[34,195641,195642,195644,195646,195648],{"class":36,"line":88},[34,195643,49573],{"class":580},[34,195645,72946],{"class":181},[34,195647,815],{"class":580},[34,195649,195650],{"class":181}," pivot) {\n",[34,195652,195653,195656,195658],{"class":36,"line":242},[34,195654,195655],{"class":181},"            i",[34,195657,11928],{"class":580},[34,195659,593],{"class":181},[34,195661,195662,195665,195667,195670],{"class":36,"line":250},[34,195663,195664],{"class":47},"            std",[34,195666,30110],{"class":181},[34,195668,195669],{"class":47},"swap",[34,195671,195672],{"class":181},"(arr[i], arr[j]);\n",[34,195674,195675],{"class":36,"line":263},[34,195676,26208],{"class":181},[34,195678,195679],{"class":36,"line":275},[34,195680,3229],{"class":181},[34,195682,195683,195685,195687,195689,195692,195694,195696],{"class":36,"line":700},[34,195684,30075],{"class":47},[34,195686,30110],{"class":181},[34,195688,195669],{"class":47},[34,195690,195691],{"class":181},"(arr[i ",[34,195693,2940],{"class":580},[34,195695,3567],{"class":50},[34,195697,195698],{"class":181},"], arr[high]);\n",[34,195700,195701,195703,195705,195707,195709],{"class":36,"line":706},[34,195702,1564],{"class":580},[34,195704,10300],{"class":181},[34,195706,2940],{"class":580},[34,195708,3567],{"class":50},[34,195710,593],{"class":181},[34,195712,195713],{"class":36,"line":715},[34,195714,693],{"class":181},[34,195716,195717],{"class":36,"line":725},[34,195718,62],{"emptyLinePlaceholder":61},[34,195720,195721,195723,195726,195728,195730,195732,195734,195736,195738,195740,195742,195744,195746,195748,195750,195752,195754,195756],{"class":36,"line":734},[34,195722,818],{"class":580},[34,195724,195725],{"class":47}," quickSort",[34,195727,1607],{"class":181},[34,195729,29833],{"class":47},[34,195731,30110],{"class":181},[34,195733,31336],{"class":47},[34,195735,815],{"class":181},[34,195737,17772],{"class":580},[34,195739,5691],{"class":181},[34,195741,19502],{"class":580},[34,195743,23347],{"class":675},[34,195745,1798],{"class":181},[34,195747,17772],{"class":580},[34,195749,117709],{"class":675},[34,195751,1798],{"class":181},[34,195753,17772],{"class":580},[34,195755,117717],{"class":675},[34,195757,2416],{"class":181},[34,195759,195760,195762,195764,195766],{"class":36,"line":742},[34,195761,2902],{"class":580},[34,195763,63125],{"class":181},[34,195765,815],{"class":580},[34,195767,63130],{"class":181},[34,195769,195770,195773,195776,195778,195780],{"class":36,"line":748},[34,195771,195772],{"class":580},"        int",[34,195774,195775],{"class":181}," pivotIndex ",[34,195777,1301],{"class":580},[34,195779,195551],{"class":47},[34,195781,195782],{"class":181},"(arr, low, high);\n",[34,195784,195785,195788,195791,195793,195795],{"class":36,"line":754},[34,195786,195787],{"class":47},"        quickSort",[34,195789,195790],{"class":181},"(arr, low, pivotIndex ",[34,195792,22062],{"class":580},[34,195794,3567],{"class":50},[34,195796,1586],{"class":181},[34,195798,195799,195801,195804,195806,195808],{"class":36,"line":759},[34,195800,195787],{"class":47},[34,195802,195803],{"class":181},"(arr, pivotIndex ",[34,195805,2940],{"class":580},[34,195807,3567],{"class":50},[34,195809,63418],{"class":181},[34,195811,195812],{"class":36,"line":771},[34,195813,3229],{"class":181},[34,195815,195816],{"class":36,"line":794},[34,195817,693],{"class":181},[388,195819,195820],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .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 .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":30,"searchDepth":44,"depth":44,"links":195822},[195823],{"id":49933,"depth":44,"text":49928},"C++ Implementation in Quick Sort.",{},"/quick-sort/c-implementation",{"title":49928,"description":195824},"quick-sort/c-implementation","quick-sort",[195831,195832,49923,65594],"quicksort","sorting","_Qqc6WwpOhrY47jsEjbyznWL5DEIN2JbFBAse9Cl_rU",{"id":195835,"title":45382,"body":195836,"date":402,"description":195849,"extension":404,"meta":195850,"navigation":61,"order":44,"path":195851,"seo":195852,"stem":195853,"subject":195829,"tags":195854,"__hash__":195855},"topics/quick-sort/how-it-works.md",{"type":8,"value":195837,"toc":195846},[195838,195840],[11,195839,45382],{"id":45381},[25,195841,195844],{"className":195842,"code":195843,"language":780,"meta":30},[13703],"1. Choose a pivot element from the array\n2. Partition: reorder elements so that:\n   - Elements less than pivot go to the left\n   - Elements greater than pivot go to the right\n3. Recursively apply steps 1-2 to left and right sub-arrays\n4. Base case: arrays with 0 or 1 element are already sorted\n",[20,195845,195843],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":195847},[195848],{"id":45381,"depth":44,"text":45382},"How It Works in Quick Sort.",{},"/quick-sort/how-it-works",{"title":45382,"description":195849},"quick-sort/how-it-works",[195831,195832,49923,65594],"z-F3vge-9F2JFkKy9g3ZIZsisLHf5KfgJF5so-G7Hmw",{"id":195857,"title":195858,"body":195859,"date":402,"description":195998,"extension":404,"meta":195999,"navigation":61,"order":250,"path":196000,"seo":196001,"stem":196002,"subject":195829,"tags":196003,"__hash__":196004},"topics/quick-sort/iterative-quick-sort-stack-based.md","Iterative Quick Sort (Stack-based)",{"type":8,"value":195860,"toc":195995},[195861,195864,195993],[11,195862,195858],{"id":195863},"iterative-quick-sort-stack-based",[25,195865,195867],{"className":49386,"code":195866,"language":49388,"meta":30,"style":30},"# Avoids recursion stack overflow for large arrays\ndef quick_sort_iterative(arr):\n    stack = [(0, len(arr) - 1)]\n    \n    while stack:\n        low, high = stack.pop()\n        \n        if low \u003C high:\n            pivot_index = partition(arr, low, high)\n            \n            # Push sub-arrays to stack\n            stack.append((low, pivot_index - 1))\n            stack.append((pivot_index + 1, high))\n    \n    return arr\n",[20,195868,195869,195874,195884,195906,195910,195916,195926,195930,195940,195950,195954,195959,195970,195982,195986],{"__ignoreMap":30},[34,195870,195871],{"class":36,"line":37},[34,195872,195873],{"class":40},"# Avoids recursion stack overflow for large arrays\n",[34,195875,195876,195878,195881],{"class":36,"line":44},[34,195877,49400],{"class":580},[34,195879,195880],{"class":47}," quick_sort_iterative",[34,195882,195883],{"class":181},"(arr):\n",[34,195885,195886,195888,195890,195892,195894,195896,195898,195900,195902,195904],{"class":36,"line":58},[34,195887,69391],{"class":181},[34,195889,1301],{"class":580},[34,195891,49474],{"class":181},[34,195893,2773],{"class":50},[34,195895,1798],{"class":181},[34,195897,63603],{"class":50},[34,195899,63606],{"class":181},[34,195901,22062],{"class":580},[34,195903,3567],{"class":50},[34,195905,34499],{"class":181},[34,195907,195908],{"class":36,"line":65},[34,195909,3666],{"class":181},[34,195911,195912,195914],{"class":36,"line":71},[34,195913,8098],{"class":580},[34,195915,69418],{"class":181},[34,195917,195918,195921,195923],{"class":36,"line":77},[34,195919,195920],{"class":181},"        low, high ",[34,195922,1301],{"class":580},[34,195924,195925],{"class":181}," stack.pop()\n",[34,195927,195928],{"class":36,"line":82},[34,195929,49744],{"class":181},[34,195931,195932,195934,195936,195938],{"class":36,"line":88},[34,195933,49573],{"class":580},[34,195935,63088],{"class":181},[34,195937,815],{"class":580},[34,195939,63625],{"class":181},[34,195941,195942,195945,195947],{"class":36,"line":242},[34,195943,195944],{"class":181},"            pivot_index ",[34,195946,1301],{"class":580},[34,195948,195949],{"class":181}," partition(arr, low, high)\n",[34,195951,195952],{"class":36,"line":250},[34,195953,49614],{"class":181},[34,195955,195956],{"class":36,"line":263},[34,195957,195958],{"class":40},"            # Push sub-arrays to stack\n",[34,195960,195961,195964,195966,195968],{"class":36,"line":275},[34,195962,195963],{"class":181},"            stack.append((low, pivot_index ",[34,195965,22062],{"class":580},[34,195967,3567],{"class":50},[34,195969,11119],{"class":181},[34,195971,195972,195975,195977,195979],{"class":36,"line":700},[34,195973,195974],{"class":181},"            stack.append((pivot_index ",[34,195976,2940],{"class":580},[34,195978,3567],{"class":50},[34,195980,195981],{"class":181},", high))\n",[34,195983,195984],{"class":36,"line":706},[34,195985,3666],{"class":181},[34,195987,195988,195990],{"class":36,"line":715},[34,195989,1564],{"class":580},[34,195991,195992],{"class":181}," arr\n",[388,195994,35226],{},{"title":30,"searchDepth":44,"depth":44,"links":195996},[195997],{"id":195863,"depth":44,"text":195858},"Iterative Quick Sort (Stack-based) in Quick Sort.",{},"/quick-sort/iterative-quick-sort-stack-based",{"title":195858,"description":195998},"quick-sort/iterative-quick-sort-stack-based",[195831,195832,49923,65594],"2SyT8-pn1ibKFQqx-qKADU7gZSni8wZ4Hm0KpoAUtes",{"id":196006,"title":51376,"body":196007,"date":402,"description":196340,"extension":404,"meta":196341,"navigation":61,"order":77,"path":196342,"seo":196343,"stem":196344,"subject":195829,"tags":196345,"__hash__":196346},"topics/quick-sort/java-implementation.md",{"type":8,"value":196008,"toc":196337},[196009,196011,196334],[11,196010,51376],{"id":51381},[25,196012,196014],{"className":51384,"code":196013,"language":51386,"meta":30,"style":30},"public class QuickSort {\n    public static void quickSort(int[] arr, int low, int high) {\n        if (low \u003C high) {\n            int pivotIndex = partition(arr, low, high);\n            quickSort(arr, low, pivotIndex - 1);\n            quickSort(arr, pivotIndex + 1, high);\n        }\n    }\n    \n    private static int partition(int[] arr, int low, int high) {\n        int pivot = arr[high];\n        int i = low - 1;\n        \n        for (int j = low; j \u003C high; j++) {\n            if (arr[j] \u003C pivot) {\n                i++;\n                // Swap arr[i] and arr[j]\n                int temp = arr[i];\n                arr[i] = arr[j];\n                arr[j] = temp;\n            }\n        }\n        // Swap arr[i+1] and arr[high] (pivot)\n        int temp = arr[i + 1];\n        arr[i + 1] = arr[high];\n        arr[high] = temp;\n        \n        return i + 1;\n    }\n}\n",[20,196015,196016,196027,196059,196069,196081,196094,196106,196110,196114,196118,196150,196160,196176,196180,196202,196212,196221,196226,196237,196247,196256,196260,196264,196269,196286,196301,196310,196314,196326,196330],{"__ignoreMap":30},[34,196017,196018,196020,196022,196025],{"class":36,"line":37},[34,196019,31583],{"class":580},[34,196021,655],{"class":580},[34,196023,196024],{"class":47}," QuickSort",[34,196026,661],{"class":181},[34,196028,196029,196031,196033,196035,196037,196039,196041,196043,196045,196047,196049,196051,196053,196055,196057],{"class":36,"line":44},[34,196030,34159],{"class":580},[34,196032,51421],{"class":580},[34,196034,31514],{"class":580},[34,196036,195725],{"class":47},[34,196038,1607],{"class":181},[34,196040,17772],{"class":580},[34,196042,4063],{"class":181},[34,196044,18382],{"class":675},[34,196046,1798],{"class":181},[34,196048,17772],{"class":580},[34,196050,117709],{"class":675},[34,196052,1798],{"class":181},[34,196054,17772],{"class":580},[34,196056,117717],{"class":675},[34,196058,2416],{"class":181},[34,196060,196061,196063,196065,196067],{"class":36,"line":58},[34,196062,49573],{"class":580},[34,196064,63125],{"class":181},[34,196066,815],{"class":580},[34,196068,63130],{"class":181},[34,196070,196071,196073,196075,196077,196079],{"class":36,"line":65},[34,196072,50260],{"class":580},[34,196074,195775],{"class":181},[34,196076,1301],{"class":580},[34,196078,195551],{"class":47},[34,196080,195782],{"class":181},[34,196082,196083,196086,196088,196090,196092],{"class":36,"line":71},[34,196084,196085],{"class":47},"            quickSort",[34,196087,195790],{"class":181},[34,196089,22062],{"class":580},[34,196091,3567],{"class":50},[34,196093,1586],{"class":181},[34,196095,196096,196098,196100,196102,196104],{"class":36,"line":77},[34,196097,196085],{"class":47},[34,196099,195803],{"class":181},[34,196101,2940],{"class":580},[34,196103,3567],{"class":50},[34,196105,63418],{"class":181},[34,196107,196108],{"class":36,"line":82},[34,196109,26208],{"class":181},[34,196111,196112],{"class":36,"line":88},[34,196113,3229],{"class":181},[34,196115,196116],{"class":36,"line":242},[34,196117,3666],{"class":181},[34,196119,196120,196122,196124,196126,196128,196130,196132,196134,196136,196138,196140,196142,196144,196146,196148],{"class":36,"line":250},[34,196121,34138],{"class":580},[34,196123,51421],{"class":580},[34,196125,25160],{"class":580},[34,196127,195551],{"class":47},[34,196129,1607],{"class":181},[34,196131,17772],{"class":580},[34,196133,4063],{"class":181},[34,196135,18382],{"class":675},[34,196137,1798],{"class":181},[34,196139,17772],{"class":580},[34,196141,117709],{"class":675},[34,196143,1798],{"class":181},[34,196145,17772],{"class":580},[34,196147,117717],{"class":675},[34,196149,2416],{"class":181},[34,196151,196152,196154,196156,196158],{"class":36,"line":263},[34,196153,195772],{"class":580},[34,196155,195590],{"class":181},[34,196157,1301],{"class":580},[34,196159,195595],{"class":181},[34,196161,196162,196164,196166,196168,196170,196172,196174],{"class":36,"line":275},[34,196163,195772],{"class":580},[34,196165,10300],{"class":181},[34,196167,1301],{"class":580},[34,196169,63088],{"class":181},[34,196171,22062],{"class":580},[34,196173,3567],{"class":50},[34,196175,593],{"class":181},[34,196177,196178],{"class":36,"line":700},[34,196179,49744],{"class":181},[34,196181,196182,196184,196186,196188,196190,196192,196194,196196,196198,196200],{"class":36,"line":706},[34,196183,50247],{"class":580},[34,196185,3204],{"class":181},[34,196187,17772],{"class":580},[34,196189,72911],{"class":181},[34,196191,1301],{"class":580},[34,196193,195630],{"class":181},[34,196195,815],{"class":580},[34,196197,195635],{"class":181},[34,196199,11928],{"class":580},[34,196201,2416],{"class":181},[34,196203,196204,196206,196208,196210],{"class":36,"line":715},[34,196205,49591],{"class":580},[34,196207,72946],{"class":181},[34,196209,815],{"class":580},[34,196211,195650],{"class":181},[34,196213,196214,196217,196219],{"class":36,"line":725},[34,196215,196216],{"class":181},"                i",[34,196218,11928],{"class":580},[34,196220,593],{"class":181},[34,196222,196223],{"class":36,"line":734},[34,196224,196225],{"class":40},"                // Swap arr[i] and arr[j]\n",[34,196227,196228,196230,196232,196234],{"class":36,"line":742},[34,196229,51856],{"class":580},[34,196231,18501],{"class":181},[34,196233,1301],{"class":580},[34,196235,196236],{"class":181}," arr[i];\n",[34,196238,196239,196242,196244],{"class":36,"line":748},[34,196240,196241],{"class":181},"                arr[i] ",[34,196243,1301],{"class":580},[34,196245,196246],{"class":181}," arr[j];\n",[34,196248,196249,196252,196254],{"class":36,"line":754},[34,196250,196251],{"class":181},"                arr[j] ",[34,196253,1301],{"class":580},[34,196255,18535],{"class":181},[34,196257,196258],{"class":36,"line":759},[34,196259,28156],{"class":181},[34,196261,196262],{"class":36,"line":771},[34,196263,26208],{"class":181},[34,196265,196266],{"class":36,"line":794},[34,196267,196268],{"class":40},"        // Swap arr[i+1] and arr[high] (pivot)\n",[34,196270,196271,196273,196275,196277,196280,196282,196284],{"class":36,"line":824},[34,196272,195772],{"class":580},[34,196274,18501],{"class":181},[34,196276,1301],{"class":580},[34,196278,196279],{"class":181}," arr[i ",[34,196281,2940],{"class":580},[34,196283,3567],{"class":50},[34,196285,3415],{"class":181},[34,196287,196288,196291,196293,196295,196297,196299],{"class":36,"line":830},[34,196289,196290],{"class":181},"        arr[i ",[34,196292,2940],{"class":580},[34,196294,3567],{"class":50},[34,196296,17799],{"class":181},[34,196298,1301],{"class":580},[34,196300,195595],{"class":181},[34,196302,196303,196306,196308],{"class":36,"line":839},[34,196304,196305],{"class":181},"        arr[high] ",[34,196307,1301],{"class":580},[34,196309,18535],{"class":181},[34,196311,196312],{"class":36,"line":854},[34,196313,49744],{"class":181},[34,196315,196316,196318,196320,196322,196324],{"class":36,"line":860},[34,196317,13895],{"class":580},[34,196319,10300],{"class":181},[34,196321,2940],{"class":580},[34,196323,3567],{"class":50},[34,196325,593],{"class":181},[34,196327,196328],{"class":36,"line":865},[34,196329,3229],{"class":181},[34,196331,196332],{"class":36,"line":870},[34,196333,693],{"class":181},[388,196335,196336],{},"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 .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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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":30,"searchDepth":44,"depth":44,"links":196338},[196339],{"id":51381,"depth":44,"text":51376},"Java Implementation in Quick Sort.",{},"/quick-sort/java-implementation",{"title":51376,"description":196340},"quick-sort/java-implementation",[195831,195832,49923,65594],"09q41OSCdKBEy1dBpeFCeXrGWPVpixMkT1MeXFhH334",{"id":196348,"title":51994,"body":196349,"date":402,"description":196817,"extension":404,"meta":196818,"navigation":61,"order":65,"path":196819,"seo":196820,"stem":196821,"subject":195829,"tags":196822,"__hash__":196823},"topics/quick-sort/javascript-implementation.md",{"type":8,"value":196350,"toc":196814},[196351,196353,196812],[11,196352,51994],{"id":51999},[25,196354,196356],{"className":13845,"code":196355,"language":8606,"meta":30,"style":30},"// Basic Quick Sort\nfunction quickSort(arr) {\n  if (arr.length \u003C= 1) return arr;\n  \n  const pivot = arr[arr.length - 1];\n  const left = [];\n  const right = [];\n  \n  for (let i = 0; i \u003C arr.length - 1; i++) {\n    if (arr[i] \u003C pivot) {\n      left.push(arr[i]);\n    } else {\n      right.push(arr[i]);\n    }\n  }\n  \n  return [...quickSort(left), pivot, ...quickSort(right)];\n}\n\n// In-place Quick Sort (more efficient)\nfunction quickSortInPlace(arr, low = 0, high = arr.length - 1) {\n  if (low \u003C high) {\n    const pivotIndex = partition(arr, low, high);\n    quickSortInPlace(arr, low, pivotIndex - 1);\n    quickSortInPlace(arr, pivotIndex + 1, high);\n  }\n  return arr;\n}\n\nfunction partition(arr, low, high) {\n  const pivot = arr[high];\n  let i = low - 1;\n  \n  for (let j = low; j \u003C high; j++) {\n    if (arr[j] \u003C pivot) {\n      i++;\n      [arr[i], arr[j]] = [arr[j], arr[i]]; // Swap\n    }\n  }\n  [arr[i + 1], arr[high]] = [arr[high], arr[i + 1]];\n  return i + 1;\n}\n",[20,196357,196358,196363,196375,196394,196398,196418,196429,196439,196443,196475,196486,196496,196504,196513,196517,196521,196525,196546,196550,196554,196559,196594,196604,196617,196630,196642,196646,196652,196656,196660,196680,196690,196706,196710,196732,196742,196751,196764,196768,196772,196796,196808],{"__ignoreMap":30},[34,196359,196360],{"class":36,"line":37},[34,196361,196362],{"class":40},"// Basic Quick Sort\n",[34,196364,196365,196367,196369,196371,196373],{"class":36,"line":44},[34,196366,11044],{"class":580},[34,196368,195725],{"class":47},[34,196370,1607],{"class":181},[34,196372,18382],{"class":675},[34,196374,2416],{"class":181},[34,196376,196377,196379,196382,196384,196386,196388,196390,196392],{"class":36,"line":58},[34,196378,8084],{"class":580},[34,196380,196381],{"class":181}," (arr.",[34,196383,2908],{"class":50},[34,196385,2911],{"class":580},[34,196387,3567],{"class":50},[34,196389,4817],{"class":181},[34,196391,2917],{"class":580},[34,196393,72983],{"class":181},[34,196395,196396],{"class":36,"line":65},[34,196397,827],{"class":181},[34,196399,196400,196402,196405,196407,196410,196412,196414,196416],{"class":36,"line":71},[34,196401,17415],{"class":580},[34,196403,196404],{"class":50}," pivot",[34,196406,683],{"class":580},[34,196408,196409],{"class":181}," arr[arr.",[34,196411,2908],{"class":50},[34,196413,19423],{"class":580},[34,196415,3567],{"class":50},[34,196417,3415],{"class":181},[34,196419,196420,196422,196425,196427],{"class":36,"line":77},[34,196421,17415],{"class":580},[34,196423,196424],{"class":50}," left",[34,196426,683],{"class":580},[34,196428,4068],{"class":181},[34,196430,196431,196433,196435,196437],{"class":36,"line":82},[34,196432,17415],{"class":580},[34,196434,38919],{"class":50},[34,196436,683],{"class":580},[34,196438,4068],{"class":181},[34,196440,196441],{"class":36,"line":88},[34,196442,827],{"class":181},[34,196444,196445,196447,196449,196451,196453,196455,196457,196459,196461,196463,196465,196467,196469,196471,196473],{"class":36,"line":242},[34,196446,52076],{"class":580},[34,196448,3204],{"class":181},[34,196450,8268],{"class":580},[34,196452,10300],{"class":181},[34,196454,1301],{"class":580},[34,196456,8070],{"class":50},[34,196458,18263],{"class":181},[34,196460,815],{"class":580},[34,196462,63106],{"class":181},[34,196464,2908],{"class":50},[34,196466,19423],{"class":580},[34,196468,3567],{"class":50},[34,196470,11918],{"class":181},[34,196472,11928],{"class":580},[34,196474,2416],{"class":181},[34,196476,196477,196479,196482,196484],{"class":36,"line":250},[34,196478,2902],{"class":580},[34,196480,196481],{"class":181}," (arr[i] ",[34,196483,815],{"class":580},[34,196485,195650],{"class":181},[34,196487,196488,196491,196493],{"class":36,"line":263},[34,196489,196490],{"class":181},"      left.",[34,196492,50165],{"class":47},[34,196494,196495],{"class":181},"(arr[i]);\n",[34,196497,196498,196500,196502],{"class":36,"line":275},[34,196499,63191],{"class":181},[34,196501,18871],{"class":580},[34,196503,661],{"class":181},[34,196505,196506,196509,196511],{"class":36,"line":700},[34,196507,196508],{"class":181},"      right.",[34,196510,50165],{"class":47},[34,196512,196495],{"class":181},[34,196514,196515],{"class":36,"line":706},[34,196516,3229],{"class":181},[34,196518,196519],{"class":36,"line":715},[34,196520,857],{"class":181},[34,196522,196523],{"class":36,"line":725},[34,196524,827],{"class":181},[34,196526,196527,196529,196531,196533,196536,196539,196541,196543],{"class":36,"line":734},[34,196528,8155],{"class":580},[34,196530,8315],{"class":181},[34,196532,16841],{"class":580},[34,196534,196535],{"class":47},"quickSort",[34,196537,196538],{"class":181},"(left), pivot, ",[34,196540,16841],{"class":580},[34,196542,196535],{"class":47},[34,196544,196545],{"class":181},"(right)];\n",[34,196547,196548],{"class":36,"line":742},[34,196549,693],{"class":181},[34,196551,196552],{"class":36,"line":748},[34,196553,62],{"emptyLinePlaceholder":61},[34,196555,196556],{"class":36,"line":754},[34,196557,196558],{"class":40},"// In-place Quick Sort (more efficient)\n",[34,196560,196561,196563,196566,196568,196570,196572,196574,196576,196578,196580,196582,196584,196586,196588,196590,196592],{"class":36,"line":759},[34,196562,11044],{"class":580},[34,196564,196565],{"class":47}," quickSortInPlace",[34,196567,1607],{"class":181},[34,196569,18382],{"class":675},[34,196571,1798],{"class":181},[34,196573,63304],{"class":675},[34,196575,683],{"class":580},[34,196577,8070],{"class":50},[34,196579,1798],{"class":181},[34,196581,63313],{"class":675},[34,196583,683],{"class":580},[34,196585,63106],{"class":181},[34,196587,2908],{"class":50},[34,196589,19423],{"class":580},[34,196591,3567],{"class":50},[34,196593,2416],{"class":181},[34,196595,196596,196598,196600,196602],{"class":36,"line":771},[34,196597,8084],{"class":580},[34,196599,63125],{"class":181},[34,196601,815],{"class":580},[34,196603,63130],{"class":181},[34,196605,196606,196608,196611,196613,196615],{"class":36,"line":794},[34,196607,1632],{"class":580},[34,196609,196610],{"class":50}," pivotIndex",[34,196612,683],{"class":580},[34,196614,195551],{"class":47},[34,196616,195782],{"class":181},[34,196618,196619,196622,196624,196626,196628],{"class":36,"line":824},[34,196620,196621],{"class":47},"    quickSortInPlace",[34,196623,195790],{"class":181},[34,196625,22062],{"class":580},[34,196627,3567],{"class":50},[34,196629,1586],{"class":181},[34,196631,196632,196634,196636,196638,196640],{"class":36,"line":830},[34,196633,196621],{"class":47},[34,196635,195803],{"class":181},[34,196637,2940],{"class":580},[34,196639,3567],{"class":50},[34,196641,63418],{"class":181},[34,196643,196644],{"class":36,"line":839},[34,196645,857],{"class":181},[34,196647,196648,196650],{"class":36,"line":854},[34,196649,8155],{"class":580},[34,196651,72983],{"class":181},[34,196653,196654],{"class":36,"line":860},[34,196655,693],{"class":181},[34,196657,196658],{"class":36,"line":865},[34,196659,62],{"emptyLinePlaceholder":61},[34,196661,196662,196664,196666,196668,196670,196672,196674,196676,196678],{"class":36,"line":870},[34,196663,11044],{"class":580},[34,196665,195551],{"class":47},[34,196667,1607],{"class":181},[34,196669,18382],{"class":675},[34,196671,1798],{"class":181},[34,196673,63304],{"class":675},[34,196675,1798],{"class":181},[34,196677,63313],{"class":675},[34,196679,2416],{"class":181},[34,196681,196682,196684,196686,196688],{"class":36,"line":876},[34,196683,17415],{"class":580},[34,196685,196404],{"class":50},[34,196687,683],{"class":580},[34,196689,195595],{"class":181},[34,196691,196692,196694,196696,196698,196700,196702,196704],{"class":36,"line":885},[34,196693,63085],{"class":580},[34,196695,10300],{"class":181},[34,196697,1301],{"class":580},[34,196699,63088],{"class":181},[34,196701,22062],{"class":580},[34,196703,3567],{"class":50},[34,196705,593],{"class":181},[34,196707,196708],{"class":36,"line":895},[34,196709,827],{"class":181},[34,196711,196712,196714,196716,196718,196720,196722,196724,196726,196728,196730],{"class":36,"line":904},[34,196713,52076],{"class":580},[34,196715,3204],{"class":181},[34,196717,8268],{"class":580},[34,196719,72911],{"class":181},[34,196721,1301],{"class":580},[34,196723,195630],{"class":181},[34,196725,815],{"class":580},[34,196727,195635],{"class":181},[34,196729,11928],{"class":580},[34,196731,2416],{"class":181},[34,196733,196734,196736,196738,196740],{"class":36,"line":915},[34,196735,2902],{"class":580},[34,196737,72946],{"class":181},[34,196739,815],{"class":580},[34,196741,195650],{"class":181},[34,196743,196744,196747,196749],{"class":36,"line":927},[34,196745,196746],{"class":181},"      i",[34,196748,11928],{"class":580},[34,196750,593],{"class":181},[34,196752,196753,196756,196758,196761],{"class":36,"line":932},[34,196754,196755],{"class":181},"      [arr[i], arr[j]] ",[34,196757,1301],{"class":580},[34,196759,196760],{"class":181}," [arr[j], arr[i]]; ",[34,196762,196763],{"class":40},"// Swap\n",[34,196765,196766],{"class":36,"line":944},[34,196767,3229],{"class":181},[34,196769,196770],{"class":36,"line":966},[34,196771,857],{"class":181},[34,196773,196774,196777,196779,196781,196784,196786,196789,196791,196793],{"class":36,"line":1948},[34,196775,196776],{"class":181},"  [arr[i ",[34,196778,2940],{"class":580},[34,196780,3567],{"class":50},[34,196782,196783],{"class":181},"], arr[high]] ",[34,196785,1301],{"class":580},[34,196787,196788],{"class":181}," [arr[high], arr[i ",[34,196790,2940],{"class":580},[34,196792,3567],{"class":50},[34,196794,196795],{"class":181},"]];\n",[34,196797,196798,196800,196802,196804,196806],{"class":36,"line":1953},[34,196799,8155],{"class":580},[34,196801,10300],{"class":181},[34,196803,2940],{"class":580},[34,196805,3567],{"class":50},[34,196807,593],{"class":181},[34,196809,196810],{"class":36,"line":3616},[34,196811,693],{"class":181},[388,196813,60244],{},{"title":30,"searchDepth":44,"depth":44,"links":196815},[196816],{"id":51999,"depth":44,"text":51994},"JavaScript Implementation in Quick Sort.",{},"/quick-sort/javascript-implementation",{"title":51994,"description":196817},"quick-sort/javascript-implementation",[195831,195832,49923,65594],"GrC1gvj0i3l39aWZaQ2OLmxBbgqlKf50jHKfzJFUbYQ",{"id":196825,"title":196826,"body":196827,"date":2633,"description":196881,"extension":404,"meta":196882,"navigation":61,"order":37,"path":196883,"seo":196884,"stem":196885,"subject":195829,"tags":196886,"__hash__":196887},"topics/quick-sort/overview.md","Quick Sort",{"type":8,"value":196828,"toc":196879},[196829],[309,196830,196831,196835,196840,196844,196849,196853,196857,196863,196869,196873],{},[312,196832,196833],{},[145,196834,45382],{"href":195851},[312,196836,196837],{},[145,196838,52846],{"href":196839},"/quick-sort/time-space-complexity",[312,196841,196842],{},[145,196843,51994],{"href":196819},[312,196845,196846],{},[145,196847,52856],{"href":196848},"/quick-sort/python-implementation",[312,196850,196851],{},[145,196852,51376],{"href":196342},[312,196854,196855],{},[145,196856,49928],{"href":195826},[312,196858,196859],{},[145,196860,196862],{"href":196861},"/quick-sort/pivot-selection-strategies","Pivot Selection Strategies",[312,196864,196865],{},[145,196866,196868],{"href":196867},"/quick-sort/three-way-partition-dutch-national-flag","Three-Way Partition (Dutch National Flag)",[312,196870,196871],{},[145,196872,195858],{"href":196000},[312,196874,196875],{},[145,196876,196878],{"href":196877},"/quick-sort/quick-sort-vs-other-algorithms","Quick Sort vs Other Algorithms",{"title":30,"searchDepth":44,"depth":44,"links":196880},[],"Quick Sort algorithm implementations, time complexity, and optimization techniques for efficient sorting.",{},"/quick-sort/overview",{"title":196826,"description":196881},"quick-sort/overview",[195831,195832,49923,65594],"rAhLMhNjXIjb_ZYtPuYTWhypcuozvaBPG7Ia3gpPIO0",{"id":196889,"title":196862,"body":196890,"date":402,"description":197124,"extension":404,"meta":197125,"navigation":61,"order":88,"path":196861,"seo":197126,"stem":197127,"subject":195829,"tags":197128,"__hash__":197129},"topics/quick-sort/pivot-selection-strategies.md",{"type":8,"value":196891,"toc":197121},[196892,196895,197118],[11,196893,196862],{"id":196894},"pivot-selection-strategies",[25,196896,196898],{"className":49386,"code":196897,"language":49388,"meta":30,"style":30},"# Last element (simple but poor for sorted data)\npivot = arr[high]\n\n# First element\npivot = arr[low]\n\n# Middle element (better for sorted data)\nmid = (low + high) // 2\npivot = arr[mid]\n\n# Median-of-three (good balance)\ndef median_of_three(arr, low, high):\n    mid = (low + high) // 2\n    if arr[low] > arr[mid]:\n        arr[low], arr[mid] = arr[mid], arr[low]\n    if arr[low] > arr[high]:\n        arr[low], arr[high] = arr[high], arr[low]\n    if arr[mid] > arr[high]:\n        arr[mid], arr[high] = arr[high], arr[mid]\n    return mid  # Return median index\n\n# Random pivot (prevents worst case on sorted data)\nimport random\npivot_index = random.randint(low, high)\narr[pivot_index], arr[high] = arr[high], arr[pivot_index]\npivot = arr[high]\n",[20,196899,196900,196905,196915,196919,196923,196932,196936,196941,196958,196967,196971,196976,196986,197002,197014,197024,197035,197045,197055,197065,197074,197078,197083,197090,197100,197110],{"__ignoreMap":30},[34,196901,196902],{"class":36,"line":37},[34,196903,196904],{"class":40},"# Last element (simple but poor for sorted data)\n",[34,196906,196907,196910,196912],{"class":36,"line":44},[34,196908,196909],{"class":181},"pivot ",[34,196911,1301],{"class":580},[34,196913,196914],{"class":181}," arr[high]\n",[34,196916,196917],{"class":36,"line":58},[34,196918,62],{"emptyLinePlaceholder":61},[34,196920,196921],{"class":36,"line":65},[34,196922,10126],{"class":40},[34,196924,196925,196927,196929],{"class":36,"line":71},[34,196926,196909],{"class":181},[34,196928,1301],{"class":580},[34,196930,196931],{"class":181}," arr[low]\n",[34,196933,196934],{"class":36,"line":77},[34,196935,62],{"emptyLinePlaceholder":61},[34,196937,196938],{"class":36,"line":82},[34,196939,196940],{"class":40},"# Middle element (better for sorted data)\n",[34,196942,196943,196946,196948,196950,196952,196954,196956],{"class":36,"line":88},[34,196944,196945],{"class":181},"mid ",[34,196947,1301],{"class":580},[34,196949,63125],{"class":181},[34,196951,2940],{"class":580},[34,196953,63151],{"class":181},[34,196955,12754],{"class":580},[34,196957,9930],{"class":50},[34,196959,196960,196962,196964],{"class":36,"line":242},[34,196961,196909],{"class":181},[34,196963,1301],{"class":580},[34,196965,196966],{"class":181}," arr[mid]\n",[34,196968,196969],{"class":36,"line":250},[34,196970,62],{"emptyLinePlaceholder":61},[34,196972,196973],{"class":36,"line":263},[34,196974,196975],{"class":40},"# Median-of-three (good balance)\n",[34,196977,196978,196980,196983],{"class":36,"line":275},[34,196979,49400],{"class":580},[34,196981,196982],{"class":47}," median_of_three",[34,196984,196985],{"class":181},"(arr, low, high):\n",[34,196987,196988,196990,196992,196994,196996,196998,197000],{"class":36,"line":700},[34,196989,63845],{"class":181},[34,196991,1301],{"class":580},[34,196993,63125],{"class":181},[34,196995,2940],{"class":580},[34,196997,63151],{"class":181},[34,196999,12754],{"class":580},[34,197001,9930],{"class":50},[34,197003,197004,197006,197009,197011],{"class":36,"line":706},[34,197005,2902],{"class":580},[34,197007,197008],{"class":181}," arr[low] ",[34,197010,5691],{"class":580},[34,197012,197013],{"class":181}," arr[mid]:\n",[34,197015,197016,197019,197021],{"class":36,"line":715},[34,197017,197018],{"class":181},"        arr[low], arr[mid] ",[34,197020,1301],{"class":580},[34,197022,197023],{"class":181}," arr[mid], arr[low]\n",[34,197025,197026,197028,197030,197032],{"class":36,"line":725},[34,197027,2902],{"class":580},[34,197029,197008],{"class":181},[34,197031,5691],{"class":580},[34,197033,197034],{"class":181}," arr[high]:\n",[34,197036,197037,197040,197042],{"class":36,"line":734},[34,197038,197039],{"class":181},"        arr[low], arr[high] ",[34,197041,1301],{"class":580},[34,197043,197044],{"class":181}," arr[high], arr[low]\n",[34,197046,197047,197049,197051,197053],{"class":36,"line":742},[34,197048,2902],{"class":580},[34,197050,63656],{"class":181},[34,197052,5691],{"class":580},[34,197054,197034],{"class":181},[34,197056,197057,197060,197062],{"class":36,"line":748},[34,197058,197059],{"class":181},"        arr[mid], arr[high] ",[34,197061,1301],{"class":580},[34,197063,197064],{"class":181}," arr[high], arr[mid]\n",[34,197066,197067,197069,197071],{"class":36,"line":754},[34,197068,1564],{"class":580},[34,197070,64954],{"class":181},[34,197072,197073],{"class":40},"# Return median index\n",[34,197075,197076],{"class":36,"line":759},[34,197077,62],{"emptyLinePlaceholder":61},[34,197079,197080],{"class":36,"line":771},[34,197081,197082],{"class":40},"# Random pivot (prevents worst case on sorted data)\n",[34,197084,197085,197087],{"class":36,"line":794},[34,197086,581],{"class":580},[34,197088,197089],{"class":181}," random\n",[34,197091,197092,197095,197097],{"class":36,"line":824},[34,197093,197094],{"class":181},"pivot_index ",[34,197096,1301],{"class":580},[34,197098,197099],{"class":181}," random.randint(low, high)\n",[34,197101,197102,197105,197107],{"class":36,"line":830},[34,197103,197104],{"class":181},"arr[pivot_index], arr[high] ",[34,197106,1301],{"class":580},[34,197108,197109],{"class":181}," arr[high], arr[pivot_index]\n",[34,197111,197112,197114,197116],{"class":36,"line":839},[34,197113,196909],{"class":181},[34,197115,1301],{"class":580},[34,197117,196914],{"class":181},[388,197119,197120],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .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":30,"searchDepth":44,"depth":44,"links":197122},[197123],{"id":196894,"depth":44,"text":196862},"Pivot Selection Strategies in Quick Sort.",{},{"title":196862,"description":197124},"quick-sort/pivot-selection-strategies",[195831,195832,49923,65594],"tmqHdj07u3WWLgB9kak6-HXP1JQTHqWSrG9kTzIVR88",{"id":197131,"title":52856,"body":197132,"date":402,"description":197514,"extension":404,"meta":197515,"navigation":61,"order":71,"path":196848,"seo":197516,"stem":197517,"subject":195829,"tags":197518,"__hash__":197519},"topics/quick-sort/python-implementation.md",{"type":8,"value":197133,"toc":197511},[197134,197136,197509],[11,197135,52856],{"id":52900},[25,197137,197139],{"className":49386,"code":197138,"language":49388,"meta":30,"style":30},"# Basic Quick Sort\ndef quick_sort(arr):\n    if len(arr) \u003C= 1:\n        return arr\n    \n    pivot = arr[-1]\n    left = [x for x in arr[:-1] if x \u003C pivot]\n    right = [x for x in arr[:-1] if x >= pivot]\n    \n    return quick_sort(left) + [pivot] + quick_sort(right)\n\n# In-place Quick Sort\ndef quick_sort_in_place(arr, low=0, high=None):\n    if high is None:\n        high = len(arr) - 1\n    \n    if low \u003C high:\n        pivot_index = partition(arr, low, high)\n        quick_sort_in_place(arr, low, pivot_index - 1)\n        quick_sort_in_place(arr, pivot_index + 1, high)\n    \n    return arr\n\ndef partition(arr, low, high):\n    pivot = arr[high]\n    i = low - 1\n    \n    for j in range(low, high):\n        if arr[j] \u003C pivot:\n            i += 1\n            arr[i], arr[j] = arr[j], arr[i]\n    \n    arr[i + 1], arr[high] = arr[high], arr[i + 1]\n    return i + 1\n",[20,197140,197141,197146,197155,197169,197175,197179,197194,197227,197258,197262,197279,197283,197288,197311,197323,197337,197341,197351,197360,197371,197382,197386,197392,197396,197404,197412,197424,197428,197441,197453,197462,197472,197476,197499],{"__ignoreMap":30},[34,197142,197143],{"class":36,"line":37},[34,197144,197145],{"class":40},"# Basic Quick Sort\n",[34,197147,197148,197150,197153],{"class":36,"line":44},[34,197149,49400],{"class":580},[34,197151,197152],{"class":47}," quick_sort",[34,197154,195883],{"class":181},[34,197156,197157,197159,197161,197163,197165,197167],{"class":36,"line":58},[34,197158,2902],{"class":580},[34,197160,21152],{"class":50},[34,197162,63606],{"class":181},[34,197164,22032],{"class":580},[34,197166,3567],{"class":50},[34,197168,193],{"class":181},[34,197170,197171,197173],{"class":36,"line":65},[34,197172,13895],{"class":580},[34,197174,195992],{"class":181},[34,197176,197177],{"class":36,"line":71},[34,197178,3666],{"class":181},[34,197180,197181,197184,197186,197188,197190,197192],{"class":36,"line":77},[34,197182,197183],{"class":181},"    pivot ",[34,197185,1301],{"class":580},[34,197187,29791],{"class":181},[34,197189,22062],{"class":580},[34,197191,8318],{"class":50},[34,197193,924],{"class":181},[34,197195,197196,197199,197201,197203,197205,197207,197209,197212,197214,197216,197218,197220,197222,197224],{"class":36,"line":82},[34,197197,197198],{"class":181},"    left ",[34,197200,1301],{"class":580},[34,197202,192534],{"class":181},[34,197204,10246],{"class":580},[34,197206,23172],{"class":181},[34,197208,10252],{"class":580},[34,197210,197211],{"class":181}," arr[:",[34,197213,22062],{"class":580},[34,197215,8318],{"class":50},[34,197217,17799],{"class":181},[34,197219,10383],{"class":580},[34,197221,23172],{"class":181},[34,197223,815],{"class":580},[34,197225,197226],{"class":181}," pivot]\n",[34,197228,197229,197232,197234,197236,197238,197240,197242,197244,197246,197248,197250,197252,197254,197256],{"class":36,"line":88},[34,197230,197231],{"class":181},"    right ",[34,197233,1301],{"class":580},[34,197235,192534],{"class":181},[34,197237,10246],{"class":580},[34,197239,23172],{"class":181},[34,197241,10252],{"class":580},[34,197243,197211],{"class":181},[34,197245,22062],{"class":580},[34,197247,8318],{"class":50},[34,197249,17799],{"class":181},[34,197251,10383],{"class":580},[34,197253,23172],{"class":181},[34,197255,18401],{"class":580},[34,197257,197226],{"class":181},[34,197259,197260],{"class":36,"line":242},[34,197261,3666],{"class":181},[34,197263,197264,197266,197269,197271,197274,197276],{"class":36,"line":250},[34,197265,1564],{"class":580},[34,197267,197268],{"class":181}," quick_sort(left) ",[34,197270,2940],{"class":580},[34,197272,197273],{"class":181}," [pivot] ",[34,197275,2940],{"class":580},[34,197277,197278],{"class":181}," quick_sort(right)\n",[34,197280,197281],{"class":36,"line":263},[34,197282,62],{"emptyLinePlaceholder":61},[34,197284,197285],{"class":36,"line":275},[34,197286,197287],{"class":40},"# In-place Quick Sort\n",[34,197289,197290,197292,197295,197298,197300,197302,197305,197307,197309],{"class":36,"line":700},[34,197291,49400],{"class":580},[34,197293,197294],{"class":47}," quick_sort_in_place",[34,197296,197297],{"class":181},"(arr, low",[34,197299,1301],{"class":580},[34,197301,2773],{"class":50},[34,197303,197304],{"class":181},", high",[34,197306,1301],{"class":580},[34,197308,51018],{"class":50},[34,197310,51021],{"class":181},[34,197312,197313,197315,197317,197319,197321],{"class":36,"line":706},[34,197314,2902],{"class":580},[34,197316,63101],{"class":181},[34,197318,34798],{"class":580},[34,197320,53194],{"class":50},[34,197322,193],{"class":181},[34,197324,197325,197327,197329,197331,197333,197335],{"class":36,"line":715},[34,197326,63801],{"class":181},[34,197328,1301],{"class":580},[34,197330,21152],{"class":50},[34,197332,63606],{"class":181},[34,197334,22062],{"class":580},[34,197336,43446],{"class":50},[34,197338,197339],{"class":36,"line":725},[34,197340,3666],{"class":181},[34,197342,197343,197345,197347,197349],{"class":36,"line":734},[34,197344,2902],{"class":580},[34,197346,63088],{"class":181},[34,197348,815],{"class":580},[34,197350,63625],{"class":181},[34,197352,197353,197356,197358],{"class":36,"line":742},[34,197354,197355],{"class":181},"        pivot_index ",[34,197357,1301],{"class":580},[34,197359,195949],{"class":181},[34,197361,197362,197365,197367,197369],{"class":36,"line":748},[34,197363,197364],{"class":181},"        quick_sort_in_place(arr, low, pivot_index ",[34,197366,22062],{"class":580},[34,197368,3567],{"class":50},[34,197370,3372],{"class":181},[34,197372,197373,197376,197378,197380],{"class":36,"line":754},[34,197374,197375],{"class":181},"        quick_sort_in_place(arr, pivot_index ",[34,197377,2940],{"class":580},[34,197379,3567],{"class":50},[34,197381,63903],{"class":181},[34,197383,197384],{"class":36,"line":759},[34,197385,3666],{"class":181},[34,197387,197388,197390],{"class":36,"line":771},[34,197389,1564],{"class":580},[34,197391,195992],{"class":181},[34,197393,197394],{"class":36,"line":794},[34,197395,62],{"emptyLinePlaceholder":61},[34,197397,197398,197400,197402],{"class":36,"line":824},[34,197399,49400],{"class":580},[34,197401,195551],{"class":47},[34,197403,196985],{"class":181},[34,197405,197406,197408,197410],{"class":36,"line":830},[34,197407,197183],{"class":181},[34,197409,1301],{"class":580},[34,197411,196914],{"class":181},[34,197413,197414,197416,197418,197420,197422],{"class":36,"line":839},[34,197415,143095],{"class":181},[34,197417,1301],{"class":580},[34,197419,63088],{"class":181},[34,197421,22062],{"class":580},[34,197423,43446],{"class":50},[34,197425,197426],{"class":36,"line":854},[34,197427,3666],{"class":181},[34,197429,197430,197432,197434,197436,197438],{"class":36,"line":860},[34,197431,18250],{"class":580},[34,197433,72911],{"class":181},[34,197435,10252],{"class":580},[34,197437,104014],{"class":50},[34,197439,197440],{"class":181},"(low, high):\n",[34,197442,197443,197445,197448,197450],{"class":36,"line":865},[34,197444,49573],{"class":580},[34,197446,197447],{"class":181}," arr[j] ",[34,197449,815],{"class":580},[34,197451,197452],{"class":181}," pivot:\n",[34,197454,197455,197458,197460],{"class":36,"line":870},[34,197456,197457],{"class":181},"            i ",[34,197459,31462],{"class":580},[34,197461,43446],{"class":50},[34,197463,197464,197467,197469],{"class":36,"line":876},[34,197465,197466],{"class":181},"            arr[i], arr[j] ",[34,197468,1301],{"class":580},[34,197470,197471],{"class":181}," arr[j], arr[i]\n",[34,197473,197474],{"class":36,"line":885},[34,197475,3666],{"class":181},[34,197477,197478,197481,197483,197485,197488,197490,197493,197495,197497],{"class":36,"line":895},[34,197479,197480],{"class":181},"    arr[i ",[34,197482,2940],{"class":580},[34,197484,3567],{"class":50},[34,197486,197487],{"class":181},"], arr[high] ",[34,197489,1301],{"class":580},[34,197491,197492],{"class":181}," arr[high], arr[i ",[34,197494,2940],{"class":580},[34,197496,3567],{"class":50},[34,197498,924],{"class":181},[34,197500,197501,197503,197505,197507],{"class":36,"line":904},[34,197502,1564],{"class":580},[34,197504,10300],{"class":181},[34,197506,2940],{"class":580},[34,197508,43446],{"class":50},[388,197510,35226],{},{"title":30,"searchDepth":44,"depth":44,"links":197512},[197513],{"id":52900,"depth":44,"text":52856},"Python Implementation in Quick Sort.",{},{"title":52856,"description":197514},"quick-sort/python-implementation",[195831,195832,49923,65594],"tUbCikvVUuMRYdtsKBmNCe2UYdvyRLEi_vgBBeP3ZKk",{"id":197521,"title":196878,"body":197522,"date":402,"description":197536,"extension":404,"meta":197537,"navigation":61,"order":263,"path":196877,"seo":197538,"stem":197539,"subject":195829,"tags":197540,"__hash__":197541},"topics/quick-sort/quick-sort-vs-other-algorithms.md",{"type":8,"value":197523,"toc":197533},[197524,197527],[11,197525,196878],{"id":197526},"quick-sort-vs-other-algorithms",[25,197528,197531],{"className":197529,"code":197530,"language":780,"meta":30},[13703],"Algorithm      | Best      | Average   | Worst     | Space    | Stable\n---------------|-----------|-----------|-----------|----------|--------\nQuick Sort     | O(n log n)| O(n log n)| O(n²)     | O(log n) | No\nMerge Sort     | O(n log n)| O(n log n)| O(n log n)| O(n)     | Yes\nHeap Sort      | O(n log n)| O(n log n)| O(n log n)| O(1)     | No\nInsertion Sort | O(n)      | O(n²)     | O(n²)     | O(1)     | Yes\n\nWhen to use Quick Sort:\n  ✓ Average case performance matters most\n  ✓ Memory is limited (in-place sorting)\n  ✓ Cache performance is important\n  ✗ Stability is required (use Merge Sort)\n  ✗ Guaranteed O(n log n) needed (use Heap/Merge Sort)\n",[20,197532,197530],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":197534},[197535],{"id":197526,"depth":44,"text":196878},"Quick Sort vs Other Algorithms in Quick Sort.",{},{"title":196878,"description":197536},"quick-sort/quick-sort-vs-other-algorithms",[195831,195832,49923,65594],"e8ojQieKgezT0maNQYPe-_DlycnGLNQjMQiaAxcPe_8",{"id":197543,"title":196868,"body":197544,"date":402,"description":197744,"extension":404,"meta":197745,"navigation":61,"order":242,"path":196867,"seo":197746,"stem":197747,"subject":195829,"tags":197748,"__hash__":197749},"topics/quick-sort/three-way-partition-dutch-national-flag.md",{"type":8,"value":197545,"toc":197741},[197546,197549,197739],[11,197547,196868],{"id":197548},"three-way-partition-dutch-national-flag",[25,197550,197552],{"className":49386,"code":197551,"language":49388,"meta":30,"style":30},"# Handles duplicates efficiently - O(n) for arrays with many duplicates\ndef quick_sort_3way(arr, low, high):\n    if low >= high:\n        return\n    \n    lt, gt = low, high\n    pivot = arr[low]\n    i = low + 1\n    \n    while i \u003C= gt:\n        if arr[i] \u003C pivot:\n            arr[lt], arr[i] = arr[i], arr[lt]\n            lt += 1\n            i += 1\n        elif arr[i] > pivot:\n            arr[gt], arr[i] = arr[i], arr[gt]\n            gt -= 1\n        else:\n            i += 1\n    \n    quick_sort_3way(arr, low, lt - 1)\n    quick_sort_3way(arr, gt + 1, high)\n",[20,197553,197554,197559,197568,197578,197582,197586,197596,197604,197616,197620,197631,197642,197652,197661,197669,197679,197689,197699,197705,197713,197717,197728],{"__ignoreMap":30},[34,197555,197556],{"class":36,"line":37},[34,197557,197558],{"class":40},"# Handles duplicates efficiently - O(n) for arrays with many duplicates\n",[34,197560,197561,197563,197566],{"class":36,"line":44},[34,197562,49400],{"class":580},[34,197564,197565],{"class":47}," quick_sort_3way",[34,197567,196985],{"class":181},[34,197569,197570,197572,197574,197576],{"class":36,"line":58},[34,197571,2902],{"class":580},[34,197573,63088],{"class":181},[34,197575,18401],{"class":580},[34,197577,63625],{"class":181},[34,197579,197580],{"class":36,"line":65},[34,197581,88375],{"class":580},[34,197583,197584],{"class":36,"line":71},[34,197585,3666],{"class":181},[34,197587,197588,197591,197593],{"class":36,"line":77},[34,197589,197590],{"class":181},"    lt, gt ",[34,197592,1301],{"class":580},[34,197594,197595],{"class":181}," low, high\n",[34,197597,197598,197600,197602],{"class":36,"line":82},[34,197599,197183],{"class":181},[34,197601,1301],{"class":580},[34,197603,196931],{"class":181},[34,197605,197606,197608,197610,197612,197614],{"class":36,"line":88},[34,197607,143095],{"class":181},[34,197609,1301],{"class":580},[34,197611,63088],{"class":181},[34,197613,2940],{"class":580},[34,197615,43446],{"class":50},[34,197617,197618],{"class":36,"line":242},[34,197619,3666],{"class":181},[34,197621,197622,197624,197626,197628],{"class":36,"line":250},[34,197623,8098],{"class":580},[34,197625,10300],{"class":181},[34,197627,22032],{"class":580},[34,197629,197630],{"class":181}," gt:\n",[34,197632,197633,197635,197638,197640],{"class":36,"line":263},[34,197634,49573],{"class":580},[34,197636,197637],{"class":181}," arr[i] ",[34,197639,815],{"class":580},[34,197641,197452],{"class":181},[34,197643,197644,197647,197649],{"class":36,"line":275},[34,197645,197646],{"class":181},"            arr[lt], arr[i] ",[34,197648,1301],{"class":580},[34,197650,197651],{"class":181}," arr[i], arr[lt]\n",[34,197653,197654,197657,197659],{"class":36,"line":700},[34,197655,197656],{"class":181},"            lt ",[34,197658,31462],{"class":580},[34,197660,43446],{"class":50},[34,197662,197663,197665,197667],{"class":36,"line":706},[34,197664,197457],{"class":181},[34,197666,31462],{"class":580},[34,197668,43446],{"class":50},[34,197670,197671,197673,197675,197677],{"class":36,"line":715},[34,197672,63675],{"class":580},[34,197674,197637],{"class":181},[34,197676,5691],{"class":580},[34,197678,197452],{"class":181},[34,197680,197681,197684,197686],{"class":36,"line":725},[34,197682,197683],{"class":181},"            arr[gt], arr[i] ",[34,197685,1301],{"class":580},[34,197687,197688],{"class":181}," arr[i], arr[gt]\n",[34,197690,197691,197694,197697],{"class":36,"line":734},[34,197692,197693],{"class":181},"            gt ",[34,197695,197696],{"class":580},"-=",[34,197698,43446],{"class":50},[34,197700,197701,197703],{"class":36,"line":742},[34,197702,63702],{"class":580},[34,197704,193],{"class":181},[34,197706,197707,197709,197711],{"class":36,"line":748},[34,197708,197457],{"class":181},[34,197710,31462],{"class":580},[34,197712,43446],{"class":50},[34,197714,197715],{"class":36,"line":754},[34,197716,3666],{"class":181},[34,197718,197719,197722,197724,197726],{"class":36,"line":759},[34,197720,197721],{"class":181},"    quick_sort_3way(arr, low, lt ",[34,197723,22062],{"class":580},[34,197725,3567],{"class":50},[34,197727,3372],{"class":181},[34,197729,197730,197733,197735,197737],{"class":36,"line":771},[34,197731,197732],{"class":181},"    quick_sort_3way(arr, gt ",[34,197734,2940],{"class":580},[34,197736,3567],{"class":50},[34,197738,63903],{"class":181},[388,197740,35226],{},{"title":30,"searchDepth":44,"depth":44,"links":197742},[197743],{"id":197548,"depth":44,"text":196868},"Three-Way Partition (Dutch National Flag) in Quick Sort.",{},{"title":196868,"description":197744},"quick-sort/three-way-partition-dutch-national-flag",[195831,195832,49923,65594],"QF3hRH842PklX0IkY_b98L2dsKE6NEfDNz56TtvXkxk",{"id":197751,"title":52846,"body":197752,"date":402,"description":197765,"extension":404,"meta":197766,"navigation":61,"order":58,"path":196839,"seo":197767,"stem":197768,"subject":195829,"tags":197769,"__hash__":197770},"topics/quick-sort/time-space-complexity.md",{"type":8,"value":197753,"toc":197762},[197754,197756],[11,197755,52846],{"id":53480},[25,197757,197760],{"className":197758,"code":197759,"language":780,"meta":30},[13703],"Time Complexity:\n  - Best Case:    O(n log n)  - balanced partitions\n  - Average Case: O(n log n)  - random data\n  - Worst Case:   O(n²)       - already sorted or all equal\n\nSpace Complexity:\n  - O(log n) average - recursive call stack\n  - O(n) worst case  - unbalanced partitions\n\nQuick Sort is:\n  - Unstable (relative order of equal elements may change)\n  - In-place (only requires O(log n) extra space)\n  - Cache-friendly (good locality of reference)\n",[20,197761,197759],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":197763},[197764],{"id":53480,"depth":44,"text":52846},"Time & Space Complexity in Quick Sort.",{},{"title":52846,"description":197765},"quick-sort/time-space-complexity",[195831,195832,49923,65594],"fspu5K4iPkGWtrgqyevIBs8ygNSe12cs0zarTiPWp7w",{"id":197772,"title":197773,"body":197774,"date":402,"description":197784,"extension":404,"meta":197785,"navigation":61,"order":37,"path":197786,"seo":197787,"stem":197788,"subject":197789,"tags":197790,"__hash__":197791},"topics/qwik/overview.md","Qwik",{"type":8,"value":197775,"toc":197781},[197776,197778],[11,197777,14],{"id":13},[16,197779,197780],{},"Qwik is a fine-grained framework.",{"title":30,"searchDepth":44,"depth":44,"links":197782},[197783],{"id":13,"depth":44,"text":14},"Quick overview of Qwik framework and its modern web development approach.",{},"/qwik/overview",{"title":197773,"description":197784},"qwik/overview","qwik",[197789,8605,982,38615],"5fdig1EAkZk5qpC_H2kdZwYs4SJULi3WYP4zkBuL0kM",{"id":197793,"title":197794,"body":197795,"date":402,"description":198560,"extension":404,"meta":198561,"navigation":61,"order":37,"path":198562,"seo":198563,"stem":198564,"subject":198565,"tags":198566,"__hash__":198568},"topics/rabbitmq/overview.md","RabbitMQ",{"type":8,"value":197796,"toc":198552},[197797,197799,197880,197882,197888,197892,198083,198087,198321,198325,198501,198505,198550],[11,197798,97],{"id":96},[25,197800,197802],{"className":27,"code":197801,"language":29,"meta":30,"style":30},"# macOS\nbrew install rabbitmq\nbrew services start rabbitmq\n\n# Docker (easiest)\ndocker run -d --name rabbitmq \\\n  -p 5672:5672 -p 15672:15672 \\\n  rabbitmq:3-management\n\n# Management UI at http://localhost:15672 (guest/guest)\n",[20,197803,197804,197808,197817,197827,197831,197836,197851,197866,197871,197875],{"__ignoreMap":30},[34,197805,197806],{"class":36,"line":37},[34,197807,8625],{"class":40},[34,197809,197810,197812,197814],{"class":36,"line":44},[34,197811,115],{"class":47},[34,197813,118],{"class":54},[34,197815,197816],{"class":54}," rabbitmq\n",[34,197818,197819,197821,197823,197825],{"class":36,"line":58},[34,197820,115],{"class":47},[34,197822,92359],{"class":54},[34,197824,9677],{"class":54},[34,197826,197816],{"class":54},[34,197828,197829],{"class":36,"line":65},[34,197830,62],{"emptyLinePlaceholder":61},[34,197832,197833],{"class":36,"line":71},[34,197834,197835],{"class":40},"# Docker (easiest)\n",[34,197837,197838,197840,197842,197844,197846,197849],{"class":36,"line":77},[34,197839,55966],{"class":47},[34,197841,16017],{"class":54},[34,197843,9750],{"class":50},[34,197845,9535],{"class":50},[34,197847,197848],{"class":54}," rabbitmq",[34,197850,7186],{"class":50},[34,197852,197853,197856,197859,197861,197864],{"class":36,"line":82},[34,197854,197855],{"class":50},"  -p",[34,197857,197858],{"class":54}," 5672:5672",[34,197860,5275],{"class":50},[34,197862,197863],{"class":54}," 15672:15672",[34,197865,7186],{"class":50},[34,197867,197868],{"class":36,"line":88},[34,197869,197870],{"class":54},"  rabbitmq:3-management\n",[34,197872,197873],{"class":36,"line":242},[34,197874,62],{"emptyLinePlaceholder":61},[34,197876,197877],{"class":36,"line":250},[34,197878,197879],{"class":40},"# Management UI at http://localhost:15672 (guest/guest)\n",[11,197881,62663],{"id":62662},[25,197883,197886],{"className":197884,"code":197885,"language":780},[13703],"Producer → Exchange → Binding → Queue → Consumer\n\nExchange types:\n- direct   → route by exact routing key\n- fanout   → broadcast to all bound queues\n- topic    → route by pattern (e.g. \"orders.#\")\n- headers  → route by message headers\n",[20,197887,197885],{"__ignoreMap":30},[11,197889,197891],{"id":197890},"nodejs-client-amqplib","Node.js Client (amqplib)",[25,197893,197895],{"className":111475,"code":197894,"language":111477,"meta":30,"style":30},"import amqp from 'amqplib';\n\nconst conn = await amqp.connect('amqp://localhost');\nconst ch = await conn.createChannel();\n\nconst queue = 'tasks';\nawait ch.assertQueue(queue, { durable: true });\n\n// Producer: send a message\nch.sendToQueue(queue, Buffer.from('Hello!'), { persistent: true });\n\n// Consumer: receive messages\nawait ch.consume(queue, (msg) => {\n  console.log(msg.content.toString());\n  ch.ack(msg);   // acknowledge to remove from queue\n});\n",[20,197896,197897,197911,197915,197938,197957,197961,197974,197991,197995,198000,198024,198028,198033,198053,198066,198079],{"__ignoreMap":30},[34,197898,197899,197901,197904,197906,197909],{"class":36,"line":37},[34,197900,581],{"class":580},[34,197902,197903],{"class":181}," amqp ",[34,197905,587],{"class":580},[34,197907,197908],{"class":54}," 'amqplib'",[34,197910,593],{"class":181},[34,197912,197913],{"class":36,"line":44},[34,197914,62],{"emptyLinePlaceholder":61},[34,197916,197917,197919,197922,197924,197926,197929,197931,197933,197936],{"class":36,"line":58},[34,197918,14676],{"class":580},[34,197920,197921],{"class":50}," conn",[34,197923,683],{"class":580},[34,197925,14763],{"class":580},[34,197927,197928],{"class":181}," amqp.",[34,197930,148670],{"class":47},[34,197932,1607],{"class":181},[34,197934,197935],{"class":54},"'amqp://localhost'",[34,197937,1586],{"class":181},[34,197939,197940,197942,197945,197947,197949,197952,197955],{"class":36,"line":65},[34,197941,14676],{"class":580},[34,197943,197944],{"class":50}," ch",[34,197946,683],{"class":580},[34,197948,14763],{"class":580},[34,197950,197951],{"class":181}," conn.",[34,197953,197954],{"class":47},"createChannel",[34,197956,851],{"class":181},[34,197958,197959],{"class":36,"line":71},[34,197960,62],{"emptyLinePlaceholder":61},[34,197962,197963,197965,197967,197969,197972],{"class":36,"line":77},[34,197964,14676],{"class":580},[34,197966,65734],{"class":50},[34,197968,683],{"class":580},[34,197970,197971],{"class":54}," 'tasks'",[34,197973,593],{"class":181},[34,197975,197976,197978,197981,197984,197987,197989],{"class":36,"line":82},[34,197977,15062],{"class":580},[34,197979,197980],{"class":181}," ch.",[34,197982,197983],{"class":47},"assertQueue",[34,197985,197986],{"class":181},"(queue, { durable: ",[34,197988,632],{"class":50},[34,197990,15567],{"class":181},[34,197992,197993],{"class":36,"line":88},[34,197994,62],{"emptyLinePlaceholder":61},[34,197996,197997],{"class":36,"line":242},[34,197998,197999],{"class":40},"// Producer: send a message\n",[34,198001,198002,198005,198008,198011,198013,198015,198017,198020,198022],{"class":36,"line":250},[34,198003,198004],{"class":181},"ch.",[34,198006,198007],{"class":47},"sendToQueue",[34,198009,198010],{"class":181},"(queue, Buffer.",[34,198012,587],{"class":47},[34,198014,1607],{"class":181},[34,198016,156914],{"class":54},[34,198018,198019],{"class":181},"), { persistent: ",[34,198021,632],{"class":50},[34,198023,15567],{"class":181},[34,198025,198026],{"class":36,"line":263},[34,198027,62],{"emptyLinePlaceholder":61},[34,198029,198030],{"class":36,"line":275},[34,198031,198032],{"class":40},"// Consumer: receive messages\n",[34,198034,198035,198037,198039,198042,198045,198047,198049,198051],{"class":36,"line":700},[34,198036,15062],{"class":580},[34,198038,197980],{"class":181},[34,198040,198041],{"class":47},"consume",[34,198043,198044],{"class":181},"(queue, (",[34,198046,35213],{"class":675},[34,198048,4817],{"class":181},[34,198050,3361],{"class":580},[34,198052,661],{"class":181},[34,198054,198055,198057,198059,198062,198064],{"class":36,"line":706},[34,198056,14929],{"class":181},[34,198058,2424],{"class":47},[34,198060,198061],{"class":181},"(msg.content.",[34,198063,13938],{"class":47},[34,198065,4343],{"class":181},[34,198067,198068,198071,198073,198076],{"class":36,"line":715},[34,198069,198070],{"class":181},"  ch.",[34,198072,109555],{"class":47},[34,198074,198075],{"class":181},"(msg);   ",[34,198077,198078],{"class":40},"// acknowledge to remove from queue\n",[34,198080,198081],{"class":36,"line":725},[34,198082,14873],{"class":181},[11,198084,198086],{"id":198085},"exchanges","Exchanges",[25,198088,198090],{"className":111475,"code":198089,"language":111477,"meta":30,"style":30},"// Fanout exchange (broadcast)\nawait ch.assertExchange('logs', 'fanout', { durable: false });\nch.publish('logs', '', Buffer.from('log message'));\n\n// Direct exchange (routing key)\nawait ch.assertExchange('direct_logs', 'direct', { durable: false });\nch.publish('direct_logs', 'error', Buffer.from('error log'));\n\n// Topic exchange (pattern routing)\nawait ch.assertExchange('topic_logs', 'topic', { durable: false });\nch.publish('topic_logs', 'kern.critical', Buffer.from('kernel error'));\n\n// Subscribe to topic\nconst q = await ch.assertQueue('', { exclusive: true });\nch.bindQueue(q.queue, 'topic_logs', 'kern.*');\n",[20,198091,198092,198097,198123,198149,198153,198158,198182,198208,198212,198217,198241,198267,198271,198276,198302],{"__ignoreMap":30},[34,198093,198094],{"class":36,"line":37},[34,198095,198096],{"class":40},"// Fanout exchange (broadcast)\n",[34,198098,198099,198101,198103,198106,198108,198111,198113,198116,198119,198121],{"class":36,"line":44},[34,198100,15062],{"class":580},[34,198102,197980],{"class":181},[34,198104,198105],{"class":47},"assertExchange",[34,198107,1607],{"class":181},[34,198109,198110],{"class":54},"'logs'",[34,198112,1798],{"class":181},[34,198114,198115],{"class":54},"'fanout'",[34,198117,198118],{"class":181},", { durable: ",[34,198120,103387],{"class":50},[34,198122,15567],{"class":181},[34,198124,198125,198127,198129,198131,198133,198135,198137,198140,198142,198144,198147],{"class":36,"line":58},[34,198126,198004],{"class":181},[34,198128,98941],{"class":47},[34,198130,1607],{"class":181},[34,198132,198110],{"class":54},[34,198134,1798],{"class":181},[34,198136,3151],{"class":54},[34,198138,198139],{"class":181},", Buffer.",[34,198141,587],{"class":47},[34,198143,1607],{"class":181},[34,198145,198146],{"class":54},"'log message'",[34,198148,15223],{"class":181},[34,198150,198151],{"class":36,"line":65},[34,198152,62],{"emptyLinePlaceholder":61},[34,198154,198155],{"class":36,"line":71},[34,198156,198157],{"class":40},"// Direct exchange (routing key)\n",[34,198159,198160,198162,198164,198166,198168,198171,198173,198176,198178,198180],{"class":36,"line":77},[34,198161,15062],{"class":580},[34,198163,197980],{"class":181},[34,198165,198105],{"class":47},[34,198167,1607],{"class":181},[34,198169,198170],{"class":54},"'direct_logs'",[34,198172,1798],{"class":181},[34,198174,198175],{"class":54},"'direct'",[34,198177,198118],{"class":181},[34,198179,103387],{"class":50},[34,198181,15567],{"class":181},[34,198183,198184,198186,198188,198190,198192,198194,198197,198199,198201,198203,198206],{"class":36,"line":82},[34,198185,198004],{"class":181},[34,198187,98941],{"class":47},[34,198189,1607],{"class":181},[34,198191,198170],{"class":54},[34,198193,1798],{"class":181},[34,198195,198196],{"class":54},"'error'",[34,198198,198139],{"class":181},[34,198200,587],{"class":47},[34,198202,1607],{"class":181},[34,198204,198205],{"class":54},"'error log'",[34,198207,15223],{"class":181},[34,198209,198210],{"class":36,"line":88},[34,198211,62],{"emptyLinePlaceholder":61},[34,198213,198214],{"class":36,"line":242},[34,198215,198216],{"class":40},"// Topic exchange (pattern routing)\n",[34,198218,198219,198221,198223,198225,198227,198230,198232,198235,198237,198239],{"class":36,"line":250},[34,198220,15062],{"class":580},[34,198222,197980],{"class":181},[34,198224,198105],{"class":47},[34,198226,1607],{"class":181},[34,198228,198229],{"class":54},"'topic_logs'",[34,198231,1798],{"class":181},[34,198233,198234],{"class":54},"'topic'",[34,198236,198118],{"class":181},[34,198238,103387],{"class":50},[34,198240,15567],{"class":181},[34,198242,198243,198245,198247,198249,198251,198253,198256,198258,198260,198262,198265],{"class":36,"line":263},[34,198244,198004],{"class":181},[34,198246,98941],{"class":47},[34,198248,1607],{"class":181},[34,198250,198229],{"class":54},[34,198252,1798],{"class":181},[34,198254,198255],{"class":54},"'kern.critical'",[34,198257,198139],{"class":181},[34,198259,587],{"class":47},[34,198261,1607],{"class":181},[34,198263,198264],{"class":54},"'kernel error'",[34,198266,15223],{"class":181},[34,198268,198269],{"class":36,"line":275},[34,198270,62],{"emptyLinePlaceholder":61},[34,198272,198273],{"class":36,"line":700},[34,198274,198275],{"class":40},"// Subscribe to topic\n",[34,198277,198278,198280,198283,198285,198287,198289,198291,198293,198295,198298,198300],{"class":36,"line":706},[34,198279,14676],{"class":580},[34,198281,198282],{"class":50}," q",[34,198284,683],{"class":580},[34,198286,14763],{"class":580},[34,198288,197980],{"class":181},[34,198290,197983],{"class":47},[34,198292,1607],{"class":181},[34,198294,3151],{"class":54},[34,198296,198297],{"class":181},", { exclusive: ",[34,198299,632],{"class":50},[34,198301,15567],{"class":181},[34,198303,198304,198306,198309,198312,198314,198316,198319],{"class":36,"line":715},[34,198305,198004],{"class":181},[34,198307,198308],{"class":47},"bindQueue",[34,198310,198311],{"class":181},"(q.queue, ",[34,198313,198229],{"class":54},[34,198315,1798],{"class":181},[34,198317,198318],{"class":54},"'kern.*'",[34,198320,1586],{"class":181},[11,198322,198324],{"id":198323},"acknowledgements-dead-letter","Acknowledgements & Dead Letter",[25,198326,198328],{"className":111475,"code":198327,"language":111477,"meta":30,"style":30},"// Manual ack (default prefetch 1 = fair dispatch)\nawait ch.prefetch(1);\nch.consume(queue, async (msg) => {\n  try {\n    await processMessage(msg);\n    ch.ack(msg);\n  } catch (err) {\n    ch.nack(msg, false, false);  // reject, don't requeue → dead letter\n  }\n});\n\n// Dead letter queue setup\nawait ch.assertQueue('tasks', {\n  durable: true,\n  arguments: {\n    'x-dead-letter-exchange': 'dlx',\n    'x-message-ttl': 30000,\n  }\n});\n",[20,198329,198330,198335,198350,198371,198377,198386,198395,198403,198424,198428,198432,198436,198441,198456,198465,198470,198482,198493,198497],{"__ignoreMap":30},[34,198331,198332],{"class":36,"line":37},[34,198333,198334],{"class":40},"// Manual ack (default prefetch 1 = fair dispatch)\n",[34,198336,198337,198339,198341,198344,198346,198348],{"class":36,"line":44},[34,198338,15062],{"class":580},[34,198340,197980],{"class":181},[34,198342,198343],{"class":47},"prefetch",[34,198345,1607],{"class":181},[34,198347,8318],{"class":50},[34,198349,1586],{"class":181},[34,198351,198352,198354,198356,198359,198361,198363,198365,198367,198369],{"class":36,"line":58},[34,198353,198004],{"class":181},[34,198355,198041],{"class":47},[34,198357,198358],{"class":181},"(queue, ",[34,198360,17403],{"class":580},[34,198362,3204],{"class":181},[34,198364,35213],{"class":675},[34,198366,4817],{"class":181},[34,198368,3361],{"class":580},[34,198370,661],{"class":181},[34,198372,198373,198375],{"class":36,"line":65},[34,198374,126372],{"class":580},[34,198376,661],{"class":181},[34,198378,198379,198381,198384],{"class":36,"line":71},[34,198380,33955],{"class":580},[34,198382,198383],{"class":47}," processMessage",[34,198385,35014],{"class":181},[34,198387,198388,198391,198393],{"class":36,"line":77},[34,198389,198390],{"class":181},"    ch.",[34,198392,109555],{"class":47},[34,198394,35014],{"class":181},[34,198396,198397,198399,198401],{"class":36,"line":82},[34,198398,126416],{"class":181},[34,198400,30851],{"class":580},[34,198402,20576],{"class":181},[34,198404,198405,198407,198410,198413,198415,198417,198419,198421],{"class":36,"line":88},[34,198406,198390],{"class":181},[34,198408,198409],{"class":47},"nack",[34,198411,198412],{"class":181},"(msg, ",[34,198414,103387],{"class":50},[34,198416,1798],{"class":181},[34,198418,103387],{"class":50},[34,198420,33489],{"class":181},[34,198422,198423],{"class":40},"// reject, don't requeue → dead letter\n",[34,198425,198426],{"class":36,"line":242},[34,198427,857],{"class":181},[34,198429,198430],{"class":36,"line":250},[34,198431,14873],{"class":181},[34,198433,198434],{"class":36,"line":263},[34,198435,62],{"emptyLinePlaceholder":61},[34,198437,198438],{"class":36,"line":275},[34,198439,198440],{"class":40},"// Dead letter queue setup\n",[34,198442,198443,198445,198447,198449,198451,198454],{"class":36,"line":700},[34,198444,15062],{"class":580},[34,198446,197980],{"class":181},[34,198448,197983],{"class":47},[34,198450,1607],{"class":181},[34,198452,198453],{"class":54},"'tasks'",[34,198455,14820],{"class":181},[34,198457,198458,198461,198463],{"class":36,"line":706},[34,198459,198460],{"class":181},"  durable: ",[34,198462,632],{"class":50},[34,198464,624],{"class":181},[34,198466,198467],{"class":36,"line":715},[34,198468,198469],{"class":181},"  arguments: {\n",[34,198471,198472,198475,198477,198480],{"class":36,"line":725},[34,198473,198474],{"class":54},"    'x-dead-letter-exchange'",[34,198476,182],{"class":181},[34,198478,198479],{"class":54},"'dlx'",[34,198481,624],{"class":181},[34,198483,198484,198487,198489,198491],{"class":36,"line":734},[34,198485,198486],{"class":54},"    'x-message-ttl'",[34,198488,182],{"class":181},[34,198490,179504],{"class":50},[34,198492,624],{"class":181},[34,198494,198495],{"class":36,"line":742},[34,198496,857],{"class":181},[34,198498,198499],{"class":36,"line":748},[34,198500,14873],{"class":181},[11,198502,198504],{"id":198503},"cli-management","CLI Management",[25,198506,198508],{"className":27,"code":198507,"language":29,"meta":30,"style":30},"rabbitmqctl list_queues name messages\nrabbitmqctl list_exchanges\nrabbitmqctl purge_queue my-queue\nrabbitmq-plugins enable rabbitmq_management\n",[20,198509,198510,198523,198530,198540],{"__ignoreMap":30},[34,198511,198512,198515,198518,198520],{"class":36,"line":37},[34,198513,198514],{"class":47},"rabbitmqctl",[34,198516,198517],{"class":54}," list_queues",[34,198519,12323],{"class":54},[34,198521,198522],{"class":54}," messages\n",[34,198524,198525,198527],{"class":36,"line":44},[34,198526,198514],{"class":47},[34,198528,198529],{"class":54}," list_exchanges\n",[34,198531,198532,198534,198537],{"class":36,"line":58},[34,198533,198514],{"class":47},[34,198535,198536],{"class":54}," purge_queue",[34,198538,198539],{"class":54}," my-queue\n",[34,198541,198542,198545,198547],{"class":36,"line":65},[34,198543,198544],{"class":47},"rabbitmq-plugins",[34,198546,93273],{"class":54},[34,198548,198549],{"class":54}," rabbitmq_management\n",[388,198551,127262],{},{"title":30,"searchDepth":44,"depth":44,"links":198553},[198554,198555,198556,198557,198558,198559],{"id":96,"depth":44,"text":97},{"id":62662,"depth":44,"text":62663},{"id":197890,"depth":44,"text":197891},{"id":198085,"depth":44,"text":198086},{"id":198323,"depth":44,"text":198324},{"id":198503,"depth":44,"text":198504},"A reliable, feature-rich open-source message broker supporting AMQP, MQTT, and STOMP.",{},"/rabbitmq/overview",{"title":197794,"description":198560},"rabbitmq/overview","rabbitmq",[198565,130359,198567,140775,112303],"amqp","jJMYbnwJOkl4vfcSpW2RClgQ8dNWycoBRCaAKs0vSrw",{"id":198570,"title":198571,"body":198572,"date":402,"description":198684,"extension":404,"meta":198685,"navigation":61,"order":37,"path":198686,"seo":198687,"stem":198688,"subject":198604,"tags":198689,"__hash__":198690},"topics/racket/overview.md","Racket Basics",{"type":8,"value":198573,"toc":198679},[198574,198578,198581,198607,198609,198612,198638,198640,198643,198677],[11,198575,198577],{"id":198576},"installing-racket","Installing Racket",[16,198579,198580],{},"Download and install Racket from the official website.",[25,198582,198584],{"className":27,"code":198583,"language":29,"meta":30,"style":30},"# On Ubuntu\napt-get install racket\nracket --version\n",[20,198585,198586,198590,198600],{"__ignoreMap":30},[34,198587,198588],{"class":36,"line":37},[34,198589,33127],{"class":40},[34,198591,198592,198595,198597],{"class":36,"line":44},[34,198593,198594],{"class":47},"apt-get",[34,198596,118],{"class":54},[34,198598,198599],{"class":54}," racket\n",[34,198601,198602,198605],{"class":36,"line":58},[34,198603,198604],{"class":47},"racket",[34,198606,5013],{"class":50},[11,198608,33160],{"id":33159},[16,198610,198611],{},"Racket uses Lisp-like s-expressions.",[25,198613,198616],{"className":198614,"code":198615,"language":198604,"meta":30,"style":30},"language-racket shiki shiki-themes github-light github-dark","#lang racket\n(define (add a b)\n  (+ a b))\n(displayln (add 2 3))\n",[20,198617,198618,198623,198628,198633],{"__ignoreMap":30},[34,198619,198620],{"class":36,"line":37},[34,198621,198622],{},"#lang racket\n",[34,198624,198625],{"class":36,"line":44},[34,198626,198627],{},"(define (add a b)\n",[34,198629,198630],{"class":36,"line":58},[34,198631,198632],{},"  (+ a b))\n",[34,198634,198635],{"class":36,"line":65},[34,198636,198637],{},"(displayln (add 2 3))\n",[11,198639,88402],{"id":88401},[16,198641,198642],{},"Modules let you organize code.",[25,198644,198646],{"className":198614,"code":198645,"language":198604,"meta":30,"style":30},"(module math-module racket\n  (provide add)\n  (define (add a b) (+ a b)))\n\n(require 'math-module)\n(displayln (add 4 5))\n",[20,198647,198648,198653,198658,198663,198667,198672],{"__ignoreMap":30},[34,198649,198650],{"class":36,"line":37},[34,198651,198652],{},"(module math-module racket\n",[34,198654,198655],{"class":36,"line":44},[34,198656,198657],{},"  (provide add)\n",[34,198659,198660],{"class":36,"line":58},[34,198661,198662],{},"  (define (add a b) (+ a b)))\n",[34,198664,198665],{"class":36,"line":65},[34,198666,62],{"emptyLinePlaceholder":61},[34,198668,198669],{"class":36,"line":71},[34,198670,198671],{},"(require 'math-module)\n",[34,198673,198674],{"class":36,"line":77},[34,198675,198676],{},"(displayln (add 4 5))\n",[388,198678,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":198680},[198681,198682,198683],{"id":198576,"depth":44,"text":198577},{"id":33159,"depth":44,"text":33160},{"id":88401,"depth":44,"text":88402},"Learn the syntax, macros, and modules of Racket programming.",{},"/racket/overview",{"title":198571,"description":198684},"racket/overview",[198604,26847,88401,24666,33297],"OxCi49iYCn1VKPOkTe9YifpEV83RRzlRj2nIkKs9jvg",{"id":198692,"title":198693,"body":198694,"date":402,"description":198949,"extension":404,"meta":198950,"navigation":61,"order":37,"path":198951,"seo":198952,"stem":198953,"subject":198954,"tags":198955,"__hash__":198959},"topics/radix-ui/overview.md","Radix UI",{"type":8,"value":198695,"toc":198935},[198696,198698,198701,198703,198707,198720,198724,198729,198731,198736,198738,198742,198798,198801,198865,198869,198918,198922,198933],[11,198697,13534],{"id":13533},[16,198699,198700],{},"Radix UI provides reusable React components that prioritize accessibility, unstyled presentation, and composability, making it easy to create robust design systems and web applications.",[11,198702,8498],{"id":8497},[102,198704,198706],{"id":198705},"accessibility","Accessibility",[309,198708,198709,198717],{},[312,198710,198711,198712,151],{},"All components are built to meet ",[145,198713,198716],{"href":198714,"rel":198715},"https://www.w3.org/WAI/standards-guidelines/aria/",[149],"WAI-ARIA standards",[312,198718,198719],{},"Ensures screen-reader compatibility and keyboard-friendly navigation.",[102,198721,198723],{"id":198722},"unstyled-primitives","Unstyled Primitives",[309,198725,198726],{},[312,198727,198728],{},"Components come without pre-applied styles, giving developers flexibility to customize designs fully to their needs.",[102,198730,60783],{"id":60782},[309,198732,198733],{},[312,198734,198735],{},"Designed for easy composition and extension with other components.",[11,198737,59741],{"id":130077},[102,198739,198741],{"id":198740},"accordion","Accordion",[25,198743,198747],{"className":198744,"code":198745,"language":198746,"meta":30,"style":30},"language-tsx shiki shiki-themes github-light github-dark","import * as Accordion from '@radix-ui/react-accordion';\n\n\u003CAccordion.Root type=\"single\" collapsible>\n  \u003CAccordion.Item value=\"item-1\">\n    \u003CAccordion.Header>\n      \u003CAccordion.Trigger>Item 1\u003C/Accordion.Trigger>\n    \u003C/Accordion.Header>\n    \u003CAccordion.Content>Content for item 1\u003C/Accordion.Content>\n  \u003C/Accordion.Item>\n\u003C/Accordion.Root>\n","tsx",[20,198748,198749,198754,198758,198763,198768,198773,198778,198783,198788,198793],{"__ignoreMap":30},[34,198750,198751],{"class":36,"line":37},[34,198752,198753],{},"import * as Accordion from '@radix-ui/react-accordion';\n",[34,198755,198756],{"class":36,"line":44},[34,198757,62],{"emptyLinePlaceholder":61},[34,198759,198760],{"class":36,"line":58},[34,198761,198762],{},"\u003CAccordion.Root type=\"single\" collapsible>\n",[34,198764,198765],{"class":36,"line":65},[34,198766,198767],{},"  \u003CAccordion.Item value=\"item-1\">\n",[34,198769,198770],{"class":36,"line":71},[34,198771,198772],{},"    \u003CAccordion.Header>\n",[34,198774,198775],{"class":36,"line":77},[34,198776,198777],{},"      \u003CAccordion.Trigger>Item 1\u003C/Accordion.Trigger>\n",[34,198779,198780],{"class":36,"line":82},[34,198781,198782],{},"    \u003C/Accordion.Header>\n",[34,198784,198785],{"class":36,"line":88},[34,198786,198787],{},"    \u003CAccordion.Content>Content for item 1\u003C/Accordion.Content>\n",[34,198789,198790],{"class":36,"line":242},[34,198791,198792],{},"  \u003C/Accordion.Item>\n",[34,198794,198795],{"class":36,"line":250},[34,198796,198797],{},"\u003C/Accordion.Root>\n",[102,198799,198800],{"id":117524},"Dialog",[25,198802,198804],{"className":198744,"code":198803,"language":198746,"meta":30,"style":30},"import * as Dialog from '@radix-ui/react-dialog';\n\n\u003CDialog.Root>\n  \u003CDialog.Trigger>Open Dialog\u003C/Dialog.Trigger>\n  \u003CDialog.Portal>\n    \u003CDialog.Overlay />\n    \u003CDialog.Content>\n      \u003CDialog.Title>Title\u003C/Dialog.Title>\n      \u003CDialog.Description>Description content here\u003C/Dialog.Description>\n    \u003C/Dialog.Content>\n  \u003C/Dialog.Portal>\n\u003C/Dialog.Root>\n",[20,198805,198806,198811,198815,198820,198825,198830,198835,198840,198845,198850,198855,198860],{"__ignoreMap":30},[34,198807,198808],{"class":36,"line":37},[34,198809,198810],{},"import * as Dialog from '@radix-ui/react-dialog';\n",[34,198812,198813],{"class":36,"line":44},[34,198814,62],{"emptyLinePlaceholder":61},[34,198816,198817],{"class":36,"line":58},[34,198818,198819],{},"\u003CDialog.Root>\n",[34,198821,198822],{"class":36,"line":65},[34,198823,198824],{},"  \u003CDialog.Trigger>Open Dialog\u003C/Dialog.Trigger>\n",[34,198826,198827],{"class":36,"line":71},[34,198828,198829],{},"  \u003CDialog.Portal>\n",[34,198831,198832],{"class":36,"line":77},[34,198833,198834],{},"    \u003CDialog.Overlay />\n",[34,198836,198837],{"class":36,"line":82},[34,198838,198839],{},"    \u003CDialog.Content>\n",[34,198841,198842],{"class":36,"line":88},[34,198843,198844],{},"      \u003CDialog.Title>Title\u003C/Dialog.Title>\n",[34,198846,198847],{"class":36,"line":242},[34,198848,198849],{},"      \u003CDialog.Description>Description content here\u003C/Dialog.Description>\n",[34,198851,198852],{"class":36,"line":250},[34,198853,198854],{},"    \u003C/Dialog.Content>\n",[34,198856,198857],{"class":36,"line":263},[34,198858,198859],{},"  \u003C/Dialog.Portal>\n",[34,198861,198862],{"class":36,"line":275},[34,198863,198864],{},"\u003C/Dialog.Root>\n",[102,198866,198868],{"id":198867},"dropdown-menu","Dropdown Menu",[25,198870,198872],{"className":198744,"code":198871,"language":198746,"meta":30,"style":30},"import * as DropdownMenu from '@radix-ui/react-dropdown-menu';\n\n\u003CDropdownMenu.Root>\n  \u003CDropdownMenu.Trigger>Options\u003C/DropdownMenu.Trigger>\n  \u003CDropdownMenu.Content>\n    \u003CDropdownMenu.Item>New Window\u003C/DropdownMenu.Item>\n    \u003CDropdownMenu.Item>Preferences\u003C/DropdownMenu.Item>\n  \u003C/DropdownMenu.Content>\n\u003C/DropdownMenu.Root>\n",[20,198873,198874,198879,198883,198888,198893,198898,198903,198908,198913],{"__ignoreMap":30},[34,198875,198876],{"class":36,"line":37},[34,198877,198878],{},"import * as DropdownMenu from '@radix-ui/react-dropdown-menu';\n",[34,198880,198881],{"class":36,"line":44},[34,198882,62],{"emptyLinePlaceholder":61},[34,198884,198885],{"class":36,"line":58},[34,198886,198887],{},"\u003CDropdownMenu.Root>\n",[34,198889,198890],{"class":36,"line":65},[34,198891,198892],{},"  \u003CDropdownMenu.Trigger>Options\u003C/DropdownMenu.Trigger>\n",[34,198894,198895],{"class":36,"line":71},[34,198896,198897],{},"  \u003CDropdownMenu.Content>\n",[34,198899,198900],{"class":36,"line":77},[34,198901,198902],{},"    \u003CDropdownMenu.Item>New Window\u003C/DropdownMenu.Item>\n",[34,198904,198905],{"class":36,"line":82},[34,198906,198907],{},"    \u003CDropdownMenu.Item>Preferences\u003C/DropdownMenu.Item>\n",[34,198909,198910],{"class":36,"line":88},[34,198911,198912],{},"  \u003C/DropdownMenu.Content>\n",[34,198914,198915],{"class":36,"line":242},[34,198916,198917],{},"\u003C/DropdownMenu.Root>\n",[11,198919,198921],{"id":198920},"why-use-radix-ui","Why Use Radix UI",[309,198923,198924,198927,198930],{},[312,198925,198926],{},"Reduces development overhead in creating accessible components.",[312,198928,198929],{},"Saves time in tackling undifferentiated design challenges.",[312,198931,198932],{},"Encourages better practices in UI development through a modular and minimalistic approach.",[388,198934,25387],{},{"title":30,"searchDepth":44,"depth":44,"links":198936},[198937,198938,198943,198948],{"id":13533,"depth":44,"text":13534},{"id":8497,"depth":44,"text":8498,"children":198939},[198940,198941,198942],{"id":198705,"depth":58,"text":198706},{"id":198722,"depth":58,"text":198723},{"id":60782,"depth":58,"text":60783},{"id":130077,"depth":44,"text":59741,"children":198944},[198945,198946,198947],{"id":198740,"depth":58,"text":198741},{"id":117524,"depth":58,"text":198800},{"id":198867,"depth":58,"text":198868},{"id":198920,"depth":44,"text":198921},"Core building blocks for accessible, unstyled, and scalable React primitives.",{},"/radix-ui/overview",{"title":198693,"description":198949},"radix-ui/overview","radix-ui",[86172,130077,198956,198957,198958],"primitives","accessible","design-systems","u706NUmyAT6mlo9MxArCx5-evLsjNed4Q8wDUEgxlGU",{"id":198961,"title":563,"body":198962,"date":402,"description":199208,"extension":404,"meta":199209,"navigation":61,"order":44,"path":199210,"seo":199211,"stem":199212,"subject":86172,"tags":199213,"__hash__":199214},"topics/react/component-basics.md",{"type":8,"value":198963,"toc":199205},[198964,198966,199202],[11,198965,563],{"id":568},[25,198967,198971],{"className":198968,"code":198969,"language":198970,"meta":30,"style":30},"language-jsx shiki shiki-themes github-light github-dark","// Functional Component\nfunction Greeting({ name }) {\n  return \u003Ch1>Hello, {name}!\u003C/h1>;\n}\n\n// Arrow Function Component\nconst Greeting = ({ name }) => {\n  return \u003Ch1>Hello, {name}!\u003C/h1>;\n};\n\n// With default props\nconst Button = ({ text = 'Click me', onClick }) => {\n  return \u003Cbutton onClick={onClick}>{text}\u003C/button>;\n};\n\n// Children prop\nconst Card = ({ children, title }) => {\n  return (\n    \u003Cdiv className=\"card\">\n      \u003Ch2>{title}\u003C/h2>\n      {children}\n    \u003C/div>\n  );\n};\n","jsx",[20,198972,198973,198978,198991,199006,199010,199014,199019,199037,199051,199055,199059,199064,199092,199111,199115,199119,199124,199146,199152,199168,199181,199186,199194,199198],{"__ignoreMap":30},[34,198974,198975],{"class":36,"line":37},[34,198976,198977],{"class":40},"// Functional Component\n",[34,198979,198980,198982,198985,198987,198989],{"class":36,"line":44},[34,198981,11044],{"class":580},[34,198983,198984],{"class":47}," Greeting",[34,198986,13858],{"class":181},[34,198988,178],{"class":675},[34,198990,13879],{"class":181},[34,198992,198993,198995,198997,198999,199002,199004],{"class":36,"line":58},[34,198994,8155],{"class":580},[34,198996,5470],{"class":181},[34,198998,8535],{"class":177},[34,199000,199001],{"class":181},">Hello, {name}!\u003C/",[34,199003,8535],{"class":177},[34,199005,4834],{"class":181},[34,199007,199008],{"class":36,"line":65},[34,199009,693],{"class":181},[34,199011,199012],{"class":36,"line":71},[34,199013,62],{"emptyLinePlaceholder":61},[34,199015,199016],{"class":36,"line":77},[34,199017,199018],{"class":40},"// Arrow Function Component\n",[34,199020,199021,199023,199025,199027,199029,199031,199033,199035],{"class":36,"line":82},[34,199022,14676],{"class":580},[34,199024,198984],{"class":47},[34,199026,683],{"class":580},[34,199028,59905],{"class":181},[34,199030,178],{"class":675},[34,199032,59911],{"class":181},[34,199034,3361],{"class":580},[34,199036,661],{"class":181},[34,199038,199039,199041,199043,199045,199047,199049],{"class":36,"line":88},[34,199040,8155],{"class":580},[34,199042,5470],{"class":181},[34,199044,8535],{"class":177},[34,199046,199001],{"class":181},[34,199048,8535],{"class":177},[34,199050,4834],{"class":181},[34,199052,199053],{"class":36,"line":242},[34,199054,17632],{"class":181},[34,199056,199057],{"class":36,"line":250},[34,199058,62],{"emptyLinePlaceholder":61},[34,199060,199061],{"class":36,"line":263},[34,199062,199063],{"class":40},"// With default props\n",[34,199065,199066,199068,199071,199073,199075,199077,199079,199081,199083,199086,199088,199090],{"class":36,"line":275},[34,199067,14676],{"class":580},[34,199069,199070],{"class":47}," Button",[34,199072,683],{"class":580},[34,199074,59905],{"class":181},[34,199076,780],{"class":675},[34,199078,683],{"class":580},[34,199080,789],{"class":54},[34,199082,1798],{"class":181},[34,199084,199085],{"class":675},"onClick",[34,199087,59911],{"class":181},[34,199089,3361],{"class":580},[34,199091,661],{"class":181},[34,199093,199094,199096,199098,199100,199102,199104,199107,199109],{"class":36,"line":700},[34,199095,8155],{"class":580},[34,199097,5470],{"class":181},[34,199099,4509],{"class":177},[34,199101,85667],{"class":47},[34,199103,1301],{"class":580},[34,199105,199106],{"class":181},"{onClick}>{text}\u003C/",[34,199108,4509],{"class":177},[34,199110,4834],{"class":181},[34,199112,199113],{"class":36,"line":706},[34,199114,17632],{"class":181},[34,199116,199117],{"class":36,"line":715},[34,199118,62],{"emptyLinePlaceholder":61},[34,199120,199121],{"class":36,"line":725},[34,199122,199123],{"class":40},"// Children prop\n",[34,199125,199126,199128,199130,199132,199134,199136,199138,199140,199142,199144],{"class":36,"line":734},[34,199127,14676],{"class":580},[34,199129,59900],{"class":47},[34,199131,683],{"class":580},[34,199133,59905],{"class":181},[34,199135,59908],{"class":675},[34,199137,1798],{"class":181},[34,199139,953],{"class":675},[34,199141,59911],{"class":181},[34,199143,3361],{"class":580},[34,199145,661],{"class":181},[34,199147,199148,199150],{"class":36,"line":742},[34,199149,8155],{"class":580},[34,199151,13975],{"class":181},[34,199153,199154,199156,199158,199161,199163,199166],{"class":36,"line":748},[34,199155,1294],{"class":181},[34,199157,1240],{"class":177},[34,199159,199160],{"class":47}," className",[34,199162,1301],{"class":580},[34,199164,199165],{"class":54},"\"card\"",[34,199167,1248],{"class":181},[34,199169,199170,199172,199174,199177,199179],{"class":36,"line":754},[34,199171,85662],{"class":181},[34,199173,11],{"class":177},[34,199175,199176],{"class":181},">{title}\u003C/",[34,199178,11],{"class":177},[34,199180,1248],{"class":181},[34,199182,199183],{"class":36,"line":759},[34,199184,199185],{"class":181},"      {children}\n",[34,199187,199188,199190,199192],{"class":36,"line":771},[34,199189,74431],{"class":181},[34,199191,1240],{"class":177},[34,199193,1248],{"class":181},[34,199195,199196],{"class":36,"line":794},[34,199197,61002],{"class":181},[34,199199,199200],{"class":36,"line":824},[34,199201,17632],{"class":181},[388,199203,199204],{},"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 .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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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);}",{"title":30,"searchDepth":44,"depth":44,"links":199206},[199207],{"id":568,"depth":44,"text":563},"Component Basics in React.",{},"/react/component-basics",{"title":563,"description":199208},"react/component-basics",[86172,8606,982,120402],"2hwfEX1uW77OtkVhfEawqqayBWoDsEtX5aGLnoqU7Qw",{"id":199216,"title":199217,"body":199218,"date":402,"description":199456,"extension":404,"meta":199457,"navigation":61,"order":263,"path":199458,"seo":199459,"stem":199460,"subject":86172,"tags":199461,"__hash__":199462},"topics/react/conditional-rendering.md","Conditional Rendering",{"type":8,"value":199219,"toc":199453},[199220,199223,199450],[11,199221,199217],{"id":199222},"conditional-rendering",[25,199224,199226],{"className":198968,"code":199225,"language":198970,"meta":30,"style":30},"function Component({ isLoggedIn, items, user }) {\n  return (\n    \u003C>\n      {/* If condition */}\n      {isLoggedIn && \u003CDashboard />}\n      \n      {/* If-else */}\n      {isLoggedIn ? \u003CDashboard /> : \u003CLogin />}\n      \n      {/* Multiple conditions */}\n      {items.length === 0 && \u003Cp>No items\u003C/p>}\n      {items.length > 0 && items.length \u003C= 5 && \u003Cp>Few items\u003C/p>}\n      {items.length > 5 && \u003Cp>Many items\u003C/p>}\n      \n      {/* Nullish check */}\n      {user?.name ?? 'Anonymous'}\n    \u003C/>\n  );\n}\n",[20,199227,199228,199249,199255,199260,199269,199284,199288,199297,199318,199322,199331,199356,199389,199412,199416,199425,199437,199442,199446],{"__ignoreMap":30},[34,199229,199230,199232,199235,199237,199239,199241,199243,199245,199247],{"class":36,"line":37},[34,199231,11044],{"class":580},[34,199233,199234],{"class":47}," Component",[34,199236,13858],{"class":181},[34,199238,163829],{"class":675},[34,199240,1798],{"class":181},[34,199242,4874],{"class":675},[34,199244,1798],{"class":181},[34,199246,3945],{"class":675},[34,199248,13879],{"class":181},[34,199250,199251,199253],{"class":36,"line":44},[34,199252,8155],{"class":580},[34,199254,13975],{"class":181},[34,199256,199257],{"class":36,"line":58},[34,199258,199259],{"class":181},"    \u003C>\n",[34,199261,199262,199264,199267],{"class":36,"line":65},[34,199263,127999],{"class":181},[34,199265,199266],{"class":40},"/* If condition */",[34,199268,693],{"class":181},[34,199270,199271,199274,199276,199278,199281],{"class":36,"line":71},[34,199272,199273],{"class":181},"      {isLoggedIn ",[34,199275,22938],{"class":580},[34,199277,5470],{"class":181},[34,199279,199280],{"class":50},"Dashboard",[34,199282,199283],{"class":181}," />}\n",[34,199285,199286],{"class":36,"line":77},[34,199287,3083],{"class":181},[34,199289,199290,199292,199295],{"class":36,"line":82},[34,199291,127999],{"class":181},[34,199293,199294],{"class":40},"/* If-else */",[34,199296,693],{"class":181},[34,199298,199299,199301,199303,199305,199307,199310,199312,199314,199316],{"class":36,"line":88},[34,199300,199273],{"class":181},[34,199302,18954],{"class":580},[34,199304,5470],{"class":181},[34,199306,199280],{"class":50},[34,199308,199309],{"class":181}," /> ",[34,199311,165],{"class":580},[34,199313,5470],{"class":181},[34,199315,94346],{"class":50},[34,199317,199283],{"class":181},[34,199319,199320],{"class":36,"line":242},[34,199321,3083],{"class":181},[34,199323,199324,199326,199329],{"class":36,"line":250},[34,199325,127999],{"class":181},[34,199327,199328],{"class":40},"/* Multiple conditions */",[34,199330,693],{"class":181},[34,199332,199333,199336,199338,199340,199342,199344,199346,199348,199351,199353],{"class":36,"line":263},[34,199334,199335],{"class":181},"      {items.",[34,199337,2908],{"class":50},[34,199339,130766],{"class":580},[34,199341,8070],{"class":50},[34,199343,19963],{"class":580},[34,199345,5470],{"class":181},[34,199347,16],{"class":177},[34,199349,199350],{"class":181},">No items\u003C/",[34,199352,16],{"class":177},[34,199354,199355],{"class":181},">}\n",[34,199357,199358,199360,199362,199364,199366,199368,199370,199372,199374,199376,199378,199380,199382,199385,199387],{"class":36,"line":275},[34,199359,199335],{"class":181},[34,199361,2908],{"class":50},[34,199363,9009],{"class":580},[34,199365,8070],{"class":50},[34,199367,19963],{"class":580},[34,199369,77328],{"class":181},[34,199371,2908],{"class":50},[34,199373,2911],{"class":580},[34,199375,11144],{"class":50},[34,199377,19963],{"class":580},[34,199379,5470],{"class":181},[34,199381,16],{"class":177},[34,199383,199384],{"class":181},">Few items\u003C/",[34,199386,16],{"class":177},[34,199388,199355],{"class":181},[34,199390,199391,199393,199395,199397,199399,199401,199403,199405,199408,199410],{"class":36,"line":700},[34,199392,199335],{"class":181},[34,199394,2908],{"class":50},[34,199396,9009],{"class":580},[34,199398,11144],{"class":50},[34,199400,19963],{"class":580},[34,199402,5470],{"class":181},[34,199404,16],{"class":177},[34,199406,199407],{"class":181},">Many items\u003C/",[34,199409,16],{"class":177},[34,199411,199355],{"class":181},[34,199413,199414],{"class":36,"line":706},[34,199415,3083],{"class":181},[34,199417,199418,199420,199423],{"class":36,"line":715},[34,199419,127999],{"class":181},[34,199421,199422],{"class":40},"/* Nullish check */",[34,199424,693],{"class":181},[34,199426,199427,199430,199432,199435],{"class":36,"line":725},[34,199428,199429],{"class":181},"      {user?.name ",[34,199431,34195],{"class":580},[34,199433,199434],{"class":54}," 'Anonymous'",[34,199436,693],{"class":181},[34,199438,199439],{"class":36,"line":734},[34,199440,199441],{"class":181},"    \u003C/>\n",[34,199443,199444],{"class":36,"line":742},[34,199445,61002],{"class":181},[34,199447,199448],{"class":36,"line":748},[34,199449,693],{"class":181},[388,199451,199452],{},"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 .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}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);}",{"title":30,"searchDepth":44,"depth":44,"links":199454},[199455],{"id":199222,"depth":44,"text":199217},"Conditional Rendering in React.",{},"/react/conditional-rendering",{"title":199217,"description":199456},"react/conditional-rendering",[86172,8606,982,120402],"ugr7U3StBAxGLY9dRc09sOjXfpZSkCnZa_bOtjekpvM",{"id":199464,"title":199465,"body":199466,"date":402,"description":199980,"extension":404,"meta":199981,"navigation":61,"order":242,"path":199982,"seo":199983,"stem":199984,"subject":86172,"tags":199985,"__hash__":199986},"topics/react/custom-hooks.md","Custom Hooks",{"type":8,"value":199467,"toc":199977},[199468,199471,199975],[11,199469,199465],{"id":199470},"custom-hooks",[25,199472,199474],{"className":198968,"code":199473,"language":198970,"meta":30,"style":30},"// useLocalStorage hook\nfunction useLocalStorage(key, initialValue) {\n  const [value, setValue] = useState(() => {\n    const stored = localStorage.getItem(key);\n    return stored ? JSON.parse(stored) : initialValue;\n  });\n  \n  useEffect(() => {\n    localStorage.setItem(key, JSON.stringify(value));\n  }, [key, value]);\n  \n  return [value, setValue];\n}\n\n// useDebounce hook\nfunction useDebounce(value, delay) {\n  const [debouncedValue, setDebouncedValue] = useState(value);\n  \n  useEffect(() => {\n    const timer = setTimeout(() => setDebouncedValue(value), delay);\n    return () => clearTimeout(timer);\n  }, [value, delay]);\n  \n  return debouncedValue;\n}\n\n// useFetch hook\nfunction useFetch(url) {\n  const [data, setData] = useState(null);\n  const [loading, setLoading] = useState(true);\n  const [error, setError] = useState(null);\n  \n  useEffect(() => {\n    const controller = new AbortController();\n    \n    fetch(url, { signal: controller.signal })\n      .then(res => res.json())\n      .then(setData)\n      .catch(setError)\n      .finally(() => setLoading(false));\n    \n    return () => controller.abort();\n  }, [url]);\n  \n  return { data, loading, error };\n}\n",[20,199475,199476,199481,199499,199524,199542,199565,199569,199573,199584,199604,199609,199613,199620,199624,199628,199633,199650,199672,199676,199686,199707,199721,199726,199730,199737,199741,199745,199750,199762,199787,199813,199838,199842,199852,199868,199872,199880,199898,199907,199916,199935,199939,199955,199960,199964,199971],{"__ignoreMap":30},[34,199477,199478],{"class":36,"line":37},[34,199479,199480],{"class":40},"// useLocalStorage hook\n",[34,199482,199483,199485,199488,199490,199492,199494,199497],{"class":36,"line":44},[34,199484,11044],{"class":580},[34,199486,199487],{"class":47}," useLocalStorage",[34,199489,1607],{"class":181},[34,199491,141344],{"class":675},[34,199493,1798],{"class":181},[34,199495,199496],{"class":675},"initialValue",[34,199498,2416],{"class":181},[34,199500,199501,199503,199505,199507,199509,199512,199514,199516,199518,199520,199522],{"class":36,"line":58},[34,199502,17415],{"class":580},[34,199504,8315],{"class":181},[34,199506,2871],{"class":50},[34,199508,1798],{"class":181},[34,199510,199511],{"class":50},"setValue",[34,199513,17799],{"class":181},[34,199515,1301],{"class":580},[34,199517,85637],{"class":47},[34,199519,4275],{"class":181},[34,199521,3361],{"class":580},[34,199523,661],{"class":181},[34,199525,199526,199528,199531,199533,199536,199539],{"class":36,"line":65},[34,199527,1632],{"class":580},[34,199529,199530],{"class":50}," stored",[34,199532,683],{"class":580},[34,199534,199535],{"class":181}," localStorage.",[34,199537,199538],{"class":47},"getItem",[34,199540,199541],{"class":181},"(key);\n",[34,199543,199544,199546,199549,199551,199553,199555,199557,199560,199562],{"class":36,"line":71},[34,199545,1564],{"class":580},[34,199547,199548],{"class":181}," stored ",[34,199550,18954],{"class":580},[34,199552,126557],{"class":50},[34,199554,151],{"class":181},[34,199556,126562],{"class":47},[34,199558,199559],{"class":181},"(stored) ",[34,199561,165],{"class":580},[34,199563,199564],{"class":181}," initialValue;\n",[34,199566,199567],{"class":36,"line":77},[34,199568,3186],{"class":181},[34,199570,199571],{"class":36,"line":82},[34,199572,827],{"class":181},[34,199574,199575,199578,199580,199582],{"class":36,"line":88},[34,199576,199577],{"class":47},"  useEffect",[34,199579,4275],{"class":181},[34,199581,3361],{"class":580},[34,199583,661],{"class":181},[34,199585,199586,199589,199592,199595,199597,199599,199601],{"class":36,"line":242},[34,199587,199588],{"class":181},"    localStorage.",[34,199590,199591],{"class":47},"setItem",[34,199593,199594],{"class":181},"(key, ",[34,199596,14854],{"class":50},[34,199598,151],{"class":181},[34,199600,14859],{"class":47},[34,199602,199603],{"class":181},"(value));\n",[34,199605,199606],{"class":36,"line":250},[34,199607,199608],{"class":181},"  }, [key, value]);\n",[34,199610,199611],{"class":36,"line":263},[34,199612,827],{"class":181},[34,199614,199615,199617],{"class":36,"line":275},[34,199616,8155],{"class":580},[34,199618,199619],{"class":181}," [value, setValue];\n",[34,199621,199622],{"class":36,"line":700},[34,199623,693],{"class":181},[34,199625,199626],{"class":36,"line":706},[34,199627,62],{"emptyLinePlaceholder":61},[34,199629,199630],{"class":36,"line":715},[34,199631,199632],{"class":40},"// useDebounce hook\n",[34,199634,199635,199637,199640,199642,199644,199646,199648],{"class":36,"line":725},[34,199636,11044],{"class":580},[34,199638,199639],{"class":47}," useDebounce",[34,199641,1607],{"class":181},[34,199643,2871],{"class":675},[34,199645,1798],{"class":181},[34,199647,126681],{"class":675},[34,199649,2416],{"class":181},[34,199651,199652,199654,199656,199659,199661,199664,199666,199668,199670],{"class":36,"line":734},[34,199653,17415],{"class":580},[34,199655,8315],{"class":181},[34,199657,199658],{"class":50},"debouncedValue",[34,199660,1798],{"class":181},[34,199662,199663],{"class":50},"setDebouncedValue",[34,199665,17799],{"class":181},[34,199667,1301],{"class":580},[34,199669,85637],{"class":47},[34,199671,131159],{"class":181},[34,199673,199674],{"class":36,"line":742},[34,199675,827],{"class":181},[34,199677,199678,199680,199682,199684],{"class":36,"line":748},[34,199679,199577],{"class":47},[34,199681,4275],{"class":181},[34,199683,3361],{"class":580},[34,199685,661],{"class":181},[34,199687,199688,199690,199693,199695,199697,199699,199701,199704],{"class":36,"line":754},[34,199689,1632],{"class":580},[34,199691,199692],{"class":50}," timer",[34,199694,683],{"class":580},[34,199696,126729],{"class":47},[34,199698,4275],{"class":181},[34,199700,3361],{"class":580},[34,199702,199703],{"class":47}," setDebouncedValue",[34,199705,199706],{"class":181},"(value), delay);\n",[34,199708,199709,199711,199713,199715,199718],{"class":36,"line":759},[34,199710,1564],{"class":580},[34,199712,17406],{"class":181},[34,199714,3361],{"class":580},[34,199716,199717],{"class":47}," clearTimeout",[34,199719,199720],{"class":181},"(timer);\n",[34,199722,199723],{"class":36,"line":771},[34,199724,199725],{"class":181},"  }, [value, delay]);\n",[34,199727,199728],{"class":36,"line":794},[34,199729,827],{"class":181},[34,199731,199732,199734],{"class":36,"line":824},[34,199733,8155],{"class":580},[34,199735,199736],{"class":181}," debouncedValue;\n",[34,199738,199739],{"class":36,"line":830},[34,199740,693],{"class":181},[34,199742,199743],{"class":36,"line":839},[34,199744,62],{"emptyLinePlaceholder":61},[34,199746,199747],{"class":36,"line":854},[34,199748,199749],{"class":40},"// useFetch hook\n",[34,199751,199752,199754,199756,199758,199760],{"class":36,"line":860},[34,199753,11044],{"class":580},[34,199755,162221],{"class":47},[34,199757,1607],{"class":181},[34,199759,38855],{"class":675},[34,199761,2416],{"class":181},[34,199763,199764,199766,199768,199770,199772,199775,199777,199779,199781,199783,199785],{"class":36,"line":865},[34,199765,17415],{"class":580},[34,199767,8315],{"class":181},[34,199769,1701],{"class":50},[34,199771,1798],{"class":181},[34,199773,199774],{"class":50},"setData",[34,199776,17799],{"class":181},[34,199778,1301],{"class":580},[34,199780,85637],{"class":47},[34,199782,1607],{"class":181},[34,199784,111592],{"class":50},[34,199786,1586],{"class":181},[34,199788,199789,199791,199793,199796,199798,199801,199803,199805,199807,199809,199811],{"class":36,"line":870},[34,199790,17415],{"class":580},[34,199792,8315],{"class":181},[34,199794,199795],{"class":50},"loading",[34,199797,1798],{"class":181},[34,199799,199800],{"class":50},"setLoading",[34,199802,17799],{"class":181},[34,199804,1301],{"class":580},[34,199806,85637],{"class":47},[34,199808,1607],{"class":181},[34,199810,632],{"class":50},[34,199812,1586],{"class":181},[34,199814,199815,199817,199819,199821,199823,199826,199828,199830,199832,199834,199836],{"class":36,"line":876},[34,199816,17415],{"class":580},[34,199818,8315],{"class":181},[34,199820,1908],{"class":50},[34,199822,1798],{"class":181},[34,199824,199825],{"class":50},"setError",[34,199827,17799],{"class":181},[34,199829,1301],{"class":580},[34,199831,85637],{"class":47},[34,199833,1607],{"class":181},[34,199835,111592],{"class":50},[34,199837,1586],{"class":181},[34,199839,199840],{"class":36,"line":885},[34,199841,827],{"class":181},[34,199843,199844,199846,199848,199850],{"class":36,"line":895},[34,199845,199577],{"class":47},[34,199847,4275],{"class":181},[34,199849,3361],{"class":580},[34,199851,661],{"class":181},[34,199853,199854,199856,199859,199861,199863,199866],{"class":36,"line":904},[34,199855,1632],{"class":580},[34,199857,199858],{"class":50}," controller",[34,199860,683],{"class":580},[34,199862,809],{"class":580},[34,199864,199865],{"class":47}," AbortController",[34,199867,851],{"class":181},[34,199869,199870],{"class":36,"line":915},[34,199871,3666],{"class":181},[34,199873,199874,199877],{"class":36,"line":927},[34,199875,199876],{"class":47},"    fetch",[34,199878,199879],{"class":181},"(url, { signal: controller.signal })\n",[34,199881,199882,199884,199886,199888,199890,199892,199894,199896],{"class":36,"line":932},[34,199883,3377],{"class":181},[34,199885,3380],{"class":47},[34,199887,1607],{"class":181},[34,199889,75511],{"class":675},[34,199891,1895],{"class":580},[34,199893,75763],{"class":181},[34,199895,14790],{"class":47},[34,199897,62281],{"class":181},[34,199899,199900,199902,199904],{"class":36,"line":944},[34,199901,3377],{"class":181},[34,199903,3380],{"class":47},[34,199905,199906],{"class":181},"(setData)\n",[34,199908,199909,199911,199913],{"class":36,"line":966},[34,199910,3377],{"class":181},[34,199912,30851],{"class":47},[34,199914,199915],{"class":181},"(setError)\n",[34,199917,199918,199920,199922,199924,199926,199929,199931,199933],{"class":36,"line":1948},[34,199919,3377],{"class":181},[34,199921,122585],{"class":47},[34,199923,4275],{"class":181},[34,199925,3361],{"class":580},[34,199927,199928],{"class":47}," setLoading",[34,199930,1607],{"class":181},[34,199932,103387],{"class":50},[34,199934,15223],{"class":181},[34,199936,199937],{"class":36,"line":1953},[34,199938,3666],{"class":181},[34,199940,199941,199943,199945,199947,199950,199953],{"class":36,"line":3616},[34,199942,1564],{"class":580},[34,199944,17406],{"class":181},[34,199946,3361],{"class":580},[34,199948,199949],{"class":181}," controller.",[34,199951,199952],{"class":47},"abort",[34,199954,851],{"class":181},[34,199956,199957],{"class":36,"line":3622},[34,199958,199959],{"class":181},"  }, [url]);\n",[34,199961,199962],{"class":36,"line":3642},[34,199963,827],{"class":181},[34,199965,199966,199968],{"class":36,"line":3657},[34,199967,8155],{"class":580},[34,199969,199970],{"class":181}," { data, loading, error };\n",[34,199972,199973],{"class":36,"line":3663},[34,199974,693],{"class":181},[388,199976,60244],{},{"title":30,"searchDepth":44,"depth":44,"links":199978},[199979],{"id":199470,"depth":44,"text":199465},"Custom Hooks in React.",{},"/react/custom-hooks",{"title":199465,"description":199980},"react/custom-hooks",[86172,8606,982,120402],"XcHYNf7qiIxm7rLgXSpnxV4y8ySCCPgCLeXMB8kECac",{"id":199988,"title":199989,"body":199990,"date":402,"description":200282,"extension":404,"meta":200283,"navigation":61,"order":250,"path":200284,"seo":200285,"stem":200286,"subject":86172,"tags":200287,"__hash__":200288},"topics/react/event-handling.md","Event Handling",{"type":8,"value":199991,"toc":200279},[199992,199995,200276],[11,199993,199989],{"id":199994},"event-handling",[25,199996,199998],{"className":198968,"code":199997,"language":198970,"meta":30,"style":30},"function Form() {\n  const [value, setValue] = useState('');\n  \n  // Input change\n  const handleChange = (e) => {\n    setValue(e.target.value);\n  };\n  \n  // Form submit\n  const handleSubmit = (e) => {\n    e.preventDefault();\n    console.log(value);\n  };\n  \n  // Click with data\n  const handleClick = (id) => (e) => {\n    console.log(id, e);\n  };\n  \n  return (\n    \u003Cform onSubmit={handleSubmit}>\n      \u003Cinput value={value} onChange={handleChange} />\n      \u003Cbutton type=\"submit\">Submit\u003C/button>\n      \u003Cbutton onClick={handleClick(123)}>Click\u003C/button>\n    \u003C/form>\n  );\n}\n",[20,199999,200000,200009,200033,200037,200042,200061,200069,200073,200077,200082,200101,200110,200118,200122,200126,200131,200158,200167,200171,200175,200181,200195,200216,200234,200260,200268,200272],{"__ignoreMap":30},[34,200001,200002,200004,200007],{"class":36,"line":37},[34,200003,11044],{"class":580},[34,200005,200006],{"class":47}," Form",[34,200008,836],{"class":181},[34,200010,200011,200013,200015,200017,200019,200021,200023,200025,200027,200029,200031],{"class":36,"line":44},[34,200012,17415],{"class":580},[34,200014,8315],{"class":181},[34,200016,2871],{"class":50},[34,200018,1798],{"class":181},[34,200020,199511],{"class":50},[34,200022,17799],{"class":181},[34,200024,1301],{"class":580},[34,200026,85637],{"class":47},[34,200028,1607],{"class":181},[34,200030,3151],{"class":54},[34,200032,1586],{"class":181},[34,200034,200035],{"class":36,"line":58},[34,200036,827],{"class":181},[34,200038,200039],{"class":36,"line":65},[34,200040,200041],{"class":40},"  // Input change\n",[34,200043,200044,200046,200049,200051,200053,200055,200057,200059],{"class":36,"line":71},[34,200045,17415],{"class":580},[34,200047,200048],{"class":47}," handleChange",[34,200050,683],{"class":580},[34,200052,3204],{"class":181},[34,200054,5476],{"class":675},[34,200056,4817],{"class":181},[34,200058,3361],{"class":580},[34,200060,661],{"class":181},[34,200062,200063,200066],{"class":36,"line":77},[34,200064,200065],{"class":47},"    setValue",[34,200067,200068],{"class":181},"(e.target.value);\n",[34,200070,200071],{"class":36,"line":82},[34,200072,126747],{"class":181},[34,200074,200075],{"class":36,"line":88},[34,200076,827],{"class":181},[34,200078,200079],{"class":36,"line":242},[34,200080,200081],{"class":40},"  // Form submit\n",[34,200083,200084,200086,200089,200091,200093,200095,200097,200099],{"class":36,"line":250},[34,200085,17415],{"class":580},[34,200087,200088],{"class":47}," handleSubmit",[34,200090,683],{"class":580},[34,200092,3204],{"class":181},[34,200094,5476],{"class":675},[34,200096,4817],{"class":181},[34,200098,3361],{"class":580},[34,200100,661],{"class":181},[34,200102,200103,200105,200108],{"class":36,"line":263},[34,200104,122670],{"class":181},[34,200106,200107],{"class":47},"preventDefault",[34,200109,851],{"class":181},[34,200111,200112,200114,200116],{"class":36,"line":275},[34,200113,2421],{"class":181},[34,200115,2424],{"class":47},[34,200117,131159],{"class":181},[34,200119,200120],{"class":36,"line":700},[34,200121,126747],{"class":181},[34,200123,200124],{"class":36,"line":706},[34,200125,827],{"class":181},[34,200127,200128],{"class":36,"line":715},[34,200129,200130],{"class":40},"  // Click with data\n",[34,200132,200133,200135,200138,200140,200142,200144,200146,200148,200150,200152,200154,200156],{"class":36,"line":725},[34,200134,17415],{"class":580},[34,200136,200137],{"class":47}," handleClick",[34,200139,683],{"class":580},[34,200141,3204],{"class":181},[34,200143,3885],{"class":675},[34,200145,4817],{"class":181},[34,200147,3361],{"class":580},[34,200149,3204],{"class":181},[34,200151,5476],{"class":675},[34,200153,4817],{"class":181},[34,200155,3361],{"class":580},[34,200157,661],{"class":181},[34,200159,200160,200162,200164],{"class":36,"line":734},[34,200161,2421],{"class":181},[34,200163,2424],{"class":47},[34,200165,200166],{"class":181},"(id, e);\n",[34,200168,200169],{"class":36,"line":742},[34,200170,126747],{"class":181},[34,200172,200173],{"class":36,"line":748},[34,200174,827],{"class":181},[34,200176,200177,200179],{"class":36,"line":754},[34,200178,8155],{"class":580},[34,200180,13975],{"class":181},[34,200182,200183,200185,200187,200190,200192],{"class":36,"line":759},[34,200184,1294],{"class":181},[34,200186,4617],{"class":177},[34,200188,200189],{"class":47}," onSubmit",[34,200191,1301],{"class":580},[34,200193,200194],{"class":181},"{handleSubmit}>\n",[34,200196,200197,200199,200201,200203,200205,200208,200211,200213],{"class":36,"line":771},[34,200198,85662],{"class":181},[34,200200,4600],{"class":177},[34,200202,18389],{"class":47},[34,200204,1301],{"class":580},[34,200206,200207],{"class":181},"{value} ",[34,200209,200210],{"class":47},"onChange",[34,200212,1301],{"class":580},[34,200214,200215],{"class":181},"{handleChange} />\n",[34,200217,200218,200220,200222,200224,200226,200228,200230,200232],{"class":36,"line":794},[34,200219,85662],{"class":181},[34,200221,4509],{"class":177},[34,200223,62326],{"class":47},[34,200225,1301],{"class":580},[34,200227,74790],{"class":54},[34,200229,116812],{"class":181},[34,200231,4509],{"class":177},[34,200233,1248],{"class":181},[34,200235,200236,200238,200240,200242,200244,200246,200249,200251,200253,200256,200258],{"class":36,"line":824},[34,200237,85662],{"class":181},[34,200239,4509],{"class":177},[34,200241,85667],{"class":47},[34,200243,1301],{"class":580},[34,200245,13990],{"class":181},[34,200247,200248],{"class":47},"handleClick",[34,200250,1607],{"class":181},[34,200252,23913],{"class":50},[34,200254,200255],{"class":181},")}>Click\u003C/",[34,200257,4509],{"class":177},[34,200259,1248],{"class":181},[34,200261,200262,200264,200266],{"class":36,"line":830},[34,200263,74431],{"class":181},[34,200265,4617],{"class":177},[34,200267,1248],{"class":181},[34,200269,200270],{"class":36,"line":839},[34,200271,61002],{"class":181},[34,200273,200274],{"class":36,"line":854},[34,200275,693],{"class":181},[388,200277,200278],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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":30,"searchDepth":44,"depth":44,"links":200280},[200281],{"id":199994,"depth":44,"text":199989},"Event Handling in React.",{},"/react/event-handling",{"title":199989,"description":200282},"react/event-handling",[86172,8606,982,120402],"hOGOmM4MLou-nHhCVEg3EGJH0gUKHnJO0qIeZQJENWg",{"id":200290,"title":200291,"body":200292,"date":402,"description":200482,"extension":404,"meta":200483,"navigation":61,"order":275,"path":200484,"seo":200485,"stem":200486,"subject":86172,"tags":200487,"__hash__":200488},"topics/react/lists-keys.md","Lists & Keys",{"type":8,"value":200293,"toc":200479},[200294,200297,200476],[11,200295,200291],{"id":200296},"lists-keys",[25,200298,200300],{"className":198968,"code":200299,"language":198970,"meta":30,"style":30},"function ItemList({ items }) {\n  return (\n    \u003Cul>\n      {items.map((item) => (\n        \u003Cli key={item.id}>{item.name}\u003C/li>\n      ))}\n    \u003C/ul>\n  );\n}\n\n// With index (only if items have no stable ID)\nfunction SimpleList({ items }) {\n  return (\n    \u003Cul>\n      {items.map((item, index) => (\n        \u003Cli key={index}>{item}\u003C/li>\n      ))}\n    \u003C/ul>\n  );\n}\n",[20,200301,200302,200315,200321,200329,200345,200362,200366,200374,200378,200382,200386,200391,200404,200410,200418,200439,200456,200460,200468,200472],{"__ignoreMap":30},[34,200303,200304,200306,200309,200311,200313],{"class":36,"line":37},[34,200305,11044],{"class":580},[34,200307,200308],{"class":47}," ItemList",[34,200310,13858],{"class":181},[34,200312,4874],{"class":675},[34,200314,13879],{"class":181},[34,200316,200317,200319],{"class":36,"line":44},[34,200318,8155],{"class":580},[34,200320,13975],{"class":181},[34,200322,200323,200325,200327],{"class":36,"line":58},[34,200324,1294],{"class":181},[34,200326,309],{"class":177},[34,200328,1248],{"class":181},[34,200330,200331,200333,200335,200337,200339,200341,200343],{"class":36,"line":65},[34,200332,199335],{"class":181},[34,200334,61180],{"class":47},[34,200336,8348],{"class":181},[34,200338,4935],{"class":675},[34,200340,4817],{"class":181},[34,200342,3361],{"class":580},[34,200344,13975],{"class":181},[34,200346,200347,200349,200351,200353,200355,200358,200360],{"class":36,"line":71},[34,200348,13980],{"class":181},[34,200350,312],{"class":177},[34,200352,64586],{"class":47},[34,200354,1301],{"class":580},[34,200356,200357],{"class":181},"{item.id}>{item.name}\u003C/",[34,200359,312],{"class":177},[34,200361,1248],{"class":181},[34,200363,200364],{"class":36,"line":77},[34,200365,85554],{"class":181},[34,200367,200368,200370,200372],{"class":36,"line":82},[34,200369,74431],{"class":181},[34,200371,309],{"class":177},[34,200373,1248],{"class":181},[34,200375,200376],{"class":36,"line":88},[34,200377,61002],{"class":181},[34,200379,200380],{"class":36,"line":242},[34,200381,693],{"class":181},[34,200383,200384],{"class":36,"line":250},[34,200385,62],{"emptyLinePlaceholder":61},[34,200387,200388],{"class":36,"line":263},[34,200389,200390],{"class":40},"// With index (only if items have no stable ID)\n",[34,200392,200393,200395,200398,200400,200402],{"class":36,"line":275},[34,200394,11044],{"class":580},[34,200396,200397],{"class":47}," SimpleList",[34,200399,13858],{"class":181},[34,200401,4874],{"class":675},[34,200403,13879],{"class":181},[34,200405,200406,200408],{"class":36,"line":700},[34,200407,8155],{"class":580},[34,200409,13975],{"class":181},[34,200411,200412,200414,200416],{"class":36,"line":706},[34,200413,1294],{"class":181},[34,200415,309],{"class":177},[34,200417,1248],{"class":181},[34,200419,200420,200422,200424,200426,200428,200430,200433,200435,200437],{"class":36,"line":715},[34,200421,199335],{"class":181},[34,200423,61180],{"class":47},[34,200425,8348],{"class":181},[34,200427,4935],{"class":675},[34,200429,1798],{"class":181},[34,200431,200432],{"class":675},"index",[34,200434,4817],{"class":181},[34,200436,3361],{"class":580},[34,200438,13975],{"class":181},[34,200440,200441,200443,200445,200447,200449,200452,200454],{"class":36,"line":725},[34,200442,13980],{"class":181},[34,200444,312],{"class":177},[34,200446,64586],{"class":47},[34,200448,1301],{"class":580},[34,200450,200451],{"class":181},"{index}>{item}\u003C/",[34,200453,312],{"class":177},[34,200455,1248],{"class":181},[34,200457,200458],{"class":36,"line":734},[34,200459,85554],{"class":181},[34,200461,200462,200464,200466],{"class":36,"line":742},[34,200463,74431],{"class":181},[34,200465,309],{"class":177},[34,200467,1248],{"class":181},[34,200469,200470],{"class":36,"line":748},[34,200471,61002],{"class":181},[34,200473,200474],{"class":36,"line":754},[34,200475,693],{"class":181},[388,200477,200478],{},"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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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":30,"searchDepth":44,"depth":44,"links":200480},[200481],{"id":200296,"depth":44,"text":200291},"Lists & Keys in React.",{},"/react/lists-keys",{"title":200291,"description":200482},"react/lists-keys",[86172,8606,982,120402],"0n2YuwsSdLePThfZRt8ecbG6Gka9ZW7Yh3ICguAiH6g",{"id":200490,"title":200491,"body":200492,"date":2633,"description":200554,"extension":404,"meta":200555,"navigation":61,"order":37,"path":200556,"seo":200557,"stem":200558,"subject":86172,"tags":200559,"__hash__":200560},"topics/react/overview.md","React",{"type":8,"value":200493,"toc":200552},[200494],[309,200495,200496,200500,200506,200512,200518,200524,200530,200536,200540,200544,200548],{},[312,200497,200498],{},[145,200499,563],{"href":199210},[312,200501,200502],{},[145,200503,200505],{"href":200504},"/react/usestate-hook","useState Hook",[312,200507,200508],{},[145,200509,200511],{"href":200510},"/react/useeffect-hook","useEffect Hook",[312,200513,200514],{},[145,200515,200517],{"href":200516},"/react/usecontext-hook","useContext Hook",[312,200519,200520],{},[145,200521,200523],{"href":200522},"/react/useref-hook","useRef Hook",[312,200525,200526],{},[145,200527,200529],{"href":200528},"/react/usememo-usecallback","useMemo & useCallback",[312,200531,200532],{},[145,200533,200535],{"href":200534},"/react/usereducer-hook","useReducer Hook",[312,200537,200538],{},[145,200539,199465],{"href":199982},[312,200541,200542],{},[145,200543,199989],{"href":200284},[312,200545,200546],{},[145,200547,199217],{"href":199458},[312,200549,200550],{},[145,200551,200291],{"href":200484},{"title":30,"searchDepth":44,"depth":44,"links":200553},[],"React hooks, patterns, and best practices for building modern UIs.",{},"/react/overview",{"title":200491,"description":200554},"react/overview",[86172,8606,982,120402],"mH6u16DAwdTmQcVgOGqFu4FYXzTZAQrP2YJaJB_wU00",{"id":200562,"title":200517,"body":200563,"date":402,"description":200898,"extension":404,"meta":200899,"navigation":61,"order":71,"path":200516,"seo":200900,"stem":200901,"subject":86172,"tags":200902,"__hash__":200903},"topics/react/usecontext-hook.md",{"type":8,"value":200564,"toc":200895},[200565,200568,200892],[11,200566,200517],{"id":200567},"usecontext-hook",[25,200569,200571],{"className":198968,"code":200570,"language":198970,"meta":30,"style":30},"import { createContext, useContext, useState } from 'react';\n\n// Create context\nconst ThemeContext = createContext();\n\n// Provider component\nfunction ThemeProvider({ children }) {\n  const [theme, setTheme] = useState('light');\n  \n  const toggleTheme = () => {\n    setTheme(prev => prev === 'light' ? 'dark' : 'light');\n  };\n  \n  return (\n    \u003CThemeContext.Provider value={{ theme, toggleTheme }}>\n      {children}\n    \u003C/ThemeContext.Provider>\n  );\n}\n\n// Custom hook for consuming context\nfunction useTheme() {\n  const context = useContext(ThemeContext);\n  if (!context) {\n    throw new Error('useTheme must be used within ThemeProvider');\n  }\n  return context;\n}\n\n// Usage in component\nfunction ThemedButton() {\n  const { theme, toggleTheme } = useTheme();\n  return \u003Cbutton onClick={toggleTheme}>{theme}\u003C/button>;\n}\n",[20,200572,200573,200586,200590,200595,200609,200613,200618,200631,200658,200662,200677,200708,200712,200716,200722,200736,200740,200748,200752,200756,200760,200765,200774,200789,200800,200815,200819,200826,200830,200834,200839,200848,200869,200888],{"__ignoreMap":30},[34,200574,200575,200577,200580,200582,200584],{"class":36,"line":37},[34,200576,581],{"class":580},[34,200578,200579],{"class":181}," { createContext, useContext, useState } ",[34,200581,587],{"class":580},[34,200583,85598],{"class":54},[34,200585,593],{"class":181},[34,200587,200588],{"class":36,"line":44},[34,200589,62],{"emptyLinePlaceholder":61},[34,200591,200592],{"class":36,"line":58},[34,200593,200594],{"class":40},"// Create context\n",[34,200596,200597,200599,200602,200604,200607],{"class":36,"line":65},[34,200598,14676],{"class":580},[34,200600,200601],{"class":50}," ThemeContext",[34,200603,683],{"class":580},[34,200605,200606],{"class":47}," createContext",[34,200608,851],{"class":181},[34,200610,200611],{"class":36,"line":71},[34,200612,62],{"emptyLinePlaceholder":61},[34,200614,200615],{"class":36,"line":77},[34,200616,200617],{"class":40},"// Provider component\n",[34,200619,200620,200622,200625,200627,200629],{"class":36,"line":82},[34,200621,11044],{"class":580},[34,200623,200624],{"class":47}," ThemeProvider",[34,200626,13858],{"class":181},[34,200628,59908],{"class":675},[34,200630,13879],{"class":181},[34,200632,200633,200635,200637,200640,200642,200645,200647,200649,200651,200653,200656],{"class":36,"line":88},[34,200634,17415],{"class":580},[34,200636,8315],{"class":181},[34,200638,200639],{"class":50},"theme",[34,200641,1798],{"class":181},[34,200643,200644],{"class":50},"setTheme",[34,200646,17799],{"class":181},[34,200648,1301],{"class":580},[34,200650,85637],{"class":47},[34,200652,1607],{"class":181},[34,200654,200655],{"class":54},"'light'",[34,200657,1586],{"class":181},[34,200659,200660],{"class":36,"line":242},[34,200661,827],{"class":181},[34,200663,200664,200666,200669,200671,200673,200675],{"class":36,"line":250},[34,200665,17415],{"class":580},[34,200667,200668],{"class":47}," toggleTheme",[34,200670,683],{"class":580},[34,200672,17406],{"class":181},[34,200674,3361],{"class":580},[34,200676,661],{"class":181},[34,200678,200679,200682,200684,200687,200689,200692,200694,200697,200699,200702,200704,200706],{"class":36,"line":263},[34,200680,200681],{"class":47},"    setTheme",[34,200683,1607],{"class":181},[34,200685,200686],{"class":675},"prev",[34,200688,1895],{"class":580},[34,200690,200691],{"class":181}," prev ",[34,200693,15543],{"class":580},[34,200695,200696],{"class":54}," 'light'",[34,200698,131598],{"class":580},[34,200700,200701],{"class":54}," 'dark'",[34,200703,64223],{"class":580},[34,200705,200696],{"class":54},[34,200707,1586],{"class":181},[34,200709,200710],{"class":36,"line":275},[34,200711,126747],{"class":181},[34,200713,200714],{"class":36,"line":700},[34,200715,827],{"class":181},[34,200717,200718,200720],{"class":36,"line":706},[34,200719,8155],{"class":580},[34,200721,13975],{"class":181},[34,200723,200724,200726,200729,200731,200733],{"class":36,"line":715},[34,200725,1294],{"class":181},[34,200727,200728],{"class":50},"ThemeContext.Provider",[34,200730,18389],{"class":47},[34,200732,1301],{"class":580},[34,200734,200735],{"class":181},"{{ theme, toggleTheme }}>\n",[34,200737,200738],{"class":36,"line":725},[34,200739,199185],{"class":181},[34,200741,200742,200744,200746],{"class":36,"line":734},[34,200743,74431],{"class":181},[34,200745,200728],{"class":50},[34,200747,1248],{"class":181},[34,200749,200750],{"class":36,"line":742},[34,200751,61002],{"class":181},[34,200753,200754],{"class":36,"line":748},[34,200755,693],{"class":181},[34,200757,200758],{"class":36,"line":754},[34,200759,62],{"emptyLinePlaceholder":61},[34,200761,200762],{"class":36,"line":759},[34,200763,200764],{"class":40},"// Custom hook for consuming context\n",[34,200766,200767,200769,200772],{"class":36,"line":771},[34,200768,11044],{"class":580},[34,200770,200771],{"class":47}," useTheme",[34,200773,836],{"class":181},[34,200775,200776,200778,200781,200783,200786],{"class":36,"line":794},[34,200777,17415],{"class":580},[34,200779,200780],{"class":50}," context",[34,200782,683],{"class":580},[34,200784,200785],{"class":47}," useContext",[34,200787,200788],{"class":181},"(ThemeContext);\n",[34,200790,200791,200793,200795,200797],{"class":36,"line":824},[34,200792,8084],{"class":580},[34,200794,3204],{"class":181},[34,200796,10307],{"class":580},[34,200798,200799],{"class":181},"context) {\n",[34,200801,200802,200804,200806,200808,200810,200813],{"class":36,"line":830},[34,200803,48916],{"class":580},[34,200805,809],{"class":580},[34,200807,48752],{"class":47},[34,200809,1607],{"class":181},[34,200811,200812],{"class":54},"'useTheme must be used within ThemeProvider'",[34,200814,1586],{"class":181},[34,200816,200817],{"class":36,"line":839},[34,200818,857],{"class":181},[34,200820,200821,200823],{"class":36,"line":854},[34,200822,8155],{"class":580},[34,200824,200825],{"class":181}," context;\n",[34,200827,200828],{"class":36,"line":860},[34,200829,693],{"class":181},[34,200831,200832],{"class":36,"line":865},[34,200833,62],{"emptyLinePlaceholder":61},[34,200835,200836],{"class":36,"line":870},[34,200837,200838],{"class":40},"// Usage in component\n",[34,200840,200841,200843,200846],{"class":36,"line":876},[34,200842,11044],{"class":580},[34,200844,200845],{"class":47}," ThemedButton",[34,200847,836],{"class":181},[34,200849,200850,200852,200854,200856,200858,200861,200863,200865,200867],{"class":36,"line":885},[34,200851,17415],{"class":580},[34,200853,30251],{"class":181},[34,200855,200639],{"class":50},[34,200857,1798],{"class":181},[34,200859,200860],{"class":50},"toggleTheme",[34,200862,34865],{"class":181},[34,200864,1301],{"class":580},[34,200866,200771],{"class":47},[34,200868,851],{"class":181},[34,200870,200871,200873,200875,200877,200879,200881,200884,200886],{"class":36,"line":895},[34,200872,8155],{"class":580},[34,200874,5470],{"class":181},[34,200876,4509],{"class":177},[34,200878,85667],{"class":47},[34,200880,1301],{"class":580},[34,200882,200883],{"class":181},"{toggleTheme}>{theme}\u003C/",[34,200885,4509],{"class":177},[34,200887,4834],{"class":181},[34,200889,200890],{"class":36,"line":904},[34,200891,693],{"class":181},[388,200893,200894],{},"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 .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}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}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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":30,"searchDepth":44,"depth":44,"links":200896},[200897],{"id":200567,"depth":44,"text":200517},"useContext Hook in React.",{},{"title":200517,"description":200898},"react/usecontext-hook",[86172,8606,982,120402],"UdzC0AOR6o2wwSFA0vMlr25-jtRj2hnt9CFLeqPCj7Q",{"id":200905,"title":200511,"body":200906,"date":402,"description":201203,"extension":404,"meta":201204,"navigation":61,"order":65,"path":200510,"seo":201205,"stem":201206,"subject":86172,"tags":201207,"__hash__":201208},"topics/react/useeffect-hook.md",{"type":8,"value":200907,"toc":201200},[200908,200911,201197],[11,200909,200511],{"id":200910},"useeffect-hook",[25,200912,200914],{"className":198968,"code":200913,"language":198970,"meta":30,"style":30},"import { useEffect, useState } from 'react';\n\nfunction DataFetcher({ userId }) {\n  const [data, setData] = useState(null);\n  \n  // Run on every render\n  useEffect(() => {\n    console.log('Rendered');\n  });\n  \n  // Run once on mount\n  useEffect(() => {\n    console.log('Mounted');\n    return () => console.log('Unmounted'); // Cleanup\n  }, []);\n  \n  // Run when dependency changes\n  useEffect(() => {\n    fetchUser(userId).then(setData);\n  }, [userId]);\n  \n  // Async effect\n  useEffect(() => {\n    const fetchData = async () => {\n      const result = await fetchUser(userId);\n      setData(result);\n    };\n    fetchData();\n  }, [userId]);\n  \n  return \u003Cdiv>{data?.name}\u003C/div>;\n}\n",[20,200915,200916,200929,200933,200946,200970,200974,200979,200989,201002,201006,201010,201015,201025,201038,201060,201065,201069,201074,201084,201097,201102,201106,201111,201121,201137,201153,201160,201164,201170,201174,201178,201193],{"__ignoreMap":30},[34,200917,200918,200920,200923,200925,200927],{"class":36,"line":37},[34,200919,581],{"class":580},[34,200921,200922],{"class":181}," { useEffect, useState } ",[34,200924,587],{"class":580},[34,200926,85598],{"class":54},[34,200928,593],{"class":181},[34,200930,200931],{"class":36,"line":44},[34,200932,62],{"emptyLinePlaceholder":61},[34,200934,200935,200937,200940,200942,200944],{"class":36,"line":58},[34,200936,11044],{"class":580},[34,200938,200939],{"class":47}," DataFetcher",[34,200941,13858],{"class":181},[34,200943,72454],{"class":675},[34,200945,13879],{"class":181},[34,200947,200948,200950,200952,200954,200956,200958,200960,200962,200964,200966,200968],{"class":36,"line":65},[34,200949,17415],{"class":580},[34,200951,8315],{"class":181},[34,200953,1701],{"class":50},[34,200955,1798],{"class":181},[34,200957,199774],{"class":50},[34,200959,17799],{"class":181},[34,200961,1301],{"class":580},[34,200963,85637],{"class":47},[34,200965,1607],{"class":181},[34,200967,111592],{"class":50},[34,200969,1586],{"class":181},[34,200971,200972],{"class":36,"line":71},[34,200973,827],{"class":181},[34,200975,200976],{"class":36,"line":77},[34,200977,200978],{"class":40},"  // Run on every render\n",[34,200980,200981,200983,200985,200987],{"class":36,"line":82},[34,200982,199577],{"class":47},[34,200984,4275],{"class":181},[34,200986,3361],{"class":580},[34,200988,661],{"class":181},[34,200990,200991,200993,200995,200997,201000],{"class":36,"line":88},[34,200992,2421],{"class":181},[34,200994,2424],{"class":47},[34,200996,1607],{"class":181},[34,200998,200999],{"class":54},"'Rendered'",[34,201001,1586],{"class":181},[34,201003,201004],{"class":36,"line":242},[34,201005,3186],{"class":181},[34,201007,201008],{"class":36,"line":250},[34,201009,827],{"class":181},[34,201011,201012],{"class":36,"line":263},[34,201013,201014],{"class":40},"  // Run once on mount\n",[34,201016,201017,201019,201021,201023],{"class":36,"line":275},[34,201018,199577],{"class":47},[34,201020,4275],{"class":181},[34,201022,3361],{"class":580},[34,201024,661],{"class":181},[34,201026,201027,201029,201031,201033,201036],{"class":36,"line":700},[34,201028,2421],{"class":181},[34,201030,2424],{"class":47},[34,201032,1607],{"class":181},[34,201034,201035],{"class":54},"'Mounted'",[34,201037,1586],{"class":181},[34,201039,201040,201042,201044,201046,201048,201050,201052,201055,201057],{"class":36,"line":706},[34,201041,1564],{"class":580},[34,201043,17406],{"class":181},[34,201045,3361],{"class":580},[34,201047,4940],{"class":181},[34,201049,2424],{"class":47},[34,201051,1607],{"class":181},[34,201053,201054],{"class":54},"'Unmounted'",[34,201056,8260],{"class":181},[34,201058,201059],{"class":40},"// Cleanup\n",[34,201061,201062],{"class":36,"line":715},[34,201063,201064],{"class":181},"  }, []);\n",[34,201066,201067],{"class":36,"line":725},[34,201068,827],{"class":181},[34,201070,201071],{"class":36,"line":734},[34,201072,201073],{"class":40},"  // Run when dependency changes\n",[34,201075,201076,201078,201080,201082],{"class":36,"line":742},[34,201077,199577],{"class":47},[34,201079,4275],{"class":181},[34,201081,3361],{"class":580},[34,201083,661],{"class":181},[34,201085,201086,201089,201092,201094],{"class":36,"line":748},[34,201087,201088],{"class":47},"    fetchUser",[34,201090,201091],{"class":181},"(userId).",[34,201093,3380],{"class":47},[34,201095,201096],{"class":181},"(setData);\n",[34,201098,201099],{"class":36,"line":754},[34,201100,201101],{"class":181},"  }, [userId]);\n",[34,201103,201104],{"class":36,"line":759},[34,201105,827],{"class":181},[34,201107,201108],{"class":36,"line":771},[34,201109,201110],{"class":40},"  // Async effect\n",[34,201112,201113,201115,201117,201119],{"class":36,"line":794},[34,201114,199577],{"class":47},[34,201116,4275],{"class":181},[34,201118,3361],{"class":580},[34,201120,661],{"class":181},[34,201122,201123,201125,201127,201129,201131,201133,201135],{"class":36,"line":824},[34,201124,1632],{"class":580},[34,201126,126365],{"class":47},[34,201128,683],{"class":580},[34,201130,33813],{"class":580},[34,201132,17406],{"class":181},[34,201134,3361],{"class":580},[34,201136,661],{"class":181},[34,201138,201139,201141,201143,201145,201147,201150],{"class":36,"line":830},[34,201140,52225],{"class":580},[34,201142,11103],{"class":50},[34,201144,683],{"class":580},[34,201146,14763],{"class":580},[34,201148,201149],{"class":47}," fetchUser",[34,201151,201152],{"class":181},"(userId);\n",[34,201154,201155,201158],{"class":36,"line":839},[34,201156,201157],{"class":47},"      setData",[34,201159,60896],{"class":181},[34,201161,201162],{"class":36,"line":854},[34,201163,27407],{"class":181},[34,201165,201166,201168],{"class":36,"line":860},[34,201167,135217],{"class":47},[34,201169,851],{"class":181},[34,201171,201172],{"class":36,"line":865},[34,201173,201101],{"class":181},[34,201175,201176],{"class":36,"line":870},[34,201177,827],{"class":181},[34,201179,201180,201182,201184,201186,201189,201191],{"class":36,"line":876},[34,201181,8155],{"class":580},[34,201183,5470],{"class":181},[34,201185,1240],{"class":177},[34,201187,201188],{"class":181},">{data?.name}\u003C/",[34,201190,1240],{"class":177},[34,201192,4834],{"class":181},[34,201194,201195],{"class":36,"line":885},[34,201196,693],{"class":181},[388,201198,201199],{},"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 .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}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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":30,"searchDepth":44,"depth":44,"links":201201},[201202],{"id":200910,"depth":44,"text":200511},"useEffect Hook in React.",{},{"title":200511,"description":201203},"react/useeffect-hook",[86172,8606,982,120402],"sMMiS292e9vWmRNKNNCbvlg7dsRp2RrZaisAG-wlEgI",{"id":201210,"title":200529,"body":201211,"date":402,"description":201459,"extension":404,"meta":201460,"navigation":61,"order":82,"path":200528,"seo":201461,"stem":201462,"subject":86172,"tags":201463,"__hash__":201464},"topics/react/usememo-usecallback.md",{"type":8,"value":201212,"toc":201456},[201213,201216,201453],[11,201214,200529],{"id":201215},"usememo-usecallback",[25,201217,201219],{"className":198968,"code":201218,"language":198970,"meta":30,"style":30},"import { useMemo, useCallback } from 'react';\n\nfunction ExpensiveComponent({ items, onItemClick }) {\n  // Memoize expensive computation\n  const sortedItems = useMemo(() => {\n    return [...items].sort((a, b) => a.name.localeCompare(b.name));\n  }, [items]);\n  \n  // Memoize callback function\n  const handleClick = useCallback((id) => {\n    onItemClick(id);\n  }, [onItemClick]);\n  \n  return (\n    \u003Cul>\n      {sortedItems.map(item => (\n        \u003Cli key={item.id} onClick={() => handleClick(item.id)}>\n          {item.name}\n        \u003C/li>\n      ))}\n    \u003C/ul>\n  );\n}\n",[20,201220,201221,201234,201238,201256,201261,201279,201313,201318,201322,201327,201348,201356,201361,201365,201371,201379,201394,201420,201425,201433,201437,201445,201449],{"__ignoreMap":30},[34,201222,201223,201225,201228,201230,201232],{"class":36,"line":37},[34,201224,581],{"class":580},[34,201226,201227],{"class":181}," { useMemo, useCallback } ",[34,201229,587],{"class":580},[34,201231,85598],{"class":54},[34,201233,593],{"class":181},[34,201235,201236],{"class":36,"line":44},[34,201237,62],{"emptyLinePlaceholder":61},[34,201239,201240,201242,201245,201247,201249,201251,201254],{"class":36,"line":58},[34,201241,11044],{"class":580},[34,201243,201244],{"class":47}," ExpensiveComponent",[34,201246,13858],{"class":181},[34,201248,4874],{"class":675},[34,201250,1798],{"class":181},[34,201252,201253],{"class":675},"onItemClick",[34,201255,13879],{"class":181},[34,201257,201258],{"class":36,"line":65},[34,201259,201260],{"class":40},"  // Memoize expensive computation\n",[34,201262,201263,201265,201268,201270,201273,201275,201277],{"class":36,"line":71},[34,201264,17415],{"class":580},[34,201266,201267],{"class":50}," sortedItems",[34,201269,683],{"class":580},[34,201271,201272],{"class":47}," useMemo",[34,201274,4275],{"class":181},[34,201276,3361],{"class":580},[34,201278,661],{"class":181},[34,201280,201281,201283,201285,201287,201290,201292,201294,201296,201298,201300,201302,201304,201307,201310],{"class":36,"line":77},[34,201282,1564],{"class":580},[34,201284,8315],{"class":181},[34,201286,16841],{"class":580},[34,201288,201289],{"class":181},"items].",[34,201291,13152],{"class":47},[34,201293,8348],{"class":181},[34,201295,145],{"class":675},[34,201297,1798],{"class":181},[34,201299,8355],{"class":675},[34,201301,4817],{"class":181},[34,201303,3361],{"class":580},[34,201305,201306],{"class":181}," a.name.",[34,201308,201309],{"class":47},"localeCompare",[34,201311,201312],{"class":181},"(b.name));\n",[34,201314,201315],{"class":36,"line":82},[34,201316,201317],{"class":181},"  }, [items]);\n",[34,201319,201320],{"class":36,"line":88},[34,201321,827],{"class":181},[34,201323,201324],{"class":36,"line":242},[34,201325,201326],{"class":40},"  // Memoize callback function\n",[34,201328,201329,201331,201333,201335,201338,201340,201342,201344,201346],{"class":36,"line":250},[34,201330,17415],{"class":580},[34,201332,200137],{"class":50},[34,201334,683],{"class":580},[34,201336,201337],{"class":47}," useCallback",[34,201339,8348],{"class":181},[34,201341,3885],{"class":675},[34,201343,4817],{"class":181},[34,201345,3361],{"class":580},[34,201347,661],{"class":181},[34,201349,201350,201353],{"class":36,"line":263},[34,201351,201352],{"class":47},"    onItemClick",[34,201354,201355],{"class":181},"(id);\n",[34,201357,201358],{"class":36,"line":275},[34,201359,201360],{"class":181},"  }, [onItemClick]);\n",[34,201362,201363],{"class":36,"line":700},[34,201364,827],{"class":181},[34,201366,201367,201369],{"class":36,"line":706},[34,201368,8155],{"class":580},[34,201370,13975],{"class":181},[34,201372,201373,201375,201377],{"class":36,"line":715},[34,201374,1294],{"class":181},[34,201376,309],{"class":177},[34,201378,1248],{"class":181},[34,201380,201381,201384,201386,201388,201390,201392],{"class":36,"line":725},[34,201382,201383],{"class":181},"      {sortedItems.",[34,201385,61180],{"class":47},[34,201387,1607],{"class":181},[34,201389,4935],{"class":675},[34,201391,1895],{"class":580},[34,201393,13975],{"class":181},[34,201395,201396,201398,201400,201402,201404,201407,201409,201411,201413,201415,201417],{"class":36,"line":734},[34,201397,13980],{"class":181},[34,201399,312],{"class":177},[34,201401,64586],{"class":47},[34,201403,1301],{"class":580},[34,201405,201406],{"class":181},"{item.id} ",[34,201408,199085],{"class":47},[34,201410,1301],{"class":580},[34,201412,85672],{"class":181},[34,201414,3361],{"class":580},[34,201416,200137],{"class":47},[34,201418,201419],{"class":181},"(item.id)}>\n",[34,201421,201422],{"class":36,"line":742},[34,201423,201424],{"class":181},"          {item.name}\n",[34,201426,201427,201429,201431],{"class":36,"line":748},[34,201428,14058],{"class":181},[34,201430,312],{"class":177},[34,201432,1248],{"class":181},[34,201434,201435],{"class":36,"line":754},[34,201436,85554],{"class":181},[34,201438,201439,201441,201443],{"class":36,"line":759},[34,201440,74431],{"class":181},[34,201442,309],{"class":177},[34,201444,1248],{"class":181},[34,201446,201447],{"class":36,"line":771},[34,201448,61002],{"class":181},[34,201450,201451],{"class":36,"line":794},[34,201452,693],{"class":181},[388,201454,201455],{},"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 .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}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}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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":30,"searchDepth":44,"depth":44,"links":201457},[201458],{"id":201215,"depth":44,"text":200529},"useMemo & useCallback in React.",{},{"title":200529,"description":201459},"react/usememo-usecallback",[86172,8606,982,120402],"xB0ggwrR1nicKopjefFMcJEJ5o4TLDnVDg4PAiF2p5c",{"id":201466,"title":200535,"body":201467,"date":402,"description":201927,"extension":404,"meta":201928,"navigation":61,"order":88,"path":200534,"seo":201929,"stem":201930,"subject":86172,"tags":201931,"__hash__":201932},"topics/react/usereducer-hook.md",{"type":8,"value":201468,"toc":201924},[201469,201472,201921],[11,201470,200535],{"id":201471},"usereducer-hook",[25,201473,201475],{"className":198968,"code":201474,"language":198970,"meta":30,"style":30},"import { useReducer } from 'react';\n\n// Reducer function\nfunction todoReducer(state, action) {\n  switch (action.type) {\n    case 'ADD':\n      return [...state, { id: Date.now(), text: action.text, done: false }];\n    case 'TOGGLE':\n      return state.map(todo =>\n        todo.id === action.id ? { ...todo, done: !todo.done } : todo\n      );\n    case 'DELETE':\n      return state.filter(todo => todo.id !== action.id);\n    default:\n      return state;\n  }\n}\n\nfunction TodoList() {\n  const [todos, dispatch] = useReducer(todoReducer, []);\n  \n  return (\n    \u003C>\n      \u003Cbutton onClick={() => dispatch({ type: 'ADD', text: 'New todo' })}>\n        Add\n      \u003C/button>\n      {todos.map(todo => (\n        \u003Cdiv key={todo.id}>\n          \u003Cspan \n            style={{ textDecoration: todo.done ? 'line-through' : 'none' }}\n            onClick={() => dispatch({ type: 'TOGGLE', id: todo.id })}\n          >\n            {todo.text}\n          \u003C/span>\n          \u003Cbutton onClick={() => dispatch({ type: 'DELETE', id: todo.id })}>\n            Delete\n          \u003C/button>\n        \u003C/div>\n      ))}\n    \u003C/>\n  );\n}\n",[20,201476,201477,201490,201494,201499,201516,201524,201533,201554,201563,201580,201609,201614,201623,201645,201651,201658,201662,201666,201670,201679,201702,201706,201712,201716,201748,201753,201761,201776,201789,201798,201820,201841,201846,201851,201860,201884,201889,201897,201905,201909,201913,201917],{"__ignoreMap":30},[34,201478,201479,201481,201484,201486,201488],{"class":36,"line":37},[34,201480,581],{"class":580},[34,201482,201483],{"class":181}," { useReducer } ",[34,201485,587],{"class":580},[34,201487,85598],{"class":54},[34,201489,593],{"class":181},[34,201491,201492],{"class":36,"line":44},[34,201493,62],{"emptyLinePlaceholder":61},[34,201495,201496],{"class":36,"line":58},[34,201497,201498],{"class":40},"// Reducer function\n",[34,201500,201501,201503,201506,201508,201510,201512,201514],{"class":36,"line":65},[34,201502,11044],{"class":580},[34,201504,201505],{"class":47}," todoReducer",[34,201507,1607],{"class":181},[34,201509,29410],{"class":675},[34,201511,1798],{"class":181},[34,201513,34999],{"class":675},[34,201515,2416],{"class":181},[34,201517,201518,201521],{"class":36,"line":71},[34,201519,201520],{"class":580},"  switch",[34,201522,201523],{"class":181}," (action.type) {\n",[34,201525,201526,201528,201531],{"class":36,"line":77},[34,201527,18986],{"class":580},[34,201529,201530],{"class":54}," 'ADD'",[34,201532,193],{"class":181},[34,201534,201535,201537,201539,201541,201544,201546,201549,201551],{"class":36,"line":82},[34,201536,15553],{"class":580},[34,201538,8315],{"class":181},[34,201540,16841],{"class":580},[34,201542,201543],{"class":181},"state, { id: Date.",[34,201545,24280],{"class":47},[34,201547,201548],{"class":181},"(), text: action.text, done: ",[34,201550,103387],{"class":50},[34,201552,201553],{"class":181}," }];\n",[34,201555,201556,201558,201561],{"class":36,"line":88},[34,201557,18986],{"class":580},[34,201559,201560],{"class":54}," 'TOGGLE'",[34,201562,193],{"class":181},[34,201564,201565,201567,201570,201572,201574,201577],{"class":36,"line":242},[34,201566,15553],{"class":580},[34,201568,201569],{"class":181}," state.",[34,201571,61180],{"class":47},[34,201573,1607],{"class":181},[34,201575,201576],{"class":675},"todo",[34,201578,201579],{"class":580}," =>\n",[34,201581,201582,201585,201587,201590,201592,201594,201596,201599,201601,201604,201606],{"class":36,"line":250},[34,201583,201584],{"class":181},"        todo.id ",[34,201586,15543],{"class":580},[34,201588,201589],{"class":181}," action.id ",[34,201591,18954],{"class":580},[34,201593,30251],{"class":181},[34,201595,16841],{"class":580},[34,201597,201598],{"class":181},"todo, done: ",[34,201600,10307],{"class":580},[34,201602,201603],{"class":181},"todo.done } ",[34,201605,165],{"class":580},[34,201607,201608],{"class":181}," todo\n",[34,201610,201611],{"class":36,"line":263},[34,201612,201613],{"class":181},"      );\n",[34,201615,201616,201618,201621],{"class":36,"line":275},[34,201617,18986],{"class":580},[34,201619,201620],{"class":54}," 'DELETE'",[34,201622,193],{"class":181},[34,201624,201625,201627,201629,201631,201633,201635,201637,201640,201642],{"class":36,"line":700},[34,201626,15553],{"class":580},[34,201628,201569],{"class":181},[34,201630,32125],{"class":47},[34,201632,1607],{"class":181},[34,201634,201576],{"class":675},[34,201636,1895],{"class":580},[34,201638,201639],{"class":181}," todo.id ",[34,201641,48741],{"class":580},[34,201643,201644],{"class":181}," action.id);\n",[34,201646,201647,201649],{"class":36,"line":706},[34,201648,19051],{"class":580},[34,201650,193],{"class":181},[34,201652,201653,201655],{"class":36,"line":715},[34,201654,15553],{"class":580},[34,201656,201657],{"class":181}," state;\n",[34,201659,201660],{"class":36,"line":725},[34,201661,857],{"class":181},[34,201663,201664],{"class":36,"line":734},[34,201665,693],{"class":181},[34,201667,201668],{"class":36,"line":742},[34,201669,62],{"emptyLinePlaceholder":61},[34,201671,201672,201674,201677],{"class":36,"line":748},[34,201673,11044],{"class":580},[34,201675,201676],{"class":47}," TodoList",[34,201678,836],{"class":181},[34,201680,201681,201683,201685,201688,201690,201692,201694,201696,201699],{"class":36,"line":754},[34,201682,17415],{"class":580},[34,201684,8315],{"class":181},[34,201686,201687],{"class":50},"todos",[34,201689,1798],{"class":181},[34,201691,140807],{"class":50},[34,201693,17799],{"class":181},[34,201695,1301],{"class":580},[34,201697,201698],{"class":47}," useReducer",[34,201700,201701],{"class":181},"(todoReducer, []);\n",[34,201703,201704],{"class":36,"line":759},[34,201705,827],{"class":181},[34,201707,201708,201710],{"class":36,"line":771},[34,201709,8155],{"class":580},[34,201711,13975],{"class":181},[34,201713,201714],{"class":36,"line":794},[34,201715,199259],{"class":181},[34,201717,201718,201720,201722,201724,201726,201728,201730,201733,201736,201739,201742,201745],{"class":36,"line":824},[34,201719,85662],{"class":181},[34,201721,4509],{"class":177},[34,201723,85667],{"class":47},[34,201725,1301],{"class":580},[34,201727,85672],{"class":181},[34,201729,3361],{"class":580},[34,201731,201732],{"class":47}," dispatch",[34,201734,201735],{"class":181},"({ type: ",[34,201737,201738],{"class":54},"'ADD'",[34,201740,201741],{"class":181},", text: ",[34,201743,201744],{"class":54},"'New todo'",[34,201746,201747],{"class":181}," })}>\n",[34,201749,201750],{"class":36,"line":830},[34,201751,201752],{"class":181},"        Add\n",[34,201754,201755,201757,201759],{"class":36,"line":839},[34,201756,85888],{"class":181},[34,201758,4509],{"class":177},[34,201760,1248],{"class":181},[34,201762,201763,201766,201768,201770,201772,201774],{"class":36,"line":854},[34,201764,201765],{"class":181},"      {todos.",[34,201767,61180],{"class":47},[34,201769,1607],{"class":181},[34,201771,201576],{"class":675},[34,201773,1895],{"class":580},[34,201775,13975],{"class":181},[34,201777,201778,201780,201782,201784,201786],{"class":36,"line":860},[34,201779,13980],{"class":181},[34,201781,1240],{"class":177},[34,201783,64586],{"class":47},[34,201785,1301],{"class":580},[34,201787,201788],{"class":181},"{todo.id}>\n",[34,201790,201791,201794,201796],{"class":36,"line":865},[34,201792,201793],{"class":181},"          \u003C",[34,201795,34],{"class":177},[34,201797,526],{"class":181},[34,201799,201800,201803,201805,201808,201810,201813,201815,201818],{"class":36,"line":870},[34,201801,201802],{"class":47},"            style",[34,201804,1301],{"class":580},[34,201806,201807],{"class":181},"{{ textDecoration: todo.done ",[34,201809,18954],{"class":580},[34,201811,201812],{"class":54}," 'line-through'",[34,201814,64223],{"class":580},[34,201816,201817],{"class":54}," 'none'",[34,201819,2700],{"class":181},[34,201821,201822,201825,201827,201829,201831,201833,201835,201838],{"class":36,"line":876},[34,201823,201824],{"class":47},"            onClick",[34,201826,1301],{"class":580},[34,201828,85672],{"class":181},[34,201830,3361],{"class":580},[34,201832,201732],{"class":47},[34,201834,201735],{"class":181},[34,201836,201837],{"class":54},"'TOGGLE'",[34,201839,201840],{"class":181},", id: todo.id })}\n",[34,201842,201843],{"class":36,"line":885},[34,201844,201845],{"class":181},"          >\n",[34,201847,201848],{"class":36,"line":895},[34,201849,201850],{"class":181},"            {todo.text}\n",[34,201852,201853,201856,201858],{"class":36,"line":904},[34,201854,201855],{"class":181},"          \u003C/",[34,201857,34],{"class":177},[34,201859,1248],{"class":181},[34,201861,201862,201864,201866,201868,201870,201872,201874,201876,201878,201881],{"class":36,"line":915},[34,201863,201793],{"class":181},[34,201865,4509],{"class":177},[34,201867,85667],{"class":47},[34,201869,1301],{"class":580},[34,201871,85672],{"class":181},[34,201873,3361],{"class":580},[34,201875,201732],{"class":47},[34,201877,201735],{"class":181},[34,201879,201880],{"class":54},"'DELETE'",[34,201882,201883],{"class":181},", id: todo.id })}>\n",[34,201885,201886],{"class":36,"line":927},[34,201887,201888],{"class":181},"            Delete\n",[34,201890,201891,201893,201895],{"class":36,"line":932},[34,201892,201855],{"class":181},[34,201894,4509],{"class":177},[34,201896,1248],{"class":181},[34,201898,201899,201901,201903],{"class":36,"line":944},[34,201900,14058],{"class":181},[34,201902,1240],{"class":177},[34,201904,1248],{"class":181},[34,201906,201907],{"class":36,"line":966},[34,201908,85554],{"class":181},[34,201910,201911],{"class":36,"line":1948},[34,201912,199441],{"class":181},[34,201914,201915],{"class":36,"line":1953},[34,201916,61002],{"class":181},[34,201918,201919],{"class":36,"line":3616},[34,201920,693],{"class":181},[388,201922,201923],{},"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 .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 .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 .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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":30,"searchDepth":44,"depth":44,"links":201925},[201926],{"id":201471,"depth":44,"text":200535},"useReducer Hook in React.",{},{"title":200535,"description":201927},"react/usereducer-hook",[86172,8606,982,120402],"tlUt1woYXnp-qDCQ2vmNT346XvTH7yCOfNI_7OwVpSk",{"id":201934,"title":200523,"body":201935,"date":402,"description":202090,"extension":404,"meta":202091,"navigation":61,"order":77,"path":200522,"seo":202092,"stem":202093,"subject":86172,"tags":202094,"__hash__":202095},"topics/react/useref-hook.md",{"type":8,"value":201936,"toc":202087},[201937,201940,202084],[11,201938,200523],{"id":201939},"useref-hook",[25,201941,201943],{"className":198968,"code":201942,"language":198970,"meta":30,"style":30},"import { useRef, useEffect } from 'react';\n\nfunction TextInput() {\n  // DOM reference\n  const inputRef = useRef(null);\n  \n  // Mutable value that persists\n  const renderCount = useRef(0);\n  \n  useEffect(() => {\n    inputRef.current.focus(); // Access DOM element\n    renderCount.current += 1;\n  });\n  \n  return \u003Cinput ref={inputRef} />;\n}\n",[20,201944,201945,201958,201962,201971,201976,201994,201998,202003,202020,202024,202034,202046,202057,202061,202065,202080],{"__ignoreMap":30},[34,201946,201947,201949,201952,201954,201956],{"class":36,"line":37},[34,201948,581],{"class":580},[34,201950,201951],{"class":181}," { useRef, useEffect } ",[34,201953,587],{"class":580},[34,201955,85598],{"class":54},[34,201957,593],{"class":181},[34,201959,201960],{"class":36,"line":44},[34,201961,62],{"emptyLinePlaceholder":61},[34,201963,201964,201966,201969],{"class":36,"line":58},[34,201965,11044],{"class":580},[34,201967,201968],{"class":47}," TextInput",[34,201970,836],{"class":181},[34,201972,201973],{"class":36,"line":65},[34,201974,201975],{"class":40},"  // DOM reference\n",[34,201977,201978,201980,201983,201985,201988,201990,201992],{"class":36,"line":71},[34,201979,17415],{"class":580},[34,201981,201982],{"class":50}," inputRef",[34,201984,683],{"class":580},[34,201986,201987],{"class":47}," useRef",[34,201989,1607],{"class":181},[34,201991,111592],{"class":50},[34,201993,1586],{"class":181},[34,201995,201996],{"class":36,"line":77},[34,201997,827],{"class":181},[34,201999,202000],{"class":36,"line":82},[34,202001,202002],{"class":40},"  // Mutable value that persists\n",[34,202004,202005,202007,202010,202012,202014,202016,202018],{"class":36,"line":88},[34,202006,17415],{"class":580},[34,202008,202009],{"class":50}," renderCount",[34,202011,683],{"class":580},[34,202013,201987],{"class":47},[34,202015,1607],{"class":181},[34,202017,2773],{"class":50},[34,202019,1586],{"class":181},[34,202021,202022],{"class":36,"line":242},[34,202023,827],{"class":181},[34,202025,202026,202028,202030,202032],{"class":36,"line":250},[34,202027,199577],{"class":47},[34,202029,4275],{"class":181},[34,202031,3361],{"class":580},[34,202033,661],{"class":181},[34,202035,202036,202039,202041,202043],{"class":36,"line":263},[34,202037,202038],{"class":181},"    inputRef.current.",[34,202040,4906],{"class":47},[34,202042,68957],{"class":181},[34,202044,202045],{"class":40},"// Access DOM element\n",[34,202047,202048,202051,202053,202055],{"class":36,"line":275},[34,202049,202050],{"class":181},"    renderCount.current ",[34,202052,31462],{"class":580},[34,202054,3567],{"class":50},[34,202056,593],{"class":181},[34,202058,202059],{"class":36,"line":700},[34,202060,3186],{"class":181},[34,202062,202063],{"class":36,"line":706},[34,202064,827],{"class":181},[34,202066,202067,202069,202071,202073,202075,202077],{"class":36,"line":715},[34,202068,8155],{"class":580},[34,202070,5470],{"class":181},[34,202072,4600],{"class":177},[34,202074,162430],{"class":47},[34,202076,1301],{"class":580},[34,202078,202079],{"class":181},"{inputRef} />;\n",[34,202081,202082],{"class":36,"line":725},[34,202083,693],{"class":181},[388,202085,202086],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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":30,"searchDepth":44,"depth":44,"links":202088},[202089],{"id":201939,"depth":44,"text":200523},"useRef Hook in React.",{},{"title":200523,"description":202090},"react/useref-hook",[86172,8606,982,120402],"Atw_YxUbrI3nBWOgdkLk24fEoRbbQyjMwa0HFJG1L1o",{"id":202097,"title":200505,"body":202098,"date":402,"description":202388,"extension":404,"meta":202389,"navigation":61,"order":58,"path":200504,"seo":202390,"stem":202391,"subject":86172,"tags":202392,"__hash__":202393},"topics/react/usestate-hook.md",{"type":8,"value":202099,"toc":202385},[202100,202103,202382],[11,202101,200505],{"id":202102},"usestate-hook",[25,202104,202106],{"className":198968,"code":202105,"language":198970,"meta":30,"style":30},"import { useState } from 'react';\n\nfunction Counter() {\n  // Basic state\n  const [count, setCount] = useState(0);\n  \n  // State with object\n  const [user, setUser] = useState({ name: '', age: 0 });\n  \n  // Update state\n  const increment = () => setCount(count + 1);\n  \n  // Functional update (for state based on previous)\n  const incrementSafe = () => setCount(prev => prev + 1);\n  \n  // Update object state\n  const updateName = (name) => {\n    setUser(prev => ({ ...prev, name }));\n  };\n  \n  return (\n    \u003Cdiv>\n      \u003Cp>Count: {count}\u003C/p>\n      \u003Cbutton onClick={increment}>+\u003C/button>\n    \u003C/div>\n  );\n}\n",[20,202107,202108,202120,202124,202132,202137,202161,202165,202170,202199,202203,202208,202230,202234,202239,202268,202272,202277,202296,202314,202318,202322,202328,202336,202349,202366,202374,202378],{"__ignoreMap":30},[34,202109,202110,202112,202114,202116,202118],{"class":36,"line":37},[34,202111,581],{"class":580},[34,202113,85593],{"class":181},[34,202115,587],{"class":580},[34,202117,85598],{"class":54},[34,202119,593],{"class":181},[34,202121,202122],{"class":36,"line":44},[34,202123,62],{"emptyLinePlaceholder":61},[34,202125,202126,202128,202130],{"class":36,"line":58},[34,202127,11044],{"class":580},[34,202129,85615],{"class":47},[34,202131,836],{"class":181},[34,202133,202134],{"class":36,"line":65},[34,202135,202136],{"class":40},"  // Basic state\n",[34,202138,202139,202141,202143,202145,202147,202149,202151,202153,202155,202157,202159],{"class":36,"line":71},[34,202140,17415],{"class":580},[34,202142,8315],{"class":181},[34,202144,4284],{"class":50},[34,202146,1798],{"class":181},[34,202148,85630],{"class":50},[34,202150,17799],{"class":181},[34,202152,1301],{"class":580},[34,202154,85637],{"class":47},[34,202156,1607],{"class":181},[34,202158,2773],{"class":50},[34,202160,1586],{"class":181},[34,202162,202163],{"class":36,"line":77},[34,202164,827],{"class":181},[34,202166,202167],{"class":36,"line":82},[34,202168,202169],{"class":40},"  // State with object\n",[34,202171,202172,202174,202176,202178,202180,202183,202185,202187,202189,202191,202193,202195,202197],{"class":36,"line":88},[34,202173,17415],{"class":580},[34,202175,8315],{"class":181},[34,202177,3945],{"class":50},[34,202179,1798],{"class":181},[34,202181,202182],{"class":50},"setUser",[34,202184,17799],{"class":181},[34,202186,1301],{"class":580},[34,202188,85637],{"class":47},[34,202190,14862],{"class":181},[34,202192,3151],{"class":54},[34,202194,83356],{"class":181},[34,202196,2773],{"class":50},[34,202198,15567],{"class":181},[34,202200,202201],{"class":36,"line":242},[34,202202,827],{"class":181},[34,202204,202205],{"class":36,"line":250},[34,202206,202207],{"class":40},"  // Update state\n",[34,202209,202210,202212,202214,202216,202218,202220,202222,202224,202226,202228],{"class":36,"line":263},[34,202211,17415],{"class":580},[34,202213,60840],{"class":47},[34,202215,683],{"class":580},[34,202217,17406],{"class":181},[34,202219,3361],{"class":580},[34,202221,85677],{"class":47},[34,202223,85680],{"class":181},[34,202225,2940],{"class":580},[34,202227,3567],{"class":50},[34,202229,1586],{"class":181},[34,202231,202232],{"class":36,"line":275},[34,202233,827],{"class":181},[34,202235,202236],{"class":36,"line":700},[34,202237,202238],{"class":40},"  // Functional update (for state based on previous)\n",[34,202240,202241,202243,202246,202248,202250,202252,202254,202256,202258,202260,202262,202264,202266],{"class":36,"line":706},[34,202242,17415],{"class":580},[34,202244,202245],{"class":47}," incrementSafe",[34,202247,683],{"class":580},[34,202249,17406],{"class":181},[34,202251,3361],{"class":580},[34,202253,85677],{"class":47},[34,202255,1607],{"class":181},[34,202257,200686],{"class":675},[34,202259,1895],{"class":580},[34,202261,200691],{"class":181},[34,202263,2940],{"class":580},[34,202265,3567],{"class":50},[34,202267,1586],{"class":181},[34,202269,202270],{"class":36,"line":715},[34,202271,827],{"class":181},[34,202273,202274],{"class":36,"line":725},[34,202275,202276],{"class":40},"  // Update object state\n",[34,202278,202279,202281,202284,202286,202288,202290,202292,202294],{"class":36,"line":734},[34,202280,17415],{"class":580},[34,202282,202283],{"class":47}," updateName",[34,202285,683],{"class":580},[34,202287,3204],{"class":181},[34,202289,178],{"class":675},[34,202291,4817],{"class":181},[34,202293,3361],{"class":580},[34,202295,661],{"class":181},[34,202297,202298,202301,202303,202305,202307,202309,202311],{"class":36,"line":742},[34,202299,202300],{"class":47},"    setUser",[34,202302,1607],{"class":181},[34,202304,200686],{"class":675},[34,202306,1895],{"class":580},[34,202308,59905],{"class":181},[34,202310,16841],{"class":580},[34,202312,202313],{"class":181},"prev, name }));\n",[34,202315,202316],{"class":36,"line":748},[34,202317,126747],{"class":181},[34,202319,202320],{"class":36,"line":754},[34,202321,827],{"class":181},[34,202323,202324,202326],{"class":36,"line":759},[34,202325,8155],{"class":580},[34,202327,13975],{"class":181},[34,202329,202330,202332,202334],{"class":36,"line":771},[34,202331,1294],{"class":181},[34,202333,1240],{"class":177},[34,202335,1248],{"class":181},[34,202337,202338,202340,202342,202345,202347],{"class":36,"line":794},[34,202339,85662],{"class":181},[34,202341,16],{"class":177},[34,202343,202344],{"class":181},">Count: {count}\u003C/",[34,202346,16],{"class":177},[34,202348,1248],{"class":181},[34,202350,202351,202353,202355,202357,202359,202362,202364],{"class":36,"line":824},[34,202352,85662],{"class":181},[34,202354,4509],{"class":177},[34,202356,85667],{"class":47},[34,202358,1301],{"class":580},[34,202360,202361],{"class":181},"{increment}>+\u003C/",[34,202363,4509],{"class":177},[34,202365,1248],{"class":181},[34,202367,202368,202370,202372],{"class":36,"line":830},[34,202369,74431],{"class":181},[34,202371,1240],{"class":177},[34,202373,1248],{"class":181},[34,202375,202376],{"class":36,"line":839},[34,202377,61002],{"class":181},[34,202379,202380],{"class":36,"line":854},[34,202381,693],{"class":181},[388,202383,202384],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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":30,"searchDepth":44,"depth":44,"links":202386},[202387],{"id":202102,"depth":44,"text":200505},"useState Hook in React.",{},{"title":200505,"description":202388},"react/usestate-hook",[86172,8606,982,120402],"rcaIT3YDnzMcO-z1vCWwV1_DfN4qz7vVC5l0BYoeFY8",{"id":202395,"title":202396,"body":202397,"date":402,"description":202970,"extension":404,"meta":202971,"navigation":61,"order":37,"path":202972,"seo":202973,"stem":202974,"subject":202975,"tags":202976,"__hash__":202977},"topics/recoil/overview.md","Recoil",{"type":8,"value":202398,"toc":202958},[202399,202403,202406,202417,202419,202421,202424,202458,202465,202549,202551,202553,202557,202560,202623,202625,202628,202720,202722,202726,202736,202916,202918,202920,202940,202942,202946,202955],[11,202400,202402],{"id":202401},"what-is-recoil","What is Recoil?",[16,202404,202405],{},"Recoil is a state management library for React that provides:",[309,202407,202408,202411,202414],{},[312,202409,202410],{},"Minimal API and seamless integration with React.",[312,202412,202413],{},"Declarative data-flow graphs for derived and asynchronous data.",[312,202415,202416],{},"Efficient cross-component observation of app state changes.",[7979,202418],{},[11,202420,97],{"id":96},[16,202422,202423],{},"To install Recoil, use npm or yarn:",[25,202425,202427],{"className":27,"code":202426,"language":29,"meta":30,"style":30},"# Using npm\nnpm install recoil\n\n# Using yarn\nyarn add recoil\n",[20,202428,202429,202433,202442,202446,202450],{"__ignoreMap":30},[34,202430,202431],{"class":36,"line":37},[34,202432,88725],{"class":40},[34,202434,202435,202437,202439],{"class":36,"line":44},[34,202436,8177],{"class":47},[34,202438,118],{"class":54},[34,202440,202441],{"class":54}," recoil\n",[34,202443,202444],{"class":36,"line":58},[34,202445,62],{"emptyLinePlaceholder":61},[34,202447,202448],{"class":36,"line":65},[34,202449,120149],{"class":40},[34,202451,202452,202454,202456],{"class":36,"line":71},[34,202453,13810],{"class":47},[34,202455,7854],{"class":54},[34,202457,202441],{"class":54},[16,202459,202460,202461,202464],{},"Add ",[20,202462,202463],{},"RecoilRoot"," to encapsulate your app’s components:",[25,202466,202468],{"className":198968,"code":202467,"language":198970,"meta":30,"style":30},"import React from 'react';\nimport { RecoilRoot } from 'recoil';\n\nfunction App() {\n  return (\n    \u003CRecoilRoot>\n      \u003CMyApp />\n    \u003C/RecoilRoot>\n  );\n}\n",[20,202469,202470,202483,202497,202501,202510,202516,202524,202533,202541,202545],{"__ignoreMap":30},[34,202471,202472,202474,202477,202479,202481],{"class":36,"line":37},[34,202473,581],{"class":580},[34,202475,202476],{"class":181}," React ",[34,202478,587],{"class":580},[34,202480,85598],{"class":54},[34,202482,593],{"class":181},[34,202484,202485,202487,202490,202492,202495],{"class":36,"line":44},[34,202486,581],{"class":580},[34,202488,202489],{"class":181}," { RecoilRoot } ",[34,202491,587],{"class":580},[34,202493,202494],{"class":54}," 'recoil'",[34,202496,593],{"class":181},[34,202498,202499],{"class":36,"line":58},[34,202500,62],{"emptyLinePlaceholder":61},[34,202502,202503,202505,202508],{"class":36,"line":65},[34,202504,11044],{"class":580},[34,202506,202507],{"class":47}," App",[34,202509,836],{"class":181},[34,202511,202512,202514],{"class":36,"line":71},[34,202513,8155],{"class":580},[34,202515,13975],{"class":181},[34,202517,202518,202520,202522],{"class":36,"line":77},[34,202519,1294],{"class":181},[34,202521,202463],{"class":50},[34,202523,1248],{"class":181},[34,202525,202526,202528,202531],{"class":36,"line":82},[34,202527,85662],{"class":181},[34,202529,202530],{"class":50},"MyApp",[34,202532,1187],{"class":181},[34,202534,202535,202537,202539],{"class":36,"line":88},[34,202536,74431],{"class":181},[34,202538,202463],{"class":50},[34,202540,1248],{"class":181},[34,202542,202543],{"class":36,"line":242},[34,202544,61002],{"class":181},[34,202546,202547],{"class":36,"line":250},[34,202548,693],{"class":181},[7979,202550],{},[11,202552,62663],{"id":62662},[102,202554,202556],{"id":202555},"atoms","Atoms",[16,202558,202559],{},"Atoms are the building blocks of state in Recoil. They represent pieces of state that can be shared globally:",[25,202561,202563],{"className":111475,"code":202562,"language":111477,"meta":30,"style":30},"import { atom } from 'recoil';\n\nconst textState = atom({\n  key: 'textState', // unique ID for the atom\n  default: '', // default value\n});\n",[20,202564,202565,202578,202582,202595,202607,202619],{"__ignoreMap":30},[34,202566,202567,202569,202572,202574,202576],{"class":36,"line":37},[34,202568,581],{"class":580},[34,202570,202571],{"class":181}," { atom } ",[34,202573,587],{"class":580},[34,202575,202494],{"class":54},[34,202577,593],{"class":181},[34,202579,202580],{"class":36,"line":44},[34,202581,62],{"emptyLinePlaceholder":61},[34,202583,202584,202586,202589,202591,202593],{"class":36,"line":58},[34,202585,14676],{"class":580},[34,202587,202588],{"class":50}," textState",[34,202590,683],{"class":580},[34,202592,127322],{"class":47},[34,202594,613],{"class":181},[34,202596,202597,202599,202602,202604],{"class":36,"line":65},[34,202598,162343],{"class":181},[34,202600,202601],{"class":54},"'textState'",[34,202603,1798],{"class":181},[34,202605,202606],{"class":40},"// unique ID for the atom\n",[34,202608,202609,202612,202614,202616],{"class":36,"line":71},[34,202610,202611],{"class":181},"  default: ",[34,202613,3151],{"class":54},[34,202615,1798],{"class":181},[34,202617,202618],{"class":40},"// default value\n",[34,202620,202621],{"class":36,"line":77},[34,202622,14873],{"class":181},[102,202624,40900],{"id":41229},[16,202626,202627],{},"Selectors derive state from Atoms or other Selectors. They are pure functions:",[25,202629,202631],{"className":111475,"code":202630,"language":111477,"meta":30,"style":30},"import { selector } from 'recoil';\n\nconst charCountState = selector({\n  key: 'charCountState',\n  get: ({ get }) => {\n    const text = get(textState);\n    return text.length;\n  },\n});\n",[20,202632,202633,202646,202650,202664,202673,202688,202701,202712,202716],{"__ignoreMap":30},[34,202634,202635,202637,202640,202642,202644],{"class":36,"line":37},[34,202636,581],{"class":580},[34,202638,202639],{"class":181}," { selector } ",[34,202641,587],{"class":580},[34,202643,202494],{"class":54},[34,202645,593],{"class":181},[34,202647,202648],{"class":36,"line":44},[34,202649,62],{"emptyLinePlaceholder":61},[34,202651,202652,202654,202657,202659,202662],{"class":36,"line":58},[34,202653,14676],{"class":580},[34,202655,202656],{"class":50}," charCountState",[34,202658,683],{"class":580},[34,202660,202661],{"class":47}," selector",[34,202663,613],{"class":181},[34,202665,202666,202668,202671],{"class":36,"line":65},[34,202667,162343],{"class":181},[34,202669,202670],{"class":54},"'charCountState'",[34,202672,624],{"class":181},[34,202674,202675,202677,202680,202682,202684,202686],{"class":36,"line":71},[34,202676,125440],{"class":47},[34,202678,202679],{"class":181},": ({ ",[34,202681,1573],{"class":675},[34,202683,59911],{"class":181},[34,202685,3361],{"class":580},[34,202687,661],{"class":181},[34,202689,202690,202692,202694,202696,202698],{"class":36,"line":77},[34,202691,1632],{"class":580},[34,202693,9006],{"class":50},[34,202695,683],{"class":580},[34,202697,7173],{"class":47},[34,202699,202700],{"class":181},"(textState);\n",[34,202702,202703,202705,202708,202710],{"class":36,"line":82},[34,202704,1564],{"class":580},[34,202706,202707],{"class":181}," text.",[34,202709,2908],{"class":50},[34,202711,593],{"class":181},[34,202713,202714],{"class":36,"line":88},[34,202715,3400],{"class":181},[34,202717,202718],{"class":36,"line":242},[34,202719,14873],{"class":181},[7979,202721],{},[11,202723,202725],{"id":202724},"using-state-in-components","Using State in Components",[16,202727,202728,202729,128469,202732,202735],{},"Use the ",[20,202730,202731],{},"useRecoilState",[20,202733,202734],{},"useRecoilValue"," hooks to interact with state:",[25,202737,202739],{"className":198968,"code":202738,"language":198970,"meta":30,"style":30},"import React from 'react';\nimport { useRecoilState, useRecoilValue } from 'recoil';\n\nfunction CharacterCounter() {\n  const [text, setText] = useRecoilState(textState);\n  const count = useRecoilValue(charCountState);\n\n  return (\n    \u003Cdiv>\n      \u003Cinput\n        type=\"text\"\n        value={text}\n        onChange={(e) => setText(e.target.value)}\n      />\n      \u003Cp>Character Count: {count}\u003C/p>\n    \u003C/div>\n  );\n}\n",[20,202740,202741,202753,202766,202770,202779,202801,202815,202819,202825,202833,202840,202850,202860,202882,202887,202900,202908,202912],{"__ignoreMap":30},[34,202742,202743,202745,202747,202749,202751],{"class":36,"line":37},[34,202744,581],{"class":580},[34,202746,202476],{"class":181},[34,202748,587],{"class":580},[34,202750,85598],{"class":54},[34,202752,593],{"class":181},[34,202754,202755,202757,202760,202762,202764],{"class":36,"line":44},[34,202756,581],{"class":580},[34,202758,202759],{"class":181}," { useRecoilState, useRecoilValue } ",[34,202761,587],{"class":580},[34,202763,202494],{"class":54},[34,202765,593],{"class":181},[34,202767,202768],{"class":36,"line":58},[34,202769,62],{"emptyLinePlaceholder":61},[34,202771,202772,202774,202777],{"class":36,"line":65},[34,202773,11044],{"class":580},[34,202775,202776],{"class":47}," CharacterCounter",[34,202778,836],{"class":181},[34,202780,202781,202783,202785,202787,202789,202792,202794,202796,202799],{"class":36,"line":71},[34,202782,17415],{"class":580},[34,202784,8315],{"class":181},[34,202786,780],{"class":50},[34,202788,1798],{"class":181},[34,202790,202791],{"class":50},"setText",[34,202793,17799],{"class":181},[34,202795,1301],{"class":580},[34,202797,202798],{"class":47}," useRecoilState",[34,202800,202700],{"class":181},[34,202802,202803,202805,202807,202809,202812],{"class":36,"line":77},[34,202804,17415],{"class":580},[34,202806,161661],{"class":50},[34,202808,683],{"class":580},[34,202810,202811],{"class":47}," useRecoilValue",[34,202813,202814],{"class":181},"(charCountState);\n",[34,202816,202817],{"class":36,"line":82},[34,202818,62],{"emptyLinePlaceholder":61},[34,202820,202821,202823],{"class":36,"line":88},[34,202822,8155],{"class":580},[34,202824,13975],{"class":181},[34,202826,202827,202829,202831],{"class":36,"line":242},[34,202828,1294],{"class":181},[34,202830,1240],{"class":177},[34,202832,1248],{"class":181},[34,202834,202835,202837],{"class":36,"line":250},[34,202836,85662],{"class":181},[34,202838,202839],{"class":177},"input\n",[34,202841,202842,202845,202847],{"class":36,"line":263},[34,202843,202844],{"class":47},"        type",[34,202846,1301],{"class":580},[34,202848,202849],{"class":54},"\"text\"\n",[34,202851,202852,202855,202857],{"class":36,"line":275},[34,202853,202854],{"class":47},"        value",[34,202856,1301],{"class":580},[34,202858,202859],{"class":181},"{text}\n",[34,202861,202862,202865,202867,202870,202872,202874,202876,202879],{"class":36,"line":700},[34,202863,202864],{"class":47},"        onChange",[34,202866,1301],{"class":580},[34,202868,202869],{"class":181},"{(",[34,202871,5476],{"class":675},[34,202873,4817],{"class":181},[34,202875,3361],{"class":580},[34,202877,202878],{"class":47}," setText",[34,202880,202881],{"class":181},"(e.target.value)}\n",[34,202883,202884],{"class":36,"line":706},[34,202885,202886],{"class":181},"      />\n",[34,202888,202889,202891,202893,202896,202898],{"class":36,"line":715},[34,202890,85662],{"class":181},[34,202892,16],{"class":177},[34,202894,202895],{"class":181},">Character Count: {count}\u003C/",[34,202897,16],{"class":177},[34,202899,1248],{"class":181},[34,202901,202902,202904,202906],{"class":36,"line":725},[34,202903,74431],{"class":181},[34,202905,1240],{"class":177},[34,202907,1248],{"class":181},[34,202909,202910],{"class":36,"line":734},[34,202911,61002],{"class":181},[34,202913,202914],{"class":36,"line":742},[34,202915,693],{"class":181},[7979,202917],{},[11,202919,158032],{"id":158031},[309,202921,202922,202928,202934],{},[312,202923,202924,202927],{},[8471,202925,202926],{},"Persistence:"," Easily implement state persistence using custom persistence layers.",[312,202929,202930,202933],{},[8471,202931,202932],{},"Time Travel Debugging:"," Enable undo/redo by tracking state changes across the app.",[312,202935,202936,202939],{},[8471,202937,202938],{},"Concurrency Debugging:"," With Recoil, concurrent React modes are first-class, making debugging smoother when using experimental features like Suspense.",[7979,202941],{},[102,202943,202945],{"id":202944},"additional-reference","Additional Reference",[16,202947,202948,202949,202954],{},"Check the official documentation at ",[145,202950,202953],{"href":202951,"rel":202952},"https://recoiljs.org/docs/introduction/getting-started",[149],"Recoil Official Guide"," for more examples and patterns.",[388,202956,202957],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":30,"searchDepth":44,"depth":44,"links":202959},[202960,202961,202962,202966,202967],{"id":202401,"depth":44,"text":202402},{"id":96,"depth":44,"text":97},{"id":62662,"depth":44,"text":62663,"children":202963},[202964,202965],{"id":202555,"depth":58,"text":202556},{"id":41229,"depth":58,"text":40900},{"id":202724,"depth":44,"text":202725},{"id":158031,"depth":44,"text":158032,"children":202968},[202969],{"id":202944,"depth":58,"text":202945},"Recoil is a state management library for React applications. Learn how to integrate and use it effectively.",{},"/recoil/overview",{"title":202396,"description":202970},"recoil/overview","recoil",[202975,86172,127360,982],"uLWePIHWJUOsXqEcrLDCePcApwrNuUHGcW3aZJsSD-0",{"id":202979,"title":83027,"body":202980,"date":402,"description":203062,"extension":404,"meta":203063,"navigation":61,"order":44,"path":203064,"seo":203065,"stem":203066,"subject":203067,"tags":203068,"__hash__":203069},"topics/redis/connection.md",{"type":8,"value":202981,"toc":203059},[202982,202984,203057],[11,202983,83027],{"id":83026},[25,202985,202987],{"className":27,"code":202986,"language":29,"meta":30,"style":30},"# Connect to Redis\nredis-cli\n\n# Connect to remote Redis\nredis-cli -h hostname -p 6379 -a password\n\n# Ping server\nPING\n\n# Select database (0-15)\nSELECT 0\n",[20,202988,202989,202994,202999,203003,203008,203028,203032,203037,203042,203046,203051],{"__ignoreMap":30},[34,202990,202991],{"class":36,"line":37},[34,202992,202993],{"class":40},"# Connect to Redis\n",[34,202995,202996],{"class":36,"line":44},[34,202997,202998],{"class":47},"redis-cli\n",[34,203000,203001],{"class":36,"line":58},[34,203002,62],{"emptyLinePlaceholder":61},[34,203004,203005],{"class":36,"line":65},[34,203006,203007],{"class":40},"# Connect to remote Redis\n",[34,203009,203010,203013,203015,203018,203020,203023,203025],{"class":36,"line":71},[34,203011,203012],{"class":47},"redis-cli",[34,203014,110397],{"class":50},[34,203016,203017],{"class":54}," hostname",[34,203019,5275],{"class":50},[34,203021,203022],{"class":50}," 6379",[34,203024,5059],{"class":50},[34,203026,203027],{"class":54}," password\n",[34,203029,203030],{"class":36,"line":77},[34,203031,62],{"emptyLinePlaceholder":61},[34,203033,203034],{"class":36,"line":82},[34,203035,203036],{"class":40},"# Ping server\n",[34,203038,203039],{"class":36,"line":88},[34,203040,203041],{"class":47},"PING\n",[34,203043,203044],{"class":36,"line":242},[34,203045,62],{"emptyLinePlaceholder":61},[34,203047,203048],{"class":36,"line":250},[34,203049,203050],{"class":40},"# Select database (0-15)\n",[34,203052,203053,203055],{"class":36,"line":263},[34,203054,28529],{"class":47},[34,203056,36394],{"class":50},[388,203058,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":203060},[203061],{"id":83026,"depth":44,"text":83027},"Connection in Redis.",{},"/redis/connection",{"title":83027,"description":203062},"redis/connection","redis",[203067,93298,28650,28649,191593],"fnkUk1nTH4Yxjz9Y6hEZzDKiMqD8aE2WcqMp0-9H0vw",{"id":203071,"title":203072,"body":203073,"date":402,"description":203294,"extension":404,"meta":203295,"navigation":61,"order":88,"path":203296,"seo":203297,"stem":203298,"subject":203067,"tags":203299,"__hash__":203300},"topics/redis/hashes.md","Hashes",{"type":8,"value":203074,"toc":203291},[203075,203078,203289],[11,203076,203072],{"id":203077},"hashes",[25,203079,203081],{"className":27,"code":203080,"language":29,"meta":30,"style":30},"# Set field\nHSET hash field \"value\"\n\n# Set multiple fields\nHMSET hash field1 \"value1\" field2 \"value2\"\n\n# Get field\nHGET hash field\n\n# Get multiple fields\nHMGET hash field1 field2\n\n# Get all fields and values\nHGETALL hash\n\n# Get all field names\nHKEYS hash\n\n# Get all values\nHVALS hash\n\n# Check if field exists\nHEXISTS hash field\n\n# Delete field\nHDEL hash field\n\n# Get number of fields\nHLEN hash\n\n# Increment field value\nHINCRBY hash field 5\n",[20,203082,203083,203088,203100,203104,203109,203128,203132,203137,203147,203151,203156,203168,203172,203177,203185,203189,203194,203201,203205,203210,203217,203221,203226,203235,203239,203244,203253,203257,203262,203269,203273,203278],{"__ignoreMap":30},[34,203084,203085],{"class":36,"line":37},[34,203086,203087],{"class":40},"# Set field\n",[34,203089,203090,203093,203095,203097],{"class":36,"line":44},[34,203091,203092],{"class":47},"HSET",[34,203094,16406],{"class":54},[34,203096,133532],{"class":54},[34,203098,203099],{"class":54}," \"value\"\n",[34,203101,203102],{"class":36,"line":58},[34,203103,62],{"emptyLinePlaceholder":61},[34,203105,203106],{"class":36,"line":65},[34,203107,203108],{"class":40},"# Set multiple fields\n",[34,203110,203111,203114,203116,203119,203122,203125],{"class":36,"line":71},[34,203112,203113],{"class":47},"HMSET",[34,203115,16406],{"class":54},[34,203117,203118],{"class":54}," field1",[34,203120,203121],{"class":54}," \"value1\"",[34,203123,203124],{"class":54}," field2",[34,203126,203127],{"class":54}," \"value2\"\n",[34,203129,203130],{"class":36,"line":77},[34,203131,62],{"emptyLinePlaceholder":61},[34,203133,203134],{"class":36,"line":82},[34,203135,203136],{"class":40},"# Get field\n",[34,203138,203139,203142,203144],{"class":36,"line":88},[34,203140,203141],{"class":47},"HGET",[34,203143,16406],{"class":54},[34,203145,203146],{"class":54}," field\n",[34,203148,203149],{"class":36,"line":242},[34,203150,62],{"emptyLinePlaceholder":61},[34,203152,203153],{"class":36,"line":250},[34,203154,203155],{"class":40},"# Get multiple fields\n",[34,203157,203158,203161,203163,203165],{"class":36,"line":263},[34,203159,203160],{"class":47},"HMGET",[34,203162,16406],{"class":54},[34,203164,203118],{"class":54},[34,203166,203167],{"class":54}," field2\n",[34,203169,203170],{"class":36,"line":275},[34,203171,62],{"emptyLinePlaceholder":61},[34,203173,203174],{"class":36,"line":700},[34,203175,203176],{"class":40},"# Get all fields and values\n",[34,203178,203179,203182],{"class":36,"line":706},[34,203180,203181],{"class":47},"HGETALL",[34,203183,203184],{"class":54}," hash\n",[34,203186,203187],{"class":36,"line":715},[34,203188,62],{"emptyLinePlaceholder":61},[34,203190,203191],{"class":36,"line":725},[34,203192,203193],{"class":40},"# Get all field names\n",[34,203195,203196,203199],{"class":36,"line":734},[34,203197,203198],{"class":47},"HKEYS",[34,203200,203184],{"class":54},[34,203202,203203],{"class":36,"line":742},[34,203204,62],{"emptyLinePlaceholder":61},[34,203206,203207],{"class":36,"line":748},[34,203208,203209],{"class":40},"# Get all values\n",[34,203211,203212,203215],{"class":36,"line":754},[34,203213,203214],{"class":47},"HVALS",[34,203216,203184],{"class":54},[34,203218,203219],{"class":36,"line":759},[34,203220,62],{"emptyLinePlaceholder":61},[34,203222,203223],{"class":36,"line":771},[34,203224,203225],{"class":40},"# Check if field exists\n",[34,203227,203228,203231,203233],{"class":36,"line":794},[34,203229,203230],{"class":47},"HEXISTS",[34,203232,16406],{"class":54},[34,203234,203146],{"class":54},[34,203236,203237],{"class":36,"line":824},[34,203238,62],{"emptyLinePlaceholder":61},[34,203240,203241],{"class":36,"line":830},[34,203242,203243],{"class":40},"# Delete field\n",[34,203245,203246,203249,203251],{"class":36,"line":839},[34,203247,203248],{"class":47},"HDEL",[34,203250,16406],{"class":54},[34,203252,203146],{"class":54},[34,203254,203255],{"class":36,"line":854},[34,203256,62],{"emptyLinePlaceholder":61},[34,203258,203259],{"class":36,"line":860},[34,203260,203261],{"class":40},"# Get number of fields\n",[34,203263,203264,203267],{"class":36,"line":865},[34,203265,203266],{"class":47},"HLEN",[34,203268,203184],{"class":54},[34,203270,203271],{"class":36,"line":870},[34,203272,62],{"emptyLinePlaceholder":61},[34,203274,203275],{"class":36,"line":876},[34,203276,203277],{"class":40},"# Increment field value\n",[34,203279,203280,203283,203285,203287],{"class":36,"line":885},[34,203281,203282],{"class":47},"HINCRBY",[34,203284,16406],{"class":54},[34,203286,133532],{"class":54},[34,203288,134626],{"class":50},[388,203290,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":203292},[203293],{"id":203077,"depth":44,"text":203072},"Hashes in Redis.",{},"/redis/hashes",{"title":203072,"description":203294},"redis/hashes",[203067,93298,28650,28649,191593],"UW7601nszJ_k_Tv-2oIZyFGMwB6m7G4aKaRqQ_0u4bY",{"id":203302,"title":203303,"body":203304,"date":402,"description":203533,"extension":404,"meta":203534,"navigation":61,"order":65,"path":203535,"seo":203536,"stem":203537,"subject":203067,"tags":203538,"__hash__":203539},"topics/redis/keys.md","Keys",{"type":8,"value":203305,"toc":203530},[203306,203308,203528],[11,203307,203303],{"id":52345},[25,203309,203311],{"className":27,"code":203310,"language":29,"meta":30,"style":30},"# Check if key exists\nEXISTS key\n\n# Delete key(s)\nDEL key1 key2\n\n# Delete key asynchronously\nUNLINK key\n\n# Find keys by pattern\nKEYS pattern*\n\n# Get key type\nTYPE key\n\n# Rename key\nRENAME oldkey newkey\n\n# Set expiration (seconds)\nEXPIRE key 60\n\n# Set expiration (milliseconds)\nPEXPIRE key 60000\n\n# Remove expiration\nPERSIST key\n\n# Get time to live (seconds)\nTTL key\n\n# Get time to live (milliseconds)\nPTTL key\n\n# Scan keys (cursor-based)\nSCAN 0 MATCH pattern* COUNT 100\n",[20,203312,203313,203318,203326,203330,203335,203346,203350,203355,203362,203366,203371,203380,203384,203389,203396,203400,203405,203416,203420,203425,203435,203439,203444,203454,203458,203463,203470,203474,203479,203486,203490,203495,203502,203506,203511],{"__ignoreMap":30},[34,203314,203315],{"class":36,"line":37},[34,203316,203317],{"class":40},"# Check if key exists\n",[34,203319,203320,203323],{"class":36,"line":44},[34,203321,203322],{"class":47},"EXISTS",[34,203324,203325],{"class":54}," key\n",[34,203327,203328],{"class":36,"line":58},[34,203329,62],{"emptyLinePlaceholder":61},[34,203331,203332],{"class":36,"line":65},[34,203333,203334],{"class":40},"# Delete key(s)\n",[34,203336,203337,203340,203343],{"class":36,"line":71},[34,203338,203339],{"class":47},"DEL",[34,203341,203342],{"class":54}," key1",[34,203344,203345],{"class":54}," key2\n",[34,203347,203348],{"class":36,"line":77},[34,203349,62],{"emptyLinePlaceholder":61},[34,203351,203352],{"class":36,"line":82},[34,203353,203354],{"class":40},"# Delete key asynchronously\n",[34,203356,203357,203360],{"class":36,"line":88},[34,203358,203359],{"class":47},"UNLINK",[34,203361,203325],{"class":54},[34,203363,203364],{"class":36,"line":242},[34,203365,62],{"emptyLinePlaceholder":61},[34,203367,203368],{"class":36,"line":250},[34,203369,203370],{"class":40},"# Find keys by pattern\n",[34,203372,203373,203376,203378],{"class":36,"line":263},[34,203374,203375],{"class":47},"KEYS",[34,203377,12334],{"class":54},[34,203379,187347],{"class":50},[34,203381,203382],{"class":36,"line":275},[34,203383,62],{"emptyLinePlaceholder":61},[34,203385,203386],{"class":36,"line":700},[34,203387,203388],{"class":40},"# Get key type\n",[34,203390,203391,203394],{"class":36,"line":706},[34,203392,203393],{"class":47},"TYPE",[34,203395,203325],{"class":54},[34,203397,203398],{"class":36,"line":715},[34,203399,62],{"emptyLinePlaceholder":61},[34,203401,203402],{"class":36,"line":725},[34,203403,203404],{"class":40},"# Rename key\n",[34,203406,203407,203410,203413],{"class":36,"line":734},[34,203408,203409],{"class":47},"RENAME",[34,203411,203412],{"class":54}," oldkey",[34,203414,203415],{"class":54}," newkey\n",[34,203417,203418],{"class":36,"line":742},[34,203419,62],{"emptyLinePlaceholder":61},[34,203421,203422],{"class":36,"line":748},[34,203423,203424],{"class":40},"# Set expiration (seconds)\n",[34,203426,203427,203430,203432],{"class":36,"line":754},[34,203428,203429],{"class":47},"EXPIRE",[34,203431,64586],{"class":54},[34,203433,203434],{"class":50}," 60\n",[34,203436,203437],{"class":36,"line":759},[34,203438,62],{"emptyLinePlaceholder":61},[34,203440,203441],{"class":36,"line":771},[34,203442,203443],{"class":40},"# Set expiration (milliseconds)\n",[34,203445,203446,203449,203451],{"class":36,"line":794},[34,203447,203448],{"class":47},"PEXPIRE",[34,203450,64586],{"class":54},[34,203452,203453],{"class":50}," 60000\n",[34,203455,203456],{"class":36,"line":824},[34,203457,62],{"emptyLinePlaceholder":61},[34,203459,203460],{"class":36,"line":830},[34,203461,203462],{"class":40},"# Remove expiration\n",[34,203464,203465,203468],{"class":36,"line":839},[34,203466,203467],{"class":47},"PERSIST",[34,203469,203325],{"class":54},[34,203471,203472],{"class":36,"line":854},[34,203473,62],{"emptyLinePlaceholder":61},[34,203475,203476],{"class":36,"line":860},[34,203477,203478],{"class":40},"# Get time to live (seconds)\n",[34,203480,203481,203484],{"class":36,"line":865},[34,203482,203483],{"class":47},"TTL",[34,203485,203325],{"class":54},[34,203487,203488],{"class":36,"line":870},[34,203489,62],{"emptyLinePlaceholder":61},[34,203491,203492],{"class":36,"line":876},[34,203493,203494],{"class":40},"# Get time to live (milliseconds)\n",[34,203496,203497,203500],{"class":36,"line":885},[34,203498,203499],{"class":47},"PTTL",[34,203501,203325],{"class":54},[34,203503,203504],{"class":36,"line":895},[34,203505,62],{"emptyLinePlaceholder":61},[34,203507,203508],{"class":36,"line":904},[34,203509,203510],{"class":40},"# Scan keys (cursor-based)\n",[34,203512,203513,203516,203518,203520,203522,203524,203526],{"class":36,"line":915},[34,203514,203515],{"class":47},"SCAN",[34,203517,8070],{"class":50},[34,203519,150923],{"class":54},[34,203521,12334],{"class":54},[34,203523,4289],{"class":50},[34,203525,153333],{"class":54},[34,203527,195498],{"class":50},[388,203529,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":203531},[203532],{"id":52345,"depth":44,"text":203303},"Keys in Redis.",{},"/redis/keys",{"title":203303,"description":203533},"redis/keys",[203067,93298,28650,28649,191593],"4mevgZXdAN1Mj_siF8hT2dYBcwIaU-NOGbHpBk9FwYQ",{"id":203541,"title":61448,"body":203542,"date":402,"description":203725,"extension":404,"meta":203726,"navigation":61,"order":71,"path":203727,"seo":203728,"stem":203729,"subject":203067,"tags":203730,"__hash__":203731},"topics/redis/lists.md",{"type":8,"value":203543,"toc":203722},[203544,203546,203720],[11,203545,61448],{"id":80306},[25,203547,203549],{"className":27,"code":203548,"language":29,"meta":30,"style":30},"# Push to left/right\nLPUSH list \"value\"\nRPUSH list \"value\"\n\n# Pop from left/right\nLPOP list\nRPOP list\n\n# Get range (0 to -1 for all)\nLRANGE list 0 -1\n\n# Get by index\nLINDEX list 0\n\n# Get list length\nLLEN list\n\n# Set value at index\nLSET list 0 \"new value\"\n\n# Trim list\nLTRIM list 0 99\n\n# Blocking pop\nBLPOP list 30\nBRPOP list 30\n",[20,203550,203551,203556,203565,203574,203578,203583,203590,203597,203601,203606,203618,203622,203627,203636,203640,203645,203652,203656,203661,203673,203677,203682,203693,203697,203702,203711],{"__ignoreMap":30},[34,203552,203553],{"class":36,"line":37},[34,203554,203555],{"class":40},"# Push to left/right\n",[34,203557,203558,203561,203563],{"class":36,"line":44},[34,203559,203560],{"class":47},"LPUSH",[34,203562,6345],{"class":54},[34,203564,203099],{"class":54},[34,203566,203567,203570,203572],{"class":36,"line":58},[34,203568,203569],{"class":47},"RPUSH",[34,203571,6345],{"class":54},[34,203573,203099],{"class":54},[34,203575,203576],{"class":36,"line":65},[34,203577,62],{"emptyLinePlaceholder":61},[34,203579,203580],{"class":36,"line":71},[34,203581,203582],{"class":40},"# Pop from left/right\n",[34,203584,203585,203588],{"class":36,"line":77},[34,203586,203587],{"class":47},"LPOP",[34,203589,7536],{"class":54},[34,203591,203592,203595],{"class":36,"line":82},[34,203593,203594],{"class":47},"RPOP",[34,203596,7536],{"class":54},[34,203598,203599],{"class":36,"line":88},[34,203600,62],{"emptyLinePlaceholder":61},[34,203602,203603],{"class":36,"line":242},[34,203604,203605],{"class":40},"# Get range (0 to -1 for all)\n",[34,203607,203608,203611,203613,203615],{"class":36,"line":250},[34,203609,203610],{"class":47},"LRANGE",[34,203612,6345],{"class":54},[34,203614,8070],{"class":50},[34,203616,203617],{"class":50}," -1\n",[34,203619,203620],{"class":36,"line":263},[34,203621,62],{"emptyLinePlaceholder":61},[34,203623,203624],{"class":36,"line":275},[34,203625,203626],{"class":40},"# Get by index\n",[34,203628,203629,203632,203634],{"class":36,"line":700},[34,203630,203631],{"class":47},"LINDEX",[34,203633,6345],{"class":54},[34,203635,36394],{"class":50},[34,203637,203638],{"class":36,"line":706},[34,203639,62],{"emptyLinePlaceholder":61},[34,203641,203642],{"class":36,"line":715},[34,203643,203644],{"class":40},"# Get list length\n",[34,203646,203647,203650],{"class":36,"line":725},[34,203648,203649],{"class":47},"LLEN",[34,203651,7536],{"class":54},[34,203653,203654],{"class":36,"line":734},[34,203655,62],{"emptyLinePlaceholder":61},[34,203657,203658],{"class":36,"line":742},[34,203659,203660],{"class":40},"# Set value at index\n",[34,203662,203663,203666,203668,203670],{"class":36,"line":748},[34,203664,203665],{"class":47},"LSET",[34,203667,6345],{"class":54},[34,203669,8070],{"class":50},[34,203671,203672],{"class":54}," \"new value\"\n",[34,203674,203675],{"class":36,"line":754},[34,203676,62],{"emptyLinePlaceholder":61},[34,203678,203679],{"class":36,"line":759},[34,203680,203681],{"class":40},"# Trim list\n",[34,203683,203684,203686,203688,203690],{"class":36,"line":771},[34,203685,155013],{"class":47},[34,203687,6345],{"class":54},[34,203689,8070],{"class":50},[34,203691,203692],{"class":50}," 99\n",[34,203694,203695],{"class":36,"line":794},[34,203696,62],{"emptyLinePlaceholder":61},[34,203698,203699],{"class":36,"line":824},[34,203700,203701],{"class":40},"# Blocking pop\n",[34,203703,203704,203707,203709],{"class":36,"line":830},[34,203705,203706],{"class":47},"BLPOP",[34,203708,6345],{"class":54},[34,203710,87383],{"class":50},[34,203712,203713,203716,203718],{"class":36,"line":839},[34,203714,203715],{"class":47},"BRPOP",[34,203717,6345],{"class":54},[34,203719,87383],{"class":50},[388,203721,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":203723},[203724],{"id":80306,"depth":44,"text":61448},"Lists in Redis.",{},"/redis/lists",{"title":61448,"description":203725},"redis/lists",[203067,93298,28650,28649,191593],"0deVCo4uThy4QK7QxXuLYvGh5ej_rEP5u1H5D11krV4",{"id":203733,"title":203734,"body":203735,"date":402,"description":203843,"extension":404,"meta":203844,"navigation":61,"order":275,"path":203845,"seo":203846,"stem":203847,"subject":203067,"tags":203848,"__hash__":203849},"topics/redis/lua-scripting.md","Lua Scripting",{"type":8,"value":203736,"toc":203840},[203737,203740,203838],[11,203738,203734],{"id":203739},"lua-scripting",[25,203741,203743],{"className":27,"code":203742,"language":29,"meta":30,"style":30},"# Execute Lua script\nEVAL \"return redis.call('GET', KEYS[1])\" 1 mykey\n\n# Load script\nSCRIPT LOAD \"return redis.call('GET', KEYS[1])\"\n\n# Execute loaded script by SHA\nEVALSHA sha1 1 mykey\n\n# Check if script exists\nSCRIPT EXISTS sha1\n\n# Flush all scripts\nSCRIPT FLUSH\n",[20,203744,203745,203750,203763,203767,203772,203783,203787,203792,203804,203808,203813,203822,203826,203831],{"__ignoreMap":30},[34,203746,203747],{"class":36,"line":37},[34,203748,203749],{"class":40},"# Execute Lua script\n",[34,203751,203752,203755,203758,203760],{"class":36,"line":44},[34,203753,203754],{"class":47},"EVAL",[34,203756,203757],{"class":54}," \"return redis.call('GET', KEYS[1])\"",[34,203759,3567],{"class":50},[34,203761,203762],{"class":54}," mykey\n",[34,203764,203765],{"class":36,"line":58},[34,203766,62],{"emptyLinePlaceholder":61},[34,203768,203769],{"class":36,"line":65},[34,203770,203771],{"class":40},"# Load script\n",[34,203773,203774,203777,203780],{"class":36,"line":71},[34,203775,203776],{"class":47},"SCRIPT",[34,203778,203779],{"class":54}," LOAD",[34,203781,203782],{"class":54}," \"return redis.call('GET', KEYS[1])\"\n",[34,203784,203785],{"class":36,"line":77},[34,203786,62],{"emptyLinePlaceholder":61},[34,203788,203789],{"class":36,"line":82},[34,203790,203791],{"class":40},"# Execute loaded script by SHA\n",[34,203793,203794,203797,203800,203802],{"class":36,"line":88},[34,203795,203796],{"class":47},"EVALSHA",[34,203798,203799],{"class":54}," sha1",[34,203801,3567],{"class":50},[34,203803,203762],{"class":54},[34,203805,203806],{"class":36,"line":242},[34,203807,62],{"emptyLinePlaceholder":61},[34,203809,203810],{"class":36,"line":250},[34,203811,203812],{"class":40},"# Check if script exists\n",[34,203814,203815,203817,203819],{"class":36,"line":263},[34,203816,203776],{"class":47},[34,203818,150689],{"class":54},[34,203820,203821],{"class":54}," sha1\n",[34,203823,203824],{"class":36,"line":275},[34,203825,62],{"emptyLinePlaceholder":61},[34,203827,203828],{"class":36,"line":700},[34,203829,203830],{"class":40},"# Flush all scripts\n",[34,203832,203833,203835],{"class":36,"line":706},[34,203834,203776],{"class":47},[34,203836,203837],{"class":54}," FLUSH\n",[388,203839,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":203841},[203842],{"id":203739,"depth":44,"text":203734},"Lua Scripting in Redis.",{},"/redis/lua-scripting",{"title":203734,"description":203843},"redis/lua-scripting",[203067,93298,28650,28649,191593],"CbOyUdTlMTnlI6csSEsXUw3iUkF1DenScbuQ0YzIJTM",{"id":203851,"title":203852,"body":203853,"date":2633,"description":203913,"extension":404,"meta":203914,"navigation":61,"order":37,"path":203915,"seo":203916,"stem":203917,"subject":203067,"tags":203918,"__hash__":203919},"topics/redis/overview.md","Redis",{"type":8,"value":203854,"toc":203911},[203855],[309,203856,203857,203861,203866,203870,203874,203880,203886,203890,203896,203902,203907],{},[312,203858,203859],{},[145,203860,83027],{"href":203064},[312,203862,203863],{},[145,203864,23101],{"href":203865},"/redis/strings",[312,203867,203868],{},[145,203869,203303],{"href":203535},[312,203871,203872],{},[145,203873,61448],{"href":203727},[312,203875,203876],{},[145,203877,203879],{"href":203878},"/redis/sets","Sets",[312,203881,203882],{},[145,203883,203885],{"href":203884},"/redis/sorted-sets","Sorted Sets",[312,203887,203888],{},[145,203889,203072],{"href":203296},[312,203891,203892],{},[145,203893,203895],{"href":203894},"/redis/pubsub","Pub/Sub",[312,203897,203898],{},[145,203899,203901],{"href":203900},"/redis/transactions","Transactions",[312,203903,203904],{},[145,203905,111638],{"href":203906},"/redis/server",[312,203908,203909],{},[145,203910,203734],{"href":203845},{"title":30,"searchDepth":44,"depth":44,"links":203912},[],"Essential Redis commands for caching, data structures, and in-memory database operations.",{},"/redis/overview",{"title":203852,"description":203913},"redis/overview",[203067,93298,28650,28649,191593],"bPmknN2DK_2zcTJIhlthk67adEM3OUGNw37tA_AIuNk",{"id":203921,"title":203895,"body":203922,"date":402,"description":204015,"extension":404,"meta":204016,"navigation":61,"order":242,"path":203894,"seo":204017,"stem":204018,"subject":203067,"tags":204019,"__hash__":204020},"topics/redis/pubsub.md",{"type":8,"value":203923,"toc":204012},[203924,203926,204010],[11,203925,203895],{"id":130360},[25,203927,203929],{"className":27,"code":203928,"language":29,"meta":30,"style":30},"# Subscribe to channel(s)\nSUBSCRIBE channel1 channel2\n\n# Subscribe to pattern\nPSUBSCRIBE news.*\n\n# Publish message\nPUBLISH channel \"message\"\n\n# Unsubscribe\nUNSUBSCRIBE channel\nPUNSUBSCRIBE pattern\n",[20,203930,203931,203936,203947,203951,203956,203966,203970,203975,203985,203989,203994,204002],{"__ignoreMap":30},[34,203932,203933],{"class":36,"line":37},[34,203934,203935],{"class":40},"# Subscribe to channel(s)\n",[34,203937,203938,203941,203944],{"class":36,"line":44},[34,203939,203940],{"class":47},"SUBSCRIBE",[34,203942,203943],{"class":54}," channel1",[34,203945,203946],{"class":54}," channel2\n",[34,203948,203949],{"class":36,"line":58},[34,203950,62],{"emptyLinePlaceholder":61},[34,203952,203953],{"class":36,"line":65},[34,203954,203955],{"class":40},"# Subscribe to pattern\n",[34,203957,203958,203961,203964],{"class":36,"line":71},[34,203959,203960],{"class":47},"PSUBSCRIBE",[34,203962,203963],{"class":54}," news.",[34,203965,187347],{"class":50},[34,203967,203968],{"class":36,"line":77},[34,203969,62],{"emptyLinePlaceholder":61},[34,203971,203972],{"class":36,"line":82},[34,203973,203974],{"class":40},"# Publish message\n",[34,203976,203977,203980,203983],{"class":36,"line":88},[34,203978,203979],{"class":47},"PUBLISH",[34,203981,203982],{"class":54}," channel",[34,203984,100601],{"class":54},[34,203986,203987],{"class":36,"line":242},[34,203988,62],{"emptyLinePlaceholder":61},[34,203990,203991],{"class":36,"line":250},[34,203992,203993],{"class":40},"# Unsubscribe\n",[34,203995,203996,203999],{"class":36,"line":263},[34,203997,203998],{"class":47},"UNSUBSCRIBE",[34,204000,204001],{"class":54}," channel\n",[34,204003,204004,204007],{"class":36,"line":275},[34,204005,204006],{"class":47},"PUNSUBSCRIBE",[34,204008,204009],{"class":54}," pattern\n",[388,204011,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":204013},[204014],{"id":130360,"depth":44,"text":203895},"Pub/Sub in Redis.",{},{"title":203895,"description":204015},"redis/pubsub",[203067,93298,28650,28649,191593],"V_rwLJ1o4gY1E8iR9Vvd2PcAcQiksY1nmr3kp6BOf40",{"id":204022,"title":111638,"body":204023,"date":402,"description":204196,"extension":404,"meta":204197,"navigation":61,"order":263,"path":203906,"seo":204198,"stem":204199,"subject":203067,"tags":204200,"__hash__":204201},"topics/redis/server.md",{"type":8,"value":204024,"toc":204193},[204025,204027,204191],[11,204026,111638],{"id":15678},[25,204028,204030],{"className":27,"code":204029,"language":29,"meta":30,"style":30},"# Get server info\nINFO\n\n# Get specific section\nINFO memory\n\n# Get all config\nCONFIG GET *\n\n# Set config\nCONFIG SET maxmemory 100mb\n\n# Save database to disk\nSAVE\nBGSAVE\n\n# Get database size\nDBSIZE\n\n# Clear current database\nFLUSHDB\n\n# Clear all databases\nFLUSHALL\n\n# Get slow queries\nSLOWLOG GET 10\n\n# Monitor commands in real-time\nMONITOR\n",[20,204031,204032,204037,204042,204046,204051,204059,204063,204068,204077,204081,204086,204098,204102,204107,204112,204117,204121,204126,204131,204135,204140,204145,204149,204154,204159,204163,204168,204177,204181,204186],{"__ignoreMap":30},[34,204033,204034],{"class":36,"line":37},[34,204035,204036],{"class":40},"# Get server info\n",[34,204038,204039],{"class":36,"line":44},[34,204040,204041],{"class":47},"INFO\n",[34,204043,204044],{"class":36,"line":58},[34,204045,62],{"emptyLinePlaceholder":61},[34,204047,204048],{"class":36,"line":65},[34,204049,204050],{"class":40},"# Get specific section\n",[34,204052,204053,204056],{"class":36,"line":71},[34,204054,204055],{"class":47},"INFO",[34,204057,204058],{"class":54}," memory\n",[34,204060,204061],{"class":36,"line":77},[34,204062,62],{"emptyLinePlaceholder":61},[34,204064,204065],{"class":36,"line":82},[34,204066,204067],{"class":40},"# Get all config\n",[34,204069,204070,204073,204075],{"class":36,"line":88},[34,204071,204072],{"class":47},"CONFIG",[34,204074,85732],{"class":54},[34,204076,109788],{"class":50},[34,204078,204079],{"class":36,"line":242},[34,204080,62],{"emptyLinePlaceholder":61},[34,204082,204083],{"class":36,"line":250},[34,204084,204085],{"class":40},"# Set config\n",[34,204087,204088,204090,204092,204095],{"class":36,"line":263},[34,204089,204072],{"class":47},[34,204091,150665],{"class":54},[34,204093,204094],{"class":54}," maxmemory",[34,204096,204097],{"class":54}," 100mb\n",[34,204099,204100],{"class":36,"line":275},[34,204101,62],{"emptyLinePlaceholder":61},[34,204103,204104],{"class":36,"line":700},[34,204105,204106],{"class":40},"# Save database to disk\n",[34,204108,204109],{"class":36,"line":706},[34,204110,204111],{"class":47},"SAVE\n",[34,204113,204114],{"class":36,"line":715},[34,204115,204116],{"class":47},"BGSAVE\n",[34,204118,204119],{"class":36,"line":725},[34,204120,62],{"emptyLinePlaceholder":61},[34,204122,204123],{"class":36,"line":734},[34,204124,204125],{"class":40},"# Get database size\n",[34,204127,204128],{"class":36,"line":742},[34,204129,204130],{"class":47},"DBSIZE\n",[34,204132,204133],{"class":36,"line":748},[34,204134,62],{"emptyLinePlaceholder":61},[34,204136,204137],{"class":36,"line":754},[34,204138,204139],{"class":40},"# Clear current database\n",[34,204141,204142],{"class":36,"line":759},[34,204143,204144],{"class":47},"FLUSHDB\n",[34,204146,204147],{"class":36,"line":771},[34,204148,62],{"emptyLinePlaceholder":61},[34,204150,204151],{"class":36,"line":794},[34,204152,204153],{"class":40},"# Clear all databases\n",[34,204155,204156],{"class":36,"line":824},[34,204157,204158],{"class":47},"FLUSHALL\n",[34,204160,204161],{"class":36,"line":830},[34,204162,62],{"emptyLinePlaceholder":61},[34,204164,204165],{"class":36,"line":839},[34,204166,204167],{"class":40},"# Get slow queries\n",[34,204169,204170,204173,204175],{"class":36,"line":854},[34,204171,204172],{"class":47},"SLOWLOG",[34,204174,85732],{"class":54},[34,204176,100481],{"class":50},[34,204178,204179],{"class":36,"line":860},[34,204180,62],{"emptyLinePlaceholder":61},[34,204182,204183],{"class":36,"line":865},[34,204184,204185],{"class":40},"# Monitor commands in real-time\n",[34,204187,204188],{"class":36,"line":870},[34,204189,204190],{"class":47},"MONITOR\n",[388,204192,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":204194},[204195],{"id":15678,"depth":44,"text":111638},"Server in Redis.",{},{"title":111638,"description":204196},"redis/server",[203067,93298,28650,28649,191593],"zXnTFQMzEo9KEYd7p5vnJSk8Jju1Uj6q2BxFO8hQNl0",{"id":204203,"title":203879,"body":204204,"date":402,"description":204379,"extension":404,"meta":204380,"navigation":61,"order":77,"path":203878,"seo":204381,"stem":204382,"subject":203067,"tags":204383,"__hash__":204384},"topics/redis/sets.md",{"type":8,"value":204205,"toc":204376},[204206,204209,204374],[11,204207,203879],{"id":204208},"sets",[25,204210,204212],{"className":27,"code":204211,"language":29,"meta":30,"style":30},"# Add members\nSADD set \"member1\" \"member2\"\n\n# Get all members\nSMEMBERS set\n\n# Check if member exists\nSISMEMBER set \"member1\"\n\n# Get set size\nSCARD set\n\n# Remove member\nSREM set \"member1\"\n\n# Pop random member\nSPOP set\n\n# Get random member(s)\nSRANDMEMBER set 2\n\n# Set operations\nSUNION set1 set2\nSINTER set1 set2\nSDIFF set1 set2\n",[20,204213,204214,204219,204232,204236,204241,204249,204253,204258,204268,204272,204277,204284,204288,204293,204302,204306,204311,204318,204322,204327,204336,204340,204345,204356,204365],{"__ignoreMap":30},[34,204215,204216],{"class":36,"line":37},[34,204217,204218],{"class":40},"# Add members\n",[34,204220,204221,204224,204226,204229],{"class":36,"line":44},[34,204222,204223],{"class":47},"SADD",[34,204225,9481],{"class":54},[34,204227,204228],{"class":54}," \"member1\"",[34,204230,204231],{"class":54}," \"member2\"\n",[34,204233,204234],{"class":36,"line":58},[34,204235,62],{"emptyLinePlaceholder":61},[34,204237,204238],{"class":36,"line":65},[34,204239,204240],{"class":40},"# Get all members\n",[34,204242,204243,204246],{"class":36,"line":71},[34,204244,204245],{"class":47},"SMEMBERS",[34,204247,204248],{"class":54}," set\n",[34,204250,204251],{"class":36,"line":77},[34,204252,62],{"emptyLinePlaceholder":61},[34,204254,204255],{"class":36,"line":82},[34,204256,204257],{"class":40},"# Check if member exists\n",[34,204259,204260,204263,204265],{"class":36,"line":88},[34,204261,204262],{"class":47},"SISMEMBER",[34,204264,9481],{"class":54},[34,204266,204267],{"class":54}," \"member1\"\n",[34,204269,204270],{"class":36,"line":242},[34,204271,62],{"emptyLinePlaceholder":61},[34,204273,204274],{"class":36,"line":250},[34,204275,204276],{"class":40},"# Get set size\n",[34,204278,204279,204282],{"class":36,"line":263},[34,204280,204281],{"class":47},"SCARD",[34,204283,204248],{"class":54},[34,204285,204286],{"class":36,"line":275},[34,204287,62],{"emptyLinePlaceholder":61},[34,204289,204290],{"class":36,"line":700},[34,204291,204292],{"class":40},"# Remove member\n",[34,204294,204295,204298,204300],{"class":36,"line":706},[34,204296,204297],{"class":47},"SREM",[34,204299,9481],{"class":54},[34,204301,204267],{"class":54},[34,204303,204304],{"class":36,"line":715},[34,204305,62],{"emptyLinePlaceholder":61},[34,204307,204308],{"class":36,"line":725},[34,204309,204310],{"class":40},"# Pop random member\n",[34,204312,204313,204316],{"class":36,"line":734},[34,204314,204315],{"class":47},"SPOP",[34,204317,204248],{"class":54},[34,204319,204320],{"class":36,"line":742},[34,204321,62],{"emptyLinePlaceholder":61},[34,204323,204324],{"class":36,"line":748},[34,204325,204326],{"class":40},"# Get random member(s)\n",[34,204328,204329,204332,204334],{"class":36,"line":754},[34,204330,204331],{"class":47},"SRANDMEMBER",[34,204333,9481],{"class":54},[34,204335,9930],{"class":50},[34,204337,204338],{"class":36,"line":759},[34,204339,62],{"emptyLinePlaceholder":61},[34,204341,204342],{"class":36,"line":771},[34,204343,204344],{"class":40},"# Set operations\n",[34,204346,204347,204350,204353],{"class":36,"line":794},[34,204348,204349],{"class":47},"SUNION",[34,204351,204352],{"class":54}," set1",[34,204354,204355],{"class":54}," set2\n",[34,204357,204358,204361,204363],{"class":36,"line":824},[34,204359,204360],{"class":47},"SINTER",[34,204362,204352],{"class":54},[34,204364,204355],{"class":54},[34,204366,204367,204370,204372],{"class":36,"line":830},[34,204368,204369],{"class":47},"SDIFF",[34,204371,204352],{"class":54},[34,204373,204355],{"class":54},[388,204375,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":204377},[204378],{"id":204208,"depth":44,"text":203879},"Sets in Redis.",{},{"title":203879,"description":204379},"redis/sets",[203067,93298,28650,28649,191593],"ZGOOwKDc76ifru4t1sVxJZX8Kclrkq1wt3ZMk1tXMog",{"id":204386,"title":203885,"body":204387,"date":402,"description":204608,"extension":404,"meta":204609,"navigation":61,"order":82,"path":203884,"seo":204610,"stem":204611,"subject":203067,"tags":204612,"__hash__":204613},"topics/redis/sorted-sets.md",{"type":8,"value":204388,"toc":204605},[204389,204392,204603],[11,204390,203885],{"id":204391},"sorted-sets",[25,204393,204395],{"className":27,"code":204394,"language":29,"meta":30,"style":30},"# Add members with scores\nZADD zset 1 \"one\" 2 \"two\" 3 \"three\"\n\n# Get range by index (with scores)\nZRANGE zset 0 -1 WITHSCORES\n\n# Get range by score\nZRANGEBYSCORE zset 1 3\n\n# Get reverse range\nZREVRANGE zset 0 -1\n\n# Get member score\nZSCORE zset \"member\"\n\n# Get member rank\nZRANK zset \"member\"\n\n# Increment score\nZINCRBY zset 5 \"member\"\n\n# Get set size\nZCARD zset\n\n# Count members in score range\nZCOUNT zset 1 5\n\n# Remove members\nZREM zset \"member1\" \"member2\"\n",[20,204396,204397,204402,204425,204429,204434,204449,204453,204458,204470,204474,204479,204490,204494,204499,204509,204513,204518,204527,204531,204536,204547,204551,204555,204563,204567,204572,204583,204587,204592],{"__ignoreMap":30},[34,204398,204399],{"class":36,"line":37},[34,204400,204401],{"class":40},"# Add members with scores\n",[34,204403,204404,204407,204410,204412,204415,204417,204420,204422],{"class":36,"line":44},[34,204405,204406],{"class":47},"ZADD",[34,204408,204409],{"class":54}," zset",[34,204411,3567],{"class":50},[34,204413,204414],{"class":54}," \"one\"",[34,204416,4292],{"class":50},[34,204418,204419],{"class":54}," \"two\"",[34,204421,11147],{"class":50},[34,204423,204424],{"class":54}," \"three\"\n",[34,204426,204427],{"class":36,"line":58},[34,204428,62],{"emptyLinePlaceholder":61},[34,204430,204431],{"class":36,"line":65},[34,204432,204433],{"class":40},"# Get range by index (with scores)\n",[34,204435,204436,204439,204441,204443,204446],{"class":36,"line":71},[34,204437,204438],{"class":47},"ZRANGE",[34,204440,204409],{"class":54},[34,204442,8070],{"class":50},[34,204444,204445],{"class":50}," -1",[34,204447,204448],{"class":54}," WITHSCORES\n",[34,204450,204451],{"class":36,"line":77},[34,204452,62],{"emptyLinePlaceholder":61},[34,204454,204455],{"class":36,"line":82},[34,204456,204457],{"class":40},"# Get range by score\n",[34,204459,204460,204463,204465,204467],{"class":36,"line":88},[34,204461,204462],{"class":47},"ZRANGEBYSCORE",[34,204464,204409],{"class":54},[34,204466,3567],{"class":50},[34,204468,204469],{"class":50}," 3\n",[34,204471,204472],{"class":36,"line":242},[34,204473,62],{"emptyLinePlaceholder":61},[34,204475,204476],{"class":36,"line":250},[34,204477,204478],{"class":40},"# Get reverse range\n",[34,204480,204481,204484,204486,204488],{"class":36,"line":263},[34,204482,204483],{"class":47},"ZREVRANGE",[34,204485,204409],{"class":54},[34,204487,8070],{"class":50},[34,204489,203617],{"class":50},[34,204491,204492],{"class":36,"line":275},[34,204493,62],{"emptyLinePlaceholder":61},[34,204495,204496],{"class":36,"line":700},[34,204497,204498],{"class":40},"# Get member score\n",[34,204500,204501,204504,204506],{"class":36,"line":706},[34,204502,204503],{"class":47},"ZSCORE",[34,204505,204409],{"class":54},[34,204507,204508],{"class":54}," \"member\"\n",[34,204510,204511],{"class":36,"line":715},[34,204512,62],{"emptyLinePlaceholder":61},[34,204514,204515],{"class":36,"line":725},[34,204516,204517],{"class":40},"# Get member rank\n",[34,204519,204520,204523,204525],{"class":36,"line":734},[34,204521,204522],{"class":47},"ZRANK",[34,204524,204409],{"class":54},[34,204526,204508],{"class":54},[34,204528,204529],{"class":36,"line":742},[34,204530,62],{"emptyLinePlaceholder":61},[34,204532,204533],{"class":36,"line":748},[34,204534,204535],{"class":40},"# Increment score\n",[34,204537,204538,204541,204543,204545],{"class":36,"line":754},[34,204539,204540],{"class":47},"ZINCRBY",[34,204542,204409],{"class":54},[34,204544,11144],{"class":50},[34,204546,204508],{"class":54},[34,204548,204549],{"class":36,"line":759},[34,204550,62],{"emptyLinePlaceholder":61},[34,204552,204553],{"class":36,"line":771},[34,204554,204276],{"class":40},[34,204556,204557,204560],{"class":36,"line":794},[34,204558,204559],{"class":47},"ZCARD",[34,204561,204562],{"class":54}," zset\n",[34,204564,204565],{"class":36,"line":824},[34,204566,62],{"emptyLinePlaceholder":61},[34,204568,204569],{"class":36,"line":830},[34,204570,204571],{"class":40},"# Count members in score range\n",[34,204573,204574,204577,204579,204581],{"class":36,"line":839},[34,204575,204576],{"class":47},"ZCOUNT",[34,204578,204409],{"class":54},[34,204580,3567],{"class":50},[34,204582,134626],{"class":50},[34,204584,204585],{"class":36,"line":854},[34,204586,62],{"emptyLinePlaceholder":61},[34,204588,204589],{"class":36,"line":860},[34,204590,204591],{"class":40},"# Remove members\n",[34,204593,204594,204597,204599,204601],{"class":36,"line":865},[34,204595,204596],{"class":47},"ZREM",[34,204598,204409],{"class":54},[34,204600,204228],{"class":54},[34,204602,204231],{"class":54},[388,204604,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":204606},[204607],{"id":204391,"depth":44,"text":203885},"Sorted Sets in Redis.",{},{"title":203885,"description":204608},"redis/sorted-sets",[203067,93298,28650,28649,191593],"1_OLOFuSF717N1dQFBuzVWHJwVRslHfJbtkswOGPPvg",{"id":204615,"title":23101,"body":204616,"date":402,"description":204841,"extension":404,"meta":204842,"navigation":61,"order":58,"path":203865,"seo":204843,"stem":204844,"subject":203067,"tags":204845,"__hash__":204846},"topics/redis/strings.md",{"type":8,"value":204617,"toc":204838},[204618,204620,204836],[11,204619,23101],{"id":24353},[25,204621,204623],{"className":27,"code":204622,"language":29,"meta":30,"style":30},"# Set a key\nSET key \"value\"\n\n# Set with expiration (seconds)\nSET key \"value\" EX 60\n\n# Set with expiration (milliseconds)\nSET key \"value\" PX 60000\n\n# Set only if key doesn't exist\nSETNX key \"value\"\n\n# Get a key\nGET key\n\n# Get multiple keys\nMGET key1 key2 key3\n\n# Set multiple keys\nMSET key1 \"value1\" key2 \"value2\"\n\n# Increment/Decrement\nINCR counter\nINCRBY counter 5\nDECR counter\nDECRBY counter 5\n\n# Append to string\nAPPEND key \"more text\"\n\n# Get string length\nSTRLEN key\n",[20,204624,204625,204630,204638,204642,204647,204660,204664,204669,204682,204686,204691,204700,204704,204709,204715,204719,204724,204737,204741,204746,204759,204763,204768,204776,204785,204792,204801,204805,204810,204820,204824,204829],{"__ignoreMap":30},[34,204626,204627],{"class":36,"line":37},[34,204628,204629],{"class":40},"# Set a key\n",[34,204631,204632,204634,204636],{"class":36,"line":44},[34,204633,28556],{"class":47},[34,204635,64586],{"class":54},[34,204637,203099],{"class":54},[34,204639,204640],{"class":36,"line":58},[34,204641,62],{"emptyLinePlaceholder":61},[34,204643,204644],{"class":36,"line":65},[34,204645,204646],{"class":40},"# Set with expiration (seconds)\n",[34,204648,204649,204651,204653,204655,204658],{"class":36,"line":71},[34,204650,28556],{"class":47},[34,204652,64586],{"class":54},[34,204654,144431],{"class":54},[34,204656,204657],{"class":54}," EX",[34,204659,203434],{"class":50},[34,204661,204662],{"class":36,"line":77},[34,204663,62],{"emptyLinePlaceholder":61},[34,204665,204666],{"class":36,"line":82},[34,204667,204668],{"class":40},"# Set with expiration (milliseconds)\n",[34,204670,204671,204673,204675,204677,204680],{"class":36,"line":88},[34,204672,28556],{"class":47},[34,204674,64586],{"class":54},[34,204676,144431],{"class":54},[34,204678,204679],{"class":54}," PX",[34,204681,203453],{"class":50},[34,204683,204684],{"class":36,"line":242},[34,204685,62],{"emptyLinePlaceholder":61},[34,204687,204688],{"class":36,"line":250},[34,204689,204690],{"class":40},"# Set only if key doesn't exist\n",[34,204692,204693,204696,204698],{"class":36,"line":263},[34,204694,204695],{"class":47},"SETNX",[34,204697,64586],{"class":54},[34,204699,203099],{"class":54},[34,204701,204702],{"class":36,"line":275},[34,204703,62],{"emptyLinePlaceholder":61},[34,204705,204706],{"class":36,"line":700},[34,204707,204708],{"class":40},"# Get a key\n",[34,204710,204711,204713],{"class":36,"line":706},[34,204712,124680],{"class":47},[34,204714,203325],{"class":54},[34,204716,204717],{"class":36,"line":715},[34,204718,62],{"emptyLinePlaceholder":61},[34,204720,204721],{"class":36,"line":725},[34,204722,204723],{"class":40},"# Get multiple keys\n",[34,204725,204726,204729,204731,204734],{"class":36,"line":734},[34,204727,204728],{"class":47},"MGET",[34,204730,203342],{"class":54},[34,204732,204733],{"class":54}," key2",[34,204735,204736],{"class":54}," key3\n",[34,204738,204739],{"class":36,"line":742},[34,204740,62],{"emptyLinePlaceholder":61},[34,204742,204743],{"class":36,"line":748},[34,204744,204745],{"class":40},"# Set multiple keys\n",[34,204747,204748,204751,204753,204755,204757],{"class":36,"line":754},[34,204749,204750],{"class":47},"MSET",[34,204752,203342],{"class":54},[34,204754,203121],{"class":54},[34,204756,204733],{"class":54},[34,204758,203127],{"class":54},[34,204760,204761],{"class":36,"line":759},[34,204762,62],{"emptyLinePlaceholder":61},[34,204764,204765],{"class":36,"line":771},[34,204766,204767],{"class":40},"# Increment/Decrement\n",[34,204769,204770,204773],{"class":36,"line":794},[34,204771,204772],{"class":47},"INCR",[34,204774,204775],{"class":54}," counter\n",[34,204777,204778,204781,204783],{"class":36,"line":824},[34,204779,204780],{"class":47},"INCRBY",[34,204782,166794],{"class":54},[34,204784,134626],{"class":50},[34,204786,204787,204790],{"class":36,"line":830},[34,204788,204789],{"class":47},"DECR",[34,204791,204775],{"class":54},[34,204793,204794,204797,204799],{"class":36,"line":839},[34,204795,204796],{"class":47},"DECRBY",[34,204798,166794],{"class":54},[34,204800,134626],{"class":50},[34,204802,204803],{"class":36,"line":854},[34,204804,62],{"emptyLinePlaceholder":61},[34,204806,204807],{"class":36,"line":860},[34,204808,204809],{"class":40},"# Append to string\n",[34,204811,204812,204815,204817],{"class":36,"line":865},[34,204813,204814],{"class":47},"APPEND",[34,204816,64586],{"class":54},[34,204818,204819],{"class":54}," \"more text\"\n",[34,204821,204822],{"class":36,"line":870},[34,204823,62],{"emptyLinePlaceholder":61},[34,204825,204826],{"class":36,"line":876},[34,204827,204828],{"class":40},"# Get string length\n",[34,204830,204831,204834],{"class":36,"line":885},[34,204832,204833],{"class":47},"STRLEN",[34,204835,203325],{"class":54},[388,204837,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":204839},[204840],{"id":24353,"depth":44,"text":23101},"Strings in Redis.",{},{"title":23101,"description":204841},"redis/strings",[203067,93298,28650,28649,191593],"D5SI6mCOSrFRItOaA-tS9k4ft4nxqbaPavllYKo-gxM",{"id":204848,"title":203901,"body":204849,"date":402,"description":204946,"extension":404,"meta":204947,"navigation":61,"order":250,"path":203900,"seo":204948,"stem":204949,"subject":203067,"tags":204950,"__hash__":204951},"topics/redis/transactions.md",{"type":8,"value":204850,"toc":204943},[204851,204854,204941],[11,204852,203901],{"id":204853},"transactions",[25,204855,204857],{"className":27,"code":204856,"language":29,"meta":30,"style":30},"# Start transaction\nMULTI\n\n# Queue commands\nSET key1 \"value1\"\nSET key2 \"value2\"\n\n# Execute transaction\nEXEC\n\n# Discard transaction\nDISCARD\n\n# Watch keys for optimistic locking\nWATCH key1 key2\n",[20,204858,204859,204864,204869,204873,204878,204887,204895,204899,204904,204909,204913,204918,204923,204927,204932],{"__ignoreMap":30},[34,204860,204861],{"class":36,"line":37},[34,204862,204863],{"class":40},"# Start transaction\n",[34,204865,204866],{"class":36,"line":44},[34,204867,204868],{"class":47},"MULTI\n",[34,204870,204871],{"class":36,"line":58},[34,204872,62],{"emptyLinePlaceholder":61},[34,204874,204875],{"class":36,"line":65},[34,204876,204877],{"class":40},"# Queue commands\n",[34,204879,204880,204882,204884],{"class":36,"line":71},[34,204881,28556],{"class":47},[34,204883,203342],{"class":54},[34,204885,204886],{"class":54}," \"value1\"\n",[34,204888,204889,204891,204893],{"class":36,"line":77},[34,204890,28556],{"class":47},[34,204892,204733],{"class":54},[34,204894,203127],{"class":54},[34,204896,204897],{"class":36,"line":82},[34,204898,62],{"emptyLinePlaceholder":61},[34,204900,204901],{"class":36,"line":88},[34,204902,204903],{"class":40},"# Execute transaction\n",[34,204905,204906],{"class":36,"line":242},[34,204907,204908],{"class":47},"EXEC\n",[34,204910,204911],{"class":36,"line":250},[34,204912,62],{"emptyLinePlaceholder":61},[34,204914,204915],{"class":36,"line":263},[34,204916,204917],{"class":40},"# Discard transaction\n",[34,204919,204920],{"class":36,"line":275},[34,204921,204922],{"class":47},"DISCARD\n",[34,204924,204925],{"class":36,"line":700},[34,204926,62],{"emptyLinePlaceholder":61},[34,204928,204929],{"class":36,"line":706},[34,204930,204931],{"class":40},"# Watch keys for optimistic locking\n",[34,204933,204934,204937,204939],{"class":36,"line":715},[34,204935,204936],{"class":47},"WATCH",[34,204938,203342],{"class":54},[34,204940,203345],{"class":54},[388,204942,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":204944},[204945],{"id":204853,"depth":44,"text":203901},"Transactions in Redis.",{},{"title":203901,"description":204946},"redis/transactions",[203067,93298,28650,28649,191593],"r0sryY7tBHc1NSfNpogAHkAOqRzEQ_0Q4pof8iQxhIk",{"id":204953,"title":204954,"body":204955,"date":402,"description":204969,"extension":404,"meta":204970,"navigation":61,"order":71,"path":204971,"seo":204972,"stem":204973,"subject":109602,"tags":204974,"__hash__":204976},"topics/regex/anchors.md","Anchors",{"type":8,"value":204956,"toc":204966},[204957,204960],[11,204958,204954],{"id":204959},"anchors",[25,204961,204964],{"className":204962,"code":204963,"language":780,"meta":30},[13703],"^           Start of string/line\n$           End of string/line\n\\b          Word boundary\n\\B          Non-word boundary\n",[20,204965,204963],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":204967},[204968],{"id":204959,"depth":44,"text":204954},"Anchors in Regex.",{},"/regex/anchors",{"title":204954,"description":204969},"regex/anchors",[109602,111080,113353,204975],"text-processing","XUiShTat_kVHIw5cp4HvRjPvpGnmxKq3XUzVM9XizOM",{"id":204978,"title":204979,"body":204980,"date":402,"description":204994,"extension":404,"meta":204995,"navigation":61,"order":44,"path":204996,"seo":204997,"stem":204998,"subject":109602,"tags":204999,"__hash__":205000},"topics/regex/basic-patterns.md","Basic Patterns",{"type":8,"value":204981,"toc":204991},[204982,204985],[11,204983,204979],{"id":204984},"basic-patterns",[25,204986,204989],{"className":204987,"code":204988,"language":780,"meta":30},[13703],".           Match any single character except newline\n\\d          Match any digit [0-9]\n\\D          Match any non-digit\n\\w          Match word character [a-zA-Z0-9_]\n\\W          Match non-word character\n\\s          Match whitespace (space, tab, newline)\n\\S          Match non-whitespace\n",[20,204990,204988],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":204992},[204993],{"id":204984,"depth":44,"text":204979},"Basic Patterns in Regex.",{},"/regex/basic-patterns",{"title":204979,"description":204994},"regex/basic-patterns",[109602,111080,113353,204975],"gesbATeIuoaazgnVJPwmRPeReR9lYyNtNU8Q0R0SfSg",{"id":205002,"title":205003,"body":205004,"date":402,"description":205018,"extension":404,"meta":205019,"navigation":61,"order":58,"path":205020,"seo":205021,"stem":205022,"subject":109602,"tags":205023,"__hash__":205024},"topics/regex/character-classes.md","Character Classes",{"type":8,"value":205005,"toc":205015},[205006,205009],[11,205007,205003],{"id":205008},"character-classes",[25,205010,205013],{"className":205011,"code":205012,"language":780,"meta":30},[13703],"[abc]       Match a, b, or c\n[^abc]      Match anything except a, b, or c\n[a-z]       Match any lowercase letter\n[A-Z]       Match any uppercase letter\n[0-9]       Match any digit\n[a-zA-Z]    Match any letter\n[a-zA-Z0-9] Match any alphanumeric character\n",[20,205014,205012],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":205016},[205017],{"id":205008,"depth":44,"text":205003},"Character Classes in Regex.",{},"/regex/character-classes",{"title":205003,"description":205018},"regex/character-classes",[109602,111080,113353,204975],"J-3ZDLON_SCIP_76WwBOnQM2N1TC1cR-HqmaO9qEG6Y",{"id":205026,"title":18143,"body":205027,"date":402,"description":205040,"extension":404,"meta":205041,"navigation":61,"order":250,"path":205042,"seo":205043,"stem":205044,"subject":109602,"tags":205045,"__hash__":205046},"topics/regex/common-patterns.md",{"type":8,"value":205028,"toc":205037},[205029,205031],[11,205030,18143],{"id":18148},[25,205032,205035],{"className":205033,"code":205034,"language":780,"meta":30},[13703],"Email (simple)\n[\\w.-]+@[\\w.-]+\\.\\w{2,}\n\nURL\nhttps?:\\/\\/[\\w.-]+(?:\\/[\\w.\\/?%&=-]*)?\n\nPhone (US)\n\\(?\\d{3}\\)?[-.\\s]?\\d{3}[-.\\s]?\\d{4}\n\nIP Address (IPv4)\n\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b\n\nDate (YYYY-MM-DD)\n\\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\\d|3[01])\n\nTime (HH:MM:SS)\n(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\n\nHex Color\n#(?:[0-9a-fA-F]{3}){1,2}\\b\n\nUsername (3-16 alphanumeric)\n^[a-zA-Z0-9_]{3,16}$\n\nStrong Password (8+ chars, mixed)\n^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{8,}$\n\nSlug\n^[a-z0-9]+(?:-[a-z0-9]+)*$\n\nZIP Code (US)\n\\b\\d{5}(?:-\\d{4})?\\b\n",[20,205036,205034],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":205038},[205039],{"id":18148,"depth":44,"text":18143},"Common Patterns in Regex.",{},"/regex/common-patterns",{"title":18143,"description":205040},"regex/common-patterns",[109602,111080,113353,204975],"IljHmHvhpARBv9czowymu1VXv6vPsMfNk63ZvEh5GNY",{"id":205048,"title":205049,"body":205050,"date":402,"description":205064,"extension":404,"meta":205065,"navigation":61,"order":242,"path":205066,"seo":205067,"stem":205068,"subject":109602,"tags":205069,"__hash__":205070},"topics/regex/escape-sequences.md","Escape Sequences",{"type":8,"value":205051,"toc":205061},[205052,205055],[11,205053,205049],{"id":205054},"escape-sequences",[25,205056,205059],{"className":205057,"code":205058,"language":780,"meta":30},[13703],"\\\\          Literal backslash\n\\.          Literal dot\n\\*          Literal asterisk\n\\?          Literal question mark\n\\+          Literal plus\n\\^          Literal caret\n\\$          Literal dollar sign\n\\[          Literal bracket\n\\{          Literal brace\n\\|          Literal pipe\n\\(          Literal parenthesis\n\\t          Tab\n\\n          Newline\n\\r          Carriage return\n",[20,205060,205058],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":205062},[205063],{"id":205054,"depth":44,"text":205049},"Escape Sequences in Regex.",{},"/regex/escape-sequences",{"title":205049,"description":205064},"regex/escape-sequences",[109602,111080,113353,204975],"GXTm1i6Y5viyimQHoKXw-iraQzq0-3aIKh1otz-wCAw",{"id":205072,"title":120524,"body":205073,"date":402,"description":205086,"extension":404,"meta":205087,"navigation":61,"order":700,"path":205088,"seo":205089,"stem":205090,"subject":109602,"tags":205091,"__hash__":205092},"topics/regex/examples.md",{"type":8,"value":205074,"toc":205083},[205075,205077],[11,205076,120524],{"id":88698},[25,205078,205081],{"className":205079,"code":205080,"language":780,"meta":30},[13703],"Match email\nInput: \"Contact us at hello@example.com\"\nPattern: [\\w.-]+@[\\w.-]+\\.\\w+\nMatch: \"hello@example.com\"\n\nMatch repeated words\nInput: \"the the quick brown\"\nPattern: \\b(\\w+)\\s+\\1\\b\nMatch: \"the the\"\n\nExtract numbers\nInput: \"Price: $19.99\"\nPattern: \\d+\\.?\\d*\nMatches: \"19.99\"\n\nValidate hex color\nInput: \"#ff5733\"\nPattern: ^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$\nMatch: \"#ff5733\"\n\nMatch HTML tags\nInput: \"\u003Cdiv>content\u003C/div>\"\nPattern: \u003C(\\w+)>.*?\u003C\\/\\1>\nMatch: \"\u003Cdiv>content\u003C/div>\"\n",[20,205082,205080],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":205084},[205085],{"id":88698,"depth":44,"text":120524},"Examples in Regex.",{},"/regex/examples",{"title":120524,"description":205086},"regex/examples",[109602,111080,113353,204975],"1zMcLkhcWykVKgNKabrr0riEh1oPMrynLfDqJzq3D-o",{"id":205094,"title":205095,"body":205096,"date":402,"description":205110,"extension":404,"meta":205111,"navigation":61,"order":88,"path":205112,"seo":205113,"stem":205114,"subject":109602,"tags":205115,"__hash__":205116},"topics/regex/flags.md","Flags",{"type":8,"value":205097,"toc":205107},[205098,205101],[11,205099,205095],{"id":205100},"flags",[25,205102,205105],{"className":205103,"code":205104,"language":780,"meta":30},[13703],"i           Case insensitive\ng           Global (find all matches)\nm           Multiline mode\ns           Dotall (. matches newlines)\nu           Unicode support\n",[20,205106,205104],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":205108},[205109],{"id":205100,"depth":44,"text":205095},"Flags in Regex.",{},"/regex/flags",{"title":205095,"description":205110},"regex/flags",[109602,111080,113353,204975],"NnfcbC1a3HsOZTBaqrJDN32Zq2dYrLrSaifuQy2IOFk",{"id":205118,"title":205119,"body":205120,"date":402,"description":205134,"extension":404,"meta":205135,"navigation":61,"order":77,"path":205136,"seo":205137,"stem":205138,"subject":109602,"tags":205139,"__hash__":205140},"topics/regex/groups-capturing.md","Groups & Capturing",{"type":8,"value":205121,"toc":205131},[205122,205125],[11,205123,205119],{"id":205124},"groups-capturing",[25,205126,205129],{"className":205127,"code":205128,"language":780,"meta":30},[13703],"(abc)       Capturing group\n(?:abc)     Non-capturing group\n(?\u003Cname>x)  Named capturing group\n\\1          Backreference to group 1\n\\k\u003Cname>    Backreference to named group\n(a|b)       Match a or b\n",[20,205130,205128],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":205132},[205133],{"id":205124,"depth":44,"text":205119},"Groups & Capturing in Regex.",{},"/regex/groups-capturing",{"title":205119,"description":205134},"regex/groups-capturing",[109602,111080,113353,204975],"KE_ytEqsOQZMO-V4u_TWbOXl9ljaCZRSTlJfzzoiuRc",{"id":205142,"title":205143,"body":205144,"date":402,"description":205368,"extension":404,"meta":205369,"navigation":61,"order":263,"path":205370,"seo":205371,"stem":205372,"subject":109602,"tags":205373,"__hash__":205374},"topics/regex/javascript-usage.md","JavaScript Usage",{"type":8,"value":205145,"toc":205365},[205146,205149,205362],[11,205147,205143],{"id":205148},"javascript-usage",[25,205150,205152],{"className":13845,"code":205151,"language":8606,"meta":30,"style":30},"// Test for match\n/pattern/.test(string)\n\n// Find first match\nstring.match(/pattern/)\n\n// Find all matches\nstring.match(/pattern/g)\n\n// Replace first\nstring.replace(/pattern/, 'replacement')\n\n// Replace all\nstring.replace(/pattern/g, 'replacement')\n\n// Split by pattern\nstring.split(/pattern/)\n\n// Capture groups\nconst match = string.match(/(\\w+)@(\\w+)/)\n// match[1] = first group, match[2] = second group\n",[20,205153,205154,205159,205174,205178,205182,205199,205203,205208,205226,205230,205235,205256,205260,205265,205287,205291,205296,205312,205316,205321,205357],{"__ignoreMap":30},[34,205155,205156],{"class":36,"line":37},[34,205157,205158],{"class":40},"// Test for match\n",[34,205160,205161,205163,205165,205167,205169,205171],{"class":36,"line":44},[34,205162,12734],{"class":54},[34,205164,177088],{"class":83922},[34,205166,12734],{"class":54},[34,205168,151],{"class":181},[34,205170,14618],{"class":47},[34,205172,205173],{"class":181},"(string)\n",[34,205175,205176],{"class":36,"line":58},[34,205177,62],{"emptyLinePlaceholder":61},[34,205179,205180],{"class":36,"line":65},[34,205181,125190],{"class":40},[34,205183,205184,205187,205189,205191,205193,205195,205197],{"class":36,"line":71},[34,205185,205186],{"class":181},"string.",[34,205188,193892],{"class":47},[34,205190,1607],{"class":181},[34,205192,12734],{"class":54},[34,205194,177088],{"class":83922},[34,205196,12734],{"class":54},[34,205198,3372],{"class":181},[34,205200,205201],{"class":36,"line":77},[34,205202,62],{"emptyLinePlaceholder":61},[34,205204,205205],{"class":36,"line":82},[34,205206,205207],{"class":40},"// Find all matches\n",[34,205209,205210,205212,205214,205216,205218,205220,205222,205224],{"class":36,"line":88},[34,205211,205186],{"class":181},[34,205213,193892],{"class":47},[34,205215,1607],{"class":181},[34,205217,12734],{"class":54},[34,205219,177088],{"class":83922},[34,205221,12734],{"class":54},[34,205223,13957],{"class":580},[34,205225,3372],{"class":181},[34,205227,205228],{"class":36,"line":242},[34,205229,62],{"emptyLinePlaceholder":61},[34,205231,205232],{"class":36,"line":250},[34,205233,205234],{"class":40},"// Replace first\n",[34,205236,205237,205239,205241,205243,205245,205247,205249,205251,205254],{"class":36,"line":263},[34,205238,205186],{"class":181},[34,205240,13943],{"class":47},[34,205242,1607],{"class":181},[34,205244,12734],{"class":54},[34,205246,177088],{"class":83922},[34,205248,12734],{"class":54},[34,205250,1798],{"class":181},[34,205252,205253],{"class":54},"'replacement'",[34,205255,3372],{"class":181},[34,205257,205258],{"class":36,"line":275},[34,205259,62],{"emptyLinePlaceholder":61},[34,205261,205262],{"class":36,"line":700},[34,205263,205264],{"class":40},"// Replace all\n",[34,205266,205267,205269,205271,205273,205275,205277,205279,205281,205283,205285],{"class":36,"line":706},[34,205268,205186],{"class":181},[34,205270,13943],{"class":47},[34,205272,1607],{"class":181},[34,205274,12734],{"class":54},[34,205276,177088],{"class":83922},[34,205278,12734],{"class":54},[34,205280,13957],{"class":580},[34,205282,1798],{"class":181},[34,205284,205253],{"class":54},[34,205286,3372],{"class":181},[34,205288,205289],{"class":36,"line":715},[34,205290,62],{"emptyLinePlaceholder":61},[34,205292,205293],{"class":36,"line":725},[34,205294,205295],{"class":40},"// Split by pattern\n",[34,205297,205298,205300,205302,205304,205306,205308,205310],{"class":36,"line":734},[34,205299,205186],{"class":181},[34,205301,124354],{"class":47},[34,205303,1607],{"class":181},[34,205305,12734],{"class":54},[34,205307,177088],{"class":83922},[34,205309,12734],{"class":54},[34,205311,3372],{"class":181},[34,205313,205314],{"class":36,"line":742},[34,205315,62],{"emptyLinePlaceholder":61},[34,205317,205318],{"class":36,"line":748},[34,205319,205320],{"class":40},"// Capture groups\n",[34,205322,205323,205325,205327,205329,205332,205334,205336,205338,205340,205342,205344,205347,205349,205351,205353,205355],{"class":36,"line":754},[34,205324,14676],{"class":580},[34,205326,171159],{"class":50},[34,205328,683],{"class":580},[34,205330,205331],{"class":181}," string.",[34,205333,193892],{"class":47},[34,205335,1607],{"class":181},[34,205337,12734],{"class":54},[34,205339,1607],{"class":83922},[34,205341,177364],{"class":50},[34,205343,2940],{"class":580},[34,205345,205346],{"class":83922},")@(",[34,205348,177364],{"class":50},[34,205350,2940],{"class":580},[34,205352,1617],{"class":83922},[34,205354,12734],{"class":54},[34,205356,3372],{"class":181},[34,205358,205359],{"class":36,"line":759},[34,205360,205361],{"class":40},"// match[1] = first group, match[2] = second group\n",[388,205363,205364],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sA_wV, html code.shiki .sA_wV{--shiki-default:#032F62;--shiki-dark:#DBEDFF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":205366},[205367],{"id":205148,"depth":44,"text":205143},"JavaScript Usage in Regex.",{},"/regex/javascript-usage",{"title":205143,"description":205368},"regex/javascript-usage",[109602,111080,113353,204975],"wJmNPMKEQ_0T491rqXmIiP6yU2ilnvzPciQS786-M1o",{"id":205376,"title":205377,"body":205378,"date":402,"description":205392,"extension":404,"meta":205393,"navigation":61,"order":82,"path":205394,"seo":205395,"stem":205396,"subject":109602,"tags":205397,"__hash__":205398},"topics/regex/lookahead-lookbehind.md","Lookahead & Lookbehind",{"type":8,"value":205379,"toc":205389},[205380,205383],[11,205381,205377],{"id":205382},"lookahead-lookbehind",[25,205384,205387],{"className":205385,"code":205386,"language":780,"meta":30},[13703],"(?=foo)     Positive lookahead\n(?!foo)     Negative lookahead\n(?\u003C=foo)    Positive lookbehind\n(?\u003C!foo)    Negative lookbehind\n",[20,205388,205386],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":205390},[205391],{"id":205382,"depth":44,"text":205377},"Lookahead & Lookbehind in Regex.",{},"/regex/lookahead-lookbehind",{"title":205377,"description":205392},"regex/lookahead-lookbehind",[109602,111080,113353,204975],"ROMnjCsXum-O6VPEqpupzLSPi_6syxrjHe0i6yhmkzI",{"id":205400,"title":205401,"body":205402,"date":2633,"description":205460,"extension":404,"meta":205461,"navigation":61,"order":37,"path":205462,"seo":205463,"stem":205464,"subject":109602,"tags":205465,"__hash__":205466},"topics/regex/overview.md","Regex",{"type":8,"value":205403,"toc":205458},[205404],[309,205405,205406,205410,205414,205420,205424,205428,205432,205436,205440,205444,205448,205454],{},[312,205407,205408],{},[145,205409,204979],{"href":204996},[312,205411,205412],{},[145,205413,205003],{"href":205020},[312,205415,205416],{},[145,205417,205419],{"href":205418},"/regex/quantifiers","Quantifiers",[312,205421,205422],{},[145,205423,204954],{"href":204971},[312,205425,205426],{},[145,205427,205119],{"href":205136},[312,205429,205430],{},[145,205431,205377],{"href":205394},[312,205433,205434],{},[145,205435,205095],{"href":205112},[312,205437,205438],{},[145,205439,205049],{"href":205066},[312,205441,205442],{},[145,205443,18143],{"href":205042},[312,205445,205446],{},[145,205447,205143],{"href":205370},[312,205449,205450],{},[145,205451,205453],{"href":205452},"/regex/python-usage","Python Usage",[312,205455,205456],{},[145,205457,120524],{"href":205088},{"title":30,"searchDepth":44,"depth":44,"links":205459},[],"Essential regular expression patterns, syntax, and examples for text matching and manipulation.",{},"/regex/overview",{"title":205401,"description":205460},"regex/overview",[109602,111080,113353,204975],"B20VH9A_NIHs1D5qG5KVkh75WMZBTuXErpAIMmif6cU",{"id":205468,"title":205453,"body":205469,"date":402,"description":205650,"extension":404,"meta":205651,"navigation":61,"order":275,"path":205452,"seo":205652,"stem":205653,"subject":109602,"tags":205654,"__hash__":205655},"topics/regex/python-usage.md",{"type":8,"value":205470,"toc":205647},[205471,205474,205644],[11,205472,205453],{"id":205473},"python-usage",[25,205475,205477],{"className":49386,"code":205476,"language":49388,"meta":30,"style":30},"import re\n\n# Search anywhere in string\nre.search(r'pattern', string)\n\n# Match at start only\nre.match(r'pattern', string)\n\n# Find all matches\nre.findall(r'pattern', string)\n\n# Replace\nre.sub(r'pattern', 'replacement', string)\n\n# Split\nre.split(r'pattern', string)\n\n# Compile for reuse\npattern = re.compile(r'pattern')\npattern.search(string)\n",[20,205478,205479,205486,205490,205495,205511,205515,205520,205535,205539,205544,205559,205563,205567,205586,205590,205595,205610,205614,205619,205639],{"__ignoreMap":30},[34,205480,205481,205483],{"class":36,"line":37},[34,205482,581],{"class":580},[34,205484,205485],{"class":181}," re\n",[34,205487,205488],{"class":36,"line":44},[34,205489,62],{"emptyLinePlaceholder":61},[34,205491,205492],{"class":36,"line":58},[34,205493,205494],{"class":40},"# Search anywhere in string\n",[34,205496,205497,205500,205502,205504,205506,205508],{"class":36,"line":65},[34,205498,205499],{"class":181},"re.search(",[34,205501,56239],{"class":580},[34,205503,105078],{"class":54},[34,205505,177088],{"class":83922},[34,205507,105078],{"class":54},[34,205509,205510],{"class":181},", string)\n",[34,205512,205513],{"class":36,"line":71},[34,205514,62],{"emptyLinePlaceholder":61},[34,205516,205517],{"class":36,"line":77},[34,205518,205519],{"class":40},"# Match at start only\n",[34,205521,205522,205525,205527,205529,205531,205533],{"class":36,"line":82},[34,205523,205524],{"class":181},"re.match(",[34,205526,56239],{"class":580},[34,205528,105078],{"class":54},[34,205530,177088],{"class":83922},[34,205532,105078],{"class":54},[34,205534,205510],{"class":181},[34,205536,205537],{"class":36,"line":88},[34,205538,62],{"emptyLinePlaceholder":61},[34,205540,205541],{"class":36,"line":242},[34,205542,205543],{"class":40},"# Find all matches\n",[34,205545,205546,205549,205551,205553,205555,205557],{"class":36,"line":250},[34,205547,205548],{"class":181},"re.findall(",[34,205550,56239],{"class":580},[34,205552,105078],{"class":54},[34,205554,177088],{"class":83922},[34,205556,105078],{"class":54},[34,205558,205510],{"class":181},[34,205560,205561],{"class":36,"line":263},[34,205562,62],{"emptyLinePlaceholder":61},[34,205564,205565],{"class":36,"line":275},[34,205566,12725],{"class":40},[34,205568,205569,205572,205574,205576,205578,205580,205582,205584],{"class":36,"line":700},[34,205570,205571],{"class":181},"re.sub(",[34,205573,56239],{"class":580},[34,205575,105078],{"class":54},[34,205577,177088],{"class":83922},[34,205579,105078],{"class":54},[34,205581,1798],{"class":181},[34,205583,205253],{"class":54},[34,205585,205510],{"class":181},[34,205587,205588],{"class":36,"line":706},[34,205589,62],{"emptyLinePlaceholder":61},[34,205591,205592],{"class":36,"line":715},[34,205593,205594],{"class":40},"# Split\n",[34,205596,205597,205600,205602,205604,205606,205608],{"class":36,"line":725},[34,205598,205599],{"class":181},"re.split(",[34,205601,56239],{"class":580},[34,205603,105078],{"class":54},[34,205605,177088],{"class":83922},[34,205607,105078],{"class":54},[34,205609,205510],{"class":181},[34,205611,205612],{"class":36,"line":734},[34,205613,62],{"emptyLinePlaceholder":61},[34,205615,205616],{"class":36,"line":742},[34,205617,205618],{"class":40},"# Compile for reuse\n",[34,205620,205621,205624,205626,205629,205631,205633,205635,205637],{"class":36,"line":748},[34,205622,205623],{"class":181},"pattern ",[34,205625,1301],{"class":580},[34,205627,205628],{"class":181}," re.compile(",[34,205630,56239],{"class":580},[34,205632,105078],{"class":54},[34,205634,177088],{"class":83922},[34,205636,105078],{"class":54},[34,205638,3372],{"class":181},[34,205640,205641],{"class":36,"line":754},[34,205642,205643],{"class":181},"pattern.search(string)\n",[388,205645,205646],{},"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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sA_wV, html code.shiki .sA_wV{--shiki-default:#032F62;--shiki-dark:#DBEDFF}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":30,"searchDepth":44,"depth":44,"links":205648},[205649],{"id":205473,"depth":44,"text":205453},"Python Usage in Regex.",{},{"title":205453,"description":205650},"regex/python-usage",[109602,111080,113353,204975],"EDXKOxW02pvKolGnrcmFEp0U2xI45twK2k0tAWp-cXo",{"id":205657,"title":205419,"body":205658,"date":402,"description":205672,"extension":404,"meta":205673,"navigation":61,"order":65,"path":205418,"seo":205674,"stem":205675,"subject":109602,"tags":205676,"__hash__":205677},"topics/regex/quantifiers.md",{"type":8,"value":205659,"toc":205669},[205660,205663],[11,205661,205419],{"id":205662},"quantifiers",[25,205664,205667],{"className":205665,"code":205666,"language":780,"meta":30},[13703],"*           0 or more\n+           1 or more\n?           0 or 1 (optional)\n{n}         Exactly n times\n{n,}        n or more times\n{n,m}       Between n and m times\n*?          Lazy: match as few as possible\n+?          Lazy: match as few as possible\n",[20,205668,205666],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":205670},[205671],{"id":205662,"depth":44,"text":205419},"Quantifiers in Regex.",{},{"title":205419,"description":205672},"regex/quantifiers",[109602,111080,113353,204975],"WntADO5h33QoXUz3jBU71At165_BxlVsGtR5AEkhrGI",{"id":205679,"title":13534,"body":205680,"date":402,"description":205686,"extension":404,"meta":205689,"navigation":61,"order":402,"path":205690,"seo":205691,"stem":205692,"subject":402,"tags":402,"__hash__":205693},"topics/remix/overview.md",{"type":8,"value":205681,"toc":205687},[205682,205684],[7979,205683],{},[16,205685,205686],{},"title: Remix\ndescription: Key concepts and commands for developing dynamic web applications using Remix's unique \"centerstack\" model.\nsubject: remix\norder: 1\nRemicing with goodness\u003C\u003C //In sync per web! prior. json tags",{"title":30,"searchDepth":44,"depth":44,"links":205688},[],{},"/remix/overview",{"title":13534,"description":205686},"remix/overview","44i3geBI3MzNfc66AMISqTIWTwChxyOL2lKabIwRw3o",{"id":205695,"title":205696,"body":205697,"date":402,"description":205795,"extension":404,"meta":205796,"navigation":61,"order":37,"path":205797,"seo":205798,"stem":205799,"subject":205696,"tags":205800,"__hash__":205801},"topics/ripgrep/overview.md","ripgrep",{"type":8,"value":205698,"toc":205790},[205699,205701,205709,205711,205714,205754,205757,205759,205787],[11,205700,14],{"id":13},[16,205702,205703,205705,205706,205708],{},[20,205704,205696],{}," (rg) is a high-performance search tool that replaces ",[20,205707,11489],{},", with optimized support for faster search capabilities. Useful for developers and administrators.",[11,205710,97],{"id":96},[16,205712,205713],{},"Use your system's package manager:",[25,205715,205717],{"className":15902,"code":205716,"language":15904,"meta":30,"style":30},"apt install ripgrep  # Debian/Ubuntu\nbrew install ripgrep # macOS\nchoco install rg      # Windows\n",[20,205718,205719,205731,205742],{"__ignoreMap":30},[34,205720,205721,205723,205725,205728],{"class":36,"line":37},[34,205722,5462],{"class":47},[34,205724,118],{"class":54},[34,205726,205727],{"class":54}," ripgrep",[34,205729,205730],{"class":40},"  # Debian/Ubuntu\n",[34,205732,205733,205735,205737,205739],{"class":36,"line":44},[34,205734,115],{"class":47},[34,205736,118],{"class":54},[34,205738,205727],{"class":54},[34,205740,205741],{"class":40}," # macOS\n",[34,205743,205744,205746,205748,205751],{"class":36,"line":58},[34,205745,78265],{"class":47},[34,205747,118],{"class":54},[34,205749,205750],{"class":54}," rg",[34,205752,205753],{"class":40},"      # Windows\n",[16,205755,205756],{},"It uses memory maps to read files and is built in Rust for blazing speed.",[11,205758,33160],{"id":33159},[25,205760,205762],{"className":15902,"code":205761,"language":15904,"meta":30,"style":30},"rg [options] pattern [files or globs]\n\n# Example:\nrg \"search strings\"\n",[20,205763,205764,205771,205775,205780],{"__ignoreMap":30},[34,205765,205766,205768],{"class":36,"line":37},[34,205767,109588],{"class":47},[34,205769,205770],{"class":181}," [options] pattern [files or globs]\n",[34,205772,205773],{"class":36,"line":44},[34,205774,62],{"emptyLinePlaceholder":61},[34,205776,205777],{"class":36,"line":58},[34,205778,205779],{"class":40},"# Example:\n",[34,205781,205782,205784],{"class":36,"line":65},[34,205783,109588],{"class":47},[34,205785,205786],{"class":54}," \"search strings\"\n",[388,205788,205789],{},"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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":30,"searchDepth":44,"depth":44,"links":205791},[205792,205793,205794],{"id":13,"depth":44,"text":14},{"id":96,"depth":44,"text":97},{"id":33159,"depth":44,"text":33160},"Overview of ripgrep, a line-oriented search tool that recurses through directories.",{},"/ripgrep/overview",{"title":205696,"description":205795},"ripgrep/overview",[89861,88773,205696],"KqJzeYM1JWK191nE2oJ3BQZmt2VzhbmVTt3_4NXqY58",{"id":205803,"title":205804,"body":205805,"date":402,"description":206238,"extension":404,"meta":206239,"navigation":61,"order":37,"path":206240,"seo":206241,"stem":206242,"subject":205854,"tags":206243,"__hash__":206244},"topics/roc/overview.md","Roc",{"type":8,"value":205806,"toc":206228},[205807,205809,205857,205859,205893,205895,205948,205950,206017,206019,206073,206075,206127,206131,206173,206177,206226],[11,205808,97],{"id":96},[25,205810,205812],{"className":27,"code":205811,"language":29,"meta":30,"style":30},"# Download from roc-lang.org\ncurl -fsSL https://roc-lang.org/install.sh | sh\n\n# Or download binary directly\n# https://github.com/roc-lang/roc/releases\n\nroc version\n",[20,205813,205814,205819,205832,205836,205841,205846,205850],{"__ignoreMap":30},[34,205815,205816],{"class":36,"line":37},[34,205817,205818],{"class":40},"# Download from roc-lang.org\n",[34,205820,205821,205823,205825,205828,205830],{"class":36,"line":44},[34,205822,8648],{"class":47},[34,205824,15806],{"class":50},[34,205826,205827],{"class":54}," https://roc-lang.org/install.sh",[34,205829,7197],{"class":580},[34,205831,48093],{"class":47},[34,205833,205834],{"class":36,"line":58},[34,205835,62],{"emptyLinePlaceholder":61},[34,205837,205838],{"class":36,"line":65},[34,205839,205840],{"class":40},"# Or download binary directly\n",[34,205842,205843],{"class":36,"line":71},[34,205844,205845],{"class":40},"# https://github.com/roc-lang/roc/releases\n",[34,205847,205848],{"class":36,"line":77},[34,205849,62],{"emptyLinePlaceholder":61},[34,205851,205852,205855],{"class":36,"line":82},[34,205853,205854],{"class":47},"roc",[34,205856,9358],{"class":54},[11,205858,22151],{"id":22156},[25,205860,205863],{"className":205861,"code":205862,"language":205854,"meta":30,"style":30},"language-roc shiki shiki-themes github-light github-dark","app [main] { pf: platform \"https://github.com/roc-lang/basic-cli/...\" }\n\nimport pf.Stdout\n\nmain =\n    Stdout.line! \"Hello, World!\"\n",[20,205864,205865,205870,205874,205879,205883,205888],{"__ignoreMap":30},[34,205866,205867],{"class":36,"line":37},[34,205868,205869],{},"app [main] { pf: platform \"https://github.com/roc-lang/basic-cli/...\" }\n",[34,205871,205872],{"class":36,"line":44},[34,205873,62],{"emptyLinePlaceholder":61},[34,205875,205876],{"class":36,"line":58},[34,205877,205878],{},"import pf.Stdout\n",[34,205880,205881],{"class":36,"line":65},[34,205882,62],{"emptyLinePlaceholder":61},[34,205884,205885],{"class":36,"line":71},[34,205886,205887],{},"main =\n",[34,205889,205890],{"class":36,"line":77},[34,205891,205892],{},"    Stdout.line! \"Hello, World!\"\n",[11,205894,33160],{"id":33159},[25,205896,205898],{"className":205861,"code":205897,"language":205854,"meta":30,"style":30},"# Variables (immutable by default)\nx = 42\nname = \"Alice\"\n\n# Type annotations\ncount : U64\ncount = 100\n\n# String interpolation\ngreeting = \"Hello, $(name)!\"\n",[20,205899,205900,205905,205910,205915,205919,205924,205929,205934,205938,205943],{"__ignoreMap":30},[34,205901,205902],{"class":36,"line":37},[34,205903,205904],{},"# Variables (immutable by default)\n",[34,205906,205907],{"class":36,"line":44},[34,205908,205909],{},"x = 42\n",[34,205911,205912],{"class":36,"line":58},[34,205913,205914],{},"name = \"Alice\"\n",[34,205916,205917],{"class":36,"line":65},[34,205918,62],{"emptyLinePlaceholder":61},[34,205920,205921],{"class":36,"line":71},[34,205922,205923],{},"# Type annotations\n",[34,205925,205926],{"class":36,"line":77},[34,205927,205928],{},"count : U64\n",[34,205930,205931],{"class":36,"line":82},[34,205932,205933],{},"count = 100\n",[34,205935,205936],{"class":36,"line":88},[34,205937,62],{"emptyLinePlaceholder":61},[34,205939,205940],{"class":36,"line":242},[34,205941,205942],{},"# String interpolation\n",[34,205944,205945],{"class":36,"line":250},[34,205946,205947],{},"greeting = \"Hello, $(name)!\"\n",[11,205949,10991],{"id":10996},[25,205951,205953],{"className":205861,"code":205952,"language":205854,"meta":30,"style":30},"# Define a function\nadd : U64, U64 -> U64\nadd = \\a, b -> a + b\n\n# Call it\nresult = add 3 4   # => 7\n\n# Anonymous function\ndouble = \\n -> n * 2\n\n# Multi-line\ngreet = \\name ->\n    \"Hello, $(name)!\"\n",[20,205954,205955,205960,205965,205970,205974,205979,205984,205988,205993,205998,206002,206007,206012],{"__ignoreMap":30},[34,205956,205957],{"class":36,"line":37},[34,205958,205959],{},"# Define a function\n",[34,205961,205962],{"class":36,"line":44},[34,205963,205964],{},"add : U64, U64 -> U64\n",[34,205966,205967],{"class":36,"line":58},[34,205968,205969],{},"add = \\a, b -> a + b\n",[34,205971,205972],{"class":36,"line":65},[34,205973,62],{"emptyLinePlaceholder":61},[34,205975,205976],{"class":36,"line":71},[34,205977,205978],{},"# Call it\n",[34,205980,205981],{"class":36,"line":77},[34,205982,205983],{},"result = add 3 4   # => 7\n",[34,205985,205986],{"class":36,"line":82},[34,205987,62],{"emptyLinePlaceholder":61},[34,205989,205990],{"class":36,"line":88},[34,205991,205992],{},"# Anonymous function\n",[34,205994,205995],{"class":36,"line":242},[34,205996,205997],{},"double = \\n -> n * 2\n",[34,205999,206000],{"class":36,"line":250},[34,206001,62],{"emptyLinePlaceholder":61},[34,206003,206004],{"class":36,"line":263},[34,206005,206006],{},"# Multi-line\n",[34,206008,206009],{"class":36,"line":275},[34,206010,206011],{},"greet = \\name ->\n",[34,206013,206014],{"class":36,"line":700},[34,206015,206016],{},"    \"Hello, $(name)!\"\n",[11,206018,61477],{"id":61476},[25,206020,206022],{"className":205861,"code":206021,"language":205854,"meta":30,"style":30},"# when expression\ndescribe = \\n ->\n    when n is\n        0 -> \"zero\"\n        1 -> \"one\"\n        _ -> \"many\"\n\n# Destructuring\npoint = { x: 1, y: 2 }\n{ x, y } = point\n",[20,206023,206024,206029,206034,206039,206044,206049,206054,206058,206063,206068],{"__ignoreMap":30},[34,206025,206026],{"class":36,"line":37},[34,206027,206028],{},"# when expression\n",[34,206030,206031],{"class":36,"line":44},[34,206032,206033],{},"describe = \\n ->\n",[34,206035,206036],{"class":36,"line":58},[34,206037,206038],{},"    when n is\n",[34,206040,206041],{"class":36,"line":65},[34,206042,206043],{},"        0 -> \"zero\"\n",[34,206045,206046],{"class":36,"line":71},[34,206047,206048],{},"        1 -> \"one\"\n",[34,206050,206051],{"class":36,"line":77},[34,206052,206053],{},"        _ -> \"many\"\n",[34,206055,206056],{"class":36,"line":82},[34,206057,62],{"emptyLinePlaceholder":61},[34,206059,206060],{"class":36,"line":88},[34,206061,206062],{},"# Destructuring\n",[34,206064,206065],{"class":36,"line":242},[34,206066,206067],{},"point = { x: 1, y: 2 }\n",[34,206069,206070],{"class":36,"line":250},[34,206071,206072],{},"{ x, y } = point\n",[11,206074,61448],{"id":80306},[25,206076,206078],{"className":205861,"code":206077,"language":205854,"meta":30,"style":30},"nums = [1, 2, 3, 4, 5]\n\n# Map\ndoubled = List.map nums \\n -> n * 2\n\n# Filter\nevens = List.keepIf nums \\n -> n % 2 == 0\n\n# Fold\nsum = List.walk nums 0 \\acc, n -> acc + n\n",[20,206079,206080,206085,206089,206094,206099,206103,206108,206113,206117,206122],{"__ignoreMap":30},[34,206081,206082],{"class":36,"line":37},[34,206083,206084],{},"nums = [1, 2, 3, 4, 5]\n",[34,206086,206087],{"class":36,"line":44},[34,206088,62],{"emptyLinePlaceholder":61},[34,206090,206091],{"class":36,"line":58},[34,206092,206093],{},"# Map\n",[34,206095,206096],{"class":36,"line":65},[34,206097,206098],{},"doubled = List.map nums \\n -> n * 2\n",[34,206100,206101],{"class":36,"line":71},[34,206102,62],{"emptyLinePlaceholder":61},[34,206104,206105],{"class":36,"line":77},[34,206106,206107],{},"# Filter\n",[34,206109,206110],{"class":36,"line":82},[34,206111,206112],{},"evens = List.keepIf nums \\n -> n % 2 == 0\n",[34,206114,206115],{"class":36,"line":88},[34,206116,62],{"emptyLinePlaceholder":61},[34,206118,206119],{"class":36,"line":242},[34,206120,206121],{},"# Fold\n",[34,206123,206124],{"class":36,"line":250},[34,206125,206126],{},"sum = List.walk nums 0 \\acc, n -> acc + n\n",[11,206128,206130],{"id":206129},"tasks-effects","Tasks (Effects)",[25,206132,206134],{"className":205861,"code":206133,"language":205854,"meta":30,"style":30},"# Tasks represent effectful operations\nimport pf.Stdout\nimport pf.Stdin\n\nmain =\n    Stdout.write! \"Enter name: \"\n    input \u003C- Stdin.line! |> Task.await\n    Stdout.line! \"Hello, $(input)!\"\n",[20,206135,206136,206141,206145,206150,206154,206158,206163,206168],{"__ignoreMap":30},[34,206137,206138],{"class":36,"line":37},[34,206139,206140],{},"# Tasks represent effectful operations\n",[34,206142,206143],{"class":36,"line":44},[34,206144,205878],{},[34,206146,206147],{"class":36,"line":58},[34,206148,206149],{},"import pf.Stdin\n",[34,206151,206152],{"class":36,"line":65},[34,206153,62],{"emptyLinePlaceholder":61},[34,206155,206156],{"class":36,"line":71},[34,206157,205887],{},[34,206159,206160],{"class":36,"line":77},[34,206161,206162],{},"    Stdout.write! \"Enter name: \"\n",[34,206164,206165],{"class":36,"line":82},[34,206166,206167],{},"    input \u003C- Stdin.line! |> Task.await\n",[34,206169,206170],{"class":36,"line":88},[34,206171,206172],{},"    Stdout.line! \"Hello, $(input)!\"\n",[11,206174,206176],{"id":206175},"custom-types","Custom Types",[25,206178,206180],{"className":205861,"code":206179,"language":205854,"meta":30,"style":30},"# Tag unions (sum types)\nShape : [Circle F64, Rectangle F64 F64, Triangle F64 F64 F64]\n\narea : Shape -> F64\narea = \\shape ->\n    when shape is\n        Circle r -> Num.pi * r * r\n        Rectangle w h -> w * h\n        Triangle b h _ -> 0.5 * b * h\n",[20,206181,206182,206187,206192,206196,206201,206206,206211,206216,206221],{"__ignoreMap":30},[34,206183,206184],{"class":36,"line":37},[34,206185,206186],{},"# Tag unions (sum types)\n",[34,206188,206189],{"class":36,"line":44},[34,206190,206191],{},"Shape : [Circle F64, Rectangle F64 F64, Triangle F64 F64 F64]\n",[34,206193,206194],{"class":36,"line":58},[34,206195,62],{"emptyLinePlaceholder":61},[34,206197,206198],{"class":36,"line":65},[34,206199,206200],{},"area : Shape -> F64\n",[34,206202,206203],{"class":36,"line":71},[34,206204,206205],{},"area = \\shape ->\n",[34,206207,206208],{"class":36,"line":77},[34,206209,206210],{},"    when shape is\n",[34,206212,206213],{"class":36,"line":82},[34,206214,206215],{},"        Circle r -> Num.pi * r * r\n",[34,206217,206218],{"class":36,"line":88},[34,206219,206220],{},"        Rectangle w h -> w * h\n",[34,206222,206223],{"class":36,"line":242},[34,206224,206225],{},"        Triangle b h _ -> 0.5 * b * h\n",[388,206227,15873],{},{"title":30,"searchDepth":44,"depth":44,"links":206229},[206230,206231,206232,206233,206234,206235,206236,206237],{"id":96,"depth":44,"text":97},{"id":22156,"depth":44,"text":22151},{"id":33159,"depth":44,"text":33160},{"id":10996,"depth":44,"text":10991},{"id":61476,"depth":44,"text":61477},{"id":80306,"depth":44,"text":61448},{"id":206129,"depth":44,"text":206130},{"id":206175,"depth":44,"text":206176},"A fast, friendly, and functional programming language designed for reliability and performance.",{},"/roc/overview",{"title":205804,"description":206238},"roc/overview",[205854,61662,109183,120566,122020],"EkC-d4P5p1TxwNI_2IILxyjFFeoWNMhrFXZ9msghmsg",{"id":206246,"title":206247,"body":206248,"date":402,"description":206373,"extension":404,"meta":206374,"navigation":61,"order":82,"path":206375,"seo":206376,"stem":206377,"subject":206267,"tags":206378,"__hash__":206381},"topics/rsync/bandwidth-and-performance.md","Bandwidth and Performance",{"type":8,"value":206249,"toc":206370},[206250,206253,206368],[11,206251,206247],{"id":206252},"bandwidth-and-performance",[25,206254,206256],{"className":27,"code":206255,"language":29,"meta":30,"style":30},"# Limit bandwidth (in KB/s)\nrsync -av --bwlimit=1000 source/ dest/\n\n# Skip files based on size\nrsync -av --max-size='100M' source/ dest/    # Skip files larger than 100MB\nrsync -av --min-size='1M' source/ dest/      # Skip files smaller than 1MB\n\n# Partial transfers (resume interrupted transfers)\nrsync -avP source/ dest/\n\n# Skip files based on checksum (not just timestamp/size)\nrsync -avc source/ dest/\n",[20,206257,206258,206263,206280,206284,206289,206309,206328,206332,206337,206348,206352,206357],{"__ignoreMap":30},[34,206259,206260],{"class":36,"line":37},[34,206261,206262],{"class":40},"# Limit bandwidth (in KB/s)\n",[34,206264,206265,206268,206271,206274,206277],{"class":36,"line":44},[34,206266,206267],{"class":47},"rsync",[34,206269,206270],{"class":50}," -av",[34,206272,206273],{"class":50}," --bwlimit=1000",[34,206275,206276],{"class":54}," source/",[34,206278,206279],{"class":54}," dest/\n",[34,206281,206282],{"class":36,"line":58},[34,206283,62],{"emptyLinePlaceholder":61},[34,206285,206286],{"class":36,"line":65},[34,206287,206288],{"class":40},"# Skip files based on size\n",[34,206290,206291,206293,206295,206298,206301,206303,206306],{"class":36,"line":71},[34,206292,206267],{"class":47},[34,206294,206270],{"class":50},[34,206296,206297],{"class":50}," --max-size=",[34,206299,206300],{"class":54},"'100M'",[34,206302,206276],{"class":54},[34,206304,206305],{"class":54}," dest/",[34,206307,206308],{"class":40},"    # Skip files larger than 100MB\n",[34,206310,206311,206313,206315,206318,206321,206323,206325],{"class":36,"line":77},[34,206312,206267],{"class":47},[34,206314,206270],{"class":50},[34,206316,206317],{"class":50}," --min-size=",[34,206319,206320],{"class":54},"'1M'",[34,206322,206276],{"class":54},[34,206324,206305],{"class":54},[34,206326,206327],{"class":40},"      # Skip files smaller than 1MB\n",[34,206329,206330],{"class":36,"line":82},[34,206331,62],{"emptyLinePlaceholder":61},[34,206333,206334],{"class":36,"line":88},[34,206335,206336],{"class":40},"# Partial transfers (resume interrupted transfers)\n",[34,206338,206339,206341,206344,206346],{"class":36,"line":242},[34,206340,206267],{"class":47},[34,206342,206343],{"class":50}," -avP",[34,206345,206276],{"class":54},[34,206347,206279],{"class":54},[34,206349,206350],{"class":36,"line":250},[34,206351,62],{"emptyLinePlaceholder":61},[34,206353,206354],{"class":36,"line":263},[34,206355,206356],{"class":40},"# Skip files based on checksum (not just timestamp/size)\n",[34,206358,206359,206361,206364,206366],{"class":36,"line":275},[34,206360,206267],{"class":47},[34,206362,206363],{"class":50}," -avc",[34,206365,206276],{"class":54},[34,206367,206279],{"class":54},[388,206369,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":206371},[206372],{"id":206252,"depth":44,"text":206247},"Bandwidth and Performance in rsync.",{},"/rsync/bandwidth-and-performance",{"title":206247,"description":206373},"rsync/bandwidth-and-performance",[206267,106223,206379,9735,206380],"backup","transfer","bn7ojVnz66dJ0O2NK-Jq1cRV6RqtCcVTS-6RrtB9V-o",{"id":206383,"title":33160,"body":206384,"date":402,"description":206498,"extension":404,"meta":206499,"navigation":61,"order":44,"path":206500,"seo":206501,"stem":206502,"subject":206267,"tags":206503,"__hash__":206504},"topics/rsync/basic-syntax.md",{"type":8,"value":206385,"toc":206495},[206386,206388,206493],[11,206387,33160],{"id":33159},[25,206389,206391],{"className":27,"code":206390,"language":29,"meta":30,"style":30},"# Basic sync (source to destination)\nrsync source destination\n\n# Sync directory contents (note trailing slash)\nrsync -av source/ destination/      # Sync contents of source/ into destination/\nrsync -av source destination/       # Create source/ inside destination/\n\n# Common options\nrsync -av source/ dest/             # Archive mode + verbose\nrsync -avz source/ dest/            # Add compression\nrsync -avzh source/ dest/           # Human-readable sizes\n",[20,206392,206393,206398,206407,206411,206416,206430,206443,206447,206452,206465,206479],{"__ignoreMap":30},[34,206394,206395],{"class":36,"line":37},[34,206396,206397],{"class":40},"# Basic sync (source to destination)\n",[34,206399,206400,206402,206404],{"class":36,"line":44},[34,206401,206267],{"class":47},[34,206403,13231],{"class":54},[34,206405,206406],{"class":54}," destination\n",[34,206408,206409],{"class":36,"line":58},[34,206410,62],{"emptyLinePlaceholder":61},[34,206412,206413],{"class":36,"line":65},[34,206414,206415],{"class":40},"# Sync directory contents (note trailing slash)\n",[34,206417,206418,206420,206422,206424,206427],{"class":36,"line":71},[34,206419,206267],{"class":47},[34,206421,206270],{"class":50},[34,206423,206276],{"class":54},[34,206425,206426],{"class":54}," destination/",[34,206428,206429],{"class":40},"      # Sync contents of source/ into destination/\n",[34,206431,206432,206434,206436,206438,206440],{"class":36,"line":77},[34,206433,206267],{"class":47},[34,206435,206270],{"class":50},[34,206437,13231],{"class":54},[34,206439,206426],{"class":54},[34,206441,206442],{"class":40},"       # Create source/ inside destination/\n",[34,206444,206445],{"class":36,"line":82},[34,206446,62],{"emptyLinePlaceholder":61},[34,206448,206449],{"class":36,"line":88},[34,206450,206451],{"class":40},"# Common options\n",[34,206453,206454,206456,206458,206460,206462],{"class":36,"line":242},[34,206455,206267],{"class":47},[34,206457,206270],{"class":50},[34,206459,206276],{"class":54},[34,206461,206305],{"class":54},[34,206463,206464],{"class":40},"             # Archive mode + verbose\n",[34,206466,206467,206469,206472,206474,206476],{"class":36,"line":250},[34,206468,206267],{"class":47},[34,206470,206471],{"class":50}," -avz",[34,206473,206276],{"class":54},[34,206475,206305],{"class":54},[34,206477,206478],{"class":40},"            # Add compression\n",[34,206480,206481,206483,206486,206488,206490],{"class":36,"line":263},[34,206482,206267],{"class":47},[34,206484,206485],{"class":50}," -avzh",[34,206487,206276],{"class":54},[34,206489,206305],{"class":54},[34,206491,206492],{"class":40},"           # Human-readable sizes\n",[388,206494,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":206496},[206497],{"id":33159,"depth":44,"text":33160},"Basic Syntax in rsync.",{},"/rsync/basic-syntax",{"title":33160,"description":206498},"rsync/basic-syntax",[206267,106223,206379,9735,206380],"7xAmx_B7sbXN3AeW60tb8hpWo4GT3eWzZuJ-KMGP08g",{"id":206506,"title":8370,"body":206507,"date":402,"description":206727,"extension":404,"meta":206728,"navigation":61,"order":88,"path":206729,"seo":206730,"stem":206731,"subject":206267,"tags":206732,"__hash__":206733},"topics/rsync/common-use-cases.md",{"type":8,"value":206508,"toc":206719},[206509,206511,206515,206580,206584,206629,206633,206668,206672,206717],[11,206510,8370],{"id":8369},[102,206512,206514],{"id":206513},"backup-with-exclusions","Backup with Exclusions",[25,206516,206518],{"className":27,"code":206517,"language":29,"meta":30,"style":30},"# Backup home directory, excluding common unwanted files\nrsync -av --delete \\\n  --exclude='.cache' \\\n  --exclude='.npm' \\\n  --exclude='node_modules' \\\n  --exclude='.Trash' \\\n  ~/Documents/ /backup/documents/\n",[20,206519,206520,206525,206535,206545,206554,206563,206572],{"__ignoreMap":30},[34,206521,206522],{"class":36,"line":37},[34,206523,206524],{"class":40},"# Backup home directory, excluding common unwanted files\n",[34,206526,206527,206529,206531,206533],{"class":36,"line":44},[34,206528,206267],{"class":47},[34,206530,206270],{"class":50},[34,206532,100967],{"class":50},[34,206534,7186],{"class":50},[34,206536,206537,206540,206543],{"class":36,"line":58},[34,206538,206539],{"class":50},"  --exclude=",[34,206541,206542],{"class":54},"'.cache'",[34,206544,7186],{"class":50},[34,206546,206547,206549,206552],{"class":36,"line":65},[34,206548,206539],{"class":50},[34,206550,206551],{"class":54},"'.npm'",[34,206553,7186],{"class":50},[34,206555,206556,206558,206561],{"class":36,"line":71},[34,206557,206539],{"class":50},[34,206559,206560],{"class":54},"'node_modules'",[34,206562,7186],{"class":50},[34,206564,206565,206567,206570],{"class":36,"line":77},[34,206566,206539],{"class":50},[34,206568,206569],{"class":54},"'.Trash'",[34,206571,7186],{"class":50},[34,206573,206574,206577],{"class":36,"line":82},[34,206575,206576],{"class":54},"  ~/Documents/",[34,206578,206579],{"class":54}," /backup/documents/\n",[102,206581,206583],{"id":206582},"mirror-website-to-server","Mirror Website to Server",[25,206585,206587],{"className":27,"code":206586,"language":29,"meta":30,"style":30},"# Deploy website (delete removed files, compress, show progress)\nrsync -avz --delete \\\n  --exclude='.git' \\\n  --exclude='node_modules' \\\n  ./dist/ user@server:/var/www/html/\n",[20,206588,206589,206594,206604,206613,206621],{"__ignoreMap":30},[34,206590,206591],{"class":36,"line":37},[34,206592,206593],{"class":40},"# Deploy website (delete removed files, compress, show progress)\n",[34,206595,206596,206598,206600,206602],{"class":36,"line":44},[34,206597,206267],{"class":47},[34,206599,206471],{"class":50},[34,206601,100967],{"class":50},[34,206603,7186],{"class":50},[34,206605,206606,206608,206611],{"class":36,"line":58},[34,206607,206539],{"class":50},[34,206609,206610],{"class":54},"'.git'",[34,206612,7186],{"class":50},[34,206614,206615,206617,206619],{"class":36,"line":65},[34,206616,206539],{"class":50},[34,206618,206560],{"class":54},[34,206620,7186],{"class":50},[34,206622,206623,206626],{"class":36,"line":71},[34,206624,206625],{"class":54},"  ./dist/",[34,206627,206628],{"class":54}," user@server:/var/www/html/\n",[102,206630,206632],{"id":206631},"incremental-backup","Incremental Backup",[25,206634,206636],{"className":27,"code":206635,"language":29,"meta":30,"style":30},"# Create incremental backup with hard links (saves space)\nrsync -av --delete \\\n  --link-dest=/backup/last-backup/ \\\n  /source/ /backup/current-backup/\n",[20,206637,206638,206643,206653,206660],{"__ignoreMap":30},[34,206639,206640],{"class":36,"line":37},[34,206641,206642],{"class":40},"# Create incremental backup with hard links (saves space)\n",[34,206644,206645,206647,206649,206651],{"class":36,"line":44},[34,206646,206267],{"class":47},[34,206648,206270],{"class":50},[34,206650,100967],{"class":50},[34,206652,7186],{"class":50},[34,206654,206655,206658],{"class":36,"line":58},[34,206656,206657],{"class":50},"  --link-dest=/backup/last-backup/",[34,206659,7186],{"class":50},[34,206661,206662,206665],{"class":36,"line":65},[34,206663,206664],{"class":54},"  /source/",[34,206666,206667],{"class":54}," /backup/current-backup/\n",[102,206669,206671],{"id":206670},"dry-run-before-sync","Dry Run Before Sync",[25,206673,206675],{"className":27,"code":206674,"language":29,"meta":30,"style":30},"# Preview what would be changed (safe to test)\nrsync -avn --delete source/ dest/\n\n# Preview with detailed output\nrsync -avin --delete source/ dest/\n",[20,206676,206677,206682,206695,206699,206704],{"__ignoreMap":30},[34,206678,206679],{"class":36,"line":37},[34,206680,206681],{"class":40},"# Preview what would be changed (safe to test)\n",[34,206683,206684,206686,206689,206691,206693],{"class":36,"line":44},[34,206685,206267],{"class":47},[34,206687,206688],{"class":50}," -avn",[34,206690,100967],{"class":50},[34,206692,206276],{"class":54},[34,206694,206279],{"class":54},[34,206696,206697],{"class":36,"line":58},[34,206698,62],{"emptyLinePlaceholder":61},[34,206700,206701],{"class":36,"line":65},[34,206702,206703],{"class":40},"# Preview with detailed output\n",[34,206705,206706,206708,206711,206713,206715],{"class":36,"line":71},[34,206707,206267],{"class":47},[34,206709,206710],{"class":50}," -avin",[34,206712,100967],{"class":50},[34,206714,206276],{"class":54},[34,206716,206279],{"class":54},[388,206718,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":206720},[206721],{"id":8369,"depth":44,"text":8370,"children":206722},[206723,206724,206725,206726],{"id":206513,"depth":58,"text":206514},{"id":206582,"depth":58,"text":206583},{"id":206631,"depth":58,"text":206632},{"id":206670,"depth":58,"text":206671},"Common Use Cases in rsync.",{},"/rsync/common-use-cases",{"title":8370,"description":206727},"rsync/common-use-cases",[206267,106223,206379,9735,206380],"irutWxEy6vzESA43dfjgCk5HHjnx79fuSEa81oViI6Q",{"id":206735,"title":206736,"body":206737,"date":402,"description":206885,"extension":404,"meta":206886,"navigation":61,"order":58,"path":206887,"seo":206888,"stem":206889,"subject":206267,"tags":206890,"__hash__":206891},"topics/rsync/essential-options.md","Essential Options",{"type":8,"value":206738,"toc":206882},[206739,206742,206880],[11,206740,206736],{"id":206741},"essential-options",[25,206743,206745],{"className":27,"code":206744,"language":29,"meta":30,"style":30},"# -a, --archive: Preserve permissions, timestamps, symlinks (recommended)\nrsync -a source/ dest/\n\n# -v, --verbose: Show detailed progress\nrsync -av source/ dest/\n\n# -z, --compress: Compress during transfer (good for slow connections)\nrsync -avz source/ dest/\n\n# -h, --human-readable: Display sizes in human-readable format\nrsync -avzh source/ dest/\n\n# -P, --partial --progress: Show progress + keep partial files\nrsync -avP source/ dest/\n\n# --delete: Delete files in dest that don't exist in source (mirror)\nrsync -av --delete source/ dest/\n\n# -n, --dry-run: Preview changes without executing\nrsync -avn --delete source/ dest/\n",[20,206746,206747,206752,206762,206766,206771,206781,206785,206790,206800,206804,206809,206819,206823,206828,206838,206842,206847,206859,206863,206868],{"__ignoreMap":30},[34,206748,206749],{"class":36,"line":37},[34,206750,206751],{"class":40},"# -a, --archive: Preserve permissions, timestamps, symlinks (recommended)\n",[34,206753,206754,206756,206758,206760],{"class":36,"line":44},[34,206755,206267],{"class":47},[34,206757,5059],{"class":50},[34,206759,206276],{"class":54},[34,206761,206279],{"class":54},[34,206763,206764],{"class":36,"line":58},[34,206765,62],{"emptyLinePlaceholder":61},[34,206767,206768],{"class":36,"line":65},[34,206769,206770],{"class":40},"# -v, --verbose: Show detailed progress\n",[34,206772,206773,206775,206777,206779],{"class":36,"line":71},[34,206774,206267],{"class":47},[34,206776,206270],{"class":50},[34,206778,206276],{"class":54},[34,206780,206279],{"class":54},[34,206782,206783],{"class":36,"line":77},[34,206784,62],{"emptyLinePlaceholder":61},[34,206786,206787],{"class":36,"line":82},[34,206788,206789],{"class":40},"# -z, --compress: Compress during transfer (good for slow connections)\n",[34,206791,206792,206794,206796,206798],{"class":36,"line":88},[34,206793,206267],{"class":47},[34,206795,206471],{"class":50},[34,206797,206276],{"class":54},[34,206799,206279],{"class":54},[34,206801,206802],{"class":36,"line":242},[34,206803,62],{"emptyLinePlaceholder":61},[34,206805,206806],{"class":36,"line":250},[34,206807,206808],{"class":40},"# -h, --human-readable: Display sizes in human-readable format\n",[34,206810,206811,206813,206815,206817],{"class":36,"line":263},[34,206812,206267],{"class":47},[34,206814,206485],{"class":50},[34,206816,206276],{"class":54},[34,206818,206279],{"class":54},[34,206820,206821],{"class":36,"line":275},[34,206822,62],{"emptyLinePlaceholder":61},[34,206824,206825],{"class":36,"line":700},[34,206826,206827],{"class":40},"# -P, --partial --progress: Show progress + keep partial files\n",[34,206829,206830,206832,206834,206836],{"class":36,"line":706},[34,206831,206267],{"class":47},[34,206833,206343],{"class":50},[34,206835,206276],{"class":54},[34,206837,206279],{"class":54},[34,206839,206840],{"class":36,"line":715},[34,206841,62],{"emptyLinePlaceholder":61},[34,206843,206844],{"class":36,"line":725},[34,206845,206846],{"class":40},"# --delete: Delete files in dest that don't exist in source (mirror)\n",[34,206848,206849,206851,206853,206855,206857],{"class":36,"line":734},[34,206850,206267],{"class":47},[34,206852,206270],{"class":50},[34,206854,100967],{"class":50},[34,206856,206276],{"class":54},[34,206858,206279],{"class":54},[34,206860,206861],{"class":36,"line":742},[34,206862,62],{"emptyLinePlaceholder":61},[34,206864,206865],{"class":36,"line":748},[34,206866,206867],{"class":40},"# -n, --dry-run: Preview changes without executing\n",[34,206869,206870,206872,206874,206876,206878],{"class":36,"line":754},[34,206871,206267],{"class":47},[34,206873,206688],{"class":50},[34,206875,100967],{"class":50},[34,206877,206276],{"class":54},[34,206879,206279],{"class":54},[388,206881,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":206883},[206884],{"id":206741,"depth":44,"text":206736},"Essential Options in rsync.",{},"/rsync/essential-options",{"title":206736,"description":206885},"rsync/essential-options",[206267,106223,206379,9735,206380],"_CYkCGi-OYkIwidwcrryitGkN2QTO5hVWPx0tufw8sY",{"id":206893,"title":206894,"body":206895,"date":402,"description":207033,"extension":404,"meta":207034,"navigation":61,"order":71,"path":207035,"seo":207036,"stem":207037,"subject":206267,"tags":207038,"__hash__":207039},"topics/rsync/excluding-files.md","Excluding Files",{"type":8,"value":206896,"toc":207030},[206897,206900,207028],[11,206898,206894],{"id":206899},"excluding-files",[25,206901,206903],{"className":27,"code":206902,"language":29,"meta":30,"style":30},"# Exclude specific file patterns\nrsync -av --exclude='*.log' source/ dest/\n\n# Exclude multiple patterns\nrsync -av \\\n  --exclude='*.log' \\\n  --exclude='*.tmp' \\\n  --exclude='node_modules' \\\n  source/ dest/\n\n# Exclude from file\nrsync -av --exclude-from='exclude.txt' source/ dest/\n\n# Include only specific patterns\nrsync -av --include='*.jpg' --exclude='*' source/ dest/\n",[20,206904,206905,206910,206925,206929,206934,206942,206950,206959,206967,206974,206978,206983,206999,207003,207008],{"__ignoreMap":30},[34,206906,206907],{"class":36,"line":37},[34,206908,206909],{"class":40},"# Exclude specific file patterns\n",[34,206911,206912,206914,206916,206918,206921,206923],{"class":36,"line":44},[34,206913,206267],{"class":47},[34,206915,206270],{"class":50},[34,206917,110995],{"class":50},[34,206919,206920],{"class":54},"'*.log'",[34,206922,206276],{"class":54},[34,206924,206279],{"class":54},[34,206926,206927],{"class":36,"line":58},[34,206928,62],{"emptyLinePlaceholder":61},[34,206930,206931],{"class":36,"line":65},[34,206932,206933],{"class":40},"# Exclude multiple patterns\n",[34,206935,206936,206938,206940],{"class":36,"line":71},[34,206937,206267],{"class":47},[34,206939,206270],{"class":50},[34,206941,7186],{"class":50},[34,206943,206944,206946,206948],{"class":36,"line":77},[34,206945,206539],{"class":50},[34,206947,206920],{"class":54},[34,206949,7186],{"class":50},[34,206951,206952,206954,206957],{"class":36,"line":82},[34,206953,206539],{"class":50},[34,206955,206956],{"class":54},"'*.tmp'",[34,206958,7186],{"class":50},[34,206960,206961,206963,206965],{"class":36,"line":88},[34,206962,206539],{"class":50},[34,206964,206560],{"class":54},[34,206966,7186],{"class":50},[34,206968,206969,206972],{"class":36,"line":242},[34,206970,206971],{"class":54},"  source/",[34,206973,206279],{"class":54},[34,206975,206976],{"class":36,"line":250},[34,206977,62],{"emptyLinePlaceholder":61},[34,206979,206980],{"class":36,"line":263},[34,206981,206982],{"class":40},"# Exclude from file\n",[34,206984,206985,206987,206989,206992,206995,206997],{"class":36,"line":275},[34,206986,206267],{"class":47},[34,206988,206270],{"class":50},[34,206990,206991],{"class":50}," --exclude-from=",[34,206993,206994],{"class":54},"'exclude.txt'",[34,206996,206276],{"class":54},[34,206998,206279],{"class":54},[34,207000,207001],{"class":36,"line":700},[34,207002,62],{"emptyLinePlaceholder":61},[34,207004,207005],{"class":36,"line":706},[34,207006,207007],{"class":40},"# Include only specific patterns\n",[34,207009,207010,207012,207014,207016,207019,207021,207024,207026],{"class":36,"line":715},[34,207011,206267],{"class":47},[34,207013,206270],{"class":50},[34,207015,110688],{"class":50},[34,207017,207018],{"class":54},"'*.jpg'",[34,207020,110995],{"class":50},[34,207022,207023],{"class":54},"'*'",[34,207025,206276],{"class":54},[34,207027,206279],{"class":54},[388,207029,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":207031},[207032],{"id":206899,"depth":44,"text":206894},"Excluding Files in rsync.",{},"/rsync/excluding-files",{"title":206894,"description":207033},"rsync/excluding-files",[206267,106223,206379,9735,206380],"pPyjw2OmG1fBAL6c2fQiL5FMM9A4Q3qA_BLhd7LRkmo",{"id":207041,"title":206267,"body":207042,"date":2633,"description":207098,"extension":404,"meta":207099,"navigation":61,"order":37,"path":207100,"seo":207101,"stem":207102,"subject":206267,"tags":207103,"__hash__":207104},"topics/rsync/overview.md",{"type":8,"value":207043,"toc":207096},[207044],[309,207045,207046,207050,207054,207060,207064,207070,207074,207078,207084,207090],{},[312,207047,207048],{},[145,207049,33160],{"href":206500},[312,207051,207052],{},[145,207053,206736],{"href":206887},[312,207055,207056],{},[145,207057,207059],{"href":207058},"/rsync/remote-sync","Remote Sync",[312,207061,207062],{},[145,207063,206894],{"href":207035},[312,207065,207066],{},[145,207067,207069],{"href":207068},"/rsync/permissions-and-ownership","Permissions and Ownership",[312,207071,207072],{},[145,207073,206247],{"href":206375},[312,207075,207076],{},[145,207077,8370],{"href":206729},[312,207079,207080],{},[145,207081,207083],{"href":207082},"/rsync/progress-and-logging","Progress and Logging",[312,207085,207086],{},[145,207087,207089],{"href":207088},"/rsync/special-cases","Special Cases",[312,207091,207092],{},[145,207093,207095],{"href":207094},"/rsync/safety-tips","Safety Tips",{"title":30,"searchDepth":44,"depth":44,"links":207097},[],"Powerful file synchronization and transfer tool for local and remote systems.",{},"/rsync/overview",{"title":206267,"description":207098},"rsync/overview",[206267,106223,206379,9735,206380],"j6X3kwdbqKQoXisZYVGEvhCapbHLOkvm0Ufb_gAORJM",{"id":207106,"title":207069,"body":207107,"date":402,"description":207217,"extension":404,"meta":207218,"navigation":61,"order":77,"path":207068,"seo":207219,"stem":207220,"subject":206267,"tags":207221,"__hash__":207222},"topics/rsync/permissions-and-ownership.md",{"type":8,"value":207108,"toc":207214},[207109,207112,207212],[11,207110,207069],{"id":207111},"permissions-and-ownership",[25,207113,207115],{"className":27,"code":207114,"language":29,"meta":30,"style":30},"# Preserve all attributes (permissions, ownership, timestamps)\nrsync -a source/ dest/\n\n# Preserve permissions only\nrsync -p source/ dest/\n\n# Preserve timestamps only\nrsync -t source/ dest/\n\n# Change ownership to current user\nrsync -av --chown=USER:GROUP source/ dest/\n\n# Don't preserve permissions (use dest defaults)\nrsync -rltvz source/ dest/\n",[20,207116,207117,207122,207132,207136,207141,207151,207155,207160,207170,207174,207179,207192,207196,207201],{"__ignoreMap":30},[34,207118,207119],{"class":36,"line":37},[34,207120,207121],{"class":40},"# Preserve all attributes (permissions, ownership, timestamps)\n",[34,207123,207124,207126,207128,207130],{"class":36,"line":44},[34,207125,206267],{"class":47},[34,207127,5059],{"class":50},[34,207129,206276],{"class":54},[34,207131,206279],{"class":54},[34,207133,207134],{"class":36,"line":58},[34,207135,62],{"emptyLinePlaceholder":61},[34,207137,207138],{"class":36,"line":65},[34,207139,207140],{"class":40},"# Preserve permissions only\n",[34,207142,207143,207145,207147,207149],{"class":36,"line":71},[34,207144,206267],{"class":47},[34,207146,5275],{"class":50},[34,207148,206276],{"class":54},[34,207150,206279],{"class":54},[34,207152,207153],{"class":36,"line":77},[34,207154,62],{"emptyLinePlaceholder":61},[34,207156,207157],{"class":36,"line":82},[34,207158,207159],{"class":40},"# Preserve timestamps only\n",[34,207161,207162,207164,207166,207168],{"class":36,"line":88},[34,207163,206267],{"class":47},[34,207165,11256],{"class":50},[34,207167,206276],{"class":54},[34,207169,206279],{"class":54},[34,207171,207172],{"class":36,"line":242},[34,207173,62],{"emptyLinePlaceholder":61},[34,207175,207176],{"class":36,"line":250},[34,207177,207178],{"class":40},"# Change ownership to current user\n",[34,207180,207181,207183,207185,207188,207190],{"class":36,"line":263},[34,207182,206267],{"class":47},[34,207184,206270],{"class":50},[34,207186,207187],{"class":50}," --chown=USER:GROUP",[34,207189,206276],{"class":54},[34,207191,206279],{"class":54},[34,207193,207194],{"class":36,"line":275},[34,207195,62],{"emptyLinePlaceholder":61},[34,207197,207198],{"class":36,"line":700},[34,207199,207200],{"class":40},"# Don't preserve permissions (use dest defaults)\n",[34,207202,207203,207205,207208,207210],{"class":36,"line":706},[34,207204,206267],{"class":47},[34,207206,207207],{"class":50}," -rltvz",[34,207209,206276],{"class":54},[34,207211,206279],{"class":54},[388,207213,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":207215},[207216],{"id":207111,"depth":44,"text":207069},"Permissions and Ownership in rsync.",{},{"title":207069,"description":207217},"rsync/permissions-and-ownership",[206267,106223,206379,9735,206380],"NHnVXkAHd-BeAnGj4bQGd-gM4JjcU3vGeSe1LgdAuS0",{"id":207224,"title":207083,"body":207225,"date":402,"description":207324,"extension":404,"meta":207325,"navigation":61,"order":242,"path":207082,"seo":207326,"stem":207327,"subject":206267,"tags":207328,"__hash__":207329},"topics/rsync/progress-and-logging.md",{"type":8,"value":207226,"toc":207321},[207227,207230,207319],[11,207228,207083],{"id":207229},"progress-and-logging",[25,207231,207233],{"className":27,"code":207232,"language":29,"meta":30,"style":30},"# Show detailed progress\nrsync -av --progress source/ dest/\n\n# Show per-file progress\nrsync -av --info=progress2 source/ dest/\n\n# Log to file\nrsync -av --log-file=sync.log source/ dest/\n\n# Verbose output with stats\nrsync -av --stats source/ dest/\n",[20,207234,207235,207240,207253,207257,207262,207275,207279,207284,207297,207301,207306],{"__ignoreMap":30},[34,207236,207237],{"class":36,"line":37},[34,207238,207239],{"class":40},"# Show detailed progress\n",[34,207241,207242,207244,207246,207249,207251],{"class":36,"line":44},[34,207243,206267],{"class":47},[34,207245,206270],{"class":50},[34,207247,207248],{"class":50}," --progress",[34,207250,206276],{"class":54},[34,207252,206279],{"class":54},[34,207254,207255],{"class":36,"line":58},[34,207256,62],{"emptyLinePlaceholder":61},[34,207258,207259],{"class":36,"line":65},[34,207260,207261],{"class":40},"# Show per-file progress\n",[34,207263,207264,207266,207268,207271,207273],{"class":36,"line":71},[34,207265,206267],{"class":47},[34,207267,206270],{"class":50},[34,207269,207270],{"class":50}," --info=progress2",[34,207272,206276],{"class":54},[34,207274,206279],{"class":54},[34,207276,207277],{"class":36,"line":77},[34,207278,62],{"emptyLinePlaceholder":61},[34,207280,207281],{"class":36,"line":82},[34,207282,207283],{"class":40},"# Log to file\n",[34,207285,207286,207288,207290,207293,207295],{"class":36,"line":88},[34,207287,206267],{"class":47},[34,207289,206270],{"class":50},[34,207291,207292],{"class":50}," --log-file=sync.log",[34,207294,206276],{"class":54},[34,207296,206279],{"class":54},[34,207298,207299],{"class":36,"line":242},[34,207300,62],{"emptyLinePlaceholder":61},[34,207302,207303],{"class":36,"line":250},[34,207304,207305],{"class":40},"# Verbose output with stats\n",[34,207307,207308,207310,207312,207315,207317],{"class":36,"line":263},[34,207309,206267],{"class":47},[34,207311,206270],{"class":50},[34,207313,207314],{"class":50}," --stats",[34,207316,206276],{"class":54},[34,207318,206279],{"class":54},[388,207320,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":207322},[207323],{"id":207229,"depth":44,"text":207083},"Progress and Logging in rsync.",{},{"title":207083,"description":207324},"rsync/progress-and-logging",[206267,106223,206379,9735,206380],"3N3GCYEmFP0td9UmGIw-gRisHc-6wriZiDf0YCgwei0",{"id":207331,"title":207059,"body":207332,"date":402,"description":207432,"extension":404,"meta":207433,"navigation":61,"order":65,"path":207058,"seo":207434,"stem":207435,"subject":206267,"tags":207436,"__hash__":207437},"topics/rsync/remote-sync.md",{"type":8,"value":207333,"toc":207429},[207334,207337,207427],[11,207335,207059],{"id":207336},"remote-sync",[25,207338,207340],{"className":27,"code":207339,"language":29,"meta":30,"style":30},"# Upload to remote server (via SSH)\nrsync -avz /local/path/ user@remote:/remote/path/\n\n# Download from remote server\nrsync -avz user@remote:/remote/path/ /local/path/\n\n# Specify SSH port\nrsync -avz -e \"ssh -p 2222\" /local/ user@remote:/remote/\n\n# Sync between two remote hosts\nrsync -avz user1@host1:/path/ user2@host2:/path/\n",[20,207341,207342,207347,207359,207363,207368,207380,207384,207389,207406,207410,207415],{"__ignoreMap":30},[34,207343,207344],{"class":36,"line":37},[34,207345,207346],{"class":40},"# Upload to remote server (via SSH)\n",[34,207348,207349,207351,207353,207356],{"class":36,"line":44},[34,207350,206267],{"class":47},[34,207352,206471],{"class":50},[34,207354,207355],{"class":54}," /local/path/",[34,207357,207358],{"class":54}," user@remote:/remote/path/\n",[34,207360,207361],{"class":36,"line":58},[34,207362,62],{"emptyLinePlaceholder":61},[34,207364,207365],{"class":36,"line":65},[34,207366,207367],{"class":40},"# Download from remote server\n",[34,207369,207370,207372,207374,207377],{"class":36,"line":71},[34,207371,206267],{"class":47},[34,207373,206471],{"class":50},[34,207375,207376],{"class":54}," user@remote:/remote/path/",[34,207378,207379],{"class":54}," /local/path/\n",[34,207381,207382],{"class":36,"line":77},[34,207383,62],{"emptyLinePlaceholder":61},[34,207385,207386],{"class":36,"line":82},[34,207387,207388],{"class":40},"# Specify SSH port\n",[34,207390,207391,207393,207395,207397,207400,207403],{"class":36,"line":88},[34,207392,206267],{"class":47},[34,207394,206471],{"class":50},[34,207396,11292],{"class":50},[34,207398,207399],{"class":54}," \"ssh -p 2222\"",[34,207401,207402],{"class":54}," /local/",[34,207404,207405],{"class":54}," user@remote:/remote/\n",[34,207407,207408],{"class":36,"line":242},[34,207409,62],{"emptyLinePlaceholder":61},[34,207411,207412],{"class":36,"line":250},[34,207413,207414],{"class":40},"# Sync between two remote hosts\n",[34,207416,207417,207419,207421,207424],{"class":36,"line":263},[34,207418,206267],{"class":47},[34,207420,206471],{"class":50},[34,207422,207423],{"class":54}," user1@host1:/path/",[34,207425,207426],{"class":54}," user2@host2:/path/\n",[388,207428,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":207430},[207431],{"id":207336,"depth":44,"text":207059},"Remote Sync in rsync.",{},{"title":207059,"description":207432},"rsync/remote-sync",[206267,106223,206379,9735,206380],"ndZasC0h8S4m0yKR3k_3bbkBGxFbMwi7wK8JMMf7nPc",{"id":207439,"title":207095,"body":207440,"date":402,"description":207555,"extension":404,"meta":207556,"navigation":61,"order":263,"path":207094,"seo":207557,"stem":207558,"subject":206267,"tags":207559,"__hash__":207560},"topics/rsync/safety-tips.md",{"type":8,"value":207441,"toc":207552},[207442,207445,207550],[11,207443,207095],{"id":207444},"safety-tips",[25,207446,207448],{"className":27,"code":207447,"language":29,"meta":30,"style":30},"# Always test with dry run first\nrsync -avn --delete source/ dest/\n\n# Use trailing slashes carefully\nrsync -av source/ dest/    # Syncs contents of source into dest\nrsync -av source dest/     # Creates source directory inside dest\n\n# Backup before destructive operations\nrsync -av --delete --backup --backup-dir=/backup/deleted/ source/ dest/\n\n# Use --dry-run with --delete to preview deletions\nrsync -avn --delete source/ dest/\n",[20,207449,207450,207455,207467,207471,207476,207489,207502,207506,207511,207529,207533,207538],{"__ignoreMap":30},[34,207451,207452],{"class":36,"line":37},[34,207453,207454],{"class":40},"# Always test with dry run first\n",[34,207456,207457,207459,207461,207463,207465],{"class":36,"line":44},[34,207458,206267],{"class":47},[34,207460,206688],{"class":50},[34,207462,100967],{"class":50},[34,207464,206276],{"class":54},[34,207466,206279],{"class":54},[34,207468,207469],{"class":36,"line":58},[34,207470,62],{"emptyLinePlaceholder":61},[34,207472,207473],{"class":36,"line":65},[34,207474,207475],{"class":40},"# Use trailing slashes carefully\n",[34,207477,207478,207480,207482,207484,207486],{"class":36,"line":71},[34,207479,206267],{"class":47},[34,207481,206270],{"class":50},[34,207483,206276],{"class":54},[34,207485,206305],{"class":54},[34,207487,207488],{"class":40},"    # Syncs contents of source into dest\n",[34,207490,207491,207493,207495,207497,207499],{"class":36,"line":77},[34,207492,206267],{"class":47},[34,207494,206270],{"class":50},[34,207496,13231],{"class":54},[34,207498,206305],{"class":54},[34,207500,207501],{"class":40},"     # Creates source directory inside dest\n",[34,207503,207504],{"class":36,"line":82},[34,207505,62],{"emptyLinePlaceholder":61},[34,207507,207508],{"class":36,"line":88},[34,207509,207510],{"class":40},"# Backup before destructive operations\n",[34,207512,207513,207515,207517,207519,207522,207525,207527],{"class":36,"line":242},[34,207514,206267],{"class":47},[34,207516,206270],{"class":50},[34,207518,100967],{"class":50},[34,207520,207521],{"class":50}," --backup",[34,207523,207524],{"class":50}," --backup-dir=/backup/deleted/",[34,207526,206276],{"class":54},[34,207528,206279],{"class":54},[34,207530,207531],{"class":36,"line":250},[34,207532,62],{"emptyLinePlaceholder":61},[34,207534,207535],{"class":36,"line":263},[34,207536,207537],{"class":40},"# Use --dry-run with --delete to preview deletions\n",[34,207539,207540,207542,207544,207546,207548],{"class":36,"line":275},[34,207541,206267],{"class":47},[34,207543,206688],{"class":50},[34,207545,100967],{"class":50},[34,207547,206276],{"class":54},[34,207549,206279],{"class":54},[388,207551,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":207553},[207554],{"id":207444,"depth":44,"text":207095},"Safety Tips in rsync.",{},{"title":207095,"description":207555},"rsync/safety-tips",[206267,106223,206379,9735,206380],"za_-HE9hI_S4mdk00DGNIjFKiIDBoFgb8YQOINvVVAE",{"id":207562,"title":207089,"body":207563,"date":402,"description":207707,"extension":404,"meta":207708,"navigation":61,"order":250,"path":207088,"seo":207709,"stem":207710,"subject":206267,"tags":207711,"__hash__":207712},"topics/rsync/special-cases.md",{"type":8,"value":207564,"toc":207704},[207565,207568,207702],[11,207566,207089],{"id":207567},"special-cases",[25,207569,207571],{"className":27,"code":207570,"language":29,"meta":30,"style":30},"# Copy only directory structure (no files)\nrsync -av -f '+ */' -f '- *' source/ dest/\n\n# Sync only files newer than destination\nrsync -avu source/ dest/\n\n# Preserve hard links\nrsync -avH source/ dest/\n\n# Copy symlinks as symlinks (not their targets)\nrsync -avl source/ dest/\n\n# Delete files on destination during transfer (not after)\nrsync -av --delete-during source/ dest/\n\n# Ignore existing files (don't update)\nrsync -av --ignore-existing source/ dest/\n",[20,207572,207573,207578,207598,207602,207607,207618,207622,207627,207638,207642,207647,207658,207662,207667,207680,207684,207689],{"__ignoreMap":30},[34,207574,207575],{"class":36,"line":37},[34,207576,207577],{"class":40},"# Copy only directory structure (no files)\n",[34,207579,207580,207582,207584,207586,207589,207591,207594,207596],{"class":36,"line":44},[34,207581,206267],{"class":47},[34,207583,206270],{"class":50},[34,207585,6001],{"class":50},[34,207587,207588],{"class":54}," '+ */'",[34,207590,6001],{"class":50},[34,207592,207593],{"class":54}," '- *'",[34,207595,206276],{"class":54},[34,207597,206279],{"class":54},[34,207599,207600],{"class":36,"line":58},[34,207601,62],{"emptyLinePlaceholder":61},[34,207603,207604],{"class":36,"line":65},[34,207605,207606],{"class":40},"# Sync only files newer than destination\n",[34,207608,207609,207611,207614,207616],{"class":36,"line":71},[34,207610,206267],{"class":47},[34,207612,207613],{"class":50}," -avu",[34,207615,206276],{"class":54},[34,207617,206279],{"class":54},[34,207619,207620],{"class":36,"line":77},[34,207621,62],{"emptyLinePlaceholder":61},[34,207623,207624],{"class":36,"line":82},[34,207625,207626],{"class":40},"# Preserve hard links\n",[34,207628,207629,207631,207634,207636],{"class":36,"line":88},[34,207630,206267],{"class":47},[34,207632,207633],{"class":50}," -avH",[34,207635,206276],{"class":54},[34,207637,206279],{"class":54},[34,207639,207640],{"class":36,"line":242},[34,207641,62],{"emptyLinePlaceholder":61},[34,207643,207644],{"class":36,"line":250},[34,207645,207646],{"class":40},"# Copy symlinks as symlinks (not their targets)\n",[34,207648,207649,207651,207654,207656],{"class":36,"line":263},[34,207650,206267],{"class":47},[34,207652,207653],{"class":50}," -avl",[34,207655,206276],{"class":54},[34,207657,206279],{"class":54},[34,207659,207660],{"class":36,"line":275},[34,207661,62],{"emptyLinePlaceholder":61},[34,207663,207664],{"class":36,"line":700},[34,207665,207666],{"class":40},"# Delete files on destination during transfer (not after)\n",[34,207668,207669,207671,207673,207676,207678],{"class":36,"line":706},[34,207670,206267],{"class":47},[34,207672,206270],{"class":50},[34,207674,207675],{"class":50}," --delete-during",[34,207677,206276],{"class":54},[34,207679,206279],{"class":54},[34,207681,207682],{"class":36,"line":715},[34,207683,62],{"emptyLinePlaceholder":61},[34,207685,207686],{"class":36,"line":725},[34,207687,207688],{"class":40},"# Ignore existing files (don't update)\n",[34,207690,207691,207693,207695,207698,207700],{"class":36,"line":734},[34,207692,206267],{"class":47},[34,207694,206270],{"class":50},[34,207696,207697],{"class":50}," --ignore-existing",[34,207699,206276],{"class":54},[34,207701,206279],{"class":54},[388,207703,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":207705},[207706],{"id":207567,"depth":44,"text":207089},"Special Cases in rsync.",{},{"title":207089,"description":207707},"rsync/special-cases",[206267,106223,206379,9735,206380],"kQ2l19Y5RtcSLOfz289-_OGEOJdlzONAlMRmSIhy1ek",{"id":207714,"title":10061,"body":207715,"date":402,"description":208072,"extension":404,"meta":208073,"navigation":61,"order":77,"path":208074,"seo":208075,"stem":208076,"subject":207723,"tags":208077,"__hash__":208079},"topics/ruby/arrays.md",{"type":8,"value":207716,"toc":208069},[207717,207719,208066],[11,207718,10061],{"id":10066},[25,207720,207724],{"className":207721,"code":207722,"language":207723,"meta":30,"style":30},"language-ruby shiki shiki-themes github-light github-dark","# Array creation\nfruits = ['apple', 'banana', 'cherry']\nnumbers = [1, 2, 3, 4, 5]\nmixed = [1, \"two\", 3.0, true]  # Mixed types allowed\n\n# Accessing elements\nfruits[0]                  # \"apple\" (first element)\nfruits[-1]                 # \"cherry\" (last element)\nfruits[1..2]               # [\"banana\", \"cherry\"] (range)\nfruits.first               # \"apple\"\nfruits.last                # \"cherry\"\n\n# Common array methods\nfruits.push('date')        # Add to end\nfruits \u003C\u003C 'elderberry'     # Alternative push syntax\nfruits.pop                 # Remove and return last element\nfruits.unshift('apricot')  # Add to beginning\nfruits.shift               # Remove and return first element\nfruits.length              # Get size\nfruits.include?('banana')  # true\nfruits.sort                # Sort alphabetically\nfruits.reverse             # Reverse order\n\n# Array operations\n[1, 2, 3] + [4, 5]        # Concatenation: [1, 2, 3, 4, 5]\n[1, 2, 3, 2, 1].uniq      # Remove duplicates: [1, 2, 3]\n","ruby",[20,207725,207726,207731,207754,207782,207810,207814,207819,207831,207845,207861,207871,207880,207884,207889,207904,207917,207926,207943,207952,207961,207977,207986,207995,207999,208004,208036],{"__ignoreMap":30},[34,207727,207728],{"class":36,"line":37},[34,207729,207730],{"class":40},"# Array creation\n",[34,207732,207733,207735,207737,207739,207742,207744,207747,207749,207752],{"class":36,"line":44},[34,207734,10081],{"class":675},[34,207736,683],{"class":580},[34,207738,8315],{"class":181},[34,207740,207741],{"class":54},"'apple'",[34,207743,1798],{"class":181},[34,207745,207746],{"class":54},"'banana'",[34,207748,1798],{"class":181},[34,207750,207751],{"class":54},"'cherry'",[34,207753,924],{"class":181},[34,207755,207756,207758,207760,207762,207764,207766,207768,207770,207772,207774,207776,207778,207780],{"class":36,"line":58},[34,207757,33330],{"class":675},[34,207759,683],{"class":580},[34,207761,8315],{"class":181},[34,207763,8318],{"class":50},[34,207765,1798],{"class":181},[34,207767,8324],{"class":50},[34,207769,1798],{"class":181},[34,207771,3162],{"class":50},[34,207773,1798],{"class":181},[34,207775,18010],{"class":50},[34,207777,1798],{"class":181},[34,207779,2778],{"class":50},[34,207781,924],{"class":181},[34,207783,207784,207786,207788,207790,207792,207794,207796,207798,207801,207803,207805,207807],{"class":36,"line":65},[34,207785,175833],{"class":675},[34,207787,683],{"class":580},[34,207789,8315],{"class":181},[34,207791,8318],{"class":50},[34,207793,1798],{"class":181},[34,207795,107168],{"class":54},[34,207797,1798],{"class":181},[34,207799,207800],{"class":50},"3.0",[34,207802,1798],{"class":181},[34,207804,632],{"class":50},[34,207806,192334],{"class":181},[34,207808,207809],{"class":40},"# Mixed types allowed\n",[34,207811,207812],{"class":36,"line":71},[34,207813,62],{"emptyLinePlaceholder":61},[34,207815,207816],{"class":36,"line":77},[34,207817,207818],{"class":40},"# Accessing elements\n",[34,207820,207821,207823,207825,207828],{"class":36,"line":82},[34,207822,10154],{"class":181},[34,207824,2773],{"class":50},[34,207826,207827],{"class":181},"]                  ",[34,207829,207830],{"class":40},"# \"apple\" (first element)\n",[34,207832,207833,207835,207837,207839,207842],{"class":36,"line":88},[34,207834,10154],{"class":181},[34,207836,22062],{"class":580},[34,207838,8318],{"class":50},[34,207840,207841],{"class":181},"]                 ",[34,207843,207844],{"class":40},"# \"cherry\" (last element)\n",[34,207846,207847,207849,207851,207853,207855,207858],{"class":36,"line":242},[34,207848,10154],{"class":181},[34,207850,8318],{"class":50},[34,207852,101074],{"class":181},[34,207854,8324],{"class":50},[34,207856,207857],{"class":181},"]               ",[34,207859,207860],{"class":40},"# [\"banana\", \"cherry\"] (range)\n",[34,207862,207863,207866,207868],{"class":36,"line":250},[34,207864,207865],{"class":181},"fruits.",[34,207867,126899],{"class":47},[34,207869,207870],{"class":40},"               # \"apple\"\n",[34,207872,207873,207875,207877],{"class":36,"line":263},[34,207874,207865],{"class":181},[34,207876,134459],{"class":47},[34,207878,207879],{"class":40},"                # \"cherry\"\n",[34,207881,207882],{"class":36,"line":275},[34,207883,62],{"emptyLinePlaceholder":61},[34,207885,207886],{"class":36,"line":700},[34,207887,207888],{"class":40},"# Common array methods\n",[34,207890,207891,207893,207895,207897,207900,207902],{"class":36,"line":706},[34,207892,207865],{"class":181},[34,207894,50165],{"class":47},[34,207896,1607],{"class":181},[34,207898,207899],{"class":54},"'date'",[34,207901,103864],{"class":181},[34,207903,193085],{"class":40},[34,207905,207906,207909,207911,207914],{"class":36,"line":715},[34,207907,207908],{"class":181},"fruits ",[34,207910,23022],{"class":580},[34,207912,207913],{"class":54}," 'elderberry'",[34,207915,207916],{"class":40},"     # Alternative push syntax\n",[34,207918,207919,207921,207923],{"class":36,"line":725},[34,207920,207865],{"class":181},[34,207922,50216],{"class":47},[34,207924,207925],{"class":40},"                 # Remove and return last element\n",[34,207927,207928,207930,207933,207935,207938,207940],{"class":36,"line":734},[34,207929,207865],{"class":181},[34,207931,207932],{"class":47},"unshift",[34,207934,1607],{"class":181},[34,207936,207937],{"class":54},"'apricot'",[34,207939,76021],{"class":181},[34,207941,207942],{"class":40},"# Add to beginning\n",[34,207944,207945,207947,207949],{"class":36,"line":742},[34,207946,207865],{"class":181},[34,207948,65816],{"class":47},[34,207950,207951],{"class":40},"               # Remove and return first element\n",[34,207953,207954,207956,207958],{"class":36,"line":748},[34,207955,207865],{"class":181},[34,207957,2908],{"class":47},[34,207959,207960],{"class":40},"              # Get size\n",[34,207962,207963,207965,207968,207970,207972,207974],{"class":36,"line":754},[34,207964,207865],{"class":181},[34,207966,207967],{"class":47},"include?",[34,207969,1607],{"class":181},[34,207971,207746],{"class":54},[34,207973,76021],{"class":181},[34,207975,207976],{"class":40},"# true\n",[34,207978,207979,207981,207983],{"class":36,"line":759},[34,207980,207865],{"class":181},[34,207982,13152],{"class":47},[34,207984,207985],{"class":40},"                # Sort alphabetically\n",[34,207987,207988,207990,207992],{"class":36,"line":771},[34,207989,207865],{"class":181},[34,207991,68954],{"class":47},[34,207993,207994],{"class":40},"             # Reverse order\n",[34,207996,207997],{"class":36,"line":794},[34,207998,62],{"emptyLinePlaceholder":61},[34,208000,208001],{"class":36,"line":824},[34,208002,208003],{"class":40},"# Array operations\n",[34,208005,208006,208008,208010,208012,208014,208016,208018,208020,208022,208024,208026,208028,208030,208033],{"class":36,"line":830},[34,208007,10260],{"class":181},[34,208009,8318],{"class":50},[34,208011,1798],{"class":181},[34,208013,8324],{"class":50},[34,208015,1798],{"class":181},[34,208017,3162],{"class":50},[34,208019,17799],{"class":181},[34,208021,2940],{"class":580},[34,208023,8315],{"class":181},[34,208025,18010],{"class":50},[34,208027,1798],{"class":181},[34,208029,2778],{"class":50},[34,208031,208032],{"class":181},"]        ",[34,208034,208035],{"class":40},"# Concatenation: [1, 2, 3, 4, 5]\n",[34,208037,208038,208040,208042,208044,208046,208048,208050,208052,208054,208056,208058,208061,208063],{"class":36,"line":839},[34,208039,10260],{"class":181},[34,208041,8318],{"class":50},[34,208043,1798],{"class":181},[34,208045,8324],{"class":50},[34,208047,1798],{"class":181},[34,208049,3162],{"class":50},[34,208051,1798],{"class":181},[34,208053,8324],{"class":50},[34,208055,1798],{"class":181},[34,208057,8318],{"class":50},[34,208059,208060],{"class":181},"].",[34,208062,13159],{"class":47},[34,208064,208065],{"class":40},"      # Remove duplicates: [1, 2, 3]\n",[388,208067,208068],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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 .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":30,"searchDepth":44,"depth":44,"links":208070},[208071],{"id":10066,"depth":44,"text":10061},"Arrays in Ruby.",{},"/ruby/arrays",{"title":10061,"description":208072},"ruby/arrays",[207723,10359,46870,208078],"rails","DdEDdBIdwfgXONoSl09dQ1j6y_I8phe_pXptSOwTluA",{"id":208081,"title":208082,"body":208083,"date":402,"description":208517,"extension":404,"meta":208518,"navigation":61,"order":263,"path":208519,"seo":208520,"stem":208521,"subject":207723,"tags":208522,"__hash__":208523},"topics/ruby/blocks-and-iterators.md","Blocks and Iterators",{"type":8,"value":208084,"toc":208514},[208085,208088,208511],[11,208086,208082],{"id":208087},"blocks-and-iterators",[25,208089,208091],{"className":207721,"code":208090,"language":207723,"meta":30,"style":30},"# Block with do...end\n[1, 2, 3].each do |num|\n  puts num * 2\nend\n\n# Block with curly braces (one-liners)\n[1, 2, 3].each { |num| puts num * 2 }\n\n# Map (transform elements)\ndoubled = [1, 2, 3].map { |n| n * 2 }  # [2, 4, 6]\n\n# Select (filter elements)\nevens = [1, 2, 3, 4].select { |n| n.even? }  # [2, 4]\n\n# Reject (inverse of select)\nodds = [1, 2, 3, 4].reject { |n| n.even? }  # [1, 3]\n\n# Reduce (accumulate)\nsum = [1, 2, 3, 4].reduce(0) { |acc, n| acc + n }  # 10\nsum = [1, 2, 3, 4].reduce(:+)  # Shorthand: 10\n\n# Find (first match)\nfirst_even = [1, 3, 4, 5].find { |n| n.even? }  # 4\n\n# Any? and all?\n[2, 4, 6].all?(&:even?)    # true\n[1, 2, 3].any?(&:even?)    # true\n",[20,208092,208093,208098,208122,208133,208137,208141,208146,208177,208181,208186,208221,208225,208230,208268,208272,208277,208313,208317,208322,208362,208398,208402,208407,208443,208447,208452,208482],{"__ignoreMap":30},[34,208094,208095],{"class":36,"line":37},[34,208096,208097],{"class":40},"# Block with do...end\n",[34,208099,208100,208102,208104,208106,208108,208110,208112,208114,208117,208119],{"class":36,"line":44},[34,208101,10260],{"class":181},[34,208103,8318],{"class":50},[34,208105,1798],{"class":181},[34,208107,8324],{"class":50},[34,208109,1798],{"class":181},[34,208111,3162],{"class":50},[34,208113,208060],{"class":181},[34,208115,208116],{"class":47},"each",[34,208118,143187],{"class":580},[34,208120,208121],{"class":181}," |num|\n",[34,208123,208124,208127,208129,208131],{"class":36,"line":58},[34,208125,208126],{"class":50},"  puts",[34,208128,13912],{"class":181},[34,208130,4289],{"class":580},[34,208132,9930],{"class":50},[34,208134,208135],{"class":36,"line":65},[34,208136,33222],{"class":580},[34,208138,208139],{"class":36,"line":71},[34,208140,62],{"emptyLinePlaceholder":61},[34,208142,208143],{"class":36,"line":77},[34,208144,208145],{"class":40},"# Block with curly braces (one-liners)\n",[34,208147,208148,208150,208152,208154,208156,208158,208160,208162,208164,208167,208169,208171,208173,208175],{"class":36,"line":82},[34,208149,10260],{"class":181},[34,208151,8318],{"class":50},[34,208153,1798],{"class":181},[34,208155,8324],{"class":50},[34,208157,1798],{"class":181},[34,208159,3162],{"class":50},[34,208161,208060],{"class":181},[34,208163,208116],{"class":47},[34,208165,208166],{"class":181}," { |num| ",[34,208168,24026],{"class":50},[34,208170,13912],{"class":181},[34,208172,4289],{"class":580},[34,208174,4292],{"class":50},[34,208176,52786],{"class":181},[34,208178,208179],{"class":36,"line":88},[34,208180,62],{"emptyLinePlaceholder":61},[34,208182,208183],{"class":36,"line":242},[34,208184,208185],{"class":40},"# Map (transform elements)\n",[34,208187,208188,208191,208193,208195,208197,208199,208201,208203,208205,208207,208209,208212,208214,208216,208218],{"class":36,"line":250},[34,208189,208190],{"class":675},"doubled",[34,208192,683],{"class":580},[34,208194,8315],{"class":181},[34,208196,8318],{"class":50},[34,208198,1798],{"class":181},[34,208200,8324],{"class":50},[34,208202,1798],{"class":181},[34,208204,3162],{"class":50},[34,208206,208060],{"class":181},[34,208208,61180],{"class":47},[34,208210,208211],{"class":181}," { |n| n ",[34,208213,4289],{"class":580},[34,208215,4292],{"class":50},[34,208217,76356],{"class":181},[34,208219,208220],{"class":40},"# [2, 4, 6]\n",[34,208222,208223],{"class":36,"line":263},[34,208224,62],{"emptyLinePlaceholder":61},[34,208226,208227],{"class":36,"line":275},[34,208228,208229],{"class":40},"# Select (filter elements)\n",[34,208231,208232,208235,208237,208239,208241,208243,208245,208247,208249,208251,208253,208255,208257,208260,208263,208265],{"class":36,"line":700},[34,208233,208234],{"class":675},"evens",[34,208236,683],{"class":580},[34,208238,8315],{"class":181},[34,208240,8318],{"class":50},[34,208242,1798],{"class":181},[34,208244,8324],{"class":50},[34,208246,1798],{"class":181},[34,208248,3162],{"class":50},[34,208250,1798],{"class":181},[34,208252,18010],{"class":50},[34,208254,208060],{"class":181},[34,208256,58611],{"class":50},[34,208258,208259],{"class":181}," { |n| n.",[34,208261,208262],{"class":47},"even?",[34,208264,76356],{"class":181},[34,208266,208267],{"class":40},"# [2, 4]\n",[34,208269,208270],{"class":36,"line":706},[34,208271,62],{"emptyLinePlaceholder":61},[34,208273,208274],{"class":36,"line":715},[34,208275,208276],{"class":40},"# Reject (inverse of select)\n",[34,208278,208279,208282,208284,208286,208288,208290,208292,208294,208296,208298,208300,208302,208304,208306,208308,208310],{"class":36,"line":725},[34,208280,208281],{"class":675},"odds",[34,208283,683],{"class":580},[34,208285,8315],{"class":181},[34,208287,8318],{"class":50},[34,208289,1798],{"class":181},[34,208291,8324],{"class":50},[34,208293,1798],{"class":181},[34,208295,3162],{"class":50},[34,208297,1798],{"class":181},[34,208299,18010],{"class":50},[34,208301,208060],{"class":181},[34,208303,126246],{"class":47},[34,208305,208259],{"class":181},[34,208307,208262],{"class":47},[34,208309,76356],{"class":181},[34,208311,208312],{"class":40},"# [1, 3]\n",[34,208314,208315],{"class":36,"line":734},[34,208316,62],{"emptyLinePlaceholder":61},[34,208318,208319],{"class":36,"line":742},[34,208320,208321],{"class":40},"# Reduce (accumulate)\n",[34,208323,208324,208326,208328,208330,208332,208334,208336,208338,208340,208342,208344,208346,208348,208350,208352,208355,208357,208360],{"class":36,"line":748},[34,208325,11135],{"class":675},[34,208327,683],{"class":580},[34,208329,8315],{"class":181},[34,208331,8318],{"class":50},[34,208333,1798],{"class":181},[34,208335,8324],{"class":50},[34,208337,1798],{"class":181},[34,208339,3162],{"class":50},[34,208341,1798],{"class":181},[34,208343,18010],{"class":50},[34,208345,208060],{"class":181},[34,208347,8345],{"class":47},[34,208349,1607],{"class":181},[34,208351,2773],{"class":50},[34,208353,208354],{"class":181},") { |acc, n| acc ",[34,208356,2940],{"class":580},[34,208358,208359],{"class":181}," n }  ",[34,208361,191781],{"class":40},[34,208363,208364,208366,208368,208370,208372,208374,208376,208378,208380,208382,208384,208386,208388,208390,208393,208395],{"class":36,"line":754},[34,208365,11135],{"class":675},[34,208367,683],{"class":580},[34,208369,8315],{"class":181},[34,208371,8318],{"class":50},[34,208373,1798],{"class":181},[34,208375,8324],{"class":50},[34,208377,1798],{"class":181},[34,208379,3162],{"class":50},[34,208381,1798],{"class":181},[34,208383,18010],{"class":50},[34,208385,208060],{"class":181},[34,208387,8345],{"class":47},[34,208389,1607],{"class":181},[34,208391,208392],{"class":50},":+",[34,208394,76021],{"class":181},[34,208396,208397],{"class":40},"# Shorthand: 10\n",[34,208399,208400],{"class":36,"line":759},[34,208401,62],{"emptyLinePlaceholder":61},[34,208403,208404],{"class":36,"line":771},[34,208405,208406],{"class":40},"# Find (first match)\n",[34,208408,208409,208412,208414,208416,208418,208420,208422,208424,208426,208428,208430,208432,208434,208436,208438,208440],{"class":36,"line":794},[34,208410,208411],{"class":675},"first_even",[34,208413,683],{"class":580},[34,208415,8315],{"class":181},[34,208417,8318],{"class":50},[34,208419,1798],{"class":181},[34,208421,3162],{"class":50},[34,208423,1798],{"class":181},[34,208425,18010],{"class":50},[34,208427,1798],{"class":181},[34,208429,2778],{"class":50},[34,208431,208060],{"class":181},[34,208433,12963],{"class":47},[34,208435,208259],{"class":181},[34,208437,208262],{"class":47},[34,208439,76356],{"class":181},[34,208441,208442],{"class":40},"# 4\n",[34,208444,208445],{"class":36,"line":824},[34,208446,62],{"emptyLinePlaceholder":61},[34,208448,208449],{"class":36,"line":830},[34,208450,208451],{"class":40},"# Any? and all?\n",[34,208453,208454,208456,208458,208460,208462,208464,208466,208468,208471,208473,208475,208478,208480],{"class":36,"line":839},[34,208455,10260],{"class":181},[34,208457,8324],{"class":50},[34,208459,1798],{"class":181},[34,208461,18010],{"class":50},[34,208463,1798],{"class":181},[34,208465,18019],{"class":50},[34,208467,208060],{"class":181},[34,208469,208470],{"class":47},"all?",[34,208472,1607],{"class":181},[34,208474,19502],{"class":580},[34,208476,208477],{"class":50},":even?",[34,208479,103888],{"class":181},[34,208481,207976],{"class":40},[34,208483,208484,208486,208488,208490,208492,208494,208496,208498,208501,208503,208505,208507,208509],{"class":36,"line":854},[34,208485,10260],{"class":181},[34,208487,8318],{"class":50},[34,208489,1798],{"class":181},[34,208491,8324],{"class":50},[34,208493,1798],{"class":181},[34,208495,3162],{"class":50},[34,208497,208060],{"class":181},[34,208499,208500],{"class":47},"any?",[34,208502,1607],{"class":181},[34,208504,19502],{"class":580},[34,208506,208477],{"class":50},[34,208508,103888],{"class":181},[34,208510,207976],{"class":40},[388,208512,208513],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":208515},[208516],{"id":208087,"depth":44,"text":208082},"Blocks and Iterators in Ruby.",{},"/ruby/blocks-and-iterators",{"title":208082,"description":208517},"ruby/blocks-and-iterators",[207723,10359,46870,208078],"3Mi_RsxApFd8TP_ANKJVlg8wxlk_b_lzzdb7hK3JnU0",{"id":208525,"title":208526,"body":208527,"date":402,"description":208885,"extension":404,"meta":208886,"navigation":61,"order":275,"path":208887,"seo":208888,"stem":208889,"subject":207723,"tags":208890,"__hash__":208891},"topics/ruby/classes-and-objects.md","Classes and Objects",{"type":8,"value":208528,"toc":208882},[208529,208532,208879],[11,208530,208526],{"id":208531},"classes-and-objects",[25,208533,208535],{"className":207721,"code":208534,"language":207723,"meta":30,"style":30},"# Class definition\nclass Person\n  # Class variable\n  @@count = 0\n  \n  # Attribute accessors\n  attr_accessor :name      # getter and setter\n  attr_reader :age         # getter only\n  attr_writer :email       # setter only\n  \n  # Constructor\n  def initialize(name, age)\n    @name = name           # Instance variable\n    @age = age\n    @@count += 1\n  end\n  \n  # Instance method\n  def greet\n    \"Hello, I'm #{@name}\"\n  end\n  \n  # Class method\n  def self.count\n    @@count\n  end\nend\n\n# Creating objects\nperson = Person.new(\"Alice\", 30)\nperson.name                # \"Alice\"\nperson.greet               # \"Hello, I'm Alice\"\nPerson.count               # 1\n\n# Inheritance\nclass Student \u003C Person\n  def initialize(name, age, major)\n    super(name, age)       # Call parent constructor\n    @major = major\n  end\n  \n  def greet\n    \"#{super}. I study #{@major}.\"\n  end\nend\n",[20,208536,208537,208542,208548,208553,208562,208566,208571,208582,208593,208604,208608,208613,208623,208636,208645,208654,208658,208662,208667,208673,208688,208692,208696,208701,208708,208713,208717,208721,208725,208730,208753,208763,208772,208783,208787,208791,208804,208813,208823,208833,208837,208841,208847,208871,208875],{"__ignoreMap":30},[34,208538,208539],{"class":36,"line":37},[34,208540,208541],{"class":40},"# Class definition\n",[34,208543,208544,208546],{"class":36,"line":44},[34,208545,30060],{"class":580},[34,208547,34124],{"class":47},[34,208549,208550],{"class":36,"line":58},[34,208551,208552],{"class":40},"  # Class variable\n",[34,208554,208555,208558,208560],{"class":36,"line":65},[34,208556,208557],{"class":181},"  @@count ",[34,208559,1301],{"class":580},[34,208561,36394],{"class":50},[34,208563,208564],{"class":36,"line":71},[34,208565,827],{"class":181},[34,208567,208568],{"class":36,"line":77},[34,208569,208570],{"class":40},"  # Attribute accessors\n",[34,208572,208573,208576,208579],{"class":36,"line":82},[34,208574,208575],{"class":580},"  attr_accessor",[34,208577,208578],{"class":50}," :name",[34,208580,208581],{"class":40},"      # getter and setter\n",[34,208583,208584,208587,208590],{"class":36,"line":88},[34,208585,208586],{"class":580},"  attr_reader",[34,208588,208589],{"class":50}," :age",[34,208591,208592],{"class":40},"         # getter only\n",[34,208594,208595,208598,208601],{"class":36,"line":242},[34,208596,208597],{"class":580},"  attr_writer",[34,208599,208600],{"class":50}," :email",[34,208602,208603],{"class":40},"       # setter only\n",[34,208605,208606],{"class":36,"line":250},[34,208607,827],{"class":181},[34,208609,208610],{"class":36,"line":263},[34,208611,208612],{"class":40},"  # Constructor\n",[34,208614,208615,208618,208621],{"class":36,"line":275},[34,208616,208617],{"class":580},"  def",[34,208619,208620],{"class":47}," initialize",[34,208622,141452],{"class":181},[34,208624,208625,208628,208630,208633],{"class":36,"line":700},[34,208626,208627],{"class":181},"    @name ",[34,208629,1301],{"class":580},[34,208631,208632],{"class":181}," name           ",[34,208634,208635],{"class":40},"# Instance variable\n",[34,208637,208638,208641,208643],{"class":36,"line":706},[34,208639,208640],{"class":181},"    @age ",[34,208642,1301],{"class":580},[34,208644,133483],{"class":181},[34,208646,208647,208650,208652],{"class":36,"line":715},[34,208648,208649],{"class":181},"    @@count ",[34,208651,31462],{"class":580},[34,208653,43446],{"class":50},[34,208655,208656],{"class":36,"line":725},[34,208657,61554],{"class":580},[34,208659,208660],{"class":36,"line":734},[34,208661,827],{"class":181},[34,208663,208664],{"class":36,"line":742},[34,208665,208666],{"class":40},"  # Instance method\n",[34,208668,208669,208671],{"class":36,"line":748},[34,208670,208617],{"class":580},[34,208672,90087],{"class":47},[34,208674,208675,208678,208681,208684,208686],{"class":36,"line":754},[34,208676,208677],{"class":54},"    \"Hello, I'm ",[34,208679,208680],{"class":54},"#{",[34,208682,208683],{"class":181},"@name",[34,208685,34378],{"class":54},[34,208687,11320],{"class":54},[34,208689,208690],{"class":36,"line":759},[34,208691,61554],{"class":580},[34,208693,208694],{"class":36,"line":771},[34,208695,827],{"class":181},[34,208697,208698],{"class":36,"line":794},[34,208699,208700],{"class":40},"  # Class method\n",[34,208702,208703,208705],{"class":36,"line":824},[34,208704,208617],{"class":580},[34,208706,208707],{"class":47}," self.count\n",[34,208709,208710],{"class":36,"line":830},[34,208711,208712],{"class":181},"    @@count\n",[34,208714,208715],{"class":36,"line":839},[34,208716,61554],{"class":580},[34,208718,208719],{"class":36,"line":854},[34,208720,33222],{"class":580},[34,208722,208723],{"class":36,"line":860},[34,208724,62],{"emptyLinePlaceholder":61},[34,208726,208727],{"class":36,"line":865},[34,208728,208729],{"class":40},"# Creating objects\n",[34,208731,208732,208735,208737,208739,208741,208743,208745,208747,208749,208751],{"class":36,"line":870},[34,208733,208734],{"class":675},"person",[34,208736,683],{"class":580},[34,208738,30063],{"class":50},[34,208740,151],{"class":181},[34,208742,3143],{"class":580},[34,208744,1607],{"class":181},[34,208746,21650],{"class":54},[34,208748,1798],{"class":181},[34,208750,17625],{"class":50},[34,208752,3372],{"class":181},[34,208754,208755,208758,208760],{"class":36,"line":876},[34,208756,208757],{"class":181},"person.",[34,208759,178],{"class":47},[34,208761,208762],{"class":40},"                # \"Alice\"\n",[34,208764,208765,208767,208769],{"class":36,"line":885},[34,208766,208757],{"class":181},[34,208768,11011],{"class":47},[34,208770,208771],{"class":40},"               # \"Hello, I'm Alice\"\n",[34,208773,208774,208776,208778,208780],{"class":36,"line":895},[34,208775,30303],{"class":50},[34,208777,151],{"class":181},[34,208779,4284],{"class":47},[34,208781,208782],{"class":40},"               # 1\n",[34,208784,208785],{"class":36,"line":904},[34,208786,62],{"emptyLinePlaceholder":61},[34,208788,208789],{"class":36,"line":915},[34,208790,194237],{"class":40},[34,208792,208793,208795,208798,208801],{"class":36,"line":927},[34,208794,30060],{"class":580},[34,208796,208797],{"class":47}," Student",[34,208799,208800],{"class":181}," \u003C ",[34,208802,208803],{"class":47},"Person\n",[34,208805,208806,208808,208810],{"class":36,"line":932},[34,208807,208617],{"class":580},[34,208809,208620],{"class":47},[34,208811,208812],{"class":181},"(name, age, major)\n",[34,208814,208815,208817,208820],{"class":36,"line":944},[34,208816,125612],{"class":580},[34,208818,208819],{"class":181},"(name, age)       ",[34,208821,208822],{"class":40},"# Call parent constructor\n",[34,208824,208825,208828,208830],{"class":36,"line":966},[34,208826,208827],{"class":181},"    @major ",[34,208829,1301],{"class":580},[34,208831,208832],{"class":181}," major\n",[34,208834,208835],{"class":36,"line":1948},[34,208836,61554],{"class":580},[34,208838,208839],{"class":36,"line":1953},[34,208840,827],{"class":181},[34,208842,208843,208845],{"class":36,"line":3616},[34,208844,208617],{"class":580},[34,208846,90087],{"class":47},[34,208848,208849,208851,208853,208856,208858,208861,208863,208866,208868],{"class":36,"line":3622},[34,208850,107727],{"class":54},[34,208852,208680],{"class":54},[34,208854,208855],{"class":580},"super",[34,208857,34378],{"class":54},[34,208859,208860],{"class":54},". I study ",[34,208862,208680],{"class":54},[34,208864,208865],{"class":181},"@major",[34,208867,34378],{"class":54},[34,208869,208870],{"class":54},".\"\n",[34,208872,208873],{"class":36,"line":3642},[34,208874,61554],{"class":580},[34,208876,208877],{"class":36,"line":3657},[34,208878,33222],{"class":580},[388,208880,208881],{},"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 .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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":208883},[208884],{"id":208531,"depth":44,"text":208526},"Classes and Objects in Ruby.",{},"/ruby/classes-and-objects",{"title":208526,"description":208885},"ruby/classes-and-objects",[207723,10359,46870,208078],"K9_LmcO5J0imyb2uFe-573oU7Vfa5HoGTLILRaxNQdw",{"id":208893,"title":141279,"body":208894,"date":402,"description":209116,"extension":404,"meta":209117,"navigation":61,"order":742,"path":209118,"seo":209119,"stem":209120,"subject":207723,"tags":209121,"__hash__":209122},"topics/ruby/common-idioms.md",{"type":8,"value":208895,"toc":209113},[208896,208898,209110],[11,208897,141279],{"id":141284},[25,208899,208901],{"className":207721,"code":208900,"language":207723,"meta":30,"style":30},"# Safe navigation operator\nuser&.profile&.email       # Returns nil if any part is nil\n\n# Double pipe (or-equals)\nname ||= \"Default\"         # Assign only if name is nil/false\n\n# Ranges\n(1..10).to_a               # [1, 2, 3, ..., 10] (inclusive)\n(1...10).to_a              # [1, 2, 3, ..., 9] (exclusive)\n\n# Array/String multiplication\n\"ha\" * 3                   # \"hahaha\"\n[1, 2] * 3                 # [1, 2, 1, 2, 1, 2]\n\n# Spaceship operator (comparison)\n1 \u003C=> 2                    # -1 (less than)\n2 \u003C=> 2                    # 0 (equal)\n3 \u003C=> 2                    # 1 (greater than)\n\n# Method chaining\ntext = \"  hello world  \"\ntext.strip.upcase.reverse  # \"DLROW OLLEH\"\n",[20,208902,208903,208908,208925,208929,208934,208946,208950,208955,208973,208990,208994,208999,209011,209030,209034,209039,209051,209062,209073,209077,209082,209091],{"__ignoreMap":30},[34,208904,208905],{"class":36,"line":37},[34,208906,208907],{"class":40},"# Safe navigation operator\n",[34,208909,208910,208912,208915,208918,208920,208922],{"class":36,"line":44},[34,208911,3945],{"class":181},[34,208913,208914],{"class":580},"&.",[34,208916,208917],{"class":47},"profile",[34,208919,208914],{"class":580},[34,208921,59283],{"class":47},[34,208923,208924],{"class":40},"       # Returns nil if any part is nil\n",[34,208926,208927],{"class":36,"line":58},[34,208928,62],{"emptyLinePlaceholder":61},[34,208930,208931],{"class":36,"line":65},[34,208932,208933],{"class":40},"# Double pipe (or-equals)\n",[34,208935,208936,208938,208941,208943],{"class":36,"line":71},[34,208937,178],{"class":675},[34,208939,208940],{"class":580}," ||=",[34,208942,37389],{"class":54},[34,208944,208945],{"class":40},"         # Assign only if name is nil/false\n",[34,208947,208948],{"class":36,"line":77},[34,208949,62],{"emptyLinePlaceholder":61},[34,208951,208952],{"class":36,"line":82},[34,208953,208954],{"class":40},"# Ranges\n",[34,208956,208957,208959,208961,208963,208965,208967,208970],{"class":36,"line":88},[34,208958,1607],{"class":181},[34,208960,8318],{"class":50},[34,208962,101074],{"class":181},[34,208964,11923],{"class":50},[34,208966,1876],{"class":181},[34,208968,208969],{"class":47},"to_a",[34,208971,208972],{"class":40},"               # [1, 2, 3, ..., 10] (inclusive)\n",[34,208974,208975,208977,208979,208981,208983,208985,208987],{"class":36,"line":242},[34,208976,1607],{"class":181},[34,208978,8318],{"class":50},[34,208980,16841],{"class":181},[34,208982,11923],{"class":50},[34,208984,1876],{"class":181},[34,208986,208969],{"class":47},[34,208988,208989],{"class":40},"              # [1, 2, 3, ..., 9] (exclusive)\n",[34,208991,208992],{"class":36,"line":250},[34,208993,62],{"emptyLinePlaceholder":61},[34,208995,208996],{"class":36,"line":263},[34,208997,208998],{"class":40},"# Array/String multiplication\n",[34,209000,209001,209004,209006,209008],{"class":36,"line":275},[34,209002,209003],{"class":54},"\"ha\"",[34,209005,18083],{"class":580},[34,209007,11147],{"class":50},[34,209009,209010],{"class":40},"                   # \"hahaha\"\n",[34,209012,209013,209015,209017,209019,209021,209023,209025,209027],{"class":36,"line":700},[34,209014,10260],{"class":181},[34,209016,8318],{"class":50},[34,209018,1798],{"class":181},[34,209020,8324],{"class":50},[34,209022,17799],{"class":181},[34,209024,4289],{"class":580},[34,209026,11147],{"class":50},[34,209028,209029],{"class":40},"                 # [1, 2, 1, 2, 1, 2]\n",[34,209031,209032],{"class":36,"line":706},[34,209033,62],{"emptyLinePlaceholder":61},[34,209035,209036],{"class":36,"line":715},[34,209037,209038],{"class":40},"# Spaceship operator (comparison)\n",[34,209040,209041,209043,209046,209048],{"class":36,"line":725},[34,209042,8318],{"class":50},[34,209044,209045],{"class":580}," \u003C=>",[34,209047,4292],{"class":50},[34,209049,209050],{"class":40},"                    # -1 (less than)\n",[34,209052,209053,209055,209057,209059],{"class":36,"line":734},[34,209054,8324],{"class":50},[34,209056,209045],{"class":580},[34,209058,4292],{"class":50},[34,209060,209061],{"class":40},"                    # 0 (equal)\n",[34,209063,209064,209066,209068,209070],{"class":36,"line":742},[34,209065,3162],{"class":50},[34,209067,209045],{"class":580},[34,209069,4292],{"class":50},[34,209071,209072],{"class":40},"                    # 1 (greater than)\n",[34,209074,209075],{"class":36,"line":748},[34,209076,62],{"emptyLinePlaceholder":61},[34,209078,209079],{"class":36,"line":754},[34,209080,209081],{"class":40},"# Method chaining\n",[34,209083,209084,209086,209088],{"class":36,"line":759},[34,209085,780],{"class":675},[34,209087,683],{"class":580},[34,209089,209090],{"class":54}," \"  hello world  \"\n",[34,209092,209093,209095,209098,209100,209103,209105,209107],{"class":36,"line":771},[34,209094,37850],{"class":181},[34,209096,209097],{"class":47},"strip",[34,209099,151],{"class":181},[34,209101,209102],{"class":47},"upcase",[34,209104,151],{"class":181},[34,209106,68954],{"class":47},[34,209108,209109],{"class":40},"  # \"DLROW OLLEH\"\n",[388,209111,209112],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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 .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":30,"searchDepth":44,"depth":44,"links":209114},[209115],{"id":141284,"depth":44,"text":141279},"Common Idioms in Ruby.",{},"/ruby/common-idioms",{"title":141279,"description":209116},"ruby/common-idioms",[207723,10359,46870,208078],"gnRpfg_-6gm-6lrGEfQhY6XzD-U2XF2Wx66Vq2S8a64",{"id":209124,"title":18818,"body":209125,"date":402,"description":209378,"extension":404,"meta":209379,"navigation":61,"order":88,"path":209380,"seo":209381,"stem":209382,"subject":207723,"tags":209383,"__hash__":209384},"topics/ruby/control-flow.md",{"type":8,"value":209126,"toc":209375},[209127,209129,209372],[11,209128,18818],{"id":18823},[25,209130,209132],{"className":207721,"code":209131,"language":207723,"meta":30,"style":30},"# If/elsif/else\nage = 18\nif age >= 18\n  puts \"Adult\"\nelsif age >= 13\n  puts \"Teenager\"\nelse\n  puts \"Child\"\nend\n\n# Unless (opposite of if)\nunless logged_in?\n  redirect_to_login\nend\n\n# Ternary operator\nstatus = age >= 18 ? \"adult\" : \"minor\"\n\n# Case/when (switch statement)\ngrade = 'B'\ncase grade\nwhen 'A'\n  puts \"Excellent\"\nwhen 'B', 'C'              # Multiple values\n  puts \"Good\"\nwhen 'D'\n  puts \"Needs improvement\"\nelse\n  puts \"Fail\"\nend\n\n# Statement modifiers\nputs \"Hello\" if greeting_enabled?\nbreak unless valid?\n",[20,209133,209134,209139,209147,209157,209164,209176,209183,209187,209194,209198,209202,209207,209215,209220,209224,209228,209232,209253,209257,209262,209272,209279,209286,209293,209306,209313,209320,209327,209331,209338,209342,209346,209351,209362],{"__ignoreMap":30},[34,209135,209136],{"class":36,"line":37},[34,209137,209138],{"class":40},"# If/elsif/else\n",[34,209140,209141,209143,209145],{"class":36,"line":44},[34,209142,13337],{"class":675},[34,209144,683],{"class":580},[34,209146,87787],{"class":50},[34,209148,209149,209151,209153,209155],{"class":36,"line":58},[34,209150,10383],{"class":580},[34,209152,25065],{"class":181},[34,209154,18401],{"class":580},[34,209156,87787],{"class":50},[34,209158,209159,209161],{"class":36,"line":65},[34,209160,208126],{"class":50},[34,209162,209163],{"class":54}," \"Adult\"\n",[34,209165,209166,209169,209171,209173],{"class":36,"line":71},[34,209167,209168],{"class":580},"elsif",[34,209170,25065],{"class":181},[34,209172,18401],{"class":580},[34,209174,209175],{"class":50}," 13\n",[34,209177,209178,209180],{"class":36,"line":77},[34,209179,208126],{"class":50},[34,209181,209182],{"class":54}," \"Teenager\"\n",[34,209184,209185],{"class":36,"line":82},[34,209186,10446],{"class":580},[34,209188,209189,209191],{"class":36,"line":88},[34,209190,208126],{"class":50},[34,209192,209193],{"class":54}," \"Child\"\n",[34,209195,209196],{"class":36,"line":242},[34,209197,33222],{"class":580},[34,209199,209200],{"class":36,"line":250},[34,209201,62],{"emptyLinePlaceholder":61},[34,209203,209204],{"class":36,"line":263},[34,209205,209206],{"class":40},"# Unless (opposite of if)\n",[34,209208,209209,209212],{"class":36,"line":275},[34,209210,209211],{"class":580},"unless",[34,209213,209214],{"class":181}," logged_in?\n",[34,209216,209217],{"class":36,"line":700},[34,209218,209219],{"class":181},"  redirect_to_login\n",[34,209221,209222],{"class":36,"line":706},[34,209223,33222],{"class":580},[34,209225,209226],{"class":36,"line":715},[34,209227,62],{"emptyLinePlaceholder":61},[34,209229,209230],{"class":36,"line":725},[34,209231,193770],{"class":40},[34,209233,209234,209236,209238,209240,209242,209244,209246,209248,209250],{"class":36,"line":734},[34,209235,75167],{"class":675},[34,209237,683],{"class":580},[34,209239,25065],{"class":181},[34,209241,18401],{"class":580},[34,209243,18845],{"class":50},[34,209245,131598],{"class":580},[34,209247,171055],{"class":54},[34,209249,31580],{"class":181},[34,209251,209252],{"class":54},"\"minor\"\n",[34,209254,209255],{"class":36,"line":742},[34,209256,62],{"emptyLinePlaceholder":61},[34,209258,209259],{"class":36,"line":748},[34,209260,209261],{"class":40},"# Case/when (switch statement)\n",[34,209263,209264,209267,209269],{"class":36,"line":754},[34,209265,209266],{"class":675},"grade",[34,209268,683],{"class":580},[34,209270,209271],{"class":54}," 'B'\n",[34,209273,209274,209276],{"class":36,"line":759},[34,209275,104050],{"class":580},[34,209277,209278],{"class":181}," grade\n",[34,209280,209281,209283],{"class":36,"line":771},[34,209282,34898],{"class":580},[34,209284,209285],{"class":54}," 'A'\n",[34,209287,209288,209290],{"class":36,"line":794},[34,209289,208126],{"class":50},[34,209291,209292],{"class":54}," \"Excellent\"\n",[34,209294,209295,209297,209299,209301,209303],{"class":36,"line":824},[34,209296,34898],{"class":580},[34,209298,19023],{"class":54},[34,209300,1798],{"class":181},[34,209302,50709],{"class":54},[34,209304,209305],{"class":40},"              # Multiple values\n",[34,209307,209308,209310],{"class":36,"line":830},[34,209309,208126],{"class":50},[34,209311,209312],{"class":54}," \"Good\"\n",[34,209314,209315,209317],{"class":36,"line":839},[34,209316,34898],{"class":580},[34,209318,209319],{"class":54}," 'D'\n",[34,209321,209322,209324],{"class":36,"line":854},[34,209323,208126],{"class":50},[34,209325,209326],{"class":54}," \"Needs improvement\"\n",[34,209328,209329],{"class":36,"line":860},[34,209330,10446],{"class":580},[34,209332,209333,209335],{"class":36,"line":865},[34,209334,208126],{"class":50},[34,209336,209337],{"class":54}," \"Fail\"\n",[34,209339,209340],{"class":36,"line":870},[34,209341,33222],{"class":580},[34,209343,209344],{"class":36,"line":876},[34,209345,62],{"emptyLinePlaceholder":61},[34,209347,209348],{"class":36,"line":885},[34,209349,209350],{"class":40},"# Statement modifiers\n",[34,209352,209353,209355,209357,209359],{"class":36,"line":895},[34,209354,24026],{"class":50},[34,209356,24377],{"class":54},[34,209358,18874],{"class":580},[34,209360,209361],{"class":181}," greeting_enabled?\n",[34,209363,209364,209366,209369],{"class":36,"line":904},[34,209365,19289],{"class":580},[34,209367,209368],{"class":580}," unless",[34,209370,209371],{"class":181}," valid?\n",[388,209373,209374],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .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":30,"searchDepth":44,"depth":44,"links":209376},[209377],{"id":18823,"depth":44,"text":18818},"Control Flow in Ruby.",{},"/ruby/control-flow",{"title":18818,"description":209378},"ruby/control-flow",[207723,10359,46870,208078],"HSfY4OiZ2wSEaJIwp2kIEuA2PhZWqKMXvCxD5sF5FaI",{"id":209386,"title":30787,"body":209387,"date":402,"description":209606,"extension":404,"meta":209607,"navigation":61,"order":715,"path":209608,"seo":209609,"stem":209610,"subject":207723,"tags":209611,"__hash__":209612},"topics/ruby/exception-handling.md",{"type":8,"value":209388,"toc":209603},[209389,209391,209600],[11,209390,30787],{"id":30792},[25,209392,209394],{"className":207721,"code":209393,"language":207723,"meta":30,"style":30},"# Basic exception handling\nbegin\n  result = 10 / 0\nrescue ZeroDivisionError => e\n  puts \"Error: #{e.message}\"\nrescue StandardError => e\n  puts \"General error: #{e.message}\"\nensure\n  puts \"This always runs\"\nend\n\n# Raise exceptions\ndef validate_age(age)\n  raise ArgumentError, \"Age must be positive\" if age \u003C 0\n  age\nend\n\n# Retry\nattempts = 0\nbegin\n  risky_operation\nrescue\n  attempts += 1\n  retry if attempts \u003C 3\n  raise                    # Re-raise if max attempts reached\nend\n",[20,209395,209396,209401,209406,209419,209429,209445,209454,209469,209474,209481,209485,209489,209494,209504,209525,209530,209534,209538,209543,209552,209556,209561,209565,209575,209589,209596],{"__ignoreMap":30},[34,209397,209398],{"class":36,"line":37},[34,209399,209400],{"class":40},"# Basic exception handling\n",[34,209402,209403],{"class":36,"line":44},[34,209404,209405],{"class":580},"begin\n",[34,209407,209408,209411,209413,209415,209417],{"class":36,"line":58},[34,209409,209410],{"class":675},"  result",[34,209412,683],{"class":580},[34,209414,13123],{"class":50},[34,209416,22767],{"class":580},[34,209418,36394],{"class":50},[34,209420,209421,209423,209426],{"class":36,"line":65},[34,209422,61595],{"class":580},[34,209424,209425],{"class":50}," ZeroDivisionError",[34,209427,209428],{"class":181}," => e\n",[34,209430,209431,209433,209436,209439,209441,209443],{"class":36,"line":71},[34,209432,208126],{"class":50},[34,209434,209435],{"class":54}," \"Error: ",[34,209437,209438],{"class":54},"#{e.",[34,209440,15736],{"class":47},[34,209442,34378],{"class":54},[34,209444,11320],{"class":54},[34,209446,209447,209449,209452],{"class":36,"line":77},[34,209448,61595],{"class":580},[34,209450,209451],{"class":50}," StandardError",[34,209453,209428],{"class":181},[34,209455,209456,209458,209461,209463,209465,209467],{"class":36,"line":82},[34,209457,208126],{"class":50},[34,209459,209460],{"class":54}," \"General error: ",[34,209462,209438],{"class":54},[34,209464,15736],{"class":47},[34,209466,34378],{"class":54},[34,209468,11320],{"class":54},[34,209470,209471],{"class":36,"line":88},[34,209472,209473],{"class":580},"ensure\n",[34,209475,209476,209478],{"class":36,"line":242},[34,209477,208126],{"class":50},[34,209479,209480],{"class":54}," \"This always runs\"\n",[34,209482,209483],{"class":36,"line":250},[34,209484,33222],{"class":580},[34,209486,209487],{"class":36,"line":263},[34,209488,62],{"emptyLinePlaceholder":61},[34,209490,209491],{"class":36,"line":275},[34,209492,209493],{"class":40},"# Raise exceptions\n",[34,209495,209496,209498,209501],{"class":36,"line":700},[34,209497,49400],{"class":580},[34,209499,209500],{"class":47}," validate_age",[34,209502,209503],{"class":181},"(age)\n",[34,209505,209506,209509,209512,209514,209517,209519,209521,209523],{"class":36,"line":706},[34,209507,209508],{"class":580},"  raise",[34,209510,209511],{"class":50}," ArgumentError",[34,209513,1798],{"class":181},[34,209515,209516],{"class":54},"\"Age must be positive\"",[34,209518,18874],{"class":580},[34,209520,25065],{"class":181},[34,209522,815],{"class":580},[34,209524,36394],{"class":50},[34,209526,209527],{"class":36,"line":715},[34,209528,209529],{"class":181},"  age\n",[34,209531,209532],{"class":36,"line":725},[34,209533,33222],{"class":580},[34,209535,209536],{"class":36,"line":734},[34,209537,62],{"emptyLinePlaceholder":61},[34,209539,209540],{"class":36,"line":742},[34,209541,209542],{"class":40},"# Retry\n",[34,209544,209545,209548,209550],{"class":36,"line":748},[34,209546,209547],{"class":675},"attempts",[34,209549,683],{"class":580},[34,209551,36394],{"class":50},[34,209553,209554],{"class":36,"line":754},[34,209555,209405],{"class":580},[34,209557,209558],{"class":36,"line":759},[34,209559,209560],{"class":181},"  risky_operation\n",[34,209562,209563],{"class":36,"line":771},[34,209564,61616],{"class":580},[34,209566,209567,209570,209573],{"class":36,"line":794},[34,209568,209569],{"class":675},"  attempts",[34,209571,209572],{"class":580}," +=",[34,209574,43446],{"class":50},[34,209576,209577,209580,209582,209585,209587],{"class":36,"line":824},[34,209578,209579],{"class":580},"  retry",[34,209581,18874],{"class":580},[34,209583,209584],{"class":181}," attempts ",[34,209586,815],{"class":580},[34,209588,204469],{"class":50},[34,209590,209591,209593],{"class":36,"line":830},[34,209592,209508],{"class":580},[34,209594,209595],{"class":40},"                    # Re-raise if max attempts reached\n",[34,209597,209598],{"class":36,"line":839},[34,209599,33222],{"class":580},[388,209601,209602],{},"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 .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 .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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":209604},[209605],{"id":30792,"depth":44,"text":30787},"Exception Handling in Ruby.",{},"/ruby/exception-handling",{"title":30787,"description":209606},"ruby/exception-handling",[207723,10359,46870,208078],"lJrG5u2fdVX14HE4DXwBZ4yudGk92QGSfxIVdOTp0Ug",{"id":209614,"title":21267,"body":209615,"date":402,"description":209888,"extension":404,"meta":209889,"navigation":61,"order":706,"path":209890,"seo":209891,"stem":209892,"subject":207723,"tags":209893,"__hash__":209894},"topics/ruby/file-io.md",{"type":8,"value":209616,"toc":209885},[209617,209619,209882],[11,209618,21267],{"id":21272},[25,209620,209622],{"className":207721,"code":209621,"language":207723,"meta":30,"style":30},"# Reading files\ncontent = File.read('file.txt')  # Read entire file\n\nFile.open('file.txt', 'r') do |file|\n  file.each_line do |line|\n    puts line\n  end\nend\n\nlines = File.readlines('file.txt')  # Array of lines\n\n# Writing files\nFile.write('file.txt', 'Hello, World!')  # Overwrite\n\nFile.open('file.txt', 'w') do |file|\n  file.puts \"Line 1\"\n  file.puts \"Line 2\"\nend\n\n# Appending\nFile.open('file.txt', 'a') do |file|\n  file.puts \"New line\"\nend\n\n# Check file existence\nFile.exist?('file.txt')    # true/false\n",[20,209623,209624,209628,209649,209653,209677,209690,209698,209702,209706,209710,209732,209736,209740,209762,209766,209789,209798,209807,209811,209815,209820,209842,209851,209855,209859,209864],{"__ignoreMap":30},[34,209625,209626],{"class":36,"line":37},[34,209627,194292],{"class":40},[34,209629,209630,209632,209634,209636,209638,209640,209642,209645,209647],{"class":36,"line":44},[34,209631,41645],{"class":675},[34,209633,683],{"class":580},[34,209635,137636],{"class":50},[34,209637,151],{"class":181},[34,209639,11224],{"class":47},[34,209641,1607],{"class":181},[34,209643,209644],{"class":54},"'file.txt'",[34,209646,76021],{"class":181},[34,209648,194326],{"class":40},[34,209650,209651],{"class":36,"line":58},[34,209652,62],{"emptyLinePlaceholder":61},[34,209654,209655,209657,209659,209661,209663,209665,209667,209670,209672,209674],{"class":36,"line":65},[34,209656,137584],{"class":50},[34,209658,151],{"class":181},[34,209660,133612],{"class":50},[34,209662,1607],{"class":181},[34,209664,209644],{"class":54},[34,209666,1798],{"class":181},[34,209668,209669],{"class":54},"'r'",[34,209671,4817],{"class":181},[34,209673,19148],{"class":580},[34,209675,209676],{"class":181}," |file|\n",[34,209678,209679,209682,209685,209687],{"class":36,"line":71},[34,209680,209681],{"class":181},"  file.",[34,209683,209684],{"class":47},"each_line",[34,209686,143187],{"class":580},[34,209688,209689],{"class":181}," |line|\n",[34,209691,209692,209695],{"class":36,"line":77},[34,209693,209694],{"class":50},"    puts",[34,209696,209697],{"class":181}," line\n",[34,209699,209700],{"class":36,"line":82},[34,209701,61554],{"class":580},[34,209703,209704],{"class":36,"line":88},[34,209705,33222],{"class":580},[34,209707,209708],{"class":36,"line":242},[34,209709,62],{"emptyLinePlaceholder":61},[34,209711,209712,209714,209716,209718,209720,209723,209725,209727,209729],{"class":36,"line":250},[34,209713,35592],{"class":675},[34,209715,683],{"class":580},[34,209717,137636],{"class":50},[34,209719,151],{"class":181},[34,209721,209722],{"class":50},"readlines",[34,209724,1607],{"class":181},[34,209726,209644],{"class":54},[34,209728,76021],{"class":181},[34,209730,209731],{"class":40},"# Array of lines\n",[34,209733,209734],{"class":36,"line":263},[34,209735,62],{"emptyLinePlaceholder":61},[34,209737,209738],{"class":36,"line":275},[34,209739,194348],{"class":40},[34,209741,209742,209744,209746,209748,209750,209752,209754,209757,209759],{"class":36,"line":700},[34,209743,137584],{"class":50},[34,209745,151],{"class":181},[34,209747,15067],{"class":47},[34,209749,1607],{"class":181},[34,209751,209644],{"class":54},[34,209753,1798],{"class":181},[34,209755,209756],{"class":54},"'Hello, World!'",[34,209758,76021],{"class":181},[34,209760,209761],{"class":40},"# Overwrite\n",[34,209763,209764],{"class":36,"line":706},[34,209765,62],{"emptyLinePlaceholder":61},[34,209767,209768,209770,209772,209774,209776,209778,209780,209783,209785,209787],{"class":36,"line":715},[34,209769,137584],{"class":50},[34,209771,151],{"class":181},[34,209773,133612],{"class":50},[34,209775,1607],{"class":181},[34,209777,209644],{"class":54},[34,209779,1798],{"class":181},[34,209781,209782],{"class":54},"'w'",[34,209784,4817],{"class":181},[34,209786,19148],{"class":580},[34,209788,209676],{"class":181},[34,209790,209791,209793,209795],{"class":36,"line":725},[34,209792,209681],{"class":181},[34,209794,24026],{"class":50},[34,209796,209797],{"class":54}," \"Line 1\"\n",[34,209799,209800,209802,209804],{"class":36,"line":734},[34,209801,209681],{"class":181},[34,209803,24026],{"class":50},[34,209805,209806],{"class":54}," \"Line 2\"\n",[34,209808,209809],{"class":36,"line":742},[34,209810,33222],{"class":580},[34,209812,209813],{"class":36,"line":748},[34,209814,62],{"emptyLinePlaceholder":61},[34,209816,209817],{"class":36,"line":754},[34,209818,209819],{"class":40},"# Appending\n",[34,209821,209822,209824,209826,209828,209830,209832,209834,209836,209838,209840],{"class":36,"line":759},[34,209823,137584],{"class":50},[34,209825,151],{"class":181},[34,209827,133612],{"class":50},[34,209829,1607],{"class":181},[34,209831,209644],{"class":54},[34,209833,1798],{"class":181},[34,209835,24628],{"class":54},[34,209837,4817],{"class":181},[34,209839,19148],{"class":580},[34,209841,209676],{"class":181},[34,209843,209844,209846,209848],{"class":36,"line":771},[34,209845,209681],{"class":181},[34,209847,24026],{"class":50},[34,209849,209850],{"class":54}," \"New line\"\n",[34,209852,209853],{"class":36,"line":794},[34,209854,33222],{"class":580},[34,209856,209857],{"class":36,"line":824},[34,209858,62],{"emptyLinePlaceholder":61},[34,209860,209861],{"class":36,"line":830},[34,209862,209863],{"class":40},"# Check file existence\n",[34,209865,209866,209868,209870,209873,209875,209877,209879],{"class":36,"line":839},[34,209867,137584],{"class":50},[34,209869,151],{"class":181},[34,209871,209872],{"class":47},"exist?",[34,209874,1607],{"class":181},[34,209876,209644],{"class":54},[34,209878,103888],{"class":181},[34,209880,209881],{"class":40},"# true/false\n",[388,209883,209884],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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);}",{"title":30,"searchDepth":44,"depth":44,"links":209886},[209887],{"id":21272,"depth":44,"text":21267},"File I/O in Ruby.",{},"/ruby/file-io",{"title":21267,"description":209888},"ruby/file-io",[207723,10359,46870,208078],"wIh6mFVVD-EzQgNvKOEakVtu9DXxPM1Pzm1cqFtlG2M",{"id":209896,"title":203072,"body":209897,"date":402,"description":210194,"extension":404,"meta":210195,"navigation":61,"order":82,"path":210196,"seo":210197,"stem":210198,"subject":207723,"tags":210199,"__hash__":210200},"topics/ruby/hashes.md",{"type":8,"value":209898,"toc":210191},[209899,209901,210189],[11,209900,203072],{"id":203077},[25,209902,209904],{"className":207721,"code":209903,"language":207723,"meta":30,"style":30},"# Hash creation (key-value pairs)\nperson = {\n  'name' => 'Alice',\n  'age' => 30,\n  'city' => 'NYC'\n}\n\n# Symbol keys (more common)\nuser = {\n  name: 'Bob',             # Modern syntax\n  age: 25,\n  email: 'bob@example.com'\n}\n\n# Accessing values\nuser[:name]                # \"Bob\"\nuser[:phone]               # nil (missing key)\nuser.fetch(:phone, 'N/A')  # 'N/A' (with default)\n\n# Common hash methods\nuser[:country] = 'USA'     # Add/update key\nuser.delete(:email)        # Remove key\nuser.keys                  # [:name, :age, :country]\nuser.values                # [\"Bob\", 25, \"USA\"]\nuser.key?(:name)           # true\nuser.empty?                # false\n\n# Iterating\nuser.each do |key, value|\n  puts \"#{key}: #{value}\"\nend\n",[20,209905,209906,209911,209919,209931,209942,209952,209956,209960,209965,209973,209987,209996,210004,210008,210012,210017,210031,210043,210064,210068,210073,210090,210106,210115,210124,210139,210149,210153,210158,210169,210185],{"__ignoreMap":30},[34,209907,209908],{"class":36,"line":37},[34,209909,209910],{"class":40},"# Hash creation (key-value pairs)\n",[34,209912,209913,209915,209917],{"class":36,"line":44},[34,209914,208734],{"class":675},[34,209916,683],{"class":580},[34,209918,661],{"class":181},[34,209920,209921,209924,209927,209929],{"class":36,"line":58},[34,209922,209923],{"class":54},"  'name'",[34,209925,209926],{"class":181}," => ",[34,209928,28504],{"class":54},[34,209930,624],{"class":181},[34,209932,209933,209936,209938,209940],{"class":36,"line":65},[34,209934,209935],{"class":54},"  'age'",[34,209937,209926],{"class":181},[34,209939,17625],{"class":50},[34,209941,624],{"class":181},[34,209943,209944,209947,209949],{"class":36,"line":71},[34,209945,209946],{"class":54},"  'city'",[34,209948,209926],{"class":181},[34,209950,209951],{"class":54},"'NYC'\n",[34,209953,209954],{"class":36,"line":77},[34,209955,693],{"class":181},[34,209957,209958],{"class":36,"line":82},[34,209959,62],{"emptyLinePlaceholder":61},[34,209961,209962],{"class":36,"line":88},[34,209963,209964],{"class":40},"# Symbol keys (more common)\n",[34,209966,209967,209969,209971],{"class":36,"line":242},[34,209968,3945],{"class":675},[34,209970,683],{"class":580},[34,209972,661],{"class":181},[34,209974,209975,209978,209981,209984],{"class":36,"line":250},[34,209976,209977],{"class":50},"  name:",[34,209979,209980],{"class":54}," 'Bob'",[34,209982,209983],{"class":181},",             ",[34,209985,209986],{"class":40},"# Modern syntax\n",[34,209988,209989,209992,209994],{"class":36,"line":263},[34,209990,209991],{"class":50},"  age:",[34,209993,24763],{"class":50},[34,209995,624],{"class":181},[34,209997,209998,210001],{"class":36,"line":275},[34,209999,210000],{"class":50},"  email:",[34,210002,210003],{"class":54}," 'bob@example.com'\n",[34,210005,210006],{"class":36,"line":700},[34,210007,693],{"class":181},[34,210009,210010],{"class":36,"line":706},[34,210011,62],{"emptyLinePlaceholder":61},[34,210013,210014],{"class":36,"line":715},[34,210015,210016],{"class":40},"# Accessing values\n",[34,210018,210019,210022,210025,210028],{"class":36,"line":725},[34,210020,210021],{"class":181},"user[",[34,210023,210024],{"class":50},":name",[34,210026,210027],{"class":181},"]                ",[34,210029,210030],{"class":40},"# \"Bob\"\n",[34,210032,210033,210035,210038,210040],{"class":36,"line":734},[34,210034,210021],{"class":181},[34,210036,210037],{"class":50},":phone",[34,210039,207857],{"class":181},[34,210041,210042],{"class":40},"# nil (missing key)\n",[34,210044,210045,210048,210050,210052,210054,210056,210059,210061],{"class":36,"line":742},[34,210046,210047],{"class":181},"user.",[34,210049,58875],{"class":47},[34,210051,1607],{"class":181},[34,210053,210037],{"class":50},[34,210055,1798],{"class":181},[34,210057,210058],{"class":54},"'N/A'",[34,210060,76021],{"class":181},[34,210062,210063],{"class":40},"# 'N/A' (with default)\n",[34,210065,210066],{"class":36,"line":748},[34,210067,62],{"emptyLinePlaceholder":61},[34,210069,210070],{"class":36,"line":754},[34,210071,210072],{"class":40},"# Common hash methods\n",[34,210074,210075,210077,210080,210082,210084,210087],{"class":36,"line":759},[34,210076,210021],{"class":181},[34,210078,210079],{"class":50},":country",[34,210081,17799],{"class":181},[34,210083,1301],{"class":580},[34,210085,210086],{"class":54}," 'USA'",[34,210088,210089],{"class":40},"     # Add/update key\n",[34,210091,210092,210094,210096,210098,210101,210103],{"class":36,"line":771},[34,210093,210047],{"class":181},[34,210095,30355],{"class":47},[34,210097,1607],{"class":181},[34,210099,210100],{"class":50},":email",[34,210102,103864],{"class":181},[34,210104,210105],{"class":40},"# Remove key\n",[34,210107,210108,210110,210112],{"class":36,"line":794},[34,210109,210047],{"class":181},[34,210111,52345],{"class":47},[34,210113,210114],{"class":40},"                  # [:name, :age, :country]\n",[34,210116,210117,210119,210121],{"class":36,"line":824},[34,210118,210047],{"class":181},[34,210120,58561],{"class":47},[34,210122,210123],{"class":40},"                # [\"Bob\", 25, \"USA\"]\n",[34,210125,210126,210128,210131,210133,210135,210137],{"class":36,"line":830},[34,210127,210047],{"class":181},[34,210129,210130],{"class":47},"key?",[34,210132,1607],{"class":181},[34,210134,210024],{"class":50},[34,210136,75985],{"class":181},[34,210138,207976],{"class":40},[34,210140,210141,210143,210146],{"class":36,"line":839},[34,210142,210047],{"class":181},[34,210144,210145],{"class":47},"empty?",[34,210147,210148],{"class":40},"                # false\n",[34,210150,210151],{"class":36,"line":854},[34,210152,62],{"emptyLinePlaceholder":61},[34,210154,210155],{"class":36,"line":860},[34,210156,210157],{"class":40},"# Iterating\n",[34,210159,210160,210162,210164,210166],{"class":36,"line":865},[34,210161,210047],{"class":181},[34,210163,208116],{"class":47},[34,210165,143187],{"class":580},[34,210167,210168],{"class":181}," |key, value|\n",[34,210170,210171,210173,210175,210178,210180,210183],{"class":36,"line":870},[34,210172,208126],{"class":50},[34,210174,10326],{"class":54},[34,210176,210177],{"class":54},"#{key}",[34,210179,182],{"class":54},[34,210181,210182],{"class":54},"#{value}",[34,210184,11320],{"class":54},[34,210186,210187],{"class":36,"line":876},[34,210188,33222],{"class":580},[388,210190,208068],{},{"title":30,"searchDepth":44,"depth":44,"links":210192},[210193],{"id":203077,"depth":44,"text":203072},"Hashes in Ruby.",{},"/ruby/hashes",{"title":203072,"description":210194},"ruby/hashes",[207723,10359,46870,208078],"pEOwg7yXs3dDbkmdmT51JI2FLAg9mn5jRHJlpGWziPQ",{"id":210202,"title":22151,"body":210203,"date":402,"description":210312,"extension":404,"meta":210313,"navigation":61,"order":44,"path":210314,"seo":210315,"stem":210316,"subject":207723,"tags":210317,"__hash__":210318},"topics/ruby/hello-world.md",{"type":8,"value":210204,"toc":210309},[210205,210207,210306],[11,210206,22151],{"id":22156},[25,210208,210210],{"className":207721,"code":210209,"language":207723,"meta":30,"style":30},"# Print to console\nputs \"Hello, World!\"        # Output with newline\n\n# Print without newline\nprint \"Hello, World!\"       # No newline at end\n\n# String interpolation\nname = \"Ruby\"\nputs \"Hello, #{name}!\"      # Output: Hello, Ruby!\n\n# Multiple values\np \"Values:\", 42, 3.14, true # Debug output (inspect)\n",[20,210211,210212,210217,210226,210230,210235,210244,210248,210252,210261,210275,210279,210284],{"__ignoreMap":30},[34,210213,210214],{"class":36,"line":37},[34,210215,210216],{"class":40},"# Print to console\n",[34,210218,210219,210221,210223],{"class":36,"line":44},[34,210220,24026],{"class":50},[34,210222,124967],{"class":54},[34,210224,210225],{"class":40},"        # Output with newline\n",[34,210227,210228],{"class":36,"line":58},[34,210229,62],{"emptyLinePlaceholder":61},[34,210231,210232],{"class":36,"line":65},[34,210233,210234],{"class":40},"# Print without newline\n",[34,210236,210237,210239,210241],{"class":36,"line":71},[34,210238,53417],{"class":50},[34,210240,124967],{"class":54},[34,210242,210243],{"class":40},"       # No newline at end\n",[34,210245,210246],{"class":36,"line":77},[34,210247,62],{"emptyLinePlaceholder":61},[34,210249,210250],{"class":36,"line":82},[34,210251,205942],{"class":40},[34,210253,210254,210256,210258],{"class":36,"line":88},[34,210255,178],{"class":675},[34,210257,683],{"class":580},[34,210259,210260],{"class":54}," \"Ruby\"\n",[34,210262,210263,210265,210267,210270,210272],{"class":36,"line":242},[34,210264,24026],{"class":50},[34,210266,11020],{"class":54},[34,210268,210269],{"class":54},"#{name}",[34,210271,37073],{"class":54},[34,210273,210274],{"class":40},"      # Output: Hello, Ruby!\n",[34,210276,210277],{"class":36,"line":250},[34,210278,62],{"emptyLinePlaceholder":61},[34,210280,210281],{"class":36,"line":263},[34,210282,210283],{"class":40},"# Multiple values\n",[34,210285,210286,210288,210291,210293,210295,210297,210299,210301,210303],{"class":36,"line":275},[34,210287,16],{"class":50},[34,210289,210290],{"class":54}," \"Values:\"",[34,210292,1798],{"class":181},[34,210294,8257],{"class":50},[34,210296,1798],{"class":181},[34,210298,195382],{"class":50},[34,210300,1798],{"class":181},[34,210302,632],{"class":50},[34,210304,210305],{"class":40}," # Debug output (inspect)\n",[388,210307,210308],{},"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}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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 .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":30,"searchDepth":44,"depth":44,"links":210310},[210311],{"id":22156,"depth":44,"text":22151},"Hello World in Ruby.",{},"/ruby/hello-world",{"title":22151,"description":210312},"ruby/hello-world",[207723,10359,46870,208078],"lPFIT9VZ6-_Roj1tr8bgcp-o-aZx4c1ovLA323sxi7M",{"id":210320,"title":11769,"body":210321,"date":402,"description":210581,"extension":404,"meta":210582,"navigation":61,"order":242,"path":210583,"seo":210584,"stem":210585,"subject":207723,"tags":210586,"__hash__":210587},"topics/ruby/loops.md",{"type":8,"value":210322,"toc":210578},[210323,210325,210576],[11,210324,11769],{"id":11774},[25,210326,210328],{"className":207721,"code":210327,"language":207723,"meta":30,"style":30},"# While loop\ncount = 0\nwhile count \u003C 5\n  puts count\n  count += 1\nend\n\n# Until loop (opposite of while)\nuntil count >= 10\n  count += 1\nend\n\n# For loop with range\nfor i in 1..5\n  puts i\nend\n\n# Loop with break\nloop do\n  break if done?\nend\n\n# Times loop\n5.times do |i|\n  puts \"Iteration #{i}\"\nend\n\n# Each loop (most common)\n[1, 2, 3].each do |num|\n  puts num\nend\n\n# Loop control\nnext if skip_this?         # Continue to next iteration\nbreak if should_stop?      # Exit loop\n",[20,210329,210330,210334,210342,210352,210358,210366,210370,210374,210379,210389,210397,210401,210405,210409,210424,210430,210434,210438,210443,210450,210460,210464,210468,210473,210486,210498,210502,210506,210511,210533,210539,210543,210547,210552,210564],{"__ignoreMap":30},[34,210331,210332],{"class":36,"line":37},[34,210333,11991],{"class":40},[34,210335,210336,210338,210340],{"class":36,"line":44},[34,210337,4284],{"class":675},[34,210339,683],{"class":580},[34,210341,36394],{"class":50},[34,210343,210344,210346,210348,210350],{"class":36,"line":58},[34,210345,12005],{"class":580},[34,210347,25163],{"class":181},[34,210349,815],{"class":580},[34,210351,134626],{"class":50},[34,210353,210354,210356],{"class":36,"line":65},[34,210355,208126],{"class":50},[34,210357,155624],{"class":181},[34,210359,210360,210362,210364],{"class":36,"line":71},[34,210361,4242],{"class":675},[34,210363,209572],{"class":580},[34,210365,43446],{"class":50},[34,210367,210368],{"class":36,"line":77},[34,210369,33222],{"class":580},[34,210371,210372],{"class":36,"line":82},[34,210373,62],{"emptyLinePlaceholder":61},[34,210375,210376],{"class":36,"line":88},[34,210377,210378],{"class":40},"# Until loop (opposite of while)\n",[34,210380,210381,210383,210385,210387],{"class":36,"line":242},[34,210382,12059],{"class":580},[34,210384,25163],{"class":181},[34,210386,18401],{"class":580},[34,210388,100481],{"class":50},[34,210390,210391,210393,210395],{"class":36,"line":250},[34,210392,4242],{"class":675},[34,210394,209572],{"class":580},[34,210396,43446],{"class":50},[34,210398,210399],{"class":36,"line":263},[34,210400,33222],{"class":580},[34,210402,210403],{"class":36,"line":275},[34,210404,62],{"emptyLinePlaceholder":61},[34,210406,210407],{"class":36,"line":700},[34,210408,11827],{"class":40},[34,210410,210411,210413,210415,210417,210419,210421],{"class":36,"line":706},[34,210412,10246],{"class":580},[34,210414,10300],{"class":181},[34,210416,10252],{"class":580},[34,210418,3567],{"class":50},[34,210420,101074],{"class":181},[34,210422,210423],{"class":50},"5\n",[34,210425,210426,210428],{"class":36,"line":715},[34,210427,208126],{"class":50},[34,210429,159532],{"class":181},[34,210431,210432],{"class":36,"line":725},[34,210433,33222],{"class":580},[34,210435,210436],{"class":36,"line":734},[34,210437,62],{"emptyLinePlaceholder":61},[34,210439,210440],{"class":36,"line":742},[34,210441,210442],{"class":40},"# Loop with break\n",[34,210444,210445,210448],{"class":36,"line":748},[34,210446,210447],{"class":580},"loop",[34,210449,141792],{"class":580},[34,210451,210452,210455,210457],{"class":36,"line":754},[34,210453,210454],{"class":580},"  break",[34,210456,18874],{"class":580},[34,210458,210459],{"class":181}," done?\n",[34,210461,210462],{"class":36,"line":759},[34,210463,33222],{"class":580},[34,210465,210466],{"class":36,"line":771},[34,210467,62],{"emptyLinePlaceholder":61},[34,210469,210470],{"class":36,"line":794},[34,210471,210472],{"class":40},"# Times loop\n",[34,210474,210475,210477,210479,210481,210483],{"class":36,"line":824},[34,210476,2778],{"class":50},[34,210478,151],{"class":181},[34,210480,135830],{"class":47},[34,210482,143187],{"class":580},[34,210484,210485],{"class":181}," |i|\n",[34,210487,210488,210490,210493,210496],{"class":36,"line":830},[34,210489,208126],{"class":50},[34,210491,210492],{"class":54}," \"Iteration ",[34,210494,210495],{"class":54},"#{i}",[34,210497,11320],{"class":54},[34,210499,210500],{"class":36,"line":839},[34,210501,33222],{"class":580},[34,210503,210504],{"class":36,"line":854},[34,210505,62],{"emptyLinePlaceholder":61},[34,210507,210508],{"class":36,"line":860},[34,210509,210510],{"class":40},"# Each loop (most common)\n",[34,210512,210513,210515,210517,210519,210521,210523,210525,210527,210529,210531],{"class":36,"line":865},[34,210514,10260],{"class":181},[34,210516,8318],{"class":50},[34,210518,1798],{"class":181},[34,210520,8324],{"class":50},[34,210522,1798],{"class":181},[34,210524,3162],{"class":50},[34,210526,208060],{"class":181},[34,210528,208116],{"class":47},[34,210530,143187],{"class":580},[34,210532,208121],{"class":181},[34,210534,210535,210537],{"class":36,"line":870},[34,210536,208126],{"class":50},[34,210538,87644],{"class":181},[34,210540,210541],{"class":36,"line":876},[34,210542,33222],{"class":580},[34,210544,210545],{"class":36,"line":885},[34,210546,62],{"emptyLinePlaceholder":61},[34,210548,210549],{"class":36,"line":895},[34,210550,210551],{"class":40},"# Loop control\n",[34,210553,210554,210556,210558,210561],{"class":36,"line":904},[34,210555,61912],{"class":580},[34,210557,18874],{"class":580},[34,210559,210560],{"class":181}," skip_this?         ",[34,210562,210563],{"class":40},"# Continue to next iteration\n",[34,210565,210566,210568,210570,210573],{"class":36,"line":915},[34,210567,19289],{"class":580},[34,210569,18874],{"class":580},[34,210571,210572],{"class":181}," should_stop?      ",[34,210574,210575],{"class":40},"# Exit loop\n",[388,210577,209884],{},{"title":30,"searchDepth":44,"depth":44,"links":210579},[210580],{"id":11774,"depth":44,"text":11769},"Loops in Ruby.",{},"/ruby/loops",{"title":11769,"description":210581},"ruby/loops",[207723,10359,46870,208078],"ySgxIh7KZ0AAD_ej3DF1UE7JFR-hTC7kDv3QqdzRdTk",{"id":210589,"title":36908,"body":210590,"date":402,"description":210898,"extension":404,"meta":210899,"navigation":61,"order":250,"path":210900,"seo":210901,"stem":210902,"subject":207723,"tags":210903,"__hash__":210904},"topics/ruby/methods.md",{"type":8,"value":210591,"toc":210895},[210592,210594,210893],[11,210593,36908],{"id":36913},[25,210595,210597],{"className":207721,"code":210596,"language":207723,"meta":30,"style":30},"# Method definition\ndef greet(name, greeting = \"Hello\")\n  \"#{greeting}, #{name}!\"\nend\n\ngreet(\"Alice\")             # \"Hello, Alice!\"\ngreet(\"Bob\", \"Hi\")         # \"Hi, Bob!\"\n\n# Methods with blocks\ndef repeat(times)\n  times.times do\n    yield                  # Call the block\n  end\nend\n\nrepeat(3) { puts \"Hello\" }\n\n# Method with return value\ndef add(a, b)\n  a + b                    # Implicit return (last expression)\nend\n\n# Explicit return\ndef check_age(age)\n  return \"Invalid\" if age \u003C 0\n  age >= 18 ? \"Adult\" : \"Minor\"\nend\n\n# Splat operator (variable arguments)\ndef sum(*numbers)\n  numbers.reduce(0, :+)\nend\n\nsum(1, 2, 3, 4)            # 10\n",[20,210598,210599,210604,210619,210633,210637,210641,210653,210670,210674,210679,210689,210698,210705,210709,210713,210717,210733,210737,210742,210750,210763,210767,210771,210776,210785,210800,210817,210821,210825,210830,210843,210860,210864,210868],{"__ignoreMap":30},[34,210600,210601],{"class":36,"line":37},[34,210602,210603],{"class":40},"# Method definition\n",[34,210605,210606,210608,210610,210613,210615,210617],{"class":36,"line":44},[34,210607,49400],{"class":580},[34,210609,11047],{"class":47},[34,210611,210612],{"class":181},"(name, greeting ",[34,210614,1301],{"class":580},[34,210616,24377],{"class":54},[34,210618,3372],{"class":181},[34,210620,210621,210624,210627,210629,210631],{"class":36,"line":58},[34,210622,210623],{"class":54},"  \"",[34,210625,210626],{"class":54},"#{greeting}",[34,210628,1798],{"class":54},[34,210630,210269],{"class":54},[34,210632,11026],{"class":54},[34,210634,210635],{"class":36,"line":65},[34,210636,33222],{"class":580},[34,210638,210639],{"class":36,"line":71},[34,210640,62],{"emptyLinePlaceholder":61},[34,210642,210643,210645,210647,210649,210651],{"class":36,"line":77},[34,210644,11011],{"class":47},[34,210646,1607],{"class":181},[34,210648,21650],{"class":54},[34,210650,104305],{"class":181},[34,210652,191653],{"class":40},[34,210654,210655,210657,210659,210661,210663,210665,210667],{"class":36,"line":82},[34,210656,11011],{"class":47},[34,210658,1607],{"class":181},[34,210660,30344],{"class":54},[34,210662,1798],{"class":181},[34,210664,32607],{"class":54},[34,210666,152329],{"class":181},[34,210668,210669],{"class":40},"# \"Hi, Bob!\"\n",[34,210671,210672],{"class":36,"line":88},[34,210673,62],{"emptyLinePlaceholder":61},[34,210675,210676],{"class":36,"line":242},[34,210677,210678],{"class":40},"# Methods with blocks\n",[34,210680,210681,210683,210686],{"class":36,"line":250},[34,210682,49400],{"class":580},[34,210684,210685],{"class":47}," repeat",[34,210687,210688],{"class":181},"(times)\n",[34,210690,210691,210694,210696],{"class":36,"line":263},[34,210692,210693],{"class":181},"  times.",[34,210695,135830],{"class":47},[34,210697,141792],{"class":580},[34,210699,210700,210702],{"class":36,"line":275},[34,210701,174253],{"class":580},[34,210703,210704],{"class":40},"                  # Call the block\n",[34,210706,210707],{"class":36,"line":700},[34,210708,61554],{"class":580},[34,210710,210711],{"class":36,"line":706},[34,210712,33222],{"class":580},[34,210714,210715],{"class":36,"line":715},[34,210716,62],{"emptyLinePlaceholder":61},[34,210718,210719,210721,210723,210725,210727,210729,210731],{"class":36,"line":725},[34,210720,40274],{"class":47},[34,210722,1607],{"class":181},[34,210724,3162],{"class":50},[34,210726,31392],{"class":181},[34,210728,24026],{"class":50},[34,210730,24377],{"class":54},[34,210732,52786],{"class":181},[34,210734,210735],{"class":36,"line":734},[34,210736,62],{"emptyLinePlaceholder":61},[34,210738,210739],{"class":36,"line":742},[34,210740,210741],{"class":40},"# Method with return value\n",[34,210743,210744,210746,210748],{"class":36,"line":748},[34,210745,49400],{"class":580},[34,210747,7854],{"class":47},[34,210749,135916],{"class":181},[34,210751,210752,210755,210757,210760],{"class":36,"line":754},[34,210753,210754],{"class":181},"  a ",[34,210756,2940],{"class":580},[34,210758,210759],{"class":181}," b                    ",[34,210761,210762],{"class":40},"# Implicit return (last expression)\n",[34,210764,210765],{"class":36,"line":759},[34,210766,33222],{"class":580},[34,210768,210769],{"class":36,"line":771},[34,210770,62],{"emptyLinePlaceholder":61},[34,210772,210773],{"class":36,"line":794},[34,210774,210775],{"class":40},"# Explicit return\n",[34,210777,210778,210780,210783],{"class":36,"line":824},[34,210779,49400],{"class":580},[34,210781,210782],{"class":47}," check_age",[34,210784,209503],{"class":181},[34,210786,210787,210789,210792,210794,210796,210798],{"class":36,"line":830},[34,210788,8155],{"class":580},[34,210790,210791],{"class":54}," \"Invalid\"",[34,210793,18874],{"class":580},[34,210795,25065],{"class":181},[34,210797,815],{"class":580},[34,210799,36394],{"class":50},[34,210801,210802,210804,210806,210808,210810,210812,210814],{"class":36,"line":839},[34,210803,153683],{"class":181},[34,210805,18401],{"class":580},[34,210807,18845],{"class":50},[34,210809,131598],{"class":580},[34,210811,170982],{"class":54},[34,210813,31580],{"class":181},[34,210815,210816],{"class":54},"\"Minor\"\n",[34,210818,210819],{"class":36,"line":854},[34,210820,33222],{"class":580},[34,210822,210823],{"class":36,"line":860},[34,210824,62],{"emptyLinePlaceholder":61},[34,210826,210827],{"class":36,"line":865},[34,210828,210829],{"class":40},"# Splat operator (variable arguments)\n",[34,210831,210832,210834,210836,210838,210840],{"class":36,"line":870},[34,210833,49400],{"class":580},[34,210835,65446],{"class":47},[34,210837,1607],{"class":181},[34,210839,4289],{"class":580},[34,210841,210842],{"class":181},"numbers)\n",[34,210844,210845,210848,210850,210852,210854,210856,210858],{"class":36,"line":876},[34,210846,210847],{"class":181},"  numbers.",[34,210849,8345],{"class":47},[34,210851,1607],{"class":181},[34,210853,2773],{"class":50},[34,210855,1798],{"class":181},[34,210857,208392],{"class":50},[34,210859,3372],{"class":181},[34,210861,210862],{"class":36,"line":885},[34,210863,33222],{"class":580},[34,210865,210866],{"class":36,"line":895},[34,210867,62],{"emptyLinePlaceholder":61},[34,210869,210870,210872,210874,210876,210878,210880,210882,210884,210886,210888,210891],{"class":36,"line":904},[34,210871,11135],{"class":47},[34,210873,1607],{"class":181},[34,210875,8318],{"class":50},[34,210877,1798],{"class":181},[34,210879,8324],{"class":50},[34,210881,1798],{"class":181},[34,210883,3162],{"class":50},[34,210885,1798],{"class":181},[34,210887,18010],{"class":50},[34,210889,210890],{"class":181},")            ",[34,210892,191781],{"class":40},[388,210894,34089],{},{"title":30,"searchDepth":44,"depth":44,"links":210896},[210897],{"id":36913,"depth":44,"text":36908},"Methods in Ruby.",{},"/ruby/methods",{"title":36908,"description":210898},"ruby/methods",[207723,10359,46870,208078],"1izG4hwhy8Btahg6OP3rGDTs845zEaTJtxJnzGEhp60",{"id":210906,"title":88402,"body":210907,"date":402,"description":211081,"extension":404,"meta":211082,"navigation":61,"order":700,"path":211083,"seo":211084,"stem":211085,"subject":207723,"tags":211086,"__hash__":211087},"topics/ruby/modules.md",{"type":8,"value":210908,"toc":211078},[210909,210911,211075],[11,210910,88402],{"id":88401},[25,210912,210914],{"className":207721,"code":210913,"language":207723,"meta":30,"style":30},"# Module definition (namespace + mixins)\nmodule Greetable\n  def greet\n    \"Hello from #{self.class}\"\n  end\nend\n\nclass Person\n  include Greetable        # Include module (instance methods)\nend\n\nmodule Math\n  PI = 3.14159\n  \n  def self.circle_area(radius)\n    PI * radius ** 2\n  end\nend\n\nMath::PI                   # 3.14159\nMath.circle_area(5)        # 78.53975\n",[20,210915,210916,210921,210928,210934,210952,210956,210960,210964,210970,210981,210985,210989,210996,211005,211009,211019,211033,211037,211041,211045,211057],{"__ignoreMap":30},[34,210917,210918],{"class":36,"line":37},[34,210919,210920],{"class":40},"# Module definition (namespace + mixins)\n",[34,210922,210923,210925],{"class":36,"line":44},[34,210924,46312],{"class":580},[34,210926,210927],{"class":47}," Greetable\n",[34,210929,210930,210932],{"class":36,"line":58},[34,210931,208617],{"class":580},[34,210933,90087],{"class":47},[34,210935,210936,210939,210941,210944,210946,210948,210950],{"class":36,"line":65},[34,210937,210938],{"class":54},"    \"Hello from ",[34,210940,208680],{"class":54},[34,210942,210943],{"class":50},"self",[34,210945,151],{"class":54},[34,210947,30060],{"class":47},[34,210949,34378],{"class":54},[34,210951,11320],{"class":54},[34,210953,210954],{"class":36,"line":71},[34,210955,61554],{"class":580},[34,210957,210958],{"class":36,"line":77},[34,210959,33222],{"class":580},[34,210961,210962],{"class":36,"line":82},[34,210963,62],{"emptyLinePlaceholder":61},[34,210965,210966,210968],{"class":36,"line":88},[34,210967,30060],{"class":580},[34,210969,34124],{"class":47},[34,210971,210972,210975,210978],{"class":36,"line":242},[34,210973,210974],{"class":580},"  include",[34,210976,210977],{"class":50}," Greetable",[34,210979,210980],{"class":40},"        # Include module (instance methods)\n",[34,210982,210983],{"class":36,"line":250},[34,210984,33222],{"class":580},[34,210986,210987],{"class":36,"line":263},[34,210988,62],{"emptyLinePlaceholder":61},[34,210990,210991,210993],{"class":36,"line":275},[34,210992,46312],{"class":580},[34,210994,210995],{"class":47}," Math\n",[34,210997,210998,211001,211003],{"class":36,"line":700},[34,210999,211000],{"class":50},"  PI",[34,211002,683],{"class":580},[34,211004,87362],{"class":50},[34,211006,211007],{"class":36,"line":706},[34,211008,827],{"class":181},[34,211010,211011,211013,211016],{"class":36,"line":715},[34,211012,208617],{"class":580},[34,211014,211015],{"class":47}," self.circle_area",[34,211017,211018],{"class":181},"(radius)\n",[34,211020,211021,211024,211026,211029,211031],{"class":36,"line":725},[34,211022,211023],{"class":50},"    PI",[34,211025,18083],{"class":580},[34,211027,211028],{"class":181}," radius ",[34,211030,23469],{"class":580},[34,211032,9930],{"class":50},[34,211034,211035],{"class":36,"line":734},[34,211036,61554],{"class":580},[34,211038,211039],{"class":36,"line":742},[34,211040,33222],{"class":580},[34,211042,211043],{"class":36,"line":748},[34,211044,62],{"emptyLinePlaceholder":61},[34,211046,211047,211050,211052,211054],{"class":36,"line":754},[34,211048,211049],{"class":50},"Math",[34,211051,30110],{"class":181},[34,211053,195503],{"class":50},[34,211055,211056],{"class":40},"                   # 3.14159\n",[34,211058,211059,211061,211063,211066,211068,211070,211072],{"class":36,"line":759},[34,211060,211049],{"class":50},[34,211062,151],{"class":181},[34,211064,211065],{"class":47},"circle_area",[34,211067,1607],{"class":181},[34,211069,2778],{"class":50},[34,211071,103864],{"class":181},[34,211073,211074],{"class":40},"# 78.53975\n",[388,211076,211077],{},"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 .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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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":30,"searchDepth":44,"depth":44,"links":211079},[211080],{"id":88401,"depth":44,"text":88402},"Modules in Ruby.",{},"/ruby/modules",{"title":88402,"description":211081},"ruby/modules",[207723,10359,46870,208078],"M9KlcpxLz96mcUSC1nk0UTUWt_6UHs9JED2Bry_M4p0",{"id":211089,"title":211090,"body":211091,"date":402,"description":211318,"extension":404,"meta":211319,"navigation":61,"order":71,"path":211320,"seo":211321,"stem":211322,"subject":207723,"tags":211323,"__hash__":211324},"topics/ruby/numbers.md","Numbers",{"type":8,"value":211092,"toc":211315},[211093,211095,211312],[11,211094,211090],{"id":33330},[25,211096,211098],{"className":207721,"code":211097,"language":207723,"meta":30,"style":30},"# Integer operations\nsum = 10 + 5               # Addition: 15\ndiff = 10 - 5              # Subtraction: 5\nprod = 10 * 5              # Multiplication: 50\nquot = 10 / 3              # Integer division: 3\ndiv = 10.0 / 3             # Float division: 3.333...\nmod = 10 % 3               # Modulo: 1\npower = 2 ** 3             # Exponentiation: 8\n\n# Float operations\npi = 3.14159\npi.round(2)                # 3.14\npi.ceil                    # 4\npi.floor                   # 3\n\n# Useful methods\n42.even?                   # true\n42.odd?                    # false\n-5.abs                     # 5\n",[20,211099,211100,211105,211120,211135,211151,211167,211183,211199,211215,211219,211224,211233,211249,211258,211267,211271,211276,211287,211299],{"__ignoreMap":30},[34,211101,211102],{"class":36,"line":37},[34,211103,211104],{"class":40},"# Integer operations\n",[34,211106,211107,211109,211111,211113,211115,211117],{"class":36,"line":44},[34,211108,11135],{"class":675},[34,211110,683],{"class":580},[34,211112,13123],{"class":50},[34,211114,11537],{"class":580},[34,211116,11144],{"class":50},[34,211118,211119],{"class":40},"               # Addition: 15\n",[34,211121,211122,211124,211126,211128,211130,211132],{"class":36,"line":58},[34,211123,172032],{"class":675},[34,211125,683],{"class":580},[34,211127,13123],{"class":50},[34,211129,19423],{"class":580},[34,211131,11144],{"class":50},[34,211133,211134],{"class":40},"              # Subtraction: 5\n",[34,211136,211137,211140,211142,211144,211146,211148],{"class":36,"line":65},[34,211138,211139],{"class":675},"prod",[34,211141,683],{"class":580},[34,211143,13123],{"class":50},[34,211145,18083],{"class":580},[34,211147,11144],{"class":50},[34,211149,211150],{"class":40},"              # Multiplication: 50\n",[34,211152,211153,211156,211158,211160,211162,211164],{"class":36,"line":71},[34,211154,211155],{"class":675},"quot",[34,211157,683],{"class":580},[34,211159,13123],{"class":50},[34,211161,22767],{"class":580},[34,211163,11147],{"class":50},[34,211165,211166],{"class":40},"              # Integer division: 3\n",[34,211168,211169,211171,211173,211176,211178,211180],{"class":36,"line":77},[34,211170,1240],{"class":675},[34,211172,683],{"class":580},[34,211174,211175],{"class":50}," 10.0",[34,211177,22767],{"class":580},[34,211179,11147],{"class":50},[34,211181,211182],{"class":40},"             # Float division: 3.333...\n",[34,211184,211185,211188,211190,211192,211194,211196],{"class":36,"line":82},[34,211186,211187],{"class":675},"mod",[34,211189,683],{"class":580},[34,211191,13123],{"class":50},[34,211193,22788],{"class":580},[34,211195,11147],{"class":50},[34,211197,211198],{"class":40},"               # Modulo: 1\n",[34,211200,211201,211204,211206,211208,211210,211212],{"class":36,"line":88},[34,211202,211203],{"class":675},"power",[34,211205,683],{"class":580},[34,211207,4292],{"class":50},[34,211209,23439],{"class":580},[34,211211,11147],{"class":50},[34,211213,211214],{"class":40},"             # Exponentiation: 8\n",[34,211216,211217],{"class":36,"line":242},[34,211218,62],{"emptyLinePlaceholder":61},[34,211220,211221],{"class":36,"line":250},[34,211222,211223],{"class":40},"# Float operations\n",[34,211225,211226,211229,211231],{"class":36,"line":263},[34,211227,211228],{"class":675},"pi",[34,211230,683],{"class":580},[34,211232,87362],{"class":50},[34,211234,211235,211238,211240,211242,211244,211247],{"class":36,"line":275},[34,211236,211237],{"class":181},"pi.",[34,211239,194786],{"class":47},[34,211241,1607],{"class":181},[34,211243,8324],{"class":50},[34,211245,211246],{"class":181},")                ",[34,211248,195435],{"class":40},[34,211250,211251,211253,211255],{"class":36,"line":700},[34,211252,211237],{"class":181},[34,211254,24180],{"class":47},[34,211256,211257],{"class":40},"                    # 4\n",[34,211259,211260,211262,211264],{"class":36,"line":706},[34,211261,211237],{"class":181},[34,211263,13920],{"class":47},[34,211265,211266],{"class":40},"                   # 3\n",[34,211268,211269],{"class":36,"line":715},[34,211270,62],{"emptyLinePlaceholder":61},[34,211272,211273],{"class":36,"line":725},[34,211274,211275],{"class":40},"# Useful methods\n",[34,211277,211278,211280,211282,211284],{"class":36,"line":734},[34,211279,8257],{"class":50},[34,211281,151],{"class":181},[34,211283,208262],{"class":47},[34,211285,211286],{"class":40},"                   # true\n",[34,211288,211289,211291,211293,211296],{"class":36,"line":742},[34,211290,8257],{"class":50},[34,211292,151],{"class":181},[34,211294,211295],{"class":47},"odd?",[34,211297,211298],{"class":40},"                    # false\n",[34,211300,211301,211303,211305,211307,211309],{"class":36,"line":748},[34,211302,22062],{"class":580},[34,211304,2778],{"class":50},[34,211306,151],{"class":181},[34,211308,24079],{"class":47},[34,211310,211311],{"class":40},"                     # 5\n",[388,211313,211314],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":211316},[211317],{"id":33330,"depth":44,"text":211090},"Numbers in Ruby.",{},"/ruby/numbers",{"title":211090,"description":211318},"ruby/numbers",[207723,10359,46870,208078],"xopcnXgEWFVSj98yeUaJgWAn9M3Jq0hSOkuEgGettf4",{"id":211326,"title":211327,"body":211328,"date":2633,"description":211407,"extension":404,"meta":211408,"navigation":61,"order":37,"path":211409,"seo":211410,"stem":211411,"subject":207723,"tags":211412,"__hash__":211413},"topics/ruby/overview.md","Ruby",{"type":8,"value":211329,"toc":211405},[211330],[309,211331,211332,211336,211341,211346,211350,211354,211358,211362,211366,211370,211374,211378,211382,211386,211390,211395,211401],{},[312,211333,211334],{},[145,211335,22151],{"href":210314},[312,211337,211338],{},[145,211339,12166],{"href":211340},"/ruby/variables",[312,211342,211343],{},[145,211344,23101],{"href":211345},"/ruby/strings",[312,211347,211348],{},[145,211349,211090],{"href":211320},[312,211351,211352],{},[145,211353,10061],{"href":208074},[312,211355,211356],{},[145,211357,203072],{"href":210196},[312,211359,211360],{},[145,211361,18818],{"href":209380},[312,211363,211364],{},[145,211365,11769],{"href":210583},[312,211367,211368],{},[145,211369,36908],{"href":210900},[312,211371,211372],{},[145,211373,208082],{"href":208519},[312,211375,211376],{},[145,211377,208526],{"href":208887},[312,211379,211380],{},[145,211381,88402],{"href":211083},[312,211383,211384],{},[145,211385,21267],{"href":209890},[312,211387,211388],{},[145,211389,30787],{"href":209608},[312,211391,211392],{},[145,211393,110507],{"href":211394},"/ruby/regular-expressions",[312,211396,211397],{},[145,211398,211400],{"href":211399},"/ruby/symbols","Symbols",[312,211402,211403],{},[145,211404,141279],{"href":209118},{"title":30,"searchDepth":44,"depth":44,"links":211406},[],"Essential Ruby syntax, data structures, and common operations for scripting and web development.",{},"/ruby/overview",{"title":211327,"description":211407},"ruby/overview",[207723,10359,46870,208078],"fYyKlRiMftZabJh9UPIWDWeh4ZRa2Dz_y64BJAsWhDk",{"id":211415,"title":110507,"body":211416,"date":402,"description":211654,"extension":404,"meta":211655,"navigation":61,"order":725,"path":211394,"seo":211656,"stem":211657,"subject":207723,"tags":211658,"__hash__":211659},"topics/ruby/regular-expressions.md",{"type":8,"value":211417,"toc":211651},[211418,211420,211648],[11,211419,110507],{"id":111080},[25,211421,211423],{"className":207721,"code":211422,"language":207723,"meta":30,"style":30},"# Pattern matching\ntext = \"Email: user@example.com\"\ntext =~ /\\w+@\\w+\\.\\w+/     # Returns match position\n\n# Match method\nmatch = text.match(/(\\w+)@(\\w+\\.\\w+)/)\nmatch[0]                   # \"user@example.com\" (full match)\nmatch[1]                   # \"user\" (first group)\nmatch[2]                   # \"example.com\" (second group)\n\n# Scan (find all matches)\nnumbers = \"Call 123-456-7890 or 098-765-4321\"\nnumbers.scan(/\\d{3}-\\d{3}-\\d{4}/)  # [\"123-456-7890\", \"098-765-4321\"]\n\n# Substitution\ntext = \"hello world\"\ntext.sub('world', 'Ruby')  # \"hello Ruby\" (first match)\ntext.gsub('l', 'L')        # \"heLLo worLd\" (all matches)\n",[20,211424,211425,211430,211439,211465,211469,211474,211505,211517,211528,211539,211543,211548,211557,211587,211591,211596,211605,211626],{"__ignoreMap":30},[34,211426,211427],{"class":36,"line":37},[34,211428,211429],{"class":40},"# Pattern matching\n",[34,211431,211432,211434,211436],{"class":36,"line":44},[34,211433,780],{"class":675},[34,211435,683],{"class":580},[34,211437,211438],{"class":54}," \"Email: user@example.com\"\n",[34,211440,211441,211443,211445,211447,211449,211452,211454,211456,211459,211462],{"class":36,"line":58},[34,211442,780],{"class":675},[34,211444,10964],{"class":580},[34,211446,22767],{"class":83922},[34,211448,177364],{"class":177360},[34,211450,211451],{"class":83922},"+@",[34,211453,177364],{"class":177360},[34,211455,2940],{"class":83922},[34,211457,211458],{"class":177360},"\\.\\w",[34,211460,211461],{"class":83922},"+/",[34,211463,211464],{"class":40},"     # Returns match position\n",[34,211466,211467],{"class":36,"line":65},[34,211468,62],{"emptyLinePlaceholder":61},[34,211470,211471],{"class":36,"line":71},[34,211472,211473],{"class":40},"# Match method\n",[34,211475,211476,211478,211480,211482,211484,211486,211489,211491,211494,211496,211498,211500,211503],{"class":36,"line":77},[34,211477,193892],{"class":675},[34,211479,683],{"class":580},[34,211481,202707],{"class":181},[34,211483,193892],{"class":47},[34,211485,1607],{"class":181},[34,211487,211488],{"class":83922},"/(",[34,211490,177364],{"class":177360},[34,211492,211493],{"class":83922},"+)@(",[34,211495,177364],{"class":177360},[34,211497,2940],{"class":83922},[34,211499,211458],{"class":177360},[34,211501,211502],{"class":83922},"+)/",[34,211504,3372],{"class":181},[34,211506,211507,211510,211512,211514],{"class":36,"line":82},[34,211508,211509],{"class":181},"match[",[34,211511,2773],{"class":50},[34,211513,134548],{"class":181},[34,211515,211516],{"class":40},"# \"user@example.com\" (full match)\n",[34,211518,211519,211521,211523,211525],{"class":36,"line":88},[34,211520,211509],{"class":181},[34,211522,8318],{"class":50},[34,211524,134548],{"class":181},[34,211526,211527],{"class":40},"# \"user\" (first group)\n",[34,211529,211530,211532,211534,211536],{"class":36,"line":242},[34,211531,211509],{"class":181},[34,211533,8324],{"class":50},[34,211535,134548],{"class":181},[34,211537,211538],{"class":40},"# \"example.com\" (second group)\n",[34,211540,211541],{"class":36,"line":250},[34,211542,62],{"emptyLinePlaceholder":61},[34,211544,211545],{"class":36,"line":263},[34,211546,211547],{"class":40},"# Scan (find all matches)\n",[34,211549,211550,211552,211554],{"class":36,"line":275},[34,211551,33330],{"class":675},[34,211553,683],{"class":580},[34,211555,211556],{"class":54}," \"Call 123-456-7890 or 098-765-4321\"\n",[34,211558,211559,211561,211564,211566,211568,211570,211573,211575,211577,211579,211582,211584],{"class":36,"line":700},[34,211560,36458],{"class":181},[34,211562,211563],{"class":47},"scan",[34,211565,1607],{"class":181},[34,211567,12734],{"class":83922},[34,211569,177150],{"class":177360},[34,211571,211572],{"class":83922},"{3}-",[34,211574,177150],{"class":177360},[34,211576,211572],{"class":83922},[34,211578,177150],{"class":177360},[34,211580,211581],{"class":83922},"{4}/",[34,211583,76021],{"class":181},[34,211585,211586],{"class":40},"# [\"123-456-7890\", \"098-765-4321\"]\n",[34,211588,211589],{"class":36,"line":706},[34,211590,62],{"emptyLinePlaceholder":61},[34,211592,211593],{"class":36,"line":715},[34,211594,211595],{"class":40},"# Substitution\n",[34,211597,211598,211600,211602],{"class":36,"line":725},[34,211599,780],{"class":675},[34,211601,683],{"class":580},[34,211603,211604],{"class":54}," \"hello world\"\n",[34,211606,211607,211609,211611,211613,211616,211618,211621,211623],{"class":36,"line":734},[34,211608,37850],{"class":181},[34,211610,119454],{"class":50},[34,211612,1607],{"class":181},[34,211614,211615],{"class":54},"'world'",[34,211617,1798],{"class":181},[34,211619,211620],{"class":54},"'Ruby'",[34,211622,76021],{"class":181},[34,211624,211625],{"class":40},"# \"hello Ruby\" (first match)\n",[34,211627,211628,211630,211633,211635,211638,211640,211643,211645],{"class":36,"line":742},[34,211629,37850],{"class":181},[34,211631,211632],{"class":50},"gsub",[34,211634,1607],{"class":181},[34,211636,211637],{"class":54},"'l'",[34,211639,1798],{"class":181},[34,211641,211642],{"class":54},"'L'",[34,211644,103864],{"class":181},[34,211646,211647],{"class":40},"# \"heLLo worLd\" (all matches)\n",[388,211649,211650],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sA_wV, html code.shiki .sA_wV{--shiki-default:#032F62;--shiki-dark:#DBEDFF}html pre.shiki code .snhLl, html code.shiki .snhLl{--shiki-default:#22863A;--shiki-default-font-weight:bold;--shiki-dark:#85E89D;--shiki-dark-font-weight:bold}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":211652},[211653],{"id":111080,"depth":44,"text":110507},"Regular Expressions in Ruby.",{},{"title":110507,"description":211654},"ruby/regular-expressions",[207723,10359,46870,208078],"HpwO-koxSYXL5ZWstgzbdTqvjCCR7fWKosYgbYEmjYg",{"id":211661,"title":23101,"body":211662,"date":402,"description":211840,"extension":404,"meta":211841,"navigation":61,"order":65,"path":211345,"seo":211842,"stem":211843,"subject":207723,"tags":211844,"__hash__":211845},"topics/ruby/strings.md",{"type":8,"value":211663,"toc":211837},[211664,211666,211834],[11,211665,23101],{"id":24353},[25,211667,211669],{"className":207721,"code":211668,"language":207723,"meta":30,"style":30},"# String creation\nsingle = 'Hello'           # Single quotes (literal)\ndouble = \"World\"           # Double quotes (interpolation)\nname = \"Alice\"\ngreeting = \"Hello, #{name}!\"  # String interpolation\n\n# Common string methods\ntext = \"hello world\"\ntext.upcase                # \"HELLO WORLD\"\ntext.capitalize            # \"Hello world\"\ntext.reverse               # \"dlrow olleh\"\ntext.split                 # [\"hello\", \"world\"]\ntext.include?(\"world\")     # true\ntext.length                # 11\n\n# Multiline strings\nmultiline = \u003C\u003C~TEXT\n  This is a\n  multiline string\nTEXT\n",[20,211670,211671,211676,211689,211700,211708,211723,211727,211732,211740,211749,211759,211768,211777,211792,211801,211805,211810,211820,211825,211830],{"__ignoreMap":30},[34,211672,211673],{"class":36,"line":37},[34,211674,211675],{"class":40},"# String creation\n",[34,211677,211678,211681,211683,211686],{"class":36,"line":44},[34,211679,211680],{"class":675},"single",[34,211682,683],{"class":580},[34,211684,211685],{"class":54}," 'Hello'",[34,211687,211688],{"class":40},"           # Single quotes (literal)\n",[34,211690,211691,211693,211695,211697],{"class":36,"line":58},[34,211692,25097],{"class":675},[34,211694,683],{"class":580},[34,211696,13876],{"class":54},[34,211698,211699],{"class":40},"           # Double quotes (interpolation)\n",[34,211701,211702,211704,211706],{"class":36,"line":65},[34,211703,178],{"class":675},[34,211705,683],{"class":580},[34,211707,142978],{"class":54},[34,211709,211710,211712,211714,211716,211718,211720],{"class":36,"line":71},[34,211711,13861],{"class":675},[34,211713,683],{"class":580},[34,211715,11020],{"class":54},[34,211717,210269],{"class":54},[34,211719,37073],{"class":54},[34,211721,211722],{"class":40},"  # String interpolation\n",[34,211724,211725],{"class":36,"line":77},[34,211726,62],{"emptyLinePlaceholder":61},[34,211728,211729],{"class":36,"line":82},[34,211730,211731],{"class":40},"# Common string methods\n",[34,211733,211734,211736,211738],{"class":36,"line":88},[34,211735,780],{"class":675},[34,211737,683],{"class":580},[34,211739,211604],{"class":54},[34,211741,211742,211744,211746],{"class":36,"line":242},[34,211743,37850],{"class":181},[34,211745,209102],{"class":47},[34,211747,211748],{"class":40},"                # \"HELLO WORLD\"\n",[34,211750,211751,211753,211756],{"class":36,"line":250},[34,211752,37850],{"class":181},[34,211754,211755],{"class":47},"capitalize",[34,211757,211758],{"class":40},"            # \"Hello world\"\n",[34,211760,211761,211763,211765],{"class":36,"line":263},[34,211762,37850],{"class":181},[34,211764,68954],{"class":47},[34,211766,211767],{"class":40},"               # \"dlrow olleh\"\n",[34,211769,211770,211772,211774],{"class":36,"line":275},[34,211771,37850],{"class":181},[34,211773,124354],{"class":47},[34,211775,211776],{"class":40},"                 # [\"hello\", \"world\"]\n",[34,211778,211779,211781,211783,211785,211788,211790],{"class":36,"line":700},[34,211780,37850],{"class":181},[34,211782,207967],{"class":47},[34,211784,1607],{"class":181},[34,211786,211787],{"class":54},"\"world\"",[34,211789,104237],{"class":181},[34,211791,207976],{"class":40},[34,211793,211794,211796,211798],{"class":36,"line":706},[34,211795,37850],{"class":181},[34,211797,2908],{"class":47},[34,211799,211800],{"class":40},"                # 11\n",[34,211802,211803],{"class":36,"line":715},[34,211804,62],{"emptyLinePlaceholder":61},[34,211806,211807],{"class":36,"line":725},[34,211808,211809],{"class":40},"# Multiline strings\n",[34,211811,211812,211815,211817],{"class":36,"line":734},[34,211813,211814],{"class":675},"multiline",[34,211816,683],{"class":580},[34,211818,211819],{"class":54}," \u003C\u003C~TEXT\n",[34,211821,211822],{"class":36,"line":742},[34,211823,211824],{"class":54},"  This is a\n",[34,211826,211827],{"class":36,"line":748},[34,211828,211829],{"class":54},"  multiline string\n",[34,211831,211832],{"class":36,"line":754},[34,211833,28464],{"class":54},[388,211835,211836],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":211838},[211839],{"id":24353,"depth":44,"text":23101},"Strings in Ruby.",{},{"title":23101,"description":211840},"ruby/strings",[207723,10359,46870,208078],"i4n1DCPm25_O4KLMy0ERguKDoShc4OYuS1JjKWmw3Sc",{"id":211847,"title":211400,"body":211848,"date":402,"description":211983,"extension":404,"meta":211984,"navigation":61,"order":734,"path":211399,"seo":211985,"stem":211986,"subject":207723,"tags":211987,"__hash__":211988},"topics/ruby/symbols.md",{"type":8,"value":211849,"toc":211980},[211850,211853,211977],[11,211851,211400],{"id":211852},"symbols",[25,211854,211856],{"className":207721,"code":211855,"language":207723,"meta":30,"style":30},"# Symbols (immutable, reusable identifiers)\nstatus = :pending          # More memory efficient than strings\nstate = :active\n\n# Common use in hashes\noptions = {\n  color: 'red',            # :color symbol as key\n  size: :large             # :large symbol as value\n}\n\n# Convert between strings and symbols\n:hello.to_s                # \"hello\"\n\"hello\".to_sym             # :hello\n\"hello\".intern             # :hello (alternative)\n",[20,211857,211858,211863,211875,211884,211888,211893,211902,211916,211927,211931,211935,211940,211953,211965],{"__ignoreMap":30},[34,211859,211860],{"class":36,"line":37},[34,211861,211862],{"class":40},"# Symbols (immutable, reusable identifiers)\n",[34,211864,211865,211867,211869,211872],{"class":36,"line":44},[34,211866,75167],{"class":675},[34,211868,683],{"class":580},[34,211870,211871],{"class":50}," :pending",[34,211873,211874],{"class":40},"          # More memory efficient than strings\n",[34,211876,211877,211879,211881],{"class":36,"line":58},[34,211878,29410],{"class":675},[34,211880,683],{"class":580},[34,211882,211883],{"class":50}," :active\n",[34,211885,211886],{"class":36,"line":65},[34,211887,62],{"emptyLinePlaceholder":61},[34,211889,211890],{"class":36,"line":71},[34,211891,211892],{"class":40},"# Common use in hashes\n",[34,211894,211895,211898,211900],{"class":36,"line":77},[34,211896,211897],{"class":675},"options",[34,211899,683],{"class":580},[34,211901,661],{"class":181},[34,211903,211904,211907,211910,211913],{"class":36,"line":82},[34,211905,211906],{"class":50},"  color:",[34,211908,211909],{"class":54}," 'red'",[34,211911,211912],{"class":181},",            ",[34,211914,211915],{"class":40},"# :color symbol as key\n",[34,211917,211918,211921,211924],{"class":36,"line":88},[34,211919,211920],{"class":50},"  size:",[34,211922,211923],{"class":50}," :large",[34,211925,211926],{"class":40},"             # :large symbol as value\n",[34,211928,211929],{"class":36,"line":242},[34,211930,693],{"class":181},[34,211932,211933],{"class":36,"line":250},[34,211934,62],{"emptyLinePlaceholder":61},[34,211936,211937],{"class":36,"line":263},[34,211938,211939],{"class":40},"# Convert between strings and symbols\n",[34,211941,211942,211945,211947,211950],{"class":36,"line":275},[34,211943,211944],{"class":50},":hello",[34,211946,151],{"class":181},[34,211948,211949],{"class":47},"to_s",[34,211951,211952],{"class":40},"                # \"hello\"\n",[34,211954,211955,211957,211959,211962],{"class":36,"line":700},[34,211956,17360],{"class":54},[34,211958,151],{"class":181},[34,211960,211961],{"class":47},"to_sym",[34,211963,211964],{"class":40},"             # :hello\n",[34,211966,211967,211969,211971,211974],{"class":36,"line":706},[34,211968,17360],{"class":54},[34,211970,151],{"class":181},[34,211972,211973],{"class":47},"intern",[34,211975,211976],{"class":40},"             # :hello (alternative)\n",[388,211978,211979],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":211981},[211982],{"id":211852,"depth":44,"text":211400},"Symbols in Ruby.",{},{"title":211400,"description":211983},"ruby/symbols",[207723,10359,46870,208078],"Tx39ctEiN8NlHFJ-fOb5Hn6gImLs63qiKxjcJ8RK998",{"id":211990,"title":12166,"body":211991,"date":402,"description":212132,"extension":404,"meta":212133,"navigation":61,"order":58,"path":211340,"seo":212134,"stem":212135,"subject":207723,"tags":212136,"__hash__":212137},"topics/ruby/variables.md",{"type":8,"value":211992,"toc":212129},[211993,211995,212126],[11,211994,12166],{"id":13314},[25,211996,211998],{"className":207721,"code":211997,"language":207723,"meta":30,"style":30},"# Variable assignment (dynamic typing)\nname = \"Alice\"              # String\nage = 30                    # Integer\nheight = 5.8                # Float\nis_active = true            # Boolean\n\n# Multiple assignment\nx, y, z = 1, 2, 3          # Parallel assignment\na = b = c = 0              # Same value to multiple variables\n\n# Constants (uppercase)\nPI = 3.14159               # Constants should not be reassigned\nMAX_SIZE = 100\n",[20,211999,212000,212005,212016,212027,212039,212051,212055,212059,212079,212098,212102,212107,212118],{"__ignoreMap":30},[34,212001,212002],{"class":36,"line":37},[34,212003,212004],{"class":40},"# Variable assignment (dynamic typing)\n",[34,212006,212007,212009,212011,212013],{"class":36,"line":44},[34,212008,178],{"class":675},[34,212010,683],{"class":580},[34,212012,25138],{"class":54},[34,212014,212015],{"class":40},"              # String\n",[34,212017,212018,212020,212022,212024],{"class":36,"line":58},[34,212019,13337],{"class":675},[34,212021,683],{"class":580},[34,212023,30458],{"class":50},[34,212025,212026],{"class":40},"                    # Integer\n",[34,212028,212029,212031,212033,212036],{"class":36,"line":65},[34,212030,41299],{"class":675},[34,212032,683],{"class":580},[34,212034,212035],{"class":50}," 5.8",[34,212037,212038],{"class":40},"                # Float\n",[34,212040,212041,212044,212046,212048],{"class":36,"line":71},[34,212042,212043],{"class":675},"is_active",[34,212045,683],{"class":580},[34,212047,32945],{"class":50},[34,212049,212050],{"class":40},"            # Boolean\n",[34,212052,212053],{"class":36,"line":77},[34,212054,62],{"emptyLinePlaceholder":61},[34,212056,212057],{"class":36,"line":82},[34,212058,192835],{"class":40},[34,212060,212061,212064,212066,212068,212070,212072,212074,212076],{"class":36,"line":88},[34,212062,212063],{"class":181},"x, y, z ",[34,212065,1301],{"class":580},[34,212067,3567],{"class":50},[34,212069,1798],{"class":181},[34,212071,8324],{"class":50},[34,212073,1798],{"class":181},[34,212075,3162],{"class":50},[34,212077,212078],{"class":40},"          # Parallel assignment\n",[34,212080,212081,212083,212085,212087,212089,212091,212093,212095],{"class":36,"line":242},[34,212082,145],{"class":675},[34,212084,683],{"class":580},[34,212086,22721],{"class":181},[34,212088,1301],{"class":580},[34,212090,4382],{"class":181},[34,212092,1301],{"class":580},[34,212094,8070],{"class":50},[34,212096,212097],{"class":40},"              # Same value to multiple variables\n",[34,212099,212100],{"class":36,"line":250},[34,212101,62],{"emptyLinePlaceholder":61},[34,212103,212104],{"class":36,"line":263},[34,212105,212106],{"class":40},"# Constants (uppercase)\n",[34,212108,212109,212111,212113,212115],{"class":36,"line":275},[34,212110,195503],{"class":50},[34,212112,683],{"class":580},[34,212114,23604],{"class":50},[34,212116,212117],{"class":40},"               # Constants should not be reassigned\n",[34,212119,212120,212122,212124],{"class":36,"line":700},[34,212121,195493],{"class":50},[34,212123,683],{"class":580},[34,212125,195498],{"class":50},[388,212127,212128],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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":30,"searchDepth":44,"depth":44,"links":212130},[212131],{"id":13314,"depth":44,"text":12166},"Variables in Ruby.",{},{"title":12166,"description":212132},"ruby/variables",[207723,10359,46870,208078],"V1Gpc1GWHsmrXH29rEsX5ywPBYIbMjqZCL5rFmmYBSA",{"id":212139,"title":212140,"body":212141,"date":402,"description":212401,"extension":404,"meta":212402,"navigation":61,"order":725,"path":212403,"seo":212404,"stem":212405,"subject":161277,"tags":212406,"__hash__":212408},"topics/rust/common-macros.md","Common Macros",{"type":8,"value":212142,"toc":212398},[212143,212146,212395],[11,212144,212140],{"id":212145},"common-macros",[25,212147,212150],{"className":212148,"code":212149,"language":161277,"meta":30,"style":30},"language-rust shiki shiki-themes github-light github-dark","// Printing\nprintln!(\"Hello, {}!\", name);   // Print with newline\nprint!(\"No newline\");           // Print without newline\neprintln!(\"Error!\");            // Print to stderr\ndbg!(expression);               // Debug print\n\n// Formatting\nformat!(\"Hello, {}!\", name);    // Return String\n\n// Vector creation\nvec![1, 2, 3];\n\n// Assertions\nassert!(condition);\nassert_eq!(a, b);\nassert_ne!(a, b);\n\n// Panic\npanic!(\"Something went wrong!\");\ntodo!();                        // Placeholder\nunimplemented!();               // Not implemented\nunreachable!();                 // Should never reach\n\n// Derive macros\n#[derive(Debug, Clone, PartialEq, Eq, Hash)]\nstruct MyStruct { }\n",[20,212151,212152,212157,212172,212187,212202,212213,212217,212222,212237,212241,212246,212265,212269,212273,212280,212288,212295,212299,212304,212316,212327,212337,212348,212352,212357,212386],{"__ignoreMap":30},[34,212153,212154],{"class":36,"line":37},[34,212155,212156],{"class":40},"// Printing\n",[34,212158,212159,212162,212164,212166,212169],{"class":36,"line":44},[34,212160,212161],{"class":47},"println!",[34,212163,1607],{"class":181},[34,212165,192911],{"class":54},[34,212167,212168],{"class":181},", name);   ",[34,212170,212171],{"class":40},"// Print with newline\n",[34,212173,212174,212177,212179,212182,212184],{"class":36,"line":58},[34,212175,212176],{"class":47},"print!",[34,212178,1607],{"class":181},[34,212180,212181],{"class":54},"\"No newline\"",[34,212183,36475],{"class":181},[34,212185,212186],{"class":40},"// Print without newline\n",[34,212188,212189,212192,212194,212197,212199],{"class":36,"line":65},[34,212190,212191],{"class":47},"eprintln!",[34,212193,1607],{"class":181},[34,212195,212196],{"class":54},"\"Error!\"",[34,212198,38697],{"class":181},[34,212200,212201],{"class":40},"// Print to stderr\n",[34,212203,212204,212207,212210],{"class":36,"line":71},[34,212205,212206],{"class":47},"dbg!",[34,212208,212209],{"class":181},"(expression);               ",[34,212211,212212],{"class":40},"// Debug print\n",[34,212214,212215],{"class":36,"line":77},[34,212216,62],{"emptyLinePlaceholder":61},[34,212218,212219],{"class":36,"line":82},[34,212220,212221],{"class":40},"// Formatting\n",[34,212223,212224,212227,212229,212231,212234],{"class":36,"line":88},[34,212225,212226],{"class":47},"format!",[34,212228,1607],{"class":181},[34,212230,192911],{"class":54},[34,212232,212233],{"class":181},", name);    ",[34,212235,212236],{"class":40},"// Return String\n",[34,212238,212239],{"class":36,"line":242},[34,212240,62],{"emptyLinePlaceholder":61},[34,212242,212243],{"class":36,"line":250},[34,212244,212245],{"class":40},"// Vector creation\n",[34,212247,212248,212251,212253,212255,212257,212259,212261,212263],{"class":36,"line":263},[34,212249,212250],{"class":47},"vec!",[34,212252,10260],{"class":181},[34,212254,8318],{"class":50},[34,212256,1798],{"class":181},[34,212258,8324],{"class":50},[34,212260,1798],{"class":181},[34,212262,3162],{"class":50},[34,212264,3415],{"class":181},[34,212266,212267],{"class":36,"line":275},[34,212268,62],{"emptyLinePlaceholder":61},[34,212270,212271],{"class":36,"line":700},[34,212272,172334],{"class":40},[34,212274,212275,212278],{"class":36,"line":706},[34,212276,212277],{"class":47},"assert!",[34,212279,71076],{"class":181},[34,212281,212282,212285],{"class":36,"line":715},[34,212283,212284],{"class":47},"assert_eq!",[34,212286,212287],{"class":181},"(a, b);\n",[34,212289,212290,212293],{"class":36,"line":725},[34,212291,212292],{"class":47},"assert_ne!",[34,212294,212287],{"class":181},[34,212296,212297],{"class":36,"line":734},[34,212298,62],{"emptyLinePlaceholder":61},[34,212300,212301],{"class":36,"line":742},[34,212302,212303],{"class":40},"// Panic\n",[34,212305,212306,212309,212311,212314],{"class":36,"line":748},[34,212307,212308],{"class":47},"panic!",[34,212310,1607],{"class":181},[34,212312,212313],{"class":54},"\"Something went wrong!\"",[34,212315,1586],{"class":181},[34,212317,212318,212321,212324],{"class":36,"line":754},[34,212319,212320],{"class":47},"todo!",[34,212322,212323],{"class":181},"();                        ",[34,212325,212326],{"class":40},"// Placeholder\n",[34,212328,212329,212332,212334],{"class":36,"line":759},[34,212330,212331],{"class":47},"unimplemented!",[34,212333,124304],{"class":181},[34,212335,212336],{"class":40},"// Not implemented\n",[34,212338,212339,212342,212345],{"class":36,"line":771},[34,212340,212341],{"class":47},"unreachable!",[34,212343,212344],{"class":181},"();                 ",[34,212346,212347],{"class":40},"// Should never reach\n",[34,212349,212350],{"class":36,"line":794},[34,212351,62],{"emptyLinePlaceholder":61},[34,212353,212354],{"class":36,"line":824},[34,212355,212356],{"class":40},"// Derive macros\n",[34,212358,212359,212362,212365,212367,212369,212371,212374,212376,212379,212381,212384],{"class":36,"line":830},[34,212360,212361],{"class":181},"#[derive(",[34,212363,212364],{"class":47},"Debug",[34,212366,1798],{"class":181},[34,212368,95257],{"class":47},[34,212370,1798],{"class":181},[34,212372,212373],{"class":47},"PartialEq",[34,212375,1798],{"class":181},[34,212377,212378],{"class":47},"Eq",[34,212380,1798],{"class":181},[34,212382,212383],{"class":47},"Hash",[34,212385,34499],{"class":181},[34,212387,212388,212390,212393],{"class":36,"line":839},[34,212389,21640],{"class":580},[34,212391,212392],{"class":47}," MyStruct",[34,212394,34540],{"class":181},[388,212396,212397],{},"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 .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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":212399},[212400],{"id":212145,"depth":44,"text":212140},"Common Macros in Rust.",{},"/rust/common-macros",{"title":212140,"description":212401},"rust/common-macros",[161277,18137,46870,212407],"memory-safe","QW43XnNLs0E5OV01MAhpC5LTmoLf2pZHXeTyk65yiQE",{"id":212410,"title":18818,"body":212411,"date":402,"description":212718,"extension":404,"meta":212719,"navigation":61,"order":82,"path":212720,"seo":212721,"stem":212722,"subject":161277,"tags":212723,"__hash__":212724},"topics/rust/control-flow.md",{"type":8,"value":212412,"toc":212715},[212413,212415,212713],[11,212414,18818],{"id":18823},[25,212416,212418],{"className":212148,"code":212417,"language":161277,"meta":30,"style":30},"// If/else\nif condition {\n    // ...\n} else if other {\n    // ...\n} else {\n    // ...\n}\n\n// If as expression\nlet result = if condition { \"yes\" } else { \"no\" };\n\n// Loop (infinite)\nloop {\n    break;  // Exit loop\n}\n\n// Loop with return value\nlet result = loop {\n    break 42;\n};\n\n// While loop\nwhile condition {\n    // ...\n}\n\n// For loop\nfor i in 0..5 {          // 0, 1, 2, 3, 4\n    println!(\"{}\", i);\n}\n\nfor i in 0..=5 {         // 0, 1, 2, 3, 4, 5\n    println!(\"{}\", i);\n}\n\nfor (i, val) in v.iter().enumerate() {\n    println!(\"{}: {}\", i, val);\n}\n",[20,212419,212420,212424,212431,212435,212446,212450,212458,212462,212466,212470,212475,212502,212506,212511,212517,212526,212530,212534,212539,212552,212560,212564,212568,212572,212578,212582,212586,212590,212594,212614,212626,212630,212634,212655,212665,212669,212673,212697,212709],{"__ignoreMap":30},[34,212421,212422],{"class":36,"line":37},[34,212423,170961],{"class":40},[34,212425,212426,212428],{"class":36,"line":44},[34,212427,10383],{"class":580},[34,212429,212430],{"class":181}," condition {\n",[34,212432,212433],{"class":36,"line":58},[34,212434,176448],{"class":40},[34,212436,212437,212439,212441,212443],{"class":36,"line":65},[34,212438,2276],{"class":181},[34,212440,18871],{"class":580},[34,212442,18874],{"class":580},[34,212444,212445],{"class":181}," other {\n",[34,212447,212448],{"class":36,"line":71},[34,212449,176448],{"class":40},[34,212451,212452,212454,212456],{"class":36,"line":77},[34,212453,2276],{"class":181},[34,212455,18871],{"class":580},[34,212457,661],{"class":181},[34,212459,212460],{"class":36,"line":82},[34,212461,176448],{"class":40},[34,212463,212464],{"class":36,"line":88},[34,212465,693],{"class":181},[34,212467,212468],{"class":36,"line":242},[34,212469,62],{"emptyLinePlaceholder":61},[34,212471,212472],{"class":36,"line":250},[34,212473,212474],{"class":40},"// If as expression\n",[34,212476,212477,212479,212481,212483,212485,212488,212491,212493,212495,212497,212500],{"class":36,"line":263},[34,212478,8268],{"class":580},[34,212480,20093],{"class":181},[34,212482,1301],{"class":580},[34,212484,18874],{"class":580},[34,212486,212487],{"class":181}," condition { ",[34,212489,212490],{"class":54},"\"yes\"",[34,212492,34865],{"class":181},[34,212494,18871],{"class":580},[34,212496,30251],{"class":181},[34,212498,212499],{"class":54},"\"no\"",[34,212501,33355],{"class":181},[34,212503,212504],{"class":36,"line":275},[34,212505,62],{"emptyLinePlaceholder":61},[34,212507,212508],{"class":36,"line":700},[34,212509,212510],{"class":40},"// Loop (infinite)\n",[34,212512,212513,212515],{"class":36,"line":706},[34,212514,210447],{"class":580},[34,212516,661],{"class":181},[34,212518,212519,212522,212524],{"class":36,"line":715},[34,212520,212521],{"class":580},"    break",[34,212523,124981],{"class":181},[34,212525,175691],{"class":40},[34,212527,212528],{"class":36,"line":725},[34,212529,693],{"class":181},[34,212531,212532],{"class":36,"line":734},[34,212533,62],{"emptyLinePlaceholder":61},[34,212535,212536],{"class":36,"line":742},[34,212537,212538],{"class":40},"// Loop with return value\n",[34,212540,212541,212543,212545,212547,212550],{"class":36,"line":748},[34,212542,8268],{"class":580},[34,212544,20093],{"class":181},[34,212546,1301],{"class":580},[34,212548,212549],{"class":580}," loop",[34,212551,661],{"class":181},[34,212553,212554,212556,212558],{"class":36,"line":754},[34,212555,212521],{"class":580},[34,212557,19987],{"class":50},[34,212559,593],{"class":181},[34,212561,212562],{"class":36,"line":759},[34,212563,17632],{"class":181},[34,212565,212566],{"class":36,"line":771},[34,212567,62],{"emptyLinePlaceholder":61},[34,212569,212570],{"class":36,"line":794},[34,212571,19081],{"class":40},[34,212573,212574,212576],{"class":36,"line":824},[34,212575,12005],{"class":580},[34,212577,212430],{"class":181},[34,212579,212580],{"class":36,"line":830},[34,212581,176448],{"class":40},[34,212583,212584],{"class":36,"line":839},[34,212585,693],{"class":181},[34,212587,212588],{"class":36,"line":854},[34,212589,62],{"emptyLinePlaceholder":61},[34,212591,212592],{"class":36,"line":860},[34,212593,19195],{"class":40},[34,212595,212596,212598,212600,212602,212604,212606,212608,212611],{"class":36,"line":865},[34,212597,10246],{"class":580},[34,212599,10300],{"class":181},[34,212601,10252],{"class":580},[34,212603,8070],{"class":50},[34,212605,101074],{"class":580},[34,212607,2778],{"class":50},[34,212609,212610],{"class":181}," {          ",[34,212612,212613],{"class":40},"// 0, 1, 2, 3, 4\n",[34,212615,212616,212619,212621,212624],{"class":36,"line":870},[34,212617,212618],{"class":47},"    println!",[34,212620,1607],{"class":181},[34,212622,212623],{"class":54},"\"{}\"",[34,212625,19121],{"class":181},[34,212627,212628],{"class":36,"line":876},[34,212629,693],{"class":181},[34,212631,212632],{"class":36,"line":885},[34,212633,62],{"emptyLinePlaceholder":61},[34,212635,212636,212638,212640,212642,212644,212647,212649,212652],{"class":36,"line":895},[34,212637,10246],{"class":580},[34,212639,10300],{"class":181},[34,212641,10252],{"class":580},[34,212643,8070],{"class":50},[34,212645,212646],{"class":580},"..=",[34,212648,2778],{"class":50},[34,212650,212651],{"class":181}," {         ",[34,212653,212654],{"class":40},"// 0, 1, 2, 3, 4, 5\n",[34,212656,212657,212659,212661,212663],{"class":36,"line":904},[34,212658,212618],{"class":47},[34,212660,1607],{"class":181},[34,212662,212623],{"class":54},[34,212664,19121],{"class":181},[34,212666,212667],{"class":36,"line":915},[34,212668,693],{"class":181},[34,212670,212671],{"class":36,"line":927},[34,212672,62],{"emptyLinePlaceholder":61},[34,212674,212675,212677,212680,212682,212684,212686,212689,212691,212693,212695],{"class":36,"line":932},[34,212676,10246],{"class":580},[34,212678,212679],{"class":181}," (i, val) ",[34,212681,10252],{"class":580},[34,212683,32765],{"class":181},[34,212685,151],{"class":580},[34,212687,212688],{"class":47},"iter",[34,212690,1546],{"class":181},[34,212692,151],{"class":580},[34,212694,194690],{"class":47},[34,212696,836],{"class":181},[34,212698,212699,212701,212703,212706],{"class":36,"line":944},[34,212700,212618],{"class":47},[34,212702,1607],{"class":181},[34,212704,212705],{"class":54},"\"{}: {}\"",[34,212707,212708],{"class":181},", i, val);\n",[34,212710,212711],{"class":36,"line":966},[34,212712,693],{"class":181},[388,212714,12143],{},{"title":30,"searchDepth":44,"depth":44,"links":212716},[212717],{"id":18823,"depth":44,"text":18818},"Control Flow in Rust.",{},"/rust/control-flow",{"title":18818,"description":212718},"rust/control-flow",[161277,18137,46870,212407],"TrbYgFKueIjBc-SlSQimvSrHXkXvjjN2gOCfsfKe9jU",{"id":212726,"title":25912,"body":212727,"date":402,"description":213088,"extension":404,"meta":213089,"navigation":61,"order":263,"path":213090,"seo":213091,"stem":213092,"subject":161277,"tags":213093,"__hash__":213094},"topics/rust/enums.md",{"type":8,"value":212728,"toc":213085},[212729,212731,213083],[11,212730,25912],{"id":25917},[25,212732,212734],{"className":212148,"code":212733,"language":161277,"meta":30,"style":30},"// Basic enum\nenum Direction {\n    North,\n    South,\n    East,\n    West,\n}\n\n// Enum with data\nenum Message {\n    Quit,\n    Move { x: i32, y: i32 },\n    Write(String),\n    ChangeColor(i32, i32, i32),\n}\n\n// Using enums\nlet msg = Message::Write(String::from(\"hello\"));\n\n// Option enum (built-in)\nlet some_number: Option\u003Ci32> = Some(5);\nlet no_number: Option\u003Ci32> = None;\n\n// Result enum (built-in)\nlet success: Result\u003Ci32, String> = Ok(42);\nlet failure: Result\u003Ci32, String> = Err(\"error\".to_string());\n\n// Impl on enums\nimpl Message {\n    fn call(&self) {\n        // ...\n    }\n}\n",[20,212735,212736,212740,212748,212755,212762,212769,212776,212780,212784,212789,212798,212805,212826,212837,212856,212860,212864,212869,212898,212902,212907,212936,212959,212963,212968,213000,213037,213041,213046,213055,213070,213075,213079],{"__ignoreMap":30},[34,212737,212738],{"class":36,"line":37},[34,212739,25927],{"class":40},[34,212741,212742,212744,212746],{"class":36,"line":44},[34,212743,137134],{"class":580},[34,212745,137139],{"class":47},[34,212747,661],{"class":181},[34,212749,212750,212753],{"class":36,"line":58},[34,212751,212752],{"class":47},"    North",[34,212754,624],{"class":181},[34,212756,212757,212760],{"class":36,"line":65},[34,212758,212759],{"class":47},"    South",[34,212761,624],{"class":181},[34,212763,212764,212767],{"class":36,"line":71},[34,212765,212766],{"class":47},"    East",[34,212768,624],{"class":181},[34,212770,212771,212774],{"class":36,"line":77},[34,212772,212773],{"class":47},"    West",[34,212775,624],{"class":181},[34,212777,212778],{"class":36,"line":82},[34,212779,693],{"class":181},[34,212781,212782],{"class":36,"line":88},[34,212783,62],{"emptyLinePlaceholder":61},[34,212785,212786],{"class":36,"line":242},[34,212787,212788],{"class":40},"// Enum with data\n",[34,212790,212791,212793,212796],{"class":36,"line":250},[34,212792,137134],{"class":580},[34,212794,212795],{"class":47}," Message",[34,212797,661],{"class":181},[34,212799,212800,212803],{"class":36,"line":263},[34,212801,212802],{"class":47},"    Quit",[34,212804,624],{"class":181},[34,212806,212807,212810,212813,212815,212817,212820,212822,212824],{"class":36,"line":275},[34,212808,212809],{"class":47},"    Move",[34,212811,212812],{"class":181}," { x",[34,212814,165],{"class":580},[34,212816,8049],{"class":47},[34,212818,212819],{"class":181},", y",[34,212821,165],{"class":580},[34,212823,8049],{"class":47},[34,212825,14846],{"class":181},[34,212827,212828,212831,212833,212835],{"class":36,"line":700},[34,212829,212830],{"class":47},"    Write",[34,212832,1607],{"class":181},[34,212834,51427],{"class":47},[34,212836,50836],{"class":181},[34,212838,212839,212842,212844,212846,212848,212850,212852,212854],{"class":36,"line":706},[34,212840,212841],{"class":47},"    ChangeColor",[34,212843,1607],{"class":181},[34,212845,8248],{"class":47},[34,212847,1798],{"class":181},[34,212849,8248],{"class":47},[34,212851,1798],{"class":181},[34,212853,8248],{"class":47},[34,212855,50836],{"class":181},[34,212857,212858],{"class":36,"line":715},[34,212859,693],{"class":181},[34,212861,212862],{"class":36,"line":725},[34,212863,62],{"emptyLinePlaceholder":61},[34,212865,212866],{"class":36,"line":734},[34,212867,212868],{"class":40},"// Using enums\n",[34,212870,212871,212873,212875,212877,212879,212881,212884,212886,212888,212890,212892,212894,212896],{"class":36,"line":742},[34,212872,8268],{"class":580},[34,212874,104053],{"class":181},[34,212876,1301],{"class":580},[34,212878,212795],{"class":47},[34,212880,30110],{"class":580},[34,212882,212883],{"class":47},"Write",[34,212885,1607],{"class":181},[34,212887,51427],{"class":47},[34,212889,30110],{"class":580},[34,212891,587],{"class":47},[34,212893,1607],{"class":181},[34,212895,17360],{"class":54},[34,212897,15223],{"class":181},[34,212899,212900],{"class":36,"line":748},[34,212901,62],{"emptyLinePlaceholder":61},[34,212903,212904],{"class":36,"line":754},[34,212905,212906],{"class":40},"// Option enum (built-in)\n",[34,212908,212909,212911,212914,212916,212919,212921,212923,212925,212927,212930,212932,212934],{"class":36,"line":759},[34,212910,8268],{"class":580},[34,212912,212913],{"class":181}," some_number",[34,212915,165],{"class":580},[34,212917,212918],{"class":47}," Option",[34,212920,815],{"class":181},[34,212922,8248],{"class":47},[34,212924,32840],{"class":181},[34,212926,1301],{"class":580},[34,212928,212929],{"class":47}," Some",[34,212931,1607],{"class":181},[34,212933,2778],{"class":50},[34,212935,1586],{"class":181},[34,212937,212938,212940,212943,212945,212947,212949,212951,212953,212955,212957],{"class":36,"line":771},[34,212939,8268],{"class":580},[34,212941,212942],{"class":181}," no_number",[34,212944,165],{"class":580},[34,212946,212918],{"class":47},[34,212948,815],{"class":181},[34,212950,8248],{"class":47},[34,212952,32840],{"class":181},[34,212954,1301],{"class":580},[34,212956,53194],{"class":47},[34,212958,593],{"class":181},[34,212960,212961],{"class":36,"line":794},[34,212962,62],{"emptyLinePlaceholder":61},[34,212964,212965],{"class":36,"line":824},[34,212966,212967],{"class":40},"// Result enum (built-in)\n",[34,212969,212970,212972,212975,212977,212979,212981,212983,212985,212987,212989,212991,212994,212996,212998],{"class":36,"line":830},[34,212971,8268],{"class":580},[34,212973,212974],{"class":181}," success",[34,212976,165],{"class":580},[34,212978,136969],{"class":47},[34,212980,815],{"class":181},[34,212982,8248],{"class":47},[34,212984,1798],{"class":181},[34,212986,51427],{"class":47},[34,212988,32840],{"class":181},[34,212990,1301],{"class":580},[34,212992,212993],{"class":47}," Ok",[34,212995,1607],{"class":181},[34,212997,8257],{"class":50},[34,212999,1586],{"class":181},[34,213001,213002,213004,213007,213009,213011,213013,213015,213017,213019,213021,213023,213026,213028,213030,213032,213035],{"class":36,"line":839},[34,213003,8268],{"class":580},[34,213005,213006],{"class":181}," failure",[34,213008,165],{"class":580},[34,213010,136969],{"class":47},[34,213012,815],{"class":181},[34,213014,8248],{"class":47},[34,213016,1798],{"class":181},[34,213018,51427],{"class":47},[34,213020,32840],{"class":181},[34,213022,1301],{"class":580},[34,213024,213025],{"class":47}," Err",[34,213027,1607],{"class":181},[34,213029,62772],{"class":54},[34,213031,151],{"class":580},[34,213033,213034],{"class":47},"to_string",[34,213036,4343],{"class":181},[34,213038,213039],{"class":36,"line":854},[34,213040,62],{"emptyLinePlaceholder":61},[34,213042,213043],{"class":36,"line":860},[34,213044,213045],{"class":40},"// Impl on enums\n",[34,213047,213048,213051,213053],{"class":36,"line":865},[34,213049,213050],{"class":580},"impl",[34,213052,212795],{"class":47},[34,213054,661],{"class":181},[34,213056,213057,213059,213062,213064,213066,213068],{"class":36,"line":870},[34,213058,177241],{"class":580},[34,213060,213061],{"class":47}," call",[34,213063,1607],{"class":181},[34,213065,19502],{"class":580},[34,213067,210943],{"class":50},[34,213069,2416],{"class":181},[34,213071,213072],{"class":36,"line":876},[34,213073,213074],{"class":40},"        // ...\n",[34,213076,213077],{"class":36,"line":885},[34,213078,3229],{"class":181},[34,213080,213081],{"class":36,"line":895},[34,213082,693],{"class":181},[388,213084,34089],{},{"title":30,"searchDepth":44,"depth":44,"links":213086},[213087],{"id":25917,"depth":44,"text":25912},"Enums in Rust.",{},"/rust/enums",{"title":25912,"description":213088},"rust/enums",[161277,18137,46870,212407],"mDTVCEIES2UZwQ1OmbXZtVUIhav2QQhD1GKuB3IlNmk",{"id":213096,"title":19352,"body":213097,"date":402,"description":213519,"extension":404,"meta":213520,"navigation":61,"order":275,"path":213521,"seo":213522,"stem":213523,"subject":161277,"tags":213524,"__hash__":213525},"topics/rust/error-handling.md",{"type":8,"value":213098,"toc":213516},[213099,213101,213514],[11,213100,19352],{"id":19357},[25,213102,213104],{"className":212148,"code":213103,"language":161277,"meta":30,"style":30},"// Result type\nfn read_file() -> Result\u003CString, std::io::Error> {\n    std::fs::read_to_string(\"file.txt\")\n}\n\n// Handling Results\nlet content = read_file().unwrap();        // Panic on error\nlet content = read_file().expect(\"Failed\"); // Panic with message\nlet content = read_file().unwrap_or_default(); // Default on error\n\n// Match on Result\nmatch read_file() {\n    Ok(content) => println!(\"{}\", content),\n    Err(e) => println!(\"Error: {}\", e),\n}\n\n// ? operator (propagate errors)\nfn process() -> Result\u003CString, std::io::Error> {\n    let content = std::fs::read_to_string(\"file.txt\")?;\n    Ok(content.to_uppercase())\n}\n\n// Multiple error types\nuse std::error::Error;\nfn run() -> Result\u003C(), Box\u003Cdyn Error>> {\n    let content = std::fs::read_to_string(\"file.txt\")?;\n    let num: i32 = content.trim().parse()?;\n    Ok(())\n}\n",[20,213105,213106,213111,213142,213162,213166,213170,213175,213198,213225,213247,213251,213256,213264,213284,213304,213308,213312,213317,213345,213373,213387,213391,213395,213400,213416,213444,213472,213503,213510],{"__ignoreMap":30},[34,213107,213108],{"class":36,"line":37},[34,213109,213110],{"class":40},"// Result type\n",[34,213112,213113,213115,213118,213120,213122,213124,213126,213128,213131,213133,213136,213138,213140],{"class":36,"line":44},[34,213114,77761],{"class":580},[34,213116,213117],{"class":47}," read_file",[34,213119,672],{"class":181},[34,213121,24863],{"class":580},[34,213123,136969],{"class":47},[34,213125,815],{"class":181},[34,213127,51427],{"class":47},[34,213129,213130],{"class":181},", std",[34,213132,30110],{"class":580},[34,213134,213135],{"class":181},"io",[34,213137,30110],{"class":580},[34,213139,105542],{"class":47},[34,213141,1719],{"class":181},[34,213143,213144,213146,213148,213151,213153,213156,213158,213160],{"class":36,"line":58},[34,213145,30075],{"class":47},[34,213147,30110],{"class":580},[34,213149,213150],{"class":47},"fs",[34,213152,30110],{"class":580},[34,213154,213155],{"class":47},"read_to_string",[34,213157,1607],{"class":181},[34,213159,14990],{"class":54},[34,213161,3372],{"class":181},[34,213163,213164],{"class":36,"line":65},[34,213165,693],{"class":181},[34,213167,213168],{"class":36,"line":71},[34,213169,62],{"emptyLinePlaceholder":61},[34,213171,213172],{"class":36,"line":77},[34,213173,213174],{"class":40},"// Handling Results\n",[34,213176,213177,213179,213181,213183,213185,213187,213189,213192,213195],{"class":36,"line":82},[34,213178,8268],{"class":580},[34,213180,137631],{"class":181},[34,213182,1301],{"class":580},[34,213184,213117],{"class":47},[34,213186,1546],{"class":181},[34,213188,151],{"class":580},[34,213190,213191],{"class":47},"unwrap",[34,213193,213194],{"class":181},"();        ",[34,213196,213197],{"class":40},"// Panic on error\n",[34,213199,213200,213202,213204,213206,213208,213210,213212,213215,213217,213220,213222],{"class":36,"line":88},[34,213201,8268],{"class":580},[34,213203,137631],{"class":181},[34,213205,1301],{"class":580},[34,213207,213117],{"class":47},[34,213209,1546],{"class":181},[34,213211,151],{"class":580},[34,213213,213214],{"class":47},"expect",[34,213216,1607],{"class":181},[34,213218,213219],{"class":54},"\"Failed\"",[34,213221,8260],{"class":181},[34,213223,213224],{"class":40},"// Panic with message\n",[34,213226,213227,213229,213231,213233,213235,213237,213239,213242,213244],{"class":36,"line":242},[34,213228,8268],{"class":580},[34,213230,137631],{"class":181},[34,213232,1301],{"class":580},[34,213234,213117],{"class":47},[34,213236,1546],{"class":181},[34,213238,151],{"class":580},[34,213240,213241],{"class":47},"unwrap_or_default",[34,213243,68957],{"class":181},[34,213245,213246],{"class":40},"// Default on error\n",[34,213248,213249],{"class":36,"line":250},[34,213250,62],{"emptyLinePlaceholder":61},[34,213252,213253],{"class":36,"line":263},[34,213254,213255],{"class":40},"// Match on Result\n",[34,213257,213258,213260,213262],{"class":36,"line":275},[34,213259,193892],{"class":580},[34,213261,213117],{"class":47},[34,213263,836],{"class":181},[34,213265,213266,213269,213272,213274,213277,213279,213281],{"class":36,"line":700},[34,213267,213268],{"class":47},"    Ok",[34,213270,213271],{"class":181},"(content) ",[34,213273,3361],{"class":580},[34,213275,213276],{"class":47}," println!",[34,213278,1607],{"class":181},[34,213280,212623],{"class":54},[34,213282,213283],{"class":181},", content),\n",[34,213285,213286,213289,213292,213294,213296,213298,213301],{"class":36,"line":706},[34,213287,213288],{"class":47},"    Err",[34,213290,213291],{"class":181},"(e) ",[34,213293,3361],{"class":580},[34,213295,213276],{"class":47},[34,213297,1607],{"class":181},[34,213299,213300],{"class":54},"\"Error: {}\"",[34,213302,213303],{"class":181},", e),\n",[34,213305,213306],{"class":36,"line":715},[34,213307,693],{"class":181},[34,213309,213310],{"class":36,"line":725},[34,213311,62],{"emptyLinePlaceholder":61},[34,213313,213314],{"class":36,"line":734},[34,213315,213316],{"class":40},"// ? operator (propagate errors)\n",[34,213318,213319,213321,213323,213325,213327,213329,213331,213333,213335,213337,213339,213341,213343],{"class":36,"line":742},[34,213320,77761],{"class":580},[34,213322,31325],{"class":47},[34,213324,672],{"class":181},[34,213326,24863],{"class":580},[34,213328,136969],{"class":47},[34,213330,815],{"class":181},[34,213332,51427],{"class":47},[34,213334,213130],{"class":181},[34,213336,30110],{"class":580},[34,213338,213135],{"class":181},[34,213340,30110],{"class":580},[34,213342,105542],{"class":47},[34,213344,1719],{"class":181},[34,213346,213347,213349,213351,213353,213355,213357,213359,213361,213363,213365,213367,213369,213371],{"class":36,"line":748},[34,213348,13909],{"class":580},[34,213350,137631],{"class":181},[34,213352,1301],{"class":580},[34,213354,30217],{"class":47},[34,213356,30110],{"class":580},[34,213358,213150],{"class":47},[34,213360,30110],{"class":580},[34,213362,213155],{"class":47},[34,213364,1607],{"class":181},[34,213366,14990],{"class":54},[34,213368,1617],{"class":181},[34,213370,18954],{"class":580},[34,213372,593],{"class":181},[34,213374,213375,213377,213380,213382,213385],{"class":36,"line":754},[34,213376,213268],{"class":47},[34,213378,213379],{"class":181},"(content",[34,213381,151],{"class":580},[34,213383,213384],{"class":47},"to_uppercase",[34,213386,62281],{"class":181},[34,213388,213389],{"class":36,"line":759},[34,213390,693],{"class":181},[34,213392,213393],{"class":36,"line":771},[34,213394,62],{"emptyLinePlaceholder":61},[34,213396,213397],{"class":36,"line":794},[34,213398,213399],{"class":40},"// Multiple error types\n",[34,213401,213402,213404,213406,213408,213410,213412,213414],{"class":36,"line":824},[34,213403,61898],{"class":580},[34,213405,30217],{"class":47},[34,213407,30110],{"class":580},[34,213409,1908],{"class":47},[34,213411,30110],{"class":580},[34,213413,105542],{"class":47},[34,213415,593],{"class":181},[34,213417,213418,213420,213422,213424,213426,213428,213431,213434,213436,213439,213441],{"class":36,"line":830},[34,213419,77761],{"class":580},[34,213421,16017],{"class":47},[34,213423,672],{"class":181},[34,213425,24863],{"class":580},[34,213427,136969],{"class":47},[34,213429,213430],{"class":181},"\u003C(), ",[34,213432,213433],{"class":47},"Box",[34,213435,815],{"class":181},[34,213437,213438],{"class":580},"dyn",[34,213440,48752],{"class":47},[34,213442,213443],{"class":181},">> {\n",[34,213445,213446,213448,213450,213452,213454,213456,213458,213460,213462,213464,213466,213468,213470],{"class":36,"line":839},[34,213447,13909],{"class":580},[34,213449,137631],{"class":181},[34,213451,1301],{"class":580},[34,213453,30217],{"class":47},[34,213455,30110],{"class":580},[34,213457,213150],{"class":47},[34,213459,30110],{"class":580},[34,213461,213155],{"class":47},[34,213463,1607],{"class":181},[34,213465,14990],{"class":54},[34,213467,1617],{"class":181},[34,213469,18954],{"class":580},[34,213471,593],{"class":181},[34,213473,213474,213476,213479,213481,213483,213485,213487,213489,213491,213493,213495,213497,213499,213501],{"class":36,"line":854},[34,213475,13909],{"class":580},[34,213477,213478],{"class":181}," num",[34,213480,165],{"class":580},[34,213482,8049],{"class":47},[34,213484,683],{"class":580},[34,213486,35532],{"class":181},[34,213488,151],{"class":580},[34,213490,72217],{"class":47},[34,213492,1546],{"class":181},[34,213494,151],{"class":580},[34,213496,126562],{"class":47},[34,213498,1546],{"class":181},[34,213500,18954],{"class":580},[34,213502,593],{"class":181},[34,213504,213505,213507],{"class":36,"line":860},[34,213506,213268],{"class":47},[34,213508,213509],{"class":181},"(())\n",[34,213511,213512],{"class":36,"line":865},[34,213513,693],{"class":181},[388,213515,35749],{},{"title":30,"searchDepth":44,"depth":44,"links":213517},[213518],{"id":19357,"depth":44,"text":19352},"Error Handling in Rust.",{},"/rust/error-handling",{"title":19352,"description":213519},"rust/error-handling",[161277,18137,46870,212407],"8yIzb1DNihPIdCiiKqXomz-Hu0-gSwkiDWDhnY-TONc",{"id":213527,"title":10991,"body":213528,"date":402,"description":213863,"extension":404,"meta":213864,"navigation":61,"order":77,"path":213865,"seo":213866,"stem":213867,"subject":161277,"tags":213868,"__hash__":213869},"topics/rust/functions.md",{"type":8,"value":213529,"toc":213860},[213530,213532,213858],[11,213531,10991],{"id":10996},[25,213533,213535],{"className":212148,"code":213534,"language":161277,"meta":30,"style":30},"// Basic function\nfn greet(name: &str) -> String {\n    format!(\"Hello, {}!\", name)  // No semicolon = return\n}\n\n// Multiple parameters\nfn add(a: i32, b: i32) -> i32 {\n    a + b\n}\n\n// No return value (returns unit type)\nfn print_value(x: i32) {\n    println!(\"{}\", x);\n}\n\n// Early return\nfn check(x: i32) -> bool {\n    if x \u003C 0 {\n        return false;\n    }\n    true\n}\n\n// Closures\nlet add_one = |x: i32| x + 1;\nlet add = |a, b| a + b;\nlet print = |x| println!(\"{}\", x);\n\n// Closure capturing\nlet multiplier = 3;\nlet multiply = |x| x * multiplier;\n",[20,213536,213537,213541,213563,213578,213582,213586,213591,213619,213628,213632,213636,213641,213657,213668,213672,213676,213681,213701,213713,213721,213725,213730,213734,213738,213743,213770,213791,213814,213818,213823,213836],{"__ignoreMap":30},[34,213538,213539],{"class":36,"line":37},[34,213540,26295],{"class":40},[34,213542,213543,213545,213547,213549,213551,213553,213555,213557,213559,213561],{"class":36,"line":44},[34,213544,77761],{"class":580},[34,213546,11047],{"class":47},[34,213548,193569],{"class":181},[34,213550,165],{"class":580},[34,213552,11373],{"class":580},[34,213554,12646],{"class":47},[34,213556,4817],{"class":181},[34,213558,24863],{"class":580},[34,213560,131103],{"class":47},[34,213562,661],{"class":181},[34,213564,213565,213568,213570,213572,213575],{"class":36,"line":58},[34,213566,213567],{"class":47},"    format!",[34,213569,1607],{"class":181},[34,213571,192911],{"class":54},[34,213573,213574],{"class":181},", name)  ",[34,213576,213577],{"class":40},"// No semicolon = return\n",[34,213579,213580],{"class":36,"line":65},[34,213581,693],{"class":181},[34,213583,213584],{"class":36,"line":71},[34,213585,62],{"emptyLinePlaceholder":61},[34,213587,213588],{"class":36,"line":77},[34,213589,213590],{"class":40},"// Multiple parameters\n",[34,213592,213593,213595,213597,213600,213602,213604,213607,213609,213611,213613,213615,213617],{"class":36,"line":82},[34,213594,77761],{"class":580},[34,213596,7854],{"class":47},[34,213598,213599],{"class":181},"(a",[34,213601,165],{"class":580},[34,213603,8049],{"class":47},[34,213605,213606],{"class":181},", b",[34,213608,165],{"class":580},[34,213610,8049],{"class":47},[34,213612,4817],{"class":181},[34,213614,24863],{"class":580},[34,213616,8049],{"class":47},[34,213618,661],{"class":181},[34,213620,213621,213624,213626],{"class":36,"line":88},[34,213622,213623],{"class":181},"    a ",[34,213625,2940],{"class":580},[34,213627,87475],{"class":181},[34,213629,213630],{"class":36,"line":242},[34,213631,693],{"class":181},[34,213633,213634],{"class":36,"line":250},[34,213635,62],{"emptyLinePlaceholder":61},[34,213637,213638],{"class":36,"line":263},[34,213639,213640],{"class":40},"// No return value (returns unit type)\n",[34,213642,213643,213645,213648,213651,213653,213655],{"class":36,"line":275},[34,213644,77761],{"class":580},[34,213646,213647],{"class":47}," print_value",[34,213649,213650],{"class":181},"(x",[34,213652,165],{"class":580},[34,213654,8049],{"class":47},[34,213656,2416],{"class":181},[34,213658,213659,213661,213663,213665],{"class":36,"line":700},[34,213660,212618],{"class":47},[34,213662,1607],{"class":181},[34,213664,212623],{"class":54},[34,213666,213667],{"class":181},", x);\n",[34,213669,213670],{"class":36,"line":706},[34,213671,693],{"class":181},[34,213673,213674],{"class":36,"line":715},[34,213675,62],{"emptyLinePlaceholder":61},[34,213677,213678],{"class":36,"line":725},[34,213679,213680],{"class":40},"// Early return\n",[34,213682,213683,213685,213687,213689,213691,213693,213695,213697,213699],{"class":36,"line":734},[34,213684,77761],{"class":580},[34,213686,46768],{"class":47},[34,213688,213650],{"class":181},[34,213690,165],{"class":580},[34,213692,8049],{"class":47},[34,213694,4817],{"class":181},[34,213696,24863],{"class":580},[34,213698,37127],{"class":47},[34,213700,661],{"class":181},[34,213702,213703,213705,213707,213709,213711],{"class":36,"line":742},[34,213704,2902],{"class":580},[34,213706,23172],{"class":181},[34,213708,815],{"class":580},[34,213710,8070],{"class":50},[34,213712,661],{"class":181},[34,213714,213715,213717,213719],{"class":36,"line":748},[34,213716,13895],{"class":580},[34,213718,68645],{"class":50},[34,213720,593],{"class":181},[34,213722,213723],{"class":36,"line":754},[34,213724,3229],{"class":181},[34,213726,213727],{"class":36,"line":759},[34,213728,213729],{"class":50},"    true\n",[34,213731,213732],{"class":36,"line":771},[34,213733,693],{"class":181},[34,213735,213736],{"class":36,"line":794},[34,213737,62],{"emptyLinePlaceholder":61},[34,213739,213740],{"class":36,"line":824},[34,213741,213742],{"class":40},"// Closures\n",[34,213744,213745,213747,213750,213752,213754,213756,213758,213760,213762,213764,213766,213768],{"class":36,"line":830},[34,213746,8268],{"class":580},[34,213748,213749],{"class":181}," add_one ",[34,213751,1301],{"class":580},[34,213753,7197],{"class":580},[34,213755,23655],{"class":181},[34,213757,165],{"class":580},[34,213759,8049],{"class":47},[34,213761,2670],{"class":580},[34,213763,23172],{"class":181},[34,213765,2940],{"class":580},[34,213767,3567],{"class":50},[34,213769,593],{"class":181},[34,213771,213772,213774,213776,213778,213780,213783,213785,213787,213789],{"class":36,"line":839},[34,213773,8268],{"class":580},[34,213775,31374],{"class":181},[34,213777,1301],{"class":580},[34,213779,7197],{"class":580},[34,213781,213782],{"class":181},"a, b",[34,213784,2670],{"class":580},[34,213786,8065],{"class":181},[34,213788,2940],{"class":580},[34,213790,8123],{"class":181},[34,213792,213793,213795,213798,213800,213802,213804,213806,213808,213810,213812],{"class":36,"line":854},[34,213794,8268],{"class":580},[34,213796,213797],{"class":181}," print ",[34,213799,1301],{"class":580},[34,213801,7197],{"class":580},[34,213803,23655],{"class":181},[34,213805,2670],{"class":580},[34,213807,213276],{"class":47},[34,213809,1607],{"class":181},[34,213811,212623],{"class":54},[34,213813,213667],{"class":181},[34,213815,213816],{"class":36,"line":860},[34,213817,62],{"emptyLinePlaceholder":61},[34,213819,213820],{"class":36,"line":865},[34,213821,213822],{"class":40},"// Closure capturing\n",[34,213824,213825,213827,213830,213832,213834],{"class":36,"line":870},[34,213826,8268],{"class":580},[34,213828,213829],{"class":181}," multiplier ",[34,213831,1301],{"class":580},[34,213833,11147],{"class":50},[34,213835,593],{"class":181},[34,213837,213838,213840,213843,213845,213847,213849,213851,213853,213855],{"class":36,"line":876},[34,213839,8268],{"class":580},[34,213841,213842],{"class":181}," multiply ",[34,213844,1301],{"class":580},[34,213846,7197],{"class":580},[34,213848,23655],{"class":181},[34,213850,2670],{"class":580},[34,213852,23172],{"class":181},[34,213854,4289],{"class":580},[34,213856,213857],{"class":181}," multiplier;\n",[388,213859,34089],{},{"title":30,"searchDepth":44,"depth":44,"links":213861},[213862],{"id":10996,"depth":44,"text":10991},"Functions in Rust.",{},"/rust/functions",{"title":10991,"description":213863},"rust/functions",[161277,18137,46870,212407],"ONPZ0o5UcPab2SGhHXQuzpC3iQTDzlAnCC0hNToymsc",{"id":213871,"title":26423,"body":213872,"date":402,"description":214253,"extension":404,"meta":214254,"navigation":61,"order":706,"path":214255,"seo":214256,"stem":214257,"subject":161277,"tags":214258,"__hash__":214259},"topics/rust/generics.md",{"type":8,"value":213873,"toc":214250},[213874,213876,214248],[11,213875,26423],{"id":26428},[25,213877,213879],{"className":212148,"code":213878,"language":161277,"meta":30,"style":30},"// Generic function\nfn largest\u003CT: PartialOrd>(list: &[T]) -> &T {\n    let mut largest = &list[0];\n    for item in list {\n        if item > largest {\n            largest = item;\n        }\n    }\n    largest\n}\n\n// Generic struct\nstruct Point\u003CT> {\n    x: T,\n    y: T,\n}\n\n// Generic impl\nimpl\u003CT> Point\u003CT> {\n    fn x(&self) -> &T {\n        &self.x\n    }\n}\n\n// Specific impl\nimpl Point\u003Cf64> {\n    fn distance(&self) -> f64 {\n        (self.x.powi(2) + self.y.powi(2)).sqrt()\n    }\n}\n\n// Generic enum\nenum Option\u003CT> {\n    Some(T),\n    None,\n}\n",[20,213880,213881,213886,213923,213943,213954,213965,213975,213979,213983,213988,213992,213996,214001,214013,214024,214035,214039,214043,214048,214067,214089,214100,214104,214108,214112,214117,214130,214151,214197,214201,214205,214209,214214,214226,214237,214244],{"__ignoreMap":30},[34,213882,213883],{"class":36,"line":37},[34,213884,213885],{"class":40},"// Generic function\n",[34,213887,213888,213890,213893,213895,213897,213899,213902,213905,213907,213909,213911,213913,213915,213917,213919,213921],{"class":36,"line":44},[34,213889,77761],{"class":580},[34,213891,213892],{"class":47}," largest",[34,213894,815],{"class":181},[34,213896,32671],{"class":47},[34,213898,165],{"class":580},[34,213900,213901],{"class":47}," PartialOrd",[34,213903,213904],{"class":181},">(list",[34,213906,165],{"class":580},[34,213908,11373],{"class":580},[34,213910,10260],{"class":181},[34,213912,32671],{"class":47},[34,213914,193030],{"class":181},[34,213916,24863],{"class":580},[34,213918,11373],{"class":580},[34,213920,32671],{"class":47},[34,213922,661],{"class":181},[34,213924,213925,213927,213930,213933,213935,213937,213939,213941],{"class":36,"line":58},[34,213926,13909],{"class":580},[34,213928,213929],{"class":580}," mut",[34,213931,213932],{"class":181}," largest ",[34,213934,1301],{"class":580},[34,213936,11373],{"class":580},[34,213938,134433],{"class":181},[34,213940,2773],{"class":50},[34,213942,3415],{"class":181},[34,213944,213945,213947,213949,213951],{"class":36,"line":65},[34,213946,18250],{"class":580},[34,213948,192576],{"class":181},[34,213950,10252],{"class":580},[34,213952,213953],{"class":181}," list {\n",[34,213955,213956,213958,213960,213962],{"class":36,"line":71},[34,213957,49573],{"class":580},[34,213959,192576],{"class":181},[34,213961,5691],{"class":580},[34,213963,213964],{"class":181}," largest {\n",[34,213966,213967,213970,213972],{"class":36,"line":77},[34,213968,213969],{"class":181},"            largest ",[34,213971,1301],{"class":580},[34,213973,213974],{"class":181}," item;\n",[34,213976,213977],{"class":36,"line":82},[34,213978,26208],{"class":181},[34,213980,213981],{"class":36,"line":88},[34,213982,3229],{"class":181},[34,213984,213985],{"class":36,"line":242},[34,213986,213987],{"class":181},"    largest\n",[34,213989,213990],{"class":36,"line":250},[34,213991,693],{"class":181},[34,213993,213994],{"class":36,"line":263},[34,213995,62],{"emptyLinePlaceholder":61},[34,213997,213998],{"class":36,"line":275},[34,213999,214000],{"class":40},"// Generic struct\n",[34,214002,214003,214005,214007,214009,214011],{"class":36,"line":700},[34,214004,21640],{"class":580},[34,214006,37679],{"class":47},[34,214008,815],{"class":181},[34,214010,32671],{"class":47},[34,214012,1719],{"class":181},[34,214014,214015,214018,214020,214022],{"class":36,"line":706},[34,214016,214017],{"class":181},"    x",[34,214019,165],{"class":580},[34,214021,32664],{"class":47},[34,214023,624],{"class":181},[34,214025,214026,214029,214031,214033],{"class":36,"line":715},[34,214027,214028],{"class":181},"    y",[34,214030,165],{"class":580},[34,214032,32664],{"class":47},[34,214034,624],{"class":181},[34,214036,214037],{"class":36,"line":725},[34,214038,693],{"class":181},[34,214040,214041],{"class":36,"line":734},[34,214042,62],{"emptyLinePlaceholder":61},[34,214044,214045],{"class":36,"line":742},[34,214046,214047],{"class":40},"// Generic impl\n",[34,214049,214050,214052,214054,214056,214058,214061,214063,214065],{"class":36,"line":748},[34,214051,213050],{"class":580},[34,214053,815],{"class":181},[34,214055,32671],{"class":47},[34,214057,32840],{"class":181},[34,214059,214060],{"class":47},"Point",[34,214062,815],{"class":181},[34,214064,32671],{"class":47},[34,214066,1719],{"class":181},[34,214068,214069,214071,214073,214075,214077,214079,214081,214083,214085,214087],{"class":36,"line":754},[34,214070,177241],{"class":580},[34,214072,31288],{"class":47},[34,214074,1607],{"class":181},[34,214076,19502],{"class":580},[34,214078,210943],{"class":50},[34,214080,4817],{"class":181},[34,214082,24863],{"class":580},[34,214084,11373],{"class":580},[34,214086,32671],{"class":47},[34,214088,661],{"class":181},[34,214090,214091,214094,214096,214098],{"class":36,"line":759},[34,214092,214093],{"class":580},"        &",[34,214095,210943],{"class":50},[34,214097,151],{"class":580},[34,214099,107913],{"class":181},[34,214101,214102],{"class":36,"line":771},[34,214103,3229],{"class":181},[34,214105,214106],{"class":36,"line":794},[34,214107,693],{"class":181},[34,214109,214110],{"class":36,"line":824},[34,214111,62],{"emptyLinePlaceholder":61},[34,214113,214114],{"class":36,"line":830},[34,214115,214116],{"class":40},"// Specific impl\n",[34,214118,214119,214121,214123,214125,214128],{"class":36,"line":839},[34,214120,213050],{"class":580},[34,214122,37679],{"class":47},[34,214124,815],{"class":181},[34,214126,214127],{"class":47},"f64",[34,214129,1719],{"class":181},[34,214131,214132,214134,214136,214138,214140,214142,214144,214146,214149],{"class":36,"line":854},[34,214133,177241],{"class":580},[34,214135,52228],{"class":47},[34,214137,1607],{"class":181},[34,214139,19502],{"class":580},[34,214141,210943],{"class":50},[34,214143,4817],{"class":181},[34,214145,24863],{"class":580},[34,214147,214148],{"class":47}," f64",[34,214150,661],{"class":181},[34,214152,214153,214156,214158,214160,214162,214164,214167,214169,214171,214173,214175,214177,214179,214181,214183,214185,214187,214189,214191,214193,214195],{"class":36,"line":860},[34,214154,214155],{"class":181},"        (",[34,214157,210943],{"class":50},[34,214159,151],{"class":580},[34,214161,23655],{"class":181},[34,214163,151],{"class":580},[34,214165,214166],{"class":47},"powi",[34,214168,1607],{"class":181},[34,214170,8324],{"class":50},[34,214172,4817],{"class":181},[34,214174,2940],{"class":580},[34,214176,74044],{"class":50},[34,214178,151],{"class":580},[34,214180,60946],{"class":181},[34,214182,151],{"class":580},[34,214184,214166],{"class":47},[34,214186,1607],{"class":181},[34,214188,8324],{"class":50},[34,214190,145291],{"class":181},[34,214192,151],{"class":580},[34,214194,24148],{"class":47},[34,214196,33899],{"class":181},[34,214198,214199],{"class":36,"line":865},[34,214200,3229],{"class":181},[34,214202,214203],{"class":36,"line":870},[34,214204,693],{"class":181},[34,214206,214207],{"class":36,"line":876},[34,214208,62],{"emptyLinePlaceholder":61},[34,214210,214211],{"class":36,"line":885},[34,214212,214213],{"class":40},"// Generic enum\n",[34,214215,214216,214218,214220,214222,214224],{"class":36,"line":895},[34,214217,137134],{"class":580},[34,214219,212918],{"class":47},[34,214221,815],{"class":181},[34,214223,32671],{"class":47},[34,214225,1719],{"class":181},[34,214227,214228,214231,214233,214235],{"class":36,"line":904},[34,214229,214230],{"class":47},"    Some",[34,214232,1607],{"class":181},[34,214234,32671],{"class":47},[34,214236,50836],{"class":181},[34,214238,214239,214242],{"class":36,"line":915},[34,214240,214241],{"class":47},"    None",[34,214243,624],{"class":181},[34,214245,214246],{"class":36,"line":927},[34,214247,693],{"class":181},[388,214249,35226],{},{"title":30,"searchDepth":44,"depth":44,"links":214251},[214252],{"id":26428,"depth":44,"text":26423},"Generics in Rust.",{},"/rust/generics",{"title":26423,"description":214253},"rust/generics",[161277,18137,46870,212407],"UOsK1tmutIpUrpN-h5otu-SVZ8Kb5rquhlUPI9M6U8U",{"id":214261,"title":214262,"body":214263,"date":402,"description":214572,"extension":404,"meta":214573,"navigation":61,"order":71,"path":214574,"seo":214575,"stem":214576,"subject":161277,"tags":214577,"__hash__":214578},"topics/rust/hashmaps.md","HashMaps",{"type":8,"value":214264,"toc":214569},[214265,214268,214566],[11,214266,214262],{"id":214267},"hashmaps",[25,214269,214271],{"className":212148,"code":214270,"language":161277,"meta":30,"style":30},"use std::collections::HashMap;\n\n// Creating HashMaps\nlet mut map: HashMap\u003CString, i32> = HashMap::new();\nlet map2: HashMap\u003C_, _> = vec![(\"a\", 1), (\"b\", 2)]\n    .into_iter().collect();\n\n// HashMap operations\nmap.insert(String::from(\"key\"), 10);\nmap.get(\"key\");             // Returns Option\u003C&V>\nmap.remove(\"key\");          // Remove entry\nmap.contains_key(\"key\");    // Check key exists\nmap.len();                  // Number of entries\n\n// Entry API\nmap.entry(String::from(\"key\")).or_insert(0);\n\n// Iteration\nfor (key, value) in &map {\n    println!(\"{}: {}\", key, value);\n}\n",[20,214272,214273,214290,214294,214299,214332,214370,214385,214389,214394,214420,214437,214454,214472,214485,214489,214494,214528,214532,214537,214551,214562],{"__ignoreMap":30},[34,214274,214275,214277,214279,214281,214283,214285,214288],{"class":36,"line":37},[34,214276,61898],{"class":580},[34,214278,30217],{"class":47},[34,214280,30110],{"class":580},[34,214282,83156],{"class":47},[34,214284,30110],{"class":580},[34,214286,214287],{"class":47},"HashMap",[34,214289,593],{"class":181},[34,214291,214292],{"class":36,"line":44},[34,214293,62],{"emptyLinePlaceholder":61},[34,214295,214296],{"class":36,"line":58},[34,214297,214298],{"class":40},"// Creating HashMaps\n",[34,214300,214301,214303,214305,214307,214309,214312,214314,214316,214318,214320,214322,214324,214326,214328,214330],{"class":36,"line":65},[34,214302,8268],{"class":580},[34,214304,213929],{"class":580},[34,214306,88036],{"class":181},[34,214308,165],{"class":580},[34,214310,214311],{"class":47}," HashMap",[34,214313,815],{"class":181},[34,214315,51427],{"class":47},[34,214317,1798],{"class":181},[34,214319,8248],{"class":47},[34,214321,32840],{"class":181},[34,214323,1301],{"class":580},[34,214325,214311],{"class":47},[34,214327,30110],{"class":580},[34,214329,3143],{"class":47},[34,214331,851],{"class":181},[34,214333,214334,214336,214339,214341,214343,214346,214348,214351,214354,214356,214358,214360,214362,214364,214366,214368],{"class":36,"line":71},[34,214335,8268],{"class":580},[34,214337,214338],{"class":181}," map2",[34,214340,165],{"class":580},[34,214342,214311],{"class":47},[34,214344,214345],{"class":181},"\u003C_, _> ",[34,214347,1301],{"class":580},[34,214349,214350],{"class":47}," vec!",[34,214352,214353],{"class":181},"[(",[34,214355,104277],{"class":54},[34,214357,1798],{"class":181},[34,214359,8318],{"class":50},[34,214361,29109],{"class":181},[34,214363,104282],{"class":54},[34,214365,1798],{"class":181},[34,214367,8324],{"class":50},[34,214369,34499],{"class":181},[34,214371,214372,214374,214377,214379,214381,214383],{"class":36,"line":77},[34,214373,123827],{"class":580},[34,214375,214376],{"class":47},"into_iter",[34,214378,1546],{"class":181},[34,214380,151],{"class":580},[34,214382,124096],{"class":47},[34,214384,851],{"class":181},[34,214386,214387],{"class":36,"line":82},[34,214388,62],{"emptyLinePlaceholder":61},[34,214390,214391],{"class":36,"line":88},[34,214392,214393],{"class":40},"// HashMap operations\n",[34,214395,214396,214398,214400,214402,214404,214406,214408,214410,214412,214414,214416,214418],{"class":36,"line":242},[34,214397,61180],{"class":181},[34,214399,151],{"class":580},[34,214401,30468],{"class":47},[34,214403,1607],{"class":181},[34,214405,51427],{"class":47},[34,214407,30110],{"class":580},[34,214409,587],{"class":47},[34,214411,1607],{"class":181},[34,214413,121453],{"class":54},[34,214415,184714],{"class":181},[34,214417,11923],{"class":50},[34,214419,1586],{"class":181},[34,214421,214422,214424,214426,214428,214430,214432,214434],{"class":36,"line":250},[34,214423,61180],{"class":181},[34,214425,151],{"class":580},[34,214427,1573],{"class":47},[34,214429,1607],{"class":181},[34,214431,121453],{"class":54},[34,214433,36589],{"class":181},[34,214435,214436],{"class":40},"// Returns Option\u003C&V>\n",[34,214438,214439,214441,214443,214445,214447,214449,214451],{"class":36,"line":263},[34,214440,61180],{"class":181},[34,214442,151],{"class":580},[34,214444,47717],{"class":47},[34,214446,1607],{"class":181},[34,214448,121453],{"class":54},[34,214450,36500],{"class":181},[34,214452,214453],{"class":40},"// Remove entry\n",[34,214455,214456,214458,214460,214463,214465,214467,214469],{"class":36,"line":275},[34,214457,61180],{"class":181},[34,214459,151],{"class":580},[34,214461,214462],{"class":47},"contains_key",[34,214464,1607],{"class":181},[34,214466,121453],{"class":54},[34,214468,15307],{"class":181},[34,214470,214471],{"class":40},"// Check key exists\n",[34,214473,214474,214476,214478,214480,214482],{"class":36,"line":700},[34,214475,61180],{"class":181},[34,214477,151],{"class":580},[34,214479,63603],{"class":47},[34,214481,36722],{"class":181},[34,214483,214484],{"class":40},"// Number of entries\n",[34,214486,214487],{"class":36,"line":706},[34,214488,62],{"emptyLinePlaceholder":61},[34,214490,214491],{"class":36,"line":715},[34,214492,214493],{"class":40},"// Entry API\n",[34,214495,214496,214498,214500,214503,214505,214507,214509,214511,214513,214515,214517,214519,214522,214524,214526],{"class":36,"line":725},[34,214497,61180],{"class":181},[34,214499,151],{"class":580},[34,214501,214502],{"class":47},"entry",[34,214504,1607],{"class":181},[34,214506,51427],{"class":47},[34,214508,30110],{"class":580},[34,214510,587],{"class":47},[34,214512,1607],{"class":181},[34,214514,121453],{"class":54},[34,214516,145291],{"class":181},[34,214518,151],{"class":580},[34,214520,214521],{"class":47},"or_insert",[34,214523,1607],{"class":181},[34,214525,2773],{"class":50},[34,214527,1586],{"class":181},[34,214529,214530],{"class":36,"line":734},[34,214531,62],{"emptyLinePlaceholder":61},[34,214533,214534],{"class":36,"line":742},[34,214535,214536],{"class":40},"// Iteration\n",[34,214538,214539,214541,214544,214546,214548],{"class":36,"line":748},[34,214540,10246],{"class":580},[34,214542,214543],{"class":181}," (key, value) ",[34,214545,10252],{"class":580},[34,214547,11373],{"class":580},[34,214549,214550],{"class":181},"map {\n",[34,214552,214553,214555,214557,214559],{"class":36,"line":754},[34,214554,212618],{"class":47},[34,214556,1607],{"class":181},[34,214558,212705],{"class":54},[34,214560,214561],{"class":181},", key, value);\n",[34,214563,214564],{"class":36,"line":759},[34,214565,693],{"class":181},[388,214567,214568],{},"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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .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":30,"searchDepth":44,"depth":44,"links":214570},[214571],{"id":214267,"depth":44,"text":214262},"HashMaps in Rust.",{},"/rust/hashmaps",{"title":214262,"description":214572},"rust/hashmaps",[161277,18137,46870,212407],"4DtJF_CCTerjPBV2QFG_o2_RKI0E82iqSKRczZToJBo",{"id":214580,"title":214581,"body":214582,"date":402,"description":215091,"extension":404,"meta":215092,"navigation":61,"order":715,"path":215093,"seo":215094,"stem":215095,"subject":161277,"tags":215096,"__hash__":215097},"topics/rust/iterators.md","Iterators",{"type":8,"value":214583,"toc":215088},[214584,214587,215085],[11,214585,214581],{"id":214586},"iterators",[25,214588,214590],{"className":212148,"code":214589,"language":161277,"meta":30,"style":30},"let v = vec![1, 2, 3, 4, 5];\n\n// Iterator methods\nv.iter()                    // Iterate over &T\nv.iter_mut()                // Iterate over &mut T\nv.into_iter()               // Take ownership\n\n// Common iterator adaptors\nv.iter().map(|x| x * 2)\nv.iter().filter(|x| **x > 2)\nv.iter().enumerate()\nv.iter().take(3)\nv.iter().skip(2)\nv.iter().zip(other.iter())\nv.iter().chain(other.iter())\nv.iter().flatten()\nv.iter().rev()\n\n// Consuming adaptors\nv.iter().collect::\u003CVec\u003C_>>()\nv.iter().sum::\u003Ci32>()\nv.iter().fold(0, |acc, x| acc + x)\nv.iter().any(|x| *x > 3)\nv.iter().all(|x| *x > 0)\nv.iter().find(|x| **x > 3)\nv.iter().count()\n",[20,214591,214592,214624,214628,214633,214647,214662,214676,214680,214685,214715,214747,214763,214783,214803,214826,214849,214866,214883,214887,214892,214916,214939,214973,215005,215037,215069],{"__ignoreMap":30},[34,214593,214594,214596,214598,214600,214602,214604,214606,214608,214610,214612,214614,214616,214618,214620,214622],{"class":36,"line":37},[34,214595,8268],{"class":580},[34,214597,106726],{"class":181},[34,214599,1301],{"class":580},[34,214601,214350],{"class":47},[34,214603,10260],{"class":181},[34,214605,8318],{"class":50},[34,214607,1798],{"class":181},[34,214609,8324],{"class":50},[34,214611,1798],{"class":181},[34,214613,3162],{"class":50},[34,214615,1798],{"class":181},[34,214617,18010],{"class":50},[34,214619,1798],{"class":181},[34,214621,2778],{"class":50},[34,214623,3415],{"class":181},[34,214625,214626],{"class":36,"line":44},[34,214627,62],{"emptyLinePlaceholder":61},[34,214629,214630],{"class":36,"line":58},[34,214631,214632],{"class":40},"// Iterator methods\n",[34,214634,214635,214637,214639,214641,214644],{"class":36,"line":65},[34,214636,87307],{"class":181},[34,214638,151],{"class":580},[34,214640,212688],{"class":47},[34,214642,214643],{"class":181},"()                    ",[34,214645,214646],{"class":40},"// Iterate over &T\n",[34,214648,214649,214651,214653,214656,214659],{"class":36,"line":71},[34,214650,87307],{"class":181},[34,214652,151],{"class":580},[34,214654,214655],{"class":47},"iter_mut",[34,214657,214658],{"class":181},"()                ",[34,214660,214661],{"class":40},"// Iterate over &mut T\n",[34,214663,214664,214666,214668,214670,214673],{"class":36,"line":77},[34,214665,87307],{"class":181},[34,214667,151],{"class":580},[34,214669,214376],{"class":47},[34,214671,214672],{"class":181},"()               ",[34,214674,214675],{"class":40},"// Take ownership\n",[34,214677,214678],{"class":36,"line":82},[34,214679,62],{"emptyLinePlaceholder":61},[34,214681,214682],{"class":36,"line":88},[34,214683,214684],{"class":40},"// Common iterator adaptors\n",[34,214686,214687,214689,214691,214693,214695,214697,214699,214701,214703,214705,214707,214709,214711,214713],{"class":36,"line":242},[34,214688,87307],{"class":181},[34,214690,151],{"class":580},[34,214692,212688],{"class":47},[34,214694,1546],{"class":181},[34,214696,151],{"class":580},[34,214698,61180],{"class":47},[34,214700,1607],{"class":181},[34,214702,2670],{"class":580},[34,214704,23655],{"class":181},[34,214706,2670],{"class":580},[34,214708,23172],{"class":181},[34,214710,4289],{"class":580},[34,214712,4292],{"class":50},[34,214714,3372],{"class":181},[34,214716,214717,214719,214721,214723,214725,214727,214729,214731,214733,214735,214737,214739,214741,214743,214745],{"class":36,"line":250},[34,214718,87307],{"class":181},[34,214720,151],{"class":580},[34,214722,212688],{"class":47},[34,214724,1546],{"class":181},[34,214726,151],{"class":580},[34,214728,32125],{"class":47},[34,214730,1607],{"class":181},[34,214732,2670],{"class":580},[34,214734,23655],{"class":181},[34,214736,2670],{"class":580},[34,214738,23439],{"class":580},[34,214740,107898],{"class":181},[34,214742,5691],{"class":580},[34,214744,4292],{"class":50},[34,214746,3372],{"class":181},[34,214748,214749,214751,214753,214755,214757,214759,214761],{"class":36,"line":263},[34,214750,87307],{"class":181},[34,214752,151],{"class":580},[34,214754,212688],{"class":47},[34,214756,1546],{"class":181},[34,214758,151],{"class":580},[34,214760,194690],{"class":47},[34,214762,33899],{"class":181},[34,214764,214765,214767,214769,214771,214773,214775,214777,214779,214781],{"class":36,"line":275},[34,214766,87307],{"class":181},[34,214768,151],{"class":580},[34,214770,212688],{"class":47},[34,214772,1546],{"class":181},[34,214774,151],{"class":580},[34,214776,133907],{"class":47},[34,214778,1607],{"class":181},[34,214780,3162],{"class":50},[34,214782,3372],{"class":181},[34,214784,214785,214787,214789,214791,214793,214795,214797,214799,214801],{"class":36,"line":700},[34,214786,87307],{"class":181},[34,214788,151],{"class":580},[34,214790,212688],{"class":47},[34,214792,1546],{"class":181},[34,214794,151],{"class":580},[34,214796,83530],{"class":47},[34,214798,1607],{"class":181},[34,214800,8324],{"class":50},[34,214802,3372],{"class":181},[34,214804,214805,214807,214809,214811,214813,214815,214817,214820,214822,214824],{"class":36,"line":706},[34,214806,87307],{"class":181},[34,214808,151],{"class":580},[34,214810,212688],{"class":47},[34,214812,1546],{"class":181},[34,214814,151],{"class":580},[34,214816,194698],{"class":47},[34,214818,214819],{"class":181},"(other",[34,214821,151],{"class":580},[34,214823,212688],{"class":47},[34,214825,62281],{"class":181},[34,214827,214828,214830,214832,214834,214836,214838,214841,214843,214845,214847],{"class":36,"line":715},[34,214829,87307],{"class":181},[34,214831,151],{"class":580},[34,214833,212688],{"class":47},[34,214835,1546],{"class":181},[34,214837,151],{"class":580},[34,214839,214840],{"class":47},"chain",[34,214842,214819],{"class":181},[34,214844,151],{"class":580},[34,214846,212688],{"class":47},[34,214848,62281],{"class":181},[34,214850,214851,214853,214855,214857,214859,214861,214864],{"class":36,"line":725},[34,214852,87307],{"class":181},[34,214854,151],{"class":580},[34,214856,212688],{"class":47},[34,214858,1546],{"class":181},[34,214860,151],{"class":580},[34,214862,214863],{"class":47},"flatten",[34,214865,33899],{"class":181},[34,214867,214868,214870,214872,214874,214876,214878,214881],{"class":36,"line":734},[34,214869,87307],{"class":181},[34,214871,151],{"class":580},[34,214873,212688],{"class":47},[34,214875,1546],{"class":181},[34,214877,151],{"class":580},[34,214879,214880],{"class":47},"rev",[34,214882,33899],{"class":181},[34,214884,214885],{"class":36,"line":742},[34,214886,62],{"emptyLinePlaceholder":61},[34,214888,214889],{"class":36,"line":748},[34,214890,214891],{"class":40},"// Consuming adaptors\n",[34,214893,214894,214896,214898,214900,214902,214904,214906,214908,214910,214913],{"class":36,"line":754},[34,214895,87307],{"class":181},[34,214897,151],{"class":580},[34,214899,212688],{"class":47},[34,214901,1546],{"class":181},[34,214903,151],{"class":580},[34,214905,124096],{"class":47},[34,214907,30110],{"class":580},[34,214909,815],{"class":181},[34,214911,214912],{"class":47},"Vec",[34,214914,214915],{"class":181},"\u003C_>>()\n",[34,214917,214918,214920,214922,214924,214926,214928,214930,214932,214934,214936],{"class":36,"line":759},[34,214919,87307],{"class":181},[34,214921,151],{"class":580},[34,214923,212688],{"class":47},[34,214925,1546],{"class":181},[34,214927,151],{"class":580},[34,214929,11135],{"class":47},[34,214931,30110],{"class":580},[34,214933,815],{"class":181},[34,214935,8248],{"class":47},[34,214937,214938],{"class":181},">()\n",[34,214940,214941,214943,214945,214947,214949,214951,214953,214955,214957,214959,214961,214964,214966,214968,214970],{"class":36,"line":771},[34,214942,87307],{"class":181},[34,214944,151],{"class":580},[34,214946,212688],{"class":47},[34,214948,1546],{"class":181},[34,214950,151],{"class":580},[34,214952,134017],{"class":47},[34,214954,1607],{"class":181},[34,214956,2773],{"class":50},[34,214958,1798],{"class":181},[34,214960,2670],{"class":580},[34,214962,214963],{"class":181},"acc, x",[34,214965,2670],{"class":580},[34,214967,125153],{"class":181},[34,214969,2940],{"class":580},[34,214971,214972],{"class":181}," x)\n",[34,214974,214975,214977,214979,214981,214983,214985,214987,214989,214991,214993,214995,214997,214999,215001,215003],{"class":36,"line":794},[34,214976,87307],{"class":181},[34,214978,151],{"class":580},[34,214980,212688],{"class":47},[34,214982,1546],{"class":181},[34,214984,151],{"class":580},[34,214986,106652],{"class":47},[34,214988,1607],{"class":181},[34,214990,2670],{"class":580},[34,214992,23655],{"class":181},[34,214994,2670],{"class":580},[34,214996,18083],{"class":580},[34,214998,107898],{"class":181},[34,215000,5691],{"class":580},[34,215002,11147],{"class":50},[34,215004,3372],{"class":181},[34,215006,215007,215009,215011,215013,215015,215017,215019,215021,215023,215025,215027,215029,215031,215033,215035],{"class":36,"line":824},[34,215008,87307],{"class":181},[34,215010,151],{"class":580},[34,215012,212688],{"class":47},[34,215014,1546],{"class":181},[34,215016,151],{"class":580},[34,215018,17175],{"class":47},[34,215020,1607],{"class":181},[34,215022,2670],{"class":580},[34,215024,23655],{"class":181},[34,215026,2670],{"class":580},[34,215028,18083],{"class":580},[34,215030,107898],{"class":181},[34,215032,5691],{"class":580},[34,215034,8070],{"class":50},[34,215036,3372],{"class":181},[34,215038,215039,215041,215043,215045,215047,215049,215051,215053,215055,215057,215059,215061,215063,215065,215067],{"class":36,"line":830},[34,215040,87307],{"class":181},[34,215042,151],{"class":580},[34,215044,212688],{"class":47},[34,215046,1546],{"class":181},[34,215048,151],{"class":580},[34,215050,12963],{"class":47},[34,215052,1607],{"class":181},[34,215054,2670],{"class":580},[34,215056,23655],{"class":181},[34,215058,2670],{"class":580},[34,215060,23439],{"class":580},[34,215062,107898],{"class":181},[34,215064,5691],{"class":580},[34,215066,11147],{"class":50},[34,215068,3372],{"class":181},[34,215070,215071,215073,215075,215077,215079,215081,215083],{"class":36,"line":839},[34,215072,87307],{"class":181},[34,215074,151],{"class":580},[34,215076,212688],{"class":47},[34,215078,1546],{"class":181},[34,215080,151],{"class":580},[34,215082,4284],{"class":47},[34,215084,33899],{"class":181},[388,215086,215087],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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":30,"searchDepth":44,"depth":44,"links":215089},[215090],{"id":214586,"depth":44,"text":214581},"Iterators in Rust.",{},"/rust/iterators",{"title":214581,"description":215091},"rust/iterators",[161277,18137,46870,212407],"798dF0kBvbkt8grFiwPzX5R50XN6OiiKqDKl3dk77rQ",{"id":215099,"title":215100,"body":215101,"date":402,"description":215333,"extension":404,"meta":215334,"navigation":61,"order":734,"path":215335,"seo":215336,"stem":215337,"subject":161277,"tags":215338,"__hash__":215339},"topics/rust/lifetimes.md","Lifetimes",{"type":8,"value":215102,"toc":215330},[215103,215106,215328],[11,215104,215100],{"id":215105},"lifetimes",[25,215107,215109],{"className":212148,"code":215108,"language":161277,"meta":30,"style":30},"// Lifetime annotation\nfn longest\u003C'a>(x: &'a str, y: &'a str) -> &'a str {\n    if x.len() > y.len() { x } else { y }\n}\n\n// Struct with lifetime\nstruct Excerpt\u003C'a> {\n    part: &'a str,\n}\n\nimpl\u003C'a> Excerpt\u003C'a> {\n    fn level(&self) -> i32 {\n        3\n    }\n}\n\n// Static lifetime (lives for entire program)\nlet s: &'static str = \"I live forever\";\n",[20,215110,215111,215116,215168,215193,215197,215201,215206,215219,215236,215240,215244,215263,215283,215288,215292,215296,215300,215305],{"__ignoreMap":30},[34,215112,215113],{"class":36,"line":37},[34,215114,215115],{"class":40},"// Lifetime annotation\n",[34,215117,215118,215120,215123,215126,215128,215131,215133,215135,215137,215139,215142,215144,215146,215148,215150,215152,215154,215156,215158,215160,215162,215164,215166],{"class":36,"line":44},[34,215119,77761],{"class":580},[34,215121,215122],{"class":47}," longest",[34,215124,215125],{"class":181},"\u003C'",[34,215127,145],{"class":47},[34,215129,215130],{"class":181},">(x",[34,215132,165],{"class":580},[34,215134,11373],{"class":580},[34,215136,105078],{"class":181},[34,215138,145],{"class":47},[34,215140,215141],{"class":47}," str",[34,215143,212819],{"class":181},[34,215145,165],{"class":580},[34,215147,11373],{"class":580},[34,215149,105078],{"class":181},[34,215151,145],{"class":47},[34,215153,215141],{"class":47},[34,215155,4817],{"class":181},[34,215157,24863],{"class":580},[34,215159,11373],{"class":580},[34,215161,105078],{"class":181},[34,215163,145],{"class":47},[34,215165,215141],{"class":47},[34,215167,661],{"class":181},[34,215169,215170,215172,215174,215176,215178,215181,215183,215185,215188,215190],{"class":36,"line":58},[34,215171,2902],{"class":580},[34,215173,31288],{"class":181},[34,215175,151],{"class":580},[34,215177,63603],{"class":47},[34,215179,215180],{"class":181},"() > y",[34,215182,151],{"class":580},[34,215184,63603],{"class":47},[34,215186,215187],{"class":181},"() { x } ",[34,215189,18871],{"class":580},[34,215191,215192],{"class":181}," { y }\n",[34,215194,215195],{"class":36,"line":65},[34,215196,693],{"class":181},[34,215198,215199],{"class":36,"line":71},[34,215200,62],{"emptyLinePlaceholder":61},[34,215202,215203],{"class":36,"line":77},[34,215204,215205],{"class":40},"// Struct with lifetime\n",[34,215207,215208,215210,215213,215215,215217],{"class":36,"line":82},[34,215209,21640],{"class":580},[34,215211,215212],{"class":47}," Excerpt",[34,215214,215125],{"class":181},[34,215216,145],{"class":47},[34,215218,1719],{"class":181},[34,215220,215221,215224,215226,215228,215230,215232,215234],{"class":36,"line":88},[34,215222,215223],{"class":181},"    part",[34,215225,165],{"class":580},[34,215227,11373],{"class":580},[34,215229,105078],{"class":181},[34,215231,145],{"class":47},[34,215233,215141],{"class":47},[34,215235,624],{"class":181},[34,215237,215238],{"class":36,"line":242},[34,215239,693],{"class":181},[34,215241,215242],{"class":36,"line":250},[34,215243,62],{"emptyLinePlaceholder":61},[34,215245,215246,215248,215250,215252,215254,215257,215259,215261],{"class":36,"line":263},[34,215247,213050],{"class":580},[34,215249,215125],{"class":181},[34,215251,145],{"class":47},[34,215253,32840],{"class":181},[34,215255,215256],{"class":47},"Excerpt",[34,215258,215125],{"class":181},[34,215260,145],{"class":47},[34,215262,1719],{"class":181},[34,215264,215265,215267,215269,215271,215273,215275,215277,215279,215281],{"class":36,"line":275},[34,215266,177241],{"class":580},[34,215268,66456],{"class":47},[34,215270,1607],{"class":181},[34,215272,19502],{"class":580},[34,215274,210943],{"class":50},[34,215276,4817],{"class":181},[34,215278,24863],{"class":580},[34,215280,8049],{"class":47},[34,215282,661],{"class":181},[34,215284,215285],{"class":36,"line":700},[34,215286,215287],{"class":50},"        3\n",[34,215289,215290],{"class":36,"line":706},[34,215291,3229],{"class":181},[34,215293,215294],{"class":36,"line":715},[34,215295,693],{"class":181},[34,215297,215298],{"class":36,"line":725},[34,215299,62],{"emptyLinePlaceholder":61},[34,215301,215302],{"class":36,"line":734},[34,215303,215304],{"class":40},"// Static lifetime (lives for entire program)\n",[34,215306,215307,215309,215311,215313,215315,215317,215319,215321,215323,215326],{"class":36,"line":742},[34,215308,8268],{"class":580},[34,215310,34803],{"class":181},[34,215312,165],{"class":580},[34,215314,11373],{"class":580},[34,215316,105078],{"class":181},[34,215318,41002],{"class":47},[34,215320,215141],{"class":47},[34,215322,683],{"class":580},[34,215324,215325],{"class":54}," \"I live forever\"",[34,215327,593],{"class":181},[388,215329,49910],{},{"title":30,"searchDepth":44,"depth":44,"links":215331},[215332],{"id":215105,"depth":44,"text":215100},"Lifetimes in Rust.",{},"/rust/lifetimes",{"title":215100,"description":215333},"rust/lifetimes",[161277,18137,46870,212407],"7kSchWUUQMHw71sM15dwLRwFRTxVNs_fwSQnpVbcJwM",{"id":215341,"title":215342,"body":215343,"date":2633,"description":215423,"extension":404,"meta":215424,"navigation":61,"order":37,"path":215425,"seo":215426,"stem":215427,"subject":161277,"tags":215428,"__hash__":215429},"topics/rust/overview.md","Rust",{"type":8,"value":215344,"toc":215421},[215345],[309,215346,215347,215352,215357,215363,215367,215371,215375,215380,215386,215391,215395,215399,215405,215409,215413,215417],{},[312,215348,215349],{},[145,215350,32171],{"href":215351},"/rust/variables-data-types",[312,215353,215354],{},[145,215355,23101],{"href":215356},"/rust/strings",[312,215358,215359],{},[145,215360,215362],{"href":215361},"/rust/vectors","Vectors",[312,215364,215365],{},[145,215366,214262],{"href":214574},[312,215368,215369],{},[145,215370,10991],{"href":213865},[312,215372,215373],{},[145,215374,18818],{"href":212720},[312,215376,215377],{},[145,215378,61477],{"href":215379},"/rust/pattern-matching",[312,215381,215382],{},[145,215383,215385],{"href":215384},"/rust/ownership-borrowing","Ownership & Borrowing",[312,215387,215388],{},[145,215389,23107],{"href":215390},"/rust/structs",[312,215392,215393],{},[145,215394,25912],{"href":213090},[312,215396,215397],{},[145,215398,19352],{"href":213521},[312,215400,215401],{},[145,215402,215404],{"href":215403},"/rust/traits","Traits",[312,215406,215407],{},[145,215408,26423],{"href":214255},[312,215410,215411],{},[145,215412,214581],{"href":215093},[312,215414,215415],{},[145,215416,212140],{"href":212403},[312,215418,215419],{},[145,215420,215100],{"href":215335},{"title":30,"searchDepth":44,"depth":44,"links":215422},[],"Rust syntax, ownership, borrowing, and common patterns for safe systems programming.",{},"/rust/overview",{"title":215342,"description":215423},"rust/overview",[161277,18137,46870,212407],"XyuzQoKJ3MFAbmZPEUlARASZ4qQ6SZYRqNYbmmSXees",{"id":215431,"title":215385,"body":215432,"date":402,"description":215812,"extension":404,"meta":215813,"navigation":61,"order":242,"path":215384,"seo":215814,"stem":215815,"subject":161277,"tags":215816,"__hash__":215817},"topics/rust/ownership-borrowing.md",{"type":8,"value":215433,"toc":215809},[215434,215437,215807],[11,215435,215385],{"id":215436},"ownership-borrowing",[25,215438,215440],{"className":212148,"code":215439,"language":161277,"meta":30,"style":30},"// Ownership - each value has one owner\nlet s1 = String::from(\"hello\");\nlet s2 = s1;      // s1 is moved, no longer valid\n// println!(\"{}\", s1); // Error!\n\n// Clone (deep copy)\nlet s1 = String::from(\"hello\");\nlet s2 = s1.clone();  // Both valid\n\n// References (borrowing)\nlet s = String::from(\"hello\");\nlet len = calculate_length(&s);  // Borrow\nprintln!(\"{}\", s);               // Still valid\n\nfn calculate_length(s: &String) -> usize {\n    s.len()\n}\n\n// Mutable references (only one at a time)\nlet mut s = String::from(\"hello\");\nchange(&mut s);\n\nfn change(s: &mut String) {\n    s.push_str(\", world\");\n}\n\n// Slices (references to part of data)\nlet s = String::from(\"hello world\");\nlet hello = &s[0..5];   // &str slice\nlet world = &s[6..11];\n",[20,215441,215442,215447,215467,215481,215489,215493,215498,215518,215538,215542,215547,215567,215588,215602,215606,215630,215641,215645,215649,215654,215676,215689,215693,215711,215727,215731,215735,215740,215761,215786],{"__ignoreMap":30},[34,215443,215444],{"class":36,"line":37},[34,215445,215446],{"class":40},"// Ownership - each value has one owner\n",[34,215448,215449,215451,215453,215455,215457,215459,215461,215463,215465],{"class":36,"line":44},[34,215450,8268],{"class":580},[34,215452,143992],{"class":181},[34,215454,1301],{"class":580},[34,215456,131103],{"class":47},[34,215458,30110],{"class":580},[34,215460,587],{"class":47},[34,215462,1607],{"class":181},[34,215464,17360],{"class":54},[34,215466,1586],{"class":181},[34,215468,215469,215471,215473,215475,215478],{"class":36,"line":58},[34,215470,8268],{"class":580},[34,215472,144004],{"class":181},[34,215474,1301],{"class":580},[34,215476,215477],{"class":181}," s1;      ",[34,215479,215480],{"class":40},"// s1 is moved, no longer valid\n",[34,215482,215483,215486],{"class":36,"line":65},[34,215484,215485],{"class":40},"// println!(\"{}\", s1);",[34,215487,215488],{"class":40}," // Error!\n",[34,215490,215491],{"class":36,"line":71},[34,215492,62],{"emptyLinePlaceholder":61},[34,215494,215495],{"class":36,"line":77},[34,215496,215497],{"class":40},"// Clone (deep copy)\n",[34,215499,215500,215502,215504,215506,215508,215510,215512,215514,215516],{"class":36,"line":82},[34,215501,8268],{"class":580},[34,215503,143992],{"class":181},[34,215505,1301],{"class":580},[34,215507,131103],{"class":47},[34,215509,30110],{"class":580},[34,215511,587],{"class":47},[34,215513,1607],{"class":181},[34,215515,17360],{"class":54},[34,215517,1586],{"class":181},[34,215519,215520,215522,215524,215526,215529,215531,215533,215535],{"class":36,"line":88},[34,215521,8268],{"class":580},[34,215523,144004],{"class":181},[34,215525,1301],{"class":580},[34,215527,215528],{"class":181}," s1",[34,215530,151],{"class":580},[34,215532,95256],{"class":47},[34,215534,123737],{"class":181},[34,215536,215537],{"class":40},"// Both valid\n",[34,215539,215540],{"class":36,"line":242},[34,215541,62],{"emptyLinePlaceholder":61},[34,215543,215544],{"class":36,"line":250},[34,215545,215546],{"class":40},"// References (borrowing)\n",[34,215548,215549,215551,215553,215555,215557,215559,215561,215563,215565],{"class":36,"line":263},[34,215550,8268],{"class":580},[34,215552,104963],{"class":181},[34,215554,1301],{"class":580},[34,215556,131103],{"class":47},[34,215558,30110],{"class":580},[34,215560,587],{"class":47},[34,215562,1607],{"class":181},[34,215564,17360],{"class":54},[34,215566,1586],{"class":181},[34,215568,215569,215571,215573,215575,215578,215580,215582,215585],{"class":36,"line":275},[34,215570,8268],{"class":580},[34,215572,21171],{"class":181},[34,215574,1301],{"class":580},[34,215576,215577],{"class":47}," calculate_length",[34,215579,1607],{"class":181},[34,215581,19502],{"class":580},[34,215583,215584],{"class":181},"s);  ",[34,215586,215587],{"class":40},"// Borrow\n",[34,215589,215590,215592,215594,215596,215599],{"class":36,"line":700},[34,215591,212161],{"class":47},[34,215593,1607],{"class":181},[34,215595,212623],{"class":54},[34,215597,215598],{"class":181},", s);               ",[34,215600,215601],{"class":40},"// Still valid\n",[34,215603,215604],{"class":36,"line":706},[34,215605,62],{"emptyLinePlaceholder":61},[34,215607,215608,215610,215612,215615,215617,215619,215621,215623,215625,215628],{"class":36,"line":715},[34,215609,77761],{"class":580},[34,215611,215577],{"class":47},[34,215613,215614],{"class":181},"(s",[34,215616,165],{"class":580},[34,215618,11373],{"class":580},[34,215620,51427],{"class":47},[34,215622,4817],{"class":181},[34,215624,24863],{"class":580},[34,215626,215627],{"class":47}," usize",[34,215629,661],{"class":181},[34,215631,215632,215635,215637,215639],{"class":36,"line":725},[34,215633,215634],{"class":181},"    s",[34,215636,151],{"class":580},[34,215638,63603],{"class":47},[34,215640,33899],{"class":181},[34,215642,215643],{"class":36,"line":734},[34,215644,693],{"class":181},[34,215646,215647],{"class":36,"line":742},[34,215648,62],{"emptyLinePlaceholder":61},[34,215650,215651],{"class":36,"line":748},[34,215652,215653],{"class":40},"// Mutable references (only one at a time)\n",[34,215655,215656,215658,215660,215662,215664,215666,215668,215670,215672,215674],{"class":36,"line":754},[34,215657,8268],{"class":580},[34,215659,213929],{"class":580},[34,215661,104963],{"class":181},[34,215663,1301],{"class":580},[34,215665,131103],{"class":47},[34,215667,30110],{"class":580},[34,215669,587],{"class":47},[34,215671,1607],{"class":181},[34,215673,17360],{"class":54},[34,215675,1586],{"class":181},[34,215677,215678,215681,215683,215686],{"class":36,"line":759},[34,215679,215680],{"class":47},"change",[34,215682,1607],{"class":181},[34,215684,215685],{"class":580},"&mut",[34,215687,215688],{"class":181}," s);\n",[34,215690,215691],{"class":36,"line":771},[34,215692,62],{"emptyLinePlaceholder":61},[34,215694,215695,215697,215700,215702,215704,215707,215709],{"class":36,"line":794},[34,215696,77761],{"class":580},[34,215698,215699],{"class":47}," change",[34,215701,215614],{"class":181},[34,215703,165],{"class":580},[34,215705,215706],{"class":580}," &mut",[34,215708,131103],{"class":47},[34,215710,2416],{"class":181},[34,215712,215713,215715,215717,215720,215722,215725],{"class":36,"line":824},[34,215714,215634],{"class":181},[34,215716,151],{"class":580},[34,215718,215719],{"class":47},"push_str",[34,215721,1607],{"class":181},[34,215723,215724],{"class":54},"\", world\"",[34,215726,1586],{"class":181},[34,215728,215729],{"class":36,"line":830},[34,215730,693],{"class":181},[34,215732,215733],{"class":36,"line":839},[34,215734,62],{"emptyLinePlaceholder":61},[34,215736,215737],{"class":36,"line":854},[34,215738,215739],{"class":40},"// Slices (references to part of data)\n",[34,215741,215742,215744,215746,215748,215750,215752,215754,215756,215759],{"class":36,"line":860},[34,215743,8268],{"class":580},[34,215745,104963],{"class":181},[34,215747,1301],{"class":580},[34,215749,131103],{"class":47},[34,215751,30110],{"class":580},[34,215753,587],{"class":47},[34,215755,1607],{"class":181},[34,215757,215758],{"class":54},"\"hello world\"",[34,215760,1586],{"class":181},[34,215762,215763,215765,215768,215770,215772,215774,215776,215778,215780,215783],{"class":36,"line":865},[34,215764,8268],{"class":580},[34,215766,215767],{"class":181}," hello ",[34,215769,1301],{"class":580},[34,215771,11373],{"class":580},[34,215773,195126],{"class":181},[34,215775,2773],{"class":50},[34,215777,101074],{"class":580},[34,215779,2778],{"class":50},[34,215781,215782],{"class":181},"];   ",[34,215784,215785],{"class":40},"// &str slice\n",[34,215787,215788,215790,215793,215795,215797,215799,215801,215803,215805],{"class":36,"line":870},[34,215789,8268],{"class":580},[34,215791,215792],{"class":181}," world ",[34,215794,1301],{"class":580},[34,215796,11373],{"class":580},[34,215798,195126],{"class":181},[34,215800,18019],{"class":50},[34,215802,101074],{"class":580},[34,215804,65537],{"class":50},[34,215806,3415],{"class":181},[388,215808,34928],{},{"title":30,"searchDepth":44,"depth":44,"links":215810},[215811],{"id":215436,"depth":44,"text":215385},"Ownership & Borrowing in Rust.",{},{"title":215385,"description":215812},"rust/ownership-borrowing",[161277,18137,46870,212407],"y0qLsyineuE2WHvisijEeJp9yfEDtC1QLh9qXc9tpjc",{"id":215819,"title":61477,"body":215820,"date":402,"description":216169,"extension":404,"meta":216170,"navigation":61,"order":88,"path":215379,"seo":216171,"stem":216172,"subject":161277,"tags":216173,"__hash__":216174},"topics/rust/pattern-matching.md",{"type":8,"value":215821,"toc":216166},[215822,215824,216164],[11,215823,61477],{"id":61476},[25,215825,215827],{"className":212148,"code":215826,"language":161277,"meta":30,"style":30},"// Match expression\nlet x = 1;\nmatch x {\n    1 => println!(\"one\"),\n    2 | 3 => println!(\"two or three\"),\n    4..=10 => println!(\"four to ten\"),\n    _ => println!(\"other\"),\n}\n\n// Match with binding\nmatch x {\n    n @ 1..=5 => println!(\"got {}\", n),\n    _ => (),\n}\n\n// Match on Option\nmatch some_option {\n    Some(value) => println!(\"{}\", value),\n    None => println!(\"nothing\"),\n}\n\n// Match on Result\nmatch some_result {\n    Ok(value) => println!(\"{}\", value),\n    Err(e) => println!(\"Error: {}\", e),\n}\n\n// If let (shorthand for single match)\nif let Some(value) = some_option {\n    println!(\"{}\", value);\n}\n\n// While let\nwhile let Some(value) = stack.pop() {\n    println!(\"{}\", value);\n}\n",[20,215828,215829,215834,215846,215853,215867,215886,215906,215921,215925,215929,215934,215940,215965,215974,215978,215982,215987,215994,216012,216027,216031,216035,216039,216046,216062,216078,216082,216086,216091,216106,216117,216121,216125,216130,216150,216160],{"__ignoreMap":30},[34,215830,215831],{"class":36,"line":37},[34,215832,215833],{"class":40},"// Match expression\n",[34,215835,215836,215838,215840,215842,215844],{"class":36,"line":44},[34,215837,8268],{"class":580},[34,215839,23172],{"class":181},[34,215841,1301],{"class":580},[34,215843,3567],{"class":50},[34,215845,593],{"class":181},[34,215847,215848,215850],{"class":36,"line":58},[34,215849,193892],{"class":580},[34,215851,215852],{"class":181}," x {\n",[34,215854,215855,215857,215859,215861,215863,215865],{"class":36,"line":65},[34,215856,134718],{"class":50},[34,215858,1895],{"class":580},[34,215860,213276],{"class":47},[34,215862,1607],{"class":181},[34,215864,31883],{"class":54},[34,215866,50836],{"class":181},[34,215868,215869,215871,215873,215875,215877,215879,215881,215884],{"class":36,"line":71},[34,215870,134728],{"class":50},[34,215872,7197],{"class":580},[34,215874,11147],{"class":50},[34,215876,1895],{"class":580},[34,215878,213276],{"class":47},[34,215880,1607],{"class":181},[34,215882,215883],{"class":54},"\"two or three\"",[34,215885,50836],{"class":181},[34,215887,215888,215891,215893,215895,215897,215899,215901,215904],{"class":36,"line":77},[34,215889,215890],{"class":50},"    4",[34,215892,212646],{"class":580},[34,215894,11923],{"class":50},[34,215896,1895],{"class":580},[34,215898,213276],{"class":47},[34,215900,1607],{"class":181},[34,215902,215903],{"class":54},"\"four to ten\"",[34,215905,50836],{"class":181},[34,215907,215908,215910,215912,215914,215916,215919],{"class":36,"line":82},[34,215909,107798],{"class":181},[34,215911,3361],{"class":580},[34,215913,213276],{"class":47},[34,215915,1607],{"class":181},[34,215917,215918],{"class":54},"\"other\"",[34,215920,50836],{"class":181},[34,215922,215923],{"class":36,"line":88},[34,215924,693],{"class":181},[34,215926,215927],{"class":36,"line":242},[34,215928,62],{"emptyLinePlaceholder":61},[34,215930,215931],{"class":36,"line":250},[34,215932,215933],{"class":40},"// Match with binding\n",[34,215935,215936,215938],{"class":36,"line":263},[34,215937,193892],{"class":580},[34,215939,215852],{"class":181},[34,215941,215942,215945,215947,215949,215951,215953,215955,215957,215959,215962],{"class":36,"line":275},[34,215943,215944],{"class":181},"    n ",[34,215946,607],{"class":580},[34,215948,3567],{"class":50},[34,215950,212646],{"class":580},[34,215952,2778],{"class":50},[34,215954,1895],{"class":580},[34,215956,213276],{"class":47},[34,215958,1607],{"class":181},[34,215960,215961],{"class":54},"\"got {}\"",[34,215963,215964],{"class":181},", n),\n",[34,215966,215967,215969,215971],{"class":36,"line":700},[34,215968,107798],{"class":181},[34,215970,3361],{"class":580},[34,215972,215973],{"class":181}," (),\n",[34,215975,215976],{"class":36,"line":706},[34,215977,693],{"class":181},[34,215979,215980],{"class":36,"line":715},[34,215981,62],{"emptyLinePlaceholder":61},[34,215983,215984],{"class":36,"line":725},[34,215985,215986],{"class":40},"// Match on Option\n",[34,215988,215989,215991],{"class":36,"line":734},[34,215990,193892],{"class":580},[34,215992,215993],{"class":181}," some_option {\n",[34,215995,215996,215998,216001,216003,216005,216007,216009],{"class":36,"line":742},[34,215997,214230],{"class":47},[34,215999,216000],{"class":181},"(value) ",[34,216002,3361],{"class":580},[34,216004,213276],{"class":47},[34,216006,1607],{"class":181},[34,216008,212623],{"class":54},[34,216010,216011],{"class":181},", value),\n",[34,216013,216014,216016,216018,216020,216022,216025],{"class":36,"line":748},[34,216015,214241],{"class":47},[34,216017,1895],{"class":580},[34,216019,213276],{"class":47},[34,216021,1607],{"class":181},[34,216023,216024],{"class":54},"\"nothing\"",[34,216026,50836],{"class":181},[34,216028,216029],{"class":36,"line":754},[34,216030,693],{"class":181},[34,216032,216033],{"class":36,"line":759},[34,216034,62],{"emptyLinePlaceholder":61},[34,216036,216037],{"class":36,"line":771},[34,216038,213255],{"class":40},[34,216040,216041,216043],{"class":36,"line":794},[34,216042,193892],{"class":580},[34,216044,216045],{"class":181}," some_result {\n",[34,216047,216048,216050,216052,216054,216056,216058,216060],{"class":36,"line":824},[34,216049,213268],{"class":47},[34,216051,216000],{"class":181},[34,216053,3361],{"class":580},[34,216055,213276],{"class":47},[34,216057,1607],{"class":181},[34,216059,212623],{"class":54},[34,216061,216011],{"class":181},[34,216063,216064,216066,216068,216070,216072,216074,216076],{"class":36,"line":830},[34,216065,213288],{"class":47},[34,216067,213291],{"class":181},[34,216069,3361],{"class":580},[34,216071,213276],{"class":47},[34,216073,1607],{"class":181},[34,216075,213300],{"class":54},[34,216077,213303],{"class":181},[34,216079,216080],{"class":36,"line":839},[34,216081,693],{"class":181},[34,216083,216084],{"class":36,"line":854},[34,216085,62],{"emptyLinePlaceholder":61},[34,216087,216088],{"class":36,"line":860},[34,216089,216090],{"class":40},"// If let (shorthand for single match)\n",[34,216092,216093,216095,216098,216100,216102,216104],{"class":36,"line":865},[34,216094,10383],{"class":580},[34,216096,216097],{"class":580}," let",[34,216099,212929],{"class":47},[34,216101,216000],{"class":181},[34,216103,1301],{"class":580},[34,216105,215993],{"class":181},[34,216107,216108,216110,216112,216114],{"class":36,"line":870},[34,216109,212618],{"class":47},[34,216111,1607],{"class":181},[34,216113,212623],{"class":54},[34,216115,216116],{"class":181},", value);\n",[34,216118,216119],{"class":36,"line":876},[34,216120,693],{"class":181},[34,216122,216123],{"class":36,"line":885},[34,216124,62],{"emptyLinePlaceholder":61},[34,216126,216127],{"class":36,"line":895},[34,216128,216129],{"class":40},"// While let\n",[34,216131,216132,216134,216136,216138,216140,216142,216144,216146,216148],{"class":36,"line":904},[34,216133,12005],{"class":580},[34,216135,216097],{"class":580},[34,216137,212929],{"class":47},[34,216139,216000],{"class":181},[34,216141,1301],{"class":580},[34,216143,68200],{"class":181},[34,216145,151],{"class":580},[34,216147,50216],{"class":47},[34,216149,836],{"class":181},[34,216151,216152,216154,216156,216158],{"class":36,"line":915},[34,216153,212618],{"class":47},[34,216155,1607],{"class":181},[34,216157,212623],{"class":54},[34,216159,216116],{"class":181},[34,216161,216162],{"class":36,"line":927},[34,216163,693],{"class":181},[388,216165,19339],{},{"title":30,"searchDepth":44,"depth":44,"links":216167},[216168],{"id":61476,"depth":44,"text":61477},"Pattern Matching in Rust.",{},{"title":61477,"description":216169},"rust/pattern-matching",[161277,18137,46870,212407],"1k3nyyEs-AUjgBk5SuC-3KF1YN04wOwnIaytfntEI4M",{"id":216176,"title":23101,"body":216177,"date":402,"description":216542,"extension":404,"meta":216543,"navigation":61,"order":58,"path":215356,"seo":216544,"stem":216545,"subject":161277,"tags":216546,"__hash__":216547},"topics/rust/strings.md",{"type":8,"value":216178,"toc":216539},[216179,216181,216537],[11,216180,23101],{"id":24353},[25,216182,216184],{"className":212148,"code":216183,"language":161277,"meta":30,"style":30},"// String types\nlet s1: &str = \"hello\";           // String slice (immutable)\nlet s2: String = String::from(\"hello\"); // Owned String\n\n// String methods\nlet s = String::from(\"hello world\");\ns.len()                    // Length in bytes\ns.is_empty()               // Check if empty\ns.contains(\"world\")        // Check substring\ns.replace(\"world\", \"rust\") // Replace\ns.to_uppercase()           // UPPERCASE\ns.to_lowercase()           // lowercase\ns.trim()                   // Remove whitespace\ns.split(\" \")               // Split iterator\n\n// String concatenation\nlet s1 = String::from(\"Hello, \");\nlet s2 = String::from(\"world!\");\nlet s3 = s1 + &s2;         // s1 is moved\nlet s4 = format!(\"{}{}\", s3, \"!\"); // format! macro\n\n// Converting\nlet num: i32 = \"42\".parse().unwrap();\nlet s = 42.to_string();\n",[20,216185,216186,216191,216212,216240,216244,216249,216269,216282,216296,216313,216334,216347,216360,216373,216390,216394,216398,216418,216439,216459,216486,216490,216495,216522],{"__ignoreMap":30},[34,216187,216188],{"class":36,"line":37},[34,216189,216190],{"class":40},"// String types\n",[34,216192,216193,216195,216197,216199,216201,216203,216205,216207,216209],{"class":36,"line":44},[34,216194,8268],{"class":580},[34,216196,215528],{"class":181},[34,216198,165],{"class":580},[34,216200,11373],{"class":580},[34,216202,12646],{"class":47},[34,216204,683],{"class":580},[34,216206,13866],{"class":54},[34,216208,38595],{"class":181},[34,216210,216211],{"class":40},"// String slice (immutable)\n",[34,216213,216214,216216,216219,216221,216223,216225,216227,216229,216231,216233,216235,216237],{"class":36,"line":58},[34,216215,8268],{"class":580},[34,216217,216218],{"class":181}," s2",[34,216220,165],{"class":580},[34,216222,131103],{"class":47},[34,216224,683],{"class":580},[34,216226,131103],{"class":47},[34,216228,30110],{"class":580},[34,216230,587],{"class":47},[34,216232,1607],{"class":181},[34,216234,17360],{"class":54},[34,216236,8260],{"class":181},[34,216238,216239],{"class":40},"// Owned String\n",[34,216241,216242],{"class":36,"line":65},[34,216243,62],{"emptyLinePlaceholder":61},[34,216245,216246],{"class":36,"line":71},[34,216247,216248],{"class":40},"// String methods\n",[34,216250,216251,216253,216255,216257,216259,216261,216263,216265,216267],{"class":36,"line":77},[34,216252,8268],{"class":580},[34,216254,104963],{"class":181},[34,216256,1301],{"class":580},[34,216258,131103],{"class":47},[34,216260,30110],{"class":580},[34,216262,587],{"class":47},[34,216264,1607],{"class":181},[34,216266,215758],{"class":54},[34,216268,1586],{"class":181},[34,216270,216271,216273,216275,216277,216279],{"class":36,"line":82},[34,216272,523],{"class":181},[34,216274,151],{"class":580},[34,216276,63603],{"class":47},[34,216278,214643],{"class":181},[34,216280,216281],{"class":40},"// Length in bytes\n",[34,216283,216284,216286,216288,216291,216293],{"class":36,"line":88},[34,216285,523],{"class":181},[34,216287,151],{"class":580},[34,216289,216290],{"class":47},"is_empty",[34,216292,214672],{"class":181},[34,216294,216295],{"class":40},"// Check if empty\n",[34,216297,216298,216300,216302,216304,216306,216308,216310],{"class":36,"line":242},[34,216299,523],{"class":181},[34,216301,151],{"class":580},[34,216303,51780],{"class":47},[34,216305,1607],{"class":181},[34,216307,211787],{"class":54},[34,216309,103864],{"class":181},[34,216311,216312],{"class":40},"// Check substring\n",[34,216314,216315,216317,216319,216321,216323,216325,216327,216330,216332],{"class":36,"line":250},[34,216316,523],{"class":181},[34,216318,151],{"class":580},[34,216320,13943],{"class":47},[34,216322,1607],{"class":181},[34,216324,211787],{"class":54},[34,216326,1798],{"class":181},[34,216328,216329],{"class":54},"\"rust\"",[34,216331,4817],{"class":181},[34,216333,177175],{"class":40},[34,216335,216336,216338,216340,216342,216345],{"class":36,"line":263},[34,216337,523],{"class":181},[34,216339,151],{"class":580},[34,216341,213384],{"class":47},[34,216343,216344],{"class":181},"()           ",[34,216346,177637],{"class":40},[34,216348,216349,216351,216353,216356,216358],{"class":36,"line":275},[34,216350,523],{"class":181},[34,216352,151],{"class":580},[34,216354,216355],{"class":47},"to_lowercase",[34,216357,216344],{"class":181},[34,216359,177647],{"class":40},[34,216361,216362,216364,216366,216368,216371],{"class":36,"line":700},[34,216363,523],{"class":181},[34,216365,151],{"class":580},[34,216367,72217],{"class":47},[34,216369,216370],{"class":181},"()                   ",[34,216372,37883],{"class":40},[34,216374,216375,216377,216379,216381,216383,216385,216387],{"class":36,"line":706},[34,216376,523],{"class":181},[34,216378,151],{"class":580},[34,216380,124354],{"class":47},[34,216382,1607],{"class":181},[34,216384,177200],{"class":54},[34,216386,152370],{"class":181},[34,216388,216389],{"class":40},"// Split iterator\n",[34,216391,216392],{"class":36,"line":715},[34,216393,62],{"emptyLinePlaceholder":61},[34,216395,216396],{"class":36,"line":725},[34,216397,177476],{"class":40},[34,216399,216400,216402,216404,216406,216408,216410,216412,216414,216416],{"class":36,"line":734},[34,216401,8268],{"class":580},[34,216403,143992],{"class":181},[34,216405,1301],{"class":580},[34,216407,131103],{"class":47},[34,216409,30110],{"class":580},[34,216411,587],{"class":47},[34,216413,1607],{"class":181},[34,216415,194985],{"class":54},[34,216417,1586],{"class":181},[34,216419,216420,216422,216424,216426,216428,216430,216432,216434,216437],{"class":36,"line":742},[34,216421,8268],{"class":580},[34,216423,144004],{"class":181},[34,216425,1301],{"class":580},[34,216427,131103],{"class":47},[34,216429,30110],{"class":580},[34,216431,587],{"class":47},[34,216433,1607],{"class":181},[34,216435,216436],{"class":54},"\"world!\"",[34,216438,1586],{"class":181},[34,216440,216441,216443,216445,216447,216449,216451,216453,216456],{"class":36,"line":748},[34,216442,8268],{"class":580},[34,216444,144016],{"class":181},[34,216446,1301],{"class":580},[34,216448,143992],{"class":181},[34,216450,2940],{"class":580},[34,216452,11373],{"class":580},[34,216454,216455],{"class":181},"s2;         ",[34,216457,216458],{"class":40},"// s1 is moved\n",[34,216460,216461,216463,216466,216468,216471,216473,216476,216479,216481,216483],{"class":36,"line":754},[34,216462,8268],{"class":580},[34,216464,216465],{"class":181}," s4 ",[34,216467,1301],{"class":580},[34,216469,216470],{"class":47}," format!",[34,216472,1607],{"class":181},[34,216474,216475],{"class":54},"\"{}{}\"",[34,216477,216478],{"class":181},", s3, ",[34,216480,32548],{"class":54},[34,216482,8260],{"class":181},[34,216484,216485],{"class":40},"// format! macro\n",[34,216487,216488],{"class":36,"line":759},[34,216489,62],{"emptyLinePlaceholder":61},[34,216491,216492],{"class":36,"line":771},[34,216493,216494],{"class":40},"// Converting\n",[34,216496,216497,216499,216501,216503,216505,216507,216510,216512,216514,216516,216518,216520],{"class":36,"line":794},[34,216498,8268],{"class":580},[34,216500,213478],{"class":181},[34,216502,165],{"class":580},[34,216504,8049],{"class":47},[34,216506,683],{"class":580},[34,216508,216509],{"class":54}," \"42\"",[34,216511,151],{"class":580},[34,216513,126562],{"class":47},[34,216515,1546],{"class":181},[34,216517,151],{"class":580},[34,216519,213191],{"class":47},[34,216521,851],{"class":181},[34,216523,216524,216526,216528,216530,216533,216535],{"class":36,"line":824},[34,216525,8268],{"class":580},[34,216527,104963],{"class":181},[34,216529,1301],{"class":580},[34,216531,216532],{"class":50}," 42.",[34,216534,213034],{"class":47},[34,216536,851],{"class":181},[388,216538,34928],{},{"title":30,"searchDepth":44,"depth":44,"links":216540},[216541],{"id":24353,"depth":44,"text":23101},"Strings in Rust.",{},{"title":23101,"description":216542},"rust/strings",[161277,18137,46870,212407],"uwSP7UoNpqmKaaVHCLTgbGGNa11hOPHBReCJ6JwwKR0",{"id":216549,"title":23107,"body":216550,"date":402,"description":216970,"extension":404,"meta":216971,"navigation":61,"order":250,"path":215390,"seo":216972,"stem":216973,"subject":161277,"tags":216974,"__hash__":216975},"topics/rust/structs.md",{"type":8,"value":216551,"toc":216967},[216552,216554,216965],[11,216553,23107],{"id":24666},[25,216555,216557],{"className":212148,"code":216556,"language":161277,"meta":30,"style":30},"// Defining a struct\nstruct User {\n    username: String,\n    email: String,\n    active: bool,\n}\n\n// Creating instances\nlet user = User {\n    username: String::from(\"alice\"),\n    email: String::from(\"alice@example.com\"),\n    active: true,\n};\n\n// Shorthand (when variable names match)\nlet username = String::from(\"bob\");\nlet user = User { username, ..user }; // Struct update syntax\n\n// Tuple structs\nstruct Point(i32, i32, i32);\nlet origin = Point(0, 0, 0);\n\n// Unit-like structs\nstruct AlwaysEqual;\n\n// Methods with impl\nimpl User {\n    // Associated function (constructor)\n    fn new(username: String, email: String) -> Self {\n        Self { username, email, active: true }\n    }\n    \n    // Method (takes &self)\n    fn is_active(&self) -> bool {\n        self.active\n    }\n    \n    // Mutable method\n    fn deactivate(&mut self) {\n        self.active = false;\n    }\n}\n",[20,216558,216559,216564,216572,216583,216594,216605,216609,216613,216618,216631,216650,216668,216678,216682,216686,216691,216713,216734,216738,216743,216763,216788,216792,216797,216806,216810,216815,216823,216828,216857,216871,216875,216879,216884,216905,216914,216918,216922,216927,216942,216957,216961],{"__ignoreMap":30},[34,216560,216561],{"class":36,"line":37},[34,216562,216563],{"class":40},"// Defining a struct\n",[34,216565,216566,216568,216570],{"class":36,"line":44},[34,216567,21640],{"class":580},[34,216569,3950],{"class":47},[34,216571,661],{"class":181},[34,216573,216574,216577,216579,216581],{"class":36,"line":58},[34,216575,216576],{"class":181},"    username",[34,216578,165],{"class":580},[34,216580,131103],{"class":47},[34,216582,624],{"class":181},[34,216584,216585,216588,216590,216592],{"class":36,"line":65},[34,216586,216587],{"class":181},"    email",[34,216589,165],{"class":580},[34,216591,131103],{"class":47},[34,216593,624],{"class":181},[34,216595,216596,216599,216601,216603],{"class":36,"line":71},[34,216597,216598],{"class":181},"    active",[34,216600,165],{"class":580},[34,216602,37127],{"class":47},[34,216604,624],{"class":181},[34,216606,216607],{"class":36,"line":77},[34,216608,693],{"class":181},[34,216610,216611],{"class":36,"line":82},[34,216612,62],{"emptyLinePlaceholder":61},[34,216614,216615],{"class":36,"line":88},[34,216616,216617],{"class":40},"// Creating instances\n",[34,216619,216620,216622,216625,216627,216629],{"class":36,"line":242},[34,216621,8268],{"class":580},[34,216623,216624],{"class":181}," user ",[34,216626,1301],{"class":580},[34,216628,3950],{"class":47},[34,216630,661],{"class":181},[34,216632,216633,216635,216637,216639,216641,216643,216645,216648],{"class":36,"line":250},[34,216634,216576],{"class":181},[34,216636,165],{"class":580},[34,216638,131103],{"class":47},[34,216640,30110],{"class":580},[34,216642,587],{"class":47},[34,216644,1607],{"class":181},[34,216646,216647],{"class":54},"\"alice\"",[34,216649,50836],{"class":181},[34,216651,216652,216654,216656,216658,216660,216662,216664,216666],{"class":36,"line":263},[34,216653,216587],{"class":181},[34,216655,165],{"class":580},[34,216657,131103],{"class":47},[34,216659,30110],{"class":580},[34,216661,587],{"class":47},[34,216663,1607],{"class":181},[34,216665,83306],{"class":54},[34,216667,50836],{"class":181},[34,216669,216670,216672,216674,216676],{"class":36,"line":275},[34,216671,216598],{"class":181},[34,216673,165],{"class":580},[34,216675,32945],{"class":50},[34,216677,624],{"class":181},[34,216679,216680],{"class":36,"line":700},[34,216681,17632],{"class":181},[34,216683,216684],{"class":36,"line":706},[34,216685,62],{"emptyLinePlaceholder":61},[34,216687,216688],{"class":36,"line":715},[34,216689,216690],{"class":40},"// Shorthand (when variable names match)\n",[34,216692,216693,216695,216698,216700,216702,216704,216706,216708,216711],{"class":36,"line":725},[34,216694,8268],{"class":580},[34,216696,216697],{"class":181}," username ",[34,216699,1301],{"class":580},[34,216701,131103],{"class":47},[34,216703,30110],{"class":580},[34,216705,587],{"class":47},[34,216707,1607],{"class":181},[34,216709,216710],{"class":54},"\"bob\"",[34,216712,1586],{"class":181},[34,216714,216715,216717,216719,216721,216723,216726,216728,216731],{"class":36,"line":734},[34,216716,8268],{"class":580},[34,216718,216624],{"class":181},[34,216720,1301],{"class":580},[34,216722,3950],{"class":47},[34,216724,216725],{"class":181}," { username, ",[34,216727,101074],{"class":580},[34,216729,216730],{"class":181},"user }; ",[34,216732,216733],{"class":40},"// Struct update syntax\n",[34,216735,216736],{"class":36,"line":742},[34,216737,62],{"emptyLinePlaceholder":61},[34,216739,216740],{"class":36,"line":748},[34,216741,216742],{"class":40},"// Tuple structs\n",[34,216744,216745,216747,216749,216751,216753,216755,216757,216759,216761],{"class":36,"line":754},[34,216746,21640],{"class":580},[34,216748,37679],{"class":47},[34,216750,1607],{"class":181},[34,216752,8248],{"class":47},[34,216754,1798],{"class":181},[34,216756,8248],{"class":47},[34,216758,1798],{"class":181},[34,216760,8248],{"class":47},[34,216762,1586],{"class":181},[34,216764,216765,216767,216770,216772,216774,216776,216778,216780,216782,216784,216786],{"class":36,"line":759},[34,216766,8268],{"class":580},[34,216768,216769],{"class":181}," origin ",[34,216771,1301],{"class":580},[34,216773,37679],{"class":47},[34,216775,1607],{"class":181},[34,216777,2773],{"class":50},[34,216779,1798],{"class":181},[34,216781,2773],{"class":50},[34,216783,1798],{"class":181},[34,216785,2773],{"class":50},[34,216787,1586],{"class":181},[34,216789,216790],{"class":36,"line":771},[34,216791,62],{"emptyLinePlaceholder":61},[34,216793,216794],{"class":36,"line":794},[34,216795,216796],{"class":40},"// Unit-like structs\n",[34,216798,216799,216801,216804],{"class":36,"line":824},[34,216800,21640],{"class":580},[34,216802,216803],{"class":47}," AlwaysEqual",[34,216805,593],{"class":181},[34,216807,216808],{"class":36,"line":830},[34,216809,62],{"emptyLinePlaceholder":61},[34,216811,216812],{"class":36,"line":839},[34,216813,216814],{"class":40},"// Methods with impl\n",[34,216816,216817,216819,216821],{"class":36,"line":854},[34,216818,213050],{"class":580},[34,216820,3950],{"class":47},[34,216822,661],{"class":181},[34,216824,216825],{"class":36,"line":860},[34,216826,216827],{"class":40},"    // Associated function (constructor)\n",[34,216829,216830,216832,216834,216837,216839,216841,216844,216846,216848,216850,216852,216855],{"class":36,"line":865},[34,216831,177241],{"class":580},[34,216833,809],{"class":47},[34,216835,216836],{"class":181},"(username",[34,216838,165],{"class":580},[34,216840,131103],{"class":47},[34,216842,216843],{"class":181},", email",[34,216845,165],{"class":580},[34,216847,131103],{"class":47},[34,216849,4817],{"class":181},[34,216851,24863],{"class":580},[34,216853,216854],{"class":50}," Self",[34,216856,661],{"class":181},[34,216858,216859,216862,216865,216867,216869],{"class":36,"line":870},[34,216860,216861],{"class":50},"        Self",[34,216863,216864],{"class":181}," { username, email, active",[34,216866,165],{"class":580},[34,216868,32945],{"class":50},[34,216870,52786],{"class":181},[34,216872,216873],{"class":36,"line":876},[34,216874,3229],{"class":181},[34,216876,216877],{"class":36,"line":885},[34,216878,3666],{"class":181},[34,216880,216881],{"class":36,"line":895},[34,216882,216883],{"class":40},"    // Method (takes &self)\n",[34,216885,216886,216888,216891,216893,216895,216897,216899,216901,216903],{"class":36,"line":904},[34,216887,177241],{"class":580},[34,216889,216890],{"class":47}," is_active",[34,216892,1607],{"class":181},[34,216894,19502],{"class":580},[34,216896,210943],{"class":50},[34,216898,4817],{"class":181},[34,216900,24863],{"class":580},[34,216902,37127],{"class":47},[34,216904,661],{"class":181},[34,216906,216907,216909,216911],{"class":36,"line":915},[34,216908,193989],{"class":50},[34,216910,151],{"class":580},[34,216912,216913],{"class":181},"active\n",[34,216915,216916],{"class":36,"line":927},[34,216917,3229],{"class":181},[34,216919,216920],{"class":36,"line":932},[34,216921,3666],{"class":181},[34,216923,216924],{"class":36,"line":944},[34,216925,216926],{"class":40},"    // Mutable method\n",[34,216928,216929,216931,216934,216936,216938,216940],{"class":36,"line":966},[34,216930,177241],{"class":580},[34,216932,216933],{"class":47}," deactivate",[34,216935,1607],{"class":181},[34,216937,215685],{"class":580},[34,216939,74044],{"class":50},[34,216941,2416],{"class":181},[34,216943,216944,216946,216948,216951,216953,216955],{"class":36,"line":1948},[34,216945,193989],{"class":50},[34,216947,151],{"class":580},[34,216949,216950],{"class":181},"active ",[34,216952,1301],{"class":580},[34,216954,68645],{"class":50},[34,216956,593],{"class":181},[34,216958,216959],{"class":36,"line":1953},[34,216960,3229],{"class":181},[34,216962,216963],{"class":36,"line":3616},[34,216964,693],{"class":181},[388,216966,34089],{},{"title":30,"searchDepth":44,"depth":44,"links":216968},[216969],{"id":24666,"depth":44,"text":23107},"Structs in Rust.",{},{"title":23107,"description":216970},"rust/structs",[161277,18137,46870,212407],"v6ESH8F0rXjUOHXi313r88Zxv5k3ipxlgqybxjZPT90",{"id":216977,"title":215404,"body":216978,"date":402,"description":217433,"extension":404,"meta":217434,"navigation":61,"order":700,"path":215403,"seo":217435,"stem":217436,"subject":161277,"tags":217437,"__hash__":217438},"topics/rust/traits.md",{"type":8,"value":216979,"toc":217430},[216980,216983,217428],[11,216981,215404],{"id":216982},"traits",[25,216984,216986],{"className":212148,"code":216985,"language":161277,"meta":30,"style":30},"// Defining a trait\ntrait Summary {\n    fn summarize(&self) -> String;\n    \n    // Default implementation\n    fn preview(&self) -> String {\n        format!(\"Read more: {}\", self.summarize())\n    }\n}\n\n// Implementing a trait\nstruct Article { title: String, content: String }\n\nimpl Summary for Article {\n    fn summarize(&self) -> String {\n        format!(\"{}: {}\", self.title, self.content)\n    }\n}\n\n// Trait bounds\nfn notify\u003CT: Summary>(item: &T) {\n    println!(\"Breaking: {}\", item.summarize());\n}\n\n// Multiple trait bounds\nfn process\u003CT: Summary + Clone>(item: &T) { }\n\n// Where clause\nfn some_fn\u003CT, U>(t: &T, u: &U)\nwhere\n    T: Summary + Clone,\n    U: Clone + std::fmt::Debug,\n{ }\n\n// Returning traits\nfn create() -> impl Summary {\n    Article { title: \"...\".to_string(), content: \"...\".to_string() }\n}\n",[20,216987,216988,216993,217002,217023,217027,217032,217053,217074,217078,217082,217086,217091,217114,217118,217130,217150,217174,217178,217182,217186,217191,217217,217235,217239,217243,217248,217277,217281,217286,217322,217327,217341,217364,217369,217373,217378,217395,217424],{"__ignoreMap":30},[34,216989,216990],{"class":36,"line":37},[34,216991,216992],{"class":40},"// Defining a trait\n",[34,216994,216995,216997,217000],{"class":36,"line":44},[34,216996,175236],{"class":580},[34,216998,216999],{"class":47}," Summary",[34,217001,661],{"class":181},[34,217003,217004,217006,217009,217011,217013,217015,217017,217019,217021],{"class":36,"line":58},[34,217005,177241],{"class":580},[34,217007,217008],{"class":47}," summarize",[34,217010,1607],{"class":181},[34,217012,19502],{"class":580},[34,217014,210943],{"class":50},[34,217016,4817],{"class":181},[34,217018,24863],{"class":580},[34,217020,131103],{"class":47},[34,217022,593],{"class":181},[34,217024,217025],{"class":36,"line":65},[34,217026,3666],{"class":181},[34,217028,217029],{"class":36,"line":71},[34,217030,217031],{"class":40},"    // Default implementation\n",[34,217033,217034,217036,217039,217041,217043,217045,217047,217049,217051],{"class":36,"line":77},[34,217035,177241],{"class":580},[34,217037,217038],{"class":47}," preview",[34,217040,1607],{"class":181},[34,217042,19502],{"class":580},[34,217044,210943],{"class":50},[34,217046,4817],{"class":181},[34,217048,24863],{"class":580},[34,217050,131103],{"class":47},[34,217052,661],{"class":181},[34,217054,217055,217058,217060,217063,217065,217067,217069,217072],{"class":36,"line":82},[34,217056,217057],{"class":47},"        format!",[34,217059,1607],{"class":181},[34,217061,217062],{"class":54},"\"Read more: {}\"",[34,217064,1798],{"class":181},[34,217066,210943],{"class":50},[34,217068,151],{"class":580},[34,217070,217071],{"class":47},"summarize",[34,217073,62281],{"class":181},[34,217075,217076],{"class":36,"line":88},[34,217077,3229],{"class":181},[34,217079,217080],{"class":36,"line":242},[34,217081,693],{"class":181},[34,217083,217084],{"class":36,"line":250},[34,217085,62],{"emptyLinePlaceholder":61},[34,217087,217088],{"class":36,"line":263},[34,217089,217090],{"class":40},"// Implementing a trait\n",[34,217092,217093,217095,217098,217101,217103,217105,217108,217110,217112],{"class":36,"line":275},[34,217094,21640],{"class":580},[34,217096,217097],{"class":47}," Article",[34,217099,217100],{"class":181}," { title",[34,217102,165],{"class":580},[34,217104,131103],{"class":47},[34,217106,217107],{"class":181},", content",[34,217109,165],{"class":580},[34,217111,131103],{"class":47},[34,217113,52786],{"class":181},[34,217115,217116],{"class":36,"line":700},[34,217117,62],{"emptyLinePlaceholder":61},[34,217119,217120,217122,217124,217126,217128],{"class":36,"line":706},[34,217121,213050],{"class":580},[34,217123,216999],{"class":47},[34,217125,52988],{"class":580},[34,217127,217097],{"class":47},[34,217129,661],{"class":181},[34,217131,217132,217134,217136,217138,217140,217142,217144,217146,217148],{"class":36,"line":715},[34,217133,177241],{"class":580},[34,217135,217008],{"class":47},[34,217137,1607],{"class":181},[34,217139,19502],{"class":580},[34,217141,210943],{"class":50},[34,217143,4817],{"class":181},[34,217145,24863],{"class":580},[34,217147,131103],{"class":47},[34,217149,661],{"class":181},[34,217151,217152,217154,217156,217158,217160,217162,217164,217167,217169,217171],{"class":36,"line":725},[34,217153,217057],{"class":47},[34,217155,1607],{"class":181},[34,217157,212705],{"class":54},[34,217159,1798],{"class":181},[34,217161,210943],{"class":50},[34,217163,151],{"class":580},[34,217165,217166],{"class":181},"title, ",[34,217168,210943],{"class":50},[34,217170,151],{"class":580},[34,217172,217173],{"class":181},"content)\n",[34,217175,217176],{"class":36,"line":734},[34,217177,3229],{"class":181},[34,217179,217180],{"class":36,"line":742},[34,217181,693],{"class":181},[34,217183,217184],{"class":36,"line":748},[34,217185,62],{"emptyLinePlaceholder":61},[34,217187,217188],{"class":36,"line":754},[34,217189,217190],{"class":40},"// Trait bounds\n",[34,217192,217193,217195,217198,217200,217202,217204,217206,217209,217211,217213,217215],{"class":36,"line":759},[34,217194,77761],{"class":580},[34,217196,217197],{"class":47}," notify",[34,217199,815],{"class":181},[34,217201,32671],{"class":47},[34,217203,165],{"class":580},[34,217205,216999],{"class":47},[34,217207,217208],{"class":181},">(item",[34,217210,165],{"class":580},[34,217212,11373],{"class":580},[34,217214,32671],{"class":47},[34,217216,2416],{"class":181},[34,217218,217219,217221,217223,217226,217229,217231,217233],{"class":36,"line":771},[34,217220,212618],{"class":47},[34,217222,1607],{"class":181},[34,217224,217225],{"class":54},"\"Breaking: {}\"",[34,217227,217228],{"class":181},", item",[34,217230,151],{"class":580},[34,217232,217071],{"class":47},[34,217234,4343],{"class":181},[34,217236,217237],{"class":36,"line":794},[34,217238,693],{"class":181},[34,217240,217241],{"class":36,"line":824},[34,217242,62],{"emptyLinePlaceholder":61},[34,217244,217245],{"class":36,"line":830},[34,217246,217247],{"class":40},"// Multiple trait bounds\n",[34,217249,217250,217252,217254,217256,217258,217260,217262,217264,217267,217269,217271,217273,217275],{"class":36,"line":839},[34,217251,77761],{"class":580},[34,217253,31325],{"class":47},[34,217255,815],{"class":181},[34,217257,32671],{"class":47},[34,217259,165],{"class":580},[34,217261,216999],{"class":47},[34,217263,11537],{"class":580},[34,217265,217266],{"class":47}," Clone",[34,217268,217208],{"class":181},[34,217270,165],{"class":580},[34,217272,11373],{"class":580},[34,217274,32671],{"class":47},[34,217276,41625],{"class":181},[34,217278,217279],{"class":36,"line":854},[34,217280,62],{"emptyLinePlaceholder":61},[34,217282,217283],{"class":36,"line":860},[34,217284,217285],{"class":40},"// Where clause\n",[34,217287,217288,217290,217293,217295,217297,217299,217302,217305,217307,217309,217311,217314,217316,217318,217320],{"class":36,"line":865},[34,217289,77761],{"class":580},[34,217291,217292],{"class":47}," some_fn",[34,217294,815],{"class":181},[34,217296,32671],{"class":47},[34,217298,1798],{"class":181},[34,217300,217301],{"class":47},"U",[34,217303,217304],{"class":181},">(t",[34,217306,165],{"class":580},[34,217308,11373],{"class":580},[34,217310,32671],{"class":47},[34,217312,217313],{"class":181},", u",[34,217315,165],{"class":580},[34,217317,11373],{"class":580},[34,217319,217301],{"class":47},[34,217321,3372],{"class":181},[34,217323,217324],{"class":36,"line":870},[34,217325,217326],{"class":580},"where\n",[34,217328,217329,217331,217333,217335,217337,217339],{"class":36,"line":876},[34,217330,32777],{"class":47},[34,217332,165],{"class":580},[34,217334,216999],{"class":47},[34,217336,11537],{"class":580},[34,217338,217266],{"class":47},[34,217340,624],{"class":181},[34,217342,217343,217346,217348,217350,217352,217354,217356,217358,217360,217362],{"class":36,"line":885},[34,217344,217345],{"class":47},"    U",[34,217347,165],{"class":580},[34,217349,217266],{"class":47},[34,217351,11537],{"class":580},[34,217353,30217],{"class":47},[34,217355,30110],{"class":580},[34,217357,104344],{"class":47},[34,217359,30110],{"class":580},[34,217361,212364],{"class":47},[34,217363,624],{"class":181},[34,217365,217366],{"class":36,"line":895},[34,217367,217368],{"class":181},"{ }\n",[34,217370,217371],{"class":36,"line":904},[34,217372,62],{"emptyLinePlaceholder":61},[34,217374,217375],{"class":36,"line":915},[34,217376,217377],{"class":40},"// Returning traits\n",[34,217379,217380,217382,217384,217386,217388,217391,217393],{"class":36,"line":927},[34,217381,77761],{"class":580},[34,217383,7077],{"class":47},[34,217385,672],{"class":181},[34,217387,24863],{"class":580},[34,217389,217390],{"class":580}," impl",[34,217392,216999],{"class":47},[34,217394,661],{"class":181},[34,217396,217397,217400,217402,217404,217407,217409,217411,217414,217416,217418,217420,217422],{"class":36,"line":932},[34,217398,217399],{"class":47},"    Article",[34,217401,217100],{"class":181},[34,217403,165],{"class":580},[34,217405,217406],{"class":54}," \"...\"",[34,217408,151],{"class":580},[34,217410,213034],{"class":47},[34,217412,217413],{"class":181},"(), content",[34,217415,165],{"class":580},[34,217417,217406],{"class":54},[34,217419,151],{"class":580},[34,217421,213034],{"class":47},[34,217423,133832],{"class":181},[34,217425,217426],{"class":36,"line":944},[34,217427,693],{"class":181},[388,217429,49910],{},{"title":30,"searchDepth":44,"depth":44,"links":217431},[217432],{"id":216982,"depth":44,"text":215404},"Traits in Rust.",{},{"title":215404,"description":217433},"rust/traits",[161277,18137,46870,212407],"0Ybgw24E8YPQrPhCV1iB1xu1YAd0xbbX_I6eGGvc7-k",{"id":217440,"title":32171,"body":217441,"date":402,"description":217664,"extension":404,"meta":217665,"navigation":61,"order":44,"path":215351,"seo":217666,"stem":217667,"subject":161277,"tags":217668,"__hash__":217669},"topics/rust/variables-data-types.md",{"type":8,"value":217442,"toc":217661},[217443,217445,217659],[11,217444,32171],{"id":32868},[25,217446,217448],{"className":212148,"code":217447,"language":161277,"meta":30,"style":30},"// Variables (immutable by default)\nlet name = \"Alice\";           // &str (string slice)\nlet age: i32 = 30;            // i32\nlet height = 5.9_f64;         // f64\nlet is_active = true;         // bool\nlet letter = 'A';             // char\n\n// Mutable variable\nlet mut count = 0;\ncount += 1;\n\n// Constants (must have type annotation)\nconst MAX_POINTS: u32 = 100_000;\n\n// Shadowing\nlet x = 5;\nlet x = x + 1;  // New variable, shadows previous\n\n// Integer types: i8, i16, i32, i64, i128, isize\n// Unsigned: u8, u16, u32, u64, u128, usize\n// Float: f32, f64\n",[20,217449,217450,217455,217470,217489,217508,217523,217538,217542,217547,217561,217572,217576,217581,217600,217604,217609,217621,217640,217644,217649,217654],{"__ignoreMap":30},[34,217451,217452],{"class":36,"line":37},[34,217453,217454],{"class":40},"// Variables (immutable by default)\n",[34,217456,217457,217459,217461,217463,217465,217467],{"class":36,"line":44},[34,217458,8268],{"class":580},[34,217460,30212],{"class":181},[34,217462,1301],{"class":580},[34,217464,25138],{"class":54},[34,217466,38595],{"class":181},[34,217468,217469],{"class":40},"// &str (string slice)\n",[34,217471,217472,217474,217476,217478,217480,217482,217484,217486],{"class":36,"line":58},[34,217473,8268],{"class":580},[34,217475,33593],{"class":181},[34,217477,165],{"class":580},[34,217479,8049],{"class":47},[34,217481,683],{"class":580},[34,217483,30458],{"class":50},[34,217485,40061],{"class":181},[34,217487,217488],{"class":40},"// i32\n",[34,217490,217491,217493,217496,217498,217501,217503,217505],{"class":36,"line":65},[34,217492,8268],{"class":580},[34,217494,217495],{"class":181}," height ",[34,217497,1301],{"class":580},[34,217499,217500],{"class":50}," 5.9_",[34,217502,214127],{"class":47},[34,217504,38412],{"class":181},[34,217506,217507],{"class":40},"// f64\n",[34,217509,217510,217512,217514,217516,217518,217520],{"class":36,"line":71},[34,217511,8268],{"class":580},[34,217513,141700],{"class":181},[34,217515,1301],{"class":580},[34,217517,32945],{"class":50},[34,217519,38412],{"class":181},[34,217521,217522],{"class":40},"// bool\n",[34,217524,217525,217527,217529,217531,217533,217535],{"class":36,"line":77},[34,217526,8268],{"class":580},[34,217528,25116],{"class":181},[34,217530,1301],{"class":580},[34,217532,18989],{"class":54},[34,217534,38361],{"class":181},[34,217536,217537],{"class":40},"// char\n",[34,217539,217540],{"class":36,"line":82},[34,217541,62],{"emptyLinePlaceholder":61},[34,217543,217544],{"class":36,"line":88},[34,217545,217546],{"class":40},"// Mutable variable\n",[34,217548,217549,217551,217553,217555,217557,217559],{"class":36,"line":242},[34,217550,8268],{"class":580},[34,217552,213929],{"class":580},[34,217554,25163],{"class":181},[34,217556,1301],{"class":580},[34,217558,8070],{"class":50},[34,217560,593],{"class":181},[34,217562,217563,217566,217568,217570],{"class":36,"line":250},[34,217564,217565],{"class":181},"count ",[34,217567,31462],{"class":580},[34,217569,3567],{"class":50},[34,217571,593],{"class":181},[34,217573,217574],{"class":36,"line":263},[34,217575,62],{"emptyLinePlaceholder":61},[34,217577,217578],{"class":36,"line":275},[34,217579,217580],{"class":40},"// Constants (must have type annotation)\n",[34,217582,217583,217585,217588,217590,217593,217595,217598],{"class":36,"line":700},[34,217584,14676],{"class":580},[34,217586,217587],{"class":50}," MAX_POINTS",[34,217589,165],{"class":580},[34,217591,217592],{"class":47}," u32",[34,217594,683],{"class":580},[34,217596,217597],{"class":50}," 100_000",[34,217599,593],{"class":181},[34,217601,217602],{"class":36,"line":706},[34,217603,62],{"emptyLinePlaceholder":61},[34,217605,217606],{"class":36,"line":715},[34,217607,217608],{"class":40},"// Shadowing\n",[34,217610,217611,217613,217615,217617,217619],{"class":36,"line":725},[34,217612,8268],{"class":580},[34,217614,23172],{"class":181},[34,217616,1301],{"class":580},[34,217618,11144],{"class":50},[34,217620,593],{"class":181},[34,217622,217623,217625,217627,217629,217631,217633,217635,217637],{"class":36,"line":734},[34,217624,8268],{"class":580},[34,217626,23172],{"class":181},[34,217628,1301],{"class":580},[34,217630,23172],{"class":181},[34,217632,2940],{"class":580},[34,217634,3567],{"class":50},[34,217636,124981],{"class":181},[34,217638,217639],{"class":40},"// New variable, shadows previous\n",[34,217641,217642],{"class":36,"line":742},[34,217643,62],{"emptyLinePlaceholder":61},[34,217645,217646],{"class":36,"line":748},[34,217647,217648],{"class":40},"// Integer types: i8, i16, i32, i64, i128, isize\n",[34,217650,217651],{"class":36,"line":754},[34,217652,217653],{"class":40},"// Unsigned: u8, u16, u32, u64, u128, usize\n",[34,217655,217656],{"class":36,"line":759},[34,217657,217658],{"class":40},"// Float: f32, f64\n",[388,217660,17522],{},{"title":30,"searchDepth":44,"depth":44,"links":217662},[217663],{"id":32868,"depth":44,"text":32171},"Variables & Data Types in Rust.",{},{"title":32171,"description":217664},"rust/variables-data-types",[161277,18137,46870,212407],"4Ru1fd4uFjez_IYiwR6uppTEcVsO_9l8Aak5_kc_Lxs",{"id":217671,"title":215362,"body":217672,"date":402,"description":218030,"extension":404,"meta":218031,"navigation":61,"order":65,"path":215361,"seo":218032,"stem":218033,"subject":161277,"tags":218034,"__hash__":218035},"topics/rust/vectors.md",{"type":8,"value":217673,"toc":218027},[217674,217677,218025],[11,217675,215362],{"id":217676},"vectors",[25,217678,217680],{"className":212148,"code":217679,"language":161277,"meta":30,"style":30},"// Creating vectors\nlet v1: Vec\u003Ci32> = Vec::new();\nlet v2 = vec![1, 2, 3, 4, 5];\n\n// Vector operations\nlet mut v = vec![1, 2, 3];\nv.push(4);                  // Add to end\nv.pop();                    // Remove & return last\nv.len();                    // Length\nv.is_empty();               // Check if empty\nv.insert(0, 0);             // Insert at index\nv.remove(0);                // Remove at index\n\n// Accessing elements\nlet first = v[0];           // Panics if out of bounds\nlet first = v.get(0);       // Returns Option\u003C&T>\n\n// Iteration\nfor item in &v {\n    println!(\"{}\", item);\n}\n\nfor item in &mut v {\n    *item += 1;\n}\n\n// Slicing\nlet slice = &v[1..3];\n",[20,217681,217682,217687,217715,217747,217751,217756,217782,217798,217811,217823,217835,217856,217874,217878,217882,217901,217924,217928,217932,217945,217956,217960,217964,217977,217990,217994,217998,218003],{"__ignoreMap":30},[34,217683,217684],{"class":36,"line":37},[34,217685,217686],{"class":40},"// Creating vectors\n",[34,217688,217689,217691,217694,217696,217699,217701,217703,217705,217707,217709,217711,217713],{"class":36,"line":44},[34,217690,8268],{"class":580},[34,217692,217693],{"class":181}," v1",[34,217695,165],{"class":580},[34,217697,217698],{"class":47}," Vec",[34,217700,815],{"class":181},[34,217702,8248],{"class":47},[34,217704,32840],{"class":181},[34,217706,1301],{"class":580},[34,217708,217698],{"class":47},[34,217710,30110],{"class":580},[34,217712,3143],{"class":47},[34,217714,851],{"class":181},[34,217716,217717,217719,217721,217723,217725,217727,217729,217731,217733,217735,217737,217739,217741,217743,217745],{"class":36,"line":58},[34,217718,8268],{"class":580},[34,217720,143569],{"class":181},[34,217722,1301],{"class":580},[34,217724,214350],{"class":47},[34,217726,10260],{"class":181},[34,217728,8318],{"class":50},[34,217730,1798],{"class":181},[34,217732,8324],{"class":50},[34,217734,1798],{"class":181},[34,217736,3162],{"class":50},[34,217738,1798],{"class":181},[34,217740,18010],{"class":50},[34,217742,1798],{"class":181},[34,217744,2778],{"class":50},[34,217746,3415],{"class":181},[34,217748,217749],{"class":36,"line":65},[34,217750,62],{"emptyLinePlaceholder":61},[34,217752,217753],{"class":36,"line":71},[34,217754,217755],{"class":40},"// Vector operations\n",[34,217757,217758,217760,217762,217764,217766,217768,217770,217772,217774,217776,217778,217780],{"class":36,"line":77},[34,217759,8268],{"class":580},[34,217761,213929],{"class":580},[34,217763,106726],{"class":181},[34,217765,1301],{"class":580},[34,217767,214350],{"class":47},[34,217769,10260],{"class":181},[34,217771,8318],{"class":50},[34,217773,1798],{"class":181},[34,217775,8324],{"class":50},[34,217777,1798],{"class":181},[34,217779,3162],{"class":50},[34,217781,3415],{"class":181},[34,217783,217784,217786,217788,217790,217792,217794,217796],{"class":36,"line":82},[34,217785,87307],{"class":181},[34,217787,151],{"class":580},[34,217789,50165],{"class":47},[34,217791,1607],{"class":181},[34,217793,18010],{"class":50},[34,217795,124361],{"class":181},[34,217797,169914],{"class":40},[34,217799,217800,217802,217804,217806,217808],{"class":36,"line":88},[34,217801,87307],{"class":181},[34,217803,151],{"class":580},[34,217805,50216],{"class":47},[34,217807,123343],{"class":181},[34,217809,217810],{"class":40},"// Remove & return last\n",[34,217812,217813,217815,217817,217819,217821],{"class":36,"line":242},[34,217814,87307],{"class":181},[34,217816,151],{"class":580},[34,217818,63603],{"class":47},[34,217820,123343],{"class":181},[34,217822,169903],{"class":40},[34,217824,217825,217827,217829,217831,217833],{"class":36,"line":250},[34,217826,87307],{"class":181},[34,217828,151],{"class":580},[34,217830,216290],{"class":47},[34,217832,124304],{"class":181},[34,217834,216295],{"class":40},[34,217836,217837,217839,217841,217843,217845,217847,217849,217851,217853],{"class":36,"line":263},[34,217838,87307],{"class":181},[34,217840,151],{"class":580},[34,217842,30468],{"class":47},[34,217844,1607],{"class":181},[34,217846,2773],{"class":50},[34,217848,1798],{"class":181},[34,217850,2773],{"class":50},[34,217852,36589],{"class":181},[34,217854,217855],{"class":40},"// Insert at index\n",[34,217857,217858,217860,217862,217864,217866,217868,217871],{"class":36,"line":275},[34,217859,87307],{"class":181},[34,217861,151],{"class":580},[34,217863,47717],{"class":47},[34,217865,1607],{"class":181},[34,217867,2773],{"class":50},[34,217869,217870],{"class":181},");                ",[34,217872,217873],{"class":40},"// Remove at index\n",[34,217875,217876],{"class":36,"line":700},[34,217877,62],{"emptyLinePlaceholder":61},[34,217879,217880],{"class":36,"line":706},[34,217881,17870],{"class":40},[34,217883,217884,217886,217888,217890,217893,217895,217898],{"class":36,"line":715},[34,217885,8268],{"class":580},[34,217887,17877],{"class":181},[34,217889,1301],{"class":580},[34,217891,217892],{"class":181}," v[",[34,217894,2773],{"class":50},[34,217896,217897],{"class":181},"];           ",[34,217899,217900],{"class":40},"// Panics if out of bounds\n",[34,217902,217903,217905,217907,217909,217911,217913,217915,217917,217919,217921],{"class":36,"line":725},[34,217904,8268],{"class":580},[34,217906,17877],{"class":181},[34,217908,1301],{"class":580},[34,217910,32765],{"class":181},[34,217912,151],{"class":580},[34,217914,1573],{"class":47},[34,217916,1607],{"class":181},[34,217918,2773],{"class":50},[34,217920,173699],{"class":181},[34,217922,217923],{"class":40},"// Returns Option\u003C&T>\n",[34,217925,217926],{"class":36,"line":734},[34,217927,62],{"emptyLinePlaceholder":61},[34,217929,217930],{"class":36,"line":742},[34,217931,214536],{"class":40},[34,217933,217934,217936,217938,217940,217942],{"class":36,"line":748},[34,217935,10246],{"class":580},[34,217937,192576],{"class":181},[34,217939,10252],{"class":580},[34,217941,11373],{"class":580},[34,217943,217944],{"class":181},"v {\n",[34,217946,217947,217949,217951,217953],{"class":36,"line":754},[34,217948,212618],{"class":47},[34,217950,1607],{"class":181},[34,217952,212623],{"class":54},[34,217954,217955],{"class":181},", item);\n",[34,217957,217958],{"class":36,"line":759},[34,217959,693],{"class":181},[34,217961,217962],{"class":36,"line":771},[34,217963,62],{"emptyLinePlaceholder":61},[34,217965,217966,217968,217970,217972,217974],{"class":36,"line":794},[34,217967,10246],{"class":580},[34,217969,192576],{"class":181},[34,217971,10252],{"class":580},[34,217973,215706],{"class":580},[34,217975,217976],{"class":181}," v {\n",[34,217978,217979,217981,217984,217986,217988],{"class":36,"line":824},[34,217980,18513],{"class":580},[34,217982,217983],{"class":181},"item ",[34,217985,31462],{"class":580},[34,217987,3567],{"class":50},[34,217989,593],{"class":181},[34,217991,217992],{"class":36,"line":830},[34,217993,693],{"class":181},[34,217995,217996],{"class":36,"line":839},[34,217997,62],{"emptyLinePlaceholder":61},[34,217999,218000],{"class":36,"line":854},[34,218001,218002],{"class":40},"// Slicing\n",[34,218004,218005,218007,218010,218012,218014,218017,218019,218021,218023],{"class":36,"line":860},[34,218006,8268],{"class":580},[34,218008,218009],{"class":181}," slice ",[34,218011,1301],{"class":580},[34,218013,11373],{"class":580},[34,218015,218016],{"class":181},"v[",[34,218018,8318],{"class":50},[34,218020,101074],{"class":580},[34,218022,3162],{"class":50},[34,218024,3415],{"class":181},[388,218026,33776],{},{"title":30,"searchDepth":44,"depth":44,"links":218028},[218029],{"id":217676,"depth":44,"text":215362},"Vectors in Rust.",{},{"title":215362,"description":218030},"rust/vectors",[161277,18137,46870,212407],"x5VIPja3usvh_qklbckyvP_kv6dJG2tX8d2y-nngt3c",{"id":218037,"title":218038,"body":218039,"date":402,"description":219145,"extension":404,"meta":219146,"navigation":61,"order":37,"path":219147,"seo":219148,"stem":219149,"subject":219150,"tags":219151,"__hash__":219154},"topics/rxjs/overview.md","RxJS",{"type":8,"value":218040,"toc":219134},[218041,218043,218057,218059,218206,218210,218354,218358,218488,218492,218641,218645,218766,218770,218917,218919,219000,219004,219131],[11,218042,97],{"id":96},[25,218044,218046],{"className":27,"code":218045,"language":29,"meta":30,"style":30},"npm install rxjs\n",[20,218047,218048],{"__ignoreMap":30},[34,218049,218050,218052,218054],{"class":36,"line":37},[34,218051,8177],{"class":47},[34,218053,118],{"class":54},[34,218055,218056],{"class":54}," rxjs\n",[11,218058,62663],{"id":62662},[25,218060,218062],{"className":91533,"code":218061,"language":91535,"meta":30,"style":30},"import { Observable, Subject, BehaviorSubject } from \"rxjs\"\n\n// Observable: lazy push collection of multiple values\nconst obs$ = new Observable(subscriber => {\n  subscriber.next(1)\n  subscriber.next(2)\n  subscriber.complete()\n})\n\n// Subject: both Observable and Observer (multicast)\nconst subject = new Subject\u003Cnumber>()\n\n// BehaviorSubject: Subject with a current value\nconst state$ = new BehaviorSubject(0)  // starts with 0\n",[20,218063,218064,218076,218080,218085,218107,218120,218132,218141,218145,218149,218154,218174,218178,218183],{"__ignoreMap":30},[34,218065,218066,218068,218071,218073],{"class":36,"line":37},[34,218067,581],{"class":580},[34,218069,218070],{"class":181}," { Observable, Subject, BehaviorSubject } ",[34,218072,587],{"class":580},[34,218074,218075],{"class":54}," \"rxjs\"\n",[34,218077,218078],{"class":36,"line":44},[34,218079,62],{"emptyLinePlaceholder":61},[34,218081,218082],{"class":36,"line":58},[34,218083,218084],{"class":40},"// Observable: lazy push collection of multiple values\n",[34,218086,218087,218089,218092,218094,218096,218098,218100,218103,218105],{"class":36,"line":65},[34,218088,14676],{"class":580},[34,218090,218091],{"class":50}," obs$",[34,218093,683],{"class":580},[34,218095,809],{"class":580},[34,218097,1551],{"class":47},[34,218099,1607],{"class":181},[34,218101,218102],{"class":675},"subscriber",[34,218104,1895],{"class":580},[34,218106,661],{"class":181},[34,218108,218109,218112,218114,218116,218118],{"class":36,"line":71},[34,218110,218111],{"class":181},"  subscriber.",[34,218113,61912],{"class":47},[34,218115,1607],{"class":181},[34,218117,8318],{"class":50},[34,218119,3372],{"class":181},[34,218121,218122,218124,218126,218128,218130],{"class":36,"line":77},[34,218123,218111],{"class":181},[34,218125,61912],{"class":47},[34,218127,1607],{"class":181},[34,218129,8324],{"class":50},[34,218131,3372],{"class":181},[34,218133,218134,218136,218139],{"class":36,"line":82},[34,218135,218111],{"class":181},[34,218137,218138],{"class":47},"complete",[34,218140,33899],{"class":181},[34,218142,218143],{"class":36,"line":88},[34,218144,647],{"class":181},[34,218146,218147],{"class":36,"line":242},[34,218148,62],{"emptyLinePlaceholder":61},[34,218150,218151],{"class":36,"line":250},[34,218152,218153],{"class":40},"// Subject: both Observable and Observer (multicast)\n",[34,218155,218156,218158,218161,218163,218165,218168,218170,218172],{"class":36,"line":263},[34,218157,14676],{"class":580},[34,218159,218160],{"class":50}," subject",[34,218162,683],{"class":580},[34,218164,809],{"class":580},[34,218166,218167],{"class":47}," Subject",[34,218169,815],{"class":181},[34,218171,130478],{"class":50},[34,218173,214938],{"class":181},[34,218175,218176],{"class":36,"line":275},[34,218177,62],{"emptyLinePlaceholder":61},[34,218179,218180],{"class":36,"line":700},[34,218181,218182],{"class":40},"// BehaviorSubject: Subject with a current value\n",[34,218184,218185,218187,218190,218192,218194,218197,218199,218201,218203],{"class":36,"line":706},[34,218186,14676],{"class":580},[34,218188,218189],{"class":50}," state$",[34,218191,683],{"class":580},[34,218193,809],{"class":580},[34,218195,218196],{"class":47}," BehaviorSubject",[34,218198,1607],{"class":181},[34,218200,2773],{"class":50},[34,218202,76021],{"class":181},[34,218204,218205],{"class":40},"// starts with 0\n",[11,218207,218209],{"id":218208},"subscribing","Subscribing",[25,218211,218213],{"className":91533,"code":218212,"language":91535,"meta":30,"style":30},"obs$.subscribe({\n  next: value => console.log(value),   // handle each value\n  error: err => console.error(err),    // handle error\n  complete: () => console.log(\"done\"), // handle completion\n})\n\n// Shorthand\nobs$.subscribe(value => console.log(value))\n\n// Always unsubscribe to avoid memory leaks\nconst sub = obs$.subscribe(console.log)\nsub.unsubscribe()\n",[20,218214,218215,218224,218244,218265,218288,218292,218296,218301,218320,218324,218329,218345],{"__ignoreMap":30},[34,218216,218217,218220,218222],{"class":36,"line":37},[34,218218,218219],{"class":181},"obs$.",[34,218221,3630],{"class":47},[34,218223,613],{"class":181},[34,218225,218226,218228,218230,218232,218234,218236,218238,218241],{"class":36,"line":44},[34,218227,76253],{"class":47},[34,218229,182],{"class":181},[34,218231,2871],{"class":675},[34,218233,1895],{"class":580},[34,218235,4940],{"class":181},[34,218237,2424],{"class":47},[34,218239,218240],{"class":181},"(value),   ",[34,218242,218243],{"class":40},"// handle each value\n",[34,218245,218246,218249,218251,218253,218255,218257,218259,218262],{"class":36,"line":58},[34,218247,218248],{"class":47},"  error",[34,218250,182],{"class":181},[34,218252,20566],{"class":675},[34,218254,1895],{"class":580},[34,218256,4940],{"class":181},[34,218258,1908],{"class":47},[34,218260,218261],{"class":181},"(err),    ",[34,218263,218264],{"class":40},"// handle error\n",[34,218266,218267,218270,218272,218274,218276,218278,218280,218283,218285],{"class":36,"line":65},[34,218268,218269],{"class":47},"  complete",[34,218271,3358],{"class":181},[34,218273,3361],{"class":580},[34,218275,4940],{"class":181},[34,218277,2424],{"class":47},[34,218279,1607],{"class":181},[34,218281,218282],{"class":54},"\"done\"",[34,218284,184714],{"class":181},[34,218286,218287],{"class":40},"// handle completion\n",[34,218289,218290],{"class":36,"line":71},[34,218291,647],{"class":181},[34,218293,218294],{"class":36,"line":77},[34,218295,62],{"emptyLinePlaceholder":61},[34,218297,218298],{"class":36,"line":82},[34,218299,218300],{"class":40},"// Shorthand\n",[34,218302,218303,218305,218307,218309,218311,218313,218315,218317],{"class":36,"line":88},[34,218304,218219],{"class":181},[34,218306,3630],{"class":47},[34,218308,1607],{"class":181},[34,218310,2871],{"class":675},[34,218312,1895],{"class":580},[34,218314,4940],{"class":181},[34,218316,2424],{"class":47},[34,218318,218319],{"class":181},"(value))\n",[34,218321,218322],{"class":36,"line":242},[34,218323,62],{"emptyLinePlaceholder":61},[34,218325,218326],{"class":36,"line":250},[34,218327,218328],{"class":40},"// Always unsubscribe to avoid memory leaks\n",[34,218330,218331,218333,218335,218337,218340,218342],{"class":36,"line":263},[34,218332,14676],{"class":580},[34,218334,156683],{"class":50},[34,218336,683],{"class":580},[34,218338,218339],{"class":181}," obs$.",[34,218341,3630],{"class":47},[34,218343,218344],{"class":181},"(console.log)\n",[34,218346,218347,218350,218352],{"class":36,"line":275},[34,218348,218349],{"class":181},"sub.",[34,218351,71520],{"class":47},[34,218353,33899],{"class":181},[11,218355,218357],{"id":218356},"creating-observables","Creating Observables",[25,218359,218361],{"className":91533,"code":218360,"language":91535,"meta":30,"style":30},"import { of, from, interval, fromEvent, timer } from \"rxjs\"\n\nof(1, 2, 3)              // emit values synchronously\nfrom([1, 2, 3])          // from array / promise / iterable\nfrom(fetch(\"/api/data\")) // from Promise\ninterval(1000)           // emit 0, 1, 2... every 1s\ntimer(2000, 1000)        // start after 2s, then every 1s\nfromEvent(btn, \"click\")  // DOM events\n",[20,218362,218363,218374,218378,218399,218421,218439,218453,218472],{"__ignoreMap":30},[34,218364,218365,218367,218370,218372],{"class":36,"line":37},[34,218366,581],{"class":580},[34,218368,218369],{"class":181}," { of, from, interval, fromEvent, timer } ",[34,218371,587],{"class":580},[34,218373,218075],{"class":54},[34,218375,218376],{"class":36,"line":44},[34,218377,62],{"emptyLinePlaceholder":61},[34,218379,218380,218382,218384,218386,218388,218390,218392,218394,218396],{"class":36,"line":58},[34,218381,52211],{"class":47},[34,218383,1607],{"class":181},[34,218385,8318],{"class":50},[34,218387,1798],{"class":181},[34,218389,8324],{"class":50},[34,218391,1798],{"class":181},[34,218393,3162],{"class":50},[34,218395,152252],{"class":181},[34,218397,218398],{"class":40},"// emit values synchronously\n",[34,218400,218401,218403,218405,218407,218409,218411,218413,218415,218418],{"class":36,"line":65},[34,218402,587],{"class":47},[34,218404,3593],{"class":181},[34,218406,8318],{"class":50},[34,218408,1798],{"class":181},[34,218410,8324],{"class":50},[34,218412,1798],{"class":181},[34,218414,3162],{"class":50},[34,218416,218417],{"class":181},"])          ",[34,218419,218420],{"class":40},"// from array / promise / iterable\n",[34,218422,218423,218425,218427,218429,218431,218434,218436],{"class":36,"line":71},[34,218424,587],{"class":47},[34,218426,1607],{"class":181},[34,218428,58875],{"class":47},[34,218430,1607],{"class":181},[34,218432,218433],{"class":54},"\"/api/data\"",[34,218435,49706],{"class":181},[34,218437,218438],{"class":40},"// from Promise\n",[34,218440,218441,218444,218446,218448,218450],{"class":36,"line":77},[34,218442,218443],{"class":47},"interval",[34,218445,1607],{"class":181},[34,218447,15304],{"class":50},[34,218449,75985],{"class":181},[34,218451,218452],{"class":40},"// emit 0, 1, 2... every 1s\n",[34,218454,218455,218458,218460,218463,218465,218467,218469],{"class":36,"line":82},[34,218456,218457],{"class":47},"timer",[34,218459,1607],{"class":181},[34,218461,218462],{"class":50},"2000",[34,218464,1798],{"class":181},[34,218466,15304],{"class":50},[34,218468,103864],{"class":181},[34,218470,218471],{"class":40},"// start after 2s, then every 1s\n",[34,218473,218474,218477,218480,218483,218485],{"class":36,"line":88},[34,218475,218476],{"class":47},"fromEvent",[34,218478,218479],{"class":181},"(btn, ",[34,218481,218482],{"class":54},"\"click\"",[34,218484,76021],{"class":181},[34,218486,218487],{"class":40},"// DOM events\n",[11,218489,218491],{"id":218490},"transformation-operators","Transformation Operators",[25,218493,218495],{"className":91533,"code":218494,"language":91535,"meta":30,"style":30},"import { map, switchMap, mergeMap, concatMap, exhaustMap } from \"rxjs/operators\"\n\nobs$.pipe(\n  map(x => x * 2),                        // transform each value\n  switchMap(x => from(fetch(`/api/${x}`))), // cancel previous, switch to new inner\n  mergeMap(x => from(fetch(`/api/${x}`))), // merge all inner observables\n  concatMap(x => from(fetch(`/api/${x}`))),// queue inner observables in order\n)\n",[20,218496,218497,218509,218513,218521,218544,218576,218606,218637],{"__ignoreMap":30},[34,218498,218499,218501,218504,218506],{"class":36,"line":37},[34,218500,581],{"class":580},[34,218502,218503],{"class":181}," { map, switchMap, mergeMap, concatMap, exhaustMap } ",[34,218505,587],{"class":580},[34,218507,218508],{"class":54}," \"rxjs/operators\"\n",[34,218510,218511],{"class":36,"line":44},[34,218512,62],{"emptyLinePlaceholder":61},[34,218514,218515,218517,218519],{"class":36,"line":58},[34,218516,218219],{"class":181},[34,218518,1879],{"class":47},[34,218520,1882],{"class":181},[34,218522,218523,218526,218528,218530,218532,218534,218536,218538,218541],{"class":36,"line":65},[34,218524,218525],{"class":47},"  map",[34,218527,1607],{"class":181},[34,218529,23655],{"class":675},[34,218531,1895],{"class":580},[34,218533,23172],{"class":181},[34,218535,4289],{"class":580},[34,218537,4292],{"class":50},[34,218539,218540],{"class":181},"),                        ",[34,218542,218543],{"class":40},"// transform each value\n",[34,218545,218546,218549,218551,218553,218555,218557,218559,218561,218563,218566,218568,218570,218573],{"class":36,"line":71},[34,218547,218548],{"class":47},"  switchMap",[34,218550,1607],{"class":181},[34,218552,23655],{"class":675},[34,218554,1895],{"class":580},[34,218556,36370],{"class":47},[34,218558,1607],{"class":181},[34,218560,58875],{"class":47},[34,218562,1607],{"class":181},[34,218564,218565],{"class":54},"`/api/${",[34,218567,23655],{"class":181},[34,218569,3925],{"class":54},[34,218571,218572],{"class":181},"))), ",[34,218574,218575],{"class":40},"// cancel previous, switch to new inner\n",[34,218577,218578,218581,218583,218585,218587,218589,218591,218593,218595,218597,218599,218601,218603],{"class":36,"line":77},[34,218579,218580],{"class":47},"  mergeMap",[34,218582,1607],{"class":181},[34,218584,23655],{"class":675},[34,218586,1895],{"class":580},[34,218588,36370],{"class":47},[34,218590,1607],{"class":181},[34,218592,58875],{"class":47},[34,218594,1607],{"class":181},[34,218596,218565],{"class":54},[34,218598,23655],{"class":181},[34,218600,3925],{"class":54},[34,218602,218572],{"class":181},[34,218604,218605],{"class":40},"// merge all inner observables\n",[34,218607,218608,218611,218613,218615,218617,218619,218621,218623,218625,218627,218629,218631,218634],{"class":36,"line":82},[34,218609,218610],{"class":47},"  concatMap",[34,218612,1607],{"class":181},[34,218614,23655],{"class":675},[34,218616,1895],{"class":580},[34,218618,36370],{"class":47},[34,218620,1607],{"class":181},[34,218622,58875],{"class":47},[34,218624,1607],{"class":181},[34,218626,218565],{"class":54},[34,218628,23655],{"class":181},[34,218630,3925],{"class":54},[34,218632,218633],{"class":181},"))),",[34,218635,218636],{"class":40},"// queue inner observables in order\n",[34,218638,218639],{"class":36,"line":88},[34,218640,3372],{"class":181},[11,218642,218644],{"id":218643},"filtering-operators","Filtering Operators",[25,218646,218648],{"className":91533,"code":218647,"language":91535,"meta":30,"style":30},"import { filter, take, takeUntil, debounceTime, distinctUntilChanged, skip } from \"rxjs/operators\"\n\nobs$.pipe(\n  filter(x => x > 0),          // only pass values matching predicate\n  take(3),                      // take first 3 values then complete\n  skip(2),                      // skip first 2 values\n  debounceTime(300),            // wait 300ms of silence before emitting\n  distinctUntilChanged(),       // only emit when value changes\n  takeUntil(stop$),             // complete when another observable emits\n)\n",[20,218649,218650,218661,218665,218673,218696,218711,218725,218740,218751,218762],{"__ignoreMap":30},[34,218651,218652,218654,218657,218659],{"class":36,"line":37},[34,218653,581],{"class":580},[34,218655,218656],{"class":181}," { filter, take, takeUntil, debounceTime, distinctUntilChanged, skip } ",[34,218658,587],{"class":580},[34,218660,218508],{"class":54},[34,218662,218663],{"class":36,"line":44},[34,218664,62],{"emptyLinePlaceholder":61},[34,218666,218667,218669,218671],{"class":36,"line":58},[34,218668,218219],{"class":181},[34,218670,1879],{"class":47},[34,218672,1882],{"class":181},[34,218674,218675,218678,218680,218682,218684,218686,218688,218690,218693],{"class":36,"line":65},[34,218676,218677],{"class":47},"  filter",[34,218679,1607],{"class":181},[34,218681,23655],{"class":675},[34,218683,1895],{"class":580},[34,218685,23172],{"class":181},[34,218687,5691],{"class":580},[34,218689,8070],{"class":50},[34,218691,218692],{"class":181},"),          ",[34,218694,218695],{"class":40},"// only pass values matching predicate\n",[34,218697,218698,218701,218703,218705,218708],{"class":36,"line":71},[34,218699,218700],{"class":47},"  take",[34,218702,1607],{"class":181},[34,218704,3162],{"class":50},[34,218706,218707],{"class":181},"),                      ",[34,218709,218710],{"class":40},"// take first 3 values then complete\n",[34,218712,218713,218716,218718,218720,218722],{"class":36,"line":77},[34,218714,218715],{"class":47},"  skip",[34,218717,1607],{"class":181},[34,218719,8324],{"class":50},[34,218721,218707],{"class":181},[34,218723,218724],{"class":40},"// skip first 2 values\n",[34,218726,218727,218730,218732,218734,218737],{"class":36,"line":82},[34,218728,218729],{"class":47},"  debounceTime",[34,218731,1607],{"class":181},[34,218733,20934],{"class":50},[34,218735,218736],{"class":181},"),            ",[34,218738,218739],{"class":40},"// wait 300ms of silence before emitting\n",[34,218741,218742,218745,218748],{"class":36,"line":88},[34,218743,218744],{"class":47},"  distinctUntilChanged",[34,218746,218747],{"class":181},"(),       ",[34,218749,218750],{"class":40},"// only emit when value changes\n",[34,218752,218753,218756,218759],{"class":36,"line":242},[34,218754,218755],{"class":47},"  takeUntil",[34,218757,218758],{"class":181},"(stop$),             ",[34,218760,218761],{"class":40},"// complete when another observable emits\n",[34,218763,218764],{"class":36,"line":250},[34,218765,3372],{"class":181},[11,218767,218769],{"id":218768},"combination-operators","Combination Operators",[25,218771,218773],{"className":91533,"code":218772,"language":91535,"meta":30,"style":30},"import { combineLatest, forkJoin, merge, zip, withLatestFrom } from \"rxjs\"\n\n// Emit latest from each when any emits\ncombineLatest([a$, b$]).subscribe(([a, b]) => console.log(a, b))\n\n// Wait for all to complete, emit last values (good for parallel HTTP)\nforkJoin([req1$, req2$]).subscribe(([res1, res2]) => {})\n\n// Merge multiple observables into one stream\nmerge(click$, keypress$).subscribe(console.log)\n\n// Pair values by index\nzip(a$, b$).subscribe(([a, b]) => console.log(a, b))\n",[20,218774,218775,218786,218790,218795,218825,218829,218834,218861,218865,218870,218881,218885,218890],{"__ignoreMap":30},[34,218776,218777,218779,218782,218784],{"class":36,"line":37},[34,218778,581],{"class":580},[34,218780,218781],{"class":181}," { combineLatest, forkJoin, merge, zip, withLatestFrom } ",[34,218783,587],{"class":580},[34,218785,218075],{"class":54},[34,218787,218788],{"class":36,"line":44},[34,218789,62],{"emptyLinePlaceholder":61},[34,218791,218792],{"class":36,"line":58},[34,218793,218794],{"class":40},"// Emit latest from each when any emits\n",[34,218796,218797,218800,218803,218805,218808,218810,218812,218814,218816,218818,218820,218822],{"class":36,"line":65},[34,218798,218799],{"class":47},"combineLatest",[34,218801,218802],{"class":181},"([a$, b$]).",[34,218804,3630],{"class":47},[34,218806,218807],{"class":181},"(([",[34,218809,145],{"class":675},[34,218811,1798],{"class":181},[34,218813,8355],{"class":675},[34,218815,193030],{"class":181},[34,218817,3361],{"class":580},[34,218819,4940],{"class":181},[34,218821,2424],{"class":47},[34,218823,218824],{"class":181},"(a, b))\n",[34,218826,218827],{"class":36,"line":71},[34,218828,62],{"emptyLinePlaceholder":61},[34,218830,218831],{"class":36,"line":77},[34,218832,218833],{"class":40},"// Wait for all to complete, emit last values (good for parallel HTTP)\n",[34,218835,218836,218839,218842,218844,218846,218849,218851,218854,218856,218858],{"class":36,"line":82},[34,218837,218838],{"class":47},"forkJoin",[34,218840,218841],{"class":181},"([req1$, req2$]).",[34,218843,3630],{"class":47},[34,218845,218807],{"class":181},[34,218847,218848],{"class":675},"res1",[34,218850,1798],{"class":181},[34,218852,218853],{"class":675},"res2",[34,218855,193030],{"class":181},[34,218857,3361],{"class":580},[34,218859,218860],{"class":181}," {})\n",[34,218862,218863],{"class":36,"line":88},[34,218864,62],{"emptyLinePlaceholder":61},[34,218866,218867],{"class":36,"line":242},[34,218868,218869],{"class":40},"// Merge multiple observables into one stream\n",[34,218871,218872,218874,218877,218879],{"class":36,"line":250},[34,218873,97933],{"class":47},[34,218875,218876],{"class":181},"(click$, keypress$).",[34,218878,3630],{"class":47},[34,218880,218344],{"class":181},[34,218882,218883],{"class":36,"line":263},[34,218884,62],{"emptyLinePlaceholder":61},[34,218886,218887],{"class":36,"line":275},[34,218888,218889],{"class":40},"// Pair values by index\n",[34,218891,218892,218894,218897,218899,218901,218903,218905,218907,218909,218911,218913,218915],{"class":36,"line":700},[34,218893,194698],{"class":47},[34,218895,218896],{"class":181},"(a$, b$).",[34,218898,3630],{"class":47},[34,218900,218807],{"class":181},[34,218902,145],{"class":675},[34,218904,1798],{"class":181},[34,218906,8355],{"class":675},[34,218908,193030],{"class":181},[34,218910,3361],{"class":580},[34,218912,4940],{"class":181},[34,218914,2424],{"class":47},[34,218916,218824],{"class":181},[11,218918,19352],{"id":19357},[25,218920,218922],{"className":91533,"code":218921,"language":91535,"meta":30,"style":30},"import { catchError, retry, retryWhen } from \"rxjs/operators\"\nimport { throwError, of } from \"rxjs\"\n\nobs$.pipe(\n  catchError(err => of(\"fallback\")),  // recover with fallback value\n  retry(3),                           // retry up to 3 times on error\n)\n",[20,218923,218924,218935,218946,218950,218958,218982,218996],{"__ignoreMap":30},[34,218925,218926,218928,218931,218933],{"class":36,"line":37},[34,218927,581],{"class":580},[34,218929,218930],{"class":181}," { catchError, retry, retryWhen } ",[34,218932,587],{"class":580},[34,218934,218508],{"class":54},[34,218936,218937,218939,218942,218944],{"class":36,"line":44},[34,218938,581],{"class":580},[34,218940,218941],{"class":181}," { throwError, of } ",[34,218943,587],{"class":580},[34,218945,218075],{"class":54},[34,218947,218948],{"class":36,"line":58},[34,218949,62],{"emptyLinePlaceholder":61},[34,218951,218952,218954,218956],{"class":36,"line":65},[34,218953,218219],{"class":181},[34,218955,1879],{"class":47},[34,218957,1882],{"class":181},[34,218959,218960,218963,218965,218967,218969,218971,218973,218976,218979],{"class":36,"line":71},[34,218961,218962],{"class":47},"  catchError",[34,218964,1607],{"class":181},[34,218966,20566],{"class":675},[34,218968,1895],{"class":580},[34,218970,14917],{"class":47},[34,218972,1607],{"class":181},[34,218974,218975],{"class":54},"\"fallback\"",[34,218977,218978],{"class":181},")),  ",[34,218980,218981],{"class":40},"// recover with fallback value\n",[34,218983,218984,218986,218988,218990,218993],{"class":36,"line":77},[34,218985,209579],{"class":47},[34,218987,1607],{"class":181},[34,218989,3162],{"class":50},[34,218991,218992],{"class":181},"),                           ",[34,218994,218995],{"class":40},"// retry up to 3 times on error\n",[34,218997,218998],{"class":36,"line":82},[34,218999,3372],{"class":181},[11,219001,219003],{"id":219002},"subject-types","Subject Types",[25,219005,219007],{"className":91533,"code":219006,"language":91535,"meta":30,"style":30},"import { Subject, BehaviorSubject, ReplaySubject, AsyncSubject } from \"rxjs\"\n\nconst subject = new Subject\u003Cnumber>()       // no initial value, no replay\nconst behavior = new BehaviorSubject(0)     // holds current value\nconst replay = new ReplaySubject(3)         // replays last 3 values to new subscribers\nconst async$ = new AsyncSubject\u003Cnumber>()   // only emits the last value on complete\n\nbehavior.getValue()  // access current value synchronously\n",[20,219008,219009,219020,219024,219046,219068,219091,219115,219119],{"__ignoreMap":30},[34,219010,219011,219013,219016,219018],{"class":36,"line":37},[34,219012,581],{"class":580},[34,219014,219015],{"class":181}," { Subject, BehaviorSubject, ReplaySubject, AsyncSubject } ",[34,219017,587],{"class":580},[34,219019,218075],{"class":54},[34,219021,219022],{"class":36,"line":44},[34,219023,62],{"emptyLinePlaceholder":61},[34,219025,219026,219028,219030,219032,219034,219036,219038,219040,219043],{"class":36,"line":58},[34,219027,14676],{"class":580},[34,219029,218160],{"class":50},[34,219031,683],{"class":580},[34,219033,809],{"class":580},[34,219035,218167],{"class":47},[34,219037,815],{"class":181},[34,219039,130478],{"class":50},[34,219041,219042],{"class":181},">()       ",[34,219044,219045],{"class":40},"// no initial value, no replay\n",[34,219047,219048,219050,219053,219055,219057,219059,219061,219063,219065],{"class":36,"line":65},[34,219049,14676],{"class":580},[34,219051,219052],{"class":50}," behavior",[34,219054,683],{"class":580},[34,219056,809],{"class":580},[34,219058,218196],{"class":47},[34,219060,1607],{"class":181},[34,219062,2773],{"class":50},[34,219064,104237],{"class":181},[34,219066,219067],{"class":40},"// holds current value\n",[34,219069,219070,219072,219075,219077,219079,219082,219084,219086,219088],{"class":36,"line":71},[34,219071,14676],{"class":580},[34,219073,219074],{"class":50}," replay",[34,219076,683],{"class":580},[34,219078,809],{"class":580},[34,219080,219081],{"class":47}," ReplaySubject",[34,219083,1607],{"class":181},[34,219085,3162],{"class":50},[34,219087,152329],{"class":181},[34,219089,219090],{"class":40},"// replays last 3 values to new subscribers\n",[34,219092,219093,219095,219098,219100,219102,219105,219107,219109,219112],{"class":36,"line":77},[34,219094,14676],{"class":580},[34,219096,219097],{"class":50}," async$",[34,219099,683],{"class":580},[34,219101,809],{"class":580},[34,219103,219104],{"class":47}," AsyncSubject",[34,219106,815],{"class":181},[34,219108,130478],{"class":50},[34,219110,219111],{"class":181},">()   ",[34,219113,219114],{"class":40},"// only emits the last value on complete\n",[34,219116,219117],{"class":36,"line":82},[34,219118,62],{"emptyLinePlaceholder":61},[34,219120,219121,219124,219126,219128],{"class":36,"line":88},[34,219122,219123],{"class":181},"behavior.",[34,219125,51865],{"class":47},[34,219127,105224],{"class":181},[34,219129,219130],{"class":40},"// access current value synchronously\n",[388,219132,219133],{},"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 .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}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":30,"searchDepth":44,"depth":44,"links":219135},[219136,219137,219138,219139,219140,219141,219142,219143,219144],{"id":96,"depth":44,"text":97},{"id":62662,"depth":44,"text":62663},{"id":218208,"depth":44,"text":218209},{"id":218356,"depth":44,"text":218357},{"id":218490,"depth":44,"text":218491},{"id":218643,"depth":44,"text":218644},{"id":218768,"depth":44,"text":218769},{"id":19357,"depth":44,"text":19352},{"id":219002,"depth":44,"text":219003},"Reactive Extensions for JavaScript — a library for composing asynchronous and event-based programs using observable sequences.",{},"/rxjs/overview",{"title":218038,"description":219145},"rxjs/overview","rxjs",[219150,219152,219153,8606,573,17403],"reactive","observables","xNbLT6QhhpttfZZO49BT0pixjIiauPmNLHu4EtpJtAg",{"id":219156,"title":5595,"body":219157,"date":402,"description":219471,"extension":404,"meta":219472,"navigation":61,"order":275,"path":219473,"seo":219474,"stem":219475,"subject":219476,"tags":219477,"__hash__":219478},"topics/sass/best-practices.md",{"type":8,"value":219158,"toc":219468},[219159,219161,219465],[11,219160,5595],{"id":5600},[25,219162,219166],{"className":219163,"code":219164,"language":219165,"meta":30,"style":30},"language-scss shiki shiki-themes github-light github-dark","// 1. Organize with partials\n// _variables.scss, _mixins.scss, _base.scss, _components.scss\n@use 'variables';\n@use 'mixins';\n@use 'base';\n@use 'components';\n\n// 2. Keep nesting shallow (max 3-4 levels)\n// ✓ Good\n.nav {\n  &__item { }\n  &__link { }\n}\n\n// ✗ Avoid deep nesting\n.nav {\n  ul {\n    li {\n      a {\n        span { }  // Too deep!\n      }\n    }\n  }\n}\n\n// 3. Use variables for repeated values\n$spacing-unit: 8px;\n$primary-color: #3498db;\n\n// 4. Prefer @use over @import (modern Sass)\n@use 'sass:math';\n@use 'variables' as vars;\n\n// 5. Use placeholder selectors for @extend\n%visually-hidden {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n}\n\n.sr-only {\n  @extend %visually-hidden;\n}\n","scss",[20,219167,219168,219173,219178,219188,219197,219206,219215,219219,219224,219229,219236,219246,219255,219259,219263,219268,219274,219281,219288,219295,219305,219309,219313,219317,219321,219325,219330,219343,219354,219358,219363,219372,219385,219389,219394,219401,219411,219437,219441,219445,219451,219461],{"__ignoreMap":30},[34,219169,219170],{"class":36,"line":37},[34,219171,219172],{"class":40},"// 1. Organize with partials\n",[34,219174,219175],{"class":36,"line":44},[34,219176,219177],{"class":40},"// _variables.scss, _mixins.scss, _base.scss, _components.scss\n",[34,219179,219180,219183,219186],{"class":36,"line":58},[34,219181,219182],{"class":580},"@use",[34,219184,219185],{"class":54}," 'variables'",[34,219187,593],{"class":181},[34,219189,219190,219192,219195],{"class":36,"line":65},[34,219191,219182],{"class":580},[34,219193,219194],{"class":54}," 'mixins'",[34,219196,593],{"class":181},[34,219198,219199,219201,219204],{"class":36,"line":71},[34,219200,219182],{"class":580},[34,219202,219203],{"class":54}," 'base'",[34,219205,593],{"class":181},[34,219207,219208,219210,219213],{"class":36,"line":77},[34,219209,219182],{"class":580},[34,219211,219212],{"class":54}," 'components'",[34,219214,593],{"class":181},[34,219216,219217],{"class":36,"line":82},[34,219218,62],{"emptyLinePlaceholder":61},[34,219220,219221],{"class":36,"line":88},[34,219222,219223],{"class":40},"// 2. Keep nesting shallow (max 3-4 levels)\n",[34,219225,219226],{"class":36,"line":242},[34,219227,219228],{"class":40},"// ✓ Good\n",[34,219230,219231,219234],{"class":36,"line":250},[34,219232,219233],{"class":47},".nav",[34,219235,661],{"class":181},[34,219237,219238,219241,219244],{"class":36,"line":263},[34,219239,219240],{"class":177},"  &",[34,219242,219243],{"class":47},"__item",[34,219245,34540],{"class":181},[34,219247,219248,219250,219253],{"class":36,"line":275},[34,219249,219240],{"class":177},[34,219251,219252],{"class":47},"__link",[34,219254,34540],{"class":181},[34,219256,219257],{"class":36,"line":700},[34,219258,693],{"class":181},[34,219260,219261],{"class":36,"line":706},[34,219262,62],{"emptyLinePlaceholder":61},[34,219264,219265],{"class":36,"line":715},[34,219266,219267],{"class":40},"// ✗ Avoid deep nesting\n",[34,219269,219270,219272],{"class":36,"line":725},[34,219271,219233],{"class":47},[34,219273,661],{"class":181},[34,219275,219276,219279],{"class":36,"line":734},[34,219277,219278],{"class":177},"  ul",[34,219280,661],{"class":181},[34,219282,219283,219286],{"class":36,"line":742},[34,219284,219285],{"class":177},"    li",[34,219287,661],{"class":181},[34,219289,219290,219293],{"class":36,"line":748},[34,219291,219292],{"class":177},"      a",[34,219294,661],{"class":181},[34,219296,219297,219300,219302],{"class":36,"line":754},[34,219298,219299],{"class":177},"        span",[34,219301,41536],{"class":181},[34,219303,219304],{"class":40},"// Too deep!\n",[34,219306,219307],{"class":36,"line":759},[34,219308,3078],{"class":181},[34,219310,219311],{"class":36,"line":771},[34,219312,3229],{"class":181},[34,219314,219315],{"class":36,"line":794},[34,219316,857],{"class":181},[34,219318,219319],{"class":36,"line":824},[34,219320,693],{"class":181},[34,219322,219323],{"class":36,"line":830},[34,219324,62],{"emptyLinePlaceholder":61},[34,219326,219327],{"class":36,"line":839},[34,219328,219329],{"class":40},"// 3. Use variables for repeated values\n",[34,219331,219332,219335,219337,219339,219341],{"class":36,"line":854},[34,219333,219334],{"class":675},"$spacing-unit",[34,219336,182],{"class":181},[34,219338,18033],{"class":50},[34,219340,38220],{"class":580},[34,219342,593],{"class":181},[34,219344,219345,219348,219350,219352],{"class":36,"line":860},[34,219346,219347],{"class":675},"$primary-color",[34,219349,182],{"class":181},[34,219351,39665],{"class":50},[34,219353,593],{"class":181},[34,219355,219356],{"class":36,"line":865},[34,219357,62],{"emptyLinePlaceholder":61},[34,219359,219360],{"class":36,"line":870},[34,219361,219362],{"class":40},"// 4. Prefer @use over @import (modern Sass)\n",[34,219364,219365,219367,219370],{"class":36,"line":876},[34,219366,219182],{"class":580},[34,219368,219369],{"class":54}," 'sass:math'",[34,219371,593],{"class":181},[34,219373,219374,219376,219378,219380,219383],{"class":36,"line":885},[34,219375,219182],{"class":580},[34,219377,219185],{"class":54},[34,219379,91551],{"class":580},[34,219381,219382],{"class":675}," vars",[34,219384,593],{"class":181},[34,219386,219387],{"class":36,"line":895},[34,219388,62],{"emptyLinePlaceholder":61},[34,219390,219391],{"class":36,"line":904},[34,219392,219393],{"class":40},"// 5. Use placeholder selectors for @extend\n",[34,219395,219396,219399],{"class":36,"line":915},[34,219397,219398],{"class":47},"%visually-hidden",[34,219400,661],{"class":181},[34,219402,219403,219405,219407,219409],{"class":36,"line":927},[34,219404,39042],{"class":50},[34,219406,182],{"class":181},[34,219408,39047],{"class":50},[34,219410,593],{"class":181},[34,219412,219413,219415,219417,219419,219421,219423,219425,219427,219429,219431,219433,219435],{"class":36,"line":932},[34,219414,39113],{"class":50},[34,219416,182],{"class":181},[34,219418,39118],{"class":50},[34,219420,1607],{"class":181},[34,219422,2773],{"class":50},[34,219424,1798],{"class":181},[34,219426,2773],{"class":50},[34,219428,1798],{"class":181},[34,219430,2773],{"class":50},[34,219432,1798],{"class":181},[34,219434,2773],{"class":50},[34,219436,1586],{"class":181},[34,219438,219439],{"class":36,"line":944},[34,219440,693],{"class":181},[34,219442,219443],{"class":36,"line":966},[34,219444,62],{"emptyLinePlaceholder":61},[34,219446,219447,219449],{"class":36,"line":1948},[34,219448,39035],{"class":47},[34,219450,661],{"class":181},[34,219452,219453,219456,219459],{"class":36,"line":1953},[34,219454,219455],{"class":580},"  @extend",[34,219457,219458],{"class":47}," %visually-hidden",[34,219460,593],{"class":181},[34,219462,219463],{"class":36,"line":3616},[34,219464,693],{"class":181},[388,219466,219467],{},"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 .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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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 .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":30,"searchDepth":44,"depth":44,"links":219469},[219470],{"id":5600,"depth":44,"text":5595},"Best Practices in Sass.",{},"/sass/best-practices",{"title":5595,"description":219471},"sass/best-practices","sass",[219476,219165,38194,23555,982,38616],"rIErIUD9gnpmHUGv-KWfpZS6nc_OckMe14hoOeS3LeA",{"id":219480,"title":219481,"body":219482,"date":402,"description":219979,"extension":404,"meta":219980,"navigation":61,"order":88,"path":219981,"seo":219982,"stem":219983,"subject":219476,"tags":219984,"__hash__":219985},"topics/sass/control-directives.md","Control Directives",{"type":8,"value":219483,"toc":219976},[219484,219487,219974],[11,219485,219481],{"id":219486},"control-directives",[25,219488,219490],{"className":219163,"code":219489,"language":219165,"meta":30,"style":30},"// @if / @else if / @else\n@mixin theme($mode) {\n  @if $mode == dark {\n    background: #333;\n    color: #fff;\n  } @else if $mode == light {\n    background: #fff;\n    color: #333;\n  } @else {\n    background: #f5f5f5;\n    color: #333;\n  }\n}\n\n// @for loop\n@for $i from 1 through 5 {\n  .col-#{$i} {\n    width: 20% * $i;\n  }\n}\n// Generates .col-1 { width: 20% } through .col-5 { width: 100% }\n\n// @each loop\n$colors: (primary: #3498db, secondary: #2ecc71, danger: #e74c3c);\n\n@each $name, $color in $colors {\n  .btn-#{$name} {\n    background-color: $color;\n  }\n}\n\n// Simple list iteration\n$sizes: sm, md, lg;\n\n@each $size in $sizes {\n  .text-#{$size} {\n    font-size: if($size == sm, 0.875rem, if($size == md, 1rem, 1.25rem));\n  }\n}\n\n// @while loop\n$i: 1;\n@while $i \u003C= 3 {\n  .item-#{$i} {\n    width: 100px * $i;\n  }\n  $i: $i + 1;\n}\n",[20,219491,219492,219497,219511,219525,219537,219549,219564,219574,219584,219593,219604,219614,219618,219622,219626,219631,219650,219660,219677,219681,219685,219690,219694,219699,219734,219738,219758,219768,219779,219783,219787,219791,219796,219804,219808,219822,219832,219886,219890,219894,219898,219903,219913,219926,219935,219951,219955,219970],{"__ignoreMap":30},[34,219493,219494],{"class":36,"line":37},[34,219495,219496],{"class":40},"// @if / @else if / @else\n",[34,219498,219499,219502,219504,219506,219509],{"class":36,"line":44},[34,219500,219501],{"class":580},"@mixin",[34,219503,157427],{"class":47},[34,219505,1607],{"class":181},[34,219507,219508],{"class":675},"$mode",[34,219510,2416],{"class":181},[34,219512,219513,219516,219519,219521,219523],{"class":36,"line":58},[34,219514,219515],{"class":580},"  @if",[34,219517,219518],{"class":675}," $mode",[34,219520,10946],{"class":580},[34,219522,103291],{"class":50},[34,219524,661],{"class":181},[34,219526,219527,219530,219532,219535],{"class":36,"line":65},[34,219528,219529],{"class":50},"    background",[34,219531,182],{"class":181},[34,219533,219534],{"class":50},"#333",[34,219536,593],{"class":181},[34,219538,219539,219542,219544,219547],{"class":36,"line":71},[34,219540,219541],{"class":50},"    color",[34,219543,182],{"class":181},[34,219545,219546],{"class":50},"#fff",[34,219548,593],{"class":181},[34,219550,219551,219553,219556,219558,219560,219562],{"class":36,"line":77},[34,219552,126416],{"class":181},[34,219554,219555],{"class":580},"@else if",[34,219557,219518],{"class":675},[34,219559,10946],{"class":580},[34,219561,103443],{"class":50},[34,219563,661],{"class":181},[34,219565,219566,219568,219570,219572],{"class":36,"line":82},[34,219567,219529],{"class":50},[34,219569,182],{"class":181},[34,219571,219546],{"class":50},[34,219573,593],{"class":181},[34,219575,219576,219578,219580,219582],{"class":36,"line":88},[34,219577,219541],{"class":50},[34,219579,182],{"class":181},[34,219581,219534],{"class":50},[34,219583,593],{"class":181},[34,219585,219586,219588,219591],{"class":36,"line":242},[34,219587,126416],{"class":181},[34,219589,219590],{"class":580},"@else ",[34,219592,25296],{"class":181},[34,219594,219595,219597,219599,219602],{"class":36,"line":250},[34,219596,219529],{"class":50},[34,219598,182],{"class":181},[34,219600,219601],{"class":50},"#f5f5f5",[34,219603,593],{"class":181},[34,219605,219606,219608,219610,219612],{"class":36,"line":263},[34,219607,219541],{"class":50},[34,219609,182],{"class":181},[34,219611,219534],{"class":50},[34,219613,593],{"class":181},[34,219615,219616],{"class":36,"line":275},[34,219617,857],{"class":181},[34,219619,219620],{"class":36,"line":700},[34,219621,693],{"class":181},[34,219623,219624],{"class":36,"line":706},[34,219625,62],{"emptyLinePlaceholder":61},[34,219627,219628],{"class":36,"line":715},[34,219629,219630],{"class":40},"// @for loop\n",[34,219632,219633,219636,219639,219641,219643,219646,219648],{"class":36,"line":725},[34,219634,219635],{"class":580},"@for",[34,219637,219638],{"class":675}," $i",[34,219640,36370],{"class":580},[34,219642,3567],{"class":50},[34,219644,219645],{"class":580}," through",[34,219647,11144],{"class":50},[34,219649,661],{"class":181},[34,219651,219652,219655,219658],{"class":36,"line":734},[34,219653,219654],{"class":47},"  .col-",[34,219656,219657],{"class":675},"#{$i}",[34,219659,661],{"class":181},[34,219661,219662,219665,219667,219669,219671,219673,219675],{"class":36,"line":742},[34,219663,219664],{"class":50},"    width",[34,219666,182],{"class":181},[34,219668,24945],{"class":50},[34,219670,12797],{"class":580},[34,219672,18083],{"class":580},[34,219674,219638],{"class":675},[34,219676,593],{"class":181},[34,219678,219679],{"class":36,"line":748},[34,219680,857],{"class":181},[34,219682,219683],{"class":36,"line":754},[34,219684,693],{"class":181},[34,219686,219687],{"class":36,"line":759},[34,219688,219689],{"class":40},"// Generates .col-1 { width: 20% } through .col-5 { width: 100% }\n",[34,219691,219692],{"class":36,"line":771},[34,219693,62],{"emptyLinePlaceholder":61},[34,219695,219696],{"class":36,"line":794},[34,219697,219698],{"class":40},"// @each loop\n",[34,219700,219701,219704,219706,219709,219711,219713,219715,219718,219720,219722,219724,219727,219729,219732],{"class":36,"line":824},[34,219702,219703],{"class":675},"$colors",[34,219705,162313],{"class":181},[34,219707,219708],{"class":50},"primary",[34,219710,182],{"class":181},[34,219712,39665],{"class":50},[34,219714,1798],{"class":181},[34,219716,219717],{"class":50},"secondary",[34,219719,182],{"class":181},[34,219721,39677],{"class":50},[34,219723,1798],{"class":181},[34,219725,219726],{"class":50},"danger",[34,219728,182],{"class":181},[34,219730,219731],{"class":50},"#e74c3c",[34,219733,1586],{"class":181},[34,219735,219736],{"class":36,"line":830},[34,219737,62],{"emptyLinePlaceholder":61},[34,219739,219740,219743,219746,219748,219751,219753,219756],{"class":36,"line":839},[34,219741,219742],{"class":580},"@each",[34,219744,219745],{"class":675}," $name",[34,219747,1798],{"class":181},[34,219749,219750],{"class":675},"$color",[34,219752,36375],{"class":580},[34,219754,219755],{"class":675}," $colors",[34,219757,661],{"class":181},[34,219759,219760,219763,219766],{"class":36,"line":854},[34,219761,219762],{"class":47},"  .btn-",[34,219764,219765],{"class":675},"#{$name}",[34,219767,661],{"class":181},[34,219769,219770,219773,219775,219777],{"class":36,"line":860},[34,219771,219772],{"class":50},"    background-color",[34,219774,182],{"class":181},[34,219776,219750],{"class":675},[34,219778,593],{"class":181},[34,219780,219781],{"class":36,"line":865},[34,219782,857],{"class":181},[34,219784,219785],{"class":36,"line":870},[34,219786,693],{"class":181},[34,219788,219789],{"class":36,"line":876},[34,219790,62],{"emptyLinePlaceholder":61},[34,219792,219793],{"class":36,"line":885},[34,219794,219795],{"class":40},"// Simple list iteration\n",[34,219797,219798,219801],{"class":36,"line":895},[34,219799,219800],{"class":675},"$sizes",[34,219802,219803],{"class":181},": sm, md, lg;\n",[34,219805,219806],{"class":36,"line":904},[34,219807,62],{"emptyLinePlaceholder":61},[34,219809,219810,219812,219815,219817,219820],{"class":36,"line":915},[34,219811,219742],{"class":580},[34,219813,219814],{"class":675}," $size",[34,219816,36375],{"class":580},[34,219818,219819],{"class":675}," $sizes",[34,219821,661],{"class":181},[34,219823,219824,219827,219830],{"class":36,"line":927},[34,219825,219826],{"class":47},"  .text-",[34,219828,219829],{"class":675},"#{$size}",[34,219831,661],{"class":181},[34,219833,219834,219837,219839,219841,219843,219846,219848,219851,219853,219856,219858,219860,219862,219864,219866,219868,219871,219873,219875,219877,219879,219882,219884],{"class":36,"line":932},[34,219835,219836],{"class":50},"    font-size",[34,219838,182],{"class":181},[34,219840,10383],{"class":50},[34,219842,1607],{"class":181},[34,219844,219845],{"class":675},"$size",[34,219847,10946],{"class":675},[34,219849,219850],{"class":675}," sm",[34,219852,1798],{"class":181},[34,219854,219855],{"class":50},"0.875",[34,219857,38358],{"class":580},[34,219859,1798],{"class":181},[34,219861,10383],{"class":50},[34,219863,1607],{"class":181},[34,219865,219845],{"class":675},[34,219867,10946],{"class":675},[34,219869,219870],{"class":675}," md",[34,219872,1798],{"class":181},[34,219874,8318],{"class":50},[34,219876,38358],{"class":580},[34,219878,1798],{"class":181},[34,219880,219881],{"class":50},"1.25",[34,219883,38358],{"class":580},[34,219885,15223],{"class":181},[34,219887,219888],{"class":36,"line":944},[34,219889,857],{"class":181},[34,219891,219892],{"class":36,"line":966},[34,219893,693],{"class":181},[34,219895,219896],{"class":36,"line":1948},[34,219897,62],{"emptyLinePlaceholder":61},[34,219899,219900],{"class":36,"line":1953},[34,219901,219902],{"class":40},"// @while loop\n",[34,219904,219905,219907,219909,219911],{"class":36,"line":3616},[34,219906,10329],{"class":675},[34,219908,182],{"class":181},[34,219910,8318],{"class":50},[34,219912,593],{"class":181},[34,219914,219915,219918,219920,219922,219924],{"class":36,"line":3622},[34,219916,219917],{"class":580},"@while",[34,219919,219638],{"class":675},[34,219921,2911],{"class":580},[34,219923,11147],{"class":50},[34,219925,661],{"class":181},[34,219927,219928,219931,219933],{"class":36,"line":3642},[34,219929,219930],{"class":47},"  .item-",[34,219932,219657],{"class":675},[34,219934,661],{"class":181},[34,219936,219937,219939,219941,219943,219945,219947,219949],{"class":36,"line":3657},[34,219938,219664],{"class":50},[34,219940,182],{"class":181},[34,219942,20863],{"class":50},[34,219944,38220],{"class":580},[34,219946,18083],{"class":580},[34,219948,219638],{"class":675},[34,219950,593],{"class":181},[34,219952,219953],{"class":36,"line":3663},[34,219954,857],{"class":181},[34,219956,219957,219960,219962,219964,219966,219968],{"class":36,"line":3669},[34,219958,219959],{"class":675},"  $i",[34,219961,182],{"class":181},[34,219963,10329],{"class":675},[34,219965,11537],{"class":580},[34,219967,3567],{"class":50},[34,219969,593],{"class":181},[34,219971,219972],{"class":36,"line":3675},[34,219973,693],{"class":181},[388,219975,60244],{},{"title":30,"searchDepth":44,"depth":44,"links":219977},[219978],{"id":219486,"depth":44,"text":219481},"Control Directives in Sass.",{},"/sass/control-directives",{"title":219481,"description":219979},"sass/control-directives",[219476,219165,38194,23555,982,38616],"aiNxyO2uLoudFFwur0x0MwZyrgHBdPcuP6RxeeYUzQQ",{"id":219987,"title":219988,"body":219989,"date":402,"description":220255,"extension":404,"meta":220256,"navigation":61,"order":82,"path":220257,"seo":220258,"stem":220259,"subject":219476,"tags":220260,"__hash__":220261},"topics/sass/extend-inheritance.md","Extend & Inheritance",{"type":8,"value":219990,"toc":220252},[219991,219994,220250],[11,219992,219988],{"id":219993},"extend-inheritance",[25,219995,219997],{"className":219163,"code":219996,"language":219165,"meta":30,"style":30},"// Base styles to extend\n%button-base {\n  padding: 0.5rem 1rem;\n  border: none;\n  border-radius: 4px;\n  cursor: pointer;\n  font-size: 1rem;\n}\n\n// Extend the placeholder\n.btn-primary {\n  @extend %button-base;\n  background: #3498db;\n  color: white;\n}\n\n.btn-secondary {\n  @extend %button-base;\n  background: #95a5a6;\n  color: white;\n}\n\n// Extend a class (less preferred)\n.error {\n  border: 1px solid red;\n  color: red;\n}\n\n.critical-error {\n  @extend .error;\n  font-weight: bold;\n}\n",[20,219998,219999,220004,220011,220027,220037,220049,220060,220072,220076,220080,220085,220092,220101,220111,220121,220125,220129,220136,220144,220155,220165,220169,220173,220178,220185,220202,220212,220216,220220,220227,220236,220246],{"__ignoreMap":30},[34,220000,220001],{"class":36,"line":37},[34,220002,220003],{"class":40},"// Base styles to extend\n",[34,220005,220006,220009],{"class":36,"line":44},[34,220007,220008],{"class":47},"%button-base",[34,220010,661],{"class":181},[34,220012,220013,220015,220017,220019,220021,220023,220025],{"class":36,"line":58},[34,220014,38276],{"class":50},[34,220016,182],{"class":181},[34,220018,38726],{"class":50},[34,220020,38358],{"class":580},[34,220022,3567],{"class":50},[34,220024,38358],{"class":580},[34,220026,593],{"class":181},[34,220028,220029,220031,220033,220035],{"class":36,"line":65},[34,220030,38521],{"class":50},[34,220032,182],{"class":181},[34,220034,40865],{"class":50},[34,220036,593],{"class":181},[34,220038,220039,220041,220043,220045,220047],{"class":36,"line":71},[34,220040,38540],{"class":50},[34,220042,182],{"class":181},[34,220044,18010],{"class":50},[34,220046,38220],{"class":580},[34,220048,593],{"class":181},[34,220050,220051,220054,220056,220058],{"class":36,"line":77},[34,220052,220053],{"class":177},"  cursor",[34,220055,182],{"class":181},[34,220057,41423],{"class":50},[34,220059,593],{"class":181},[34,220061,220062,220064,220066,220068,220070],{"class":36,"line":82},[34,220063,39528],{"class":50},[34,220065,182],{"class":181},[34,220067,8318],{"class":50},[34,220069,38358],{"class":580},[34,220071,593],{"class":181},[34,220073,220074],{"class":36,"line":88},[34,220075,693],{"class":181},[34,220077,220078],{"class":36,"line":242},[34,220079,62],{"emptyLinePlaceholder":61},[34,220081,220082],{"class":36,"line":250},[34,220083,220084],{"class":40},"// Extend the placeholder\n",[34,220086,220087,220090],{"class":36,"line":263},[34,220088,220089],{"class":47},".btn-primary",[34,220091,661],{"class":181},[34,220093,220094,220096,220099],{"class":36,"line":275},[34,220095,219455],{"class":580},[34,220097,220098],{"class":47}," %button-base",[34,220100,593],{"class":181},[34,220102,220103,220105,220107,220109],{"class":36,"line":700},[34,220104,38906],{"class":50},[34,220106,182],{"class":181},[34,220108,39665],{"class":50},[34,220110,593],{"class":181},[34,220112,220113,220115,220117,220119],{"class":36,"line":706},[34,220114,38647],{"class":50},[34,220116,182],{"class":181},[34,220118,40833],{"class":50},[34,220120,593],{"class":181},[34,220122,220123],{"class":36,"line":715},[34,220124,693],{"class":181},[34,220126,220127],{"class":36,"line":725},[34,220128,62],{"emptyLinePlaceholder":61},[34,220130,220131,220134],{"class":36,"line":734},[34,220132,220133],{"class":47},".btn-secondary",[34,220135,661],{"class":181},[34,220137,220138,220140,220142],{"class":36,"line":742},[34,220139,219455],{"class":580},[34,220141,220098],{"class":47},[34,220143,593],{"class":181},[34,220145,220146,220148,220150,220153],{"class":36,"line":748},[34,220147,38906],{"class":50},[34,220149,182],{"class":181},[34,220151,220152],{"class":50},"#95a5a6",[34,220154,593],{"class":181},[34,220156,220157,220159,220161,220163],{"class":36,"line":754},[34,220158,38647],{"class":50},[34,220160,182],{"class":181},[34,220162,40833],{"class":50},[34,220164,593],{"class":181},[34,220166,220167],{"class":36,"line":759},[34,220168,693],{"class":181},[34,220170,220171],{"class":36,"line":771},[34,220172,62],{"emptyLinePlaceholder":61},[34,220174,220175],{"class":36,"line":794},[34,220176,220177],{"class":40},"// Extend a class (less preferred)\n",[34,220179,220180,220183],{"class":36,"line":824},[34,220181,220182],{"class":47},".error",[34,220184,661],{"class":181},[34,220186,220187,220189,220191,220193,220195,220197,220200],{"class":36,"line":830},[34,220188,38521],{"class":50},[34,220190,182],{"class":181},[34,220192,8318],{"class":50},[34,220194,38220],{"class":580},[34,220196,38530],{"class":50},[34,220198,220199],{"class":50}," red",[34,220201,593],{"class":181},[34,220203,220204,220206,220208,220210],{"class":36,"line":839},[34,220205,38647],{"class":50},[34,220207,182],{"class":181},[34,220209,38652],{"class":50},[34,220211,593],{"class":181},[34,220213,220214],{"class":36,"line":854},[34,220215,693],{"class":181},[34,220217,220218],{"class":36,"line":860},[34,220219,62],{"emptyLinePlaceholder":61},[34,220221,220222,220225],{"class":36,"line":865},[34,220223,220224],{"class":47},".critical-error",[34,220226,661],{"class":181},[34,220228,220229,220231,220234],{"class":36,"line":870},[34,220230,219455],{"class":580},[34,220232,220233],{"class":47}," .error",[34,220235,593],{"class":181},[34,220237,220238,220240,220242,220244],{"class":36,"line":876},[34,220239,42108],{"class":50},[34,220241,182],{"class":181},[34,220243,41686],{"class":50},[34,220245,593],{"class":181},[34,220247,220248],{"class":36,"line":885},[34,220249,693],{"class":181},[388,220251,40877],{},{"title":30,"searchDepth":44,"depth":44,"links":220253},[220254],{"id":219993,"depth":44,"text":219988},"Extend & Inheritance in Sass.",{},"/sass/extend-inheritance",{"title":219988,"description":220255},"sass/extend-inheritance",[219476,219165,38194,23555,982,38616],"fwsKoGqCO-3Z3jwuAPvo7xCAHykzF4MCGdFq5kDJhQs",{"id":220263,"title":10991,"body":220264,"date":402,"description":220815,"extension":404,"meta":220816,"navigation":61,"order":77,"path":220817,"seo":220818,"stem":220819,"subject":219476,"tags":220820,"__hash__":220821},"topics/sass/functions.md",{"type":8,"value":220265,"toc":220812},[220266,220268,220809],[11,220267,10991],{"id":10996},[25,220269,220271],{"className":219163,"code":220270,"language":219165,"meta":30,"style":30},"// Define a function\n@function calculate-rem($pixels) {\n  @return $pixels / 16 * 1rem;\n}\n\n// Use the function\n.heading {\n  font-size: calculate-rem(24);  // 1.5rem\n}\n\n// Function with multiple parameters\n@function color-shade($color, $percent) {\n  @return mix(black, $color, $percent);\n}\n\n.dark-blue {\n  background: color-shade(#3498db, 20%);\n}\n\n// Built-in color functions\n$color: #3498db;\nlighten($color, 20%);     // lighter shade\ndarken($color, 20%);      // darker shade\nsaturate($color, 20%);    // more saturated\ndesaturate($color, 20%);  // less saturated\nadjust-hue($color, 45deg); // shift hue\nrgba($color, 0.5);        // add transparency\nmix($color1, $color2, 50%); // blend colors\ncomplement($color);       // complementary color\n\n// Built-in number functions\npercentage(0.5);          // 50%\nround(4.6);               // 5\nceil(4.2);                // 5\nfloor(4.8);               // 4\nabs(-10);                 // 10\nmin(1, 2, 3);             // 1\nmax(1, 2, 3);             // 3\n\n// Built-in string functions\nquote(hello);             // \"hello\"\nunquote(\"hello\");         // hello\nstr-length(\"hello\");      // 5\nto-upper-case(\"hello\");   // \"HELLO\"\nto-lower-case(\"HELLO\");   // \"hello\"\n\n// Built-in list functions\n$list: 1, 2, 3, 4, 5;\nlength($list);            // 5\nnth($list, 2);            // 2\nappend($list, 6);         // 1, 2, 3, 4, 5, 6\njoin($list1, $list2);     // combined list\nindex($list, 3);          // 3 (position)\n",[20,220272,220273,220278,220293,220313,220317,220321,220326,220333,220352,220356,220360,220365,220383,220404,220408,220412,220419,220440,220444,220448,220453,220463,220476,220489,220502,220515,220528,220545,220564,220576,220580,220585,220597,220611,220623,220636,220644,220652,220660,220664,220669,220676,220684,220691,220698,220705,220709,220714,220741,220752,220765,220778,220796],{"__ignoreMap":30},[34,220274,220275],{"class":36,"line":37},[34,220276,220277],{"class":40},"// Define a function\n",[34,220279,220280,220283,220286,220288,220291],{"class":36,"line":44},[34,220281,220282],{"class":580},"@function",[34,220284,220285],{"class":50}," calculate-rem",[34,220287,1607],{"class":181},[34,220289,220290],{"class":675},"$pixels",[34,220292,2416],{"class":181},[34,220294,220295,220298,220301,220303,220305,220307,220309,220311],{"class":36,"line":58},[34,220296,220297],{"class":580},"  @return",[34,220299,220300],{"class":675}," $pixels",[34,220302,22767],{"class":580},[34,220304,82964],{"class":50},[34,220306,18083],{"class":580},[34,220308,3567],{"class":50},[34,220310,38358],{"class":580},[34,220312,593],{"class":181},[34,220314,220315],{"class":36,"line":65},[34,220316,693],{"class":181},[34,220318,220319],{"class":36,"line":71},[34,220320,62],{"emptyLinePlaceholder":61},[34,220322,220323],{"class":36,"line":77},[34,220324,220325],{"class":40},"// Use the function\n",[34,220327,220328,220331],{"class":36,"line":82},[34,220329,220330],{"class":47},".heading",[34,220332,661],{"class":181},[34,220334,220335,220337,220339,220342,220344,220347,220349],{"class":36,"line":88},[34,220336,39528],{"class":50},[34,220338,182],{"class":181},[34,220340,220341],{"class":50},"calculate-rem",[34,220343,1607],{"class":181},[34,220345,220346],{"class":50},"24",[34,220348,33489],{"class":181},[34,220350,220351],{"class":40},"// 1.5rem\n",[34,220353,220354],{"class":36,"line":242},[34,220355,693],{"class":181},[34,220357,220358],{"class":36,"line":250},[34,220359,62],{"emptyLinePlaceholder":61},[34,220361,220362],{"class":36,"line":263},[34,220363,220364],{"class":40},"// Function with multiple parameters\n",[34,220366,220367,220369,220372,220374,220376,220378,220381],{"class":36,"line":275},[34,220368,220282],{"class":580},[34,220370,220371],{"class":50}," color-shade",[34,220373,1607],{"class":181},[34,220375,219750],{"class":675},[34,220377,1798],{"class":181},[34,220379,220380],{"class":675},"$percent",[34,220382,2416],{"class":181},[34,220384,220385,220387,220390,220392,220394,220396,220398,220400,220402],{"class":36,"line":700},[34,220386,220297],{"class":580},[34,220388,220389],{"class":50}," mix",[34,220391,1607],{"class":181},[34,220393,39833],{"class":50},[34,220395,1798],{"class":181},[34,220397,219750],{"class":675},[34,220399,1798],{"class":181},[34,220401,220380],{"class":675},[34,220403,1586],{"class":181},[34,220405,220406],{"class":36,"line":706},[34,220407,693],{"class":181},[34,220409,220410],{"class":36,"line":715},[34,220411,62],{"emptyLinePlaceholder":61},[34,220413,220414,220417],{"class":36,"line":725},[34,220415,220416],{"class":47},".dark-blue",[34,220418,661],{"class":181},[34,220420,220421,220423,220425,220428,220430,220432,220434,220436,220438],{"class":36,"line":734},[34,220422,38906],{"class":50},[34,220424,182],{"class":181},[34,220426,220427],{"class":50},"color-shade",[34,220429,1607],{"class":181},[34,220431,39665],{"class":50},[34,220433,1798],{"class":181},[34,220435,24945],{"class":50},[34,220437,12797],{"class":580},[34,220439,1586],{"class":181},[34,220441,220442],{"class":36,"line":742},[34,220443,693],{"class":181},[34,220445,220446],{"class":36,"line":748},[34,220447,62],{"emptyLinePlaceholder":61},[34,220449,220450],{"class":36,"line":754},[34,220451,220452],{"class":40},"// Built-in color functions\n",[34,220454,220455,220457,220459,220461],{"class":36,"line":759},[34,220456,219750],{"class":675},[34,220458,182],{"class":181},[34,220460,39665],{"class":50},[34,220462,593],{"class":181},[34,220464,220465,220468,220470,220473],{"class":36,"line":771},[34,220466,220467],{"class":181},"lighten(",[34,220469,219750],{"class":675},[34,220471,220472],{"class":181},", 20%);     ",[34,220474,220475],{"class":40},"// lighter shade\n",[34,220477,220478,220481,220483,220486],{"class":36,"line":794},[34,220479,220480],{"class":181},"darken(",[34,220482,219750],{"class":675},[34,220484,220485],{"class":181},", 20%);      ",[34,220487,220488],{"class":40},"// darker shade\n",[34,220490,220491,220494,220496,220499],{"class":36,"line":824},[34,220492,220493],{"class":181},"saturate(",[34,220495,219750],{"class":675},[34,220497,220498],{"class":181},", 20%);    ",[34,220500,220501],{"class":40},"// more saturated\n",[34,220503,220504,220507,220509,220512],{"class":36,"line":830},[34,220505,220506],{"class":181},"desaturate(",[34,220508,219750],{"class":675},[34,220510,220511],{"class":181},", 20%);  ",[34,220513,220514],{"class":40},"// less saturated\n",[34,220516,220517,220520,220522,220525],{"class":36,"line":839},[34,220518,220519],{"class":181},"adjust-hue(",[34,220521,219750],{"class":675},[34,220523,220524],{"class":181},", 45deg); ",[34,220526,220527],{"class":40},"// shift hue\n",[34,220529,220530,220533,220535,220538,220540,220542],{"class":36,"line":854},[34,220531,220532],{"class":181},"rgba(",[34,220534,219750],{"class":675},[34,220536,220537],{"class":181},", 0",[34,220539,128708],{"class":47},[34,220541,38821],{"class":181},[34,220543,220544],{"class":40},"// add transparency\n",[34,220546,220547,220550,220553,220555,220558,220561],{"class":36,"line":860},[34,220548,220549],{"class":181},"mix(",[34,220551,220552],{"class":675},"$color1",[34,220554,1798],{"class":181},[34,220556,220557],{"class":675},"$color2",[34,220559,220560],{"class":181},", 50%); ",[34,220562,220563],{"class":40},"// blend colors\n",[34,220565,220566,220569,220571,220573],{"class":36,"line":865},[34,220567,220568],{"class":181},"complement(",[34,220570,219750],{"class":675},[34,220572,173699],{"class":181},[34,220574,220575],{"class":40},"// complementary color\n",[34,220577,220578],{"class":36,"line":870},[34,220579,62],{"emptyLinePlaceholder":61},[34,220581,220582],{"class":36,"line":876},[34,220583,220584],{"class":40},"// Built-in number functions\n",[34,220586,220587,220590,220592,220594],{"class":36,"line":885},[34,220588,220589],{"class":181},"percentage(0",[34,220591,128708],{"class":47},[34,220593,36500],{"class":181},[34,220595,220596],{"class":40},"// 50%\n",[34,220598,220599,220602,220605,220608],{"class":36,"line":895},[34,220600,220601],{"class":181},"round(4",[34,220603,220604],{"class":47},".6",[34,220606,220607],{"class":181},");               ",[34,220609,220610],{"class":40},"// 5\n",[34,220612,220613,220616,220619,220621],{"class":36,"line":904},[34,220614,220615],{"class":181},"ceil(4",[34,220617,220618],{"class":47},".2",[34,220620,217870],{"class":181},[34,220622,220610],{"class":40},[34,220624,220625,220628,220631,220633],{"class":36,"line":915},[34,220626,220627],{"class":181},"floor(4",[34,220629,220630],{"class":47},".8",[34,220632,220607],{"class":181},[34,220634,220635],{"class":40},"// 4\n",[34,220637,220638,220641],{"class":36,"line":927},[34,220639,220640],{"class":181},"abs(-10);                 ",[34,220642,220643],{"class":40},"// 10\n",[34,220645,220646,220649],{"class":36,"line":932},[34,220647,220648],{"class":181},"min(1, 2, 3);             ",[34,220650,220651],{"class":40},"// 1\n",[34,220653,220654,220657],{"class":36,"line":944},[34,220655,220656],{"class":181},"max(1, 2, 3);             ",[34,220658,220659],{"class":40},"// 3\n",[34,220661,220662],{"class":36,"line":966},[34,220663,62],{"emptyLinePlaceholder":61},[34,220665,220666],{"class":36,"line":1948},[34,220667,220668],{"class":40},"// Built-in string functions\n",[34,220670,220671,220674],{"class":36,"line":1953},[34,220672,220673],{"class":181},"quote(hello);             ",[34,220675,104326],{"class":40},[34,220677,220678,220681],{"class":36,"line":3616},[34,220679,220680],{"class":181},"unquote(\"hello\");         ",[34,220682,220683],{"class":40},"// hello\n",[34,220685,220686,220689],{"class":36,"line":3622},[34,220687,220688],{"class":181},"str-length(\"hello\");      ",[34,220690,220610],{"class":40},[34,220692,220693,220696],{"class":36,"line":3642},[34,220694,220695],{"class":181},"to-upper-case(\"hello\");   ",[34,220697,104308],{"class":40},[34,220699,220700,220703],{"class":36,"line":3657},[34,220701,220702],{"class":181},"to-lower-case(\"HELLO\");   ",[34,220704,104326],{"class":40},[34,220706,220707],{"class":36,"line":3663},[34,220708,62],{"emptyLinePlaceholder":61},[34,220710,220711],{"class":36,"line":3669},[34,220712,220713],{"class":40},"// Built-in list functions\n",[34,220715,220716,220719,220721,220723,220725,220727,220729,220731,220733,220735,220737,220739],{"class":36,"line":3675},[34,220717,220718],{"class":675},"$list",[34,220720,182],{"class":181},[34,220722,8318],{"class":50},[34,220724,1798],{"class":181},[34,220726,8324],{"class":50},[34,220728,1798],{"class":181},[34,220730,3162],{"class":50},[34,220732,1798],{"class":181},[34,220734,18010],{"class":50},[34,220736,1798],{"class":181},[34,220738,2778],{"class":50},[34,220740,593],{"class":181},[34,220742,220743,220746,220748,220750],{"class":36,"line":3693},[34,220744,220745],{"class":181},"length(",[34,220747,220718],{"class":675},[34,220749,38697],{"class":181},[34,220751,220610],{"class":40},[34,220753,220754,220757,220759,220762],{"class":36,"line":3707},[34,220755,220756],{"class":181},"nth(",[34,220758,220718],{"class":675},[34,220760,220761],{"class":181},", 2);            ",[34,220763,220764],{"class":40},"// 2\n",[34,220766,220767,220770,220772,220775],{"class":36,"line":3712},[34,220768,220769],{"class":181},"append(",[34,220771,220718],{"class":675},[34,220773,220774],{"class":181},", 6);         ",[34,220776,220777],{"class":40},"// 1, 2, 3, 4, 5, 6\n",[34,220779,220780,220783,220786,220788,220791,220793],{"class":36,"line":3717},[34,220781,220782],{"class":181},"join(",[34,220784,220785],{"class":675},"$list1",[34,220787,1798],{"class":181},[34,220789,220790],{"class":675},"$list2",[34,220792,125187],{"class":181},[34,220794,220795],{"class":40},"// combined list\n",[34,220797,220798,220801,220803,220806],{"class":36,"line":25776},[34,220799,220800],{"class":181},"index(",[34,220802,220718],{"class":675},[34,220804,220805],{"class":181},", 3);          ",[34,220807,220808],{"class":40},"// 3 (position)\n",[388,220810,220811],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":220813},[220814],{"id":10996,"depth":44,"text":10991},"Functions in Sass.",{},"/sass/functions",{"title":10991,"description":220815},"sass/functions",[219476,219165,38194,23555,982,38616],"ltDBUevVIfmfZ3X1YeZXrLKMUjjB4BHCrAHZYp2fJXA",{"id":220823,"title":220824,"body":220825,"date":402,"description":221098,"extension":404,"meta":221099,"navigation":61,"order":263,"path":221100,"seo":221101,"stem":221102,"subject":219476,"tags":221103,"__hash__":221104},"topics/sass/interpolation.md","Interpolation",{"type":8,"value":220826,"toc":221095},[220827,220830,221092],[11,220828,220824],{"id":220829},"interpolation",[25,220831,220833],{"className":219163,"code":220832,"language":219165,"meta":30,"style":30},"// Use #{} to insert variables into selectors, property names, or strings\n$side: left;\n$property: margin;\n\n.box {\n  #{$property}-#{$side}: 10px;  // margin-left: 10px\n}\n\n// In selectors\n$component: button;\n.#{$component} {\n  // .button { ... }\n}\n\n// In @media queries\n$breakpoint: 768px;\n@media (min-width: #{$breakpoint}) {\n  // ...\n}\n\n// In calc()\n$spacing: 20px;\n.container {\n  width: calc(100% - #{$spacing * 2});\n}\n\n// In URLs\n$path: '../images';\n.hero {\n  background: url('#{$path}/hero.jpg');\n}\n",[20,220834,220835,220840,220852,220864,220868,220874,220895,220899,220903,220908,220916,220925,220930,220934,220938,220943,220956,220971,220976,220980,220984,220989,221002,221008,221036,221040,221044,221049,221061,221068,221088],{"__ignoreMap":30},[34,220836,220837],{"class":36,"line":37},[34,220838,220839],{"class":40},"// Use #{} to insert variables into selectors, property names, or strings\n",[34,220841,220842,220845,220847,220850],{"class":36,"line":44},[34,220843,220844],{"class":675},"$side",[34,220846,182],{"class":181},[34,220848,220849],{"class":50},"left",[34,220851,593],{"class":181},[34,220853,220854,220857,220859,220862],{"class":36,"line":58},[34,220855,220856],{"class":675},"$property",[34,220858,182],{"class":181},[34,220860,220861],{"class":50},"margin",[34,220863,593],{"class":181},[34,220865,220866],{"class":36,"line":65},[34,220867,62],{"emptyLinePlaceholder":61},[34,220869,220870,220872],{"class":36,"line":71},[34,220871,38201],{"class":47},[34,220873,661],{"class":181},[34,220875,220876,220879,220881,220884,220886,220888,220890,220892],{"class":36,"line":77},[34,220877,220878],{"class":675},"  #{$property}",[34,220880,22062],{"class":50},[34,220882,220883],{"class":675},"#{$side}",[34,220885,182],{"class":181},[34,220887,11923],{"class":50},[34,220889,38220],{"class":580},[34,220891,124981],{"class":181},[34,220893,220894],{"class":40},"// margin-left: 10px\n",[34,220896,220897],{"class":36,"line":82},[34,220898,693],{"class":181},[34,220900,220901],{"class":36,"line":88},[34,220902,62],{"emptyLinePlaceholder":61},[34,220904,220905],{"class":36,"line":242},[34,220906,220907],{"class":40},"// In selectors\n",[34,220909,220910,220913],{"class":36,"line":250},[34,220911,220912],{"class":675},"$component",[34,220914,220915],{"class":181},": button;\n",[34,220917,220918,220920,220923],{"class":36,"line":263},[34,220919,151],{"class":47},[34,220921,220922],{"class":675},"#{$component}",[34,220924,661],{"class":181},[34,220926,220927],{"class":36,"line":275},[34,220928,220929],{"class":40},"  // .button { ... }\n",[34,220931,220932],{"class":36,"line":700},[34,220933,693],{"class":181},[34,220935,220936],{"class":36,"line":706},[34,220937,62],{"emptyLinePlaceholder":61},[34,220939,220940],{"class":36,"line":715},[34,220941,220942],{"class":40},"// In @media queries\n",[34,220944,220945,220948,220950,220952,220954],{"class":36,"line":725},[34,220946,220947],{"class":675},"$breakpoint",[34,220949,182],{"class":181},[34,220951,40694],{"class":50},[34,220953,38220],{"class":580},[34,220955,593],{"class":181},[34,220957,220958,220960,220962,220964,220966,220969],{"class":36,"line":734},[34,220959,40684],{"class":580},[34,220961,3204],{"class":181},[34,220963,40689],{"class":50},[34,220965,182],{"class":181},[34,220967,220968],{"class":675},"#{$breakpoint}",[34,220970,2416],{"class":181},[34,220972,220973],{"class":36,"line":742},[34,220974,220975],{"class":40},"  // ...\n",[34,220977,220978],{"class":36,"line":748},[34,220979,693],{"class":181},[34,220981,220982],{"class":36,"line":754},[34,220983,62],{"emptyLinePlaceholder":61},[34,220985,220986],{"class":36,"line":759},[34,220987,220988],{"class":40},"// In calc()\n",[34,220990,220991,220994,220996,220998,221000],{"class":36,"line":771},[34,220992,220993],{"class":675},"$spacing",[34,220995,182],{"class":181},[34,220997,24945],{"class":50},[34,220999,38220],{"class":580},[34,221001,593],{"class":181},[34,221003,221004,221006],{"class":36,"line":794},[34,221005,40640],{"class":47},[34,221007,661],{"class":181},[34,221009,221010,221012,221014,221017,221019,221021,221023,221025,221028,221030,221032,221034],{"class":36,"line":824},[34,221011,38213],{"class":50},[34,221013,182],{"class":181},[34,221015,221016],{"class":50},"calc",[34,221018,1607],{"class":181},[34,221020,20863],{"class":50},[34,221022,12797],{"class":580},[34,221024,19423],{"class":580},[34,221026,221027],{"class":675}," #{$spacing ",[34,221029,4289],{"class":580},[34,221031,4292],{"class":50},[34,221033,34378],{"class":675},[34,221035,1586],{"class":181},[34,221037,221038],{"class":36,"line":830},[34,221039,693],{"class":181},[34,221041,221042],{"class":36,"line":839},[34,221043,62],{"emptyLinePlaceholder":61},[34,221045,221046],{"class":36,"line":854},[34,221047,221048],{"class":40},"// In URLs\n",[34,221050,221051,221054,221056,221059],{"class":36,"line":860},[34,221052,221053],{"class":675},"$path",[34,221055,182],{"class":181},[34,221057,221058],{"class":54},"'../images'",[34,221060,593],{"class":181},[34,221062,221063,221066],{"class":36,"line":865},[34,221064,221065],{"class":47},".hero",[34,221067,661],{"class":181},[34,221069,221070,221072,221074,221076,221078,221080,221083,221086],{"class":36,"line":870},[34,221071,38906],{"class":50},[34,221073,182],{"class":181},[34,221075,38855],{"class":50},[34,221077,1607],{"class":181},[34,221079,105078],{"class":54},[34,221081,221082],{"class":50},"#{$path}",[34,221084,221085],{"class":54},"/hero.jpg'",[34,221087,1586],{"class":181},[34,221089,221090],{"class":36,"line":876},[34,221091,693],{"class":181},[388,221093,221094],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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 pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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);}",{"title":30,"searchDepth":44,"depth":44,"links":221096},[221097],{"id":220829,"depth":44,"text":220824},"Interpolation in Sass.",{},"/sass/interpolation",{"title":220824,"description":221098},"sass/interpolation",[219476,219165,38194,23555,982,38616],"HPggGI5WxSGP0VRp-PeaG2lzykCFFODkMmV6gkJmDGA",{"id":221106,"title":61463,"body":221107,"date":402,"description":221505,"extension":404,"meta":221506,"navigation":61,"order":242,"path":221507,"seo":221508,"stem":221509,"subject":219476,"tags":221510,"__hash__":221511},"topics/sass/maps.md",{"type":8,"value":221108,"toc":221502},[221109,221111,221499],[11,221110,61463],{"id":88006},[25,221112,221114],{"className":219163,"code":221113,"language":219165,"meta":30,"style":30},"// Define a map\n$breakpoints: (\n  'sm': 576px,\n  'md': 768px,\n  'lg': 992px,\n  'xl': 1200px\n);\n\n// Access map values\n$tablet: map-get($breakpoints, 'md');  // 768px\n\n// Check if key exists\n@if map-has-key($breakpoints, 'md') {\n  // key exists\n}\n\n// Iterate over map\n@each $name, $value in $breakpoints {\n  .container-#{$name} {\n    max-width: $value;\n  }\n}\n\n// Map functions\nmap-keys($breakpoints);     // ('sm', 'md', 'lg', 'xl')\nmap-values($breakpoints);   // (576px, 768px, 992px, 1200px)\nmap-merge($map1, $map2);    // combine maps\nmap-remove($map, 'key');    // remove a key\n\n// Nested maps\n$theme: (\n  colors: (\n    primary: #3498db,\n    secondary: #2ecc71\n  ),\n  spacing: (\n    sm: 0.5rem,\n    md: 1rem\n  )\n);\n\n// Access nested values\n$primary: map-get(map-get($theme, colors), primary);\n",[20,221115,221116,221121,221129,221143,221156,221170,221183,221187,221191,221196,221220,221224,221229,221246,221251,221255,221259,221263,221280,221289,221299,221303,221307,221311,221316,221330,221344,221364,221383,221387,221392,221399,221404,221413,221421,221426,221433,221444,221454,221458,221462,221466,221471],{"__ignoreMap":30},[34,221117,221118],{"class":36,"line":37},[34,221119,221120],{"class":40},"// Define a map\n",[34,221122,221123,221126],{"class":36,"line":44},[34,221124,221125],{"class":675},"$breakpoints",[34,221127,221128],{"class":181},": (\n",[34,221130,221131,221134,221136,221139,221141],{"class":36,"line":58},[34,221132,221133],{"class":54},"  'sm'",[34,221135,182],{"class":181},[34,221137,221138],{"class":50},"576",[34,221140,38220],{"class":580},[34,221142,624],{"class":181},[34,221144,221145,221148,221150,221152,221154],{"class":36,"line":65},[34,221146,221147],{"class":54},"  'md'",[34,221149,182],{"class":181},[34,221151,40694],{"class":50},[34,221153,38220],{"class":580},[34,221155,624],{"class":181},[34,221157,221158,221161,221163,221166,221168],{"class":36,"line":71},[34,221159,221160],{"class":54},"  'lg'",[34,221162,182],{"class":181},[34,221164,221165],{"class":50},"992",[34,221167,38220],{"class":580},[34,221169,624],{"class":181},[34,221171,221172,221175,221177,221180],{"class":36,"line":77},[34,221173,221174],{"class":54},"  'xl'",[34,221176,182],{"class":181},[34,221178,221179],{"class":50},"1200",[34,221181,221182],{"class":580},"px\n",[34,221184,221185],{"class":36,"line":82},[34,221186,1586],{"class":181},[34,221188,221189],{"class":36,"line":88},[34,221190,62],{"emptyLinePlaceholder":61},[34,221192,221193],{"class":36,"line":242},[34,221194,221195],{"class":40},"// Access map values\n",[34,221197,221198,221201,221203,221206,221208,221210,221212,221215,221217],{"class":36,"line":250},[34,221199,221200],{"class":675},"$tablet",[34,221202,182],{"class":181},[34,221204,221205],{"class":50},"map-get",[34,221207,1607],{"class":181},[34,221209,221125],{"class":675},[34,221211,1798],{"class":181},[34,221213,221214],{"class":54},"'md'",[34,221216,33489],{"class":181},[34,221218,221219],{"class":40},"// 768px\n",[34,221221,221222],{"class":36,"line":263},[34,221223,62],{"emptyLinePlaceholder":61},[34,221225,221226],{"class":36,"line":275},[34,221227,221228],{"class":40},"// Check if key exists\n",[34,221230,221231,221233,221236,221238,221240,221242,221244],{"class":36,"line":700},[34,221232,140460],{"class":580},[34,221234,221235],{"class":50}," map-has-key",[34,221237,1607],{"class":181},[34,221239,221125],{"class":675},[34,221241,1798],{"class":181},[34,221243,221214],{"class":54},[34,221245,2416],{"class":181},[34,221247,221248],{"class":36,"line":706},[34,221249,221250],{"class":40},"  // key exists\n",[34,221252,221253],{"class":36,"line":715},[34,221254,693],{"class":181},[34,221256,221257],{"class":36,"line":725},[34,221258,62],{"emptyLinePlaceholder":61},[34,221260,221261],{"class":36,"line":734},[34,221262,107314],{"class":40},[34,221264,221265,221267,221269,221271,221273,221275,221278],{"class":36,"line":742},[34,221266,219742],{"class":580},[34,221268,219745],{"class":675},[34,221270,1798],{"class":181},[34,221272,175665],{"class":675},[34,221274,36375],{"class":580},[34,221276,221277],{"class":675}," $breakpoints",[34,221279,661],{"class":181},[34,221281,221282,221285,221287],{"class":36,"line":748},[34,221283,221284],{"class":47},"  .container-",[34,221286,219765],{"class":675},[34,221288,661],{"class":181},[34,221290,221291,221293,221295,221297],{"class":36,"line":754},[34,221292,40710],{"class":50},[34,221294,182],{"class":181},[34,221296,175665],{"class":675},[34,221298,593],{"class":181},[34,221300,221301],{"class":36,"line":759},[34,221302,857],{"class":181},[34,221304,221305],{"class":36,"line":771},[34,221306,693],{"class":181},[34,221308,221309],{"class":36,"line":794},[34,221310,62],{"emptyLinePlaceholder":61},[34,221312,221313],{"class":36,"line":824},[34,221314,221315],{"class":40},"// Map functions\n",[34,221317,221318,221321,221323,221325,221327],{"class":36,"line":830},[34,221319,221320],{"class":50},"map-keys",[34,221322,1607],{"class":181},[34,221324,221125],{"class":675},[34,221326,125187],{"class":181},[34,221328,221329],{"class":40},"// ('sm', 'md', 'lg', 'xl')\n",[34,221331,221332,221335,221337,221339,221341],{"class":36,"line":839},[34,221333,221334],{"class":50},"map-values",[34,221336,1607],{"class":181},[34,221338,221125],{"class":675},[34,221340,38794],{"class":181},[34,221342,221343],{"class":40},"// (576px, 768px, 992px, 1200px)\n",[34,221345,221346,221349,221351,221354,221356,221359,221361],{"class":36,"line":854},[34,221347,221348],{"class":50},"map-merge",[34,221350,1607],{"class":181},[34,221352,221353],{"class":675},"$map1",[34,221355,1798],{"class":181},[34,221357,221358],{"class":675},"$map2",[34,221360,15307],{"class":181},[34,221362,221363],{"class":40},"// combine maps\n",[34,221365,221366,221369,221371,221374,221376,221378,221380],{"class":36,"line":860},[34,221367,221368],{"class":50},"map-remove",[34,221370,1607],{"class":181},[34,221372,221373],{"class":675},"$map",[34,221375,1798],{"class":181},[34,221377,90496],{"class":54},[34,221379,15307],{"class":181},[34,221381,221382],{"class":40},"// remove a key\n",[34,221384,221385],{"class":36,"line":865},[34,221386,62],{"emptyLinePlaceholder":61},[34,221388,221389],{"class":36,"line":870},[34,221390,221391],{"class":40},"// Nested maps\n",[34,221393,221394,221397],{"class":36,"line":876},[34,221395,221396],{"class":675},"$theme",[34,221398,221128],{"class":181},[34,221400,221401],{"class":36,"line":885},[34,221402,221403],{"class":181},"  colors: (\n",[34,221405,221406,221409,221411],{"class":36,"line":895},[34,221407,221408],{"class":181},"    primary: ",[34,221410,39665],{"class":50},[34,221412,624],{"class":181},[34,221414,221415,221418],{"class":36,"line":904},[34,221416,221417],{"class":181},"    secondary: ",[34,221419,221420],{"class":50},"#2ecc71\n",[34,221422,221423],{"class":36,"line":915},[34,221424,221425],{"class":181},"  ),\n",[34,221427,221428,221431],{"class":36,"line":927},[34,221429,221430],{"class":50},"  spacing",[34,221432,221128],{"class":181},[34,221434,221435,221438,221440,221442],{"class":36,"line":932},[34,221436,221437],{"class":181},"    sm: ",[34,221439,38726],{"class":50},[34,221441,38358],{"class":580},[34,221443,624],{"class":181},[34,221445,221446,221449,221451],{"class":36,"line":944},[34,221447,221448],{"class":181},"    md: ",[34,221450,8318],{"class":50},[34,221452,221453],{"class":580},"rem\n",[34,221455,221456],{"class":36,"line":966},[34,221457,17056],{"class":181},[34,221459,221460],{"class":36,"line":1948},[34,221461,1586],{"class":181},[34,221463,221464],{"class":36,"line":1953},[34,221465,62],{"emptyLinePlaceholder":61},[34,221467,221468],{"class":36,"line":3616},[34,221469,221470],{"class":40},"// Access nested values\n",[34,221472,221473,221476,221478,221480,221482,221484,221486,221488,221490,221493,221495,221497],{"class":36,"line":3622},[34,221474,221475],{"class":675},"$primary",[34,221477,182],{"class":181},[34,221479,221205],{"class":50},[34,221481,1607],{"class":181},[34,221483,221205],{"class":50},[34,221485,1607],{"class":181},[34,221487,221396],{"class":675},[34,221489,1798],{"class":181},[34,221491,221492],{"class":675},"colors",[34,221494,184714],{"class":181},[34,221496,219708],{"class":675},[34,221498,1586],{"class":181},[388,221500,221501],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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 .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 .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":30,"searchDepth":44,"depth":44,"links":221503},[221504],{"id":88006,"depth":44,"text":61463},"Maps in Sass.",{},"/sass/maps",{"title":61463,"description":221505},"sass/maps",[219476,219165,38194,23555,982,38616],"m42Z2Htf45fYsTIrzayA6qtlx_jSg5YXT2TIY806YRE",{"id":221513,"title":221514,"body":221515,"date":402,"description":221955,"extension":404,"meta":221956,"navigation":61,"order":71,"path":221957,"seo":221958,"stem":221959,"subject":219476,"tags":221960,"__hash__":221961},"topics/sass/mixins.md","Mixins",{"type":8,"value":221516,"toc":221952},[221517,221520,221949],[11,221518,221514],{"id":221519},"mixins",[25,221521,221523],{"className":219163,"code":221522,"language":219165,"meta":30,"style":30},"// Define a mixin\n@mixin flex-center {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n// Use a mixin\n.container {\n  @include flex-center;\n}\n\n// Mixin with parameters\n@mixin button($bg-color, $text-color: white) {\n  background-color: $bg-color;\n  color: $text-color;\n  padding: 0.5rem 1rem;\n  border: none;\n  border-radius: 4px;\n  cursor: pointer;\n}\n\n.btn-primary {\n  @include button(#3498db);\n}\n\n.btn-danger {\n  @include button(#e74c3c, #fff);\n}\n\n// Mixin with content block\n@mixin media($breakpoint) {\n  @if $breakpoint == mobile {\n    @media (max-width: 767px) { @content; }\n  } @else if $breakpoint == tablet {\n    @media (max-width: 1023px) { @content; }\n  } @else if $breakpoint == desktop {\n    @media (min-width: 1024px) { @content; }\n  }\n}\n\n.sidebar {\n  width: 300px;\n\n  @include media(mobile) {\n    width: 100%;\n  }\n}\n",[20,221524,221525,221530,221539,221549,221559,221569,221573,221577,221582,221588,221597,221601,221605,221610,221633,221643,221653,221669,221679,221691,221701,221705,221709,221715,221727,221731,221735,221742,221758,221762,221766,221771,221783,221795,221819,221832,221853,221866,221886,221890,221894,221898,221904,221916,221920,221929,221941,221945],{"__ignoreMap":30},[34,221526,221527],{"class":36,"line":37},[34,221528,221529],{"class":40},"// Define a mixin\n",[34,221531,221532,221534,221537],{"class":36,"line":44},[34,221533,219501],{"class":580},[34,221535,221536],{"class":47}," flex-center",[34,221538,661],{"class":181},[34,221540,221541,221543,221545,221547],{"class":36,"line":58},[34,221542,39182],{"class":50},[34,221544,182],{"class":181},[34,221546,39436],{"class":50},[34,221548,593],{"class":181},[34,221550,221551,221553,221555,221557],{"class":36,"line":65},[34,221552,40025],{"class":50},[34,221554,182],{"class":181},[34,221556,38887],{"class":50},[34,221558,593],{"class":181},[34,221560,221561,221563,221565,221567],{"class":36,"line":71},[34,221562,40040],{"class":50},[34,221564,182],{"class":181},[34,221566,38887],{"class":50},[34,221568,593],{"class":181},[34,221570,221571],{"class":36,"line":77},[34,221572,693],{"class":181},[34,221574,221575],{"class":36,"line":82},[34,221576,62],{"emptyLinePlaceholder":61},[34,221578,221579],{"class":36,"line":88},[34,221580,221581],{"class":40},"// Use a mixin\n",[34,221583,221584,221586],{"class":36,"line":242},[34,221585,40640],{"class":47},[34,221587,661],{"class":181},[34,221589,221590,221593,221595],{"class":36,"line":250},[34,221591,221592],{"class":580},"  @include",[34,221594,221536],{"class":47},[34,221596,593],{"class":181},[34,221598,221599],{"class":36,"line":263},[34,221600,693],{"class":181},[34,221602,221603],{"class":36,"line":275},[34,221604,62],{"emptyLinePlaceholder":61},[34,221606,221607],{"class":36,"line":700},[34,221608,221609],{"class":40},"// Mixin with parameters\n",[34,221611,221612,221614,221617,221619,221622,221624,221627,221629,221631],{"class":36,"line":706},[34,221613,219501],{"class":580},[34,221615,221616],{"class":47}," button",[34,221618,1607],{"class":181},[34,221620,221621],{"class":675},"$bg-color",[34,221623,1798],{"class":181},[34,221625,221626],{"class":675},"$text-color",[34,221628,182],{"class":181},[34,221630,40833],{"class":50},[34,221632,2416],{"class":181},[34,221634,221635,221637,221639,221641],{"class":36,"line":715},[34,221636,38838],{"class":50},[34,221638,182],{"class":181},[34,221640,221621],{"class":675},[34,221642,593],{"class":181},[34,221644,221645,221647,221649,221651],{"class":36,"line":725},[34,221646,38647],{"class":50},[34,221648,182],{"class":181},[34,221650,221626],{"class":675},[34,221652,593],{"class":181},[34,221654,221655,221657,221659,221661,221663,221665,221667],{"class":36,"line":734},[34,221656,38276],{"class":50},[34,221658,182],{"class":181},[34,221660,38726],{"class":50},[34,221662,38358],{"class":580},[34,221664,3567],{"class":50},[34,221666,38358],{"class":580},[34,221668,593],{"class":181},[34,221670,221671,221673,221675,221677],{"class":36,"line":742},[34,221672,38521],{"class":50},[34,221674,182],{"class":181},[34,221676,40865],{"class":50},[34,221678,593],{"class":181},[34,221680,221681,221683,221685,221687,221689],{"class":36,"line":748},[34,221682,38540],{"class":50},[34,221684,182],{"class":181},[34,221686,18010],{"class":50},[34,221688,38220],{"class":580},[34,221690,593],{"class":181},[34,221692,221693,221695,221697,221699],{"class":36,"line":754},[34,221694,220053],{"class":177},[34,221696,182],{"class":181},[34,221698,41423],{"class":50},[34,221700,593],{"class":181},[34,221702,221703],{"class":36,"line":759},[34,221704,693],{"class":181},[34,221706,221707],{"class":36,"line":771},[34,221708,62],{"emptyLinePlaceholder":61},[34,221710,221711,221713],{"class":36,"line":794},[34,221712,220089],{"class":47},[34,221714,661],{"class":181},[34,221716,221717,221719,221721,221723,221725],{"class":36,"line":824},[34,221718,221592],{"class":580},[34,221720,221616],{"class":47},[34,221722,1607],{"class":181},[34,221724,39665],{"class":50},[34,221726,1586],{"class":181},[34,221728,221729],{"class":36,"line":830},[34,221730,693],{"class":181},[34,221732,221733],{"class":36,"line":839},[34,221734,62],{"emptyLinePlaceholder":61},[34,221736,221737,221740],{"class":36,"line":854},[34,221738,221739],{"class":47},".btn-danger",[34,221741,661],{"class":181},[34,221743,221744,221746,221748,221750,221752,221754,221756],{"class":36,"line":860},[34,221745,221592],{"class":580},[34,221747,221616],{"class":47},[34,221749,1607],{"class":181},[34,221751,219731],{"class":50},[34,221753,1798],{"class":181},[34,221755,219546],{"class":50},[34,221757,1586],{"class":181},[34,221759,221760],{"class":36,"line":865},[34,221761,693],{"class":181},[34,221763,221764],{"class":36,"line":870},[34,221765,62],{"emptyLinePlaceholder":61},[34,221767,221768],{"class":36,"line":876},[34,221769,221770],{"class":40},"// Mixin with content block\n",[34,221772,221773,221775,221777,221779,221781],{"class":36,"line":885},[34,221774,219501],{"class":580},[34,221776,117128],{"class":47},[34,221778,1607],{"class":181},[34,221780,220947],{"class":675},[34,221782,2416],{"class":181},[34,221784,221785,221787,221790,221792],{"class":36,"line":895},[34,221786,219515],{"class":580},[34,221788,221789],{"class":675}," $breakpoint",[34,221791,10946],{"class":580},[34,221793,221794],{"class":181}," mobile {\n",[34,221796,221797,221800,221802,221805,221807,221810,221812,221814,221817],{"class":36,"line":904},[34,221798,221799],{"class":580},"    @media",[34,221801,3204],{"class":181},[34,221803,221804],{"class":50},"max-width",[34,221806,182],{"class":181},[34,221808,221809],{"class":50},"767",[34,221811,38220],{"class":580},[34,221813,31392],{"class":181},[34,221815,221816],{"class":580},"@content",[34,221818,34238],{"class":181},[34,221820,221821,221823,221825,221827,221829],{"class":36,"line":915},[34,221822,126416],{"class":181},[34,221824,219555],{"class":580},[34,221826,221789],{"class":675},[34,221828,10946],{"class":580},[34,221830,221831],{"class":181}," tablet {\n",[34,221833,221834,221836,221838,221840,221842,221845,221847,221849,221851],{"class":36,"line":927},[34,221835,221799],{"class":580},[34,221837,3204],{"class":181},[34,221839,221804],{"class":50},[34,221841,182],{"class":181},[34,221843,221844],{"class":50},"1023",[34,221846,38220],{"class":580},[34,221848,31392],{"class":181},[34,221850,221816],{"class":580},[34,221852,34238],{"class":181},[34,221854,221855,221857,221859,221861,221863],{"class":36,"line":932},[34,221856,126416],{"class":181},[34,221858,219555],{"class":580},[34,221860,221789],{"class":675},[34,221862,10946],{"class":580},[34,221864,221865],{"class":181}," desktop {\n",[34,221867,221868,221870,221872,221874,221876,221878,221880,221882,221884],{"class":36,"line":944},[34,221869,221799],{"class":580},[34,221871,3204],{"class":181},[34,221873,40689],{"class":50},[34,221875,182],{"class":181},[34,221877,20181],{"class":50},[34,221879,38220],{"class":580},[34,221881,31392],{"class":181},[34,221883,221816],{"class":580},[34,221885,34238],{"class":181},[34,221887,221888],{"class":36,"line":966},[34,221889,857],{"class":181},[34,221891,221892],{"class":36,"line":1948},[34,221893,693],{"class":181},[34,221895,221896],{"class":36,"line":1953},[34,221897,62],{"emptyLinePlaceholder":61},[34,221899,221900,221902],{"class":36,"line":3616},[34,221901,40573],{"class":47},[34,221903,661],{"class":181},[34,221905,221906,221908,221910,221912,221914],{"class":36,"line":3622},[34,221907,38213],{"class":50},[34,221909,182],{"class":181},[34,221911,20934],{"class":50},[34,221913,38220],{"class":580},[34,221915,593],{"class":181},[34,221917,221918],{"class":36,"line":3642},[34,221919,62],{"emptyLinePlaceholder":61},[34,221921,221922,221924,221926],{"class":36,"line":3657},[34,221923,221592],{"class":580},[34,221925,117128],{"class":47},[34,221927,221928],{"class":181},"(mobile) {\n",[34,221930,221931,221933,221935,221937,221939],{"class":36,"line":3663},[34,221932,219664],{"class":50},[34,221934,182],{"class":181},[34,221936,20863],{"class":50},[34,221938,12797],{"class":580},[34,221940,593],{"class":181},[34,221942,221943],{"class":36,"line":3669},[34,221944,857],{"class":181},[34,221946,221947],{"class":36,"line":3675},[34,221948,693],{"class":181},[388,221950,221951],{},"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 .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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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":30,"searchDepth":44,"depth":44,"links":221953},[221954],{"id":221519,"depth":44,"text":221514},"Mixins in Sass.",{},"/sass/mixins",{"title":221514,"description":221955},"sass/mixins",[219476,219165,38194,23555,982,38616],"K6S2c1vyc0tYyE17mnnHUPApy4FYhZAPSy9lDGQENZE",{"id":221963,"title":221964,"body":221965,"date":402,"description":222226,"extension":404,"meta":222227,"navigation":61,"order":58,"path":222228,"seo":222229,"stem":222230,"subject":219476,"tags":222231,"__hash__":222232},"topics/sass/nesting.md","Nesting",{"type":8,"value":221966,"toc":222223},[221967,221970,222220],[11,221968,221964],{"id":221969},"nesting",[25,221971,221973],{"className":219163,"code":221972,"language":219165,"meta":30,"style":30},"// Nest selectors to mirror HTML structure\nnav {\n  background: #333;\n\n  ul {\n    list-style: none;\n    margin: 0;\n  }\n\n  li {\n    display: inline-block;\n  }\n\n  a {\n    color: white;\n    text-decoration: none;\n\n    &:hover {    // & references parent selector\n      color: #3498db;\n    }\n  }\n}\n\n// Compiles to:\n// nav { background: #333; }\n// nav ul { list-style: none; margin: 0; }\n// nav li { display: inline-block; }\n// nav a { color: white; text-decoration: none; }\n// nav a:hover { color: #3498db; }\n\n// Parent selector variations\n.button {\n  &.primary { }      // .button.primary\n  &-icon { }         // .button-icon (BEM style)\n  .sidebar & { }     // .sidebar .button\n}\n",[20,221974,221975,221980,221986,221996,222000,222006,222017,222027,222031,222035,222042,222053,222057,222061,222068,222078,222089,222093,222106,222117,222121,222125,222129,222133,222138,222143,222148,222153,222158,222163,222167,222172,222178,222190,222203,222216],{"__ignoreMap":30},[34,221976,221977],{"class":36,"line":37},[34,221978,221979],{"class":40},"// Nest selectors to mirror HTML structure\n",[34,221981,221982,221984],{"class":36,"line":44},[34,221983,115439],{"class":177},[34,221985,661],{"class":181},[34,221987,221988,221990,221992,221994],{"class":36,"line":58},[34,221989,38906],{"class":50},[34,221991,182],{"class":181},[34,221993,219534],{"class":50},[34,221995,593],{"class":181},[34,221997,221998],{"class":36,"line":65},[34,221999,62],{"emptyLinePlaceholder":61},[34,222001,222002,222004],{"class":36,"line":71},[34,222003,219278],{"class":177},[34,222005,661],{"class":181},[34,222007,222008,222011,222013,222015],{"class":36,"line":77},[34,222009,222010],{"class":50},"    list-style",[34,222012,182],{"class":181},[34,222014,40865],{"class":50},[34,222016,593],{"class":181},[34,222018,222019,222021,222023,222025],{"class":36,"line":82},[34,222020,40724],{"class":50},[34,222022,182],{"class":181},[34,222024,2773],{"class":50},[34,222026,593],{"class":181},[34,222028,222029],{"class":36,"line":88},[34,222030,857],{"class":181},[34,222032,222033],{"class":36,"line":242},[34,222034,62],{"emptyLinePlaceholder":61},[34,222036,222037,222040],{"class":36,"line":250},[34,222038,222039],{"class":177},"  li",[34,222041,661],{"class":181},[34,222043,222044,222046,222048,222051],{"class":36,"line":263},[34,222045,39431],{"class":50},[34,222047,182],{"class":181},[34,222049,222050],{"class":50},"inline-block",[34,222052,593],{"class":181},[34,222054,222055],{"class":36,"line":275},[34,222056,857],{"class":181},[34,222058,222059],{"class":36,"line":700},[34,222060,62],{"emptyLinePlaceholder":61},[34,222062,222063,222066],{"class":36,"line":706},[34,222064,222065],{"class":177},"  a",[34,222067,661],{"class":181},[34,222069,222070,222072,222074,222076],{"class":36,"line":715},[34,222071,219541],{"class":50},[34,222073,182],{"class":181},[34,222075,40833],{"class":50},[34,222077,593],{"class":181},[34,222079,222080,222083,222085,222087],{"class":36,"line":725},[34,222081,222082],{"class":50},"    text-decoration",[34,222084,182],{"class":181},[34,222086,40865],{"class":50},[34,222088,593],{"class":181},[34,222090,222091],{"class":36,"line":734},[34,222092,62],{"emptyLinePlaceholder":61},[34,222094,222095,222098,222100,222103],{"class":36,"line":742},[34,222096,222097],{"class":177},"    &",[34,222099,41508],{"class":47},[34,222101,222102],{"class":181}," {    ",[34,222104,222105],{"class":40},"// & references parent selector\n",[34,222107,222108,222111,222113,222115],{"class":36,"line":748},[34,222109,222110],{"class":50},"      color",[34,222112,182],{"class":181},[34,222114,39665],{"class":50},[34,222116,593],{"class":181},[34,222118,222119],{"class":36,"line":754},[34,222120,3229],{"class":181},[34,222122,222123],{"class":36,"line":759},[34,222124,857],{"class":181},[34,222126,222127],{"class":36,"line":771},[34,222128,693],{"class":181},[34,222130,222131],{"class":36,"line":794},[34,222132,62],{"emptyLinePlaceholder":61},[34,222134,222135],{"class":36,"line":824},[34,222136,222137],{"class":40},"// Compiles to:\n",[34,222139,222140],{"class":36,"line":830},[34,222141,222142],{"class":40},"// nav { background: #333; }\n",[34,222144,222145],{"class":36,"line":839},[34,222146,222147],{"class":40},"// nav ul { list-style: none; margin: 0; }\n",[34,222149,222150],{"class":36,"line":854},[34,222151,222152],{"class":40},"// nav li { display: inline-block; }\n",[34,222154,222155],{"class":36,"line":860},[34,222156,222157],{"class":40},"// nav a { color: white; text-decoration: none; }\n",[34,222159,222160],{"class":36,"line":865},[34,222161,222162],{"class":40},"// nav a:hover { color: #3498db; }\n",[34,222164,222165],{"class":36,"line":870},[34,222166,62],{"emptyLinePlaceholder":61},[34,222168,222169],{"class":36,"line":876},[34,222170,222171],{"class":40},"// Parent selector variations\n",[34,222173,222174,222176],{"class":36,"line":885},[34,222175,41758],{"class":47},[34,222177,661],{"class":181},[34,222179,222180,222182,222185,222187],{"class":36,"line":895},[34,222181,219240],{"class":177},[34,222183,222184],{"class":47},".primary",[34,222186,41448],{"class":181},[34,222188,222189],{"class":40},"// .button.primary\n",[34,222191,222192,222194,222197,222200],{"class":36,"line":904},[34,222193,219240],{"class":177},[34,222195,222196],{"class":47},"-icon",[34,222198,222199],{"class":181}," { }         ",[34,222201,222202],{"class":40},"// .button-icon (BEM style)\n",[34,222204,222205,222208,222210,222213],{"class":36,"line":915},[34,222206,222207],{"class":47},"  .sidebar",[34,222209,11373],{"class":177},[34,222211,222212],{"class":181}," { }     ",[34,222214,222215],{"class":40},"// .sidebar .button\n",[34,222217,222218],{"class":36,"line":927},[34,222219,693],{"class":181},[388,222221,222222],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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 pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":222224},[222225],{"id":221969,"depth":44,"text":221964},"Nesting in Sass.",{},"/sass/nesting",{"title":221964,"description":222226},"sass/nesting",[219476,219165,38194,23555,982,38616],"Xs3_YCH5TFCUpro3N0Mn1yvaq6zO55siT7wL1ZU2NQ8",{"id":222234,"title":22680,"body":222235,"date":402,"description":222582,"extension":404,"meta":222583,"navigation":61,"order":250,"path":222584,"seo":222585,"stem":222586,"subject":219476,"tags":222587,"__hash__":222588},"topics/sass/operators.md",{"type":8,"value":222236,"toc":222579},[222237,222239,222576],[11,222238,22680],{"id":22685},[25,222240,222242],{"className":219163,"code":222241,"language":219165,"meta":30,"style":30},"// Arithmetic operators\n$width: 100px + 50px;    // 150px\n$height: 200px - 50px;   // 150px\n$double: 100px * 2;      // 200px\n$half: 100px / 2;        // Use math.div() in modern Sass\n$remainder: 10 % 3;      // 1\n\n// Modern division (Sass 1.33+)\n@use 'sass:math';\n$half: math.div(100px, 2);  // 50px\n\n// Comparison operators\n$a > $b;    // greater than\n$a \u003C $b;    // less than\n$a >= $b;   // greater or equal\n$a \u003C= $b;   // less or equal\n$a == $b;   // equal\n$a != $b;   // not equal\n\n// Logical operators\n$condition1 and $condition2;  // both true\n$condition1 or $condition2;   // either true\nnot $condition;               // negation\n\n// String concatenation\n$family: 'Helvetica' + ', sans-serif';  // \"Helvetica, sans-serif\"\n$class: 'btn-' + primary;               // \"btn-primary\"\n",[20,222243,222244,222249,222271,222292,222312,222332,222349,222353,222358,222366,222393,222397,222401,222414,222426,222440,222454,222468,222481,222485,222489,222504,222517,222530,222534,222538,222558],{"__ignoreMap":30},[34,222245,222246],{"class":36,"line":37},[34,222247,222248],{"class":40},"// Arithmetic operators\n",[34,222250,222251,222254,222256,222258,222260,222262,222264,222266,222268],{"class":36,"line":44},[34,222252,222253],{"class":675},"$width",[34,222255,182],{"class":181},[34,222257,20863],{"class":50},[34,222259,38220],{"class":580},[34,222261,11537],{"class":580},[34,222263,2889],{"class":50},[34,222265,38220],{"class":580},[34,222267,64381],{"class":181},[34,222269,222270],{"class":40},"// 150px\n",[34,222272,222273,222276,222278,222280,222282,222284,222286,222288,222290],{"class":36,"line":58},[34,222274,222275],{"class":675},"$height",[34,222277,182],{"class":181},[34,222279,20899],{"class":50},[34,222281,38220],{"class":580},[34,222283,19423],{"class":580},[34,222285,2889],{"class":50},[34,222287,38220],{"class":580},[34,222289,42619],{"class":181},[34,222291,222270],{"class":40},[34,222293,222294,222297,222299,222301,222303,222305,222307,222309],{"class":36,"line":65},[34,222295,222296],{"class":675},"$double",[34,222298,182],{"class":181},[34,222300,20863],{"class":50},[34,222302,38220],{"class":580},[34,222304,18083],{"class":580},[34,222306,4292],{"class":50},[34,222308,42028],{"class":181},[34,222310,222311],{"class":40},"// 200px\n",[34,222313,222314,222317,222319,222321,222323,222325,222327,222329],{"class":36,"line":71},[34,222315,222316],{"class":675},"$half",[34,222318,182],{"class":181},[34,222320,20863],{"class":50},[34,222322,38220],{"class":580},[34,222324,22767],{"class":580},[34,222326,4292],{"class":50},[34,222328,42193],{"class":181},[34,222330,222331],{"class":40},"// Use math.div() in modern Sass\n",[34,222333,222334,222337,222339,222341,222343,222345,222347],{"class":36,"line":77},[34,222335,222336],{"class":675},"$remainder",[34,222338,182],{"class":181},[34,222340,11923],{"class":50},[34,222342,184786],{"class":181},[34,222344,3162],{"class":50},[34,222346,42028],{"class":181},[34,222348,220651],{"class":40},[34,222350,222351],{"class":36,"line":82},[34,222352,62],{"emptyLinePlaceholder":61},[34,222354,222355],{"class":36,"line":88},[34,222356,222357],{"class":40},"// Modern division (Sass 1.33+)\n",[34,222359,222360,222362,222364],{"class":36,"line":242},[34,222361,219182],{"class":580},[34,222363,219369],{"class":54},[34,222365,593],{"class":181},[34,222367,222368,222370,222372,222374,222376,222378,222380,222382,222384,222386,222388,222390],{"class":36,"line":250},[34,222369,222316],{"class":675},[34,222371,182],{"class":181},[34,222373,107788],{"class":675},[34,222375,151],{"class":181},[34,222377,1240],{"class":50},[34,222379,1607],{"class":181},[34,222381,20863],{"class":50},[34,222383,38220],{"class":580},[34,222385,1798],{"class":181},[34,222387,8324],{"class":50},[34,222389,33489],{"class":181},[34,222391,222392],{"class":40},"// 50px\n",[34,222394,222395],{"class":36,"line":263},[34,222396,62],{"emptyLinePlaceholder":61},[34,222398,222399],{"class":36,"line":275},[34,222400,83610],{"class":40},[34,222402,222403,222405,222408,222410,222412],{"class":36,"line":700},[34,222404,10477],{"class":675},[34,222406,222407],{"class":181}," > ",[34,222409,10486],{"class":675},[34,222411,64381],{"class":181},[34,222413,83627],{"class":40},[34,222415,222416,222418,222420,222422,222424],{"class":36,"line":706},[34,222417,10477],{"class":675},[34,222419,208800],{"class":181},[34,222421,10486],{"class":675},[34,222423,64381],{"class":181},[34,222425,83660],{"class":40},[34,222427,222428,222430,222433,222435,222437],{"class":36,"line":715},[34,222429,10477],{"class":675},[34,222431,222432],{"class":181}," >= ",[34,222434,10486],{"class":675},[34,222436,42619],{"class":181},[34,222438,222439],{"class":40},"// greater or equal\n",[34,222441,222442,222444,222447,222449,222451],{"class":36,"line":725},[34,222443,10477],{"class":675},[34,222445,222446],{"class":181}," \u003C= ",[34,222448,10486],{"class":675},[34,222450,42619],{"class":181},[34,222452,222453],{"class":40},"// less or equal\n",[34,222455,222456,222458,222461,222463,222465],{"class":36,"line":734},[34,222457,10477],{"class":675},[34,222459,222460],{"class":181}," == ",[34,222462,10486],{"class":675},[34,222464,42619],{"class":181},[34,222466,222467],{"class":40},"// equal\n",[34,222469,222470,222472,222475,222477,222479],{"class":36,"line":742},[34,222471,10477],{"class":675},[34,222473,222474],{"class":181}," != ",[34,222476,10486],{"class":675},[34,222478,42619],{"class":181},[34,222480,83692],{"class":40},[34,222482,222483],{"class":36,"line":748},[34,222484,62],{"emptyLinePlaceholder":61},[34,222486,222487],{"class":36,"line":754},[34,222488,83742],{"class":40},[34,222490,222491,222494,222496,222499,222501],{"class":36,"line":759},[34,222492,222493],{"class":675},"$condition1",[34,222495,128469],{"class":181},[34,222497,222498],{"class":675},"$condition2",[34,222500,124981],{"class":181},[34,222502,222503],{"class":40},"// both true\n",[34,222505,222506,222508,222510,222512,222514],{"class":36,"line":771},[34,222507,222493],{"class":675},[34,222509,157865],{"class":181},[34,222511,222498],{"class":675},[34,222513,42619],{"class":181},[34,222515,222516],{"class":40},"// either true\n",[34,222518,222519,222522,222525,222527],{"class":36,"line":794},[34,222520,222521],{"class":181},"not ",[34,222523,222524],{"class":675},"$condition",[34,222526,38305],{"class":181},[34,222528,222529],{"class":40},"// negation\n",[34,222531,222532],{"class":36,"line":824},[34,222533,62],{"emptyLinePlaceholder":61},[34,222535,222536],{"class":36,"line":830},[34,222537,177476],{"class":40},[34,222539,222540,222543,222545,222548,222550,222553,222555],{"class":36,"line":839},[34,222541,222542],{"class":675},"$family",[34,222544,182],{"class":181},[34,222546,222547],{"class":54},"'Helvetica'",[34,222549,11537],{"class":580},[34,222551,222552],{"class":54}," ', sans-serif'",[34,222554,124981],{"class":181},[34,222556,222557],{"class":40},"// \"Helvetica, sans-serif\"\n",[34,222559,222560,222563,222565,222568,222570,222573],{"class":36,"line":854},[34,222561,222562],{"class":675},"$class",[34,222564,182],{"class":181},[34,222566,222567],{"class":54},"'btn-'",[34,222569,11537],{"class":580},[34,222571,222572],{"class":181}," primary;               ",[34,222574,222575],{"class":40},"// \"btn-primary\"\n",[388,222577,222578],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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 pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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);}",{"title":30,"searchDepth":44,"depth":44,"links":222580},[222581],{"id":22685,"depth":44,"text":22680},"Operators in Sass.",{},"/sass/operators",{"title":22680,"description":222582},"sass/operators",[219476,219165,38194,23555,982,38616],"RWzaBfU0KT6lecvgR2pN6BmWic_66adwng9BS2SamCE",{"id":222590,"title":222591,"body":222592,"date":2633,"description":222645,"extension":404,"meta":222646,"navigation":61,"order":37,"path":222647,"seo":222648,"stem":222649,"subject":219476,"tags":222650,"__hash__":222651},"topics/sass/overview.md","Sass",{"type":8,"value":222593,"toc":222643},[222594],[309,222595,222596,222601,222605,222611,222615,222619,222623,222627,222631,222635,222639],{},[312,222597,222598],{},[145,222599,12166],{"href":222600},"/sass/variables",[312,222602,222603],{},[145,222604,221964],{"href":222228},[312,222606,222607],{},[145,222608,222610],{"href":222609},"/sass/partials-imports","Partials & Imports",[312,222612,222613],{},[145,222614,221514],{"href":221957},[312,222616,222617],{},[145,222618,10991],{"href":220817},[312,222620,222621],{},[145,222622,219988],{"href":220257},[312,222624,222625],{},[145,222626,219481],{"href":219981},[312,222628,222629],{},[145,222630,61463],{"href":221507},[312,222632,222633],{},[145,222634,22680],{"href":222584},[312,222636,222637],{},[145,222638,220824],{"href":221100},[312,222640,222641],{},[145,222642,5595],{"href":219473},{"title":30,"searchDepth":44,"depth":44,"links":222644},[],"Essential Sass/SCSS syntax for variables, nesting, mixins, functions, and more.",{},"/sass/overview",{"title":222591,"description":222645},"sass/overview",[219476,219165,38194,23555,982,38616],"x7Ji5b0k-CPTARSmD2uuVuKmPzpXxe4j1uVfbbK8-3I",{"id":222653,"title":222610,"body":222654,"date":402,"description":222840,"extension":404,"meta":222841,"navigation":61,"order":65,"path":222609,"seo":222842,"stem":222843,"subject":219476,"tags":222844,"__hash__":222845},"topics/sass/partials-imports.md",{"type":8,"value":222655,"toc":222837},[222656,222659,222834],[11,222657,222610],{"id":222658},"partials-imports",[25,222660,222662],{"className":219163,"code":222661,"language":219165,"meta":30,"style":30},"// Partials start with underscore: _variables.scss, _mixins.scss\n// They won't compile to separate CSS files\n\n// Import partials (underscore and extension optional)\n@use 'variables';\n@use 'mixins';\n\n// Access imported members with namespace\n.button {\n  color: variables.$primary-color;\n  @include mixins.flex-center;\n}\n\n// Change namespace\n@use 'variables' as vars;\n@use 'mixins' as *;  // no namespace needed\n\n// Forward for library authors\n@forward 'variables';\n@forward 'mixins';\n\n// Legacy @import (deprecated but still works)\n@import 'variables';\n@import 'mixins';\n",[20,222663,222664,222669,222674,222678,222683,222691,222699,222703,222708,222714,222728,222742,222746,222750,222755,222767,222782,222786,222791,222800,222808,222812,222817,222826],{"__ignoreMap":30},[34,222665,222666],{"class":36,"line":37},[34,222667,222668],{"class":40},"// Partials start with underscore: _variables.scss, _mixins.scss\n",[34,222670,222671],{"class":36,"line":44},[34,222672,222673],{"class":40},"// They won't compile to separate CSS files\n",[34,222675,222676],{"class":36,"line":58},[34,222677,62],{"emptyLinePlaceholder":61},[34,222679,222680],{"class":36,"line":65},[34,222681,222682],{"class":40},"// Import partials (underscore and extension optional)\n",[34,222684,222685,222687,222689],{"class":36,"line":71},[34,222686,219182],{"class":580},[34,222688,219185],{"class":54},[34,222690,593],{"class":181},[34,222692,222693,222695,222697],{"class":36,"line":77},[34,222694,219182],{"class":580},[34,222696,219194],{"class":54},[34,222698,593],{"class":181},[34,222700,222701],{"class":36,"line":82},[34,222702,62],{"emptyLinePlaceholder":61},[34,222704,222705],{"class":36,"line":88},[34,222706,222707],{"class":40},"// Access imported members with namespace\n",[34,222709,222710,222712],{"class":36,"line":242},[34,222711,41758],{"class":47},[34,222713,661],{"class":181},[34,222715,222716,222718,222720,222722,222724,222726],{"class":36,"line":250},[34,222717,38647],{"class":50},[34,222719,182],{"class":181},[34,222721,13314],{"class":675},[34,222723,151],{"class":181},[34,222725,219347],{"class":675},[34,222727,593],{"class":181},[34,222729,222730,222732,222735,222737,222740],{"class":36,"line":263},[34,222731,221592],{"class":580},[34,222733,222734],{"class":675}," mixins",[34,222736,151],{"class":181},[34,222738,222739],{"class":47},"flex-center",[34,222741,593],{"class":181},[34,222743,222744],{"class":36,"line":275},[34,222745,693],{"class":181},[34,222747,222748],{"class":36,"line":700},[34,222749,62],{"emptyLinePlaceholder":61},[34,222751,222752],{"class":36,"line":706},[34,222753,222754],{"class":40},"// Change namespace\n",[34,222756,222757,222759,222761,222763,222765],{"class":36,"line":715},[34,222758,219182],{"class":580},[34,222760,219185],{"class":54},[34,222762,91551],{"class":580},[34,222764,219382],{"class":675},[34,222766,593],{"class":181},[34,222768,222769,222771,222773,222775,222777,222779],{"class":36,"line":725},[34,222770,219182],{"class":580},[34,222772,219194],{"class":54},[34,222774,91551],{"class":580},[34,222776,18083],{"class":50},[34,222778,124981],{"class":181},[34,222780,222781],{"class":40},"// no namespace needed\n",[34,222783,222784],{"class":36,"line":734},[34,222785,62],{"emptyLinePlaceholder":61},[34,222787,222788],{"class":36,"line":742},[34,222789,222790],{"class":40},"// Forward for library authors\n",[34,222792,222793,222796,222798],{"class":36,"line":748},[34,222794,222795],{"class":580},"@forward",[34,222797,219185],{"class":54},[34,222799,593],{"class":181},[34,222801,222802,222804,222806],{"class":36,"line":754},[34,222803,222795],{"class":580},[34,222805,219194],{"class":54},[34,222807,593],{"class":181},[34,222809,222810],{"class":36,"line":759},[34,222811,62],{"emptyLinePlaceholder":61},[34,222813,222814],{"class":36,"line":771},[34,222815,222816],{"class":40},"// Legacy @import (deprecated but still works)\n",[34,222818,222819,222822,222824],{"class":36,"line":794},[34,222820,222821],{"class":580},"@import",[34,222823,219185],{"class":54},[34,222825,593],{"class":181},[34,222827,222828,222830,222832],{"class":36,"line":824},[34,222829,222821],{"class":580},[34,222831,219194],{"class":54},[34,222833,593],{"class":181},[388,222835,222836],{},"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 .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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":222838},[222839],{"id":222658,"depth":44,"text":222610},"Partials & Imports in Sass.",{},{"title":222610,"description":222840},"sass/partials-imports",[219476,219165,38194,23555,982,38616],"acIF8DR-q6ds9xqPqRnLPKBiRkTpYbLXsZ2Rxzrytk4",{"id":222847,"title":12166,"body":222848,"date":402,"description":223048,"extension":404,"meta":223049,"navigation":61,"order":44,"path":222600,"seo":223050,"stem":223051,"subject":219476,"tags":223052,"__hash__":223053},"topics/sass/variables.md",{"type":8,"value":222849,"toc":223045},[222850,222852,223042],[11,222851,12166],{"id":13314},[25,222853,222855],{"className":219163,"code":222854,"language":219165,"meta":30,"style":30},"// Define variables with $\n$primary-color: #3498db;\n$font-stack: 'Helvetica Neue', sans-serif;\n$base-spacing: 1rem;\n$border-radius: 4px;\n\n// Use variables\n.button {\n  background-color: $primary-color;\n  font-family: $font-stack;\n  padding: $base-spacing;\n  border-radius: $border-radius;\n}\n\n// Default values (can be overridden)\n$theme-color: blue !default;\n\n// Variable scoping\n.container {\n  $local-var: 10px;  // only available in this block\n  padding: $local-var;\n}\n",[20,222856,222857,222862,222872,222888,222901,222914,222918,222923,222929,222939,222949,222959,222969,222973,222977,222982,222996,223000,223005,223011,223027,223038],{"__ignoreMap":30},[34,222858,222859],{"class":36,"line":37},[34,222860,222861],{"class":40},"// Define variables with $\n",[34,222863,222864,222866,222868,222870],{"class":36,"line":44},[34,222865,219347],{"class":675},[34,222867,182],{"class":181},[34,222869,39665],{"class":50},[34,222871,593],{"class":181},[34,222873,222874,222877,222879,222882,222884,222886],{"class":36,"line":58},[34,222875,222876],{"class":675},"$font-stack",[34,222878,182],{"class":181},[34,222880,222881],{"class":54},"'Helvetica Neue'",[34,222883,1798],{"class":181},[34,222885,42086],{"class":50},[34,222887,593],{"class":181},[34,222889,222890,222893,222895,222897,222899],{"class":36,"line":65},[34,222891,222892],{"class":675},"$base-spacing",[34,222894,182],{"class":181},[34,222896,8318],{"class":50},[34,222898,38358],{"class":580},[34,222900,593],{"class":181},[34,222902,222903,222906,222908,222910,222912],{"class":36,"line":71},[34,222904,222905],{"class":675},"$border-radius",[34,222907,182],{"class":181},[34,222909,18010],{"class":50},[34,222911,38220],{"class":580},[34,222913,593],{"class":181},[34,222915,222916],{"class":36,"line":77},[34,222917,62],{"emptyLinePlaceholder":61},[34,222919,222920],{"class":36,"line":82},[34,222921,222922],{"class":40},"// Use variables\n",[34,222924,222925,222927],{"class":36,"line":88},[34,222926,41758],{"class":47},[34,222928,661],{"class":181},[34,222930,222931,222933,222935,222937],{"class":36,"line":242},[34,222932,38838],{"class":50},[34,222934,182],{"class":181},[34,222936,219347],{"class":675},[34,222938,593],{"class":181},[34,222940,222941,222943,222945,222947],{"class":36,"line":250},[34,222942,42076],{"class":50},[34,222944,182],{"class":181},[34,222946,222876],{"class":675},[34,222948,593],{"class":181},[34,222950,222951,222953,222955,222957],{"class":36,"line":263},[34,222952,38276],{"class":50},[34,222954,182],{"class":181},[34,222956,222892],{"class":675},[34,222958,593],{"class":181},[34,222960,222961,222963,222965,222967],{"class":36,"line":275},[34,222962,38540],{"class":50},[34,222964,182],{"class":181},[34,222966,222905],{"class":675},[34,222968,593],{"class":181},[34,222970,222971],{"class":36,"line":700},[34,222972,693],{"class":181},[34,222974,222975],{"class":36,"line":706},[34,222976,62],{"emptyLinePlaceholder":61},[34,222978,222979],{"class":36,"line":715},[34,222980,222981],{"class":40},"// Default values (can be overridden)\n",[34,222983,222984,222987,222989,222991,222994],{"class":36,"line":725},[34,222985,222986],{"class":675},"$theme-color",[34,222988,182],{"class":181},[34,222990,41252],{"class":50},[34,222992,222993],{"class":580}," !default",[34,222995,593],{"class":181},[34,222997,222998],{"class":36,"line":734},[34,222999,62],{"emptyLinePlaceholder":61},[34,223001,223002],{"class":36,"line":742},[34,223003,223004],{"class":40},"// Variable scoping\n",[34,223006,223007,223009],{"class":36,"line":748},[34,223008,40640],{"class":47},[34,223010,661],{"class":181},[34,223012,223013,223016,223018,223020,223022,223024],{"class":36,"line":754},[34,223014,223015],{"class":675},"  $local-var",[34,223017,182],{"class":181},[34,223019,11923],{"class":50},[34,223021,38220],{"class":580},[34,223023,124981],{"class":181},[34,223025,223026],{"class":40},"// only available in this block\n",[34,223028,223029,223031,223033,223036],{"class":36,"line":759},[34,223030,38276],{"class":50},[34,223032,182],{"class":181},[34,223034,223035],{"class":675},"$local-var",[34,223037,593],{"class":181},[34,223039,223040],{"class":36,"line":771},[34,223041,693],{"class":181},[388,223043,223044],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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 pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .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":30,"searchDepth":44,"depth":44,"links":223046},[223047],{"id":13314,"depth":44,"text":12166},"Variables in Sass.",{},{"title":12166,"description":223048},"sass/variables",[219476,219165,38194,23555,982,38616],"o06My9BkjOvZyFuRuM9q36cD56fgE9MgCrNsAT7nX6k",{"id":223055,"title":223056,"body":223057,"date":402,"description":223179,"extension":404,"meta":223180,"navigation":61,"order":706,"path":223181,"seo":223182,"stem":223183,"subject":13209,"tags":223184,"__hash__":223186},"topics/sed/advanced-patterns.md","Advanced Patterns",{"type":8,"value":223058,"toc":223176},[223059,223062,223174],[11,223060,223056],{"id":223061},"advanced-patterns",[25,223063,223065],{"className":27,"code":223064,"language":29,"meta":30,"style":30},"# Remove comments and empty lines\nsed '/^#/d; /^$/d' config.txt\n\n# Extract email addresses\nsed -n 's/.*\\([a-zA-Z0-9._-]*@[a-zA-Z0-9._-]*\\).*/\\1/p' file.txt\n\n# Format CSV to TSV\nsed 's/,/\\t/g' data.csv\n\n# Convert DOS line endings to Unix\nsed 's/\\r$//' dos-file.txt\n\n# Double-space a file\nsed 'G' file.txt\n\n# Remove duplicate blank lines\nsed '/^$/{ N; /^\\n$/D; }'\n",[20,223066,223067,223072,223082,223086,223091,223102,223106,223111,223121,223125,223130,223140,223144,223149,223158,223162,223167],{"__ignoreMap":30},[34,223068,223069],{"class":36,"line":37},[34,223070,223071],{"class":40},"# Remove comments and empty lines\n",[34,223073,223074,223076,223079],{"class":36,"line":44},[34,223075,13209],{"class":47},[34,223077,223078],{"class":54}," '/^#/d; /^$/d'",[34,223080,223081],{"class":54}," config.txt\n",[34,223083,223084],{"class":36,"line":58},[34,223085,62],{"emptyLinePlaceholder":61},[34,223087,223088],{"class":36,"line":65},[34,223089,223090],{"class":40},"# Extract email addresses\n",[34,223092,223093,223095,223097,223100],{"class":36,"line":71},[34,223094,13209],{"class":47},[34,223096,7093],{"class":50},[34,223098,223099],{"class":54}," 's/.*\\([a-zA-Z0-9._-]*@[a-zA-Z0-9._-]*\\).*/\\1/p'",[34,223101,12140],{"class":54},[34,223103,223104],{"class":36,"line":77},[34,223105,62],{"emptyLinePlaceholder":61},[34,223107,223108],{"class":36,"line":82},[34,223109,223110],{"class":40},"# Format CSV to TSV\n",[34,223112,223113,223115,223118],{"class":36,"line":88},[34,223114,13209],{"class":47},[34,223116,223117],{"class":54}," 's/,/\\t/g'",[34,223119,223120],{"class":54}," data.csv\n",[34,223122,223123],{"class":36,"line":242},[34,223124,62],{"emptyLinePlaceholder":61},[34,223126,223127],{"class":36,"line":250},[34,223128,223129],{"class":40},"# Convert DOS line endings to Unix\n",[34,223131,223132,223134,223137],{"class":36,"line":263},[34,223133,13209],{"class":47},[34,223135,223136],{"class":54}," 's/\\r$//'",[34,223138,223139],{"class":54}," dos-file.txt\n",[34,223141,223142],{"class":36,"line":275},[34,223143,62],{"emptyLinePlaceholder":61},[34,223145,223146],{"class":36,"line":700},[34,223147,223148],{"class":40},"# Double-space a file\n",[34,223150,223151,223153,223156],{"class":36,"line":706},[34,223152,13209],{"class":47},[34,223154,223155],{"class":54}," 'G'",[34,223157,12140],{"class":54},[34,223159,223160],{"class":36,"line":715},[34,223161,62],{"emptyLinePlaceholder":61},[34,223163,223164],{"class":36,"line":725},[34,223165,223166],{"class":40},"# Remove duplicate blank lines\n",[34,223168,223169,223171],{"class":36,"line":734},[34,223170,13209],{"class":47},[34,223172,223173],{"class":54}," '/^$/{ N; /^\\n$/D; }'\n",[388,223175,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":223177},[223178],{"id":223061,"depth":44,"text":223056},"Advanced Patterns in sed.",{},"/sed/advanced-patterns",{"title":223056,"description":223179},"sed/advanced-patterns",[13209,204975,223185,5588,109602],"unix","BcM4g_MyxDDrUyAdsMRdT6130lYnVfDe6LlCCIu5uNE",{"id":223188,"title":223189,"body":223190,"date":402,"description":223313,"extension":404,"meta":223314,"navigation":61,"order":715,"path":223315,"seo":223316,"stem":223317,"subject":13209,"tags":223318,"__hash__":223319},"topics/sed/backup-and-safety.md","Backup and Safety",{"type":8,"value":223191,"toc":223310},[223192,223195,223308],[11,223193,223189],{"id":223194},"backup-and-safety",[25,223196,223198],{"className":27,"code":223197,"language":29,"meta":30,"style":30},"# Always test without -i first\nsed 's/old/new/g' file.txt > output.txt\n\n# Preview changes before committing\nsed 's/old/new/g' file.txt | diff file.txt -\n\n# Process multiple files safely\nfor file in *.txt; do\n  sed 's/old/new/g' \"$file\" > \"${file}.tmp\" && mv \"${file}.tmp\" \"$file\"\ndone\n",[20,223199,223200,223205,223218,223222,223227,223243,223247,223252,223266,223304],{"__ignoreMap":30},[34,223201,223202],{"class":36,"line":37},[34,223203,223204],{"class":40},"# Always test without -i first\n",[34,223206,223207,223209,223211,223213,223215],{"class":36,"line":44},[34,223208,13209],{"class":47},[34,223210,13212],{"class":54},[34,223212,8832],{"class":54},[34,223214,9009],{"class":580},[34,223216,223217],{"class":54}," output.txt\n",[34,223219,223220],{"class":36,"line":58},[34,223221,62],{"emptyLinePlaceholder":61},[34,223223,223224],{"class":36,"line":65},[34,223225,223226],{"class":40},"# Preview changes before committing\n",[34,223228,223229,223231,223233,223235,223237,223239,223241],{"class":36,"line":71},[34,223230,13209],{"class":47},[34,223232,13212],{"class":54},[34,223234,8832],{"class":54},[34,223236,7197],{"class":580},[34,223238,7554],{"class":47},[34,223240,8832],{"class":54},[34,223242,27838],{"class":54},[34,223244,223245],{"class":36,"line":77},[34,223246,62],{"emptyLinePlaceholder":61},[34,223248,223249],{"class":36,"line":82},[34,223250,223251],{"class":40},"# Process multiple files safely\n",[34,223253,223254,223256,223258,223260,223262,223264],{"class":36,"line":88},[34,223255,10246],{"class":580},[34,223257,11959],{"class":181},[34,223259,10252],{"class":580},[34,223261,11964],{"class":54},[34,223263,10268],{"class":181},[34,223265,10271],{"class":580},[34,223267,223268,223271,223273,223275,223277,223279,223281,223283,223285,223288,223290,223292,223294,223296,223298,223300,223302],{"class":36,"line":242},[34,223269,223270],{"class":47},"  sed",[34,223272,13212],{"class":54},[34,223274,10326],{"class":54},[34,223276,10728],{"class":181},[34,223278,10389],{"class":54},[34,223280,9009],{"class":580},[34,223282,10255],{"class":54},[34,223284,14985],{"class":181},[34,223286,223287],{"class":54},"}.tmp\"",[34,223289,5622],{"class":181},[34,223291,13239],{"class":47},[34,223293,10255],{"class":54},[34,223295,14985],{"class":181},[34,223297,223287],{"class":54},[34,223299,10326],{"class":54},[34,223301,10728],{"class":181},[34,223303,11320],{"class":54},[34,223305,223306],{"class":36,"line":250},[34,223307,10284],{"class":580},[388,223309,6641],{},{"title":30,"searchDepth":44,"depth":44,"links":223311},[223312],{"id":223194,"depth":44,"text":223189},"Backup and Safety in sed.",{},"/sed/backup-and-safety",{"title":223189,"description":223313},"sed/backup-and-safety",[13209,204975,223185,5588,109602],"tSZEC_A-RQu5lhnMiap0W_L8X20w658_PRNWwfkgtOc",{"id":223321,"title":223322,"body":223323,"date":402,"description":223405,"extension":404,"meta":223406,"navigation":61,"order":44,"path":223407,"seo":223408,"stem":223409,"subject":13209,"tags":223410,"__hash__":223411},"topics/sed/basic-substitution.md","Basic Substitution",{"type":8,"value":223324,"toc":223402},[223325,223328,223400],[11,223326,223322],{"id":223327},"basic-substitution",[25,223329,223331],{"className":27,"code":223330,"language":29,"meta":30,"style":30},"# Replace first occurrence on each line\nsed 's/old/new/' file.txt\n\n# Replace all occurrences (global flag)\nsed 's/old/new/g' file.txt\n\n# Replace only on specific line\nsed '3s/old/new/' file.txt\n\n# Replace in line range\nsed '1,5s/old/new/g' file.txt\n",[20,223332,223333,223338,223347,223351,223356,223364,223368,223373,223382,223386,223391],{"__ignoreMap":30},[34,223334,223335],{"class":36,"line":37},[34,223336,223337],{"class":40},"# Replace first occurrence on each line\n",[34,223339,223340,223342,223345],{"class":36,"line":44},[34,223341,13209],{"class":47},[34,223343,223344],{"class":54}," 's/old/new/'",[34,223346,12140],{"class":54},[34,223348,223349],{"class":36,"line":58},[34,223350,62],{"emptyLinePlaceholder":61},[34,223352,223353],{"class":36,"line":65},[34,223354,223355],{"class":40},"# Replace all occurrences (global flag)\n",[34,223357,223358,223360,223362],{"class":36,"line":71},[34,223359,13209],{"class":47},[34,223361,13212],{"class":54},[34,223363,12140],{"class":54},[34,223365,223366],{"class":36,"line":77},[34,223367,62],{"emptyLinePlaceholder":61},[34,223369,223370],{"class":36,"line":82},[34,223371,223372],{"class":40},"# Replace only on specific line\n",[34,223374,223375,223377,223380],{"class":36,"line":88},[34,223376,13209],{"class":47},[34,223378,223379],{"class":54}," '3s/old/new/'",[34,223381,12140],{"class":54},[34,223383,223384],{"class":36,"line":242},[34,223385,62],{"emptyLinePlaceholder":61},[34,223387,223388],{"class":36,"line":250},[34,223389,223390],{"class":40},"# Replace in line range\n",[34,223392,223393,223395,223398],{"class":36,"line":263},[34,223394,13209],{"class":47},[34,223396,223397],{"class":54}," '1,5s/old/new/g'",[34,223399,12140],{"class":54},[388,223401,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":223403},[223404],{"id":223327,"depth":44,"text":223322},"Basic Substitution in sed.",{},"/sed/basic-substitution",{"title":223322,"description":223405},"sed/basic-substitution",[13209,204975,223185,5588,109602],"AEF-7JZt6IEERg_tdL3FDABvWZtc9noKIAVfSQMAQvk",{"id":223413,"title":223414,"body":223415,"date":402,"description":223504,"extension":404,"meta":223505,"navigation":61,"order":88,"path":223506,"seo":223507,"stem":223508,"subject":13209,"tags":223509,"__hash__":223510},"topics/sed/capturing-groups.md","Capturing Groups",{"type":8,"value":223416,"toc":223501},[223417,223420,223499],[11,223418,223414],{"id":223419},"capturing-groups",[25,223421,223423],{"className":27,"code":223422,"language":29,"meta":30,"style":30},"# Capture and reuse with \\1, \\2, etc.\nsed 's/\\(.*\\)@\\(.*\\)/User: \\1, Domain: \\2/' emails.txt\n\n# Swap two words\nsed 's/\\([a-z]*\\) \\([a-z]*\\)/\\2 \\1/' file.txt\n\n# Extract filename from path\nsed 's|.*/\\([^/]*\\)|\\1|' paths.txt\n\n# Wrap matched text\nsed 's/\\(error\\)/**\\1**/g' log.txt   # Bold errors in markdown\n",[20,223424,223425,223430,223440,223444,223449,223458,223462,223467,223477,223481,223486],{"__ignoreMap":30},[34,223426,223427],{"class":36,"line":37},[34,223428,223429],{"class":40},"# Capture and reuse with \\1, \\2, etc.\n",[34,223431,223432,223434,223437],{"class":36,"line":44},[34,223433,13209],{"class":47},[34,223435,223436],{"class":54}," 's/\\(.*\\)@\\(.*\\)/User: \\1, Domain: \\2/'",[34,223438,223439],{"class":54}," emails.txt\n",[34,223441,223442],{"class":36,"line":58},[34,223443,62],{"emptyLinePlaceholder":61},[34,223445,223446],{"class":36,"line":65},[34,223447,223448],{"class":40},"# Swap two words\n",[34,223450,223451,223453,223456],{"class":36,"line":71},[34,223452,13209],{"class":47},[34,223454,223455],{"class":54}," 's/\\([a-z]*\\) \\([a-z]*\\)/\\2 \\1/'",[34,223457,12140],{"class":54},[34,223459,223460],{"class":36,"line":77},[34,223461,62],{"emptyLinePlaceholder":61},[34,223463,223464],{"class":36,"line":82},[34,223465,223466],{"class":40},"# Extract filename from path\n",[34,223468,223469,223471,223474],{"class":36,"line":88},[34,223470,13209],{"class":47},[34,223472,223473],{"class":54}," 's|.*/\\([^/]*\\)|\\1|'",[34,223475,223476],{"class":54}," paths.txt\n",[34,223478,223479],{"class":36,"line":242},[34,223480,62],{"emptyLinePlaceholder":61},[34,223482,223483],{"class":36,"line":250},[34,223484,223485],{"class":40},"# Wrap matched text\n",[34,223487,223488,223490,223493,223496],{"class":36,"line":263},[34,223489,13209],{"class":47},[34,223491,223492],{"class":54}," 's/\\(error\\)/**\\1**/g'",[34,223494,223495],{"class":54}," log.txt",[34,223497,223498],{"class":40},"   # Bold errors in markdown\n",[388,223500,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":223502},[223503],{"id":223419,"depth":44,"text":223414},"Capturing Groups in sed.",{},"/sed/capturing-groups",{"title":223414,"description":223504},"sed/capturing-groups",[13209,204975,223185,5588,109602],"KH4T3ol-rnuw3owFTp0uKT14t_6osGFCLnNeUVhZOOY",{"id":223512,"title":223513,"body":223514,"date":402,"description":223607,"extension":404,"meta":223608,"navigation":61,"order":250,"path":223609,"seo":223610,"stem":223611,"subject":13209,"tags":223612,"__hash__":223613},"topics/sed/case-conversion.md","Case Conversion",{"type":8,"value":223515,"toc":223604},[223516,223519,223602],[11,223517,223513],{"id":223518},"case-conversion",[25,223520,223522],{"className":27,"code":223521,"language":29,"meta":30,"style":30},"# Convert to uppercase (GNU sed)\nsed 's/.*/\\U&/' file.txt\n\n# Convert to lowercase (GNU sed)\nsed 's/.*/\\L&/' file.txt\n\n# Capitalize first letter\nsed 's/\\b\\(.\\)/\\u\\1/g' file.txt\n\n# Using tr for portable case conversion\nsed 's/.*/\\L&/' file.txt | tr '[:lower:]' '[:upper:]'\n",[20,223523,223524,223529,223538,223542,223547,223556,223560,223565,223574,223578,223583],{"__ignoreMap":30},[34,223525,223526],{"class":36,"line":37},[34,223527,223528],{"class":40},"# Convert to uppercase (GNU sed)\n",[34,223530,223531,223533,223536],{"class":36,"line":44},[34,223532,13209],{"class":47},[34,223534,223535],{"class":54}," 's/.*/\\U&/'",[34,223537,12140],{"class":54},[34,223539,223540],{"class":36,"line":58},[34,223541,62],{"emptyLinePlaceholder":61},[34,223543,223544],{"class":36,"line":65},[34,223545,223546],{"class":40},"# Convert to lowercase (GNU sed)\n",[34,223548,223549,223551,223554],{"class":36,"line":71},[34,223550,13209],{"class":47},[34,223552,223553],{"class":54}," 's/.*/\\L&/'",[34,223555,12140],{"class":54},[34,223557,223558],{"class":36,"line":77},[34,223559,62],{"emptyLinePlaceholder":61},[34,223561,223562],{"class":36,"line":82},[34,223563,223564],{"class":40},"# Capitalize first letter\n",[34,223566,223567,223569,223572],{"class":36,"line":88},[34,223568,13209],{"class":47},[34,223570,223571],{"class":54}," 's/\\b\\(.\\)/\\u\\1/g'",[34,223573,12140],{"class":54},[34,223575,223576],{"class":36,"line":242},[34,223577,62],{"emptyLinePlaceholder":61},[34,223579,223580],{"class":36,"line":250},[34,223581,223582],{"class":40},"# Using tr for portable case conversion\n",[34,223584,223585,223587,223589,223591,223593,223596,223599],{"class":36,"line":263},[34,223586,13209],{"class":47},[34,223588,223553],{"class":54},[34,223590,8832],{"class":54},[34,223592,7197],{"class":580},[34,223594,223595],{"class":47}," tr",[34,223597,223598],{"class":54}," '[:lower:]'",[34,223600,223601],{"class":54}," '[:upper:]'\n",[388,223603,11756],{},{"title":30,"searchDepth":44,"depth":44,"links":223605},[223606],{"id":223518,"depth":44,"text":223513},"Case Conversion in sed.",{},"/sed/case-conversion",{"title":223513,"description":223607},"sed/case-conversion",[13209,204975,223185,5588,109602],"v1qsTvIpZRwnNljtAHYKjeV82OStqJavzOyGYlAW9NM",{"id":223615,"title":223616,"body":223617,"date":402,"description":223736,"extension":404,"meta":223737,"navigation":61,"order":65,"path":223738,"seo":223739,"stem":223740,"subject":13209,"tags":223741,"__hash__":223742},"topics/sed/deletion.md","Deletion",{"type":8,"value":223618,"toc":223733},[223619,223622,223731],[11,223620,223616],{"id":223621},"deletion",[25,223623,223625],{"className":27,"code":223624,"language":29,"meta":30,"style":30},"# Delete specific line\nsed '3d' file.txt\n\n# Delete line range\nsed '1,5d' file.txt\n\n# Delete last line\nsed '$d' file.txt\n\n# Delete lines matching pattern\nsed '/pattern/d' file.txt\n\n# Delete empty lines\nsed '/^$/d' file.txt\n\n# Delete lines starting with #\nsed '/^#/d' file.txt\n",[20,223626,223627,223632,223641,223645,223650,223659,223663,223668,223677,223681,223686,223695,223699,223704,223713,223717,223722],{"__ignoreMap":30},[34,223628,223629],{"class":36,"line":37},[34,223630,223631],{"class":40},"# Delete specific line\n",[34,223633,223634,223636,223639],{"class":36,"line":44},[34,223635,13209],{"class":47},[34,223637,223638],{"class":54}," '3d'",[34,223640,12140],{"class":54},[34,223642,223643],{"class":36,"line":58},[34,223644,62],{"emptyLinePlaceholder":61},[34,223646,223647],{"class":36,"line":65},[34,223648,223649],{"class":40},"# Delete line range\n",[34,223651,223652,223654,223657],{"class":36,"line":71},[34,223653,13209],{"class":47},[34,223655,223656],{"class":54}," '1,5d'",[34,223658,12140],{"class":54},[34,223660,223661],{"class":36,"line":77},[34,223662,62],{"emptyLinePlaceholder":61},[34,223664,223665],{"class":36,"line":82},[34,223666,223667],{"class":40},"# Delete last line\n",[34,223669,223670,223672,223675],{"class":36,"line":88},[34,223671,13209],{"class":47},[34,223673,223674],{"class":54}," '$d'",[34,223676,12140],{"class":54},[34,223678,223679],{"class":36,"line":242},[34,223680,62],{"emptyLinePlaceholder":61},[34,223682,223683],{"class":36,"line":250},[34,223684,223685],{"class":40},"# Delete lines matching pattern\n",[34,223687,223688,223690,223693],{"class":36,"line":263},[34,223689,13209],{"class":47},[34,223691,223692],{"class":54}," '/pattern/d'",[34,223694,12140],{"class":54},[34,223696,223697],{"class":36,"line":275},[34,223698,62],{"emptyLinePlaceholder":61},[34,223700,223701],{"class":36,"line":700},[34,223702,223703],{"class":40},"# Delete empty lines\n",[34,223705,223706,223708,223711],{"class":36,"line":706},[34,223707,13209],{"class":47},[34,223709,223710],{"class":54}," '/^$/d'",[34,223712,12140],{"class":54},[34,223714,223715],{"class":36,"line":715},[34,223716,62],{"emptyLinePlaceholder":61},[34,223718,223719],{"class":36,"line":725},[34,223720,223721],{"class":40},"# Delete lines starting with #\n",[34,223723,223724,223726,223729],{"class":36,"line":734},[34,223725,13209],{"class":47},[34,223727,223728],{"class":54}," '/^#/d'",[34,223730,12140],{"class":54},[388,223732,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":223734},[223735],{"id":223621,"depth":44,"text":223616},"Deletion in sed.",{},"/sed/deletion",{"title":223616,"description":223736},"sed/deletion",[13209,204975,223185,5588,109602],"MGg-qUdf4DuOvWx0FiQMCfBbVTT64PAgs3xx8Uz8ITQ",{"id":223744,"title":223745,"body":223746,"date":402,"description":223812,"extension":404,"meta":223813,"navigation":61,"order":275,"path":223814,"seo":223815,"stem":223816,"subject":13209,"tags":223817,"__hash__":223818},"topics/sed/delimiters.md","Delimiters",{"type":8,"value":223747,"toc":223809},[223748,223751,223807],[11,223749,223745],{"id":223750},"delimiters",[25,223752,223754],{"className":27,"code":223753,"language":29,"meta":30,"style":30},"# Use different delimiter for paths (avoids escaping /)\nsed 's|/old/path|/new/path|g' file.txt\nsed 's#/old/path#/new/path#g' file.txt\nsed 's@/old/path@/new/path@g' file.txt\n\n# Useful when working with URLs\nsed 's|http://|https://|g' urls.txt\n",[20,223755,223756,223761,223770,223779,223788,223792,223797],{"__ignoreMap":30},[34,223757,223758],{"class":36,"line":37},[34,223759,223760],{"class":40},"# Use different delimiter for paths (avoids escaping /)\n",[34,223762,223763,223765,223768],{"class":36,"line":44},[34,223764,13209],{"class":47},[34,223766,223767],{"class":54}," 's|/old/path|/new/path|g'",[34,223769,12140],{"class":54},[34,223771,223772,223774,223777],{"class":36,"line":58},[34,223773,13209],{"class":47},[34,223775,223776],{"class":54}," 's#/old/path#/new/path#g'",[34,223778,12140],{"class":54},[34,223780,223781,223783,223786],{"class":36,"line":65},[34,223782,13209],{"class":47},[34,223784,223785],{"class":54}," 's@/old/path@/new/path@g'",[34,223787,12140],{"class":54},[34,223789,223790],{"class":36,"line":71},[34,223791,62],{"emptyLinePlaceholder":61},[34,223793,223794],{"class":36,"line":77},[34,223795,223796],{"class":40},"# Useful when working with URLs\n",[34,223798,223799,223801,223804],{"class":36,"line":82},[34,223800,13209],{"class":47},[34,223802,223803],{"class":54}," 's|http://|https://|g'",[34,223805,223806],{"class":54}," urls.txt\n",[388,223808,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":223810},[223811],{"id":223750,"depth":44,"text":223745},"Delimiters in sed.",{},"/sed/delimiters",{"title":223745,"description":223812},"sed/delimiters",[13209,204975,223185,5588,109602],"uvo2RosI35s3M6OYnuY-jZWfDwc0PKWxLVsJILZAepk",{"id":223820,"title":223821,"body":223822,"date":402,"description":223893,"extension":404,"meta":223894,"navigation":61,"order":58,"path":223895,"seo":223896,"stem":223897,"subject":13209,"tags":223898,"__hash__":223899},"topics/sed/in-place-editing.md","In-Place Editing",{"type":8,"value":223823,"toc":223890},[223824,223827,223888],[11,223825,223821],{"id":223826},"in-place-editing",[25,223828,223830],{"className":27,"code":223829,"language":29,"meta":30,"style":30},"# Edit file in place (GNU sed)\nsed -i 's/old/new/g' file.txt\n\n# Edit with backup (creates file.txt.bak)\nsed -i.bak 's/old/new/g' file.txt\n\n# macOS/BSD sed requires empty string for no backup\nsed -i '' 's/old/new/g' file.txt\n",[20,223831,223832,223837,223847,223851,223856,223867,223871,223876],{"__ignoreMap":30},[34,223833,223834],{"class":36,"line":37},[34,223835,223836],{"class":40},"# Edit file in place (GNU sed)\n",[34,223838,223839,223841,223843,223845],{"class":36,"line":44},[34,223840,13209],{"class":47},[34,223842,13065],{"class":50},[34,223844,13212],{"class":54},[34,223846,12140],{"class":54},[34,223848,223849],{"class":36,"line":58},[34,223850,62],{"emptyLinePlaceholder":61},[34,223852,223853],{"class":36,"line":65},[34,223854,223855],{"class":40},"# Edit with backup (creates file.txt.bak)\n",[34,223857,223858,223860,223863,223865],{"class":36,"line":71},[34,223859,13209],{"class":47},[34,223861,223862],{"class":50}," -i.bak",[34,223864,13212],{"class":54},[34,223866,12140],{"class":54},[34,223868,223869],{"class":36,"line":77},[34,223870,62],{"emptyLinePlaceholder":61},[34,223872,223873],{"class":36,"line":82},[34,223874,223875],{"class":40},"# macOS/BSD sed requires empty string for no backup\n",[34,223877,223878,223880,223882,223884,223886],{"class":36,"line":88},[34,223879,13209],{"class":47},[34,223881,13065],{"class":50},[34,223883,686],{"class":54},[34,223885,13212],{"class":54},[34,223887,12140],{"class":54},[388,223889,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":223891},[223892],{"id":223826,"depth":44,"text":223821},"In-Place Editing in sed.",{},"/sed/in-place-editing",{"title":223821,"description":223893},"sed/in-place-editing",[13209,204975,223185,5588,109602],"nsrKc56Qrio152OK8NCSJxy44AGTC5JZ2FoyJvsU9I0",{"id":223901,"title":223902,"body":223903,"date":402,"description":223986,"extension":404,"meta":223987,"navigation":61,"order":71,"path":223988,"seo":223989,"stem":223990,"subject":13209,"tags":223991,"__hash__":223992},"topics/sed/insertion-and-appending.md","Insertion and Appending",{"type":8,"value":223904,"toc":223983},[223905,223908,223981],[11,223906,223902],{"id":223907},"insertion-and-appending",[25,223909,223911],{"className":27,"code":223910,"language":29,"meta":30,"style":30},"# Insert text before line 3\nsed '3i\\New line text' file.txt\n\n# Append text after line 3\nsed '3a\\New line text' file.txt\n\n# Insert before pattern match\nsed '/pattern/i\\New line' file.txt\n\n# Append after pattern match\nsed '/pattern/a\\New line' file.txt\n",[20,223912,223913,223918,223927,223931,223936,223945,223949,223954,223963,223967,223972],{"__ignoreMap":30},[34,223914,223915],{"class":36,"line":37},[34,223916,223917],{"class":40},"# Insert text before line 3\n",[34,223919,223920,223922,223925],{"class":36,"line":44},[34,223921,13209],{"class":47},[34,223923,223924],{"class":54}," '3i\\New line text'",[34,223926,12140],{"class":54},[34,223928,223929],{"class":36,"line":58},[34,223930,62],{"emptyLinePlaceholder":61},[34,223932,223933],{"class":36,"line":65},[34,223934,223935],{"class":40},"# Append text after line 3\n",[34,223937,223938,223940,223943],{"class":36,"line":71},[34,223939,13209],{"class":47},[34,223941,223942],{"class":54}," '3a\\New line text'",[34,223944,12140],{"class":54},[34,223946,223947],{"class":36,"line":77},[34,223948,62],{"emptyLinePlaceholder":61},[34,223950,223951],{"class":36,"line":82},[34,223952,223953],{"class":40},"# Insert before pattern match\n",[34,223955,223956,223958,223961],{"class":36,"line":88},[34,223957,13209],{"class":47},[34,223959,223960],{"class":54}," '/pattern/i\\New line'",[34,223962,12140],{"class":54},[34,223964,223965],{"class":36,"line":242},[34,223966,62],{"emptyLinePlaceholder":61},[34,223968,223969],{"class":36,"line":250},[34,223970,223971],{"class":40},"# Append after pattern match\n",[34,223973,223974,223976,223979],{"class":36,"line":263},[34,223975,13209],{"class":47},[34,223977,223978],{"class":54}," '/pattern/a\\New line'",[34,223980,12140],{"class":54},[388,223982,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":223984},[223985],{"id":223907,"depth":44,"text":223902},"Insertion and Appending in sed.",{},"/sed/insertion-and-appending",{"title":223902,"description":223986},"sed/insertion-and-appending",[13209,204975,223185,5588,109602],"l_9YBkjY0YfSvoVNL76mAE-A2LpuEg8qu8dALwXQeCw",{"id":223994,"title":223995,"body":223996,"date":402,"description":224081,"extension":404,"meta":224082,"navigation":61,"order":242,"path":224083,"seo":224084,"stem":224085,"subject":13209,"tags":224086,"__hash__":224087},"topics/sed/line-ranges-and-patterns.md","Line Ranges and Patterns",{"type":8,"value":223997,"toc":224078},[223998,224001,224076],[11,223999,223995],{"id":224000},"line-ranges-and-patterns",[25,224002,224004],{"className":27,"code":224003,"language":29,"meta":30,"style":30},"# Process lines between two patterns\nsed '/START/,/END/s/old/new/g' file.txt\n\n# Process from line N to end\nsed '10,$s/old/new/g' file.txt\n\n# Process every Nth line (every 2nd line)\nsed 'n;s/old/new/g' file.txt\n\n# Print only matching lines\nsed -n '/pattern/p' file.txt\n",[20,224005,224006,224011,224020,224024,224029,224038,224042,224047,224056,224060,224065],{"__ignoreMap":30},[34,224007,224008],{"class":36,"line":37},[34,224009,224010],{"class":40},"# Process lines between two patterns\n",[34,224012,224013,224015,224018],{"class":36,"line":44},[34,224014,13209],{"class":47},[34,224016,224017],{"class":54}," '/START/,/END/s/old/new/g'",[34,224019,12140],{"class":54},[34,224021,224022],{"class":36,"line":58},[34,224023,62],{"emptyLinePlaceholder":61},[34,224025,224026],{"class":36,"line":65},[34,224027,224028],{"class":40},"# Process from line N to end\n",[34,224030,224031,224033,224036],{"class":36,"line":71},[34,224032,13209],{"class":47},[34,224034,224035],{"class":54}," '10,$s/old/new/g'",[34,224037,12140],{"class":54},[34,224039,224040],{"class":36,"line":77},[34,224041,62],{"emptyLinePlaceholder":61},[34,224043,224044],{"class":36,"line":82},[34,224045,224046],{"class":40},"# Process every Nth line (every 2nd line)\n",[34,224048,224049,224051,224054],{"class":36,"line":88},[34,224050,13209],{"class":47},[34,224052,224053],{"class":54}," 'n;s/old/new/g'",[34,224055,12140],{"class":54},[34,224057,224058],{"class":36,"line":242},[34,224059,62],{"emptyLinePlaceholder":61},[34,224061,224062],{"class":36,"line":250},[34,224063,224064],{"class":40},"# Print only matching lines\n",[34,224066,224067,224069,224071,224074],{"class":36,"line":263},[34,224068,13209],{"class":47},[34,224070,7093],{"class":50},[34,224072,224073],{"class":54}," '/pattern/p'",[34,224075,12140],{"class":54},[388,224077,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":224079},[224080],{"id":224000,"depth":44,"text":223995},"Line Ranges and Patterns in sed.",{},"/sed/line-ranges-and-patterns",{"title":223995,"description":224081},"sed/line-ranges-and-patterns",[13209,204975,223185,5588,109602],"fzpUg5a1NuYiMhDHOCzUJAgcHtCoifuIE7RUJlXMqCU",{"id":224089,"title":224090,"body":224091,"date":402,"description":224165,"extension":404,"meta":224166,"navigation":61,"order":77,"path":224167,"seo":224168,"stem":224169,"subject":13209,"tags":224170,"__hash__":224171},"topics/sed/multiple-commands.md","Multiple Commands",{"type":8,"value":224092,"toc":224162},[224093,224096,224160],[11,224094,224090],{"id":224095},"multiple-commands",[25,224097,224099],{"className":27,"code":224098,"language":29,"meta":30,"style":30},"# Chain multiple substitutions with -e\nsed -e 's/old1/new1/g' -e 's/old2/new2/g' file.txt\n\n# Use semicolon separator\nsed 's/old1/new1/g; s/old2/new2/g' file.txt\n\n# Multiple commands from file\nsed -f commands.sed file.txt\n",[20,224100,224101,224106,224122,224126,224131,224140,224144,224149],{"__ignoreMap":30},[34,224102,224103],{"class":36,"line":37},[34,224104,224105],{"class":40},"# Chain multiple substitutions with -e\n",[34,224107,224108,224110,224112,224115,224117,224120],{"class":36,"line":44},[34,224109,13209],{"class":47},[34,224111,11292],{"class":50},[34,224113,224114],{"class":54}," 's/old1/new1/g'",[34,224116,11292],{"class":50},[34,224118,224119],{"class":54}," 's/old2/new2/g'",[34,224121,12140],{"class":54},[34,224123,224124],{"class":36,"line":58},[34,224125,62],{"emptyLinePlaceholder":61},[34,224127,224128],{"class":36,"line":65},[34,224129,224130],{"class":40},"# Use semicolon separator\n",[34,224132,224133,224135,224138],{"class":36,"line":71},[34,224134,13209],{"class":47},[34,224136,224137],{"class":54}," 's/old1/new1/g; s/old2/new2/g'",[34,224139,12140],{"class":54},[34,224141,224142],{"class":36,"line":77},[34,224143,62],{"emptyLinePlaceholder":61},[34,224145,224146],{"class":36,"line":82},[34,224147,224148],{"class":40},"# Multiple commands from file\n",[34,224150,224151,224153,224155,224158],{"class":36,"line":88},[34,224152,13209],{"class":47},[34,224154,6001],{"class":50},[34,224156,224157],{"class":54}," commands.sed",[34,224159,12140],{"class":54},[388,224161,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":224163},[224164],{"id":224095,"depth":44,"text":224090},"Multiple Commands in sed.",{},"/sed/multiple-commands",{"title":224090,"description":224165},"sed/multiple-commands",[13209,204975,223185,5588,109602],"vChQ7UdutFtqOX7bq9u0S1hrz7ji29s75QkkysVoK40",{"id":224173,"title":13209,"body":224174,"date":2633,"description":224240,"extension":404,"meta":224241,"navigation":61,"order":37,"path":224242,"seo":224243,"stem":224244,"subject":13209,"tags":224245,"__hash__":224246},"topics/sed/overview.md",{"type":8,"value":224175,"toc":224238},[224176],[309,224177,224178,224182,224186,224190,224194,224198,224203,224207,224211,224215,224220,224224,224230,224234],{},[312,224179,224180],{},[145,224181,223322],{"href":223407},[312,224183,224184],{},[145,224185,223821],{"href":223895},[312,224187,224188],{},[145,224189,223616],{"href":223738},[312,224191,224192],{},[145,224193,223902],{"href":223988},[312,224195,224196],{},[145,224197,224090],{"href":224167},[312,224199,224200],{},[145,224201,110507],{"href":224202},"/sed/regular-expressions",[312,224204,224205],{},[145,224206,223414],{"href":223506},[312,224208,224209],{},[145,224210,223995],{"href":224083},[312,224212,224213],{},[145,224214,223513],{"href":223609},[312,224216,224217],{},[145,224218,110537],{"href":224219},"/sed/practical-examples",[312,224221,224222],{},[145,224223,223745],{"href":223814},[312,224225,224226],{},[145,224227,224229],{"href":224228},"/sed/printing-and-suppressing","Printing and Suppressing",[312,224231,224232],{},[145,224233,223056],{"href":223181},[312,224235,224236],{},[145,224237,223189],{"href":223315},{"title":30,"searchDepth":44,"depth":44,"links":224239},[],"Stream editor for filtering and transforming text using pattern matching and substitution.",{},"/sed/overview",{"title":13209,"description":224240},"sed/overview",[13209,204975,223185,5588,109602],"gO3ERg4-2TyIEPgX2TUcffaDnv6sxSyfxVWUMYOwVTc",{"id":224248,"title":110537,"body":224249,"date":402,"description":224414,"extension":404,"meta":224415,"navigation":61,"order":263,"path":224219,"seo":224416,"stem":224417,"subject":13209,"tags":224418,"__hash__":224419},"topics/sed/practical-examples.md",{"type":8,"value":224250,"toc":224411},[224251,224253,224409],[11,224252,110537],{"id":110666},[25,224254,224256],{"className":27,"code":224255,"language":29,"meta":30,"style":30},"# Remove trailing whitespace\nsed 's/[[:space:]]*$//' file.txt\n\n# Remove leading whitespace\nsed 's/^[[:space:]]*//' file.txt\n\n# Remove HTML tags\nsed 's/\u003C[^>]*>//g' file.html\n\n# Extract URLs from HTML\nsed -n 's/.*href=\"\\([^\"]*\\)\".*/\\1/p' page.html\n\n# Comment out lines\nsed 's/^/# /' script.sh\n\n# Uncomment lines\nsed 's/^# //' script.sh\n\n# Add line numbers\nsed = file.txt | sed 'N;s/\\n/\\t/'\n\n# Replace tabs with spaces\nsed 's/\\t/    /g' file.txt\n",[20,224257,224258,224263,224272,224276,224281,224290,224294,224299,224308,224312,224317,224329,224333,224338,224348,224352,224357,224366,224370,224375,224391,224395,224400],{"__ignoreMap":30},[34,224259,224260],{"class":36,"line":37},[34,224261,224262],{"class":40},"# Remove trailing whitespace\n",[34,224264,224265,224267,224270],{"class":36,"line":44},[34,224266,13209],{"class":47},[34,224268,224269],{"class":54}," 's/[[:space:]]*$//'",[34,224271,12140],{"class":54},[34,224273,224274],{"class":36,"line":58},[34,224275,62],{"emptyLinePlaceholder":61},[34,224277,224278],{"class":36,"line":65},[34,224279,224280],{"class":40},"# Remove leading whitespace\n",[34,224282,224283,224285,224288],{"class":36,"line":71},[34,224284,13209],{"class":47},[34,224286,224287],{"class":54}," 's/^[[:space:]]*//'",[34,224289,12140],{"class":54},[34,224291,224292],{"class":36,"line":77},[34,224293,62],{"emptyLinePlaceholder":61},[34,224295,224296],{"class":36,"line":82},[34,224297,224298],{"class":40},"# Remove HTML tags\n",[34,224300,224301,224303,224306],{"class":36,"line":88},[34,224302,13209],{"class":47},[34,224304,224305],{"class":54}," 's/\u003C[^>]*>//g'",[34,224307,110915],{"class":54},[34,224309,224310],{"class":36,"line":242},[34,224311,62],{"emptyLinePlaceholder":61},[34,224313,224314],{"class":36,"line":250},[34,224315,224316],{"class":40},"# Extract URLs from HTML\n",[34,224318,224319,224321,224323,224326],{"class":36,"line":263},[34,224320,13209],{"class":47},[34,224322,7093],{"class":50},[34,224324,224325],{"class":54}," 's/.*href=\"\\([^\"]*\\)\".*/\\1/p'",[34,224327,224328],{"class":54}," page.html\n",[34,224330,224331],{"class":36,"line":275},[34,224332,62],{"emptyLinePlaceholder":61},[34,224334,224335],{"class":36,"line":700},[34,224336,224337],{"class":40},"# Comment out lines\n",[34,224339,224340,224342,224345],{"class":36,"line":706},[34,224341,13209],{"class":47},[34,224343,224344],{"class":54}," 's/^/# /'",[34,224346,224347],{"class":54}," script.sh\n",[34,224349,224350],{"class":36,"line":715},[34,224351,62],{"emptyLinePlaceholder":61},[34,224353,224354],{"class":36,"line":725},[34,224355,224356],{"class":40},"# Uncomment lines\n",[34,224358,224359,224361,224364],{"class":36,"line":734},[34,224360,13209],{"class":47},[34,224362,224363],{"class":54}," 's/^# //'",[34,224365,224347],{"class":54},[34,224367,224368],{"class":36,"line":742},[34,224369,62],{"emptyLinePlaceholder":61},[34,224371,224372],{"class":36,"line":748},[34,224373,224374],{"class":40},"# Add line numbers\n",[34,224376,224377,224379,224381,224383,224385,224388],{"class":36,"line":754},[34,224378,13209],{"class":47},[34,224380,683],{"class":54},[34,224382,8832],{"class":54},[34,224384,7197],{"class":580},[34,224386,224387],{"class":47}," sed",[34,224389,224390],{"class":54}," 'N;s/\\n/\\t/'\n",[34,224392,224393],{"class":36,"line":759},[34,224394,62],{"emptyLinePlaceholder":61},[34,224396,224397],{"class":36,"line":771},[34,224398,224399],{"class":40},"# Replace tabs with spaces\n",[34,224401,224402,224404,224407],{"class":36,"line":794},[34,224403,13209],{"class":47},[34,224405,224406],{"class":54}," 's/\\t/    /g'",[34,224408,12140],{"class":54},[388,224410,81522],{},{"title":30,"searchDepth":44,"depth":44,"links":224412},[224413],{"id":110666,"depth":44,"text":110537},"Practical Examples in sed.",{},{"title":110537,"description":224414},"sed/practical-examples",[13209,204975,223185,5588,109602],"KOVJjGYFhZ9U4O0jhQ8y0ueUMZIIvm8lHEmBDxM0SUA",{"id":224421,"title":224229,"body":224422,"date":402,"description":224515,"extension":404,"meta":224516,"navigation":61,"order":700,"path":224228,"seo":224517,"stem":224518,"subject":13209,"tags":224519,"__hash__":224520},"topics/sed/printing-and-suppressing.md",{"type":8,"value":224423,"toc":224512},[224424,224427,224510],[11,224425,224229],{"id":224426},"printing-and-suppressing",[25,224428,224430],{"className":27,"code":224429,"language":29,"meta":30,"style":30},"# Print only modified lines\nsed -n 's/old/new/p' file.txt\n\n# Suppress automatic printing (-n flag)\nsed -n '1,5p' file.txt               # Print lines 1-5 only\n\n# Print line numbers with content\nsed -n '=' file.txt\n\n# Print lines containing pattern\nsed -n '/pattern/p' file.txt\n",[20,224431,224432,224437,224448,224452,224457,224471,224475,224480,224491,224495,224500],{"__ignoreMap":30},[34,224433,224434],{"class":36,"line":37},[34,224435,224436],{"class":40},"# Print only modified lines\n",[34,224438,224439,224441,224443,224446],{"class":36,"line":44},[34,224440,13209],{"class":47},[34,224442,7093],{"class":50},[34,224444,224445],{"class":54}," 's/old/new/p'",[34,224447,12140],{"class":54},[34,224449,224450],{"class":36,"line":58},[34,224451,62],{"emptyLinePlaceholder":61},[34,224453,224454],{"class":36,"line":65},[34,224455,224456],{"class":40},"# Suppress automatic printing (-n flag)\n",[34,224458,224459,224461,224463,224466,224468],{"class":36,"line":71},[34,224460,13209],{"class":47},[34,224462,7093],{"class":50},[34,224464,224465],{"class":54}," '1,5p'",[34,224467,8832],{"class":54},[34,224469,224470],{"class":40},"               # Print lines 1-5 only\n",[34,224472,224473],{"class":36,"line":77},[34,224474,62],{"emptyLinePlaceholder":61},[34,224476,224477],{"class":36,"line":82},[34,224478,224479],{"class":40},"# Print line numbers with content\n",[34,224481,224482,224484,224486,224489],{"class":36,"line":88},[34,224483,13209],{"class":47},[34,224485,7093],{"class":50},[34,224487,224488],{"class":54}," '='",[34,224490,12140],{"class":54},[34,224492,224493],{"class":36,"line":242},[34,224494,62],{"emptyLinePlaceholder":61},[34,224496,224497],{"class":36,"line":250},[34,224498,224499],{"class":40},"# Print lines containing pattern\n",[34,224501,224502,224504,224506,224508],{"class":36,"line":263},[34,224503,13209],{"class":47},[34,224505,7093],{"class":50},[34,224507,224073],{"class":54},[34,224509,12140],{"class":54},[388,224511,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":224513},[224514],{"id":224426,"depth":44,"text":224229},"Printing and Suppressing in sed.",{},{"title":224229,"description":224515},"sed/printing-and-suppressing",[13209,204975,223185,5588,109602],"2CnuzyrcNhBdxOvxsQXMEamDe74dI32_b1EfFkW1a1U",{"id":224522,"title":110507,"body":224523,"date":402,"description":224635,"extension":404,"meta":224636,"navigation":61,"order":82,"path":224202,"seo":224637,"stem":224638,"subject":13209,"tags":224639,"__hash__":224640},"topics/sed/regular-expressions.md",{"type":8,"value":224524,"toc":224632},[224525,224527,224630],[11,224526,110507],{"id":111080},[25,224528,224530],{"className":27,"code":224529,"language":29,"meta":30,"style":30},"# Match any character (.)\nsed 's/c.t/dog/g' file.txt          # Matches cat, cot, cut\n\n# Match start of line (^)\nsed 's/^Hello/Hi/g' file.txt\n\n# Match end of line ($)\nsed 's/\\.$/!/g' file.txt             # Replace period at end with !\n\n# Match digit (\\d or [0-9])\nsed 's/[0-9]\\+/NUM/g' file.txt       # Replace all numbers\n\n# Match word boundaries (\\b)\nsed 's/\\bcat\\b/dog/g' file.txt       # Only whole word \"cat\"\n",[20,224531,224532,224537,224549,224553,224558,224567,224571,224576,224588,224592,224597,224609,224613,224618],{"__ignoreMap":30},[34,224533,224534],{"class":36,"line":37},[34,224535,224536],{"class":40},"# Match any character (.)\n",[34,224538,224539,224541,224544,224546],{"class":36,"line":44},[34,224540,13209],{"class":47},[34,224542,224543],{"class":54}," 's/c.t/dog/g'",[34,224545,8832],{"class":54},[34,224547,224548],{"class":40},"          # Matches cat, cot, cut\n",[34,224550,224551],{"class":36,"line":58},[34,224552,62],{"emptyLinePlaceholder":61},[34,224554,224555],{"class":36,"line":65},[34,224556,224557],{"class":40},"# Match start of line (^)\n",[34,224559,224560,224562,224565],{"class":36,"line":71},[34,224561,13209],{"class":47},[34,224563,224564],{"class":54}," 's/^Hello/Hi/g'",[34,224566,12140],{"class":54},[34,224568,224569],{"class":36,"line":77},[34,224570,62],{"emptyLinePlaceholder":61},[34,224572,224573],{"class":36,"line":82},[34,224574,224575],{"class":40},"# Match end of line ($)\n",[34,224577,224578,224580,224583,224585],{"class":36,"line":88},[34,224579,13209],{"class":47},[34,224581,224582],{"class":54}," 's/\\.$/!/g'",[34,224584,8832],{"class":54},[34,224586,224587],{"class":40},"             # Replace period at end with !\n",[34,224589,224590],{"class":36,"line":242},[34,224591,62],{"emptyLinePlaceholder":61},[34,224593,224594],{"class":36,"line":250},[34,224595,224596],{"class":40},"# Match digit (\\d or [0-9])\n",[34,224598,224599,224601,224604,224606],{"class":36,"line":263},[34,224600,13209],{"class":47},[34,224602,224603],{"class":54}," 's/[0-9]\\+/NUM/g'",[34,224605,8832],{"class":54},[34,224607,224608],{"class":40},"       # Replace all numbers\n",[34,224610,224611],{"class":36,"line":275},[34,224612,62],{"emptyLinePlaceholder":61},[34,224614,224615],{"class":36,"line":700},[34,224616,224617],{"class":40},"# Match word boundaries (\\b)\n",[34,224619,224620,224622,224625,224627],{"class":36,"line":706},[34,224621,13209],{"class":47},[34,224623,224624],{"class":54}," 's/\\bcat\\b/dog/g'",[34,224626,8832],{"class":54},[34,224628,224629],{"class":40},"       # Only whole word \"cat\"\n",[388,224631,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":224633},[224634],{"id":111080,"depth":44,"text":110507},"Regular Expressions in sed.",{},{"title":110507,"description":224635},"sed/regular-expressions",[13209,204975,223185,5588,109602],"osMyR9cTRigQepJdBgvQu3kN695AQVMvIlGVSVAL1Mk",{"id":224642,"title":224643,"body":224644,"date":402,"description":225264,"extension":404,"meta":225265,"navigation":61,"order":37,"path":225266,"seo":225267,"stem":225268,"subject":224643,"tags":225269,"__hash__":225270},"topics/semantic-release/overview.md","semantic-release",{"type":8,"value":224645,"toc":225255},[224646,224648,224705,224707,224710,224767,224769,224868,224870,225050,225054,225156,225160,225178,225182,225252],[11,224647,97],{"id":96},[25,224649,224651],{"className":27,"code":224650,"language":29,"meta":30,"style":30},"npm install --save-dev semantic-release\n\n# With plugins (recommended)\nnpm install --save-dev semantic-release \\\n  @semantic-release/git \\\n  @semantic-release/changelog \\\n  @semantic-release/github\n",[20,224652,224653,224664,224668,224673,224686,224693,224700],{"__ignoreMap":30},[34,224654,224655,224657,224659,224661],{"class":36,"line":37},[34,224656,8177],{"class":47},[34,224658,118],{"class":54},[34,224660,29537],{"class":50},[34,224662,224663],{"class":54}," semantic-release\n",[34,224665,224666],{"class":36,"line":44},[34,224667,62],{"emptyLinePlaceholder":61},[34,224669,224670],{"class":36,"line":58},[34,224671,224672],{"class":40},"# With plugins (recommended)\n",[34,224674,224675,224677,224679,224681,224684],{"class":36,"line":65},[34,224676,8177],{"class":47},[34,224678,118],{"class":54},[34,224680,29537],{"class":50},[34,224682,224683],{"class":54}," semantic-release",[34,224685,7186],{"class":50},[34,224687,224688,224691],{"class":36,"line":71},[34,224689,224690],{"class":54},"  @semantic-release/git",[34,224692,7186],{"class":50},[34,224694,224695,224698],{"class":36,"line":77},[34,224696,224697],{"class":54},"  @semantic-release/changelog",[34,224699,7186],{"class":50},[34,224701,224702],{"class":36,"line":82},[34,224703,224704],{"class":54},"  @semantic-release/github\n",[11,224706,45382],{"id":45381},[16,224708,224709],{},"semantic-release automates versioning by analyzing commit messages:",[14308,224711,224712,224722],{},[14311,224713,224714],{},[14314,224715,224716,224719],{},[14317,224717,224718],{},"Commit Type",[14317,224720,224721],{},"Release Type",[14326,224723,224724,224734,224744,224754],{},[14314,224725,224726,224731],{},[14331,224727,224728],{},[20,224729,224730],{},"fix:",[14331,224732,224733],{},"Patch (1.0.x)",[14314,224735,224736,224741],{},[14331,224737,224738],{},[20,224739,224740],{},"feat:",[14331,224742,224743],{},"Minor (1.x.0)",[14314,224745,224746,224751],{},[14331,224747,224748],{},[20,224749,224750],{},"BREAKING CHANGE:",[14331,224752,224753],{},"Major (x.0.0)",[14314,224755,224756,224764],{},[14331,224757,224758,1798,224761],{},[20,224759,224760],{},"docs:",[20,224762,224763],{},"chore:",[14331,224765,224766],{},"No release",[11,224768,8686],{"id":558},[25,224770,224772],{"className":28058,"code":224771,"language":14790,"meta":30,"style":30},"// .releaserc.json\n{\n  \"branches\": [\"main\"],\n  \"plugins\": [\n    \"@semantic-release/commit-analyzer\",      // analyzes commits\n    \"@semantic-release/release-notes-generator\", // generates changelog\n    \"@semantic-release/changelog\",             // writes CHANGELOG.md\n    \"@semantic-release/npm\",                   // publishes to npm\n    \"@semantic-release/git\",                   // commits release assets\n    \"@semantic-release/github\"                 // creates GitHub release\n  ]\n}\n",[20,224773,224774,224779,224783,224795,224801,224811,224821,224831,224842,224852,224860,224864],{"__ignoreMap":30},[34,224775,224776],{"class":36,"line":37},[34,224777,224778],{"class":40},"// .releaserc.json\n",[34,224780,224781],{"class":36,"line":44},[34,224782,25296],{"class":181},[34,224784,224785,224788,224790,224793],{"class":36,"line":58},[34,224786,224787],{"class":50},"  \"branches\"",[34,224789,47204],{"class":181},[34,224791,224792],{"class":54},"\"main\"",[34,224794,46332],{"class":181},[34,224796,224797,224799],{"class":36,"line":65},[34,224798,62861],{"class":50},[34,224800,28102],{"class":181},[34,224802,224803,224806,224808],{"class":36,"line":71},[34,224804,224805],{"class":54},"    \"@semantic-release/commit-analyzer\"",[34,224807,129319],{"class":181},[34,224809,224810],{"class":40},"// analyzes commits\n",[34,224812,224813,224816,224818],{"class":36,"line":77},[34,224814,224815],{"class":54},"    \"@semantic-release/release-notes-generator\"",[34,224817,1798],{"class":181},[34,224819,224820],{"class":40},"// generates changelog\n",[34,224822,224823,224826,224828],{"class":36,"line":82},[34,224824,224825],{"class":54},"    \"@semantic-release/changelog\"",[34,224827,209983],{"class":181},[34,224829,224830],{"class":40},"// writes CHANGELOG.md\n",[34,224832,224833,224836,224839],{"class":36,"line":88},[34,224834,224835],{"class":54},"    \"@semantic-release/npm\"",[34,224837,224838],{"class":181},",                   ",[34,224840,224841],{"class":40},"// publishes to npm\n",[34,224843,224844,224847,224849],{"class":36,"line":242},[34,224845,224846],{"class":54},"    \"@semantic-release/git\"",[34,224848,224838],{"class":181},[34,224850,224851],{"class":40},"// commits release assets\n",[34,224853,224854,224857],{"class":36,"line":250},[34,224855,224856],{"class":54},"    \"@semantic-release/github\"",[34,224858,224859],{"class":40},"                 // creates GitHub release\n",[34,224861,224862],{"class":36,"line":263},[34,224863,85237],{"class":181},[34,224865,224866],{"class":36,"line":275},[34,224867,693],{"class":181},[11,224869,92475],{"id":410},[25,224871,224873],{"className":168,"code":224872,"language":170,"meta":30,"style":30},"# .github/workflows/release.yml\nname: Release\n\non:\n  push:\n    branches: [main]\n\njobs:\n  release:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n        with:\n          fetch-depth: 0  # full history needed for version detection\n      - uses: actions/setup-node@v4\n        with:\n          node-version: 20\n      - run: npm ci\n      - run: npx semantic-release\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n          NPM_TOKEN: ${{ secrets.NPM_TOKEN }}\n",[20,224874,224875,224880,224888,224892,224898,224904,224914,224918,224924,224930,224938,224944,224955,224962,224974,224985,224991,225001,225012,225023,225030,225040],{"__ignoreMap":30},[34,224876,224877],{"class":36,"line":37},[34,224878,224879],{"class":40},"# .github/workflows/release.yml\n",[34,224881,224882,224884,224886],{"class":36,"line":44},[34,224883,178],{"class":177},[34,224885,182],{"class":181},[34,224887,28839],{"class":54},[34,224889,224890],{"class":36,"line":58},[34,224891,62],{"emptyLinePlaceholder":61},[34,224893,224894,224896],{"class":36,"line":65},[34,224895,190],{"class":50},[34,224897,193],{"class":181},[34,224899,224900,224902],{"class":36,"line":71},[34,224901,198],{"class":177},[34,224903,193],{"class":181},[34,224905,224906,224908,224910,224912],{"class":36,"line":77},[34,224907,205],{"class":177},[34,224909,47204],{"class":181},[34,224911,8526],{"class":54},[34,224913,924],{"class":181},[34,224915,224916],{"class":36,"line":82},[34,224917,62],{"emptyLinePlaceholder":61},[34,224919,224920,224922],{"class":36,"line":88},[34,224921,220],{"class":177},[34,224923,193],{"class":181},[34,224925,224926,224928],{"class":36,"line":242},[34,224927,28882],{"class":177},[34,224929,193],{"class":181},[34,224931,224932,224934,224936],{"class":36,"line":250},[34,224933,234],{"class":177},[34,224935,182],{"class":181},[34,224937,239],{"class":54},[34,224939,224940,224942],{"class":36,"line":263},[34,224941,245],{"class":177},[34,224943,193],{"class":181},[34,224945,224946,224948,224950,224952],{"class":36,"line":275},[34,224947,212],{"class":181},[34,224949,255],{"class":177},[34,224951,182],{"class":181},[34,224953,224954],{"class":54},"actions/checkout@v4\n",[34,224956,224957,224960],{"class":36,"line":700},[34,224958,224959],{"class":177},"        with",[34,224961,193],{"class":181},[34,224963,224964,224967,224969,224971],{"class":36,"line":706},[34,224965,224966],{"class":177},"          fetch-depth",[34,224968,182],{"class":181},[34,224970,2773],{"class":50},[34,224972,224973],{"class":40},"  # full history needed for version detection\n",[34,224975,224976,224978,224980,224982],{"class":36,"line":715},[34,224977,212],{"class":181},[34,224979,255],{"class":177},[34,224981,182],{"class":181},[34,224983,224984],{"class":54},"actions/setup-node@v4\n",[34,224986,224987,224989],{"class":36,"line":725},[34,224988,224959],{"class":177},[34,224990,193],{"class":181},[34,224992,224993,224996,224998],{"class":36,"line":734},[34,224994,224995],{"class":177},"          node-version",[34,224997,182],{"class":181},[34,224999,225000],{"class":50},"20\n",[34,225002,225003,225005,225007,225009],{"class":36,"line":742},[34,225004,212],{"class":181},[34,225006,14592],{"class":177},[34,225008,182],{"class":181},[34,225010,225011],{"class":54},"npm ci\n",[34,225013,225014,225016,225018,225020],{"class":36,"line":748},[34,225015,212],{"class":181},[34,225017,14592],{"class":177},[34,225019,182],{"class":181},[34,225021,225022],{"class":54},"npx semantic-release\n",[34,225024,225025,225028],{"class":36,"line":754},[34,225026,225027],{"class":177},"        env",[34,225029,193],{"class":181},[34,225031,225032,225035,225037],{"class":36,"line":759},[34,225033,225034],{"class":177},"          GITHUB_TOKEN",[34,225036,182],{"class":181},[34,225038,225039],{"class":54},"${{ secrets.GITHUB_TOKEN }}\n",[34,225041,225042,225045,225047],{"class":36,"line":771},[34,225043,225044],{"class":177},"          NPM_TOKEN",[34,225046,182],{"class":181},[34,225048,225049],{"class":54},"${{ secrets.NPM_TOKEN }}\n",[11,225051,225053],{"id":225052},"multi-branch-config","Multi-Branch Config",[25,225055,225057],{"className":28058,"code":225056,"language":14790,"meta":30,"style":30},"{\n  \"branches\": [\n    \"main\",\n    { \"name\": \"beta\", \"prerelease\": true },       // 1.0.0-beta.1\n    { \"name\": \"alpha\", \"prerelease\": true },       // 1.0.0-alpha.1\n    { \"name\": \"next\", \"channel\": \"next\" }\n  ]\n}\n",[20,225058,225059,225063,225069,225076,225102,225126,225148,225152],{"__ignoreMap":30},[34,225060,225061],{"class":36,"line":37},[34,225062,25296],{"class":181},[34,225064,225065,225067],{"class":36,"line":44},[34,225066,224787],{"class":50},[34,225068,28102],{"class":181},[34,225070,225071,225074],{"class":36,"line":58},[34,225072,225073],{"class":54},"    \"main\"",[34,225075,624],{"class":181},[34,225077,225078,225080,225082,225084,225087,225089,225092,225094,225096,225099],{"class":36,"line":65},[34,225079,85202],{"class":181},[34,225081,4650],{"class":50},[34,225083,182],{"class":181},[34,225085,225086],{"class":54},"\"beta\"",[34,225088,1798],{"class":181},[34,225090,225091],{"class":50},"\"prerelease\"",[34,225093,182],{"class":181},[34,225095,632],{"class":50},[34,225097,225098],{"class":181}," },       ",[34,225100,225101],{"class":40},"// 1.0.0-beta.1\n",[34,225103,225104,225106,225108,225110,225113,225115,225117,225119,225121,225123],{"class":36,"line":71},[34,225105,85202],{"class":181},[34,225107,4650],{"class":50},[34,225109,182],{"class":181},[34,225111,225112],{"class":54},"\"alpha\"",[34,225114,1798],{"class":181},[34,225116,225091],{"class":50},[34,225118,182],{"class":181},[34,225120,632],{"class":50},[34,225122,225098],{"class":181},[34,225124,225125],{"class":40},"// 1.0.0-alpha.1\n",[34,225127,225128,225130,225132,225134,225137,225139,225142,225144,225146],{"class":36,"line":77},[34,225129,85202],{"class":181},[34,225131,4650],{"class":50},[34,225133,182],{"class":181},[34,225135,225136],{"class":54},"\"next\"",[34,225138,1798],{"class":181},[34,225140,225141],{"class":50},"\"channel\"",[34,225143,182],{"class":181},[34,225145,225136],{"class":54},[34,225147,52786],{"class":181},[34,225149,225150],{"class":36,"line":82},[34,225151,85237],{"class":181},[34,225153,225154],{"class":36,"line":88},[34,225155,693],{"class":181},[11,225157,225159],{"id":225158},"dry-run","Dry Run",[25,225161,225163],{"className":27,"code":225162,"language":29,"meta":30,"style":30},"# Preview what would be released without actually publishing\nnpx semantic-release --dry-run\n",[20,225164,225165,225170],{"__ignoreMap":30},[34,225166,225167],{"class":36,"line":37},[34,225168,225169],{"class":40},"# Preview what would be released without actually publishing\n",[34,225171,225172,225174,225176],{"class":36,"line":44},[34,225173,8205],{"class":47},[34,225175,224683],{"class":54},[34,225177,181668],{"class":50},[11,225179,225181],{"id":225180},"commit-message-format","Commit Message Format",[25,225183,225185],{"className":27,"code":225184,"language":29,"meta":30,"style":30},"# Patch release\ngit commit -m \"fix: correct typo in README\"\n\n# Minor release\ngit commit -m \"feat: add dark mode support\"\n\n# Major release (breaking change)\ngit commit -m \"feat!: rename API endpoint\n\nBREAKING CHANGE: /api/v1/users is now /api/v2/users\"\n",[20,225186,225187,225192,225203,225207,225212,225223,225227,225232,225243,225247],{"__ignoreMap":30},[34,225188,225189],{"class":36,"line":37},[34,225190,225191],{"class":40},"# Patch release\n",[34,225193,225194,225196,225198,225200],{"class":36,"line":44},[34,225195,7794],{"class":47},[34,225197,100596],{"class":54},[34,225199,5037],{"class":50},[34,225201,225202],{"class":54}," \"fix: correct typo in README\"\n",[34,225204,225205],{"class":36,"line":58},[34,225206,62],{"emptyLinePlaceholder":61},[34,225208,225209],{"class":36,"line":65},[34,225210,225211],{"class":40},"# Minor release\n",[34,225213,225214,225216,225218,225220],{"class":36,"line":71},[34,225215,7794],{"class":47},[34,225217,100596],{"class":54},[34,225219,5037],{"class":50},[34,225221,225222],{"class":54}," \"feat: add dark mode support\"\n",[34,225224,225225],{"class":36,"line":77},[34,225226,62],{"emptyLinePlaceholder":61},[34,225228,225229],{"class":36,"line":82},[34,225230,225231],{"class":40},"# Major release (breaking change)\n",[34,225233,225234,225236,225238,225240],{"class":36,"line":88},[34,225235,7794],{"class":47},[34,225237,100596],{"class":54},[34,225239,5037],{"class":50},[34,225241,225242],{"class":54}," \"feat!: rename API endpoint\n",[34,225244,225245],{"class":36,"line":242},[34,225246,62],{"emptyLinePlaceholder":61},[34,225248,225249],{"class":36,"line":250},[34,225250,225251],{"class":54},"BREAKING CHANGE: /api/v1/users is now /api/v2/users\"\n",[388,225253,225254],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .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}",{"title":30,"searchDepth":44,"depth":44,"links":225256},[225257,225258,225259,225260,225261,225262,225263],{"id":96,"depth":44,"text":97},{"id":45381,"depth":44,"text":45382},{"id":558,"depth":44,"text":8686},{"id":410,"depth":44,"text":92475},{"id":225052,"depth":44,"text":225053},{"id":225158,"depth":44,"text":225159},{"id":225180,"depth":44,"text":225181},"Fully automated version management and package publishing based on semantic commit messages.",{},"/semantic-release/overview",{"title":224643,"description":225264},"semantic-release/overview",[224643,8004,181601,29627,8177,8606],"VrprfJPMwdLOxftCcVWW4xI2L9Ao4nBpaGee6XjwEuk",{"id":225272,"title":225273,"body":225274,"date":402,"description":225969,"extension":404,"meta":225970,"navigation":61,"order":37,"path":225971,"seo":225972,"stem":225973,"subject":225974,"tags":225975,"__hash__":225977},"topics/sentry/overview.md","Sentry",{"type":8,"value":225275,"toc":225960},[225276,225278,225331,225335,225412,225416,225553,225557,225632,225636,225739,225743,225897,225901,225957],[11,225277,97],{"id":96},[25,225279,225281],{"className":27,"code":225280,"language":29,"meta":30,"style":30},"npm install @sentry/node          # Node.js\nnpm install @sentry/browser       # Browser\nnpm install @sentry/nextjs        # Next.js\nnpm install @sentry/react         # React\n",[20,225282,225283,225295,225307,225319],{"__ignoreMap":30},[34,225284,225285,225287,225289,225292],{"class":36,"line":37},[34,225286,8177],{"class":47},[34,225288,118],{"class":54},[34,225290,225291],{"class":54}," @sentry/node",[34,225293,225294],{"class":40},"          # Node.js\n",[34,225296,225297,225299,225301,225304],{"class":36,"line":44},[34,225298,8177],{"class":47},[34,225300,118],{"class":54},[34,225302,225303],{"class":54}," @sentry/browser",[34,225305,225306],{"class":40},"       # Browser\n",[34,225308,225309,225311,225313,225316],{"class":36,"line":58},[34,225310,8177],{"class":47},[34,225312,118],{"class":54},[34,225314,225315],{"class":54}," @sentry/nextjs",[34,225317,225318],{"class":40},"        # Next.js\n",[34,225320,225321,225323,225325,225328],{"class":36,"line":65},[34,225322,8177],{"class":47},[34,225324,118],{"class":54},[34,225326,225327],{"class":54}," @sentry/react",[34,225329,225330],{"class":40},"         # React\n",[11,225332,225334],{"id":225333},"basic-setup","Basic Setup",[25,225336,225338],{"className":111475,"code":225337,"language":111477,"meta":30,"style":30},"import * as Sentry from '@sentry/node';\n\nSentry.init({\n  dsn: 'https://\u003Ckey>@sentry.io/\u003Cproject>',\n  environment: process.env.NODE_ENV,\n  release: process.env.npm_package_version,\n  tracesSampleRate: 1.0,   // 100% of transactions (lower in prod)\n});\n",[20,225339,225340,225358,225362,225371,225381,225390,225395,225408],{"__ignoreMap":30},[34,225341,225342,225344,225346,225348,225351,225353,225356],{"class":36,"line":37},[34,225343,581],{"class":580},[34,225345,18083],{"class":50},[34,225347,91551],{"class":580},[34,225349,225350],{"class":181}," Sentry ",[34,225352,587],{"class":580},[34,225354,225355],{"class":54}," '@sentry/node'",[34,225357,593],{"class":181},[34,225359,225360],{"class":36,"line":44},[34,225361,62],{"emptyLinePlaceholder":61},[34,225363,225364,225367,225369],{"class":36,"line":58},[34,225365,225366],{"class":181},"Sentry.",[34,225368,37457],{"class":47},[34,225370,613],{"class":181},[34,225372,225373,225376,225379],{"class":36,"line":65},[34,225374,225375],{"class":181},"  dsn: ",[34,225377,225378],{"class":54},"'https://\u003Ckey>@sentry.io/\u003Cproject>'",[34,225380,624],{"class":181},[34,225382,225383,225386,225388],{"class":36,"line":71},[34,225384,225385],{"class":181},"  environment: process.env.",[34,225387,14704],{"class":50},[34,225389,624],{"class":181},[34,225391,225392],{"class":36,"line":77},[34,225393,225394],{"class":181},"  release: process.env.npm_package_version,\n",[34,225396,225397,225400,225403,225405],{"class":36,"line":82},[34,225398,225399],{"class":181},"  tracesSampleRate: ",[34,225401,225402],{"class":50},"1.0",[34,225404,77117],{"class":181},[34,225406,225407],{"class":40},"// 100% of transactions (lower in prod)\n",[34,225409,225410],{"class":36,"line":88},[34,225411,14873],{"class":181},[11,225413,225415],{"id":225414},"capture-errors","Capture Errors",[25,225417,225419],{"className":111475,"code":225418,"language":111477,"meta":30,"style":30},"// Capture an exception\ntry {\n  doSomething();\n} catch (err) {\n  Sentry.captureException(err);\n}\n\n// Capture a message\nSentry.captureMessage('Something went wrong', 'warning');\n\n// Add context\nSentry.setUser({ id: '123', email: 'user@example.com' });\nSentry.setTag('feature', 'checkout');\nSentry.setExtra('orderId', '456');\n",[20,225420,225421,225426,225432,225439,225447,225458,225462,225466,225471,225489,225493,225498,225515,225534],{"__ignoreMap":30},[34,225422,225423],{"class":36,"line":37},[34,225424,225425],{"class":40},"// Capture an exception\n",[34,225427,225428,225430],{"class":36,"line":44},[34,225429,30813],{"class":580},[34,225431,661],{"class":181},[34,225433,225434,225437],{"class":36,"line":58},[34,225435,225436],{"class":47},"  doSomething",[34,225438,851],{"class":181},[34,225440,225441,225443,225445],{"class":36,"line":65},[34,225442,2276],{"class":181},[34,225444,30851],{"class":580},[34,225446,20576],{"class":181},[34,225448,225449,225452,225455],{"class":36,"line":71},[34,225450,225451],{"class":181},"  Sentry.",[34,225453,225454],{"class":47},"captureException",[34,225456,225457],{"class":181},"(err);\n",[34,225459,225460],{"class":36,"line":77},[34,225461,693],{"class":181},[34,225463,225464],{"class":36,"line":82},[34,225465,62],{"emptyLinePlaceholder":61},[34,225467,225468],{"class":36,"line":88},[34,225469,225470],{"class":40},"// Capture a message\n",[34,225472,225473,225475,225478,225480,225482,225484,225487],{"class":36,"line":242},[34,225474,225366],{"class":181},[34,225476,225477],{"class":47},"captureMessage",[34,225479,1607],{"class":181},[34,225481,131829],{"class":54},[34,225483,1798],{"class":181},[34,225485,225486],{"class":54},"'warning'",[34,225488,1586],{"class":181},[34,225490,225491],{"class":36,"line":250},[34,225492,62],{"emptyLinePlaceholder":61},[34,225494,225495],{"class":36,"line":263},[34,225496,225497],{"class":40},"// Add context\n",[34,225499,225500,225502,225504,225506,225508,225510,225513],{"class":36,"line":275},[34,225501,225366],{"class":181},[34,225503,202182],{"class":47},[34,225505,61154],{"class":181},[34,225507,162435],{"class":54},[34,225509,83361],{"class":181},[34,225511,225512],{"class":54},"'user@example.com'",[34,225514,15567],{"class":181},[34,225516,225517,225519,225522,225524,225527,225529,225532],{"class":36,"line":700},[34,225518,225366],{"class":181},[34,225520,225521],{"class":47},"setTag",[34,225523,1607],{"class":181},[34,225525,225526],{"class":54},"'feature'",[34,225528,1798],{"class":181},[34,225530,225531],{"class":54},"'checkout'",[34,225533,1586],{"class":181},[34,225535,225536,225538,225541,225543,225546,225548,225551],{"class":36,"line":706},[34,225537,225366],{"class":181},[34,225539,225540],{"class":47},"setExtra",[34,225542,1607],{"class":181},[34,225544,225545],{"class":54},"'orderId'",[34,225547,1798],{"class":181},[34,225549,225550],{"class":54},"'456'",[34,225552,1586],{"class":181},[11,225554,225556],{"id":225555},"breadcrumbs","Breadcrumbs",[25,225558,225560],{"className":111475,"code":225559,"language":111477,"meta":30,"style":30},"// Add manual breadcrumb\nSentry.addBreadcrumb({\n  category: 'auth',\n  message: 'User logged in',\n  level: 'info',\n});\n\n// Breadcrumbs are automatically captured for:\n// - console.log calls\n// - HTTP requests\n// - DOM events (browser)\n",[20,225561,225562,225567,225576,225585,225594,225604,225608,225612,225617,225622,225627],{"__ignoreMap":30},[34,225563,225564],{"class":36,"line":37},[34,225565,225566],{"class":40},"// Add manual breadcrumb\n",[34,225568,225569,225571,225574],{"class":36,"line":44},[34,225570,225366],{"class":181},[34,225572,225573],{"class":47},"addBreadcrumb",[34,225575,613],{"class":181},[34,225577,225578,225581,225583],{"class":36,"line":58},[34,225579,225580],{"class":181},"  category: ",[34,225582,140706],{"class":54},[34,225584,624],{"class":181},[34,225586,225587,225589,225592],{"class":36,"line":65},[34,225588,77138],{"class":181},[34,225590,225591],{"class":54},"'User logged in'",[34,225593,624],{"class":181},[34,225595,225596,225599,225602],{"class":36,"line":71},[34,225597,225598],{"class":181},"  level: ",[34,225600,225601],{"class":54},"'info'",[34,225603,624],{"class":181},[34,225605,225606],{"class":36,"line":77},[34,225607,14873],{"class":181},[34,225609,225610],{"class":36,"line":82},[34,225611,62],{"emptyLinePlaceholder":61},[34,225613,225614],{"class":36,"line":88},[34,225615,225616],{"class":40},"// Breadcrumbs are automatically captured for:\n",[34,225618,225619],{"class":36,"line":242},[34,225620,225621],{"class":40},"// - console.log calls\n",[34,225623,225624],{"class":36,"line":250},[34,225625,225626],{"class":40},"// - HTTP requests\n",[34,225628,225629],{"class":36,"line":263},[34,225630,225631],{"class":40},"// - DOM events (browser)\n",[11,225633,225635],{"id":225634},"performance-tracing","Performance / Tracing",[25,225637,225639],{"className":111475,"code":225638,"language":111477,"meta":30,"style":30},"// Create a transaction\nconst transaction = Sentry.startTransaction({ name: 'process-order' });\n\nconst span = transaction.startChild({ op: 'db.query', description: 'fetch user' });\nawait db.query('SELECT ...');\nspan.finish();\n\ntransaction.finish();\n",[20,225640,225641,225646,225668,225672,225701,225716,225726,225730],{"__ignoreMap":30},[34,225642,225643],{"class":36,"line":37},[34,225644,225645],{"class":40},"// Create a transaction\n",[34,225647,225648,225650,225653,225655,225658,225661,225663,225666],{"class":36,"line":44},[34,225649,14676],{"class":580},[34,225651,225652],{"class":50}," transaction",[34,225654,683],{"class":580},[34,225656,225657],{"class":181}," Sentry.",[34,225659,225660],{"class":47},"startTransaction",[34,225662,14862],{"class":181},[34,225664,225665],{"class":54},"'process-order'",[34,225667,15567],{"class":181},[34,225669,225670],{"class":36,"line":58},[34,225671,62],{"emptyLinePlaceholder":61},[34,225673,225674,225676,225679,225681,225684,225687,225690,225693,225696,225699],{"class":36,"line":65},[34,225675,14676],{"class":580},[34,225677,225678],{"class":50}," span",[34,225680,683],{"class":580},[34,225682,225683],{"class":181}," transaction.",[34,225685,225686],{"class":47},"startChild",[34,225688,225689],{"class":181},"({ op: ",[34,225691,225692],{"class":54},"'db.query'",[34,225694,225695],{"class":181},", description: ",[34,225697,225698],{"class":54},"'fetch user'",[34,225700,15567],{"class":181},[34,225702,225703,225705,225707,225709,225711,225714],{"class":36,"line":71},[34,225704,15062],{"class":580},[34,225706,17083],{"class":181},[34,225708,171552],{"class":47},[34,225710,1607],{"class":181},[34,225712,225713],{"class":54},"'SELECT ...'",[34,225715,1586],{"class":181},[34,225717,225718,225721,225724],{"class":36,"line":77},[34,225719,225720],{"class":181},"span.",[34,225722,225723],{"class":47},"finish",[34,225725,851],{"class":181},[34,225727,225728],{"class":36,"line":82},[34,225729,62],{"emptyLinePlaceholder":61},[34,225731,225732,225735,225737],{"class":36,"line":88},[34,225733,225734],{"class":181},"transaction.",[34,225736,225723],{"class":47},[34,225738,851],{"class":181},[11,225740,225742],{"id":225741},"express-integration","Express Integration",[25,225744,225746],{"className":111475,"code":225745,"language":111477,"meta":30,"style":30},"import express from 'express';\nimport * as Sentry from '@sentry/node';\n\nconst app = express();\n\nSentry.init({ dsn: '...' });\n\n// Request handler (must be first middleware)\napp.use(Sentry.Handlers.requestHandler());\n\n// Routes\napp.get('/', (req, res) => res.send('Hello'));\n\n// Error handler (must be before other error handlers)\napp.use(Sentry.Handlers.errorHandler());\n",[20,225747,225748,225761,225777,225781,225793,225797,225811,225815,225820,225834,225838,225843,225875,225879,225884],{"__ignoreMap":30},[34,225749,225750,225752,225754,225756,225759],{"class":36,"line":37},[34,225751,581],{"class":580},[34,225753,47975],{"class":181},[34,225755,587],{"class":580},[34,225757,225758],{"class":54}," 'express'",[34,225760,593],{"class":181},[34,225762,225763,225765,225767,225769,225771,225773,225775],{"class":36,"line":44},[34,225764,581],{"class":580},[34,225766,18083],{"class":50},[34,225768,91551],{"class":580},[34,225770,225350],{"class":181},[34,225772,587],{"class":580},[34,225774,225355],{"class":54},[34,225776,593],{"class":181},[34,225778,225779],{"class":36,"line":58},[34,225780,62],{"emptyLinePlaceholder":61},[34,225782,225783,225785,225787,225789,225791],{"class":36,"line":65},[34,225784,14676],{"class":580},[34,225786,7253],{"class":50},[34,225788,683],{"class":580},[34,225790,75326],{"class":47},[34,225792,851],{"class":181},[34,225794,225795],{"class":36,"line":71},[34,225796,62],{"emptyLinePlaceholder":61},[34,225798,225799,225801,225803,225806,225809],{"class":36,"line":77},[34,225800,225366],{"class":181},[34,225802,37457],{"class":47},[34,225804,225805],{"class":181},"({ dsn: ",[34,225807,225808],{"class":54},"'...'",[34,225810,15567],{"class":181},[34,225812,225813],{"class":36,"line":82},[34,225814,62],{"emptyLinePlaceholder":61},[34,225816,225817],{"class":36,"line":88},[34,225818,225819],{"class":40},"// Request handler (must be first middleware)\n",[34,225821,225822,225824,225826,225829,225832],{"class":36,"line":242},[34,225823,75403],{"class":181},[34,225825,61898],{"class":47},[34,225827,225828],{"class":181},"(Sentry.Handlers.",[34,225830,225831],{"class":47},"requestHandler",[34,225833,4343],{"class":181},[34,225835,225836],{"class":36,"line":250},[34,225837,62],{"emptyLinePlaceholder":61},[34,225839,225840],{"class":36,"line":263},[34,225841,225842],{"class":40},"// Routes\n",[34,225844,225845,225847,225849,225851,225853,225855,225857,225859,225861,225863,225865,225867,225869,225871,225873],{"class":36,"line":275},[34,225846,75403],{"class":181},[34,225848,1573],{"class":47},[34,225850,1607],{"class":181},[34,225852,61825],{"class":54},[34,225854,75504],{"class":181},[34,225856,15452],{"class":675},[34,225858,1798],{"class":181},[34,225860,75511],{"class":675},[34,225862,4817],{"class":181},[34,225864,3361],{"class":580},[34,225866,75763],{"class":181},[34,225868,15746],{"class":47},[34,225870,1607],{"class":181},[34,225872,73720],{"class":54},[34,225874,15223],{"class":181},[34,225876,225877],{"class":36,"line":700},[34,225878,62],{"emptyLinePlaceholder":61},[34,225880,225881],{"class":36,"line":706},[34,225882,225883],{"class":40},"// Error handler (must be before other error handlers)\n",[34,225885,225886,225888,225890,225892,225895],{"class":36,"line":715},[34,225887,75403],{"class":181},[34,225889,61898],{"class":47},[34,225891,225828],{"class":181},[34,225893,225894],{"class":47},"errorHandler",[34,225896,4343],{"class":181},[11,225898,225900],{"id":225899},"source-maps","Source Maps",[25,225902,225904],{"className":27,"code":225903,"language":29,"meta":30,"style":30},"# Upload source maps via CLI\nnpx @sentry/cli releases files \u003Cversion> upload-sourcemaps ./dist\n\n# Or use sentry-webpack-plugin\nnpm install @sentry/webpack-plugin --save-dev\n",[20,225905,225906,225911,225937,225941,225946],{"__ignoreMap":30},[34,225907,225908],{"class":36,"line":37},[34,225909,225910],{"class":40},"# Upload source maps via CLI\n",[34,225912,225913,225915,225918,225921,225924,225926,225928,225930,225932,225935],{"class":36,"line":44},[34,225914,8205],{"class":47},[34,225916,225917],{"class":54}," @sentry/cli",[34,225919,225920],{"class":54}," releases",[34,225922,225923],{"class":54}," files",[34,225925,5470],{"class":580},[34,225927,6214],{"class":54},[34,225929,6217],{"class":181},[34,225931,5691],{"class":580},[34,225933,225934],{"class":54}," upload-sourcemaps",[34,225936,14181],{"class":54},[34,225938,225939],{"class":36,"line":58},[34,225940,62],{"emptyLinePlaceholder":61},[34,225942,225943],{"class":36,"line":65},[34,225944,225945],{"class":40},"# Or use sentry-webpack-plugin\n",[34,225947,225948,225950,225952,225955],{"class":36,"line":71},[34,225949,8177],{"class":47},[34,225951,118],{"class":54},[34,225953,225954],{"class":54}," @sentry/webpack-plugin",[34,225956,8192],{"class":50},[388,225958,225959],{},"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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":30,"searchDepth":44,"depth":44,"links":225961},[225962,225963,225964,225965,225966,225967,225968],{"id":96,"depth":44,"text":97},{"id":225333,"depth":44,"text":225334},{"id":225414,"depth":44,"text":225415},{"id":225555,"depth":44,"text":225556},{"id":225634,"depth":44,"text":225635},{"id":225741,"depth":44,"text":225742},{"id":225899,"depth":44,"text":225900},"Application monitoring and error tracking for frontend and backend applications.",{},"/sentry/overview",{"title":225273,"description":225969},"sentry/overview","sentry",[225974,225976,14143,8606,46694],"error-tracking","K9sQ5Lc94pl38smPIa2dqp2CMQlz1uvm5KRHNDPtkPE",{"id":225979,"title":225980,"body":225981,"date":402,"description":226368,"extension":404,"meta":226369,"navigation":61,"order":37,"path":226370,"seo":226371,"stem":226372,"subject":226373,"tags":226374,"__hash__":226377},"topics/shadcn/overview.md","shadcn/ui",{"type":8,"value":225982,"toc":226355},[225983,225985,225988,226055,226060,226062,226066,226069,226080,226084,226087,226154,226158,226161,226169,226184,226186,226189,226197,226200,226275,226279,226282,226290,226315,226319,226322,226333,226336,226339,226347,226349,226352],[11,225984,14],{"id":13},[16,225986,225987],{},"shadcn/ui is a set of beautifully designed, accessible components and a platform for building your component library. Unlike traditional libraries, it provides a full open-code approach for customization.",[25,225989,225991],{"className":198744,"code":225990,"language":198746,"meta":30,"style":30},"// Importing shadcn/button component\nimport { Button } from \"@shadcn/ui/button\";\n\nexport default function App() {\n  return \u003CButton variant=\"primary\">Click Me\u003C/Button>;\n}\n",[20,225992,225993,225998,226012,226016,226028,226051],{"__ignoreMap":30},[34,225994,225995],{"class":36,"line":37},[34,225996,225997],{"class":40},"// Importing shadcn/button component\n",[34,225999,226000,226002,226005,226007,226010],{"class":36,"line":44},[34,226001,581],{"class":580},[34,226003,226004],{"class":181}," { Button } ",[34,226006,587],{"class":580},[34,226008,226009],{"class":54}," \"@shadcn/ui/button\"",[34,226011,593],{"class":181},[34,226013,226014],{"class":36,"line":58},[34,226015,62],{"emptyLinePlaceholder":61},[34,226017,226018,226020,226022,226024,226026],{"class":36,"line":65},[34,226019,652],{"class":580},[34,226021,7298],{"class":580},[34,226023,8037],{"class":580},[34,226025,202507],{"class":47},[34,226027,836],{"class":181},[34,226029,226030,226032,226034,226037,226039,226041,226044,226047,226049],{"class":36,"line":71},[34,226031,8155],{"class":580},[34,226033,5470],{"class":181},[34,226035,226036],{"class":50},"Button",[34,226038,161435],{"class":47},[34,226040,1301],{"class":580},[34,226042,226043],{"class":54},"\"primary\"",[34,226045,226046],{"class":181},">Click Me\u003C/",[34,226048,226036],{"class":50},[34,226050,4834],{"class":181},[34,226052,226053],{"class":36,"line":77},[34,226054,693],{"class":181},[16,226056,226057],{},[8563,226058,226059],{},"Above: Example usage of the shadcn/ui Button component in React.",[11,226061,8498],{"id":8497},[102,226063,226065],{"id":226064},"open-code","Open Code",[16,226067,226068],{},"All components come with source code, so you can easily:",[309,226070,226071,226074,226077],{},[312,226072,226073],{},"Modify component styles",[312,226075,226076],{},"Change implementation logic",[312,226078,226079],{},"Integrate with your design system",[102,226081,226083],{"id":226082},"composition","Composition",[16,226085,226086],{},"Consistent, predictable APIs make it simple to compose complex UIs.",[25,226088,226090],{"className":198744,"code":226089,"language":198746,"meta":30,"style":30},"import { Card, CardHeader, CardBody } from \"@shadcn/ui/card\";\n\n\u003CCard>\n  \u003CCardHeader>Title\u003C/CardHeader>\n  \u003CCardBody>Content goes here...\u003C/CardBody>\n\u003C/Card>\n",[20,226091,226092,226106,226110,226118,226132,226146],{"__ignoreMap":30},[34,226093,226094,226096,226099,226101,226104],{"class":36,"line":37},[34,226095,581],{"class":580},[34,226097,226098],{"class":181}," { Card, CardHeader, CardBody } ",[34,226100,587],{"class":580},[34,226102,226103],{"class":54}," \"@shadcn/ui/card\"",[34,226105,593],{"class":181},[34,226107,226108],{"class":36,"line":44},[34,226109,62],{"emptyLinePlaceholder":61},[34,226111,226112,226114,226116],{"class":36,"line":58},[34,226113,815],{"class":181},[34,226115,59968],{"class":50},[34,226117,1248],{"class":181},[34,226119,226120,226122,226125,226128,226130],{"class":36,"line":65},[34,226121,1181],{"class":181},[34,226123,226124],{"class":50},"CardHeader",[34,226126,226127],{"class":181},">Title\u003C/",[34,226129,226124],{"class":50},[34,226131,1248],{"class":181},[34,226133,226134,226136,226139,226142,226144],{"class":36,"line":71},[34,226135,1181],{"class":181},[34,226137,226138],{"class":50},"CardBody",[34,226140,226141],{"class":181},">Content goes here...\u003C/",[34,226143,226138],{"class":50},[34,226145,1248],{"class":181},[34,226147,226148,226150,226152],{"class":36,"line":77},[34,226149,2089],{"class":181},[34,226151,59968],{"class":50},[34,226153,1248],{"class":181},[102,226155,226157],{"id":226156},"distribution","Distribution",[16,226159,226160],{},"The CLI makes it easy to:",[309,226162,226163,226166],{},[312,226164,226165],{},"Install components",[312,226167,226168],{},"Share your component library with others",[25,226170,226172],{"className":27,"code":226171,"language":29,"meta":30,"style":30},"shadcn-ui install button\n",[20,226173,226174],{"__ignoreMap":30},[34,226175,226176,226179,226181],{"class":36,"line":37},[34,226177,226178],{"class":47},"shadcn-ui",[34,226180,118],{"class":54},[34,226182,226183],{"class":54}," button\n",[11,226185,198706],{"id":198705},[16,226187,226188],{},"shadcn/ui adheres to ARIA standards and ensures components are:",[309,226190,226191,226194],{},[312,226192,226193],{},"Keyboard navigable",[312,226195,226196],{},"Accessible to screen readers",[16,226198,226199],{},"Example of accessibility in the Dialog component:",[25,226201,226203],{"className":198744,"code":226202,"language":198746,"meta":30,"style":30},"import { Dialog } from \"@shadcn/ui/dialog\";\n\n\u003CDialog>\n  \u003CDialog.Trigger>Open\u003C/Dialog.Trigger>\n  \u003CDialog.Content>\n     Accessible dialog content here.\n  \u003C/Dialog.Content>\n\u003C/Dialog>\n",[20,226204,226205,226219,226223,226231,226245,226254,226259,226267],{"__ignoreMap":30},[34,226206,226207,226209,226212,226214,226217],{"class":36,"line":37},[34,226208,581],{"class":580},[34,226210,226211],{"class":181}," { Dialog } ",[34,226213,587],{"class":580},[34,226215,226216],{"class":54}," \"@shadcn/ui/dialog\"",[34,226218,593],{"class":181},[34,226220,226221],{"class":36,"line":44},[34,226222,62],{"emptyLinePlaceholder":61},[34,226224,226225,226227,226229],{"class":36,"line":58},[34,226226,815],{"class":181},[34,226228,198800],{"class":50},[34,226230,1248],{"class":181},[34,226232,226233,226235,226238,226241,226243],{"class":36,"line":65},[34,226234,1181],{"class":181},[34,226236,226237],{"class":50},"Dialog.Trigger",[34,226239,226240],{"class":181},">Open\u003C/",[34,226242,226237],{"class":50},[34,226244,1248],{"class":181},[34,226246,226247,226249,226252],{"class":36,"line":71},[34,226248,1181],{"class":181},[34,226250,226251],{"class":50},"Dialog.Content",[34,226253,1248],{"class":181},[34,226255,226256],{"class":36,"line":77},[34,226257,226258],{"class":181},"     Accessible dialog content here.\n",[34,226260,226261,226263,226265],{"class":36,"line":82},[34,226262,8547],{"class":181},[34,226264,226251],{"class":50},[34,226266,1248],{"class":181},[34,226268,226269,226271,226273],{"class":36,"line":88},[34,226270,2089],{"class":181},[34,226272,198800],{"class":50},[34,226274,1248],{"class":181},[11,226276,226278],{"id":226277},"default-styling","Default Styling",[16,226280,226281],{},"Components include:",[309,226283,226284,226287],{},[312,226285,226286],{},"Minimal design principles",[312,226288,226289],{},"Easily editable CSS variables",[25,226291,226293],{"className":38192,"code":226292,"language":38194,"meta":30,"style":30},"/* Example CSS tokens */\n--shadcn-space-small: 8px;\n--shadcn-color-primary: #0070f3;\n",[20,226294,226295,226300,226305],{"__ignoreMap":30},[34,226296,226297],{"class":36,"line":37},[34,226298,226299],{"class":40},"/* Example CSS tokens */\n",[34,226301,226302],{"class":36,"line":44},[34,226303,226304],{"class":181},"--shadcn-space-small: 8px;\n",[34,226306,226307,226310,226313],{"class":36,"line":58},[34,226308,226309],{"class":181},"--shadcn-color-primary: ",[34,226311,226312],{"class":24316},"#0070f3",[34,226314,593],{"class":181},[11,226316,226318],{"id":226317},"design-system-integration","Design System Integration",[16,226320,226321],{},"shadcn/ui lets you pull updates to your customized components, ensuring consistency as upstream updates roll in.",[25,226323,226325],{"className":27,"code":226324,"language":29,"meta":30,"style":30},"shadcn-ui sync\n",[20,226326,226327],{"__ignoreMap":30},[34,226328,226329,226331],{"class":36,"line":37},[34,226330,226178],{"class":47},[34,226332,99546],{"class":54},[11,226334,226335],{"id":8004},"Versioning",[16,226337,226338],{},"shadcn/ui uses SemVer, so breaking changes are predictable:",[309,226340,226341,226344],{},[312,226342,226343],{},"Major versions indicate incompatible changes",[312,226345,226346],{},"Minor versions update features",[11,226348,120374],{"id":120373},[16,226350,226351],{},"shadcn/ui is an ideal solution for teams looking for a powerful and customizable way to build consistent design systems.",[388,226353,226354],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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);}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":30,"searchDepth":44,"depth":44,"links":226356},[226357,226358,226363,226364,226365,226366,226367],{"id":13,"depth":44,"text":14},{"id":8497,"depth":44,"text":8498,"children":226359},[226360,226361,226362],{"id":226064,"depth":58,"text":226065},{"id":226082,"depth":58,"text":226083},{"id":226156,"depth":58,"text":226157},{"id":198705,"depth":44,"text":198706},{"id":226277,"depth":44,"text":226278},{"id":226317,"depth":44,"text":226318},{"id":8004,"depth":44,"text":226335},{"id":120373,"depth":44,"text":120374},"Quick reference for using shadcn/ui components with open-code, composition, and distribution.",{},"/shadcn/overview",{"title":225980,"description":226368},"shadcn/overview","shadcn",[226375,130077,982,226064,226376],"ui","design-system","tvU5M47Fe2sCXtOr_kDMnt8V03WJV6tC8HEPnV4gtN8",{"id":226379,"title":226380,"body":226381,"date":402,"description":226577,"extension":404,"meta":226578,"navigation":61,"order":44,"path":226579,"seo":226580,"stem":226581,"subject":226582,"tags":226583,"__hash__":226584},"topics/solid/1-single-responsibility-principle-srp.md","1. Single Responsibility Principle (SRP)",{"type":8,"value":226382,"toc":226574},[226383,226386,226389,226572],[11,226384,226380],{"id":226385},"_1-single-responsibility-principle-srp",[16,226387,226388],{},"A class should have only one reason to change.",[25,226390,226392],{"className":571,"code":226391,"language":573,"meta":30,"style":30},"// ❌ Bad - multiple responsibilities\nclass User {\n  saveToDatabase() { /* ... */ }\n  sendEmail() { /* ... */ }\n  generateReport() { /* ... */ }\n}\n\n// ✅ Good - single responsibility\nclass User {\n  constructor(public name: string, public email: string) {}\n}\n\nclass UserRepository {\n  save(user: User) { /* ... */ }\n}\n\nclass EmailService {\n  send(to: string, message: string) { /* ... */ }\n}\n",[20,226393,226394,226399,226407,226418,226429,226440,226444,226448,226453,226461,226488,226492,226496,226505,226524,226528,226532,226541,226568],{"__ignoreMap":30},[34,226395,226396],{"class":36,"line":37},[34,226397,226398],{"class":40},"// ❌ Bad - multiple responsibilities\n",[34,226400,226401,226403,226405],{"class":36,"line":44},[34,226402,30060],{"class":580},[34,226404,3950],{"class":47},[34,226406,661],{"class":181},[34,226408,226409,226412,226414,226416],{"class":36,"line":58},[34,226410,226411],{"class":47},"  saveToDatabase",[34,226413,73419],{"class":181},[34,226415,70495],{"class":40},[34,226417,52786],{"class":181},[34,226419,226420,226423,226425,226427],{"class":36,"line":65},[34,226421,226422],{"class":47},"  sendEmail",[34,226424,73419],{"class":181},[34,226426,70495],{"class":40},[34,226428,52786],{"class":181},[34,226430,226431,226434,226436,226438],{"class":36,"line":71},[34,226432,226433],{"class":47},"  generateReport",[34,226435,73419],{"class":181},[34,226437,70495],{"class":40},[34,226439,52786],{"class":181},[34,226441,226442],{"class":36,"line":77},[34,226443,693],{"class":181},[34,226445,226446],{"class":36,"line":82},[34,226447,62],{"emptyLinePlaceholder":61},[34,226449,226450],{"class":36,"line":88},[34,226451,226452],{"class":40},"// ✅ Good - single responsibility\n",[34,226454,226455,226457,226459],{"class":36,"line":242},[34,226456,30060],{"class":580},[34,226458,3950],{"class":47},[34,226460,661],{"class":181},[34,226462,226463,226465,226467,226469,226471,226473,226475,226477,226479,226482,226484,226486],{"class":36,"line":250},[34,226464,4303],{"class":580},[34,226466,1607],{"class":181},[34,226468,31583],{"class":580},[34,226470,12323],{"class":675},[34,226472,165],{"class":580},[34,226474,680],{"class":50},[34,226476,1798],{"class":181},[34,226478,31583],{"class":580},[34,226480,226481],{"class":675}," email",[34,226483,165],{"class":580},[34,226485,680],{"class":50},[34,226487,59124],{"class":181},[34,226489,226490],{"class":36,"line":263},[34,226491,693],{"class":181},[34,226493,226494],{"class":36,"line":275},[34,226495,62],{"emptyLinePlaceholder":61},[34,226497,226498,226500,226503],{"class":36,"line":700},[34,226499,30060],{"class":580},[34,226501,226502],{"class":47}," UserRepository",[34,226504,661],{"class":181},[34,226506,226507,226510,226512,226514,226516,226518,226520,226522],{"class":36,"line":706},[34,226508,226509],{"class":47},"  save",[34,226511,1607],{"class":181},[34,226513,3945],{"class":675},[34,226515,165],{"class":580},[34,226517,3950],{"class":47},[34,226519,31392],{"class":181},[34,226521,70495],{"class":40},[34,226523,52786],{"class":181},[34,226525,226526],{"class":36,"line":715},[34,226527,693],{"class":181},[34,226529,226530],{"class":36,"line":725},[34,226531,62],{"emptyLinePlaceholder":61},[34,226533,226534,226536,226539],{"class":36,"line":734},[34,226535,30060],{"class":580},[34,226537,226538],{"class":47}," EmailService",[34,226540,661],{"class":181},[34,226542,226543,226546,226548,226550,226552,226554,226556,226558,226560,226562,226564,226566],{"class":36,"line":742},[34,226544,226545],{"class":47},"  send",[34,226547,1607],{"class":181},[34,226549,38916],{"class":675},[34,226551,165],{"class":580},[34,226553,680],{"class":50},[34,226555,1798],{"class":181},[34,226557,15736],{"class":675},[34,226559,165],{"class":580},[34,226561,680],{"class":50},[34,226563,31392],{"class":181},[34,226565,70495],{"class":40},[34,226567,52786],{"class":181},[34,226569,226570],{"class":36,"line":748},[34,226571,693],{"class":181},[388,226573,60244],{},{"title":30,"searchDepth":44,"depth":44,"links":226575},[226576],{"id":226385,"depth":44,"text":226380},"1. Single Responsibility Principle (SRP) in SOLID Principles.",{},"/solid/1-single-responsibility-principle-srp",{"title":226380,"description":226577},"solid/1-single-responsibility-principle-srp","solid",[226582,30041,73826,58893,5600],"EydfL1oUSS4a1-VFTiaSRgE4FpdlL3qFT7_isPSi9c4",{"id":226586,"title":226587,"body":226588,"date":402,"description":226954,"extension":404,"meta":226955,"navigation":61,"order":58,"path":226956,"seo":226957,"stem":226958,"subject":226582,"tags":226959,"__hash__":226960},"topics/solid/2-openclosed-principle-ocp.md","2. Open/Closed Principle (OCP)",{"type":8,"value":226589,"toc":226951},[226590,226593,226596,226949],[11,226591,226587],{"id":226592},"_2-openclosed-principle-ocp",[16,226594,226595],{},"Software entities should be open for extension but closed for modification.",[25,226597,226599],{"className":571,"code":226598,"language":573,"meta":30,"style":30},"// ❌ Bad - modifying existing code for new shapes\nclass AreaCalculator {\n  calculate(shape: any) {\n    if (shape.type === 'circle') {\n      return Math.PI * shape.radius ** 2;\n    } else if (shape.type === 'rectangle') {\n      return shape.width * shape.height;\n    }\n    // Need to modify this for every new shape\n  }\n}\n\n// ✅ Good - extend without modifying\ninterface Shape {\n  area(): number;\n}\n\nclass Circle implements Shape {\n  constructor(private radius: number) {}\n  area() { return Math.PI * this.radius ** 2; }\n}\n\nclass Rectangle implements Shape {\n  constructor(private width: number, private height: number) {}\n  area() { return this.width * this.height; }\n}\n\n// New shapes don't require modifying existing code\nclass Triangle implements Shape {\n  constructor(private base: number, private height: number) {}\n  area() { return 0.5 * this.base * this.height; }\n}\n",[20,226600,226601,226606,226615,226631,226645,226664,226681,226693,226697,226702,226706,226710,226714,226719,226727,226740,226744,226748,226760,226777,226802,226806,226810,226822,226848,226868,226872,226876,226881,226894,226921,226945],{"__ignoreMap":30},[34,226602,226603],{"class":36,"line":37},[34,226604,226605],{"class":40},"// ❌ Bad - modifying existing code for new shapes\n",[34,226607,226608,226610,226613],{"class":36,"line":44},[34,226609,30060],{"class":580},[34,226611,226612],{"class":47}," AreaCalculator",[34,226614,661],{"class":181},[34,226616,226617,226620,226622,226625,226627,226629],{"class":36,"line":58},[34,226618,226619],{"class":47},"  calculate",[34,226621,1607],{"class":181},[34,226623,226624],{"class":675},"shape",[34,226626,165],{"class":580},[34,226628,69686],{"class":50},[34,226630,2416],{"class":181},[34,226632,226633,226635,226638,226640,226643],{"class":36,"line":65},[34,226634,2902],{"class":580},[34,226636,226637],{"class":181}," (shape.type ",[34,226639,15543],{"class":580},[34,226641,226642],{"class":54}," 'circle'",[34,226644,2416],{"class":181},[34,226646,226647,226649,226651,226653,226655,226658,226660,226662],{"class":36,"line":71},[34,226648,15553],{"class":580},[34,226650,13917],{"class":181},[34,226652,195503],{"class":50},[34,226654,18083],{"class":580},[34,226656,226657],{"class":181}," shape.radius ",[34,226659,23469],{"class":580},[34,226661,4292],{"class":50},[34,226663,593],{"class":181},[34,226665,226666,226668,226670,226672,226674,226676,226679],{"class":36,"line":77},[34,226667,63191],{"class":181},[34,226669,18871],{"class":580},[34,226671,18874],{"class":580},[34,226673,226637],{"class":181},[34,226675,15543],{"class":580},[34,226677,226678],{"class":54}," 'rectangle'",[34,226680,2416],{"class":181},[34,226682,226683,226685,226688,226690],{"class":36,"line":82},[34,226684,15553],{"class":580},[34,226686,226687],{"class":181}," shape.width ",[34,226689,4289],{"class":580},[34,226691,226692],{"class":181}," shape.height;\n",[34,226694,226695],{"class":36,"line":88},[34,226696,3229],{"class":181},[34,226698,226699],{"class":36,"line":242},[34,226700,226701],{"class":40},"    // Need to modify this for every new shape\n",[34,226703,226704],{"class":36,"line":250},[34,226705,857],{"class":181},[34,226707,226708],{"class":36,"line":263},[34,226709,693],{"class":181},[34,226711,226712],{"class":36,"line":275},[34,226713,62],{"emptyLinePlaceholder":61},[34,226715,226716],{"class":36,"line":700},[34,226717,226718],{"class":40},"// ✅ Good - extend without modifying\n",[34,226720,226721,226723,226725],{"class":36,"line":706},[34,226722,17562],{"class":580},[34,226724,106427],{"class":47},[34,226726,661],{"class":181},[34,226728,226729,226732,226734,226736,226738],{"class":36,"line":715},[34,226730,226731],{"class":47},"  area",[34,226733,1546],{"class":181},[34,226735,165],{"class":580},[34,226737,2741],{"class":50},[34,226739,593],{"class":181},[34,226741,226742],{"class":36,"line":725},[34,226743,693],{"class":181},[34,226745,226746],{"class":36,"line":734},[34,226747,62],{"emptyLinePlaceholder":61},[34,226749,226750,226752,226754,226756,226758],{"class":36,"line":742},[34,226751,30060],{"class":580},[34,226753,36146],{"class":47},[34,226755,2334],{"class":580},[34,226757,106427],{"class":47},[34,226759,661],{"class":181},[34,226761,226762,226764,226766,226768,226771,226773,226775],{"class":36,"line":748},[34,226763,4303],{"class":580},[34,226765,1607],{"class":181},[34,226767,71922],{"class":580},[34,226769,226770],{"class":675}," radius",[34,226772,165],{"class":580},[34,226774,2741],{"class":50},[34,226776,59124],{"class":181},[34,226778,226779,226781,226783,226785,226787,226789,226791,226793,226796,226798,226800],{"class":36,"line":754},[34,226780,226731],{"class":47},[34,226782,73419],{"class":181},[34,226784,2917],{"class":580},[34,226786,13917],{"class":181},[34,226788,195503],{"class":50},[34,226790,18083],{"class":580},[34,226792,1567],{"class":50},[34,226794,226795],{"class":181},".radius ",[34,226797,23469],{"class":580},[34,226799,4292],{"class":50},[34,226801,34238],{"class":181},[34,226803,226804],{"class":36,"line":759},[34,226805,693],{"class":181},[34,226807,226808],{"class":36,"line":771},[34,226809,62],{"emptyLinePlaceholder":61},[34,226811,226812,226814,226816,226818,226820],{"class":36,"line":794},[34,226813,30060],{"class":580},[34,226815,107382],{"class":47},[34,226817,2334],{"class":580},[34,226819,106427],{"class":47},[34,226821,661],{"class":181},[34,226823,226824,226826,226828,226830,226832,226834,226836,226838,226840,226842,226844,226846],{"class":36,"line":824},[34,226825,4303],{"class":580},[34,226827,1607],{"class":181},[34,226829,71922],{"class":580},[34,226831,86115],{"class":675},[34,226833,165],{"class":580},[34,226835,2741],{"class":50},[34,226837,1798],{"class":181},[34,226839,71922],{"class":580},[34,226841,117094],{"class":675},[34,226843,165],{"class":580},[34,226845,2741],{"class":50},[34,226847,59124],{"class":181},[34,226849,226850,226852,226854,226856,226858,226861,226863,226865],{"class":36,"line":830},[34,226851,226731],{"class":47},[34,226853,73419],{"class":181},[34,226855,2917],{"class":580},[34,226857,1567],{"class":50},[34,226859,226860],{"class":181},".width ",[34,226862,4289],{"class":580},[34,226864,1567],{"class":50},[34,226866,226867],{"class":181},".height; }\n",[34,226869,226870],{"class":36,"line":839},[34,226871,693],{"class":181},[34,226873,226874],{"class":36,"line":854},[34,226875,62],{"emptyLinePlaceholder":61},[34,226877,226878],{"class":36,"line":860},[34,226879,226880],{"class":40},"// New shapes don't require modifying existing code\n",[34,226882,226883,226885,226888,226890,226892],{"class":36,"line":865},[34,226884,30060],{"class":580},[34,226886,226887],{"class":47}," Triangle",[34,226889,2334],{"class":580},[34,226891,106427],{"class":47},[34,226893,661],{"class":181},[34,226895,226896,226898,226900,226902,226905,226907,226909,226911,226913,226915,226917,226919],{"class":36,"line":870},[34,226897,4303],{"class":580},[34,226899,1607],{"class":181},[34,226901,71922],{"class":580},[34,226903,226904],{"class":675}," base",[34,226906,165],{"class":580},[34,226908,2741],{"class":50},[34,226910,1798],{"class":181},[34,226912,71922],{"class":580},[34,226914,117094],{"class":675},[34,226916,165],{"class":580},[34,226918,2741],{"class":50},[34,226920,59124],{"class":181},[34,226922,226923,226925,226927,226929,226932,226934,226936,226939,226941,226943],{"class":36,"line":876},[34,226924,226731],{"class":47},[34,226926,73419],{"class":181},[34,226928,2917],{"class":580},[34,226930,226931],{"class":50}," 0.5",[34,226933,18083],{"class":580},[34,226935,1567],{"class":50},[34,226937,226938],{"class":181},".base ",[34,226940,4289],{"class":580},[34,226942,1567],{"class":50},[34,226944,226867],{"class":181},[34,226946,226947],{"class":36,"line":885},[34,226948,693],{"class":181},[388,226950,17665],{},{"title":30,"searchDepth":44,"depth":44,"links":226952},[226953],{"id":226592,"depth":44,"text":226587},"2. Open/Closed Principle (OCP) in SOLID Principles.",{},"/solid/2-openclosed-principle-ocp",{"title":226587,"description":226954},"solid/2-openclosed-principle-ocp",[226582,30041,73826,58893,5600],"R866bZon37ZQHfUw64TmuZO6N8jyQAeBdLQVSD2L9SQ",{"id":226962,"title":226963,"body":226964,"date":402,"description":227327,"extension":404,"meta":227328,"navigation":61,"order":65,"path":227329,"seo":227330,"stem":227331,"subject":226582,"tags":227332,"__hash__":227333},"topics/solid/3-liskov-substitution-principle-lsp.md","3. Liskov Substitution Principle (LSP)",{"type":8,"value":226965,"toc":227324},[226966,226969,226972,227322],[11,226967,226963],{"id":226968},"_3-liskov-substitution-principle-lsp",[16,226970,226971],{},"Subtypes must be substitutable for their base types without altering program correctness.",[25,226973,226975],{"className":571,"code":226974,"language":573,"meta":30,"style":30},"// ❌ Bad - Square violates LSP for Rectangle\nclass Rectangle {\n  constructor(protected width: number, protected height: number) {}\n  setWidth(w: number) { this.width = w; }\n  setHeight(h: number) { this.height = h; }\n  area() { return this.width * this.height; }\n}\n\nclass Square extends Rectangle {\n  setWidth(w: number) { this.width = this.height = w; } // Unexpected behavior\n  setHeight(h: number) { this.width = this.height = h; }\n}\n\n// ✅ Good - use composition or separate abstractions\ninterface Shape {\n  area(): number;\n}\n\nclass Rectangle implements Shape {\n  constructor(private width: number, private height: number) {}\n  area() { return this.width * this.height; }\n}\n\nclass Square implements Shape {\n  constructor(private side: number) {}\n  area() { return this.side ** 2; }\n}\n",[20,226976,226977,226982,226990,227017,227041,227066,227084,227088,227092,227105,227137,227165,227169,227173,227178,227186,227198,227202,227206,227218,227244,227262,227266,227270,227282,227299,227318],{"__ignoreMap":30},[34,226978,226979],{"class":36,"line":37},[34,226980,226981],{"class":40},"// ❌ Bad - Square violates LSP for Rectangle\n",[34,226983,226984,226986,226988],{"class":36,"line":44},[34,226985,30060],{"class":580},[34,226987,107382],{"class":47},[34,226989,661],{"class":181},[34,226991,226992,226994,226996,226999,227001,227003,227005,227007,227009,227011,227013,227015],{"class":36,"line":58},[34,226993,4303],{"class":580},[34,226995,1607],{"class":181},[34,226997,226998],{"class":580},"protected",[34,227000,86115],{"class":675},[34,227002,165],{"class":580},[34,227004,2741],{"class":50},[34,227006,1798],{"class":181},[34,227008,226998],{"class":580},[34,227010,117094],{"class":675},[34,227012,165],{"class":580},[34,227014,2741],{"class":50},[34,227016,59124],{"class":181},[34,227018,227019,227022,227024,227026,227028,227030,227032,227034,227036,227038],{"class":36,"line":65},[34,227020,227021],{"class":47},"  setWidth",[34,227023,1607],{"class":181},[34,227025,100897],{"class":675},[34,227027,165],{"class":580},[34,227029,2741],{"class":50},[34,227031,31392],{"class":181},[34,227033,3207],{"class":50},[34,227035,226860],{"class":181},[34,227037,1301],{"class":580},[34,227039,227040],{"class":181}," w; }\n",[34,227042,227043,227046,227048,227050,227052,227054,227056,227058,227061,227063],{"class":36,"line":71},[34,227044,227045],{"class":47},"  setHeight",[34,227047,1607],{"class":181},[34,227049,100801],{"class":675},[34,227051,165],{"class":580},[34,227053,2741],{"class":50},[34,227055,31392],{"class":181},[34,227057,3207],{"class":50},[34,227059,227060],{"class":181},".height ",[34,227062,1301],{"class":580},[34,227064,227065],{"class":181}," h; }\n",[34,227067,227068,227070,227072,227074,227076,227078,227080,227082],{"class":36,"line":77},[34,227069,226731],{"class":47},[34,227071,73419],{"class":181},[34,227073,2917],{"class":580},[34,227075,1567],{"class":50},[34,227077,226860],{"class":181},[34,227079,4289],{"class":580},[34,227081,1567],{"class":50},[34,227083,226867],{"class":181},[34,227085,227086],{"class":36,"line":82},[34,227087,693],{"class":181},[34,227089,227090],{"class":36,"line":88},[34,227091,62],{"emptyLinePlaceholder":61},[34,227093,227094,227096,227099,227101,227103],{"class":36,"line":242},[34,227095,30060],{"class":580},[34,227097,227098],{"class":47}," Square",[34,227100,59185],{"class":580},[34,227102,107382],{"class":47},[34,227104,661],{"class":181},[34,227106,227107,227109,227111,227113,227115,227117,227119,227121,227123,227125,227127,227129,227131,227134],{"class":36,"line":250},[34,227108,227021],{"class":47},[34,227110,1607],{"class":181},[34,227112,100897],{"class":675},[34,227114,165],{"class":580},[34,227116,2741],{"class":50},[34,227118,31392],{"class":181},[34,227120,3207],{"class":50},[34,227122,226860],{"class":181},[34,227124,1301],{"class":580},[34,227126,1567],{"class":50},[34,227128,227060],{"class":181},[34,227130,1301],{"class":580},[34,227132,227133],{"class":181}," w; } ",[34,227135,227136],{"class":40},"// Unexpected behavior\n",[34,227138,227139,227141,227143,227145,227147,227149,227151,227153,227155,227157,227159,227161,227163],{"class":36,"line":263},[34,227140,227045],{"class":47},[34,227142,1607],{"class":181},[34,227144,100801],{"class":675},[34,227146,165],{"class":580},[34,227148,2741],{"class":50},[34,227150,31392],{"class":181},[34,227152,3207],{"class":50},[34,227154,226860],{"class":181},[34,227156,1301],{"class":580},[34,227158,1567],{"class":50},[34,227160,227060],{"class":181},[34,227162,1301],{"class":580},[34,227164,227065],{"class":181},[34,227166,227167],{"class":36,"line":275},[34,227168,693],{"class":181},[34,227170,227171],{"class":36,"line":700},[34,227172,62],{"emptyLinePlaceholder":61},[34,227174,227175],{"class":36,"line":706},[34,227176,227177],{"class":40},"// ✅ Good - use composition or separate abstractions\n",[34,227179,227180,227182,227184],{"class":36,"line":715},[34,227181,17562],{"class":580},[34,227183,106427],{"class":47},[34,227185,661],{"class":181},[34,227187,227188,227190,227192,227194,227196],{"class":36,"line":725},[34,227189,226731],{"class":47},[34,227191,1546],{"class":181},[34,227193,165],{"class":580},[34,227195,2741],{"class":50},[34,227197,593],{"class":181},[34,227199,227200],{"class":36,"line":734},[34,227201,693],{"class":181},[34,227203,227204],{"class":36,"line":742},[34,227205,62],{"emptyLinePlaceholder":61},[34,227207,227208,227210,227212,227214,227216],{"class":36,"line":748},[34,227209,30060],{"class":580},[34,227211,107382],{"class":47},[34,227213,2334],{"class":580},[34,227215,106427],{"class":47},[34,227217,661],{"class":181},[34,227219,227220,227222,227224,227226,227228,227230,227232,227234,227236,227238,227240,227242],{"class":36,"line":754},[34,227221,4303],{"class":580},[34,227223,1607],{"class":181},[34,227225,71922],{"class":580},[34,227227,86115],{"class":675},[34,227229,165],{"class":580},[34,227231,2741],{"class":50},[34,227233,1798],{"class":181},[34,227235,71922],{"class":580},[34,227237,117094],{"class":675},[34,227239,165],{"class":580},[34,227241,2741],{"class":50},[34,227243,59124],{"class":181},[34,227245,227246,227248,227250,227252,227254,227256,227258,227260],{"class":36,"line":759},[34,227247,226731],{"class":47},[34,227249,73419],{"class":181},[34,227251,2917],{"class":580},[34,227253,1567],{"class":50},[34,227255,226860],{"class":181},[34,227257,4289],{"class":580},[34,227259,1567],{"class":50},[34,227261,226867],{"class":181},[34,227263,227264],{"class":36,"line":771},[34,227265,693],{"class":181},[34,227267,227268],{"class":36,"line":794},[34,227269,62],{"emptyLinePlaceholder":61},[34,227271,227272,227274,227276,227278,227280],{"class":36,"line":824},[34,227273,30060],{"class":580},[34,227275,227098],{"class":47},[34,227277,2334],{"class":580},[34,227279,106427],{"class":47},[34,227281,661],{"class":181},[34,227283,227284,227286,227288,227290,227293,227295,227297],{"class":36,"line":830},[34,227285,4303],{"class":580},[34,227287,1607],{"class":181},[34,227289,71922],{"class":580},[34,227291,227292],{"class":675}," side",[34,227294,165],{"class":580},[34,227296,2741],{"class":50},[34,227298,59124],{"class":181},[34,227300,227301,227303,227305,227307,227309,227312,227314,227316],{"class":36,"line":839},[34,227302,226731],{"class":47},[34,227304,73419],{"class":181},[34,227306,2917],{"class":580},[34,227308,1567],{"class":50},[34,227310,227311],{"class":181},".side ",[34,227313,23469],{"class":580},[34,227315,4292],{"class":50},[34,227317,34238],{"class":181},[34,227319,227320],{"class":36,"line":854},[34,227321,693],{"class":181},[388,227323,60244],{},{"title":30,"searchDepth":44,"depth":44,"links":227325},[227326],{"id":226968,"depth":44,"text":226963},"3. Liskov Substitution Principle (LSP) in SOLID Principles.",{},"/solid/3-liskov-substitution-principle-lsp",{"title":226963,"description":227327},"solid/3-liskov-substitution-principle-lsp",[226582,30041,73826,58893,5600],"ciLPnZW8hX4qhecUWyfMV_JYhtvpJw56d0DYTn7ig-c",{"id":227335,"title":227336,"body":227337,"date":402,"description":227665,"extension":404,"meta":227666,"navigation":61,"order":71,"path":227667,"seo":227668,"stem":227669,"subject":226582,"tags":227670,"__hash__":227671},"topics/solid/4-interface-segregation-principle-isp.md","4. Interface Segregation Principle (ISP)",{"type":8,"value":227338,"toc":227662},[227339,227342,227345,227660],[11,227340,227336],{"id":227341},"_4-interface-segregation-principle-isp",[16,227343,227344],{},"Clients should not be forced to depend on interfaces they don't use.",[25,227346,227348],{"className":571,"code":227347,"language":573,"meta":30,"style":30},"// ❌ Bad - fat interface forces unnecessary implementations\ninterface Worker {\n  work(): void;\n  eat(): void;\n  sleep(): void;\n}\n\nclass Robot implements Worker {\n  work() { /* ... */ }\n  eat() { throw new Error('Robots do not eat'); } // Forced to implement\n  sleep() { throw new Error('Robots do not sleep'); }\n}\n\n// ✅ Good - segregated interfaces\ninterface Workable {\n  work(): void;\n}\n\ninterface Eatable {\n  eat(): void;\n}\n\ninterface Sleepable {\n  sleep(): void;\n}\n\nclass Human implements Workable, Eatable, Sleepable {\n  work() { /* ... */ }\n  eat() { /* ... */ }\n  sleep() { /* ... */ }\n}\n\nclass Robot implements Workable {\n  work() { /* ... */ }\n}\n",[20,227349,227350,227355,227364,227377,227389,227401,227405,227409,227422,227432,227454,227473,227477,227481,227486,227495,227507,227511,227515,227524,227536,227540,227544,227553,227565,227569,227573,227596,227606,227616,227626,227630,227634,227646,227656],{"__ignoreMap":30},[34,227351,227352],{"class":36,"line":37},[34,227353,227354],{"class":40},"// ❌ Bad - fat interface forces unnecessary implementations\n",[34,227356,227357,227359,227362],{"class":36,"line":44},[34,227358,17562],{"class":580},[34,227360,227361],{"class":47}," Worker",[34,227363,661],{"class":181},[34,227365,227366,227369,227371,227373,227375],{"class":36,"line":58},[34,227367,227368],{"class":47},"  work",[34,227370,1546],{"class":181},[34,227372,165],{"class":580},[34,227374,31514],{"class":50},[34,227376,593],{"class":181},[34,227378,227379,227381,227383,227385,227387],{"class":36,"line":65},[34,227380,58935],{"class":47},[34,227382,1546],{"class":181},[34,227384,165],{"class":580},[34,227386,31514],{"class":50},[34,227388,593],{"class":181},[34,227390,227391,227393,227395,227397,227399],{"class":36,"line":71},[34,227392,58961],{"class":47},[34,227394,1546],{"class":181},[34,227396,165],{"class":580},[34,227398,31514],{"class":50},[34,227400,593],{"class":181},[34,227402,227403],{"class":36,"line":77},[34,227404,693],{"class":181},[34,227406,227407],{"class":36,"line":82},[34,227408,62],{"emptyLinePlaceholder":61},[34,227410,227411,227413,227416,227418,227420],{"class":36,"line":88},[34,227412,30060],{"class":580},[34,227414,227415],{"class":47}," Robot",[34,227417,2334],{"class":580},[34,227419,227361],{"class":47},[34,227421,661],{"class":181},[34,227423,227424,227426,227428,227430],{"class":36,"line":242},[34,227425,227368],{"class":47},[34,227427,73419],{"class":181},[34,227429,70495],{"class":40},[34,227431,52786],{"class":181},[34,227433,227434,227436,227438,227440,227442,227444,227446,227449,227451],{"class":36,"line":250},[34,227435,58935],{"class":47},[34,227437,73419],{"class":181},[34,227439,35434],{"class":580},[34,227441,809],{"class":580},[34,227443,48752],{"class":47},[34,227445,1607],{"class":181},[34,227447,227448],{"class":54},"'Robots do not eat'",[34,227450,73526],{"class":181},[34,227452,227453],{"class":40},"// Forced to implement\n",[34,227455,227456,227458,227460,227462,227464,227466,227468,227471],{"class":36,"line":263},[34,227457,58961],{"class":47},[34,227459,73419],{"class":181},[34,227461,35434],{"class":580},[34,227463,809],{"class":580},[34,227465,48752],{"class":47},[34,227467,1607],{"class":181},[34,227469,227470],{"class":54},"'Robots do not sleep'",[34,227472,58956],{"class":181},[34,227474,227475],{"class":36,"line":275},[34,227476,693],{"class":181},[34,227478,227479],{"class":36,"line":700},[34,227480,62],{"emptyLinePlaceholder":61},[34,227482,227483],{"class":36,"line":706},[34,227484,227485],{"class":40},"// ✅ Good - segregated interfaces\n",[34,227487,227488,227490,227493],{"class":36,"line":715},[34,227489,17562],{"class":580},[34,227491,227492],{"class":47}," Workable",[34,227494,661],{"class":181},[34,227496,227497,227499,227501,227503,227505],{"class":36,"line":725},[34,227498,227368],{"class":47},[34,227500,1546],{"class":181},[34,227502,165],{"class":580},[34,227504,31514],{"class":50},[34,227506,593],{"class":181},[34,227508,227509],{"class":36,"line":734},[34,227510,693],{"class":181},[34,227512,227513],{"class":36,"line":742},[34,227514,62],{"emptyLinePlaceholder":61},[34,227516,227517,227519,227522],{"class":36,"line":748},[34,227518,17562],{"class":580},[34,227520,227521],{"class":47}," Eatable",[34,227523,661],{"class":181},[34,227525,227526,227528,227530,227532,227534],{"class":36,"line":754},[34,227527,58935],{"class":47},[34,227529,1546],{"class":181},[34,227531,165],{"class":580},[34,227533,31514],{"class":50},[34,227535,593],{"class":181},[34,227537,227538],{"class":36,"line":759},[34,227539,693],{"class":181},[34,227541,227542],{"class":36,"line":771},[34,227543,62],{"emptyLinePlaceholder":61},[34,227545,227546,227548,227551],{"class":36,"line":794},[34,227547,17562],{"class":580},[34,227549,227550],{"class":47}," Sleepable",[34,227552,661],{"class":181},[34,227554,227555,227557,227559,227561,227563],{"class":36,"line":824},[34,227556,58961],{"class":47},[34,227558,1546],{"class":181},[34,227560,165],{"class":580},[34,227562,31514],{"class":50},[34,227564,593],{"class":181},[34,227566,227567],{"class":36,"line":830},[34,227568,693],{"class":181},[34,227570,227571],{"class":36,"line":839},[34,227572,62],{"emptyLinePlaceholder":61},[34,227574,227575,227577,227580,227582,227584,227586,227589,227591,227594],{"class":36,"line":854},[34,227576,30060],{"class":580},[34,227578,227579],{"class":47}," Human",[34,227581,2334],{"class":580},[34,227583,227492],{"class":47},[34,227585,1798],{"class":181},[34,227587,227588],{"class":47},"Eatable",[34,227590,1798],{"class":181},[34,227592,227593],{"class":47},"Sleepable",[34,227595,661],{"class":181},[34,227597,227598,227600,227602,227604],{"class":36,"line":860},[34,227599,227368],{"class":47},[34,227601,73419],{"class":181},[34,227603,70495],{"class":40},[34,227605,52786],{"class":181},[34,227607,227608,227610,227612,227614],{"class":36,"line":865},[34,227609,58935],{"class":47},[34,227611,73419],{"class":181},[34,227613,70495],{"class":40},[34,227615,52786],{"class":181},[34,227617,227618,227620,227622,227624],{"class":36,"line":870},[34,227619,58961],{"class":47},[34,227621,73419],{"class":181},[34,227623,70495],{"class":40},[34,227625,52786],{"class":181},[34,227627,227628],{"class":36,"line":876},[34,227629,693],{"class":181},[34,227631,227632],{"class":36,"line":885},[34,227633,62],{"emptyLinePlaceholder":61},[34,227635,227636,227638,227640,227642,227644],{"class":36,"line":895},[34,227637,30060],{"class":580},[34,227639,227415],{"class":47},[34,227641,2334],{"class":580},[34,227643,227492],{"class":47},[34,227645,661],{"class":181},[34,227647,227648,227650,227652,227654],{"class":36,"line":904},[34,227649,227368],{"class":47},[34,227651,73419],{"class":181},[34,227653,70495],{"class":40},[34,227655,52786],{"class":181},[34,227657,227658],{"class":36,"line":915},[34,227659,693],{"class":181},[388,227661,49910],{},{"title":30,"searchDepth":44,"depth":44,"links":227663},[227664],{"id":227341,"depth":44,"text":227336},"4. Interface Segregation Principle (ISP) in SOLID Principles.",{},"/solid/4-interface-segregation-principle-isp",{"title":227336,"description":227665},"solid/4-interface-segregation-principle-isp",[226582,30041,73826,58893,5600],"CN8nGn9hTVxCJJ42I-bMycwTWGmqihmYSA_Du4l7pBo",{"id":227673,"title":227674,"body":227675,"date":402,"description":228005,"extension":404,"meta":228006,"navigation":61,"order":77,"path":228007,"seo":228008,"stem":228009,"subject":226582,"tags":228010,"__hash__":228011},"topics/solid/5-dependency-inversion-principle-dip.md","5. Dependency Inversion Principle (DIP)",{"type":8,"value":227676,"toc":228002},[227677,227680,227683,228000],[11,227678,227674],{"id":227679},"_5-dependency-inversion-principle-dip",[16,227681,227682],{},"High-level modules should not depend on low-level modules. Both should depend on abstractions.",[25,227684,227686],{"className":571,"code":227685,"language":573,"meta":30,"style":30},"// ❌ Bad - high-level depends on low-level\nclass MySQLDatabase {\n  save(data: string) { /* MySQL specific */ }\n}\n\nclass UserService {\n  private db = new MySQLDatabase(); // Direct dependency\n  saveUser(user: string) {\n    this.db.save(user);\n  }\n}\n\n// ✅ Good - depend on abstractions\ninterface Database {\n  save(data: string): void;\n}\n\nclass MySQLDatabase implements Database {\n  save(data: string) { /* MySQL specific */ }\n}\n\nclass MongoDatabase implements Database {\n  save(data: string) { /* MongoDB specific */ }\n}\n\nclass UserService {\n  constructor(private db: Database) {} // Injected dependency\n  saveUser(user: string) {\n    this.db.save(user);\n  }\n}\n\n// Easy to swap implementations\nconst service = new UserService(new MongoDatabase());\n",[20,227687,227688,227693,227702,227721,227725,227729,227737,227754,227768,227780,227784,227788,227792,227797,227805,227825,227829,227833,227845,227863,227867,227871,227884,227903,227907,227911,227919,227939,227953,227963,227967,227971,227975,227980],{"__ignoreMap":30},[34,227689,227690],{"class":36,"line":37},[34,227691,227692],{"class":40},"// ❌ Bad - high-level depends on low-level\n",[34,227694,227695,227697,227700],{"class":36,"line":44},[34,227696,30060],{"class":580},[34,227698,227699],{"class":47}," MySQLDatabase",[34,227701,661],{"class":181},[34,227703,227704,227706,227708,227710,227712,227714,227716,227719],{"class":36,"line":58},[34,227705,226509],{"class":47},[34,227707,1607],{"class":181},[34,227709,1701],{"class":675},[34,227711,165],{"class":580},[34,227713,680],{"class":50},[34,227715,31392],{"class":181},[34,227717,227718],{"class":40},"/* MySQL specific */",[34,227720,52786],{"class":181},[34,227722,227723],{"class":36,"line":65},[34,227724,693],{"class":181},[34,227726,227727],{"class":36,"line":71},[34,227728,62],{"emptyLinePlaceholder":61},[34,227730,227731,227733,227735],{"class":36,"line":77},[34,227732,30060],{"class":580},[34,227734,3806],{"class":47},[34,227736,661],{"class":181},[34,227738,227739,227741,227743,227745,227747,227749,227751],{"class":36,"line":82},[34,227740,1518],{"class":580},[34,227742,16997],{"class":675},[34,227744,683],{"class":580},[34,227746,809],{"class":580},[34,227748,227699],{"class":47},[34,227750,68957],{"class":181},[34,227752,227753],{"class":40},"// Direct dependency\n",[34,227755,227756,227758,227760,227762,227764,227766],{"class":36,"line":88},[34,227757,132341],{"class":47},[34,227759,1607],{"class":181},[34,227761,3945],{"class":675},[34,227763,165],{"class":580},[34,227765,680],{"class":50},[34,227767,2416],{"class":181},[34,227769,227770,227772,227775,227778],{"class":36,"line":242},[34,227771,842],{"class":50},[34,227773,227774],{"class":181},".db.",[34,227776,227777],{"class":47},"save",[34,227779,132081],{"class":181},[34,227781,227782],{"class":36,"line":250},[34,227783,857],{"class":181},[34,227785,227786],{"class":36,"line":263},[34,227787,693],{"class":181},[34,227789,227790],{"class":36,"line":275},[34,227791,62],{"emptyLinePlaceholder":61},[34,227793,227794],{"class":36,"line":700},[34,227795,227796],{"class":40},"// ✅ Good - depend on abstractions\n",[34,227798,227799,227801,227803],{"class":36,"line":706},[34,227800,17562],{"class":580},[34,227802,17004],{"class":47},[34,227804,661],{"class":181},[34,227806,227807,227809,227811,227813,227815,227817,227819,227821,227823],{"class":36,"line":715},[34,227808,226509],{"class":47},[34,227810,1607],{"class":181},[34,227812,1701],{"class":675},[34,227814,165],{"class":580},[34,227816,680],{"class":50},[34,227818,1617],{"class":181},[34,227820,165],{"class":580},[34,227822,31514],{"class":50},[34,227824,593],{"class":181},[34,227826,227827],{"class":36,"line":725},[34,227828,693],{"class":181},[34,227830,227831],{"class":36,"line":734},[34,227832,62],{"emptyLinePlaceholder":61},[34,227834,227835,227837,227839,227841,227843],{"class":36,"line":742},[34,227836,30060],{"class":580},[34,227838,227699],{"class":47},[34,227840,2334],{"class":580},[34,227842,17004],{"class":47},[34,227844,661],{"class":181},[34,227846,227847,227849,227851,227853,227855,227857,227859,227861],{"class":36,"line":748},[34,227848,226509],{"class":47},[34,227850,1607],{"class":181},[34,227852,1701],{"class":675},[34,227854,165],{"class":580},[34,227856,680],{"class":50},[34,227858,31392],{"class":181},[34,227860,227718],{"class":40},[34,227862,52786],{"class":181},[34,227864,227865],{"class":36,"line":754},[34,227866,693],{"class":181},[34,227868,227869],{"class":36,"line":759},[34,227870,62],{"emptyLinePlaceholder":61},[34,227872,227873,227875,227878,227880,227882],{"class":36,"line":771},[34,227874,30060],{"class":580},[34,227876,227877],{"class":47}," MongoDatabase",[34,227879,2334],{"class":580},[34,227881,17004],{"class":47},[34,227883,661],{"class":181},[34,227885,227886,227888,227890,227892,227894,227896,227898,227901],{"class":36,"line":794},[34,227887,226509],{"class":47},[34,227889,1607],{"class":181},[34,227891,1701],{"class":675},[34,227893,165],{"class":580},[34,227895,680],{"class":50},[34,227897,31392],{"class":181},[34,227899,227900],{"class":40},"/* MongoDB specific */",[34,227902,52786],{"class":181},[34,227904,227905],{"class":36,"line":824},[34,227906,693],{"class":181},[34,227908,227909],{"class":36,"line":830},[34,227910,62],{"emptyLinePlaceholder":61},[34,227912,227913,227915,227917],{"class":36,"line":839},[34,227914,30060],{"class":580},[34,227916,3806],{"class":47},[34,227918,661],{"class":181},[34,227920,227921,227923,227925,227927,227929,227931,227933,227936],{"class":36,"line":854},[34,227922,4303],{"class":580},[34,227924,1607],{"class":181},[34,227926,71922],{"class":580},[34,227928,16997],{"class":675},[34,227930,165],{"class":580},[34,227932,17004],{"class":47},[34,227934,227935],{"class":181},") {} ",[34,227937,227938],{"class":40},"// Injected dependency\n",[34,227940,227941,227943,227945,227947,227949,227951],{"class":36,"line":860},[34,227942,132341],{"class":47},[34,227944,1607],{"class":181},[34,227946,3945],{"class":675},[34,227948,165],{"class":580},[34,227950,680],{"class":50},[34,227952,2416],{"class":181},[34,227954,227955,227957,227959,227961],{"class":36,"line":865},[34,227956,842],{"class":50},[34,227958,227774],{"class":181},[34,227960,227777],{"class":47},[34,227962,132081],{"class":181},[34,227964,227965],{"class":36,"line":870},[34,227966,857],{"class":181},[34,227968,227969],{"class":36,"line":876},[34,227970,693],{"class":181},[34,227972,227973],{"class":36,"line":885},[34,227974,62],{"emptyLinePlaceholder":61},[34,227976,227977],{"class":36,"line":895},[34,227978,227979],{"class":40},"// Easy to swap implementations\n",[34,227981,227982,227984,227986,227988,227990,227992,227994,227996,227998],{"class":36,"line":904},[34,227983,14676],{"class":580},[34,227985,139509],{"class":50},[34,227987,683],{"class":580},[34,227989,809],{"class":580},[34,227991,3806],{"class":47},[34,227993,1607],{"class":181},[34,227995,3143],{"class":580},[34,227997,227877],{"class":47},[34,227999,4343],{"class":181},[388,228001,60244],{},{"title":30,"searchDepth":44,"depth":44,"links":228003},[228004],{"id":227679,"depth":44,"text":227674},"5. Dependency Inversion Principle (DIP) in SOLID Principles.",{},"/solid/5-dependency-inversion-principle-dip",{"title":227674,"description":228005},"solid/5-dependency-inversion-principle-dip",[226582,30041,73826,58893,5600],"wLk2uTI0b1DV_jprR-__aUkaehq9d26XW2Z7hp4_evk",{"id":228013,"title":228014,"body":228015,"date":402,"description":228029,"extension":404,"meta":228030,"navigation":61,"order":88,"path":228031,"seo":228032,"stem":228033,"subject":226582,"tags":228034,"__hash__":228035},"topics/solid/benefits-of-solid.md","Benefits of SOLID",{"type":8,"value":228016,"toc":228026},[228017,228020],[11,228018,228014],{"id":228019},"benefits-of-solid",[25,228021,228024],{"className":228022,"code":228023,"language":780,"meta":30},[13703],"✓ Easier to maintain and refactor\n✓ More testable code (easier mocking)\n✓ Reduced coupling between components\n✓ Better code reusability\n✓ Simpler to extend functionality\n✓ Clearer separation of concerns\n",[20,228025,228023],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":228027},[228028],{"id":228019,"depth":44,"text":228014},"Benefits of SOLID in SOLID Principles.",{},"/solid/benefits-of-solid",{"title":228014,"description":228029},"solid/benefits-of-solid",[226582,30041,73826,58893,5600],"mUvyG1hQTqTWprhq7yPw_4YiO11nvBt34ZnUyVbSaeE",{"id":228037,"title":228038,"body":228039,"date":2633,"description":228074,"extension":404,"meta":228075,"navigation":61,"order":37,"path":228076,"seo":228077,"stem":228078,"subject":226582,"tags":228079,"__hash__":228080},"topics/solid/overview.md","SOLID Principles",{"type":8,"value":228040,"toc":228072},[228041],[309,228042,228043,228047,228051,228055,228059,228063,228068],{},[312,228044,228045],{},[145,228046,226380],{"href":226579},[312,228048,228049],{},[145,228050,226587],{"href":226956},[312,228052,228053],{},[145,228054,226963],{"href":227329},[312,228056,228057],{},[145,228058,227336],{"href":227667},[312,228060,228061],{},[145,228062,227674],{"href":228007},[312,228064,228065],{},[145,228066,59666],{"href":228067},"/solid/quick-reference",[312,228069,228070],{},[145,228071,228014],{"href":228031},{"title":30,"searchDepth":44,"depth":44,"links":228073},[],"The five fundamental principles of object-oriented design for writing maintainable and scalable code.",{},"/solid/overview",{"title":228038,"description":228074},"solid/overview",[226582,30041,73826,58893,5600],"di-FnpBQgvjtpE4V5oes8yFZMDZakrzoOPiBbvRlQCI",{"id":228082,"title":59666,"body":228083,"date":402,"description":228156,"extension":404,"meta":228157,"navigation":61,"order":82,"path":228067,"seo":228158,"stem":228159,"subject":226582,"tags":228160,"__hash__":228161},"topics/solid/quick-reference.md",{"type":8,"value":228084,"toc":228153},[228085,228087],[11,228086,59666],{"id":59682},[14308,228088,228089,228099],{},[14311,228090,228091],{},[14314,228092,228093,228096],{},[14317,228094,228095],{},"Principle",[14317,228097,228098],{},"Summary",[14326,228100,228101,228112,228122,228132,228143],{},[14314,228102,228103,228109],{},[14331,228104,228105,228108],{},[8471,228106,228107],{},"S","ingle Responsibility",[14331,228110,228111],{},"One class, one job",[14314,228113,228114,228119],{},[14331,228115,228116,228118],{},[8471,228117,119456],{},"pen/Closed",[14331,228120,228121],{},"Extend, don't modify",[14314,228123,228124,228129],{},[14331,228125,228126,228128],{},[8471,228127,25191],{},"iskov Substitution",[14331,228130,228131],{},"Subtypes must be interchangeable",[14314,228133,228134,228140],{},[14331,228135,228136,228139],{},[8471,228137,228138],{},"I","nterface Segregation",[14331,228141,228142],{},"Small, focused interfaces",[14314,228144,228145,228150],{},[14331,228146,228147,228149],{},[8471,228148,45442],{},"ependency Inversion",[14331,228151,228152],{},"Depend on abstractions",{"title":30,"searchDepth":44,"depth":44,"links":228154},[228155],{"id":59682,"depth":44,"text":59666},"Quick Reference in SOLID Principles.",{},{"title":59666,"description":228156},"solid/quick-reference",[226582,30041,73826,58893,5600],"AVyEV9cUhSU4Hgv2pcHTIIYwnwpM-8P7dkooVIU3tGg",{"id":228163,"title":228164,"body":228165,"date":402,"description":228254,"extension":404,"meta":228255,"navigation":61,"order":44,"path":228256,"seo":228257,"stem":228258,"subject":228259,"tags":228260,"__hash__":228261},"topics/solidjs/basic-component.md","Basic Component",{"type":8,"value":228166,"toc":228251},[228167,228170,228248],[11,228168,228164],{"id":228169},"basic-component",[25,228171,228173],{"className":198968,"code":228172,"language":198970,"meta":30,"style":30},"// Function components return JSX\nfunction HelloWorld() {\n  return \u003Ch1>Hello, World!\u003C/h1>;\n}\n\n// With props\nfunction Greeting(props) {\n  return \u003Ch1>Hello, {props.name}!\u003C/h1>;\n}\n",[20,228174,228175,228180,228188,228203,228207,228211,228216,228229,228244],{"__ignoreMap":30},[34,228176,228177],{"class":36,"line":37},[34,228178,228179],{"class":40},"// Function components return JSX\n",[34,228181,228182,228184,228186],{"class":36,"line":44},[34,228183,11044],{"class":580},[34,228185,13855],{"class":47},[34,228187,836],{"class":181},[34,228189,228190,228192,228194,228196,228199,228201],{"class":36,"line":58},[34,228191,8155],{"class":580},[34,228193,5470],{"class":181},[34,228195,8535],{"class":177},[34,228197,228198],{"class":181},">Hello, World!\u003C/",[34,228200,8535],{"class":177},[34,228202,4834],{"class":181},[34,228204,228205],{"class":36,"line":65},[34,228206,693],{"class":181},[34,228208,228209],{"class":36,"line":71},[34,228210,62],{"emptyLinePlaceholder":61},[34,228212,228213],{"class":36,"line":77},[34,228214,228215],{"class":40},"// With props\n",[34,228217,228218,228220,228222,228224,228227],{"class":36,"line":82},[34,228219,11044],{"class":580},[34,228221,198984],{"class":47},[34,228223,1607],{"class":181},[34,228225,228226],{"class":675},"props",[34,228228,2416],{"class":181},[34,228230,228231,228233,228235,228237,228240,228242],{"class":36,"line":88},[34,228232,8155],{"class":580},[34,228234,5470],{"class":181},[34,228236,8535],{"class":177},[34,228238,228239],{"class":181},">Hello, {props.name}!\u003C/",[34,228241,8535],{"class":177},[34,228243,4834],{"class":181},[34,228245,228246],{"class":36,"line":242},[34,228247,693],{"class":181},[388,228249,228250],{},"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 .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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":228252},[228253],{"id":228169,"depth":44,"text":228164},"Basic Component in SolidJS.",{},"/solidjs/basic-component",{"title":228164,"description":228254},"solidjs/basic-component","solidjs",[228259,8606,219152,982,573],"k_6vIrXTxLAHpqC2c3YbCa4cIEzO6rJn71m1HSsB4LU",{"id":228263,"title":228264,"body":228265,"date":402,"description":228431,"extension":404,"meta":228432,"navigation":61,"order":759,"path":228433,"seo":228434,"stem":228435,"subject":228259,"tags":228436,"__hash__":228437},"topics/solidjs/batch-updates.md","Batch Updates",{"type":8,"value":228266,"toc":228428},[228267,228270,228425],[11,228268,228264],{"id":228269},"batch-updates",[25,228271,228273],{"className":198968,"code":228272,"language":198970,"meta":30,"style":30},"import { batch, createSignal } from \"solid-js\";\n\nfunction BatchExample() {\n  const [firstName, setFirstName] = createSignal(\"\");\n  const [lastName, setLastName] = createSignal(\"\");\n\n  const updateBoth = () => {\n    // Batch multiple updates to prevent unnecessary re-renders\n    batch(() => {\n      setFirstName(\"John\");\n      setLastName(\"Doe\");\n    });\n  };\n}\n",[20,228274,228275,228289,228293,228302,228329,228355,228359,228374,228379,228390,228401,228413,228417,228421],{"__ignoreMap":30},[34,228276,228277,228279,228282,228284,228287],{"class":36,"line":37},[34,228278,581],{"class":580},[34,228280,228281],{"class":181}," { batch, createSignal } ",[34,228283,587],{"class":580},[34,228285,228286],{"class":54}," \"solid-js\"",[34,228288,593],{"class":181},[34,228290,228291],{"class":36,"line":44},[34,228292,62],{"emptyLinePlaceholder":61},[34,228294,228295,228297,228300],{"class":36,"line":58},[34,228296,11044],{"class":580},[34,228298,228299],{"class":47}," BatchExample",[34,228301,836],{"class":181},[34,228303,228304,228306,228308,228311,228313,228316,228318,228320,228323,228325,228327],{"class":36,"line":65},[34,228305,17415],{"class":580},[34,228307,8315],{"class":181},[34,228309,228310],{"class":50},"firstName",[34,228312,1798],{"class":181},[34,228314,228315],{"class":50},"setFirstName",[34,228317,17799],{"class":181},[34,228319,1301],{"class":580},[34,228321,228322],{"class":47}," createSignal",[34,228324,1607],{"class":181},[34,228326,13962],{"class":54},[34,228328,1586],{"class":181},[34,228330,228331,228333,228335,228338,228340,228343,228345,228347,228349,228351,228353],{"class":36,"line":71},[34,228332,17415],{"class":580},[34,228334,8315],{"class":181},[34,228336,228337],{"class":50},"lastName",[34,228339,1798],{"class":181},[34,228341,228342],{"class":50},"setLastName",[34,228344,17799],{"class":181},[34,228346,1301],{"class":580},[34,228348,228322],{"class":47},[34,228350,1607],{"class":181},[34,228352,13962],{"class":54},[34,228354,1586],{"class":181},[34,228356,228357],{"class":36,"line":77},[34,228358,62],{"emptyLinePlaceholder":61},[34,228360,228361,228363,228366,228368,228370,228372],{"class":36,"line":82},[34,228362,17415],{"class":580},[34,228364,228365],{"class":47}," updateBoth",[34,228367,683],{"class":580},[34,228369,17406],{"class":181},[34,228371,3361],{"class":580},[34,228373,661],{"class":181},[34,228375,228376],{"class":36,"line":88},[34,228377,228378],{"class":40},"    // Batch multiple updates to prevent unnecessary re-renders\n",[34,228380,228381,228384,228386,228388],{"class":36,"line":242},[34,228382,228383],{"class":47},"    batch",[34,228385,4275],{"class":181},[34,228387,3361],{"class":580},[34,228389,661],{"class":181},[34,228391,228392,228395,228397,228399],{"class":36,"line":250},[34,228393,228394],{"class":47},"      setFirstName",[34,228396,1607],{"class":181},[34,228398,17105],{"class":54},[34,228400,1586],{"class":181},[34,228402,228403,228406,228408,228411],{"class":36,"line":263},[34,228404,228405],{"class":47},"      setLastName",[34,228407,1607],{"class":181},[34,228409,228410],{"class":54},"\"Doe\"",[34,228412,1586],{"class":181},[34,228414,228415],{"class":36,"line":275},[34,228416,3660],{"class":181},[34,228418,228419],{"class":36,"line":700},[34,228420,126747],{"class":181},[34,228422,228423],{"class":36,"line":706},[34,228424,693],{"class":181},[388,228426,228427],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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":30,"searchDepth":44,"depth":44,"links":228429},[228430],{"id":228269,"depth":44,"text":228264},"Batch Updates in SolidJS.",{},"/solidjs/batch-updates",{"title":228264,"description":228431},"solidjs/batch-updates",[228259,8606,219152,982,573],"Rhn0NkKSUvBH3WHmo1SnE05zd2neZTylShoitBC5dEc",{"id":228439,"title":228440,"body":228441,"date":402,"description":228635,"extension":404,"meta":228636,"navigation":61,"order":748,"path":228637,"seo":228638,"stem":228639,"subject":228259,"tags":228640,"__hash__":228641},"topics/solidjs/class-and-style-bindings.md","Class and Style Bindings",{"type":8,"value":228442,"toc":228632},[228443,228446,228629],[11,228444,228440],{"id":228445},"class-and-style-bindings",[25,228447,228449],{"className":198968,"code":228448,"language":198970,"meta":30,"style":30},"function StyledComponent() {\n  const [isActive, setActive] = createSignal(false);\n\n  return (\n    \u003C>\n      {/* Class binding */}\n      \u003Cdiv class={isActive() ? \"active\" : \"\"}>Toggle class\u003C/div>\n      \u003Cdiv classList={{ active: isActive(), highlight: true }}>Multiple classes\u003C/div>\n      \n      {/* Style binding */}\n      \u003Cdiv style={{ color: isActive() ? \"red\" : \"blue\" }}>Styled text\u003C/div>\n    \u003C/>\n  );\n}\n",[20,228450,228451,228460,228486,228490,228496,228500,228509,228541,228569,228573,228582,228617,228621,228625],{"__ignoreMap":30},[34,228452,228453,228455,228458],{"class":36,"line":37},[34,228454,11044],{"class":580},[34,228456,228457],{"class":47}," StyledComponent",[34,228459,836],{"class":181},[34,228461,228462,228464,228466,228469,228471,228474,228476,228478,228480,228482,228484],{"class":36,"line":44},[34,228463,17415],{"class":580},[34,228465,8315],{"class":181},[34,228467,228468],{"class":50},"isActive",[34,228470,1798],{"class":181},[34,228472,228473],{"class":50},"setActive",[34,228475,17799],{"class":181},[34,228477,1301],{"class":580},[34,228479,228322],{"class":47},[34,228481,1607],{"class":181},[34,228483,103387],{"class":50},[34,228485,1586],{"class":181},[34,228487,228488],{"class":36,"line":58},[34,228489,62],{"emptyLinePlaceholder":61},[34,228491,228492,228494],{"class":36,"line":65},[34,228493,8155],{"class":580},[34,228495,13975],{"class":181},[34,228497,228498],{"class":36,"line":71},[34,228499,199259],{"class":181},[34,228501,228502,228504,228507],{"class":36,"line":77},[34,228503,127999],{"class":181},[34,228505,228506],{"class":40},"/* Class binding */",[34,228508,693],{"class":181},[34,228510,228511,228513,228515,228517,228519,228521,228523,228525,228527,228529,228531,228534,228537,228539],{"class":36,"line":82},[34,228512,85662],{"class":181},[34,228514,1240],{"class":177},[34,228516,655],{"class":47},[34,228518,1301],{"class":580},[34,228520,13990],{"class":181},[34,228522,228468],{"class":47},[34,228524,672],{"class":181},[34,228526,18954],{"class":580},[34,228528,172941],{"class":54},[34,228530,64223],{"class":580},[34,228532,228533],{"class":54}," \"\"",[34,228535,228536],{"class":181},"}>Toggle class\u003C/",[34,228538,1240],{"class":177},[34,228540,1248],{"class":181},[34,228542,228543,228545,228547,228550,228552,228555,228557,228560,228562,228565,228567],{"class":36,"line":88},[34,228544,85662],{"class":181},[34,228546,1240],{"class":177},[34,228548,228549],{"class":47}," classList",[34,228551,1301],{"class":580},[34,228553,228554],{"class":181},"{{ active: ",[34,228556,228468],{"class":47},[34,228558,228559],{"class":181},"(), highlight: ",[34,228561,632],{"class":50},[34,228563,228564],{"class":181}," }}>Multiple classes\u003C/",[34,228566,1240],{"class":177},[34,228568,1248],{"class":181},[34,228570,228571],{"class":36,"line":242},[34,228572,3083],{"class":181},[34,228574,228575,228577,228580],{"class":36,"line":250},[34,228576,127999],{"class":181},[34,228578,228579],{"class":40},"/* Style binding */",[34,228581,693],{"class":181},[34,228583,228584,228586,228588,228591,228593,228596,228598,228600,228602,228605,228607,228610,228613,228615],{"class":36,"line":263},[34,228585,85662],{"class":181},[34,228587,1240],{"class":177},[34,228589,228590],{"class":47}," style",[34,228592,1301],{"class":580},[34,228594,228595],{"class":181},"{{ color: ",[34,228597,228468],{"class":47},[34,228599,672],{"class":181},[34,228601,18954],{"class":580},[34,228603,228604],{"class":54}," \"red\"",[34,228606,64223],{"class":580},[34,228608,228609],{"class":54}," \"blue\"",[34,228611,228612],{"class":181}," }}>Styled text\u003C/",[34,228614,1240],{"class":177},[34,228616,1248],{"class":181},[34,228618,228619],{"class":36,"line":275},[34,228620,199441],{"class":181},[34,228622,228623],{"class":36,"line":700},[34,228624,61002],{"class":181},[34,228626,228627],{"class":36,"line":706},[34,228628,693],{"class":181},[388,228630,228631],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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);}",{"title":30,"searchDepth":44,"depth":44,"links":228633},[228634],{"id":228445,"depth":44,"text":228440},"Class and Style Bindings in SolidJS.",{},"/solidjs/class-and-style-bindings",{"title":228440,"description":228635},"solidjs/class-and-style-bindings",[228259,8606,219152,982,573],"lUCLW5kKjdAOzyrDRj3-u_5zsAe8i11lkCAQqTXxLDE",{"id":228643,"title":199217,"body":228644,"date":402,"description":228755,"extension":404,"meta":228756,"navigation":61,"order":88,"path":228757,"seo":228758,"stem":228759,"subject":228259,"tags":228760,"__hash__":228761},"topics/solidjs/conditional-rendering.md",{"type":8,"value":228645,"toc":228752},[228646,228648,228749],[11,228647,199217],{"id":199222},[25,228649,228651],{"className":198968,"code":228650,"language":198970,"meta":30,"style":30},"import { Show } from \"solid-js\";\n\nfunction ConditionalContent(props) {\n  return (\n    \u003CShow when={props.isLoggedIn} fallback={\u003Cp>Please log in\u003C/p>}>\n      \u003Cp>Welcome back!\u003C/p>\n    \u003C/Show>\n  );\n}\n",[20,228652,228653,228666,228670,228683,228689,228720,228733,228741,228745],{"__ignoreMap":30},[34,228654,228655,228657,228660,228662,228664],{"class":36,"line":37},[34,228656,581],{"class":580},[34,228658,228659],{"class":181}," { Show } ",[34,228661,587],{"class":580},[34,228663,228286],{"class":54},[34,228665,593],{"class":181},[34,228667,228668],{"class":36,"line":44},[34,228669,62],{"emptyLinePlaceholder":61},[34,228671,228672,228674,228677,228679,228681],{"class":36,"line":58},[34,228673,11044],{"class":580},[34,228675,228676],{"class":47}," ConditionalContent",[34,228678,1607],{"class":181},[34,228680,228226],{"class":675},[34,228682,2416],{"class":181},[34,228684,228685,228687],{"class":36,"line":65},[34,228686,8155],{"class":580},[34,228688,13975],{"class":181},[34,228690,228691,228693,228696,228698,228700,228703,228705,228707,228710,228712,228715,228717],{"class":36,"line":71},[34,228692,1294],{"class":181},[34,228694,228695],{"class":50},"Show",[34,228697,134710],{"class":47},[34,228699,1301],{"class":580},[34,228701,228702],{"class":181},"{props.isLoggedIn} ",[34,228704,161521],{"class":47},[34,228706,1301],{"class":580},[34,228708,228709],{"class":181},"{\u003C",[34,228711,16],{"class":177},[34,228713,228714],{"class":181},">Please log in\u003C/",[34,228716,16],{"class":177},[34,228718,228719],{"class":181},">}>\n",[34,228721,228722,228724,228726,228729,228731],{"class":36,"line":77},[34,228723,85662],{"class":181},[34,228725,16],{"class":177},[34,228727,228728],{"class":181},">Welcome back!\u003C/",[34,228730,16],{"class":177},[34,228732,1248],{"class":181},[34,228734,228735,228737,228739],{"class":36,"line":82},[34,228736,74431],{"class":181},[34,228738,228695],{"class":50},[34,228740,1248],{"class":181},[34,228742,228743],{"class":36,"line":88},[34,228744,61002],{"class":181},[34,228746,228747],{"class":36,"line":242},[34,228748,693],{"class":181},[388,228750,228751],{},"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 .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}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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":30,"searchDepth":44,"depth":44,"links":228753},[228754],{"id":199222,"depth":44,"text":199217},"Conditional Rendering in SolidJS.",{},"/solidjs/conditional-rendering",{"title":199217,"description":228755},"solidjs/conditional-rendering",[228259,8606,219152,982,573],"gR6hOZz2_SAMeYmdtKnNGTZ7s534_XgHhXGnyQU6sLA",{"id":228763,"title":228764,"body":228765,"date":402,"description":228918,"extension":404,"meta":228919,"navigation":61,"order":715,"path":228920,"seo":228921,"stem":228922,"subject":228259,"tags":228923,"__hash__":228924},"topics/solidjs/context.md","Context",{"type":8,"value":228766,"toc":228915},[228767,228770,228912],[11,228768,228764],{"id":228769},"context",[25,228771,228773],{"className":198968,"code":228772,"language":198970,"meta":30,"style":30},"import { createContext, useContext } from \"solid-js\";\n\nconst ThemeContext = createContext(\"light\");\n\nfunction ThemeProvider(props) {\n  return (\n    \u003CThemeContext.Provider value={props.theme}>\n      {props.children}\n    \u003C/ThemeContext.Provider>\n  );\n}\n\nfunction ThemedButton() {\n  const theme = useContext(ThemeContext);\n  return \u003Cbutton class={theme}>Click me\u003C/button>;\n}\n",[20,228774,228775,228788,228792,228809,228813,228825,228831,228844,228849,228857,228861,228865,228869,228877,228889,228908],{"__ignoreMap":30},[34,228776,228777,228779,228782,228784,228786],{"class":36,"line":37},[34,228778,581],{"class":580},[34,228780,228781],{"class":181}," { createContext, useContext } ",[34,228783,587],{"class":580},[34,228785,228286],{"class":54},[34,228787,593],{"class":181},[34,228789,228790],{"class":36,"line":44},[34,228791,62],{"emptyLinePlaceholder":61},[34,228793,228794,228796,228798,228800,228802,228804,228807],{"class":36,"line":58},[34,228795,14676],{"class":580},[34,228797,200601],{"class":50},[34,228799,683],{"class":580},[34,228801,200606],{"class":47},[34,228803,1607],{"class":181},[34,228805,228806],{"class":54},"\"light\"",[34,228808,1586],{"class":181},[34,228810,228811],{"class":36,"line":65},[34,228812,62],{"emptyLinePlaceholder":61},[34,228814,228815,228817,228819,228821,228823],{"class":36,"line":71},[34,228816,11044],{"class":580},[34,228818,200624],{"class":47},[34,228820,1607],{"class":181},[34,228822,228226],{"class":675},[34,228824,2416],{"class":181},[34,228826,228827,228829],{"class":36,"line":77},[34,228828,8155],{"class":580},[34,228830,13975],{"class":181},[34,228832,228833,228835,228837,228839,228841],{"class":36,"line":82},[34,228834,1294],{"class":181},[34,228836,200728],{"class":50},[34,228838,18389],{"class":47},[34,228840,1301],{"class":580},[34,228842,228843],{"class":181},"{props.theme}>\n",[34,228845,228846],{"class":36,"line":88},[34,228847,228848],{"class":181},"      {props.children}\n",[34,228850,228851,228853,228855],{"class":36,"line":242},[34,228852,74431],{"class":181},[34,228854,200728],{"class":50},[34,228856,1248],{"class":181},[34,228858,228859],{"class":36,"line":250},[34,228860,61002],{"class":181},[34,228862,228863],{"class":36,"line":263},[34,228864,693],{"class":181},[34,228866,228867],{"class":36,"line":275},[34,228868,62],{"emptyLinePlaceholder":61},[34,228870,228871,228873,228875],{"class":36,"line":700},[34,228872,11044],{"class":580},[34,228874,200845],{"class":47},[34,228876,836],{"class":181},[34,228878,228879,228881,228883,228885,228887],{"class":36,"line":706},[34,228880,17415],{"class":580},[34,228882,157427],{"class":50},[34,228884,683],{"class":580},[34,228886,200785],{"class":47},[34,228888,200788],{"class":181},[34,228890,228891,228893,228895,228897,228899,228901,228904,228906],{"class":36,"line":715},[34,228892,8155],{"class":580},[34,228894,5470],{"class":181},[34,228896,4509],{"class":177},[34,228898,655],{"class":47},[34,228900,1301],{"class":580},[34,228902,228903],{"class":181},"{theme}>Click me\u003C/",[34,228905,4509],{"class":177},[34,228907,4834],{"class":181},[34,228909,228910],{"class":36,"line":725},[34,228911,693],{"class":181},[388,228913,228914],{},"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}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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":30,"searchDepth":44,"depth":44,"links":228916},[228917],{"id":228769,"depth":44,"text":228764},"Context in SolidJS.",{},"/solidjs/context",{"title":228764,"description":228918},"solidjs/context",[228259,8606,219152,982,573],"IajAoaQsJTUH4raKuHXJud4IzimqKGp-xpO3F0HZyhw",{"id":228926,"title":228927,"body":228928,"date":402,"description":229054,"extension":404,"meta":229055,"navigation":61,"order":65,"path":229056,"seo":229057,"stem":229058,"subject":228259,"tags":229059,"__hash__":229060},"topics/solidjs/derived-state.md","Derived State",{"type":8,"value":228929,"toc":229051},[228930,228933,229048],[11,228931,228927],{"id":228932},"derived-state",[25,228934,228936],{"className":198968,"code":228935,"language":198970,"meta":30,"style":30},"import { createSignal } from \"solid-js\";\n\nfunction DoubleCounter() {\n  const [count, setCount] = createSignal(0);\n  \n  // Derived values are just functions\n  const doubled = () => count() * 2;\n\n  return \u003Cp>Doubled: {doubled()}\u003C/p>;\n}\n",[20,228937,228938,228951,228955,228964,228988,228992,228997,229020,229024,229044],{"__ignoreMap":30},[34,228939,228940,228942,228945,228947,228949],{"class":36,"line":37},[34,228941,581],{"class":580},[34,228943,228944],{"class":181}," { createSignal } ",[34,228946,587],{"class":580},[34,228948,228286],{"class":54},[34,228950,593],{"class":181},[34,228952,228953],{"class":36,"line":44},[34,228954,62],{"emptyLinePlaceholder":61},[34,228956,228957,228959,228962],{"class":36,"line":58},[34,228958,11044],{"class":580},[34,228960,228961],{"class":47}," DoubleCounter",[34,228963,836],{"class":181},[34,228965,228966,228968,228970,228972,228974,228976,228978,228980,228982,228984,228986],{"class":36,"line":65},[34,228967,17415],{"class":580},[34,228969,8315],{"class":181},[34,228971,4284],{"class":50},[34,228973,1798],{"class":181},[34,228975,85630],{"class":50},[34,228977,17799],{"class":181},[34,228979,1301],{"class":580},[34,228981,228322],{"class":47},[34,228983,1607],{"class":181},[34,228985,2773],{"class":50},[34,228987,1586],{"class":181},[34,228989,228990],{"class":36,"line":71},[34,228991,827],{"class":181},[34,228993,228994],{"class":36,"line":77},[34,228995,228996],{"class":40},"  // Derived values are just functions\n",[34,228998,228999,229001,229004,229006,229008,229010,229012,229014,229016,229018],{"class":36,"line":82},[34,229000,17415],{"class":580},[34,229002,229003],{"class":47}," doubled",[34,229005,683],{"class":580},[34,229007,17406],{"class":181},[34,229009,3361],{"class":580},[34,229011,161661],{"class":47},[34,229013,672],{"class":181},[34,229015,4289],{"class":580},[34,229017,4292],{"class":50},[34,229019,593],{"class":181},[34,229021,229022],{"class":36,"line":88},[34,229023,62],{"emptyLinePlaceholder":61},[34,229025,229026,229028,229030,229032,229035,229037,229040,229042],{"class":36,"line":242},[34,229027,8155],{"class":580},[34,229029,5470],{"class":181},[34,229031,16],{"class":177},[34,229033,229034],{"class":181},">Doubled: {",[34,229036,208190],{"class":47},[34,229038,229039],{"class":181},"()}\u003C/",[34,229041,16],{"class":177},[34,229043,4834],{"class":181},[34,229045,229046],{"class":36,"line":250},[34,229047,693],{"class":181},[388,229049,229050],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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":30,"searchDepth":44,"depth":44,"links":229052},[229053],{"id":228932,"depth":44,"text":228927},"Derived State in SolidJS.",{},"/solidjs/derived-state",{"title":228927,"description":229054},"solidjs/derived-state",[228259,8606,219152,982,573],"Qsh3vlRHD_XY3ItJ9JRYaJJ9Mr3WEaV8DZvNrbT9FMg",{"id":229062,"title":229063,"body":229064,"date":402,"description":229155,"extension":404,"meta":229156,"navigation":61,"order":263,"path":229157,"seo":229158,"stem":229159,"subject":228259,"tags":229160,"__hash__":229161},"topics/solidjs/dynamic-components.md","Dynamic Components",{"type":8,"value":229065,"toc":229152},[229066,229069,229149],[11,229067,229063],{"id":229068},"dynamic-components",[25,229070,229072],{"className":198968,"code":229071,"language":198970,"meta":30,"style":30},"import { Dynamic } from \"solid-js/web\";\n\nfunction DynamicComponent(props) {\n  return \u003CDynamic component={props.tag} class=\"dynamic\">{props.children}\u003C/Dynamic>;\n}\n\n// Usage: \u003CDynamicComponent tag=\"h1\">Title\u003C/DynamicComponent>\n",[20,229073,229074,229088,229092,229105,229136,229140,229144],{"__ignoreMap":30},[34,229075,229076,229078,229081,229083,229086],{"class":36,"line":37},[34,229077,581],{"class":580},[34,229079,229080],{"class":181}," { Dynamic } ",[34,229082,587],{"class":580},[34,229084,229085],{"class":54}," \"solid-js/web\"",[34,229087,593],{"class":181},[34,229089,229090],{"class":36,"line":44},[34,229091,62],{"emptyLinePlaceholder":61},[34,229093,229094,229096,229099,229101,229103],{"class":36,"line":58},[34,229095,11044],{"class":580},[34,229097,229098],{"class":47}," DynamicComponent",[34,229100,1607],{"class":181},[34,229102,228226],{"class":675},[34,229104,2416],{"class":181},[34,229106,229107,229109,229111,229114,229117,229119,229122,229124,229126,229129,229132,229134],{"class":36,"line":65},[34,229108,8155],{"class":580},[34,229110,5470],{"class":181},[34,229112,229113],{"class":50},"Dynamic",[34,229115,229116],{"class":47}," component",[34,229118,1301],{"class":580},[34,229120,229121],{"class":181},"{props.tag} ",[34,229123,30060],{"class":47},[34,229125,1301],{"class":580},[34,229127,229128],{"class":54},"\"dynamic\"",[34,229130,229131],{"class":181},">{props.children}\u003C/",[34,229133,229113],{"class":50},[34,229135,4834],{"class":181},[34,229137,229138],{"class":36,"line":71},[34,229139,693],{"class":181},[34,229141,229142],{"class":36,"line":77},[34,229143,62],{"emptyLinePlaceholder":61},[34,229145,229146],{"class":36,"line":82},[34,229147,229148],{"class":40},"// Usage: \u003CDynamicComponent tag=\"h1\">Title\u003C/DynamicComponent>\n",[388,229150,229151],{},"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 .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}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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":30,"searchDepth":44,"depth":44,"links":229153},[229154],{"id":229068,"depth":44,"text":229063},"Dynamic Components in SolidJS.",{},"/solidjs/dynamic-components",{"title":229063,"description":229155},"solidjs/dynamic-components",[228259,8606,219152,982,573],"3Asju7aEDlxkjDEWuKbLOsLFYy1aeff4wIlfcKgUGQU",{"id":229163,"title":229164,"body":229165,"date":402,"description":229316,"extension":404,"meta":229317,"navigation":61,"order":71,"path":229318,"seo":229319,"stem":229320,"subject":228259,"tags":229321,"__hash__":229322},"topics/solidjs/effects.md","Effects",{"type":8,"value":229166,"toc":229313},[229167,229170,229310],[11,229168,229164],{"id":229169},"effects",[25,229171,229173],{"className":198968,"code":229172,"language":198970,"meta":30,"style":30},"import { createSignal, createEffect } from \"solid-js\";\n\nfunction Logger() {\n  const [count, setCount] = createSignal(0);\n\n  // Runs when dependencies change\n  createEffect(() => {\n    console.log(\"Count changed:\", count());\n  });\n\n  return \u003Cbutton onClick={() => setCount(c => c + 1)}>Increment\u003C/button>;\n}\n",[20,229174,229175,229188,229192,229200,229224,229228,229233,229244,229261,229265,229269,229306],{"__ignoreMap":30},[34,229176,229177,229179,229182,229184,229186],{"class":36,"line":37},[34,229178,581],{"class":580},[34,229180,229181],{"class":181}," { createSignal, createEffect } ",[34,229183,587],{"class":580},[34,229185,228286],{"class":54},[34,229187,593],{"class":181},[34,229189,229190],{"class":36,"line":44},[34,229191,62],{"emptyLinePlaceholder":61},[34,229193,229194,229196,229198],{"class":36,"line":58},[34,229195,11044],{"class":580},[34,229197,70582],{"class":47},[34,229199,836],{"class":181},[34,229201,229202,229204,229206,229208,229210,229212,229214,229216,229218,229220,229222],{"class":36,"line":65},[34,229203,17415],{"class":580},[34,229205,8315],{"class":181},[34,229207,4284],{"class":50},[34,229209,1798],{"class":181},[34,229211,85630],{"class":50},[34,229213,17799],{"class":181},[34,229215,1301],{"class":580},[34,229217,228322],{"class":47},[34,229219,1607],{"class":181},[34,229221,2773],{"class":50},[34,229223,1586],{"class":181},[34,229225,229226],{"class":36,"line":71},[34,229227,62],{"emptyLinePlaceholder":61},[34,229229,229230],{"class":36,"line":77},[34,229231,229232],{"class":40},"  // Runs when dependencies change\n",[34,229234,229235,229238,229240,229242],{"class":36,"line":82},[34,229236,229237],{"class":47},"  createEffect",[34,229239,4275],{"class":181},[34,229241,3361],{"class":580},[34,229243,661],{"class":181},[34,229245,229246,229248,229250,229252,229255,229257,229259],{"class":36,"line":88},[34,229247,2421],{"class":181},[34,229249,2424],{"class":47},[34,229251,1607],{"class":181},[34,229253,229254],{"class":54},"\"Count changed:\"",[34,229256,1798],{"class":181},[34,229258,4284],{"class":47},[34,229260,4343],{"class":181},[34,229262,229263],{"class":36,"line":242},[34,229264,3186],{"class":181},[34,229266,229267],{"class":36,"line":250},[34,229268,62],{"emptyLinePlaceholder":61},[34,229270,229271,229273,229275,229277,229279,229281,229283,229285,229287,229289,229291,229293,229295,229297,229299,229302,229304],{"class":36,"line":263},[34,229272,8155],{"class":580},[34,229274,5470],{"class":181},[34,229276,4509],{"class":177},[34,229278,85667],{"class":47},[34,229280,1301],{"class":580},[34,229282,85672],{"class":181},[34,229284,3361],{"class":580},[34,229286,85677],{"class":47},[34,229288,1607],{"class":181},[34,229290,4377],{"class":675},[34,229292,1895],{"class":580},[34,229294,4382],{"class":181},[34,229296,2940],{"class":580},[34,229298,3567],{"class":50},[34,229300,229301],{"class":181},")}>Increment\u003C/",[34,229303,4509],{"class":177},[34,229305,4834],{"class":181},[34,229307,229308],{"class":36,"line":275},[34,229309,693],{"class":181},[388,229311,229312],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .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":30,"searchDepth":44,"depth":44,"links":229314},[229315],{"id":229169,"depth":44,"text":229164},"Effects in SolidJS.",{},"/solidjs/effects",{"title":229164,"description":229316},"solidjs/effects",[228259,8606,219152,982,573],"uN8dDIOeu1maleSMukkrFWcmyMk8otnuMqwjzQ3sggs",{"id":229324,"title":229325,"body":229326,"date":402,"description":229429,"extension":404,"meta":229430,"navigation":61,"order":700,"path":229431,"seo":229432,"stem":229433,"subject":228259,"tags":229434,"__hash__":229435},"topics/solidjs/error-boundary.md","Error Boundary",{"type":8,"value":229327,"toc":229426},[229328,229331,229423],[11,229329,229325],{"id":229330},"error-boundary",[25,229332,229334],{"className":198968,"code":229333,"language":198970,"meta":30,"style":30},"import { ErrorBoundary } from \"solid-js\";\n\nfunction App() {\n  return (\n    \u003CErrorBoundary fallback={(err) => \u003Cp>Error: {err.message}\u003C/p>}>\n      \u003CRiskyComponent />\n    \u003C/ErrorBoundary>\n  );\n}\n",[20,229335,229336,229349,229353,229361,229367,229398,229407,229415,229419],{"__ignoreMap":30},[34,229337,229338,229340,229343,229345,229347],{"class":36,"line":37},[34,229339,581],{"class":580},[34,229341,229342],{"class":181}," { ErrorBoundary } ",[34,229344,587],{"class":580},[34,229346,228286],{"class":54},[34,229348,593],{"class":181},[34,229350,229351],{"class":36,"line":44},[34,229352,62],{"emptyLinePlaceholder":61},[34,229354,229355,229357,229359],{"class":36,"line":58},[34,229356,11044],{"class":580},[34,229358,202507],{"class":47},[34,229360,836],{"class":181},[34,229362,229363,229365],{"class":36,"line":65},[34,229364,8155],{"class":580},[34,229366,13975],{"class":181},[34,229368,229369,229371,229374,229377,229379,229381,229383,229385,229387,229389,229391,229394,229396],{"class":36,"line":71},[34,229370,1294],{"class":181},[34,229372,229373],{"class":50},"ErrorBoundary",[34,229375,229376],{"class":47}," fallback",[34,229378,1301],{"class":580},[34,229380,202869],{"class":181},[34,229382,20566],{"class":675},[34,229384,4817],{"class":181},[34,229386,3361],{"class":580},[34,229388,5470],{"class":181},[34,229390,16],{"class":177},[34,229392,229393],{"class":181},">Error: {err.message}\u003C/",[34,229395,16],{"class":177},[34,229397,228719],{"class":181},[34,229399,229400,229402,229405],{"class":36,"line":77},[34,229401,85662],{"class":181},[34,229403,229404],{"class":50},"RiskyComponent",[34,229406,1187],{"class":181},[34,229408,229409,229411,229413],{"class":36,"line":82},[34,229410,74431],{"class":181},[34,229412,229373],{"class":50},[34,229414,1248],{"class":181},[34,229416,229417],{"class":36,"line":88},[34,229418,61002],{"class":181},[34,229420,229421],{"class":36,"line":242},[34,229422,693],{"class":181},[388,229424,229425],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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":30,"searchDepth":44,"depth":44,"links":229427},[229428],{"id":229330,"depth":44,"text":229325},"Error Boundary in SolidJS.",{},"/solidjs/error-boundary",{"title":229325,"description":229429},"solidjs/error-boundary",[228259,8606,219152,982,573],"pE_dRZDdqLfvWJCnabubs8bKiXfiB9E0yTNKjdWUJ-I",{"id":229437,"title":199989,"body":229438,"date":402,"description":229628,"extension":404,"meta":229629,"navigation":61,"order":734,"path":229630,"seo":229631,"stem":229632,"subject":228259,"tags":229633,"__hash__":229634},"topics/solidjs/event-handling.md",{"type":8,"value":229439,"toc":229625},[229440,229442,229622],[11,229441,199989],{"id":199994},[25,229443,229445],{"className":198968,"code":229444,"language":198970,"meta":30,"style":30},"function EventExamples() {\n  // Basic event handler\n  const handleClick = (e) => console.log(\"Clicked!\", e);\n\n  // With parameters using bind\n  const handleItemClick = (id, e) => console.log(\"Item:\", id);\n\n  return (\n    \u003C>\n      \u003Cbutton onClick={handleClick}>Click Me\u003C/button>\n      \u003Cbutton onClick={[handleItemClick, 123]}>Item 123\u003C/button>\n      \u003Cinput onInput={(e) => console.log(e.target.value)} />\n    \u003C/>\n  );\n}\n",[20,229446,229447,229456,229461,229489,229493,229498,229531,229535,229541,229545,229562,229584,229610,229614,229618],{"__ignoreMap":30},[34,229448,229449,229451,229454],{"class":36,"line":37},[34,229450,11044],{"class":580},[34,229452,229453],{"class":47}," EventExamples",[34,229455,836],{"class":181},[34,229457,229458],{"class":36,"line":44},[34,229459,229460],{"class":40},"  // Basic event handler\n",[34,229462,229463,229465,229467,229469,229471,229473,229475,229477,229479,229481,229483,229486],{"class":36,"line":58},[34,229464,17415],{"class":580},[34,229466,200137],{"class":47},[34,229468,683],{"class":580},[34,229470,3204],{"class":181},[34,229472,5476],{"class":675},[34,229474,4817],{"class":181},[34,229476,3361],{"class":580},[34,229478,4940],{"class":181},[34,229480,2424],{"class":47},[34,229482,1607],{"class":181},[34,229484,229485],{"class":54},"\"Clicked!\"",[34,229487,229488],{"class":181},", e);\n",[34,229490,229491],{"class":36,"line":65},[34,229492,62],{"emptyLinePlaceholder":61},[34,229494,229495],{"class":36,"line":71},[34,229496,229497],{"class":40},"  // With parameters using bind\n",[34,229499,229500,229502,229505,229507,229509,229511,229513,229515,229517,229519,229521,229523,229525,229528],{"class":36,"line":77},[34,229501,17415],{"class":580},[34,229503,229504],{"class":47}," handleItemClick",[34,229506,683],{"class":580},[34,229508,3204],{"class":181},[34,229510,3885],{"class":675},[34,229512,1798],{"class":181},[34,229514,5476],{"class":675},[34,229516,4817],{"class":181},[34,229518,3361],{"class":580},[34,229520,4940],{"class":181},[34,229522,2424],{"class":47},[34,229524,1607],{"class":181},[34,229526,229527],{"class":54},"\"Item:\"",[34,229529,229530],{"class":181},", id);\n",[34,229532,229533],{"class":36,"line":82},[34,229534,62],{"emptyLinePlaceholder":61},[34,229536,229537,229539],{"class":36,"line":88},[34,229538,8155],{"class":580},[34,229540,13975],{"class":181},[34,229542,229543],{"class":36,"line":242},[34,229544,199259],{"class":181},[34,229546,229547,229549,229551,229553,229555,229558,229560],{"class":36,"line":250},[34,229548,85662],{"class":181},[34,229550,4509],{"class":177},[34,229552,85667],{"class":47},[34,229554,1301],{"class":580},[34,229556,229557],{"class":181},"{handleClick}>Click Me\u003C/",[34,229559,4509],{"class":177},[34,229561,1248],{"class":181},[34,229563,229564,229566,229568,229570,229572,229575,229577,229580,229582],{"class":36,"line":263},[34,229565,85662],{"class":181},[34,229567,4509],{"class":177},[34,229569,85667],{"class":47},[34,229571,1301],{"class":580},[34,229573,229574],{"class":181},"{[handleItemClick, ",[34,229576,23913],{"class":50},[34,229578,229579],{"class":181},"]}>Item 123\u003C/",[34,229581,4509],{"class":177},[34,229583,1248],{"class":181},[34,229585,229586,229588,229590,229593,229595,229597,229599,229601,229603,229605,229607],{"class":36,"line":275},[34,229587,85662],{"class":181},[34,229589,4600],{"class":177},[34,229591,229592],{"class":47}," onInput",[34,229594,1301],{"class":580},[34,229596,202869],{"class":181},[34,229598,5476],{"class":675},[34,229600,4817],{"class":181},[34,229602,3361],{"class":580},[34,229604,4940],{"class":181},[34,229606,2424],{"class":47},[34,229608,229609],{"class":181},"(e.target.value)} />\n",[34,229611,229612],{"class":36,"line":700},[34,229613,199441],{"class":181},[34,229615,229616],{"class":36,"line":706},[34,229617,61002],{"class":181},[34,229619,229620],{"class":36,"line":715},[34,229621,693],{"class":181},[388,229623,229624],{},"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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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":30,"searchDepth":44,"depth":44,"links":229626},[229627],{"id":199994,"depth":44,"text":199989},"Event Handling in SolidJS.",{},"/solidjs/event-handling",{"title":199989,"description":229628},"solidjs/event-handling",[228259,8606,219152,982,573],"o8pykXLoaaKV4BWB8o4nOUIFXxfi7CWc2y0LXivIOGQ",{"id":229636,"title":229637,"body":229638,"date":402,"description":229823,"extension":404,"meta":229824,"navigation":61,"order":742,"path":229825,"seo":229826,"stem":229827,"subject":228259,"tags":229828,"__hash__":229829},"topics/solidjs/lifecycle-with-onmount-and-oncleanup.md","Lifecycle with onMount and onCleanup",{"type":8,"value":229639,"toc":229820},[229640,229643,229817],[11,229641,229637],{"id":229642},"lifecycle-with-onmount-and-oncleanup",[25,229644,229646],{"className":198968,"code":229645,"language":198970,"meta":30,"style":30},"import { onMount, onCleanup } from \"solid-js\";\n\nfunction Timer() {\n  const [count, setCount] = createSignal(0);\n\n  onMount(() => {\n    // Runs once when component mounts\n    const interval = setInterval(() => setCount(c => c + 1), 1000);\n    \n    onCleanup(() => {\n      // Cleanup when component unmounts\n      clearInterval(interval);\n    });\n  });\n\n  return \u003Cp>Seconds: {count()}\u003C/p>;\n}\n",[20,229647,229648,229661,229665,229674,229698,229702,229713,229718,229754,229758,229769,229774,229782,229786,229790,229794,229813],{"__ignoreMap":30},[34,229649,229650,229652,229655,229657,229659],{"class":36,"line":37},[34,229651,581],{"class":580},[34,229653,229654],{"class":181}," { onMount, onCleanup } ",[34,229656,587],{"class":580},[34,229658,228286],{"class":54},[34,229660,593],{"class":181},[34,229662,229663],{"class":36,"line":44},[34,229664,62],{"emptyLinePlaceholder":61},[34,229666,229667,229669,229672],{"class":36,"line":58},[34,229668,11044],{"class":580},[34,229670,229671],{"class":47}," Timer",[34,229673,836],{"class":181},[34,229675,229676,229678,229680,229682,229684,229686,229688,229690,229692,229694,229696],{"class":36,"line":65},[34,229677,17415],{"class":580},[34,229679,8315],{"class":181},[34,229681,4284],{"class":50},[34,229683,1798],{"class":181},[34,229685,85630],{"class":50},[34,229687,17799],{"class":181},[34,229689,1301],{"class":580},[34,229691,228322],{"class":47},[34,229693,1607],{"class":181},[34,229695,2773],{"class":50},[34,229697,1586],{"class":181},[34,229699,229700],{"class":36,"line":71},[34,229701,62],{"emptyLinePlaceholder":61},[34,229703,229704,229707,229709,229711],{"class":36,"line":77},[34,229705,229706],{"class":47},"  onMount",[34,229708,4275],{"class":181},[34,229710,3361],{"class":580},[34,229712,661],{"class":181},[34,229714,229715],{"class":36,"line":82},[34,229716,229717],{"class":40},"    // Runs once when component mounts\n",[34,229719,229720,229722,229725,229727,229730,229732,229734,229736,229738,229740,229742,229744,229746,229748,229750,229752],{"class":36,"line":88},[34,229721,1632],{"class":580},[34,229723,229724],{"class":50}," interval",[34,229726,683],{"class":580},[34,229728,229729],{"class":47}," setInterval",[34,229731,4275],{"class":181},[34,229733,3361],{"class":580},[34,229735,85677],{"class":47},[34,229737,1607],{"class":181},[34,229739,4377],{"class":675},[34,229741,1895],{"class":580},[34,229743,4382],{"class":181},[34,229745,2940],{"class":580},[34,229747,3567],{"class":50},[34,229749,184714],{"class":181},[34,229751,15304],{"class":50},[34,229753,1586],{"class":181},[34,229755,229756],{"class":36,"line":242},[34,229757,3666],{"class":181},[34,229759,229760,229763,229765,229767],{"class":36,"line":250},[34,229761,229762],{"class":47},"    onCleanup",[34,229764,4275],{"class":181},[34,229766,3361],{"class":580},[34,229768,661],{"class":181},[34,229770,229771],{"class":36,"line":263},[34,229772,229773],{"class":40},"      // Cleanup when component unmounts\n",[34,229775,229776,229779],{"class":36,"line":275},[34,229777,229778],{"class":47},"      clearInterval",[34,229780,229781],{"class":181},"(interval);\n",[34,229783,229784],{"class":36,"line":700},[34,229785,3660],{"class":181},[34,229787,229788],{"class":36,"line":706},[34,229789,3186],{"class":181},[34,229791,229792],{"class":36,"line":715},[34,229793,62],{"emptyLinePlaceholder":61},[34,229795,229796,229798,229800,229802,229805,229807,229809,229811],{"class":36,"line":725},[34,229797,8155],{"class":580},[34,229799,5470],{"class":181},[34,229801,16],{"class":177},[34,229803,229804],{"class":181},">Seconds: {",[34,229806,4284],{"class":47},[34,229808,229039],{"class":181},[34,229810,16],{"class":177},[34,229812,4834],{"class":181},[34,229814,229815],{"class":36,"line":734},[34,229816,693],{"class":181},[388,229818,229819],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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":30,"searchDepth":44,"depth":44,"links":229821},[229822],{"id":229642,"depth":44,"text":229637},"Lifecycle with onMount and onCleanup in SolidJS.",{},"/solidjs/lifecycle-with-onmount-and-oncleanup",{"title":229637,"description":229823},"solidjs/lifecycle-with-onmount-and-oncleanup",[228259,8606,219152,982,573],"YNx345F2G_JJgHrtmQ2NG0sSoDbNwVsRW_JP1FSigik",{"id":229831,"title":229832,"body":229833,"date":402,"description":229977,"extension":404,"meta":229978,"navigation":61,"order":242,"path":229979,"seo":229980,"stem":229981,"subject":228259,"tags":229982,"__hash__":229983},"topics/solidjs/list-rendering.md","List Rendering",{"type":8,"value":229834,"toc":229974},[229835,229838,229971],[11,229836,229832],{"id":229837},"list-rendering",[25,229839,229841],{"className":198968,"code":229840,"language":198970,"meta":30,"style":30},"import { For } from \"solid-js\";\n\nfunction TodoList(props) {\n  return (\n    \u003Cul>\n      \u003CFor each={props.todos}>\n        {(todo, index) => (\n          \u003Cli>{index() + 1}: {todo.text}\u003C/li>\n        )}\n      \u003C/For>\n    \u003C/ul>\n  );\n}\n",[20,229842,229843,229856,229860,229872,229878,229886,229901,229918,229942,229947,229955,229963,229967],{"__ignoreMap":30},[34,229844,229845,229847,229850,229852,229854],{"class":36,"line":37},[34,229846,581],{"class":580},[34,229848,229849],{"class":181}," { For } ",[34,229851,587],{"class":580},[34,229853,228286],{"class":54},[34,229855,593],{"class":181},[34,229857,229858],{"class":36,"line":44},[34,229859,62],{"emptyLinePlaceholder":61},[34,229861,229862,229864,229866,229868,229870],{"class":36,"line":58},[34,229863,11044],{"class":580},[34,229865,201676],{"class":47},[34,229867,1607],{"class":181},[34,229869,228226],{"class":675},[34,229871,2416],{"class":181},[34,229873,229874,229876],{"class":36,"line":65},[34,229875,8155],{"class":580},[34,229877,13975],{"class":181},[34,229879,229880,229882,229884],{"class":36,"line":71},[34,229881,1294],{"class":181},[34,229883,309],{"class":177},[34,229885,1248],{"class":181},[34,229887,229888,229890,229893,229896,229898],{"class":36,"line":77},[34,229889,85662],{"class":181},[34,229891,229892],{"class":50},"For",[34,229894,229895],{"class":47}," each",[34,229897,1301],{"class":580},[34,229899,229900],{"class":181},"{props.todos}>\n",[34,229902,229903,229906,229908,229910,229912,229914,229916],{"class":36,"line":82},[34,229904,229905],{"class":181},"        {(",[34,229907,201576],{"class":675},[34,229909,1798],{"class":181},[34,229911,200432],{"class":675},[34,229913,4817],{"class":181},[34,229915,3361],{"class":580},[34,229917,13975],{"class":181},[34,229919,229920,229922,229924,229927,229929,229931,229933,229935,229938,229940],{"class":36,"line":88},[34,229921,201793],{"class":181},[34,229923,312],{"class":177},[34,229925,229926],{"class":181},">{",[34,229928,200432],{"class":47},[34,229930,672],{"class":181},[34,229932,2940],{"class":580},[34,229934,3567],{"class":50},[34,229936,229937],{"class":181},"}: {todo.text}\u003C/",[34,229939,312],{"class":177},[34,229941,1248],{"class":181},[34,229943,229944],{"class":36,"line":242},[34,229945,229946],{"class":181},"        )}\n",[34,229948,229949,229951,229953],{"class":36,"line":250},[34,229950,85888],{"class":181},[34,229952,229892],{"class":50},[34,229954,1248],{"class":181},[34,229956,229957,229959,229961],{"class":36,"line":263},[34,229958,74431],{"class":181},[34,229960,309],{"class":177},[34,229962,1248],{"class":181},[34,229964,229965],{"class":36,"line":275},[34,229966,61002],{"class":181},[34,229968,229969],{"class":36,"line":700},[34,229970,693],{"class":181},[388,229972,229973],{},"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 .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}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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":30,"searchDepth":44,"depth":44,"links":229975},[229976],{"id":229837,"depth":44,"text":229832},"List Rendering in SolidJS.",{},"/solidjs/list-rendering",{"title":229832,"description":229977},"solidjs/list-rendering",[228259,8606,219152,982,573],"MCHKxvvacTCZQNm8OvPVj7bgcTSTu1HzasoCv2gtTNE",{"id":229985,"title":229986,"body":229987,"date":402,"description":230125,"extension":404,"meta":230126,"navigation":61,"order":77,"path":230127,"seo":230128,"stem":230129,"subject":228259,"tags":230130,"__hash__":230131},"topics/solidjs/memos-cached-computations.md","Memos (Cached Computations)",{"type":8,"value":229988,"toc":230122},[229989,229992,230120],[11,229990,229986],{"id":229991},"memos-cached-computations",[25,229993,229995],{"className":198968,"code":229994,"language":198970,"meta":30,"style":30},"import { createSignal, createMemo } from \"solid-js\";\n\nfunction ExpensiveCalculation() {\n  const [count, setCount] = createSignal(0);\n\n  // Only recalculates when count changes\n  const expensive = createMemo(() => {\n    return count() * 2;\n  });\n\n  return \u003Cp>Result: {expensive()}\u003C/p>;\n}\n",[20,229996,229997,230010,230014,230023,230047,230051,230056,230074,230088,230092,230096,230116],{"__ignoreMap":30},[34,229998,229999,230001,230004,230006,230008],{"class":36,"line":37},[34,230000,581],{"class":580},[34,230002,230003],{"class":181}," { createSignal, createMemo } ",[34,230005,587],{"class":580},[34,230007,228286],{"class":54},[34,230009,593],{"class":181},[34,230011,230012],{"class":36,"line":44},[34,230013,62],{"emptyLinePlaceholder":61},[34,230015,230016,230018,230021],{"class":36,"line":58},[34,230017,11044],{"class":580},[34,230019,230020],{"class":47}," ExpensiveCalculation",[34,230022,836],{"class":181},[34,230024,230025,230027,230029,230031,230033,230035,230037,230039,230041,230043,230045],{"class":36,"line":65},[34,230026,17415],{"class":580},[34,230028,8315],{"class":181},[34,230030,4284],{"class":50},[34,230032,1798],{"class":181},[34,230034,85630],{"class":50},[34,230036,17799],{"class":181},[34,230038,1301],{"class":580},[34,230040,228322],{"class":47},[34,230042,1607],{"class":181},[34,230044,2773],{"class":50},[34,230046,1586],{"class":181},[34,230048,230049],{"class":36,"line":71},[34,230050,62],{"emptyLinePlaceholder":61},[34,230052,230053],{"class":36,"line":77},[34,230054,230055],{"class":40},"  // Only recalculates when count changes\n",[34,230057,230058,230060,230063,230065,230068,230070,230072],{"class":36,"line":82},[34,230059,17415],{"class":580},[34,230061,230062],{"class":50}," expensive",[34,230064,683],{"class":580},[34,230066,230067],{"class":47}," createMemo",[34,230069,4275],{"class":181},[34,230071,3361],{"class":580},[34,230073,661],{"class":181},[34,230075,230076,230078,230080,230082,230084,230086],{"class":36,"line":88},[34,230077,1564],{"class":580},[34,230079,161661],{"class":47},[34,230081,672],{"class":181},[34,230083,4289],{"class":580},[34,230085,4292],{"class":50},[34,230087,593],{"class":181},[34,230089,230090],{"class":36,"line":242},[34,230091,3186],{"class":181},[34,230093,230094],{"class":36,"line":250},[34,230095,62],{"emptyLinePlaceholder":61},[34,230097,230098,230100,230102,230104,230107,230110,230112,230114],{"class":36,"line":263},[34,230099,8155],{"class":580},[34,230101,5470],{"class":181},[34,230103,16],{"class":177},[34,230105,230106],{"class":181},">Result: {",[34,230108,230109],{"class":47},"expensive",[34,230111,229039],{"class":181},[34,230113,16],{"class":177},[34,230115,4834],{"class":181},[34,230117,230118],{"class":36,"line":275},[34,230119,693],{"class":181},[388,230121,229050],{},{"title":30,"searchDepth":44,"depth":44,"links":230123},[230124],{"id":229991,"depth":44,"text":229986},"Memos (Cached Computations) in SolidJS.",{},"/solidjs/memos-cached-computations",{"title":229986,"description":230125},"solidjs/memos-cached-computations",[228259,8606,219152,982,573],"JacaRZab7BrdIEbcm64dSfeoVkt7Dwy-Dp4di4YIpWE",{"id":230133,"title":230134,"body":230135,"date":2633,"description":230235,"extension":404,"meta":230236,"navigation":61,"order":37,"path":230237,"seo":230238,"stem":230239,"subject":228259,"tags":230240,"__hash__":230241},"topics/solidjs/overview.md","SolidJS",{"type":8,"value":230136,"toc":230233},[230137],[309,230138,230139,230143,230149,230153,230157,230161,230167,230171,230175,230181,230185,230191,230195,230201,230205,230211,230215,230219,230223,230229],{},[312,230140,230141],{},[145,230142,228164],{"href":228256},[312,230144,230145],{},[145,230146,230148],{"href":230147},"/solidjs/signals-reactive-state","Signals (Reactive State)",[312,230150,230151],{},[145,230152,228927],{"href":229056},[312,230154,230155],{},[145,230156,229164],{"href":229318},[312,230158,230159],{},[145,230160,229986],{"href":230127},[312,230162,230163],{},[145,230164,230166],{"href":230165},"/solidjs/stores-nested-reactivity","Stores (Nested Reactivity)",[312,230168,230169],{},[145,230170,199217],{"href":228757},[312,230172,230173],{},[145,230174,229832],{"href":229979},[312,230176,230177],{},[145,230178,230180],{"href":230179},"/solidjs/switchmatch","Switch/Match",[312,230182,230183],{},[145,230184,229063],{"href":229157},[312,230186,230187],{},[145,230188,230190],{"href":230189},"/solidjs/portal","Portal",[312,230192,230193],{},[145,230194,229325],{"href":229431},[312,230196,230197],{},[145,230198,230200],{"href":230199},"/solidjs/resources-async-data","Resources (Async Data)",[312,230202,230203],{},[145,230204,228764],{"href":228920},[312,230206,230207],{},[145,230208,230210],{"href":230209},"/solidjs/refs","Refs",[312,230212,230213],{},[145,230214,199989],{"href":229630},[312,230216,230217],{},[145,230218,229637],{"href":229825},[312,230220,230221],{},[145,230222,228440],{"href":228637},[312,230224,230225],{},[145,230226,230228],{"href":230227},"/solidjs/spread-props","Spread Props",[312,230230,230231],{},[145,230232,228264],{"href":228433},{"title":30,"searchDepth":44,"depth":44,"links":230234},[],"Essential SolidJS syntax, reactivity primitives, and patterns for building high-performance web applications.",{},"/solidjs/overview",{"title":230134,"description":230235},"solidjs/overview",[228259,8606,219152,982,573],"NTNFyJufN8LoFJsAfzRBDEoaT7jzZoxlAbH1dN-XjFY",{"id":230243,"title":230190,"body":230244,"date":402,"description":230344,"extension":404,"meta":230345,"navigation":61,"order":275,"path":230189,"seo":230346,"stem":230347,"subject":228259,"tags":230348,"__hash__":230349},"topics/solidjs/portal.md",{"type":8,"value":230245,"toc":230341},[230246,230249,230339],[11,230247,230190],{"id":230248},"portal",[25,230250,230252],{"className":198968,"code":230251,"language":198970,"meta":30,"style":30},"import { Portal } from \"solid-js/web\";\n\nfunction Modal(props) {\n  return (\n    \u003CPortal mount={document.body}>\n      \u003Cdiv class=\"modal\">{props.children}\u003C/div>\n    \u003C/Portal>\n  );\n}\n",[20,230253,230254,230267,230271,230284,230290,230304,230323,230331,230335],{"__ignoreMap":30},[34,230255,230256,230258,230261,230263,230265],{"class":36,"line":37},[34,230257,581],{"class":580},[34,230259,230260],{"class":181}," { Portal } ",[34,230262,587],{"class":580},[34,230264,229085],{"class":54},[34,230266,593],{"class":181},[34,230268,230269],{"class":36,"line":44},[34,230270,62],{"emptyLinePlaceholder":61},[34,230272,230273,230275,230278,230280,230282],{"class":36,"line":58},[34,230274,11044],{"class":580},[34,230276,230277],{"class":47}," Modal",[34,230279,1607],{"class":181},[34,230281,228226],{"class":675},[34,230283,2416],{"class":181},[34,230285,230286,230288],{"class":36,"line":65},[34,230287,8155],{"class":580},[34,230289,13975],{"class":181},[34,230291,230292,230294,230296,230299,230301],{"class":36,"line":71},[34,230293,1294],{"class":181},[34,230295,230190],{"class":50},[34,230297,230298],{"class":47}," mount",[34,230300,1301],{"class":580},[34,230302,230303],{"class":181},"{document.body}>\n",[34,230305,230306,230308,230310,230312,230314,230317,230319,230321],{"class":36,"line":77},[34,230307,85662],{"class":181},[34,230309,1240],{"class":177},[34,230311,655],{"class":47},[34,230313,1301],{"class":580},[34,230315,230316],{"class":54},"\"modal\"",[34,230318,229131],{"class":181},[34,230320,1240],{"class":177},[34,230322,1248],{"class":181},[34,230324,230325,230327,230329],{"class":36,"line":82},[34,230326,74431],{"class":181},[34,230328,230190],{"class":50},[34,230330,1248],{"class":181},[34,230332,230333],{"class":36,"line":88},[34,230334,61002],{"class":181},[34,230336,230337],{"class":36,"line":242},[34,230338,693],{"class":181},[388,230340,228751],{},{"title":30,"searchDepth":44,"depth":44,"links":230342},[230343],{"id":230248,"depth":44,"text":230190},"Portal in SolidJS.",{},{"title":230190,"description":230344},"solidjs/portal",[228259,8606,219152,982,573],"ub7NySZukiHSAI8rBdd17NsZyRDCbjT4_1jacxz-VOE",{"id":230351,"title":230210,"body":230352,"date":402,"description":230464,"extension":404,"meta":230465,"navigation":61,"order":725,"path":230209,"seo":230466,"stem":230467,"subject":228259,"tags":230468,"__hash__":230469},"topics/solidjs/refs.md",{"type":8,"value":230353,"toc":230461},[230354,230357,230458],[11,230355,230210],{"id":230356},"refs",[25,230358,230360],{"className":198968,"code":230359,"language":198970,"meta":30,"style":30},"function InputWithFocus() {\n  let inputRef;\n\n  const focusInput = () => inputRef.focus();\n\n  return (\n    \u003C>\n      \u003Cinput ref={inputRef} />\n      \u003Cbutton onClick={focusInput}>Focus Input\u003C/button>\n    \u003C/>\n  );\n}\n",[20,230361,230362,230371,230378,230382,230402,230406,230412,230416,230429,230446,230450,230454],{"__ignoreMap":30},[34,230363,230364,230366,230369],{"class":36,"line":37},[34,230365,11044],{"class":580},[34,230367,230368],{"class":47}," InputWithFocus",[34,230370,836],{"class":181},[34,230372,230373,230375],{"class":36,"line":44},[34,230374,63085],{"class":580},[34,230376,230377],{"class":181}," inputRef;\n",[34,230379,230380],{"class":36,"line":58},[34,230381,62],{"emptyLinePlaceholder":61},[34,230383,230384,230386,230389,230391,230393,230395,230398,230400],{"class":36,"line":65},[34,230385,17415],{"class":580},[34,230387,230388],{"class":47}," focusInput",[34,230390,683],{"class":580},[34,230392,17406],{"class":181},[34,230394,3361],{"class":580},[34,230396,230397],{"class":181}," inputRef.",[34,230399,4906],{"class":47},[34,230401,851],{"class":181},[34,230403,230404],{"class":36,"line":71},[34,230405,62],{"emptyLinePlaceholder":61},[34,230407,230408,230410],{"class":36,"line":77},[34,230409,8155],{"class":580},[34,230411,13975],{"class":181},[34,230413,230414],{"class":36,"line":82},[34,230415,199259],{"class":181},[34,230417,230418,230420,230422,230424,230426],{"class":36,"line":88},[34,230419,85662],{"class":181},[34,230421,4600],{"class":177},[34,230423,162430],{"class":47},[34,230425,1301],{"class":580},[34,230427,230428],{"class":181},"{inputRef} />\n",[34,230430,230431,230433,230435,230437,230439,230442,230444],{"class":36,"line":242},[34,230432,85662],{"class":181},[34,230434,4509],{"class":177},[34,230436,85667],{"class":47},[34,230438,1301],{"class":580},[34,230440,230441],{"class":181},"{focusInput}>Focus Input\u003C/",[34,230443,4509],{"class":177},[34,230445,1248],{"class":181},[34,230447,230448],{"class":36,"line":250},[34,230449,199441],{"class":181},[34,230451,230452],{"class":36,"line":263},[34,230453,61002],{"class":181},[34,230455,230456],{"class":36,"line":275},[34,230457,693],{"class":181},[388,230459,230460],{},"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 .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":30,"searchDepth":44,"depth":44,"links":230462},[230463],{"id":230356,"depth":44,"text":230210},"Refs in SolidJS.",{},{"title":230210,"description":230464},"solidjs/refs",[228259,8606,219152,982,573],"RJNNrONNG2jRpdtACI5dSUBWvadtHdSJgigY5RA3ct0",{"id":230471,"title":230200,"body":230472,"date":402,"description":230667,"extension":404,"meta":230668,"navigation":61,"order":706,"path":230199,"seo":230669,"stem":230670,"subject":228259,"tags":230671,"__hash__":230672},"topics/solidjs/resources-async-data.md",{"type":8,"value":230473,"toc":230664},[230474,230477,230662],[11,230475,230200],{"id":230476},"resources-async-data",[25,230478,230480],{"className":198968,"code":230479,"language":198970,"meta":30,"style":30},"import { createResource } from \"solid-js\";\n\nasync function fetchUser(id) {\n  const res = await fetch(`/api/users/${id}`);\n  return res.json();\n}\n\nfunction UserProfile(props) {\n  const [user] = createResource(() => props.id, fetchUser);\n\n  return (\n    \u003CShow when={!user.loading} fallback={\u003Cp>Loading...\u003C/p>}>\n      \u003Cp>{user()?.name}\u003C/p>\n    \u003C/Show>\n  );\n}\n",[20,230481,230482,230495,230499,230513,230535,230545,230549,230553,230566,230588,230592,230598,230629,230646,230654,230658],{"__ignoreMap":30},[34,230483,230484,230486,230489,230491,230493],{"class":36,"line":37},[34,230485,581],{"class":580},[34,230487,230488],{"class":181}," { createResource } ",[34,230490,587],{"class":580},[34,230492,228286],{"class":54},[34,230494,593],{"class":181},[34,230496,230497],{"class":36,"line":44},[34,230498,62],{"emptyLinePlaceholder":61},[34,230500,230501,230503,230505,230507,230509,230511],{"class":36,"line":58},[34,230502,17403],{"class":580},[34,230504,8037],{"class":580},[34,230506,201149],{"class":47},[34,230508,1607],{"class":181},[34,230510,3885],{"class":675},[34,230512,2416],{"class":181},[34,230514,230515,230517,230519,230521,230523,230525,230527,230529,230531,230533],{"class":36,"line":65},[34,230516,17415],{"class":580},[34,230518,85438],{"class":50},[34,230520,683],{"class":580},[34,230522,14763],{"class":580},[34,230524,14766],{"class":47},[34,230526,1607],{"class":181},[34,230528,162032],{"class":54},[34,230530,3885],{"class":181},[34,230532,3925],{"class":54},[34,230534,1586],{"class":181},[34,230536,230537,230539,230541,230543],{"class":36,"line":71},[34,230538,8155],{"class":580},[34,230540,75763],{"class":181},[34,230542,14790],{"class":47},[34,230544,851],{"class":181},[34,230546,230547],{"class":36,"line":77},[34,230548,693],{"class":181},[34,230550,230551],{"class":36,"line":82},[34,230552,62],{"emptyLinePlaceholder":61},[34,230554,230555,230557,230560,230562,230564],{"class":36,"line":88},[34,230556,11044],{"class":580},[34,230558,230559],{"class":47}," UserProfile",[34,230561,1607],{"class":181},[34,230563,228226],{"class":675},[34,230565,2416],{"class":181},[34,230567,230568,230570,230572,230574,230576,230578,230581,230583,230585],{"class":36,"line":242},[34,230569,17415],{"class":580},[34,230571,8315],{"class":181},[34,230573,3945],{"class":50},[34,230575,17799],{"class":181},[34,230577,1301],{"class":580},[34,230579,230580],{"class":47}," createResource",[34,230582,4275],{"class":181},[34,230584,3361],{"class":580},[34,230586,230587],{"class":181}," props.id, fetchUser);\n",[34,230589,230590],{"class":36,"line":250},[34,230591,62],{"emptyLinePlaceholder":61},[34,230593,230594,230596],{"class":36,"line":263},[34,230595,8155],{"class":580},[34,230597,13975],{"class":181},[34,230599,230600,230602,230604,230606,230608,230610,230612,230615,230617,230619,230621,230623,230625,230627],{"class":36,"line":275},[34,230601,1294],{"class":181},[34,230603,228695],{"class":50},[34,230605,134710],{"class":47},[34,230607,1301],{"class":580},[34,230609,13990],{"class":181},[34,230611,10307],{"class":580},[34,230613,230614],{"class":181},"user.loading} ",[34,230616,161521],{"class":47},[34,230618,1301],{"class":580},[34,230620,228709],{"class":181},[34,230622,16],{"class":177},[34,230624,1407],{"class":181},[34,230626,16],{"class":177},[34,230628,228719],{"class":181},[34,230630,230631,230633,230635,230637,230639,230642,230644],{"class":36,"line":700},[34,230632,85662],{"class":181},[34,230634,16],{"class":177},[34,230636,229926],{"class":181},[34,230638,3945],{"class":47},[34,230640,230641],{"class":181},"()?.name}\u003C/",[34,230643,16],{"class":177},[34,230645,1248],{"class":181},[34,230647,230648,230650,230652],{"class":36,"line":706},[34,230649,74431],{"class":181},[34,230651,228695],{"class":50},[34,230653,1248],{"class":181},[34,230655,230656],{"class":36,"line":715},[34,230657,61002],{"class":181},[34,230659,230660],{"class":36,"line":725},[34,230661,693],{"class":181},[388,230663,228751],{},{"title":30,"searchDepth":44,"depth":44,"links":230665},[230666],{"id":230476,"depth":44,"text":230200},"Resources (Async Data) in SolidJS.",{},{"title":230200,"description":230667},"solidjs/resources-async-data",[228259,8606,219152,982,573],"qT_O7E60aiLQJrqohx577vlYjdwOjsrJzcVpHJGXIuw",{"id":230674,"title":230148,"body":230675,"date":402,"description":230808,"extension":404,"meta":230809,"navigation":61,"order":58,"path":230147,"seo":230810,"stem":230811,"subject":228259,"tags":230812,"__hash__":230813},"topics/solidjs/signals-reactive-state.md",{"type":8,"value":230676,"toc":230805},[230677,230680,230803],[11,230678,230148],{"id":230679},"signals-reactive-state",[25,230681,230683],{"className":198968,"code":230682,"language":198970,"meta":30,"style":30},"import { createSignal } from \"solid-js\";\n\nfunction Counter() {\n  // createSignal returns [getter, setter]\n  const [count, setCount] = createSignal(0);\n\n  return (\n    \u003Cbutton onClick={() => setCount(count() + 1)}>\n      Count: {count()}\n    \u003C/button>\n  );\n}\n",[20,230684,230685,230697,230701,230709,230714,230738,230742,230748,230777,230787,230795,230799],{"__ignoreMap":30},[34,230686,230687,230689,230691,230693,230695],{"class":36,"line":37},[34,230688,581],{"class":580},[34,230690,228944],{"class":181},[34,230692,587],{"class":580},[34,230694,228286],{"class":54},[34,230696,593],{"class":181},[34,230698,230699],{"class":36,"line":44},[34,230700,62],{"emptyLinePlaceholder":61},[34,230702,230703,230705,230707],{"class":36,"line":58},[34,230704,11044],{"class":580},[34,230706,85615],{"class":47},[34,230708,836],{"class":181},[34,230710,230711],{"class":36,"line":65},[34,230712,230713],{"class":40},"  // createSignal returns [getter, setter]\n",[34,230715,230716,230718,230720,230722,230724,230726,230728,230730,230732,230734,230736],{"class":36,"line":71},[34,230717,17415],{"class":580},[34,230719,8315],{"class":181},[34,230721,4284],{"class":50},[34,230723,1798],{"class":181},[34,230725,85630],{"class":50},[34,230727,17799],{"class":181},[34,230729,1301],{"class":580},[34,230731,228322],{"class":47},[34,230733,1607],{"class":181},[34,230735,2773],{"class":50},[34,230737,1586],{"class":181},[34,230739,230740],{"class":36,"line":77},[34,230741,62],{"emptyLinePlaceholder":61},[34,230743,230744,230746],{"class":36,"line":82},[34,230745,8155],{"class":580},[34,230747,13975],{"class":181},[34,230749,230750,230752,230754,230756,230758,230760,230762,230764,230766,230768,230770,230772,230774],{"class":36,"line":88},[34,230751,1294],{"class":181},[34,230753,4509],{"class":177},[34,230755,85667],{"class":47},[34,230757,1301],{"class":580},[34,230759,85672],{"class":181},[34,230761,3361],{"class":580},[34,230763,85677],{"class":47},[34,230765,1607],{"class":181},[34,230767,4284],{"class":47},[34,230769,672],{"class":181},[34,230771,2940],{"class":580},[34,230773,3567],{"class":50},[34,230775,230776],{"class":181},")}>\n",[34,230778,230779,230782,230784],{"class":36,"line":242},[34,230780,230781],{"class":181},"      Count: {",[34,230783,4284],{"class":47},[34,230785,230786],{"class":181},"()}\n",[34,230788,230789,230791,230793],{"class":36,"line":250},[34,230790,74431],{"class":181},[34,230792,4509],{"class":177},[34,230794,1248],{"class":181},[34,230796,230797],{"class":36,"line":263},[34,230798,61002],{"class":181},[34,230800,230801],{"class":36,"line":275},[34,230802,693],{"class":181},[388,230804,202086],{},{"title":30,"searchDepth":44,"depth":44,"links":230806},[230807],{"id":230679,"depth":44,"text":230148},"Signals (Reactive State) in SolidJS.",{},{"title":230148,"description":230808},"solidjs/signals-reactive-state",[228259,8606,219152,982,573],"b_8rbBTrGnjLBY3NnRT3JeuNWYZ8YxHo_UjXROSKNN4",{"id":230815,"title":230228,"body":230816,"date":402,"description":230943,"extension":404,"meta":230944,"navigation":61,"order":754,"path":230227,"seo":230945,"stem":230946,"subject":228259,"tags":230947,"__hash__":230948},"topics/solidjs/spread-props.md",{"type":8,"value":230817,"toc":230940},[230818,230821,230937],[11,230819,230228],{"id":230820},"spread-props",[25,230822,230824],{"className":198968,"code":230823,"language":198970,"meta":30,"style":30},"function Button(props) {\n  // Split local props from passed-through props\n  const [local, others] = splitProps(props, [\"children\", \"class\"]);\n\n  return (\n    \u003Cbutton class={`btn ${local.class}`} {...others}>\n      {local.children}\n    \u003C/button>\n  );\n}\n",[20,230825,230826,230838,230843,230876,230880,230886,230916,230921,230929,230933],{"__ignoreMap":30},[34,230827,230828,230830,230832,230834,230836],{"class":36,"line":37},[34,230829,11044],{"class":580},[34,230831,199070],{"class":47},[34,230833,1607],{"class":181},[34,230835,228226],{"class":675},[34,230837,2416],{"class":181},[34,230839,230840],{"class":36,"line":44},[34,230841,230842],{"class":40},"  // Split local props from passed-through props\n",[34,230844,230845,230847,230849,230851,230853,230856,230858,230860,230863,230866,230869,230871,230874],{"class":36,"line":58},[34,230846,17415],{"class":580},[34,230848,8315],{"class":181},[34,230850,141300],{"class":50},[34,230852,1798],{"class":181},[34,230854,230855],{"class":50},"others",[34,230857,17799],{"class":181},[34,230859,1301],{"class":580},[34,230861,230862],{"class":47}," splitProps",[34,230864,230865],{"class":181},"(props, [",[34,230867,230868],{"class":54},"\"children\"",[34,230870,1798],{"class":181},[34,230872,230873],{"class":54},"\"class\"",[34,230875,3599],{"class":181},[34,230877,230878],{"class":36,"line":65},[34,230879,62],{"emptyLinePlaceholder":61},[34,230881,230882,230884],{"class":36,"line":71},[34,230883,8155],{"class":580},[34,230885,13975],{"class":181},[34,230887,230888,230890,230892,230894,230896,230898,230901,230903,230905,230907,230909,230911,230913],{"class":36,"line":77},[34,230889,1294],{"class":181},[34,230891,4509],{"class":177},[34,230893,655],{"class":47},[34,230895,1301],{"class":580},[34,230897,13990],{"class":181},[34,230899,230900],{"class":54},"`btn ${",[34,230902,141300],{"class":181},[34,230904,151],{"class":54},[34,230906,30060],{"class":181},[34,230908,3925],{"class":54},[34,230910,170479],{"class":181},[34,230912,16841],{"class":580},[34,230914,230915],{"class":181},"others}>\n",[34,230917,230918],{"class":36,"line":82},[34,230919,230920],{"class":181},"      {local.children}\n",[34,230922,230923,230925,230927],{"class":36,"line":88},[34,230924,74431],{"class":181},[34,230926,4509],{"class":177},[34,230928,1248],{"class":181},[34,230930,230931],{"class":36,"line":242},[34,230932,61002],{"class":181},[34,230934,230935],{"class":36,"line":250},[34,230936,693],{"class":181},[388,230938,230939],{},"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 .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}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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":30,"searchDepth":44,"depth":44,"links":230941},[230942],{"id":230820,"depth":44,"text":230228},"Spread Props in SolidJS.",{},{"title":230228,"description":230943},"solidjs/spread-props",[228259,8606,219152,982,573],"j56E5q6t3Ddvcre-VHS4-4Y6lHxAUku-9XADUrI3cUw",{"id":230950,"title":230166,"body":230951,"date":402,"description":231173,"extension":404,"meta":231174,"navigation":61,"order":82,"path":230165,"seo":231175,"stem":231176,"subject":228259,"tags":231177,"__hash__":231178},"topics/solidjs/stores-nested-reactivity.md",{"type":8,"value":230952,"toc":231170},[230953,230956,231168],[11,230954,230166],{"id":230955},"stores-nested-reactivity",[25,230957,230959],{"className":198968,"code":230958,"language":198970,"meta":30,"style":30},"import { createStore } from \"solid-js/store\";\n\nfunction TodoApp() {\n  const [state, setState] = createStore({\n    todos: [{ id: 1, text: \"Learn Solid\", done: false }]\n  });\n\n  // Update nested properties\n  const toggleTodo = (id) => {\n    setState(\"todos\", todo => todo.id === id, \"done\", done => !done);\n  };\n\n  // Add new item\n  const addTodo = (text) => {\n    setState(\"todos\", todos => [...todos, { id: Date.now(), text, done: false }]);\n  };\n}\n",[20,230960,230961,230975,230979,230988,231010,231030,231034,231038,231043,231062,231097,231101,231105,231110,231129,231160,231164],{"__ignoreMap":30},[34,230962,230963,230965,230968,230970,230973],{"class":36,"line":37},[34,230964,581],{"class":580},[34,230966,230967],{"class":181}," { createStore } ",[34,230969,587],{"class":580},[34,230971,230972],{"class":54}," \"solid-js/store\"",[34,230974,593],{"class":181},[34,230976,230977],{"class":36,"line":44},[34,230978,62],{"emptyLinePlaceholder":61},[34,230980,230981,230983,230986],{"class":36,"line":58},[34,230982,11044],{"class":580},[34,230984,230985],{"class":47}," TodoApp",[34,230987,836],{"class":181},[34,230989,230990,230992,230994,230996,230998,231001,231003,231005,231008],{"class":36,"line":65},[34,230991,17415],{"class":580},[34,230993,8315],{"class":181},[34,230995,29410],{"class":50},[34,230997,1798],{"class":181},[34,230999,231000],{"class":50},"setState",[34,231002,17799],{"class":181},[34,231004,1301],{"class":580},[34,231006,231007],{"class":47}," createStore",[34,231009,613],{"class":181},[34,231011,231012,231015,231017,231019,231022,231025,231027],{"class":36,"line":71},[34,231013,231014],{"class":181},"    todos: [{ id: ",[34,231016,8318],{"class":50},[34,231018,201741],{"class":181},[34,231020,231021],{"class":54},"\"Learn Solid\"",[34,231023,231024],{"class":181},", done: ",[34,231026,103387],{"class":50},[34,231028,231029],{"class":181}," }]\n",[34,231031,231032],{"class":36,"line":77},[34,231033,3186],{"class":181},[34,231035,231036],{"class":36,"line":82},[34,231037,62],{"emptyLinePlaceholder":61},[34,231039,231040],{"class":36,"line":88},[34,231041,231042],{"class":40},"  // Update nested properties\n",[34,231044,231045,231047,231050,231052,231054,231056,231058,231060],{"class":36,"line":242},[34,231046,17415],{"class":580},[34,231048,231049],{"class":47}," toggleTodo",[34,231051,683],{"class":580},[34,231053,3204],{"class":181},[34,231055,3885],{"class":675},[34,231057,4817],{"class":181},[34,231059,3361],{"class":580},[34,231061,661],{"class":181},[34,231063,231064,231067,231069,231072,231074,231076,231078,231080,231082,231084,231086,231088,231090,231092,231094],{"class":36,"line":250},[34,231065,231066],{"class":47},"    setState",[34,231068,1607],{"class":181},[34,231070,231071],{"class":54},"\"todos\"",[34,231073,1798],{"class":181},[34,231075,201576],{"class":675},[34,231077,1895],{"class":580},[34,231079,201639],{"class":181},[34,231081,15543],{"class":580},[34,231083,156437],{"class":181},[34,231085,218282],{"class":54},[34,231087,1798],{"class":181},[34,231089,12135],{"class":675},[34,231091,1895],{"class":580},[34,231093,103972],{"class":580},[34,231095,231096],{"class":181},"done);\n",[34,231098,231099],{"class":36,"line":263},[34,231100,126747],{"class":181},[34,231102,231103],{"class":36,"line":275},[34,231104,62],{"emptyLinePlaceholder":61},[34,231106,231107],{"class":36,"line":700},[34,231108,231109],{"class":40},"  // Add new item\n",[34,231111,231112,231114,231117,231119,231121,231123,231125,231127],{"class":36,"line":706},[34,231113,17415],{"class":580},[34,231115,231116],{"class":47}," addTodo",[34,231118,683],{"class":580},[34,231120,3204],{"class":181},[34,231122,780],{"class":675},[34,231124,4817],{"class":181},[34,231126,3361],{"class":580},[34,231128,661],{"class":181},[34,231130,231131,231133,231135,231137,231139,231141,231143,231145,231147,231150,231152,231155,231157],{"class":36,"line":715},[34,231132,231066],{"class":47},[34,231134,1607],{"class":181},[34,231136,231071],{"class":54},[34,231138,1798],{"class":181},[34,231140,201687],{"class":675},[34,231142,1895],{"class":580},[34,231144,8315],{"class":181},[34,231146,16841],{"class":580},[34,231148,231149],{"class":181},"todos, { id: Date.",[34,231151,24280],{"class":47},[34,231153,231154],{"class":181},"(), text, done: ",[34,231156,103387],{"class":50},[34,231158,231159],{"class":181}," }]);\n",[34,231161,231162],{"class":36,"line":725},[34,231163,126747],{"class":181},[34,231165,231166],{"class":36,"line":734},[34,231167,693],{"class":181},[388,231169,4404],{},{"title":30,"searchDepth":44,"depth":44,"links":231171},[231172],{"id":230955,"depth":44,"text":230166},"Stores (Nested Reactivity) in SolidJS.",{},{"title":230166,"description":231173},"solidjs/stores-nested-reactivity",[228259,8606,219152,982,573],"byvyVdL1UP2m09w7vzNID7s3iZl_MyGrpJnd5PqJEOQ",{"id":231180,"title":230180,"body":231181,"date":402,"description":231391,"extension":404,"meta":231392,"navigation":61,"order":250,"path":230179,"seo":231393,"stem":231394,"subject":228259,"tags":231395,"__hash__":231396},"topics/solidjs/switchmatch.md",{"type":8,"value":231182,"toc":231388},[231183,231186,231386],[11,231184,230180],{"id":231185},"switchmatch",[25,231187,231189],{"className":198968,"code":231188,"language":198970,"meta":30,"style":30},"import { Switch, Match } from \"solid-js\";\n\nfunction StatusMessage(props) {\n  return (\n    \u003CSwitch fallback={\u003Cp>Unknown status\u003C/p>}>\n      \u003CMatch when={props.status === \"loading\"}>\n        \u003Cp>Loading...\u003C/p>\n      \u003C/Match>\n      \u003CMatch when={props.status === \"success\"}>\n        \u003Cp>Success!\u003C/p>\n      \u003C/Match>\n      \u003CMatch when={props.status === \"error\"}>\n        \u003Cp>Error occurred\u003C/p>\n      \u003C/Match>\n    \u003C/Switch>\n  );\n}\n",[20,231190,231191,231204,231208,231221,231227,231249,231270,231282,231290,231309,231322,231330,231349,231362,231370,231378,231382],{"__ignoreMap":30},[34,231192,231193,231195,231198,231200,231202],{"class":36,"line":37},[34,231194,581],{"class":580},[34,231196,231197],{"class":181}," { Switch, Match } ",[34,231199,587],{"class":580},[34,231201,228286],{"class":54},[34,231203,593],{"class":181},[34,231205,231206],{"class":36,"line":44},[34,231207,62],{"emptyLinePlaceholder":61},[34,231209,231210,231212,231215,231217,231219],{"class":36,"line":58},[34,231211,11044],{"class":580},[34,231213,231214],{"class":47}," StatusMessage",[34,231216,1607],{"class":181},[34,231218,228226],{"class":675},[34,231220,2416],{"class":181},[34,231222,231223,231225],{"class":36,"line":65},[34,231224,8155],{"class":580},[34,231226,13975],{"class":181},[34,231228,231229,231231,231234,231236,231238,231240,231242,231245,231247],{"class":36,"line":71},[34,231230,1294],{"class":181},[34,231232,231233],{"class":50},"Switch",[34,231235,229376],{"class":47},[34,231237,1301],{"class":580},[34,231239,228709],{"class":181},[34,231241,16],{"class":177},[34,231243,231244],{"class":181},">Unknown status\u003C/",[34,231246,16],{"class":177},[34,231248,228719],{"class":181},[34,231250,231251,231253,231256,231258,231260,231263,231265,231268],{"class":36,"line":77},[34,231252,85662],{"class":181},[34,231254,231255],{"class":50},"Match",[34,231257,134710],{"class":47},[34,231259,1301],{"class":580},[34,231261,231262],{"class":181},"{props.status ",[34,231264,15543],{"class":580},[34,231266,231267],{"class":54}," \"loading\"",[34,231269,14001],{"class":181},[34,231271,231272,231274,231276,231278,231280],{"class":36,"line":82},[34,231273,13980],{"class":181},[34,231275,16],{"class":177},[34,231277,1407],{"class":181},[34,231279,16],{"class":177},[34,231281,1248],{"class":181},[34,231283,231284,231286,231288],{"class":36,"line":88},[34,231285,85888],{"class":181},[34,231287,231255],{"class":50},[34,231289,1248],{"class":181},[34,231291,231292,231294,231296,231298,231300,231302,231304,231307],{"class":36,"line":242},[34,231293,85662],{"class":181},[34,231295,231255],{"class":50},[34,231297,134710],{"class":47},[34,231299,1301],{"class":580},[34,231301,231262],{"class":181},[34,231303,15543],{"class":580},[34,231305,231306],{"class":54}," \"success\"",[34,231308,14001],{"class":181},[34,231310,231311,231313,231315,231318,231320],{"class":36,"line":250},[34,231312,13980],{"class":181},[34,231314,16],{"class":177},[34,231316,231317],{"class":181},">Success!\u003C/",[34,231319,16],{"class":177},[34,231321,1248],{"class":181},[34,231323,231324,231326,231328],{"class":36,"line":263},[34,231325,85888],{"class":181},[34,231327,231255],{"class":50},[34,231329,1248],{"class":181},[34,231331,231332,231334,231336,231338,231340,231342,231344,231347],{"class":36,"line":275},[34,231333,85662],{"class":181},[34,231335,231255],{"class":50},[34,231337,134710],{"class":47},[34,231339,1301],{"class":580},[34,231341,231262],{"class":181},[34,231343,15543],{"class":580},[34,231345,231346],{"class":54}," \"error\"",[34,231348,14001],{"class":181},[34,231350,231351,231353,231355,231358,231360],{"class":36,"line":700},[34,231352,13980],{"class":181},[34,231354,16],{"class":177},[34,231356,231357],{"class":181},">Error occurred\u003C/",[34,231359,16],{"class":177},[34,231361,1248],{"class":181},[34,231363,231364,231366,231368],{"class":36,"line":706},[34,231365,85888],{"class":181},[34,231367,231255],{"class":50},[34,231369,1248],{"class":181},[34,231371,231372,231374,231376],{"class":36,"line":715},[34,231373,74431],{"class":181},[34,231375,231233],{"class":50},[34,231377,1248],{"class":181},[34,231379,231380],{"class":36,"line":725},[34,231381,61002],{"class":181},[34,231383,231384],{"class":36,"line":734},[34,231385,693],{"class":181},[388,231387,228751],{},{"title":30,"searchDepth":44,"depth":44,"links":231389},[231390],{"id":231185,"depth":44,"text":230180},"Switch/Match in SolidJS.",{},{"title":230180,"description":231391},"solidjs/switchmatch",[228259,8606,219152,982,573],"8-oXeqCt57EnnC_Y9ceSEHsIWca1ngBTL9LCvP_01b0",{"id":231398,"title":231399,"body":231400,"date":402,"description":231668,"extension":404,"meta":231669,"navigation":61,"order":58,"path":231670,"seo":231671,"stem":231672,"subject":28337,"tags":231673,"__hash__":231674},"topics/sql/aggregate-functions.md","Aggregate Functions",{"type":8,"value":231401,"toc":231665},[231402,231405,231663],[11,231403,231399],{"id":231404},"aggregate-functions",[25,231406,231408],{"className":28335,"code":231407,"language":28337,"meta":30,"style":30},"-- COUNT\nSELECT COUNT(*) FROM users;\nSELECT COUNT(DISTINCT country) FROM users;\nSELECT country, COUNT(*) FROM users GROUP BY country;\n\n-- SUM, AVG, MIN, MAX\nSELECT SUM(amount) FROM orders;\nSELECT AVG(age) FROM users;\nSELECT MIN(price), MAX(price) FROM products;\n\n-- GROUP BY with HAVING\nSELECT country, COUNT(*) as user_count\nFROM users\nGROUP BY country\nHAVING COUNT(*) > 100;\n\n-- Multiple aggregations\nSELECT \n  category,\n  COUNT(*) as count,\n  AVG(price) as avg_price,\n  SUM(quantity) as total_quantity\nFROM products\nGROUP BY category;\n",[20,231409,231410,231415,231431,231448,231472,231476,231481,231496,231510,231530,231534,231539,231558,231564,231571,231589,231593,231598,231604,231609,231624,231636,231649,231656],{"__ignoreMap":30},[34,231411,231412],{"class":36,"line":37},[34,231413,231414],{"class":40},"-- COUNT\n",[34,231416,231417,231419,231421,231423,231425,231427,231429],{"class":36,"line":44},[34,231418,28529],{"class":580},[34,231420,153333],{"class":50},[34,231422,1607],{"class":181},[34,231424,4289],{"class":580},[34,231426,4817],{"class":181},[34,231428,29179],{"class":580},[34,231430,4114],{"class":181},[34,231432,231433,231435,231437,231439,231441,231444,231446],{"class":36,"line":58},[34,231434,28529],{"class":580},[34,231436,153333],{"class":50},[34,231438,1607],{"class":181},[34,231440,155531],{"class":580},[34,231442,231443],{"class":181}," country) ",[34,231445,29179],{"class":580},[34,231447,4114],{"class":181},[34,231449,231450,231452,231455,231457,231459,231461,231463,231465,231467,231469],{"class":36,"line":65},[34,231451,28529],{"class":580},[34,231453,231454],{"class":181}," country, ",[34,231456,29170],{"class":50},[34,231458,1607],{"class":181},[34,231460,4289],{"class":580},[34,231462,4817],{"class":181},[34,231464,29179],{"class":580},[34,231466,28553],{"class":181},[34,231468,29184],{"class":580},[34,231470,231471],{"class":181}," country;\n",[34,231473,231474],{"class":36,"line":71},[34,231475,62],{"emptyLinePlaceholder":61},[34,231477,231478],{"class":36,"line":77},[34,231479,231480],{"class":40},"-- SUM, AVG, MIN, MAX\n",[34,231482,231483,231485,231488,231491,231493],{"class":36,"line":82},[34,231484,28529],{"class":580},[34,231486,231487],{"class":50}," SUM",[34,231489,231490],{"class":181},"(amount) ",[34,231492,29179],{"class":580},[34,231494,231495],{"class":181}," orders;\n",[34,231497,231498,231500,231503,231506,231508],{"class":36,"line":88},[34,231499,28529],{"class":580},[34,231501,231502],{"class":50}," AVG",[34,231504,231505],{"class":181},"(age) ",[34,231507,29179],{"class":580},[34,231509,4114],{"class":181},[34,231511,231512,231514,231517,231520,231523,231526,231528],{"class":36,"line":242},[34,231513,28529],{"class":580},[34,231515,231516],{"class":50}," MIN",[34,231518,231519],{"class":181},"(price), ",[34,231521,231522],{"class":50},"MAX",[34,231524,231525],{"class":181},"(price) ",[34,231527,29179],{"class":580},[34,231529,152164],{"class":181},[34,231531,231532],{"class":36,"line":250},[34,231533,62],{"emptyLinePlaceholder":61},[34,231535,231536],{"class":36,"line":263},[34,231537,231538],{"class":40},"-- GROUP BY with HAVING\n",[34,231540,231541,231543,231545,231547,231549,231551,231553,231555],{"class":36,"line":275},[34,231542,28529],{"class":580},[34,231544,231454],{"class":181},[34,231546,29170],{"class":50},[34,231548,1607],{"class":181},[34,231550,4289],{"class":580},[34,231552,4817],{"class":181},[34,231554,74548],{"class":580},[34,231556,231557],{"class":181}," user_count\n",[34,231559,231560,231562],{"class":36,"line":700},[34,231561,29179],{"class":580},[34,231563,154615],{"class":181},[34,231565,231566,231568],{"class":36,"line":706},[34,231567,29184],{"class":580},[34,231569,231570],{"class":181}," country\n",[34,231572,231573,231575,231577,231579,231581,231583,231585,231587],{"class":36,"line":715},[34,231574,155642],{"class":580},[34,231576,153333],{"class":50},[34,231578,1607],{"class":181},[34,231580,4289],{"class":580},[34,231582,4817],{"class":181},[34,231584,5691],{"class":580},[34,231586,25168],{"class":50},[34,231588,593],{"class":181},[34,231590,231591],{"class":36,"line":725},[34,231592,62],{"emptyLinePlaceholder":61},[34,231594,231595],{"class":36,"line":734},[34,231596,231597],{"class":40},"-- Multiple aggregations\n",[34,231599,231600,231602],{"class":36,"line":742},[34,231601,28529],{"class":580},[34,231603,526],{"class":181},[34,231605,231606],{"class":36,"line":748},[34,231607,231608],{"class":181},"  category,\n",[34,231610,231611,231613,231615,231617,231619,231621],{"class":36,"line":754},[34,231612,187265],{"class":50},[34,231614,1607],{"class":181},[34,231616,4289],{"class":580},[34,231618,4817],{"class":181},[34,231620,74548],{"class":580},[34,231622,231623],{"class":181}," count,\n",[34,231625,231626,231629,231631,231633],{"class":36,"line":759},[34,231627,231628],{"class":50},"  AVG",[34,231630,231525],{"class":181},[34,231632,74548],{"class":580},[34,231634,231635],{"class":181}," avg_price,\n",[34,231637,231638,231641,231644,231646],{"class":36,"line":771},[34,231639,231640],{"class":50},"  SUM",[34,231642,231643],{"class":181},"(quantity) ",[34,231645,74548],{"class":580},[34,231647,231648],{"class":181}," total_quantity\n",[34,231650,231651,231653],{"class":36,"line":794},[34,231652,29179],{"class":580},[34,231654,231655],{"class":181}," products\n",[34,231657,231658,231660],{"class":36,"line":824},[34,231659,29184],{"class":580},[34,231661,231662],{"class":181}," category;\n",[388,231664,14723],{},{"title":30,"searchDepth":44,"depth":44,"links":231666},[231667],{"id":231404,"depth":44,"text":231399},"Aggregate Functions in SQL.",{},"/sql/aggregate-functions",{"title":231399,"description":231668},"sql/aggregate-functions",[28337,28650,183553,149990],"vIfHCFNI8R_8_e5KVOrKA23B7jY7J7xeSvUU8hZg0X8",{"id":231676,"title":231677,"body":231678,"date":402,"description":232060,"extension":404,"meta":232061,"navigation":61,"order":242,"path":232062,"seo":232063,"stem":232064,"subject":28337,"tags":232065,"__hash__":232066},"topics/sql/common-table-expressions-cte.md","Common Table Expressions (CTE)",{"type":8,"value":231679,"toc":232057},[231680,231683,232055],[11,231681,231677],{"id":231682},"common-table-expressions-cte",[25,231684,231686],{"className":28335,"code":231685,"language":28337,"meta":30,"style":30},"-- Basic CTE\nWITH active_users AS (\n  SELECT * FROM users WHERE active = true\n)\nSELECT * FROM active_users WHERE country = 'USA';\n\n-- Multiple CTEs\nWITH \n  active_users AS (\n    SELECT * FROM users WHERE active = true\n  ),\n  user_orders AS (\n    SELECT user_id, COUNT(*) as order_count\n    FROM orders\n    GROUP BY user_id\n  )\nSELECT u.name, uo.order_count\nFROM active_users u\nJOIN user_orders uo ON u.id = uo.user_id;\n\n-- Recursive CTE (for hierarchical data)\nWITH RECURSIVE subordinates AS (\n  SELECT id, name, manager_id, 0 as level\n  FROM employees\n  WHERE id = 1\n  \n  UNION ALL\n  \n  SELECT e.id, e.name, e.manager_id, s.level + 1\n  FROM employees e\n  JOIN subordinates s ON e.manager_id = s.id\n)\nSELECT * FROM subordinates;\n",[20,231687,231688,231693,231704,231722,231726,231747,231751,231756,231762,231771,231790,231794,231803,231823,231830,231838,231842,231862,231869,231895,231899,231904,231918,231936,231944,231955,231959,231964,231968,232009,232016,232040,232044],{"__ignoreMap":30},[34,231689,231690],{"class":36,"line":37},[34,231691,231692],{"class":40},"-- Basic CTE\n",[34,231694,231695,231697,231700,231702],{"class":36,"line":44},[34,231696,28355],{"class":580},[34,231698,231699],{"class":181}," active_users ",[34,231701,185085],{"class":580},[34,231703,13975],{"class":181},[34,231705,231706,231708,231710,231712,231714,231716,231718,231720],{"class":36,"line":58},[34,231707,153226],{"class":580},[34,231709,18083],{"class":580},[34,231711,28534],{"class":580},[34,231713,28553],{"class":181},[34,231715,28604],{"class":580},[34,231717,185387],{"class":181},[34,231719,1301],{"class":580},[34,231721,104956],{"class":181},[34,231723,231724],{"class":36,"line":65},[34,231725,3372],{"class":181},[34,231727,231728,231730,231732,231734,231736,231738,231741,231743,231745],{"class":36,"line":71},[34,231729,28529],{"class":580},[34,231731,18083],{"class":580},[34,231733,28534],{"class":580},[34,231735,231699],{"class":181},[34,231737,28604],{"class":580},[34,231739,231740],{"class":181}," country ",[34,231742,1301],{"class":580},[34,231744,210086],{"class":54},[34,231746,593],{"class":181},[34,231748,231749],{"class":36,"line":77},[34,231750,62],{"emptyLinePlaceholder":61},[34,231752,231753],{"class":36,"line":82},[34,231754,231755],{"class":40},"-- Multiple CTEs\n",[34,231757,231758,231760],{"class":36,"line":88},[34,231759,28355],{"class":580},[34,231761,526],{"class":181},[34,231763,231764,231767,231769],{"class":36,"line":242},[34,231765,231766],{"class":181},"  active_users ",[34,231768,185085],{"class":580},[34,231770,13975],{"class":181},[34,231772,231773,231776,231778,231780,231782,231784,231786,231788],{"class":36,"line":250},[34,231774,231775],{"class":580},"    SELECT",[34,231777,18083],{"class":580},[34,231779,28534],{"class":580},[34,231781,28553],{"class":181},[34,231783,28604],{"class":580},[34,231785,185387],{"class":181},[34,231787,1301],{"class":580},[34,231789,104956],{"class":181},[34,231791,231792],{"class":36,"line":263},[34,231793,221425],{"class":181},[34,231795,231796,231799,231801],{"class":36,"line":275},[34,231797,231798],{"class":181},"  user_orders ",[34,231800,185085],{"class":580},[34,231802,13975],{"class":181},[34,231804,231805,231807,231810,231812,231814,231816,231818,231820],{"class":36,"line":700},[34,231806,231775],{"class":580},[34,231808,231809],{"class":181}," user_id, ",[34,231811,29170],{"class":50},[34,231813,1607],{"class":181},[34,231815,4289],{"class":580},[34,231817,4817],{"class":181},[34,231819,74548],{"class":580},[34,231821,231822],{"class":181}," order_count\n",[34,231824,231825,231828],{"class":36,"line":706},[34,231826,231827],{"class":580},"    FROM",[34,231829,154720],{"class":181},[34,231831,231832,231835],{"class":36,"line":715},[34,231833,231834],{"class":580},"    GROUP BY",[34,231836,231837],{"class":181}," user_id\n",[34,231839,231840],{"class":36,"line":725},[34,231841,17056],{"class":181},[34,231843,231844,231846,231848,231850,231852,231854,231857,231859],{"class":36,"line":734},[34,231845,28529],{"class":580},[34,231847,151806],{"class":50},[34,231849,151],{"class":181},[34,231851,178],{"class":50},[34,231853,1798],{"class":181},[34,231855,231856],{"class":50},"uo",[34,231858,151],{"class":181},[34,231860,231861],{"class":50},"order_count\n",[34,231863,231864,231866],{"class":36,"line":742},[34,231865,29179],{"class":580},[34,231867,231868],{"class":181}," active_users u\n",[34,231870,231871,231873,231876,231878,231880,231882,231884,231886,231889,231891,231893],{"class":36,"line":748},[34,231872,151788],{"class":580},[34,231874,231875],{"class":181}," user_orders uo ",[34,231877,150819],{"class":580},[34,231879,151806],{"class":50},[34,231881,151],{"class":181},[34,231883,3885],{"class":50},[34,231885,683],{"class":580},[34,231887,231888],{"class":50}," uo",[34,231890,151],{"class":181},[34,231892,151801],{"class":50},[34,231894,593],{"class":181},[34,231896,231897],{"class":36,"line":754},[34,231898,62],{"emptyLinePlaceholder":61},[34,231900,231901],{"class":36,"line":759},[34,231902,231903],{"class":40},"-- Recursive CTE (for hierarchical data)\n",[34,231905,231906,231908,231911,231914,231916],{"class":36,"line":771},[34,231907,28355],{"class":580},[34,231909,231910],{"class":580}," RECURSIVE",[34,231912,231913],{"class":181}," subordinates ",[34,231915,185085],{"class":580},[34,231917,13975],{"class":181},[34,231919,231920,231922,231924,231926,231929,231931,231933],{"class":36,"line":794},[34,231921,153226],{"class":580},[34,231923,156437],{"class":181},[34,231925,178],{"class":580},[34,231927,231928],{"class":181},", manager_id, ",[34,231930,2773],{"class":50},[34,231932,91551],{"class":580},[34,231934,231935],{"class":580}," level\n",[34,231937,231938,231941],{"class":36,"line":824},[34,231939,231940],{"class":580},"  FROM",[34,231942,231943],{"class":181}," employees\n",[34,231945,231946,231949,231951,231953],{"class":36,"line":830},[34,231947,231948],{"class":580},"  WHERE",[34,231950,28568],{"class":181},[34,231952,1301],{"class":580},[34,231954,43446],{"class":50},[34,231956,231957],{"class":36,"line":839},[34,231958,827],{"class":181},[34,231960,231961],{"class":36,"line":854},[34,231962,231963],{"class":580},"  UNION ALL\n",[34,231965,231966],{"class":36,"line":860},[34,231967,827],{"class":181},[34,231969,231970,231972,231975,231977,231979,231981,231983,231985,231987,231989,231991,231993,231996,231998,232000,232002,232005,232007],{"class":36,"line":865},[34,231971,153226],{"class":580},[34,231973,231974],{"class":50}," e",[34,231976,151],{"class":181},[34,231978,3885],{"class":50},[34,231980,1798],{"class":181},[34,231982,5476],{"class":50},[34,231984,151],{"class":181},[34,231986,178],{"class":50},[34,231988,1798],{"class":181},[34,231990,5476],{"class":50},[34,231992,151],{"class":181},[34,231994,231995],{"class":50},"manager_id",[34,231997,1798],{"class":181},[34,231999,523],{"class":50},[34,232001,151],{"class":181},[34,232003,232004],{"class":50},"level",[34,232006,11537],{"class":580},[34,232008,43446],{"class":50},[34,232010,232011,232013],{"class":36,"line":870},[34,232012,231940],{"class":580},[34,232014,232015],{"class":181}," employees e\n",[34,232017,232018,232021,232024,232026,232028,232030,232032,232034,232036,232038],{"class":36,"line":876},[34,232019,232020],{"class":580},"  JOIN",[34,232022,232023],{"class":181}," subordinates s ",[34,232025,150819],{"class":580},[34,232027,231974],{"class":50},[34,232029,151],{"class":181},[34,232031,231995],{"class":50},[34,232033,683],{"class":580},[34,232035,34803],{"class":50},[34,232037,151],{"class":181},[34,232039,151811],{"class":50},[34,232041,232042],{"class":36,"line":885},[34,232043,3372],{"class":181},[34,232045,232046,232048,232050,232052],{"class":36,"line":895},[34,232047,28529],{"class":580},[34,232049,18083],{"class":580},[34,232051,28534],{"class":580},[34,232053,232054],{"class":181}," subordinates;\n",[388,232056,10978],{},{"title":30,"searchDepth":44,"depth":44,"links":232058},[232059],{"id":231682,"depth":44,"text":231677},"Common Table Expressions (CTE) in SQL.",{},"/sql/common-table-expressions-cte",{"title":231677,"description":232060},"sql/common-table-expressions-cte",[28337,28650,183553,149990],"mT6uEJoiVEwKCE9I118h57L_fS8NRlnLP85a6u6Z_kk",{"id":232068,"title":84674,"body":232069,"date":402,"description":232170,"extension":404,"meta":232171,"navigation":61,"order":88,"path":232172,"seo":232173,"stem":232174,"subject":28337,"tags":232175,"__hash__":232176},"topics/sql/indexes.md",{"type":8,"value":232070,"toc":232167},[232071,232073,232165],[11,232072,84674],{"id":84673},[25,232074,232076],{"className":28335,"code":232075,"language":28337,"meta":30,"style":30},"-- Create index\nCREATE INDEX idx_users_email ON users(email);\nCREATE INDEX idx_users_country_age ON users(country, age);\nCREATE UNIQUE INDEX idx_users_email_unique ON users(email);\n\n-- Drop index\nDROP INDEX idx_users_email;\n\n-- Partial index (PostgreSQL)\nCREATE INDEX idx_active_users ON users(email) WHERE active = true;\n",[20,232077,232078,232082,232094,232108,232120,232124,232128,232136,232140,232145],{"__ignoreMap":30},[34,232079,232080],{"class":36,"line":37},[34,232081,151135],{"class":40},[34,232083,232084,232086,232088,232090,232092],{"class":36,"line":44},[34,232085,28349],{"class":580},[34,232087,150242],{"class":580},[34,232089,151144],{"class":47},[34,232091,151147],{"class":580},[34,232093,151150],{"class":181},[34,232095,232096,232098,232100,232103,232105],{"class":36,"line":58},[34,232097,28349],{"class":580},[34,232099,150242],{"class":580},[34,232101,232102],{"class":47}," idx_users_country_age",[34,232104,151147],{"class":580},[34,232106,232107],{"class":181}," users(country, age);\n",[34,232109,232110,232112,232114,232116,232118],{"class":36,"line":65},[34,232111,28349],{"class":580},[34,232113,151176],{"class":580},[34,232115,151179],{"class":47},[34,232117,151147],{"class":580},[34,232119,151150],{"class":181},[34,232121,232122],{"class":36,"line":71},[34,232123,62],{"emptyLinePlaceholder":61},[34,232125,232126],{"class":36,"line":77},[34,232127,151235],{"class":40},[34,232129,232130,232132,232134],{"class":36,"line":82},[34,232131,150706],{"class":580},[34,232133,150242],{"class":580},[34,232135,151263],{"class":181},[34,232137,232138],{"class":36,"line":88},[34,232139,62],{"emptyLinePlaceholder":61},[34,232141,232142],{"class":36,"line":242},[34,232143,232144],{"class":40},"-- Partial index (PostgreSQL)\n",[34,232146,232147,232149,232151,232153,232155,232157,232159,232161,232163],{"class":36,"line":250},[34,232148,28349],{"class":580},[34,232150,150242],{"class":580},[34,232152,185377],{"class":47},[34,232154,151147],{"class":580},[34,232156,185382],{"class":181},[34,232158,28604],{"class":580},[34,232160,185387],{"class":181},[34,232162,1301],{"class":580},[34,232164,185392],{"class":181},[388,232166,35978],{},{"title":30,"searchDepth":44,"depth":44,"links":232168},[232169],{"id":84673,"depth":44,"text":84674},"Indexes in SQL.",{},"/sql/indexes",{"title":84674,"description":232170},"sql/indexes",[28337,28650,183553,149990],"kP8iciAmeFSrT7ufPB0wxyA_qryEIVBWA5KqQynnJSs",{"id":232178,"title":151391,"body":232179,"date":402,"description":232567,"extension":404,"meta":232568,"navigation":61,"order":77,"path":232569,"seo":232570,"stem":232571,"subject":28337,"tags":232572,"__hash__":232573},"topics/sql/insert-update-delete.md",{"type":8,"value":232180,"toc":232564},[232181,232183,232562],[11,232182,151391],{"id":151396},[25,232184,232186],{"className":28335,"code":232185,"language":28337,"meta":30,"style":30},"-- INSERT\nINSERT INTO users (name, email) VALUES ('John', 'john@example.com');\n\n-- Multiple INSERT\nINSERT INTO users (name, email) VALUES \n  ('John', 'john@example.com'),\n  ('Jane', 'jane@example.com');\n\n-- INSERT from SELECT\nINSERT INTO archive_users\nSELECT * FROM users WHERE created_at \u003C '2023-01-01';\n\n-- UPDATE\nUPDATE users SET name = 'Johnny' WHERE id = 1;\nUPDATE users SET \n  name = 'Johnny',\n  updated_at = NOW()\nWHERE id = 1;\n\n-- DELETE\nDELETE FROM users WHERE id = 1;\nDELETE FROM users WHERE created_at \u003C '2020-01-01';\n\n-- UPSERT (PostgreSQL)\nINSERT INTO users (id, name, email)\nVALUES (1, 'John', 'john@example.com')\nON CONFLICT (id) DO UPDATE SET\n  name = EXCLUDED.name,\n  email = EXCLUDED.email;\n\n-- UPSERT (MySQL)\nINSERT INTO users (id, name, email)\nVALUES (1, 'John', 'john@example.com')\nON DUPLICATE KEY UPDATE\n  name = VALUES(name),\n  email = VALUES(email);\n",[20,232187,232188,232192,232214,232218,232222,232236,232248,232260,232264,232268,232275,232295,232299,232303,232327,232337,232347,232357,232369,232373,232377,232395,232413,232417,232422,232432,232450,232462,232477,232491,232495,232500,232510,232528,232538,232552],{"__ignoreMap":30},[34,232189,232190],{"class":36,"line":37},[34,232191,151406],{"class":40},[34,232193,232194,232196,232198,232200,232202,232204,232206,232208,232210,232212],{"class":36,"line":44},[34,232195,28487],{"class":580},[34,232197,151413],{"class":181},[34,232199,178],{"class":580},[34,232201,151418],{"class":181},[34,232203,28498],{"class":580},[34,232205,3204],{"class":181},[34,232207,151425],{"class":54},[34,232209,1798],{"class":181},[34,232211,151430],{"class":54},[34,232213,1586],{"class":181},[34,232215,232216],{"class":36,"line":58},[34,232217,62],{"emptyLinePlaceholder":61},[34,232219,232220],{"class":36,"line":65},[34,232221,151441],{"class":40},[34,232223,232224,232226,232228,232230,232232,232234],{"class":36,"line":71},[34,232225,28487],{"class":580},[34,232227,151413],{"class":181},[34,232229,178],{"class":580},[34,232231,151418],{"class":181},[34,232233,28498],{"class":580},[34,232235,526],{"class":181},[34,232237,232238,232240,232242,232244,232246],{"class":36,"line":77},[34,232239,151460],{"class":181},[34,232241,151425],{"class":54},[34,232243,1798],{"class":181},[34,232245,151430],{"class":54},[34,232247,50836],{"class":181},[34,232249,232250,232252,232254,232256,232258],{"class":36,"line":82},[34,232251,151460],{"class":181},[34,232253,151475],{"class":54},[34,232255,1798],{"class":181},[34,232257,151480],{"class":54},[34,232259,1586],{"class":181},[34,232261,232262],{"class":36,"line":88},[34,232263,62],{"emptyLinePlaceholder":61},[34,232265,232266],{"class":36,"line":242},[34,232267,151644],{"class":40},[34,232269,232270,232272],{"class":36,"line":250},[34,232271,28487],{"class":580},[34,232273,232274],{"class":181}," archive_users\n",[34,232276,232277,232279,232281,232283,232285,232287,232289,232291,232293],{"class":36,"line":263},[34,232278,28529],{"class":580},[34,232280,18083],{"class":580},[34,232282,28534],{"class":580},[34,232284,28553],{"class":181},[34,232286,28604],{"class":580},[34,232288,151664],{"class":181},[34,232290,815],{"class":580},[34,232292,151669],{"class":54},[34,232294,593],{"class":181},[34,232296,232297],{"class":36,"line":275},[34,232298,62],{"emptyLinePlaceholder":61},[34,232300,232301],{"class":36,"line":700},[34,232302,151680],{"class":40},[34,232304,232305,232307,232309,232311,232313,232315,232317,232319,232321,232323,232325],{"class":36,"line":706},[34,232306,28550],{"class":580},[34,232308,28553],{"class":181},[34,232310,28556],{"class":580},[34,232312,12323],{"class":580},[34,232314,683],{"class":580},[34,232316,151695],{"class":54},[34,232318,28565],{"class":580},[34,232320,28568],{"class":181},[34,232322,1301],{"class":580},[34,232324,3567],{"class":50},[34,232326,593],{"class":181},[34,232328,232329,232331,232333,232335],{"class":36,"line":715},[34,232330,28550],{"class":580},[34,232332,28553],{"class":181},[34,232334,28556],{"class":580},[34,232336,526],{"class":181},[34,232338,232339,232341,232343,232345],{"class":36,"line":725},[34,232340,7350],{"class":580},[34,232342,683],{"class":580},[34,232344,151695],{"class":54},[34,232346,624],{"class":181},[34,232348,232349,232351,232353,232355],{"class":36,"line":734},[34,232350,153731],{"class":181},[34,232352,1301],{"class":580},[34,232354,151727],{"class":580},[34,232356,33899],{"class":181},[34,232358,232359,232361,232363,232365,232367],{"class":36,"line":742},[34,232360,28604],{"class":580},[34,232362,28568],{"class":181},[34,232364,1301],{"class":580},[34,232366,3567],{"class":50},[34,232368,593],{"class":181},[34,232370,232371],{"class":36,"line":748},[34,232372,62],{"emptyLinePlaceholder":61},[34,232374,232375],{"class":36,"line":754},[34,232376,151893],{"class":40},[34,232378,232379,232381,232383,232385,232387,232389,232391,232393],{"class":36,"line":759},[34,232380,28597],{"class":580},[34,232382,28534],{"class":580},[34,232384,28553],{"class":181},[34,232386,28604],{"class":580},[34,232388,28568],{"class":181},[34,232390,1301],{"class":580},[34,232392,3567],{"class":50},[34,232394,593],{"class":181},[34,232396,232397,232399,232401,232403,232405,232407,232409,232411],{"class":36,"line":771},[34,232398,28597],{"class":580},[34,232400,28534],{"class":580},[34,232402,28553],{"class":181},[34,232404,28604],{"class":580},[34,232406,151664],{"class":181},[34,232408,815],{"class":580},[34,232410,151928],{"class":54},[34,232412,593],{"class":181},[34,232414,232415],{"class":36,"line":794},[34,232416,62],{"emptyLinePlaceholder":61},[34,232418,232419],{"class":36,"line":824},[34,232420,232421],{"class":40},"-- UPSERT (PostgreSQL)\n",[34,232423,232424,232426,232428,232430],{"class":36,"line":830},[34,232425,28487],{"class":580},[34,232427,28490],{"class":181},[34,232429,178],{"class":580},[34,232431,151538],{"class":181},[34,232433,232434,232436,232438,232440,232442,232444,232446,232448],{"class":36,"line":839},[34,232435,28498],{"class":580},[34,232437,3204],{"class":181},[34,232439,8318],{"class":50},[34,232441,1798],{"class":181},[34,232443,151425],{"class":54},[34,232445,1798],{"class":181},[34,232447,151430],{"class":54},[34,232449,3372],{"class":181},[34,232451,232452,232454,232457,232459],{"class":36,"line":854},[34,232453,150819],{"class":580},[34,232455,232456],{"class":181}," CONFLICT (id) DO ",[34,232458,28550],{"class":580},[34,232460,232461],{"class":580}," SET\n",[34,232463,232464,232466,232468,232471,232473,232475],{"class":36,"line":860},[34,232465,7350],{"class":580},[34,232467,683],{"class":580},[34,232469,232470],{"class":50}," EXCLUDED",[34,232472,151],{"class":181},[34,232474,178],{"class":50},[34,232476,624],{"class":181},[34,232478,232479,232481,232483,232485,232487,232489],{"class":36,"line":865},[34,232480,151589],{"class":181},[34,232482,1301],{"class":580},[34,232484,232470],{"class":50},[34,232486,151],{"class":181},[34,232488,59283],{"class":50},[34,232490,593],{"class":181},[34,232492,232493],{"class":36,"line":870},[34,232494,62],{"emptyLinePlaceholder":61},[34,232496,232497],{"class":36,"line":876},[34,232498,232499],{"class":40},"-- UPSERT (MySQL)\n",[34,232501,232502,232504,232506,232508],{"class":36,"line":885},[34,232503,28487],{"class":580},[34,232505,28490],{"class":181},[34,232507,178],{"class":580},[34,232509,151538],{"class":181},[34,232511,232512,232514,232516,232518,232520,232522,232524,232526],{"class":36,"line":895},[34,232513,28498],{"class":580},[34,232515,3204],{"class":181},[34,232517,8318],{"class":50},[34,232519,1798],{"class":181},[34,232521,151425],{"class":54},[34,232523,1798],{"class":181},[34,232525,151430],{"class":54},[34,232527,3372],{"class":181},[34,232529,232530,232532,232534,232536],{"class":36,"line":904},[34,232531,150819],{"class":580},[34,232533,151563],{"class":181},[34,232535,151566],{"class":580},[34,232537,151569],{"class":580},[34,232539,232540,232542,232544,232546,232548,232550],{"class":36,"line":915},[34,232541,7350],{"class":580},[34,232543,683],{"class":580},[34,232545,151578],{"class":580},[34,232547,1607],{"class":181},[34,232549,178],{"class":580},[34,232551,50836],{"class":181},[34,232553,232554,232556,232558,232560],{"class":36,"line":927},[34,232555,151589],{"class":181},[34,232557,1301],{"class":580},[34,232559,151578],{"class":580},[34,232561,151596],{"class":181},[388,232563,10978],{},{"title":30,"searchDepth":44,"depth":44,"links":232565},[232566],{"id":151396,"depth":44,"text":151391},"INSERT, UPDATE, DELETE in SQL.",{},"/sql/insert-update-delete",{"title":151391,"description":232567},"sql/insert-update-delete",[28337,28650,183553,149990],"-uB3tU59Mc9YgSw43MWqsGKhuN6UkQgdmvmJPqDHhZE",{"id":232575,"title":232576,"body":232577,"date":402,"description":233021,"extension":404,"meta":233022,"navigation":61,"order":65,"path":233023,"seo":233024,"stem":233025,"subject":28337,"tags":233026,"__hash__":233027},"topics/sql/joins.md","JOINs",{"type":8,"value":232578,"toc":233018},[232579,232582,233016],[11,232580,232576],{"id":232581},"joins",[25,232583,232585],{"className":28335,"code":232584,"language":28337,"meta":30,"style":30},"-- INNER JOIN\nSELECT users.name, orders.total\nFROM users\nINNER JOIN orders ON users.id = orders.user_id;\n\n-- LEFT JOIN (all from left table)\nSELECT users.name, orders.total\nFROM users\nLEFT JOIN orders ON users.id = orders.user_id;\n\n-- RIGHT JOIN (all from right table)\nSELECT users.name, orders.total\nFROM users\nRIGHT JOIN orders ON users.id = orders.user_id;\n\n-- FULL OUTER JOIN\nSELECT users.name, orders.total\nFROM users\nFULL OUTER JOIN orders ON users.id = orders.user_id;\n\n-- Multiple JOINs\nSELECT \n  u.name,\n  o.id as order_id,\n  p.name as product_name\nFROM users u\nJOIN orders o ON u.id = o.user_id\nJOIN order_items oi ON o.id = oi.order_id\nJOIN products p ON oi.product_id = p.id;\n\n-- Self JOIN\nSELECT e.name, m.name as manager\nFROM employees e\nLEFT JOIN employees m ON e.manager_id = m.id;\n",[20,232586,232587,232592,232612,232618,232642,232646,232651,232669,232675,232700,232704,232709,232727,232733,232758,232762,232767,232785,232791,232816,232820,232825,232831,232842,232856,232870,232877,232901,232926,232952,232956,232961,232984,232990],{"__ignoreMap":30},[34,232588,232589],{"class":36,"line":37},[34,232590,232591],{"class":40},"-- INNER JOIN\n",[34,232593,232594,232596,232598,232600,232602,232604,232607,232609],{"class":36,"line":44},[34,232595,28529],{"class":580},[34,232597,28425],{"class":50},[34,232599,151],{"class":181},[34,232601,178],{"class":50},[34,232603,1798],{"class":181},[34,232605,232606],{"class":50},"orders",[34,232608,151],{"class":181},[34,232610,232611],{"class":50},"total\n",[34,232613,232614,232616],{"class":36,"line":58},[34,232615,29179],{"class":580},[34,232617,154615],{"class":181},[34,232619,232620,232622,232624,232626,232628,232630,232632,232634,232636,232638,232640],{"class":36,"line":65},[34,232621,155682],{"class":580},[34,232623,153233],{"class":181},[34,232625,150819],{"class":580},[34,232627,28425],{"class":50},[34,232629,151],{"class":181},[34,232631,3885],{"class":50},[34,232633,683],{"class":580},[34,232635,153238],{"class":50},[34,232637,151],{"class":181},[34,232639,151801],{"class":50},[34,232641,593],{"class":181},[34,232643,232644],{"class":36,"line":71},[34,232645,62],{"emptyLinePlaceholder":61},[34,232647,232648],{"class":36,"line":77},[34,232649,232650],{"class":40},"-- LEFT JOIN (all from left table)\n",[34,232652,232653,232655,232657,232659,232661,232663,232665,232667],{"class":36,"line":82},[34,232654,28529],{"class":580},[34,232656,28425],{"class":50},[34,232658,151],{"class":181},[34,232660,178],{"class":50},[34,232662,1798],{"class":181},[34,232664,232606],{"class":50},[34,232666,151],{"class":181},[34,232668,232611],{"class":50},[34,232670,232671,232673],{"class":36,"line":88},[34,232672,29179],{"class":580},[34,232674,154615],{"class":181},[34,232676,232677,232680,232682,232684,232686,232688,232690,232692,232694,232696,232698],{"class":36,"line":242},[34,232678,232679],{"class":580},"LEFT JOIN",[34,232681,153233],{"class":181},[34,232683,150819],{"class":580},[34,232685,28425],{"class":50},[34,232687,151],{"class":181},[34,232689,3885],{"class":50},[34,232691,683],{"class":580},[34,232693,153238],{"class":50},[34,232695,151],{"class":181},[34,232697,151801],{"class":50},[34,232699,593],{"class":181},[34,232701,232702],{"class":36,"line":250},[34,232703,62],{"emptyLinePlaceholder":61},[34,232705,232706],{"class":36,"line":263},[34,232707,232708],{"class":40},"-- RIGHT JOIN (all from right table)\n",[34,232710,232711,232713,232715,232717,232719,232721,232723,232725],{"class":36,"line":275},[34,232712,28529],{"class":580},[34,232714,28425],{"class":50},[34,232716,151],{"class":181},[34,232718,178],{"class":50},[34,232720,1798],{"class":181},[34,232722,232606],{"class":50},[34,232724,151],{"class":181},[34,232726,232611],{"class":50},[34,232728,232729,232731],{"class":36,"line":700},[34,232730,29179],{"class":580},[34,232732,154615],{"class":181},[34,232734,232735,232738,232740,232742,232744,232746,232748,232750,232752,232754,232756],{"class":36,"line":706},[34,232736,232737],{"class":580},"RIGHT JOIN",[34,232739,153233],{"class":181},[34,232741,150819],{"class":580},[34,232743,28425],{"class":50},[34,232745,151],{"class":181},[34,232747,3885],{"class":50},[34,232749,683],{"class":580},[34,232751,153238],{"class":50},[34,232753,151],{"class":181},[34,232755,151801],{"class":50},[34,232757,593],{"class":181},[34,232759,232760],{"class":36,"line":715},[34,232761,62],{"emptyLinePlaceholder":61},[34,232763,232764],{"class":36,"line":725},[34,232765,232766],{"class":40},"-- FULL OUTER JOIN\n",[34,232768,232769,232771,232773,232775,232777,232779,232781,232783],{"class":36,"line":734},[34,232770,28529],{"class":580},[34,232772,28425],{"class":50},[34,232774,151],{"class":181},[34,232776,178],{"class":50},[34,232778,1798],{"class":181},[34,232780,232606],{"class":50},[34,232782,151],{"class":181},[34,232784,232611],{"class":50},[34,232786,232787,232789],{"class":36,"line":742},[34,232788,29179],{"class":580},[34,232790,154615],{"class":181},[34,232792,232793,232796,232798,232800,232802,232804,232806,232808,232810,232812,232814],{"class":36,"line":748},[34,232794,232795],{"class":580},"FULL OUTER JOIN",[34,232797,153233],{"class":181},[34,232799,150819],{"class":580},[34,232801,28425],{"class":50},[34,232803,151],{"class":181},[34,232805,3885],{"class":50},[34,232807,683],{"class":580},[34,232809,153238],{"class":50},[34,232811,151],{"class":181},[34,232813,151801],{"class":50},[34,232815,593],{"class":181},[34,232817,232818],{"class":36,"line":754},[34,232819,62],{"emptyLinePlaceholder":61},[34,232821,232822],{"class":36,"line":759},[34,232823,232824],{"class":40},"-- Multiple JOINs\n",[34,232826,232827,232829],{"class":36,"line":771},[34,232828,28529],{"class":580},[34,232830,526],{"class":181},[34,232832,232833,232836,232838,232840],{"class":36,"line":794},[34,232834,232835],{"class":50},"  u",[34,232837,151],{"class":181},[34,232839,178],{"class":50},[34,232841,624],{"class":181},[34,232843,232844,232847,232849,232851,232853],{"class":36,"line":824},[34,232845,232846],{"class":50},"  o",[34,232848,151],{"class":181},[34,232850,3885],{"class":50},[34,232852,91551],{"class":580},[34,232854,232855],{"class":181}," order_id,\n",[34,232857,232858,232861,232863,232865,232867],{"class":36,"line":830},[34,232859,232860],{"class":50},"  p",[34,232862,151],{"class":181},[34,232864,178],{"class":50},[34,232866,91551],{"class":580},[34,232868,232869],{"class":181}," product_name\n",[34,232871,232872,232874],{"class":36,"line":839},[34,232873,29179],{"class":580},[34,232875,232876],{"class":181}," users u\n",[34,232878,232879,232881,232884,232886,232888,232890,232892,232894,232896,232898],{"class":36,"line":854},[34,232880,151788],{"class":580},[34,232882,232883],{"class":181}," orders o ",[34,232885,150819],{"class":580},[34,232887,151806],{"class":50},[34,232889,151],{"class":181},[34,232891,3885],{"class":50},[34,232893,683],{"class":580},[34,232895,151796],{"class":50},[34,232897,151],{"class":181},[34,232899,232900],{"class":50},"user_id\n",[34,232902,232903,232905,232908,232910,232912,232914,232916,232918,232921,232923],{"class":36,"line":860},[34,232904,151788],{"class":580},[34,232906,232907],{"class":181}," order_items oi ",[34,232909,150819],{"class":580},[34,232911,151796],{"class":50},[34,232913,151],{"class":181},[34,232915,3885],{"class":50},[34,232917,683],{"class":580},[34,232919,232920],{"class":50}," oi",[34,232922,151],{"class":181},[34,232924,232925],{"class":50},"order_id\n",[34,232927,232928,232930,232933,232935,232937,232939,232942,232944,232946,232948,232950],{"class":36,"line":865},[34,232929,151788],{"class":580},[34,232931,232932],{"class":181}," products p ",[34,232934,150819],{"class":580},[34,232936,232920],{"class":50},[34,232938,151],{"class":181},[34,232940,232941],{"class":50},"product_id",[34,232943,683],{"class":580},[34,232945,41445],{"class":50},[34,232947,151],{"class":181},[34,232949,3885],{"class":50},[34,232951,593],{"class":181},[34,232953,232954],{"class":36,"line":870},[34,232955,62],{"emptyLinePlaceholder":61},[34,232957,232958],{"class":36,"line":876},[34,232959,232960],{"class":40},"-- Self JOIN\n",[34,232962,232963,232965,232967,232969,232971,232973,232975,232977,232979,232981],{"class":36,"line":885},[34,232964,28529],{"class":580},[34,232966,231974],{"class":50},[34,232968,151],{"class":181},[34,232970,178],{"class":50},[34,232972,1798],{"class":181},[34,232974,3385],{"class":50},[34,232976,151],{"class":181},[34,232978,178],{"class":50},[34,232980,91551],{"class":580},[34,232982,232983],{"class":181}," manager\n",[34,232985,232986,232988],{"class":36,"line":895},[34,232987,29179],{"class":580},[34,232989,232015],{"class":181},[34,232991,232992,232994,232997,232999,233001,233003,233005,233007,233010,233012,233014],{"class":36,"line":904},[34,232993,232679],{"class":580},[34,232995,232996],{"class":181}," employees m ",[34,232998,150819],{"class":580},[34,233000,231974],{"class":50},[34,233002,151],{"class":181},[34,233004,231995],{"class":50},[34,233006,683],{"class":580},[34,233008,233009],{"class":50}," m",[34,233011,151],{"class":181},[34,233013,3885],{"class":50},[34,233015,593],{"class":181},[388,233017,14723],{},{"title":30,"searchDepth":44,"depth":44,"links":233019},[233020],{"id":232581,"depth":44,"text":232576},"JOINs in SQL.",{},"/sql/joins",{"title":232576,"description":233021},"sql/joins",[28337,28650,183553,149990],"iclLULh5bJDM-KK-rbzZCvqF89mr1OtxAzQIGSs7ZUU",{"id":233029,"title":233030,"body":233031,"date":2633,"description":233085,"extension":404,"meta":233086,"navigation":61,"order":37,"path":233087,"seo":233088,"stem":233089,"subject":28337,"tags":233090,"__hash__":233091},"topics/sql/overview.md","SQL",{"type":8,"value":233032,"toc":233083},[233033],[309,233034,233035,233041,233045,233049,233055,233059,233064,233068,233072,233078],{},[312,233036,233037],{},[145,233038,233040],{"href":233039},"/sql/select-queries","SELECT Queries",[312,233042,233043],{},[145,233044,231399],{"href":231670},[312,233046,233047],{},[145,233048,232576],{"href":233023},[312,233050,233051],{},[145,233052,233054],{"href":233053},"/sql/subqueries","Subqueries",[312,233056,233057],{},[145,233058,151391],{"href":232569},[312,233060,233061],{},[145,233062,152646],{"href":233063},"/sql/table-management",[312,233065,233066],{},[145,233067,84674],{"href":232172},[312,233069,233070],{},[145,233071,231677],{"href":232062},[312,233073,233074],{},[145,233075,233077],{"href":233076},"/sql/window-functions","Window Functions",[312,233079,233080],{},[145,233081,152701],{"href":233082},"/sql/useful-functions",{"title":30,"searchDepth":44,"depth":44,"links":233084},[],"SQL syntax and commands for database querying and management.",{},"/sql/overview",{"title":233030,"description":233085},"sql/overview",[28337,28650,183553,149990],"rtkqH0NeAhyv4yb6kcg8zcWWIiGO_Uhke9w7m5YgcD4",{"id":233093,"title":233040,"body":233094,"date":402,"description":233465,"extension":404,"meta":233466,"navigation":61,"order":44,"path":233039,"seo":233467,"stem":233468,"subject":28337,"tags":233469,"__hash__":233470},"topics/sql/select-queries.md",{"type":8,"value":233095,"toc":233462},[233096,233099,233460],[11,233097,233040],{"id":233098},"select-queries",[25,233100,233102],{"className":28335,"code":233101,"language":28337,"meta":30,"style":30},"-- Basic SELECT\nSELECT * FROM users;\nSELECT name, email FROM users;\n\n-- DISTINCT values\nSELECT DISTINCT country FROM users;\n\n-- WHERE clause\nSELECT * FROM users WHERE age > 18;\nSELECT * FROM users WHERE country = 'USA' AND age >= 21;\nSELECT * FROM users WHERE country IN ('USA', 'Canada', 'UK');\nSELECT * FROM users WHERE email LIKE '%@gmail.com';\nSELECT * FROM users WHERE name LIKE 'John%';\nSELECT * FROM users WHERE age BETWEEN 18 AND 65;\nSELECT * FROM users WHERE middle_name IS NULL;\nSELECT * FROM users WHERE middle_name IS NOT NULL;\n\n-- ORDER BY\nSELECT * FROM users ORDER BY name ASC;\nSELECT * FROM users ORDER BY created_at DESC;\nSELECT * FROM users ORDER BY country, name;\n\n-- LIMIT & OFFSET\nSELECT * FROM users LIMIT 10;\nSELECT * FROM users LIMIT 10 OFFSET 20;  -- Pagination\n",[20,233103,233104,233109,233119,233131,233135,233140,233150,233154,233159,233179,233208,233241,233262,233283,233308,233330,233349,233353,233358,233377,233395,233413,233417,233422,233438],{"__ignoreMap":30},[34,233105,233106],{"class":36,"line":37},[34,233107,233108],{"class":40},"-- Basic SELECT\n",[34,233110,233111,233113,233115,233117],{"class":36,"line":44},[34,233112,28529],{"class":580},[34,233114,18083],{"class":580},[34,233116,28534],{"class":580},[34,233118,4114],{"class":181},[34,233120,233121,233123,233125,233127,233129],{"class":36,"line":58},[34,233122,28529],{"class":580},[34,233124,12323],{"class":580},[34,233126,156442],{"class":181},[34,233128,29179],{"class":580},[34,233130,4114],{"class":181},[34,233132,233133],{"class":36,"line":65},[34,233134,62],{"emptyLinePlaceholder":61},[34,233136,233137],{"class":36,"line":71},[34,233138,233139],{"class":40},"-- DISTINCT values\n",[34,233141,233142,233144,233146,233148],{"class":36,"line":77},[34,233143,187340],{"class":580},[34,233145,231740],{"class":181},[34,233147,29179],{"class":580},[34,233149,4114],{"class":181},[34,233151,233152],{"class":36,"line":82},[34,233153,62],{"emptyLinePlaceholder":61},[34,233155,233156],{"class":36,"line":88},[34,233157,233158],{"class":40},"-- WHERE clause\n",[34,233160,233161,233163,233165,233167,233169,233171,233173,233175,233177],{"class":36,"line":242},[34,233162,28529],{"class":580},[34,233164,18083],{"class":580},[34,233166,28534],{"class":580},[34,233168,28553],{"class":181},[34,233170,28604],{"class":580},[34,233172,25065],{"class":181},[34,233174,5691],{"class":580},[34,233176,18845],{"class":50},[34,233178,593],{"class":181},[34,233180,233181,233183,233185,233187,233189,233191,233193,233195,233197,233199,233201,233203,233206],{"class":36,"line":250},[34,233182,28529],{"class":580},[34,233184,18083],{"class":580},[34,233186,28534],{"class":580},[34,233188,28553],{"class":181},[34,233190,28604],{"class":580},[34,233192,231740],{"class":181},[34,233194,1301],{"class":580},[34,233196,210086],{"class":54},[34,233198,155708],{"class":580},[34,233200,25065],{"class":181},[34,233202,18401],{"class":580},[34,233204,233205],{"class":50}," 21",[34,233207,593],{"class":181},[34,233209,233210,233212,233214,233216,233218,233220,233222,233224,233226,233229,233231,233234,233236,233239],{"class":36,"line":263},[34,233211,28529],{"class":580},[34,233213,18083],{"class":580},[34,233215,28534],{"class":580},[34,233217,28553],{"class":181},[34,233219,28604],{"class":580},[34,233221,231740],{"class":181},[34,233223,153209],{"class":580},[34,233225,3204],{"class":181},[34,233227,233228],{"class":54},"'USA'",[34,233230,1798],{"class":181},[34,233232,233233],{"class":54},"'Canada'",[34,233235,1798],{"class":181},[34,233237,233238],{"class":54},"'UK'",[34,233240,1586],{"class":181},[34,233242,233243,233245,233247,233249,233251,233253,233255,233257,233260],{"class":36,"line":275},[34,233244,28529],{"class":580},[34,233246,18083],{"class":580},[34,233248,28534],{"class":580},[34,233250,28553],{"class":181},[34,233252,28604],{"class":580},[34,233254,151315],{"class":181},[34,233256,153155],{"class":580},[34,233258,233259],{"class":54}," '%@gmail.com'",[34,233261,593],{"class":181},[34,233263,233264,233266,233268,233270,233272,233274,233276,233278,233281],{"class":36,"line":700},[34,233265,28529],{"class":580},[34,233267,18083],{"class":580},[34,233269,28534],{"class":580},[34,233271,28553],{"class":181},[34,233273,28604],{"class":580},[34,233275,12323],{"class":580},[34,233277,150267],{"class":580},[34,233279,233280],{"class":54}," 'John%'",[34,233282,593],{"class":181},[34,233284,233285,233287,233289,233291,233293,233295,233297,233300,233302,233304,233306],{"class":36,"line":706},[34,233286,28529],{"class":580},[34,233288,18083],{"class":580},[34,233290,28534],{"class":580},[34,233292,28553],{"class":181},[34,233294,28604],{"class":580},[34,233296,25065],{"class":181},[34,233298,233299],{"class":580},"BETWEEN",[34,233301,18845],{"class":50},[34,233303,155708],{"class":580},[34,233305,155483],{"class":50},[34,233307,593],{"class":181},[34,233309,233310,233312,233314,233316,233318,233320,233323,233326,233328],{"class":36,"line":715},[34,233311,28529],{"class":580},[34,233313,18083],{"class":580},[34,233315,28534],{"class":580},[34,233317,28553],{"class":181},[34,233319,28604],{"class":580},[34,233321,233322],{"class":181}," middle_name ",[34,233324,233325],{"class":580},"IS",[34,233327,18171],{"class":580},[34,233329,593],{"class":181},[34,233331,233332,233334,233336,233338,233340,233342,233344,233347],{"class":36,"line":725},[34,233333,28529],{"class":580},[34,233335,18083],{"class":580},[34,233337,28534],{"class":580},[34,233339,28553],{"class":181},[34,233341,28604],{"class":580},[34,233343,233322],{"class":181},[34,233345,233346],{"class":580},"IS NOT NULL",[34,233348,593],{"class":181},[34,233350,233351],{"class":36,"line":734},[34,233352,62],{"emptyLinePlaceholder":61},[34,233354,233355],{"class":36,"line":742},[34,233356,233357],{"class":40},"-- ORDER BY\n",[34,233359,233360,233362,233364,233366,233368,233370,233372,233375],{"class":36,"line":748},[34,233361,28529],{"class":580},[34,233363,18083],{"class":580},[34,233365,28534],{"class":580},[34,233367,28553],{"class":181},[34,233369,29069],{"class":580},[34,233371,12323],{"class":580},[34,233373,233374],{"class":580}," ASC",[34,233376,593],{"class":181},[34,233378,233379,233381,233383,233385,233387,233389,233391,233393],{"class":36,"line":754},[34,233380,28529],{"class":580},[34,233382,18083],{"class":580},[34,233384,28534],{"class":580},[34,233386,28553],{"class":181},[34,233388,29069],{"class":580},[34,233390,151664],{"class":181},[34,233392,151070],{"class":580},[34,233394,593],{"class":181},[34,233396,233397,233399,233401,233403,233405,233407,233409,233411],{"class":36,"line":759},[34,233398,28529],{"class":580},[34,233400,18083],{"class":580},[34,233402,28534],{"class":580},[34,233404,28553],{"class":181},[34,233406,29069],{"class":580},[34,233408,231454],{"class":181},[34,233410,178],{"class":580},[34,233412,593],{"class":181},[34,233414,233415],{"class":36,"line":771},[34,233416,62],{"emptyLinePlaceholder":61},[34,233418,233419],{"class":36,"line":794},[34,233420,233421],{"class":40},"-- LIMIT & OFFSET\n",[34,233423,233424,233426,233428,233430,233432,233434,233436],{"class":36,"line":824},[34,233425,28529],{"class":580},[34,233427,18083],{"class":580},[34,233429,28534],{"class":580},[34,233431,28553],{"class":181},[34,233433,155750],{"class":580},[34,233435,13123],{"class":50},[34,233437,593],{"class":181},[34,233439,233440,233442,233444,233446,233448,233450,233452,233454,233456,233458],{"class":36,"line":830},[34,233441,28529],{"class":580},[34,233443,18083],{"class":580},[34,233445,28534],{"class":580},[34,233447,28553],{"class":181},[34,233449,155750],{"class":580},[34,233451,13123],{"class":50},[34,233453,155755],{"class":181},[34,233455,24945],{"class":50},[34,233457,124981],{"class":181},[34,233459,155733],{"class":40},[388,233461,25257],{},{"title":30,"searchDepth":44,"depth":44,"links":233463},[233464],{"id":233098,"depth":44,"text":233040},"SELECT Queries in SQL.",{},{"title":233040,"description":233465},"sql/select-queries",[28337,28650,183553,149990],"GCKFsUcR9_jzrhAN04bLiwmTbHmLjoWL9q6ydgGm1pM",{"id":233472,"title":233054,"body":233473,"date":402,"description":233778,"extension":404,"meta":233779,"navigation":61,"order":71,"path":233053,"seo":233780,"stem":233781,"subject":28337,"tags":233782,"__hash__":233783},"topics/sql/subqueries.md",{"type":8,"value":233474,"toc":233775},[233475,233478,233773],[11,233476,233054],{"id":233477},"subqueries",[25,233479,233481],{"className":28335,"code":233480,"language":28337,"meta":30,"style":30},"-- Subquery in WHERE\nSELECT * FROM users\nWHERE id IN (SELECT user_id FROM orders WHERE total > 1000);\n\n-- Subquery in FROM\nSELECT avg_orders.country, avg_orders.avg_total\nFROM (\n  SELECT country, AVG(total) as avg_total\n  FROM users u\n  JOIN orders o ON u.id = o.user_id\n  GROUP BY country\n) avg_orders\nWHERE avg_orders.avg_total > 500;\n\n-- Correlated subquery\nSELECT * FROM users u\nWHERE EXISTS (\n  SELECT 1 FROM orders o\n  WHERE o.user_id = u.id AND o.total > 1000\n);\n\n-- Scalar subquery\nSELECT \n  name,\n  (SELECT COUNT(*) FROM orders WHERE user_id = users.id) as order_count\nFROM users;\n",[20,233482,233483,233488,233498,233526,233530,233535,233557,233563,233580,233586,233608,233615,233620,233637,233641,233646,233656,233664,233674,233706,233710,233714,233719,233725,233731,233767],{"__ignoreMap":30},[34,233484,233485],{"class":36,"line":37},[34,233486,233487],{"class":40},"-- Subquery in WHERE\n",[34,233489,233490,233492,233494,233496],{"class":36,"line":44},[34,233491,28529],{"class":580},[34,233493,18083],{"class":580},[34,233495,28534],{"class":580},[34,233497,154615],{"class":181},[34,233499,233500,233502,233504,233506,233508,233510,233512,233514,233516,233518,233520,233522,233524],{"class":36,"line":58},[34,233501,28604],{"class":580},[34,233503,28568],{"class":181},[34,233505,153209],{"class":580},[34,233507,3204],{"class":181},[34,233509,28529],{"class":580},[34,233511,153212],{"class":181},[34,233513,29179],{"class":580},[34,233515,153233],{"class":181},[34,233517,28604],{"class":580},[34,233519,49648],{"class":181},[34,233521,5691],{"class":580},[34,233523,77114],{"class":50},[34,233525,1586],{"class":181},[34,233527,233528],{"class":36,"line":65},[34,233529,62],{"emptyLinePlaceholder":61},[34,233531,233532],{"class":36,"line":71},[34,233533,233534],{"class":40},"-- Subquery in FROM\n",[34,233536,233537,233539,233542,233544,233547,233549,233552,233554],{"class":36,"line":77},[34,233538,28529],{"class":580},[34,233540,233541],{"class":50}," avg_orders",[34,233543,151],{"class":181},[34,233545,233546],{"class":50},"country",[34,233548,1798],{"class":181},[34,233550,233551],{"class":50},"avg_orders",[34,233553,151],{"class":181},[34,233555,233556],{"class":50},"avg_total\n",[34,233558,233559,233561],{"class":36,"line":82},[34,233560,29179],{"class":580},[34,233562,13975],{"class":181},[34,233564,233565,233567,233569,233572,233575,233577],{"class":36,"line":88},[34,233566,153226],{"class":580},[34,233568,231454],{"class":181},[34,233570,233571],{"class":50},"AVG",[34,233573,233574],{"class":181},"(total) ",[34,233576,74548],{"class":580},[34,233578,233579],{"class":181}," avg_total\n",[34,233581,233582,233584],{"class":36,"line":242},[34,233583,231940],{"class":580},[34,233585,232876],{"class":181},[34,233587,233588,233590,233592,233594,233596,233598,233600,233602,233604,233606],{"class":36,"line":250},[34,233589,232020],{"class":580},[34,233591,232883],{"class":181},[34,233593,150819],{"class":580},[34,233595,151806],{"class":50},[34,233597,151],{"class":181},[34,233599,3885],{"class":50},[34,233601,683],{"class":580},[34,233603,151796],{"class":50},[34,233605,151],{"class":181},[34,233607,232900],{"class":50},[34,233609,233610,233613],{"class":36,"line":263},[34,233611,233612],{"class":580},"  GROUP BY",[34,233614,231570],{"class":181},[34,233616,233617],{"class":36,"line":275},[34,233618,233619],{"class":181},") avg_orders\n",[34,233621,233622,233624,233626,233628,233631,233633,233635],{"class":36,"line":700},[34,233623,28604],{"class":580},[34,233625,233541],{"class":50},[34,233627,151],{"class":181},[34,233629,233630],{"class":50},"avg_total",[34,233632,9009],{"class":580},[34,233634,76472],{"class":50},[34,233636,593],{"class":181},[34,233638,233639],{"class":36,"line":706},[34,233640,62],{"emptyLinePlaceholder":61},[34,233642,233643],{"class":36,"line":715},[34,233644,233645],{"class":40},"-- Correlated subquery\n",[34,233647,233648,233650,233652,233654],{"class":36,"line":725},[34,233649,28529],{"class":580},[34,233651,18083],{"class":580},[34,233653,28534],{"class":580},[34,233655,232876],{"class":181},[34,233657,233658,233660,233662],{"class":36,"line":734},[34,233659,28604],{"class":580},[34,233661,150689],{"class":580},[34,233663,13975],{"class":181},[34,233665,233666,233668,233670,233672],{"class":36,"line":742},[34,233667,153226],{"class":580},[34,233669,3567],{"class":50},[34,233671,28534],{"class":580},[34,233673,151783],{"class":181},[34,233675,233676,233678,233680,233682,233684,233686,233688,233690,233692,233694,233696,233698,233701,233703],{"class":36,"line":748},[34,233677,231948],{"class":580},[34,233679,151796],{"class":50},[34,233681,151],{"class":181},[34,233683,151801],{"class":50},[34,233685,683],{"class":580},[34,233687,151806],{"class":50},[34,233689,151],{"class":181},[34,233691,3885],{"class":50},[34,233693,155708],{"class":580},[34,233695,151796],{"class":50},[34,233697,151],{"class":181},[34,233699,233700],{"class":50},"total",[34,233702,9009],{"class":580},[34,233704,233705],{"class":50}," 1000\n",[34,233707,233708],{"class":36,"line":754},[34,233709,1586],{"class":181},[34,233711,233712],{"class":36,"line":759},[34,233713,62],{"emptyLinePlaceholder":61},[34,233715,233716],{"class":36,"line":771},[34,233717,233718],{"class":40},"-- Scalar subquery\n",[34,233720,233721,233723],{"class":36,"line":794},[34,233722,28529],{"class":580},[34,233724,526],{"class":181},[34,233726,233727,233729],{"class":36,"line":824},[34,233728,7350],{"class":580},[34,233730,624],{"class":181},[34,233732,233733,233735,233737,233739,233741,233743,233745,233747,233749,233751,233753,233755,233757,233759,233761,233763,233765],{"class":36,"line":830},[34,233734,151460],{"class":181},[34,233736,28529],{"class":580},[34,233738,153333],{"class":50},[34,233740,1607],{"class":181},[34,233742,4289],{"class":580},[34,233744,4817],{"class":181},[34,233746,29179],{"class":580},[34,233748,153233],{"class":181},[34,233750,28604],{"class":580},[34,233752,153212],{"class":181},[34,233754,1301],{"class":580},[34,233756,28425],{"class":50},[34,233758,151],{"class":181},[34,233760,3885],{"class":50},[34,233762,4817],{"class":181},[34,233764,74548],{"class":580},[34,233766,231822],{"class":181},[34,233768,233769,233771],{"class":36,"line":839},[34,233770,29179],{"class":580},[34,233772,4114],{"class":181},[388,233774,23046],{},{"title":30,"searchDepth":44,"depth":44,"links":233776},[233777],{"id":233477,"depth":44,"text":233054},"Subqueries in SQL.",{},{"title":233054,"description":233778},"sql/subqueries",[28337,28650,183553,149990],"Z7gUEbOXH_USQrTWXnc1yqFZPWh6OdZQ0Bq6vOoBzgY",{"id":233785,"title":152646,"body":233786,"date":402,"description":234143,"extension":404,"meta":234144,"navigation":61,"order":82,"path":233063,"seo":234145,"stem":234146,"subject":28337,"tags":234147,"__hash__":234148},"topics/sql/table-management.md",{"type":8,"value":233787,"toc":234140},[233788,233790,234138],[11,233789,152646],{"id":153609},[25,233791,233793],{"className":28335,"code":233792,"language":28337,"meta":30,"style":30},"-- CREATE TABLE\nCREATE TABLE users (\n  id SERIAL PRIMARY KEY,\n  name VARCHAR(100) NOT NULL,\n  email VARCHAR(255) UNIQUE NOT NULL,\n  age INT CHECK (age >= 0),\n  country VARCHAR(50) DEFAULT 'USA',\n  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n);\n\n-- CREATE TABLE with foreign key\nCREATE TABLE orders (\n  id SERIAL PRIMARY KEY,\n  user_id INT REFERENCES users(id) ON DELETE CASCADE,\n  total DECIMAL(10, 2) NOT NULL,\n  status VARCHAR(20) DEFAULT 'pending'\n);\n\n-- ALTER TABLE\nALTER TABLE users ADD COLUMN phone VARCHAR(20);\nALTER TABLE users DROP COLUMN phone;\nALTER TABLE users ALTER COLUMN name TYPE VARCHAR(200);\nALTER TABLE users RENAME COLUMN name TO full_name;\nALTER TABLE users ADD CONSTRAINT email_check CHECK (email LIKE '%@%');\n\n-- DROP TABLE\nDROP TABLE IF EXISTS users;\n\n-- TRUNCATE (delete all rows)\nTRUNCATE TABLE logs;\n",[20,233794,233795,233800,233810,233820,233836,233854,233871,233890,233900,233904,233908,233913,233923,233933,233949,233969,233986,233990,233994,233999,234019,234031,234056,234072,234100,234104,234109,234121,234125,234130],{"__ignoreMap":30},[34,233796,233797],{"class":36,"line":37},[34,233798,233799],{"class":40},"-- CREATE TABLE\n",[34,233801,233802,233804,233806,233808],{"class":36,"line":44},[34,233803,28349],{"class":580},[34,233805,28422],{"class":580},[34,233807,28425],{"class":47},[34,233809,13975],{"class":181},[34,233811,233812,233814,233816,233818],{"class":36,"line":58},[34,233813,150847],{"class":181},[34,233815,183269],{"class":580},[34,233817,151223],{"class":580},[34,233819,624],{"class":181},[34,233821,233822,233824,233826,233828,233830,233832,233834],{"class":36,"line":65},[34,233823,7350],{"class":580},[34,233825,152081],{"class":580},[34,233827,1607],{"class":181},[34,233829,20863],{"class":50},[34,233831,4817],{"class":181},[34,233833,153656],{"class":580},[34,233835,624],{"class":181},[34,233837,233838,233840,233842,233844,233846,233848,233850,233852],{"class":36,"line":71},[34,233839,151589],{"class":181},[34,233841,150421],{"class":580},[34,233843,1607],{"class":181},[34,233845,38686],{"class":50},[34,233847,4817],{"class":181},[34,233849,153673],{"class":580},[34,233851,153676],{"class":580},[34,233853,624],{"class":181},[34,233855,233856,233858,233860,233863,233865,233867,233869],{"class":36,"line":77},[34,233857,153683],{"class":181},[34,233859,28454],{"class":580},[34,233861,233862],{"class":580}," CHECK",[34,233864,18840],{"class":181},[34,233866,18401],{"class":580},[34,233868,8070],{"class":50},[34,233870,50836],{"class":181},[34,233872,233873,233876,233878,233880,233882,233884,233886,233888],{"class":36,"line":82},[34,233874,233875],{"class":181},"  country ",[34,233877,150421],{"class":580},[34,233879,1607],{"class":181},[34,233881,24525],{"class":50},[34,233883,4817],{"class":181},[34,233885,153709],{"class":580},[34,233887,210086],{"class":54},[34,233889,624],{"class":181},[34,233891,233892,233894,233896,233898],{"class":36,"line":88},[34,233893,153718],{"class":181},[34,233895,150527],{"class":580},[34,233897,153723],{"class":580},[34,233899,153744],{"class":181},[34,233901,233902],{"class":36,"line":242},[34,233903,1586],{"class":181},[34,233905,233906],{"class":36,"line":250},[34,233907,62],{"emptyLinePlaceholder":61},[34,233909,233910],{"class":36,"line":263},[34,233911,233912],{"class":40},"-- CREATE TABLE with foreign key\n",[34,233914,233915,233917,233919,233921],{"class":36,"line":275},[34,233916,28349],{"class":580},[34,233918,28422],{"class":580},[34,233920,153238],{"class":47},[34,233922,13975],{"class":181},[34,233924,233925,233927,233929,233931],{"class":36,"line":700},[34,233926,150847],{"class":181},[34,233928,183269],{"class":580},[34,233930,151223],{"class":580},[34,233932,624],{"class":181},[34,233934,233935,233937,233939,233942,233944,233947],{"class":36,"line":706},[34,233936,153799],{"class":181},[34,233938,28454],{"class":580},[34,233940,233941],{"class":580}," REFERENCES",[34,233943,153858],{"class":181},[34,233945,233946],{"class":580},"ON DELETE CASCADE",[34,233948,624],{"class":181},[34,233950,233951,233953,233955,233957,233959,233961,233963,233965,233967],{"class":36,"line":715},[34,233952,153810],{"class":181},[34,233954,150374],{"class":580},[34,233956,1607],{"class":181},[34,233958,11923],{"class":50},[34,233960,1798],{"class":181},[34,233962,8324],{"class":50},[34,233964,4817],{"class":181},[34,233966,153656],{"class":580},[34,233968,624],{"class":181},[34,233970,233971,233973,233975,233977,233979,233981,233983],{"class":36,"line":725},[34,233972,153693],{"class":580},[34,233974,152081],{"class":580},[34,233976,1607],{"class":181},[34,233978,24945],{"class":50},[34,233980,4817],{"class":181},[34,233982,153709],{"class":580},[34,233984,233985],{"class":54}," 'pending'\n",[34,233987,233988],{"class":36,"line":734},[34,233989,1586],{"class":181},[34,233991,233992],{"class":36,"line":742},[34,233993,62],{"emptyLinePlaceholder":61},[34,233995,233996],{"class":36,"line":748},[34,233997,233998],{"class":40},"-- ALTER TABLE\n",[34,234000,234001,234003,234005,234007,234009,234011,234013,234015,234017],{"class":36,"line":754},[34,234002,151213],{"class":580},[34,234004,28422],{"class":580},[34,234006,28553],{"class":181},[34,234008,151220],{"class":580},[34,234010,153891],{"class":181},[34,234012,150421],{"class":580},[34,234014,1607],{"class":181},[34,234016,24945],{"class":50},[34,234018,1586],{"class":181},[34,234020,234021,234023,234025,234027,234029],{"class":36,"line":759},[34,234022,151213],{"class":580},[34,234024,28422],{"class":580},[34,234026,28553],{"class":181},[34,234028,150706],{"class":580},[34,234030,153938],{"class":181},[34,234032,234033,234035,234037,234039,234041,234043,234045,234048,234050,234052,234054],{"class":36,"line":771},[34,234034,151213],{"class":580},[34,234036,28422],{"class":580},[34,234038,28553],{"class":181},[34,234040,151213],{"class":580},[34,234042,153952],{"class":181},[34,234044,178],{"class":580},[34,234046,234047],{"class":580}," TYPE",[34,234049,152081],{"class":580},[34,234051,1607],{"class":181},[34,234053,20899],{"class":50},[34,234055,1586],{"class":181},[34,234057,234058,234060,234062,234065,234067,234069],{"class":36,"line":794},[34,234059,151213],{"class":580},[34,234061,28422],{"class":580},[34,234063,234064],{"class":181}," users RENAME COLUMN ",[34,234066,178],{"class":580},[34,234068,154310],{"class":580},[34,234070,234071],{"class":181}," full_name;\n",[34,234073,234074,234076,234078,234080,234082,234085,234088,234090,234093,234095,234098],{"class":36,"line":824},[34,234075,151213],{"class":580},[34,234077,28422],{"class":580},[34,234079,28553],{"class":181},[34,234081,151220],{"class":580},[34,234083,234084],{"class":580}," CONSTRAINT",[34,234086,234087],{"class":181}," email_check ",[34,234089,152860],{"class":580},[34,234091,234092],{"class":181}," (email ",[34,234094,153155],{"class":580},[34,234096,234097],{"class":54}," '%@%'",[34,234099,1586],{"class":181},[34,234101,234102],{"class":36,"line":830},[34,234103,62],{"emptyLinePlaceholder":61},[34,234105,234106],{"class":36,"line":839},[34,234107,234108],{"class":40},"-- DROP TABLE\n",[34,234110,234111,234113,234115,234117,234119],{"class":36,"line":854},[34,234112,150706],{"class":580},[34,234114,28422],{"class":580},[34,234116,150683],{"class":580},[34,234118,150689],{"class":580},[34,234120,4114],{"class":181},[34,234122,234123],{"class":36,"line":860},[34,234124,62],{"emptyLinePlaceholder":61},[34,234126,234127],{"class":36,"line":865},[34,234128,234129],{"class":40},"-- TRUNCATE (delete all rows)\n",[34,234131,234132,234134,234136],{"class":36,"line":870},[34,234133,154068],{"class":580},[34,234135,28422],{"class":580},[34,234137,154073],{"class":181},[388,234139,49910],{},{"title":30,"searchDepth":44,"depth":44,"links":234141},[234142],{"id":153609,"depth":44,"text":152646},"Table Management in SQL.",{},{"title":152646,"description":234143},"sql/table-management",[28337,28650,183553,149990],"3rBp8x7CC_7MYr2ifS-9xNxTFjzAEbjO89der688mJ4",{"id":234150,"title":152701,"body":234151,"date":402,"description":234424,"extension":404,"meta":234425,"navigation":61,"order":263,"path":233082,"seo":234426,"stem":234427,"subject":28337,"tags":234428,"__hash__":234429},"topics/sql/useful-functions.md",{"type":8,"value":234152,"toc":234421},[234153,234155,234419],[11,234154,152701],{"id":154913},[25,234156,234158],{"className":28335,"code":234157,"language":28337,"meta":30,"style":30},"-- String functions\nCONCAT(first_name, ' ', last_name)\nUPPER(name)\nLOWER(name)\nLENGTH(name)\nTRIM(name)\nSUBSTRING(name, 1, 3)\nREPLACE(name, 'old', 'new')\n\n-- Date functions\nNOW()\nCURRENT_DATE\nDATE_PART('year', created_at)\nDATE_TRUNC('month', created_at)\ncreated_at + INTERVAL '1 day'\nAGE(birth_date)\n\n-- NULL handling\nCOALESCE(middle_name, '')\nNULLIF(value, 0)\n\n-- CASE expression\nSELECT \n  name,\n  CASE \n    WHEN age \u003C 18 THEN 'Minor'\n    WHEN age \u003C 65 THEN 'Adult'\n    ELSE 'Senior'\n  END as age_group\nFROM users;\n",[20,234159,234160,234164,234174,234184,234194,234204,234214,234232,234250,234254,234258,234264,234269,234280,234289,234301,234306,234310,234314,234325,234339,234343,234348,234354,234360,234367,234382,234396,234403,234413],{"__ignoreMap":30},[34,234161,234162],{"class":36,"line":37},[34,234163,154923],{"class":40},[34,234165,234166,234168,234170,234172],{"class":36,"line":44},[34,234167,154928],{"class":50},[34,234169,154931],{"class":181},[34,234171,37895],{"class":54},[34,234173,154936],{"class":181},[34,234175,234176,234178,234180,234182],{"class":36,"line":58},[34,234177,154954],{"class":50},[34,234179,1607],{"class":181},[34,234181,178],{"class":580},[34,234183,3372],{"class":181},[34,234185,234186,234188,234190,234192],{"class":36,"line":65},[34,234187,154965],{"class":50},[34,234189,1607],{"class":181},[34,234191,178],{"class":580},[34,234193,3372],{"class":181},[34,234195,234196,234198,234200,234202],{"class":36,"line":71},[34,234197,154976],{"class":580},[34,234199,1607],{"class":181},[34,234201,178],{"class":580},[34,234203,3372],{"class":181},[34,234205,234206,234208,234210,234212],{"class":36,"line":77},[34,234207,155002],{"class":50},[34,234209,1607],{"class":181},[34,234211,178],{"class":580},[34,234213,3372],{"class":181},[34,234215,234216,234218,234220,234222,234224,234226,234228,234230],{"class":36,"line":82},[34,234217,155035],{"class":50},[34,234219,1607],{"class":181},[34,234221,178],{"class":580},[34,234223,1798],{"class":181},[34,234225,8318],{"class":50},[34,234227,1798],{"class":181},[34,234229,3162],{"class":50},[34,234231,3372],{"class":181},[34,234233,234234,234236,234238,234240,234242,234244,234246,234248],{"class":36,"line":88},[34,234235,151610],{"class":50},[34,234237,1607],{"class":181},[34,234239,178],{"class":580},[34,234241,1798],{"class":181},[34,234243,155092],{"class":54},[34,234245,1798],{"class":181},[34,234247,155097],{"class":54},[34,234249,3372],{"class":181},[34,234251,234252],{"class":36,"line":242},[34,234253,62],{"emptyLinePlaceholder":61},[34,234255,234256],{"class":36,"line":250},[34,234257,155151],{"class":40},[34,234259,234260,234262],{"class":36,"line":263},[34,234261,155156],{"class":580},[34,234263,33899],{"class":181},[34,234265,234266],{"class":36,"line":275},[34,234267,234268],{"class":181},"CURRENT_DATE\n",[34,234270,234271,234274,234277],{"class":36,"line":700},[34,234272,234273],{"class":181},"DATE_PART(",[34,234275,234276],{"class":54},"'year'",[34,234278,234279],{"class":181},", created_at)\n",[34,234281,234282,234285,234287],{"class":36,"line":706},[34,234283,234284],{"class":181},"DATE_TRUNC(",[34,234286,187010],{"class":54},[34,234288,234279],{"class":181},[34,234290,234291,234294,234296,234298],{"class":36,"line":715},[34,234292,234293],{"class":181},"created_at ",[34,234295,2940],{"class":580},[34,234297,186978],{"class":181},[34,234299,234300],{"class":54},"'1 day'\n",[34,234302,234303],{"class":36,"line":725},[34,234304,234305],{"class":181},"AGE(birth_date)\n",[34,234307,234308],{"class":36,"line":734},[34,234309,62],{"emptyLinePlaceholder":61},[34,234311,234312],{"class":36,"line":742},[34,234313,155398],{"class":40},[34,234315,234316,234318,234321,234323],{"class":36,"line":748},[34,234317,155403],{"class":50},[34,234319,234320],{"class":181},"(middle_name, ",[34,234322,3151],{"class":54},[34,234324,3372],{"class":181},[34,234326,234327,234329,234331,234333,234335,234337],{"class":36,"line":754},[34,234328,155428],{"class":50},[34,234330,1607],{"class":181},[34,234332,2871],{"class":580},[34,234334,1798],{"class":181},[34,234336,2773],{"class":50},[34,234338,3372],{"class":181},[34,234340,234341],{"class":36,"line":759},[34,234342,62],{"emptyLinePlaceholder":61},[34,234344,234345],{"class":36,"line":771},[34,234346,234347],{"class":40},"-- CASE expression\n",[34,234349,234350,234352],{"class":36,"line":794},[34,234351,28529],{"class":580},[34,234353,526],{"class":181},[34,234355,234356,234358],{"class":36,"line":824},[34,234357,7350],{"class":580},[34,234359,624],{"class":181},[34,234361,234362,234365],{"class":36,"line":830},[34,234363,234364],{"class":580},"  CASE",[34,234366,526],{"class":181},[34,234368,234369,234372,234374,234376,234378,234380],{"class":36,"line":839},[34,234370,234371],{"class":580},"    WHEN",[34,234373,25065],{"class":181},[34,234375,815],{"class":580},[34,234377,18845],{"class":50},[34,234379,155469],{"class":580},[34,234381,155472],{"class":54},[34,234383,234384,234386,234388,234390,234392,234394],{"class":36,"line":854},[34,234385,234371],{"class":580},[34,234387,25065],{"class":181},[34,234389,815],{"class":580},[34,234391,155483],{"class":50},[34,234393,155469],{"class":580},[34,234395,155488],{"class":54},[34,234397,234398,234401],{"class":36,"line":860},[34,234399,234400],{"class":580},"    ELSE",[34,234402,155496],{"class":54},[34,234404,234405,234408,234410],{"class":36,"line":865},[34,234406,234407],{"class":580},"  END",[34,234409,91551],{"class":580},[34,234411,234412],{"class":181}," age_group\n",[34,234414,234415,234417],{"class":36,"line":870},[34,234416,29179],{"class":580},[34,234418,4114],{"class":181},[388,234420,143036],{},{"title":30,"searchDepth":44,"depth":44,"links":234422},[234423],{"id":154913,"depth":44,"text":152701},"Useful Functions in SQL.",{},{"title":152701,"description":234424},"sql/useful-functions",[28337,28650,183553,149990],"apH5BY20rzXid-WIzj9_2HJlsa8G83mBu0Hxjog_3xM",{"id":234431,"title":233077,"body":234432,"date":402,"description":234786,"extension":404,"meta":234787,"navigation":61,"order":250,"path":233076,"seo":234788,"stem":234789,"subject":28337,"tags":234790,"__hash__":234791},"topics/sql/window-functions.md",{"type":8,"value":234433,"toc":234783},[234434,234437,234781],[11,234435,233077],{"id":234436},"window-functions",[25,234438,234440],{"className":28335,"code":234439,"language":28337,"meta":30,"style":30},"-- ROW_NUMBER\nSELECT \n  name,\n  country,\n  ROW_NUMBER() OVER (PARTITION BY country ORDER BY created_at) as row_num\nFROM users;\n\n-- RANK and DENSE_RANK\nSELECT \n  name,\n  score,\n  RANK() OVER (ORDER BY score DESC) as rank,\n  DENSE_RANK() OVER (ORDER BY score DESC) as dense_rank\nFROM players;\n\n-- Running total\nSELECT \n  date,\n  amount,\n  SUM(amount) OVER (ORDER BY date) as running_total\nFROM transactions;\n\n-- Moving average\nSELECT \n  date,\n  amount,\n  AVG(amount) OVER (ORDER BY date ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) as moving_avg\nFROM transactions;\n\n-- LAG and LEAD\nSELECT \n  date,\n  amount,\n  LAG(amount) OVER (ORDER BY date) as prev_amount,\n  LEAD(amount) OVER (ORDER BY date) as next_amount\nFROM transactions;\n",[20,234441,234442,234447,234453,234459,234464,234494,234500,234504,234509,234515,234521,234526,234550,234574,234581,234585,234590,234596,234603,234608,234629,234636,234640,234645,234651,234657,234661,234700,234706,234710,234715,234721,234727,234731,234753,234775],{"__ignoreMap":30},[34,234443,234444],{"class":36,"line":37},[34,234445,234446],{"class":40},"-- ROW_NUMBER\n",[34,234448,234449,234451],{"class":36,"line":44},[34,234450,28529],{"class":580},[34,234452,526],{"class":181},[34,234454,234455,234457],{"class":36,"line":58},[34,234456,7350],{"class":580},[34,234458,624],{"class":181},[34,234460,234461],{"class":36,"line":65},[34,234462,234463],{"class":181},"  country,\n",[34,234465,234466,234469,234471,234474,234476,234479,234482,234484,234486,234489,234491],{"class":36,"line":71},[34,234467,234468],{"class":50},"  ROW_NUMBER",[34,234470,672],{"class":181},[34,234472,234473],{"class":580},"OVER",[34,234475,3204],{"class":181},[34,234477,234478],{"class":580},"PARTITION",[34,234480,234481],{"class":580}," BY",[34,234483,231740],{"class":181},[34,234485,29069],{"class":580},[34,234487,234488],{"class":181}," created_at) ",[34,234490,74548],{"class":580},[34,234492,234493],{"class":181}," row_num\n",[34,234495,234496,234498],{"class":36,"line":77},[34,234497,29179],{"class":580},[34,234499,4114],{"class":181},[34,234501,234502],{"class":36,"line":82},[34,234503,62],{"emptyLinePlaceholder":61},[34,234505,234506],{"class":36,"line":88},[34,234507,234508],{"class":40},"-- RANK and DENSE_RANK\n",[34,234510,234511,234513],{"class":36,"line":242},[34,234512,28529],{"class":580},[34,234514,526],{"class":181},[34,234516,234517,234519],{"class":36,"line":250},[34,234518,7350],{"class":580},[34,234520,624],{"class":181},[34,234522,234523],{"class":36,"line":263},[34,234524,234525],{"class":181},"  score,\n",[34,234527,234528,234531,234533,234535,234537,234539,234541,234543,234545,234547],{"class":36,"line":275},[34,234529,234530],{"class":50},"  RANK",[34,234532,672],{"class":181},[34,234534,234473],{"class":580},[34,234536,3204],{"class":181},[34,234538,29069],{"class":580},[34,234540,151067],{"class":181},[34,234542,151070],{"class":580},[34,234544,4817],{"class":181},[34,234546,74548],{"class":580},[34,234548,234549],{"class":181}," rank,\n",[34,234551,234552,234555,234557,234559,234561,234563,234565,234567,234569,234571],{"class":36,"line":700},[34,234553,234554],{"class":50},"  DENSE_RANK",[34,234556,672],{"class":181},[34,234558,234473],{"class":580},[34,234560,3204],{"class":181},[34,234562,29069],{"class":580},[34,234564,151067],{"class":181},[34,234566,151070],{"class":580},[34,234568,4817],{"class":181},[34,234570,74548],{"class":580},[34,234572,234573],{"class":181}," dense_rank\n",[34,234575,234576,234578],{"class":36,"line":706},[34,234577,29179],{"class":580},[34,234579,234580],{"class":181}," players;\n",[34,234582,234583],{"class":36,"line":715},[34,234584,62],{"emptyLinePlaceholder":61},[34,234586,234587],{"class":36,"line":725},[34,234588,234589],{"class":40},"-- Running total\n",[34,234591,234592,234594],{"class":36,"line":734},[34,234593,28529],{"class":580},[34,234595,526],{"class":181},[34,234597,234598,234601],{"class":36,"line":742},[34,234599,234600],{"class":580},"  date",[34,234602,624],{"class":181},[34,234604,234605],{"class":36,"line":748},[34,234606,234607],{"class":181},"  amount,\n",[34,234609,234610,234612,234614,234616,234618,234620,234622,234624,234626],{"class":36,"line":754},[34,234611,231640],{"class":50},[34,234613,231490],{"class":181},[34,234615,234473],{"class":580},[34,234617,3204],{"class":181},[34,234619,29069],{"class":580},[34,234621,2692],{"class":580},[34,234623,4817],{"class":181},[34,234625,74548],{"class":580},[34,234627,234628],{"class":181}," running_total\n",[34,234630,234631,234633],{"class":36,"line":759},[34,234632,29179],{"class":580},[34,234634,234635],{"class":181}," transactions;\n",[34,234637,234638],{"class":36,"line":771},[34,234639,62],{"emptyLinePlaceholder":61},[34,234641,234642],{"class":36,"line":794},[34,234643,234644],{"class":40},"-- Moving average\n",[34,234646,234647,234649],{"class":36,"line":824},[34,234648,28529],{"class":580},[34,234650,526],{"class":181},[34,234652,234653,234655],{"class":36,"line":830},[34,234654,234600],{"class":580},[34,234656,624],{"class":181},[34,234658,234659],{"class":36,"line":839},[34,234660,234607],{"class":181},[34,234662,234663,234665,234667,234669,234671,234673,234675,234678,234681,234683,234686,234688,234691,234693,234695,234697],{"class":36,"line":854},[34,234664,231628],{"class":50},[34,234666,231490],{"class":181},[34,234668,234473],{"class":580},[34,234670,3204],{"class":181},[34,234672,29069],{"class":580},[34,234674,2692],{"class":580},[34,234676,234677],{"class":580}," ROWS",[34,234679,234680],{"class":580}," BETWEEN",[34,234682,4292],{"class":50},[34,234684,234685],{"class":580}," PRECEDING",[34,234687,155708],{"class":580},[34,234689,234690],{"class":181}," CURRENT ",[34,234692,185195],{"class":580},[34,234694,4817],{"class":181},[34,234696,74548],{"class":580},[34,234698,234699],{"class":181}," moving_avg\n",[34,234701,234702,234704],{"class":36,"line":860},[34,234703,29179],{"class":580},[34,234705,234635],{"class":181},[34,234707,234708],{"class":36,"line":865},[34,234709,62],{"emptyLinePlaceholder":61},[34,234711,234712],{"class":36,"line":870},[34,234713,234714],{"class":40},"-- LAG and LEAD\n",[34,234716,234717,234719],{"class":36,"line":876},[34,234718,28529],{"class":580},[34,234720,526],{"class":181},[34,234722,234723,234725],{"class":36,"line":885},[34,234724,234600],{"class":580},[34,234726,624],{"class":181},[34,234728,234729],{"class":36,"line":895},[34,234730,234607],{"class":181},[34,234732,234733,234736,234738,234740,234742,234744,234746,234748,234750],{"class":36,"line":904},[34,234734,234735],{"class":50},"  LAG",[34,234737,231490],{"class":181},[34,234739,234473],{"class":580},[34,234741,3204],{"class":181},[34,234743,29069],{"class":580},[34,234745,2692],{"class":580},[34,234747,4817],{"class":181},[34,234749,74548],{"class":580},[34,234751,234752],{"class":181}," prev_amount,\n",[34,234754,234755,234758,234760,234762,234764,234766,234768,234770,234772],{"class":36,"line":915},[34,234756,234757],{"class":50},"  LEAD",[34,234759,231490],{"class":181},[34,234761,234473],{"class":580},[34,234763,3204],{"class":181},[34,234765,29069],{"class":580},[34,234767,2692],{"class":580},[34,234769,4817],{"class":181},[34,234771,74548],{"class":580},[34,234773,234774],{"class":181}," next_amount\n",[34,234776,234777,234779],{"class":36,"line":927},[34,234778,29179],{"class":580},[34,234780,234635],{"class":181},[388,234782,23046],{},{"title":30,"searchDepth":44,"depth":44,"links":234784},[234785],{"id":234436,"depth":44,"text":233077},"Window Functions in SQL.",{},{"title":233077,"description":234786},"sql/window-functions",[28337,28650,183553,149990],"tYvYP2oXZJp5pZ6lo4mxuDCyac9P23B1IIbONQsRRMs",{"id":234793,"title":234794,"body":234795,"date":402,"description":235376,"extension":404,"meta":235377,"navigation":61,"order":37,"path":235378,"seo":235379,"stem":235380,"subject":235381,"tags":235382,"__hash__":235384},"topics/sqlite/overview.md","SQLite",{"type":8,"value":234796,"toc":235364},[234797,234799,234802,234804,234836,234838,234891,234895,234998,235002,235031,235035,235125,235129,235172,235176,235309,235312,235337,235339,235361],[11,234798,14],{"id":13},[16,234800,234801],{},"SQLite is a self-contained, serverless, and zero-configuration database engine commonly used in embedded systems, mobile applications, and small-scale projects. Its simplicity and reliability make it ideal for many use cases.",[11,234803,8498],{"id":8497},[25,234805,234809],{"className":234806,"code":234807,"language":234808,"meta":30,"style":30},"language-plaintext shiki shiki-themes github-light github-dark","- Serverless architecture\n- Cross-platform support\n- Public domain license\n- ACID compliance\n- Small footprint\n","plaintext",[20,234810,234811,234816,234821,234826,234831],{"__ignoreMap":30},[34,234812,234813],{"class":36,"line":37},[34,234814,234815],{},"- Serverless architecture\n",[34,234817,234818],{"class":36,"line":44},[34,234819,234820],{},"- Cross-platform support\n",[34,234822,234823],{"class":36,"line":58},[34,234824,234825],{},"- Public domain license\n",[34,234827,234828],{"class":36,"line":65},[34,234829,234830],{},"- ACID compliance\n",[34,234832,234833],{"class":36,"line":71},[34,234834,234835],{},"- Small footprint\n",[11,234837,6035],{"id":6040},[25,234839,234841],{"className":27,"code":234840,"language":29,"meta":30,"style":30},"# Install SQLite on Ubuntu\nsudo apt install sqlite3\n\n# Check the installed version\nsqlite3 --version\n\n# Open a REPL session\nsqlite3 mydatabase.db\n",[20,234842,234843,234848,234859,234863,234868,234875,234879,234884],{"__ignoreMap":30},[34,234844,234845],{"class":36,"line":37},[34,234846,234847],{"class":40},"# Install SQLite on Ubuntu\n",[34,234849,234850,234852,234854,234856],{"class":36,"line":44},[34,234851,436],{"class":47},[34,234853,439],{"class":54},[34,234855,118],{"class":54},[34,234857,234858],{"class":54}," sqlite3\n",[34,234860,234861],{"class":36,"line":58},[34,234862,62],{"emptyLinePlaceholder":61},[34,234864,234865],{"class":36,"line":65},[34,234866,234867],{"class":40},"# Check the installed version\n",[34,234869,234870,234873],{"class":36,"line":71},[34,234871,234872],{"class":47},"sqlite3",[34,234874,5013],{"class":50},[34,234876,234877],{"class":36,"line":77},[34,234878,62],{"emptyLinePlaceholder":61},[34,234880,234881],{"class":36,"line":82},[34,234882,234883],{"class":40},"# Open a REPL session\n",[34,234885,234886,234888],{"class":36,"line":88},[34,234887,234872],{"class":47},[34,234889,234890],{"class":54}," mydatabase.db\n",[11,234892,234894],{"id":234893},"creating-and-managing-databases","Creating and Managing Databases",[25,234896,234898],{"className":28335,"code":234897,"language":28337,"meta":30,"style":30},"-- Create a new table\nCREATE TABLE users (\n    id INTEGER PRIMARY KEY,\n    name TEXT NOT NULL,\n    email TEXT UNIQUE\n);\n\n-- Insert data\nINSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');\n\n-- Query data\nSELECT * FROM users;\n",[20,234899,234900,234905,234915,234926,234936,234945,234949,234953,234957,234979,234983,234988],{"__ignoreMap":30},[34,234901,234902],{"class":36,"line":37},[34,234903,234904],{"class":40},"-- Create a new table\n",[34,234906,234907,234909,234911,234913],{"class":36,"line":44},[34,234908,28349],{"class":580},[34,234910,28422],{"class":580},[34,234912,28425],{"class":47},[34,234914,13975],{"class":181},[34,234916,234917,234920,234922,234924],{"class":36,"line":58},[34,234918,234919],{"class":181},"    id ",[34,234921,184067],{"class":580},[34,234923,151223],{"class":580},[34,234925,624],{"class":181},[34,234927,234928,234930,234932,234934],{"class":36,"line":65},[34,234929,5362],{"class":580},[34,234931,28444],{"class":580},[34,234933,153676],{"class":580},[34,234935,624],{"class":181},[34,234937,234938,234940,234942],{"class":36,"line":71},[34,234939,28461],{"class":181},[34,234941,150440],{"class":580},[34,234943,234944],{"class":580}," UNIQUE\n",[34,234946,234947],{"class":36,"line":77},[34,234948,1586],{"class":181},[34,234950,234951],{"class":36,"line":82},[34,234952,62],{"emptyLinePlaceholder":61},[34,234954,234955],{"class":36,"line":88},[34,234956,28482],{"class":40},[34,234958,234959,234961,234963,234965,234967,234969,234971,234973,234975,234977],{"class":36,"line":242},[34,234960,28487],{"class":580},[34,234962,151413],{"class":181},[34,234964,178],{"class":580},[34,234966,151418],{"class":181},[34,234968,28498],{"class":580},[34,234970,3204],{"class":181},[34,234972,28504],{"class":54},[34,234974,1798],{"class":181},[34,234976,28513],{"class":54},[34,234978,1586],{"class":181},[34,234980,234981],{"class":36,"line":250},[34,234982,62],{"emptyLinePlaceholder":61},[34,234984,234985],{"class":36,"line":263},[34,234986,234987],{"class":40},"-- Query data\n",[34,234989,234990,234992,234994,234996],{"class":36,"line":275},[34,234991,28529],{"class":580},[34,234993,18083],{"class":580},[34,234995,28534],{"class":580},[34,234997,4114],{"class":181},[11,234999,235001],{"id":235000},"pragma-statements","Pragma Statements",[25,235003,235005],{"className":28335,"code":235004,"language":28337,"meta":30,"style":30},"-- Display database schema\nPRAGMA table_info(users);\n\n-- Check database integrity\nPRAGMA integrity_check;\n",[20,235006,235007,235012,235017,235021,235026],{"__ignoreMap":30},[34,235008,235009],{"class":36,"line":37},[34,235010,235011],{"class":40},"-- Display database schema\n",[34,235013,235014],{"class":36,"line":44},[34,235015,235016],{"class":181},"PRAGMA table_info(users);\n",[34,235018,235019],{"class":36,"line":58},[34,235020,62],{"emptyLinePlaceholder":61},[34,235022,235023],{"class":36,"line":65},[34,235024,235025],{"class":40},"-- Check database integrity\n",[34,235027,235028],{"class":36,"line":71},[34,235029,235030],{"class":181},"PRAGMA integrity_check;\n",[11,235032,235034],{"id":235033},"common-functions","Common Functions",[25,235036,235038],{"className":28335,"code":235037,"language":28337,"meta":30,"style":30},"-- Using built-in aggregate functions\nSELECT COUNT(*) AS total_users FROM users;\n\n-- String manipulation\nSELECT UPPER(name) AS uppercase_name FROM users;\n\n-- Date and time functions\nSELECT DATE('now') AS today;\n",[20,235039,235040,235045,235066,235070,235075,235097,235101,235106],{"__ignoreMap":30},[34,235041,235042],{"class":36,"line":37},[34,235043,235044],{"class":40},"-- Using built-in aggregate functions\n",[34,235046,235047,235049,235051,235053,235055,235057,235059,235062,235064],{"class":36,"line":44},[34,235048,28529],{"class":580},[34,235050,153333],{"class":50},[34,235052,1607],{"class":181},[34,235054,4289],{"class":580},[34,235056,4817],{"class":181},[34,235058,185085],{"class":580},[34,235060,235061],{"class":181}," total_users ",[34,235063,29179],{"class":580},[34,235065,4114],{"class":181},[34,235067,235068],{"class":36,"line":58},[34,235069,62],{"emptyLinePlaceholder":61},[34,235071,235072],{"class":36,"line":65},[34,235073,235074],{"class":40},"-- String manipulation\n",[34,235076,235077,235079,235082,235084,235086,235088,235090,235093,235095],{"class":36,"line":71},[34,235078,28529],{"class":580},[34,235080,235081],{"class":50}," UPPER",[34,235083,1607],{"class":181},[34,235085,178],{"class":580},[34,235087,4817],{"class":181},[34,235089,185085],{"class":580},[34,235091,235092],{"class":181}," uppercase_name ",[34,235094,29179],{"class":580},[34,235096,4114],{"class":181},[34,235098,235099],{"class":36,"line":77},[34,235100,62],{"emptyLinePlaceholder":61},[34,235102,235103],{"class":36,"line":82},[34,235104,235105],{"class":40},"-- Date and time functions\n",[34,235107,235108,235110,235113,235115,235118,235120,235122],{"class":36,"line":88},[34,235109,28529],{"class":580},[34,235111,235112],{"class":580}," DATE",[34,235114,1607],{"class":181},[34,235116,235117],{"class":54},"'now'",[34,235119,4817],{"class":181},[34,235121,185085],{"class":580},[34,235123,235124],{"class":181}," today;\n",[11,235126,235128],{"id":235127},"backup-and-restore","Backup and Restore",[25,235130,235132],{"className":27,"code":235131,"language":29,"meta":30,"style":30},"# Backup the database\nsqlite3 mydatabase.db .dump > backup.sql\n\n# Restore from backup\nsqlite3 mydatabase.db \u003C backup.sql\n",[20,235133,235134,235139,235153,235157,235162],{"__ignoreMap":30},[34,235135,235136],{"class":36,"line":37},[34,235137,235138],{"class":40},"# Backup the database\n",[34,235140,235141,235143,235146,235149,235151],{"class":36,"line":44},[34,235142,234872],{"class":47},[34,235144,235145],{"class":54}," mydatabase.db",[34,235147,235148],{"class":54}," .dump",[34,235150,9009],{"class":580},[34,235152,149800],{"class":54},[34,235154,235155],{"class":36,"line":58},[34,235156,62],{"emptyLinePlaceholder":61},[34,235158,235159],{"class":36,"line":65},[34,235160,235161],{"class":40},"# Restore from backup\n",[34,235163,235164,235166,235168,235170],{"class":36,"line":71},[34,235165,234872],{"class":47},[34,235167,235145],{"class":54},[34,235169,5470],{"class":580},[34,235171,149800],{"class":54},[11,235173,235175],{"id":235174},"c-api-basics","C API Basics",[25,235177,235179],{"className":17759,"code":235178,"language":4377,"meta":30,"style":30},"#include \u003Csqlite3.h>\n\n// Open a database connection\nsqlite3 *db;\nint rc = sqlite3_open(\"test.db\", &db);\n\nif (rc) {\n    fprintf(stderr, \"Can't open database: %s\\n\", sqlite3_errmsg(db));\n} else {\n    fprintf(stdout, \"Opened database successfully\\n\");\n}\n\n// Close the database connection\nsqlite3_close(db);\n",[20,235180,235181,235188,235192,235197,235207,235232,235236,235243,235264,235272,235288,235292,235296,235301],{"__ignoreMap":30},[34,235182,235183,235185],{"class":36,"line":37},[34,235184,19569],{"class":580},[34,235186,235187],{"class":54}," \u003Csqlite3.h>\n",[34,235189,235190],{"class":36,"line":44},[34,235191,62],{"emptyLinePlaceholder":61},[34,235193,235194],{"class":36,"line":58},[34,235195,235196],{"class":40},"// Open a database connection\n",[34,235198,235199,235202,235204],{"class":36,"line":65},[34,235200,235201],{"class":181},"sqlite3 ",[34,235203,4289],{"class":580},[34,235205,235206],{"class":181},"db;\n",[34,235208,235209,235211,235214,235216,235219,235221,235224,235226,235228,235230],{"class":36,"line":71},[34,235210,17772],{"class":580},[34,235212,235213],{"class":181}," rc ",[34,235215,1301],{"class":580},[34,235217,235218],{"class":47}," sqlite3_open",[34,235220,1607],{"class":181},[34,235222,235223],{"class":54},"\"test.db\"",[34,235225,1798],{"class":181},[34,235227,19502],{"class":580},[34,235229,148685],{"class":675},[34,235231,1586],{"class":181},[34,235233,235234],{"class":36,"line":77},[34,235235,62],{"emptyLinePlaceholder":61},[34,235237,235238,235240],{"class":36,"line":82},[34,235239,10383],{"class":580},[34,235241,235242],{"class":181}," (rc) {\n",[34,235244,235245,235247,235249,235252,235254,235256,235258,235261],{"class":36,"line":88},[34,235246,18178],{"class":47},[34,235248,18181],{"class":181},[34,235250,235251],{"class":54},"\"Can't open database: ",[34,235253,18187],{"class":50},[34,235255,10389],{"class":54},[34,235257,1798],{"class":181},[34,235259,235260],{"class":47},"sqlite3_errmsg",[34,235262,235263],{"class":181},"(db));\n",[34,235265,235266,235268,235270],{"class":36,"line":242},[34,235267,2276],{"class":181},[34,235269,18871],{"class":580},[34,235271,661],{"class":181},[34,235273,235274,235276,235279,235282,235284,235286],{"class":36,"line":250},[34,235275,18178],{"class":47},[34,235277,235278],{"class":181},"(stdout, ",[34,235280,235281],{"class":54},"\"Opened database successfully",[34,235283,18860],{"class":50},[34,235285,10389],{"class":54},[34,235287,1586],{"class":181},[34,235289,235290],{"class":36,"line":263},[34,235291,693],{"class":181},[34,235293,235294],{"class":36,"line":275},[34,235295,62],{"emptyLinePlaceholder":61},[34,235297,235298],{"class":36,"line":700},[34,235299,235300],{"class":40},"// Close the database connection\n",[34,235302,235303,235306],{"class":36,"line":706},[34,235304,235305],{"class":47},"sqlite3_close",[34,235307,235308],{"class":181},"(db);\n",[11,235310,59725],{"id":235311},"utilities",[309,235313,235314,235322,235329],{},[312,235315,235316,235321],{},[145,235317,235320],{"href":235318,"rel":235319},"https://www.sqlite.org/cli.html",[149],".dump",": Export database schema and data.",[312,235323,235324,235328],{},[145,235325,235327],{"href":235318,"rel":235326},[149],".tables",": List all tables.",[312,235330,235331,235336],{},[145,235332,235335],{"href":235333,"rel":235334},"https://www.sqlite.org/lang_vacuum.html",[149],"VACUUM",": Optimize database file size.",[11,235338,159033],{"id":159032},[309,235340,235341,235347,235354],{},[312,235342,235343],{},[145,235344,28212],{"href":235345,"rel":235346},"https://www.sqlite.org/docs.html",[149],[312,235348,235349],{},[145,235350,235353],{"href":235351,"rel":235352},"https://sqlite.org/fiddle",[149],"SQLite Fiddle",[312,235355,235356],{},[145,235357,235360],{"href":235358,"rel":235359},"https://www.sqlite.org/quickstart.html",[149],"Quickstart Guide",[388,235362,235363],{},"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 .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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":30,"searchDepth":44,"depth":44,"links":235365},[235366,235367,235368,235369,235370,235371,235372,235373,235374,235375],{"id":13,"depth":44,"text":14},{"id":8497,"depth":44,"text":8498},{"id":6040,"depth":44,"text":6035},{"id":234893,"depth":44,"text":234894},{"id":235000,"depth":44,"text":235001},{"id":235033,"depth":44,"text":235034},{"id":235127,"depth":44,"text":235128},{"id":235174,"depth":44,"text":235175},{"id":235311,"depth":44,"text":59725},{"id":159032,"depth":44,"text":159033},"The lightweight and efficient database management system perfect for embedded and mobile applications.",{},"/sqlite/overview",{"title":234794,"description":235376},"sqlite/overview","sqlite",[235381,28650,28337,121242,235383],"mobile","W6Z0cx6vz2aEeuSW66kBX-xN8O1idm9Pyi6hXqggZeo",{"id":235386,"title":235387,"body":235388,"date":402,"description":235503,"extension":404,"meta":235504,"navigation":61,"order":44,"path":235505,"seo":235506,"stem":235507,"subject":9735,"tags":235508,"__hash__":235510},"topics/ssh/basic-connection.md","Basic Connection",{"type":8,"value":235389,"toc":235500},[235390,235393,235498],[11,235391,235387],{"id":235392},"basic-connection",[25,235394,235396],{"className":27,"code":235395,"language":29,"meta":30,"style":30},"# Connect to remote host\nssh user@hostname\nssh user@192.168.1.100\n\n# Connect on specific port\nssh -p 2222 user@hostname\n\n# Connect with specific identity file\nssh -i ~/.ssh/my_key user@hostname\n\n# Connect with verbose output (debugging)\nssh -v user@hostname\nssh -vv user@hostname   # More verbose\nssh -vvv user@hostname  # Maximum verbosity\n",[20,235397,235398,235402,235409,235416,235420,235425,235436,235440,235445,235456,235460,235465,235473,235486],{"__ignoreMap":30},[34,235399,235400],{"class":36,"line":37},[34,235401,83051],{"class":40},[34,235403,235404,235406],{"class":36,"line":44},[34,235405,9735],{"class":47},[34,235407,235408],{"class":54}," user@hostname\n",[34,235410,235411,235413],{"class":36,"line":58},[34,235412,9735],{"class":47},[34,235414,235415],{"class":54}," user@192.168.1.100\n",[34,235417,235418],{"class":36,"line":65},[34,235419,62],{"emptyLinePlaceholder":61},[34,235421,235422],{"class":36,"line":71},[34,235423,235424],{"class":40},"# Connect on specific port\n",[34,235426,235427,235429,235431,235434],{"class":36,"line":77},[34,235428,9735],{"class":47},[34,235430,5275],{"class":50},[34,235432,235433],{"class":50}," 2222",[34,235435,235408],{"class":54},[34,235437,235438],{"class":36,"line":82},[34,235439,62],{"emptyLinePlaceholder":61},[34,235441,235442],{"class":36,"line":88},[34,235443,235444],{"class":40},"# Connect with specific identity file\n",[34,235446,235447,235449,235451,235454],{"class":36,"line":242},[34,235448,9735],{"class":47},[34,235450,13065],{"class":50},[34,235452,235453],{"class":54}," ~/.ssh/my_key",[34,235455,235408],{"class":54},[34,235457,235458],{"class":36,"line":250},[34,235459,62],{"emptyLinePlaceholder":61},[34,235461,235462],{"class":36,"line":263},[34,235463,235464],{"class":40},"# Connect with verbose output (debugging)\n",[34,235466,235467,235469,235471],{"class":36,"line":275},[34,235468,9735],{"class":47},[34,235470,12530],{"class":50},[34,235472,235408],{"class":54},[34,235474,235475,235477,235480,235483],{"class":36,"line":700},[34,235476,9735],{"class":47},[34,235478,235479],{"class":50}," -vv",[34,235481,235482],{"class":54}," user@hostname",[34,235484,235485],{"class":40},"   # More verbose\n",[34,235487,235488,235490,235493,235495],{"class":36,"line":706},[34,235489,9735],{"class":47},[34,235491,235492],{"class":50}," -vvv",[34,235494,235482],{"class":54},[34,235496,235497],{"class":40},"  # Maximum verbosity\n",[388,235499,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":235501},[235502],{"id":235392,"depth":44,"text":235387},"Basic Connection in SSH.",{},"/ssh/basic-connection",{"title":235387,"description":235503},"ssh/basic-connection",[9735,5588,235509,557,43045],"security","VO2NZhW1mOAcSORkDwWfVrM_jQDazqiJBiKJd5nMT4Q",{"id":235512,"title":235513,"body":235514,"date":402,"description":235646,"extension":404,"meta":235647,"navigation":61,"order":71,"path":235648,"seo":235649,"stem":235650,"subject":9735,"tags":235651,"__hash__":235652},"topics/ssh/file-transfer-with-scp.md","File Transfer with SCP",{"type":8,"value":235515,"toc":235643},[235516,235519,235641],[11,235517,235513],{"id":235518},"file-transfer-with-scp",[25,235520,235522],{"className":27,"code":235521,"language":29,"meta":30,"style":30},"# Copy file to remote\nscp file.txt user@hostname:/path/to/destination/\n\n# Copy file from remote\nscp user@hostname:/path/to/file.txt ./local/\n\n# Copy directory recursively\nscp -r ./local_dir user@hostname:/remote/path/\n\n# Copy with specific port\nscp -P 2222 file.txt user@hostname:/path/\n\n# Copy with specific key\nscp -i ~/.ssh/my_key file.txt user@hostname:/path/\n\n# Preserve file attributes\nscp -p file.txt user@hostname:/path/\n",[20,235523,235524,235529,235539,235543,235548,235558,235562,235567,235579,235583,235588,235601,235605,235610,235622,235626,235631],{"__ignoreMap":30},[34,235525,235526],{"class":36,"line":37},[34,235527,235528],{"class":40},"# Copy file to remote\n",[34,235530,235531,235534,235536],{"class":36,"line":44},[34,235532,235533],{"class":47},"scp",[34,235535,8832],{"class":54},[34,235537,235538],{"class":54}," user@hostname:/path/to/destination/\n",[34,235540,235541],{"class":36,"line":58},[34,235542,62],{"emptyLinePlaceholder":61},[34,235544,235545],{"class":36,"line":65},[34,235546,235547],{"class":40},"# Copy file from remote\n",[34,235549,235550,235552,235555],{"class":36,"line":71},[34,235551,235533],{"class":47},[34,235553,235554],{"class":54}," user@hostname:/path/to/file.txt",[34,235556,235557],{"class":54}," ./local/\n",[34,235559,235560],{"class":36,"line":77},[34,235561,62],{"emptyLinePlaceholder":61},[34,235563,235564],{"class":36,"line":82},[34,235565,235566],{"class":40},"# Copy directory recursively\n",[34,235568,235569,235571,235573,235576],{"class":36,"line":88},[34,235570,235533],{"class":47},[34,235572,12112],{"class":50},[34,235574,235575],{"class":54}," ./local_dir",[34,235577,235578],{"class":54}," user@hostname:/remote/path/\n",[34,235580,235581],{"class":36,"line":242},[34,235582,62],{"emptyLinePlaceholder":61},[34,235584,235585],{"class":36,"line":250},[34,235586,235587],{"class":40},"# Copy with specific port\n",[34,235589,235590,235592,235594,235596,235598],{"class":36,"line":263},[34,235591,235533],{"class":47},[34,235593,110642],{"class":50},[34,235595,235433],{"class":50},[34,235597,8832],{"class":54},[34,235599,235600],{"class":54}," user@hostname:/path/\n",[34,235602,235603],{"class":36,"line":275},[34,235604,62],{"emptyLinePlaceholder":61},[34,235606,235607],{"class":36,"line":700},[34,235608,235609],{"class":40},"# Copy with specific key\n",[34,235611,235612,235614,235616,235618,235620],{"class":36,"line":706},[34,235613,235533],{"class":47},[34,235615,13065],{"class":50},[34,235617,235453],{"class":54},[34,235619,8832],{"class":54},[34,235621,235600],{"class":54},[34,235623,235624],{"class":36,"line":715},[34,235625,62],{"emptyLinePlaceholder":61},[34,235627,235628],{"class":36,"line":725},[34,235629,235630],{"class":40},"# Preserve file attributes\n",[34,235632,235633,235635,235637,235639],{"class":36,"line":734},[34,235634,235533],{"class":47},[34,235636,5275],{"class":50},[34,235638,8832],{"class":54},[34,235640,235600],{"class":54},[388,235642,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":235644},[235645],{"id":235518,"depth":44,"text":235513},"File Transfer with SCP in SSH.",{},"/ssh/file-transfer-with-scp",{"title":235513,"description":235646},"ssh/file-transfer-with-scp",[9735,5588,235509,557,43045],"ysYEWZjFE606KbfbUjwBvKXhKhY4dMOog_DTixZ00KI",{"id":235654,"title":235655,"body":235656,"date":402,"description":235766,"extension":404,"meta":235767,"navigation":61,"order":77,"path":235768,"seo":235769,"stem":235770,"subject":9735,"tags":235771,"__hash__":235772},"topics/ssh/file-transfer-with-sftp.md","File Transfer with SFTP",{"type":8,"value":235657,"toc":235763},[235658,235661,235761],[11,235659,235655],{"id":235660},"file-transfer-with-sftp",[25,235662,235664],{"className":27,"code":235663,"language":29,"meta":30,"style":30},"# Start SFTP session\nsftp user@hostname\n\n# SFTP with specific port\nsftp -P 2222 user@hostname\n\n# Common SFTP commands\n# ls              - List remote directory\n# lls             - List local directory\n# cd path         - Change remote directory\n# lcd path        - Change local directory\n# get file        - Download file\n# put file        - Upload file\n# mget *.txt      - Download multiple files\n# mput *.txt      - Upload multiple files\n# mkdir dir       - Create remote directory\n# rm file         - Delete remote file\n# exit            - Close session\n",[20,235665,235666,235671,235678,235682,235687,235697,235701,235706,235711,235716,235721,235726,235731,235736,235741,235746,235751,235756],{"__ignoreMap":30},[34,235667,235668],{"class":36,"line":37},[34,235669,235670],{"class":40},"# Start SFTP session\n",[34,235672,235673,235676],{"class":36,"line":44},[34,235674,235675],{"class":47},"sftp",[34,235677,235408],{"class":54},[34,235679,235680],{"class":36,"line":58},[34,235681,62],{"emptyLinePlaceholder":61},[34,235683,235684],{"class":36,"line":65},[34,235685,235686],{"class":40},"# SFTP with specific port\n",[34,235688,235689,235691,235693,235695],{"class":36,"line":71},[34,235690,235675],{"class":47},[34,235692,110642],{"class":50},[34,235694,235433],{"class":50},[34,235696,235408],{"class":54},[34,235698,235699],{"class":36,"line":77},[34,235700,62],{"emptyLinePlaceholder":61},[34,235702,235703],{"class":36,"line":82},[34,235704,235705],{"class":40},"# Common SFTP commands\n",[34,235707,235708],{"class":36,"line":88},[34,235709,235710],{"class":40},"# ls              - List remote directory\n",[34,235712,235713],{"class":36,"line":242},[34,235714,235715],{"class":40},"# lls             - List local directory\n",[34,235717,235718],{"class":36,"line":250},[34,235719,235720],{"class":40},"# cd path         - Change remote directory\n",[34,235722,235723],{"class":36,"line":263},[34,235724,235725],{"class":40},"# lcd path        - Change local directory\n",[34,235727,235728],{"class":36,"line":275},[34,235729,235730],{"class":40},"# get file        - Download file\n",[34,235732,235733],{"class":36,"line":700},[34,235734,235735],{"class":40},"# put file        - Upload file\n",[34,235737,235738],{"class":36,"line":706},[34,235739,235740],{"class":40},"# mget *.txt      - Download multiple files\n",[34,235742,235743],{"class":36,"line":715},[34,235744,235745],{"class":40},"# mput *.txt      - Upload multiple files\n",[34,235747,235748],{"class":36,"line":725},[34,235749,235750],{"class":40},"# mkdir dir       - Create remote directory\n",[34,235752,235753],{"class":36,"line":734},[34,235754,235755],{"class":40},"# rm file         - Delete remote file\n",[34,235757,235758],{"class":36,"line":742},[34,235759,235760],{"class":40},"# exit            - Close session\n",[388,235762,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":235764},[235765],{"id":235660,"depth":44,"text":235655},"File Transfer with SFTP in SSH.",{},"/ssh/file-transfer-with-sftp",{"title":235655,"description":235766},"ssh/file-transfer-with-sftp",[9735,5588,235509,557,43045],"fi2PLqWEbJyDOrqKy-d0_87JEaHFqbqiFEfhjjztiys",{"id":235774,"title":235775,"body":235776,"date":402,"description":235863,"extension":404,"meta":235864,"navigation":61,"order":88,"path":235865,"seo":235866,"stem":235867,"subject":9735,"tags":235868,"__hash__":235869},"topics/ssh/jump-hosts-bastion.md","Jump Hosts / Bastion",{"type":8,"value":235777,"toc":235860},[235778,235781,235858],[11,235779,235775],{"id":235780},"jump-hosts-bastion",[25,235782,235784],{"className":27,"code":235783,"language":29,"meta":30,"style":30},"# Connect through jump host\nssh -J jumpuser@jumphost user@destination\n\n# Multiple jump hosts\nssh -J user1@host1,user2@host2 user@destination\n\n# Using ProxyJump in config (preferred)\n# See SSH Config section below\n\n# Legacy ProxyCommand method\nssh -o ProxyCommand=\"ssh -W %h:%p jumpuser@jumphost\" user@destination\n",[20,235785,235786,235791,235804,235808,235813,235824,235828,235833,235838,235842,235847],{"__ignoreMap":30},[34,235787,235788],{"class":36,"line":37},[34,235789,235790],{"class":40},"# Connect through jump host\n",[34,235792,235793,235795,235798,235801],{"class":36,"line":44},[34,235794,9735],{"class":47},[34,235796,235797],{"class":50}," -J",[34,235799,235800],{"class":54}," jumpuser@jumphost",[34,235802,235803],{"class":54}," user@destination\n",[34,235805,235806],{"class":36,"line":58},[34,235807,62],{"emptyLinePlaceholder":61},[34,235809,235810],{"class":36,"line":65},[34,235811,235812],{"class":40},"# Multiple jump hosts\n",[34,235814,235815,235817,235819,235822],{"class":36,"line":71},[34,235816,9735],{"class":47},[34,235818,235797],{"class":50},[34,235820,235821],{"class":54}," user1@host1,user2@host2",[34,235823,235803],{"class":54},[34,235825,235826],{"class":36,"line":77},[34,235827,62],{"emptyLinePlaceholder":61},[34,235829,235830],{"class":36,"line":82},[34,235831,235832],{"class":40},"# Using ProxyJump in config (preferred)\n",[34,235834,235835],{"class":36,"line":88},[34,235836,235837],{"class":40},"# See SSH Config section below\n",[34,235839,235840],{"class":36,"line":242},[34,235841,62],{"emptyLinePlaceholder":61},[34,235843,235844],{"class":36,"line":250},[34,235845,235846],{"class":40},"# Legacy ProxyCommand method\n",[34,235848,235849,235851,235853,235856],{"class":36,"line":263},[34,235850,9735],{"class":47},[34,235852,8654],{"class":50},[34,235854,235855],{"class":54}," ProxyCommand=\"ssh -W %h:%p jumpuser@jumphost\"",[34,235857,235803],{"class":54},[388,235859,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":235861},[235862],{"id":235780,"depth":44,"text":235775},"Jump Hosts / Bastion in SSH.",{},"/ssh/jump-hosts-bastion",{"title":235775,"description":235863},"ssh/jump-hosts-bastion",[9735,5588,235509,557,43045],"-oxLd9ua_6kypBtiJ17b2wBs3EUWCVxWLoadA8ty9Vc",{"id":235871,"title":235872,"body":235873,"date":402,"description":236065,"extension":404,"meta":236066,"navigation":61,"order":58,"path":236067,"seo":236068,"stem":236069,"subject":9735,"tags":236070,"__hash__":236071},"topics/ssh/key-management.md","Key Management",{"type":8,"value":235874,"toc":236062},[235875,235878,236060],[11,235876,235872],{"id":235877},"key-management",[25,235879,235881],{"className":27,"code":235880,"language":29,"meta":30,"style":30},"# Generate SSH key pair (Ed25519 - recommended)\nssh-keygen -t ed25519 -C \"your_email@example.com\"\n\n# Generate RSA key (4096 bits)\nssh-keygen -t rsa -b 4096 -C \"your_email@example.com\"\n\n# Generate key with specific filename\nssh-keygen -t ed25519 -f ~/.ssh/my_custom_key\n\n# Copy public key to remote server\nssh-copy-id user@hostname\nssh-copy-id -i ~/.ssh/my_key.pub user@hostname\n\n# Copy key manually\ncat ~/.ssh/id_ed25519.pub | ssh user@hostname \"mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys\"\n\n# Change passphrase on existing key\nssh-keygen -p -f ~/.ssh/id_ed25519\n\n# View key fingerprint\nssh-keygen -lf ~/.ssh/id_ed25519.pub\n\n# Remove host from known_hosts\nssh-keygen -R hostname\n",[20,235882,235883,235888,235903,235907,235912,235930,235934,235939,235952,235956,235961,235968,235979,235983,235988,236003,236007,236012,236023,236027,236032,236042,236046,236051],{"__ignoreMap":30},[34,235884,235885],{"class":36,"line":37},[34,235886,235887],{"class":40},"# Generate SSH key pair (Ed25519 - recommended)\n",[34,235889,235890,235893,235895,235898,235900],{"class":36,"line":44},[34,235891,235892],{"class":47},"ssh-keygen",[34,235894,11256],{"class":50},[34,235896,235897],{"class":54}," ed25519",[34,235899,43864],{"class":50},[34,235901,235902],{"class":54}," \"your_email@example.com\"\n",[34,235904,235905],{"class":36,"line":58},[34,235906,62],{"emptyLinePlaceholder":61},[34,235908,235909],{"class":36,"line":65},[34,235910,235911],{"class":40},"# Generate RSA key (4096 bits)\n",[34,235913,235914,235916,235918,235921,235923,235926,235928],{"class":36,"line":71},[34,235915,235892],{"class":47},[34,235917,11256],{"class":50},[34,235919,235920],{"class":54}," rsa",[34,235922,8214],{"class":50},[34,235924,235925],{"class":50}," 4096",[34,235927,43864],{"class":50},[34,235929,235902],{"class":54},[34,235931,235932],{"class":36,"line":77},[34,235933,62],{"emptyLinePlaceholder":61},[34,235935,235936],{"class":36,"line":82},[34,235937,235938],{"class":40},"# Generate key with specific filename\n",[34,235940,235941,235943,235945,235947,235949],{"class":36,"line":88},[34,235942,235892],{"class":47},[34,235944,11256],{"class":50},[34,235946,235897],{"class":54},[34,235948,6001],{"class":50},[34,235950,235951],{"class":54}," ~/.ssh/my_custom_key\n",[34,235953,235954],{"class":36,"line":242},[34,235955,62],{"emptyLinePlaceholder":61},[34,235957,235958],{"class":36,"line":250},[34,235959,235960],{"class":40},"# Copy public key to remote server\n",[34,235962,235963,235966],{"class":36,"line":263},[34,235964,235965],{"class":47},"ssh-copy-id",[34,235967,235408],{"class":54},[34,235969,235970,235972,235974,235977],{"class":36,"line":275},[34,235971,235965],{"class":47},[34,235973,13065],{"class":50},[34,235975,235976],{"class":54}," ~/.ssh/my_key.pub",[34,235978,235408],{"class":54},[34,235980,235981],{"class":36,"line":700},[34,235982,62],{"emptyLinePlaceholder":61},[34,235984,235985],{"class":36,"line":706},[34,235986,235987],{"class":40},"# Copy key manually\n",[34,235989,235990,235992,235994,235996,235998,236000],{"class":36,"line":715},[34,235991,11449],{"class":47},[34,235993,94102],{"class":54},[34,235995,7197],{"class":580},[34,235997,92143],{"class":47},[34,235999,235482],{"class":54},[34,236001,236002],{"class":54}," \"mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys\"\n",[34,236004,236005],{"class":36,"line":725},[34,236006,62],{"emptyLinePlaceholder":61},[34,236008,236009],{"class":36,"line":734},[34,236010,236011],{"class":40},"# Change passphrase on existing key\n",[34,236013,236014,236016,236018,236020],{"class":36,"line":742},[34,236015,235892],{"class":47},[34,236017,5275],{"class":50},[34,236019,6001],{"class":50},[34,236021,236022],{"class":54}," ~/.ssh/id_ed25519\n",[34,236024,236025],{"class":36,"line":748},[34,236026,62],{"emptyLinePlaceholder":61},[34,236028,236029],{"class":36,"line":754},[34,236030,236031],{"class":40},"# View key fingerprint\n",[34,236033,236034,236036,236039],{"class":36,"line":759},[34,236035,235892],{"class":47},[34,236037,236038],{"class":50}," -lf",[34,236040,236041],{"class":54}," ~/.ssh/id_ed25519.pub\n",[34,236043,236044],{"class":36,"line":771},[34,236045,62],{"emptyLinePlaceholder":61},[34,236047,236048],{"class":36,"line":794},[34,236049,236050],{"class":40},"# Remove host from known_hosts\n",[34,236052,236053,236055,236057],{"class":36,"line":824},[34,236054,235892],{"class":47},[34,236056,97196],{"class":50},[34,236058,236059],{"class":54}," hostname\n",[388,236061,15873],{},{"title":30,"searchDepth":44,"depth":44,"links":236063},[236064],{"id":235877,"depth":44,"text":235872},"Key Management in SSH.",{},"/ssh/key-management",{"title":235872,"description":236065},"ssh/key-management",[9735,5588,235509,557,43045],"sEwxh4hFREaw0TUCBJVvAXsjeLtmB6polEf2bhbyZ5Y",{"id":236073,"title":44258,"body":236074,"date":402,"description":236255,"extension":404,"meta":236256,"navigation":61,"order":706,"path":236257,"seo":236258,"stem":236259,"subject":9735,"tags":236260,"__hash__":236261},"topics/ssh/options-reference.md",{"type":8,"value":236075,"toc":236252},[236076,236078],[11,236077,44258],{"id":44263},[14308,236079,236080,236088],{},[14311,236081,236082],{},[14314,236083,236084,236086],{},[14317,236085,44272],{},[14317,236087,44278],{},[14326,236089,236090,236100,236109,236119,236128,236138,236148,236157,236166,236176,236186,236196,236205,236215,236224,236233,236243],{},[14314,236091,236092,236097],{},[14331,236093,236094],{},[20,236095,236096],{},"-p",[14331,236098,236099],{},"Specify port number",[14314,236101,236102,236106],{},[14331,236103,236104],{},[20,236105,44375],{},[14331,236107,236108],{},"Identity file (private key)",[14314,236110,236111,236116],{},[14331,236112,236113],{},[20,236114,236115],{},"-l",[14331,236117,236118],{},"Login name",[14314,236120,236121,236125],{},[14331,236122,236123],{},[20,236124,44434],{},[14331,236126,236127],{},"Verbose mode (use -vv or -vvv for more)",[14314,236129,236130,236135],{},[14331,236131,236132],{},[20,236133,236134],{},"-q",[14331,236136,236137],{},"Quiet mode",[14314,236139,236140,236145],{},[14331,236141,236142],{},[20,236143,236144],{},"-N",[14331,236146,236147],{},"No remote command (for tunnels)",[14314,236149,236150,236154],{},[14331,236151,236152],{},[20,236153,10742],{},[14331,236155,236156],{},"Go to background",[14314,236158,236159,236163],{},[14331,236160,236161],{},[20,236162,44449],{},[14331,236164,236165],{},"Local port forwarding",[14314,236167,236168,236173],{},[14331,236169,236170],{},[20,236171,236172],{},"-R",[14331,236174,236175],{},"Remote port forwarding",[14314,236177,236178,236183],{},[14331,236179,236180],{},[20,236181,236182],{},"-D",[14331,236184,236185],{},"Dynamic port forwarding (SOCKS)",[14314,236187,236188,236193],{},[14331,236189,236190],{},[20,236191,236192],{},"-J",[14331,236194,236195],{},"Jump host",[14314,236197,236198,236202],{},[14331,236199,236200],{},[20,236201,44287],{},[14331,236203,236204],{},"Enable X11 forwarding",[14314,236206,236207,236212],{},[14331,236208,236209],{},[20,236210,236211],{},"-Y",[14331,236213,236214],{},"Trusted X11 forwarding",[14314,236216,236217,236221],{},[14331,236218,236219],{},[20,236220,44581],{},[14331,236222,236223],{},"Enable compression",[14314,236225,236226,236230],{},[14331,236227,236228],{},[20,236229,44478],{},[14331,236231,236232],{},"Agent forwarding",[14314,236234,236235,236240],{},[14331,236236,236237],{},[20,236238,236239],{},"-t",[14331,236241,236242],{},"Force pseudo-terminal allocation",[14314,236244,236245,236249],{},[14331,236246,236247],{},[20,236248,44346],{},[14331,236250,236251],{},"Specify config option",{"title":30,"searchDepth":44,"depth":44,"links":236253},[236254],{"id":44263,"depth":44,"text":44258},"Options Reference in SSH.",{},"/ssh/options-reference",{"title":44258,"description":236255},"ssh/options-reference",[9735,5588,235509,557,43045],"Nri0mNJ2WWAdcVHp267HB67UShHjYivCGne2QPWB_eY",{"id":236263,"title":236264,"body":236265,"date":2633,"description":236336,"extension":404,"meta":236337,"navigation":61,"order":37,"path":236338,"seo":236339,"stem":236340,"subject":9735,"tags":236341,"__hash__":236342},"topics/ssh/overview.md","SSH",{"type":8,"value":236266,"toc":236334},[236267],[309,236268,236269,236273,236277,236283,236287,236291,236297,236301,236307,236313,236319,236325,236330],{},[312,236270,236271],{},[145,236272,235387],{"href":235505},[312,236274,236275],{},[145,236276,235872],{"href":236067},[312,236278,236279],{},[145,236280,236282],{"href":236281},"/ssh/ssh-agent","SSH Agent",[312,236284,236285],{},[145,236286,235513],{"href":235648},[312,236288,236289],{},[145,236290,235655],{"href":235768},[312,236292,236293],{},[145,236294,236296],{"href":236295},"/ssh/port-forwarding","Port Forwarding",[312,236298,236299],{},[145,236300,235775],{"href":235865},[312,236302,236303],{},[145,236304,236306],{"href":236305},"/ssh/remote-commands","Remote Commands",[312,236308,236309],{},[145,236310,236312],{"href":236311},"/ssh/ssh-config-file","SSH Config File",[312,236314,236315],{},[145,236316,236318],{"href":236317},"/ssh/tunneling-examples","Tunneling Examples",[312,236320,236321],{},[145,236322,236324],{"href":236323},"/ssh/security-best-practices","Security Best Practices",[312,236326,236327],{},[145,236328,114635],{"href":236329},"/ssh/troubleshooting",[312,236331,236332],{},[145,236333,44258],{"href":236257},{"title":30,"searchDepth":44,"depth":44,"links":236335},[],"Essential SSH commands for secure remote access and file transfers.",{},"/ssh/overview",{"title":236264,"description":236336},"ssh/overview",[9735,5588,235509,557,43045],"EygFX3lJ3d57eYtL88thaazQR2PG7POTQfFp_QZ2QM0",{"id":236344,"title":236296,"body":236345,"date":402,"description":236491,"extension":404,"meta":236492,"navigation":61,"order":82,"path":236295,"seo":236493,"stem":236494,"subject":9735,"tags":236495,"__hash__":236496},"topics/ssh/port-forwarding.md",{"type":8,"value":236346,"toc":236488},[236347,236350,236486],[11,236348,236296],{"id":236349},"port-forwarding",[25,236351,236353],{"className":27,"code":236352,"language":29,"meta":30,"style":30},"# Local port forwarding (access remote service locally)\n# Forward local:8080 to remote:80\nssh -L 8080:localhost:80 user@hostname\n\n# Forward to a third host through SSH server\nssh -L 8080:internal.server:80 user@gateway\n\n# Remote port forwarding (expose local service remotely)\n# Forward remote:8080 to local:3000\nssh -R 8080:localhost:3000 user@hostname\n\n# Dynamic port forwarding (SOCKS proxy)\nssh -D 9090 user@hostname\n\n# Keep tunnel open without shell\nssh -N -L 8080:localhost:80 user@hostname\n\n# Run in background\nssh -f -N -L 8080:localhost:80 user@hostname\n",[20,236354,236355,236360,236365,236376,236380,236385,236397,236401,236406,236411,236422,236426,236431,236442,236446,236451,236464,236468,236472],{"__ignoreMap":30},[34,236356,236357],{"class":36,"line":37},[34,236358,236359],{"class":40},"# Local port forwarding (access remote service locally)\n",[34,236361,236362],{"class":36,"line":44},[34,236363,236364],{"class":40},"# Forward local:8080 to remote:80\n",[34,236366,236367,236369,236371,236374],{"class":36,"line":58},[34,236368,9735],{"class":47},[34,236370,43254],{"class":50},[34,236372,236373],{"class":54}," 8080:localhost:80",[34,236375,235408],{"class":54},[34,236377,236378],{"class":36,"line":65},[34,236379,62],{"emptyLinePlaceholder":61},[34,236381,236382],{"class":36,"line":71},[34,236383,236384],{"class":40},"# Forward to a third host through SSH server\n",[34,236386,236387,236389,236391,236394],{"class":36,"line":77},[34,236388,9735],{"class":47},[34,236390,43254],{"class":50},[34,236392,236393],{"class":54}," 8080:internal.server:80",[34,236395,236396],{"class":54}," user@gateway\n",[34,236398,236399],{"class":36,"line":82},[34,236400,62],{"emptyLinePlaceholder":61},[34,236402,236403],{"class":36,"line":88},[34,236404,236405],{"class":40},"# Remote port forwarding (expose local service remotely)\n",[34,236407,236408],{"class":36,"line":242},[34,236409,236410],{"class":40},"# Forward remote:8080 to local:3000\n",[34,236412,236413,236415,236417,236420],{"class":36,"line":250},[34,236414,9735],{"class":47},[34,236416,97196],{"class":50},[34,236418,236419],{"class":54}," 8080:localhost:3000",[34,236421,235408],{"class":54},[34,236423,236424],{"class":36,"line":263},[34,236425,62],{"emptyLinePlaceholder":61},[34,236427,236428],{"class":36,"line":275},[34,236429,236430],{"class":40},"# Dynamic port forwarding (SOCKS proxy)\n",[34,236432,236433,236435,236437,236440],{"class":36,"line":700},[34,236434,9735],{"class":47},[34,236436,13768],{"class":50},[34,236438,236439],{"class":50}," 9090",[34,236441,235408],{"class":54},[34,236443,236444],{"class":36,"line":706},[34,236445,62],{"emptyLinePlaceholder":61},[34,236447,236448],{"class":36,"line":715},[34,236449,236450],{"class":40},"# Keep tunnel open without shell\n",[34,236452,236453,236455,236458,236460,236462],{"class":36,"line":725},[34,236454,9735],{"class":47},[34,236456,236457],{"class":50}," -N",[34,236459,43254],{"class":50},[34,236461,236373],{"class":54},[34,236463,235408],{"class":54},[34,236465,236466],{"class":36,"line":734},[34,236467,62],{"emptyLinePlaceholder":61},[34,236469,236470],{"class":36,"line":742},[34,236471,12240],{"class":40},[34,236473,236474,236476,236478,236480,236482,236484],{"class":36,"line":748},[34,236475,9735],{"class":47},[34,236477,6001],{"class":50},[34,236479,236457],{"class":50},[34,236481,43254],{"class":50},[34,236483,236373],{"class":54},[34,236485,235408],{"class":54},[388,236487,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":236489},[236490],{"id":236349,"depth":44,"text":236296},"Port Forwarding in SSH.",{},{"title":236296,"description":236491},"ssh/port-forwarding",[9735,5588,235509,557,43045],"5DqLQIOSjMNGGsd7zKmx9_4fcdx2el9ENQ1rQEE9Ktw",{"id":236498,"title":236306,"body":236499,"date":402,"description":236605,"extension":404,"meta":236606,"navigation":61,"order":242,"path":236305,"seo":236607,"stem":236608,"subject":9735,"tags":236609,"__hash__":236610},"topics/ssh/remote-commands.md",{"type":8,"value":236500,"toc":236602},[236501,236504,236600],[11,236502,236306],{"id":236503},"remote-commands",[25,236505,236507],{"className":27,"code":236506,"language":29,"meta":30,"style":30},"# Execute single command\nssh user@hostname \"ls -la\"\n\n# Execute multiple commands\nssh user@hostname \"cd /var/log && tail -100 syslog\"\n\n# Run command with sudo\nssh user@hostname \"sudo systemctl restart nginx\"\n\n# Run local script on remote\nssh user@hostname 'bash -s' \u003C local_script.sh\n\n# Run command in background\nssh user@hostname \"nohup ./long_running.sh &\"\n",[20,236508,236509,236514,236523,236527,236532,236541,236545,236550,236559,236563,236568,236582,236586,236591],{"__ignoreMap":30},[34,236510,236511],{"class":36,"line":37},[34,236512,236513],{"class":40},"# Execute single command\n",[34,236515,236516,236518,236520],{"class":36,"line":44},[34,236517,9735],{"class":47},[34,236519,235482],{"class":54},[34,236521,236522],{"class":54}," \"ls -la\"\n",[34,236524,236525],{"class":36,"line":58},[34,236526,62],{"emptyLinePlaceholder":61},[34,236528,236529],{"class":36,"line":65},[34,236530,236531],{"class":40},"# Execute multiple commands\n",[34,236533,236534,236536,236538],{"class":36,"line":71},[34,236535,9735],{"class":47},[34,236537,235482],{"class":54},[34,236539,236540],{"class":54}," \"cd /var/log && tail -100 syslog\"\n",[34,236542,236543],{"class":36,"line":77},[34,236544,62],{"emptyLinePlaceholder":61},[34,236546,236547],{"class":36,"line":82},[34,236548,236549],{"class":40},"# Run command with sudo\n",[34,236551,236552,236554,236556],{"class":36,"line":88},[34,236553,9735],{"class":47},[34,236555,235482],{"class":54},[34,236557,236558],{"class":54}," \"sudo systemctl restart nginx\"\n",[34,236560,236561],{"class":36,"line":242},[34,236562,62],{"emptyLinePlaceholder":61},[34,236564,236565],{"class":36,"line":250},[34,236566,236567],{"class":40},"# Run local script on remote\n",[34,236569,236570,236572,236574,236577,236579],{"class":36,"line":263},[34,236571,9735],{"class":47},[34,236573,235482],{"class":54},[34,236575,236576],{"class":54}," 'bash -s'",[34,236578,5470],{"class":580},[34,236580,236581],{"class":54}," local_script.sh\n",[34,236583,236584],{"class":36,"line":275},[34,236585,62],{"emptyLinePlaceholder":61},[34,236587,236588],{"class":36,"line":700},[34,236589,236590],{"class":40},"# Run command in background\n",[34,236592,236593,236595,236597],{"class":36,"line":706},[34,236594,9735],{"class":47},[34,236596,235482],{"class":54},[34,236598,236599],{"class":54}," \"nohup ./long_running.sh &\"\n",[388,236601,11756],{},{"title":30,"searchDepth":44,"depth":44,"links":236603},[236604],{"id":236503,"depth":44,"text":236306},"Remote Commands in SSH.",{},{"title":236306,"description":236605},"ssh/remote-commands",[9735,5588,235509,557,43045],"H_dWfjN5_T4zdwQthZQcvxA8BVRKk3-RDc-aMd9u4lA",{"id":236612,"title":236324,"body":236613,"date":402,"description":236751,"extension":404,"meta":236752,"navigation":61,"order":275,"path":236323,"seo":236753,"stem":236754,"subject":9735,"tags":236755,"__hash__":236756},"topics/ssh/security-best-practices.md",{"type":8,"value":236614,"toc":236748},[236615,236618,236746],[11,236616,236324],{"id":236617},"security-best-practices",[25,236619,236621],{"className":27,"code":236620,"language":29,"meta":30,"style":30},"# Disable password authentication (in /etc/ssh/sshd_config)\n# PasswordAuthentication no\n\n# Disable root login\n# PermitRootLogin no\n\n# Use specific allowed users\n# AllowUsers admin deploy\n\n# Change default port\n# Port 2222\n\n# Set proper permissions\nchmod 700 ~/.ssh\nchmod 600 ~/.ssh/id_ed25519\nchmod 644 ~/.ssh/id_ed25519.pub\nchmod 600 ~/.ssh/config\nchmod 600 ~/.ssh/authorized_keys\n\n# Test SSH config syntax\nsshd -t\n",[20,236622,236623,236628,236633,236637,236642,236647,236651,236656,236661,236665,236670,236675,236679,236684,236694,236703,236712,236721,236730,236734,236739],{"__ignoreMap":30},[34,236624,236625],{"class":36,"line":37},[34,236626,236627],{"class":40},"# Disable password authentication (in /etc/ssh/sshd_config)\n",[34,236629,236630],{"class":36,"line":44},[34,236631,236632],{"class":40},"# PasswordAuthentication no\n",[34,236634,236635],{"class":36,"line":58},[34,236636,62],{"emptyLinePlaceholder":61},[34,236638,236639],{"class":36,"line":65},[34,236640,236641],{"class":40},"# Disable root login\n",[34,236643,236644],{"class":36,"line":71},[34,236645,236646],{"class":40},"# PermitRootLogin no\n",[34,236648,236649],{"class":36,"line":77},[34,236650,62],{"emptyLinePlaceholder":61},[34,236652,236653],{"class":36,"line":82},[34,236654,236655],{"class":40},"# Use specific allowed users\n",[34,236657,236658],{"class":36,"line":88},[34,236659,236660],{"class":40},"# AllowUsers admin deploy\n",[34,236662,236663],{"class":36,"line":242},[34,236664,62],{"emptyLinePlaceholder":61},[34,236666,236667],{"class":36,"line":250},[34,236668,236669],{"class":40},"# Change default port\n",[34,236671,236672],{"class":36,"line":263},[34,236673,236674],{"class":40},"# Port 2222\n",[34,236676,236677],{"class":36,"line":275},[34,236678,62],{"emptyLinePlaceholder":61},[34,236680,236681],{"class":36,"line":700},[34,236682,236683],{"class":40},"# Set proper permissions\n",[34,236685,236686,236688,236691],{"class":36,"line":706},[34,236687,13281],{"class":47},[34,236689,236690],{"class":50}," 700",[34,236692,236693],{"class":54}," ~/.ssh\n",[34,236695,236696,236698,236701],{"class":36,"line":715},[34,236697,13281],{"class":47},[34,236699,236700],{"class":50}," 600",[34,236702,236022],{"class":54},[34,236704,236705,236707,236710],{"class":36,"line":725},[34,236706,13281],{"class":47},[34,236708,236709],{"class":50}," 644",[34,236711,236041],{"class":54},[34,236713,236714,236716,236718],{"class":36,"line":734},[34,236715,13281],{"class":47},[34,236717,236700],{"class":50},[34,236719,236720],{"class":54}," ~/.ssh/config\n",[34,236722,236723,236725,236727],{"class":36,"line":742},[34,236724,13281],{"class":47},[34,236726,236700],{"class":50},[34,236728,236729],{"class":54}," ~/.ssh/authorized_keys\n",[34,236731,236732],{"class":36,"line":748},[34,236733,62],{"emptyLinePlaceholder":61},[34,236735,236736],{"class":36,"line":754},[34,236737,236738],{"class":40},"# Test SSH config syntax\n",[34,236740,236741,236744],{"class":36,"line":759},[34,236742,236743],{"class":47},"sshd",[34,236745,158531],{"class":50},[388,236747,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":236749},[236750],{"id":236617,"depth":44,"text":236324},"Security Best Practices in SSH.",{},{"title":236324,"description":236751},"ssh/security-best-practices",[9735,5588,235509,557,43045],"UBD2MmeVrpyVk-lU63GnHWlNlFMjpXKslw2xMWENXJU",{"id":236758,"title":236282,"body":236759,"date":402,"description":236874,"extension":404,"meta":236875,"navigation":61,"order":65,"path":236281,"seo":236876,"stem":236877,"subject":9735,"tags":236878,"__hash__":236879},"topics/ssh/ssh-agent.md",{"type":8,"value":236760,"toc":236871},[236761,236764,236868],[11,236762,236282],{"id":236763},"ssh-agent",[25,236765,236767],{"className":27,"code":236766,"language":29,"meta":30,"style":30},"# Start SSH agent\neval \"$(ssh-agent -s)\"\n\n# Add key to agent\nssh-add ~/.ssh/id_ed25519\n\n# Add key with specific lifetime (seconds)\nssh-add -t 3600 ~/.ssh/id_ed25519\n\n# List keys in agent\nssh-add -l\n\n# Remove all keys from agent\nssh-add -D\n\n# Remove specific key\nssh-add -d ~/.ssh/id_ed25519\n",[20,236768,236769,236774,236786,236790,236795,236802,236806,236811,236821,236825,236830,236836,236840,236845,236851,236855,236860],{"__ignoreMap":30},[34,236770,236771],{"class":36,"line":37},[34,236772,236773],{"class":40},"# Start SSH agent\n",[34,236775,236776,236778,236780,236782,236784],{"class":36,"line":44},[34,236777,53725],{"class":50},[34,236779,29582],{"class":54},[34,236781,236763],{"class":47},[34,236783,5487],{"class":50},[34,236785,82115],{"class":54},[34,236787,236788],{"class":36,"line":58},[34,236789,62],{"emptyLinePlaceholder":61},[34,236791,236792],{"class":36,"line":65},[34,236793,236794],{"class":40},"# Add key to agent\n",[34,236796,236797,236800],{"class":36,"line":71},[34,236798,236799],{"class":47},"ssh-add",[34,236801,236022],{"class":54},[34,236803,236804],{"class":36,"line":77},[34,236805,62],{"emptyLinePlaceholder":61},[34,236807,236808],{"class":36,"line":82},[34,236809,236810],{"class":40},"# Add key with specific lifetime (seconds)\n",[34,236812,236813,236815,236817,236819],{"class":36,"line":88},[34,236814,236799],{"class":47},[34,236816,11256],{"class":50},[34,236818,177958],{"class":50},[34,236820,236022],{"class":54},[34,236822,236823],{"class":36,"line":242},[34,236824,62],{"emptyLinePlaceholder":61},[34,236826,236827],{"class":36,"line":250},[34,236828,236829],{"class":40},"# List keys in agent\n",[34,236831,236832,236834],{"class":36,"line":263},[34,236833,236799],{"class":47},[34,236835,93],{"class":50},[34,236837,236838],{"class":36,"line":275},[34,236839,62],{"emptyLinePlaceholder":61},[34,236841,236842],{"class":36,"line":700},[34,236843,236844],{"class":40},"# Remove all keys from agent\n",[34,236846,236847,236849],{"class":36,"line":706},[34,236848,236799],{"class":47},[34,236850,120160],{"class":50},[34,236852,236853],{"class":36,"line":715},[34,236854,62],{"emptyLinePlaceholder":61},[34,236856,236857],{"class":36,"line":725},[34,236858,236859],{"class":40},"# Remove specific key\n",[34,236861,236862,236864,236866],{"class":36,"line":734},[34,236863,236799],{"class":47},[34,236865,9750],{"class":50},[34,236867,236022],{"class":54},[388,236869,236870],{},"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}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":236872},[236873],{"id":236763,"depth":44,"text":236282},"SSH Agent in SSH.",{},{"title":236282,"description":236874},"ssh/ssh-agent",[9735,5588,235509,557,43045],"au-XLiCQod1FL7QVnrB655ecGUo9AG0Cnlotv2wZeX0",{"id":236881,"title":236312,"body":236882,"date":402,"description":237119,"extension":404,"meta":237120,"navigation":61,"order":250,"path":236311,"seo":237121,"stem":237122,"subject":9735,"tags":237123,"__hash__":237124},"topics/ssh/ssh-config-file.md",{"type":8,"value":236883,"toc":237116},[236884,236887,237114],[11,236885,236312],{"id":236886},"ssh-config-file",[25,236888,236890],{"className":27,"code":236889,"language":29,"meta":30,"style":30},"# Location: ~/.ssh/config\n\n# Basic host configuration\nHost myserver\n    HostName 192.168.1.100\n    User admin\n    Port 22\n    IdentityFile ~/.ssh/my_key\n\n# Jump host configuration\nHost internal\n    HostName 10.0.0.5\n    User developer\n    ProxyJump bastion\n\nHost bastion\n    HostName bastion.example.com\n    User jumpuser\n    IdentityFile ~/.ssh/bastion_key\n\n# Wildcard configuration\nHost *.example.com\n    User deploy\n    IdentityFile ~/.ssh/deploy_key\n\n# Keep connections alive\nHost *\n    ServerAliveInterval 60\n    ServerAliveCountMax 3\n\n# Multiplexing (reuse connections)\nHost *\n    ControlMaster auto\n    ControlPath ~/.ssh/sockets/%r@%h-%p\n    ControlPersist 600\n",[20,236891,236892,236897,236901,236906,236914,236922,236929,236937,236945,236949,236954,236961,236968,236975,236983,236987,236993,237000,237007,237014,237018,237023,237032,237039,237046,237050,237055,237061,237068,237075,237079,237084,237090,237098,237106],{"__ignoreMap":30},[34,236893,236894],{"class":36,"line":37},[34,236895,236896],{"class":40},"# Location: ~/.ssh/config\n",[34,236898,236899],{"class":36,"line":44},[34,236900,62],{"emptyLinePlaceholder":61},[34,236902,236903],{"class":36,"line":58},[34,236904,236905],{"class":40},"# Basic host configuration\n",[34,236907,236908,236911],{"class":36,"line":65},[34,236909,236910],{"class":47},"Host",[34,236912,236913],{"class":54}," myserver\n",[34,236915,236916,236919],{"class":36,"line":71},[34,236917,236918],{"class":47},"    HostName",[34,236920,236921],{"class":50}," 192.168.1.100\n",[34,236923,236924,236927],{"class":36,"line":77},[34,236925,236926],{"class":47},"    User",[34,236928,74194],{"class":54},[34,236930,236931,236934],{"class":36,"line":82},[34,236932,236933],{"class":47},"    Port",[34,236935,236936],{"class":50}," 22\n",[34,236938,236939,236942],{"class":36,"line":88},[34,236940,236941],{"class":47},"    IdentityFile",[34,236943,236944],{"class":54}," ~/.ssh/my_key\n",[34,236946,236947],{"class":36,"line":242},[34,236948,62],{"emptyLinePlaceholder":61},[34,236950,236951],{"class":36,"line":250},[34,236952,236953],{"class":40},"# Jump host configuration\n",[34,236955,236956,236958],{"class":36,"line":263},[34,236957,236910],{"class":47},[34,236959,236960],{"class":54}," internal\n",[34,236962,236963,236965],{"class":36,"line":275},[34,236964,236918],{"class":47},[34,236966,236967],{"class":50}," 10.0.0.5\n",[34,236969,236970,236972],{"class":36,"line":700},[34,236971,236926],{"class":47},[34,236973,236974],{"class":54}," developer\n",[34,236976,236977,236980],{"class":36,"line":706},[34,236978,236979],{"class":47},"    ProxyJump",[34,236981,236982],{"class":54}," bastion\n",[34,236984,236985],{"class":36,"line":715},[34,236986,62],{"emptyLinePlaceholder":61},[34,236988,236989,236991],{"class":36,"line":725},[34,236990,236910],{"class":47},[34,236992,236982],{"class":54},[34,236994,236995,236997],{"class":36,"line":734},[34,236996,236918],{"class":47},[34,236998,236999],{"class":54}," bastion.example.com\n",[34,237001,237002,237004],{"class":36,"line":742},[34,237003,236926],{"class":47},[34,237005,237006],{"class":54}," jumpuser\n",[34,237008,237009,237011],{"class":36,"line":748},[34,237010,236941],{"class":47},[34,237012,237013],{"class":54}," ~/.ssh/bastion_key\n",[34,237015,237016],{"class":36,"line":754},[34,237017,62],{"emptyLinePlaceholder":61},[34,237019,237020],{"class":36,"line":759},[34,237021,237022],{"class":40},"# Wildcard configuration\n",[34,237024,237025,237027,237029],{"class":36,"line":771},[34,237026,236910],{"class":47},[34,237028,18083],{"class":50},[34,237030,237031],{"class":54},".example.com\n",[34,237033,237034,237036],{"class":36,"line":794},[34,237035,236926],{"class":47},[34,237037,237038],{"class":54}," deploy\n",[34,237040,237041,237043],{"class":36,"line":824},[34,237042,236941],{"class":47},[34,237044,237045],{"class":54}," ~/.ssh/deploy_key\n",[34,237047,237048],{"class":36,"line":830},[34,237049,62],{"emptyLinePlaceholder":61},[34,237051,237052],{"class":36,"line":839},[34,237053,237054],{"class":40},"# Keep connections alive\n",[34,237056,237057,237059],{"class":36,"line":854},[34,237058,236910],{"class":47},[34,237060,109788],{"class":50},[34,237062,237063,237066],{"class":36,"line":860},[34,237064,237065],{"class":47},"    ServerAliveInterval",[34,237067,203434],{"class":50},[34,237069,237070,237073],{"class":36,"line":865},[34,237071,237072],{"class":47},"    ServerAliveCountMax",[34,237074,204469],{"class":50},[34,237076,237077],{"class":36,"line":870},[34,237078,62],{"emptyLinePlaceholder":61},[34,237080,237081],{"class":36,"line":876},[34,237082,237083],{"class":40},"# Multiplexing (reuse connections)\n",[34,237085,237086,237088],{"class":36,"line":885},[34,237087,236910],{"class":47},[34,237089,109788],{"class":50},[34,237091,237092,237095],{"class":36,"line":895},[34,237093,237094],{"class":47},"    ControlMaster",[34,237096,237097],{"class":54}," auto\n",[34,237099,237100,237103],{"class":36,"line":904},[34,237101,237102],{"class":47},"    ControlPath",[34,237104,237105],{"class":54}," ~/.ssh/sockets/%r@%h-%p\n",[34,237107,237108,237111],{"class":36,"line":915},[34,237109,237110],{"class":47},"    ControlPersist",[34,237112,237113],{"class":50}," 600\n",[388,237115,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":237117},[237118],{"id":236886,"depth":44,"text":236312},"SSH Config File in SSH.",{},{"title":236312,"description":237119},"ssh/ssh-config-file",[9735,5588,235509,557,43045],"BqyyTQk97KAKWfi8JHrmb5q2zT3blLjN1D3eEYu_tOY",{"id":237126,"title":114635,"body":237127,"date":402,"description":237293,"extension":404,"meta":237294,"navigation":61,"order":700,"path":236329,"seo":237295,"stem":237296,"subject":9735,"tags":237297,"__hash__":237298},"topics/ssh/troubleshooting.md",{"type":8,"value":237128,"toc":237290},[237129,237131,237288],[11,237130,114635],{"id":114969},[25,237132,237134],{"className":27,"code":237133,"language":29,"meta":30,"style":30},"# Debug connection issues\nssh -vvv user@hostname\n\n# Check SSH service status\nsystemctl status sshd\n\n# View SSH logs\nsudo tail -f /var/log/auth.log      # Debian/Ubuntu\nsudo tail -f /var/log/secure        # RHEL/CentOS\n\n# Test connection without logging in\nssh -o BatchMode=yes -o ConnectTimeout=5 user@hostname echo ok\n\n# Check open SSH connections\nss -tnp | grep ssh\nnetstat -tnp | grep ssh\n\n# Kill stuck SSH session\n# Press: ~.  (tilde, then period)\n",[20,237135,237136,237141,237149,237153,237158,237168,237172,237177,237192,237206,237210,237215,237238,237242,237247,237261,237274,237278,237283],{"__ignoreMap":30},[34,237137,237138],{"class":36,"line":37},[34,237139,237140],{"class":40},"# Debug connection issues\n",[34,237142,237143,237145,237147],{"class":36,"line":44},[34,237144,9735],{"class":47},[34,237146,235492],{"class":50},[34,237148,235408],{"class":54},[34,237150,237151],{"class":36,"line":58},[34,237152,62],{"emptyLinePlaceholder":61},[34,237154,237155],{"class":36,"line":65},[34,237156,237157],{"class":40},"# Check SSH service status\n",[34,237159,237160,237163,237165],{"class":36,"line":71},[34,237161,237162],{"class":47},"systemctl",[34,237164,94498],{"class":54},[34,237166,237167],{"class":54}," sshd\n",[34,237169,237170],{"class":36,"line":77},[34,237171,62],{"emptyLinePlaceholder":61},[34,237173,237174],{"class":36,"line":82},[34,237175,237176],{"class":40},"# View SSH logs\n",[34,237178,237179,237181,237184,237186,237189],{"class":36,"line":88},[34,237180,436],{"class":47},[34,237182,237183],{"class":54}," tail",[34,237185,6001],{"class":50},[34,237187,237188],{"class":54}," /var/log/auth.log",[34,237190,237191],{"class":40},"      # Debian/Ubuntu\n",[34,237193,237194,237196,237198,237200,237203],{"class":36,"line":242},[34,237195,436],{"class":47},[34,237197,237183],{"class":54},[34,237199,6001],{"class":50},[34,237201,237202],{"class":54}," /var/log/secure",[34,237204,237205],{"class":40},"        # RHEL/CentOS\n",[34,237207,237208],{"class":36,"line":250},[34,237209,62],{"emptyLinePlaceholder":61},[34,237211,237212],{"class":36,"line":263},[34,237213,237214],{"class":40},"# Test connection without logging in\n",[34,237216,237217,237219,237221,237224,237226,237229,237231,237233,237235],{"class":36,"line":275},[34,237218,9735],{"class":47},[34,237220,8654],{"class":50},[34,237222,237223],{"class":54}," BatchMode=yes",[34,237225,8654],{"class":50},[34,237227,237228],{"class":54}," ConnectTimeout=",[34,237230,2778],{"class":50},[34,237232,235482],{"class":54},[34,237234,43027],{"class":54},[34,237236,237237],{"class":54}," ok\n",[34,237239,237240],{"class":36,"line":700},[34,237241,62],{"emptyLinePlaceholder":61},[34,237243,237244],{"class":36,"line":706},[34,237245,237246],{"class":40},"# Check open SSH connections\n",[34,237248,237249,237252,237255,237257,237259],{"class":36,"line":715},[34,237250,237251],{"class":47},"ss",[34,237253,237254],{"class":50}," -tnp",[34,237256,7197],{"class":580},[34,237258,11425],{"class":47},[34,237260,93811],{"class":54},[34,237262,237263,237266,237268,237270,237272],{"class":36,"line":725},[34,237264,237265],{"class":47},"netstat",[34,237267,237254],{"class":50},[34,237269,7197],{"class":580},[34,237271,11425],{"class":47},[34,237273,93811],{"class":54},[34,237275,237276],{"class":36,"line":734},[34,237277,62],{"emptyLinePlaceholder":61},[34,237279,237280],{"class":36,"line":742},[34,237281,237282],{"class":40},"# Kill stuck SSH session\n",[34,237284,237285],{"class":36,"line":748},[34,237286,237287],{"class":40},"# Press: ~.  (tilde, then period)\n",[388,237289,15873],{},{"title":30,"searchDepth":44,"depth":44,"links":237291},[237292],{"id":114969,"depth":44,"text":114635},"Troubleshooting in SSH.",{},{"title":114635,"description":237293},"ssh/troubleshooting",[9735,5588,235509,557,43045],"lkKTh3sWlznGV7GafuSFMv-qB4MFTNN6xArsOlUulXM",{"id":237300,"title":236318,"body":237301,"date":402,"description":237423,"extension":404,"meta":237424,"navigation":61,"order":263,"path":236317,"seo":237425,"stem":237426,"subject":9735,"tags":237427,"__hash__":237428},"topics/ssh/tunneling-examples.md",{"type":8,"value":237302,"toc":237420},[237303,237306,237418],[11,237304,236318],{"id":237305},"tunneling-examples",[25,237307,237309],{"className":27,"code":237308,"language":29,"meta":30,"style":30},"# Access remote MySQL locally\nssh -L 3306:localhost:3306 user@dbserver\n\n# Access remote web app\nssh -L 8080:localhost:80 user@webserver\n\n# Access internal service through bastion\nssh -L 5432:internal-db:5432 user@bastion\n\n# Create SOCKS proxy for browsing\nssh -D 8080 -f -C -q -N user@hostname\n\n# Reverse tunnel (expose local dev server)\nssh -R 80:localhost:3000 user@public-server\n",[20,237310,237311,237316,237328,237332,237337,237348,237352,237357,237369,237373,237378,237397,237401,237406],{"__ignoreMap":30},[34,237312,237313],{"class":36,"line":37},[34,237314,237315],{"class":40},"# Access remote MySQL locally\n",[34,237317,237318,237320,237322,237325],{"class":36,"line":44},[34,237319,9735],{"class":47},[34,237321,43254],{"class":50},[34,237323,237324],{"class":54}," 3306:localhost:3306",[34,237326,237327],{"class":54}," user@dbserver\n",[34,237329,237330],{"class":36,"line":58},[34,237331,62],{"emptyLinePlaceholder":61},[34,237333,237334],{"class":36,"line":65},[34,237335,237336],{"class":40},"# Access remote web app\n",[34,237338,237339,237341,237343,237345],{"class":36,"line":71},[34,237340,9735],{"class":47},[34,237342,43254],{"class":50},[34,237344,236373],{"class":54},[34,237346,237347],{"class":54}," user@webserver\n",[34,237349,237350],{"class":36,"line":77},[34,237351,62],{"emptyLinePlaceholder":61},[34,237353,237354],{"class":36,"line":82},[34,237355,237356],{"class":40},"# Access internal service through bastion\n",[34,237358,237359,237361,237363,237366],{"class":36,"line":88},[34,237360,9735],{"class":47},[34,237362,43254],{"class":50},[34,237364,237365],{"class":54}," 5432:internal-db:5432",[34,237367,237368],{"class":54}," user@bastion\n",[34,237370,237371],{"class":36,"line":242},[34,237372,62],{"emptyLinePlaceholder":61},[34,237374,237375],{"class":36,"line":250},[34,237376,237377],{"class":40},"# Create SOCKS proxy for browsing\n",[34,237379,237380,237382,237384,237387,237389,237391,237393,237395],{"class":36,"line":263},[34,237381,9735],{"class":47},[34,237383,13768],{"class":50},[34,237385,237386],{"class":50}," 8080",[34,237388,6001],{"class":50},[34,237390,43864],{"class":50},[34,237392,55646],{"class":50},[34,237394,236457],{"class":50},[34,237396,235408],{"class":54},[34,237398,237399],{"class":36,"line":275},[34,237400,62],{"emptyLinePlaceholder":61},[34,237402,237403],{"class":36,"line":700},[34,237404,237405],{"class":40},"# Reverse tunnel (expose local dev server)\n",[34,237407,237408,237410,237412,237415],{"class":36,"line":706},[34,237409,9735],{"class":47},[34,237411,97196],{"class":50},[34,237413,237414],{"class":54}," 80:localhost:3000",[34,237416,237417],{"class":54}," user@public-server\n",[388,237419,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":237421},[237422],{"id":237305,"depth":44,"text":236318},"Tunneling Examples in SSH.",{},{"title":236318,"description":237423},"ssh/tunneling-examples",[9735,5588,235509,557,43045],"ImT0JdJdfwDAT6bI6-Oi-JNJHjmvQDKlzsrf9CXoR4g",{"id":237430,"title":237431,"body":237432,"date":402,"description":237629,"extension":404,"meta":237630,"navigation":61,"order":37,"path":237631,"seo":237632,"stem":237633,"subject":237603,"tags":237634,"__hash__":237635},"topics/starship/overview.md","Starship Prompt",{"type":8,"value":237433,"toc":237622},[237434,237436,237439,237461,237469,237471,237474,237493,237498,237500,237507,237540,237545,237549,237554,237584,237589,237591,237594,237606,237611,237619],[11,237435,14],{"id":13},[16,237437,237438],{},"Starship is a fast and highly customizable shell prompt. It works with the most popular shells, including Bash, Zsh, Fish, PowerShell, and others.",[25,237440,237442],{"className":27,"code":237441,"language":29,"meta":30,"style":30},"# Example Starship prompt configuration\necho 'eval \"$(starship init bash)\"' >> ~/.bashrc\n",[20,237443,237444,237449],{"__ignoreMap":30},[34,237445,237446],{"class":36,"line":37},[34,237447,237448],{"class":40},"# Example Starship prompt configuration\n",[34,237450,237451,237453,237456,237458],{"class":36,"line":44},[34,237452,10120],{"class":50},[34,237454,237455],{"class":54}," 'eval \"$(starship init bash)\"'",[34,237457,11348],{"class":580},[34,237459,237460],{"class":54}," ~/.bashrc\n",[16,237462,237463],{},[8563,237464,237465,237466,237468],{},"This code configures Starship for Bash. Replace ",[20,237467,29],{}," with your shell of choice.",[11,237470,97],{"id":96},[16,237472,237473],{},"Starship can be installed via package manager or manually:",[25,237475,237477],{"className":27,"code":237476,"language":29,"meta":30,"style":30},"# Using Homebrew (macOS/Linux)\nbrew install starship\n",[20,237478,237479,237484],{"__ignoreMap":30},[34,237480,237481],{"class":36,"line":37},[34,237482,237483],{"class":40},"# Using Homebrew (macOS/Linux)\n",[34,237485,237486,237488,237490],{"class":36,"line":44},[34,237487,115],{"class":47},[34,237489,118],{"class":54},[34,237491,237492],{"class":54}," starship\n",[16,237494,237495],{},[8563,237496,237497],{},"This installs Starship using Homebrew.",[11,237499,8686],{"id":558},[16,237501,237502,237503,237506],{},"Customize your prompt by editing the ",[20,237504,237505],{},"starship.toml"," file:",[25,237508,237510],{"className":14514,"code":237509,"language":14516,"meta":30,"style":30},"# ~/.config/starship.toml\n[aws]\ndisabled = false\nsymbol = \"☁️  \"\n",[20,237511,237512,237517,237525,237532],{"__ignoreMap":30},[34,237513,237514],{"class":36,"line":37},[34,237515,237516],{"class":40},"# ~/.config/starship.toml\n",[34,237518,237519,237521,237523],{"class":36,"line":44},[34,237520,10260],{"class":181},[34,237522,8681],{"class":47},[34,237524,924],{"class":181},[34,237526,237527,237530],{"class":36,"line":58},[34,237528,237529],{"class":181},"disabled = ",[34,237531,14607],{"class":50},[34,237533,237534,237537],{"class":36,"line":65},[34,237535,237536],{"class":181},"symbol = ",[34,237538,237539],{"class":54},"\"☁️  \"\n",[16,237541,237542],{},[8563,237543,237544],{},"This enables the AWS module with a cloud icon.",[11,237546,237548],{"id":237547},"themes","Themes",[16,237550,237551,237552,237506],{},"Switch to different themes by modifying the ",[20,237553,237505],{},[25,237555,237557],{"className":14514,"code":237556,"language":14516,"meta":30,"style":30},"[character]\nsuccess_symbol = \"➜ \"\nerror_symbol = \"✗ \"\n",[20,237558,237559,237568,237576],{"__ignoreMap":30},[34,237560,237561,237563,237566],{"class":36,"line":37},[34,237562,10260],{"class":181},[34,237564,237565],{"class":47},"character",[34,237567,924],{"class":181},[34,237569,237570,237573],{"class":36,"line":44},[34,237571,237572],{"class":181},"success_symbol = ",[34,237574,237575],{"class":54},"\"➜ \"\n",[34,237577,237578,237581],{"class":36,"line":58},[34,237579,237580],{"class":181},"error_symbol = ",[34,237582,237583],{"class":54},"\"✗ \"\n",[16,237585,237586],{},[8563,237587,237588],{},"This defines symbols for successful and failed commands.",[11,237590,114635],{"id":114969},[16,237592,237593],{},"Check the Starship documentation if you encounter issues:",[25,237595,237597],{"className":27,"code":237596,"language":29,"meta":30,"style":30},"starship doctor\n",[20,237598,237599],{"__ignoreMap":30},[34,237600,237601,237604],{"class":36,"line":37},[34,237602,237603],{"class":47},"starship",[34,237605,114986],{"class":54},[16,237607,237608],{},[8563,237609,237610],{},"This verifies your installation.",[16,237612,237613,237614,151],{},"Additional configuration options and advanced features can be found in the ",[145,237615,237618],{"href":237616,"rel":237617},"https://starship.rs/guide/",[149],"Starship Guide",[388,237620,237621],{},"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}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":30,"searchDepth":44,"depth":44,"links":237623},[237624,237625,237626,237627,237628],{"id":13,"depth":44,"text":14},{"id":96,"depth":44,"text":97},{"id":558,"depth":44,"text":8686},{"id":237547,"depth":44,"text":237548},{"id":114969,"depth":44,"text":114635},"Configuration options and setup guide for the minimal, blazing-fast, and infinitely customizable prompt for any shell.",{},"/starship/overview",{"title":237431,"description":237629},"starship/overview",[10358,237603,80995,132772],"N3a030SLLUdsrhqOHtPzYY86nZe9Rxb0aJ1niN5fkwc",{"id":237637,"title":237638,"body":237639,"date":402,"description":238162,"extension":404,"meta":238163,"navigation":61,"order":37,"path":238164,"seo":238165,"stem":238166,"subject":238167,"tags":238168,"__hash__":238170},"topics/storybook/overview.md","Storybook",{"type":8,"value":237640,"toc":238152},[237641,237643,237646,237648,237651,237663,237671,237675,237678,237822,237835,237839,237842,237859,237866,237902,237906,237909,238018,238027,238029,238032,238068,238073,238076,238079,238100,238105,238109,238112,238141,238149],[11,237642,13534],{"id":13533},[16,237644,237645],{},"Storybook is an open-source frontend workshop that helps developers build and document UI components in isolation. This guide provides essential syntax, commands, and patterns for integrating Storybook into your development workflow.",[11,237647,97],{"id":96},[16,237649,237650],{},"Follow the steps below to install Storybook in your project:",[25,237652,237654],{"className":27,"code":237653,"language":29,"meta":30,"style":30},"npx create-storybook@latest\n",[20,237655,237656],{"__ignoreMap":30},[34,237657,237658,237660],{"class":36,"line":37},[34,237659,8205],{"class":47},[34,237661,237662],{"class":54}," create-storybook@latest\n",[309,237664,237665,237668],{},[312,237666,237667],{},"This command sets up Storybook for existing projects or creates a new one.",[312,237669,237670],{},"Supports frameworks such as React, Vue, Angular, and more.",[11,237672,237674],{"id":237673},"writing-stories","Writing Stories",[16,237676,237677],{},"Stories capture the different states of your UI components.",[25,237679,237681],{"className":13845,"code":237680,"language":8606,"meta":30,"style":30},"// Button.stories.js\nimport React from 'react';\nimport { Button } from './Button';\n\nexport default {\n  title: 'Example/Button',\n  component: Button,\n};\n\nconst Template = (args) => \u003CButton {...args} />;\n\nexport const Primary = Template.bind({});\nPrimary.args = {\n  label: 'Click Me',\n};\n",[20,237682,237683,237688,237700,237713,237717,237725,237734,237739,237743,237747,237775,237779,237799,237808,237818],{"__ignoreMap":30},[34,237684,237685],{"class":36,"line":37},[34,237686,237687],{"class":40},"// Button.stories.js\n",[34,237689,237690,237692,237694,237696,237698],{"class":36,"line":44},[34,237691,581],{"class":580},[34,237693,202476],{"class":181},[34,237695,587],{"class":580},[34,237697,85598],{"class":54},[34,237699,593],{"class":181},[34,237701,237702,237704,237706,237708,237711],{"class":36,"line":58},[34,237703,581],{"class":580},[34,237705,226004],{"class":181},[34,237707,587],{"class":580},[34,237709,237710],{"class":54}," './Button'",[34,237712,593],{"class":181},[34,237714,237715],{"class":36,"line":65},[34,237716,62],{"emptyLinePlaceholder":61},[34,237718,237719,237721,237723],{"class":36,"line":71},[34,237720,652],{"class":580},[34,237722,7298],{"class":580},[34,237724,661],{"class":181},[34,237726,237727,237729,237732],{"class":36,"line":77},[34,237728,85785],{"class":181},[34,237730,237731],{"class":54},"'Example/Button'",[34,237733,624],{"class":181},[34,237735,237736],{"class":36,"line":82},[34,237737,237738],{"class":181},"  component: Button,\n",[34,237740,237741],{"class":36,"line":88},[34,237742,17632],{"class":181},[34,237744,237745],{"class":36,"line":242},[34,237746,62],{"emptyLinePlaceholder":61},[34,237748,237749,237751,237754,237756,237758,237760,237762,237764,237766,237768,237770,237772],{"class":36,"line":250},[34,237750,14676],{"class":580},[34,237752,237753],{"class":47}," Template",[34,237755,683],{"class":580},[34,237757,3204],{"class":181},[34,237759,126705],{"class":675},[34,237761,4817],{"class":181},[34,237763,3361],{"class":580},[34,237765,5470],{"class":181},[34,237767,226036],{"class":50},[34,237769,11838],{"class":181},[34,237771,16841],{"class":580},[34,237773,237774],{"class":181},"args} />;\n",[34,237776,237777],{"class":36,"line":263},[34,237778,62],{"emptyLinePlaceholder":61},[34,237780,237781,237783,237785,237788,237790,237793,237796],{"class":36,"line":275},[34,237782,652],{"class":580},[34,237784,3291],{"class":580},[34,237786,237787],{"class":50}," Primary",[34,237789,683],{"class":580},[34,237791,237792],{"class":181}," Template.",[34,237794,237795],{"class":47},"bind",[34,237797,237798],{"class":181},"({});\n",[34,237800,237801,237804,237806],{"class":36,"line":700},[34,237802,237803],{"class":181},"Primary.args ",[34,237805,1301],{"class":580},[34,237807,661],{"class":181},[34,237809,237810,237813,237816],{"class":36,"line":706},[34,237811,237812],{"class":181},"  label: ",[34,237814,237815],{"class":54},"'Click Me'",[34,237817,624],{"class":181},[34,237819,237820],{"class":36,"line":715},[34,237821,17632],{"class":181},[309,237823,237824,237830],{},[312,237825,15998,237826,237829],{},[20,237827,237828],{},"Template.bind({})"," to create multiple variations of a single component.",[312,237831,18,237832,237834],{},[20,237833,126705],{}," property defines the component's props.",[11,237836,237838],{"id":237837},"preview-addons","Preview Addons",[16,237840,237841],{},"Enhance your stories with addons:",[25,237843,237845],{"className":27,"code":237844,"language":29,"meta":30,"style":30},"npm install @storybook/addon-actions @storybook/addon-controls\n",[20,237846,237847],{"__ignoreMap":30},[34,237848,237849,237851,237853,237856],{"class":36,"line":37},[34,237850,8177],{"class":47},[34,237852,118],{"class":54},[34,237854,237855],{"class":54}," @storybook/addon-actions",[34,237857,237858],{"class":54}," @storybook/addon-controls\n",[16,237860,237861,237862,237865],{},"Configure your ",[20,237863,237864],{},"main.js"," file to use these addons:",[25,237867,237869],{"className":13845,"code":237868,"language":8606,"meta":30,"style":30},"module.exports = {\n  addons: ['@storybook/addon-actions', '@storybook/addon-controls'],\n};\n",[20,237870,237871,237883,237898],{"__ignoreMap":30},[34,237872,237873,237875,237877,237879,237881],{"class":36,"line":37},[34,237874,46312],{"class":50},[34,237876,151],{"class":181},[34,237878,46317],{"class":50},[34,237880,683],{"class":580},[34,237882,661],{"class":181},[34,237884,237885,237888,237891,237893,237896],{"class":36,"line":44},[34,237886,237887],{"class":181},"  addons: [",[34,237889,237890],{"class":54},"'@storybook/addon-actions'",[34,237892,1798],{"class":181},[34,237894,237895],{"class":54},"'@storybook/addon-controls'",[34,237897,46332],{"class":181},[34,237899,237900],{"class":36,"line":58},[34,237901,17632],{"class":181},[11,237903,237905],{"id":237904},"testing-with-storybook","Testing with Storybook",[16,237907,237908],{},"Run interaction tests to ensure component stability:",[25,237910,237912],{"className":13845,"code":237911,"language":8606,"meta":30,"style":30},"// Button.test.js\nimport { screen, userEvent } from '@storybook/testing-library';\nimport { Primary } from './Button.stories';\n\ntest('Primary Button Click', async () => {\n  render(\u003CPrimary />);\n  const button = screen.getByText('Click Me');\n  await userEvent.click(button);\n});\n",[20,237913,237914,237919,237933,237947,237951,237970,237982,238002,238014],{"__ignoreMap":30},[34,237915,237916],{"class":36,"line":37},[34,237917,237918],{"class":40},"// Button.test.js\n",[34,237920,237921,237923,237926,237928,237931],{"class":36,"line":44},[34,237922,581],{"class":580},[34,237924,237925],{"class":181}," { screen, userEvent } ",[34,237927,587],{"class":580},[34,237929,237930],{"class":54}," '@storybook/testing-library'",[34,237932,593],{"class":181},[34,237934,237935,237937,237940,237942,237945],{"class":36,"line":58},[34,237936,581],{"class":580},[34,237938,237939],{"class":181}," { Primary } ",[34,237941,587],{"class":580},[34,237943,237944],{"class":54}," './Button.stories'",[34,237946,593],{"class":181},[34,237948,237949],{"class":36,"line":65},[34,237950,62],{"emptyLinePlaceholder":61},[34,237952,237953,237955,237957,237960,237962,237964,237966,237968],{"class":36,"line":71},[34,237954,14618],{"class":47},[34,237956,1607],{"class":181},[34,237958,237959],{"class":54},"'Primary Button Click'",[34,237961,1798],{"class":181},[34,237963,17403],{"class":580},[34,237965,17406],{"class":181},[34,237967,3361],{"class":580},[34,237969,661],{"class":181},[34,237971,237972,237975,237977,237980],{"class":36,"line":77},[34,237973,237974],{"class":47},"  render",[34,237976,127238],{"class":181},[34,237978,237979],{"class":50},"Primary",[34,237981,127243],{"class":181},[34,237983,237984,237986,237988,237990,237993,237996,237998,238000],{"class":36,"line":82},[34,237985,17415],{"class":580},[34,237987,221616],{"class":50},[34,237989,683],{"class":580},[34,237991,237992],{"class":181}," screen.",[34,237994,237995],{"class":47},"getByText",[34,237997,1607],{"class":181},[34,237999,237815],{"class":54},[34,238001,1586],{"class":181},[34,238003,238004,238006,238009,238011],{"class":36,"line":88},[34,238005,47600],{"class":580},[34,238007,238008],{"class":181}," userEvent.",[34,238010,45348],{"class":47},[34,238012,238013],{"class":181},"(button);\n",[34,238015,238016],{"class":36,"line":242},[34,238017,14873],{"class":181},[309,238019,238020],{},[312,238021,238022,238023,238026],{},"Combine Storybook with ",[20,238024,238025],{},"@storybook/testing-library"," for an integrated testing workflow.",[11,238028,198706],{"id":198705},[16,238030,238031],{},"Ensure your components are accessible:",[25,238033,238035],{"className":13845,"code":238034,"language":8606,"meta":30,"style":30},"import { withA11y } from '@storybook/addon-a11y';\nexport default {\n  decorators: [withA11y],\n};\n",[20,238036,238037,238051,238059,238064],{"__ignoreMap":30},[34,238038,238039,238041,238044,238046,238049],{"class":36,"line":37},[34,238040,581],{"class":580},[34,238042,238043],{"class":181}," { withA11y } ",[34,238045,587],{"class":580},[34,238047,238048],{"class":54}," '@storybook/addon-a11y'",[34,238050,593],{"class":181},[34,238052,238053,238055,238057],{"class":36,"line":44},[34,238054,652],{"class":580},[34,238056,7298],{"class":580},[34,238058,661],{"class":181},[34,238060,238061],{"class":36,"line":58},[34,238062,238063],{"class":181},"  decorators: [withA11y],\n",[34,238065,238066],{"class":36,"line":65},[34,238067,17632],{"class":181},[309,238069,238070],{},[312,238071,238072],{},"Enables accessibility checks directly within your stories.",[11,238074,238075],{"id":55968},"Deployment",[16,238077,238078],{},"Publish your Storybook to share components:",[25,238080,238082],{"className":27,"code":238081,"language":29,"meta":30,"style":30},"npm install @storybook/storybook-deployer\nnpx storybook-to-ghpages\n",[20,238083,238084,238093],{"__ignoreMap":30},[34,238085,238086,238088,238090],{"class":36,"line":37},[34,238087,8177],{"class":47},[34,238089,118],{"class":54},[34,238091,238092],{"class":54}," @storybook/storybook-deployer\n",[34,238094,238095,238097],{"class":36,"line":44},[34,238096,8205],{"class":47},[34,238098,238099],{"class":54}," storybook-to-ghpages\n",[309,238101,238102],{},[312,238103,238104],{},"Deploys your Storybook to GitHub Pages or other hosting platforms.",[11,238106,238108],{"id":238107},"framework-support","Framework Support",[16,238110,238111],{},"Storybook supports a wide range of frontend frameworks:",[309,238113,238114,238119,238124,238130,238135],{},[312,238115,238116,238118],{},[8471,238117,200491],{},": Modern UI and dynamic components.",[312,238120,238121,238123],{},[8471,238122,2560],{},": Template-driven UI.",[312,238125,238126,238129],{},[8471,238127,238128],{},"Vue",": Progressive JavaScript framework.",[312,238131,238132,238134],{},[8471,238133,86177],{},": Lightweight and fast.",[312,238136,238137,238140],{},[8471,238138,238139],{},"Web Components",": Standards-based implementation.",[16,238142,238143,238144,151],{},"Each framework has specific setup guides available in the ",[145,238145,238148],{"href":238146,"rel":238147},"https://storybook.js.org/docs/get-started",[149],"Storybook documentation",[388,238150,238151],{},"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 .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 .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}",{"title":30,"searchDepth":44,"depth":44,"links":238153},[238154,238155,238156,238157,238158,238159,238160,238161],{"id":13533,"depth":44,"text":13534},{"id":96,"depth":44,"text":97},{"id":237673,"depth":44,"text":237674},{"id":237837,"depth":44,"text":237838},{"id":237904,"depth":44,"text":237905},{"id":198705,"depth":44,"text":198706},{"id":55968,"depth":44,"text":238075},{"id":238107,"depth":44,"text":238108},"A guide to leveraging Storybook for building, testing, and documenting UI components in isolation.",{},"/storybook/overview",{"title":237638,"description":238162},"storybook/overview","storybook",[238167,982,238169,16094,58704],"ui-development","_8RjPxJ-XoJbSLtpuVLAOI1zUZpCDDdCpSGHipUg5_0",{"id":238172,"title":238173,"body":238174,"date":402,"description":238304,"extension":404,"meta":238305,"navigation":61,"order":37,"path":238306,"seo":238307,"stem":238308,"subject":238309,"tags":238310,"__hash__":238311},"topics/stylelint/overview.md","Stylelint",{"type":8,"value":238175,"toc":238298},[238176,238178,238181,238183,238186,238200,238213,238232,238235,238281,238285,238295],[11,238177,6035],{"id":6040},[16,238179,238180],{},"Stylelint checks your CSS for errors and adheres to consistent standards.",[102,238182,97],{"id":96},[16,238184,238185],{},"To quickly integrate Stylelint into your project, use npm or its create tool:",[25,238187,238189],{"className":27,"code":238188,"language":29,"meta":30,"style":30},"npm create stylelint@latest\n",[20,238190,238191],{"__ignoreMap":30},[34,238192,238193,238195,238197],{"class":36,"line":37},[34,238194,8177],{"class":47},[34,238196,7077],{"class":54},[34,238198,238199],{"class":54}," stylelint@latest\n",[16,238201,238202,238203,1798,238208,238212],{},"Stylelint supports ",[145,238204,238207],{"href":238205,"rel":238206},"https://yarnpkg.com",[149],"Yarn",[145,238209,13788],{"href":238210,"rel":238211},"https://pnpm.io",[149],", and other package managers:",[25,238214,238216],{"className":27,"code":238215,"language":29,"meta":30,"style":30},"# Example using pnpm\npnpm create stylelint\n",[20,238217,238218,238223],{"__ignoreMap":30},[34,238219,238220],{"class":36,"line":37},[34,238221,238222],{"class":40},"# Example using pnpm\n",[34,238224,238225,238227,238229],{"class":36,"line":44},[34,238226,13788],{"class":47},[34,238228,7077],{"class":54},[34,238230,238231],{"class":54}," stylelint\n",[16,238233,238234],{},"Create a Stylelint configuration file:",[25,238236,238238],{"className":13845,"code":238237,"language":8606,"meta":30,"style":30},"/** @type {import('stylelint').Config} */\nexport default {\n  extends: [\"stylelint-config-standard\"],\n  rules: {}\n};\n",[20,238239,238240,238254,238262,238272,238277],{"__ignoreMap":30},[34,238241,238242,238245,238248,238251],{"class":36,"line":37},[34,238243,238244],{"class":40},"/** ",[34,238246,238247],{"class":580},"@type",[34,238249,238250],{"class":47}," {import('stylelint').Config}",[34,238252,238253],{"class":40}," */\n",[34,238255,238256,238258,238260],{"class":36,"line":44},[34,238257,652],{"class":580},[34,238259,7298],{"class":580},[34,238261,661],{"class":181},[34,238263,238264,238267,238270],{"class":36,"line":58},[34,238265,238266],{"class":181},"  extends: [",[34,238268,238269],{"class":54},"\"stylelint-config-standard\"",[34,238271,46332],{"class":181},[34,238273,238274],{"class":36,"line":65},[34,238275,238276],{"class":181},"  rules: {}\n",[34,238278,238279],{"class":36,"line":71},[34,238280,17632],{"class":181},[102,238282,238284],{"id":238283},"manual-configuration","Manual Configuration",[16,238286,238287,238288,157865,238291,238294],{},"Place your ",[20,238289,238290],{},".stylelintrc",[20,238292,238293],{},"stylelint.config.mjs"," code under a correctly named package for clarity.",[388,238296,238297],{},"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 .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}",{"title":30,"searchDepth":44,"depth":44,"links":238299},[238300],{"id":6040,"depth":44,"text":6035,"children":238301},[238302,238303],{"id":96,"depth":58,"text":97},{"id":238283,"depth":58,"text":238284},"Lint your stylesheets with Stylelint for consistent CSS standards and best practices.",{},"/stylelint/overview",{"title":238173,"description":238304},"stylelint/overview","stylelint",[238309,38194,14118,14119],"SBH8pTHTJDESclS_Nd7wWpVl6XNOKWoA0rFqbcWHkXE",{"id":238313,"title":238314,"body":238315,"date":402,"description":238725,"extension":404,"meta":238726,"navigation":61,"order":37,"path":238727,"seo":238728,"stem":238729,"subject":238730,"tags":238731,"__hash__":238733},"topics/supabase/overview.md","Supabase",{"type":8,"value":238316,"toc":238712},[238317,238321,238324,238328,238331,238334,238391,238393,238396,238490,238492,238495,238541,238545,238548,238619,238623,238626,238666,238670,238681,238683,238697,238701,238709],[11,238318,238320],{"id":238319},"what-is-supabase","What is Supabase?",[16,238322,238323],{},"Supabase is an open-source Backend-as-a-Service (BaaS) platform that provides a set of tools to simplify database and backend development. It's built on top of PostgreSQL.",[11,238325,238327],{"id":238326},"core-features","Core Features",[102,238329,238330],{"id":28650},"Database",[16,238332,238333],{},"Supabase offers a PostgreSQL database with Realtime capabilities, backups, and extensions.",[25,238335,238337],{"className":28335,"code":238336,"language":28337,"meta":30,"style":30},"-- Example of creating a table in Supabase\nCREATE TABLE users (\n    id serial PRIMARY KEY,\n    username text NOT NULL,\n    email text UNIQUE NOT NULL\n);\n",[20,238338,238339,238344,238354,238364,238375,238387],{"__ignoreMap":30},[34,238340,238341],{"class":36,"line":37},[34,238342,238343],{"class":40},"-- Example of creating a table in Supabase\n",[34,238345,238346,238348,238350,238352],{"class":36,"line":44},[34,238347,28349],{"class":580},[34,238349,28422],{"class":580},[34,238351,28425],{"class":47},[34,238353,13975],{"class":181},[34,238355,238356,238358,238360,238362],{"class":36,"line":58},[34,238357,234919],{"class":181},[34,238359,58477],{"class":580},[34,238361,151223],{"class":580},[34,238363,624],{"class":181},[34,238365,238366,238369,238371,238373],{"class":36,"line":65},[34,238367,238368],{"class":181},"    username ",[34,238370,780],{"class":580},[34,238372,153676],{"class":580},[34,238374,624],{"class":181},[34,238376,238377,238379,238381,238384],{"class":36,"line":71},[34,238378,28461],{"class":181},[34,238380,780],{"class":580},[34,238382,238383],{"class":580}," UNIQUE",[34,238385,238386],{"class":580}," NOT NULL\n",[34,238388,238389],{"class":36,"line":77},[34,238390,1586],{"class":181},[102,238392,9362],{"id":9361},[16,238394,238395],{},"Supports email, password, and OAuth-based authentication systems.",[25,238397,238399],{"className":13845,"code":238398,"language":8606,"meta":30,"style":30},"import { createClient } from '@supabase/supabase-js';\n\nconst supabase = createClient('your-supabase-url', 'your-anon-key');\nconst { user, error } = await supabase.auth.signUp({\n  email: 'user@example.com',\n  password: 'securepassword',\n});\n",[20,238400,238401,238415,238419,238443,238469,238477,238486],{"__ignoreMap":30},[34,238402,238403,238405,238408,238410,238413],{"class":36,"line":37},[34,238404,581],{"class":580},[34,238406,238407],{"class":181}," { createClient } ",[34,238409,587],{"class":580},[34,238411,238412],{"class":54}," '@supabase/supabase-js'",[34,238414,593],{"class":181},[34,238416,238417],{"class":36,"line":44},[34,238418,62],{"emptyLinePlaceholder":61},[34,238420,238421,238423,238426,238428,238431,238433,238436,238438,238441],{"class":36,"line":58},[34,238422,14676],{"class":580},[34,238424,238425],{"class":50}," supabase",[34,238427,683],{"class":580},[34,238429,238430],{"class":47}," createClient",[34,238432,1607],{"class":181},[34,238434,238435],{"class":54},"'your-supabase-url'",[34,238437,1798],{"class":181},[34,238439,238440],{"class":54},"'your-anon-key'",[34,238442,1586],{"class":181},[34,238444,238445,238447,238449,238451,238453,238455,238457,238459,238461,238464,238467],{"class":36,"line":65},[34,238446,14676],{"class":580},[34,238448,30251],{"class":181},[34,238450,3945],{"class":50},[34,238452,1798],{"class":181},[34,238454,1908],{"class":50},[34,238456,34865],{"class":181},[34,238458,1301],{"class":580},[34,238460,14763],{"class":580},[34,238462,238463],{"class":181}," supabase.auth.",[34,238465,238466],{"class":47},"signUp",[34,238468,613],{"class":181},[34,238470,238471,238473,238475],{"class":36,"line":71},[34,238472,83303],{"class":181},[34,238474,225512],{"class":54},[34,238476,624],{"class":181},[34,238478,238479,238481,238484],{"class":36,"line":77},[34,238480,58393],{"class":181},[34,238482,238483],{"class":54},"'securepassword'",[34,238485,624],{"class":181},[34,238487,238488],{"class":36,"line":82},[34,238489,14873],{"class":181},[102,238491,9775],{"id":9774},[16,238493,238494],{},"Store and manage files directly linked with your database.",[25,238496,238498],{"className":13845,"code":238497,"language":8606,"meta":30,"style":30},"const { data, error } = await supabase.storage.from('bucket-name').upload('path/to/file', fileData);\n",[20,238499,238500],{"__ignoreMap":30},[34,238501,238502,238504,238506,238508,238510,238512,238514,238516,238518,238521,238523,238525,238528,238530,238533,238535,238538],{"class":36,"line":37},[34,238503,14676],{"class":580},[34,238505,30251],{"class":181},[34,238507,1701],{"class":50},[34,238509,1798],{"class":181},[34,238511,1908],{"class":50},[34,238513,34865],{"class":181},[34,238515,1301],{"class":580},[34,238517,14763],{"class":580},[34,238519,238520],{"class":181}," supabase.storage.",[34,238522,587],{"class":47},[34,238524,1607],{"class":181},[34,238526,238527],{"class":54},"'bucket-name'",[34,238529,1876],{"class":181},[34,238531,238532],{"class":47},"upload",[34,238534,1607],{"class":181},[34,238536,238537],{"class":54},"'path/to/file'",[34,238539,238540],{"class":181},", fileData);\n",[102,238542,238544],{"id":238543},"realtime","Realtime",[16,238546,238547],{},"Receive live updates to your application when data changes in your database.",[25,238549,238551],{"className":13845,"code":238550,"language":8606,"meta":30,"style":30},"supabase\n  .from('messages')\n  .on('INSERT', (payload) => {\n    console.log('New message:', payload);\n  })\n  .subscribe();\n",[20,238552,238553,238558,238571,238593,238607,238611],{"__ignoreMap":30},[34,238554,238555],{"class":36,"line":37},[34,238556,238557],{"class":181},"supabase\n",[34,238559,238560,238562,238564,238566,238569],{"class":36,"line":44},[34,238561,61818],{"class":181},[34,238563,587],{"class":47},[34,238565,1607],{"class":181},[34,238567,238568],{"class":54},"'messages'",[34,238570,3372],{"class":181},[34,238572,238573,238575,238577,238579,238582,238584,238587,238589,238591],{"class":36,"line":58},[34,238574,61818],{"class":181},[34,238576,190],{"class":47},[34,238578,1607],{"class":181},[34,238580,238581],{"class":54},"'INSERT'",[34,238583,75504],{"class":181},[34,238585,238586],{"class":675},"payload",[34,238588,4817],{"class":181},[34,238590,3361],{"class":580},[34,238592,661],{"class":181},[34,238594,238595,238597,238599,238601,238604],{"class":36,"line":65},[34,238596,2421],{"class":181},[34,238598,2424],{"class":47},[34,238600,1607],{"class":181},[34,238602,238603],{"class":54},"'New message:'",[34,238605,238606],{"class":181},", payload);\n",[34,238608,238609],{"class":36,"line":71},[34,238610,62121],{"class":181},[34,238612,238613,238615,238617],{"class":36,"line":77},[34,238614,61818],{"class":181},[34,238616,3630],{"class":47},[34,238618,851],{"class":181},[102,238620,238622],{"id":238621},"edge-functions","Edge Functions",[16,238624,238625],{},"Globally distributed server-side functions to handle business logic.",[25,238627,238629],{"className":13845,"code":238628,"language":8606,"meta":30,"style":30},"export async function onRequest(context) {\n  return new Response('Hello, world!');\n}\n",[20,238630,238631,238648,238662],{"__ignoreMap":30},[34,238632,238633,238635,238637,238639,238642,238644,238646],{"class":36,"line":37},[34,238634,652],{"class":580},[34,238636,33813],{"class":580},[34,238638,8037],{"class":580},[34,238640,238641],{"class":47}," onRequest",[34,238643,1607],{"class":181},[34,238645,228769],{"class":675},[34,238647,2416],{"class":181},[34,238649,238650,238652,238654,238656,238658,238660],{"class":36,"line":44},[34,238651,8155],{"class":580},[34,238653,809],{"class":580},[34,238655,15463],{"class":47},[34,238657,1607],{"class":181},[34,238659,85747],{"class":54},[34,238661,1586],{"class":181},[34,238663,238664],{"class":36,"line":58},[34,238665,693],{"class":181},[11,238667,238669],{"id":238668},"client-libraries","Client Libraries",[309,238671,238672,238674,238676,238679],{},[312,238673,126157],{},[312,238675,132677],{},[312,238677,238678],{},"Dart",[312,238680,136617],{},[11,238682,115380],{"id":115379},[309,238684,238685,238688,238691,238694],{},[312,238686,238687],{},"Real-time applications",[312,238689,238690],{},"Authentication and user management",[312,238692,238693],{},"API backends",[312,238695,238696],{},"File storage and CDN",[11,238698,238700],{"id":238699},"references","References",[16,238702,238703,238704,151],{},"Explore more in the ",[145,238705,238708],{"href":238706,"rel":238707},"https://supabase.com/docs",[149],"official documentation",[388,238710,238711],{},"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 .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 .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 .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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":30,"searchDepth":44,"depth":44,"links":238713},[238714,238715,238722,238723,238724],{"id":238319,"depth":44,"text":238320},{"id":238326,"depth":44,"text":238327,"children":238716},[238717,238718,238719,238720,238721],{"id":28650,"depth":58,"text":238330},{"id":9361,"depth":58,"text":9362},{"id":9774,"depth":58,"text":9775},{"id":238543,"depth":58,"text":238544},{"id":238621,"depth":58,"text":238622},{"id":238668,"depth":44,"text":238669},{"id":115379,"depth":44,"text":115380},{"id":238699,"depth":44,"text":238700},"Overview of Supabase's features, including Database, Auth, Storage, Realtime, and Edge Functions.",{},"/supabase/overview",{"title":238314,"description":238725},"supabase/overview","supabase",[238730,46870,238732],"database-as-a-service","d_AKeEov7SlUd1vzUwXrp-YMdL09oAPeN9y0YJ08jSk",{"id":238735,"title":86177,"body":238736,"date":402,"description":239538,"extension":404,"meta":239539,"navigation":61,"order":37,"path":239540,"seo":239541,"stem":239542,"subject":86186,"tags":239543,"__hash__":239544},"topics/svelte/overview.md",{"type":8,"value":238737,"toc":239526},[238738,238740,238743,238745,238796,238802,238806,238891,238897,238901,238962,238965,238969,239041,239048,239052,239161,239166,239168,239246,239252,239254,239342,239345,239347,239415,239421,239425,239520,239523],[11,238739,13534],{"id":13533},[16,238741,238742],{},"Svelte is a modern framework for building reactive web applications. It shifts the work traditionally done in the browser to a compile step, producing highly efficient code.",[11,238744,22151],{"id":22156},[25,238746,238748],{"className":1162,"code":238747,"language":1164,"meta":30,"style":30},"\u003Cscript>\n  let name = 'world';\n\u003C/script>\n\n\u003Ch1>Hello {name}!\u003C/h1>\n",[20,238749,238750,238758,238771,238779,238783],{"__ignoreMap":30},[34,238751,238752,238754,238756],{"class":36,"line":37},[34,238753,815],{"class":181},[34,238755,115970],{"class":177},[34,238757,1248],{"class":181},[34,238759,238760,238762,238764,238766,238769],{"class":36,"line":44},[34,238761,63085],{"class":580},[34,238763,30212],{"class":181},[34,238765,1301],{"class":580},[34,238767,238768],{"class":54}," 'world'",[34,238770,593],{"class":181},[34,238772,238773,238775,238777],{"class":36,"line":58},[34,238774,2089],{"class":181},[34,238776,115970],{"class":177},[34,238778,1248],{"class":181},[34,238780,238781],{"class":36,"line":65},[34,238782,62],{"emptyLinePlaceholder":61},[34,238784,238785,238787,238789,238792,238794],{"class":36,"line":71},[34,238786,815],{"class":181},[34,238788,8535],{"class":177},[34,238790,238791],{"class":181},">Hello {name}!\u003C/",[34,238793,8535],{"class":177},[34,238795,1248],{"class":181},[16,238797,238798,238799,238801],{},"// Inline comments: This script defines a reactive variable ",[20,238800,178],{}," and binds it to the HTML.",[11,238803,238805],{"id":238804},"reactive-assignments","Reactive Assignments",[25,238807,238809],{"className":1162,"code":238808,"language":1164,"meta":30,"style":30},"\u003Cscript>\n  let count = 0;\n\n  function increment() {\n    count += 1;\n  }\n\u003C/script>\n\n\u003Cbutton on:click={increment}>{count}\u003C/button>\n",[20,238810,238811,238819,238831,238835,238843,238854,238858,238866,238870],{"__ignoreMap":30},[34,238812,238813,238815,238817],{"class":36,"line":37},[34,238814,815],{"class":181},[34,238816,115970],{"class":177},[34,238818,1248],{"class":181},[34,238820,238821,238823,238825,238827,238829],{"class":36,"line":44},[34,238822,63085],{"class":580},[34,238824,25163],{"class":181},[34,238826,1301],{"class":580},[34,238828,8070],{"class":50},[34,238830,593],{"class":181},[34,238832,238833],{"class":36,"line":58},[34,238834,62],{"emptyLinePlaceholder":61},[34,238836,238837,238839,238841],{"class":36,"line":65},[34,238838,68507],{"class":580},[34,238840,60840],{"class":47},[34,238842,836],{"class":181},[34,238844,238845,238848,238850,238852],{"class":36,"line":71},[34,238846,238847],{"class":181},"    count ",[34,238849,31462],{"class":580},[34,238851,3567],{"class":50},[34,238853,593],{"class":181},[34,238855,238856],{"class":36,"line":77},[34,238857,857],{"class":181},[34,238859,238860,238862,238864],{"class":36,"line":82},[34,238861,2089],{"class":181},[34,238863,115970],{"class":177},[34,238865,1248],{"class":181},[34,238867,238868],{"class":36,"line":88},[34,238869,62],{"emptyLinePlaceholder":61},[34,238871,238872,238874,238876,238879,238881,238884,238887,238889],{"class":36,"line":242},[34,238873,815],{"class":181},[34,238875,4509],{"class":177},[34,238877,238878],{"class":47}," on:click",[34,238880,1301],{"class":181},[34,238882,238883],{"class":54},"{increment}",[34,238885,238886],{"class":181},">{count}\u003C/",[34,238888,4509],{"class":177},[34,238890,1248],{"class":181},[16,238892,238893,238894,238896],{},"// When ",[20,238895,4284],{}," changes, the DOM updates automatically. Reactive syntax makes apps interactive.",[11,238898,238900],{"id":238899},"bindings","Bindings",[25,238902,238904],{"className":1162,"code":238903,"language":1164,"meta":30,"style":30},"\u003Cscript>\n  let value = '';\n\u003C/script>\n\n\u003Cinput bind:value>\n\u003Cp>You typed: {value}\u003C/p>\n",[20,238905,238906,238914,238926,238934,238938,238949],{"__ignoreMap":30},[34,238907,238908,238910,238912],{"class":36,"line":37},[34,238909,815],{"class":181},[34,238911,115970],{"class":177},[34,238913,1248],{"class":181},[34,238915,238916,238918,238920,238922,238924],{"class":36,"line":44},[34,238917,63085],{"class":580},[34,238919,8271],{"class":181},[34,238921,1301],{"class":580},[34,238923,686],{"class":54},[34,238925,593],{"class":181},[34,238927,238928,238930,238932],{"class":36,"line":58},[34,238929,2089],{"class":181},[34,238931,115970],{"class":177},[34,238933,1248],{"class":181},[34,238935,238936],{"class":36,"line":65},[34,238937,62],{"emptyLinePlaceholder":61},[34,238939,238940,238942,238944,238947],{"class":36,"line":71},[34,238941,815],{"class":181},[34,238943,4600],{"class":177},[34,238945,238946],{"class":47}," bind:value",[34,238948,1248],{"class":181},[34,238950,238951,238953,238955,238958,238960],{"class":36,"line":77},[34,238952,815],{"class":181},[34,238954,16],{"class":177},[34,238956,238957],{"class":181},">You typed: {value}\u003C/",[34,238959,16],{"class":177},[34,238961,1248],{"class":181},[16,238963,238964],{},"// Two-way bindings simplify keeping your data and view in sync.",[11,238966,238968],{"id":238967},"reactivity-in-statements","Reactivity in Statements",[25,238970,238972],{"className":1162,"code":238971,"language":1164,"meta":30,"style":30},"\u003Cscript>\n  let count = 0;\n\n  $: double = count * 2;\n\u003C/script>\n\n\u003Cp>{count} doubled is {double}\u003C/p>\n",[20,238973,238974,238982,238994,238998,239016,239024,239028],{"__ignoreMap":30},[34,238975,238976,238978,238980],{"class":36,"line":37},[34,238977,815],{"class":181},[34,238979,115970],{"class":177},[34,238981,1248],{"class":181},[34,238983,238984,238986,238988,238990,238992],{"class":36,"line":44},[34,238985,63085],{"class":580},[34,238987,25163],{"class":181},[34,238989,1301],{"class":580},[34,238991,8070],{"class":50},[34,238993,593],{"class":181},[34,238995,238996],{"class":36,"line":58},[34,238997,62],{"emptyLinePlaceholder":61},[34,238999,239000,239003,239006,239008,239010,239012,239014],{"class":36,"line":65},[34,239001,239002],{"class":47},"  $",[34,239004,239005],{"class":181},": double ",[34,239007,1301],{"class":580},[34,239009,25163],{"class":181},[34,239011,4289],{"class":580},[34,239013,4292],{"class":50},[34,239015,593],{"class":181},[34,239017,239018,239020,239022],{"class":36,"line":71},[34,239019,2089],{"class":181},[34,239021,115970],{"class":177},[34,239023,1248],{"class":181},[34,239025,239026],{"class":36,"line":77},[34,239027,62],{"emptyLinePlaceholder":61},[34,239029,239030,239032,239034,239037,239039],{"class":36,"line":82},[34,239031,815],{"class":181},[34,239033,16],{"class":177},[34,239035,239036],{"class":181},">{count} doubled is {double}\u003C/",[34,239038,16],{"class":177},[34,239040,1248],{"class":181},[16,239042,239043,239044,239047],{},"// ",[20,239045,239046],{},"$:"," ensures an expression automatically re-runs when its dependencies change.",[11,239049,239051],{"id":239050},"component-props-and-nested-components","Component Props and Nested Components",[25,239053,239055],{"className":1162,"code":239054,"language":1164,"meta":30,"style":30},"\u003C!-- ChildComponent.svelte -->\n\u003Cscript>\n  export let prop;\n\u003C/script>\n\u003Cp>Prop: {prop}\u003C/p>\n\n\u003C!-- ParentComponent.svelte -->\n\u003Cscript>\n  import ChildComponent from './ChildComponent.svelte';\n\u003C/script>\n\n\u003CChildComponent prop=\"Hello\">\n",[20,239056,239057,239062,239070,239080,239088,239101,239105,239110,239118,239133,239141,239145],{"__ignoreMap":30},[34,239058,239059],{"class":36,"line":37},[34,239060,239061],{"class":40},"\u003C!-- ChildComponent.svelte -->\n",[34,239063,239064,239066,239068],{"class":36,"line":44},[34,239065,815],{"class":181},[34,239067,115970],{"class":177},[34,239069,1248],{"class":181},[34,239071,239072,239075,239077],{"class":36,"line":58},[34,239073,239074],{"class":580},"  export",[34,239076,216097],{"class":580},[34,239078,239079],{"class":181}," prop;\n",[34,239081,239082,239084,239086],{"class":36,"line":65},[34,239083,2089],{"class":181},[34,239085,115970],{"class":177},[34,239087,1248],{"class":181},[34,239089,239090,239092,239094,239097,239099],{"class":36,"line":71},[34,239091,815],{"class":181},[34,239093,16],{"class":177},[34,239095,239096],{"class":181},">Prop: {prop}\u003C/",[34,239098,16],{"class":177},[34,239100,1248],{"class":181},[34,239102,239103],{"class":36,"line":77},[34,239104,62],{"emptyLinePlaceholder":61},[34,239106,239107],{"class":36,"line":82},[34,239108,239109],{"class":40},"\u003C!-- ParentComponent.svelte -->\n",[34,239111,239112,239114,239116],{"class":36,"line":88},[34,239113,815],{"class":181},[34,239115,115970],{"class":177},[34,239117,1248],{"class":181},[34,239119,239120,239123,239126,239128,239131],{"class":36,"line":242},[34,239121,239122],{"class":580},"  import",[34,239124,239125],{"class":181}," ChildComponent ",[34,239127,587],{"class":580},[34,239129,239130],{"class":54}," './ChildComponent.svelte'",[34,239132,593],{"class":181},[34,239134,239135,239137,239139],{"class":36,"line":250},[34,239136,2089],{"class":181},[34,239138,115970],{"class":177},[34,239140,1248],{"class":181},[34,239142,239143],{"class":36,"line":263},[34,239144,62],{"emptyLinePlaceholder":61},[34,239146,239147,239149,239152,239155,239157,239159],{"class":36,"line":275},[34,239148,815],{"class":181},[34,239150,239151],{"class":24316},"ChildComponent",[34,239153,239154],{"class":47}," prop",[34,239156,1301],{"class":181},[34,239158,15564],{"class":54},[34,239160,1248],{"class":181},[16,239162,239043,239163,239165],{},[20,239164,652],{}," allows data to flow into components via props.",[11,239167,199217],{"id":199222},[25,239169,239171],{"className":1162,"code":239170,"language":1164,"meta":30,"style":30},"\u003Cscript>\n  let show = true;\n\u003C/script>\n\n{#if show}\n  \u003Cp>The block is visible\u003C/p>\n{:else}\n  \u003Cp>The block is hidden\u003C/p>\n{/if}\n",[20,239172,239173,239181,239194,239202,239206,239211,239224,239229,239242],{"__ignoreMap":30},[34,239174,239175,239177,239179],{"class":36,"line":37},[34,239176,815],{"class":181},[34,239178,115970],{"class":177},[34,239180,1248],{"class":181},[34,239182,239183,239185,239188,239190,239192],{"class":36,"line":44},[34,239184,63085],{"class":580},[34,239186,239187],{"class":181}," show ",[34,239189,1301],{"class":580},[34,239191,32945],{"class":50},[34,239193,593],{"class":181},[34,239195,239196,239198,239200],{"class":36,"line":58},[34,239197,2089],{"class":181},[34,239199,115970],{"class":177},[34,239201,1248],{"class":181},[34,239203,239204],{"class":36,"line":65},[34,239205,62],{"emptyLinePlaceholder":61},[34,239207,239208],{"class":36,"line":71},[34,239209,239210],{"class":181},"{#if show}\n",[34,239212,239213,239215,239217,239220,239222],{"class":36,"line":77},[34,239214,1181],{"class":181},[34,239216,16],{"class":177},[34,239218,239219],{"class":181},">The block is visible\u003C/",[34,239221,16],{"class":177},[34,239223,1248],{"class":181},[34,239225,239226],{"class":36,"line":82},[34,239227,239228],{"class":181},"{:else}\n",[34,239230,239231,239233,239235,239238,239240],{"class":36,"line":88},[34,239232,1181],{"class":181},[34,239234,16],{"class":177},[34,239236,239237],{"class":181},">The block is hidden\u003C/",[34,239239,16],{"class":177},[34,239241,1248],{"class":181},[34,239243,239244],{"class":36,"line":242},[34,239245,86772],{"class":181},[16,239247,239043,239248,239251],{},[20,239249,239250],{},"{#if}"," blocks work like conditional statements within templates.",[11,239253,11769],{"id":11774},[25,239255,239257],{"className":1162,"code":239256,"language":1164,"meta":30,"style":30},"\u003Cscript>\n  let items = ['One', 'Two', 'Three'];\n\u003C/script>\n\n\u003Cul>\n  {#each items as item}\n    \u003Cli>{item}\u003C/li>\n  {/each}\n\u003C/ul>\n",[20,239258,239259,239267,239292,239300,239304,239312,239317,239330,239334],{"__ignoreMap":30},[34,239260,239261,239263,239265],{"class":36,"line":37},[34,239262,815],{"class":181},[34,239264,115970],{"class":177},[34,239266,1248],{"class":181},[34,239268,239269,239271,239273,239275,239277,239280,239282,239285,239287,239290],{"class":36,"line":44},[34,239270,63085],{"class":580},[34,239272,77218],{"class":181},[34,239274,1301],{"class":580},[34,239276,8315],{"class":181},[34,239278,239279],{"class":54},"'One'",[34,239281,1798],{"class":181},[34,239283,239284],{"class":54},"'Two'",[34,239286,1798],{"class":181},[34,239288,239289],{"class":54},"'Three'",[34,239291,3415],{"class":181},[34,239293,239294,239296,239298],{"class":36,"line":58},[34,239295,2089],{"class":181},[34,239297,115970],{"class":177},[34,239299,1248],{"class":181},[34,239301,239302],{"class":36,"line":65},[34,239303,62],{"emptyLinePlaceholder":61},[34,239305,239306,239308,239310],{"class":36,"line":71},[34,239307,815],{"class":181},[34,239309,309],{"class":177},[34,239311,1248],{"class":181},[34,239313,239314],{"class":36,"line":77},[34,239315,239316],{"class":181},"  {#each items as item}\n",[34,239318,239319,239321,239323,239326,239328],{"class":36,"line":82},[34,239320,1294],{"class":181},[34,239322,312],{"class":177},[34,239324,239325],{"class":181},">{item}\u003C/",[34,239327,312],{"class":177},[34,239329,1248],{"class":181},[34,239331,239332],{"class":36,"line":88},[34,239333,87043],{"class":181},[34,239335,239336,239338,239340],{"class":36,"line":242},[34,239337,2089],{"class":181},[34,239339,309],{"class":177},[34,239341,1248],{"class":181},[16,239343,239344],{},"// Loops dynamically render elements based on an array.",[11,239346,199989],{"id":199994},[25,239348,239350],{"className":1162,"code":239349,"language":1164,"meta":30,"style":30},"\u003Cscript>\n  function handleClick() {\n    alert('Clicked!');\n  }\n\u003C/script>\n\n\u003Cbutton on:click={handleClick}>Click me\u003C/button>\n",[20,239351,239352,239360,239368,239380,239384,239392,239396],{"__ignoreMap":30},[34,239353,239354,239356,239358],{"class":36,"line":37},[34,239355,815],{"class":181},[34,239357,115970],{"class":177},[34,239359,1248],{"class":181},[34,239361,239362,239364,239366],{"class":36,"line":44},[34,239363,68507],{"class":580},[34,239365,200137],{"class":47},[34,239367,836],{"class":181},[34,239369,239370,239373,239375,239378],{"class":36,"line":58},[34,239371,239372],{"class":47},"    alert",[34,239374,1607],{"class":181},[34,239376,239377],{"class":54},"'Clicked!'",[34,239379,1586],{"class":181},[34,239381,239382],{"class":36,"line":65},[34,239383,857],{"class":181},[34,239385,239386,239388,239390],{"class":36,"line":71},[34,239387,2089],{"class":181},[34,239389,115970],{"class":177},[34,239391,1248],{"class":181},[34,239393,239394],{"class":36,"line":77},[34,239395,62],{"emptyLinePlaceholder":61},[34,239397,239398,239400,239402,239404,239406,239409,239411,239413],{"class":36,"line":82},[34,239399,815],{"class":181},[34,239401,4509],{"class":177},[34,239403,238878],{"class":47},[34,239405,1301],{"class":181},[34,239407,239408],{"class":54},"{handleClick}",[34,239410,46520],{"class":181},[34,239412,4509],{"class":177},[34,239414,1248],{"class":181},[16,239416,239043,239417,239420],{},[20,239418,239419],{},"on:event"," attaches event listeners to elements.",[11,239422,239424],{"id":239423},"stores","Stores",[25,239426,239428],{"className":1162,"code":239427,"language":1164,"meta":30,"style":30},"\u003Cscript>\n  import { writable } from 'svelte/store';\n\n  const count = writable(0);\n\u003C/script>\n\n\u003Cbutton on:click={() => count.update(n => n + 1)}>Increment\u003C/button>\n\u003Cp>{$count}\u003C/p>\n",[20,239429,239430,239438,239452,239456,239473,239481,239485,239507],{"__ignoreMap":30},[34,239431,239432,239434,239436],{"class":36,"line":37},[34,239433,815],{"class":181},[34,239435,115970],{"class":177},[34,239437,1248],{"class":181},[34,239439,239440,239442,239445,239447,239450],{"class":36,"line":44},[34,239441,239122],{"class":580},[34,239443,239444],{"class":181}," { writable } ",[34,239446,587],{"class":580},[34,239448,239449],{"class":54}," 'svelte/store'",[34,239451,593],{"class":181},[34,239453,239454],{"class":36,"line":58},[34,239455,62],{"emptyLinePlaceholder":61},[34,239457,239458,239460,239462,239464,239467,239469,239471],{"class":36,"line":65},[34,239459,17415],{"class":580},[34,239461,161661],{"class":50},[34,239463,683],{"class":580},[34,239465,239466],{"class":47}," writable",[34,239468,1607],{"class":181},[34,239470,2773],{"class":50},[34,239472,1586],{"class":181},[34,239474,239475,239477,239479],{"class":36,"line":71},[34,239476,2089],{"class":181},[34,239478,115970],{"class":177},[34,239480,1248],{"class":181},[34,239482,239483],{"class":36,"line":77},[34,239484,62],{"emptyLinePlaceholder":61},[34,239486,239487,239489,239491,239493,239495,239498,239500,239503,239505],{"class":36,"line":82},[34,239488,815],{"class":181},[34,239490,4509],{"class":177},[34,239492,238878],{"class":47},[34,239494,1301],{"class":181},[34,239496,239497],{"class":54},"{()",[34,239499,683],{"class":24316},[34,239501,239502],{"class":181},"> count.update(n => n + 1)}>Increment\u003C/",[34,239504,4509],{"class":177},[34,239506,1248],{"class":181},[34,239508,239509,239511,239513,239516,239518],{"class":36,"line":88},[34,239510,815],{"class":181},[34,239512,16],{"class":177},[34,239514,239515],{"class":181},">{$count}\u003C/",[34,239517,16],{"class":177},[34,239519,1248],{"class":181},[16,239521,239522],{},"// Stores manage shared state outside of components.",[388,239524,239525],{},"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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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":30,"searchDepth":44,"depth":44,"links":239527},[239528,239529,239530,239531,239532,239533,239534,239535,239536,239537],{"id":13533,"depth":44,"text":13534},{"id":22156,"depth":44,"text":22151},{"id":238804,"depth":44,"text":238805},{"id":238899,"depth":44,"text":238900},{"id":238967,"depth":44,"text":238968},{"id":239050,"depth":44,"text":239051},{"id":199222,"depth":44,"text":199217},{"id":11774,"depth":44,"text":11769},{"id":199994,"depth":44,"text":199989},{"id":239423,"depth":44,"text":239424},"Key syntax, features, and patterns for building reactive web applications with Svelte.",{},"/svelte/overview",{"title":86177,"description":239538},"svelte/overview",[86186,982,219152],"Cn5a4DBfhfMeQNQbPwtiypoqZABJv_ihejT_og2xfg4",{"id":239546,"title":239547,"body":239548,"date":402,"description":239809,"extension":404,"meta":239810,"navigation":61,"order":37,"path":239811,"seo":239812,"stem":239813,"subject":239814,"tags":239815,"__hash__":239816},"topics/sveltekit/overview.md","SvelteKit",{"type":8,"value":239549,"toc":239801},[239550,239552,239555,239559,239597,239600,239602,239608,239626,239629,239633,239639,239713,239716,239718,239724,239798],[11,239551,6035],{"id":6040},[16,239553,239554],{},"SvelteKit is a framework for building modern web applications with Svelte. It includes routing, server-rendering, and hosting integrations.",[102,239556,239558],{"id":239557},"example-hello-world","Example: Hello World",[25,239560,239562],{"className":13845,"code":239561,"language":8606,"meta":30,"style":30},"\u003Cscript>\n    let name = 'world';\n\u003C/script>\n\u003Ch1>Hello {name}!\u003C/h1>\n",[20,239563,239564,239572,239577,239585],{"__ignoreMap":30},[34,239565,239566,239568,239570],{"class":36,"line":37},[34,239567,815],{"class":181},[34,239569,115970],{"class":177},[34,239571,1248],{"class":181},[34,239573,239574],{"class":36,"line":44},[34,239575,239576],{"class":181},"    let name = 'world';\n",[34,239578,239579,239581,239583],{"class":36,"line":58},[34,239580,2089],{"class":181},[34,239582,115970],{"class":177},[34,239584,1248],{"class":181},[34,239586,239587,239589,239591,239593,239595],{"class":36,"line":65},[34,239588,815],{"class":181},[34,239590,8535],{"class":177},[34,239592,238791],{"class":181},[34,239594,8535],{"class":177},[34,239596,1248],{"class":181},[16,239598,239599],{},"// This example demonstrates a simple Svelte app to get you started.",[11,239601,2614],{"id":3256},[16,239603,239604,239605,165],{},"Define routes using the filesystem. Create a file ",[20,239606,239607],{},"src/routes/hello.svelte",[25,239609,239611],{"className":1162,"code":239610,"language":1164,"meta":30,"style":30},"\u003Ch1>Welcome to SvelteKit!\u003C/h1>\n",[20,239612,239613],{"__ignoreMap":30},[34,239614,239615,239617,239619,239622,239624],{"class":36,"line":37},[34,239616,815],{"class":181},[34,239618,8535],{"class":177},[34,239620,239621],{"class":181},">Welcome to SvelteKit!\u003C/",[34,239623,8535],{"class":177},[34,239625,1248],{"class":181},[16,239627,239628],{},"// SvelteKit uses a file-based routing system.",[11,239630,239632],{"id":239631},"load-function","Load Function",[16,239634,18,239635,239638],{},[20,239636,239637],{},"load"," function allows you to fetch data and pass it to your component.",[25,239640,239642],{"className":13845,"code":239641,"language":8606,"meta":30,"style":30},"export async function load({ params }) {\n    const data = await fetch(`/api/${params.id}`).then((res) => res.json());\n    return { props: { data }};\n}\n",[20,239643,239644,239660,239702,239709],{"__ignoreMap":30},[34,239645,239646,239648,239650,239652,239654,239656,239658],{"class":36,"line":37},[34,239647,652],{"class":580},[34,239649,33813],{"class":580},[34,239651,8037],{"class":580},[34,239653,8276],{"class":47},[34,239655,13858],{"class":181},[34,239657,3635],{"class":675},[34,239659,13879],{"class":181},[34,239661,239662,239664,239666,239668,239670,239672,239674,239676,239678,239680,239682,239684,239686,239688,239690,239692,239694,239696,239698,239700],{"class":36,"line":44},[34,239663,1632],{"class":580},[34,239665,14780],{"class":50},[34,239667,683],{"class":580},[34,239669,14763],{"class":580},[34,239671,14766],{"class":47},[34,239673,1607],{"class":181},[34,239675,218565],{"class":54},[34,239677,3635],{"class":181},[34,239679,151],{"class":54},[34,239681,3885],{"class":181},[34,239683,3925],{"class":54},[34,239685,1876],{"class":181},[34,239687,3380],{"class":47},[34,239689,8348],{"class":181},[34,239691,75511],{"class":675},[34,239693,4817],{"class":181},[34,239695,3361],{"class":580},[34,239697,75763],{"class":181},[34,239699,14790],{"class":47},[34,239701,4343],{"class":181},[34,239703,239704,239706],{"class":36,"line":58},[34,239705,1564],{"class":580},[34,239707,239708],{"class":181}," { props: { data }};\n",[34,239710,239711],{"class":36,"line":65},[34,239712,693],{"class":181},[16,239714,239715],{},"// A basic example of server-side data fetching in SvelteKit.",[11,239717,116015],{"id":116020},[16,239719,239720,239721,239723],{},"Forms use the ",[20,239722,4617],{}," tag with actions:",[25,239725,239727],{"className":1162,"code":239726,"language":1164,"meta":30,"style":30},"\u003Cform method=\"POST\" action=\"/submit\">\n    \u003Cinput type=\"text\" name=\"username\" required />\n    \u003Cbutton type=\"submit\">Submit\u003C/button>\n\u003C/form>\n",[20,239728,239729,239749,239772,239790],{"__ignoreMap":30},[34,239730,239731,239733,239735,239737,239739,239741,239743,239745,239747],{"class":36,"line":37},[34,239732,815],{"class":181},[34,239734,4617],{"class":177},[34,239736,116042],{"class":47},[34,239738,1301],{"class":181},[34,239740,14828],{"class":54},[34,239742,116034],{"class":47},[34,239744,1301],{"class":181},[34,239746,116039],{"class":54},[34,239748,1248],{"class":181},[34,239750,239751,239753,239755,239757,239759,239761,239763,239765,239768,239770],{"class":36,"line":44},[34,239752,1294],{"class":181},[34,239754,4600],{"class":177},[34,239756,62326],{"class":47},[34,239758,1301],{"class":181},[34,239760,41329],{"class":54},[34,239762,12323],{"class":47},[34,239764,1301],{"class":181},[34,239766,239767],{"class":54},"\"username\"",[34,239769,37444],{"class":47},[34,239771,1187],{"class":181},[34,239773,239774,239776,239778,239780,239782,239784,239786,239788],{"class":36,"line":58},[34,239775,1294],{"class":181},[34,239777,4509],{"class":177},[34,239779,62326],{"class":47},[34,239781,1301],{"class":181},[34,239783,74790],{"class":54},[34,239785,116812],{"class":181},[34,239787,4509],{"class":177},[34,239789,1248],{"class":181},[34,239791,239792,239794,239796],{"class":36,"line":65},[34,239793,2089],{"class":181},[34,239795,4617],{"class":177},[34,239797,1248],{"class":181},[388,239799,239800],{},"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 .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 .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}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":30,"searchDepth":44,"depth":44,"links":239802},[239803,239806,239807,239808],{"id":6040,"depth":44,"text":6035,"children":239804},[239805],{"id":239557,"depth":58,"text":239558},{"id":3256,"depth":44,"text":2614},{"id":239631,"depth":44,"text":239632},{"id":116020,"depth":44,"text":116015},"Key syntax and features for building modern web applications using SvelteKit.",{},"/sveltekit/overview",{"title":239547,"description":239809},"sveltekit/overview","sveltekit",[239814,86186,38615,982],"DIqTYmDXUlvtWJOUFPUzovJ8SK1AsIgKshBV-X6VHu8",{"id":239818,"title":183237,"body":239819,"date":402,"description":240218,"extension":404,"meta":240219,"navigation":61,"order":700,"path":240220,"seo":240221,"stem":240222,"subject":239827,"tags":240223,"__hash__":240225},"topics/swift/array-operations.md",{"type":8,"value":239820,"toc":240215},[239821,239823,240212],[11,239822,183237],{"id":183242},[25,239824,239828],{"className":239825,"code":239826,"language":239827,"meta":30,"style":30},"language-swift shiki shiki-themes github-light github-dark","var numbers = [1, 2, 3, 4, 5]\n\n// Transformation\nlet doubled = numbers.map { $0 * 2 }           // [2, 4, 6, 8, 10]\nlet strings = numbers.map { String($0) }       // [\"1\", \"2\", \"3\", \"4\", \"5\"]\n\n// Filtering\nlet evens = numbers.filter { $0 % 2 == 0 }     // [2, 4]\nlet odds = numbers.filter { $0 % 2 != 0 }      // [1, 3, 5]\n\n// Reducing\nlet sum = numbers.reduce(0, +)                 // 15\nlet product = numbers.reduce(1, *)             // 120\n\n// Sorting\nlet sorted = numbers.sorted()                  // Ascending\nlet reversed = numbers.sorted { $0 > $1 }      // Descending\n\n// Finding\nlet firstEven = numbers.first { $0 % 2 == 0 }  // Optional(2)\nlet containsFive = numbers.contains(5)         // true\n\n// Combining\nlet combined = numbers.compactMap { $0 % 2 == 0 ? $0 : nil }  // [2, 4]\n","swift",[20,239829,239830,239860,239864,239869,239895,239922,239926,239930,239961,239992,239996,240001,240026,240052,240056,240060,240078,240105,240109,240113,240143,240164,240168,240173],{"__ignoreMap":30},[34,239831,239832,239834,239836,239838,239840,239842,239844,239846,239848,239850,239852,239854,239856,239858],{"class":36,"line":37},[34,239833,34404],{"class":580},[34,239835,125036],{"class":181},[34,239837,1301],{"class":580},[34,239839,8315],{"class":181},[34,239841,8318],{"class":50},[34,239843,1798],{"class":181},[34,239845,8324],{"class":50},[34,239847,1798],{"class":181},[34,239849,3162],{"class":50},[34,239851,1798],{"class":181},[34,239853,18010],{"class":50},[34,239855,1798],{"class":181},[34,239857,2778],{"class":50},[34,239859,924],{"class":181},[34,239861,239862],{"class":36,"line":44},[34,239863,62],{"emptyLinePlaceholder":61},[34,239865,239866],{"class":36,"line":58},[34,239867,239868],{"class":40},"// Transformation\n",[34,239870,239871,239873,239875,239877,239879,239881,239883,239885,239887,239889,239892],{"class":36,"line":65},[34,239872,8268],{"class":580},[34,239874,136107],{"class":181},[34,239876,1301],{"class":580},[34,239878,36423],{"class":181},[34,239880,61180],{"class":50},[34,239882,30251],{"class":181},[34,239884,13463],{"class":50},[34,239886,18083],{"class":580},[34,239888,4292],{"class":50},[34,239890,239891],{"class":181}," }           ",[34,239893,239894],{"class":40},"// [2, 4, 6, 8, 10]\n",[34,239896,239897,239899,239902,239904,239906,239908,239910,239912,239914,239916,239919],{"class":36,"line":71},[34,239898,8268],{"class":580},[34,239900,239901],{"class":181}," strings ",[34,239903,1301],{"class":580},[34,239905,36423],{"class":181},[34,239907,61180],{"class":50},[34,239909,30251],{"class":181},[34,239911,51427],{"class":50},[34,239913,1607],{"class":181},[34,239915,13463],{"class":50},[34,239917,239918],{"class":181},") }       ",[34,239920,239921],{"class":40},"// [\"1\", \"2\", \"3\", \"4\", \"5\"]\n",[34,239923,239924],{"class":36,"line":77},[34,239925,62],{"emptyLinePlaceholder":61},[34,239927,239928],{"class":36,"line":82},[34,239929,133862],{"class":40},[34,239931,239932,239934,239937,239939,239941,239943,239945,239947,239949,239951,239953,239955,239958],{"class":36,"line":88},[34,239933,8268],{"class":580},[34,239935,239936],{"class":181}," evens ",[34,239938,1301],{"class":580},[34,239940,36423],{"class":181},[34,239942,32125],{"class":50},[34,239944,30251],{"class":181},[34,239946,13463],{"class":50},[34,239948,22788],{"class":580},[34,239950,4292],{"class":50},[34,239952,10946],{"class":580},[34,239954,8070],{"class":50},[34,239956,239957],{"class":181}," }     ",[34,239959,239960],{"class":40},"// [2, 4]\n",[34,239962,239963,239965,239968,239970,239972,239974,239976,239978,239980,239982,239984,239986,239989],{"class":36,"line":242},[34,239964,8268],{"class":580},[34,239966,239967],{"class":181}," odds ",[34,239969,1301],{"class":580},[34,239971,36423],{"class":181},[34,239973,32125],{"class":50},[34,239975,30251],{"class":181},[34,239977,13463],{"class":50},[34,239979,22788],{"class":580},[34,239981,4292],{"class":50},[34,239983,10507],{"class":580},[34,239985,8070],{"class":50},[34,239987,239988],{"class":181}," }      ",[34,239990,239991],{"class":40},"// [1, 3, 5]\n",[34,239993,239994],{"class":36,"line":250},[34,239995,62],{"emptyLinePlaceholder":61},[34,239997,239998],{"class":36,"line":263},[34,239999,240000],{"class":40},"// Reducing\n",[34,240002,240003,240005,240007,240009,240011,240013,240015,240017,240019,240021,240023],{"class":36,"line":275},[34,240004,8268],{"class":580},[34,240006,8337],{"class":181},[34,240008,1301],{"class":580},[34,240010,36423],{"class":181},[34,240012,8345],{"class":50},[34,240014,1607],{"class":181},[34,240016,2773],{"class":50},[34,240018,1798],{"class":181},[34,240020,2940],{"class":580},[34,240022,76093],{"class":181},[34,240024,240025],{"class":40},"// 15\n",[34,240027,240028,240030,240033,240035,240037,240039,240041,240043,240045,240047,240049],{"class":36,"line":700},[34,240029,8268],{"class":580},[34,240031,240032],{"class":181}," product ",[34,240034,1301],{"class":580},[34,240036,36423],{"class":181},[34,240038,8345],{"class":50},[34,240040,1607],{"class":181},[34,240042,8318],{"class":50},[34,240044,1798],{"class":181},[34,240046,4289],{"class":580},[34,240048,104305],{"class":181},[34,240050,240051],{"class":40},"// 120\n",[34,240053,240054],{"class":36,"line":706},[34,240055,62],{"emptyLinePlaceholder":61},[34,240057,240058],{"class":36,"line":715},[34,240059,134121],{"class":40},[34,240061,240062,240064,240067,240069,240071,240073,240075],{"class":36,"line":725},[34,240063,8268],{"class":580},[34,240065,240066],{"class":181}," sorted ",[34,240068,1301],{"class":580},[34,240070,36423],{"class":181},[34,240072,65595],{"class":50},[34,240074,134462],{"class":181},[34,240076,240077],{"class":40},"// Ascending\n",[34,240079,240080,240082,240085,240087,240089,240091,240093,240095,240097,240100,240102],{"class":36,"line":734},[34,240081,8268],{"class":580},[34,240083,240084],{"class":181}," reversed ",[34,240086,1301],{"class":580},[34,240088,36423],{"class":181},[34,240090,65595],{"class":50},[34,240092,30251],{"class":181},[34,240094,13463],{"class":50},[34,240096,9009],{"class":580},[34,240098,240099],{"class":50}," $1",[34,240101,239988],{"class":181},[34,240103,240104],{"class":40},"// Descending\n",[34,240106,240107],{"class":36,"line":742},[34,240108,62],{"emptyLinePlaceholder":61},[34,240110,240111],{"class":36,"line":748},[34,240112,134041],{"class":40},[34,240114,240115,240117,240120,240122,240124,240126,240128,240130,240132,240134,240136,240138,240140],{"class":36,"line":754},[34,240116,8268],{"class":580},[34,240118,240119],{"class":181}," firstEven ",[34,240121,1301],{"class":580},[34,240123,36423],{"class":181},[34,240125,126899],{"class":50},[34,240127,30251],{"class":181},[34,240129,13463],{"class":50},[34,240131,22788],{"class":580},[34,240133,4292],{"class":50},[34,240135,10946],{"class":580},[34,240137,8070],{"class":50},[34,240139,76356],{"class":181},[34,240141,240142],{"class":40},"// Optional(2)\n",[34,240144,240145,240147,240150,240152,240154,240156,240158,240160,240162],{"class":36,"line":759},[34,240146,8268],{"class":580},[34,240148,240149],{"class":181}," containsFive ",[34,240151,1301],{"class":580},[34,240153,36423],{"class":181},[34,240155,51780],{"class":50},[34,240157,1607],{"class":181},[34,240159,2778],{"class":50},[34,240161,152329],{"class":181},[34,240163,33492],{"class":40},[34,240165,240166],{"class":36,"line":771},[34,240167,62],{"emptyLinePlaceholder":61},[34,240169,240170],{"class":36,"line":794},[34,240171,240172],{"class":40},"// Combining\n",[34,240174,240175,240177,240180,240182,240184,240187,240189,240191,240193,240195,240197,240199,240201,240204,240206,240208,240210],{"class":36,"line":824},[34,240176,8268],{"class":580},[34,240178,240179],{"class":181}," combined ",[34,240181,1301],{"class":580},[34,240183,36423],{"class":181},[34,240185,240186],{"class":50},"compactMap",[34,240188,30251],{"class":181},[34,240190,13463],{"class":50},[34,240192,22788],{"class":580},[34,240194,4292],{"class":50},[34,240196,10946],{"class":580},[34,240198,8070],{"class":50},[34,240200,131598],{"class":580},[34,240202,240203],{"class":50}," $0",[34,240205,64223],{"class":580},[34,240207,105194],{"class":50},[34,240209,76356],{"class":181},[34,240211,239960],{"class":40},[388,240213,240214],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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":30,"searchDepth":44,"depth":44,"links":240216},[240217],{"id":183242,"depth":44,"text":183237},"Array Operations in Swift.",{},"/swift/array-operations",{"title":183237,"description":240218},"swift/array-operations",[239827,240224,53545,235383],"ios","kWPMSGazXVU26wA0HwXhh1BXx4ul0atJhahYwm2OEWg",{"id":240227,"title":240228,"body":240229,"date":402,"description":240493,"extension":404,"meta":240494,"navigation":61,"order":242,"path":240495,"seo":240496,"stem":240497,"subject":239827,"tags":240498,"__hash__":240499},"topics/swift/closures.md","Closures",{"type":8,"value":240230,"toc":240490},[240231,240234,240488],[11,240232,240228],{"id":240233},"closures",[25,240235,240237],{"className":239825,"code":240236,"language":239827,"meta":30,"style":30},"// Closure expression\nlet multiply = { (a: Int, b: Int) -> Int in\n    return a * b\n}\nmultiply(3, 4)                  // 12\n\n// Trailing closure syntax\nlet numbers = [1, 2, 3, 4, 5]\nlet squared = numbers.map { $0 * $0 }  // [1, 4, 9, 16, 25]\n\n// Capturing values\nfunc makeIncrementer(increment: Int) -> () -> Int {\n    var total = 0\n    return {\n        total += increment\n        return total\n    }\n}\nlet incrementByTwo = makeIncrementer(increment: 2)\nincrementByTwo()                // 2\nincrementByTwo()                // 4\n",[20,240238,240239,240244,240278,240288,240292,240311,240315,240320,240350,240375,240379,240384,240411,240421,240427,240436,240442,240446,240450,240471,240480],{"__ignoreMap":30},[34,240240,240241],{"class":36,"line":37},[34,240242,240243],{"class":40},"// Closure expression\n",[34,240245,240246,240248,240250,240252,240255,240257,240259,240261,240263,240265,240267,240269,240271,240273,240275],{"class":36,"line":44},[34,240247,8268],{"class":580},[34,240249,213842],{"class":181},[34,240251,1301],{"class":580},[34,240253,240254],{"class":181}," { (",[34,240256,145],{"class":50},[34,240258,182],{"class":181},[34,240260,133344],{"class":50},[34,240262,1798],{"class":181},[34,240264,8355],{"class":50},[34,240266,182],{"class":181},[34,240268,133344],{"class":50},[34,240270,4817],{"class":181},[34,240272,24863],{"class":580},[34,240274,135825],{"class":50},[34,240276,240277],{"class":580}," in\n",[34,240279,240280,240282,240284,240286],{"class":36,"line":58},[34,240281,1564],{"class":580},[34,240283,8065],{"class":181},[34,240285,4289],{"class":580},[34,240287,87475],{"class":181},[34,240289,240290],{"class":36,"line":65},[34,240291,693],{"class":181},[34,240293,240294,240297,240299,240301,240303,240305,240308],{"class":36,"line":71},[34,240295,240296],{"class":50},"multiply",[34,240298,1607],{"class":181},[34,240300,3162],{"class":50},[34,240302,1798],{"class":181},[34,240304,18010],{"class":50},[34,240306,240307],{"class":181},")                  ",[34,240309,240310],{"class":40},"// 12\n",[34,240312,240313],{"class":36,"line":77},[34,240314,62],{"emptyLinePlaceholder":61},[34,240316,240317],{"class":36,"line":82},[34,240318,240319],{"class":40},"// Trailing closure syntax\n",[34,240321,240322,240324,240326,240328,240330,240332,240334,240336,240338,240340,240342,240344,240346,240348],{"class":36,"line":88},[34,240323,8268],{"class":580},[34,240325,125036],{"class":181},[34,240327,1301],{"class":580},[34,240329,8315],{"class":181},[34,240331,8318],{"class":50},[34,240333,1798],{"class":181},[34,240335,8324],{"class":50},[34,240337,1798],{"class":181},[34,240339,3162],{"class":50},[34,240341,1798],{"class":181},[34,240343,18010],{"class":50},[34,240345,1798],{"class":181},[34,240347,2778],{"class":50},[34,240349,924],{"class":181},[34,240351,240352,240354,240356,240358,240360,240362,240364,240366,240368,240370,240372],{"class":36,"line":242},[34,240353,8268],{"class":580},[34,240355,87597],{"class":181},[34,240357,1301],{"class":580},[34,240359,36423],{"class":181},[34,240361,61180],{"class":50},[34,240363,30251],{"class":181},[34,240365,13463],{"class":50},[34,240367,18083],{"class":580},[34,240369,240203],{"class":50},[34,240371,76356],{"class":181},[34,240373,240374],{"class":40},"// [1, 4, 9, 16, 25]\n",[34,240376,240377],{"class":36,"line":250},[34,240378,62],{"emptyLinePlaceholder":61},[34,240380,240381],{"class":36,"line":263},[34,240382,240383],{"class":40},"// Capturing values\n",[34,240385,240386,240388,240391,240393,240395,240397,240399,240401,240403,240405,240407,240409],{"class":36,"line":275},[34,240387,105159],{"class":580},[34,240389,240390],{"class":47}," makeIncrementer",[34,240392,1607],{"class":181},[34,240394,108042],{"class":47},[34,240396,182],{"class":181},[34,240398,133344],{"class":50},[34,240400,4817],{"class":181},[34,240402,24863],{"class":580},[34,240404,17406],{"class":181},[34,240406,24863],{"class":580},[34,240408,135825],{"class":50},[34,240410,661],{"class":181},[34,240412,240413,240415,240417,240419],{"class":36,"line":700},[34,240414,33908],{"class":580},[34,240416,49648],{"class":181},[34,240418,1301],{"class":580},[34,240420,36394],{"class":50},[34,240422,240423,240425],{"class":36,"line":706},[34,240424,1564],{"class":580},[34,240426,661],{"class":181},[34,240428,240429,240431,240433],{"class":36,"line":715},[34,240430,105975],{"class":181},[34,240432,31462],{"class":580},[34,240434,240435],{"class":181}," increment\n",[34,240437,240438,240440],{"class":36,"line":725},[34,240439,13895],{"class":580},[34,240441,49663],{"class":181},[34,240443,240444],{"class":36,"line":734},[34,240445,3229],{"class":181},[34,240447,240448],{"class":36,"line":742},[34,240449,693],{"class":181},[34,240451,240452,240454,240457,240459,240461,240463,240465,240467,240469],{"class":36,"line":748},[34,240453,8268],{"class":580},[34,240455,240456],{"class":181}," incrementByTwo ",[34,240458,1301],{"class":580},[34,240460,240390],{"class":50},[34,240462,1607],{"class":181},[34,240464,108042],{"class":50},[34,240466,182],{"class":181},[34,240468,8324],{"class":50},[34,240470,3372],{"class":181},[34,240472,240473,240476,240478],{"class":36,"line":754},[34,240474,240475],{"class":50},"incrementByTwo",[34,240477,214658],{"class":181},[34,240479,220764],{"class":40},[34,240481,240482,240484,240486],{"class":36,"line":759},[34,240483,240475],{"class":50},[34,240485,214658],{"class":181},[34,240487,220635],{"class":40},[388,240489,103816],{},{"title":30,"searchDepth":44,"depth":44,"links":240491},[240492],{"id":240233,"depth":44,"text":240228},"Closures in Swift.",{},"/swift/closures",{"title":240228,"description":240493},"swift/closures",[239827,240224,53545,235383],"S238jmTkm4_Xh0CP4Fa-uSnDe1JhiNnM53LO7HXeF4E",{"id":240501,"title":83157,"body":240502,"date":402,"description":240819,"extension":404,"meta":240820,"navigation":61,"order":77,"path":240821,"seo":240822,"stem":240823,"subject":239827,"tags":240824,"__hash__":240825},"topics/swift/collections.md",{"type":8,"value":240503,"toc":240816},[240504,240506,240814],[11,240505,83157],{"id":83156},[25,240507,240509],{"className":239825,"code":240508,"language":239827,"meta":30,"style":30},"// Arrays (ordered)\nvar fruits = [\"apple\", \"banana\", \"cherry\"]\nfruits.append(\"date\")           // Add element\nfruits[0]                       // Access by index\nfruits.count                    // Number of elements\nfruits.isEmpty                  // Check if empty\n\n// Array operations\nlet doubled = fruits.map { $0.uppercased() }\nlet filtered = fruits.filter { $0.hasPrefix(\"a\") }\nlet first = fruits.first        // Optional first element\n\n// Dictionaries (key-value pairs)\nvar person = [\n    \"name\": \"Alice\",\n    \"city\": \"NYC\"\n]\nperson[\"name\"]                  // Returns Optional(\"Alice\")\nperson[\"email\"] = \"a@example.com\"  // Add/update\nperson[\"city\"] = nil            // Remove key\n\n// Sets (unique, unordered)\nvar numbers: Set = [1, 2, 3, 3] // Duplicates removed\nnumbers.insert(4)               // Add element\nnumbers.contains(2)             // true\n",[20,240510,240511,240516,240538,240553,240565,240574,240583,240587,240592,240616,240643,240658,240662,240667,240677,240687,240697,240701,240713,240729,240744,240748,240753,240786,240800],{"__ignoreMap":30},[34,240512,240513],{"class":36,"line":37},[34,240514,240515],{"class":40},"// Arrays (ordered)\n",[34,240517,240518,240520,240522,240524,240526,240528,240530,240532,240534,240536],{"class":36,"line":44},[34,240519,34404],{"class":580},[34,240521,144236],{"class":181},[34,240523,1301],{"class":580},[34,240525,8315],{"class":181},[34,240527,10088],{"class":54},[34,240529,1798],{"class":181},[34,240531,144247],{"class":54},[34,240533,1798],{"class":181},[34,240535,144252],{"class":54},[34,240537,924],{"class":181},[34,240539,240540,240542,240544,240546,240548,240550],{"class":36,"line":58},[34,240541,207865],{"class":181},[34,240543,32543],{"class":50},[34,240545,1607],{"class":181},[34,240547,116277],{"class":54},[34,240549,75985],{"class":181},[34,240551,240552],{"class":40},"// Add element\n",[34,240554,240555,240557,240559,240562],{"class":36,"line":65},[34,240556,10154],{"class":181},[34,240558,2773],{"class":50},[34,240560,240561],{"class":181},"]                       ",[34,240563,240564],{"class":40},"// Access by index\n",[34,240566,240567,240569,240571],{"class":36,"line":71},[34,240568,207865],{"class":181},[34,240570,4284],{"class":50},[34,240572,240573],{"class":40},"                    // Number of elements\n",[34,240575,240576,240578,240580],{"class":36,"line":77},[34,240577,207865],{"class":181},[34,240579,51729],{"class":50},[34,240581,240582],{"class":40},"                  // Check if empty\n",[34,240584,240585],{"class":36,"line":82},[34,240586,62],{"emptyLinePlaceholder":61},[34,240588,240589],{"class":36,"line":88},[34,240590,240591],{"class":40},"// Array operations\n",[34,240593,240594,240596,240598,240600,240603,240605,240607,240609,240611,240614],{"class":36,"line":242},[34,240595,8268],{"class":580},[34,240597,136107],{"class":181},[34,240599,1301],{"class":580},[34,240601,240602],{"class":181}," fruits.",[34,240604,61180],{"class":50},[34,240606,30251],{"class":181},[34,240608,13463],{"class":50},[34,240610,151],{"class":181},[34,240612,240613],{"class":50},"uppercased",[34,240615,133832],{"class":181},[34,240617,240618,240620,240622,240624,240626,240628,240630,240632,240634,240637,240639,240641],{"class":36,"line":250},[34,240619,8268],{"class":580},[34,240621,32107],{"class":181},[34,240623,1301],{"class":580},[34,240625,240602],{"class":181},[34,240627,32125],{"class":50},[34,240629,30251],{"class":181},[34,240631,13463],{"class":50},[34,240633,151],{"class":181},[34,240635,240636],{"class":50},"hasPrefix",[34,240638,1607],{"class":181},[34,240640,104277],{"class":54},[34,240642,133853],{"class":181},[34,240644,240645,240647,240649,240651,240653,240655],{"class":36,"line":263},[34,240646,8268],{"class":580},[34,240648,17877],{"class":181},[34,240650,1301],{"class":580},[34,240652,240602],{"class":181},[34,240654,126899],{"class":50},[34,240656,240657],{"class":40},"        // Optional first element\n",[34,240659,240660],{"class":36,"line":275},[34,240661,62],{"emptyLinePlaceholder":61},[34,240663,240664],{"class":36,"line":700},[34,240665,240666],{"class":40},"// Dictionaries (key-value pairs)\n",[34,240668,240669,240671,240673,240675],{"class":36,"line":706},[34,240670,34404],{"class":580},[34,240672,37647],{"class":181},[34,240674,1301],{"class":580},[34,240676,3304],{"class":181},[34,240678,240679,240681,240683,240685],{"class":36,"line":715},[34,240680,128114],{"class":54},[34,240682,165],{"class":580},[34,240684,25138],{"class":54},[34,240686,624],{"class":181},[34,240688,240689,240692,240694],{"class":36,"line":725},[34,240690,240691],{"class":54},"    \"city\"",[34,240693,165],{"class":580},[34,240695,240696],{"class":54}," \"NYC\"\n",[34,240698,240699],{"class":36,"line":734},[34,240700,924],{"class":181},[34,240702,240703,240706,240708,240710],{"class":36,"line":742},[34,240704,240705],{"class":181},"person[",[34,240707,4650],{"class":54},[34,240709,207827],{"class":181},[34,240711,240712],{"class":40},"// Returns Optional(\"Alice\")\n",[34,240714,240715,240717,240719,240721,240723,240726],{"class":36,"line":748},[34,240716,240705],{"class":181},[34,240718,116125],{"class":54},[34,240720,17799],{"class":181},[34,240722,1301],{"class":580},[34,240724,240725],{"class":54}," \"a@example.com\"",[34,240727,240728],{"class":40},"  // Add/update\n",[34,240730,240731,240733,240735,240737,240739,240741],{"class":36,"line":754},[34,240732,240705],{"class":181},[34,240734,193469],{"class":54},[34,240736,17799],{"class":181},[34,240738,1301],{"class":580},[34,240740,105194],{"class":50},[34,240742,240743],{"class":40},"            // Remove key\n",[34,240745,240746],{"class":36,"line":759},[34,240747,62],{"emptyLinePlaceholder":61},[34,240749,240750],{"class":36,"line":771},[34,240751,240752],{"class":40},"// Sets (unique, unordered)\n",[34,240754,240755,240757,240760,240763,240765,240767,240769,240771,240773,240775,240777,240779,240781,240783],{"class":36,"line":794},[34,240756,34404],{"class":580},[34,240758,240759],{"class":181}," numbers: ",[34,240761,240762],{"class":50},"Set",[34,240764,683],{"class":580},[34,240766,8315],{"class":181},[34,240768,8318],{"class":50},[34,240770,1798],{"class":181},[34,240772,8324],{"class":50},[34,240774,1798],{"class":181},[34,240776,3162],{"class":50},[34,240778,1798],{"class":181},[34,240780,3162],{"class":50},[34,240782,17799],{"class":181},[34,240784,240785],{"class":40},"// Duplicates removed\n",[34,240787,240788,240790,240792,240794,240796,240798],{"class":36,"line":824},[34,240789,36458],{"class":181},[34,240791,30468],{"class":50},[34,240793,1607],{"class":181},[34,240795,18010],{"class":50},[34,240797,152370],{"class":181},[34,240799,240552],{"class":40},[34,240801,240802,240804,240806,240808,240810,240812],{"class":36,"line":830},[34,240803,36458],{"class":181},[34,240805,51780],{"class":50},[34,240807,1607],{"class":181},[34,240809,8324],{"class":50},[34,240811,104305],{"class":181},[34,240813,33492],{"class":40},[388,240815,10978],{},{"title":30,"searchDepth":44,"depth":44,"links":240817},[240818],{"id":83156,"depth":44,"text":83157},"Collections in Swift.",{},"/swift/collections",{"title":83157,"description":240819},"swift/collections",[239827,240224,53545,235383],"B7CohJpeNH06MKUWrb1dMHlgnacRPYF4ZBWWGwNwuLg",{"id":240827,"title":18818,"body":240828,"date":402,"description":241228,"extension":404,"meta":241229,"navigation":61,"order":82,"path":241230,"seo":241231,"stem":241232,"subject":239827,"tags":241233,"__hash__":241234},"topics/swift/control-flow.md",{"type":8,"value":240829,"toc":241225},[240830,240832,241223],[11,240831,18818],{"id":18823},[25,240833,240835],{"className":239825,"code":240834,"language":239827,"meta":30,"style":30},"// If-else\nlet temperature = 72\nif temperature > 80 {\n    print(\"Hot\")\n} else if temperature > 60 {\n    print(\"Nice\")\n} else {\n    print(\"Cold\")\n}\n\n// Switch (exhaustive, no fallthrough)\nlet grade = \"B\"\nswitch grade {\ncase \"A\":\n    print(\"Excellent\")\ncase \"B\", \"C\":                  // Multiple cases\n    print(\"Good\")\ncase \"D\"...:                    // Range matching\n    print(\"Needs improvement\")\ndefault:\n    print(\"Invalid\")\n}\n\n// For loops\nfor i in 1...5 {                // Closed range (1 to 5)\n    print(i)\n}\n\nfor i in 1..\u003C5 {                // Half-open range (1 to 4)\n    print(i)\n}\n\nfor fruit in fruits {           // Iterate collection\n    print(fruit)\n}\n\n// While loops\nvar count = 0\nwhile count \u003C 5 {\n    count += 1\n}\n\nrepeat {                        // Do-while equivalent\n    count -= 1\n} while count > 0\n",[20,240836,240837,240841,240853,240865,240876,240892,240903,240911,240922,240926,240930,240935,240947,240954,240963,240974,240991,241002,241015,241026,241031,241042,241046,241050,241054,241074,241080,241084,241088,241108,241114,241118,241122,241136,241143,241147,241151,241155,241165,241177,241185,241189,241193,241203,241211],{"__ignoreMap":30},[34,240838,240839],{"class":36,"line":37},[34,240840,30630],{"class":40},[34,240842,240843,240845,240848,240850],{"class":36,"line":44},[34,240844,8268],{"class":580},[34,240846,240847],{"class":181}," temperature ",[34,240849,1301],{"class":580},[34,240851,240852],{"class":50}," 72\n",[34,240854,240855,240857,240859,240861,240863],{"class":36,"line":58},[34,240856,10383],{"class":580},[34,240858,240847],{"class":181},[34,240860,5691],{"class":580},[34,240862,103413],{"class":50},[34,240864,661],{"class":181},[34,240866,240867,240869,240871,240874],{"class":36,"line":65},[34,240868,141419],{"class":50},[34,240870,1607],{"class":181},[34,240872,240873],{"class":54},"\"Hot\"",[34,240875,3372],{"class":181},[34,240877,240878,240880,240882,240884,240886,240888,240890],{"class":36,"line":71},[34,240879,2276],{"class":181},[34,240881,18871],{"class":580},[34,240883,18874],{"class":580},[34,240885,240847],{"class":181},[34,240887,5691],{"class":580},[34,240889,77109],{"class":50},[34,240891,661],{"class":181},[34,240893,240894,240896,240898,240901],{"class":36,"line":77},[34,240895,141419],{"class":50},[34,240897,1607],{"class":181},[34,240899,240900],{"class":54},"\"Nice\"",[34,240902,3372],{"class":181},[34,240904,240905,240907,240909],{"class":36,"line":82},[34,240906,2276],{"class":181},[34,240908,18871],{"class":580},[34,240910,661],{"class":181},[34,240912,240913,240915,240917,240920],{"class":36,"line":88},[34,240914,141419],{"class":50},[34,240916,1607],{"class":181},[34,240918,240919],{"class":54},"\"Cold\"",[34,240921,3372],{"class":181},[34,240923,240924],{"class":36,"line":242},[34,240925,693],{"class":181},[34,240927,240928],{"class":36,"line":250},[34,240929,62],{"emptyLinePlaceholder":61},[34,240931,240932],{"class":36,"line":263},[34,240933,240934],{"class":40},"// Switch (exhaustive, no fallthrough)\n",[34,240936,240937,240939,240942,240944],{"class":36,"line":275},[34,240938,8268],{"class":580},[34,240940,240941],{"class":181}," grade ",[34,240943,1301],{"class":580},[34,240945,240946],{"class":54}," \"B\"\n",[34,240948,240949,240951],{"class":36,"line":700},[34,240950,18978],{"class":580},[34,240952,240953],{"class":181}," grade {\n",[34,240955,240956,240958,240961],{"class":36,"line":706},[34,240957,104050],{"class":580},[34,240959,240960],{"class":54}," \"A\"",[34,240962,193],{"class":580},[34,240964,240965,240967,240969,240972],{"class":36,"line":715},[34,240966,141419],{"class":50},[34,240968,1607],{"class":181},[34,240970,240971],{"class":54},"\"Excellent\"",[34,240973,3372],{"class":181},[34,240975,240976,240978,240981,240983,240986,240988],{"class":36,"line":725},[34,240977,104050],{"class":580},[34,240979,240980],{"class":54}," \"B\"",[34,240982,1798],{"class":181},[34,240984,240985],{"class":54},"\"C\"",[34,240987,165],{"class":580},[34,240989,240990],{"class":40},"                  // Multiple cases\n",[34,240992,240993,240995,240997,241000],{"class":36,"line":734},[34,240994,141419],{"class":50},[34,240996,1607],{"class":181},[34,240998,240999],{"class":54},"\"Good\"",[34,241001,3372],{"class":181},[34,241003,241004,241006,241009,241012],{"class":36,"line":742},[34,241005,104050],{"class":580},[34,241007,241008],{"class":54}," \"D\"",[34,241010,241011],{"class":580},"...:",[34,241013,241014],{"class":40},"                    // Range matching\n",[34,241016,241017,241019,241021,241024],{"class":36,"line":748},[34,241018,141419],{"class":50},[34,241020,1607],{"class":181},[34,241022,241023],{"class":54},"\"Needs improvement\"",[34,241025,3372],{"class":181},[34,241027,241028],{"class":36,"line":754},[34,241029,241030],{"class":580},"default:\n",[34,241032,241033,241035,241037,241040],{"class":36,"line":759},[34,241034,141419],{"class":50},[34,241036,1607],{"class":181},[34,241038,241039],{"class":54},"\"Invalid\"",[34,241041,3372],{"class":181},[34,241043,241044],{"class":36,"line":771},[34,241045,693],{"class":181},[34,241047,241048],{"class":36,"line":794},[34,241049,62],{"emptyLinePlaceholder":61},[34,241051,241052],{"class":36,"line":824},[34,241053,134857],{"class":40},[34,241055,241056,241058,241060,241062,241064,241066,241068,241071],{"class":36,"line":830},[34,241057,10246],{"class":580},[34,241059,10300],{"class":181},[34,241061,10252],{"class":580},[34,241063,3567],{"class":50},[34,241065,16841],{"class":580},[34,241067,2778],{"class":50},[34,241069,241070],{"class":181}," {                ",[34,241072,241073],{"class":40},"// Closed range (1 to 5)\n",[34,241075,241076,241078],{"class":36,"line":839},[34,241077,141419],{"class":50},[34,241079,88624],{"class":181},[34,241081,241082],{"class":36,"line":854},[34,241083,693],{"class":181},[34,241085,241086],{"class":36,"line":860},[34,241087,62],{"emptyLinePlaceholder":61},[34,241089,241090,241092,241094,241096,241098,241101,241103,241105],{"class":36,"line":865},[34,241091,10246],{"class":580},[34,241093,10300],{"class":181},[34,241095,10252],{"class":580},[34,241097,3567],{"class":50},[34,241099,241100],{"class":580},"..\u003C",[34,241102,2778],{"class":50},[34,241104,241070],{"class":181},[34,241106,241107],{"class":40},"// Half-open range (1 to 4)\n",[34,241109,241110,241112],{"class":36,"line":870},[34,241111,141419],{"class":50},[34,241113,88624],{"class":181},[34,241115,241116],{"class":36,"line":876},[34,241117,693],{"class":181},[34,241119,241120],{"class":36,"line":885},[34,241121,62],{"emptyLinePlaceholder":61},[34,241123,241124,241126,241128,241130,241133],{"class":36,"line":895},[34,241125,10246],{"class":580},[34,241127,10249],{"class":181},[34,241129,10252],{"class":580},[34,241131,241132],{"class":181}," fruits {           ",[34,241134,241135],{"class":40},"// Iterate collection\n",[34,241137,241138,241140],{"class":36,"line":904},[34,241139,141419],{"class":50},[34,241141,241142],{"class":181},"(fruit)\n",[34,241144,241145],{"class":36,"line":915},[34,241146,693],{"class":181},[34,241148,241149],{"class":36,"line":927},[34,241150,62],{"emptyLinePlaceholder":61},[34,241152,241153],{"class":36,"line":932},[34,241154,135002],{"class":40},[34,241156,241157,241159,241161,241163],{"class":36,"line":944},[34,241158,34404],{"class":580},[34,241160,25163],{"class":181},[34,241162,1301],{"class":580},[34,241164,36394],{"class":50},[34,241166,241167,241169,241171,241173,241175],{"class":36,"line":966},[34,241168,12005],{"class":580},[34,241170,25163],{"class":181},[34,241172,815],{"class":580},[34,241174,11144],{"class":50},[34,241176,661],{"class":181},[34,241178,241179,241181,241183],{"class":36,"line":1948},[34,241180,238847],{"class":181},[34,241182,31462],{"class":580},[34,241184,43446],{"class":50},[34,241186,241187],{"class":36,"line":1953},[34,241188,693],{"class":181},[34,241190,241191],{"class":36,"line":3616},[34,241192,62],{"emptyLinePlaceholder":61},[34,241194,241195,241197,241200],{"class":36,"line":3622},[34,241196,40274],{"class":580},[34,241198,241199],{"class":181}," {                        ",[34,241201,241202],{"class":40},"// Do-while equivalent\n",[34,241204,241205,241207,241209],{"class":36,"line":3642},[34,241206,238847],{"class":181},[34,241208,197696],{"class":580},[34,241210,43446],{"class":50},[34,241212,241213,241215,241217,241219,241221],{"class":36,"line":3657},[34,241214,2276],{"class":181},[34,241216,12005],{"class":580},[34,241218,25163],{"class":181},[34,241220,5691],{"class":580},[34,241222,36394],{"class":50},[388,241224,25257],{},{"title":30,"searchDepth":44,"depth":44,"links":241226},[241227],{"id":18823,"depth":44,"text":18818},"Control Flow in Swift.",{},"/swift/control-flow",{"title":18818,"description":241228},"swift/control-flow",[239827,240224,53545,235383],"u9oyUEHZSmLCrO3FEOe27j4HdYF6A3KOwTdgxDb8VF0",{"id":241236,"title":61423,"body":241237,"date":402,"description":241426,"extension":404,"meta":241427,"navigation":61,"order":65,"path":241428,"seo":241429,"stem":241430,"subject":239827,"tags":241431,"__hash__":241432},"topics/swift/data-types.md",{"type":8,"value":241238,"toc":241423},[241239,241241,241421],[11,241240,61423],{"id":61422},[25,241242,241244],{"className":239825,"code":241243,"language":239827,"meta":30,"style":30},"// Basic types\nlet integer: Int = 42           // Integer\nlet decimal: Double = 3.14      // Double precision\nlet float: Float = 2.5          // Single precision\nlet text: String = \"Swift\"      // String\nlet flag: Bool = true           // Boolean\nlet character: Character = \"A\"  // Single character\n\n// Type conversion\nlet intValue = Int(3.14)        // 3\nlet stringValue = String(42)    // \"42\"\nlet doubleValue = Double(\"3.14\")// Optional(3.14)\n",[20,241245,241246,241250,241266,241283,241301,241318,241335,241352,241356,241361,241380,241400],{"__ignoreMap":30},[34,241247,241248],{"class":36,"line":37},[34,241249,32878],{"class":40},[34,241251,241252,241254,241257,241259,241261,241263],{"class":36,"line":44},[34,241253,8268],{"class":580},[34,241255,241256],{"class":181}," integer: ",[34,241258,133344],{"class":50},[34,241260,683],{"class":580},[34,241262,19987],{"class":50},[34,241264,241265],{"class":40},"           // Integer\n",[34,241267,241268,241270,241273,241276,241278,241280],{"class":36,"line":58},[34,241269,8268],{"class":580},[34,241271,241272],{"class":181}," decimal: ",[34,241274,241275],{"class":50},"Double",[34,241277,683],{"class":580},[34,241279,32903],{"class":50},[34,241281,241282],{"class":40},"      // Double precision\n",[34,241284,241285,241287,241290,241293,241295,241298],{"class":36,"line":65},[34,241286,8268],{"class":580},[34,241288,241289],{"class":181}," float: ",[34,241291,241292],{"class":50},"Float",[34,241294,683],{"class":580},[34,241296,241297],{"class":50}," 2.5",[34,241299,241300],{"class":40},"          // Single precision\n",[34,241302,241303,241305,241308,241310,241312,241315],{"class":36,"line":71},[34,241304,8268],{"class":580},[34,241306,241307],{"class":181}," text: ",[34,241309,51427],{"class":50},[34,241311,683],{"class":580},[34,241313,241314],{"class":54}," \"Swift\"",[34,241316,241317],{"class":40},"      // String\n",[34,241319,241320,241322,241325,241328,241330,241332],{"class":36,"line":77},[34,241321,8268],{"class":580},[34,241323,241324],{"class":181}," flag: ",[34,241326,241327],{"class":50},"Bool",[34,241329,683],{"class":580},[34,241331,32945],{"class":50},[34,241333,241334],{"class":40},"           // Boolean\n",[34,241336,241337,241339,241342,241345,241347,241349],{"class":36,"line":82},[34,241338,8268],{"class":580},[34,241340,241341],{"class":181}," character: ",[34,241343,241344],{"class":50},"Character",[34,241346,683],{"class":580},[34,241348,240960],{"class":54},[34,241350,241351],{"class":40},"  // Single character\n",[34,241353,241354],{"class":36,"line":88},[34,241355,62],{"emptyLinePlaceholder":61},[34,241357,241358],{"class":36,"line":242},[34,241359,241360],{"class":40},"// Type conversion\n",[34,241362,241363,241365,241368,241370,241372,241374,241376,241378],{"class":36,"line":250},[34,241364,8268],{"class":580},[34,241366,241367],{"class":181}," intValue ",[34,241369,1301],{"class":580},[34,241371,135825],{"class":50},[34,241373,1607],{"class":181},[34,241375,195382],{"class":50},[34,241377,103864],{"class":181},[34,241379,220659],{"class":40},[34,241381,241382,241384,241387,241389,241391,241393,241395,241397],{"class":36,"line":263},[34,241383,8268],{"class":580},[34,241385,241386],{"class":181}," stringValue ",[34,241388,1301],{"class":580},[34,241390,131103],{"class":50},[34,241392,1607],{"class":181},[34,241394,8257],{"class":50},[34,241396,103888],{"class":181},[34,241398,241399],{"class":40},"// \"42\"\n",[34,241401,241402,241404,241407,241409,241412,241414,241416,241418],{"class":36,"line":275},[34,241403,8268],{"class":580},[34,241405,241406],{"class":181}," doubleValue ",[34,241408,1301],{"class":580},[34,241410,241411],{"class":50}," Double",[34,241413,1607],{"class":181},[34,241415,24069],{"class":54},[34,241417,1617],{"class":181},[34,241419,241420],{"class":40},"// Optional(3.14)\n",[388,241422,25257],{},{"title":30,"searchDepth":44,"depth":44,"links":241424},[241425],{"id":61422,"depth":44,"text":61423},"Data Types in Swift.",{},"/swift/data-types",{"title":61423,"description":241426},"swift/data-types",[239827,240224,53545,235383],"nmhkXLl5aTBKx9lVkr9TElJWtfia-T5LdPjwnVbpDs8",{"id":241434,"title":241435,"body":241436,"date":402,"description":241752,"extension":404,"meta":241753,"navigation":61,"order":706,"path":241754,"seo":241755,"stem":241756,"subject":239827,"tags":241757,"__hash__":241758},"topics/swift/enumerations.md","Enumerations",{"type":8,"value":241437,"toc":241749},[241438,241441,241747],[11,241439,241435],{"id":241440},"enumerations",[25,241442,241444],{"className":239825,"code":241443,"language":239827,"meta":30,"style":30},"// Basic enum\nenum Direction {\n    case north\n    case south\n    case east\n    case west\n}\n\nvar heading = Direction.north\nheading = .south                // Short syntax\n\n// Enum with raw values\nenum Planet: Int {\n    case mercury = 1\n    case venus = 2\n    case earth = 3\n}\n\nlet earth = Planet.earth\nearth.rawValue                  // 3\n\n// Enum with associated values\nenum Result {\n    case success(String)\n    case failure(Error)\n}\n\nlet result = Result.success(\"Data loaded\")\n\nswitch result {\ncase .success(let message):\n    print(message)\ncase .failure(let error):\n    print(\"Error: \\(error)\")\n}\n",[20,241445,241446,241450,241458,241465,241472,241479,241486,241490,241494,241506,241519,241523,241528,241541,241552,241563,241574,241578,241582,241594,241605,241609,241614,241622,241634,241646,241650,241654,241675,241679,241686,241703,241710,241728,241743],{"__ignoreMap":30},[34,241447,241448],{"class":36,"line":37},[34,241449,25927],{"class":40},[34,241451,241452,241454,241456],{"class":36,"line":44},[34,241453,137134],{"class":580},[34,241455,137139],{"class":47},[34,241457,661],{"class":181},[34,241459,241460,241462],{"class":36,"line":58},[34,241461,18986],{"class":580},[34,241463,241464],{"class":50}," north\n",[34,241466,241467,241469],{"class":36,"line":65},[34,241468,18986],{"class":580},[34,241470,241471],{"class":50}," south\n",[34,241473,241474,241476],{"class":36,"line":71},[34,241475,18986],{"class":580},[34,241477,241478],{"class":50}," east\n",[34,241480,241481,241483],{"class":36,"line":77},[34,241482,18986],{"class":580},[34,241484,241485],{"class":50}," west\n",[34,241487,241488],{"class":36,"line":82},[34,241489,693],{"class":181},[34,241491,241492],{"class":36,"line":88},[34,241493,62],{"emptyLinePlaceholder":61},[34,241495,241496,241498,241501,241503],{"class":36,"line":242},[34,241497,34404],{"class":580},[34,241499,241500],{"class":181}," heading ",[34,241502,1301],{"class":580},[34,241504,241505],{"class":181}," Direction.north\n",[34,241507,241508,241511,241513,241516],{"class":36,"line":250},[34,241509,241510],{"class":181},"heading ",[34,241512,1301],{"class":580},[34,241514,241515],{"class":181}," .south                ",[34,241517,241518],{"class":40},"// Short syntax\n",[34,241520,241521],{"class":36,"line":263},[34,241522,62],{"emptyLinePlaceholder":61},[34,241524,241525],{"class":36,"line":275},[34,241526,241527],{"class":40},"// Enum with raw values\n",[34,241529,241530,241532,241535,241537,241539],{"class":36,"line":700},[34,241531,137134],{"class":580},[34,241533,241534],{"class":47}," Planet",[34,241536,182],{"class":181},[34,241538,133344],{"class":50},[34,241540,661],{"class":181},[34,241542,241543,241545,241548,241550],{"class":36,"line":706},[34,241544,18986],{"class":580},[34,241546,241547],{"class":50}," mercury",[34,241549,683],{"class":580},[34,241551,43446],{"class":50},[34,241553,241554,241556,241559,241561],{"class":36,"line":715},[34,241555,18986],{"class":580},[34,241557,241558],{"class":50}," venus",[34,241560,683],{"class":580},[34,241562,9930],{"class":50},[34,241564,241565,241567,241570,241572],{"class":36,"line":725},[34,241566,18986],{"class":580},[34,241568,241569],{"class":50}," earth",[34,241571,683],{"class":580},[34,241573,204469],{"class":50},[34,241575,241576],{"class":36,"line":734},[34,241577,693],{"class":181},[34,241579,241580],{"class":36,"line":742},[34,241581,62],{"emptyLinePlaceholder":61},[34,241583,241584,241586,241589,241591],{"class":36,"line":748},[34,241585,8268],{"class":580},[34,241587,241588],{"class":181}," earth ",[34,241590,1301],{"class":580},[34,241592,241593],{"class":181}," Planet.earth\n",[34,241595,241596,241599,241602],{"class":36,"line":754},[34,241597,241598],{"class":181},"earth.",[34,241600,241601],{"class":50},"rawValue",[34,241603,241604],{"class":40},"                  // 3\n",[34,241606,241607],{"class":36,"line":759},[34,241608,62],{"emptyLinePlaceholder":61},[34,241610,241611],{"class":36,"line":771},[34,241612,241613],{"class":40},"// Enum with associated values\n",[34,241615,241616,241618,241620],{"class":36,"line":794},[34,241617,137134],{"class":580},[34,241619,136969],{"class":47},[34,241621,661],{"class":181},[34,241623,241624,241626,241628,241630,241632],{"class":36,"line":824},[34,241625,18986],{"class":580},[34,241627,212974],{"class":50},[34,241629,1607],{"class":181},[34,241631,51427],{"class":50},[34,241633,3372],{"class":181},[34,241635,241636,241638,241640,241642,241644],{"class":36,"line":830},[34,241637,18986],{"class":580},[34,241639,213006],{"class":50},[34,241641,1607],{"class":181},[34,241643,105542],{"class":50},[34,241645,3372],{"class":181},[34,241647,241648],{"class":36,"line":839},[34,241649,693],{"class":181},[34,241651,241652],{"class":36,"line":854},[34,241653,62],{"emptyLinePlaceholder":61},[34,241655,241656,241658,241660,241662,241665,241668,241670,241673],{"class":36,"line":860},[34,241657,8268],{"class":580},[34,241659,20093],{"class":181},[34,241661,1301],{"class":580},[34,241663,241664],{"class":181}," Result.",[34,241666,241667],{"class":50},"success",[34,241669,1607],{"class":181},[34,241671,241672],{"class":54},"\"Data loaded\"",[34,241674,3372],{"class":181},[34,241676,241677],{"class":36,"line":865},[34,241678,62],{"emptyLinePlaceholder":61},[34,241680,241681,241683],{"class":36,"line":870},[34,241682,18978],{"class":580},[34,241684,241685],{"class":181}," result {\n",[34,241687,241688,241690,241692,241694,241696,241698,241701],{"class":36,"line":876},[34,241689,104050],{"class":580},[34,241691,100566],{"class":181},[34,241693,241667],{"class":50},[34,241695,1607],{"class":181},[34,241697,8268],{"class":580},[34,241699,241700],{"class":181}," message)",[34,241702,193],{"class":580},[34,241704,241705,241707],{"class":36,"line":885},[34,241706,141419],{"class":50},[34,241708,241709],{"class":181},"(message)\n",[34,241711,241712,241714,241716,241719,241721,241723,241726],{"class":36,"line":895},[34,241713,104050],{"class":580},[34,241715,100566],{"class":181},[34,241717,241718],{"class":50},"failure",[34,241720,1607],{"class":181},[34,241722,8268],{"class":580},[34,241724,241725],{"class":181}," error)",[34,241727,193],{"class":580},[34,241729,241730,241732,241734,241736,241739,241741],{"class":36,"line":904},[34,241731,141419],{"class":50},[34,241733,1607],{"class":181},[34,241735,18184],{"class":54},[34,241737,241738],{"class":54},"\\(error)",[34,241740,10389],{"class":54},[34,241742,3372],{"class":181},[34,241744,241745],{"class":36,"line":915},[34,241746,693],{"class":181},[388,241748,49910],{},{"title":30,"searchDepth":44,"depth":44,"links":241750},[241751],{"id":241440,"depth":44,"text":241435},"Enumerations in Swift.",{},"/swift/enumerations",{"title":241435,"description":241752},"swift/enumerations",[239827,240224,53545,235383],"p0gigq8AXaChrbKfifxOCiBcgenLVXHRFBBSIgvxpiw",{"id":241760,"title":19352,"body":241761,"date":402,"description":242054,"extension":404,"meta":242055,"navigation":61,"order":263,"path":242056,"seo":242057,"stem":242058,"subject":239827,"tags":242059,"__hash__":242060},"topics/swift/error-handling.md",{"type":8,"value":241762,"toc":242051},[241763,241765,242049],[11,241764,19352],{"id":19357},[25,241766,241768],{"className":239825,"code":241767,"language":239827,"meta":30,"style":30},"// Define error enum\nenum FileError: Error {\n    case fileNotFound\n    case insufficientPermissions\n    case corrupted\n}\n\n// Throwing function\nfunc readFile(path: String) throws -> String {\n    if path.isEmpty {\n        throw FileError.fileNotFound\n    }\n    return \"File contents\"\n}\n\n// Handling errors with do-catch\ndo {\n    let contents = try readFile(path: \"/path/to/file\")\n    print(contents)\n} catch FileError.fileNotFound {\n    print(\"File not found\")\n} catch {\n    print(\"Unknown error: \\(error)\")\n}\n\n// Optional try (converts error to nil)\nlet contents = try? readFile(path: \"/path\")  // Returns optional\n\n// Force try (crashes on error, use with caution)\nlet data = try! readFile(path: \"/guaranteed/path\")\n",[20,241769,241770,241775,241788,241795,241802,241809,241813,241817,241822,241847,241858,241865,241869,241876,241880,241884,241889,241895,241920,241927,241941,241952,241960,241975,241979,241983,241988,242015,242019,242024],{"__ignoreMap":30},[34,241771,241772],{"class":36,"line":37},[34,241773,241774],{"class":40},"// Define error enum\n",[34,241776,241777,241779,241782,241784,241786],{"class":36,"line":44},[34,241778,137134],{"class":580},[34,241780,241781],{"class":47}," FileError",[34,241783,182],{"class":181},[34,241785,105542],{"class":50},[34,241787,661],{"class":181},[34,241789,241790,241792],{"class":36,"line":58},[34,241791,18986],{"class":580},[34,241793,241794],{"class":50}," fileNotFound\n",[34,241796,241797,241799],{"class":36,"line":65},[34,241798,18986],{"class":580},[34,241800,241801],{"class":50}," insufficientPermissions\n",[34,241803,241804,241806],{"class":36,"line":71},[34,241805,18986],{"class":580},[34,241807,241808],{"class":50}," corrupted\n",[34,241810,241811],{"class":36,"line":77},[34,241812,693],{"class":181},[34,241814,241815],{"class":36,"line":82},[34,241816,62],{"emptyLinePlaceholder":61},[34,241818,241819],{"class":36,"line":88},[34,241820,241821],{"class":40},"// Throwing function\n",[34,241823,241824,241826,241828,241830,241832,241834,241836,241838,241841,241843,241845],{"class":36,"line":242},[34,241825,105159],{"class":580},[34,241827,105162],{"class":47},[34,241829,1607],{"class":181},[34,241831,20404],{"class":47},[34,241833,182],{"class":181},[34,241835,51427],{"class":50},[34,241837,4817],{"class":181},[34,241839,241840],{"class":580},"throws",[34,241842,122423],{"class":580},[34,241844,131103],{"class":50},[34,241846,661],{"class":181},[34,241848,241849,241851,241854,241856],{"class":36,"line":250},[34,241850,2902],{"class":580},[34,241852,241853],{"class":181}," path.",[34,241855,51729],{"class":50},[34,241857,661],{"class":181},[34,241859,241860,241862],{"class":36,"line":263},[34,241861,1932],{"class":580},[34,241863,241864],{"class":181}," FileError.fileNotFound\n",[34,241866,241867],{"class":36,"line":275},[34,241868,3229],{"class":181},[34,241870,241871,241873],{"class":36,"line":700},[34,241872,1564],{"class":580},[34,241874,241875],{"class":54}," \"File contents\"\n",[34,241877,241878],{"class":36,"line":706},[34,241879,693],{"class":181},[34,241881,241882],{"class":36,"line":715},[34,241883,62],{"emptyLinePlaceholder":61},[34,241885,241886],{"class":36,"line":725},[34,241887,241888],{"class":40},"// Handling errors with do-catch\n",[34,241890,241891,241893],{"class":36,"line":734},[34,241892,19148],{"class":580},[34,241894,661],{"class":181},[34,241896,241897,241899,241902,241904,241907,241909,241911,241913,241915,241918],{"class":36,"line":742},[34,241898,13909],{"class":580},[34,241900,241901],{"class":181}," contents ",[34,241903,1301],{"class":580},[34,241905,241906],{"class":580}," try",[34,241908,105162],{"class":50},[34,241910,1607],{"class":181},[34,241912,20404],{"class":50},[34,241914,182],{"class":181},[34,241916,241917],{"class":54},"\"/path/to/file\"",[34,241919,3372],{"class":181},[34,241921,241922,241924],{"class":36,"line":748},[34,241923,141419],{"class":50},[34,241925,241926],{"class":181},"(contents)\n",[34,241928,241929,241931,241933,241936,241939],{"class":36,"line":754},[34,241930,2276],{"class":181},[34,241932,30851],{"class":580},[34,241934,241935],{"class":181}," FileError.",[34,241937,241938],{"class":50},"fileNotFound",[34,241940,661],{"class":181},[34,241942,241943,241945,241947,241950],{"class":36,"line":759},[34,241944,141419],{"class":50},[34,241946,1607],{"class":181},[34,241948,241949],{"class":54},"\"File not found\"",[34,241951,3372],{"class":181},[34,241953,241954,241956,241958],{"class":36,"line":771},[34,241955,2276],{"class":181},[34,241957,30851],{"class":580},[34,241959,661],{"class":181},[34,241961,241962,241964,241966,241969,241971,241973],{"class":36,"line":794},[34,241963,141419],{"class":50},[34,241965,1607],{"class":181},[34,241967,241968],{"class":54},"\"Unknown error: ",[34,241970,241738],{"class":54},[34,241972,10389],{"class":54},[34,241974,3372],{"class":181},[34,241976,241977],{"class":36,"line":824},[34,241978,693],{"class":181},[34,241980,241981],{"class":36,"line":830},[34,241982,62],{"emptyLinePlaceholder":61},[34,241984,241985],{"class":36,"line":839},[34,241986,241987],{"class":40},"// Optional try (converts error to nil)\n",[34,241989,241990,241992,241994,241996,241999,242001,242003,242005,242007,242010,242012],{"class":36,"line":854},[34,241991,8268],{"class":580},[34,241993,241901],{"class":181},[34,241995,1301],{"class":580},[34,241997,241998],{"class":580}," try?",[34,242000,105162],{"class":50},[34,242002,1607],{"class":181},[34,242004,20404],{"class":50},[34,242006,182],{"class":181},[34,242008,242009],{"class":54},"\"/path\"",[34,242011,76021],{"class":181},[34,242013,242014],{"class":40},"// Returns optional\n",[34,242016,242017],{"class":36,"line":860},[34,242018,62],{"emptyLinePlaceholder":61},[34,242020,242021],{"class":36,"line":865},[34,242022,242023],{"class":40},"// Force try (crashes on error, use with caution)\n",[34,242025,242026,242028,242031,242033,242036,242038,242040,242042,242044,242047],{"class":36,"line":870},[34,242027,8268],{"class":580},[34,242029,242030],{"class":181}," data ",[34,242032,1301],{"class":580},[34,242034,242035],{"class":580}," try!",[34,242037,105162],{"class":50},[34,242039,1607],{"class":181},[34,242041,20404],{"class":50},[34,242043,182],{"class":181},[34,242045,242046],{"class":54},"\"/guaranteed/path\"",[34,242048,3372],{"class":181},[388,242050,49910],{},{"title":30,"searchDepth":44,"depth":44,"links":242052},[242053],{"id":19357,"depth":44,"text":19352},"Error Handling in Swift.",{},"/swift/error-handling",{"title":19352,"description":242054},"swift/error-handling",[239827,240224,53545,235383],"itWRZ6GoQwhHiwoAh0ZLA2RQ32T7g_IiOUnLxflmMYg",{"id":242062,"title":90562,"body":242063,"date":402,"description":242325,"extension":404,"meta":242326,"navigation":61,"order":725,"path":242327,"seo":242328,"stem":242329,"subject":239827,"tags":242330,"__hash__":242331},"topics/swift/extensions.md",{"type":8,"value":242064,"toc":242322},[242065,242067,242320],[11,242066,90562],{"id":90561},[25,242068,242070],{"className":239825,"code":242069,"language":239827,"meta":30,"style":30},"// Extend existing types\nextension Int {\n    var squared: Int {\n        return self * self\n    }\n    \n    func times(_ action: () -> Void) {\n        for _ in 0..\u003Cself {\n            action()\n        }\n    }\n}\n\n5.squared                       // 25\n3.times {\n    print(\"Hello\")              // Prints \"Hello\" 3 times\n}\n\n// Extend custom types\nextension Point {\n    func distance(to other: Point) -> Double {\n        let dx = Double(x - other.x)\n        let dy = Double(y - other.y)\n        return sqrt(dx * dx + dy * dy)\n    }\n}\n",[20,242071,242072,242077,242086,242097,242108,242112,242116,242138,242154,242161,242165,242169,242173,242177,242187,242197,242210,242214,242218,242223,242231,242250,242270,242289,242312,242316],{"__ignoreMap":30},[34,242073,242074],{"class":36,"line":37},[34,242075,242076],{"class":40},"// Extend existing types\n",[34,242078,242079,242082,242084],{"class":36,"line":44},[34,242080,242081],{"class":580},"extension",[34,242083,135825],{"class":50},[34,242085,661],{"class":181},[34,242087,242088,242090,242093,242095],{"class":36,"line":58},[34,242089,33908],{"class":580},[34,242091,242092],{"class":181}," squared: ",[34,242094,133344],{"class":50},[34,242096,661],{"class":181},[34,242098,242099,242101,242103,242105],{"class":36,"line":65},[34,242100,13895],{"class":580},[34,242102,74044],{"class":50},[34,242104,18083],{"class":580},[34,242106,242107],{"class":50}," self\n",[34,242109,242110],{"class":36,"line":71},[34,242111,3229],{"class":181},[34,242113,242114],{"class":36,"line":77},[34,242115,3666],{"class":181},[34,242117,242118,242121,242124,242126,242128,242131,242133,242136],{"class":36,"line":82},[34,242119,242120],{"class":580},"    func",[34,242122,242123],{"class":47}," times",[34,242125,1607],{"class":181},[34,242127,60694],{"class":47},[34,242129,242130],{"class":181}," action: () ",[34,242132,24863],{"class":580},[34,242134,242135],{"class":50}," Void",[34,242137,2416],{"class":181},[34,242139,242140,242142,242144,242146,242148,242150,242152],{"class":36,"line":88},[34,242141,50247],{"class":580},[34,242143,60711],{"class":50},[34,242145,36375],{"class":580},[34,242147,8070],{"class":50},[34,242149,241100],{"class":580},[34,242151,210943],{"class":50},[34,242153,661],{"class":181},[34,242155,242156,242159],{"class":36,"line":242},[34,242157,242158],{"class":50},"            action",[34,242160,33899],{"class":181},[34,242162,242163],{"class":36,"line":250},[34,242164,26208],{"class":181},[34,242166,242167],{"class":36,"line":263},[34,242168,3229],{"class":181},[34,242170,242171],{"class":36,"line":275},[34,242172,693],{"class":181},[34,242174,242175],{"class":36,"line":700},[34,242176,62],{"emptyLinePlaceholder":61},[34,242178,242179,242181,242184],{"class":36,"line":706},[34,242180,2778],{"class":50},[34,242182,242183],{"class":181},".squared                       ",[34,242185,242186],{"class":40},"// 25\n",[34,242188,242189,242191,242193,242195],{"class":36,"line":715},[34,242190,3162],{"class":50},[34,242192,151],{"class":181},[34,242194,135830],{"class":50},[34,242196,661],{"class":181},[34,242198,242199,242201,242203,242205,242207],{"class":36,"line":725},[34,242200,141419],{"class":50},[34,242202,1607],{"class":181},[34,242204,15564],{"class":54},[34,242206,152252],{"class":181},[34,242208,242209],{"class":40},"// Prints \"Hello\" 3 times\n",[34,242211,242212],{"class":36,"line":734},[34,242213,693],{"class":181},[34,242215,242216],{"class":36,"line":742},[34,242217,62],{"emptyLinePlaceholder":61},[34,242219,242220],{"class":36,"line":748},[34,242221,242222],{"class":40},"// Extend custom types\n",[34,242224,242225,242227,242229],{"class":36,"line":754},[34,242226,242081],{"class":580},[34,242228,37679],{"class":47},[34,242230,661],{"class":181},[34,242232,242233,242235,242237,242239,242241,242244,242246,242248],{"class":36,"line":759},[34,242234,242120],{"class":580},[34,242236,52228],{"class":47},[34,242238,1607],{"class":181},[34,242240,38916],{"class":47},[34,242242,242243],{"class":181}," other: Point) ",[34,242245,24863],{"class":580},[34,242247,241411],{"class":50},[34,242249,661],{"class":181},[34,242251,242252,242255,242258,242260,242262,242265,242267],{"class":36,"line":771},[34,242253,242254],{"class":580},"        let",[34,242256,242257],{"class":181}," dx ",[34,242259,1301],{"class":580},[34,242261,241411],{"class":50},[34,242263,242264],{"class":181},"(x ",[34,242266,22062],{"class":580},[34,242268,242269],{"class":181}," other.x)\n",[34,242271,242272,242274,242277,242279,242281,242284,242286],{"class":36,"line":794},[34,242273,242254],{"class":580},[34,242275,242276],{"class":181}," dy ",[34,242278,1301],{"class":580},[34,242280,241411],{"class":50},[34,242282,242283],{"class":181},"(y ",[34,242285,22062],{"class":580},[34,242287,242288],{"class":181}," other.y)\n",[34,242290,242291,242293,242296,242299,242301,242303,242305,242307,242309],{"class":36,"line":824},[34,242292,13895],{"class":580},[34,242294,242295],{"class":50}," sqrt",[34,242297,242298],{"class":181},"(dx ",[34,242300,4289],{"class":580},[34,242302,242257],{"class":181},[34,242304,2940],{"class":580},[34,242306,242276],{"class":181},[34,242308,4289],{"class":580},[34,242310,242311],{"class":181}," dy)\n",[34,242313,242314],{"class":36,"line":830},[34,242315,3229],{"class":181},[34,242317,242318],{"class":36,"line":839},[34,242319,693],{"class":181},[388,242321,15226],{},{"title":30,"searchDepth":44,"depth":44,"links":242323},[242324],{"id":90561,"depth":44,"text":90562},"Extensions in Swift.",{},"/swift/extensions",{"title":90562,"description":242325},"swift/extensions",[239827,240224,53545,235383],"22z04mfoCzMIA4PM4_tXdBX3zNV0mAse3_pQetlfGXE",{"id":242333,"title":10991,"body":242334,"date":402,"description":242741,"extension":404,"meta":242742,"navigation":61,"order":88,"path":242743,"seo":242744,"stem":242745,"subject":239827,"tags":242746,"__hash__":242747},"topics/swift/functions.md",{"type":8,"value":242335,"toc":242738},[242336,242338,242736],[11,242337,10991],{"id":10996},[25,242339,242341],{"className":239825,"code":242340,"language":239827,"meta":30,"style":30},"// Basic function\nfunc greet(name: String) -> String {\n    return \"Hello, \\(name)!\"    // String interpolation\n}\n\n// Multiple parameters\nfunc add(_ a: Int, to b: Int) -> Int {\n    return a + b\n}\nadd(5, to: 3)                   // Argument labels\n\n// Default parameters\nfunc greet(name: String, greeting: String = \"Hello\") -> String {\n    return \"\\(greeting), \\(name)!\"\n}\n\n// Multiple return values (tuple)\nfunc minMax(numbers: [Int]) -> (min: Int, max: Int)? {\n    guard let first = numbers.first else {\n        return nil\n    }\n    var min = first, max = first\n    for number in numbers {\n        if number \u003C min { min = number }\n        if number > max { max = number }\n    }\n    return (min, max)\n}\n\n// Inout parameters (pass by reference)\nfunc increment(_ value: inout Int) {\n    value += 1\n}\nvar counter = 5\nincrement(&counter)             // counter is now 6\n",[20,242342,242343,242347,242369,242382,242386,242390,242394,242426,242436,242440,242462,242466,242470,242504,242519,242523,242527,242532,242567,242587,242594,242598,242614,242624,242640,242655,242659,242666,242670,242674,242679,242699,242708,242712,242722],{"__ignoreMap":30},[34,242344,242345],{"class":36,"line":37},[34,242346,26295],{"class":40},[34,242348,242349,242351,242353,242355,242357,242359,242361,242363,242365,242367],{"class":36,"line":44},[34,242350,105159],{"class":580},[34,242352,11047],{"class":47},[34,242354,1607],{"class":181},[34,242356,178],{"class":47},[34,242358,182],{"class":181},[34,242360,51427],{"class":50},[34,242362,4817],{"class":181},[34,242364,24863],{"class":580},[34,242366,131103],{"class":50},[34,242368,661],{"class":181},[34,242370,242371,242373,242375,242378,242380],{"class":36,"line":58},[34,242372,1564],{"class":580},[34,242374,11020],{"class":54},[34,242376,242377],{"class":54},"\\(name)",[34,242379,37073],{"class":54},[34,242381,87985],{"class":40},[34,242383,242384],{"class":36,"line":65},[34,242385,693],{"class":181},[34,242387,242388],{"class":36,"line":71},[34,242389,62],{"emptyLinePlaceholder":61},[34,242391,242392],{"class":36,"line":77},[34,242393,213590],{"class":40},[34,242395,242396,242398,242400,242402,242404,242407,242409,242411,242413,242416,242418,242420,242422,242424],{"class":36,"line":82},[34,242397,105159],{"class":580},[34,242399,7854],{"class":47},[34,242401,1607],{"class":181},[34,242403,60694],{"class":47},[34,242405,242406],{"class":181}," a: ",[34,242408,133344],{"class":50},[34,242410,1798],{"class":181},[34,242412,38916],{"class":47},[34,242414,242415],{"class":181}," b: ",[34,242417,133344],{"class":50},[34,242419,4817],{"class":181},[34,242421,24863],{"class":580},[34,242423,135825],{"class":50},[34,242425,661],{"class":181},[34,242427,242428,242430,242432,242434],{"class":36,"line":88},[34,242429,1564],{"class":580},[34,242431,8065],{"class":181},[34,242433,2940],{"class":580},[34,242435,87475],{"class":181},[34,242437,242438],{"class":36,"line":242},[34,242439,693],{"class":181},[34,242441,242442,242444,242446,242448,242450,242452,242454,242456,242459],{"class":36,"line":250},[34,242443,11093],{"class":50},[34,242445,1607],{"class":181},[34,242447,2778],{"class":50},[34,242449,1798],{"class":181},[34,242451,38916],{"class":50},[34,242453,182],{"class":181},[34,242455,3162],{"class":50},[34,242457,242458],{"class":181},")                   ",[34,242460,242461],{"class":40},"// Argument labels\n",[34,242463,242464],{"class":36,"line":263},[34,242465,62],{"emptyLinePlaceholder":61},[34,242467,242468],{"class":36,"line":275},[34,242469,31217],{"class":40},[34,242471,242472,242474,242476,242478,242480,242482,242484,242486,242488,242490,242492,242494,242496,242498,242500,242502],{"class":36,"line":700},[34,242473,105159],{"class":580},[34,242475,11047],{"class":47},[34,242477,1607],{"class":181},[34,242479,178],{"class":47},[34,242481,182],{"class":181},[34,242483,51427],{"class":50},[34,242485,1798],{"class":181},[34,242487,13861],{"class":47},[34,242489,182],{"class":181},[34,242491,51427],{"class":50},[34,242493,683],{"class":580},[34,242495,24377],{"class":54},[34,242497,4817],{"class":181},[34,242499,24863],{"class":580},[34,242501,131103],{"class":50},[34,242503,661],{"class":181},[34,242505,242506,242508,242510,242513,242515,242517],{"class":36,"line":706},[34,242507,1564],{"class":580},[34,242509,10326],{"class":54},[34,242511,242512],{"class":54},"\\(greeting)",[34,242514,1798],{"class":54},[34,242516,242377],{"class":54},[34,242518,11026],{"class":54},[34,242520,242521],{"class":36,"line":715},[34,242522,693],{"class":181},[34,242524,242525],{"class":36,"line":725},[34,242526,62],{"emptyLinePlaceholder":61},[34,242528,242529],{"class":36,"line":734},[34,242530,242531],{"class":40},"// Multiple return values (tuple)\n",[34,242533,242534,242536,242539,242541,242543,242545,242547,242549,242551,242554,242556,242559,242561,242563,242565],{"class":36,"line":742},[34,242535,105159],{"class":580},[34,242537,242538],{"class":47}," minMax",[34,242540,1607],{"class":181},[34,242542,33330],{"class":47},[34,242544,47204],{"class":181},[34,242546,133344],{"class":50},[34,242548,193030],{"class":181},[34,242550,24863],{"class":580},[34,242552,242553],{"class":181}," (min: ",[34,242555,133344],{"class":50},[34,242557,242558],{"class":181},", max: ",[34,242560,133344],{"class":50},[34,242562,1617],{"class":181},[34,242564,18954],{"class":580},[34,242566,661],{"class":181},[34,242568,242569,242572,242574,242576,242578,242580,242582,242585],{"class":36,"line":748},[34,242570,242571],{"class":580},"    guard",[34,242573,216097],{"class":580},[34,242575,17877],{"class":181},[34,242577,1301],{"class":580},[34,242579,36423],{"class":181},[34,242581,126899],{"class":50},[34,242583,242584],{"class":580}," else",[34,242586,661],{"class":181},[34,242588,242589,242591],{"class":36,"line":754},[34,242590,13895],{"class":580},[34,242592,242593],{"class":50}," nil\n",[34,242595,242596],{"class":36,"line":759},[34,242597,3229],{"class":181},[34,242599,242600,242602,242604,242606,242609,242611],{"class":36,"line":771},[34,242601,33908],{"class":580},[34,242603,126643],{"class":181},[34,242605,1301],{"class":580},[34,242607,242608],{"class":181}," first, max ",[34,242610,1301],{"class":580},[34,242612,242613],{"class":181}," first\n",[34,242615,242616,242618,242620,242622],{"class":36,"line":794},[34,242617,18250],{"class":580},[34,242619,32885],{"class":181},[34,242621,10252],{"class":580},[34,242623,87630],{"class":181},[34,242625,242626,242628,242630,242632,242635,242637],{"class":36,"line":824},[34,242627,49573],{"class":580},[34,242629,32885],{"class":181},[34,242631,815],{"class":580},[34,242633,242634],{"class":181}," min { min ",[34,242636,1301],{"class":580},[34,242638,242639],{"class":181}," number }\n",[34,242641,242642,242644,242646,242648,242651,242653],{"class":36,"line":830},[34,242643,49573],{"class":580},[34,242645,32885],{"class":181},[34,242647,5691],{"class":580},[34,242649,242650],{"class":181}," max { max ",[34,242652,1301],{"class":580},[34,242654,242639],{"class":181},[34,242656,242657],{"class":36,"line":839},[34,242658,3229],{"class":181},[34,242660,242661,242663],{"class":36,"line":854},[34,242662,1564],{"class":580},[34,242664,242665],{"class":181}," (min, max)\n",[34,242667,242668],{"class":36,"line":860},[34,242669,693],{"class":181},[34,242671,242672],{"class":36,"line":865},[34,242673,62],{"emptyLinePlaceholder":61},[34,242675,242676],{"class":36,"line":870},[34,242677,242678],{"class":40},"// Inout parameters (pass by reference)\n",[34,242680,242681,242683,242685,242687,242689,242692,242695,242697],{"class":36,"line":876},[34,242682,105159],{"class":580},[34,242684,60840],{"class":47},[34,242686,1607],{"class":181},[34,242688,60694],{"class":47},[34,242690,242691],{"class":181}," value: ",[34,242693,242694],{"class":580},"inout",[34,242696,135825],{"class":50},[34,242698,2416],{"class":181},[34,242700,242701,242704,242706],{"class":36,"line":885},[34,242702,242703],{"class":181},"    value ",[34,242705,31462],{"class":580},[34,242707,43446],{"class":50},[34,242709,242710],{"class":36,"line":895},[34,242711,693],{"class":181},[34,242713,242714,242716,242718,242720],{"class":36,"line":904},[34,242715,34404],{"class":580},[34,242717,137844],{"class":181},[34,242719,1301],{"class":580},[34,242721,134626],{"class":50},[34,242723,242724,242726,242728,242730,242733],{"class":36,"line":915},[34,242725,108042],{"class":50},[34,242727,1607],{"class":181},[34,242729,19502],{"class":580},[34,242731,242732],{"class":181},"counter)             ",[34,242734,242735],{"class":40},"// counter is now 6\n",[388,242737,49910],{},{"title":30,"searchDepth":44,"depth":44,"links":242739},[242740],{"id":10996,"depth":44,"text":10991},"Functions in Swift.",{},"/swift/functions",{"title":10991,"description":242741},"swift/functions",[239827,240224,53545,235383],"FtT6J7-_We0ljpKMqqLgvlYKaKMCmv7MOLiDFAAAlJY",{"id":242749,"title":22151,"body":242750,"date":402,"description":242853,"extension":404,"meta":242854,"navigation":61,"order":44,"path":242855,"seo":242856,"stem":242857,"subject":239827,"tags":242858,"__hash__":242859},"topics/swift/hello-world.md",{"type":8,"value":242751,"toc":242850},[242752,242754,242848],[11,242753,22151],{"id":22156},[25,242755,242757],{"className":239825,"code":242756,"language":239827,"meta":30,"style":30},"// Print to console\nprint(\"Hello, World!\")          // Basic output\n\n// String interpolation\nlet name = \"Swift\"\nprint(\"Hello, \\(name)!\")        // Output: Hello, Swift!\n\n// Multiple values\nprint(\"Values:\", 42, 3.14, true) // Comma-separated\n",[20,242758,242759,242764,242777,242781,242785,242796,242813,242817,242822],{"__ignoreMap":30},[34,242760,242761],{"class":36,"line":37},[34,242762,242763],{"class":40},"// Print to console\n",[34,242765,242766,242768,242770,242772,242774],{"class":36,"line":44},[34,242767,53417],{"class":50},[34,242769,1607],{"class":181},[34,242771,15076],{"class":54},[34,242773,104258],{"class":181},[34,242775,242776],{"class":40},"// Basic output\n",[34,242778,242779],{"class":36,"line":58},[34,242780,62],{"emptyLinePlaceholder":61},[34,242782,242783],{"class":36,"line":65},[34,242784,37722],{"class":40},[34,242786,242787,242789,242791,242793],{"class":36,"line":71},[34,242788,8268],{"class":580},[34,242790,30212],{"class":181},[34,242792,1301],{"class":580},[34,242794,242795],{"class":54}," \"Swift\"\n",[34,242797,242798,242800,242802,242804,242806,242808,242810],{"class":36,"line":77},[34,242799,53417],{"class":50},[34,242801,1607],{"class":181},[34,242803,21921],{"class":54},[34,242805,242377],{"class":54},[34,242807,37073],{"class":54},[34,242809,103864],{"class":181},[34,242811,242812],{"class":40},"// Output: Hello, Swift!\n",[34,242814,242815],{"class":36,"line":82},[34,242816,62],{"emptyLinePlaceholder":61},[34,242818,242819],{"class":36,"line":88},[34,242820,242821],{"class":40},"// Multiple values\n",[34,242823,242824,242826,242828,242831,242833,242835,242837,242839,242841,242843,242845],{"class":36,"line":242},[34,242825,53417],{"class":50},[34,242827,1607],{"class":181},[34,242829,242830],{"class":54},"\"Values:\"",[34,242832,1798],{"class":181},[34,242834,8257],{"class":50},[34,242836,1798],{"class":181},[34,242838,195382],{"class":50},[34,242840,1798],{"class":181},[34,242842,632],{"class":50},[34,242844,4817],{"class":181},[34,242846,242847],{"class":40},"// Comma-separated\n",[388,242849,143036],{},{"title":30,"searchDepth":44,"depth":44,"links":242851},[242852],{"id":22156,"depth":44,"text":22151},"Hello World in Swift.",{},"/swift/hello-world",{"title":22151,"description":242853},"swift/hello-world",[239827,240224,53545,235383],"kynj6TsiSbAMX5UbT93yBEKFdn7heoUt0SbYW9Qgd20",{"id":242861,"title":242862,"body":242863,"date":402,"description":243097,"extension":404,"meta":243098,"navigation":61,"order":71,"path":243099,"seo":243100,"stem":243101,"subject":239827,"tags":243102,"__hash__":243103},"topics/swift/optionals.md","Optionals",{"type":8,"value":242864,"toc":243094},[242865,242868,243092],[11,242866,242862],{"id":242867},"optionals",[25,242869,242871],{"className":239825,"code":242870,"language":239827,"meta":30,"style":30},"// Optional declaration\nvar optionalString: String? = \"Hello\"\nvar optionalInt: Int? = nil     // Explicitly nil\n\n// Unwrapping optionals\nif let unwrapped = optionalString {\n    print(unwrapped)            // Safe unwrapping\n}\n\n// Nil coalescing\nlet result = optionalString ?? \"Default\"  // Use default if nil\n\n// Optional chaining\nlet length = optionalString?.count        // Returns optional\n\n// Force unwrapping (use with caution)\nlet forced = optionalString!              // Crashes if nil\n\n// Guard statement\nfunc process(value: String?) {\n    guard let value = value else {\n        return                  // Early exit if nil\n    }\n    print(value)\n}\n",[20,242872,242873,242878,242893,242911,242915,242920,242934,242944,242948,242952,242957,242975,242979,242983,243003,243007,243012,243028,243032,243037,243055,243071,243078,243082,243088],{"__ignoreMap":30},[34,242874,242875],{"class":36,"line":37},[34,242876,242877],{"class":40},"// Optional declaration\n",[34,242879,242880,242882,242885,242887,242889,242891],{"class":36,"line":44},[34,242881,34404],{"class":580},[34,242883,242884],{"class":181}," optionalString: ",[34,242886,51427],{"class":50},[34,242888,18954],{"class":580},[34,242890,683],{"class":580},[34,242892,11285],{"class":54},[34,242894,242895,242897,242900,242902,242904,242906,242908],{"class":36,"line":58},[34,242896,34404],{"class":580},[34,242898,242899],{"class":181}," optionalInt: ",[34,242901,133344],{"class":50},[34,242903,18954],{"class":580},[34,242905,683],{"class":580},[34,242907,105194],{"class":50},[34,242909,242910],{"class":40},"     // Explicitly nil\n",[34,242912,242913],{"class":36,"line":65},[34,242914,62],{"emptyLinePlaceholder":61},[34,242916,242917],{"class":36,"line":71},[34,242918,242919],{"class":40},"// Unwrapping optionals\n",[34,242921,242922,242924,242926,242929,242931],{"class":36,"line":77},[34,242923,10383],{"class":580},[34,242925,216097],{"class":580},[34,242927,242928],{"class":181}," unwrapped ",[34,242930,1301],{"class":580},[34,242932,242933],{"class":181}," optionalString {\n",[34,242935,242936,242938,242941],{"class":36,"line":82},[34,242937,141419],{"class":50},[34,242939,242940],{"class":181},"(unwrapped)            ",[34,242942,242943],{"class":40},"// Safe unwrapping\n",[34,242945,242946],{"class":36,"line":88},[34,242947,693],{"class":181},[34,242949,242950],{"class":36,"line":242},[34,242951,62],{"emptyLinePlaceholder":61},[34,242953,242954],{"class":36,"line":250},[34,242955,242956],{"class":40},"// Nil coalescing\n",[34,242958,242959,242961,242963,242965,242968,242970,242972],{"class":36,"line":263},[34,242960,8268],{"class":580},[34,242962,20093],{"class":181},[34,242964,1301],{"class":580},[34,242966,242967],{"class":181}," optionalString ",[34,242969,34195],{"class":580},[34,242971,37389],{"class":54},[34,242973,242974],{"class":40},"  // Use default if nil\n",[34,242976,242977],{"class":36,"line":275},[34,242978,62],{"emptyLinePlaceholder":61},[34,242980,242981],{"class":36,"line":700},[34,242982,126103],{"class":40},[34,242984,242985,242987,242989,242991,242994,242996,242998,243000],{"class":36,"line":706},[34,242986,8268],{"class":580},[34,242988,121315],{"class":181},[34,242990,1301],{"class":580},[34,242992,242993],{"class":181}," optionalString",[34,242995,18954],{"class":580},[34,242997,151],{"class":181},[34,242999,4284],{"class":50},[34,243001,243002],{"class":40},"        // Returns optional\n",[34,243004,243005],{"class":36,"line":715},[34,243006,62],{"emptyLinePlaceholder":61},[34,243008,243009],{"class":36,"line":725},[34,243010,243011],{"class":40},"// Force unwrapping (use with caution)\n",[34,243013,243014,243016,243019,243021,243023,243025],{"class":36,"line":734},[34,243015,8268],{"class":580},[34,243017,243018],{"class":181}," forced ",[34,243020,1301],{"class":580},[34,243022,242993],{"class":181},[34,243024,10307],{"class":580},[34,243026,243027],{"class":40},"              // Crashes if nil\n",[34,243029,243030],{"class":36,"line":742},[34,243031,62],{"emptyLinePlaceholder":61},[34,243033,243034],{"class":36,"line":748},[34,243035,243036],{"class":40},"// Guard statement\n",[34,243038,243039,243041,243043,243045,243047,243049,243051,243053],{"class":36,"line":754},[34,243040,105159],{"class":580},[34,243042,31325],{"class":47},[34,243044,1607],{"class":181},[34,243046,2871],{"class":47},[34,243048,182],{"class":181},[34,243050,51427],{"class":50},[34,243052,18954],{"class":580},[34,243054,2416],{"class":181},[34,243056,243057,243059,243061,243063,243065,243067,243069],{"class":36,"line":759},[34,243058,242571],{"class":580},[34,243060,216097],{"class":580},[34,243062,8271],{"class":181},[34,243064,1301],{"class":580},[34,243066,8271],{"class":181},[34,243068,18871],{"class":580},[34,243070,661],{"class":181},[34,243072,243073,243075],{"class":36,"line":771},[34,243074,13895],{"class":580},[34,243076,243077],{"class":40},"                  // Early exit if nil\n",[34,243079,243080],{"class":36,"line":794},[34,243081,3229],{"class":181},[34,243083,243084,243086],{"class":36,"line":824},[34,243085,141419],{"class":50},[34,243087,104026],{"class":181},[34,243089,243090],{"class":36,"line":830},[34,243091,693],{"class":181},[388,243093,125059],{},{"title":30,"searchDepth":44,"depth":44,"links":243095},[243096],{"id":242867,"depth":44,"text":242862},"Optionals in Swift.",{},"/swift/optionals",{"title":242862,"description":243097},"swift/optionals",[239827,240224,53545,235383],"HCAGAKlgfIY0XQELBGATN9UAIDkMQJKbTpvvN5tWeRw",{"id":243105,"title":243106,"body":243107,"date":2633,"description":243179,"extension":404,"meta":243180,"navigation":61,"order":37,"path":243181,"seo":243182,"stem":243183,"subject":239827,"tags":243184,"__hash__":243185},"topics/swift/overview.md","Swift",{"type":8,"value":243108,"toc":243177},[243109],[309,243110,243111,243115,243120,243124,243128,243132,243136,243140,243144,243150,243154,243159,243163,243167,243173],{},[312,243112,243113],{},[145,243114,22151],{"href":242855},[312,243116,243117],{},[145,243118,12166],{"href":243119},"/swift/variables",[312,243121,243122],{},[145,243123,61423],{"href":241428},[312,243125,243126],{},[145,243127,242862],{"href":243099},[312,243129,243130],{},[145,243131,83157],{"href":240821},[312,243133,243134],{},[145,243135,18818],{"href":241230},[312,243137,243138],{},[145,243139,10991],{"href":242743},[312,243141,243142],{},[145,243143,240228],{"href":240495},[312,243145,243146],{},[145,243147,243149],{"href":243148},"/swift/structs-and-classes","Structs and Classes",[312,243151,243152],{},[145,243153,19352],{"href":242056},[312,243155,243156],{},[145,243157,80080],{"href":243158},"/swift/string-operations",[312,243160,243161],{},[145,243162,183237],{"href":240220},[312,243164,243165],{},[145,243166,241435],{"href":241754},[312,243168,243169],{},[145,243170,243172],{"href":243171},"/swift/property-observers","Property Observers",[312,243174,243175],{},[145,243176,90562],{"href":242327},{"title":30,"searchDepth":44,"depth":44,"links":243178},[],"Essential Swift syntax, data structures, and common operations for iOS and macOS development.",{},"/swift/overview",{"title":243106,"description":243179},"swift/overview",[239827,240224,53545,235383],"zf04bAIQYu8_6zOkA5WrEunmXBlcqxLA6aqElWOcEOQ",{"id":243187,"title":243172,"body":243188,"date":402,"description":243333,"extension":404,"meta":243334,"navigation":61,"order":715,"path":243171,"seo":243335,"stem":243336,"subject":239827,"tags":243337,"__hash__":243338},"topics/swift/property-observers.md",{"type":8,"value":243189,"toc":243330},[243190,243193,243327],[11,243191,243172],{"id":243192},"property-observers",[25,243194,243196],{"className":239825,"code":243195,"language":239827,"meta":30,"style":30},"struct BankAccount {\n    var balance: Double = 0 {\n        willSet {\n            print(\"About to set balance to \\(newValue)\")\n        }\n        didSet {\n            if balance \u003C 0 {\n                balance = oldValue  // Revert if negative\n            }\n        }\n    }\n}\n\nvar account = BankAccount()\naccount.balance = 100           // Triggers willSet and didSet\n",[20,243197,243198,243207,243222,243229,243246,243250,243257,243269,243282,243286,243290,243294,243298,243302,243315],{"__ignoreMap":30},[34,243199,243200,243202,243205],{"class":36,"line":37},[34,243201,21640],{"class":580},[34,243203,243204],{"class":47}," BankAccount",[34,243206,661],{"class":181},[34,243208,243209,243211,243214,243216,243218,243220],{"class":36,"line":44},[34,243210,33908],{"class":580},[34,243212,243213],{"class":181}," balance: ",[34,243215,241275],{"class":50},[34,243217,683],{"class":580},[34,243219,8070],{"class":50},[34,243221,661],{"class":181},[34,243223,243224,243227],{"class":36,"line":58},[34,243225,243226],{"class":580},"        willSet",[34,243228,661],{"class":181},[34,243230,243231,243234,243236,243239,243242,243244],{"class":36,"line":65},[34,243232,243233],{"class":50},"            print",[34,243235,1607],{"class":181},[34,243237,243238],{"class":54},"\"About to set balance to ",[34,243240,243241],{"class":54},"\\(newValue)",[34,243243,10389],{"class":54},[34,243245,3372],{"class":181},[34,243247,243248],{"class":36,"line":71},[34,243249,26208],{"class":181},[34,243251,243252,243255],{"class":36,"line":77},[34,243253,243254],{"class":580},"        didSet",[34,243256,661],{"class":181},[34,243258,243259,243261,243263,243265,243267],{"class":36,"line":82},[34,243260,49591],{"class":580},[34,243262,154154],{"class":181},[34,243264,815],{"class":580},[34,243266,8070],{"class":50},[34,243268,661],{"class":181},[34,243270,243271,243274,243276,243279],{"class":36,"line":88},[34,243272,243273],{"class":181},"                balance ",[34,243275,1301],{"class":580},[34,243277,243278],{"class":181}," oldValue  ",[34,243280,243281],{"class":40},"// Revert if negative\n",[34,243283,243284],{"class":36,"line":242},[34,243285,28156],{"class":181},[34,243287,243288],{"class":36,"line":250},[34,243289,26208],{"class":181},[34,243291,243292],{"class":36,"line":263},[34,243293,3229],{"class":181},[34,243295,243296],{"class":36,"line":275},[34,243297,693],{"class":181},[34,243299,243300],{"class":36,"line":700},[34,243301,62],{"emptyLinePlaceholder":61},[34,243303,243304,243306,243309,243311,243313],{"class":36,"line":706},[34,243305,34404],{"class":580},[34,243307,243308],{"class":181}," account ",[34,243310,1301],{"class":580},[34,243312,243204],{"class":50},[34,243314,33899],{"class":181},[34,243316,243317,243320,243322,243324],{"class":36,"line":715},[34,243318,243319],{"class":181},"account.balance ",[34,243321,1301],{"class":580},[34,243323,25168],{"class":50},[34,243325,243326],{"class":40},"           // Triggers willSet and didSet\n",[388,243328,243329],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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":30,"searchDepth":44,"depth":44,"links":243331},[243332],{"id":243192,"depth":44,"text":243172},"Property Observers in Swift.",{},{"title":243172,"description":243333},"swift/property-observers",[239827,240224,53545,235383],"polCiini4dCiGJQMW_kmaTCgh8y1eozuB2DzCh1tfBk",{"id":243340,"title":80080,"body":243341,"date":402,"description":243633,"extension":404,"meta":243634,"navigation":61,"order":275,"path":243158,"seo":243635,"stem":243636,"subject":239827,"tags":243637,"__hash__":243638},"topics/swift/string-operations.md",{"type":8,"value":243342,"toc":243630},[243343,243345,243627],[11,243344,80080],{"id":80079},[25,243346,243348],{"className":239825,"code":243347,"language":239827,"meta":30,"style":30},"let text = \"Hello, Swift!\"\n\n// Properties\ntext.count                      // 13\ntext.isEmpty                    // false\ntext.uppercased()               // \"HELLO, SWIFT!\"\ntext.lowercased()               // \"hello, swift!\"\n\n// Checking content\ntext.hasPrefix(\"Hello\")         // true\ntext.hasSuffix(\"!\")             // true\ntext.contains(\"Swift\")          // true\n\n// Splitting and joining\nlet words = text.split(separator: \" \")  // [\"Hello,\", \"Swift!\"]\nlet joined = words.joined(separator: \"-\")\n\n// Substring\nlet index = text.index(text.startIndex, offsetBy: 5)\nlet substring = text[..\u003Cindex]  // \"Hello\"\n\n// String interpolation\nlet name = \"Alice\"\nlet age = 30\nlet message = \"Name: \\(name), Age: \\(age)\"\n",[20,243349,243350,243361,243365,243369,243378,243387,243398,243410,243414,243419,243433,243448,243463,243467,243472,243499,243524,243528,243532,243560,243579,243583,243587,243597,243607],{"__ignoreMap":30},[34,243351,243352,243354,243356,243358],{"class":36,"line":37},[34,243353,8268],{"class":580},[34,243355,32978],{"class":181},[34,243357,1301],{"class":580},[34,243359,243360],{"class":54}," \"Hello, Swift!\"\n",[34,243362,243363],{"class":36,"line":44},[34,243364,62],{"emptyLinePlaceholder":61},[34,243366,243367],{"class":36,"line":58},[34,243368,133500],{"class":40},[34,243370,243371,243373,243375],{"class":36,"line":65},[34,243372,37850],{"class":181},[34,243374,4284],{"class":50},[34,243376,243377],{"class":40},"                      // 13\n",[34,243379,243380,243382,243384],{"class":36,"line":71},[34,243381,37850],{"class":181},[34,243383,51729],{"class":50},[34,243385,243386],{"class":40},"                    // false\n",[34,243388,243389,243391,243393,243395],{"class":36,"line":77},[34,243390,37850],{"class":181},[34,243392,240613],{"class":50},[34,243394,214672],{"class":181},[34,243396,243397],{"class":40},"// \"HELLO, SWIFT!\"\n",[34,243399,243400,243402,243405,243407],{"class":36,"line":82},[34,243401,37850],{"class":181},[34,243403,243404],{"class":50},"lowercased",[34,243406,214672],{"class":181},[34,243408,243409],{"class":40},"// \"hello, swift!\"\n",[34,243411,243412],{"class":36,"line":88},[34,243413,62],{"emptyLinePlaceholder":61},[34,243415,243416],{"class":36,"line":242},[34,243417,243418],{"class":40},"// Checking content\n",[34,243420,243421,243423,243425,243427,243429,243431],{"class":36,"line":250},[34,243422,37850],{"class":181},[34,243424,240636],{"class":50},[34,243426,1607],{"class":181},[34,243428,15564],{"class":54},[34,243430,152329],{"class":181},[34,243432,33492],{"class":40},[34,243434,243435,243437,243440,243442,243444,243446],{"class":36,"line":263},[34,243436,37850],{"class":181},[34,243438,243439],{"class":50},"hasSuffix",[34,243441,1607],{"class":181},[34,243443,32548],{"class":54},[34,243445,104305],{"class":181},[34,243447,33492],{"class":40},[34,243449,243450,243452,243454,243456,243459,243461],{"class":36,"line":275},[34,243451,37850],{"class":181},[34,243453,51780],{"class":50},[34,243455,1607],{"class":181},[34,243457,243458],{"class":54},"\"Swift\"",[34,243460,104258],{"class":181},[34,243462,33492],{"class":40},[34,243464,243465],{"class":36,"line":700},[34,243466,62],{"emptyLinePlaceholder":61},[34,243468,243469],{"class":36,"line":706},[34,243470,243471],{"class":40},"// Splitting and joining\n",[34,243473,243474,243476,243479,243481,243483,243485,243487,243490,243492,243494,243496],{"class":36,"line":715},[34,243475,8268],{"class":580},[34,243477,243478],{"class":181}," words ",[34,243480,1301],{"class":580},[34,243482,202707],{"class":181},[34,243484,124354],{"class":50},[34,243486,1607],{"class":181},[34,243488,243489],{"class":50},"separator",[34,243491,182],{"class":181},[34,243493,177200],{"class":54},[34,243495,76021],{"class":181},[34,243497,243498],{"class":40},"// [\"Hello,\", \"Swift!\"]\n",[34,243500,243501,243503,243506,243508,243511,243514,243516,243518,243520,243522],{"class":36,"line":725},[34,243502,8268],{"class":580},[34,243504,243505],{"class":181}," joined ",[34,243507,1301],{"class":580},[34,243509,243510],{"class":181}," words.",[34,243512,243513],{"class":50},"joined",[34,243515,1607],{"class":181},[34,243517,243489],{"class":50},[34,243519,182],{"class":181},[34,243521,104287],{"class":54},[34,243523,3372],{"class":181},[34,243525,243526],{"class":36,"line":734},[34,243527,62],{"emptyLinePlaceholder":61},[34,243529,243530],{"class":36,"line":742},[34,243531,177674],{"class":40},[34,243533,243534,243536,243538,243540,243542,243544,243546,243549,243551,243554,243556,243558],{"class":36,"line":748},[34,243535,8268],{"class":580},[34,243537,19942],{"class":181},[34,243539,1301],{"class":580},[34,243541,202707],{"class":181},[34,243543,200432],{"class":50},[34,243545,72214],{"class":181},[34,243547,243548],{"class":50},"startIndex",[34,243550,1798],{"class":181},[34,243552,243553],{"class":50},"offsetBy",[34,243555,182],{"class":181},[34,243557,2778],{"class":50},[34,243559,3372],{"class":181},[34,243561,243562,243564,243567,243569,243572,243574,243577],{"class":36,"line":754},[34,243563,8268],{"class":580},[34,243565,243566],{"class":181}," substring ",[34,243568,1301],{"class":580},[34,243570,243571],{"class":181}," text[",[34,243573,241100],{"class":580},[34,243575,243576],{"class":181},"index]  ",[34,243578,37952],{"class":40},[34,243580,243581],{"class":36,"line":759},[34,243582,62],{"emptyLinePlaceholder":61},[34,243584,243585],{"class":36,"line":771},[34,243586,37722],{"class":40},[34,243588,243589,243591,243593,243595],{"class":36,"line":794},[34,243590,8268],{"class":580},[34,243592,30212],{"class":181},[34,243594,1301],{"class":580},[34,243596,142978],{"class":54},[34,243598,243599,243601,243603,243605],{"class":36,"line":824},[34,243600,8268],{"class":580},[34,243602,25065],{"class":181},[34,243604,1301],{"class":580},[34,243606,87383],{"class":50},[34,243608,243609,243611,243613,243615,243618,243620,243622,243625],{"class":36,"line":830},[34,243610,8268],{"class":580},[34,243612,125023],{"class":181},[34,243614,1301],{"class":580},[34,243616,243617],{"class":54}," \"Name: ",[34,243619,242377],{"class":54},[34,243621,104363],{"class":54},[34,243623,243624],{"class":54},"\\(age)",[34,243626,11320],{"class":54},[388,243628,243629],{},"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 .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}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":30,"searchDepth":44,"depth":44,"links":243631},[243632],{"id":80079,"depth":44,"text":80080},"String Operations in Swift.",{},{"title":80080,"description":243633},"swift/string-operations",[239827,240224,53545,235383],"GFJe4bJnooaBDwskdkWRtkZDVgPnaePhFWeZntc6el0",{"id":243640,"title":243149,"body":243641,"date":402,"description":244145,"extension":404,"meta":244146,"navigation":61,"order":250,"path":243148,"seo":244147,"stem":244148,"subject":239827,"tags":244149,"__hash__":244150},"topics/swift/structs-and-classes.md",{"type":8,"value":243642,"toc":244142},[243643,243646,244140],[11,243644,243149],{"id":243645},"structs-and-classes",[25,243647,243649],{"className":239825,"code":243648,"language":239827,"meta":30,"style":30},"// Struct (value type, preferred)\nstruct Point {\n    var x: Int\n    var y: Int\n    \n    // Method\n    mutating func moveBy(x deltaX: Int, y deltaY: Int) {\n        x += deltaX\n        y += deltaY\n    }\n}\n\nvar point = Point(x: 0, y: 0)   // Memberwise initializer\npoint.moveBy(x: 5, y: 10)\n\n// Class (reference type)\nclass Person {\n    var name: String\n    var age: Int\n    \n    // Initializer\n    init(name: String, age: Int) {\n        self.name = name\n        self.age = age\n    }\n    \n    // Method\n    func introduce() -> String {\n        return \"I'm \\(name), \\(age) years old\"\n    }\n}\n\nlet person = Person(name: \"Alice\", age: 30)\nperson.introduce()\n\n// Inheritance\nclass Student: Person {\n    var studentId: String\n    \n    init(name: String, age: Int, studentId: String) {\n        self.studentId = studentId\n        super.init(name: name, age: age)\n    }\n    \n    override func introduce() -> String {\n        return \"\\(super.introduce()), ID: \\(studentId)\"\n    }\n}\n",[20,243650,243651,243656,243664,243673,243682,243686,243690,243720,243730,243740,243744,243748,243752,243784,243810,243814,243819,243827,243835,243843,243847,243852,243874,243884,243894,243898,243902,243906,243920,243936,243940,243944,243948,243976,243985,243989,243993,244006,244015,244019,244050,244062,244082,244086,244090,244106,244132,244136],{"__ignoreMap":30},[34,243652,243653],{"class":36,"line":37},[34,243654,243655],{"class":40},"// Struct (value type, preferred)\n",[34,243657,243658,243660,243662],{"class":36,"line":44},[34,243659,21640],{"class":580},[34,243661,37679],{"class":47},[34,243663,661],{"class":181},[34,243665,243666,243668,243671],{"class":36,"line":58},[34,243667,33908],{"class":580},[34,243669,243670],{"class":181}," x: ",[34,243672,135501],{"class":50},[34,243674,243675,243677,243680],{"class":36,"line":65},[34,243676,33908],{"class":580},[34,243678,243679],{"class":181}," y: ",[34,243681,135501],{"class":50},[34,243683,243684],{"class":36,"line":71},[34,243685,3666],{"class":181},[34,243687,243688],{"class":36,"line":77},[34,243689,34342],{"class":40},[34,243691,243692,243695,243697,243700,243702,243704,243707,243709,243711,243713,243716,243718],{"class":36,"line":82},[34,243693,243694],{"class":580},"    mutating",[34,243696,105616],{"class":580},[34,243698,243699],{"class":47}," moveBy",[34,243701,1607],{"class":181},[34,243703,23655],{"class":47},[34,243705,243706],{"class":181}," deltaX: ",[34,243708,133344],{"class":50},[34,243710,1798],{"class":181},[34,243712,60946],{"class":47},[34,243714,243715],{"class":181}," deltaY: ",[34,243717,133344],{"class":50},[34,243719,2416],{"class":181},[34,243721,243722,243725,243727],{"class":36,"line":88},[34,243723,243724],{"class":181},"        x ",[34,243726,31462],{"class":580},[34,243728,243729],{"class":181}," deltaX\n",[34,243731,243732,243735,243737],{"class":36,"line":242},[34,243733,243734],{"class":181},"        y ",[34,243736,31462],{"class":580},[34,243738,243739],{"class":181}," deltaY\n",[34,243741,243742],{"class":36,"line":250},[34,243743,3229],{"class":181},[34,243745,243746],{"class":36,"line":263},[34,243747,693],{"class":181},[34,243749,243750],{"class":36,"line":275},[34,243751,62],{"emptyLinePlaceholder":61},[34,243753,243754,243756,243759,243761,243763,243765,243767,243769,243771,243773,243775,243777,243779,243781],{"class":36,"line":700},[34,243755,34404],{"class":580},[34,243757,243758],{"class":181}," point ",[34,243760,1301],{"class":580},[34,243762,37679],{"class":50},[34,243764,1607],{"class":181},[34,243766,23655],{"class":50},[34,243768,182],{"class":181},[34,243770,2773],{"class":50},[34,243772,1798],{"class":181},[34,243774,60946],{"class":50},[34,243776,182],{"class":181},[34,243778,2773],{"class":50},[34,243780,103720],{"class":181},[34,243782,243783],{"class":40},"// Memberwise initializer\n",[34,243785,243786,243789,243792,243794,243796,243798,243800,243802,243804,243806,243808],{"class":36,"line":706},[34,243787,243788],{"class":181},"point.",[34,243790,243791],{"class":50},"moveBy",[34,243793,1607],{"class":181},[34,243795,23655],{"class":50},[34,243797,182],{"class":181},[34,243799,2778],{"class":50},[34,243801,1798],{"class":181},[34,243803,60946],{"class":50},[34,243805,182],{"class":181},[34,243807,11923],{"class":50},[34,243809,3372],{"class":181},[34,243811,243812],{"class":36,"line":715},[34,243813,62],{"emptyLinePlaceholder":61},[34,243815,243816],{"class":36,"line":725},[34,243817,243818],{"class":40},"// Class (reference type)\n",[34,243820,243821,243823,243825],{"class":36,"line":734},[34,243822,30060],{"class":580},[34,243824,30063],{"class":47},[34,243826,661],{"class":181},[34,243828,243829,243831,243833],{"class":36,"line":742},[34,243830,33908],{"class":580},[34,243832,133332],{"class":181},[34,243834,133378],{"class":50},[34,243836,243837,243839,243841],{"class":36,"line":748},[34,243838,33908],{"class":580},[34,243840,133341],{"class":181},[34,243842,135501],{"class":50},[34,243844,243845],{"class":36,"line":754},[34,243846,3666],{"class":181},[34,243848,243849],{"class":36,"line":759},[34,243850,243851],{"class":40},"    // Initializer\n",[34,243853,243854,243856,243858,243860,243862,243864,243866,243868,243870,243872],{"class":36,"line":771},[34,243855,133383],{"class":580},[34,243857,1607],{"class":181},[34,243859,178],{"class":47},[34,243861,182],{"class":181},[34,243863,51427],{"class":50},[34,243865,1798],{"class":181},[34,243867,13337],{"class":47},[34,243869,182],{"class":181},[34,243871,133344],{"class":50},[34,243873,2416],{"class":181},[34,243875,243876,243878,243880,243882],{"class":36,"line":794},[34,243877,193989],{"class":50},[34,243879,121800],{"class":181},[34,243881,1301],{"class":580},[34,243883,11232],{"class":181},[34,243885,243886,243888,243890,243892],{"class":36,"line":824},[34,243887,193989],{"class":50},[34,243889,121811],{"class":181},[34,243891,1301],{"class":580},[34,243893,133483],{"class":181},[34,243895,243896],{"class":36,"line":830},[34,243897,3229],{"class":181},[34,243899,243900],{"class":36,"line":839},[34,243901,3666],{"class":181},[34,243903,243904],{"class":36,"line":854},[34,243905,34342],{"class":40},[34,243907,243908,243910,243912,243914,243916,243918],{"class":36,"line":860},[34,243909,242120],{"class":580},[34,243911,30188],{"class":47},[34,243913,672],{"class":181},[34,243915,24863],{"class":580},[34,243917,131103],{"class":50},[34,243919,661],{"class":181},[34,243921,243922,243924,243927,243929,243931,243933],{"class":36,"line":865},[34,243923,13895],{"class":580},[34,243925,243926],{"class":54}," \"I'm ",[34,243928,242377],{"class":54},[34,243930,1798],{"class":54},[34,243932,243624],{"class":54},[34,243934,243935],{"class":54}," years old\"\n",[34,243937,243938],{"class":36,"line":870},[34,243939,3229],{"class":181},[34,243941,243942],{"class":36,"line":876},[34,243943,693],{"class":181},[34,243945,243946],{"class":36,"line":885},[34,243947,62],{"emptyLinePlaceholder":61},[34,243949,243950,243952,243954,243956,243958,243960,243962,243964,243966,243968,243970,243972,243974],{"class":36,"line":895},[34,243951,8268],{"class":580},[34,243953,37647],{"class":181},[34,243955,1301],{"class":580},[34,243957,30063],{"class":50},[34,243959,1607],{"class":181},[34,243961,178],{"class":50},[34,243963,182],{"class":181},[34,243965,21650],{"class":54},[34,243967,1798],{"class":181},[34,243969,13337],{"class":50},[34,243971,182],{"class":181},[34,243973,17625],{"class":50},[34,243975,3372],{"class":181},[34,243977,243978,243980,243983],{"class":36,"line":904},[34,243979,208757],{"class":181},[34,243981,243982],{"class":50},"introduce",[34,243984,33899],{"class":181},[34,243986,243987],{"class":36,"line":915},[34,243988,62],{"emptyLinePlaceholder":61},[34,243990,243991],{"class":36,"line":927},[34,243992,36137],{"class":40},[34,243994,243995,243997,243999,244001,244004],{"class":36,"line":932},[34,243996,30060],{"class":580},[34,243998,208797],{"class":47},[34,244000,182],{"class":181},[34,244002,244003],{"class":47},"Person ",[34,244005,25296],{"class":181},[34,244007,244008,244010,244013],{"class":36,"line":944},[34,244009,33908],{"class":580},[34,244011,244012],{"class":181}," studentId: ",[34,244014,133378],{"class":50},[34,244016,244017],{"class":36,"line":966},[34,244018,3666],{"class":181},[34,244020,244021,244023,244025,244027,244029,244031,244033,244035,244037,244039,244041,244044,244046,244048],{"class":36,"line":1948},[34,244022,133383],{"class":580},[34,244024,1607],{"class":181},[34,244026,178],{"class":47},[34,244028,182],{"class":181},[34,244030,51427],{"class":50},[34,244032,1798],{"class":181},[34,244034,13337],{"class":47},[34,244036,182],{"class":181},[34,244038,133344],{"class":50},[34,244040,1798],{"class":181},[34,244042,244043],{"class":47},"studentId",[34,244045,182],{"class":181},[34,244047,51427],{"class":50},[34,244049,2416],{"class":181},[34,244051,244052,244054,244057,244059],{"class":36,"line":1953},[34,244053,193989],{"class":50},[34,244055,244056],{"class":181},".studentId ",[34,244058,1301],{"class":580},[34,244060,244061],{"class":181}," studentId\n",[34,244063,244064,244066,244068,244070,244072,244074,244077,244079],{"class":36,"line":3616},[34,244065,122027],{"class":50},[34,244067,151],{"class":181},[34,244069,37457],{"class":580},[34,244071,1607],{"class":181},[34,244073,178],{"class":50},[34,244075,244076],{"class":181},": name, ",[34,244078,13337],{"class":50},[34,244080,244081],{"class":181},": age)\n",[34,244083,244084],{"class":36,"line":3622},[34,244085,3229],{"class":181},[34,244087,244088],{"class":36,"line":3642},[34,244089,3666],{"class":181},[34,244091,244092,244094,244096,244098,244100,244102,244104],{"class":36,"line":3657},[34,244093,133677],{"class":580},[34,244095,105616],{"class":580},[34,244097,30188],{"class":47},[34,244099,672],{"class":181},[34,244101,24863],{"class":580},[34,244103,131103],{"class":50},[34,244105,661],{"class":181},[34,244107,244108,244110,244112,244115,244117,244119,244121,244124,244127,244130],{"class":36,"line":3663},[34,244109,13895],{"class":580},[34,244111,10326],{"class":54},[34,244113,244114],{"class":54},"\\(",[34,244116,208855],{"class":50},[34,244118,151],{"class":54},[34,244120,243982],{"class":50},[34,244122,244123],{"class":54},"())",[34,244125,244126],{"class":54},", ID: ",[34,244128,244129],{"class":54},"\\(studentId)",[34,244131,11320],{"class":54},[34,244133,244134],{"class":36,"line":3669},[34,244135,3229],{"class":181},[34,244137,244138],{"class":36,"line":3675},[34,244139,693],{"class":181},[388,244141,49910],{},{"title":30,"searchDepth":44,"depth":44,"links":244143},[244144],{"id":243645,"depth":44,"text":243149},"Structs and Classes in Swift.",{},{"title":243149,"description":244145},"swift/structs-and-classes",[239827,240224,53545,235383],"V0-FC7At8HgwM___vkQuSvqa2IrhUI73WAAH9-bfvak",{"id":244152,"title":12166,"body":244153,"date":402,"description":244282,"extension":404,"meta":244283,"navigation":61,"order":58,"path":243119,"seo":244284,"stem":244285,"subject":239827,"tags":244286,"__hash__":244287},"topics/swift/variables.md",{"type":8,"value":244154,"toc":244279},[244155,244157,244277],[11,244156,12166],{"id":13314},[25,244158,244160],{"className":239825,"code":244159,"language":239827,"meta":30,"style":30},"// Immutable constants (preferred)\nlet name = \"Alice\"              // Type inference\nlet age: Int = 30               // Explicit type\nlet pi = 3.14159                // Double by default\n\n// Mutable variables\nvar score = 0                   // Can be changed\nvar message: String = \"Hello\"   // Explicit type\n\n// Multiple declarations\nlet x = 5, y = 10, z = 15\n",[20,244161,244162,244167,244180,244195,244208,244212,244217,244230,244245,244249,244253],{"__ignoreMap":30},[34,244163,244164],{"class":36,"line":37},[34,244165,244166],{"class":40},"// Immutable constants (preferred)\n",[34,244168,244169,244171,244173,244175,244177],{"class":36,"line":44},[34,244170,8268],{"class":580},[34,244172,30212],{"class":181},[34,244174,1301],{"class":580},[34,244176,25138],{"class":54},[34,244178,244179],{"class":40},"              // Type inference\n",[34,244181,244182,244184,244186,244188,244190,244192],{"class":36,"line":58},[34,244183,8268],{"class":580},[34,244185,133341],{"class":181},[34,244187,133344],{"class":50},[34,244189,683],{"class":580},[34,244191,30458],{"class":50},[34,244193,244194],{"class":40},"               // Explicit type\n",[34,244196,244197,244199,244201,244203,244205],{"class":36,"line":65},[34,244198,8268],{"class":580},[34,244200,25100],{"class":181},[34,244202,1301],{"class":580},[34,244204,23604],{"class":50},[34,244206,244207],{"class":40},"                // Double by default\n",[34,244209,244210],{"class":36,"line":71},[34,244211,62],{"emptyLinePlaceholder":61},[34,244213,244214],{"class":36,"line":77},[34,244215,244216],{"class":40},"// Mutable variables\n",[34,244218,244219,244221,244223,244225,244227],{"class":36,"line":82},[34,244220,34404],{"class":580},[34,244222,151067],{"class":181},[34,244224,1301],{"class":580},[34,244226,8070],{"class":50},[34,244228,244229],{"class":40},"                   // Can be changed\n",[34,244231,244232,244234,244236,244238,244240,244242],{"class":36,"line":88},[34,244233,34404],{"class":580},[34,244235,137013],{"class":181},[34,244237,51427],{"class":50},[34,244239,683],{"class":580},[34,244241,24377],{"class":54},[34,244243,244244],{"class":40},"   // Explicit type\n",[34,244246,244247],{"class":36,"line":242},[34,244248,62],{"emptyLinePlaceholder":61},[34,244250,244251],{"class":36,"line":250},[34,244252,27759],{"class":40},[34,244254,244255,244257,244259,244261,244263,244265,244267,244269,244272,244274],{"class":36,"line":263},[34,244256,8268],{"class":580},[34,244258,23172],{"class":181},[34,244260,1301],{"class":580},[34,244262,11144],{"class":50},[34,244264,143408],{"class":181},[34,244266,1301],{"class":580},[34,244268,13123],{"class":50},[34,244270,244271],{"class":181},", z ",[34,244273,1301],{"class":580},[34,244275,244276],{"class":50}," 15\n",[388,244278,10978],{},{"title":30,"searchDepth":44,"depth":44,"links":244280},[244281],{"id":13314,"depth":44,"text":12166},"Variables in Swift.",{},{"title":12166,"description":244282},"swift/variables",[239827,240224,53545,235383],"jefSdvj52m-uwVwWuaE4wx-jvNoRbZZ7ZNaa2Dssb5s",{"id":244289,"title":59741,"body":244290,"date":402,"description":244780,"extension":404,"meta":244781,"navigation":61,"order":44,"path":244782,"seo":244783,"stem":244784,"subject":46561,"tags":244785,"__hash__":244786},"topics/tailwind/components.md",{"type":8,"value":244291,"toc":244772},[244292,244296,244301,244325,244330,244355,244359,244364,244425,244427,244432,244501,244505,244510,244680,244684,244689,244714,244717,244722,244770],[11,244293,244295],{"id":244294},"buttons","Buttons",[16,244297,244298],{},[8471,244299,244300],{},"Basic Button:",[25,244302,244304],{"className":1162,"code":244303,"language":1164,"meta":30,"style":30},"\u003Cbutton class=\"px-4 py-2 bg-blue-500 text-white rounded\">Click Me\u003C/button>\n",[20,244305,244306],{"__ignoreMap":30},[34,244307,244308,244310,244312,244314,244316,244319,244321,244323],{"class":36,"line":37},[34,244309,815],{"class":181},[34,244311,4509],{"class":177},[34,244313,655],{"class":47},[34,244315,1301],{"class":181},[34,244317,244318],{"class":54},"\"px-4 py-2 bg-blue-500 text-white rounded\"",[34,244320,226046],{"class":181},[34,244322,4509],{"class":177},[34,244324,1248],{"class":181},[16,244326,244327],{},[8471,244328,244329],{},"Hover Effect:",[25,244331,244333],{"className":1162,"code":244332,"language":1164,"meta":30,"style":30},"\u003Cbutton class=\"px-4 py-2 bg-blue-500 hover:bg-blue-700 text-white rounded\">Hover Me\u003C/button>\n",[20,244334,244335],{"__ignoreMap":30},[34,244336,244337,244339,244341,244343,244345,244348,244351,244353],{"class":36,"line":37},[34,244338,815],{"class":181},[34,244340,4509],{"class":177},[34,244342,655],{"class":47},[34,244344,1301],{"class":181},[34,244346,244347],{"class":54},"\"px-4 py-2 bg-blue-500 hover:bg-blue-700 text-white rounded\"",[34,244349,244350],{"class":181},">Hover Me\u003C/",[34,244352,4509],{"class":177},[34,244354,1248],{"class":181},[11,244356,244358],{"id":244357},"cards","Cards",[16,244360,244361],{},[8471,244362,244363],{},"Basic Card:",[25,244365,244367],{"className":1162,"code":244366,"language":1164,"meta":30,"style":30},"\u003Cdiv class=\"border p-4 rounded shadow\">\n  \u003Ch2 class=\"text-lg font-bold\">Card Title\u003C/h2>\n  \u003Cp>Card content goes here.\u003C/p>\n\u003C/div>\n",[20,244368,244369,244384,244404,244417],{"__ignoreMap":30},[34,244370,244371,244373,244375,244377,244379,244382],{"class":36,"line":37},[34,244372,815],{"class":181},[34,244374,1240],{"class":177},[34,244376,655],{"class":47},[34,244378,1301],{"class":181},[34,244380,244381],{"class":54},"\"border p-4 rounded shadow\"",[34,244383,1248],{"class":181},[34,244385,244386,244388,244390,244392,244394,244397,244400,244402],{"class":36,"line":44},[34,244387,1181],{"class":181},[34,244389,11],{"class":177},[34,244391,655],{"class":47},[34,244393,1301],{"class":181},[34,244395,244396],{"class":54},"\"text-lg font-bold\"",[34,244398,244399],{"class":181},">Card Title\u003C/",[34,244401,11],{"class":177},[34,244403,1248],{"class":181},[34,244405,244406,244408,244410,244413,244415],{"class":36,"line":58},[34,244407,1181],{"class":181},[34,244409,16],{"class":177},[34,244411,244412],{"class":181},">Card content goes here.\u003C/",[34,244414,16],{"class":177},[34,244416,1248],{"class":181},[34,244418,244419,244421,244423],{"class":36,"line":65},[34,244420,2089],{"class":181},[34,244422,1240],{"class":177},[34,244424,1248],{"class":181},[11,244426,116015],{"id":116020},[16,244428,244429],{},[8471,244430,244431],{},"Form Example:",[25,244433,244435],{"className":1162,"code":244434,"language":1164,"meta":30,"style":30},"\u003Cform class=\"space-y-4\">\n  \u003Cinput class=\"border p-2 w-full\" placeholder=\"Your Name\">\n  \u003Cbutton class=\"px-4 py-2 bg-green-500 text-white rounded\">Submit\u003C/button>\n\u003C/form>\n",[20,244436,244437,244452,244474,244493],{"__ignoreMap":30},[34,244438,244439,244441,244443,244445,244447,244450],{"class":36,"line":37},[34,244440,815],{"class":181},[34,244442,4617],{"class":177},[34,244444,655],{"class":47},[34,244446,1301],{"class":181},[34,244448,244449],{"class":54},"\"space-y-4\"",[34,244451,1248],{"class":181},[34,244453,244454,244456,244458,244460,244462,244465,244467,244469,244472],{"class":36,"line":44},[34,244455,1181],{"class":181},[34,244457,4600],{"class":177},[34,244459,655],{"class":47},[34,244461,1301],{"class":181},[34,244463,244464],{"class":54},"\"border p-2 w-full\"",[34,244466,116101],{"class":47},[34,244468,1301],{"class":181},[34,244470,244471],{"class":54},"\"Your Name\"",[34,244473,1248],{"class":181},[34,244475,244476,244478,244480,244482,244484,244487,244489,244491],{"class":36,"line":58},[34,244477,1181],{"class":181},[34,244479,4509],{"class":177},[34,244481,655],{"class":47},[34,244483,1301],{"class":181},[34,244485,244486],{"class":54},"\"px-4 py-2 bg-green-500 text-white rounded\"",[34,244488,116812],{"class":181},[34,244490,4509],{"class":177},[34,244492,1248],{"class":181},[34,244494,244495,244497,244499],{"class":36,"line":65},[34,244496,2089],{"class":181},[34,244498,4617],{"class":177},[34,244500,1248],{"class":181},[11,244502,244504],{"id":244503},"navbar","Navbar",[16,244506,244507],{},[8471,244508,244509],{},"Responsive Navbar:",[25,244511,244513],{"className":1162,"code":244512,"language":1164,"meta":30,"style":30},"\u003Cnav class=\"flex items-center justify-between p-4 bg-gray-800 text-white\">\n  \u003Cspan class=\"text-lg font-bold\">Brand\u003C/span>\n  \u003Cul class=\"hidden md:flex space-x-4\">\n    \u003Cli>\u003Ca href=\"#\" class=\"hover:underline\">Home\u003C/a>\u003C/li>\n    \u003Cli>\u003Ca href=\"#\" class=\"hover:underline\">About\u003C/a>\u003C/li>\n    \u003Cli>\u003Ca href=\"#\" class=\"hover:underline\">Contact\u003C/a>\u003C/li>\n  \u003C/ul>\n\u003C/nav>\n",[20,244514,244515,244530,244549,244564,244598,244631,244664,244672],{"__ignoreMap":30},[34,244516,244517,244519,244521,244523,244525,244528],{"class":36,"line":37},[34,244518,815],{"class":181},[34,244520,115439],{"class":177},[34,244522,655],{"class":47},[34,244524,1301],{"class":181},[34,244526,244527],{"class":54},"\"flex items-center justify-between p-4 bg-gray-800 text-white\"",[34,244529,1248],{"class":181},[34,244531,244532,244534,244536,244538,244540,244542,244545,244547],{"class":36,"line":44},[34,244533,1181],{"class":181},[34,244535,34],{"class":177},[34,244537,655],{"class":47},[34,244539,1301],{"class":181},[34,244541,244396],{"class":54},[34,244543,244544],{"class":181},">Brand\u003C/",[34,244546,34],{"class":177},[34,244548,1248],{"class":181},[34,244550,244551,244553,244555,244557,244559,244562],{"class":36,"line":58},[34,244552,1181],{"class":181},[34,244554,309],{"class":177},[34,244556,655],{"class":47},[34,244558,1301],{"class":181},[34,244560,244561],{"class":54},"\"hidden md:flex space-x-4\"",[34,244563,1248],{"class":181},[34,244565,244566,244568,244570,244572,244574,244576,244578,244581,244583,244585,244588,244590,244592,244594,244596],{"class":36,"line":65},[34,244567,1294],{"class":181},[34,244569,312],{"class":177},[34,244571,2040],{"class":181},[34,244573,145],{"class":177},[34,244575,46472],{"class":47},[34,244577,1301],{"class":181},[34,244579,244580],{"class":54},"\"#\"",[34,244582,655],{"class":47},[34,244584,1301],{"class":181},[34,244586,244587],{"class":54},"\"hover:underline\"",[34,244589,90331],{"class":181},[34,244591,145],{"class":177},[34,244593,2050],{"class":181},[34,244595,312],{"class":177},[34,244597,1248],{"class":181},[34,244599,244600,244602,244604,244606,244608,244610,244612,244614,244616,244618,244620,244623,244625,244627,244629],{"class":36,"line":71},[34,244601,1294],{"class":181},[34,244603,312],{"class":177},[34,244605,2040],{"class":181},[34,244607,145],{"class":177},[34,244609,46472],{"class":47},[34,244611,1301],{"class":181},[34,244613,244580],{"class":54},[34,244615,655],{"class":47},[34,244617,1301],{"class":181},[34,244619,244587],{"class":54},[34,244621,244622],{"class":181},">About\u003C/",[34,244624,145],{"class":177},[34,244626,2050],{"class":181},[34,244628,312],{"class":177},[34,244630,1248],{"class":181},[34,244632,244633,244635,244637,244639,244641,244643,244645,244647,244649,244651,244653,244656,244658,244660,244662],{"class":36,"line":77},[34,244634,1294],{"class":181},[34,244636,312],{"class":177},[34,244638,2040],{"class":181},[34,244640,145],{"class":177},[34,244642,46472],{"class":47},[34,244644,1301],{"class":181},[34,244646,244580],{"class":54},[34,244648,655],{"class":47},[34,244650,1301],{"class":181},[34,244652,244587],{"class":54},[34,244654,244655],{"class":181},">Contact\u003C/",[34,244657,145],{"class":177},[34,244659,2050],{"class":181},[34,244661,312],{"class":177},[34,244663,1248],{"class":181},[34,244665,244666,244668,244670],{"class":36,"line":82},[34,244667,8547],{"class":181},[34,244669,309],{"class":177},[34,244671,1248],{"class":181},[34,244673,244674,244676,244678],{"class":36,"line":88},[34,244675,2089],{"class":181},[34,244677,115439],{"class":177},[34,244679,1248],{"class":181},[11,244681,244683],{"id":244682},"badges","Badges",[16,244685,244686],{},[8471,244687,244688],{},"Basic Badge:",[25,244690,244692],{"className":1162,"code":244691,"language":1164,"meta":30,"style":30},"\u003Cspan class=\"px-2 py-1 bg-red-500 text-white rounded-full\">New\u003C/span>\n",[20,244693,244694],{"__ignoreMap":30},[34,244695,244696,244698,244700,244702,244704,244707,244710,244712],{"class":36,"line":37},[34,244697,815],{"class":181},[34,244699,34],{"class":177},[34,244701,655],{"class":47},[34,244703,1301],{"class":181},[34,244705,244706],{"class":54},"\"px-2 py-1 bg-red-500 text-white rounded-full\"",[34,244708,244709],{"class":181},">New\u003C/",[34,244711,34],{"class":177},[34,244713,1248],{"class":181},[11,244715,244716],{"id":108701},"Alerts",[16,244718,244719],{},[8471,244720,244721],{},"Example Alert:",[25,244723,244725],{"className":1162,"code":244724,"language":1164,"meta":30,"style":30},"\u003Cdiv class=\"p-4 bg-yellow-200 border-l-4 border-yellow-600\">\n  \u003Cp class=\"text-yellow-800\">This is an alert message.\u003C/p>\n\u003C/div>\n",[20,244726,244727,244742,244762],{"__ignoreMap":30},[34,244728,244729,244731,244733,244735,244737,244740],{"class":36,"line":37},[34,244730,815],{"class":181},[34,244732,1240],{"class":177},[34,244734,655],{"class":47},[34,244736,1301],{"class":181},[34,244738,244739],{"class":54},"\"p-4 bg-yellow-200 border-l-4 border-yellow-600\"",[34,244741,1248],{"class":181},[34,244743,244744,244746,244748,244750,244752,244755,244758,244760],{"class":36,"line":44},[34,244745,1181],{"class":181},[34,244747,16],{"class":177},[34,244749,655],{"class":47},[34,244751,1301],{"class":181},[34,244753,244754],{"class":54},"\"text-yellow-800\"",[34,244756,244757],{"class":181},">This is an alert message.\u003C/",[34,244759,16],{"class":177},[34,244761,1248],{"class":181},[34,244763,244764,244766,244768],{"class":36,"line":58},[34,244765,2089],{"class":181},[34,244767,1240],{"class":177},[34,244769,1248],{"class":181},[388,244771,119315],{},{"title":30,"searchDepth":44,"depth":44,"links":244773},[244774,244775,244776,244777,244778,244779],{"id":244294,"depth":44,"text":244295},{"id":244357,"depth":44,"text":244358},{"id":116020,"depth":44,"text":116015},{"id":244503,"depth":44,"text":244504},{"id":244682,"depth":44,"text":244683},{"id":108701,"depth":44,"text":244716},"Common UI component patterns with Tailwind CSS utility classes.",{},"/tailwind/components",{"title":59741,"description":244780},"tailwind/components",[46561,38194,130077,226375],"2Nd5GWIx4xSr2xPjaZ3QA-ojEZiIvgR2N0vuAG8zj0U",{"id":244788,"title":244789,"body":244790,"date":402,"description":245327,"extension":404,"meta":245328,"navigation":61,"order":37,"path":245329,"seo":245330,"stem":245331,"subject":46561,"tags":245332,"__hash__":245334},"topics/tailwind/overview.md","Tailwind CSS",{"type":8,"value":244791,"toc":245315},[244792,244794,244797,244802,244831,244836,244862,244871,244875,244880,244947,244952,245019,245023,245026,245051,245053,245056,245080,245083,245086,245111,245115,245126,245151,245155,245158,245183,245187,245192,245251,245255,245258,245282,245284,245287,245312],[11,244793,97],{"id":96},[16,244795,244796],{},"Tailwind CSS can be added using several methods:",[16,244798,244799],{},[8471,244800,244801],{},"1. CLI Installation:",[25,244803,244805],{"className":27,"code":244804,"language":29,"meta":30,"style":30},"npm install -D tailwindcss postcss autoprefixer\nnpx tailwindcss init\n",[20,244806,244807,244823],{"__ignoreMap":30},[34,244808,244809,244811,244813,244815,244818,244820],{"class":36,"line":37},[34,244810,8177],{"class":47},[34,244812,118],{"class":54},[34,244814,13768],{"class":50},[34,244816,244817],{"class":54}," tailwindcss",[34,244819,183072],{"class":54},[34,244821,244822],{"class":54}," autoprefixer\n",[34,244824,244825,244827,244829],{"class":36,"line":44},[34,244826,8205],{"class":47},[34,244828,244817],{"class":54},[34,244830,8180],{"class":54},[16,244832,244833],{},[8471,244834,244835],{},"2. CDN Usage:",[25,244837,244839],{"className":1162,"code":244838,"language":1164,"meta":30,"style":30},"\u003Clink href=\"https://cdn.jsdelivr.net/npm/tailwindcss/dist/tailwind.min.css\" rel=\"stylesheet\">\n",[20,244840,244841],{"__ignoreMap":30},[34,244842,244843,244845,244847,244849,244851,244854,244856,244858,244860],{"class":36,"line":37},[34,244844,815],{"class":181},[34,244846,46469],{"class":177},[34,244848,46472],{"class":47},[34,244850,1301],{"class":181},[34,244852,244853],{"class":54},"\"https://cdn.jsdelivr.net/npm/tailwindcss/dist/tailwind.min.css\"",[34,244855,46480],{"class":47},[34,244857,1301],{"class":181},[34,244859,46485],{"class":54},[34,244861,1248],{"class":181},[16,244863,244864,244865,244870],{},"Refer to Tailwind's ",[145,244866,244869],{"href":244867,"rel":244868},"https://tailwindcss.com/docs/installation",[149],"installation guide"," for more options.",[11,244872,244874],{"id":244873},"layout-flexgrid","Layout (Flex/Grid)",[16,244876,244877],{},[8471,244878,244879],{},"Flexbox Example:",[25,244881,244883],{"className":1162,"code":244882,"language":1164,"meta":30,"style":30},"\u003Cdiv class=\"flex space-x-4\">\n  \u003Cdiv class=\"flex-1\">Item 1\u003C/div>\n  \u003Cdiv class=\"flex-1\">Item 2\u003C/div>\n\u003C/div>\n",[20,244884,244885,244900,244920,244939],{"__ignoreMap":30},[34,244886,244887,244889,244891,244893,244895,244898],{"class":36,"line":37},[34,244888,815],{"class":181},[34,244890,1240],{"class":177},[34,244892,655],{"class":47},[34,244894,1301],{"class":181},[34,244896,244897],{"class":54},"\"flex space-x-4\"",[34,244899,1248],{"class":181},[34,244901,244902,244904,244906,244908,244910,244913,244916,244918],{"class":36,"line":44},[34,244903,1181],{"class":181},[34,244905,1240],{"class":177},[34,244907,655],{"class":47},[34,244909,1301],{"class":181},[34,244911,244912],{"class":54},"\"flex-1\"",[34,244914,244915],{"class":181},">Item 1\u003C/",[34,244917,1240],{"class":177},[34,244919,1248],{"class":181},[34,244921,244922,244924,244926,244928,244930,244932,244935,244937],{"class":36,"line":58},[34,244923,1181],{"class":181},[34,244925,1240],{"class":177},[34,244927,655],{"class":47},[34,244929,1301],{"class":181},[34,244931,244912],{"class":54},[34,244933,244934],{"class":181},">Item 2\u003C/",[34,244936,1240],{"class":177},[34,244938,1248],{"class":181},[34,244940,244941,244943,244945],{"class":36,"line":65},[34,244942,2089],{"class":181},[34,244944,1240],{"class":177},[34,244946,1248],{"class":181},[16,244948,244949],{},[8471,244950,244951],{},"Grid Example:",[25,244953,244955],{"className":1162,"code":244954,"language":1164,"meta":30,"style":30},"\u003Cdiv class=\"grid grid-cols-3 gap-4\">\n  \u003Cdiv>Column 1\u003C/div>\n  \u003Cdiv>Column 2\u003C/div>\n  \u003Cdiv>Column 3\u003C/div>\n\u003C/div>\n",[20,244956,244957,244972,244985,244998,245011],{"__ignoreMap":30},[34,244958,244959,244961,244963,244965,244967,244970],{"class":36,"line":37},[34,244960,815],{"class":181},[34,244962,1240],{"class":177},[34,244964,655],{"class":47},[34,244966,1301],{"class":181},[34,244968,244969],{"class":54},"\"grid grid-cols-3 gap-4\"",[34,244971,1248],{"class":181},[34,244973,244974,244976,244978,244981,244983],{"class":36,"line":44},[34,244975,1181],{"class":181},[34,244977,1240],{"class":177},[34,244979,244980],{"class":181},">Column 1\u003C/",[34,244982,1240],{"class":177},[34,244984,1248],{"class":181},[34,244986,244987,244989,244991,244994,244996],{"class":36,"line":58},[34,244988,1181],{"class":181},[34,244990,1240],{"class":177},[34,244992,244993],{"class":181},">Column 2\u003C/",[34,244995,1240],{"class":177},[34,244997,1248],{"class":181},[34,244999,245000,245002,245004,245007,245009],{"class":36,"line":65},[34,245001,1181],{"class":181},[34,245003,1240],{"class":177},[34,245005,245006],{"class":181},">Column 3\u003C/",[34,245008,1240],{"class":177},[34,245010,1248],{"class":181},[34,245012,245013,245015,245017],{"class":36,"line":71},[34,245014,2089],{"class":181},[34,245016,1240],{"class":177},[34,245018,1248],{"class":181},[11,245020,245022],{"id":245021},"spacing","Spacing",[16,245024,245025],{},"Control padding and margins dynamically:",[25,245027,245029],{"className":1162,"code":245028,"language":1164,"meta":30,"style":30},"\u003Cdiv class=\"p-4 m-2\">Content\u003C/div>\n",[20,245030,245031],{"__ignoreMap":30},[34,245032,245033,245035,245037,245039,245041,245044,245047,245049],{"class":36,"line":37},[34,245034,815],{"class":181},[34,245036,1240],{"class":177},[34,245038,655],{"class":47},[34,245040,1301],{"class":181},[34,245042,245043],{"class":54},"\"p-4 m-2\"",[34,245045,245046],{"class":181},">Content\u003C/",[34,245048,1240],{"class":177},[34,245050,1248],{"class":181},[11,245052,40924],{"id":42054},[16,245054,245055],{},"Tailwind includes utilities for text styling:",[25,245057,245059],{"className":1162,"code":245058,"language":1164,"meta":30,"style":30},"\u003Cp class=\"text-lg font-bold\">Large Bold Text\u003C/p>\n",[20,245060,245061],{"__ignoreMap":30},[34,245062,245063,245065,245067,245069,245071,245073,245076,245078],{"class":36,"line":37},[34,245064,815],{"class":181},[34,245066,16],{"class":177},[34,245068,655],{"class":47},[34,245070,1301],{"class":181},[34,245072,244396],{"class":54},[34,245074,245075],{"class":181},">Large Bold Text\u003C/",[34,245077,16],{"class":177},[34,245079,1248],{"class":181},[11,245081,245082],{"id":221492},"Colors",[16,245084,245085],{},"Apply color classes easily:",[25,245087,245089],{"className":1162,"code":245088,"language":1164,"meta":30,"style":30},"\u003Cdiv class=\"bg-blue-500 text-white\">Blue Background\u003C/div>\n",[20,245090,245091],{"__ignoreMap":30},[34,245092,245093,245095,245097,245099,245101,245104,245107,245109],{"class":36,"line":37},[34,245094,815],{"class":181},[34,245096,1240],{"class":177},[34,245098,655],{"class":47},[34,245100,1301],{"class":181},[34,245102,245103],{"class":54},"\"bg-blue-500 text-white\"",[34,245105,245106],{"class":181},">Blue Background\u003C/",[34,245108,1240],{"class":177},[34,245110,1248],{"class":181},[11,245112,245114],{"id":245113},"responsive-design","Responsive Design",[16,245116,245117,245118,1798,245121,1798,245123,165],{},"Tailwind uses breakpoints like ",[20,245119,245120],{},"sm",[20,245122,404],{},[20,245124,245125],{},"lg",[25,245127,245129],{"className":1162,"code":245128,"language":1164,"meta":30,"style":30},"\u003Cdiv class=\"text-base md:text-lg lg:text-xl\">Responsive Text\u003C/div>\n",[20,245130,245131],{"__ignoreMap":30},[34,245132,245133,245135,245137,245139,245141,245144,245147,245149],{"class":36,"line":37},[34,245134,815],{"class":181},[34,245136,1240],{"class":177},[34,245138,655],{"class":47},[34,245140,1301],{"class":181},[34,245142,245143],{"class":54},"\"text-base md:text-lg lg:text-xl\"",[34,245145,245146],{"class":181},">Responsive Text\u003C/",[34,245148,1240],{"class":177},[34,245150,1248],{"class":181},[11,245152,245154],{"id":245153},"dark-mode","Dark Mode",[16,245156,245157],{},"Enable dark mode styling:",[25,245159,245161],{"className":1162,"code":245160,"language":1164,"meta":30,"style":30},"\u003Cdiv class=\"bg-white dark:bg-gray-800\">Dark Mode Element\u003C/div>\n",[20,245162,245163],{"__ignoreMap":30},[34,245164,245165,245167,245169,245171,245173,245176,245179,245181],{"class":36,"line":37},[34,245166,815],{"class":181},[34,245168,1240],{"class":177},[34,245170,655],{"class":47},[34,245172,1301],{"class":181},[34,245174,245175],{"class":54},"\"bg-white dark:bg-gray-800\"",[34,245177,245178],{"class":181},">Dark Mode Element\u003C/",[34,245180,1240],{"class":177},[34,245182,1248],{"class":181},[11,245184,245186],{"id":245185},"custom-config","Custom Config",[16,245188,245189,245190,165],{},"Customize Tailwind in ",[20,245191,46301],{},[25,245193,245195],{"className":111475,"code":245194,"language":111477,"meta":30,"style":30},"module.exports = {\n  theme: {\n    extend: {\n      colors: {\n        avocado: '#568203',\n      },\n    },\n  },\n};\n",[20,245196,245197,245209,245214,245219,245224,245234,245239,245243,245247],{"__ignoreMap":30},[34,245198,245199,245201,245203,245205,245207],{"class":36,"line":37},[34,245200,46312],{"class":50},[34,245202,151],{"class":181},[34,245204,46317],{"class":50},[34,245206,683],{"class":580},[34,245208,661],{"class":181},[34,245210,245211],{"class":36,"line":44},[34,245212,245213],{"class":181},"  theme: {\n",[34,245215,245216],{"class":36,"line":58},[34,245217,245218],{"class":181},"    extend: {\n",[34,245220,245221],{"class":36,"line":65},[34,245222,245223],{"class":181},"      colors: {\n",[34,245225,245226,245229,245232],{"class":36,"line":71},[34,245227,245228],{"class":181},"        avocado: ",[34,245230,245231],{"class":54},"'#568203'",[34,245233,624],{"class":181},[34,245235,245236],{"class":36,"line":77},[34,245237,245238],{"class":181},"      },\n",[34,245240,245241],{"class":36,"line":82},[34,245242,15762],{"class":181},[34,245244,245245],{"class":36,"line":88},[34,245246,3400],{"class":181},[34,245248,245249],{"class":36,"line":242},[34,245250,17632],{"class":181},[11,245252,245254],{"id":245253},"hoverfocus-states","Hover/Focus States",[16,245256,245257],{},"Utility classes for interaction states:",[25,245259,245261],{"className":1162,"code":245260,"language":1164,"meta":30,"style":30},"\u003Cbutton class=\"hover:bg-blue-500 focus:ring-2\">Hover Me\u003C/button>\n",[20,245262,245263],{"__ignoreMap":30},[34,245264,245265,245267,245269,245271,245273,245276,245278,245280],{"class":36,"line":37},[34,245266,815],{"class":181},[34,245268,4509],{"class":177},[34,245270,655],{"class":47},[34,245272,1301],{"class":181},[34,245274,245275],{"class":54},"\"hover:bg-blue-500 focus:ring-2\"",[34,245277,244350],{"class":181},[34,245279,4509],{"class":177},[34,245281,1248],{"class":181},[11,245283,86965],{"id":86964},[16,245285,245286],{},"Use built-in animation utilities:",[25,245288,245290],{"className":1162,"code":245289,"language":1164,"meta":30,"style":30},"\u003Cdiv class=\"animate-bounce\">Bouncing Text\u003C/div>\n",[20,245291,245292],{"__ignoreMap":30},[34,245293,245294,245296,245298,245300,245302,245305,245308,245310],{"class":36,"line":37},[34,245295,815],{"class":181},[34,245297,1240],{"class":177},[34,245299,655],{"class":47},[34,245301,1301],{"class":181},[34,245303,245304],{"class":54},"\"animate-bounce\"",[34,245306,245307],{"class":181},">Bouncing Text\u003C/",[34,245309,1240],{"class":177},[34,245311,1248],{"class":181},[388,245313,245314],{},"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 .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);}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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":30,"searchDepth":44,"depth":44,"links":245316},[245317,245318,245319,245320,245321,245322,245323,245324,245325,245326],{"id":96,"depth":44,"text":97},{"id":244873,"depth":44,"text":244874},{"id":245021,"depth":44,"text":245022},{"id":42054,"depth":44,"text":40924},{"id":221492,"depth":44,"text":245082},{"id":245113,"depth":44,"text":245114},{"id":245153,"depth":44,"text":245154},{"id":245185,"depth":44,"text":245186},{"id":245253,"depth":44,"text":245254},{"id":86964,"depth":44,"text":86965},"Utility-first CSS framework for rapid UI development.",{},"/tailwind/overview",{"title":244789,"description":245327},"tailwind/overview",[46561,38194,245333,982],"utility-first","OKLK6kPRLeB4ta7wX09X1Oh-6S6R8UMXFvzLhxt8mUE",{"id":245336,"title":245337,"body":245338,"date":402,"description":245966,"extension":404,"meta":245967,"navigation":61,"order":37,"path":245968,"seo":245969,"stem":245970,"subject":245971,"tags":245972,"__hash__":245974},"topics/tanstack-query/overview.md","TanStack Query",{"type":8,"value":245339,"toc":245958},[245340,245342,245345,245348,245560,245562,245577,245623,245627,245630,245684,245686,245689,245836,245840,245843,245883,245885,245888,245955],[11,245341,13534],{"id":13533},[16,245343,245344],{},"TanStack Query is a flexible and powerful library for managing server-state in your web applications. It simplifies the data-fetching logic and enables caching, synchronization, and updating of state.",[16,245346,245347],{},"Example setup for a basic query:",[25,245349,245351],{"className":13845,"code":245350,"language":8606,"meta":30,"style":30},"// Basic Usage\nimport { QueryClient, QueryClientProvider, useQuery } from '@tanstack/react-query';\n\nconst queryClient = new QueryClient();\n\nfunction App() {\n  return (\n    \u003CQueryClientProvider client={queryClient}>\n      \u003CMyComponent />\n    \u003C/QueryClientProvider>\n  );\n}\n\nfunction MyComponent() {\n  const { data, error, isLoading } = useQuery(['todos'], fetchTodos);\n\n  if (isLoading) return \u003Cspan>Loading...\u003C/span>;\n  if (error) return \u003Cspan>Error!\u003C/span>\n\n  return \u003Cdiv>{data.title}\u003C/div>;\n}\n",[20,245352,245353,245358,245372,245376,245392,245396,245404,245410,245424,245433,245441,245445,245449,245453,245462,245494,245498,245517,245537,245541,245556],{"__ignoreMap":30},[34,245354,245355],{"class":36,"line":37},[34,245356,245357],{"class":40},"// Basic Usage\n",[34,245359,245360,245362,245365,245367,245370],{"class":36,"line":44},[34,245361,581],{"class":580},[34,245363,245364],{"class":181}," { QueryClient, QueryClientProvider, useQuery } ",[34,245366,587],{"class":580},[34,245368,245369],{"class":54}," '@tanstack/react-query'",[34,245371,593],{"class":181},[34,245373,245374],{"class":36,"line":58},[34,245375,62],{"emptyLinePlaceholder":61},[34,245377,245378,245380,245383,245385,245387,245390],{"class":36,"line":65},[34,245379,14676],{"class":580},[34,245381,245382],{"class":50}," queryClient",[34,245384,683],{"class":580},[34,245386,809],{"class":580},[34,245388,245389],{"class":47}," QueryClient",[34,245391,851],{"class":181},[34,245393,245394],{"class":36,"line":71},[34,245395,62],{"emptyLinePlaceholder":61},[34,245397,245398,245400,245402],{"class":36,"line":77},[34,245399,11044],{"class":580},[34,245401,202507],{"class":47},[34,245403,836],{"class":181},[34,245405,245406,245408],{"class":36,"line":82},[34,245407,8155],{"class":580},[34,245409,13975],{"class":181},[34,245411,245412,245414,245417,245419,245421],{"class":36,"line":88},[34,245413,1294],{"class":181},[34,245415,245416],{"class":50},"QueryClientProvider",[34,245418,33848],{"class":47},[34,245420,1301],{"class":580},[34,245422,245423],{"class":181},"{queryClient}>\n",[34,245425,245426,245428,245431],{"class":36,"line":242},[34,245427,85662],{"class":181},[34,245429,245430],{"class":50},"MyComponent",[34,245432,1187],{"class":181},[34,245434,245435,245437,245439],{"class":36,"line":250},[34,245436,74431],{"class":181},[34,245438,245416],{"class":50},[34,245440,1248],{"class":181},[34,245442,245443],{"class":36,"line":263},[34,245444,61002],{"class":181},[34,245446,245447],{"class":36,"line":275},[34,245448,693],{"class":181},[34,245450,245451],{"class":36,"line":700},[34,245452,62],{"emptyLinePlaceholder":61},[34,245454,245455,245457,245460],{"class":36,"line":706},[34,245456,11044],{"class":580},[34,245458,245459],{"class":47}," MyComponent",[34,245461,836],{"class":181},[34,245463,245464,245466,245468,245470,245472,245474,245476,245479,245481,245483,245486,245488,245491],{"class":36,"line":715},[34,245465,17415],{"class":580},[34,245467,30251],{"class":181},[34,245469,1701],{"class":50},[34,245471,1798],{"class":181},[34,245473,1908],{"class":50},[34,245475,1798],{"class":181},[34,245477,245478],{"class":50},"isLoading",[34,245480,34865],{"class":181},[34,245482,1301],{"class":580},[34,245484,245485],{"class":47}," useQuery",[34,245487,3593],{"class":181},[34,245489,245490],{"class":54},"'todos'",[34,245492,245493],{"class":181},"], fetchTodos);\n",[34,245495,245496],{"class":36,"line":725},[34,245497,62],{"emptyLinePlaceholder":61},[34,245499,245500,245502,245505,245507,245509,245511,245513,245515],{"class":36,"line":734},[34,245501,8084],{"class":580},[34,245503,245504],{"class":181}," (isLoading) ",[34,245506,2917],{"class":580},[34,245508,5470],{"class":181},[34,245510,34],{"class":177},[34,245512,1407],{"class":181},[34,245514,34],{"class":177},[34,245516,4834],{"class":181},[34,245518,245519,245521,245524,245526,245528,245530,245533,245535],{"class":36,"line":742},[34,245520,8084],{"class":580},[34,245522,245523],{"class":181}," (error) ",[34,245525,2917],{"class":580},[34,245527,5470],{"class":181},[34,245529,34],{"class":177},[34,245531,245532],{"class":181},">Error!\u003C/",[34,245534,34],{"class":177},[34,245536,1248],{"class":181},[34,245538,245539],{"class":36,"line":748},[34,245540,62],{"emptyLinePlaceholder":61},[34,245542,245543,245545,245547,245549,245552,245554],{"class":36,"line":754},[34,245544,8155],{"class":580},[34,245546,5470],{"class":181},[34,245548,1240],{"class":177},[34,245550,245551],{"class":181},">{data.title}\u003C/",[34,245553,1240],{"class":177},[34,245555,4834],{"class":181},[34,245557,245558],{"class":36,"line":759},[34,245559,693],{"class":181},[11,245561,5595],{"id":5600},[309,245563,245564,245567,245570],{},[312,245565,245566],{},"Use descriptive keys for queries.",[312,245568,245569],{},"Optimize with cache invalidation tactics.",[312,245571,245572,245573,245576],{},"Prefer ",[20,245574,245575],{},"enabled"," flags for conditional fetching.",[25,245578,245580],{"className":13845,"code":245579,"language":8606,"meta":30,"style":30},"// Conditional fetching example with 'enabled'\nconst { data } = useQuery(['user'], fetchUser, {\n  enabled: userId !== null,\n});\n",[20,245581,245582,245587,245608,245619],{"__ignoreMap":30},[34,245583,245584],{"class":36,"line":37},[34,245585,245586],{"class":40},"// Conditional fetching example with 'enabled'\n",[34,245588,245589,245591,245593,245595,245597,245599,245601,245603,245605],{"class":36,"line":44},[34,245590,14676],{"class":580},[34,245592,30251],{"class":181},[34,245594,1701],{"class":50},[34,245596,34865],{"class":181},[34,245598,1301],{"class":580},[34,245600,245485],{"class":47},[34,245602,3593],{"class":181},[34,245604,162514],{"class":54},[34,245606,245607],{"class":181},"], fetchUser, {\n",[34,245609,245610,245613,245615,245617],{"class":36,"line":58},[34,245611,245612],{"class":181},"  enabled: userId ",[34,245614,48741],{"class":580},[34,245616,13898],{"class":50},[34,245618,624],{"class":181},[34,245620,245621],{"class":36,"line":65},[34,245622,14873],{"class":181},[11,245624,245626],{"id":245625},"query-invalidation","Query Invalidation",[16,245628,245629],{},"Query invalidation ensures that stale data is properly refetched.",[25,245631,245633],{"className":13845,"code":245632,"language":8606,"meta":30,"style":30},"// Example: Invalidate a query\nimport { useQueryClient } from '@tanstack/react-query';\n\nconst queryClient = useQueryClient();\nqueryClient.invalidateQueries('todos');\n",[20,245634,245635,245640,245653,245657,245670],{"__ignoreMap":30},[34,245636,245637],{"class":36,"line":37},[34,245638,245639],{"class":40},"// Example: Invalidate a query\n",[34,245641,245642,245644,245647,245649,245651],{"class":36,"line":44},[34,245643,581],{"class":580},[34,245645,245646],{"class":181}," { useQueryClient } ",[34,245648,587],{"class":580},[34,245650,245369],{"class":54},[34,245652,593],{"class":181},[34,245654,245655],{"class":36,"line":58},[34,245656,62],{"emptyLinePlaceholder":61},[34,245658,245659,245661,245663,245665,245668],{"class":36,"line":65},[34,245660,14676],{"class":580},[34,245662,245382],{"class":50},[34,245664,683],{"class":580},[34,245666,245667],{"class":47}," useQueryClient",[34,245669,851],{"class":181},[34,245671,245672,245675,245678,245680,245682],{"class":36,"line":71},[34,245673,245674],{"class":181},"queryClient.",[34,245676,245677],{"class":47},"invalidateQueries",[34,245679,1607],{"class":181},[34,245681,245490],{"class":54},[34,245683,1586],{"class":181},[11,245685,109348],{"id":109347},[16,245687,245688],{},"Manage writes to server-state through mutations.",[25,245690,245692],{"className":13845,"code":245691,"language":8606,"meta":30,"style":30},"import { useMutation, useQueryClient } from '@tanstack/react-query';\n\nfunction MyComponent() {\n  const queryClient = useQueryClient();\n\n  const mutation = useMutation(postTodo, {\n    onSuccess: () => queryClient.invalidateQueries('todos')\n  });\n\n  return (\n    \u003Cbutton onClick={() => mutation.mutate({ id: 1, text: 'Throw out trash' })}>\n      Add Todo\n    \u003C/button>\n  );\n}\n",[20,245693,245694,245707,245711,245719,245731,245735,245750,245770,245774,245778,245784,245815,245820,245828,245832],{"__ignoreMap":30},[34,245695,245696,245698,245701,245703,245705],{"class":36,"line":37},[34,245697,581],{"class":580},[34,245699,245700],{"class":181}," { useMutation, useQueryClient } ",[34,245702,587],{"class":580},[34,245704,245369],{"class":54},[34,245706,593],{"class":181},[34,245708,245709],{"class":36,"line":44},[34,245710,62],{"emptyLinePlaceholder":61},[34,245712,245713,245715,245717],{"class":36,"line":58},[34,245714,11044],{"class":580},[34,245716,245459],{"class":47},[34,245718,836],{"class":181},[34,245720,245721,245723,245725,245727,245729],{"class":36,"line":65},[34,245722,17415],{"class":580},[34,245724,245382],{"class":50},[34,245726,683],{"class":580},[34,245728,245667],{"class":47},[34,245730,851],{"class":181},[34,245732,245733],{"class":36,"line":71},[34,245734,62],{"emptyLinePlaceholder":61},[34,245736,245737,245739,245742,245744,245747],{"class":36,"line":77},[34,245738,17415],{"class":580},[34,245740,245741],{"class":50}," mutation",[34,245743,683],{"class":580},[34,245745,245746],{"class":47}," useMutation",[34,245748,245749],{"class":181},"(postTodo, {\n",[34,245751,245752,245755,245757,245759,245762,245764,245766,245768],{"class":36,"line":82},[34,245753,245754],{"class":47},"    onSuccess",[34,245756,3358],{"class":181},[34,245758,3361],{"class":580},[34,245760,245761],{"class":181}," queryClient.",[34,245763,245677],{"class":47},[34,245765,1607],{"class":181},[34,245767,245490],{"class":54},[34,245769,3372],{"class":181},[34,245771,245772],{"class":36,"line":88},[34,245773,3186],{"class":181},[34,245775,245776],{"class":36,"line":242},[34,245777,62],{"emptyLinePlaceholder":61},[34,245779,245780,245782],{"class":36,"line":250},[34,245781,8155],{"class":580},[34,245783,13975],{"class":181},[34,245785,245786,245788,245790,245792,245794,245796,245798,245801,245804,245806,245808,245810,245813],{"class":36,"line":263},[34,245787,1294],{"class":181},[34,245789,4509],{"class":177},[34,245791,85667],{"class":47},[34,245793,1301],{"class":580},[34,245795,85672],{"class":181},[34,245797,3361],{"class":580},[34,245799,245800],{"class":181}," mutation.",[34,245802,245803],{"class":47},"mutate",[34,245805,61154],{"class":181},[34,245807,8318],{"class":50},[34,245809,201741],{"class":181},[34,245811,245812],{"class":54},"'Throw out trash'",[34,245814,201747],{"class":181},[34,245816,245817],{"class":36,"line":275},[34,245818,245819],{"class":181},"      Add Todo\n",[34,245821,245822,245824,245826],{"class":36,"line":700},[34,245823,74431],{"class":181},[34,245825,4509],{"class":177},[34,245827,1248],{"class":181},[34,245829,245830],{"class":36,"line":706},[34,245831,61002],{"class":181},[34,245833,245834],{"class":36,"line":715},[34,245835,693],{"class":181},[11,245837,245839],{"id":245838},"background-refetching","Background Refetching",[16,245841,245842],{},"Example to demonstrate background fetching intervals:",[25,245844,245846],{"className":13845,"code":245845,"language":8606,"meta":30,"style":30},"const { data } = useQuery(['notifications'], fetchNotifications, {\n  refetchInterval: 5000,\n});\n",[20,245847,245848,245870,245879],{"__ignoreMap":30},[34,245849,245850,245852,245854,245856,245858,245860,245862,245864,245867],{"class":36,"line":37},[34,245851,14676],{"class":580},[34,245853,30251],{"class":181},[34,245855,1701],{"class":50},[34,245857,34865],{"class":181},[34,245859,1301],{"class":580},[34,245861,245485],{"class":47},[34,245863,3593],{"class":181},[34,245865,245866],{"class":54},"'notifications'",[34,245868,245869],{"class":181},"], fetchNotifications, {\n",[34,245871,245872,245875,245877],{"class":36,"line":44},[34,245873,245874],{"class":181},"  refetchInterval: ",[34,245876,58832],{"class":50},[34,245878,624],{"class":181},[34,245880,245881],{"class":36,"line":58},[34,245882,14873],{"class":181},[11,245884,19352],{"id":19357},[16,245886,245887],{},"TanStack Query integrates error handling seamlessly.",[25,245889,245891],{"className":13845,"code":245890,"language":8606,"meta":30,"style":30},"const { isError, error } = useQuery(['todos'], fetchTodos);\n\nif (isError) return \u003Cspan>{`Something went wrong! ${error.message}`}\u003C/span>;\n",[20,245892,245893,245918,245922],{"__ignoreMap":30},[34,245894,245895,245897,245899,245902,245904,245906,245908,245910,245912,245914,245916],{"class":36,"line":37},[34,245896,14676],{"class":580},[34,245898,30251],{"class":181},[34,245900,245901],{"class":50},"isError",[34,245903,1798],{"class":181},[34,245905,1908],{"class":50},[34,245907,34865],{"class":181},[34,245909,1301],{"class":580},[34,245911,245485],{"class":47},[34,245913,3593],{"class":181},[34,245915,245490],{"class":54},[34,245917,245493],{"class":181},[34,245919,245920],{"class":36,"line":44},[34,245921,62],{"emptyLinePlaceholder":61},[34,245923,245924,245926,245929,245931,245933,245935,245937,245940,245942,245944,245946,245948,245951,245953],{"class":36,"line":58},[34,245925,10383],{"class":580},[34,245927,245928],{"class":181}," (isError) ",[34,245930,2917],{"class":580},[34,245932,5470],{"class":181},[34,245934,34],{"class":177},[34,245936,229926],{"class":181},[34,245938,245939],{"class":54},"`Something went wrong! ${",[34,245941,1908],{"class":181},[34,245943,151],{"class":54},[34,245945,15736],{"class":181},[34,245947,3925],{"class":54},[34,245949,245950],{"class":181},"}\u003C/",[34,245952,34],{"class":177},[34,245954,4834],{"class":181},[388,245956,245957],{},"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 .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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":30,"searchDepth":44,"depth":44,"links":245959},[245960,245961,245962,245963,245964,245965],{"id":13533,"depth":44,"text":13534},{"id":5600,"depth":44,"text":5595},{"id":245625,"depth":44,"text":245626},{"id":109347,"depth":44,"text":109348},{"id":245838,"depth":44,"text":245839},{"id":19357,"depth":44,"text":19352},"A quick reference for using TanStack Query to manage server-state in React applications efficiently.",{},"/tanstack-query/overview",{"title":245337,"description":245966},"tanstack-query/overview","tanstack-query",[86172,245973,245971,162166,127360],"server-state","B3EnRLfCQTjWS08hXgahjlajdEcB87Ueh9FOco71AeU",{"id":245976,"title":245977,"body":245978,"date":402,"description":246483,"extension":404,"meta":246484,"navigation":61,"order":37,"path":246485,"seo":246486,"stem":246487,"subject":246488,"tags":246489,"__hash__":246492},"topics/tanstack-router/overview.md","TanStack Router",{"type":8,"value":245979,"toc":246476},[245980,245982,245985,246123,246130,246134,246137,246265,246269,246277,246359,246363,246366,246468,246470,246473],[11,245981,14],{"id":13},[16,245983,245984],{},"TanStack Router is designed to be a versatile and high-performance router suitable for both small and large applications. Its design focuses on type safety, routing efficiency, and reactivity.",[25,245986,245988],{"className":13845,"code":245987,"language":8606,"meta":30,"style":30},"// Basic example of initializing a TanStack Router\nimport { createBrowserRouter } from '@tanstack/router';\n\nconst router = createBrowserRouter({\n  routes: [\n    {\n      path: '/',\n      action: () => console.log('Home page!'),\n    },\n    {\n      path: '/about',\n      action: () => console.log('About page!'),\n    },\n  ],\n});\n\nrouter.start();\n",[20,245989,245990,245995,246009,246013,246026,246031,246035,246044,246064,246068,246072,246080,246099,246103,246107,246111,246115],{"__ignoreMap":30},[34,245991,245992],{"class":36,"line":37},[34,245993,245994],{"class":40},"// Basic example of initializing a TanStack Router\n",[34,245996,245997,245999,246002,246004,246007],{"class":36,"line":44},[34,245998,581],{"class":580},[34,246000,246001],{"class":181}," { createBrowserRouter } ",[34,246003,587],{"class":580},[34,246005,246006],{"class":54}," '@tanstack/router'",[34,246008,593],{"class":181},[34,246010,246011],{"class":36,"line":58},[34,246012,62],{"emptyLinePlaceholder":61},[34,246014,246015,246017,246019,246021,246024],{"class":36,"line":65},[34,246016,14676],{"class":580},[34,246018,3536],{"class":50},[34,246020,683],{"class":580},[34,246022,246023],{"class":47}," createBrowserRouter",[34,246025,613],{"class":181},[34,246027,246028],{"class":36,"line":71},[34,246029,246030],{"class":181},"  routes: [\n",[34,246032,246033],{"class":36,"line":77},[34,246034,25561],{"class":181},[34,246036,246037,246040,246042],{"class":36,"line":82},[34,246038,246039],{"class":181},"      path: ",[34,246041,61825],{"class":54},[34,246043,624],{"class":181},[34,246045,246046,246049,246051,246053,246055,246057,246059,246062],{"class":36,"line":88},[34,246047,246048],{"class":47},"      action",[34,246050,3358],{"class":181},[34,246052,3361],{"class":580},[34,246054,4940],{"class":181},[34,246056,2424],{"class":47},[34,246058,1607],{"class":181},[34,246060,246061],{"class":54},"'Home page!'",[34,246063,50836],{"class":181},[34,246065,246066],{"class":36,"line":242},[34,246067,15762],{"class":181},[34,246069,246070],{"class":36,"line":250},[34,246071,25561],{"class":181},[34,246073,246074,246076,246078],{"class":36,"line":263},[34,246075,246039],{"class":181},[34,246077,3596],{"class":54},[34,246079,624],{"class":181},[34,246081,246082,246084,246086,246088,246090,246092,246094,246097],{"class":36,"line":275},[34,246083,246048],{"class":47},[34,246085,3358],{"class":181},[34,246087,3361],{"class":580},[34,246089,4940],{"class":181},[34,246091,2424],{"class":47},[34,246093,1607],{"class":181},[34,246095,246096],{"class":54},"'About page!'",[34,246098,50836],{"class":181},[34,246100,246101],{"class":36,"line":700},[34,246102,15762],{"class":181},[34,246104,246105],{"class":36,"line":706},[34,246106,127682],{"class":181},[34,246108,246109],{"class":36,"line":715},[34,246110,14873],{"class":181},[34,246112,246113],{"class":36,"line":725},[34,246114,62],{"emptyLinePlaceholder":61},[34,246116,246117,246119,246121],{"class":36,"line":734},[34,246118,76543],{"class":181},[34,246120,40502],{"class":47},[34,246122,851],{"class":181},[16,246124,246125,246126,246129],{},"// The ",[20,246127,246128],{},"createBrowserRouter"," initializes your app's routes with a simple object.",[11,246131,246133],{"id":246132},"type-safety-advantage","Type-Safety Advantage",[16,246135,246136],{},"One of the unique aspects of TanStack Router is its type-safe routing, allowing developers to catch routing errors at compile time.",[25,246138,246140],{"className":571,"code":246139,"language":573,"meta":30,"style":30},"import { createRoute } from '@tanstack/router';\n\ntype DashboardParams = { userId: string };\n\nconst dashboardRoute = createRoute\u003CDashboardParams>({\n  path: '/dashboard/:userId',\n  action: (params) => {\n    console.log(`User ID: ${params.userId}`);\n  },\n});\n\n// Errors are caught if 'userId' is missing or mistyped.\n",[20,246141,246142,246155,246159,246178,246182,246202,246212,246227,246248,246252,246256,246260],{"__ignoreMap":30},[34,246143,246144,246146,246149,246151,246153],{"class":36,"line":37},[34,246145,581],{"class":580},[34,246147,246148],{"class":181}," { createRoute } ",[34,246150,587],{"class":580},[34,246152,246006],{"class":54},[34,246154,593],{"class":181},[34,246156,246157],{"class":36,"line":44},[34,246158,62],{"emptyLinePlaceholder":61},[34,246160,246161,246163,246166,246168,246170,246172,246174,246176],{"class":36,"line":58},[34,246162,41324],{"class":580},[34,246164,246165],{"class":47}," DashboardParams",[34,246167,683],{"class":580},[34,246169,30251],{"class":181},[34,246171,72454],{"class":675},[34,246173,165],{"class":580},[34,246175,680],{"class":50},[34,246177,33355],{"class":181},[34,246179,246180],{"class":36,"line":65},[34,246181,62],{"emptyLinePlaceholder":61},[34,246183,246184,246186,246189,246191,246194,246196,246199],{"class":36,"line":71},[34,246185,14676],{"class":580},[34,246187,246188],{"class":50}," dashboardRoute",[34,246190,683],{"class":580},[34,246192,246193],{"class":47}," createRoute",[34,246195,815],{"class":181},[34,246197,246198],{"class":47},"DashboardParams",[34,246200,246201],{"class":181},">({\n",[34,246203,246204,246207,246210],{"class":36,"line":77},[34,246205,246206],{"class":181},"  path: ",[34,246208,246209],{"class":54},"'/dashboard/:userId'",[34,246211,624],{"class":181},[34,246213,246214,246217,246219,246221,246223,246225],{"class":36,"line":82},[34,246215,246216],{"class":47},"  action",[34,246218,162313],{"class":181},[34,246220,3635],{"class":675},[34,246222,4817],{"class":181},[34,246224,3361],{"class":580},[34,246226,661],{"class":181},[34,246228,246229,246231,246233,246235,246238,246240,246242,246244,246246],{"class":36,"line":88},[34,246230,2421],{"class":181},[34,246232,2424],{"class":47},[34,246234,1607],{"class":181},[34,246236,246237],{"class":54},"`User ID: ${",[34,246239,3635],{"class":181},[34,246241,151],{"class":54},[34,246243,72454],{"class":181},[34,246245,3925],{"class":54},[34,246247,1586],{"class":181},[34,246249,246250],{"class":36,"line":242},[34,246251,3400],{"class":181},[34,246253,246254],{"class":36,"line":250},[34,246255,14873],{"class":181},[34,246257,246258],{"class":36,"line":263},[34,246259,62],{"emptyLinePlaceholder":61},[34,246261,246262],{"class":36,"line":275},[34,246263,246264],{"class":40},"// Errors are caught if 'userId' is missing or mistyped.\n",[11,246266,246268],{"id":246267},"reactivity-and-performance","Reactivity and Performance",[309,246270,246271,246274],{},[312,246272,246273],{},"Designed for applications with highly dynamic route requirements",[312,246275,246276],{},"Matches complex paths with speed and precision",[25,246278,246280],{"className":13845,"code":246279,"language":8606,"meta":30,"style":30},"import { createReactRouter, Route } from '@tanstack/router';\n\nexport function App() {\n  const router = createReactRouter({\n    routes: [Route('/')],\n  });\n  return \u003CRoutesProvider router={router} />;\n}\n",[20,246281,246282,246295,246299,246309,246322,246335,246339,246355],{"__ignoreMap":30},[34,246283,246284,246286,246289,246291,246293],{"class":36,"line":37},[34,246285,581],{"class":580},[34,246287,246288],{"class":181}," { createReactRouter, Route } ",[34,246290,587],{"class":580},[34,246292,246006],{"class":54},[34,246294,593],{"class":181},[34,246296,246297],{"class":36,"line":44},[34,246298,62],{"emptyLinePlaceholder":61},[34,246300,246301,246303,246305,246307],{"class":36,"line":58},[34,246302,652],{"class":580},[34,246304,8037],{"class":580},[34,246306,202507],{"class":47},[34,246308,836],{"class":181},[34,246310,246311,246313,246315,246317,246320],{"class":36,"line":65},[34,246312,17415],{"class":580},[34,246314,3536],{"class":50},[34,246316,683],{"class":580},[34,246318,246319],{"class":47}," createReactRouter",[34,246321,613],{"class":181},[34,246323,246324,246327,246329,246331,246333],{"class":36,"line":71},[34,246325,246326],{"class":181},"    routes: [",[34,246328,139975],{"class":47},[34,246330,1607],{"class":181},[34,246332,61825],{"class":54},[34,246334,46362],{"class":181},[34,246336,246337],{"class":36,"line":77},[34,246338,3186],{"class":181},[34,246340,246341,246343,246345,246348,246350,246352],{"class":36,"line":82},[34,246342,8155],{"class":580},[34,246344,5470],{"class":181},[34,246346,246347],{"class":50},"RoutesProvider",[34,246349,3536],{"class":47},[34,246351,1301],{"class":580},[34,246353,246354],{"class":181},"{router} />;\n",[34,246356,246357],{"class":36,"line":88},[34,246358,693],{"class":181},[11,246360,246362],{"id":246361},"nested-routes-and-layouts","Nested Routes and Layouts",[16,246364,246365],{},"Supports nested routes fully, allowing encapsulated layouts and sub-components.",[25,246367,246369],{"className":13845,"code":246368,"language":8606,"meta":30,"style":30},"import { createBrowserRouter } from '@tanstack/router';\n\nconst router = createBrowserRouter({\n  routes: [\n    {\n      path: '/',\n      children: [\n        {\n          path: 'dashboard',\n          action: () => 'Dashboard Content!',\n        },\n      ],\n    },\n  ],\n});\n",[20,246370,246371,246383,246387,246399,246403,246407,246415,246420,246424,246433,246447,246452,246456,246460,246464],{"__ignoreMap":30},[34,246372,246373,246375,246377,246379,246381],{"class":36,"line":37},[34,246374,581],{"class":580},[34,246376,246001],{"class":181},[34,246378,587],{"class":580},[34,246380,246006],{"class":54},[34,246382,593],{"class":181},[34,246384,246385],{"class":36,"line":44},[34,246386,62],{"emptyLinePlaceholder":61},[34,246388,246389,246391,246393,246395,246397],{"class":36,"line":58},[34,246390,14676],{"class":580},[34,246392,3536],{"class":50},[34,246394,683],{"class":580},[34,246396,246023],{"class":47},[34,246398,613],{"class":181},[34,246400,246401],{"class":36,"line":65},[34,246402,246030],{"class":181},[34,246404,246405],{"class":36,"line":71},[34,246406,25561],{"class":181},[34,246408,246409,246411,246413],{"class":36,"line":77},[34,246410,246039],{"class":181},[34,246412,61825],{"class":54},[34,246414,624],{"class":181},[34,246416,246417],{"class":36,"line":82},[34,246418,246419],{"class":181},"      children: [\n",[34,246421,246422],{"class":36,"line":88},[34,246423,26173],{"class":181},[34,246425,246426,246429,246431],{"class":36,"line":242},[34,246427,246428],{"class":181},"          path: ",[34,246430,140691],{"class":54},[34,246432,624],{"class":181},[34,246434,246435,246438,246440,246442,246445],{"class":36,"line":250},[34,246436,246437],{"class":47},"          action",[34,246439,3358],{"class":181},[34,246441,3361],{"class":580},[34,246443,246444],{"class":54}," 'Dashboard Content!'",[34,246446,624],{"class":181},[34,246448,246449],{"class":36,"line":263},[34,246450,246451],{"class":181},"        },\n",[34,246453,246454],{"class":36,"line":275},[34,246455,166130],{"class":181},[34,246457,246458],{"class":36,"line":700},[34,246459,15762],{"class":181},[34,246461,246462],{"class":36,"line":706},[34,246463,127682],{"class":181},[34,246465,246466],{"class":36,"line":715},[34,246467,14873],{"class":181},[11,246469,120374],{"id":120373},[16,246471,246472],{},"For modern app developers needing a robust routing solution in JavaScript (or TypeScript), TanStack Router represents an appealing option.",[388,246474,246475],{},"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 .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}",{"title":30,"searchDepth":44,"depth":44,"links":246477},[246478,246479,246480,246481,246482],{"id":13,"depth":44,"text":14},{"id":246132,"depth":44,"text":246133},{"id":246267,"depth":44,"text":246268},{"id":246361,"depth":44,"text":246362},{"id":120373,"depth":44,"text":120374},"TanStack Router is a fully-type safe, powerful, and framework-agnostic router for your JavaScript and TypeScript applications.",{},"/tanstack-router/overview",{"title":245977,"description":246483},"tanstack-router/overview","tanstack-router",[76499,126157,246490,246491],"TypeScript","framework-agnostic","6Juzb2nBr7hT_k202e_N3xkdK0WkJifcAhzMIP7mM7M",{"id":246494,"title":246495,"body":246496,"date":402,"description":246841,"extension":404,"meta":246842,"navigation":61,"order":37,"path":246843,"seo":246844,"stem":246845,"subject":246846,"tags":246847,"__hash__":246850},"topics/tanstack-table/overview.md","TanStack Table",{"type":8,"value":246497,"toc":246834},[246498,246500,246519,246521,246637,246641,246707,246711,246824,246828,246832],[11,246499,97],{"id":96},[25,246501,246503],{"className":27,"code":246502,"language":29,"meta":30,"style":30},"# Install TanStack Table\nnpm install @tanstack/react-table\n",[20,246504,246505,246510],{"__ignoreMap":30},[34,246506,246507],{"class":36,"line":37},[34,246508,246509],{"class":40},"# Install TanStack Table\n",[34,246511,246512,246514,246516],{"class":36,"line":44},[34,246513,8177],{"class":47},[34,246515,118],{"class":54},[34,246517,246518],{"class":54}," @tanstack/react-table\n",[11,246520,89702],{"id":89701},[25,246522,246524],{"className":571,"code":246523,"language":573,"meta":30,"style":30},"import { useReactTable } from '@tanstack/react-table';\n\n// Define your data and columns\nconst data = [...];\nconst columns = [...];\n\nconst { rows } = useReactTable({\n  data,\n  columns\n});\n\nrows.forEach(row => console.log(row.original));\n",[20,246525,246526,246540,246544,246549,246563,246577,246581,246599,246604,246609,246613,246617],{"__ignoreMap":30},[34,246527,246528,246530,246533,246535,246538],{"class":36,"line":37},[34,246529,581],{"class":580},[34,246531,246532],{"class":181}," { useReactTable } ",[34,246534,587],{"class":580},[34,246536,246537],{"class":54}," '@tanstack/react-table'",[34,246539,593],{"class":181},[34,246541,246542],{"class":36,"line":44},[34,246543,62],{"emptyLinePlaceholder":61},[34,246545,246546],{"class":36,"line":58},[34,246547,246548],{"class":40},"// Define your data and columns\n",[34,246550,246551,246553,246555,246557,246559,246561],{"class":36,"line":65},[34,246552,14676],{"class":580},[34,246554,14780],{"class":50},[34,246556,683],{"class":580},[34,246558,8315],{"class":181},[34,246560,16841],{"class":580},[34,246562,3415],{"class":181},[34,246564,246565,246567,246569,246571,246573,246575],{"class":36,"line":71},[34,246566,14676],{"class":580},[34,246568,70904],{"class":50},[34,246570,683],{"class":580},[34,246572,8315],{"class":181},[34,246574,16841],{"class":580},[34,246576,3415],{"class":181},[34,246578,246579],{"class":36,"line":77},[34,246580,62],{"emptyLinePlaceholder":61},[34,246582,246583,246585,246587,246590,246592,246594,246597],{"class":36,"line":82},[34,246584,14676],{"class":580},[34,246586,30251],{"class":181},[34,246588,246589],{"class":50},"rows",[34,246591,34865],{"class":181},[34,246593,1301],{"class":580},[34,246595,246596],{"class":47}," useReactTable",[34,246598,613],{"class":181},[34,246600,246601],{"class":36,"line":88},[34,246602,246603],{"class":181},"  data,\n",[34,246605,246606],{"class":36,"line":242},[34,246607,246608],{"class":181},"  columns\n",[34,246610,246611],{"class":36,"line":250},[34,246612,14873],{"class":181},[34,246614,246615],{"class":36,"line":263},[34,246616,62],{"emptyLinePlaceholder":61},[34,246618,246619,246622,246624,246626,246628,246630,246632,246634],{"class":36,"line":275},[34,246620,246621],{"class":181},"rows.",[34,246623,4930],{"class":47},[34,246625,1607],{"class":181},[34,246627,40000],{"class":675},[34,246629,1895],{"class":580},[34,246631,4940],{"class":181},[34,246633,2424],{"class":47},[34,246635,246636],{"class":181},"(row.original));\n",[11,246638,246640],{"id":246639},"custom-cell-rendering","Custom Cell Rendering",[25,246642,246644],{"className":571,"code":246643,"language":573,"meta":30,"style":30},"const columns = [\n  {\n    accessorKey: 'name',\n    Cell: ({ cell }) => \u003Cstrong>{cell.getValue()}\u003C/strong>,\n  },\n];\n",[20,246645,246646,246656,246661,246670,246699,246703],{"__ignoreMap":30},[34,246647,246648,246650,246652,246654],{"class":36,"line":37},[34,246649,14676],{"class":580},[34,246651,70904],{"class":50},[34,246653,683],{"class":580},[34,246655,3304],{"class":181},[34,246657,246658],{"class":36,"line":44},[34,246659,246660],{"class":181},"  {\n",[34,246662,246663,246666,246668],{"class":36,"line":58},[34,246664,246665],{"class":181},"    accessorKey: ",[34,246667,71318],{"class":54},[34,246669,624],{"class":181},[34,246671,246672,246675,246677,246680,246682,246684,246686,246688,246691,246693,246695,246697],{"class":36,"line":65},[34,246673,246674],{"class":47},"    Cell",[34,246676,202679],{"class":181},[34,246678,246679],{"class":675},"cell",[34,246681,59911],{"class":181},[34,246683,3361],{"class":580},[34,246685,5470],{"class":181},[34,246687,8471],{"class":47},[34,246689,246690],{"class":181},">{cell.getValue()}",[34,246692,2089],{"class":580},[34,246694,8471],{"class":181},[34,246696,5691],{"class":580},[34,246698,624],{"class":181},[34,246700,246701],{"class":36,"line":71},[34,246702,3400],{"class":181},[34,246704,246705],{"class":36,"line":77},[34,246706,3415],{"class":181},[11,246708,246710],{"id":246709},"sorting-with-react-table","Sorting with React Table",[25,246712,246714],{"className":571,"code":246713,"language":573,"meta":30,"style":30},"const columns = [\n  {\n    accessorKey: 'name',\n    sortingFn: 'auto',\n  }\n];\n\ndata.sort((a, b) => {\n    const order = accessorSortingFn('asc')\n    return order(bytes...) := ascLogicReturns()\n})\n\n",[20,246715,246716,246726,246730,246738,246748,246752,246756,246760,246781,246799,246820],{"__ignoreMap":30},[34,246717,246718,246720,246722,246724],{"class":36,"line":37},[34,246719,14676],{"class":580},[34,246721,70904],{"class":50},[34,246723,683],{"class":580},[34,246725,3304],{"class":181},[34,246727,246728],{"class":36,"line":44},[34,246729,246660],{"class":181},[34,246731,246732,246734,246736],{"class":36,"line":58},[34,246733,246665],{"class":181},[34,246735,71318],{"class":54},[34,246737,624],{"class":181},[34,246739,246740,246743,246746],{"class":36,"line":65},[34,246741,246742],{"class":181},"    sortingFn: ",[34,246744,246745],{"class":54},"'auto'",[34,246747,624],{"class":181},[34,246749,246750],{"class":36,"line":71},[34,246751,857],{"class":181},[34,246753,246754],{"class":36,"line":77},[34,246755,3415],{"class":181},[34,246757,246758],{"class":36,"line":82},[34,246759,62],{"emptyLinePlaceholder":61},[34,246761,246762,246765,246767,246769,246771,246773,246775,246777,246779],{"class":36,"line":88},[34,246763,246764],{"class":181},"data.",[34,246766,13152],{"class":47},[34,246768,8348],{"class":181},[34,246770,145],{"class":675},[34,246772,1798],{"class":181},[34,246774,8355],{"class":675},[34,246776,4817],{"class":181},[34,246778,3361],{"class":580},[34,246780,661],{"class":181},[34,246782,246783,246785,246787,246789,246792,246794,246797],{"class":36,"line":242},[34,246784,1632],{"class":580},[34,246786,65755],{"class":50},[34,246788,683],{"class":580},[34,246790,246791],{"class":47}," accessorSortingFn",[34,246793,1607],{"class":181},[34,246795,246796],{"class":54},"'asc'",[34,246798,3372],{"class":181},[34,246800,246801,246803,246805,246808,246810,246813,246815,246818],{"class":36,"line":250},[34,246802,1564],{"class":580},[34,246804,65755],{"class":47},[34,246806,246807],{"class":181},"(bytes",[34,246809,16841],{"class":580},[34,246811,246812],{"class":181},") :",[34,246814,1301],{"class":580},[34,246816,246817],{"class":47}," ascLogicReturns",[34,246819,33899],{"class":181},[34,246821,246822],{"class":36,"line":263},[34,246823,647],{"class":181},[11,246825,246827],{"id":246826},"advanced-pagination-server-side-search-backend-filterquery-parameterrouting-technique","Advanced Pagination (Server Side search backend filter,Query Parameterrouting technique)",[309,246829,246830],{},[312,246831],{},[388,246833,78018],{},{"title":30,"searchDepth":44,"depth":44,"links":246835},[246836,246837,246838,246839,246840],{"id":96,"depth":44,"text":97},{"id":89701,"depth":44,"text":89702},{"id":246639,"depth":44,"text":246640},{"id":246709,"depth":44,"text":246710},{"id":246826,"depth":44,"text":246827},"Quick syntax overview and uses of TanStack Table, a set of TypeScript utilities for data grids.",{},"/tanstack-table/overview",{"title":246495,"description":246841},"tanstack-table/overview","tanstack-table",[246846,246848,246849,573],"tanstack","data-grid","IQEZZzV5jBxylgCtZXT6GwyMvDtTZw0thXHalyZ8ig0",{"id":246852,"title":246853,"body":246854,"date":402,"description":247141,"extension":404,"meta":247142,"navigation":61,"order":37,"path":247143,"seo":247144,"stem":247145,"subject":246905,"tags":247146,"__hash__":247149},"topics/tauri/overview.md","Tauri",{"type":8,"value":246855,"toc":247130},[246856,246858,246861,246930,246936,246940,247004,247009,247011,247033,247042,247044,247048,247051,247055,247058,247062,247065,247095,247104,247106,247128],[11,246857,14],{"id":13},[16,246859,246860],{},"Tauri is a framework for building tiny, fast binaries for desktop and mobile platforms. It uses Rust for backend logic and allows integration with any frontend framework that compiles to HTML, JavaScript, and CSS.",[25,246862,246864],{"className":212148,"code":246863,"language":161277,"meta":30,"style":30},"// Sample Rust backend snippet for Tauri\nfn main() {\n    tauri::Builder::default()\n        .run(tauri::generate_context!())\n        .expect(\"error while running Tauri application\");\n}\n",[20,246865,246866,246871,246879,246894,246913,246926],{"__ignoreMap":30},[34,246867,246868],{"class":36,"line":37},[34,246869,246870],{"class":40},"// Sample Rust backend snippet for Tauri\n",[34,246872,246873,246875,246877],{"class":36,"line":44},[34,246874,77761],{"class":580},[34,246876,18224],{"class":47},[34,246878,836],{"class":181},[34,246880,246881,246884,246886,246888,246890,246892],{"class":36,"line":58},[34,246882,246883],{"class":47},"    tauri",[34,246885,30110],{"class":580},[34,246887,70851],{"class":47},[34,246889,30110],{"class":580},[34,246891,104159],{"class":47},[34,246893,33899],{"class":181},[34,246895,246896,246899,246901,246903,246906,246908,246911],{"class":36,"line":65},[34,246897,246898],{"class":580},"        .",[34,246900,14592],{"class":47},[34,246902,1607],{"class":181},[34,246904,246905],{"class":47},"tauri",[34,246907,30110],{"class":580},[34,246909,246910],{"class":47},"generate_context!",[34,246912,62281],{"class":181},[34,246914,246915,246917,246919,246921,246924],{"class":36,"line":71},[34,246916,246898],{"class":580},[34,246918,213214],{"class":47},[34,246920,1607],{"class":181},[34,246922,246923],{"class":54},"\"error while running Tauri application\"",[34,246925,1586],{"class":181},[34,246927,246928],{"class":36,"line":77},[34,246929,693],{"class":181},[16,246931,246932,246935],{},[8563,246933,246934],{},"Comment:"," This snippet initializes a simple Tauri application with default settings.",[11,246937,246939],{"id":246938},"setting-up-a-tauri-project","Setting Up a Tauri Project",[25,246941,246943],{"className":27,"code":246942,"language":29,"meta":30,"style":30},"# Using npm\nnpm create tauri-app@latest\n\n# Using Yarn\nyarn create tauri-app\n\n# Using Rust\ncargo install create-tauri-app --locked\ncargo create-tauri-app\n",[20,246944,246945,246949,246958,246962,246967,246976,246980,246985,246997],{"__ignoreMap":30},[34,246946,246947],{"class":36,"line":37},[34,246948,88725],{"class":40},[34,246950,246951,246953,246955],{"class":36,"line":44},[34,246952,8177],{"class":47},[34,246954,7077],{"class":54},[34,246956,246957],{"class":54}," tauri-app@latest\n",[34,246959,246960],{"class":36,"line":58},[34,246961,62],{"emptyLinePlaceholder":61},[34,246963,246964],{"class":36,"line":65},[34,246965,246966],{"class":40},"# Using Yarn\n",[34,246968,246969,246971,246973],{"class":36,"line":71},[34,246970,13810],{"class":47},[34,246972,7077],{"class":54},[34,246974,246975],{"class":54}," tauri-app\n",[34,246977,246978],{"class":36,"line":77},[34,246979,62],{"emptyLinePlaceholder":61},[34,246981,246982],{"class":36,"line":82},[34,246983,246984],{"class":40},"# Using Rust\n",[34,246986,246987,246989,246991,246994],{"class":36,"line":88},[34,246988,88917],{"class":47},[34,246990,118],{"class":54},[34,246992,246993],{"class":54}," create-tauri-app",[34,246995,246996],{"class":50}," --locked\n",[34,246998,246999,247001],{"class":36,"line":242},[34,247000,88917],{"class":47},[34,247002,247003],{"class":54}," create-tauri-app\n",[16,247005,247006,247008],{},[8563,247007,246934],{}," The above commands set up a new Tauri application with various tools.",[11,247010,164624],{"id":165310},[309,247012,247013,247023],{},[312,247014,247015,247018],{},[20,247016,247017],{},"src-tauri",[309,247019,247020],{},[312,247021,247022],{},"Contains Rust source code, Tauri configuration, and icons.",[312,247024,247025,247028],{},[20,247026,247027],{},"src",[309,247029,247030],{},[312,247031,247032],{},"Holds the frontend codebase.",[16,247034,247035,247037,247038,247041],{},[8563,247036,246934],{}," Ensure to configure ",[20,247039,247040],{},"src-tauri/tauri.conf.json"," for resource optimization.",[11,247043,8498],{"id":8497},[102,247045,247047],{"id":247046},"secure-foundation","Secure Foundation",[16,247049,247050],{},"By leveraging Rust, Tauri ensures memory safety, thread safety, and type safety.",[102,247052,247054],{"id":247053},"tiny-bundle-sizes","Tiny Bundle Sizes",[16,247056,247057],{},"Tauri apps rely on the system's native webview, drastically reducing the application size.",[102,247059,247061],{"id":247060},"flexible-frontend-integration","Flexible Frontend Integration",[16,247063,247064],{},"Tauri supports all major frontend frameworks, including React, Svelte, and Vue.",[25,247066,247068],{"className":13845,"code":247067,"language":8606,"meta":30,"style":30},"// Invoke Rust commands from JavaScript\nwindow.__TAURI__.invoke('command_name', { key: 'value' });\n",[20,247069,247070,247075],{"__ignoreMap":30},[34,247071,247072],{"class":36,"line":37},[34,247073,247074],{"class":40},"// Invoke Rust commands from JavaScript\n",[34,247076,247077,247080,247083,247085,247088,247091,247093],{"class":36,"line":44},[34,247078,247079],{"class":181},"window.__TAURI__.",[34,247081,247082],{"class":47},"invoke",[34,247084,1607],{"class":181},[34,247086,247087],{"class":54},"'command_name'",[34,247089,247090],{"class":181},", { key: ",[34,247092,76000],{"class":54},[34,247094,15567],{"class":181},[16,247096,247097,247099,247100,247103],{},[8563,247098,246934],{}," ",[20,247101,247102],{},"__TAURI__.invoke"," enables seamless communication between the frontend and backend.",[11,247105,159033],{"id":159032},[309,247107,247108,247114,247121],{},[312,247109,247110],{},[145,247111,28212],{"href":247112,"rel":247113},"https://tauri.app/start/",[149],[312,247115,247116],{},[145,247117,247120],{"href":247118,"rel":247119},"https://github.com/tauri-apps/create-tauri-app",[149],"Create-Tauri-App GitHub",[312,247122,247123],{},[145,247124,247127],{"href":247125,"rel":247126},"https://github.com/tauri-apps/tauri/security/policy",[149],"Security Policy",[388,247129,88671],{},{"title":30,"searchDepth":44,"depth":44,"links":247131},[247132,247133,247134,247135,247140],{"id":13,"depth":44,"text":14},{"id":246938,"depth":44,"text":246939},{"id":165310,"depth":44,"text":164624},{"id":8497,"depth":44,"text":8498,"children":247136},[247137,247138,247139],{"id":247046,"depth":58,"text":247047},{"id":247053,"depth":58,"text":247054},{"id":247060,"depth":58,"text":247061},{"id":159032,"depth":44,"text":159033},"Quick reference for building lightweight, multi-platform desktop apps using Tauri.",{},"/tauri/overview",{"title":246853,"description":247141},"tauri/overview",[246905,161277,982,247147,247148],"desktop","webview","fsAIadbL8-neYoTF7FvDZSKcdmAdqlyYUsphJrQTe74",{"id":247151,"title":247152,"body":247153,"date":402,"description":247506,"extension":404,"meta":247507,"navigation":61,"order":44,"path":247508,"seo":247509,"stem":247510,"subject":246905,"tags":247511,"__hash__":247512},"topics/tauri/plugins.md","Tauri Plugins",{"type":8,"value":247154,"toc":247498},[247155,247159,247163,247166,247338,247343,247347,247355,247359,247490,247495],[11,247156,247158],{"id":247157},"official-plugins","Official Plugins",[102,247160,247162],{"id":247161},"app-window","App Window",[16,247164,247165],{},"Provides extended functionality for managing application windows.",[25,247167,247169],{"className":212148,"code":247168,"language":161277,"meta":30,"style":30},"use tauri::{WindowBuilder, WebviewAttributes};\n\nfn main() {\n    tauri::Builder::default()\n        .setup(|app| {\n            let main_window = WindowBuilder::new(app, \"main\", WebviewAttributes::default())\n                .title(\"Custom Tauri Window\")\n                .build()?;\n            Ok(())\n        })\n        .run(tauri::generate_context!())\n        .expect(\"failed to run app\");\n}\n",[20,247170,247171,247192,247196,247204,247218,247235,247267,247281,247293,247300,247305,247321,247334],{"__ignoreMap":30},[34,247172,247173,247175,247178,247180,247182,247185,247187,247190],{"class":36,"line":37},[34,247174,61898],{"class":580},[34,247176,247177],{"class":47}," tauri",[34,247179,30110],{"class":580},[34,247181,13990],{"class":181},[34,247183,247184],{"class":47},"WindowBuilder",[34,247186,1798],{"class":181},[34,247188,247189],{"class":47},"WebviewAttributes",[34,247191,17632],{"class":181},[34,247193,247194],{"class":36,"line":44},[34,247195,62],{"emptyLinePlaceholder":61},[34,247197,247198,247200,247202],{"class":36,"line":58},[34,247199,77761],{"class":580},[34,247201,18224],{"class":47},[34,247203,836],{"class":181},[34,247205,247206,247208,247210,247212,247214,247216],{"class":36,"line":65},[34,247207,246883],{"class":47},[34,247209,30110],{"class":580},[34,247211,70851],{"class":47},[34,247213,30110],{"class":580},[34,247215,104159],{"class":47},[34,247217,33899],{"class":181},[34,247219,247220,247222,247224,247226,247228,247231,247233],{"class":36,"line":71},[34,247221,246898],{"class":580},[34,247223,75289],{"class":47},[34,247225,1607],{"class":181},[34,247227,2670],{"class":580},[34,247229,247230],{"class":181},"app",[34,247232,2670],{"class":580},[34,247234,661],{"class":181},[34,247236,247237,247240,247243,247245,247248,247250,247252,247255,247257,247259,247261,247263,247265],{"class":36,"line":77},[34,247238,247239],{"class":580},"            let",[34,247241,247242],{"class":181}," main_window ",[34,247244,1301],{"class":580},[34,247246,247247],{"class":47}," WindowBuilder",[34,247249,30110],{"class":580},[34,247251,3143],{"class":47},[34,247253,247254],{"class":181},"(app, ",[34,247256,224792],{"class":54},[34,247258,1798],{"class":181},[34,247260,247189],{"class":47},[34,247262,30110],{"class":580},[34,247264,104159],{"class":47},[34,247266,62281],{"class":181},[34,247268,247269,247272,247274,247276,247279],{"class":36,"line":82},[34,247270,247271],{"class":580},"                .",[34,247273,953],{"class":47},[34,247275,1607],{"class":181},[34,247277,247278],{"class":54},"\"Custom Tauri Window\"",[34,247280,3372],{"class":181},[34,247282,247283,247285,247287,247289,247291],{"class":36,"line":88},[34,247284,247271],{"class":580},[34,247286,71370],{"class":47},[34,247288,1546],{"class":181},[34,247290,18954],{"class":580},[34,247292,593],{"class":181},[34,247294,247295,247298],{"class":36,"line":242},[34,247296,247297],{"class":47},"            Ok",[34,247299,213509],{"class":181},[34,247301,247302],{"class":36,"line":250},[34,247303,247304],{"class":181},"        })\n",[34,247306,247307,247309,247311,247313,247315,247317,247319],{"class":36,"line":263},[34,247308,246898],{"class":580},[34,247310,14592],{"class":47},[34,247312,1607],{"class":181},[34,247314,246905],{"class":47},[34,247316,30110],{"class":580},[34,247318,246910],{"class":47},[34,247320,62281],{"class":181},[34,247322,247323,247325,247327,247329,247332],{"class":36,"line":275},[34,247324,246898],{"class":580},[34,247326,213214],{"class":47},[34,247328,1607],{"class":181},[34,247330,247331],{"class":54},"\"failed to run app\"",[34,247333,1586],{"class":181},[34,247335,247336],{"class":36,"line":700},[34,247337,693],{"class":181},[16,247339,247340,247342],{},[8563,247341,246934],{}," Create and manage a custom Tauri window with additional attributes.",[11,247344,247346],{"id":247345},"community-plugins","Community Plugins",[16,247348,247349,247350,151],{},"Explore community-driven plugins in the ",[145,247351,247354],{"href":247352,"rel":247353},"https://tauri.app/plugin/",[149],"Tauri Plugin Repository",[102,247356,247358],{"id":247357},"example-inter-process-communication","Example: Inter-Process Communication",[25,247360,247362],{"className":212148,"code":247361,"language":161277,"meta":30,"style":30},"fn main() {\n    tauri::Builder::default()\n        .invoke_handler(tauri::generate_handler![my_custom_command])\n        .run(tauri::generate_context!())\n        .expect(\"error while invoking command\");\n}\n\n#[tauri::command]\nfn my_custom_command(data: String) -> String {\n    format!(\"Received: {}\", data)\n}\n",[20,247363,247364,247372,247386,247405,247421,247434,247438,247442,247452,247474,247486],{"__ignoreMap":30},[34,247365,247366,247368,247370],{"class":36,"line":37},[34,247367,77761],{"class":580},[34,247369,18224],{"class":47},[34,247371,836],{"class":181},[34,247373,247374,247376,247378,247380,247382,247384],{"class":36,"line":44},[34,247375,246883],{"class":47},[34,247377,30110],{"class":580},[34,247379,70851],{"class":47},[34,247381,30110],{"class":580},[34,247383,104159],{"class":47},[34,247385,33899],{"class":181},[34,247387,247388,247390,247393,247395,247397,247399,247402],{"class":36,"line":58},[34,247389,246898],{"class":580},[34,247391,247392],{"class":47},"invoke_handler",[34,247394,1607],{"class":181},[34,247396,246905],{"class":47},[34,247398,30110],{"class":580},[34,247400,247401],{"class":47},"generate_handler!",[34,247403,247404],{"class":181},"[my_custom_command])\n",[34,247406,247407,247409,247411,247413,247415,247417,247419],{"class":36,"line":65},[34,247408,246898],{"class":580},[34,247410,14592],{"class":47},[34,247412,1607],{"class":181},[34,247414,246905],{"class":47},[34,247416,30110],{"class":580},[34,247418,246910],{"class":47},[34,247420,62281],{"class":181},[34,247422,247423,247425,247427,247429,247432],{"class":36,"line":71},[34,247424,246898],{"class":580},[34,247426,213214],{"class":47},[34,247428,1607],{"class":181},[34,247430,247431],{"class":54},"\"error while invoking command\"",[34,247433,1586],{"class":181},[34,247435,247436],{"class":36,"line":77},[34,247437,693],{"class":181},[34,247439,247440],{"class":36,"line":82},[34,247441,62],{"emptyLinePlaceholder":61},[34,247443,247444,247447,247449],{"class":36,"line":88},[34,247445,247446],{"class":181},"#[tauri",[34,247448,30110],{"class":580},[34,247450,247451],{"class":181},"command]\n",[34,247453,247454,247456,247459,247462,247464,247466,247468,247470,247472],{"class":36,"line":242},[34,247455,77761],{"class":580},[34,247457,247458],{"class":47}," my_custom_command",[34,247460,247461],{"class":181},"(data",[34,247463,165],{"class":580},[34,247465,131103],{"class":47},[34,247467,4817],{"class":181},[34,247469,24863],{"class":580},[34,247471,131103],{"class":47},[34,247473,661],{"class":181},[34,247475,247476,247478,247480,247483],{"class":36,"line":250},[34,247477,213567],{"class":47},[34,247479,1607],{"class":181},[34,247481,247482],{"class":54},"\"Received: {}\"",[34,247484,247485],{"class":181},", data)\n",[34,247487,247488],{"class":36,"line":263},[34,247489,693],{"class":181},[16,247491,247492,247494],{},[8563,247493,246934],{}," Custom commands facilitate secure communication between the frontend and backend.",[388,247496,247497],{},"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 .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);}",{"title":30,"searchDepth":44,"depth":44,"links":247499},[247500,247503],{"id":247157,"depth":44,"text":247158,"children":247501},[247502],{"id":247161,"depth":58,"text":247162},{"id":247345,"depth":44,"text":247346,"children":247504},[247505],{"id":247357,"depth":58,"text":247358},"Extending Tauri's functionality with official and community plugins.",{},"/tauri/plugins",{"title":247152,"description":247506},"tauri/plugins",[246905,157857,161277],"_V_w4eF3r72swVUnGojc5NNkD42bgmnHW3GWT-LjXFg",{"id":247514,"title":247515,"body":247516,"date":402,"description":247753,"extension":404,"meta":247754,"navigation":61,"order":250,"path":247755,"seo":247756,"stem":247757,"subject":247537,"tags":247758,"__hash__":247759},"topics/terraform/backend-configuration.md","Backend Configuration",{"type":8,"value":247517,"toc":247750},[247518,247521,247748],[11,247519,247515],{"id":247520},"backend-configuration",[25,247522,247526],{"className":247523,"code":247524,"language":247525,"meta":30,"style":30},"language-hcl shiki shiki-themes github-light github-dark","# Remote state storage\nterraform {\n  backend \"s3\" {\n    bucket         = \"my-terraform-state\"\n    key            = \"prod/terraform.tfstate\"   # State file path\n    region         = \"us-west-2\"\n    encrypt        = true                       # Enable encryption\n    dynamodb_table = \"terraform-lock\"           # State locking table\n  }\n}\n\n# Remote state data source (read state from another workspace)\ndata \"terraform_remote_state\" \"network\" {\n  backend = \"s3\"\n  config = {\n    bucket = \"my-terraform-state\"\n    key    = \"network/terraform.tfstate\"\n    region = \"us-west-2\"\n  }\n}\n\n# Use remote state outputs\nresource \"aws_instance\" \"app\" {\n  subnet_id = data.terraform_remote_state.network.outputs.subnet_id\n}\n","hcl",[20,247527,247528,247533,247540,247550,247561,247575,247585,247598,247611,247615,247619,247623,247628,247640,247649,247658,247667,247677,247686,247690,247694,247698,247703,247716,247744],{"__ignoreMap":30},[34,247529,247530],{"class":36,"line":37},[34,247531,247532],{"class":40},"# Remote state storage\n",[34,247534,247535,247538],{"class":36,"line":44},[34,247536,247537],{"class":47},"terraform",[34,247539,661],{"class":181},[34,247541,247542,247545,247548],{"class":36,"line":58},[34,247543,247544],{"class":47},"  backend",[34,247546,247547],{"class":50}," \"s3\"",[34,247549,661],{"class":181},[34,247551,247552,247555,247558],{"class":36,"line":65},[34,247553,247554],{"class":181},"    bucket",[34,247556,247557],{"class":580},"         =",[34,247559,247560],{"class":54}," \"my-terraform-state\"\n",[34,247562,247563,247566,247569,247572],{"class":36,"line":71},[34,247564,247565],{"class":181},"    key",[34,247567,247568],{"class":580},"            =",[34,247570,247571],{"class":54}," \"prod/terraform.tfstate\"",[34,247573,247574],{"class":40},"   # State file path\n",[34,247576,247577,247580,247582],{"class":36,"line":77},[34,247578,247579],{"class":181},"    region",[34,247581,247557],{"class":580},[34,247583,247584],{"class":54}," \"us-west-2\"\n",[34,247586,247587,247590,247593,247595],{"class":36,"line":82},[34,247588,247589],{"class":181},"    encrypt",[34,247591,247592],{"class":580},"        =",[34,247594,32945],{"class":50},[34,247596,247597],{"class":40},"                       # Enable encryption\n",[34,247599,247600,247603,247605,247608],{"class":36,"line":88},[34,247601,247602],{"class":181},"    dynamodb_table",[34,247604,683],{"class":580},[34,247606,247607],{"class":54}," \"terraform-lock\"",[34,247609,247610],{"class":40},"           # State locking table\n",[34,247612,247613],{"class":36,"line":242},[34,247614,857],{"class":181},[34,247616,247617],{"class":36,"line":250},[34,247618,693],{"class":181},[34,247620,247621],{"class":36,"line":263},[34,247622,62],{"emptyLinePlaceholder":61},[34,247624,247625],{"class":36,"line":275},[34,247626,247627],{"class":40},"# Remote state data source (read state from another workspace)\n",[34,247629,247630,247632,247635,247638],{"class":36,"line":700},[34,247631,1701],{"class":47},[34,247633,247634],{"class":50}," \"terraform_remote_state\"",[34,247636,247637],{"class":50}," \"network\"",[34,247639,661],{"class":181},[34,247641,247642,247644,247646],{"class":36,"line":706},[34,247643,247544],{"class":181},[34,247645,683],{"class":580},[34,247647,247648],{"class":54}," \"s3\"\n",[34,247650,247651,247654,247656],{"class":36,"line":715},[34,247652,247653],{"class":181},"  config",[34,247655,683],{"class":580},[34,247657,661],{"class":181},[34,247659,247660,247663,247665],{"class":36,"line":725},[34,247661,247662],{"class":181},"    bucket ",[34,247664,1301],{"class":580},[34,247666,247560],{"class":54},[34,247668,247669,247672,247674],{"class":36,"line":734},[34,247670,247671],{"class":181},"    key    ",[34,247673,1301],{"class":580},[34,247675,247676],{"class":54}," \"network/terraform.tfstate\"\n",[34,247678,247679,247682,247684],{"class":36,"line":742},[34,247680,247681],{"class":181},"    region ",[34,247683,1301],{"class":580},[34,247685,247584],{"class":54},[34,247687,247688],{"class":36,"line":748},[34,247689,857],{"class":181},[34,247691,247692],{"class":36,"line":754},[34,247693,693],{"class":181},[34,247695,247696],{"class":36,"line":759},[34,247697,62],{"emptyLinePlaceholder":61},[34,247699,247700],{"class":36,"line":771},[34,247701,247702],{"class":40},"# Use remote state outputs\n",[34,247704,247705,247708,247711,247714],{"class":36,"line":794},[34,247706,247707],{"class":47},"resource",[34,247709,247710],{"class":50}," \"aws_instance\"",[34,247712,247713],{"class":50}," \"app\"",[34,247715,661],{"class":181},[34,247717,247718,247721,247723,247725,247727,247730,247732,247735,247737,247739,247741],{"class":36,"line":824},[34,247719,247720],{"class":181},"  subnet_id",[34,247722,683],{"class":580},[34,247724,14780],{"class":181},[34,247726,151],{"class":580},[34,247728,247729],{"class":181},"terraform_remote_state",[34,247731,151],{"class":580},[34,247733,247734],{"class":181},"network",[34,247736,151],{"class":580},[34,247738,190740],{"class":181},[34,247740,151],{"class":580},[34,247742,247743],{"class":181},"subnet_id\n",[34,247745,247746],{"class":36,"line":830},[34,247747,693],{"class":181},[388,247749,40607],{},{"title":30,"searchDepth":44,"depth":44,"links":247751},[247752],{"id":247520,"depth":44,"text":247515},"Backend Configuration in Terraform.",{},"/terraform/backend-configuration",{"title":247515,"description":247753},"terraform/backend-configuration",[247537,190836,190837,5438,9293],"wNChR60mJg-kWLsxDz7_-u1_So_Int2oWTWFjzDzXD8",{"id":247761,"title":27904,"body":247762,"date":402,"description":247876,"extension":404,"meta":247877,"navigation":61,"order":44,"path":247878,"seo":247879,"stem":247880,"subject":247537,"tags":247881,"__hash__":247882},"topics/terraform/basic-configuration.md",{"type":8,"value":247763,"toc":247873},[247764,247766,247871],[11,247765,27904],{"id":27903},[25,247767,247769],{"className":247523,"code":247768,"language":247525,"meta":30,"style":30},"# Provider configuration\nterraform {\n  required_version = \">= 1.0\"\n  required_providers {\n    aws = {\n      source  = \"hashicorp/aws\"\n      version = \"~> 5.0\"\n    }\n  }\n}\n\nprovider \"aws\" {\n  region = \"us-west-2\"              # AWS region\n}\n",[20,247770,247771,247776,247782,247792,247799,247808,247818,247828,247832,247836,247840,247844,247854,247867],{"__ignoreMap":30},[34,247772,247773],{"class":36,"line":37},[34,247774,247775],{"class":40},"# Provider configuration\n",[34,247777,247778,247780],{"class":36,"line":44},[34,247779,247537],{"class":47},[34,247781,661],{"class":181},[34,247783,247784,247787,247789],{"class":36,"line":58},[34,247785,247786],{"class":181},"  required_version",[34,247788,683],{"class":580},[34,247790,247791],{"class":54}," \">= 1.0\"\n",[34,247793,247794,247797],{"class":36,"line":65},[34,247795,247796],{"class":47},"  required_providers",[34,247798,661],{"class":181},[34,247800,247801,247804,247806],{"class":36,"line":71},[34,247802,247803],{"class":181},"    aws",[34,247805,683],{"class":580},[34,247807,661],{"class":181},[34,247809,247810,247813,247815],{"class":36,"line":77},[34,247811,247812],{"class":181},"      source  ",[34,247814,1301],{"class":580},[34,247816,247817],{"class":54}," \"hashicorp/aws\"\n",[34,247819,247820,247823,247825],{"class":36,"line":82},[34,247821,247822],{"class":181},"      version ",[34,247824,1301],{"class":580},[34,247826,247827],{"class":54}," \"~> 5.0\"\n",[34,247829,247830],{"class":36,"line":88},[34,247831,3229],{"class":181},[34,247833,247834],{"class":36,"line":242},[34,247835,857],{"class":181},[34,247837,247838],{"class":36,"line":250},[34,247839,693],{"class":181},[34,247841,247842],{"class":36,"line":263},[34,247843,62],{"emptyLinePlaceholder":61},[34,247845,247846,247849,247852],{"class":36,"line":275},[34,247847,247848],{"class":47},"provider",[34,247850,247851],{"class":50}," \"aws\"",[34,247853,661],{"class":181},[34,247855,247856,247859,247861,247864],{"class":36,"line":700},[34,247857,247858],{"class":181},"  region",[34,247860,683],{"class":580},[34,247862,247863],{"class":54}," \"us-west-2\"",[34,247865,247866],{"class":40},"              # AWS region\n",[34,247868,247869],{"class":36,"line":706},[34,247870,693],{"class":181},[388,247872,48492],{},{"title":30,"searchDepth":44,"depth":44,"links":247874},[247875],{"id":27903,"depth":44,"text":27904},"Basic Configuration in Terraform.",{},"/terraform/basic-configuration",{"title":27904,"description":247876},"terraform/basic-configuration",[247537,190836,190837,5438,9293],"pbhI6zk6bHsBqY-OhYICfEe1r5lsUl-fc3zF6yYEEpk",{"id":247884,"title":113747,"body":247885,"date":402,"description":248287,"extension":404,"meta":248288,"navigation":61,"order":263,"path":248289,"seo":248290,"stem":248291,"subject":247537,"tags":248292,"__hash__":248293},"topics/terraform/common-commands.md",{"type":8,"value":247886,"toc":248284},[247887,247889,248282],[11,247888,113747],{"id":113746},[25,247890,247892],{"className":27,"code":247891,"language":29,"meta":30,"style":30},"# Initialize working directory (download providers, modules)\nterraform init\n\n# Preview changes without applying\nterraform plan\n\n# Preview with variable file\nterraform plan -var-file=\"prod.tfvars\"\n\n# Apply changes (creates/updates infrastructure)\nterraform apply\n\n# Apply without confirmation prompt\nterraform apply -auto-approve\n\n# Apply specific resource\nterraform apply -target=aws_instance.web\n\n# Destroy all resources\nterraform destroy\n\n# Destroy specific resource\nterraform destroy -target=aws_instance.web\n\n# Format code to canonical style\nterraform fmt\n\n# Validate configuration syntax\nterraform validate\n\n# Show current state\nterraform show\n\n# List resources in state\nterraform state list\n\n# Show specific resource details\nterraform state show aws_instance.web\n\n# Remove resource from state (doesn't destroy)\nterraform state rm aws_instance.web\n\n# Import existing infrastructure\nterraform import aws_instance.web i-1234567890abcdef0\n\n# View available outputs\nterraform output\n\n# Get specific output value\nterraform output instance_id\n\n# Create workspace (environment isolation)\nterraform workspace new staging\n\n# List workspaces\nterraform workspace list\n\n# Switch workspace\nterraform workspace select production\n\n# Refresh state from real infrastructure\nterraform refresh\n\n# Generate dependency graph\nterraform graph | dot -Tsvg > graph.svg\n",[20,247893,247894,247899,247905,247909,247914,247921,247925,247930,247943,247947,247952,247959,247963,247968,247977,247981,247986,247995,247999,248003,248009,248013,248018,248027,248031,248036,248042,248046,248051,248058,248062,248067,248073,248077,248082,248090,248094,248099,248110,248114,248119,248129,248133,248138,248149,248153,248158,248165,248169,248174,248183,248187,248192,248203,248207,248211,248219,248223,248228,248239,248243,248248,248254,248258,248263],{"__ignoreMap":30},[34,247895,247896],{"class":36,"line":37},[34,247897,247898],{"class":40},"# Initialize working directory (download providers, modules)\n",[34,247900,247901,247903],{"class":36,"line":44},[34,247902,247537],{"class":47},[34,247904,8180],{"class":54},[34,247906,247907],{"class":36,"line":58},[34,247908,62],{"emptyLinePlaceholder":61},[34,247910,247911],{"class":36,"line":65},[34,247912,247913],{"class":40},"# Preview changes without applying\n",[34,247915,247916,247918],{"class":36,"line":71},[34,247917,247537],{"class":47},[34,247919,247920],{"class":54}," plan\n",[34,247922,247923],{"class":36,"line":77},[34,247924,62],{"emptyLinePlaceholder":61},[34,247926,247927],{"class":36,"line":82},[34,247928,247929],{"class":40},"# Preview with variable file\n",[34,247931,247932,247934,247937,247940],{"class":36,"line":88},[34,247933,247537],{"class":47},[34,247935,247936],{"class":54}," plan",[34,247938,247939],{"class":50}," -var-file=",[34,247941,247942],{"class":54},"\"prod.tfvars\"\n",[34,247944,247945],{"class":36,"line":242},[34,247946,62],{"emptyLinePlaceholder":61},[34,247948,247949],{"class":36,"line":250},[34,247950,247951],{"class":40},"# Apply changes (creates/updates infrastructure)\n",[34,247953,247954,247956],{"class":36,"line":263},[34,247955,247537],{"class":47},[34,247957,247958],{"class":54}," apply\n",[34,247960,247961],{"class":36,"line":275},[34,247962,62],{"emptyLinePlaceholder":61},[34,247964,247965],{"class":36,"line":700},[34,247966,247967],{"class":40},"# Apply without confirmation prompt\n",[34,247969,247970,247972,247974],{"class":36,"line":706},[34,247971,247537],{"class":47},[34,247973,7090],{"class":54},[34,247975,247976],{"class":50}," -auto-approve\n",[34,247978,247979],{"class":36,"line":715},[34,247980,62],{"emptyLinePlaceholder":61},[34,247982,247983],{"class":36,"line":725},[34,247984,247985],{"class":40},"# Apply specific resource\n",[34,247987,247988,247990,247992],{"class":36,"line":734},[34,247989,247537],{"class":47},[34,247991,7090],{"class":54},[34,247993,247994],{"class":50}," -target=aws_instance.web\n",[34,247996,247997],{"class":36,"line":742},[34,247998,62],{"emptyLinePlaceholder":61},[34,248000,248001],{"class":36,"line":748},[34,248002,190553],{"class":40},[34,248004,248005,248007],{"class":36,"line":754},[34,248006,247537],{"class":47},[34,248008,190560],{"class":54},[34,248010,248011],{"class":36,"line":759},[34,248012,62],{"emptyLinePlaceholder":61},[34,248014,248015],{"class":36,"line":771},[34,248016,248017],{"class":40},"# Destroy specific resource\n",[34,248019,248020,248022,248025],{"class":36,"line":794},[34,248021,247537],{"class":47},[34,248023,248024],{"class":54}," destroy",[34,248026,247994],{"class":50},[34,248028,248029],{"class":36,"line":824},[34,248030,62],{"emptyLinePlaceholder":61},[34,248032,248033],{"class":36,"line":830},[34,248034,248035],{"class":40},"# Format code to canonical style\n",[34,248037,248038,248040],{"class":36,"line":839},[34,248039,247537],{"class":47},[34,248041,46736],{"class":54},[34,248043,248044],{"class":36,"line":854},[34,248045,62],{"emptyLinePlaceholder":61},[34,248047,248048],{"class":36,"line":860},[34,248049,248050],{"class":40},"# Validate configuration syntax\n",[34,248052,248053,248055],{"class":36,"line":865},[34,248054,247537],{"class":47},[34,248056,248057],{"class":54}," validate\n",[34,248059,248060],{"class":36,"line":870},[34,248061,62],{"emptyLinePlaceholder":61},[34,248063,248064],{"class":36,"line":876},[34,248065,248066],{"class":40},"# Show current state\n",[34,248068,248069,248071],{"class":36,"line":885},[34,248070,247537],{"class":47},[34,248072,9464],{"class":54},[34,248074,248075],{"class":36,"line":895},[34,248076,62],{"emptyLinePlaceholder":61},[34,248078,248079],{"class":36,"line":904},[34,248080,248081],{"class":40},"# List resources in state\n",[34,248083,248084,248086,248088],{"class":36,"line":915},[34,248085,247537],{"class":47},[34,248087,186262],{"class":54},[34,248089,7536],{"class":54},[34,248091,248092],{"class":36,"line":927},[34,248093,62],{"emptyLinePlaceholder":61},[34,248095,248096],{"class":36,"line":932},[34,248097,248098],{"class":40},"# Show specific resource details\n",[34,248100,248101,248103,248105,248107],{"class":36,"line":944},[34,248102,247537],{"class":47},[34,248104,186262],{"class":54},[34,248106,6558],{"class":54},[34,248108,248109],{"class":54}," aws_instance.web\n",[34,248111,248112],{"class":36,"line":966},[34,248113,62],{"emptyLinePlaceholder":61},[34,248115,248116],{"class":36,"line":1948},[34,248117,248118],{"class":40},"# Remove resource from state (doesn't destroy)\n",[34,248120,248121,248123,248125,248127],{"class":36,"line":1953},[34,248122,247537],{"class":47},[34,248124,186262],{"class":54},[34,248126,8901],{"class":54},[34,248128,248109],{"class":54},[34,248130,248131],{"class":36,"line":3616},[34,248132,62],{"emptyLinePlaceholder":61},[34,248134,248135],{"class":36,"line":3622},[34,248136,248137],{"class":40},"# Import existing infrastructure\n",[34,248139,248140,248142,248144,248147],{"class":36,"line":3642},[34,248141,247537],{"class":47},[34,248143,3364],{"class":54},[34,248145,248146],{"class":54}," aws_instance.web",[34,248148,8958],{"class":54},[34,248150,248151],{"class":36,"line":3657},[34,248152,62],{"emptyLinePlaceholder":61},[34,248154,248155],{"class":36,"line":3663},[34,248156,248157],{"class":40},"# View available outputs\n",[34,248159,248160,248162],{"class":36,"line":3669},[34,248161,247537],{"class":47},[34,248163,248164],{"class":54}," output\n",[34,248166,248167],{"class":36,"line":3675},[34,248168,62],{"emptyLinePlaceholder":61},[34,248170,248171],{"class":36,"line":3693},[34,248172,248173],{"class":40},"# Get specific output value\n",[34,248175,248176,248178,248180],{"class":36,"line":3707},[34,248177,247537],{"class":47},[34,248179,16775],{"class":54},[34,248181,248182],{"class":54}," instance_id\n",[34,248184,248185],{"class":36,"line":3712},[34,248186,62],{"emptyLinePlaceholder":61},[34,248188,248189],{"class":36,"line":3717},[34,248190,248191],{"class":40},"# Create workspace (environment isolation)\n",[34,248193,248194,248196,248199,248201],{"class":36,"line":25776},[34,248195,247537],{"class":47},[34,248197,248198],{"class":54}," workspace",[34,248200,809],{"class":54},[34,248202,190472],{"class":54},[34,248204,248205],{"class":36,"line":49902},[34,248206,62],{"emptyLinePlaceholder":61},[34,248208,248209],{"class":36,"line":52569},[34,248210,161160],{"class":40},[34,248212,248213,248215,248217],{"class":36,"line":52574},[34,248214,247537],{"class":47},[34,248216,248198],{"class":54},[34,248218,7536],{"class":54},[34,248220,248221],{"class":36,"line":52580},[34,248222,62],{"emptyLinePlaceholder":61},[34,248224,248225],{"class":36,"line":52608},[34,248226,248227],{"class":40},"# Switch workspace\n",[34,248229,248230,248232,248234,248236],{"class":36,"line":52625},[34,248231,247537],{"class":47},[34,248233,248198],{"class":54},[34,248235,190490],{"class":54},[34,248237,248238],{"class":54}," production\n",[34,248240,248241],{"class":36,"line":52636},[34,248242,62],{"emptyLinePlaceholder":61},[34,248244,248245],{"class":36,"line":52645},[34,248246,248247],{"class":40},"# Refresh state from real infrastructure\n",[34,248249,248250,248252],{"class":36,"line":52650},[34,248251,247537],{"class":47},[34,248253,94583],{"class":54},[34,248255,248256],{"class":36,"line":52655},[34,248257,62],{"emptyLinePlaceholder":61},[34,248259,248260],{"class":36,"line":52660},[34,248261,248262],{"class":40},"# Generate dependency graph\n",[34,248264,248265,248267,248269,248271,248274,248277,248279],{"class":36,"line":52665},[34,248266,247537],{"class":47},[34,248268,50037],{"class":54},[34,248270,7197],{"class":580},[34,248272,248273],{"class":47}," dot",[34,248275,248276],{"class":50}," -Tsvg",[34,248278,9009],{"class":580},[34,248280,248281],{"class":54}," graph.svg\n",[388,248283,81522],{},{"title":30,"searchDepth":44,"depth":44,"links":248285},[248286],{"id":113746,"depth":44,"text":113747},"Common Commands in Terraform.",{},"/terraform/common-commands",{"title":113747,"description":248287},"terraform/common-commands",[247537,190836,190837,5438,9293],"F_cgE7lHCuJD_V8gf3ivd2apGDbb26xXZLUXqohj528",{"id":248295,"title":248296,"body":248297,"date":402,"description":248697,"extension":404,"meta":248698,"navigation":61,"order":88,"path":248699,"seo":248700,"stem":248701,"subject":247537,"tags":248702,"__hash__":248703},"topics/terraform/conditionals-and-loops.md","Conditionals and Loops",{"type":8,"value":248298,"toc":248694},[248299,248302,248691],[11,248300,248296],{"id":248301},"conditionals-and-loops",[25,248303,248305],{"className":247523,"code":248304,"language":247525,"meta":30,"style":30},"# Count for multiple resources\nresource \"aws_instance\" \"server\" {\n  count         = 3                     # Create 3 instances\n  ami           = \"ami-0c55b159cbfafe1f0\"\n  instance_type = \"t2.micro\"\n  \n  tags = {\n    Name = \"Server-${count.index}\"      # Use count.index (0, 1, 2)\n  }\n}\n\n# for_each for dynamic resources\nvariable \"users\" {\n  default = [\"alice\", \"bob\", \"charlie\"]\n}\n\nresource \"aws_iam_user\" \"example\" {\n  for_each = toset(var.users)           # Convert list to set\n  name     = each.key                   # Current item value\n}\n\n# Conditional expression\nresource \"aws_instance\" \"example\" {\n  ami           = \"ami-0c55b159cbfafe1f0\"\n  instance_type = var.environment == \"prod\" ? \"t3.large\" : \"t2.micro\"\n}\n\n# Dynamic blocks\nresource \"aws_security_group\" \"example\" {\n  name = \"example\"\n  \n  dynamic \"ingress\" {\n    for_each = var.service_ports        # Iterate over collection\n    content {\n      from_port   = ingress.value\n      to_port     = ingress.value\n      protocol    = \"tcp\"\n      cidr_blocks = [\"0.0.0.0/0\"]\n    }\n  }\n}\n",[20,248306,248307,248312,248323,248334,248345,248355,248359,248368,248393,248397,248401,248405,248410,248419,248440,248444,248448,248460,248481,248498,248502,248506,248511,248521,248529,248556,248560,248564,248569,248580,248589,248593,248603,248620,248627,248642,248655,248665,248679,248683,248687],{"__ignoreMap":30},[34,248308,248309],{"class":36,"line":37},[34,248310,248311],{"class":40},"# Count for multiple resources\n",[34,248313,248314,248316,248318,248321],{"class":36,"line":44},[34,248315,247707],{"class":47},[34,248317,247710],{"class":50},[34,248319,248320],{"class":50}," \"server\"",[34,248322,661],{"class":181},[34,248324,248325,248327,248329,248331],{"class":36,"line":58},[34,248326,4242],{"class":181},[34,248328,247557],{"class":580},[34,248330,11147],{"class":50},[34,248332,248333],{"class":40},"                     # Create 3 instances\n",[34,248335,248336,248339,248342],{"class":36,"line":65},[34,248337,248338],{"class":181},"  ami",[34,248340,248341],{"class":580},"           =",[34,248343,248344],{"class":54}," \"ami-0c55b159cbfafe1f0\"\n",[34,248346,248347,248350,248352],{"class":36,"line":71},[34,248348,248349],{"class":181},"  instance_type",[34,248351,683],{"class":580},[34,248353,248354],{"class":54}," \"t2.micro\"\n",[34,248356,248357],{"class":36,"line":77},[34,248358,827],{"class":181},[34,248360,248361,248364,248366],{"class":36,"line":82},[34,248362,248363],{"class":181},"  tags",[34,248365,683],{"class":580},[34,248367,661],{"class":181},[34,248369,248370,248372,248374,248377,248380,248382,248384,248386,248388,248390],{"class":36,"line":88},[34,248371,108103],{"class":181},[34,248373,1301],{"class":580},[34,248375,248376],{"class":54}," \"Server-",[34,248378,248379],{"class":580},"${",[34,248381,4284],{"class":181},[34,248383,151],{"class":580},[34,248385,200432],{"class":181},[34,248387,34378],{"class":580},[34,248389,10389],{"class":54},[34,248391,248392],{"class":40},"      # Use count.index (0, 1, 2)\n",[34,248394,248395],{"class":36,"line":242},[34,248396,857],{"class":181},[34,248398,248399],{"class":36,"line":250},[34,248400,693],{"class":181},[34,248402,248403],{"class":36,"line":263},[34,248404,62],{"emptyLinePlaceholder":61},[34,248406,248407],{"class":36,"line":275},[34,248408,248409],{"class":40},"# for_each for dynamic resources\n",[34,248411,248412,248415,248417],{"class":36,"line":700},[34,248413,248414],{"class":47},"variable",[34,248416,85135],{"class":50},[34,248418,661],{"class":181},[34,248420,248421,248423,248425,248427,248429,248431,248433,248435,248438],{"class":36,"line":706},[34,248422,162386],{"class":181},[34,248424,683],{"class":580},[34,248426,8315],{"class":181},[34,248428,216647],{"class":54},[34,248430,1798],{"class":181},[34,248432,216710],{"class":54},[34,248434,1798],{"class":181},[34,248436,248437],{"class":54},"\"charlie\"",[34,248439,924],{"class":181},[34,248441,248442],{"class":36,"line":715},[34,248443,693],{"class":181},[34,248445,248446],{"class":36,"line":725},[34,248447,62],{"emptyLinePlaceholder":61},[34,248449,248450,248452,248455,248458],{"class":36,"line":734},[34,248451,247707],{"class":47},[34,248453,248454],{"class":50}," \"aws_iam_user\"",[34,248456,248457],{"class":50}," \"example\"",[34,248459,661],{"class":181},[34,248461,248462,248465,248467,248470,248473,248475,248478],{"class":36,"line":742},[34,248463,248464],{"class":181},"  for_each",[34,248466,683],{"class":580},[34,248468,248469],{"class":50}," toset",[34,248471,248472],{"class":181},"(var",[34,248474,151],{"class":580},[34,248476,248477],{"class":181},"users)           ",[34,248479,248480],{"class":40},"# Convert list to set\n",[34,248482,248483,248485,248488,248490,248492,248495],{"class":36,"line":748},[34,248484,7350],{"class":181},[34,248486,248487],{"class":580},"     =",[34,248489,229895],{"class":181},[34,248491,151],{"class":580},[34,248493,248494],{"class":181},"key                   ",[34,248496,248497],{"class":40},"# Current item value\n",[34,248499,248500],{"class":36,"line":754},[34,248501,693],{"class":181},[34,248503,248504],{"class":36,"line":759},[34,248505,62],{"emptyLinePlaceholder":61},[34,248507,248508],{"class":36,"line":771},[34,248509,248510],{"class":40},"# Conditional expression\n",[34,248512,248513,248515,248517,248519],{"class":36,"line":794},[34,248514,247707],{"class":47},[34,248516,247710],{"class":50},[34,248518,248457],{"class":50},[34,248520,661],{"class":181},[34,248522,248523,248525,248527],{"class":36,"line":824},[34,248524,248338],{"class":181},[34,248526,248341],{"class":580},[34,248528,248344],{"class":54},[34,248530,248531,248533,248535,248537,248539,248542,248544,248547,248549,248552,248554],{"class":36,"line":830},[34,248532,248349],{"class":181},[34,248534,683],{"class":580},[34,248536,33845],{"class":181},[34,248538,151],{"class":580},[34,248540,248541],{"class":181},"environment ",[34,248543,18168],{"class":580},[34,248545,248546],{"class":54}," \"prod\"",[34,248548,131598],{"class":580},[34,248550,248551],{"class":54}," \"t3.large\"",[34,248553,64223],{"class":580},[34,248555,248354],{"class":54},[34,248557,248558],{"class":36,"line":839},[34,248559,693],{"class":181},[34,248561,248562],{"class":36,"line":854},[34,248563,62],{"emptyLinePlaceholder":61},[34,248565,248566],{"class":36,"line":860},[34,248567,248568],{"class":40},"# Dynamic blocks\n",[34,248570,248571,248573,248576,248578],{"class":36,"line":865},[34,248572,247707],{"class":47},[34,248574,248575],{"class":50}," \"aws_security_group\"",[34,248577,248457],{"class":50},[34,248579,661],{"class":181},[34,248581,248582,248584,248586],{"class":36,"line":870},[34,248583,7350],{"class":181},[34,248585,683],{"class":580},[34,248587,248588],{"class":54}," \"example\"\n",[34,248590,248591],{"class":36,"line":876},[34,248592,827],{"class":181},[34,248594,248595,248598,248601],{"class":36,"line":885},[34,248596,248597],{"class":47},"  dynamic",[34,248599,248600],{"class":50}," \"ingress\"",[34,248602,661],{"class":181},[34,248604,248605,248608,248610,248612,248614,248617],{"class":36,"line":895},[34,248606,248607],{"class":181},"    for_each",[34,248609,683],{"class":580},[34,248611,33845],{"class":181},[34,248613,151],{"class":580},[34,248615,248616],{"class":181},"service_ports        ",[34,248618,248619],{"class":40},"# Iterate over collection\n",[34,248621,248622,248625],{"class":36,"line":904},[34,248623,248624],{"class":47},"    content",[34,248626,661],{"class":181},[34,248628,248629,248632,248634,248637,248639],{"class":36,"line":915},[34,248630,248631],{"class":181},"      from_port",[34,248633,188661],{"class":580},[34,248635,248636],{"class":181}," ingress",[34,248638,151],{"class":580},[34,248640,248641],{"class":181},"value\n",[34,248643,248644,248647,248649,248651,248653],{"class":36,"line":927},[34,248645,248646],{"class":181},"      to_port",[34,248648,248487],{"class":580},[34,248650,248636],{"class":181},[34,248652,151],{"class":580},[34,248654,248641],{"class":181},[34,248656,248657,248660,248662],{"class":36,"line":932},[34,248658,248659],{"class":181},"      protocol",[34,248661,108502],{"class":580},[34,248663,248664],{"class":54}," \"tcp\"\n",[34,248666,248667,248670,248672,248674,248677],{"class":36,"line":944},[34,248668,248669],{"class":181},"      cidr_blocks",[34,248671,683],{"class":580},[34,248673,8315],{"class":181},[34,248675,248676],{"class":54},"\"0.0.0.0/0\"",[34,248678,924],{"class":181},[34,248680,248681],{"class":36,"line":966},[34,248682,3229],{"class":181},[34,248684,248685],{"class":36,"line":1948},[34,248686,857],{"class":181},[34,248688,248689],{"class":36,"line":1953},[34,248690,693],{"class":181},[388,248692,248693],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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);}",{"title":30,"searchDepth":44,"depth":44,"links":248695},[248696],{"id":248301,"depth":44,"text":248296},"Conditionals and Loops in Terraform.",{},"/terraform/conditionals-and-loops",{"title":248296,"description":248697},"terraform/conditionals-and-loops",[247537,190836,190837,5438,9293],"BQZ3ct5t9IsMiaMFI9wB5RB7W_yer_DLJJO-VXuHWxM",{"id":248705,"title":248706,"body":248707,"date":402,"description":248928,"extension":404,"meta":248929,"navigation":61,"order":77,"path":248930,"seo":248931,"stem":248932,"subject":247537,"tags":248933,"__hash__":248934},"topics/terraform/data-sources.md","Data Sources",{"type":8,"value":248708,"toc":248925},[248709,248712,248923],[11,248710,248706],{"id":248711},"data-sources",[25,248713,248715],{"className":247523,"code":248714,"language":247525,"meta":30,"style":30},"# Query existing resources (read-only)\ndata \"aws_ami\" \"ubuntu\" {\n  most_recent = true                    # Get latest AMI\n  owners      = [\"099720109477\"]        # Canonical's AWS account ID\n  \n  filter {\n    name   = \"name\"\n    values = [\"ubuntu/images/hvm-ssd/ubuntu-*-22.04-amd64-server-*\"]\n  }\n}\n\n# Use data source in resource\nresource \"aws_instance\" \"ubuntu_server\" {\n  ami           = data.aws_ami.ubuntu.id    # Reference data source\n  instance_type = \"t2.micro\"\n}\n\n# Get current AWS account info\ndata \"aws_caller_identity\" \"current\" {}\n\noutput \"account_id\" {\n  value = data.aws_caller_identity.current.account_id\n}\n",[20,248716,248717,248722,248734,248746,248764,248768,248774,248783,248797,248801,248805,248809,248814,248825,248850,248858,248862,248866,248871,248883,248887,248896,248919],{"__ignoreMap":30},[34,248718,248719],{"class":36,"line":37},[34,248720,248721],{"class":40},"# Query existing resources (read-only)\n",[34,248723,248724,248726,248729,248732],{"class":36,"line":44},[34,248725,1701],{"class":47},[34,248727,248728],{"class":50}," \"aws_ami\"",[34,248730,248731],{"class":50}," \"ubuntu\"",[34,248733,661],{"class":181},[34,248735,248736,248739,248741,248743],{"class":36,"line":58},[34,248737,248738],{"class":181},"  most_recent",[34,248740,683],{"class":580},[34,248742,32945],{"class":50},[34,248744,248745],{"class":40},"                    # Get latest AMI\n",[34,248747,248748,248751,248754,248756,248759,248761],{"class":36,"line":65},[34,248749,248750],{"class":181},"  owners",[34,248752,248753],{"class":580},"      =",[34,248755,8315],{"class":181},[34,248757,248758],{"class":54},"\"099720109477\"",[34,248760,208032],{"class":181},[34,248762,248763],{"class":40},"# Canonical's AWS account ID\n",[34,248765,248766],{"class":36,"line":71},[34,248767,827],{"class":181},[34,248769,248770,248772],{"class":36,"line":77},[34,248771,218677],{"class":47},[34,248773,661],{"class":181},[34,248775,248776,248778,248780],{"class":36,"line":82},[34,248777,5362],{"class":181},[34,248779,188661],{"class":580},[34,248781,248782],{"class":54}," \"name\"\n",[34,248784,248785,248788,248790,248792,248795],{"class":36,"line":88},[34,248786,248787],{"class":181},"    values",[34,248789,683],{"class":580},[34,248791,8315],{"class":181},[34,248793,248794],{"class":54},"\"ubuntu/images/hvm-ssd/ubuntu-*-22.04-amd64-server-*\"",[34,248796,924],{"class":181},[34,248798,248799],{"class":36,"line":242},[34,248800,857],{"class":181},[34,248802,248803],{"class":36,"line":250},[34,248804,693],{"class":181},[34,248806,248807],{"class":36,"line":263},[34,248808,62],{"emptyLinePlaceholder":61},[34,248810,248811],{"class":36,"line":275},[34,248812,248813],{"class":40},"# Use data source in resource\n",[34,248815,248816,248818,248820,248823],{"class":36,"line":700},[34,248817,247707],{"class":47},[34,248819,247710],{"class":50},[34,248821,248822],{"class":50}," \"ubuntu_server\"",[34,248824,661],{"class":181},[34,248826,248827,248829,248831,248833,248835,248838,248840,248842,248844,248847],{"class":36,"line":706},[34,248828,248338],{"class":181},[34,248830,248341],{"class":580},[34,248832,14780],{"class":181},[34,248834,151],{"class":580},[34,248836,248837],{"class":181},"aws_ami",[34,248839,151],{"class":580},[34,248841,5590],{"class":181},[34,248843,151],{"class":580},[34,248845,248846],{"class":181},"id    ",[34,248848,248849],{"class":40},"# Reference data source\n",[34,248851,248852,248854,248856],{"class":36,"line":715},[34,248853,248349],{"class":181},[34,248855,683],{"class":580},[34,248857,248354],{"class":54},[34,248859,248860],{"class":36,"line":725},[34,248861,693],{"class":181},[34,248863,248864],{"class":36,"line":734},[34,248865,62],{"emptyLinePlaceholder":61},[34,248867,248868],{"class":36,"line":742},[34,248869,248870],{"class":40},"# Get current AWS account info\n",[34,248872,248873,248875,248878,248881],{"class":36,"line":748},[34,248874,1701],{"class":47},[34,248876,248877],{"class":50}," \"aws_caller_identity\"",[34,248879,248880],{"class":50}," \"current\"",[34,248882,1104],{"class":181},[34,248884,248885],{"class":36,"line":754},[34,248886,62],{"emptyLinePlaceholder":61},[34,248888,248889,248891,248894],{"class":36,"line":759},[34,248890,80533],{"class":47},[34,248892,248893],{"class":50}," \"account_id\"",[34,248895,661],{"class":181},[34,248897,248898,248901,248903,248905,248907,248910,248912,248914,248916],{"class":36,"line":771},[34,248899,248900],{"class":181},"  value",[34,248902,683],{"class":580},[34,248904,14780],{"class":181},[34,248906,151],{"class":580},[34,248908,248909],{"class":181},"aws_caller_identity",[34,248911,151],{"class":580},[34,248913,52173],{"class":181},[34,248915,151],{"class":580},[34,248917,248918],{"class":181},"account_id\n",[34,248920,248921],{"class":36,"line":794},[34,248922,693],{"class":181},[388,248924,248693],{},{"title":30,"searchDepth":44,"depth":44,"links":248926},[248927],{"id":248711,"depth":44,"text":248706},"Data Sources in Terraform.",{},"/terraform/data-sources",{"title":248706,"description":248928},"terraform/data-sources",[247537,190836,190837,5438,9293],"sHkCRrM2bSjwY6xI3eodzNgA32DncmfiP8q0rab4cP4",{"id":248936,"title":248937,"body":248938,"date":402,"description":249063,"extension":404,"meta":249064,"navigation":61,"order":734,"path":249065,"seo":249066,"stem":249067,"subject":247537,"tags":249068,"__hash__":249069},"topics/terraform/dependencies.md","Dependencies",{"type":8,"value":248939,"toc":249060},[248940,248942,249058],[11,248941,248937],{"id":28966},[25,248943,248945],{"className":247523,"code":248944,"language":247525,"meta":30,"style":30},"# Implicit dependency (automatic)\nresource \"aws_eip\" \"example\" {\n  instance = aws_instance.web.id    # Terraform detects dependency\n}\n\n# Explicit dependency (manual)\nresource \"aws_instance\" \"web\" {\n  ami           = \"ami-0c55b159cbfafe1f0\"\n  instance_type = \"t2.micro\"\n  \n  depends_on = [\n    aws_iam_role_policy.example     # Force dependency order\n  ]\n}\n",[20,248946,248947,248952,248963,248984,248988,248992,248997,249008,249016,249024,249028,249037,249050,249054],{"__ignoreMap":30},[34,248948,248949],{"class":36,"line":37},[34,248950,248951],{"class":40},"# Implicit dependency (automatic)\n",[34,248953,248954,248956,248959,248961],{"class":36,"line":44},[34,248955,247707],{"class":47},[34,248957,248958],{"class":50}," \"aws_eip\"",[34,248960,248457],{"class":50},[34,248962,661],{"class":181},[34,248964,248965,248968,248970,248973,248975,248977,248979,248981],{"class":36,"line":58},[34,248966,248967],{"class":181},"  instance",[34,248969,683],{"class":580},[34,248971,248972],{"class":181}," aws_instance",[34,248974,151],{"class":580},[34,248976,38615],{"class":181},[34,248978,151],{"class":580},[34,248980,248846],{"class":181},[34,248982,248983],{"class":40},"# Terraform detects dependency\n",[34,248985,248986],{"class":36,"line":65},[34,248987,693],{"class":181},[34,248989,248990],{"class":36,"line":71},[34,248991,62],{"emptyLinePlaceholder":61},[34,248993,248994],{"class":36,"line":77},[34,248995,248996],{"class":40},"# Explicit dependency (manual)\n",[34,248998,248999,249001,249003,249006],{"class":36,"line":82},[34,249000,247707],{"class":47},[34,249002,247710],{"class":50},[34,249004,249005],{"class":50}," \"web\"",[34,249007,661],{"class":181},[34,249009,249010,249012,249014],{"class":36,"line":88},[34,249011,248338],{"class":181},[34,249013,248341],{"class":580},[34,249015,248344],{"class":54},[34,249017,249018,249020,249022],{"class":36,"line":242},[34,249019,248349],{"class":181},[34,249021,683],{"class":580},[34,249023,248354],{"class":54},[34,249025,249026],{"class":36,"line":250},[34,249027,827],{"class":181},[34,249029,249030,249033,249035],{"class":36,"line":263},[34,249031,249032],{"class":181},"  depends_on",[34,249034,683],{"class":580},[34,249036,3304],{"class":181},[34,249038,249039,249042,249044,249047],{"class":36,"line":275},[34,249040,249041],{"class":181},"    aws_iam_role_policy",[34,249043,151],{"class":580},[34,249045,249046],{"class":181},"example     ",[34,249048,249049],{"class":40},"# Force dependency order\n",[34,249051,249052],{"class":36,"line":700},[34,249053,85237],{"class":181},[34,249055,249056],{"class":36,"line":706},[34,249057,693],{"class":181},[388,249059,248693],{},{"title":30,"searchDepth":44,"depth":44,"links":249061},[249062],{"id":28966,"depth":44,"text":248937},"Dependencies in Terraform.",{},"/terraform/dependencies",{"title":248937,"description":249063},"terraform/dependencies",[247537,190836,190837,5438,9293],"vVBn8JbjmfnBiIe_kaZVohG7ZBax2oMD7g5NJ2PESE0",{"id":249071,"title":10991,"body":249072,"date":402,"description":249605,"extension":404,"meta":249606,"navigation":61,"order":706,"path":249607,"seo":249608,"stem":249609,"subject":247537,"tags":249610,"__hash__":249611},"topics/terraform/functions.md",{"type":8,"value":249073,"toc":249602},[249074,249076,249599],[11,249075,10991],{"id":10996},[25,249077,249079],{"className":247523,"code":249078,"language":247525,"meta":30,"style":30},"# Common built-in functions\nlocals {\n  # String functions\n  upper_name    = upper(\"hello\")                    # \"HELLO\"\n  lower_name    = lower(\"WORLD\")                    # \"world\"\n  title_name    = title(\"hello world\")              # \"Hello World\"\n  trimmed       = trimspace(\"  hello  \")            # \"hello\"\n  replaced      = replace(\"hello\", \"l\", \"w\")        # \"hewwo\"\n  \n  # Collection functions\n  list_length   = length([\"a\", \"b\", \"c\"])           # 3\n  joined        = join(\", \", [\"a\", \"b\", \"c\"])       # \"a, b, c\"\n  sorted        = sort([\"c\", \"a\", \"b\"])             # [\"a\", \"b\", \"c\"]\n  distinct      = distinct([1, 2, 2, 3])            # [1, 2, 3]\n  merged        = merge({a = 1}, {b = 2})           # {a = 1, b = 2}\n  \n  # Numeric functions\n  max_value     = max(5, 12, 9)                     # 12\n  min_value     = min(5, 12, 9)                     # 5\n  \n  # Type conversion\n  to_string     = tostring(42)                      # \"42\"\n  to_number     = tonumber(\"42\")                    # 42\n  to_list       = tolist([\"a\", \"b\"])                # List type\n  to_set        = toset([\"a\", \"b\", \"a\"])            # Set (unique values)\n  \n  # File functions\n  file_content  = file(\"${path.module}/config.txt\") # Read file\n  template_file = templatefile(\"user-data.sh\", {    # Template with vars\n    hostname = \"web-server\"\n  })\n}\n",[20,249080,249081,249086,249093,249098,249118,249138,249156,249176,249203,249207,249212,249240,249272,249300,249331,249360,249364,249369,249396,249422,249426,249431,249451,249469,249493,249519,249523,249528,249560,249581,249591,249595],{"__ignoreMap":30},[34,249082,249083],{"class":36,"line":37},[34,249084,249085],{"class":40},"# Common built-in functions\n",[34,249087,249088,249091],{"class":36,"line":44},[34,249089,249090],{"class":47},"locals",[34,249092,661],{"class":181},[34,249094,249095],{"class":36,"line":58},[34,249096,249097],{"class":40},"  # String functions\n",[34,249099,249100,249103,249105,249108,249110,249112,249115],{"class":36,"line":65},[34,249101,249102],{"class":181},"  upper_name",[34,249104,108502],{"class":580},[34,249106,249107],{"class":50}," upper",[34,249109,1607],{"class":181},[34,249111,17360],{"class":54},[34,249113,249114],{"class":181},")                    ",[34,249116,249117],{"class":40},"# \"HELLO\"\n",[34,249119,249120,249123,249125,249128,249130,249133,249135],{"class":36,"line":71},[34,249121,249122],{"class":181},"  lower_name",[34,249124,108502],{"class":580},[34,249126,249127],{"class":50}," lower",[34,249129,1607],{"class":181},[34,249131,249132],{"class":54},"\"WORLD\"",[34,249134,249114],{"class":181},[34,249136,249137],{"class":40},"# \"world\"\n",[34,249139,249140,249143,249145,249147,249149,249151,249153],{"class":36,"line":77},[34,249141,249142],{"class":181},"  title_name",[34,249144,108502],{"class":580},[34,249146,13985],{"class":50},[34,249148,1607],{"class":181},[34,249150,215758],{"class":54},[34,249152,152252],{"class":181},[34,249154,249155],{"class":40},"# \"Hello World\"\n",[34,249157,249158,249161,249164,249167,249169,249171,249173],{"class":36,"line":82},[34,249159,249160],{"class":181},"  trimmed",[34,249162,249163],{"class":580},"       =",[34,249165,249166],{"class":50}," trimspace",[34,249168,1607],{"class":181},[34,249170,104320],{"class":54},[34,249172,210890],{"class":181},[34,249174,249175],{"class":40},"# \"hello\"\n",[34,249177,249178,249181,249183,249186,249188,249190,249192,249194,249196,249198,249200],{"class":36,"line":88},[34,249179,249180],{"class":181},"  replaced",[34,249182,248753],{"class":580},[34,249184,249185],{"class":50}," replace",[34,249187,1607],{"class":181},[34,249189,17360],{"class":54},[34,249191,1798],{"class":181},[34,249193,124337],{"class":54},[34,249195,1798],{"class":181},[34,249197,21464],{"class":54},[34,249199,103864],{"class":181},[34,249201,249202],{"class":40},"# \"hewwo\"\n",[34,249204,249205],{"class":36,"line":242},[34,249206,827],{"class":181},[34,249208,249209],{"class":36,"line":250},[34,249210,249211],{"class":40},"  # Collection functions\n",[34,249213,249214,249217,249219,249222,249224,249226,249228,249230,249232,249234,249237],{"class":36,"line":263},[34,249215,249216],{"class":181},"  list_length",[34,249218,188661],{"class":580},[34,249220,249221],{"class":50}," length",[34,249223,3593],{"class":181},[34,249225,104277],{"class":54},[34,249227,1798],{"class":181},[34,249229,104282],{"class":54},[34,249231,1798],{"class":181},[34,249233,121636],{"class":54},[34,249235,249236],{"class":181},"])           ",[34,249238,249239],{"class":40},"# 3\n",[34,249241,249242,249245,249247,249250,249252,249254,249256,249258,249260,249262,249264,249266,249269],{"class":36,"line":275},[34,249243,249244],{"class":181},"  joined",[34,249246,247592],{"class":580},[34,249248,249249],{"class":50}," join",[34,249251,1607],{"class":181},[34,249253,195061],{"class":54},[34,249255,66646],{"class":181},[34,249257,104277],{"class":54},[34,249259,1798],{"class":181},[34,249261,104282],{"class":54},[34,249263,1798],{"class":181},[34,249265,121636],{"class":54},[34,249267,249268],{"class":181},"])       ",[34,249270,249271],{"class":40},"# \"a, b, c\"\n",[34,249273,249274,249277,249279,249282,249284,249286,249288,249290,249292,249294,249297],{"class":36,"line":700},[34,249275,249276],{"class":181},"  sorted",[34,249278,247592],{"class":580},[34,249280,249281],{"class":50}," sort",[34,249283,3593],{"class":181},[34,249285,121636],{"class":54},[34,249287,1798],{"class":181},[34,249289,104277],{"class":54},[34,249291,1798],{"class":181},[34,249293,104282],{"class":54},[34,249295,249296],{"class":181},"])             ",[34,249298,249299],{"class":40},"# [\"a\", \"b\", \"c\"]\n",[34,249301,249302,249305,249307,249310,249312,249314,249316,249318,249320,249322,249324,249326,249328],{"class":36,"line":706},[34,249303,249304],{"class":181},"  distinct",[34,249306,248753],{"class":580},[34,249308,249309],{"class":50}," distinct",[34,249311,3593],{"class":181},[34,249313,8318],{"class":50},[34,249315,1798],{"class":181},[34,249317,8324],{"class":50},[34,249319,1798],{"class":181},[34,249321,8324],{"class":50},[34,249323,1798],{"class":181},[34,249325,3162],{"class":50},[34,249327,144266],{"class":181},[34,249329,249330],{"class":40},"# [1, 2, 3]\n",[34,249332,249333,249336,249338,249340,249343,249345,249347,249350,249352,249354,249357],{"class":36,"line":715},[34,249334,249335],{"class":181},"  merged",[34,249337,247592],{"class":580},[34,249339,96797],{"class":50},[34,249341,249342],{"class":181},"({a ",[34,249344,1301],{"class":580},[34,249346,3567],{"class":50},[34,249348,249349],{"class":181},"}, {b ",[34,249351,1301],{"class":580},[34,249353,4292],{"class":50},[34,249355,249356],{"class":181},"})           ",[34,249358,249359],{"class":40},"# {a = 1, b = 2}\n",[34,249361,249362],{"class":36,"line":725},[34,249363,827],{"class":181},[34,249365,249366],{"class":36,"line":734},[34,249367,249368],{"class":40},"  # Numeric functions\n",[34,249370,249371,249374,249376,249378,249380,249382,249384,249386,249388,249390,249393],{"class":36,"line":742},[34,249372,249373],{"class":181},"  max_value",[34,249375,248487],{"class":580},[34,249377,116249],{"class":50},[34,249379,1607],{"class":181},[34,249381,2778],{"class":50},[34,249383,1798],{"class":181},[34,249385,62739],{"class":50},[34,249387,1798],{"class":181},[34,249389,18038],{"class":50},[34,249391,249392],{"class":181},")                     ",[34,249394,249395],{"class":40},"# 12\n",[34,249397,249398,249401,249403,249405,249407,249409,249411,249413,249415,249417,249419],{"class":36,"line":748},[34,249399,249400],{"class":181},"  min_value",[34,249402,248487],{"class":580},[34,249404,116241],{"class":50},[34,249406,1607],{"class":181},[34,249408,2778],{"class":50},[34,249410,1798],{"class":181},[34,249412,62739],{"class":50},[34,249414,1798],{"class":181},[34,249416,18038],{"class":50},[34,249418,249392],{"class":181},[34,249420,249421],{"class":40},"# 5\n",[34,249423,249424],{"class":36,"line":754},[34,249425,827],{"class":181},[34,249427,249428],{"class":36,"line":759},[34,249429,249430],{"class":40},"  # Type conversion\n",[34,249432,249433,249436,249438,249441,249443,249445,249448],{"class":36,"line":771},[34,249434,249435],{"class":181},"  to_string",[34,249437,248487],{"class":580},[34,249439,249440],{"class":50}," tostring",[34,249442,1607],{"class":181},[34,249444,8257],{"class":50},[34,249446,249447],{"class":181},")                      ",[34,249449,249450],{"class":40},"# \"42\"\n",[34,249452,249453,249456,249458,249461,249463,249465,249467],{"class":36,"line":794},[34,249454,249455],{"class":181},"  to_number",[34,249457,248487],{"class":580},[34,249459,249460],{"class":50}," tonumber",[34,249462,1607],{"class":181},[34,249464,24561],{"class":54},[34,249466,249114],{"class":181},[34,249468,195422],{"class":40},[34,249470,249471,249474,249476,249479,249481,249483,249485,249487,249490],{"class":36,"line":824},[34,249472,249473],{"class":181},"  to_list",[34,249475,249163],{"class":580},[34,249477,249478],{"class":50}," tolist",[34,249480,3593],{"class":181},[34,249482,104277],{"class":54},[34,249484,1798],{"class":181},[34,249486,104282],{"class":54},[34,249488,249489],{"class":181},"])                ",[34,249491,249492],{"class":40},"# List type\n",[34,249494,249495,249498,249500,249502,249504,249506,249508,249510,249512,249514,249516],{"class":36,"line":830},[34,249496,249497],{"class":181},"  to_set",[34,249499,247592],{"class":580},[34,249501,248469],{"class":50},[34,249503,3593],{"class":181},[34,249505,104277],{"class":54},[34,249507,1798],{"class":181},[34,249509,104282],{"class":54},[34,249511,1798],{"class":181},[34,249513,104277],{"class":54},[34,249515,144266],{"class":181},[34,249517,249518],{"class":40},"# Set (unique values)\n",[34,249520,249521],{"class":36,"line":839},[34,249522,827],{"class":181},[34,249524,249525],{"class":36,"line":854},[34,249526,249527],{"class":40},"  # File functions\n",[34,249529,249530,249533,249536,249538,249540,249542,249544,249546,249548,249550,249552,249555,249557],{"class":36,"line":860},[34,249531,249532],{"class":181},"  file_content",[34,249534,249535],{"class":580},"  =",[34,249537,13190],{"class":50},[34,249539,1607],{"class":181},[34,249541,10389],{"class":54},[34,249543,248379],{"class":580},[34,249545,20404],{"class":181},[34,249547,151],{"class":580},[34,249549,46312],{"class":181},[34,249551,34378],{"class":580},[34,249553,249554],{"class":54},"/config.txt\"",[34,249556,4817],{"class":181},[34,249558,249559],{"class":40},"# Read file\n",[34,249561,249562,249565,249567,249570,249572,249575,249578],{"class":36,"line":865},[34,249563,249564],{"class":181},"  template_file",[34,249566,683],{"class":580},[34,249568,249569],{"class":50}," templatefile",[34,249571,1607],{"class":181},[34,249573,249574],{"class":54},"\"user-data.sh\"",[34,249576,249577],{"class":181},", {    ",[34,249579,249580],{"class":40},"# Template with vars\n",[34,249582,249583,249586,249588],{"class":36,"line":870},[34,249584,249585],{"class":181},"    hostname ",[34,249587,1301],{"class":580},[34,249589,249590],{"class":54}," \"web-server\"\n",[34,249592,249593],{"class":36,"line":876},[34,249594,62121],{"class":181},[34,249596,249597],{"class":36,"line":885},[34,249598,693],{"class":181},[388,249600,249601],{},"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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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);}",{"title":30,"searchDepth":44,"depth":44,"links":249603},[249604],{"id":10996,"depth":44,"text":10991},"Functions in Terraform.",{},"/terraform/functions",{"title":10991,"description":249605},"terraform/functions",[247537,190836,190837,5438,9293],"7BbeTlLbR832GGZ4ZQFCnhuXDb16fO_UvDfBuC0gBKw",{"id":249613,"title":249614,"body":249615,"date":402,"description":249727,"extension":404,"meta":249728,"navigation":61,"order":715,"path":249729,"seo":249730,"stem":249731,"subject":247537,"tags":249732,"__hash__":249733},"topics/terraform/lifecycle-rules.md","Lifecycle Rules",{"type":8,"value":249616,"toc":249724},[249617,249620,249721],[11,249618,249614],{"id":249619},"lifecycle-rules",[25,249621,249623],{"className":247523,"code":249622,"language":247525,"meta":30,"style":30},"resource \"aws_instance\" \"example\" {\n  ami           = \"ami-0c55b159cbfafe1f0\"\n  instance_type = \"t2.micro\"\n  \n  lifecycle {\n    create_before_destroy = true    # Create new before destroying old\n    prevent_destroy       = true    # Prevent accidental deletion\n    ignore_changes        = [        # Ignore changes to these attributes\n      tags,\n      user_data\n    ]\n  }\n}\n",[20,249624,249625,249635,249643,249651,249655,249662,249674,249686,249699,249704,249709,249713,249717],{"__ignoreMap":30},[34,249626,249627,249629,249631,249633],{"class":36,"line":37},[34,249628,247707],{"class":47},[34,249630,247710],{"class":50},[34,249632,248457],{"class":50},[34,249634,661],{"class":181},[34,249636,249637,249639,249641],{"class":36,"line":44},[34,249638,248338],{"class":181},[34,249640,248341],{"class":580},[34,249642,248344],{"class":54},[34,249644,249645,249647,249649],{"class":36,"line":58},[34,249646,248349],{"class":181},[34,249648,683],{"class":580},[34,249650,248354],{"class":54},[34,249652,249653],{"class":36,"line":65},[34,249654,827],{"class":181},[34,249656,249657,249660],{"class":36,"line":71},[34,249658,249659],{"class":47},"  lifecycle",[34,249661,661],{"class":181},[34,249663,249664,249667,249669,249671],{"class":36,"line":77},[34,249665,249666],{"class":181},"    create_before_destroy",[34,249668,683],{"class":580},[34,249670,32945],{"class":50},[34,249672,249673],{"class":40},"    # Create new before destroying old\n",[34,249675,249676,249679,249681,249683],{"class":36,"line":82},[34,249677,249678],{"class":181},"    prevent_destroy",[34,249680,249163],{"class":580},[34,249682,32945],{"class":50},[34,249684,249685],{"class":40},"    # Prevent accidental deletion\n",[34,249687,249688,249691,249693,249696],{"class":36,"line":88},[34,249689,249690],{"class":181},"    ignore_changes",[34,249692,247592],{"class":580},[34,249694,249695],{"class":181}," [        ",[34,249697,249698],{"class":40},"# Ignore changes to these attributes\n",[34,249700,249701],{"class":36,"line":242},[34,249702,249703],{"class":181},"      tags,\n",[34,249705,249706],{"class":36,"line":250},[34,249707,249708],{"class":181},"      user_data\n",[34,249710,249711],{"class":36,"line":263},[34,249712,128040],{"class":181},[34,249714,249715],{"class":36,"line":275},[34,249716,857],{"class":181},[34,249718,249719],{"class":36,"line":700},[34,249720,693],{"class":181},[388,249722,249723],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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":30,"searchDepth":44,"depth":44,"links":249725},[249726],{"id":249619,"depth":44,"text":249614},"Lifecycle Rules in Terraform.",{},"/terraform/lifecycle-rules",{"title":249614,"description":249727},"terraform/lifecycle-rules",[247537,190836,190837,5438,9293],"Lkdq1ZBYZyw7WzGFkseLjq2D8KAoC-TSbQTdPr3kn6k",{"id":249735,"title":249736,"body":249737,"date":402,"description":249966,"extension":404,"meta":249967,"navigation":61,"order":242,"path":249968,"seo":249969,"stem":249970,"subject":247537,"tags":249971,"__hash__":249972},"topics/terraform/local-values.md","Local Values",{"type":8,"value":249738,"toc":249963},[249739,249742,249961],[11,249740,249736],{"id":249741},"local-values",[25,249743,249745],{"className":247523,"code":249744,"language":247525,"meta":30,"style":30},"# Define local computed values\nlocals {\n  environment = \"production\"\n  common_tags = {\n    Environment = local.environment\n    ManagedBy   = \"Terraform\"\n    Project     = var.project_name\n  }\n  \n  # Computed values\n  full_name = \"${var.prefix}-${var.name}-${var.suffix}\"\n}\n\n# Use locals in resources\nresource \"aws_instance\" \"example\" {\n  ami           = \"ami-0c55b159cbfafe1f0\"\n  instance_type = \"t2.micro\"\n  \n  tags = merge(\n    local.common_tags,                  # Spread common tags\n    {\n      Name = local.full_name            # Add specific tag\n    }\n  )\n}\n",[20,249746,249747,249752,249758,249768,249777,249787,249797,249807,249811,249815,249820,249867,249871,249875,249880,249890,249898,249906,249910,249920,249932,249936,249949,249953,249957],{"__ignoreMap":30},[34,249748,249749],{"class":36,"line":37},[34,249750,249751],{"class":40},"# Define local computed values\n",[34,249753,249754,249756],{"class":36,"line":44},[34,249755,249090],{"class":47},[34,249757,661],{"class":181},[34,249759,249760,249763,249765],{"class":36,"line":58},[34,249761,249762],{"class":181},"  environment",[34,249764,683],{"class":580},[34,249766,249767],{"class":54}," \"production\"\n",[34,249769,249770,249773,249775],{"class":36,"line":65},[34,249771,249772],{"class":181},"  common_tags",[34,249774,683],{"class":580},[34,249776,661],{"class":181},[34,249778,249779,249782,249784],{"class":36,"line":71},[34,249780,249781],{"class":181},"    Environment ",[34,249783,1301],{"class":580},[34,249785,249786],{"class":181}," local.environment\n",[34,249788,249789,249792,249794],{"class":36,"line":77},[34,249790,249791],{"class":181},"    ManagedBy   ",[34,249793,1301],{"class":580},[34,249795,249796],{"class":54}," \"Terraform\"\n",[34,249798,249799,249802,249804],{"class":36,"line":82},[34,249800,249801],{"class":181},"    Project     ",[34,249803,1301],{"class":580},[34,249805,249806],{"class":181}," var.project_name\n",[34,249808,249809],{"class":36,"line":88},[34,249810,857],{"class":181},[34,249812,249813],{"class":36,"line":242},[34,249814,827],{"class":181},[34,249816,249817],{"class":36,"line":250},[34,249818,249819],{"class":40},"  # Computed values\n",[34,249821,249822,249825,249827,249829,249831,249833,249835,249838,249840,249842,249844,249846,249848,249850,249852,249854,249856,249858,249860,249863,249865],{"class":36,"line":263},[34,249823,249824],{"class":181},"  full_name",[34,249826,683],{"class":580},[34,249828,10326],{"class":54},[34,249830,248379],{"class":580},[34,249832,34404],{"class":181},[34,249834,151],{"class":580},[34,249836,249837],{"class":181},"prefix",[34,249839,34378],{"class":580},[34,249841,22062],{"class":54},[34,249843,248379],{"class":580},[34,249845,34404],{"class":181},[34,249847,151],{"class":580},[34,249849,178],{"class":181},[34,249851,34378],{"class":580},[34,249853,22062],{"class":54},[34,249855,248379],{"class":580},[34,249857,34404],{"class":181},[34,249859,151],{"class":580},[34,249861,249862],{"class":181},"suffix",[34,249864,34378],{"class":580},[34,249866,11320],{"class":54},[34,249868,249869],{"class":36,"line":275},[34,249870,693],{"class":181},[34,249872,249873],{"class":36,"line":700},[34,249874,62],{"emptyLinePlaceholder":61},[34,249876,249877],{"class":36,"line":706},[34,249878,249879],{"class":40},"# Use locals in resources\n",[34,249881,249882,249884,249886,249888],{"class":36,"line":715},[34,249883,247707],{"class":47},[34,249885,247710],{"class":50},[34,249887,248457],{"class":50},[34,249889,661],{"class":181},[34,249891,249892,249894,249896],{"class":36,"line":725},[34,249893,248338],{"class":181},[34,249895,248341],{"class":580},[34,249897,248344],{"class":54},[34,249899,249900,249902,249904],{"class":36,"line":734},[34,249901,248349],{"class":181},[34,249903,683],{"class":580},[34,249905,248354],{"class":54},[34,249907,249908],{"class":36,"line":742},[34,249909,827],{"class":181},[34,249911,249912,249914,249916,249918],{"class":36,"line":748},[34,249913,248363],{"class":181},[34,249915,683],{"class":580},[34,249917,96797],{"class":50},[34,249919,1882],{"class":181},[34,249921,249922,249924,249926,249929],{"class":36,"line":754},[34,249923,141457],{"class":181},[34,249925,151],{"class":580},[34,249927,249928],{"class":181},"common_tags,                  ",[34,249930,249931],{"class":40},"# Spread common tags\n",[34,249933,249934],{"class":36,"line":759},[34,249935,25561],{"class":181},[34,249937,249938,249941,249943,249946],{"class":36,"line":771},[34,249939,249940],{"class":181},"      Name ",[34,249942,1301],{"class":580},[34,249944,249945],{"class":181}," local.full_name            ",[34,249947,249948],{"class":40},"# Add specific tag\n",[34,249950,249951],{"class":36,"line":794},[34,249952,3229],{"class":181},[34,249954,249955],{"class":36,"line":824},[34,249956,17056],{"class":181},[34,249958,249959],{"class":36,"line":830},[34,249960,693],{"class":181},[388,249962,48492],{},{"title":30,"searchDepth":44,"depth":44,"links":249964},[249965],{"id":249741,"depth":44,"text":249736},"Local Values in Terraform.",{},"/terraform/local-values",{"title":249736,"description":249966},"terraform/local-values",[247537,190836,190837,5438,9293],"s3YUD6X_YjB_hAHpsGQZhmS9a58liuf0-JvaClafeg0",{"id":249974,"title":88402,"body":249975,"date":402,"description":250228,"extension":404,"meta":250229,"navigation":61,"order":82,"path":250230,"seo":250231,"stem":250232,"subject":247537,"tags":250233,"__hash__":250234},"topics/terraform/modules.md",{"type":8,"value":249976,"toc":250225},[249977,249979,250223],[11,249978,88402],{"id":88401},[25,249980,249982],{"className":247523,"code":249981,"language":247525,"meta":30,"style":30},"# Call a reusable module\nmodule \"vpc\" {\n  source  = \"terraform-aws-modules/vpc/aws\"  # Module source\n  version = \"5.0.0\"                          # Pin module version\n  \n  name = \"my-vpc\"\n  cidr = \"10.0.0.0/16\"\n  \n  azs             = [\"us-west-2a\", \"us-west-2b\"]\n  private_subnets = [\"10.0.1.0/24\", \"10.0.2.0/24\"]\n  public_subnets  = [\"10.0.101.0/24\", \"10.0.102.0/24\"]\n  \n  enable_nat_gateway = true\n  enable_vpn_gateway = false\n  \n  tags = {\n    Terraform   = \"true\"\n    Environment = \"dev\"\n  }\n}\n\n# Reference module outputs\nresource \"aws_instance\" \"app\" {\n  subnet_id = module.vpc.private_subnets[0]  # Use module output\n  # ... other configuration\n}\n",[20,249983,249984,249989,249998,250010,250022,250026,250035,250045,250049,250069,250088,250107,250111,250120,250130,250134,250142,250152,250161,250165,250169,250173,250178,250188,250214,250219],{"__ignoreMap":30},[34,249985,249986],{"class":36,"line":37},[34,249987,249988],{"class":40},"# Call a reusable module\n",[34,249990,249991,249993,249996],{"class":36,"line":44},[34,249992,46312],{"class":47},[34,249994,249995],{"class":50}," \"vpc\"",[34,249997,661],{"class":181},[34,249999,250000,250002,250004,250007],{"class":36,"line":58},[34,250001,7387],{"class":181},[34,250003,249535],{"class":580},[34,250005,250006],{"class":54}," \"terraform-aws-modules/vpc/aws\"",[34,250008,250009],{"class":40},"  # Module source\n",[34,250011,250012,250014,250016,250019],{"class":36,"line":65},[34,250013,168116],{"class":181},[34,250015,683],{"class":580},[34,250017,250018],{"class":54}," \"5.0.0\"",[34,250020,250021],{"class":40},"                          # Pin module version\n",[34,250023,250024],{"class":36,"line":71},[34,250025,827],{"class":181},[34,250027,250028,250030,250032],{"class":36,"line":77},[34,250029,7350],{"class":181},[34,250031,683],{"class":580},[34,250033,250034],{"class":54}," \"my-vpc\"\n",[34,250036,250037,250040,250042],{"class":36,"line":82},[34,250038,250039],{"class":181},"  cidr",[34,250041,683],{"class":580},[34,250043,250044],{"class":54}," \"10.0.0.0/16\"\n",[34,250046,250047],{"class":36,"line":88},[34,250048,827],{"class":181},[34,250050,250051,250054,250057,250059,250062,250064,250067],{"class":36,"line":242},[34,250052,250053],{"class":181},"  azs",[34,250055,250056],{"class":580},"             =",[34,250058,8315],{"class":181},[34,250060,250061],{"class":54},"\"us-west-2a\"",[34,250063,1798],{"class":181},[34,250065,250066],{"class":54},"\"us-west-2b\"",[34,250068,924],{"class":181},[34,250070,250071,250074,250076,250078,250081,250083,250086],{"class":36,"line":250},[34,250072,250073],{"class":181},"  private_subnets",[34,250075,683],{"class":580},[34,250077,8315],{"class":181},[34,250079,250080],{"class":54},"\"10.0.1.0/24\"",[34,250082,1798],{"class":181},[34,250084,250085],{"class":54},"\"10.0.2.0/24\"",[34,250087,924],{"class":181},[34,250089,250090,250093,250095,250097,250100,250102,250105],{"class":36,"line":263},[34,250091,250092],{"class":181},"  public_subnets",[34,250094,249535],{"class":580},[34,250096,8315],{"class":181},[34,250098,250099],{"class":54},"\"10.0.101.0/24\"",[34,250101,1798],{"class":181},[34,250103,250104],{"class":54},"\"10.0.102.0/24\"",[34,250106,924],{"class":181},[34,250108,250109],{"class":36,"line":275},[34,250110,827],{"class":181},[34,250112,250113,250116,250118],{"class":36,"line":700},[34,250114,250115],{"class":181},"  enable_nat_gateway",[34,250117,683],{"class":580},[34,250119,104956],{"class":50},[34,250121,250122,250125,250127],{"class":36,"line":706},[34,250123,250124],{"class":181},"  enable_vpn_gateway",[34,250126,683],{"class":580},[34,250128,250129],{"class":50}," false\n",[34,250131,250132],{"class":36,"line":715},[34,250133,827],{"class":181},[34,250135,250136,250138,250140],{"class":36,"line":725},[34,250137,248363],{"class":181},[34,250139,683],{"class":580},[34,250141,661],{"class":181},[34,250143,250144,250147,250149],{"class":36,"line":734},[34,250145,250146],{"class":181},"    Terraform   ",[34,250148,1301],{"class":580},[34,250150,250151],{"class":54}," \"true\"\n",[34,250153,250154,250156,250158],{"class":36,"line":742},[34,250155,249781],{"class":181},[34,250157,1301],{"class":580},[34,250159,250160],{"class":54}," \"dev\"\n",[34,250162,250163],{"class":36,"line":748},[34,250164,857],{"class":181},[34,250166,250167],{"class":36,"line":754},[34,250168,693],{"class":181},[34,250170,250171],{"class":36,"line":759},[34,250172,62],{"emptyLinePlaceholder":61},[34,250174,250175],{"class":36,"line":771},[34,250176,250177],{"class":40},"# Reference module outputs\n",[34,250179,250180,250182,250184,250186],{"class":36,"line":794},[34,250181,247707],{"class":47},[34,250183,247710],{"class":50},[34,250185,247713],{"class":50},[34,250187,661],{"class":181},[34,250189,250190,250192,250194,250197,250199,250202,250204,250207,250209,250211],{"class":36,"line":824},[34,250191,247720],{"class":181},[34,250193,683],{"class":580},[34,250195,250196],{"class":181}," module",[34,250198,151],{"class":580},[34,250200,250201],{"class":181},"vpc",[34,250203,151],{"class":580},[34,250205,250206],{"class":181},"private_subnets[",[34,250208,2773],{"class":50},[34,250210,192334],{"class":181},[34,250212,250213],{"class":40},"# Use module output\n",[34,250215,250216],{"class":36,"line":830},[34,250217,250218],{"class":40},"  # ... other configuration\n",[34,250220,250221],{"class":36,"line":839},[34,250222,693],{"class":181},[388,250224,248693],{},{"title":30,"searchDepth":44,"depth":44,"links":250226},[250227],{"id":88401,"depth":44,"text":88402},"Modules in Terraform.",{},"/terraform/modules",{"title":88402,"description":250228},"terraform/modules",[247537,190836,190837,5438,9293],"UC0GQghqOHfTMypjFKx7Gm6a7dm32JQ1nUgYKP78aPY",{"id":250236,"title":190741,"body":250237,"date":402,"description":250397,"extension":404,"meta":250398,"navigation":61,"order":71,"path":250399,"seo":250400,"stem":250401,"subject":247537,"tags":250402,"__hash__":250403},"topics/terraform/outputs.md",{"type":8,"value":250238,"toc":250394},[250239,250241,250392],[11,250240,190741],{"id":190740},[25,250242,250244],{"className":247523,"code":250243,"language":247525,"meta":30,"style":30},"# Output values (displayed after apply)\noutput \"instance_id\" {\n  description = \"ID of the EC2 instance\"\n  value       = aws_instance.web.id     # Export resource attribute\n}\n\noutput \"instance_public_ip\" {\n  description = \"Public IP address\"\n  value       = aws_instance.web.public_ip\n}\n\noutput \"bucket_arn\" {\n  description = \"ARN of the S3 bucket\"\n  value       = aws_s3_bucket.example.arn\n  sensitive   = false                   # Mark if output contains secrets\n}\n",[20,250245,250246,250251,250260,250269,250289,250293,250297,250306,250315,250332,250336,250340,250349,250358,250376,250388],{"__ignoreMap":30},[34,250247,250248],{"class":36,"line":37},[34,250249,250250],{"class":40},"# Output values (displayed after apply)\n",[34,250252,250253,250255,250258],{"class":36,"line":44},[34,250254,80533],{"class":47},[34,250256,250257],{"class":50}," \"instance_id\"",[34,250259,661],{"class":181},[34,250261,250262,250264,250266],{"class":36,"line":58},[34,250263,128900],{"class":181},[34,250265,683],{"class":580},[34,250267,250268],{"class":54}," \"ID of the EC2 instance\"\n",[34,250270,250271,250273,250275,250277,250279,250281,250283,250286],{"class":36,"line":65},[34,250272,248900],{"class":181},[34,250274,249163],{"class":580},[34,250276,248972],{"class":181},[34,250278,151],{"class":580},[34,250280,38615],{"class":181},[34,250282,151],{"class":580},[34,250284,250285],{"class":181},"id     ",[34,250287,250288],{"class":40},"# Export resource attribute\n",[34,250290,250291],{"class":36,"line":71},[34,250292,693],{"class":181},[34,250294,250295],{"class":36,"line":77},[34,250296,62],{"emptyLinePlaceholder":61},[34,250298,250299,250301,250304],{"class":36,"line":82},[34,250300,80533],{"class":47},[34,250302,250303],{"class":50}," \"instance_public_ip\"",[34,250305,661],{"class":181},[34,250307,250308,250310,250312],{"class":36,"line":88},[34,250309,128900],{"class":181},[34,250311,683],{"class":580},[34,250313,250314],{"class":54}," \"Public IP address\"\n",[34,250316,250317,250319,250321,250323,250325,250327,250329],{"class":36,"line":242},[34,250318,248900],{"class":181},[34,250320,249163],{"class":580},[34,250322,248972],{"class":181},[34,250324,151],{"class":580},[34,250326,38615],{"class":181},[34,250328,151],{"class":580},[34,250330,250331],{"class":181},"public_ip\n",[34,250333,250334],{"class":36,"line":250},[34,250335,693],{"class":181},[34,250337,250338],{"class":36,"line":263},[34,250339,62],{"emptyLinePlaceholder":61},[34,250341,250342,250344,250347],{"class":36,"line":275},[34,250343,80533],{"class":47},[34,250345,250346],{"class":50}," \"bucket_arn\"",[34,250348,661],{"class":181},[34,250350,250351,250353,250355],{"class":36,"line":700},[34,250352,128900],{"class":181},[34,250354,683],{"class":580},[34,250356,250357],{"class":54}," \"ARN of the S3 bucket\"\n",[34,250359,250360,250362,250364,250367,250369,250371,250373],{"class":36,"line":706},[34,250361,248900],{"class":181},[34,250363,249163],{"class":580},[34,250365,250366],{"class":181}," aws_s3_bucket",[34,250368,151],{"class":580},[34,250370,13841],{"class":181},[34,250372,151],{"class":580},[34,250374,250375],{"class":181},"arn\n",[34,250377,250378,250381,250383,250385],{"class":36,"line":715},[34,250379,250380],{"class":181},"  sensitive",[34,250382,188661],{"class":580},[34,250384,68645],{"class":50},[34,250386,250387],{"class":40},"                   # Mark if output contains secrets\n",[34,250389,250390],{"class":36,"line":725},[34,250391,693],{"class":181},[388,250393,248693],{},{"title":30,"searchDepth":44,"depth":44,"links":250395},[250396],{"id":190740,"depth":44,"text":190741},"Outputs in Terraform.",{},"/terraform/outputs",{"title":190741,"description":250397},"terraform/outputs",[247537,190836,190837,5438,9293],"iOlyxjW0OVzJ8-dVZ9kHgaD2xNieM6IgsrJWrahpKfg",{"id":250405,"title":250406,"body":250407,"date":2633,"description":250485,"extension":404,"meta":250486,"navigation":61,"order":37,"path":250487,"seo":250488,"stem":250489,"subject":247537,"tags":250490,"__hash__":250491},"topics/terraform/overview.md","Terraform",{"type":8,"value":250408,"toc":250483},[250409],[309,250410,250411,250415,250420,250425,250429,250433,250437,250441,250445,250449,250453,250459,250465,250469,250473,250479],{},[312,250412,250413],{},[145,250414,27904],{"href":247878},[312,250416,250417],{},[145,250418,28203],{"href":250419},"/terraform/resources",[312,250421,250422],{},[145,250423,12166],{"href":250424},"/terraform/variables",[312,250426,250427],{},[145,250428,190741],{"href":250399},[312,250430,250431],{},[145,250432,248706],{"href":248930},[312,250434,250435],{},[145,250436,88402],{"href":250230},[312,250438,250439],{},[145,250440,248296],{"href":248699},[312,250442,250443],{},[145,250444,249736],{"href":249968},[312,250446,250447],{},[145,250448,247515],{"href":247755},[312,250450,250451],{},[145,250452,113747],{"href":248289},[312,250454,250455],{},[145,250456,250458],{"href":250457},"/terraform/variable-files","Variable Files",[312,250460,250461],{},[145,250462,250464],{"href":250463},"/terraform/string-interpolation","String Interpolation",[312,250466,250467],{},[145,250468,10991],{"href":249607},[312,250470,250471],{},[145,250472,249614],{"href":249729},[312,250474,250475],{},[145,250476,250478],{"href":250477},"/terraform/provisioners","Provisioners",[312,250480,250481],{},[145,250482,248937],{"href":249065},{"title":30,"searchDepth":44,"depth":44,"links":250484},[],"Infrastructure as Code syntax, configuration blocks, and common workflow commands.",{},"/terraform/overview",{"title":250406,"description":250485},"terraform/overview",[247537,190836,190837,5438,9293],"xaMQISF0yVj_v52XBqGbRU1UAms2i8y9_O2xHxephPc",{"id":250493,"title":250478,"body":250494,"date":402,"description":250735,"extension":404,"meta":250736,"navigation":61,"order":725,"path":250477,"seo":250737,"stem":250738,"subject":247537,"tags":250739,"__hash__":250740},"topics/terraform/provisioners.md",{"type":8,"value":250495,"toc":250732},[250496,250499,250730],[11,250497,250478],{"id":250498},"provisioners",[25,250500,250502],{"className":247523,"code":250501,"language":247525,"meta":30,"style":30},"resource \"aws_instance\" \"web\" {\n  ami           = \"ami-0c55b159cbfafe1f0\"\n  instance_type = \"t2.micro\"\n  \n  # Run command on remote resource\n  provisioner \"remote-exec\" {\n    inline = [\n      \"sudo apt-get update\",\n      \"sudo apt-get install -y nginx\"\n    ]\n    \n    connection {\n      type        = \"ssh\"\n      user        = \"ubuntu\"\n      private_key = file(\"~/.ssh/id_rsa\")\n      host        = self.public_ip\n    }\n  }\n  \n  # Run local command after creation\n  provisioner \"local-exec\" {\n    command = \"echo ${self.public_ip} >> ip_list.txt\"\n  }\n  \n  # Run on destruction\n  provisioner \"local-exec\" {\n    when    = destroy\n    command = \"echo 'Resource destroyed' >> log.txt\"\n  }\n}\n",[20,250503,250504,250514,250522,250530,250534,250539,250549,250558,250565,250570,250574,250578,250585,250595,250604,250620,250633,250637,250641,250645,250650,250659,250683,250687,250691,250696,250704,250713,250722,250726],{"__ignoreMap":30},[34,250505,250506,250508,250510,250512],{"class":36,"line":37},[34,250507,247707],{"class":47},[34,250509,247710],{"class":50},[34,250511,249005],{"class":50},[34,250513,661],{"class":181},[34,250515,250516,250518,250520],{"class":36,"line":44},[34,250517,248338],{"class":181},[34,250519,248341],{"class":580},[34,250521,248344],{"class":54},[34,250523,250524,250526,250528],{"class":36,"line":58},[34,250525,248349],{"class":181},[34,250527,683],{"class":580},[34,250529,248354],{"class":54},[34,250531,250532],{"class":36,"line":65},[34,250533,827],{"class":181},[34,250535,250536],{"class":36,"line":71},[34,250537,250538],{"class":40},"  # Run command on remote resource\n",[34,250540,250541,250544,250547],{"class":36,"line":77},[34,250542,250543],{"class":47},"  provisioner",[34,250545,250546],{"class":50}," \"remote-exec\"",[34,250548,661],{"class":181},[34,250550,250551,250554,250556],{"class":36,"line":82},[34,250552,250553],{"class":181},"    inline",[34,250555,683],{"class":580},[34,250557,3304],{"class":181},[34,250559,250560,250563],{"class":36,"line":88},[34,250561,250562],{"class":54},"      \"sudo apt-get update\"",[34,250564,624],{"class":181},[34,250566,250567],{"class":36,"line":242},[34,250568,250569],{"class":54},"      \"sudo apt-get install -y nginx\"\n",[34,250571,250572],{"class":36,"line":250},[34,250573,128040],{"class":181},[34,250575,250576],{"class":36,"line":263},[34,250577,3666],{"class":181},[34,250579,250580,250583],{"class":36,"line":275},[34,250581,250582],{"class":47},"    connection",[34,250584,661],{"class":181},[34,250586,250587,250590,250592],{"class":36,"line":700},[34,250588,250589],{"class":181},"      type",[34,250591,247592],{"class":580},[34,250593,250594],{"class":54}," \"ssh\"\n",[34,250596,250597,250599,250601],{"class":36,"line":706},[34,250598,129119],{"class":181},[34,250600,247592],{"class":580},[34,250602,250603],{"class":54}," \"ubuntu\"\n",[34,250605,250606,250609,250611,250613,250615,250618],{"class":36,"line":715},[34,250607,250608],{"class":181},"      private_key",[34,250610,683],{"class":580},[34,250612,13190],{"class":50},[34,250614,1607],{"class":181},[34,250616,250617],{"class":54},"\"~/.ssh/id_rsa\"",[34,250619,3372],{"class":181},[34,250621,250622,250625,250627,250629,250631],{"class":36,"line":725},[34,250623,250624],{"class":181},"      host",[34,250626,247592],{"class":580},[34,250628,74044],{"class":181},[34,250630,151],{"class":580},[34,250632,250331],{"class":181},[34,250634,250635],{"class":36,"line":734},[34,250636,3229],{"class":181},[34,250638,250639],{"class":36,"line":742},[34,250640,857],{"class":181},[34,250642,250643],{"class":36,"line":748},[34,250644,827],{"class":181},[34,250646,250647],{"class":36,"line":754},[34,250648,250649],{"class":40},"  # Run local command after creation\n",[34,250651,250652,250654,250657],{"class":36,"line":759},[34,250653,250543],{"class":47},[34,250655,250656],{"class":50}," \"local-exec\"",[34,250658,661],{"class":181},[34,250660,250661,250664,250666,250669,250671,250673,250675,250678,250680],{"class":36,"line":771},[34,250662,250663],{"class":181},"    command",[34,250665,683],{"class":580},[34,250667,250668],{"class":54}," \"echo ",[34,250670,248379],{"class":580},[34,250672,210943],{"class":181},[34,250674,151],{"class":580},[34,250676,250677],{"class":181},"public_ip",[34,250679,34378],{"class":580},[34,250681,250682],{"class":54}," >> ip_list.txt\"\n",[34,250684,250685],{"class":36,"line":794},[34,250686,857],{"class":181},[34,250688,250689],{"class":36,"line":824},[34,250690,827],{"class":181},[34,250692,250693],{"class":36,"line":830},[34,250694,250695],{"class":40},"  # Run on destruction\n",[34,250697,250698,250700,250702],{"class":36,"line":839},[34,250699,250543],{"class":47},[34,250701,250656],{"class":50},[34,250703,661],{"class":181},[34,250705,250706,250709,250711],{"class":36,"line":854},[34,250707,250708],{"class":181},"    when",[34,250710,108502],{"class":580},[34,250712,190560],{"class":181},[34,250714,250715,250717,250719],{"class":36,"line":860},[34,250716,250663],{"class":181},[34,250718,683],{"class":580},[34,250720,250721],{"class":54}," \"echo 'Resource destroyed' >> log.txt\"\n",[34,250723,250724],{"class":36,"line":865},[34,250725,857],{"class":181},[34,250727,250728],{"class":36,"line":870},[34,250729,693],{"class":181},[388,250731,249723],{},{"title":30,"searchDepth":44,"depth":44,"links":250733},[250734],{"id":250498,"depth":44,"text":250478},"Provisioners in Terraform.",{},{"title":250478,"description":250735},"terraform/provisioners",[247537,190836,190837,5438,9293],"FVBxQx-R5bZr1afa3eJo0vjuKr9nENYOAMpzETAn_TY",{"id":250742,"title":28203,"body":250743,"date":402,"description":250949,"extension":404,"meta":250950,"navigation":61,"order":58,"path":250419,"seo":250951,"stem":250952,"subject":247537,"tags":250953,"__hash__":250954},"topics/terraform/resources.md",{"type":8,"value":250744,"toc":250946},[250745,250747,250944],[11,250746,28203],{"id":28202},[25,250748,250750],{"className":247523,"code":250749,"language":247525,"meta":30,"style":30},"# Create an S3 bucket\nresource \"aws_s3_bucket\" \"example\" {\n  bucket = \"my-unique-bucket-name\"  # Bucket name (must be globally unique)\n  \n  tags = {\n    Name        = \"My bucket\"\n    Environment = \"Dev\"\n  }\n}\n\n# EC2 instance\nresource \"aws_instance\" \"web\" {\n  ami           = \"ami-0c55b159cbfafe1f0\"  # Amazon Machine Image ID\n  instance_type = \"t2.micro\"                # Instance size\n  \n  tags = {\n    Name = \"WebServer\"\n  }\n}\n\n# Reference another resource's attribute\nresource \"aws_eip\" \"web\" {\n  instance = aws_instance.web.id    # Reference EC2 instance ID\n  domain   = \"vpc\"\n}\n",[20,250751,250752,250757,250768,250781,250785,250793,250803,250812,250816,250820,250824,250829,250839,250851,250863,250867,250875,250884,250888,250892,250896,250901,250911,250930,250940],{"__ignoreMap":30},[34,250753,250754],{"class":36,"line":37},[34,250755,250756],{"class":40},"# Create an S3 bucket\n",[34,250758,250759,250761,250764,250766],{"class":36,"line":44},[34,250760,247707],{"class":47},[34,250762,250763],{"class":50}," \"aws_s3_bucket\"",[34,250765,248457],{"class":50},[34,250767,661],{"class":181},[34,250769,250770,250773,250775,250778],{"class":36,"line":58},[34,250771,250772],{"class":181},"  bucket",[34,250774,683],{"class":580},[34,250776,250777],{"class":54}," \"my-unique-bucket-name\"",[34,250779,250780],{"class":40},"  # Bucket name (must be globally unique)\n",[34,250782,250783],{"class":36,"line":65},[34,250784,827],{"class":181},[34,250786,250787,250789,250791],{"class":36,"line":71},[34,250788,248363],{"class":181},[34,250790,683],{"class":580},[34,250792,661],{"class":181},[34,250794,250795,250798,250800],{"class":36,"line":77},[34,250796,250797],{"class":181},"    Name        ",[34,250799,1301],{"class":580},[34,250801,250802],{"class":54}," \"My bucket\"\n",[34,250804,250805,250807,250809],{"class":36,"line":82},[34,250806,249781],{"class":181},[34,250808,1301],{"class":580},[34,250810,250811],{"class":54}," \"Dev\"\n",[34,250813,250814],{"class":36,"line":88},[34,250815,857],{"class":181},[34,250817,250818],{"class":36,"line":242},[34,250819,693],{"class":181},[34,250821,250822],{"class":36,"line":250},[34,250823,62],{"emptyLinePlaceholder":61},[34,250825,250826],{"class":36,"line":263},[34,250827,250828],{"class":40},"# EC2 instance\n",[34,250830,250831,250833,250835,250837],{"class":36,"line":275},[34,250832,247707],{"class":47},[34,250834,247710],{"class":50},[34,250836,249005],{"class":50},[34,250838,661],{"class":181},[34,250840,250841,250843,250845,250848],{"class":36,"line":700},[34,250842,248338],{"class":181},[34,250844,248341],{"class":580},[34,250846,250847],{"class":54}," \"ami-0c55b159cbfafe1f0\"",[34,250849,250850],{"class":40},"  # Amazon Machine Image ID\n",[34,250852,250853,250855,250857,250860],{"class":36,"line":706},[34,250854,248349],{"class":181},[34,250856,683],{"class":580},[34,250858,250859],{"class":54}," \"t2.micro\"",[34,250861,250862],{"class":40},"                # Instance size\n",[34,250864,250865],{"class":36,"line":715},[34,250866,827],{"class":181},[34,250868,250869,250871,250873],{"class":36,"line":725},[34,250870,248363],{"class":181},[34,250872,683],{"class":580},[34,250874,661],{"class":181},[34,250876,250877,250879,250881],{"class":36,"line":734},[34,250878,108103],{"class":181},[34,250880,1301],{"class":580},[34,250882,250883],{"class":54}," \"WebServer\"\n",[34,250885,250886],{"class":36,"line":742},[34,250887,857],{"class":181},[34,250889,250890],{"class":36,"line":748},[34,250891,693],{"class":181},[34,250893,250894],{"class":36,"line":754},[34,250895,62],{"emptyLinePlaceholder":61},[34,250897,250898],{"class":36,"line":759},[34,250899,250900],{"class":40},"# Reference another resource's attribute\n",[34,250902,250903,250905,250907,250909],{"class":36,"line":771},[34,250904,247707],{"class":47},[34,250906,248958],{"class":50},[34,250908,249005],{"class":50},[34,250910,661],{"class":181},[34,250912,250913,250915,250917,250919,250921,250923,250925,250927],{"class":36,"line":794},[34,250914,248967],{"class":181},[34,250916,683],{"class":580},[34,250918,248972],{"class":181},[34,250920,151],{"class":580},[34,250922,38615],{"class":181},[34,250924,151],{"class":580},[34,250926,248846],{"class":181},[34,250928,250929],{"class":40},"# Reference EC2 instance ID\n",[34,250931,250932,250935,250937],{"class":36,"line":824},[34,250933,250934],{"class":181},"  domain",[34,250936,188661],{"class":580},[34,250938,250939],{"class":54}," \"vpc\"\n",[34,250941,250942],{"class":36,"line":830},[34,250943,693],{"class":181},[388,250945,248693],{},{"title":30,"searchDepth":44,"depth":44,"links":250947},[250948],{"id":28202,"depth":44,"text":28203},"Resources in Terraform.",{},{"title":28203,"description":250949},"terraform/resources",[247537,190836,190837,5438,9293],"V4Y0PcUXwGMDrYl5opnq_wkSWYhc3Qo5GLkDQaf4EiU",{"id":250956,"title":250464,"body":250957,"date":402,"description":251167,"extension":404,"meta":251168,"navigation":61,"order":700,"path":250463,"seo":251169,"stem":251170,"subject":247537,"tags":251171,"__hash__":251172},"topics/terraform/string-interpolation.md",{"type":8,"value":250958,"toc":251164},[250959,250962,251162],[11,250960,250464],{"id":250961},"string-interpolation",[25,250963,250965],{"className":247523,"code":250964,"language":247525,"meta":30,"style":30},"# Variable interpolation\nresource \"aws_instance\" \"example\" {\n  tags = {\n    Name = \"server-${var.environment}\"          # String interpolation\n    ID   = \"${var.project}-${var.environment}\"  # Combine multiple vars\n  }\n}\n\n# Function calls in strings\nlocals {\n  uppercase_name = upper(var.name)              # Call function\n  formatted_date = formatdate(\"YYYY-MM-DD\", timestamp())\n}\n\n# Conditional strings\noutput \"message\" {\n  value = var.enabled ? \"Feature enabled\" : \"Feature disabled\"\n}\n",[20,250966,250967,250972,250982,250990,251015,251052,251056,251060,251064,251069,251075,251093,251114,251118,251122,251127,251135,251158],{"__ignoreMap":30},[34,250968,250969],{"class":36,"line":37},[34,250970,250971],{"class":40},"# Variable interpolation\n",[34,250973,250974,250976,250978,250980],{"class":36,"line":44},[34,250975,247707],{"class":47},[34,250977,247710],{"class":50},[34,250979,248457],{"class":50},[34,250981,661],{"class":181},[34,250983,250984,250986,250988],{"class":36,"line":58},[34,250985,248363],{"class":181},[34,250987,683],{"class":580},[34,250989,661],{"class":181},[34,250991,250992,250994,250996,250999,251001,251003,251005,251008,251010,251012],{"class":36,"line":65},[34,250993,108103],{"class":181},[34,250995,1301],{"class":580},[34,250997,250998],{"class":54}," \"server-",[34,251000,248379],{"class":580},[34,251002,34404],{"class":181},[34,251004,151],{"class":580},[34,251006,251007],{"class":181},"environment",[34,251009,34378],{"class":580},[34,251011,10389],{"class":54},[34,251013,251014],{"class":40},"          # String interpolation\n",[34,251016,251017,251020,251022,251024,251026,251028,251030,251033,251035,251037,251039,251041,251043,251045,251047,251049],{"class":36,"line":71},[34,251018,251019],{"class":181},"    ID   ",[34,251021,1301],{"class":580},[34,251023,10326],{"class":54},[34,251025,248379],{"class":580},[34,251027,34404],{"class":181},[34,251029,151],{"class":580},[34,251031,251032],{"class":181},"project",[34,251034,34378],{"class":580},[34,251036,22062],{"class":54},[34,251038,248379],{"class":580},[34,251040,34404],{"class":181},[34,251042,151],{"class":580},[34,251044,251007],{"class":181},[34,251046,34378],{"class":580},[34,251048,10389],{"class":54},[34,251050,251051],{"class":40},"  # Combine multiple vars\n",[34,251053,251054],{"class":36,"line":77},[34,251055,857],{"class":181},[34,251057,251058],{"class":36,"line":82},[34,251059,693],{"class":181},[34,251061,251062],{"class":36,"line":88},[34,251063,62],{"emptyLinePlaceholder":61},[34,251065,251066],{"class":36,"line":242},[34,251067,251068],{"class":40},"# Function calls in strings\n",[34,251070,251071,251073],{"class":36,"line":250},[34,251072,249090],{"class":47},[34,251074,661],{"class":181},[34,251076,251077,251080,251082,251084,251086,251088,251091],{"class":36,"line":263},[34,251078,251079],{"class":181},"  uppercase_name",[34,251081,683],{"class":580},[34,251083,249107],{"class":50},[34,251085,248472],{"class":181},[34,251087,151],{"class":580},[34,251089,251090],{"class":181},"name)              ",[34,251092,11072],{"class":40},[34,251094,251095,251098,251100,251103,251105,251108,251110,251112],{"class":36,"line":275},[34,251096,251097],{"class":181},"  formatted_date",[34,251099,683],{"class":580},[34,251101,251102],{"class":50}," formatdate",[34,251104,1607],{"class":181},[34,251106,251107],{"class":54},"\"YYYY-MM-DD\"",[34,251109,1798],{"class":181},[34,251111,155293],{"class":50},[34,251113,62281],{"class":181},[34,251115,251116],{"class":36,"line":700},[34,251117,693],{"class":181},[34,251119,251120],{"class":36,"line":706},[34,251121,62],{"emptyLinePlaceholder":61},[34,251123,251124],{"class":36,"line":715},[34,251125,251126],{"class":40},"# Conditional strings\n",[34,251128,251129,251131,251133],{"class":36,"line":725},[34,251130,80533],{"class":47},[34,251132,100613],{"class":50},[34,251134,661],{"class":181},[34,251136,251137,251139,251141,251143,251145,251148,251150,251153,251155],{"class":36,"line":734},[34,251138,248900],{"class":181},[34,251140,683],{"class":580},[34,251142,33845],{"class":181},[34,251144,151],{"class":580},[34,251146,251147],{"class":181},"enabled ",[34,251149,18954],{"class":580},[34,251151,251152],{"class":54}," \"Feature enabled\"",[34,251154,64223],{"class":580},[34,251156,251157],{"class":54}," \"Feature disabled\"\n",[34,251159,251160],{"class":36,"line":742},[34,251161,693],{"class":181},[388,251163,248693],{},{"title":30,"searchDepth":44,"depth":44,"links":251165},[251166],{"id":250961,"depth":44,"text":250464},"String Interpolation in Terraform.",{},{"title":250464,"description":251167},"terraform/string-interpolation",[247537,190836,190837,5438,9293],"f5gJD6NbAl5KLF7UbDINSns9zoanMXqnr5e1_1_doPE",{"id":251174,"title":250458,"body":251175,"date":402,"description":251295,"extension":404,"meta":251296,"navigation":61,"order":275,"path":250457,"seo":251297,"stem":251298,"subject":247537,"tags":251299,"__hash__":251300},"topics/terraform/variable-files.md",{"type":8,"value":251176,"toc":251292},[251177,251180,251290],[11,251178,250458],{"id":251179},"variable-files",[25,251181,251183],{"className":247523,"code":251182,"language":247525,"meta":30,"style":30},"# terraform.tfvars (automatically loaded)\nregion         = \"us-east-1\"\ninstance_count = 3\nenvironment    = \"production\"\n\ntags = {\n  Environment = \"Production\"\n  Project     = \"MyApp\"\n  ManagedBy   = \"Terraform\"\n}\n\n# prod.tfvars (load with -var-file flag)\ninstance_type = \"t3.large\"\nenable_monitoring = true\n",[20,251184,251185,251190,251200,251209,251217,251221,251229,251239,251249,251258,251262,251266,251271,251281],{"__ignoreMap":30},[34,251186,251187],{"class":36,"line":37},[34,251188,251189],{"class":40},"# terraform.tfvars (automatically loaded)\n",[34,251191,251192,251195,251197],{"class":36,"line":44},[34,251193,251194],{"class":181},"region",[34,251196,247557],{"class":580},[34,251198,251199],{"class":54}," \"us-east-1\"\n",[34,251201,251202,251205,251207],{"class":36,"line":58},[34,251203,251204],{"class":181},"instance_count",[34,251206,683],{"class":580},[34,251208,204469],{"class":50},[34,251210,251211,251213,251215],{"class":36,"line":65},[34,251212,251007],{"class":181},[34,251214,108502],{"class":580},[34,251216,249767],{"class":54},[34,251218,251219],{"class":36,"line":71},[34,251220,62],{"emptyLinePlaceholder":61},[34,251222,251223,251225,251227],{"class":36,"line":77},[34,251224,102026],{"class":181},[34,251226,683],{"class":580},[34,251228,661],{"class":181},[34,251230,251231,251234,251236],{"class":36,"line":82},[34,251232,251233],{"class":181},"  Environment ",[34,251235,1301],{"class":580},[34,251237,251238],{"class":54}," \"Production\"\n",[34,251240,251241,251244,251246],{"class":36,"line":88},[34,251242,251243],{"class":181},"  Project     ",[34,251245,1301],{"class":580},[34,251247,251248],{"class":54}," \"MyApp\"\n",[34,251250,251251,251254,251256],{"class":36,"line":242},[34,251252,251253],{"class":181},"  ManagedBy   ",[34,251255,1301],{"class":580},[34,251257,249796],{"class":54},[34,251259,251260],{"class":36,"line":250},[34,251261,693],{"class":181},[34,251263,251264],{"class":36,"line":263},[34,251265,62],{"emptyLinePlaceholder":61},[34,251267,251268],{"class":36,"line":275},[34,251269,251270],{"class":40},"# prod.tfvars (load with -var-file flag)\n",[34,251272,251273,251276,251278],{"class":36,"line":700},[34,251274,251275],{"class":181},"instance_type",[34,251277,683],{"class":580},[34,251279,251280],{"class":54}," \"t3.large\"\n",[34,251282,251283,251286,251288],{"class":36,"line":706},[34,251284,251285],{"class":181},"enable_monitoring",[34,251287,683],{"class":580},[34,251289,104956],{"class":50},[388,251291,10348],{},{"title":30,"searchDepth":44,"depth":44,"links":251293},[251294],{"id":251179,"depth":44,"text":250458},"Variable Files in Terraform.",{},{"title":250458,"description":251295},"terraform/variable-files",[247537,190836,190837,5438,9293],"qcgncLum8A__qQJ-3UUXIRr-jYSlGs5kZUpedAdojb4",{"id":251302,"title":12166,"body":251303,"date":402,"description":251549,"extension":404,"meta":251550,"navigation":61,"order":65,"path":250424,"seo":251551,"stem":251552,"subject":247537,"tags":251553,"__hash__":251554},"topics/terraform/variables.md",{"type":8,"value":251304,"toc":251546},[251305,251307,251544],[11,251306,12166],{"id":13314},[25,251308,251310],{"className":247523,"code":251309,"language":247525,"meta":30,"style":30},"# Input variable declaration\nvariable \"region\" {\n  description = \"AWS region to deploy resources\"\n  type        = string\n  default     = \"us-west-2\"         # Default value (optional)\n}\n\nvariable \"instance_count\" {\n  description = \"Number of instances to create\"\n  type        = number\n  default     = 1\n}\n\nvariable \"tags\" {\n  description = \"Common tags for all resources\"\n  type        = map(string)\n  default = {\n    Environment = \"Development\"\n    Project     = \"MyApp\"\n  }\n}\n\n# Using variables\nresource \"aws_instance\" \"app\" {\n  count         = var.instance_count    # Reference variable\n  ami           = \"ami-0c55b159cbfafe1f0\"\n  instance_type = \"t2.micro\"\n  \n  tags = var.tags                       # Use map variable\n}\n",[20,251311,251312,251317,251326,251335,251343,251354,251358,251362,251371,251380,251389,251397,251401,251405,251414,251423,251437,251445,251454,251462,251466,251470,251474,251478,251488,251504,251512,251520,251524,251540],{"__ignoreMap":30},[34,251313,251314],{"class":36,"line":37},[34,251315,251316],{"class":40},"# Input variable declaration\n",[34,251318,251319,251321,251324],{"class":36,"line":44},[34,251320,248414],{"class":47},[34,251322,251323],{"class":50}," \"region\"",[34,251325,661],{"class":181},[34,251327,251328,251330,251332],{"class":36,"line":58},[34,251329,128900],{"class":181},[34,251331,683],{"class":580},[34,251333,251334],{"class":54}," \"AWS region to deploy resources\"\n",[34,251336,251337,251339,251341],{"class":36,"line":65},[34,251338,139924],{"class":181},[34,251340,247592],{"class":580},[34,251342,65985],{"class":580},[34,251344,251345,251347,251349,251351],{"class":36,"line":71},[34,251346,162386],{"class":181},[34,251348,248487],{"class":580},[34,251350,247863],{"class":54},[34,251352,251353],{"class":40},"         # Default value (optional)\n",[34,251355,251356],{"class":36,"line":77},[34,251357,693],{"class":181},[34,251359,251360],{"class":36,"line":82},[34,251361,62],{"emptyLinePlaceholder":61},[34,251363,251364,251366,251369],{"class":36,"line":88},[34,251365,248414],{"class":47},[34,251367,251368],{"class":50}," \"instance_count\"",[34,251370,661],{"class":181},[34,251372,251373,251375,251377],{"class":36,"line":242},[34,251374,128900],{"class":181},[34,251376,683],{"class":580},[34,251378,251379],{"class":54}," \"Number of instances to create\"\n",[34,251381,251382,251384,251386],{"class":36,"line":250},[34,251383,139924],{"class":181},[34,251385,247592],{"class":580},[34,251387,251388],{"class":580}," number\n",[34,251390,251391,251393,251395],{"class":36,"line":263},[34,251392,162386],{"class":181},[34,251394,248487],{"class":580},[34,251396,43446],{"class":50},[34,251398,251399],{"class":36,"line":275},[34,251400,693],{"class":181},[34,251402,251403],{"class":36,"line":700},[34,251404,62],{"emptyLinePlaceholder":61},[34,251406,251407,251409,251412],{"class":36,"line":706},[34,251408,248414],{"class":47},[34,251410,251411],{"class":50}," \"tags\"",[34,251413,661],{"class":181},[34,251415,251416,251418,251420],{"class":36,"line":715},[34,251417,128900],{"class":181},[34,251419,683],{"class":580},[34,251421,251422],{"class":54}," \"Common tags for all resources\"\n",[34,251424,251425,251427,251429,251431,251433,251435],{"class":36,"line":725},[34,251426,139924],{"class":181},[34,251428,247592],{"class":580},[34,251430,88036],{"class":580},[34,251432,1607],{"class":181},[34,251434,30113],{"class":580},[34,251436,3372],{"class":181},[34,251438,251439,251441,251443],{"class":36,"line":734},[34,251440,162386],{"class":181},[34,251442,683],{"class":580},[34,251444,661],{"class":181},[34,251446,251447,251449,251451],{"class":36,"line":742},[34,251448,249781],{"class":181},[34,251450,1301],{"class":580},[34,251452,251453],{"class":54}," \"Development\"\n",[34,251455,251456,251458,251460],{"class":36,"line":748},[34,251457,249801],{"class":181},[34,251459,1301],{"class":580},[34,251461,251248],{"class":54},[34,251463,251464],{"class":36,"line":754},[34,251465,857],{"class":181},[34,251467,251468],{"class":36,"line":759},[34,251469,693],{"class":181},[34,251471,251472],{"class":36,"line":771},[34,251473,62],{"emptyLinePlaceholder":61},[34,251475,251476],{"class":36,"line":794},[34,251477,13350],{"class":40},[34,251479,251480,251482,251484,251486],{"class":36,"line":824},[34,251481,247707],{"class":47},[34,251483,247710],{"class":50},[34,251485,247713],{"class":50},[34,251487,661],{"class":181},[34,251489,251490,251492,251494,251496,251498,251501],{"class":36,"line":830},[34,251491,4242],{"class":181},[34,251493,247557],{"class":580},[34,251495,33845],{"class":181},[34,251497,151],{"class":580},[34,251499,251500],{"class":181},"instance_count    ",[34,251502,251503],{"class":40},"# Reference variable\n",[34,251505,251506,251508,251510],{"class":36,"line":839},[34,251507,248338],{"class":181},[34,251509,248341],{"class":580},[34,251511,248344],{"class":54},[34,251513,251514,251516,251518],{"class":36,"line":854},[34,251515,248349],{"class":181},[34,251517,683],{"class":580},[34,251519,248354],{"class":54},[34,251521,251522],{"class":36,"line":860},[34,251523,827],{"class":181},[34,251525,251526,251528,251530,251532,251534,251537],{"class":36,"line":865},[34,251527,248363],{"class":181},[34,251529,683],{"class":580},[34,251531,33845],{"class":181},[34,251533,151],{"class":580},[34,251535,251536],{"class":181},"tags                       ",[34,251538,251539],{"class":40},"# Use map variable\n",[34,251541,251542],{"class":36,"line":870},[34,251543,693],{"class":181},[388,251545,248693],{},{"title":30,"searchDepth":44,"depth":44,"links":251547},[251548],{"id":13314,"depth":44,"text":12166},"Variables in Terraform.",{},{"title":12166,"description":251549},"terraform/variables",[247537,190836,190837,5438,9293],"h_njc4zXKtF2Mh7CdVFYNsexfiBQc0b8yWkt-NXHhaQ",{"id":251556,"title":251557,"body":251558,"date":402,"description":251758,"extension":404,"meta":251759,"navigation":61,"order":88,"path":251760,"seo":251761,"stem":251762,"subject":251577,"tags":251763,"__hash__":251765},"topics/tmux/advanced-commands.md","Advanced Commands",{"type":8,"value":251559,"toc":251755},[251560,251563,251753],[11,251561,251557],{"id":251562},"advanced-commands",[25,251564,251566],{"className":27,"code":251565,"language":29,"meta":30,"style":30},"# Send keys to pane\ntmux send-keys -t mysession:0.1 \"ls -la\" Enter\n\n# Capture pane contents\ntmux capture-pane -t 0 -p > output.txt\n\n# Synchronize panes (type in all panes)\n# Prefix + : then\n:setw synchronize-panes on\n:setw synchronize-panes off\n\n# Join pane from another window\ntmux join-pane -s 2 -t 1  # Move pane from window 2 to 1\n\n# Break pane to new window\ntmux break-pane\n\n# Pipe pane output to file\ntmux pipe-pane -o 'cat >> ~/tmux.log'\n\n# Display message\ntmux display-message \"Hello!\"\n\n# Run shell command\ntmux run-shell \"echo hello\"\n",[20,251567,251568,251573,251592,251596,251601,251618,251622,251627,251632,251643,251652,251656,251661,251679,251683,251688,251695,251699,251704,251716,251720,251725,251734,251738,251743],{"__ignoreMap":30},[34,251569,251570],{"class":36,"line":37},[34,251571,251572],{"class":40},"# Send keys to pane\n",[34,251574,251575,251578,251581,251583,251586,251589],{"class":36,"line":44},[34,251576,251577],{"class":47},"tmux",[34,251579,251580],{"class":54}," send-keys",[34,251582,11256],{"class":50},[34,251584,251585],{"class":54}," mysession:0.1",[34,251587,251588],{"class":54}," \"ls -la\"",[34,251590,251591],{"class":54}," Enter\n",[34,251593,251594],{"class":36,"line":58},[34,251595,62],{"emptyLinePlaceholder":61},[34,251597,251598],{"class":36,"line":65},[34,251599,251600],{"class":40},"# Capture pane contents\n",[34,251602,251603,251605,251608,251610,251612,251614,251616],{"class":36,"line":71},[34,251604,251577],{"class":47},[34,251606,251607],{"class":54}," capture-pane",[34,251609,11256],{"class":50},[34,251611,8070],{"class":50},[34,251613,5275],{"class":50},[34,251615,9009],{"class":580},[34,251617,223217],{"class":54},[34,251619,251620],{"class":36,"line":77},[34,251621,62],{"emptyLinePlaceholder":61},[34,251623,251624],{"class":36,"line":82},[34,251625,251626],{"class":40},"# Synchronize panes (type in all panes)\n",[34,251628,251629],{"class":36,"line":88},[34,251630,251631],{"class":40},"# Prefix + : then\n",[34,251633,251634,251637,251640],{"class":36,"line":242},[34,251635,251636],{"class":47},":setw",[34,251638,251639],{"class":54}," synchronize-panes",[34,251641,251642],{"class":54}," on\n",[34,251644,251645,251647,251649],{"class":36,"line":250},[34,251646,251636],{"class":47},[34,251648,251639],{"class":54},[34,251650,251651],{"class":54}," off\n",[34,251653,251654],{"class":36,"line":263},[34,251655,62],{"emptyLinePlaceholder":61},[34,251657,251658],{"class":36,"line":275},[34,251659,251660],{"class":40},"# Join pane from another window\n",[34,251662,251663,251665,251668,251670,251672,251674,251676],{"class":36,"line":700},[34,251664,251577],{"class":47},[34,251666,251667],{"class":54}," join-pane",[34,251669,5487],{"class":50},[34,251671,4292],{"class":50},[34,251673,11256],{"class":50},[34,251675,3567],{"class":50},[34,251677,251678],{"class":40},"  # Move pane from window 2 to 1\n",[34,251680,251681],{"class":36,"line":706},[34,251682,62],{"emptyLinePlaceholder":61},[34,251684,251685],{"class":36,"line":715},[34,251686,251687],{"class":40},"# Break pane to new window\n",[34,251689,251690,251692],{"class":36,"line":725},[34,251691,251577],{"class":47},[34,251693,251694],{"class":54}," break-pane\n",[34,251696,251697],{"class":36,"line":734},[34,251698,62],{"emptyLinePlaceholder":61},[34,251700,251701],{"class":36,"line":742},[34,251702,251703],{"class":40},"# Pipe pane output to file\n",[34,251705,251706,251708,251711,251713],{"class":36,"line":748},[34,251707,251577],{"class":47},[34,251709,251710],{"class":54}," pipe-pane",[34,251712,8654],{"class":50},[34,251714,251715],{"class":54}," 'cat >> ~/tmux.log'\n",[34,251717,251718],{"class":36,"line":754},[34,251719,62],{"emptyLinePlaceholder":61},[34,251721,251722],{"class":36,"line":759},[34,251723,251724],{"class":40},"# Display message\n",[34,251726,251727,251729,251732],{"class":36,"line":771},[34,251728,251577],{"class":47},[34,251730,251731],{"class":54}," display-message",[34,251733,112870],{"class":54},[34,251735,251736],{"class":36,"line":794},[34,251737,62],{"emptyLinePlaceholder":61},[34,251739,251740],{"class":36,"line":824},[34,251741,251742],{"class":40},"# Run shell command\n",[34,251744,251745,251747,251750],{"class":36,"line":830},[34,251746,251577],{"class":47},[34,251748,251749],{"class":54}," run-shell",[34,251751,251752],{"class":54}," \"echo hello\"\n",[388,251754,81522],{},{"title":30,"searchDepth":44,"depth":44,"links":251756},[251757],{"id":251562,"depth":44,"text":251557},"Advanced Commands in Tmux.",{},"/tmux/advanced-commands",{"title":251557,"description":251758},"tmux/advanced-commands",[251577,557,5588,251764,89862],"multiplexer","7qvlDuwaRTS8GAohh9-xbdMtjXVvhVPzWg0kCZa1_RU",{"id":251767,"title":251768,"body":251769,"date":402,"description":251896,"extension":404,"meta":251897,"navigation":61,"order":77,"path":251898,"seo":251899,"stem":251900,"subject":251577,"tags":251901,"__hash__":251902},"topics/tmux/command-mode.md","Command Mode",{"type":8,"value":251770,"toc":251893},[251771,251774,251891],[11,251772,251768],{"id":251773},"command-mode",[25,251775,251777],{"className":27,"code":251776,"language":29,"meta":30,"style":30},"# Enter command mode\n# Prefix + :\nCtrl+b :\n\n# Common commands\n:new-session -s name      # Create session\n:kill-session             # Kill current session\n:rename-session newname   # Rename session\n:source-file ~/.tmux.conf # Reload config\n:set -g option value      # Set option\n:setw -g option value     # Set window option\n:list-keys                # List key bindings\n:list-commands            # List all commands\n",[20,251778,251779,251784,251789,251797,251801,251806,251818,251826,251836,251847,251862,251875,251883],{"__ignoreMap":30},[34,251780,251781],{"class":36,"line":37},[34,251782,251783],{"class":40},"# Enter command mode\n",[34,251785,251786],{"class":36,"line":44},[34,251787,251788],{"class":40},"# Prefix + :\n",[34,251790,251791,251794],{"class":36,"line":58},[34,251792,251793],{"class":47},"Ctrl+b",[34,251795,251796],{"class":54}," :\n",[34,251798,251799],{"class":36,"line":65},[34,251800,62],{"emptyLinePlaceholder":61},[34,251802,251803],{"class":36,"line":71},[34,251804,251805],{"class":40},"# Common commands\n",[34,251807,251808,251811,251813,251815],{"class":36,"line":77},[34,251809,251810],{"class":47},":new-session",[34,251812,5487],{"class":50},[34,251814,12323],{"class":54},[34,251816,251817],{"class":40},"      # Create session\n",[34,251819,251820,251823],{"class":36,"line":82},[34,251821,251822],{"class":47},":kill-session",[34,251824,251825],{"class":40},"             # Kill current session\n",[34,251827,251828,251831,251833],{"class":36,"line":88},[34,251829,251830],{"class":47},":rename-session",[34,251832,184427],{"class":54},[34,251834,251835],{"class":40},"   # Rename session\n",[34,251837,251838,251841,251844],{"class":36,"line":242},[34,251839,251840],{"class":47},":source-file",[34,251842,251843],{"class":54}," ~/.tmux.conf",[34,251845,251846],{"class":40}," # Reload config\n",[34,251848,251849,251852,251854,251857,251859],{"class":36,"line":250},[34,251850,251851],{"class":47},":set",[34,251853,9753],{"class":50},[34,251855,251856],{"class":54}," option",[34,251858,18389],{"class":54},[34,251860,251861],{"class":40},"      # Set option\n",[34,251863,251864,251866,251868,251870,251872],{"class":36,"line":263},[34,251865,251636],{"class":47},[34,251867,9753],{"class":50},[34,251869,251856],{"class":54},[34,251871,18389],{"class":54},[34,251873,251874],{"class":40},"     # Set window option\n",[34,251876,251877,251880],{"class":36,"line":275},[34,251878,251879],{"class":47},":list-keys",[34,251881,251882],{"class":40},"                # List key bindings\n",[34,251884,251885,251888],{"class":36,"line":700},[34,251886,251887],{"class":47},":list-commands",[34,251889,251890],{"class":40},"            # List all commands\n",[388,251892,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":251894},[251895],{"id":251773,"depth":44,"text":251768},"Command Mode in Tmux.",{},"/tmux/command-mode",{"title":251768,"description":251896},"tmux/command-mode",[251577,557,5588,251764,89862],"EK_1g3BIxBmMx4ZC8-9mep2C9ggnLPgwUa60Qvg3t_k",{"id":251904,"title":251905,"body":251906,"date":402,"description":252339,"extension":404,"meta":252340,"navigation":61,"order":82,"path":252341,"seo":252342,"stem":252343,"subject":251577,"tags":252344,"__hash__":252345},"topics/tmux/configuration-tmuxconf.md","Configuration (~/.tmux.conf)",{"type":8,"value":251907,"toc":252336},[251908,251911,252333],[11,251909,251905],{"id":251910},"configuration-tmuxconf",[25,251912,251914],{"className":27,"code":251913,"language":29,"meta":30,"style":30},"# Change prefix key to Ctrl+a\nset -g prefix C-a\nunbind C-b\nbind C-a send-prefix\n\n# Enable mouse support\nset -g mouse on\n\n# Start windows and panes at 1\nset -g base-index 1\nsetw -g pane-base-index 1\n\n# Set history limit\nset -g history-limit 10000\n\n# Enable vi mode\nsetw -g mode-keys vi\n\n# Faster escape time\nset -sg escape-time 0\n\n# Split panes using | and -\nbind | split-window -h\nbind - split-window -v\n\n# Reload config\nbind r source-file ~/.tmux.conf \\; display \"Reloaded!\"\n\n# Pane navigation with vim keys\nbind h select-pane -L\nbind j select-pane -D\nbind k select-pane -U\nbind l select-pane -R\n\n# Resize panes with vim keys\nbind -r H resize-pane -L 5\nbind -r J resize-pane -D 5\nbind -r K resize-pane -U 5\nbind -r L resize-pane -R 5\n\n# Status bar customization\nset -g status-style 'bg=#333333 fg=#ffffff'\nset -g status-left '[#S] '\nset -g status-right '%H:%M %d-%b-%y'\n\n# Window status format\nsetw -g window-status-current-style 'fg=#ffffff bg=#555555'\n\n# Enable 256 colors\nset -g default-terminal \"screen-256color\"\n",[20,251915,251916,251921,251933,251941,251951,251955,251960,251971,251975,251980,251991,252003,252007,252012,252024,252028,252033,252045,252049,252054,252066,252070,252075,252087,252097,252101,252106,252124,252128,252133,252144,252155,252166,252178,252182,252187,252203,252218,252232,252246,252250,252255,252267,252279,252291,252295,252300,252312,252316,252321],{"__ignoreMap":30},[34,251917,251918],{"class":36,"line":37},[34,251919,251920],{"class":40},"# Change prefix key to Ctrl+a\n",[34,251922,251923,251925,251927,251930],{"class":36,"line":44},[34,251924,1648],{"class":50},[34,251926,9753],{"class":50},[34,251928,251929],{"class":54}," prefix",[34,251931,251932],{"class":54}," C-a\n",[34,251934,251935,251938],{"class":36,"line":58},[34,251936,251937],{"class":47},"unbind",[34,251939,251940],{"class":54}," C-b\n",[34,251942,251943,251945,251948],{"class":36,"line":65},[34,251944,237795],{"class":47},[34,251946,251947],{"class":54}," C-a",[34,251949,251950],{"class":54}," send-prefix\n",[34,251952,251953],{"class":36,"line":71},[34,251954,62],{"emptyLinePlaceholder":61},[34,251956,251957],{"class":36,"line":77},[34,251958,251959],{"class":40},"# Enable mouse support\n",[34,251961,251962,251964,251966,251969],{"class":36,"line":82},[34,251963,1648],{"class":50},[34,251965,9753],{"class":50},[34,251967,251968],{"class":54}," mouse",[34,251970,251642],{"class":54},[34,251972,251973],{"class":36,"line":88},[34,251974,62],{"emptyLinePlaceholder":61},[34,251976,251977],{"class":36,"line":242},[34,251978,251979],{"class":40},"# Start windows and panes at 1\n",[34,251981,251982,251984,251986,251989],{"class":36,"line":250},[34,251983,1648],{"class":50},[34,251985,9753],{"class":50},[34,251987,251988],{"class":54}," base-index",[34,251990,43446],{"class":50},[34,251992,251993,251996,251998,252001],{"class":36,"line":263},[34,251994,251995],{"class":47},"setw",[34,251997,9753],{"class":50},[34,251999,252000],{"class":54}," pane-base-index",[34,252002,43446],{"class":50},[34,252004,252005],{"class":36,"line":275},[34,252006,62],{"emptyLinePlaceholder":61},[34,252008,252009],{"class":36,"line":700},[34,252010,252011],{"class":40},"# Set history limit\n",[34,252013,252014,252016,252018,252021],{"class":36,"line":706},[34,252015,1648],{"class":50},[34,252017,9753],{"class":50},[34,252019,252020],{"class":54}," history-limit",[34,252022,252023],{"class":50}," 10000\n",[34,252025,252026],{"class":36,"line":715},[34,252027,62],{"emptyLinePlaceholder":61},[34,252029,252030],{"class":36,"line":725},[34,252031,252032],{"class":40},"# Enable vi mode\n",[34,252034,252035,252037,252039,252042],{"class":36,"line":734},[34,252036,251995],{"class":47},[34,252038,9753],{"class":50},[34,252040,252041],{"class":54}," mode-keys",[34,252043,252044],{"class":54}," vi\n",[34,252046,252047],{"class":36,"line":742},[34,252048,62],{"emptyLinePlaceholder":61},[34,252050,252051],{"class":36,"line":748},[34,252052,252053],{"class":40},"# Faster escape time\n",[34,252055,252056,252058,252061,252064],{"class":36,"line":754},[34,252057,1648],{"class":50},[34,252059,252060],{"class":50}," -sg",[34,252062,252063],{"class":54}," escape-time",[34,252065,36394],{"class":50},[34,252067,252068],{"class":36,"line":759},[34,252069,62],{"emptyLinePlaceholder":61},[34,252071,252072],{"class":36,"line":771},[34,252073,252074],{"class":40},"# Split panes using | and -\n",[34,252076,252077,252079,252081,252084],{"class":36,"line":794},[34,252078,237795],{"class":47},[34,252080,7197],{"class":580},[34,252082,252083],{"class":47}," split-window",[34,252085,252086],{"class":50}," -h\n",[34,252088,252089,252091,252093,252095],{"class":36,"line":824},[34,252090,237795],{"class":47},[34,252092,19423],{"class":54},[34,252094,252083],{"class":54},[34,252096,57767],{"class":50},[34,252098,252099],{"class":36,"line":830},[34,252100,62],{"emptyLinePlaceholder":61},[34,252102,252103],{"class":36,"line":839},[34,252104,252105],{"class":40},"# Reload config\n",[34,252107,252108,252110,252112,252115,252117,252119,252121],{"class":36,"line":854},[34,252109,237795],{"class":47},[34,252111,130386],{"class":54},[34,252113,252114],{"class":54}," source-file",[34,252116,251843],{"class":54},[34,252118,13025],{"class":50},[34,252120,191792],{"class":54},[34,252122,252123],{"class":54}," \"Reloaded!\"\n",[34,252125,252126],{"class":36,"line":860},[34,252127,62],{"emptyLinePlaceholder":61},[34,252129,252130],{"class":36,"line":865},[34,252131,252132],{"class":40},"# Pane navigation with vim keys\n",[34,252134,252135,252137,252139,252142],{"class":36,"line":870},[34,252136,237795],{"class":47},[34,252138,34893],{"class":54},[34,252140,252141],{"class":54}," select-pane",[34,252143,182152],{"class":50},[34,252145,252146,252148,252151,252153],{"class":36,"line":876},[34,252147,237795],{"class":47},[34,252149,252150],{"class":54}," j",[34,252152,252141],{"class":54},[34,252154,120160],{"class":50},[34,252156,252157,252159,252161,252163],{"class":36,"line":885},[34,252158,237795],{"class":47},[34,252160,64581],{"class":54},[34,252162,252141],{"class":54},[34,252164,252165],{"class":50}," -U\n",[34,252167,252168,252170,252173,252175],{"class":36,"line":895},[34,252169,237795],{"class":47},[34,252171,252172],{"class":54}," l",[34,252174,252141],{"class":54},[34,252176,252177],{"class":50}," -R\n",[34,252179,252180],{"class":36,"line":904},[34,252181,62],{"emptyLinePlaceholder":61},[34,252183,252184],{"class":36,"line":915},[34,252185,252186],{"class":40},"# Resize panes with vim keys\n",[34,252188,252189,252191,252193,252196,252199,252201],{"class":36,"line":927},[34,252190,237795],{"class":47},[34,252192,12112],{"class":50},[34,252194,252195],{"class":54}," H",[34,252197,252198],{"class":54}," resize-pane",[34,252200,43254],{"class":50},[34,252202,134626],{"class":50},[34,252204,252205,252207,252209,252212,252214,252216],{"class":36,"line":932},[34,252206,237795],{"class":47},[34,252208,12112],{"class":50},[34,252210,252211],{"class":54}," J",[34,252213,252198],{"class":54},[34,252215,13768],{"class":50},[34,252217,134626],{"class":50},[34,252219,252220,252222,252224,252226,252228,252230],{"class":36,"line":944},[34,252221,237795],{"class":47},[34,252223,12112],{"class":50},[34,252225,11576],{"class":54},[34,252227,252198],{"class":54},[34,252229,169130],{"class":50},[34,252231,134626],{"class":50},[34,252233,252234,252236,252238,252240,252242,252244],{"class":36,"line":966},[34,252235,237795],{"class":47},[34,252237,12112],{"class":50},[34,252239,11750],{"class":54},[34,252241,252198],{"class":54},[34,252243,97196],{"class":50},[34,252245,134626],{"class":50},[34,252247,252248],{"class":36,"line":1948},[34,252249,62],{"emptyLinePlaceholder":61},[34,252251,252252],{"class":36,"line":1953},[34,252253,252254],{"class":40},"# Status bar customization\n",[34,252256,252257,252259,252261,252264],{"class":36,"line":3616},[34,252258,1648],{"class":50},[34,252260,9753],{"class":50},[34,252262,252263],{"class":54}," status-style",[34,252265,252266],{"class":54}," 'bg=#333333 fg=#ffffff'\n",[34,252268,252269,252271,252273,252276],{"class":36,"line":3622},[34,252270,1648],{"class":50},[34,252272,9753],{"class":50},[34,252274,252275],{"class":54}," status-left",[34,252277,252278],{"class":54}," '[#S] '\n",[34,252280,252281,252283,252285,252288],{"class":36,"line":3642},[34,252282,1648],{"class":50},[34,252284,9753],{"class":50},[34,252286,252287],{"class":54}," status-right",[34,252289,252290],{"class":54}," '%H:%M %d-%b-%y'\n",[34,252292,252293],{"class":36,"line":3657},[34,252294,62],{"emptyLinePlaceholder":61},[34,252296,252297],{"class":36,"line":3663},[34,252298,252299],{"class":40},"# Window status format\n",[34,252301,252302,252304,252306,252309],{"class":36,"line":3669},[34,252303,251995],{"class":47},[34,252305,9753],{"class":50},[34,252307,252308],{"class":54}," window-status-current-style",[34,252310,252311],{"class":54}," 'fg=#ffffff bg=#555555'\n",[34,252313,252314],{"class":36,"line":3675},[34,252315,62],{"emptyLinePlaceholder":61},[34,252317,252318],{"class":36,"line":3693},[34,252319,252320],{"class":40},"# Enable 256 colors\n",[34,252322,252323,252325,252327,252330],{"class":36,"line":3707},[34,252324,1648],{"class":50},[34,252326,9753],{"class":50},[34,252328,252329],{"class":54}," default-terminal",[34,252331,252332],{"class":54}," \"screen-256color\"\n",[388,252334,252335],{},"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}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":252337},[252338],{"id":251910,"depth":44,"text":251905},"Configuration (~/.tmux.conf) in Tmux.",{},"/tmux/configuration-tmuxconf",{"title":251905,"description":252339},"tmux/configuration-tmuxconf",[251577,557,5588,251764,89862],"IOLkOhVib8X4QFOjmurBG-esMD9utfwUxyAGH2dFOxc",{"id":252347,"title":252348,"body":252349,"date":402,"description":252553,"extension":404,"meta":252554,"navigation":61,"order":71,"path":252555,"seo":252556,"stem":252557,"subject":251577,"tags":252558,"__hash__":252559},"topics/tmux/copy-mode.md","Copy Mode",{"type":8,"value":252350,"toc":252550},[252351,252354,252547],[11,252352,252348],{"id":252353},"copy-mode",[25,252355,252357],{"className":27,"code":252356,"language":29,"meta":30,"style":30},"# Enter copy mode\n# Prefix + [\nCtrl+b [\n\n# Exit copy mode\nq\n\n# Navigation in copy mode (vi keys)\nh j k l       # Move cursor\nw b           # Word forward/backward\nCtrl+u Ctrl+d # Page up/down\ng G           # Start/end of buffer\n/ ?           # Search forward/backward\nn N           # Next/previous search match\n\n# Selection (vi mode)\nSpace         # Start selection\nEnter         # Copy selection\nEsc           # Clear selection\n\n# Paste buffer\n# Prefix + ]\nCtrl+b ]\n\n# List buffers\ntmux list-buffers\n\n# Save buffer to file\ntmux save-buffer ~/buffer.txt\n",[20,252358,252359,252364,252369,252375,252379,252384,252389,252393,252398,252411,252420,252431,252441,252450,252459,252463,252468,252476,252483,252491,252495,252500,252505,252512,252516,252521,252528,252532,252537],{"__ignoreMap":30},[34,252360,252361],{"class":36,"line":37},[34,252362,252363],{"class":40},"# Enter copy mode\n",[34,252365,252366],{"class":36,"line":44},[34,252367,252368],{"class":40},"# Prefix + [\n",[34,252370,252371,252373],{"class":36,"line":58},[34,252372,251793],{"class":47},[34,252374,3304],{"class":181},[34,252376,252377],{"class":36,"line":65},[34,252378,62],{"emptyLinePlaceholder":61},[34,252380,252381],{"class":36,"line":71},[34,252382,252383],{"class":40},"# Exit copy mode\n",[34,252385,252386],{"class":36,"line":77},[34,252387,252388],{"class":47},"q\n",[34,252390,252391],{"class":36,"line":82},[34,252392,62],{"emptyLinePlaceholder":61},[34,252394,252395],{"class":36,"line":88},[34,252396,252397],{"class":40},"# Navigation in copy mode (vi keys)\n",[34,252399,252400,252402,252404,252406,252408],{"class":36,"line":242},[34,252401,100801],{"class":47},[34,252403,252150],{"class":54},[34,252405,64581],{"class":54},[34,252407,252172],{"class":54},[34,252409,252410],{"class":40},"       # Move cursor\n",[34,252412,252413,252415,252417],{"class":36,"line":250},[34,252414,100897],{"class":47},[34,252416,19392],{"class":54},[34,252418,252419],{"class":40},"           # Word forward/backward\n",[34,252421,252422,252425,252428],{"class":36,"line":263},[34,252423,252424],{"class":47},"Ctrl+u",[34,252426,252427],{"class":54}," Ctrl+d",[34,252429,252430],{"class":40}," # Page up/down\n",[34,252432,252433,252435,252438],{"class":36,"line":275},[34,252434,13957],{"class":47},[34,252436,252437],{"class":54}," G",[34,252439,252440],{"class":40},"           # Start/end of buffer\n",[34,252442,252443,252445,252447],{"class":36,"line":700},[34,252444,12734],{"class":47},[34,252446,131598],{"class":54},[34,252448,252449],{"class":40},"           # Search forward/backward\n",[34,252451,252452,252454,252456],{"class":36,"line":706},[34,252453,6217],{"class":47},[34,252455,11658],{"class":54},[34,252457,252458],{"class":40},"           # Next/previous search match\n",[34,252460,252461],{"class":36,"line":715},[34,252462,62],{"emptyLinePlaceholder":61},[34,252464,252465],{"class":36,"line":725},[34,252466,252467],{"class":40},"# Selection (vi mode)\n",[34,252469,252470,252473],{"class":36,"line":734},[34,252471,252472],{"class":47},"Space",[34,252474,252475],{"class":40},"         # Start selection\n",[34,252477,252478,252480],{"class":36,"line":742},[34,252479,140906],{"class":47},[34,252481,252482],{"class":40},"         # Copy selection\n",[34,252484,252485,252488],{"class":36,"line":748},[34,252486,252487],{"class":47},"Esc",[34,252489,252490],{"class":40},"           # Clear selection\n",[34,252492,252493],{"class":36,"line":754},[34,252494,62],{"emptyLinePlaceholder":61},[34,252496,252497],{"class":36,"line":759},[34,252498,252499],{"class":40},"# Paste buffer\n",[34,252501,252502],{"class":36,"line":771},[34,252503,252504],{"class":40},"# Prefix + ]\n",[34,252506,252507,252509],{"class":36,"line":794},[34,252508,251793],{"class":47},[34,252510,252511],{"class":54}," ]\n",[34,252513,252514],{"class":36,"line":824},[34,252515,62],{"emptyLinePlaceholder":61},[34,252517,252518],{"class":36,"line":830},[34,252519,252520],{"class":40},"# List buffers\n",[34,252522,252523,252525],{"class":36,"line":839},[34,252524,251577],{"class":47},[34,252526,252527],{"class":54}," list-buffers\n",[34,252529,252530],{"class":36,"line":854},[34,252531,62],{"emptyLinePlaceholder":61},[34,252533,252534],{"class":36,"line":860},[34,252535,252536],{"class":40},"# Save buffer to file\n",[34,252538,252539,252541,252544],{"class":36,"line":865},[34,252540,251577],{"class":47},[34,252542,252543],{"class":54}," save-buffer",[34,252545,252546],{"class":54}," ~/buffer.txt\n",[388,252548,252549],{},"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 .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 .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":30,"searchDepth":44,"depth":44,"links":252551},[252552],{"id":252353,"depth":44,"text":252348},"Copy Mode in Tmux.",{},"/tmux/copy-mode",{"title":252348,"description":252553},"tmux/copy-mode",[251577,557,5588,251764,89862],"2cX_wJOCEZ6stAFrhb0FmowkFPJNv0yXDPSNPmpeA8E",{"id":252561,"title":252562,"body":252563,"date":2633,"description":252615,"extension":404,"meta":252616,"navigation":61,"order":37,"path":252617,"seo":252618,"stem":252619,"subject":251577,"tags":252620,"__hash__":252621},"topics/tmux/overview.md","Tmux",{"type":8,"value":252564,"toc":252613},[252565],[309,252566,252567,252573,252579,252585,252589,252593,252597,252601,252607],{},[312,252568,252569],{},[145,252570,252572],{"href":252571},"/tmux/session-management","Session Management",[312,252574,252575],{},[145,252576,252578],{"href":252577},"/tmux/window-management","Window Management",[312,252580,252581],{},[145,252582,252584],{"href":252583},"/tmux/pane-management","Pane Management",[312,252586,252587],{},[145,252588,252348],{"href":252555},[312,252590,252591],{},[145,252592,251768],{"href":251898},[312,252594,252595],{},[145,252596,251905],{"href":252341},[312,252598,252599],{},[145,252600,251557],{"href":251760},[312,252602,252603],{},[145,252604,252606],{"href":252605},"/tmux/session-sharing","Session Sharing",[312,252608,252609],{},[145,252610,252612],{"href":252611},"/tmux/useful-key-bindings","Useful Key Bindings",{"title":30,"searchDepth":44,"depth":44,"links":252614},[],"Essential Tmux commands for terminal multiplexing, session management, and window navigation.",{},"/tmux/overview",{"title":252562,"description":252615},"tmux/overview",[251577,557,5588,251764,89862],"Y2ai1tVdAXIkyNg59u3HGIJhs01RS--guPM57NESQiQ",{"id":252623,"title":252584,"body":252624,"date":402,"description":252823,"extension":404,"meta":252824,"navigation":61,"order":65,"path":252583,"seo":252825,"stem":252826,"subject":251577,"tags":252827,"__hash__":252828},"topics/tmux/pane-management.md",{"type":8,"value":252625,"toc":252820},[252626,252629,252818],[11,252627,252584],{"id":252628},"pane-management",[25,252630,252632],{"className":27,"code":252631,"language":29,"meta":30,"style":30},"# Split pane horizontally (top/bottom)\n# Prefix + \"\nCtrl+b \"\n\n# Split pane vertically (left/right)\n# Prefix + %\nCtrl+b %\n\n# Navigate panes\nCtrl+b ←↑↓→   # Arrow keys\nCtrl+b o      # Next pane\nCtrl+b ;      # Last active pane\nCtrl+b q      # Show pane numbers\nCtrl+b q 0-9  # Go to pane number\n\n# Resize panes\nCtrl+b Ctrl+←↑↓→  # Resize in direction\nCtrl+b Alt+←↑↓→   # Resize in larger steps\n\n# Close current pane\n# Prefix + x\nCtrl+b x\n\n# Toggle pane zoom (fullscreen)\n# Prefix + z\nCtrl+b z\n\n# Convert pane to window\n# Prefix + !\nCtrl+b !\n\n# Rotate panes\nCtrl+b Ctrl+o  # Rotate forward\nCtrl+b Alt+o   # Rotate backward\n\n# Toggle pane layouts\n# Prefix + Space\nCtrl+b Space\n",[20,252633,252634,252639,252644,252651,252655,252660,252665,252670,252674,252679,252684,252689,252694,252699,252704,252708,252713,252718,252723,252727,252732,252737,252742,252746,252751,252756,252761,252765,252770,252775,252780,252784,252789,252794,252799,252803,252808,252813],{"__ignoreMap":30},[34,252635,252636],{"class":36,"line":37},[34,252637,252638],{"class":40},"# Split pane horizontally (top/bottom)\n",[34,252640,252641],{"class":36,"line":44},[34,252642,252643],{"class":40},"# Prefix + \"\n",[34,252645,252646,252648],{"class":36,"line":58},[34,252647,251793],{"class":47},[34,252649,252650],{"class":54}," \"\n",[34,252652,252653],{"class":36,"line":65},[34,252654,62],{"emptyLinePlaceholder":61},[34,252656,252657],{"class":36,"line":71},[34,252658,252659],{"class":54},"# Split pane vertically (left/right)\n",[34,252661,252662],{"class":36,"line":77},[34,252663,252664],{"class":54},"# Prefix + %\n",[34,252666,252667],{"class":36,"line":82},[34,252668,252669],{"class":54},"Ctrl+b %\n",[34,252671,252672],{"class":36,"line":88},[34,252673,62],{"emptyLinePlaceholder":61},[34,252675,252676],{"class":36,"line":242},[34,252677,252678],{"class":54},"# Navigate panes\n",[34,252680,252681],{"class":36,"line":250},[34,252682,252683],{"class":54},"Ctrl+b ←↑↓→   # Arrow keys\n",[34,252685,252686],{"class":36,"line":263},[34,252687,252688],{"class":54},"Ctrl+b o      # Next pane\n",[34,252690,252691],{"class":36,"line":275},[34,252692,252693],{"class":54},"Ctrl+b ;      # Last active pane\n",[34,252695,252696],{"class":36,"line":700},[34,252697,252698],{"class":54},"Ctrl+b q      # Show pane numbers\n",[34,252700,252701],{"class":36,"line":706},[34,252702,252703],{"class":54},"Ctrl+b q 0-9  # Go to pane number\n",[34,252705,252706],{"class":36,"line":715},[34,252707,62],{"emptyLinePlaceholder":61},[34,252709,252710],{"class":36,"line":725},[34,252711,252712],{"class":54},"# Resize panes\n",[34,252714,252715],{"class":36,"line":734},[34,252716,252717],{"class":54},"Ctrl+b Ctrl+←↑↓→  # Resize in direction\n",[34,252719,252720],{"class":36,"line":742},[34,252721,252722],{"class":54},"Ctrl+b Alt+←↑↓→   # Resize in larger steps\n",[34,252724,252725],{"class":36,"line":748},[34,252726,62],{"emptyLinePlaceholder":61},[34,252728,252729],{"class":36,"line":754},[34,252730,252731],{"class":54},"# Close current pane\n",[34,252733,252734],{"class":36,"line":759},[34,252735,252736],{"class":54},"# Prefix + x\n",[34,252738,252739],{"class":36,"line":771},[34,252740,252741],{"class":54},"Ctrl+b x\n",[34,252743,252744],{"class":36,"line":794},[34,252745,62],{"emptyLinePlaceholder":61},[34,252747,252748],{"class":36,"line":824},[34,252749,252750],{"class":54},"# Toggle pane zoom (fullscreen)\n",[34,252752,252753],{"class":36,"line":830},[34,252754,252755],{"class":54},"# Prefix + z\n",[34,252757,252758],{"class":36,"line":839},[34,252759,252760],{"class":54},"Ctrl+b z\n",[34,252762,252763],{"class":36,"line":854},[34,252764,62],{"emptyLinePlaceholder":61},[34,252766,252767],{"class":36,"line":860},[34,252768,252769],{"class":54},"# Convert pane to window\n",[34,252771,252772],{"class":36,"line":865},[34,252773,252774],{"class":54},"# Prefix + !\n",[34,252776,252777],{"class":36,"line":870},[34,252778,252779],{"class":54},"Ctrl+b !\n",[34,252781,252782],{"class":36,"line":876},[34,252783,62],{"emptyLinePlaceholder":61},[34,252785,252786],{"class":36,"line":885},[34,252787,252788],{"class":54},"# Rotate panes\n",[34,252790,252791],{"class":36,"line":895},[34,252792,252793],{"class":54},"Ctrl+b Ctrl+o  # Rotate forward\n",[34,252795,252796],{"class":36,"line":904},[34,252797,252798],{"class":54},"Ctrl+b Alt+o   # Rotate backward\n",[34,252800,252801],{"class":36,"line":915},[34,252802,62],{"emptyLinePlaceholder":61},[34,252804,252805],{"class":36,"line":927},[34,252806,252807],{"class":54},"# Toggle pane layouts\n",[34,252809,252810],{"class":36,"line":932},[34,252811,252812],{"class":54},"# Prefix + Space\n",[34,252814,252815],{"class":36,"line":944},[34,252816,252817],{"class":54},"Ctrl+b Space\n",[388,252819,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":252821},[252822],{"id":252628,"depth":44,"text":252584},"Pane Management in Tmux.",{},{"title":252584,"description":252823},"tmux/pane-management",[251577,557,5588,251764,89862],"Vox_r9EMN8bUsfekEcfhyMG3jsaTs0FQhyM1Yepb6wk",{"id":252830,"title":252572,"body":252831,"date":402,"description":253036,"extension":404,"meta":253037,"navigation":61,"order":44,"path":252571,"seo":253038,"stem":253039,"subject":251577,"tags":253040,"__hash__":253041},"topics/tmux/session-management.md",{"type":8,"value":252832,"toc":253033},[252833,252836,253031],[11,252834,252572],{"id":252835},"session-management",[25,252837,252839],{"className":27,"code":252838,"language":29,"meta":30,"style":30},"# Start new session\ntmux\ntmux new\n\n# Start new named session\ntmux new -s mysession\n\n# List sessions\ntmux ls\ntmux list-sessions\n\n# Attach to last session\ntmux attach\ntmux a\n\n# Attach to named session\ntmux attach -t mysession\ntmux a -t mysession\n\n# Kill session\ntmux kill-session -t mysession\n\n# Kill all sessions\ntmux kill-server\n\n# Detach from session (inside tmux)\n# Prefix + d\nCtrl+b d\n\n# Rename current session\n# Prefix + $\nCtrl+b $\n",[20,252840,252841,252846,252851,252858,252862,252867,252878,252882,252887,252893,252900,252904,252909,252916,252923,252927,252932,252943,252953,252957,252962,252973,252977,252982,252989,252993,252998,253003,253010,253014,253019,253024],{"__ignoreMap":30},[34,252842,252843],{"class":36,"line":37},[34,252844,252845],{"class":40},"# Start new session\n",[34,252847,252848],{"class":36,"line":44},[34,252849,252850],{"class":47},"tmux\n",[34,252852,252853,252855],{"class":36,"line":58},[34,252854,251577],{"class":47},[34,252856,252857],{"class":54}," new\n",[34,252859,252860],{"class":36,"line":65},[34,252861,62],{"emptyLinePlaceholder":61},[34,252863,252864],{"class":36,"line":71},[34,252865,252866],{"class":40},"# Start new named session\n",[34,252868,252869,252871,252873,252875],{"class":36,"line":77},[34,252870,251577],{"class":47},[34,252872,809],{"class":54},[34,252874,5487],{"class":50},[34,252876,252877],{"class":54}," mysession\n",[34,252879,252880],{"class":36,"line":82},[34,252881,62],{"emptyLinePlaceholder":61},[34,252883,252884],{"class":36,"line":88},[34,252885,252886],{"class":40},"# List sessions\n",[34,252888,252889,252891],{"class":36,"line":242},[34,252890,251577],{"class":47},[34,252892,8791],{"class":54},[34,252894,252895,252897],{"class":36,"line":250},[34,252896,251577],{"class":47},[34,252898,252899],{"class":54}," list-sessions\n",[34,252901,252902],{"class":36,"line":263},[34,252903,62],{"emptyLinePlaceholder":61},[34,252905,252906],{"class":36,"line":275},[34,252907,252908],{"class":40},"# Attach to last session\n",[34,252910,252911,252913],{"class":36,"line":700},[34,252912,251577],{"class":47},[34,252914,252915],{"class":54}," attach\n",[34,252917,252918,252920],{"class":36,"line":706},[34,252919,251577],{"class":47},[34,252921,252922],{"class":54}," a\n",[34,252924,252925],{"class":36,"line":715},[34,252926,62],{"emptyLinePlaceholder":61},[34,252928,252929],{"class":36,"line":725},[34,252930,252931],{"class":40},"# Attach to named session\n",[34,252933,252934,252936,252939,252941],{"class":36,"line":734},[34,252935,251577],{"class":47},[34,252937,252938],{"class":54}," attach",[34,252940,11256],{"class":50},[34,252942,252877],{"class":54},[34,252944,252945,252947,252949,252951],{"class":36,"line":742},[34,252946,251577],{"class":47},[34,252948,19385],{"class":54},[34,252950,11256],{"class":50},[34,252952,252877],{"class":54},[34,252954,252955],{"class":36,"line":748},[34,252956,62],{"emptyLinePlaceholder":61},[34,252958,252959],{"class":36,"line":754},[34,252960,252961],{"class":40},"# Kill session\n",[34,252963,252964,252966,252969,252971],{"class":36,"line":759},[34,252965,251577],{"class":47},[34,252967,252968],{"class":54}," kill-session",[34,252970,11256],{"class":50},[34,252972,252877],{"class":54},[34,252974,252975],{"class":36,"line":771},[34,252976,62],{"emptyLinePlaceholder":61},[34,252978,252979],{"class":36,"line":794},[34,252980,252981],{"class":40},"# Kill all sessions\n",[34,252983,252984,252986],{"class":36,"line":824},[34,252985,251577],{"class":47},[34,252987,252988],{"class":54}," kill-server\n",[34,252990,252991],{"class":36,"line":830},[34,252992,62],{"emptyLinePlaceholder":61},[34,252994,252995],{"class":36,"line":839},[34,252996,252997],{"class":40},"# Detach from session (inside tmux)\n",[34,252999,253000],{"class":36,"line":854},[34,253001,253002],{"class":40},"# Prefix + d\n",[34,253004,253005,253007],{"class":36,"line":860},[34,253006,251793],{"class":47},[34,253008,253009],{"class":54}," d\n",[34,253011,253012],{"class":36,"line":865},[34,253013,62],{"emptyLinePlaceholder":61},[34,253015,253016],{"class":36,"line":870},[34,253017,253018],{"class":40},"# Rename current session\n",[34,253020,253021],{"class":36,"line":876},[34,253022,253023],{"class":40},"# Prefix + $\n",[34,253025,253026,253028],{"class":36,"line":885},[34,253027,251793],{"class":47},[34,253029,253030],{"class":181}," $\n",[388,253032,121226],{},{"title":30,"searchDepth":44,"depth":44,"links":253034},[253035],{"id":252835,"depth":44,"text":252572},"Session Management in Tmux.",{},{"title":252572,"description":253036},"tmux/session-management",[251577,557,5588,251764,89862],"j0s8drp8B7hh_JXSkfgp1FVLrS4wwCFOFHKDKaySpdM",{"id":253043,"title":252606,"body":253044,"date":402,"description":253144,"extension":404,"meta":253145,"navigation":61,"order":242,"path":252605,"seo":253146,"stem":253147,"subject":251577,"tags":253148,"__hash__":253149},"topics/tmux/session-sharing.md",{"type":8,"value":253045,"toc":253141},[253046,253049,253139],[11,253047,252606],{"id":253048},"session-sharing",[25,253050,253052],{"className":27,"code":253051,"language":29,"meta":30,"style":30},"# Create shared socket\ntmux -S /tmp/shared new -s shared\n\n# Set permissions for sharing\nchmod 777 /tmp/shared\n\n# Another user attaches\ntmux -S /tmp/shared attach -t shared\n\n# Read-only attach\ntmux attach -t mysession -r\n",[20,253053,253054,253059,253075,253079,253084,253094,253098,253103,253117,253121,253126],{"__ignoreMap":30},[34,253055,253056],{"class":36,"line":37},[34,253057,253058],{"class":40},"# Create shared socket\n",[34,253060,253061,253063,253065,253068,253070,253072],{"class":36,"line":44},[34,253062,251577],{"class":47},[34,253064,7773],{"class":50},[34,253066,253067],{"class":54}," /tmp/shared",[34,253069,809],{"class":54},[34,253071,5487],{"class":50},[34,253073,253074],{"class":54}," shared\n",[34,253076,253077],{"class":36,"line":58},[34,253078,62],{"emptyLinePlaceholder":61},[34,253080,253081],{"class":36,"line":65},[34,253082,253083],{"class":40},"# Set permissions for sharing\n",[34,253085,253086,253088,253091],{"class":36,"line":71},[34,253087,13281],{"class":47},[34,253089,253090],{"class":50}," 777",[34,253092,253093],{"class":54}," /tmp/shared\n",[34,253095,253096],{"class":36,"line":77},[34,253097,62],{"emptyLinePlaceholder":61},[34,253099,253100],{"class":36,"line":82},[34,253101,253102],{"class":40},"# Another user attaches\n",[34,253104,253105,253107,253109,253111,253113,253115],{"class":36,"line":88},[34,253106,251577],{"class":47},[34,253108,7773],{"class":50},[34,253110,253067],{"class":54},[34,253112,252938],{"class":54},[34,253114,11256],{"class":50},[34,253116,253074],{"class":54},[34,253118,253119],{"class":36,"line":242},[34,253120,62],{"emptyLinePlaceholder":61},[34,253122,253123],{"class":36,"line":250},[34,253124,253125],{"class":40},"# Read-only attach\n",[34,253127,253128,253130,253132,253134,253137],{"class":36,"line":263},[34,253129,251577],{"class":47},[34,253131,252938],{"class":54},[34,253133,11256],{"class":50},[34,253135,253136],{"class":54}," mysession",[34,253138,168671],{"class":50},[388,253140,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":253142},[253143],{"id":253048,"depth":44,"text":252606},"Session Sharing in Tmux.",{},{"title":252606,"description":253144},"tmux/session-sharing",[251577,557,5588,251764,89862],"8BpR0vyqTjNKOecsI2rrcu_RcdIS8d2sp2pR_s8hyS8",{"id":253151,"title":252612,"body":253152,"date":402,"description":253251,"extension":404,"meta":253252,"navigation":61,"order":250,"path":252611,"seo":253253,"stem":253254,"subject":251577,"tags":253255,"__hash__":253256},"topics/tmux/useful-key-bindings.md",{"type":8,"value":253153,"toc":253248},[253154,253157,253245],[11,253155,252612],{"id":253156},"useful-key-bindings",[25,253158,253160],{"className":27,"code":253159,"language":29,"meta":30,"style":30},"Ctrl+b ?      # List all key bindings\nCtrl+b t      # Show clock\nCtrl+b i      # Display window info\nCtrl+b ~      # Show messages\nCtrl+b s      # List sessions interactively\nCtrl+b (      # Switch to previous session\nCtrl+b )      # Switch to next session\nCtrl+b L      # Switch to last session\nCtrl+b D      # Choose client to detach\n",[20,253161,253162,253171,253180,253189,253198,253207,253217,253227,253236],{"__ignoreMap":30},[34,253163,253164,253166,253168],{"class":36,"line":37},[34,253165,251793],{"class":47},[34,253167,131598],{"class":54},[34,253169,253170],{"class":40},"      # List all key bindings\n",[34,253172,253173,253175,253177],{"class":36,"line":44},[34,253174,251793],{"class":47},[34,253176,130878],{"class":54},[34,253178,253179],{"class":40},"      # Show clock\n",[34,253181,253182,253184,253186],{"class":36,"line":58},[34,253183,251793],{"class":47},[34,253185,13765],{"class":54},[34,253187,253188],{"class":40},"      # Display window info\n",[34,253190,253191,253193,253195],{"class":36,"line":65},[34,253192,251793],{"class":47},[34,253194,41485],{"class":54},[34,253196,253197],{"class":40},"      # Show messages\n",[34,253199,253200,253202,253204],{"class":36,"line":71},[34,253201,251793],{"class":47},[34,253203,34803],{"class":54},[34,253205,253206],{"class":40},"      # List sessions interactively\n",[34,253208,253209,253211,253214],{"class":36,"line":77},[34,253210,251793],{"class":47},[34,253212,253213],{"class":181}," (      ",[34,253215,253216],{"class":40},"# Switch to previous session\n",[34,253218,253219,253221,253224],{"class":36,"line":82},[34,253220,251793],{"class":47},[34,253222,253223],{"class":181}," )      ",[34,253225,253226],{"class":40},"# Switch to next session\n",[34,253228,253229,253231,253233],{"class":36,"line":88},[34,253230,251793],{"class":47},[34,253232,11750],{"class":54},[34,253234,253235],{"class":40},"      # Switch to last session\n",[34,253237,253238,253240,253242],{"class":36,"line":242},[34,253239,251793],{"class":47},[34,253241,11738],{"class":54},[34,253243,253244],{"class":40},"      # Choose client to detach\n",[388,253246,253247],{},"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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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":30,"searchDepth":44,"depth":44,"links":253249},[253250],{"id":253156,"depth":44,"text":252612},"Useful Key Bindings in Tmux.",{},{"title":252612,"description":253251},"tmux/useful-key-bindings",[251577,557,5588,251764,89862],"dg04VGlQMilAND980IbsEErCbh9pksRyh5wd-fBA6xw",{"id":253258,"title":252578,"body":253259,"date":402,"description":253461,"extension":404,"meta":253462,"navigation":61,"order":58,"path":252577,"seo":253463,"stem":253464,"subject":251577,"tags":253465,"__hash__":253466},"topics/tmux/window-management.md",{"type":8,"value":253260,"toc":253458},[253261,253264,253456],[11,253262,252578],{"id":253263},"window-management",[25,253265,253267],{"className":27,"code":253266,"language":29,"meta":30,"style":30},"# Create new window\n# Prefix + c\nCtrl+b c\n\n# Rename current window\n# Prefix + ,\nCtrl+b ,\n\n# Close current window\n# Prefix + &\nCtrl+b &\n\n# Navigate windows\nCtrl+b n    # Next window\nCtrl+b p    # Previous window\nCtrl+b 0-9  # Go to window number\n\n# List windows\n# Prefix + w\nCtrl+b w\n\n# Find window\n# Prefix + f\nCtrl+b f\n\n# Move window\ntmux move-window -t 3         # Move to position 3\ntmux swap-window -t -1        # Move window left\ntmux swap-window -t +1        # Move window right\n",[20,253268,253269,253274,253279,253286,253290,253295,253300,253307,253311,253316,253321,253327,253331,253336,253345,253354,253364,253368,253373,253378,253384,253388,253393,253398,253405,253409,253414,253428,253442],{"__ignoreMap":30},[34,253270,253271],{"class":36,"line":37},[34,253272,253273],{"class":40},"# Create new window\n",[34,253275,253276],{"class":36,"line":44},[34,253277,253278],{"class":40},"# Prefix + c\n",[34,253280,253281,253283],{"class":36,"line":58},[34,253282,251793],{"class":47},[34,253284,253285],{"class":54}," c\n",[34,253287,253288],{"class":36,"line":65},[34,253289,62],{"emptyLinePlaceholder":61},[34,253291,253292],{"class":36,"line":71},[34,253293,253294],{"class":40},"# Rename current window\n",[34,253296,253297],{"class":36,"line":77},[34,253298,253299],{"class":40},"# Prefix + ,\n",[34,253301,253302,253304],{"class":36,"line":82},[34,253303,251793],{"class":47},[34,253305,253306],{"class":54}," ,\n",[34,253308,253309],{"class":36,"line":88},[34,253310,62],{"emptyLinePlaceholder":61},[34,253312,253313],{"class":36,"line":242},[34,253314,253315],{"class":40},"# Close current window\n",[34,253317,253318],{"class":36,"line":250},[34,253319,253320],{"class":40},"# Prefix + &\n",[34,253322,253323,253325],{"class":36,"line":263},[34,253324,251793],{"class":47},[34,253326,12247],{"class":181},[34,253328,253329],{"class":36,"line":275},[34,253330,62],{"emptyLinePlaceholder":61},[34,253332,253333],{"class":36,"line":700},[34,253334,253335],{"class":40},"# Navigate windows\n",[34,253337,253338,253340,253342],{"class":36,"line":706},[34,253339,251793],{"class":47},[34,253341,21959],{"class":54},[34,253343,253344],{"class":40},"    # Next window\n",[34,253346,253347,253349,253351],{"class":36,"line":715},[34,253348,251793],{"class":47},[34,253350,41445],{"class":54},[34,253352,253353],{"class":40},"    # Previous window\n",[34,253355,253356,253358,253361],{"class":36,"line":725},[34,253357,251793],{"class":47},[34,253359,253360],{"class":54}," 0-9",[34,253362,253363],{"class":40},"  # Go to window number\n",[34,253365,253366],{"class":36,"line":734},[34,253367,62],{"emptyLinePlaceholder":61},[34,253369,253370],{"class":36,"line":742},[34,253371,253372],{"class":40},"# List windows\n",[34,253374,253375],{"class":36,"line":748},[34,253376,253377],{"class":40},"# Prefix + w\n",[34,253379,253380,253382],{"class":36,"line":754},[34,253381,251793],{"class":47},[34,253383,49729],{"class":54},[34,253385,253386],{"class":36,"line":759},[34,253387,62],{"emptyLinePlaceholder":61},[34,253389,253390],{"class":36,"line":771},[34,253391,253392],{"class":40},"# Find window\n",[34,253394,253395],{"class":36,"line":794},[34,253396,253397],{"class":40},"# Prefix + f\n",[34,253399,253400,253402],{"class":36,"line":824},[34,253401,251793],{"class":47},[34,253403,253404],{"class":54}," f\n",[34,253406,253407],{"class":36,"line":830},[34,253408,62],{"emptyLinePlaceholder":61},[34,253410,253411],{"class":36,"line":839},[34,253412,253413],{"class":40},"# Move window\n",[34,253415,253416,253418,253421,253423,253425],{"class":36,"line":854},[34,253417,251577],{"class":47},[34,253419,253420],{"class":54}," move-window",[34,253422,11256],{"class":50},[34,253424,11147],{"class":50},[34,253426,253427],{"class":40},"         # Move to position 3\n",[34,253429,253430,253432,253435,253437,253439],{"class":36,"line":860},[34,253431,251577],{"class":47},[34,253433,253434],{"class":54}," swap-window",[34,253436,11256],{"class":50},[34,253438,204445],{"class":50},[34,253440,253441],{"class":40},"        # Move window left\n",[34,253443,253444,253446,253448,253450,253453],{"class":36,"line":865},[34,253445,251577],{"class":47},[34,253447,253434],{"class":54},[34,253449,11256],{"class":50},[34,253451,253452],{"class":54}," +1",[34,253454,253455],{"class":40},"        # Move window right\n",[388,253457,6951],{},{"title":30,"searchDepth":44,"depth":44,"links":253459},[253460],{"id":253263,"depth":44,"text":252578},"Window Management in Tmux.",{},{"title":252578,"description":253461},"tmux/window-management",[251577,557,5588,251764,89862],"UkoEUZfI7ZCsSsRKKbWQllCnqwFCe3gRjIBJFIE9fVE",{"id":253468,"title":253469,"body":253470,"date":402,"description":253676,"extension":404,"meta":253677,"navigation":61,"order":37,"path":253678,"seo":253679,"stem":253680,"subject":253681,"tags":253682,"__hash__":253684},"topics/tokei/overview.md","Tokei",{"type":8,"value":253471,"toc":253662},[253472,253476,253479,253495,253503,253505,253507,253520,253523,253527,253535,253539,253543,253559,253563,253583,253587,253607,253627,253631,253642,253644,253660],[11,253473,253475],{"id":253474},"what-is-tokei","What is Tokei?",[16,253477,253478],{},"Tokei is a powerful command-line tool that provides detailed insights into the composition of your codebase. It calculates the number of files, code lines, and language statistics with precision.",[25,253480,253482],{"className":27,"code":253481,"language":29,"meta":30,"style":30},"# Basic usage\n$ tokei\n",[20,253483,253484,253488],{"__ignoreMap":30},[34,253485,253486],{"class":36,"line":37},[34,253487,88834],{"class":40},[34,253489,253490,253492],{"class":36,"line":44},[34,253491,11676],{"class":47},[34,253493,253494],{"class":54}," tokei\n",[309,253496,253497,253500],{},[312,253498,253499],{},"Quickly analyze entire repositories.",[312,253501,253502],{},"Advanced breakdown of language usage and line counts.",[11,253504,97],{"id":96},[102,253506,88904],{"id":88903},[25,253508,253510],{"className":27,"code":253509,"language":29,"meta":30,"style":30},"cargo install tokei\n",[20,253511,253512],{"__ignoreMap":30},[34,253513,253514,253516,253518],{"class":36,"line":37},[34,253515,88917],{"class":47},[34,253517,118],{"class":54},[34,253519,253494],{"class":54},[16,253521,253522],{},"Ensure Rust is installed before proceeding with Cargo.",[102,253524,253526],{"id":253525},"precompiled-binaries","Precompiled Binaries",[16,253528,253529,253530,151],{},"Download precompiled binaries from the ",[145,253531,253534],{"href":253532,"rel":253533},"https://github.com/XAMPPRocky/tokei/releases",[149],"official repository",[11,253536,253538],{"id":253537},"essential-commands-and-examples","Essential Commands and Examples",[102,253540,253542],{"id":253541},"analyze-current-directory","Analyze Current Directory",[25,253544,253546],{"className":27,"code":253545,"language":29,"meta":30,"style":30},"# Count language stats in your current directory\n$ tokei\n",[20,253547,253548,253553],{"__ignoreMap":30},[34,253549,253550],{"class":36,"line":37},[34,253551,253552],{"class":40},"# Count language stats in your current directory\n",[34,253554,253555,253557],{"class":36,"line":44},[34,253556,11676],{"class":47},[34,253558,253494],{"class":54},[102,253560,253562],{"id":253561},"analyze-specific-directory","Analyze Specific Directory",[25,253564,253566],{"className":27,"code":253565,"language":29,"meta":30,"style":30},"# Count stats in a specific folder\n$ tokei /path/to/code\n",[20,253567,253568,253573],{"__ignoreMap":30},[34,253569,253570],{"class":36,"line":37},[34,253571,253572],{"class":40},"# Count stats in a specific folder\n",[34,253574,253575,253577,253580],{"class":36,"line":44},[34,253576,11676],{"class":47},[34,253578,253579],{"class":54}," tokei",[34,253581,253582],{"class":54}," /path/to/code\n",[102,253584,253586],{"id":253585},"output-formats","Output Formats",[25,253588,253590],{"className":27,"code":253589,"language":29,"meta":30,"style":30},"# Generate JSON output for further processing\n$ tokei -o json\n",[20,253591,253592,253597],{"__ignoreMap":30},[34,253593,253594],{"class":36,"line":37},[34,253595,253596],{"class":40},"# Generate JSON output for further processing\n",[34,253598,253599,253601,253603,253605],{"class":36,"line":44},[34,253600,11676],{"class":47},[34,253602,253579],{"class":54},[34,253604,8654],{"class":50},[34,253606,133022],{"class":54},[25,253608,253610],{"className":27,"code":253609,"language":29,"meta":30,"style":30},"# Generate YAML output\n$ tokei -o yaml\n",[20,253611,253612,253617],{"__ignoreMap":30},[34,253613,253614],{"class":36,"line":37},[34,253615,253616],{"class":40},"# Generate YAML output\n",[34,253618,253619,253621,253623,253625],{"class":36,"line":44},[34,253620,11676],{"class":47},[34,253622,253579],{"class":54},[34,253624,8654],{"class":50},[34,253626,139378],{"class":54},[11,253628,253630],{"id":253629},"benefits-of-using-tokei","Benefits of Using Tokei",[309,253632,253633,253636,253639],{},[312,253634,253635],{},"Comprehensive codebase breakdown.",[312,253637,253638],{},"Supports a wide range of programming languages.",[312,253640,253641],{},"Lightweight and blazing fast.",[11,253643,28203],{"id":28202},[309,253645,253646,253653],{},[312,253647,253648],{},[145,253649,253652],{"href":253650,"rel":253651},"https://github.com/XAMPPRocky/tokei",[149],"Tokei on GitHub",[312,253654,253655],{},[145,253656,253659],{"href":253657,"rel":253658},"https://crates.io/crates/tokei",[149],"Cargo Crate",[388,253661,120763],{},{"title":30,"searchDepth":44,"depth":44,"links":253663},[253664,253665,253669,253674,253675],{"id":253474,"depth":44,"text":253475},{"id":96,"depth":44,"text":97,"children":253666},[253667,253668],{"id":88903,"depth":58,"text":88904},{"id":253525,"depth":58,"text":253526},{"id":253537,"depth":44,"text":253538,"children":253670},[253671,253672,253673],{"id":253541,"depth":58,"text":253542},{"id":253561,"depth":58,"text":253562},{"id":253585,"depth":58,"text":253586},{"id":253629,"depth":44,"text":253630},{"id":28202,"depth":44,"text":28203},"Codebase statistics powered by Tokei; visualize languages, file counts, and lines instantly.",{},"/tokei/overview",{"title":253469,"description":253676},"tokei/overview","tokei",[253681,253683,75273],"code-statistics","bHlTDVM7sIpLjolm-0ota_A377kmq-PEqhKDKu9wDfQ",{"id":253686,"title":253687,"body":253688,"date":402,"description":253881,"extension":404,"meta":253882,"navigation":61,"order":82,"path":253883,"seo":253884,"stem":253885,"subject":14516,"tags":253886,"__hash__":253887},"topics/toml/array-of-tables.md","Array of Tables",{"type":8,"value":253689,"toc":253878},[253690,253693,253876],[11,253691,253687],{"id":253692},"array-of-tables",[25,253694,253696],{"className":14514,"code":253695,"language":14516,"meta":30,"style":30},"# Double brackets for array of tables (repeated sections)\n[[products]]\nname = \"Hammer\"\nsku = 738594937\n\n[[products]]\nname = \"Nail\"\nsku = 284758393\ncolor = \"gray\"\n\n# Nested array of tables\n[[fruits]]\nname = \"apple\"\n\n[[fruits.varieties]]\nname = \"red delicious\"\n\n[[fruits.varieties]]\nname = \"granny smith\"\n\n[[fruits]]\nname = \"banana\"\n\n[[fruits.varieties]]\nname = \"plantain\"\n",[20,253697,253698,253703,253713,253721,253729,253733,253741,253748,253755,253763,253767,253772,253780,253787,253791,253804,253811,253815,253827,253834,253838,253846,253853,253857,253869],{"__ignoreMap":30},[34,253699,253700],{"class":36,"line":37},[34,253701,253702],{"class":40},"# Double brackets for array of tables (repeated sections)\n",[34,253704,253705,253708,253711],{"class":36,"line":44},[34,253706,253707],{"class":181},"[[",[34,253709,253710],{"class":47},"products",[34,253712,127730],{"class":181},[34,253714,253715,253718],{"class":36,"line":58},[34,253716,253717],{"class":181},"name = ",[34,253719,253720],{"class":54},"\"Hammer\"\n",[34,253722,253723,253726],{"class":36,"line":65},[34,253724,253725],{"class":181},"sku = ",[34,253727,253728],{"class":50},"738594937\n",[34,253730,253731],{"class":36,"line":71},[34,253732,62],{"emptyLinePlaceholder":61},[34,253734,253735,253737,253739],{"class":36,"line":77},[34,253736,253707],{"class":181},[34,253738,253710],{"class":47},[34,253740,127730],{"class":181},[34,253742,253743,253745],{"class":36,"line":82},[34,253744,253717],{"class":181},[34,253746,253747],{"class":54},"\"Nail\"\n",[34,253749,253750,253752],{"class":36,"line":88},[34,253751,253725],{"class":181},[34,253753,253754],{"class":50},"284758393\n",[34,253756,253757,253760],{"class":36,"line":242},[34,253758,253759],{"class":181},"color = ",[34,253761,253762],{"class":54},"\"gray\"\n",[34,253764,253765],{"class":36,"line":250},[34,253766,62],{"emptyLinePlaceholder":61},[34,253768,253769],{"class":36,"line":263},[34,253770,253771],{"class":40},"# Nested array of tables\n",[34,253773,253774,253776,253778],{"class":36,"line":275},[34,253775,253707],{"class":181},[34,253777,10081],{"class":47},[34,253779,127730],{"class":181},[34,253781,253782,253784],{"class":36,"line":700},[34,253783,253717],{"class":181},[34,253785,253786],{"class":54},"\"apple\"\n",[34,253788,253789],{"class":36,"line":706},[34,253790,62],{"emptyLinePlaceholder":61},[34,253792,253793,253795,253797,253799,253802],{"class":36,"line":715},[34,253794,253707],{"class":181},[34,253796,10081],{"class":47},[34,253798,151],{"class":181},[34,253800,253801],{"class":47},"varieties",[34,253803,127730],{"class":181},[34,253805,253806,253808],{"class":36,"line":725},[34,253807,253717],{"class":181},[34,253809,253810],{"class":54},"\"red delicious\"\n",[34,253812,253813],{"class":36,"line":734},[34,253814,62],{"emptyLinePlaceholder":61},[34,253816,253817,253819,253821,253823,253825],{"class":36,"line":742},[34,253818,253707],{"class":181},[34,253820,10081],{"class":47},[34,253822,151],{"class":181},[34,253824,253801],{"class":47},[34,253826,127730],{"class":181},[34,253828,253829,253831],{"class":36,"line":748},[34,253830,253717],{"class":181},[34,253832,253833],{"class":54},"\"granny smith\"\n",[34,253835,253836],{"class":36,"line":754},[34,253837,62],{"emptyLinePlaceholder":61},[34,253839,253840,253842,253844],{"class":36,"line":759},[34,253841,253707],{"class":181},[34,253843,10081],{"class":47},[34,253845,127730],{"class":181},[34,253847,253848,253850],{"class":36,"line":771},[34,253849,253717],{"class":181},[34,253851,253852],{"class":54},"\"banana\"\n",[34,253854,253855],{"class":36,"line":794},[34,253856,62],{"emptyLinePlaceholder":61},[34,253858,253859,253861,253863,253865,253867],{"class":36,"line":824},[34,253860,253707],{"class":181},[34,253862,10081],{"class":47},[34,253864,151],{"class":181},[34,253866,253801],{"class":47},[34,253868,127730],{"class":181},[34,253870,253871,253873],{"class":36,"line":830},[34,253872,253717],{"class":181},[34,253874,253875],{"class":54},"\"plantain\"\n",[388,253877,14643],{},{"title":30,"searchDepth":44,"depth":44,"links":253879},[253880],{"id":253692,"depth":44,"text":253687},"Array of Tables in TOML.",{},"/toml/array-of-tables",{"title":253687,"description":253881},"toml/array-of-tables",[14516,94338,558,115806],"fi9vXGE2xrGS1TVW4OJ3O_wK1jC7yt0G8qHfjSo7xVw",{"id":253889,"title":10061,"body":253890,"date":402,"description":254057,"extension":404,"meta":254058,"navigation":61,"order":65,"path":254059,"seo":254060,"stem":254061,"subject":14516,"tags":254062,"__hash__":254063},"topics/toml/arrays.md",{"type":8,"value":253891,"toc":254054},[253892,253894,254052],[11,253893,10061],{"id":10066},[25,253895,253897],{"className":14514,"code":253896,"language":14516,"meta":30,"style":30},"# Simple arrays (homogeneous)\ncolors = [\"red\", \"green\", \"blue\"]\nnumbers = [1, 2, 3, 4, 5]\n\n# Multiline arrays\ncontributors = [\n  \"John Doe\",\n  \"Jane Smith\",\n  \"Bob Johnson\"\n]\n\n# Nested arrays\nmatrix = [[1, 2], [3, 4], [5, 6]]\n\n# Mixed types (if all are compatible)\nmixed = [1, 2.0, 3]                          # integers and floats ok together\n",[20,253898,253899,253904,253921,253946,253950,253955,253960,253967,253974,253979,253983,253987,253992,254021,254025,254030],{"__ignoreMap":30},[34,253900,253901],{"class":36,"line":37},[34,253902,253903],{"class":40},"# Simple arrays (homogeneous)\n",[34,253905,253906,253909,253911,253913,253915,253917,253919],{"class":36,"line":44},[34,253907,253908],{"class":181},"colors = [",[34,253910,143262],{"class":54},[34,253912,1798],{"class":181},[34,253914,143267],{"class":54},[34,253916,1798],{"class":181},[34,253918,143272],{"class":54},[34,253920,924],{"class":181},[34,253922,253923,253926,253928,253930,253932,253934,253936,253938,253940,253942,253944],{"class":36,"line":58},[34,253924,253925],{"class":181},"numbers = [",[34,253927,8318],{"class":50},[34,253929,1798],{"class":181},[34,253931,8324],{"class":50},[34,253933,1798],{"class":181},[34,253935,3162],{"class":50},[34,253937,1798],{"class":181},[34,253939,18010],{"class":50},[34,253941,1798],{"class":181},[34,253943,2778],{"class":50},[34,253945,924],{"class":181},[34,253947,253948],{"class":36,"line":65},[34,253949,62],{"emptyLinePlaceholder":61},[34,253951,253952],{"class":36,"line":71},[34,253953,253954],{"class":40},"# Multiline arrays\n",[34,253956,253957],{"class":36,"line":77},[34,253958,253959],{"class":181},"contributors = [\n",[34,253961,253962,253965],{"class":36,"line":82},[34,253963,253964],{"class":54},"  \"John Doe\"",[34,253966,624],{"class":181},[34,253968,253969,253972],{"class":36,"line":88},[34,253970,253971],{"class":54},"  \"Jane Smith\"",[34,253973,624],{"class":181},[34,253975,253976],{"class":36,"line":242},[34,253977,253978],{"class":54},"  \"Bob Johnson\"\n",[34,253980,253981],{"class":36,"line":250},[34,253982,924],{"class":181},[34,253984,253985],{"class":36,"line":263},[34,253986,62],{"emptyLinePlaceholder":61},[34,253988,253989],{"class":36,"line":275},[34,253990,253991],{"class":40},"# Nested arrays\n",[34,253993,253994,253997,253999,254001,254003,254005,254007,254009,254011,254013,254015,254017,254019],{"class":36,"line":700},[34,253995,253996],{"class":181},"matrix = [[",[34,253998,8318],{"class":50},[34,254000,1798],{"class":181},[34,254002,8324],{"class":50},[34,254004,127721],{"class":181},[34,254006,3162],{"class":50},[34,254008,1798],{"class":181},[34,254010,18010],{"class":50},[34,254012,127721],{"class":181},[34,254014,2778],{"class":50},[34,254016,1798],{"class":181},[34,254018,18019],{"class":50},[34,254020,127730],{"class":181},[34,254022,254023],{"class":36,"line":706},[34,254024,62],{"emptyLinePlaceholder":61},[34,254026,254027],{"class":36,"line":715},[34,254028,254029],{"class":40},"# Mixed types (if all are compatible)\n",[34,254031,254032,254035,254037,254039,254042,254044,254046,254049],{"class":36,"line":725},[34,254033,254034],{"class":181},"mixed = [",[34,254036,8318],{"class":50},[34,254038,1798],{"class":181},[34,254040,254041],{"class":50},"2.0",[34,254043,1798],{"class":181},[34,254045,3162],{"class":50},[34,254047,254048],{"class":181},"]                          ",[34,254050,254051],{"class":40},"# integers and floats ok together\n",[388,254053,145361],{},{"title":30,"searchDepth":44,"depth":44,"links":254055},[254056],{"id":10066,"depth":44,"text":10061},"Arrays in TOML.",{},"/toml/arrays",{"title":10061,"description":254057},"toml/arrays",[14516,94338,558,115806],"22XPN9_lrjrNGHpDhfM3RkOk6b2B0tWMh1-4KtB_QWw",{"id":254065,"title":33160,"body":254066,"date":402,"description":254105,"extension":404,"meta":254106,"navigation":61,"order":44,"path":254107,"seo":254108,"stem":254109,"subject":14516,"tags":254110,"__hash__":254111},"topics/toml/basic-syntax.md",{"type":8,"value":254067,"toc":254102},[254068,254070,254099],[11,254069,33160],{"id":33159},[25,254071,254073],{"className":14514,"code":254072,"language":14516,"meta":30,"style":30},"# Comments start with #\n# Key-value pairs use = with no quotes around keys\ntitle = \"TOML Example\"\nname = \"Tom Preston-Werner\"\n",[20,254074,254075,254079,254084,254092],{"__ignoreMap":30},[34,254076,254077],{"class":36,"line":37},[34,254078,120872],{"class":40},[34,254080,254081],{"class":36,"line":44},[34,254082,254083],{"class":40},"# Key-value pairs use = with no quotes around keys\n",[34,254085,254086,254089],{"class":36,"line":58},[34,254087,254088],{"class":181},"title = ",[34,254090,254091],{"class":54},"\"TOML Example\"\n",[34,254093,254094,254096],{"class":36,"line":65},[34,254095,253717],{"class":181},[34,254097,254098],{"class":54},"\"Tom Preston-Werner\"\n",[388,254100,254101],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .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":30,"searchDepth":44,"depth":44,"links":254103},[254104],{"id":33159,"depth":44,"text":33160},"Basic Syntax in TOML.",{},"/toml/basic-syntax",{"title":33160,"description":254105},"toml/basic-syntax",[14516,94338,558,115806],"mChyAMvpn2Sq13AKkdb9YefmjIAKghpGtIJSmbqNumY",{"id":254113,"title":5595,"body":254114,"date":402,"description":254266,"extension":404,"meta":254267,"navigation":61,"order":250,"path":254268,"seo":254269,"stem":254270,"subject":14516,"tags":254271,"__hash__":254272},"topics/toml/best-practices.md",{"type":8,"value":254115,"toc":254263},[254116,254118,254261],[11,254117,5595],{"id":5600},[25,254119,254121],{"className":14514,"code":254120,"language":14516,"meta":30,"style":30},"# Group related settings in tables\n[server]\nhost = \"0.0.0.0\"\nport = 8080\n\n# Use arrays of tables for lists of similar items\n[[users]]\nname = \"admin\"\nrole = \"administrator\"\n\n[[users]]\nname = \"guest\"\nrole = \"viewer\"\n\n# Use inline tables for simple nested data\ntheme = { primary = \"#3490dc\", secondary = \"#ffed4e\" }\n\n# Use multiline strings for long text\ndescription = \"\"\"\nThis is a long description that spans\nmultiple lines for better readability.\"\"\"\n",[20,254122,254123,254128,254136,254144,254152,254156,254161,254169,254176,254184,254188,254196,254203,254210,254214,254219,254235,254239,254244,254251,254256],{"__ignoreMap":30},[34,254124,254125],{"class":36,"line":37},[34,254126,254127],{"class":40},"# Group related settings in tables\n",[34,254129,254130,254132,254134],{"class":36,"line":44},[34,254131,10260],{"class":181},[34,254133,15678],{"class":47},[34,254135,924],{"class":181},[34,254137,254138,254141],{"class":36,"line":58},[34,254139,254140],{"class":181},"host = ",[34,254142,254143],{"class":54},"\"0.0.0.0\"\n",[34,254145,254146,254149],{"class":36,"line":65},[34,254147,254148],{"class":181},"port = ",[34,254150,254151],{"class":50},"8080\n",[34,254153,254154],{"class":36,"line":71},[34,254155,62],{"emptyLinePlaceholder":61},[34,254157,254158],{"class":36,"line":77},[34,254159,254160],{"class":40},"# Use arrays of tables for lists of similar items\n",[34,254162,254163,254165,254167],{"class":36,"line":82},[34,254164,253707],{"class":181},[34,254166,4097],{"class":47},[34,254168,127730],{"class":181},[34,254170,254171,254173],{"class":36,"line":88},[34,254172,253717],{"class":181},[34,254174,254175],{"class":54},"\"admin\"\n",[34,254177,254178,254181],{"class":36,"line":242},[34,254179,254180],{"class":181},"role = ",[34,254182,254183],{"class":54},"\"administrator\"\n",[34,254185,254186],{"class":36,"line":250},[34,254187,62],{"emptyLinePlaceholder":61},[34,254189,254190,254192,254194],{"class":36,"line":263},[34,254191,253707],{"class":181},[34,254193,4097],{"class":47},[34,254195,127730],{"class":181},[34,254197,254198,254200],{"class":36,"line":275},[34,254199,253717],{"class":181},[34,254201,254202],{"class":54},"\"guest\"\n",[34,254204,254205,254207],{"class":36,"line":700},[34,254206,254180],{"class":181},[34,254208,254209],{"class":54},"\"viewer\"\n",[34,254211,254212],{"class":36,"line":706},[34,254213,62],{"emptyLinePlaceholder":61},[34,254215,254216],{"class":36,"line":715},[34,254217,254218],{"class":40},"# Use inline tables for simple nested data\n",[34,254220,254221,254224,254227,254230,254233],{"class":36,"line":725},[34,254222,254223],{"class":181},"theme = { primary = ",[34,254225,254226],{"class":54},"\"#3490dc\"",[34,254228,254229],{"class":181},", secondary = ",[34,254231,254232],{"class":54},"\"#ffed4e\"",[34,254234,52786],{"class":181},[34,254236,254237],{"class":36,"line":734},[34,254238,62],{"emptyLinePlaceholder":61},[34,254240,254241],{"class":36,"line":742},[34,254242,254243],{"class":40},"# Use multiline strings for long text\n",[34,254245,254246,254248],{"class":36,"line":748},[34,254247,148286],{"class":181},[34,254249,254250],{"class":54},"\"\"\"\n",[34,254252,254253],{"class":36,"line":754},[34,254254,254255],{"class":54},"This is a long description that spans\n",[34,254257,254258],{"class":36,"line":759},[34,254259,254260],{"class":54},"multiple lines for better readability.\"\"\"\n",[388,254262,14643],{},{"title":30,"searchDepth":44,"depth":44,"links":254264},[254265],{"id":5600,"depth":44,"text":5595},"Best Practices in TOML.",{},"/toml/best-practices",{"title":5595,"description":254266},"toml/best-practices",[14516,94338,558,115806],"ZzerAGV5hvFmtDrgw_F_PtSQHz3hp7-HkhPmpO98yKk",{"id":254274,"title":18143,"body":254275,"date":402,"description":254544,"extension":404,"meta":254545,"navigation":61,"order":88,"path":254546,"seo":254547,"stem":254548,"subject":14516,"tags":254549,"__hash__":254550},"topics/toml/common-patterns.md",{"type":8,"value":254276,"toc":254541},[254277,254279,254539],[11,254278,18143],{"id":18148},[25,254280,254282],{"className":14514,"code":254281,"language":14516,"meta":30,"style":30},"# Package configuration (like Cargo.toml)\n[package]\nname = \"my-project\"\nversion = \"0.1.0\"\nauthors = [\"Your Name \u003Cyou@example.com>\"]\nedition = \"2021\"\n\n[dependencies]\nserde = \"1.0\"\ntokio = { version = \"1.0\", features = [\"full\"] }\n\n# Application settings\n[app]\nname = \"MyApp\"\ndebug = true\n\n[app.database]\nhost = \"localhost\"\nport = 5432\nusername = \"admin\"\n\n[app.logging]\nlevel = \"info\"\nformat = \"json\"\noutputs = [\"stdout\", \"file\"]\n\n# Environment-specific config\n[development]\ndebug = true\napi_url = \"http://localhost:3000\"\n\n[production]\ndebug = false\napi_url = \"https://api.example.com\"\n",[20,254283,254284,254289,254297,254304,254312,254322,254330,254334,254342,254350,254367,254371,254376,254384,254391,254398,254402,254414,254421,254428,254435,254439,254452,254460,254468,254482,254486,254491,254499,254505,254513,254517,254526,254532],{"__ignoreMap":30},[34,254285,254286],{"class":36,"line":37},[34,254287,254288],{"class":40},"# Package configuration (like Cargo.toml)\n",[34,254290,254291,254293,254295],{"class":36,"line":44},[34,254292,10260],{"class":181},[34,254294,6165],{"class":47},[34,254296,924],{"class":181},[34,254298,254299,254301],{"class":36,"line":58},[34,254300,253717],{"class":181},[34,254302,254303],{"class":54},"\"my-project\"\n",[34,254305,254306,254309],{"class":36,"line":65},[34,254307,254308],{"class":181},"version = ",[34,254310,254311],{"class":54},"\"0.1.0\"\n",[34,254313,254314,254317,254320],{"class":36,"line":71},[34,254315,254316],{"class":181},"authors = [",[34,254318,254319],{"class":54},"\"Your Name \u003Cyou@example.com>\"",[34,254321,924],{"class":181},[34,254323,254324,254327],{"class":36,"line":77},[34,254325,254326],{"class":181},"edition = ",[34,254328,254329],{"class":54},"\"2021\"\n",[34,254331,254332],{"class":36,"line":82},[34,254333,62],{"emptyLinePlaceholder":61},[34,254335,254336,254338,254340],{"class":36,"line":88},[34,254337,10260],{"class":181},[34,254339,28966],{"class":47},[34,254341,924],{"class":181},[34,254343,254344,254347],{"class":36,"line":242},[34,254345,254346],{"class":181},"serde = ",[34,254348,254349],{"class":54},"\"1.0\"\n",[34,254351,254352,254355,254358,254361,254364],{"class":36,"line":250},[34,254353,254354],{"class":181},"tokio = { version = ",[34,254356,254357],{"class":54},"\"1.0\"",[34,254359,254360],{"class":181},", features = [",[34,254362,254363],{"class":54},"\"full\"",[34,254365,254366],{"class":181},"] }\n",[34,254368,254369],{"class":36,"line":263},[34,254370,62],{"emptyLinePlaceholder":61},[34,254372,254373],{"class":36,"line":275},[34,254374,254375],{"class":40},"# Application settings\n",[34,254377,254378,254380,254382],{"class":36,"line":700},[34,254379,10260],{"class":181},[34,254381,247230],{"class":47},[34,254383,924],{"class":181},[34,254385,254386,254388],{"class":36,"line":706},[34,254387,253717],{"class":181},[34,254389,254390],{"class":54},"\"MyApp\"\n",[34,254392,254393,254396],{"class":36,"line":715},[34,254394,254395],{"class":181},"debug = ",[34,254397,515],{"class":50},[34,254399,254400],{"class":36,"line":725},[34,254401,62],{"emptyLinePlaceholder":61},[34,254403,254404,254406,254408,254410,254412],{"class":36,"line":734},[34,254405,10260],{"class":181},[34,254407,247230],{"class":47},[34,254409,151],{"class":181},[34,254411,28650],{"class":47},[34,254413,924],{"class":181},[34,254415,254416,254418],{"class":36,"line":742},[34,254417,254140],{"class":181},[34,254419,254420],{"class":54},"\"localhost\"\n",[34,254422,254423,254425],{"class":36,"line":748},[34,254424,254148],{"class":181},[34,254426,254427],{"class":50},"5432\n",[34,254429,254430,254433],{"class":36,"line":754},[34,254431,254432],{"class":181},"username = ",[34,254434,254175],{"class":54},[34,254436,254437],{"class":36,"line":759},[34,254438,62],{"emptyLinePlaceholder":61},[34,254440,254441,254443,254445,254447,254450],{"class":36,"line":771},[34,254442,10260],{"class":181},[34,254444,247230],{"class":47},[34,254446,151],{"class":181},[34,254448,254449],{"class":47},"logging",[34,254451,924],{"class":181},[34,254453,254454,254457],{"class":36,"line":794},[34,254455,254456],{"class":181},"level = ",[34,254458,254459],{"class":54},"\"info\"\n",[34,254461,254462,254465],{"class":36,"line":824},[34,254463,254464],{"class":181},"format = ",[34,254466,254467],{"class":54},"\"json\"\n",[34,254469,254470,254473,254476,254478,254480],{"class":36,"line":830},[34,254471,254472],{"class":181},"outputs = [",[34,254474,254475],{"class":54},"\"stdout\"",[34,254477,1798],{"class":181},[34,254479,116385],{"class":54},[34,254481,924],{"class":181},[34,254483,254484],{"class":36,"line":839},[34,254485,62],{"emptyLinePlaceholder":61},[34,254487,254488],{"class":36,"line":854},[34,254489,254490],{"class":40},"# Environment-specific config\n",[34,254492,254493,254495,254497],{"class":36,"line":860},[34,254494,10260],{"class":181},[34,254496,8005],{"class":47},[34,254498,924],{"class":181},[34,254500,254501,254503],{"class":36,"line":865},[34,254502,254395],{"class":181},[34,254504,515],{"class":50},[34,254506,254507,254510],{"class":36,"line":870},[34,254508,254509],{"class":181},"api_url = ",[34,254511,254512],{"class":54},"\"http://localhost:3000\"\n",[34,254514,254515],{"class":36,"line":876},[34,254516,62],{"emptyLinePlaceholder":61},[34,254518,254519,254521,254524],{"class":36,"line":885},[34,254520,10260],{"class":181},[34,254522,254523],{"class":47},"production",[34,254525,924],{"class":181},[34,254527,254528,254530],{"class":36,"line":895},[34,254529,254395],{"class":181},[34,254531,14607],{"class":50},[34,254533,254534,254536],{"class":36,"line":904},[34,254535,254509],{"class":181},[34,254537,254538],{"class":54},"\"https://api.example.com\"\n",[388,254540,14643],{},{"title":30,"searchDepth":44,"depth":44,"links":254542},[254543],{"id":18148,"depth":44,"text":18143},"Common Patterns in TOML.",{},"/toml/common-patterns",{"title":18143,"description":254544},"toml/common-patterns",[14516,94338,558,115806],"fG0s7iuyxMpIgKd2UopuMTU2Z_QtjmY8FwSqnm8zy2E",{"id":254552,"title":61423,"body":254553,"date":402,"description":254775,"extension":404,"meta":254776,"navigation":61,"order":58,"path":254777,"seo":254778,"stem":254779,"subject":14516,"tags":254780,"__hash__":254781},"topics/toml/data-types.md",{"type":8,"value":254554,"toc":254772},[254555,254557,254770],[11,254556,61423],{"id":61422},[25,254558,254560],{"className":14514,"code":254559,"language":14516,"meta":30,"style":30},"# Strings\nbasic_string = \"Hello, World!\"\nliteral_string = 'C:\\Users\\nodejs\\templates'  # No escaping in single quotes\nmultiline_basic = \"\"\"\nLine one\nLine two\"\"\"\n\n# Integers\npositive_int = 42\nnegative_int = -17\nhex_int = 0xDEADBEEF                         # Hexadecimal\noctal_int = 0o755                             # Octal\nbinary_int = 0b11010110                       # Binary\n\n# Floats\npi = 3.14159\nscientific = 5e+22                            # Scientific notation\nnegative_float = -0.01\n\n# Booleans\nenabled = true\ndisabled = false\n\n# Dates and Times\ndate = 1979-05-27                             # Date only\ndatetime = 1979-05-27T07:32:00Z              # Full ISO 8601\nlocal_datetime = 1979-05-27T07:32:00         # Local datetime\nlocal_time = 07:32:00                         # Time only\n",[20,254561,254562,254567,254574,254585,254592,254597,254601,254605,254610,254618,254626,254637,254648,254659,254663,254668,254676,254687,254695,254699,254704,254711,254717,254721,254726,254737,254748,254759],{"__ignoreMap":30},[34,254563,254564],{"class":36,"line":37},[34,254565,254566],{"class":40},"# Strings\n",[34,254568,254569,254572],{"class":36,"line":44},[34,254570,254571],{"class":181},"basic_string = ",[34,254573,28141],{"class":54},[34,254575,254576,254579,254582],{"class":36,"line":58},[34,254577,254578],{"class":181},"literal_string = ",[34,254580,254581],{"class":54},"'C:\\Users\\nodejs\\templates'",[34,254583,254584],{"class":40},"  # No escaping in single quotes\n",[34,254586,254587,254590],{"class":36,"line":65},[34,254588,254589],{"class":181},"multiline_basic = ",[34,254591,254250],{"class":54},[34,254593,254594],{"class":36,"line":71},[34,254595,254596],{"class":54},"Line one\n",[34,254598,254599],{"class":36,"line":77},[34,254600,194900],{"class":54},[34,254602,254603],{"class":36,"line":82},[34,254604,62],{"emptyLinePlaceholder":61},[34,254606,254607],{"class":36,"line":88},[34,254608,254609],{"class":40},"# Integers\n",[34,254611,254612,254615],{"class":36,"line":242},[34,254613,254614],{"class":181},"positive_int = ",[34,254616,254617],{"class":50},"42\n",[34,254619,254620,254623],{"class":36,"line":250},[34,254621,254622],{"class":181},"negative_int = ",[34,254624,254625],{"class":50},"-17\n",[34,254627,254628,254631,254634],{"class":36,"line":263},[34,254629,254630],{"class":181},"hex_int = ",[34,254632,254633],{"class":50},"0xDEADBEEF",[34,254635,254636],{"class":40},"                         # Hexadecimal\n",[34,254638,254639,254642,254645],{"class":36,"line":275},[34,254640,254641],{"class":181},"octal_int = ",[34,254643,254644],{"class":50},"0o755",[34,254646,254647],{"class":40},"                             # Octal\n",[34,254649,254650,254653,254656],{"class":36,"line":700},[34,254651,254652],{"class":181},"binary_int = ",[34,254654,254655],{"class":50},"0b11010110",[34,254657,254658],{"class":40},"                       # Binary\n",[34,254660,254661],{"class":36,"line":706},[34,254662,62],{"emptyLinePlaceholder":61},[34,254664,254665],{"class":36,"line":715},[34,254666,254667],{"class":40},"# Floats\n",[34,254669,254670,254673],{"class":36,"line":725},[34,254671,254672],{"class":181},"pi = ",[34,254674,254675],{"class":50},"3.14159\n",[34,254677,254678,254681,254684],{"class":36,"line":734},[34,254679,254680],{"class":181},"scientific = ",[34,254682,254683],{"class":50},"5e+22",[34,254685,254686],{"class":40},"                            # Scientific notation\n",[34,254688,254689,254692],{"class":36,"line":742},[34,254690,254691],{"class":181},"negative_float = ",[34,254693,254694],{"class":50},"-0.01\n",[34,254696,254697],{"class":36,"line":748},[34,254698,62],{"emptyLinePlaceholder":61},[34,254700,254701],{"class":36,"line":754},[34,254702,254703],{"class":40},"# Booleans\n",[34,254705,254706,254709],{"class":36,"line":759},[34,254707,254708],{"class":181},"enabled = ",[34,254710,515],{"class":50},[34,254712,254713,254715],{"class":36,"line":771},[34,254714,237529],{"class":181},[34,254716,14607],{"class":50},[34,254718,254719],{"class":36,"line":794},[34,254720,62],{"emptyLinePlaceholder":61},[34,254722,254723],{"class":36,"line":824},[34,254724,254725],{"class":40},"# Dates and Times\n",[34,254727,254728,254731,254734],{"class":36,"line":830},[34,254729,254730],{"class":181},"date = ",[34,254732,254733],{"class":50},"1979-05-27",[34,254735,254736],{"class":40},"                             # Date only\n",[34,254738,254739,254742,254745],{"class":36,"line":839},[34,254740,254741],{"class":181},"datetime = ",[34,254743,254744],{"class":50},"1979-05-27T07:32:00Z",[34,254746,254747],{"class":40},"              # Full ISO 8601\n",[34,254749,254750,254753,254756],{"class":36,"line":854},[34,254751,254752],{"class":181},"local_datetime = ",[34,254754,254755],{"class":50},"1979-05-27T07:32:00",[34,254757,254758],{"class":40},"         # Local datetime\n",[34,254760,254761,254764,254767],{"class":36,"line":860},[34,254762,254763],{"class":181},"local_time = ",[34,254765,254766],{"class":50},"07:32:00",[34,254768,254769],{"class":40},"                         # Time only\n",[388,254771,145361],{},{"title":30,"searchDepth":44,"depth":44,"links":254773},[254774],{"id":61422,"depth":44,"text":61423},"Data Types in TOML.",{},"/toml/data-types",{"title":61423,"description":254775},"toml/data-types",[14516,94338,558,115806],"n6OJIaAF6SyFV3bXyTJ7qKFUGSGUOUvrSRsTAWueMNw",{"id":254783,"title":254784,"body":254785,"date":402,"description":254865,"extension":404,"meta":254866,"navigation":61,"order":242,"path":254867,"seo":254868,"stem":254869,"subject":14516,"tags":254870,"__hash__":254871},"topics/toml/dotted-keys.md","Dotted Keys",{"type":8,"value":254786,"toc":254862},[254787,254790,254860],[11,254788,254784],{"id":254789},"dotted-keys",[25,254791,254793],{"className":14514,"code":254792,"language":14516,"meta":30,"style":30},"# Dotted keys create nested structures\nuser.name = \"Alice\"\nuser.email = \"alice@example.com\"\nuser.age = 30\n\n# Equivalent to:\n[user]\nname = \"Alice\"\nemail = \"alice@example.com\"\nage = 30\n",[20,254794,254795,254800,254808,254816,254823,254827,254832,254840,254846,254853],{"__ignoreMap":30},[34,254796,254797],{"class":36,"line":37},[34,254798,254799],{"class":40},"# Dotted keys create nested structures\n",[34,254801,254802,254805],{"class":36,"line":44},[34,254803,254804],{"class":181},"user.name = ",[34,254806,254807],{"class":54},"\"Alice\"\n",[34,254809,254810,254813],{"class":36,"line":58},[34,254811,254812],{"class":181},"user.email = ",[34,254814,254815],{"class":54},"\"alice@example.com\"\n",[34,254817,254818,254821],{"class":36,"line":65},[34,254819,254820],{"class":181},"user.age = ",[34,254822,119888],{"class":50},[34,254824,254825],{"class":36,"line":71},[34,254826,62],{"emptyLinePlaceholder":61},[34,254828,254829],{"class":36,"line":77},[34,254830,254831],{"class":40},"# Equivalent to:\n",[34,254833,254834,254836,254838],{"class":36,"line":82},[34,254835,10260],{"class":181},[34,254837,3945],{"class":47},[34,254839,924],{"class":181},[34,254841,254842,254844],{"class":36,"line":88},[34,254843,253717],{"class":181},[34,254845,254807],{"class":54},[34,254847,254848,254851],{"class":36,"line":242},[34,254849,254850],{"class":181},"email = ",[34,254852,254815],{"class":54},[34,254854,254855,254858],{"class":36,"line":250},[34,254856,254857],{"class":181},"age = ",[34,254859,119888],{"class":50},[388,254861,145611],{},{"title":30,"searchDepth":44,"depth":44,"links":254863},[254864],{"id":254789,"depth":44,"text":254784},"Dotted Keys in TOML.",{},"/toml/dotted-keys",{"title":254784,"description":254865},"toml/dotted-keys",[14516,94338,558,115806],"tdi6qHQ4uXPwRFbElQD0TBh0YeqjQcaNJfC9CsIgs-Y",{"id":254873,"title":254874,"body":254875,"date":402,"description":254957,"extension":404,"meta":254958,"navigation":61,"order":77,"path":254959,"seo":254960,"stem":254961,"subject":14516,"tags":254962,"__hash__":254963},"topics/toml/inline-tables.md","Inline Tables",{"type":8,"value":254876,"toc":254954},[254877,254880,254952],[11,254878,254874],{"id":254879},"inline-tables",[25,254881,254883],{"className":14514,"code":254882,"language":14516,"meta":30,"style":30},"# Inline tables for compact data\npoint = { x = 1, y = 2 }\ncolor = { r = 255, g = 0, b = 0 }\n\n# Useful for configuration objects\nserver = { host = \"localhost\", port = 8080, tls = false }\n",[20,254884,254885,254890,254904,254923,254927,254932],{"__ignoreMap":30},[34,254886,254887],{"class":36,"line":37},[34,254888,254889],{"class":40},"# Inline tables for compact data\n",[34,254891,254892,254895,254897,254900,254902],{"class":36,"line":44},[34,254893,254894],{"class":181},"point = { x = ",[34,254896,8318],{"class":50},[34,254898,254899],{"class":181},", y = ",[34,254901,8324],{"class":50},[34,254903,52786],{"class":181},[34,254905,254906,254909,254911,254914,254916,254919,254921],{"class":36,"line":58},[34,254907,254908],{"class":181},"color = { r = ",[34,254910,38686],{"class":50},[34,254912,254913],{"class":181},", g = ",[34,254915,2773],{"class":50},[34,254917,254918],{"class":181},", b = ",[34,254920,2773],{"class":50},[34,254922,52786],{"class":181},[34,254924,254925],{"class":36,"line":65},[34,254926,62],{"emptyLinePlaceholder":61},[34,254928,254929],{"class":36,"line":71},[34,254930,254931],{"class":40},"# Useful for configuration objects\n",[34,254933,254934,254937,254939,254942,254945,254948,254950],{"class":36,"line":77},[34,254935,254936],{"class":181},"server = { host = ",[34,254938,128164],{"class":54},[34,254940,254941],{"class":181},", port = ",[34,254943,254944],{"class":50},"8080",[34,254946,254947],{"class":181},", tls = ",[34,254949,103387],{"class":50},[34,254951,52786],{"class":181},[388,254953,188471],{},{"title":30,"searchDepth":44,"depth":44,"links":254955},[254956],{"id":254879,"depth":44,"text":254874},"Inline Tables in TOML.",{},"/toml/inline-tables",{"title":254874,"description":254957},"toml/inline-tables",[14516,94338,558,115806],"2PN7ceTYlpZQN_EvFNPkcrFc-LZZsAlgDA8O7dooJNw",{"id":254965,"title":254966,"body":254967,"date":2633,"description":255011,"extension":404,"meta":255012,"navigation":61,"order":37,"path":255013,"seo":255014,"stem":255015,"subject":14516,"tags":255016,"__hash__":255017},"topics/toml/overview.md","TOML",{"type":8,"value":254968,"toc":255009},[254969],[309,254970,254971,254975,254979,254983,254989,254993,254997,255001,255005],{},[312,254972,254973],{},[145,254974,33160],{"href":254107},[312,254976,254977],{},[145,254978,61423],{"href":254777},[312,254980,254981],{},[145,254982,10061],{"href":254059},[312,254984,254985],{},[145,254986,254988],{"href":254987},"/toml/tables-sections","Tables (Sections)",[312,254990,254991],{},[145,254992,254874],{"href":254959},[312,254994,254995],{},[145,254996,253687],{"href":253883},[312,254998,254999],{},[145,255000,18143],{"href":254546},[312,255002,255003],{},[145,255004,254784],{"href":254867},[312,255006,255007],{},[145,255008,5595],{"href":254268},{"title":30,"searchDepth":44,"depth":44,"links":255010},[],"Tom's Obvious Minimal Language - a configuration file format for humans",{},"/toml/overview",{"title":254966,"description":255011},"toml/overview",[14516,94338,558,115806],"EKGYq-iz8IHldVZT9egMUNDJMSgmodL9kaNYRI53PTA",{"id":255019,"title":254988,"body":255020,"date":402,"description":255185,"extension":404,"meta":255186,"navigation":61,"order":71,"path":254987,"seo":255187,"stem":255188,"subject":14516,"tags":255189,"__hash__":255190},"topics/toml/tables-sections.md",{"type":8,"value":255021,"toc":255182},[255022,255025,255180],[11,255023,254988],{"id":255024},"tables-sections",[25,255026,255028],{"className":14514,"code":255027,"language":14516,"meta":30,"style":30},"# Table headers define sections\n[owner]\nname = \"Tom Preston-Werner\"\ndob = 1979-05-27T07:32:00-08:00\n\n[database]\nserver = \"192.168.1.1\"\nports = [8000, 8001, 8002]\nconnection_max = 5000\nenabled = true\n\n# Nested tables using dot notation\n[servers.alpha]\nip = \"10.0.0.1\"\nrole = \"frontend\"\n\n[servers.beta]\nip = \"10.0.0.2\"\nrole = \"backend\"\n",[20,255029,255030,255035,255044,255050,255058,255062,255070,255078,255097,255105,255111,255115,255120,255134,255142,255149,255153,255166,255173],{"__ignoreMap":30},[34,255031,255032],{"class":36,"line":37},[34,255033,255034],{"class":40},"# Table headers define sections\n",[34,255036,255037,255039,255042],{"class":36,"line":44},[34,255038,10260],{"class":181},[34,255040,255041],{"class":47},"owner",[34,255043,924],{"class":181},[34,255045,255046,255048],{"class":36,"line":58},[34,255047,253717],{"class":181},[34,255049,254098],{"class":54},[34,255051,255052,255055],{"class":36,"line":65},[34,255053,255054],{"class":181},"dob = ",[34,255056,255057],{"class":50},"1979-05-27T07:32:00-08:00\n",[34,255059,255060],{"class":36,"line":71},[34,255061,62],{"emptyLinePlaceholder":61},[34,255063,255064,255066,255068],{"class":36,"line":77},[34,255065,10260],{"class":181},[34,255067,28650],{"class":47},[34,255069,924],{"class":181},[34,255071,255072,255075],{"class":36,"line":82},[34,255073,255074],{"class":181},"server = ",[34,255076,255077],{"class":54},"\"192.168.1.1\"\n",[34,255079,255080,255083,255085,255087,255090,255092,255095],{"class":36,"line":88},[34,255081,255082],{"class":181},"ports = [",[34,255084,47784],{"class":50},[34,255086,1798],{"class":181},[34,255088,255089],{"class":50},"8001",[34,255091,1798],{"class":181},[34,255093,255094],{"class":50},"8002",[34,255096,924],{"class":181},[34,255098,255099,255102],{"class":36,"line":242},[34,255100,255101],{"class":181},"connection_max = ",[34,255103,255104],{"class":50},"5000\n",[34,255106,255107,255109],{"class":36,"line":250},[34,255108,254708],{"class":181},[34,255110,515],{"class":50},[34,255112,255113],{"class":36,"line":263},[34,255114,62],{"emptyLinePlaceholder":61},[34,255116,255117],{"class":36,"line":275},[34,255118,255119],{"class":40},"# Nested tables using dot notation\n",[34,255121,255122,255124,255127,255129,255132],{"class":36,"line":700},[34,255123,10260],{"class":181},[34,255125,255126],{"class":47},"servers",[34,255128,151],{"class":181},[34,255130,255131],{"class":47},"alpha",[34,255133,924],{"class":181},[34,255135,255136,255139],{"class":36,"line":706},[34,255137,255138],{"class":181},"ip = ",[34,255140,255141],{"class":54},"\"10.0.0.1\"\n",[34,255143,255144,255146],{"class":36,"line":715},[34,255145,254180],{"class":181},[34,255147,255148],{"class":54},"\"frontend\"\n",[34,255150,255151],{"class":36,"line":725},[34,255152,62],{"emptyLinePlaceholder":61},[34,255154,255155,255157,255159,255161,255164],{"class":36,"line":734},[34,255156,10260],{"class":181},[34,255158,255126],{"class":47},[34,255160,151],{"class":181},[34,255162,255163],{"class":47},"beta",[34,255165,924],{"class":181},[34,255167,255168,255170],{"class":36,"line":742},[34,255169,255138],{"class":181},[34,255171,255172],{"class":54},"\"10.0.0.2\"\n",[34,255174,255175,255177],{"class":36,"line":748},[34,255176,254180],{"class":181},[34,255178,255179],{"class":54},"\"backend\"\n",[388,255181,14643],{},{"title":30,"searchDepth":44,"depth":44,"links":255183},[255184],{"id":255024,"depth":44,"text":254988},"Tables (Sections) in TOML.",{},{"title":254988,"description":255185},"toml/tables-sections",[14516,94338,558,115806],"-rR52lbhr2yXE8amuEJuO31AKS5fmm5CKeoR_u3zwuM",{"id":255192,"title":255193,"body":255194,"date":402,"description":255252,"extension":404,"meta":255253,"navigation":61,"order":37,"path":255254,"seo":255255,"stem":255256,"subject":255207,"tags":255257,"__hash__":255259},"topics/traefik/overview.md","Traefik",{"type":8,"value":255195,"toc":255248},[255196,255198,255210,255213,255217,255242,255245],[11,255197,6035],{"id":6040},[25,255199,255201],{"className":27,"code":255200,"language":29,"meta":30,"style":30},"traefik start\n",[20,255202,255203],{"__ignoreMap":30},[34,255204,255205,255208],{"class":36,"line":37},[34,255206,255207],{"class":47},"traefik",[34,255209,48648],{"class":54},[16,255211,255212],{},"Requirement configuration discussed docs.",[11,255214,255216],{"id":255215},"deployment-guides","Deployment Guides",[25,255218,255220],{"className":168,"code":255219,"language":170,"meta":30,"style":30},"trait: labels:ra\napiVersion:v2\nitems:\n",[20,255221,255222,255231,255236],{"__ignoreMap":30},[34,255223,255224,255226,255228],{"class":36,"line":37},[34,255225,175236],{"class":177},[34,255227,182],{"class":181},[34,255229,255230],{"class":54},"labels:ra\n",[34,255232,255233],{"class":36,"line":44},[34,255234,255235],{"class":54},"apiVersion:v2\n",[34,255237,255238,255240],{"class":36,"line":58},[34,255239,4874],{"class":177},[34,255241,193],{"class":181},[16,255243,255244],{},"Final tweaks.",[388,255246,255247],{},"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 .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":30,"searchDepth":44,"depth":44,"links":255249},[255250,255251],{"id":6040,"depth":44,"text":6035},{"id":255215,"depth":44,"text":255216},"Traefik reference covering features, setup, and configuration",{},"/traefik/overview",{"title":255193,"description":255252},"traefik/overview",[255258,157480,255207],"gateway","XtiyetK8qmv8metc76Fj7lSomuadqLk2lhZScM--wSs",{"id":255261,"title":255262,"body":255263,"date":402,"description":255573,"extension":404,"meta":255574,"navigation":61,"order":37,"path":255575,"seo":255576,"stem":255577,"subject":255578,"tags":255579,"__hash__":255580},"topics/trpc/overview.md","tRPC",{"type":8,"value":255264,"toc":255565},[255265,255267,255270,255272,255303,255305,255308,255325,255328,255343,255347,255350,255444,255452,255456,255459,255547,255556,255560,255563],[11,255266,14],{"id":13},[16,255268,255269],{},"tRPC is a lightweight library enabling developers to build typesafe APIs effortlessly. By eliminating the need for schema definitions or code generation, it simplifies API development in full-stack TypeScript projects.",[11,255271,8498],{"id":8497},[309,255273,255274,255280,255286,255292,255298],{},[312,255275,255276,255279],{},[8471,255277,255278],{},"Fully Typesafe",": Ensures static typing for inputs, outputs, and errors.",[312,255281,255282,255285],{},[8471,255283,255284],{},"No Build Requirements",": Skips runtime bloat and code generation.",[312,255287,255288,255291],{},[8471,255289,255290],{},"Lightfooted",": Minimal dependencies, making it lightweight on the client-side.",[312,255293,255294,255297],{},[8471,255295,255296],{},"Framework Agnostic",": Works seamlessly with popular frameworks.",[312,255299,255300,255302],{},[8471,255301,109387],{},": Add typesafe observables in your apps.",[11,255304,97],{"id":96},[16,255306,255307],{},"Install tRPC server and client libraries:",[25,255309,255311],{"className":27,"code":255310,"language":29,"meta":30,"style":30},"npm install @trpc/server @trpc/client\n",[20,255312,255313],{"__ignoreMap":30},[34,255314,255315,255317,255319,255322],{"class":36,"line":37},[34,255316,8177],{"class":47},[34,255318,118],{"class":54},[34,255320,255321],{"class":54}," @trpc/server",[34,255323,255324],{"class":54}," @trpc/client\n",[16,255326,255327],{},"Ensure TypeScript is installed in your project:",[25,255329,255331],{"className":27,"code":255330,"language":29,"meta":30,"style":30},"npm install typescript --save-dev\n",[20,255332,255333],{"__ignoreMap":30},[34,255334,255335,255337,255339,255341],{"class":36,"line":37},[34,255336,8177],{"class":47},[34,255338,118],{"class":54},[34,255340,181305],{"class":54},[34,255342,8192],{"class":50},[11,255344,255346],{"id":255345},"creating-a-trpc-router","Creating a tRPC Router",[16,255348,255349],{},"Below is a simple example of creating an endpoint:",[25,255351,255353],{"className":571,"code":255352,"language":573,"meta":30,"style":30},"import * as trpc from '@trpc/server';\n\nconst appRouter = trpc.router()\n  .query('greet', {\n    resolve: () => 'Hello, world!',\n  });\n\nexport type AppRouter = typeof appRouter;\n",[20,255354,255355,255373,255377,255393,255406,255420,255424,255428],{"__ignoreMap":30},[34,255356,255357,255359,255361,255363,255366,255368,255371],{"class":36,"line":37},[34,255358,581],{"class":580},[34,255360,18083],{"class":50},[34,255362,91551],{"class":580},[34,255364,255365],{"class":181}," trpc ",[34,255367,587],{"class":580},[34,255369,255370],{"class":54}," '@trpc/server'",[34,255372,593],{"class":181},[34,255374,255375],{"class":36,"line":44},[34,255376,62],{"emptyLinePlaceholder":61},[34,255378,255379,255381,255384,255386,255389,255391],{"class":36,"line":58},[34,255380,14676],{"class":580},[34,255382,255383],{"class":50}," appRouter",[34,255385,683],{"class":580},[34,255387,255388],{"class":181}," trpc.",[34,255390,76499],{"class":47},[34,255392,33899],{"class":181},[34,255394,255395,255397,255399,255401,255404],{"class":36,"line":65},[34,255396,61818],{"class":181},[34,255398,171552],{"class":47},[34,255400,1607],{"class":181},[34,255402,255403],{"class":54},"'greet'",[34,255405,14820],{"class":181},[34,255407,255408,255411,255413,255415,255418],{"class":36,"line":71},[34,255409,255410],{"class":47},"    resolve",[34,255412,3358],{"class":181},[34,255414,3361],{"class":580},[34,255416,255417],{"class":54}," 'Hello, world!'",[34,255419,624],{"class":181},[34,255421,255422],{"class":36,"line":77},[34,255423,3186],{"class":181},[34,255425,255426],{"class":36,"line":82},[34,255427,62],{"emptyLinePlaceholder":61},[34,255429,255430,255432,255434,255437,255439,255441],{"class":36,"line":88},[34,255431,652],{"class":580},[34,255433,62326],{"class":580},[34,255435,255436],{"class":47}," AppRouter",[34,255438,683],{"class":580},[34,255440,131132],{"class":580},[34,255442,255443],{"class":181}," appRouter;\n",[16,255445,255446,115266,255449,255451],{},[8563,255447,255448],{},"Inline Comment",[20,255450,11011],{}," query adds an endpoint to return a simple greeting when called.",[11,255453,255455],{"id":255454},"client-side-example","Client-Side Example",[16,255457,255458],{},"To consume the API from the client:",[25,255460,255462],{"className":571,"code":255461,"language":573,"meta":30,"style":30},"import { createTRPCClient } from '@trpc/client';\n\nconst client = createTRPCClient\u003CAppRouter>({\n  url: 'http://localhost:4000',\n});\n\nconst greeting = await client.query('greet');\nconsole.log(greeting);\n",[20,255463,255464,255478,255482,255500,255510,255514,255518,255538],{"__ignoreMap":30},[34,255465,255466,255468,255471,255473,255476],{"class":36,"line":37},[34,255467,581],{"class":580},[34,255469,255470],{"class":181}," { createTRPCClient } ",[34,255472,587],{"class":580},[34,255474,255475],{"class":54}," '@trpc/client'",[34,255477,593],{"class":181},[34,255479,255480],{"class":36,"line":44},[34,255481,62],{"emptyLinePlaceholder":61},[34,255483,255484,255486,255488,255490,255493,255495,255498],{"class":36,"line":58},[34,255485,14676],{"class":580},[34,255487,33848],{"class":50},[34,255489,683],{"class":580},[34,255491,255492],{"class":47}," createTRPCClient",[34,255494,815],{"class":181},[34,255496,255497],{"class":47},"AppRouter",[34,255499,246201],{"class":181},[34,255501,255502,255505,255508],{"class":36,"line":65},[34,255503,255504],{"class":181},"  url: ",[34,255506,255507],{"class":54},"'http://localhost:4000'",[34,255509,624],{"class":181},[34,255511,255512],{"class":36,"line":71},[34,255513,14873],{"class":181},[34,255515,255516],{"class":36,"line":77},[34,255517,62],{"emptyLinePlaceholder":61},[34,255519,255520,255522,255524,255526,255528,255530,255532,255534,255536],{"class":36,"line":82},[34,255521,14676],{"class":580},[34,255523,37035],{"class":50},[34,255525,683],{"class":580},[34,255527,14763],{"class":580},[34,255529,33866],{"class":181},[34,255531,171552],{"class":47},[34,255533,1607],{"class":181},[34,255535,255403],{"class":54},[34,255537,1586],{"class":181},[34,255539,255540,255542,255544],{"class":36,"line":88},[34,255541,15183],{"class":181},[34,255543,2424],{"class":47},[34,255545,255546],{"class":181},"(greeting);\n",[16,255548,255549,255551,255552,255555],{},[8563,255550,255448],{},": Replace ",[20,255553,255554],{},"4000"," with your server port as needed.",[11,255557,255559],{"id":255558},"why-choose-trpc","Why Choose tRPC?",[16,255561,255562],{},"n- Leverage types across both backend and frontend.\nn- Catch TypeErrors during build time.\nn- Seamlessly integrates with full-stack TypeScript ecosystems.",[388,255564,53846],{},{"title":30,"searchDepth":44,"depth":44,"links":255566},[255567,255568,255569,255570,255571,255572],{"id":13,"depth":44,"text":14},{"id":8497,"depth":44,"text":8498},{"id":96,"depth":44,"text":97},{"id":255345,"depth":44,"text":255346},{"id":255454,"depth":44,"text":255455},{"id":255558,"depth":44,"text":255559},"Build fully typesafe APIs with TypeScript, avoiding code generation and leveraging static typing.",{},"/trpc/overview",{"title":255262,"description":255573},"trpc/overview","trpc",[573,46870,43044,255578],"nMFgZ3BXIaKJfy2BHUoQkuv0RxGu1xsNlH3z0q0y58E",{"id":255582,"title":255583,"body":255584,"date":402,"description":255814,"extension":404,"meta":255815,"navigation":61,"order":37,"path":255816,"seo":255817,"stem":255818,"subject":255819,"tags":255820,"__hash__":255821},"topics/turborepo/overview.md","Turborepo",{"type":8,"value":255585,"toc":255798},[255586,255588,255591,255593,255596,255612,255628,255643,255645,255649,255657,255661,255664,255668,255671,255701,255703,255706,255718,255720,255724,255738,255740,255751,255755,255767,255769,255785,255787,255795],[11,255587,13534],{"id":13533},[16,255589,255590],{},"Turborepo is a monorepo tool designed to optimize and speed up build processes by leveraging remote caching, intelligent task scheduling, and other advanced features. It is widely adopted in project setups requiring consolidated code structures.",[11,255592,97],{"id":96},[16,255594,255595],{},"Install globally using your preferred package manager:",[25,255597,255599],{"className":27,"code":255598,"language":29,"meta":30,"style":30},"npm install turbo --global\n",[20,255600,255601],{"__ignoreMap":30},[34,255602,255603,255605,255607,255610],{"class":36,"line":37},[34,255604,8177],{"class":47},[34,255606,118],{"class":54},[34,255608,255609],{"class":54}," turbo",[34,255611,182406],{"class":50},[25,255613,255615],{"className":27,"code":255614,"language":29,"meta":30,"style":30},"yarn global add turbo\n",[20,255616,255617],{"__ignoreMap":30},[34,255618,255619,255621,255623,255625],{"class":36,"line":37},[34,255620,13810],{"class":47},[34,255622,7933],{"class":54},[34,255624,7854],{"class":54},[34,255626,255627],{"class":54}," turbo\n",[25,255629,255631],{"className":27,"code":255630,"language":29,"meta":30,"style":30},"pnpm add turbo --global\n",[20,255632,255633],{"__ignoreMap":30},[34,255634,255635,255637,255639,255641],{"class":36,"line":37},[34,255636,13788],{"class":47},[34,255638,7854],{"class":54},[34,255640,255609],{"class":54},[34,255642,182406],{"class":50},[11,255644,8498],{"id":8497},[102,255646,255648],{"id":255647},"remote-caching","Remote Caching",[16,255650,255651,255652,151],{},"Reuses previously executed results to avoid redundant computation. Learn more about ",[145,255653,255656],{"href":255654,"rel":255655},"https://turbo.build/docs/core-concepts/remote-caching",[149],"remote caching",[102,255658,255660],{"id":255659},"intelligent-task-scheduling","Intelligent Task Scheduling",[16,255662,255663],{},"Turborepo optimizes task execution order, ensuring dependent tasks complete in the correct sequence.",[102,255665,255667],{"id":255666},"multi-package-workspaces","Multi-Package Workspaces",[16,255669,255670],{},"Allows efficient management of libraries and applications within the same repository. Example setup:",[25,255672,255674],{"className":28058,"code":255673,"language":14790,"meta":30,"style":30},"{\n  \"packages\": [\"apps/*\", \"libs/*\"]\n}\n",[20,255675,255676,255680,255697],{"__ignoreMap":30},[34,255677,255678],{"class":36,"line":37},[34,255679,25296],{"class":181},[34,255681,255682,255685,255687,255690,255692,255695],{"class":36,"line":44},[34,255683,255684],{"class":50},"  \"packages\"",[34,255686,47204],{"class":181},[34,255688,255689],{"class":54},"\"apps/*\"",[34,255691,1798],{"class":181},[34,255693,255694],{"class":54},"\"libs/*\"",[34,255696,924],{"class":181},[34,255698,255699],{"class":36,"line":58},[34,255700,693],{"class":181},[11,255702,22151],{"id":22156},[16,255704,255705],{},"To generate a new monorepo, you can use the following:",[25,255707,255709],{"className":27,"code":255708,"language":29,"meta":30,"style":30},"npx create-turbo@latest\n",[20,255710,255711],{"__ignoreMap":30},[34,255712,255713,255715],{"class":36,"line":37},[34,255714,8205],{"class":47},[34,255716,255717],{"class":54}," create-turbo@latest\n",[11,255719,12204],{"id":12948},[102,255721,255723],{"id":255722},"building-packages","Building Packages",[25,255725,255727],{"className":27,"code":255726,"language":29,"meta":30,"style":30},"turbo run build\n",[20,255728,255729],{"__ignoreMap":30},[34,255730,255731,255734,255736],{"class":36,"line":37},[34,255732,255733],{"class":47},"turbo",[34,255735,16017],{"class":54},[34,255737,55],{"class":54},[102,255739,5734],{"id":5739},[25,255741,255743],{"className":27,"code":255742,"language":29,"meta":30,"style":30},"turbo prune\n",[20,255744,255745],{"__ignoreMap":30},[34,255746,255747,255749],{"class":36,"line":37},[34,255748,255733],{"class":47},[34,255750,57628],{"class":54},[102,255752,255754],{"id":255753},"viewing-cache-status","Viewing Cache Status",[25,255756,255758],{"className":27,"code":255757,"language":29,"meta":30,"style":30},"turbo list-caches\n",[20,255759,255760],{"__ignoreMap":30},[34,255761,255762,255764],{"class":36,"line":37},[34,255763,255733],{"class":47},[34,255765,255766],{"class":54}," list-caches\n",[11,255768,5595],{"id":5600},[28799,255770,255771,255779,255782],{},[312,255772,255773,255774,128469,255777,151],{},"Structure your repo to separate ",[8471,255775,255776],{},"apps",[8471,255778,144740],{},[312,255780,255781],{},"Use remote caching to save time on CI/CD pipelines.",[312,255783,255784],{},"Keep dependency graphs simple and focused.",[7979,255786],{},[16,255788,255789,255790,151],{},"Additional guides on integrating existing repositories and advanced configurations are available in ",[145,255791,255794],{"href":255792,"rel":255793},"https://turbo.build/docs",[149],"Turborepo docs",[388,255796,255797],{},"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 .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);}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":30,"searchDepth":44,"depth":44,"links":255799},[255800,255801,255802,255807,255808,255813],{"id":13533,"depth":44,"text":13534},{"id":96,"depth":44,"text":97},{"id":8497,"depth":44,"text":8498,"children":255803},[255804,255805,255806],{"id":255647,"depth":58,"text":255648},{"id":255659,"depth":58,"text":255660},{"id":255666,"depth":58,"text":255667},{"id":22156,"depth":44,"text":22151},{"id":12948,"depth":44,"text":12204,"children":255809},[255810,255811,255812],{"id":255722,"depth":58,"text":255723},{"id":5739,"depth":58,"text":5734},{"id":255753,"depth":58,"text":255754},{"id":5600,"depth":44,"text":5595},"Essential concepts, commands, and best practices for managing monorepos effectively using Turborepo.",{},"/turborepo/overview",{"title":255583,"description":255814},"turborepo/overview","turborepo",[255819,167636,71370],"PJZjh74rUK-yddQmiL0e46MWWQ6Ltos87r-xiYf-134",{"id":255823,"title":255824,"body":255825,"date":402,"description":256153,"extension":404,"meta":256154,"navigation":61,"order":44,"path":256155,"seo":256156,"stem":256157,"subject":573,"tags":256158,"__hash__":256160},"topics/typescript/basic-types.md","Basic Types",{"type":8,"value":255826,"toc":256150},[255827,255830,256147],[11,255828,255824],{"id":255829},"basic-types",[25,255831,255833],{"className":571,"code":255832,"language":573,"meta":30,"style":30},"// Primitive types\nlet name: string = 'Alice';\nlet age: number = 30;\nlet isActive: boolean = true;\nlet nothing: null = null;\nlet notDefined: undefined = undefined;\n\n// Arrays\nlet numbers: number[] = [1, 2, 3];\nlet names: Array\u003Cstring> = ['Alice', 'Bob'];\n\n// Tuple - fixed length array with specific types\nlet tuple: [string, number] = ['Alice', 30];\n\n// Any and Unknown\nlet flexible: any = 'anything';       // Avoid when possible\nlet safe: unknown = 'must check';     // Safer than any\n\n// Void and Never\nfunction log(msg: string): void { console.log(msg); }\nfunction error(msg: string): never { throw new Error(msg); }\n",[20,255834,255835,255839,255856,255872,255888,255905,255923,255927,255931,255959,255988,255992,255997,256028,256032,256037,256058,256080,256084,256089,256117],{"__ignoreMap":30},[34,255836,255837],{"class":36,"line":37},[34,255838,124845],{"class":40},[34,255840,255841,255843,255845,255847,255849,255851,255854],{"class":36,"line":44},[34,255842,8268],{"class":580},[34,255844,12323],{"class":181},[34,255846,165],{"class":580},[34,255848,680],{"class":50},[34,255850,683],{"class":580},[34,255852,255853],{"class":54}," 'Alice'",[34,255855,593],{"class":181},[34,255857,255858,255860,255862,255864,255866,255868,255870],{"class":36,"line":58},[34,255859,8268],{"class":580},[34,255861,33593],{"class":181},[34,255863,165],{"class":580},[34,255865,2741],{"class":50},[34,255867,683],{"class":580},[34,255869,30458],{"class":50},[34,255871,593],{"class":181},[34,255873,255874,255876,255878,255880,255882,255884,255886],{"class":36,"line":65},[34,255875,8268],{"class":580},[34,255877,38012],{"class":181},[34,255879,165],{"class":580},[34,255881,59460],{"class":50},[34,255883,683],{"class":580},[34,255885,32945],{"class":50},[34,255887,593],{"class":181},[34,255889,255890,255892,255895,255897,255899,255901,255903],{"class":36,"line":71},[34,255891,8268],{"class":580},[34,255893,255894],{"class":181}," nothing",[34,255896,165],{"class":580},[34,255898,13898],{"class":50},[34,255900,683],{"class":580},[34,255902,13898],{"class":50},[34,255904,593],{"class":181},[34,255906,255907,255909,255912,255914,255917,255919,255921],{"class":36,"line":77},[34,255908,8268],{"class":580},[34,255910,255911],{"class":181}," notDefined",[34,255913,165],{"class":580},[34,255915,255916],{"class":50}," undefined",[34,255918,683],{"class":580},[34,255920,255916],{"class":50},[34,255922,593],{"class":181},[34,255924,255925],{"class":36,"line":82},[34,255926,62],{"emptyLinePlaceholder":61},[34,255928,255929],{"class":36,"line":88},[34,255930,33321],{"class":40},[34,255932,255933,255935,255937,255939,255941,255943,255945,255947,255949,255951,255953,255955,255957],{"class":36,"line":242},[34,255934,8268],{"class":580},[34,255936,17775],{"class":181},[34,255938,165],{"class":580},[34,255940,2741],{"class":50},[34,255942,4063],{"class":181},[34,255944,1301],{"class":580},[34,255946,8315],{"class":181},[34,255948,8318],{"class":50},[34,255950,1798],{"class":181},[34,255952,8324],{"class":50},[34,255954,1798],{"class":181},[34,255956,3162],{"class":50},[34,255958,3415],{"class":181},[34,255960,255961,255963,255966,255968,255970,255972,255974,255976,255978,255980,255982,255984,255986],{"class":36,"line":250},[34,255962,8268],{"class":580},[34,255964,255965],{"class":181}," names",[34,255967,165],{"class":580},[34,255969,66051],{"class":47},[34,255971,815],{"class":181},[34,255973,30113],{"class":50},[34,255975,32840],{"class":181},[34,255977,1301],{"class":580},[34,255979,8315],{"class":181},[34,255981,28504],{"class":54},[34,255983,1798],{"class":181},[34,255985,29116],{"class":54},[34,255987,3415],{"class":181},[34,255989,255990],{"class":36,"line":263},[34,255991,62],{"emptyLinePlaceholder":61},[34,255993,255994],{"class":36,"line":275},[34,255995,255996],{"class":40},"// Tuple - fixed length array with specific types\n",[34,255998,255999,256001,256004,256006,256008,256010,256012,256014,256016,256018,256020,256022,256024,256026],{"class":36,"line":700},[34,256000,8268],{"class":580},[34,256002,256003],{"class":181}," tuple",[34,256005,165],{"class":580},[34,256007,8315],{"class":181},[34,256009,30113],{"class":50},[34,256011,1798],{"class":181},[34,256013,130478],{"class":50},[34,256015,17799],{"class":181},[34,256017,1301],{"class":580},[34,256019,8315],{"class":181},[34,256021,28504],{"class":54},[34,256023,1798],{"class":181},[34,256025,17625],{"class":50},[34,256027,3415],{"class":181},[34,256029,256030],{"class":36,"line":706},[34,256031,62],{"emptyLinePlaceholder":61},[34,256033,256034],{"class":36,"line":715},[34,256035,256036],{"class":40},"// Any and Unknown\n",[34,256038,256039,256041,256044,256046,256048,256050,256053,256055],{"class":36,"line":725},[34,256040,8268],{"class":580},[34,256042,256043],{"class":181}," flexible",[34,256045,165],{"class":580},[34,256047,69686],{"class":50},[34,256049,683],{"class":580},[34,256051,256052],{"class":54}," 'anything'",[34,256054,38395],{"class":181},[34,256056,256057],{"class":40},"// Avoid when possible\n",[34,256059,256060,256062,256065,256067,256070,256072,256075,256077],{"class":36,"line":734},[34,256061,8268],{"class":580},[34,256063,256064],{"class":181}," safe",[34,256066,165],{"class":580},[34,256068,256069],{"class":50}," unknown",[34,256071,683],{"class":580},[34,256073,256074],{"class":54}," 'must check'",[34,256076,38334],{"class":181},[34,256078,256079],{"class":40},"// Safer than any\n",[34,256081,256082],{"class":36,"line":742},[34,256083,62],{"emptyLinePlaceholder":61},[34,256085,256086],{"class":36,"line":748},[34,256087,256088],{"class":40},"// Void and Never\n",[34,256090,256091,256093,256095,256097,256099,256101,256103,256105,256107,256109,256112,256114],{"class":36,"line":754},[34,256092,11044],{"class":580},[34,256094,100651],{"class":47},[34,256096,1607],{"class":181},[34,256098,35213],{"class":675},[34,256100,165],{"class":580},[34,256102,680],{"class":50},[34,256104,1617],{"class":181},[34,256106,165],{"class":580},[34,256108,31514],{"class":50},[34,256110,256111],{"class":181}," { console.",[34,256113,2424],{"class":47},[34,256115,256116],{"class":181},"(msg); }\n",[34,256118,256119,256121,256123,256125,256127,256129,256131,256133,256135,256137,256139,256141,256143,256145],{"class":36,"line":759},[34,256120,11044],{"class":580},[34,256122,88301],{"class":47},[34,256124,1607],{"class":181},[34,256126,35213],{"class":675},[34,256128,165],{"class":580},[34,256130,680],{"class":50},[34,256132,1617],{"class":181},[34,256134,165],{"class":580},[34,256136,178274],{"class":50},[34,256138,30251],{"class":181},[34,256140,35434],{"class":580},[34,256142,809],{"class":580},[34,256144,48752],{"class":47},[34,256146,256116],{"class":181},[388,256148,256149],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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}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":30,"searchDepth":44,"depth":44,"links":256151},[256152],{"id":255829,"depth":44,"text":255824},"Basic Types in TypeScript.",{},"/typescript/basic-types",{"title":255824,"description":256153},"typescript/basic-types",[573,8606,33298,256159],"static-typing","64slMWn3m_yOrptiKUZ7X8u_LUPgLWYu7XagYJZ3e70",{"id":256162,"title":125314,"body":256163,"date":402,"description":256587,"extension":404,"meta":256588,"navigation":61,"order":242,"path":256589,"seo":256590,"stem":256591,"subject":573,"tags":256592,"__hash__":256593},"topics/typescript/classes.md",{"type":8,"value":256164,"toc":256584},[256165,256167,256581],[11,256166,125314],{"id":125319},[25,256168,256170],{"className":571,"code":256169,"language":573,"meta":30,"style":30},"class Person {\n  // Properties with access modifiers\n  public name: string;\n  private age: number;\n  protected id: number;\n  readonly createdAt: Date;\n  \n  // Parameter properties shorthand\n  constructor(\n    public firstName: string,\n    private lastName: string\n  ) {\n    this.createdAt = new Date();\n  }\n  \n  // Method\n  greet(): string {\n    return `Hello, ${this.firstName}`;\n  }\n  \n  // Getter and Setter\n  get fullName(): string {\n    return `${this.firstName} ${this.lastName}`;\n  }\n  \n  set fullName(value: string) {\n    [this.firstName, this.lastName] = value.split(' ');\n  }\n  \n  // Static members\n  static species = 'Homo sapiens';\n  static create(name: string): Person {\n    return new Person(name, '');\n  }\n}\n\n// Abstract class\nabstract class Animal {\n  abstract makeSound(): void;\n  \n  move(): void {\n    console.log('Moving...');\n  }\n}\n",[20,256171,256172,256180,256185,256198,256210,256223,256237,256241,256246,256252,256265,256276,256281,256296,256300,256304,256308,256320,256336,256340,256344,256349,256364,256388,256392,256396,256412,256438,256442,256446,256451,256465,256487,256501,256505,256509,256513,256517,256527,256543,256547,256560,256573,256577],{"__ignoreMap":30},[34,256173,256174,256176,256178],{"class":36,"line":37},[34,256175,30060],{"class":580},[34,256177,30063],{"class":47},[34,256179,661],{"class":181},[34,256181,256182],{"class":36,"line":44},[34,256183,256184],{"class":40},"  // Properties with access modifiers\n",[34,256186,256187,256190,256192,256194,256196],{"class":36,"line":58},[34,256188,256189],{"class":580},"  public",[34,256191,12323],{"class":675},[34,256193,165],{"class":580},[34,256195,680],{"class":50},[34,256197,593],{"class":181},[34,256199,256200,256202,256204,256206,256208],{"class":36,"line":65},[34,256201,1518],{"class":580},[34,256203,33593],{"class":675},[34,256205,165],{"class":580},[34,256207,2741],{"class":50},[34,256209,593],{"class":181},[34,256211,256212,256215,256217,256219,256221],{"class":36,"line":71},[34,256213,256214],{"class":580},"  protected",[34,256216,115557],{"class":675},[34,256218,165],{"class":580},[34,256220,2741],{"class":50},[34,256222,593],{"class":181},[34,256224,256225,256228,256231,256233,256235],{"class":36,"line":77},[34,256226,256227],{"class":580},"  readonly",[34,256229,256230],{"class":675}," createdAt",[34,256232,165],{"class":580},[34,256234,60453],{"class":47},[34,256236,593],{"class":181},[34,256238,256239],{"class":36,"line":82},[34,256240,827],{"class":181},[34,256242,256243],{"class":36,"line":88},[34,256244,256245],{"class":40},"  // Parameter properties shorthand\n",[34,256247,256248,256250],{"class":36,"line":242},[34,256249,4303],{"class":580},[34,256251,1882],{"class":181},[34,256253,256254,256256,256259,256261,256263],{"class":36,"line":250},[34,256255,34159],{"class":580},[34,256257,256258],{"class":675}," firstName",[34,256260,165],{"class":580},[34,256262,680],{"class":50},[34,256264,624],{"class":181},[34,256266,256267,256269,256272,256274],{"class":36,"line":263},[34,256268,34138],{"class":580},[34,256270,256271],{"class":675}," lastName",[34,256273,165],{"class":580},[34,256275,65985],{"class":50},[34,256277,256278],{"class":36,"line":275},[34,256279,256280],{"class":181},"  ) {\n",[34,256282,256283,256285,256288,256290,256292,256294],{"class":36,"line":700},[34,256284,842],{"class":50},[34,256286,256287],{"class":181},".createdAt ",[34,256289,1301],{"class":580},[34,256291,809],{"class":580},[34,256293,60453],{"class":47},[34,256295,851],{"class":181},[34,256297,256298],{"class":36,"line":706},[34,256299,857],{"class":181},[34,256301,256302],{"class":36,"line":715},[34,256303,827],{"class":181},[34,256305,256306],{"class":36,"line":725},[34,256307,125398],{"class":40},[34,256309,256310,256312,256314,256316,256318],{"class":36,"line":734},[34,256311,125403],{"class":47},[34,256313,1546],{"class":181},[34,256315,165],{"class":580},[34,256317,680],{"class":50},[34,256319,661],{"class":181},[34,256321,256322,256324,256326,256328,256330,256332,256334],{"class":36,"line":742},[34,256323,1564],{"class":580},[34,256325,125702],{"class":54},[34,256327,3207],{"class":50},[34,256329,151],{"class":54},[34,256331,228310],{"class":181},[34,256333,3925],{"class":54},[34,256335,593],{"class":181},[34,256337,256338],{"class":36,"line":748},[34,256339,857],{"class":181},[34,256341,256342],{"class":36,"line":754},[34,256343,827],{"class":181},[34,256345,256346],{"class":36,"line":759},[34,256347,256348],{"class":40},"  // Getter and Setter\n",[34,256350,256351,256353,256356,256358,256360,256362],{"class":36,"line":771},[34,256352,125440],{"class":580},[34,256354,256355],{"class":47}," fullName",[34,256357,1546],{"class":181},[34,256359,165],{"class":580},[34,256361,680],{"class":50},[34,256363,661],{"class":181},[34,256365,256366,256368,256370,256372,256374,256376,256378,256380,256382,256384,256386],{"class":36,"line":794},[34,256367,1564],{"class":580},[34,256369,60305],{"class":54},[34,256371,3207],{"class":50},[34,256373,151],{"class":54},[34,256375,228310],{"class":181},[34,256377,71832],{"class":54},[34,256379,3207],{"class":50},[34,256381,151],{"class":54},[34,256383,228337],{"class":181},[34,256385,3925],{"class":54},[34,256387,593],{"class":181},[34,256389,256390],{"class":36,"line":824},[34,256391,857],{"class":181},[34,256393,256394],{"class":36,"line":830},[34,256395,827],{"class":181},[34,256397,256398,256400,256402,256404,256406,256408,256410],{"class":36,"line":839},[34,256399,125487],{"class":580},[34,256401,256355],{"class":47},[34,256403,1607],{"class":181},[34,256405,2871],{"class":675},[34,256407,165],{"class":580},[34,256409,680],{"class":50},[34,256411,2416],{"class":181},[34,256413,256414,256416,256418,256421,256423,256426,256428,256430,256432,256434,256436],{"class":36,"line":854},[34,256415,33545],{"class":181},[34,256417,3207],{"class":50},[34,256419,256420],{"class":181},".firstName, ",[34,256422,3207],{"class":50},[34,256424,256425],{"class":181},".lastName] ",[34,256427,1301],{"class":580},[34,256429,2927],{"class":181},[34,256431,124354],{"class":47},[34,256433,1607],{"class":181},[34,256435,37895],{"class":54},[34,256437,1586],{"class":181},[34,256439,256440],{"class":36,"line":860},[34,256441,857],{"class":181},[34,256443,256444],{"class":36,"line":865},[34,256445,827],{"class":181},[34,256447,256448],{"class":36,"line":870},[34,256449,256450],{"class":40},"  // Static members\n",[34,256452,256453,256455,256458,256460,256463],{"class":36,"line":876},[34,256454,70420],{"class":580},[34,256456,256457],{"class":675}," species",[34,256459,683],{"class":580},[34,256461,256462],{"class":54}," 'Homo sapiens'",[34,256464,593],{"class":181},[34,256466,256467,256469,256471,256473,256475,256477,256479,256481,256483,256485],{"class":36,"line":885},[34,256468,70420],{"class":580},[34,256470,7077],{"class":47},[34,256472,1607],{"class":181},[34,256474,178],{"class":675},[34,256476,165],{"class":580},[34,256478,680],{"class":50},[34,256480,1617],{"class":181},[34,256482,165],{"class":580},[34,256484,30063],{"class":47},[34,256486,661],{"class":181},[34,256488,256489,256491,256493,256495,256497,256499],{"class":36,"line":895},[34,256490,1564],{"class":580},[34,256492,809],{"class":580},[34,256494,30063],{"class":47},[34,256496,125557],{"class":181},[34,256498,3151],{"class":54},[34,256500,1586],{"class":181},[34,256502,256503],{"class":36,"line":904},[34,256504,857],{"class":181},[34,256506,256507],{"class":36,"line":915},[34,256508,693],{"class":181},[34,256510,256511],{"class":36,"line":927},[34,256512,62],{"emptyLinePlaceholder":61},[34,256514,256515],{"class":36,"line":932},[34,256516,36056],{"class":40},[34,256518,256519,256521,256523,256525],{"class":36,"line":944},[34,256520,59101],{"class":580},[34,256522,655],{"class":580},[34,256524,31500],{"class":47},[34,256526,661],{"class":181},[34,256528,256529,256532,256535,256537,256539,256541],{"class":36,"line":966},[34,256530,256531],{"class":580},"  abstract",[34,256533,256534],{"class":47}," makeSound",[34,256536,1546],{"class":181},[34,256538,165],{"class":580},[34,256540,31514],{"class":50},[34,256542,593],{"class":181},[34,256544,256545],{"class":36,"line":1948},[34,256546,827],{"class":181},[34,256548,256549,256552,256554,256556,256558],{"class":36,"line":1953},[34,256550,256551],{"class":47},"  move",[34,256553,1546],{"class":181},[34,256555,165],{"class":580},[34,256557,31514],{"class":50},[34,256559,661],{"class":181},[34,256561,256562,256564,256566,256568,256571],{"class":36,"line":3616},[34,256563,2421],{"class":181},[34,256565,2424],{"class":47},[34,256567,1607],{"class":181},[34,256569,256570],{"class":54},"'Moving...'",[34,256572,1586],{"class":181},[34,256574,256575],{"class":36,"line":3622},[34,256576,857],{"class":181},[34,256578,256579],{"class":36,"line":3642},[34,256580,693],{"class":181},[388,256582,256583],{},"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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .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);}",{"title":30,"searchDepth":44,"depth":44,"links":256585},[256586],{"id":125319,"depth":44,"text":125314},"Classes in TypeScript.",{},"/typescript/classes",{"title":125314,"description":256587},"typescript/classes",[573,8606,33298,256159],"wtxJU77kxB58s3sXyv4xhi0wwUXv9-5_2wpd7KerWsk",{"id":256595,"title":25912,"body":256596,"date":402,"description":256814,"extension":404,"meta":256815,"navigation":61,"order":275,"path":256816,"seo":256817,"stem":256818,"subject":573,"tags":256819,"__hash__":256820},"topics/typescript/enums.md",{"type":8,"value":256597,"toc":256811},[256598,256600,256809],[11,256599,25912],{"id":25917},[25,256601,256603],{"className":571,"code":256602,"language":573,"meta":30,"style":30},"// Numeric enum\nenum Direction {\n  Up,      // 0\n  Down,    // 1\n  Left,    // 2\n  Right    // 3\n}\n\n// String enum\nenum Status {\n  Pending = 'PENDING',\n  Active = 'ACTIVE',\n  Inactive = 'INACTIVE'\n}\n\n// Const enum (inlined at compile time)\nconst enum Color {\n  Red = '#ff0000',\n  Green = '#00ff00',\n  Blue = '#0000ff'\n}\n\n// Usage\nlet dir: Direction = Direction.Up;\nlet status: Status = Status.Active;\n",[20,256604,256605,256610,256618,256628,256637,256646,256654,256658,256662,256667,256675,256687,256699,256709,256713,256717,256722,256732,256744,256756,256766,256770,256774,256778,256794],{"__ignoreMap":30},[34,256606,256607],{"class":36,"line":37},[34,256608,256609],{"class":40},"// Numeric enum\n",[34,256611,256612,256614,256616],{"class":36,"line":44},[34,256613,137134],{"class":580},[34,256615,137139],{"class":47},[34,256617,661],{"class":181},[34,256619,256620,256623,256625],{"class":36,"line":58},[34,256621,256622],{"class":50},"  Up",[34,256624,129319],{"class":181},[34,256626,256627],{"class":40},"// 0\n",[34,256629,256630,256633,256635],{"class":36,"line":65},[34,256631,256632],{"class":50},"  Down",[34,256634,164137],{"class":181},[34,256636,220651],{"class":40},[34,256638,256639,256642,256644],{"class":36,"line":71},[34,256640,256641],{"class":50},"  Left",[34,256643,164137],{"class":181},[34,256645,220764],{"class":40},[34,256647,256648,256651],{"class":36,"line":77},[34,256649,256650],{"class":50},"  Right",[34,256652,256653],{"class":40},"    // 3\n",[34,256655,256656],{"class":36,"line":82},[34,256657,693],{"class":181},[34,256659,256660],{"class":36,"line":88},[34,256661,62],{"emptyLinePlaceholder":61},[34,256663,256664],{"class":36,"line":242},[34,256665,256666],{"class":40},"// String enum\n",[34,256668,256669,256671,256673],{"class":36,"line":250},[34,256670,137134],{"class":580},[34,256672,172831],{"class":47},[34,256674,661],{"class":181},[34,256676,256677,256680,256682,256685],{"class":36,"line":263},[34,256678,256679],{"class":50},"  Pending",[34,256681,683],{"class":580},[34,256683,256684],{"class":54}," 'PENDING'",[34,256686,624],{"class":181},[34,256688,256689,256692,256694,256697],{"class":36,"line":275},[34,256690,256691],{"class":50},"  Active",[34,256693,683],{"class":580},[34,256695,256696],{"class":54}," 'ACTIVE'",[34,256698,624],{"class":181},[34,256700,256701,256704,256706],{"class":36,"line":700},[34,256702,256703],{"class":50},"  Inactive",[34,256705,683],{"class":580},[34,256707,256708],{"class":54}," 'INACTIVE'\n",[34,256710,256711],{"class":36,"line":706},[34,256712,693],{"class":181},[34,256714,256715],{"class":36,"line":715},[34,256716,62],{"emptyLinePlaceholder":61},[34,256718,256719],{"class":36,"line":725},[34,256720,256721],{"class":40},"// Const enum (inlined at compile time)\n",[34,256723,256724,256726,256728,256730],{"class":36,"line":734},[34,256725,14676],{"class":580},[34,256727,20315],{"class":580},[34,256729,137163],{"class":47},[34,256731,661],{"class":181},[34,256733,256734,256737,256739,256742],{"class":36,"line":742},[34,256735,256736],{"class":50},"  Red",[34,256738,683],{"class":580},[34,256740,256741],{"class":54}," '#ff0000'",[34,256743,624],{"class":181},[34,256745,256746,256749,256751,256754],{"class":36,"line":748},[34,256747,256748],{"class":50},"  Green",[34,256750,683],{"class":580},[34,256752,256753],{"class":54}," '#00ff00'",[34,256755,624],{"class":181},[34,256757,256758,256761,256763],{"class":36,"line":754},[34,256759,256760],{"class":50},"  Blue",[34,256762,683],{"class":580},[34,256764,256765],{"class":54}," '#0000ff'\n",[34,256767,256768],{"class":36,"line":759},[34,256769,693],{"class":181},[34,256771,256772],{"class":36,"line":771},[34,256773,62],{"emptyLinePlaceholder":61},[34,256775,256776],{"class":36,"line":794},[34,256777,1113],{"class":40},[34,256779,256780,256782,256785,256787,256789,256791],{"class":36,"line":824},[34,256781,8268],{"class":580},[34,256783,256784],{"class":181}," dir",[34,256786,165],{"class":580},[34,256788,137139],{"class":47},[34,256790,683],{"class":580},[34,256792,256793],{"class":181}," Direction.Up;\n",[34,256795,256796,256798,256800,256802,256804,256806],{"class":36,"line":830},[34,256797,8268],{"class":580},[34,256799,94498],{"class":181},[34,256801,165],{"class":580},[34,256803,172831],{"class":47},[34,256805,683],{"class":580},[34,256807,256808],{"class":181}," Status.Active;\n",[388,256810,49910],{},{"title":30,"searchDepth":44,"depth":44,"links":256812},[256813],{"id":25917,"depth":44,"text":25912},"Enums in TypeScript.",{},"/typescript/enums",{"title":25912,"description":256814},"typescript/enums",[573,8606,33298,256159],"8HEEfVJItugJ1rLXnHyYoJJD-I-qPsI1BsfQP_R40l4",{"id":256822,"title":26423,"body":256823,"date":402,"description":257126,"extension":404,"meta":257127,"navigation":61,"order":82,"path":257128,"seo":257129,"stem":257130,"subject":573,"tags":257131,"__hash__":257132},"topics/typescript/generics.md",{"type":8,"value":256824,"toc":257123},[256825,256827,257121],[11,256826,26423],{"id":26428},[25,256828,256830],{"className":571,"code":256829,"language":573,"meta":30,"style":30},"// Generic function\nfunction identity\u003CT>(arg: T): T {\n  return arg;\n}\nconst result = identity\u003Cstring>('hello');\n\n// Generic interface\ninterface Container\u003CT> {\n  value: T;\n  getValue(): T;\n}\n\n// Generic constraints\nfunction getLength\u003CT extends { length: number }>(item: T): number {\n  return item.length;\n}\n\n// Multiple type parameters\nfunction pair\u003CK, V>(key: K, value: V): [K, V] {\n  return [key, value];\n}\n\n// Generic defaults\ninterface Response\u003CT = any> {\n  data: T;\n  status: number;\n}\n",[20,256831,256832,256836,256864,256871,256875,256895,256899,256904,256916,256926,256939,256943,256947,256951,256989,257000,257004,257008,257013,257060,257067,257071,257075,257080,257096,257107,257117],{"__ignoreMap":30},[34,256833,256834],{"class":36,"line":37},[34,256835,213885],{"class":40},[34,256837,256838,256840,256843,256845,256847,256849,256852,256854,256856,256858,256860,256862],{"class":36,"line":44},[34,256839,11044],{"class":580},[34,256841,256842],{"class":47}," identity",[34,256844,815],{"class":181},[34,256846,32671],{"class":47},[34,256848,1737],{"class":181},[34,256850,256851],{"class":675},"arg",[34,256853,165],{"class":580},[34,256855,32664],{"class":47},[34,256857,1617],{"class":181},[34,256859,165],{"class":580},[34,256861,32664],{"class":47},[34,256863,661],{"class":181},[34,256865,256866,256868],{"class":36,"line":58},[34,256867,8155],{"class":580},[34,256869,256870],{"class":181}," arg;\n",[34,256872,256873],{"class":36,"line":65},[34,256874,693],{"class":181},[34,256876,256877,256879,256881,256883,256885,256887,256889,256891,256893],{"class":36,"line":71},[34,256878,14676],{"class":580},[34,256880,11103],{"class":50},[34,256882,683],{"class":580},[34,256884,256842],{"class":47},[34,256886,815],{"class":181},[34,256888,30113],{"class":50},[34,256890,1737],{"class":181},[34,256892,76873],{"class":54},[34,256894,1586],{"class":181},[34,256896,256897],{"class":36,"line":77},[34,256898,62],{"emptyLinePlaceholder":61},[34,256900,256901],{"class":36,"line":82},[34,256902,256903],{"class":40},"// Generic interface\n",[34,256905,256906,256908,256910,256912,256914],{"class":36,"line":88},[34,256907,17562],{"class":580},[34,256909,32738],{"class":47},[34,256911,815],{"class":181},[34,256913,32671],{"class":47},[34,256915,1719],{"class":181},[34,256917,256918,256920,256922,256924],{"class":36,"line":242},[34,256919,248900],{"class":675},[34,256921,165],{"class":580},[34,256923,32664],{"class":47},[34,256925,593],{"class":181},[34,256927,256928,256931,256933,256935,256937],{"class":36,"line":250},[34,256929,256930],{"class":47},"  getValue",[34,256932,1546],{"class":181},[34,256934,165],{"class":580},[34,256936,32664],{"class":47},[34,256938,593],{"class":181},[34,256940,256941],{"class":36,"line":263},[34,256942,693],{"class":181},[34,256944,256945],{"class":36,"line":275},[34,256946,62],{"emptyLinePlaceholder":61},[34,256948,256949],{"class":36,"line":700},[34,256950,35914],{"class":40},[34,256952,256953,256955,256958,256960,256962,256964,256966,256968,256970,256972,256975,256977,256979,256981,256983,256985,256987],{"class":36,"line":706},[34,256954,11044],{"class":580},[34,256956,256957],{"class":47}," getLength",[34,256959,815],{"class":181},[34,256961,32671],{"class":47},[34,256963,59185],{"class":580},[34,256965,30251],{"class":181},[34,256967,2908],{"class":675},[34,256969,165],{"class":580},[34,256971,2741],{"class":50},[34,256973,256974],{"class":181}," }>(",[34,256976,4935],{"class":675},[34,256978,165],{"class":580},[34,256980,32664],{"class":47},[34,256982,1617],{"class":181},[34,256984,165],{"class":580},[34,256986,2741],{"class":50},[34,256988,661],{"class":181},[34,256990,256991,256993,256996,256998],{"class":36,"line":715},[34,256992,8155],{"class":580},[34,256994,256995],{"class":181}," item.",[34,256997,2908],{"class":50},[34,256999,593],{"class":181},[34,257001,257002],{"class":36,"line":725},[34,257003,693],{"class":181},[34,257005,257006],{"class":36,"line":734},[34,257007,62],{"emptyLinePlaceholder":61},[34,257009,257010],{"class":36,"line":742},[34,257011,257012],{"class":40},"// Multiple type parameters\n",[34,257014,257015,257017,257019,257021,257023,257025,257028,257030,257032,257034,257036,257038,257040,257042,257045,257047,257049,257051,257053,257055,257057],{"class":36,"line":748},[34,257016,11044],{"class":580},[34,257018,49989],{"class":47},[34,257020,815],{"class":181},[34,257022,64452],{"class":47},[34,257024,1798],{"class":181},[34,257026,257027],{"class":47},"V",[34,257029,1737],{"class":181},[34,257031,141344],{"class":675},[34,257033,165],{"class":580},[34,257035,11576],{"class":47},[34,257037,1798],{"class":181},[34,257039,2871],{"class":675},[34,257041,165],{"class":580},[34,257043,257044],{"class":47}," V",[34,257046,1617],{"class":181},[34,257048,165],{"class":580},[34,257050,8315],{"class":181},[34,257052,64452],{"class":47},[34,257054,1798],{"class":181},[34,257056,257027],{"class":47},[34,257058,257059],{"class":181},"] {\n",[34,257061,257062,257064],{"class":36,"line":754},[34,257063,8155],{"class":580},[34,257065,257066],{"class":181}," [key, value];\n",[34,257068,257069],{"class":36,"line":759},[34,257070,693],{"class":181},[34,257072,257073],{"class":36,"line":771},[34,257074,62],{"emptyLinePlaceholder":61},[34,257076,257077],{"class":36,"line":794},[34,257078,257079],{"class":40},"// Generic defaults\n",[34,257081,257082,257084,257086,257088,257090,257092,257094],{"class":36,"line":824},[34,257083,17562],{"class":580},[34,257085,15463],{"class":47},[34,257087,815],{"class":181},[34,257089,32671],{"class":47},[34,257091,683],{"class":580},[34,257093,69686],{"class":50},[34,257095,1719],{"class":181},[34,257097,257098,257101,257103,257105],{"class":36,"line":830},[34,257099,257100],{"class":675},"  data",[34,257102,165],{"class":580},[34,257104,32664],{"class":47},[34,257106,593],{"class":181},[34,257108,257109,257111,257113,257115],{"class":36,"line":839},[34,257110,153693],{"class":675},[34,257112,165],{"class":580},[34,257114,2741],{"class":50},[34,257116,593],{"class":181},[34,257118,257119],{"class":36,"line":854},[34,257120,693],{"class":181},[388,257122,17665],{},{"title":30,"searchDepth":44,"depth":44,"links":257124},[257125],{"id":26428,"depth":44,"text":26423},"Generics in TypeScript.",{},"/typescript/generics",{"title":26423,"description":257126},"typescript/generics",[573,8606,33298,256159],"zLmdF-CRyMOtQZKSpR4xeHhAGvuS2NFhaX_wvBoOfNA",{"id":257134,"title":106405,"body":257135,"date":402,"description":257353,"extension":404,"meta":257354,"navigation":61,"order":65,"path":257355,"seo":257356,"stem":257357,"subject":573,"tags":257358,"__hash__":257359},"topics/typescript/interfaces.md",{"type":8,"value":257136,"toc":257350},[257137,257139,257348],[11,257138,106405],{"id":106410},[25,257140,257142],{"className":571,"code":257141,"language":573,"meta":30,"style":30},"// Define object shape\ninterface User {\n  id: number;\n  name: string;\n  email?: string;              // Optional property\n  readonly createdAt: Date;    // Cannot be modified\n}\n\n// Extend interfaces\ninterface Admin extends User {\n  role: 'admin';\n  permissions: string[];\n}\n\n// Function interface\ninterface SearchFunc {\n  (query: string, limit?: number): Promise\u003CUser[]>;\n}\n\n// Index signatures\ninterface Dictionary {\n  [key: string]: string;\n}\n",[20,257143,257144,257149,257157,257167,257177,257190,257205,257209,257213,257218,257230,257241,257252,257256,257260,257265,257274,257305,257309,257313,257318,257326,257344],{"__ignoreMap":30},[34,257145,257146],{"class":36,"line":37},[34,257147,257148],{"class":40},"// Define object shape\n",[34,257150,257151,257153,257155],{"class":36,"line":44},[34,257152,17562],{"class":580},[34,257154,3950],{"class":47},[34,257156,661],{"class":181},[34,257158,257159,257161,257163,257165],{"class":36,"line":58},[34,257160,116886],{"class":675},[34,257162,165],{"class":580},[34,257164,2741],{"class":50},[34,257166,593],{"class":181},[34,257168,257169,257171,257173,257175],{"class":36,"line":65},[34,257170,7350],{"class":675},[34,257172,165],{"class":580},[34,257174,680],{"class":50},[34,257176,593],{"class":181},[34,257178,257179,257181,257183,257185,257187],{"class":36,"line":71},[34,257180,132578],{"class":675},[34,257182,66309],{"class":580},[34,257184,680],{"class":50},[34,257186,38378],{"class":181},[34,257188,257189],{"class":40},"// Optional property\n",[34,257191,257192,257194,257196,257198,257200,257202],{"class":36,"line":77},[34,257193,256227],{"class":580},[34,257195,256230],{"class":675},[34,257197,165],{"class":580},[34,257199,60453],{"class":47},[34,257201,64381],{"class":181},[34,257203,257204],{"class":40},"// Cannot be modified\n",[34,257206,257207],{"class":36,"line":82},[34,257208,693],{"class":181},[34,257210,257211],{"class":36,"line":88},[34,257212,62],{"emptyLinePlaceholder":61},[34,257214,257215],{"class":36,"line":242},[34,257216,257217],{"class":40},"// Extend interfaces\n",[34,257219,257220,257222,257224,257226,257228],{"class":36,"line":250},[34,257221,17562],{"class":580},[34,257223,175001],{"class":47},[34,257225,59185],{"class":580},[34,257227,3950],{"class":47},[34,257229,661],{"class":181},[34,257231,257232,257235,257237,257239],{"class":36,"line":263},[34,257233,257234],{"class":675},"  role",[34,257236,165],{"class":580},[34,257238,131649],{"class":54},[34,257240,593],{"class":181},[34,257242,257243,257246,257248,257250],{"class":36,"line":275},[34,257244,257245],{"class":675},"  permissions",[34,257247,165],{"class":580},[34,257249,680],{"class":50},[34,257251,72815],{"class":181},[34,257253,257254],{"class":36,"line":700},[34,257255,693],{"class":181},[34,257257,257258],{"class":36,"line":706},[34,257259,62],{"emptyLinePlaceholder":61},[34,257261,257262],{"class":36,"line":715},[34,257263,257264],{"class":40},"// Function interface\n",[34,257266,257267,257269,257272],{"class":36,"line":725},[34,257268,17562],{"class":580},[34,257270,257271],{"class":47}," SearchFunc",[34,257273,661],{"class":181},[34,257275,257276,257278,257280,257282,257284,257286,257288,257290,257292,257294,257296,257298,257300,257302],{"class":36,"line":734},[34,257277,151460],{"class":181},[34,257279,171552],{"class":675},[34,257281,165],{"class":580},[34,257283,680],{"class":50},[34,257285,1798],{"class":181},[34,257287,2880],{"class":675},[34,257289,66309],{"class":580},[34,257291,2741],{"class":50},[34,257293,1617],{"class":181},[34,257295,165],{"class":580},[34,257297,126237],{"class":47},[34,257299,815],{"class":181},[34,257301,3860],{"class":47},[34,257303,257304],{"class":181},"[]>;\n",[34,257306,257307],{"class":36,"line":742},[34,257308,693],{"class":181},[34,257310,257311],{"class":36,"line":748},[34,257312,62],{"emptyLinePlaceholder":61},[34,257314,257315],{"class":36,"line":754},[34,257316,257317],{"class":40},"// Index signatures\n",[34,257319,257320,257322,257324],{"class":36,"line":759},[34,257321,17562],{"class":580},[34,257323,33526],{"class":47},[34,257325,661],{"class":181},[34,257327,257328,257330,257332,257334,257336,257338,257340,257342],{"class":36,"line":771},[34,257329,66641],{"class":181},[34,257331,141344],{"class":675},[34,257333,165],{"class":580},[34,257335,680],{"class":50},[34,257337,10173],{"class":181},[34,257339,165],{"class":580},[34,257341,680],{"class":50},[34,257343,593],{"class":181},[34,257345,257346],{"class":36,"line":794},[34,257347,693],{"class":181},[388,257349,17665],{},{"title":30,"searchDepth":44,"depth":44,"links":257351},[257352],{"id":106410,"depth":44,"text":106405},"Interfaces in TypeScript.",{},"/typescript/interfaces",{"title":106405,"description":257353},"typescript/interfaces",[573,8606,33298,256159],"mFUgXi58tufGbu3lNVrJJYWZRvSaHPSVroB-b1lc3XY",{"id":257361,"title":257362,"body":257363,"date":402,"description":257702,"extension":404,"meta":257703,"navigation":61,"order":700,"path":257704,"seo":257705,"stem":257706,"subject":573,"tags":257707,"__hash__":257708},"topics/typescript/mapped-types.md","Mapped Types",{"type":8,"value":257364,"toc":257699},[257365,257368,257697],[11,257366,257362],{"id":257367},"mapped-types",[25,257369,257371],{"className":571,"code":257370,"language":573,"meta":30,"style":30},"// Create new type by transforming properties\ntype Readonly\u003CT> = {\n  readonly [P in keyof T]: T[P];\n};\n\ntype Optional\u003CT> = {\n  [P in keyof T]?: T[P];\n};\n\ntype Nullable\u003CT> = {\n  [P in keyof T]: T[P] | null;\n};\n\n// Conditional types\ntype NonNullable\u003CT> = T extends null | undefined ? never : T;\n\ntype Flatten\u003CT> = T extends Array\u003Cinfer U> ? U : T;\n\n// Key remapping\ntype Getters\u003CT> = {\n  [K in keyof T as `get${Capitalize\u003Cstring & K>}`]: () => T[K];\n};\n",[20,257372,257373,257378,257395,257423,257427,257431,257448,257472,257476,257480,257497,257527,257531,257535,257540,257575,257579,257619,257623,257628,257645,257693],{"__ignoreMap":30},[34,257374,257375],{"class":36,"line":37},[34,257376,257377],{"class":40},"// Create new type by transforming properties\n",[34,257379,257380,257382,257385,257387,257389,257391,257393],{"class":36,"line":44},[34,257381,41324],{"class":580},[34,257383,257384],{"class":47}," Readonly",[34,257386,815],{"class":181},[34,257388,32671],{"class":47},[34,257390,32840],{"class":181},[34,257392,1301],{"class":580},[34,257394,661],{"class":181},[34,257396,257397,257399,257401,257404,257406,257409,257411,257413,257415,257417,257419,257421],{"class":36,"line":58},[34,257398,256227],{"class":580},[34,257400,8315],{"class":181},[34,257402,257403],{"class":47},"P",[34,257405,36375],{"class":580},[34,257407,257408],{"class":580}," keyof",[34,257410,32664],{"class":47},[34,257412,10173],{"class":181},[34,257414,165],{"class":580},[34,257416,32664],{"class":47},[34,257418,10260],{"class":181},[34,257420,257403],{"class":47},[34,257422,3415],{"class":181},[34,257424,257425],{"class":36,"line":65},[34,257426,17632],{"class":181},[34,257428,257429],{"class":36,"line":71},[34,257430,62],{"emptyLinePlaceholder":61},[34,257432,257433,257435,257438,257440,257442,257444,257446],{"class":36,"line":77},[34,257434,41324],{"class":580},[34,257436,257437],{"class":47}," Optional",[34,257439,815],{"class":181},[34,257441,32671],{"class":47},[34,257443,32840],{"class":181},[34,257445,1301],{"class":580},[34,257447,661],{"class":181},[34,257449,257450,257452,257454,257456,257458,257460,257462,257464,257466,257468,257470],{"class":36,"line":82},[34,257451,66641],{"class":181},[34,257453,257403],{"class":47},[34,257455,36375],{"class":580},[34,257457,257408],{"class":580},[34,257459,32664],{"class":47},[34,257461,10173],{"class":181},[34,257463,66309],{"class":580},[34,257465,32664],{"class":47},[34,257467,10260],{"class":181},[34,257469,257403],{"class":47},[34,257471,3415],{"class":181},[34,257473,257474],{"class":36,"line":88},[34,257475,17632],{"class":181},[34,257477,257478],{"class":36,"line":242},[34,257479,62],{"emptyLinePlaceholder":61},[34,257481,257482,257484,257487,257489,257491,257493,257495],{"class":36,"line":250},[34,257483,41324],{"class":580},[34,257485,257486],{"class":47}," Nullable",[34,257488,815],{"class":181},[34,257490,32671],{"class":47},[34,257492,32840],{"class":181},[34,257494,1301],{"class":580},[34,257496,661],{"class":181},[34,257498,257499,257501,257503,257505,257507,257509,257511,257513,257515,257517,257519,257521,257523,257525],{"class":36,"line":263},[34,257500,66641],{"class":181},[34,257502,257403],{"class":47},[34,257504,36375],{"class":580},[34,257506,257408],{"class":580},[34,257508,32664],{"class":47},[34,257510,10173],{"class":181},[34,257512,165],{"class":580},[34,257514,32664],{"class":47},[34,257516,10260],{"class":181},[34,257518,257403],{"class":47},[34,257520,17799],{"class":181},[34,257522,2670],{"class":580},[34,257524,13898],{"class":50},[34,257526,593],{"class":181},[34,257528,257529],{"class":36,"line":275},[34,257530,17632],{"class":181},[34,257532,257533],{"class":36,"line":700},[34,257534,62],{"emptyLinePlaceholder":61},[34,257536,257537],{"class":36,"line":706},[34,257538,257539],{"class":40},"// Conditional types\n",[34,257541,257542,257544,257547,257549,257551,257553,257555,257557,257559,257561,257563,257565,257567,257569,257571,257573],{"class":36,"line":715},[34,257543,41324],{"class":580},[34,257545,257546],{"class":47}," NonNullable",[34,257548,815],{"class":181},[34,257550,32671],{"class":47},[34,257552,32840],{"class":181},[34,257554,1301],{"class":580},[34,257556,32664],{"class":47},[34,257558,59185],{"class":580},[34,257560,13898],{"class":50},[34,257562,7197],{"class":580},[34,257564,255916],{"class":50},[34,257566,131598],{"class":580},[34,257568,178274],{"class":50},[34,257570,64223],{"class":580},[34,257572,32664],{"class":47},[34,257574,593],{"class":181},[34,257576,257577],{"class":36,"line":725},[34,257578,62],{"emptyLinePlaceholder":61},[34,257580,257581,257583,257586,257588,257590,257592,257594,257596,257598,257600,257602,257605,257607,257609,257611,257613,257615,257617],{"class":36,"line":734},[34,257582,41324],{"class":580},[34,257584,257585],{"class":47}," Flatten",[34,257587,815],{"class":181},[34,257589,32671],{"class":47},[34,257591,32840],{"class":181},[34,257593,1301],{"class":580},[34,257595,32664],{"class":47},[34,257597,59185],{"class":580},[34,257599,66051],{"class":47},[34,257601,815],{"class":181},[34,257603,257604],{"class":580},"infer",[34,257606,11564],{"class":47},[34,257608,32840],{"class":181},[34,257610,18954],{"class":580},[34,257612,11564],{"class":47},[34,257614,64223],{"class":580},[34,257616,32664],{"class":47},[34,257618,593],{"class":181},[34,257620,257621],{"class":36,"line":742},[34,257622,62],{"emptyLinePlaceholder":61},[34,257624,257625],{"class":36,"line":748},[34,257626,257627],{"class":40},"// Key remapping\n",[34,257629,257630,257632,257635,257637,257639,257641,257643],{"class":36,"line":754},[34,257631,41324],{"class":580},[34,257633,257634],{"class":47}," Getters",[34,257636,815],{"class":181},[34,257638,32671],{"class":47},[34,257640,32840],{"class":181},[34,257642,1301],{"class":580},[34,257644,661],{"class":181},[34,257646,257647,257649,257651,257653,257655,257657,257659,257662,257665,257667,257669,257671,257673,257675,257677,257679,257681,257683,257685,257687,257689,257691],{"class":36,"line":759},[34,257648,66641],{"class":181},[34,257650,64452],{"class":47},[34,257652,36375],{"class":580},[34,257654,257408],{"class":580},[34,257656,32664],{"class":47},[34,257658,91551],{"class":580},[34,257660,257661],{"class":54}," `get${",[34,257663,257664],{"class":47},"Capitalize",[34,257666,815],{"class":54},[34,257668,30113],{"class":50},[34,257670,11373],{"class":580},[34,257672,11576],{"class":47},[34,257674,5691],{"class":54},[34,257676,3925],{"class":54},[34,257678,10173],{"class":181},[34,257680,165],{"class":580},[34,257682,17406],{"class":181},[34,257684,3361],{"class":580},[34,257686,32664],{"class":47},[34,257688,10260],{"class":181},[34,257690,64452],{"class":47},[34,257692,3415],{"class":181},[34,257694,257695],{"class":36,"line":771},[34,257696,17632],{"class":181},[388,257698,49910],{},{"title":30,"searchDepth":44,"depth":44,"links":257700},[257701],{"id":257367,"depth":44,"text":257362},"Mapped Types in TypeScript.",{},"/typescript/mapped-types",{"title":257362,"description":257702},"typescript/mapped-types",[573,8606,33298,256159],"msRnucaM6jNoar3A2HU7yI7otQ9vn2cci1t4Qgs5in8",{"id":257710,"title":257711,"body":257712,"date":402,"description":257911,"extension":404,"meta":257912,"navigation":61,"order":706,"path":257913,"seo":257914,"stem":257915,"subject":573,"tags":257916,"__hash__":257917},"topics/typescript/module-declarations.md","Module Declarations",{"type":8,"value":257713,"toc":257908},[257714,257717,257905],[11,257715,257711],{"id":257716},"module-declarations",[25,257718,257720],{"className":571,"code":257719,"language":573,"meta":30,"style":30},"// Type-only imports\nimport type { User } from './types';\nimport { type User, createUser } from './user';\n\n// Declare module augmentation\ndeclare module 'express' {\n  interface Request {\n    user?: User;\n  }\n}\n\n// Ambient declarations for JS libraries\ndeclare const $: (selector: string) => any;\n\n// Declaration files (.d.ts)\ndeclare module '*.css' {\n  const styles: { [className: string]: string };\n  export default styles;\n}\n",[20,257721,257722,257727,257742,257760,257764,257769,257779,257789,257800,257804,257808,257812,257817,257845,257849,257854,257865,257892,257901],{"__ignoreMap":30},[34,257723,257724],{"class":36,"line":37},[34,257725,257726],{"class":40},"// Type-only imports\n",[34,257728,257729,257731,257733,257735,257737,257740],{"class":36,"line":44},[34,257730,581],{"class":580},[34,257732,62326],{"class":580},[34,257734,166700],{"class":181},[34,257736,587],{"class":580},[34,257738,257739],{"class":54}," './types'",[34,257741,593],{"class":181},[34,257743,257744,257746,257748,257750,257753,257755,257758],{"class":36,"line":58},[34,257745,581],{"class":580},[34,257747,30251],{"class":181},[34,257749,41324],{"class":580},[34,257751,257752],{"class":181}," User, createUser } ",[34,257754,587],{"class":580},[34,257756,257757],{"class":54}," './user'",[34,257759,593],{"class":181},[34,257761,257762],{"class":36,"line":65},[34,257763,62],{"emptyLinePlaceholder":61},[34,257765,257766],{"class":36,"line":71},[34,257767,257768],{"class":40},"// Declare module augmentation\n",[34,257770,257771,257773,257775,257777],{"class":36,"line":77},[34,257772,10199],{"class":580},[34,257774,250196],{"class":580},[34,257776,225758],{"class":54},[34,257778,661],{"class":181},[34,257780,257781,257784,257787],{"class":36,"line":82},[34,257782,257783],{"class":580},"  interface",[34,257785,257786],{"class":47}," Request",[34,257788,661],{"class":181},[34,257790,257791,257794,257796,257798],{"class":36,"line":88},[34,257792,257793],{"class":675},"    user",[34,257795,66309],{"class":580},[34,257797,3950],{"class":47},[34,257799,593],{"class":181},[34,257801,257802],{"class":36,"line":242},[34,257803,857],{"class":181},[34,257805,257806],{"class":36,"line":250},[34,257807,693],{"class":181},[34,257809,257810],{"class":36,"line":263},[34,257811,62],{"emptyLinePlaceholder":61},[34,257813,257814],{"class":36,"line":275},[34,257815,257816],{"class":40},"// Ambient declarations for JS libraries\n",[34,257818,257819,257821,257823,257826,257828,257830,257833,257835,257837,257839,257841,257843],{"class":36,"line":700},[34,257820,10199],{"class":580},[34,257822,3291],{"class":580},[34,257824,257825],{"class":47}," $",[34,257827,165],{"class":580},[34,257829,3204],{"class":181},[34,257831,257832],{"class":675},"selector",[34,257834,165],{"class":580},[34,257836,680],{"class":50},[34,257838,4817],{"class":181},[34,257840,3361],{"class":580},[34,257842,69686],{"class":50},[34,257844,593],{"class":181},[34,257846,257847],{"class":36,"line":706},[34,257848,62],{"emptyLinePlaceholder":61},[34,257850,257851],{"class":36,"line":715},[34,257852,257853],{"class":40},"// Declaration files (.d.ts)\n",[34,257855,257856,257858,257860,257863],{"class":36,"line":725},[34,257857,10199],{"class":580},[34,257859,250196],{"class":580},[34,257861,257862],{"class":54}," '*.css'",[34,257864,661],{"class":181},[34,257866,257867,257869,257872,257874,257877,257880,257882,257884,257886,257888,257890],{"class":36,"line":734},[34,257868,17415],{"class":580},[34,257870,257871],{"class":50}," styles",[34,257873,165],{"class":580},[34,257875,257876],{"class":181}," { [",[34,257878,257879],{"class":675},"className",[34,257881,165],{"class":580},[34,257883,680],{"class":50},[34,257885,10173],{"class":181},[34,257887,165],{"class":580},[34,257889,680],{"class":50},[34,257891,33355],{"class":181},[34,257893,257894,257896,257898],{"class":36,"line":742},[34,257895,239074],{"class":580},[34,257897,7298],{"class":580},[34,257899,257900],{"class":181}," styles;\n",[34,257902,257903],{"class":36,"line":748},[34,257904,693],{"class":181},[388,257906,257907],{},"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 .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}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":30,"searchDepth":44,"depth":44,"links":257909},[257910],{"id":257716,"depth":44,"text":257711},"Module Declarations in TypeScript.",{},"/typescript/module-declarations",{"title":257711,"description":257911},"typescript/module-declarations",[573,8606,33298,256159],"7KMnkmmk2dTcqSf1bKB7PSenkPYdd3_L5HcRvmOBroY",{"id":257919,"title":246490,"body":257920,"date":2633,"description":257995,"extension":404,"meta":257996,"navigation":61,"order":37,"path":257997,"seo":257998,"stem":257999,"subject":573,"tags":258000,"__hash__":258001},"topics/typescript/overview.md",{"type":8,"value":257921,"toc":257993},[257922],[309,257923,257924,257928,257934,257938,257944,257950,257954,257960,257964,257970,257976,257980,257984,257988],{},[312,257925,257926],{},[145,257927,255824],{"href":256155},[312,257929,257930],{},[145,257931,257933],{"href":257932},"/typescript/type-inference","Type Inference",[312,257935,257936],{},[145,257937,106405],{"href":257355},[312,257939,257940],{},[145,257941,257943],{"href":257942},"/typescript/type-aliases","Type Aliases",[312,257945,257946],{},[145,257947,257949],{"href":257948},"/typescript/union-and-intersection","Union and Intersection",[312,257951,257952],{},[145,257953,26423],{"href":257128},[312,257955,257956],{},[145,257957,257959],{"href":257958},"/typescript/utility-types","Utility Types",[312,257961,257962],{},[145,257963,125314],{"href":256589},[312,257965,257966],{},[145,257967,257969],{"href":257968},"/typescript/type-guards","Type Guards",[312,257971,257972],{},[145,257973,257975],{"href":257974},"/typescript/type-assertions","Type Assertions",[312,257977,257978],{},[145,257979,25912],{"href":256816},[312,257981,257982],{},[145,257983,257362],{"href":257704},[312,257985,257986],{},[145,257987,257711],{"href":257913},[312,257989,257990],{},[145,257991,57697],{"href":257992},"/typescript/useful-patterns",{"title":30,"searchDepth":44,"depth":44,"links":257994},[],"Essential TypeScript types, syntax, and patterns for type-safe JavaScript development.",{},"/typescript/overview",{"title":246490,"description":257995},"typescript/overview",[573,8606,33298,256159],"1pzYNwMtOpD_mZtcGl_5AV4vYYflWjwkQiaii7A6hcE",{"id":258003,"title":257943,"body":258004,"date":402,"description":258189,"extension":404,"meta":258190,"navigation":61,"order":71,"path":257942,"seo":258191,"stem":258192,"subject":573,"tags":258193,"__hash__":258194},"topics/typescript/type-aliases.md",{"type":8,"value":258005,"toc":258186},[258006,258009,258183],[11,258007,257943],{"id":258008},"type-aliases",[25,258010,258012],{"className":571,"code":258011,"language":573,"meta":30,"style":30},"// Type alias for primitives and unions\ntype ID = string | number;\ntype Status = 'pending' | 'active' | 'inactive';\n\n// Type alias for objects\ntype Point = {\n  x: number;\n  y: number;\n};\n\n// Intersection types\ntype Employee = User & {\n  department: string;\n  salary: number;\n};\n\n// Template literal types\ntype EventName = `on${Capitalize\u003Cstring>}`;\n",[20,258013,258014,258019,258036,258056,258060,258065,258075,258086,258097,258101,258105,258110,258124,258135,258146,258150,258154,258159],{"__ignoreMap":30},[34,258015,258016],{"class":36,"line":37},[34,258017,258018],{"class":40},"// Type alias for primitives and unions\n",[34,258020,258021,258023,258026,258028,258030,258032,258034],{"class":36,"line":44},[34,258022,41324],{"class":580},[34,258024,258025],{"class":47}," ID",[34,258027,683],{"class":580},[34,258029,680],{"class":50},[34,258031,7197],{"class":580},[34,258033,2741],{"class":50},[34,258035,593],{"class":181},[34,258037,258038,258040,258042,258044,258046,258048,258050,258052,258054],{"class":36,"line":58},[34,258039,41324],{"class":580},[34,258041,172831],{"class":47},[34,258043,683],{"class":580},[34,258045,130649],{"class":54},[34,258047,7197],{"class":580},[34,258049,130924],{"class":54},[34,258051,7197],{"class":580},[34,258053,151868],{"class":54},[34,258055,593],{"class":181},[34,258057,258058],{"class":36,"line":65},[34,258059,62],{"emptyLinePlaceholder":61},[34,258061,258062],{"class":36,"line":71},[34,258063,258064],{"class":40},"// Type alias for objects\n",[34,258066,258067,258069,258071,258073],{"class":36,"line":77},[34,258068,41324],{"class":580},[34,258070,37679],{"class":47},[34,258072,683],{"class":580},[34,258074,661],{"class":181},[34,258076,258077,258080,258082,258084],{"class":36,"line":82},[34,258078,258079],{"class":675},"  x",[34,258081,165],{"class":580},[34,258083,2741],{"class":50},[34,258085,593],{"class":181},[34,258087,258088,258091,258093,258095],{"class":36,"line":88},[34,258089,258090],{"class":675},"  y",[34,258092,165],{"class":580},[34,258094,2741],{"class":50},[34,258096,593],{"class":181},[34,258098,258099],{"class":36,"line":242},[34,258100,17632],{"class":181},[34,258102,258103],{"class":36,"line":250},[34,258104,62],{"emptyLinePlaceholder":61},[34,258106,258107],{"class":36,"line":263},[34,258108,258109],{"class":40},"// Intersection types\n",[34,258111,258112,258114,258116,258118,258120,258122],{"class":36,"line":275},[34,258113,41324],{"class":580},[34,258115,108262],{"class":47},[34,258117,683],{"class":580},[34,258119,3950],{"class":47},[34,258121,11373],{"class":580},[34,258123,661],{"class":181},[34,258125,258126,258129,258131,258133],{"class":36,"line":700},[34,258127,258128],{"class":675},"  department",[34,258130,165],{"class":580},[34,258132,680],{"class":50},[34,258134,593],{"class":181},[34,258136,258137,258140,258142,258144],{"class":36,"line":706},[34,258138,258139],{"class":675},"  salary",[34,258141,165],{"class":580},[34,258143,2741],{"class":50},[34,258145,593],{"class":181},[34,258147,258148],{"class":36,"line":715},[34,258149,17632],{"class":181},[34,258151,258152],{"class":36,"line":725},[34,258153,62],{"emptyLinePlaceholder":61},[34,258155,258156],{"class":36,"line":734},[34,258157,258158],{"class":40},"// Template literal types\n",[34,258160,258161,258163,258166,258168,258171,258173,258175,258177,258179,258181],{"class":36,"line":742},[34,258162,41324],{"class":580},[34,258164,258165],{"class":47}," EventName",[34,258167,683],{"class":580},[34,258169,258170],{"class":54}," `on${",[34,258172,257664],{"class":47},[34,258174,815],{"class":54},[34,258176,30113],{"class":50},[34,258178,5691],{"class":54},[34,258180,3925],{"class":54},[34,258182,593],{"class":181},[388,258184,258185],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":258187},[258188],{"id":258008,"depth":44,"text":257943},"Type Aliases in TypeScript.",{},{"title":257943,"description":258189},"typescript/type-aliases",[573,8606,33298,256159],"0SXVV4Xj1qE4o8kdcXO_2QzmVaHugr-2H0ttUoYPdZk",{"id":258196,"title":257975,"body":258197,"date":402,"description":258390,"extension":404,"meta":258391,"navigation":61,"order":263,"path":257974,"seo":258392,"stem":258393,"subject":573,"tags":258394,"__hash__":258395},"topics/typescript/type-assertions.md",{"type":8,"value":258198,"toc":258387},[258199,258202,258384],[11,258200,257975],{"id":258201},"type-assertions",[25,258203,258205],{"className":571,"code":258204,"language":573,"meta":30,"style":30},"// as syntax (preferred)\nconst input = document.getElementById('input') as HTMLInputElement;\n\n// Angle bracket syntax\nconst input2 = \u003CHTMLInputElement>document.getElementById('input');\n\n// Non-null assertion\nfunction getValue(map: Map\u003Cstring, string>, key: string) {\n  return map.get(key)!;  // Assert value is not undefined\n}\n\n// const assertion\nconst config = {\n  endpoint: '/api',\n  timeout: 3000\n} as const;  // Makes all properties readonly and literal types\n",[20,258206,258207,258212,258239,258243,258248,258272,258276,258281,258314,258333,258337,258341,258346,258356,258365,258371],{"__ignoreMap":30},[34,258208,258209],{"class":36,"line":37},[34,258210,258211],{"class":40},"// as syntax (preferred)\n",[34,258213,258214,258216,258218,258220,258223,258225,258227,258230,258232,258234,258237],{"class":36,"line":44},[34,258215,14676],{"class":580},[34,258217,37137],{"class":50},[34,258219,683],{"class":580},[34,258221,258222],{"class":181}," document.",[34,258224,117621],{"class":47},[34,258226,1607],{"class":181},[34,258228,258229],{"class":54},"'input'",[34,258231,4817],{"class":181},[34,258233,74548],{"class":580},[34,258235,258236],{"class":47}," HTMLInputElement",[34,258238,593],{"class":181},[34,258240,258241],{"class":36,"line":58},[34,258242,62],{"emptyLinePlaceholder":61},[34,258244,258245],{"class":36,"line":65},[34,258246,258247],{"class":40},"// Angle bracket syntax\n",[34,258249,258250,258252,258255,258257,258259,258261,258264,258266,258268,258270],{"class":36,"line":71},[34,258251,14676],{"class":580},[34,258253,258254],{"class":50}," input2",[34,258256,683],{"class":580},[34,258258,5470],{"class":181},[34,258260,4831],{"class":47},[34,258262,258263],{"class":181},">document.",[34,258265,117621],{"class":47},[34,258267,1607],{"class":181},[34,258269,258229],{"class":54},[34,258271,1586],{"class":181},[34,258273,258274],{"class":36,"line":77},[34,258275,62],{"emptyLinePlaceholder":61},[34,258277,258278],{"class":36,"line":82},[34,258279,258280],{"class":40},"// Non-null assertion\n",[34,258282,258283,258285,258287,258289,258291,258293,258295,258297,258299,258301,258303,258306,258308,258310,258312],{"class":36,"line":88},[34,258284,11044],{"class":580},[34,258286,32780],{"class":47},[34,258288,1607],{"class":181},[34,258290,61180],{"class":675},[34,258292,165],{"class":580},[34,258294,65679],{"class":47},[34,258296,815],{"class":181},[34,258298,30113],{"class":50},[34,258300,1798],{"class":181},[34,258302,30113],{"class":50},[34,258304,258305],{"class":181},">, ",[34,258307,141344],{"class":675},[34,258309,165],{"class":580},[34,258311,680],{"class":50},[34,258313,2416],{"class":181},[34,258315,258316,258318,258321,258323,258326,258328,258330],{"class":36,"line":242},[34,258317,8155],{"class":580},[34,258319,258320],{"class":181}," map.",[34,258322,1573],{"class":47},[34,258324,258325],{"class":181},"(key)",[34,258327,10307],{"class":580},[34,258329,124981],{"class":181},[34,258331,258332],{"class":40},"// Assert value is not undefined\n",[34,258334,258335],{"class":36,"line":250},[34,258336,693],{"class":181},[34,258338,258339],{"class":36,"line":263},[34,258340,62],{"emptyLinePlaceholder":61},[34,258342,258343],{"class":36,"line":275},[34,258344,258345],{"class":40},"// const assertion\n",[34,258347,258348,258350,258352,258354],{"class":36,"line":700},[34,258349,14676],{"class":580},[34,258351,58810],{"class":50},[34,258353,683],{"class":580},[34,258355,661],{"class":181},[34,258357,258358,258361,258363],{"class":36,"line":706},[34,258359,258360],{"class":181},"  endpoint: ",[34,258362,77156],{"class":54},[34,258364,624],{"class":181},[34,258366,258367,258369],{"class":36,"line":715},[34,258368,58829],{"class":181},[34,258370,128143],{"class":50},[34,258372,258373,258375,258377,258379,258381],{"class":36,"line":725},[34,258374,2276],{"class":181},[34,258376,74548],{"class":580},[34,258378,3291],{"class":580},[34,258380,124981],{"class":181},[34,258382,258383],{"class":40},"// Makes all properties readonly and literal types\n",[388,258385,258386],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":258388},[258389],{"id":258201,"depth":44,"text":257975},"Type Assertions in TypeScript.",{},{"title":257975,"description":258390},"typescript/type-assertions",[573,8606,33298,256159],"EbnBZluOKabEaTDq4nMEZ6Z6GvhY8Uo8H2pNkYrDN9Y",{"id":258397,"title":257969,"body":258398,"date":402,"description":258768,"extension":404,"meta":258769,"navigation":61,"order":250,"path":257968,"seo":258770,"stem":258771,"subject":573,"tags":258772,"__hash__":258773},"topics/typescript/type-guards.md",{"type":8,"value":258399,"toc":258765},[258400,258403,258763],[11,258401,257969],{"id":258402},"type-guards",[25,258404,258406],{"className":571,"code":258405,"language":573,"meta":30,"style":30},"// typeof guard\nfunction process(value: string | number) {\n  if (typeof value === 'string') {\n    return value.toUpperCase();\n  }\n  return value * 2;\n}\n\n// instanceof guard\nclass Dog { bark() {} }\nclass Cat { meow() {} }\n\nfunction speak(animal: Dog | Cat) {\n  if (animal instanceof Dog) {\n    animal.bark();\n  } else {\n    animal.meow();\n  }\n}\n\n// in operator guard\ninterface Fish { swim(): void }\ninterface Bird { fly(): void }\n\nfunction move(animal: Fish | Bird) {\n  if ('swim' in animal) {\n    animal.swim();\n  } else {\n    animal.fly();\n  }\n}\n\n// Custom type guard\nfunction isString(value: unknown): value is string {\n  return typeof value === 'string';\n}\n",[20,258407,258408,258413,258433,258451,258461,258465,258477,258481,258485,258490,258504,258517,258521,258542,258555,258564,258572,258580,258584,258588,258592,258597,258617,258637,258641,258662,258676,258684,258692,258700,258704,258708,258712,258717,258745,258759],{"__ignoreMap":30},[34,258409,258410],{"class":36,"line":37},[34,258411,258412],{"class":40},"// typeof guard\n",[34,258414,258415,258417,258419,258421,258423,258425,258427,258429,258431],{"class":36,"line":44},[34,258416,11044],{"class":580},[34,258418,31325],{"class":47},[34,258420,1607],{"class":181},[34,258422,2871],{"class":675},[34,258424,165],{"class":580},[34,258426,680],{"class":50},[34,258428,7197],{"class":580},[34,258430,2741],{"class":50},[34,258432,2416],{"class":181},[34,258434,258435,258437,258439,258442,258444,258446,258449],{"class":36,"line":58},[34,258436,8084],{"class":580},[34,258438,3204],{"class":181},[34,258440,258441],{"class":580},"typeof",[34,258443,8271],{"class":181},[34,258445,15543],{"class":580},[34,258447,258448],{"class":54}," 'string'",[34,258450,2416],{"class":181},[34,258452,258453,258455,258457,258459],{"class":36,"line":65},[34,258454,1564],{"class":580},[34,258456,2927],{"class":181},[34,258458,14027],{"class":47},[34,258460,851],{"class":181},[34,258462,258463],{"class":36,"line":71},[34,258464,857],{"class":181},[34,258466,258467,258469,258471,258473,258475],{"class":36,"line":77},[34,258468,8155],{"class":580},[34,258470,8271],{"class":181},[34,258472,4289],{"class":580},[34,258474,4292],{"class":50},[34,258476,593],{"class":181},[34,258478,258479],{"class":36,"line":82},[34,258480,693],{"class":181},[34,258482,258483],{"class":36,"line":88},[34,258484,62],{"emptyLinePlaceholder":61},[34,258486,258487],{"class":36,"line":242},[34,258488,258489],{"class":40},"// instanceof guard\n",[34,258491,258492,258494,258496,258498,258501],{"class":36,"line":250},[34,258493,30060],{"class":580},[34,258495,31577],{"class":47},[34,258497,30251],{"class":181},[34,258499,258500],{"class":47},"bark",[34,258502,258503],{"class":181},"() {} }\n",[34,258505,258506,258508,258510,258512,258515],{"class":36,"line":263},[34,258507,30060],{"class":580},[34,258509,59011],{"class":47},[34,258511,30251],{"class":181},[34,258513,258514],{"class":47},"meow",[34,258516,258503],{"class":181},[34,258518,258519],{"class":36,"line":275},[34,258520,62],{"emptyLinePlaceholder":61},[34,258522,258523,258525,258527,258529,258532,258534,258536,258538,258540],{"class":36,"line":700},[34,258524,11044],{"class":580},[34,258526,31517],{"class":47},[34,258528,1607],{"class":181},[34,258530,258531],{"class":675},"animal",[34,258533,165],{"class":580},[34,258535,31577],{"class":47},[34,258537,7197],{"class":580},[34,258539,59011],{"class":47},[34,258541,2416],{"class":181},[34,258543,258544,258546,258549,258551,258553],{"class":36,"line":706},[34,258545,8084],{"class":580},[34,258547,258548],{"class":181}," (animal ",[34,258550,124737],{"class":580},[34,258552,31577],{"class":47},[34,258554,2416],{"class":181},[34,258556,258557,258560,258562],{"class":36,"line":715},[34,258558,258559],{"class":181},"    animal.",[34,258561,258500],{"class":47},[34,258563,851],{"class":181},[34,258565,258566,258568,258570],{"class":36,"line":725},[34,258567,126416],{"class":181},[34,258569,18871],{"class":580},[34,258571,661],{"class":181},[34,258573,258574,258576,258578],{"class":36,"line":734},[34,258575,258559],{"class":181},[34,258577,258514],{"class":47},[34,258579,851],{"class":181},[34,258581,258582],{"class":36,"line":742},[34,258583,857],{"class":181},[34,258585,258586],{"class":36,"line":748},[34,258587,693],{"class":181},[34,258589,258590],{"class":36,"line":754},[34,258591,62],{"emptyLinePlaceholder":61},[34,258593,258594],{"class":36,"line":759},[34,258595,258596],{"class":40},"// in operator guard\n",[34,258598,258599,258601,258604,258606,258609,258611,258613,258615],{"class":36,"line":771},[34,258600,17562],{"class":580},[34,258602,258603],{"class":47}," Fish",[34,258605,30251],{"class":181},[34,258607,258608],{"class":47},"swim",[34,258610,1546],{"class":181},[34,258612,165],{"class":580},[34,258614,31514],{"class":50},[34,258616,52786],{"class":181},[34,258618,258619,258621,258624,258626,258629,258631,258633,258635],{"class":36,"line":794},[34,258620,17562],{"class":580},[34,258622,258623],{"class":47}," Bird",[34,258625,30251],{"class":181},[34,258627,258628],{"class":47},"fly",[34,258630,1546],{"class":181},[34,258632,165],{"class":580},[34,258634,31514],{"class":50},[34,258636,52786],{"class":181},[34,258638,258639],{"class":36,"line":824},[34,258640,62],{"emptyLinePlaceholder":61},[34,258642,258643,258645,258648,258650,258652,258654,258656,258658,258660],{"class":36,"line":830},[34,258644,11044],{"class":580},[34,258646,258647],{"class":47}," move",[34,258649,1607],{"class":181},[34,258651,258531],{"class":675},[34,258653,165],{"class":580},[34,258655,258603],{"class":47},[34,258657,7197],{"class":580},[34,258659,258623],{"class":47},[34,258661,2416],{"class":181},[34,258663,258664,258666,258668,258671,258673],{"class":36,"line":839},[34,258665,8084],{"class":580},[34,258667,3204],{"class":181},[34,258669,258670],{"class":54},"'swim'",[34,258672,36375],{"class":580},[34,258674,258675],{"class":181}," animal) {\n",[34,258677,258678,258680,258682],{"class":36,"line":854},[34,258679,258559],{"class":181},[34,258681,258608],{"class":47},[34,258683,851],{"class":181},[34,258685,258686,258688,258690],{"class":36,"line":860},[34,258687,126416],{"class":181},[34,258689,18871],{"class":580},[34,258691,661],{"class":181},[34,258693,258694,258696,258698],{"class":36,"line":865},[34,258695,258559],{"class":181},[34,258697,258628],{"class":47},[34,258699,851],{"class":181},[34,258701,258702],{"class":36,"line":870},[34,258703,857],{"class":181},[34,258705,258706],{"class":36,"line":876},[34,258707,693],{"class":181},[34,258709,258710],{"class":36,"line":885},[34,258711,62],{"emptyLinePlaceholder":61},[34,258713,258714],{"class":36,"line":895},[34,258715,258716],{"class":40},"// Custom type guard\n",[34,258718,258719,258721,258724,258726,258728,258730,258732,258734,258736,258738,258741,258743],{"class":36,"line":904},[34,258720,11044],{"class":580},[34,258722,258723],{"class":47}," isString",[34,258725,1607],{"class":181},[34,258727,2871],{"class":675},[34,258729,165],{"class":580},[34,258731,256069],{"class":50},[34,258733,1617],{"class":181},[34,258735,165],{"class":580},[34,258737,18389],{"class":675},[34,258739,258740],{"class":580}," is",[34,258742,680],{"class":50},[34,258744,661],{"class":181},[34,258746,258747,258749,258751,258753,258755,258757],{"class":36,"line":915},[34,258748,8155],{"class":580},[34,258750,131132],{"class":580},[34,258752,8271],{"class":181},[34,258754,15543],{"class":580},[34,258756,258448],{"class":54},[34,258758,593],{"class":181},[34,258760,258761],{"class":36,"line":927},[34,258762,693],{"class":181},[388,258764,17665],{},{"title":30,"searchDepth":44,"depth":44,"links":258766},[258767],{"id":258402,"depth":44,"text":257969},"Type Guards in TypeScript.",{},{"title":257969,"description":258768},"typescript/type-guards",[573,8606,33298,256159],"y-vHGo4cF4d7kOtzdJ8cEBf_IzmycOHdjY14BfvVMMU",{"id":258775,"title":257933,"body":258776,"date":402,"description":258912,"extension":404,"meta":258913,"navigation":61,"order":58,"path":257932,"seo":258914,"stem":258915,"subject":573,"tags":258916,"__hash__":258917},"topics/typescript/type-inference.md",{"type":8,"value":258777,"toc":258909},[258778,258781,258907],[11,258779,257933],{"id":258780},"type-inference",[25,258782,258784],{"className":571,"code":258783,"language":573,"meta":30,"style":30},"// TypeScript infers types automatically\nlet message = 'Hello';          // inferred as string\nlet count = 42;                 // inferred as number\nlet items = [1, 2, 3];          // inferred as number[]\n\n// Contextual typing\nconst names = ['Alice', 'Bob'];\nnames.forEach(name => {         // name is inferred as string\n  console.log(name.toUpperCase());\n});\n",[20,258785,258786,258791,258806,258821,258847,258851,258856,258874,258891,258903],{"__ignoreMap":30},[34,258787,258788],{"class":36,"line":37},[34,258789,258790],{"class":40},"// TypeScript infers types automatically\n",[34,258792,258793,258795,258797,258799,258801,258803],{"class":36,"line":44},[34,258794,8268],{"class":580},[34,258796,125023],{"class":181},[34,258798,1301],{"class":580},[34,258800,211685],{"class":54},[34,258802,40032],{"class":181},[34,258804,258805],{"class":40},"// inferred as string\n",[34,258807,258808,258810,258812,258814,258816,258818],{"class":36,"line":58},[34,258809,8268],{"class":580},[34,258811,25163],{"class":181},[34,258813,1301],{"class":580},[34,258815,19987],{"class":50},[34,258817,38504],{"class":181},[34,258819,258820],{"class":40},"// inferred as number\n",[34,258822,258823,258825,258827,258829,258831,258833,258835,258837,258839,258841,258844],{"class":36,"line":65},[34,258824,8268],{"class":580},[34,258826,77218],{"class":181},[34,258828,1301],{"class":580},[34,258830,8315],{"class":181},[34,258832,8318],{"class":50},[34,258834,1798],{"class":181},[34,258836,8324],{"class":50},[34,258838,1798],{"class":181},[34,258840,3162],{"class":50},[34,258842,258843],{"class":181},"];          ",[34,258845,258846],{"class":40},"// inferred as number[]\n",[34,258848,258849],{"class":36,"line":71},[34,258850,62],{"emptyLinePlaceholder":61},[34,258852,258853],{"class":36,"line":77},[34,258854,258855],{"class":40},"// Contextual typing\n",[34,258857,258858,258860,258862,258864,258866,258868,258870,258872],{"class":36,"line":82},[34,258859,14676],{"class":580},[34,258861,255965],{"class":50},[34,258863,683],{"class":580},[34,258865,8315],{"class":181},[34,258867,28504],{"class":54},[34,258869,1798],{"class":181},[34,258871,29116],{"class":54},[34,258873,3415],{"class":181},[34,258875,258876,258878,258880,258882,258884,258886,258888],{"class":36,"line":88},[34,258877,33452],{"class":181},[34,258879,4930],{"class":47},[34,258881,1607],{"class":181},[34,258883,178],{"class":675},[34,258885,1895],{"class":580},[34,258887,212651],{"class":181},[34,258889,258890],{"class":40},"// name is inferred as string\n",[34,258892,258893,258895,258897,258899,258901],{"class":36,"line":242},[34,258894,14929],{"class":181},[34,258896,2424],{"class":47},[34,258898,87953],{"class":181},[34,258900,14027],{"class":47},[34,258902,4343],{"class":181},[34,258904,258905],{"class":36,"line":250},[34,258906,14873],{"class":181},[388,258908,3722],{},{"title":30,"searchDepth":44,"depth":44,"links":258910},[258911],{"id":258780,"depth":44,"text":257933},"Type Inference in TypeScript.",{},{"title":257933,"description":258912},"typescript/type-inference",[573,8606,33298,256159],"W3Ofh3uf0nwcSlScprl0vCLGAiMyeefZudV2OFlh4EI",{"id":258919,"title":257949,"body":258920,"date":402,"description":259130,"extension":404,"meta":259131,"navigation":61,"order":77,"path":257948,"seo":259132,"stem":259133,"subject":573,"tags":259134,"__hash__":259135},"topics/typescript/union-and-intersection.md",{"type":8,"value":258921,"toc":259127},[258922,258925,259125],[11,258923,257949],{"id":258924},"union-and-intersection",[25,258926,258928],{"className":571,"code":258927,"language":573,"meta":30,"style":30},"// Union types - one of several types\ntype Result = string | number | boolean;\ntype Status = 'success' | 'error' | 'loading';\n\nfunction printId(id: string | number) {\n  if (typeof id === 'string') {\n    console.log(id.toUpperCase());\n  } else {\n    console.log(id);\n  }\n}\n\n// Intersection types - combine multiple types\ntype Name = { firstName: string; lastName: string };\ntype Age = { age: number };\ntype Person = Name & Age;\n",[20,258929,258930,258935,258955,258978,258982,259003,259019,259032,259040,259048,259052,259056,259060,259065,259091,259109],{"__ignoreMap":30},[34,258931,258932],{"class":36,"line":37},[34,258933,258934],{"class":40},"// Union types - one of several types\n",[34,258936,258937,258939,258941,258943,258945,258947,258949,258951,258953],{"class":36,"line":44},[34,258938,41324],{"class":580},[34,258940,136969],{"class":47},[34,258942,683],{"class":580},[34,258944,680],{"class":50},[34,258946,7197],{"class":580},[34,258948,2741],{"class":50},[34,258950,7197],{"class":580},[34,258952,59460],{"class":50},[34,258954,593],{"class":181},[34,258956,258957,258959,258961,258963,258966,258968,258971,258973,258976],{"class":36,"line":58},[34,258958,41324],{"class":580},[34,258960,172831],{"class":47},[34,258962,683],{"class":580},[34,258964,258965],{"class":54}," 'success'",[34,258967,7197],{"class":580},[34,258969,258970],{"class":54}," 'error'",[34,258972,7197],{"class":580},[34,258974,258975],{"class":54}," 'loading'",[34,258977,593],{"class":181},[34,258979,258980],{"class":36,"line":65},[34,258981,62],{"emptyLinePlaceholder":61},[34,258983,258984,258986,258989,258991,258993,258995,258997,258999,259001],{"class":36,"line":71},[34,258985,11044],{"class":580},[34,258987,258988],{"class":47}," printId",[34,258990,1607],{"class":181},[34,258992,3885],{"class":675},[34,258994,165],{"class":580},[34,258996,680],{"class":50},[34,258998,7197],{"class":580},[34,259000,2741],{"class":50},[34,259002,2416],{"class":181},[34,259004,259005,259007,259009,259011,259013,259015,259017],{"class":36,"line":77},[34,259006,8084],{"class":580},[34,259008,3204],{"class":181},[34,259010,258441],{"class":580},[34,259012,28568],{"class":181},[34,259014,15543],{"class":580},[34,259016,258448],{"class":54},[34,259018,2416],{"class":181},[34,259020,259021,259023,259025,259028,259030],{"class":36,"line":82},[34,259022,2421],{"class":181},[34,259024,2424],{"class":47},[34,259026,259027],{"class":181},"(id.",[34,259029,14027],{"class":47},[34,259031,4343],{"class":181},[34,259033,259034,259036,259038],{"class":36,"line":88},[34,259035,126416],{"class":181},[34,259037,18871],{"class":580},[34,259039,661],{"class":181},[34,259041,259042,259044,259046],{"class":36,"line":242},[34,259043,2421],{"class":181},[34,259045,2424],{"class":47},[34,259047,201355],{"class":181},[34,259049,259050],{"class":36,"line":250},[34,259051,857],{"class":181},[34,259053,259054],{"class":36,"line":263},[34,259055,693],{"class":181},[34,259057,259058],{"class":36,"line":275},[34,259059,62],{"emptyLinePlaceholder":61},[34,259061,259062],{"class":36,"line":700},[34,259063,259064],{"class":40},"// Intersection types - combine multiple types\n",[34,259066,259067,259069,259071,259073,259075,259077,259079,259081,259083,259085,259087,259089],{"class":36,"line":706},[34,259068,41324],{"class":580},[34,259070,34584],{"class":47},[34,259072,683],{"class":580},[34,259074,30251],{"class":181},[34,259076,228310],{"class":675},[34,259078,165],{"class":580},[34,259080,680],{"class":50},[34,259082,10268],{"class":181},[34,259084,228337],{"class":675},[34,259086,165],{"class":580},[34,259088,680],{"class":50},[34,259090,33355],{"class":181},[34,259092,259093,259095,259097,259099,259101,259103,259105,259107],{"class":36,"line":715},[34,259094,41324],{"class":580},[34,259096,34227],{"class":47},[34,259098,683],{"class":580},[34,259100,30251],{"class":181},[34,259102,13337],{"class":675},[34,259104,165],{"class":580},[34,259106,2741],{"class":50},[34,259108,33355],{"class":181},[34,259110,259111,259113,259115,259117,259119,259121,259123],{"class":36,"line":725},[34,259112,41324],{"class":580},[34,259114,30063],{"class":47},[34,259116,683],{"class":580},[34,259118,34584],{"class":47},[34,259120,11373],{"class":580},[34,259122,34227],{"class":47},[34,259124,593],{"class":181},[388,259126,258185],{},{"title":30,"searchDepth":44,"depth":44,"links":259128},[259129],{"id":258924,"depth":44,"text":257949},"Union and Intersection in TypeScript.",{},{"title":257949,"description":259130},"typescript/union-and-intersection",[573,8606,33298,256159],"oh4JHfhfgxRu6T8FFmU77ZbvoBLxruBQ6aRLZAeDxKw",{"id":259137,"title":57697,"body":259138,"date":402,"description":259535,"extension":404,"meta":259536,"navigation":61,"order":715,"path":257992,"seo":259537,"stem":259538,"subject":573,"tags":259539,"__hash__":259540},"topics/typescript/useful-patterns.md",{"type":8,"value":259139,"toc":259532},[259140,259142,259530],[11,259141,57697],{"id":57861},[25,259143,259145],{"className":571,"code":259144,"language":573,"meta":30,"style":30},"// Discriminated unions\ntype Result\u003CT> = \n  | { success: true; data: T }\n  | { success: false; error: string };\n\nfunction handleResult\u003CT>(result: Result\u003CT>) {\n  if (result.success) {\n    console.log(result.data);\n  } else {\n    console.error(result.error);\n  }\n}\n\n// Builder pattern with method chaining\nclass QueryBuilder {\n  select(fields: string[]): this { return this; }\n  where(condition: string): this { return this; }\n  orderBy(field: string): this { return this; }\n}\n\n// Exhaustive checking\ntype Shape = 'circle' | 'square' | 'triangle';\n\nfunction getArea(shape: Shape): number {\n  switch (shape) {\n    case 'circle': return Math.PI;\n    case 'square': return 1;\n    case 'triangle': return 0.5;\n    default:\n      const _exhaustive: never = shape;\n      return _exhaustive;\n  }\n}\n",[20,259146,259147,259152,259168,259191,259213,259217,259242,259249,259258,259266,259275,259279,259283,259287,259292,259300,259327,259353,259380,259384,259388,259393,259415,259419,259442,259449,259465,259479,259493,259499,259515,259522,259526],{"__ignoreMap":30},[34,259148,259149],{"class":36,"line":37},[34,259150,259151],{"class":40},"// Discriminated unions\n",[34,259153,259154,259156,259158,259160,259162,259164,259166],{"class":36,"line":44},[34,259155,41324],{"class":580},[34,259157,136969],{"class":47},[34,259159,815],{"class":181},[34,259161,32671],{"class":47},[34,259163,32840],{"class":181},[34,259165,1301],{"class":580},[34,259167,526],{"class":181},[34,259169,259170,259173,259175,259177,259179,259181,259183,259185,259187,259189],{"class":36,"line":58},[34,259171,259172],{"class":580},"  |",[34,259174,30251],{"class":181},[34,259176,241667],{"class":675},[34,259178,165],{"class":580},[34,259180,32945],{"class":50},[34,259182,10268],{"class":181},[34,259184,1701],{"class":675},[34,259186,165],{"class":580},[34,259188,32664],{"class":47},[34,259190,52786],{"class":181},[34,259192,259193,259195,259197,259199,259201,259203,259205,259207,259209,259211],{"class":36,"line":65},[34,259194,259172],{"class":580},[34,259196,30251],{"class":181},[34,259198,241667],{"class":675},[34,259200,165],{"class":580},[34,259202,68645],{"class":50},[34,259204,10268],{"class":181},[34,259206,1908],{"class":675},[34,259208,165],{"class":580},[34,259210,680],{"class":50},[34,259212,33355],{"class":181},[34,259214,259215],{"class":36,"line":71},[34,259216,62],{"emptyLinePlaceholder":61},[34,259218,259219,259221,259224,259226,259228,259230,259232,259234,259236,259238,259240],{"class":36,"line":77},[34,259220,11044],{"class":580},[34,259222,259223],{"class":47}," handleResult",[34,259225,815],{"class":181},[34,259227,32671],{"class":47},[34,259229,1737],{"class":181},[34,259231,19401],{"class":675},[34,259233,165],{"class":580},[34,259235,136969],{"class":47},[34,259237,815],{"class":181},[34,259239,32671],{"class":47},[34,259241,71554],{"class":181},[34,259243,259244,259246],{"class":36,"line":82},[34,259245,8084],{"class":580},[34,259247,259248],{"class":181}," (result.success) {\n",[34,259250,259251,259253,259255],{"class":36,"line":88},[34,259252,2421],{"class":181},[34,259254,2424],{"class":47},[34,259256,259257],{"class":181},"(result.data);\n",[34,259259,259260,259262,259264],{"class":36,"line":242},[34,259261,126416],{"class":181},[34,259263,18871],{"class":580},[34,259265,661],{"class":181},[34,259267,259268,259270,259272],{"class":36,"line":250},[34,259269,2421],{"class":181},[34,259271,1908],{"class":47},[34,259273,259274],{"class":181},"(result.error);\n",[34,259276,259277],{"class":36,"line":263},[34,259278,857],{"class":181},[34,259280,259281],{"class":36,"line":275},[34,259282,693],{"class":181},[34,259284,259285],{"class":36,"line":700},[34,259286,62],{"emptyLinePlaceholder":61},[34,259288,259289],{"class":36,"line":706},[34,259290,259291],{"class":40},"// Builder pattern with method chaining\n",[34,259293,259294,259296,259298],{"class":36,"line":715},[34,259295,30060],{"class":580},[34,259297,70866],{"class":47},[34,259299,661],{"class":181},[34,259301,259302,259304,259306,259309,259311,259313,259315,259317,259319,259321,259323,259325],{"class":36,"line":725},[34,259303,70984],{"class":47},[34,259305,1607],{"class":181},[34,259307,259308],{"class":675},"fields",[34,259310,165],{"class":580},[34,259312,680],{"class":50},[34,259314,70998],{"class":181},[34,259316,165],{"class":580},[34,259318,1567],{"class":50},[34,259320,30251],{"class":181},[34,259322,2917],{"class":580},[34,259324,1567],{"class":50},[34,259326,34238],{"class":181},[34,259328,259329,259331,259333,259335,259337,259339,259341,259343,259345,259347,259349,259351],{"class":36,"line":734},[34,259330,71047],{"class":47},[34,259332,1607],{"class":181},[34,259334,71052],{"class":675},[34,259336,165],{"class":580},[34,259338,680],{"class":50},[34,259340,1617],{"class":181},[34,259342,165],{"class":580},[34,259344,1567],{"class":50},[34,259346,30251],{"class":181},[34,259348,2917],{"class":580},[34,259350,1567],{"class":50},[34,259352,34238],{"class":181},[34,259354,259355,259358,259360,259362,259364,259366,259368,259370,259372,259374,259376,259378],{"class":36,"line":742},[34,259356,259357],{"class":47},"  orderBy",[34,259359,1607],{"class":181},[34,259361,89186],{"class":675},[34,259363,165],{"class":580},[34,259365,680],{"class":50},[34,259367,1617],{"class":181},[34,259369,165],{"class":580},[34,259371,1567],{"class":50},[34,259373,30251],{"class":181},[34,259375,2917],{"class":580},[34,259377,1567],{"class":50},[34,259379,34238],{"class":181},[34,259381,259382],{"class":36,"line":748},[34,259383,693],{"class":181},[34,259385,259386],{"class":36,"line":754},[34,259387,62],{"emptyLinePlaceholder":61},[34,259389,259390],{"class":36,"line":759},[34,259391,259392],{"class":40},"// Exhaustive checking\n",[34,259394,259395,259397,259399,259401,259403,259405,259408,259410,259413],{"class":36,"line":771},[34,259396,41324],{"class":580},[34,259398,106427],{"class":47},[34,259400,683],{"class":580},[34,259402,226642],{"class":54},[34,259404,7197],{"class":580},[34,259406,259407],{"class":54}," 'square'",[34,259409,7197],{"class":580},[34,259411,259412],{"class":54}," 'triangle'",[34,259414,593],{"class":181},[34,259416,259417],{"class":36,"line":794},[34,259418,62],{"emptyLinePlaceholder":61},[34,259420,259421,259423,259426,259428,259430,259432,259434,259436,259438,259440],{"class":36,"line":824},[34,259422,11044],{"class":580},[34,259424,259425],{"class":47}," getArea",[34,259427,1607],{"class":181},[34,259429,226624],{"class":675},[34,259431,165],{"class":580},[34,259433,106427],{"class":47},[34,259435,1617],{"class":181},[34,259437,165],{"class":580},[34,259439,2741],{"class":50},[34,259441,661],{"class":181},[34,259443,259444,259446],{"class":36,"line":830},[34,259445,201520],{"class":580},[34,259447,259448],{"class":181}," (shape) {\n",[34,259450,259451,259453,259455,259457,259459,259461,259463],{"class":36,"line":839},[34,259452,18986],{"class":580},[34,259454,226642],{"class":54},[34,259456,182],{"class":181},[34,259458,2917],{"class":580},[34,259460,13917],{"class":181},[34,259462,195503],{"class":50},[34,259464,593],{"class":181},[34,259466,259467,259469,259471,259473,259475,259477],{"class":36,"line":854},[34,259468,18986],{"class":580},[34,259470,259407],{"class":54},[34,259472,182],{"class":181},[34,259474,2917],{"class":580},[34,259476,3567],{"class":50},[34,259478,593],{"class":181},[34,259480,259481,259483,259485,259487,259489,259491],{"class":36,"line":860},[34,259482,18986],{"class":580},[34,259484,259412],{"class":54},[34,259486,182],{"class":181},[34,259488,2917],{"class":580},[34,259490,226931],{"class":50},[34,259492,593],{"class":181},[34,259494,259495,259497],{"class":36,"line":865},[34,259496,19051],{"class":580},[34,259498,193],{"class":181},[34,259500,259501,259503,259506,259508,259510,259512],{"class":36,"line":870},[34,259502,52225],{"class":580},[34,259504,259505],{"class":50}," _exhaustive",[34,259507,165],{"class":580},[34,259509,178274],{"class":50},[34,259511,683],{"class":580},[34,259513,259514],{"class":181}," shape;\n",[34,259516,259517,259519],{"class":36,"line":876},[34,259518,15553],{"class":580},[34,259520,259521],{"class":181}," _exhaustive;\n",[34,259523,259524],{"class":36,"line":885},[34,259525,857],{"class":181},[34,259527,259528],{"class":36,"line":895},[34,259529,693],{"class":181},[388,259531,17665],{},{"title":30,"searchDepth":44,"depth":44,"links":259533},[259534],{"id":57861,"depth":44,"text":57697},"Useful Patterns in TypeScript.",{},{"title":57697,"description":259535},"typescript/useful-patterns",[573,8606,33298,256159],"OvwDMs5x-91iQJ6kCguue5hIpUY0V7I7u0AAbcHZTVo",{"id":259542,"title":257959,"body":259543,"date":402,"description":259967,"extension":404,"meta":259968,"navigation":61,"order":88,"path":257958,"seo":259969,"stem":259970,"subject":573,"tags":259971,"__hash__":259972},"topics/typescript/utility-types.md",{"type":8,"value":259544,"toc":259964},[259545,259548,259961],[11,259546,257959],{"id":259547},"utility-types",[25,259549,259551],{"className":571,"code":259550,"language":573,"meta":30,"style":30},"interface User {\n  id: number;\n  name: string;\n  email: string;\n  age: number;\n}\n\n// Partial - all properties optional\ntype PartialUser = Partial\u003CUser>;\n\n// Required - all properties required\ntype RequiredUser = Required\u003CUser>;\n\n// Readonly - all properties readonly\ntype ReadonlyUser = Readonly\u003CUser>;\n\n// Pick - select specific properties\ntype UserPreview = Pick\u003CUser, 'id' | 'name'>;\n\n// Omit - exclude specific properties\ntype UserWithoutEmail = Omit\u003CUser, 'email'>;\n\n// Record - construct object type\ntype UserRoles = Record\u003Cstring, 'admin' | 'user' | 'guest'>;\n\n// Extract and Exclude\ntype T1 = Extract\u003C'a' | 'b' | 'c', 'a' | 'f'>;  // 'a'\ntype T2 = Exclude\u003C'a' | 'b' | 'c', 'a'>;         // 'b' | 'c'\n\n// ReturnType and Parameters\ntype Fn = (a: string, b: number) => boolean;\ntype FnReturn = ReturnType\u003CFn>;      // boolean\ntype FnParams = Parameters\u003CFn>;      // [string, number]\n",[20,259552,259553,259561,259571,259581,259591,259601,259605,259609,259614,259632,259636,259641,259659,259663,259668,259685,259689,259694,259721,259725,259730,259752,259756,259761,259792,259796,259801,259842,259876,259880,259885,259918,259940],{"__ignoreMap":30},[34,259554,259555,259557,259559],{"class":36,"line":37},[34,259556,17562],{"class":580},[34,259558,3950],{"class":47},[34,259560,661],{"class":181},[34,259562,259563,259565,259567,259569],{"class":36,"line":44},[34,259564,116886],{"class":675},[34,259566,165],{"class":580},[34,259568,2741],{"class":50},[34,259570,593],{"class":181},[34,259572,259573,259575,259577,259579],{"class":36,"line":58},[34,259574,7350],{"class":675},[34,259576,165],{"class":580},[34,259578,680],{"class":50},[34,259580,593],{"class":181},[34,259582,259583,259585,259587,259589],{"class":36,"line":65},[34,259584,132578],{"class":675},[34,259586,165],{"class":580},[34,259588,680],{"class":50},[34,259590,593],{"class":181},[34,259592,259593,259595,259597,259599],{"class":36,"line":71},[34,259594,17581],{"class":675},[34,259596,165],{"class":580},[34,259598,2741],{"class":50},[34,259600,593],{"class":181},[34,259602,259603],{"class":36,"line":77},[34,259604,693],{"class":181},[34,259606,259607],{"class":36,"line":82},[34,259608,62],{"emptyLinePlaceholder":61},[34,259610,259611],{"class":36,"line":88},[34,259612,259613],{"class":40},"// Partial - all properties optional\n",[34,259615,259616,259618,259621,259623,259626,259628,259630],{"class":36,"line":242},[34,259617,41324],{"class":580},[34,259619,259620],{"class":47}," PartialUser",[34,259622,683],{"class":580},[34,259624,259625],{"class":47}," Partial",[34,259627,815],{"class":181},[34,259629,3860],{"class":47},[34,259631,4834],{"class":181},[34,259633,259634],{"class":36,"line":250},[34,259635,62],{"emptyLinePlaceholder":61},[34,259637,259638],{"class":36,"line":263},[34,259639,259640],{"class":40},"// Required - all properties required\n",[34,259642,259643,259645,259648,259650,259653,259655,259657],{"class":36,"line":275},[34,259644,41324],{"class":580},[34,259646,259647],{"class":47}," RequiredUser",[34,259649,683],{"class":580},[34,259651,259652],{"class":47}," Required",[34,259654,815],{"class":181},[34,259656,3860],{"class":47},[34,259658,4834],{"class":181},[34,259660,259661],{"class":36,"line":700},[34,259662,62],{"emptyLinePlaceholder":61},[34,259664,259665],{"class":36,"line":706},[34,259666,259667],{"class":40},"// Readonly - all properties readonly\n",[34,259669,259670,259672,259675,259677,259679,259681,259683],{"class":36,"line":715},[34,259671,41324],{"class":580},[34,259673,259674],{"class":47}," ReadonlyUser",[34,259676,683],{"class":580},[34,259678,257384],{"class":47},[34,259680,815],{"class":181},[34,259682,3860],{"class":47},[34,259684,4834],{"class":181},[34,259686,259687],{"class":36,"line":725},[34,259688,62],{"emptyLinePlaceholder":61},[34,259690,259691],{"class":36,"line":734},[34,259692,259693],{"class":40},"// Pick - select specific properties\n",[34,259695,259696,259698,259701,259703,259706,259708,259710,259712,259714,259716,259719],{"class":36,"line":742},[34,259697,41324],{"class":580},[34,259699,259700],{"class":47}," UserPreview",[34,259702,683],{"class":580},[34,259704,259705],{"class":47}," Pick",[34,259707,815],{"class":181},[34,259709,3860],{"class":47},[34,259711,1798],{"class":181},[34,259713,3652],{"class":54},[34,259715,7197],{"class":580},[34,259717,259718],{"class":54}," 'name'",[34,259720,4834],{"class":181},[34,259722,259723],{"class":36,"line":748},[34,259724,62],{"emptyLinePlaceholder":61},[34,259726,259727],{"class":36,"line":754},[34,259728,259729],{"class":40},"// Omit - exclude specific properties\n",[34,259731,259732,259734,259737,259739,259742,259744,259746,259748,259750],{"class":36,"line":759},[34,259733,41324],{"class":580},[34,259735,259736],{"class":47}," UserWithoutEmail",[34,259738,683],{"class":580},[34,259740,259741],{"class":47}," Omit",[34,259743,815],{"class":181},[34,259745,3860],{"class":47},[34,259747,1798],{"class":181},[34,259749,71323],{"class":54},[34,259751,4834],{"class":181},[34,259753,259754],{"class":36,"line":771},[34,259755,62],{"emptyLinePlaceholder":61},[34,259757,259758],{"class":36,"line":794},[34,259759,259760],{"class":40},"// Record - construct object type\n",[34,259762,259763,259765,259768,259770,259772,259774,259776,259778,259780,259782,259785,259787,259790],{"class":36,"line":824},[34,259764,41324],{"class":580},[34,259766,259767],{"class":47}," UserRoles",[34,259769,683],{"class":580},[34,259771,130469],{"class":47},[34,259773,815],{"class":181},[34,259775,30113],{"class":50},[34,259777,1798],{"class":181},[34,259779,3347],{"class":54},[34,259781,7197],{"class":580},[34,259783,259784],{"class":54}," 'user'",[34,259786,7197],{"class":580},[34,259788,259789],{"class":54}," 'guest'",[34,259791,4834],{"class":181},[34,259793,259794],{"class":36,"line":830},[34,259795,62],{"emptyLinePlaceholder":61},[34,259797,259798],{"class":36,"line":839},[34,259799,259800],{"class":40},"// Extract and Exclude\n",[34,259802,259803,259805,259808,259810,259813,259815,259817,259819,259822,259824,259827,259829,259831,259833,259836,259839],{"class":36,"line":854},[34,259804,41324],{"class":580},[34,259806,259807],{"class":47}," T1",[34,259809,683],{"class":580},[34,259811,259812],{"class":47}," Extract",[34,259814,815],{"class":181},[34,259816,24628],{"class":54},[34,259818,7197],{"class":580},[34,259820,259821],{"class":54}," 'b'",[34,259823,7197],{"class":580},[34,259825,259826],{"class":54}," 'c'",[34,259828,1798],{"class":181},[34,259830,24628],{"class":54},[34,259832,7197],{"class":580},[34,259834,259835],{"class":54}," 'f'",[34,259837,259838],{"class":181},">;  ",[34,259840,259841],{"class":40},"// 'a'\n",[34,259843,259844,259846,259849,259851,259854,259856,259858,259860,259862,259864,259866,259868,259870,259873],{"class":36,"line":860},[34,259845,41324],{"class":580},[34,259847,259848],{"class":47}," T2",[34,259850,683],{"class":580},[34,259852,259853],{"class":47}," Exclude",[34,259855,815],{"class":181},[34,259857,24628],{"class":54},[34,259859,7197],{"class":580},[34,259861,259821],{"class":54},[34,259863,7197],{"class":580},[34,259865,259826],{"class":54},[34,259867,1798],{"class":181},[34,259869,24628],{"class":54},[34,259871,259872],{"class":181},">;         ",[34,259874,259875],{"class":40},"// 'b' | 'c'\n",[34,259877,259878],{"class":36,"line":865},[34,259879,62],{"emptyLinePlaceholder":61},[34,259881,259882],{"class":36,"line":870},[34,259883,259884],{"class":40},"// ReturnType and Parameters\n",[34,259886,259887,259889,259892,259894,259896,259898,259900,259902,259904,259906,259908,259910,259912,259914,259916],{"class":36,"line":876},[34,259888,41324],{"class":580},[34,259890,259891],{"class":47}," Fn",[34,259893,683],{"class":580},[34,259895,3204],{"class":181},[34,259897,145],{"class":675},[34,259899,165],{"class":580},[34,259901,680],{"class":50},[34,259903,1798],{"class":181},[34,259905,8355],{"class":675},[34,259907,165],{"class":580},[34,259909,2741],{"class":50},[34,259911,4817],{"class":181},[34,259913,3361],{"class":580},[34,259915,59460],{"class":50},[34,259917,593],{"class":181},[34,259919,259920,259922,259925,259927,259930,259932,259935,259938],{"class":36,"line":885},[34,259921,41324],{"class":580},[34,259923,259924],{"class":47}," FnReturn",[34,259926,683],{"class":580},[34,259928,259929],{"class":47}," ReturnType",[34,259931,815],{"class":181},[34,259933,259934],{"class":47},"Fn",[34,259936,259937],{"class":181},">;      ",[34,259939,178552],{"class":40},[34,259941,259942,259944,259947,259949,259952,259954,259956,259958],{"class":36,"line":895},[34,259943,41324],{"class":580},[34,259945,259946],{"class":47}," FnParams",[34,259948,683],{"class":580},[34,259950,259951],{"class":47}," Parameters",[34,259953,815],{"class":181},[34,259955,259934],{"class":47},[34,259957,259937],{"class":181},[34,259959,259960],{"class":40},"// [string, number]\n",[388,259962,259963],{},"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 .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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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);}",{"title":30,"searchDepth":44,"depth":44,"links":259965},[259966],{"id":259547,"depth":44,"text":257959},"Utility Types in TypeScript.",{},{"title":257959,"description":259967},"typescript/utility-types",[573,8606,33298,256159],"TDUkJXKdaVNMc5CPlhuHdtMHrW1hKkfXrpXz41pABUc",{"id":259974,"title":259975,"body":259976,"date":402,"description":260361,"extension":404,"meta":260362,"navigation":61,"order":37,"path":260363,"seo":260364,"stem":260365,"subject":260366,"tags":260367,"__hash__":260369},"topics/ufw/overview.md","UFW",{"type":8,"value":259977,"toc":260353},[259978,259982,260019,260023,260061,260065,260170,260174,260239,260242,260287,260291,260351],[11,259979,259981],{"id":259980},"enabling-and-disabling","Enabling and Disabling",[25,259983,259985],{"className":27,"code":259984,"language":29,"meta":30,"style":30},"# Enable the firewall\nsudo ufw enable\n\n# Disable the firewall\nsudo ufw disable\n",[20,259986,259987,259992,260001,260005,260010],{"__ignoreMap":30},[34,259988,259989],{"class":36,"line":37},[34,259990,259991],{"class":40},"# Enable the firewall\n",[34,259993,259994,259996,259999],{"class":36,"line":44},[34,259995,436],{"class":47},[34,259997,259998],{"class":54}," ufw",[34,260000,180166],{"class":54},[34,260002,260003],{"class":36,"line":58},[34,260004,62],{"emptyLinePlaceholder":61},[34,260006,260007],{"class":36,"line":65},[34,260008,260009],{"class":40},"# Disable the firewall\n",[34,260011,260012,260014,260016],{"class":36,"line":71},[34,260013,436],{"class":47},[34,260015,259998],{"class":54},[34,260017,260018],{"class":54}," disable\n",[11,260020,260022],{"id":260021},"checking-the-status","Checking the Status",[25,260024,260026],{"className":27,"code":260025,"language":29,"meta":30,"style":30},"# View the status of UFW (active/inactive)\nsudo ufw status\n\n# Verbose output with detailed rules\nsudo ufw status verbose\n",[20,260027,260028,260033,260041,260045,260050],{"__ignoreMap":30},[34,260029,260030],{"class":36,"line":37},[34,260031,260032],{"class":40},"# View the status of UFW (active/inactive)\n",[34,260034,260035,260037,260039],{"class":36,"line":44},[34,260036,436],{"class":47},[34,260038,259998],{"class":54},[34,260040,94480],{"class":54},[34,260042,260043],{"class":36,"line":58},[34,260044,62],{"emptyLinePlaceholder":61},[34,260046,260047],{"class":36,"line":65},[34,260048,260049],{"class":40},"# Verbose output with detailed rules\n",[34,260051,260052,260054,260056,260058],{"class":36,"line":71},[34,260053,436],{"class":47},[34,260055,259998],{"class":54},[34,260057,94498],{"class":54},[34,260059,260060],{"class":54}," verbose\n",[11,260062,260064],{"id":260063},"adding-rules","Adding Rules",[25,260066,260068],{"className":27,"code":260067,"language":29,"meta":30,"style":30},"# Allow access on a specific port\nsudo ufw allow 22       # Allow SSH\nsudo ufw allow 80       # Allow HTTP\n\n# From a specific IP\nsudo ufw allow from 192.168.1.1\n\n# Specific protocol and port\nsudo ufw allow 443/tcp  # HTTPS via TCP\n\n# Deny traffic on certain ports\nsudo ufw deny 8080      # Block a custom port\n",[20,260069,260070,260075,260089,260102,260106,260111,260124,260128,260133,260147,260151,260156],{"__ignoreMap":30},[34,260071,260072],{"class":36,"line":37},[34,260073,260074],{"class":40},"# Allow access on a specific port\n",[34,260076,260077,260079,260081,260084,260086],{"class":36,"line":44},[34,260078,436],{"class":47},[34,260080,259998],{"class":54},[34,260082,260083],{"class":54}," allow",[34,260085,82337],{"class":50},[34,260087,260088],{"class":40},"       # Allow SSH\n",[34,260090,260091,260093,260095,260097,260099],{"class":36,"line":58},[34,260092,436],{"class":47},[34,260094,259998],{"class":54},[34,260096,260083],{"class":54},[34,260098,103413],{"class":50},[34,260100,260101],{"class":40},"       # Allow HTTP\n",[34,260103,260104],{"class":36,"line":65},[34,260105,62],{"emptyLinePlaceholder":61},[34,260107,260108],{"class":36,"line":71},[34,260109,260110],{"class":40},"# From a specific IP\n",[34,260112,260113,260115,260117,260119,260121],{"class":36,"line":77},[34,260114,436],{"class":47},[34,260116,259998],{"class":54},[34,260118,260083],{"class":54},[34,260120,36370],{"class":54},[34,260122,260123],{"class":50}," 192.168.1.1\n",[34,260125,260126],{"class":36,"line":82},[34,260127,62],{"emptyLinePlaceholder":61},[34,260129,260130],{"class":36,"line":88},[34,260131,260132],{"class":40},"# Specific protocol and port\n",[34,260134,260135,260137,260139,260141,260144],{"class":36,"line":242},[34,260136,436],{"class":47},[34,260138,259998],{"class":54},[34,260140,260083],{"class":54},[34,260142,260143],{"class":54}," 443/tcp",[34,260145,260146],{"class":40},"  # HTTPS via TCP\n",[34,260148,260149],{"class":36,"line":250},[34,260150,62],{"emptyLinePlaceholder":61},[34,260152,260153],{"class":36,"line":263},[34,260154,260155],{"class":40},"# Deny traffic on certain ports\n",[34,260157,260158,260160,260162,260165,260167],{"class":36,"line":275},[34,260159,436],{"class":47},[34,260161,259998],{"class":54},[34,260163,260164],{"class":54}," deny",[34,260166,237386],{"class":50},[34,260168,260169],{"class":40},"      # Block a custom port\n",[11,260171,260173],{"id":260172},"deleting-rules","Deleting Rules",[25,260175,260177],{"className":27,"code":260176,"language":29,"meta":30,"style":30},"# Delete a rule (use the exact description)\nsudo ufw delete allow 80\n\n# List rules to find numbers\nsudo ufw status numbered\n\n# Delete by index\nsudo ufw delete 2       # Deletes rule #2\n",[20,260178,260179,260184,260197,260201,260206,260217,260221,260226],{"__ignoreMap":30},[34,260180,260181],{"class":36,"line":37},[34,260182,260183],{"class":40},"# Delete a rule (use the exact description)\n",[34,260185,260186,260188,260190,260192,260194],{"class":36,"line":44},[34,260187,436],{"class":47},[34,260189,259998],{"class":54},[34,260191,9562],{"class":54},[34,260193,260083],{"class":54},[34,260195,260196],{"class":50}," 80\n",[34,260198,260199],{"class":36,"line":58},[34,260200,62],{"emptyLinePlaceholder":61},[34,260202,260203],{"class":36,"line":65},[34,260204,260205],{"class":40},"# List rules to find numbers\n",[34,260207,260208,260210,260212,260214],{"class":36,"line":71},[34,260209,436],{"class":47},[34,260211,259998],{"class":54},[34,260213,94498],{"class":54},[34,260215,260216],{"class":54}," numbered\n",[34,260218,260219],{"class":36,"line":77},[34,260220,62],{"emptyLinePlaceholder":61},[34,260222,260223],{"class":36,"line":82},[34,260224,260225],{"class":40},"# Delete by index\n",[34,260227,260228,260230,260232,260234,260236],{"class":36,"line":88},[34,260229,436],{"class":47},[34,260231,259998],{"class":54},[34,260233,9562],{"class":54},[34,260235,4292],{"class":50},[34,260237,260238],{"class":40},"       # Deletes rule #2\n",[11,260240,260241],{"id":458},"Defaults",[25,260243,260245],{"className":27,"code":260244,"language":29,"meta":30,"style":30},"# Deny all incoming traffic by default\nsudo ufw default deny incoming\n\n# Allow all outgoing traffic by default\nsudo ufw default allow outgoing\n",[20,260246,260247,260252,260265,260269,260274],{"__ignoreMap":30},[34,260248,260249],{"class":36,"line":37},[34,260250,260251],{"class":40},"# Deny all incoming traffic by default\n",[34,260253,260254,260256,260258,260260,260262],{"class":36,"line":44},[34,260255,436],{"class":47},[34,260257,259998],{"class":54},[34,260259,7298],{"class":54},[34,260261,260164],{"class":54},[34,260263,260264],{"class":54}," incoming\n",[34,260266,260267],{"class":36,"line":58},[34,260268,62],{"emptyLinePlaceholder":61},[34,260270,260271],{"class":36,"line":65},[34,260272,260273],{"class":40},"# Allow all outgoing traffic by default\n",[34,260275,260276,260278,260280,260282,260284],{"class":36,"line":71},[34,260277,436],{"class":47},[34,260279,259998],{"class":54},[34,260281,7298],{"class":54},[34,260283,260083],{"class":54},[34,260285,260286],{"class":54}," outgoing\n",[11,260288,260290],{"id":260289},"advanced-settings","Advanced Settings",[25,260292,260294],{"className":27,"code":260293,"language":29,"meta":30,"style":30},"# Reset the UFW configuration (removes all rules)\nsudo ufw reset\n\n# Enable logging\nsudo ufw logging on\n\n# Limit connections to prevent brute force (e.g., SSH)\nsudo ufw limit ssh/tcp\n",[20,260295,260296,260301,260310,260314,260319,260330,260334,260339],{"__ignoreMap":30},[34,260297,260298],{"class":36,"line":37},[34,260299,260300],{"class":40},"# Reset the UFW configuration (removes all rules)\n",[34,260302,260303,260305,260307],{"class":36,"line":44},[34,260304,436],{"class":47},[34,260306,259998],{"class":54},[34,260308,260309],{"class":54}," reset\n",[34,260311,260312],{"class":36,"line":58},[34,260313,62],{"emptyLinePlaceholder":61},[34,260315,260316],{"class":36,"line":65},[34,260317,260318],{"class":40},"# Enable logging\n",[34,260320,260321,260323,260325,260328],{"class":36,"line":71},[34,260322,436],{"class":47},[34,260324,259998],{"class":54},[34,260326,260327],{"class":54}," logging",[34,260329,251642],{"class":54},[34,260331,260332],{"class":36,"line":77},[34,260333,62],{"emptyLinePlaceholder":61},[34,260335,260336],{"class":36,"line":82},[34,260337,260338],{"class":40},"# Limit connections to prevent brute force (e.g., SSH)\n",[34,260340,260341,260343,260345,260348],{"class":36,"line":88},[34,260342,436],{"class":47},[34,260344,259998],{"class":54},[34,260346,260347],{"class":54}," limit",[34,260349,260350],{"class":54}," ssh/tcp\n",[388,260352,120763],{},{"title":30,"searchDepth":44,"depth":44,"links":260354},[260355,260356,260357,260358,260359,260360],{"id":259980,"depth":44,"text":259981},{"id":260021,"depth":44,"text":260022},{"id":260063,"depth":44,"text":260064},{"id":260172,"depth":44,"text":260173},{"id":458,"depth":44,"text":260241},{"id":260289,"depth":44,"text":260290},"A cheat sheet covering Uncomplicated Firewall (UFW) basics, setup, and common commands for secure Linux usage.",{},"/ufw/overview",{"title":259975,"description":260361},"ufw/overview","ufw",[260366,260368,5588,235509],"firewall","z9tYJufHZBmg4UBrDUdVVPT1JsvX_oSJ0oy7UKdA1cU",{"id":260371,"title":260372,"body":260373,"date":402,"description":260757,"extension":404,"meta":260758,"navigation":61,"order":37,"path":260759,"seo":260760,"stem":260761,"subject":260762,"tags":260763,"__hash__":260766},"topics/unocss/overview.md","UnoCSS",{"type":8,"value":260374,"toc":260750},[260375,260377,260380,260443,260449,260453,260456,260526,260536,260540,260543,260667,260671,260674,260697,260705,260707,260714,260747],[11,260376,14],{"id":13},[16,260378,260379],{},"UnoCSS is an extendable and on-demand atomic CSS engine. It provides a flexible way to define CSS utilities via local configuration or presets.",[25,260381,260383],{"className":91533,"code":260382,"language":91535,"meta":30,"style":30},"import { defineConfig } from 'unocss';\n\nexport default defineConfig({\n  rules: [\n    ['m-1', { margin: '1px' }],\n  ],\n});\n",[20,260384,260385,260399,260403,260414,260419,260435,260439],{"__ignoreMap":30},[34,260386,260387,260389,260392,260394,260397],{"class":36,"line":37},[34,260388,581],{"class":580},[34,260390,260391],{"class":181}," { defineConfig } ",[34,260393,587],{"class":580},[34,260395,260396],{"class":54}," 'unocss'",[34,260398,593],{"class":181},[34,260400,260401],{"class":36,"line":44},[34,260402,62],{"emptyLinePlaceholder":61},[34,260404,260405,260407,260409,260412],{"class":36,"line":58},[34,260406,652],{"class":580},[34,260408,7298],{"class":580},[34,260410,260411],{"class":47}," defineConfig",[34,260413,613],{"class":181},[34,260415,260416],{"class":36,"line":65},[34,260417,260418],{"class":181},"  rules: [\n",[34,260420,260421,260423,260426,260429,260432],{"class":36,"line":71},[34,260422,33545],{"class":181},[34,260424,260425],{"class":54},"'m-1'",[34,260427,260428],{"class":181},", { margin: ",[34,260430,260431],{"class":54},"'1px'",[34,260433,260434],{"class":181}," }],\n",[34,260436,260437],{"class":36,"line":77},[34,260438,127682],{"class":181},[34,260440,260441],{"class":36,"line":82},[34,260442,14873],{"class":181},[16,260444,18,260445,260448],{},[20,260446,260447],{},"m-1"," utility will be applied only when used in the project.",[11,260450,260452],{"id":260451},"dynamic-rules","Dynamic Rules",[16,260454,260455],{},"Using dynamic utilities allows more flexibility:",[25,260457,260459],{"className":91533,"code":260458,"language":91535,"meta":30,"style":30},"export default defineConfig({\n  rules: [\n    [/^m-(\\d+)$/, ([, num]) => ({ margin: `${num}px` })],\n  ],\n});\n",[20,260460,260461,260471,260475,260518,260522],{"__ignoreMap":30},[34,260462,260463,260465,260467,260469],{"class":36,"line":37},[34,260464,652],{"class":580},[34,260466,7298],{"class":580},[34,260468,260411],{"class":47},[34,260470,613],{"class":181},[34,260472,260473],{"class":36,"line":44},[34,260474,260418],{"class":181},[34,260476,260477,260479,260481,260483,260486,260488,260490,260492,260494,260496,260499,260501,260503,260505,260508,260510,260512,260515],{"class":36,"line":58},[34,260478,33545],{"class":181},[34,260480,12734],{"class":54},[34,260482,23002],{"class":580},[34,260484,260485],{"class":83922},"m-(",[34,260487,177150],{"class":50},[34,260489,2940],{"class":580},[34,260491,1617],{"class":83922},[34,260493,11676],{"class":580},[34,260495,12734],{"class":54},[34,260497,260498],{"class":181},", ([, ",[34,260500,13996],{"class":675},[34,260502,193030],{"class":181},[34,260504,3361],{"class":580},[34,260506,260507],{"class":181}," ({ margin: ",[34,260509,3910],{"class":54},[34,260511,13996],{"class":181},[34,260513,260514],{"class":54},"}px`",[34,260516,260517],{"class":181}," })],\n",[34,260519,260520],{"class":36,"line":65},[34,260521,127682],{"class":181},[34,260523,260524],{"class":36,"line":71},[34,260525,14873],{"class":181},[16,260527,260528,260529,157865,260532,260535],{},"This enables patterns like ",[20,260530,260531],{},"m-5",[20,260533,260534],{},"m-20"," to dynamically generate styles.",[11,260537,260539],{"id":260538},"presets","Presets",[16,260541,260542],{},"Create reusable configurations to share:",[25,260544,260546],{"className":91533,"code":260545,"language":91535,"meta":30,"style":30},"import { Preset } from 'unocss';\n\nexport const myPreset: Preset = {\n  name: 'my-preset',\n  rules: [\n    [/^p-(\\d+)$/, ([, num]) => ({ padding: `${num}px` })],\n  ],\n};\n\nexport default defineConfig({\n  presets: [myPreset],\n});\n",[20,260547,260548,260561,260565,260583,260592,260596,260636,260640,260644,260648,260658,260663],{"__ignoreMap":30},[34,260549,260550,260552,260555,260557,260559],{"class":36,"line":37},[34,260551,581],{"class":580},[34,260553,260554],{"class":181}," { Preset } ",[34,260556,587],{"class":580},[34,260558,260396],{"class":54},[34,260560,593],{"class":181},[34,260562,260563],{"class":36,"line":44},[34,260564,62],{"emptyLinePlaceholder":61},[34,260566,260567,260569,260571,260574,260576,260579,260581],{"class":36,"line":58},[34,260568,652],{"class":580},[34,260570,3291],{"class":580},[34,260572,260573],{"class":50}," myPreset",[34,260575,165],{"class":580},[34,260577,260578],{"class":47}," Preset",[34,260580,683],{"class":580},[34,260582,661],{"class":181},[34,260584,260585,260587,260590],{"class":36,"line":65},[34,260586,2830],{"class":181},[34,260588,260589],{"class":54},"'my-preset'",[34,260591,624],{"class":181},[34,260593,260594],{"class":36,"line":71},[34,260595,260418],{"class":181},[34,260597,260598,260600,260602,260604,260607,260609,260611,260613,260615,260617,260619,260621,260623,260625,260628,260630,260632,260634],{"class":36,"line":77},[34,260599,33545],{"class":181},[34,260601,12734],{"class":54},[34,260603,23002],{"class":580},[34,260605,260606],{"class":83922},"p-(",[34,260608,177150],{"class":50},[34,260610,2940],{"class":580},[34,260612,1617],{"class":83922},[34,260614,11676],{"class":580},[34,260616,12734],{"class":54},[34,260618,260498],{"class":181},[34,260620,13996],{"class":675},[34,260622,193030],{"class":181},[34,260624,3361],{"class":580},[34,260626,260627],{"class":181}," ({ padding: ",[34,260629,3910],{"class":54},[34,260631,13996],{"class":181},[34,260633,260514],{"class":54},[34,260635,260517],{"class":181},[34,260637,260638],{"class":36,"line":82},[34,260639,127682],{"class":181},[34,260641,260642],{"class":36,"line":88},[34,260643,17632],{"class":181},[34,260645,260646],{"class":36,"line":242},[34,260647,62],{"emptyLinePlaceholder":61},[34,260649,260650,260652,260654,260656],{"class":36,"line":250},[34,260651,652],{"class":580},[34,260653,7298],{"class":580},[34,260655,260411],{"class":47},[34,260657,613],{"class":181},[34,260659,260660],{"class":36,"line":263},[34,260661,260662],{"class":181},"  presets: [myPreset],\n",[34,260664,260665],{"class":36,"line":275},[34,260666,14873],{"class":181},[11,260668,260670],{"id":260669},"integration","Integration",[16,260672,260673],{},"UnoCSS integrates with a variety of tools and frameworks:",[309,260675,260676,260682,260688],{},[312,260677,260678,260681],{},[8471,260679,260680],{},"Vite"," integration for smooth development.",[312,260683,260684,260687],{},[8471,260685,260686],{},"PostCSS"," for extending CSS transformations.",[312,260689,260690,260692,260693,260696],{},[8471,260691,127593],{}," tools and ",[8471,260694,260695],{},"VSCode"," extensions available.",[16,260698,260699,260700,151],{},"Explore the official site for ",[145,260701,260704],{"href":260702,"rel":260703},"https://unocss.dev/integrations/",[149],"more frameworks",[11,260706,120524],{"id":88698},[16,260708,260709,260710,165],{},"Experiment in-browser using the UnoCSS ",[145,260711,46149],{"href":260712,"rel":260713},"https://unocss.dev/play/",[149],[25,260715,260717],{"className":1162,"code":260716,"language":1164,"meta":30,"style":30},"\u003Cdiv class=\"m-1 p-20\">\n  Flexible and Atomic-Compatible\n\u003C/div>\n",[20,260718,260719,260734,260739],{"__ignoreMap":30},[34,260720,260721,260723,260725,260727,260729,260732],{"class":36,"line":37},[34,260722,815],{"class":181},[34,260724,1240],{"class":177},[34,260726,655],{"class":47},[34,260728,1301],{"class":181},[34,260730,260731],{"class":54},"\"m-1 p-20\"",[34,260733,1248],{"class":181},[34,260735,260736],{"class":36,"line":44},[34,260737,260738],{"class":181},"  Flexible and Atomic-Compatible\n",[34,260740,260741,260743,260745],{"class":36,"line":58},[34,260742,2089],{"class":181},[34,260744,1240],{"class":177},[34,260746,1248],{"class":181},[388,260748,260749],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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 .sA_wV, html code.shiki .sA_wV{--shiki-default:#032F62;--shiki-dark:#DBEDFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":30,"searchDepth":44,"depth":44,"links":260751},[260752,260753,260754,260755,260756],{"id":13,"depth":44,"text":14},{"id":260451,"depth":44,"text":260452},{"id":260538,"depth":44,"text":260539},{"id":260669,"depth":44,"text":260670},{"id":88698,"depth":44,"text":120524},"Flexible and extensible atomic CSS engine for modern web development.",{},"/unocss/overview",{"title":260372,"description":260757},"unocss/overview","unocss",[260762,38194,260764,260765],"atomic-css","web-development","kgCmB1-T-u-ROjlFCFZjF-P4PlyujHZstqPPJuNoCWI",{"id":260768,"title":13534,"body":260769,"date":402,"description":260775,"extension":404,"meta":260778,"navigation":61,"order":402,"path":260779,"seo":260780,"stem":260781,"subject":402,"tags":402,"__hash__":260782},"topics/v/overview.md",{"type":8,"value":260770,"toc":260776},[260771,260773],[7979,260772],{},[16,260774,260775],{},"title Intro:",{"title":30,"searchDepth":44,"depth":44,"links":260777},[],{},"/v/overview",{"title":13534,"description":260775},"v/overview","nEwsqgPZsYuKEECqB94JozAjk-pc1Nvep56lKR7OWtc",{"id":260784,"title":260785,"body":260786,"date":402,"description":261347,"extension":404,"meta":261348,"navigation":61,"order":37,"path":261349,"seo":261350,"stem":261351,"subject":260849,"tags":261352,"__hash__":261355},"topics/vale/overview.md","Vale",{"type":8,"value":260787,"toc":261338},[260788,260790,260852,260854,260902,260906,260959,260963,261000,261004,261086,261090,261163,261218,261220,261336],[11,260789,97],{"id":96},[25,260791,260793],{"className":27,"code":260792,"language":29,"meta":30,"style":30},"# macOS\nbrew install vale\n\n# Linux (download binary)\n# https://github.com/errata-ai/vale/releases\n\n# npm\nnpm install -g @errata-ai/vale\n\nvale --version\n",[20,260794,260795,260799,260808,260812,260817,260822,260826,260830,260841,260845],{"__ignoreMap":30},[34,260796,260797],{"class":36,"line":37},[34,260798,8625],{"class":40},[34,260800,260801,260803,260805],{"class":36,"line":44},[34,260802,115],{"class":47},[34,260804,118],{"class":54},[34,260806,260807],{"class":54}," vale\n",[34,260809,260810],{"class":36,"line":58},[34,260811,62],{"emptyLinePlaceholder":61},[34,260813,260814],{"class":36,"line":65},[34,260815,260816],{"class":40},"# Linux (download binary)\n",[34,260818,260819],{"class":36,"line":71},[34,260820,260821],{"class":40},"# https://github.com/errata-ai/vale/releases\n",[34,260823,260824],{"class":36,"line":77},[34,260825,62],{"emptyLinePlaceholder":61},[34,260827,260828],{"class":36,"line":82},[34,260829,15840],{"class":40},[34,260831,260832,260834,260836,260838],{"class":36,"line":88},[34,260833,8177],{"class":47},[34,260835,118],{"class":54},[34,260837,9753],{"class":50},[34,260839,260840],{"class":54}," @errata-ai/vale\n",[34,260842,260843],{"class":36,"line":242},[34,260844,62],{"emptyLinePlaceholder":61},[34,260846,260847,260850],{"class":36,"line":250},[34,260848,260849],{"class":47},"vale",[34,260851,5013],{"class":50},[11,260853,8686],{"id":558},[25,260855,260857],{"className":5200,"code":260856,"language":5202,"meta":30,"style":30},"# .vale.ini (project root)\nStylesPath = .vale/styles   # where styles live\nMinAlertLevel = suggestion  # suggestion | warning | error\n\n[*.md]\nBasedOnStyles = Vale, Google\n\n[*.txt]\nBasedOnStyles = Vale\n",[20,260858,260859,260864,260869,260874,260878,260883,260888,260892,260897],{"__ignoreMap":30},[34,260860,260861],{"class":36,"line":37},[34,260862,260863],{},"# .vale.ini (project root)\n",[34,260865,260866],{"class":36,"line":44},[34,260867,260868],{},"StylesPath = .vale/styles   # where styles live\n",[34,260870,260871],{"class":36,"line":58},[34,260872,260873],{},"MinAlertLevel = suggestion  # suggestion | warning | error\n",[34,260875,260876],{"class":36,"line":65},[34,260877,62],{"emptyLinePlaceholder":61},[34,260879,260880],{"class":36,"line":71},[34,260881,260882],{},"[*.md]\n",[34,260884,260885],{"class":36,"line":77},[34,260886,260887],{},"BasedOnStyles = Vale, Google\n",[34,260889,260890],{"class":36,"line":82},[34,260891,62],{"emptyLinePlaceholder":61},[34,260893,260894],{"class":36,"line":88},[34,260895,260896],{},"[*.txt]\n",[34,260898,260899],{"class":36,"line":242},[34,260900,260901],{},"BasedOnStyles = Vale\n",[11,260903,260905],{"id":260904},"built-in-styles","Built-in Styles",[25,260907,260909],{"className":27,"code":260908,"language":29,"meta":30,"style":30},"# Vale ships with a built-in style\n# Download community styles:\nvale sync   # downloads styles defined in .vale.ini\n\n# Popular styles:\n# - Google: Google developer docs style\n# - Microsoft: Microsoft Writing Style Guide\n# - write-good: general writing checks\n# - proselint: opinionated prose linting\n",[20,260910,260911,260916,260921,260930,260934,260939,260944,260949,260954],{"__ignoreMap":30},[34,260912,260913],{"class":36,"line":37},[34,260914,260915],{"class":40},"# Vale ships with a built-in style\n",[34,260917,260918],{"class":36,"line":44},[34,260919,260920],{"class":40},"# Download community styles:\n",[34,260922,260923,260925,260927],{"class":36,"line":58},[34,260924,260849],{"class":47},[34,260926,7505],{"class":54},[34,260928,260929],{"class":40},"   # downloads styles defined in .vale.ini\n",[34,260931,260932],{"class":36,"line":65},[34,260933,62],{"emptyLinePlaceholder":61},[34,260935,260936],{"class":36,"line":71},[34,260937,260938],{"class":40},"# Popular styles:\n",[34,260940,260941],{"class":36,"line":77},[34,260942,260943],{"class":40},"# - Google: Google developer docs style\n",[34,260945,260946],{"class":36,"line":82},[34,260947,260948],{"class":40},"# - Microsoft: Microsoft Writing Style Guide\n",[34,260950,260951],{"class":36,"line":88},[34,260952,260953],{"class":40},"# - write-good: general writing checks\n",[34,260955,260956],{"class":36,"line":242},[34,260957,260958],{"class":40},"# - proselint: opinionated prose linting\n",[11,260960,260962],{"id":260961},"using-styles","Using Styles",[25,260964,260966],{"className":5200,"code":260965,"language":5202,"meta":30,"style":30},"# .vale.ini\nStylesPath = .vale/styles\n\nPackages = Google, write-good   # auto-download on sync\n\n[*.md]\nBasedOnStyles = Vale, Google, write-good\n",[20,260967,260968,260973,260978,260982,260987,260991,260995],{"__ignoreMap":30},[34,260969,260970],{"class":36,"line":37},[34,260971,260972],{},"# .vale.ini\n",[34,260974,260975],{"class":36,"line":44},[34,260976,260977],{},"StylesPath = .vale/styles\n",[34,260979,260980],{"class":36,"line":58},[34,260981,62],{"emptyLinePlaceholder":61},[34,260983,260984],{"class":36,"line":65},[34,260985,260986],{},"Packages = Google, write-good   # auto-download on sync\n",[34,260988,260989],{"class":36,"line":71},[34,260990,62],{"emptyLinePlaceholder":61},[34,260992,260993],{"class":36,"line":77},[34,260994,260882],{},[34,260996,260997],{"class":36,"line":82},[34,260998,260999],{},"BasedOnStyles = Vale, Google, write-good\n",[11,261001,261003],{"id":261002},"running-vale","Running Vale",[25,261005,261007],{"className":27,"code":261006,"language":29,"meta":30,"style":30},"# Lint a file\nvale README.md\n\n# Lint a directory\nvale docs/\n\n# Lint from stdin\ncat README.md | vale --ext=.md\n\n# Output formats\nvale --output=JSON README.md\nvale --output=line README.md\n",[20,261008,261009,261014,261020,261024,261029,261036,261040,261045,261059,261063,261068,261077],{"__ignoreMap":30},[34,261010,261011],{"class":36,"line":37},[34,261012,261013],{"class":40},"# Lint a file\n",[34,261015,261016,261018],{"class":36,"line":44},[34,261017,260849],{"class":47},[34,261019,103155],{"class":54},[34,261021,261022],{"class":36,"line":58},[34,261023,62],{"emptyLinePlaceholder":61},[34,261025,261026],{"class":36,"line":65},[34,261027,261028],{"class":40},"# Lint a directory\n",[34,261030,261031,261033],{"class":36,"line":71},[34,261032,260849],{"class":47},[34,261034,261035],{"class":54}," docs/\n",[34,261037,261038],{"class":36,"line":77},[34,261039,62],{"emptyLinePlaceholder":61},[34,261041,261042],{"class":36,"line":82},[34,261043,261044],{"class":40},"# Lint from stdin\n",[34,261046,261047,261049,261051,261053,261056],{"class":36,"line":88},[34,261048,11449],{"class":47},[34,261050,103431],{"class":54},[34,261052,7197],{"class":580},[34,261054,261055],{"class":47}," vale",[34,261057,261058],{"class":50}," --ext=.md\n",[34,261060,261061],{"class":36,"line":242},[34,261062,62],{"emptyLinePlaceholder":61},[34,261064,261065],{"class":36,"line":250},[34,261066,261067],{"class":40},"# Output formats\n",[34,261069,261070,261072,261075],{"class":36,"line":263},[34,261071,260849],{"class":47},[34,261073,261074],{"class":50}," --output=JSON",[34,261076,103155],{"class":54},[34,261078,261079,261081,261084],{"class":36,"line":275},[34,261080,260849],{"class":47},[34,261082,261083],{"class":50}," --output=line",[34,261085,103155],{"class":54},[11,261087,261089],{"id":261088},"custom-rules","Custom Rules",[25,261091,261093],{"className":168,"code":261092,"language":170,"meta":30,"style":30},"# .vale/styles/MyStyle/Avoid.yml\nextends: existence\nmessage: \"Avoid '%s'\"\nlevel: warning\ntokens:\n  - simply\n  - obviously\n  - just\n  - easy\n",[20,261094,261095,261100,261110,261119,261128,261135,261142,261149,261156],{"__ignoreMap":30},[34,261096,261097],{"class":36,"line":37},[34,261098,261099],{"class":40},"# .vale/styles/MyStyle/Avoid.yml\n",[34,261101,261102,261105,261107],{"class":36,"line":44},[34,261103,261104],{"class":177},"extends",[34,261106,182],{"class":181},[34,261108,261109],{"class":54},"existence\n",[34,261111,261112,261114,261116],{"class":36,"line":58},[34,261113,15736],{"class":177},[34,261115,182],{"class":181},[34,261117,261118],{"class":54},"\"Avoid '%s'\"\n",[34,261120,261121,261123,261125],{"class":36,"line":65},[34,261122,232004],{"class":177},[34,261124,182],{"class":181},[34,261126,261127],{"class":54},"warning\n",[34,261129,261130,261133],{"class":36,"line":71},[34,261131,261132],{"class":177},"tokens",[34,261134,193],{"class":181},[34,261136,261137,261139],{"class":36,"line":77},[34,261138,46644],{"class":181},[34,261140,261141],{"class":54},"simply\n",[34,261143,261144,261146],{"class":36,"line":82},[34,261145,46644],{"class":181},[34,261147,261148],{"class":54},"obviously\n",[34,261150,261151,261153],{"class":36,"line":88},[34,261152,46644],{"class":181},[34,261154,261155],{"class":54},"just\n",[34,261157,261158,261160],{"class":36,"line":242},[34,261159,46644],{"class":181},[34,261161,261162],{"class":54},"easy\n",[25,261164,261166],{"className":168,"code":261165,"language":170,"meta":30,"style":30},"# .vale/styles/MyStyle/Headings.yml\nextends: capitalization\nmessage: \"Use sentence-case for headings\"\nlevel: warning\nscope: heading\nmatch: $sentence\n",[20,261167,261168,261173,261182,261191,261199,261209],{"__ignoreMap":30},[34,261169,261170],{"class":36,"line":37},[34,261171,261172],{"class":40},"# .vale/styles/MyStyle/Headings.yml\n",[34,261174,261175,261177,261179],{"class":36,"line":44},[34,261176,261104],{"class":177},[34,261178,182],{"class":181},[34,261180,261181],{"class":54},"capitalization\n",[34,261183,261184,261186,261188],{"class":36,"line":58},[34,261185,15736],{"class":177},[34,261187,182],{"class":181},[34,261189,261190],{"class":54},"\"Use sentence-case for headings\"\n",[34,261192,261193,261195,261197],{"class":36,"line":65},[34,261194,232004],{"class":177},[34,261196,182],{"class":181},[34,261198,261127],{"class":54},[34,261200,261201,261204,261206],{"class":36,"line":71},[34,261202,261203],{"class":177},"scope",[34,261205,182],{"class":181},[34,261207,261208],{"class":54},"heading\n",[34,261210,261211,261213,261215],{"class":36,"line":77},[34,261212,193892],{"class":177},[34,261214,182],{"class":181},[34,261216,261217],{"class":54},"$sentence\n",[11,261219,133180],{"id":133179},[25,261221,261223],{"className":168,"code":261222,"language":170,"meta":30,"style":30},"# .github/workflows/vale.yml\nname: Prose Lint\n\non: [push, pull_request]\n\njobs:\n  vale:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - uses: errata-ai/vale-action@reviewdog\n        with:\n          files: docs/\n          vale_flags: \"--minAlertLevel=error\"\n",[20,261224,261225,261230,261239,261243,261258,261262,261268,261275,261283,261289,261299,261310,261316,261326],{"__ignoreMap":30},[34,261226,261227],{"class":36,"line":37},[34,261228,261229],{"class":40},"# .github/workflows/vale.yml\n",[34,261231,261232,261234,261236],{"class":36,"line":44},[34,261233,178],{"class":177},[34,261235,182],{"class":181},[34,261237,261238],{"class":54},"Prose Lint\n",[34,261240,261241],{"class":36,"line":58},[34,261242,62],{"emptyLinePlaceholder":61},[34,261244,261245,261247,261249,261251,261253,261256],{"class":36,"line":65},[34,261246,190],{"class":50},[34,261248,47204],{"class":181},[34,261250,50165],{"class":54},[34,261252,1798],{"class":181},[34,261254,261255],{"class":54},"pull_request",[34,261257,924],{"class":181},[34,261259,261260],{"class":36,"line":71},[34,261261,62],{"emptyLinePlaceholder":61},[34,261263,261264,261266],{"class":36,"line":77},[34,261265,220],{"class":177},[34,261267,193],{"class":181},[34,261269,261270,261273],{"class":36,"line":82},[34,261271,261272],{"class":177},"  vale",[34,261274,193],{"class":181},[34,261276,261277,261279,261281],{"class":36,"line":88},[34,261278,234],{"class":177},[34,261280,182],{"class":181},[34,261282,239],{"class":54},[34,261284,261285,261287],{"class":36,"line":242},[34,261286,245],{"class":177},[34,261288,193],{"class":181},[34,261290,261291,261293,261295,261297],{"class":36,"line":250},[34,261292,212],{"class":181},[34,261294,255],{"class":177},[34,261296,182],{"class":181},[34,261298,224954],{"class":54},[34,261300,261301,261303,261305,261307],{"class":36,"line":263},[34,261302,212],{"class":181},[34,261304,255],{"class":177},[34,261306,182],{"class":181},[34,261308,261309],{"class":54},"errata-ai/vale-action@reviewdog\n",[34,261311,261312,261314],{"class":36,"line":275},[34,261313,224959],{"class":177},[34,261315,193],{"class":181},[34,261317,261318,261321,261323],{"class":36,"line":700},[34,261319,261320],{"class":177},"          files",[34,261322,182],{"class":181},[34,261324,261325],{"class":54},"docs/\n",[34,261327,261328,261331,261333],{"class":36,"line":706},[34,261329,261330],{"class":177},"          vale_flags",[34,261332,182],{"class":181},[34,261334,261335],{"class":54},"\"--minAlertLevel=error\"\n",[388,261337,7685],{},{"title":30,"searchDepth":44,"depth":44,"links":261339},[261340,261341,261342,261343,261344,261345,261346],{"id":96,"depth":44,"text":97},{"id":558,"depth":44,"text":8686},{"id":260904,"depth":44,"text":260905},{"id":260961,"depth":44,"text":260962},{"id":261002,"depth":44,"text":261003},{"id":261088,"depth":44,"text":261089},{"id":133179,"depth":44,"text":133180},"A prose linter that enforces writing style and grammar rules in documentation and Markdown files.",{},"/vale/overview",{"title":260785,"description":261347},"vale/overview",[260849,141273,261353,58704,261354],"prose","writing","r-brxeZiJWALs8gSupu-e1wvZSnqF5lxna1-5M89nEc",{"id":261357,"title":8686,"body":261358,"date":402,"description":261504,"extension":404,"meta":261505,"navigation":61,"order":275,"path":261506,"seo":261507,"stem":261508,"subject":157763,"tags":261509,"__hash__":261511},"topics/vim/configuration.md",{"type":8,"value":261359,"toc":261501},[261360,261362,261499],[11,261361,8686],{"id":558},[25,261363,261365],{"className":27,"code":261364,"language":29,"meta":30,"style":30},":set number         # Show line numbers\n:set nonumber       # Hide line numbers\n:set relativenumber # Show relative line numbers\n:set hlsearch       # Highlight search results\n:set nohlsearch     # Disable search highlighting\n:set ignorecase     # Case-insensitive search\n:set smartcase      # Case-sensitive if uppercase present\n:set autoindent     # Auto-indent new lines\n:set tabstop=4      # Set tab width to 4 spaces\n:set shiftwidth=4   # Set indent width to 4 spaces\n:set expandtab      # Use spaces instead of tabs\n:syntax on          # Enable syntax highlighting\n:noh                # Clear search highlighting\n",[20,261366,261367,261376,261386,261396,261406,261416,261426,261436,261446,261458,261470,261480,261491],{"__ignoreMap":30},[34,261368,261369,261371,261373],{"class":36,"line":37},[34,261370,251851],{"class":47},[34,261372,2741],{"class":54},[34,261374,261375],{"class":40},"         # Show line numbers\n",[34,261377,261378,261380,261383],{"class":36,"line":44},[34,261379,251851],{"class":47},[34,261381,261382],{"class":54}," nonumber",[34,261384,261385],{"class":40},"       # Hide line numbers\n",[34,261387,261388,261390,261393],{"class":36,"line":58},[34,261389,251851],{"class":47},[34,261391,261392],{"class":54}," relativenumber",[34,261394,261395],{"class":40}," # Show relative line numbers\n",[34,261397,261398,261400,261403],{"class":36,"line":65},[34,261399,251851],{"class":47},[34,261401,261402],{"class":54}," hlsearch",[34,261404,261405],{"class":40},"       # Highlight search results\n",[34,261407,261408,261410,261413],{"class":36,"line":71},[34,261409,251851],{"class":47},[34,261411,261412],{"class":54}," nohlsearch",[34,261414,261415],{"class":40},"     # Disable search highlighting\n",[34,261417,261418,261420,261423],{"class":36,"line":77},[34,261419,251851],{"class":47},[34,261421,261422],{"class":54}," ignorecase",[34,261424,261425],{"class":40},"     # Case-insensitive search\n",[34,261427,261428,261430,261433],{"class":36,"line":82},[34,261429,251851],{"class":47},[34,261431,261432],{"class":54}," smartcase",[34,261434,261435],{"class":40},"      # Case-sensitive if uppercase present\n",[34,261437,261438,261440,261443],{"class":36,"line":88},[34,261439,251851],{"class":47},[34,261441,261442],{"class":54}," autoindent",[34,261444,261445],{"class":40},"     # Auto-indent new lines\n",[34,261447,261448,261450,261453,261455],{"class":36,"line":242},[34,261449,251851],{"class":47},[34,261451,261452],{"class":54}," tabstop=",[34,261454,18010],{"class":50},[34,261456,261457],{"class":40},"      # Set tab width to 4 spaces\n",[34,261459,261460,261462,261465,261467],{"class":36,"line":250},[34,261461,251851],{"class":47},[34,261463,261464],{"class":54}," shiftwidth=",[34,261466,18010],{"class":50},[34,261468,261469],{"class":40},"   # Set indent width to 4 spaces\n",[34,261471,261472,261474,261477],{"class":36,"line":263},[34,261473,251851],{"class":47},[34,261475,261476],{"class":54}," expandtab",[34,261478,261479],{"class":40},"      # Use spaces instead of tabs\n",[34,261481,261482,261485,261488],{"class":36,"line":275},[34,261483,261484],{"class":47},":syntax",[34,261486,261487],{"class":54}," on",[34,261489,261490],{"class":40},"          # Enable syntax highlighting\n",[34,261492,261493,261496],{"class":36,"line":700},[34,261494,261495],{"class":47},":noh",[34,261497,261498],{"class":40},"                # Clear search highlighting\n",[388,261500,29731],{},{"title":30,"searchDepth":44,"depth":44,"links":261502},[261503],{"id":558,"depth":44,"text":8686},"Configuration in Vim.",{},"/vim/configuration",{"title":8686,"description":261504},"vim/configuration",[157763,113609,557,261510],"shortcuts","_8iMKnZY9PwctMAZRxR8_j2x3PYktTx5oN0vRL3vtPI",{"id":261513,"title":261514,"body":261515,"date":402,"description":261703,"extension":404,"meta":261704,"navigation":61,"order":65,"path":261705,"seo":261706,"stem":261707,"subject":157763,"tags":261708,"__hash__":261709},"topics/vim/editing.md","Editing",{"type":8,"value":261516,"toc":261700},[261517,261520,261697],[11,261518,261514],{"id":261519},"editing",[25,261521,261523],{"className":27,"code":261522,"language":29,"meta":30,"style":30},"x           # Delete character under cursor\nX           # Delete character before cursor\ndd          # Delete (cut) entire line\ndw          # Delete (cut) word\nd$          # Delete (cut) to end of line\nd0          # Delete (cut) to beginning of line\nyy          # Yank (copy) entire line\nyw          # Yank (copy) word\ny$          # Yank (copy) to end of line\np           # Paste after cursor\nP           # Paste before cursor\nu           # Undo\nCtrl+r      # Redo\n.           # Repeat last command\nr           # Replace single character\ncc          # Change (replace) entire line\ncw          # Change (replace) word\nc$          # Change (replace) to end of line\nJ           # Join line below to current line\n>>          # Indent line right\n\u003C\u003C          # Indent line left\n==          # Auto-indent current line\n",[20,261524,261525,261532,261540,261547,261555,261563,261571,261579,261587,261595,261602,261609,261616,261624,261631,261638,261646,261654,261662,261670,261677,261692],{"__ignoreMap":30},[34,261526,261527,261529],{"class":36,"line":37},[34,261528,23655],{"class":47},[34,261530,261531],{"class":40},"           # Delete character under cursor\n",[34,261533,261534,261537],{"class":36,"line":44},[34,261535,261536],{"class":47},"X",[34,261538,261539],{"class":40},"           # Delete character before cursor\n",[34,261541,261542,261544],{"class":36,"line":58},[34,261543,118099],{"class":47},[34,261545,261546],{"class":40},"          # Delete (cut) entire line\n",[34,261548,261549,261552],{"class":36,"line":65},[34,261550,261551],{"class":47},"dw",[34,261553,261554],{"class":40},"          # Delete (cut) word\n",[34,261556,261557,261560],{"class":36,"line":71},[34,261558,261559],{"class":47},"d$",[34,261561,261562],{"class":40},"          # Delete (cut) to end of line\n",[34,261564,261565,261568],{"class":36,"line":77},[34,261566,261567],{"class":47},"d0",[34,261569,261570],{"class":40},"          # Delete (cut) to beginning of line\n",[34,261572,261573,261576],{"class":36,"line":82},[34,261574,261575],{"class":47},"yy",[34,261577,261578],{"class":40},"          # Yank (copy) entire line\n",[34,261580,261581,261584],{"class":36,"line":88},[34,261582,261583],{"class":47},"yw",[34,261585,261586],{"class":40},"          # Yank (copy) word\n",[34,261588,261589,261592],{"class":36,"line":242},[34,261590,261591],{"class":47},"y$",[34,261593,261594],{"class":40},"          # Yank (copy) to end of line\n",[34,261596,261597,261599],{"class":36,"line":250},[34,261598,16],{"class":47},[34,261600,261601],{"class":40},"           # Paste after cursor\n",[34,261603,261604,261606],{"class":36,"line":263},[34,261605,257403],{"class":47},[34,261607,261608],{"class":40},"           # Paste before cursor\n",[34,261610,261611,261613],{"class":36,"line":275},[34,261612,64828],{"class":47},[34,261614,261615],{"class":40},"           # Undo\n",[34,261617,261618,261621],{"class":36,"line":700},[34,261619,261620],{"class":47},"Ctrl+r",[34,261622,261623],{"class":40},"      # Redo\n",[34,261625,261626,261628],{"class":36,"line":706},[34,261627,151],{"class":50},[34,261629,261630],{"class":40},"           # Repeat last command\n",[34,261632,261633,261635],{"class":36,"line":715},[34,261634,56239],{"class":47},[34,261636,261637],{"class":40},"           # Replace single character\n",[34,261639,261640,261643],{"class":36,"line":725},[34,261641,261642],{"class":47},"cc",[34,261644,261645],{"class":40},"          # Change (replace) entire line\n",[34,261647,261648,261651],{"class":36,"line":734},[34,261649,261650],{"class":47},"cw",[34,261652,261653],{"class":40},"          # Change (replace) word\n",[34,261655,261656,261659],{"class":36,"line":742},[34,261657,261658],{"class":47},"c$",[34,261660,261661],{"class":40},"          # Change (replace) to end of line\n",[34,261663,261664,261667],{"class":36,"line":748},[34,261665,261666],{"class":47},"J",[34,261668,261669],{"class":40},"           # Join line below to current line\n",[34,261671,261672,261674],{"class":36,"line":754},[34,261673,23036],{"class":580},[34,261675,261676],{"class":40},"          # Indent line right\n",[34,261678,261679,261681,261684,261687,261689],{"class":36,"line":759},[34,261680,23022],{"class":580},[34,261682,261683],{"class":54},"          #",[34,261685,261686],{"class":47}," Indent",[34,261688,12115],{"class":54},[34,261690,261691],{"class":54}," left\n",[34,261693,261694],{"class":36,"line":771},[34,261695,261696],{"class":54},"==          # Auto-indent current line\n",[388,261698,261699],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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);}",{"title":30,"searchDepth":44,"depth":44,"links":261701},[261702],{"id":261519,"depth":44,"text":261514},"Editing in Vim.",{},"/vim/editing",{"title":261514,"description":261703},"vim/editing",[157763,113609,557,261510],"ligiS5-bx5Shm9ZMCpKsEsEhJyV-gr-G5ymwqsQaxpE",{"id":261711,"title":81168,"body":261712,"date":402,"description":261836,"extension":404,"meta":261837,"navigation":61,"order":77,"path":261838,"seo":261839,"stem":261840,"subject":157763,"tags":261841,"__hash__":261842},"topics/vim/file-operations.md",{"type":8,"value":261713,"toc":261833},[261714,261716,261830],[11,261715,81168],{"id":81167},[25,261717,261719],{"className":27,"code":261718,"language":29,"meta":30,"style":30},":w          # Write (save) file\n:w filename # Save as filename\n:q          # Quit\n:q!         # Quit without saving\n:wq         # Write and quit\n:x          # Write and quit (only if changes made)\nZZ          # Write and quit (shortcut)\nZQ          # Quit without saving (shortcut)\n:e filename # Open file for editing\n:r filename # Read file and insert after cursor\n:bn         # Go to next buffer\n:bp         # Go to previous buffer\n:bd         # Delete (close) buffer\n",[20,261720,261721,261729,261738,261746,261754,261762,261770,261778,261786,261796,261806,261814,261822],{"__ignoreMap":30},[34,261722,261723,261726],{"class":36,"line":37},[34,261724,261725],{"class":47},":w",[34,261727,261728],{"class":40},"          # Write (save) file\n",[34,261730,261731,261733,261735],{"class":36,"line":44},[34,261732,261725],{"class":47},[34,261734,184018],{"class":54},[34,261736,261737],{"class":40}," # Save as filename\n",[34,261739,261740,261743],{"class":36,"line":58},[34,261741,261742],{"class":47},":q",[34,261744,261745],{"class":40},"          # Quit\n",[34,261747,261748,261751],{"class":36,"line":65},[34,261749,261750],{"class":47},":q!",[34,261752,261753],{"class":40},"         # Quit without saving\n",[34,261755,261756,261759],{"class":36,"line":71},[34,261757,261758],{"class":47},":wq",[34,261760,261761],{"class":40},"         # Write and quit\n",[34,261763,261764,261767],{"class":36,"line":77},[34,261765,261766],{"class":47},":x",[34,261768,261769],{"class":40},"          # Write and quit (only if changes made)\n",[34,261771,261772,261775],{"class":36,"line":82},[34,261773,261774],{"class":47},"ZZ",[34,261776,261777],{"class":40},"          # Write and quit (shortcut)\n",[34,261779,261780,261783],{"class":36,"line":88},[34,261781,261782],{"class":47},"ZQ",[34,261784,261785],{"class":40},"          # Quit without saving (shortcut)\n",[34,261787,261788,261791,261793],{"class":36,"line":242},[34,261789,261790],{"class":47},":e",[34,261792,184018],{"class":54},[34,261794,261795],{"class":40}," # Open file for editing\n",[34,261797,261798,261801,261803],{"class":36,"line":250},[34,261799,261800],{"class":47},":r",[34,261802,184018],{"class":54},[34,261804,261805],{"class":40}," # Read file and insert after cursor\n",[34,261807,261808,261811],{"class":36,"line":263},[34,261809,261810],{"class":47},":bn",[34,261812,261813],{"class":40},"         # Go to next buffer\n",[34,261815,261816,261819],{"class":36,"line":275},[34,261817,261818],{"class":47},":bp",[34,261820,261821],{"class":40},"         # Go to previous buffer\n",[34,261823,261824,261827],{"class":36,"line":700},[34,261825,261826],{"class":47},":bd",[34,261828,261829],{"class":40},"         # Delete (close) buffer\n",[388,261831,261832],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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);}",{"title":30,"searchDepth":44,"depth":44,"links":261834},[261835],{"id":81167,"depth":44,"text":81168},"File Operations in Vim.",{},"/vim/file-operations",{"title":81168,"description":261836},"vim/file-operations",[157763,113609,557,261510],"FnM0w252RE1gUrfc7iHV-GhdRUHDDVs6FGL3nYgsIMY",{"id":261844,"title":26842,"body":261845,"date":402,"description":261895,"extension":404,"meta":261896,"navigation":61,"order":263,"path":261897,"seo":261898,"stem":261899,"subject":157763,"tags":261900,"__hash__":261901},"topics/vim/macros.md",{"type":8,"value":261846,"toc":261892},[261847,261849,261889],[11,261848,26842],{"id":26847},[25,261850,261852],{"className":27,"code":261851,"language":29,"meta":30,"style":30},"q{a-z}      # Start recording macro into register {a-z}\nq           # Stop recording macro\n@{a-z}      # Execute macro from register {a-z}\n@@          # Repeat last executed macro\n",[20,261853,261854,261865,261872,261881],{"__ignoreMap":30},[34,261855,261856,261859,261862],{"class":36,"line":37},[34,261857,261858],{"class":47},"q",[34,261860,261861],{"class":54},"{a-z}",[34,261863,261864],{"class":40},"      # Start recording macro into register {a-z}\n",[34,261866,261867,261869],{"class":36,"line":44},[34,261868,261858],{"class":47},[34,261870,261871],{"class":40},"           # Stop recording macro\n",[34,261873,261874,261876,261878],{"class":36,"line":58},[34,261875,607],{"class":47},[34,261877,261861],{"class":54},[34,261879,261880],{"class":40},"      # Execute macro from register {a-z}\n",[34,261882,261883,261886],{"class":36,"line":65},[34,261884,261885],{"class":47},"@@",[34,261887,261888],{"class":40},"          # Repeat last executed macro\n",[388,261890,261891],{},"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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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":30,"searchDepth":44,"depth":44,"links":261893},[261894],{"id":26847,"depth":44,"text":26842},"Macros in Vim.",{},"/vim/macros",{"title":26842,"description":261895},"vim/macros",[157763,113609,557,261510],"851zWpzBgGaBWOTXpIfQi8TwysFjtk-Wuk_PIaTfMu4",{"id":261903,"title":261904,"body":261905,"date":402,"description":261969,"extension":404,"meta":261970,"navigation":61,"order":242,"path":261971,"seo":261972,"stem":261973,"subject":157763,"tags":261974,"__hash__":261975},"topics/vim/marks-and-jumps.md","Marks and Jumps",{"type":8,"value":261906,"toc":261966},[261907,261910,261964],[11,261908,261904],{"id":261909},"marks-and-jumps",[25,261911,261913],{"className":27,"code":261912,"language":29,"meta":30,"style":30},"m{a-z}      # Set mark at cursor (local to file)\nm{A-Z}      # Set mark at cursor (global across files)\n'{a-z}      # Jump to mark (beginning of line)\n`{a-z}      # Jump to mark (exact position)\n''          # Jump back to previous position\n``          # Jump to exact previous position\nCtrl+o      # Jump to older position in jump list\nCtrl+i      # Jump to newer position in jump list\n",[20,261914,261915,261924,261934,261939,261944,261949,261954,261959],{"__ignoreMap":30},[34,261916,261917,261919,261921],{"class":36,"line":37},[34,261918,3385],{"class":47},[34,261920,261861],{"class":54},[34,261922,261923],{"class":40},"      # Set mark at cursor (local to file)\n",[34,261925,261926,261928,261931],{"class":36,"line":44},[34,261927,3385],{"class":47},[34,261929,261930],{"class":54},"{A-Z}",[34,261932,261933],{"class":40},"      # Set mark at cursor (global across files)\n",[34,261935,261936],{"class":36,"line":58},[34,261937,261938],{"class":47},"'{a-z}      # Jump to mark (beginning of line)\n",[34,261940,261941],{"class":36,"line":65},[34,261942,261943],{"class":47},"`{a-z}      # Jump to mark (exact position)\n",[34,261945,261946],{"class":36,"line":71},[34,261947,261948],{"class":47},"''          # Jump back to previous position\n",[34,261950,261951],{"class":36,"line":77},[34,261952,261953],{"class":47},"``          # Jump to exact previous position\n",[34,261955,261956],{"class":36,"line":82},[34,261957,261958],{"class":47},"Ctrl+o      # Jump to older position in jump list\n",[34,261960,261961],{"class":36,"line":88},[34,261962,261963],{"class":47},"Ctrl+i      # Jump to newer position in jump list\n",[388,261965,261891],{},{"title":30,"searchDepth":44,"depth":44,"links":261967},[261968],{"id":261909,"depth":44,"text":261904},"Marks and Jumps in Vim.",{},"/vim/marks-and-jumps",{"title":261904,"description":261969},"vim/marks-and-jumps",[157763,113609,557,261510],"oIexABbQss2w-ZB6g_kxEY_hChqdlpOgzkAKJ0SXudE",{"id":261977,"title":261978,"body":261979,"date":402,"description":262119,"extension":404,"meta":262120,"navigation":61,"order":700,"path":262121,"seo":262122,"stem":262123,"subject":157763,"tags":262124,"__hash__":262125},"topics/vim/miscellaneous.md","Miscellaneous",{"type":8,"value":261980,"toc":262116},[261981,261984,262114],[11,261982,261978],{"id":261983},"miscellaneous",[25,261985,261987],{"className":27,"code":261986,"language":29,"meta":30,"style":30},":help command   # Get help for command\n:help           # Open help\nK               # Look up word under cursor in manual\n:!command       # Execute shell command\n:r !command     # Insert output of shell command\n:%!command      # Filter entire file through shell command\n:set paste      # Enable paste mode (disable auto-indent)\n:set nopaste    # Disable paste mode\ngf              # Go to file under cursor\nCtrl+g          # Show file info (path, lines, position)\nga              # Show ASCII value of character under cursor\ng~iw            # Toggle case of word\nguiw            # Make word lowercase\ngUiw            # Make word uppercase\n",[20,261988,261989,261999,262006,262013,262024,262034,262046,262056,262066,262074,262082,262090,262098,262106],{"__ignoreMap":30},[34,261990,261991,261994,261996],{"class":36,"line":37},[34,261992,261993],{"class":47},":help",[34,261995,12527],{"class":54},[34,261997,261998],{"class":40},"   # Get help for command\n",[34,262000,262001,262003],{"class":36,"line":44},[34,262002,261993],{"class":47},[34,262004,262005],{"class":40},"           # Open help\n",[34,262007,262008,262010],{"class":36,"line":58},[34,262009,64452],{"class":47},[34,262011,262012],{"class":40},"               # Look up word under cursor in manual\n",[34,262014,262015,262017,262019,262021],{"class":36,"line":65},[34,262016,165],{"class":50},[34,262018,10307],{"class":54},[34,262020,11334],{"class":50},[34,262022,262023],{"class":40},"       # Execute shell command\n",[34,262025,262026,262028,262031],{"class":36,"line":71},[34,262027,261800],{"class":47},[34,262029,262030],{"class":54}," !command",[34,262032,262033],{"class":40},"     # Insert output of shell command\n",[34,262035,262036,262038,262041,262043],{"class":36,"line":77},[34,262037,165],{"class":50},[34,262039,262040],{"class":54},"%!",[34,262042,11334],{"class":50},[34,262044,262045],{"class":40},"      # Filter entire file through shell command\n",[34,262047,262048,262050,262053],{"class":36,"line":82},[34,262049,251851],{"class":47},[34,262051,262052],{"class":54}," paste",[34,262054,262055],{"class":40},"      # Enable paste mode (disable auto-indent)\n",[34,262057,262058,262060,262063],{"class":36,"line":88},[34,262059,251851],{"class":47},[34,262061,262062],{"class":54}," nopaste",[34,262064,262065],{"class":40},"    # Disable paste mode\n",[34,262067,262068,262071],{"class":36,"line":242},[34,262069,262070],{"class":47},"gf",[34,262072,262073],{"class":40},"              # Go to file under cursor\n",[34,262075,262076,262079],{"class":36,"line":250},[34,262077,262078],{"class":47},"Ctrl+g",[34,262080,262081],{"class":40},"          # Show file info (path, lines, position)\n",[34,262083,262084,262087],{"class":36,"line":263},[34,262085,262086],{"class":47},"ga",[34,262088,262089],{"class":40},"              # Show ASCII value of character under cursor\n",[34,262091,262092,262095],{"class":36,"line":275},[34,262093,262094],{"class":47},"g~iw",[34,262096,262097],{"class":40},"            # Toggle case of word\n",[34,262099,262100,262103],{"class":36,"line":700},[34,262101,262102],{"class":47},"guiw",[34,262104,262105],{"class":40},"            # Make word lowercase\n",[34,262107,262108,262111],{"class":36,"line":706},[34,262109,262110],{"class":47},"gUiw",[34,262112,262113],{"class":40},"            # Make word uppercase\n",[388,262115,29731],{},{"title":30,"searchDepth":44,"depth":44,"links":262117},[262118],{"id":261983,"depth":44,"text":261978},"Miscellaneous in Vim.",{},"/vim/miscellaneous",{"title":261978,"description":262119},"vim/miscellaneous",[157763,113609,557,261510],"oJmnHx59tbX0uoHiFHWVRQ8S27FYBb0XcfH5LlAmriw",{"id":262127,"title":262128,"body":262129,"date":402,"description":262231,"extension":404,"meta":262232,"navigation":61,"order":44,"path":262233,"seo":262234,"stem":262235,"subject":157763,"tags":262236,"__hash__":262237},"topics/vim/modes.md","Modes",{"type":8,"value":262130,"toc":262228},[262131,262134,262225],[11,262132,262128],{"id":262133},"modes",[25,262135,262137],{"className":27,"code":262136,"language":29,"meta":30,"style":30},"i           # Enter insert mode at cursor\nI           # Enter insert mode at beginning of line\na           # Enter insert mode after cursor\nA           # Enter insert mode at end of line\no           # Open new line below and enter insert mode\nO           # Open new line above and enter insert mode\nv           # Enter visual mode (character selection)\nV           # Enter visual line mode\nCtrl+v      # Enter visual block mode\nEsc         # Return to normal mode\n:           # Enter command mode\nR           # Enter replace mode\n",[20,262138,262139,262146,262153,262160,262167,262174,262181,262188,262195,262203,262210,262217],{"__ignoreMap":30},[34,262140,262141,262143],{"class":36,"line":37},[34,262142,77335],{"class":47},[34,262144,262145],{"class":40},"           # Enter insert mode at cursor\n",[34,262147,262148,262150],{"class":36,"line":44},[34,262149,228138],{"class":47},[34,262151,262152],{"class":40},"           # Enter insert mode at beginning of line\n",[34,262154,262155,262157],{"class":36,"line":58},[34,262156,145],{"class":47},[34,262158,262159],{"class":40},"           # Enter insert mode after cursor\n",[34,262161,262162,262164],{"class":36,"line":65},[34,262163,83923],{"class":47},[34,262165,262166],{"class":40},"           # Enter insert mode at end of line\n",[34,262168,262169,262171],{"class":36,"line":71},[34,262170,114909],{"class":47},[34,262172,262173],{"class":40},"           # Open new line below and enter insert mode\n",[34,262175,262176,262178],{"class":36,"line":77},[34,262177,119456],{"class":47},[34,262179,262180],{"class":40},"           # Open new line above and enter insert mode\n",[34,262182,262183,262185],{"class":36,"line":82},[34,262184,87307],{"class":47},[34,262186,262187],{"class":40},"           # Enter visual mode (character selection)\n",[34,262189,262190,262192],{"class":36,"line":88},[34,262191,257027],{"class":47},[34,262193,262194],{"class":40},"           # Enter visual line mode\n",[34,262196,262197,262200],{"class":36,"line":242},[34,262198,262199],{"class":47},"Ctrl+v",[34,262201,262202],{"class":40},"      # Enter visual block mode\n",[34,262204,262205,262207],{"class":36,"line":250},[34,262206,252487],{"class":47},[34,262208,262209],{"class":40},"         # Return to normal mode\n",[34,262211,262212,262214],{"class":36,"line":263},[34,262213,165],{"class":50},[34,262215,262216],{"class":40},"           # Enter command mode\n",[34,262218,262219,262222],{"class":36,"line":275},[34,262220,262221],{"class":47},"R",[34,262223,262224],{"class":40},"           # Enter replace mode\n",[388,262226,262227],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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}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":30,"searchDepth":44,"depth":44,"links":262229},[262230],{"id":262133,"depth":44,"text":262128},"Modes in Vim.",{},"/vim/modes",{"title":262128,"description":262231},"vim/modes",[157763,113609,557,261510],"pflNg8WQ-zlCKMoidm8Gg38Fkzxff85wD_4_HR9GNl4",{"id":262239,"title":262240,"body":262241,"date":402,"description":262399,"extension":404,"meta":262400,"navigation":61,"order":88,"path":262401,"seo":262402,"stem":262403,"subject":157763,"tags":262404,"__hash__":262405},"topics/vim/multiple-files-and-windows.md","Multiple Files and Windows",{"type":8,"value":262242,"toc":262396},[262243,262246,262394],[11,262244,262240],{"id":262245},"multiple-files-and-windows",[25,262247,262249],{"className":27,"code":262248,"language":29,"meta":30,"style":30},":sp filename    # Split window horizontally and open file\n:vsp filename   # Split window vertically and open file\nCtrl+w s        # Split window horizontally\nCtrl+w v        # Split window vertically\nCtrl+w w        # Switch between windows\nCtrl+w h        # Move to left window\nCtrl+w j        # Move to window below\nCtrl+w k        # Move to window above\nCtrl+w l        # Move to right window\nCtrl+w q        # Close current window\nCtrl+w o        # Close all windows except current\nCtrl+w =        # Make all windows equal size\n:tabnew         # Open new tab\ngt              # Go to next tab\ngT              # Go to previous tab\n:tabc           # Close current tab\n",[20,262250,262251,262261,262271,262281,262290,262299,262308,262317,262326,262335,262344,262353,262362,262370,262378,262386],{"__ignoreMap":30},[34,262252,262253,262256,262258],{"class":36,"line":37},[34,262254,262255],{"class":47},":sp",[34,262257,184018],{"class":54},[34,262259,262260],{"class":40},"    # Split window horizontally and open file\n",[34,262262,262263,262266,262268],{"class":36,"line":44},[34,262264,262265],{"class":47},":vsp",[34,262267,184018],{"class":54},[34,262269,262270],{"class":40},"   # Split window vertically and open file\n",[34,262272,262273,262276,262278],{"class":36,"line":58},[34,262274,262275],{"class":47},"Ctrl+w",[34,262277,34803],{"class":54},[34,262279,262280],{"class":40},"        # Split window horizontally\n",[34,262282,262283,262285,262287],{"class":36,"line":65},[34,262284,262275],{"class":47},[34,262286,32765],{"class":54},[34,262288,262289],{"class":40},"        # Split window vertically\n",[34,262291,262292,262294,262296],{"class":36,"line":71},[34,262293,262275],{"class":47},[34,262295,34885],{"class":54},[34,262297,262298],{"class":40},"        # Switch between windows\n",[34,262300,262301,262303,262305],{"class":36,"line":77},[34,262302,262275],{"class":47},[34,262304,34893],{"class":54},[34,262306,262307],{"class":40},"        # Move to left window\n",[34,262309,262310,262312,262314],{"class":36,"line":82},[34,262311,262275],{"class":47},[34,262313,252150],{"class":54},[34,262315,262316],{"class":40},"        # Move to window below\n",[34,262318,262319,262321,262323],{"class":36,"line":88},[34,262320,262275],{"class":47},[34,262322,64581],{"class":54},[34,262324,262325],{"class":40},"        # Move to window above\n",[34,262327,262328,262330,262332],{"class":36,"line":242},[34,262329,262275],{"class":47},[34,262331,252172],{"class":54},[34,262333,262334],{"class":40},"        # Move to right window\n",[34,262336,262337,262339,262341],{"class":36,"line":250},[34,262338,262275],{"class":47},[34,262340,198282],{"class":54},[34,262342,262343],{"class":40},"        # Close current window\n",[34,262345,262346,262348,262350],{"class":36,"line":263},[34,262347,262275],{"class":47},[34,262349,151796],{"class":54},[34,262351,262352],{"class":40},"        # Close all windows except current\n",[34,262354,262355,262357,262359],{"class":36,"line":275},[34,262356,262275],{"class":47},[34,262358,683],{"class":54},[34,262360,262361],{"class":40},"        # Make all windows equal size\n",[34,262363,262364,262367],{"class":36,"line":700},[34,262365,262366],{"class":47},":tabnew",[34,262368,262369],{"class":40},"         # Open new tab\n",[34,262371,262372,262375],{"class":36,"line":706},[34,262373,262374],{"class":47},"gt",[34,262376,262377],{"class":40},"              # Go to next tab\n",[34,262379,262380,262383],{"class":36,"line":715},[34,262381,262382],{"class":47},"gT",[34,262384,262385],{"class":40},"              # Go to previous tab\n",[34,262387,262388,262391],{"class":36,"line":725},[34,262389,262390],{"class":47},":tabc",[34,262392,262393],{"class":40},"           # Close current tab\n",[388,262395,261891],{},{"title":30,"searchDepth":44,"depth":44,"links":262397},[262398],{"id":262245,"depth":44,"text":262240},"Multiple Files and Windows in Vim.",{},"/vim/multiple-files-and-windows",{"title":262240,"description":262399},"vim/multiple-files-and-windows",[157763,113609,557,261510],"JRURZ87t_A397eq-lP5J0pbqVdLdj8xT99_-lJwxTXY",{"id":262407,"title":81079,"body":262408,"date":402,"description":262585,"extension":404,"meta":262586,"navigation":61,"order":58,"path":262587,"seo":262588,"stem":262589,"subject":157763,"tags":262590,"__hash__":262591},"topics/vim/navigation.md",{"type":8,"value":262409,"toc":262582},[262410,262412,262579],[11,262411,81079],{"id":81078},[25,262413,262415],{"className":27,"code":262414,"language":29,"meta":30,"style":30},"h           # Move left\nj           # Move down\nk           # Move up\nl           # Move right\nw           # Move forward to start of next word\nb           # Move backward to start of previous word\ne           # Move to end of word\n0           # Move to beginning of line\n^           # Move to first non-whitespace character\n$           # Move to end of line\ngg          # Move to first line of file\nG           # Move to last line of file\n:n          # Move to line n (e.g., :42)\nnG          # Move to line n (e.g., 42G)\n%           # Jump to matching bracket/parenthesis\nCtrl+f      # Page down\nCtrl+b      # Page up\nCtrl+d      # Half page down\nCtrl+u      # Half page up\nH           # Move to top of screen\nM           # Move to middle of screen\nL           # Move to bottom of screen\n",[20,262416,262417,262424,262432,262439,262446,262453,262460,262467,262474,262481,262488,262496,262504,262512,262520,262527,262535,262542,262550,262557,262564,262572],{"__ignoreMap":30},[34,262418,262419,262421],{"class":36,"line":37},[34,262420,100801],{"class":47},[34,262422,262423],{"class":40},"           # Move left\n",[34,262425,262426,262429],{"class":36,"line":44},[34,262427,262428],{"class":47},"j",[34,262430,262431],{"class":40},"           # Move down\n",[34,262433,262434,262436],{"class":36,"line":58},[34,262435,57534],{"class":47},[34,262437,262438],{"class":40},"           # Move up\n",[34,262440,262441,262443],{"class":36,"line":65},[34,262442,12757],{"class":47},[34,262444,262445],{"class":40},"           # Move right\n",[34,262447,262448,262450],{"class":36,"line":71},[34,262449,100897],{"class":47},[34,262451,262452],{"class":40},"           # Move forward to start of next word\n",[34,262454,262455,262457],{"class":36,"line":77},[34,262456,8355],{"class":47},[34,262458,262459],{"class":40},"           # Move backward to start of previous word\n",[34,262461,262462,262464],{"class":36,"line":82},[34,262463,5476],{"class":47},[34,262465,262466],{"class":40},"           # Move to end of word\n",[34,262468,262469,262471],{"class":36,"line":88},[34,262470,2773],{"class":47},[34,262472,262473],{"class":40},"           # Move to beginning of line\n",[34,262475,262476,262478],{"class":36,"line":242},[34,262477,23002],{"class":47},[34,262479,262480],{"class":40},"           # Move to first non-whitespace character\n",[34,262482,262483,262485],{"class":36,"line":250},[34,262484,11676],{"class":47},[34,262486,262487],{"class":40},"           # Move to end of line\n",[34,262489,262490,262493],{"class":36,"line":263},[34,262491,262492],{"class":47},"gg",[34,262494,262495],{"class":40},"          # Move to first line of file\n",[34,262497,262498,262501],{"class":36,"line":275},[34,262499,262500],{"class":47},"G",[34,262502,262503],{"class":40},"           # Move to last line of file\n",[34,262505,262506,262509],{"class":36,"line":700},[34,262507,262508],{"class":47},":n",[34,262510,262511],{"class":40},"          # Move to line n (e.g., :42)\n",[34,262513,262514,262517],{"class":36,"line":706},[34,262515,262516],{"class":47},"nG",[34,262518,262519],{"class":40},"          # Move to line n (e.g., 42G)\n",[34,262521,262522,262524],{"class":36,"line":715},[34,262523,12797],{"class":47},[34,262525,262526],{"class":40},"           # Jump to matching bracket/parenthesis\n",[34,262528,262529,262532],{"class":36,"line":725},[34,262530,262531],{"class":47},"Ctrl+f",[34,262533,262534],{"class":40},"      # Page down\n",[34,262536,262537,262539],{"class":36,"line":734},[34,262538,251793],{"class":47},[34,262540,262541],{"class":40},"      # Page up\n",[34,262543,262544,262547],{"class":36,"line":742},[34,262545,262546],{"class":47},"Ctrl+d",[34,262548,262549],{"class":40},"      # Half page down\n",[34,262551,262552,262554],{"class":36,"line":748},[34,262553,252424],{"class":47},[34,262555,262556],{"class":40},"      # Half page up\n",[34,262558,262559,262561],{"class":36,"line":754},[34,262560,119452],{"class":47},[34,262562,262563],{"class":40},"           # Move to top of screen\n",[34,262565,262566,262569],{"class":36,"line":759},[34,262567,262568],{"class":47},"M",[34,262570,262571],{"class":40},"           # Move to middle of screen\n",[34,262573,262574,262576],{"class":36,"line":771},[34,262575,25191],{"class":47},[34,262577,262578],{"class":40},"           # Move to bottom of screen\n",[388,262580,262581],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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":30,"searchDepth":44,"depth":44,"links":262583},[262584],{"id":81078,"depth":44,"text":81079},"Navigation in Vim.",{},"/vim/navigation",{"title":81079,"description":262585},"vim/navigation",[157763,113609,557,261510],"wkBVE1QuYzRGDss_gICQcasQTWd82zv6DlI10j3iBEA",{"id":262593,"title":262594,"body":262595,"date":2633,"description":262654,"extension":404,"meta":262655,"navigation":61,"order":37,"path":262656,"seo":262657,"stem":262658,"subject":157763,"tags":262659,"__hash__":262660},"topics/vim/overview.md","Vim",{"type":8,"value":262596,"toc":262652},[262597],[309,262598,262599,262603,262607,262611,262617,262621,262626,262630,262634,262640,262644,262648],{},[312,262600,262601],{},[145,262602,262128],{"href":262233},[312,262604,262605],{},[145,262606,81079],{"href":262587},[312,262608,262609],{},[145,262610,261514],{"href":261705},[312,262612,262613],{},[145,262614,262616],{"href":262615},"/vim/search-and-replace","Search and Replace",[312,262618,262619],{},[145,262620,81168],{"href":261838},[312,262622,262623],{},[145,262624,113492],{"href":262625},"/vim/visual-mode",[312,262627,262628],{},[145,262629,262240],{"href":262401},[312,262631,262632],{},[145,262633,261904],{"href":261971},[312,262635,262636],{},[145,262637,262639],{"href":262638},"/vim/text-objects","Text Objects",[312,262641,262642],{},[145,262643,26842],{"href":261897},[312,262645,262646],{},[145,262647,8686],{"href":261506},[312,262649,262650],{},[145,262651,261978],{"href":262121},{"title":30,"searchDepth":44,"depth":44,"links":262653},[],"Essential vim keyboard shortcuts and commands.",{},"/vim/overview",{"title":262594,"description":262654},"vim/overview",[157763,113609,557,261510],"N8lNpp_Jwzt2AQ_8GQ_cbtqmuOQvfFucJBQO5b5xpxg",{"id":262662,"title":262616,"body":262663,"date":402,"description":262768,"extension":404,"meta":262769,"navigation":61,"order":71,"path":262615,"seo":262770,"stem":262771,"subject":157763,"tags":262772,"__hash__":262773},"topics/vim/search-and-replace.md",{"type":8,"value":262664,"toc":262765},[262665,262668,262762],[11,262666,262616],{"id":262667},"search-and-replace",[25,262669,262671],{"className":27,"code":262670,"language":29,"meta":30,"style":30},"/pattern    # Search forward for pattern\n?pattern    # Search backward for pattern\nn           # Repeat search in same direction\nN           # Repeat search in opposite direction\n*           # Search forward for word under cursor\n#           # Search backward for word under cursor\n:%s/old/new/g           # Replace all occurrences in file\n:%s/old/new/gc          # Replace all with confirmation\n:s/old/new/g            # Replace all in current line\n:5,12s/old/new/g        # Replace all in lines 5-12\n/\\cpattern  # Case-insensitive search (or use :set ic)\n",[20,262672,262673,262681,262691,262698,262706,262713,262718,262728,262738,262746,262754],{"__ignoreMap":30},[34,262674,262675,262678],{"class":36,"line":37},[34,262676,262677],{"class":47},"/pattern",[34,262679,262680],{"class":40},"    # Search forward for pattern\n",[34,262682,262683,262685,262688],{"class":36,"line":44},[34,262684,18954],{"class":580},[34,262686,262687],{"class":181},"pattern    ",[34,262689,262690],{"class":40},"# Search backward for pattern\n",[34,262692,262693,262695],{"class":36,"line":58},[34,262694,6217],{"class":47},[34,262696,262697],{"class":40},"           # Repeat search in same direction\n",[34,262699,262700,262703],{"class":36,"line":65},[34,262701,262702],{"class":47},"N",[34,262704,262705],{"class":40},"           # Repeat search in opposite direction\n",[34,262707,262708,262710],{"class":36,"line":71},[34,262709,4289],{"class":580},[34,262711,262712],{"class":40},"           # Search forward for word under cursor\n",[34,262714,262715],{"class":36,"line":77},[34,262716,262717],{"class":40},"#           # Search backward for word under cursor\n",[34,262719,262720,262722,262725],{"class":36,"line":82},[34,262721,165],{"class":50},[34,262723,262724],{"class":54},"%s/old/new/g",[34,262726,262727],{"class":40},"           # Replace all occurrences in file\n",[34,262729,262730,262732,262735],{"class":36,"line":88},[34,262731,165],{"class":50},[34,262733,262734],{"class":54},"%s/old/new/gc",[34,262736,262737],{"class":40},"          # Replace all with confirmation\n",[34,262739,262740,262743],{"class":36,"line":242},[34,262741,262742],{"class":47},":s/old/new/g",[34,262744,262745],{"class":40},"            # Replace all in current line\n",[34,262747,262748,262751],{"class":36,"line":250},[34,262749,262750],{"class":47},":5,12s/old/new/g",[34,262752,262753],{"class":40},"        # Replace all in lines 5-12\n",[34,262755,262756,262759],{"class":36,"line":263},[34,262757,262758],{"class":47},"/\\cpattern",[34,262760,262761],{"class":40},"  # Case-insensitive search (or use :set ic)\n",[388,262763,262764],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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);}",{"title":30,"searchDepth":44,"depth":44,"links":262766},[262767],{"id":262667,"depth":44,"text":262616},"Search and Replace in Vim.",{},{"title":262616,"description":262768},"vim/search-and-replace",[157763,113609,557,261510],"AVsnKqzB2q45CBdQeLdGd04YEZrnZQEnR5KNCZMQLGI",{"id":262775,"title":262639,"body":262776,"date":402,"description":262886,"extension":404,"meta":262887,"navigation":61,"order":250,"path":262638,"seo":262888,"stem":262889,"subject":157763,"tags":262890,"__hash__":262891},"topics/vim/text-objects.md",{"type":8,"value":262777,"toc":262883},[262778,262781,262881],[11,262779,262639],{"id":262780},"text-objects",[25,262782,262784],{"className":27,"code":262783,"language":29,"meta":30,"style":30},"diw         # Delete inner word\ndaw         # Delete a word (including surrounding space)\ndi\"         # Delete inside quotes\nda\"         # Delete around quotes (including quotes)\ndi(         # Delete inside parentheses\nda(         # Delete around parentheses\ndit         # Delete inside HTML/XML tag\ndat         # Delete around HTML/XML tag\ndip         # Delete inner paragraph\ndap         # Delete a paragraph\nciw         # Change inner word\nyiw         # Yank inner word\n",[20,262785,262786,262794,262802,262809,262817,262825,262833,262841,262849,262857,262865,262873],{"__ignoreMap":30},[34,262787,262788,262791],{"class":36,"line":37},[34,262789,262790],{"class":47},"diw",[34,262792,262793],{"class":40},"         # Delete inner word\n",[34,262795,262796,262799],{"class":36,"line":44},[34,262797,262798],{"class":47},"daw",[34,262800,262801],{"class":40},"         # Delete a word (including surrounding space)\n",[34,262803,262804,262806],{"class":36,"line":58},[34,262805,182393],{"class":47},[34,262807,262808],{"class":47},"\"         # Delete inside quotes\n",[34,262810,262811,262814],{"class":36,"line":65},[34,262812,262813],{"class":47},"da\"",[34,262815,262816],{"class":40},"         # Delete around quotes (including quotes)\n",[34,262818,262819,262822],{"class":36,"line":71},[34,262820,262821],{"class":47},"di(",[34,262823,262824],{"class":40},"         # Delete inside parentheses\n",[34,262826,262827,262830],{"class":36,"line":77},[34,262828,262829],{"class":47},"da(",[34,262831,262832],{"class":40},"         # Delete around parentheses\n",[34,262834,262835,262838],{"class":36,"line":82},[34,262836,262837],{"class":47},"dit",[34,262839,262840],{"class":40},"         # Delete inside HTML/XML tag\n",[34,262842,262843,262846],{"class":36,"line":88},[34,262844,262845],{"class":47},"dat",[34,262847,262848],{"class":40},"         # Delete around HTML/XML tag\n",[34,262850,262851,262854],{"class":36,"line":242},[34,262852,262853],{"class":47},"dip",[34,262855,262856],{"class":40},"         # Delete inner paragraph\n",[34,262858,262859,262862],{"class":36,"line":250},[34,262860,262861],{"class":47},"dap",[34,262863,262864],{"class":40},"         # Delete a paragraph\n",[34,262866,262867,262870],{"class":36,"line":263},[34,262868,262869],{"class":47},"ciw",[34,262871,262872],{"class":40},"         # Change inner word\n",[34,262874,262875,262878],{"class":36,"line":275},[34,262876,262877],{"class":47},"yiw",[34,262879,262880],{"class":40},"         # Yank inner word\n",[388,262882,262581],{},{"title":30,"searchDepth":44,"depth":44,"links":262884},[262885],{"id":262780,"depth":44,"text":262639},"Text Objects in Vim.",{},{"title":262639,"description":262886},"vim/text-objects",[157763,113609,557,261510],"_fQKQwsUBVVLKYIdTv2X-6uTmm1otaXEqjDONWYD4js",{"id":262893,"title":113492,"body":262894,"date":402,"description":262980,"extension":404,"meta":262981,"navigation":61,"order":82,"path":262625,"seo":262982,"stem":262983,"subject":157763,"tags":262984,"__hash__":262985},"topics/vim/visual-mode.md",{"type":8,"value":262895,"toc":262977},[262896,262899,262974],[11,262897,113492],{"id":262898},"visual-mode",[25,262900,262902],{"className":27,"code":262901,"language":29,"meta":30,"style":30},"v           # Start character-wise visual mode\nV           # Start line-wise visual mode\nCtrl+v      # Start block-wise visual mode\no           # Move to other end of selection\nd           # Delete selection\ny           # Yank (copy) selection\nc           # Change (replace) selection\n>           # Indent selection right\n\u003C           # Indent selection left\n~           # Toggle case of selection\n",[20,262903,262904,262911,262918,262925,262932,262939,262946,262953,262960,262967],{"__ignoreMap":30},[34,262905,262906,262908],{"class":36,"line":37},[34,262907,87307],{"class":47},[34,262909,262910],{"class":40},"           # Start character-wise visual mode\n",[34,262912,262913,262915],{"class":36,"line":44},[34,262914,257027],{"class":47},[34,262916,262917],{"class":40},"           # Start line-wise visual mode\n",[34,262919,262920,262922],{"class":36,"line":58},[34,262921,262199],{"class":47},[34,262923,262924],{"class":40},"      # Start block-wise visual mode\n",[34,262926,262927,262929],{"class":36,"line":65},[34,262928,114909],{"class":47},[34,262930,262931],{"class":40},"           # Move to other end of selection\n",[34,262933,262934,262936],{"class":36,"line":71},[34,262935,5878],{"class":47},[34,262937,262938],{"class":40},"           # Delete selection\n",[34,262940,262941,262943],{"class":36,"line":77},[34,262942,60946],{"class":47},[34,262944,262945],{"class":40},"           # Yank (copy) selection\n",[34,262947,262948,262950],{"class":36,"line":82},[34,262949,4377],{"class":47},[34,262951,262952],{"class":40},"           # Change (replace) selection\n",[34,262954,262955,262957],{"class":36,"line":88},[34,262956,5691],{"class":580},[34,262958,262959],{"class":40},"           # Indent selection right\n",[34,262961,262962,262964],{"class":36,"line":242},[34,262963,815],{"class":580},[34,262965,262966],{"class":40},"           # Indent selection left\n",[34,262968,262969,262971],{"class":36,"line":250},[34,262970,13692],{"class":580},[34,262972,262973],{"class":40},"           # Toggle case of selection\n",[388,262975,262976],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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 .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":30,"searchDepth":44,"depth":44,"links":262978},[262979],{"id":262898,"depth":44,"text":113492},"Visual Mode in Vim.",{},{"title":113492,"description":262980},"vim/visual-mode",[157763,113609,557,261510],"LXMbhjY1xc-KAt3jDeUtbB5LGnyAXYJY6wsR-2-Ykw8",{"id":262987,"title":260680,"body":262988,"date":402,"description":263174,"extension":404,"meta":263175,"navigation":61,"order":37,"path":263176,"seo":263177,"stem":263178,"subject":88778,"tags":263179,"__hash__":263180},"topics/vite/overview.md",{"type":8,"value":262989,"toc":263167},[262990,262992,262995,262999,263027,263046,263050,263053,263079,263082,263086,263089,263135,263138,263142,263145,263162,263165],[11,262991,13534],{"id":13533},[16,262993,262994],{},"Vite (French for \"quick\") is a modern front-end build tool that provides a fast development experience. It's optimized for fast builds during development and uses pre-configured tools for production builds.",[11,262996,262998],{"id":262997},"dev-server","Dev Server",[25,263000,263002],{"className":27,"code":263001,"language":29,"meta":30,"style":30},"# Start the dev server with default config:\nnpx vite\nyarn vite\npnpm vite\n",[20,263003,263004,263009,263015,263021],{"__ignoreMap":30},[34,263005,263006],{"class":36,"line":37},[34,263007,263008],{"class":40},"# Start the dev server with default config:\n",[34,263010,263011,263013],{"class":36,"line":44},[34,263012,8205],{"class":47},[34,263014,88735],{"class":54},[34,263016,263017,263019],{"class":36,"line":58},[34,263018,13810],{"class":47},[34,263020,88735],{"class":54},[34,263022,263023,263025],{"class":36,"line":65},[34,263024,13788],{"class":47},[34,263026,88735],{"class":54},[309,263028,263029,263043],{},[312,263030,263031,263032],{},"Features:\n",[309,263033,263034,263037,263040],{},[312,263035,263036],{},"ES module aware.",[312,263038,263039],{},"Fast Hot Module Replacement (HMR).",[312,263041,263042],{},"Focused on modern browsers.",[312,263044,263045],{},"Suitable for real-time development workflows.",[11,263047,263049],{"id":263048},"framework-integration","Framework Integration",[16,263051,263052],{},"Vite has seamless integration for modern frameworks:",[25,263054,263056],{"className":27,"code":263055,"language":29,"meta":30,"style":30},"# Example Project Creation\nnpx create-vite@latest project-name --template react\n",[20,263057,263058,263063],{"__ignoreMap":30},[34,263059,263060],{"class":36,"line":37},[34,263061,263062],{"class":40},"# Example Project Creation\n",[34,263064,263065,263067,263070,263073,263076],{"class":36,"line":44},[34,263066,8205],{"class":47},[34,263068,263069],{"class":54}," create-vite@latest",[34,263071,263072],{"class":54}," project-name",[34,263074,263075],{"class":50}," --template",[34,263077,263078],{"class":54}," react\n",[16,263080,263081],{},"Supports frameworks like React, Vue, Svelte, etc. Choose based on community resources or benchmarks.",[11,263083,263085],{"id":263084},"plugin-system","Plugin System",[16,263087,263088],{},"Enhance Vite using plugins:",[25,263090,263092],{"className":111475,"code":263091,"language":111477,"meta":30,"style":30},"// Example vite.config.js\nimport legacy from '@vitejs/plugin-legacy';\nexport default {\n  plugins: [legacy()]\n};\n",[20,263093,263094,263099,263113,263121,263131],{"__ignoreMap":30},[34,263095,263096],{"class":36,"line":37},[34,263097,263098],{"class":40},"// Example vite.config.js\n",[34,263100,263101,263103,263106,263108,263111],{"class":36,"line":44},[34,263102,581],{"class":580},[34,263104,263105],{"class":181}," legacy ",[34,263107,587],{"class":580},[34,263109,263110],{"class":54}," '@vitejs/plugin-legacy'",[34,263112,593],{"class":181},[34,263114,263115,263117,263119],{"class":36,"line":58},[34,263116,652],{"class":580},[34,263118,7298],{"class":580},[34,263120,661],{"class":181},[34,263122,263123,263125,263128],{"class":36,"line":65},[34,263124,158908],{"class":181},[34,263126,263127],{"class":47},"legacy",[34,263129,263130],{"class":181},"()]\n",[34,263132,263133],{"class":36,"line":71},[34,263134,17632],{"class":181},[16,263136,263137],{},"Inline customizations extend your project setup.",[11,263139,263141],{"id":263140},"static-deployment","Static Deployment",[16,263143,263144],{},"Generate production-ready builds and package them:",[25,263146,263148],{"className":27,"code":263147,"language":29,"meta":30,"style":30},"vite build\nvite preview\n",[20,263149,263150,263156],{"__ignoreMap":30},[34,263151,263152,263154],{"class":36,"line":37},[34,263153,88778],{"class":47},[34,263155,55],{"class":54},[34,263157,263158,263160],{"class":36,"line":44},[34,263159,88778],{"class":47},[34,263161,190529],{"class":54},[16,263163,263164],{},"Target modern browsers (adjust legacy as required).",[388,263166,13714],{},{"title":30,"searchDepth":44,"depth":44,"links":263168},[263169,263170,263171,263172,263173],{"id":13533,"depth":44,"text":13534},{"id":262997,"depth":44,"text":262998},{"id":263048,"depth":44,"text":263049},{"id":263084,"depth":44,"text":263085},{"id":263140,"depth":44,"text":263141},"Quick insights into Vite, a fast and opinionated front-end build tool for modern web projects.",{},"/vite/overview",{"title":260680,"description":263174},"vite/overview",[88778,982,8005],"V-kV6YQevNi54UKj02w8FTj4zxkG5ujegvimfHYgaXQ",{"id":263182,"title":263183,"body":263184,"date":402,"description":263430,"extension":404,"meta":263431,"navigation":61,"order":37,"path":263432,"seo":263433,"stem":263434,"subject":263435,"tags":263436,"__hash__":263438},"topics/vitepress/overview.md","VitePress",{"type":8,"value":263185,"toc":263418},[263186,263188,263196,263198,263200,263204,263233,263238,263242,263255,263260,263264,263277,263282,263284,263288,263302,263307,263309,263311,263315,263318,263400,263405,263407,263415],[11,263187,13534],{"id":13533},[16,263189,263190,263191,263195],{},"VitePress is a static site generator powered by ",[145,263192,260680],{"href":263193,"rel":263194},"https://vitejs.dev",[149]," and Vue.js. It is optimized for fast iteration and delivering highly performant websites.",[7979,263197],{},[11,263199,28713],{"id":28712},[102,263201,263203],{"id":263202},"initialize-a-new-site","Initialize a new site",[25,263205,263207],{"className":27,"code":263206,"language":29,"meta":30,"style":30},"npm create vitepress@latest my-docs\ncd my-docs\nnpm install\n",[20,263208,263209,263221,263227],{"__ignoreMap":30},[34,263210,263211,263213,263215,263218],{"class":36,"line":37},[34,263212,8177],{"class":47},[34,263214,7077],{"class":54},[34,263216,263217],{"class":54}," vitepress@latest",[34,263219,263220],{"class":54}," my-docs\n",[34,263222,263223,263225],{"class":36,"line":44},[34,263224,7702],{"class":50},[34,263226,263220],{"class":54},[34,263228,263229,263231],{"class":36,"line":58},[34,263230,8177],{"class":47},[34,263232,5951],{"class":54},[16,263234,263235],{},[8563,263236,263237],{},"This snippet initializes a new VitePress project.",[102,263239,263241],{"id":263240},"start-a-development-server","Start a development server",[25,263243,263245],{"className":27,"code":263244,"language":29,"meta":30,"style":30},"npm run dev\n",[20,263246,263247],{"__ignoreMap":30},[34,263248,263249,263251,263253],{"class":36,"line":37},[34,263250,8177],{"class":47},[34,263252,16017],{"class":54},[34,263254,16652],{"class":54},[16,263256,263257],{},[8563,263258,263259],{},"This starts the local server for previewing changes live.",[102,263261,263263],{"id":263262},"build-the-site","Build the site",[25,263265,263267],{"className":27,"code":263266,"language":29,"meta":30,"style":30},"npm run build\n",[20,263268,263269],{"__ignoreMap":30},[34,263270,263271,263273,263275],{"class":36,"line":37},[34,263272,8177],{"class":47},[34,263274,16017],{"class":54},[34,263276,55],{"class":54},[16,263278,263279],{},[8563,263280,263281],{},"Compiles the project into static site files ready for deployment.",[7979,263283],{},[11,263285,263287],{"id":263286},"folder-structure","Folder Structure",[309,263289,263290,263296],{},[312,263291,263292,263295],{},[20,263293,263294],{},"docs/"," → Stores all your markdown files",[312,263297,263298,263301],{},[20,263299,263300],{},"docs/.vitepress/config.js"," → Site configuration",[16,263303,263304],{},[8563,263305,263306],{},"A sample structure with important files.",[7979,263308],{},[11,263310,8498],{"id":8497},[102,263312,263314],{"id":263313},"site-configurations","Site Configurations",[16,263316,263317],{},"Set up your site with the required meta settings:",[25,263319,263321],{"className":13845,"code":263320,"language":8606,"meta":30,"style":30},"export default {\n  title: \"My Docs\",\n  description: \"A VitePress documentation site\",\n  themeConfig: {\n    nav: [\n      { text: \"Home\", link: \"/\" },\n      { text: \"Guide\", link: \"/guide/\" }\n    ]\n  }\n}\n",[20,263322,263323,263331,263340,263349,263354,263359,263374,263388,263392,263396],{"__ignoreMap":30},[34,263324,263325,263327,263329],{"class":36,"line":37},[34,263326,652],{"class":580},[34,263328,7298],{"class":580},[34,263330,661],{"class":181},[34,263332,263333,263335,263338],{"class":36,"line":44},[34,263334,85785],{"class":181},[34,263336,263337],{"class":54},"\"My Docs\"",[34,263339,624],{"class":181},[34,263341,263342,263344,263347],{"class":36,"line":58},[34,263343,85795],{"class":181},[34,263345,263346],{"class":54},"\"A VitePress documentation site\"",[34,263348,624],{"class":181},[34,263350,263351],{"class":36,"line":65},[34,263352,263353],{"class":181},"  themeConfig: {\n",[34,263355,263356],{"class":36,"line":71},[34,263357,263358],{"class":181},"    nav: [\n",[34,263360,263361,263364,263367,263370,263372],{"class":36,"line":77},[34,263362,263363],{"class":181},"      { text: ",[34,263365,263366],{"class":54},"\"Home\"",[34,263368,263369],{"class":181},", link: ",[34,263371,81654],{"class":54},[34,263373,14846],{"class":181},[34,263375,263376,263378,263381,263383,263386],{"class":36,"line":82},[34,263377,263363],{"class":181},[34,263379,263380],{"class":54},"\"Guide\"",[34,263382,263369],{"class":181},[34,263384,263385],{"class":54},"\"/guide/\"",[34,263387,52786],{"class":181},[34,263389,263390],{"class":36,"line":88},[34,263391,128040],{"class":181},[34,263393,263394],{"class":36,"line":242},[34,263395,857],{"class":181},[34,263397,263398],{"class":36,"line":250},[34,263399,693],{"class":181},[16,263401,263402],{},[8563,263403,263404],{},"Configurations to set title, nav items, etc.",[7979,263406],{},[16,263408,263409,263410,151],{},"Use these settings and utilities to create and configure blazing-fast documentation websites efficiently. See the full guide on ",[145,263411,263414],{"href":263412,"rel":263413},"https://vitepress.dev/docs",[149],"VitePress Documentation",[388,263416,263417],{},"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 .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);}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}",{"title":30,"searchDepth":44,"depth":44,"links":263419},[263420,263421,263426,263427],{"id":13533,"depth":44,"text":13534},{"id":28712,"depth":44,"text":28713,"children":263422},[263423,263424,263425],{"id":263202,"depth":58,"text":263203},{"id":263240,"depth":58,"text":263241},{"id":263262,"depth":58,"text":263263},{"id":263286,"depth":44,"text":263287},{"id":8497,"depth":44,"text":8498,"children":263428},[263429],{"id":263313,"depth":58,"text":263314},"Discover the key syntax and utilities of VitePress for creating fast, rich, and efficient static sites.",{},"/vitepress/overview",{"title":263183,"description":263430},"vitepress/overview","vitepress",[263435,263437,58704],"static-sites","PaTfJgZz-mcowfKtec00PUgXPdBQRtd3bZJ5JuKGC9s",{"id":263440,"title":263441,"body":263442,"date":402,"description":263769,"extension":404,"meta":263770,"navigation":61,"order":44,"path":263771,"seo":263772,"stem":263773,"subject":263774,"tags":263775,"__hash__":263776},"topics/vitest/mocking.md","Mocking with Vitest",{"type":8,"value":263443,"toc":263761},[263444,263448,263451,263458,263465,263577,263581,263584,263688,263692,263695,263753,263755,263758],[11,263445,263447],{"id":263446},"why-mocking","Why Mocking?",[16,263449,263450],{},"Mocking is crucial for isolating and testing specific parts of your codebase by imitating the behavior of dependencies.",[11,263452,263454,263455],{"id":263453},"using-vifn","Using ",[20,263456,263457],{},"vi.fn()",[16,263459,263460,263461,263464],{},"Create mock functions with ",[20,263462,263463],{},"vi.fn"," to track calls and manipulate their returns:",[25,263466,263468],{"className":13845,"code":263467,"language":8606,"meta":30,"style":30},"import { vi } from 'vitest';\n\nconst mockFn = vi.fn(() => 'mocked result');\nconsole.log(mockFn()); // Output: mocked result\n\nmockFn.mockImplementationOnce(() => 'one-time result');\nconsole.log(mockFn()); // Output: one-time result\nconsole.log(mockFn()); // Output: mocked result\n",[20,263469,263470,263484,263488,263511,263527,263531,263548,263563],{"__ignoreMap":30},[34,263471,263472,263474,263477,263479,263482],{"class":36,"line":37},[34,263473,581],{"class":580},[34,263475,263476],{"class":181}," { vi } ",[34,263478,587],{"class":580},[34,263480,263481],{"class":54}," 'vitest'",[34,263483,593],{"class":181},[34,263485,263486],{"class":36,"line":44},[34,263487,62],{"emptyLinePlaceholder":61},[34,263489,263490,263492,263495,263497,263500,263502,263504,263506,263509],{"class":36,"line":58},[34,263491,14676],{"class":580},[34,263493,263494],{"class":50}," mockFn",[34,263496,683],{"class":580},[34,263498,263499],{"class":181}," vi.",[34,263501,77761],{"class":47},[34,263503,4275],{"class":181},[34,263505,3361],{"class":580},[34,263507,263508],{"class":54}," 'mocked result'",[34,263510,1586],{"class":181},[34,263512,263513,263515,263517,263519,263522,263524],{"class":36,"line":65},[34,263514,15183],{"class":181},[34,263516,2424],{"class":47},[34,263518,1607],{"class":181},[34,263520,263521],{"class":47},"mockFn",[34,263523,72220],{"class":181},[34,263525,263526],{"class":40},"// Output: mocked result\n",[34,263528,263529],{"class":36,"line":71},[34,263530,62],{"emptyLinePlaceholder":61},[34,263532,263533,263536,263539,263541,263543,263546],{"class":36,"line":77},[34,263534,263535],{"class":181},"mockFn.",[34,263537,263538],{"class":47},"mockImplementationOnce",[34,263540,4275],{"class":181},[34,263542,3361],{"class":580},[34,263544,263545],{"class":54}," 'one-time result'",[34,263547,1586],{"class":181},[34,263549,263550,263552,263554,263556,263558,263560],{"class":36,"line":82},[34,263551,15183],{"class":181},[34,263553,2424],{"class":47},[34,263555,1607],{"class":181},[34,263557,263521],{"class":47},[34,263559,72220],{"class":181},[34,263561,263562],{"class":40},"// Output: one-time result\n",[34,263564,263565,263567,263569,263571,263573,263575],{"class":36,"line":88},[34,263566,15183],{"class":181},[34,263568,2424],{"class":47},[34,263570,1607],{"class":181},[34,263572,263521],{"class":47},[34,263574,72220],{"class":181},[34,263576,263526],{"class":40},[11,263578,263580],{"id":263579},"mocking-modules","Mocking Modules",[16,263582,263583],{},"Replace entire modules with mocked versions:",[25,263585,263587],{"className":13845,"code":263586,"language":8606,"meta":30,"style":30},"vi.mock('./dependency', () => ({\n  fetchData: vi.fn(() => Promise.resolve({ data: 'mocked' })),\n}));\n\nimport { fetchData } from './dependency';\n\nfetchData().then((result) => console.log(result.data)); // Output: mocked\n",[20,263588,263589,263608,263634,263639,263643,263657,263661],{"__ignoreMap":30},[34,263590,263591,263594,263597,263599,263602,263604,263606],{"class":36,"line":37},[34,263592,263593],{"class":181},"vi.",[34,263595,263596],{"class":47},"mock",[34,263598,1607],{"class":181},[34,263600,263601],{"class":54},"'./dependency'",[34,263603,17258],{"class":181},[34,263605,3361],{"class":580},[34,263607,166840],{"class":181},[34,263609,263610,263613,263615,263617,263619,263621,263623,263625,263628,263631],{"class":36,"line":44},[34,263611,263612],{"class":181},"  fetchData: vi.",[34,263614,77761],{"class":47},[34,263616,4275],{"class":181},[34,263618,3361],{"class":580},[34,263620,126237],{"class":50},[34,263622,151],{"class":181},[34,263624,77756],{"class":47},[34,263626,263627],{"class":181},"({ data: ",[34,263629,263630],{"class":54},"'mocked'",[34,263632,263633],{"class":181}," })),\n",[34,263635,263636],{"class":36,"line":58},[34,263637,263638],{"class":181},"}));\n",[34,263640,263641],{"class":36,"line":65},[34,263642,62],{"emptyLinePlaceholder":61},[34,263644,263645,263647,263650,263652,263655],{"class":36,"line":71},[34,263646,581],{"class":580},[34,263648,263649],{"class":181}," { fetchData } ",[34,263651,587],{"class":580},[34,263653,263654],{"class":54}," './dependency'",[34,263656,593],{"class":181},[34,263658,263659],{"class":36,"line":77},[34,263660,62],{"emptyLinePlaceholder":61},[34,263662,263663,263666,263668,263670,263672,263674,263676,263678,263680,263682,263685],{"class":36,"line":82},[34,263664,263665],{"class":47},"fetchData",[34,263667,1645],{"class":181},[34,263669,3380],{"class":47},[34,263671,8348],{"class":181},[34,263673,19401],{"class":675},[34,263675,4817],{"class":181},[34,263677,3361],{"class":580},[34,263679,4940],{"class":181},[34,263681,2424],{"class":47},[34,263683,263684],{"class":181},"(result.data)); ",[34,263686,263687],{"class":40},"// Output: mocked\n",[11,263689,263691],{"id":263690},"mocking-timers","Mocking Timers",[16,263693,263694],{},"Control timers with Vitest for easier time-based testing:",[25,263696,263698],{"className":13845,"code":263697,"language":8606,"meta":30,"style":30},"vi.useFakeTimers();\n\nsetTimeout(() => console.log('Timer fired'), 1000);\nvi.advanceTimersByTime(1000); // Output: Timer fired\n",[20,263699,263700,263709,263713,263737],{"__ignoreMap":30},[34,263701,263702,263704,263707],{"class":36,"line":37},[34,263703,263593],{"class":181},[34,263705,263706],{"class":47},"useFakeTimers",[34,263708,851],{"class":181},[34,263710,263711],{"class":36,"line":44},[34,263712,62],{"emptyLinePlaceholder":61},[34,263714,263715,263718,263720,263722,263724,263726,263728,263731,263733,263735],{"class":36,"line":58},[34,263716,263717],{"class":47},"setTimeout",[34,263719,4275],{"class":181},[34,263721,3361],{"class":580},[34,263723,4940],{"class":181},[34,263725,2424],{"class":47},[34,263727,1607],{"class":181},[34,263729,263730],{"class":54},"'Timer fired'",[34,263732,184714],{"class":181},[34,263734,15304],{"class":50},[34,263736,1586],{"class":181},[34,263738,263739,263741,263744,263746,263748,263750],{"class":36,"line":65},[34,263740,263593],{"class":181},[34,263742,263743],{"class":47},"advanceTimersByTime",[34,263745,1607],{"class":181},[34,263747,15304],{"class":50},[34,263749,8260],{"class":181},[34,263751,263752],{"class":40},"// Output: Timer fired\n",[11,263754,228098],{"id":117480},[16,263756,263757],{},"Mocking in Vitest offers robust control over dependencies, enabling thorough and isolated tests.",[388,263759,263760],{},"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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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}",{"title":30,"searchDepth":44,"depth":44,"links":263762},[263763,263764,263766,263767,263768],{"id":263446,"depth":44,"text":263447},{"id":263453,"depth":44,"text":263765},"Using vi.fn()",{"id":263579,"depth":44,"text":263580},{"id":263690,"depth":44,"text":263691},{"id":117480,"depth":44,"text":228098},"Learn how to use Vitest for creating mocks and controlling function and module behavior during tests.",{},"/vitest/mocking",{"title":263441,"description":263769},"vitest/mocking","vitest",[16094,127276,263774],"DcvVvHWnPAskeASU9K0bmMFgiFXgeabCQXLjXnxXhnM",{"id":263778,"title":263779,"body":263780,"date":402,"description":264250,"extension":404,"meta":264251,"navigation":61,"order":37,"path":264252,"seo":264253,"stem":264254,"subject":263774,"tags":264255,"__hash__":264256},"topics/vitest/overview.md","Vitest Overview",{"type":8,"value":263781,"toc":264240},[263782,263786,263789,263793,263813,263815,263818,263834,263849,263864,263869,263871,263874,263911,263914,263994,263996,264001,264027,264030,264043,264046,264063,264065,264072,264136,264139,264142,264212,264216,264230,264237],[11,263783,263785],{"id":263784},"what-is-vitest","What is Vitest?",[16,263787,263788],{},"Vitest is a next-generation testing framework that provides fast, easy-to-use tools for testing any JavaScript or TypeScript application. Built on Vite, it offers an efficient transformation pipeline and integrates seamlessly with your build tools.",[11,263790,263792],{"id":263791},"key-benefits","Key Benefits",[309,263794,263795,263801,263807],{},[312,263796,263797,263800],{},[8471,263798,263799],{},"Performance:"," Ultra-fast test runs powered by Vite.",[312,263802,263803,263806],{},[8471,263804,263805],{},"Unified Config:"," Leverages Vite configuration.",[312,263808,263809,263812],{},[8471,263810,263811],{},"DX:"," Enhanced Developer Experience with simple APIs and fast feedback loops.",[11,263814,97],{"id":96},[16,263816,263817],{},"Install Vitest using your preferred package manager:",[25,263819,263821],{"className":27,"code":263820,"language":29,"meta":30,"style":30},"npm install -D vitest\n",[20,263822,263823],{"__ignoreMap":30},[34,263824,263825,263827,263829,263831],{"class":36,"line":37},[34,263826,8177],{"class":47},[34,263828,118],{"class":54},[34,263830,13768],{"class":50},[34,263832,263833],{"class":54}," vitest\n",[25,263835,263837],{"className":27,"code":263836,"language":29,"meta":30,"style":30},"yarn add -D vitest\n",[20,263838,263839],{"__ignoreMap":30},[34,263840,263841,263843,263845,263847],{"class":36,"line":37},[34,263842,13810],{"class":47},[34,263844,7854],{"class":54},[34,263846,13768],{"class":50},[34,263848,263833],{"class":54},[25,263850,263852],{"className":27,"code":263851,"language":29,"meta":30,"style":30},"pnpm add -D vitest\n",[20,263853,263854],{"__ignoreMap":30},[34,263855,263856,263858,263860,263862],{"class":36,"line":37},[34,263857,13788],{"class":47},[34,263859,7854],{"class":54},[34,263861,13768],{"class":50},[34,263863,263833],{"class":54},[16,263865,263866,263868],{},[8471,263867,39936],{}," Ensure you use Vite >=6.0.0 and Node >=20.0.0.",[11,263870,127060],{"id":127059},[16,263872,263873],{},"Example function to test (sum.js):",[25,263875,263877],{"className":13845,"code":263876,"language":8606,"meta":30,"style":30},"export function sum(a, b) {\n  return a + b;\n}\n",[20,263878,263879,263897,263907],{"__ignoreMap":30},[34,263880,263881,263883,263885,263887,263889,263891,263893,263895],{"class":36,"line":37},[34,263882,652],{"class":580},[34,263884,8037],{"class":580},[34,263886,65446],{"class":47},[34,263888,1607],{"class":181},[34,263890,145],{"class":675},[34,263892,1798],{"class":181},[34,263894,8355],{"class":675},[34,263896,2416],{"class":181},[34,263898,263899,263901,263903,263905],{"class":36,"line":44},[34,263900,8155],{"class":580},[34,263902,8065],{"class":181},[34,263904,2940],{"class":580},[34,263906,8123],{"class":181},[34,263908,263909],{"class":36,"line":58},[34,263910,693],{"class":181},[16,263912,263913],{},"Test file (sum.test.js):",[25,263915,263917],{"className":13845,"code":263916,"language":8606,"meta":30,"style":30},"import { expect, test } from 'vitest';\nimport { sum } from './sum.js';\n\ntest('adds 1 + 2 to equal 3', () => {\n  expect(sum(1, 2)).toBe(3);\n});\n",[20,263918,263919,263932,263946,263950,263964,263990],{"__ignoreMap":30},[34,263920,263921,263923,263926,263928,263930],{"class":36,"line":37},[34,263922,581],{"class":580},[34,263924,263925],{"class":181}," { expect, test } ",[34,263927,587],{"class":580},[34,263929,263481],{"class":54},[34,263931,593],{"class":181},[34,263933,263934,263936,263939,263941,263944],{"class":36,"line":44},[34,263935,581],{"class":580},[34,263937,263938],{"class":181}," { sum } ",[34,263940,587],{"class":580},[34,263942,263943],{"class":54}," './sum.js'",[34,263945,593],{"class":181},[34,263947,263948],{"class":36,"line":58},[34,263949,62],{"emptyLinePlaceholder":61},[34,263951,263952,263954,263956,263958,263960,263962],{"class":36,"line":65},[34,263953,14618],{"class":47},[34,263955,1607],{"class":181},[34,263957,127152],{"class":54},[34,263959,17258],{"class":181},[34,263961,3361],{"class":580},[34,263963,661],{"class":181},[34,263965,263966,263968,263970,263972,263974,263976,263978,263980,263982,263984,263986,263988],{"class":36,"line":71},[34,263967,17267],{"class":47},[34,263969,1607],{"class":181},[34,263971,11135],{"class":47},[34,263973,1607],{"class":181},[34,263975,8318],{"class":50},[34,263977,1798],{"class":181},[34,263979,8324],{"class":50},[34,263981,127177],{"class":181},[34,263983,17280],{"class":47},[34,263985,1607],{"class":181},[34,263987,3162],{"class":50},[34,263989,1586],{"class":181},[34,263991,263992],{"class":36,"line":77},[34,263993,14873],{"class":181},[11,263995,179416],{"id":179415},[16,263997,263998,263999,165],{},"Add a script to your ",[20,264000,29509],{},[25,264002,264004],{"className":28058,"code":264003,"language":14790,"meta":30,"style":30},"\"scripts\": {\n  \"test\": \"vitest\"\n}\n",[20,264005,264006,264013,264023],{"__ignoreMap":30},[34,264007,264008,264011],{"class":36,"line":37},[34,264009,264010],{"class":54},"\"scripts\"",[34,264012,28073],{"class":181},[34,264014,264015,264018,264020],{"class":36,"line":44},[34,264016,264017],{"class":50},"  \"test\"",[34,264019,182],{"class":181},[34,264021,264022],{"class":54},"\"vitest\"\n",[34,264024,264025],{"class":36,"line":58},[34,264026,693],{"class":181},[16,264028,264029],{},"Execute tests with your package manager:",[25,264031,264033],{"className":27,"code":264032,"language":29,"meta":30,"style":30},"npm run test\n",[20,264034,264035],{"__ignoreMap":30},[34,264036,264037,264039,264041],{"class":36,"line":37},[34,264038,8177],{"class":47},[34,264040,16017],{"class":54},[34,264042,16110],{"class":54},[16,264044,264045],{},"Output example:",[25,264047,264051],{"className":264048,"code":264049,"language":264050,"meta":30,"style":30},"language-txt shiki shiki-themes github-light github-dark","✓ sum.test.js (1)\n✓ adds 1 + 2 to equal 3\n","txt",[20,264052,264053,264058],{"__ignoreMap":30},[34,264054,264055],{"class":36,"line":37},[34,264056,264057],{},"✓ sum.test.js (1)\n",[34,264059,264060],{"class":36,"line":44},[34,264061,264062],{},"✓ adds 1 + 2 to equal 3\n",[11,264064,8686],{"id":558},[16,264066,264067,264068,264071],{},"Vitest can be fully configured either within a standalone file (",[20,264069,264070],{},"vitest.config.ts",") or inline in your Vite configuration. Example configuration:",[25,264073,264075],{"className":571,"code":264074,"language":573,"meta":30,"style":30},"import { defineConfig } from 'vitest/config';\n\nexport default defineConfig({\n  test: {\n    environment: 'node',\n    globals: true,\n  },\n});\n",[20,264076,264077,264090,264094,264104,264109,264119,264128,264132],{"__ignoreMap":30},[34,264078,264079,264081,264083,264085,264088],{"class":36,"line":37},[34,264080,581],{"class":580},[34,264082,260391],{"class":181},[34,264084,587],{"class":580},[34,264086,264087],{"class":54}," 'vitest/config'",[34,264089,593],{"class":181},[34,264091,264092],{"class":36,"line":44},[34,264093,62],{"emptyLinePlaceholder":61},[34,264095,264096,264098,264100,264102],{"class":36,"line":58},[34,264097,652],{"class":580},[34,264099,7298],{"class":580},[34,264101,260411],{"class":47},[34,264103,613],{"class":181},[34,264105,264106],{"class":36,"line":65},[34,264107,264108],{"class":181},"  test: {\n",[34,264110,264111,264114,264117],{"class":36,"line":71},[34,264112,264113],{"class":181},"    environment: ",[34,264115,264116],{"class":54},"'node'",[34,264118,624],{"class":181},[34,264120,264121,264124,264126],{"class":36,"line":77},[34,264122,264123],{"class":181},"    globals: ",[34,264125,632],{"class":50},[34,264127,624],{"class":181},[34,264129,264130],{"class":36,"line":82},[34,264131,3400],{"class":181},[34,264133,264134],{"class":36,"line":88},[34,264135,14873],{"class":181},[11,264137,264138],{"id":127276},"Mocking",[16,264140,264141],{},"Vitest provides powerful mocking functionality for various scenarios. Here’s an example of mocking a date:",[25,264143,264145],{"className":13845,"code":264144,"language":8606,"meta":30,"style":30},"import { vi } from 'vitest';\n\nvi.useFakeTimers();\nvi.setSystemTime(new Date('2023-01-01'));\n\nconsole.log(new Date()); // Output: 2023-01-01\n",[20,264146,264147,264159,264163,264171,264191,264195],{"__ignoreMap":30},[34,264148,264149,264151,264153,264155,264157],{"class":36,"line":37},[34,264150,581],{"class":580},[34,264152,263476],{"class":181},[34,264154,587],{"class":580},[34,264156,263481],{"class":54},[34,264158,593],{"class":181},[34,264160,264161],{"class":36,"line":44},[34,264162,62],{"emptyLinePlaceholder":61},[34,264164,264165,264167,264169],{"class":36,"line":58},[34,264166,263593],{"class":181},[34,264168,263706],{"class":47},[34,264170,851],{"class":181},[34,264172,264173,264175,264178,264180,264182,264184,264186,264189],{"class":36,"line":65},[34,264174,263593],{"class":181},[34,264176,264177],{"class":47},"setSystemTime",[34,264179,1607],{"class":181},[34,264181,3143],{"class":580},[34,264183,60453],{"class":47},[34,264185,1607],{"class":181},[34,264187,264188],{"class":54},"'2023-01-01'",[34,264190,15223],{"class":181},[34,264192,264193],{"class":36,"line":71},[34,264194,62],{"emptyLinePlaceholder":61},[34,264196,264197,264199,264201,264203,264205,264207,264209],{"class":36,"line":77},[34,264198,15183],{"class":181},[34,264200,2424],{"class":47},[34,264202,1607],{"class":181},[34,264204,3143],{"class":580},[34,264206,60453],{"class":47},[34,264208,72220],{"class":181},[34,264210,264211],{"class":40},"// Output: 2023-01-01\n",[11,264213,264215],{"id":264214},"additional-features","Additional Features",[309,264217,264218,264221,264224,264227],{},[312,264219,264220],{},"Snapshot testing",[312,264222,264223],{},"Browser testing support",[312,264225,264226],{},"Built-in TypeScript support",[312,264228,264229],{},"Parallelized test execution",[16,264231,264232,264233,151],{},"For more details, refer to the ",[145,264234,238708],{"href":264235,"rel":264236},"https://vitest.dev/docs",[149],[388,264238,264239],{},"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 .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);}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 .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}",{"title":30,"searchDepth":44,"depth":44,"links":264241},[264242,264243,264244,264245,264246,264247,264248,264249],{"id":263784,"depth":44,"text":263785},{"id":263791,"depth":44,"text":263792},{"id":96,"depth":44,"text":97},{"id":127059,"depth":44,"text":127060},{"id":179415,"depth":44,"text":179416},{"id":558,"depth":44,"text":8686},{"id":127276,"depth":44,"text":264138},{"id":264214,"depth":44,"text":264215},"Quick reference guide to understanding and using Vitest, a powerful testing framework built on Vite.",{},"/vitest/overview",{"title":263779,"description":264250},"vitest/overview",[16094,88778,263774],"GhFXqhkW5kT-9F6QedPWEtgv7bFJFlHdzrLMc68E-R8",{"id":264258,"title":264259,"body":264260,"date":402,"description":264305,"extension":404,"meta":264306,"navigation":61,"order":37,"path":264307,"seo":264308,"stem":264309,"subject":264293,"tags":264310,"__hash__":264312},"topics/volta/overview.md","Volta",{"type":8,"value":264261,"toc":264300},[264262,264264,264267,264269,264277,264281,264284,264298],[11,264263,14],{"id":13},[16,264265,264266],{},"Volta is a versatile toolchain manager for Node.js developers, providing fast and stable development workflows.",[11,264268,8221],{"id":8220},[309,264270,264271,264274],{},[312,264272,264273],{},"Cross-platform support",[312,264275,264276],{},"Smooth installation of Node.js and npm packages",[11,264278,264280],{"id":264279},"installing-node-via-volta","Installing Node via Volta",[16,264282,264283],{},"Install the latest Node LTS:",[25,264285,264287],{"className":27,"code":264286,"language":29,"meta":30,"style":30},"volta install node\n",[20,264288,264289],{"__ignoreMap":30},[34,264290,264291,264294,264296],{"class":36,"line":37},[34,264292,264293],{"class":47},"volta",[34,264295,118],{"class":54},[34,264297,14258],{"class":54},[388,264299,189621],{},{"title":30,"searchDepth":44,"depth":44,"links":264301},[264302,264303,264304],{"id":13,"depth":44,"text":14},{"id":8220,"depth":44,"text":8221},{"id":264279,"depth":44,"text":264280},"An overview and getting-started guide for Volta, the Node.js toolchain.",{},"/volta/overview",{"title":264259,"description":264305},"volta/overview",[264293,264311,78040],"toolchain","p7Y0PIrFvct-SPnCH2t-FR3DDXiKXGnKPUDo6ksXtuA",{"id":264314,"title":264315,"body":264316,"date":402,"description":264571,"extension":404,"meta":264572,"navigation":61,"order":715,"path":264573,"seo":264574,"stem":264575,"subject":264576,"tags":264577,"__hash__":264578},"topics/vuejs/async-components.md","Async Components",{"type":8,"value":264317,"toc":264568},[264318,264321,264565],[11,264319,264315],{"id":264320},"async-components",[25,264322,264324],{"className":161287,"code":264323,"language":161289,"meta":30,"style":30},"\u003Cscript setup>\nimport { defineAsyncComponent } from 'vue'\n\n// Basic async component\nconst AsyncModal = defineAsyncComponent(() => \n  import('./components/Modal.vue')\n)\n\n// With loading and error states\nconst AsyncComponent = defineAsyncComponent({\n  loader: () => import('./HeavyComponent.vue'),\n  loadingComponent: LoadingSpinner,\n  errorComponent: ErrorDisplay,\n  delay: 200,\n  timeout: 3000\n})\n\u003C/script>\n\n\u003Ctemplate>\n  \u003CSuspense>\n    \u003Ctemplate #default>\n      \u003CAsyncComponent />\n    \u003C/template>\n    \u003Ctemplate #fallback>\n      \u003Cdiv>Loading...\u003C/div>\n    \u003C/template>\n  \u003C/Suspense>\n\u003C/template>\n",[20,264325,264326,264336,264348,264352,264357,264375,264386,264390,264394,264399,264412,264430,264435,264440,264449,264455,264459,264467,264471,264479,264488,264500,264509,264517,264529,264541,264549,264557],{"__ignoreMap":30},[34,264327,264328,264330,264332,264334],{"class":36,"line":37},[34,264329,815],{"class":181},[34,264331,115970],{"class":177},[34,264333,161305],{"class":47},[34,264335,1248],{"class":181},[34,264337,264338,264340,264343,264345],{"class":36,"line":44},[34,264339,581],{"class":580},[34,264341,264342],{"class":181}," { defineAsyncComponent } ",[34,264344,587],{"class":580},[34,264346,264347],{"class":54}," 'vue'\n",[34,264349,264350],{"class":36,"line":58},[34,264351,62],{"emptyLinePlaceholder":61},[34,264353,264354],{"class":36,"line":65},[34,264355,264356],{"class":40},"// Basic async component\n",[34,264358,264359,264361,264364,264366,264369,264371,264373],{"class":36,"line":71},[34,264360,14676],{"class":580},[34,264362,264363],{"class":50}," AsyncModal",[34,264365,683],{"class":580},[34,264367,264368],{"class":47}," defineAsyncComponent",[34,264370,4275],{"class":181},[34,264372,3361],{"class":580},[34,264374,526],{"class":181},[34,264376,264377,264379,264381,264384],{"class":36,"line":77},[34,264378,239122],{"class":580},[34,264380,1607],{"class":181},[34,264382,264383],{"class":54},"'./components/Modal.vue'",[34,264385,3372],{"class":181},[34,264387,264388],{"class":36,"line":82},[34,264389,3372],{"class":181},[34,264391,264392],{"class":36,"line":88},[34,264393,62],{"emptyLinePlaceholder":61},[34,264395,264396],{"class":36,"line":242},[34,264397,264398],{"class":40},"// With loading and error states\n",[34,264400,264401,264403,264406,264408,264410],{"class":36,"line":250},[34,264402,14676],{"class":580},[34,264404,264405],{"class":50}," AsyncComponent",[34,264407,683],{"class":580},[34,264409,264368],{"class":47},[34,264411,613],{"class":181},[34,264413,264414,264417,264419,264421,264423,264425,264428],{"class":36,"line":263},[34,264415,264416],{"class":47},"  loader",[34,264418,3358],{"class":181},[34,264420,3361],{"class":580},[34,264422,3364],{"class":580},[34,264424,1607],{"class":181},[34,264426,264427],{"class":54},"'./HeavyComponent.vue'",[34,264429,50836],{"class":181},[34,264431,264432],{"class":36,"line":275},[34,264433,264434],{"class":181},"  loadingComponent: LoadingSpinner,\n",[34,264436,264437],{"class":36,"line":700},[34,264438,264439],{"class":181},"  errorComponent: ErrorDisplay,\n",[34,264441,264442,264445,264447],{"class":36,"line":706},[34,264443,264444],{"class":181},"  delay: ",[34,264446,20899],{"class":50},[34,264448,624],{"class":181},[34,264450,264451,264453],{"class":36,"line":715},[34,264452,58829],{"class":181},[34,264454,128143],{"class":50},[34,264456,264457],{"class":36,"line":725},[34,264458,647],{"class":181},[34,264460,264461,264463,264465],{"class":36,"line":734},[34,264462,2089],{"class":181},[34,264464,115970],{"class":177},[34,264466,1248],{"class":181},[34,264468,264469],{"class":36,"line":742},[34,264470,62],{"emptyLinePlaceholder":61},[34,264472,264473,264475,264477],{"class":36,"line":748},[34,264474,815],{"class":181},[34,264476,8517],{"class":177},[34,264478,1248],{"class":181},[34,264480,264481,264483,264486],{"class":36,"line":754},[34,264482,1181],{"class":181},[34,264484,264485],{"class":177},"Suspense",[34,264487,1248],{"class":181},[34,264489,264490,264492,264494,264496,264498],{"class":36,"line":759},[34,264491,1294],{"class":181},[34,264493,8517],{"class":177},[34,264495,161518],{"class":181},[34,264497,104159],{"class":47},[34,264499,1248],{"class":181},[34,264501,264502,264504,264507],{"class":36,"line":771},[34,264503,85662],{"class":181},[34,264505,264506],{"class":177},"AsyncComponent",[34,264508,1187],{"class":181},[34,264510,264511,264513,264515],{"class":36,"line":794},[34,264512,74431],{"class":181},[34,264514,8517],{"class":177},[34,264516,1248],{"class":181},[34,264518,264519,264521,264523,264525,264527],{"class":36,"line":824},[34,264520,1294],{"class":181},[34,264522,8517],{"class":177},[34,264524,161518],{"class":181},[34,264526,161521],{"class":47},[34,264528,1248],{"class":181},[34,264530,264531,264533,264535,264537,264539],{"class":36,"line":830},[34,264532,85662],{"class":181},[34,264534,1240],{"class":177},[34,264536,1407],{"class":181},[34,264538,1240],{"class":177},[34,264540,1248],{"class":181},[34,264542,264543,264545,264547],{"class":36,"line":839},[34,264544,74431],{"class":181},[34,264546,8517],{"class":177},[34,264548,1248],{"class":181},[34,264550,264551,264553,264555],{"class":36,"line":854},[34,264552,8547],{"class":181},[34,264554,264485],{"class":177},[34,264556,1248],{"class":181},[34,264558,264559,264561,264563],{"class":36,"line":860},[34,264560,2089],{"class":181},[34,264562,8517],{"class":177},[34,264564,1248],{"class":181},[388,264566,264567],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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}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":30,"searchDepth":44,"depth":44,"links":264569},[264570],{"id":264320,"depth":44,"text":264315},"Async Components in Vue.js.",{},"/vuejs/async-components",{"title":264315,"description":264571},"vuejs/async-components","vuejs",[161289,8606,982,983],"jmqBR8ezqa-cy87w1FQV8BYSA5GRmdFaCYqtlE6TQeM",{"id":264580,"title":563,"body":264581,"date":402,"description":264895,"extension":404,"meta":264896,"navigation":61,"order":44,"path":264897,"seo":264898,"stem":264899,"subject":264576,"tags":264900,"__hash__":264901},"topics/vuejs/component-basics.md",{"type":8,"value":264582,"toc":264892},[264583,264585,264889],[11,264584,563],{"id":568},[25,264586,264588],{"className":161287,"code":264587,"language":161289,"meta":30,"style":30},"\u003Cscript setup>\n// Composition API with \u003Cscript setup>\nimport { ref } from 'vue'\n\n// Props\nconst props = defineProps({\n  title: String,\n  count: {\n    type: Number,\n    default: 0\n  }\n})\n\n// Emits\nconst emit = defineEmits(['update', 'delete'])\n\n// Reactive state\nconst message = ref('Hello!')\n\n// Methods\nfunction handleClick() {\n  emit('update', message.value)\n}\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Ch1>{{ title }}\u003C/h1>\n    \u003Cp>{{ message }}\u003C/p>\n    \u003Cbutton @click=\"handleClick\">Update\u003C/button>\n  \u003C/div>\n\u003C/template>\n\n\u003Cstyle scoped>\nh1 {\n  color: #333;\n}\n\u003C/style>\n",[20,264589,264590,264600,264605,264616,264620,264625,264637,264642,264647,264652,264658,264662,264666,264670,264675,264699,264703,264708,264724,264728,264733,264741,264752,264756,264764,264768,264776,264784,264797,264809,264830,264838,264846,264850,264861,264867,264877,264881],{"__ignoreMap":30},[34,264591,264592,264594,264596,264598],{"class":36,"line":37},[34,264593,815],{"class":181},[34,264595,115970],{"class":177},[34,264597,161305],{"class":47},[34,264599,1248],{"class":181},[34,264601,264602],{"class":36,"line":44},[34,264603,264604],{"class":40},"// Composition API with \u003Cscript setup>\n",[34,264606,264607,264609,264612,264614],{"class":36,"line":58},[34,264608,581],{"class":580},[34,264610,264611],{"class":181}," { ref } ",[34,264613,587],{"class":580},[34,264615,264347],{"class":54},[34,264617,264618],{"class":36,"line":65},[34,264619,62],{"emptyLinePlaceholder":61},[34,264621,264622],{"class":36,"line":71},[34,264623,264624],{"class":40},"// Props\n",[34,264626,264627,264629,264631,264633,264635],{"class":36,"line":77},[34,264628,14676],{"class":580},[34,264630,163036],{"class":50},[34,264632,683],{"class":580},[34,264634,163041],{"class":47},[34,264636,613],{"class":181},[34,264638,264639],{"class":36,"line":82},[34,264640,264641],{"class":181},"  title: String,\n",[34,264643,264644],{"class":36,"line":88},[34,264645,264646],{"class":181},"  count: {\n",[34,264648,264649],{"class":36,"line":242},[34,264650,264651],{"class":181},"    type: Number,\n",[34,264653,264654,264656],{"class":36,"line":250},[34,264655,161329],{"class":181},[34,264657,12000],{"class":50},[34,264659,264660],{"class":36,"line":263},[34,264661,857],{"class":181},[34,264663,264664],{"class":36,"line":275},[34,264665,647],{"class":181},[34,264667,264668],{"class":36,"line":700},[34,264669,62],{"emptyLinePlaceholder":61},[34,264671,264672],{"class":36,"line":706},[34,264673,264674],{"class":40},"// Emits\n",[34,264676,264677,264679,264682,264684,264687,264689,264692,264694,264697],{"class":36,"line":715},[34,264678,14676],{"class":580},[34,264680,264681],{"class":50}," emit",[34,264683,683],{"class":580},[34,264685,264686],{"class":47}," defineEmits",[34,264688,3593],{"class":181},[34,264690,264691],{"class":54},"'update'",[34,264693,1798],{"class":181},[34,264695,264696],{"class":54},"'delete'",[34,264698,51547],{"class":181},[34,264700,264701],{"class":36,"line":725},[34,264702,62],{"emptyLinePlaceholder":61},[34,264704,264705],{"class":36,"line":734},[34,264706,264707],{"class":40},"// Reactive state\n",[34,264709,264710,264712,264714,264716,264718,264720,264722],{"class":36,"line":742},[34,264711,14676],{"class":580},[34,264713,34839],{"class":50},[34,264715,683],{"class":580},[34,264717,162430],{"class":47},[34,264719,1607],{"class":181},[34,264721,156914],{"class":54},[34,264723,3372],{"class":181},[34,264725,264726],{"class":36,"line":748},[34,264727,62],{"emptyLinePlaceholder":61},[34,264729,264730],{"class":36,"line":754},[34,264731,264732],{"class":40},"// Methods\n",[34,264734,264735,264737,264739],{"class":36,"line":759},[34,264736,11044],{"class":580},[34,264738,200137],{"class":47},[34,264740,836],{"class":181},[34,264742,264743,264745,264747,264749],{"class":36,"line":771},[34,264744,71596],{"class":47},[34,264746,1607],{"class":181},[34,264748,264691],{"class":54},[34,264750,264751],{"class":181},", message.value)\n",[34,264753,264754],{"class":36,"line":794},[34,264755,693],{"class":181},[34,264757,264758,264760,264762],{"class":36,"line":824},[34,264759,2089],{"class":181},[34,264761,115970],{"class":177},[34,264763,1248],{"class":181},[34,264765,264766],{"class":36,"line":830},[34,264767,62],{"emptyLinePlaceholder":61},[34,264769,264770,264772,264774],{"class":36,"line":839},[34,264771,815],{"class":181},[34,264773,8517],{"class":177},[34,264775,1248],{"class":181},[34,264777,264778,264780,264782],{"class":36,"line":854},[34,264779,1181],{"class":181},[34,264781,1240],{"class":177},[34,264783,1248],{"class":181},[34,264785,264786,264788,264790,264793,264795],{"class":36,"line":860},[34,264787,1294],{"class":181},[34,264789,8535],{"class":177},[34,264791,264792],{"class":181},">{{ title }}\u003C/",[34,264794,8535],{"class":177},[34,264796,1248],{"class":181},[34,264798,264799,264801,264803,264805,264807],{"class":36,"line":865},[34,264800,1294],{"class":181},[34,264802,16],{"class":177},[34,264804,4439],{"class":181},[34,264806,16],{"class":177},[34,264808,1248],{"class":181},[34,264810,264811,264813,264815,264818,264820,264823,264826,264828],{"class":36,"line":870},[34,264812,1294],{"class":181},[34,264814,4509],{"class":177},[34,264816,264817],{"class":47}," @click",[34,264819,1301],{"class":181},[34,264821,264822],{"class":54},"\"handleClick\"",[34,264824,264825],{"class":181},">Update\u003C/",[34,264827,4509],{"class":177},[34,264829,1248],{"class":181},[34,264831,264832,264834,264836],{"class":36,"line":876},[34,264833,8547],{"class":181},[34,264835,1240],{"class":177},[34,264837,1248],{"class":181},[34,264839,264840,264842,264844],{"class":36,"line":885},[34,264841,2089],{"class":181},[34,264843,8517],{"class":177},[34,264845,1248],{"class":181},[34,264847,264848],{"class":36,"line":895},[34,264849,62],{"emptyLinePlaceholder":61},[34,264851,264852,264854,264856,264859],{"class":36,"line":904},[34,264853,815],{"class":181},[34,264855,388],{"class":177},[34,264857,264858],{"class":47}," scoped",[34,264860,1248],{"class":181},[34,264862,264863,264865],{"class":36,"line":915},[34,264864,8535],{"class":177},[34,264866,661],{"class":181},[34,264868,264869,264871,264873,264875],{"class":36,"line":927},[34,264870,38647],{"class":50},[34,264872,182],{"class":181},[34,264874,219534],{"class":50},[34,264876,593],{"class":181},[34,264878,264879],{"class":36,"line":932},[34,264880,693],{"class":181},[34,264882,264883,264885,264887],{"class":36,"line":944},[34,264884,2089],{"class":181},[34,264886,388],{"class":177},[34,264888,1248],{"class":181},[388,264890,264891],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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 .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 .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":30,"searchDepth":44,"depth":44,"links":264893},[264894],{"id":568,"depth":44,"text":563},"Component Basics in Vue.js.",{},"/vuejs/component-basics",{"title":563,"description":264895},"vuejs/component-basics",[161289,8606,982,983],"1IpG-6UH4OY-Mwh2a6o-TnuIPoiQJwnVlxnxLqD4hvk",{"id":264903,"title":264904,"body":264905,"date":402,"description":265382,"extension":404,"meta":265383,"navigation":61,"order":250,"path":265384,"seo":265385,"stem":265386,"subject":264576,"tags":265387,"__hash__":265388},"topics/vuejs/composables-custom-hooks.md","Composables (Custom Hooks)",{"type":8,"value":264906,"toc":265379},[264907,264910,265376],[11,264908,264904],{"id":264909},"composables-custom-hooks",[25,264911,264913],{"className":13845,"code":264912,"language":8606,"meta":30,"style":30},"// composables/useMouse.js\nimport { ref, onMounted, onUnmounted } from 'vue'\n\nexport function useMouse() {\n  const x = ref(0)\n  const y = ref(0)\n\n  function update(event) {\n    x.value = event.pageX\n    y.value = event.pageY\n  }\n\n  onMounted(() => window.addEventListener('mousemove', update))\n  onUnmounted(() => window.removeEventListener('mousemove', update))\n\n  return { x, y }\n}\n\n// composables/useFetch.js\nimport { ref, watchEffect } from 'vue'\n\nexport function useFetch(url) {\n  const data = ref(null)\n  const error = ref(null)\n  const loading = ref(true)\n\n  watchEffect(async () => {\n    loading.value = true\n    try {\n      const res = await fetch(url.value || url)\n      data.value = await res.json()\n    } catch (e) {\n      error.value = e\n    } finally {\n      loading.value = false\n    }\n  })\n\n  return { data, error, loading }\n}\n\n// Usage in component\nimport { useMouse } from '@/composables/useMouse'\nimport { useFetch } from '@/composables/useFetch'\n\nconst { x, y } = useMouse()\nconst { data, loading } = useFetch('/api/users')\n",[20,264914,264915,264920,264931,264935,264946,264962,264979,264983,264995,265005,265015,265019,265023,265046,265066,265070,265077,265081,265085,265090,265101,265105,265119,265135,265151,265167,265171,265186,265195,265202,265222,265237,265246,265256,265264,265273,265277,265281,265285,265292,265296,265300,265304,265316,265328,265332,265352],{"__ignoreMap":30},[34,264916,264917],{"class":36,"line":37},[34,264918,264919],{"class":40},"// composables/useMouse.js\n",[34,264921,264922,264924,264927,264929],{"class":36,"line":44},[34,264923,581],{"class":580},[34,264925,264926],{"class":181}," { ref, onMounted, onUnmounted } ",[34,264928,587],{"class":580},[34,264930,264347],{"class":54},[34,264932,264933],{"class":36,"line":58},[34,264934,62],{"emptyLinePlaceholder":61},[34,264936,264937,264939,264941,264944],{"class":36,"line":65},[34,264938,652],{"class":580},[34,264940,8037],{"class":580},[34,264942,264943],{"class":47}," useMouse",[34,264945,836],{"class":181},[34,264947,264948,264950,264952,264954,264956,264958,264960],{"class":36,"line":71},[34,264949,17415],{"class":580},[34,264951,31288],{"class":50},[34,264953,683],{"class":580},[34,264955,162430],{"class":47},[34,264957,1607],{"class":181},[34,264959,2773],{"class":50},[34,264961,3372],{"class":181},[34,264963,264964,264966,264969,264971,264973,264975,264977],{"class":36,"line":77},[34,264965,17415],{"class":580},[34,264967,264968],{"class":50}," y",[34,264970,683],{"class":580},[34,264972,162430],{"class":47},[34,264974,1607],{"class":181},[34,264976,2773],{"class":50},[34,264978,3372],{"class":181},[34,264980,264981],{"class":36,"line":82},[34,264982,62],{"emptyLinePlaceholder":61},[34,264984,264985,264987,264989,264991,264993],{"class":36,"line":88},[34,264986,68507],{"class":580},[34,264988,5619],{"class":47},[34,264990,1607],{"class":181},[34,264992,72497],{"class":675},[34,264994,2416],{"class":181},[34,264996,264997,265000,265002],{"class":36,"line":242},[34,264998,264999],{"class":181},"    x.value ",[34,265001,1301],{"class":580},[34,265003,265004],{"class":181}," event.pageX\n",[34,265006,265007,265010,265012],{"class":36,"line":250},[34,265008,265009],{"class":181},"    y.value ",[34,265011,1301],{"class":580},[34,265013,265014],{"class":181}," event.pageY\n",[34,265016,265017],{"class":36,"line":263},[34,265018,857],{"class":181},[34,265020,265021],{"class":36,"line":275},[34,265022,62],{"emptyLinePlaceholder":61},[34,265024,265025,265028,265030,265032,265035,265038,265040,265043],{"class":36,"line":700},[34,265026,265027],{"class":47},"  onMounted",[34,265029,4275],{"class":181},[34,265031,3361],{"class":580},[34,265033,265034],{"class":181}," window.",[34,265036,265037],{"class":47},"addEventListener",[34,265039,1607],{"class":181},[34,265041,265042],{"class":54},"'mousemove'",[34,265044,265045],{"class":181},", update))\n",[34,265047,265048,265051,265053,265055,265057,265060,265062,265064],{"class":36,"line":706},[34,265049,265050],{"class":47},"  onUnmounted",[34,265052,4275],{"class":181},[34,265054,3361],{"class":580},[34,265056,265034],{"class":181},[34,265058,265059],{"class":47},"removeEventListener",[34,265061,1607],{"class":181},[34,265063,265042],{"class":54},[34,265065,265045],{"class":181},[34,265067,265068],{"class":36,"line":715},[34,265069,62],{"emptyLinePlaceholder":61},[34,265071,265072,265074],{"class":36,"line":725},[34,265073,8155],{"class":580},[34,265075,265076],{"class":181}," { x, y }\n",[34,265078,265079],{"class":36,"line":734},[34,265080,693],{"class":181},[34,265082,265083],{"class":36,"line":742},[34,265084,62],{"emptyLinePlaceholder":61},[34,265086,265087],{"class":36,"line":748},[34,265088,265089],{"class":40},"// composables/useFetch.js\n",[34,265091,265092,265094,265097,265099],{"class":36,"line":754},[34,265093,581],{"class":580},[34,265095,265096],{"class":181}," { ref, watchEffect } ",[34,265098,587],{"class":580},[34,265100,264347],{"class":54},[34,265102,265103],{"class":36,"line":759},[34,265104,62],{"emptyLinePlaceholder":61},[34,265106,265107,265109,265111,265113,265115,265117],{"class":36,"line":771},[34,265108,652],{"class":580},[34,265110,8037],{"class":580},[34,265112,162221],{"class":47},[34,265114,1607],{"class":181},[34,265116,38855],{"class":675},[34,265118,2416],{"class":181},[34,265120,265121,265123,265125,265127,265129,265131,265133],{"class":36,"line":794},[34,265122,17415],{"class":580},[34,265124,14780],{"class":50},[34,265126,683],{"class":580},[34,265128,162430],{"class":47},[34,265130,1607],{"class":181},[34,265132,111592],{"class":50},[34,265134,3372],{"class":181},[34,265136,265137,265139,265141,265143,265145,265147,265149],{"class":36,"line":824},[34,265138,17415],{"class":580},[34,265140,88301],{"class":50},[34,265142,683],{"class":580},[34,265144,162430],{"class":47},[34,265146,1607],{"class":181},[34,265148,111592],{"class":50},[34,265150,3372],{"class":181},[34,265152,265153,265155,265157,265159,265161,265163,265165],{"class":36,"line":830},[34,265154,17415],{"class":580},[34,265156,117423],{"class":50},[34,265158,683],{"class":580},[34,265160,162430],{"class":47},[34,265162,1607],{"class":181},[34,265164,632],{"class":50},[34,265166,3372],{"class":181},[34,265168,265169],{"class":36,"line":839},[34,265170,62],{"emptyLinePlaceholder":61},[34,265172,265173,265176,265178,265180,265182,265184],{"class":36,"line":854},[34,265174,265175],{"class":47},"  watchEffect",[34,265177,1607],{"class":181},[34,265179,17403],{"class":580},[34,265181,17406],{"class":181},[34,265183,3361],{"class":580},[34,265185,661],{"class":181},[34,265187,265188,265191,265193],{"class":36,"line":860},[34,265189,265190],{"class":181},"    loading.value ",[34,265192,1301],{"class":580},[34,265194,104956],{"class":50},[34,265196,265197,265200],{"class":36,"line":865},[34,265198,265199],{"class":580},"    try",[34,265201,661],{"class":181},[34,265203,265204,265206,265208,265210,265212,265214,265217,265219],{"class":36,"line":870},[34,265205,52225],{"class":580},[34,265207,85438],{"class":50},[34,265209,683],{"class":580},[34,265211,14763],{"class":580},[34,265213,14766],{"class":47},[34,265215,265216],{"class":181},"(url.value ",[34,265218,10892],{"class":580},[34,265220,265221],{"class":181}," url)\n",[34,265223,265224,265227,265229,265231,265233,265235],{"class":36,"line":876},[34,265225,265226],{"class":181},"      data.value ",[34,265228,1301],{"class":580},[34,265230,14763],{"class":580},[34,265232,75763],{"class":181},[34,265234,14790],{"class":47},[34,265236,33899],{"class":181},[34,265238,265239,265241,265243],{"class":36,"line":885},[34,265240,63191],{"class":181},[34,265242,30851],{"class":580},[34,265244,265245],{"class":181}," (e) {\n",[34,265247,265248,265251,265253],{"class":36,"line":895},[34,265249,265250],{"class":181},"      error.value ",[34,265252,1301],{"class":580},[34,265254,265255],{"class":181}," e\n",[34,265257,265258,265260,265262],{"class":36,"line":904},[34,265259,63191],{"class":181},[34,265261,122585],{"class":580},[34,265263,661],{"class":181},[34,265265,265266,265269,265271],{"class":36,"line":915},[34,265267,265268],{"class":181},"      loading.value ",[34,265270,1301],{"class":580},[34,265272,250129],{"class":50},[34,265274,265275],{"class":36,"line":927},[34,265276,3229],{"class":181},[34,265278,265279],{"class":36,"line":932},[34,265280,62121],{"class":181},[34,265282,265283],{"class":36,"line":944},[34,265284,62],{"emptyLinePlaceholder":61},[34,265286,265287,265289],{"class":36,"line":966},[34,265288,8155],{"class":580},[34,265290,265291],{"class":181}," { data, error, loading }\n",[34,265293,265294],{"class":36,"line":1948},[34,265295,693],{"class":181},[34,265297,265298],{"class":36,"line":1953},[34,265299,62],{"emptyLinePlaceholder":61},[34,265301,265302],{"class":36,"line":3616},[34,265303,200838],{"class":40},[34,265305,265306,265308,265311,265313],{"class":36,"line":3622},[34,265307,581],{"class":580},[34,265309,265310],{"class":181}," { useMouse } ",[34,265312,587],{"class":580},[34,265314,265315],{"class":54}," '@/composables/useMouse'\n",[34,265317,265318,265320,265323,265325],{"class":36,"line":3642},[34,265319,581],{"class":580},[34,265321,265322],{"class":181}," { useFetch } ",[34,265324,587],{"class":580},[34,265326,265327],{"class":54}," '@/composables/useFetch'\n",[34,265329,265330],{"class":36,"line":3657},[34,265331,62],{"emptyLinePlaceholder":61},[34,265333,265334,265336,265338,265340,265342,265344,265346,265348,265350],{"class":36,"line":3663},[34,265335,14676],{"class":580},[34,265337,30251],{"class":181},[34,265339,23655],{"class":50},[34,265341,1798],{"class":181},[34,265343,60946],{"class":50},[34,265345,34865],{"class":181},[34,265347,1301],{"class":580},[34,265349,264943],{"class":47},[34,265351,33899],{"class":181},[34,265353,265354,265356,265358,265360,265362,265364,265366,265368,265370,265372,265374],{"class":36,"line":3669},[34,265355,14676],{"class":580},[34,265357,30251],{"class":181},[34,265359,1701],{"class":50},[34,265361,1798],{"class":181},[34,265363,199795],{"class":50},[34,265365,34865],{"class":181},[34,265367,1301],{"class":580},[34,265369,162221],{"class":47},[34,265371,1607],{"class":181},[34,265373,162226],{"class":54},[34,265375,3372],{"class":181},[388,265377,265378],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":265380},[265381],{"id":264909,"depth":44,"text":264904},"Composables (Custom Hooks) in Vue.js.",{},"/vuejs/composables-custom-hooks",{"title":264904,"description":265382},"vuejs/composables-custom-hooks",[161289,8606,982,983],"R8ZUsjcdr3c4ceKD5_6ROnEWqDQgY5GKiPdlEbOz2u8",{"id":265390,"title":199217,"body":265391,"date":402,"description":265572,"extension":404,"meta":265573,"navigation":61,"order":71,"path":265574,"seo":265575,"stem":265576,"subject":264576,"tags":265577,"__hash__":265578},"topics/vuejs/conditional-rendering.md",{"type":8,"value":265392,"toc":265569},[265393,265395,265566],[11,265394,199217],{"id":199222},[25,265396,265398],{"className":161287,"code":265397,"language":161289,"meta":30,"style":30},"\u003Ctemplate>\n  \u003C!-- v-if / v-else-if / v-else -->\n  \u003Cdiv v-if=\"type === 'A'\">Type A\u003C/div>\n  \u003Cdiv v-else-if=\"type === 'B'\">Type B\u003C/div>\n  \u003Cdiv v-else>Other type\u003C/div>\n  \n  \u003C!-- v-show (toggles display CSS) -->\n  \u003Cdiv v-show=\"isVisible\">Always in DOM\u003C/div>\n  \n  \u003C!-- v-if on template (no wrapper element) -->\n  \u003Ctemplate v-if=\"showDetails\">\n    \u003Ch1>Title\u003C/h1>\n    \u003Cp>Description\u003C/p>\n  \u003C/template>\n\u003C/template>\n",[20,265399,265400,265408,265413,265433,265453,265468,265472,265477,265497,265501,265506,265525,265537,265550,265558],{"__ignoreMap":30},[34,265401,265402,265404,265406],{"class":36,"line":37},[34,265403,815],{"class":181},[34,265405,8517],{"class":177},[34,265407,1248],{"class":181},[34,265409,265410],{"class":36,"line":44},[34,265411,265412],{"class":40},"  \u003C!-- v-if / v-else-if / v-else -->\n",[34,265414,265415,265417,265419,265421,265423,265426,265429,265431],{"class":36,"line":58},[34,265416,1181],{"class":181},[34,265418,1240],{"class":177},[34,265420,161586],{"class":47},[34,265422,1301],{"class":181},[34,265424,265425],{"class":54},"\"type === 'A'\"",[34,265427,265428],{"class":181},">Type A\u003C/",[34,265430,1240],{"class":177},[34,265432,1248],{"class":181},[34,265434,265435,265437,265439,265441,265443,265446,265449,265451],{"class":36,"line":65},[34,265436,1181],{"class":181},[34,265438,1240],{"class":177},[34,265440,162869],{"class":47},[34,265442,1301],{"class":181},[34,265444,265445],{"class":54},"\"type === 'B'\"",[34,265447,265448],{"class":181},">Type B\u003C/",[34,265450,1240],{"class":177},[34,265452,1248],{"class":181},[34,265454,265455,265457,265459,265461,265464,265466],{"class":36,"line":71},[34,265456,1181],{"class":181},[34,265458,1240],{"class":177},[34,265460,162896],{"class":47},[34,265462,265463],{"class":181},">Other type\u003C/",[34,265465,1240],{"class":177},[34,265467,1248],{"class":181},[34,265469,265470],{"class":36,"line":77},[34,265471,827],{"class":181},[34,265473,265474],{"class":36,"line":82},[34,265475,265476],{"class":40},"  \u003C!-- v-show (toggles display CSS) -->\n",[34,265478,265479,265481,265483,265486,265488,265490,265493,265495],{"class":36,"line":88},[34,265480,1181],{"class":181},[34,265482,1240],{"class":177},[34,265484,265485],{"class":47}," v-show",[34,265487,1301],{"class":181},[34,265489,2000],{"class":54},[34,265491,265492],{"class":181},">Always in DOM\u003C/",[34,265494,1240],{"class":177},[34,265496,1248],{"class":181},[34,265498,265499],{"class":36,"line":242},[34,265500,827],{"class":181},[34,265502,265503],{"class":36,"line":250},[34,265504,265505],{"class":40},"  \u003C!-- v-if on template (no wrapper element) -->\n",[34,265507,265508,265510,265512,265514,265516,265518,265521,265523],{"class":36,"line":263},[34,265509,1181],{"class":181},[34,265511,8517],{"class":177},[34,265513,161586],{"class":580},[34,265515,1301],{"class":181},[34,265517,10389],{"class":54},[34,265519,265520],{"class":181},"showDetails",[34,265522,10389],{"class":54},[34,265524,1248],{"class":181},[34,265526,265527,265529,265531,265533,265535],{"class":36,"line":275},[34,265528,1294],{"class":181},[34,265530,8535],{"class":177},[34,265532,226127],{"class":181},[34,265534,8535],{"class":177},[34,265536,1248],{"class":181},[34,265538,265539,265541,265543,265546,265548],{"class":36,"line":700},[34,265540,1294],{"class":181},[34,265542,16],{"class":177},[34,265544,265545],{"class":181},">Description\u003C/",[34,265547,16],{"class":177},[34,265549,1248],{"class":181},[34,265551,265552,265554,265556],{"class":36,"line":706},[34,265553,8547],{"class":181},[34,265555,8517],{"class":177},[34,265557,1248],{"class":181},[34,265559,265560,265562,265564],{"class":36,"line":715},[34,265561,2089],{"class":181},[34,265563,8517],{"class":177},[34,265565,1248],{"class":181},[388,265567,265568],{},"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 .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 pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":30,"searchDepth":44,"depth":44,"links":265570},[265571],{"id":199222,"depth":44,"text":199217},"Conditional Rendering in Vue.js.",{},"/vuejs/conditional-rendering",{"title":199217,"description":265572},"vuejs/conditional-rendering",[161289,8606,982,983],"UFDV6Be0dfXjIjRrwrnEec_LPO7EiegBwvBgprInB94",{"id":265580,"title":2244,"body":265581,"date":402,"description":265888,"extension":404,"meta":265889,"navigation":61,"order":88,"path":265890,"seo":265891,"stem":265892,"subject":264576,"tags":265893,"__hash__":265894},"topics/vuejs/lifecycle-hooks.md",{"type":8,"value":265582,"toc":265885},[265583,265585,265882],[11,265584,2244],{"id":2249},[25,265586,265588],{"className":161287,"code":265587,"language":161289,"meta":30,"style":30},"\u003Cscript setup>\nimport { \n  onMounted, \n  onUpdated, \n  onUnmounted, \n  onBeforeMount,\n  onBeforeUpdate,\n  onBeforeUnmount \n} from 'vue'\n\n// Before mount\nonBeforeMount(() => {\n  console.log('Before mount')\n})\n\n// After mount (DOM available)\nonMounted(() => {\n  console.log('Mounted')\n  // Access DOM, start timers, fetch data\n})\n\n// Before update\nonBeforeUpdate(() => {\n  console.log('Before update')\n})\n\n// After update\nonUpdated(() => {\n  console.log('Updated')\n})\n\n// Before unmount\nonBeforeUnmount(() => {\n  console.log('Before unmount')\n})\n\n// After unmount (cleanup)\nonUnmounted(() => {\n  console.log('Unmounted')\n  // Clean up timers, subscriptions\n})\n\u003C/script>\n",[20,265589,265590,265600,265606,265611,265616,265621,265626,265631,265636,265644,265648,265653,265664,265677,265681,265685,265690,265701,265713,265718,265722,265726,265731,265742,265755,265759,265763,265768,265779,265792,265796,265800,265805,265816,265829,265833,265837,265842,265853,265865,265870,265874],{"__ignoreMap":30},[34,265591,265592,265594,265596,265598],{"class":36,"line":37},[34,265593,815],{"class":181},[34,265595,115970],{"class":177},[34,265597,161305],{"class":47},[34,265599,1248],{"class":181},[34,265601,265602,265604],{"class":36,"line":44},[34,265603,581],{"class":580},[34,265605,2261],{"class":181},[34,265607,265608],{"class":36,"line":58},[34,265609,265610],{"class":181},"  onMounted, \n",[34,265612,265613],{"class":36,"line":65},[34,265614,265615],{"class":181},"  onUpdated, \n",[34,265617,265618],{"class":36,"line":71},[34,265619,265620],{"class":181},"  onUnmounted, \n",[34,265622,265623],{"class":36,"line":77},[34,265624,265625],{"class":181},"  onBeforeMount,\n",[34,265627,265628],{"class":36,"line":82},[34,265629,265630],{"class":181},"  onBeforeUpdate,\n",[34,265632,265633],{"class":36,"line":88},[34,265634,265635],{"class":181},"  onBeforeUnmount \n",[34,265637,265638,265640,265642],{"class":36,"line":242},[34,265639,2276],{"class":181},[34,265641,587],{"class":580},[34,265643,264347],{"class":54},[34,265645,265646],{"class":36,"line":250},[34,265647,62],{"emptyLinePlaceholder":61},[34,265649,265650],{"class":36,"line":263},[34,265651,265652],{"class":40},"// Before mount\n",[34,265654,265655,265658,265660,265662],{"class":36,"line":275},[34,265656,265657],{"class":47},"onBeforeMount",[34,265659,4275],{"class":181},[34,265661,3361],{"class":580},[34,265663,661],{"class":181},[34,265665,265666,265668,265670,265672,265675],{"class":36,"line":700},[34,265667,14929],{"class":181},[34,265669,2424],{"class":47},[34,265671,1607],{"class":181},[34,265673,265674],{"class":54},"'Before mount'",[34,265676,3372],{"class":181},[34,265678,265679],{"class":36,"line":706},[34,265680,647],{"class":181},[34,265682,265683],{"class":36,"line":715},[34,265684,62],{"emptyLinePlaceholder":61},[34,265686,265687],{"class":36,"line":725},[34,265688,265689],{"class":40},"// After mount (DOM available)\n",[34,265691,265692,265695,265697,265699],{"class":36,"line":734},[34,265693,265694],{"class":47},"onMounted",[34,265696,4275],{"class":181},[34,265698,3361],{"class":580},[34,265700,661],{"class":181},[34,265702,265703,265705,265707,265709,265711],{"class":36,"line":742},[34,265704,14929],{"class":181},[34,265706,2424],{"class":47},[34,265708,1607],{"class":181},[34,265710,201035],{"class":54},[34,265712,3372],{"class":181},[34,265714,265715],{"class":36,"line":748},[34,265716,265717],{"class":40},"  // Access DOM, start timers, fetch data\n",[34,265719,265720],{"class":36,"line":754},[34,265721,647],{"class":181},[34,265723,265724],{"class":36,"line":759},[34,265725,62],{"emptyLinePlaceholder":61},[34,265727,265728],{"class":36,"line":771},[34,265729,265730],{"class":40},"// Before update\n",[34,265732,265733,265736,265738,265740],{"class":36,"line":794},[34,265734,265735],{"class":47},"onBeforeUpdate",[34,265737,4275],{"class":181},[34,265739,3361],{"class":580},[34,265741,661],{"class":181},[34,265743,265744,265746,265748,265750,265753],{"class":36,"line":824},[34,265745,14929],{"class":181},[34,265747,2424],{"class":47},[34,265749,1607],{"class":181},[34,265751,265752],{"class":54},"'Before update'",[34,265754,3372],{"class":181},[34,265756,265757],{"class":36,"line":830},[34,265758,647],{"class":181},[34,265760,265761],{"class":36,"line":839},[34,265762,62],{"emptyLinePlaceholder":61},[34,265764,265765],{"class":36,"line":854},[34,265766,265767],{"class":40},"// After update\n",[34,265769,265770,265773,265775,265777],{"class":36,"line":860},[34,265771,265772],{"class":47},"onUpdated",[34,265774,4275],{"class":181},[34,265776,3361],{"class":580},[34,265778,661],{"class":181},[34,265780,265781,265783,265785,265787,265790],{"class":36,"line":865},[34,265782,14929],{"class":181},[34,265784,2424],{"class":47},[34,265786,1607],{"class":181},[34,265788,265789],{"class":54},"'Updated'",[34,265791,3372],{"class":181},[34,265793,265794],{"class":36,"line":870},[34,265795,647],{"class":181},[34,265797,265798],{"class":36,"line":876},[34,265799,62],{"emptyLinePlaceholder":61},[34,265801,265802],{"class":36,"line":885},[34,265803,265804],{"class":40},"// Before unmount\n",[34,265806,265807,265810,265812,265814],{"class":36,"line":895},[34,265808,265809],{"class":47},"onBeforeUnmount",[34,265811,4275],{"class":181},[34,265813,3361],{"class":580},[34,265815,661],{"class":181},[34,265817,265818,265820,265822,265824,265827],{"class":36,"line":904},[34,265819,14929],{"class":181},[34,265821,2424],{"class":47},[34,265823,1607],{"class":181},[34,265825,265826],{"class":54},"'Before unmount'",[34,265828,3372],{"class":181},[34,265830,265831],{"class":36,"line":915},[34,265832,647],{"class":181},[34,265834,265835],{"class":36,"line":927},[34,265836,62],{"emptyLinePlaceholder":61},[34,265838,265839],{"class":36,"line":932},[34,265840,265841],{"class":40},"// After unmount (cleanup)\n",[34,265843,265844,265847,265849,265851],{"class":36,"line":944},[34,265845,265846],{"class":47},"onUnmounted",[34,265848,4275],{"class":181},[34,265850,3361],{"class":580},[34,265852,661],{"class":181},[34,265854,265855,265857,265859,265861,265863],{"class":36,"line":966},[34,265856,14929],{"class":181},[34,265858,2424],{"class":47},[34,265860,1607],{"class":181},[34,265862,201054],{"class":54},[34,265864,3372],{"class":181},[34,265866,265867],{"class":36,"line":1948},[34,265868,265869],{"class":40},"  // Clean up timers, subscriptions\n",[34,265871,265872],{"class":36,"line":1953},[34,265873,647],{"class":181},[34,265875,265876,265878,265880],{"class":36,"line":3616},[34,265877,2089],{"class":181},[34,265879,115970],{"class":177},[34,265881,1248],{"class":181},[388,265883,265884],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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":30,"searchDepth":44,"depth":44,"links":265886},[265887],{"id":2249,"depth":44,"text":2244},"Lifecycle Hooks in Vue.js.",{},"/vuejs/lifecycle-hooks",{"title":2244,"description":265888},"vuejs/lifecycle-hooks",[161289,8606,982,983],"n9So6Uous_3iLfKo6DojKKiz0ITh-LN3K4vmrsx_W2A",{"id":265896,"title":229832,"body":265897,"date":402,"description":266178,"extension":404,"meta":266179,"navigation":61,"order":77,"path":266180,"seo":266181,"stem":266182,"subject":264576,"tags":266183,"__hash__":266184},"topics/vuejs/list-rendering.md",{"type":8,"value":265898,"toc":266175},[265899,265901,266173],[11,265900,229832],{"id":229837},[25,265902,265904],{"className":161287,"code":265903,"language":161289,"meta":30,"style":30},"\u003Ctemplate>\n  \u003C!-- Array -->\n  \u003Cul>\n    \u003Cli v-for=\"item in items\" :key=\"item.id\">\n      {{ item.name }}\n    \u003C/li>\n  \u003C/ul>\n  \n  \u003C!-- With index -->\n  \u003Cli v-for=\"(item, index) in items\" :key=\"item.id\">\n    {{ index }}: {{ item.name }}\n  \u003C/li>\n  \n  \u003C!-- Object -->\n  \u003Cli v-for=\"(value, key, index) in object\" :key=\"key\">\n    {{ key }}: {{ value }}\n  \u003C/li>\n  \n  \u003C!-- Range -->\n  \u003Cspan v-for=\"n in 10\" :key=\"n\">{{ n }}\u003C/span>\n  \n  \u003C!-- With v-if (use template wrapper) -->\n  \u003Ctemplate v-for=\"item in items\" :key=\"item.id\">\n    \u003Cli v-if=\"item.isActive\">{{ item.name }}\u003C/li>\n  \u003C/template>\n\u003C/template>\n",[20,265905,265906,265914,265919,265927,265950,265955,265963,265971,265975,265980,266001,266006,266014,266018,266023,266044,266049,266057,266061,266066,266093,266097,266102,266138,266157,266165],{"__ignoreMap":30},[34,265907,265908,265910,265912],{"class":36,"line":37},[34,265909,815],{"class":181},[34,265911,8517],{"class":177},[34,265913,1248],{"class":181},[34,265915,265916],{"class":36,"line":44},[34,265917,265918],{"class":40},"  \u003C!-- Array -->\n",[34,265920,265921,265923,265925],{"class":36,"line":58},[34,265922,1181],{"class":181},[34,265924,309],{"class":177},[34,265926,1248],{"class":181},[34,265928,265929,265931,265933,265935,265937,265940,265943,265945,265948],{"class":36,"line":65},[34,265930,1294],{"class":181},[34,265932,312],{"class":177},[34,265934,162907],{"class":47},[34,265936,1301],{"class":181},[34,265938,265939],{"class":54},"\"item in items\"",[34,265941,265942],{"class":47}," :key",[34,265944,1301],{"class":181},[34,265946,265947],{"class":54},"\"item.id\"",[34,265949,1248],{"class":181},[34,265951,265952],{"class":36,"line":71},[34,265953,265954],{"class":181},"      {{ item.name }}\n",[34,265956,265957,265959,265961],{"class":36,"line":77},[34,265958,74431],{"class":181},[34,265960,312],{"class":177},[34,265962,1248],{"class":181},[34,265964,265965,265967,265969],{"class":36,"line":82},[34,265966,8547],{"class":181},[34,265968,309],{"class":177},[34,265970,1248],{"class":181},[34,265972,265973],{"class":36,"line":88},[34,265974,827],{"class":181},[34,265976,265977],{"class":36,"line":242},[34,265978,265979],{"class":40},"  \u003C!-- With index -->\n",[34,265981,265982,265984,265986,265988,265990,265993,265995,265997,265999],{"class":36,"line":250},[34,265983,1181],{"class":181},[34,265985,312],{"class":177},[34,265987,162907],{"class":47},[34,265989,1301],{"class":181},[34,265991,265992],{"class":54},"\"(item, index) in items\"",[34,265994,265942],{"class":47},[34,265996,1301],{"class":181},[34,265998,265947],{"class":54},[34,266000,1248],{"class":181},[34,266002,266003],{"class":36,"line":263},[34,266004,266005],{"class":181},"    {{ index }}: {{ item.name }}\n",[34,266007,266008,266010,266012],{"class":36,"line":275},[34,266009,8547],{"class":181},[34,266011,312],{"class":177},[34,266013,1248],{"class":181},[34,266015,266016],{"class":36,"line":700},[34,266017,827],{"class":181},[34,266019,266020],{"class":36,"line":706},[34,266021,266022],{"class":40},"  \u003C!-- Object -->\n",[34,266024,266025,266027,266029,266031,266033,266036,266038,266040,266042],{"class":36,"line":715},[34,266026,1181],{"class":181},[34,266028,312],{"class":177},[34,266030,162907],{"class":47},[34,266032,1301],{"class":181},[34,266034,266035],{"class":54},"\"(value, key, index) in object\"",[34,266037,265942],{"class":47},[34,266039,1301],{"class":181},[34,266041,121453],{"class":54},[34,266043,1248],{"class":181},[34,266045,266046],{"class":36,"line":725},[34,266047,266048],{"class":181},"    {{ key }}: {{ value }}\n",[34,266050,266051,266053,266055],{"class":36,"line":734},[34,266052,8547],{"class":181},[34,266054,312],{"class":177},[34,266056,1248],{"class":181},[34,266058,266059],{"class":36,"line":742},[34,266060,827],{"class":181},[34,266062,266063],{"class":36,"line":748},[34,266064,266065],{"class":40},"  \u003C!-- Range -->\n",[34,266067,266068,266070,266072,266074,266076,266079,266081,266083,266086,266089,266091],{"class":36,"line":754},[34,266069,1181],{"class":181},[34,266071,34],{"class":177},[34,266073,162907],{"class":47},[34,266075,1301],{"class":181},[34,266077,266078],{"class":54},"\"n in 10\"",[34,266080,265942],{"class":47},[34,266082,1301],{"class":181},[34,266084,266085],{"class":54},"\"n\"",[34,266087,266088],{"class":181},">{{ n }}\u003C/",[34,266090,34],{"class":177},[34,266092,1248],{"class":181},[34,266094,266095],{"class":36,"line":759},[34,266096,827],{"class":181},[34,266098,266099],{"class":36,"line":771},[34,266100,266101],{"class":40},"  \u003C!-- With v-if (use template wrapper) -->\n",[34,266103,266104,266106,266108,266110,266112,266114,266116,266118,266121,266123,266125,266127,266129,266131,266134,266136],{"class":36,"line":794},[34,266105,1181],{"class":181},[34,266107,8517],{"class":177},[34,266109,162907],{"class":580},[34,266111,1301],{"class":181},[34,266113,10389],{"class":54},[34,266115,217983],{"class":181},[34,266117,10252],{"class":580},[34,266119,266120],{"class":181}," items",[34,266122,10389],{"class":54},[34,266124,64223],{"class":181},[34,266126,141344],{"class":47},[34,266128,1301],{"class":181},[34,266130,10389],{"class":54},[34,266132,266133],{"class":181},"item.id",[34,266135,10389],{"class":54},[34,266137,1248],{"class":181},[34,266139,266140,266142,266144,266146,266148,266151,266153,266155],{"class":36,"line":824},[34,266141,1294],{"class":181},[34,266143,312],{"class":177},[34,266145,161586],{"class":47},[34,266147,1301],{"class":181},[34,266149,266150],{"class":54},"\"item.isActive\"",[34,266152,1243],{"class":181},[34,266154,312],{"class":177},[34,266156,1248],{"class":181},[34,266158,266159,266161,266163],{"class":36,"line":830},[34,266160,8547],{"class":181},[34,266162,8517],{"class":177},[34,266164,1248],{"class":181},[34,266166,266167,266169,266171],{"class":36,"line":839},[34,266168,2089],{"class":181},[34,266170,8517],{"class":177},[34,266172,1248],{"class":181},[388,266174,265568],{},{"title":30,"searchDepth":44,"depth":44,"links":266176},[266177],{"id":229837,"depth":44,"text":229832},"List Rendering in Vue.js.",{},"/vuejs/list-rendering",{"title":229832,"description":266178},"vuejs/list-rendering",[161289,8606,982,983],"0kN2Ah_242cstVqMf2Yq60OaRmink4G8HvX5K7mybtI",{"id":266186,"title":266187,"body":266188,"date":2633,"description":266270,"extension":404,"meta":266271,"navigation":61,"order":37,"path":266272,"seo":266273,"stem":266274,"subject":264576,"tags":266275,"__hash__":266276},"topics/vuejs/overview.md","Vue.js",{"type":8,"value":266189,"toc":266268},[266190],[309,266191,266192,266196,266202,266207,266211,266215,266221,266225,266231,266235,266241,266246,266252,266258,266262],{},[312,266193,266194],{},[145,266195,563],{"href":264897},[312,266197,266198],{},[145,266199,266201],{"href":266200},"/vuejs/reactive-state","Reactive State",[312,266203,266204],{},[145,266205,2574],{"href":266206},"/vuejs/template-syntax",[312,266208,266209],{},[145,266210,199217],{"href":265574},[312,266212,266213],{},[145,266214,229832],{"href":266180},[312,266216,266217],{},[145,266218,266220],{"href":266219},"/vuejs/props-emits","Props & Emits",[312,266222,266223],{},[145,266224,2244],{"href":265890},[312,266226,266227],{},[145,266228,266230],{"href":266229},"/vuejs/template-refs","Template Refs",[312,266232,266233],{},[145,266234,264904],{"href":265384},[312,266236,266237],{},[145,266238,266240],{"href":266239},"/vuejs/provide-inject","Provide / Inject",[312,266242,266243],{},[145,266244,86523],{"href":266245},"/vuejs/slots",[312,266247,266248],{},[145,266249,266251],{"href":266250},"/vuejs/vue-router","Vue Router",[312,266253,266254],{},[145,266255,266257],{"href":266256},"/vuejs/pinia-state-management","Pinia (State Management)",[312,266259,266260],{},[145,266261,264315],{"href":264573},[312,266263,266264],{},[145,266265,266267],{"href":266266},"/vuejs/teleport","Teleport",{"title":30,"searchDepth":44,"depth":44,"links":266269},[],"Essential Vue.js 3 syntax, Composition API, and best practices for building reactive applications.",{},"/vuejs/overview",{"title":266187,"description":266270},"vuejs/overview",[161289,8606,982,983],"AV1bkk5D6hnw8mqZc8Wo9DLgdDLCrpycVfei7kqGQbM",{"id":266278,"title":266257,"body":266279,"date":402,"description":266856,"extension":404,"meta":266857,"navigation":61,"order":706,"path":266256,"seo":266858,"stem":266859,"subject":264576,"tags":266860,"__hash__":266861},"topics/vuejs/pinia-state-management.md",{"type":8,"value":266280,"toc":266853},[266281,266284,266661,266850],[11,266282,266257],{"id":266283},"pinia-state-management",[25,266285,266287],{"className":13845,"code":266286,"language":8606,"meta":30,"style":30},"// stores/counter.js\nimport { defineStore } from 'pinia'\nimport { ref, computed } from 'vue'\n\n// Composition API style\nexport const useCounterStore = defineStore('counter', () => {\n  // State\n  const count = ref(0)\n  \n  // Getters\n  const doubleCount = computed(() => count.value * 2)\n  \n  // Actions\n  function increment() {\n    count.value++\n  }\n  \n  async function fetchCount() {\n    const res = await fetch('/api/count')\n    count.value = await res.json()\n  }\n  \n  return { count, doubleCount, increment, fetchCount }\n})\n\n// Options API style\nexport const useUserStore = defineStore('user', {\n  state: () => ({\n    name: '',\n    isLoggedIn: false\n  }),\n  getters: {\n    greeting: (state) => `Hello, ${state.name}!`\n  },\n  actions: {\n    login(name) {\n      this.name = name\n      this.isLoggedIn = true\n    },\n    logout() {\n      this.$reset()\n    }\n  }\n})\n",[20,266288,266289,266294,266306,266317,266321,266326,266350,266355,266371,266375,266380,266403,266407,266412,266420,266427,266431,266435,266446,266465,266480,266484,266488,266495,266499,266503,266508,266527,266538,266546,266553,266558,266563,266586,266590,266595,266606,266616,266627,266631,266638,266649,266653,266657],{"__ignoreMap":30},[34,266290,266291],{"class":36,"line":37},[34,266292,266293],{"class":40},"// stores/counter.js\n",[34,266295,266296,266298,266301,266303],{"class":36,"line":44},[34,266297,581],{"class":580},[34,266299,266300],{"class":181}," { defineStore } ",[34,266302,587],{"class":580},[34,266304,266305],{"class":54}," 'pinia'\n",[34,266307,266308,266310,266313,266315],{"class":36,"line":58},[34,266309,581],{"class":580},[34,266311,266312],{"class":181}," { ref, computed } ",[34,266314,587],{"class":580},[34,266316,264347],{"class":54},[34,266318,266319],{"class":36,"line":65},[34,266320,62],{"emptyLinePlaceholder":61},[34,266322,266323],{"class":36,"line":71},[34,266324,266325],{"class":40},"// Composition API style\n",[34,266327,266328,266330,266332,266335,266337,266340,266342,266344,266346,266348],{"class":36,"line":77},[34,266329,652],{"class":580},[34,266331,3291],{"class":580},[34,266333,266334],{"class":50}," useCounterStore",[34,266336,683],{"class":580},[34,266338,266339],{"class":47}," defineStore",[34,266341,1607],{"class":181},[34,266343,161670],{"class":54},[34,266345,17258],{"class":181},[34,266347,3361],{"class":580},[34,266349,661],{"class":181},[34,266351,266352],{"class":36,"line":82},[34,266353,266354],{"class":40},"  // State\n",[34,266356,266357,266359,266361,266363,266365,266367,266369],{"class":36,"line":88},[34,266358,17415],{"class":580},[34,266360,161661],{"class":50},[34,266362,683],{"class":580},[34,266364,162430],{"class":47},[34,266366,1607],{"class":181},[34,266368,2773],{"class":50},[34,266370,3372],{"class":181},[34,266372,266373],{"class":36,"line":242},[34,266374,827],{"class":181},[34,266376,266377],{"class":36,"line":250},[34,266378,266379],{"class":40},"  // Getters\n",[34,266381,266382,266384,266387,266389,266391,266393,266395,266397,266399,266401],{"class":36,"line":263},[34,266383,17415],{"class":580},[34,266385,266386],{"class":50}," doubleCount",[34,266388,683],{"class":580},[34,266390,4272],{"class":47},[34,266392,4275],{"class":181},[34,266394,3361],{"class":580},[34,266396,161732],{"class":181},[34,266398,4289],{"class":580},[34,266400,4292],{"class":50},[34,266402,3372],{"class":181},[34,266404,266405],{"class":36,"line":275},[34,266406,827],{"class":181},[34,266408,266409],{"class":36,"line":700},[34,266410,266411],{"class":40},"  // Actions\n",[34,266413,266414,266416,266418],{"class":36,"line":706},[34,266415,68507],{"class":580},[34,266417,60840],{"class":47},[34,266419,836],{"class":181},[34,266421,266422,266425],{"class":36,"line":715},[34,266423,266424],{"class":181},"    count.value",[34,266426,108020],{"class":580},[34,266428,266429],{"class":36,"line":725},[34,266430,857],{"class":181},[34,266432,266433],{"class":36,"line":734},[34,266434,827],{"class":181},[34,266436,266437,266439,266441,266444],{"class":36,"line":742},[34,266438,167068],{"class":580},[34,266440,8037],{"class":580},[34,266442,266443],{"class":47}," fetchCount",[34,266445,836],{"class":181},[34,266447,266448,266450,266452,266454,266456,266458,266460,266463],{"class":36,"line":748},[34,266449,1632],{"class":580},[34,266451,85438],{"class":50},[34,266453,683],{"class":580},[34,266455,14763],{"class":580},[34,266457,14766],{"class":47},[34,266459,1607],{"class":181},[34,266461,266462],{"class":54},"'/api/count'",[34,266464,3372],{"class":181},[34,266466,266467,266470,266472,266474,266476,266478],{"class":36,"line":754},[34,266468,266469],{"class":181},"    count.value ",[34,266471,1301],{"class":580},[34,266473,14763],{"class":580},[34,266475,75763],{"class":181},[34,266477,14790],{"class":47},[34,266479,33899],{"class":181},[34,266481,266482],{"class":36,"line":759},[34,266483,857],{"class":181},[34,266485,266486],{"class":36,"line":771},[34,266487,827],{"class":181},[34,266489,266490,266492],{"class":36,"line":794},[34,266491,8155],{"class":580},[34,266493,266494],{"class":181}," { count, doubleCount, increment, fetchCount }\n",[34,266496,266497],{"class":36,"line":824},[34,266498,647],{"class":181},[34,266500,266501],{"class":36,"line":830},[34,266502,62],{"emptyLinePlaceholder":61},[34,266504,266505],{"class":36,"line":839},[34,266506,266507],{"class":40},"// Options API style\n",[34,266509,266510,266512,266514,266517,266519,266521,266523,266525],{"class":36,"line":854},[34,266511,652],{"class":580},[34,266513,3291],{"class":580},[34,266515,266516],{"class":50}," useUserStore",[34,266518,683],{"class":580},[34,266520,266339],{"class":47},[34,266522,1607],{"class":181},[34,266524,162514],{"class":54},[34,266526,14820],{"class":181},[34,266528,266529,266532,266534,266536],{"class":36,"line":860},[34,266530,266531],{"class":47},"  state",[34,266533,3358],{"class":181},[34,266535,3361],{"class":580},[34,266537,166840],{"class":181},[34,266539,266540,266542,266544],{"class":36,"line":865},[34,266541,3140],{"class":181},[34,266543,3151],{"class":54},[34,266545,624],{"class":181},[34,266547,266548,266551],{"class":36,"line":870},[34,266549,266550],{"class":181},"    isLoggedIn: ",[34,266552,14607],{"class":50},[34,266554,266555],{"class":36,"line":876},[34,266556,266557],{"class":181},"  }),\n",[34,266559,266560],{"class":36,"line":885},[34,266561,266562],{"class":181},"  getters: {\n",[34,266564,266565,266568,266570,266572,266574,266576,266578,266580,266582,266584],{"class":36,"line":895},[34,266566,266567],{"class":47},"    greeting",[34,266569,162313],{"class":181},[34,266571,29410],{"class":675},[34,266573,4817],{"class":181},[34,266575,3361],{"class":580},[34,266577,125702],{"class":54},[34,266579,29410],{"class":181},[34,266581,151],{"class":54},[34,266583,178],{"class":181},[34,266585,165151],{"class":54},[34,266587,266588],{"class":36,"line":904},[34,266589,3400],{"class":181},[34,266591,266592],{"class":36,"line":915},[34,266593,266594],{"class":181},"  actions: {\n",[34,266596,266597,266600,266602,266604],{"class":36,"line":927},[34,266598,266599],{"class":47},"    login",[34,266601,1607],{"class":181},[34,266603,178],{"class":675},[34,266605,2416],{"class":181},[34,266607,266608,266610,266612,266614],{"class":36,"line":932},[34,266609,4106],{"class":50},[34,266611,121800],{"class":181},[34,266613,1301],{"class":580},[34,266615,11232],{"class":181},[34,266617,266618,266620,266623,266625],{"class":36,"line":944},[34,266619,4106],{"class":50},[34,266621,266622],{"class":181},".isLoggedIn ",[34,266624,1301],{"class":580},[34,266626,104956],{"class":50},[34,266628,266629],{"class":36,"line":966},[34,266630,15762],{"class":181},[34,266632,266633,266636],{"class":36,"line":1948},[34,266634,266635],{"class":47},"    logout",[34,266637,836],{"class":181},[34,266639,266640,266642,266644,266647],{"class":36,"line":1953},[34,266641,4106],{"class":50},[34,266643,151],{"class":181},[34,266645,266646],{"class":47},"$reset",[34,266648,33899],{"class":181},[34,266650,266651],{"class":36,"line":3616},[34,266652,3229],{"class":181},[34,266654,266655],{"class":36,"line":3622},[34,266656,857],{"class":181},[34,266658,266659],{"class":36,"line":3642},[34,266660,647],{"class":181},[25,266662,266664],{"className":161287,"code":266663,"language":161289,"meta":30,"style":30},"\u003C!-- Using Pinia store -->\n\u003Cscript setup>\nimport { useCounterStore } from '@/stores/counter'\nimport { storeToRefs } from 'pinia'\n\nconst store = useCounterStore()\n\n// Destructure with reactivity preserved\nconst { count, doubleCount } = storeToRefs(store)\n\n// Actions can be destructured directly\nconst { increment } = store\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cp>Count: {{ count }}\u003C/p>\n  \u003Cp>Double: {{ doubleCount }}\u003C/p>\n  \u003Cbutton @click=\"increment\">+\u003C/button>\n\u003C/template>\n",[20,266665,266666,266671,266681,266693,266704,266708,266720,266724,266729,266752,266756,266761,266776,266784,266788,266796,266809,266822,266842],{"__ignoreMap":30},[34,266667,266668],{"class":36,"line":37},[34,266669,266670],{"class":40},"\u003C!-- Using Pinia store -->\n",[34,266672,266673,266675,266677,266679],{"class":36,"line":44},[34,266674,815],{"class":181},[34,266676,115970],{"class":177},[34,266678,161305],{"class":47},[34,266680,1248],{"class":181},[34,266682,266683,266685,266688,266690],{"class":36,"line":58},[34,266684,581],{"class":580},[34,266686,266687],{"class":181}," { useCounterStore } ",[34,266689,587],{"class":580},[34,266691,266692],{"class":54}," '@/stores/counter'\n",[34,266694,266695,266697,266700,266702],{"class":36,"line":65},[34,266696,581],{"class":580},[34,266698,266699],{"class":181}," { storeToRefs } ",[34,266701,587],{"class":580},[34,266703,266305],{"class":54},[34,266705,266706],{"class":36,"line":71},[34,266707,62],{"emptyLinePlaceholder":61},[34,266709,266710,266712,266714,266716,266718],{"class":36,"line":77},[34,266711,14676],{"class":580},[34,266713,181062],{"class":50},[34,266715,683],{"class":580},[34,266717,266334],{"class":47},[34,266719,33899],{"class":181},[34,266721,266722],{"class":36,"line":82},[34,266723,62],{"emptyLinePlaceholder":61},[34,266725,266726],{"class":36,"line":88},[34,266727,266728],{"class":40},"// Destructure with reactivity preserved\n",[34,266730,266731,266733,266735,266737,266739,266742,266744,266746,266749],{"class":36,"line":242},[34,266732,14676],{"class":580},[34,266734,30251],{"class":181},[34,266736,4284],{"class":50},[34,266738,1798],{"class":181},[34,266740,266741],{"class":50},"doubleCount",[34,266743,34865],{"class":181},[34,266745,1301],{"class":580},[34,266747,266748],{"class":47}," storeToRefs",[34,266750,266751],{"class":181},"(store)\n",[34,266753,266754],{"class":36,"line":250},[34,266755,62],{"emptyLinePlaceholder":61},[34,266757,266758],{"class":36,"line":263},[34,266759,266760],{"class":40},"// Actions can be destructured directly\n",[34,266762,266763,266765,266767,266769,266771,266773],{"class":36,"line":275},[34,266764,14676],{"class":580},[34,266766,30251],{"class":181},[34,266768,108042],{"class":50},[34,266770,34865],{"class":181},[34,266772,1301],{"class":580},[34,266774,266775],{"class":181}," store\n",[34,266777,266778,266780,266782],{"class":36,"line":700},[34,266779,2089],{"class":181},[34,266781,115970],{"class":177},[34,266783,1248],{"class":181},[34,266785,266786],{"class":36,"line":706},[34,266787,62],{"emptyLinePlaceholder":61},[34,266789,266790,266792,266794],{"class":36,"line":715},[34,266791,815],{"class":181},[34,266793,8517],{"class":177},[34,266795,1248],{"class":181},[34,266797,266798,266800,266802,266805,266807],{"class":36,"line":725},[34,266799,1181],{"class":181},[34,266801,16],{"class":177},[34,266803,266804],{"class":181},">Count: {{ count }}\u003C/",[34,266806,16],{"class":177},[34,266808,1248],{"class":181},[34,266810,266811,266813,266815,266818,266820],{"class":36,"line":734},[34,266812,1181],{"class":181},[34,266814,16],{"class":177},[34,266816,266817],{"class":181},">Double: {{ doubleCount }}\u003C/",[34,266819,16],{"class":177},[34,266821,1248],{"class":181},[34,266823,266824,266826,266828,266830,266832,266835,266838,266840],{"class":36,"line":742},[34,266825,1181],{"class":181},[34,266827,4509],{"class":177},[34,266829,264817],{"class":47},[34,266831,1301],{"class":181},[34,266833,266834],{"class":54},"\"increment\"",[34,266836,266837],{"class":181},">+\u003C/",[34,266839,4509],{"class":177},[34,266841,1248],{"class":181},[34,266843,266844,266846,266848],{"class":36,"line":748},[34,266845,2089],{"class":181},[34,266847,8517],{"class":177},[34,266849,1248],{"class":181},[388,266851,266852],{},"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}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 .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":30,"searchDepth":44,"depth":44,"links":266854},[266855],{"id":266283,"depth":44,"text":266257},"Pinia (State Management) in Vue.js.",{},{"title":266257,"description":266856},"vuejs/pinia-state-management",[161289,8606,982,983],"QAZE7KovE02s2p3dDbL0A4eufZ_RGxEM3kZkZEcW9Ws",{"id":266863,"title":266220,"body":266864,"date":402,"description":267309,"extension":404,"meta":267310,"navigation":61,"order":82,"path":266219,"seo":267311,"stem":267312,"subject":264576,"tags":267313,"__hash__":267314},"topics/vuejs/props-emits.md",{"type":8,"value":266865,"toc":267306},[266866,266869,267304],[11,266867,266220],{"id":266868},"props-emits",[25,266870,266872],{"className":161287,"code":266871,"language":161289,"meta":30,"style":30},"\u003Cscript setup>\n// Props with types and defaults\nconst props = defineProps({\n  title: {\n    type: String,\n    required: true\n  },\n  count: {\n    type: Number,\n    default: 0\n  },\n  items: {\n    type: Array,\n    default: () => []\n  },\n  user: {\n    type: Object,\n    default: () => ({ name: 'Guest' })\n  },\n  callback: Function,\n  status: {\n    type: String,\n    validator: (value) => ['active', 'inactive'].includes(value)\n  }\n})\n\n// TypeScript props\ninterface Props {\n  title: string\n  count?: number\n  items?: string[]\n}\nconst props = defineProps\u003CProps>()\n\n// With defaults (TypeScript)\nconst props = withDefaults(defineProps\u003CProps>(), {\n  count: 0,\n  items: () => []\n})\n\n// Emits\nconst emit = defineEmits(['update', 'delete'])\nconst emit = defineEmits\u003C{\n  (e: 'update', value: string): void\n  (e: 'delete', id: number): void\n}>()\n\n// Usage\nemit('update', 'new value')\nemit('delete', 123)\n\u003C/script>\n",[20,266873,266874,266884,266889,266901,266906,266910,266917,266921,266925,266929,266935,266939,266944,266949,266959,266963,266968,266973,266989,266993,266998,267003,267007,267034,267038,267042,267046,267051,267060,267068,267076,267087,267091,267108,267112,267117,267139,267148,267158,267162,267166,267170,267190,267203,267229,267254,267259,267263,267267,267282,267296],{"__ignoreMap":30},[34,266875,266876,266878,266880,266882],{"class":36,"line":37},[34,266877,815],{"class":181},[34,266879,115970],{"class":177},[34,266881,161305],{"class":47},[34,266883,1248],{"class":181},[34,266885,266886],{"class":36,"line":44},[34,266887,266888],{"class":40},"// Props with types and defaults\n",[34,266890,266891,266893,266895,266897,266899],{"class":36,"line":58},[34,266892,14676],{"class":580},[34,266894,163036],{"class":50},[34,266896,683],{"class":580},[34,266898,163041],{"class":47},[34,266900,613],{"class":181},[34,266902,266903],{"class":36,"line":65},[34,266904,266905],{"class":181},"  title: {\n",[34,266907,266908],{"class":36,"line":71},[34,266909,161324],{"class":181},[34,266911,266912,266915],{"class":36,"line":77},[34,266913,266914],{"class":181},"    required: ",[34,266916,515],{"class":50},[34,266918,266919],{"class":36,"line":82},[34,266920,3400],{"class":181},[34,266922,266923],{"class":36,"line":88},[34,266924,264646],{"class":181},[34,266926,266927],{"class":36,"line":242},[34,266928,264651],{"class":181},[34,266930,266931,266933],{"class":36,"line":250},[34,266932,161329],{"class":181},[34,266934,12000],{"class":50},[34,266936,266937],{"class":36,"line":263},[34,266938,3400],{"class":181},[34,266940,266941],{"class":36,"line":275},[34,266942,266943],{"class":181},"  items: {\n",[34,266945,266946],{"class":36,"line":700},[34,266947,266948],{"class":181},"    type: Array,\n",[34,266950,266951,266953,266955,266957],{"class":36,"line":706},[34,266952,19051],{"class":47},[34,266954,3358],{"class":181},[34,266956,3361],{"class":580},[34,266958,53166],{"class":181},[34,266960,266961],{"class":36,"line":715},[34,266962,3400],{"class":181},[34,266964,266965],{"class":36,"line":725},[34,266966,266967],{"class":181},"  user: {\n",[34,266969,266970],{"class":36,"line":734},[34,266971,266972],{"class":181},"    type: Object,\n",[34,266974,266975,266977,266979,266981,266984,266987],{"class":36,"line":742},[34,266976,19051],{"class":47},[34,266978,3358],{"class":181},[34,266980,3361],{"class":580},[34,266982,266983],{"class":181}," ({ name: ",[34,266985,266986],{"class":54},"'Guest'",[34,266988,1502],{"class":181},[34,266990,266991],{"class":36,"line":748},[34,266992,3400],{"class":181},[34,266994,266995],{"class":36,"line":754},[34,266996,266997],{"class":181},"  callback: Function,\n",[34,266999,267000],{"class":36,"line":759},[34,267001,267002],{"class":181},"  status: {\n",[34,267004,267005],{"class":36,"line":771},[34,267006,161324],{"class":181},[34,267008,267009,267012,267014,267016,267018,267020,267022,267024,267026,267028,267030,267032],{"class":36,"line":794},[34,267010,267011],{"class":47},"    validator",[34,267013,162313],{"class":181},[34,267015,2871],{"class":675},[34,267017,4817],{"class":181},[34,267019,3361],{"class":580},[34,267021,8315],{"class":181},[34,267023,153699],{"class":54},[34,267025,1798],{"class":181},[34,267027,153704],{"class":54},[34,267029,208060],{"class":181},[34,267031,59303],{"class":47},[34,267033,104026],{"class":181},[34,267035,267036],{"class":36,"line":824},[34,267037,857],{"class":181},[34,267039,267040],{"class":36,"line":830},[34,267041,647],{"class":181},[34,267043,267044],{"class":36,"line":839},[34,267045,62],{"emptyLinePlaceholder":61},[34,267047,267048],{"class":36,"line":854},[34,267049,267050],{"class":40},"// TypeScript props\n",[34,267052,267053,267055,267058],{"class":36,"line":860},[34,267054,17562],{"class":580},[34,267056,267057],{"class":47}," Props",[34,267059,661],{"class":181},[34,267061,267062,267064,267066],{"class":36,"line":865},[34,267063,117415],{"class":675},[34,267065,165],{"class":580},[34,267067,65985],{"class":50},[34,267069,267070,267072,267074],{"class":36,"line":870},[34,267071,4242],{"class":675},[34,267073,66309],{"class":580},[34,267075,251388],{"class":50},[34,267077,267078,267081,267083,267085],{"class":36,"line":876},[34,267079,267080],{"class":675},"  items",[34,267082,66309],{"class":580},[34,267084,680],{"class":50},[34,267086,183295],{"class":181},[34,267088,267089],{"class":36,"line":885},[34,267090,693],{"class":181},[34,267092,267093,267095,267097,267099,267101,267103,267106],{"class":36,"line":895},[34,267094,14676],{"class":580},[34,267096,163036],{"class":50},[34,267098,683],{"class":580},[34,267100,163041],{"class":47},[34,267102,815],{"class":181},[34,267104,267105],{"class":47},"Props",[34,267107,214938],{"class":181},[34,267109,267110],{"class":36,"line":904},[34,267111,62],{"emptyLinePlaceholder":61},[34,267113,267114],{"class":36,"line":915},[34,267115,267116],{"class":40},"// With defaults (TypeScript)\n",[34,267118,267119,267121,267123,267125,267128,267130,267132,267134,267136],{"class":36,"line":927},[34,267120,14676],{"class":580},[34,267122,163036],{"class":50},[34,267124,683],{"class":580},[34,267126,267127],{"class":47}," withDefaults",[34,267129,1607],{"class":181},[34,267131,161312],{"class":47},[34,267133,815],{"class":181},[34,267135,267105],{"class":47},[34,267137,267138],{"class":181},">(), {\n",[34,267140,267141,267144,267146],{"class":36,"line":932},[34,267142,267143],{"class":181},"  count: ",[34,267145,2773],{"class":50},[34,267147,624],{"class":181},[34,267149,267150,267152,267154,267156],{"class":36,"line":944},[34,267151,267080],{"class":47},[34,267153,3358],{"class":181},[34,267155,3361],{"class":580},[34,267157,53166],{"class":181},[34,267159,267160],{"class":36,"line":966},[34,267161,647],{"class":181},[34,267163,267164],{"class":36,"line":1948},[34,267165,62],{"emptyLinePlaceholder":61},[34,267167,267168],{"class":36,"line":1953},[34,267169,264674],{"class":40},[34,267171,267172,267174,267176,267178,267180,267182,267184,267186,267188],{"class":36,"line":3616},[34,267173,14676],{"class":580},[34,267175,264681],{"class":50},[34,267177,683],{"class":580},[34,267179,264686],{"class":47},[34,267181,3593],{"class":181},[34,267183,264691],{"class":54},[34,267185,1798],{"class":181},[34,267187,264696],{"class":54},[34,267189,51547],{"class":181},[34,267191,267192,267194,267196,267198,267200],{"class":36,"line":3622},[34,267193,14676],{"class":580},[34,267195,264681],{"class":50},[34,267197,683],{"class":580},[34,267199,264686],{"class":47},[34,267201,267202],{"class":181},"\u003C{\n",[34,267204,267205,267207,267209,267211,267214,267216,267218,267220,267222,267224,267226],{"class":36,"line":3642},[34,267206,151460],{"class":181},[34,267208,5476],{"class":675},[34,267210,165],{"class":580},[34,267212,267213],{"class":54}," 'update'",[34,267215,1798],{"class":181},[34,267217,2871],{"class":675},[34,267219,165],{"class":580},[34,267221,680],{"class":50},[34,267223,1617],{"class":181},[34,267225,165],{"class":580},[34,267227,267228],{"class":50}," void\n",[34,267230,267231,267233,267235,267237,267240,267242,267244,267246,267248,267250,267252],{"class":36,"line":3657},[34,267232,151460],{"class":181},[34,267234,5476],{"class":675},[34,267236,165],{"class":580},[34,267238,267239],{"class":54}," 'delete'",[34,267241,1798],{"class":181},[34,267243,3885],{"class":675},[34,267245,165],{"class":580},[34,267247,2741],{"class":50},[34,267249,1617],{"class":181},[34,267251,165],{"class":580},[34,267253,267228],{"class":50},[34,267255,267256],{"class":36,"line":3663},[34,267257,267258],{"class":181},"}>()\n",[34,267260,267261],{"class":36,"line":3669},[34,267262,62],{"emptyLinePlaceholder":61},[34,267264,267265],{"class":36,"line":3675},[34,267266,1113],{"class":40},[34,267268,267269,267271,267273,267275,267277,267280],{"class":36,"line":3693},[34,267270,848],{"class":47},[34,267272,1607],{"class":181},[34,267274,264691],{"class":54},[34,267276,1798],{"class":181},[34,267278,267279],{"class":54},"'new value'",[34,267281,3372],{"class":181},[34,267283,267284,267286,267288,267290,267292,267294],{"class":36,"line":3707},[34,267285,848],{"class":47},[34,267287,1607],{"class":181},[34,267289,264696],{"class":54},[34,267291,1798],{"class":181},[34,267293,23913],{"class":50},[34,267295,3372],{"class":181},[34,267297,267298,267300,267302],{"class":36,"line":3712},[34,267299,2089],{"class":181},[34,267301,115970],{"class":177},[34,267303,1248],{"class":181},[388,267305,162993],{},{"title":30,"searchDepth":44,"depth":44,"links":267307},[267308],{"id":266868,"depth":44,"text":266220},"Props & Emits in Vue.js.",{},{"title":266220,"description":267309},"vuejs/props-emits",[161289,8606,982,983],"8MhoGUaocfQSB_jWmD0hanlY-gLnWbYldv-QBdY54Ok",{"id":267316,"title":266240,"body":267317,"date":402,"description":267607,"extension":404,"meta":267608,"navigation":61,"order":263,"path":266239,"seo":267609,"stem":267610,"subject":264576,"tags":267611,"__hash__":267612},"topics/vuejs/provide-inject.md",{"type":8,"value":267318,"toc":267604},[267319,267322,267601],[11,267320,266240],{"id":267321},"provide-inject",[25,267323,267325],{"className":161287,"code":267324,"language":161289,"meta":30,"style":30},"\u003C!-- Parent component -->\n\u003Cscript setup>\nimport { provide, ref } from 'vue'\n\nconst theme = ref('dark')\nconst updateTheme = (newTheme) => {\n  theme.value = newTheme\n}\n\n// Provide to all descendants\nprovide('theme', theme)\nprovide('updateTheme', updateTheme)\n\n// Or provide object\nprovide('themeContext', {\n  theme,\n  updateTheme\n})\n\u003C/script>\n\n\u003C!-- Child/Descendant component -->\n\u003Cscript setup>\nimport { inject } from 'vue'\n\n// Inject with default value\nconst theme = inject('theme', 'light')\nconst updateTheme = inject('updateTheme')\n\n// Or inject object\nconst { theme, updateTheme } = inject('themeContext')\n\u003C/script>\n",[20,267326,267327,267332,267342,267353,267357,267374,267394,267404,267408,267412,267417,267430,267442,267446,267451,267462,267467,267472,267476,267484,267488,267493,267503,267514,267518,267523,267543,267559,267563,267568,267593],{"__ignoreMap":30},[34,267328,267329],{"class":36,"line":37},[34,267330,267331],{"class":40},"\u003C!-- Parent component -->\n",[34,267333,267334,267336,267338,267340],{"class":36,"line":44},[34,267335,815],{"class":181},[34,267337,115970],{"class":177},[34,267339,161305],{"class":47},[34,267341,1248],{"class":181},[34,267343,267344,267346,267349,267351],{"class":36,"line":58},[34,267345,581],{"class":580},[34,267347,267348],{"class":181}," { provide, ref } ",[34,267350,587],{"class":580},[34,267352,264347],{"class":54},[34,267354,267355],{"class":36,"line":65},[34,267356,62],{"emptyLinePlaceholder":61},[34,267358,267359,267361,267363,267365,267367,267369,267372],{"class":36,"line":71},[34,267360,14676],{"class":580},[34,267362,157427],{"class":50},[34,267364,683],{"class":580},[34,267366,162430],{"class":47},[34,267368,1607],{"class":181},[34,267370,267371],{"class":54},"'dark'",[34,267373,3372],{"class":181},[34,267375,267376,267378,267381,267383,267385,267388,267390,267392],{"class":36,"line":77},[34,267377,14676],{"class":580},[34,267379,267380],{"class":47}," updateTheme",[34,267382,683],{"class":580},[34,267384,3204],{"class":181},[34,267386,267387],{"class":675},"newTheme",[34,267389,4817],{"class":181},[34,267391,3361],{"class":580},[34,267393,661],{"class":181},[34,267395,267396,267399,267401],{"class":36,"line":82},[34,267397,267398],{"class":181},"  theme.value ",[34,267400,1301],{"class":580},[34,267402,267403],{"class":181}," newTheme\n",[34,267405,267406],{"class":36,"line":88},[34,267407,693],{"class":181},[34,267409,267410],{"class":36,"line":242},[34,267411,62],{"emptyLinePlaceholder":61},[34,267413,267414],{"class":36,"line":250},[34,267415,267416],{"class":40},"// Provide to all descendants\n",[34,267418,267419,267422,267424,267427],{"class":36,"line":263},[34,267420,267421],{"class":47},"provide",[34,267423,1607],{"class":181},[34,267425,267426],{"class":54},"'theme'",[34,267428,267429],{"class":181},", theme)\n",[34,267431,267432,267434,267436,267439],{"class":36,"line":275},[34,267433,267421],{"class":47},[34,267435,1607],{"class":181},[34,267437,267438],{"class":54},"'updateTheme'",[34,267440,267441],{"class":181},", updateTheme)\n",[34,267443,267444],{"class":36,"line":700},[34,267445,62],{"emptyLinePlaceholder":61},[34,267447,267448],{"class":36,"line":706},[34,267449,267450],{"class":40},"// Or provide object\n",[34,267452,267453,267455,267457,267460],{"class":36,"line":715},[34,267454,267421],{"class":47},[34,267456,1607],{"class":181},[34,267458,267459],{"class":54},"'themeContext'",[34,267461,14820],{"class":181},[34,267463,267464],{"class":36,"line":725},[34,267465,267466],{"class":181},"  theme,\n",[34,267468,267469],{"class":36,"line":734},[34,267470,267471],{"class":181},"  updateTheme\n",[34,267473,267474],{"class":36,"line":742},[34,267475,647],{"class":181},[34,267477,267478,267480,267482],{"class":36,"line":748},[34,267479,2089],{"class":181},[34,267481,115970],{"class":177},[34,267483,1248],{"class":181},[34,267485,267486],{"class":36,"line":754},[34,267487,62],{"emptyLinePlaceholder":61},[34,267489,267490],{"class":36,"line":759},[34,267491,267492],{"class":40},"\u003C!-- Child/Descendant component -->\n",[34,267494,267495,267497,267499,267501],{"class":36,"line":771},[34,267496,815],{"class":181},[34,267498,115970],{"class":177},[34,267500,161305],{"class":47},[34,267502,1248],{"class":181},[34,267504,267505,267507,267510,267512],{"class":36,"line":794},[34,267506,581],{"class":580},[34,267508,267509],{"class":181}," { inject } ",[34,267511,587],{"class":580},[34,267513,264347],{"class":54},[34,267515,267516],{"class":36,"line":824},[34,267517,62],{"emptyLinePlaceholder":61},[34,267519,267520],{"class":36,"line":830},[34,267521,267522],{"class":40},"// Inject with default value\n",[34,267524,267525,267527,267529,267531,267533,267535,267537,267539,267541],{"class":36,"line":839},[34,267526,14676],{"class":580},[34,267528,157427],{"class":50},[34,267530,683],{"class":580},[34,267532,1526],{"class":47},[34,267534,1607],{"class":181},[34,267536,267426],{"class":54},[34,267538,1798],{"class":181},[34,267540,200655],{"class":54},[34,267542,3372],{"class":181},[34,267544,267545,267547,267549,267551,267553,267555,267557],{"class":36,"line":854},[34,267546,14676],{"class":580},[34,267548,267380],{"class":50},[34,267550,683],{"class":580},[34,267552,1526],{"class":47},[34,267554,1607],{"class":181},[34,267556,267438],{"class":54},[34,267558,3372],{"class":181},[34,267560,267561],{"class":36,"line":860},[34,267562,62],{"emptyLinePlaceholder":61},[34,267564,267565],{"class":36,"line":865},[34,267566,267567],{"class":40},"// Or inject object\n",[34,267569,267570,267572,267574,267576,267578,267581,267583,267585,267587,267589,267591],{"class":36,"line":870},[34,267571,14676],{"class":580},[34,267573,30251],{"class":181},[34,267575,200639],{"class":50},[34,267577,1798],{"class":181},[34,267579,267580],{"class":50},"updateTheme",[34,267582,34865],{"class":181},[34,267584,1301],{"class":580},[34,267586,1526],{"class":47},[34,267588,1607],{"class":181},[34,267590,267459],{"class":54},[34,267592,3372],{"class":181},[34,267594,267595,267597,267599],{"class":36,"line":876},[34,267596,2089],{"class":181},[34,267598,115970],{"class":177},[34,267600,1248],{"class":181},[388,267602,267603],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":267605},[267606],{"id":267321,"depth":44,"text":266240},"Provide / Inject in Vue.js.",{},{"title":266240,"description":267607},"vuejs/provide-inject",[161289,8606,982,983],"5VmP3BKwTfyrBNv6JOG2o3s2zKi9lq-b19tM6VoMutI",{"id":267614,"title":266201,"body":267615,"date":402,"description":268129,"extension":404,"meta":268130,"navigation":61,"order":58,"path":266200,"seo":268131,"stem":268132,"subject":264576,"tags":268133,"__hash__":268134},"topics/vuejs/reactive-state.md",{"type":8,"value":267616,"toc":268126},[267617,267620,268123],[11,267618,266201],{"id":267619},"reactive-state",[25,267621,267623],{"className":161287,"code":267622,"language":161289,"meta":30,"style":30},"\u003Cscript setup>\nimport { ref, reactive, computed, watch, watchEffect } from 'vue'\n\n// ref for primitives\nconst count = ref(0)\nconst name = ref('Vue')\n\n// Access/modify ref value\nconsole.log(count.value)\ncount.value++\n\n// reactive for objects\nconst state = reactive({\n  user: { name: 'John', age: 30 },\n  items: []\n})\n\n// Direct mutation\nstate.user.name = 'Jane'\nstate.items.push({ id: 1 })\n\n// Computed properties\nconst doubleCount = computed(() => count.value * 2)\n\n// Writable computed\nconst fullName = computed({\n  get: () => `${state.user.name}`,\n  set: (value) => { state.user.name = value }\n})\n\n// Watch single ref\nwatch(count, (newVal, oldVal) => {\n  console.log(`Count changed: ${oldVal} -> ${newVal}`)\n})\n\n// Watch reactive object property\nwatch(\n  () => state.user.name,\n  (newName) => console.log('Name changed:', newName)\n)\n\n// Watch multiple sources\nwatch([count, name], ([newCount, newName]) => {\n  console.log('Values:', newCount, newName)\n})\n\n// Immediate watch\nwatch(count, (val) => console.log(val), { immediate: true })\n\n// watchEffect - auto-tracks dependencies\nwatchEffect(() => {\n  console.log('Count is:', count.value)\n})\n\u003C/script>\n",[20,267624,267625,267635,267646,267650,267655,267671,267688,267692,267697,267706,267713,267717,267722,267735,267748,267753,267757,267761,267766,267776,267789,267793,267798,267820,267824,267829,267841,267865,267885,267889,267893,267898,267920,267942,267946,267950,267955,267961,267971,267994,267998,268002,268007,268027,268041,268045,268049,268054,268077,268081,268086,268097,268111,268115],{"__ignoreMap":30},[34,267626,267627,267629,267631,267633],{"class":36,"line":37},[34,267628,815],{"class":181},[34,267630,115970],{"class":177},[34,267632,161305],{"class":47},[34,267634,1248],{"class":181},[34,267636,267637,267639,267642,267644],{"class":36,"line":44},[34,267638,581],{"class":580},[34,267640,267641],{"class":181}," { ref, reactive, computed, watch, watchEffect } ",[34,267643,587],{"class":580},[34,267645,264347],{"class":54},[34,267647,267648],{"class":36,"line":58},[34,267649,62],{"emptyLinePlaceholder":61},[34,267651,267652],{"class":36,"line":65},[34,267653,267654],{"class":40},"// ref for primitives\n",[34,267656,267657,267659,267661,267663,267665,267667,267669],{"class":36,"line":71},[34,267658,14676],{"class":580},[34,267660,161661],{"class":50},[34,267662,683],{"class":580},[34,267664,162430],{"class":47},[34,267666,1607],{"class":181},[34,267668,2773],{"class":50},[34,267670,3372],{"class":181},[34,267672,267673,267675,267677,267679,267681,267683,267686],{"class":36,"line":77},[34,267674,14676],{"class":580},[34,267676,12323],{"class":50},[34,267678,683],{"class":580},[34,267680,162430],{"class":47},[34,267682,1607],{"class":181},[34,267684,267685],{"class":54},"'Vue'",[34,267687,3372],{"class":181},[34,267689,267690],{"class":36,"line":82},[34,267691,62],{"emptyLinePlaceholder":61},[34,267693,267694],{"class":36,"line":88},[34,267695,267696],{"class":40},"// Access/modify ref value\n",[34,267698,267699,267701,267703],{"class":36,"line":242},[34,267700,15183],{"class":181},[34,267702,2424],{"class":47},[34,267704,267705],{"class":181},"(count.value)\n",[34,267707,267708,267711],{"class":36,"line":250},[34,267709,267710],{"class":181},"count.value",[34,267712,108020],{"class":580},[34,267714,267715],{"class":36,"line":263},[34,267716,62],{"emptyLinePlaceholder":61},[34,267718,267719],{"class":36,"line":275},[34,267720,267721],{"class":40},"// reactive for objects\n",[34,267723,267724,267726,267728,267730,267733],{"class":36,"line":700},[34,267725,14676],{"class":580},[34,267727,186262],{"class":50},[34,267729,683],{"class":580},[34,267731,267732],{"class":47}," reactive",[34,267734,613],{"class":181},[34,267736,267737,267740,267742,267744,267746],{"class":36,"line":706},[34,267738,267739],{"class":181},"  user: { name: ",[34,267741,151425],{"class":54},[34,267743,83356],{"class":181},[34,267745,17625],{"class":50},[34,267747,14846],{"class":181},[34,267749,267750],{"class":36,"line":715},[34,267751,267752],{"class":181},"  items: []\n",[34,267754,267755],{"class":36,"line":725},[34,267756,647],{"class":181},[34,267758,267759],{"class":36,"line":734},[34,267760,62],{"emptyLinePlaceholder":61},[34,267762,267763],{"class":36,"line":742},[34,267764,267765],{"class":40},"// Direct mutation\n",[34,267767,267768,267771,267773],{"class":36,"line":748},[34,267769,267770],{"class":181},"state.user.name ",[34,267772,1301],{"class":580},[34,267774,267775],{"class":54}," 'Jane'\n",[34,267777,267778,267781,267783,267785,267787],{"class":36,"line":754},[34,267779,267780],{"class":181},"state.items.",[34,267782,50165],{"class":47},[34,267784,61154],{"class":181},[34,267786,8318],{"class":50},[34,267788,1502],{"class":181},[34,267790,267791],{"class":36,"line":759},[34,267792,62],{"emptyLinePlaceholder":61},[34,267794,267795],{"class":36,"line":771},[34,267796,267797],{"class":40},"// Computed properties\n",[34,267799,267800,267802,267804,267806,267808,267810,267812,267814,267816,267818],{"class":36,"line":794},[34,267801,14676],{"class":580},[34,267803,266386],{"class":50},[34,267805,683],{"class":580},[34,267807,4272],{"class":47},[34,267809,4275],{"class":181},[34,267811,3361],{"class":580},[34,267813,161732],{"class":181},[34,267815,4289],{"class":580},[34,267817,4292],{"class":50},[34,267819,3372],{"class":181},[34,267821,267822],{"class":36,"line":824},[34,267823,62],{"emptyLinePlaceholder":61},[34,267825,267826],{"class":36,"line":830},[34,267827,267828],{"class":40},"// Writable computed\n",[34,267830,267831,267833,267835,267837,267839],{"class":36,"line":839},[34,267832,14676],{"class":580},[34,267834,256355],{"class":50},[34,267836,683],{"class":580},[34,267838,4272],{"class":47},[34,267840,613],{"class":181},[34,267842,267843,267845,267847,267849,267851,267853,267855,267857,267859,267861,267863],{"class":36,"line":854},[34,267844,125440],{"class":47},[34,267846,3358],{"class":181},[34,267848,3361],{"class":580},[34,267850,60305],{"class":54},[34,267852,29410],{"class":181},[34,267854,151],{"class":54},[34,267856,3945],{"class":181},[34,267858,151],{"class":54},[34,267860,178],{"class":181},[34,267862,3925],{"class":54},[34,267864,624],{"class":181},[34,267866,267867,267869,267871,267873,267875,267877,267880,267882],{"class":36,"line":860},[34,267868,125487],{"class":47},[34,267870,162313],{"class":181},[34,267872,2871],{"class":675},[34,267874,4817],{"class":181},[34,267876,3361],{"class":580},[34,267878,267879],{"class":181}," { state.user.name ",[34,267881,1301],{"class":580},[34,267883,267884],{"class":181}," value }\n",[34,267886,267887],{"class":36,"line":865},[34,267888,647],{"class":181},[34,267890,267891],{"class":36,"line":870},[34,267892,62],{"emptyLinePlaceholder":61},[34,267894,267895],{"class":36,"line":876},[34,267896,267897],{"class":40},"// Watch single ref\n",[34,267899,267900,267903,267906,267909,267911,267914,267916,267918],{"class":36,"line":885},[34,267901,267902],{"class":47},"watch",[34,267904,267905],{"class":181},"(count, (",[34,267907,267908],{"class":675},"newVal",[34,267910,1798],{"class":181},[34,267912,267913],{"class":675},"oldVal",[34,267915,4817],{"class":181},[34,267917,3361],{"class":580},[34,267919,661],{"class":181},[34,267921,267922,267924,267926,267928,267931,267933,267936,267938,267940],{"class":36,"line":895},[34,267923,14929],{"class":181},[34,267925,2424],{"class":47},[34,267927,1607],{"class":181},[34,267929,267930],{"class":54},"`Count changed: ${",[34,267932,267913],{"class":181},[34,267934,267935],{"class":54},"} -> ${",[34,267937,267908],{"class":181},[34,267939,3925],{"class":54},[34,267941,3372],{"class":181},[34,267943,267944],{"class":36,"line":904},[34,267945,647],{"class":181},[34,267947,267948],{"class":36,"line":915},[34,267949,62],{"emptyLinePlaceholder":61},[34,267951,267952],{"class":36,"line":927},[34,267953,267954],{"class":40},"// Watch reactive object property\n",[34,267956,267957,267959],{"class":36,"line":932},[34,267958,267902],{"class":47},[34,267960,1882],{"class":181},[34,267962,267963,267966,267968],{"class":36,"line":944},[34,267964,267965],{"class":181},"  () ",[34,267967,3361],{"class":580},[34,267969,267970],{"class":181}," state.user.name,\n",[34,267972,267973,267975,267978,267980,267982,267984,267986,267988,267991],{"class":36,"line":966},[34,267974,151460],{"class":181},[34,267976,267977],{"class":675},"newName",[34,267979,4817],{"class":181},[34,267981,3361],{"class":580},[34,267983,4940],{"class":181},[34,267985,2424],{"class":47},[34,267987,1607],{"class":181},[34,267989,267990],{"class":54},"'Name changed:'",[34,267992,267993],{"class":181},", newName)\n",[34,267995,267996],{"class":36,"line":1948},[34,267997,3372],{"class":181},[34,267999,268000],{"class":36,"line":1953},[34,268001,62],{"emptyLinePlaceholder":61},[34,268003,268004],{"class":36,"line":3616},[34,268005,268006],{"class":40},"// Watch multiple sources\n",[34,268008,268009,268011,268014,268017,268019,268021,268023,268025],{"class":36,"line":3622},[34,268010,267902],{"class":47},[34,268012,268013],{"class":181},"([count, name], ([",[34,268015,268016],{"class":675},"newCount",[34,268018,1798],{"class":181},[34,268020,267977],{"class":675},[34,268022,193030],{"class":181},[34,268024,3361],{"class":580},[34,268026,661],{"class":181},[34,268028,268029,268031,268033,268035,268038],{"class":36,"line":3642},[34,268030,14929],{"class":181},[34,268032,2424],{"class":47},[34,268034,1607],{"class":181},[34,268036,268037],{"class":54},"'Values:'",[34,268039,268040],{"class":181},", newCount, newName)\n",[34,268042,268043],{"class":36,"line":3657},[34,268044,647],{"class":181},[34,268046,268047],{"class":36,"line":3663},[34,268048,62],{"emptyLinePlaceholder":61},[34,268050,268051],{"class":36,"line":3669},[34,268052,268053],{"class":40},"// Immediate watch\n",[34,268055,268056,268058,268060,268062,268064,268066,268068,268070,268073,268075],{"class":36,"line":3675},[34,268057,267902],{"class":47},[34,268059,267905],{"class":181},[34,268061,133329],{"class":675},[34,268063,4817],{"class":181},[34,268065,3361],{"class":580},[34,268067,4940],{"class":181},[34,268069,2424],{"class":47},[34,268071,268072],{"class":181},"(val), { immediate: ",[34,268074,632],{"class":50},[34,268076,1502],{"class":181},[34,268078,268079],{"class":36,"line":3693},[34,268080,62],{"emptyLinePlaceholder":61},[34,268082,268083],{"class":36,"line":3707},[34,268084,268085],{"class":40},"// watchEffect - auto-tracks dependencies\n",[34,268087,268088,268091,268093,268095],{"class":36,"line":3712},[34,268089,268090],{"class":47},"watchEffect",[34,268092,4275],{"class":181},[34,268094,3361],{"class":580},[34,268096,661],{"class":181},[34,268098,268099,268101,268103,268105,268108],{"class":36,"line":3717},[34,268100,14929],{"class":181},[34,268102,2424],{"class":47},[34,268104,1607],{"class":181},[34,268106,268107],{"class":54},"'Count is:'",[34,268109,268110],{"class":181},", count.value)\n",[34,268112,268113],{"class":36,"line":25776},[34,268114,647],{"class":181},[34,268116,268117,268119,268121],{"class":36,"line":49902},[34,268118,2089],{"class":181},[34,268120,115970],{"class":177},[34,268122,1248],{"class":181},[388,268124,268125],{},"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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":268127},[268128],{"id":267619,"depth":44,"text":266201},"Reactive State in Vue.js.",{},{"title":266201,"description":268129},"vuejs/reactive-state",[161289,8606,982,983],"_Twm7CJdX5yknxZFfoUwF1ReY7CEB7dfWfC3s0kVFoE",{"id":268136,"title":86523,"body":268137,"date":402,"description":268571,"extension":404,"meta":268572,"navigation":61,"order":275,"path":266245,"seo":268573,"stem":268574,"subject":264576,"tags":268575,"__hash__":268576},"topics/vuejs/slots.md",{"type":8,"value":268138,"toc":268568},[268139,268141,268566],[11,268140,86523],{"id":86522},[25,268142,268144],{"className":161287,"code":268143,"language":161289,"meta":30,"style":30},"\u003C!-- Parent using child with slots -->\n\u003Ctemplate>\n  \u003CCard>\n    \u003C!-- Default slot -->\n    \u003Cp>Main content\u003C/p>\n    \n    \u003C!-- Named slots -->\n    \u003Ctemplate #header>\n      \u003Ch1>Card Title\u003C/h1>\n    \u003C/template>\n    \n    \u003Ctemplate #footer>\n      \u003Cbutton>Action\u003C/button>\n    \u003C/template>\n    \n    \u003C!-- Scoped slot -->\n    \u003Ctemplate #item=\"{ item, index }\">\n      \u003Cli>{{ index }}: {{ item.name }}\u003C/li>\n    \u003C/template>\n  \u003C/Card>\n\u003C/template>\n\n\u003C!-- Card.vue (child with slots) -->\n\u003Ctemplate>\n  \u003Cdiv class=\"card\">\n    \u003Cheader>\n      \u003Cslot name=\"header\">\u003C/slot>\n    \u003C/header>\n    \n    \u003Cmain>\n      \u003Cslot>\u003C/slot> \u003C!-- Default slot -->\n    \u003C/main>\n    \n    \u003Cul>\n      \u003Cslot \n        v-for=\"(item, index) in items\" \n        name=\"item\" \n        :item=\"item\" \n        :index=\"index\"\n      >\u003C/slot>\n    \u003C/ul>\n    \n    \u003Cfooter>\n      \u003Cslot name=\"footer\">Default footer\u003C/slot>\n    \u003C/footer>\n  \u003C/div>\n\u003C/template>\n",[20,268145,268146,268151,268159,268167,268172,268185,268189,268194,268206,268218,268226,268230,268242,268255,268263,268267,268272,268293,268306,268314,268322,268330,268334,268339,268347,268361,268369,268388,268396,268400,268408,268423,268431,268435,268443,268451,268462,268472,268483,268493,268502,268510,268514,268522,268542,268550,268558],{"__ignoreMap":30},[34,268147,268148],{"class":36,"line":37},[34,268149,268150],{"class":40},"\u003C!-- Parent using child with slots -->\n",[34,268152,268153,268155,268157],{"class":36,"line":44},[34,268154,815],{"class":181},[34,268156,8517],{"class":177},[34,268158,1248],{"class":181},[34,268160,268161,268163,268165],{"class":36,"line":58},[34,268162,1181],{"class":181},[34,268164,59968],{"class":177},[34,268166,1248],{"class":181},[34,268168,268169],{"class":36,"line":65},[34,268170,268171],{"class":40},"    \u003C!-- Default slot -->\n",[34,268173,268174,268176,268178,268181,268183],{"class":36,"line":71},[34,268175,1294],{"class":181},[34,268177,16],{"class":177},[34,268179,268180],{"class":181},">Main content\u003C/",[34,268182,16],{"class":177},[34,268184,1248],{"class":181},[34,268186,268187],{"class":36,"line":77},[34,268188,3666],{"class":181},[34,268190,268191],{"class":36,"line":82},[34,268192,268193],{"class":40},"    \u003C!-- Named slots -->\n",[34,268195,268196,268198,268200,268202,268204],{"class":36,"line":88},[34,268197,1294],{"class":181},[34,268199,8517],{"class":177},[34,268201,161518],{"class":181},[34,268203,85863],{"class":47},[34,268205,1248],{"class":181},[34,268207,268208,268210,268212,268214,268216],{"class":36,"line":242},[34,268209,85662],{"class":181},[34,268211,8535],{"class":177},[34,268213,244399],{"class":181},[34,268215,8535],{"class":177},[34,268217,1248],{"class":181},[34,268219,268220,268222,268224],{"class":36,"line":250},[34,268221,74431],{"class":181},[34,268223,8517],{"class":177},[34,268225,1248],{"class":181},[34,268227,268228],{"class":36,"line":263},[34,268229,3666],{"class":181},[34,268231,268232,268234,268236,268238,268240],{"class":36,"line":275},[34,268233,1294],{"class":181},[34,268235,8517],{"class":177},[34,268237,161518],{"class":181},[34,268239,118821],{"class":47},[34,268241,1248],{"class":181},[34,268243,268244,268246,268248,268251,268253],{"class":36,"line":700},[34,268245,85662],{"class":181},[34,268247,4509],{"class":177},[34,268249,268250],{"class":181},">Action\u003C/",[34,268252,4509],{"class":177},[34,268254,1248],{"class":181},[34,268256,268257,268259,268261],{"class":36,"line":706},[34,268258,74431],{"class":181},[34,268260,8517],{"class":177},[34,268262,1248],{"class":181},[34,268264,268265],{"class":36,"line":715},[34,268266,3666],{"class":181},[34,268268,268269],{"class":36,"line":725},[34,268270,268271],{"class":40},"    \u003C!-- Scoped slot -->\n",[34,268273,268274,268276,268278,268280,268282,268284,268286,268289,268291],{"class":36,"line":734},[34,268275,1294],{"class":181},[34,268277,8517],{"class":177},[34,268279,161518],{"class":181},[34,268281,4935],{"class":47},[34,268283,1301],{"class":181},[34,268285,10389],{"class":54},[34,268287,268288],{"class":181},"{ item, index }",[34,268290,10389],{"class":54},[34,268292,1248],{"class":181},[34,268294,268295,268297,268299,268302,268304],{"class":36,"line":742},[34,268296,85662],{"class":181},[34,268298,312],{"class":177},[34,268300,268301],{"class":181},">{{ index }}: {{ item.name }}\u003C/",[34,268303,312],{"class":177},[34,268305,1248],{"class":181},[34,268307,268308,268310,268312],{"class":36,"line":748},[34,268309,74431],{"class":181},[34,268311,8517],{"class":177},[34,268313,1248],{"class":181},[34,268315,268316,268318,268320],{"class":36,"line":754},[34,268317,8547],{"class":181},[34,268319,59968],{"class":177},[34,268321,1248],{"class":181},[34,268323,268324,268326,268328],{"class":36,"line":759},[34,268325,2089],{"class":181},[34,268327,8517],{"class":177},[34,268329,1248],{"class":181},[34,268331,268332],{"class":36,"line":771},[34,268333,62],{"emptyLinePlaceholder":61},[34,268335,268336],{"class":36,"line":794},[34,268337,268338],{"class":40},"\u003C!-- Card.vue (child with slots) -->\n",[34,268340,268341,268343,268345],{"class":36,"line":824},[34,268342,815],{"class":181},[34,268344,8517],{"class":177},[34,268346,1248],{"class":181},[34,268348,268349,268351,268353,268355,268357,268359],{"class":36,"line":830},[34,268350,1181],{"class":181},[34,268352,1240],{"class":177},[34,268354,655],{"class":47},[34,268356,1301],{"class":181},[34,268358,199165],{"class":54},[34,268360,1248],{"class":181},[34,268362,268363,268365,268367],{"class":36,"line":839},[34,268364,1294],{"class":181},[34,268366,85863],{"class":177},[34,268368,1248],{"class":181},[34,268370,268371,268373,268375,268377,268379,268382,268384,268386],{"class":36,"line":854},[34,268372,85662],{"class":181},[34,268374,161388],{"class":177},[34,268376,12323],{"class":47},[34,268378,1301],{"class":181},[34,268380,268381],{"class":54},"\"header\"",[34,268383,2050],{"class":181},[34,268385,161388],{"class":177},[34,268387,1248],{"class":181},[34,268389,268390,268392,268394],{"class":36,"line":860},[34,268391,74431],{"class":181},[34,268393,85863],{"class":177},[34,268395,1248],{"class":181},[34,268397,268398],{"class":36,"line":865},[34,268399,3666],{"class":181},[34,268401,268402,268404,268406],{"class":36,"line":870},[34,268403,1294],{"class":181},[34,268405,8526],{"class":177},[34,268407,1248],{"class":181},[34,268409,268410,268412,268414,268416,268418,268420],{"class":36,"line":876},[34,268411,85662],{"class":181},[34,268413,161388],{"class":177},[34,268415,2050],{"class":181},[34,268417,161388],{"class":177},[34,268419,32840],{"class":181},[34,268421,268422],{"class":40},"\u003C!-- Default slot -->\n",[34,268424,268425,268427,268429],{"class":36,"line":885},[34,268426,74431],{"class":181},[34,268428,8526],{"class":177},[34,268430,1248],{"class":181},[34,268432,268433],{"class":36,"line":895},[34,268434,3666],{"class":181},[34,268436,268437,268439,268441],{"class":36,"line":904},[34,268438,1294],{"class":181},[34,268440,309],{"class":177},[34,268442,1248],{"class":181},[34,268444,268445,268447,268449],{"class":36,"line":915},[34,268446,85662],{"class":181},[34,268448,161388],{"class":177},[34,268450,526],{"class":181},[34,268452,268453,268456,268458,268460],{"class":36,"line":927},[34,268454,268455],{"class":47},"        v-for",[34,268457,1301],{"class":181},[34,268459,265992],{"class":54},[34,268461,526],{"class":181},[34,268463,268464,268466,268468,268470],{"class":36,"line":932},[34,268465,5139],{"class":47},[34,268467,1301],{"class":181},[34,268469,121358],{"class":54},[34,268471,526],{"class":181},[34,268473,268474,268477,268479,268481],{"class":36,"line":944},[34,268475,268476],{"class":47},"        :item",[34,268478,1301],{"class":181},[34,268480,121358],{"class":54},[34,268482,526],{"class":181},[34,268484,268485,268488,268490],{"class":36,"line":966},[34,268486,268487],{"class":47},"        :index",[34,268489,1301],{"class":181},[34,268491,268492],{"class":54},"\"index\"\n",[34,268494,268495,268498,268500],{"class":36,"line":1948},[34,268496,268497],{"class":181},"      >\u003C/",[34,268499,161388],{"class":177},[34,268501,1248],{"class":181},[34,268503,268504,268506,268508],{"class":36,"line":1953},[34,268505,74431],{"class":181},[34,268507,309],{"class":177},[34,268509,1248],{"class":181},[34,268511,268512],{"class":36,"line":3616},[34,268513,3666],{"class":181},[34,268515,268516,268518,268520],{"class":36,"line":3622},[34,268517,1294],{"class":181},[34,268519,118821],{"class":177},[34,268521,1248],{"class":181},[34,268523,268524,268526,268528,268530,268532,268535,268538,268540],{"class":36,"line":3642},[34,268525,85662],{"class":181},[34,268527,161388],{"class":177},[34,268529,12323],{"class":47},[34,268531,1301],{"class":181},[34,268533,268534],{"class":54},"\"footer\"",[34,268536,268537],{"class":181},">Default footer\u003C/",[34,268539,161388],{"class":177},[34,268541,1248],{"class":181},[34,268543,268544,268546,268548],{"class":36,"line":3657},[34,268545,74431],{"class":181},[34,268547,118821],{"class":177},[34,268549,1248],{"class":181},[34,268551,268552,268554,268556],{"class":36,"line":3663},[34,268553,8547],{"class":181},[34,268555,1240],{"class":177},[34,268557,1248],{"class":181},[34,268559,268560,268562,268564],{"class":36,"line":3669},[34,268561,2089],{"class":181},[34,268563,8517],{"class":177},[34,268565,1248],{"class":181},[388,268567,1418],{},{"title":30,"searchDepth":44,"depth":44,"links":268569},[268570],{"id":86522,"depth":44,"text":86523},"Slots in Vue.js.",{},{"title":86523,"description":268571},"vuejs/slots",[161289,8606,982,983],"RySTBWNK2-nzUwsYZ7p2RhhW8-qYirl-rIzWTwzRyfc",{"id":268578,"title":266267,"body":268579,"date":402,"description":268740,"extension":404,"meta":268741,"navigation":61,"order":725,"path":266266,"seo":268742,"stem":268743,"subject":264576,"tags":268744,"__hash__":268745},"topics/vuejs/teleport.md",{"type":8,"value":268580,"toc":268737},[268581,268584,268735],[11,268582,266267],{"id":268583},"teleport",[25,268585,268587],{"className":161287,"code":268586,"language":161289,"meta":30,"style":30},"\u003Ctemplate>\n  \u003C!-- Render modal at body level -->\n  \u003CTeleport to=\"body\">\n    \u003Cdiv v-if=\"showModal\" class=\"modal\">\n      \u003Ch2>Modal Title\u003C/h2>\n      \u003Cbutton @click=\"showModal = false\">Close\u003C/button>\n    \u003C/div>\n  \u003C/Teleport>\n  \n  \u003C!-- Teleport to specific element -->\n  \u003CTeleport to=\"#modals\">\n    \u003CNotification />\n  \u003C/Teleport>\n\u003C/template>\n",[20,268588,268589,268597,268602,268617,268638,268651,268670,268678,268686,268690,268695,268710,268719,268727],{"__ignoreMap":30},[34,268590,268591,268593,268595],{"class":36,"line":37},[34,268592,815],{"class":181},[34,268594,8517],{"class":177},[34,268596,1248],{"class":181},[34,268598,268599],{"class":36,"line":44},[34,268600,268601],{"class":40},"  \u003C!-- Render modal at body level -->\n",[34,268603,268604,268606,268608,268610,268612,268615],{"class":36,"line":58},[34,268605,1181],{"class":181},[34,268607,266267],{"class":177},[34,268609,164967],{"class":47},[34,268611,1301],{"class":181},[34,268613,268614],{"class":54},"\"body\"",[34,268616,1248],{"class":181},[34,268618,268619,268621,268623,268625,268627,268630,268632,268634,268636],{"class":36,"line":65},[34,268620,1294],{"class":181},[34,268622,1240],{"class":177},[34,268624,161586],{"class":47},[34,268626,1301],{"class":181},[34,268628,268629],{"class":54},"\"showModal\"",[34,268631,655],{"class":47},[34,268633,1301],{"class":181},[34,268635,230316],{"class":54},[34,268637,1248],{"class":181},[34,268639,268640,268642,268644,268647,268649],{"class":36,"line":71},[34,268641,85662],{"class":181},[34,268643,11],{"class":177},[34,268645,268646],{"class":181},">Modal Title\u003C/",[34,268648,11],{"class":177},[34,268650,1248],{"class":181},[34,268652,268653,268655,268657,268659,268661,268664,268666,268668],{"class":36,"line":77},[34,268654,85662],{"class":181},[34,268656,4509],{"class":177},[34,268658,264817],{"class":47},[34,268660,1301],{"class":181},[34,268662,268663],{"class":54},"\"showModal = false\"",[34,268665,117590],{"class":181},[34,268667,4509],{"class":177},[34,268669,1248],{"class":181},[34,268671,268672,268674,268676],{"class":36,"line":82},[34,268673,74431],{"class":181},[34,268675,1240],{"class":177},[34,268677,1248],{"class":181},[34,268679,268680,268682,268684],{"class":36,"line":88},[34,268681,8547],{"class":181},[34,268683,266267],{"class":177},[34,268685,1248],{"class":181},[34,268687,268688],{"class":36,"line":242},[34,268689,827],{"class":181},[34,268691,268692],{"class":36,"line":250},[34,268693,268694],{"class":40},"  \u003C!-- Teleport to specific element -->\n",[34,268696,268697,268699,268701,268703,268705,268708],{"class":36,"line":263},[34,268698,1181],{"class":181},[34,268700,266267],{"class":177},[34,268702,164967],{"class":47},[34,268704,1301],{"class":181},[34,268706,268707],{"class":54},"\"#modals\"",[34,268709,1248],{"class":181},[34,268711,268712,268714,268717],{"class":36,"line":275},[34,268713,1294],{"class":181},[34,268715,268716],{"class":177},"Notification",[34,268718,1187],{"class":181},[34,268720,268721,268723,268725],{"class":36,"line":700},[34,268722,8547],{"class":181},[34,268724,266267],{"class":177},[34,268726,1248],{"class":181},[34,268728,268729,268731,268733],{"class":36,"line":706},[34,268730,2089],{"class":181},[34,268732,8517],{"class":177},[34,268734,1248],{"class":181},[388,268736,118633],{},{"title":30,"searchDepth":44,"depth":44,"links":268738},[268739],{"id":268583,"depth":44,"text":266267},"Teleport in Vue.js.",{},{"title":266267,"description":268740},"vuejs/teleport",[161289,8606,982,983],"EVqEbSjHxBYkYIwTnO2oNFyiJyQjWITeZZ75ZHdbNgQ",{"id":268747,"title":266230,"body":268748,"date":402,"description":268943,"extension":404,"meta":268944,"navigation":61,"order":242,"path":266229,"seo":268945,"stem":268946,"subject":264576,"tags":268947,"__hash__":268948},"topics/vuejs/template-refs.md",{"type":8,"value":268749,"toc":268940},[268750,268753,268938],[11,268751,266230],{"id":268752},"template-refs",[25,268754,268756],{"className":161287,"code":268755,"language":161289,"meta":30,"style":30},"\u003Cscript setup>\nimport { ref, onMounted } from 'vue'\n\n// DOM element ref\nconst inputRef = ref(null)\n\n// Component ref\nconst childRef = ref(null)\n\nonMounted(() => {\n  // Access DOM element\n  inputRef.value.focus()\n  \n  // Access child component methods/properties\n  childRef.value.someMethod()\n})\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cinput ref=\"inputRef\">\n  \u003CChildComponent ref=\"childRef\" />\n\u003C/template>\n",[20,268757,268758,268768,268779,268783,268788,268804,268808,268813,268830,268834,268844,268849,268858,268862,268867,268876,268880,268888,268892,268900,268915,268930],{"__ignoreMap":30},[34,268759,268760,268762,268764,268766],{"class":36,"line":37},[34,268761,815],{"class":181},[34,268763,115970],{"class":177},[34,268765,161305],{"class":47},[34,268767,1248],{"class":181},[34,268769,268770,268772,268775,268777],{"class":36,"line":44},[34,268771,581],{"class":580},[34,268773,268774],{"class":181}," { ref, onMounted } ",[34,268776,587],{"class":580},[34,268778,264347],{"class":54},[34,268780,268781],{"class":36,"line":58},[34,268782,62],{"emptyLinePlaceholder":61},[34,268784,268785],{"class":36,"line":65},[34,268786,268787],{"class":40},"// DOM element ref\n",[34,268789,268790,268792,268794,268796,268798,268800,268802],{"class":36,"line":71},[34,268791,14676],{"class":580},[34,268793,201982],{"class":50},[34,268795,683],{"class":580},[34,268797,162430],{"class":47},[34,268799,1607],{"class":181},[34,268801,111592],{"class":50},[34,268803,3372],{"class":181},[34,268805,268806],{"class":36,"line":77},[34,268807,62],{"emptyLinePlaceholder":61},[34,268809,268810],{"class":36,"line":82},[34,268811,268812],{"class":40},"// Component ref\n",[34,268814,268815,268817,268820,268822,268824,268826,268828],{"class":36,"line":88},[34,268816,14676],{"class":580},[34,268818,268819],{"class":50}," childRef",[34,268821,683],{"class":580},[34,268823,162430],{"class":47},[34,268825,1607],{"class":181},[34,268827,111592],{"class":50},[34,268829,3372],{"class":181},[34,268831,268832],{"class":36,"line":242},[34,268833,62],{"emptyLinePlaceholder":61},[34,268835,268836,268838,268840,268842],{"class":36,"line":250},[34,268837,265694],{"class":47},[34,268839,4275],{"class":181},[34,268841,3361],{"class":580},[34,268843,661],{"class":181},[34,268845,268846],{"class":36,"line":263},[34,268847,268848],{"class":40},"  // Access DOM element\n",[34,268850,268851,268854,268856],{"class":36,"line":275},[34,268852,268853],{"class":181},"  inputRef.value.",[34,268855,4906],{"class":47},[34,268857,33899],{"class":181},[34,268859,268860],{"class":36,"line":700},[34,268861,827],{"class":181},[34,268863,268864],{"class":36,"line":706},[34,268865,268866],{"class":40},"  // Access child component methods/properties\n",[34,268868,268869,268872,268874],{"class":36,"line":715},[34,268870,268871],{"class":181},"  childRef.value.",[34,268873,4918],{"class":47},[34,268875,33899],{"class":181},[34,268877,268878],{"class":36,"line":725},[34,268879,647],{"class":181},[34,268881,268882,268884,268886],{"class":36,"line":734},[34,268883,2089],{"class":181},[34,268885,115970],{"class":177},[34,268887,1248],{"class":181},[34,268889,268890],{"class":36,"line":742},[34,268891,62],{"emptyLinePlaceholder":61},[34,268893,268894,268896,268898],{"class":36,"line":748},[34,268895,815],{"class":181},[34,268897,8517],{"class":177},[34,268899,1248],{"class":181},[34,268901,268902,268904,268906,268908,268910,268913],{"class":36,"line":754},[34,268903,1181],{"class":181},[34,268905,4600],{"class":177},[34,268907,162430],{"class":47},[34,268909,1301],{"class":181},[34,268911,268912],{"class":54},"\"inputRef\"",[34,268914,1248],{"class":181},[34,268916,268917,268919,268921,268923,268925,268928],{"class":36,"line":759},[34,268918,1181],{"class":181},[34,268920,239151],{"class":177},[34,268922,162430],{"class":47},[34,268924,1301],{"class":181},[34,268926,268927],{"class":54},"\"childRef\"",[34,268929,1187],{"class":181},[34,268931,268932,268934,268936],{"class":36,"line":771},[34,268933,2089],{"class":181},[34,268935,8517],{"class":177},[34,268937,1248],{"class":181},[388,268939,264567],{},{"title":30,"searchDepth":44,"depth":44,"links":268941},[268942],{"id":268752,"depth":44,"text":266230},"Template Refs in Vue.js.",{},{"title":266230,"description":268943},"vuejs/template-refs",[161289,8606,982,983],"k3744FkRrKGkijthgG6OGa03O4JdxE1c_uLrP2WwkGM",{"id":268950,"title":2574,"body":268951,"date":402,"description":269445,"extension":404,"meta":269446,"navigation":61,"order":65,"path":266206,"seo":269447,"stem":269448,"subject":264576,"tags":269449,"__hash__":269450},"topics/vuejs/template-syntax.md",{"type":8,"value":268952,"toc":269442},[268953,268955,269440],[11,268954,2574],{"id":4420},[25,268956,268958],{"className":161287,"code":268957,"language":161289,"meta":30,"style":30},"\u003Ctemplate>\n  \u003C!-- Text interpolation -->\n  \u003Cp>{{ message }}\u003C/p>\n  \u003Cp>{{ user.name }}\u003C/p>\n  \u003Cp>{{ formatDate(date) }}\u003C/p>\n  \n  \u003C!-- Raw HTML -->\n  \u003Cdiv v-html=\"rawHtml\">\u003C/div>\n  \n  \u003C!-- Attribute binding -->\n  \u003Cimg :src=\"imageUrl\" :alt=\"imageAlt\">\n  \u003Cbutton :disabled=\"isDisabled\">Click\u003C/button>\n  \n  \u003C!-- Dynamic attribute name -->\n  \u003Ca :[attributeName]=\"url\">Link\u003C/a>\n  \n  \u003C!-- Class binding -->\n  \u003Cdiv :class=\"{ active: isActive, disabled: isDisabled }\">\u003C/div>\n  \u003Cdiv :class=\"[baseClass, { active: isActive }]\">\u003C/div>\n  \n  \u003C!-- Style binding -->\n  \u003Cdiv :style=\"{ color: textColor, fontSize: size + 'px' }\">\u003C/div>\n  \u003Cdiv :style=\"[baseStyles, overrideStyles]\">\u003C/div>\n  \n  \u003C!-- Event handling -->\n  \u003Cbutton @click=\"handleClick\">Click\u003C/button>\n  \u003Cbutton @click=\"count++\">Increment\u003C/button>\n  \u003Cinput @input=\"onInput($event)\">\n  \u003Cform @submit.prevent=\"onSubmit\">\n  \n  \u003C!-- Event modifiers -->\n  \u003Cbutton @click.stop=\"onClick\">Stop propagation\u003C/button>\n  \u003Cbutton @click.once=\"onClick\">Only once\u003C/button>\n  \u003Cinput @keyup.enter=\"submit\">\n  \n  \u003C!-- Two-way binding -->\n  \u003Cinput v-model=\"message\">\n  \u003Cinput v-model.trim=\"message\">\n  \u003Cinput v-model.number=\"age\" type=\"number\">\n  \u003Cinput v-model.lazy=\"message\">\n\u003C/template>\n",[20,268959,268960,268968,268973,268985,268997,269010,269014,269019,269039,269043,269048,269070,269089,269093,269098,269118,269122,269127,269147,269166,269170,269175,269195,269214,269218,269223,269241,269261,269276,269292,269296,269301,269322,269342,269357,269361,269366,269381,269396,269417,269432],{"__ignoreMap":30},[34,268961,268962,268964,268966],{"class":36,"line":37},[34,268963,815],{"class":181},[34,268965,8517],{"class":177},[34,268967,1248],{"class":181},[34,268969,268970],{"class":36,"line":44},[34,268971,268972],{"class":40},"  \u003C!-- Text interpolation -->\n",[34,268974,268975,268977,268979,268981,268983],{"class":36,"line":58},[34,268976,1181],{"class":181},[34,268978,16],{"class":177},[34,268980,4439],{"class":181},[34,268982,16],{"class":177},[34,268984,1248],{"class":181},[34,268986,268987,268989,268991,268993,268995],{"class":36,"line":65},[34,268988,1181],{"class":181},[34,268990,16],{"class":177},[34,268992,2023],{"class":181},[34,268994,16],{"class":177},[34,268996,1248],{"class":181},[34,268998,268999,269001,269003,269006,269008],{"class":36,"line":71},[34,269000,1181],{"class":181},[34,269002,16],{"class":177},[34,269004,269005],{"class":181},">{{ formatDate(date) }}\u003C/",[34,269007,16],{"class":177},[34,269009,1248],{"class":181},[34,269011,269012],{"class":36,"line":77},[34,269013,827],{"class":181},[34,269015,269016],{"class":36,"line":82},[34,269017,269018],{"class":40},"  \u003C!-- Raw HTML -->\n",[34,269020,269021,269023,269025,269028,269030,269033,269035,269037],{"class":36,"line":88},[34,269022,1181],{"class":181},[34,269024,1240],{"class":177},[34,269026,269027],{"class":47}," v-html",[34,269029,1301],{"class":181},[34,269031,269032],{"class":54},"\"rawHtml\"",[34,269034,2050],{"class":181},[34,269036,1240],{"class":177},[34,269038,1248],{"class":181},[34,269040,269041],{"class":36,"line":242},[34,269042,827],{"class":181},[34,269044,269045],{"class":36,"line":250},[34,269046,269047],{"class":40},"  \u003C!-- Attribute binding -->\n",[34,269049,269050,269052,269054,269057,269059,269061,269064,269066,269068],{"class":36,"line":263},[34,269051,1181],{"class":181},[34,269053,4484],{"class":177},[34,269055,269056],{"class":47}," :src",[34,269058,1301],{"class":181},[34,269060,4492],{"class":54},[34,269062,269063],{"class":47}," :alt",[34,269065,1301],{"class":181},[34,269067,4500],{"class":54},[34,269069,1248],{"class":181},[34,269071,269072,269074,269076,269079,269081,269083,269085,269087],{"class":36,"line":275},[34,269073,1181],{"class":181},[34,269075,4509],{"class":177},[34,269077,269078],{"class":47}," :disabled",[34,269080,1301],{"class":181},[34,269082,4517],{"class":54},[34,269084,4520],{"class":181},[34,269086,4509],{"class":177},[34,269088,1248],{"class":181},[34,269090,269091],{"class":36,"line":700},[34,269092,827],{"class":181},[34,269094,269095],{"class":36,"line":706},[34,269096,269097],{"class":40},"  \u003C!-- Dynamic attribute name -->\n",[34,269099,269100,269102,269104,269107,269109,269111,269114,269116],{"class":36,"line":715},[34,269101,1181],{"class":181},[34,269103,145],{"class":177},[34,269105,269106],{"class":47}," :[attributeName]",[34,269108,1301],{"class":181},[34,269110,116314],{"class":54},[34,269112,269113],{"class":181},">Link\u003C/",[34,269115,145],{"class":177},[34,269117,1248],{"class":181},[34,269119,269120],{"class":36,"line":725},[34,269121,827],{"class":181},[34,269123,269124],{"class":36,"line":734},[34,269125,269126],{"class":40},"  \u003C!-- Class binding -->\n",[34,269128,269129,269131,269133,269136,269138,269141,269143,269145],{"class":36,"line":742},[34,269130,1181],{"class":181},[34,269132,1240],{"class":177},[34,269134,269135],{"class":47}," :class",[34,269137,1301],{"class":181},[34,269139,269140],{"class":54},"\"{ active: isActive, disabled: isDisabled }\"",[34,269142,2050],{"class":181},[34,269144,1240],{"class":177},[34,269146,1248],{"class":181},[34,269148,269149,269151,269153,269155,269157,269160,269162,269164],{"class":36,"line":748},[34,269150,1181],{"class":181},[34,269152,1240],{"class":177},[34,269154,269135],{"class":47},[34,269156,1301],{"class":181},[34,269158,269159],{"class":54},"\"[baseClass, { active: isActive }]\"",[34,269161,2050],{"class":181},[34,269163,1240],{"class":177},[34,269165,1248],{"class":181},[34,269167,269168],{"class":36,"line":754},[34,269169,827],{"class":181},[34,269171,269172],{"class":36,"line":759},[34,269173,269174],{"class":40},"  \u003C!-- Style binding -->\n",[34,269176,269177,269179,269181,269184,269186,269189,269191,269193],{"class":36,"line":771},[34,269178,1181],{"class":181},[34,269180,1240],{"class":177},[34,269182,269183],{"class":47}," :style",[34,269185,1301],{"class":181},[34,269187,269188],{"class":54},"\"{ color: textColor, fontSize: size + 'px' }\"",[34,269190,2050],{"class":181},[34,269192,1240],{"class":177},[34,269194,1248],{"class":181},[34,269196,269197,269199,269201,269203,269205,269208,269210,269212],{"class":36,"line":794},[34,269198,1181],{"class":181},[34,269200,1240],{"class":177},[34,269202,269183],{"class":47},[34,269204,1301],{"class":181},[34,269206,269207],{"class":54},"\"[baseStyles, overrideStyles]\"",[34,269209,2050],{"class":181},[34,269211,1240],{"class":177},[34,269213,1248],{"class":181},[34,269215,269216],{"class":36,"line":824},[34,269217,827],{"class":181},[34,269219,269220],{"class":36,"line":830},[34,269221,269222],{"class":40},"  \u003C!-- Event handling -->\n",[34,269224,269225,269227,269229,269231,269233,269235,269237,269239],{"class":36,"line":839},[34,269226,1181],{"class":181},[34,269228,4509],{"class":177},[34,269230,264817],{"class":47},[34,269232,1301],{"class":181},[34,269234,264822],{"class":54},[34,269236,4520],{"class":181},[34,269238,4509],{"class":177},[34,269240,1248],{"class":181},[34,269242,269243,269245,269247,269249,269251,269254,269257,269259],{"class":36,"line":854},[34,269244,1181],{"class":181},[34,269246,4509],{"class":177},[34,269248,264817],{"class":47},[34,269250,1301],{"class":181},[34,269252,269253],{"class":54},"\"count++\"",[34,269255,269256],{"class":181},">Increment\u003C/",[34,269258,4509],{"class":177},[34,269260,1248],{"class":181},[34,269262,269263,269265,269267,269270,269272,269274],{"class":36,"line":860},[34,269264,1181],{"class":181},[34,269266,4600],{"class":177},[34,269268,269269],{"class":47}," @input",[34,269271,1301],{"class":181},[34,269273,4608],{"class":54},[34,269275,1248],{"class":181},[34,269277,269278,269280,269282,269285,269287,269290],{"class":36,"line":865},[34,269279,1181],{"class":181},[34,269281,4617],{"class":177},[34,269283,269284],{"class":47}," @submit.prevent",[34,269286,1301],{"class":181},[34,269288,269289],{"class":54},"\"onSubmit\"",[34,269291,1248],{"class":181},[34,269293,269294],{"class":36,"line":870},[34,269295,827],{"class":181},[34,269297,269298],{"class":36,"line":876},[34,269299,269300],{"class":40},"  \u003C!-- Event modifiers -->\n",[34,269302,269303,269305,269307,269310,269312,269315,269318,269320],{"class":36,"line":885},[34,269304,1181],{"class":181},[34,269306,4509],{"class":177},[34,269308,269309],{"class":47}," @click.stop",[34,269311,1301],{"class":181},[34,269313,269314],{"class":54},"\"onClick\"",[34,269316,269317],{"class":181},">Stop propagation\u003C/",[34,269319,4509],{"class":177},[34,269321,1248],{"class":181},[34,269323,269324,269326,269328,269331,269333,269335,269338,269340],{"class":36,"line":895},[34,269325,1181],{"class":181},[34,269327,4509],{"class":177},[34,269329,269330],{"class":47}," @click.once",[34,269332,1301],{"class":181},[34,269334,269314],{"class":54},[34,269336,269337],{"class":181},">Only once\u003C/",[34,269339,4509],{"class":177},[34,269341,1248],{"class":181},[34,269343,269344,269346,269348,269351,269353,269355],{"class":36,"line":904},[34,269345,1181],{"class":181},[34,269347,4600],{"class":177},[34,269349,269350],{"class":47}," @keyup.enter",[34,269352,1301],{"class":181},[34,269354,74790],{"class":54},[34,269356,1248],{"class":181},[34,269358,269359],{"class":36,"line":915},[34,269360,827],{"class":181},[34,269362,269363],{"class":36,"line":927},[34,269364,269365],{"class":40},"  \u003C!-- Two-way binding -->\n",[34,269367,269368,269370,269372,269375,269377,269379],{"class":36,"line":932},[34,269369,1181],{"class":181},[34,269371,4600],{"class":177},[34,269373,269374],{"class":47}," v-model",[34,269376,1301],{"class":181},[34,269378,49358],{"class":54},[34,269380,1248],{"class":181},[34,269382,269383,269385,269387,269390,269392,269394],{"class":36,"line":944},[34,269384,1181],{"class":181},[34,269386,4600],{"class":177},[34,269388,269389],{"class":47}," v-model.trim",[34,269391,1301],{"class":181},[34,269393,49358],{"class":54},[34,269395,1248],{"class":181},[34,269397,269398,269400,269402,269405,269407,269409,269411,269413,269415],{"class":36,"line":966},[34,269399,1181],{"class":181},[34,269401,4600],{"class":177},[34,269403,269404],{"class":47}," v-model.number",[34,269406,1301],{"class":181},[34,269408,58524],{"class":54},[34,269410,62326],{"class":47},[34,269412,1301],{"class":181},[34,269414,83832],{"class":54},[34,269416,1248],{"class":181},[34,269418,269419,269421,269423,269426,269428,269430],{"class":36,"line":1948},[34,269420,1181],{"class":181},[34,269422,4600],{"class":177},[34,269424,269425],{"class":47}," v-model.lazy",[34,269427,1301],{"class":181},[34,269429,49358],{"class":54},[34,269431,1248],{"class":181},[34,269433,269434,269436,269438],{"class":36,"line":1953},[34,269435,2089],{"class":181},[34,269437,8517],{"class":177},[34,269439,1248],{"class":181},[388,269441,118633],{},{"title":30,"searchDepth":44,"depth":44,"links":269443},[269444],{"id":4420,"depth":44,"text":2574},"Template Syntax in Vue.js.",{},{"title":2574,"description":269445},"vuejs/template-syntax",[161289,8606,982,983],"YvVqFdgYEy3oI7Hll2TMMS525ed0sAoTtWNoKtja1kU",{"id":269452,"title":266251,"body":269453,"date":402,"description":270023,"extension":404,"meta":270024,"navigation":61,"order":700,"path":266250,"seo":270025,"stem":270026,"subject":264576,"tags":270027,"__hash__":270028},"topics/vuejs/vue-router.md",{"type":8,"value":269454,"toc":270020},[269455,269458,269747,270018],[11,269456,266251],{"id":269457},"vue-router",[25,269459,269461],{"className":13845,"code":269460,"language":8606,"meta":30,"style":30},"// router/index.js\nimport { createRouter, createWebHistory } from 'vue-router'\n\nconst routes = [\n  { path: '/', component: () => import('@/views/Home.vue') },\n  { path: '/about', component: () => import('@/views/About.vue') },\n  { \n    path: '/users/:id', \n    component: () => import('@/views/User.vue'),\n    props: true \n  },\n  { \n    path: '/admin', \n    component: () => import('@/views/Admin.vue'),\n    meta: { requiresAuth: true }\n  },\n  { path: '/:pathMatch(.*)*', component: NotFound }\n]\n\nconst router = createRouter({\n  history: createWebHistory(),\n  routes\n})\n\n// Navigation guard\nrouter.beforeEach((to, from) => {\n  if (to.meta.requiresAuth && !isAuthenticated) {\n    return '/login'\n  }\n})\n\nexport default router\n",[20,269462,269463,269468,269480,269484,269494,269519,269542,269546,269554,269572,269581,269585,269589,269597,269614,269623,269627,269637,269641,269645,269657,269667,269672,269676,269680,269685,269706,269720,269727,269731,269735,269739],{"__ignoreMap":30},[34,269464,269465],{"class":36,"line":37},[34,269466,269467],{"class":40},"// router/index.js\n",[34,269469,269470,269472,269475,269477],{"class":36,"line":44},[34,269471,581],{"class":580},[34,269473,269474],{"class":181}," { createRouter, createWebHistory } ",[34,269476,587],{"class":580},[34,269478,269479],{"class":54}," 'vue-router'\n",[34,269481,269482],{"class":36,"line":58},[34,269483,62],{"emptyLinePlaceholder":61},[34,269485,269486,269488,269490,269492],{"class":36,"line":65},[34,269487,14676],{"class":580},[34,269489,3294],{"class":50},[34,269491,683],{"class":580},[34,269493,3304],{"class":181},[34,269495,269496,269498,269500,269502,269505,269507,269509,269511,269513,269516],{"class":36,"line":71},[34,269497,3309],{"class":181},[34,269499,61825],{"class":54},[34,269501,1798],{"class":181},[34,269503,269504],{"class":47},"component",[34,269506,3358],{"class":181},[34,269508,3361],{"class":580},[34,269510,3364],{"class":580},[34,269512,1607],{"class":181},[34,269514,269515],{"class":54},"'@/views/Home.vue'",[34,269517,269518],{"class":181},") },\n",[34,269520,269521,269523,269525,269527,269529,269531,269533,269535,269537,269540],{"class":36,"line":77},[34,269522,3309],{"class":181},[34,269524,3596],{"class":54},[34,269526,1798],{"class":181},[34,269528,269504],{"class":47},[34,269530,3358],{"class":181},[34,269532,3361],{"class":580},[34,269534,3364],{"class":580},[34,269536,1607],{"class":181},[34,269538,269539],{"class":54},"'@/views/About.vue'",[34,269541,269518],{"class":181},[34,269543,269544],{"class":36,"line":82},[34,269545,3339],{"class":181},[34,269547,269548,269550,269552],{"class":36,"line":88},[34,269549,3344],{"class":181},[34,269551,75617],{"class":54},[34,269553,3350],{"class":181},[34,269555,269556,269559,269561,269563,269565,269567,269570],{"class":36,"line":242},[34,269557,269558],{"class":47},"    component",[34,269560,3358],{"class":181},[34,269562,3361],{"class":580},[34,269564,3364],{"class":580},[34,269566,1607],{"class":181},[34,269568,269569],{"class":54},"'@/views/User.vue'",[34,269571,50836],{"class":181},[34,269573,269574,269577,269579],{"class":36,"line":250},[34,269575,269576],{"class":181},"    props: ",[34,269578,632],{"class":50},[34,269580,526],{"class":181},[34,269582,269583],{"class":36,"line":263},[34,269584,3400],{"class":181},[34,269586,269587],{"class":36,"line":275},[34,269588,3339],{"class":181},[34,269590,269591,269593,269595],{"class":36,"line":700},[34,269592,3344],{"class":181},[34,269594,140592],{"class":54},[34,269596,3350],{"class":181},[34,269598,269599,269601,269603,269605,269607,269609,269612],{"class":36,"line":706},[34,269600,269558],{"class":47},[34,269602,3358],{"class":181},[34,269604,3361],{"class":580},[34,269606,3364],{"class":580},[34,269608,1607],{"class":181},[34,269610,269611],{"class":54},"'@/views/Admin.vue'",[34,269613,50836],{"class":181},[34,269615,269616,269619,269621],{"class":36,"line":715},[34,269617,269618],{"class":181},"    meta: { requiresAuth: ",[34,269620,632],{"class":50},[34,269622,52786],{"class":181},[34,269624,269625],{"class":36,"line":725},[34,269626,3400],{"class":181},[34,269628,269629,269631,269634],{"class":36,"line":734},[34,269630,3309],{"class":181},[34,269632,269633],{"class":54},"'/:pathMatch(.*)*'",[34,269635,269636],{"class":181},", component: NotFound }\n",[34,269638,269639],{"class":36,"line":742},[34,269640,924],{"class":181},[34,269642,269643],{"class":36,"line":748},[34,269644,62],{"emptyLinePlaceholder":61},[34,269646,269647,269649,269651,269653,269655],{"class":36,"line":754},[34,269648,14676],{"class":580},[34,269650,3536],{"class":50},[34,269652,683],{"class":580},[34,269654,112422],{"class":47},[34,269656,613],{"class":181},[34,269658,269659,269662,269665],{"class":36,"line":759},[34,269660,269661],{"class":181},"  history: ",[34,269663,269664],{"class":47},"createWebHistory",[34,269666,58490],{"class":181},[34,269668,269669],{"class":36,"line":771},[34,269670,269671],{"class":181},"  routes\n",[34,269673,269674],{"class":36,"line":794},[34,269675,647],{"class":181},[34,269677,269678],{"class":36,"line":824},[34,269679,62],{"emptyLinePlaceholder":61},[34,269681,269682],{"class":36,"line":830},[34,269683,269684],{"class":40},"// Navigation guard\n",[34,269686,269687,269689,269692,269694,269696,269698,269700,269702,269704],{"class":36,"line":839},[34,269688,76543],{"class":181},[34,269690,269691],{"class":47},"beforeEach",[34,269693,8348],{"class":181},[34,269695,38916],{"class":675},[34,269697,1798],{"class":181},[34,269699,587],{"class":675},[34,269701,4817],{"class":181},[34,269703,3361],{"class":580},[34,269705,661],{"class":181},[34,269707,269708,269710,269713,269715,269717],{"class":36,"line":854},[34,269709,8084],{"class":580},[34,269711,269712],{"class":181}," (to.meta.requiresAuth ",[34,269714,22938],{"class":580},[34,269716,103972],{"class":580},[34,269718,269719],{"class":181},"isAuthenticated) {\n",[34,269721,269722,269724],{"class":36,"line":860},[34,269723,1564],{"class":580},[34,269725,269726],{"class":54}," '/login'\n",[34,269728,269729],{"class":36,"line":865},[34,269730,857],{"class":181},[34,269732,269733],{"class":36,"line":870},[34,269734,647],{"class":181},[34,269736,269737],{"class":36,"line":876},[34,269738,62],{"emptyLinePlaceholder":61},[34,269740,269741,269743,269745],{"class":36,"line":885},[34,269742,652],{"class":580},[34,269744,7298],{"class":580},[34,269746,76657],{"class":181},[25,269748,269750],{"className":161287,"code":269749,"language":161289,"meta":30,"style":30},"\u003C!-- Using router in component -->\n\u003Cscript setup>\nimport { useRouter, useRoute } from 'vue-router'\n\nconst router = useRouter()\nconst route = useRoute()\n\n// Get route params\nconst userId = route.params.id\nconst searchQuery = route.query.q\n\n// Navigation\nfunction goToUser(id) {\n  router.push(`/users/${id}`)\n  // Or with object\n  router.push({ name: 'user', params: { id } })\n}\n\nfunction goBack() {\n  router.back()\n}\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cnav>\n    \u003CRouterLink to=\"/\">Home\u003C/RouterLink>\n    \u003CRouterLink :to=\"{ name: 'about' }\">About\u003C/RouterLink>\n  \u003C/nav>\n  \n  \u003CRouterView />\n\u003C/template>\n",[20,269751,269752,269757,269767,269778,269782,269794,269806,269810,269814,269824,269836,269840,269844,269857,269875,269880,269893,269897,269901,269910,269918,269922,269930,269934,269942,269950,269969,269989,269997,270001,270010],{"__ignoreMap":30},[34,269753,269754],{"class":36,"line":37},[34,269755,269756],{"class":40},"\u003C!-- Using router in component -->\n",[34,269758,269759,269761,269763,269765],{"class":36,"line":44},[34,269760,815],{"class":181},[34,269762,115970],{"class":177},[34,269764,161305],{"class":47},[34,269766,1248],{"class":181},[34,269768,269769,269771,269774,269776],{"class":36,"line":58},[34,269770,581],{"class":580},[34,269772,269773],{"class":181}," { useRouter, useRoute } ",[34,269775,587],{"class":580},[34,269777,269479],{"class":54},[34,269779,269780],{"class":36,"line":65},[34,269781,62],{"emptyLinePlaceholder":61},[34,269783,269784,269786,269788,269790,269792],{"class":36,"line":71},[34,269785,14676],{"class":580},[34,269787,3536],{"class":50},[34,269789,683],{"class":580},[34,269791,164866],{"class":47},[34,269793,33899],{"class":181},[34,269795,269796,269798,269800,269802,269804],{"class":36,"line":77},[34,269797,14676],{"class":580},[34,269799,3550],{"class":50},[34,269801,683],{"class":580},[34,269803,163663],{"class":47},[34,269805,33899],{"class":181},[34,269807,269808],{"class":36,"line":82},[34,269809,62],{"emptyLinePlaceholder":61},[34,269811,269812],{"class":36,"line":88},[34,269813,164823],{"class":40},[34,269815,269816,269818,269820,269822],{"class":36,"line":242},[34,269817,14676],{"class":580},[34,269819,162425],{"class":50},[34,269821,683],{"class":580},[34,269823,164846],{"class":181},[34,269825,269826,269828,269831,269833],{"class":36,"line":250},[34,269827,14676],{"class":580},[34,269829,269830],{"class":50}," searchQuery",[34,269832,683],{"class":580},[34,269834,269835],{"class":181}," route.query.q\n",[34,269837,269838],{"class":36,"line":263},[34,269839,62],{"emptyLinePlaceholder":61},[34,269841,269842],{"class":36,"line":275},[34,269843,164855],{"class":40},[34,269845,269846,269848,269851,269853,269855],{"class":36,"line":700},[34,269847,11044],{"class":580},[34,269849,269850],{"class":47}," goToUser",[34,269852,1607],{"class":181},[34,269854,3885],{"class":675},[34,269856,2416],{"class":181},[34,269858,269859,269862,269864,269866,269869,269871,269873],{"class":36,"line":706},[34,269860,269861],{"class":181},"  router.",[34,269863,50165],{"class":47},[34,269865,1607],{"class":181},[34,269867,269868],{"class":54},"`/users/${",[34,269870,3885],{"class":181},[34,269872,3925],{"class":54},[34,269874,3372],{"class":181},[34,269876,269877],{"class":36,"line":715},[34,269878,269879],{"class":40},"  // Or with object\n",[34,269881,269882,269884,269886,269888,269890],{"class":36,"line":725},[34,269883,269861],{"class":181},[34,269885,50165],{"class":47},[34,269887,14862],{"class":181},[34,269889,162514],{"class":54},[34,269891,269892],{"class":181},", params: { id } })\n",[34,269894,269895],{"class":36,"line":734},[34,269896,693],{"class":181},[34,269898,269899],{"class":36,"line":742},[34,269900,62],{"emptyLinePlaceholder":61},[34,269902,269903,269905,269908],{"class":36,"line":748},[34,269904,11044],{"class":580},[34,269906,269907],{"class":47}," goBack",[34,269909,836],{"class":181},[34,269911,269912,269914,269916],{"class":36,"line":754},[34,269913,269861],{"class":181},[34,269915,30022],{"class":47},[34,269917,33899],{"class":181},[34,269919,269920],{"class":36,"line":759},[34,269921,693],{"class":181},[34,269923,269924,269926,269928],{"class":36,"line":771},[34,269925,2089],{"class":181},[34,269927,115970],{"class":177},[34,269929,1248],{"class":181},[34,269931,269932],{"class":36,"line":794},[34,269933,62],{"emptyLinePlaceholder":61},[34,269935,269936,269938,269940],{"class":36,"line":824},[34,269937,815],{"class":181},[34,269939,8517],{"class":177},[34,269941,1248],{"class":181},[34,269943,269944,269946,269948],{"class":36,"line":830},[34,269945,1181],{"class":181},[34,269947,115439],{"class":177},[34,269949,1248],{"class":181},[34,269951,269952,269954,269957,269959,269961,269963,269965,269967],{"class":36,"line":839},[34,269953,1294],{"class":181},[34,269955,269956],{"class":177},"RouterLink",[34,269958,164967],{"class":47},[34,269960,1301],{"class":181},[34,269962,81654],{"class":54},[34,269964,90331],{"class":181},[34,269966,269956],{"class":177},[34,269968,1248],{"class":181},[34,269970,269971,269973,269975,269978,269980,269983,269985,269987],{"class":36,"line":854},[34,269972,1294],{"class":181},[34,269974,269956],{"class":177},[34,269976,269977],{"class":47}," :to",[34,269979,1301],{"class":181},[34,269981,269982],{"class":54},"\"{ name: 'about' }\"",[34,269984,244622],{"class":181},[34,269986,269956],{"class":177},[34,269988,1248],{"class":181},[34,269990,269991,269993,269995],{"class":36,"line":860},[34,269992,8547],{"class":181},[34,269994,115439],{"class":177},[34,269996,1248],{"class":181},[34,269998,269999],{"class":36,"line":865},[34,270000,827],{"class":181},[34,270002,270003,270005,270008],{"class":36,"line":870},[34,270004,1181],{"class":181},[34,270006,270007],{"class":177},"RouterView",[34,270009,1187],{"class":181},[34,270011,270012,270014,270016],{"class":36,"line":876},[34,270013,2089],{"class":181},[34,270015,8517],{"class":177},[34,270017,1248],{"class":181},[388,270019,266852],{},{"title":30,"searchDepth":44,"depth":44,"links":270021},[270022],{"id":269457,"depth":44,"text":266251},"Vue Router in Vue.js.",{},{"title":266251,"description":270023},"vuejs/vue-router",[161289,8606,982,983],"X36qcI3HC6UUDPQIO9-6qBf1zCFQTqlbxuFSOGfZ_ZE",{"id":270030,"title":270031,"body":270032,"date":402,"description":270280,"extension":404,"meta":270281,"navigation":61,"order":37,"path":270282,"seo":270283,"stem":270284,"subject":8452,"tags":270285,"__hash__":270287},"topics/wasm/overview.md","WebAssembly Basics",{"type":8,"value":270033,"toc":270273},[270034,270038,270041,270045,270048,270093,270099,270103,270106,270210,270213,270217,270220,270257,270260,270264,270267,270270],[11,270035,270037],{"id":270036},"what-is-webassembly-wasm","What is WebAssembly (Wasm)?",[16,270039,270040],{},"WebAssembly (Wasm) is a binary instruction format for a stack-based virtual machine. It's designed as a portable compilation target for high-level languages like C, C++, and Rust.",[11,270042,270044],{"id":270043},"writing-webassembly-in-wat-webassembly-text-format","Writing WebAssembly in WAT (WebAssembly Text format)",[16,270046,270047],{},"WAT is a human-readable representation of WebAssembly.",[25,270049,270053],{"className":270050,"code":270051,"language":270052,"meta":30,"style":30},"language-wat shiki shiki-themes github-light github-dark","(module\n  (func $add (param $a i32) (param $b i32) (result i32)\n    local.get $a\n    local.get $b\n    i32.add\n  )\n  (export \"add\" (func $add))\n)\n","wat",[20,270054,270055,270060,270065,270070,270075,270080,270084,270089],{"__ignoreMap":30},[34,270056,270057],{"class":36,"line":37},[34,270058,270059],{},"(module\n",[34,270061,270062],{"class":36,"line":44},[34,270063,270064],{},"  (func $add (param $a i32) (param $b i32) (result i32)\n",[34,270066,270067],{"class":36,"line":58},[34,270068,270069],{},"    local.get $a\n",[34,270071,270072],{"class":36,"line":65},[34,270073,270074],{},"    local.get $b\n",[34,270076,270077],{"class":36,"line":71},[34,270078,270079],{},"    i32.add\n",[34,270081,270082],{"class":36,"line":77},[34,270083,17056],{},[34,270085,270086],{"class":36,"line":82},[34,270087,270088],{},"  (export \"add\" (func $add))\n",[34,270090,270091],{"class":36,"line":88},[34,270092,3372],{},[16,270094,270095,270096,270098],{},"The example above defines a module with an exported ",[20,270097,11093],{}," function that takes two integers and returns their sum.",[11,270100,270102],{"id":270101},"using-wasm-in-javascript","Using Wasm in JavaScript",[16,270104,270105],{},"You can load and execute a Wasm file in JavaScript.",[25,270107,270109],{"className":13845,"code":270108,"language":8606,"meta":30,"style":30},"// JavaScript code to load and use WebAssembly\nfetch('example.wasm')\n  .then(response => response.arrayBuffer())\n  .then(bytes => WebAssembly.instantiate(bytes))\n  .then(results => {\n    console.log(results.instance.exports.add(2, 3)); // Outputs: 5\n  });\n",[20,270110,270111,270116,270127,270145,270167,270182,270206],{"__ignoreMap":30},[34,270112,270113],{"class":36,"line":37},[34,270114,270115],{"class":40},"// JavaScript code to load and use WebAssembly\n",[34,270117,270118,270120,270122,270125],{"class":36,"line":44},[34,270119,58875],{"class":47},[34,270121,1607],{"class":181},[34,270123,270124],{"class":54},"'example.wasm'",[34,270126,3372],{"class":181},[34,270128,270129,270131,270133,270135,270137,270139,270141,270143],{"class":36,"line":58},[34,270130,61818],{"class":181},[34,270132,3380],{"class":47},[34,270134,1607],{"class":181},[34,270136,1892],{"class":675},[34,270138,1895],{"class":580},[34,270140,14787],{"class":181},[34,270142,15046],{"class":47},[34,270144,62281],{"class":181},[34,270146,270147,270149,270151,270153,270156,270158,270161,270164],{"class":36,"line":65},[34,270148,61818],{"class":181},[34,270150,3380],{"class":47},[34,270152,1607],{"class":181},[34,270154,270155],{"class":675},"bytes",[34,270157,1895],{"class":580},[34,270159,270160],{"class":181}," WebAssembly.",[34,270162,270163],{"class":47},"instantiate",[34,270165,270166],{"class":181},"(bytes))\n",[34,270168,270169,270171,270173,270175,270178,270180],{"class":36,"line":71},[34,270170,61818],{"class":181},[34,270172,3380],{"class":47},[34,270174,1607],{"class":181},[34,270176,270177],{"class":675},"results",[34,270179,1895],{"class":580},[34,270181,661],{"class":181},[34,270183,270184,270186,270188,270191,270193,270195,270197,270199,270201,270203],{"class":36,"line":77},[34,270185,2421],{"class":181},[34,270187,2424],{"class":47},[34,270189,270190],{"class":181},"(results.instance.exports.",[34,270192,11093],{"class":47},[34,270194,1607],{"class":181},[34,270196,8324],{"class":50},[34,270198,1798],{"class":181},[34,270200,3162],{"class":50},[34,270202,11931],{"class":181},[34,270204,270205],{"class":40},"// Outputs: 5\n",[34,270207,270208],{"class":36,"line":82},[34,270209,3186],{"class":181},[16,270211,270212],{},"This demonstrates interop between Wasm and JavaScript.",[11,270214,270216],{"id":270215},"setting-up-wasm-pack","Setting Up wasm-pack",[16,270218,270219],{},"wasm-pack is a tool for building and publishing Rust-generated WebAssembly.",[25,270221,270223],{"className":27,"code":270222,"language":29,"meta":30,"style":30},"# Install wasm-pack\nnpm install -g wasm-pack\n\n# Build your Rust project for WebAssembly\nwasm-pack build\n",[20,270224,270225,270230,270241,270245,270250],{"__ignoreMap":30},[34,270226,270227],{"class":36,"line":37},[34,270228,270229],{"class":40},"# Install wasm-pack\n",[34,270231,270232,270234,270236,270238],{"class":36,"line":44},[34,270233,8177],{"class":47},[34,270235,118],{"class":54},[34,270237,9753],{"class":50},[34,270239,270240],{"class":54}," wasm-pack\n",[34,270242,270243],{"class":36,"line":58},[34,270244,62],{"emptyLinePlaceholder":61},[34,270246,270247],{"class":36,"line":65},[34,270248,270249],{"class":40},"# Build your Rust project for WebAssembly\n",[34,270251,270252,270255],{"class":36,"line":71},[34,270253,270254],{"class":47},"wasm-pack",[34,270256,55],{"class":54},[16,270258,270259],{},"The command above compiles and packages your Rust code for use with Wasm.",[11,270261,270263],{"id":270262},"debugging-webassembly","Debugging WebAssembly",[16,270265,270266],{},"With browser dev tools, you can debug WebAssembly modules by enabling WebAssembly debugging, allowing you to step through WAT code.",[16,270268,270269],{},"--- End of content example for brevity ---",[388,270271,270272],{},"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 .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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":30,"searchDepth":44,"depth":44,"links":270274},[270275,270276,270277,270278,270279],{"id":270036,"depth":44,"text":270037},{"id":270043,"depth":44,"text":270044},{"id":270101,"depth":44,"text":270102},{"id":270215,"depth":44,"text":270216},{"id":270262,"depth":44,"text":270263},"Learn the basics of WebAssembly including the wat format, JavaScript interop, and tools like wasm-pack.",{},"/wasm/overview",{"title":270031,"description":270280},"wasm/overview",[8451,270052,111477,270286,88773],"interop","CdDsopLJWpuRjBypFckCIgVDAGGzcFPzXboJQIg4EFg",{"id":270289,"title":270290,"body":270291,"date":402,"description":270682,"extension":404,"meta":270683,"navigation":61,"order":37,"path":270684,"seo":270685,"stem":270686,"subject":270559,"tags":270687,"__hash__":270688},"topics/wezterm/overview.md","WezTerm",{"type":8,"value":270292,"toc":270674},[270293,270295,270362,270366,270433,270437,270541,270545,270573,270577,270625,270627,270672],[11,270294,97],{"id":96},[25,270296,270298],{"className":27,"code":270297,"language":29,"meta":30,"style":30},"# Install with Homebrew\nbrew install --cask wezterm\n\n# Install on Ubuntu\nsudo apt update\nsudo apt install wezterm\n\n# Manual install\ncurl -LO https://github.com/wez/wezterm/releases/download/latest/wezterm.app\n",[20,270299,270300,270305,270316,270320,270325,270333,270343,270347,270352],{"__ignoreMap":30},[34,270301,270302],{"class":36,"line":37},[34,270303,270304],{"class":40},"# Install with Homebrew\n",[34,270306,270307,270309,270311,270313],{"class":36,"line":44},[34,270308,115],{"class":47},[34,270310,118],{"class":54},[34,270312,91824],{"class":50},[34,270314,270315],{"class":54}," wezterm\n",[34,270317,270318],{"class":36,"line":58},[34,270319,62],{"emptyLinePlaceholder":61},[34,270321,270322],{"class":36,"line":65},[34,270323,270324],{"class":40},"# Install on Ubuntu\n",[34,270326,270327,270329,270331],{"class":36,"line":71},[34,270328,436],{"class":47},[34,270330,439],{"class":54},[34,270332,6441],{"class":54},[34,270334,270335,270337,270339,270341],{"class":36,"line":77},[34,270336,436],{"class":47},[34,270338,439],{"class":54},[34,270340,118],{"class":54},[34,270342,270315],{"class":54},[34,270344,270345],{"class":36,"line":82},[34,270346,62],{"emptyLinePlaceholder":61},[34,270348,270349],{"class":36,"line":88},[34,270350,270351],{"class":40},"# Manual install\n",[34,270353,270354,270356,270359],{"class":36,"line":242},[34,270355,8648],{"class":47},[34,270357,270358],{"class":50}," -LO",[34,270360,270361],{"class":54}," https://github.com/wez/wezterm/releases/download/latest/wezterm.app\n",[11,270363,270365],{"id":270364},"configuration-basics","Configuration Basics",[25,270367,270369],{"className":141287,"code":270368,"language":90057,"meta":30,"style":30},"-- ~/.wezterm.lua\nlocal wezterm = require 'wezterm';\nreturn {\n  font = wezterm.font(\"JetBrains Mono\"),\n  color_scheme = \"Gruvbox Dark\",\n}\n",[20,270370,270371,270376,270392,270398,270417,270429],{"__ignoreMap":30},[34,270372,270373],{"class":36,"line":37},[34,270374,270375],{"class":40},"-- ~/.wezterm.lua\n",[34,270377,270378,270380,270383,270385,270387,270390],{"class":36,"line":44},[34,270379,141300],{"class":580},[34,270381,270382],{"class":181}," wezterm ",[34,270384,1301],{"class":580},[34,270386,111491],{"class":50},[34,270388,270389],{"class":54}," 'wezterm'",[34,270391,593],{"class":181},[34,270393,270394,270396],{"class":36,"line":58},[34,270395,2917],{"class":580},[34,270397,661],{"class":181},[34,270399,270400,270403,270405,270408,270410,270412,270415],{"class":36,"line":65},[34,270401,270402],{"class":181},"  font ",[34,270404,1301],{"class":580},[34,270406,270407],{"class":181}," wezterm.",[34,270409,535],{"class":50},[34,270411,1607],{"class":181},[34,270413,270414],{"class":54},"\"JetBrains Mono\"",[34,270416,50836],{"class":181},[34,270418,270419,270422,270424,270427],{"class":36,"line":71},[34,270420,270421],{"class":181},"  color_scheme ",[34,270423,1301],{"class":580},[34,270425,270426],{"class":54}," \"Gruvbox Dark\"",[34,270428,624],{"class":181},[34,270430,270431],{"class":36,"line":77},[34,270432,693],{"class":181},[11,270434,270436],{"id":270435},"key-bindings","Key Bindings",[25,270438,270440],{"className":141287,"code":270439,"language":90057,"meta":30,"style":30},"return {\n  keys = {\n    {key=\"t\", mods=\"CTRL\", action=wezterm.action{SpawnTab=\"DefaultDomain\"}},\n    {key=\"w\", mods=\"CTRL\", action=wezterm.action{CloseCurrentTab={confirm=true}}},\n  }\n}\n",[20,270441,270442,270448,270457,270496,270533,270537],{"__ignoreMap":30},[34,270443,270444,270446],{"class":36,"line":37},[34,270445,2917],{"class":580},[34,270447,661],{"class":181},[34,270449,270450,270453,270455],{"class":36,"line":44},[34,270451,270452],{"class":181},"  keys ",[34,270454,1301],{"class":580},[34,270456,661],{"class":181},[34,270458,270459,270462,270464,270467,270470,270472,270475,270478,270480,270483,270485,270488,270490,270493],{"class":36,"line":58},[34,270460,270461],{"class":181},"    {key",[34,270463,1301],{"class":580},[34,270465,270466],{"class":54},"\"t\"",[34,270468,270469],{"class":181},", mods",[34,270471,1301],{"class":580},[34,270473,270474],{"class":54},"\"CTRL\"",[34,270476,270477],{"class":181},", action",[34,270479,1301],{"class":580},[34,270481,270482],{"class":181},"wezterm.",[34,270484,34999],{"class":50},[34,270486,270487],{"class":181},"{SpawnTab",[34,270489,1301],{"class":580},[34,270491,270492],{"class":54},"\"DefaultDomain\"",[34,270494,270495],{"class":181},"}},\n",[34,270497,270498,270500,270502,270504,270506,270508,270510,270512,270514,270516,270518,270521,270523,270526,270528,270530],{"class":36,"line":65},[34,270499,270461],{"class":181},[34,270501,1301],{"class":580},[34,270503,21464],{"class":54},[34,270505,270469],{"class":181},[34,270507,1301],{"class":580},[34,270509,270474],{"class":54},[34,270511,270477],{"class":181},[34,270513,1301],{"class":580},[34,270515,270482],{"class":181},[34,270517,34999],{"class":50},[34,270519,270520],{"class":181},"{CloseCurrentTab",[34,270522,1301],{"class":580},[34,270524,270525],{"class":181},"{confirm",[34,270527,1301],{"class":580},[34,270529,632],{"class":50},[34,270531,270532],{"class":181},"}}},\n",[34,270534,270535],{"class":36,"line":71},[34,270536,857],{"class":181},[34,270538,270539],{"class":36,"line":77},[34,270540,693],{"class":181},[11,270542,270544],{"id":270543},"multiplexing","Multiplexing",[25,270546,270548],{"className":27,"code":270547,"language":29,"meta":30,"style":30},"# Start a multiplexer server\nwezterm cli split-pane --horizontal -- program\n",[20,270549,270550,270555],{"__ignoreMap":30},[34,270551,270552],{"class":36,"line":37},[34,270553,270554],{"class":40},"# Start a multiplexer server\n",[34,270556,270557,270560,270563,270566,270569,270571],{"class":36,"line":44},[34,270558,270559],{"class":47},"wezterm",[34,270561,270562],{"class":54}," cli",[34,270564,270565],{"class":54}," split-pane",[34,270567,270568],{"class":50}," --horizontal",[34,270570,99171],{"class":50},[34,270572,145483],{"class":54},[11,270574,270576],{"id":270575},"fonts","Fonts",[25,270578,270580],{"className":141287,"code":270579,"language":90057,"meta":30,"style":30},"return {\n  font = wezterm.font(\"Fira Code\", {weight=\"Bold\", italic=true}),\n}\n",[20,270581,270582,270588,270621],{"__ignoreMap":30},[34,270583,270584,270586],{"class":36,"line":37},[34,270585,2917],{"class":580},[34,270587,661],{"class":181},[34,270589,270590,270592,270594,270596,270598,270600,270603,270606,270608,270611,270614,270616,270618],{"class":36,"line":44},[34,270591,270402],{"class":181},[34,270593,1301],{"class":580},[34,270595,270407],{"class":181},[34,270597,535],{"class":50},[34,270599,1607],{"class":181},[34,270601,270602],{"class":54},"\"Fira Code\"",[34,270604,270605],{"class":181},", {weight",[34,270607,1301],{"class":580},[34,270609,270610],{"class":54},"\"Bold\"",[34,270612,270613],{"class":181},", italic",[34,270615,1301],{"class":580},[34,270617,632],{"class":50},[34,270619,270620],{"class":181},"}),\n",[34,270622,270623],{"class":36,"line":58},[34,270624,693],{"class":181},[11,270626,237548],{"id":237547},[25,270628,270630],{"className":141287,"code":270629,"language":90057,"meta":30,"style":30},"return {\n  color_scheme = \"Dracula\",\n}\n\n-- List available themes\nwezterm cli show-colors\n",[20,270631,270632,270638,270649,270653,270657,270662],{"__ignoreMap":30},[34,270633,270634,270636],{"class":36,"line":37},[34,270635,2917],{"class":580},[34,270637,661],{"class":181},[34,270639,270640,270642,270644,270647],{"class":36,"line":44},[34,270641,270421],{"class":181},[34,270643,1301],{"class":580},[34,270645,270646],{"class":54}," \"Dracula\"",[34,270648,624],{"class":181},[34,270650,270651],{"class":36,"line":58},[34,270652,693],{"class":181},[34,270654,270655],{"class":36,"line":65},[34,270656,62],{"emptyLinePlaceholder":61},[34,270658,270659],{"class":36,"line":71},[34,270660,270661],{"class":40},"-- List available themes\n",[34,270663,270664,270667,270669],{"class":36,"line":77},[34,270665,270666],{"class":181},"wezterm cli show",[34,270668,22062],{"class":580},[34,270670,270671],{"class":181},"colors\n",[388,270673,93387],{},{"title":30,"searchDepth":44,"depth":44,"links":270675},[270676,270677,270678,270679,270680,270681],{"id":96,"depth":44,"text":97},{"id":270364,"depth":44,"text":270365},{"id":270435,"depth":44,"text":270436},{"id":270543,"depth":44,"text":270544},{"id":270575,"depth":44,"text":270576},{"id":237547,"depth":44,"text":237548},"Comprehensive overview of WezTerm configuration and features.",{},"/wezterm/overview",{"title":270290,"description":270682},"wezterm/overview",[270559,557,90057,558],"RlpWMvO2movSsLiRVCJVeVlq6J1S8OVWNQYeDbscQ8U",{"id":270690,"title":270691,"body":270692,"date":402,"description":271188,"extension":404,"meta":271189,"navigation":61,"order":37,"path":271190,"seo":271191,"stem":271192,"subject":271193,"tags":271194,"__hash__":271196},"topics/wireguard/overview.md","WireGuard",{"type":8,"value":270693,"toc":271179},[270694,270696,270752,270756,270836,270840,270908,270912,270969,270973,271061,271065,271136,271140,271177],[11,270695,97],{"id":96},[25,270697,270699],{"className":27,"code":270698,"language":29,"meta":30,"style":30},"# Ubuntu / Debian\nsudo apt install wireguard\n\n# Arch Linux\nsudo pacman -S wireguard-tools\n\n# macOS\nbrew install wireguard-tools\n",[20,270700,270701,270706,270717,270721,270725,270736,270740,270744],{"__ignoreMap":30},[34,270702,270703],{"class":36,"line":37},[34,270704,270705],{"class":40},"# Ubuntu / Debian\n",[34,270707,270708,270710,270712,270714],{"class":36,"line":44},[34,270709,436],{"class":47},[34,270711,439],{"class":54},[34,270713,118],{"class":54},[34,270715,270716],{"class":54}," wireguard\n",[34,270718,270719],{"class":36,"line":58},[34,270720,62],{"emptyLinePlaceholder":61},[34,270722,270723],{"class":36,"line":65},[34,270724,78200],{"class":40},[34,270726,270727,270729,270731,270733],{"class":36,"line":71},[34,270728,436],{"class":47},[34,270730,53595],{"class":54},[34,270732,7773],{"class":50},[34,270734,270735],{"class":54}," wireguard-tools\n",[34,270737,270738],{"class":36,"line":77},[34,270739,62],{"emptyLinePlaceholder":61},[34,270741,270742],{"class":36,"line":82},[34,270743,8625],{"class":40},[34,270745,270746,270748,270750],{"class":36,"line":88},[34,270747,115],{"class":47},[34,270749,118],{"class":54},[34,270751,270735],{"class":54},[11,270753,270755],{"id":270754},"key-generation","Key Generation",[25,270757,270759],{"className":27,"code":270758,"language":29,"meta":30,"style":30},"# Generate private key\nwg genkey | tee privatekey | wg pubkey > publickey\n\n# Or in one step\nwg genkey | tee /etc/wireguard/privatekey | wg pubkey > /etc/wireguard/publickey\nchmod 600 /etc/wireguard/privatekey\n",[20,270760,270761,270766,270794,270798,270803,270827],{"__ignoreMap":30},[34,270762,270763],{"class":36,"line":37},[34,270764,270765],{"class":40},"# Generate private key\n",[34,270767,270768,270771,270774,270776,270778,270781,270783,270786,270789,270791],{"class":36,"line":44},[34,270769,270770],{"class":47},"wg",[34,270772,270773],{"class":54}," genkey",[34,270775,7197],{"class":580},[34,270777,27852],{"class":47},[34,270779,270780],{"class":54}," privatekey",[34,270782,7197],{"class":580},[34,270784,270785],{"class":47}," wg",[34,270787,270788],{"class":54}," pubkey",[34,270790,9009],{"class":580},[34,270792,270793],{"class":54}," publickey\n",[34,270795,270796],{"class":36,"line":58},[34,270797,62],{"emptyLinePlaceholder":61},[34,270799,270800],{"class":36,"line":65},[34,270801,270802],{"class":40},"# Or in one step\n",[34,270804,270805,270807,270809,270811,270813,270816,270818,270820,270822,270824],{"class":36,"line":71},[34,270806,270770],{"class":47},[34,270808,270773],{"class":54},[34,270810,7197],{"class":580},[34,270812,27852],{"class":47},[34,270814,270815],{"class":54}," /etc/wireguard/privatekey",[34,270817,7197],{"class":580},[34,270819,270785],{"class":47},[34,270821,270788],{"class":54},[34,270823,9009],{"class":580},[34,270825,270826],{"class":54}," /etc/wireguard/publickey\n",[34,270828,270829,270831,270833],{"class":36,"line":77},[34,270830,13281],{"class":47},[34,270832,236700],{"class":50},[34,270834,270835],{"class":54}," /etc/wireguard/privatekey\n",[11,270837,270839],{"id":270838},"server-config","Server Config",[25,270841,270843],{"className":5200,"code":270842,"language":5202,"meta":30,"style":30},"# /etc/wireguard/wg0.conf (server)\n[Interface]\nAddress = 10.0.0.1/24          # server VPN IP\nListenPort = 51820              # UDP port\nPrivateKey = \u003Cserver-private-key>\n\n# Optional: enable NAT for internet access\nPostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE\nPostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE\n\n[Peer]\nPublicKey = \u003Cclient-public-key>\nAllowedIPs = 10.0.0.2/32       # client's VPN IP\n",[20,270844,270845,270850,270855,270860,270865,270870,270874,270879,270884,270889,270893,270898,270903],{"__ignoreMap":30},[34,270846,270847],{"class":36,"line":37},[34,270848,270849],{},"# /etc/wireguard/wg0.conf (server)\n",[34,270851,270852],{"class":36,"line":44},[34,270853,270854],{},"[Interface]\n",[34,270856,270857],{"class":36,"line":58},[34,270858,270859],{},"Address = 10.0.0.1/24          # server VPN IP\n",[34,270861,270862],{"class":36,"line":65},[34,270863,270864],{},"ListenPort = 51820              # UDP port\n",[34,270866,270867],{"class":36,"line":71},[34,270868,270869],{},"PrivateKey = \u003Cserver-private-key>\n",[34,270871,270872],{"class":36,"line":77},[34,270873,62],{"emptyLinePlaceholder":61},[34,270875,270876],{"class":36,"line":82},[34,270877,270878],{},"# Optional: enable NAT for internet access\n",[34,270880,270881],{"class":36,"line":88},[34,270882,270883],{},"PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE\n",[34,270885,270886],{"class":36,"line":242},[34,270887,270888],{},"PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE\n",[34,270890,270891],{"class":36,"line":250},[34,270892,62],{"emptyLinePlaceholder":61},[34,270894,270895],{"class":36,"line":263},[34,270896,270897],{},"[Peer]\n",[34,270899,270900],{"class":36,"line":275},[34,270901,270902],{},"PublicKey = \u003Cclient-public-key>\n",[34,270904,270905],{"class":36,"line":700},[34,270906,270907],{},"AllowedIPs = 10.0.0.2/32       # client's VPN IP\n",[11,270909,270911],{"id":270910},"client-config","Client Config",[25,270913,270915],{"className":5200,"code":270914,"language":5202,"meta":30,"style":30},"# /etc/wireguard/wg0.conf (client)\n[Interface]\nAddress = 10.0.0.2/24          # client VPN IP\nPrivateKey = \u003Cclient-private-key>\nDNS = 1.1.1.1                  # optional DNS\n\n[Peer]\nPublicKey = \u003Cserver-public-key>\nEndpoint = server.example.com:51820\nAllowedIPs = 0.0.0.0/0         # route all traffic through VPN\nPersistentKeepalive = 25        # keep NAT alive\n",[20,270916,270917,270922,270926,270931,270936,270941,270945,270949,270954,270959,270964],{"__ignoreMap":30},[34,270918,270919],{"class":36,"line":37},[34,270920,270921],{},"# /etc/wireguard/wg0.conf (client)\n",[34,270923,270924],{"class":36,"line":44},[34,270925,270854],{},[34,270927,270928],{"class":36,"line":58},[34,270929,270930],{},"Address = 10.0.0.2/24          # client VPN IP\n",[34,270932,270933],{"class":36,"line":65},[34,270934,270935],{},"PrivateKey = \u003Cclient-private-key>\n",[34,270937,270938],{"class":36,"line":71},[34,270939,270940],{},"DNS = 1.1.1.1                  # optional DNS\n",[34,270942,270943],{"class":36,"line":77},[34,270944,62],{"emptyLinePlaceholder":61},[34,270946,270947],{"class":36,"line":82},[34,270948,270897],{},[34,270950,270951],{"class":36,"line":88},[34,270952,270953],{},"PublicKey = \u003Cserver-public-key>\n",[34,270955,270956],{"class":36,"line":242},[34,270957,270958],{},"Endpoint = server.example.com:51820\n",[34,270960,270961],{"class":36,"line":250},[34,270962,270963],{},"AllowedIPs = 0.0.0.0/0         # route all traffic through VPN\n",[34,270965,270966],{"class":36,"line":263},[34,270967,270968],{},"PersistentKeepalive = 25        # keep NAT alive\n",[11,270970,270972],{"id":270971},"managing-the-interface","Managing the Interface",[25,270974,270976],{"className":27,"code":270975,"language":29,"meta":30,"style":30},"# Start tunnel\nsudo wg-quick up wg0\n\n# Stop tunnel\nsudo wg-quick down wg0\n\n# Enable at boot\nsudo systemctl enable wg-quick@wg0\nsudo systemctl start wg-quick@wg0\n\n# Show status\nsudo wg show\n",[20,270977,270978,270983,270995,270999,271004,271014,271018,271023,271034,271044,271048,271053],{"__ignoreMap":30},[34,270979,270980],{"class":36,"line":37},[34,270981,270982],{"class":40},"# Start tunnel\n",[34,270984,270985,270987,270990,270992],{"class":36,"line":44},[34,270986,436],{"class":47},[34,270988,270989],{"class":54}," wg-quick",[34,270991,55764],{"class":54},[34,270993,270994],{"class":54}," wg0\n",[34,270996,270997],{"class":36,"line":58},[34,270998,62],{"emptyLinePlaceholder":61},[34,271000,271001],{"class":36,"line":65},[34,271002,271003],{"class":40},"# Stop tunnel\n",[34,271005,271006,271008,271010,271012],{"class":36,"line":71},[34,271007,436],{"class":47},[34,271009,270989],{"class":54},[34,271011,55821],{"class":54},[34,271013,270994],{"class":54},[34,271015,271016],{"class":36,"line":77},[34,271017,62],{"emptyLinePlaceholder":61},[34,271019,271020],{"class":36,"line":82},[34,271021,271022],{"class":40},"# Enable at boot\n",[34,271024,271025,271027,271029,271031],{"class":36,"line":88},[34,271026,436],{"class":47},[34,271028,108597],{"class":54},[34,271030,93273],{"class":54},[34,271032,271033],{"class":54}," wg-quick@wg0\n",[34,271035,271036,271038,271040,271042],{"class":36,"line":242},[34,271037,436],{"class":47},[34,271039,108597],{"class":54},[34,271041,9677],{"class":54},[34,271043,271033],{"class":54},[34,271045,271046],{"class":36,"line":250},[34,271047,62],{"emptyLinePlaceholder":61},[34,271049,271050],{"class":36,"line":263},[34,271051,271052],{"class":40},"# Show status\n",[34,271054,271055,271057,271059],{"class":36,"line":275},[34,271056,436],{"class":47},[34,271058,270785],{"class":54},[34,271060,9464],{"class":54},[11,271062,271064],{"id":271063},"adding-peers-live","Adding Peers Live",[25,271066,271068],{"className":27,"code":271067,"language":29,"meta":30,"style":30},"# Add a peer without restarting (no downtime)\nsudo wg set wg0 peer \u003Cpublic-key> allowed-ips 10.0.0.3/32\n\n# Remove a peer\nsudo wg set wg0 peer \u003Cpublic-key> remove\n",[20,271069,271070,271075,271104,271108,271113],{"__ignoreMap":30},[34,271071,271072],{"class":36,"line":37},[34,271073,271074],{"class":40},"# Add a peer without restarting (no downtime)\n",[34,271076,271077,271079,271081,271083,271086,271089,271091,271094,271096,271098,271101],{"class":36,"line":44},[34,271078,436],{"class":47},[34,271080,270785],{"class":54},[34,271082,9481],{"class":54},[34,271084,271085],{"class":54}," wg0",[34,271087,271088],{"class":54}," peer",[34,271090,5470],{"class":580},[34,271092,271093],{"class":54},"public-ke",[34,271095,60946],{"class":181},[34,271097,5691],{"class":580},[34,271099,271100],{"class":54}," allowed-ips",[34,271102,271103],{"class":54}," 10.0.0.3/32\n",[34,271105,271106],{"class":36,"line":58},[34,271107,62],{"emptyLinePlaceholder":61},[34,271109,271110],{"class":36,"line":65},[34,271111,271112],{"class":40},"# Remove a peer\n",[34,271114,271115,271117,271119,271121,271123,271125,271127,271129,271131,271133],{"class":36,"line":71},[34,271116,436],{"class":47},[34,271118,270785],{"class":54},[34,271120,9481],{"class":54},[34,271122,271085],{"class":54},[34,271124,271088],{"class":54},[34,271126,5470],{"class":580},[34,271128,271093],{"class":54},[34,271130,60946],{"class":181},[34,271132,5691],{"class":580},[34,271134,271135],{"class":54}," remove\n",[11,271137,271139],{"id":271138},"kernel-ip-forwarding-server","Kernel IP Forwarding (server)",[25,271141,271143],{"className":27,"code":271142,"language":29,"meta":30,"style":30},"# Enable IP forwarding\necho \"net.ipv4.ip_forward = 1\" | sudo tee -a /etc/sysctl.conf\nsudo sysctl -p\n",[20,271144,271145,271150,271168],{"__ignoreMap":30},[34,271146,271147],{"class":36,"line":37},[34,271148,271149],{"class":40},"# Enable IP forwarding\n",[34,271151,271152,271154,271157,271159,271161,271163,271165],{"class":36,"line":44},[34,271153,10120],{"class":50},[34,271155,271156],{"class":54}," \"net.ipv4.ip_forward = 1\"",[34,271158,7197],{"class":580},[34,271160,9343],{"class":47},[34,271162,27852],{"class":54},[34,271164,5059],{"class":50},[34,271166,271167],{"class":54}," /etc/sysctl.conf\n",[34,271169,271170,271172,271175],{"class":36,"line":58},[34,271171,436],{"class":47},[34,271173,271174],{"class":54}," sysctl",[34,271176,150077],{"class":50},[388,271178,93387],{},{"title":30,"searchDepth":44,"depth":44,"links":271180},[271181,271182,271183,271184,271185,271186,271187],{"id":96,"depth":44,"text":97},{"id":270754,"depth":44,"text":270755},{"id":270838,"depth":44,"text":270839},{"id":270910,"depth":44,"text":270911},{"id":270971,"depth":44,"text":270972},{"id":271063,"depth":44,"text":271064},{"id":271138,"depth":44,"text":271139},"A fast, modern, and secure VPN tunnel built into the Linux kernel.",{},"/wireguard/overview",{"title":270691,"description":271188},"wireguard/overview","wireguard",[271193,271195,43045,5588,235509],"vpn","x-VEayFvT99xJyyezq0-lbovTS5lx4qUGKei-6xaXHU",{"id":271198,"title":271199,"body":271200,"date":402,"description":271678,"extension":404,"meta":271679,"navigation":61,"order":37,"path":271680,"seo":271681,"stem":271682,"subject":271683,"tags":271684,"__hash__":271686},"topics/xstate/overview.md","XState",{"type":8,"value":271201,"toc":271668},[271202,271204,271207,271209,271223,271227,271313,271317,271391,271395,271495,271499,271625,271629,271637,271641,271658,271665],[11,271203,14],{"id":13},[16,271205,271206],{},"XState is a library for managing state with finite state machines and statecharts. It provides predictable, maintainable, and scalable state management for JavaScript applications.",[11,271208,97],{"id":96},[25,271210,271212],{"className":27,"code":271211,"language":29,"meta":30,"style":30},"npm install xstate\n",[20,271213,271214],{"__ignoreMap":30},[34,271215,271216,271218,271220],{"class":36,"line":37},[34,271217,8177],{"class":47},[34,271219,118],{"class":54},[34,271221,271222],{"class":54}," xstate\n",[11,271224,271226],{"id":271225},"creating-a-machine","Creating a Machine",[25,271228,271230],{"className":13845,"code":271229,"language":8606,"meta":30,"style":30},"import { createMachine } from 'xstate';\n\nconst toggleMachine = createMachine({\n  id: 'toggle',\n  initial: 'inactive',\n  states: {\n    inactive: { on: { TOGGLE: 'active' } },\n    active: { on: { TOGGLE: 'inactive' } },\n  },\n});\n",[20,271231,271232,271246,271250,271264,271273,271282,271287,271296,271305,271309],{"__ignoreMap":30},[34,271233,271234,271236,271239,271241,271244],{"class":36,"line":37},[34,271235,581],{"class":580},[34,271237,271238],{"class":181}," { createMachine } ",[34,271240,587],{"class":580},[34,271242,271243],{"class":54}," 'xstate'",[34,271245,593],{"class":181},[34,271247,271248],{"class":36,"line":44},[34,271249,62],{"emptyLinePlaceholder":61},[34,271251,271252,271254,271257,271259,271262],{"class":36,"line":58},[34,271253,14676],{"class":580},[34,271255,271256],{"class":50}," toggleMachine",[34,271258,683],{"class":580},[34,271260,271261],{"class":47}," createMachine",[34,271263,613],{"class":181},[34,271265,271266,271268,271271],{"class":36,"line":65},[34,271267,58474],{"class":181},[34,271269,271270],{"class":54},"'toggle'",[34,271272,624],{"class":181},[34,271274,271275,271278,271280],{"class":36,"line":71},[34,271276,271277],{"class":181},"  initial: ",[34,271279,153704],{"class":54},[34,271281,624],{"class":181},[34,271283,271284],{"class":36,"line":77},[34,271285,271286],{"class":181},"  states: {\n",[34,271288,271289,271292,271294],{"class":36,"line":82},[34,271290,271291],{"class":181},"    inactive: { on: { TOGGLE: ",[34,271293,153699],{"class":54},[34,271295,84013],{"class":181},[34,271297,271298,271301,271303],{"class":36,"line":88},[34,271299,271300],{"class":181},"    active: { on: { TOGGLE: ",[34,271302,153704],{"class":54},[34,271304,84013],{"class":181},[34,271306,271307],{"class":36,"line":242},[34,271308,3400],{"class":181},[34,271310,271311],{"class":36,"line":250},[34,271312,14873],{"class":181},[11,271314,271316],{"id":271315},"using-actors","Using Actors",[25,271318,271320],{"className":13845,"code":271319,"language":8606,"meta":30,"style":30},"import { createActor } from 'xstate';\n\nconst actor = createActor(toggleMachine);\nactor.subscribe((state) => console.log(state.value)); // Log state changes\nactor.send('TOGGLE');\n",[20,271321,271322,271335,271339,271354,271379],{"__ignoreMap":30},[34,271323,271324,271326,271329,271331,271333],{"class":36,"line":37},[34,271325,581],{"class":580},[34,271327,271328],{"class":181}," { createActor } ",[34,271330,587],{"class":580},[34,271332,271243],{"class":54},[34,271334,593],{"class":181},[34,271336,271337],{"class":36,"line":44},[34,271338,62],{"emptyLinePlaceholder":61},[34,271340,271341,271343,271346,271348,271351],{"class":36,"line":58},[34,271342,14676],{"class":580},[34,271344,271345],{"class":50}," actor",[34,271347,683],{"class":580},[34,271349,271350],{"class":47}," createActor",[34,271352,271353],{"class":181},"(toggleMachine);\n",[34,271355,271356,271359,271361,271363,271365,271367,271369,271371,271373,271376],{"class":36,"line":65},[34,271357,271358],{"class":181},"actor.",[34,271360,3630],{"class":47},[34,271362,8348],{"class":181},[34,271364,29410],{"class":675},[34,271366,4817],{"class":181},[34,271368,3361],{"class":580},[34,271370,4940],{"class":181},[34,271372,2424],{"class":47},[34,271374,271375],{"class":181},"(state.value)); ",[34,271377,271378],{"class":40},"// Log state changes\n",[34,271380,271381,271383,271385,271387,271389],{"class":36,"line":71},[34,271382,271358],{"class":181},[34,271384,15746],{"class":47},[34,271386,1607],{"class":181},[34,271388,201837],{"class":54},[34,271390,1586],{"class":181},[11,271392,271394],{"id":271393},"typing-with-typescript","Typing with TypeScript",[25,271396,271398],{"className":571,"code":271397,"language":573,"meta":30,"style":30},"import { createMachine } from 'xstate';\n\ntype ToggleContext = { count: number };\n\nconst machine = createMachine\u003CToggleContext>({\n  id: 'toggle',\n  initial: 'inactive',\n  states: {\n    inactive: {},\n    active: {},\n  },\n});\n",[20,271399,271400,271412,271416,271435,271439,271457,271465,271473,271477,271482,271487,271491],{"__ignoreMap":30},[34,271401,271402,271404,271406,271408,271410],{"class":36,"line":37},[34,271403,581],{"class":580},[34,271405,271238],{"class":181},[34,271407,587],{"class":580},[34,271409,271243],{"class":54},[34,271411,593],{"class":181},[34,271413,271414],{"class":36,"line":44},[34,271415,62],{"emptyLinePlaceholder":61},[34,271417,271418,271420,271423,271425,271427,271429,271431,271433],{"class":36,"line":58},[34,271419,41324],{"class":580},[34,271421,271422],{"class":47}," ToggleContext",[34,271424,683],{"class":580},[34,271426,30251],{"class":181},[34,271428,4284],{"class":675},[34,271430,165],{"class":580},[34,271432,2741],{"class":50},[34,271434,33355],{"class":181},[34,271436,271437],{"class":36,"line":65},[34,271438,62],{"emptyLinePlaceholder":61},[34,271440,271441,271443,271446,271448,271450,271452,271455],{"class":36,"line":71},[34,271442,14676],{"class":580},[34,271444,271445],{"class":50}," machine",[34,271447,683],{"class":580},[34,271449,271261],{"class":47},[34,271451,815],{"class":181},[34,271453,271454],{"class":47},"ToggleContext",[34,271456,246201],{"class":181},[34,271458,271459,271461,271463],{"class":36,"line":77},[34,271460,58474],{"class":181},[34,271462,271270],{"class":54},[34,271464,624],{"class":181},[34,271466,271467,271469,271471],{"class":36,"line":82},[34,271468,271277],{"class":181},[34,271470,153704],{"class":54},[34,271472,624],{"class":181},[34,271474,271475],{"class":36,"line":88},[34,271476,271286],{"class":181},[34,271478,271479],{"class":36,"line":242},[34,271480,271481],{"class":181},"    inactive: {},\n",[34,271483,271484],{"class":36,"line":250},[34,271485,271486],{"class":181},"    active: {},\n",[34,271488,271489],{"class":36,"line":263},[34,271490,3400],{"class":181},[34,271492,271493],{"class":36,"line":275},[34,271494,14873],{"class":181},[11,271496,271498],{"id":271497},"leveraging-xstate-react","Leveraging XState React",[25,271500,271502],{"className":13845,"code":271501,"language":8606,"meta":30,"style":30},"import { useMachine } from '@xstate/react';\nimport { toggleMachine } from './toggleMachine';\n\nconst App = () => {\n  const [state, send] = useMachine(toggleMachine);\n\n  return (\n    \u003Cbutton onClick={() => send('TOGGLE')}>\n      {state.value}\n    \u003C/button>\n  );\n};\n",[20,271503,271504,271518,271532,271536,271550,271571,271575,271581,271604,271609,271617,271621],{"__ignoreMap":30},[34,271505,271506,271508,271511,271513,271516],{"class":36,"line":37},[34,271507,581],{"class":580},[34,271509,271510],{"class":181}," { useMachine } ",[34,271512,587],{"class":580},[34,271514,271515],{"class":54}," '@xstate/react'",[34,271517,593],{"class":181},[34,271519,271520,271522,271525,271527,271530],{"class":36,"line":44},[34,271521,581],{"class":580},[34,271523,271524],{"class":181}," { toggleMachine } ",[34,271526,587],{"class":580},[34,271528,271529],{"class":54}," './toggleMachine'",[34,271531,593],{"class":181},[34,271533,271534],{"class":36,"line":58},[34,271535,62],{"emptyLinePlaceholder":61},[34,271537,271538,271540,271542,271544,271546,271548],{"class":36,"line":65},[34,271539,14676],{"class":580},[34,271541,202507],{"class":47},[34,271543,683],{"class":580},[34,271545,17406],{"class":181},[34,271547,3361],{"class":580},[34,271549,661],{"class":181},[34,271551,271552,271554,271556,271558,271560,271562,271564,271566,271569],{"class":36,"line":71},[34,271553,17415],{"class":580},[34,271555,8315],{"class":181},[34,271557,29410],{"class":50},[34,271559,1798],{"class":181},[34,271561,15746],{"class":50},[34,271563,17799],{"class":181},[34,271565,1301],{"class":580},[34,271567,271568],{"class":47}," useMachine",[34,271570,271353],{"class":181},[34,271572,271573],{"class":36,"line":77},[34,271574,62],{"emptyLinePlaceholder":61},[34,271576,271577,271579],{"class":36,"line":82},[34,271578,8155],{"class":580},[34,271580,13975],{"class":181},[34,271582,271583,271585,271587,271589,271591,271593,271595,271598,271600,271602],{"class":36,"line":88},[34,271584,1294],{"class":181},[34,271586,4509],{"class":177},[34,271588,85667],{"class":47},[34,271590,1301],{"class":580},[34,271592,85672],{"class":181},[34,271594,3361],{"class":580},[34,271596,271597],{"class":47}," send",[34,271599,1607],{"class":181},[34,271601,201837],{"class":54},[34,271603,230776],{"class":181},[34,271605,271606],{"class":36,"line":242},[34,271607,271608],{"class":181},"      {state.value}\n",[34,271610,271611,271613,271615],{"class":36,"line":250},[34,271612,74431],{"class":181},[34,271614,4509],{"class":177},[34,271616,1248],{"class":181},[34,271618,271619],{"class":36,"line":263},[34,271620,61002],{"class":181},[34,271622,271623],{"class":36,"line":275},[34,271624,17632],{"class":181},[11,271626,271628],{"id":271627},"visual-editor","Visual Editor",[16,271630,202728,271631,271636],{},[145,271632,271635],{"href":271633,"rel":271634},"https://stately.ai/editor",[149],"Stately visual editor"," to create and manage state charts in a user-friendly interface.",[11,271638,271640],{"id":271639},"advanced-topics","Advanced Topics",[309,271642,271643,271646,271649,271652,271655],{},[312,271644,271645],{},"Delayed transitions",[312,271647,271648],{},"Parallel states",[312,271650,271651],{},"Context API",[312,271653,271654],{},"Guards and conditions",[312,271656,271657],{},"Interpreting services",[16,271659,271660,271661,151],{},"For a full guide, visit the ",[145,271662,238708],{"href":271663,"rel":271664},"https://stately.ai/docs",[149],[388,271666,271667],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":30,"searchDepth":44,"depth":44,"links":271669},[271670,271671,271672,271673,271674,271675,271676,271677],{"id":13,"depth":44,"text":14},{"id":96,"depth":44,"text":97},{"id":271225,"depth":44,"text":271226},{"id":271315,"depth":44,"text":271316},{"id":271393,"depth":44,"text":271394},{"id":271497,"depth":44,"text":271498},{"id":271627,"depth":44,"text":271628},{"id":271639,"depth":44,"text":271640},"Comprehensive quick start and best practices for state management with XState.",{},"/xstate/overview",{"title":271199,"description":271678},"xstate/overview","xstate",[271683,127360,271685,8606],"type-safe","M6NBeYTbqPmwuvQGT03ABtBBqN4ibDKJcl7GjZoIm2M",{"id":271688,"title":271689,"body":271690,"date":402,"description":271892,"extension":404,"meta":271893,"navigation":61,"order":77,"path":271894,"seo":271895,"stem":271896,"subject":271897,"tags":271898,"__hash__":271900},"topics/yagni/avoid-complex-configurations.md","Avoid Complex Configurations",{"type":8,"value":271691,"toc":271889},[271692,271695,271886],[11,271693,271689],{"id":271694},"avoid-complex-configurations",[25,271696,271698],{"className":571,"code":271697,"language":573,"meta":30,"style":30},"// ❌ Bad - configurable everything\nconst config = {\n  database: {\n    type: 'mysql',\n    host: 'localhost',\n    port: 3306,\n    pool: {\n      min: 5,\n      max: 100,\n      idleTimeout: 30000,\n      acquireTimeout: 60000,\n      reapInterval: 1000,\n      // 50 more options...\n    },\n    replication: { /* ... */ },\n    sharding: { /* ... */ },\n  }\n};\n\n// ✅ Good - sensible defaults, minimal config\nconst config = {\n  database: {\n    host: 'localhost',\n    port: 3306,\n  }\n};\n// Add configuration options when needed\n",[20,271699,271700,271705,271715,271720,271730,271739,271749,271754,271763,271772,271781,271791,271800,271805,271809,271818,271827,271831,271835,271839,271843,271853,271857,271865,271873,271877,271881],{"__ignoreMap":30},[34,271701,271702],{"class":36,"line":37},[34,271703,271704],{"class":40},"// ❌ Bad - configurable everything\n",[34,271706,271707,271709,271711,271713],{"class":36,"line":44},[34,271708,14676],{"class":580},[34,271710,58810],{"class":50},[34,271712,683],{"class":580},[34,271714,661],{"class":181},[34,271716,271717],{"class":36,"line":58},[34,271718,271719],{"class":181},"  database: {\n",[34,271721,271722,271725,271728],{"class":36,"line":65},[34,271723,271724],{"class":181},"    type: ",[34,271726,271727],{"class":54},"'mysql'",[34,271729,624],{"class":181},[34,271731,271732,271735,271737],{"class":36,"line":71},[34,271733,271734],{"class":181},"    host: ",[34,271736,129094],{"class":54},[34,271738,624],{"class":181},[34,271740,271741,271744,271747],{"class":36,"line":77},[34,271742,271743],{"class":181},"    port: ",[34,271745,271746],{"class":50},"3306",[34,271748,624],{"class":181},[34,271750,271751],{"class":36,"line":82},[34,271752,271753],{"class":181},"    pool: {\n",[34,271755,271756,271759,271761],{"class":36,"line":88},[34,271757,271758],{"class":181},"      min: ",[34,271760,2778],{"class":50},[34,271762,624],{"class":181},[34,271764,271765,271768,271770],{"class":36,"line":242},[34,271766,271767],{"class":181},"      max: ",[34,271769,20863],{"class":50},[34,271771,624],{"class":181},[34,271773,271774,271777,271779],{"class":36,"line":250},[34,271775,271776],{"class":181},"      idleTimeout: ",[34,271778,179504],{"class":50},[34,271780,624],{"class":181},[34,271782,271783,271786,271789],{"class":36,"line":263},[34,271784,271785],{"class":181},"      acquireTimeout: ",[34,271787,271788],{"class":50},"60000",[34,271790,624],{"class":181},[34,271792,271793,271796,271798],{"class":36,"line":275},[34,271794,271795],{"class":181},"      reapInterval: ",[34,271797,15304],{"class":50},[34,271799,624],{"class":181},[34,271801,271802],{"class":36,"line":700},[34,271803,271804],{"class":40},"      // 50 more options...\n",[34,271806,271807],{"class":36,"line":706},[34,271808,15762],{"class":181},[34,271810,271811,271814,271816],{"class":36,"line":715},[34,271812,271813],{"class":181},"    replication: { ",[34,271815,70495],{"class":40},[34,271817,14846],{"class":181},[34,271819,271820,271823,271825],{"class":36,"line":725},[34,271821,271822],{"class":181},"    sharding: { ",[34,271824,70495],{"class":40},[34,271826,14846],{"class":181},[34,271828,271829],{"class":36,"line":734},[34,271830,857],{"class":181},[34,271832,271833],{"class":36,"line":742},[34,271834,17632],{"class":181},[34,271836,271837],{"class":36,"line":748},[34,271838,62],{"emptyLinePlaceholder":61},[34,271840,271841],{"class":36,"line":754},[34,271842,131504],{"class":40},[34,271844,271845,271847,271849,271851],{"class":36,"line":759},[34,271846,14676],{"class":580},[34,271848,58810],{"class":50},[34,271850,683],{"class":580},[34,271852,661],{"class":181},[34,271854,271855],{"class":36,"line":771},[34,271856,271719],{"class":181},[34,271858,271859,271861,271863],{"class":36,"line":794},[34,271860,271734],{"class":181},[34,271862,129094],{"class":54},[34,271864,624],{"class":181},[34,271866,271867,271869,271871],{"class":36,"line":824},[34,271868,271743],{"class":181},[34,271870,271746],{"class":50},[34,271872,624],{"class":181},[34,271874,271875],{"class":36,"line":830},[34,271876,857],{"class":181},[34,271878,271879],{"class":36,"line":839},[34,271880,17632],{"class":181},[34,271882,271883],{"class":36,"line":854},[34,271884,271885],{"class":40},"// Add configuration options when needed\n",[388,271887,271888],{},"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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .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":30,"searchDepth":44,"depth":44,"links":271890},[271891],{"id":271694,"depth":44,"text":271689},"Avoid Complex Configurations in YAGNI Principle.",{},"/yagni/avoid-complex-configurations",{"title":271689,"description":271892},"yagni/avoid-complex-configurations","yagni",[271897,5600,271899,58892,130579],"agile","sMh920ZCxJM_xvExeS72tSiFMsOo7VyLbg_GCZQFVNw",{"id":271902,"title":271903,"body":271904,"date":402,"description":272180,"extension":404,"meta":272181,"navigation":61,"order":58,"path":272182,"seo":272183,"stem":272184,"subject":271897,"tags":272185,"__hash__":272186},"topics/yagni/avoid-premature-abstraction.md","Avoid Premature Abstraction",{"type":8,"value":271905,"toc":272177},[271906,271909,272174],[11,271907,271903],{"id":271908},"avoid-premature-abstraction",[25,271910,271912],{"className":571,"code":271911,"language":573,"meta":30,"style":30},"// ❌ Bad - over-engineered for \"future\" needs\ninterface DataSource {\n  connect(): void;\n  query(sql: string): any;\n  disconnect(): void;\n}\n\nclass MySQLDataSource implements DataSource { /* ... */ }\nclass PostgresDataSource implements DataSource { /* ... */ }\nclass MongoDataSource implements DataSource { /* ... */ }\nclass OracleDataSource implements DataSource { /* ... */ }\n\nclass DataSourceFactory {\n  static create(type: string): DataSource {\n    // Complex factory for databases we don't use\n  }\n}\n\n// ✅ Good - only what we need now\nclass Database {\n  private connection: MySQLConnection;\n  \n  query(sql: string) {\n    return this.connection.execute(sql);\n  }\n}\n// Add abstraction later IF we need multiple databases\n",[20,271913,271914,271919,271928,271941,271961,271974,271978,271982,271999,272016,272033,272050,272054,272063,272085,272090,272094,272098,272102,272107,272115,272129,272133,272147,272161,272165,272169],{"__ignoreMap":30},[34,271915,271916],{"class":36,"line":37},[34,271917,271918],{"class":40},"// ❌ Bad - over-engineered for \"future\" needs\n",[34,271920,271921,271923,271926],{"class":36,"line":44},[34,271922,17562],{"class":580},[34,271924,271925],{"class":47}," DataSource",[34,271927,661],{"class":181},[34,271929,271930,271933,271935,271937,271939],{"class":36,"line":58},[34,271931,271932],{"class":47},"  connect",[34,271934,1546],{"class":181},[34,271936,165],{"class":580},[34,271938,31514],{"class":50},[34,271940,593],{"class":181},[34,271942,271943,271945,271947,271949,271951,271953,271955,271957,271959],{"class":36,"line":65},[34,271944,70482],{"class":47},[34,271946,1607],{"class":181},[34,271948,28337],{"class":675},[34,271950,165],{"class":580},[34,271952,680],{"class":50},[34,271954,1617],{"class":181},[34,271956,165],{"class":580},[34,271958,69686],{"class":50},[34,271960,593],{"class":181},[34,271962,271963,271966,271968,271970,271972],{"class":36,"line":71},[34,271964,271965],{"class":47},"  disconnect",[34,271967,1546],{"class":181},[34,271969,165],{"class":580},[34,271971,31514],{"class":50},[34,271973,593],{"class":181},[34,271975,271976],{"class":36,"line":77},[34,271977,693],{"class":181},[34,271979,271980],{"class":36,"line":82},[34,271981,62],{"emptyLinePlaceholder":61},[34,271983,271984,271986,271989,271991,271993,271995,271997],{"class":36,"line":88},[34,271985,30060],{"class":580},[34,271987,271988],{"class":47}," MySQLDataSource",[34,271990,2334],{"class":580},[34,271992,271925],{"class":47},[34,271994,30251],{"class":181},[34,271996,70495],{"class":40},[34,271998,52786],{"class":181},[34,272000,272001,272003,272006,272008,272010,272012,272014],{"class":36,"line":242},[34,272002,30060],{"class":580},[34,272004,272005],{"class":47}," PostgresDataSource",[34,272007,2334],{"class":580},[34,272009,271925],{"class":47},[34,272011,30251],{"class":181},[34,272013,70495],{"class":40},[34,272015,52786],{"class":181},[34,272017,272018,272020,272023,272025,272027,272029,272031],{"class":36,"line":250},[34,272019,30060],{"class":580},[34,272021,272022],{"class":47}," MongoDataSource",[34,272024,2334],{"class":580},[34,272026,271925],{"class":47},[34,272028,30251],{"class":181},[34,272030,70495],{"class":40},[34,272032,52786],{"class":181},[34,272034,272035,272037,272040,272042,272044,272046,272048],{"class":36,"line":263},[34,272036,30060],{"class":580},[34,272038,272039],{"class":47}," OracleDataSource",[34,272041,2334],{"class":580},[34,272043,271925],{"class":47},[34,272045,30251],{"class":181},[34,272047,70495],{"class":40},[34,272049,52786],{"class":181},[34,272051,272052],{"class":36,"line":275},[34,272053,62],{"emptyLinePlaceholder":61},[34,272055,272056,272058,272061],{"class":36,"line":700},[34,272057,30060],{"class":580},[34,272059,272060],{"class":47}," DataSourceFactory",[34,272062,661],{"class":181},[34,272064,272065,272067,272069,272071,272073,272075,272077,272079,272081,272083],{"class":36,"line":706},[34,272066,70420],{"class":580},[34,272068,7077],{"class":47},[34,272070,1607],{"class":181},[34,272072,41324],{"class":675},[34,272074,165],{"class":580},[34,272076,680],{"class":50},[34,272078,1617],{"class":181},[34,272080,165],{"class":580},[34,272082,271925],{"class":47},[34,272084,661],{"class":181},[34,272086,272087],{"class":36,"line":715},[34,272088,272089],{"class":40},"    // Complex factory for databases we don't use\n",[34,272091,272092],{"class":36,"line":725},[34,272093,857],{"class":181},[34,272095,272096],{"class":36,"line":734},[34,272097,693],{"class":181},[34,272099,272100],{"class":36,"line":742},[34,272101,62],{"emptyLinePlaceholder":61},[34,272103,272104],{"class":36,"line":748},[34,272105,272106],{"class":40},"// ✅ Good - only what we need now\n",[34,272108,272109,272111,272113],{"class":36,"line":754},[34,272110,30060],{"class":580},[34,272112,17004],{"class":47},[34,272114,661],{"class":181},[34,272116,272117,272119,272122,272124,272127],{"class":36,"line":759},[34,272118,1518],{"class":580},[34,272120,272121],{"class":675}," connection",[34,272123,165],{"class":580},[34,272125,272126],{"class":47}," MySQLConnection",[34,272128,593],{"class":181},[34,272130,272131],{"class":36,"line":771},[34,272132,827],{"class":181},[34,272134,272135,272137,272139,272141,272143,272145],{"class":36,"line":794},[34,272136,70482],{"class":47},[34,272138,1607],{"class":181},[34,272140,28337],{"class":675},[34,272142,165],{"class":580},[34,272144,680],{"class":50},[34,272146,2416],{"class":181},[34,272148,272149,272151,272153,272156,272158],{"class":36,"line":824},[34,272150,1564],{"class":580},[34,272152,1567],{"class":50},[34,272154,272155],{"class":181},".connection.",[34,272157,73593],{"class":47},[34,272159,272160],{"class":181},"(sql);\n",[34,272162,272163],{"class":36,"line":830},[34,272164,857],{"class":181},[34,272166,272167],{"class":36,"line":839},[34,272168,693],{"class":181},[34,272170,272171],{"class":36,"line":854},[34,272172,272173],{"class":40},"// Add abstraction later IF we need multiple databases\n",[388,272175,272176],{},"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 .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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":272178},[272179],{"id":271908,"depth":44,"text":271903},"Avoid Premature Abstraction in YAGNI Principle.",{},"/yagni/avoid-premature-abstraction",{"title":271903,"description":272180},"yagni/avoid-premature-abstraction",[271897,5600,271899,58892,130579],"3rdTKFcJjJ553S_D5dg9Yt8UyrLLehWnCHe5-uS4WCg",{"id":272188,"title":272189,"body":272190,"date":402,"description":272433,"extension":404,"meta":272434,"navigation":61,"order":88,"path":272435,"seo":272436,"stem":272437,"subject":271897,"tags":272438,"__hash__":272439},"topics/yagni/avoid-unused-generics.md","Avoid Unused Generics",{"type":8,"value":272191,"toc":272430},[272192,272195,272428],[11,272193,272189],{"id":272194},"avoid-unused-generics",[25,272196,272198],{"className":571,"code":272197,"language":573,"meta":30,"style":30},"// ❌ Bad - generic everything \"for flexibility\"\nclass Repository\u003CT, K, Q extends Query\u003CT>, R extends Result\u003CT>> {\n  find(query: Q): R { /* ... */ }\n  save(entity: T): R { /* ... */ }\n  delete(key: K): R { /* ... */ }\n}\n\n// ✅ Good - specific implementation\nclass UserRepository {\n  find(id: string): User | null { /* ... */ }\n  save(user: User): User { /* ... */ }\n  delete(id: string): boolean { /* ... */ }\n}\n// Introduce generics when you have multiple similar repositories\n",[20,272199,272200,272205,272247,272273,272298,272322,272326,272330,272335,272343,272371,272395,272419,272423],{"__ignoreMap":30},[34,272201,272202],{"class":36,"line":37},[34,272203,272204],{"class":40},"// ❌ Bad - generic everything \"for flexibility\"\n",[34,272206,272207,272209,272211,272213,272215,272217,272219,272221,272224,272226,272229,272231,272233,272235,272237,272239,272241,272243,272245],{"class":36,"line":44},[34,272208,30060],{"class":580},[34,272210,35923],{"class":47},[34,272212,815],{"class":181},[34,272214,32671],{"class":47},[34,272216,1798],{"class":181},[34,272218,64452],{"class":47},[34,272220,1798],{"class":181},[34,272222,272223],{"class":47},"Q",[34,272225,59185],{"class":580},[34,272227,272228],{"class":47}," Query",[34,272230,815],{"class":181},[34,272232,32671],{"class":47},[34,272234,258305],{"class":181},[34,272236,262221],{"class":47},[34,272238,59185],{"class":580},[34,272240,136969],{"class":47},[34,272242,815],{"class":181},[34,272244,32671],{"class":47},[34,272246,213443],{"class":181},[34,272248,272249,272252,272254,272256,272258,272261,272263,272265,272267,272269,272271],{"class":36,"line":58},[34,272250,272251],{"class":47},"  find",[34,272253,1607],{"class":181},[34,272255,171552],{"class":675},[34,272257,165],{"class":580},[34,272259,272260],{"class":47}," Q",[34,272262,1617],{"class":181},[34,272264,165],{"class":580},[34,272266,11634],{"class":47},[34,272268,30251],{"class":181},[34,272270,70495],{"class":40},[34,272272,52786],{"class":181},[34,272274,272275,272277,272279,272282,272284,272286,272288,272290,272292,272294,272296],{"class":36,"line":65},[34,272276,226509],{"class":47},[34,272278,1607],{"class":181},[34,272280,272281],{"class":675},"entity",[34,272283,165],{"class":580},[34,272285,32664],{"class":47},[34,272287,1617],{"class":181},[34,272289,165],{"class":580},[34,272291,11634],{"class":47},[34,272293,30251],{"class":181},[34,272295,70495],{"class":40},[34,272297,52786],{"class":181},[34,272299,272300,272302,272304,272306,272308,272310,272312,272314,272316,272318,272320],{"class":36,"line":71},[34,272301,73377],{"class":47},[34,272303,1607],{"class":181},[34,272305,141344],{"class":675},[34,272307,165],{"class":580},[34,272309,11576],{"class":47},[34,272311,1617],{"class":181},[34,272313,165],{"class":580},[34,272315,11634],{"class":47},[34,272317,30251],{"class":181},[34,272319,70495],{"class":40},[34,272321,52786],{"class":181},[34,272323,272324],{"class":36,"line":77},[34,272325,693],{"class":181},[34,272327,272328],{"class":36,"line":82},[34,272329,62],{"emptyLinePlaceholder":61},[34,272331,272332],{"class":36,"line":88},[34,272333,272334],{"class":40},"// ✅ Good - specific implementation\n",[34,272336,272337,272339,272341],{"class":36,"line":242},[34,272338,30060],{"class":580},[34,272340,226502],{"class":47},[34,272342,661],{"class":181},[34,272344,272345,272347,272349,272351,272353,272355,272357,272359,272361,272363,272365,272367,272369],{"class":36,"line":250},[34,272346,272251],{"class":47},[34,272348,1607],{"class":181},[34,272350,3885],{"class":675},[34,272352,165],{"class":580},[34,272354,680],{"class":50},[34,272356,1617],{"class":181},[34,272358,165],{"class":580},[34,272360,3950],{"class":47},[34,272362,7197],{"class":580},[34,272364,13898],{"class":50},[34,272366,30251],{"class":181},[34,272368,70495],{"class":40},[34,272370,52786],{"class":181},[34,272372,272373,272375,272377,272379,272381,272383,272385,272387,272389,272391,272393],{"class":36,"line":263},[34,272374,226509],{"class":47},[34,272376,1607],{"class":181},[34,272378,3945],{"class":675},[34,272380,165],{"class":580},[34,272382,3950],{"class":47},[34,272384,1617],{"class":181},[34,272386,165],{"class":580},[34,272388,3950],{"class":47},[34,272390,30251],{"class":181},[34,272392,70495],{"class":40},[34,272394,52786],{"class":181},[34,272396,272397,272399,272401,272403,272405,272407,272409,272411,272413,272415,272417],{"class":36,"line":275},[34,272398,73377],{"class":47},[34,272400,1607],{"class":181},[34,272402,3885],{"class":675},[34,272404,165],{"class":580},[34,272406,680],{"class":50},[34,272408,1617],{"class":181},[34,272410,165],{"class":580},[34,272412,59460],{"class":50},[34,272414,30251],{"class":181},[34,272416,70495],{"class":40},[34,272418,52786],{"class":181},[34,272420,272421],{"class":36,"line":700},[34,272422,693],{"class":181},[34,272424,272425],{"class":36,"line":706},[34,272426,272427],{"class":40},"// Introduce generics when you have multiple similar repositories\n",[388,272429,60244],{},{"title":30,"searchDepth":44,"depth":44,"links":272431},[272432],{"id":272194,"depth":44,"text":272189},"Avoid Unused Generics in YAGNI Principle.",{},"/yagni/avoid-unused-generics",{"title":272189,"description":272433},"yagni/avoid-unused-generics",[271897,5600,271899,58892,130579],"zWj3zx2ehUmK8V2kGNSvJlIV9nbPwUorb-d5eVW5axc",{"id":272441,"title":272442,"body":272443,"date":402,"description":272619,"extension":404,"meta":272620,"navigation":61,"order":65,"path":272621,"seo":272622,"stem":272623,"subject":271897,"tags":272624,"__hash__":272625},"topics/yagni/dont-add-unused-parameters.md","Don't Add Unused Parameters",{"type":8,"value":272444,"toc":272616},[272445,272448,272614],[11,272446,272442],{"id":272447},"dont-add-unused-parameters",[25,272449,272451],{"className":571,"code":272450,"language":573,"meta":30,"style":30},"// ❌ Bad - parameters \"we might need later\"\nfunction createUser(\n  name: string,\n  email: string,\n  phone?: string,      // Not used yet\n  address?: string,    // Not used yet\n  timezone?: string,   // Not used yet\n  locale?: string,     // Not used yet\n  preferences?: object // Not used yet\n) {\n  return { name, email };\n}\n\n// ✅ Good - only required parameters\nfunction createUser(name: string, email: string) {\n  return { name, email };\n}\n// Add parameters when features require them\n",[20,272452,272453,272458,272466,272476,272486,272500,272513,272526,272539,272551,272555,272562,272566,272570,272575,272599,272605,272609],{"__ignoreMap":30},[34,272454,272455],{"class":36,"line":37},[34,272456,272457],{"class":40},"// ❌ Bad - parameters \"we might need later\"\n",[34,272459,272460,272462,272464],{"class":36,"line":44},[34,272461,11044],{"class":580},[34,272463,59278],{"class":47},[34,272465,1882],{"class":181},[34,272467,272468,272470,272472,272474],{"class":36,"line":58},[34,272469,7350],{"class":675},[34,272471,165],{"class":580},[34,272473,680],{"class":50},[34,272475,624],{"class":181},[34,272477,272478,272480,272482,272484],{"class":36,"line":65},[34,272479,132578],{"class":675},[34,272481,165],{"class":580},[34,272483,680],{"class":50},[34,272485,624],{"class":181},[34,272487,272488,272491,272493,272495,272497],{"class":36,"line":71},[34,272489,272490],{"class":675},"  phone",[34,272492,66309],{"class":580},[34,272494,680],{"class":50},[34,272496,129319],{"class":181},[34,272498,272499],{"class":40},"// Not used yet\n",[34,272501,272502,272505,272507,272509,272511],{"class":36,"line":77},[34,272503,272504],{"class":675},"  address",[34,272506,66309],{"class":580},[34,272508,680],{"class":50},[34,272510,164137],{"class":181},[34,272512,272499],{"class":40},[34,272514,272515,272518,272520,272522,272524],{"class":36,"line":82},[34,272516,272517],{"class":675},"  timezone",[34,272519,66309],{"class":580},[34,272521,680],{"class":50},[34,272523,77117],{"class":181},[34,272525,272499],{"class":40},[34,272527,272528,272531,272533,272535,272537],{"class":36,"line":88},[34,272529,272530],{"class":675},"  locale",[34,272532,66309],{"class":580},[34,272534,680],{"class":50},[34,272536,164150],{"class":181},[34,272538,272499],{"class":40},[34,272540,272541,272544,272546,272548],{"class":36,"line":242},[34,272542,272543],{"class":675},"  preferences",[34,272545,66309],{"class":580},[34,272547,38082],{"class":50},[34,272549,272550],{"class":40}," // Not used yet\n",[34,272552,272553],{"class":36,"line":250},[34,272554,2416],{"class":181},[34,272556,272557,272559],{"class":36,"line":263},[34,272558,8155],{"class":580},[34,272560,272561],{"class":181}," { name, email };\n",[34,272563,272564],{"class":36,"line":275},[34,272565,693],{"class":181},[34,272567,272568],{"class":36,"line":700},[34,272569,62],{"emptyLinePlaceholder":61},[34,272571,272572],{"class":36,"line":706},[34,272573,272574],{"class":40},"// ✅ Good - only required parameters\n",[34,272576,272577,272579,272581,272583,272585,272587,272589,272591,272593,272595,272597],{"class":36,"line":715},[34,272578,11044],{"class":580},[34,272580,59278],{"class":47},[34,272582,1607],{"class":181},[34,272584,178],{"class":675},[34,272586,165],{"class":580},[34,272588,680],{"class":50},[34,272590,1798],{"class":181},[34,272592,59283],{"class":675},[34,272594,165],{"class":580},[34,272596,680],{"class":50},[34,272598,2416],{"class":181},[34,272600,272601,272603],{"class":36,"line":725},[34,272602,8155],{"class":580},[34,272604,272561],{"class":181},[34,272606,272607],{"class":36,"line":734},[34,272608,693],{"class":181},[34,272610,272611],{"class":36,"line":742},[34,272612,272613],{"class":40},"// Add parameters when features require them\n",[388,272615,60244],{},{"title":30,"searchDepth":44,"depth":44,"links":272617},[272618],{"id":272447,"depth":44,"text":272442},"Don't Add Unused Parameters in YAGNI Principle.",{},"/yagni/dont-add-unused-parameters",{"title":272442,"description":272619},"yagni/dont-add-unused-parameters",[271897,5600,271899,58892,130579],"QFAMMzKoi4g7kOkBe1Z1PhRdOn_dGcW9RldBpqNg5AQ",{"id":272627,"title":272628,"body":272629,"date":2633,"description":272691,"extension":404,"meta":272692,"navigation":61,"order":37,"path":272693,"seo":272694,"stem":272695,"subject":271897,"tags":272696,"__hash__":272697},"topics/yagni/overview.md","YAGNI Principle",{"type":8,"value":272630,"toc":272689},[272631],[309,272632,272633,272639,272643,272647,272653,272657,272663,272667,272673,272679,272684],{},[312,272634,272635],{},[145,272636,272638],{"href":272637},"/yagni/what-is-yagni","What is YAGNI?",[312,272640,272641],{},[145,272642,271903],{"href":272182},[312,272644,272645],{},[145,272646,272442],{"href":272621},[312,272648,272649],{},[145,272650,272652],{"href":272651},"/yagni/skip-speculative-features","Skip Speculative Features",[312,272654,272655],{},[145,272656,271689],{"href":271894},[312,272658,272659],{},[145,272660,272662],{"href":272661},"/yagni/simple-error-handling","Simple Error Handling",[312,272664,272665],{},[145,272666,272189],{"href":272435},[312,272668,272669],{},[145,272670,272672],{"href":272671},"/yagni/skip-just-in-case-code","Skip \"Just In Case\" Code",[312,272674,272675],{},[145,272676,272678],{"href":272677},"/yagni/yagni-vs-planning-ahead","YAGNI vs Planning Ahead",[312,272680,272681],{},[145,272682,59666],{"href":272683},"/yagni/quick-reference",[312,272685,272686],{},[145,272687,131247],{"href":272688},"/yagni/related-principles",{"title":30,"searchDepth":44,"depth":44,"links":272690},[],"You Aren't Gonna Need It - a principle to avoid over-engineering by only implementing what is currently needed.",{},"/yagni/overview",{"title":272628,"description":272691},"yagni/overview",[271897,5600,271899,58892,130579],"GLvKvcTg31glNe88OJatEVFdyBXAShSUbyfJGhYnsmM",{"id":272699,"title":59666,"body":272700,"date":402,"description":272769,"extension":404,"meta":272770,"navigation":61,"order":263,"path":272683,"seo":272771,"stem":272772,"subject":271897,"tags":272773,"__hash__":272774},"topics/yagni/quick-reference.md",{"type":8,"value":272701,"toc":272766},[272702,272704],[11,272703,59666],{"id":59682},[14308,272705,272706,272716],{},[14311,272707,272708],{},[14314,272709,272710,272713],{},[14317,272711,272712],{},"Instead of...",[14317,272714,272715],{},"Do this...",[14326,272717,272718,272726,272734,272742,272750,272758],{},[14314,272719,272720,272723],{},[14331,272721,272722],{},"Building for every database",[14331,272724,272725],{},"Support the one you use",[14314,272727,272728,272731],{},[14331,272729,272730],{},"Adding unused parameters",[14331,272732,272733],{},"Add them when needed",[14314,272735,272736,272739],{},[14331,272737,272738],{},"Creating deep inheritance",[14331,272740,272741],{},"Start with simple classes",[14314,272743,272744,272747],{},[14331,272745,272746],{},"Complex configuration",[14331,272748,272749],{},"Sensible defaults",[14314,272751,272752,272755],{},[14331,272753,272754],{},"Many error types",[14331,272756,272757],{},"Basic error handling",[14314,272759,272760,272763],{},[14331,272761,272762],{},"Generic everything",[14331,272764,272765],{},"Specific implementations",{"title":30,"searchDepth":44,"depth":44,"links":272767},[272768],{"id":59682,"depth":44,"text":59666},"Quick Reference in YAGNI Principle.",{},{"title":59666,"description":272769},"yagni/quick-reference",[271897,5600,271899,58892,130579],"xTbMxtr6NcVPM4sWartw-x_aL6yaBMYn8KPAiM-hlyk",{"id":272776,"title":131247,"body":272777,"date":402,"description":272790,"extension":404,"meta":272791,"navigation":61,"order":275,"path":272688,"seo":272792,"stem":272793,"subject":271897,"tags":272794,"__hash__":272795},"topics/yagni/related-principles.md",{"type":8,"value":272778,"toc":272787},[272779,272781],[11,272780,131247],{"id":131340},[25,272782,272785],{"className":272783,"code":272784,"language":780,"meta":30},[13703],"YAGNI works well with:\n\n• KISS - Keep It Simple, Stupid\n• DRY - Don't Repeat Yourself  \n• Agile - Iterative development\n• Lean - Eliminate waste\n\n\"Simplicity is the ultimate sophistication\" - Leonardo da Vinci\n",[20,272786,272784],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":272788},[272789],{"id":131340,"depth":44,"text":131247},"Related Principles in YAGNI Principle.",{},{"title":131247,"description":272790},"yagni/related-principles",[271897,5600,271899,58892,130579],"sxFG3H58wUkvkcC9GV77B2nW6PGjktLnaGRd7u3Y160",{"id":272797,"title":272662,"body":272798,"date":402,"description":273070,"extension":404,"meta":273071,"navigation":61,"order":82,"path":272661,"seo":273072,"stem":273073,"subject":271897,"tags":273074,"__hash__":273075},"topics/yagni/simple-error-handling.md",{"type":8,"value":272799,"toc":273067},[272800,272803,273065],[11,272801,272662],{"id":272802},"simple-error-handling",[25,272804,272806],{"className":571,"code":272805,"language":573,"meta":30,"style":30},"// ❌ Bad - elaborate error handling for unlikely cases\nclass ApiError extends Error {\n  constructor(\n    message: string,\n    public code: string,\n    public statusCode: number,\n    public retryable: boolean,\n    public context: object,\n    public originalError?: Error,\n    public requestId?: string,\n    public timestamp?: Date,\n  ) {\n    super(message);\n  }\n}\n\n// Custom errors for every possible scenario\nclass NetworkTimeoutError extends ApiError { }\nclass RateLimitError extends ApiError { }\nclass AuthenticationError extends ApiError { }\n// ... 20 more error classes\n\n// ✅ Good - handle what you need\nclass ApiError extends Error {\n  constructor(message: string, public statusCode: number) {\n    super(message);\n  }\n}\n// Add specific error types when requirements demand them\n",[20,272807,272808,272813,272826,272832,272842,272854,272867,272880,272892,272905,272918,272930,272934,272940,272944,272948,272952,272957,272970,272983,272996,273001,273005,273010,273022,273046,273052,273056,273060],{"__ignoreMap":30},[34,272809,272810],{"class":36,"line":37},[34,272811,272812],{"class":40},"// ❌ Bad - elaborate error handling for unlikely cases\n",[34,272814,272815,272817,272820,272822,272824],{"class":36,"line":44},[34,272816,30060],{"class":580},[34,272818,272819],{"class":47}," ApiError",[34,272821,59185],{"class":580},[34,272823,48752],{"class":47},[34,272825,661],{"class":181},[34,272827,272828,272830],{"class":36,"line":58},[34,272829,4303],{"class":580},[34,272831,1882],{"class":181},[34,272833,272834,272836,272838,272840],{"class":36,"line":65},[34,272835,15726],{"class":675},[34,272837,165],{"class":580},[34,272839,680],{"class":50},[34,272841,624],{"class":181},[34,272843,272844,272846,272848,272850,272852],{"class":36,"line":71},[34,272845,34159],{"class":580},[34,272847,97150],{"class":675},[34,272849,165],{"class":580},[34,272851,680],{"class":50},[34,272853,624],{"class":181},[34,272855,272856,272858,272861,272863,272865],{"class":36,"line":77},[34,272857,34159],{"class":580},[34,272859,272860],{"class":675}," statusCode",[34,272862,165],{"class":580},[34,272864,2741],{"class":50},[34,272866,624],{"class":181},[34,272868,272869,272871,272874,272876,272878],{"class":36,"line":82},[34,272870,34159],{"class":580},[34,272872,272873],{"class":675}," retryable",[34,272875,165],{"class":580},[34,272877,59460],{"class":50},[34,272879,624],{"class":181},[34,272881,272882,272884,272886,272888,272890],{"class":36,"line":88},[34,272883,34159],{"class":580},[34,272885,200780],{"class":675},[34,272887,165],{"class":580},[34,272889,38082],{"class":50},[34,272891,624],{"class":181},[34,272893,272894,272896,272899,272901,272903],{"class":36,"line":242},[34,272895,34159],{"class":580},[34,272897,272898],{"class":675}," originalError",[34,272900,66309],{"class":580},[34,272902,48752],{"class":47},[34,272904,624],{"class":181},[34,272906,272907,272909,272912,272914,272916],{"class":36,"line":250},[34,272908,34159],{"class":580},[34,272910,272911],{"class":675}," requestId",[34,272913,66309],{"class":580},[34,272915,680],{"class":50},[34,272917,624],{"class":181},[34,272919,272920,272922,272924,272926,272928],{"class":36,"line":263},[34,272921,34159],{"class":580},[34,272923,130957],{"class":675},[34,272925,66309],{"class":580},[34,272927,60453],{"class":47},[34,272929,624],{"class":181},[34,272931,272932],{"class":36,"line":275},[34,272933,256280],{"class":181},[34,272935,272936,272938],{"class":36,"line":700},[34,272937,125612],{"class":50},[34,272939,122782],{"class":181},[34,272941,272942],{"class":36,"line":706},[34,272943,857],{"class":181},[34,272945,272946],{"class":36,"line":715},[34,272947,693],{"class":181},[34,272949,272950],{"class":36,"line":725},[34,272951,62],{"emptyLinePlaceholder":61},[34,272953,272954],{"class":36,"line":734},[34,272955,272956],{"class":40},"// Custom errors for every possible scenario\n",[34,272958,272959,272961,272964,272966,272968],{"class":36,"line":742},[34,272960,30060],{"class":580},[34,272962,272963],{"class":47}," NetworkTimeoutError",[34,272965,59185],{"class":580},[34,272967,272819],{"class":47},[34,272969,34540],{"class":181},[34,272971,272972,272974,272977,272979,272981],{"class":36,"line":748},[34,272973,30060],{"class":580},[34,272975,272976],{"class":47}," RateLimitError",[34,272978,59185],{"class":580},[34,272980,272819],{"class":47},[34,272982,34540],{"class":181},[34,272984,272985,272987,272990,272992,272994],{"class":36,"line":754},[34,272986,30060],{"class":580},[34,272988,272989],{"class":47}," AuthenticationError",[34,272991,59185],{"class":580},[34,272993,272819],{"class":47},[34,272995,34540],{"class":181},[34,272997,272998],{"class":36,"line":759},[34,272999,273000],{"class":40},"// ... 20 more error classes\n",[34,273002,273003],{"class":36,"line":771},[34,273004,62],{"emptyLinePlaceholder":61},[34,273006,273007],{"class":36,"line":794},[34,273008,273009],{"class":40},"// ✅ Good - handle what you need\n",[34,273011,273012,273014,273016,273018,273020],{"class":36,"line":824},[34,273013,30060],{"class":580},[34,273015,272819],{"class":47},[34,273017,59185],{"class":580},[34,273019,48752],{"class":47},[34,273021,661],{"class":181},[34,273023,273024,273026,273028,273030,273032,273034,273036,273038,273040,273042,273044],{"class":36,"line":830},[34,273025,4303],{"class":580},[34,273027,1607],{"class":181},[34,273029,15736],{"class":675},[34,273031,165],{"class":580},[34,273033,680],{"class":50},[34,273035,1798],{"class":181},[34,273037,31583],{"class":580},[34,273039,272860],{"class":675},[34,273041,165],{"class":580},[34,273043,2741],{"class":50},[34,273045,2416],{"class":181},[34,273047,273048,273050],{"class":36,"line":839},[34,273049,125612],{"class":50},[34,273051,122782],{"class":181},[34,273053,273054],{"class":36,"line":854},[34,273055,857],{"class":181},[34,273057,273058],{"class":36,"line":860},[34,273059,693],{"class":181},[34,273061,273062],{"class":36,"line":865},[34,273063,273064],{"class":40},"// Add specific error types when requirements demand them\n",[388,273066,60244],{},{"title":30,"searchDepth":44,"depth":44,"links":273068},[273069],{"id":272802,"depth":44,"text":272662},"Simple Error Handling in YAGNI Principle.",{},{"title":272662,"description":273070},"yagni/simple-error-handling",[271897,5600,271899,58892,130579],"T6-ONpOjDJk35hwD6EFk4UhyFH2xfoxULehXDE-rVpY",{"id":273077,"title":272672,"body":273078,"date":402,"description":273306,"extension":404,"meta":273307,"navigation":61,"order":242,"path":272671,"seo":273308,"stem":273309,"subject":271897,"tags":273310,"__hash__":273311},"topics/yagni/skip-just-in-case-code.md",{"type":8,"value":273079,"toc":273303},[273080,273083,273301],[11,273081,272672],{"id":273082},"skip-just-in-case-code",[25,273084,273086],{"className":571,"code":273085,"language":573,"meta":30,"style":30},"// ❌ Bad - defensive code for impossible scenarios\nfunction processOrder(order: Order) {\n  // \"Just in case\" checks\n  if (!order) throw new Error('Order is null');\n  if (!order.id) throw new Error('Order has no id');\n  if (order.items === undefined) order.items = [];\n  if (order.items === null) order.items = [];\n  if (!Array.isArray(order.items)) order.items = [];\n  if (typeof order.total !== 'number') order.total = 0;\n  \n  // Actual logic...\n}\n\n// ✅ Good - trust your types and validation\nfunction processOrder(order: Order) {\n  // TypeScript ensures order shape\n  // Validation happens at API boundary\n  return calculateTotal(order.items);\n}\n",[20,273087,273088,273093,273109,273114,273137,273161,273179,273195,273215,273239,273243,273248,273252,273256,273261,273277,273282,273287,273297],{"__ignoreMap":30},[34,273089,273090],{"class":36,"line":37},[34,273091,273092],{"class":40},"// ❌ Bad - defensive code for impossible scenarios\n",[34,273094,273095,273097,273099,273101,273103,273105,273107],{"class":36,"line":44},[34,273096,11044],{"class":580},[34,273098,130605],{"class":47},[34,273100,1607],{"class":181},[34,273102,60364],{"class":675},[34,273104,165],{"class":580},[34,273106,60369],{"class":47},[34,273108,2416],{"class":181},[34,273110,273111],{"class":36,"line":58},[34,273112,273113],{"class":40},"  // \"Just in case\" checks\n",[34,273115,273116,273118,273120,273122,273124,273126,273128,273130,273132,273135],{"class":36,"line":65},[34,273117,8084],{"class":580},[34,273119,3204],{"class":181},[34,273121,10307],{"class":580},[34,273123,130749],{"class":181},[34,273125,35434],{"class":580},[34,273127,809],{"class":580},[34,273129,48752],{"class":47},[34,273131,1607],{"class":181},[34,273133,273134],{"class":54},"'Order is null'",[34,273136,1586],{"class":181},[34,273138,273139,273141,273143,273145,273148,273150,273152,273154,273156,273159],{"class":36,"line":71},[34,273140,8084],{"class":580},[34,273142,3204],{"class":181},[34,273144,10307],{"class":580},[34,273146,273147],{"class":181},"order.id) ",[34,273149,35434],{"class":580},[34,273151,809],{"class":580},[34,273153,48752],{"class":47},[34,273155,1607],{"class":181},[34,273157,273158],{"class":54},"'Order has no id'",[34,273160,1586],{"class":181},[34,273162,273163,273165,273168,273170,273172,273175,273177],{"class":36,"line":77},[34,273164,8084],{"class":580},[34,273166,273167],{"class":181}," (order.items ",[34,273169,15543],{"class":580},[34,273171,255916],{"class":50},[34,273173,273174],{"class":181},") order.items ",[34,273176,1301],{"class":580},[34,273178,4068],{"class":181},[34,273180,273181,273183,273185,273187,273189,273191,273193],{"class":36,"line":82},[34,273182,8084],{"class":580},[34,273184,273167],{"class":181},[34,273186,15543],{"class":580},[34,273188,13898],{"class":50},[34,273190,273174],{"class":181},[34,273192,1301],{"class":580},[34,273194,4068],{"class":181},[34,273196,273197,273199,273201,273203,273206,273208,273211,273213],{"class":36,"line":88},[34,273198,8084],{"class":580},[34,273200,3204],{"class":181},[34,273202,10307],{"class":580},[34,273204,273205],{"class":181},"Array.",[34,273207,131156],{"class":47},[34,273209,273210],{"class":181},"(order.items)) order.items ",[34,273212,1301],{"class":580},[34,273214,4068],{"class":181},[34,273216,273217,273219,273221,273223,273226,273228,273230,273233,273235,273237],{"class":36,"line":242},[34,273218,8084],{"class":580},[34,273220,3204],{"class":181},[34,273222,258441],{"class":580},[34,273224,273225],{"class":181}," order.total ",[34,273227,48741],{"class":580},[34,273229,131139],{"class":54},[34,273231,273232],{"class":181},") order.total ",[34,273234,1301],{"class":580},[34,273236,8070],{"class":50},[34,273238,593],{"class":181},[34,273240,273241],{"class":36,"line":250},[34,273242,827],{"class":181},[34,273244,273245],{"class":36,"line":263},[34,273246,273247],{"class":40},"  // Actual logic...\n",[34,273249,273250],{"class":36,"line":275},[34,273251,693],{"class":181},[34,273253,273254],{"class":36,"line":700},[34,273255,62],{"emptyLinePlaceholder":61},[34,273257,273258],{"class":36,"line":706},[34,273259,273260],{"class":40},"// ✅ Good - trust your types and validation\n",[34,273262,273263,273265,273267,273269,273271,273273,273275],{"class":36,"line":715},[34,273264,11044],{"class":580},[34,273266,130605],{"class":47},[34,273268,1607],{"class":181},[34,273270,60364],{"class":675},[34,273272,165],{"class":580},[34,273274,60369],{"class":47},[34,273276,2416],{"class":181},[34,273278,273279],{"class":36,"line":725},[34,273280,273281],{"class":40},"  // TypeScript ensures order shape\n",[34,273283,273284],{"class":36,"line":734},[34,273285,273286],{"class":40},"  // Validation happens at API boundary\n",[34,273288,273289,273291,273294],{"class":36,"line":742},[34,273290,8155],{"class":580},[34,273292,273293],{"class":47}," calculateTotal",[34,273295,273296],{"class":181},"(order.items);\n",[34,273298,273299],{"class":36,"line":748},[34,273300,693],{"class":181},[388,273302,22138],{},{"title":30,"searchDepth":44,"depth":44,"links":273304},[273305],{"id":273082,"depth":44,"text":272672},"Skip \"Just In Case\" Code in YAGNI Principle.",{},{"title":272672,"description":273306},"yagni/skip-just-in-case-code",[271897,5600,271899,58892,130579],"7YOcnhIupAe1NM-IENbjE7Rds1lDxsn5ynhN7xKUebg",{"id":273313,"title":272652,"body":273314,"date":402,"description":273576,"extension":404,"meta":273577,"navigation":61,"order":71,"path":272651,"seo":273578,"stem":273579,"subject":271897,"tags":273580,"__hash__":273581},"topics/yagni/skip-speculative-features.md",{"type":8,"value":273315,"toc":273573},[273316,273319,273571],[11,273317,272652],{"id":273318},"skip-speculative-features",[25,273320,273322],{"className":571,"code":273321,"language":573,"meta":30,"style":30},"// ❌ Bad - features nobody asked for\nclass ShoppingCart {\n  items: Item[] = [];\n  \n  addItem(item: Item) { /* ... */ }\n  removeItem(id: string) { /* ... */ }\n  \n  // \"Might be useful someday\"\n  saveForLater(id: string) { /* ... */ }\n  shareCart(email: string) { /* ... */ }\n  exportToPDF() { /* ... */ }\n  compareWithPreviousCart() { /* ... */ }\n  predictNextPurchase() { /* ... */ }\n}\n\n// ✅ Good - only requested features\nclass ShoppingCart {\n  items: Item[] = [];\n  \n  addItem(item: Item) { /* ... */ }\n  removeItem(id: string) { /* ... */ }\n  getTotal(): number { /* ... */ }\n}\n",[20,273323,273324,273329,273338,273353,273357,273376,273395,273399,273404,273423,273442,273453,273464,273475,273479,273483,273488,273496,273510,273514,273532,273550,273567],{"__ignoreMap":30},[34,273325,273326],{"class":36,"line":37},[34,273327,273328],{"class":40},"// ❌ Bad - features nobody asked for\n",[34,273330,273331,273333,273336],{"class":36,"line":44},[34,273332,30060],{"class":580},[34,273334,273335],{"class":47}," ShoppingCart",[34,273337,661],{"class":181},[34,273339,273340,273342,273344,273347,273349,273351],{"class":36,"line":58},[34,273341,267080],{"class":675},[34,273343,165],{"class":580},[34,273345,273346],{"class":47}," Item",[34,273348,4063],{"class":181},[34,273350,1301],{"class":580},[34,273352,4068],{"class":181},[34,273354,273355],{"class":36,"line":65},[34,273356,827],{"class":181},[34,273358,273359,273362,273364,273366,273368,273370,273372,273374],{"class":36,"line":71},[34,273360,273361],{"class":47},"  addItem",[34,273363,1607],{"class":181},[34,273365,4935],{"class":675},[34,273367,165],{"class":580},[34,273369,273346],{"class":47},[34,273371,31392],{"class":181},[34,273373,70495],{"class":40},[34,273375,52786],{"class":181},[34,273377,273378,273381,273383,273385,273387,273389,273391,273393],{"class":36,"line":77},[34,273379,273380],{"class":47},"  removeItem",[34,273382,1607],{"class":181},[34,273384,3885],{"class":675},[34,273386,165],{"class":580},[34,273388,680],{"class":50},[34,273390,31392],{"class":181},[34,273392,70495],{"class":40},[34,273394,52786],{"class":181},[34,273396,273397],{"class":36,"line":82},[34,273398,827],{"class":181},[34,273400,273401],{"class":36,"line":88},[34,273402,273403],{"class":40},"  // \"Might be useful someday\"\n",[34,273405,273406,273409,273411,273413,273415,273417,273419,273421],{"class":36,"line":242},[34,273407,273408],{"class":47},"  saveForLater",[34,273410,1607],{"class":181},[34,273412,3885],{"class":675},[34,273414,165],{"class":580},[34,273416,680],{"class":50},[34,273418,31392],{"class":181},[34,273420,70495],{"class":40},[34,273422,52786],{"class":181},[34,273424,273425,273428,273430,273432,273434,273436,273438,273440],{"class":36,"line":250},[34,273426,273427],{"class":47},"  shareCart",[34,273429,1607],{"class":181},[34,273431,59283],{"class":675},[34,273433,165],{"class":580},[34,273435,680],{"class":50},[34,273437,31392],{"class":181},[34,273439,70495],{"class":40},[34,273441,52786],{"class":181},[34,273443,273444,273447,273449,273451],{"class":36,"line":263},[34,273445,273446],{"class":47},"  exportToPDF",[34,273448,73419],{"class":181},[34,273450,70495],{"class":40},[34,273452,52786],{"class":181},[34,273454,273455,273458,273460,273462],{"class":36,"line":275},[34,273456,273457],{"class":47},"  compareWithPreviousCart",[34,273459,73419],{"class":181},[34,273461,70495],{"class":40},[34,273463,52786],{"class":181},[34,273465,273466,273469,273471,273473],{"class":36,"line":700},[34,273467,273468],{"class":47},"  predictNextPurchase",[34,273470,73419],{"class":181},[34,273472,70495],{"class":40},[34,273474,52786],{"class":181},[34,273476,273477],{"class":36,"line":706},[34,273478,693],{"class":181},[34,273480,273481],{"class":36,"line":715},[34,273482,62],{"emptyLinePlaceholder":61},[34,273484,273485],{"class":36,"line":725},[34,273486,273487],{"class":40},"// ✅ Good - only requested features\n",[34,273489,273490,273492,273494],{"class":36,"line":734},[34,273491,30060],{"class":580},[34,273493,273335],{"class":47},[34,273495,661],{"class":181},[34,273497,273498,273500,273502,273504,273506,273508],{"class":36,"line":742},[34,273499,267080],{"class":675},[34,273501,165],{"class":580},[34,273503,273346],{"class":47},[34,273505,4063],{"class":181},[34,273507,1301],{"class":580},[34,273509,4068],{"class":181},[34,273511,273512],{"class":36,"line":748},[34,273513,827],{"class":181},[34,273515,273516,273518,273520,273522,273524,273526,273528,273530],{"class":36,"line":754},[34,273517,273361],{"class":47},[34,273519,1607],{"class":181},[34,273521,4935],{"class":675},[34,273523,165],{"class":580},[34,273525,273346],{"class":47},[34,273527,31392],{"class":181},[34,273529,70495],{"class":40},[34,273531,52786],{"class":181},[34,273533,273534,273536,273538,273540,273542,273544,273546,273548],{"class":36,"line":759},[34,273535,273380],{"class":47},[34,273537,1607],{"class":181},[34,273539,3885],{"class":675},[34,273541,165],{"class":580},[34,273543,680],{"class":50},[34,273545,31392],{"class":181},[34,273547,70495],{"class":40},[34,273549,52786],{"class":181},[34,273551,273552,273555,273557,273559,273561,273563,273565],{"class":36,"line":771},[34,273553,273554],{"class":47},"  getTotal",[34,273556,1546],{"class":181},[34,273558,165],{"class":580},[34,273560,2741],{"class":50},[34,273562,30251],{"class":181},[34,273564,70495],{"class":40},[34,273566,52786],{"class":181},[34,273568,273569],{"class":36,"line":794},[34,273570,693],{"class":181},[388,273572,60244],{},{"title":30,"searchDepth":44,"depth":44,"links":273574},[273575],{"id":273318,"depth":44,"text":272652},"Skip Speculative Features in YAGNI Principle.",{},{"title":272652,"description":273576},"yagni/skip-speculative-features",[271897,5600,271899,58892,130579],"2lQl9jmYUOjwoqhuPc_Y-juao5CGC_dEx89_5L6b0Q8",{"id":273583,"title":272638,"body":273584,"date":402,"description":273601,"extension":404,"meta":273602,"navigation":61,"order":44,"path":272637,"seo":273603,"stem":273604,"subject":271897,"tags":273605,"__hash__":273606},"topics/yagni/what-is-yagni.md",{"type":8,"value":273585,"toc":273598},[273586,273589,273592],[11,273587,272638],{"id":273588},"what-is-yagni",[16,273590,273591],{},"\"Don't implement something until you actually need it.\"",[25,273593,273596],{"className":273594,"code":273595,"language":780,"meta":30},[13703],"YAGNI = You Aren't Gonna Need It\n\n✓ Build only what's required now\n✓ Avoid speculative features\n✓ Reduce complexity\n✓ Ship faster\n",[20,273597,273595],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":273599},[273600],{"id":273588,"depth":44,"text":272638},"What is YAGNI? in YAGNI Principle.",{},{"title":272638,"description":273601},"yagni/what-is-yagni",[271897,5600,271899,58892,130579],"W3qGZZpJgF3IJHlJby87mAwIleDJ-PpdD6RqtNlfeqg",{"id":273608,"title":272678,"body":273609,"date":402,"description":273623,"extension":404,"meta":273624,"navigation":61,"order":250,"path":272677,"seo":273625,"stem":273626,"subject":271897,"tags":273627,"__hash__":273628},"topics/yagni/yagni-vs-planning-ahead.md",{"type":8,"value":273610,"toc":273620},[273611,273614],[11,273612,272678],{"id":273613},"yagni-vs-planning-ahead",[25,273615,273618],{"className":273616,"code":273617,"language":780,"meta":30},[13703],"YAGNI does NOT mean:\n✗ Never plan or design\n✗ Ignore scalability entirely\n✗ Write hacky code\n✗ Skip basic abstractions\n\nYAGNI DOES mean:\n✓ Don't build features before they're needed\n✓ Don't optimize before measuring\n✓ Don't abstract before patterns emerge\n✓ Keep it simple until complexity is required\n",[20,273619,273617],{"__ignoreMap":30},{"title":30,"searchDepth":44,"depth":44,"links":273621},[273622],{"id":273613,"depth":44,"text":272678},"YAGNI vs Planning Ahead in YAGNI Principle.",{},{"title":272678,"description":273623},"yagni/yagni-vs-planning-ahead",[271897,5600,271899,58892,130579],"lqIPNazYljKOyMLRGi22PgbHU-xBNRXWkFS6BgN0vlo",{"id":273630,"title":273631,"body":273632,"date":402,"description":273762,"extension":404,"meta":273763,"navigation":61,"order":82,"path":273764,"seo":273765,"stem":273766,"subject":170,"tags":273767,"__hash__":273768},"topics/yaml/anchors-and-aliases.md","Anchors and Aliases",{"type":8,"value":273633,"toc":273759},[273634,273637,273756],[11,273635,273631],{"id":273636},"anchors-and-aliases",[25,273638,273640],{"className":168,"code":273639,"language":170,"meta":30,"style":30},"# Define anchor with &\ndefaults: &default_settings\n  timeout: 30\n  retry: 3\n  debug: false\n\n# Reference anchor with *\ndevelopment:\n  \u003C\u003C: *default_settings  # Merge all default settings\n  debug: true            # Override specific value\n\nproduction:\n  \u003C\u003C: *default_settings\n  timeout: 60           # Override timeout\n",[20,273641,273642,273647,273658,273667,273675,273684,273688,273693,273699,273714,273725,273729,273735,273745],{"__ignoreMap":30},[34,273643,273644],{"class":36,"line":37},[34,273645,273646],{"class":40},"# Define anchor with &\n",[34,273648,273649,273651,273653,273655],{"class":36,"line":44},[34,273650,458],{"class":177},[34,273652,182],{"class":181},[34,273654,19502],{"class":580},[34,273656,273657],{"class":47},"default_settings\n",[34,273659,273660,273663,273665],{"class":36,"line":58},[34,273661,273662],{"class":177},"  timeout",[34,273664,182],{"class":181},[34,273666,119888],{"class":50},[34,273668,273669,273671,273673],{"class":36,"line":65},[34,273670,209579],{"class":177},[34,273672,182],{"class":181},[34,273674,108452],{"class":50},[34,273676,273677,273680,273682],{"class":36,"line":71},[34,273678,273679],{"class":177},"  debug",[34,273681,182],{"class":181},[34,273683,14607],{"class":50},[34,273685,273686],{"class":36,"line":77},[34,273687,62],{"emptyLinePlaceholder":61},[34,273689,273690],{"class":36,"line":82},[34,273691,273692],{"class":40},"# Reference anchor with *\n",[34,273694,273695,273697],{"class":36,"line":88},[34,273696,8005],{"class":177},[34,273698,193],{"class":181},[34,273700,273701,273704,273706,273708,273711],{"class":36,"line":242},[34,273702,273703],{"class":50},"  \u003C\u003C",[34,273705,182],{"class":181},[34,273707,4289],{"class":580},[34,273709,273710],{"class":181},"default_settings  ",[34,273712,273713],{"class":40},"# Merge all default settings\n",[34,273715,273716,273718,273720,273722],{"class":36,"line":250},[34,273717,273679],{"class":177},[34,273719,182],{"class":181},[34,273721,632],{"class":50},[34,273723,273724],{"class":40},"            # Override specific value\n",[34,273726,273727],{"class":36,"line":263},[34,273728,62],{"emptyLinePlaceholder":61},[34,273730,273731,273733],{"class":36,"line":275},[34,273732,254523],{"class":177},[34,273734,193],{"class":181},[34,273736,273737,273739,273741,273743],{"class":36,"line":700},[34,273738,273703],{"class":50},[34,273740,182],{"class":181},[34,273742,4289],{"class":580},[34,273744,273657],{"class":181},[34,273746,273747,273749,273751,273753],{"class":36,"line":706},[34,273748,273662],{"class":177},[34,273750,182],{"class":181},[34,273752,41304],{"class":50},[34,273754,273755],{"class":40},"           # Override timeout\n",[388,273757,273758],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .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":30,"searchDepth":44,"depth":44,"links":273760},[273761],{"id":273636,"depth":44,"text":273631},"Anchors and Aliases in YAML.",{},"/yaml/anchors-and-aliases",{"title":273631,"description":273762},"yaml/anchors-and-aliases",[170,94338,190193,1701],"kYNLuu-3a3lenRZcdhwIHNfN8tICUGPx4j3KH7dw8ks",{"id":273770,"title":33160,"body":273771,"date":402,"description":273873,"extension":404,"meta":273874,"navigation":61,"order":44,"path":273875,"seo":273876,"stem":273877,"subject":170,"tags":273878,"__hash__":273879},"topics/yaml/basic-syntax.md",{"type":8,"value":273772,"toc":273870},[273773,273775,273868],[11,273774,33160],{"id":33159},[25,273776,273778],{"className":168,"code":273777,"language":170,"meta":30,"style":30},"# Key-value pairs (colon + space required)\nname: John Doe\nage: 30\ncity: New York\n\n# Nested objects (indentation matters - use spaces, not tabs)\nperson:\n  name: John Doe\n  age: 30\n  address:\n    street: 123 Main St\n    city: New York\n",[20,273779,273780,273785,273794,273802,273812,273816,273821,273827,273835,273843,273849,273859],{"__ignoreMap":30},[34,273781,273782],{"class":36,"line":37},[34,273783,273784],{"class":40},"# Key-value pairs (colon + space required)\n",[34,273786,273787,273789,273791],{"class":36,"line":44},[34,273788,178],{"class":177},[34,273790,182],{"class":181},[34,273792,273793],{"class":54},"John Doe\n",[34,273795,273796,273798,273800],{"class":36,"line":58},[34,273797,13337],{"class":177},[34,273799,182],{"class":181},[34,273801,119888],{"class":50},[34,273803,273804,273807,273809],{"class":36,"line":65},[34,273805,273806],{"class":177},"city",[34,273808,182],{"class":181},[34,273810,273811],{"class":54},"New York\n",[34,273813,273814],{"class":36,"line":71},[34,273815,62],{"emptyLinePlaceholder":61},[34,273817,273818],{"class":36,"line":77},[34,273819,273820],{"class":40},"# Nested objects (indentation matters - use spaces, not tabs)\n",[34,273822,273823,273825],{"class":36,"line":82},[34,273824,208734],{"class":177},[34,273826,193],{"class":181},[34,273828,273829,273831,273833],{"class":36,"line":88},[34,273830,7350],{"class":177},[34,273832,182],{"class":181},[34,273834,273793],{"class":54},[34,273836,273837,273839,273841],{"class":36,"line":242},[34,273838,17581],{"class":177},[34,273840,182],{"class":181},[34,273842,119888],{"class":50},[34,273844,273845,273847],{"class":36,"line":250},[34,273846,272504],{"class":177},[34,273848,193],{"class":181},[34,273850,273851,273854,273856],{"class":36,"line":263},[34,273852,273853],{"class":177},"    street",[34,273855,182],{"class":181},[34,273857,273858],{"class":54},"123 Main St\n",[34,273860,273861,273864,273866],{"class":36,"line":275},[34,273862,273863],{"class":177},"    city",[34,273865,182],{"class":181},[34,273867,273811],{"class":54},[388,273869,56618],{},{"title":30,"searchDepth":44,"depth":44,"links":273871},[273872],{"id":33159,"depth":44,"text":33160},"Basic Syntax in YAML.",{},"/yaml/basic-syntax",{"title":33160,"description":273873},"yaml/basic-syntax",[170,94338,190193,1701],"MqVy-QQteaX9BXv3uNcecGm84lot-2wAg1DD7bJQhzk",{"id":273881,"title":5595,"body":273882,"date":402,"description":274054,"extension":404,"meta":274055,"navigation":61,"order":263,"path":274056,"seo":274057,"stem":274058,"subject":170,"tags":274059,"__hash__":274060},"topics/yaml/best-practices.md",{"type":8,"value":273883,"toc":274051},[273884,273886,274048],[11,273885,5595],{"id":5600},[25,273887,273889],{"className":168,"code":273888,"language":170,"meta":30,"style":30},"# ✅ Use consistent indentation (2 spaces recommended)\ngood:\n  nested:\n    value: 123\n\n# ✅ Quote strings with special characters or leading/trailing spaces\npath: \"/usr/local/bin\"\nname: \" padded \"\n\n# ✅ Use explicit types when ambiguous\nversion: \"1.20\"      # String, not float\nenabled: \"true\"      # String, not boolean\n\n# ✅ Use lists for ordered data\nsteps:\n  - compile\n  - test\n  - deploy\n\n# ✅ Use objects for key-value mappings\nsettings:\n  timeout: 30\n  retry: 3\n",[20,273890,273891,273896,273903,273910,273920,273924,273929,273938,273947,273951,273956,273968,273979,273983,273988,273995,274002,274009,274016,274020,274025,274032,274040],{"__ignoreMap":30},[34,273892,273893],{"class":36,"line":37},[34,273894,273895],{"class":40},"# ✅ Use consistent indentation (2 spaces recommended)\n",[34,273897,273898,273901],{"class":36,"line":44},[34,273899,273900],{"class":177},"good",[34,273902,193],{"class":181},[34,273904,273905,273908],{"class":36,"line":58},[34,273906,273907],{"class":177},"  nested",[34,273909,193],{"class":181},[34,273911,273912,273915,273917],{"class":36,"line":65},[34,273913,273914],{"class":177},"    value",[34,273916,182],{"class":181},[34,273918,273919],{"class":50},"123\n",[34,273921,273922],{"class":36,"line":71},[34,273923,62],{"emptyLinePlaceholder":61},[34,273925,273926],{"class":36,"line":77},[34,273927,273928],{"class":40},"# ✅ Quote strings with special characters or leading/trailing spaces\n",[34,273930,273931,273933,273935],{"class":36,"line":82},[34,273932,20404],{"class":177},[34,273934,182],{"class":181},[34,273936,273937],{"class":54},"\"/usr/local/bin\"\n",[34,273939,273940,273942,273944],{"class":36,"line":88},[34,273941,178],{"class":177},[34,273943,182],{"class":181},[34,273945,273946],{"class":54},"\" padded \"\n",[34,273948,273949],{"class":36,"line":242},[34,273950,62],{"emptyLinePlaceholder":61},[34,273952,273953],{"class":36,"line":250},[34,273954,273955],{"class":40},"# ✅ Use explicit types when ambiguous\n",[34,273957,273958,273960,273962,273965],{"class":36,"line":263},[34,273959,56377],{"class":177},[34,273961,182],{"class":181},[34,273963,273964],{"class":54},"\"1.20\"",[34,273966,273967],{"class":40},"      # String, not float\n",[34,273969,273970,273972,273974,273976],{"class":36,"line":275},[34,273971,245575],{"class":177},[34,273973,182],{"class":181},[34,273975,115569],{"class":54},[34,273977,273978],{"class":40},"      # String, not boolean\n",[34,273980,273981],{"class":36,"line":700},[34,273982,62],{"emptyLinePlaceholder":61},[34,273984,273985],{"class":36,"line":706},[34,273986,273987],{"class":40},"# ✅ Use lists for ordered data\n",[34,273989,273990,273993],{"class":36,"line":715},[34,273991,273992],{"class":177},"steps",[34,273994,193],{"class":181},[34,273996,273997,273999],{"class":36,"line":725},[34,273998,46644],{"class":181},[34,274000,274001],{"class":54},"compile\n",[34,274003,274004,274006],{"class":36,"line":734},[34,274005,46644],{"class":181},[34,274007,274008],{"class":54},"test\n",[34,274010,274011,274013],{"class":36,"line":742},[34,274012,46644],{"class":181},[34,274014,274015],{"class":54},"deploy\n",[34,274017,274018],{"class":36,"line":748},[34,274019,62],{"emptyLinePlaceholder":61},[34,274021,274022],{"class":36,"line":754},[34,274023,274024],{"class":40},"# ✅ Use objects for key-value mappings\n",[34,274026,274027,274030],{"class":36,"line":759},[34,274028,274029],{"class":177},"settings",[34,274031,193],{"class":181},[34,274033,274034,274036,274038],{"class":36,"line":771},[34,274035,273662],{"class":177},[34,274037,182],{"class":181},[34,274039,119888],{"class":50},[34,274041,274042,274044,274046],{"class":36,"line":794},[34,274043,209579],{"class":177},[34,274045,182],{"class":181},[34,274047,108452],{"class":50},[388,274049,274050],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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 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);}",{"title":30,"searchDepth":44,"depth":44,"links":274052},[274053],{"id":5600,"depth":44,"text":5595},"Best Practices in YAML.",{},"/yaml/best-practices",{"title":5595,"description":274054},"yaml/best-practices",[170,94338,190193,1701],"tOelqlcBlz5G1d_9hiFYgC8Kk3GbsOrBRMo_dhTWlrE",{"id":274062,"title":128460,"body":274063,"date":402,"description":274119,"extension":404,"meta":274120,"navigation":61,"order":65,"path":274121,"seo":274122,"stem":274123,"subject":170,"tags":274124,"__hash__":274125},"topics/yaml/comments.md",{"type":8,"value":274064,"toc":274116},[274065,274067,274113],[11,274066,128460],{"id":146230},[25,274068,274070],{"className":168,"code":274069,"language":170,"meta":30,"style":30},"# This is a comment\nname: John  # Inline comment\n\n# Multi-line comment:\n# Line 1\n# Line 2\n# Line 3\n",[20,274071,274072,274077,274089,274093,274098,274103,274108],{"__ignoreMap":30},[34,274073,274074],{"class":36,"line":37},[34,274075,274076],{"class":40},"# This is a comment\n",[34,274078,274079,274081,274083,274086],{"class":36,"line":44},[34,274080,178],{"class":177},[34,274082,182],{"class":181},[34,274084,274085],{"class":54},"John",[34,274087,274088],{"class":40},"  # Inline comment\n",[34,274090,274091],{"class":36,"line":58},[34,274092,62],{"emptyLinePlaceholder":61},[34,274094,274095],{"class":36,"line":65},[34,274096,274097],{"class":40},"# Multi-line comment:\n",[34,274099,274100],{"class":36,"line":71},[34,274101,274102],{"class":40},"# Line 1\n",[34,274104,274105],{"class":36,"line":77},[34,274106,274107],{"class":40},"# Line 2\n",[34,274109,274110],{"class":36,"line":82},[34,274111,274112],{"class":40},"# Line 3\n",[388,274114,274115],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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 .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":30,"searchDepth":44,"depth":44,"links":274117},[274118],{"id":146230,"depth":44,"text":128460},"Comments in YAML.",{},"/yaml/comments",{"title":128460,"description":274119},"yaml/comments",[170,94338,190193,1701],"QK2-IgNrNfV_r7lmTaUytfEZxrfpdBrYZz_m2o1RMH8",{"id":274127,"title":8370,"body":274128,"date":402,"description":274680,"extension":404,"meta":274681,"navigation":61,"order":242,"path":274682,"seo":274683,"stem":274684,"subject":170,"tags":274685,"__hash__":274686},"topics/yaml/common-use-cases.md",{"type":8,"value":274129,"toc":274673},[274130,274132,274134,274274,274276,274462,274466,274670],[11,274131,8370],{"id":8369},[102,274133,56358],{"id":55754},[25,274135,274137],{"className":168,"code":274136,"language":170,"meta":30,"style":30},"version: '3.8'\n\nservices:\n  web:\n    image: nginx:latest\n    ports:\n      - \"80:80\"\n    volumes:\n      - ./html:/usr/share/nginx/html\n    environment:\n      - NGINX_HOST=example.com\n  \n  db:\n    image: postgres:14\n    environment:\n      POSTGRES_PASSWORD: secret\n    volumes:\n      - db-data:/var/lib/postgresql/data\n\nvolumes:\n  db-data:\n",[20,274138,274139,274147,274151,274157,274163,274171,274177,274184,274190,274197,274203,274210,274214,274220,274229,274235,274244,274250,274257,274261,274267],{"__ignoreMap":30},[34,274140,274141,274143,274145],{"class":36,"line":37},[34,274142,56377],{"class":177},[34,274144,182],{"class":181},[34,274146,56382],{"class":54},[34,274148,274149],{"class":36,"line":44},[34,274150,62],{"emptyLinePlaceholder":61},[34,274152,274153,274155],{"class":36,"line":58},[34,274154,56391],{"class":177},[34,274156,193],{"class":181},[34,274158,274159,274161],{"class":36,"line":65},[34,274160,56398],{"class":177},[34,274162,193],{"class":181},[34,274164,274165,274167,274169],{"class":36,"line":71},[34,274166,56503],{"class":177},[34,274168,182],{"class":181},[34,274170,139653],{"class":54},[34,274172,274173,274175],{"class":36,"line":77},[34,274174,56415],{"class":177},[34,274176,193],{"class":181},[34,274178,274179,274181],{"class":36,"line":82},[34,274180,212],{"class":181},[34,274182,274183],{"class":54},"\"80:80\"\n",[34,274185,274186,274188],{"class":36,"line":88},[34,274187,56464],{"class":177},[34,274189,193],{"class":181},[34,274191,274192,274194],{"class":36,"line":242},[34,274193,212],{"class":181},[34,274195,274196],{"class":54},"./html:/usr/share/nginx/html\n",[34,274198,274199,274201],{"class":36,"line":250},[34,274200,56429],{"class":177},[34,274202,193],{"class":181},[34,274204,274205,274207],{"class":36,"line":263},[34,274206,212],{"class":181},[34,274208,274209],{"class":54},"NGINX_HOST=example.com\n",[34,274211,274212],{"class":36,"line":275},[34,274213,827],{"class":181},[34,274215,274216,274218],{"class":36,"line":700},[34,274217,56496],{"class":177},[34,274219,193],{"class":181},[34,274221,274222,274224,274226],{"class":36,"line":706},[34,274223,56503],{"class":177},[34,274225,182],{"class":181},[34,274227,274228],{"class":54},"postgres:14\n",[34,274230,274231,274233],{"class":36,"line":715},[34,274232,56429],{"class":177},[34,274234,193],{"class":181},[34,274236,274237,274239,274241],{"class":36,"line":725},[34,274238,56539],{"class":177},[34,274240,182],{"class":181},[34,274242,274243],{"class":54},"secret\n",[34,274245,274246,274248],{"class":36,"line":734},[34,274247,56464],{"class":177},[34,274249,193],{"class":181},[34,274251,274252,274254],{"class":36,"line":742},[34,274253,212],{"class":181},[34,274255,274256],{"class":54},"db-data:/var/lib/postgresql/data\n",[34,274258,274259],{"class":36,"line":748},[34,274260,62],{"emptyLinePlaceholder":61},[34,274262,274263,274265],{"class":36,"line":754},[34,274264,56578],{"class":177},[34,274266,193],{"class":181},[34,274268,274269,274272],{"class":36,"line":759},[34,274270,274271],{"class":177},"  db-data",[34,274273,193],{"class":181},[102,274275,92475],{"id":410},[25,274277,274279],{"className":168,"code":274278,"language":170,"meta":30,"style":30},"name: CI Pipeline\n\non:\n  push:\n    branches: [main]\n  pull_request:\n    branches: [main]\n\njobs:\n  test:\n    runs-on: ubuntu-latest\n    \n    steps:\n      - uses: actions/checkout@v3\n      \n      - name: Setup Node.js\n        uses: actions/setup-node@v3\n        with:\n          node-version: '18'\n      \n      - name: Install dependencies\n        run: npm ci\n      \n      - name: Run tests\n        run: npm test\n",[20,274280,274281,274290,274294,274300,274306,274316,274323,274333,274337,274343,274349,274357,274361,274367,274377,274381,274391,274401,274407,274416,274420,274431,274439,274443,274454],{"__ignoreMap":30},[34,274282,274283,274285,274287],{"class":36,"line":37},[34,274284,178],{"class":177},[34,274286,182],{"class":181},[34,274288,274289],{"class":54},"CI Pipeline\n",[34,274291,274292],{"class":36,"line":44},[34,274293,62],{"emptyLinePlaceholder":61},[34,274295,274296,274298],{"class":36,"line":58},[34,274297,190],{"class":50},[34,274299,193],{"class":181},[34,274301,274302,274304],{"class":36,"line":65},[34,274303,198],{"class":177},[34,274305,193],{"class":181},[34,274307,274308,274310,274312,274314],{"class":36,"line":71},[34,274309,205],{"class":177},[34,274311,47204],{"class":181},[34,274313,8526],{"class":54},[34,274315,924],{"class":181},[34,274317,274318,274321],{"class":36,"line":77},[34,274319,274320],{"class":177},"  pull_request",[34,274322,193],{"class":181},[34,274324,274325,274327,274329,274331],{"class":36,"line":82},[34,274326,205],{"class":177},[34,274328,47204],{"class":181},[34,274330,8526],{"class":54},[34,274332,924],{"class":181},[34,274334,274335],{"class":36,"line":88},[34,274336,62],{"emptyLinePlaceholder":61},[34,274338,274339,274341],{"class":36,"line":242},[34,274340,220],{"class":177},[34,274342,193],{"class":181},[34,274344,274345,274347],{"class":36,"line":250},[34,274346,17339],{"class":177},[34,274348,193],{"class":181},[34,274350,274351,274353,274355],{"class":36,"line":263},[34,274352,234],{"class":177},[34,274354,182],{"class":181},[34,274356,239],{"class":54},[34,274358,274359],{"class":36,"line":275},[34,274360,3666],{"class":181},[34,274362,274363,274365],{"class":36,"line":700},[34,274364,245],{"class":177},[34,274366,193],{"class":181},[34,274368,274369,274371,274373,274375],{"class":36,"line":706},[34,274370,212],{"class":181},[34,274372,255],{"class":177},[34,274374,182],{"class":181},[34,274376,260],{"class":54},[34,274378,274379],{"class":36,"line":715},[34,274380,3083],{"class":181},[34,274382,274383,274385,274387,274389],{"class":36,"line":725},[34,274384,212],{"class":181},[34,274386,178],{"class":177},[34,274388,182],{"class":181},[34,274390,28920],{"class":54},[34,274392,274393,274396,274398],{"class":36,"line":734},[34,274394,274395],{"class":177},"        uses",[34,274397,182],{"class":181},[34,274399,274400],{"class":54},"actions/setup-node@v3\n",[34,274402,274403,274405],{"class":36,"line":742},[34,274404,224959],{"class":177},[34,274406,193],{"class":181},[34,274408,274409,274411,274413],{"class":36,"line":748},[34,274410,224995],{"class":177},[34,274412,182],{"class":181},[34,274414,274415],{"class":54},"'18'\n",[34,274417,274418],{"class":36,"line":754},[34,274419,3083],{"class":181},[34,274421,274422,274424,274426,274428],{"class":36,"line":759},[34,274423,212],{"class":181},[34,274425,178],{"class":177},[34,274427,182],{"class":181},[34,274429,274430],{"class":54},"Install dependencies\n",[34,274432,274433,274435,274437],{"class":36,"line":771},[34,274434,278],{"class":177},[34,274436,182],{"class":181},[34,274438,225011],{"class":54},[34,274440,274441],{"class":36,"line":794},[34,274442,3083],{"class":181},[34,274444,274445,274447,274449,274451],{"class":36,"line":824},[34,274446,212],{"class":181},[34,274448,178],{"class":177},[34,274450,182],{"class":181},[34,274452,274453],{"class":54},"Run tests\n",[34,274455,274456,274458,274460],{"class":36,"line":830},[34,274457,278],{"class":177},[34,274459,182],{"class":181},[34,274461,283],{"class":54},[102,274463,274465],{"id":274464},"application-config","Application Config",[25,274467,274469],{"className":168,"code":274468,"language":170,"meta":30,"style":30},"app:\n  name: MyApplication\n  version: 2.1.0\n  \nserver:\n  host: 0.0.0.0\n  port: 8080\n  ssl:\n    enabled: true\n    cert: /path/to/cert.pem\n    key: /path/to/key.pem\n\nlogging:\n  level: info\n  format: json\n  outputs:\n    - console\n    - file\n\ndatabase:\n  type: postgres\n  connection:\n    host: db.example.com\n    port: 5432\n    database: myapp\n    pool_size: 20\n",[20,274470,274471,274477,274486,274495,274499,274505,274515,274524,274531,274540,274550,274559,274563,274569,274579,274589,274596,274603,274609,274613,274619,274628,274635,274644,274652,274661],{"__ignoreMap":30},[34,274472,274473,274475],{"class":36,"line":37},[34,274474,247230],{"class":177},[34,274476,193],{"class":181},[34,274478,274479,274481,274483],{"class":36,"line":44},[34,274480,7350],{"class":177},[34,274482,182],{"class":181},[34,274484,274485],{"class":54},"MyApplication\n",[34,274487,274488,274490,274492],{"class":36,"line":58},[34,274489,168116],{"class":177},[34,274491,182],{"class":181},[34,274493,274494],{"class":50},"2.1.0\n",[34,274496,274497],{"class":36,"line":65},[34,274498,827],{"class":181},[34,274500,274501,274503],{"class":36,"line":71},[34,274502,15678],{"class":177},[34,274504,193],{"class":181},[34,274506,274507,274510,274512],{"class":36,"line":77},[34,274508,274509],{"class":177},"  host",[34,274511,182],{"class":181},[34,274513,274514],{"class":50},"0.0.0.0\n",[34,274516,274517,274520,274522],{"class":36,"line":82},[34,274518,274519],{"class":177},"  port",[34,274521,182],{"class":181},[34,274523,254151],{"class":50},[34,274525,274526,274529],{"class":36,"line":88},[34,274527,274528],{"class":177},"  ssl",[34,274530,193],{"class":181},[34,274532,274533,274536,274538],{"class":36,"line":242},[34,274534,274535],{"class":177},"    enabled",[34,274537,182],{"class":181},[34,274539,515],{"class":50},[34,274541,274542,274545,274547],{"class":36,"line":250},[34,274543,274544],{"class":177},"    cert",[34,274546,182],{"class":181},[34,274548,274549],{"class":54},"/path/to/cert.pem\n",[34,274551,274552,274554,274556],{"class":36,"line":263},[34,274553,247565],{"class":177},[34,274555,182],{"class":181},[34,274557,274558],{"class":54},"/path/to/key.pem\n",[34,274560,274561],{"class":36,"line":275},[34,274562,62],{"emptyLinePlaceholder":61},[34,274564,274565,274567],{"class":36,"line":700},[34,274566,254449],{"class":177},[34,274568,193],{"class":181},[34,274570,274571,274574,274576],{"class":36,"line":706},[34,274572,274573],{"class":177},"  level",[34,274575,182],{"class":181},[34,274577,274578],{"class":54},"info\n",[34,274580,274581,274584,274586],{"class":36,"line":715},[34,274582,274583],{"class":177},"  format",[34,274585,182],{"class":181},[34,274587,274588],{"class":54},"json\n",[34,274590,274591,274594],{"class":36,"line":725},[34,274592,274593],{"class":177},"  outputs",[34,274595,193],{"class":181},[34,274597,274598,274600],{"class":36,"line":734},[34,274599,5120],{"class":181},[34,274601,274602],{"class":54},"console\n",[34,274604,274605,274607],{"class":36,"line":742},[34,274606,5120],{"class":181},[34,274608,46651],{"class":54},[34,274610,274611],{"class":36,"line":748},[34,274612,62],{"emptyLinePlaceholder":61},[34,274614,274615,274617],{"class":36,"line":754},[34,274616,28650],{"class":177},[34,274618,193],{"class":181},[34,274620,274621,274623,274625],{"class":36,"line":759},[34,274622,139924],{"class":177},[34,274624,182],{"class":181},[34,274626,274627],{"class":54},"postgres\n",[34,274629,274630,274633],{"class":36,"line":771},[34,274631,274632],{"class":177},"  connection",[34,274634,193],{"class":181},[34,274636,274637,274639,274641],{"class":36,"line":794},[34,274638,129089],{"class":177},[34,274640,182],{"class":181},[34,274642,274643],{"class":54},"db.example.com\n",[34,274645,274646,274648,274650],{"class":36,"line":824},[34,274647,129101],{"class":177},[34,274649,182],{"class":181},[34,274651,254427],{"class":50},[34,274653,274654,274657,274659],{"class":36,"line":830},[34,274655,274656],{"class":177},"    database",[34,274658,182],{"class":181},[34,274660,139620],{"class":54},[34,274662,274663,274666,274668],{"class":36,"line":839},[34,274664,274665],{"class":177},"    pool_size",[34,274667,182],{"class":181},[34,274669,225000],{"class":50},[388,274671,274672],{},"html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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 .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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":30,"searchDepth":44,"depth":44,"links":274674},[274675],{"id":8369,"depth":44,"text":8370,"children":274676},[274677,274678,274679],{"id":55754,"depth":58,"text":56358},{"id":410,"depth":58,"text":92475},{"id":274464,"depth":58,"text":274465},"Common Use Cases in YAML.",{},"/yaml/common-use-cases",{"title":8370,"description":274680},"yaml/common-use-cases",[170,94338,190193,1701],"MxRe8S85H7T26rV-ZYFcOnfW2PcI6lYfOaaZuYT2oNA",{"id":274688,"title":274689,"body":274690,"date":402,"description":274867,"extension":404,"meta":274868,"navigation":61,"order":88,"path":274869,"seo":274870,"stem":274871,"subject":170,"tags":274872,"__hash__":274873},"topics/yaml/complex-structures.md","Complex Structures",{"type":8,"value":274691,"toc":274864},[274692,274695,274862],[11,274693,274689],{"id":274694},"complex-structures",[25,274696,274698],{"className":168,"code":274697,"language":170,"meta":30,"style":30},"# Mixed nested data\napplication:\n  name: MyApp\n  version: 1.0.0\n  \n  database:\n    host: localhost\n    port: 5432\n    credentials:\n      username: admin\n      password: secret\n  \n  features:\n    - authentication\n    - logging\n    - caching\n  \n  settings:\n    debug: false\n    max_connections: 100\n    allowed_hosts:\n      - example.com\n      - api.example.com\n",[20,274699,274700,274705,274712,274721,274730,274734,274740,274749,274757,274763,274773,274782,274786,274792,274799,274806,274813,274817,274824,274832,274842,274849,274856],{"__ignoreMap":30},[34,274701,274702],{"class":36,"line":37},[34,274703,274704],{"class":40},"# Mixed nested data\n",[34,274706,274707,274710],{"class":36,"line":44},[34,274708,274709],{"class":177},"application",[34,274711,193],{"class":181},[34,274713,274714,274716,274718],{"class":36,"line":58},[34,274715,7350],{"class":177},[34,274717,182],{"class":181},[34,274719,274720],{"class":54},"MyApp\n",[34,274722,274723,274725,274727],{"class":36,"line":65},[34,274724,168116],{"class":177},[34,274726,182],{"class":181},[34,274728,274729],{"class":50},"1.0.0\n",[34,274731,274732],{"class":36,"line":71},[34,274733,827],{"class":181},[34,274735,274736,274738],{"class":36,"line":77},[34,274737,129082],{"class":177},[34,274739,193],{"class":181},[34,274741,274742,274744,274746],{"class":36,"line":82},[34,274743,129089],{"class":177},[34,274745,182],{"class":181},[34,274747,274748],{"class":54},"localhost\n",[34,274750,274751,274753,274755],{"class":36,"line":88},[34,274752,129101],{"class":177},[34,274754,182],{"class":181},[34,274756,254427],{"class":50},[34,274758,274759,274761],{"class":36,"line":242},[34,274760,129112],{"class":177},[34,274762,193],{"class":181},[34,274764,274765,274768,274770],{"class":36,"line":250},[34,274766,274767],{"class":177},"      username",[34,274769,182],{"class":181},[34,274771,274772],{"class":54},"admin\n",[34,274774,274775,274778,274780],{"class":36,"line":263},[34,274776,274777],{"class":177},"      password",[34,274779,182],{"class":181},[34,274781,274243],{"class":54},[34,274783,274784],{"class":36,"line":275},[34,274785,827],{"class":181},[34,274787,274788,274790],{"class":36,"line":700},[34,274789,129164],{"class":177},[34,274791,193],{"class":181},[34,274793,274794,274796],{"class":36,"line":706},[34,274795,5120],{"class":181},[34,274797,274798],{"class":54},"authentication\n",[34,274800,274801,274803],{"class":36,"line":715},[34,274802,5120],{"class":181},[34,274804,274805],{"class":54},"logging\n",[34,274807,274808,274810],{"class":36,"line":725},[34,274809,5120],{"class":181},[34,274811,274812],{"class":54},"caching\n",[34,274814,274815],{"class":36,"line":734},[34,274816,827],{"class":181},[34,274818,274819,274822],{"class":36,"line":742},[34,274820,274821],{"class":177},"  settings",[34,274823,193],{"class":181},[34,274825,274826,274828,274830],{"class":36,"line":748},[34,274827,129055],{"class":177},[34,274829,182],{"class":181},[34,274831,14607],{"class":50},[34,274833,274834,274837,274839],{"class":36,"line":754},[34,274835,274836],{"class":177},"    max_connections",[34,274838,182],{"class":181},[34,274840,274841],{"class":50},"100\n",[34,274843,274844,274847],{"class":36,"line":759},[34,274845,274846],{"class":177},"    allowed_hosts",[34,274848,193],{"class":181},[34,274850,274851,274853],{"class":36,"line":771},[34,274852,212],{"class":181},[34,274854,274855],{"class":54},"example.com\n",[34,274857,274858,274860],{"class":36,"line":794},[34,274859,212],{"class":181},[34,274861,48362],{"class":54},[388,274863,56618],{},{"title":30,"searchDepth":44,"depth":44,"links":274865},[274866],{"id":274694,"depth":44,"text":274689},"Complex Structures in YAML.",{},"/yaml/complex-structures",{"title":274689,"description":274867},"yaml/complex-structures",[170,94338,190193,1701],"O0f2pH2Dedltn-Z_ncidQiff8BvsoFKF6BmqD7qLfYw",{"id":274875,"title":61423,"body":274876,"date":402,"description":275051,"extension":404,"meta":275052,"navigation":61,"order":58,"path":275053,"seo":275054,"stem":275055,"subject":170,"tags":275056,"__hash__":275057},"topics/yaml/data-types.md",{"type":8,"value":274877,"toc":275048},[274878,274880,275046],[11,274879,61423],{"id":61422},[25,274881,274883],{"className":168,"code":274882,"language":170,"meta":30,"style":30},"# Strings (quotes optional for simple strings)\nstring1: Hello World\nstring2: \"Hello World\"\nstring3: 'Hello World'\n\n# Numbers\ninteger: 42\nfloat: 3.14\nexponential: 1.23e+3\n\n# Booleans\nenabled: true\ndisabled: false\nyes_value: yes      # Also boolean true\nno_value: no        # Also boolean false\n\n# Null values\nempty: null\ntilde: ~            # Also null\nno_value:           # Also null (no value after colon)\n",[20,274884,274885,274890,274900,274909,274919,274923,274928,274936,274945,274955,274959,274963,274971,274980,274993,275006,275010,275015,275024,275036],{"__ignoreMap":30},[34,274886,274887],{"class":36,"line":37},[34,274888,274889],{"class":40},"# Strings (quotes optional for simple strings)\n",[34,274891,274892,274895,274897],{"class":36,"line":44},[34,274893,274894],{"class":177},"string1",[34,274896,182],{"class":181},[34,274898,274899],{"class":54},"Hello World\n",[34,274901,274902,274905,274907],{"class":36,"line":58},[34,274903,274904],{"class":177},"string2",[34,274906,182],{"class":181},[34,274908,12651],{"class":54},[34,274910,274911,274914,274916],{"class":36,"line":65},[34,274912,274913],{"class":177},"string3",[34,274915,182],{"class":181},[34,274917,274918],{"class":54},"'Hello World'\n",[34,274920,274921],{"class":36,"line":71},[34,274922,62],{"emptyLinePlaceholder":61},[34,274924,274925],{"class":36,"line":77},[34,274926,274927],{"class":40},"# Numbers\n",[34,274929,274930,274932,274934],{"class":36,"line":82},[34,274931,58519],{"class":177},[34,274933,182],{"class":181},[34,274935,254617],{"class":50},[34,274937,274938,274940,274942],{"class":36,"line":88},[34,274939,25079],{"class":177},[34,274941,182],{"class":181},[34,274943,274944],{"class":50},"3.14\n",[34,274946,274947,274950,274952],{"class":36,"line":242},[34,274948,274949],{"class":177},"exponential",[34,274951,182],{"class":181},[34,274953,274954],{"class":50},"1.23e+3\n",[34,274956,274957],{"class":36,"line":250},[34,274958,62],{"emptyLinePlaceholder":61},[34,274960,274961],{"class":36,"line":263},[34,274962,254703],{"class":40},[34,274964,274965,274967,274969],{"class":36,"line":275},[34,274966,245575],{"class":177},[34,274968,182],{"class":181},[34,274970,515],{"class":50},[34,274972,274973,274976,274978],{"class":36,"line":700},[34,274974,274975],{"class":177},"disabled",[34,274977,182],{"class":181},[34,274979,14607],{"class":50},[34,274981,274982,274985,274987,274990],{"class":36,"line":706},[34,274983,274984],{"class":177},"yes_value",[34,274986,182],{"class":181},[34,274988,274989],{"class":50},"yes",[34,274991,274992],{"class":40},"      # Also boolean true\n",[34,274994,274995,274998,275000,275003],{"class":36,"line":715},[34,274996,274997],{"class":177},"no_value",[34,274999,182],{"class":181},[34,275001,275002],{"class":50},"no",[34,275004,275005],{"class":40},"        # Also boolean false\n",[34,275007,275008],{"class":36,"line":725},[34,275009,62],{"emptyLinePlaceholder":61},[34,275011,275012],{"class":36,"line":734},[34,275013,275014],{"class":40},"# Null values\n",[34,275016,275017,275019,275021],{"class":36,"line":742},[34,275018,29958],{"class":177},[34,275020,182],{"class":181},[34,275022,275023],{"class":50},"null\n",[34,275025,275026,275029,275031,275033],{"class":36,"line":748},[34,275027,275028],{"class":177},"tilde",[34,275030,182],{"class":181},[34,275032,13692],{"class":50},[34,275034,275035],{"class":40},"            # Also null\n",[34,275037,275038,275040,275043],{"class":36,"line":754},[34,275039,274997],{"class":177},[34,275041,275042],{"class":181},":           ",[34,275044,275045],{"class":40},"# Also null (no value after colon)\n",[388,275047,56618],{},{"title":30,"searchDepth":44,"depth":44,"links":275049},[275050],{"id":61422,"depth":44,"text":61423},"Data Types in YAML.",{},"/yaml/data-types",{"title":61423,"description":275051},"yaml/data-types",[170,94338,190193,1701],"K69eISL2Qd2LJHXv8jLTujrQuBhEAzMv1HEqgqD8jpk",{"id":275059,"title":275060,"body":275061,"date":402,"description":275197,"extension":404,"meta":275198,"navigation":61,"order":71,"path":275199,"seo":275200,"stem":275201,"subject":170,"tags":275202,"__hash__":275203},"topics/yaml/lists-arrays.md","Lists (Arrays)",{"type":8,"value":275062,"toc":275194},[275063,275066,275192],[11,275064,275060],{"id":275065},"lists-arrays",[25,275067,275069],{"className":168,"code":275068,"language":170,"meta":30,"style":30},"# Block style (recommended)\nfruits:\n  - apple\n  - banana\n  - orange\n\n# Flow style (inline)\nnumbers: [1, 2, 3, 4, 5]\n\n# List of objects\nusers:\n  - name: Alice\n    age: 25\n  - name: Bob\n    age: 30\n",[20,275070,275071,275076,275082,275089,275096,275103,275107,275112,275138,275142,275147,275153,275164,275173,275184],{"__ignoreMap":30},[34,275072,275073],{"class":36,"line":37},[34,275074,275075],{"class":40},"# Block style (recommended)\n",[34,275077,275078,275080],{"class":36,"line":44},[34,275079,10081],{"class":177},[34,275081,193],{"class":181},[34,275083,275084,275086],{"class":36,"line":58},[34,275085,46644],{"class":181},[34,275087,275088],{"class":54},"apple\n",[34,275090,275091,275093],{"class":36,"line":65},[34,275092,46644],{"class":181},[34,275094,275095],{"class":54},"banana\n",[34,275097,275098,275100],{"class":36,"line":71},[34,275099,46644],{"class":181},[34,275101,275102],{"class":54},"orange\n",[34,275104,275105],{"class":36,"line":77},[34,275106,62],{"emptyLinePlaceholder":61},[34,275108,275109],{"class":36,"line":82},[34,275110,275111],{"class":40},"# Flow style (inline)\n",[34,275113,275114,275116,275118,275120,275122,275124,275126,275128,275130,275132,275134,275136],{"class":36,"line":88},[34,275115,33330],{"class":177},[34,275117,47204],{"class":181},[34,275119,8318],{"class":50},[34,275121,1798],{"class":181},[34,275123,8324],{"class":50},[34,275125,1798],{"class":181},[34,275127,3162],{"class":50},[34,275129,1798],{"class":181},[34,275131,18010],{"class":50},[34,275133,1798],{"class":181},[34,275135,2778],{"class":50},[34,275137,924],{"class":181},[34,275139,275140],{"class":36,"line":242},[34,275141,62],{"emptyLinePlaceholder":61},[34,275143,275144],{"class":36,"line":250},[34,275145,275146],{"class":40},"# List of objects\n",[34,275148,275149,275151],{"class":36,"line":263},[34,275150,4097],{"class":177},[34,275152,193],{"class":181},[34,275154,275155,275157,275159,275161],{"class":36,"line":275},[34,275156,46644],{"class":181},[34,275158,178],{"class":177},[34,275160,182],{"class":181},[34,275162,275163],{"class":54},"Alice\n",[34,275165,275166,275169,275171],{"class":36,"line":700},[34,275167,275168],{"class":177},"    age",[34,275170,182],{"class":181},[34,275172,10225],{"class":50},[34,275174,275175,275177,275179,275181],{"class":36,"line":706},[34,275176,46644],{"class":181},[34,275178,178],{"class":177},[34,275180,182],{"class":181},[34,275182,275183],{"class":54},"Bob\n",[34,275185,275186,275188,275190],{"class":36,"line":715},[34,275187,275168],{"class":177},[34,275189,182],{"class":181},[34,275191,119888],{"class":50},[388,275193,56618],{},{"title":30,"searchDepth":44,"depth":44,"links":275195},[275196],{"id":275065,"depth":44,"text":275060},"Lists (Arrays) in YAML.",{},"/yaml/lists-arrays",{"title":275060,"description":275197},"yaml/lists-arrays",[170,94338,190193,1701],"bQaPP4e9WC-gl8vFi1cRYKLFGpWN7mUpy_w1xA9Zw-M",{"id":275205,"title":275206,"body":275207,"date":402,"description":275313,"extension":404,"meta":275314,"navigation":61,"order":77,"path":275315,"seo":275316,"stem":275317,"subject":170,"tags":275318,"__hash__":275319},"topics/yaml/multi-line-strings.md","Multi-line Strings",{"type":8,"value":275208,"toc":275310},[275209,275212,275307],[11,275210,275206],{"id":275211},"multi-line-strings",[25,275213,275215],{"className":168,"code":275214,"language":170,"meta":30,"style":30},"# Literal block (preserves newlines, indicated by |)\ndescription: |\n  This is a multi-line string.\n  Line breaks are preserved.\n  Useful for long text.\n\n# Folded block (converts newlines to spaces, indicated by >)\nsummary: >\n  This text will be folded\n  into a single line with\n  spaces between words.\n\n# With indentation control\ncode: |2\n    def hello():\n        print(\"Hello\")  # Keeps 2-space indent\n",[20,275216,275217,275222,275231,275236,275241,275246,275250,275255,275263,275268,275273,275278,275282,275287,275297,275302],{"__ignoreMap":30},[34,275218,275219],{"class":36,"line":37},[34,275220,275221],{"class":40},"# Literal block (preserves newlines, indicated by |)\n",[34,275223,275224,275227,275229],{"class":36,"line":44},[34,275225,275226],{"class":177},"description",[34,275228,182],{"class":181},[34,275230,148432],{"class":580},[34,275232,275233],{"class":36,"line":58},[34,275234,275235],{"class":54},"  This is a multi-line string.\n",[34,275237,275238],{"class":36,"line":65},[34,275239,275240],{"class":54},"  Line breaks are preserved.\n",[34,275242,275243],{"class":36,"line":71},[34,275244,275245],{"class":54},"  Useful for long text.\n",[34,275247,275248],{"class":36,"line":77},[34,275249,62],{"emptyLinePlaceholder":61},[34,275251,275252],{"class":36,"line":82},[34,275253,275254],{"class":40},"# Folded block (converts newlines to spaces, indicated by >)\n",[34,275256,275257,275259,275261],{"class":36,"line":88},[34,275258,117480],{"class":177},[34,275260,182],{"class":181},[34,275262,1248],{"class":580},[34,275264,275265],{"class":36,"line":242},[34,275266,275267],{"class":54},"  This text will be folded\n",[34,275269,275270],{"class":36,"line":250},[34,275271,275272],{"class":54},"  into a single line with\n",[34,275274,275275],{"class":36,"line":263},[34,275276,275277],{"class":54},"  spaces between words.\n",[34,275279,275280],{"class":36,"line":275},[34,275281,62],{"emptyLinePlaceholder":61},[34,275283,275284],{"class":36,"line":700},[34,275285,275286],{"class":40},"# With indentation control\n",[34,275288,275289,275291,275293,275295],{"class":36,"line":706},[34,275290,20],{"class":177},[34,275292,182],{"class":181},[34,275294,2670],{"class":580},[34,275296,91180],{"class":50},[34,275298,275299],{"class":36,"line":715},[34,275300,275301],{"class":54},"    def hello():\n",[34,275303,275304],{"class":36,"line":725},[34,275305,275306],{"class":54},"        print(\"Hello\")  # Keeps 2-space indent\n",[388,275308,275309],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .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":30,"searchDepth":44,"depth":44,"links":275311},[275312],{"id":275211,"depth":44,"text":275206},"Multi-line Strings in YAML.",{},"/yaml/multi-line-strings",{"title":275206,"description":275313},"yaml/multi-line-strings",[170,94338,190193,1701],"LPx8_ZJ4yg05mPDtD8DS-qlZMaxzFTswlOgDgWF1n8U",{"id":275321,"title":275322,"body":275323,"date":2633,"description":275370,"extension":404,"meta":275371,"navigation":61,"order":37,"path":275372,"seo":275373,"stem":275374,"subject":170,"tags":275375,"__hash__":275376},"topics/yaml/overview.md","YAML",{"type":8,"value":275324,"toc":275368},[275325],[309,275326,275327,275331,275335,275339,275343,275347,275351,275355,275359,275364],{},[312,275328,275329],{},[145,275330,33160],{"href":273875},[312,275332,275333],{},[145,275334,61423],{"href":275053},[312,275336,275337],{},[145,275338,128460],{"href":274121},[312,275340,275341],{},[145,275342,275060],{"href":275199},[312,275344,275345],{},[145,275346,275206],{"href":275315},[312,275348,275349],{},[145,275350,273631],{"href":273764},[312,275352,275353],{},[145,275354,274689],{"href":274869},[312,275356,275357],{},[145,275358,8370],{"href":274682},[312,275360,275361],{},[145,275362,129874],{"href":275363},"/yaml/special-characters",[312,275365,275366],{},[145,275367,5595],{"href":274056},{"title":30,"searchDepth":44,"depth":44,"links":275369},[],"YAML syntax for configuration files, data serialization, and structured data.",{},"/yaml/overview",{"title":275322,"description":275370},"yaml/overview",[170,94338,190193,1701],"f3V4eIqCb5sQxsLlqyAgh5CcorrsBe4eLlWh9vPzRTw",{"id":275378,"title":129874,"body":275379,"date":402,"description":275504,"extension":404,"meta":275505,"navigation":61,"order":250,"path":275363,"seo":275506,"stem":275507,"subject":170,"tags":275508,"__hash__":275509},"topics/yaml/special-characters.md",{"type":8,"value":275380,"toc":275501},[275381,275383,275498],[11,275382,129874],{"id":129902},[25,275384,275386],{"className":168,"code":275385,"language":170,"meta":30,"style":30},"# Strings containing special characters need quotes\nspecial: \"key: value\"\ncolon: \"text with : colon\"\nhash: \"text with # hash\"\n\n# Escaping quotes\nsingle: 'It''s escaped'\ndouble: \"He said \\\"hello\\\"\"\n\n# Multiple documents in one file (separated by ---)\n---\ndocument: first\n---\ndocument: second\n",[20,275387,275388,275393,275403,275413,275422,275426,275431,275445,275463,275467,275472,275476,275485,275489],{"__ignoreMap":30},[34,275389,275390],{"class":36,"line":37},[34,275391,275392],{"class":40},"# Strings containing special characters need quotes\n",[34,275394,275395,275398,275400],{"class":36,"line":44},[34,275396,275397],{"class":177},"special",[34,275399,182],{"class":181},[34,275401,275402],{"class":54},"\"key: value\"\n",[34,275404,275405,275408,275410],{"class":36,"line":58},[34,275406,275407],{"class":177},"colon",[34,275409,182],{"class":181},[34,275411,275412],{"class":54},"\"text with : colon\"\n",[34,275414,275415,275417,275419],{"class":36,"line":65},[34,275416,16416],{"class":177},[34,275418,182],{"class":181},[34,275420,275421],{"class":54},"\"text with # hash\"\n",[34,275423,275424],{"class":36,"line":71},[34,275425,62],{"emptyLinePlaceholder":61},[34,275427,275428],{"class":36,"line":77},[34,275429,275430],{"class":40},"# Escaping quotes\n",[34,275432,275433,275435,275437,275440,275442],{"class":36,"line":82},[34,275434,211680],{"class":177},[34,275436,182],{"class":181},[34,275438,275439],{"class":54},"'It",[34,275441,3151],{"class":50},[34,275443,275444],{"class":54},"s escaped'\n",[34,275446,275447,275449,275451,275454,275456,275459,275461],{"class":36,"line":88},[34,275448,25097],{"class":177},[34,275450,182],{"class":181},[34,275452,275453],{"class":54},"\"He said ",[34,275455,84979],{"class":50},[34,275457,275458],{"class":54},"hello",[34,275460,84979],{"class":50},[34,275462,11320],{"class":54},[34,275464,275465],{"class":36,"line":242},[34,275466,62],{"emptyLinePlaceholder":61},[34,275468,275469],{"class":36,"line":250},[34,275470,275471],{"class":40},"# Multiple documents in one file (separated by ---)\n",[34,275473,275474],{"class":36,"line":263},[34,275475,146768],{"class":47},[34,275477,275478,275480,275482],{"class":36,"line":275},[34,275479,85301],{"class":177},[34,275481,182],{"class":181},[34,275483,275484],{"class":54},"first\n",[34,275486,275487],{"class":36,"line":700},[34,275488,146768],{"class":47},[34,275490,275491,275493,275495],{"class":36,"line":706},[34,275492,85301],{"class":177},[34,275494,182],{"class":181},[34,275496,275497],{"class":54},"second\n",[388,275499,275500],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}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 .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":30,"searchDepth":44,"depth":44,"links":275502},[275503],{"id":129902,"depth":44,"text":129874},"Special Characters in YAML.",{},{"title":129874,"description":275504},"yaml/special-characters",[170,94338,190193,1701],"4NQ5gWVKMicszq3WZTTGgTy1_c1Akz9EPIZ2_JDjIzo",{"id":275511,"title":159164,"body":275512,"date":402,"description":275574,"extension":404,"meta":275575,"navigation":61,"order":242,"path":275576,"seo":275577,"stem":275578,"subject":13810,"tags":275579,"__hash__":275580},"topics/yarn/cache-management.md",{"type":8,"value":275513,"toc":275571},[275514,275516,275569],[11,275515,159164],{"id":159169},[25,275517,275519],{"className":27,"code":275518,"language":29,"meta":30,"style":30},"# List cached packages\nyarn cache list\n\n# Clean the cache\nyarn cache clean\n\n# Get cache directory\nyarn cache dir\n",[20,275520,275521,275526,275534,275538,275543,275551,275555,275560],{"__ignoreMap":30},[34,275522,275523],{"class":36,"line":37},[34,275524,275525],{"class":40},"# List cached packages\n",[34,275527,275528,275530,275532],{"class":36,"line":44},[34,275529,13810],{"class":47},[34,275531,48296],{"class":54},[34,275533,7536],{"class":54},[34,275535,275536],{"class":36,"line":58},[34,275537,62],{"emptyLinePlaceholder":61},[34,275539,275540],{"class":36,"line":65},[34,275541,275542],{"class":40},"# Clean the cache\n",[34,275544,275545,275547,275549],{"class":36,"line":71},[34,275546,13810],{"class":47},[34,275548,48296],{"class":54},[34,275550,5758],{"class":54},[34,275552,275553],{"class":36,"line":77},[34,275554,62],{"emptyLinePlaceholder":61},[34,275556,275557],{"class":36,"line":82},[34,275558,275559],{"class":40},"# Get cache directory\n",[34,275561,275562,275564,275566],{"class":36,"line":88},[34,275563,13810],{"class":47},[34,275565,48296],{"class":54},[34,275567,275568],{"class":54}," dir\n",[388,275570,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":275572},[275573],{"id":159169,"depth":44,"text":159164},"Cache Management in Yarn.",{},"/yarn/cache-management",{"title":159164,"description":275574},"yarn/cache-management",[13810,5591,78040,8606],"hyY_ZCBdLk-L-nfpXfl0KZt2i7CZXbBDwZ0aIUNaBEo",{"id":275582,"title":8686,"body":275583,"date":402,"description":275691,"extension":404,"meta":275692,"navigation":61,"order":275,"path":275693,"seo":275694,"stem":275695,"subject":13810,"tags":275696,"__hash__":275697},"topics/yarn/configuration.md",{"type":8,"value":275584,"toc":275688},[275585,275587,275686],[11,275586,8686],{"id":558},[25,275588,275590],{"className":27,"code":275589,"language":29,"meta":30,"style":30},"# Set a config value\nyarn config set key value\n\n# Get a config value\nyarn config get key\n\n# List all config\nyarn config list\n\n# Delete a config value\nyarn config delete key\n\n# Set registry\nyarn config set registry https://registry.npmjs.org\n",[20,275591,275592,275597,275610,275614,275619,275629,275633,275637,275645,275649,275654,275664,275668,275673],{"__ignoreMap":30},[34,275593,275594],{"class":36,"line":37},[34,275595,275596],{"class":40},"# Set a config value\n",[34,275598,275599,275601,275603,275605,275607],{"class":36,"line":44},[34,275600,13810],{"class":47},[34,275602,58810],{"class":54},[34,275604,9481],{"class":54},[34,275606,64586],{"class":54},[34,275608,275609],{"class":54}," value\n",[34,275611,275612],{"class":36,"line":58},[34,275613,62],{"emptyLinePlaceholder":61},[34,275615,275616],{"class":36,"line":65},[34,275617,275618],{"class":40},"# Get a config value\n",[34,275620,275621,275623,275625,275627],{"class":36,"line":71},[34,275622,13810],{"class":47},[34,275624,58810],{"class":54},[34,275626,7173],{"class":54},[34,275628,203325],{"class":54},[34,275630,275631],{"class":36,"line":77},[34,275632,62],{"emptyLinePlaceholder":61},[34,275634,275635],{"class":36,"line":82},[34,275636,92010],{"class":40},[34,275638,275639,275641,275643],{"class":36,"line":88},[34,275640,13810],{"class":47},[34,275642,58810],{"class":54},[34,275644,7536],{"class":54},[34,275646,275647],{"class":36,"line":242},[34,275648,62],{"emptyLinePlaceholder":61},[34,275650,275651],{"class":36,"line":250},[34,275652,275653],{"class":40},"# Delete a config value\n",[34,275655,275656,275658,275660,275662],{"class":36,"line":263},[34,275657,13810],{"class":47},[34,275659,58810],{"class":54},[34,275661,9562],{"class":54},[34,275663,203325],{"class":54},[34,275665,275666],{"class":36,"line":275},[34,275667,62],{"emptyLinePlaceholder":61},[34,275669,275670],{"class":36,"line":700},[34,275671,275672],{"class":40},"# Set registry\n",[34,275674,275675,275677,275679,275681,275683],{"class":36,"line":706},[34,275676,13810],{"class":47},[34,275678,58810],{"class":54},[34,275680,9481],{"class":54},[34,275682,159356],{"class":54},[34,275684,275685],{"class":54}," https://registry.npmjs.org\n",[388,275687,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":275689},[275690],{"id":558,"depth":44,"text":8686},"Configuration in Yarn.",{},"/yarn/configuration",{"title":8686,"description":275691},"yarn/configuration",[13810,5591,78040,8606],"6mSiCwrejLczKc3Mllgf37USp3HTwGH_erW_yawJtGk",{"id":275699,"title":275700,"body":275701,"date":402,"description":275791,"extension":404,"meta":275792,"navigation":61,"order":88,"path":275793,"seo":275794,"stem":275795,"subject":13810,"tags":275796,"__hash__":275797},"topics/yarn/dependency-information.md","Dependency Information",{"type":8,"value":275702,"toc":275788},[275703,275706,275786],[11,275704,275700],{"id":275705},"dependency-information",[25,275707,275709],{"className":27,"code":275708,"language":29,"meta":30,"style":30},"# List installed packages\nyarn list\n\n# List top-level packages only\nyarn list --depth=0\n\n# Check why a package is installed\nyarn why package-name\n\n# Show information about a package\nyarn info package-name\n\n# Check for outdated packages\nyarn outdated\n",[20,275710,275711,275715,275721,275725,275729,275737,275741,275746,275755,275759,275764,275772,275776,275780],{"__ignoreMap":30},[34,275712,275713],{"class":36,"line":37},[34,275714,16346],{"class":40},[34,275716,275717,275719],{"class":36,"line":44},[34,275718,13810],{"class":47},[34,275720,7536],{"class":54},[34,275722,275723],{"class":36,"line":58},[34,275724,62],{"emptyLinePlaceholder":61},[34,275726,275727],{"class":36,"line":65},[34,275728,159769],{"class":40},[34,275730,275731,275733,275735],{"class":36,"line":71},[34,275732,13810],{"class":47},[34,275734,6345],{"class":54},[34,275736,159778],{"class":50},[34,275738,275739],{"class":36,"line":77},[34,275740,62],{"emptyLinePlaceholder":61},[34,275742,275743],{"class":36,"line":82},[34,275744,275745],{"class":40},"# Check why a package is installed\n",[34,275747,275748,275750,275752],{"class":36,"line":88},[34,275749,13810],{"class":47},[34,275751,180577],{"class":54},[34,275753,275754],{"class":54}," package-name\n",[34,275756,275757],{"class":36,"line":242},[34,275758,62],{"emptyLinePlaceholder":61},[34,275760,275761],{"class":36,"line":250},[34,275762,275763],{"class":40},"# Show information about a package\n",[34,275765,275766,275768,275770],{"class":36,"line":263},[34,275767,13810],{"class":47},[34,275769,54126],{"class":54},[34,275771,275754],{"class":54},[34,275773,275774],{"class":36,"line":275},[34,275775,62],{"emptyLinePlaceholder":61},[34,275777,275778],{"class":36,"line":700},[34,275779,160794],{"class":40},[34,275781,275782,275784],{"class":36,"line":706},[34,275783,13810],{"class":47},[34,275785,115160],{"class":54},[388,275787,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":275789},[275790],{"id":275705,"depth":44,"text":275700},"Dependency Information in Yarn.",{},"/yarn/dependency-information",{"title":275700,"description":275791},"yarn/dependency-information",[13810,5591,78040,8606],"V66iKuZ3yfz6m4xx2Tc-Lq6RRFG2Qvr3x_ocKovTrUQ",{"id":275799,"title":97,"body":275800,"date":402,"description":275845,"extension":404,"meta":275846,"navigation":61,"order":44,"path":275847,"seo":275848,"stem":275849,"subject":13810,"tags":275850,"__hash__":275851},"topics/yarn/installation.md",{"type":8,"value":275801,"toc":275842},[275802,275804,275840],[11,275803,97],{"id":96},[25,275805,275807],{"className":27,"code":275806,"language":29,"meta":30,"style":30},"# Install Yarn globally via npm\nnpm install -g yarn\n\n# Check Yarn version\nyarn --version\n",[20,275808,275809,275814,275825,275829,275834],{"__ignoreMap":30},[34,275810,275811],{"class":36,"line":37},[34,275812,275813],{"class":40},"# Install Yarn globally via npm\n",[34,275815,275816,275818,275820,275822],{"class":36,"line":44},[34,275817,8177],{"class":47},[34,275819,118],{"class":54},[34,275821,9753],{"class":50},[34,275823,275824],{"class":54}," yarn\n",[34,275826,275827],{"class":36,"line":58},[34,275828,62],{"emptyLinePlaceholder":61},[34,275830,275831],{"class":36,"line":65},[34,275832,275833],{"class":40},"# Check Yarn version\n",[34,275835,275836,275838],{"class":36,"line":71},[34,275837,13810],{"class":47},[34,275839,5013],{"class":50},[388,275841,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":275843},[275844],{"id":96,"depth":44,"text":97},"Installation in Yarn.",{},"/yarn/installation",{"title":97,"description":275845},"yarn/installation",[13810,5591,78040,8606],"Aj4q0qRuLNOlah2nOPDmYsLJFdHURUt76TNXyEWdGnM",{"id":275853,"title":275854,"body":275855,"date":402,"description":275973,"extension":404,"meta":275974,"navigation":61,"order":65,"path":275975,"seo":275976,"stem":275977,"subject":13810,"tags":275978,"__hash__":275979},"topics/yarn/installing-dependencies.md","Installing Dependencies",{"type":8,"value":275856,"toc":275970},[275857,275860,275968],[11,275858,275854],{"id":275859},"installing-dependencies",[25,275861,275863],{"className":27,"code":275862,"language":29,"meta":30,"style":30},"# Install all dependencies from package.json\nyarn install\n\n# Install a package and add to dependencies\nyarn add package-name\n\n# Install a specific version\nyarn add package-name@1.2.3\n\n# Install a package as dev dependency\nyarn add package-name --dev\n\n# Install a package globally\nyarn global add package-name\n\n# Install exact version (no ^ or ~)\nyarn add package-name --exact\n",[20,275864,275865,275869,275875,275879,275884,275892,275896,275900,275909,275913,275918,275930,275934,275939,275949,275953,275957],{"__ignoreMap":30},[34,275866,275867],{"class":36,"line":37},[34,275868,159519],{"class":40},[34,275870,275871,275873],{"class":36,"line":44},[34,275872,13810],{"class":47},[34,275874,5951],{"class":54},[34,275876,275877],{"class":36,"line":58},[34,275878,62],{"emptyLinePlaceholder":61},[34,275880,275881],{"class":36,"line":65},[34,275882,275883],{"class":40},"# Install a package and add to dependencies\n",[34,275885,275886,275888,275890],{"class":36,"line":71},[34,275887,13810],{"class":47},[34,275889,7854],{"class":54},[34,275891,275754],{"class":54},[34,275893,275894],{"class":36,"line":77},[34,275895,62],{"emptyLinePlaceholder":61},[34,275897,275898],{"class":36,"line":82},[34,275899,6191],{"class":40},[34,275901,275902,275904,275906],{"class":36,"line":88},[34,275903,13810],{"class":47},[34,275905,7854],{"class":54},[34,275907,275908],{"class":54}," package-name@1.2.3\n",[34,275910,275911],{"class":36,"line":242},[34,275912,62],{"emptyLinePlaceholder":61},[34,275914,275915],{"class":36,"line":250},[34,275916,275917],{"class":40},"# Install a package as dev dependency\n",[34,275919,275920,275922,275924,275927],{"class":36,"line":263},[34,275921,13810],{"class":47},[34,275923,7854],{"class":54},[34,275925,275926],{"class":54}," package-name",[34,275928,275929],{"class":50}," --dev\n",[34,275931,275932],{"class":36,"line":275},[34,275933,62],{"emptyLinePlaceholder":61},[34,275935,275936],{"class":36,"line":700},[34,275937,275938],{"class":40},"# Install a package globally\n",[34,275940,275941,275943,275945,275947],{"class":36,"line":706},[34,275942,13810],{"class":47},[34,275944,7933],{"class":54},[34,275946,7854],{"class":54},[34,275948,275754],{"class":54},[34,275950,275951],{"class":36,"line":715},[34,275952,62],{"emptyLinePlaceholder":61},[34,275954,275955],{"class":36,"line":725},[34,275956,180399],{"class":40},[34,275958,275959,275961,275963,275965],{"class":36,"line":734},[34,275960,13810],{"class":47},[34,275962,7854],{"class":54},[34,275964,275926],{"class":54},[34,275966,275967],{"class":50}," --exact\n",[388,275969,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":275971},[275972],{"id":275859,"depth":44,"text":275854},"Installing Dependencies in Yarn.",{},"/yarn/installing-dependencies",{"title":275854,"description":275973},"yarn/installing-dependencies",[13810,5591,78040,8606],"h6SqYnGIxkZPEe9nfrh26CHL7t0Ar3Cz-REs_PI-KRY",{"id":275981,"title":275982,"body":275983,"date":402,"description":276046,"extension":404,"meta":276047,"navigation":61,"order":263,"path":276048,"seo":276049,"stem":276050,"subject":13810,"tags":276051,"__hash__":276052},"topics/yarn/lock-file.md","Lock File",{"type":8,"value":275984,"toc":276043},[275985,275988,276041],[11,275986,275982],{"id":275987},"lock-file",[25,275989,275991],{"className":27,"code":275990,"language":29,"meta":30,"style":30},"# Generate yarn.lock without installing\nyarn install --frozen-lockfile\n\n# Install without generating lock file\nyarn install --no-lockfile\n\n# Update the lock file\nyarn install --force\n",[20,275992,275993,275998,276006,276010,276015,276024,276028,276033],{"__ignoreMap":30},[34,275994,275995],{"class":36,"line":37},[34,275996,275997],{"class":40},"# Generate yarn.lock without installing\n",[34,275999,276000,276002,276004],{"class":36,"line":44},[34,276001,13810],{"class":47},[34,276003,118],{"class":54},[34,276005,179888],{"class":50},[34,276007,276008],{"class":36,"line":58},[34,276009,62],{"emptyLinePlaceholder":61},[34,276011,276012],{"class":36,"line":65},[34,276013,276014],{"class":40},"# Install without generating lock file\n",[34,276016,276017,276019,276021],{"class":36,"line":71},[34,276018,13810],{"class":47},[34,276020,118],{"class":54},[34,276022,276023],{"class":50}," --no-lockfile\n",[34,276025,276026],{"class":36,"line":77},[34,276027,62],{"emptyLinePlaceholder":61},[34,276029,276030],{"class":36,"line":82},[34,276031,276032],{"class":40},"# Update the lock file\n",[34,276034,276035,276037,276039],{"class":36,"line":88},[34,276036,13810],{"class":47},[34,276038,118],{"class":54},[34,276040,159210],{"class":50},[388,276042,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":276044},[276045],{"id":275987,"depth":44,"text":275982},"Lock File in Yarn.",{},"/yarn/lock-file",{"title":275982,"description":276046},"yarn/lock-file",[13810,5591,78040,8606],"19OXJ4Wu9XhZLBfI8HxxJKdwXNYoT044OR2Jp9tyd5E",{"id":276054,"title":238207,"body":276055,"date":2633,"description":276128,"extension":404,"meta":276129,"navigation":61,"order":37,"path":276130,"seo":276131,"stem":276132,"subject":13810,"tags":276133,"__hash__":276134},"topics/yarn/overview.md",{"type":8,"value":276056,"toc":276126},[276057],[309,276058,276059,276063,276068,276072,276078,276083,276088,276092,276096,276101,276105,276109,276114,276120],{},[312,276060,276061],{},[145,276062,97],{"href":275847},[312,276064,276065],{},[145,276066,160009],{"href":276067},"/yarn/project-initialization",[312,276069,276070],{},[145,276071,275854],{"href":275975},[312,276073,276074],{},[145,276075,276077],{"href":276076},"/yarn/removing-dependencies","Removing Dependencies",[312,276079,276080],{},[145,276081,181024],{"href":276082},"/yarn/updating-dependencies",[312,276084,276085],{},[145,276086,15995],{"href":276087},"/yarn/running-scripts",[312,276089,276090],{},[145,276091,275700],{"href":275793},[312,276093,276094],{},[145,276095,159164],{"href":275576},[312,276097,276098],{},[145,276099,160057],{"href":276100},"/yarn/workspaces-monorepo",[312,276102,276103],{},[145,276104,275982],{"href":276048},[312,276106,276107],{},[145,276108,8686],{"href":275693},[312,276110,276111],{},[145,276112,181596],{"href":276113},"/yarn/publishing",[312,276115,276116],{},[145,276117,276119],{"href":276118},"/yarn/utility-commands","Utility Commands",[312,276121,276122],{},[145,276123,276125],{"href":276124},"/yarn/yarn-2-berry-specific","Yarn 2+ (Berry) Specific",{"title":30,"searchDepth":44,"depth":44,"links":276127},[],"Essential Yarn commands for package management in JavaScript and Node.js projects.",{},"/yarn/overview",{"title":238207,"description":276128},"yarn/overview",[13810,5591,78040,8606],"QpWU1n0C-ZdvnRNhR5-bwLbYklYoi-ORGNaOzTFNcko",{"id":276136,"title":160009,"body":276137,"date":402,"description":276179,"extension":404,"meta":276180,"navigation":61,"order":58,"path":276067,"seo":276181,"stem":276182,"subject":13810,"tags":276183,"__hash__":276184},"topics/yarn/project-initialization.md",{"type":8,"value":276138,"toc":276176},[276139,276141,276174],[11,276140,160009],{"id":160252},[25,276142,276144],{"className":27,"code":276143,"language":29,"meta":30,"style":30},"# Create a new package.json\nyarn init\n\n# Create package.json with defaults\nyarn init -y\n",[20,276145,276146,276151,276157,276161,276166],{"__ignoreMap":30},[34,276147,276148],{"class":36,"line":37},[34,276149,276150],{"class":40},"# Create a new package.json\n",[34,276152,276153,276155],{"class":36,"line":44},[34,276154,13810],{"class":47},[34,276156,8180],{"class":54},[34,276158,276159],{"class":36,"line":58},[34,276160,62],{"emptyLinePlaceholder":61},[34,276162,276163],{"class":36,"line":65},[34,276164,276165],{"class":40},"# Create package.json with defaults\n",[34,276167,276168,276170,276172],{"class":36,"line":71},[34,276169,13810],{"class":47},[34,276171,5255],{"class":54},[34,276173,5665],{"class":50},[388,276175,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":276177},[276178],{"id":160252,"depth":44,"text":160009},"Project Initialization in Yarn.",{},{"title":160009,"description":276179},"yarn/project-initialization",[13810,5591,78040,8606],"nu5Ondi6VW2oNbvcwnAClzMLCQ6m1JYJLbKt5Wl_Mac",{"id":276186,"title":181596,"body":276187,"date":402,"description":276262,"extension":404,"meta":276263,"navigation":61,"order":700,"path":276113,"seo":276264,"stem":276265,"subject":13810,"tags":276266,"__hash__":276267},"topics/yarn/publishing.md",{"type":8,"value":276188,"toc":276259},[276189,276191,276257],[11,276190,181596],{"id":181601},[25,276192,276194],{"className":27,"code":276193,"language":29,"meta":30,"style":30},"# Login to npm registry\nyarn login\n\n# Publish a package\nyarn publish\n\n# Publish with a new version\nyarn publish --new-version 1.0.0\n\n# Logout from registry\nyarn logout\n",[20,276195,276196,276201,276207,276211,276216,276222,276226,276231,276242,276246,276251],{"__ignoreMap":30},[34,276197,276198],{"class":36,"line":37},[34,276199,276200],{"class":40},"# Login to npm registry\n",[34,276202,276203,276205],{"class":36,"line":44},[34,276204,13810],{"class":47},[34,276206,9379],{"class":54},[34,276208,276209],{"class":36,"line":58},[34,276210,62],{"emptyLinePlaceholder":61},[34,276212,276213],{"class":36,"line":65},[34,276214,276215],{"class":40},"# Publish a package\n",[34,276217,276218,276220],{"class":36,"line":71},[34,276219,13810],{"class":47},[34,276221,28769],{"class":54},[34,276223,276224],{"class":36,"line":77},[34,276225,62],{"emptyLinePlaceholder":61},[34,276227,276228],{"class":36,"line":82},[34,276229,276230],{"class":40},"# Publish with a new version\n",[34,276232,276233,276235,276237,276240],{"class":36,"line":88},[34,276234,13810],{"class":47},[34,276236,160383],{"class":54},[34,276238,276239],{"class":50}," --new-version",[34,276241,17720],{"class":50},[34,276243,276244],{"class":36,"line":242},[34,276245,62],{"emptyLinePlaceholder":61},[34,276247,276248],{"class":36,"line":250},[34,276249,276250],{"class":40},"# Logout from registry\n",[34,276252,276253,276255],{"class":36,"line":263},[34,276254,13810],{"class":47},[34,276256,94695],{"class":54},[388,276258,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":276260},[276261],{"id":181601,"depth":44,"text":181596},"Publishing in Yarn.",{},{"title":181596,"description":276262},"yarn/publishing",[13810,5591,78040,8606],"dD234Makd72ZaoXAn2ang-YFM_1gXCx42OuasKoqtKc",{"id":276269,"title":276077,"body":276270,"date":402,"description":276316,"extension":404,"meta":276317,"navigation":61,"order":71,"path":276076,"seo":276318,"stem":276319,"subject":13810,"tags":276320,"__hash__":276321},"topics/yarn/removing-dependencies.md",{"type":8,"value":276271,"toc":276313},[276272,276275,276311],[11,276273,276077],{"id":276274},"removing-dependencies",[25,276276,276278],{"className":27,"code":276277,"language":29,"meta":30,"style":30},"# Remove a package\nyarn remove package-name\n\n# Remove a global package\nyarn global remove package-name\n",[20,276279,276280,276284,276292,276296,276301],{"__ignoreMap":30},[34,276281,276282],{"class":36,"line":37},[34,276283,16314],{"class":40},[34,276285,276286,276288,276290],{"class":36,"line":44},[34,276287,13810],{"class":47},[34,276289,6676],{"class":54},[34,276291,275754],{"class":54},[34,276293,276294],{"class":36,"line":58},[34,276295,62],{"emptyLinePlaceholder":61},[34,276297,276298],{"class":36,"line":65},[34,276299,276300],{"class":40},"# Remove a global package\n",[34,276302,276303,276305,276307,276309],{"class":36,"line":71},[34,276304,13810],{"class":47},[34,276306,7933],{"class":54},[34,276308,6676],{"class":54},[34,276310,275754],{"class":54},[388,276312,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":276314},[276315],{"id":276274,"depth":44,"text":276077},"Removing Dependencies in Yarn.",{},{"title":276077,"description":276316},"yarn/removing-dependencies",[13810,5591,78040,8606],"cxaaQzj0TBngbCbFZTDcaTBKm38JA4IHxp90H6iIySo",{"id":276323,"title":15995,"body":276324,"date":402,"description":276412,"extension":404,"meta":276413,"navigation":61,"order":82,"path":276087,"seo":276414,"stem":276415,"subject":13810,"tags":276416,"__hash__":276417},"topics/yarn/running-scripts.md",{"type":8,"value":276325,"toc":276409},[276326,276328,276407],[11,276327,15995],{"id":15994},[25,276329,276331],{"className":27,"code":276330,"language":29,"meta":30,"style":30},"# Run a script defined in package.json\nyarn run script-name\n\n# Shorthand for running scripts\nyarn script-name\n\n# Run start script\nyarn start\n\n# Run test script\nyarn test\n\n# Run build script\nyarn build\n",[20,276332,276333,276338,276347,276351,276356,276362,276366,276371,276377,276381,276386,276392,276396,276401],{"__ignoreMap":30},[34,276334,276335],{"class":36,"line":37},[34,276336,276337],{"class":40},"# Run a script defined in package.json\n",[34,276339,276340,276342,276344],{"class":36,"line":44},[34,276341,13810],{"class":47},[34,276343,16017],{"class":54},[34,276345,276346],{"class":54}," script-name\n",[34,276348,276349],{"class":36,"line":58},[34,276350,62],{"emptyLinePlaceholder":61},[34,276352,276353],{"class":36,"line":65},[34,276354,276355],{"class":40},"# Shorthand for running scripts\n",[34,276357,276358,276360],{"class":36,"line":71},[34,276359,13810],{"class":47},[34,276361,276346],{"class":54},[34,276363,276364],{"class":36,"line":77},[34,276365,62],{"emptyLinePlaceholder":61},[34,276367,276368],{"class":36,"line":82},[34,276369,276370],{"class":40},"# Run start script\n",[34,276372,276373,276375],{"class":36,"line":88},[34,276374,13810],{"class":47},[34,276376,48648],{"class":54},[34,276378,276379],{"class":36,"line":242},[34,276380,62],{"emptyLinePlaceholder":61},[34,276382,276383],{"class":36,"line":250},[34,276384,276385],{"class":40},"# Run test script\n",[34,276387,276388,276390],{"class":36,"line":263},[34,276389,13810],{"class":47},[34,276391,16110],{"class":54},[34,276393,276394],{"class":36,"line":275},[34,276395,62],{"emptyLinePlaceholder":61},[34,276397,276398],{"class":36,"line":700},[34,276399,276400],{"class":40},"# Run build script\n",[34,276402,276403,276405],{"class":36,"line":706},[34,276404,13810],{"class":47},[34,276406,55],{"class":54},[388,276408,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":276410},[276411],{"id":15994,"depth":44,"text":15995},"Running Scripts in Yarn.",{},{"title":15995,"description":276412},"yarn/running-scripts",[13810,5591,78040,8606],"ECAehotogfrHk5DIQIoml7CLNKzJ_PpoSLSvBsdo3Q4",{"id":276419,"title":181024,"body":276420,"date":402,"description":276496,"extension":404,"meta":276497,"navigation":61,"order":77,"path":276082,"seo":276498,"stem":276499,"subject":13810,"tags":276500,"__hash__":276501},"topics/yarn/updating-dependencies.md",{"type":8,"value":276421,"toc":276493},[276422,276424,276491],[11,276423,181024],{"id":181023},[25,276425,276427],{"className":27,"code":276426,"language":29,"meta":30,"style":30},"# Update all dependencies\nyarn upgrade\n\n# Update a specific package\nyarn upgrade package-name\n\n# Update to latest version (ignoring version range)\nyarn upgrade package-name --latest\n\n# Interactive upgrade\nyarn upgrade-interactive\n",[20,276428,276429,276434,276440,276444,276448,276456,276460,276465,276475,276479,276484],{"__ignoreMap":30},[34,276430,276431],{"class":36,"line":37},[34,276432,276433],{"class":40},"# Update all dependencies\n",[34,276435,276436,276438],{"class":36,"line":44},[34,276437,13810],{"class":47},[34,276439,6986],{"class":54},[34,276441,276442],{"class":36,"line":58},[34,276443,62],{"emptyLinePlaceholder":61},[34,276445,276446],{"class":36,"line":65},[34,276447,55521],{"class":40},[34,276449,276450,276452,276454],{"class":36,"line":71},[34,276451,13810],{"class":47},[34,276453,5662],{"class":54},[34,276455,275754],{"class":54},[34,276457,276458],{"class":36,"line":77},[34,276459,62],{"emptyLinePlaceholder":61},[34,276461,276462],{"class":36,"line":82},[34,276463,276464],{"class":40},"# Update to latest version (ignoring version range)\n",[34,276466,276467,276469,276471,276473],{"class":36,"line":88},[34,276468,13810],{"class":47},[34,276470,5662],{"class":54},[34,276472,275926],{"class":54},[34,276474,98822],{"class":50},[34,276476,276477],{"class":36,"line":242},[34,276478,62],{"emptyLinePlaceholder":61},[34,276480,276481],{"class":36,"line":250},[34,276482,276483],{"class":40},"# Interactive upgrade\n",[34,276485,276486,276488],{"class":36,"line":263},[34,276487,13810],{"class":47},[34,276489,276490],{"class":54}," upgrade-interactive\n",[388,276492,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":276494},[276495],{"id":181023,"depth":44,"text":181024},"Updating Dependencies in Yarn.",{},{"title":181024,"description":276496},"yarn/updating-dependencies",[13810,5591,78040,8606],"wpdP1KiydHO4LTRE2mvPKc6w6DxdojMj225esztnKtA",{"id":276503,"title":276119,"body":276504,"date":402,"description":276611,"extension":404,"meta":276612,"navigation":61,"order":706,"path":276118,"seo":276613,"stem":276614,"subject":13810,"tags":276615,"__hash__":276616},"topics/yarn/utility-commands.md",{"type":8,"value":276505,"toc":276608},[276506,276509,276606],[11,276507,276119],{"id":276508},"utility-commands",[25,276510,276512],{"className":27,"code":276511,"language":29,"meta":30,"style":30},"# Check for issues\nyarn check\n\n# Create a compressed tarball\nyarn pack\n\n# Run a command with package binaries available\nyarn run env\n\n# Generate license report\nyarn licenses list\n\n# Link a local package\nyarn link\n\n# Unlink a local package\nyarn unlink\n",[20,276513,276514,276518,276524,276528,276533,276540,276544,276549,276558,276562,276567,276576,276580,276584,276591,276595,276600],{"__ignoreMap":30},[34,276515,276516],{"class":36,"line":37},[34,276517,160882],{"class":40},[34,276519,276520,276522],{"class":36,"line":44},[34,276521,13810],{"class":47},[34,276523,5718],{"class":54},[34,276525,276526],{"class":36,"line":58},[34,276527,62],{"emptyLinePlaceholder":61},[34,276529,276530],{"class":36,"line":65},[34,276531,276532],{"class":40},"# Create a compressed tarball\n",[34,276534,276535,276537],{"class":36,"line":71},[34,276536,13810],{"class":47},[34,276538,276539],{"class":54}," pack\n",[34,276541,276542],{"class":36,"line":77},[34,276543,62],{"emptyLinePlaceholder":61},[34,276545,276546],{"class":36,"line":82},[34,276547,276548],{"class":40},"# Run a command with package binaries available\n",[34,276550,276551,276553,276555],{"class":36,"line":88},[34,276552,13810],{"class":47},[34,276554,16017],{"class":54},[34,276556,276557],{"class":54}," env\n",[34,276559,276560],{"class":36,"line":242},[34,276561,62],{"emptyLinePlaceholder":61},[34,276563,276564],{"class":36,"line":250},[34,276565,276566],{"class":40},"# Generate license report\n",[34,276568,276569,276571,276574],{"class":36,"line":263},[34,276570,13810],{"class":47},[34,276572,276573],{"class":54}," licenses",[34,276575,7536],{"class":54},[34,276577,276578],{"class":36,"line":275},[34,276579,62],{"emptyLinePlaceholder":61},[34,276581,276582],{"class":36,"line":700},[34,276583,182382],{"class":40},[34,276585,276586,276588],{"class":36,"line":706},[34,276587,13810],{"class":47},[34,276589,276590],{"class":54}," link\n",[34,276592,276593],{"class":36,"line":715},[34,276594,62],{"emptyLinePlaceholder":61},[34,276596,276597],{"class":36,"line":725},[34,276598,276599],{"class":40},"# Unlink a local package\n",[34,276601,276602,276604],{"class":36,"line":734},[34,276603,13810],{"class":47},[34,276605,182422],{"class":54},[388,276607,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":276609},[276610],{"id":276508,"depth":44,"text":276119},"Utility Commands in Yarn.",{},{"title":276119,"description":276611},"yarn/utility-commands",[13810,5591,78040,8606],"6fyTDh5HFXWhUxKpGGU9hbF1cuhjpH9moRTJDCDlZtM",{"id":276618,"title":160057,"body":276619,"date":402,"description":276690,"extension":404,"meta":276691,"navigation":61,"order":250,"path":276100,"seo":276692,"stem":276693,"subject":13810,"tags":276694,"__hash__":276695},"topics/yarn/workspaces-monorepo.md",{"type":8,"value":276620,"toc":276687},[276621,276623,276685],[11,276622,160057],{"id":161038},[25,276624,276626],{"className":27,"code":276625,"language":29,"meta":30,"style":30},"# Run command in all workspaces\nyarn workspaces run build\n\n# Add dependency to specific workspace\nyarn workspace workspace-name add package-name\n\n# Run script in specific workspace\nyarn workspace workspace-name run script-name\n",[20,276627,276628,276633,276644,276648,276652,276665,276669,276673],{"__ignoreMap":30},[34,276629,276630],{"class":36,"line":37},[34,276631,276632],{"class":40},"# Run command in all workspaces\n",[34,276634,276635,276637,276640,276642],{"class":36,"line":44},[34,276636,13810],{"class":47},[34,276638,276639],{"class":54}," workspaces",[34,276641,16017],{"class":54},[34,276643,55],{"class":54},[34,276645,276646],{"class":36,"line":58},[34,276647,62],{"emptyLinePlaceholder":61},[34,276649,276650],{"class":36,"line":65},[34,276651,182511],{"class":40},[34,276653,276654,276656,276658,276661,276663],{"class":36,"line":71},[34,276655,13810],{"class":47},[34,276657,248198],{"class":54},[34,276659,276660],{"class":54}," workspace-name",[34,276662,7854],{"class":54},[34,276664,275754],{"class":54},[34,276666,276667],{"class":36,"line":77},[34,276668,62],{"emptyLinePlaceholder":61},[34,276670,276671],{"class":36,"line":82},[34,276672,182586],{"class":40},[34,276674,276675,276677,276679,276681,276683],{"class":36,"line":88},[34,276676,13810],{"class":47},[34,276678,248198],{"class":54},[34,276680,276660],{"class":54},[34,276682,16017],{"class":54},[34,276684,276346],{"class":54},[388,276686,5796],{},{"title":30,"searchDepth":44,"depth":44,"links":276688},[276689],{"id":161038,"depth":44,"text":160057},"Workspaces (Monorepo) in Yarn.",{},{"title":160057,"description":276690},"yarn/workspaces-monorepo",[13810,5591,78040,8606],"S_wh0mbJwmwXs4MxmCF82ep6CAOD14fmQ6QxN9NjcY0",{"id":276697,"title":276125,"body":276698,"date":402,"description":276811,"extension":404,"meta":276812,"navigation":61,"order":715,"path":276124,"seo":276813,"stem":276814,"subject":13810,"tags":276815,"__hash__":276816},"topics/yarn/yarn-2-berry-specific.md",{"type":8,"value":276699,"toc":276808},[276700,276703,276806],[11,276701,276125],{"id":276702},"yarn-2-berry-specific",[25,276704,276706],{"className":27,"code":276705,"language":29,"meta":30,"style":30},"# Set Yarn version for project\nyarn set version berry\n\n# Enable Plug'n'Play\nyarn config set nodeLinker pnp\n\n# Disable Plug'n'Play (use node_modules)\nyarn config set nodeLinker node-modules\n\n# Install with immutable lock file (CI)\nyarn install --immutable\n\n# Add TypeScript plugin\nyarn plugin import typescript\n",[20,276707,276708,276713,276724,276728,276733,276747,276751,276756,276769,276773,276778,276787,276791,276796],{"__ignoreMap":30},[34,276709,276710],{"class":36,"line":37},[34,276711,276712],{"class":40},"# Set Yarn version for project\n",[34,276714,276715,276717,276719,276721],{"class":36,"line":44},[34,276716,13810],{"class":47},[34,276718,9481],{"class":54},[34,276720,160404],{"class":54},[34,276722,276723],{"class":54}," berry\n",[34,276725,276726],{"class":36,"line":58},[34,276727,62],{"emptyLinePlaceholder":61},[34,276729,276730],{"class":36,"line":65},[34,276731,276732],{"class":40},"# Enable Plug'n'Play\n",[34,276734,276735,276737,276739,276741,276744],{"class":36,"line":71},[34,276736,13810],{"class":47},[34,276738,58810],{"class":54},[34,276740,9481],{"class":54},[34,276742,276743],{"class":54}," nodeLinker",[34,276745,276746],{"class":54}," pnp\n",[34,276748,276749],{"class":36,"line":77},[34,276750,62],{"emptyLinePlaceholder":61},[34,276752,276753],{"class":36,"line":82},[34,276754,276755],{"class":40},"# Disable Plug'n'Play (use node_modules)\n",[34,276757,276758,276760,276762,276764,276766],{"class":36,"line":88},[34,276759,13810],{"class":47},[34,276761,58810],{"class":54},[34,276763,9481],{"class":54},[34,276765,276743],{"class":54},[34,276767,276768],{"class":54}," node-modules\n",[34,276770,276771],{"class":36,"line":242},[34,276772,62],{"emptyLinePlaceholder":61},[34,276774,276775],{"class":36,"line":250},[34,276776,276777],{"class":40},"# Install with immutable lock file (CI)\n",[34,276779,276780,276782,276784],{"class":36,"line":263},[34,276781,13810],{"class":47},[34,276783,118],{"class":54},[34,276785,276786],{"class":50}," --immutable\n",[34,276788,276789],{"class":36,"line":275},[34,276790,62],{"emptyLinePlaceholder":61},[34,276792,276793],{"class":36,"line":700},[34,276794,276795],{"class":40},"# Add TypeScript plugin\n",[34,276797,276798,276800,276802,276804],{"class":36,"line":706},[34,276799,13810],{"class":47},[34,276801,7851],{"class":54},[34,276803,3364],{"class":54},[34,276805,16286],{"class":54},[388,276807,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":276809},[276810],{"id":276702,"depth":44,"text":276125},"Yarn 2+ (Berry) Specific in Yarn.",{},{"title":276125,"description":276811},"yarn/yarn-2-berry-specific",[13810,5591,78040,8606],"sb_gckcJw4dV07oPo6465s2moQhGUIVaUeh1H1KM_N8",{"id":276818,"title":276819,"body":276820,"date":402,"description":276912,"extension":404,"meta":276913,"navigation":61,"order":88,"path":276914,"seo":276915,"stem":276916,"subject":276839,"tags":276917,"__hash__":276919},"topics/yay/clean-operations.md","Clean Operations",{"type":8,"value":276821,"toc":276909},[276822,276825,276906],[11,276823,276819],{"id":276824},"clean-operations",[25,276826,276828],{"className":27,"code":276827,"language":29,"meta":30,"style":30},"# Clean package cache\nyay -Sc                            # Remove old packages from cache\n\n# Clean all cached packages\nyay -Scc                           # Remove all packages from cache\n\n# Remove unneeded dependencies\nyay -Yc                            # Clean orphaned packages\n\n# Clean build files\nyay -Y --clean                     # Remove cached build files\n",[20,276829,276830,276835,276846,276850,276855,276865,276869,276874,276884,276888,276893],{"__ignoreMap":30},[34,276831,276832],{"class":36,"line":37},[34,276833,276834],{"class":40},"# Clean package cache\n",[34,276836,276837,276840,276843],{"class":36,"line":44},[34,276838,276839],{"class":47},"yay",[34,276841,276842],{"class":50}," -Sc",[34,276844,276845],{"class":40},"                            # Remove old packages from cache\n",[34,276847,276848],{"class":36,"line":58},[34,276849,62],{"emptyLinePlaceholder":61},[34,276851,276852],{"class":36,"line":65},[34,276853,276854],{"class":40},"# Clean all cached packages\n",[34,276856,276857,276859,276862],{"class":36,"line":71},[34,276858,276839],{"class":47},[34,276860,276861],{"class":50}," -Scc",[34,276863,276864],{"class":40},"                           # Remove all packages from cache\n",[34,276866,276867],{"class":36,"line":77},[34,276868,62],{"emptyLinePlaceholder":61},[34,276870,276871],{"class":36,"line":82},[34,276872,276873],{"class":40},"# Remove unneeded dependencies\n",[34,276875,276876,276878,276881],{"class":36,"line":88},[34,276877,276839],{"class":47},[34,276879,276880],{"class":50}," -Yc",[34,276882,276883],{"class":40},"                            # Clean orphaned packages\n",[34,276885,276886],{"class":36,"line":242},[34,276887,62],{"emptyLinePlaceholder":61},[34,276889,276890],{"class":36,"line":250},[34,276891,276892],{"class":40},"# Clean build files\n",[34,276894,276895,276897,276900,276903],{"class":36,"line":263},[34,276896,276839],{"class":47},[34,276898,276899],{"class":50}," -Y",[34,276901,276902],{"class":50}," --clean",[34,276904,276905],{"class":40},"                     # Remove cached build files\n",[388,276907,276908],{},"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 .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":30,"searchDepth":44,"depth":44,"links":276910},[276911],{"id":276824,"depth":44,"text":276819},"Clean Operations in Yay.",{},"/yay/clean-operations",{"title":276819,"description":276912},"yay/clean-operations",[276839,168699,5588,276918,5591],"aur","lLd1A5StlQBoQQAXQjlghrqsNzGBPz8PSEMpLvtkxcY",{"id":276921,"title":334,"body":276922,"date":402,"description":277045,"extension":404,"meta":277046,"navigation":61,"order":250,"path":277047,"seo":277048,"stem":277049,"subject":276839,"tags":277050,"__hash__":277051},"topics/yay/common-options.md",{"type":8,"value":276923,"toc":277042},[276924,276926,277040],[11,276925,334],{"id":333},[25,276927,276929],{"className":27,"code":276928,"language":29,"meta":30,"style":30},"# Answer yes to all prompts\nyay -S --noconfirm package         # Skip confirmation prompts\n\n# Edit PKGBUILD before building\nyay -S --editmenu package          # Review build files\n\n# Rebuild package from AUR\nyay -S --rebuild package           # Force rebuild\n\n# Skip dependency checks\nyay -S --nodeps package            # Install without checking deps\n\n# Download only (don't install)\nyay -G package-name                # Get PKGBUILD and files\n",[20,276930,276931,276936,276950,276954,276959,276973,276977,276982,276996,277000,277005,277019,277023,277028],{"__ignoreMap":30},[34,276932,276933],{"class":36,"line":37},[34,276934,276935],{"class":40},"# Answer yes to all prompts\n",[34,276937,276938,276940,276942,276944,276947],{"class":36,"line":44},[34,276939,276839],{"class":47},[34,276941,7773],{"class":50},[34,276943,169110],{"class":50},[34,276945,276946],{"class":54}," package",[34,276948,276949],{"class":40},"         # Skip confirmation prompts\n",[34,276951,276952],{"class":36,"line":58},[34,276953,62],{"emptyLinePlaceholder":61},[34,276955,276956],{"class":36,"line":65},[34,276957,276958],{"class":40},"# Edit PKGBUILD before building\n",[34,276960,276961,276963,276965,276968,276970],{"class":36,"line":71},[34,276962,276839],{"class":47},[34,276964,7773],{"class":50},[34,276966,276967],{"class":50}," --editmenu",[34,276969,276946],{"class":54},[34,276971,276972],{"class":40},"          # Review build files\n",[34,276974,276975],{"class":36,"line":77},[34,276976,62],{"emptyLinePlaceholder":61},[34,276978,276979],{"class":36,"line":82},[34,276980,276981],{"class":40},"# Rebuild package from AUR\n",[34,276983,276984,276986,276988,276991,276993],{"class":36,"line":88},[34,276985,276839],{"class":47},[34,276987,7773],{"class":50},[34,276989,276990],{"class":50}," --rebuild",[34,276992,276946],{"class":54},[34,276994,276995],{"class":40},"           # Force rebuild\n",[34,276997,276998],{"class":36,"line":242},[34,276999,62],{"emptyLinePlaceholder":61},[34,277001,277002],{"class":36,"line":250},[34,277003,277004],{"class":40},"# Skip dependency checks\n",[34,277006,277007,277009,277011,277014,277016],{"class":36,"line":263},[34,277008,276839],{"class":47},[34,277010,7773],{"class":50},[34,277012,277013],{"class":50}," --nodeps",[34,277015,276946],{"class":54},[34,277017,277018],{"class":40},"            # Install without checking deps\n",[34,277020,277021],{"class":36,"line":275},[34,277022,62],{"emptyLinePlaceholder":61},[34,277024,277025],{"class":36,"line":700},[34,277026,277027],{"class":40},"# Download only (don't install)\n",[34,277029,277030,277032,277035,277037],{"class":36,"line":706},[34,277031,276839],{"class":47},[34,277033,277034],{"class":50}," -G",[34,277036,275926],{"class":54},[34,277038,277039],{"class":40},"                # Get PKGBUILD and files\n",[388,277041,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":277043},[277044],{"id":333,"depth":44,"text":334},"Common Options in Yay.",{},"/yay/common-options",{"title":334,"description":277045},"yay/common-options",[276839,168699,5588,276918,5591],"1ahwqTtBFjTZ6NNDRFiYXQJbZPVyZ_qfg4BuIxpvZOQ",{"id":277053,"title":8686,"body":277054,"date":402,"description":277124,"extension":404,"meta":277125,"navigation":61,"order":263,"path":277126,"seo":277127,"stem":277128,"subject":276839,"tags":277129,"__hash__":277130},"topics/yay/configuration.md",{"type":8,"value":277055,"toc":277121},[277056,277058,277119],[11,277057,8686],{"id":558},[25,277059,277061],{"className":27,"code":277060,"language":29,"meta":30,"style":30},"# Edit yay config\nyay --save --combinedupgrade       # Save as default behavior\n\n# Show current configuration\nyay -P -g                          # Display config\n\n# Reset yay configuration\nyay --gendb                        # Regenerate development database\n",[20,277062,277063,277068,277080,277084,277089,277100,277104,277109],{"__ignoreMap":30},[34,277064,277065],{"class":36,"line":37},[34,277066,277067],{"class":40},"# Edit yay config\n",[34,277069,277070,277072,277074,277077],{"class":36,"line":44},[34,277071,276839],{"class":47},[34,277073,168270],{"class":50},[34,277075,277076],{"class":50}," --combinedupgrade",[34,277078,277079],{"class":40},"       # Save as default behavior\n",[34,277081,277082],{"class":36,"line":58},[34,277083,62],{"emptyLinePlaceholder":61},[34,277085,277086],{"class":36,"line":65},[34,277087,277088],{"class":40},"# Show current configuration\n",[34,277090,277091,277093,277095,277097],{"class":36,"line":71},[34,277092,276839],{"class":47},[34,277094,110642],{"class":50},[34,277096,9753],{"class":50},[34,277098,277099],{"class":40},"                          # Display config\n",[34,277101,277102],{"class":36,"line":77},[34,277103,62],{"emptyLinePlaceholder":61},[34,277105,277106],{"class":36,"line":82},[34,277107,277108],{"class":40},"# Reset yay configuration\n",[34,277110,277111,277113,277116],{"class":36,"line":88},[34,277112,276839],{"class":47},[34,277114,277115],{"class":50}," --gendb",[34,277117,277118],{"class":40},"                        # Regenerate development database\n",[388,277120,276908],{},{"title":30,"searchDepth":44,"depth":44,"links":277122},[277123],{"id":558,"depth":44,"text":8686},"Configuration in Yay.",{},"/yay/configuration",{"title":8686,"description":277124},"yay/configuration",[276839,168699,5588,276918,5591],"MKyCPMZls8wuP9om3PnB7sBKIR2-essZM-lV8SoGqlI",{"id":277132,"title":97,"body":277133,"date":402,"description":277195,"extension":404,"meta":277196,"navigation":61,"order":44,"path":277197,"seo":277198,"stem":277199,"subject":276839,"tags":277200,"__hash__":277201},"topics/yay/installation.md",{"type":8,"value":277134,"toc":277192},[277135,277137,277190],[11,277136,97],{"id":96},[25,277138,277140],{"className":27,"code":277139,"language":29,"meta":30,"style":30},"# Install yay (requires base-devel and git)\nsudo pacman -S --needed git base-devel\ngit clone https://aur.archlinux.org/yay.git\ncd yay\nmakepkg -si                        # Build and install\n",[20,277141,277142,277147,277163,277172,277179],{"__ignoreMap":30},[34,277143,277144],{"class":36,"line":37},[34,277145,277146],{"class":40},"# Install yay (requires base-devel and git)\n",[34,277148,277149,277151,277153,277155,277158,277160],{"class":36,"line":44},[34,277150,436],{"class":47},[34,277152,53595],{"class":54},[34,277154,7773],{"class":50},[34,277156,277157],{"class":50}," --needed",[34,277159,12533],{"class":54},[34,277161,277162],{"class":54}," base-devel\n",[34,277164,277165,277167,277169],{"class":36,"line":58},[34,277166,7794],{"class":47},[34,277168,7797],{"class":54},[34,277170,277171],{"class":54}," https://aur.archlinux.org/yay.git\n",[34,277173,277174,277176],{"class":36,"line":65},[34,277175,7702],{"class":50},[34,277177,277178],{"class":54}," yay\n",[34,277180,277181,277184,277187],{"class":36,"line":71},[34,277182,277183],{"class":47},"makepkg",[34,277185,277186],{"class":50}," -si",[34,277188,277189],{"class":40},"                        # Build and install\n",[388,277191,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":277193},[277194],{"id":96,"depth":44,"text":97},"Installation in Yay.",{},"/yay/installation",{"title":97,"description":277195},"yay/installation",[276839,168699,5588,276918,5591],"KpazuX9musTu32bRBDMNtmTLWZficdwQCQYOF_gxA2o",{"id":277203,"title":6112,"body":277204,"date":402,"description":277298,"extension":404,"meta":277299,"navigation":61,"order":65,"path":277300,"seo":277301,"stem":277302,"subject":276839,"tags":277303,"__hash__":277304},"topics/yay/installing-packages.md",{"type":8,"value":277205,"toc":277295},[277206,277208,277293],[11,277207,6112],{"id":6117},[25,277209,277211],{"className":27,"code":277210,"language":29,"meta":30,"style":30},"# Install a package\nyay -S package-name                # Install from repos or AUR\n\n# Install without confirmation\nyay -S --noconfirm package-name    # Skip prompts\n\n# Install and clean build files\nyay -S --cleanafter package-name   # Remove build files after install\n\n# Install specific version\nyay -S package-name-1.2.3          # Specify version\n",[20,277212,277213,277217,277228,277232,277237,277250,277254,277259,277273,277277,277281],{"__ignoreMap":30},[34,277214,277215],{"class":36,"line":37},[34,277216,6127],{"class":40},[34,277218,277219,277221,277223,277225],{"class":36,"line":44},[34,277220,276839],{"class":47},[34,277222,7773],{"class":50},[34,277224,275926],{"class":54},[34,277226,277227],{"class":40},"                # Install from repos or AUR\n",[34,277229,277230],{"class":36,"line":58},[34,277231,62],{"emptyLinePlaceholder":61},[34,277233,277234],{"class":36,"line":65},[34,277235,277236],{"class":40},"# Install without confirmation\n",[34,277238,277239,277241,277243,277245,277247],{"class":36,"line":71},[34,277240,276839],{"class":47},[34,277242,7773],{"class":50},[34,277244,169110],{"class":50},[34,277246,275926],{"class":54},[34,277248,277249],{"class":40},"    # Skip prompts\n",[34,277251,277252],{"class":36,"line":77},[34,277253,62],{"emptyLinePlaceholder":61},[34,277255,277256],{"class":36,"line":82},[34,277257,277258],{"class":40},"# Install and clean build files\n",[34,277260,277261,277263,277265,277268,277270],{"class":36,"line":88},[34,277262,276839],{"class":47},[34,277264,7773],{"class":50},[34,277266,277267],{"class":50}," --cleanafter",[34,277269,275926],{"class":54},[34,277271,277272],{"class":40},"   # Remove build files after install\n",[34,277274,277275],{"class":36,"line":242},[34,277276,62],{"emptyLinePlaceholder":61},[34,277278,277279],{"class":36,"line":250},[34,277280,159644],{"class":40},[34,277282,277283,277285,277287,277290],{"class":36,"line":263},[34,277284,276839],{"class":47},[34,277286,7773],{"class":50},[34,277288,277289],{"class":54}," package-name-1.2.3",[34,277291,277292],{"class":40},"          # Specify version\n",[388,277294,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":277296},[277297],{"id":6117,"depth":44,"text":6112},"Installing Packages in Yay.",{},"/yay/installing-packages",{"title":6112,"description":277298},"yay/installing-packages",[276839,168699,5588,276918,5591],"Z5TxysEHeGg4Evz4tIB2THpcXXnt-MO6JwkYLHv6lng",{"id":277306,"title":277307,"body":277308,"date":2633,"description":277373,"extension":404,"meta":277374,"navigation":61,"order":37,"path":277375,"seo":277376,"stem":277377,"subject":276839,"tags":277378,"__hash__":277379},"topics/yay/overview.md","Yay",{"type":8,"value":277309,"toc":277371},[277310],[309,277311,277312,277316,277322,277326,277331,277336,277341,277345,277351,277355,277359,277365],{},[312,277313,277314],{},[145,277315,97],{"href":277197},[312,277317,277318],{},[145,277319,277321],{"href":277320},"/yay/searching","Searching",[312,277323,277324],{},[145,277325,6112],{"href":277300},[312,277327,277328],{},[145,277329,169192],{"href":277330},"/yay/updating-system",[312,277332,277333],{},[145,277334,6479],{"href":277335},"/yay/removing-packages",[312,277337,277338],{},[145,277339,6501],{"href":277340},"/yay/package-information",[312,277342,277343],{},[145,277344,276819],{"href":276914},[312,277346,277347],{},[145,277348,277350],{"href":277349},"/yay/statistics-and-info","Statistics and Info",[312,277352,277353],{},[145,277354,334],{"href":277047},[312,277356,277357],{},[145,277358,8686],{"href":277126},[312,277360,277361],{},[145,277362,277364],{"href":277363},"/yay/useful-workflows","Useful Workflows",[312,277366,277367],{},[145,277368,277370],{"href":277369},"/yay/yay-vs-pacman","Yay vs Pacman",{"title":30,"searchDepth":44,"depth":44,"links":277372},[],"AUR helper for Arch Linux - search, install, and manage packages from official repos and AUR.",{},"/yay/overview",{"title":277307,"description":277373},"yay/overview",[276839,168699,5588,276918,5591],"-jmzUzQAosOj1-_ynQkUe9-LtbUQKUBZGN2-OAp9_Fc",{"id":277381,"title":6501,"body":277382,"date":402,"description":277473,"extension":404,"meta":277474,"navigation":61,"order":82,"path":277340,"seo":277475,"stem":277476,"subject":276839,"tags":277477,"__hash__":277478},"topics/yay/package-information.md",{"type":8,"value":277383,"toc":277470},[277384,277386,277468],[11,277385,6501],{"id":6541},[25,277387,277389],{"className":27,"code":277388,"language":29,"meta":30,"style":30},"# Show package information\nyay -Si package-name               # Show package details\n\n# Show installed package info\nyay -Qi package-name               # Query installed package\n\n# List files in package\nyay -Ql package-name               # List all files\n\n# Check which package owns a file\nyay -Qo /path/to/file              # Find package owner\n",[20,277390,277391,277396,277407,277411,277416,277427,277431,277436,277447,277451,277456],{"__ignoreMap":30},[34,277392,277393],{"class":36,"line":37},[34,277394,277395],{"class":40},"# Show package information\n",[34,277397,277398,277400,277402,277404],{"class":36,"line":44},[34,277399,276839],{"class":47},[34,277401,169379],{"class":50},[34,277403,275926],{"class":54},[34,277405,277406],{"class":40},"               # Show package details\n",[34,277408,277409],{"class":36,"line":58},[34,277410,62],{"emptyLinePlaceholder":61},[34,277412,277413],{"class":36,"line":65},[34,277414,277415],{"class":40},"# Show installed package info\n",[34,277417,277418,277420,277422,277424],{"class":36,"line":71},[34,277419,276839],{"class":47},[34,277421,169361],{"class":50},[34,277423,275926],{"class":54},[34,277425,277426],{"class":40},"               # Query installed package\n",[34,277428,277429],{"class":36,"line":77},[34,277430,62],{"emptyLinePlaceholder":61},[34,277432,277433],{"class":36,"line":82},[34,277434,277435],{"class":40},"# List files in package\n",[34,277437,277438,277440,277442,277444],{"class":36,"line":88},[34,277439,276839],{"class":47},[34,277441,169644],{"class":50},[34,277443,275926],{"class":54},[34,277445,277446],{"class":40},"               # List all files\n",[34,277448,277449],{"class":36,"line":242},[34,277450,62],{"emptyLinePlaceholder":61},[34,277452,277453],{"class":36,"line":250},[34,277454,277455],{"class":40},"# Check which package owns a file\n",[34,277457,277458,277460,277462,277465],{"class":36,"line":263},[34,277459,276839],{"class":47},[34,277461,169626],{"class":50},[34,277463,277464],{"class":54}," /path/to/file",[34,277466,277467],{"class":40},"              # Find package owner\n",[388,277469,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":277471},[277472],{"id":6541,"depth":44,"text":6501},"Package Information in Yay.",{},{"title":6501,"description":277473},"yay/package-information",[276839,168699,5588,276918,5591],"gFyoIo0N2mP_Z3CyoyXNY3b4MKXk37bwe34oXo1zeU4",{"id":277480,"title":6479,"body":277481,"date":402,"description":277567,"extension":404,"meta":277568,"navigation":61,"order":77,"path":277335,"seo":277569,"stem":277570,"subject":276839,"tags":277571,"__hash__":277572},"topics/yay/removing-packages.md",{"type":8,"value":277482,"toc":277564},[277483,277485,277562],[11,277484,6479],{"id":6657},[25,277486,277488],{"className":27,"code":277487,"language":29,"meta":30,"style":30},"# Remove a package\nyay -R package-name                # Remove package only\n\n# Remove with dependencies\nyay -Rs package-name               # Remove package + unused deps\n\n# Remove with all dependencies\nyay -Rns package-name              # Remove package + deps + config files\n\n# Remove orphaned packages\nyay -Yc                            # Clean unneeded dependencies\n",[20,277489,277490,277494,277505,277509,277514,277525,277529,277534,277545,277549,277553],{"__ignoreMap":30},[34,277491,277492],{"class":36,"line":37},[34,277493,16314],{"class":40},[34,277495,277496,277498,277500,277502],{"class":36,"line":44},[34,277497,276839],{"class":47},[34,277499,97196],{"class":50},[34,277501,275926],{"class":54},[34,277503,277504],{"class":40},"                # Remove package only\n",[34,277506,277507],{"class":36,"line":58},[34,277508,62],{"emptyLinePlaceholder":61},[34,277510,277511],{"class":36,"line":65},[34,277512,277513],{"class":40},"# Remove with dependencies\n",[34,277515,277516,277518,277520,277522],{"class":36,"line":71},[34,277517,276839],{"class":47},[34,277519,169514],{"class":50},[34,277521,275926],{"class":54},[34,277523,277524],{"class":40},"               # Remove package + unused deps\n",[34,277526,277527],{"class":36,"line":77},[34,277528,62],{"emptyLinePlaceholder":61},[34,277530,277531],{"class":36,"line":82},[34,277532,277533],{"class":40},"# Remove with all dependencies\n",[34,277535,277536,277538,277540,277542],{"class":36,"line":88},[34,277537,276839],{"class":47},[34,277539,168645],{"class":50},[34,277541,275926],{"class":54},[34,277543,277544],{"class":40},"              # Remove package + deps + config files\n",[34,277546,277547],{"class":36,"line":242},[34,277548,62],{"emptyLinePlaceholder":61},[34,277550,277551],{"class":36,"line":250},[34,277552,168636],{"class":40},[34,277554,277555,277557,277559],{"class":36,"line":263},[34,277556,276839],{"class":47},[34,277558,276880],{"class":50},[34,277560,277561],{"class":40},"                            # Clean unneeded dependencies\n",[388,277563,6099],{},{"title":30,"searchDepth":44,"depth":44,"links":277565},[277566],{"id":6657,"depth":44,"text":6479},"Removing Packages in Yay.",{},{"title":6479,"description":277567},"yay/removing-packages",[276839,168699,5588,276918,5591],"FIdtQrOPnxLBqyIfARvNigGpJyOUEEx3hd-I89fu-fs",{"id":277574,"title":277321,"body":277575,"date":402,"description":277648,"extension":404,"meta":277649,"navigation":61,"order":58,"path":277320,"seo":277650,"stem":277651,"subject":276839,"tags":277652,"__hash__":277653},"topics/yay/searching.md",{"type":8,"value":277576,"toc":277645},[277577,277579,277643],[11,277578,277321],{"id":65593},[25,277580,277582],{"className":27,"code":277581,"language":29,"meta":30,"style":30},"# Search for packages (official repos + AUR)\nyay searchterm                     # Interactive search with results\n\n# Search only in AUR\nyay -a searchterm                  # AUR packages only\n\n# Search for exact package name\nyay -Ss ^packagename$              # Regex search\n",[20,277583,277584,277589,277599,277603,277608,277619,277623,277628],{"__ignoreMap":30},[34,277585,277586],{"class":36,"line":37},[34,277587,277588],{"class":40},"# Search for packages (official repos + AUR)\n",[34,277590,277591,277593,277596],{"class":36,"line":44},[34,277592,276839],{"class":47},[34,277594,277595],{"class":54}," searchterm",[34,277597,277598],{"class":40},"                     # Interactive search with results\n",[34,277600,277601],{"class":36,"line":58},[34,277602,62],{"emptyLinePlaceholder":61},[34,277604,277605],{"class":36,"line":65},[34,277606,277607],{"class":40},"# Search only in AUR\n",[34,277609,277610,277612,277614,277616],{"class":36,"line":71},[34,277611,276839],{"class":47},[34,277613,5059],{"class":50},[34,277615,277595],{"class":54},[34,277617,277618],{"class":40},"                  # AUR packages only\n",[34,277620,277621],{"class":36,"line":77},[34,277622,62],{"emptyLinePlaceholder":61},[34,277624,277625],{"class":36,"line":82},[34,277626,277627],{"class":40},"# Search for exact package name\n",[34,277629,277630,277632,277634,277637,277640],{"class":36,"line":88},[34,277631,276839],{"class":47},[34,277633,169589],{"class":50},[34,277635,277636],{"class":54}," ^packagename",[34,277638,277639],{"class":181},"$              ",[34,277641,277642],{"class":40},"# Regex search\n",[388,277644,121226],{},{"title":30,"searchDepth":44,"depth":44,"links":277646},[277647],{"id":65593,"depth":44,"text":277321},"Searching in Yay.",{},{"title":277321,"description":277648},"yay/searching",[276839,168699,5588,276918,5591],"67O5pZAZRiaIFUDMsGMZfyRPuySWCWW7A6PcVBQru8s",{"id":277655,"title":277350,"body":277656,"date":402,"description":277742,"extension":404,"meta":277743,"navigation":61,"order":242,"path":277349,"seo":277744,"stem":277745,"subject":276839,"tags":277746,"__hash__":277747},"topics/yay/statistics-and-info.md",{"type":8,"value":277657,"toc":277739},[277658,277661,277737],[11,277659,277350],{"id":277660},"statistics-and-info",[25,277662,277664],{"className":27,"code":277663,"language":29,"meta":30,"style":30},"# Show yay statistics\nyay -Ps                            # Package statistics\n\n# List explicitly installed packages\nyay -Qe                            # Show user-installed packages\n\n# List AUR packages\nyay -Qm                            # Show foreign/AUR packages\n\n# Check for updates without installing\nyay -Qu                            # List available updates\n",[20,277665,277666,277671,277681,277685,277689,277699,277703,277708,277718,277722,277727],{"__ignoreMap":30},[34,277667,277668],{"class":36,"line":37},[34,277669,277670],{"class":40},"# Show yay statistics\n",[34,277672,277673,277675,277678],{"class":36,"line":44},[34,277674,276839],{"class":47},[34,277676,277677],{"class":50}," -Ps",[34,277679,277680],{"class":40},"                            # Package statistics\n",[34,277682,277683],{"class":36,"line":58},[34,277684,62],{"emptyLinePlaceholder":61},[34,277686,277687],{"class":36,"line":65},[34,277688,169405],{"class":40},[34,277690,277691,277693,277696],{"class":36,"line":71},[34,277692,276839],{"class":47},[34,277694,277695],{"class":50}," -Qe",[34,277697,277698],{"class":40},"                            # Show user-installed packages\n",[34,277700,277701],{"class":36,"line":77},[34,277702,62],{"emptyLinePlaceholder":61},[34,277704,277705],{"class":36,"line":82},[34,277706,277707],{"class":40},"# List AUR packages\n",[34,277709,277710,277712,277715],{"class":36,"line":88},[34,277711,276839],{"class":47},[34,277713,277714],{"class":50}," -Qm",[34,277716,277717],{"class":40},"                            # Show foreign/AUR packages\n",[34,277719,277720],{"class":36,"line":242},[34,277721,62],{"emptyLinePlaceholder":61},[34,277723,277724],{"class":36,"line":250},[34,277725,277726],{"class":40},"# Check for updates without installing\n",[34,277728,277729,277731,277734],{"class":36,"line":263},[34,277730,276839],{"class":47},[34,277732,277733],{"class":50}," -Qu",[34,277735,277736],{"class":40},"                            # List available updates\n",[388,277738,276908],{},{"title":30,"searchDepth":44,"depth":44,"links":277740},[277741],{"id":277660,"depth":44,"text":277350},"Statistics and Info in Yay.",{},{"title":277350,"description":277742},"yay/statistics-and-info",[276839,168699,5588,276918,5591],"S7DQT1IZsrMr9EkKewgA7_eEQ-YO-9GK-gvENWGWUqc",{"id":277749,"title":169192,"body":277750,"date":402,"description":277837,"extension":404,"meta":277838,"navigation":61,"order":71,"path":277330,"seo":277839,"stem":277840,"subject":276839,"tags":277841,"__hash__":277842},"topics/yay/updating-system.md",{"type":8,"value":277751,"toc":277834},[277752,277754,277832],[11,277753,169192],{"id":169681},[25,277755,277757],{"className":27,"code":277756,"language":29,"meta":30,"style":30},"# Update all packages (official + AUR)\nyay                                # Same as yay -Syu\n\n# Update with development packages\nyay -Syu --devel                   # Include *-git packages\n\n# Update only AUR packages\nyay -Sua                           # Skip official repos\n\n# Update and show diffs\nyay -Syu --combinedupgrade         # Review PKGBUILD changes\n",[20,277758,277759,277764,277771,277775,277780,277793,277797,277802,277812,277816,277821],{"__ignoreMap":30},[34,277760,277761],{"class":36,"line":37},[34,277762,277763],{"class":40},"# Update all packages (official + AUR)\n",[34,277765,277766,277768],{"class":36,"line":44},[34,277767,276839],{"class":47},[34,277769,277770],{"class":40},"                                # Same as yay -Syu\n",[34,277772,277773],{"class":36,"line":58},[34,277774,62],{"emptyLinePlaceholder":61},[34,277776,277777],{"class":36,"line":65},[34,277778,277779],{"class":40},"# Update with development packages\n",[34,277781,277782,277784,277787,277790],{"class":36,"line":71},[34,277783,276839],{"class":47},[34,277785,277786],{"class":50}," -Syu",[34,277788,277789],{"class":50}," --devel",[34,277791,277792],{"class":40},"                   # Include *-git packages\n",[34,277794,277795],{"class":36,"line":77},[34,277796,62],{"emptyLinePlaceholder":61},[34,277798,277799],{"class":36,"line":82},[34,277800,277801],{"class":40},"# Update only AUR packages\n",[34,277803,277804,277806,277809],{"class":36,"line":88},[34,277805,276839],{"class":47},[34,277807,277808],{"class":50}," -Sua",[34,277810,277811],{"class":40},"                           # Skip official repos\n",[34,277813,277814],{"class":36,"line":242},[34,277815,62],{"emptyLinePlaceholder":61},[34,277817,277818],{"class":36,"line":250},[34,277819,277820],{"class":40},"# Update and show diffs\n",[34,277822,277823,277825,277827,277829],{"class":36,"line":263},[34,277824,276839],{"class":47},[34,277826,277786],{"class":50},[34,277828,277076],{"class":50},[34,277830,277831],{"class":40},"         # Review PKGBUILD changes\n",[388,277833,276908],{},{"title":30,"searchDepth":44,"depth":44,"links":277835},[277836],{"id":169681,"depth":44,"text":169192},"Updating System in Yay.",{},{"title":169192,"description":277837},"yay/updating-system",[276839,168699,5588,276918,5591],"OrweLBmpN3yFgkn-iIVPX5qZHPwH7iUqLdnkVLUVceE",{"id":277844,"title":277364,"body":277845,"date":402,"description":277946,"extension":404,"meta":277947,"navigation":61,"order":275,"path":277363,"seo":277948,"stem":277949,"subject":276839,"tags":277950,"__hash__":277951},"topics/yay/useful-workflows.md",{"type":8,"value":277846,"toc":277943},[277847,277850,277941],[11,277848,277364],{"id":277849},"useful-workflows",[25,277851,277853],{"className":27,"code":277852,"language":29,"meta":30,"style":30},"# Full system update with cleaning\nyay -Syu --cleanafter              # Update and clean build files\n\n# Search, review, and install\nyay -S package                     # Interactive install with review\n\n# List and remove orphans\nyay -Qtdq | yay -Rns -             # Remove all orphaned packages\n\n# Update only development packages\nyay -Syu --devel --timeupdate      # Update *-git packages\n",[20,277854,277855,277860,277871,277875,277880,277891,277895,277900,277918,277922,277927],{"__ignoreMap":30},[34,277856,277857],{"class":36,"line":37},[34,277858,277859],{"class":40},"# Full system update with cleaning\n",[34,277861,277862,277864,277866,277868],{"class":36,"line":44},[34,277863,276839],{"class":47},[34,277865,277786],{"class":50},[34,277867,277267],{"class":50},[34,277869,277870],{"class":40},"              # Update and clean build files\n",[34,277872,277873],{"class":36,"line":58},[34,277874,62],{"emptyLinePlaceholder":61},[34,277876,277877],{"class":36,"line":65},[34,277878,277879],{"class":40},"# Search, review, and install\n",[34,277881,277882,277884,277886,277888],{"class":36,"line":71},[34,277883,276839],{"class":47},[34,277885,7773],{"class":50},[34,277887,276946],{"class":54},[34,277889,277890],{"class":40},"                     # Interactive install with review\n",[34,277892,277893],{"class":36,"line":77},[34,277894,62],{"emptyLinePlaceholder":61},[34,277896,277897],{"class":36,"line":82},[34,277898,277899],{"class":40},"# List and remove orphans\n",[34,277901,277902,277904,277906,277908,277911,277913,277915],{"class":36,"line":88},[34,277903,276839],{"class":47},[34,277905,168652],{"class":50},[34,277907,7197],{"class":580},[34,277909,277910],{"class":47}," yay",[34,277912,168645],{"class":50},[34,277914,19423],{"class":54},[34,277916,277917],{"class":40},"             # Remove all orphaned packages\n",[34,277919,277920],{"class":36,"line":242},[34,277921,62],{"emptyLinePlaceholder":61},[34,277923,277924],{"class":36,"line":250},[34,277925,277926],{"class":40},"# Update only development packages\n",[34,277928,277929,277931,277933,277935,277938],{"class":36,"line":263},[34,277930,276839],{"class":47},[34,277932,277786],{"class":50},[34,277934,277789],{"class":50},[34,277936,277937],{"class":50}," --timeupdate",[34,277939,277940],{"class":40},"      # Update *-git packages\n",[388,277942,15873],{},{"title":30,"searchDepth":44,"depth":44,"links":277944},[277945],{"id":277849,"depth":44,"text":277364},"Useful Workflows in Yay.",{},{"title":277364,"description":277946},"yay/useful-workflows",[276839,168699,5588,276918,5591],"3bLOSLc4XverbsAj1hRhuE3gEIZxPJ7CSXzxLa9QHyw",{"id":277953,"title":277370,"body":277954,"date":402,"description":278160,"extension":404,"meta":278161,"navigation":61,"order":700,"path":277369,"seo":278162,"stem":278163,"subject":276839,"tags":278164,"__hash__":278165},"topics/yay/yay-vs-pacman.md",{"type":8,"value":277955,"toc":278157},[277956,277959,278155],[11,277957,277370],{"id":277958},"yay-vs-pacman",[25,277960,277962],{"className":27,"code":277961,"language":29,"meta":30,"style":30},"# Package Installation\npacman -S package                  # Pacman: Official repos only\nyay -S package                     # Yay: Official repos + AUR\n\n# System Update\npacman -Syu                        # Pacman: Update official packages\nyay -Syu                           # Yay: Update official + AUR packages\nyay                                # Yay: Shorthand for full update\n\n# Search\npacman -Ss searchterm              # Pacman: Search official repos\nyay searchterm                     # Yay: Search repos + AUR (interactive)\n\n# Removing Orphans\npacman -Qtdq | pacman -Rns -       # Pacman: Manual pipe required\nyay -Yc                            # Yay: Built-in orphan removal\n\n# PKGBUILD Review\n# Pacman: Manual download & review\nyay -S --editmenu package          # Yay: Interactive PKGBUILD editor\n\n# Key Differences:\n# - Yay wraps pacman and adds AUR support\n# - Yay uses pacman syntax (same flags)\n# - Yay provides interactive search/install\n# - Yay handles PKGBUILD review automatically\n# - Both require sudo for system operations\n# - Pacman is official, yay is community tool\n",[20,277963,277964,277969,277980,277991,277995,278000,278009,278018,278025,278029,278034,278045,278054,278058,278063,278080,278089,278093,278098,278103,278116,278120,278125,278130,278135,278140,278145,278150],{"__ignoreMap":30},[34,277965,277966],{"class":36,"line":37},[34,277967,277968],{"class":40},"# Package Installation\n",[34,277970,277971,277973,277975,277977],{"class":36,"line":44},[34,277972,7770],{"class":47},[34,277974,7773],{"class":50},[34,277976,276946],{"class":54},[34,277978,277979],{"class":40},"                  # Pacman: Official repos only\n",[34,277981,277982,277984,277986,277988],{"class":36,"line":58},[34,277983,276839],{"class":47},[34,277985,7773],{"class":50},[34,277987,276946],{"class":54},[34,277989,277990],{"class":40},"                     # Yay: Official repos + AUR\n",[34,277992,277993],{"class":36,"line":65},[34,277994,62],{"emptyLinePlaceholder":61},[34,277996,277997],{"class":36,"line":71},[34,277998,277999],{"class":40},"# System Update\n",[34,278001,278002,278004,278006],{"class":36,"line":77},[34,278003,7770],{"class":47},[34,278005,277786],{"class":50},[34,278007,278008],{"class":40},"                        # Pacman: Update official packages\n",[34,278010,278011,278013,278015],{"class":36,"line":82},[34,278012,276839],{"class":47},[34,278014,277786],{"class":50},[34,278016,278017],{"class":40},"                           # Yay: Update official + AUR packages\n",[34,278019,278020,278022],{"class":36,"line":88},[34,278021,276839],{"class":47},[34,278023,278024],{"class":40},"                                # Yay: Shorthand for full update\n",[34,278026,278027],{"class":36,"line":242},[34,278028,62],{"emptyLinePlaceholder":61},[34,278030,278031],{"class":36,"line":250},[34,278032,278033],{"class":40},"# Search\n",[34,278035,278036,278038,278040,278042],{"class":36,"line":263},[34,278037,7770],{"class":47},[34,278039,169589],{"class":50},[34,278041,277595],{"class":54},[34,278043,278044],{"class":40},"              # Pacman: Search official repos\n",[34,278046,278047,278049,278051],{"class":36,"line":275},[34,278048,276839],{"class":47},[34,278050,277595],{"class":54},[34,278052,278053],{"class":40},"                     # Yay: Search repos + AUR (interactive)\n",[34,278055,278056],{"class":36,"line":700},[34,278057,62],{"emptyLinePlaceholder":61},[34,278059,278060],{"class":36,"line":706},[34,278061,278062],{"class":40},"# Removing Orphans\n",[34,278064,278065,278067,278069,278071,278073,278075,278077],{"class":36,"line":715},[34,278066,7770],{"class":47},[34,278068,168652],{"class":50},[34,278070,7197],{"class":580},[34,278072,53595],{"class":47},[34,278074,168645],{"class":50},[34,278076,19423],{"class":54},[34,278078,278079],{"class":40},"       # Pacman: Manual pipe required\n",[34,278081,278082,278084,278086],{"class":36,"line":725},[34,278083,276839],{"class":47},[34,278085,276880],{"class":50},[34,278087,278088],{"class":40},"                            # Yay: Built-in orphan removal\n",[34,278090,278091],{"class":36,"line":734},[34,278092,62],{"emptyLinePlaceholder":61},[34,278094,278095],{"class":36,"line":742},[34,278096,278097],{"class":40},"# PKGBUILD Review\n",[34,278099,278100],{"class":36,"line":748},[34,278101,278102],{"class":40},"# Pacman: Manual download & review\n",[34,278104,278105,278107,278109,278111,278113],{"class":36,"line":754},[34,278106,276839],{"class":47},[34,278108,7773],{"class":50},[34,278110,276967],{"class":50},[34,278112,276946],{"class":54},[34,278114,278115],{"class":40},"          # Yay: Interactive PKGBUILD editor\n",[34,278117,278118],{"class":36,"line":759},[34,278119,62],{"emptyLinePlaceholder":61},[34,278121,278122],{"class":36,"line":771},[34,278123,278124],{"class":40},"# Key Differences:\n",[34,278126,278127],{"class":36,"line":794},[34,278128,278129],{"class":40},"# - Yay wraps pacman and adds AUR support\n",[34,278131,278132],{"class":36,"line":824},[34,278133,278134],{"class":40},"# - Yay uses pacman syntax (same flags)\n",[34,278136,278137],{"class":36,"line":830},[34,278138,278139],{"class":40},"# - Yay provides interactive search/install\n",[34,278141,278142],{"class":36,"line":839},[34,278143,278144],{"class":40},"# - Yay handles PKGBUILD review automatically\n",[34,278146,278147],{"class":36,"line":854},[34,278148,278149],{"class":40},"# - Both require sudo for system operations\n",[34,278151,278152],{"class":36,"line":860},[34,278153,278154],{"class":40},"# - Pacman is official, yay is community tool\n",[388,278156,15873],{},{"title":30,"searchDepth":44,"depth":44,"links":278158},[278159],{"id":277958,"depth":44,"text":277370},"Yay vs Pacman in Yay.",{},{"title":277370,"description":278160},"yay/yay-vs-pacman",[276839,168699,5588,276918,5591],"-KIi56xcIay6Hb8Gjodr7YW8xUqzPD9KxkD3tlYwb6s",{"id":278167,"title":278168,"body":278169,"date":402,"description":278716,"extension":404,"meta":278717,"navigation":61,"order":37,"path":278718,"seo":278719,"stem":278720,"subject":278168,"tags":278721,"__hash__":278723},"topics/yq/overview.md","yq",{"type":8,"value":278170,"toc":278706},[278171,278173,278237,278241,278315,278319,278377,278381,278462,278466,278538,278542,278581,278583,278659,278663,278704],[11,278172,97],{"id":96},[25,278174,278176],{"className":27,"code":278175,"language":29,"meta":30,"style":30},"# macOS\nbrew install yq\n\n# Linux (binary)\nwget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/local/bin/yq\nchmod +x /usr/local/bin/yq\n\n# Go\ngo install github.com/mikefarah/yq/v4@latest\n",[20,278177,278178,278182,278191,278195,278200,278212,278220,278224,278228],{"__ignoreMap":30},[34,278179,278180],{"class":36,"line":37},[34,278181,8625],{"class":40},[34,278183,278184,278186,278188],{"class":36,"line":44},[34,278185,115],{"class":47},[34,278187,118],{"class":54},[34,278189,278190],{"class":54}," yq\n",[34,278192,278193],{"class":36,"line":58},[34,278194,62],{"emptyLinePlaceholder":61},[34,278196,278197],{"class":36,"line":65},[34,278198,278199],{"class":40},"# Linux (binary)\n",[34,278201,278202,278204,278207,278209],{"class":36,"line":71},[34,278203,28992],{"class":47},[34,278205,278206],{"class":54}," https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64",[34,278208,29669],{"class":50},[34,278210,278211],{"class":54}," /usr/local/bin/yq\n",[34,278213,278214,278216,278218],{"class":36,"line":77},[34,278215,13281],{"class":47},[34,278217,53650],{"class":54},[34,278219,278211],{"class":54},[34,278221,278222],{"class":36,"line":82},[34,278223,62],{"emptyLinePlaceholder":61},[34,278225,278226],{"class":36,"line":88},[34,278227,103109],{"class":40},[34,278229,278230,278232,278234],{"class":36,"line":242},[34,278231,103114],{"class":47},[34,278233,118],{"class":54},[34,278235,278236],{"class":54}," github.com/mikefarah/yq/v4@latest\n",[11,278238,278240],{"id":278239},"basic-reading","Basic Reading",[25,278242,278244],{"className":27,"code":278243,"language":29,"meta":30,"style":30},"# Read a field\nyq '.name' config.yaml\n\n# Nested field\nyq '.server.port' config.yaml\n\n# Array element\nyq '.users[0].name' config.yaml\n\n# All array items\nyq '.users[].name' config.yaml\n",[20,278245,278246,278251,278261,278265,278270,278279,278283,278288,278297,278301,278306],{"__ignoreMap":30},[34,278247,278248],{"class":36,"line":37},[34,278249,278250],{"class":40},"# Read a field\n",[34,278252,278253,278255,278258],{"class":36,"line":44},[34,278254,278168],{"class":47},[34,278256,278257],{"class":54}," '.name'",[34,278259,278260],{"class":54}," config.yaml\n",[34,278262,278263],{"class":36,"line":58},[34,278264,62],{"emptyLinePlaceholder":61},[34,278266,278267],{"class":36,"line":65},[34,278268,278269],{"class":40},"# Nested field\n",[34,278271,278272,278274,278277],{"class":36,"line":71},[34,278273,278168],{"class":47},[34,278275,278276],{"class":54}," '.server.port'",[34,278278,278260],{"class":54},[34,278280,278281],{"class":36,"line":77},[34,278282,62],{"emptyLinePlaceholder":61},[34,278284,278285],{"class":36,"line":82},[34,278286,278287],{"class":40},"# Array element\n",[34,278289,278290,278292,278295],{"class":36,"line":88},[34,278291,278168],{"class":47},[34,278293,278294],{"class":54}," '.users[0].name'",[34,278296,278260],{"class":54},[34,278298,278299],{"class":36,"line":242},[34,278300,62],{"emptyLinePlaceholder":61},[34,278302,278303],{"class":36,"line":250},[34,278304,278305],{"class":40},"# All array items\n",[34,278307,278308,278310,278313],{"class":36,"line":263},[34,278309,278168],{"class":47},[34,278311,278312],{"class":54}," '.users[].name'",[34,278314,278260],{"class":54},[11,278316,278318],{"id":278317},"filtering-selection","Filtering & Selection",[25,278320,278322],{"className":27,"code":278321,"language":29,"meta":30,"style":30},"# Filter array by condition\nyq '.users[] | select(.active == true)' users.yaml\n\n# Select by string match\nyq '.services[] | select(.name == \"api\")' docker-compose.yml\n\n# Multiple conditions\nyq '.items[] | select(.price > 10 and .stock > 0)' items.yaml\n",[20,278323,278324,278329,278339,278343,278348,278358,278362,278367],{"__ignoreMap":30},[34,278325,278326],{"class":36,"line":37},[34,278327,278328],{"class":40},"# Filter array by condition\n",[34,278330,278331,278333,278336],{"class":36,"line":44},[34,278332,278168],{"class":47},[34,278334,278335],{"class":54}," '.users[] | select(.active == true)'",[34,278337,278338],{"class":54}," users.yaml\n",[34,278340,278341],{"class":36,"line":58},[34,278342,62],{"emptyLinePlaceholder":61},[34,278344,278345],{"class":36,"line":65},[34,278346,278347],{"class":40},"# Select by string match\n",[34,278349,278350,278352,278355],{"class":36,"line":71},[34,278351,278168],{"class":47},[34,278353,278354],{"class":54}," '.services[] | select(.name == \"api\")'",[34,278356,278357],{"class":54}," docker-compose.yml\n",[34,278359,278360],{"class":36,"line":77},[34,278361,62],{"emptyLinePlaceholder":61},[34,278363,278364],{"class":36,"line":82},[34,278365,278366],{"class":40},"# Multiple conditions\n",[34,278368,278369,278371,278374],{"class":36,"line":88},[34,278370,278168],{"class":47},[34,278372,278373],{"class":54}," '.items[] | select(.price > 10 and .stock > 0)'",[34,278375,278376],{"class":54}," items.yaml\n",[11,278378,278380],{"id":278379},"modifying-values","Modifying Values",[25,278382,278384],{"className":27,"code":278383,"language":29,"meta":30,"style":30},"# Update a field (in-place)\nyq -i '.version = \"2.0\"' config.yaml\n\n# Update nested field\nyq -i '.server.port = 8080' config.yaml\n\n# Add a new field\nyq -i '.metadata.updated = \"2024-01-01\"' config.yaml\n\n# Delete a field\nyq -i 'del(.debug)' config.yaml\n",[20,278385,278386,278391,278402,278406,278411,278422,278426,278431,278442,278446,278451],{"__ignoreMap":30},[34,278387,278388],{"class":36,"line":37},[34,278389,278390],{"class":40},"# Update a field (in-place)\n",[34,278392,278393,278395,278397,278400],{"class":36,"line":44},[34,278394,278168],{"class":47},[34,278396,13065],{"class":50},[34,278398,278399],{"class":54}," '.version = \"2.0\"'",[34,278401,278260],{"class":54},[34,278403,278404],{"class":36,"line":58},[34,278405,62],{"emptyLinePlaceholder":61},[34,278407,278408],{"class":36,"line":65},[34,278409,278410],{"class":40},"# Update nested field\n",[34,278412,278413,278415,278417,278420],{"class":36,"line":71},[34,278414,278168],{"class":47},[34,278416,13065],{"class":50},[34,278418,278419],{"class":54}," '.server.port = 8080'",[34,278421,278260],{"class":54},[34,278423,278424],{"class":36,"line":77},[34,278425,62],{"emptyLinePlaceholder":61},[34,278427,278428],{"class":36,"line":82},[34,278429,278430],{"class":40},"# Add a new field\n",[34,278432,278433,278435,278437,278440],{"class":36,"line":88},[34,278434,278168],{"class":47},[34,278436,13065],{"class":50},[34,278438,278439],{"class":54}," '.metadata.updated = \"2024-01-01\"'",[34,278441,278260],{"class":54},[34,278443,278444],{"class":36,"line":242},[34,278445,62],{"emptyLinePlaceholder":61},[34,278447,278448],{"class":36,"line":250},[34,278449,278450],{"class":40},"# Delete a field\n",[34,278452,278453,278455,278457,278460],{"class":36,"line":263},[34,278454,278168],{"class":47},[34,278456,13065],{"class":50},[34,278458,278459],{"class":54}," 'del(.debug)'",[34,278461,278260],{"class":54},[11,278463,278465],{"id":278464},"format-conversion","Format Conversion",[25,278467,278469],{"className":27,"code":278468,"language":29,"meta":30,"style":30},"# YAML → JSON\nyq -o=json config.yaml\n\n# JSON → YAML\nyq -P config.json\n\n# YAML → XML\nyq -o=xml config.yaml\n\n# Pretty-print\nyq '.' config.yaml\n",[20,278470,278471,278476,278485,278489,278494,278503,278507,278512,278521,278525,278530],{"__ignoreMap":30},[34,278472,278473],{"class":36,"line":37},[34,278474,278475],{"class":40},"# YAML → JSON\n",[34,278477,278478,278480,278483],{"class":36,"line":44},[34,278479,278168],{"class":47},[34,278481,278482],{"class":50}," -o=json",[34,278484,278260],{"class":54},[34,278486,278487],{"class":36,"line":58},[34,278488,62],{"emptyLinePlaceholder":61},[34,278490,278491],{"class":36,"line":65},[34,278492,278493],{"class":40},"# JSON → YAML\n",[34,278495,278496,278498,278500],{"class":36,"line":71},[34,278497,278168],{"class":47},[34,278499,110642],{"class":50},[34,278501,278502],{"class":54}," config.json\n",[34,278504,278505],{"class":36,"line":77},[34,278506,62],{"emptyLinePlaceholder":61},[34,278508,278509],{"class":36,"line":82},[34,278510,278511],{"class":40},"# YAML → XML\n",[34,278513,278514,278516,278519],{"class":36,"line":88},[34,278515,278168],{"class":47},[34,278517,278518],{"class":50}," -o=xml",[34,278520,278260],{"class":54},[34,278522,278523],{"class":36,"line":242},[34,278524,62],{"emptyLinePlaceholder":61},[34,278526,278527],{"class":36,"line":250},[34,278528,278529],{"class":40},"# Pretty-print\n",[34,278531,278532,278534,278536],{"class":36,"line":263},[34,278533,278168],{"class":47},[34,278535,127388],{"class":54},[34,278537,278260],{"class":54},[11,278539,278541],{"id":278540},"merging-files","Merging Files",[25,278543,278545],{"className":27,"code":278544,"language":29,"meta":30,"style":30},"# Merge two YAML files (second overrides first)\nyq '. * load(\"override.yaml\")' base.yaml\n\n# Merge all yaml files\nyq '. *+ load(\"b.yaml\")' a.yaml\n",[20,278546,278547,278552,278562,278566,278571],{"__ignoreMap":30},[34,278548,278549],{"class":36,"line":37},[34,278550,278551],{"class":40},"# Merge two YAML files (second overrides first)\n",[34,278553,278554,278556,278559],{"class":36,"line":44},[34,278555,278168],{"class":47},[34,278557,278558],{"class":54}," '. * load(\"override.yaml\")'",[34,278560,278561],{"class":54}," base.yaml\n",[34,278563,278564],{"class":36,"line":58},[34,278565,62],{"emptyLinePlaceholder":61},[34,278567,278568],{"class":36,"line":65},[34,278569,278570],{"class":40},"# Merge all yaml files\n",[34,278572,278573,278575,278578],{"class":36,"line":71},[34,278574,278168],{"class":47},[34,278576,278577],{"class":54}," '. *+ load(\"b.yaml\")'",[34,278579,278580],{"class":54}," a.yaml\n",[11,278582,10061],{"id":10066},[25,278584,278586],{"className":27,"code":278585,"language":29,"meta":30,"style":30},"# Append to array\nyq -i '.tags += [\"new-tag\"]' config.yaml\n\n# Map over array\nyq '.items[] | .name' data.yaml\n\n# Count items\nyq '.items | length' data.yaml\n\n# Sort array\nyq '.items | sort_by(.name)' data.yaml\n",[20,278587,278588,278593,278604,278608,278613,278623,278627,278632,278641,278645,278650],{"__ignoreMap":30},[34,278589,278590],{"class":36,"line":37},[34,278591,278592],{"class":40},"# Append to array\n",[34,278594,278595,278597,278599,278602],{"class":36,"line":44},[34,278596,278168],{"class":47},[34,278598,13065],{"class":50},[34,278600,278601],{"class":54}," '.tags += [\"new-tag\"]'",[34,278603,278260],{"class":54},[34,278605,278606],{"class":36,"line":58},[34,278607,62],{"emptyLinePlaceholder":61},[34,278609,278610],{"class":36,"line":65},[34,278611,278612],{"class":40},"# Map over array\n",[34,278614,278615,278617,278620],{"class":36,"line":71},[34,278616,278168],{"class":47},[34,278618,278619],{"class":54}," '.items[] | .name'",[34,278621,278622],{"class":54}," data.yaml\n",[34,278624,278625],{"class":36,"line":77},[34,278626,62],{"emptyLinePlaceholder":61},[34,278628,278629],{"class":36,"line":82},[34,278630,278631],{"class":40},"# Count items\n",[34,278633,278634,278636,278639],{"class":36,"line":88},[34,278635,278168],{"class":47},[34,278637,278638],{"class":54}," '.items | length'",[34,278640,278622],{"class":54},[34,278642,278643],{"class":36,"line":242},[34,278644,62],{"emptyLinePlaceholder":61},[34,278646,278647],{"class":36,"line":250},[34,278648,278649],{"class":40},"# Sort array\n",[34,278651,278652,278654,278657],{"class":36,"line":263},[34,278653,278168],{"class":47},[34,278655,278656],{"class":54}," '.items | sort_by(.name)'",[34,278658,278622],{"class":54},[11,278660,278662],{"id":278661},"multi-document-yaml","Multi-document YAML",[25,278664,278666],{"className":27,"code":278665,"language":29,"meta":30,"style":30},"# Process all documents in a file\nyq '.' multi.yaml         # reads all ---  separated docs\n\n# Select document by index\nyq 'select(document_index == 1)' multi.yaml\n",[20,278667,278668,278673,278685,278689,278694],{"__ignoreMap":30},[34,278669,278670],{"class":36,"line":37},[34,278671,278672],{"class":40},"# Process all documents in a file\n",[34,278674,278675,278677,278679,278682],{"class":36,"line":44},[34,278676,278168],{"class":47},[34,278678,127388],{"class":54},[34,278680,278681],{"class":54}," multi.yaml",[34,278683,278684],{"class":40},"         # reads all ---  separated docs\n",[34,278686,278687],{"class":36,"line":58},[34,278688,62],{"emptyLinePlaceholder":61},[34,278690,278691],{"class":36,"line":65},[34,278692,278693],{"class":40},"# Select document by index\n",[34,278695,278696,278698,278701],{"class":36,"line":71},[34,278697,278168],{"class":47},[34,278699,278700],{"class":54}," 'select(document_index == 1)'",[34,278702,278703],{"class":54}," multi.yaml\n",[388,278705,6022],{},{"title":30,"searchDepth":44,"depth":44,"links":278707},[278708,278709,278710,278711,278712,278713,278714,278715],{"id":96,"depth":44,"text":97},{"id":278239,"depth":44,"text":278240},{"id":278317,"depth":44,"text":278318},{"id":278379,"depth":44,"text":278380},{"id":278464,"depth":44,"text":278465},{"id":278540,"depth":44,"text":278541},{"id":10066,"depth":44,"text":10061},{"id":278661,"depth":44,"text":278662},"A lightweight command-line YAML, JSON, and XML processor — like jq but for YAML.",{},"/yq/overview",{"title":278168,"description":278716},"yq/overview",[278168,170,14790,411,278722],"processing","a-v9gZhEN1V8Dj-1Gdy04zir9lMn3eG2w9ELzFmrIqw",{"id":278725,"title":278726,"body":278727,"date":402,"description":279012,"extension":404,"meta":279013,"navigation":61,"order":37,"path":279014,"seo":279015,"stem":279016,"subject":278845,"tags":279017,"__hash__":279019},"topics/zellij/overview.md","Zellij",{"type":8,"value":278728,"toc":279004},[278729,278731,278734,278736,278777,278781,278852,278854,278978,278982,278995,278999,279002],[11,278730,13534],{"id":13533},[16,278732,278733],{},"Zellij is a terminal workspace with batteries included. It provides the ability to manage panes, layouts, and plugins effectively.",[11,278735,97],{"id":96},[25,278737,278739],{"className":27,"code":278738,"language":29,"meta":30,"style":30},"# Install Zellij on Linux\ncurl -sSL https://zellij.dev/install.sh | bash\n\n# Install Zellij on macOS via Homebrew\nbrew install zellij\n",[20,278740,278741,278746,278759,278763,278768],{"__ignoreMap":30},[34,278742,278743],{"class":36,"line":37},[34,278744,278745],{"class":40},"# Install Zellij on Linux\n",[34,278747,278748,278750,278752,278755,278757],{"class":36,"line":44},[34,278749,8648],{"class":47},[34,278751,113245],{"class":50},[34,278753,278754],{"class":54}," https://zellij.dev/install.sh",[34,278756,7197],{"class":580},[34,278758,9346],{"class":47},[34,278760,278761],{"class":36,"line":58},[34,278762,62],{"emptyLinePlaceholder":61},[34,278764,278765],{"class":36,"line":65},[34,278766,278767],{"class":40},"# Install Zellij on macOS via Homebrew\n",[34,278769,278770,278772,278774],{"class":36,"line":71},[34,278771,115],{"class":47},[34,278773,118],{"class":54},[34,278775,278776],{"class":54}," zellij\n",[11,278778,278780],{"id":278779},"layout-management","Layout Management",[25,278782,278784],{"className":27,"code":278783,"language":29,"meta":30,"style":30},"# Create a custom layout file:\n# example-layout.kdl\nlayout \"example\" {\n    tab {\n        pane {}\n        pane {}\n    }\n}\n\n# Load the layout\nzellij --layout example-layout.kdl\n",[20,278785,278786,278791,278796,278804,278811,278818,278824,278828,278832,278836,278841],{"__ignoreMap":30},[34,278787,278788],{"class":36,"line":37},[34,278789,278790],{"class":40},"# Create a custom layout file:\n",[34,278792,278793],{"class":36,"line":44},[34,278794,278795],{"class":40},"# example-layout.kdl\n",[34,278797,278798,278800,278802],{"class":36,"line":58},[34,278799,53797],{"class":47},[34,278801,248457],{"class":54},[34,278803,661],{"class":54},[34,278805,278806,278809],{"class":36,"line":65},[34,278807,278808],{"class":47},"    tab",[34,278810,661],{"class":54},[34,278812,278813,278816],{"class":36,"line":71},[34,278814,278815],{"class":47},"        pane",[34,278817,1104],{"class":54},[34,278819,278820,278822],{"class":36,"line":77},[34,278821,278815],{"class":47},[34,278823,1104],{"class":54},[34,278825,278826],{"class":36,"line":82},[34,278827,3229],{"class":181},[34,278829,278830],{"class":36,"line":88},[34,278831,693],{"class":181},[34,278833,278834],{"class":36,"line":242},[34,278835,62],{"emptyLinePlaceholder":61},[34,278837,278838],{"class":36,"line":250},[34,278839,278840],{"class":40},"# Load the layout\n",[34,278842,278843,278846,278849],{"class":36,"line":263},[34,278844,278845],{"class":47},"zellij",[34,278847,278848],{"class":50}," --layout",[34,278850,278851],{"class":54}," example-layout.kdl\n",[11,278853,157858],{"id":157857},[25,278855,278857],{"className":212148,"code":278856,"language":161277,"meta":30,"style":30},"/// Define your own plugin in Rust\nuse zellij_plugin::prelude::*;\n\nfn main() {\n    zellij_plugins::init_plugin!(|ctx, msg| match msg {\n        PluginCommand::Custom(cmd) => {\n            ctx.print(&format!(\"Received command: {}\", cmd));\n        }\n        _ => {}\n    });\n}\n",[20,278858,278859,278864,278881,278885,278893,278917,278934,278957,278961,278970,278974],{"__ignoreMap":30},[34,278860,278861],{"class":36,"line":37},[34,278862,278863],{"class":40},"/// Define your own plugin in Rust\n",[34,278865,278866,278868,278871,278873,278876,278879],{"class":36,"line":44},[34,278867,61898],{"class":580},[34,278869,278870],{"class":47}," zellij_plugin",[34,278872,30110],{"class":580},[34,278874,278875],{"class":47},"prelude",[34,278877,278878],{"class":580},"::*",[34,278880,593],{"class":181},[34,278882,278883],{"class":36,"line":58},[34,278884,62],{"emptyLinePlaceholder":61},[34,278886,278887,278889,278891],{"class":36,"line":65},[34,278888,77761],{"class":580},[34,278890,18224],{"class":47},[34,278892,836],{"class":181},[34,278894,278895,278898,278900,278903,278905,278907,278910,278912,278914],{"class":36,"line":71},[34,278896,278897],{"class":47},"    zellij_plugins",[34,278899,30110],{"class":580},[34,278901,278902],{"class":47},"init_plugin!",[34,278904,1607],{"class":181},[34,278906,2670],{"class":580},[34,278908,278909],{"class":181},"ctx, msg",[34,278911,2670],{"class":580},[34,278913,171159],{"class":580},[34,278915,278916],{"class":181}," msg {\n",[34,278918,278919,278922,278924,278927,278930,278932],{"class":36,"line":77},[34,278920,278921],{"class":47},"        PluginCommand",[34,278923,30110],{"class":580},[34,278925,278926],{"class":47},"Custom",[34,278928,278929],{"class":181},"(cmd) ",[34,278931,3361],{"class":580},[34,278933,661],{"class":181},[34,278935,278936,278939,278941,278943,278945,278947,278949,278951,278954],{"class":36,"line":82},[34,278937,278938],{"class":181},"            ctx",[34,278940,151],{"class":580},[34,278942,53417],{"class":47},[34,278944,1607],{"class":181},[34,278946,19502],{"class":580},[34,278948,212226],{"class":47},[34,278950,1607],{"class":181},[34,278952,278953],{"class":54},"\"Received command: {}\"",[34,278955,278956],{"class":181},", cmd));\n",[34,278958,278959],{"class":36,"line":88},[34,278960,26208],{"class":181},[34,278962,278963,278966,278968],{"class":36,"line":242},[34,278964,278965],{"class":181},"        _ ",[34,278967,3361],{"class":580},[34,278969,1104],{"class":181},[34,278971,278972],{"class":36,"line":250},[34,278973,3660],{"class":181},[34,278975,278976],{"class":36,"line":263},[34,278977,693],{"class":181},[11,278979,278981],{"id":278980},"screencasts-and-tutorials","Screencasts and Tutorials",[309,278983,278984,278987],{},[312,278985,278986],{},"Learn how to manage sessions efficiently or customize layouts visually.",[312,278988,278989,278990,151],{},"For advanced topics, refer to the ",[145,278991,278994],{"href":278992,"rel":278993},"https://zellij.dev/screencasts",[149],"official screencasts",[11,278996,278998],{"id":278997},"compatibility","Compatibility",[16,279000,279001],{},"Zellij is compatible across major operating systems with support for localized keyboard shortcuts and multi-layout workflows.",[388,279003,82975],{},{"title":30,"searchDepth":44,"depth":44,"links":279005},[279006,279007,279008,279009,279010,279011],{"id":13533,"depth":44,"text":13534},{"id":96,"depth":44,"text":97},{"id":278779,"depth":44,"text":278780},{"id":157857,"depth":44,"text":157858},{"id":278980,"depth":44,"text":278981},{"id":278997,"depth":44,"text":278998},"Zellij terminal workspace features, installation, and customization options.",{},"/zellij/overview",{"title":278726,"description":279012},"zellij/overview",[278845,557,279018,161277],"workspace","iMGf0aep9kGd7CszcTYwuts9zYTi8U0HtP1TXVXEsZk",{"id":279021,"title":103504,"body":279022,"date":402,"description":279251,"extension":404,"meta":279252,"navigation":61,"order":71,"path":279253,"seo":279254,"stem":279255,"subject":279030,"tags":279256,"__hash__":279257},"topics/zig/arrays-and-slices.md",{"type":8,"value":279023,"toc":279248},[279024,279026,279245],[11,279025,103504],{"id":103509},[25,279027,279031],{"className":279028,"code":279029,"language":279030,"meta":30,"style":30},"language-zig shiki shiki-themes github-light github-dark","// Fixed-size array\nconst arr = [_]i32{ 1, 2, 3, 4, 5 };\n\n// Access elements\nconst first = arr[0];\n\n// Array length\nconst len = arr.len;\n\n// Slice (pointer + length)\nconst slice: []const i32 = arr[1..4];\n\n// Iterate over array\nfor (arr) |item| {\n    // use item\n}\n\n// With index\nfor (arr, 0..) |item, index| {\n    // use item and index\n}\n","zig",[20,279032,279033,279038,279077,279081,279086,279103,279107,279112,279128,279132,279137,279164,279168,279173,279191,279196,279200,279204,279209,279236,279241],{"__ignoreMap":30},[34,279034,279035],{"class":36,"line":37},[34,279036,279037],{"class":40},"// Fixed-size array\n",[34,279039,279040,279042,279044,279046,279048,279050,279052,279054,279057,279059,279061,279063,279065,279067,279069,279071,279073,279075],{"class":36,"line":44},[34,279041,14676],{"class":580},[34,279043,23347],{"class":675},[34,279045,683],{"class":580},[34,279047,8315],{"class":181},[34,279049,60694],{"class":675},[34,279051,10173],{"class":181},[34,279053,8248],{"class":580},[34,279055,279056],{"class":181},"{ ",[34,279058,8318],{"class":50},[34,279060,1798],{"class":181},[34,279062,8324],{"class":50},[34,279064,1798],{"class":181},[34,279066,3162],{"class":50},[34,279068,1798],{"class":181},[34,279070,18010],{"class":50},[34,279072,1798],{"class":181},[34,279074,2778],{"class":50},[34,279076,33355],{"class":181},[34,279078,279079],{"class":36,"line":58},[34,279080,62],{"emptyLinePlaceholder":61},[34,279082,279083],{"class":36,"line":65},[34,279084,279085],{"class":40},"// Access elements\n",[34,279087,279088,279090,279093,279095,279097,279099,279101],{"class":36,"line":71},[34,279089,14676],{"class":580},[34,279091,279092],{"class":675}," first",[34,279094,683],{"class":580},[34,279096,23347],{"class":675},[34,279098,10260],{"class":181},[34,279100,2773],{"class":50},[34,279102,3415],{"class":181},[34,279104,279105],{"class":36,"line":77},[34,279106,62],{"emptyLinePlaceholder":61},[34,279108,279109],{"class":36,"line":82},[34,279110,279111],{"class":40},"// Array length\n",[34,279113,279114,279116,279118,279120,279122,279124,279126],{"class":36,"line":88},[34,279115,14676],{"class":580},[34,279117,21152],{"class":675},[34,279119,683],{"class":580},[34,279121,23347],{"class":675},[34,279123,151],{"class":181},[34,279125,63603],{"class":675},[34,279127,593],{"class":181},[34,279129,279130],{"class":36,"line":242},[34,279131,62],{"emptyLinePlaceholder":61},[34,279133,279134],{"class":36,"line":250},[34,279135,279136],{"class":40},"// Slice (pointer + length)\n",[34,279138,279139,279141,279143,279146,279148,279150,279152,279154,279156,279158,279160,279162],{"class":36,"line":263},[34,279140,14676],{"class":580},[34,279142,2768],{"class":675},[34,279144,279145],{"class":181},": []",[34,279147,14676],{"class":580},[34,279149,8049],{"class":580},[34,279151,683],{"class":580},[34,279153,23347],{"class":675},[34,279155,10260],{"class":181},[34,279157,8318],{"class":50},[34,279159,101074],{"class":181},[34,279161,18010],{"class":50},[34,279163,3415],{"class":181},[34,279165,279166],{"class":36,"line":275},[34,279167,62],{"emptyLinePlaceholder":61},[34,279169,279170],{"class":36,"line":700},[34,279171,279172],{"class":40},"// Iterate over array\n",[34,279174,279175,279177,279179,279181,279183,279185,279187,279189],{"class":36,"line":706},[34,279176,10246],{"class":580},[34,279178,3204],{"class":181},[34,279180,18382],{"class":675},[34,279182,4817],{"class":181},[34,279184,2670],{"class":580},[34,279186,4935],{"class":675},[34,279188,2670],{"class":580},[34,279190,661],{"class":181},[34,279192,279193],{"class":36,"line":715},[34,279194,279195],{"class":40},"    // use item\n",[34,279197,279198],{"class":36,"line":725},[34,279199,693],{"class":181},[34,279201,279202],{"class":36,"line":734},[34,279203,62],{"emptyLinePlaceholder":61},[34,279205,279206],{"class":36,"line":742},[34,279207,279208],{"class":40},"// With index\n",[34,279210,279211,279213,279215,279217,279219,279221,279224,279226,279228,279230,279232,279234],{"class":36,"line":748},[34,279212,10246],{"class":580},[34,279214,3204],{"class":181},[34,279216,18382],{"class":675},[34,279218,1798],{"class":181},[34,279220,2773],{"class":50},[34,279222,279223],{"class":181},"..) ",[34,279225,2670],{"class":580},[34,279227,4935],{"class":675},[34,279229,1798],{"class":181},[34,279231,200432],{"class":675},[34,279233,2670],{"class":580},[34,279235,661],{"class":181},[34,279237,279238],{"class":36,"line":754},[34,279239,279240],{"class":40},"    // use item and index\n",[34,279242,279243],{"class":36,"line":759},[34,279244,693],{"class":181},[388,279246,279247],{},"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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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":30,"searchDepth":44,"depth":44,"links":279249},[279250],{"id":103509,"depth":44,"text":103504},"Arrays and Slices in Zig.",{},"/zig/arrays-and-slices",{"title":103504,"description":279251},"zig/arrays-and-slices",[279030,18137,18139,212407],"Vwr0PWPYtiylFiFqp6lzcDeC7PQyQq1xu_PzKdvC5Do",{"id":279259,"title":279260,"body":279261,"date":402,"description":279513,"extension":404,"meta":279514,"navigation":61,"order":715,"path":279515,"seo":279516,"stem":279517,"subject":279030,"tags":279518,"__hash__":279519},"topics/zig/comptime.md","Comptime",{"type":8,"value":279262,"toc":279510},[279263,279266,279507],[11,279264,279260],{"id":279265},"comptime",[25,279267,279269],{"className":279028,"code":279268,"language":279030,"meta":30,"style":30},"// Compile-time evaluation\nconst computed = comptime blk: {\n    var result: i32 = 0;\n    for (0..10) |i| {\n        result += @intCast(i);\n    }\n    break :blk result;\n};\n\n// Comptime parameter\nfn repeat(comptime n: usize, value: u8) [n]u8 {\n    return [_]u8{value} ** n;\n}\n\n// Type reflection\nfn debugPrint(comptime T: type, value: T) void {\n    const info = @typeInfo(T);\n    // use type info\n}\n",[20,279270,279271,279276,279292,279308,279330,279346,279350,279363,279367,279371,279376,279413,279437,279441,279445,279450,279481,279498,279503],{"__ignoreMap":30},[34,279272,279273],{"class":36,"line":37},[34,279274,279275],{"class":40},"// Compile-time evaluation\n",[34,279277,279278,279280,279282,279284,279287,279290],{"class":36,"line":44},[34,279279,14676],{"class":580},[34,279281,4272],{"class":675},[34,279283,683],{"class":580},[34,279285,279286],{"class":580}," comptime",[34,279288,279289],{"class":675}," blk",[34,279291,28073],{"class":181},[34,279293,279294,279296,279298,279300,279302,279304,279306],{"class":36,"line":58},[34,279295,33908],{"class":580},[34,279297,11103],{"class":675},[34,279299,182],{"class":181},[34,279301,8248],{"class":580},[34,279303,683],{"class":580},[34,279305,8070],{"class":50},[34,279307,593],{"class":181},[34,279309,279310,279312,279314,279316,279318,279320,279322,279324,279326,279328],{"class":36,"line":65},[34,279311,18250],{"class":580},[34,279313,3204],{"class":181},[34,279315,2773],{"class":50},[34,279317,101074],{"class":181},[34,279319,11923],{"class":50},[34,279321,4817],{"class":181},[34,279323,2670],{"class":580},[34,279325,77335],{"class":675},[34,279327,2670],{"class":580},[34,279329,661],{"class":181},[34,279331,279332,279335,279337,279340,279342,279344],{"class":36,"line":71},[34,279333,279334],{"class":675},"        result",[34,279336,209572],{"class":580},[34,279338,279339],{"class":50}," @intCast",[34,279341,1607],{"class":181},[34,279343,77335],{"class":675},[34,279345,1586],{"class":181},[34,279347,279348],{"class":36,"line":77},[34,279349,3229],{"class":181},[34,279351,279352,279354,279356,279359,279361],{"class":36,"line":82},[34,279353,212521],{"class":580},[34,279355,64223],{"class":181},[34,279357,279358],{"class":675},"blk",[34,279360,11103],{"class":675},[34,279362,593],{"class":181},[34,279364,279365],{"class":36,"line":88},[34,279366,17632],{"class":181},[34,279368,279369],{"class":36,"line":242},[34,279370,62],{"emptyLinePlaceholder":61},[34,279372,279373],{"class":36,"line":250},[34,279374,279375],{"class":40},"// Comptime parameter\n",[34,279377,279378,279380,279382,279384,279386,279388,279390,279393,279395,279397,279399,279402,279405,279407,279409,279411],{"class":36,"line":263},[34,279379,77761],{"class":580},[34,279381,210685],{"class":47},[34,279383,1607],{"class":181},[34,279385,279265],{"class":580},[34,279387,21959],{"class":675},[34,279389,182],{"class":181},[34,279391,279392],{"class":580},"usize",[34,279394,1798],{"class":181},[34,279396,2871],{"class":675},[34,279398,182],{"class":181},[34,279400,279401],{"class":580},"u8",[34,279403,279404],{"class":181},") [",[34,279406,6217],{"class":675},[34,279408,10173],{"class":181},[34,279410,279401],{"class":580},[34,279412,661],{"class":181},[34,279414,279415,279417,279419,279421,279423,279425,279427,279429,279431,279433,279435],{"class":36,"line":275},[34,279416,1564],{"class":580},[34,279418,8315],{"class":181},[34,279420,60694],{"class":675},[34,279422,10173],{"class":181},[34,279424,279401],{"class":580},[34,279426,13990],{"class":181},[34,279428,2871],{"class":675},[34,279430,2276],{"class":181},[34,279432,23469],{"class":580},[34,279434,21959],{"class":675},[34,279436,593],{"class":181},[34,279438,279439],{"class":36,"line":700},[34,279440,693],{"class":181},[34,279442,279443],{"class":36,"line":706},[34,279444,62],{"emptyLinePlaceholder":61},[34,279446,279447],{"class":36,"line":715},[34,279448,279449],{"class":40},"// Type reflection\n",[34,279451,279452,279454,279457,279459,279461,279463,279465,279467,279469,279471,279473,279475,279477,279479],{"class":36,"line":725},[34,279453,77761],{"class":580},[34,279455,279456],{"class":47}," debugPrint",[34,279458,1607],{"class":181},[34,279460,279265],{"class":580},[34,279462,32664],{"class":675},[34,279464,182],{"class":181},[34,279466,41324],{"class":580},[34,279468,1798],{"class":181},[34,279470,2871],{"class":675},[34,279472,182],{"class":181},[34,279474,32671],{"class":675},[34,279476,4817],{"class":181},[34,279478,818],{"class":580},[34,279480,661],{"class":181},[34,279482,279483,279485,279487,279489,279492,279494,279496],{"class":36,"line":734},[34,279484,1632],{"class":580},[34,279486,54126],{"class":675},[34,279488,683],{"class":580},[34,279490,279491],{"class":50}," @typeInfo",[34,279493,1607],{"class":181},[34,279495,32671],{"class":675},[34,279497,1586],{"class":181},[34,279499,279500],{"class":36,"line":742},[34,279501,279502],{"class":40},"    // use type info\n",[34,279504,279505],{"class":36,"line":748},[34,279506,693],{"class":181},[388,279508,279509],{},"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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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 pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":279511},[279512],{"id":279265,"depth":44,"text":279260},"Comptime in Zig.",{},"/zig/comptime",{"title":279260,"description":279513},"zig/comptime",[279030,18137,18139,212407],"Zp8D2gxDPoDnZUD3W14DjkEMVLtA2Wne2yy8XK5Q2Bc",{"id":279521,"title":18818,"body":279522,"date":402,"description":279794,"extension":404,"meta":279795,"navigation":61,"order":88,"path":279796,"seo":279797,"stem":279798,"subject":279030,"tags":279799,"__hash__":279800},"topics/zig/control-flow.md",{"type":8,"value":279523,"toc":279791},[279524,279526,279788],[11,279525,18818],{"id":18823},[25,279527,279529],{"className":279028,"code":279528,"language":279030,"meta":30,"style":30},"// If expression\nconst result = if (x > 0) \"positive\" else \"non-positive\";\n\n// If statement\nif (condition) {\n    // do something\n} else if (other_condition) {\n    // do something else\n} else {\n    // default\n}\n\n// Switch expression\nconst output = switch (value) {\n    1 => \"one\",\n    2, 3 => \"two or three\",\n    4...10 => \"four to ten\",\n    else => \"other\",\n};\n\n// While loop\nwhile (condition) {\n    // loop body\n}\n\n// While with continue expression\nvar i: usize = 0;\nwhile (i \u003C 10) : (i += 1) {\n    // loop body\n}\n",[20,279530,279531,279536,279565,279569,279573,279583,279588,279603,279608,279616,279621,279625,279629,279634,279650,279660,279675,279690,279701,279705,279709,279713,279723,279728,279732,279736,279741,279757,279780,279784],{"__ignoreMap":30},[34,279532,279533],{"class":36,"line":37},[34,279534,279535],{"class":40},"// If expression\n",[34,279537,279538,279540,279542,279544,279546,279548,279550,279552,279554,279556,279558,279560,279563],{"class":36,"line":44},[34,279539,14676],{"class":580},[34,279541,11103],{"class":675},[34,279543,683],{"class":580},[34,279545,18874],{"class":580},[34,279547,3204],{"class":181},[34,279549,23655],{"class":675},[34,279551,9009],{"class":580},[34,279553,8070],{"class":50},[34,279555,4817],{"class":181},[34,279557,104891],{"class":54},[34,279559,242584],{"class":580},[34,279561,279562],{"class":54}," \"non-positive\"",[34,279564,593],{"class":181},[34,279566,279567],{"class":36,"line":58},[34,279568,62],{"emptyLinePlaceholder":61},[34,279570,279571],{"class":36,"line":65},[34,279572,104626],{"class":40},[34,279574,279575,279577,279579,279581],{"class":36,"line":71},[34,279576,10383],{"class":580},[34,279578,3204],{"class":181},[34,279580,71052],{"class":675},[34,279582,2416],{"class":181},[34,279584,279585],{"class":36,"line":77},[34,279586,279587],{"class":40},"    // do something\n",[34,279589,279590,279592,279594,279596,279598,279601],{"class":36,"line":82},[34,279591,2276],{"class":181},[34,279593,18871],{"class":580},[34,279595,18874],{"class":580},[34,279597,3204],{"class":181},[34,279599,279600],{"class":675},"other_condition",[34,279602,2416],{"class":181},[34,279604,279605],{"class":36,"line":88},[34,279606,279607],{"class":40},"    // do something else\n",[34,279609,279610,279612,279614],{"class":36,"line":242},[34,279611,2276],{"class":181},[34,279613,18871],{"class":580},[34,279615,661],{"class":181},[34,279617,279618],{"class":36,"line":250},[34,279619,279620],{"class":40},"    // default\n",[34,279622,279623],{"class":36,"line":263},[34,279624,693],{"class":181},[34,279626,279627],{"class":36,"line":275},[34,279628,62],{"emptyLinePlaceholder":61},[34,279630,279631],{"class":36,"line":700},[34,279632,279633],{"class":40},"// Switch expression\n",[34,279635,279636,279638,279640,279642,279644,279646,279648],{"class":36,"line":706},[34,279637,14676],{"class":580},[34,279639,16775],{"class":675},[34,279641,683],{"class":580},[34,279643,94668],{"class":580},[34,279645,3204],{"class":181},[34,279647,2871],{"class":675},[34,279649,2416],{"class":181},[34,279651,279652,279654,279656,279658],{"class":36,"line":715},[34,279653,134718],{"class":50},[34,279655,1895],{"class":580},[34,279657,204414],{"class":54},[34,279659,624],{"class":181},[34,279661,279662,279664,279666,279668,279670,279673],{"class":36,"line":725},[34,279663,134728],{"class":50},[34,279665,1798],{"class":181},[34,279667,3162],{"class":50},[34,279669,1895],{"class":580},[34,279671,279672],{"class":54}," \"two or three\"",[34,279674,624],{"class":181},[34,279676,279677,279679,279681,279683,279685,279688],{"class":36,"line":734},[34,279678,215890],{"class":50},[34,279680,16841],{"class":181},[34,279682,11923],{"class":50},[34,279684,1895],{"class":580},[34,279686,279687],{"class":54}," \"four to ten\"",[34,279689,624],{"class":181},[34,279691,279692,279694,279696,279699],{"class":36,"line":742},[34,279693,63908],{"class":580},[34,279695,1895],{"class":580},[34,279697,279698],{"class":54}," \"other\"",[34,279700,624],{"class":181},[34,279702,279703],{"class":36,"line":748},[34,279704,17632],{"class":181},[34,279706,279707],{"class":36,"line":754},[34,279708,62],{"emptyLinePlaceholder":61},[34,279710,279711],{"class":36,"line":759},[34,279712,19081],{"class":40},[34,279714,279715,279717,279719,279721],{"class":36,"line":771},[34,279716,12005],{"class":580},[34,279718,3204],{"class":181},[34,279720,71052],{"class":675},[34,279722,2416],{"class":181},[34,279724,279725],{"class":36,"line":794},[34,279726,279727],{"class":40},"    // loop body\n",[34,279729,279730],{"class":36,"line":824},[34,279731,693],{"class":181},[34,279733,279734],{"class":36,"line":830},[34,279735,62],{"emptyLinePlaceholder":61},[34,279737,279738],{"class":36,"line":839},[34,279739,279740],{"class":40},"// While with continue expression\n",[34,279742,279743,279745,279747,279749,279751,279753,279755],{"class":36,"line":854},[34,279744,34404],{"class":580},[34,279746,13765],{"class":675},[34,279748,182],{"class":181},[34,279750,279392],{"class":580},[34,279752,683],{"class":580},[34,279754,8070],{"class":50},[34,279756,593],{"class":181},[34,279758,279759,279761,279763,279765,279767,279769,279772,279774,279776,279778],{"class":36,"line":860},[34,279760,12005],{"class":580},[34,279762,3204],{"class":181},[34,279764,77335],{"class":675},[34,279766,5470],{"class":580},[34,279768,13123],{"class":50},[34,279770,279771],{"class":181},") : (",[34,279773,77335],{"class":675},[34,279775,209572],{"class":580},[34,279777,3567],{"class":50},[34,279779,2416],{"class":181},[34,279781,279782],{"class":36,"line":865},[34,279783,279727],{"class":40},[34,279785,279786],{"class":36,"line":870},[34,279787,693],{"class":181},[388,279789,279790],{},"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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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 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);}",{"title":30,"searchDepth":44,"depth":44,"links":279792},[279793],{"id":18823,"depth":44,"text":18818},"Control Flow in Zig.",{},"/zig/control-flow",{"title":18818,"description":279794},"zig/control-flow",[279030,18137,18139,212407],"dgIGEu7rxvTYrBjNAIGrJALpx2s7WfzGVM0Od54Semg",{"id":279802,"title":61423,"body":279803,"date":402,"description":280022,"extension":404,"meta":280023,"navigation":61,"order":65,"path":280024,"seo":280025,"stem":280026,"subject":279030,"tags":280027,"__hash__":280028},"topics/zig/data-types.md",{"type":8,"value":279804,"toc":280019},[279805,279807,280017],[11,279806,61423],{"id":61422},[25,279808,279810],{"className":279028,"code":279809,"language":279030,"meta":30,"style":30},"// Integers\nconst a: i8 = -128;      // signed 8-bit\nconst b: u32 = 1000;     // unsigned 32-bit\nconst c: usize = 42;     // pointer-sized unsigned\n\n// Floats\nconst f: f32 = 3.14;\nconst d: f64 = 2.71828;\n\n// Boolean\nconst flag: bool = true;\n\n// Optional\nconst maybe: ?i32 = null;\nconst value: ?i32 = 42;\n\n// Error union\nconst result: anyerror!i32 = 42;\n",[20,279811,279812,279817,279840,279860,279879,279883,279888,279905,279922,279926,279931,279948,279952,279957,279975,279991,279995,280000],{"__ignoreMap":30},[34,279813,279814],{"class":36,"line":37},[34,279815,279816],{"class":40},"// Integers\n",[34,279818,279819,279821,279823,279825,279828,279830,279832,279835,279837],{"class":36,"line":44},[34,279820,14676],{"class":580},[34,279822,19385],{"class":675},[34,279824,182],{"class":181},[34,279826,279827],{"class":580},"i8",[34,279829,683],{"class":580},[34,279831,19423],{"class":580},[34,279833,279834],{"class":50},"128",[34,279836,42028],{"class":181},[34,279838,279839],{"class":40},"// signed 8-bit\n",[34,279841,279842,279844,279846,279848,279851,279853,279855,279857],{"class":36,"line":58},[34,279843,14676],{"class":580},[34,279845,19392],{"class":675},[34,279847,182],{"class":181},[34,279849,279850],{"class":580},"u32",[34,279852,683],{"class":580},[34,279854,77114],{"class":50},[34,279856,38334],{"class":181},[34,279858,279859],{"class":40},"// unsigned 32-bit\n",[34,279861,279862,279864,279866,279868,279870,279872,279874,279876],{"class":36,"line":65},[34,279863,14676],{"class":580},[34,279865,183605],{"class":675},[34,279867,182],{"class":181},[34,279869,279392],{"class":580},[34,279871,683],{"class":580},[34,279873,19987],{"class":50},[34,279875,38334],{"class":181},[34,279877,279878],{"class":40},"// pointer-sized unsigned\n",[34,279880,279881],{"class":36,"line":71},[34,279882,62],{"emptyLinePlaceholder":61},[34,279884,279885],{"class":36,"line":77},[34,279886,279887],{"class":40},"// Floats\n",[34,279889,279890,279892,279894,279896,279899,279901,279903],{"class":36,"line":82},[34,279891,14676],{"class":580},[34,279893,12984],{"class":675},[34,279895,182],{"class":181},[34,279897,279898],{"class":580},"f32",[34,279900,683],{"class":580},[34,279902,32903],{"class":50},[34,279904,593],{"class":181},[34,279906,279907,279909,279911,279913,279915,279917,279920],{"class":36,"line":88},[34,279908,14676],{"class":580},[34,279910,89838],{"class":675},[34,279912,182],{"class":181},[34,279914,214127],{"class":580},[34,279916,683],{"class":580},[34,279918,279919],{"class":50}," 2.71828",[34,279921,593],{"class":181},[34,279923,279924],{"class":36,"line":242},[34,279925,62],{"emptyLinePlaceholder":61},[34,279927,279928],{"class":36,"line":250},[34,279929,279930],{"class":40},"// Boolean\n",[34,279932,279933,279935,279938,279940,279942,279944,279946],{"class":36,"line":263},[34,279934,14676],{"class":580},[34,279936,279937],{"class":675}," flag",[34,279939,182],{"class":181},[34,279941,32937],{"class":580},[34,279943,683],{"class":580},[34,279945,32945],{"class":580},[34,279947,593],{"class":181},[34,279949,279950],{"class":36,"line":275},[34,279951,62],{"emptyLinePlaceholder":61},[34,279953,279954],{"class":36,"line":700},[34,279955,279956],{"class":40},"// Optional\n",[34,279958,279959,279961,279964,279966,279969,279971,279973],{"class":36,"line":706},[34,279960,14676],{"class":580},[34,279962,279963],{"class":675}," maybe",[34,279965,182],{"class":181},[34,279967,279968],{"class":580},"?i32",[34,279970,683],{"class":580},[34,279972,13898],{"class":580},[34,279974,593],{"class":181},[34,279976,279977,279979,279981,279983,279985,279987,279989],{"class":36,"line":715},[34,279978,14676],{"class":580},[34,279980,18389],{"class":675},[34,279982,182],{"class":181},[34,279984,279968],{"class":580},[34,279986,683],{"class":580},[34,279988,19987],{"class":50},[34,279990,593],{"class":181},[34,279992,279993],{"class":36,"line":725},[34,279994,62],{"emptyLinePlaceholder":61},[34,279996,279997],{"class":36,"line":734},[34,279998,279999],{"class":40},"// Error union\n",[34,280001,280002,280004,280006,280008,280011,280013,280015],{"class":36,"line":742},[34,280003,14676],{"class":580},[34,280005,11103],{"class":675},[34,280007,182],{"class":181},[34,280009,280010],{"class":580},"anyerror!i32",[34,280012,683],{"class":580},[34,280014,19987],{"class":50},[34,280016,593],{"class":181},[388,280018,279247],{},{"title":30,"searchDepth":44,"depth":44,"links":280020},[280021],{"id":61422,"depth":44,"text":61423},"Data Types in Zig.",{},"/zig/data-types",{"title":61423,"description":280022},"zig/data-types",[279030,18137,18139,212407],"xXVIxWy49E8AIV1e0Z3casbhKdEl-YMFlli7L_skkmA",{"id":280030,"title":25912,"body":280031,"date":402,"description":280312,"extension":404,"meta":280313,"navigation":61,"order":250,"path":280314,"seo":280315,"stem":280316,"subject":279030,"tags":280317,"__hash__":280318},"topics/zig/enums.md",{"type":8,"value":280032,"toc":280309},[280033,280035,280307],[11,280034,25912],{"id":25917},[25,280036,280038],{"className":279028,"code":280037,"language":279030,"meta":30,"style":30},"// Basic enum\nconst Direction = enum {\n    north,\n    south,\n    east,\n    west,\n};\n\n// Enum with values\nconst HttpStatus = enum(u16) {\n    ok = 200,\n    not_found = 404,\n    internal_error = 500,\n};\n\n// Tagged union\nconst Value = union(enum) {\n    int: i32,\n    float: f64,\n    string: []const u8,\n    none,\n};\n\nconst v = Value{ .int = 42 };\nswitch (v) {\n    .int => |i| // use i,\n    .float => |f| // use f,\n    else => {},\n}\n",[20,280039,280040,280044,280056,280063,280070,280077,280084,280088,280092,280097,280115,280127,280139,280150,280154,280158,280163,280180,280190,280200,280214,280221,280225,280229,280250,280260,280277,280294,280303],{"__ignoreMap":30},[34,280041,280042],{"class":36,"line":37},[34,280043,25927],{"class":40},[34,280045,280046,280048,280050,280052,280054],{"class":36,"line":44},[34,280047,14676],{"class":580},[34,280049,137139],{"class":675},[34,280051,683],{"class":580},[34,280053,20315],{"class":580},[34,280055,661],{"class":181},[34,280057,280058,280061],{"class":36,"line":58},[34,280059,280060],{"class":675},"    north",[34,280062,624],{"class":181},[34,280064,280065,280068],{"class":36,"line":65},[34,280066,280067],{"class":675},"    south",[34,280069,624],{"class":181},[34,280071,280072,280075],{"class":36,"line":71},[34,280073,280074],{"class":675},"    east",[34,280076,624],{"class":181},[34,280078,280079,280082],{"class":36,"line":77},[34,280080,280081],{"class":675},"    west",[34,280083,624],{"class":181},[34,280085,280086],{"class":36,"line":82},[34,280087,17632],{"class":181},[34,280089,280090],{"class":36,"line":88},[34,280091,62],{"emptyLinePlaceholder":61},[34,280093,280094],{"class":36,"line":242},[34,280095,280096],{"class":40},"// Enum with values\n",[34,280098,280099,280101,280104,280106,280108,280110,280113],{"class":36,"line":250},[34,280100,14676],{"class":580},[34,280102,280103],{"class":675}," HttpStatus",[34,280105,683],{"class":580},[34,280107,20315],{"class":580},[34,280109,1607],{"class":181},[34,280111,280112],{"class":580},"u16",[34,280114,2416],{"class":181},[34,280116,280117,280120,280122,280125],{"class":36,"line":263},[34,280118,280119],{"class":675},"    ok",[34,280121,683],{"class":580},[34,280123,280124],{"class":50}," 200",[34,280126,624],{"class":181},[34,280128,280129,280132,280134,280137],{"class":36,"line":275},[34,280130,280131],{"class":675},"    not_found",[34,280133,683],{"class":580},[34,280135,280136],{"class":50}," 404",[34,280138,624],{"class":181},[34,280140,280141,280144,280146,280148],{"class":36,"line":700},[34,280142,280143],{"class":675},"    internal_error",[34,280145,683],{"class":580},[34,280147,76472],{"class":50},[34,280149,624],{"class":181},[34,280151,280152],{"class":36,"line":706},[34,280153,17632],{"class":181},[34,280155,280156],{"class":36,"line":715},[34,280157,62],{"emptyLinePlaceholder":61},[34,280159,280160],{"class":36,"line":725},[34,280161,280162],{"class":40},"// Tagged union\n",[34,280164,280165,280167,280169,280171,280174,280176,280178],{"class":36,"line":734},[34,280166,14676],{"class":580},[34,280168,35802],{"class":675},[34,280170,683],{"class":580},[34,280172,280173],{"class":580}," union",[34,280175,1607],{"class":181},[34,280177,137134],{"class":580},[34,280179,2416],{"class":181},[34,280181,280182,280184,280186,280188],{"class":36,"line":742},[34,280183,18339],{"class":675},[34,280185,182],{"class":181},[34,280187,8248],{"class":580},[34,280189,624],{"class":181},[34,280191,280192,280194,280196,280198],{"class":36,"line":748},[34,280193,24707],{"class":675},[34,280195,182],{"class":181},[34,280197,214127],{"class":580},[34,280199,624],{"class":181},[34,280201,280202,280205,280207,280209,280212],{"class":36,"line":754},[34,280203,280204],{"class":675},"    string",[34,280206,279145],{"class":181},[34,280208,14676],{"class":580},[34,280210,280211],{"class":580}," u8",[34,280213,624],{"class":181},[34,280215,280216,280219],{"class":36,"line":759},[34,280217,280218],{"class":675},"    none",[34,280220,624],{"class":181},[34,280222,280223],{"class":36,"line":771},[34,280224,17632],{"class":181},[34,280226,280227],{"class":36,"line":794},[34,280228,62],{"emptyLinePlaceholder":61},[34,280230,280231,280233,280235,280237,280239,280242,280244,280246,280248],{"class":36,"line":824},[34,280232,14676],{"class":580},[34,280234,32765],{"class":675},[34,280236,683],{"class":580},[34,280238,35802],{"class":675},[34,280240,280241],{"class":181},"{ .",[34,280243,17772],{"class":675},[34,280245,683],{"class":580},[34,280247,19987],{"class":50},[34,280249,33355],{"class":181},[34,280251,280252,280254,280256,280258],{"class":36,"line":830},[34,280253,18978],{"class":580},[34,280255,3204],{"class":181},[34,280257,87307],{"class":675},[34,280259,2416],{"class":181},[34,280261,280262,280264,280266,280268,280270,280272,280274],{"class":36,"line":839},[34,280263,123827],{"class":181},[34,280265,17772],{"class":675},[34,280267,1895],{"class":580},[34,280269,7197],{"class":580},[34,280271,77335],{"class":675},[34,280273,2670],{"class":580},[34,280275,280276],{"class":40}," // use i,\n",[34,280278,280279,280281,280283,280285,280287,280289,280291],{"class":36,"line":854},[34,280280,123827],{"class":181},[34,280282,25079],{"class":675},[34,280284,1895],{"class":580},[34,280286,7197],{"class":580},[34,280288,32918],{"class":675},[34,280290,2670],{"class":580},[34,280292,280293],{"class":40}," // use f,\n",[34,280295,280296,280298,280300],{"class":36,"line":860},[34,280297,63908],{"class":580},[34,280299,1895],{"class":580},[34,280301,280302],{"class":181}," {},\n",[34,280304,280305],{"class":36,"line":865},[34,280306,693],{"class":181},[388,280308,279247],{},{"title":30,"searchDepth":44,"depth":44,"links":280310},[280311],{"id":25917,"depth":44,"text":25912},"Enums in Zig.",{},"/zig/enums",{"title":25912,"description":280312},"zig/enums",[279030,18137,18139,212407],"q7mLxR9tfwtVvCjwr_CoLxgqFPBTnPHqQf4DzrtCCLU",{"id":280320,"title":19352,"body":280321,"date":402,"description":280646,"extension":404,"meta":280647,"navigation":61,"order":263,"path":280648,"seo":280649,"stem":280650,"subject":279030,"tags":280651,"__hash__":280652},"topics/zig/error-handling.md",{"type":8,"value":280322,"toc":280643},[280323,280325,280640],[11,280324,19352],{"id":19357},[25,280326,280328],{"className":279028,"code":280327,"language":279030,"meta":30,"style":30},"// Define errors\nconst FileError = error{\n    NotFound,\n    PermissionDenied,\n    EndOfFile,\n};\n\n// Return error\nfn readFile(path: []const u8) FileError![]u8 {\n    if (path.len == 0) return error.NotFound;\n    // ...\n}\n\n// Try operator (propagate error)\nconst data = try readFile(\"test.txt\");\n\n// Catch with default\nconst result = readFile(\"test.txt\") catch \"default\";\n\n// Catch with handler\nconst value = readFile(\"test.txt\") catch |err| {\n    std.debug.print(\"Error: {}\\n\", .{err});\n    return err;\n};\n\n// If error capture\nif (readFile(\"test.txt\")) |data| {\n    // success\n} else |err| {\n    // handle error\n}\n",[20,280329,280330,280335,280347,280354,280361,280368,280372,280376,280380,280409,280438,280442,280446,280450,280455,280474,280478,280483,280506,280510,280515,280541,280569,280577,280581,280585,280590,280612,280617,280631,280636],{"__ignoreMap":30},[34,280331,280332],{"class":36,"line":37},[34,280333,280334],{"class":40},"// Define errors\n",[34,280336,280337,280339,280341,280343,280345],{"class":36,"line":44},[34,280338,14676],{"class":580},[34,280340,241781],{"class":675},[34,280342,683],{"class":580},[34,280344,88301],{"class":580},[34,280346,25296],{"class":181},[34,280348,280349,280352],{"class":36,"line":58},[34,280350,280351],{"class":675},"    NotFound",[34,280353,624],{"class":181},[34,280355,280356,280359],{"class":36,"line":65},[34,280357,280358],{"class":675},"    PermissionDenied",[34,280360,624],{"class":181},[34,280362,280363,280366],{"class":36,"line":71},[34,280364,280365],{"class":675},"    EndOfFile",[34,280367,624],{"class":181},[34,280369,280370],{"class":36,"line":77},[34,280371,17632],{"class":181},[34,280373,280374],{"class":36,"line":82},[34,280375,62],{"emptyLinePlaceholder":61},[34,280377,280378],{"class":36,"line":88},[34,280379,105340],{"class":40},[34,280381,280382,280384,280386,280388,280390,280392,280394,280396,280398,280401,280403,280405,280407],{"class":36,"line":242},[34,280383,77761],{"class":580},[34,280385,105162],{"class":47},[34,280387,1607],{"class":181},[34,280389,20404],{"class":675},[34,280391,279145],{"class":181},[34,280393,14676],{"class":580},[34,280395,280211],{"class":580},[34,280397,4817],{"class":181},[34,280399,280400],{"class":675},"FileError",[34,280402,10307],{"class":580},[34,280404,17842],{"class":181},[34,280406,279401],{"class":580},[34,280408,661],{"class":181},[34,280410,280411,280413,280415,280417,280419,280421,280423,280425,280427,280429,280431,280433,280436],{"class":36,"line":250},[34,280412,2902],{"class":580},[34,280414,3204],{"class":181},[34,280416,20404],{"class":675},[34,280418,151],{"class":181},[34,280420,63603],{"class":675},[34,280422,10946],{"class":580},[34,280424,8070],{"class":50},[34,280426,4817],{"class":181},[34,280428,2917],{"class":580},[34,280430,88301],{"class":580},[34,280432,151],{"class":181},[34,280434,280435],{"class":675},"NotFound",[34,280437,593],{"class":181},[34,280439,280440],{"class":36,"line":263},[34,280441,176448],{"class":40},[34,280443,280444],{"class":36,"line":275},[34,280445,693],{"class":181},[34,280447,280448],{"class":36,"line":700},[34,280449,62],{"emptyLinePlaceholder":61},[34,280451,280452],{"class":36,"line":706},[34,280453,280454],{"class":40},"// Try operator (propagate error)\n",[34,280456,280457,280459,280461,280463,280465,280467,280469,280472],{"class":36,"line":715},[34,280458,14676],{"class":580},[34,280460,14780],{"class":675},[34,280462,683],{"class":580},[34,280464,241906],{"class":580},[34,280466,105162],{"class":47},[34,280468,1607],{"class":181},[34,280470,280471],{"class":54},"\"test.txt\"",[34,280473,1586],{"class":181},[34,280475,280476],{"class":36,"line":725},[34,280477,62],{"emptyLinePlaceholder":61},[34,280479,280480],{"class":36,"line":734},[34,280481,280482],{"class":40},"// Catch with default\n",[34,280484,280485,280487,280489,280491,280493,280495,280497,280499,280501,280504],{"class":36,"line":742},[34,280486,14676],{"class":580},[34,280488,11103],{"class":675},[34,280490,683],{"class":580},[34,280492,105162],{"class":47},[34,280494,1607],{"class":181},[34,280496,280471],{"class":54},[34,280498,4817],{"class":181},[34,280500,30851],{"class":580},[34,280502,280503],{"class":54}," \"default\"",[34,280505,593],{"class":181},[34,280507,280508],{"class":36,"line":748},[34,280509,62],{"emptyLinePlaceholder":61},[34,280511,280512],{"class":36,"line":754},[34,280513,280514],{"class":40},"// Catch with handler\n",[34,280516,280517,280519,280521,280523,280525,280527,280529,280531,280533,280535,280537,280539],{"class":36,"line":759},[34,280518,14676],{"class":580},[34,280520,18389],{"class":675},[34,280522,683],{"class":580},[34,280524,105162],{"class":47},[34,280526,1607],{"class":181},[34,280528,280471],{"class":54},[34,280530,4817],{"class":181},[34,280532,30851],{"class":580},[34,280534,7197],{"class":580},[34,280536,20566],{"class":675},[34,280538,2670],{"class":580},[34,280540,661],{"class":181},[34,280542,280543,280545,280547,280549,280551,280553,280555,280558,280560,280562,280565,280567],{"class":36,"line":771},[34,280544,30075],{"class":675},[34,280546,151],{"class":181},[34,280548,90238],{"class":675},[34,280550,151],{"class":181},[34,280552,53417],{"class":47},[34,280554,1607],{"class":181},[34,280556,280557],{"class":54},"\"Error: {}",[34,280559,18860],{"class":50},[34,280561,10389],{"class":54},[34,280563,280564],{"class":181},", .{",[34,280566,20566],{"class":675},[34,280568,14873],{"class":181},[34,280570,280571,280573,280575],{"class":36,"line":794},[34,280572,1564],{"class":580},[34,280574,77845],{"class":675},[34,280576,593],{"class":181},[34,280578,280579],{"class":36,"line":824},[34,280580,17632],{"class":181},[34,280582,280583],{"class":36,"line":830},[34,280584,62],{"emptyLinePlaceholder":61},[34,280586,280587],{"class":36,"line":839},[34,280588,280589],{"class":40},"// If error capture\n",[34,280591,280592,280594,280596,280598,280600,280602,280604,280606,280608,280610],{"class":36,"line":854},[34,280593,10383],{"class":580},[34,280595,3204],{"class":181},[34,280597,47514],{"class":47},[34,280599,1607],{"class":181},[34,280601,280471],{"class":54},[34,280603,49706],{"class":181},[34,280605,2670],{"class":580},[34,280607,1701],{"class":675},[34,280609,2670],{"class":580},[34,280611,661],{"class":181},[34,280613,280614],{"class":36,"line":860},[34,280615,280616],{"class":40},"    // success\n",[34,280618,280619,280621,280623,280625,280627,280629],{"class":36,"line":865},[34,280620,2276],{"class":181},[34,280622,18871],{"class":580},[34,280624,7197],{"class":580},[34,280626,20566],{"class":675},[34,280628,2670],{"class":580},[34,280630,661],{"class":181},[34,280632,280633],{"class":36,"line":870},[34,280634,280635],{"class":40},"    // handle error\n",[34,280637,280638],{"class":36,"line":876},[34,280639,693],{"class":181},[388,280641,280642],{},"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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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);}",{"title":30,"searchDepth":44,"depth":44,"links":280644},[280645],{"id":19357,"depth":44,"text":19352},"Error Handling in Zig.",{},"/zig/error-handling",{"title":19352,"description":280646},"zig/error-handling",[279030,18137,18139,212407],"9uafJiSlFafDfj1CNLm3uh0_k_jpVyH1am1Ib-9glhc",{"id":280654,"title":21267,"body":280655,"date":402,"description":281284,"extension":404,"meta":281285,"navigation":61,"order":706,"path":281286,"seo":281287,"stem":281288,"subject":279030,"tags":281289,"__hash__":281290},"topics/zig/file-io.md",{"type":8,"value":280656,"toc":281277},[280657,280659,280663,280853,280857,280953,280957,281274],[11,280658,21267],{"id":21272},[102,280660,280662],{"id":280661},"reading-files","Reading Files",[25,280664,280666],{"className":279028,"code":280665,"language":279030,"meta":30,"style":30},"const std = @import(\"std\");\n\n// Read entire file into memory\nvar gpa = std.heap.GeneralPurposeAllocator(.{}){};\ndefer _ = gpa.deinit();\n\nconst allocator = gpa.allocator();\n\nconst data = try std.fs.cwd().readFileAlloc(allocator, \"./some_file.txt\", 1024 * 1024);\ndefer allocator.free(data);\n\nstd.debug.print(\"File Contents: {s}\\n\", .{data});\n",[20,280667,280668,280686,280690,280695,280719,280736,280740,280758,280762,280806,280822,280826],{"__ignoreMap":30},[34,280669,280670,280672,280674,280676,280679,280681,280684],{"class":36,"line":37},[34,280671,14676],{"class":580},[34,280673,30217],{"class":675},[34,280675,683],{"class":580},[34,280677,280678],{"class":50}," @import",[34,280680,1607],{"class":181},[34,280682,280683],{"class":54},"\"std\"",[34,280685,1586],{"class":181},[34,280687,280688],{"class":36,"line":44},[34,280689,62],{"emptyLinePlaceholder":61},[34,280691,280692],{"class":36,"line":58},[34,280693,280694],{"class":40},"// Read entire file into memory\n",[34,280696,280697,280699,280702,280704,280706,280708,280711,280713,280716],{"class":36,"line":65},[34,280698,34404],{"class":580},[34,280700,280701],{"class":675}," gpa",[34,280703,683],{"class":580},[34,280705,30217],{"class":675},[34,280707,151],{"class":181},[34,280709,280710],{"class":675},"heap",[34,280712,151],{"class":181},[34,280714,280715],{"class":47},"GeneralPurposeAllocator",[34,280717,280718],{"class":181},"(.{}){};\n",[34,280720,280721,280723,280725,280727,280729,280731,280734],{"class":36,"line":71},[34,280722,25798],{"class":580},[34,280724,60711],{"class":675},[34,280726,683],{"class":580},[34,280728,280701],{"class":675},[34,280730,151],{"class":181},[34,280732,280733],{"class":47},"deinit",[34,280735,851],{"class":181},[34,280737,280738],{"class":36,"line":77},[34,280739,62],{"emptyLinePlaceholder":61},[34,280741,280742,280744,280747,280749,280751,280753,280756],{"class":36,"line":82},[34,280743,14676],{"class":580},[34,280745,280746],{"class":675}," allocator",[34,280748,683],{"class":580},[34,280750,280701],{"class":675},[34,280752,151],{"class":181},[34,280754,280755],{"class":47},"allocator",[34,280757,851],{"class":181},[34,280759,280760],{"class":36,"line":88},[34,280761,62],{"emptyLinePlaceholder":61},[34,280763,280764,280766,280768,280770,280772,280774,280776,280778,280780,280782,280784,280787,280789,280791,280793,280796,280798,280800,280802,280804],{"class":36,"line":242},[34,280765,14676],{"class":580},[34,280767,14780],{"class":675},[34,280769,683],{"class":580},[34,280771,241906],{"class":580},[34,280773,30217],{"class":675},[34,280775,151],{"class":181},[34,280777,213150],{"class":675},[34,280779,151],{"class":181},[34,280781,15286],{"class":47},[34,280783,1645],{"class":181},[34,280785,280786],{"class":47},"readFileAlloc",[34,280788,1607],{"class":181},[34,280790,280755],{"class":675},[34,280792,1798],{"class":181},[34,280794,280795],{"class":54},"\"./some_file.txt\"",[34,280797,1798],{"class":181},[34,280799,20181],{"class":50},[34,280801,18083],{"class":580},[34,280803,152915],{"class":50},[34,280805,1586],{"class":181},[34,280807,280808,280810,280812,280814,280816,280818,280820],{"class":36,"line":250},[34,280809,25798],{"class":580},[34,280811,280746],{"class":675},[34,280813,151],{"class":181},[34,280815,22435],{"class":47},[34,280817,1607],{"class":181},[34,280819,1701],{"class":675},[34,280821,1586],{"class":181},[34,280823,280824],{"class":36,"line":263},[34,280825,62],{"emptyLinePlaceholder":61},[34,280827,280828,280830,280832,280834,280836,280838,280840,280843,280845,280847,280849,280851],{"class":36,"line":275},[34,280829,29833],{"class":675},[34,280831,151],{"class":181},[34,280833,90238],{"class":675},[34,280835,151],{"class":181},[34,280837,53417],{"class":47},[34,280839,1607],{"class":181},[34,280841,280842],{"class":54},"\"File Contents: {s}",[34,280844,18860],{"class":50},[34,280846,10389],{"class":54},[34,280848,280564],{"class":181},[34,280850,1701],{"class":675},[34,280852,14873],{"class":181},[102,280854,280856],{"id":280855},"writing-files","Writing Files",[25,280858,280860],{"className":279028,"code":280859,"language":279030,"meta":30,"style":30},"const std = @import(\"std\");\n\nconst file = try std.fs.cwd().createFile(\"./some-file.txt\", .{});\ndefer file.close();\n\ntry file.writeAll(\"Hello, Zig File I/O!\\n\");\n",[20,280861,280862,280878,280882,280915,280927,280931],{"__ignoreMap":30},[34,280863,280864,280866,280868,280870,280872,280874,280876],{"class":36,"line":37},[34,280865,14676],{"class":580},[34,280867,30217],{"class":675},[34,280869,683],{"class":580},[34,280871,280678],{"class":50},[34,280873,1607],{"class":181},[34,280875,280683],{"class":54},[34,280877,1586],{"class":181},[34,280879,280880],{"class":36,"line":44},[34,280881,62],{"emptyLinePlaceholder":61},[34,280883,280884,280886,280888,280890,280892,280894,280896,280898,280900,280902,280904,280907,280909,280912],{"class":36,"line":58},[34,280885,14676],{"class":580},[34,280887,13190],{"class":675},[34,280889,683],{"class":580},[34,280891,241906],{"class":580},[34,280893,30217],{"class":675},[34,280895,151],{"class":181},[34,280897,213150],{"class":675},[34,280899,151],{"class":181},[34,280901,15286],{"class":47},[34,280903,1645],{"class":181},[34,280905,280906],{"class":47},"createFile",[34,280908,1607],{"class":181},[34,280910,280911],{"class":54},"\"./some-file.txt\"",[34,280913,280914],{"class":181},", .{});\n",[34,280916,280917,280919,280921,280923,280925],{"class":36,"line":65},[34,280918,25798],{"class":580},[34,280920,13190],{"class":675},[34,280922,151],{"class":181},[34,280924,17197],{"class":47},[34,280926,851],{"class":181},[34,280928,280929],{"class":36,"line":71},[34,280930,62],{"emptyLinePlaceholder":61},[34,280932,280933,280935,280937,280939,280942,280944,280947,280949,280951],{"class":36,"line":77},[34,280934,30813],{"class":580},[34,280936,13190],{"class":675},[34,280938,151],{"class":181},[34,280940,280941],{"class":47},"writeAll",[34,280943,1607],{"class":181},[34,280945,280946],{"class":54},"\"Hello, Zig File I/O!",[34,280948,18860],{"class":50},[34,280950,10389],{"class":54},[34,280952,1586],{"class":181},[102,280954,280956],{"id":280955},"user-input","User Input",[25,280958,280960],{"className":279028,"code":280959,"language":279030,"meta":30,"style":30},"const std = @import(\"std\");\n\npub fn main() !void {\n    try std.fs.File.stdout().writeAll(\"Enter your name: \");\n\n    // Get input from stdin\n    var stdin_buf: [256]u8 = undefined;\n    var stdin_reader = std.fs.File.stdin().reader(&stdin_buf);\n    const stdin = &stdin_reader.interface;\n    const name = try stdin.takeDelimiter('\\n');\n\n    // Display output to stdout\n    var stdout_buf: [256]u8 = undefined;\n    var stdout_writer = std.fs.File.stdout().writer(&stdout_buf);\n    const stdout = &stdout_writer.interface;\n\n    try stdout.print(\"Hello, {s}\", .{name orelse \"\"});\n    try stdout.flush();\n}\n",[20,280961,280962,280978,280982,280998,281027,281031,281036,281058,281096,281116,281140,281144,281149,281170,281207,281227,281231,281257,281270],{"__ignoreMap":30},[34,280963,280964,280966,280968,280970,280972,280974,280976],{"class":36,"line":37},[34,280965,14676],{"class":580},[34,280967,30217],{"class":675},[34,280969,683],{"class":580},[34,280971,280678],{"class":50},[34,280973,1607],{"class":181},[34,280975,280683],{"class":54},[34,280977,1586],{"class":181},[34,280979,280980],{"class":36,"line":44},[34,280981,62],{"emptyLinePlaceholder":61},[34,280983,280984,280987,280989,280991,280993,280996],{"class":36,"line":58},[34,280985,280986],{"class":580},"pub",[34,280988,77727],{"class":580},[34,280990,18224],{"class":47},[34,280992,672],{"class":181},[34,280994,280995],{"class":580},"!void",[34,280997,661],{"class":181},[34,280999,281000,281002,281004,281006,281008,281010,281012,281014,281017,281019,281021,281023,281025],{"class":36,"line":65},[34,281001,265199],{"class":580},[34,281003,30217],{"class":675},[34,281005,151],{"class":181},[34,281007,213150],{"class":675},[34,281009,151],{"class":181},[34,281011,137584],{"class":675},[34,281013,151],{"class":181},[34,281015,281016],{"class":47},"stdout",[34,281018,1645],{"class":181},[34,281020,280941],{"class":47},[34,281022,1607],{"class":181},[34,281024,87887],{"class":54},[34,281026,1586],{"class":181},[34,281028,281029],{"class":36,"line":71},[34,281030,62],{"emptyLinePlaceholder":61},[34,281032,281033],{"class":36,"line":77},[34,281034,281035],{"class":40},"    // Get input from stdin\n",[34,281037,281038,281040,281043,281045,281048,281050,281052,281054,281056],{"class":36,"line":82},[34,281039,33908],{"class":580},[34,281041,281042],{"class":675}," stdin_buf",[34,281044,47204],{"class":181},[34,281046,281047],{"class":50},"256",[34,281049,10173],{"class":181},[34,281051,279401],{"class":580},[34,281053,683],{"class":580},[34,281055,255916],{"class":580},[34,281057,593],{"class":181},[34,281059,281060,281062,281065,281067,281069,281071,281073,281075,281077,281079,281082,281084,281087,281089,281091,281094],{"class":36,"line":88},[34,281061,33908],{"class":580},[34,281063,281064],{"class":675}," stdin_reader",[34,281066,683],{"class":580},[34,281068,30217],{"class":675},[34,281070,151],{"class":181},[34,281072,213150],{"class":675},[34,281074,151],{"class":181},[34,281076,137584],{"class":675},[34,281078,151],{"class":181},[34,281080,281081],{"class":47},"stdin",[34,281083,1645],{"class":181},[34,281085,281086],{"class":47},"reader",[34,281088,1607],{"class":181},[34,281090,19502],{"class":580},[34,281092,281093],{"class":675},"stdin_buf",[34,281095,1586],{"class":181},[34,281097,281098,281100,281103,281105,281107,281110,281112,281114],{"class":36,"line":242},[34,281099,1632],{"class":580},[34,281101,281102],{"class":675}," stdin",[34,281104,683],{"class":580},[34,281106,11373],{"class":580},[34,281108,281109],{"class":675},"stdin_reader",[34,281111,151],{"class":181},[34,281113,17562],{"class":675},[34,281115,593],{"class":181},[34,281117,281118,281120,281122,281124,281126,281128,281130,281133,281135,281138],{"class":36,"line":250},[34,281119,1632],{"class":580},[34,281121,12323],{"class":675},[34,281123,683],{"class":580},[34,281125,241906],{"class":580},[34,281127,281102],{"class":675},[34,281129,151],{"class":181},[34,281131,281132],{"class":47},"takeDelimiter",[34,281134,1607],{"class":181},[34,281136,281137],{"class":54},"'\\n'",[34,281139,1586],{"class":181},[34,281141,281142],{"class":36,"line":263},[34,281143,62],{"emptyLinePlaceholder":61},[34,281145,281146],{"class":36,"line":275},[34,281147,281148],{"class":40},"    // Display output to stdout\n",[34,281150,281151,281153,281156,281158,281160,281162,281164,281166,281168],{"class":36,"line":700},[34,281152,33908],{"class":580},[34,281154,281155],{"class":675}," stdout_buf",[34,281157,47204],{"class":181},[34,281159,281047],{"class":50},[34,281161,10173],{"class":181},[34,281163,279401],{"class":580},[34,281165,683],{"class":580},[34,281167,255916],{"class":580},[34,281169,593],{"class":181},[34,281171,281172,281174,281177,281179,281181,281183,281185,281187,281189,281191,281193,281195,281198,281200,281202,281205],{"class":36,"line":706},[34,281173,33908],{"class":580},[34,281175,281176],{"class":675}," stdout_writer",[34,281178,683],{"class":580},[34,281180,30217],{"class":675},[34,281182,151],{"class":181},[34,281184,213150],{"class":675},[34,281186,151],{"class":181},[34,281188,137584],{"class":675},[34,281190,151],{"class":181},[34,281192,281016],{"class":47},[34,281194,1645],{"class":181},[34,281196,281197],{"class":47},"writer",[34,281199,1607],{"class":181},[34,281201,19502],{"class":580},[34,281203,281204],{"class":675},"stdout_buf",[34,281206,1586],{"class":181},[34,281208,281209,281211,281214,281216,281218,281221,281223,281225],{"class":36,"line":715},[34,281210,1632],{"class":580},[34,281212,281213],{"class":675}," stdout",[34,281215,683],{"class":580},[34,281217,11373],{"class":580},[34,281219,281220],{"class":675},"stdout_writer",[34,281222,151],{"class":181},[34,281224,17562],{"class":675},[34,281226,593],{"class":181},[34,281228,281229],{"class":36,"line":725},[34,281230,62],{"emptyLinePlaceholder":61},[34,281232,281233,281235,281237,281239,281241,281243,281246,281248,281250,281253,281255],{"class":36,"line":734},[34,281234,265199],{"class":580},[34,281236,281213],{"class":675},[34,281238,151],{"class":181},[34,281240,53417],{"class":47},[34,281242,1607],{"class":181},[34,281244,281245],{"class":54},"\"Hello, {s}\"",[34,281247,280564],{"class":181},[34,281249,178],{"class":675},[34,281251,281252],{"class":580}," orelse",[34,281254,228533],{"class":54},[34,281256,14873],{"class":181},[34,281258,281259,281261,281263,281265,281268],{"class":36,"line":742},[34,281260,265199],{"class":580},[34,281262,281213],{"class":675},[34,281264,151],{"class":181},[34,281266,281267],{"class":47},"flush",[34,281269,851],{"class":181},[34,281271,281272],{"class":36,"line":748},[34,281273,693],{"class":181},[388,281275,281276],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .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 .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 .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":30,"searchDepth":44,"depth":44,"links":281278},[281279],{"id":21272,"depth":44,"text":21267,"children":281280},[281281,281282,281283],{"id":280661,"depth":58,"text":280662},{"id":280855,"depth":58,"text":280856},{"id":280955,"depth":58,"text":280956},"File I/O in Zig.",{},"/zig/file-io",{"title":21267,"description":281284},"zig/file-io",[279030,18137,18139,212407],"P0RgKvmn6OCFBfeipOyBEX4_yx-i7bgFEopxXHMPKG0",{"id":281292,"title":10991,"body":281293,"date":402,"description":281556,"extension":404,"meta":281557,"navigation":61,"order":82,"path":281558,"seo":281559,"stem":281560,"subject":279030,"tags":281561,"__hash__":281562},"topics/zig/functions.md",{"type":8,"value":281294,"toc":281553},[281295,281297,281551],[11,281296,10991],{"id":10996},[25,281298,281300],{"className":279028,"code":281299,"language":279030,"meta":30,"style":30},"// Basic function\nfn add(a: i32, b: i32) i32 {\n    return a + b;\n}\n\n// Function with error return\nfn divide(a: f64, b: f64) !f64 {\n    if (b == 0) return error.DivisionByZero;\n    return a / b;\n}\n\n// Generic function\nfn max(comptime T: type, a: T, b: T) T {\n    return if (a > b) a else b;\n}\n\n// Inline function\ninline fn square(x: i32) i32 {\n    return x * x;\n}\n",[20,281301,281302,281306,281334,281346,281350,281354,281359,281388,281413,281425,281429,281433,281437,281475,281499,281503,281507,281512,281535,281547],{"__ignoreMap":30},[34,281303,281304],{"class":36,"line":37},[34,281305,26295],{"class":40},[34,281307,281308,281310,281312,281314,281316,281318,281320,281322,281324,281326,281328,281330,281332],{"class":36,"line":44},[34,281309,77761],{"class":580},[34,281311,7854],{"class":47},[34,281313,1607],{"class":181},[34,281315,145],{"class":675},[34,281317,182],{"class":181},[34,281319,8248],{"class":580},[34,281321,1798],{"class":181},[34,281323,8355],{"class":675},[34,281325,182],{"class":181},[34,281327,8248],{"class":580},[34,281329,4817],{"class":181},[34,281331,8248],{"class":580},[34,281333,661],{"class":181},[34,281335,281336,281338,281340,281342,281344],{"class":36,"line":58},[34,281337,1564],{"class":580},[34,281339,19385],{"class":675},[34,281341,11537],{"class":580},[34,281343,19392],{"class":675},[34,281345,593],{"class":181},[34,281347,281348],{"class":36,"line":65},[34,281349,693],{"class":181},[34,281351,281352],{"class":36,"line":71},[34,281353,62],{"emptyLinePlaceholder":61},[34,281355,281356],{"class":36,"line":77},[34,281357,281358],{"class":40},"// Function with error return\n",[34,281360,281361,281363,281365,281367,281369,281371,281373,281375,281377,281379,281381,281383,281386],{"class":36,"line":82},[34,281362,77761],{"class":580},[34,281364,19378],{"class":47},[34,281366,1607],{"class":181},[34,281368,145],{"class":675},[34,281370,182],{"class":181},[34,281372,214127],{"class":580},[34,281374,1798],{"class":181},[34,281376,8355],{"class":675},[34,281378,182],{"class":181},[34,281380,214127],{"class":580},[34,281382,4817],{"class":181},[34,281384,281385],{"class":580},"!f64",[34,281387,661],{"class":181},[34,281389,281390,281392,281394,281396,281398,281400,281402,281404,281406,281408,281411],{"class":36,"line":88},[34,281391,2902],{"class":580},[34,281393,3204],{"class":181},[34,281395,8355],{"class":675},[34,281397,10946],{"class":580},[34,281399,8070],{"class":50},[34,281401,4817],{"class":181},[34,281403,2917],{"class":580},[34,281405,88301],{"class":580},[34,281407,151],{"class":181},[34,281409,281410],{"class":675},"DivisionByZero",[34,281412,593],{"class":181},[34,281414,281415,281417,281419,281421,281423],{"class":36,"line":242},[34,281416,1564],{"class":580},[34,281418,19385],{"class":675},[34,281420,22767],{"class":580},[34,281422,19392],{"class":675},[34,281424,593],{"class":181},[34,281426,281427],{"class":36,"line":250},[34,281428,693],{"class":181},[34,281430,281431],{"class":36,"line":263},[34,281432,62],{"emptyLinePlaceholder":61},[34,281434,281435],{"class":36,"line":275},[34,281436,213885],{"class":40},[34,281438,281439,281441,281443,281445,281447,281449,281451,281453,281455,281457,281459,281461,281463,281465,281467,281469,281471,281473],{"class":36,"line":700},[34,281440,77761],{"class":580},[34,281442,116249],{"class":47},[34,281444,1607],{"class":181},[34,281446,279265],{"class":580},[34,281448,32664],{"class":675},[34,281450,182],{"class":181},[34,281452,41324],{"class":580},[34,281454,1798],{"class":181},[34,281456,145],{"class":675},[34,281458,182],{"class":181},[34,281460,32671],{"class":675},[34,281462,1798],{"class":181},[34,281464,8355],{"class":675},[34,281466,182],{"class":181},[34,281468,32671],{"class":675},[34,281470,4817],{"class":181},[34,281472,32671],{"class":675},[34,281474,661],{"class":181},[34,281476,281477,281479,281481,281483,281485,281487,281489,281491,281493,281495,281497],{"class":36,"line":706},[34,281478,1564],{"class":580},[34,281480,18874],{"class":580},[34,281482,3204],{"class":181},[34,281484,145],{"class":675},[34,281486,9009],{"class":580},[34,281488,19392],{"class":675},[34,281490,4817],{"class":181},[34,281492,145],{"class":675},[34,281494,242584],{"class":580},[34,281496,19392],{"class":675},[34,281498,593],{"class":181},[34,281500,281501],{"class":36,"line":715},[34,281502,693],{"class":181},[34,281504,281505],{"class":36,"line":725},[34,281506,62],{"emptyLinePlaceholder":61},[34,281508,281509],{"class":36,"line":734},[34,281510,281511],{"class":40},"// Inline function\n",[34,281513,281514,281517,281519,281521,281523,281525,281527,281529,281531,281533],{"class":36,"line":742},[34,281515,281516],{"class":580},"inline",[34,281518,77727],{"class":580},[34,281520,142732],{"class":47},[34,281522,1607],{"class":181},[34,281524,23655],{"class":675},[34,281526,182],{"class":181},[34,281528,8248],{"class":580},[34,281530,4817],{"class":181},[34,281532,8248],{"class":580},[34,281534,661],{"class":181},[34,281536,281537,281539,281541,281543,281545],{"class":36,"line":748},[34,281538,1564],{"class":580},[34,281540,31288],{"class":675},[34,281542,18083],{"class":580},[34,281544,31288],{"class":675},[34,281546,593],{"class":181},[34,281548,281549],{"class":36,"line":754},[34,281550,693],{"class":181},[388,281552,60244],{},{"title":30,"searchDepth":44,"depth":44,"links":281554},[281555],{"id":10996,"depth":44,"text":10991},"Functions in Zig.",{},"/zig/functions",{"title":10991,"description":281556},"zig/functions",[279030,18137,18139,212407],"oHBZrlASbMFiV9M5DtvNxE-L-LiBMfo27iXI82thS40",{"id":281564,"title":22151,"body":281565,"date":402,"description":281651,"extension":404,"meta":281652,"navigation":61,"order":44,"path":281653,"seo":281654,"stem":281655,"subject":279030,"tags":281656,"__hash__":281657},"topics/zig/hello-world.md",{"type":8,"value":281566,"toc":281648},[281567,281569,281645],[11,281568,22151],{"id":22156},[25,281570,281572],{"className":279028,"code":281571,"language":279030,"meta":30,"style":30},"const std = @import(\"std\");\n\npub fn main() !void {\n    try std.fs.File.stdout().writeAll(\"Hello world!\\n\");\n}\n",[20,281573,281574,281590,281594,281608,281641],{"__ignoreMap":30},[34,281575,281576,281578,281580,281582,281584,281586,281588],{"class":36,"line":37},[34,281577,14676],{"class":580},[34,281579,30217],{"class":675},[34,281581,683],{"class":580},[34,281583,280678],{"class":50},[34,281585,1607],{"class":181},[34,281587,280683],{"class":54},[34,281589,1586],{"class":181},[34,281591,281592],{"class":36,"line":44},[34,281593,62],{"emptyLinePlaceholder":61},[34,281595,281596,281598,281600,281602,281604,281606],{"class":36,"line":58},[34,281597,280986],{"class":580},[34,281599,77727],{"class":580},[34,281601,18224],{"class":47},[34,281603,672],{"class":181},[34,281605,280995],{"class":580},[34,281607,661],{"class":181},[34,281609,281610,281612,281614,281616,281618,281620,281622,281624,281626,281628,281630,281632,281635,281637,281639],{"class":36,"line":65},[34,281611,265199],{"class":580},[34,281613,30217],{"class":675},[34,281615,151],{"class":181},[34,281617,213150],{"class":675},[34,281619,151],{"class":181},[34,281621,137584],{"class":675},[34,281623,151],{"class":181},[34,281625,281016],{"class":47},[34,281627,1645],{"class":181},[34,281629,280941],{"class":47},[34,281631,1607],{"class":181},[34,281633,281634],{"class":54},"\"Hello world!",[34,281636,18860],{"class":50},[34,281638,10389],{"class":54},[34,281640,1586],{"class":181},[34,281642,281643],{"class":36,"line":71},[34,281644,693],{"class":181},[388,281646,281647],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":281649},[281650],{"id":22156,"depth":44,"text":22151},"Hello World in Zig.",{},"/zig/hello-world",{"title":22151,"description":281651},"zig/hello-world",[279030,18137,18139,212407],"2N36Ox-8MFcdVaSz96qAfJyi5SotwNUtnlZzUjqV-uY",{"id":281659,"title":281660,"body":281661,"date":402,"description":281823,"extension":404,"meta":281824,"navigation":61,"order":742,"path":281825,"seo":281826,"stem":281827,"subject":279030,"tags":281828,"__hash__":281829},"topics/zig/imports-and-modules.md","Imports and Modules",{"type":8,"value":281662,"toc":281820},[281663,281666,281818],[11,281664,281660],{"id":281665},"imports-and-modules",[25,281667,281669],{"className":279028,"code":281668,"language":279030,"meta":30,"style":30},"// Standard library import\nconst std = @import(\"std\");\n\n// Local file import\nconst utils = @import(\"utils.zig\");\n\n// Access public declarations\nconst result = utils.helperFunction();\n\n// Built-in functions\nconst size = @sizeOf(i32);      // size in bytes\nconst aligned = @alignOf(i64);   // alignment\nconst type_name = @typeName(i32); // \"i32\"\n",[20,281670,281671,281676,281692,281696,281701,281719,281723,281728,281745,281749,281754,281775,281797],{"__ignoreMap":30},[34,281672,281673],{"class":36,"line":37},[34,281674,281675],{"class":40},"// Standard library import\n",[34,281677,281678,281680,281682,281684,281686,281688,281690],{"class":36,"line":44},[34,281679,14676],{"class":580},[34,281681,30217],{"class":675},[34,281683,683],{"class":580},[34,281685,280678],{"class":50},[34,281687,1607],{"class":181},[34,281689,280683],{"class":54},[34,281691,1586],{"class":181},[34,281693,281694],{"class":36,"line":58},[34,281695,62],{"emptyLinePlaceholder":61},[34,281697,281698],{"class":36,"line":65},[34,281699,281700],{"class":40},"// Local file import\n",[34,281702,281703,281705,281708,281710,281712,281714,281717],{"class":36,"line":71},[34,281704,14676],{"class":580},[34,281706,281707],{"class":675}," utils",[34,281709,683],{"class":580},[34,281711,280678],{"class":50},[34,281713,1607],{"class":181},[34,281715,281716],{"class":54},"\"utils.zig\"",[34,281718,1586],{"class":181},[34,281720,281721],{"class":36,"line":77},[34,281722,62],{"emptyLinePlaceholder":61},[34,281724,281725],{"class":36,"line":82},[34,281726,281727],{"class":40},"// Access public declarations\n",[34,281729,281730,281732,281734,281736,281738,281740,281743],{"class":36,"line":88},[34,281731,14676],{"class":580},[34,281733,11103],{"class":675},[34,281735,683],{"class":580},[34,281737,281707],{"class":675},[34,281739,151],{"class":181},[34,281741,281742],{"class":47},"helperFunction",[34,281744,851],{"class":181},[34,281746,281747],{"class":36,"line":242},[34,281748,62],{"emptyLinePlaceholder":61},[34,281750,281751],{"class":36,"line":250},[34,281752,281753],{"class":40},"// Built-in functions\n",[34,281755,281756,281758,281761,281763,281766,281768,281770,281772],{"class":36,"line":263},[34,281757,14676],{"class":580},[34,281759,281760],{"class":675}," size",[34,281762,683],{"class":580},[34,281764,281765],{"class":50}," @sizeOf",[34,281767,1607],{"class":181},[34,281769,8248],{"class":580},[34,281771,38729],{"class":181},[34,281773,281774],{"class":40},"// size in bytes\n",[34,281776,281777,281779,281782,281784,281787,281789,281792,281794],{"class":36,"line":275},[34,281778,14676],{"class":580},[34,281780,281781],{"class":675}," aligned",[34,281783,683],{"class":580},[34,281785,281786],{"class":50}," @alignOf",[34,281788,1607],{"class":181},[34,281790,281791],{"class":580},"i64",[34,281793,38794],{"class":181},[34,281795,281796],{"class":40},"// alignment\n",[34,281798,281799,281801,281804,281806,281809,281811,281813,281815],{"class":36,"line":700},[34,281800,14676],{"class":580},[34,281802,281803],{"class":675}," type_name",[34,281805,683],{"class":580},[34,281807,281808],{"class":50}," @typeName",[34,281810,1607],{"class":181},[34,281812,8248],{"class":580},[34,281814,8260],{"class":181},[34,281816,281817],{"class":40},"// \"i32\"\n",[388,281819,209602],{},{"title":30,"searchDepth":44,"depth":44,"links":281821},[281822],{"id":281665,"depth":44,"text":281660},"Imports and Modules in Zig.",{},"/zig/imports-and-modules",{"title":281660,"description":281823},"zig/imports-and-modules",[279030,18137,18139,212407],"a9woJ7n_cKmSfPKRtMJanbfItnAbBN72Wy3aHpfC16s",{"id":281831,"title":22286,"body":281832,"date":402,"description":282594,"extension":404,"meta":282595,"navigation":61,"order":700,"path":282596,"seo":282597,"stem":282598,"subject":279030,"tags":282599,"__hash__":282600},"topics/zig/memory-management.md",{"type":8,"value":281833,"toc":282585},[281834,281836,281840,281949,281953,282153,282157,282304,282308,282422,282426,282583],[11,281835,22286],{"id":22291},[102,281837,281839],{"id":281838},"memory-allocators","Memory Allocators",[14308,281841,281842,281860],{},[14311,281843,281844],{},[14314,281845,281846,281849,281851,281854,281857],{},[14317,281847,281848],{},"Allocator",[14317,281850,59694],{},[14317,281852,281853],{},"Safety",[14317,281855,281856],{},"Performance",[14317,281858,281859],{},"Notes",[14326,281861,281862,281879,281896,281914,281931],{},[14314,281863,281864,281868,281871,281874,281876],{},[14331,281865,281866],{},[20,281867,280715],{},[14331,281869,281870],{},"Production code",[14331,281872,281873],{},"High",[14331,281875,18665],{},[14331,281877,281878],{},"Detects memory leaks and double-frees",[14314,281880,281881,281886,281889,281891,281893],{},[14331,281882,281883],{},[20,281884,281885],{},"ArenaAllocator",[14331,281887,281888],{},"Temporary/batch allocations",[14331,281890,281873],{},[14331,281892,18630],{},[14331,281894,281895],{},"Free all at once, no individual frees",[14314,281897,281898,281903,281906,281909,281911],{},[14331,281899,281900],{},[20,281901,281902],{},"FixedBufferAllocator",[14331,281904,281905],{},"Stack/embedded systems",[14331,281907,281908],{},"Medium",[14331,281910,18630],{},[14331,281912,281913],{},"Fixed-size buffer, no dynamic allocation",[14314,281915,281916,281921,281924,281926,281928],{},[14331,281917,281918],{},[20,281919,281920],{},"page_allocator",[14331,281922,281923],{},"Large allocations",[14331,281925,281908],{},[14331,281927,18665],{},[14331,281929,281930],{},"Direct OS memory pages (slow for small allocs)",[14314,281932,281933,281938,281941,281944,281946],{},[14331,281934,281935],{},[20,281936,281937],{},"c_allocator",[14331,281939,281940],{},"C interop",[14331,281942,281943],{},"Low",[14331,281945,18665],{},[14331,281947,281948],{},"Wraps malloc/free",[102,281950,281952],{"id":281951},"basic-allocation","Basic Allocation",[25,281954,281956],{"className":279028,"code":281955,"language":279030,"meta":30,"style":30},"const std = @import(\"std\");\n\n// GeneralPurposeAllocator (recommended for most use cases)\nvar gpa = std.heap.GeneralPurposeAllocator(.{}){};\ndefer _ = gpa.deinit(); // Check for leaks\nconst allocator = gpa.allocator();\n\n// Allocate single item\nconst ptr = try allocator.create(i32);\ndefer allocator.destroy(ptr);\nptr.* = 42;\n\n// Allocate slice\nconst slice = try allocator.alloc(u8, 100);\ndefer allocator.free(slice);\n",[20,281957,281958,281974,281978,281983,282003,282022,282038,282042,282047,282070,282087,282101,282105,282110,282137],{"__ignoreMap":30},[34,281959,281960,281962,281964,281966,281968,281970,281972],{"class":36,"line":37},[34,281961,14676],{"class":580},[34,281963,30217],{"class":675},[34,281965,683],{"class":580},[34,281967,280678],{"class":50},[34,281969,1607],{"class":181},[34,281971,280683],{"class":54},[34,281973,1586],{"class":181},[34,281975,281976],{"class":36,"line":44},[34,281977,62],{"emptyLinePlaceholder":61},[34,281979,281980],{"class":36,"line":58},[34,281981,281982],{"class":40},"// GeneralPurposeAllocator (recommended for most use cases)\n",[34,281984,281985,281987,281989,281991,281993,281995,281997,281999,282001],{"class":36,"line":65},[34,281986,34404],{"class":580},[34,281988,280701],{"class":675},[34,281990,683],{"class":580},[34,281992,30217],{"class":675},[34,281994,151],{"class":181},[34,281996,280710],{"class":675},[34,281998,151],{"class":181},[34,282000,280715],{"class":47},[34,282002,280718],{"class":181},[34,282004,282005,282007,282009,282011,282013,282015,282017,282019],{"class":36,"line":71},[34,282006,25798],{"class":580},[34,282008,60711],{"class":675},[34,282010,683],{"class":580},[34,282012,280701],{"class":675},[34,282014,151],{"class":181},[34,282016,280733],{"class":47},[34,282018,68957],{"class":181},[34,282020,282021],{"class":40},"// Check for leaks\n",[34,282023,282024,282026,282028,282030,282032,282034,282036],{"class":36,"line":77},[34,282025,14676],{"class":580},[34,282027,280746],{"class":675},[34,282029,683],{"class":580},[34,282031,280701],{"class":675},[34,282033,151],{"class":181},[34,282035,280755],{"class":47},[34,282037,851],{"class":181},[34,282039,282040],{"class":36,"line":82},[34,282041,62],{"emptyLinePlaceholder":61},[34,282043,282044],{"class":36,"line":88},[34,282045,282046],{"class":40},"// Allocate single item\n",[34,282048,282049,282051,282054,282056,282058,282060,282062,282064,282066,282068],{"class":36,"line":242},[34,282050,14676],{"class":580},[34,282052,282053],{"class":675}," ptr",[34,282055,683],{"class":580},[34,282057,241906],{"class":580},[34,282059,280746],{"class":675},[34,282061,151],{"class":181},[34,282063,72666],{"class":47},[34,282065,1607],{"class":181},[34,282067,8248],{"class":580},[34,282069,1586],{"class":181},[34,282071,282072,282074,282076,282078,282081,282083,282085],{"class":36,"line":250},[34,282073,25798],{"class":580},[34,282075,280746],{"class":675},[34,282077,151],{"class":181},[34,282079,282080],{"class":47},"destroy",[34,282082,1607],{"class":181},[34,282084,23216],{"class":675},[34,282086,1586],{"class":181},[34,282088,282089,282091,282093,282095,282097,282099],{"class":36,"line":263},[34,282090,23216],{"class":675},[34,282092,151],{"class":181},[34,282094,4289],{"class":580},[34,282096,683],{"class":580},[34,282098,19987],{"class":50},[34,282100,593],{"class":181},[34,282102,282103],{"class":36,"line":275},[34,282104,62],{"emptyLinePlaceholder":61},[34,282106,282107],{"class":36,"line":700},[34,282108,282109],{"class":40},"// Allocate slice\n",[34,282111,282112,282114,282116,282118,282120,282122,282124,282127,282129,282131,282133,282135],{"class":36,"line":706},[34,282113,14676],{"class":580},[34,282115,2768],{"class":675},[34,282117,683],{"class":580},[34,282119,241906],{"class":580},[34,282121,280746],{"class":675},[34,282123,151],{"class":181},[34,282125,282126],{"class":47},"alloc",[34,282128,1607],{"class":181},[34,282130,279401],{"class":580},[34,282132,1798],{"class":181},[34,282134,20863],{"class":50},[34,282136,1586],{"class":181},[34,282138,282139,282141,282143,282145,282147,282149,282151],{"class":36,"line":715},[34,282140,25798],{"class":580},[34,282142,280746],{"class":675},[34,282144,151],{"class":181},[34,282146,22435],{"class":47},[34,282148,1607],{"class":181},[34,282150,14037],{"class":675},[34,282152,1586],{"class":181},[102,282154,282156],{"id":282155},"arena-allocator","Arena Allocator",[25,282158,282160],{"className":279028,"code":282159,"language":279030,"meta":30,"style":30},"// Arena - allocate many items, free all at once\nvar arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);\ndefer arena.deinit(); // Frees everything\n\nconst arena_allocator = arena.allocator();\n\n// No need for individual frees\nconst items = try arena_allocator.alloc(i32, 100);\nconst more = try arena_allocator.create(MyStruct);\n// All freed with arena.deinit()\n",[20,282161,282162,282167,282204,282219,282223,282240,282244,282249,282275,282299],{"__ignoreMap":30},[34,282163,282164],{"class":36,"line":37},[34,282165,282166],{"class":40},"// Arena - allocate many items, free all at once\n",[34,282168,282169,282171,282174,282176,282178,282180,282182,282184,282186,282188,282190,282192,282194,282196,282198,282200,282202],{"class":36,"line":44},[34,282170,34404],{"class":580},[34,282172,282173],{"class":675}," arena",[34,282175,683],{"class":580},[34,282177,30217],{"class":675},[34,282179,151],{"class":181},[34,282181,280710],{"class":675},[34,282183,151],{"class":181},[34,282185,281885],{"class":675},[34,282187,151],{"class":181},[34,282189,37457],{"class":47},[34,282191,1607],{"class":181},[34,282193,29833],{"class":675},[34,282195,151],{"class":181},[34,282197,280710],{"class":675},[34,282199,151],{"class":181},[34,282201,281920],{"class":675},[34,282203,1586],{"class":181},[34,282205,282206,282208,282210,282212,282214,282216],{"class":36,"line":58},[34,282207,25798],{"class":580},[34,282209,282173],{"class":675},[34,282211,151],{"class":181},[34,282213,280733],{"class":47},[34,282215,68957],{"class":181},[34,282217,282218],{"class":40},"// Frees everything\n",[34,282220,282221],{"class":36,"line":65},[34,282222,62],{"emptyLinePlaceholder":61},[34,282224,282225,282227,282230,282232,282234,282236,282238],{"class":36,"line":71},[34,282226,14676],{"class":580},[34,282228,282229],{"class":675}," arena_allocator",[34,282231,683],{"class":580},[34,282233,282173],{"class":675},[34,282235,151],{"class":181},[34,282237,280755],{"class":47},[34,282239,851],{"class":181},[34,282241,282242],{"class":36,"line":77},[34,282243,62],{"emptyLinePlaceholder":61},[34,282245,282246],{"class":36,"line":82},[34,282247,282248],{"class":40},"// No need for individual frees\n",[34,282250,282251,282253,282255,282257,282259,282261,282263,282265,282267,282269,282271,282273],{"class":36,"line":88},[34,282252,14676],{"class":580},[34,282254,266120],{"class":675},[34,282256,683],{"class":580},[34,282258,241906],{"class":580},[34,282260,282229],{"class":675},[34,282262,151],{"class":181},[34,282264,282126],{"class":47},[34,282266,1607],{"class":181},[34,282268,8248],{"class":580},[34,282270,1798],{"class":181},[34,282272,20863],{"class":50},[34,282274,1586],{"class":181},[34,282276,282277,282279,282282,282284,282286,282288,282290,282292,282294,282297],{"class":36,"line":242},[34,282278,14676],{"class":580},[34,282280,282281],{"class":675}," more",[34,282283,683],{"class":580},[34,282285,241906],{"class":580},[34,282287,282229],{"class":675},[34,282289,151],{"class":181},[34,282291,72666],{"class":47},[34,282293,1607],{"class":181},[34,282295,282296],{"class":675},"MyStruct",[34,282298,1586],{"class":181},[34,282300,282301],{"class":36,"line":250},[34,282302,282303],{"class":40},"// All freed with arena.deinit()\n",[102,282305,282307],{"id":282306},"fixed-buffer-allocator","Fixed Buffer Allocator",[25,282309,282311],{"className":279028,"code":282310,"language":279030,"meta":30,"style":30},"// Fixed buffer (stack allocation)\nvar buffer: [1024]u8 = undefined;\nvar fba = std.heap.FixedBufferAllocator.init(&buffer);\nconst fba_allocator = fba.allocator();\n\n// Limited to buffer size, no heap allocation\nconst data = try fba_allocator.alloc(u8, 100);\n",[20,282312,282313,282318,282338,282370,282387,282391,282396],{"__ignoreMap":30},[34,282314,282315],{"class":36,"line":37},[34,282316,282317],{"class":40},"// Fixed buffer (stack allocation)\n",[34,282319,282320,282322,282324,282326,282328,282330,282332,282334,282336],{"class":36,"line":44},[34,282321,34404],{"class":580},[34,282323,21363],{"class":675},[34,282325,47204],{"class":181},[34,282327,20181],{"class":50},[34,282329,10173],{"class":181},[34,282331,279401],{"class":580},[34,282333,683],{"class":580},[34,282335,255916],{"class":580},[34,282337,593],{"class":181},[34,282339,282340,282342,282345,282347,282349,282351,282353,282355,282357,282359,282361,282363,282365,282368],{"class":36,"line":58},[34,282341,34404],{"class":580},[34,282343,282344],{"class":675}," fba",[34,282346,683],{"class":580},[34,282348,30217],{"class":675},[34,282350,151],{"class":181},[34,282352,280710],{"class":675},[34,282354,151],{"class":181},[34,282356,281902],{"class":675},[34,282358,151],{"class":181},[34,282360,37457],{"class":47},[34,282362,1607],{"class":181},[34,282364,19502],{"class":580},[34,282366,282367],{"class":675},"buffer",[34,282369,1586],{"class":181},[34,282371,282372,282374,282377,282379,282381,282383,282385],{"class":36,"line":65},[34,282373,14676],{"class":580},[34,282375,282376],{"class":675}," fba_allocator",[34,282378,683],{"class":580},[34,282380,282344],{"class":675},[34,282382,151],{"class":181},[34,282384,280755],{"class":47},[34,282386,851],{"class":181},[34,282388,282389],{"class":36,"line":71},[34,282390,62],{"emptyLinePlaceholder":61},[34,282392,282393],{"class":36,"line":77},[34,282394,282395],{"class":40},"// Limited to buffer size, no heap allocation\n",[34,282397,282398,282400,282402,282404,282406,282408,282410,282412,282414,282416,282418,282420],{"class":36,"line":82},[34,282399,14676],{"class":580},[34,282401,14780],{"class":675},[34,282403,683],{"class":580},[34,282405,241906],{"class":580},[34,282407,282376],{"class":675},[34,282409,151],{"class":181},[34,282411,282126],{"class":47},[34,282413,1607],{"class":181},[34,282415,279401],{"class":580},[34,282417,1798],{"class":181},[34,282419,20863],{"class":50},[34,282421,1586],{"class":181},[102,282423,282425],{"id":282424},"working-with-collections","Working with Collections",[25,282427,282429],{"className":279028,"code":282428,"language":279030,"meta":30,"style":30},"// ArrayList\nvar list = std.ArrayList(i32).init(allocator);\ndefer list.deinit();\ntry list.append(1);\ntry list.append(2);\n\n// HashMap\nvar map = std.AutoHashMap([]const u8, i32).init(allocator);\ndefer map.deinit();\ntry map.put(\"key\", 42);\n",[20,282430,282431,282435,282464,282476,282492,282508,282512,282516,282551,282563],{"__ignoreMap":30},[34,282432,282433],{"class":36,"line":37},[34,282434,121329],{"class":40},[34,282436,282437,282439,282441,282443,282445,282447,282450,282452,282454,282456,282458,282460,282462],{"class":36,"line":44},[34,282438,34404],{"class":580},[34,282440,6345],{"class":675},[34,282442,683],{"class":580},[34,282444,30217],{"class":675},[34,282446,151],{"class":181},[34,282448,282449],{"class":47},"ArrayList",[34,282451,1607],{"class":181},[34,282453,8248],{"class":580},[34,282455,1876],{"class":181},[34,282457,37457],{"class":47},[34,282459,1607],{"class":181},[34,282461,280755],{"class":675},[34,282463,1586],{"class":181},[34,282465,282466,282468,282470,282472,282474],{"class":36,"line":58},[34,282467,25798],{"class":580},[34,282469,6345],{"class":675},[34,282471,151],{"class":181},[34,282473,280733],{"class":47},[34,282475,851],{"class":181},[34,282477,282478,282480,282482,282484,282486,282488,282490],{"class":36,"line":65},[34,282479,30813],{"class":580},[34,282481,6345],{"class":675},[34,282483,151],{"class":181},[34,282485,32543],{"class":47},[34,282487,1607],{"class":181},[34,282489,8318],{"class":50},[34,282491,1586],{"class":181},[34,282493,282494,282496,282498,282500,282502,282504,282506],{"class":36,"line":71},[34,282495,30813],{"class":580},[34,282497,6345],{"class":675},[34,282499,151],{"class":181},[34,282501,32543],{"class":47},[34,282503,1607],{"class":181},[34,282505,8324],{"class":50},[34,282507,1586],{"class":181},[34,282509,282510],{"class":36,"line":77},[34,282511,62],{"emptyLinePlaceholder":61},[34,282513,282514],{"class":36,"line":82},[34,282515,121421],{"class":40},[34,282517,282518,282520,282522,282524,282526,282528,282531,282533,282535,282537,282539,282541,282543,282545,282547,282549],{"class":36,"line":88},[34,282519,34404],{"class":580},[34,282521,88036],{"class":675},[34,282523,683],{"class":580},[34,282525,30217],{"class":675},[34,282527,151],{"class":181},[34,282529,282530],{"class":47},"AutoHashMap",[34,282532,103653],{"class":181},[34,282534,14676],{"class":580},[34,282536,280211],{"class":580},[34,282538,1798],{"class":181},[34,282540,8248],{"class":580},[34,282542,1876],{"class":181},[34,282544,37457],{"class":47},[34,282546,1607],{"class":181},[34,282548,280755],{"class":675},[34,282550,1586],{"class":181},[34,282552,282553,282555,282557,282559,282561],{"class":36,"line":242},[34,282554,25798],{"class":580},[34,282556,88036],{"class":675},[34,282558,151],{"class":181},[34,282560,280733],{"class":47},[34,282562,851],{"class":181},[34,282564,282565,282567,282569,282571,282573,282575,282577,282579,282581],{"class":36,"line":250},[34,282566,30813],{"class":580},[34,282568,88036],{"class":675},[34,282570,151],{"class":181},[34,282572,51602],{"class":47},[34,282574,1607],{"class":181},[34,282576,121453],{"class":54},[34,282578,1798],{"class":181},[34,282580,8257],{"class":50},[34,282582,1586],{"class":181},[388,282584,281276],{},{"title":30,"searchDepth":44,"depth":44,"links":282586},[282587],{"id":22291,"depth":44,"text":22286,"children":282588},[282589,282590,282591,282592,282593],{"id":281838,"depth":58,"text":281839},{"id":281951,"depth":58,"text":281952},{"id":282155,"depth":58,"text":282156},{"id":282306,"depth":58,"text":282307},{"id":282424,"depth":58,"text":282425},"Memory Management in Zig.",{},"/zig/memory-management",{"title":22286,"description":282594},"zig/memory-management",[279030,18137,18139,212407],"LnYOmmDirQXZIQmhDV6yDNKuI5AlaNPaPxTixq5yCRo",{"id":282602,"title":242862,"body":282603,"date":402,"description":282774,"extension":404,"meta":282775,"navigation":61,"order":275,"path":282776,"seo":282777,"stem":282778,"subject":279030,"tags":282779,"__hash__":282780},"topics/zig/optionals.md",{"type":8,"value":282604,"toc":282771},[282605,282607,282769],[11,282606,242862],{"id":242867},[25,282608,282610],{"className":279028,"code":282609,"language":279030,"meta":30,"style":30},"// Optional type\nvar maybe_value: ?i32 = null;\nmaybe_value = 42;\n\n// Unwrap with orelse\nconst value = maybe_value orelse 0;\n\n// Unwrap with if\nif (maybe_value) |v| {\n    // use v\n}\n\n// Optional pointer\nconst ptr: ?*i32 = null;\nif (ptr) |p| {\n    p.* = 10;\n}\n",[20,282611,282612,282617,282634,282645,282649,282654,282670,282674,282679,282697,282702,282706,282710,282715,282732,282750,282765],{"__ignoreMap":30},[34,282613,282614],{"class":36,"line":37},[34,282615,282616],{"class":40},"// Optional type\n",[34,282618,282619,282621,282624,282626,282628,282630,282632],{"class":36,"line":44},[34,282620,34404],{"class":580},[34,282622,282623],{"class":675}," maybe_value",[34,282625,182],{"class":181},[34,282627,279968],{"class":580},[34,282629,683],{"class":580},[34,282631,13898],{"class":580},[34,282633,593],{"class":181},[34,282635,282636,282639,282641,282643],{"class":36,"line":58},[34,282637,282638],{"class":675},"maybe_value",[34,282640,683],{"class":580},[34,282642,19987],{"class":50},[34,282644,593],{"class":181},[34,282646,282647],{"class":36,"line":65},[34,282648,62],{"emptyLinePlaceholder":61},[34,282650,282651],{"class":36,"line":71},[34,282652,282653],{"class":40},"// Unwrap with orelse\n",[34,282655,282656,282658,282660,282662,282664,282666,282668],{"class":36,"line":77},[34,282657,14676],{"class":580},[34,282659,18389],{"class":675},[34,282661,683],{"class":580},[34,282663,282623],{"class":675},[34,282665,281252],{"class":580},[34,282667,8070],{"class":50},[34,282669,593],{"class":181},[34,282671,282672],{"class":36,"line":82},[34,282673,62],{"emptyLinePlaceholder":61},[34,282675,282676],{"class":36,"line":88},[34,282677,282678],{"class":40},"// Unwrap with if\n",[34,282680,282681,282683,282685,282687,282689,282691,282693,282695],{"class":36,"line":242},[34,282682,10383],{"class":580},[34,282684,3204],{"class":181},[34,282686,282638],{"class":675},[34,282688,4817],{"class":181},[34,282690,2670],{"class":580},[34,282692,87307],{"class":675},[34,282694,2670],{"class":580},[34,282696,661],{"class":181},[34,282698,282699],{"class":36,"line":250},[34,282700,282701],{"class":40},"    // use v\n",[34,282703,282704],{"class":36,"line":263},[34,282705,693],{"class":181},[34,282707,282708],{"class":36,"line":275},[34,282709,62],{"emptyLinePlaceholder":61},[34,282711,282712],{"class":36,"line":700},[34,282713,282714],{"class":40},"// Optional pointer\n",[34,282716,282717,282719,282721,282723,282726,282728,282730],{"class":36,"line":706},[34,282718,14676],{"class":580},[34,282720,282053],{"class":675},[34,282722,182],{"class":181},[34,282724,282725],{"class":580},"?*i32",[34,282727,683],{"class":580},[34,282729,13898],{"class":580},[34,282731,593],{"class":181},[34,282733,282734,282736,282738,282740,282742,282744,282746,282748],{"class":36,"line":715},[34,282735,10383],{"class":580},[34,282737,3204],{"class":181},[34,282739,23216],{"class":675},[34,282741,4817],{"class":181},[34,282743,2670],{"class":580},[34,282745,16],{"class":675},[34,282747,2670],{"class":580},[34,282749,661],{"class":181},[34,282751,282752,282755,282757,282759,282761,282763],{"class":36,"line":725},[34,282753,282754],{"class":675},"    p",[34,282756,151],{"class":181},[34,282758,4289],{"class":580},[34,282760,683],{"class":580},[34,282762,13123],{"class":50},[34,282764,593],{"class":181},[34,282766,282767],{"class":36,"line":734},[34,282768,693],{"class":181},[388,282770,279247],{},{"title":30,"searchDepth":44,"depth":44,"links":282772},[282773],{"id":242867,"depth":44,"text":242862},"Optionals in Zig.",{},"/zig/optionals",{"title":242862,"description":282774},"zig/optionals",[279030,18137,18139,212407],"GqDvYvAPQvKpgEXKaVBL5YhDdXaXH043p7xHGdvt5ck",{"id":282782,"title":282783,"body":282784,"date":2633,"description":282863,"extension":404,"meta":282864,"navigation":61,"order":37,"path":282865,"seo":282866,"stem":282867,"subject":279030,"tags":282868,"__hash__":282869},"topics/zig/overview.md","Zig",{"type":8,"value":282785,"toc":282861},[282786],[309,282787,282788,282792,282797,282801,282805,282810,282814,282818,282823,282827,282831,282835,282839,282843,282847,282852,282857],{},[312,282789,282790],{},[145,282791,22151],{"href":281653},[312,282793,282794],{},[145,282795,12166],{"href":282796},"/zig/variables",[312,282798,282799],{},[145,282800,61423],{"href":280024},[312,282802,282803],{},[145,282804,103504],{"href":279253},[312,282806,282807],{},[145,282808,23101],{"href":282809},"/zig/strings",[312,282811,282812],{},[145,282813,10991],{"href":281558},[312,282815,282816],{},[145,282817,18818],{"href":279796},[312,282819,282820],{},[145,282821,23107],{"href":282822},"/zig/structs",[312,282824,282825],{},[145,282826,25912],{"href":280314},[312,282828,282829],{},[145,282830,19352],{"href":280648},[312,282832,282833],{},[145,282834,242862],{"href":282776},[312,282836,282837],{},[145,282838,22286],{"href":282596},[312,282840,282841],{},[145,282842,21267],{"href":281286},[312,282844,282845],{},[145,282846,279260],{"href":279515},[312,282848,282849],{},[145,282850,23091],{"href":282851},"/zig/pointers",[312,282853,282854],{},[145,282855,16095],{"href":282856},"/zig/testing",[312,282858,282859],{},[145,282860,281660],{"href":281825},{"title":30,"searchDepth":44,"depth":44,"links":282862},[],"Essential Zig syntax, memory management, and systems programming patterns for building robust software.",{},"/zig/overview",{"title":282783,"description":282863},"zig/overview",[279030,18137,18139,212407],"e0Dlk-vnWfr67fPS2Dnu6y9oDBQ0DVgtT94f9drleZY",{"id":282871,"title":23091,"body":282872,"date":402,"description":283098,"extension":404,"meta":283099,"navigation":61,"order":725,"path":282851,"seo":283100,"stem":283101,"subject":279030,"tags":283102,"__hash__":283103},"topics/zig/pointers.md",{"type":8,"value":282873,"toc":283095},[282874,282876,283093],[11,282875,23091],{"id":23155},[25,282877,282879],{"className":279028,"code":282878,"language":279030,"meta":30,"style":30},"// Single-item pointer\nvar x: i32 = 42;\nconst ptr: *i32 = &x;\nptr.* = 100;  // dereference\n\n// Const pointer\nconst const_ptr: *const i32 = &x;\n\n// Many-item pointer\nconst arr = [_]i32{ 1, 2, 3 };\nconst many_ptr: [*]const i32 = &arr;\n\n// Pointer arithmetic\nconst second = many_ptr + 1;\n\n// Sentinel-terminated pointer\nconst str: [*:0]const u8 = \"hello\";\n",[20,282880,282881,282886,282902,282921,282938,282942,282947,282969,282973,282978,283008,283033,283037,283041,283058,283062,283067],{"__ignoreMap":30},[34,282882,282883],{"class":36,"line":37},[34,282884,282885],{"class":40},"// Single-item pointer\n",[34,282887,282888,282890,282892,282894,282896,282898,282900],{"class":36,"line":44},[34,282889,34404],{"class":580},[34,282891,31288],{"class":675},[34,282893,182],{"class":181},[34,282895,8248],{"class":580},[34,282897,683],{"class":580},[34,282899,19987],{"class":50},[34,282901,593],{"class":181},[34,282903,282904,282906,282908,282910,282913,282915,282917,282919],{"class":36,"line":58},[34,282905,14676],{"class":580},[34,282907,282053],{"class":675},[34,282909,182],{"class":181},[34,282911,282912],{"class":580},"*i32",[34,282914,683],{"class":580},[34,282916,11373],{"class":580},[34,282918,23655],{"class":675},[34,282920,593],{"class":181},[34,282922,282923,282925,282927,282929,282931,282933,282935],{"class":36,"line":65},[34,282924,23216],{"class":675},[34,282926,151],{"class":181},[34,282928,4289],{"class":580},[34,282930,683],{"class":580},[34,282932,25168],{"class":50},[34,282934,124981],{"class":181},[34,282936,282937],{"class":40},"// dereference\n",[34,282939,282940],{"class":36,"line":71},[34,282941,62],{"emptyLinePlaceholder":61},[34,282943,282944],{"class":36,"line":77},[34,282945,282946],{"class":40},"// Const pointer\n",[34,282948,282949,282951,282954,282956,282959,282961,282963,282965,282967],{"class":36,"line":82},[34,282950,14676],{"class":580},[34,282952,282953],{"class":675}," const_ptr",[34,282955,182],{"class":181},[34,282957,282958],{"class":580},"*const",[34,282960,8049],{"class":580},[34,282962,683],{"class":580},[34,282964,11373],{"class":580},[34,282966,23655],{"class":675},[34,282968,593],{"class":181},[34,282970,282971],{"class":36,"line":88},[34,282972,62],{"emptyLinePlaceholder":61},[34,282974,282975],{"class":36,"line":242},[34,282976,282977],{"class":40},"// Many-item pointer\n",[34,282979,282980,282982,282984,282986,282988,282990,282992,282994,282996,282998,283000,283002,283004,283006],{"class":36,"line":250},[34,282981,14676],{"class":580},[34,282983,23347],{"class":675},[34,282985,683],{"class":580},[34,282987,8315],{"class":181},[34,282989,60694],{"class":675},[34,282991,10173],{"class":181},[34,282993,8248],{"class":580},[34,282995,279056],{"class":181},[34,282997,8318],{"class":50},[34,282999,1798],{"class":181},[34,283001,8324],{"class":50},[34,283003,1798],{"class":181},[34,283005,3162],{"class":50},[34,283007,33355],{"class":181},[34,283009,283010,283012,283015,283017,283019,283021,283023,283025,283027,283029,283031],{"class":36,"line":263},[34,283011,14676],{"class":580},[34,283013,283014],{"class":675}," many_ptr",[34,283016,47204],{"class":181},[34,283018,4289],{"class":580},[34,283020,10173],{"class":181},[34,283022,14676],{"class":580},[34,283024,8049],{"class":580},[34,283026,683],{"class":580},[34,283028,11373],{"class":580},[34,283030,18382],{"class":675},[34,283032,593],{"class":181},[34,283034,283035],{"class":36,"line":275},[34,283036,62],{"emptyLinePlaceholder":61},[34,283038,283039],{"class":36,"line":700},[34,283040,23340],{"class":40},[34,283042,283043,283045,283048,283050,283052,283054,283056],{"class":36,"line":706},[34,283044,14676],{"class":580},[34,283046,283047],{"class":675}," second",[34,283049,683],{"class":580},[34,283051,283014],{"class":675},[34,283053,11537],{"class":580},[34,283055,3567],{"class":50},[34,283057,593],{"class":181},[34,283059,283060],{"class":36,"line":715},[34,283061,62],{"emptyLinePlaceholder":61},[34,283063,283064],{"class":36,"line":725},[34,283065,283066],{"class":40},"// Sentinel-terminated pointer\n",[34,283068,283069,283071,283073,283075,283077,283079,283081,283083,283085,283087,283089,283091],{"class":36,"line":734},[34,283070,14676],{"class":580},[34,283072,215141],{"class":675},[34,283074,47204],{"class":181},[34,283076,4289],{"class":580},[34,283078,165],{"class":181},[34,283080,2773],{"class":50},[34,283082,10173],{"class":181},[34,283084,14676],{"class":580},[34,283086,280211],{"class":580},[34,283088,683],{"class":580},[34,283090,13866],{"class":54},[34,283092,593],{"class":181},[388,283094,279790],{},{"title":30,"searchDepth":44,"depth":44,"links":283096},[283097],{"id":23155,"depth":44,"text":23091},"Pointers in Zig.",{},{"title":23091,"description":283098},"zig/pointers",[279030,18137,18139,212407],"ilC_L5e5Rmsv7YW5eHGkakU2nt0Mh33g3Jm4zuk5ZFE",{"id":283105,"title":23101,"body":283106,"date":402,"description":283286,"extension":404,"meta":283287,"navigation":61,"order":77,"path":282809,"seo":283288,"stem":283289,"subject":279030,"tags":283290,"__hash__":283291},"topics/zig/strings.md",{"type":8,"value":283107,"toc":283283},[283108,283110,283280],[11,283109,23101],{"id":24353},[25,283111,283113],{"className":279028,"code":283112,"language":279030,"meta":30,"style":30},"// String literals are []const u8\nconst hello = \"Hello, World!\";\n\n// Multiline strings\nconst multiline =\n    \\\\Line 1\n    \\\\Line 2\n    \\\\Line 3\n;\n\n// String concatenation (comptime)\nconst greeting = \"Hello, \" ++ \"Zig!\";\n\n// Format strings\nconst std = @import(\"std\");\nvar buf: [100]u8 = undefined;\nconst formatted = std.fmt.bufPrint(&buf, \"Value: {d}\", .{42});\n",[20,283114,283115,283120,283132,283136,283140,283150,283155,283160,283165,283169,283173,283178,283196,283200,283205,283221,283242],{"__ignoreMap":30},[34,283116,283117],{"class":36,"line":37},[34,283118,283119],{"class":40},"// String literals are []const u8\n",[34,283121,283122,283124,283126,283128,283130],{"class":36,"line":44},[34,283123,14676],{"class":580},[34,283125,22235],{"class":675},[34,283127,683],{"class":580},[34,283129,124967],{"class":54},[34,283131,593],{"class":181},[34,283133,283134],{"class":36,"line":58},[34,283135,62],{"emptyLinePlaceholder":61},[34,283137,283138],{"class":36,"line":65},[34,283139,137277],{"class":40},[34,283141,283142,283144,283147],{"class":36,"line":71},[34,283143,14676],{"class":580},[34,283145,283146],{"class":675}," multiline",[34,283148,283149],{"class":580}," =\n",[34,283151,283152],{"class":36,"line":77},[34,283153,283154],{"class":54},"    \\\\Line 1\n",[34,283156,283157],{"class":36,"line":82},[34,283158,283159],{"class":54},"    \\\\Line 2\n",[34,283161,283162],{"class":36,"line":88},[34,283163,283164],{"class":54},"    \\\\Line 3\n",[34,283166,283167],{"class":36,"line":242},[34,283168,593],{"class":181},[34,283170,283171],{"class":36,"line":250},[34,283172,62],{"emptyLinePlaceholder":61},[34,283174,283175],{"class":36,"line":263},[34,283176,283177],{"class":40},"// String concatenation (comptime)\n",[34,283179,283180,283182,283184,283186,283188,283191,283194],{"class":36,"line":275},[34,283181,14676],{"class":580},[34,283183,37035],{"class":675},[34,283185,683],{"class":580},[34,283187,31250],{"class":54},[34,283189,283190],{"class":580}," ++",[34,283192,283193],{"class":54}," \"Zig!\"",[34,283195,593],{"class":181},[34,283197,283198],{"class":36,"line":700},[34,283199,62],{"emptyLinePlaceholder":61},[34,283201,283202],{"class":36,"line":706},[34,283203,283204],{"class":40},"// Format strings\n",[34,283206,283207,283209,283211,283213,283215,283217,283219],{"class":36,"line":715},[34,283208,14676],{"class":580},[34,283210,30217],{"class":675},[34,283212,683],{"class":580},[34,283214,280678],{"class":50},[34,283216,1607],{"class":181},[34,283218,280683],{"class":54},[34,283220,1586],{"class":181},[34,283222,283223,283225,283228,283230,283232,283234,283236,283238,283240],{"class":36,"line":725},[34,283224,34404],{"class":580},[34,283226,283227],{"class":675}," buf",[34,283229,47204],{"class":181},[34,283231,20863],{"class":50},[34,283233,10173],{"class":181},[34,283235,279401],{"class":580},[34,283237,683],{"class":580},[34,283239,255916],{"class":580},[34,283241,593],{"class":181},[34,283243,283244,283246,283249,283251,283253,283255,283257,283259,283262,283264,283266,283269,283271,283274,283276,283278],{"class":36,"line":734},[34,283245,14676],{"class":580},[34,283247,283248],{"class":675}," formatted",[34,283250,683],{"class":580},[34,283252,30217],{"class":675},[34,283254,151],{"class":181},[34,283256,104344],{"class":675},[34,283258,151],{"class":181},[34,283260,283261],{"class":47},"bufPrint",[34,283263,1607],{"class":181},[34,283265,19502],{"class":580},[34,283267,283268],{"class":675},"buf",[34,283270,1798],{"class":181},[34,283272,283273],{"class":54},"\"Value: {d}\"",[34,283275,280564],{"class":181},[34,283277,8257],{"class":50},[34,283279,14873],{"class":181},[388,283281,283282],{},"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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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 pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":283284},[283285],{"id":24353,"depth":44,"text":23101},"Strings in Zig.",{},{"title":23101,"description":283286},"zig/strings",[279030,18137,18139,212407],"hudrVLclD_C0qAGOkOKTrn0z21FC9fCQlMEeazKOW-k",{"id":283293,"title":23107,"body":283294,"date":402,"description":283622,"extension":404,"meta":283623,"navigation":61,"order":242,"path":282822,"seo":283624,"stem":283625,"subject":279030,"tags":283626,"__hash__":283627},"topics/zig/structs.md",{"type":8,"value":283295,"toc":283619},[283296,283298,283616],[11,283297,23107],{"id":24666},[25,283299,283301],{"className":279028,"code":283300,"language":279030,"meta":30,"style":30},"// Define a struct\nconst Point = struct {\n    x: f64,\n    y: f64,\n\n    // Method\n    pub fn distance(self: Point, other: Point) f64 {\n        const dx = self.x - other.x;\n        const dy = self.y - other.y;\n        return @sqrt(dx * dx + dy * dy);\n    }\n\n    // Associated function\n    pub fn origin() Point {\n        return Point{ .x = 0, .y = 0 };\n    }\n};\n\n// Create instance\nconst p = Point{ .x = 3.0, .y = 4.0 };\n\n// Access fields\nconst x_val = p.x;\n\n// Call method\nconst dist = p.distance(Point.origin());\n",[20,283302,283303,283307,283319,283329,283339,283343,283347,283379,283405,283430,283456,283460,283464,283469,283483,283508,283512,283516,283520,283525,283555,283559,283563,283580,283584,283589],{"__ignoreMap":30},[34,283304,283305],{"class":36,"line":37},[34,283306,108088],{"class":40},[34,283308,283309,283311,283313,283315,283317],{"class":36,"line":44},[34,283310,14676],{"class":580},[34,283312,37679],{"class":675},[34,283314,683],{"class":580},[34,283316,18332],{"class":580},[34,283318,661],{"class":181},[34,283320,283321,283323,283325,283327],{"class":36,"line":58},[34,283322,214017],{"class":675},[34,283324,182],{"class":181},[34,283326,214127],{"class":580},[34,283328,624],{"class":181},[34,283330,283331,283333,283335,283337],{"class":36,"line":65},[34,283332,214028],{"class":675},[34,283334,182],{"class":181},[34,283336,214127],{"class":580},[34,283338,624],{"class":181},[34,283340,283341],{"class":36,"line":71},[34,283342,62],{"emptyLinePlaceholder":61},[34,283344,283345],{"class":36,"line":77},[34,283346,34342],{"class":40},[34,283348,283349,283352,283354,283356,283358,283360,283362,283364,283366,283369,283371,283373,283375,283377],{"class":36,"line":82},[34,283350,283351],{"class":580},"    pub",[34,283353,77727],{"class":580},[34,283355,52228],{"class":47},[34,283357,1607],{"class":181},[34,283359,210943],{"class":675},[34,283361,182],{"class":181},[34,283363,214060],{"class":675},[34,283365,1798],{"class":181},[34,283367,283368],{"class":675},"other",[34,283370,182],{"class":181},[34,283372,214060],{"class":675},[34,283374,4817],{"class":181},[34,283376,214127],{"class":580},[34,283378,661],{"class":181},[34,283380,283381,283383,283386,283388,283390,283392,283394,283396,283399,283401,283403],{"class":36,"line":88},[34,283382,66186],{"class":580},[34,283384,283385],{"class":675}," dx",[34,283387,683],{"class":580},[34,283389,74044],{"class":675},[34,283391,151],{"class":181},[34,283393,23655],{"class":675},[34,283395,19423],{"class":580},[34,283397,283398],{"class":675}," other",[34,283400,151],{"class":181},[34,283402,23655],{"class":675},[34,283404,593],{"class":181},[34,283406,283407,283409,283412,283414,283416,283418,283420,283422,283424,283426,283428],{"class":36,"line":242},[34,283408,66186],{"class":580},[34,283410,283411],{"class":675}," dy",[34,283413,683],{"class":580},[34,283415,74044],{"class":675},[34,283417,151],{"class":181},[34,283419,60946],{"class":675},[34,283421,19423],{"class":580},[34,283423,283398],{"class":675},[34,283425,151],{"class":181},[34,283427,60946],{"class":675},[34,283429,593],{"class":181},[34,283431,283432,283434,283437,283439,283442,283444,283446,283448,283450,283452,283454],{"class":36,"line":250},[34,283433,13895],{"class":580},[34,283435,283436],{"class":50}," @sqrt",[34,283438,1607],{"class":181},[34,283440,283441],{"class":675},"dx",[34,283443,18083],{"class":580},[34,283445,283385],{"class":675},[34,283447,11537],{"class":580},[34,283449,283411],{"class":675},[34,283451,18083],{"class":580},[34,283453,283411],{"class":675},[34,283455,1586],{"class":181},[34,283457,283458],{"class":36,"line":263},[34,283459,3229],{"class":181},[34,283461,283462],{"class":36,"line":275},[34,283463,62],{"emptyLinePlaceholder":61},[34,283465,283466],{"class":36,"line":700},[34,283467,283468],{"class":40},"    // Associated function\n",[34,283470,283471,283473,283475,283477,283479,283481],{"class":36,"line":706},[34,283472,283351],{"class":580},[34,283474,77727],{"class":580},[34,283476,100964],{"class":47},[34,283478,672],{"class":181},[34,283480,214060],{"class":675},[34,283482,661],{"class":181},[34,283484,283485,283487,283489,283491,283493,283495,283497,283500,283502,283504,283506],{"class":36,"line":715},[34,283486,13895],{"class":580},[34,283488,37679],{"class":675},[34,283490,280241],{"class":181},[34,283492,23655],{"class":675},[34,283494,683],{"class":580},[34,283496,8070],{"class":50},[34,283498,283499],{"class":181},", .",[34,283501,60946],{"class":675},[34,283503,683],{"class":580},[34,283505,8070],{"class":50},[34,283507,33355],{"class":181},[34,283509,283510],{"class":36,"line":725},[34,283511,3229],{"class":181},[34,283513,283514],{"class":36,"line":734},[34,283515,17632],{"class":181},[34,283517,283518],{"class":36,"line":742},[34,283519,62],{"emptyLinePlaceholder":61},[34,283521,283522],{"class":36,"line":748},[34,283523,283524],{"class":40},"// Create instance\n",[34,283526,283527,283529,283531,283533,283535,283537,283539,283541,283544,283546,283548,283550,283553],{"class":36,"line":754},[34,283528,14676],{"class":580},[34,283530,41445],{"class":675},[34,283532,683],{"class":580},[34,283534,37679],{"class":675},[34,283536,280241],{"class":181},[34,283538,23655],{"class":675},[34,283540,683],{"class":580},[34,283542,283543],{"class":50}," 3.0",[34,283545,283499],{"class":181},[34,283547,60946],{"class":675},[34,283549,683],{"class":580},[34,283551,283552],{"class":50}," 4.0",[34,283554,33355],{"class":181},[34,283556,283557],{"class":36,"line":759},[34,283558,62],{"emptyLinePlaceholder":61},[34,283560,283561],{"class":36,"line":771},[34,283562,108187],{"class":40},[34,283564,283565,283567,283570,283572,283574,283576,283578],{"class":36,"line":794},[34,283566,14676],{"class":580},[34,283568,283569],{"class":675}," x_val",[34,283571,683],{"class":580},[34,283573,41445],{"class":675},[34,283575,151],{"class":181},[34,283577,23655],{"class":675},[34,283579,593],{"class":181},[34,283581,283582],{"class":36,"line":824},[34,283583,62],{"emptyLinePlaceholder":61},[34,283585,283586],{"class":36,"line":830},[34,283587,283588],{"class":40},"// Call method\n",[34,283590,283591,283593,283596,283598,283600,283602,283605,283607,283609,283611,283614],{"class":36,"line":839},[34,283592,14676],{"class":580},[34,283594,283595],{"class":675}," dist",[34,283597,683],{"class":580},[34,283599,41445],{"class":675},[34,283601,151],{"class":181},[34,283603,283604],{"class":47},"distance",[34,283606,1607],{"class":181},[34,283608,214060],{"class":675},[34,283610,151],{"class":181},[34,283612,283613],{"class":47},"origin",[34,283615,4343],{"class":181},[388,283617,283618],{},"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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":30,"searchDepth":44,"depth":44,"links":283620},[283621],{"id":24666,"depth":44,"text":23107},"Structs in Zig.",{},{"title":23107,"description":283622},"zig/structs",[279030,18137,18139,212407],"-MDZh9tM4D2XHw2gIfhZPrF5gSLcLZncBq5KSn8oJhs",{"id":283629,"title":16095,"body":283630,"date":402,"description":283815,"extension":404,"meta":283816,"navigation":61,"order":734,"path":282856,"seo":283817,"stem":283818,"subject":279030,"tags":283819,"__hash__":283820},"topics/zig/testing.md",{"type":8,"value":283631,"toc":283812},[283632,283634,283809],[11,283633,16095],{"id":16094},[25,283635,283637],{"className":279028,"code":283636,"language":279030,"meta":30,"style":30},"const std = @import(\"std\");\nconst expect = std.testing.expect;\n\ntest \"basic test\" {\n    const x = 1 + 1;\n    try expect(x == 2);\n}\n\ntest \"string equality\" {\n    const a = \"hello\";\n    const b = \"hello\";\n    try expect(std.mem.eql(u8, a, b));\n}\n\n// Run tests: zig test filename.zig\n",[20,283638,283639,283655,283676,283680,283689,283705,283721,283725,283729,283738,283750,283762,283796,283800,283804],{"__ignoreMap":30},[34,283640,283641,283643,283645,283647,283649,283651,283653],{"class":36,"line":37},[34,283642,14676],{"class":580},[34,283644,30217],{"class":675},[34,283646,683],{"class":580},[34,283648,280678],{"class":50},[34,283650,1607],{"class":181},[34,283652,280683],{"class":54},[34,283654,1586],{"class":181},[34,283656,283657,283659,283662,283664,283666,283668,283670,283672,283674],{"class":36,"line":44},[34,283658,14676],{"class":580},[34,283660,283661],{"class":675}," expect",[34,283663,683],{"class":580},[34,283665,30217],{"class":675},[34,283667,151],{"class":181},[34,283669,16094],{"class":675},[34,283671,151],{"class":181},[34,283673,213214],{"class":675},[34,283675,593],{"class":181},[34,283677,283678],{"class":36,"line":58},[34,283679,62],{"emptyLinePlaceholder":61},[34,283681,283682,283684,283687],{"class":36,"line":65},[34,283683,14618],{"class":580},[34,283685,283686],{"class":54}," \"basic test\"",[34,283688,661],{"class":181},[34,283690,283691,283693,283695,283697,283699,283701,283703],{"class":36,"line":71},[34,283692,1632],{"class":580},[34,283694,31288],{"class":675},[34,283696,683],{"class":580},[34,283698,3567],{"class":50},[34,283700,11537],{"class":580},[34,283702,3567],{"class":50},[34,283704,593],{"class":181},[34,283706,283707,283709,283711,283713,283715,283717,283719],{"class":36,"line":77},[34,283708,265199],{"class":580},[34,283710,283661],{"class":47},[34,283712,1607],{"class":181},[34,283714,23655],{"class":675},[34,283716,10946],{"class":580},[34,283718,4292],{"class":50},[34,283720,1586],{"class":181},[34,283722,283723],{"class":36,"line":82},[34,283724,693],{"class":181},[34,283726,283727],{"class":36,"line":88},[34,283728,62],{"emptyLinePlaceholder":61},[34,283730,283731,283733,283736],{"class":36,"line":242},[34,283732,14618],{"class":580},[34,283734,283735],{"class":54}," \"string equality\"",[34,283737,661],{"class":181},[34,283739,283740,283742,283744,283746,283748],{"class":36,"line":250},[34,283741,1632],{"class":580},[34,283743,19385],{"class":675},[34,283745,683],{"class":580},[34,283747,13866],{"class":54},[34,283749,593],{"class":181},[34,283751,283752,283754,283756,283758,283760],{"class":36,"line":263},[34,283753,1632],{"class":580},[34,283755,19392],{"class":675},[34,283757,683],{"class":580},[34,283759,13866],{"class":54},[34,283761,593],{"class":181},[34,283763,283764,283766,283768,283770,283772,283774,283777,283779,283782,283784,283786,283788,283790,283792,283794],{"class":36,"line":275},[34,283765,265199],{"class":580},[34,283767,283661],{"class":47},[34,283769,1607],{"class":181},[34,283771,29833],{"class":675},[34,283773,151],{"class":181},[34,283775,283776],{"class":675},"mem",[34,283778,151],{"class":181},[34,283780,283781],{"class":47},"eql",[34,283783,1607],{"class":181},[34,283785,279401],{"class":580},[34,283787,1798],{"class":181},[34,283789,145],{"class":675},[34,283791,1798],{"class":181},[34,283793,8355],{"class":675},[34,283795,15223],{"class":181},[34,283797,283798],{"class":36,"line":700},[34,283799,693],{"class":181},[34,283801,283802],{"class":36,"line":706},[34,283803,62],{"emptyLinePlaceholder":61},[34,283805,283806],{"class":36,"line":715},[34,283807,283808],{"class":40},"// Run tests: zig test filename.zig\n",[388,283810,283811],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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":30,"searchDepth":44,"depth":44,"links":283813},[283814],{"id":16094,"depth":44,"text":16095},"Testing in Zig.",{},{"title":16095,"description":283815},"zig/testing",[279030,18137,18139,212407],"G8tn89g5IfxNxk13O3AIKh7NqGHrRnBPtG9xGSTscUM",{"id":283822,"title":12166,"body":283823,"date":402,"description":283945,"extension":404,"meta":283946,"navigation":61,"order":58,"path":282796,"seo":283947,"stem":283948,"subject":279030,"tags":283949,"__hash__":283950},"topics/zig/variables.md",{"type":8,"value":283824,"toc":283942},[283825,283827,283940],[11,283826,12166],{"id":13314},[25,283828,283830],{"className":279028,"code":283829,"language":279030,"meta":30,"style":30},"// Immutable variable (preferred)\nconst x: i32 = 42;\n\n// Mutable variable\nvar y: i32 = 10;\ny = 20;\n\n// Type inference\nconst z = 100; // inferred as comptime_int\n\n// Undefined (uninitialized)\nvar buffer: [100]u8 = undefined;\n",[20,283831,283832,283837,283853,283857,283861,283877,283887,283891,283895,283911,283915,283920],{"__ignoreMap":30},[34,283833,283834],{"class":36,"line":37},[34,283835,283836],{"class":40},"// Immutable variable (preferred)\n",[34,283838,283839,283841,283843,283845,283847,283849,283851],{"class":36,"line":44},[34,283840,14676],{"class":580},[34,283842,31288],{"class":675},[34,283844,182],{"class":181},[34,283846,8248],{"class":580},[34,283848,683],{"class":580},[34,283850,19987],{"class":50},[34,283852,593],{"class":181},[34,283854,283855],{"class":36,"line":58},[34,283856,62],{"emptyLinePlaceholder":61},[34,283858,283859],{"class":36,"line":65},[34,283860,217546],{"class":40},[34,283862,283863,283865,283867,283869,283871,283873,283875],{"class":36,"line":71},[34,283864,34404],{"class":580},[34,283866,264968],{"class":675},[34,283868,182],{"class":181},[34,283870,8248],{"class":580},[34,283872,683],{"class":580},[34,283874,13123],{"class":50},[34,283876,593],{"class":181},[34,283878,283879,283881,283883,283885],{"class":36,"line":77},[34,283880,60946],{"class":675},[34,283882,683],{"class":580},[34,283884,22419],{"class":50},[34,283886,593],{"class":181},[34,283888,283889],{"class":36,"line":82},[34,283890,62],{"emptyLinePlaceholder":61},[34,283892,283893],{"class":36,"line":88},[34,283894,38117],{"class":40},[34,283896,283897,283899,283902,283904,283906,283908],{"class":36,"line":242},[34,283898,14676],{"class":580},[34,283900,283901],{"class":675}," z",[34,283903,683],{"class":580},[34,283905,25168],{"class":50},[34,283907,10268],{"class":181},[34,283909,283910],{"class":40},"// inferred as comptime_int\n",[34,283912,283913],{"class":36,"line":250},[34,283914,62],{"emptyLinePlaceholder":61},[34,283916,283917],{"class":36,"line":263},[34,283918,283919],{"class":40},"// Undefined (uninitialized)\n",[34,283921,283922,283924,283926,283928,283930,283932,283934,283936,283938],{"class":36,"line":275},[34,283923,34404],{"class":580},[34,283925,21363],{"class":675},[34,283927,47204],{"class":181},[34,283929,20863],{"class":50},[34,283931,10173],{"class":181},[34,283933,279401],{"class":580},[34,283935,683],{"class":580},[34,283937,255916],{"class":580},[34,283939,593],{"class":181},[388,283941,279247],{},{"title":30,"searchDepth":44,"depth":44,"links":283943},[283944],{"id":13314,"depth":44,"text":12166},"Variables in Zig.",{},{"title":12166,"description":283945},"zig/variables",[279030,18137,18139,212407],"Wrrw8lvj_pyBkpyQEY4EtLKt7Jjck4OfgcNljl5c_Q4",{"id":283952,"title":283953,"body":283954,"date":402,"description":284502,"extension":404,"meta":284503,"navigation":61,"order":37,"path":284504,"seo":284505,"stem":284506,"subject":284507,"tags":284508,"__hash__":284510},"topics/zod/overview.md","Zod",{"type":8,"value":283955,"toc":284492},[283956,283960,283963,283967,283970,284034,284037,284055,284059,284066,284107,284110,284115,284119,284129,284199,284203,284210,284277,284281,284284,284373,284380,284384,284390,284466,284470,284473,284489],[11,283957,283959],{"id":283958},"introduction-to-zod","Introduction to Zod",[16,283961,283962],{},"Zod is a powerful, TypeScript-first schema validation library. It allows developers to define schemas, validate data, and infer static types directly from the schema with minimal configuration.",[11,283964,283966],{"id":283965},"defining-a-schema","Defining a Schema",[16,283968,283969],{},"To create a basic schema for validating object structure:",[25,283971,283973],{"className":571,"code":283972,"language":573,"meta":30,"style":30},"import * as z from \"zod\";\n\nconst Player = z.object({\n  username: z.string(),\n  xp: z.number(),\n});\n",[20,283974,283975,283992,283996,284012,284021,284030],{"__ignoreMap":30},[34,283976,283977,283979,283981,283983,283985,283987,283990],{"class":36,"line":37},[34,283978,581],{"class":580},[34,283980,18083],{"class":50},[34,283982,91551],{"class":580},[34,283984,192865],{"class":181},[34,283986,587],{"class":580},[34,283988,283989],{"class":54}," \"zod\"",[34,283991,593],{"class":181},[34,283993,283994],{"class":36,"line":44},[34,283995,62],{"emptyLinePlaceholder":61},[34,283997,283998,284000,284003,284005,284008,284010],{"class":36,"line":58},[34,283999,14676],{"class":580},[34,284001,284002],{"class":50}," Player",[34,284004,683],{"class":580},[34,284006,284007],{"class":181}," z.",[34,284009,38072],{"class":47},[34,284011,613],{"class":181},[34,284013,284014,284017,284019],{"class":36,"line":65},[34,284015,284016],{"class":181},"  username: z.",[34,284018,30113],{"class":47},[34,284020,58490],{"class":181},[34,284022,284023,284026,284028],{"class":36,"line":71},[34,284024,284025],{"class":181},"  xp: z.",[34,284027,130478],{"class":47},[34,284029,58490],{"class":181},[34,284031,284032],{"class":36,"line":77},[34,284033,14873],{"class":181},[16,284035,284036],{},"/*",[309,284038,284039,284045],{},[312,284040,18,284041,284044],{},[20,284042,284043],{},"z.object()"," function defines an object schema.",[312,284046,284047,284048,1798,284051,284054],{},"Each property requires its respective validation type (",[20,284049,284050],{},"z.string",[20,284052,284053],{},"z.number",", etc.).\n*/",[11,284056,284058],{"id":284057},"parsing-data","Parsing Data",[16,284060,284061,284062,284065],{},"Once a schema is defined, use ",[20,284063,284064],{},".parse()"," to validate and extract data:",[25,284067,284069],{"className":571,"code":284068,"language":573,"meta":30,"style":30},"const playerData = Player.parse({ username: \"billie\", xp: 100 }); \nconsole.log(playerData);\n",[20,284070,284071,284098],{"__ignoreMap":30},[34,284072,284073,284075,284078,284080,284083,284085,284087,284090,284093,284095],{"class":36,"line":37},[34,284074,14676],{"class":580},[34,284076,284077],{"class":50}," playerData",[34,284079,683],{"class":580},[34,284081,284082],{"class":181}," Player.",[34,284084,126562],{"class":47},[34,284086,149159],{"class":181},[34,284088,284089],{"class":54},"\"billie\"",[34,284091,284092],{"class":181},", xp: ",[34,284094,20863],{"class":50},[34,284096,284097],{"class":181}," }); \n",[34,284099,284100,284102,284104],{"class":36,"line":44},[34,284101,15183],{"class":181},[34,284103,2424],{"class":47},[34,284105,284106],{"class":181},"(playerData);\n",[16,284108,284109],{},"/* Output: { username: \"billie\", xp: 100 }",[309,284111,284112],{},[312,284113,284114],{},"This method throws an error if validation fails.\n*/",[11,284116,284118],{"id":284117},"handling-errors","Handling Errors",[16,284120,284121,284122,284124,284125,284128],{},"If validation fails, the ",[20,284123,284064],{}," method throws a ",[20,284126,284127],{},"ZodError"," containing all validation issues:",[25,284130,284132],{"className":571,"code":284131,"language":573,"meta":30,"style":30},"try {\n  Player.parse({ username: 42, xp: \"100\" });\n} catch (error) {\n  if (error instanceof z.ZodError) {\n    console.error(error.issues);\n  }\n}\n",[20,284133,284134,284140,284157,284165,284182,284191,284195],{"__ignoreMap":30},[34,284135,284136,284138],{"class":36,"line":37},[34,284137,30813],{"class":580},[34,284139,661],{"class":181},[34,284141,284142,284145,284147,284149,284151,284153,284155],{"class":36,"line":44},[34,284143,284144],{"class":181},"  Player.",[34,284146,126562],{"class":47},[34,284148,149159],{"class":181},[34,284150,8257],{"class":50},[34,284152,284092],{"class":181},[34,284154,116254],{"class":54},[34,284156,15567],{"class":181},[34,284158,284159,284161,284163],{"class":36,"line":58},[34,284160,2276],{"class":181},[34,284162,30851],{"class":580},[34,284164,126421],{"class":181},[34,284166,284167,284169,284172,284174,284176,284178,284180],{"class":36,"line":65},[34,284168,8084],{"class":580},[34,284170,284171],{"class":181}," (error ",[34,284173,124737],{"class":580},[34,284175,283901],{"class":47},[34,284177,151],{"class":181},[34,284179,284127],{"class":47},[34,284181,2416],{"class":181},[34,284183,284184,284186,284188],{"class":36,"line":71},[34,284185,2421],{"class":181},[34,284187,1908],{"class":47},[34,284189,284190],{"class":181},"(error.issues);\n",[34,284192,284193],{"class":36,"line":77},[34,284194,857],{"class":181},[34,284196,284197],{"class":36,"line":82},[34,284198,693],{"class":181},[11,284200,284202],{"id":284201},"safe-parsing","Safe Parsing",[16,284204,284205,284206,284209],{},"To avoid exceptions, use ",[20,284207,284208],{},".safeParse()"," for a more resilient implementation:",[25,284211,284213],{"className":571,"code":284212,"language":573,"meta":30,"style":30},"const result = Player.safeParse({ username: 42, xp: \"100\" });\nif (!result.success) {\n  console.error(result.error);\n} else {\n  console.log(result.data);\n}\n",[20,284214,284215,284238,284249,284257,284265,284273],{"__ignoreMap":30},[34,284216,284217,284219,284221,284223,284225,284228,284230,284232,284234,284236],{"class":36,"line":37},[34,284218,14676],{"class":580},[34,284220,11103],{"class":50},[34,284222,683],{"class":580},[34,284224,284082],{"class":181},[34,284226,284227],{"class":47},"safeParse",[34,284229,149159],{"class":181},[34,284231,8257],{"class":50},[34,284233,284092],{"class":181},[34,284235,116254],{"class":54},[34,284237,15567],{"class":181},[34,284239,284240,284242,284244,284246],{"class":36,"line":44},[34,284241,10383],{"class":580},[34,284243,3204],{"class":181},[34,284245,10307],{"class":580},[34,284247,284248],{"class":181},"result.success) {\n",[34,284250,284251,284253,284255],{"class":36,"line":58},[34,284252,14929],{"class":181},[34,284254,1908],{"class":47},[34,284256,259274],{"class":181},[34,284258,284259,284261,284263],{"class":36,"line":65},[34,284260,2276],{"class":181},[34,284262,18871],{"class":580},[34,284264,661],{"class":181},[34,284266,284267,284269,284271],{"class":36,"line":71},[34,284268,14929],{"class":181},[34,284270,2424],{"class":47},[34,284272,259257],{"class":181},[34,284274,284275],{"class":36,"line":77},[34,284276,693],{"class":181},[11,284278,284280],{"id":284279},"inferring-types","Inferring Types",[16,284282,284283],{},"Generate TypeScript types directly from a schema:",[25,284285,284287],{"className":571,"code":284286,"language":573,"meta":30,"style":30},"const Player = z.object({\n  username: z.string(),\n  xp: z.number(),\n});\n\ntype PlayerType = z.infer\u003Ctypeof Player>;\nconst player: PlayerType = { username: \"billie\", xp: 100 };\n",[20,284288,284289,284303,284311,284319,284323,284327,284349],{"__ignoreMap":30},[34,284290,284291,284293,284295,284297,284299,284301],{"class":36,"line":37},[34,284292,14676],{"class":580},[34,284294,284002],{"class":50},[34,284296,683],{"class":580},[34,284298,284007],{"class":181},[34,284300,38072],{"class":47},[34,284302,613],{"class":181},[34,284304,284305,284307,284309],{"class":36,"line":44},[34,284306,284016],{"class":181},[34,284308,30113],{"class":47},[34,284310,58490],{"class":181},[34,284312,284313,284315,284317],{"class":36,"line":58},[34,284314,284025],{"class":181},[34,284316,130478],{"class":47},[34,284318,58490],{"class":181},[34,284320,284321],{"class":36,"line":65},[34,284322,14873],{"class":181},[34,284324,284325],{"class":36,"line":71},[34,284326,62],{"emptyLinePlaceholder":61},[34,284328,284329,284331,284334,284336,284338,284340,284342,284344,284346],{"class":36,"line":77},[34,284330,41324],{"class":580},[34,284332,284333],{"class":47}," PlayerType",[34,284335,683],{"class":580},[34,284337,283901],{"class":47},[34,284339,151],{"class":181},[34,284341,257604],{"class":47},[34,284343,815],{"class":181},[34,284345,258441],{"class":580},[34,284347,284348],{"class":181}," Player>;\n",[34,284350,284351,284353,284356,284358,284360,284362,284365,284367,284369,284371],{"class":36,"line":82},[34,284352,14676],{"class":580},[34,284354,284355],{"class":50}," player",[34,284357,165],{"class":580},[34,284359,284333],{"class":47},[34,284361,683],{"class":580},[34,284363,284364],{"class":181}," { username: ",[34,284366,284089],{"class":54},[34,284368,284092],{"class":181},[34,284370,20863],{"class":50},[34,284372,33355],{"class":181},[16,284374,284375,284376,284379],{},"/* The ",[20,284377,284378],{},"PlayerType"," now represents the schema structure. */",[11,284381,284383],{"id":284382},"transforming-data","Transforming Data",[16,284385,15998,284386,284389],{},[20,284387,284388],{},".transform()"," to modify input during validation:",[25,284391,284393],{"className":571,"code":284392,"language":573,"meta":30,"style":30},"const incrementXP = z.object({ xp: z.number() }).transform((data) => ({ xp: data.xp + 1 }));\nconst result = incrementXP.parse({ xp: 5 }); \nconsole.log(result); // { xp: 6 }\n",[20,284394,284395,284435,284455],{"__ignoreMap":30},[34,284396,284397,284399,284402,284404,284406,284408,284411,284413,284416,284418,284420,284422,284424,284426,284429,284431,284433],{"class":36,"line":37},[34,284398,14676],{"class":580},[34,284400,284401],{"class":50}," incrementXP",[34,284403,683],{"class":580},[34,284405,284007],{"class":181},[34,284407,38072],{"class":47},[34,284409,284410],{"class":181},"({ xp: z.",[34,284412,130478],{"class":47},[34,284414,284415],{"class":181},"() }).",[34,284417,183233],{"class":47},[34,284419,8348],{"class":181},[34,284421,1701],{"class":675},[34,284423,4817],{"class":181},[34,284425,3361],{"class":580},[34,284427,284428],{"class":181}," ({ xp: data.xp ",[34,284430,2940],{"class":580},[34,284432,3567],{"class":50},[34,284434,15105],{"class":181},[34,284436,284437,284439,284441,284443,284446,284448,284451,284453],{"class":36,"line":44},[34,284438,14676],{"class":580},[34,284440,11103],{"class":50},[34,284442,683],{"class":580},[34,284444,284445],{"class":181}," incrementXP.",[34,284447,126562],{"class":47},[34,284449,284450],{"class":181},"({ xp: ",[34,284452,2778],{"class":50},[34,284454,284097],{"class":181},[34,284456,284457,284459,284461,284463],{"class":36,"line":58},[34,284458,15183],{"class":181},[34,284460,2424],{"class":47},[34,284462,91648],{"class":181},[34,284464,284465],{"class":40},"// { xp: 6 }\n",[11,284467,284469],{"id":284468},"ecosystem-integrations","Ecosystem Integrations",[16,284471,284472],{},"Zod integrates with libraries and frameworks like React, Redux, and Next.js. Its ecosystem extensions include tools for mocking, form integrations, and more.",[309,284474,284475,284482],{},[312,284476,284477],{},[145,284478,284481],{"href":284479,"rel":284480},"https://zod.dev/api",[149],"API documentation",[312,284483,284484],{},[145,284485,284488],{"href":284486,"rel":284487},"https://zod.dev/ecosystem",[149],"Ecosystem overview",[388,284490,284491],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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}",{"title":30,"searchDepth":44,"depth":44,"links":284493},[284494,284495,284496,284497,284498,284499,284500,284501],{"id":283958,"depth":44,"text":283959},{"id":283965,"depth":44,"text":283966},{"id":284057,"depth":44,"text":284058},{"id":284117,"depth":44,"text":284118},{"id":284201,"depth":44,"text":284202},{"id":284279,"depth":44,"text":284280},{"id":284382,"depth":44,"text":284383},{"id":284468,"depth":44,"text":284469},"Quick-reference guide to Zod, a TypeScript-first schema validation library with static type inference.",{},"/zod/overview",{"title":283953,"description":284502},"zod/overview","zod",[573,284509,109531],"validation","6vJxg1a1R9m-Zb_F3vrQk25s0qsc-cCq6BghNMjH81c",{"id":284512,"title":284513,"body":284514,"date":91792,"description":284837,"extension":404,"meta":284838,"navigation":61,"order":37,"path":284839,"seo":284840,"stem":284841,"subject":53735,"tags":284842,"__hash__":284843},"topics/zsh/overview.md","Zsh Overview",{"type":8,"value":284515,"toc":284824},[284516,284518,284521,284525,284528,284549,284564,284568,284571,284614,284625,284629,284632,284638,284642,284645,284698,284703,284705,284709,284726,284737,284741,284757,284762,284766,284784,284789,284793,284810,284812,284821],[11,284517,14],{"id":13},[16,284519,284520],{},"Zsh (Z-Shell) is an advanced Unix shell that serves as both a command interpreter and scripting language. It offers powerful customizability, interactive features, and robust scripting capabilities.",[11,284522,284524],{"id":284523},"customizing-your-environment","Customizing Your Environment",[16,284526,284527],{},"Zsh allows users to tailor their shell environment:",[25,284529,284532],{"className":284530,"code":284531,"language":53735,"meta":30,"style":30},"language-zsh shiki shiki-themes github-light github-dark","# Example: Setting a custom prompt\nPROMPT='%n@%m %~ %# '\n",[20,284533,284534,284539],{"__ignoreMap":30},[34,284535,284536],{"class":36,"line":37},[34,284537,284538],{"class":40},"# Example: Setting a custom prompt\n",[34,284540,284541,284544,284546],{"class":36,"line":44},[34,284542,284543],{"class":181},"PROMPT",[34,284545,1301],{"class":580},[34,284547,284548],{"class":54},"'%n@%m %~ %# '\n",[16,284550,284551,247099,284554,1798,284557,1798,284560,284563],{},[8563,284552,284553],{},"Comments:",[20,284555,284556],{},"%n",[20,284558,284559],{},"%m",[20,284561,284562],{},"%~"," are dynamic placeholders for user, host, and working directory.",[11,284565,284567],{"id":284566},"scripting-basics","Scripting Basics",[16,284569,284570],{},"Write shell scripts efficiently using Zsh syntax:",[25,284572,284574],{"className":284530,"code":284573,"language":53735,"meta":30,"style":30},"#!/bin/zsh\n\necho \"Hello, Zsh!\"\nNAME=\"Z-shell\"\necho \"Welcome to $NAME\"\n",[20,284575,284576,284581,284585,284592,284602],{"__ignoreMap":30},[34,284577,284578],{"class":36,"line":37},[34,284579,284580],{"class":40},"#!/bin/zsh\n",[34,284582,284583],{"class":36,"line":44},[34,284584,62],{"emptyLinePlaceholder":61},[34,284586,284587,284589],{"class":36,"line":58},[34,284588,10120],{"class":50},[34,284590,284591],{"class":54}," \"Hello, Zsh!\"\n",[34,284593,284594,284597,284599],{"class":36,"line":65},[34,284595,284596],{"class":181},"NAME",[34,284598,1301],{"class":580},[34,284600,284601],{"class":54},"\"Z-shell\"\n",[34,284603,284604,284606,284609,284612],{"class":36,"line":71},[34,284605,10120],{"class":50},[34,284607,284608],{"class":54}," \"Welcome to ",[34,284610,284611],{"class":181},"$NAME",[34,284613,11320],{"class":54},[16,284615,284616,284618,284619,284621,284622,1876],{},[8563,284617,284553],{}," Zsh uses ",[20,284620,11676],{}," for variable expansion. Scripts start with a shebang (e.g., ",[20,284623,284624],{},"#!/bin/zsh",[11,284626,284628],{"id":284627},"command-line-shortcuts-and-history-navigation","Command-Line Shortcuts and History Navigation",[16,284630,284631],{},"Boost productivity with shortcut keys:",[25,284633,284636],{"className":284634,"code":284635,"language":780,"meta":30},[13703],"Ctrl-R   # Reverse search through command history\n!!       # Re-execute the last command\n",[20,284637,284635],{"__ignoreMap":30},[11,284639,284641],{"id":284640},"alias-and-functions","Alias and Functions",[16,284643,284644],{},"Simplify repetitive tasks with aliases and functions:",[25,284646,284648],{"className":284530,"code":284647,"language":53735,"meta":30,"style":30},"# Aliases\nalias ll=\"ls -la\"\n\n# Functions\nbackup_files() {\n  cp $1 $1.bak\n}\n",[20,284649,284650,284655,284667,284671,284675,284682,284694],{"__ignoreMap":30},[34,284651,284652],{"class":36,"line":37},[34,284653,284654],{"class":40},"# Aliases\n",[34,284656,284657,284659,284662,284664],{"class":36,"line":44},[34,284658,94337],{"class":580},[34,284660,284661],{"class":181}," ll",[34,284663,1301],{"class":580},[34,284665,284666],{"class":54},"\"ls -la\"\n",[34,284668,284669],{"class":36,"line":58},[34,284670,62],{"emptyLinePlaceholder":61},[34,284672,284673],{"class":36,"line":65},[34,284674,120905],{"class":40},[34,284676,284677,284680],{"class":36,"line":71},[34,284678,284679],{"class":47},"backup_files",[34,284681,836],{"class":181},[34,284683,284684,284687,284689,284691],{"class":36,"line":77},[34,284685,284686],{"class":47},"  cp",[34,284688,240099],{"class":675},[34,284690,240099],{"class":675},[34,284692,284693],{"class":54},".bak\n",[34,284695,284696],{"class":36,"line":82},[34,284697,693],{"class":181},[16,284699,284700,284702],{},[8563,284701,284553],{}," Aliases are shorthand for commands, while functions encapsulate more complex operations.",[11,284704,158032],{"id":158031},[102,284706,284708],{"id":284707},"_1-globbing","1. Globbing",[25,284710,284712],{"className":284530,"code":284711,"language":53735,"meta":30,"style":30},"ls **/*.txt\n",[20,284713,284714],{"__ignoreMap":30},[34,284715,284716,284718,284720,284722,284724],{"class":36,"line":37},[34,284717,11417],{"class":47},[34,284719,23439],{"class":50},[34,284721,12734],{"class":54},[34,284723,4289],{"class":50},[34,284725,109659],{"class":54},[16,284727,284728,247099,284730,284732,284733,284736],{},[8563,284729,284553],{},[20,284731,23469],{}," matches directories recursively; ",[20,284734,284735],{},"*.txt"," matches text files.",[102,284738,284740],{"id":284739},"_2-programmable-completion","2. Programmable Completion",[25,284742,284744],{"className":284530,"code":284743,"language":53735,"meta":30,"style":30},"compdef _git git\n",[20,284745,284746],{"__ignoreMap":30},[34,284747,284748,284751,284754],{"class":36,"line":37},[34,284749,284750],{"class":47},"compdef",[34,284752,284753],{"class":54}," _git",[34,284755,284756],{"class":54}," git\n",[16,284758,284759,284761],{},[8563,284760,284553],{}," Enables intelligent autocompletion for specified commands.",[102,284763,284765],{"id":284764},"_3-zsh-modules","3. Zsh Modules",[25,284767,284769],{"className":284530,"code":284768,"language":53735,"meta":30,"style":30},"# Load the 'zsh/mathfunc' module for advanced math\nzmodload zsh/mathfunc\n",[20,284770,284771,284776],{"__ignoreMap":30},[34,284772,284773],{"class":36,"line":37},[34,284774,284775],{"class":40},"# Load the 'zsh/mathfunc' module for advanced math\n",[34,284777,284778,284781],{"class":36,"line":44},[34,284779,284780],{"class":47},"zmodload",[34,284782,284783],{"class":54}," zsh/mathfunc\n",[16,284785,284786,284788],{},[8563,284787,284553],{}," Extend Zsh features by loading modules.",[11,284790,284792],{"id":284791},"common-pitfalls","Common Pitfalls",[309,284794,284795,284801],{},[312,284796,284797,284798,1876],{},"Ensure compatibility with other shells when porting scripts (",[20,284799,284800],{},"setopt shwordsplit",[312,284802,284803,284804,128469,284807,151],{},"Review default options using ",[20,284805,284806],{},"setopt",[20,284808,284809],{},"unsetopt",[7979,284811],{},[16,284813,284814,284815,284820],{},"This quick reference covers essential Zsh actions, configurations, and features for developers and shell enthusiasts. Use the official ",[145,284816,284819],{"href":284817,"rel":284818},"https://zsh.sourceforge.io/Guide/zshguide.html",[149],"guide"," for further reading.",[388,284822,284823],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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 .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":30,"searchDepth":44,"depth":44,"links":284825},[284826,284827,284828,284829,284830,284831,284836],{"id":13,"depth":44,"text":14},{"id":284523,"depth":44,"text":284524},{"id":284566,"depth":44,"text":284567},{"id":284627,"depth":44,"text":284628},{"id":284640,"depth":44,"text":284641},{"id":158031,"depth":44,"text":158032,"children":284832},[284833,284834,284835],{"id":284707,"depth":58,"text":284708},{"id":284739,"depth":58,"text":284740},{"id":284764,"depth":58,"text":284765},{"id":284791,"depth":44,"text":284792},"Key features and syntax for effective usage of the Z-shell (zsh), including its flexibility, scripting capabilities, and extensibility.",{},"/zsh/overview",{"title":284513,"description":284837},"zsh/overview",[10358,411,413],"gcD1XmDCNC9BxkZ6i80UxhDZ6c7QSIKY3iRELsdpDh0",{"id":284845,"title":284846,"body":284847,"date":402,"description":285903,"extension":404,"meta":285904,"navigation":61,"order":37,"path":285905,"seo":285906,"stem":285907,"subject":285908,"tags":285909,"__hash__":285910},"topics/zustand/overview.md","Zustand",{"type":8,"value":284848,"toc":285892},[284849,284851,284865,284869,285031,285035,285153,285157,285225,285229,285430,285434,285521,285525,285655,285659,285783,285787,285889],[11,284850,97],{"id":96},[25,284852,284854],{"className":27,"code":284853,"language":29,"meta":30,"style":30},"npm install zustand\n",[20,284855,284856],{"__ignoreMap":30},[34,284857,284858,284860,284862],{"class":36,"line":37},[34,284859,8177],{"class":47},[34,284861,118],{"class":54},[34,284863,284864],{"class":54}," zustand\n",[11,284866,284868],{"id":284867},"basic-store","Basic Store",[25,284870,284872],{"className":91533,"code":284871,"language":91535,"meta":30,"style":30},"import { create } from 'zustand'\n\ninterface BearState {\n  bears: number\n  increase: () => void\n  reset: () => void\n}\n\n// Create a store with state and actions\nconst useBearStore = create\u003CBearState>((set) => ({\n  bears: 0,\n  increase: () => set((state) => ({ bears: state.bears + 1 })),\n  reset: () => set({ bears: 0 }),\n}))\n",[20,284873,284874,284886,284890,284899,284908,284921,284934,284938,284942,284947,284974,284983,285010,285027],{"__ignoreMap":30},[34,284875,284876,284878,284881,284883],{"class":36,"line":37},[34,284877,581],{"class":580},[34,284879,284880],{"class":181}," { create } ",[34,284882,587],{"class":580},[34,284884,284885],{"class":54}," 'zustand'\n",[34,284887,284888],{"class":36,"line":44},[34,284889,62],{"emptyLinePlaceholder":61},[34,284891,284892,284894,284897],{"class":36,"line":58},[34,284893,17562],{"class":580},[34,284895,284896],{"class":47}," BearState",[34,284898,661],{"class":181},[34,284900,284901,284904,284906],{"class":36,"line":65},[34,284902,284903],{"class":675},"  bears",[34,284905,165],{"class":580},[34,284907,251388],{"class":50},[34,284909,284910,284913,284915,284917,284919],{"class":36,"line":71},[34,284911,284912],{"class":47},"  increase",[34,284914,165],{"class":580},[34,284916,17406],{"class":181},[34,284918,3361],{"class":580},[34,284920,267228],{"class":50},[34,284922,284923,284926,284928,284930,284932],{"class":36,"line":77},[34,284924,284925],{"class":47},"  reset",[34,284927,165],{"class":580},[34,284929,17406],{"class":181},[34,284931,3361],{"class":580},[34,284933,267228],{"class":50},[34,284935,284936],{"class":36,"line":82},[34,284937,693],{"class":181},[34,284939,284940],{"class":36,"line":88},[34,284941,62],{"emptyLinePlaceholder":61},[34,284943,284944],{"class":36,"line":242},[34,284945,284946],{"class":40},"// Create a store with state and actions\n",[34,284948,284949,284951,284954,284956,284958,284960,284963,284966,284968,284970,284972],{"class":36,"line":250},[34,284950,14676],{"class":580},[34,284952,284953],{"class":50}," useBearStore",[34,284955,683],{"class":580},[34,284957,7077],{"class":47},[34,284959,815],{"class":181},[34,284961,284962],{"class":47},"BearState",[34,284964,284965],{"class":181},">((",[34,284967,1648],{"class":675},[34,284969,4817],{"class":181},[34,284971,3361],{"class":580},[34,284973,166840],{"class":181},[34,284975,284976,284979,284981],{"class":36,"line":263},[34,284977,284978],{"class":181},"  bears: ",[34,284980,2773],{"class":50},[34,284982,624],{"class":181},[34,284984,284985,284987,284989,284991,284993,284995,284997,284999,285001,285004,285006,285008],{"class":36,"line":275},[34,284986,284912],{"class":47},[34,284988,3358],{"class":181},[34,284990,3361],{"class":580},[34,284992,9481],{"class":47},[34,284994,8348],{"class":181},[34,284996,29410],{"class":675},[34,284998,4817],{"class":181},[34,285000,3361],{"class":580},[34,285002,285003],{"class":181}," ({ bears: state.bears ",[34,285005,2940],{"class":580},[34,285007,3567],{"class":50},[34,285009,263633],{"class":181},[34,285011,285012,285014,285016,285018,285020,285023,285025],{"class":36,"line":700},[34,285013,284925],{"class":47},[34,285015,3358],{"class":181},[34,285017,3361],{"class":580},[34,285019,9481],{"class":47},[34,285021,285022],{"class":181},"({ bears: ",[34,285024,2773],{"class":50},[34,285026,14868],{"class":181},[34,285028,285029],{"class":36,"line":706},[34,285030,76987],{"class":181},[11,285032,285034],{"id":285033},"using-the-store","Using the Store",[25,285036,285038],{"className":198744,"code":285037,"language":198746,"meta":30,"style":30},"function BearCounter() {\n  // Subscribe to a slice of state (re-renders only when bears changes)\n  const bears = useBearStore((state) => state.bears)\n  return \u003Ch1>{bears} bears around here...\u003C/h1>\n}\n\nfunction Controls() {\n  const increase = useBearStore((state) => state.increase)\n  return \u003Cbutton onClick={increase}>Add bear\u003C/button>\n}\n",[20,285039,285040,285049,285054,285076,285091,285095,285099,285108,285130,285149],{"__ignoreMap":30},[34,285041,285042,285044,285047],{"class":36,"line":37},[34,285043,11044],{"class":580},[34,285045,285046],{"class":47}," BearCounter",[34,285048,836],{"class":181},[34,285050,285051],{"class":36,"line":44},[34,285052,285053],{"class":40},"  // Subscribe to a slice of state (re-renders only when bears changes)\n",[34,285055,285056,285058,285061,285063,285065,285067,285069,285071,285073],{"class":36,"line":58},[34,285057,17415],{"class":580},[34,285059,285060],{"class":50}," bears",[34,285062,683],{"class":580},[34,285064,284953],{"class":47},[34,285066,8348],{"class":181},[34,285068,29410],{"class":675},[34,285070,4817],{"class":181},[34,285072,3361],{"class":580},[34,285074,285075],{"class":181}," state.bears)\n",[34,285077,285078,285080,285082,285084,285087,285089],{"class":36,"line":65},[34,285079,8155],{"class":580},[34,285081,5470],{"class":181},[34,285083,8535],{"class":177},[34,285085,285086],{"class":181},">{bears} bears around here...\u003C/",[34,285088,8535],{"class":177},[34,285090,1248],{"class":181},[34,285092,285093],{"class":36,"line":71},[34,285094,693],{"class":181},[34,285096,285097],{"class":36,"line":77},[34,285098,62],{"emptyLinePlaceholder":61},[34,285100,285101,285103,285106],{"class":36,"line":82},[34,285102,11044],{"class":580},[34,285104,285105],{"class":47}," Controls",[34,285107,836],{"class":181},[34,285109,285110,285112,285115,285117,285119,285121,285123,285125,285127],{"class":36,"line":88},[34,285111,17415],{"class":580},[34,285113,285114],{"class":50}," increase",[34,285116,683],{"class":580},[34,285118,284953],{"class":47},[34,285120,8348],{"class":181},[34,285122,29410],{"class":675},[34,285124,4817],{"class":181},[34,285126,3361],{"class":580},[34,285128,285129],{"class":181}," state.increase)\n",[34,285131,285132,285134,285136,285138,285140,285142,285145,285147],{"class":36,"line":242},[34,285133,8155],{"class":580},[34,285135,5470],{"class":181},[34,285137,4509],{"class":177},[34,285139,85667],{"class":47},[34,285141,1301],{"class":580},[34,285143,285144],{"class":181},"{increase}>Add bear\u003C/",[34,285146,4509],{"class":177},[34,285148,1248],{"class":181},[34,285150,285151],{"class":36,"line":250},[34,285152,693],{"class":181},[11,285154,285156],{"id":285155},"selecting-multiple-values","Selecting Multiple Values",[25,285158,285160],{"className":91533,"code":285159,"language":91535,"meta":30,"style":30},"import { useShallow } from 'zustand/react/shallow'\n\n// Use useShallow to avoid re-renders when selecting multiple values\nconst { bears, increase } = useBearStore(\n  useShallow((state) => ({ bears: state.bears, increase: state.increase }))\n)\n",[20,285161,285162,285174,285178,285183,285205,285221],{"__ignoreMap":30},[34,285163,285164,285166,285169,285171],{"class":36,"line":37},[34,285165,581],{"class":580},[34,285167,285168],{"class":181}," { useShallow } ",[34,285170,587],{"class":580},[34,285172,285173],{"class":54}," 'zustand/react/shallow'\n",[34,285175,285176],{"class":36,"line":44},[34,285177,62],{"emptyLinePlaceholder":61},[34,285179,285180],{"class":36,"line":58},[34,285181,285182],{"class":40},"// Use useShallow to avoid re-renders when selecting multiple values\n",[34,285184,285185,285187,285189,285192,285194,285197,285199,285201,285203],{"class":36,"line":65},[34,285186,14676],{"class":580},[34,285188,30251],{"class":181},[34,285190,285191],{"class":50},"bears",[34,285193,1798],{"class":181},[34,285195,285196],{"class":50},"increase",[34,285198,34865],{"class":181},[34,285200,1301],{"class":580},[34,285202,284953],{"class":47},[34,285204,1882],{"class":181},[34,285206,285207,285210,285212,285214,285216,285218],{"class":36,"line":71},[34,285208,285209],{"class":47},"  useShallow",[34,285211,8348],{"class":181},[34,285213,29410],{"class":675},[34,285215,4817],{"class":181},[34,285217,3361],{"class":580},[34,285219,285220],{"class":181}," ({ bears: state.bears, increase: state.increase }))\n",[34,285222,285223],{"class":36,"line":77},[34,285224,3372],{"class":181},[11,285226,285228],{"id":285227},"async-actions","Async Actions",[25,285230,285232],{"className":91533,"code":285231,"language":91535,"meta":30,"style":30},"interface UserState {\n  user: User | null\n  loading: boolean\n  fetchUser: (id: string) => Promise\u003Cvoid>\n}\n\nconst useUserStore = create\u003CUserState>((set) => ({\n  user: null,\n  loading: false,\n  fetchUser: async (id) => {\n    set({ loading: true })\n    const user = await fetch(`/api/users/${id}`).then(r => r.json())\n    set({ user, loading: false })  // update state after async op\n  },\n}))\n",[20,285233,285234,285243,285255,285265,285292,285296,285300,285325,285333,285341,285359,285371,285408,285422,285426],{"__ignoreMap":30},[34,285235,285236,285238,285241],{"class":36,"line":37},[34,285237,17562],{"class":580},[34,285239,285240],{"class":47}," UserState",[34,285242,661],{"class":181},[34,285244,285245,285247,285249,285251,285253],{"class":36,"line":44},[34,285246,130986],{"class":675},[34,285248,165],{"class":580},[34,285250,3950],{"class":47},[34,285252,7197],{"class":580},[34,285254,136246],{"class":50},[34,285256,285257,285260,285262],{"class":36,"line":58},[34,285258,285259],{"class":675},"  loading",[34,285261,165],{"class":580},[34,285263,285264],{"class":50}," boolean\n",[34,285266,285267,285270,285272,285274,285276,285278,285280,285282,285284,285286,285288,285290],{"class":36,"line":65},[34,285268,285269],{"class":47},"  fetchUser",[34,285271,165],{"class":580},[34,285273,3204],{"class":181},[34,285275,3885],{"class":675},[34,285277,165],{"class":580},[34,285279,680],{"class":50},[34,285281,4817],{"class":181},[34,285283,3361],{"class":580},[34,285285,126237],{"class":47},[34,285287,815],{"class":181},[34,285289,818],{"class":50},[34,285291,1248],{"class":181},[34,285293,285294],{"class":36,"line":71},[34,285295,693],{"class":181},[34,285297,285298],{"class":36,"line":77},[34,285299,62],{"emptyLinePlaceholder":61},[34,285301,285302,285304,285306,285308,285310,285312,285315,285317,285319,285321,285323],{"class":36,"line":82},[34,285303,14676],{"class":580},[34,285305,266516],{"class":50},[34,285307,683],{"class":580},[34,285309,7077],{"class":47},[34,285311,815],{"class":181},[34,285313,285314],{"class":47},"UserState",[34,285316,284965],{"class":181},[34,285318,1648],{"class":675},[34,285320,4817],{"class":181},[34,285322,3361],{"class":580},[34,285324,166840],{"class":181},[34,285326,285327,285329,285331],{"class":36,"line":88},[34,285328,58373],{"class":181},[34,285330,111592],{"class":50},[34,285332,624],{"class":181},[34,285334,285335,285337,285339],{"class":36,"line":242},[34,285336,131472],{"class":181},[34,285338,103387],{"class":50},[34,285340,624],{"class":181},[34,285342,285343,285345,285347,285349,285351,285353,285355,285357],{"class":36,"line":250},[34,285344,285269],{"class":47},[34,285346,182],{"class":181},[34,285348,17403],{"class":580},[34,285350,3204],{"class":181},[34,285352,3885],{"class":675},[34,285354,4817],{"class":181},[34,285356,3361],{"class":580},[34,285358,661],{"class":181},[34,285360,285361,285364,285367,285369],{"class":36,"line":263},[34,285362,285363],{"class":47},"    set",[34,285365,285366],{"class":181},"({ loading: ",[34,285368,632],{"class":50},[34,285370,1502],{"class":181},[34,285372,285373,285375,285377,285379,285381,285383,285385,285387,285389,285391,285393,285395,285397,285399,285401,285404,285406],{"class":36,"line":275},[34,285374,1632],{"class":580},[34,285376,17148],{"class":50},[34,285378,683],{"class":580},[34,285380,14763],{"class":580},[34,285382,14766],{"class":47},[34,285384,1607],{"class":181},[34,285386,162032],{"class":54},[34,285388,3885],{"class":181},[34,285390,3925],{"class":54},[34,285392,1876],{"class":181},[34,285394,3380],{"class":47},[34,285396,1607],{"class":181},[34,285398,56239],{"class":675},[34,285400,1895],{"class":580},[34,285402,285403],{"class":181}," r.",[34,285405,14790],{"class":47},[34,285407,62281],{"class":181},[34,285409,285410,285412,285415,285417,285419],{"class":36,"line":700},[34,285411,285363],{"class":47},[34,285413,285414],{"class":181},"({ user, loading: ",[34,285416,103387],{"class":50},[34,285418,76055],{"class":181},[34,285420,285421],{"class":40},"// update state after async op\n",[34,285423,285424],{"class":36,"line":706},[34,285425,3400],{"class":181},[34,285427,285428],{"class":36,"line":715},[34,285429,76987],{"class":181},[11,285431,285433],{"id":285432},"reading-state-outside-react","Reading State Outside React",[25,285435,285437],{"className":91533,"code":285436,"language":91535,"meta":30,"style":30},"// Access state directly without a hook (e.g. in event handlers, utils)\nconst bears = useBearStore.getState().bears\n\n// Subscribe to changes outside React\nconst unsub = useBearStore.subscribe((state) => {\n  console.log('bears changed:', state.bears)\n})\nunsub() // call to unsubscribe\n",[20,285438,285439,285444,285461,285465,285470,285493,285507,285511],{"__ignoreMap":30},[34,285440,285441],{"class":36,"line":37},[34,285442,285443],{"class":40},"// Access state directly without a hook (e.g. in event handlers, utils)\n",[34,285445,285446,285448,285450,285452,285455,285458],{"class":36,"line":44},[34,285447,14676],{"class":580},[34,285449,285060],{"class":50},[34,285451,683],{"class":580},[34,285453,285454],{"class":181}," useBearStore.",[34,285456,285457],{"class":47},"getState",[34,285459,285460],{"class":181},"().bears\n",[34,285462,285463],{"class":36,"line":58},[34,285464,62],{"emptyLinePlaceholder":61},[34,285466,285467],{"class":36,"line":65},[34,285468,285469],{"class":40},"// Subscribe to changes outside React\n",[34,285471,285472,285474,285477,285479,285481,285483,285485,285487,285489,285491],{"class":36,"line":71},[34,285473,14676],{"class":580},[34,285475,285476],{"class":50}," unsub",[34,285478,683],{"class":580},[34,285480,285454],{"class":181},[34,285482,3630],{"class":47},[34,285484,8348],{"class":181},[34,285486,29410],{"class":675},[34,285488,4817],{"class":181},[34,285490,3361],{"class":580},[34,285492,661],{"class":181},[34,285494,285495,285497,285499,285501,285504],{"class":36,"line":77},[34,285496,14929],{"class":181},[34,285498,2424],{"class":47},[34,285500,1607],{"class":181},[34,285502,285503],{"class":54},"'bears changed:'",[34,285505,285506],{"class":181},", state.bears)\n",[34,285508,285509],{"class":36,"line":82},[34,285510,647],{"class":181},[34,285512,285513,285516,285518],{"class":36,"line":88},[34,285514,285515],{"class":47},"unsub",[34,285517,672],{"class":181},[34,285519,285520],{"class":40},"// call to unsubscribe\n",[11,285522,285524],{"id":285523},"middleware-persist","Middleware: persist",[25,285526,285528],{"className":91533,"code":285527,"language":91535,"meta":30,"style":30},"import { create } from 'zustand'\nimport { persist } from 'zustand/middleware'\n\n// Automatically persist state to localStorage\nconst useStore = create(\n  persist(\n    (set) => ({\n      count: 0,\n      increment: () => set((s) => ({ count: s.count + 1 })),\n    }),\n    { name: 'my-storage' }  // localStorage key\n  )\n)\n",[20,285529,285530,285540,285552,285556,285561,285574,285581,285593,285602,285630,285635,285647,285651],{"__ignoreMap":30},[34,285531,285532,285534,285536,285538],{"class":36,"line":37},[34,285533,581],{"class":580},[34,285535,284880],{"class":181},[34,285537,587],{"class":580},[34,285539,284885],{"class":54},[34,285541,285542,285544,285547,285549],{"class":36,"line":44},[34,285543,581],{"class":580},[34,285545,285546],{"class":181}," { persist } ",[34,285548,587],{"class":580},[34,285550,285551],{"class":54}," 'zustand/middleware'\n",[34,285553,285554],{"class":36,"line":58},[34,285555,62],{"emptyLinePlaceholder":61},[34,285557,285558],{"class":36,"line":65},[34,285559,285560],{"class":40},"// Automatically persist state to localStorage\n",[34,285562,285563,285565,285568,285570,285572],{"class":36,"line":71},[34,285564,14676],{"class":580},[34,285566,285567],{"class":50}," useStore",[34,285569,683],{"class":580},[34,285571,7077],{"class":47},[34,285573,1882],{"class":181},[34,285575,285576,285579],{"class":36,"line":77},[34,285577,285578],{"class":47},"  persist",[34,285580,1882],{"class":181},[34,285582,285583,285585,285587,285589,285591],{"class":36,"line":82},[34,285584,50823],{"class":181},[34,285586,1648],{"class":675},[34,285588,4817],{"class":181},[34,285590,3361],{"class":580},[34,285592,166840],{"class":181},[34,285594,285595,285598,285600],{"class":36,"line":88},[34,285596,285597],{"class":181},"      count: ",[34,285599,2773],{"class":50},[34,285601,624],{"class":181},[34,285603,285604,285607,285609,285611,285613,285615,285617,285619,285621,285624,285626,285628],{"class":36,"line":242},[34,285605,285606],{"class":47},"      increment",[34,285608,3358],{"class":181},[34,285610,3361],{"class":580},[34,285612,9481],{"class":47},[34,285614,8348],{"class":181},[34,285616,523],{"class":675},[34,285618,4817],{"class":181},[34,285620,3361],{"class":580},[34,285622,285623],{"class":181}," ({ count: s.count ",[34,285625,2940],{"class":580},[34,285627,3567],{"class":50},[34,285629,263633],{"class":181},[34,285631,285632],{"class":36,"line":250},[34,285633,285634],{"class":181},"    }),\n",[34,285636,285637,285639,285642,285644],{"class":36,"line":263},[34,285638,165843],{"class":181},[34,285640,285641],{"class":54},"'my-storage'",[34,285643,76356],{"class":181},[34,285645,285646],{"class":40},"// localStorage key\n",[34,285648,285649],{"class":36,"line":275},[34,285650,17056],{"class":181},[34,285652,285653],{"class":36,"line":700},[34,285654,3372],{"class":181},[11,285656,285658],{"id":285657},"middleware-immer","Middleware: immer",[25,285660,285662],{"className":91533,"code":285661,"language":91535,"meta":30,"style":30},"import { immer } from 'zustand/middleware/immer'\n\n// Use immer for mutable-style state updates\nconst useStore = create(\n  immer((set) => ({\n    todos: [] as Todo[],\n    addTodo: (todo: Todo) =>\n      set((state) => {\n        state.todos.push(todo)  // mutate directly — immer handles immutability\n      }),\n  }))\n)\n",[20,285663,285664,285676,285680,285685,285697,285712,285724,285741,285756,285769,285774,285779],{"__ignoreMap":30},[34,285665,285666,285668,285671,285673],{"class":36,"line":37},[34,285667,581],{"class":580},[34,285669,285670],{"class":181}," { immer } ",[34,285672,587],{"class":580},[34,285674,285675],{"class":54}," 'zustand/middleware/immer'\n",[34,285677,285678],{"class":36,"line":44},[34,285679,62],{"emptyLinePlaceholder":61},[34,285681,285682],{"class":36,"line":58},[34,285683,285684],{"class":40},"// Use immer for mutable-style state updates\n",[34,285686,285687,285689,285691,285693,285695],{"class":36,"line":65},[34,285688,14676],{"class":580},[34,285690,285567],{"class":50},[34,285692,683],{"class":580},[34,285694,7077],{"class":47},[34,285696,1882],{"class":181},[34,285698,285699,285702,285704,285706,285708,285710],{"class":36,"line":71},[34,285700,285701],{"class":47},"  immer",[34,285703,8348],{"class":181},[34,285705,1648],{"class":675},[34,285707,4817],{"class":181},[34,285709,3361],{"class":580},[34,285711,166840],{"class":181},[34,285713,285714,285717,285719,285722],{"class":36,"line":77},[34,285715,285716],{"class":181},"    todos: [] ",[34,285718,74548],{"class":580},[34,285720,285721],{"class":47}," Todo",[34,285723,64154],{"class":181},[34,285725,285726,285729,285731,285733,285735,285737,285739],{"class":36,"line":82},[34,285727,285728],{"class":47},"    addTodo",[34,285730,162313],{"class":181},[34,285732,201576],{"class":675},[34,285734,165],{"class":580},[34,285736,285721],{"class":47},[34,285738,4817],{"class":181},[34,285740,77746],{"class":580},[34,285742,285743,285746,285748,285750,285752,285754],{"class":36,"line":88},[34,285744,285745],{"class":47},"      set",[34,285747,8348],{"class":181},[34,285749,29410],{"class":675},[34,285751,4817],{"class":181},[34,285753,3361],{"class":580},[34,285755,661],{"class":181},[34,285757,285758,285761,285763,285766],{"class":36,"line":242},[34,285759,285760],{"class":181},"        state.todos.",[34,285762,50165],{"class":47},[34,285764,285765],{"class":181},"(todo)  ",[34,285767,285768],{"class":40},"// mutate directly — immer handles immutability\n",[34,285770,285771],{"class":36,"line":250},[34,285772,285773],{"class":181},"      }),\n",[34,285775,285776],{"class":36,"line":263},[34,285777,285778],{"class":181},"  }))\n",[34,285780,285781],{"class":36,"line":275},[34,285782,3372],{"class":181},[11,285784,285786],{"id":285785},"devtools","Devtools",[25,285788,285790],{"className":91533,"code":285789,"language":91535,"meta":30,"style":30},"import { devtools } from 'zustand/middleware'\n\nconst useStore = create(\n  devtools(\n    (set) => ({ count: 0, inc: () => set((s) => ({ count: s.count + 1 })) }),\n    { name: 'MyStore' }  // label shown in Redux DevTools\n  )\n)\n",[20,285791,285792,285803,285807,285819,285826,285869,285881,285885],{"__ignoreMap":30},[34,285793,285794,285796,285799,285801],{"class":36,"line":37},[34,285795,581],{"class":580},[34,285797,285798],{"class":181}," { devtools } ",[34,285800,587],{"class":580},[34,285802,285551],{"class":54},[34,285804,285805],{"class":36,"line":44},[34,285806,62],{"emptyLinePlaceholder":61},[34,285808,285809,285811,285813,285815,285817],{"class":36,"line":58},[34,285810,14676],{"class":580},[34,285812,285567],{"class":50},[34,285814,683],{"class":580},[34,285816,7077],{"class":47},[34,285818,1882],{"class":181},[34,285820,285821,285824],{"class":36,"line":65},[34,285822,285823],{"class":47},"  devtools",[34,285825,1882],{"class":181},[34,285827,285828,285830,285832,285834,285836,285839,285841,285843,285846,285848,285850,285852,285854,285856,285858,285860,285862,285864,285866],{"class":36,"line":71},[34,285829,50823],{"class":181},[34,285831,1648],{"class":675},[34,285833,4817],{"class":181},[34,285835,3361],{"class":580},[34,285837,285838],{"class":181}," ({ count: ",[34,285840,2773],{"class":50},[34,285842,1798],{"class":181},[34,285844,285845],{"class":47},"inc",[34,285847,3358],{"class":181},[34,285849,3361],{"class":580},[34,285851,9481],{"class":47},[34,285853,8348],{"class":181},[34,285855,523],{"class":675},[34,285857,4817],{"class":181},[34,285859,3361],{"class":580},[34,285861,285623],{"class":181},[34,285863,2940],{"class":580},[34,285865,3567],{"class":50},[34,285867,285868],{"class":181}," })) }),\n",[34,285870,285871,285873,285876,285878],{"class":36,"line":77},[34,285872,165843],{"class":181},[34,285874,285875],{"class":54},"'MyStore'",[34,285877,76356],{"class":181},[34,285879,285880],{"class":40},"// label shown in Redux DevTools\n",[34,285882,285883],{"class":36,"line":82},[34,285884,17056],{"class":181},[34,285886,285887],{"class":36,"line":88},[34,285888,3372],{"class":181},[388,285890,285891],{},"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 .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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":30,"searchDepth":44,"depth":44,"links":285893},[285894,285895,285896,285897,285898,285899,285900,285901,285902],{"id":96,"depth":44,"text":97},{"id":284867,"depth":44,"text":284868},{"id":285033,"depth":44,"text":285034},{"id":285155,"depth":44,"text":285156},{"id":285227,"depth":44,"text":285228},{"id":285432,"depth":44,"text":285433},{"id":285523,"depth":44,"text":285524},{"id":285657,"depth":44,"text":285658},{"id":285785,"depth":44,"text":285786},"A small, fast, and scalable state management solution for React using simplified flux principles.",{},"/zustand/overview",{"title":284846,"description":285903},"zustand/overview","zustand",[285908,86172,127360,8606,573],"jXEuSD-k9Fo1LRJjSP73qYfyqHDeaKZ09khw8xC9EzE",1772827206563]