Problem z odbieraniem poczty — "invalid argument to data encode"

Problem z odbieraniem poczty — "invalid argument to data encode"
Tadeusz Jonczyk
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad 3 lata
  • Postów:15
0

Od dłuższego czasu używam programu w Delphi do odbierania poczty i analizowania jej zawartości. Do niedawna wszystko hulało idealnie, aż ktoś wpadł na pomysł, żeby zmienić format daty w przesyłanych wiadomościach.

Nowy format wygląda tak: wt., 05 pa 2021 00:00:43 +0200 a stary tak: 05.10.2021, 06:22

Instrukcja w delphi: POP.RetrieveHeader(intIndex, Msg); wysypuje się z komunikatem invalid argument to data encode.
Nie wiem jak to przeskoczyć, bo wygląda na to że problem tkwi w samej bibliotece.

edytowany 1x, ostatnio: flowCRANE
abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:7 miesięcy
  • Postów:6610
0

a czego używasz do odbioru poczty?


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:około 4 godziny
  • Postów:6641
0

Może przesiądź się na pisanie dodatków do Thunderbirda?

https://developer.thunderbird.net/add-ons/about-add-ons


🕹️⌨️🖥️🖱️🎮
KA
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 11 godzin
  • Lokalizacja:Gorlice
0

A w ogóle czym jest POP?


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
robertz68
zapewne TIdPOP3 z pakietu IndyClient
SK
  • Rejestracja:około 7 lat
  • Ostatnio:8 minut
  • Postów:98
Tadeusz Jonczyk
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad 3 lata
  • Postów:15
0

Pocztę odbieram też w thuderbirdzie i on sobie z tym radzi bez problemu. Problem polega na tym że dziennie przychodzi ok 1500 maili z informacjami o różnych zdarzeniach na komputerach u klientów i muszę je odpowiednio segregować, bo ręcznie do jest nie do ogarnięcia. Do odbierania używam komponentu z biblioteki INDY IdPOP3 i tam się ten problem pojawia.

KA
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 11 godzin
  • Lokalizacja:Gorlice
0

Próbowałeś zaktualizować Indy do najnowszej wersji? https://github.com/IndySockets/Indy


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
SK
  • Rejestracja:około 7 lat
  • Ostatnio:8 minut
  • Postów:98
0

@Tadeusz Jonczyk: 3 posty wyżej podałem ci rozwiązanie i zapytałem się czy to przypadkiem nie jest wątek rozpoczęty na SO przez ciebie, bo też jest sprzed kilku dni.

Tadeusz Jonczyk
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad 3 lata
  • Postów:15
0

Na stack... niczego nie wrzucałem . Zbieg okoliczności. Sprawdzę i dam znać, dzięki.

Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:około 4 godziny
  • Postów:6641
0
Tadeusz Jonczyk napisał(a):

Pocztę odbieram też w thuderbirdzie i on sobie z tym radzi bez problemu.

No ale mi nie chodzi o odbiór poczty.
Po prostu jak napiszesz dodatek do Thunderbirda, to on będzie Ci robił te operacje, które chcesz robić w Delphi ;)


🕹️⌨️🖥️🖱️🎮
KA
Poważnie z powodu jak przypuszczam banalnego problemu z odczytem nagłówka pisać dodatek do klienta poczty?
Spine
Ma to swoje benefity. Klient poczty porządnie odwala dużo roboty za nas. A dodatek robi tylko to operacje, których nie ma zaimplementowanych.
Tadeusz Jonczyk
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad 3 lata
  • Postów:15
0

@kAzek: Używam jeszcze delphi 6 - taką mam licencję. Niestety pod tym linkiem nie znalazłem odpowiedniego package. Szukłąem też tutaj: https://indy.fulgan.com/ Znowu nic
@kAzek: Używam jeszcze delphi 6 - taką mam licencję. Niestety pod tym linkiem nie znalazłem odpowiedniego package. Szukłąem też tutaj: https://indy.fulgan.com/ Znowu nic

@Spine: Nie próbowałem nigdy takich rozwiązań. Ten program korzysta z baz danych i jest odrobinkę skomplikowany, więc raczej nie przejdę z tym problemem naTB

