Aplikacja odliczająca czas

Aplikacja odliczająca czas
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0

Pisze sobie prostą aplikacje odliczającą czas tylko problem polega na tym od czego w JS powinieniem zacząć pisać taką aplikacje. Jakie funkcje powinienem w niej zawrzeć aby działała poprawne. Jest to aplikacja odliczająca czas do końca roku. Czyli przykładowe funkcje jakie się w niej powinny znaleźć to np. funkcja która pobiera mi aktualną date i czas, funkcja która sprawdza ile dni liczy dany rok. Bo żeby sprawdzić ile dni zostało do końca roku to też muszę wiedzieć bo przecież co cztery lata mamy rok przestępny czyli jest albo 366 albo 365 dni w roku. Co jeszcze w takiej aplikacji mógłbym zawrzeć. Macie jakieś pomysły? Na początek chce napisać podstawową funkcjonalność a dopiero potem jakieś dodatki

M2
Polecam setInterval a wgl to super artykuł, z chęcią podziele się swoimi Biznesport
JU
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad rok
  • Postów:8
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
1

Tak tylko mi chodzi o to żeby sobie rozpisać poszczególne elementy składowe jakie się mają znaleźć w tej aplikacji żeby poprawnie działała. Co się powinno znaleźć w takiej aplikacji. Na początek powinienem napisać sobie funkcje która pobiera mi aktualną date i godzine. Może być czy powinno być coś wcześniej?

Freja Draco
Freja Draco
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
3

https://www.w3schools.com/jsref/jsref_obj_date.asp

Stworzyć nowy obiekt date z domyślnym, aktualnym czasem.
Odczytać z niego aktualny rok.
Odczytany rok powiększyć o jeden.

Stworzyć kolejny obiekt date z parametrami: Date(odczytany-rok+1, 0, 1).
Pobrać z niego liczę sekund czasu uniksowego.

W pętli setInterval wywoływać cyklicznie:
stworzenie obiektu z aktualną datą,
pobieranie z niego aktualnego czasu uniksowego,
obliczenie różnicy czasu uniksowego na koniec roku i obecnego.
dostajesz liczbę sekund do końca roku.


edytowany 1x, ostatnio: Freja Draco
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0

Chodzi mi o coś takiego https://codepen.io/nikita1/full/NeNOmZ

P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0

Napisałem sobie taki obiekt

Kopiuj
function getDate() {
	let date = new Date();
	let years = date.getFullYear() + 1;
	let days = date.getDate();
	let hours = date.getHours();
	let minutes = date.getMinutes();
	let seconds = date.getSeconds();
}

i co dalej?

UR
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 3 lata
  • Postów:360
0

Napisz od nowa i poczytaj doksy, bo nic nie masz i nie wiesz nawet czego użyć.

Tutaj masz kod JS z tego codepena, co wrzuciłeś.
Jak nic z niego nie rozumiesz... no to czytaj doksy.

Kopiuj
const d = document.getElementById("d");
const h = document.getElementById("h");
const m = document.getElementById("m");
const s = document.getElementById("s");

function getTrueNumber(num) {
  return num < 10 ? "0" + num : num;
}

function calculateRemainingTime() {
  const comingYear = new Date().getFullYear() + 1;
  const comingDate = new Date(`Jan 1, ${comingYear} 00:00:00`);

  const now = new Date();
  const remainingTime = comingDate.getTime() - now.getTime();
  const days = Math.floor(remainingTime / (1000 * 60 * 60 * 24));
  const hours = Math.floor(remainingTime % (1000 * 60 * 60 * 24) / (1000 * 60 * 60));
  const mins = Math.floor(remainingTime % (1000 * 60 * 60) / (1000 * 60));
  const secs = Math.floor(remainingTime % (1000 * 60) / 1000);

  d.innerHTML = getTrueNumber(days);
  h.innerHTML = getTrueNumber(hours);
  m.innerHTML = getTrueNumber(mins);
  s.innerHTML = getTrueNumber(secs);

  return remainingTime;
}

function initCountdown() {
  const interval = setInterval(() => {
    const remainingTimeInMs = calculateRemainingTime();

    if (remainingTimeInMs <= 1000) {
      clearInterval(interval);
      initCountdown();
    }
  }, 1000);
}

