readme file

pull/2/head
Russ Ross 2011-05-28 21:33:16 -06:00
parent 965748ad3d
commit 9a11e96633
3 changed files with 67 additions and 1 deletions

View File

@ -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

59
README.md Normal file
View File

@ -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
`–`
* 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"

View File

@ -231,9 +231,11 @@ func smartypants_cb__number_generic(ob *bytes.Buffer, smrt *smartypants_data, pr
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
}
}