►
Description
In this call, we meet with Brett Walker, Senior Backend Engineer in Plan: Project Management to talk about the following topics:
- A brief introduction to the Content Editor.
- How GFM is rendered in the backend and what are the current challenges.
- Updating our commonmarker dependencies to provide inline source maps in the Markdown API.
- Rendering GFM in the client
A
Hi
everyone-
this
is
enrique
from
the
ather
team,
I'm
here
with
brighton
himachal,
to
talk
about
gitlab
flavor
markdown,
to
get
on
the
continuator.
So
this
is
a
sort
of
a
cuny
with
brett
who
has
a
a
great
deal
of
experience
with
marked
down
rendering
at
gibson.
A
So
we
want
to
share
with
him.
We've
been
doing
in
the
content
later
so
far,
he's
going
to
share
with
us
historical
context
of
github,
flavor
markdown
and
also
like
and
he's
gonna
ask
some
questions
that
we
have
about
that.
A
So
I'm
gonna
share
my
screen
to
display
the
gene
that
I'm
going
through
and
go
through
each
point
now.
So
I'm
sharing
my
my
desktop
here.
A
So
we
want
to
start
with.
We
are
introducing
today
to
a
container
and
what
we
are
doing
right
now.
So
what
is
a
container?
A
What
we
are
building
now
is
pretty
much
we
segue
gator
to
allow
it
in
flat,
flavor
markdown,
you
know
like,
without
without
wisdom,
experience
we're
gonna.
I
have
the
continuator
open
here
and
that's
basically
it
like.
We
have
some
goals
in
the
development
of
the
continuator,
ux
goals
and
and
product
goals.
One
of
them
that
is
very
important
for
us
right
now
is
that
we
want
to
have
an
explanation
experience
that
still
allows
a
user
to
type
somewhere
down.
A
So
if
you
want
to
go
and
create
a
head,
a
header
here,
you
can
use
the
the
markdown
syntax
as
well
as
there
are
other
elements
in
writing
accuracy,
texts
or
I
can.
B
A
Like
you
know,
we
have
like
this
concept
of
input
rules
that
allows
you
like
to
type
some
some
markdown
unless
you'll
get
that
rich
text
format
in
the
content
later.
A
Besides,
that,
we
have
like
more,
like
the
more
usual
appreciating
tools
where
you
have
like
the
toolbar,
and
then
you
can
select
text
a
market
as
bold.
We
have
like
some
complex
editing
tools
for
tables.
That
is
like
one
of
the
main
pain
points
of
using
gfm,
where
you
can
insert
a
table
right
here,
insert
columns
and
rows.
A
So
it's
like
you
know
we
are
trying
to
to
target
part
of
our
user
base.
That
is
not
as
comfortable
with
markdown.
As
perhaps
an
engineer,
a
good
team.
A
So
we
are
aspiring
to
be
a
at
the
default
editing
experience
for
markdown
in
the
github
application.
However,
we
acknowledge,
like
from
a
lot
of
feedback,
that
there
is
a
a
great
amount
of
users
who,
with
referrals,
actually
writing
markdown
directly
in
the
source.
So
we
don't
want
like
to
remove
the
source
sighting
that
just
like
provide
this
choice,
that
if
you
want
to
use
a
visualizator
you
can
you
can
do
it.
C
Yeah,
I
was
just
I
was
wondering
if
there
are
any
plans
to
enhance
the
the
text,
editing
experience.
So,
for
example,
you
know
you're,
you're,
you're,
building
a
list
and
you
hit
enter
and
it
builds
the
next.
The
next
item
in
the
list
you
know
automatically
puts
the
mark
down
for
text
setting.
I
understand
that
it's
probably
there
for
the
ones.
A
A
A
So
the
next
point
is
about
how
we
are
how
the
content
data
interacts
with
efm
like
from
a
technical
point
of
view,
how
we
load
get
a
gfm
into
the
content
editor
and
how
we
generate
the
markdown
back
pretty
much.
I
don't
know
if
you
would
like
to
to
cover
that
that
aspect.
A
Yeah
like
taking
the
the
the
wrong
mark
down
compared
to
html
and
loaded
into
the
content
editor
and
the
and
the
backward
process
like
taking
that
into
markdown
again.
B
Yeah,
so
we
don't
convert
mark
down
to
html,
we
just
send
it
to
back
end
and
back
and
converts
it
to
html,
and
then
html
is
actually
converted
to
the
pros
mirrors,
json
format
that
is
used
to
render
the
whatever
content
you
see
on
content
editor
and
when
you
try
to
save
it
again
it
it
is
converted
back
to
markdown
using
closed,
mirror
markdown.
It's
a
it's,
a
library
that
sits
on
top
of
rosemary,
and
it
has
some
of
its
own
extensions.
B
We
just
we
are
adding
our
own
extensions
on
top
of
it
like
to
serialize
custom
elements
like
tables
and
get
lab
references,
and
all
that
we
already
have
this.
We
already
had
this
in
our
codebase
for
about
three
years.
We
are
already
using
it
for
paste
as
markdown
feature.
So
whenever
you
copy
something
anything
inside
like
anywhere,
you
try
to
paste
it
inside
the
any
text
box
in
gitlab.
It
will
convert
everything
into
markdown
and
then
paste.
It.
A
So
yeah,
that's
that
that's
pretty
much
the
process
and
present
recently
something
that
that
we
know
that
is
a
a
big
problem
is
that
when
we
try
like
when
we're
using
the
content
editor
well,
let
me
share
my
my
screen
again
and
if
you
save
this,
this
content,
the
container
which
here
is
marked
down
from
scratch.
So
if
you
are
like
editing
an
existing
wiki
page
with
some
formatting,
this,
like
formatting
preferences,
that
the
content
directory
is
not
adopting
the
contenator
could
just
like
rewrite
all
of
those
formatting
preferences.
A
B
Yeah,
I
think
I
don't
have
gdk
running
right
now,
but
I
can
just
share
a
basic
idea
of
what
I've
come
up
with.
So
it
uses
this
these
source
position
tags
in
the
back
and
rendered
markdown
to
compare
a
paragraph
by
paragraph
what
you
have
changed.
B
So
let's
say
you
have
a
huge
page
of
markdown
content
and
you
just
change
one
little
paragraph
in
there
and
you
you
realize,
with
the
current
content,
it
will
reformat
the
entire
document.
It
will
forget
all
your
line
breaks
your
list
list
style
types
like
all
your
preferences
are
gone
is
going
to
format
the
entire
page.
It's
probably
not
the
way
you
want
it,
so
I
use
source
position
to
figure
out
that
whether
the
markdown
that
was
that
existed
previously
is
the
same
as
the
markdown
that
was
rendered.
B
A
Yeah-
and
that's
that's
one
of
the
reason
brett
that
we
wanted
to
to
talk
with
you,
because
we
are
relying
on
the
source
map
annotations
that
are
coming
in
the
html
output.
However,
we
notice
that
there
are
parts
of
that
html
that
are
not
annotated,
because
the
version
of
common
mark
that
we
are
using
right
now
doesn't
have
annotation
for
for
mark.
You
know
like
for
inline
content,
like
all
texts.
A
And
we
were
thinking
like.
Why
are
we
not
updating
the
our
common
mark
version
to
include
that,
because
now
there
are
newer
versions
of
common
mic
that
provides
source
mapping
for
for
inline
elements,
yeah
that
that
part
of
the
obviously
of
this
of
this
call
like
asking
questions
about
efa
implementation
comes
now.
So
do
you
have
like
any
questions
read
about
what
we've
talked
so
far
about
the
content
directory.
C
No,
actually,
you
covered,
we
covered
most
of
things
and
the
and
that
the
pros
mary
does
operate
completely
on
the
json
and
then
it
and
then
you
convert
it
back.
So
that's
that's
pretty
cool
about
doing
just
saving
the
changes
at
the
block
level.
That's
that
preserves
quite
a
bit
in
the
market.
So
that's
cool.
C
B
C
Yeah,
that's
true,
it
could
have
been
turned
on,
but
we
we
use
it
in
some
other
places
as
well
in
the
code.
So
we
actually
use
that
to
help
track
down
which
which
individual
to
do
items
being
clicked,
so
that
we
can
only
update
that
in
the
markdown
without
re-rendering
the
whole
the
whole
page.
So
we
we.
Actually,
we
do
utilize
as
well.
A
That's
a
that's
a
night,
a
nice
point,
you
know,
so
I
I
I
sure
read
that
as
well.
There
are
acrylic
forge
to
mark
down
that
we're
working
with
the
ux
from
the
foundation
team.
So
now
the
way
that
we
display
markdown
is
not
specified
in
our
design
system
and
we
are
working
with
them
on
creating
a
specification
as
a
markdown
type
scale.
To
make
it
look,
you
know
not
only
look
better
but
from
an
accessibility
point
of
view
also
like
make
it
easier
to
to
consume
for
for
users.
A
So
I
left
a
link
to
an
epic
where
we,
where
you
can.
You
know,
keep
track
of
that
of
the
report.
If
you're
interested.
A
So
yeah
this
is
now
like,
let's
jump
into
the
the
q,
a
my
first
question
is,
you
know
like
if
you
could
give
us
like
a
a
brief
overview
of
markdown
rendering
in
the
gitlab
application
like
what
is
historical
context.
What
were
the
challenges
why
we
ended
up
using
this
bonsai
pipeline.
C
I
I
can't
tell
you
exactly
why,
because
that
was
that
existed
before
I,
I
even
got
on
board,
but
you
know
we
used
to
use
red
carpet
for
our
for
our
markdown
back
when
I
joined,
and
there
was
a
already
a
small
effort
that
I
helped
accelerate
a
little
bit
to
use
switch
to
common
mark,
which
is,
you
know,
very
well,
specified,
very
well
tested
out
and
all
that
stuff,
it's
still
young,
but
it's
a
it's
a
good
base.
Github
of
course
uses
it.
C
They
rebased
on
that
as
well
before
we
didn't,
but
I
mean
the
one
part
you
can
say,
but
for
the
pipeline
you
know
we
we
have
to
be
able
to
add
filters.
We
have
to
be
able
to
take
whatever
the
the
the
basic
render
does
and
apply
a
variety
of
changes
to
it.
Right,
that's
and
that's,
basically
what
the
pipeline
gives
us.
It
gives
us
a
set
of
filters
for
any
pipeline
and
allows
us
just
to
go
through
it
and
okay.
We
need
to.
We
need
to
handle
external
links.
C
We
need
to
handle
images
so
that
they're
lazy
loaded.
We
need
to
do
all
our
references
and
go
through
all
those,
so
it
gives
us
a
linear
way
to
really
go
through
and
do
that
not
that
there's
there's
probably
not
some,
certainly
some
optimizations-
that
we
need
to
keep
putting
in
there
and
we
do,
but
so
far
that's
it's
worked
out
pretty
good.
A
C
You
know
the
biggest
challenge
right
now
is
is
references
and
because
they
they
really
they
need
access
to
the
database.
You
need
to
know
if
what
the
what
the
title
is
for
for
this
thing,
you
need
to
know
what
project
and
all
this
you
need
to
be
able
to
resolve
some
of
that
stuff
out
as
well
as
redacting.
C
So
we
can't,
we
can't
show
confidential
information
to
a
user
that
doesn't
have
access
to
it
so
when,
when
they
put
a
reference
in,
if
they
don't
have
access
to
that
reference,
they
can't
see
the
title
of
it.
They
can't
see
any
information
about
it.
It's
just
a
dead.
You
know
it's
just
text
and
that's
a
that's
a
real,
that's,
a
real
critical
thing.
C
So
that's
that's
been
a
big
set
of
challenges
and
then,
of
course,
adding
you
know
it's
easy
for
us
to
add
additional
features
that
that
we
can
that
don't
need
to
be
parsed
at
the
markdown
level,
for
example,
our
block
quote
structure
or
something
else
or
the
way
we
handle
image
tags
is
audio
and
video.
If
we
were
to
add
a
new
language
construct,
then
that's
more
difficult
and
we
actually
ran
into
an
issue
with
that
recently,
where
that's
in
handling
escaped
markdown.
C
C
C
Even
if
you
back,
you
know,
put
the
backslash
in
front
of
it.
That
ends
up
being
a
reference
to
an
issue
in
a
lincoln,
so
we
actually
had
to.
We
actually
had
to.
C
Basically,
had
we
had
to
pre-process
the
markdown
run
it
through
the
run
it
through
the
the
common
mark
render
and
then
pre-process
it
again
looking
for
these
special
sequences
so
that
we
could
escape
a
hash
sign
so
that
we
could
later
know.
Oh,
this
was
originally
escaped.
We
need
to
ignore
it
as
a
reference.
C
So
that's
that
we
we
finally
just
solved
that
problem,
but
but
they
weren't,
it
wasn't
solved
in
the
mark
in
the
render
itself
in
the
in
the
commonwealth
window.
A
Exactly
and
that
that's
something
that
I
noticed
while
I
was
reading
the
the
pipeline,
so
we
are
like
taking
some
constructs
like
preferences
and
the
syntax
that
we
use,
define
them
and
like
they
are
coming
like
like
from
the
markdown
parser.
As
you
know,
like
aspects
putting
a
paragraph
and
then
we
are
like
extracting
that
from
the
html
and
actually
processing
the
reference
right.
C
A
Like
did
the
team
that
work
on
on
maintaining
this
pipeline,
you
know
like
consider
to
to
extend
the
the
markdown
partial
in
the
in
the
same
way
that
github
extended
common
mark
to
support
those
expect
special
synthesis.
I
know
that
is,
it
is
very
challenging
and
it
makes
sense
not
to
do
it
if
there
is
an
easier
way.
C
Well,
the
the
you
know,
there's
there's
several
challenges
to
that.
One
is
the
the
common
mark.
C
mark
is
written
in
c,
so
you're
you're
going
to
be,
then
writing
additional
extensions
to
c
in
c
in
order
to
provide
that
and
from
experience
extending
the
parks
down
marker
with
the
new
language
project.
It's
it's.
It's
not
trivial,
that's
not
true!
C
I've
done
it
in
javascript,
we've
marked
down
it
and
stuff,
and
it's
it
becomes
difficult
that
would
that
would
be
a
lot
more
of
a
of
a
burden
on
us
than
than
the
bonsai
pipeline.
I
believe.
C
Would
get
some
some
performance
benefits
out
of
it?
Maybe,
but
the
the
other
thing
we
need
to
be
careful
of
is
in
how
we're
extending
the
language,
and
sometimes
we
don't
need
to
extend
the
language
in
order
to
provide
additional
functionality
and
that's
what
and
that's
what
we've
been
doing.
C
A
This
is
kind
of
a
tangential
question,
but
you've
been
following
the
common
market
spec
for
a
while.
How
often
do
they
add
new
support
for
new
features
like
is
that
something
that
happens
often
like
table
sand
and
dust
leasing
in
gfm
has
existed
for
a
while,
and
they
haven't
included
that
in
commonwealth.
Yet.
C
No,
the
the
problem
with
the
common
mark
spec
is
it's
it's
a
very
slow
process
which
has
frustrated
me
as
frustrated
other
people
too,
and
partly
they're,
focusing
on
the
real
core
of
markdown
and
having
that
fully
specified
and
the
extensions
piece
tables
to-do
lists
those
kinds
of
things
they
still
consider
as
extensions
and
they
haven't
they.
You
know
everybody's
always
proposing.
Why
can't
we
have
it
do
this
and
why
can't
we
have
it?
C
B
Okay,
yeah
one
more
thing
about
the
table
thing
is
that
there's
there's
not
there's
a
couple
of
table
implementations
and
if
they
move
forward
with
one
so
one
kind
of
table
implementation,
the
other
other
people
who
use
the
other
table
implementation
like
the
markdown
eight
tables,
they
would
complain.
Hey
this.
Our
implementation
is
better.
Why
you're
not
picking
our
implementation
over
this
implementation?
C
C
And
I
I
think
I
think
they're
going
to
be
going.
I
think
they're
going
to
stick
with
the
github
table
spec
simply
because
it
is
gfm
is
pretty
much
ubiquitous
in
the
markdown
space
right
now.
So
I
I
don't
see
that
changing
other
than
maybe
additionals
thanks
to
it,
but
the
format
is
changing.
A
So,
oh,
are
you
going
to
say
something
imagine.
A
So
speaking
of
ok
fm
now
we
are
relying
on
on
this
library
that
relies
on
the
gfm
extension
of
of
cmark,
but
then
it
seems
like
this
gfm
ford
has
been
like.
A
I
wouldn't
I
don't
know
if
we
could
say
stale
or
it
is
like
it
has,
it
is
like,
like
it
hasn't,
been
updated
to
the
latest
contributions
to
the
to
the
mark
implementation
that
has,
among
other
things
like
source
map
for
inline
elements
and
we're
relying
on
that,
and
we
have
like
the
same
problem
as
a
result
like
we
don't
have
like
we
are
not
getting
receiving
these
updates
from
from
common
mark.
So
what
do
you
think
about
this
situation?
C
Well,
they
have,
they
have
been
updating,
they
have
been
updating,
see
mark
with
the
latest
latest.
Spec,
though,
has
it
hasn't
been
moved
up
to
3.0,
but.
C
No,
I
need
to
I
or
we
need
to
push
on
the
guys
to
get
the
latest
the
latest
stuff
I've
upgraded
into
into
common
marker,
so
I've
there.
There
are
a
couple
other
there's
another
bug
that
I
need
to
to
report
to
them.
That.
C
B
Yeah
so
so
I
had
pasted
a
link
to
the
inline
when
they
actually
added
inline
support,
and
that
was
back
in
2017.
B
So
either
this
is
already
included
in
gfm
and
it's
turned
off
by
default
and
we
don't
know
about
it.
If
that
is
the
case,
then
that's
great.
We
just
need
to
turn
it
on
and
maybe
like
pass
an
extra
query
parameter
and
we
can
turn
on.
I
think
it
needs
some
parameters
like
it
needs
type
format,
type
to
be
xml
and
you
need
to
enable
source
positions
explicitly.
C
B
Yeah,
so
if
a
common,
we
can
maybe
pass
some
parameter
to
common
marker
to
change
the
kind
of
format
that
that
you
get
from
the
back
end.
That
would
be
great,
so
the
link
that
I've
pasted.
So
if
you
could,
if
you
could
get
something
like
this
in
the
link
and
I'll
just
share
my
screen.
B
Yeah,
if
you
could
get
something
like
this,
this
is
very
similar
to
what
what
is
expected
from
what
is
it,
what
is
rendered
inside
the
close
mirror,
except
for
except
that,
instead
of
x
instead
of
json,
this
is
xml.
B
So
if
we
can
get
something
like
this
and
we
pass
this
information
directly
to
closed
mirror,
we
can
get
a
much
closer
result
to
what
the
user
was
had
in
the
beginning.
C
B
Oh,
I'm
not
sure
it
does,
but
I
mean
this
is
an
example.
I
think
it
can
work
with
html
as
well.
I'm
not
sure
I'm
not
I'm
not
seeing
an
example
of
html.
A
A
An
output
that
cmark
provides
right.
Perhaps
if
you
change
that
that
type
to
html,
it's
going
to
add
the
inline
source
position,
but
up
to
an
html
output.
B
B
The
text
node
the
source
position
for
text
nodes
right
now,
inline
html
inline
text
is
just
just
text.
It's
not
an
html,
I'm
not
sure
if
it's
fully
possible
with
just
markdown
but
but
yeah
we
are
our.
Our
pipeline
will
get
a
lot
stronger
if
we
can
just
to
have.
B
Yeah,
so
my
concern,
my
question
is
mainly
like
first
question
is:
is
it
already
there
in
gfm
cmr
gfm,
if
yeah?
If,
yes,
then,
then
I
think
we
just
need
to
get
see
mark
see
the
the
ruby
library
common
marker
to,
like
maybe
add,
support
for
enabling
this
yeah,
so
that
so,
in
this
case,
like
most
of
our
work,
is
already
done.
B
And
I
think,
if,
if
the
versions
of
like
like
they're,
all
like
0.29
of
c
mark
gfm
and
if
the
versions
are
already
updated
with
upstream
c
mark,
it's
I
mean
if
c
month,
gfm
is
already
upstream
update
with
upstream
of
c
mark,
then
I
think
it's
fine,
but
so
far
when
I
actually
looked
at
it.
B
B
And
it's
it's
140
comes
behind
and
192.,
I'm
not
sure
if
the.
If
the
the
comment
that
we
want
is
included
here,
but
I
think
I
can
just
look
it
up,
but
yeah.
C
It
is
based
on
the
on
the
zero
two
nine
version
of
of
c
mark
as
far
as
as
far
as
I've
found,
I
you
know
I'll,
look
at
it
again
once
we
get
off
here.
So
my
question,
though,
is,
do
you?
Do
you
really
need
the
text
node?
The
key
seems
like
part
of
the
key.
Is
that
as
long
as
the
the
bold
tag
and
the
emphasis
tag
and
stuff
like
that,
have
source
position
attached
to
them,
then
you
may
not
need
then
everything
else
falls
out
as
text.
Basically
right,
yeah
does
everything
else
around.
B
Yeah
it's
good
to
have.
If
you
don't
have
it,
I
think
we
can
still
walk
around
it,
because
it's
essentially
yeah
we,
we
can
still
figure
out
what
the
rest
of
the
text
is,
because
it
is
essentially
mapping
the
differences
of
what's
left
so.
A
C
All
right,
I'll
I'll,
I'm
sure
you
will
too
but
I'll
look
more
into
the
inline
source
stuff
and
see
where
we're
at
with
and
see.
If
I
can't
poke
those
guys
to
start
moving
forward.
If
we
need
to,
I
mean
I,
of
course
we
could
always
fork
off
of
it
and
start
doing
that.
That
was
always
a
consideration
early
on
and
maybe,
if
they're
not
moving
it
forward
and
putting
fixes
in
them.
Maybe
we
need
to
do
that
so
we'll
have
to.
B
Yeah,
so
I
guess
we
just
need
to
bring,
I
mean,
that's
that's
a
great
update
actually,
so
I
just
think
we
need
to
ping
them
to
add
support
for
it.
I
think
that
if
they
already
have
support
for
it,
we
just
need
to
enable,
in
our
back
end
yeah,
somehow
all
right,
cool.
A
A
For
that
cool,
so
let's
jump
to
the
to
the
next
question.
So
obviously,
after
finding
those
those
requirements
and
like
wanting
to
use
a
source
position
for
inline
elements
and
seeing
how
they
did
the
gfm
brick
is,
we
were
wondering
like.
Oh
maybe
we
can
implement
gif
a
gitlab,
flavor,
markdown
trender
in
the
client
and
right
and
it
there
are
other
benefits.
A
Besides
source
positioning
like
it
could
be
a
huge
performance
wins
when,
like
we
are
just
like
moving
the
the
entire
trading
process
with
a
client.
However,
I
know
that
that
there
are
challenges
that
there's
like
big
challenges,
and
I
know
that
preferences
is
one
of
them
and
I
was
wondering
where
are
your
thoughts
on
it?
A
Have
you
considered
before
and
have
you
played
with
that
idea
on
your
own,
like
what
are
your
phone
this
year
I'll
be.
C
Yeah
we
we
have
thought
a
little
bit
about
it.
I
mean
some
of
the
big
challenges
is
what
I
mentioned
before
is
the
database
access
and
you
know
dealing
with
the
references
dealing
with
redaction,
so
those
those
have
to
be
handled
you
would,
you
might
have
to
then
still
query
into
the
into
the
back
end
to
resolve
those
issues.
C
You
know,
or
there
might
be
some
other
solution,
but
I
haven't
come
across
it
yet.
C
C
So
now
we're
now
we're
we're
managing
a
markdown
pipeline,
we're
managing
the
back-end
pipeline
and
all
that
kind
of
stuff,
and
they
got
to
stay
pretty
good
in
sync,
but
personally
I've
done
I've
done
rendering
on
the
front
end
using
mark
down
it
in
personal
projects,.
C
C
Believe
it
or
not,
so
it's
doable,
it's
doable.
A
So
what
do
you
think
about,
like
I,
I've,
been
thinking
about
this
references
problem.
A
Pre-Preprocessing
step
for
the
markdown.
Imagine
that
we
take
a
martin
file
american
source
file
and
we
find
the
reference
definitions
within
the
markdown
and
we
just
convert
them
into
urls.
If
a
user
has
access
to
that
information
and
then
we
move,
we
send
that
mark
down
source,
and
you
know
they
we
don't
have
to.
We
don't
have
to
do
reference
processing
in
the
client,
because
those
references
were
pre-processing
the
back
end.
However,
the
bike
that
was
not
rendered.
C
C
A
A
We
will
have
to
maintain
two
engines
in
gitlab
we're
in
the
back
end
and
one
in
the
client,
because
we
probably
can't
get
rid
of
of
the
gfm
renderer
and
the
one
side
pipeline
in
the
vacuum
and
that's
a
that's
actually
like
a
huge
deal,
probably
even
more
difficult
to
solve
than
preferences.
A
C
So
well,
are
you
saying
how
difficult
would
it
be
to
have
a
node
server
running
to
do
the
rendering
yeah.
A
C
C
No,
that's
just
that.
That's
the
way
it's
always
been
done.
If
we
can,
if
we
can
really
show
a
performance
benefit
from
it,
it's
not
going
to
not
going
to
the
api.
It's
not
going
to
performance
all
that
kind
of
stuff,
then
I
think
it
would
be
worth
considering.
B
B
Javascript
is
definitely
going
to
be
slower
than
c,
but
the
performance
benefit
would
be
moving
the
stuff
to
the
front
end
like
offloading
that
stuff
that
the
backend
has
been
doing.
Let's
say
if
you
have
a
2mb
file
right
now,
it
gives
you
a
like
500
error,
but
if
you
like
offload
it
to
the
front
and
then
do
it
in
batches,
it's
still
possible
to
render,
depending
on
what
kind
of
computer
the
person
has.
C
C
We
are
moving
to
to
using
the
c
version
of
the
renderer
which
we're
not
today,
because
we
had
a
when
we
did
the
conversion.
There
was
a
a
mismatch,
so
we
used
the
ruby,
render
and
common
marker,
but
that's
slower,
so
we're
actually
we're
actually
working
on
on
fixing
that
so
that
we
can
use
the
c
render.
C
But
there's
a
there's
a
bug
in
how
they
and
how
they
render
some
of
the
code.
So,
like
I
gotta
I
gotta
track
down
exactly
whose
problem
it
is,
whether
it's
common
marker
or
cmark
or
spec,
but
that's
some
progress,
so
that
should
actually
be
a
huge,
a
big
win
on
performance,
at
least
from
the
back
end.
So.
A
C
Well,
there's
a
couple
ways
I
mean:
if
yeah
you
can,
I
mean
if
we.
C
You
know,
mark
markdown
is,
is
a
common
mark
compliant
the
there's,
a
reference
implementation,
js
representation
of
common
mark
itself,
markdown
that's
got
various
gfm
extensions
and
all
that
kind
of
stuff.
So
there's
that
it's
not
as
it's
still
not
as
fast
as
the
c
version,
but
it's
it's
pretty
optimized,
though
it
can
be
a
pain
to
extend,
there's,
also
a
ruby
version
of
mark
dunnett
that
reported
from
javascript
to
ruby,
but
that's
that's
even
slower,
there's
also
titus
warm's
new
new
one
called
micro
mark.
B
Yes,
yes,
we
are
yeah
we're
actually
using
that
to
compare
whether
the
new
and
the
old
macdonald's
game.
C
Okay,
okay,
okay,
that's
okay!
That's
new
yeah!
I
use
I
use
mds
in
another
personal
project,
so
it's
been
a
while,
since
I've
been
here
so
yeah,
so
we
can.
We
can
go
in
that
direction
too.
A
Cool
so
yeah,
that
was
that
was
my.
That
was
the
last
question
that
that
we
had
so
I
know
you
would
like
to
to
add
anything
else
to
wrap
up
right
or
how
much.
C
No,
I
I
did
want
to
just
in
general
point
out
that
you
know
we.
We
do
cache
a
lot
of
html
in
the
database,
so
we
do
a
lot
of.
C
B
B
I'm
sorry,
I
didn't
quite
understand
that
sorry,
so
you
cache
everything.
Let's
say
and
my
first
question
is
like:
how
long
do
you
catch
things
for.
C
C
But-
and
you
know,
if,
if
you
never
go
edit,
that
comment,
it
doesn't
change
except
in
one
condition
where
we
update
the.
We
can
break
the
cache
system
wide.
So
when
we
have
security
problems
and
stuff
like
that,
then
we
can
or
or
advancements
that
we
need
to
get
into
everything.
Then
we
bust
the
cash
system
wide
and
when
you
load
it,
then
it
gets.
B
Yeah,
so
if
we
enable
like
we
would
need
a
system
to
bust
the
cache
before
the
person
has
started
editing,
because
we
will
need
the
source
position
for
inline
elements
and
all
that
stuff
as
well.
B
I
mean
when
the
person
is
trying
to
edit
his
comment.
We
would
want
to
burst
the
cash
off
like.
Maybe
we
fetched
the
preview
at
that
time
again.
So
when
you
fetch
it
again,
we
would
want
to
post
the
cash
and
fetch
the
fresh
content
so
that
when
you
enable
the
inline
inline
source
position
feature
which
is
which
we
just
discussed,
that
is
already
there
and
see
mark.
B
So
we
want
that.
It
works
for
everyone.
C
A
C
Well,
it's
it's!
It's
an
actual
column
in
the
database
itself.
Now
there
are
there
is.
There
are
some
things
that
are
now
getting
cash
out
to
redis,
which
I
haven't
fully
dived
into,
but
in
general
any
markdown
you've
got
pretty
much
has
its
own
column
in
the
database
table.
C
So
that's
that
html
is
served
up
after
running
through
our
redaction
process
that
make
sure
that
there's
no
confidential
information.
So
so
every
time
we
display
it's
not
that
we're
we're
running
this
whole
bonsai
thing
every
time.
It's
it's
it's
just
in
those
cases
where
the
cat,
where
that
cash
has
been
busted.
A
That
makes
a
lot
of
sense
cool,
so
actually
that
we
are
on
time
so
right
thanks
so
much
for
giving
us
all
of
this
context
on
gfm.
C
A
Yeah
we've
heard
this
this
feedback
from
from
many
users,
and
we
really
respect
that
and
we
are
going
to
provide
that
always
so.
Thank.