aboutsummaryrefslogtreecommitdiff
path: root/markdown/eval.go
diff options
context:
space:
mode:
Diffstat (limited to 'markdown/eval.go')
-rw-r--r--markdown/eval.go18
1 files changed, 14 insertions, 4 deletions
diff --git a/markdown/eval.go b/markdown/eval.go
index db9d150..56bb989 100644
--- a/markdown/eval.go
+++ b/markdown/eval.go
@@ -2,15 +2,25 @@ package markdown
import "html/template"
-func Parse(s string) (template.HTML, *ParseError) {
+type Option struct {
+ ImageSource func(string) string
+}
+
+func Parse(s string, opt *Option) (template.HTML, *ParseError) {
lxs := lex(s)
tree, err := ast(lxs)
if err != nil {
return "", err
}
- return tree.Eval()
+ if opt == nil {
+ opt = new(Option)
+ }
+ if opt.ImageSource == nil {
+ opt.ImageSource = func(s string) string { return s }
+ }
+ return tree.Eval(opt)
}
-func ParseBytes(b []byte) (template.HTML, *ParseError) {
- return Parse(string(b))
+func ParseBytes(b []byte, opt *Option) (template.HTML, *ParseError) {
+ return Parse(string(b), opt)
}