edytowany 1x, ostatnio: flowCRANE
Spine
chyba, że tak ;)
KA
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 11 godzin
  • Lokalizacja:Gorlice
0

@Tadeusz Jonczyk są package do starszych wersji tylko w podfolderach
W temacie Zainstalowanie Indy 10 na Delphi 7 PE pisałem na temat zmiany wersji Indy na 10 (wprawdzie temat dotyczył Delphi 7 ale w 6 będzie podobnie).
Tylko musisz się liczyć z tym że Indy 9 (a takie zapewne masz skoro Delphi 6) nie jest za bardzo kompatybilne z Indy 10 wiec może Cię czekać jeszcze trochę zmian w projekcie.


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
Tadeusz Jonczyk
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad 3 lata
  • Postów:15
0

@skrzat: Nie wiem czy wszystko dobrze zrozumiałem. Zamiana formatu daty w stringu to drobnostka. Problem polega na tym że podczas wywołania POP.RetrieveHeader(intIndex, Msg) już wywal błąd. Nie ma za bardzo jak tego obejść, ponieważ pod msg nic się nie podstawia. Od razu błąd. Gdybym mógł odczytać wiadomość np. do jakiegoś stringa, albo tablicy nie byłoby problemu. Ręcznie wyciągnąłbym z niej interesujące mnie dane. Funkcje POP.RetrieveHeader(intIndex, Msg) lub POP.Retrieve(intIndex, Msg), które to robią wylatują z błędem

@kAzek: Chyba mam coś z oczami. Przejrzałem, wszystkie katalogi. Albo to jest ukryte pod jakąś dziwną nazwą, albo ślepy jestem. Mogę prosić o ścieżkę?

edytowany 1x, ostatnio: flowCRANE
KA
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 11 godzin
  • Lokalizacja:Gorlice
0

Pobierz indy z https://github.com/IndySockets/Indy
a ścieżki przecież masz podane np. (in Lib\System) :
Zainstalowanie Indy 10 na Delphi 7 PE


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
SK
  • Rejestracja:około 7 lat
  • Ostatnio:8 minut
  • Postów:98
0

Skoro chcesz tylko posegregować maile, to wystarczy użyć filtrowania wiadomości w Thunderbirdzie i maile trafią do różnych podfolderów już posegregowane

Tadeusz Jonczyk
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad 3 lata
  • Postów:15
0

@skrzat: Niestety nie tylko posegregować. To jest trochę bardziej skomplikowane. A nawet znacznie bardziej.

@kAzek: Pobrałem INDY i inne potrzebne pliki, ale niestety wyskakuje błąd line too long.

edytowany 1x, ostatnio: flowCRANE
KA
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 11 godzin
  • Lokalizacja:Gorlice
0

@Tadeusz Jonczyk Gdzie taki błąd? Napisz dokładnie, bo nie wiem za bardzo o co chodzi. Może edytor od Delphi 6 nie lubi za długich linii tekstu i trzeba w niektórych miejscach podzielić kod źródłowy.


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
Tadeusz Jonczyk
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad 3 lata
  • Postów:15
0

Np. IDAntiFreezeBase:

Kopiuj
<!DOCTYPE html>
<html lang="en" data-color-mode="auto" data-light-theme="light" data-dark-theme="dark">
  <head>
    <meta charset="utf-8">
  <link rel="dns-prefetch" href="https://github.githubassets.com">
  <link rel="dns-prefetch" href="https://avatars.githubusercontent.com">
  <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com">
  <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/">
  <link rel="preconnect" href="https://github.githubassets.com" crossorigin>
  <link rel="preconnect" href="https://avatars.githubusercontent.com">



  <link crossorigin="anonymous" media="all" integrity="sha512-d4XC7S3D2O/G0TvZjbbtWpDgCLyqvsXCX4K0DUJVfSwpV8ySOlchU43C/9mcyyHtCnczq4eoCl/e3fzC9uXxGA==" rel="stylesheet" href="https://github.githubassets.com/assets/light-7785c2ed2dc3d8efc6d13bd98db6ed5a.css" /><link crossorigin="anonymous" media="all" integrity="sha512-uEgC6AoKK1gK/XX3HlE4+2pdmfa3CUGgk9GV+7h+h0dtALsvueFLg+18JnwLD1axmkp744IzWjFcfHZTxmQyMQ==" rel="stylesheet" href="https://github.githubassets.com/assets/dark-b84802e80a0a2b580afd75f71e5138fb.css" /><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" integrity="sha512-KQFKp2zcS4QM9du72skcYxPfuDslYljsOd9hsZFHSQl7WnkzjR0KkkuMbY7KFRWTerb8KbAYy11eD2ZoFgVyJg==" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-29014aa76cdc4b840cf5dbbbdac91c63.css" /><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" integrity="sha512-Bldh8KfOmuQXEarLeCx5IxrQms1DznU4qGbQ6oCrAVNdd4jea40lyBHdddi7o1P4dhler91XHyO9+iBe7m6LzQ==" rel="stylesheet" da
  <link crossorigin="anonymous" media="all" integrity="sha512-pdsKnTx5DQsAIFl4LRo+6kToLThjqPiHwxtNpmJvTGEykcAT8/o5gMBJoH9mCjOlN2c9StfrDy69cqNklPIPDw==" rel="stylesheet" href="https://github.githubassets.com/assets/frameworks-a5db0a9d3c790d0b002059782d1a3eea.css" />
    <link crossorigin="anonymous" media="all" integrity="sha512-UgTwpV2BaAPM0fSjaZmILCjg4hjddZz0k6/Y9zG57vz+sDxI9eyWFNrhQSOOOCACHk7ooVE7lwMHrB1n/932iQ==" rel="stylesheet" href="https://github.githubassets.com/assets/behaviors-5204f0a55d816803ccd1f4a36999882c.css" />
.....

Coś przy pobieraniu zwaliłem

Teraz widzę. Robiłem PPM i zapisz element docelowy. Jak w niego klikam nie pobiera tylko się otwiera źródło. Jest na to jakiś inny sposób?

edytowany 3x, ostatnio: flowCRANE
KA
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 11 godzin
  • Lokalizacja:Gorlice
0

Wejdź https://github.com/IndySockets/Indy
naciśnij zielony przycisk "Code" a później z menu "Download ZIP". Pobierz i wypakuj w jakieś miejsce gdzie masz prawo zapisu i tak aby ten folder mógł tam zostać na stałe (bo przecież przy instalacji dodajesz ścieżki do niego).


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
Tadeusz Jonczyk
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad 3 lata
  • Postów:15
0

screenshot-20211012152611.png
Czy to oznacza że nie usunąłem starszej wersji biblioteki?

KA
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 11 godzin
  • Lokalizacja:Gorlice
0

A zrobiłeś wszystko jak w opisie, przede wszystkim dodałeś wszystkie ścieżki do Library path?


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
Tadeusz Jonczyk
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad 3 lata
  • Postów:15
0

Ścieżki dodane, jak wywaliłem poprzednią wersję INDY to kompilacja package przeszła. Niestety program mi się teraz wysypuje już na etapie kompilacji:

Kopiuj
[Error] IdURI.pas(93): Undeclared identifier: 'TIdIPVersion'
[Error] IdURI.pas(102): Undeclared identifier: 'IIdTextEncoding'
[Error] IdCharsets.pas(3889): Undeclared identifier: 'TextIsSame'
[Fatal Error] IdURI.pas(133): Could not compile used unit 'IdCharsets.pas'

Wszystko niestety dotyczy błędów w samej bibliotece

edytowany 1x, ostatnio: flowCRANE
KA
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 11 godzin
  • Lokalizacja:Gorlice
0

@Tadeusz Jonczyk Nie wiem co kombinujesz ale IIdTextEncoding, TIdIPVersion i TextIsSame są na 100% zdefiniowane w IdGlobal.pas a odniesienie do tego modułu jest w uses IdCharsets.pasi IdURI.pas więc wszystko powinno się ładnie kompilować.
Prawdopodobnie nie usunąłeś dobrze poprzedniej wersji albo nie kompilujesz w kolejności którą podałem.
Usuń wszystkie BPL od Indy (nazwy takie jak package) i DCU o których mowa w opisie, sprawdź czy poprawnie podałeś wszystkie ścieżki i spróbuj jeszcze raz.

