Gatsby: рдорд╛рд░реНрдХрдбрд╛рдЙрди рд╕реНрд░реЛрдд рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 5 рдЬреВрди 2016  ┬╖  112рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: gatsbyjs/gatsby

рдХреНрдпрд╛ рдореЗрд░реЗ рдорд╛рд░реНрдХрдбрд╛рдЙрди рд╕реНрд░реЛрдд рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИред рд░рд┐рдПрдХреНрд╢рдирдбрд╛рдЙрди рдЬреИрд╕рд╛ рдХреБрдЫ?

question or discussion

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЗрд╕рд▓рд┐рдП рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдХреЛ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рдорд┐рд╢реНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдл рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЬрдм рд╕реЗ рдореИрдВрдиреЗ рдЧреИрдЯреНрд╕рдмреА рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред

рдФрд░ рдЕрдВрдд рдореЗрдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдЬреЛ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╣рдо рд╕рд╛рдорд╛рдиреНрдп HTML рддрддреНрд╡реЛрдВ рдФрд░ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕реА рдирд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдЬреИрд╕реЗ JSX рдХрд░рддрд╛ рд╣реИ рдЕрд░реНрдерд╛рдд React рдХреЛ рдХреИрдкрд┐рдЯрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рддреЛ рдлрд┐рд░ рдЖрдк рдЕрдкрдиреЗ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдЬреИрд╕реЗ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХреЛрдВ рдХреЛ рд╕реАрдзреЗ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

# Hi folks

I'm writing some markdown about speaker <Person id="Paul Ryan">Paul Ryan</Person> who's the speaker of the house and other stuff.

<InteractiveComponent invertedColors={true} allTheProps={true} />

рддреЛ рдпрд╣ рдПрдХ рдПрдПрд╕рдЯреА рдореЗрдВ рдкрд╛рд░реНрд╕ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдЬреИрд╕реЗ рдХреБрдЫ:

[
  [{ raw: true, value: "<h1>Hi Folks</h1>" }],
  [
    { raw: true, value: "<p>I'm writing some markdown about speaker " },
    {
      raw: false,
      value: {
        name: "Person",
        props: { id: "Paul Ryan", children: "Paul Ryan" }
      }
    },
    { raw: true, value: " who's the speaker of the house and other stuff.</p>" }
  ],
  [
    {
      raw: false,
      value: {
        name: "InteractiveComponent",
        props: { invertedColors: true, allTheProps: true }
      }
    }
  ]
];

рдФрд░ рдлрд┐рд░ рдЖрдкрдХреЗ рдХрдВрдкреЛрдиреЗрдВрдЯ рдореЗрдВ, HTML рдХреЛ рд╕реАрдзреЗ рд░реЗрдВрдбрд░ (рдбреЗрдВрдЬрд░ рд╕реНрдЯрд╛рдЗрд▓) рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рд╣реЗрд▓реНрдкрд░ рдлрдВрдХреНрд╢рди рдкрд╛рд╕ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдПрдХреНрдЯ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдореИрдкрд┐рдВрдЧ рд╣реЛрдЧреА рдЬреИрд╕реЗ:

import React from "react";
import renderHtmlReact from "gatsby-render-html-react";
import Person from "../components/Person";
import InteractiveComponent from "../components/InteractiveComponent";

export default ({ data }) => (
  <div>
    {renderHtmlReact({
      ast: data.markdownRemark.ast,
      componentMap: { Person, InteractiveComponent }
    })}
  </div>
);

// Your query goes down here

рд╣рдореЗрдВ рд░рд┐рдорд╛рд░реНрдХ рдХреЗ рд╕рд╛рде рдЗрд╕ рдХрд╛рдо рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рд░рд┐рдПрдХреНрдЯ "рдПрдЪрдЯреАрдПрдордПрд▓" рдЕрдЫреВрддреЗ рд╕реЗ рд╣реЛрдХрд░ рдЧреБрдЬрд░реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдмрд╕ HTML рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рд░реНрд╕рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдФрд░ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ "JS" рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ JSX рднрд╛рдЧреЛрдВ рдХреЛ рдбреЗрдЯрд╛ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред

рд╡рд┐рдЪрд╛рд░?

рд╕рднреА 112 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣ рдПрдХ рд▓рд╛рдЬрд╡рд╛рдм рд╡рд┐рдЪрд╛рд░ рд╣реИред рдЕрдЧрд░ рдпрд╣ рдЕрднреА рддрдХ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ рддреЛ рдореИрдВ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЛ рддреИрдпрд╛рд░ рд╣реВрдВред

рдореИрдВ рд░рд┐рдПрдХреНрд╢рдирдбрд╛рдЙрди рдХрд╛ рдбреЗрд╡рд▓рдкрд░ рд╣реВрдВред рдЧреИрдЯреНрд╕рдмреА рдХреЗ рд╕рд╛рде рд░рд┐рдПрдХреНрд╢рдирдбрд╛рдЙрди рдХреЛ рджреЗрдЦрдирд╛ рд╢рд╛рдирджрд╛рд░ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рдкрд┐рдВрдЧ рдХрд░реЗрдВ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреНрд░рд╢реНрди рд╣реИрдВ рдпрд╛ рдЗрд╕реЗ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╕рд╣рд╛рдпрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

ЁЯСН рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЕрдиреБрд░реЛрдз рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдХреБрдЫ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛!

рдореИрдВрдиреЗ рдПрдХ рддреНрд╡рд░рд┐рдд рдФрд░ рдЧрдВрджреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдХрд┐ рдХреИрд╕реЗ рдЧреИрдЯреНрд╕рдмреА рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдХреЛ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рд╣реБрдб рдЧреИрдЯреНрд╕рдмреА рдХреЗ рддрд╣рдд рд╡реЗрдмрдкреИрдХ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдХреЗрд╡рд▓ рдПрдХ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рдЖрд╡рд░рдг рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рднреА рд╢рдХреНрддрд┐ рдЕрднреА рднреА рдХреБрдЫ рднреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред

https://github.com/benstepp/gatsby-reactdown

рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдКрдВрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╣реБрдЖред

рдУрд╣ рдмрдврд╝рд┐рдпрд╛! рдЕрдЪреНрдЫрд╛ рдмреЗрдиред рдХрд┐ рдореИрдВ рдЗрдореЗрдЬрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ
рд╣рд╛рд╣рд╛ред рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдПрдВрдбреНрд░реАред

Tue рдкрд░, Jun 7, 2016 рдХреЛ 10:31 рдЕрдкрд░рд╛рд╣реНрди рдмрдЬреЗ Jo Meenen рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдКрдВрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╣реБрдЖред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИред

рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/gatsbyjs/gatsby/issues/312#issuecomment -224492088,
рдпрд╛ рдзрд╛рдЧрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe/AAEVh-2doZe_FXFMBxYTJ5FAVqo4XqxNks5qJlO6gaJpZM4Iubim
ред

@benstepp рдЕрдЪреНрдЫрд╛! рдПрдХ рдЖрд╡рд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдХрд╛рдлреА рд╕реАрдзрд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рддрдм рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬрдм рдПрдХ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХ рдХреЗ рдЕрдВрджрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдХрдбрд╛рдЙрди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдП?

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рддрд░рд╣ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХ md рдлрд╝рд╛рдЗрд▓ рдХреБрдЫ рднреА рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ ...

