Usuwanie znaczników HTML z tekstu

Usuwanie znaczników HTML z tekstu
AL
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 7 lat
  • Postów:143
0

Witam. chciałbym się dowiedzieć w jaki sposób usunąć z tekstu znaczniki html typu href, img itp. Słyszałem coś o Jsoup. Generalnie jest sobie textaera w której wpprowadzamy opis, chciałbym potem w walidacji, podczas zapisywania, usuwać wszelkie znaczniki html poza ,

itp, zaś href,url,img itp usuwać z tekstu.</p>

weźmy na przykłąd taki ktest. CHciałbym usunąć z niego znaczniki ,

, itp...


<p>Ostrzeżenie dla zapracowanych! Jeżeli nie masz czasu czytać tego tekstu, to daj mi <strong>tylko 5 minut, </strong>a ja udowodnię Ci, że po przeczytaniu tych słów zyskasz nieograniczone zasoby czasu i co najważniejsze uwierzysz, że </p> <h1> Od dzisiaj będziesz mógł znaleźć czas na wszystko.</h1> <p>Oczywiście jeszcze żadna książka nie zmieniła w ciągu jednego dnia życia żadnego człowieka. Doskonale wiesz, że nie znajdziesz tutaj magicznej różdżki, która w czarodziejski sposób zmieni Twoje życie. Jednak jeżeli postanowisz zmienić swoje nieskuteczne nawyki dotyczące zarządzania czasem i włożysz odrobinę zaangażowania, możesz po prostu zacząć odpowiadać swoim bliskim: tak, oczywiście z chęcią wybiorę się na wycieczkę, mam wolny czas... </p> <p>Wyobraź sobie, jakby wyglądało Twoje życie, gdyby na miejsce znienawidzonej mantry <strong>"Nie mam czasu..." </strong>pojawiłoby się <strong>"OK, możemy to zrobić, akurat mam czas" </strong></p> <p>Wiem, że prawdopodobnie masz już dosyć: </p> <li>Ciągłego <strong>chaosu w Twoim życiu, gubienia rzeczy i spóźniania się na spotkania; </strong> </li><li>Ciągłego zapracowania, bolących pleców i <strong>pracy, która śni Ci się przed zaśnięciem;</strong> </li><li>Patrzenia na swoje dzieci tylko wtedy, gdy albo idą spać, albo już wstają; </li><li>Rezygnowania z odpoczynku na rzecz zapracowania, które nie przynosi takich efektów, jakbyś chciał. <p><strong>Poznaj źródło większości niepowodzeń w naszym życiu </strong></p> <p>Często nie zdajemy sobie nawet sprawy z faktu, że <strong>brak organizacji swojego czasu tak naprawdę rujnuje nasze życie. </strong>Gdy wpadniesz w wir zapracowania i pozwolisz na to,  że to inni organizują Twój czas, to jest to pierwszy krok do tego, aby rzeczywiście nie mieć czasu i dodatkowo wpędzać się w jeszcze większy życiowy chaos. </p> <p><strong>Przerażający i bardzo powszechny mit na temat czasu </strong></p> <p>Jeżeli czujesz, że chcesz zmienić to w swoim życiu, to ujawnię Ci że największym błędem, jaki może popełnić człowiek, jest przeświadczenie, że możemy mieć wpływ na czas. Bzdura. Nie wierz, gdy ktoś mówi Postaram się zorganizować trochę czasu. Jedyne, co może zrobić ta osoba, to <strong>zrobić coś ze sobą i ze swoim życiem. </strong></p> <p>Żeby realnie stać się panem swojego życia, musisz zrobić te kilka kroków! </p> </li><li>nauczyć się jak podejmować słuszne decyzje, </li><li>eliminować złodziei czasu, </li><li><strong>pożegnać w swoim życiu wampiry emocjonalne. </strong>Mówię serio jeżeli chcesz żyć pełnią życia, zbierz wszystkie znane Ci emocjonalne wampiry i nadmierne gaduły - zabierz ich do lasu i powiedz, że tu jest ich miejsce. Nie w Twoim życiu czy biurze. </li><li>nauczyć się i<strong> docenić siłę odpoczynku.</strong> <h1>Jak często zapraszasz złodziei, aby okradli Twój dom?</h1> <p>Jeżeli myślisz, że masz przed sobą kolejną książkę na temat zarządzania czasem, to powiem Ci, że do końca tak nie jest. Ta książka odpowie Ci na pytanie, co mam zrobić, jeżeli nie mam czasu? Autor wskaże Ci, z czego masz zrezygnować i co wyeliminować w swoim życiu, aby Twoje życie było naprawdę Twoją własnością. <strong>Po co Ci lokatorzy, którzy wypełniają każdy zakamarek Twojego życia, nie płacąc czynszu? </strong></p> <p>Czy wyobrażasz sobie, że codziennie w nocy <strong>SIEDMIU zamaskowanych złodziei</strong> wchodzi do Twojego mieszkania i wynosi najcenniejsze rzeczy i rodzinne pamiątki? Po sekundzie zaczęlibyśmy krzyczeć i wezwalibyśmy policję. <strong>A co ty robisz ze złodziejami Twojego czasu? </strong>Znam chyba odpowiedź… Domyślam się, że jeszcze nic. Chcę Cię zdenerwować, niczego bardziej nie pragnę jak tego, żeby w Twojej głowie powstała nieprzyjemna myśl: nie chcę już żeby ktokolwiek okradał mnie z mojego życia. </p> <h1>Oto SIEDMIORO bezwzględnych złodziei czasu, których nauczysz się obezwładniać</h1> <p>1. Rozmowy telefoniczne</p> <p>2. Gaduły i wampiry emocjonalne</p> <p>3. Korki uliczne</p> <p>4. Znalezienie miejsca parkingowego </p> <p>5. Spotkania</p> <p>6. Zepsute maszyny i wadliwe mechanizmy</p> <p>7. Długie kolejki</p> <p>Mimo że lista jest długa, to z pomocą autora książki, <strong>Bena Wisleya,</strong> dowiesz się, jak wyeliminować ze swojego życia te negatywne zjawiska. Wiesz, dlaczego tak mocno w to wierzę? Bo walka toczy się o Twoje życie, potraktuj je jak pamiątkę rodzinną otrzymaną od Twoich rodziców i po prostu nie pozwól ukraść sobie już ani minuty. </p> <p>Pozwól, żeby ta książka była Twoim trenerem nowego, lepiej zorganizowanego życia. Życia, w którym masz więcej czasu dla siebie i bliskich oraz możesz robić to, za czym tęsknisz. Jeżeli będziesz wracać do tej publikacji, istnieje duże prawdopodobieństwo, że </p> </li><li><strong>poprawisz stan swoich finansów, robiąc tylko to, co właściwe i korzystne dla Ciebie, </strong>a nie to, co każą Ci złodzieje Twojego czasu,  </li><li>uzdrowisz relacje z bliskimi, gdy <strong>zaoszczędzony czas poświęcisz swojej rodzinie,</strong> </li><li>zdobędziesz uznanie, gdy <strong>znów zajmiesz się swoim hobby, </strong>na które do tej pory nie udawało Ci się znaleźć czasu, </li><li>odkryjesz, ile fascynujących rzeczy jesteś w stanie zrobić w czasie, którego jeszcze nie dawno wydawało Ci się, że masz za mało.  <p><strong>Jak przestać odkładać wszystko na później </strong></p> <p>W przytoczonym fragmencie książki widać, jak autor w kilku wersach potrafi pokazać Ci, jak łatwo rozwiązać najbardziej palące problemy w gospodarowaniu swoim czasem. </p> <p><em>Listy tygodniowe i miesięczne lepiej po prostu powiesić w widocznym miejscu, niż nosić je ze sobą. A teraz coś, o czym powinieneś zawsze pamiętać: <strong>lista tygodniowa to nie jest lista zadań do wykonania w ostatnim dniu danego tygodnia, zaś lista miesięczna to nie jest lista zadań do wykonania pod koniec miesiąca.</strong> Celowo napisałem to pogrubioną kursywą, ponieważ wbrew pozorom tak właśnie robi większość ludzi. Jeżeli zadanie ma być zrealizowane na koniec miesiąca, to oczywiście 30 dnia danego miesiąca większość z nas się za nie zabiera. </em></p> <p>Jeżeli już w tym momencie dostrzegasz potencjał tej książki, to przejdź od razu do formularza zamówienia <strong>i zacznij organizować swoje życie na zdrowych zasadach. </strong></p> <h1>Oto, co konkretnie znajdziesz w książce pt. "Złodzieje czasu":</h1> </li><li>Dowiesz się<strong>, ile czasu mamy realnie do wykorzystania każdego dnia. </strong> </li><li>Poznasz <strong>skuteczne taktyki eliminowania złodziei czasu.</strong> </li><li>Poznasz <strong>techniki organizowania pracy w biurze.</strong> </li><li>Odkryjesz, dlaczego warto stosować listy rzeczy do zrobienie i dowiesz się, <strong>co pomoga w dotrzymywaniu terminów.</strong> </li><li>Dowiesz się,<strong> jak wykonać dwa razy więcej czynności nich dotychczas, </strong>bez wygospodarowywania dodatkowej puli czasu.  </li><li>Dowiesz się, dlaczego <strong>Ty także jesteś "kunktatorem" </strong> <h1>Pożegnaj się z mitami na temat organizacji czasu</h1> <p>Jeżeli ta książka znajdzie się już na Twojej półce i często będziesz po nią sięgać, musisz mieć świadomość, że pożegnasz się z wieloma mitami dotyczącymi zarządzania czasem. Jeżeli więc jesteś przyzwyczajony do nawyków i mitów, które powodują, że wiecznie nie masz czasu, po prostu opuść tę stronę. Ta książka obala miedzy innymi takie mity jak</p> <h1>Mit #1 </h1> <p><strong>Mówisz "Nie mam czasu..."– </strong>często zastanawiam się, czy w obecnych czasach nie używamy tego sformułowania częściej niż słowa dzień dobry. Jest to bardzo niebezpieczny mit, już za chwilę dowiesz się, że masz bardzo dużo czasu, ale albo <strong>ktoś inny Ci go kradnie, albo przepuszczasz go jak pieniądze w kasynie. </strong></p> <h1>Mit #2 </h1> <p><strong>Mówisz "Nie umiem zarządzać swoim czasem..." </strong>– z książki dowiesz się, że potrafisz zarządzać czasem, ale robisz to jedynie w momencie, gdy do zakończenia danego zadania został Ci ostatni dzień, ostatnia godzin czy ostatnie 15 minut. Umiesz zarządzać czasem, tylko robisz to zbyt rzadko. </p> <h1>Mit #3</h1> <p><strong>Mówisz "Muszę czekać, nie da się tego przeskoczyć..." </strong>Wiesz, czym jest tak naprawdę bezczynność? Według mnie to brak możliwości robienia tego, co się chce robić w danym momencie. Problem tkwi w tym, że to „nie mogę” zamieniłbym na "wydaje mi się, że nie mogę". Tak naprawdę jest to beznadziejny mit. Gdy stoisz w korku, możesz się uczyć, gdy stoisz w kolejce, możesz czytać gazetę....uwierz, możesz robić dwie rzeczy na raz. </p> <p><strong>Kupić trochę czasu... </strong></p> <p>Pewien angielski milioner powiedział kiedyś, że gdy zaczynał jako młody chłopiec od sprzedawania warzyw na bazarze, sam zrozumiał, że gdy wstanie 2 godziny wcześniej niż swoi rówieśnicy i pójdzie spać dwie godziny później, to niezależnie od lat życia <strong>będzie żył dłużej i zrobi w życiu więcej. </strong>Miał rację, stał się milionerem, zwiedził prawie cały świat i jest szczęśliwym człowiekiem, który wie o tym, że nie można kupić czasu, można go jedynie mądrze zagospodarować. </p> <h1>Dlaczego masz wierzyć, że po tygodniu możesz mieć więcej czasu na wszystko?</h1> <p>Rachunek jest prosty. Jeżeli poświęcisz jeden tydzień i z ołówkiem w ręku wypiszesz, co robisz - minuta po minucie - okaże się, że <strong>połowa Twojego dnia to rzeczy, czynności i rozmowy, bez których spokojnie możesz żyć. </strong>Musisz znać miażdżącą prawdę, że nie brak czasu jest Twoim problemem, a sposób, w jaki myślisz i podejmujesz decyzje. </p> <h1>CZAS na decyzję. Czy może potrzebujesz WIĘCEJ CZASU? </h1> <p>Pamiętaj, że ta książka nie zrobi nic za Ciebie, nie da Ci więcej czasu z niczego. Może jednak nauczyć Cię, jak zmienić swoje nawyki, żeby stać się szczęśliwym człowiekiem, który ze spokojem gospodaruje swoim czasem tak efektywnie, że starcza mu go na wszystko. Jeżeli masz dosyć chaosu w swoim życiu, po prostu to zmień. <strong>Zacznij od dzisiaj, ta książka może być pierwszym krokiem! </strong></p>  </li>