UWAGA: biblioteki BPL oprócz %FOLDER_DELPHI%\Bin i %FOLDER_DELPHI%\Projects\Bpl mogą (ale nie muszą) też być czasami w folderze Windows lub Windows\System32


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
Tadeusz Jonczyk
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad 3 lata
  • Postów:15
0

W Path nie wpisałem jednej ścieżki. Program się skompilował, ale niestety dalej mam ten sam błąd. Przy wczytywaniu wiadomości i pobieraniu daty pojawia się komunikat jak w temacie "invalid argument to data encode"

SK
  • Rejestracja:około 7 lat
  • Ostatnio:8 minut
  • Postów:98
0
Tadeusz Jonczyk napisał(a):

Na stack... niczego nie wrzucałem . Zbieg okoliczności. Sprawdzę i dam znać, dzięki.

Zajrzałeś? W pierwszym poście masz rozwiązanie, które trzeba zmodyfikować do twojego formatu daty

KA
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 11 godzin
  • Lokalizacja:Gorlice
0

@skrzat tam nie ma rozwiązania ponieważ on nie ma wpływu na format daty jaki funkcja dostanie (chyba żeby wprowadził zmiany w Indy).
@Tadeusz Jonczyk jak nie wpisałeś ścieżek w Library Path to to po prostu nie miało prawa poprawnie się skompilować więc albo coś ściemniasz albo jakoś dziwnie skompilowało się używając modułów od starej poprzedniej wersji, których nadal poprawnie nie usunąłeś.

Poza tym nie mając kodu nie wiem kiedy pojawia się ten błąd i skąd te maile z takim formatem daty z GMail czy innej poczty... zero info a szklana kula stłuczona w nową nie inwestuję a z fusów nic nie wychodzi.


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
edytowany 1x, ostatnio: kAzek
Tadeusz Jonczyk
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad 3 lata
  • Postów:15
0

Po Twoim poście z wczoraj poszukałem gdzie się znajduje IDGlobal.pas i dopisałem tą ścieżkę do SEARCH PATH. Dzięki Tobie udało mi się skompilować program. Niestety w dalszym ciągu mam problem z tą datą. Nowa wersja biblioteki zwraca dokładnie ten sam błąd. Tymczasowo zrobiłem w tym miejscu TRY i po błędzie w FINALLY z nagłówka wiadomości odczytuję datę: Copy(Msg.Headers[9],16,31). Ale jest to robota od d... strony

Błąd pojawia się przy takiej niewinnej instrukcji: POP.RetrieveHeader(intIndex, Msg) (TiDPOP3.RetrieveHeader)

edytowany 1x, ostatnio: flowCRANE
KA
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 11 godzin
  • Lokalizacja:Gorlice
0

To w takim razie skąd te maile z takimi powodującymi błąd nagłówkami, bo ja jak specjalnie zrobiłem testową namiastkę klienta poczty i odczytuję maile (właściwie same ich nagłówki) używając RetrieveHeader z GMail nie mam błędu.


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
edytowany 1x, ostatnio: kAzek
Tadeusz Jonczyk
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad 3 lata
  • Postów:15
0

[OK] Synchronizacja wynikow badań mM 04.10.2021 12_15_01 - 121_201052.pdf[OK] Synchronizacja wynikow badań mM 06.10.2021 09_15_34 - 121_201052.pdf
Jeden z tych maili przyszedł przed zmianą formatu daty, a drugi po. Z tym pierwszym RetrieveHeader sobie radzi, z tym drugim niestety nie.

CL
  • Rejestracja:ponad 15 lat
  • Ostatnio:7 miesięcy
0

Podałeś, że nowy format daty wygląda tak:
wt., 05 pa 2021 00:00:43 +0200
natomiast w tej wiadomości
screenshot-20211013150740.png
początek się raczej nie zgadza, więc błąd invalid argument to data encode. jest raczej jak najbardziej zasadny. Pewnie jest problem z polskimi znakami i tam miało być śr.

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)