рдореИрдВ рдПрдХ рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдирдИ рдЧреНрд░рд╛рдлрдХрд▓рд╛рдЗрди рдкрд░рдд (# 420) рдЦреБрд▓ рдЬрд╛рддреА рд╣реИред рдореИрдВрдиреЗ mdash repo рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫрдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓рд╛ https://github.com/wooorm/mdast/issues/13

рдпрд╣ рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рд╣реЛрдЧрд╛! рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдореИрдВ рд░рд┐рдПрдХреНрдЯрдбрд╛рдЙрди рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХрд░реАрдм рдерд╛ рд╣рд╛рд▓рд╛рдВрдХрд┐ ... рдорд╛рд░реНрдХрдбрд╛рдЙрди рдлрд╛рдЗрд▓реЗрдВ рдареАрдХ рд╕реЗ рд╡реЗрдмрдкреИрдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХреЛрдВ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИрдВ (рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд┐рд░реНрдл рдореБрдЭреЗ рдЦрд╛рд▓реА рдШрдЯрдХ рджреЗрддрд╛ рд╣реИ рдЬрдм рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

@ рд╢рдЪрд╛ рдЬреА рдХрд╛ рд░реЗрдкреЛ рд╣реИ рдХрд╣реАрдВ рдореИрдВ рджреЗрдЦ

рд╡рд╛рд╣, рд╡рд╛рдХрдИ рдЕрдЬреАрдм рд╣реИред рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдкреНрд░рдЬрдирди рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛, рдФрд░ рдЕрдм рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рдпрд╣ рднреА рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдмрджрд▓рд╛ ... рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╢рд┐рдХрд╛рдпрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ :)

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреЗрд╡рддрд╛ рдПрдХ рд╕реНрд╡рд░реНрдг рд░рде, рдФрд░ рд▓реЛ рдореЗрдВ рдЙрддрд░реЗ! рдХреЛрдб рдХрд╛рдо рдХрд┐рдпрд╛

@ рд╢рдЪрд╛ рдЬреА рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдХреБрдЫ рдореБрджреНрджреЗ рдереЗ рдХрд┐ рдХреИрд╕реЗ рдкреБрдирд░реНрд╕рдВрд░рдЪрдирд╛ рдЗрд╕рдХреЗ рдХреНрд░рдо рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреА рд╣реИред рд╡реИрд╕реЗ рднреА рдЕрдЧрд░ рдЖрдк рдХреБрдЫ рдореБрджреНрджреЛрдВ рдХреЛ рдорд╛рд░рддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рд╕рдкрд╛рдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реВрдВред

рдирдорд╕реНрдХрд╛рд░! рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рд╣рд╛рд▓рд┐рдпрд╛ рдЕрдкрдбреЗрдЯ рдЖрдпрд╛ рд╣реИ? рдорд╛рд░реНрдХрдбрд╛рдЙрди рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╡рд┐рдзрд┐ рдХреНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдХреЛрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЕрдиреБрд╕рд░рдг рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдзрдиреНрдпрд╡рд╛рдж!

рдЕрднреА рддрдХ рдирд╣реАрдВ :-( рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рдпреЛрдЬрдирд╛ рд╣реИ - рдореВрд▓ рд░реВрдк рд╕реЗ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдХ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рдЖрдк рд╕рднреА рд╕рдВрджрд░реНрднрд┐рдд рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХреЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЖрдпрд╛рдд рдХрд░рдирд╛ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрднреА рддрдХ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ!

@ KyleAMathews рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЕрдкрдиреА

рдпрд╣ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ Gatsby v1 рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рд╣реЛрдЧрд╛ рдЬреЛ рдЗрди рдЪрд░рдгреЛрдВ рдХреЛ рдХрд░реЗрдЧрд╛
рдЦреБрдж рдм рдЦреБрджред

Tue рдкрд░, 2 рдордИ, 2017, 12:50 PM рдкреАрдпреВрд╖ рд╕рд┐рдВрд╣ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

@KyleAMathews https://github.com/KyleAMathews рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореБрдЭреЗ рджреМрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП
рдореЗрд░реА рдорд╛рд░реНрдХрдбрд╛рдЙрди рдлрд╝рд╛рдЗрд▓ рдкрд░ рдПрдХ рдХрдирд╡рд░реНрдЯрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдлрд┐рд░ рджреВрд╕рд░реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЬреЛрдбрд╝реЗрдВ
рдШрдЯрдХреЛрдВ рдХреЛ рд░реВрдкрд╛рдВрддрд░рдг рдЪрд░рдг рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдПрдХ рдмрд╛рд░
рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЕрдВрддрд┐рдо рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ?

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/gatsbyjs/gatsby/issues/312#issuecomment-298741837 ,
рдпрд╛ рдзрд╛рдЧрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAEVh4riB8uXgeRUybcR6OxsC1EAKnkKks5r14kPgaJpZM4bubim
ред

рдореЗрд░реЗ рдХрд╣рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИред

рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ /my-blog/index.md рдкрд░ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдлрд╝рд╛рдЗрд▓ рдереА рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рддрд░рд╣ рджрд┐рдЦрддреА рдереА:

---
title: "hi folks"
---

# This is my broomstick

Yo yo foo

<SweetComponent props="super cool" />

рдлрд┐рд░ рд╢рд░реАрд░ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╡реЗрдмрдкреИрдХ / рдмреИрдмрд▓ / рдЖрджрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рдореЗрдВред

import React from 'react'
import SweetComponent from 'auto-resolve-this-somehow'

class MarkdownBody extends React.Component {
  render () {
    return (
      <div>
        <h1>This is my broomstick</h1>
        <p>Yo yo foo</p>
        <Sweet Component props="super cool" />
      </div>
    )
  }
}

рдЪрд╛рд▓ рд╣рд┐рд╕реНрд╕рд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдЗрд╕реЗ рдЧреИрдЯреНрд╕рдмреА рдХреЗ рдЧреНрд░рд╛рдлрдХрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЖрдк рдХреЗрд╡рд▓ рдПрдХ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдлрд╝рд╛рдЗрд▓ рдХреЗ "рдШрдЯрдХ" рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХреНрд╡реЗрд░реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк HTML рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдХреНрд╡реЗрд░реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╡реИрд╕реЗ рднреА, рдореИрдВрдиреЗ рдЬреЛ рдХреБрдЫ рд╕реЛрдЪрд╛ рд╣реИ, рдЙрд╕рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рд╣реИред

@KyleAMathews рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЕрдм рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдорд┐рд▓ рдЧрдпрд╛ рд╣реИред

рдореЗрд░рд╛ рдЙрджреНрджреЗрд╢реНрдп рдЗрд╕ рддрд░рд╣ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╣реИ рдЬреЛ MathJax, D3.js рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХрд╛ рд▓рд╛рдн рдЙрдард╛рддрд╛ рд╣реИ рдФрд░ рдорд╛рд░реНрдХрдбрд╛рдЙрди рд╕реНрд░реЛрдд рдХреЗ рднреАрддрд░ рддреАрди.js рдПрдиреАрдореЗрд╢рди рдШрдЯрдХреЛрдВ рдХреЛ рднреА рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк html рд╕реНрд░реЛрдд рджреЗрдЦрддреЗ

рдЕрдм рддрдХ рдЬреЛ рдореИрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рддрд╛ рд╣реВрдВ, рдореИрдВ рдХрд▓реНрдкрдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЧреИрдЯреНрд╕рдмреА рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рдЗрд╕ рддрд░рд╣ рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрддреНрдкрд╛рджрди рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рдЦрд╛рдиреЗ рдФрд░ рд╕рдВрд░рдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╣реИ?

рдореИрдВ рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╕реАрдЦрдиреЗ рдХреА рдкреВрд░реА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЧреИрдЯреНрд╕рдмреА рдкреНрд░рдгрд╛рд▓реА рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ рддрд╛рдХрд┐ рдореИрдВ рдЗрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░ рд╕рдХреВрдВ ...

@ рдХреАрд▓рд╛рдордереЗрд╡реНрд╕ , рдореИрдВ рдЖрдкрдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВред

рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдорд╛рд░реНрдХрдбрд╛рдЙрди-рдЗрдЯ-рдЬреЗрдПрдХреНрд╕ рдЬреИрд╕реА рдХреЛрдИ рдЪреАрдЬ рд╡рд╛рдВрдЫрд┐рдд рдПрдордбреА рдЬреЗрдПрд╕ рдШрдЯрдХ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдпрд╛ рд╕реБрдзрд╛рд░ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ?

auto-resolve-this-somehow рднрд╛рдЧ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП, рд╢рд╛рдпрдж рдПрдХ рджреВрд╕рд░рд╛ рдкрд╛рд░реНрд╕рд░ рдЬреЗрдПрд╕рдПрдХреНрд╕ рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдордбреА рдЬреЗрдПрд╕ рдШрдЯрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрдХреИрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдШрдЯрдХ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕реВрдЪреА рдореЗрдВ рдЙрди рд▓реЛрдЧреЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ (рдЬреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдлрд╝рд╛рдЗрд▓ рд▓реБрдХ-рдЕрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ) рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛) рдФрд░ рдлрд┐рд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╕рдВрдмрдВрдзрд┐рдд рдЖрдпрд╛рдд рд▓рд╛рдЗрди рдЬреЛрдбрд╝реЗрдВ?

рдореИрдВ рдЗрд╕ рдкрд░ рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдБ рддрд╛рдХрд┐ рдХреЛрдИ рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднрдпрд╛рдирдХ рд╣реЛ!

рдмрд╕ рдПрдХ рдиреЛрдЯ рдПрдХ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ рдЬреЛ рдпрд╣ рдХрд░ рд░рд╣реА рд╣реИ, рд╢рд╛рдпрдж рдпрд╣ рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛: рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╕реНрдЯрд╛рдЗрд▓рдЧрд╛рдЗрдбрд┐рд╕реНрдЯ ред рдорд╛рд░реНрдХрдбрд╛рдЙрди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрджрд╛рд╣рд░рдг

рдорд╛рд░реНрдХрдбрд╛рдЙрди рдореЗрдВ рдШрдЯрдХреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдореБрдЭреЗ рдмреНрд░реЗрдЯ рд╡рд┐рдХреНрдЯрд░ рдХреА рдЗрд╕ рдХреГрддрд┐ рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реИред

UPD: рдФрд░ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг: mdxc

рдФрд░ рдПрдХ рдЕрдиреНрдп http://thejameskyle.com/react-markings.html

рдПрдХ рд╕рдорд╛рдзрд╛рди react-jsx-parser рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред
Howtographql.com рдкрд░ рд╣рдо рдЗрд╕реЗ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ: https://github.com/howtographql/howtographql/blob/master/src/compenders/Tutorials/Markdown.tsx#L182

рдПрдХ рдиреБрдХрд╕рд╛рди: рдпрд╣ dangerouslySetInnerHTML рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреЗрд╢рдХ рдзреАрдорд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣

  1. HTML рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ
  2. рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдбреЛрдо рдЯреНрд░реА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИ
  3. рд░рд┐рдПрдХреНрдЯ рдХреЗ рд╕рд╛рде рд╡рд░реНрдЪреБрдЕрд▓ рдЯреНрд░реА рд░реЗрдВрдбрд░ рдХрд░рддрд╛ рд╣реИ

рдЗрд╕реЗ рдЧрддрд┐ рджреЗрдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдк рдХрдЪреНрдЪреЗ html рдХреЛ рдЧреНрд░рд╛рдлрдХрд▓ рдХреНрд╡реЗрд░реА рдХреЗ рд╕рд╛рде рди рднреЗрдЬреЗрдВ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдкреНрд░рд╛рд░реВрдк рднреЗрдЬреЗрдВ рдЬрд┐рд╕реЗ Inferno.js рдбреЙрдХреНрд╕ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдЗрд╕ рдЕрдВрддрд┐рдо рдЪрд░рдг рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд╣реАрдВ рдкрд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬреЛ рдХреЛрдИ рднреА рдЗрд╕рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИ рд╡рд╣ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реЛрдЧрд╛

  1. рдЙрдЪрд┐рдд рдЧреНрд░рд╛рдлрд╝рдХреЙрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ, рдЬреЛ рдХрд┐ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдЧреНрд░рд╛рдлрдХреИрд▓рд┐рдХ рдкреНрд░рдХрд╛рд░ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдкреЗрдбрд╝ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
  2. remark рдорд╛рд░реНрдХрдбрд╛рдЙрди рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХрд╛ рд╡реНрдпрд╡рд╕рд╛рдп рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдХреНрд░рдордмрджреНрдз jsx рдкреНрд░рд╛рд░реВрдк рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВред
  3. рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рд╡рд╣ рд╣реИ https://github.com/mapbox/jsxtreme-markdown

рд╣рдо рдПрдХ рд╕рдорд╛рди рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмрд╕ рдорд╛рд░реНрдХрдб рдХреЛ рдЬреЗрдПрд╕рдПрдХреНрд╕ рдШрдЯрдХреЛрдВ рдореЗрдВ рдмрджрд▓реЗрдВред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ JSX рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рд╕реАрдорд╛рдВрдХрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╣рдо рдЕрдкрдиреЗ рдореМрдЬреВрджрд╛ рд░рд┐рдорд╛рд░реНрдХ рд╕реЗрдЯрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рдкрд░рдлреЙрд░реНрдореЗрдВрд╕ рдкреЗрдирд▓реНрдЯреА рдирд╣реАрдВ рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рд╕рд╛рдорд╛рдиреНрдп рд░рд┐рдПрдХреНрдЯ рдкреЗрдЬ рд╣реЛрдЧрд╛ред

Https://github.com/cerebral/marksy рднреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЕрдЪреНрдЫреЗ рдкреНрд░рднрд╛рд╡ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рд╣реИред

рдХреНрдпрд╛ рдЧреИрдЯреНрд╕рдмреА рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд╢рдВрд╕рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ рдпрд╛ рдпрд╣ рдЕрднреА рднреА рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ?

рдирдорд╕реНрддреЗ, рд╣рдорд╛рд░реЗ gatsby markdown рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реАрдорд╛ рд╢реБрд▓реНрдХ рдШрдЯрдХреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рд┐рдлрд╛рд░рд┐рд╢?

рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдПрдХ рдФрд░ рд╡рд┐рдХрд▓реНрдк https://idyll-lang.github.io/

рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдорд╛рд░реНрдХреА рдЙрд╕ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рддрддреНрд╡реЛрдВ рдкреЗрдбрд╝ рджреЗрддрд╛ рд╣реИ, рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдореИрдВ рдХреИрд╕реЗ рдПрдХ gatsby рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

@Kyleamathews @revolunet рдЖрдкрдХреЛ рдЙрди рдШрдЯрдХреЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдореЗрдВ рдХрд╕реНрдЯрдо рддрддреНрд╡реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдмрд╛рдж рдореЗрдВ рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╕рд░рд▓ рд░реВрдк рд╕реЗ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдХреЗ рднреАрддрд░ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмрд╛рдХреА рдХреЗ рдХрд╛рдо рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?

рдпрд╣ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреЗрдбрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреА рдХрд┐рд╕реА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрдЧрд╛ рдФрд░ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдЧрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╣реИ, ReactDOM.render рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдм рднреА рд╣рдореЗрдВ рдПрдХ рдирдпрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдХрд╕реНрдЯрдо рдШрдЯрдХ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдпрд╣ рд╣рдореЗрдВ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯреЛрдВ рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рджреЗрдЧрд╛ред

@abdulhannanali рдорд╛рд░реНрдХрдбрд╛рдЙрди рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдШрдЯрдХреЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╕реНрдЯрдо-рддрддреНрд╡реЛрдВ рдХрд╛ рд╕рд╛рдорд╛рди рдмрд╣реБрдд рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдлреНрд░реЗрдВрдбрд▓реА рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ :)

рдЗрд╕рд▓рд┐рдП рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдХреЛ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рдорд┐рд╢реНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдл рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЬрдм рд╕реЗ рдореИрдВрдиреЗ рдЧреИрдЯреНрд╕рдмреА рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред

рдФрд░ рдЕрдВрдд рдореЗрдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдЬреЛ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╣рдо рд╕рд╛рдорд╛рдиреНрдп HTML рддрддреНрд╡реЛрдВ рдФрд░ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕реА рдирд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдЬреИрд╕реЗ JSX рдХрд░рддрд╛ рд╣реИ рдЕрд░реНрдерд╛рдд React рдХреЛ рдХреИрдкрд┐рдЯрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рддреЛ рдлрд┐рд░ рдЖрдк рдЕрдкрдиреЗ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдЬреИрд╕реЗ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХреЛрдВ рдХреЛ рд╕реАрдзреЗ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

# Hi folks

I'm writing some markdown about speaker <Person id="Paul Ryan">Paul Ryan</Person> who's the speaker of the house and other stuff.

<InteractiveComponent invertedColors={true} allTheProps={true} />

рддреЛ рдпрд╣ рдПрдХ рдПрдПрд╕рдЯреА рдореЗрдВ рдкрд╛рд░реНрд╕ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдЬреИрд╕реЗ рдХреБрдЫ:

[
  [{ raw: true, value: "<h1>Hi Folks</h1>" }],
  [
    { raw: true, value: "<p>I'm writing some markdown about speaker " },
    {
      raw: false,
      value: {
        name: "Person",
        props: { id: "Paul Ryan", children: "Paul Ryan" }
      }
    },
    { raw: true, value: " who's the speaker of the house and other stuff.</p>" }
  ],
  [
    {
      raw: false,
      value: {
        name: "InteractiveComponent",
        props: { invertedColors: true, allTheProps: true }
      }
    }
  ]
];

рдФрд░ рдлрд┐рд░ рдЖрдкрдХреЗ рдХрдВрдкреЛрдиреЗрдВрдЯ рдореЗрдВ, HTML рдХреЛ рд╕реАрдзреЗ рд░реЗрдВрдбрд░ (рдбреЗрдВрдЬрд░ рд╕реНрдЯрд╛рдЗрд▓) рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рд╣реЗрд▓реНрдкрд░ рдлрдВрдХреНрд╢рди рдкрд╛рд╕ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдПрдХреНрдЯ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдореИрдкрд┐рдВрдЧ рд╣реЛрдЧреА рдЬреИрд╕реЗ:

import React from "react";
import renderHtmlReact from "gatsby-render-html-react";
import Person from "../components/Person";
import InteractiveComponent from "../components/InteractiveComponent";

export default ({ data }) => (
  <div>
    {renderHtmlReact({
      ast: data.markdownRemark.ast,
      componentMap: { Person, InteractiveComponent }
    })}
  </div>
);

// Your query goes down here

рд╣рдореЗрдВ рд░рд┐рдорд╛рд░реНрдХ рдХреЗ рд╕рд╛рде рдЗрд╕ рдХрд╛рдо рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рд░рд┐рдПрдХреНрдЯ "рдПрдЪрдЯреАрдПрдордПрд▓" рдЕрдЫреВрддреЗ рд╕реЗ рд╣реЛрдХрд░ рдЧреБрдЬрд░реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдмрд╕ HTML рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рд░реНрд╕рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдФрд░ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ "JS" рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ JSX рднрд╛рдЧреЛрдВ рдХреЛ рдбреЗрдЯрд╛ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред

рд╡рд┐рдЪрд╛рд░?

рдФрд░ рдлрд┐рд░ рдЖрдкрдХреЗ рдХрдВрдкреЛрдиреЗрдВрдЯ рдореЗрдВ, HTML рдХреЛ рд╕реАрдзреЗ рд░реЗрдВрдбрд░ (рдбреЗрдВрдЬрд░ рд╕реНрдЯрд╛рдЗрд▓) рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рд╣реЗрд▓реНрдкрд░ рдлрдВрдХреНрд╢рди рдкрд╛рд╕ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдПрдХреНрдЯ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдореИрдкрд┐рдВрдЧ рд╣реЛрдЧреА рдЬреИрд╕реЗ:
[тАж]
рд╡рд┐рдЪрд╛рд░?

рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рд╣рдо рднреА рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдмрд╣реБрдд рд╕рд░рд▓реАрдХреГрдд, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рд╣рдорд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ JSON рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╕реНрдЯрд╛рдЗрд▓ / рд▓реЗ рдЖрдЙрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдерд╛:

<IconGrid src="sensors.json" />

рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорджрджрдЧрд╛рд░ рдерд╛ рдФрд░ рд╣рдо рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдПрдкреАрдЖрдИ рдкреНрд░рд▓реЗрдЦрди рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рди рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдХреБрдЫ рдХрдореА рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдШрдЯрдХ рдЧреБрдгреЛрдВ рдХреЗ рднреАрддрд░ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реИред рддрд╛рдХрд┐ рдРрд╕рд╛ рдХреБрдЫ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ:

<Api method="post" description="
An API which uses **markdown**.

And having multi line parameters would be helpful as well.
" />

рдЗрд╕ рдЬрдЧрд╣ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╕рд╛рдорд╛рди рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЕрдм рдореБрдЭреЗ рдпрдХреАрди рд╣реЛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╣рд╛рдБ рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╛рд░реНрдХрдбрд╛рдЙрди рд╕реНрддрд░ рдкрд░ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдорддрд▓рдм рдорд╛рд░реНрдХрдбрд╛рдЙрди рдлреНрд▓реЗрд╡рд░ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ jsx / рд░рд┐рдПрдХреНрдЯ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЯрд░рдкреЛрд▓реЗрд╢рди jsx рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ рдФрд░ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдЪреЛрдХ рд╣реИред Jsxtreme-markdown рдкрд╛рд╕ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП markdown рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдордбреА рдкрд╛рд░реНрд╕рд░реНрд╕ рдореЗрдВ рдПрдЪрдЯреАрдПрдордПрд▓ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдкреНрд░рд╛рдХреГрддрд┐рдХ рдХреНрд╖рдорддрд╛ рдкрд░ рдЭреБрдХрд╛рд╡ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕реАрдзрд╛ рдЬреЗрдПрдХреНрд╕рдПрдХреНрд╕ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдкрд░рдХреЗрд╕ рддрддреНрд╡реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛) рд▓реЗрдХрд┐рди рдЖрдк рдЬрд▓реНрджреА рд╕реЗ рдХрд╖реНрдЯрдкреНрд░рдж рд╕реАрдорд╛рдУрдВ рдореЗрдВ рднрд╛рдЧ рдЬрд╛рддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд░ рдЪрд┐рдкрдХреЗ рд╣реБрдП рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдХреЛрдИ рдиреЗрд╕реНрдЯреЗрдб рдорд╛рд░реНрдХрдбрд╛рдЙрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЕрдВрджрд░ рдорд╛рд░реНрдХрдбрд╛рдЙрди) , рдкреНрд░реЙрдкреНрд╕ рдЪрд┐рд▓реНрдбреНрд░реЗрди)ред рджреВрд╕рд░рд╛ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рд╣рд╛рдЗрдбреНрд░реЗрд╢рди рдХрд╖реНрдЯрдкреНрд░рдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рддрддреНрд╡реЛрдВ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рдирдЯрд╛рдЗрдо (рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдХрд╛рдлреА рдмрдбрд╝рд╛) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдХрд┐ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдФрд░ рдкрд░рдлреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рддреНрд╡рд░рд┐рдд рд╕рдордп рдкрд░ рдЧреИрдЯреНрд╕рдмреА рдХреЗ рдлреЛрдХрд╕ рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдЖрд╢рд╛рдЬрдирдХ рддрд░реАрдХрд╛ рдПрдХ рдЕрджреНрднреБрдд рдЖрдзрд╛рд░рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдЧрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдореМрдЬреВрджрд╛ рд▓реЛрдЧреЛрдВ рд╕реЗ рдХрд╛рдлреА рдЕрд▓рдЧ рд╣реИ рдПрдХ рдХрд╛рдлреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ

рдмрд╕ рдореЗрд░реЗ 2 рд╕реЗрдВрдЯ рдореЗрдВ рдлреЗрдВрдХ!

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рдЬрд╛рдирддрд╛ рдерд╛ рдХрд┐ рдЧреИрдЯреНрд╕рдмреА рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рд╣реИ (2 рд╕рд╛рд▓ рдкрд╣рд▓реЗ), рдореИрдВрдиреЗ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реНрдереИрддрд┐рдХ рд╕рд╛рдЗрдЯ рдЬрдирд░реЗрдЯрд░ рдмрдирд╛рдиреЗ рдкрд░ рд░реЛрдХ рд▓рдЧрд╛рдИ рдЬреЛ рдХрд┐ рдЬреЗрдХрд┐рд▓ ( рд░реЛрд╡рд░ ) рдХреЗ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рдерд╛ред рдореИрдВ рдЕрдкрдиреА md рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдорд╛рд░реНрдХрдбрд╛рдЙрди, рд░рд┐рдПрдХреНрд╢рди рдФрд░ html рдХреЛ рдорд┐рд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред

рдореИрдВрдиреЗ рдорд╛рд░реНрдХрдбреИрдВрдЯ рд╕рд╛рдордЧреНрд░реА рдХреЗ рднреАрддрд░ <CapitalizedComponents/> рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реЗрдЧреЗрдХреНрд╕ рдХреЗ рд╕рд╛рде рдЬрд╛рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирд╛ рдФрд░ рдЗрд╕рдореЗрдВ рдХреБрдЫ рдХрд┐рдирд╛рд░реЗ рд╡рд╛рд▓реЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд┐рдпрд╛ред рдЙрд╕ рд╕рдордп, рдореИрдВ рдЪрд┐рдиреНрд╣рд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ рдЬрд┐рд╕рдХрд╛ html рдХреЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреБрдЫ рдЕрдЬреАрдм рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рдерд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореЗрд░реЗ рд╕рд░рд▓реАрдХреГрдд regex рдШрдЯрдХ рдЕрдВрдд рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреА рдФрд░ рдХреЛрдИ рдмрдЪреНрдЪреЛрдВ рдХреЗ рд▓рд┐рдП ... рддреЛ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛:

<Component>
   <Child/>
</Component>

рд╡реИрд╕реЗ рднреА, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП gatsby рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реВрдБ! рдореИрдВ рдЕрдкрдиреЗ jekyll рд╕рд╛рдЗрдЯ рдХреЛ gatsby рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣реВрдБ рдФрд░ рдореИрдВ рд▓рдЧрднрдЧ рдкреВрд░рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдореЗрд░рд╛ рдЕрдЧрд▓рд╛ рдХрд╛рд░реНрдп рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ gekyll рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдШрдЯрдХреЛрдВ рдореЗрдВ md рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдХреЗ рднреАрддрд░ рдореЗрд░реЗ jekyll рдХреЛ рдХреИрд╕реЗ рдмрджрд▓рдирд╛ рд╣реИред

@ рдЬреЗрдХреЗрдВрд╕ рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ dangerouslySetInnerHTML props.children ред

рдпрд╣ 100% рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕реЗрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдореИрдВ рдорд╛рд░реНрдХрдб рдХреЗ рдЕрдВрджрд░ JS рд▓рд┐рдЦрдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рднреА рдмрд╣реБрдд рдмрдбрд╝рд╛ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдВред рдЖрдк рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рднреА рдЯреВрд▓реАрдВрдЧ рд╕рдорд░реНрдерди рдЦреЛ рджреЗрддреЗ рд╣реИрдВред

@jakedeichert рд╣рд╛рдБ, рд╕рд░рд▓ regex рдХреЗрд╡рд▓ рдЗрддрдирд╛ рджреВрд░ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреВрд▓ рдЖрдкрдХреЛ рдЗрд╕ рдХрд╛рдо рдХреЗ рд╕рдорд╛рди рдХреБрдЫ рдорд┐рд▓рд╛! рдпрд╣ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИред рд╣рдо рдПрдХ JS рдкрд╛рд░реНрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рд╕рдВрд░рдЪрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП JSX рдХреЛ рд╕рдордЭрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рд╣рдо рдиреЗрд╕реНрдЯреЗрдб рдШрдЯрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@KyleAMathews рдЖрдкрдиреЗ рдЬреЛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЙрд╕ рдкрд░ рдХреНрдпрд╛ рдкреНрд░рдЧрддрд┐ рд╣реИ?

рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░:

  1. рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдШрдЯрдХ tmp-comment-jsx рд╣реЛрддреЗ рд╣реИрдВ ред рдореИрдВрдиреЗ рдЖрдзрд╛рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ remark-html рдФрд░ hast-util-to-html рдХрд┐рдпрд╛ред
    рдпрд╣рд╛рдБ рдЙрдкрдпреЛрдЧ + рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ: рдЙрджрд╛рд╣рд░рдг
    рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
  2. MapBox рдиреЗ рдПрдХ рдкреИрдХреЗрдЬ рдЯрд┐рдкреНрдкрдгреА-рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рдИ рдЬреЛ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдХреЛ рдЯрд┐рдкреНрдкрдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рддрддреНрд╡реЛрдВ рдореЗрдВ рдмрджрд▓ рджреЗрддреА рд╣реИред рдХрд╕реНрдЯрдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рддрддреНрд╡реЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рдХрд╛рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдХрд┐рд╕реА рдиреЗ рднреА рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред

рдЙрди рджреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рдЧреИрдЯреНрд╕рдмреА рдХреЗ рдЧреНрд░рд╛рдлрдХреНрдпреВрдПрд▓ рдЖрдзрд╛рд░рд┐рдд рдбреЗрдЯрд╛ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЧреНрд░рд╛рдлрдХреЙрд▓ рдкреНрд░рд╢реНрди рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рдХреЛ рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЛ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгреА-рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ => рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ html рд░реВрдкрд╛рдВрддрд░рдг рдЗрд╕ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдорд┐рд▓рддрд╛ рд╣реИ рдЬреЛ рдЖрджрд░реНрд╢ рд╕реЗ рдЕрдзрд┐рдХ рдорд╣рдВрдЧрд╛ рд╣реИред

рддреЛ рдЧреНрд░рд╛рдлрдХреЙрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рд░рдирдЯрд╛рдЗрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореЗрд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдПрдХ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдЖрдпрд╛ рд╣реИ рдЬреЛ рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ рд╕рдВрднрд╡ рд░рдирдЯрд╛рдЗрдо рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдореИрдВ рдЕрдм рд╕рдордЭ рдЧрдпрд╛ред рддреЛ рдХреНрдпрд╛ рдЖрдкрдХреА рд░рд╛рдп рдореЗрдВ рдХреЛрдб рдХреЗ рджреЛ рдЯреБрдХрдбрд╝реЗ рд╣реИрдВ:

  1. markdown -> HAST рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдЬреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред (рдпрд╣ рдХреЛрдб рдмрд┐рд▓реНрдб-рдЯрд╛рдЗрдо рдкрд░ рдЪрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП?)
  2. рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдХреНрд╖рдо HAST -> рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рддрддреНрд╡ (рдпрд╣ рдЧреНрд░рд╛рд╣рдХ рдХреА рдУрд░ рд╕реЗ рдПрдХ рдиреНрдпреВрдирддрдо / рддреБрдЪреНрдЫ рд░рдирдЯрд╛рдЗрдо рдХреЗ рд╕рд╛рде рдЪрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП)

рдХреНрдпрд╛ рдореИрдВ рд╕рд╣реА рд╣реЛ рд░рд╣рд╛ рд╣реВрдБ? рдХреНрдпрд╛ рдореИрдВ рдХреБрдЫ рднреВрд▓ рд░рд╣рд╛ рд╣реВрдБ?

рд╣рд╛рдБ!

рдЗрд╕ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдПрдХ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рджреМрд░рд╛рди рд░реИрди - рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ https://github.com/luiscarli/md-to-react

рдирдорд╕реНрддреЗ,

рдореИрдВ рдЗрд╕ рдкрд░ рдПрдХ рдФрд░ рдЫреБрд░рд╛ рд▓реЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдБред рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рднрд╛рдЧ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рдпрд╣рд╛рдБ HAST рдХреЛ рдЯрд┐рдкреНрдкрдгреА-рдХрд╕реНрдЯрдо-рдПрд▓рд┐рдореЗрдВрдЯ-рдЯреВ- рд╣реИрд╕реНрдЯ рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рдЕрднреА рднреА рдмрд╛рд▓ рддрддреНрд╡реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рд╢рд╛рдпрдж рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡реЗрдмрдкреИрдХ рд▓реЛрдбрд░ред

@KyleAMathews рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ

рджреВрд╕рд░реЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рд╡рд╛рдХреНрдп-рд╡реГрдХреНрд╖ / hast-to-hyperscript рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдЙрдкрдпреЛрдЧ wooorm / рдЯрд┐рдкреНрдкрдгреА-рдЯрд┐рдкреНрдкрдгреА рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред

@ fazouane-marouane рд╢рд╛рдВрдд! рд╣рд╛рдБ, рдПрдХ рддреНрд╡рд░рд┐рдд рдирдЬрд╝рд░ рд╕реЗ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд░реАрдм рд▓рдЧрддрд╛ рд╣реИред рдЕрдЪреНрдЫрд╛ рдХрд╛рд░реНрдп!

рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдо рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЬрд▓реНрджрдмрд╛рдЬреА рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИ рдФрд░ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд░рдирдЯрд╛рдЗрдо рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рд╣рд▓реНрдХрд╛ рд╣реЛ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реЗрдХреНрдЯ рддрддреНрд╡реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрдПрд╕рдЯреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░реЗрдВред рдЗрд╕рд▓рд┐рдП рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рджреВрд╕рд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдЬрд╛рдПрдВред

@KyleAMathews рдпрд╣ рддреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ! рдореИрдВ рдЕрдЧрд▓реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рд╢реЗрд╖ рдЪрд░рдгреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд╣рдореЗрдВ рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рдХрд░реАрдм рд▓реЗ рдЬрд╛рдПрдЧрд╛ред

Hi @ fazouane-marouane & @KyleAMathews , рдореИрдВрдиреЗ рдЖрдкрдХреА рдЪрд░реНрдЪрд╛ рдкрдврд╝реА рд╣реИ рдФрд░ рдЗрд╕ рдРрдк рдкрд░ рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рд╡рд┐рднрд┐рдиреНрди рднрд╛рдЧреЛрдВ рдХреЗ "рд╕рд░рд▓" рд╕рдВрд╕реНрдХрд░рдг рд▓рд╛рдЧреВ рдХрд┐рдП рд╣реИрдВ, рдЬрд┐рди рдкрд░ рдореИрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рджрд┐рд▓рдЪрд╕реНрдк рднрд╛рдЧреЛрдВ рдпрд╣рд╛рдБ рдПрдХ gatsby рдкреНрд▓рдЧрдЗрди рдХреЗ рд░реВрдк рдореЗрдВ @ fazouane-marouane рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рдпрд╣рд╛рдБ HAST рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ред рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЧреНрд░рд╛рдл рдХреЗ рд▓рд┐рдП рдПрдЪрдПрдПрд╕рдЯреА рдХреЛ

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬрд┐рд╕ рд╕рдордп рдореИрдВ рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ, рдпрд╣ рдПрдХрджрдо рд╕рд╣реА, рдЕрдиреБрдХреВрд▓рд┐рдд рдФрд░ рд╕реНрд╡рдЪреНрдЫ рд╣реИред

EDIT: рдореЗрд░рд╛ renderHAST рдШрдЯрдХ рдЙрд╕ рддрд░рд╣ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реИ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рддрд░рдл рд╕реЗ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдХреЗ рд╕рд╛рде рдлреЗрдиреЛрдорд┐рдХ рдбреАрд▓ рд╣реЛрддреА рд╣реИ: https://github.com/phenomic/phenomic/blob/master/packages/plugin-runer-react/src / рд╕рдВрдЧреЛрд╖реНрдареА / BodyRenderer.js

@pbellon рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдЗрд╕рд╕реЗ рд╕рднреА рдХрд╛ рдХрд╛рдлреА рд╕рдордп рдмрдЪреЗрдЧрд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдХреЛ рдмрд╛рдХреА рдЪрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдЖрдЬ рд╢рд╛рдо рдХреЛ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ред

рдПрдХ рдмрд╛рдд рдЬреЛ рдореБрдЭреЗ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рд╡рд╣ рдШрдЯрдХреЛрдВ рдХреЗ рдмрдЪреНрдЪреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╣реИред
рдЕрднреА рдЕрдЧрд░ рдореИрдВ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдореЗрдВ This is a test <MyComponent>let's see how children are handled</MyComponent> MyComponent children рдкреНрд░реЙрдкрд░реНрдЯреА [0, null] рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╛рд░реНрд╕рд░ рдпрд╛ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВ рд╣рд╛рдЗрдб рд╣рд╛рдЗрдб рдХрд░рддрд╛ рд╣реВрдВ рдЙрд╕рд╕реЗ рдЖрддрд╛ рд╣реИред

@ рдкреЗрдмрд▓рди рдпрд╣ рдкрд╛рд░реНрд╕рд░ рд╕реЗ рдЖрддрд╛ рд╣реИред рдпрд╣ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдЪреАрдЬрд╝ рдореЗрдВ рдЗрд╕ рдкреВрд░реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреНрдпреВрдирддрдо рдкрд╛рд░реНрд╕рд░ рд╣реИред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдХреБрдЫ рд╕реБрдзрд╛рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЕрдзрд┐рдХ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдпрджрд┐ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдЖрддреА рд╣реИ рддреЛ рдЙрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред рдпрд╣ рд╡реИрд╕реЗ рднреА рдПрдХ рдЕрдЪреНрдЫрд╛ рдкрд░реАрдХреНрд╖рдг рдЖрдзрд╛рд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред

@ fazouane-marouane рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдЕрдкрдиреЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рддрд░рдл рд╕реЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ (рдФрд░ рдЕрдЧрд░ рдореИрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдз рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдкреАрдЖрд░ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ) рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рддреБрдЪреНрдЫ рд╕рдВрд╢реЛрдзрди рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ side
рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдЖрдкрдХреЗ рд░реЗрдкреЛ рдкрд░ рдПрдХ рдореБрджреНрджрд╛ рдмрдирд╛рдпрд╛

рдореЗрд░реЗ $ 0.02 рдХреЗ рд╕рд╛рде рдЭрдВрдХрд╛рд░ред GitDocs рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ JSX рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдпрд╣рд╛рдБ рдореБрдЭреЗ рдЕрдм рддрдХ рдХреНрдпрд╛ рдорд┐рд▓рд╛ рд╣реИред

рдорд╛рд░реНрдХрдбрд╛рдЙрди рдкрд╛рд░реНрд╕рд┐рдВрдЧ

рдорд╛рд░реНрдХрдбрд╛рдЙрди рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдПрдХреАрдХреГрдд , рдЯрд┐рдкреНрдкрдгреА рдФрд░ рд░реАрд╣рд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЬреЗрдПрд╕рдПрдХреНрд╕ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд regex рдХреЗ рд╕рд╛рде рдЯрд┐рдкреНрдкрдгреА рдмреНрд▓реЙрдХ рдПрдЪрдЯреАрдПрдордПрд▓ рдЯреЛрдХрди рд╕реЗ рдПрдХ рдХрд╕реНрдЯрдо рдЯреЛрдХрди рдХреЛ рдлреЛрд░реНрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЗрд╕ рдЯреЛрдХрди рдХреЛ рдЖрдЧреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП raw рдХреЗ рд░реВрдк рдореЗрдВ JSX рдмреНрд▓реЙрдХ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдПрдХ рдХрд╕реНрдЯрдо рд░рд┐рд╣рд╛рдЗрдк рдкреНрд▓рдЧрдЗрди рд▓рд┐рдЦрд╛ рдЬреЛ рд░рд┐рд╣рд╛рдЗрдк-рд░реЙ рдХреЗ рд╕рдорд╛рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╡рд╣ raw рдиреЛрдбреНрд╕ рдкрд╛рддрд╛ рд╣реИ рдФрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╡реЗ рдЬреЗрдПрд╕рдПрдХреНрд╕ рд╣реИрдВ рдЬреЛ рдмрд▓реВрдд рдХрд╛

JSX рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛

рдЕрдм рддрдХ рдореИрдВ JSX рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд┐рдЯреНрд╕ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рд╕реЗ рд▓рд┐рдП рдЧрдП рдорд╛рдорд▓реЗ)

<Test>
  <Test2></Test2>
</Test>
<Test>some text</Test>
<Test attr={{ prop: 400 }} />

рднрд╛рд╡

рд╕рд░рд▓ рд╕рдВрдХрд▓рди рд╕рдордп рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореВрд▓реНрдпрд╛рдВрдХрди рд╕рдорд░реНрдерд┐рдд рд╣реИред

<Test attr={1 + 2}/>

рдирд┐рд░реНрдорд┐рдд HAST рдиреЛрдб рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ 'attr' рд╕реЗрдЯ рд╕реЗ 3 ред

рдРрд░реЗ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди

рдЧреБрдгреЛрдВ рдореЗрдВ Array.prototype.map() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ:

<Test attr={ [1,2,3].map(x => 2 * x) } />

рддреБрдо рднреА рдПрдХ рд╕рд░рдгреА рдкрд░ рдирдХреНрд╢рд╛ рдФрд░ JSX рдмрдЪреНрдЪреЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ

<Test>{ [1,2,3].map(x => (<Test2>{x}</Test2>)) }</Test>

рдХреЗ рдмрд░рд╛рдмрд░ HAST рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛

<Test>
  <Test2>1</Test2>
  <Test2>2</Test2>
  <Test2>3</Test2>
</Test>

рд╕реАрдорд╛рдУрдВ

рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕рдорд░реНрдерди рдХрд╛рдлреА рд╕реАрдорд┐рдд рд╣реИ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИред рдХреЛрдб eval рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ window рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рд▓реЗрдХрд┐рди рдореИрдВ рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ред

рдореИрдВрдиреЗ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╣рд╛рдВ рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЧреИрдЯреНрд╕рдмреА рдЯрд┐рдкреНрдкрдгреА рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдПрдХ рд╡реЗрдмрдкреИрдХ рд▓реЛрдбрд░ рдХреЛ рдЧреНрд░рд╛рдлрдХрд▓ html рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд░рд┐рдПрдХреНрд╢рди.рдЬреЗрдПрд╕ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕рдХреЗ рдХрдИ рдореБрджреНрджреЗ рд╣реИрдВ, рдФрд░ рдПрдХрд▓ рдЙрддреНрдкрд╛рджрди рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИред

          createPage({
            path: edge.node.fields.slug,
            component: getCdResolve(blogPost, edge.node.fileAbsolutePath, {
              html: edge.node.html,
              site: result.data.site,
            }),
            context: {
              slug: edge.node.fields.slug,
            },
          })

рдЬрд╣рд╛рдВ cdResolve !!cd-resolve-loader!foo.md рддрд░рд╣ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЧреИрдЯреНрд╕рдмреА рдХреЛ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИред рдпрд╣ рдХрдо рд╕реЗ рдХрдо рд╡рд┐рдХрд╛рд╕ рд╕рд░реНрд╡рд░ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдмрд╛рдХреА рдХреЛрдб рдпрд╣рд╛рдБ рд╣реИ ред

рдмрд┐рд▓реНрдб рдЖрдЙрдЯрдкреБрдЯ рдмрдЪреНрдЪреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░ рдиреЛрдбреНрд╕ рдХреЗ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рд▓ рдШрдЯрдХ рд╣реИред

var h = require('react').createElement;
var n1 = h('div', { key: 1, dangerouslySetInnerHTML: { __html: '<h1>Hello</h1>' } });
var n2 = h(CustomComponent, { key: 2, foo: 1 });

module.exports = () => h('div', null, [n1, n2]);

рд╣реБрд╣ рджрд┐рд▓рдЪрд╕реНрдк!

рдпрд╣ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдХреЗ рдЧрд░реНрдо рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рднреА рддреЛрдбрд╝ рджреЗрдЧрд╛ рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВред

рд╣рд╛рдВ, рдпрд╣ рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рдерд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдореБрджреНрджреЛрдВ рдкрд░ рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛, рддреЛ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛрдЧрд╛, рдЬрд╣рд╛рдБ рддрдХ рдмрдВрдбрд▓ рд╕рд╛рдЗрдЬрд╝ рдФрд░ рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рд╣реЛрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдмреЗрд╢рдХ, рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рдорд╛рдзрд╛рди рд╕реЗ рдХрд╛рдлреА рджреВрд░ рд╣реИред рдЯрд┐рдкреНрдкрдгреА рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЬреЗрдПрд╕ рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рд╕рдВрдХрд▓рди рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ?

@brigand рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╕рдорд╛рдзрд╛рди рд╡рд╣реА рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХреА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдмрддрд╛рдпрд╛ рдерд╛ https://github.com/gatsbyjs/gatsby/issues/312#issuecomment -336681894

@KyleAMathews рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП, рдЕрдм рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЬреЗрдПрд╕рдПрдХреНрд╕ рдпреБрдХреНрдд рдорд╛рд░реНрдХрдбрд╛рдЙрди рдХреЛ html рдПрдПрд╕рдЯреА рдореЗрдВ рдХреИрд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реИред рд╣рдордиреЗ рдкрд┐рдЫрд▓реЗ рдмреНрд▓реЙрдХрд┐рдВрдЧ рдмрдЧ рдХреЛ рд╣рд▓ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдЕрдм рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдЙрд╕ рдХреЛрдб рдХреЛ рдмрдирд╛рдирд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдПрдПрд╕рдЯреА рдХреЛ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХ рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдПрдирдкреАрдПрдо рдореЗрдВ рдзрдХреЗрд▓ рд╕рдХрддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдЧрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рддрдХ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЦрд╛рд▓реА рд╕рдордп рд╣реЛрдЧрд╛ред

рдЕрдЧрд░ рдореИрдВ рддрдм рддрдХ рдХреБрдЫ рдзрдХреНрдХрд╛ рди рджреЗ рддреЛ рдмреЗрд╕рдмреЙрд▓ рдХреЗ рдмрд▓реНрд▓реЗ рд╕реЗ рдореЗрд░реЗ рджрд░рд╡рд╛рдЬреЗ рдкрд░ рджрд┐рдЦрд╛рдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВред

@ r24y рдХреЛ рдпрд╣ рдХрд╛рдо рдорд┐рд▓ рдЧрдпрд╛ !!! рдЕрдкрдиреЗ PR https://github.com/gatsbyjs/gatsby/pull/3732 рдФрд░ рдЙрджрд╛рд╣рд░рдг рдкреГрд╖реНрда рдХрд╛ рдЙрдкрдпреЛрдЧ-рдЯрд┐рдкреНрдкрдгреА рдЙрджрд╛рд╣рд░рдг рд╕рд╛рдЗрдЯ рдкрд░ рдЪреЗрдХрдЖрдЙрдЯ рдХрд░реЗрдВ!

https://use-remark.gatsbyjs.org/custom-compenders/

рдЗрд╕рд▓рд┐рдП, рдпрд╣рд╛рдВ рдореЗрд░реА рдкреНрд░рдЧрддрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рджреВрд╕рд░рд╛ рдХрджрдо рдЦрддреНрдо рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдерд╛ред

рд╕рднреА рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдкреИрдХреЗрдЬ рд╣реИрдВ:
HAST рдореЗрдВ рдкрд╛рд░реНрд╕рд┐рдВрдЧ: @ рдбрдВрдкрд╕реНрдЯрд░ / рдЯрд┐рдкреНрдкрдгреА-рдХрд╕реНрдЯрдо-рддрддреНрд╡-рд╕реЗ-рдЬрд▓реНрдж
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХ рдореЗрдВ рддреБрдЪреНрдЫ рдкреНрд░рддрд┐рдкрд╛рджрди: @ рдбрдВрдкрд╕реНрдЯрд░ / рдЬрд▓реНрдж-рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░реЗрдВрдбрд░рд░

@pbellon рдиреЗ рдпрд╣рд╛рдБ рдПрдХ Gatsby рдкреНрд▓рдЧрдЗрди рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред

рдпрд╣ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд░реАрд╣рд╛рдЗрдк рд╕реЗ рдЕрдзрд┐рдХ рдЕрдиреБрдореЗрдп рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдореЗрд░реА рдореЗрдореЛрд░реА рдореБрдЭреЗ рд╕рд╣реА рд╕реЗрд╡рд╛ рджреЗрддреА рд╣реИ, рддреЛ rehype parser5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ <Note value="my content" /> рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХрд╕реНрдЯрдо рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдХрд╛рдпреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред

@KyleAMathews рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣рд╛рдБ рд╕реЗ рдЕрдЧрд▓рд╛ рдХрджрдо рдХреНрдпрд╛ рд╣реИред

@ рдлрдЬрд╝реМрдиреЗ-рдорд░реМрдиреЗ рдХрдорд╛рд▓ !!!

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд▓реЗ рдХрджрдо рд░реЗрдкреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕рд╛рдЗрдЯ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рд╣рдо рдЖрдкрдХреЗ рдХрд╛рдо рдХреЛ рднреА рджрд┐рдЦрд╛ рд╕рдХреЗрдВ - рдлрд┐рд░ рд╣рдореЗрдВ gatsbyjs.org рдкрд░ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдбреЙрдХреНрд╕ рдкреЗрдЬ рдкрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдФрд░ рдЯреНрд░реЗрдб-рдСрдл рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреА рд╣реЛрдЧреАред

рдорд┐рдард╛рдИ ! рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдореИрдВ рдЕрдЧрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдпрд╛ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдмрд╛рдж рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ (рдирдИ рдиреМрдХрд░реА рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕ рд╕реЛрдорд╡рд╛рд░)ред

рдореЗрдВ рдЬреБрдЯрд╛рдП рд░рдЦрдиреЗред рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж https://using-remark.gatsbyjs.org/custom-components/ рдФрд░ рдЗрд╕реЗ рдмрд╛рд╣рд░ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдореИрдВ рдПрдХ рдЫреЛрдЯреЗ рдкреИрдХреЗрдЬ рдирд╛рдорд┐рдд рдХрд┐рдП рдЧрдП gatsby-рдЯрд┐рдкреНрдкрдгреА рдШрдЯрдХ рдЪреЗрддрд╛рд╡рдиреА validateDOMNesting рдХрд┐ рдЖрдк рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧрд░ рдЖрдкрдХреЗ markdown рдХреЗ рдЕрдВрджрд░ рдЕрдкрдиреЗ рдШрдЯрдХ рдЗрд╕рдореЗрдВ рдмреНрд▓реЙрдХ-рд╕реНрддрд░реАрдп рддрддреНрд╡ (div ...) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдХрд╕реНрдЯрдо рдШрдЯрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рд▓рд┐рдкрдЯреЗ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЗрд╕ рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рд╡реЗ рдПрдХ div рдореЗрдВ рд▓рд┐рдкрдЯреЗ рд╣реЛрддреЗ рд╣реИрдВред
рдпрд╣ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ

//In your gatsby-config.js
plugins: [
  {
    resolve: "gatsby-transformer-remark",
    options: {
      plugins: [
        {
          resolve: "gatsby-remark-component",
          options: { components: ["my-component", "other-component"] }
        }
      ]
    }
  }
]

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред

@Hebilicious рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж; рд╣рд╛рдБ, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рд╕рднреА рдХрд╕реНрдЯрдо-рдШрдЯрдХреЛрдВ рдХреЛ <p> рддрддреНрд╡ рдХреЗ рдЕрдВрджрд░ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛,

<div>
  <custome-component></custom-component>
</div>

рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рднреА рдХрд╕реНрдЯрдо-рдШрдЯрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдорд╛рд░реНрдХрдбрд╛рдЙрди рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдерд╛ред

@ рд▓реА-рдЭреАрдВрдпрд╛рдВрдЧ рдореИрдВ рдЖрдкрд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рдореИрдВрдиреЗ рдПрдХ рдСрдЯреЛ-рдбрд┐рдЯреЗрдХреНрд╢рди рдлреАрдЪрд░ рдЬреЛрдбрд╝рд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рди рдкрдбрд╝реЗред
рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдкреИрдХреЗрдЬ рдХреЛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг 1.1.0 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред
рдпрд╣ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

//In your gatsby-config.js ...
plugins: [
  {
    resolve: "gatsby-transformer-remark",
    options: {
      plugins: ["gatsby-remark-component"]
    }
  }
]

рдпрд╣ рдереЛрдбрд╝рд╛ рдкреЗрдЪреАрджрд╛ рд╣реИ , рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдХреЗ рд▓реЛрдЧ рдкреНрд░рд╕реНрддрд╛рд╡ рджреЗрдЦреЗрдВ

@ r24y рдирд┐рдлреНрдЯреА рд▓рдЧрддрд╛ рд╣реИ!

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯреНрд░реЗрдбрдСрдлрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдХреИрдЯрд▓реЙрдЧ рдирд╛рдордХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЕрд╡рдЧрдд рд╣реИрдВ, рдЬреЛ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХреЛрдВ рдХреЛ рдЧреИрдЯреНрд╕рдмреА рдкреНрд▓рдЧрдЗрди рднреА рд╣реИ рдЬрд┐рд╕реЗ рд╣реИ рдЬреЛ рдХреИрдЯрд▓реЙрдЧ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рд╕рдорд╛рдзрд╛рди рдПрдХрджрдо рд╕рд╣реА @arcticicestudio рджрд┐рдЦрддрд╛ рд╣реИ

