reflex/docs/in/README.md

16 KiB

Pynecone рдХреА рддрд▓рд╛рд╢ рд╣реИрдВ? рдЖрдк рд╕рд╣реА рд░реЗрдкреЛ рдореЗрдВ рд╣реИрдВред Pynecone рдХрд╛ рдирд╛рдо Reflex рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред + +
Reflex рд▓реЛрдЧреЛ Reflex рд▓реЛрдЧреЛ

тЬи рдкреНрд░рджрд░реНрд╢рдирдХрд╛рд░реА, рдЕрдиреБрдХреВрд▓рд┐рдд рд╡реЗрдм рдРрдкреНрд╕, рд╢реБрджреНрдз Python рдореЗрдВред рд╕реЗрдХрдВрдбреЛрдВ рдореЗрдВ рддреИрдирд╛рдд рдХрд░реЗрдВред тЬи

PyPI version versions Documentaiton Discord


English | чоАф╜Уф╕нцЦЗ | ч╣БщлФф╕нцЦЗ | T├╝rk├зe | рд╣рд┐рдВрджреА | эХЬъ╡ньЦ┤ | цЧецЬмшкЮ | Deutsch | Persian (┘╛╪з╪▒╪│█М)

Reflex

Reflex рд╢реБрджреНрдз рдкрд╛рдпрдерди рдореЗрдВ рдкреВрд░реНрдг-рд╕реНрдЯреИрдХ рд╡реЗрдм рдРрдкреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред

рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ:

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

Reflex рдХреЗ рдЕрдВрджрд░ рдХреЗ рдХрд╛рдордХрд╛рдЬ рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкреЗрдЬ рдХреЛ рджреЗрдЦреЗрдВред

тЪЩя╕П рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди (Installation)

рдПрдХ рдЯрд░реНрдорд┐рдирд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рдЪрд▓рд╛рдПрдВ (Python 3.10+ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ):

pip install reflex

ЁЯе│ рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рдРрдк рдмрдирд╛рдПрдВ (Create your first App)

reflex рдХреЛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рд╣реА reflex рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ рднреА рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕рдлрд▓ рдереА, рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдХрд░ рдЗрд╕реЗ рдЯреЗрд╕реНрдЯ рдХрд░реЗрдВред ('my_app_name' рдХреА рдЬрдЧрд╣ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо рд░рдЦреЗрдВ):

mkdir my_app_name
cd my_app_name
reflex init

рдпрд╣ рдХрдорд╛рдВрдб рдЖрдкрдХреА рдирдпреА рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдРрдк рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рддрд╛ рд╣реИред

рдЖрдк рдЗрд╕ рдРрдк рдХреЛ development рдореЛрдб рдореЗрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:

reflex run

рдЖрдкрдХреЛ http://localhost:3000 рдкрд░ рдЕрдкрдиреЗ рдРрдк рдХреЛ рдЪрд▓рддреЗ рд╣реБрдП рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдм рдЖрдк my_app_name/my_app_name.py рдореЗрдВ source рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред Reflex рдореЗрдВ рддреЗрдЬ рд░рд┐рдлреНрд░реЗрд╢ рдХреА рд╕реБрд╡рд┐рдзрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬрдм рдЖрдк рдЕрдкрдиреА рдХреЛрдб рдХреЛ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рддреБрд░рдВрдд рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

ЁЯлз рдЙрджрд╛рд╣рд░рдг рдРрдк (Example App)

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ: DALL┬╖E рд╕реЗ рдПрдХ рдЗрдореЗрдЬ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП UIред рд╕рд░рд▓рддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рд┐рд░реНрдл OpenAI API рдХреЛ рдмреБрд▓рд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ ML рдореЙрдбрд▓ рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ locallyред

┬а

DALL┬╖E рдХреЗ рд▓рд┐рдП рдПрдХ рдлреНрд░рдВрдЯрдПрдВрдб рд░реИрдкрд░, рдЫрд╡рд┐ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ред

┬а

рдпрд╣рд╛рдБ рдкрд░ рдЗрд╕рдХрд╛ рдкреВрд░рд╛ рдХреЛрдб рд╣реИ рдЬрд┐рд╕рд╕реЗ рдпрд╣ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕рдм рдПрдХ рд╣реА Python рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ!

import reflex as rx
import openai

openai_client = openai.OpenAI()


class State(rx.State):
    """The app state."""

    prompt = ""
    image_url = ""
    processing = False
    complete = False

    def get_image(self):
        """Get the image from the prompt."""
        if self.prompt == "":
            return rx.window_alert("Prompt Empty")

        self.processing, self.complete = True, False
        yield
        response = openai_client.images.generate(
            prompt=self.prompt, n=1, size="1024x1024"
        )
        self.image_url = response.data[0].url
        self.processing, self.complete = False, True


