소스 검색

orgmode: recover panic from third-party package

Unknwon 7 년 전
부모
커밋
c407921644
1개의 변경된 파일10개의 추가작업 그리고 1개의 파일을 삭제
  1. 10 1
      pkg/markup/orgmode.go

+ 10 - 1
pkg/markup/orgmode.go

@@ -8,6 +8,8 @@ import (
 	"path/filepath"
 	"strings"
 
+	log "gopkg.in/clog.v1"
+
 	"github.com/chaseadamsio/goorgeous"
 )
 
@@ -25,7 +27,14 @@ func IsOrgModeFile(name string) bool {
 }
 
 // RawOrgMode renders content in Org-mode syntax to HTML without handling special links.
-func RawOrgMode(body []byte, urlPrefix string) []byte {
+func RawOrgMode(body []byte, urlPrefix string) (result []byte) {
+	// TODO: remove recover code once the third-party package is stable
+	defer func() {
+		if err := recover(); err != nil {
+			result = body
+			log.Warn("PANIC (RawOrgMode): %v", err)
+		}
+	}()
 	return goorgeous.OrgCommon(body)
 }