edytowany 1x, ostatnio: Altaro
Kandif
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 4 lata
  • Postów:231
1

Jeśli to ma być w Javie to działania na ciągach znaków nie powinny być problemem, można do tego wykorzystać gotowe funkcje i napisać coś takiego:

Kopiuj

 //zakładam ze znacznik konczy się klasycznie : </znacznik>
    public static String usunZnacznikBezZawartosci(String skadUsun, String znacznik) {
        skadUsun = skadUsun.replaceAll(znacznik, "");
        znacznik = znacznik.replace("<", "</");
        skadUsun = skadUsun.replaceAll(znacznik, "");
        return skadUsun;

    }

    //takżę forma klasyczna <znacznik>zawartosc</zawartosc>
    public static String usunZnacznikzZawartoscia(String skadUsun, String znacznik) {
        String endznacznik = znacznik.replace("<", "</");
        while (skadUsun.contains(znacznik)) {
            skadUsun = skadUsun.replace(skadUsun.subSequence(skadUsun.indexOf(znacznik), skadUsun.indexOf(endznacznik) + endznacznik.length()), "");
        }
        return skadUsun.replaceAll("<strong>", "");
    }

    //np. <img>
    public static String usunZnacznikJednoznacznikowy(String skadUsun, String znacznik) {
        znacznik = znacznik.replace(">", "");
        while (skadUsun.contains(znacznik)) {
            skadUsun = skadUsun.replace(skadUsun.subSequence(skadUsun.indexOf(znacznik), skadUsun.indexOf(">") + 1), "");
        }
        return skadUsun.replaceAll("<strong>", "");
    }

