[{"data":1,"prerenderedAt":7407},["ShallowReactive",2],{"plugins":3,"$fHjgHa7JiU-d4Y7-UUOZrPzQNVV1ZtTpFamuCTA6rKQ0":1968,"-docs-tree--cnb-tag-deploy-yml":2608,"-docs-tree--cnb-tag-deploy-yml-surround":7403},[4,214,363,504,627,764,902,1041,1145,1284,1422,1564,1700,1835],{"id":5,"title":6,"_id":7,"_partial":8,"_path":7,"body":9,"categories":7,"category":150,"contributors":151,"description":19,"extension":188,"github":131,"icon":189,"learn_more":7,"maintainers":190,"meta":199,"name":200,"navigation":201,"npm":6,"path":202,"repo":203,"seo":204,"sponsor":8,"stats":205,"stem":211,"type":212,"website":131,"__hash__":213},"plugins\u002Fplugins\u002Fa11y.md","@nuxt\u002Fa11y",null,false,{"type":10,"value":11,"toc":145},"minimark",[12,16,20,24,50,53,60,119,122,141],[13,14,6],"h1",{"id":15},"nuxta11y",[17,18,19],"p",{},"在开发期间在浏览器中提供实时可访问性反馈和自动测试。",[21,22,23],"h2",{"id":23},"安装",[25,26,31],"pre",{"className":27,"code":28,"language":29,"meta":30,"style":30},"language-bash shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","npm install @nuxt\u002Fa11y\n","bash","",[32,33,34],"code",{"__ignoreMap":30},[35,36,39,43,47],"span",{"class":37,"line":38},"line",1,[35,40,42],{"class":41},"s52Pk","npm",[35,44,46],{"class":45},"sGFVr"," install",[35,48,49],{"class":45}," @nuxt\u002Fa11y\n",[21,51,52],{"id":52},"使用",[17,54,55,56,59],{},"将插件添加到您的 ",[32,57,58],{},"nuxt.config.ts",":",[25,61,65],{"className":62,"code":63,"language":64,"meta":30,"style":30},"language-ts shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","export default defineNuxtConfig({\n  modules: ['@nuxt\u002Fa11y']\n})\n","ts",[32,66,67,88,110],{"__ignoreMap":30},[35,68,69,73,76,80,84],{"class":37,"line":38},[35,70,72],{"class":71},"s8R28","export",[35,74,75],{"class":71}," default",[35,77,79],{"class":78},"s3cPz"," defineNuxtConfig",[35,81,83],{"class":82},"sZSNi","(",[35,85,87],{"class":86},"sDfIl","{\n",[35,89,91,95,97,100,103,105,107],{"class":37,"line":90},2,[35,92,94],{"class":93},"sRlkE","  modules",[35,96,59],{"class":86},[35,98,99],{"class":82}," [",[35,101,102],{"class":86},"'",[35,104,6],{"class":45},[35,106,102],{"class":86},[35,108,109],{"class":82},"]\n",[35,111,113,116],{"class":37,"line":112},3,[35,114,115],{"class":86},"}",[35,117,118],{"class":82},")\n",[21,120,121],{"id":121},"链接",[123,124,125,135],"ul",{},[126,127,128],"li",{},[129,130,134],"a",{"href":131,"rel":132},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fa11y",[133],"nofollow","文档",[126,136,137],{},[129,138,140],{"href":131,"rel":139},[133],"GitHub",[142,143,144],"style",{},"html pre.shiki code .s52Pk, html code.shiki .s52Pk{--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B}html pre.shiki code .sGFVr, html code.shiki .sGFVr{--shiki-light:#91B859;--shiki-default:#91B859;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s8R28, html code.shiki .s8R28{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#39ADB5;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s3cPz, html code.shiki .s3cPz{--shiki-light:#6182B8;--shiki-default:#6182B8;--shiki-dark:#82AAFF}html pre.shiki code .sZSNi, html code.shiki .sZSNi{--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8}html pre.shiki code .sDfIl, html code.shiki .sDfIl{--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF}html pre.shiki code .sRlkE, html code.shiki .sRlkE{--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178}",{"title":30,"searchDepth":90,"depth":90,"links":146},[147,148,149],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},"Devtools",[152,155,158,161,165,169,173,177,180,184],{"id":38,"username":153,"contributions":154},"user99376",43,{"id":90,"username":156,"contributions":157},"user86649",16,{"id":112,"username":159,"contributions":160},"user49829",57,{"id":162,"username":163,"contributions":164},4,"user72634",14,{"id":166,"username":167,"contributions":168},5,"user28650",92,{"id":170,"username":171,"contributions":172},6,"user8758",55,{"id":174,"username":175,"contributions":176},7,"user74896",89,{"id":178,"username":179,"contributions":160},8,"user51798",{"id":181,"username":182,"contributions":183},9,"user67000",32,{"id":185,"username":186,"contributions":187},10,"user11627",36,"md","nuxt.svg",[191,195],{"name":192,"github":193,"bluesky":194},"Tim Damen","timdamen","timdamen.io",{"name":196,"github":197,"bluesky":198},"Daniel Roe","danielroe","danielroe.dev",{},"a11y",true,"\u002Fplugins\u002Fa11y","nuxt\u002Fa11y",{"title":6,"description":19},{"downloads":206,"stars":207,"watchers":208,"forks":209,"defaultBranch":210},2272902,36407,4858,1470,"main","plugins\u002Fa11y","official","YLxALoH_wZAsqCG6CMMXV7CM10sA6Y-aWquupJl5GMM",{"id":215,"title":216,"_id":7,"_partial":8,"_path":7,"body":217,"categories":7,"category":309,"contributors":310,"description":224,"extension":188,"github":300,"icon":189,"learn_more":7,"maintainers":338,"meta":351,"name":352,"navigation":201,"npm":216,"path":353,"repo":354,"seo":355,"sponsor":8,"stats":356,"stem":361,"type":212,"website":294,"__hash__":362},"plugins\u002Fplugins\u002Fcontent.md","@nuxt\u002Fcontent",{"type":10,"value":218,"toc":304},[219,222,225,227,241,243,247,286,288,302],[13,220,216],{"id":221},"nuxtcontent",[17,223,224],{},"基于文件的 CMS，支持 Markdown、YAML、JSON。",[21,226,23],{"id":23},[25,228,230],{"className":27,"code":229,"language":29,"meta":30,"style":30},"npm install @nuxt\u002Fcontent\n",[32,231,232],{"__ignoreMap":30},[35,233,234,236,238],{"class":37,"line":38},[35,235,42],{"class":41},[35,237,46],{"class":45},[35,239,240],{"class":45}," @nuxt\u002Fcontent\n",[21,242,52],{"id":52},[17,244,55,245,59],{},[32,246,58],{},[25,248,250],{"className":62,"code":249,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['@nuxt\u002Fcontent']\n})\n",[32,251,252,264,280],{"__ignoreMap":30},[35,253,254,256,258,260,262],{"class":37,"line":38},[35,255,72],{"class":71},[35,257,75],{"class":71},[35,259,79],{"class":78},[35,261,83],{"class":82},[35,263,87],{"class":86},[35,265,266,268,270,272,274,276,278],{"class":37,"line":90},[35,267,94],{"class":93},[35,269,59],{"class":86},[35,271,99],{"class":82},[35,273,102],{"class":86},[35,275,216],{"class":45},[35,277,102],{"class":86},[35,279,109],{"class":82},[35,281,282,284],{"class":37,"line":112},[35,283,115],{"class":86},[35,285,118],{"class":82},[21,287,121],{"id":121},[123,289,290,296],{},[126,291,292],{},[129,293,134],{"href":294,"rel":295},"https:\u002F\u002Fcontent.nuxt.com",[133],[126,297,298],{},[129,299,140],{"href":300,"rel":301},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fcontent",[133],[142,303,144],{},{"title":30,"searchDepth":90,"depth":90,"links":305},[306,307,308],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},"CMS",[311,314,317,319,322,324,327,330,333,335],{"id":38,"username":312,"contributions":313},"user13979",60,{"id":90,"username":315,"contributions":316},"user10947",52,{"id":112,"username":318,"contributions":187},"user11345",{"id":162,"username":320,"contributions":321},"user77708",64,{"id":166,"username":323,"contributions":183},"user96159",{"id":170,"username":325,"contributions":326},"user10252",65,{"id":174,"username":328,"contributions":329},"user88319",37,{"id":178,"username":331,"contributions":332},"user83651",74,{"id":181,"username":334,"contributions":183},"user76515",{"id":185,"username":336,"contributions":337},"user63596",73,[339,343,347],{"name":340,"github":341,"bluesky":342},"Farnabaz","farnabaz","farnabaz.dev",{"name":344,"github":345,"bluesky":346},"Baptiste Leproux","larbish","larbish.bsky.social",{"name":348,"github":349,"bluesky":350},"Sébastien Chopin","Atinux","atinux.com",{},"content","\u002Fplugins\u002Fcontent","nuxt\u002Fcontent#main",{"title":216,"description":224},{"downloads":357,"stars":358,"watchers":359,"forks":360,"defaultBranch":210},201400,37560,3723,499,"plugins\u002Fcontent","MPWexsb65o956t8kAcciteLzN5MYNwClRrI_CaJBSKg",{"id":364,"title":365,"_id":7,"_partial":8,"_path":7,"body":366,"categories":7,"category":150,"contributors":458,"description":373,"extension":188,"github":449,"icon":189,"learn_more":7,"maintainers":487,"meta":492,"name":493,"navigation":201,"npm":365,"path":494,"repo":495,"seo":496,"sponsor":8,"stats":497,"stem":502,"type":212,"website":443,"__hash__":503},"plugins\u002Fplugins\u002Fdevtools.md","@nuxt\u002Fdevtools",{"type":10,"value":367,"toc":453},[368,371,374,376,390,392,396,435,437,451],[13,369,365],{"id":370},"nuxtdevtools",[17,372,373],{},"帮助您更好地了解 Nuxt 应用程序的可视化工具。",[21,375,23],{"id":23},[25,377,379],{"className":27,"code":378,"language":29,"meta":30,"style":30},"npm install @nuxt\u002Fdevtools\n",[32,380,381],{"__ignoreMap":30},[35,382,383,385,387],{"class":37,"line":38},[35,384,42],{"class":41},[35,386,46],{"class":45},[35,388,389],{"class":45}," @nuxt\u002Fdevtools\n",[21,391,52],{"id":52},[17,393,55,394,59],{},[32,395,58],{},[25,397,399],{"className":62,"code":398,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['@nuxt\u002Fdevtools']\n})\n",[32,400,401,413,429],{"__ignoreMap":30},[35,402,403,405,407,409,411],{"class":37,"line":38},[35,404,72],{"class":71},[35,406,75],{"class":71},[35,408,79],{"class":78},[35,410,83],{"class":82},[35,412,87],{"class":86},[35,414,415,417,419,421,423,425,427],{"class":37,"line":90},[35,416,94],{"class":93},[35,418,59],{"class":86},[35,420,99],{"class":82},[35,422,102],{"class":86},[35,424,365],{"class":45},[35,426,102],{"class":86},[35,428,109],{"class":82},[35,430,431,433],{"class":37,"line":112},[35,432,115],{"class":86},[35,434,118],{"class":82},[21,436,121],{"id":121},[123,438,439,445],{},[126,440,441],{},[129,442,134],{"href":443,"rel":444},"https:\u002F\u002Fdevtools.nuxt.com",[133],[126,446,447],{},[129,448,140],{"href":449,"rel":450},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fdevtools",[133],[142,452,144],{},{"title":30,"searchDepth":90,"depth":90,"links":454},[455,456,457],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},[459,462,464,467,470,473,476,479,482,485],{"id":38,"username":460,"contributions":461},"user84341",23,{"id":90,"username":463,"contributions":174},"user10137",{"id":112,"username":465,"contributions":466},"user19110",67,{"id":162,"username":468,"contributions":469},"user69842",54,{"id":166,"username":471,"contributions":472},"user65163",29,{"id":170,"username":474,"contributions":475},"user87690",77,{"id":174,"username":477,"contributions":478},"user48871",99,{"id":178,"username":480,"contributions":481},"user11541",97,{"id":181,"username":483,"contributions":484},"user31909",90,{"id":185,"username":486,"contributions":332},"user72693",[488],{"name":489,"github":490,"bluesky":491},"Anthony Fu","antfu","antfu.me",{},"devtools","\u002Fplugins\u002Fdevtools","nuxt\u002Fdevtools#main\u002Fpackages\u002Fdevtools",{"title":365,"description":373},{"downloads":498,"stars":499,"watchers":500,"forks":501,"defaultBranch":210},338641,49933,433,225,"plugins\u002Fdevtools","TT6qV1tkhfILzk2j1f23tBPQu61DhF4FgXZ3Ap8Ntt0",{"id":505,"title":506,"_id":7,"_partial":8,"_path":7,"body":507,"categories":7,"category":150,"contributors":606,"description":514,"extension":188,"github":590,"icon":189,"learn_more":596,"maintainers":613,"meta":615,"name":616,"navigation":201,"npm":506,"path":617,"repo":618,"seo":619,"sponsor":8,"stats":620,"stem":625,"type":212,"website":584,"__hash__":626},"plugins\u002Fplugins\u002Feslint.md","@nuxt\u002Feslint",{"type":10,"value":508,"toc":601},[509,512,515,517,531,533,537,576,578,599],[13,510,506],{"id":511},"nuxteslint",[17,513,514],{},"项目感知、易于使用、可扩展且面向未来的 ESLint 集成。",[21,516,23],{"id":23},[25,518,520],{"className":27,"code":519,"language":29,"meta":30,"style":30},"npm install @nuxt\u002Feslint\n",[32,521,522],{"__ignoreMap":30},[35,523,524,526,528],{"class":37,"line":38},[35,525,42],{"class":41},[35,527,46],{"class":45},[35,529,530],{"class":45}," @nuxt\u002Feslint\n",[21,532,52],{"id":52},[17,534,55,535,59],{},[32,536,58],{},[25,538,540],{"className":62,"code":539,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['@nuxt\u002Feslint']\n})\n",[32,541,542,554,570],{"__ignoreMap":30},[35,543,544,546,548,550,552],{"class":37,"line":38},[35,545,72],{"class":71},[35,547,75],{"class":71},[35,549,79],{"class":78},[35,551,83],{"class":82},[35,553,87],{"class":86},[35,555,556,558,560,562,564,566,568],{"class":37,"line":90},[35,557,94],{"class":93},[35,559,59],{"class":86},[35,561,99],{"class":82},[35,563,102],{"class":86},[35,565,506],{"class":45},[35,567,102],{"class":86},[35,569,109],{"class":82},[35,571,572,574],{"class":37,"line":112},[35,573,115],{"class":86},[35,575,118],{"class":82},[21,577,121],{"id":121},[123,579,580,586,592],{},[126,581,582],{},[129,583,134],{"href":584,"rel":585},"https:\u002F\u002Feslint.nuxt.com",[133],[126,587,588],{},[129,589,140],{"href":590,"rel":591},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Feslint",[133],[126,593,594],{},[129,595,598],{"href":596,"rel":597},"https:\u002F\u002Feslint.nuxt.com\u002Fpackages\u002Fmodule",[133],"了解更多",[142,600,144],{},{"title":30,"searchDepth":90,"depth":90,"links":602},[603,604,605],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},[607,610],{"id":38,"username":608,"contributions":609},"user30113",84,{"id":90,"username":611,"contributions":612},"user63757",82,[614],{"name":489,"github":490,"bluesky":491},{},"eslint","\u002Fplugins\u002Feslint","nuxt\u002Feslint",{"title":506,"description":514},{"downloads":621,"stars":622,"watchers":623,"forks":624,"defaultBranch":210},4219129,40472,1319,493,"plugins\u002Feslint","y2i5lamEk99gHsmaCVBOf7SwD-h3Q5biJ5CqBsfaDlQ",{"id":628,"title":629,"_id":7,"_partial":8,"_path":7,"body":630,"categories":7,"category":722,"contributors":723,"description":637,"extension":188,"github":713,"icon":189,"learn_more":7,"maintainers":750,"meta":752,"name":753,"navigation":201,"npm":629,"path":754,"repo":755,"seo":756,"sponsor":8,"stats":757,"stem":762,"type":212,"website":707,"__hash__":763},"plugins\u002Fplugins\u002Ffonts.md","@nuxt\u002Ffonts",{"type":10,"value":631,"toc":717},[632,635,638,640,654,656,660,699,701,715],[13,633,629],{"id":634},"nuxtfonts",[17,636,637],{},"添加自定义 Web 字体，注重性能。",[21,639,23],{"id":23},[25,641,643],{"className":27,"code":642,"language":29,"meta":30,"style":30},"npm install @nuxt\u002Ffonts\n",[32,644,645],{"__ignoreMap":30},[35,646,647,649,651],{"class":37,"line":38},[35,648,42],{"class":41},[35,650,46],{"class":45},[35,652,653],{"class":45}," @nuxt\u002Ffonts\n",[21,655,52],{"id":52},[17,657,55,658,59],{},[32,659,58],{},[25,661,663],{"className":62,"code":662,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['@nuxt\u002Ffonts']\n})\n",[32,664,665,677,693],{"__ignoreMap":30},[35,666,667,669,671,673,675],{"class":37,"line":38},[35,668,72],{"class":71},[35,670,75],{"class":71},[35,672,79],{"class":78},[35,674,83],{"class":82},[35,676,87],{"class":86},[35,678,679,681,683,685,687,689,691],{"class":37,"line":90},[35,680,94],{"class":93},[35,682,59],{"class":86},[35,684,99],{"class":82},[35,686,102],{"class":86},[35,688,629],{"class":45},[35,690,102],{"class":86},[35,692,109],{"class":82},[35,694,695,697],{"class":37,"line":112},[35,696,115],{"class":86},[35,698,118],{"class":82},[21,700,121],{"id":121},[123,702,703,709],{},[126,704,705],{},[129,706,134],{"href":707,"rel":708},"https:\u002F\u002Ffonts.nuxt.com",[133],[126,710,711],{},[129,712,140],{"href":713,"rel":714},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Ffonts",[133],[142,716,144],{},{"title":30,"searchDepth":90,"depth":90,"links":718},[719,720,721],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},"Fonts",[724,727,730,733,735,738,741,744,746,748],{"id":38,"username":725,"contributions":726},"user42306",56,{"id":90,"username":728,"contributions":729},"user71199",33,{"id":112,"username":731,"contributions":732},"user16707",22,{"id":162,"username":734,"contributions":176},"user13463",{"id":166,"username":736,"contributions":737},"user63863",80,{"id":170,"username":739,"contributions":740},"user72286",35,{"id":174,"username":742,"contributions":743},"user84726",48,{"id":178,"username":745,"contributions":187},"user22103",{"id":181,"username":747,"contributions":164},"user45708",{"id":185,"username":749,"contributions":475},"user14848",[751],{"name":196,"github":197,"bluesky":198},{},"fonts","\u002Fplugins\u002Ffonts","nuxt\u002Ffonts",{"title":629,"description":637},{"downloads":758,"stars":759,"watchers":760,"forks":761,"defaultBranch":210},701472,23636,1481,2636,"plugins\u002Ffonts","T0fSWfcZn4S2Byr1npK0ulV8J1a2e4adeTZfj-sX5fc",{"id":765,"title":766,"_id":7,"_partial":8,"_path":7,"body":767,"categories":7,"category":150,"contributors":858,"description":774,"extension":188,"github":844,"icon":189,"learn_more":7,"maintainers":885,"meta":890,"name":891,"navigation":201,"npm":766,"path":892,"repo":893,"seo":894,"sponsor":8,"stats":895,"stem":900,"type":212,"website":844,"__hash__":901},"plugins\u002Fplugins\u002Fhints.md","@nuxt\u002Fhints",{"type":10,"value":768,"toc":853},[769,772,775,777,791,793,797,836,838,851],[13,770,766],{"id":771},"nuxthints",[17,773,774],{},"Nuxt 插件，显示应用程序各方面的提示，如性能、安全等！",[21,776,23],{"id":23},[25,778,780],{"className":27,"code":779,"language":29,"meta":30,"style":30},"npm install @nuxt\u002Fhints\n",[32,781,782],{"__ignoreMap":30},[35,783,784,786,788],{"class":37,"line":38},[35,785,42],{"class":41},[35,787,46],{"class":45},[35,789,790],{"class":45}," @nuxt\u002Fhints\n",[21,792,52],{"id":52},[17,794,55,795,59],{},[32,796,58],{},[25,798,800],{"className":62,"code":799,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['@nuxt\u002Fhints']\n})\n",[32,801,802,814,830],{"__ignoreMap":30},[35,803,804,806,808,810,812],{"class":37,"line":38},[35,805,72],{"class":71},[35,807,75],{"class":71},[35,809,79],{"class":78},[35,811,83],{"class":82},[35,813,87],{"class":86},[35,815,816,818,820,822,824,826,828],{"class":37,"line":90},[35,817,94],{"class":93},[35,819,59],{"class":86},[35,821,99],{"class":82},[35,823,102],{"class":86},[35,825,766],{"class":45},[35,827,102],{"class":86},[35,829,109],{"class":82},[35,831,832,834],{"class":37,"line":112},[35,833,115],{"class":86},[35,835,118],{"class":82},[21,837,121],{"id":121},[123,839,840,846],{},[126,841,842],{},[129,843,134],{"href":844,"rel":845},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fhints",[133],[126,847,848],{},[129,849,140],{"href":844,"rel":850},[133],[142,852,144],{},{"title":30,"searchDepth":90,"depth":90,"links":854},[855,856,857],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},[859,862,865,867,869,871,874,877,879,882],{"id":38,"username":860,"contributions":861},"user6533",91,{"id":90,"username":863,"contributions":864},"user71544",18,{"id":112,"username":866,"contributions":337},"user91675",{"id":162,"username":868,"contributions":166},"user25368",{"id":166,"username":870,"contributions":187},"user16215",{"id":170,"username":872,"contributions":873},"user81050",38,{"id":174,"username":875,"contributions":876},"user19700",44,{"id":178,"username":878,"contributions":321},"user41134",{"id":181,"username":880,"contributions":881},"user20762",19,{"id":185,"username":883,"contributions":884},"user339",42,[886],{"name":887,"github":888,"bluesky":889},"Julien Huang","huang-julien","julienhuang-dev.bsky.social",{},"hints","\u002Fplugins\u002Fhints","nuxt\u002Fhints",{"title":766,"description":774},{"downloads":896,"stars":897,"watchers":898,"forks":899,"defaultBranch":210},2213397,14758,1404,545,"plugins\u002Fhints","M4nkyrPTPXtaPD1YbnzIHqsvw9KU-5hHKG6Hp--8MMc",{"id":903,"title":904,"_id":7,"_partial":8,"_path":7,"body":905,"categories":7,"category":996,"contributors":997,"description":912,"extension":188,"github":982,"icon":189,"learn_more":7,"maintainers":1026,"meta":1029,"name":1030,"navigation":201,"npm":904,"path":1031,"repo":1032,"seo":1033,"sponsor":8,"stats":1034,"stem":1039,"type":212,"website":982,"__hash__":1040},"plugins\u002Fplugins\u002Ficon.md","@nuxt\u002Ficon",{"type":10,"value":906,"toc":991},[907,910,913,915,929,931,935,974,976,989],[13,908,904],{"id":909},"nuxticon",[17,911,912],{},"Nuxt 的图标插件，包含来自 Iconify 的 200,000+ 个即用图标。",[21,914,23],{"id":23},[25,916,918],{"className":27,"code":917,"language":29,"meta":30,"style":30},"npm install @nuxt\u002Ficon\n",[32,919,920],{"__ignoreMap":30},[35,921,922,924,926],{"class":37,"line":38},[35,923,42],{"class":41},[35,925,46],{"class":45},[35,927,928],{"class":45}," @nuxt\u002Ficon\n",[21,930,52],{"id":52},[17,932,55,933,59],{},[32,934,58],{},[25,936,938],{"className":62,"code":937,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['@nuxt\u002Ficon']\n})\n",[32,939,940,952,968],{"__ignoreMap":30},[35,941,942,944,946,948,950],{"class":37,"line":38},[35,943,72],{"class":71},[35,945,75],{"class":71},[35,947,79],{"class":78},[35,949,83],{"class":82},[35,951,87],{"class":86},[35,953,954,956,958,960,962,964,966],{"class":37,"line":90},[35,955,94],{"class":93},[35,957,59],{"class":86},[35,959,99],{"class":82},[35,961,102],{"class":86},[35,963,904],{"class":45},[35,965,102],{"class":86},[35,967,109],{"class":82},[35,969,970,972],{"class":37,"line":112},[35,971,115],{"class":86},[35,973,118],{"class":82},[21,975,121],{"id":121},[123,977,978,984],{},[126,979,980],{},[129,981,134],{"href":982,"rel":983},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Ficon",[133],[126,985,986],{},[129,987,140],{"href":982,"rel":988},[133],[142,990,144],{},{"title":30,"searchDepth":90,"depth":90,"links":992},[993,994,995],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},"UI",[998,1001,1004,1007,1010,1012,1015,1018,1020,1023],{"id":38,"username":999,"contributions":1000},"user37024",11,{"id":90,"username":1002,"contributions":1003},"user87306",70,{"id":112,"username":1005,"contributions":1006},"user73353",45,{"id":162,"username":1008,"contributions":1009},"user58644",20,{"id":166,"username":1011,"contributions":38},"user69260",{"id":170,"username":1013,"contributions":1014},"user30247",30,{"id":174,"username":1016,"contributions":1017},"user18477",41,{"id":178,"username":1019,"contributions":160},"user52769",{"id":181,"username":1021,"contributions":1022},"user43970",75,{"id":185,"username":1024,"contributions":1025},"user98140",12,[1027,1028],{"name":348,"github":349,"bluesky":350},{"name":489,"github":490,"bluesky":491},{},"icon","\u002Fplugins\u002Ficon","nuxt\u002Ficon",{"title":904,"description":912},{"downloads":1035,"stars":1036,"watchers":1037,"forks":1038,"defaultBranch":210},3202080,45665,4249,188,"plugins\u002Ficon","qOiuB-isRs131Q2t8HEr0bLG3_Lq-TrBdqcsYYbaouc",{"id":1042,"title":1043,"_id":7,"_partial":8,"_path":7,"body":1044,"categories":7,"category":1136,"contributors":7,"description":1051,"extension":188,"github":1127,"icon":189,"learn_more":7,"maintainers":7,"meta":1137,"name":1138,"navigation":201,"npm":1043,"path":1139,"repo":1140,"seo":1141,"sponsor":8,"stats":7,"stem":1142,"type":1143,"website":1121,"__hash__":1144},"plugins\u002Fplugins\u002Fimage.md","@nuxt\u002Fimage",{"type":10,"value":1045,"toc":1131},[1046,1049,1052,1054,1068,1070,1074,1113,1115,1129],[13,1047,1043],{"id":1048},"nuxtimage",[17,1050,1051],{},"添加图片，支持渐进式处理、懒加载、调整大小和提供商支持。",[21,1053,23],{"id":23},[25,1055,1057],{"className":27,"code":1056,"language":29,"meta":30,"style":30},"npm install @nuxt\u002Fimage\n",[32,1058,1059],{"__ignoreMap":30},[35,1060,1061,1063,1065],{"class":37,"line":38},[35,1062,42],{"class":41},[35,1064,46],{"class":45},[35,1066,1067],{"class":45}," @nuxt\u002Fimage\n",[21,1069,52],{"id":52},[17,1071,55,1072,59],{},[32,1073,58],{},[25,1075,1077],{"className":62,"code":1076,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['@nuxt\u002Fimage']\n})\n",[32,1078,1079,1091,1107],{"__ignoreMap":30},[35,1080,1081,1083,1085,1087,1089],{"class":37,"line":38},[35,1082,72],{"class":71},[35,1084,75],{"class":71},[35,1086,79],{"class":78},[35,1088,83],{"class":82},[35,1090,87],{"class":86},[35,1092,1093,1095,1097,1099,1101,1103,1105],{"class":37,"line":90},[35,1094,94],{"class":93},[35,1096,59],{"class":86},[35,1098,99],{"class":82},[35,1100,102],{"class":86},[35,1102,1043],{"class":45},[35,1104,102],{"class":86},[35,1106,109],{"class":82},[35,1108,1109,1111],{"class":37,"line":112},[35,1110,115],{"class":86},[35,1112,118],{"class":82},[21,1114,121],{"id":121},[123,1116,1117,1123],{},[126,1118,1119],{},[129,1120,134],{"href":1121,"rel":1122},"https:\u002F\u002Fimage.nuxt.com",[133],[126,1124,1125],{},[129,1126,140],{"href":1127,"rel":1128},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fimage",[133],[142,1130,144],{},{"title":30,"searchDepth":90,"depth":90,"links":1132},[1133,1134,1135],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},"Images",{},"image","\u002Fplugins\u002Fimage","nuxt\u002Fimage",{"title":1043,"description":1051},"plugins\u002Fimage","[object Object]","CXK46BX2BS38OrXRmxzhBG5zRJ5aqUOc_MQQMO_IddQ",{"id":1146,"title":1147,"_id":7,"_partial":8,"_path":7,"body":1148,"categories":7,"category":1245,"contributors":1246,"description":1154,"extension":188,"github":1230,"icon":1267,"learn_more":1236,"maintainers":1268,"meta":1272,"name":1147,"navigation":201,"npm":1147,"path":1273,"repo":1274,"seo":1275,"sponsor":8,"stats":1276,"stem":1281,"type":1282,"website":1224,"__hash__":1283},"plugins\u002Fplugins\u002Fnuxt-auth-sanctum.md","nuxt-auth-sanctum",{"type":10,"value":1149,"toc":1240},[1150,1152,1155,1157,1171,1173,1177,1216,1218,1238],[13,1151,1147],{"id":1147},[17,1153,1154],{},"Laravel Sanctum 身份验证的 Nuxt 插件",[21,1156,23],{"id":23},[25,1158,1160],{"className":27,"code":1159,"language":29,"meta":30,"style":30},"npm install nuxt-auth-sanctum\n",[32,1161,1162],{"__ignoreMap":30},[35,1163,1164,1166,1168],{"class":37,"line":38},[35,1165,42],{"class":41},[35,1167,46],{"class":45},[35,1169,1170],{"class":45}," nuxt-auth-sanctum\n",[21,1172,52],{"id":52},[17,1174,55,1175,59],{},[32,1176,58],{},[25,1178,1180],{"className":62,"code":1179,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['nuxt-auth-sanctum']\n})\n",[32,1181,1182,1194,1210],{"__ignoreMap":30},[35,1183,1184,1186,1188,1190,1192],{"class":37,"line":38},[35,1185,72],{"class":71},[35,1187,75],{"class":71},[35,1189,79],{"class":78},[35,1191,83],{"class":82},[35,1193,87],{"class":86},[35,1195,1196,1198,1200,1202,1204,1206,1208],{"class":37,"line":90},[35,1197,94],{"class":93},[35,1199,59],{"class":86},[35,1201,99],{"class":82},[35,1203,102],{"class":86},[35,1205,1147],{"class":45},[35,1207,102],{"class":86},[35,1209,109],{"class":82},[35,1211,1212,1214],{"class":37,"line":112},[35,1213,115],{"class":86},[35,1215,118],{"class":82},[21,1217,121],{"id":121},[123,1219,1220,1226,1232],{},[126,1221,1222],{},[129,1223,134],{"href":1224,"rel":1225},"https:\u002F\u002Fsanctum.manchenkoff.me",[133],[126,1227,1228],{},[129,1229,140],{"href":1230,"rel":1231},"https:\u002F\u002Fgithub.com\u002Fmanchenkoff\u002Fnuxt-auth-sanctum",[133],[126,1233,1234],{},[129,1235,598],{"href":1236,"rel":1237},"https:\u002F\u002Flaravel.com\u002Fdocs\u002F12.x\u002Fsanctum",[133],[142,1239,144],{},{"title":30,"searchDepth":90,"depth":90,"links":1241},[1242,1243,1244],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},"Security",[1247,1249,1251,1254,1257,1259,1262,1264],{"id":38,"username":1248,"contributions":337},"user3491",{"id":90,"username":1250,"contributions":478},"user52329",{"id":112,"username":1252,"contributions":1253},"user34359",81,{"id":162,"username":1255,"contributions":1256},"user86267",13,{"id":166,"username":1258,"contributions":166},"user71011",{"id":170,"username":1260,"contributions":1261},"user87107",86,{"id":174,"username":1263,"contributions":475},"user69652",{"id":178,"username":1265,"contributions":1266},"user80629",72,"laravel.svg",[1269],{"name":1270,"github":1271},"Artem Manchenkov","manchenkoff",{},"\u002Fplugins\u002Fnuxt-auth-sanctum","manchenkoff\u002Fnuxt-auth-sanctum",{"title":1147,"description":1154},{"downloads":1277,"stars":1278,"watchers":1279,"forks":1280,"defaultBranch":210},170439,571,491,288,"plugins\u002Fnuxt-auth-sanctum","3rd-party","a8McvtgCknAVn7piEt5AFjXKvoeG52aRnk-CAc_OdQo",{"id":1285,"title":1286,"_id":7,"_partial":8,"_path":7,"body":1287,"categories":7,"category":1378,"contributors":1379,"description":1404,"extension":188,"github":1369,"icon":1405,"learn_more":7,"maintainers":1406,"meta":1411,"name":1286,"navigation":201,"npm":1286,"path":1412,"repo":1413,"seo":1414,"sponsor":8,"stats":1415,"stem":1420,"type":1282,"website":1363,"__hash__":1421},"plugins\u002Fplugins\u002Fnuxt-mongoose.md","nuxt-mongoose",{"type":10,"value":1288,"toc":1373},[1289,1291,1294,1296,1310,1312,1316,1355,1357,1371],[13,1290,1286],{"id":1286},[17,1292,1293],{},"简化在项目中使用 Mongoose 的 Nuxt 插件。",[21,1295,23],{"id":23},[25,1297,1299],{"className":27,"code":1298,"language":29,"meta":30,"style":30},"npm install nuxt-mongoose\n",[32,1300,1301],{"__ignoreMap":30},[35,1302,1303,1305,1307],{"class":37,"line":38},[35,1304,42],{"class":41},[35,1306,46],{"class":45},[35,1308,1309],{"class":45}," nuxt-mongoose\n",[21,1311,52],{"id":52},[17,1313,55,1314,59],{},[32,1315,58],{},[25,1317,1319],{"className":62,"code":1318,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['nuxt-mongoose']\n})\n",[32,1320,1321,1333,1349],{"__ignoreMap":30},[35,1322,1323,1325,1327,1329,1331],{"class":37,"line":38},[35,1324,72],{"class":71},[35,1326,75],{"class":71},[35,1328,79],{"class":78},[35,1330,83],{"class":82},[35,1332,87],{"class":86},[35,1334,1335,1337,1339,1341,1343,1345,1347],{"class":37,"line":90},[35,1336,94],{"class":93},[35,1338,59],{"class":86},[35,1340,99],{"class":82},[35,1342,102],{"class":86},[35,1344,1286],{"class":45},[35,1346,102],{"class":86},[35,1348,109],{"class":82},[35,1350,1351,1353],{"class":37,"line":112},[35,1352,115],{"class":86},[35,1354,118],{"class":82},[21,1356,121],{"id":121},[123,1358,1359,1365],{},[126,1360,1361],{},[129,1362,134],{"href":1363,"rel":1364},"https:\u002F\u002Fnuxt-mongoose.nuxt.space",[133],[126,1366,1367],{},[129,1368,140],{"href":1369,"rel":1370},"https:\u002F\u002Fgithub.com\u002Farashsheyda\u002Fnuxt-mongoose",[133],[142,1372,144],{},{"title":30,"searchDepth":90,"depth":90,"links":1374},[1375,1376,1377],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},"Database",[1380,1383,1385,1387,1389,1392,1394,1397,1400,1402],{"id":38,"username":1381,"contributions":1382},"user44120",87,{"id":90,"username":1384,"contributions":881},"user69808",{"id":112,"username":1386,"contributions":160},"user43499",{"id":162,"username":1388,"contributions":1009},"user57745",{"id":166,"username":1390,"contributions":1391},"user19045",71,{"id":170,"username":1393,"contributions":1261},"user92868",{"id":174,"username":1395,"contributions":1396},"user76193",26,{"id":178,"username":1398,"contributions":1399},"user83794",94,{"id":181,"username":1401,"contributions":1399},"user91572",{"id":185,"username":1403,"contributions":1261},"user66728","简化在项目中使用 Mongoose 的 Nuxt 插件","nuxt-mongoose.svg",[1407],{"name":1408,"github":1409,"bluesky":1410},"Arash Ari Sheyda","arashsheyda","arashsheyda.me",{},"\u002Fplugins\u002Fnuxt-mongoose","arashsheyda\u002Fnuxt-mongoose",{"title":1286,"description":1404},{"downloads":1416,"stars":1417,"watchers":1418,"forks":1419,"defaultBranch":210},313268,1561,463,234,"plugins\u002Fnuxt-mongoose","rVDGisvuxFx5xMNmMn_AP8A-8i-bNJ-G_buXYZVbU5U",{"id":1423,"title":1424,"_id":7,"_partial":8,"_path":7,"body":1425,"categories":7,"category":1522,"contributors":1523,"description":1547,"extension":188,"github":1507,"icon":1548,"learn_more":1513,"maintainers":1549,"meta":1553,"name":1424,"navigation":201,"npm":1424,"path":1554,"repo":1555,"seo":1556,"sponsor":8,"stats":1557,"stem":1562,"type":1282,"website":1501,"__hash__":1563},"plugins\u002Fplugins\u002Fnuxt-posthog.md","nuxt-posthog",{"type":10,"value":1426,"toc":1517},[1427,1429,1432,1434,1448,1450,1454,1493,1495,1515],[13,1428,1424],{"id":1424},[17,1430,1431],{},"以最少的配置将 PostHog 集成到您的应用程序中。",[21,1433,23],{"id":23},[25,1435,1437],{"className":27,"code":1436,"language":29,"meta":30,"style":30},"npm install nuxt-posthog\n",[32,1438,1439],{"__ignoreMap":30},[35,1440,1441,1443,1445],{"class":37,"line":38},[35,1442,42],{"class":41},[35,1444,46],{"class":45},[35,1446,1447],{"class":45}," nuxt-posthog\n",[21,1449,52],{"id":52},[17,1451,55,1452,59],{},[32,1453,58],{},[25,1455,1457],{"className":62,"code":1456,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['nuxt-posthog']\n})\n",[32,1458,1459,1471,1487],{"__ignoreMap":30},[35,1460,1461,1463,1465,1467,1469],{"class":37,"line":38},[35,1462,72],{"class":71},[35,1464,75],{"class":71},[35,1466,79],{"class":78},[35,1468,83],{"class":82},[35,1470,87],{"class":86},[35,1472,1473,1475,1477,1479,1481,1483,1485],{"class":37,"line":90},[35,1474,94],{"class":93},[35,1476,59],{"class":86},[35,1478,99],{"class":82},[35,1480,102],{"class":86},[35,1482,1424],{"class":45},[35,1484,102],{"class":86},[35,1486,109],{"class":82},[35,1488,1489,1491],{"class":37,"line":112},[35,1490,115],{"class":86},[35,1492,118],{"class":82},[21,1494,121],{"id":121},[123,1496,1497,1503,1509],{},[126,1498,1499],{},[129,1500,134],{"href":1501,"rel":1502},"https:\u002F\u002Fnuxt-posthog.cmitjans.dev",[133],[126,1504,1505],{},[129,1506,140],{"href":1507,"rel":1508},"https:\u002F\u002Fgithub.com\u002Fmitjans\u002Fnuxt-posthog",[133],[126,1510,1511],{},[129,1512,598],{"href":1513,"rel":1514},"https:\u002F\u002Fposthog.com",[133],[142,1516,144],{},{"title":30,"searchDepth":90,"depth":90,"links":1518},[1519,1520,1521],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},"Analytics",[1524,1526,1529,1531,1534,1536,1538,1541,1543,1545],{"id":38,"username":1525,"contributions":1261},"user99328",{"id":90,"username":1527,"contributions":1528},"user36640",27,{"id":112,"username":1530,"contributions":743},"user8127",{"id":162,"username":1532,"contributions":1533},"user15154",63,{"id":166,"username":1535,"contributions":166},"user34098",{"id":170,"username":1537,"contributions":160},"user56129",{"id":174,"username":1539,"contributions":1540},"user16681",69,{"id":178,"username":1542,"contributions":183},"user23250",{"id":181,"username":1544,"contributions":469},"user69685",{"id":185,"username":1546,"contributions":164},"user26894","以最少的配置将 PostHog 集成到您的应用程序中","posthog.svg",[1550],{"name":1551,"github":1552},"Carles Mitjans","mitjans",{},"\u002Fplugins\u002Fnuxt-posthog","mitjans\u002Fnuxt-posthog",{"title":1424,"description":1547},{"downloads":1558,"stars":1559,"watchers":1560,"forks":1561,"defaultBranch":210},372773,749,249,248,"plugins\u002Fnuxt-posthog","2n73yQ9EGdeStmU9-KnMhhd-BroMNfiF29MCtTXzhg4",{"id":1565,"title":1566,"_id":7,"_partial":8,"_path":7,"body":1567,"categories":7,"category":1659,"contributors":1660,"description":1574,"extension":188,"github":1650,"icon":189,"learn_more":7,"maintainers":1684,"meta":1688,"name":1689,"navigation":201,"npm":1566,"path":1690,"repo":1691,"seo":1692,"sponsor":8,"stats":1693,"stem":1698,"type":212,"website":1644,"__hash__":1699},"plugins\u002Fplugins\u002Fscripts.md","@nuxt\u002Fscripts",{"type":10,"value":1568,"toc":1654},[1569,1572,1575,1577,1591,1593,1597,1636,1638,1652],[13,1570,1566],{"id":1571},"nuxtscripts",[17,1573,1574],{},"在不牺牲性能的情况下添加第三方脚本",[21,1576,23],{"id":23},[25,1578,1580],{"className":27,"code":1579,"language":29,"meta":30,"style":30},"npm install @nuxt\u002Fscripts\n",[32,1581,1582],{"__ignoreMap":30},[35,1583,1584,1586,1588],{"class":37,"line":38},[35,1585,42],{"class":41},[35,1587,46],{"class":45},[35,1589,1590],{"class":45}," @nuxt\u002Fscripts\n",[21,1592,52],{"id":52},[17,1594,55,1595,59],{},[32,1596,58],{},[25,1598,1600],{"className":62,"code":1599,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['@nuxt\u002Fscripts']\n})\n",[32,1601,1602,1614,1630],{"__ignoreMap":30},[35,1603,1604,1606,1608,1610,1612],{"class":37,"line":38},[35,1605,72],{"class":71},[35,1607,75],{"class":71},[35,1609,79],{"class":78},[35,1611,83],{"class":82},[35,1613,87],{"class":86},[35,1615,1616,1618,1620,1622,1624,1626,1628],{"class":37,"line":90},[35,1617,94],{"class":93},[35,1619,59],{"class":86},[35,1621,99],{"class":82},[35,1623,102],{"class":86},[35,1625,1566],{"class":45},[35,1627,102],{"class":86},[35,1629,109],{"class":82},[35,1631,1632,1634],{"class":37,"line":112},[35,1633,115],{"class":86},[35,1635,118],{"class":82},[21,1637,121],{"id":121},[123,1639,1640,1646],{},[126,1641,1642],{},[129,1643,134],{"href":1644,"rel":1645},"https:\u002F\u002Fscripts.nuxt.com",[133],[126,1647,1648],{},[129,1649,140],{"href":1650,"rel":1651},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fscripts",[133],[142,1653,144],{},{"title":30,"searchDepth":90,"depth":90,"links":1655},[1656,1657,1658],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},"Performance",[1661,1663,1665,1668,1670,1672,1675,1677,1680,1682],{"id":38,"username":1662,"contributions":185},"user50497",{"id":90,"username":1664,"contributions":170},"user7468",{"id":112,"username":1666,"contributions":1667},"user4831",85,{"id":162,"username":1669,"contributions":861},"user75013",{"id":166,"username":1671,"contributions":743},"user98072",{"id":170,"username":1673,"contributions":1674},"user11559",28,{"id":174,"username":1676,"contributions":1006},"user13714",{"id":178,"username":1678,"contributions":1679},"user94609",51,{"id":181,"username":1681,"contributions":154},"user41644",{"id":185,"username":1683,"contributions":732},"user76238",[1685],{"name":1686,"github":1687},"Harlan Wilton","harlan-zw",{},"scripts","\u002Fplugins\u002Fscripts","nuxt\u002Fscripts",{"title":1566,"description":1574},{"downloads":1694,"stars":1695,"watchers":1696,"forks":1697,"defaultBranch":210},654472,110,4891,718,"plugins\u002Fscripts","snquBudp2I-f1Ubv48w-17ZeDz9inLAAt_tSOMR4LCo",{"id":1701,"title":1702,"_id":7,"_partial":8,"_path":7,"body":1703,"categories":7,"category":150,"contributors":1795,"description":1710,"extension":188,"github":1786,"icon":189,"learn_more":7,"maintainers":1820,"meta":1823,"name":1824,"navigation":201,"npm":1702,"path":1825,"repo":1826,"seo":1827,"sponsor":8,"stats":1828,"stem":1833,"type":212,"website":1780,"__hash__":1834},"plugins\u002Fplugins\u002Ftest-utils.md","@nuxt\u002Ftest-utils",{"type":10,"value":1704,"toc":1790},[1705,1708,1711,1713,1727,1729,1733,1772,1774,1788],[13,1706,1702],{"id":1707},"nuxttest-utils",[17,1709,1710],{},"Nuxt 的测试工具",[21,1712,23],{"id":23},[25,1714,1716],{"className":27,"code":1715,"language":29,"meta":30,"style":30},"npm install @nuxt\u002Ftest-utils\n",[32,1717,1718],{"__ignoreMap":30},[35,1719,1720,1722,1724],{"class":37,"line":38},[35,1721,42],{"class":41},[35,1723,46],{"class":45},[35,1725,1726],{"class":45}," @nuxt\u002Ftest-utils\n",[21,1728,52],{"id":52},[17,1730,55,1731,59],{},[32,1732,58],{},[25,1734,1736],{"className":62,"code":1735,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['@nuxt\u002Ftest-utils']\n})\n",[32,1737,1738,1750,1766],{"__ignoreMap":30},[35,1739,1740,1742,1744,1746,1748],{"class":37,"line":38},[35,1741,72],{"class":71},[35,1743,75],{"class":71},[35,1745,79],{"class":78},[35,1747,83],{"class":82},[35,1749,87],{"class":86},[35,1751,1752,1754,1756,1758,1760,1762,1764],{"class":37,"line":90},[35,1753,94],{"class":93},[35,1755,59],{"class":86},[35,1757,99],{"class":82},[35,1759,102],{"class":86},[35,1761,1702],{"class":45},[35,1763,102],{"class":86},[35,1765,109],{"class":82},[35,1767,1768,1770],{"class":37,"line":112},[35,1769,115],{"class":86},[35,1771,118],{"class":82},[21,1773,121],{"id":121},[123,1775,1776,1782],{},[126,1777,1778],{},[129,1779,134],{"href":1780,"rel":1781},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fgetting-started\u002Ftesting",[133],[126,1783,1784],{},[129,1785,140],{"href":1786,"rel":1787},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Ftest-utils",[133],[142,1789,144],{},{"title":30,"searchDepth":90,"depth":90,"links":1791},[1792,1793,1794],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},[1796,1799,1801,1804,1806,1808,1810,1812,1815,1818],{"id":38,"username":1797,"contributions":1798},"user42799",61,{"id":90,"username":1800,"contributions":1006},"user77607",{"id":112,"username":1802,"contributions":1803},"user70090",47,{"id":162,"username":1805,"contributions":181},"user95279",{"id":166,"username":1807,"contributions":1256},"user89952",{"id":170,"username":1809,"contributions":172},"user41689",{"id":174,"username":1811,"contributions":316},"user2190",{"id":178,"username":1813,"contributions":1814},"user4111",39,{"id":181,"username":1816,"contributions":1817},"user93327",46,{"id":185,"username":1819,"contributions":181},"user52428",[1821,1822],{"name":196,"github":197,"bluesky":198},{"name":489,"github":490,"bluesky":491},{},"test-utils","\u002Fplugins\u002Ftest-utils","nuxt\u002Ftest-utils#main",{"title":1702,"description":1710},{"downloads":1829,"stars":1830,"watchers":1831,"forks":1832,"defaultBranch":210},509128,9236,3824,2540,"plugins\u002Ftest-utils","uXkQHRcL1KX0bO4rKHC8DNyQVRtjTqdsoU3mNZK2YD4",{"id":1836,"title":1837,"_id":7,"_partial":8,"_path":7,"body":1838,"categories":7,"category":996,"contributors":1930,"description":1845,"extension":188,"github":1921,"icon":189,"learn_more":7,"maintainers":1950,"meta":1956,"name":1957,"navigation":201,"npm":1837,"path":1958,"repo":1959,"seo":1960,"sponsor":8,"stats":1961,"stem":1966,"type":212,"website":1915,"__hash__":1967},"plugins\u002Fplugins\u002Fui.md","@nuxt\u002Fui",{"type":10,"value":1839,"toc":1925},[1840,1843,1846,1848,1862,1864,1868,1907,1909,1923],[13,1841,1837],{"id":1842},"nuxtui",[17,1844,1845],{},"基于 Reka UI 和 Tailwind CSS 的直观 UI 库",[21,1847,23],{"id":23},[25,1849,1851],{"className":27,"code":1850,"language":29,"meta":30,"style":30},"npm install @nuxt\u002Fui\n",[32,1852,1853],{"__ignoreMap":30},[35,1854,1855,1857,1859],{"class":37,"line":38},[35,1856,42],{"class":41},[35,1858,46],{"class":45},[35,1860,1861],{"class":45}," @nuxt\u002Fui\n",[21,1863,52],{"id":52},[17,1865,55,1866,59],{},[32,1867,58],{},[25,1869,1871],{"className":62,"code":1870,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['@nuxt\u002Fui']\n})\n",[32,1872,1873,1885,1901],{"__ignoreMap":30},[35,1874,1875,1877,1879,1881,1883],{"class":37,"line":38},[35,1876,72],{"class":71},[35,1878,75],{"class":71},[35,1880,79],{"class":78},[35,1882,83],{"class":82},[35,1884,87],{"class":86},[35,1886,1887,1889,1891,1893,1895,1897,1899],{"class":37,"line":90},[35,1888,94],{"class":93},[35,1890,59],{"class":86},[35,1892,99],{"class":82},[35,1894,102],{"class":86},[35,1896,1837],{"class":45},[35,1898,102],{"class":86},[35,1900,109],{"class":82},[35,1902,1903,1905],{"class":37,"line":112},[35,1904,115],{"class":86},[35,1906,118],{"class":82},[21,1908,121],{"id":121},[123,1910,1911,1917],{},[126,1912,1913],{},[129,1914,134],{"href":1915,"rel":1916},"https:\u002F\u002Fui.nuxt.com\u002Fdocs\u002Fgetting-started\u002Finstallation\u002Fnuxt",[133],[126,1918,1919],{},[129,1920,140],{"href":1921,"rel":1922},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui",[133],[142,1924,144],{},{"title":30,"searchDepth":90,"depth":90,"links":1926},[1927,1928,1929],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},[1931,1933,1935,1938,1941,1943,1945,1948],{"id":38,"username":1932,"contributions":1017},"user99346",{"id":90,"username":1934,"contributions":316},"user54967",{"id":112,"username":1936,"contributions":1937},"user11433",31,{"id":162,"username":1939,"contributions":1940},"user9986",100,{"id":166,"username":1942,"contributions":1937},"user89841",{"id":170,"username":1944,"contributions":1022},"user3725",{"id":174,"username":1946,"contributions":1947},"user89501",68,{"id":178,"username":1949,"contributions":609},"user88437",[1951,1955],{"name":1952,"github":1953,"bluesky":1954},"Benjamin Canac","benjamincanac","benjamincanac.dev",{"name":348,"github":349,"bluesky":350},{},"ui","\u002Fplugins\u002Fui","nuxt\u002Fui#dev",{"title":1837,"description":1845},{"downloads":1962,"stars":1963,"watchers":1964,"forks":1965,"defaultBranch":210},4898787,4588,1125,2648,"plugins\u002Fui","-l-I_UU8K6HTEy7-xTpyP_Mc1SGIH0ELsk7kc8GHh28",[1969,2025,2159,2233,2273,2287,2325,2422,2542,2556,2583],{"title":1970,"path":1971,"stem":1972,"children":1973,"titleTemplate":7,"icon":2024},"入门指南","\u002Fdocs\u002Fguide","docs\u002F01.guide\u002F01.index",[1974,1976,1980,2008,2012,2016],{"title":1975,"path":1971,"stem":1972,"titleTemplate":7},"创建你的第一个仓库",{"title":1977,"path":1978,"stem":1979,"titleTemplate":7},"迁移工具","\u002Fdocs\u002Fguide\u002Fmigration-tools","docs\u002F01.guide\u002F02.migration-tools",{"title":1981,"path":1982,"stem":1983,"children":1984,"titleTemplate":7,"icon":2007},"仓库","\u002Fdocs\u002Fguide\u002Frepo","docs\u002F01.guide\u002F02.repo\u002F01.index",[1985,1987,1991,1995,1999,2003],{"title":1986,"path":1982,"stem":1983,"titleTemplate":7},"产品介绍",{"title":1988,"path":1989,"stem":1990,"titleTemplate":7},"密钥仓库","\u002Fdocs\u002Fguide\u002Frepo\u002Fsecret","docs\u002F01.guide\u002F02.repo\u002F02.secret",{"title":1992,"path":1993,"stem":1994,"titleTemplate":7},"元数据","\u002Fdocs\u002Fguide\u002Frepo\u002Fannotations","docs\u002F01.guide\u002F02.repo\u002F03.annotations",{"title":1996,"path":1997,"stem":1998,"titleTemplate":7},"ISSUE 模板","\u002Fdocs\u002Fguide\u002Frepo\u002Fissue-template","docs\u002F01.guide\u002F02.repo\u002F04.issue-template",{"title":2000,"path":2001,"stem":2002,"titleTemplate":7},"分类标签","\u002Fdocs\u002Fguide\u002Frepo\u002Flabel","docs\u002F01.guide\u002F02.repo\u002F05.label",{"title":2004,"path":2005,"stem":2006,"titleTemplate":7},"UI 定制","\u002Fdocs\u002Fguide\u002Frepo\u002Fsettings","docs\u002F01.guide\u002F02.repo\u002F06.settings","lucide:folder",{"title":2009,"path":2010,"stem":2011,"titleTemplate":7},"角色权限","\u002Fdocs\u002Fguide\u002Frole-permissions","docs\u002F01.guide\u002F03.role-permissions",{"title":2013,"path":2014,"stem":2015,"titleTemplate":7},"访问令牌","\u002Fdocs\u002Fguide\u002Faccess-token","docs\u002F01.guide\u002F04.access-token",{"title":2017,"path":2018,"stem":2019,"children":2020,"titleTemplate":7,"icon":2023},"任务集","\u002Fdocs\u002Fguide\u002Fmissions","docs\u002F01.guide\u002F07.missions\u002F01.index",[2021],{"title":2022,"path":2018,"stem":2019,"titleTemplate":7},"任务集介绍","lucide:target","lucide:book-open",{"title":2026,"titleTemplate":7,"icon":2027,"path":2028,"stem":2029,"children":2030,"page":8},"云原生构建","lucide:rocket","\u002Fdocs\u002Fbuild","docs\u002F03.build",[2031,2079,2099,2139],{"title":2032,"path":2033,"stem":2034,"children":2035,"titleTemplate":7,"icon":2078},"基础使用","\u002Fdocs\u002Fbuild\u002Fbasic-usage","docs\u002F03.build\u002F01.basic-usage\u002F01.index",[2036,2038,2042,2046,2050,2054,2058,2062,2066,2070,2074],{"title":2037,"path":2033,"stem":2034,"titleTemplate":7},"云原生构建介绍",{"title":2039,"path":2040,"stem":2041,"titleTemplate":7},"快速开始","\u002Fdocs\u002Fbuild\u002Fbasic-usage\u002Fquick-start","docs\u002F03.build\u002F01.basic-usage\u002F02.quick-start",{"title":2043,"path":2044,"stem":2045,"titleTemplate":7},"构建触发规则","\u002Fdocs\u002Fbuild\u002Fbasic-usage\u002Ftrigger-rule","docs\u002F03.build\u002F01.basic-usage\u002F03.trigger-rule",{"title":2047,"path":2048,"stem":2049,"titleTemplate":7},"配置文件","\u002Fdocs\u002Fbuild\u002Fbasic-usage\u002Fconfiguration","docs\u002F03.build\u002F01.basic-usage\u002F04.configuration",{"title":2051,"path":2052,"stem":2053,"titleTemplate":7},"流水线语法","\u002Fdocs\u002Fbuild\u002Fbasic-usage\u002Fgrammar","docs\u002F03.build\u002F01.basic-usage\u002F05.grammar",{"title":2055,"path":2056,"stem":2057,"titleTemplate":7},"构建环境","\u002Fdocs\u002Fbuild\u002Fbasic-usage\u002Fbuild-env","docs\u002F03.build\u002F01.basic-usage\u002F06.build-env",{"title":2059,"path":2060,"stem":2061,"titleTemplate":7},"构建集群","\u002Fdocs\u002Fbuild\u002Fbasic-usage\u002Fbuild-node","docs\u002F03.build\u002F01.basic-usage\u002F07.build-node",{"title":2063,"path":2064,"stem":2065,"titleTemplate":7},"环境变量","\u002Fdocs\u002Fbuild\u002Fbasic-usage\u002Fenv","docs\u002F03.build\u002F01.basic-usage\u002F08.env",{"title":2067,"path":2068,"stem":2069,"titleTemplate":7},"默认环境变量","\u002Fdocs\u002Fbuild\u002Fbasic-usage\u002Fbuild-in-env","docs\u002F03.build\u002F01.basic-usage\u002F09.build-in-env",{"title":2071,"path":2072,"stem":2073,"titleTemplate":7},"超时策略","\u002Fdocs\u002Fbuild\u002Fbasic-usage\u002Ftimeout","docs\u002F03.build\u002F01.basic-usage\u002F10.timeout",{"title":2075,"path":2076,"stem":2077,"titleTemplate":7},"权限说明","\u002Fdocs\u002Fbuild\u002Fbasic-usage\u002Fpermission","docs\u002F03.build\u002F01.basic-usage\u002F11.permission","lucide:book",{"title":2080,"path":2081,"stem":2082,"children":2083,"titleTemplate":7,"icon":2098},"插件","\u002Fdocs\u002Fbuild\u002Fplugins","docs\u002F03.build\u002F02.plugins\u002F01.index",[2084,2086,2090,2094],{"title":2085,"path":2081,"stem":2082,"titleTemplate":7},"内置任务",{"title":2087,"path":2088,"stem":2089,"titleTemplate":7},"插件市场","\u002Fdocs\u002Fbuild\u002Fplugins\u002Fplugins","docs\u002F03.build\u002F02.plugins\u002F02.plugins",{"title":2091,"path":2092,"stem":2093,"titleTemplate":7},"插件制作","\u002Fdocs\u002Fbuild\u002Fplugins\u002Fcreate-plugin","docs\u002F03.build\u002F02.plugins\u002F03.create-plugin",{"title":2095,"path":2096,"stem":2097,"titleTemplate":7},"贡献插件","\u002Fdocs\u002Fbuild\u002Fplugins\u002Fcontribute-plugin","docs\u002F03.build\u002F02.plugins\u002F04.contribute-plugin","lucide:puzzle",{"title":2100,"path":2101,"stem":2102,"children":2103,"titleTemplate":7,"icon":2138},"进阶使用","\u002Fdocs\u002Fbuild\u002Fadvanced-usage","docs\u002F03.build\u002F03.advanced-usage\u002F01.index",[2104,2106,2110,2114,2118,2122,2126,2130,2134],{"title":2105,"path":2101,"stem":2102,"titleTemplate":7},"简化配置文件",{"title":2107,"path":2108,"stem":2109,"titleTemplate":7},"文件引用","\u002Fdocs\u002Fbuild\u002Fadvanced-usage\u002Ffile-reference","docs\u002F03.build\u002F03.advanced-usage\u002F02.file-reference",{"title":2111,"path":2112,"stem":2113,"titleTemplate":7},"流水线缓存","\u002Fdocs\u002Fbuild\u002Fadvanced-usage\u002Fpipeline-cache","docs\u002F03.build\u002F03.advanced-usage\u002F03.pipeline-cache",{"title":2115,"path":2116,"stem":2117,"titleTemplate":7},"定时任务","\u002Fdocs\u002Fbuild\u002Fadvanced-usage\u002Fcrontab","docs\u002F03.build\u002F03.advanced-usage\u002F04.crontab",{"title":2119,"path":2120,"stem":2121,"titleTemplate":7},"跳过流水线","\u002Fdocs\u002Fbuild\u002Fadvanced-usage\u002Fskip-pipeline","docs\u002F03.build\u002F03.advanced-usage\u002F05.skip-pipeline",{"title":2123,"path":2124,"stem":2125,"titleTemplate":7},"登录调试","\u002Fdocs\u002Fbuild\u002Fadvanced-usage\u002Flogin-debug","docs\u002F03.build\u002F03.advanced-usage\u002F06.login-debug",{"title":2127,"path":2128,"stem":2129,"titleTemplate":7},"手动触发流水线","\u002Fdocs\u002Fbuild\u002Fadvanced-usage\u002Fweb-trigger","docs\u002F03.build\u002F03.advanced-usage\u002F07.web-trigger",{"title":2131,"path":2132,"stem":2133,"titleTemplate":7},"自定义部署流程","\u002Fdocs\u002Fbuild\u002Fadvanced-usage\u002Fdeploy","docs\u002F03.build\u002F03.advanced-usage\u002F08.deploy",{"title":2135,"path":2136,"stem":2137,"titleTemplate":7},"常见问题","\u002Fdocs\u002Fbuild\u002Fadvanced-usage\u002Ffaq","docs\u002F03.build\u002F03.advanced-usage\u002F09.faq","lucide:zap",{"title":2140,"path":2141,"stem":2142,"children":2143,"titleTemplate":7,"icon":2158},"示例","\u002Fdocs\u002Fbuild\u002Fshowcase","docs\u002F03.build\u002F04.showcase\u002Findex",[2144,2146,2150,2154],{"title":2145,"path":2141,"stem":2142,"titleTemplate":7},"构建Docker镜像并上传",{"title":2147,"path":2148,"stem":2149,"titleTemplate":7},"ISSUE通知到企业微信群","\u002Fdocs\u002Fbuild\u002Fshowcase\u002Fissue-notice-group","docs\u002F03.build\u002F04.showcase\u002Fissue-notice-group",{"title":2151,"path":2152,"stem":2153,"titleTemplate":7},"Monorepo按需构建","\u002Fdocs\u002Fbuild\u002Fshowcase\u002Fmonorepo","docs\u002F03.build\u002F04.showcase\u002Fmonorepo",{"title":2155,"path":2156,"stem":2157,"titleTemplate":7},"PR通知到企业微信群","\u002Fdocs\u002Fbuild\u002Fshowcase\u002Fpr-notice-group","docs\u002F03.build\u002F04.showcase\u002Fpr-notice-group","lucide:app-window-mac",{"title":2160,"titleTemplate":7,"icon":2161,"path":2162,"stem":2163,"children":2164,"page":8},"云原生开发","lucide:laptop","\u002Fdocs\u002Fworkspaces","docs\u002F04.workspaces",[2165,2199,2217],{"title":2032,"path":2166,"stem":2167,"children":2168,"titleTemplate":7,"icon":2078},"\u002Fdocs\u002Fworkspaces\u002Fbasic-usage","docs\u002F04.workspaces\u002F01.basic-usage\u002F01.index",[2169,2171,2175,2179,2183,2187,2191,2195],{"title":2170,"path":2166,"stem":2167,"titleTemplate":7},"云原生开发介绍",{"title":2172,"path":2173,"stem":2174,"titleTemplate":7},"默认开发环境","\u002Fdocs\u002Fworkspaces\u002Fbasic-usage\u002Fdefault-dev-env","docs\u002F04.workspaces\u002F01.basic-usage\u002F02.default-dev-env",{"title":2176,"path":2177,"stem":2178,"titleTemplate":7},"自定义开发环境","\u002Fdocs\u002Fworkspaces\u002Fbasic-usage\u002Fcustom-dev-env","docs\u002F04.workspaces\u002F01.basic-usage\u002F03.custom-dev-env",{"title":2180,"path":2181,"stem":2182,"titleTemplate":7},"业务端口预览","\u002Fdocs\u002Fworkspaces\u002Fbasic-usage\u002Fbusiness-preview","docs\u002F04.workspaces\u002F01.basic-usage\u002F04.business-preview",{"title":2184,"path":2185,"stem":2186,"titleTemplate":7},"远程开发工作区回收机制","\u002Fdocs\u002Fworkspaces\u002Fbasic-usage\u002Fworkspace-recycling","docs\u002F04.workspaces\u002F01.basic-usage\u002F05.workspace-recycling",{"title":2188,"path":2189,"stem":2190,"titleTemplate":7},"代码备份和文件漫游","\u002Fdocs\u002Fworkspaces\u002Fbasic-usage\u002Ffile-keeper","docs\u002F04.workspaces\u002F01.basic-usage\u002F06.file-keeper",{"title":2192,"path":2193,"stem":2194,"titleTemplate":7},"云原生开发推荐用法","\u002Fdocs\u002Fworkspaces\u002Fbasic-usage\u002Frecommended-practice","docs\u002F04.workspaces\u002F01.basic-usage\u002F07.recommended-practice",{"title":2196,"path":2197,"stem":2198,"titleTemplate":7},"常见问题解答","\u002Fdocs\u002Fworkspaces\u002Fbasic-usage\u002Fquestion","docs\u002F04.workspaces\u002F01.basic-usage\u002F08.question",{"title":2100,"path":2200,"stem":2201,"children":2202,"titleTemplate":7,"icon":2138},"\u002Fdocs\u002Fworkspaces\u002Fadvanced-usage","docs\u002F04.workspaces\u002F02.advanced-usage\u002F01.index",[2203,2205,2209,2213],{"title":2204,"path":2200,"stem":2201,"titleTemplate":7},"自定义环境创建流程",{"title":2206,"path":2207,"stem":2208,"titleTemplate":7},"自定义云原生开发启动按钮","\u002Fdocs\u002Fworkspaces\u002Fadvanced-usage\u002Fcustom-dev-button","docs\u002F04.workspaces\u002F02.advanced-usage\u002F02.custom-dev-button",{"title":2210,"path":2211,"stem":2212,"titleTemplate":7},"单\u002F双容器模式","\u002Fdocs\u002Fworkspaces\u002Fadvanced-usage\u002Fdouble-container","docs\u002F04.workspaces\u002F02.advanced-usage\u002F03.double-container",{"title":2214,"path":2215,"stem":2216,"titleTemplate":7},"使用技巧","\u002Fdocs\u002Fworkspaces\u002Fadvanced-usage\u002Ftips","docs\u002F04.workspaces\u002F02.advanced-usage\u002F04.tips",{"title":2218,"path":2219,"stem":2220,"children":2221,"titleTemplate":7,"icon":2232},"本地IDE客户端","\u002Fdocs\u002Fworkspaces\u002Flocalide","docs\u002F04.workspaces\u002F03.localide\u002F01.index",[2222,2224,2228],{"title":2223,"path":2219,"stem":2220,"titleTemplate":7},"VSCode\u002FCursor 客户端",{"title":2225,"path":2226,"stem":2227,"titleTemplate":7},"Jetbrains 客户端","\u002Fdocs\u002Fworkspaces\u002Flocalide\u002Fjetbrains","docs\u002F04.workspaces\u002F03.localide\u002F02.jetbrains",{"title":2229,"path":2230,"stem":2231,"titleTemplate":7},"云原生开发 SSH 密钥指纹验证","\u002Fdocs\u002Fworkspaces\u002Flocalide\u002Ffingerprint","docs\u002F04.workspaces\u002F03.localide\u002F03.fingerprint","lucide:monitor",{"title":2234,"titleTemplate":7,"icon":2235,"path":2236,"stem":2237,"children":2238},"制品库","lucide:package","\u002Fdocs\u002Fartifact","docs\u002F05.artifact\u002Findex",[2239,2241,2245,2249,2253,2257,2261,2265,2269],{"title":2240,"path":2236,"stem":2237,"titleTemplate":7},"制品库介绍",{"title":2242,"path":2243,"stem":2244,"titleTemplate":7},"Composer 制品库","\u002Fdocs\u002Fartifact\u002Fcomposer","docs\u002F05.artifact\u002Fcomposer",{"title":2246,"path":2247,"stem":2248,"titleTemplate":7},"Docker 制品库","\u002Fdocs\u002Fartifact\u002Fdocker","docs\u002F05.artifact\u002Fdocker",{"title":2250,"path":2251,"stem":2252,"titleTemplate":7},"Helm 制品库","\u002Fdocs\u002Fartifact\u002Fhelm","docs\u002F05.artifact\u002Fhelm",{"title":2254,"path":2255,"stem":2256,"titleTemplate":7},"Maven 制品库","\u002Fdocs\u002Fartifact\u002Fmaven","docs\u002F05.artifact\u002Fmaven",{"title":2258,"path":2259,"stem":2260,"titleTemplate":7},"npm 制品库","\u002Fdocs\u002Fartifact\u002Fnpm","docs\u002F05.artifact\u002Fnpm",{"title":2262,"path":2263,"stem":2264,"titleTemplate":7},"Nuget 制品库","\u002Fdocs\u002Fartifact\u002Fnuget","docs\u002F05.artifact\u002Fnuget",{"title":2266,"path":2267,"stem":2268,"titleTemplate":7},"ohpm 制品库","\u002Fdocs\u002Fartifact\u002Fohpm","docs\u002F05.artifact\u002Fohpm",{"title":2270,"path":2271,"stem":2272,"titleTemplate":7},"PyPI 制品库","\u002Fdocs\u002Fartifact\u002Fpypi","docs\u002F05.artifact\u002Fpypi",{"title":2274,"path":2275,"stem":2276,"children":2277,"titleTemplate":7,"icon":2286},"AI助手","\u002Fdocs\u002Fai","docs\u002F06.ai\u002F01.index",[2278,2281],{"title":2279,"path":2275,"stem":2276,"titleTemplate":7,"icon":2280},"AI助手简介","lucide:bot",{"title":2282,"path":2283,"stem":2284,"titleTemplate":7,"icon":2285},"知识库","\u002Fdocs\u002Fai\u002Fknowledge-base","docs\u002F06.ai\u002F02.knowledge-base","lucide:knowledge","lucide:npc",{"title":2288,"titleTemplate":7,"icon":2289,"path":2290,"stem":2291,"children":2292,"page":8},"更多","lucide:menu","\u002Fdocs\u002Fmore","docs\u002F09.more",[2293,2297,2301,2305,2309,2313],{"title":2294,"path":2295,"stem":2296,"titleTemplate":7},"定价","\u002Fdocs\u002Fmore\u002Fpricing","docs\u002F09.more\u002F01.pricing",{"title":2298,"path":2299,"stem":2300,"titleTemplate":7},"平台赞赏","\u002Fdocs\u002Fmore\u002Fsponsor","docs\u002F09.more\u002F02.sponsor",{"title":2302,"path":2303,"stem":2304,"titleTemplate":7},"云原生构建-企业版","\u002Fdocs\u002Fmore\u002Fenterprise","docs\u002F09.more\u002F03.enterprise",{"title":2306,"path":2307,"stem":2308,"titleTemplate":7},"产品Logo","\u002Fdocs\u002Fmore\u002Flogo","docs\u002F09.more\u002F04.logo",{"title":2310,"path":2311,"stem":2312,"titleTemplate":7},"集成TAPD","\u002Fdocs\u002Fmore\u002Ftapd","docs\u002F09.more\u002F05.tapd",{"title":2314,"path":2315,"stem":2316,"children":2317,"titleTemplate":7,"icon":2324},"开发者","\u002Fdocs\u002Fmore\u002Fdevelops","docs\u002F09.more\u002F08.develops\u002F01.index",[2318,2320],{"title":2319,"path":2315,"stem":2316,"titleTemplate":7},"徽章",{"title":2321,"path":2322,"stem":2323,"titleTemplate":7},"Open API","\u002Fdocs\u002Fmore\u002Fdevelops\u002Fopenapi","docs\u002F09.more\u002F08.develops\u002F02.openapi","lucide:code",{"title":2326,"titleTemplate":7,"icon":2327,"path":2328,"stem":2329,"children":2330,"page":8},"目录结构","vscode-icons:default-folder","\u002Fdocs\u002Ftree","docs\u002F22.tree",[2331,2366,2376,2390,2395,2399,2403,2408,2413,2418],{"title":2332,"titleTemplate":7,"defaultOpen":201,"icon":2333,"path":2334,"stem":2335,"children":2336,"page":8},".cnb\u002F","vscode-icons:folder-type-app","\u002Fdocs\u002Ftree\u002F.cnb","docs\u002F22.tree\u002F0..cnb",[2337,2348,2353,2358,2362],{"title":2338,"titleTemplate":7,"defaultOpen":201,"icon":2339,"path":2340,"stem":2341,"children":2342,"page":8},"ISSUE_TEMPLATE\u002F","vscode-icons:folder-type-package","\u002Fdocs\u002Ftree\u002F.cnb\u002Fissue_template","docs\u002F22.tree\u002F0..cnb\u002F99.ISSUE_TEMPLATE",[2343],{"title":2344,"path":2345,"stem":2346,"titleTemplate":7,"icon":2347},"0-feedback","\u002Fdocs\u002Ftree\u002F.cnb\u002Fissue_template\u002F0-feedback","docs\u002F22.tree\u002F0..cnb\u002F99.ISSUE_TEMPLATE\u002F0-feedback","vscode-icons:folder-type-tools",{"title":2349,"path":2350,"stem":2351,"titleTemplate":7,"icon":2352},"logo.svg","\u002Fdocs\u002Ftree\u002F.cnb\u002Flogo_svg","docs\u002F22.tree\u002F0..cnb\u002Flogo_svg","vscode-icons:file-type-image",{"title":2354,"path":2355,"stem":2356,"titleTemplate":7,"icon":2357},"settings.yml","\u002Fdocs\u002Ftree\u002F.cnb\u002Fsettings_yml","docs\u002F22.tree\u002F0..cnb\u002Fsettings_yml","vscode-icons:file-type-light-config",{"title":2359,"path":2360,"stem":2361,"titleTemplate":7,"icon":2357},"tag_deploy.yml","\u002Fdocs\u002Ftree\u002F.cnb\u002Ftag_deploy_yml","docs\u002F22.tree\u002F0..cnb\u002Ftag_deploy_yml",{"title":2363,"path":2364,"stem":2365,"titleTemplate":7,"icon":2357},"web_trigger.yml","\u002Fdocs\u002Ftree\u002F.cnb\u002Fweb_trigger_yml","docs\u002F22.tree\u002F0..cnb\u002Fweb_trigger_yml",{"title":2367,"titleTemplate":7,"defaultOpen":201,"icon":2333,"path":2368,"stem":2369,"children":2370,"page":8},".ide\u002F","\u002Fdocs\u002Ftree\u002F.ide","docs\u002F22.tree\u002F0..ide",[2371],{"title":2372,"path":2373,"stem":2374,"titleTemplate":7,"icon":2375},"Dockerfile","\u002Fdocs\u002Ftree\u002F.ide\u002Fdockerfile","docs\u002F22.tree\u002F0..ide\u002FDockerfile","vscode-icons:default-file",{"title":2377,"titleTemplate":7,"defaultOpen":8,"icon":2378,"path":2379,"stem":2380,"children":2381,"page":8},"node_modules\u002F","vscode-icons:folder-type-node","\u002Fdocs\u002Ftree\u002Fnode-modules","docs\u002F22.tree\u002F0.node-modules",[2382,2386],{"title":2383,"path":2384,"stem":2385,"titleTemplate":7,"icon":2378},".bin\u002F","\u002Fdocs\u002Ftree\u002Fnode-modules\u002Fbin","docs\u002F22.tree\u002F0.node-modules\u002Fbin",{"title":2387,"path":2388,"stem":2389,"titleTemplate":7,"icon":2378},".cache\u002F","\u002Fdocs\u002Ftree\u002Fnode-modules\u002Fcache","docs\u002F22.tree\u002F0.node-modules\u002Fcache",{"title":2391,"path":2392,"stem":2393,"titleTemplate":7,"icon":2394},"public\u002F","\u002Fdocs\u002Ftree\u002Fpublic","docs\u002F22.tree\u002F0.public","vscode-icons:folder-type-public",{"title":2396,"path":2397,"stem":2398,"titleTemplate":7,"icon":2375},"README.md","\u002Fdocs\u002Ftree\u002Freadme","docs\u002F22.tree\u002F1.README",{"title":2400,"path":2401,"stem":2402,"titleTemplate":7,"icon":2357},".cnb.yml","\u002Fdocs\u002Ftree\u002Fcnb_yml","docs\u002F22.tree\u002F1.cnb_yml",{"title":2404,"path":2405,"stem":2406,"titleTemplate":7,"icon":2407},".env","\u002Fdocs\u002Ftree\u002Fenv","docs\u002F22.tree\u002F1.env","vscode-icons:file-type-dotenv",{"title":2409,"path":2410,"stem":2411,"titleTemplate":7,"icon":2412},".gitignore","\u002Fdocs\u002Ftree\u002Fgitignore","docs\u002F22.tree\u002F1.gitignore","vscode-icons:file-type-git",{"title":2414,"path":2415,"stem":2416,"titleTemplate":7,"icon":2417},"package.json","\u002Fdocs\u002Ftree\u002Fpackage","docs\u002F22.tree\u002F1.package","vscode-icons:file-type-npm",{"title":2419,"path":2420,"stem":2421,"titleTemplate":7,"icon":2417},"pnpm-lock.yaml","\u002Fdocs\u002Ftree\u002Fpnpm-lock_yaml","docs\u002F22.tree\u002F1.pnpm-lock_yaml",{"title":2423,"titleTemplate":7,"icon":2424,"path":2425,"stem":2426,"children":2427},"API","lucide:code-xml","\u002Fdocs\u002Fapi","docs\u002F44.api\u002Findex",[2428,2430,2434,2438,2442,2446,2450,2454,2458,2462,2466,2470,2474,2478,2482,2486,2490,2494,2498,2502,2506,2510,2514,2518,2522,2526,2530,2534,2538],{"title":2429,"path":2425,"stem":2426,"titleTemplate":7},"API 介绍",{"title":2431,"path":2432,"stem":2433,"titleTemplate":7},"活动 Activities","\u002Fdocs\u002Fapi\u002Factivities","docs\u002F44.api\u002Factivities",{"title":2435,"path":2436,"stem":2437,"titleTemplate":7},"AI 功能","\u002Fdocs\u002Fapi\u002Fai","docs\u002F44.api\u002Fai",{"title":2439,"path":2440,"stem":2441,"titleTemplate":7},"资源 Assets","\u002Fdocs\u002Fapi\u002Fassets","docs\u002F44.api\u002Fassets",{"title":2443,"path":2444,"stem":2445,"titleTemplate":7},"徽章 Badge","\u002Fdocs\u002Fapi\u002Fbadge","docs\u002F44.api\u002Fbadge",{"title":2447,"path":2448,"stem":2449,"titleTemplate":7},"构建 Build","\u002Fdocs\u002Fapi\u002Fbuild","docs\u002F44.api\u002Fbuild",{"title":2451,"path":2452,"stem":2453,"titleTemplate":7},"计费 Charge","\u002Fdocs\u002Fapi\u002Fcharge","docs\u002F44.api\u002Fcharge",{"title":2455,"path":2456,"stem":2457,"titleTemplate":7},"协作者 Collaborators","\u002Fdocs\u002Fapi\u002Fcollaborators","docs\u002F44.api\u002Fcollaborators",{"title":2459,"path":2460,"stem":2461,"titleTemplate":7},"事件 Event","\u002Fdocs\u002Fapi\u002Fevent","docs\u002F44.api\u002Fevent",{"title":2463,"path":2464,"stem":2465,"titleTemplate":7},"关注者 Followers","\u002Fdocs\u002Fapi\u002Ffollowers","docs\u002F44.api\u002Ffollowers",{"title":2467,"path":2468,"stem":2469,"titleTemplate":7},"Git 操作","\u002Fdocs\u002Fapi\u002Fgit","docs\u002F44.api\u002Fgit",{"title":2471,"path":2472,"stem":2473,"titleTemplate":7},"Git 设置","\u002Fdocs\u002Fapi\u002Fgit-settings","docs\u002F44.api\u002Fgit-settings",{"title":2475,"path":2476,"stem":2477,"titleTemplate":7},"问题 Issues","\u002Fdocs\u002Fapi\u002Fissues","docs\u002F44.api\u002Fissues",{"title":2479,"path":2480,"stem":2481,"titleTemplate":7},"知识库 KnowledgeBase","\u002Fdocs\u002Fapi\u002Fknowledge-base","docs\u002F44.api\u002Fknowledge-base",{"title":2483,"path":2484,"stem":2485,"titleTemplate":7},"成员 Members","\u002Fdocs\u002Fapi\u002Fmembers","docs\u002F44.api\u002Fmembers",{"title":2487,"path":2488,"stem":2489,"titleTemplate":7},"任务 Missions","\u002Fdocs\u002Fapi\u002Fmissions","docs\u002F44.api\u002Fmissions",{"title":2491,"path":2492,"stem":2493,"titleTemplate":7},"组织 Organizations","\u002Fdocs\u002Fapi\u002Forganizations","docs\u002F44.api\u002Forganizations",{"title":2495,"path":2496,"stem":2497,"titleTemplate":7},"Pull Requests","\u002Fdocs\u002Fapi\u002Fpulls","docs\u002F44.api\u002Fpulls",{"title":2499,"path":2500,"stem":2501,"titleTemplate":7},"注册表 Registries","\u002Fdocs\u002Fapi\u002Fregistries","docs\u002F44.api\u002Fregistries",{"title":2503,"path":2504,"stem":2505,"titleTemplate":7},"发布 Releases","\u002Fdocs\u002Fapi\u002Freleases","docs\u002F44.api\u002Freleases",{"title":2507,"path":2508,"stem":2509,"titleTemplate":7},"代码问题","\u002Fdocs\u002Fapi\u002Frepo-code-issue","docs\u002F44.api\u002Frepo-code-issue",{"title":2511,"path":2512,"stem":2513,"titleTemplate":7},"贡献者","\u002Fdocs\u002Fapi\u002Frepo-contributor","docs\u002F44.api\u002Frepo-contributor",{"title":2515,"path":2516,"stem":2517,"titleTemplate":7},"仓库标签","\u002Fdocs\u002Fapi\u002Frepo-labels","docs\u002F44.api\u002Frepo-labels",{"title":2519,"path":2520,"stem":2521,"titleTemplate":7},"仓库 Repositories","\u002Fdocs\u002Fapi\u002Frepositories","docs\u002F44.api\u002Frepositories",{"title":2523,"path":2524,"stem":2525,"titleTemplate":7},"搜索 Search","\u002Fdocs\u002Fapi\u002Fsearch","docs\u002F44.api\u002Fsearch",{"title":2527,"path":2528,"stem":2529,"titleTemplate":7},"安全 Security","\u002Fdocs\u002Fapi\u002Fsecurity","docs\u002F44.api\u002Fsecurity",{"title":2531,"path":2532,"stem":2533,"titleTemplate":7},"星标 Starring","\u002Fdocs\u002Fapi\u002Fstarring","docs\u002F44.api\u002Fstarring",{"title":2535,"path":2536,"stem":2537,"titleTemplate":7},"用户 Users","\u002Fdocs\u002Fapi\u002Fusers","docs\u002F44.api\u002Fusers",{"title":2539,"path":2540,"stem":2541,"titleTemplate":7},"工作空间 Workspace","\u002Fdocs\u002Fapi\u002Fworkspace","docs\u002F44.api\u002Fworkspace",{"title":2543,"path":2544,"stem":2545,"children":2546,"titleTemplate":7,"icon":2555},"社区","\u002Fdocs\u002Fcommunity","docs\u002F55.community\u002Findex",[2547,2550],{"title":2548,"path":2544,"stem":2545,"titleTemplate":7,"icon":2549},"获取帮助","lucide:life-buoy",{"title":2551,"path":2552,"stem":2553,"titleTemplate":7,"icon":2554},"报告 Bug","\u002Fdocs\u002Fcommunity\u002Freporting-bugs","docs\u002F55.community\u002Freporting-bugs","lucide:bug","lucide:messages-square",{"title":2140,"titleTemplate":7,"icon":2557,"path":2558,"stem":2559,"children":2560},"lucide:layout","\u002Fdocs\u002Fexamples","docs\u002Fexamples\u002Findex",[2561,2563,2573],{"title":2562,"path":2558,"stem":2559,"titleTemplate":7},"CNB完整示例",{"title":2564,"path":2565,"stem":2566,"children":2567,"titleTemplate":7},"构建环境和开发环境","\u002Fdocs\u002Fexamples\u002Ffeatures","docs\u002Fexamples\u002F1.features\u002Findex",[2568,2569],{"title":2564,"path":2565,"stem":2566,"titleTemplate":7},{"title":2570,"path":2571,"stem":2572,"titleTemplate":7},"Issue\u002Fpr 使用场景","\u002Fdocs\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002Fexamples\u002F1.features\u002F5.layouts",{"title":2574,"path":2575,"stem":2576,"children":2577,"titleTemplate":7},"路由","\u002Fdocs\u002Fexamples\u002Frouting","docs\u002Fexamples\u002F2.routing\u002Findex",[2578,2579],{"title":2574,"path":2575,"stem":2576,"titleTemplate":7},{"title":2580,"path":2581,"stem":2582,"titleTemplate":7},"中间件","\u002Fdocs\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002Fexamples\u002F2.routing\u002Fmiddleware",{"title":2584,"path":2585,"stem":2586,"children":2587,"page":8},"Blog","\u002Fblog","blog",[2588,2592,2596,2600,2604],{"title":2589,"path":2590,"stem":2591},"提示框组件演示","\u002Fblog\u002Fdemo-feedback","blog\u002Fdemo-feedback",{"title":2593,"path":2594,"stem":2595},"DOM 操作基础","\u002Fblog\u002Fdom-manipulation","blog\u002Fdom-manipulation",{"title":2597,"path":2598,"stem":2599},"HTML 基础入门","\u002Fblog\u002Fhtml-basics","blog\u002Fhtml-basics",{"title":2601,"path":2602,"stem":2603},"JavaScript 异步编程","\u002Fblog\u002Fjavascript-async","blog\u002Fjavascript-async",{"title":2605,"path":2606,"stem":2607},"响应式网页设计","\u002Fblog\u002Fresponsive-design","blog\u002Fresponsive-design",{"id":2609,"title":2359,"body":2610,"description":7398,"extension":188,"links":7,"meta":7399,"navigation":7400,"path":2360,"seo":7401,"stem":2361,"titleTemplate":7,"__hash__":7402},"docs\u002Fdocs\u002F22.tree\u002F0..cnb\u002Ftag_deploy_yml.md",{"type":10,"value":2611,"toc":7386},[2612,2615,2621,2624,2642,5563,6326,6329,6332,6346,6350,6517,6520,6734,6737,6740,7021,7024,7033,7231,7234,7256,7260,7276,7356,7359,7370,7383],[17,2613,2614],{},"操作示例：",[17,2616,2617],{},[2618,2619],"img",{"alt":30,"src":2620},"https:\u002F\u002Fdocs.cnb.cool\u002Fimages\u002Fbuild\u002Fdeploy-intro.zh.png",[21,2622,2623],{"id":2623},"自定义部署环境",[17,2625,2626,2627,2630,2631,2634,2635,2634,2638,2641],{},"在仓库根目录下添加 ",[32,2628,2629],{},".cnb\u002Ftag_deploy.yml"," 文件用于配置部署环境。\n如下示例中定义了 ",[32,2632,2633],{},"development","、",[32,2636,2637],{},"staging",[32,2639,2640],{},"production"," 三种环境，用户可在页面上选择需要部署的环境类型。",[25,2643,2648],{"className":2644,"code":2645,"language":2646,"meta":2647,"style":30},"language-yaml shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","environments:\n  # name: 环境名，点击该环境对应的部署按钮将触发 .cnb.yml 中的 tag_deploy.development 事件流水线\n  - name: development\n    description: Development environment\n    # 环境变量（触发流水线时，会将环境变量传入流水线，包括部署流水线、web_trigger 流水线）\n    env:\n      name: development\n      # CNB_BRANCH: 环境变量，部署事件中，为 tag 名\n      tag_name: $CNB_BRANCH\n    # 部署按钮权限控制\n    # 不配置：有仓库写权限和 tag_push 权限的用户可点击部署按钮\n    # 配置：有仓库写权限，且满足 roles 或 users 其中之一才有权限点击部署按钮\n    permissions:\n      # roles 和 users 配置其中之一或都配置均可，二者满足其一即可\n      # 角色非向上包含关系。例如如下配置，表示仅 master 或 developer 角色才有权限，owner 即使仓库权限更高，但此处无权限\n      roles:\n        - master\n        - developer\n      users:\n        - name1\n        - name2\n  - name: staging\n    description: Staging environment\n    # 自定义触发的部署流水线标题\n    # title: 部署预发布环境\n    env:\n      name: staging\n      # CNB_BRANCH: 环境变量，部署事件中，为 tag 名\n      tag_name: $CNB_BRANCH\n\n  - name: production\n    description: Production environment\n    # 环境变量（触发流水线时，会将环境变量传入流水线，包括部署流水线、web_trigger 流水线）\n    env:\n      name: production\n      # CNB_BRANCH: 环境变量，部署事件中，为 tag 名\n      tag_name: $CNB_BRANCH\n    button:\n      - name: 按钮名1\n        # 如存在，则将作为流水线 title，否则流水线使用默认 title；可支持环境变量替换（仅支持替换一级，环境变量指的是当前配置的 env 和 inputs。仅支持 ${xxx} 写法。）\n        description: 按钮描述\n        # 触发的 CI 事件名，需要在 .cnb.yml 中配置\n        event: web_trigger_one\n        # 是否默认按钮\n        isDefault: false\n        # 权限控制，不配置则有仓库写权限的用户可触发构建\n        # 如果配置，则需要有仓库写权限，并且满足 roles 或 users 其中之一才有权限触发构建\n        # 注意：仅支持在页面检查 permissions 权限\n        permissions:\n          # roles 和 users 配置其中之一或都配置均可，二者满足其一即可\n          # 角色非向上包含关系。例如如下配置，表示仅 master 或 developer 角色才有权限，owner 即使仓库权限更高，但此处无权限\n          roles:\n            - master\n            - developer\n          users:\n            - name1\n            - name2\n        # 环境变量\n        env:\n          # 默认传入的环境变量，其中 key 值（a,b,c）为环境变量名，支持如下两种格式\n          a: 1\n          b: 2\n          c:\n            # 环境变量别名\n            name: 变量c\n            # 环境变量值\n            value: 3\n        # 可输入环境变量，可覆盖上述 env 的变量配置\n        inputs:\n          # 目前支持以下三种格式：输入框（input）、多行文本输入框（textarea）、下拉选择框（select 支持单选和多选），switch 开关（switch），radio 单选框（radio）\n          # 其中 key 值（var1、var2、var3、var4、var5、var6）为环境变量名\n          # inputs 也支持分组，见下方按钮二 inputs 配置\n          var1:\n            # 输入框\n            name: 变量1\n            description: 变量1描述\n            placeholder: 请输入变量1\n            required: true # 是否必填\n            type: input\n            default: 默认值1\n          var2:\n            # 输入框\n            name: 变量2\n            description: 变量2描述\n            placeholder: 请输入变量2\n            required: true\n            type: textarea\n            default: 默认值2\n          var3:\n            # 单选下拉选择框\n            name: 变量3\n            description: 变量3描述\n            placeholder: 请选择变量3\n            required: false\n            type: select\n            default: value1\n            options:\n              - name: 选项1\n                value: value1\n                description: 选项1描述\n              - name: 选项2\n                value: value2\n                description: 选项2描述\n          var4:\n            # 多选下拉选择框\n            name: 变量4\n            description: 变量4描述\n            placeholder: 请选择变量4\n            required: false\n            type: select\n            # 是否支持多选，多选结果用分号分隔\n            multiple: true\n            default: value1,value2\n            options:\n              - name: 选项1\n                value: value1\n                description: 选项1描述\n              - name: 选项2\n                value: value2\n                description: 选项2描述\n              - name: 选项3\n                value: value3\n                description: 选项3描述\n          var5:\n            # switch 开关\n            name: 变量5\n            description: 变量5描述\n            required: false\n            type: switch\n            default: value1\n            options:\n              - name: 选项1\n                value: value1\n                description: 选项1描述\n              - name: 选项2\n                value: value2\n                description: 选项2描述\n          var6:\n            # radio 单选框\n            name: 变量6\n            description: 选择变量6\n            required: false\n            type: radio\n            default: value1\n            options:\n              - name: 选项1\n                value: value1\n                description: 选项1描述\n              - name: 选项2\n                value: value2\n                description: 选项2描述\n      - name: 按钮名2\n        description: 按钮描述\n        event: web_trigger_two\n        inputs:\n          # inputs 支持分组，如下所示，用数组格式，每个数组元素代表一个分组。\n          # 分组仅在页面显示上有区别，不影响实际的环境变量传入\n          - name: 分组一\n            inputs:\n              # 目前支持以下三种格式：输入框（input）、多行文本输入框（textarea）、下拉选择框（select 支持单选和多选），switch 开关（switch），radio 单选框（radio）\n              # 其中 key 值（var1、var2、var3、var4、var5、var6）为环境变量名\n              var1:\n                # 输入框\n                name: 变量1\n                description: 变量1描述\n                placeholder: 请输入变量1\n                required: true # 是否必填\n                type: input\n                default: 默认值1\n              var2:\n                # 输入框\n                name: 变量2\n                description: 变量2描述\n                placeholder: 请输入变量2\n                required: true\n                type: textarea\n                default: 默认值2\n              var3:\n                # 单选下拉选择框\n                name: 变量3\n                description: 变量3描述\n                placeholder: 请选择变量3\n                required: false\n                type: select\n                default: value1\n                options:\n                  - name: 选项1\n                    value: value1\n                    description: 选项1描述\n                  - name: 选项2\n                    value: value2\n                    description: 选项2描述\n          - name: 分组二\n            inputs:\n              var4:\n                # 多选下拉选择框\n                name: 变量4\n                description: 变量4描述\n                placeholder: 请选择变量4\n                required: false\n                type: select\n                # 是否支持多选，多选结果用分号分隔\n                multiple: true\n                default: value1,value2\n                options:\n                  - name: 选项1\n                    value: value1\n                    description: 选项1描述\n                  - name: 选项2\n                    value: value2\n                    description: 选项2描述\n                  - name: 选项3\n                    value: value3\n                    description: 选项3描述\n              var5:\n                # switch 开关\n                name: 变量5\n                description: 变量5描述\n                required: false\n                type: switch\n                default: value1\n                options:\n                  - name: 选项1\n                    value: value1\n                    description: 选项1描述\n                  - name: 选项2\n                    value: value2\n                    description: 选项2描述\n          - name: 分组三\n            inputs:\n              var6:\n                # radio 单选框\n                name: 变量6\n                description: 选择变量6\n                required: false\n                type: radio\n                default: value1\n                options:\n                  - name: 选项1\n                    value: value1\n                    description: 选项1描述\n                  - name: 选项2\n                    value: value2\n                    description: 选项2描述\n\n    # 部署前置条件检查（支持对环境、元数据、审批流程的检查），满足所有前置条件才可进行部署操作\n    require:\n      # 1 对部署环境是否满足要求的检查\n\n      # 1.1 要求 development 环境部署成功\n      - environmentName: development\n\n      # 1.2 要求 staging 环境部署成功 30 分钟后\n      - environmentName: staging\n        after: 1800\n\n      # 2 对元数据是否满足要求的检查\n\n      # 2.1 键值 key1 对应的 value 不为空，即有值\n      - annotation: key1\n\n      # 2.2 键值 key1 对应的 value 值需等于 value1\n      - annotation: key1\n        expect:\n          eq: value1\n\n      # 2.3 键值 key2 对应的 value 值需大于 1 且小于 10\n      - annotation: key2\n        expect:\n          and:\n            gt: 1\n            lt: 10\n        # 自定义按钮，点击可触发执行 web_trigger_annotation 事件。\n        # 可定义与 require 信息有关的按钮事件，当 require 满足条件后隐藏按钮\n        button:\n          - name: 生成元数据\n            event: web_trigger_annotation\n            # 如存在，则将作为流水线 title，否则流水线使用默认 title；可支持环境变量替换（仅支持替换一级，环境变量指的是当前配置的 env 和 inputs。仅支持 ${xxx} 写法。）\n            description: 生成元数据流程\n            # 权限控制，不配置则有仓库写权限的用户可触发构建\n            # 如果配置，则需要有仓库写权限，并且满足 roles 或 users 其中之一才有权限触发构建\n            # 注意：仅支持在页面检查 permissions 权限\n            permissions:\n              # roles 和 users 配置其中之一或都配置均可，二者满足其一即可\n              # 角色非向上包含关系。例如如下配置，表示仅 master 或 developer 角色才有权限，owner 即使仓库权限更高，但此处无权限\n              roles:\n                - master\n                - developer\n              users:\n                - name1\n                - name2\n            # 传给 web_trigger_annotation 事件流水线的环境变量\n            # 可继承上一级别环境变量，优先级高于上一级别环境变量\n            env:\n              name1: value1\n              name2: value2\n\n      # 3 对审批流程是否满足要求的检查（可按以下方式自定义审批流程）\n      # - 审批顺序：如下 1、2、3 审批流程需按顺序进行，即 1 审批通过，2 才能进行审批。1、2、3 审批流程全部通过才算通过审批\n      # - 审批操作：包括 同意、拒绝。一人同意即算通过。如果拒绝，其他审批人无法再操作，直到拒绝的审批人再修改审批结果为同意\n\n      # 3.1 按用户名审批，其中一人审批通过即可\n      - approver:\n          users:\n            - user1\n            - user2\n            - user3\n        # 可配置点击同意按钮触发的事件，以及传给事件流水线的环境变量\n        # agreeEvent:\n        #   # 描述信息，会作为流水线 title\n        #   description: 同意审批\n        #   # 点击同意按钮时触发的事件名，仅支持 web_trigger 事件\n        #   event: web_trigger_agree\n        #   # 传给事件流水线的环境变量，不支持继承上一级别的环境变量\n        #   env:\n        #     name1: value1\n        #     name2: value2\n        # 可配置点击拒绝按钮触发的事件，以及传给事件流水线的环境变量\n        # rejectEvent:\n        #   # 描述信息，会作为流水线 title\n        #   description: 拒绝审批\n        #   # 点击拒绝按钮时触发的事件名，仅支持 web_trigger 事件\n        #   event: web_trigger_reject\n        #   # 传给事件流水线的环境变量，不支持继承上一级别的环境变量\n        #   env:\n        #     name1: value1\n        #     name2: value2\n        title: 测试审批\n\n      # 3.2 按角色审批，其中一人审批通过即可\n      - approver:\n          roles:\n            - developer\n            - master\n        title: 开发审批\n\n      # 3.3 按用户名或角色审批（审批人满足 users 或 roles 其一即可），其中一人审批通过才行\n      - approver:\n          users:\n            - user4\n            - user5\n          roles:\n            - master\n            - owner\n        title: 运维审批\n\n    # 自定义部署按钮（缺省值：默认展示一个部署按钮）\n    # 使用场景：有多个不同模块（例如仓库、CI、制品库等），需要分开独立部署时，可以配置多个不同的按钮\n    # 注意：部署流水线中要区分是哪个模块，可以通过传入流水线的环境变量来区分\n    deploy:\n      - name: 部署按钮名1\n        description: 部署按钮描述\n        # 环境变量（触发部署流水线时，会将环境变量传入流水线），优先级高于上一级 env\n        env:\n          name1: value1\n          name2: value2\n      - name: 部署按钮名2\n        description: 部署按钮描述\n        # 环境变量（触发部署流水线时，会将环境变量传入流水线），优先级高于上一级 env\n        env:\n          name1: value1\n          name2: value2\n","yaml","title=\".cnb\u002Ftag_deploy.yml\"",[32,2649,2650,2658,2664,2677,2687,2692,2699,2708,2713,2723,2728,2733,2738,2745,2750,2756,2763,2772,2779,2786,2793,2801,2812,2821,2827,2833,2839,2847,2851,2859,2864,2875,2884,2888,2895,2903,2907,2915,2922,2934,2940,2950,2955,2965,2970,2981,2986,2991,2996,3004,3010,3015,3022,3030,3036,3043,3049,3055,3061,3069,3074,3085,3096,3103,3108,3118,3124,3134,3139,3146,3151,3156,3161,3168,3173,3182,3193,3203,3217,3228,3238,3245,3249,3259,3268,3277,3286,3295,3305,3312,3317,3326,3335,3345,3353,3363,3373,3380,3393,3402,3412,3424,3434,3444,3452,3458,3468,3478,3488,3497,3505,3511,3521,3531,3538,3549,3558,3567,3578,3587,3596,3608,3618,3628,3636,3642,3652,3662,3671,3681,3690,3697,3708,3717,3726,3737,3746,3755,3763,3769,3779,3789,3798,3808,3817,3824,3835,3844,3853,3864,3873,3882,3894,3903,3913,3920,3926,3932,3945,3953,3959,3965,3973,3979,3989,3998,4008,4020,4030,4040,4048,4053,4062,4071,4080,4089,4098,4107,4115,4121,4130,4139,4148,4157,4166,4175,4183,4195,4204,4214,4225,4234,4243,4255,4262,4270,4276,4285,4294,4303,4312,4321,4327,4337,4346,4353,4364,4373,4382,4393,4402,4411,4422,4431,4440,4448,4454,4463,4472,4481,4490,4499,4506,4517,4526,4534,4545,4554,4563,4575,4582,4590,4596,4605,4613,4622,4631,4640,4647,4658,4667,4676,4687,4696,4705,4710,4716,4724,4729,4733,4739,4751,4756,4762,4773,4784,4789,4795,4800,4806,4819,4824,4830,4841,4849,4859,4864,4870,4882,4889,4897,4907,4918,4924,4930,4938,4950,4961,4967,4977,4983,4989,4995,5003,5009,5015,5023,5031,5037,5045,5052,5059,5065,5071,5079,5089,5099,5104,5110,5116,5122,5127,5133,5143,5150,5158,5166,5174,5180,5186,5192,5198,5204,5210,5216,5222,5228,5234,5240,5246,5251,5257,5263,5269,5274,5279,5284,5289,5300,5305,5311,5320,5327,5334,5341,5351,5356,5362,5371,5378,5386,5394,5401,5408,5416,5426,5431,5437,5443,5449,5457,5469,5479,5485,5492,5502,5512,5524,5533,5538,5545,5554],{"__ignoreMap":30},[35,2651,2652,2655],{"class":37,"line":38},[35,2653,2654],{"class":93},"environments",[35,2656,2657],{"class":86},":\n",[35,2659,2660],{"class":37,"line":90},[35,2661,2663],{"class":2662},"sWuyu","  # name: 环境名，点击该环境对应的部署按钮将触发 .cnb.yml 中的 tag_deploy.development 事件流水线\n",[35,2665,2666,2669,2672,2674],{"class":37,"line":112},[35,2667,2668],{"class":86},"  -",[35,2670,2671],{"class":93}," name",[35,2673,59],{"class":86},[35,2675,2676],{"class":45}," development\n",[35,2678,2679,2682,2684],{"class":37,"line":162},[35,2680,2681],{"class":93},"    description",[35,2683,59],{"class":86},[35,2685,2686],{"class":45}," Development environment\n",[35,2688,2689],{"class":37,"line":166},[35,2690,2691],{"class":2662},"    # 环境变量（触发流水线时，会将环境变量传入流水线，包括部署流水线、web_trigger 流水线）\n",[35,2693,2694,2697],{"class":37,"line":170},[35,2695,2696],{"class":93},"    env",[35,2698,2657],{"class":86},[35,2700,2701,2704,2706],{"class":37,"line":174},[35,2702,2703],{"class":93},"      name",[35,2705,59],{"class":86},[35,2707,2676],{"class":45},[35,2709,2710],{"class":37,"line":178},[35,2711,2712],{"class":2662},"      # CNB_BRANCH: 环境变量，部署事件中，为 tag 名\n",[35,2714,2715,2718,2720],{"class":37,"line":181},[35,2716,2717],{"class":93},"      tag_name",[35,2719,59],{"class":86},[35,2721,2722],{"class":45}," $CNB_BRANCH\n",[35,2724,2725],{"class":37,"line":185},[35,2726,2727],{"class":2662},"    # 部署按钮权限控制\n",[35,2729,2730],{"class":37,"line":1000},[35,2731,2732],{"class":2662},"    # 不配置：有仓库写权限和 tag_push 权限的用户可点击部署按钮\n",[35,2734,2735],{"class":37,"line":1025},[35,2736,2737],{"class":2662},"    # 配置：有仓库写权限，且满足 roles 或 users 其中之一才有权限点击部署按钮\n",[35,2739,2740,2743],{"class":37,"line":1256},[35,2741,2742],{"class":93},"    permissions",[35,2744,2657],{"class":86},[35,2746,2747],{"class":37,"line":164},[35,2748,2749],{"class":2662},"      # roles 和 users 配置其中之一或都配置均可，二者满足其一即可\n",[35,2751,2753],{"class":37,"line":2752},15,[35,2754,2755],{"class":2662},"      # 角色非向上包含关系。例如如下配置，表示仅 master 或 developer 角色才有权限，owner 即使仓库权限更高，但此处无权限\n",[35,2757,2758,2761],{"class":37,"line":157},[35,2759,2760],{"class":93},"      roles",[35,2762,2657],{"class":86},[35,2764,2766,2769],{"class":37,"line":2765},17,[35,2767,2768],{"class":86},"        -",[35,2770,2771],{"class":45}," master\n",[35,2773,2774,2776],{"class":37,"line":864},[35,2775,2768],{"class":86},[35,2777,2778],{"class":45}," developer\n",[35,2780,2781,2784],{"class":37,"line":881},[35,2782,2783],{"class":93},"      users",[35,2785,2657],{"class":86},[35,2787,2788,2790],{"class":37,"line":1009},[35,2789,2768],{"class":86},[35,2791,2792],{"class":45}," name1\n",[35,2794,2796,2798],{"class":37,"line":2795},21,[35,2797,2768],{"class":86},[35,2799,2800],{"class":45}," name2\n",[35,2802,2803,2805,2807,2809],{"class":37,"line":732},[35,2804,2668],{"class":86},[35,2806,2671],{"class":93},[35,2808,59],{"class":86},[35,2810,2811],{"class":45}," staging\n",[35,2813,2814,2816,2818],{"class":37,"line":461},[35,2815,2681],{"class":93},[35,2817,59],{"class":86},[35,2819,2820],{"class":45}," Staging environment\n",[35,2822,2824],{"class":37,"line":2823},24,[35,2825,2826],{"class":2662},"    # 自定义触发的部署流水线标题\n",[35,2828,2830],{"class":37,"line":2829},25,[35,2831,2832],{"class":2662},"    # title: 部署预发布环境\n",[35,2834,2835,2837],{"class":37,"line":1396},[35,2836,2696],{"class":93},[35,2838,2657],{"class":86},[35,2840,2841,2843,2845],{"class":37,"line":1528},[35,2842,2703],{"class":93},[35,2844,59],{"class":86},[35,2846,2811],{"class":45},[35,2848,2849],{"class":37,"line":1674},[35,2850,2712],{"class":2662},[35,2852,2853,2855,2857],{"class":37,"line":472},[35,2854,2717],{"class":93},[35,2856,59],{"class":86},[35,2858,2722],{"class":45},[35,2860,2861],{"class":37,"line":1014},[35,2862,2863],{"emptyLinePlaceholder":201},"\n",[35,2865,2866,2868,2870,2872],{"class":37,"line":1937},[35,2867,2668],{"class":86},[35,2869,2671],{"class":93},[35,2871,59],{"class":86},[35,2873,2874],{"class":45}," production\n",[35,2876,2877,2879,2881],{"class":37,"line":183},[35,2878,2681],{"class":93},[35,2880,59],{"class":86},[35,2882,2883],{"class":45}," Production environment\n",[35,2885,2886],{"class":37,"line":729},[35,2887,2691],{"class":2662},[35,2889,2891,2893],{"class":37,"line":2890},34,[35,2892,2696],{"class":93},[35,2894,2657],{"class":86},[35,2896,2897,2899,2901],{"class":37,"line":740},[35,2898,2703],{"class":93},[35,2900,59],{"class":86},[35,2902,2874],{"class":45},[35,2904,2905],{"class":37,"line":187},[35,2906,2712],{"class":2662},[35,2908,2909,2911,2913],{"class":37,"line":329},[35,2910,2717],{"class":93},[35,2912,59],{"class":86},[35,2914,2722],{"class":45},[35,2916,2917,2920],{"class":37,"line":873},[35,2918,2919],{"class":93},"    button",[35,2921,2657],{"class":86},[35,2923,2924,2927,2929,2931],{"class":37,"line":1814},[35,2925,2926],{"class":86},"      -",[35,2928,2671],{"class":93},[35,2930,59],{"class":86},[35,2932,2933],{"class":45}," 按钮名1\n",[35,2935,2937],{"class":37,"line":2936},40,[35,2938,2939],{"class":2662},"        # 如存在，则将作为流水线 title，否则流水线使用默认 title；可支持环境变量替换（仅支持替换一级，环境变量指的是当前配置的 env 和 inputs。仅支持 ${xxx} 写法。）\n",[35,2941,2942,2945,2947],{"class":37,"line":1017},[35,2943,2944],{"class":93},"        description",[35,2946,59],{"class":86},[35,2948,2949],{"class":45}," 按钮描述\n",[35,2951,2952],{"class":37,"line":884},[35,2953,2954],{"class":2662},"        # 触发的 CI 事件名，需要在 .cnb.yml 中配置\n",[35,2956,2957,2960,2962],{"class":37,"line":154},[35,2958,2959],{"class":93},"        event",[35,2961,59],{"class":86},[35,2963,2964],{"class":45}," web_trigger_one\n",[35,2966,2967],{"class":37,"line":876},[35,2968,2969],{"class":2662},"        # 是否默认按钮\n",[35,2971,2972,2975,2977],{"class":37,"line":1006},[35,2973,2974],{"class":93},"        isDefault",[35,2976,59],{"class":86},[35,2978,2980],{"class":2979},"sbKd-"," false\n",[35,2982,2983],{"class":37,"line":1817},[35,2984,2985],{"class":2662},"        # 权限控制，不配置则有仓库写权限的用户可触发构建\n",[35,2987,2988],{"class":37,"line":1803},[35,2989,2990],{"class":2662},"        # 如果配置，则需要有仓库写权限，并且满足 roles 或 users 其中之一才有权限触发构建\n",[35,2992,2993],{"class":37,"line":743},[35,2994,2995],{"class":2662},"        # 注意：仅支持在页面检查 permissions 权限\n",[35,2997,2999,3002],{"class":37,"line":2998},49,[35,3000,3001],{"class":93},"        permissions",[35,3003,2657],{"class":86},[35,3005,3007],{"class":37,"line":3006},50,[35,3008,3009],{"class":2662},"          # roles 和 users 配置其中之一或都配置均可，二者满足其一即可\n",[35,3011,3012],{"class":37,"line":1679},[35,3013,3014],{"class":2662},"          # 角色非向上包含关系。例如如下配置，表示仅 master 或 developer 角色才有权限，owner 即使仓库权限更高，但此处无权限\n",[35,3016,3017,3020],{"class":37,"line":316},[35,3018,3019],{"class":93},"          roles",[35,3021,2657],{"class":86},[35,3023,3025,3028],{"class":37,"line":3024},53,[35,3026,3027],{"class":86},"            -",[35,3029,2771],{"class":45},[35,3031,3032,3034],{"class":37,"line":469},[35,3033,3027],{"class":86},[35,3035,2778],{"class":45},[35,3037,3038,3041],{"class":37,"line":172},[35,3039,3040],{"class":93},"          users",[35,3042,2657],{"class":86},[35,3044,3045,3047],{"class":37,"line":726},[35,3046,3027],{"class":86},[35,3048,2792],{"class":45},[35,3050,3051,3053],{"class":37,"line":160},[35,3052,3027],{"class":86},[35,3054,2800],{"class":45},[35,3056,3058],{"class":37,"line":3057},58,[35,3059,3060],{"class":2662},"        # 环境变量\n",[35,3062,3064,3067],{"class":37,"line":3063},59,[35,3065,3066],{"class":93},"        env",[35,3068,2657],{"class":86},[35,3070,3071],{"class":37,"line":313},[35,3072,3073],{"class":2662},"          # 默认传入的环境变量，其中 key 值（a,b,c）为环境变量名，支持如下两种格式\n",[35,3075,3076,3079,3081],{"class":37,"line":1798},[35,3077,3078],{"class":93},"          a",[35,3080,59],{"class":86},[35,3082,3084],{"class":3083},"sYRBq"," 1\n",[35,3086,3088,3091,3093],{"class":37,"line":3087},62,[35,3089,3090],{"class":93},"          b",[35,3092,59],{"class":86},[35,3094,3095],{"class":3083}," 2\n",[35,3097,3098,3101],{"class":37,"line":1533},[35,3099,3100],{"class":93},"          c",[35,3102,2657],{"class":86},[35,3104,3105],{"class":37,"line":321},[35,3106,3107],{"class":2662},"            # 环境变量别名\n",[35,3109,3110,3113,3115],{"class":37,"line":326},[35,3111,3112],{"class":93},"            name",[35,3114,59],{"class":86},[35,3116,3117],{"class":45}," 变量c\n",[35,3119,3121],{"class":37,"line":3120},66,[35,3122,3123],{"class":2662},"            # 环境变量值\n",[35,3125,3126,3129,3131],{"class":37,"line":466},[35,3127,3128],{"class":93},"            value",[35,3130,59],{"class":86},[35,3132,3133],{"class":3083}," 3\n",[35,3135,3136],{"class":37,"line":1947},[35,3137,3138],{"class":2662},"        # 可输入环境变量，可覆盖上述 env 的变量配置\n",[35,3140,3141,3144],{"class":37,"line":1540},[35,3142,3143],{"class":93},"        inputs",[35,3145,2657],{"class":86},[35,3147,3148],{"class":37,"line":1003},[35,3149,3150],{"class":2662},"          # 目前支持以下三种格式：输入框（input）、多行文本输入框（textarea）、下拉选择框（select 支持单选和多选），switch 开关（switch），radio 单选框（radio）\n",[35,3152,3153],{"class":37,"line":1391},[35,3154,3155],{"class":2662},"          # 其中 key 值（var1、var2、var3、var4、var5、var6）为环境变量名\n",[35,3157,3158],{"class":37,"line":1266},[35,3159,3160],{"class":2662},"          # inputs 也支持分组，见下方按钮二 inputs 配置\n",[35,3162,3163,3166],{"class":37,"line":337},[35,3164,3165],{"class":93},"          var1",[35,3167,2657],{"class":86},[35,3169,3170],{"class":37,"line":332},[35,3171,3172],{"class":2662},"            # 输入框\n",[35,3174,3175,3177,3179],{"class":37,"line":1022},[35,3176,3112],{"class":93},[35,3178,59],{"class":86},[35,3180,3181],{"class":45}," 变量1\n",[35,3183,3185,3188,3190],{"class":37,"line":3184},76,[35,3186,3187],{"class":93},"            description",[35,3189,59],{"class":86},[35,3191,3192],{"class":45}," 变量1描述\n",[35,3194,3195,3198,3200],{"class":37,"line":475},[35,3196,3197],{"class":93},"            placeholder",[35,3199,59],{"class":86},[35,3201,3202],{"class":45}," 请输入变量1\n",[35,3204,3206,3209,3211,3214],{"class":37,"line":3205},78,[35,3207,3208],{"class":93},"            required",[35,3210,59],{"class":86},[35,3212,3213],{"class":2979}," true",[35,3215,3216],{"class":2662}," # 是否必填\n",[35,3218,3220,3223,3225],{"class":37,"line":3219},79,[35,3221,3222],{"class":93},"            type",[35,3224,59],{"class":86},[35,3226,3227],{"class":45}," input\n",[35,3229,3230,3233,3235],{"class":37,"line":737},[35,3231,3232],{"class":93},"            default",[35,3234,59],{"class":86},[35,3236,3237],{"class":45}," 默认值1\n",[35,3239,3240,3243],{"class":37,"line":1253},[35,3241,3242],{"class":93},"          var2",[35,3244,2657],{"class":86},[35,3246,3247],{"class":37,"line":612},[35,3248,3172],{"class":2662},[35,3250,3252,3254,3256],{"class":37,"line":3251},83,[35,3253,3112],{"class":93},[35,3255,59],{"class":86},[35,3257,3258],{"class":45}," 变量2\n",[35,3260,3261,3263,3265],{"class":37,"line":609},[35,3262,3187],{"class":93},[35,3264,59],{"class":86},[35,3266,3267],{"class":45}," 变量2描述\n",[35,3269,3270,3272,3274],{"class":37,"line":1667},[35,3271,3197],{"class":93},[35,3273,59],{"class":86},[35,3275,3276],{"class":45}," 请输入变量2\n",[35,3278,3279,3281,3283],{"class":37,"line":1261},[35,3280,3208],{"class":93},[35,3282,59],{"class":86},[35,3284,3285],{"class":2979}," true\n",[35,3287,3288,3290,3292],{"class":37,"line":1382},[35,3289,3222],{"class":93},[35,3291,59],{"class":86},[35,3293,3294],{"class":45}," textarea\n",[35,3296,3298,3300,3302],{"class":37,"line":3297},88,[35,3299,3232],{"class":93},[35,3301,59],{"class":86},[35,3303,3304],{"class":45}," 默认值2\n",[35,3306,3307,3310],{"class":37,"line":176},[35,3308,3309],{"class":93},"          var3",[35,3311,2657],{"class":86},[35,3313,3314],{"class":37,"line":484},[35,3315,3316],{"class":2662},"            # 单选下拉选择框\n",[35,3318,3319,3321,3323],{"class":37,"line":861},[35,3320,3112],{"class":93},[35,3322,59],{"class":86},[35,3324,3325],{"class":45}," 变量3\n",[35,3327,3328,3330,3332],{"class":37,"line":168},[35,3329,3187],{"class":93},[35,3331,59],{"class":86},[35,3333,3334],{"class":45}," 变量3描述\n",[35,3336,3338,3340,3342],{"class":37,"line":3337},93,[35,3339,3197],{"class":93},[35,3341,59],{"class":86},[35,3343,3344],{"class":45}," 请选择变量3\n",[35,3346,3347,3349,3351],{"class":37,"line":1399},[35,3348,3208],{"class":93},[35,3350,59],{"class":86},[35,3352,2980],{"class":2979},[35,3354,3356,3358,3360],{"class":37,"line":3355},95,[35,3357,3222],{"class":93},[35,3359,59],{"class":86},[35,3361,3362],{"class":45}," select\n",[35,3364,3366,3368,3370],{"class":37,"line":3365},96,[35,3367,3232],{"class":93},[35,3369,59],{"class":86},[35,3371,3372],{"class":45}," value1\n",[35,3374,3375,3378],{"class":37,"line":481},[35,3376,3377],{"class":93},"            options",[35,3379,2657],{"class":86},[35,3381,3383,3386,3388,3390],{"class":37,"line":3382},98,[35,3384,3385],{"class":86},"              -",[35,3387,2671],{"class":93},[35,3389,59],{"class":86},[35,3391,3392],{"class":45}," 选项1\n",[35,3394,3395,3398,3400],{"class":37,"line":478},[35,3396,3397],{"class":93},"                value",[35,3399,59],{"class":86},[35,3401,3372],{"class":45},[35,3403,3404,3407,3409],{"class":37,"line":1940},[35,3405,3406],{"class":93},"                description",[35,3408,59],{"class":86},[35,3410,3411],{"class":45}," 选项1描述\n",[35,3413,3415,3417,3419,3421],{"class":37,"line":3414},101,[35,3416,3385],{"class":86},[35,3418,2671],{"class":93},[35,3420,59],{"class":86},[35,3422,3423],{"class":45}," 选项2\n",[35,3425,3427,3429,3431],{"class":37,"line":3426},102,[35,3428,3397],{"class":93},[35,3430,59],{"class":86},[35,3432,3433],{"class":45}," value2\n",[35,3435,3437,3439,3441],{"class":37,"line":3436},103,[35,3438,3406],{"class":93},[35,3440,59],{"class":86},[35,3442,3443],{"class":45}," 选项2描述\n",[35,3445,3447,3450],{"class":37,"line":3446},104,[35,3448,3449],{"class":93},"          var4",[35,3451,2657],{"class":86},[35,3453,3455],{"class":37,"line":3454},105,[35,3456,3457],{"class":2662},"            # 多选下拉选择框\n",[35,3459,3461,3463,3465],{"class":37,"line":3460},106,[35,3462,3112],{"class":93},[35,3464,59],{"class":86},[35,3466,3467],{"class":45}," 变量4\n",[35,3469,3471,3473,3475],{"class":37,"line":3470},107,[35,3472,3187],{"class":93},[35,3474,59],{"class":86},[35,3476,3477],{"class":45}," 变量4描述\n",[35,3479,3481,3483,3485],{"class":37,"line":3480},108,[35,3482,3197],{"class":93},[35,3484,59],{"class":86},[35,3486,3487],{"class":45}," 请选择变量4\n",[35,3489,3491,3493,3495],{"class":37,"line":3490},109,[35,3492,3208],{"class":93},[35,3494,59],{"class":86},[35,3496,2980],{"class":2979},[35,3498,3499,3501,3503],{"class":37,"line":1695},[35,3500,3222],{"class":93},[35,3502,59],{"class":86},[35,3504,3362],{"class":45},[35,3506,3508],{"class":37,"line":3507},111,[35,3509,3510],{"class":2662},"            # 是否支持多选，多选结果用分号分隔\n",[35,3512,3514,3517,3519],{"class":37,"line":3513},112,[35,3515,3516],{"class":93},"            multiple",[35,3518,59],{"class":86},[35,3520,3285],{"class":2979},[35,3522,3524,3526,3528],{"class":37,"line":3523},113,[35,3525,3232],{"class":93},[35,3527,59],{"class":86},[35,3529,3530],{"class":45}," value1,value2\n",[35,3532,3534,3536],{"class":37,"line":3533},114,[35,3535,3377],{"class":93},[35,3537,2657],{"class":86},[35,3539,3541,3543,3545,3547],{"class":37,"line":3540},115,[35,3542,3385],{"class":86},[35,3544,2671],{"class":93},[35,3546,59],{"class":86},[35,3548,3392],{"class":45},[35,3550,3552,3554,3556],{"class":37,"line":3551},116,[35,3553,3397],{"class":93},[35,3555,59],{"class":86},[35,3557,3372],{"class":45},[35,3559,3561,3563,3565],{"class":37,"line":3560},117,[35,3562,3406],{"class":93},[35,3564,59],{"class":86},[35,3566,3411],{"class":45},[35,3568,3570,3572,3574,3576],{"class":37,"line":3569},118,[35,3571,3385],{"class":86},[35,3573,2671],{"class":93},[35,3575,59],{"class":86},[35,3577,3423],{"class":45},[35,3579,3581,3583,3585],{"class":37,"line":3580},119,[35,3582,3397],{"class":93},[35,3584,59],{"class":86},[35,3586,3433],{"class":45},[35,3588,3590,3592,3594],{"class":37,"line":3589},120,[35,3591,3406],{"class":93},[35,3593,59],{"class":86},[35,3595,3443],{"class":45},[35,3597,3599,3601,3603,3605],{"class":37,"line":3598},121,[35,3600,3385],{"class":86},[35,3602,2671],{"class":93},[35,3604,59],{"class":86},[35,3606,3607],{"class":45}," 选项3\n",[35,3609,3611,3613,3615],{"class":37,"line":3610},122,[35,3612,3397],{"class":93},[35,3614,59],{"class":86},[35,3616,3617],{"class":45}," value3\n",[35,3619,3621,3623,3625],{"class":37,"line":3620},123,[35,3622,3406],{"class":93},[35,3624,59],{"class":86},[35,3626,3627],{"class":45}," 选项3描述\n",[35,3629,3631,3634],{"class":37,"line":3630},124,[35,3632,3633],{"class":93},"          var5",[35,3635,2657],{"class":86},[35,3637,3639],{"class":37,"line":3638},125,[35,3640,3641],{"class":2662},"            # switch 开关\n",[35,3643,3645,3647,3649],{"class":37,"line":3644},126,[35,3646,3112],{"class":93},[35,3648,59],{"class":86},[35,3650,3651],{"class":45}," 变量5\n",[35,3653,3655,3657,3659],{"class":37,"line":3654},127,[35,3656,3187],{"class":93},[35,3658,59],{"class":86},[35,3660,3661],{"class":45}," 变量5描述\n",[35,3663,3665,3667,3669],{"class":37,"line":3664},128,[35,3666,3208],{"class":93},[35,3668,59],{"class":86},[35,3670,2980],{"class":2979},[35,3672,3674,3676,3678],{"class":37,"line":3673},129,[35,3675,3222],{"class":93},[35,3677,59],{"class":86},[35,3679,3680],{"class":45}," switch\n",[35,3682,3684,3686,3688],{"class":37,"line":3683},130,[35,3685,3232],{"class":93},[35,3687,59],{"class":86},[35,3689,3372],{"class":45},[35,3691,3693,3695],{"class":37,"line":3692},131,[35,3694,3377],{"class":93},[35,3696,2657],{"class":86},[35,3698,3700,3702,3704,3706],{"class":37,"line":3699},132,[35,3701,3385],{"class":86},[35,3703,2671],{"class":93},[35,3705,59],{"class":86},[35,3707,3392],{"class":45},[35,3709,3711,3713,3715],{"class":37,"line":3710},133,[35,3712,3397],{"class":93},[35,3714,59],{"class":86},[35,3716,3372],{"class":45},[35,3718,3720,3722,3724],{"class":37,"line":3719},134,[35,3721,3406],{"class":93},[35,3723,59],{"class":86},[35,3725,3411],{"class":45},[35,3727,3729,3731,3733,3735],{"class":37,"line":3728},135,[35,3730,3385],{"class":86},[35,3732,2671],{"class":93},[35,3734,59],{"class":86},[35,3736,3423],{"class":45},[35,3738,3740,3742,3744],{"class":37,"line":3739},136,[35,3741,3397],{"class":93},[35,3743,59],{"class":86},[35,3745,3433],{"class":45},[35,3747,3749,3751,3753],{"class":37,"line":3748},137,[35,3750,3406],{"class":93},[35,3752,59],{"class":86},[35,3754,3443],{"class":45},[35,3756,3758,3761],{"class":37,"line":3757},138,[35,3759,3760],{"class":93},"          var6",[35,3762,2657],{"class":86},[35,3764,3766],{"class":37,"line":3765},139,[35,3767,3768],{"class":2662},"            # radio 单选框\n",[35,3770,3772,3774,3776],{"class":37,"line":3771},140,[35,3773,3112],{"class":93},[35,3775,59],{"class":86},[35,3777,3778],{"class":45}," 变量6\n",[35,3780,3782,3784,3786],{"class":37,"line":3781},141,[35,3783,3187],{"class":93},[35,3785,59],{"class":86},[35,3787,3788],{"class":45}," 选择变量6\n",[35,3790,3792,3794,3796],{"class":37,"line":3791},142,[35,3793,3208],{"class":93},[35,3795,59],{"class":86},[35,3797,2980],{"class":2979},[35,3799,3801,3803,3805],{"class":37,"line":3800},143,[35,3802,3222],{"class":93},[35,3804,59],{"class":86},[35,3806,3807],{"class":45}," radio\n",[35,3809,3811,3813,3815],{"class":37,"line":3810},144,[35,3812,3232],{"class":93},[35,3814,59],{"class":86},[35,3816,3372],{"class":45},[35,3818,3820,3822],{"class":37,"line":3819},145,[35,3821,3377],{"class":93},[35,3823,2657],{"class":86},[35,3825,3827,3829,3831,3833],{"class":37,"line":3826},146,[35,3828,3385],{"class":86},[35,3830,2671],{"class":93},[35,3832,59],{"class":86},[35,3834,3392],{"class":45},[35,3836,3838,3840,3842],{"class":37,"line":3837},147,[35,3839,3397],{"class":93},[35,3841,59],{"class":86},[35,3843,3372],{"class":45},[35,3845,3847,3849,3851],{"class":37,"line":3846},148,[35,3848,3406],{"class":93},[35,3850,59],{"class":86},[35,3852,3411],{"class":45},[35,3854,3856,3858,3860,3862],{"class":37,"line":3855},149,[35,3857,3385],{"class":86},[35,3859,2671],{"class":93},[35,3861,59],{"class":86},[35,3863,3423],{"class":45},[35,3865,3867,3869,3871],{"class":37,"line":3866},150,[35,3868,3397],{"class":93},[35,3870,59],{"class":86},[35,3872,3433],{"class":45},[35,3874,3876,3878,3880],{"class":37,"line":3875},151,[35,3877,3406],{"class":93},[35,3879,59],{"class":86},[35,3881,3443],{"class":45},[35,3883,3885,3887,3889,3891],{"class":37,"line":3884},152,[35,3886,2926],{"class":86},[35,3888,2671],{"class":93},[35,3890,59],{"class":86},[35,3892,3893],{"class":45}," 按钮名2\n",[35,3895,3897,3899,3901],{"class":37,"line":3896},153,[35,3898,2944],{"class":93},[35,3900,59],{"class":86},[35,3902,2949],{"class":45},[35,3904,3906,3908,3910],{"class":37,"line":3905},154,[35,3907,2959],{"class":93},[35,3909,59],{"class":86},[35,3911,3912],{"class":45}," web_trigger_two\n",[35,3914,3916,3918],{"class":37,"line":3915},155,[35,3917,3143],{"class":93},[35,3919,2657],{"class":86},[35,3921,3923],{"class":37,"line":3922},156,[35,3924,3925],{"class":2662},"          # inputs 支持分组，如下所示，用数组格式，每个数组元素代表一个分组。\n",[35,3927,3929],{"class":37,"line":3928},157,[35,3930,3931],{"class":2662},"          # 分组仅在页面显示上有区别，不影响实际的环境变量传入\n",[35,3933,3935,3938,3940,3942],{"class":37,"line":3934},158,[35,3936,3937],{"class":86},"          -",[35,3939,2671],{"class":93},[35,3941,59],{"class":86},[35,3943,3944],{"class":45}," 分组一\n",[35,3946,3948,3951],{"class":37,"line":3947},159,[35,3949,3950],{"class":93},"            inputs",[35,3952,2657],{"class":86},[35,3954,3956],{"class":37,"line":3955},160,[35,3957,3958],{"class":2662},"              # 目前支持以下三种格式：输入框（input）、多行文本输入框（textarea）、下拉选择框（select 支持单选和多选），switch 开关（switch），radio 单选框（radio）\n",[35,3960,3962],{"class":37,"line":3961},161,[35,3963,3964],{"class":2662},"              # 其中 key 值（var1、var2、var3、var4、var5、var6）为环境变量名\n",[35,3966,3968,3971],{"class":37,"line":3967},162,[35,3969,3970],{"class":93},"              var1",[35,3972,2657],{"class":86},[35,3974,3976],{"class":37,"line":3975},163,[35,3977,3978],{"class":2662},"                # 输入框\n",[35,3980,3982,3985,3987],{"class":37,"line":3981},164,[35,3983,3984],{"class":93},"                name",[35,3986,59],{"class":86},[35,3988,3181],{"class":45},[35,3990,3992,3994,3996],{"class":37,"line":3991},165,[35,3993,3406],{"class":93},[35,3995,59],{"class":86},[35,3997,3192],{"class":45},[35,3999,4001,4004,4006],{"class":37,"line":4000},166,[35,4002,4003],{"class":93},"                placeholder",[35,4005,59],{"class":86},[35,4007,3202],{"class":45},[35,4009,4011,4014,4016,4018],{"class":37,"line":4010},167,[35,4012,4013],{"class":93},"                required",[35,4015,59],{"class":86},[35,4017,3213],{"class":2979},[35,4019,3216],{"class":2662},[35,4021,4023,4026,4028],{"class":37,"line":4022},168,[35,4024,4025],{"class":93},"                type",[35,4027,59],{"class":86},[35,4029,3227],{"class":45},[35,4031,4033,4036,4038],{"class":37,"line":4032},169,[35,4034,4035],{"class":93},"                default",[35,4037,59],{"class":86},[35,4039,3237],{"class":45},[35,4041,4043,4046],{"class":37,"line":4042},170,[35,4044,4045],{"class":93},"              var2",[35,4047,2657],{"class":86},[35,4049,4051],{"class":37,"line":4050},171,[35,4052,3978],{"class":2662},[35,4054,4056,4058,4060],{"class":37,"line":4055},172,[35,4057,3984],{"class":93},[35,4059,59],{"class":86},[35,4061,3258],{"class":45},[35,4063,4065,4067,4069],{"class":37,"line":4064},173,[35,4066,3406],{"class":93},[35,4068,59],{"class":86},[35,4070,3267],{"class":45},[35,4072,4074,4076,4078],{"class":37,"line":4073},174,[35,4075,4003],{"class":93},[35,4077,59],{"class":86},[35,4079,3276],{"class":45},[35,4081,4083,4085,4087],{"class":37,"line":4082},175,[35,4084,4013],{"class":93},[35,4086,59],{"class":86},[35,4088,3285],{"class":2979},[35,4090,4092,4094,4096],{"class":37,"line":4091},176,[35,4093,4025],{"class":93},[35,4095,59],{"class":86},[35,4097,3294],{"class":45},[35,4099,4101,4103,4105],{"class":37,"line":4100},177,[35,4102,4035],{"class":93},[35,4104,59],{"class":86},[35,4106,3304],{"class":45},[35,4108,4110,4113],{"class":37,"line":4109},178,[35,4111,4112],{"class":93},"              var3",[35,4114,2657],{"class":86},[35,4116,4118],{"class":37,"line":4117},179,[35,4119,4120],{"class":2662},"                # 单选下拉选择框\n",[35,4122,4124,4126,4128],{"class":37,"line":4123},180,[35,4125,3984],{"class":93},[35,4127,59],{"class":86},[35,4129,3325],{"class":45},[35,4131,4133,4135,4137],{"class":37,"line":4132},181,[35,4134,3406],{"class":93},[35,4136,59],{"class":86},[35,4138,3334],{"class":45},[35,4140,4142,4144,4146],{"class":37,"line":4141},182,[35,4143,4003],{"class":93},[35,4145,59],{"class":86},[35,4147,3344],{"class":45},[35,4149,4151,4153,4155],{"class":37,"line":4150},183,[35,4152,4013],{"class":93},[35,4154,59],{"class":86},[35,4156,2980],{"class":2979},[35,4158,4160,4162,4164],{"class":37,"line":4159},184,[35,4161,4025],{"class":93},[35,4163,59],{"class":86},[35,4165,3362],{"class":45},[35,4167,4169,4171,4173],{"class":37,"line":4168},185,[35,4170,4035],{"class":93},[35,4172,59],{"class":86},[35,4174,3372],{"class":45},[35,4176,4178,4181],{"class":37,"line":4177},186,[35,4179,4180],{"class":93},"                options",[35,4182,2657],{"class":86},[35,4184,4186,4189,4191,4193],{"class":37,"line":4185},187,[35,4187,4188],{"class":86},"                  -",[35,4190,2671],{"class":93},[35,4192,59],{"class":86},[35,4194,3392],{"class":45},[35,4196,4197,4200,4202],{"class":37,"line":1038},[35,4198,4199],{"class":93},"                    value",[35,4201,59],{"class":86},[35,4203,3372],{"class":45},[35,4205,4207,4210,4212],{"class":37,"line":4206},189,[35,4208,4209],{"class":93},"                    description",[35,4211,59],{"class":86},[35,4213,3411],{"class":45},[35,4215,4217,4219,4221,4223],{"class":37,"line":4216},190,[35,4218,4188],{"class":86},[35,4220,2671],{"class":93},[35,4222,59],{"class":86},[35,4224,3423],{"class":45},[35,4226,4228,4230,4232],{"class":37,"line":4227},191,[35,4229,4199],{"class":93},[35,4231,59],{"class":86},[35,4233,3433],{"class":45},[35,4235,4237,4239,4241],{"class":37,"line":4236},192,[35,4238,4209],{"class":93},[35,4240,59],{"class":86},[35,4242,3443],{"class":45},[35,4244,4246,4248,4250,4252],{"class":37,"line":4245},193,[35,4247,3937],{"class":86},[35,4249,2671],{"class":93},[35,4251,59],{"class":86},[35,4253,4254],{"class":45}," 分组二\n",[35,4256,4258,4260],{"class":37,"line":4257},194,[35,4259,3950],{"class":93},[35,4261,2657],{"class":86},[35,4263,4265,4268],{"class":37,"line":4264},195,[35,4266,4267],{"class":93},"              var4",[35,4269,2657],{"class":86},[35,4271,4273],{"class":37,"line":4272},196,[35,4274,4275],{"class":2662},"                # 多选下拉选择框\n",[35,4277,4279,4281,4283],{"class":37,"line":4278},197,[35,4280,3984],{"class":93},[35,4282,59],{"class":86},[35,4284,3467],{"class":45},[35,4286,4288,4290,4292],{"class":37,"line":4287},198,[35,4289,3406],{"class":93},[35,4291,59],{"class":86},[35,4293,3477],{"class":45},[35,4295,4297,4299,4301],{"class":37,"line":4296},199,[35,4298,4003],{"class":93},[35,4300,59],{"class":86},[35,4302,3487],{"class":45},[35,4304,4306,4308,4310],{"class":37,"line":4305},200,[35,4307,4013],{"class":93},[35,4309,59],{"class":86},[35,4311,2980],{"class":2979},[35,4313,4315,4317,4319],{"class":37,"line":4314},201,[35,4316,4025],{"class":93},[35,4318,59],{"class":86},[35,4320,3362],{"class":45},[35,4322,4324],{"class":37,"line":4323},202,[35,4325,4326],{"class":2662},"                # 是否支持多选，多选结果用分号分隔\n",[35,4328,4330,4333,4335],{"class":37,"line":4329},203,[35,4331,4332],{"class":93},"                multiple",[35,4334,59],{"class":86},[35,4336,3285],{"class":2979},[35,4338,4340,4342,4344],{"class":37,"line":4339},204,[35,4341,4035],{"class":93},[35,4343,59],{"class":86},[35,4345,3530],{"class":45},[35,4347,4349,4351],{"class":37,"line":4348},205,[35,4350,4180],{"class":93},[35,4352,2657],{"class":86},[35,4354,4356,4358,4360,4362],{"class":37,"line":4355},206,[35,4357,4188],{"class":86},[35,4359,2671],{"class":93},[35,4361,59],{"class":86},[35,4363,3392],{"class":45},[35,4365,4367,4369,4371],{"class":37,"line":4366},207,[35,4368,4199],{"class":93},[35,4370,59],{"class":86},[35,4372,3372],{"class":45},[35,4374,4376,4378,4380],{"class":37,"line":4375},208,[35,4377,4209],{"class":93},[35,4379,59],{"class":86},[35,4381,3411],{"class":45},[35,4383,4385,4387,4389,4391],{"class":37,"line":4384},209,[35,4386,4188],{"class":86},[35,4388,2671],{"class":93},[35,4390,59],{"class":86},[35,4392,3423],{"class":45},[35,4394,4396,4398,4400],{"class":37,"line":4395},210,[35,4397,4199],{"class":93},[35,4399,59],{"class":86},[35,4401,3433],{"class":45},[35,4403,4405,4407,4409],{"class":37,"line":4404},211,[35,4406,4209],{"class":93},[35,4408,59],{"class":86},[35,4410,3443],{"class":45},[35,4412,4414,4416,4418,4420],{"class":37,"line":4413},212,[35,4415,4188],{"class":86},[35,4417,2671],{"class":93},[35,4419,59],{"class":86},[35,4421,3607],{"class":45},[35,4423,4425,4427,4429],{"class":37,"line":4424},213,[35,4426,4199],{"class":93},[35,4428,59],{"class":86},[35,4430,3617],{"class":45},[35,4432,4434,4436,4438],{"class":37,"line":4433},214,[35,4435,4209],{"class":93},[35,4437,59],{"class":86},[35,4439,3627],{"class":45},[35,4441,4443,4446],{"class":37,"line":4442},215,[35,4444,4445],{"class":93},"              var5",[35,4447,2657],{"class":86},[35,4449,4451],{"class":37,"line":4450},216,[35,4452,4453],{"class":2662},"                # switch 开关\n",[35,4455,4457,4459,4461],{"class":37,"line":4456},217,[35,4458,3984],{"class":93},[35,4460,59],{"class":86},[35,4462,3651],{"class":45},[35,4464,4466,4468,4470],{"class":37,"line":4465},218,[35,4467,3406],{"class":93},[35,4469,59],{"class":86},[35,4471,3661],{"class":45},[35,4473,4475,4477,4479],{"class":37,"line":4474},219,[35,4476,4013],{"class":93},[35,4478,59],{"class":86},[35,4480,2980],{"class":2979},[35,4482,4484,4486,4488],{"class":37,"line":4483},220,[35,4485,4025],{"class":93},[35,4487,59],{"class":86},[35,4489,3680],{"class":45},[35,4491,4493,4495,4497],{"class":37,"line":4492},221,[35,4494,4035],{"class":93},[35,4496,59],{"class":86},[35,4498,3372],{"class":45},[35,4500,4502,4504],{"class":37,"line":4501},222,[35,4503,4180],{"class":93},[35,4505,2657],{"class":86},[35,4507,4509,4511,4513,4515],{"class":37,"line":4508},223,[35,4510,4188],{"class":86},[35,4512,2671],{"class":93},[35,4514,59],{"class":86},[35,4516,3392],{"class":45},[35,4518,4520,4522,4524],{"class":37,"line":4519},224,[35,4521,4199],{"class":93},[35,4523,59],{"class":86},[35,4525,3372],{"class":45},[35,4527,4528,4530,4532],{"class":37,"line":501},[35,4529,4209],{"class":93},[35,4531,59],{"class":86},[35,4533,3411],{"class":45},[35,4535,4537,4539,4541,4543],{"class":37,"line":4536},226,[35,4538,4188],{"class":86},[35,4540,2671],{"class":93},[35,4542,59],{"class":86},[35,4544,3423],{"class":45},[35,4546,4548,4550,4552],{"class":37,"line":4547},227,[35,4549,4199],{"class":93},[35,4551,59],{"class":86},[35,4553,3433],{"class":45},[35,4555,4557,4559,4561],{"class":37,"line":4556},228,[35,4558,4209],{"class":93},[35,4560,59],{"class":86},[35,4562,3443],{"class":45},[35,4564,4566,4568,4570,4572],{"class":37,"line":4565},229,[35,4567,3937],{"class":86},[35,4569,2671],{"class":93},[35,4571,59],{"class":86},[35,4573,4574],{"class":45}," 分组三\n",[35,4576,4578,4580],{"class":37,"line":4577},230,[35,4579,3950],{"class":93},[35,4581,2657],{"class":86},[35,4583,4585,4588],{"class":37,"line":4584},231,[35,4586,4587],{"class":93},"              var6",[35,4589,2657],{"class":86},[35,4591,4593],{"class":37,"line":4592},232,[35,4594,4595],{"class":2662},"                # radio 单选框\n",[35,4597,4599,4601,4603],{"class":37,"line":4598},233,[35,4600,3984],{"class":93},[35,4602,59],{"class":86},[35,4604,3778],{"class":45},[35,4606,4607,4609,4611],{"class":37,"line":1419},[35,4608,3406],{"class":93},[35,4610,59],{"class":86},[35,4612,3788],{"class":45},[35,4614,4616,4618,4620],{"class":37,"line":4615},235,[35,4617,4013],{"class":93},[35,4619,59],{"class":86},[35,4621,2980],{"class":2979},[35,4623,4625,4627,4629],{"class":37,"line":4624},236,[35,4626,4025],{"class":93},[35,4628,59],{"class":86},[35,4630,3807],{"class":45},[35,4632,4634,4636,4638],{"class":37,"line":4633},237,[35,4635,4035],{"class":93},[35,4637,59],{"class":86},[35,4639,3372],{"class":45},[35,4641,4643,4645],{"class":37,"line":4642},238,[35,4644,4180],{"class":93},[35,4646,2657],{"class":86},[35,4648,4650,4652,4654,4656],{"class":37,"line":4649},239,[35,4651,4188],{"class":86},[35,4653,2671],{"class":93},[35,4655,59],{"class":86},[35,4657,3392],{"class":45},[35,4659,4661,4663,4665],{"class":37,"line":4660},240,[35,4662,4199],{"class":93},[35,4664,59],{"class":86},[35,4666,3372],{"class":45},[35,4668,4670,4672,4674],{"class":37,"line":4669},241,[35,4671,4209],{"class":93},[35,4673,59],{"class":86},[35,4675,3411],{"class":45},[35,4677,4679,4681,4683,4685],{"class":37,"line":4678},242,[35,4680,4188],{"class":86},[35,4682,2671],{"class":93},[35,4684,59],{"class":86},[35,4686,3423],{"class":45},[35,4688,4690,4692,4694],{"class":37,"line":4689},243,[35,4691,4199],{"class":93},[35,4693,59],{"class":86},[35,4695,3433],{"class":45},[35,4697,4699,4701,4703],{"class":37,"line":4698},244,[35,4700,4209],{"class":93},[35,4702,59],{"class":86},[35,4704,3443],{"class":45},[35,4706,4708],{"class":37,"line":4707},245,[35,4709,2863],{"emptyLinePlaceholder":201},[35,4711,4713],{"class":37,"line":4712},246,[35,4714,4715],{"class":2662},"    # 部署前置条件检查（支持对环境、元数据、审批流程的检查），满足所有前置条件才可进行部署操作\n",[35,4717,4719,4722],{"class":37,"line":4718},247,[35,4720,4721],{"class":93},"    require",[35,4723,2657],{"class":86},[35,4725,4726],{"class":37,"line":1561},[35,4727,4728],{"class":2662},"      # 1 对部署环境是否满足要求的检查\n",[35,4730,4731],{"class":37,"line":1560},[35,4732,2863],{"emptyLinePlaceholder":201},[35,4734,4736],{"class":37,"line":4735},250,[35,4737,4738],{"class":2662},"      # 1.1 要求 development 环境部署成功\n",[35,4740,4742,4744,4747,4749],{"class":37,"line":4741},251,[35,4743,2926],{"class":86},[35,4745,4746],{"class":93}," environmentName",[35,4748,59],{"class":86},[35,4750,2676],{"class":45},[35,4752,4754],{"class":37,"line":4753},252,[35,4755,2863],{"emptyLinePlaceholder":201},[35,4757,4759],{"class":37,"line":4758},253,[35,4760,4761],{"class":2662},"      # 1.2 要求 staging 环境部署成功 30 分钟后\n",[35,4763,4765,4767,4769,4771],{"class":37,"line":4764},254,[35,4766,2926],{"class":86},[35,4768,4746],{"class":93},[35,4770,59],{"class":86},[35,4772,2811],{"class":45},[35,4774,4776,4779,4781],{"class":37,"line":4775},255,[35,4777,4778],{"class":93},"        after",[35,4780,59],{"class":86},[35,4782,4783],{"class":3083}," 1800\n",[35,4785,4787],{"class":37,"line":4786},256,[35,4788,2863],{"emptyLinePlaceholder":201},[35,4790,4792],{"class":37,"line":4791},257,[35,4793,4794],{"class":2662},"      # 2 对元数据是否满足要求的检查\n",[35,4796,4798],{"class":37,"line":4797},258,[35,4799,2863],{"emptyLinePlaceholder":201},[35,4801,4803],{"class":37,"line":4802},259,[35,4804,4805],{"class":2662},"      # 2.1 键值 key1 对应的 value 不为空，即有值\n",[35,4807,4809,4811,4814,4816],{"class":37,"line":4808},260,[35,4810,2926],{"class":86},[35,4812,4813],{"class":93}," annotation",[35,4815,59],{"class":86},[35,4817,4818],{"class":45}," key1\n",[35,4820,4822],{"class":37,"line":4821},261,[35,4823,2863],{"emptyLinePlaceholder":201},[35,4825,4827],{"class":37,"line":4826},262,[35,4828,4829],{"class":2662},"      # 2.2 键值 key1 对应的 value 值需等于 value1\n",[35,4831,4833,4835,4837,4839],{"class":37,"line":4832},263,[35,4834,2926],{"class":86},[35,4836,4813],{"class":93},[35,4838,59],{"class":86},[35,4840,4818],{"class":45},[35,4842,4844,4847],{"class":37,"line":4843},264,[35,4845,4846],{"class":93},"        expect",[35,4848,2657],{"class":86},[35,4850,4852,4855,4857],{"class":37,"line":4851},265,[35,4853,4854],{"class":93},"          eq",[35,4856,59],{"class":86},[35,4858,3372],{"class":45},[35,4860,4862],{"class":37,"line":4861},266,[35,4863,2863],{"emptyLinePlaceholder":201},[35,4865,4867],{"class":37,"line":4866},267,[35,4868,4869],{"class":2662},"      # 2.3 键值 key2 对应的 value 值需大于 1 且小于 10\n",[35,4871,4873,4875,4877,4879],{"class":37,"line":4872},268,[35,4874,2926],{"class":86},[35,4876,4813],{"class":93},[35,4878,59],{"class":86},[35,4880,4881],{"class":45}," key2\n",[35,4883,4885,4887],{"class":37,"line":4884},269,[35,4886,4846],{"class":93},[35,4888,2657],{"class":86},[35,4890,4892,4895],{"class":37,"line":4891},270,[35,4893,4894],{"class":93},"          and",[35,4896,2657],{"class":86},[35,4898,4900,4903,4905],{"class":37,"line":4899},271,[35,4901,4902],{"class":93},"            gt",[35,4904,59],{"class":86},[35,4906,3084],{"class":3083},[35,4908,4910,4913,4915],{"class":37,"line":4909},272,[35,4911,4912],{"class":93},"            lt",[35,4914,59],{"class":86},[35,4916,4917],{"class":3083}," 10\n",[35,4919,4921],{"class":37,"line":4920},273,[35,4922,4923],{"class":2662},"        # 自定义按钮，点击可触发执行 web_trigger_annotation 事件。\n",[35,4925,4927],{"class":37,"line":4926},274,[35,4928,4929],{"class":2662},"        # 可定义与 require 信息有关的按钮事件，当 require 满足条件后隐藏按钮\n",[35,4931,4933,4936],{"class":37,"line":4932},275,[35,4934,4935],{"class":93},"        button",[35,4937,2657],{"class":86},[35,4939,4941,4943,4945,4947],{"class":37,"line":4940},276,[35,4942,3937],{"class":86},[35,4944,2671],{"class":93},[35,4946,59],{"class":86},[35,4948,4949],{"class":45}," 生成元数据\n",[35,4951,4953,4956,4958],{"class":37,"line":4952},277,[35,4954,4955],{"class":93},"            event",[35,4957,59],{"class":86},[35,4959,4960],{"class":45}," web_trigger_annotation\n",[35,4962,4964],{"class":37,"line":4963},278,[35,4965,4966],{"class":2662},"            # 如存在，则将作为流水线 title，否则流水线使用默认 title；可支持环境变量替换（仅支持替换一级，环境变量指的是当前配置的 env 和 inputs。仅支持 ${xxx} 写法。）\n",[35,4968,4970,4972,4974],{"class":37,"line":4969},279,[35,4971,3187],{"class":93},[35,4973,59],{"class":86},[35,4975,4976],{"class":45}," 生成元数据流程\n",[35,4978,4980],{"class":37,"line":4979},280,[35,4981,4982],{"class":2662},"            # 权限控制，不配置则有仓库写权限的用户可触发构建\n",[35,4984,4986],{"class":37,"line":4985},281,[35,4987,4988],{"class":2662},"            # 如果配置，则需要有仓库写权限，并且满足 roles 或 users 其中之一才有权限触发构建\n",[35,4990,4992],{"class":37,"line":4991},282,[35,4993,4994],{"class":2662},"            # 注意：仅支持在页面检查 permissions 权限\n",[35,4996,4998,5001],{"class":37,"line":4997},283,[35,4999,5000],{"class":93},"            permissions",[35,5002,2657],{"class":86},[35,5004,5006],{"class":37,"line":5005},284,[35,5007,5008],{"class":2662},"              # roles 和 users 配置其中之一或都配置均可，二者满足其一即可\n",[35,5010,5012],{"class":37,"line":5011},285,[35,5013,5014],{"class":2662},"              # 角色非向上包含关系。例如如下配置，表示仅 master 或 developer 角色才有权限，owner 即使仓库权限更高，但此处无权限\n",[35,5016,5018,5021],{"class":37,"line":5017},286,[35,5019,5020],{"class":93},"              roles",[35,5022,2657],{"class":86},[35,5024,5026,5029],{"class":37,"line":5025},287,[35,5027,5028],{"class":86},"                -",[35,5030,2771],{"class":45},[35,5032,5033,5035],{"class":37,"line":1280},[35,5034,5028],{"class":86},[35,5036,2778],{"class":45},[35,5038,5040,5043],{"class":37,"line":5039},289,[35,5041,5042],{"class":93},"              users",[35,5044,2657],{"class":86},[35,5046,5048,5050],{"class":37,"line":5047},290,[35,5049,5028],{"class":86},[35,5051,2792],{"class":45},[35,5053,5055,5057],{"class":37,"line":5054},291,[35,5056,5028],{"class":86},[35,5058,2800],{"class":45},[35,5060,5062],{"class":37,"line":5061},292,[35,5063,5064],{"class":2662},"            # 传给 web_trigger_annotation 事件流水线的环境变量\n",[35,5066,5068],{"class":37,"line":5067},293,[35,5069,5070],{"class":2662},"            # 可继承上一级别环境变量，优先级高于上一级别环境变量\n",[35,5072,5074,5077],{"class":37,"line":5073},294,[35,5075,5076],{"class":93},"            env",[35,5078,2657],{"class":86},[35,5080,5082,5085,5087],{"class":37,"line":5081},295,[35,5083,5084],{"class":93},"              name1",[35,5086,59],{"class":86},[35,5088,3372],{"class":45},[35,5090,5092,5095,5097],{"class":37,"line":5091},296,[35,5093,5094],{"class":93},"              name2",[35,5096,59],{"class":86},[35,5098,3433],{"class":45},[35,5100,5102],{"class":37,"line":5101},297,[35,5103,2863],{"emptyLinePlaceholder":201},[35,5105,5107],{"class":37,"line":5106},298,[35,5108,5109],{"class":2662},"      # 3 对审批流程是否满足要求的检查（可按以下方式自定义审批流程）\n",[35,5111,5113],{"class":37,"line":5112},299,[35,5114,5115],{"class":2662},"      # - 审批顺序：如下 1、2、3 审批流程需按顺序进行，即 1 审批通过，2 才能进行审批。1、2、3 审批流程全部通过才算通过审批\n",[35,5117,5119],{"class":37,"line":5118},300,[35,5120,5121],{"class":2662},"      # - 审批操作：包括 同意、拒绝。一人同意即算通过。如果拒绝，其他审批人无法再操作，直到拒绝的审批人再修改审批结果为同意\n",[35,5123,5125],{"class":37,"line":5124},301,[35,5126,2863],{"emptyLinePlaceholder":201},[35,5128,5130],{"class":37,"line":5129},302,[35,5131,5132],{"class":2662},"      # 3.1 按用户名审批，其中一人审批通过即可\n",[35,5134,5136,5138,5141],{"class":37,"line":5135},303,[35,5137,2926],{"class":86},[35,5139,5140],{"class":93}," approver",[35,5142,2657],{"class":86},[35,5144,5146,5148],{"class":37,"line":5145},304,[35,5147,3040],{"class":93},[35,5149,2657],{"class":86},[35,5151,5153,5155],{"class":37,"line":5152},305,[35,5154,3027],{"class":86},[35,5156,5157],{"class":45}," user1\n",[35,5159,5161,5163],{"class":37,"line":5160},306,[35,5162,3027],{"class":86},[35,5164,5165],{"class":45}," user2\n",[35,5167,5169,5171],{"class":37,"line":5168},307,[35,5170,3027],{"class":86},[35,5172,5173],{"class":45}," user3\n",[35,5175,5177],{"class":37,"line":5176},308,[35,5178,5179],{"class":2662},"        # 可配置点击同意按钮触发的事件，以及传给事件流水线的环境变量\n",[35,5181,5183],{"class":37,"line":5182},309,[35,5184,5185],{"class":2662},"        # agreeEvent:\n",[35,5187,5189],{"class":37,"line":5188},310,[35,5190,5191],{"class":2662},"        #   # 描述信息，会作为流水线 title\n",[35,5193,5195],{"class":37,"line":5194},311,[35,5196,5197],{"class":2662},"        #   description: 同意审批\n",[35,5199,5201],{"class":37,"line":5200},312,[35,5202,5203],{"class":2662},"        #   # 点击同意按钮时触发的事件名，仅支持 web_trigger 事件\n",[35,5205,5207],{"class":37,"line":5206},313,[35,5208,5209],{"class":2662},"        #   event: web_trigger_agree\n",[35,5211,5213],{"class":37,"line":5212},314,[35,5214,5215],{"class":2662},"        #   # 传给事件流水线的环境变量，不支持继承上一级别的环境变量\n",[35,5217,5219],{"class":37,"line":5218},315,[35,5220,5221],{"class":2662},"        #   env:\n",[35,5223,5225],{"class":37,"line":5224},316,[35,5226,5227],{"class":2662},"        #     name1: value1\n",[35,5229,5231],{"class":37,"line":5230},317,[35,5232,5233],{"class":2662},"        #     name2: value2\n",[35,5235,5237],{"class":37,"line":5236},318,[35,5238,5239],{"class":2662},"        # 可配置点击拒绝按钮触发的事件，以及传给事件流水线的环境变量\n",[35,5241,5243],{"class":37,"line":5242},319,[35,5244,5245],{"class":2662},"        # rejectEvent:\n",[35,5247,5249],{"class":37,"line":5248},320,[35,5250,5191],{"class":2662},[35,5252,5254],{"class":37,"line":5253},321,[35,5255,5256],{"class":2662},"        #   description: 拒绝审批\n",[35,5258,5260],{"class":37,"line":5259},322,[35,5261,5262],{"class":2662},"        #   # 点击拒绝按钮时触发的事件名，仅支持 web_trigger 事件\n",[35,5264,5266],{"class":37,"line":5265},323,[35,5267,5268],{"class":2662},"        #   event: web_trigger_reject\n",[35,5270,5272],{"class":37,"line":5271},324,[35,5273,5215],{"class":2662},[35,5275,5277],{"class":37,"line":5276},325,[35,5278,5221],{"class":2662},[35,5280,5282],{"class":37,"line":5281},326,[35,5283,5227],{"class":2662},[35,5285,5287],{"class":37,"line":5286},327,[35,5288,5233],{"class":2662},[35,5290,5292,5295,5297],{"class":37,"line":5291},328,[35,5293,5294],{"class":93},"        title",[35,5296,59],{"class":86},[35,5298,5299],{"class":45}," 测试审批\n",[35,5301,5303],{"class":37,"line":5302},329,[35,5304,2863],{"emptyLinePlaceholder":201},[35,5306,5308],{"class":37,"line":5307},330,[35,5309,5310],{"class":2662},"      # 3.2 按角色审批，其中一人审批通过即可\n",[35,5312,5314,5316,5318],{"class":37,"line":5313},331,[35,5315,2926],{"class":86},[35,5317,5140],{"class":93},[35,5319,2657],{"class":86},[35,5321,5323,5325],{"class":37,"line":5322},332,[35,5324,3019],{"class":93},[35,5326,2657],{"class":86},[35,5328,5330,5332],{"class":37,"line":5329},333,[35,5331,3027],{"class":86},[35,5333,2778],{"class":45},[35,5335,5337,5339],{"class":37,"line":5336},334,[35,5338,3027],{"class":86},[35,5340,2771],{"class":45},[35,5342,5344,5346,5348],{"class":37,"line":5343},335,[35,5345,5294],{"class":93},[35,5347,59],{"class":86},[35,5349,5350],{"class":45}," 开发审批\n",[35,5352,5354],{"class":37,"line":5353},336,[35,5355,2863],{"emptyLinePlaceholder":201},[35,5357,5359],{"class":37,"line":5358},337,[35,5360,5361],{"class":2662},"      # 3.3 按用户名或角色审批（审批人满足 users 或 roles 其一即可），其中一人审批通过才行\n",[35,5363,5365,5367,5369],{"class":37,"line":5364},338,[35,5366,2926],{"class":86},[35,5368,5140],{"class":93},[35,5370,2657],{"class":86},[35,5372,5374,5376],{"class":37,"line":5373},339,[35,5375,3040],{"class":93},[35,5377,2657],{"class":86},[35,5379,5381,5383],{"class":37,"line":5380},340,[35,5382,3027],{"class":86},[35,5384,5385],{"class":45}," user4\n",[35,5387,5389,5391],{"class":37,"line":5388},341,[35,5390,3027],{"class":86},[35,5392,5393],{"class":45}," user5\n",[35,5395,5397,5399],{"class":37,"line":5396},342,[35,5398,3019],{"class":93},[35,5400,2657],{"class":86},[35,5402,5404,5406],{"class":37,"line":5403},343,[35,5405,3027],{"class":86},[35,5407,2771],{"class":45},[35,5409,5411,5413],{"class":37,"line":5410},344,[35,5412,3027],{"class":86},[35,5414,5415],{"class":45}," owner\n",[35,5417,5419,5421,5423],{"class":37,"line":5418},345,[35,5420,5294],{"class":93},[35,5422,59],{"class":86},[35,5424,5425],{"class":45}," 运维审批\n",[35,5427,5429],{"class":37,"line":5428},346,[35,5430,2863],{"emptyLinePlaceholder":201},[35,5432,5434],{"class":37,"line":5433},347,[35,5435,5436],{"class":2662},"    # 自定义部署按钮（缺省值：默认展示一个部署按钮）\n",[35,5438,5440],{"class":37,"line":5439},348,[35,5441,5442],{"class":2662},"    # 使用场景：有多个不同模块（例如仓库、CI、制品库等），需要分开独立部署时，可以配置多个不同的按钮\n",[35,5444,5446],{"class":37,"line":5445},349,[35,5447,5448],{"class":2662},"    # 注意：部署流水线中要区分是哪个模块，可以通过传入流水线的环境变量来区分\n",[35,5450,5452,5455],{"class":37,"line":5451},350,[35,5453,5454],{"class":93},"    deploy",[35,5456,2657],{"class":86},[35,5458,5460,5462,5464,5466],{"class":37,"line":5459},351,[35,5461,2926],{"class":86},[35,5463,2671],{"class":93},[35,5465,59],{"class":86},[35,5467,5468],{"class":45}," 部署按钮名1\n",[35,5470,5472,5474,5476],{"class":37,"line":5471},352,[35,5473,2944],{"class":93},[35,5475,59],{"class":86},[35,5477,5478],{"class":45}," 部署按钮描述\n",[35,5480,5482],{"class":37,"line":5481},353,[35,5483,5484],{"class":2662},"        # 环境变量（触发部署流水线时，会将环境变量传入流水线），优先级高于上一级 env\n",[35,5486,5488,5490],{"class":37,"line":5487},354,[35,5489,3066],{"class":93},[35,5491,2657],{"class":86},[35,5493,5495,5498,5500],{"class":37,"line":5494},355,[35,5496,5497],{"class":93},"          name1",[35,5499,59],{"class":86},[35,5501,3372],{"class":45},[35,5503,5505,5508,5510],{"class":37,"line":5504},356,[35,5506,5507],{"class":93},"          name2",[35,5509,59],{"class":86},[35,5511,3433],{"class":45},[35,5513,5515,5517,5519,5521],{"class":37,"line":5514},357,[35,5516,2926],{"class":86},[35,5518,2671],{"class":93},[35,5520,59],{"class":86},[35,5522,5523],{"class":45}," 部署按钮名2\n",[35,5525,5527,5529,5531],{"class":37,"line":5526},358,[35,5528,2944],{"class":93},[35,5530,59],{"class":86},[35,5532,5478],{"class":45},[35,5534,5536],{"class":37,"line":5535},359,[35,5537,5484],{"class":2662},[35,5539,5541,5543],{"class":37,"line":5540},360,[35,5542,3066],{"class":93},[35,5544,2657],{"class":86},[35,5546,5548,5550,5552],{"class":37,"line":5547},361,[35,5549,5497],{"class":93},[35,5551,59],{"class":86},[35,5553,3372],{"class":45},[35,5555,5557,5559,5561],{"class":37,"line":5556},362,[35,5558,5507],{"class":93},[35,5560,59],{"class":86},[35,5562,3433],{"class":45},[123,5564,5565,5582,5588,5594,5600,5661,5924,5957],{},[126,5566,5567,5570,5571,5574,5575,5577,5578,5581],{},[32,5568,5569],{},"name",": 必填，环境名，需唯一。例如 ",[32,5572,5573],{},"name: development","，点击该环境对应的部署按钮，将触发 ",[32,5576,2400],{}," 中的 ",[32,5579,5580],{},"tag_deploy.development"," 事件流水线",[126,5583,5584,5587],{},[32,5585,5586],{},"description",": 选填，环境描述",[126,5589,5590,5593],{},[32,5591,5592],{},"title",": 选填，自定义触发的部署流水线标题",[126,5595,5596,5599],{},[32,5597,5598],{},"env",": 选填，传给部署流水线的环境变量。用户可根据需要传入需要的环境变量。",[126,5601,5602,5605,5606,5609,5610,5613,5614,5616,5617],{},[32,5603,5604],{},"permissions",": 选填，部署权限控制，满足 ",[32,5607,5608],{},"users"," 或 ",[32,5611,5612],{},"roles"," 其中之一即有权限部署（还需要有仓库写权限）。如果未配置 ",[32,5615,5604],{},"，则有仓库写权限和推送 Tag 权限即可触发构建",[123,5618,5619,5628],{},[126,5620,5621,5623,5624,5627],{},[32,5622,5608],{},": 选填，",[32,5625,5626],{},"Array\u003CString>","，用户名数组。可定义多个。",[126,5629,5630,5623,5632,5634,5635,5638,5639,5642,5643,5646,5647,5650,5651,5654,5655,5657,5658,5660],{},[32,5631,5612],{},[32,5633,5626],{},"，仓库角色数组。可定义多种仓库角色：\n",[32,5636,5637],{},"owner","(负责人)、",[32,5640,5641],{},"master","(管理员Administrator)、",[32,5644,5645],{},"developer","(开发者)、",[32,5648,5649],{},"reporter","(助手)、",[32,5652,5653],{},"guest","(访客)。角色非向上包含关系，例如仅声明了 ",[32,5656,5641],{}," 有权限，",[32,5659,5637],{}," 即使仓库权限更高，在此处也没有权限",[126,5662,5663,5666,5667],{},[32,5664,5665],{},"button",": 选填，对象数组格式，自定义按钮。点击按钮可触发云原生构建流水线，执行参数 event 对应的事件。",[123,5668,5669,5674,5679,5685,5694,5699,5741],{},[126,5670,5671,5673],{},[32,5672,5569],{},": 必填，按钮名。",[126,5675,5676,5678],{},[32,5677,5586],{},": 选填，按钮描述。如存在，则将作为流水线 title，否则流水线使用默认 title；可支持环境变量替换（仅支持替换一级，环境变量指的是当前配置的 env 和 inputs。仅支持 ${xxx} 写法。）。",[126,5680,5681,5684],{},[32,5682,5683],{},"event",": 必填，自定义事件，仅支持 web_trigger 事件。",[126,5686,5687,5623,5690,5693],{},[32,5688,5689],{},"isDefault",[32,5691,5692],{},"Boolean","，是否是默认按钮，仅支持设置一个默认按钮（设置多个取第一个）。如果设置了默认按钮，点击按钮直接出现默认按钮触发构建弹框。未设置默认按钮，则点击按钮弹出包含所有自定义按钮的弹出层。",[126,5695,5696,5698],{},[32,5697,5598],{},": 选填，传给 web_trigger 流水线的环境变量，可继承上一级别环境变量，优先级高于上一级别环境变量。",[126,5700,5701,5703,5704,5609,5706,5708,5709,5711,5712],{},[32,5702,5604],{},": 选填，权限控制，满足 ",[32,5705,5608],{},[32,5707,5612],{}," 其中之一即有权限触发构建（还需要有仓库写权限）。如果未配置 ",[32,5710,5604],{},"，则有仓库写权限即可触发构建。注意：仅支持在页面检查 permissions 权限",[123,5713,5714,5720],{},[126,5715,5716,5623,5718,5627],{},[32,5717,5608],{},[32,5719,5626],{},[126,5721,5722,5623,5724,5634,5726,5638,5728,5642,5730,5646,5732,5650,5734,5736,5737,5657,5739,5660],{},[32,5723,5612],{},[32,5725,5626],{},[32,5727,5637],{},[32,5729,5641],{},[32,5731,5645],{},[32,5733,5649],{},[32,5735,5653],{},"(访客)。\n角色非向上包含关系，例如仅声明了 ",[32,5738,5641],{},[32,5740,5637],{},[126,5742,5743,5623,5746,5749,5750,5753,5754,5892,5895,5897,5898,5901,5902],{},[32,5744,5745],{},"inputs",[32,5747,5748],{},"Object\u003CString, Input>","，可手动输入的环境变量，对象的键值为变量名，",[32,5751,5752],{},"Input"," 类型定义如下：",[123,5755,5756,5768,5776,5794,5802,5825,5833,5848],{},[126,5757,5758,5760,5761,5763,5764,5767],{},[32,5759,5569],{},"：",[32,5762,5569],{},"：必填，",[32,5765,5766],{},"String","，输入选项名称，非环境变量键值，仅用于页面展示",[126,5769,5770,5772,5773,5775],{},[32,5771,5586],{},"：选填，",[32,5774,5766],{},"，描述信息",[126,5777,5778,5772,5781,5783,5784,5609,5787,5609,5790,5793],{},[32,5779,5780],{},"placeholder",[32,5782,5766],{},"，输入框内提示信息。仅当 type=",[32,5785,5786],{},"input",[32,5788,5789],{},"textarea",[32,5791,5792],{},"select"," 时有效",[126,5795,5796,5772,5799,5801],{},[32,5797,5798],{},"required",[32,5800,5692],{},"，是否必填",[126,5803,5804,5772,5807,5809,5810,2634,5812,2634,5814,2634,5816,2634,5819,5822,5823],{},[32,5805,5806],{},"type",[32,5808,5766],{},"，输入框类型，可选 ",[32,5811,5786],{},[32,5813,5789],{},[32,5815,5792],{},[32,5817,5818],{},"switch",[32,5820,5821],{},"radio","，默认为 ",[32,5824,5786],{},[126,5826,5827,5623,5830,5832],{},[32,5828,5829],{},"default",[32,5831,5766],{},"，默认值",[126,5834,5835,5623,5838,5840,5841,5843,5844,5847],{},[32,5836,5837],{},"multiple",[32,5839,5692],{},"，是否支持多选，仅当 type=",[32,5842,5792],{}," 时有效，多选结果用分号分隔。单个选项的 ",[32,5845,5846],{},"value"," 中需避免出现逗号",[126,5849,5850,5623,5853,5856,5857,5609,5860,5863,5864,5867,5868],{},[32,5851,5852],{},"options",[32,5854,5855],{},"Array\u003COption>","，当 ",[32,5858,5859],{},"type: select",[32,5861,5862],{},"type: switch"," 时的选项。",[32,5865,5866],{},"Option"," 类型定义如下：\n",[123,5869,5870,5878,5885],{},[126,5871,5872,5874,5875,5877],{},[32,5873,5569],{},": 必填，",[32,5876,5766],{},"，选项名",[126,5879,5880,5874,5882,5884],{},[32,5881,5846],{},[32,5883,5766],{},"，选项值，作为环境变量值",[126,5886,5887,5623,5889,5891],{},[32,5888,5586],{},[32,5890,5766],{},"，选项描述信息",[5893,5894],"br",{},[32,5896,5745],{}," 也支持分组，",[32,5899,5900],{},"Array\u003CObject>","，每个数组元素是一个对象，表示一个分组，类型定义如下：",[123,5903,5904,5911],{},[126,5905,5906,5874,5908,5910],{},[32,5907,5569],{},[32,5909,5766],{},"，分组名称，非环境变量键值，仅用于页面展示",[126,5912,5913,5874,5915,5917,5918,5920,5921,5923],{},[32,5914,5745],{},[32,5916,5748],{},"，分组内环境变量定义，对象的键值为变量名，",[32,5919,5752],{}," 类型定义同上方 ",[32,5922,5752],{},"类型定义。",[126,5925,5926,5929,5930,5933,5934],{},[32,5927,5928],{},"deploy",": 选填，对象数组格式，自定义部署按钮。点击按钮可触发云原生构建流水线，执行部署事件（",[32,5931,5932],{},"tag_deploy.*","）。",[123,5935,5936,5940,5945,5952],{},[126,5937,5938,5673],{},[32,5939,5569],{},[126,5941,5942,5944],{},[32,5943,5586],{},": 选填，按钮描述。",[126,5946,5947,5949,5950],{},[32,5948,5592],{},": 选填，自定义触发的部署流水线标题。优先级高于上一级别 ",[32,5951,5592],{},[126,5953,5954,5956],{},[32,5955,5598],{},": 选填，传给部署流水线的环境变量，优先级高于上一级 env。",[126,5958,5959,5962,5963,5965,5966,6062,6064,6065,6229,6231,6232],{},[32,5960,5961],{},"require",": 选填，对象数组格式。部署的前置条件，需满足了前置条件（部署环境要求、元数据要求、审批流程）才可进行部署操作。",[5893,5964],{},"1、部署环境要求的参数包括",[123,5967,5968,5974,5983,5994],{},[126,5969,5970,5973],{},[32,5971,5972],{},"environmentName",": 必填。环境名。",[126,5975,5976,5979,5980,5982],{},[32,5977,5978],{},"after",": 选填。时间，单位 s(秒)。表示 ",[32,5981,5972],{}," 的环境部署成功后 after 时间后才算满足前置条件。",[126,5984,5985,5987,5988,5990,5991,5993],{},[32,5986,5586],{},": 选填。",[32,5989,5961],{}," 的描述信息，附注用户理解 ",[32,5992,5961],{}," 要求的内容。",[126,5995,5996,5998,5999],{},[32,5997,5665],{},": 选填。自定义按钮，点击可触发执行 event 传入的事件。可定义与 require 信息有关的按钮事件，注意：当 require 满足条件后隐藏按钮。",[123,6000,6001,6005,6014,6018,6022],{},[126,6002,6003,5673],{},[32,6004,5569],{},[126,6006,6007,6009,6010,6013],{},[32,6008,5683],{},": 必填，自定义事件，仅支持 ",[32,6011,6012],{},"web_trigger_*"," 事件。",[126,6015,6016,5678],{},[32,6017,5586],{},[126,6019,6020,5698],{},[32,6021,5598],{},[126,6023,6024,5703,6026,5609,6028,5708,6030,6032,6033],{},[32,6025,5604],{},[32,6027,5608],{},[32,6029,5612],{},[32,6031,5604],{},"，则有仓库写权限即可触发构建\n",[123,6034,6035,6041],{},[126,6036,6037,5623,6039,5627],{},[32,6038,5608],{},[32,6040,5626],{},[126,6042,6043,5623,6045,5634,6047,5638,6049,5642,6051,5646,6053,5650,6055,5736,6057,5657,6059,6061],{},[32,6044,5612],{},[32,6046,5626],{},[32,6048,5637],{},[32,6050,5641],{},[32,6052,5645],{},[32,6054,5649],{},[32,6056,5653],{},[32,6058,5641],{},[32,6060,5637],{}," 即使仓库权限更高，在此处也没有权限。",[5893,6063],{},"2、元数据要求的参数包括",[123,6066,6067,6077,6161,6169],{},[126,6068,6069,6072,6073,6076],{},[32,6070,6071],{},"annotation",": 必填。元数据的 ",[32,6074,6075],{},"key"," 值。",[126,6078,6079,6082,6083,6085,6086,2634,6089,2634,6092,2634,6095,2634,6098,2634,6101,2634,6104,2634,6107,2634,6110,6113,6114],{},[32,6080,6081],{},"expect",": 选填。对元数据的 ",[32,6084,5846],{}," 值的要求。对象格式，支持 ",[32,6087,6088],{},"eq",[32,6090,6091],{},"ne",[32,6093,6094],{},"gt",[32,6096,6097],{},"lt",[32,6099,6100],{},"gte",[32,6102,6103],{},"lte",[32,6105,6106],{},"and",[32,6108,6109],{},"or",[32,6111,6112],{},"reg"," 操作符。",[123,6115,6116,6121,6126,6131,6136,6141,6146,6151,6156],{},[126,6117,6118,6120],{},[32,6119,6088],{},": 等于",[126,6122,6123,6125],{},[32,6124,6091],{},": 不等于",[126,6127,6128,6130],{},[32,6129,6094],{},": 大于",[126,6132,6133,6135],{},[32,6134,6097],{},": 小于",[126,6137,6138,6140],{},[32,6139,6100],{},": 大于等于",[126,6142,6143,6145],{},[32,6144,6103],{},": 小于等于",[126,6147,6148,6150],{},[32,6149,6106],{},": 与",[126,6152,6153,6155],{},[32,6154,6109],{},": 或",[126,6157,6158,6160],{},[32,6159,6112],{},": 能和正则表达式匹配",[126,6162,6163,5987,6165,5990,6167,5993],{},[32,6164,5586],{},[32,6166,5961],{},[32,6168,5961],{},[126,6170,6171,5998,6173],{},[32,6172,5665],{},[123,6174,6175,6179,6183,6187,6191],{},[126,6176,6177,5673],{},[32,6178,5569],{},[126,6180,6181,5678],{},[32,6182,5586],{},[126,6184,6185,5684],{},[32,6186,5683],{},[126,6188,6189,5698],{},[32,6190,5598],{},[126,6192,6193,5703,6195,5609,6197,5708,6199,6032,6201],{},[32,6194,5604],{},[32,6196,5608],{},[32,6198,5612],{},[32,6200,5604],{},[123,6202,6203,6209],{},[126,6204,6205,5623,6207,5627],{},[32,6206,5608],{},[32,6208,5626],{},[126,6210,6211,5623,6213,5634,6215,5638,6217,5642,6219,5646,6221,5650,6223,5736,6225,5657,6227,5660],{},[32,6212,5612],{},[32,6214,5626],{},[32,6216,5637],{},[32,6218,5641],{},[32,6220,5645],{},[32,6222,5649],{},[32,6224,5653],{},[32,6226,5641],{},[32,6228,5637],{},[5893,6230],{},"3、审批流程要求的参数包括",[123,6233,6234,6269,6278,6304],{},[126,6235,6236,6239,6240,5609,6242,6245,6246],{},[32,6237,6238],{},"approver",": 必填，审批人定义，满足 ",[32,6241,5608],{},[32,6243,6244],{},"role"," 的审批人中，一人审批通过即可。\n",[123,6247,6248,6253],{},[126,6249,6250,6252],{},[32,6251,5608],{},": 用户名数组。可定义多个审批人。",[126,6254,6255,6257,6258,5638,6260,5642,6262,5646,6264,5650,6266,6268],{},[32,6256,5612],{},": 仓库角色数组。可定义多种仓库角色。\n",[32,6259,5637],{},[32,6261,5641],{},[32,6263,5645],{},[32,6265,5649],{},[32,6267,5653],{},"(访客)",[126,6270,6271,6273,6274,6277],{},[32,6272,5592],{},": 选填，审批标题，如 ",[32,6275,6276],{},"测试审批","。",[126,6279,6280,6283,6284],{},[32,6281,6282],{},"agreeEvent",": 选填，点击同意审批按钮成功后触发的事件\n",[123,6285,6286,6291,6299],{},[126,6287,6288,6290],{},[32,6289,5586],{},": 选填，描述信息，会作为流水线 title。",[126,6292,6293,6295,6296,6013],{},[32,6294,5683],{},": 必填，事件名，仅支持 ",[32,6297,6298],{},"web_trigger",[126,6300,6301,6303],{},[32,6302,5598],{},": 选填，传给流水线的环境变量，不支持继承上一级别的环境变量。",[126,6305,6306,6309,6310],{},[32,6307,6308],{},"rejectEvent",": 选填，点击拒绝审批按钮成功后触发的事件\n",[123,6311,6312,6316,6322],{},[126,6313,6314,6290],{},[32,6315,5586],{},[126,6317,6318,6295,6320,6013],{},[32,6319,5683],{},[32,6321,6298],{},[126,6323,6324,6303],{},[32,6325,5598],{},[21,6327,6328],{"id":6328},"自定义部署前置条件",[17,6330,6331],{},"对于每个环境可定义部署前置条件，只有满足所有前置条件才可进行部署操作。可定义如下三种前置条件：",[123,6333,6334,6340,6343],{},[126,6335,6336,6337,6339],{},"环境部署要求：要求指定环境已经部署成功，且满足 ",[32,6338,5978],{}," 部署成功时间要求",[126,6341,6342],{},"元数据值要求：要求指定元数据对应的值是否满足要求",[126,6344,6345],{},"审批流程要求：可自定义审批流程指定审批人，并进行审批操作，当全部审批流程都审批通过后，才算满足要求",[6347,6348,6349],"h3",{"id":6349},"环境部署前置条件示例",[25,6351,6353],{"className":2644,"code":6352,"language":2646,"meta":2647,"style":30},"environments:\n  - name: development\n    description: Development environment\n    env:\n      name: development\n      tag_name: $CNB_BRANCH\n\n  - name: staging\n    description: Staging environment\n    env:\n      name: staging\n      tag_name: $CNB_BRANCH\n    require:\n      # 要求 development 环境部署成功\n      - environmentName: development\n\n  - name: production\n    description: Production environment\n    require:\n      # 要求 staging 环境部署成功 30 分钟后\n      - environmentName: staging\n        after: 1800\n",[32,6354,6355,6361,6371,6379,6385,6393,6401,6405,6415,6423,6429,6437,6445,6451,6456,6466,6470,6480,6488,6494,6499,6509],{"__ignoreMap":30},[35,6356,6357,6359],{"class":37,"line":38},[35,6358,2654],{"class":93},[35,6360,2657],{"class":86},[35,6362,6363,6365,6367,6369],{"class":37,"line":90},[35,6364,2668],{"class":86},[35,6366,2671],{"class":93},[35,6368,59],{"class":86},[35,6370,2676],{"class":45},[35,6372,6373,6375,6377],{"class":37,"line":112},[35,6374,2681],{"class":93},[35,6376,59],{"class":86},[35,6378,2686],{"class":45},[35,6380,6381,6383],{"class":37,"line":162},[35,6382,2696],{"class":93},[35,6384,2657],{"class":86},[35,6386,6387,6389,6391],{"class":37,"line":166},[35,6388,2703],{"class":93},[35,6390,59],{"class":86},[35,6392,2676],{"class":45},[35,6394,6395,6397,6399],{"class":37,"line":170},[35,6396,2717],{"class":93},[35,6398,59],{"class":86},[35,6400,2722],{"class":45},[35,6402,6403],{"class":37,"line":174},[35,6404,2863],{"emptyLinePlaceholder":201},[35,6406,6407,6409,6411,6413],{"class":37,"line":178},[35,6408,2668],{"class":86},[35,6410,2671],{"class":93},[35,6412,59],{"class":86},[35,6414,2811],{"class":45},[35,6416,6417,6419,6421],{"class":37,"line":181},[35,6418,2681],{"class":93},[35,6420,59],{"class":86},[35,6422,2820],{"class":45},[35,6424,6425,6427],{"class":37,"line":185},[35,6426,2696],{"class":93},[35,6428,2657],{"class":86},[35,6430,6431,6433,6435],{"class":37,"line":1000},[35,6432,2703],{"class":93},[35,6434,59],{"class":86},[35,6436,2811],{"class":45},[35,6438,6439,6441,6443],{"class":37,"line":1025},[35,6440,2717],{"class":93},[35,6442,59],{"class":86},[35,6444,2722],{"class":45},[35,6446,6447,6449],{"class":37,"line":1256},[35,6448,4721],{"class":93},[35,6450,2657],{"class":86},[35,6452,6453],{"class":37,"line":164},[35,6454,6455],{"class":2662},"      # 要求 development 环境部署成功\n",[35,6457,6458,6460,6462,6464],{"class":37,"line":2752},[35,6459,2926],{"class":86},[35,6461,4746],{"class":93},[35,6463,59],{"class":86},[35,6465,2676],{"class":45},[35,6467,6468],{"class":37,"line":157},[35,6469,2863],{"emptyLinePlaceholder":201},[35,6471,6472,6474,6476,6478],{"class":37,"line":2765},[35,6473,2668],{"class":86},[35,6475,2671],{"class":93},[35,6477,59],{"class":86},[35,6479,2874],{"class":45},[35,6481,6482,6484,6486],{"class":37,"line":864},[35,6483,2681],{"class":93},[35,6485,59],{"class":86},[35,6487,2883],{"class":45},[35,6489,6490,6492],{"class":37,"line":881},[35,6491,4721],{"class":93},[35,6493,2657],{"class":86},[35,6495,6496],{"class":37,"line":1009},[35,6497,6498],{"class":2662},"      # 要求 staging 环境部署成功 30 分钟后\n",[35,6500,6501,6503,6505,6507],{"class":37,"line":2795},[35,6502,2926],{"class":86},[35,6504,4746],{"class":93},[35,6506,59],{"class":86},[35,6508,2811],{"class":45},[35,6510,6511,6513,6515],{"class":37,"line":732},[35,6512,4778],{"class":93},[35,6514,59],{"class":86},[35,6516,4783],{"class":3083},[6347,6518,6519],{"id":6519},"元数据前置条件示例",[25,6521,6523],{"className":2644,"code":6522,"language":2646,"meta":2647,"style":30},"environments:\n  - name: production\n    description: Production environment\n    require:\n      # 对元数据是否满足要求的检查\n\n      # 键值 key1 对应的 value 不为空，即有值\n      - annotation: key1\n\n      # 键值 key2 对应的 value 值需等于 value1\n      - annotation: key2\n        expect:\n          eq: value2\n\n      # 键值 key3 对应的 value 值需大于 1 且小于 10\n      - annotation: key3\n        expect:\n          and:\n            gt: 1\n            lt: 10\n        # 自定义按钮，点击可触发执行 web_trigger_annotation 事件。\n        # 可定义与 require 信息有关的按钮事件，当 require 满足条件后隐藏按钮\n        button:\n          - name: 生成元数据\n            event: web_trigger_annotation\n            # 如存在，则将作为流水线 title，否则流水线使用默认 title；可支持环境变量替换（仅支持替换一级，环境变量指的是当前配置的 env 和 inputs。仅支持 ${xxx} 写法。）\n            description: 生成元数据流程\n            # 传给 web_trigger_annotation 事件流水线的环境变量\n            # 可继承上一级别环境变量，优先级高于上一级别环境变量\n            env:\n              name1: value1\n              name2: value2\n",[32,6524,6525,6531,6541,6549,6555,6560,6564,6569,6579,6583,6588,6598,6604,6612,6616,6621,6632,6638,6644,6652,6660,6664,6668,6674,6684,6692,6696,6704,6708,6712,6718,6726],{"__ignoreMap":30},[35,6526,6527,6529],{"class":37,"line":38},[35,6528,2654],{"class":93},[35,6530,2657],{"class":86},[35,6532,6533,6535,6537,6539],{"class":37,"line":90},[35,6534,2668],{"class":86},[35,6536,2671],{"class":93},[35,6538,59],{"class":86},[35,6540,2874],{"class":45},[35,6542,6543,6545,6547],{"class":37,"line":112},[35,6544,2681],{"class":93},[35,6546,59],{"class":86},[35,6548,2883],{"class":45},[35,6550,6551,6553],{"class":37,"line":162},[35,6552,4721],{"class":93},[35,6554,2657],{"class":86},[35,6556,6557],{"class":37,"line":166},[35,6558,6559],{"class":2662},"      # 对元数据是否满足要求的检查\n",[35,6561,6562],{"class":37,"line":170},[35,6563,2863],{"emptyLinePlaceholder":201},[35,6565,6566],{"class":37,"line":174},[35,6567,6568],{"class":2662},"      # 键值 key1 对应的 value 不为空，即有值\n",[35,6570,6571,6573,6575,6577],{"class":37,"line":178},[35,6572,2926],{"class":86},[35,6574,4813],{"class":93},[35,6576,59],{"class":86},[35,6578,4818],{"class":45},[35,6580,6581],{"class":37,"line":181},[35,6582,2863],{"emptyLinePlaceholder":201},[35,6584,6585],{"class":37,"line":185},[35,6586,6587],{"class":2662},"      # 键值 key2 对应的 value 值需等于 value1\n",[35,6589,6590,6592,6594,6596],{"class":37,"line":1000},[35,6591,2926],{"class":86},[35,6593,4813],{"class":93},[35,6595,59],{"class":86},[35,6597,4881],{"class":45},[35,6599,6600,6602],{"class":37,"line":1025},[35,6601,4846],{"class":93},[35,6603,2657],{"class":86},[35,6605,6606,6608,6610],{"class":37,"line":1256},[35,6607,4854],{"class":93},[35,6609,59],{"class":86},[35,6611,3433],{"class":45},[35,6613,6614],{"class":37,"line":164},[35,6615,2863],{"emptyLinePlaceholder":201},[35,6617,6618],{"class":37,"line":2752},[35,6619,6620],{"class":2662},"      # 键值 key3 对应的 value 值需大于 1 且小于 10\n",[35,6622,6623,6625,6627,6629],{"class":37,"line":157},[35,6624,2926],{"class":86},[35,6626,4813],{"class":93},[35,6628,59],{"class":86},[35,6630,6631],{"class":45}," key3\n",[35,6633,6634,6636],{"class":37,"line":2765},[35,6635,4846],{"class":93},[35,6637,2657],{"class":86},[35,6639,6640,6642],{"class":37,"line":864},[35,6641,4894],{"class":93},[35,6643,2657],{"class":86},[35,6645,6646,6648,6650],{"class":37,"line":881},[35,6647,4902],{"class":93},[35,6649,59],{"class":86},[35,6651,3084],{"class":3083},[35,6653,6654,6656,6658],{"class":37,"line":1009},[35,6655,4912],{"class":93},[35,6657,59],{"class":86},[35,6659,4917],{"class":3083},[35,6661,6662],{"class":37,"line":2795},[35,6663,4923],{"class":2662},[35,6665,6666],{"class":37,"line":732},[35,6667,4929],{"class":2662},[35,6669,6670,6672],{"class":37,"line":461},[35,6671,4935],{"class":93},[35,6673,2657],{"class":86},[35,6675,6676,6678,6680,6682],{"class":37,"line":2823},[35,6677,3937],{"class":86},[35,6679,2671],{"class":93},[35,6681,59],{"class":86},[35,6683,4949],{"class":45},[35,6685,6686,6688,6690],{"class":37,"line":2829},[35,6687,4955],{"class":93},[35,6689,59],{"class":86},[35,6691,4960],{"class":45},[35,6693,6694],{"class":37,"line":1396},[35,6695,4966],{"class":2662},[35,6697,6698,6700,6702],{"class":37,"line":1528},[35,6699,3187],{"class":93},[35,6701,59],{"class":86},[35,6703,4976],{"class":45},[35,6705,6706],{"class":37,"line":1674},[35,6707,5064],{"class":2662},[35,6709,6710],{"class":37,"line":472},[35,6711,5070],{"class":2662},[35,6713,6714,6716],{"class":37,"line":1014},[35,6715,5076],{"class":93},[35,6717,2657],{"class":86},[35,6719,6720,6722,6724],{"class":37,"line":1937},[35,6721,5084],{"class":93},[35,6723,59],{"class":86},[35,6725,3372],{"class":45},[35,6727,6728,6730,6732],{"class":37,"line":183},[35,6729,5094],{"class":93},[35,6731,59],{"class":86},[35,6733,3433],{"class":45},[6347,6735,6736],{"id":6736},"审批流程前置条件示例",[17,6738,6739],{},"可自定义审批流程和指定审批人。有权限的审批人可进行审批操作（同意、拒绝）。全部流程审批通过后，即算满足要求",[25,6741,6743],{"className":2644,"code":6742,"language":2646,"meta":2647,"style":30},"environments:\n  - name: production\n    description: Production environment\n    require:\n      # 对审批流程是否满足要求的检查（可按以下方式自定义审批流程）\n      # - 审批顺序：如下 1、2、3 审批流程需按顺序进行，即 1 审批通过，2 才能进行审批。1、2、3 审批流程全部通过才算通过审批\n      # - 审批操作：包括 同意、拒绝。一人同意即算通过。如果拒绝，其他审批人无法再操作，直到拒绝的审批人再修改审批结果为同意\n\n      # 按用户名审批，其中一人审批通过即可\n      - approver:\n          users:\n            - user1\n            - user2\n            - user3\n        # 可配置点击同意按钮触发的事件，以及传给事件流水线的环境变量\n        # agreeEvent:\n        #   # 描述信息，会作为流水线 title\n        #   description: 同意审批\n        #   # 点击同意按钮时触发的事件名，仅支持 web_trigger 事件\n        #   event: web_trigger_agree\n        #   # 传给事件流水线的环境变量，不支持继承上一级别的环境变量\n        #   env:\n        #     name1: value1\n        #     name2: value2\n        # 可配置点击拒绝按钮触发的事件，以及传给事件流水线的环境变量\n        # rejectEvent:\n        #   # 描述信息，会作为流水线 title\n        #   description: 拒绝审批\n        #   # 点击拒绝按钮时触发的事件名，仅支持 web_trigger 事件\n        #   event: web_trigger_reject\n        #   # 传给事件流水线的环境变量，不支持继承上一级别的环境变量\n        #   env:\n        #     name1: value1\n        #     name2: value2\n        title: 测试审批\n\n      # 按角色审批，其中一人审批通过即可\n      - approver:\n          roles:\n            - developer\n            - master\n        title: 开发审批\n\n      # 按用户名或角色审批（审批人满足 users 或 roles 其一即可），其中一人审批通过才行\n      - approver:\n          users:\n            - user4\n            - user5\n          roles:\n            - master\n            - owner\n        title: 运维审批\n",[32,6744,6745,6751,6761,6769,6775,6780,6784,6788,6792,6797,6805,6811,6817,6823,6829,6833,6837,6841,6845,6849,6853,6857,6861,6865,6869,6873,6877,6881,6885,6889,6893,6897,6901,6905,6909,6917,6921,6926,6934,6940,6946,6952,6960,6964,6969,6977,6983,6989,6995,7001,7007,7013],{"__ignoreMap":30},[35,6746,6747,6749],{"class":37,"line":38},[35,6748,2654],{"class":93},[35,6750,2657],{"class":86},[35,6752,6753,6755,6757,6759],{"class":37,"line":90},[35,6754,2668],{"class":86},[35,6756,2671],{"class":93},[35,6758,59],{"class":86},[35,6760,2874],{"class":45},[35,6762,6763,6765,6767],{"class":37,"line":112},[35,6764,2681],{"class":93},[35,6766,59],{"class":86},[35,6768,2883],{"class":45},[35,6770,6771,6773],{"class":37,"line":162},[35,6772,4721],{"class":93},[35,6774,2657],{"class":86},[35,6776,6777],{"class":37,"line":166},[35,6778,6779],{"class":2662},"      # 对审批流程是否满足要求的检查（可按以下方式自定义审批流程）\n",[35,6781,6782],{"class":37,"line":170},[35,6783,5115],{"class":2662},[35,6785,6786],{"class":37,"line":174},[35,6787,5121],{"class":2662},[35,6789,6790],{"class":37,"line":178},[35,6791,2863],{"emptyLinePlaceholder":201},[35,6793,6794],{"class":37,"line":181},[35,6795,6796],{"class":2662},"      # 按用户名审批，其中一人审批通过即可\n",[35,6798,6799,6801,6803],{"class":37,"line":185},[35,6800,2926],{"class":86},[35,6802,5140],{"class":93},[35,6804,2657],{"class":86},[35,6806,6807,6809],{"class":37,"line":1000},[35,6808,3040],{"class":93},[35,6810,2657],{"class":86},[35,6812,6813,6815],{"class":37,"line":1025},[35,6814,3027],{"class":86},[35,6816,5157],{"class":45},[35,6818,6819,6821],{"class":37,"line":1256},[35,6820,3027],{"class":86},[35,6822,5165],{"class":45},[35,6824,6825,6827],{"class":37,"line":164},[35,6826,3027],{"class":86},[35,6828,5173],{"class":45},[35,6830,6831],{"class":37,"line":2752},[35,6832,5179],{"class":2662},[35,6834,6835],{"class":37,"line":157},[35,6836,5185],{"class":2662},[35,6838,6839],{"class":37,"line":2765},[35,6840,5191],{"class":2662},[35,6842,6843],{"class":37,"line":864},[35,6844,5197],{"class":2662},[35,6846,6847],{"class":37,"line":881},[35,6848,5203],{"class":2662},[35,6850,6851],{"class":37,"line":1009},[35,6852,5209],{"class":2662},[35,6854,6855],{"class":37,"line":2795},[35,6856,5215],{"class":2662},[35,6858,6859],{"class":37,"line":732},[35,6860,5221],{"class":2662},[35,6862,6863],{"class":37,"line":461},[35,6864,5227],{"class":2662},[35,6866,6867],{"class":37,"line":2823},[35,6868,5233],{"class":2662},[35,6870,6871],{"class":37,"line":2829},[35,6872,5239],{"class":2662},[35,6874,6875],{"class":37,"line":1396},[35,6876,5245],{"class":2662},[35,6878,6879],{"class":37,"line":1528},[35,6880,5191],{"class":2662},[35,6882,6883],{"class":37,"line":1674},[35,6884,5256],{"class":2662},[35,6886,6887],{"class":37,"line":472},[35,6888,5262],{"class":2662},[35,6890,6891],{"class":37,"line":1014},[35,6892,5268],{"class":2662},[35,6894,6895],{"class":37,"line":1937},[35,6896,5215],{"class":2662},[35,6898,6899],{"class":37,"line":183},[35,6900,5221],{"class":2662},[35,6902,6903],{"class":37,"line":729},[35,6904,5227],{"class":2662},[35,6906,6907],{"class":37,"line":2890},[35,6908,5233],{"class":2662},[35,6910,6911,6913,6915],{"class":37,"line":740},[35,6912,5294],{"class":93},[35,6914,59],{"class":86},[35,6916,5299],{"class":45},[35,6918,6919],{"class":37,"line":187},[35,6920,2863],{"emptyLinePlaceholder":201},[35,6922,6923],{"class":37,"line":329},[35,6924,6925],{"class":2662},"      # 按角色审批，其中一人审批通过即可\n",[35,6927,6928,6930,6932],{"class":37,"line":873},[35,6929,2926],{"class":86},[35,6931,5140],{"class":93},[35,6933,2657],{"class":86},[35,6935,6936,6938],{"class":37,"line":1814},[35,6937,3019],{"class":93},[35,6939,2657],{"class":86},[35,6941,6942,6944],{"class":37,"line":2936},[35,6943,3027],{"class":86},[35,6945,2778],{"class":45},[35,6947,6948,6950],{"class":37,"line":1017},[35,6949,3027],{"class":86},[35,6951,2771],{"class":45},[35,6953,6954,6956,6958],{"class":37,"line":884},[35,6955,5294],{"class":93},[35,6957,59],{"class":86},[35,6959,5350],{"class":45},[35,6961,6962],{"class":37,"line":154},[35,6963,2863],{"emptyLinePlaceholder":201},[35,6965,6966],{"class":37,"line":876},[35,6967,6968],{"class":2662},"      # 按用户名或角色审批（审批人满足 users 或 roles 其一即可），其中一人审批通过才行\n",[35,6970,6971,6973,6975],{"class":37,"line":1006},[35,6972,2926],{"class":86},[35,6974,5140],{"class":93},[35,6976,2657],{"class":86},[35,6978,6979,6981],{"class":37,"line":1817},[35,6980,3040],{"class":93},[35,6982,2657],{"class":86},[35,6984,6985,6987],{"class":37,"line":1803},[35,6986,3027],{"class":86},[35,6988,5385],{"class":45},[35,6990,6991,6993],{"class":37,"line":743},[35,6992,3027],{"class":86},[35,6994,5393],{"class":45},[35,6996,6997,6999],{"class":37,"line":2998},[35,6998,3019],{"class":93},[35,7000,2657],{"class":86},[35,7002,7003,7005],{"class":37,"line":3006},[35,7004,3027],{"class":86},[35,7006,2771],{"class":45},[35,7008,7009,7011],{"class":37,"line":1679},[35,7010,3027],{"class":86},[35,7012,5415],{"class":45},[35,7014,7015,7017,7019],{"class":37,"line":316},[35,7016,5294],{"class":93},[35,7018,59],{"class":86},[35,7020,5425],{"class":45},[21,7022,7023],{"id":7023},"自定义部署流水线",[17,7025,7026,7027,7029,7030,7032],{},"如下示例定义了三种环境的部署事件流水线，\n当在页面中选择部署 ",[32,7028,2633],{}," 环境时，则触发 ",[32,7031,5580],{}," 事件。\n流水线基于当前 tag 对应的代码进行部署操作。",[25,7034,7037],{"className":2644,"code":7035,"language":2646,"meta":7036,"style":30},"$:\n  tag_deploy.development:\n    - name: dev\n      stages:\n        - name: 部署环境名\n          script: echo $name\n        - name: tag 名\n          script: echo $tag_name\n  tag_deploy.staging:\n    - name: staging\n      stages:\n        - name: 部署环境名\n          script: echo $name\n        - name: tag 名\n          script: echo $tag_name\n  tag_deploy.production:\n    - name: production\n      stages:\n        - name: 部署环境名\n          script: echo $name\n        - name: tag 名\n          script: echo $tag_name\n","title=\".cnb.yml\"",[32,7038,7039,7046,7053,7065,7072,7083,7093,7104,7113,7120,7130,7136,7146,7154,7164,7172,7179,7189,7195,7205,7213,7223],{"__ignoreMap":30},[35,7040,7041,7044],{"class":37,"line":38},[35,7042,7043],{"class":93},"$",[35,7045,2657],{"class":86},[35,7047,7048,7051],{"class":37,"line":90},[35,7049,7050],{"class":93},"  tag_deploy.development",[35,7052,2657],{"class":86},[35,7054,7055,7058,7060,7062],{"class":37,"line":112},[35,7056,7057],{"class":86},"    -",[35,7059,2671],{"class":93},[35,7061,59],{"class":86},[35,7063,7064],{"class":45}," dev\n",[35,7066,7067,7070],{"class":37,"line":162},[35,7068,7069],{"class":93},"      stages",[35,7071,2657],{"class":86},[35,7073,7074,7076,7078,7080],{"class":37,"line":166},[35,7075,2768],{"class":86},[35,7077,2671],{"class":93},[35,7079,59],{"class":86},[35,7081,7082],{"class":45}," 部署环境名\n",[35,7084,7085,7088,7090],{"class":37,"line":170},[35,7086,7087],{"class":93},"          script",[35,7089,59],{"class":86},[35,7091,7092],{"class":45}," echo $name\n",[35,7094,7095,7097,7099,7101],{"class":37,"line":174},[35,7096,2768],{"class":86},[35,7098,2671],{"class":93},[35,7100,59],{"class":86},[35,7102,7103],{"class":45}," tag 名\n",[35,7105,7106,7108,7110],{"class":37,"line":178},[35,7107,7087],{"class":93},[35,7109,59],{"class":86},[35,7111,7112],{"class":45}," echo $tag_name\n",[35,7114,7115,7118],{"class":37,"line":181},[35,7116,7117],{"class":93},"  tag_deploy.staging",[35,7119,2657],{"class":86},[35,7121,7122,7124,7126,7128],{"class":37,"line":185},[35,7123,7057],{"class":86},[35,7125,2671],{"class":93},[35,7127,59],{"class":86},[35,7129,2811],{"class":45},[35,7131,7132,7134],{"class":37,"line":1000},[35,7133,7069],{"class":93},[35,7135,2657],{"class":86},[35,7137,7138,7140,7142,7144],{"class":37,"line":1025},[35,7139,2768],{"class":86},[35,7141,2671],{"class":93},[35,7143,59],{"class":86},[35,7145,7082],{"class":45},[35,7147,7148,7150,7152],{"class":37,"line":1256},[35,7149,7087],{"class":93},[35,7151,59],{"class":86},[35,7153,7092],{"class":45},[35,7155,7156,7158,7160,7162],{"class":37,"line":164},[35,7157,2768],{"class":86},[35,7159,2671],{"class":93},[35,7161,59],{"class":86},[35,7163,7103],{"class":45},[35,7165,7166,7168,7170],{"class":37,"line":2752},[35,7167,7087],{"class":93},[35,7169,59],{"class":86},[35,7171,7112],{"class":45},[35,7173,7174,7177],{"class":37,"line":157},[35,7175,7176],{"class":93},"  tag_deploy.production",[35,7178,2657],{"class":86},[35,7180,7181,7183,7185,7187],{"class":37,"line":2765},[35,7182,7057],{"class":86},[35,7184,2671],{"class":93},[35,7186,59],{"class":86},[35,7188,2874],{"class":45},[35,7190,7191,7193],{"class":37,"line":864},[35,7192,7069],{"class":93},[35,7194,2657],{"class":86},[35,7196,7197,7199,7201,7203],{"class":37,"line":881},[35,7198,2768],{"class":86},[35,7200,2671],{"class":93},[35,7202,59],{"class":86},[35,7204,7082],{"class":45},[35,7206,7207,7209,7211],{"class":37,"line":1009},[35,7208,7087],{"class":93},[35,7210,59],{"class":86},[35,7212,7092],{"class":45},[35,7214,7215,7217,7219,7221],{"class":37,"line":2795},[35,7216,2768],{"class":86},[35,7218,2671],{"class":93},[35,7220,59],{"class":86},[35,7222,7103],{"class":45},[35,7224,7225,7227,7229],{"class":37,"line":732},[35,7226,7087],{"class":93},[35,7228,59],{"class":86},[35,7230,7112],{"class":45},[17,7232,7233],{},"示例中的流水线事件名和部署环境类型对应关系如下：",[123,7235,7236,7242,7249],{},[126,7237,7238,5760,7240],{},[32,7239,5580],{},[32,7241,2633],{},[126,7243,7244,5760,7247],{},[32,7245,7246],{},"tag_deploy.staging",[32,7248,2637],{},[126,7250,7251,5760,7254],{},[32,7252,7253],{},"tag_deploy.production",[32,7255,2640],{},[6347,7257,7259],{"id":7258},"自定义按钮触发的-web_trigger-事件","自定义按钮触发的 web_trigger 事件",[17,7261,7262,7264,7265,7268,7269,7272,7273,7275],{},[32,7263,2359],{}," 中的自定义按钮，仅支持触发 ",[35,7266,7267],{},"web_trigger事件"," 事件。\n如下流水线配置中，",[32,7270,7271],{},"web_trigger_annotation"," 事件执行时，会进行上传",[35,7274,1992],{},"操作。",[25,7277,7279],{"className":2644,"code":7278,"language":2646,"meta":7036,"style":30},"$:\n  # 自定义按钮可触发的事件\n  web_trigger_annotation:\n    - stages:\n        - name: 上传元数据\n          image: cnbcool\u002Fannotations:latest\n          settings:\n            data: |\n              key1=value1\n              key2=value2\n",[32,7280,7281,7287,7292,7299,7308,7319,7329,7336,7346,7351],{"__ignoreMap":30},[35,7282,7283,7285],{"class":37,"line":38},[35,7284,7043],{"class":93},[35,7286,2657],{"class":86},[35,7288,7289],{"class":37,"line":90},[35,7290,7291],{"class":2662},"  # 自定义按钮可触发的事件\n",[35,7293,7294,7297],{"class":37,"line":112},[35,7295,7296],{"class":93},"  web_trigger_annotation",[35,7298,2657],{"class":86},[35,7300,7301,7303,7306],{"class":37,"line":162},[35,7302,7057],{"class":86},[35,7304,7305],{"class":93}," stages",[35,7307,2657],{"class":86},[35,7309,7310,7312,7314,7316],{"class":37,"line":166},[35,7311,2768],{"class":86},[35,7313,2671],{"class":93},[35,7315,59],{"class":86},[35,7317,7318],{"class":45}," 上传元数据\n",[35,7320,7321,7324,7326],{"class":37,"line":170},[35,7322,7323],{"class":93},"          image",[35,7325,59],{"class":86},[35,7327,7328],{"class":45}," cnbcool\u002Fannotations:latest\n",[35,7330,7331,7334],{"class":37,"line":174},[35,7332,7333],{"class":93},"          settings",[35,7335,2657],{"class":86},[35,7337,7338,7341,7343],{"class":37,"line":178},[35,7339,7340],{"class":93},"            data",[35,7342,59],{"class":86},[35,7344,7345],{"class":71}," |\n",[35,7347,7348],{"class":37,"line":181},[35,7349,7350],{"class":45},"              key1=value1\n",[35,7352,7353],{"class":37,"line":185},[35,7354,7355],{"class":45},"              key2=value2\n",[21,7357,7358],{"id":7358},"部署权限说明",[17,7360,7361,7362,7365,7366,7369],{},"默认需有 ",[32,7363,7364],{},"仓库写权限"," 且有 ",[32,7367,7368],{},"推送 Tag"," 权限的用户才能进行部署操作。",[17,7371,7372,7373,7375,7376,7379,7380,7382],{},"如果环境有配置 ",[32,7374,5604],{}," 字段，则 ",[32,7377,7378],{},"有仓库写权限","，且满足 permissions 字段中定义的权限的用户才能进行部署操作，此时不检查 ",[32,7381,7368],{}," 权限。",[142,7384,7385],{},"html pre.shiki code .sRlkE, html code.shiki .sRlkE{--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178}html pre.shiki code .sDfIl, html code.shiki .sDfIl{--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF}html pre.shiki code .sWuyu, html code.shiki .sWuyu{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sGFVr, html code.shiki .sGFVr{--shiki-light:#91B859;--shiki-default:#91B859;--shiki-dark:#C3E88D}html pre.shiki code .sbKd-, html code.shiki .sbKd-{--shiki-light:#FF5370;--shiki-default:#FF5370;--shiki-dark:#FF9CAC}html pre.shiki code .sYRBq, html code.shiki .sYRBq{--shiki-light:#F76D47;--shiki-default:#F76D47;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s8R28, html code.shiki .s8R28{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#39ADB5;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}",{"title":30,"searchDepth":90,"depth":90,"links":7387},[7388,7389,7394,7397],{"id":2623,"depth":90,"text":2623},{"id":6328,"depth":90,"text":6328,"children":7390},[7391,7392,7393],{"id":6349,"depth":112,"text":6349},{"id":6519,"depth":112,"text":6519},{"id":6736,"depth":112,"text":6736},{"id":7023,"depth":90,"text":7023,"children":7395},[7396],{"id":7258,"depth":112,"text":7259},{"id":7358,"depth":90,"text":7358},"云原生构建支持自定义部署流程，通过自定义部署环境、审批流程、部署流水线，实现自动化的部署流程。",{},{"icon":2357},{"title":2359,"description":7398},"HYa7Gr7trWgmxcxn5LGs3kxLG6qxawcS7jc_bYH0QGs",[7404,7405],{"title":2354,"path":2355,"stem":2356,"description":2127,"icon":2357,"children":-1},{"title":2363,"path":2364,"stem":2365,"description":7406,"icon":2357,"children":-1},"可通过在仓库根目录新增 `.cnb\u002Fsettings.yml` 配置文件对页面部分 UI 进行定制，解锁更多玩法",1775504724270]