initCountdown();
edytowany 1x, ostatnio: urke
P1
Że tak zapytam co mam napisać od nowa bo nie bardzo kapuje o co ci chodzi.
RG
Że sobie tak zażartuję i opiszę moją drogę. Zacznij od document.write("Hello world"); , a później poleci z górki. ;-D
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0

Ogólnie zastanawiam się co powinienem zmienić jeszcze w tej funkcji

Kopiuj
function getDate() {
	let date = new Date();
	let years = date.getFullYear() + 1;
	let days = date.getDate();
	let hours = date.getHours();
	let minutes = date.getMinutes();
	let seconds = date.getSeconds();
}

aby gdy zakończy się luty i będzie np 29.02 nie było 30.02

Silv
Moderator Wiki
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa
0

Ale co ta funkcja getDate ma robić?


edytowany 1x, ostatnio: Silv
P1
Na razie stworzyłem sobie funkcje która wyciąga aktualną date i na tej podstawie napisze kolejne funkcje które odliczą czas pozostały do końca roku
UR
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 3 lata
  • Postów:360
1

Napisałeś wyżej, że chcesz zrobić dynamiczne odliczanie nowego roku w htmlu, przy użyciu javascriptu, tak jak w codepenie który podesłałeś.

Co chcesz osiągnąć funkcją nie zwracającą żadnych danych, jedynie posiadającą zmienne lokalne i nie aktualizującą elementów w htmlu?

Jak chcesz korzystać z tej funkcji w innych funkcjach?

P1
No przecież ta funkcja ma mi zwracać akulną date i czas. Przecież jest tam wykorzystany obiekt date. Jak możesz pisać że nic nie zwraca. Chyba że masz na myśli że w JS'ie nie złapałem elementów drzewa dom no to przepraszam już się poprawiam
UR
o boże....
Silv
@piotrek1998: @urke chodziło o to, że nie zwraca wartości do funkcji/środowiska, które ją wywołują. "Zwraca" w sensie stricte programistycznym.
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0
Kopiuj
const days = document.querySelector('#days');
const hours = document.querySelector('#hours');
const minutes = document.querySelector('#minutes');
const seconds = document.querySelector('#seconds');

function getDate() {
	let date = new Date().getFullYear() + 1;
	let days = date.getDate();
	let hours = date.getHours();
	let minutes = date.getMinutes();
	let seconds = date.getSeconds();
}

Silv
Moderator Wiki
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa
1

Słuchaj, a jakby tak zmienić podejście? Zaczęlibyśmy tak: napisz kod, który będzie co sekundę wyświetlał aktualną datę. :) Wszystko jedno w jakim formacie i gdzie (konsola czy element HTML), ale podeślij link do https://jsfiddle.net/, byś zarówno Ty, jak i my widzieli, że działa.


edytowany 3x, ostatnio: Silv
Silv
Oczywiście jak gdzieś nie będziesz potrafił przejść dalej, to pisz.
Silv
PS Tylko nie w komentarzach! ;)
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
1

Napisałem to tak https://jsfiddle.net/Lxhcbwov/2/ ale coś mi nie działa. Wyświetla mi się tylko 2 zamiast pełnej daty

Silv
Moderator Wiki
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa
0

OK. Jesteśmy na dobrej drodze, ale widzę jeden podstawowy błąd: nigdzie nic nie jest wyświetlane, jak prosiłem. Popraw, proszę. Po uruchomieniu kodu w JS Fiddle chciałbym coś zobaczyć (w konsoli lub na stronie). :) Cokolwiek, nie musi być to data, może być też to 2 (czemu 2, to sprawdzimy później).


PS Tj. chodzi mi o to, żeby nie trzeba było nic wpisywać, tylko od razu, automatycznie wynik się pokazywał.


edytowany 1x, ostatnio: Silv
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0

Tylko czemu nic sie nie wyświetla. Biorę console.log i nic. Więc co jest nie tak. Nie korzystam na codzień z jsfiddle

Silv
Moderator Wiki
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa
1

To pokaż kod, który zawiera console.log, sprawdzimy.


P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
1

Dobra ok, już nie ważne. Wyświetla się

O to chodzi ? https://jsfiddle.net/Lxhcbwov/12/

edytowany 1x, ostatnio: cerrato
Silv
Moderator Wiki
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa
1

OK, dobrze, wyświetla się. :)

Teraz główny problem jest taki, że nie uruchamia się wyświetla się co sekundę. W poprzednim kodzie użyłeś funkcji setInterval; to było dobre posunięcie, tylko brakowało wyświetlania. Tutaj masz wyświetlanie, ale nie widzę setInterval.


