Typescript - konieczność?

Typescript - konieczność?
N0
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:Gdańsk
  • Postów:647
0

Jak tak patrzę, to jest ogromny hype na Typescript. Co chwilę trafiam na jakieś artykuły w stylu Why TypeScript is the best way to write Front-end. Jak to jest w polskim biznesie? Wyparł już JS? Są nowe projekty w React/Vue w zwykłym JS?

R9
  • Rejestracja:około 5 lat
  • Ostatnio:ponad rok
  • Postów:35
1
nobody01 napisał(a):

Jak tak patrzę, to jest ogromny hype na Typescript. Co chwilę trafiam na jakieś artykuły w stylu Why TypeScript is the best way to write Front-end. Jak to jest w polskim biznesie? Wyparł już JS? Są nowe projekty w React/Vue w zwykłym JS?

U nas raczej migrujemy z czystego JS do TS. Pomaga utrzymać porządek w kodzie również na froncie

AK
  • Rejestracja:ponad 6 lat
  • Ostatnio:27 dni
  • Postów:3561
0

Znacie jakiś javowski transpiler do tego?

EDIT: Na C# też się nie pogniewam


Bo C to najlepszy język, każdy uczeń ci to powie
edytowany 1x, ostatnio: AnyKtokolwiek
DE
:o ? A co miałby robić? Generować kod pełen any any any? Kod javascript to też poprawny kod typescript. Edit chyba, że z Javy na Typescript to nie wiem
Wibowit
Może javowski w sensie bez instalacji Node.js + jakiegoś Babela tylko Javy + Javowej biblioteki?
AK
Wydaje mi się że w kontekście jasno zapytałem. Translowanie TS na JS, tylko że sam transpiler wykonany w Javie (update: C# też). @Wibowit dobrze rozumiesz
obscurity
nic nie trzeba instalować. transpilator typescripta jest napisany w typescripcie. Wystarczy dołączyć jeden transpilowany kod javascript żeby móc transpilować inne
MA
  • Rejestracja:prawie 17 lat
  • Ostatnio:18 dni
  • Postów:644
1

W obecnych projektach jak i poprzednich też migrujemy JS -> TS, a wszystko nowe powstaje już w TS.

Pixello
  • Rejestracja:około 10 lat
  • Ostatnio:5 miesięcy
  • Lokalizacja:Podkarpacie
  • Postów:448
0

Pracuje z TS od wersji 2.1 - jeżeli byłby kompilator TS -> .net, to bym z C# zrezygnował :D
Jak pracuje z .net core to TS + NSwag TS Generator/AutoGen TS to taki standard sie robi - i dobrze, śmierć ręcznym klientom do api1

MA
  • Rejestracja:prawie 13 lat
  • Ostatnio:około 3 lata
  • Postów:166
2

Cześć. Również potwierdzam zwiększoną popularność wyboru TypeScript'a w projektach komercyjnych.

AI
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 3 lata
  • Postów:375
1

Gdzieś słyszałem, że (chyba) 40% błędów w JSie jest związanych z zmiennymi (błędy typu: Cannot read property of undefined/null). Do Reacta jest nawet biblioteka która miała pomóc w typowaniu (oraz chyba autopodpowiadanie), więc było widać zapotrzebowanie na typowanie. Typescript zapewnia to z pudełka, nie widzę przyczyny do tworzenia nowych projektów w "czystym" JSie.

Edit: Ja na codzień pisze w Angularze, więc z automatu korzystam z Typescripta. Miałem krótką przygodę ucząc się Reacta, ale tam też uważam że nie ma sensu pisania w czystym JSie.

edytowany 1x, ostatnio: Aisekai
Haskell
  • Rejestracja:prawie 10 lat
  • Ostatnio:11 miesięcy
  • Postów:4700
1

Zgadza się, jest ogromny hype na TypeScript i wiele osób idzie w tym kierunku. Jest to spowodowane przez cztery rzeczy: 1. sporo programistów przesiada się z języków typowanych (Java umiera) i nie potrafią pisać w JS i Pythonie bez typów, 2. ludzie gardzą JS-em, uważając go za g**no język, a TypeScript to coś nieco innego (choć tak naprawdę nadal JS), 3. w wielu firmach "nie ma czasu" na testy i/lub programiści nie chcą ich pisać, 4. moda.


Zaglądali do kufrów, zaglądali do waliz, nie zajrzeli do d**y - tam miałem socjalizm. Czesław Miłosz
SZ
Masz jakiś dowód na to, że "Java umiera"? Czym jest poparte to stwierdzenie? :)
BC
tym samym co zawsze - java umiera od 10 lat
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:2 minuty
  • Postów:8420