рдХреИрдЯрд▓реЙрдЧ рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ; рдФрд░ рдЧреИрдЯреНрд╕рдмреА-рдХреЙрдореЗрдВрдЯ-рдбрд┐рдЬрд╝рд╛рдЗрди-рд╕рд┐рд╕реНрдЯрдо рдкреНрд▓рдЧрдЗрди рд╢рд╛рдВрдд рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рд╕рд╣реА рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдореЗрдВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрджрд╛ рдХреЛрдб рдмреНрд▓реЙрдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕ рдереНрд░реЗрдб рдХреЗ рднреАрддрд░ рдХреБрдЫ рдмрд╛рд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореМрдЬреВрджрд╛ рдкрд╛рд░реНрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╛рдВрдЫрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рд╣реИред рд╢рд╛рдпрдж рдореБрдХреНрдд рдлреНрд▓реЛрдЯрд┐рдВрдЧ рд░рд┐рдПрдХреНрдЯ рддрддреНрд╡реЛрдВ рдХреЗ рдмрдЬрд╛рдп, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЬрдЯрд┐рд▓ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реВрдкрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдлрд╝рд╛рдЗрд▓ рдЬреИрд╕рд╛ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

 # рдХреБрдЫ рд╢реАрд░реНрд╖рдХ
 ... рдЖрджрд┐ рдЖрджрд┐ ...

&lt;Example>
   &lt;Etc />
&lt;/Example>

рдЬрдм рд╣рдо рдПрдХ рдПрдореНрдмреЗрдбреЗрдб react рддрддреНрд╡ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рднрд╛рд╖рд╛ рдХреЛ react рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ JSX рдЬрд╛рдЧрд░реВрдХ рдкрд╛рд░реНрд╕рд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╡реИрдз рдПрдПрд╕рдЯреА рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд░реАрд╣рд╛рдЗрдк рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рд┐рдЬреНрдо рдЙрджрд╛рд╣рд░рдг рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рд╕рд╛рдорд╛рдиреНрдп javascript рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ, рдпрд╣рд╛рдБ рдорд╣рд╛рди рдЪрд░реНрдЪрд╛ред
рдореИрдВ gatsby-remark-component рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореЗрд░реЗ рдХреБрдЫ рдкреНрд░рд╢реНрди рд╣реИрдВ:

  1. рдХреНрдпрд╛ "рдСрдЯреЛ рдбрд┐рдЯреЗрдХреНрдЯ" рдШрдЯрдХреЛрдВ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ? рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛ рдХрд┐ рд╡рд╕реНрддреБ рдШрдЯрдХ рдореЗрдВ рдореЗрд░реЗ рдШрдЯрдХреЛрдВ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ:
const renderAst = new RehypeReact({
  createElement: React.createElement,
  components: {

  },
}).Compiler
  1. рдХреНрдпрд╛ gatsby-remark-images рд╕рд╛рде рдХреБрдЫ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ? рдореЗрд░рд╛ рдПрдХ рд▓рдХреНрд╖реНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдЫрд╡рд┐ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдореЗрд░реЗ рдШрдЯрдХ рдХреЛ рдкреНрд░реЙрдкрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред рдХреБрдЫ рдЗрд╕ рддрд░рд╣:
    <my-component header-image="[](./image.png)"><my-component>

рдзрдиреНрдпрд╡рд╛рдж!

@ThiagoMiranda рд╣рд╛рдБ, (2) рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛! рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдПрдХ рдЫрд╡рд┐ рдЧреИрд▓рд░реА рд╣реИ:

<gallery>
  <item source="image1.jpg" caption="One"></item>
  <item source="image2.jpg" caption="Two"></item>
</gallery>

Zeit рдХрд╛ рдпрд╣ JSX рдЬрд╛рдЧрд░реВрдХ рдорд╛рд░реНрдХрд╢реАрдЯ рдкрд╛рд░реНрд╕рд░ рдЖрд╢рд╛рдЬрдирдХ рд▓рдЧ рд░рд╣рд╛ рд╣реИ: https://github.com/mdx-js/mdx

MDX рд░рд╛рд╖реНрдЯреНрд░рдордВрдбрд▓ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рд╕реБрдкрд░рд╕реЗрдЯ рд╣реИ рдЬреЛ рдПрдореНрдмреЗрдбреЗрдб JSX рдФрд░ рдЖрдпрд╛рдд / рдирд┐рд░реНрдпрд╛рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рдФрд░ рдкреВрд░реНрд╡рд╛рднреНрдпрд╛рд╕ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЧреИрдЯреНрд╕рдмреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫреА рдЧрд┐рд░рд╛рд╡рдЯ рд╣реЛ рд╕рдХрддреА рд╣реИ

рдореИрдВрдиреЗ mdx рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рд▓рд┐рдЦрд╛: https://github.com/nhducit/gatsby-plugin-mdx

рд╢рд╛рдВрдд, Gatsby рдХреЗ рд╕рд╛рде рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ :)

@Nhducit рдХреЗ mdx рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ

  1. pages/ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ mdx рдФрд░ рд╕реНрд░реЛрдд рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред

gatsby-config.js

module.exports = {
  plugins: [
    'gatsby-plugin-mdx',
    {
      resolve: 'gatsby-source-filesystem',
      options: {
        name: 'pages',
        path: `${__dirname}/src/pages/`,
      },
    },
  ],
}
  1. рд╕рднреА рдорд╛рд░реНрдХрдбрд╛рдЙрди рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░реЗрдВ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдкреЗрдЬ рдмрдирд╛рдПрдВред

gatsby-node.js

exports.createPages = ({ graphql, boundActionCreators }) => {
  const { createPage } = boundActionCreators

  return new Promise((resolve, reject) => {
    graphql(`
      { 
        allFile(filter:{extension:{eq:"md"}}) {
          edges {
            node {
              absolutePath
              relativeDirectory
              name
            }
          }
        }
      }
    `).then(result => {
      if (result.errors) {
        return reject(result.errors)
      }

      // Create markdown pages.
      result.data.allFile.edges.forEach(({ node: {
        absolutePath,
        relativeDirectory,
        name
       } }) => {
        createPage({
          path: `/${relativeDirectory}/${name}`,
          component: absolutePath
        })
      })
    })
    .then(resolve)
  })
}
  1. MDX ЁЯОЙ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ

src/pages/my-markdown-page.md

import MyComponent from '../components/MyComponent'

# Title

_some content_

<MyComponent />

@avigoldman рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛! рдЖрдкрдХрд╛ рдЙрджрд╛рд╣рд░рдг @nhducit рдХреЗ рдкреНрд▓рдЧрдЗрди рдХреЗ README рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

@avigoldman PR рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ! ЁЯСН

@avigoldman рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг

@ рдЕрдиреБрджрд┐рдд рдореИрдВ рдПрдХ рдкреАрдЖрд░

@lintonye рдХреНрдпрд╛ рдЖрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рд╕рдордЭрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдЖрдк рдПрдордбреАрдПрдХреНрд╕ рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХреА рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

@lintonye рдХреНрдпрд╛ рдЖрдкрдиреЗ https://github.com/mdx-js/mdx#exports рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдордХрдХреНрд╖ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ

рд╕рд╣реА рд╣реЛрдиреЗ рдкрд░ рдореБрдЭреЗ рд╕рд╣реА рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ Gatsby 2.0 рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдмрд╛рдж рдХреЗ рд╡реЗрдмрдкреИрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрдореЗрдВрдЯ рдкреНрд▓рдЧ рдЗрди MDX рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

cc @KyleAMathews

@avigoldman @nhducit рдЬрдм рдирд┐рд░реНрдпрд╛рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ mdx рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдбреЗрдЯрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдШрдЯрдХреЛрдВ рдХреЛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рд╣рдо рдЕрдкрдиреЗ UI рдореЗрдВ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ?

рдПрдордбреАрдПрдХреНрд╕ рдХреЗ рд╕рд╛рде рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣рд╛рдВ рднреА рдпрд╣реА рдкреНрд░рд╢реНрди рд╣реИ:

  • рдХрд╕реНрдЯрдо рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдкреГрд╖реНрдареЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд░реЗрдВ
  • рдирд╛рдорд┐рдд mdx рдирд┐рд░реНрдпрд╛рдд рд╕реЗ pathContext рдХреЗ рд░реВрдк рдореЗрдВ рдлреНрд░рдВрдЯрдореИрдЯрд░ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░реЗрдВ
    рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ .js рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ .md рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ .md рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрд╛рд░реНрдп рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рддрд╛ рд╣реИ ...

@ рд╕реЗрд▓рд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рд░реЗрдкреЛ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рдЖрд╕рд╛рди рдЙрдкрд╛рдп рд╣реИ: https://github.com/avigoldman/avigoldman.com

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрджрд░реНрд╢ рдирд╣реАрдВред рдПрдХ рдмрд╛рд░ Gatsby V2 рдХреЗ рдмрд╛рд╣рд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЬрд╛рд░реА рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред

рд╣рд╛рдп рдФрд░ рдзрдиреНрдпрд╡рд╛рдж @avigoldman

рдореИрдВрдиреЗ рдпрд╣ рднреА рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ рдпрд╣рд╛рдБ https://github.com/nhducit/gatsby-plugin-mdx/issues/13#issuecomment -392334706

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд▓рд╛рдкрддрд╛ рдЯреБрдХрдбрд╝рд╛ рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореБрдЭреЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рдереА: рдмреЗрдмрд▓-рдкреНрд▓рдЧрдЗрди-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди-рдирд┐рд░реНрдпрд╛рдд

рдЖрдк рдкреНрд░рддрд┐ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдкреГрд╖реНрда рдкрд░ рдПрдХ рд▓реЗрдЖрдЙрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдЧреИрдЯреНрд╕рдмреА рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд░реЗрдорд╛рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рдмрдЬрд╛рдп рдЖрдорддреМрд░ рдкрд░ рдПрдХ рд▓реЗрдЖрдЙрдЯ рд╣реЛрддрд╛ рд╣реИ ...

рдПрдирдкреАрдПрдо рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдкреНрд▓рдЧрдЗрди рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдпрд╣ рдлреНрд░рдВрдЯрдореЗрдЯрд░ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХрд┐рдП рдЧрдП

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрд╣рд╛рдВ ... mdx graphql рдЯреБрдХрдбрд╝рд╛ рдЖрддрд╛ рд╣реИ?

MDX рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рд┐рд░реНрдл рдПрдХ "MDXProvder" (рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдВрджрд░реНрдн рдХреЗ рдЖрдзрд╛рд░ рдкрд░) рдЬреЛрдбрд╝рд╛, рдЬреЛ Gatsby, cc @avigoldman рдХреЗ рд╕рд╛рде рдХрд╕реНрдЯрдо рдЯреИрдЧ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рд╣рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

@ Slorber рдореИрдВрдиреЗ рдПрдХ gatsby- рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░-mdx рдкреНрд▓рдЧрдЗрди рдмрдирд╛рдпрд╛ рддрд╛рдХрд┐ рдореИрдВ MDX рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдХреНрд╡реЗрд░реА рдХрд░

рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдЖрдЙрдЯ рдХреЛ рдкреГрд╖реНрда рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ MDX рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рди рд░рд╣рд╛ рд╣реВрдВред рдЗрд╕рд▓рд┐рдП рд▓реЗрдЖрдЙрдЯ рдХреЛ рдкреГрд╖реНрда рд╕рдВрджрд░реНрдн рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ MDX рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдЖрдк рдЯрд┐рдкреНрдкрдгреА-рдЬрдирд┐рдд html рдХреЗ рд╕рд╛рде рдХрд░рддреЗ рд╣реИрдВ)ред
рдпрд╣ Gatsby V2 рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рд╢реЗрд╖ рд▓реЗрдЖрдЙрдЯ рдШрдЯрдХ рджреВрд░ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

MDXProvider рд╣реЛрдирд╣рд╛рд░ рд▓рдЧ рд░рд╣рд╛ рд╣реИ!

рдЕрдкрдиреЗ 2, рдХреЛ рдпрд╣рд╛рдВ рдЬреЛрдбрд╝рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдЕрдкрдиреА рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЛ рд╣реИрдХ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдмреА рд╣рд╛рд╕рд┐рд▓ рдХрд░ рд▓реА рд╣реИ (рд░реЗрдкреЛ рдЕрднреА рднреА Jekyll рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬрд▓реНрдж рд╣реА Gatsby рдХреЛ @ avigoldman рдХреЗ gatsby-рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░-mdx рдХреЗ рд▓рд┐рдП mdx рдзрдиреНрдпрд╡рд╛рдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Gatsby рдХреЗ рдКрдкрд░ рдЕрдкрдбреЗрдЯ рдпрд╛ рдирдпрд╛ рд░реЗрдкреЛ рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реЛрдЧрд╛)!