edytowany 2x, ostatnio: Silv
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0

Wybacz. Wkleiłem okrojoną wersję kodu. Teraz powinno być już ok https://jsfiddle.net/1xyq84ne/

Silv
Moderator Wiki
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa
1

OK, dobrze, wyświetla się co 5 sekund. :)

W zasadzie powinienem był zapytać wcześniej: czy wystarczy Ci odliczanie dni, czy też potrzebujesz odliczać co 5 sekund? Pytam, bo w przykładzie, który pokazałeś, jest na przykład odliczanie co sekundę (https://codepen.io/nikita1/full/NeNOmZ).


P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0

To znaczy aplikacje którą pisze ma mi odliczać dni więc w sumie może być odliczanie dni ale chciałbym do tego dołożyć jeszcze godziny, minuty, sekundy. Tak jak tutaj https://codepen.io/nikita1/full/NeNOmZ.

Silv
Moderator Wiki
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa
0

Rozumiem. To teraz:

  1. dodaj wyświetlanie godzin, minut i sekund do tego, co już się wyświetla;
  2. fragment setInterval(getDate, 5000); zmień na setInterval(getDate, 1000);, żeby czas odliczał się co sekundę.

P1
Ok. Czyli mam zamienić to co się wyświetla czyli dzisiejszą date, na godziny, sekindy i minuty czy po prostu dodać do tego co się już wyświetla godziny, sekindy i minuty?
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
1

Czy tak https://jsfiddle.net/b09uhs38/6/? Czy o to chodzi?

P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0

@Silv: No dobrze. Co dalej? Już mi sporo pomogłeś ale chce napisać już do końca tą aplikacje. Oczywiście nie w całości i że dzisiaj ale chce

Silv
Spokojnie, zaraz napiszę. :)
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
0

Jasne spoko. Nie ma pośpiechu. Teraz co bym zrobił to po prostu zamienił godziny minuty sekundy dni miesiące i rok zamienił na liczby. Czyli z poszczególnych elementów wyciągam sobie liczbe. Jednak żeby to zrobić to musiałbym wykonać stosowne obliczenia

Silv
Moderator Wiki
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa
2

OK, jest tak, jak trzeba. :) Widzę, że zamieniłeś miejscami minuty z sekundami, ale w sumie to nie ma znaczenia dla ostatecznego działania całości.

Ja bym zrobił coś innego, niż piszesz. Wyświetl teraz razem z poprzednimi informacjami – może być zaraz po nich – datę, do której chcesz odliczać, czyli 1 stycznia 2022, godzina 00:00:00 (ostatnie dwa zera to sekundy). Użyj kodu const comingDate = new Date("January 1, 2022 00:00:00").


P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
1
Silv
Moderator Wiki
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa
3

Jest dobrze. :)

Teraz należałoby obliczyć czas między tymi dwiema datami, które wyświetlasz – bieżącą i nadchodzącą. Ale widzę, że linijka w konsoli robi się długa. ;) Tak więc zrobimy dwie rzeczy: obliczymy czas i przeniesiemy tekst w konsoli na stronę, by było łatwiej widzieć wyniki.

Co do pierwszej rzeczy, czyli obliczania czasu, trochę szczegółów: masz w kodzie dwie zmienne: date, która przechowuje bieżącą datę, oraz comingDate, która przechowuje datę nadchodzącą. A będziemy obliczać czas w różnych jednostkach – dniach, godzinach, minutach i sekundach (tak, jak w oryginalnym liczniku Nikity). Ze względu na to, jak JavaScript reprezentuje czas, najlepiej wybrać jakąś jedną jednostkę, tzw. jednostkę bazową. Niech będą nią milisekundy. Każda data w JavaScripcie może być reprezentowana w milisekundach; taką reprezentację możesz uzyskać, korzystając z metody getTime() obiektu Date.

Tak więc, podsumowując, cztery kroki dla Ciebie:

  1. Utwórz element HTML <div></div>. Niech ten element ma atrybut id o wartości counter.
  2. Zrób tak, żeby to wszystko, co wyświetla się w konsoli co sekundę, wyświetlało się w tym elemencie, także co sekundę. W konsoli niech się już nic nie wyświetla.
  3. Skorzystaj z metody getTime() i oblicz różnicę między liczbą milisekund, jaka reprezentuje jedną datę, a liczbą milisekund, jaka reprezentuje drugą.
  4. Zrób tak, żeby ta różnica wyświetlała się w tym elemencie <div>.

