@@ -426,32 +426,41 @@ export default class InvioPlugin extends Plugin {
426
426
log . info ( 'selected mode' ) ;
427
427
log . info ( 'pub list: ' , pubPathList , unPubList ) ;
428
428
}
429
-
430
- await publishFiles ( client , this . app . vault , pubPathList , allFiles , '' , this . settings , triggerSource , view , ( pathName : string , status : string , meta ?: any ) => {
429
+
430
+ await unpublishFile ( client , this . app . vault , unPubList , ( pathName : string , status : string ) => {
431
431
log . info ( 'publishing ' , pathName , status ) ;
432
432
if ( status === 'START' ) {
433
433
log . info ( 'set file start publishing' , pathName ) ;
434
434
view ?. update ( pathName , { syncStatus : 'publishing' } )
435
435
} else if ( status === 'DONE' ) {
436
- log . info ( 'set file DONE publishing' , pathName ) ;
437
- view ?. update ( pathName , { syncStatus : 'done' , remoteLink : meta } )
436
+ view ?. update ( pathName , { syncStatus : 'done' } )
438
437
} else if ( status === 'FAIL' ) {
439
438
view ?. update ( pathName , { syncStatus : 'fail' } )
440
439
}
441
- } ) ;
440
+ } ) ;
442
441
443
- await unpublishFile ( client , this . app . vault , unPubList , ( pathName : string , status : string ) => {
442
+ if ( pubPathList ?. length === 0 ) {
443
+ if ( unPubList ?. length > 0 ) {
444
+ // Need to update left tree links for unpublish means link deduction
445
+ const indexFile = allFiles . find ( file => file . name === 'index.md' ) || allFiles [ 0 ] ;
446
+ pubPathList . push ( indexFile . path ) ;
447
+ }
448
+ }
449
+ await publishFiles ( client , this . app . vault , pubPathList , allFiles , '' , this . settings , triggerSource , view , ( pathName : string , status : string , meta ?: any ) => {
444
450
log . info ( 'publishing ' , pathName , status ) ;
445
451
if ( status === 'START' ) {
446
452
log . info ( 'set file start publishing' , pathName ) ;
447
453
view ?. update ( pathName , { syncStatus : 'publishing' } )
448
454
} else if ( status === 'DONE' ) {
449
- view ?. update ( pathName , { syncStatus : 'done' } )
455
+ log . info ( 'set file DONE publishing' , pathName ) ;
456
+ view ?. update ( pathName , { syncStatus : 'done' , remoteLink : meta } )
450
457
} else if ( status === 'FAIL' ) {
451
458
view ?. update ( pathName , { syncStatus : 'fail' } )
452
459
}
453
460
} ) ;
454
461
462
+
463
+
455
464
if ( triggerSource === 'force' ) {
456
465
const forceList : string [ ] = [ ] ;
457
466
for ( const key in plan . mixedStates ) {
0 commit comments