рдПрдХ рджрдо рдмрдврд╝рд┐рдпрд╛! рдЗрд╕ рд╕рдкреНрддрд╛рд╣рд╛рдВрдд / рдЖрдЧрд╛рдореА рд╕рдкреНрддрд╛рд╣ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдордп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЗрд╕реЗ рдПрдХ рдРрд╕реЗ рдкреИрдХреЗрдЬ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдЬреЛ Gatsby V2 рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЦреЗрд▓рддрд╛ рд╣реИред

@avigoldman рдПрдХ рдмрд╛рдд рдореИрдВ рдЖрдкрдХреЗ gatsby- рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░-mdx рд╕реЗ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛рдпрд╛ рд╣реИ рд╡рд╣ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрджрдо рд╣реИред gatsby- рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░-рдЯрд┐рдкреНрдкрдгреА html рдлрд╝реАрд▓реНрдб (рдЬреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЖрдкрдХрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ? рдпрджрд┐ рд╡реЗ рдХрд╣реАрдВ рднреА рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рд╡реЗрдмрдкреИрдХ рд▓реЛрдбрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

рдУрд╣, рдореИрдВ рд╕рд┐рд░реНрдл рдКрдкрд░ рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рддрд╛ рд╣реВрдВ, рдЪрд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ Gatsby v1 рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд▓реЗрдЖрдЙрдЯ рдШрдЯрдХ рдореЗрдВ рд╕рдм рдХреБрдЫ рд▓рдкреЗрдЯрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдПрдордбреАрдПрдХреНрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП absolutePath рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред ЁЯШГ рдЗрд╕ рдЯреНрд░рд┐рдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

@avigoldman Gatsby 2 рдкреНрд▓рдЧрдЗрди рдкрд░ рдХреЛрдИ рдЦрдмрд░? рдпрджрд┐ рдЖрдк рд▓реЗрдЖрдЙрдЯ рдШрдЯрдХ рдХреЗ рдмрд┐рдирд╛ рдЗрд╕рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рджрд┐рд╢рд╛-рдирд┐рд░реНрджреЗрд╢ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ Gatsby 2 рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред
рдзрдиреНрдпрд╡рд╛рдж!

рдореБрдЭреЗ рдЙрдореНрдореАрдж рдереА рдХрд┐ рдореИрдВ рдХрд┐рд╕реА рддрд░рд╣ рдПрдордбреАрдПрдХреНрд╕ рдХреА export default рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди children рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░реЙрдкреНрд╕ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд▓рдЧрддрд╛ред mdx-js / mdx # 187

рдпрджрд┐ рдореЗрд░рд╛ PR рдорд░реНрдЬ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (mdx-js / mdx # 189), рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдореМрдЬреВрджрд╛ gatsby-plugin-mdx рдФрд░ gatsby- рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░-mdx рдХреЗ рд╕рд╛рде MDX рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдкрд╛рдПрдВрдЧреЗред рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрди рд╣рдорд╛рд░реЗ рдЕрдВрдд рдкрд░ рд╣реЛрдЧрд╛, рдФрд░ рдпрд╣ рд╣рдорд╛рд░реЗ .mdx рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рд╣рдорд╛рд░реЗ рдкреЛрд╕реНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реИ:

src/posts/hello-world.mdx :

import Post from '../components/post'

# Hello World

Lorem ipsum.

export default Post

gatsby-node.js :

const path = require('path')

exports.createPages = ({ actions }) => {
  actions.createPage({
    path: '/posts/hello-world',
    component: path.join(__dirname, 'src', 'posts', 'hello-world.mdx'),
    context: { /* passed as pageContext */ }
  })
}

src/components/post.js :

import React from 'react'
import Layout from './layout'

export default ({ children, pageContext }) => (
  <Layout>
    {children}
  </Layout>
)

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЕрднреА рд╕рднреА gatsby-remark-* рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╣реИрдВ ~ рдкреНрд░рддрд┐рдкрд╛рджрди рддрд░реНрдХ рдХреЗ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЬреЛ рд╢рд╛рдпрдж рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЪреАрдЬреЛрдВ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред

@DylanVann рдХрд┐ рдереЛрдбрд╝реЗ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред gatsby-remark-* рдкреНрд▓рдЧрдЗрдиреНрд╕ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдмрд┐рд▓реНрдб-рдЯрд╛рдЗрдо рдЯреНрд░рд╛рдВрд╕реНрдлрд╝реЙрд░реНрдореЗрд╢рди рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЕрдЧрд░ рд╣рдордиреЗ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдХрд┐рдпрд╛ рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реЛрдЧрд╛ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ JS рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╢рд┐рдкрд┐рдВрдЧ рдХрд░рдирд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдРрд╕реА рдЪреАрдЬреЗрдВ рдЬреЛ рдЕрд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ https://www.gatsbyjs.org/packages/gatsby-remark-images/?=remark-image

рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рд╣рдо рджреЛрдиреЛрдВ рджреБрдирд┐рдпрд╛ рдХреЛ рдорд┐рд▓рд╛рддреЗ рд╣реИрдВред

@KyleAMathews рд╣рд╛рдБ, рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реЛрдЧрд╛ рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдкрд░ рдХреБрдЫ рдФрд░ JS, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЗрд╕реЗ рдЕрднреА рднреА рд╕реНрдереИрддрд┐рдХ HTML рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реЛрдЧ рд╢рд╛рдпрдж рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рд▓рд┐рдП gatsby-image рд╢рд┐рдкрд┐рдВрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рджреЛрд╣рд░рд╛рд╡ рдХрд┐рд╕реА рдореБрджреНрджреЗ рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реИред

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдБ рдХрд┐ gatsby-remark-* рдкреНрд▓рдЧрдЗрдиреНрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИред рд░реЗрдВрдбрд░рд┐рдВрдЧ рд▓реЙрдЬрд┐рдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ htmlAst / rehype-react рдкрджреНрдзрддрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдорд┐рд▓рд╛ рд╣реИред

рдпрд╣ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдкрд░ рд╣реИрдВ, рддреЛ рдЖрдк рдПрдХ рдХреЗрдВрджреНрд░рд┐рдд рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдард┐рди рд╕рдорд╕реНрдпрд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рднреА рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдпрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реЛрдЧрд╛ред рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд░рд┐рдПрдХреНрдЯ рдХрд╕реНрдЯрдо рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ remark рдкреНрд▓рдЧ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рд╣реИред

рдпрд╣ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ @dylanvann/gatsby-remark-cloudinary рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ markdown рдЫрд╡рд┐рдпреЛрдВ рд╕реЗ mp4 ред рд╡рд┐рдЪрд╛рд░ рд╡реАрдбрд┐рдпреЛ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╣реИ (рдирд┐рд░реНрдорд╛рдг рд╕рдордп рдкрд░ рдЖрдХрд╛рд░ рджреЗрдирд╛, рдкреЛрд╕реНрдЯрд░ рдЬреЛрдбрд╝рдирд╛)ред рдореИрдВ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкреНрд░рддрд┐рдкрд╛рджрди рддрд░реНрдХ рдЪрд╛рд╣рддрд╛ рдерд╛ред рд╡реАрдбрд┐рдпреЛ рдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рджреВрд╕рд░реЗ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдиреЛрдб рдХреЗ HTML рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред

export const videoHTML = ({
    srcVideo,
    srcVideoPoster,
    base64,
    paddingBottom,
    presentationWidth,
}) =>
    `<cloud-video srcvideo="${srcVideo}" srcvideoposter="${srcVideoPoster}" base64="${base64}" paddingbottom="${paddingBottom}" presentationwidth="${presentationWidth}"></cloud-video>`

рдлрд┐рд░ rehype-react рд╕рд╛рде рдПрдХ рдХрд╕реНрдЯрдо рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред

import React from 'react'
import rehypeReact from 'rehype-react'
import CloudVideo from './CloudVideo'

const renderAst = new rehypeReact({
  createElement: React.createElement,
  components: {
    'cloud-video': CloudVideo,
  },
}).Compiler

const Markdown = ({ ast }) => renderAst(ast)

Markdown.propTypes = {
  ast: PropTypes.object,
}

export default Markdown

Ast рдХреЛ GraphQL рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рддреЛ рдпрд╣ рдШрдЯрдХ SSR рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрдХреНрд╖ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╡реИрд╕реЗ рднреА рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдУрдПрд╕рдПрд╕ рдХреЗ рд╕рд╛рде рдХреИрд╕рд╛ рд╣реИред рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмрдбрд╝реА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрдЧреА рдФрд░ рдХреЛрдб рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рдирд┐рдХрд╛рд▓рдиреЗ рдХрд╛ рд╕рдордп рд╣реЛред

рдЖрдк рдЬреЛ рдХреБрдЫ рднреА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ, рдЙрд╕рд╕реЗ рдореИрдВ рдЕрд╕рд╣рдордд рдирд╣реАрдВ рд╣реВрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЕрдЪреНрдЫреА рдЪрд░реНрдЪрд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдореБрджреНрджреЗ рдореЗрдВ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛, рдмрдЬрд╛рдп 60+ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдмрд╣реБрдд рднрд░реЗ рд╣реБрдП рдзрд╛рдЧреЗ рдХреЗ рдЕрдВрдд рдореЗрдВред ЁЯШЙ

рдореБрдЭреЗ рдФрд░ @avigoldman рдиреЗ рдШрд░ рдореЗрдВ рдорд╣рддреНрд╡рд╛рдХрд╛рдВрдХреНрд╖реА 2.0 рд╕рдВрдЧрдд MDX рдПрдХреАрдХрд░рдг рдФрд░ рдмрд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП gatsby- mdx рдмрдирд╛рдпрд╛ред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ gatsby .mdx рдкреГрд╖реНрда рдкреНрд▓рдЧрдЗрди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ mdx рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЬреЛрдбрд╝реА рдЧрдИ рд╣реИрдВ:

  • рдХреНрд▓рд╛рд╕рд┐рдХ рдФрд░ JSON рд╕реНрдЯрд╛рдЗрд▓ рдлреНрд░рдВрдЯрдореИрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдФрд░ рдХреНрд╡реЗрд░реА рдХрд░реЗрдВ
  • Mdx рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЗрдЖрдЙрдЯ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдЬреЛ рдПрдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ

рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рдкрд░рд┐рд╖реНрдХреГрдд рдПрдХреАрдХрд░рдг рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ

  • рдЙрдиреНрдирдд рдЫрд╡рд┐ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг
  • рдХрд╕реНрдЯрдо рдПрдордбреА рдФрд░ hast рдкреНрд▓рдЧрдЗрдиреНрд╕ред
  • Gatsby- рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░-рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рднреА рд╕рдорд╛рди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛

рд╣рдо рдЕрднреА рднреА рдЬреАрд╡рди рдЪрдХреНрд░ рдореЗрдВ рдмрд╣реБрдд рдЬрд▓реНрджреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА рднреА рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рд╣рдо рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░ рд▓реЗрдВрдЧреЗ :)

@ChristopherBiscardi рдЗрд╕рдХрд╛ рдорддрд▓рдм рдЧреИрдЯреНрд╕рдмреА-рдкреНрд▓рдЧрдЗрди-рдПрдордбреАрдПрдХреНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдпрд╛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ?

@silvenon рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ gatsby-plugin-mdx рдкрджрд╛рд╡рдирдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕ рддрд░рд╣ 1.0 рдкрд░ рд░реБрдХ рдЬрд╛рдПрдЧрд╛, рдЬрдмрдХрд┐ gatsby-mdx 2.0 рдФрд░ рдЖрдЧреЗ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝реЗрдЧрд╛ред

@ m-allanson рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд╕реБрд░рдХреНрд╖рд┐рдд рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ gatsby-mdx рд╣реИ ?

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж everyone

рддреЛ рдХреНрдпрд╛ gatsby-mdx рдЕрдм rehype-react gatsby-transformer-remark рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╕рдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд

рдпрджрд┐ рдЙрддреНрддрд░ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рджреЛрдиреЛрдВ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рдлрд╛рдпрджреЗ рдФрд░ рдХрдорд┐рдпрд╛рдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдХрд╛ рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рдЖрдкрдХреЗ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИред рд░реАрд╣рд╛рдЗрдк-рд░рд┐рдПрдХреНрд╢рди рдХрд╕реНрдЯрдо HTML рддрддреНрд╡реЛрдВ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдореИрдк рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди MDX рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдХреЗ рдЕрдВрджрд░ JSX рд╣реИ, рдпрд╣ рдЕрдзрд┐рдХ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдХрдо рдЪреЗрддрд╛рд╡рдиреА рд╣реИред

рдореИрдВ рдЧреИрдЯреНрд╕рдмреА рдЯреАрдо рдореЗрдВ рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рд╣рд╛рдВ, рдорд╛рд░реНрдХрдЯрдб рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдкрд╕рдВрджреАрджрд╛ рддрд░реАрдХрд╛ gatsby-mdx рд╣реИред

@ рдЬрдирд╛рдм рдЬрд╣рд╛рдБ рддрдХ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ gatsby-mdx gatsby- рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░-рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрджрд▓ рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИ
рдЙрджрд╛рд╣рд░рдг рдФрд░ рдЕрдиреНрдп рдЧреИрдЯреНрд╕рдмреА-рдЯрд┐рдкреНрдкрдгреА рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рдЧреИрдЯреНрд╕рдмреА-рдЯрд┐рдкреНрдкрдгреА-рдЫрд╡рд┐рдпрд╛рдВ рдФрд░ рдЧреИрдЯреНрд╕рдмреА-рдЯрд┐рдкреНрдкрдгреА-рдХреЙрдкреА-рд▓рд┐рдВрдХреНрдб-рдлрд╛рдЗрд▓реЗрдВ рдпрд╛рдж рдЖрддреА рд╣реИрдВ ..
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЙрди рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреА рдЬрд╝рд░реВрд░рдд рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ рдпрд╛ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рдХрд╣реВрдБрдЧрд╛ рд╣рд╛рдБ, рдХрдо рд╕реЗ рдХрдо рдореИрдВ рдЗрд╕реЗ рдкрд╕рдВрдж рдХрд░реВрдБрдЧрд╛, рдореБрдЭреЗ рд╕рд╛рдл рд▓рдЧрддрд╛ рд╣реИ

@CanRau рдореИрдВ рд╡рд┐рд▓рдп рдФрд░ рд╡рд┐рдореЛрдЪрди рдХреЗ рдЗрд░рд╛рджреЗ рд╕реЗ рдЖрдЬ (https://github.com/ChristopherBiscardi/gatsby-mdx/pull/68) рдХрд╛ рдзрд╛рд░рд╛ рдкрд░ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рдорд░реНрдЬ рдХрд░реЗрдВред

PR рдХреА рд╕реНрдерд┐рддрд┐ рдпрд╣ рд╣реИ рдХрд┐ gatsby-comment- * рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдареАрдХ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рдд рдореЗрдВ рдЕрдВрддрд░ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ, gatsby-comment-prismjs рдкреНрд▓рдЧрдЗрди (рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ HTML рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ) рдХреЛ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдорд░-рдЯрд┐рдкреНрдкрдгреА mdx's рджреНрд╡рд╛рд░рд╛ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдкрд╛рдЗрдкрд▓рд╛рдЗрдиред рдореБрдЭреЗ рдЧрдЯреНрд╕рдмреА-рдХреЙрдореЗрдВрдЯ-рдкреНрд░рд┐рдЬреНрдо рдЬреИрд╕реЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдПрдХ рдЙрдк-рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИред MDX рджреБрдирд┐рдпрд╛ рдореЗрдВ рдПрдХ рдмреЗрд╣рддрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рд┐рдЬреНрдо-рд░рд┐рдПрдХреНрд╢рди-рд░реЗрдВрдбрд░рд░ рдХреА рддрд░рд╣ code рддрддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ MDXProvider , рдЬреЛ рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкрд░ рдкреВрд░реНрдг рд▓рдЪреАрд▓рд╛рдкрди рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред рдЯрд┐рдкреНрдкрдгреА рдкреНрд▓рдЧрдЗрдиреНрд╕ рдПрдХ рд╕рдорд╛рди рдкреНрд░рднрд╛рд╡ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдФрд░ рдЖрдкрдХреЛ рдЧреИрд░-mdx рд╕рд╛рдордЧреНрд░реА рдЬреИрд╕реЗ .js рдкреГрд╖реНрдареЛрдВ рдХреЗ рд╕рд╛рде рдЙрд╕ рдШрдЯрдХ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рднреА рджреЗрддрд╛ рд╣реИ)ред

рдореИрдВ рдХреЙрдкреА-рд▓рд┐рдВрдХреНрдб-рдлрд╛рдЗрд▓реНрд╕ рдФрд░ рдЗрдореЗрдЬ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рдЪрд┐рдВрддрд┐рдд рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА gatsby-comment- * рдкреНрд▓рдЧрдЗрди рд╕рдорд░реНрдерди рдХреЗ рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рд▓рдЧрддрд╛ рд╣реИ @ChristopherBiscardi рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреЙрдкреА-рд▓рд┐рдВрдХреНрдб рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рдЫрд╡рд┐ рд╕рдорд░реНрдерди, рдореИрдВ рдорджрдж рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдмреЛрд▓реЗрдВ рддреЛ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдЕрднреА рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреИрдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВ ^ ^
рд╢рд╛рдпрдж рдореИрдВ рдХреБрдЫ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЪреАрдЬреЛрдВ рдХреЛ рдЖрдЬрд╝рдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЫреЛрдЯреЗ рдореЗрдЯрд╛ рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛

рдпрд╣ рдЬрд╛рдирдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдирд╛ рдХрд╛рдо рдкреВрд░рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ..рдореИрдВ рд╕рд╛рдорд╛рди рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдирдпрд╛ рд╣реВрдВ рдФрд░ рдЕрднреА рддрдХ рдпрд╣ рдирд╣реАрдВ рд╕рдордЭ рдкрд╛рдпрд╛ рдХрд┐ рдЬрдм рдЖрдк рдЬреАрд╡рди рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдХреИрд╕реЗ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛..рдмрд╕ рдПрдХ рдЦрд╛рддреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ

рдЕрдЧрд░ рдЖрдкрдХреЛ рд╕рдордп рдорд┐рд▓реЗ рддреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рд╕реА рднреА рдмрд┐рдВрджреБ рдкрд░ рдЖрдкрдХреА рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рдкреНрд░рд╕рдиреНрдирддрд╛ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ, рдпрджрд┐ рдЖрдкрдХреЗ рдкреНрд░рд╢реНрди рд╣реЛрдВ рддреЛ рдореБрдЭреЗ рдмреЗрдЭрд┐рдЭрдХ рдкрд╛рдЗрдП :) рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рдпрдВ рд╣реА рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЖрдЬрдорд╛рддреЗ рд╣реИрдВ рддреЛ рдореБрджреНрджреЛрдВ рдХреЛ рджрд░реНрдЬ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ!

рдпрд╣ рдЬрд╛рдирдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдирд╛ рдХрд╛рдо рдкреВрд░рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ..рдореИрдВ рд╕рд╛рдорд╛рди рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдирдпрд╛ рд╣реВрдВ рдФрд░ рдЕрднреА рддрдХ рдпрд╣ рдирд╣реАрдВ рд╕рдордЭ рдкрд╛рдпрд╛ рдХрд┐ рдЬрдм рдЖрдк рдЬреАрд╡рди рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдХреИрд╕реЗ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛..рдмрд╕ рдПрдХ рдЦрд╛рддреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЪрд┐рдХреЛрдЯреА рдЪреИрдирд▓ рдХреЗ рдиреАрдЪреЗ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд╕рдордп рдХрд╛ "рдХреИрд▓реЗрдВрдбрд░" рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдПрдХ рдЪрд┐рдХреЛрдЯреА рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рд╡реЗ рдореЗрд░рд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдореБрдЭреЗ рд▓рд╛рдЗрд╡ рд╣реЛрдиреЗ рдкрд░ рд╕реВрдЪрдирд╛рдПрдВ рдорд┐рд▓реЗрдВрдЧреА, рд▓реЗрдХрд┐рди рдЕрдиреНрдпрдерд╛ рд╢реЗрдбреНрдпреВрд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХрд╣рд╛рдВ рджреЗрдЦреЗрдВред рдмрд╣реБрдд рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдЦрд╛рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдореИрдВ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдирдпрд╛ рд╣реВрдВ (рдХреЗрд╡рд▓ рдЗрд╕реЗ рдЕрднреА рдХреБрдЫ рд╕рдкреНрддрд╛рд╣ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ) рдЗрд╕рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рд╛рдорд╛рди рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдЦреЛрд▓реЗрдВред рдореИрдВрдиреЗ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдШреВрдордиреЗ рдФрд░ рдмрд╛рд╣рд░ рдШреВрдордиреЗ / рджреЗрдЦрдиреЗ / рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬреЛ рдмрд╣реБрдд рдордЬреЗрджрд╛рд░ рд╣реИ :)

