mirror of
				https://github.com/gohugoio/hugo.git
				synced 2024-05-11 05:54:58 +00:00 
			
		
		
		
	Configure footnote rendering.
- The config file can provide FootnoteAnchorPrefix, which will be used by blackfriday when rendering to HTML. A value of `q:` has the effect of making the anchor for a footnote `[^footie]` be `fn:q:footie`. The default is `""`. - The config file can provide FootnoteReturnLinkContents, which will be used by blackfriday when rendering to HTML. A value of `^` has the effect of making the return link be `^` instead of `[return]`.
This commit is contained in:
		| @@ -121,6 +121,8 @@ func InitializeConfig() { | |||||||
| 	viper.SetDefault("PygmentsUseClasses", false) | 	viper.SetDefault("PygmentsUseClasses", false) | ||||||
| 	viper.SetDefault("DisableLiveReload", false) | 	viper.SetDefault("DisableLiveReload", false) | ||||||
| 	viper.SetDefault("PluralizeListTitles", true) | 	viper.SetDefault("PluralizeListTitles", true) | ||||||
|  | 	viper.SetDefault("FootnoteAnchorPrefix", "") | ||||||
|  | 	viper.SetDefault("FootnoteReturnLinkContents", "") | ||||||
|  |  | ||||||
| 	if hugoCmdV.PersistentFlags().Lookup("buildDrafts").Changed { | 	if hugoCmdV.PersistentFlags().Lookup("buildDrafts").Changed { | ||||||
| 		viper.Set("BuildDrafts", Draft) | 		viper.Set("BuildDrafts", Draft) | ||||||
|   | |||||||
| @@ -40,6 +40,7 @@ The following is an example of a toml config file with some of the default value | |||||||
|     builddrafts = false |     builddrafts = false | ||||||
|     baseurl = "http://yoursite.example.com/" |     baseurl = "http://yoursite.example.com/" | ||||||
|     canonifyurls = true |     canonifyurls = true | ||||||
|  |  | ||||||
|     [indexes] |     [indexes] | ||||||
|        category = "categories" |        category = "categories" | ||||||
|        tag = "tags" |        tag = "tags" | ||||||
| @@ -49,6 +50,7 @@ Here is a yaml configuration file which sets a few more options | |||||||
|     --- |     --- | ||||||
|     baseurl: "http://yoursite.example.com/" |     baseurl: "http://yoursite.example.com/" | ||||||
|     title: "Yoyodyne Widget Blogging" |     title: "Yoyodyne Widget Blogging" | ||||||
|  |     footnotereturnlinkcontents: "↩" | ||||||
|     permalinks: |     permalinks: | ||||||
|       post: /:year/:month/:title/ |       post: /:year/:month/:title/ | ||||||
|     params: |     params: | ||||||
|   | |||||||
| @@ -671,49 +671,42 @@ func (page *Page) Convert() error { | |||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
|  |  | ||||||
| func markdownRender(content []byte) []byte { | func getHtmlRenderer(withTOC bool) blackfriday.Renderer { | ||||||
|  | 	renderParameters := blackfriday.HtmlRendererParameters{ | ||||||
|  | 		FootnoteAnchorPrefix:       viper.GetString("FootnoteAnchorPrefix"), | ||||||
|  | 		FootnoteReturnLinkContents: viper.GetString("FootnoteReturnLinkContents"), | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	htmlFlags := 0 | 	htmlFlags := 0 | ||||||
| 	htmlFlags |= blackfriday.HTML_USE_XHTML | 	htmlFlags |= blackfriday.HTML_USE_XHTML | ||||||
| 	htmlFlags |= blackfriday.HTML_USE_SMARTYPANTS | 	htmlFlags |= blackfriday.HTML_USE_SMARTYPANTS | ||||||
| 	htmlFlags |= blackfriday.HTML_SMARTYPANTS_FRACTIONS | 	htmlFlags |= blackfriday.HTML_SMARTYPANTS_FRACTIONS | ||||||
| 	htmlFlags |= blackfriday.HTML_SMARTYPANTS_LATEX_DASHES | 	htmlFlags |= blackfriday.HTML_SMARTYPANTS_LATEX_DASHES | ||||||
| 	htmlFlags |= blackfriday.HTML_FOOTNOTE_RETURN_LINKS | 	htmlFlags |= blackfriday.HTML_FOOTNOTE_RETURN_LINKS | ||||||
| 	renderer := blackfriday.HtmlRenderer(htmlFlags, "", "") |  | ||||||
|  |  | ||||||
| 	extensions := 0 | 	if withTOC { | ||||||
| 	extensions |= blackfriday.EXTENSION_NO_INTRA_EMPHASIS | 		htmlFlags |= blackfriday.HTML_TOC | ||||||
| 	extensions |= blackfriday.EXTENSION_TABLES | 	} | ||||||
| 	extensions |= blackfriday.EXTENSION_FENCED_CODE |  | ||||||
| 	extensions |= blackfriday.EXTENSION_AUTOLINK |  | ||||||
| 	extensions |= blackfriday.EXTENSION_STRIKETHROUGH |  | ||||||
| 	extensions |= blackfriday.EXTENSION_SPACE_HEADERS |  | ||||||
| 	extensions |= blackfriday.EXTENSION_FOOTNOTES |  | ||||||
| 	extensions |= blackfriday.EXTENSION_HEADER_IDS |  | ||||||
|  |  | ||||||
| 	return blackfriday.Markdown(content, renderer, extensions) | 	return blackfriday.HtmlRendererWithParameters(htmlFlags, "", "", renderParameters) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func getMarkdownExtensions() int { | ||||||
|  | 	return 0 | blackfriday.EXTENSION_NO_INTRA_EMPHASIS | | ||||||
|  | 		blackfriday.EXTENSION_TABLES | blackfriday.EXTENSION_FENCED_CODE | | ||||||
|  | 		blackfriday.EXTENSION_AUTOLINK | blackfriday.EXTENSION_STRIKETHROUGH | | ||||||
|  | 		blackfriday.EXTENSION_SPACE_HEADERS | blackfriday.EXTENSION_FOOTNOTES | | ||||||
|  | 		blackfriday.EXTENSION_HEADER_IDS | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func markdownRender(content []byte) []byte { | ||||||
|  | 	return blackfriday.Markdown(content, getHtmlRenderer(false), | ||||||
|  | 		getMarkdownExtensions()) | ||||||
| } | } | ||||||
|  |  | ||||||
| func markdownRenderWithTOC(content []byte) []byte { | func markdownRenderWithTOC(content []byte) []byte { | ||||||
| 	htmlFlags := 0 | 	return blackfriday.Markdown(content, getHtmlRenderer(true), | ||||||
| 	htmlFlags |= blackfriday.HTML_TOC | 		getMarkdownExtensions()) | ||||||
| 	htmlFlags |= blackfriday.HTML_USE_XHTML |  | ||||||
| 	htmlFlags |= blackfriday.HTML_USE_SMARTYPANTS |  | ||||||
| 	htmlFlags |= blackfriday.HTML_SMARTYPANTS_FRACTIONS |  | ||||||
| 	htmlFlags |= blackfriday.HTML_SMARTYPANTS_LATEX_DASHES |  | ||||||
| 	htmlFlags |= blackfriday.HTML_FOOTNOTE_RETURN_LINKS |  | ||||||
| 	renderer := blackfriday.HtmlRenderer(htmlFlags, "", "") |  | ||||||
|  |  | ||||||
| 	extensions := 0 |  | ||||||
| 	extensions |= blackfriday.EXTENSION_NO_INTRA_EMPHASIS |  | ||||||
| 	extensions |= blackfriday.EXTENSION_TABLES |  | ||||||
| 	extensions |= blackfriday.EXTENSION_FENCED_CODE |  | ||||||
| 	extensions |= blackfriday.EXTENSION_AUTOLINK |  | ||||||
| 	extensions |= blackfriday.EXTENSION_STRIKETHROUGH |  | ||||||
| 	extensions |= blackfriday.EXTENSION_SPACE_HEADERS |  | ||||||
| 	extensions |= blackfriday.EXTENSION_FOOTNOTES |  | ||||||
| 	extensions |= blackfriday.EXTENSION_HEADER_IDS |  | ||||||
|  |  | ||||||
| 	return blackfriday.Markdown(content, renderer, extensions) |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func extractTOC(content []byte) (newcontent []byte, toc []byte) { | func extractTOC(content []byte) (newcontent []byte, toc []byte) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user