@@ -67,18 +67,19 @@ let python_items = [
6767 link : "/python/视频源码" ,
6868 } ,
6969 { text : "常用命令" , link : "/python/shorthand" } ,
70- { text : "pre-commit【代码格式化】" , link : "/python/libs/pre-commit" } ,
7170] ;
71+
7272let python_col_items = [
7373 {
7474 text : "23种设计模式-Python" ,
75- link : "/python/collection/23种设计模式 /" ,
75+ link : "/python/collection/23-design /" ,
7676 } ,
7777 {
7878 text : "PyQt6实战开发之旅" ,
7979 link : "/python/collection/pyqt6" ,
8080 } ,
8181 { text : "分布式任务队列工具:Celery" , link : "/python/collection/celery" } ,
82+ { text : "pre-commit 简明教程:让你的代码提交更规范" , link : "/python/libs/pre-commit" } ,
8283] ;
8384let backend_items = [
8485 { text : "git提交规范" , link : "/backend/git" } ,
@@ -269,7 +270,7 @@ let sidebar_tmp = {
269270 items : [
270271 {
271272 text : "23种设计模式-Python" ,
272- link : "/python/collection/23种设计模式 /" ,
273+ link : "/python/collection/23-design /" ,
273274 } ,
274275 {
275276 text : "PyQt6实战开发之旅" ,
@@ -323,34 +324,34 @@ let sidebar_tmp = {
323324 items : spider_set_items ,
324325 } ,
325326 ] ,
326- "/python/collection/23种设计模式 /" : [
327+ "/python/collection/23-design /" : [
327328 {
328329 text : "0)23种设计模式-Python,优缺点场景与示例代码" ,
329- link : "/python/collection/23种设计模式 /" ,
330+ link : "/python/collection/23-design /" ,
330331 } ,
331332 {
332333 text : "创建型模式" ,
333334 collapsed : false ,
334335 items : [
335336 {
336337 text : "1)独一无二:探索单例模式在现代编程中的奥秘与实践" ,
337- link : "/python/collection/23种设计模式 /独一无二:探索单例模式在现代编程中的奥秘与实践" ,
338+ link : "/python/collection/23-design /独一无二:探索单例模式在现代编程中的奥秘与实践" ,
338339 } ,
339340 {
340341 text : "2)工厂方法模式:解锁灵活的对象创建策略" ,
341- link : "/python/collection/23种设计模式 /工厂方法模式:解锁灵活的对象创建策略" ,
342+ link : "/python/collection/23-design /工厂方法模式:解锁灵活的对象创建策略" ,
342343 } ,
343344 {
344345 text : "3)抽象工厂模式:深入探索面向对象设计的多样性" ,
345- link : "/python/collection/23种设计模式 /抽象工厂模式:深入探索面向对象设计的多样性" ,
346+ link : "/python/collection/23-design /抽象工厂模式:深入探索面向对象设计的多样性" ,
346347 } ,
347348 {
348349 text : "4)建造者模式:构造复杂对象的艺术" ,
349- link : "/python/collection/23种设计模式 /建造者模式:构造复杂对象的艺术" ,
350+ link : "/python/collection/23-design /建造者模式:构造复杂对象的艺术" ,
350351 } ,
351352 {
352353 text : "5)原型模式:复制对象的智能解决方案" ,
353- link : "/python/collection/23种设计模式 /原型模式:复制对象的智能解决方案" ,
354+ link : "/python/collection/23-design /原型模式:复制对象的智能解决方案" ,
354355 } ,
355356 ] ,
356357 } ,
@@ -360,31 +361,31 @@ let sidebar_tmp = {
360361 items : [
361362 {
362363 text : "6)适配器模式:连接不兼容接口的桥梁" ,
363- link : "/python/collection/23种设计模式 /适配器模式:连接不兼容接口的桥梁" ,
364+ link : "/python/collection/23-design /适配器模式:连接不兼容接口的桥梁" ,
364365 } ,
365366 {
366367 text : "7)代理模式:控制对象访问的智能方式" ,
367- link : "/python/collection/23种设计模式 /代理模式:控制对象访问的智能方式" ,
368+ link : "/python/collection/23-design /代理模式:控制对象访问的智能方式" ,
368369 } ,
369370 {
370371 text : "8)桥接模式:解耦抽象与实现的设计艺术" ,
371- link : "/python/collection/23种设计模式 /桥接模式:解耦抽象与实现的设计艺术" ,
372+ link : "/python/collection/23-design /桥接模式:解耦抽象与实现的设计艺术" ,
372373 } ,
373374 {
374375 text : "9)装饰器模式:动态扩展对象功能的设计艺术" ,
375- link : "/python/collection/23种设计模式 /装饰器模式:动态扩展对象功能的设计艺术" ,
376+ link : "/python/collection/23-design /装饰器模式:动态扩展对象功能的设计艺术" ,
376377 } ,
377378 {
378379 text : "10)外观模式:简化复杂系统的统一接口" ,
379- link : "/python/collection/23种设计模式 /外观模式:简化复杂系统的统一接口" ,
380+ link : "/python/collection/23-design /外观模式:简化复杂系统的统一接口" ,
380381 } ,
381382 {
382383 text : "11)组合模式:构建树形对象结构的设计艺术" ,
383- link : "/python/collection/23种设计模式 /组合模式:构建树形对象结构的设计艺术" ,
384+ link : "/python/collection/23-design /组合模式:构建树形对象结构的设计艺术" ,
384385 } ,
385386 {
386387 text : "12)享元模式:优化资源利用的高效策略" ,
387- link : "/python/collection/23种设计模式 /享元模式:优化资源利用的高效策略" ,
388+ link : "/python/collection/23-design /享元模式:优化资源利用的高效策略" ,
388389 } ,
389390 ] ,
390391 } ,
@@ -394,47 +395,47 @@ let sidebar_tmp = {
394395 items : [
395396 {
396397 text : "13)观察者模式:实现高效事件驱动编程的策略" ,
397- link : "/python/collection/23种设计模式 /观察者模式:实现高效事件驱动编程的策略" ,
398+ link : "/python/collection/23-design /观察者模式:实现高效事件驱动编程的策略" ,
398399 } ,
399400 {
400401 text : "14)策略模式:灵活调整算法的设计精髓" ,
401- link : "/python/collection/23种设计模式 /策略模式:灵活调整算法的设计精髓" ,
402+ link : "/python/collection/23-design /策略模式:灵活调整算法的设计精髓" ,
402403 } ,
403404 {
404405 text : "15)命令模式:封装操作为对象的强大技术" ,
405- link : "/python/collection/23种设计模式 /命令模式:封装操作为对象的强大技术" ,
406+ link : "/python/collection/23-design /命令模式:封装操作为对象的强大技术" ,
406407 } ,
407408 {
408409 text : "16)中介者模式:简化对象间通信的协调者" ,
409- link : "/python/collection/23种设计模式 /中介者模式:简化对象间通信的协调者" ,
410+ link : "/python/collection/23-design /中介者模式:简化对象间通信的协调者" ,
410411 } ,
411412 {
412413 text : "17)备忘录模式:恢复对象状态的智能方式" ,
413- link : "/python/collection/23种设计模式 /备忘录模式:恢复对象状态的智能方式" ,
414+ link : "/python/collection/23-design /备忘录模式:恢复对象状态的智能方式" ,
414415 } ,
415416 {
416417 text : "18)模板方法模式:定义算法骨架的设计策略" ,
417- link : "/python/collection/23种设计模式 /模板方法模式:定义算法骨架的设计策略" ,
418+ link : "/python/collection/23-design /模板方法模式:定义算法骨架的设计策略" ,
418419 } ,
419420 {
420421 text : "19)迭代器模式:统一访问集合元素的优雅方式" ,
421- link : "/python/collection/23种设计模式 /迭代器模式:统一访问集合元素的优雅方式" ,
422+ link : "/python/collection/23-design /迭代器模式:统一访问集合元素的优雅方式" ,
422423 } ,
423424 {
424425 text : "20)状态模式:管理对象状态转换的动态策略" ,
425- link : "/python/collection/23种设计模式 /状态模式:管理对象状态转换的动态策略" ,
426+ link : "/python/collection/23-design /状态模式:管理对象状态转换的动态策略" ,
426427 } ,
427428 {
428429 text : "21)责任链模式:灵活处理请求的分级策略" ,
429- link : "/python/collection/23种设计模式 /责任链模式:灵活处理请求的分级策略" ,
430+ link : "/python/collection/23-design /责任链模式:灵活处理请求的分级策略" ,
430431 } ,
431432 {
432433 text : "22)解释器模式:专为语言处理定制的模式" ,
433- link : "/python/collection/23种设计模式 /解释器模式:专为语言处理定制的模式" ,
434+ link : "/python/collection/23-design /解释器模式:专为语言处理定制的模式" ,
434435 } ,
435436 {
436437 text : "23)访问者模式:处理复杂对象结构的灵活方式" ,
437- link : "/python/collection/23种设计模式 /访问者模式:处理复杂对象结构的灵活方式" ,
438+ link : "/python/collection/23-design /访问者模式:处理复杂对象结构的灵活方式" ,
438439 } ,
439440 ] ,
440441 } ,
0 commit comments