Kurs Angulara - Czego obecnie brakuje?

Kurs Angulara - Czego obecnie brakuje?
Marcin Milewicz
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:5
1

Hej, razem ze znajomym tworzę kurs Angulara. Chcemy pomóc tym, którzy potrzebują zapoznać się z praktycznymi technikami w pracy z Angularem lub chcą być bardziej efektywni w obecnej pracy. Chcemy również pomóc tym, którzy dopiero szukają pracy jako programista / programistka Angulara. Stawiamy na praktykę i własne doświadczenie. Pracujemy z Angularem od samego początku jego powstania. W pracy czynnie bierzemy udział w procesie rekrutacji i weryfikacji technicznej kandydatów na każdym poziomie zaawansowania. Z doświadczenia wiemy jakie problemy mają ludzie ze zrozumieniem tego frameworku i jaka wiedza rzeczywiście jest istotna, aby być skutecznym w pracy z Angularem.
Pytanie do Was: czego według Was brakuje w kursach, które już istnieją? Co chcielibyście dostać więcej w takim kursie? Czy widzicie wartość w takich dodatkach jak opieka mentora, wspólne code review projektów, pomoc w przygotowaniu się do rozmowy rekrutacyjnej?

IceHeart
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 21 godzin
  • Postów:312
0

Bardziej pytanie do was, dla jakiej grupy docelowej ma być ten kurs, dla ludzi którzy zaczynają swoją drogę czy dla osób z doświadczeniem w angularze? Ten kurs ma być darmowy/płatny?

Marcin Milewicz
Naszą grupą docelową mają być Ci, którzy już poznali podstawy Angulara. Wiedzą co to poszczególne elementy framework'u i jak tworzyć proste komponenty. Wiemy jednak, że taka wiedza ma się nijak do tego co robi się na co dzień w pracy. Nie chcemy uczyć czym jest komponent czy dyrektywa, bo tego jest wszędzie pełno. Mamy swoje spostrzeżenia z czym ludzie sobie nie radzą w środowisku pracy i czego brakuje jednak w wielu podstawowych (bardzo dobrych imho) kursach. Jednak to tylko nasze spostrzeżenia, dlatego chcemy zapytać szerszego grona o ich potrzeby. Kurs będzie płatny.
IceHeart
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 21 godzin
  • Postów:312
3

