Преглед на файлове

markdown: support Smartypants (#4162)

Added new config section '[smartypants]', and disabled by default.
Unknwon преди 8 години
родител
ревизия
ac8b1e595f
променени са 6 файла, в които са добавени 37 реда и са изтрити 2 реда
  1. 7 0
      conf/app.ini
  2. 1 1
      gogs.go
  3. 0 0
      modules/bindata/bindata.go
  4. 17 0
      modules/markdown/markdown.go
  5. 11 0
      modules/setting/setting.go
  6. 1 1
      templates/.VERSION

+ 7 - 0
conf/app.ini

@@ -124,6 +124,13 @@ CUSTOM_URL_SCHEMES =
 ; Separate extensions with a comma. To render files w/o extension as markdown, just put a comma
 FILE_EXTENSIONS = .md,.markdown,.mdown,.mkd
 
+[smartypants]
+ENABLED = false
+FRACTIONS = true
+DASHES = true
+LATEX_DASHES = true
+ANGLED_QUOTES = true
+
 [http]
 ; Value for Access-Control-Allow-Origin header, default is not to present
 ACCESS_CONTROL_ALLOW_ORIGIN = 

+ 1 - 1
gogs.go

@@ -16,7 +16,7 @@ import (
 	"github.com/gogits/gogs/modules/setting"
 )
 
-const APP_VER = "0.10.13.0310"
+const APP_VER = "0.10.14.0310"
 
 func init() {
 	setting.AppVer = APP_VER

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
modules/bindata/bindata.go


+ 17 - 0
modules/markdown/markdown.go

@@ -294,6 +294,23 @@ func RenderRaw(body []byte, urlPrefix string) []byte {
 	htmlFlags := 0
 	htmlFlags |= blackfriday.HTML_SKIP_STYLE
 	htmlFlags |= blackfriday.HTML_OMIT_CONTENTS
+
+	if setting.Smartypants.Enabled {
+		htmlFlags |= blackfriday.HTML_USE_SMARTYPANTS
+		if setting.Smartypants.Fractions {
+			htmlFlags |= blackfriday.HTML_SMARTYPANTS_FRACTIONS
+		}
+		if setting.Smartypants.Dashes {
+			htmlFlags |= blackfriday.HTML_SMARTYPANTS_DASHES
+		}
+		if setting.Smartypants.LatexDashes {
+			htmlFlags |= blackfriday.HTML_SMARTYPANTS_LATEX_DASHES
+		}
+		if setting.Smartypants.AngledQuotes {
+			htmlFlags |= blackfriday.HTML_SMARTYPANTS_ANGLED_QUOTES
+		}
+	}
+
 	renderer := &Renderer{
 		Renderer:  blackfriday.HtmlRenderer(htmlFlags, "", ""),
 		urlPrefix: urlPrefix,

+ 11 - 0
modules/setting/setting.go

@@ -153,6 +153,15 @@ var (
 		FileExtensions      []string
 	}
 
+	// Smartypants settings
+	Smartypants struct {
+		Enabled      bool
+		Fractions    bool
+		Dashes       bool
+		LatexDashes  bool
+		AngledQuotes bool
+	}
+
 	// Admin settings
 	Admin struct {
 		DisableRegularOrgCreation bool
@@ -583,6 +592,8 @@ func NewContext() {
 		log.Fatal(2, "Fail to map Webhook settings: %v", err)
 	} else if err = Cfg.Section("markdown").MapTo(&Markdown); err != nil {
 		log.Fatal(2, "Fail to map Markdown settings: %v", err)
+	} else if err = Cfg.Section("smartypants").MapTo(&Smartypants); err != nil {
+		log.Fatal(2, "Fail to map Smartypants settings: %v", err)
 	} else if err = Cfg.Section("admin").MapTo(&Admin); err != nil {
 		log.Fatal(2, "Fail to map Admin settings: %v", err)
 	} else if err = Cfg.Section("cron").MapTo(&Cron); err != nil {

+ 1 - 1
templates/.VERSION

@@ -1 +1 @@
-0.10.13.0310
+0.10.14.0310

Някои файлове не бяха показани, защото твърде много файлове са промени