Wtedy poniższy kod:

Kopiuj
 
        String test = new String("<strong>jeden</strong><li>dwa</li><img src='testgfdgdf'> Tekst<input submit='test'>");
        test = usunZnacznikBezZawartosci(test,"<strong>");
        test = usunZnacznikzZawartoscia(test,"<li>");
        test = usunZnacznikJednoznacznikowy(test,"<img>");
        test = usunZnacznikJednoznacznikowy(test,"<input>");
        System.out.println(test);

Wyswietli:

Kopiuj
jeden Tekst

"-._,-'"-.,-'"-._,-'"-.,-'"-._,-'"-.,-'"-._,-'"-.,-'"-._,-'"-.,-'"-._,-'"-.,-'"-._,-'"-.,-'"-._,-'"-.,-'
edytowany 1x, ostatnio: Kandif
wojciechmaciejewski
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 2 lata
  • Postów:560
1

Tylko po co sie tak męczyć ? użyj do tego gotowej biblioteki
http://jsoup.org/

a jeżeli robisz to np. na androidzie to masz w SDK klasę HTML która zrobi to za Ciebie też

pzdr

Kandif
Zależy od rozmiarów aplikacji jeśli mniejsza warto robić własny kod, jeśli większa można użyć biblioteki :P.
wojciechmaciejewski
może i racja ;P dlatego okejka ode mnie poszła :)
AL
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 7 lat
  • Postów:143