def index():
    return rx.center(
        rx.vstack(
            rx.heading("DALL-E", font_size="1.5em"),
            rx.input(
                placeholder="Enter a prompt..",
                on_blur=State.set_prompt,
                width="25em",
            ),
            rx.button(
                "Generate Image",
                on_click=State.get_image,
                width="25em",
                loading=State.processing
            ),
            rx.cond(
                State.complete,
                rx.image(src=State.image_url, width="20em"),
            ),
            align="center",
        ),
        width="100%",
        height="100vh",
    )

# Add state and page to the app.
app = rx.App()
app.add_page(index, title="Reflex:DALL-E")

рдЗрд╕реЗ рд╕рдордЭрддреЗ рд╣реИрдВред

DALL-E рдРрдк рдХреЗ рдмреИрдХрдПрдВрдб рдФрд░ рдлреНрд░рдВрдЯрдПрдВрдб рднрд╛рдЧреЛрдВ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред

Reflex UI

рд╣рдо UI рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред

def index():
    return rx.center(
        ...
    )

рдпрд╣ index рдлрд╝рдВрдХреНрд╢рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдлрд╝реНрд░рдВрдЯрдПрдВрдб рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╣рдо рдлрд╝реНрд░рдВрдЯрдПрдВрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП center, vstack, input, рдФрд░ button рдЬреИрд╕реЗ рд╡рд┐рднрд┐рдиреНрди components рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред Components рдХреЛ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рднреАрддрд░ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд▓реЗрдЖрдЙрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рдФрд░ рдЖрдк CSS рдХреА рдкреВрд░реА рддрд╛рдХрд╝рдд рдХреЗ рд╕рд╛рде рдЗрдиреНрд╣реЗрдВ рд╕реНрдЯрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреАрд╡рд░реНрдб рдЖрд░реНрдЧреНрдпреВрдореЗрдВрдЯ (keyword args) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд░рд┐рдлрд╝реНрд▓реЗрдХреНрд╕ рдХреЗ рдкрд╛рд╕ 60+ built-in components рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рд╢реБрд░реБрдЖрддреА рдорджрдж рдХреЗ рд▓рд┐рдП рд╣реИрдВред рд╣рдо рдмрд╣реБрдд рд╕реЗ components рдЬреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ components рдмрдирд╛рдирд╛ рднреА рдЖрд╕рд╛рди рд╣реИред create your own components

рд╕реНрдЯреЗрдЯ (State)

Reflex рдЖрдкрдХреЗ UI рдХреЛ рдЖрдкрдХреА рд╕реНрдЯреЗрдЯ (state) рдХреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред

class State(rx.State):
    """The app state."""
    prompt = ""
    image_url = ""
    processing = False
    complete = False

рд╕реНрдЯреЗрдЯ (state) рдРрдк рдореЗрдВ рдЙрди рд╕рднреА рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ (vars) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИ рдЬреЛ рдмрджрд▓ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рдЙрди рдлрд╝рдВрдХреНрд╢рдиреЛрдВ рдХреЛ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВред

рдпрд╣рд╛рдВ рд╕реНрдЯреЗрдЯ (state) рдореЗрдВ prompt рдФрд░ image_url рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдкреНрд░рдЧрддрд┐ рдФрд░ рдЫрд╡рд┐ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП processing рдФрд░ complete рдмреВрд▓рд┐рдпрди рднреА рд╣реИрдВред

рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ (Event Handlers)

def get_image(self):
    """Get the image from the prompt."""
    if self.prompt == "":
        return rx.window_alert("Prompt Empty")

    self.processing, self.complete = True, False
    yield
    response = openai_client.images.generate(
        prompt=self.prompt, n=1, size="1024x1024"
    )
    self.image_url = response.data[0].url
    self.processing, self.complete = False, True

рд╕реНрдЯреЗрдЯ (state) рдХреЗ рдЕрдВрджрд░, рд╣рдо рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░реНрд╕ (event handlers) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрдЯреЗрдЯ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВред рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░реНрд╕ (event handlers) рд╕реЗ reflex рдореЗрдВ рд╕реНрдЯреЗрдЯ (state) рдХреЛ рдореЙрдбрд┐рдлрд╝рд╛рдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИрдВред рдЗрдиреНрд╣реЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд░рд┐рдпрд╛рдУрдВ (user actions) рдХреЗ рдкреНрд░рддрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ (response) рдХреЗ рд░реВрдк рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдмрдЯрди рдХреЛ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рдпрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдмреЙрдХреНрд╕ рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░рдирд╛ред рдЗрди рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЗрд╡реЗрдВрдЯреНрд╕ (events) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣рдорд╛рд░реЗ DALL┬╖E. рдРрдк рдореЗрдВ рдПрдХ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ get_image рд╣реИ рдЬрд┐рд╕рд╕реЗ рдпрд╣ OpenAI API рд╕реЗ рдЗрдореЗрдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ yield рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд┐ рд╡рдЬрд╣ рд╕реЗ UI рдЕрдкрдбреЗрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЕрдиреНрдпрдерд╛ UI рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЕрдкрдбреЗрдЯ рд╣реЛрдЧрд╛ред

рд░реВрдЯрд┐рдВрдЧ (Routing)

