@@ -38,6 +38,7 @@ class Importer {
38
38
this . isVerbose = true ;
39
39
this . dryRun = false ;
40
40
this . safeMode = true ;
41
+ this . allowDraftsToOverwrite = false ;
41
42
this . counts = {
42
43
files : 0
43
44
} ;
@@ -54,6 +55,7 @@ class Importer {
54
55
this . fetcher . setPersistManager ( this . persistManager ) ;
55
56
}
56
57
58
+ // CSS selectors to preserve on markdown conversion
57
59
addPreserved ( selectors ) {
58
60
for ( let sel of ( selectors || "" ) . split ( "," ) ) {
59
61
this . markdownService . addPreservedSelector ( sel ) ;
@@ -69,6 +71,14 @@ class Importer {
69
71
}
70
72
}
71
73
74
+ // --overwrite--allow (independent of and bypasses --overwrite)
75
+ setOverwriteAllow ( overwrite = "" ) {
76
+ let s = overwrite . split ( "," ) ;
77
+ if ( s . includes ( "drafts" ) ) {
78
+ this . allowDraftsToOverwrite = true ;
79
+ }
80
+ }
81
+
72
82
setSafeMode ( safeMode ) {
73
83
this . safeMode = Boolean ( safeMode ) ;
74
84
@@ -477,10 +487,13 @@ ${entry.content}`;
477
487
// File system operations
478
488
// TODO use https://www.npmjs.com/package/diff to compare file contents and skip
479
489
if ( this . safeMode && fs . existsSync ( pathname ) ) {
480
- if ( this . isVerbose ) {
481
- Logger . skipping ( "post" , pathname , entry . url ) ;
490
+ // Not a draft or drafts are skipped (via --overwrite-allow)
491
+ if ( entry . status !== "draft" || ! this . allowDraftsToOverwrite ) {
492
+ if ( this . isVerbose ) {
493
+ Logger . skipping ( "post" , pathname , entry . url ) ;
494
+ }
495
+ continue ;
482
496
}
483
- continue ;
484
497
}
485
498
486
499
if ( this . isVerbose ) {
0 commit comments