diff --git a/source/html/sync.go b/source/html/sync.go
index 1784580f4d8cd019e1b1f9bfd7a339270cfe210b..93c76ce47189c36e80b8e952a0adbde0ad6b3cbb 100644
--- a/source/html/sync.go
+++ b/source/html/sync.go
@@ -33,8 +33,13 @@ func SyncHtml(p string) error {
 	}
 
 	currentDir, _ := os.Getwd()
-	os.Chdir(filepath.Dir(p))
-	defer os.Chdir(currentDir)
+	if err := os.Chdir(filepath.Dir(p)); err != nil {
+		return err
+	}
+
+	defer func() {
+		_ = os.Chdir(currentDir)
+	}()
 
 	specification := types.SyncSpecification{}
 
@@ -72,13 +77,13 @@ func SyncHtml(p string) error {
 				return err
 			}
 
-			fileinfo, err := os.Stat(d)
+			fileInfo, err := os.Stat(d)
 			if err != nil {
 				return err
 			}
 
-			if fileinfo.IsDir() {
-				filepath.Walk(d, func(pp string, info os.FileInfo, err error) error {
+			if fileInfo.IsDir() {
+				if err = filepath.Walk(d, func(pp string, info os.FileInfo, err error) error {
 					if err != nil {
 						return err
 					}
@@ -112,7 +117,9 @@ func SyncHtml(p string) error {
 					}
 
 					return nil
-				})
+				}); err != nil {
+					return err
+				}
 			} else if filepath.Ext(d) == ".html" {
 
 				if exclude != nil {
@@ -121,9 +128,17 @@ func SyncHtml(p string) error {
 						if err != nil {
 							return err
 						}
+
 						if e == d {
 							return nil
 						}
+
+						if r, err := filepath.Match(e, d); err != nil {
+							return err
+						} else if r {
+							return nil
+						}
+
 					}
 				}
 
@@ -134,9 +149,7 @@ func SyncHtml(p string) error {
 
 				destinationFiles[d] = dd
 				destinationFile[absSource] = append(destinationFile[absSource], d)
-
 			}
-
 		}
 
 		for _, r := range specification.Sync {