[{"data":1,"prerenderedAt":203},["ShallowReactive",2],{"navigation_docs_en":3,"-en-application-mokumoku":77,"-en-application-mokumoku-surround":198},[4,26,40,61],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":25},"Getting Started","i-lucide-rocket","\u002Fen\u002Fgetting-started","en\u002F1.getting-started",[10,15,20],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fen\u002Fgetting-started\u002Fintroduction","en\u002F1.getting-started\u002F2.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"API & Interface","\u002Fen\u002Fgetting-started\u002Fapi","en\u002F1.getting-started\u002F3.api","i-lucide-braces",{"title":21,"path":22,"stem":23,"icon":24},"Application","\u002Fen\u002Fgetting-started\u002Fapplication","en\u002F1.getting-started\u002F4.application","i-lucide-boxes",false,{"title":27,"icon":19,"path":28,"stem":29,"children":30,"page":25},"API & Interfaces","\u002Fen\u002Fapi","en\u002F2.api",[31,36],{"title":32,"path":33,"stem":34,"icon":35},"Image URL to Base64","\u002Fen\u002Fapi\u002Fimage-to-base64","en\u002F2.api\u002F201.image-to-base64","i-lucide-brain",{"title":37,"path":38,"stem":39,"icon":35},"Random 6657 Meme","\u002Fen\u002Fapi\u002Frandom-6657-meme","en\u002F2.api\u002F202.random-6657-meme",{"title":21,"icon":24,"path":41,"stem":42,"children":43,"page":25},"\u002Fen\u002Fapplication","en\u002F3.application",[44,49,53,57],{"title":45,"path":46,"stem":47,"icon":48},"MokuMoku","\u002Fen\u002Fapplication\u002Fmokumoku","en\u002F3.application\u002F201.mokumoku","i-lucide-app-window",{"title":50,"path":51,"stem":52,"icon":48},"Telegram Sticker Transcoding Tool","\u002Fen\u002Fapplication\u002Ftg-sticker","en\u002F3.application\u002F202.tg-sticker",{"title":54,"path":55,"stem":56,"icon":48},"Sshwifty Plus","\u002Fen\u002Fapplication\u002Fsshwifty-plus","en\u002F3.application\u002F203.sshwifty-plus",{"title":58,"path":59,"stem":60,"icon":48},"Cloud Clipboard","\u002Fen\u002Fapplication\u002Fcloud-clipboard","en\u002F3.application\u002F204.cloud-clipboard",{"title":62,"icon":63,"path":64,"stem":65,"children":66,"page":25},"Advanced","i-lucide-ellipsis","\u002Fen\u002Fadvanced","en\u002F4.advanced",[67,72],{"title":68,"path":69,"stem":70,"icon":71},"Privacy Policy","\u002Fen\u002Fadvanced\u002Fprivacy-policy","en\u002F4.advanced\u002F1.privacy-policy","i-lucide-shield-check",{"title":73,"path":74,"stem":75,"icon":76},"Changelog","\u002Fen\u002Fadvanced\u002Fchangelog","en\u002F4.advanced\u002F2.changelog","i-lucide-logs",{"id":78,"title":45,"body":79,"description":191,"extension":192,"links":193,"meta":194,"navigation":195,"path":46,"seo":196,"stem":47,"__hash__":197},"docs_en\u002Fen\u002F3.application\u002F201.mokumoku.md",{"type":80,"value":81,"toc":184},"minimark",[82,92,99,102,109,114,117,133,136,148,152,163,167,170],[83,84,85,86],"p",{},"Demo：",[87,88,89],"a",{"href":89,"rel":90},"https:\u002F\u002Fs.krab.cn\u002Fmoku",[91],"nofollow",[83,93,94,95],{},"Repository：",[87,96,97],{"href":97,"rel":98},"https:\u002F\u002Fgithub.com\u002Fkrab-lab\u002FMokuMoku",[91],[100,101],"hr",{},[83,103,104],{},[105,106],"img",{"alt":107,"src":108},"MokuMoku Homepage","\u002Fdocumentation\u002Fmokumoku-index-en.png",[110,111,113],"h2",{"id":112},"features","Features",[83,115,116],{},"MokuMoku is a real-time board game app for EdgeOne Pages. It supports public matchmaking, private rooms, and AI games across four board games:",[118,119,120,124,127,130],"ul",{},[121,122,123],"li",{},"Gomoku",[121,125,126],{},"Go",[121,128,129],{},"Reversi",[121,131,132],{},"Connect6",[83,134,135],{},"The frontend is a static app built with plain HTML, CSS, and JavaScript.",[83,137,138,139,143,144,147],{},"The backend uses EdgeOne Pages Cloud Functions, with ",[140,141,142],"code",{},"\u002Fapi\u002Fgame"," for gameplay state and ",[140,145,146],{},"\u002Fapi\u002Fpresence"," for low-frequency online counts. Room, player, and matchmaking state use EdgeOne Pages Blob storage.",[110,149,151],{"id":150},"why-mokumoku","Why MokuMoku",[118,153,154,157,160],{},[121,155,156],{},"🚪 No login required",[121,158,159],{},"📦 No installation required",[121,161,162],{},"⚡️ Lightweight and fast",[110,164,166],{"id":165},"state-model","State Model",[83,168,169],{},"Rooms, players, queue tickets, and lightweight locks are stored under a single Blob store namespace.",[118,171,172,175,178,181],{},[121,173,174],{},"Public queues are separated by game type.",[121,176,177],{},"The first public queued player or private room creator plays black.",[121,179,180],{},"Disconnected player seats are preserved for 60 seconds.",[121,182,183],{},"AI rooms close when the human player leaves.",{"title":185,"searchDepth":186,"depth":186,"links":187},"",2,[188,189,190],{"id":112,"depth":186,"text":113},{"id":150,"depth":186,"text":151},{"id":165,"depth":186,"text":166},"A small collection of board games that support both human-computer and multiplayer online play, including Gomoku, Go, Reversi, and Hexadecimal.","md",null,{},{"icon":48},{"description":191,"title":45},"BfnvCX5jfz7tifiD8JQVSFP70dKPwVnUtivKwovFXSg",[199,201],{"title":37,"path":38,"stem":39,"description":200,"icon":35,"children":-1},"Get a random meme from 斗鱼玩机器烂梗库. Supports matching by keyword, label and length.",{"title":50,"path":51,"stem":52,"description":202,"icon":48,"children":-1},"A simple web app that can automatically batch-convert videos or GIF animations into the format required by Telegram.",1788341492497]