edytowany 1x, ostatnio: Silv
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Postów:639
1

Mam pytanie odnośnie metody getTime obiektu Date. Mam taki kod w js

Kopiuj
function getDate() {
	const txtInDiv = document.getElementById('counter');
  const date = new Date();
	const comingDate = new Date("January 1, 2022 00:00:00");
  const day = date.getDate(comingDate);
  const month = date.getMonth(comingDate) + 1;
  const year = date.getFullYear(comingDate);
	const hours = date.getHours(comingDate);
	const minutes = date.getMinutes(comingDate);
	const seconds = date.getSeconds(comingDate);
  if (month < 10) {
    txtInDiv.innerHTML = 'Dziś jest ' + day + '.' + '0' + month + '.' + year + ' . Teraz jest godzina ' + hours + ':' + minutes + ':' + seconds + ' . Odliczanie do ' + comingDate + '';
  } else {
    	txtInDiv.innerHTML = 'Dziś jest ' + day + '.' + '0' + month + '.' + year + ' . Teraz jest godzina ' + hours + ':' + minutes + ':' + seconds + ' . Odliczanie do ' + comingDate + '';
  }
}

function currentDate() {
  const myDate = setInterval(getDate, 1000);
  return myDate;
}
currentDate();

i mówisz że powinienem skorzystać z metody getTime() obiektu Date(). Czyli najprościej rzecz ujmująć ten kod powinien wyglądać w tej funkcji teraz tak?

Kopiuj
function getDate() {
	const txtInDiv = document.getElementById('counter');
  const date = new Date();
	const comingDate = new Date("January 1, 2022 00:00:00");
        const day = date.getTime(comingDate);
        const month = date.getTime(comingDate) + 1;
        const year = date.getTime(comingDate);
	const hours = date.getTime(comingDate);
	const minutes = date.getTime(comingDate);
	const seconds = date.getTime(comingDate);
  if (month < 10) {
    txtInDiv.innerHTML = 'Dziś jest ' + day + '.' + '0' + month + '.' + year + ' . Teraz jest godzina ' + hours + ':' + minutes + ':' + seconds + ' . Odliczanie do ' + comingDate + '';
  } else {
    	txtInDiv.innerHTML = 'Dziś jest ' + day + '.' + '0' + month + '.' + year + ' . Teraz jest godzina ' + hours + ':' + minutes + ':' + seconds + ' . Odliczanie do ' + comingDate + '';
  }
}

function currentDate() {
  const myDate = setInterval(getDate, 1000);
  return myDate;
}
currentDate();
```.
Czy tak?
Silv
Moderator Wiki
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa
0

Punkt 1 i 2 prawdopodobnie dobrze (to ocenię ostatecznie, jak dasz link do JSFiddle). :)

Punkty 3 i 4 nie do końca:

  1. Metoda getTime() nie przyjmuje parametrów, a Ty wywołujesz ją z parametrem comingDate. W pseudokodzie, na logikę, to, co robisz, ma sens, ale język JavaScript działa inaczej.
  2. Niezależnie od powyższego, chcesz wywoływać tę metodę osobno dla dni, osobno dla miesięcy i tak dalej. Można by tak zrobić, tylko mnie chodziło o coś innego. Chciałem, żeby w Twoim kodzie była tylko jedna linijka, w której obliczysz różnicę między czasem zapisanym w zmiennej date, a czasem zapisanym w zmiennej comingDate.

Tak więc, podsumowując:

  1. Przeczytaj, proszę, dokumentację metody getTime(): https://developer.mozilla.org/pl/docs/Web/JavaScript/Referencje/Obiekty/Date/getTime
  2. Spróbuj napisać kod jeszcze raz, poprawnie wywołując metodę getTime (bez parametru), tak, żeby różnica między datami date a comingDate była obliczana w jednej linijce.
  3. Wyświetl tę różnicę (dodaj ją do pozostałych informacji, które już się wyświetlają).

PS Jeśli niezbyt jasno piszę, o co mi chodzi, to napisz, to podam od razu kod (chciałbym takiego podawania kodu uniknąć).


edytowany 7x, ostatnio: Silv
P1
Nie jasne spoko. Jak coś jest nie jasne to wolałbym cię zapytać. Kodu nie dawaj, choćby nie wiem co
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)