0

To jest bardzo duży projekt, a treści jak widać też nie małe, więc zdecydowałem się na użycie Jsoup. Poczytałem trochę i już wiem jak tego używać. Upraszczając, Stworzyłem White listę ze znacznikami które zostawiam i przy setowaniu na encje, podpinam jsoup.getTEKST.

AL
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 7 lat
  • Postów:143
0

Wystąpiło dziwne zjawisko. po użyciu metody Jsoup.clean(desc, whiteList()) na stringu, gdzie np wykrył dwie spacje obok siebie, drugą zaczął zastępować   np w

Kopiuj

Expected :"Kodeks cywilny. Komentarz" pod red. prof. E. Gniewka jest dziełem zbiorowym szkoły wrocławskiej. Opracowany został  jako wydanie jednotomowe uwzględniające najnowsze zmiany orzecznictwa i doktryny.
Actual   :"Kodeks cywilny. Komentarz" pod red. prof. E. Gniewka jest dziełem zbiorowym szkoły wrocławskiej. Opracowany został &nbsp;jako wydanie jednotomowe uwzględniające najnowsze zmiany orzecznictwa i doktryny.


można w jakiś sposób dodać wyjątek by spacji w ilości większej niż 1 obok siebie, nie zastępował   a także również nie skracał ,tylko zostawiał tak jak jest ?

edytowany 1x, ostatnio: Altaro
wojciechmaciejewski
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 2 lata
  • Postów:560
0

spróbuj

Kopiuj
replace("\u00a0", "")
edytowany 1x, ostatnio: wojciechmaciejewski
AL
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 7 lat
  • Postów:143
0

A jest możliwość dodanie tego jakoś do