0

Gdzieś słyszałem, że (chyba) 40% błędów w JSie jest związanych z zmiennymi (błędy typu: Cannot read property of undefined/null).

Nie wiem ile, ale fakt, często. Tylko co z tego? Takie błędy są akurat łatwo wykrywane i łatwo naprawialne. Przeglądarka rzuca ci błędem, łatwo dojść po nitce do kłębka, gdzie nastąpił błąd. Dla mnie to nie jest żaden specjalnie dobry argument za TypeScriptem. Prędzej za optional chaining, który to może złagodzić w niektórych sytuacjach: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining

Moim zdaniem od tego typu błędów bardziej trudne są wszelakie race condition, gdzie masz asynchroniczny kod, który w różny sposób się zachowuje w zależności od tego, co się stało wcześniej. Gdyby ten problem rozwiązać (np. za pomocą jakichś dobrych narzędzi debuggerskich), to by to wniosło więcej niż TypeScript.

A pisać w TypeScript nie lubię, bo mnie spowalnia. Lubię prototypować i zmieniać kod w miarę potrzeb, a potem dopiero definiować konkretne interfejsy czy wymyślać nazwy. Tak samo jak robię komponenty React, to jeśli chcę dodać jakąś testową albo dodatkową właściwość do komponentu, to błędy TypeScripta o tym, że nie ma takiej właściwości, tylko wkurzają.

Ale zastanawiam się, czy nie dodać TypeScriptu do swojego prywatnego projektu, bo używam wiele luźnych struktur danych, które chciałbym jakoś usystematyzować, żeby móc łatwiej śledzić zależności w projekcie. A są to zależności typu "jakaś funkcja przekazuje do drugiej funkcji obiekt o danych właściwościach i muszę pamiętać, która funkcja co przyjmuje". W TS byłby interfejs Foo czy Bar i jawne importowanie. I kontrola typów jako bonus.

W sumie... może lepsze użycie TypeScriptu to dodawanie go na jakimś etapie dopiero do projektu albo do konkretnych modułów? Dopiero na etapie, kiedy kod będzie dość stabilny i gdzie nie będzie potrzeba robienia wielkich eksperymentów?


edytowany 4x, ostatnio: LukeJL
nullpt4
łatwo dojść po nitce do kłębka, gdzie nastąpił błąd. jasne, można samemu ogarnąć co się stało w parę minut, ale poco skoro kompilator może zrobić to samo w ułamku sekundy? może lepsze użycie TypeScriptu .... Dopiero na etapie, kiedy kod będzie dość stabilny i gdzie nie będzie potrzeba robienia wielkich eksperymentów? spoko pomysł, tylko w rzeczywistości kiedy kod jest już stabilny, to nie raczej wpada kolejny projekt i nie ma czasu ani chęci na dodawnie typów do stabilnego i działającego projektu ;/
LukeJL
jasne, można samemu ogarnąć co się stało w parę minut, ale poco skoro kompilator może zrobić to samo w ułamku sekundy? to jest argument za użyciem TS, jeśli chodzi o ten case. spoko pomysł, tylko w rzeczywistości kiedy kod jest już stabilny, to nie raczej wpada kolejny projekt i nie ma czasu ani chęci na dodawnie typów do stabilnego i działającego projektujeśli projekt jest stabilny i działający i nie musimy go (jak rozumiem) utrzymywać 1/2
LukeJL
to bym zadał pytanie, czy użycie TS (które wymaga jednak jakiegoś narzutu czasowego, przemyślenia typów) się zwróciło pod kątem czasowym, czy może szybciej byłoby to zrobić w JavaScript w danym przypadku i nie myśleć o typach. Tzn. pytanie, czy szybciej jest coś małego/krótkotrwałego zakodzić w JS, czy w TS 2/2
nullpt4
... i nie musimy go utrzymywać z autopsji wiem, że w większości przypadków jednak musimy :D czy szybciej jest coś małego/krótkotrwałego zakodzić w JS, czy w TS IMHO w takim przypadku szybciej jest w JS, ale potem często i gęsto projekty małe i tymczasowe przeradzają się w duże i długoterminowe, a wtedy typy bardzo się przydają, np. kiedy trzeba zrobić refaktor kodu napisanego na szybko.
nullpt4
A co do TS które wymaga jednak jakiegoś narzutu czasowego, przemyślenia typów) to ja pisząc w dynamicznie typowanych językach też muszę myśleć o typach - "hm co przyjmuje ta funckja? hmmm co zwraca?" co oczywiście dłużej trwa niż w przypadku gdy mam wypisane typy explicite. Co myślisz? :P
N0
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:Gdańsk
  • Postów:647