рдЖрдЦрд┐рд░рдХрд╛рд░, рд╣рдо рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

app = rx.App()

рд╣рдо рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд░реВрдЯ рд╕реЗ рдЗрдВрдбреЗрдХреНрд╕ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯ рддрдХ рдПрдХ рдкреЗрдЬ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рд╣рдо рдПрдХ рд╢реАрд░реНрд╖рдХ рднреА рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рдкреЗрдЬ рдкреНрд░реАрд╡реНрдпреВ/рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯреИрдм рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред

app.add_page(index, title="DALL-E")

рдЖрдк рдФрд░ рдкреЗрдЬ рдЬреЛрдбрд╝рдХрд░ рдПрдХ рдорд▓реНрдЯреА-рдкреЗрдЬ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

ЁЯУС рд╕рдВрд╕рд╛рдзрди (Resources)

тЬЕ рд╕реНрдЯреЗрдЯрд╕ (Status)

Reflex рджрд┐рд╕рдВрдмрд░ 2022 рдореЗрдВ Pynecone рдирд╛рдо рд╕реЗ рд╢реБрд░реВ рд╣реБрдЖред

рдлрд░рд╡рд░реА 2024 рддрдХ, рд╣рдорд╛рд░реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕реЗрд╡рд╛ рдЕрд▓реНрдлрд╛ рдореЗрдВ рд╣реИ! рдЗрд╕ рд╕рдордп рдХреЛрдИ рднреА рдЕрдкрдиреЗ рдРрдкреНрд╕ рдХреЛ рдореБрдлреНрдд рдореЗрдВ рддреИрдирд╛рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рджреЗрдЦреЗрдВ рд╣рдорд╛рд░реА рд░реЛрдбрдореИрдк рдпреЛрдЬрдирд╛рдмрджреНрдз рдЪреАрдЬрд╝реЛрдВ рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдПред

Reflex рдореЗрдВ рд╣рд░ рд╕рдкреНрддрд╛рд╣ рдирдП рд░рд┐рд▓реАрдЬрд╝ рдФрд░ рдлреАрдЪрд░реНрд╕ рдЖ рд░рд╣реЗ рд╣реИрдВ! рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ тнР рд╕реНрдЯрд╛рд░ рдФрд░ ЁЯСА рд╡реЙрдЪ рдЗрд╕ рд░реЗрдкреЛрдЬрд┐рдЯрд░реА рдХреЛ рдЕрдкрдбреЗрдЯ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдПред

(рдпреЛрдЧрджрд╛рди) Contributing

рд╣рдо рд╣рд░ рддрд░рд╣ рдХреЗ рдпреЛрдЧрджрд╛рди рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд░рддреЗ рд╣реИрдВ! рд░рд┐рдлреНрд▓реЗрдХреНрд╕ рдХрдореНрдпреВрдирд┐рдЯреА рдореЗрдВ рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рдЕрдЪреНрдЫреЗ рддрд░реАрдХреЗ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╣реИрдВред

  • Join Our Discord (рдбрд┐рд╕реНрдХреЙрд░реНрдб рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреБрдбрд╝реЗрдВ): Our Discord рд╣рдорд╛рд░рд╛ рдбрд┐рд╕реНрдХреЙрд░реНрдб рд░рд┐рдлреНрд▓реЗрдХреНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдЖрдк рдХреИрд╕реЗ рдпреЛрдЧрджрд╛рди рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рд╣реИред
  • GitHub Discussions (рдЧрд┐рдЯрд╣рдм рдЪрд░реНрдЪрд╛рдПрдБ): рдЙрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╢рд╛рдирджрд╛рд░ рддрд░реАрдХрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдРрд╕реА рдЪреАрдЬрд╝реЗрдВ рдЬреЛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╣реИрдВ/рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
  • GitHub Issues (рдЧрд┐рдЯрд╣рдм рд╕рдорд╕реНрдпрд╛рдПрдВ): рдпреЗ рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╢рд╛рдирджрд╛рд░ рддрд░реАрдХрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЖрдк рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдкреАрдЖрд░ рд╕рдмрдорд┐рдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдо рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЪрд╛рд╣реЗ рдЖрдкрдХрд╛ рдХреМрд╢рд▓ рд╕реНрддрд░ рдпрд╛ рдЕрдиреБрднрд╡ рдХреБрдЫ рднреА рд╣реЛредрдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП CONTRIBUTING.md рджреЗрдЦреЗрдВред

рд╣рдорд╛рд░реЗ рд╕рднреА рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж:

рд▓рд╛рдЗрд╕реЗрдВрд╕ (License)

рд░рд┐рдлреНрд▓реЗрдХреНрд╕ рдУрдкрди-рд╕реЛрд░реНрд╕ рд╣реИ рдФрд░ рдЕрдкрд╛рдЪреЗ рд▓рд╛рдЗрд╕реЗрдВрд╕ 2.0 рдХреЗ рддрд╣рдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рд╛рдкреНрдд рд╣реИред