diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2017-09-21 13:20:14 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-21 13:20:14 +0800 |
commit | 0d80af649a50c4b9e5e4ba764399872fc92f70f2 (patch) | |
tree | f09f289260005bc6913119643230c08c81dfab49 /modules/markup/orgmode/orgmode.go | |
parent | 66bc0ac251f564491ed0a6d5d4cfa0a11af09303 (diff) | |
download | gitea-0d80af649a50c4b9e5e4ba764399872fc92f70f2.tar.gz gitea-0d80af649a50c4b9e5e4ba764399872fc92f70f2.zip |
Add init support of orgmode document type on file view and readme (#2525)
* add init support of orgmode document type on file view and readme
* fix imports
* fix imports and readmeExist
* fix imports order
* fix format
* remove unnecessary convert
Diffstat (limited to 'modules/markup/orgmode/orgmode.go')
-rw-r--r-- | modules/markup/orgmode/orgmode.go | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/modules/markup/orgmode/orgmode.go b/modules/markup/orgmode/orgmode.go new file mode 100644 index 0000000000..f9223a18b5 --- /dev/null +++ b/modules/markup/orgmode/orgmode.go @@ -0,0 +1,56 @@ +// Copyright 2017 The Gitea Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package markup + +import ( + "code.gitea.io/gitea/modules/markup" + "code.gitea.io/gitea/modules/markup/markdown" + + "github.com/chaseadamsio/goorgeous" + "github.com/russross/blackfriday" +) + +func init() { + markup.RegisterParser(Parser{}) +} + +// Parser implements markup.Parser for orgmode +type Parser struct { +} + +// Name implements markup.Parser +func (Parser) Name() string { + return "orgmode" +} + +// Extensions implements markup.Parser +func (Parser) Extensions() []string { + return []string{".org"} +} + +// Render renders orgmode rawbytes to HTML +func Render(rawBytes []byte, urlPrefix string, metas map[string]string, isWiki bool) []byte { + htmlFlags := blackfriday.HTML_USE_XHTML + htmlFlags |= blackfriday.HTML_SKIP_STYLE + htmlFlags |= blackfriday.HTML_OMIT_CONTENTS + renderer := &markdown.Renderer{ + Renderer: blackfriday.HtmlRenderer(htmlFlags, "", ""), + URLPrefix: urlPrefix, + IsWiki: isWiki, + } + + result := goorgeous.Org(rawBytes, renderer) + return result +} + +// RenderString reners orgmode string to HTML string +func RenderString(rawContent string, urlPrefix string, metas map[string]string, isWiki bool) string { + return string(Render([]byte(rawContent), urlPrefix, metas, isWiki)) +} + +// Render implements markup.Parser +func (Parser) Render(rawBytes []byte, urlPrefix string, metas map[string]string, isWiki bool) []byte { + return Render(rawBytes, urlPrefix, metas, isWiki) +} |