screen shot 2018-08-28 at 1 17 05 pm

рдХрд╛реЗ рдорд┐рд▓ рдЧрдпрд╛, рдЬрд╛рдирдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛

рдФрд░ рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореБрджреНрджреЛрдВ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░реВрдБрдЧрд╛ рдЬрдм рдореИрдВ рдХрд┐рд╕реА рднреА рдореБрдарднреЗрдбрд╝;)

Btw, рдЪреВрдВрдХрд┐ рдкреНрд░рд┐рдЬреНрдо рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЯрд┐рдкреНрдкрдгреА / rehype рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рд╕реАрдзреЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, MDX рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдХрд┐ mdPlugins рдФрд░ hastPlugins рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ (рдЗрд╕реЗ gatsby рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ) -рдПрдордбреАрдПрдХреНрд╕)ред @ Mapbox / rehype- рдкреНрд░рд┐рдЬреНрдо рдЬреИрд╕реЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ hastPlugins рдЬреЛрдбрд╝реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк рдореБрджреНрджреЗ рдереЗ рдЬреЛ рдореИрдВрдиреЗ mdx-js / mdx # 226 рдореЗрдВ рддрдп рдХрд┐рдП рдереЗ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдмрд╛рд░ рд╡рд┐рд▓рдп рдФрд░ рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдЕрдЪреНрдЫреА рд╣реЛрдЧреА рдЬрд╛рдирд╛!

рд╣рд╛рдБ, рдкреВрд░реА рддрд░рд╣ рд╕реЗред gatsby-mdx рдкрд╣рд▓реЗ рд╕реЗ рд╣реА mdx рдХреЛрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд╕рд┐рдВрдЧ рдХрдореЗрдВрдЯ / рд░реАрд╣рд╛рдЗрдк рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП @ mapbox / rehype-prism рд╣реИ (рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдкреАрдЖрд░ / рдЗрд╢реНрдпреВ рдЪрд░реНрдЪрд╛рдУрдВ рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рдореВрд▓ рд░реВрдк рд╕реЗ @silvenon , рдзрдиреНрдпрд╡рд╛рдж рд╕реЗ yanked рдХрд┐рдпрд╛ рд╣реИ)ред AFAIK rehype рдкреНрд░рд┐рдЬреНрдо рдкреНрд░рд┐рдЬреНрдо рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдЯреНрд░реЗрдбрдСрдлрд╝ рд╣реИ (рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдкреНрд░рд┐рдЬрд╝реНрдо рдХреЗ рд▓рд┐рдП рд░рд┐рд╣рд┐рдк рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд▓рд╛рдЗрд╡ рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдореЗрдВ рдХрдард┐рди рд╕рдордп рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП)

gatsby-comment-prismjs рдФрд░ рдЕрдиреНрдп gatsby-comment- * рдкреНрд▓рдЧрдЗрди рд╕рдорд░реНрдерди рдЖрдЬ 0.1.1 рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЕрдм рд░реАрд╣рд╛рдЗрдк / рдЯрд┐рдкреНрдкрдгреА / рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо 3 рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ-

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

dustinhorton picture dustinhorton  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

benstr picture benstr  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kalinchernev picture kalinchernev  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

3CordGuy picture 3CordGuy  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mikestopcontinues picture mikestopcontinues  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