0
Haskell napisał(a):
  1. w wielu firmach "nie ma czasu" na testy i/lub programiści nie chcą ich pisać

Trochę offtop, ale jak to jest z testowaniem reacta w polskim biznesie? Tak samo popularne jak na backendzie, czy raczej przeważa widzę, że działa, więc po co testować? Ktoś tu chyba kiedyś pisał, że raczej to drugie.

MA
Front-end jest z zasady trochę mniej podatny na błędy, jest mniejsze ryzyko tj. jak komuś nie będzie działał formularz przez jakiś czas to nic się nie stanie. Jak na backendzie ktoś będzie miał dostęp do danych bez autoryzacji to już będzie problem. Też front-end jest ciężej testować. Mimo wszystko zdarza mi się pisać testy, jednak rzadziej niż w przypadku backendu.
Pixello
  • Rejestracja:około 10 lat
  • Ostatnio:5 miesięcy
  • Lokalizacja:Podkarpacie
  • Postów:448
0
LukeJL napisał(a):

Gdzieś słyszałem, że (chyba) 40% błędów w JSie jest związanych z zmiennymi (błędy typu: Cannot read property of undefined/null).

Nie wiem ile, ale fakt, często. Tylko co z tego? Takie błędy są akurat łatwo wykrywane i łatwo naprawialne. Przeglądarka rzuca ci błędem, łatwo dojść po nitce do kłębka, gdzie nastąpił błąd. Dla mnie to nie jest żaden specjalnie dobry argument za TypeScriptem. Prędzej za optional chaining, który to może złagodzić w niektórych sytuacjach: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining

Mnie jako backendowca z powołania wkurza to, że przeglądarka mi coś rzuca i muszę dochodzić - wolę dostać errora podczas kompilacji - co prawda w TS errory kiedyś były mega nieprzyjazne, szczególnie w react + generyki, ale jest coraz lepiej.

LukeJL
Co do "backendowca z powołania", to backend też może być pisany w dynamicznym języku i też będzie rzucać błędami "na żywo" i ma też wiele innych dynamicznych zachowań, które mogą rzucić błędem czy zwrócić nieprawidłowe dane (choćby zapytania do bazy). I wtedy trzeba szukać w logach albo patrzeć, co baza danych zwraca. Niezależnie od języka, to frontend wydaje mi się łatwiejszy do debugowania. We frontendzie wystarczy mieć dev toolsy otworzone w przeglądarce i ma się wszystko - konsolę, REPL z interaktywnym podglądem obiektów, debuggera, podgląd stylowania, profiler...
BraVolt
  • Rejestracja:prawie 6 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Warszawa
  • Postów:2918
1
Pixello napisał(a):

Mnie jako backendowca z powołania wkurza to, że przeglądarka mi coś rzuca i muszę dochodzić - wolę dostać errora podczas kompilacji

To już było. W 1995 rozwiązali ten "problem internetów" dając ludzkości Javę.
Compile once. Run everywhere.

Pomysł genialny - jak komunizm - gorzej z realizacją. 25 lat a "pokrycie javą internetów" na poziomie Kim'owskiej Korei w proporcji do reszty świata.


"Kiedy wiedzieć czy zacząć nauke Springa? bo w czystej Javie to nic ciekawego nie zrobie chyba"
Ein Volk, ein Reich, ein Kwa-Kwa ***** ***
MA
To wynika z taniości (licencje, serwery) i łatwości PHP (wystarczy notatnik i darmowy hosting) a raczej nie z ułomności Javy (kiedyś serwery dużo kosztowały, na wszystko były licencje) - mówię to jako programista PHP. Programowanie to nie polityka, bardziej nauka - nie łącz proszę tych rzeczy.
BraVolt
Programowanie to biznes jak każdy inny. Zaspokaja wymagania i potrzeby klienta. Czasem nawet potrafi wytworzyć u klienta potrzeby z których braku nie zdawał sobie sprawy. Jednak to tylko fragment gospodarki.
mechanix
  • Rejestracja:około 9 lat
  • Ostatnio:3 dni
  • Postów:501
0
Aisekai napisał(a):

Gdzieś słyszałem, że (chyba) 40% błędów w JSie jest związanych z zmiennymi (błędy typu: Cannot read property of undefined/null).

I jak niby TS cię od tego uchroni jak taki błąd dostajesz po kompilacji gdzie po TS nie ma śladu.

enedil
Z switchem strictNullChecks, nie można podstawić undefined czy nulla do zmiennej normalnych typów, więc jeśli myślisz, że mógłby być tam null, to musisz jawnie obsłużyć taki przypadek.
AI
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 3 lata
  • Postów:375