Kopiuj

 /** Biała lista akcpetowalnych tagów html w opisach asortymentu **/
    private static Whitelist whitelist() {
        return new Whitelist()
                .addTags("b", "i", "u",  "ul", "li", "ol", "p", "cite", "sub", "sup", "strike",  "strong", "small", "pre" );
    }
Zobacz pozostałe 2 komentarze
wojciechmaciejewski
ale ciągle nie wiesz co to jest i skąd się bierze....
AL
o czym mówisz ? o replace ? czy o whtieList ?
wojciechmaciejewski
mówię o tym &nbsp nie chce Ci się zrozumieć kodu który piszesz to dlaczego komuś na forum ma się chcieć?
AL
wiem skąd się bierze twarda spacja html-owa . zastanawiam się tylko czy używać tu jakiegoś regexp-a czy możę Jsoup jest w stanie obsłużyć to.
wojciechmaciejewski
a spróbowałeś to zrobić czy liczysz że ktoś za Ciebie to zrobi?
AL
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 7 lat
  • Postów:143
0

Dobra skończyło się na replace. Chciałbym żeby Jsoup w ogóle nie brał pod uwagę spacji, Wg nie zwracał uwagi na to że jest kilka spacji. Chciałbym żeby je zostawiał.

W tym momencie robie to tak:

Kopiuj
 public static String cleanHtmlText(String text) {
        String processedText = Jsoup.clean(text, whitelist());
        return processedText.replaceAll("&nbsp;", " ");
    }

   /** Biała lista akcpetowalnych tagów html w opisach asortymentu **/
    private static Whitelist whitelist() {
        return new Whitelist()
                .addTags("b", "i", "u",  "ul", "li", "ol", "p", "cite", "sub", "sup", "strike",  "strong", "small", "pre");
    }
0

Zawsze w ostateczności pozostaje regex albo ręczne parsowanie. Nie słuchaj tych co mówią że regexem się nie parsuje htmla, ja parsuje od lat html i xml regexem i nawet raz się nie zdarzyło, żeby coś wyszło źle.

wojciechmaciejewski
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 2 lata
  • Postów:560
0
Altaro napisał(a):

Dobra skończyło się na replace. Chciałbym żeby Jsoup w ogóle nie brał pod uwagę spacji, Wg nie zwracał uwagi na to że jest kilka spacji. Chciałbym żeby je zostawiał.

Kopiuj

No i Jsoup nie rusza spacji. Zostawia je. Ten śmieszny znaczek który dodaje to jest jak sam zauważyłeś wcześniej twarda spacja HTML-owa
AL
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 7 lat
  • Postów:143
0
wojciechmaciejewski napisał(a):
Altaro napisał(a):

Dobra skończyło się na replace. Chciałbym żeby Jsoup w ogóle nie brał pod uwagę spacji, Wg nie zwracał uwagi na to że jest kilka spacji. Chciałbym żeby je zostawiał.

Kopiuj
> 
> No i Jsoup nie rusza spacji. Zostawia je. Ten śmieszny znaczek który dodaje to jest jak sam zauważyłeś wcześniej twarda spacja HTML-owa




Z tym że nie dzieje się tak jak mówisz. za jednym razem jest jakiś biały znak i dodaje mi twardą spację, a za drugim razem, kiedy robię  w  intelij test np ".     ." i jako wynik chce taki sam (" .     .") to jsoup skraca mi to do ". .", więc Jsoup.clean rusza spację w takim razie. Na przykład taki test : 

```java

 @Test
    public void testCheckIfRealDesctiptionIsCorrectlyTheSameLength2() throws Exception {
        String result = TextUtil.cleanHtmlText(".               .");
        String expected = ".               .";
        Assert.assertEquals(expected, result);
    }

wojciechmaciejewski
no puste pola wywali , nie ruszy twardej spacji. Ale jeżeli masz faktycznie takie problemu to proponuję swojego regexa napisać
AL
Niestety to projekt biznesowy i muszę się zmagać z tymi pierdołami.
wojciechmaciejewski
jasna sprawa, Zostaw po prostu tego replace i tyle.
Kandif
Czy projekt biznesowy czy niebiznesowy moim zdaniem nie ma znaczenia, liczy się efekt kodu a nie jego struktura i metody wykonania. Ci co korzystają z programów nie powiedzą ci: "jak mogłeś użyć w tym programie takiej metody, powinieneś użyć tylko jsoup, co z ciebie za programista!" , nie wspominając o tym że nie będą wiedzieli jak to jest zaprogramowane. XD
AL
Powiedz to mojemu Project Managerowi... ;p
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)