Skip to content

[FEATURE] Formatowanie markdown i latex #225

@MarvinRucinski

Description

@MarvinRucinski

Markdown + LaTeX (Notion-like editor + symbole)

Jaki problem rozwiązujemy?

Obecnie renderowanie wzorów jest nieprzewidywalne (zgadywanie czy coś jest LaTeX).
Brakuje też wygodnego sposobu na wpisywanie wzorów i symboli.


Cel

  • pełna obsługa Markdown + LaTeX
  • edycja w stylu Notion (live preview zamiast “surowego” kodu)
  • możliwość przełączenia na edycję źródła
  • prosty picker symboli matematycznych

UX

Edytor

  • użytkownik widzi od razu sformatowaną treść (preview)
  • Markdown renderowany na bieżąco (nagłówki, listy itd.)
  • LaTeX renderowany inline i block

Przykłady:

  • $x^2$ → render jako wzór inline
  • $$...$$ → render jako blok

Tryb edycji kodu

  • przy elemencie (lub globalnie) mały przycisk typu </>
  • po kliknięciu:
    • przełączenie na raw view (Markdown + LaTeX)
  • ponowne kliknięcie → powrót do preview

Logika

  • brak zgadywania czy coś jest LaTeX
  • render tylko dla:
    • $...$ (inline)
    • $$...$$ (block)
  • reszta traktowana jako zwykły tekst
  • błędny LaTeX:
    • nie crashuje
    • fallback do tekstu

Biblioteka symboli

  • przy edytorze przycisk „∑” / „fx”
  • otwiera picker z symbolami:
    • podstawowe: ułamki, potęgi, pierwiastki
    • greckie litery
    • operatory (∑, ∫, ≤, ≥ itd.)

Zachowanie

  • kliknięcie w symbol:
    • wstawia odpowiedni zapis LaTeX w aktualnym miejscu kursora
    • np. \frac{}{}
  • opcjonalnie focus na placeholderach {}

Technicznie (propozycja)

  • Markdown:
    • react-markdown
  • math:
    • remark-math
    • rehype-katex
  • stylowanie:
    • KaTeX CSS

Edge case’y

  • mieszanie Markdown + LaTeX w jednym bloku
  • kopiuj/wklej (np. z innych źródeł)
  • brak $ → brak renderu
  • niepoprawny zapis → fallback

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions