►
From YouTube: Front matter parsing sync w/Derek + Enrique
Description
A sync up covering:
1. Discuss `gray-matter` tradeoffs
- Thread: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41001#note_406092605
- MR: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41230/diffs#diff-content-3a035132dcdf62b24057cf883778a165beb84f4f
- Use `gray-matter` fork? https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41230#note_406515924
2. If a go and time, explore mock approach for `editable.stringify is not a function` spec issue
A
All
right
cool
we're
going
all
right,
so
this
is
derek
and
enrique
and
we're
just
going
to
have
a
a
little
bit
of
a
chat
with
respect
to
front
matter.
Parsing
within
the
static
site,
editor
kind
of
I'm
working
on
this
right
now
and
I've
gone
back
and
forth
between
using
the
approach
we
currently
have
and
then
using
an
existing
library,
specifically
gray
matter
or
possibly
something
else
for
right.
Now,
that's
at
the
top
of
the
list,
ultimately
there's
a
set
of
trade-offs
that
we're
gonna
ch
chat
about.
A
Quick
so
kind
of
the
goals
of
this
chat,
which
will
should
be
about
roughly
20
minutes
or
so
are
here.
So
one
is,
as
I
kind
of
just
mentioned,
discuss
gray
matter
trade-offs,
who
I
realized,
I'm
gonna
have
to
reshare,
so
you
can
see.
A
More
things:
okay,
so
and
zoom
hijacked,
my
sorry
about
that
and
zoom,
sometimes
all
right.
So
we
have
this
thread,
which
I
can't
click
the
link
right
now,
because
zoom
is
hijacking
this
I'll
figure.
That
out,
then
we
have
a
current,
mr,
that
actually
showcases
the
implementation
of
gray
matter
against
what
we
currently
are
using
and
then
another
point
to
maybe
address
is
gray
matter
is
actually
quite
old,
though
a
lot
of
existing
projects
are
using.
A
It
kind
of
some
big
name
ones,
quote
unquote,
which
is
kind
of
comforting
in
the
sense
that
if
we
leverage
it,
you
know
we're
a
good
company
in
in
a
way,
but
that's
something
to
kind
of
be
a
little
cognizant
of,
but
there's
a
fork,
that's
more!
It's
more
up
to
date.
Naturally,
one
of
the
specific
I
just
quickly
scanned
the
changes.
One
of
them
specific
to
us
that
stood
out
to
me
was
jsc.
A
Ammo
was
upgraded,
so
the
reference
to
which
jsc
amoled
uses,
so
that
could
be
kind
of
important
and
again
there
might
be
other
things
that
solve
some
of
our
issues
like
we
could
have
no
problem
with
this
forklift.
I
just
haven't
tested
it
yet
and
then,
secondly,
if
we
get
have
time
and
maybe
take
a
stab
at
an
issue
I
ran
into
with
with
this,
mr,
I
have
them.
Okay,
now
I
can
click
cool.
A
Where
sorry,
I
lost
my
train
of
thought
with
this,
mr,
where
now
doing
the
gray
matter
approach
resulted
naturally
in
the
tests
failing
and
then
just
trying
to
resolve,
that
is
basically
what
that
piece
is
about,
so
we'll
focus
on
number
one.
So
enrique,
as
you
mentioned
here,
this
is
this
is
kind
of
what
spawned
this
whole
conversation
we've
kind
of
gone
over
this.
A
A
You
know
it
naturally
has
initially
two,
but
now
three
core
issues
and
those
issues
are
basically
just
conflict
with
what
our
ideal
user
experience
is
for
our
users
right
like
ideally,
you
just
open
the
existing
file.
There
should
be
no
changes.
A
Right,
like
it's
just,
is
what
it
is,
but
now,
with
this
gray
matter
approach,
we
have
three
issues
and
those
are-
and
you
can
see
it
here
in
this
image
in
the
gray
matter,
chunk
block
itself
quotes
are
not
preserved,
as
I
mentioned,
with
respect
to
this
fork
that
may
be
resolved
in
the
js
ammo
that
got
updated
so
that
could
be
just
solved.
I
have
no
idea
which
would
be
cool
if
that's
the
case,
the
other
one
is
any
spacing
between
the
front
matter
and
the
content
itself.
A
So
you
see
this
on
line
six
over
here,
where
my
cursor
is
that
gets
removed,
because
the
way
green
matter
works
is
just
it
separates
those
out
and
it
glues
them
back
together,
and
it
never
considers
the
spacing
at
all.
It
does
have
a
what
I
thought
was
a
semi-promising
api
that
was
referred
to
as.
A
I
forget
what
it's
called
but
like
you
could
basically
have
some
amount
of
content
intentionally
in
between
I'm,
I'm
not
a
100
sure
what
that
is,
but
it
didn't
account
for
just
empty
spacing,
which
would
have
been
awesome,
because
then
that
would
have
solved
that
and
then
lastly,
it
also
adds
a
new
pair,
a
new
line
at
the
end
and
a
file
change.
A
So
those
are
the
kind
of
the
three
core
ones,
a
potential
change
in
the
in
the
front
matter,
the
spacing
for
sure
and
then
a
new
line
at
the
very
end
and
then
basically
john
kind
of
provided
some
feedback.
In
terms
of
a
feeling.
I
was
already
feeling
which
is
it's
okay
for
us
to
have
these,
at
least
in
the
short
term,
with
the
trade-off
being
kind
of
a
little
bit
poorer
ux
in
the
short
term
and
something
we
can
probably
resolve.
A
B
Thoughts
yeah,
it's
a
it's
a
great
overview.
I
I'm
thinking
in
the
in
the
same
line
as
as
jen,
I'm
I'm
trying
to
compare
right
now.
They
they.
We
ui,
also
introduces
changes
for
modern
changes
because
there
are,
there
are
formatting
preferences
to
generate
markdown,
the
you
know
the
least
marker.
B
A
I
I
think
so
like
again,
this
is
so,
I
think,
we're
kind
of
I
think,
we're
kind
of
at
the
point
and
correct
me
if
I'm
wrong,
where
we're
just
going
to
kind
of
opt
into
gray
matter
for
the
time
being
and
we're
okay
with
this
trade-off
again
the
initial
goal-
and
I
was
wrestling
with
this
going
back
and
forth
between
exactly
to
your
point
where
you
just
said:
we're
already
enforcing
a
set
of
standards.
What
makes
the
front
matter
related
edits
any
different,
and
I
think
that's
what
you're
saying
is
that
right.
B
A
In
that
sense,
I
think
it
is,
and
again
this
is
something
I
was
wrestling
with
back
and
forth
like
again
trying
to
my
main
goal
I
was
solving
for
was
the
end
user
experience
having
the
most
minimal
noise
and
I've
kind
of
stepped
back
a
little
bit
from
that.
A
You
know
we'll
have
a
much
simpler
solution
and
I
think
so
that's
just
number
one,
I
guess
and
number
two
is.
I
think
we
can
actually
solve
all
of
these
things
with
another
step
that
we
could
layer
on
top
of
gray
matter.
For
example,
like
you
know,
it's
it's
kind
of
easy
to
foresee
us
still
doing
this.
I
actually
did
it
for
the
spacing
one,
but
we'll
do
that
in
a
follow-up.
A
Just
to
keep
this
mr
simpler,
I
think
we
can
resolve
all
these
things
still
and
the
difference
would
be
is
we'd
have
a
fundamentally
simpler
solution
in
that
we
use
gray
matter
and
naturally,
we
delegate
all
the
parsing,
and
we
reduce
all
the
complexity
that
we
have
with
our
current
solution.
So
that's
a
big
win
that
temporary
trade-off.
We
have,
which
is
the
three
issues
I
I
mentioned
previously.
A
We
can
now
layer
on
another
processing,
step
on
top
of
gray
matter,
for
example,
to
to
maintain
and
resolve
these
issues
with
again.
That
would
add
a
little
bit
of
complexity,
but
in
comparison
to
the
beginning
solution,
the
the
delta
would
be
way
smaller
right.
The
complexity
edition
that
we'd,
add
on
top
of
gray
matter,
would
be
really
small
compared
to
if
we
were
to
continue
down
the
path
that
we
are
currently
so
I
think
we
can
actually
get
to
a
scenario
where
you
know
we
don't
have
any
of
these
issues.
A
We
might
maybe
still
in
just
the
front
matter
portion
but
the
end
of
line
one
and
the
spacing.
We
could
totally
resolve
those
pretty
simply
in
my
opinion,
because
we
already
have
the
because
we
have
this
parse
source
file,
abstraction
already,
it's
basically
kind
of
a
small
abstraction
to
using
gray
matter,
and
it's
what
allows
us
to
do
that.
A
We
could
totally
solve
at
least
the
the
second
and
third
issue,
the
jsc
ammo
under
the
hood.
That
gray
matter
is
using
that's
where
I
have
a
little
bit
of
less
confidence
and
that
we'd
be
able
to
solve
in
the
front
matter
portion,
but
we
could
definitely
solve
it
just
the
way
we
are
currently
and
actually
at
least
for
the
handbook's
case
we
could
solve.
A
You
know
all
our
source
files
in
batch,
such
that
the
user
wouldn't
experience
the
front
matter
issue,
or
at
least,
would
be
extremely
minimal
compared
to
like
if
they
were
to
add
something
new.
So
I
think
we
actually
do
have
an
end
point
where
we
solve
still
solve
for
all
these
problems,
but
just
have
a
much
simpler,
more
maintainable
solution.
Basically,.
B
So
I
I
have
a
another
observational
question
about
yama,
so
bring
the
the
article
that
jan
in
his
comments,
I
noticed
that
using
quotes
is
usually
not
necessary
in
in
general
yeah,
unless
you
are
introducing
some
kind
of
a
special
character.
So
have
we
tested
that
yes,
jamo
adds
a
quote
at
quotes
when
it
is
necessary.
A
That
is
a
great
question,
so
I
actually
did
after
that.
After
he
had
that
comment,
I
did.
I
just
used
the
exact
examples
that
they
have
and
saved
it,
and
we
do
get
some
stuff
we
don't
like,
and
I'd
have
to
dig
into.
Why
that's
the
case
so,
like
the
obvious
example
is,
which
is
what
already
happened?
This
is
ours,
so
I'll
take
a
step
back.
Sorry.
So,
to
your
point,
the
link
that
and
for
those
listening
this
this
link
is
what
you're
referring
to
right
and
then
yeah.
A
I
actually
basically
took
a
snippet
of
the
examples,
kind
of
the
tldr
of
that
article
of
samples
and
actually
just
loaded
it
up
with
the
current
mr
and
then
just
saved
it
to
see
what
the
output
is,
and
this
is
what
we
get
so
I
was.
A
Bit
surprised
that
this
one
added
the
string.
I
have
no
idea.
Why
that's
the
case
and
again,
we
can
look
at
all
these
in
detail,
but
yeah
there's
definitely
something
going
on
where
it
changes
it
not
to
our
liking.
So
I'm
not.
That
actually
surprises
me
quite
a
bit
because
I
would
expect
jsc
ammo
to
just
like
it's
the
parser
for
yammel,
so
I
would
expect
it
to
be
like
it
knows
how
to
parse
the
ammo
and
respects
all
the
quote:
variations
and
expectations
around
that.
So
I
was
quite
surprised
about
this.
A
B
A
B
As
well
surprising,
so
it's
so
what
I,
what
I'm
trying
to
understand
is
we
are
basically
let's
say
that
someone
is
1800
page
and
it
said
that
that
person
is
18
the
front
matter
and
they
had
this
title
learning
resources
and
they
had
quotes.
So
they
are
not
not
necessary,
and
I
noticed
that
js
jammo
is
having
some
quotes
in
the
in
the
line.
Eight.
That,
apparently,
is
because
it
is
necessary
right.
A
B
You
decided
that
the
oh
okay,
I
think
that
maybe
we
can,
we
can
check
the
rules.
I
think
that
there
is
a
reason
for
that.
Okay,.
A
Yeah,
I
did
this
real,
quick,
so
just
a
quick
point:
yeah
there's
we
can
feed
options
into
the
the
instance
that
then
gets
fed
to
js
ammo.
So,
yes,
there
we
could
look
into
those
again.
I
did
this
just
super
quick
after
you
shared
that
article,
so
this
may
totally
be
resolved
and
I
would
expect
it
to
be
to
be
honest
because
again,
jsc
ammo,
that's
its
job
is
to
parse
the
ammo,
and
it
should
know
about
the
variations
that
that
can
occur
so.
B
B
So
I
I
don't
see
the
point
of
protecting
what
the
user
is
doing
when
we
are
actually
fixing
different
matters,
that
they
are
writing
using
the
static
site.
Editor.
A
I
I
think
so
too,
and
I
actually
did
a.
I
don't
know
where
it
is.
You
may
recall
this.
I
don't
know
if
I
added
you
or
not
like,
as
you
can
see
just
in
this
example
of
title
and
description,
there's
actually
no
technical
need
to
use
the
quotes.
It's
just
that
in
our
handbook.
That's
been
the
convention
for
so
long
and
it
may
just
be
a
copy-pasted
kind
of
convention.
I
just
don't
know
the
origin
of
it.
A
You
know
this
is
the
handbooks
existed,
I
think
for
six
to
eight
years
or
something
right
with,
like
I
don't
know,
probably
thousand
plus
contributors.
I
have
no
idea
right
like
a
lot
of
people,
so
it
could
just
been
a
convention
that
people
started
following
and
it
wasn't
like
a
tight,
strict
convention
because
again,
there's
no
technical
reason
to
have
the
quotes.
It's
just.
It
still
works.
So
exactly
to
your
point,
the
jsc
animal
actually
just
says
those
are
unnecessary
and
strips
them.
So
I
think
we're
getting
right.
A
B
Perhaps-
and
I
don't
know
if
people
is
used
to
to
use
and
all
their
other
wysiwyg
tools,
for
example,
my
experiences
at
perhaps
10
years
or
15
years
ago,
when
I
used
to
to
use
a
drink
weaver,
I
don't
know
if.
A
B
You
used
to
use
it
too
right.
I
used
it
yes
for
sure
so.
Dreamweaver
was
generating
html
on
css
and
it
was
not
respecting
my
preferences
and
if
I
wanted
to
use
like
wishiwic
tools,
I
had
to
to
understand
that
that
was
what
dreamweaver
was
generating.
Unless
I
was
like
you
know,
specifying
some
preferences.
B
So
I
think
that,
in
my
opinion,
that's
a
an
assumption
that
users
should
be
educated
about
like
okay,
you
understand
which
way
tool
and
it's
going
to
generate
a
very
specific
type
of
content
based
on
some
formatting
preferences.
A
I
totally
agree,
I
was
just
gonna
say
again:
we
can.
We
can
actually
preempt
like
this
right.
For
example,
like
the
aftermath
like
when
I
just
mentioned
that
I
did
a
quick
scan
of
the
our
files,
it
actually
worked
out
to
be
exactly
80
20
throughout
the
handbook,
where
I
think
I
just
looked
for
title
and
description.
A
That
was
the
only
key
I
looked
for,
but
80
still
had
the
quote
at
the
front
and
20
didn't
so
that's
just
like
an
interesting
distribution,
but
they
weren't
necessary
and
and
like
a
huge
majority,
again
we're
talking
specifically
in
the
context
of
the
handbook
with
this
noise.
A
Obviously
we
need
to
account
for
everything
else,
but
again
that
kind
of
goes
back
to
your
point
of
our
education,
which
would
also
come
back
to
the
handbook
use
case,
but
we
can
actually
preempt
our
handbook
use
case
because
we
have
all
the
source
that
we
could
just
clean
this
up
to
begin
with,
and
they
wouldn't
even
have
that
issue
and
that's
something
like
that's
a
really
that's
a
boring
solution
right.
We
can
just
batch
clean
and
we're
already
kind
of
doing
that.
B
That's
right
in
that,
within
that
experience
of
fixing
those
problems,
I've
noticed
that
users
don't
care
about
all
of
the
formatting
changes
that
the
editor
is
introducing,
but
they
are
the
way
they
are
really
concerned
is
about
when
hater
breaks
the
page,
and
that
is
happening
in
several
cases
sure
cool
by
the
way
I
have
another
another
another
thought
about.
B
B
B
So
imagine
that
that
the
user
opens
a
they
wish
that
they
sat
excited.
B
Usually
what
we
do
right
now
is
to
to
use
a
parser's
file
service
and
you
know,
separated
from
the
matter
from
the
from
the
content
of
the
page.
We
do
that
to
hide
the
the
from
the
matter
in
the
whispering
agent.
So
imagine
that
we
don't
have
to
do
that
and
we
just
passed
the
entire
file
today
and
later
to.
B
Sorry,
my
connection
isn't
stable.
I
don't
know
if
you,
if
you
heard
I.
A
Got
you
broke
up
for
a
second,
but
I
I
I
can't.
Basically
I
think
what
you're
saying
is:
can
we
yeah
we
can
solve
that?
I'm
sure
it
sounds
like
specifically
like
your
solution
might
be.
It
sounded
like
you
were
suggesting
that
maybe
the
wysiwyg
mode,
we
actually
have
a
custom
renderer
or
something
that
just
removes
the
front
matter
as
opposed
to
the
way
we're
doing
it
right
now
with
our
source
file.
Maybe
I
I
don't.
B
But
eventually,
perhaps
we
don't
have
to
mutate
the
file,
we
don't
have
to
modify
it
to
start
the
formatter
and
we
just
need
to
parse
it
and
hide
it,
because
the
promoter
becomes
part
of
the
of
the
ast.
B
And
if
you,
what?
If
the
user
wants
to
open
the
the
we
see
with
tools
straight
from
matter,
then
we
perform
that
action.
The
mutation.
B
So
that's
I
I've
been
like
playing
with
that
idea,
because
the
reason
that
we
are
performing
these
mutations
in
the
and
I
started
the
from
the
matter
is
because
the
martial
mode
and
the
wishiwick
mode
of
the
ether
leaving
us
in
the
same
place,
and
we
cannot.
We
can't
separate.
B
B
So
in
a
future
where
we
start,
perhaps
we
replace
the
the
marble
mode
of
toss
ui
with
eight
or
light.
We
get
that
control
back
and
we
can
avoid
metering.
The
page
necessary
cool.
A
Yeah,
I
I
totally
agree.
I
appreciate
you
sure
in
the
context
of
again
people,
I
guess
listening
might
not
know
like
we're.
Obviously
re
thinking
we
since
implementing
toast
ui
we've
come
and
hit
like
a
you
know,
a
check,
a
list
of
issues
that
we
would
like
to
get
resolved,
and
so
we
actually
want
to
have
a
solution
that
actually,
as
you
just
mentioned,
allows
us
to
separate
those
two,
those
two
modes,
basically
being
able
to
actually
have
a
proper
ast
external
from
coast.
A
A
So
basically,
what
I'm
hearing
essentially
is
we're
gonna
go
forward
with
gray
matter
for
the
time
being
we
from
an
iteration
standpoint,
we'll
just
handle
the
or
we'll
just
have
this
noise
in
the
we're
just
gonna,
the
noise
is
gonna,
occur
and
then
in
follow-ups
in
the
near
term,
we
can
do
the
various
steps
to
solve
each
of
those.
Three
issues
and
then,
which
again
is
in
the
short
term,
to
kind
of
do
a
batch
fix
for
these.
A
We
could
add
a
layer
to
reinforce
these
or
preserve
the
spacing
and
remove
the
end
line,
and
then,
when
we
get
to
the
next
phase,
where
we
actually
have
the
proper
ast
and
separation,
then
we
can.
This
will
be
solved
through
that,
essentially,
does
that
make
sense.
It's.
B
Like
exactly
once,
we
have
like
yeah
well,
we
can
scale
our
approach,
we
will
have
more
control
and
we
will
be
able
to
do
more
things.
Sweet.
A
Okay,
cool
that
was
super
helpful
again.
The
past
few
days
have
been
kind
of
interesting
because
I'm
like
in
my
head
mentally,
been
like
great
matter
because
it's
so
much
simpler
and
then
oh
man
there's
all
these
shortcomings
again
just
from
the
ux
kind
of
target,
but
we
can
still
solve
those
and
remove
a
lot
of
complexity.
So
I'm
glad
we
have
this
chat
for
sure.
So.
B
Yeah,
I'm
very
happy
as
well.
It's
been
very,
very
cool
and
very
educational
about
you
know
the
how
javelin
works
and
all
of
that
it's
a
very
interesting
program.
Thank
you.
A
Yeah
totally
great
and
again
it's
one
of
those
things
like
similar
with
toast
ui.
We,
you
never
know
so
you're,
actually
in
the
weeds,
doing
the
doing
the
work
that
you
uncover
these
interesting
little
scenarios
like
there's
no
way
to
know
about
it.
Otherwise,
so
you
just
you
know
you
gotta,
build
and
then
learn
something
cool,
okay,
all
righty.
Well,
I
think
we're
at
time
is
there
anything
else.
A
All
righty
thank
you
and
we'll
probably
see
in
the
trap.