Jeśli mam płacić za kurs to ma mi dawać coś więcej niż sam mogę sobie to znaleźć w internecie i na pewno od osoby którą uznaje za "guru" w tej dziedzinie. Nie będę chciał płacić komuś kto mi mówi że coś umie, bez zaprezentowania swojej wiedzy na konferencjach(np. GeeCon) czy blogu(https://vladmihalcea.com/) jak chcesz mnie przekonać że naprawdę jesteś ekspertem w swojej dziedzinie?
Oczekuje podzielenia się doświadczeniem. Co do metoringu, jak to ma wyglądać (programowanie w parach, code review)?
Dlaczego mam zapłacić Wam zamiast kupić kurs na Udemy czy pluralsight czym się chcecie wyróżnić?

Pixello
  • Rejestracja:prawie 10 lat
  • Ostatnio:4 miesiące
  • Lokalizacja:Podkarpacie
  • Postów:448
1

Mam podobnie, poza tym mam wrażenie, że wszelkiego rodzaju kursy i szkolenia to tylko networking - jak jest już coś przedstawiane, to na zbyt ogólnym poziomie, aby było to dla mnie wartością dodaną - chociaż mam wrażenie, że dla osób, które nie interesują się programowaniem tak bardzo i się nie dokształcają takie szkolenia mogą być jedynym źródłem 'nowinek' i 'best practices'.

Marcin Milewicz
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:5
0

Jeśli mam płacić za kurs to ma mi dawać coś więcej niż sam mogę sobie to znaleźć w internecie i na pewno od osoby którą uznaje za "guru" w tej dziedzinie. Nie będę chciał płacić komuś kto mi mówi że coś umie, bez zaprezentowania swojej wiedzy na konferencjach(np. GeeCon) czy blogu(https://vladmihalcea.com/) jak chcesz mnie przekonać że naprawdę jesteś ekspertem w swojej dziedzinie?

Przekonywać nikogo nie chcę. Chcę zapytać ludzi czego potrzebują, czego nie ma w obecnych kursach, a co byłoby dla nich wartościowe. Na pewno nie będziemy chcieli tego sprzedawać w ciemno. Na pewno damy możliwość pełnego zwrotu pieniędzy, jeśli komuś np nie spodoba się kurs, a zgłosi to w określonym czasie np. 14 lub 30 dni. Nie chcemy sprzedawać kota w worku i nie chcemy niezadowolonych klientów. Jeśli ktoś będzie nie zainteresowany, nie będzie mu się podobała merytoryka, nie będzie się mu podobała nasza twarz czy ton głosu, to nie. Oddamy pieniądze i pożegnamy się w pozytywnej atmosferze.

Osoby, które będą zaangażowane w kurs mają doświadczenie konferencyjne na największych konferencjach w Polsce., Będą to osoby z około 10-cio letnim doświadczeniem w największych firmach globalnych: Nokia, Eurobank, Credit Suisse, UBS czy BNY. Oczywiście każdy przed kupnem będzie mógł sobie sprawdzić i stwierdzić, że chce się uczyć od takiej osoby. Będziemy stawiać na transparentność, ale to w momencie kiedy będziemy chcieli sprzedać nasz produkt. Na razie chcemy stworzyć coś co będzie wartościowe i coś co odpowiada na potrzeby rynku.

Oczekuje podzielenia się doświadczeniem. Co do metoringu, jak to ma wyglądać (programowanie w parach, code review)?

To właśnie ja pytam ludzi, co dla nich byłoby wartością. Wiadomo, że programowanie w parach to już duży koszt i może być nieosiągalne. To wszystko jest w momencie badania możliwości i zainteresowania.

Dlaczego mam zapłacić Wam zamiast kupić kurs na Udemy czy pluralsight czym się chcecie wyróżnić?

Stworzyć aspekt "networkingowy". Wspólną grupę kursantów, która będzie żyła. Na bieżąco dawać kursantom zadania domowe i dawać informację zwrotną na temat jego wykonania bądź podejścia do tego.
Na Udemy są wartościowe kursy, ale do tej pory nie znalazłem niczego, co odzwierciedlałoby rzeczywistą pracę. Zwykle to omówienie elementów języka/biblioteki/frameworka. My możemy podzielić się prawdziwą praktyką i rzeczywistymi sytuacjami lub problemami w pracy. Na Udemy jest dużo bardzo dobrych kursów na tzw entry level, ale brak dobrze omówionych zagadnień bardziej zaawansowanych.
Co do Pluralsight'a mam podzielone opinie. Zrobiłem tam wiele kursów i do tej pory nie natknąłem się na nic co z czystym sumieniem mógłbym polecić.

IceHeart
Moim zdaniem taki aspekt networkingowy jest bez sensu, dostanę zadanie domowe nie będę umiał zrobić to mi pomożesz czy ludzie z tej grupy mi pomogą? Jeśli oni, to nadal nie jest to czego oczekuje, bo oczekuje pomocy osoby doświadczonej, a nie kogoś kto się uczy. Już lepszym pomysłem by było wrzucenie zadania, wraz z pełnym rozwiązaniem i najlepiej opisem/filmem do tego.
Marcin Milewicz
Jeśli pójdziemy w tę stronę to oczywiście będziemy wrzucać pełne rozwiązania zadań z filmem opisującym dane rozwiązanie i wytłumaczeniem czemu akurat to tak zostało rozwiązane. W wielu aspektach nie ma jednej słusznej drogi. Co więcej wielu ekspertów kłóci się jaka droga jest lepsza, a jaka gorsza. Na pewno będziemy chcieli podzielić się swoim doświadczeniem i opowiedzieć co się sprawdziło, a co nie. Nie w dokumentacji, ale w realnych zrealizowanych przez nas projektach, które były dość duże.
UR
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 3 lata
  • Postów:360
2

Bądźcie innowacyjni i jako pierwsi stwórzcie długi kurs na którym buduje się dużą apkę biznesową od podstaw, wykorzystując wszystkie zaawansowane techniki, a nie tylko skąpe liźnięcie tematu, na poziomie niższym niż jest w docsach.
Bo jak to ma być kolejny crud/todo list, to taki kurs sobie można wsadzić w buty.

Równie dobrze można zostać kolejnym producentem zapałek i wmawiać ludziom, żeby kupowali tylko nasze zapałki, mimo że są droższe, a na rynku są inne, porównywalnej jakości i rozdają je na dodatek za darmo...

edytowany 2x, ostatnio: urke
Marcin Milewicz
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:5
0

Bo jak to ma być kolejny crud/todo list, to taki kurs sobie można wsadzić w buty.
Bardzo często duże apki biznesowe to crudy ;)

Równie dobrze można zostać kolejnym producentem zapałek i wmawiać ludziom, żeby kupowali tylko nasze zapałki, mimo że są droższe, a na rynku są inne, porównywalnej jakości i rozdają je na dodatek za darmo...

Głównie o to chodzi, aby nic nie wmawiać nikomu. Chcemy stworzyć kurs, który będzie dawał wartość. Na pewno nie powiemy, że nasz kurs jest najlepszy, a inne są złe. To nie prawda, zawsze będą i będą powstawać nowe kursy, które będą dawać wartość mniejszą lub większą. Ważne natomiast, aby nasz kurs także dawał dużą wartość i był warty swojej ceny. Jeśli nie będzie warty, to nikt go nie kupi albo kupią i zwrócą. Nie o to chodzi.

Mamy dobre intencje stworzenia czegoś dobrego. W swojej karierze pomogłem wielu osobom. Często te osoby przerobiły bardzo dużo kursów z Udemy czy Plurasight, a mimo to pierwszy raz spotykały się z rzeczywistymi problemami w trakcie projektu.

Miang
  • Rejestracja:prawie 7 lat
  • Ostatnio:3 minuty
  • Postów:1659
0

to ma być kurs płatny? jeśli tak, to przynajmniej duże zniżki zaproponuj tym co Ci pomogą przygotować zakres kursu, odpowiadając tutaj na pytanie "co ma byc na kursie"


dzisiaj programiści uwielbiają przepisywać kod z jednego języka do drugiego, tylko po to by z projektem nadal stać w miejscu ale na nowej technologii
Marcin Milewicz
Dziękuję za sugestię!
AI
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 3 lata
  • Postów:375
3

Pomysł z większą aplikacja byłby super. Dobrze byłoby, gdybyście podczas tworzenia takiej aplikacji wykorzystali o omówili:

  • Ngrx - jak z niego korzystać, zwłaszcza gdy będzie kilka propertiesów które wpływają na ogólny stan aplikacji. Co powinno się w nim znaleźć itd. Ostatnio myślałem, czy dobrą praktyką byłoby wyniesienie stanu kontenera do store, żeby móc w łatwy sposób korzystać np. z Resolverów. Różnice i jak korzystać z forRoot i forFeature (tworzenie reducera z createReducer()). Dzielenie stanu aplikacji (oraz komunikacja), w przypadku gdyby wymagane było otwarcie nowego okna.
  • Modularyzację projektu
  • Providers (InjectionToken i property 'provide' np. APP_INITIALIZER) - kiedyś długo szukałem rozwiązania, jak można obsłużyć refresh w przeglądarce, który gubił mi stan w komponentach. Dopiero poprawnym rozwiązaniem (według mnie) było skorzystanie właśnie z APP_INITIALIZER.
  • Subskrybowanie w template, mam na myśli async pipe wraz z tworzeniem html variable - tutaj też dobre praktyki by się przydały
  • Architecture design, wzorce projektowe oraz wszystko co pozwoli na łatwiejszy rozwój oraz utrzymanie aplikacji, wszystko związane z clean codem.
  • Rxjs i najczęściej używane operatory (w tym takie, które można użyć np do łączenia HTTP requestów: wszystkie naraz, wysyłanie jeden po drugim w requescie dołączając rezultat z poprzedniego, też można np. map do tego dołączyć)
  • Strukturyzację projektu
  • Optymalizacja (changeDetection, ,trackBy, duży zestaw danych z dużą ilością atrybutów)
  • Routing w angularze - uważam, że trochę mu brakuje, np. dodawanie klas do renderowanych komponentów.
  • I jeszcze przede wszystkim: kurs up to date :D Z wsparciem przez "jakiś czas", w którym byłby update'owany jeśli coś się zmieni.

Sporo pewnie można byłoby omówić ale na razie nic więcej mi do głowy nie przychodzi.

edytowany 3x, ostatnio: Aisekai
Marcin Milewicz
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:5
1

-Ngrx - jak z niego korzystać, zwłaszcza gdy będzie kilka propertiesów które wpływają na ogólny stan aplikacji. Co powinno się w nim znaleźć itd. Ostatnio myślałem, czy dobrą praktyką byłoby wyniesienie stanu kontenera do store, żeby móc w łatwy sposób korzystać np. z Resolverów. Różnice i jak korzystać z forRoot i forFeature (tworzenie reducera z createReducer()). Dzielenie stanu aplikacji (oraz komunikacja), w przypadku gdyby wymagane było otwarcie nowego okna.

  • Wiele osób nam mówi, że chciałoby coś z NgRX'a. Ten temat jest zwykle traktowany po macoszemu. Nigdzie nie ma przedstawionych dużych aplikacji jako przykład. Sam temat odnośnie dzielenia odpowiedzialności akcji, reducerów czy efektów to obszerne zagadnienie, które wg różnych praktyk okazuje się nieskalowalne w większych projektach.
  • Providers (InjectionToken i property 'provide' np. APP_INITIALIZER) - kiedyś długo szukałem rozwiązania, jak można obsłużyć refresh w przeglądarce, który gubił mi stan w komponentach. Dopiero poprawnym rozwiązaniem (według mnie) było skorzystanie właśnie z APP_INITIALIZER.
  • Wspomniany przez Ciebie APP_INITIALIZER jest doskonałym przykładem jak zaimplementować konfiguracje projektu niezależną w build-time'ie. IIMHO, niezbędna funkcjonalność, a nigdzie w kursach o tym nie ma. Co więcej, wszystkie kursy pokazują, jak konfigurować projekt za pomocą environments.ts, a to jest bzdura.
  • Rxjs i najczęściej używane operatory (w tym takie, które można użyć np do łączenia HTTP requestów: wszystkie naraz, wysyłanie jeden po drugim w requescie dołączając rezultat z poprzedniego, też można np. map do tego dołączyć)

To jest rzecz, którą na pewno będziemy chcieli skrupulatnie przerobić. Nie ma obecnie dobrnych materiałów o tym jak wykorzystać RxJs w praktycznych biznesowych apkach Angularowych. Od pewnego czasu piszemy w pracy aplikacje do bólu reaktywne bez zbędnego trzymania stanu w komponentach itp. Także nie znalazłem dobrych szkoleń online na ten temat.

  • I jeszcze przede wszystkim: kurs up to date :D Z wsparciem przez "jakiś czas", w którym byłby update'owany jeśli coś się zmieni.

Planujemy trzymać kurs up to date i wprowadzać nawet nowe moduły z biegiem czasu.

Bardzo Ci dziękuję za wiele wartościowych sugestii!

AI
Taki offtop. Robię refaktoring swojej pracy inżynierskiej gdzie korzystam teraz z Ngrx. Problem pojawia się z requestami, bo jak widzę to ngrx/effects wyglądają trochę odrzucająco (staram się skorzystać z nich ale nie wychodzi), czy korzysta się z effects? Bo tak jak napisałem, wygląda mi to na trochę skomplikowany overkill.
Marcin Milewicz
My korzystamy jak najbardziej. Efekty mają to do siebie, że jak się wykorzysta odpowiednie wzorce to mogą być dość czyste i łatwo testowalne. Problemem z efektami jest skalowanie i ustalenie odpowiedzialności klas efektów. Dobre użycie efektów i zastosowanie wzorców znanych z systemów messenginowych potrafi w skuteczny sposób oddzielić logikę od komponentów. Pewne podstawy tego jak to używać, a nie czym to jest są opisane tutaj: https://blog.nrwl.io/ngrx-patterns-and-techniques-f46126e2b1e5
kimikini
  • Rejestracja:ponad 14 lat
  • Ostatnio:3 dni
1

przede wszystkim żebym polecil komukolwiek taki kurs musialbym wiedziec w czym jest lepszy od kursu ktory kupilo ponad 50k osob i zbiera swietne opinie https://ultimatecourses.com/

Marcin Milewicz
Kurs który podałeś jest oczywiście także dobrą drogą do poznania niektórych ciekawych zagadnień Angulara (jego wersja PRO). I oczywiście moglibyśmy wziąć tę samą agendę, powielić tematy i zrobić coś na wzór. Natomiast tego nie zrobimy, bo chcemy dać większą wartość. Chcemy dać to, co rzeczywiście ludziom brakuje. Co jeśli się okaże, że to co zrobiliśmy nie spłenia czyichś oczekiwań? Tak jak napisałem wyżej, zwrócimy pieniądze.
FG
  • Rejestracja:około 5 lat
  • Ostatnio:18 dni
  • Postów:57
2
Aisekai napisał(a):

Pomysł z większą aplikacja byłby super. Dobrze byłoby, gdybyście podczas tworzenia takiej aplikacji wykorzystali o omówili:

  • Ngrx - jak z niego korzystać, zwłaszcza gdy będzie kilka propertiesów które wpływają na ogólny stan aplikacji. Co powinno się w nim znaleźć itd. Ostatnio myślałem, czy dobrą praktyką byłoby wyniesienie stanu kontenera do store, żeby móc w łatwy sposób korzystać np. z Resolverów. Różnice i jak korzystać z forRoot i forFeature (tworzenie reducera z createReducer()). Dzielenie stanu aplikacji (oraz komunikacja), w przypadku gdyby wymagane było otwarcie nowego okna.
  • Modularyzację projektu
  • Providers (InjectionToken i property 'provide' np. APP_INITIALIZER) - kiedyś długo szukałem rozwiązania, jak można obsłużyć refresh w przeglądarce, który gubił mi stan w komponentach. Dopiero poprawnym rozwiązaniem (według mnie) było skorzystanie właśnie z APP_INITIALIZER.
  • Subskrybowanie w template, mam na myśli async pipe wraz z tworzeniem html variable - tutaj też dobre praktyki by się przydały
  • Architecture design, wzorce projektowe oraz wszystko co pozwoli na łatwiejszy rozwój oraz utrzymanie aplikacji, wszystko związane z clean codem.
  • Rxjs i najczęściej używane operatory (w tym takie, które można użyć np do łączenia HTTP requestów: wszystkie naraz, wysyłanie jeden po drugim w requescie dołączając rezultat z poprzedniego, też można np. map do tego dołączyć)
  • Strukturyzację projektu
  • Optymalizacja (changeDetection, ,trackBy, duży zestaw danych z dużą ilością atrybutów)
  • Routing w angularze - uważam, że trochę mu brakuje, np. dodawanie klas do renderowanych komponentów.
  • I jeszcze przede wszystkim: kurs up to date :D Z wsparciem przez "jakiś czas", w którym byłby update'owany jeśli coś się zmieni.

Sporo pewnie można byłoby omówić ale na razie nic więcej mi do głowy nie przychodzi.

Podczas pisania większej aplikacji ja bym osobiście dodał jeszcze następujące rzeczy:

  1. autentykacja i odświeżanie tokenów
  2. testy na poszczególnych etapach kodowania
  3. wykorzystanie określonych kontrolek UI (angular materials, primeNg czy devextreme)
  4. obsługa dużej ilości danych (pageowanie) w tabelach albo wykorzystanie virtual scroll z angular cdk
  5. tworzenie rest api dla bardziej złożonych zasobów i obsługa komend
  6. aktualizacja danych za pomocą Web socketow w połączeniu z NgRx
  7. w jaki sposób zrobić upload wielu plików w mocno zagnieżdżonym formularzu edycji (kolekcja elementów, każdy element kolekcji może mieć wczytanych wiele plików, zapis idzie dopiero po kliknięciu przycisku zapisz), jak stworzyć prawidłowo taki request zapisu i pokazywać dodatkowo podglad wczytanych plików
  8. techniki optymalizacji, cacheowania
  9. w jaki sposób resetować stan aplikacji po wyjściu z określonego modułu (wymazać dane i inne informacje ale zachować np filtry w tabelkach) - żeby było ciekawie to są lazyModules wczytywane dopiero po wejściu na określony route
  10. jak się zabezpieczyć przed modyfikacja strumieni wykorzystywanych w wielu komponentach gdy są one przekazywane do komponentów jako inputy (np jak w komponencie podłączysz się do zmiennej przez [(ngModel)] i z tego miejsca będziesz modyfikował dane z innego komponentach nie jest tym czego byśmy chcieli)

To tak na szybko problemy z którymi musiałem się mierzyć i nigdzie nie znalazłem na nie bezpośrednich odpowiedzi. Mam nadzieje ze to pomoże :)