0

Oczywiście, że są przypadki gdy TS uchroni mnie przed błędami związanymi z nullem/undefined. Dodanie pola mandatory do interfejsu z automatu spowoduje, że w miejscu przypisania do zmiennej jakiejś wartości dostajesz wyjątek o niezgodności typów. Zmiana nazwy pola (bo np na backendzie zmieni się struktura DTO), jest banalnie prosta wykorzystując do tego np Intellij. W tych dwóch przypadkacj, rzuci Ci błąd kompilacji. Dodatkowo, wolałbym przychodząc do nowego projektu wiedzieć czego można się spodziewać "po zmiennej" patrząc na kod, niż bawić się debugerem.

Poza tym, w przeglądarkach masz "ślad" po TS w postaci source map (czy jakoś tak), gdzie korzystając ze stacktrace, bezpośrednio jesteś przenoszony do miejsca błędu w kodzie TS.

W przypadku gdy błąd związany z nullem/undefined nie wynika ze struktury danych, to fakt przed tym Cię to nie uchroni, ale też nie będzie przeszkadzać w debugowaniu. Imo - sytuacja w której jedynie można zyskać.

SI
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Gdynia
  • Postów:5
0

Panowie i panie, czy można się uczyć TS nie znając JS lub znając go pobieżnie? Jak będzie popularny ten nowy silnik - kompilator Deno, to zastąpi on silnik V-8 od Google na backendzie, czyli tam gdzie teraz jest Node? Więc będę mógł pisać w czystym TS po stronie serwera bez utraty wydajności, jak to obecnie jest przy konwersji TS do JS?

UR
  • Rejestracja:około 5 lat
  • Ostatnio:prawie 3 lata
  • Postów:360
1

Nie da się, bo potem nie wiesz jak jest bindowane this, co to closure, jak działa itd.

LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:2 minuty
  • Postów:8420
5
sinatra napisał(a):

Panowie i panie, czy można się uczyć TS nie znając JS lub znając go pobieżnie?

TS to jest w zasadzie JS + seria adnotacji.

Więc i tak będzie ci potrzebna wiedza o JS, żeby pisać w TS.

Ew. tak jak niektórzy - możesz uczyć się mimowolnie JS przy okazji nauki TS - ale to ma taką wadę, że potem ludzie nie wiedzą, co im daje TS - i potem głoszą herezje typu, że "TS wrzuca OOP do JavaScriptu", co nie jest prawdą - obiektowość w JS od lat jest, tyle, że oparta na prototypach. Inna herezja to np. "TS dodaje klasy do JS", co też jest nieprawdą, bo w czystym JS też można już pisać klasy (chociaż TS dodaje np. interfejsy).

I ogólnie czasem widzę w internetach, jak ktoś się uczy od razu TS, to potem ma problemy z tym, że nie wie nawet co mu ten TS daje, nie widzi tej różnicy między TS, a JS. A potem traci czas na rozwiązywanie problemów z JSem, które ominął w nauce.


edytowany 1x, ostatnio: LukeJL
FI
filemonczyk
to oop w js to diament
SI
Z tym, że ludzie mają w nosie to, żeby widzieć różnice i podniecać się tym co im daje TS względem JS. Młode pokolenie jest coraz bardziej leniwe, liczy się dla nich łatwość języka i prostota tworzenia aplikacji. Mamy wydajne procesory dlatego ludzie odchodzą od trudnych języków programowania i wybierają wygodę. W TS raczej chodzi o to, aby łatwiej utrzymać dobry bezpieczny kod względem JS?
LukeJL
ale w jaki sposób TS sprawia, że programowanie jest łatwiejsze? Jak tak patrzę, z jakimi problemami ludzie najczęściej przychodzą do netu, to wydaje mi się, że ludzie mają największy problem w JS z takimi rzeczami jak asynchroniczność, domknięcia, zmienne, przepływ sterowania(w sensie co się uruchamia kiedy), niemutowalność itp. Mnie się wydaje, że TS nie próbuje być łatwiejszym JS dla początkujących, tylko raczej "utrzymywalnym JS". Slogan TS to "JavaScript that scales.".
bobojak
  • Rejestracja:prawie 9 lat
  • Ostatnio:prawie 3 lata
  • Postów:26
1
sinatra napisał(a):

Panowie i panie, czy można się uczyć TS nie znając JS lub znając go pobieżnie?

Możesz próbować. Większośc popularnych bibliotek, bez których nie będziesz się mógł obejść w swoich projektech ma swoje definicje typescriptowe i to Ci ułatwi start. Upierdliwe są dziwactwa JS, które musisz poznać siłą rzeczy.

