Page Menu
Home
Musing Studio
Search
Configure Global Search
Log In
Files
F12142975
README.md
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
10 KB
Subscribers
None
README.md
View Options
Saturday
========
Saturday
is
a
fork
of
[
Blackfriday
](
https
:
//github.com/russross/blackfriday) used on [Write.as](https://write.as).
We
love
Markdown
,
but
aren
'
t
a
Markdown
-
only
platform
.
So
we
'
ve
stripped
out
and
modified
redundant
or
potentially
frustrating
syntax
in
this
library
.
##
Changes
*
Made
images
and
links
behave
like
standard
Markdown
(
now
they
won
'
t
render
when
there
are
spaces
between
label
/
alt
-
text
and
URL
)
12
db6e2f7ebcc5d6d88e5b330e4c6d88b577bc95
*
Only
support
atx
-
style
headings
32843
b3dfc510153e76d8f535a9084fc8e22245a
*
Removed
smart
periods
,
quotes
,
angles
&
backticks
72080
d757965efc04255fd25ad97c76ef6f03ea9
*
Only
support
horizontal
rules
made
of
hyphens
f75e5c8d41435593b7f24243e5c22b50f2b399b4
*
Only
support
fenced
code
blocks
,
not
indented
blocks
8223
c01e430de7fd35f3c38ef75f802734cc0cfc
*
Keep
leading
spaces
in
paragraphs
24845
d212205e789fe24ec27ebc1c4cd121523c9
Blackfriday
[](https://travis-ci.org/russross/blackfriday) [](https://godoc.org/github.com/russross/blackfriday)
-----------
Blackfriday
is
a
[
Markdown
][
1
]
processor
implemented
in
[
Go
][
2
].
It
is
paranoid
about
its
input
(
so
you
can
safely
feed
it
user
-
supplied
data
),
it
is
fast
,
it
supports
common
extensions
(
tables
,
smart
punctuation
substitutions
,
etc
.),
and
it
is
safe
for
all
utf
-
8
(
unicode
)
input
.
HTML
output
is
currently
supported
,
along
with
Smartypants
extensions
.
An
experimental
LaTeX
output
engine
is
also
included
.
It
started
as
a
translation
from
C
of
[
Sundown
][
3
].
###
Installation
Blackfriday
is
compatible
with
Go
1
.
If
you
are
using
an
older
release
of
Go
,
consider
using
v1
.
1
of
blackfriday
,
which
was
based
on
the
last
stable
release
of
Go
prior
to
Go
1
.
You
can
find
it
as
a
tagged
commit
on
github
.
With
Go
1
and
git
installed
:
go
get
github
.
com
/
russross
/
blackfriday
will
download
,
compile
,
and
install
the
package
into
your
`
$
GOPATH
`
directory
hierarchy
.
Alternatively
,
you
can
achieve
the
same
if
you
import
it
into
a
project
:
import
"github.com/russross/blackfriday"
and
`
go
get
`
without
parameters
.
###
Usage
For
basic
usage
,
it
is
as
simple
as
getting
your
input
into
a
byte
slice
and
calling
:
output
:=
blackfriday
.
MarkdownBasic
(
input
)
This
renders
it
with
no
extensions
enabled
.
To
get
a
more
useful
feature
set
,
use
this
instead
:
output
:=
blackfriday
.
MarkdownCommon
(
input
)
####
Sanitize
untrusted
content
Blackfriday
itself
does
nothing
to
protect
against
malicious
content
.
If
you
are
dealing
with
user
-
supplied
markdown
,
we
recommend
running
blackfriday
'
s
output
through
HTML
sanitizer
such
as
[
Bluemonday
](
https
:
//github.com/microcosm-cc/bluemonday).
Here
'
s
an
example
of
simple
usage
of
blackfriday
together
with
bluemonday
:
```
go
import
(
"github.com/microcosm-cc/bluemonday"
"github.com/russross/blackfriday"
)
// ...
unsafe
:=
blackfriday
.
MarkdownCommon
(
input
)
html
:=
bluemonday
.
UGCPolicy
().
SanitizeBytes
(
unsafe
)
```
####
Custom
options
If
you
want
to
customize
the
set
of
options
,
first
get
a
renderer
(
currently
either
the
HTML
or
LaTeX
output
engines
),
then
use
it
to
call
the
more
general
`
Markdown
`
function
.
For
examples
,
see
the
implementations
of
`
MarkdownBasic
`
and
`
MarkdownCommon
`
in
`
markdown
.
go
`
.
You
can
also
check
out
`
blackfriday
-
tool
`
for
a
more
complete
example
of
how
to
use
it
.
Download
and
install
it
using
:
go
get
github
.
com
/
russross
/
blackfriday
-
tool
This
is
a
simple
command
-
line
tool
that
allows
you
to
process
a
markdown
file
using
a
standalone
program
.
You
can
also
browse
the
source
directly
on
github
if
you
are
just
looking
for
some
example
code
:
*
<
http
:
//github.com/russross/blackfriday-tool>
Note
that
if
you
have
not
already
done
so
,
installing
`
blackfriday
-
tool
`
will
be
sufficient
to
download
and
install
blackfriday
in
addition
to
the
tool
itself
.
The
tool
binary
will
be
installed
in
`
$
GOPATH
/
bin
`
.
This
is
a
statically
-
linked
binary
that
can
be
copied
to
wherever
you
need
it
without
worrying
about
dependencies
and
library
versions
.
###
Features
All
features
of
Sundown
are
supported
,
including
:
*
**
Compatibility
**.
The
Markdown
v1
.
0.3
test
suite
passes
with
the
`
--
tidy
`
option
.
Without
`
--
tidy
`
,
the
differences
are
mostly
in
whitespace
and
entity
escaping
,
where
blackfriday
is
more
consistent
and
cleaner
.
*
**
Common
extensions
**,
including
table
support
,
fenced
code
blocks
,
autolinks
,
strikethroughs
,
non
-
strict
emphasis
,
etc
.
*
**
Safety
**.
Blackfriday
is
paranoid
when
parsing
,
making
it
safe
to
feed
untrusted
user
input
without
fear
of
bad
things
happening
.
The
test
suite
stress
tests
this
and
there
are
no
known
inputs
that
make
it
crash
.
If
you
find
one
,
please
let
me
know
and
send
me
the
input
that
does
it
.
NOTE
:
"safety"
in
this
context
means
*
runtime
safety
only
*.
In
order
to
protect
yourself
against
JavaScript
injection
in
untrusted
content
,
see
[
this
example
](
https
:
//github.com/russross/blackfriday#sanitize-untrusted-content).
*
**
Fast
processing
**.
It
is
fast
enough
to
render
on
-
demand
in
most
web
applications
without
having
to
cache
the
output
.
*
**
Thread
safety
**.
You
can
run
multiple
parsers
in
different
goroutines
without
ill
effect
.
There
is
no
dependence
on
global
shared
state
.
*
**
Minimal
dependencies
**.
Blackfriday
only
depends
on
standard
library
packages
in
Go
.
The
source
code
is
pretty
self
-
contained
,
so
it
is
easy
to
add
to
any
project
,
including
Google
App
Engine
projects
.
*
**
Standards
compliant
**.
Output
successfully
validates
using
the
W3C
validation
tool
for
HTML
4.01
and
XHTML
1.0
Transitional
.
###
Extensions
In
addition
to
the
standard
markdown
syntax
,
this
package
implements
the
following
extensions
:
*
**
Intra
-
word
emphasis
supression
**.
The
`
_
`
character
is
commonly
used
inside
words
when
discussing
code
,
so
having
markdown
interpret
it
as
an
emphasis
command
is
usually
the
wrong
thing
.
Blackfriday
lets
you
treat
all
emphasis
markers
as
normal
characters
when
they
occur
inside
a
word
.
*
**
Tables
**.
Tables
can
be
created
by
drawing
them
in
the
input
using
a
simple
syntax
:
```
Name
|
Age
--------|------
Bob
|
27
Alice
|
23
```
*
**
Fenced
code
blocks
**.
In
addition
to
the
normal
4
-
space
indentation
to
mark
code
blocks
,
you
can
explicitly
mark
them
and
supply
a
language
(
to
make
syntax
highlighting
simple
).
Just
mark
it
like
this
:
```
go
func
getTrue
()
bool
{
return
true
}
```
You
can
use
3
or
more
backticks
to
mark
the
beginning
of
the
block
,
and
the
same
number
to
mark
the
end
of
the
block
.
To
preserve
classes
of
fenced
code
blocks
while
using
the
bluemonday
HTML
sanitizer
,
use
the
following
policy
:
```
go
p
:=
bluemonday
.
UGCPolicy
()
p
.
AllowAttrs
(
"class"
).
Matching
(
regexp
.
MustCompile
(
"^language-[a-zA-Z0-9]+$"
)).
OnElements
(
"code"
)
html
:=
p
.
SanitizeBytes
(
unsafe
)
```
*
**
Definition
lists
**.
A
simple
definition
list
is
made
of
a
single
-
line
term
followed
by
a
colon
and
the
definition
for
that
term
.
Cat
:
Fluffy
animal
everyone
likes
Internet
:
Vector
of
transmission
for
pictures
of
cats
Terms
must
be
separated
from
the
previous
definition
by
a
blank
line
.
*
**
Footnotes
**.
A
marker
in
the
text
that
will
become
a
superscript
number
;
a
footnote
definition
that
will
be
placed
in
a
list
of
footnotes
at
the
end
of
the
document
.
A
footnote
looks
like
this
:
This
is
a
footnote
.[^
1
]
[^
1
]:
the
footnote
text
.
*
**
Autolinking
**.
Blackfriday
can
find
URLs
that
have
not
been
explicitly
marked
as
links
and
turn
them
into
links
.
*
**
Strikethrough
**.
Use
two
tildes
(
`
~~
`
)
to
mark
text
that
should
be
crossed
out
.
*
**
Hard
line
breaks
**.
With
this
extension
enabled
(
it
is
off
by
default
in
the
`
MarkdownBasic
`
and
`
MarkdownCommon
`
convenience
functions
),
newlines
in
the
input
translate
into
line
breaks
in
the
output
.
*
**
Smart
quotes
**.
Smartypants
-
style
punctuation
substitution
is
supported
,
turning
normal
double
-
and
single
-
quote
marks
into
curly
quotes
,
etc
.
*
**
LaTeX
-
style
dash
parsing
**
is
an
additional
option
,
where
`
--
`
is
translated
into
`
&
ndash
;
`
,
and
`
---
`
is
translated
into
`
&
mdash
;
`
.
This
differs
from
most
smartypants
processors
,
which
turn
a
single
hyphen
into
an
ndash
and
a
double
hyphen
into
an
mdash
.
*
**
Smart
fractions
**,
where
anything
that
looks
like
a
fraction
is
translated
into
suitable
HTML
(
instead
of
just
a
few
special
cases
like
most
smartypant
processors
).
For
example
,
`
4
/
5
`
becomes
`
<
sup
>
4
</
sup
>&
frasl
;<
sub
>
5
</
sub
>
`
,
which
renders
as
<
sup
>
4
</
sup
>&
frasl
;<
sub
>
5
</
sub
>.
###
Other
renderers
Blackfriday
is
structured
to
allow
alternative
rendering
engines
.
Here
are
a
few
of
note
:
*
[
github_flavored_markdown
](
https
:
//godoc.org/github.com/shurcooL/github_flavored_markdown):
provides
a
GitHub
Flavored
Markdown
renderer
with
fenced
code
block
highlighting
,
clickable
header
anchor
links
.
It
'
s
not
customizable
,
and
its
goal
is
to
produce
HTML
output
equivalent
to
the
[
GitHub
Markdown
API
endpoint
](
https
:
//developer.github.com/v3/markdown/#render-a-markdown-document-in-raw-mode),
except
the
rendering
is
performed
locally
.
*
[
markdownfmt
](
https
:
//github.com/shurcooL/markdownfmt): like gofmt,
but
for
markdown
.
*
LaTeX
output
:
renders
output
as
LaTeX
.
This
is
currently
part
of
the
main
Blackfriday
repository
,
but
may
be
split
into
its
own
project
in
the
future
.
If
you
are
interested
in
owning
and
maintaining
the
LaTeX
output
component
,
please
be
in
touch
.
It
renders
some
basic
documents
,
but
is
only
experimental
at
this
point
.
In
particular
,
it
does
not
do
any
inline
escaping
,
so
input
that
happens
to
look
like
LaTeX
code
will
be
passed
through
without
modification
.
*
[
Md2Vim
](
https
:
//github.com/FooSoft/md2vim): transforms markdown files into vimdoc format.
###
Todo
*
More
unit
testing
*
Improve
unicode
support
.
It
does
not
understand
all
unicode
rules
(
about
what
constitutes
a
letter
,
a
punctuation
symbol
,
etc
.),
so
it
may
fail
to
detect
word
boundaries
correctly
in
some
instances
.
It
is
safe
on
all
utf
-
8
input
.
###
License
[
Blackfriday
is
distributed
under
the
Simplified
BSD
License
](
LICENSE
.
txt
)
[
1
]:
http
:
//daringfireball.net/projects/markdown/ "Markdown"
[
2
]:
http
:
//golang.org/ "Go Language"
[
3
]:
https
:
//github.com/vmg/sundown "Sundown"
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Oct 10, 3:33 AM (1 d, 18 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3440355
Attached To
rWCLI writeas-cli
Event Timeline
Log In to Comment