all repos — grayfriday @ 9a11e9663315629a72612dd4bd351b48001db90d

blackfriday fork with a few changes

readme file
Russ Ross russ@russross.com
Sat, 28 May 2011 21:33:16 -0600
commit

9a11e9663315629a72612dd4bd351b48001db90d

parent

965748ad3d565885989e5ed00f996af2dd28de31

3 files changed, 67 insertions(+), 1 deletions(-)

jump to
M MakefileMakefile

@@ -4,4 +4,9 @@ TARG=github.com/russross/blackfriday

GOFILES=markdown.go html.go smartypants.go +package: + include $(GOROOT)/src/Make.pkg + +markdown: package + make -C example
A README.md

@@ -0,0 +1,59 @@

+Black Friday +============ + +This is an implementation of John Gruber's [markdown][1] in [Go][2]. +It is a translation of the [upskirt][3] library written in C with a +few minor changes. It retains the paranoia of the original (it is +careful not to trust its input, and as such it should be safe to +feed it arbitrary user-supplied inputs). It also retains the +emphasis on high performance, and the source is almost as ugly as +the original. + +HTML output is currently supported, along with Smartpants +extensions. + + +Installation +------------ + +Assuming you have recent version of Go installed, along with git: + + goinstall github.com/russross/blackfriday + +will download, compile, and install the package into +`$GOROOT/src/pkg/github.com/russross/blackfriday`. + +Check out `example/main.go` for an example of how to use it. Run +`gomake` in that directory to build a simple command-line markdown +tool: + + cd $GOROOT/src/pkg/github.com/russross/blackfriday + gomake markdown + +will build the binary `markdown` in the `example` directory. + + +Extensions +---------- + +In addition to the extensions offered by upskirt, this package +implements two additional Smartypants options: + +* LaTeX-style dash parsing, where `--` is translated into + `&ndash;` +* Generic fractions, where anything that looks like a fraction + is translated into suitable HTML (instead of just a few special + cases). For example, `4/5` becomes `<sup>4</sup>&frasl;<sub>5</sub>` + + +Todo +---- + +* Code cleanup +* Better code documentation +* Implement a LaTeX backend + + + [1]: http://daringfireball.net/projects/markdown/ "Markdown" + [2]: http://golang.org/ "Go Language" + [3]: http://github.com/tanoku/upskirt "Upskirt"
M smartypants.gosmartypants.go

@@ -231,9 +231,11 @@ if den_end == num_end+1 {

return 0 } if len(text) == den_end || word_boundary(text[den_end]) { + ob.WriteString("<sup>") ob.Write(text[:num_end]) - ob.WriteString("&frasl;") + ob.WriteString("</sup>&frasl;<sub>") ob.Write(text[num_end+1 : den_end]) + ob.WriteString("</sub>") return den_end - 1 } }