Nauka C++ w nowy sposób

fasadin
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
31

Cześć wszystkim.
Dziś można powiedzieć, że oficjalnie ruszyłem z kursem.
Zapraszam wszystkich na http://fasadin.4programmers.net/
Śmiało zapraszam do komentowania i krytykowania czy tutaj czy na blogu.
Wszystkie uwagi zostana przedyskutowane i wziete pod uwage :)

edytowany 3x, ostatnio: flowCRANE
spartanPAGE
@fasadin zrób klikalny link ;p
fasadin
fixed
Craith
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 3 lata
  • Postów:146
2

zamawiam cos w podobnym stylu tylko z c++ -> java :)
podziwiam za checi

edytowany 1x, ostatnio: Craith
n0name_l
Zamiast oczekiwać na tutorial, to wejdź na stronę Oracle'a i przeczytaj ten co tam mają. A jak czegoś nie będziesz wiedział to pytaj na forum/SO/chacie/ircach/whatever...
grzesiek51114
grzesiek51114
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:2442
2

@Craith Z Javy za drobniutką opłatą podszkoli Cię pewnie @karolinaa :)

grzesiek51114
grzesiek51114
@karolinaa jak Cię @Craith ładnie poprosi...
KA
mogę sprzedać jakiś tani program
grzesiek51114
grzesiek51114
@karolinaa no tutaj raczej masz monopol na tanie oprogramowanie hihi ...Co innego tani kursik :P
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:33 minuty
  • Lokalizacja:Tuchów
  • Postów:12166
3

@fasadin - subdomena zobowiązuje :D Prostota strony jak zwykle u mnie na plus, ale to:

b.png

na samej górze strony wygląda paskudnie i raczej nie powinno się tam znajdować; I jeszcze jedna sprawa - strona nie skaluje się na niższych rozdzielczościach i pojawia się poziomy suwak; Przeprowadziłem śledztwo - patrzę w CSS a tam taki cycek:

Kopiuj
body { 
  min-width: 1200px;
}

Rozumiem, że czasy 800x600 już dawno za nami, jednak nie każdy ma monitor na pół ściany;

Co do samego tekstu i jego merytoryczności - nie wnikam, to zweryfikują inni; Natomiast słabo formatujesz tekst i niepotrzebnie indeksujesz nagłówki od 0; A tak to spoko - cytując klasyka (tzn. trolla): "zachęcam do dalszej pracy" :]

PS: Ach, teraz dopiero gdzie indziej doczytałem, że to przerzutka i chyba nici z powyższego... :D

  • b.png (2 KB) - ściągnięć: 493

Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
edytowany 4x, ostatnio: flowCRANE
3

Fajna inicjatywa. Nic, tylko podziękować w imieniu wszystkich tych, którzy skorzystają.
Mała uwaga - lepiej chyba by było, żeby zamiast na blogspocie, postawić to nawet na githubpages - kody źródłowe od razu w jednym miejscu i tak dalej : )

fasadin
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
0

@furious programming @Wielki Kot
no niestety to tylko redirect. Nie chcialem spedzac duzo czasu nad budowaniem strony w html css (nie jest to moja mocna strona. Nigdy tego nie lubilem)
Wiem, ze formatowanie tekstu jest slabe. Nadal staram sie jakos to poprawic ale ciezko mi to idzie. Jezeli cos wylapiecie jak mozna to usprawnic. Dajcie mi znac :)

1

Hej,
kurs zapowiada się bardzo ciekawie, na pewno będę śledził :). Jedno ale: nie chcę być postrzegany za czepialskiego, ale(a jednak jest drugie :)), mimo że bardzo podobaa mi się wstęp(jestem w trakcie pisania), to zauważyłem zgrzyt. Mianowicie, tak fajnego wstępu nie godzi się kalać stwierdzeniem :__ klasa tworzy obiekty__. Bo później, przy bardziej zaawansowanym etapie, dojdziemy do momentów, o konstruktorach, wzorcach projektowych (np. fabryka) i będzie konsternacja :). Więc klasa jest bardziej formą (o czym zresztą też gdzieś wspomniałeś).

fasadin
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
0

@Pszep
zgadzam się. Celowo tak napisałem. Ale widocznie za dużo kontrowersji to przynosi także w piątek to poprawie na bardziej pasującą formę. Dzięki za feedback

1

I jeszcze jedno: 1.4: "W programowaniu to wszystko definiujemy w trakcie tworzenia obiektu lub gdy już istnieje (tak, możemy zmieniać właściwości obiektu nawet gdy już istnieje. Nie ma żadnego problemu z tym!)"

Nie możemy przecież definiować cechy dla obiektu istniejącego(chyba, że np. obiekty są tablicami asocjacyjnymi jak w JS) - oczywiście możemy, tak jak później napisałeś ją zmieniać.

poza tym super :)

fasadin
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
0

@Pszep tutaj tez doprecyzuje o co mi chodziło :) Dzieki za feedback

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
1

Nie możemy przecież definiować cechy dla obiektu istniejącego(chyba, że np. obiekty są tablicami asocjacyjnymi jak w JS) - oczywiście możemy, tak jak później napisałeś ją zmieniać.

W C++ może i nie ale juz w takim pythonie bez problemu ;]


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
fasadin
doprecyzuje ze mozna dodawac kolejne zachowania ale np juz nie wywolasz konstruktora dla istniejace obiektu (tzn mozna ale byloby to nierozsadne)
Wizzie
można zarówno faktyczny konstruktor (new) jak i init. Właściwie to w Pythonie można się dostać praktycznie wszędzie i wszystko zmienić, widziałem przykłady ciekawych hacków gdy tradycyjny sposób był zbyt trudny lub niemożliwy ;)
1

We wstępie napisałeś, że w późniejszych rozdziałach będziesz "wyjaśniał szczegóły, które pominąłem lub delikatnie nagiąłem prawdę" - może fajnie by było żebyś takie miejsca (tzn. o których kiedyś opowiesz trochę dokładniej) w jakiś sposób oznaczał (* czy inny kolor czy cuś innego ) ;)

fasadin
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
0

myślałem nad tym, ale nie zrobie tego z bardzo proste względu. Czytelnik nie może wątpić w to co czyta bo wtedy będzie się nad tym zastanawiał a te rzeczy które tutaj wymieniłeś (bo nie do końca są prawdą) są na tyle małe i na tyle szczegółowe, ze przyjecie do wiadomosci, ze cos jest troszeczke inaczej, nie powinno byc dla nikogo problemem

IceHeart
  • Rejestracja:prawie 11 lat
  • Ostatnio:2 dni
  • Postów:312
5

Ciekawym pomysłem by było, gdybyś dodawał zdania do zrobienia, ale nie typu "Napisz kalkulator", tylko takie zdanie gdzie jest już kawałek kodu, uczyłby się od razu analizy kodu. Na przykład dajesz gotową funkcję main, w której są wykonywane jakieś operacje na liście (dodaj na początek, usuń, dodaj na koniec itp.), a zadaniem uczącego byłoby dopisać resztę kodu (funkcje, klasy/struktury) tak aby działało poprawnie. Odpowiedni podział na pliki .h i .cpp. Może jakiś krótki wstęp do tworzenia makefile itp.

fasadin
+1
TA
  • Rejestracja:prawie 14 lat
  • Ostatnio:3 miesiące
  • Postów:74
0

Fajnie :) Trzymaj poziom a będzie ok :)

1

GitHub Pages używa jekylla - masz dużo domyślnych templatek, których nie musisz wcale edytować ani babrać się z htmlem, cssem czy frontendem w ogóle.
PIszesz jedynie posta w wyswigu albo markdownie

KM
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 9 lat
  • Postów:11
0

Pisałeś, że HTML i CSS nie jest twoją mocną stroną, jednak fajnie by było stworzyć dobrą stronę. W necie jest mnóstwo generatorów stron do której musisz w sumie jedynie zrobić grafikę i są do tego darmowe, zapłacić musisz jedynie za hosting i domenę, ale nie jest to duży koszt (przynajmniej zazwyczaj) Sam kiedyś robiłem na takiej zasadzie dla kilku klientów strony internetowe. W szybki i prosty sposób robisz stronę która wygląda jak profesjonalna i masz zazwyczaj pakiety gotowych skryptów do dodawania komentarzy itp. tak więc jedynie robisz w PS'ie sobie grafiki. Jak chcesz to podbij na priv podeślę ci link, żeby nie robić zbędnego spamu.

0

Nie mogę napisać w komentarzach(nie mam kont(google, WP itp) na blogu.
Do 1 rozdziału:
Mój przykład:
Klasa nauczyciel:
-obiekt nauczyciel historii(własność), długie włosy(własność):
*uczy (funkcja)
*pyta uczniów (funkcja) <--> uczeń odpowiada(funkcja)
Trzymaj tak dalej!
Pozdrawiam!

fasadin
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
0

Wielki Kot
Sprawdzalem na szybko github pages + jekyll i jest troche konfiguracji. Ja ledwo znajduje czas by napisac nowy tekst a jak mialbym jeszcze stawiac kilka godzin strone i pozniej sie opiekowac nia (bo cos nie bedzie dzialac, bo pozniej cos tam) to ten kurs w ogole nie powstanie

@kmaksiu
stworz :) z checia skorzystam. Tak jak napisalem wczesniej, nie mam czasu na bawienie sie html + css. To ma byc kurs, wazne sa tresci, a nie jak wyglada strona. Jezeli ktos chce pomoc w napisaniu czegos wlasnego z checia przyjme taka pomoc, ja sam nie znajde na to czasu po prostu

@planrakee
Nie wiem czy sie uczysz od poczatku i rozwiazujesz zadanie czy jako przyklad, ale jezeli to pierwsze to tak ;) rozwiazales poprawnie

edytowany 1x, ostatnio: fasadin
YO
  • Rejestracja:ponad 9 lat
  • Ostatnio:prawie 3 lata
  • Postów:33
0

Super pomysł, ciekawe podejście, będę śledził i mam andzieje jak najwięcej sie nauczę. Ciśnij z tematem, Powodzenia !

edytowany 1x, ostatnio: yoseph
WhiteLightning
  • Rejestracja:prawie 14 lat
  • Ostatnio:około godziny
  • Postów:3169
0

Mi nie pasuje opis: czym jest klasa - to co opisales bardziej na fabryke abstrakcyjna wyglada. Do tego niefortunne zdanie:
"Klasa w programowaniu jest rzeczą abstrakcyjną" - jesli klasa jest rzecza abstrakcyjna to czym jest klasa abstrakcyjna?
Poza tym czy to klasa tworzy obiekty? Czy raczej sa tworzone obiekty danej klasy.

fasadin
Chodzilo, ze z klasa nic nie zrobisz. Mozesz utworzyc obiekt z klasy, ale klasy jako takiej nie utworzysz. Abstrakcje wyjasnie pozniej ;) wtedy naprostuje pewne rzeczy
WhiteLightning
@fasadin - nie chodzi o moje zrozumienie, (ja juz swoje w IT siedze), bardziej o to ze poczatkujacy moga sie zamotac.
fasadin
to ja wiem ze Ty wiesz, ale jak początkujacemy to wyjasnisz ze klasa "nie istnieje" inaczej niz ze jest abstrakcyjna? Sadze ze dzieki temu pozniej abstrakcyjnosc bedzie latwiej wyjasnic. Zobaczysz w nowym rozdziale, ze np z poprzednich dwoch duzo definicji prostuje i robi sie bardziej technicznie
grzesiek51114
grzesiek51114
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:2442
7

Klasa w programowaniu to schemat wg, którego tworzone są jej poszczególne egzemplarze czyli obiekty. To tak jak w budownictwie. Jeżeli chcemy zbudować dom to najpierw potrzebujemy utworzyć jego plan. Dopiero kiedy będziemy posiadali plan możemy rozpocząć budowę. Porównując to z programowaniem obiektowym; plan budynku jest klasą, natomiast gotowy budynek jest jej egzemplarzem czyli obiektem. Na podstawie jednego planu można zbudować wiele domów i tak samo jest w programowaniu obiektowym. Na podstawie jednej klasy możliwe jest utworzenie wielu obiektów, których zachowania oraz własności są wewnątrz danej klasy (planu budynku) zdefiniowane.

;)

edytowany 2x, ostatnio: grzesiek51114
Zobacz pozostały 1 komentarz
grzesiek51114
grzesiek51114
@fasadin XD
fasadin
no co :)? Kazdy moze miec swoj udzial w tworzeniu tego kursu. Dlatego przeciez ciagle sie pytam o feedback :)
grzesiek51114
grzesiek51114
@fasadin no ale przeca uśmiechnąłem się przyjacielsko, jednocześnie wyrażając aprobatę dla Twojego stosunku do mojego postu.:)
grzesiek51114
grzesiek51114
Po jakimś czasie... "Ale ładnie wytłumaczyłem, no. Czwórkę miałem z polskiego na maturze pamiętam" :)
EV
@grzesiek51114 chyba pierwszy raz widzę wyjaśnienie klasy i implementacji inne, niż na samochodach i zwierzaczkach :)
fasadin
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
0

zminiłem ze klasa tworzy obiekty na

Najważniejszą rolą klasy w programowaniu jest to, że daje szablon programiście do tworzenia obiektów. To jest jej zadanie.

co jest dużo lepiej leży koło prawdy, a jest równie proste co poprzednie zdanie

dodałem zdanie grzeska bo jest to świetny przykład oraz poprawilem drobniejsze bledy

postaram sie dzis wrzucic kolejna lekcje

edytowany 1x, ostatnio: fasadin
fasadin
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
0

nowy post. Jak zawsze mile widziany feedback

somekind
c****, nie czytałem.
fasadin
smiesznys, oh wait...
somekind
Żeby nie było, to zacytowałem z trzeciego komentarza pod tym tekstem: http://www.maciejaniserowicz.com/2013/03/11/nie-kradnij/
fasadin
no to masz dobre poczucie humoru... czekaj chyba cos zle napisalem ;D
Endrju
  • Rejestracja:około 22 lata
  • Ostatnio:ponad rok
5

Konstruktor jest zawsze wywołany gdy obiekt zostaje utworzony

To nie jest prawda. W szczególnym przypadku żaden konstruktor może nie zostać wywołany podczas value initialization.

Jeżeli nie stworzymy żadnego konstruktora dla klasy to ten stworzy się sam (kompilator go wygeneruje)

To nie jest prawda. Jest wiele przypadków, dla których tak się nie stanie. Np. jeżeli klasa będzie miała składnik, który jest referencją (bez inicjalizacji w definicji klasy).

Jeżeli nie stworzymy żadnego destruktora dla klasy to ten stworzy się sam (wygeneruje się)

To nie jest prawda. Jest kilka przypadków, dla których tak się nie stanie. Np. jeżeli którykolwiek składnik nie będzie mieć dostępnego destruktora.

Oczywiście to szczegóły, które starasz się pomijać. To w porządku, ale można po prostu pisać "zazwyczaj stworzy się sam" czy "praktycznie zawsze jest wywoływany (jest jeden, teraz nieistotny, wyjątek)". To powoduje, że nikt nie będzie czuł się oszukany kiedy potem okaże się, że to było uproszczenie.

Póki co wszystkie nasze klasy zawszę będą publiczne.

Nie ma czegoś takiego. Chyba chodziło o klasę z samymi publicznymi składnikami.

Definiujemy szablon (czy jak kto woli robimy plan dla budynku)

Używanie w kursie C++ słowa szablon do czegoś co nie jest szablonem w myśl C++ może spowodować zamieszanie w przyszłości.

Formatowanie kodu jest niespójne i dziwne. Tekst trudno się czyta. Jest dziwnie sformatowany, ma dziwną składnię i interpunkcję. Np:

Konstruktor Definiujemy tak samo nazwę klasy tylko tak samo jak funkcje main z () {}.

Wut?


"(...) otherwise, the behavior is undefined".
edytowany 4x, ostatnio: Endrju
Zobacz pozostały 1 komentarz
fasadin
dzieki za wytlumaczenie rownież! Jutro będzie poprawione wszystko (z literówkami i formatem)
Endrju
Trochę dodałem, żeby nie było, że marudzę. Nie o to mi chodzi. ;-)
fasadin
nawet marudzenie byloby jak najbardziej na miejscu :) poszukalbym sam. Takie uwagi sa najwiecej warte (merytoryczne) Jutro siąde i poprawie cały post. Dzieki wielkie jeszcze raz :)
fasadin
poprawki merytoryczne zaaplikowane, dzisiaj jeszcze przejrze tekst i poprawie. Nie udalo mi sie na weekendzie
fasadin
troszke poprawilem, ale nie wiem troche jak poprawic sformatowanie tekstu + dziwna skladnie (pracuje nad tym by bylo jak najbardziej po polsku...) mam nadzieje ze teraz jest lepiej
0

Np wiemy, ze kubek posiada kolor (klasa), ale nie wiemy jaki (taką informacje posiada obiekt)

Nie wiem czy tu jest błąd ale chyba powinno być:
Np wiemy, ze kubek(klasa) posiada kolor (dane czy właściowość), ale nie wiemy jaki (taką informacje posiada obiekt).
Jak się mylę to proszę o wyjaśnienie :).
Składowe klasy w innych językach programowania (np. Python) definiujemy w konstruktorze?

fasadin
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
0

Planrakee oczywiscie masz racje. Dzis poprawie.

Nie jestem pewien co do pythona, bo wydaje mi sie ze mozna to robic dynamicznie (czyli nie tylko w konstruktorze). Ale zawolam @Shalom ktory bedzie znal odpowiedz na to pytanie :)

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
4

@Planrakee python to akurat trochę wyjątek bo tam możesz dynamicznie definiować property obiektów gdzie chcesz ;] Jest taka niepisana konwencja żeby definiować je w __init__ żeby było widać co obiekty danej klasa posiadają, ale nie jest to w żaden sposób wymuszone. Możesz definiować property także w innych metodach a nawet w ogóle poza nimi ;] Mozesz zrobić np.

Kopiuj
class A(object):
    pass

#

x = A()
x.y = 1

I nagle nasz obiekt x klasy A ma pole y mimo że inne obiekty tej klasy takiego pola nie mają.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
4

Trochę głupio uzupełniać wypowiedzi @Shalom'a o Pythonie. W utworzonym obiekcie można nie tylko dopisać atrybut, można go też usunąć.

Kopiuj
class A:
    def __init(self)__:
        self.x = 3
        self.y = 5

a = A()
a.y  #5
del a.y
a.y #AttributeError: A instance has no attribute 'y'

To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
edytowany 1x, ostatnio: bogdans
Shalom
Nikt o to nie pytał wiec nie wspominałem, ale może warto ;)
0

Dobry blog czekam na więcej !
W szczególności na tworzenie zbioru obiektów i zarządzenie nim (kolekcje ?)

Pozdrawiam.

fasadin
oczywiscie bedzie ale dopiero pozniej.
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)