sinatra napisał(a):

Jak będzie popularny ten nowy silnik - kompilator Deno, to zastąpi on silnik V-8 od Google na backendzie, czyli tam gdzie teraz jest Node? Więc będę mógł pisać w czystym TS po stronie serwera bez utraty wydajności, jak to obecnie jest przy konwersji TS do JS?

TS to jest obecnie taki 'write time', czyli ma ułatwiać pisanie/utrzymanie kodu - jak mniemam o takiej 'wydajności' pisania kodu piszesz. Koncepcja żeby go nie transpilować do JS jest zacna i ma potencjał wyparcia Node.js (w obecnej postaci). Jak duże korpo się zorientują i zaangażują w projekt Deno, to stanie się nie mniej popularny niż TS (przykład Microsoft twórca TS, Google z Angular/TS, Facebook coraz częściej React/TS). Tylko czekać, aż przeglądarki zaczną natywnie obsługiwać TS bez transpilacji.


"Jakie to proste, przejść przez przeszkodę mostem" // Apteka
LukeJL
tylko pytanie, czy to Deno to nie chwilowa moda, jak inne tego typu technologie... A potem człowiek zainwestuje czas, zrobi projekt w Deno, a okaże się, że za 2 lata nikt o tym nie będzie pamiętać. A z tego co czytam, nie jest to kompatybilne z Node? https://deno.land/manual#comparison-to-nodejs
Aryman1983
  • Rejestracja:prawie 15 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Pabianice
  • Postów:255
0
sinatra napisał(a):

Panowie i panie, czy można się uczyć TS nie znając JS lub znając go pobieżnie? Jak będzie popularny ten nowy silnik - kompilator Deno, to zastąpi on silnik V-8 od Google na backendzie, czyli tam gdzie teraz jest Node? Więc będę mógł pisać w czystym TS po stronie serwera bez utraty wydajności, jak to obecnie jest przy konwersji TS do JS?

Deno działa podobnie jak node. W dalszym ciągu do uruchomiania kodu jsowego służy V8.

LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:2 minuty
  • Postów:8420
0

Równie dobrze każdy (kto czuje się na siłach technicznie) może sobie użyć V8 i zrobić własnego Node'a.

Tylko i tak potem się okazuje, że rozbija się to o pakiety i ciągłe afery z nimi (przecież NPM miało ileś afer z tymi pakietami, że jakieś malware ktoś wrzucił, albo afera left pad itp.). Tutaj jest inne podejście:
Deno does not use npm It uses modules referenced as URLs or file paths
Ale czy lepsze? Poza tym inni muszą używać tego systemu pakietów. Bo inaczej to wymrze jak bower (to było takie coś jak npm, ale do frontendu - bo kiedyś npm się głównie do Node korzystało, dopiero potem powstała moda, żeby korzystać z npm do frontendu. pojawiły się narzędzia typu Browserify itp. bower poszedł w odstawkę. Chociaż ja nawet nie używałem bowera, tylko pamiętam, że był modny zanim npm stało się standardem)


edytowany 5x, ostatnio: LukeJL
bobojak
  • Rejestracja:prawie 9 lat
  • Ostatnio:prawie 3 lata
  • Postów:26
1
LukeJL napisał(a):

Równie dobrze każdy (kto czuje się na siłach technicznie) może sobie użyć V8 i zrobić własnego Node'a.

Warto dodać, że twórca Deno nie tylko ma odpowiednie 'siły techniczne', ale ma również potężne doświadczenie jako twórca Node.js, w którym dostrzegł wady w założeniach i rozwiązaniach.

Ryzyko, że Deno się nie przyjmie jest spore, Node.js ma ugruntowaną pozycję, dużo napisanego kodu, bibliotek, dyskusji, tutoriali, jest wbudowane nawet w Phothoshopa czy After Effects (pamiętam swoje zabawy sprzed kilku lat z uruchamianiem wtyczki pozwalającej w Photoshopie na sterowanie głosem).


"Jakie to proste, przejść przez przeszkodę mostem" // Apteka
LukeJL
ty, masz rację, nawet nie wiedziałem, a okazuje się, że za Deno stoi sam Ryan Dahl, który zrobił Node.js. Co w takim razie poszło nie tak? No ale to trochę nadaje temu projektu większego splendoru pewnie, że to nie jest hipsterski projekt kogoś, kto chce zrobić własne Node, ale ewolucja sterowana przez jego stwórcę? Kurczę, muszę obczaić, co ten Ryan Dahl o tym mówi.
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)