Pozdrowki!

edytowany 1x, ostatnio: FrontendGuy
Marcin Milewicz
Dziękuję! Myślę, że większość tych rzeczy o których wspomniałeś uwzględnimy w naszym kursie. Niby jest wiele kursów, ale tak jak mówisz, tych rzeczy praktycznie nigdzie nie ma dobrze wytłumaczonych na kompleksowym przykładzie. Jeszcze raz dziękuję!
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:minuta
  • Postów:8398
0

Co do dużych aplikacji, to przydałyby się też porady na temat tego, w jaki sposób czytać kod zastany, albo jakie narzędzia mogą nam w tym pomóc (np. narzędzia do wyświetlania zależności komponentów między sobą - jest coś takiego dla Angulara?), sposoby debugowania dużych aplikacji, optymalizacja wydajności, refaktoring itp

Bo jak się pisze dużą apkę w zespole, to oprócz trudności z frameworkiem dochodzą problemy z samym projektem i kodem zastanym.

Kiedyś jako junior trafiłem do projektu w Angularze 1.*, gdzie właśnie te problemy wszystkie wystąpiły. Nie dość, że zmaganie się z frameworkiem, to jeszcze cały ten narzut na wdrożenie się w projekt.


edytowany 1x, ostatnio: LukeJL
AI
Augury potrafi w miarę spoko hierarchię wygenerowanych komponentów wyświetlić. Może ma jeszcze jakieś inne ciekawe opcje :D
FG
Na tą chwilę najsensowniejszą biblioteką do analizy budowy projektu Angulara jest compodoc. Niestety nie jest doskonała i nie radzi sobie np ze spread operatorem użytym np w sekcji declarations. Do tego jeśli użyjesz providedIn: root w klasie oznaczonej jako Injectable zamiast skorzystać z sekcji providers to również nie zobaczysz tego na grafie.
AI
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 3 lata
  • Postów:375
1

Jeszcze bym dorzucił:

  • testowanie (unit testy, może e2e), dobre praktyki z tym związane (co testować, jak testować itd) wraz z marble testing
  • Webpack, angular.json, najważniejsze propertiesy (np tworzenie "aliasów" dla długich importów, korzystając z path), zmiiana domyślnych konfiguracji generowanych plików: css-> scss, dodawanie np. detectionStrategy.OnPush do nowo wygenerowanych komponentów)
  • Podstawowe selektory (Components, Pipe, Directive ale bardziej z naciskiem na mniej spotykane propertiesy takie jak host w Komponentach)
  • Uzupełniając to co Luke napisał, dodałbym jeszcze wszelkiego rodzaju devtoolsy, pluginy itd ułatwiające tworzenie aplikacji, zarówno te w przeglądarkach jak i w środowisku np intellij. Podpinanie intellijeja czy inne środowisko do przeglądarki w celu debugowania
  • Tworzenie własnych reaktywnych komponentów (dających się powiązać z formControl).
edytowany 1x, ostatnio: Aisekai
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)