[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article:Cloudflare-GitHub-img":3},{"title":4,"cover":5,"tags":6,"categorization":10,"synopsis":11,"publishedTime":12,"editedTime":13,"url":14,"blocks":15},"使用Cloudflare+GitHub搭建图床","https:\u002F\u002Fblog-picture.xiao-feishu.top\u002Flist\u002F1.webp",[7,8,9],"工具","分享","Cloudflare","教程","分享一些比较实用的网站","2026-06-06T05:17:00.000Z","2026-10-10T14:06:00.000Z","https:\u002F\u002Fapp.notion.com\u002Fp\u002FCloudflare-GitHub-aa38fb44cd8683c995d60123122ef2d1",[16,30,42,51,59,67,90,95,99,108,127,151,160,169,178,194,202,212,221,229,237,248,268,277,285,295,320,328,338,346],{"id":17,"type":18,"has_children":19,"content":20},"11c8fb44-cd86-8320-bb1c-816e3c3541d2","image",false,{"caption":21,"type":22,"file":23,"_size":26,"_lcp":29},[],"file",{"url":24,"expiry_time":25},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002Ff88818b2-1762-444a-b975-d50f7c6685da\u002F202cdcf7-c1ef-4a49-85aa-3dc40eea2536\u002F%E4%BD%BF%E7%94%A8CloudflareGitHub%E6%90%AD%E5%BB%BA%E5%9B%BE%E5%BA%8A.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466RFGOA4WP%2F20261110%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20261110T103311Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEG4aCXVzLXdlc3QtMiJIMEYCIQDMKbJoXQ7UehIXhQeL2T8IH355gliMvkx0m7kZpt9QmQIhALGkqGqS3yzQ1QRWAETI8Iibl31W%2FFNhVWbZ2ukTca%2BSKv8DCDYQABoMNjM3NDIzMTgzODA1Igyh1TAF7bGs4xF%2F9lYq3AMQvkCmqZdWZOAtun5xMS6B%2BVpelnLOapiXtnLbJqNksEQXPUtIVW08EL7I%2F5GDgvvB%2F6vVPC8rkV1pfyD94LwA%2BvOU1oaRI8y5lPvAOpjta7fffkbveMKqsA8a%2FLtTxxkQJ20LdeQA1l4fKiMNESRaNRPyQi4fGS8APZlmR6%2Frg7Ww1pKincdMpM9Drf8uvIyo6H6qonL6ABQVz9PEEYTcyqX67iU2HC24Waisu7odGsOIfFAy7lvfCxUju2QsYZun9cFOj63MeO%2BLO9yIIqoiLGPXCbZhczaqdSgSf8z2Gfj9Rf7l0bZlLUj3GxRAvF%2B%2FdluUSQtgeBPzWemKuseRyKVVx55Bl3ZrQH10sSSuwW3md%2FOIuV6sF%2BDO%2BcRtH%2B7c1ocGALPi%2F35MwjuHEd%2FXkLepRvr5wXx7dyf7B6hsJ9TSCMNofNqlfTNlnjNj%2FyMdjkWfz7DqztQUiTO%2BKgjyJL0gZD98BZ23jMTDhlrgo1JoLvrv7KjVBHmCJLoSK3%2B7LbKjZL0H%2FBHu7NQk6%2BQIHGB7mDS5IKeHnwwGXFQsE4gHyHxo3fo0ZqwRL7jmHvCj3WE4xXSbOIE5QqHNRs39OwakRcsiqjCMsmOGfPUyq22LCe0xdTFv8sciTTC33srXBjqkATYU3q5NwMU5yalnZO%2Bp%2BxT%2FAUOuYVS5AOvMIxlO%2BTgXwUMh3cFI2LlKU9ejB29eOe%2BA4%2FPw%2BBroUP22%2FGycwtqkQDMU7Uh44w2qvP1yRL8yC7md3mogQP3gZs30sTvwOpK49i5eLeEi%2Bg76MW%2BHMoQp7MFOshEhHquPnicKxK31Ratm3vK8m%2BJSmCwMMssp97rjsN%2F07vvSB2MedS%2FX45chI%2BZB&X-Amz-Signature=251792d05034b338c6abb62274329bf2b480ad3d4b366f0a4954ffbec958600c&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject","2026-11-10T11:33:11.562Z",{"width":27,"height":28},720,480,true,{"id":31,"type":32,"has_children":19,"content":33},"b988fb44-cd86-8369-ba46-81e2165fabe5","heading_2",{"rich_text":34,"is_toggleable":19,"color":41},[35],{"type":36,"text":37,"annotations":40,"plain_text":38,"href":39},"text",{"content":38,"link":39},"准备工作",null,{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},"default",{"id":43,"type":44,"has_children":19,"content":45},"d648fb44-cd86-83cf-a72e-8113464adb99","numbered_list_item",{"rich_text":46,"color":41},[47],{"type":36,"text":48,"annotations":50,"plain_text":49,"href":39},{"content":49,"link":39},"GitHub账号",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"id":52,"type":44,"has_children":19,"content":53},"c898fb44-cd86-82f3-9e38-0108b263a8fb",{"rich_text":54,"color":41},[55],{"type":36,"text":56,"annotations":58,"plain_text":57,"href":39},{"content":57,"link":39},"Cloudflare账号",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"id":60,"type":32,"has_children":19,"content":61},"5158fb44-cd86-83b9-9e16-01937a17b6f2",{"rich_text":62,"is_toggleable":19,"color":41},[63],{"type":36,"text":64,"annotations":66,"plain_text":65,"href":39},{"content":65,"link":39},"操作流程",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"id":68,"type":44,"has_children":19,"content":69},"75c8fb44-cd86-8238-93fe-81ed382243f8",{"rich_text":70,"color":41},[71,75,81,85],{"type":36,"text":72,"annotations":74,"plain_text":73,"href":39},{"content":73,"link":39},"进入",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"type":36,"text":76,"annotations":80,"plain_text":77,"href":79},{"content":77,"link":78},"GitHub",{"url":79},"https:\u002F\u002Fgithub.com\u002F",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"type":36,"text":82,"annotations":84,"plain_text":83,"href":39},{"content":83,"link":39},"创建一个仓库",{"bold":29,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"type":36,"text":86,"annotations":88,"plain_text":87,"href":39},{"content":87,"link":39},"（可以是私有仓库）",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":89},"yellow_background",{"id":91,"type":92,"has_children":19,"content":93},"c578fb44-cd86-8325-a8e3-81cf550f484b","paragraph",{"rich_text":94,"icon":39,"color":41},[],{"id":96,"type":92,"has_children":19,"content":97},"d508fb44-cd86-825c-8e63-0179c7b29792",{"rich_text":98,"icon":39,"color":41},[],{"id":100,"type":18,"has_children":19,"content":101},"3d18fb44-cd86-83fa-bfac-015b74bcc501",{"caption":102,"type":22,"file":103,"_size":105},[],{"url":104,"expiry_time":25},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002Ff88818b2-1762-444a-b975-d50f7c6685da\u002F79b9fe5d-6fbb-4fcf-825d-4bfb644c8d07\u002FUntitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466RFGOA4WP%2F20261110%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20261110T103311Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEG4aCXVzLXdlc3QtMiJIMEYCIQDMKbJoXQ7UehIXhQeL2T8IH355gliMvkx0m7kZpt9QmQIhALGkqGqS3yzQ1QRWAETI8Iibl31W%2FFNhVWbZ2ukTca%2BSKv8DCDYQABoMNjM3NDIzMTgzODA1Igyh1TAF7bGs4xF%2F9lYq3AMQvkCmqZdWZOAtun5xMS6B%2BVpelnLOapiXtnLbJqNksEQXPUtIVW08EL7I%2F5GDgvvB%2F6vVPC8rkV1pfyD94LwA%2BvOU1oaRI8y5lPvAOpjta7fffkbveMKqsA8a%2FLtTxxkQJ20LdeQA1l4fKiMNESRaNRPyQi4fGS8APZlmR6%2Frg7Ww1pKincdMpM9Drf8uvIyo6H6qonL6ABQVz9PEEYTcyqX67iU2HC24Waisu7odGsOIfFAy7lvfCxUju2QsYZun9cFOj63MeO%2BLO9yIIqoiLGPXCbZhczaqdSgSf8z2Gfj9Rf7l0bZlLUj3GxRAvF%2B%2FdluUSQtgeBPzWemKuseRyKVVx55Bl3ZrQH10sSSuwW3md%2FOIuV6sF%2BDO%2BcRtH%2B7c1ocGALPi%2F35MwjuHEd%2FXkLepRvr5wXx7dyf7B6hsJ9TSCMNofNqlfTNlnjNj%2FyMdjkWfz7DqztQUiTO%2BKgjyJL0gZD98BZ23jMTDhlrgo1JoLvrv7KjVBHmCJLoSK3%2B7LbKjZL0H%2FBHu7NQk6%2BQIHGB7mDS5IKeHnwwGXFQsE4gHyHxo3fo0ZqwRL7jmHvCj3WE4xXSbOIE5QqHNRs39OwakRcsiqjCMsmOGfPUyq22LCe0xdTFv8sciTTC33srXBjqkATYU3q5NwMU5yalnZO%2Bp%2BxT%2FAUOuYVS5AOvMIxlO%2BTgXwUMh3cFI2LlKU9ejB29eOe%2BA4%2FPw%2BBroUP22%2FGycwtqkQDMU7Uh44w2qvP1yRL8yC7md3mogQP3gZs30sTvwOpK49i5eLeEi%2Bg76MW%2BHMoQp7MFOshEhHquPnicKxK31Ratm3vK8m%2BJSmCwMMssp97rjsN%2F07vvSB2MedS%2FX45chI%2BZB&X-Amz-Signature=acfdccf194ece81891763fb8949ddc889324ae8d5b4e381cbe941771eda67023&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject",{"width":106,"height":107},1632,822,{"id":109,"type":44,"has_children":19,"content":110},"4d18fb44-cd86-8298-a7a6-813bac34eb10",{"rich_text":111,"color":41,"list_start_index":126},[112,116,120],{"type":36,"text":113,"annotations":115,"plain_text":114,"href":39},{"content":114,"link":39},"创建完成后",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"type":36,"text":117,"annotations":119,"plain_text":118,"href":39},{"content":118,"link":39},"打开",{"bold":29,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"type":36,"text":121,"annotations":125,"plain_text":122,"href":124},{"content":122,"link":123},"Cloudflare官网",{"url":124},"https:\u002F\u002Fdash.cloudflare.com\u002F",{"bold":29,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},2,{"id":128,"type":44,"has_children":19,"content":129},"c148fb44-cd86-82d2-894f-81c917233a77",{"rich_text":130,"color":41},[131,135,139,143,147],{"type":36,"text":132,"annotations":134,"plain_text":133,"href":39},{"content":133,"link":39},"点击 ",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"type":36,"text":136,"annotations":138,"plain_text":137,"href":39},{"content":137,"link":39},"Workers 和 Pages ",{"bold":29,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"type":36,"text":140,"annotations":142,"plain_text":141,"href":39},{"content":141,"link":39},"创建 ",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"type":36,"text":144,"annotations":146,"plain_text":145,"href":39},{"content":145,"link":39},"应用程序 pages",{"bold":29,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"type":36,"text":148,"annotations":150,"plain_text":149,"href":39},{"content":149,"link":39}," 连接到git",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"id":152,"type":18,"has_children":19,"content":153},"0e38fb44-cd86-826b-bfbf-814874e2bcbd",{"caption":154,"type":22,"file":155,"_size":157},[],{"url":156,"expiry_time":25},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002Ff88818b2-1762-444a-b975-d50f7c6685da\u002F93325280-e635-4246-9502-b70515ba1c83\u002FUntitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466RFGOA4WP%2F20261110%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20261110T103311Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEG4aCXVzLXdlc3QtMiJIMEYCIQDMKbJoXQ7UehIXhQeL2T8IH355gliMvkx0m7kZpt9QmQIhALGkqGqS3yzQ1QRWAETI8Iibl31W%2FFNhVWbZ2ukTca%2BSKv8DCDYQABoMNjM3NDIzMTgzODA1Igyh1TAF7bGs4xF%2F9lYq3AMQvkCmqZdWZOAtun5xMS6B%2BVpelnLOapiXtnLbJqNksEQXPUtIVW08EL7I%2F5GDgvvB%2F6vVPC8rkV1pfyD94LwA%2BvOU1oaRI8y5lPvAOpjta7fffkbveMKqsA8a%2FLtTxxkQJ20LdeQA1l4fKiMNESRaNRPyQi4fGS8APZlmR6%2Frg7Ww1pKincdMpM9Drf8uvIyo6H6qonL6ABQVz9PEEYTcyqX67iU2HC24Waisu7odGsOIfFAy7lvfCxUju2QsYZun9cFOj63MeO%2BLO9yIIqoiLGPXCbZhczaqdSgSf8z2Gfj9Rf7l0bZlLUj3GxRAvF%2B%2FdluUSQtgeBPzWemKuseRyKVVx55Bl3ZrQH10sSSuwW3md%2FOIuV6sF%2BDO%2BcRtH%2B7c1ocGALPi%2F35MwjuHEd%2FXkLepRvr5wXx7dyf7B6hsJ9TSCMNofNqlfTNlnjNj%2FyMdjkWfz7DqztQUiTO%2BKgjyJL0gZD98BZ23jMTDhlrgo1JoLvrv7KjVBHmCJLoSK3%2B7LbKjZL0H%2FBHu7NQk6%2BQIHGB7mDS5IKeHnwwGXFQsE4gHyHxo3fo0ZqwRL7jmHvCj3WE4xXSbOIE5QqHNRs39OwakRcsiqjCMsmOGfPUyq22LCe0xdTFv8sciTTC33srXBjqkATYU3q5NwMU5yalnZO%2Bp%2BxT%2FAUOuYVS5AOvMIxlO%2BTgXwUMh3cFI2LlKU9ejB29eOe%2BA4%2FPw%2BBroUP22%2FGycwtqkQDMU7Uh44w2qvP1yRL8yC7md3mogQP3gZs30sTvwOpK49i5eLeEi%2Bg76MW%2BHMoQp7MFOshEhHquPnicKxK31Ratm3vK8m%2BJSmCwMMssp97rjsN%2F07vvSB2MedS%2FX45chI%2BZB&X-Amz-Signature=d7c8148668f6dafc16cb6e951ffb94e1e2a94418f5aac1a87a7ea5ac66611cdb&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject",{"width":158,"height":159},1603,833,{"id":161,"type":44,"has_children":19,"content":162},"5cc8fb44-cd86-83ba-b591-816a451a9cc4",{"rich_text":163,"color":41,"list_start_index":168},[164],{"type":36,"text":165,"annotations":167,"plain_text":166,"href":39},{"content":166,"link":39},"选择你刚刚创建的仓库",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},4,{"id":170,"type":92,"has_children":19,"content":171},"b858fb44-cd86-8205-b85c-018a74090428",{"rich_text":172,"icon":39,"color":41},[173],{"type":36,"text":174,"annotations":176,"plain_text":175,"href":39},{"content":175,"link":39},"构建设置空着就行",{"bold":29,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":177},"orange",{"id":179,"type":44,"has_children":19,"content":180},"6128fb44-cd86-83d9-81e5-81070a9dbcf1",{"rich_text":181,"color":41,"list_start_index":193},[182,185,189],{"type":36,"text":183,"annotations":184,"plain_text":133,"href":39},{"content":133,"link":39},{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"type":36,"text":186,"annotations":188,"plain_text":187,"href":39},{"content":187,"link":39},"保存并部署",{"bold":29,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"type":36,"text":190,"annotations":192,"plain_text":191,"href":39},{"content":191,"link":39}," ",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},5,{"id":195,"type":44,"has_children":19,"content":196},"61d8fb44-cd86-82c7-a3a0-01133d2bdde8",{"rich_text":197,"color":41},[198],{"type":36,"text":199,"annotations":201,"plain_text":200,"href":39},{"content":200,"link":39},"完成之后点击下面的域名就可以访问了",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"id":203,"type":18,"has_children":19,"content":204},"ac68fb44-cd86-8391-a031-01a1200a7671",{"caption":205,"type":22,"file":206,"_size":209},[],{"url":207,"expiry_time":208},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002Ff88818b2-1762-444a-b975-d50f7c6685da\u002F2a57a406-73a5-4016-b1c0-16e43771e366\u002FUntitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466RFGOA4WP%2F20261110%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20261110T103311Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEG4aCXVzLXdlc3QtMiJIMEYCIQDMKbJoXQ7UehIXhQeL2T8IH355gliMvkx0m7kZpt9QmQIhALGkqGqS3yzQ1QRWAETI8Iibl31W%2FFNhVWbZ2ukTca%2BSKv8DCDYQABoMNjM3NDIzMTgzODA1Igyh1TAF7bGs4xF%2F9lYq3AMQvkCmqZdWZOAtun5xMS6B%2BVpelnLOapiXtnLbJqNksEQXPUtIVW08EL7I%2F5GDgvvB%2F6vVPC8rkV1pfyD94LwA%2BvOU1oaRI8y5lPvAOpjta7fffkbveMKqsA8a%2FLtTxxkQJ20LdeQA1l4fKiMNESRaNRPyQi4fGS8APZlmR6%2Frg7Ww1pKincdMpM9Drf8uvIyo6H6qonL6ABQVz9PEEYTcyqX67iU2HC24Waisu7odGsOIfFAy7lvfCxUju2QsYZun9cFOj63MeO%2BLO9yIIqoiLGPXCbZhczaqdSgSf8z2Gfj9Rf7l0bZlLUj3GxRAvF%2B%2FdluUSQtgeBPzWemKuseRyKVVx55Bl3ZrQH10sSSuwW3md%2FOIuV6sF%2BDO%2BcRtH%2B7c1ocGALPi%2F35MwjuHEd%2FXkLepRvr5wXx7dyf7B6hsJ9TSCMNofNqlfTNlnjNj%2FyMdjkWfz7DqztQUiTO%2BKgjyJL0gZD98BZ23jMTDhlrgo1JoLvrv7KjVBHmCJLoSK3%2B7LbKjZL0H%2FBHu7NQk6%2BQIHGB7mDS5IKeHnwwGXFQsE4gHyHxo3fo0ZqwRL7jmHvCj3WE4xXSbOIE5QqHNRs39OwakRcsiqjCMsmOGfPUyq22LCe0xdTFv8sciTTC33srXBjqkATYU3q5NwMU5yalnZO%2Bp%2BxT%2FAUOuYVS5AOvMIxlO%2BTgXwUMh3cFI2LlKU9ejB29eOe%2BA4%2FPw%2BBroUP22%2FGycwtqkQDMU7Uh44w2qvP1yRL8yC7md3mogQP3gZs30sTvwOpK49i5eLeEi%2Bg76MW%2BHMoQp7MFOshEhHquPnicKxK31Ratm3vK8m%2BJSmCwMMssp97rjsN%2F07vvSB2MedS%2FX45chI%2BZB&X-Amz-Signature=e0d56d9e67de403f043c935f9821139bb13533c9cbeb79743dca18ef6c0d0862&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject","2026-11-10T11:33:11.563Z",{"width":210,"height":211},1576,838,{"id":213,"type":44,"has_children":19,"content":214},"2c38fb44-cd86-82d4-96be-81606b70b672",{"rich_text":215,"color":41,"list_start_index":220},[216],{"type":36,"text":217,"annotations":219,"plain_text":218,"href":39},{"content":218,"link":39},"添加文件 进入GitHub 上传图片就行了",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},7,{"id":222,"type":32,"has_children":19,"content":223},"2e88fb44-cd86-8295-827d-0136e06380af",{"rich_text":224,"is_toggleable":19,"color":41},[225],{"type":36,"text":226,"annotations":228,"plain_text":227,"href":39},{"content":227,"link":39},"其他",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"id":230,"type":92,"has_children":19,"content":231},"a9e8fb44-cd86-82e8-8f33-017156a8134c",{"rich_text":232,"icon":39,"color":41},[233],{"type":36,"text":234,"annotations":236,"plain_text":235,"href":39},{"content":235,"link":39},"如果你怕文件太大并且整理麻烦不妨试试后面的步骤",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"id":238,"type":239,"has_children":19,"content":240},"92b8fb44-cd86-83ac-99e4-81690e232a93","code",{"caption":241,"rich_text":242,"language":247},[],[243],{"type":36,"text":244,"annotations":246,"plain_text":245,"href":39},{"content":245,"link":39},"from PIL import Image\nimport os\n\ncurrent_directory = os.getcwd()\n\n# ---------- 第一步：转换图片为 webp 并删除原文件 ----------\nfor filename in os.listdir(current_directory):\n    file_path = os.path.join(current_directory, filename)\n    # 只处理文件，忽略子目录\n    if not os.path.isfile(file_path):\n        continue\n\n    # 不区分大小写地匹配图片扩展名\n    if filename.lower().endswith((\".jpg\", \".jpeg\", \".png\")):\n        try:\n            with Image.open(file_path) as img:\n                output_filename = os.path.splitext(filename)[0] + \".webp\"\n                output_path = os.path.join(current_directory, output_filename)\n                img.save(output_path, \"webp\")\n            os.remove(file_path)          # 删除原图\n            print(f\"转换成功：{filename} -> {output_filename}\")\n        except Exception as e:\n            print(f\"转换失败：{filename}，错误：{e}\")\n\n# ---------- 第二步：生成 Markdown 列表 ----------\nimage_files = []\nimage_count = 0\n\nfor filename in os.listdir(current_directory):\n    file_path = os.path.join(current_directory, filename)\n    if not os.path.isfile(file_path):\n        continue\n\n    # 统计所有 .webp 文件（图片）\n    if filename.lower().endswith(\".webp\"):\n        image_count += 1\n        image_name = os.path.splitext(filename)[0]\n        image_url = f\".\u002F{filename}\"          # 相对链接\n        image_files.append(f\"| {image_count} | {image_name} | [下载]({image_url}) |\")\n\n# 写入 list.md\nwith open(\"list.md\", \"w\", encoding=\"utf-8\") as md_file:\n    md_file.write(\"| # | 名称 | 链接 |\\n\")\n    md_file.write(\"| --- | --- | --- |\\n\")\n    md_file.write(\"\\n\".join(image_files))\n\nif image_files:\n    print(f\"已生成图片列表到 list.md，共 {image_count} 张图片\")\nelse:\n    print(\"当前目录下没有 .webp 图片文件\")",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},"python",{"id":249,"type":92,"has_children":19,"content":250},"38e8fb44-cd86-82bc-be9b-81c22c0d6803",{"rich_text":251,"icon":39,"color":41},[252,256,260,264],{"type":36,"text":253,"annotations":255,"plain_text":254,"href":39},{"content":254,"link":39},"这个代码可以自动把图片转换成体积更小的 ",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"type":36,"text":257,"annotations":259,"plain_text":258,"href":39},{"content":258,"link":39},"webp ",{"bold":29,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"type":36,"text":261,"annotations":263,"plain_text":262,"href":39},{"content":262,"link":39},"文件 并且生成 ",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"type":36,"text":265,"annotations":267,"plain_text":266,"href":39},{"content":266,"link":39},"list.md",{"bold":29,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"id":269,"type":92,"has_children":19,"content":270},"d5b8fb44-cd86-8351-9ad3-01f2c0d9b91e",{"rich_text":271,"icon":39,"color":41},[272],{"type":36,"text":273,"annotations":275,"plain_text":274,"href":39},{"content":274,"link":39},"注意 需要安装 python的Image库",{"bold":29,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":276},"red",{"id":278,"type":92,"has_children":19,"content":279},"fe98fb44-cd86-82bb-a542-810cfb8ba618",{"rich_text":280,"icon":39,"color":41},[281],{"type":36,"text":282,"annotations":284,"plain_text":283,"href":39},{"content":283,"link":39},"CF构建命令\n",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"id":286,"type":239,"has_children":19,"content":287},"b108fb44-cd86-820a-9d45-810594a0c635",{"caption":288,"rich_text":289,"language":294},[],[290],{"type":36,"text":291,"annotations":293,"plain_text":292,"href":39},{"content":292,"link":39},"pip3 install --upgrade pip && pip install pillow && cd .\u002F\u003C单独的文件夹> && python webp.py",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},"shell",{"id":296,"type":92,"has_children":19,"content":297},"9ad8fb44-cd86-8333-8f29-8127688db394",{"rich_text":298,"icon":39,"color":41},[299,303,307,312,316],{"type":36,"text":300,"annotations":302,"plain_text":301,"href":39},{"content":301,"link":39},"如果出现 ",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"type":36,"text":304,"annotations":306,"plain_text":305,"href":39},{"content":305,"link":39},"生成出来的序号",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":177},{"type":36,"text":308,"annotations":310,"plain_text":309,"href":39},{"content":309,"link":39},"不是",{"bold":29,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":311},"yellow",{"type":36,"text":313,"annotations":315,"plain_text":314,"href":39},{"content":314,"link":39},"1开始的",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":276},{"type":36,"text":317,"annotations":319,"plain_text":318,"href":39},{"content":318,"link":39}," 请创建一个文件夹单独放置",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"id":321,"type":92,"has_children":19,"content":322},"93d8fb44-cd86-82b1-a2a2-8159ac5a3810",{"rich_text":323,"icon":39,"color":41},[324],{"type":36,"text":325,"annotations":327,"plain_text":326,"href":39},{"content":326,"link":39},"再搭配",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"id":329,"type":239,"has_children":19,"content":330},"c288fb44-cd86-8351-aa12-812191c9b876",{"caption":331,"rich_text":332,"language":337},[],[333],{"type":36,"text":334,"annotations":336,"plain_text":335,"href":39},{"content":335,"link":39},"\u003C!DOCTYPE html>\n\u003Chtml lang=\"zh-CN\">\n\n\u003Chead>\n  \u003Cmeta charset=\"UTF-8\">\n  \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  \u003Ctitle>图片列表\u003C\u002Ftitle>\n  \u003Clink rel=\"shortcut icon\" type=\"image\u002Fico\" href=\"https:\u002F\u002Fxiaofeishu-picture.pages.dev\u002Fpicture\u002Fico.png\">\n  \u003C!--使用MDUI-->\n  \u003Clink rel=\"stylesheet\" href=\"https:\u002F\u002Funpkg.com\u002Fmdui@1.0.2\u002Fdist\u002Fcss\u002Fmdui.min.css\" \u002F>\n  \u003Cscript src=\"https:\u002F\u002Funpkg.com\u002Fmdui@1.0.2\u002Fdist\u002Fjs\u002Fmdui.min.js\">\u003C\u002Fscript>\n  \u003C!-- 引入Bootstrap的CSS库 -->\n  \u003Clink href=\"https:\u002F\u002Funpkg.com\u002Fbootstrap@5.3.0\u002Fdist\u002Fcss\u002Fbootstrap.min.css\" rel=\"stylesheet\">\n  \u003C!-- 引入Bootstrap的JavaScript库 -->\n  \u003Cscript src=\"https:\u002F\u002Funpkg.com\u002Fbootstrap@5.3.0\u002Fdist\u002Fjs\u002Fbootstrap.bundle.min.js\">\u003C\u002Fscript>\n  \u003Cscript\n    src=\"https:\u002F\u002Funpkg.com\u002Fgenshin-good-words\"\n    charset=\"utf-8\">\u003C\u002Fscript>\n  \u003Cstyle>\n    body {\n      font-weight: 500;\n    }\n\n    \u002F* 为导航栏添加上边距 *\u002F\n    .mdui-appbar {\n      margin-bottom: 20px;\n    }\n  \u003C\u002Fstyle>\n\u003C\u002Fhead>\n\n\u003Cbody>\n  \u003C!--导航栏-->\n  \u003Cdiv class=\"mdui-appbar\" mdui-appbar-fixed>\n    \u003Cdiv class=\"mdui-toolbar mdui-color-indigo\">\n      \u003Ca class=\"mdui-btn mdui-btn-icon\" id=\"toggle\">\n        \u003Ci class=\"mdui-icon material-icons\">menu\u003C\u002Fi>\n      \u003C\u002Fa>\n      \u003Ca href=\"#\" class=\"mdui-typo-headline\">图片列表\u003C\u002Fa>\n      \u003Cdiv class=\"mdui-toolbar-spacer\">\u003C\u002Fdiv>\n      \u003Cdiv class=\"mdui-typo-title\" id=\"ys\">欲买桂花同载酒...只可惜故人，何日再见呢?\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\u003C\u002Fbody>\n\n\u003Cbody class=\"mdui-drawer-body \" style=\"padding-top: 20px;\">\n  \u003Cdiv class=\"mdui-drawer mdui-drawer-close\" id=\"drawer\">\n    \u003Cul class=\"mdui-list\">\n      \u003Cdiv class=\"mdui-card-header\">\n        \u003Cimg class=\"mdui-card-header-avatar\"\n          src=\"https:\u002F\u002Fxiaofeishu-picture.pages.dev\u002Fpicture\u002Fico.png\" \u002F>\n        \u003Cdiv class=\"mdui-card-header-title\">没用的小废鼠\u003C\u002Fdiv>\n        \u003Cdiv class=\"mdui-card-header-subtitle\">awa\u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n      \u003Cli class=\"mdui-subheader\">\u003Ci class=\"mdui-icon material-icons\">link\u003C\u002Fi>更多\u003C\u002Fli>\n      \u003Cli class=\"mdui-list-item mdui-ripple\">\n        \u003Ci class=\"mdui-list-item-icon mdui-icon material-icons\">list\u003C\u002Fi>\n        \u003Ca class=\"mdui-list-item-content\" href=\"https:\u002F\u002Fymh0000123.github.io\u002F\">主页\u003C\u002Fa>\n      \u003C\u002Fli>\n      \u003Cli class=\"mdui-list-item mdui-ripple\">\n        \u003Ci class=\"mdui-list-item-icon mdui-icon material-icons\">assignment\u003C\u002Fi>\n        \u003Ca class=\"mdui-list-item-content\" href=\"https:\u002F\u002Fxiaofeishu-boke.netlify.app\u002F\">blog\u003C\u002Fa>\n      \u003C\u002Fli>\n  \u003C\u002Fdiv>\n\u003C\u002Fbody>\n\n\u003Cbody>\n  \u003Cdiv class=\"mdui-col-md-7 mdui-col-offset-md-3\">\n    \u003Cdiv class=\"card\">\n      \u003Cdiv class=\"card-header\">\n        \u003Cdiv class=\"mdui-typo-display-1\">\u003Ci class=\"mdui-icon material-icons\">view_list\u003C\u002Fi>文件列表\u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"mdui-container\">\n        \u003Ctable class=\"mdui-table mdui-table-hoverable\" id=\"dynamic-table\">\n          \u003Cthead>\n            \u003Ctr>\n              \u003Cth>序号\u003C\u002Fth>\n              \u003Cth>文件名\u003C\u002Fth>\n              \u003Cth>下载链接\u003C\u002Fth>\n            \u003C\u002Ftr>\n          \u003C\u002Fthead>\n          \u003Ctbody>\n            \u003Cul class=\"mdui-list\" id=\"dynamic-list\">\n              \u003C!-- 动态列表将在这里生成 -->\n            \u003C\u002Ful>\n          \u003C\u002Ftbody>\n        \u003C\u002Ftable>\n      \u003C\u002Fdiv>\n\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n  \u003Cscript>\n    var $ = mdui.$;\n    var inst = new mdui.Drawer('#drawer');\n\n    \u002F\u002F method\n\n    $('#toggle').on('click', function () {\n      inst.toggle();\n    });\n\n  \u003C\u002Fscript>\n  \u003Cscript>\n    \u002F\u002F 使用JavaScript来获取README.md文件内容并生成动态列表\n    const dynamicTable = document.getElementById(\"dynamic-table\").getElementsByTagName('tbody')[0];\n\n    \u002F\u002F 发送HTTP请求获取list.md文件内容\n    fetch(\"list.md\")\n      .then(response => response.text())\n      .then(data => {\n        \u002F\u002F 使用正则表达式来解析表格行\n        const tableRows = data.match(\u002F\\|(.+?)\\|(.+?)\\|\\s*\\[下载\\]\\((.+?)\\)\\s*\\|\u002Fg);\n\n        \u002F\u002F 遍历匹配到的行并将数据添加到表格中\n        if (tableRows) {\n          tableRows.forEach(row => {\n            const rowData = row.match(\u002F\\|(.+?)\\|(.+?)\\|\\s*\\[下载\\]\\((.+?)\\)\\s*\\|\u002F);\n\n            if (rowData) {\n              const [_, index, fileName, downloadLink] = rowData;\n              \u002F\u002F 创建表格行\n              const tableRow = dynamicTable.insertRow();\n              \u002F\u002F 创建并添加表格单元格\n              const cell1 = tableRow.insertCell(0);\n              const cell2 = tableRow.insertCell(1);\n              const cell3 = tableRow.insertCell(2);\n\n              cell1.textContent = index.trim();\n              cell2.textContent = fileName.trim();\n              cell3.innerHTML = `\u003Ca href=\"${downloadLink.trim()}\" target=\"_blank\" class=\"mdui-btn mdui-btn-raised mdui-ripple mdui-color-theme-accent mdui-color-teal\">下载\u003C\u002Fa>`;\n            }\n          });\n        }\n      })\n      .catch(error => {\n        console.error(\"无法获取文件内容:\", error);\n      });\n  \u003C\u002Fscript>\n\u003C\u002Fbody>\n\n\u003C\u002Fhtml>",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},"html",{"id":339,"type":92,"has_children":19,"content":340},"a0c8fb44-cd86-83f5-a3f5-01cb666f1e63",{"rich_text":341,"icon":39,"color":41},[342],{"type":36,"text":343,"annotations":345,"plain_text":344,"href":39},{"content":344,"link":39},"使用效果更佳 😀",{"bold":19,"italic":19,"strikethrough":19,"underline":19,"code":19,"color":41},{"id":347,"type":92,"has_children":19,"content":348},"31c8fb44-cd86-8258-92df-012a15e9f40d",{"rich_text":349,"icon":39,"color":41},[]]