Editori vizuali pentru Markdown. Utilizarea Markdown în Editorul de postări WordPress. Markdown editori ca aplicații

Ideea este destul de simplă: scrii text simplu „plat”, iar pe parcurs creezi structură în el cu etichete foarte simple. Ideea din spatele Markdown este să fie simpluși lizibil pentru umanoizi, limbajul de marcare este în esență HTML simplificat.

Când scrieți în Markdown, formatarea textului rămâne unde tu plasat și unde tu dacă vrei – cine a încercat să convertească textul din Word în HTML sau cel puțin o dată a tastat o postare lungă în editori vizuali precum Blogger, mă va înțelege bine.

Textul simplu vă oferă o ușurință nebună de editare, control al versiunilor și acces la documentație oriunde aveți nevoie. Și cu ajutorul pandoc și markdown, aproape orice document poate fi generat din toate acestea și în diferite formate.

Sintaxa Markdown

Foarte simplu și foarte logic. Scurt scurta descriere sintaxa imprumutata de aici:
  • Paragrafele sunt separate printr-o linie goală
  • Două sau mai multe spații la sfârșitul unei linii definesc o întrerupere de linie
  • Fonturi: **bold** , _italic_ , `monospaced`
  • Titluri: #primul nivel# , ##al doilea nivel##
  • Liste:
    • neordonat: - element listă.
    • ordonat: 1. articol de listă
  • Bloc de cod - fiecare linie începe cu 4 sau mai multe spații
  • Bară orizontală: trei sau mai multe cratime sau asteriscuri
  • Linkuri:
    • inline [text etichetă](url)
    • note de subsol
  • Imagini:
    • încorporat!(url)
  • Escape de caractere se face cu o bară oblică inversă. Următoarele caractere trebuie să fie excluse: * _ ( ) () # + - . !
Pentru orice eventualitate, o voi da aici sub forma unei foi de cheat:

O linie separată este comentată în Markdown, care este implementată în mod strâmb. Dacă comentariul este scurt (inline), atunci puteți folosi metoda obișnuită de comentare din HTML:


Există suficiente descrieri ale sintaxei simple a Markdown pe Web, dar există și resurse deosebit de remarcabile:

  • în engleză cu 30 de link-uri către diverse și resurse utile conform Markdown (autor - Makovod);
  • , dar autorul consideră că ochiul roșu al lui Jakyll este singura utilizare a Markdown.
  • (în limba engleză).
  • și aceasta nu este doar o descriere decentă a Markdown, ci și un număr mare de link-uri către ceea ce Markdown acceptă într-o măsură sau alta.
Este convenabil să atârnați o foaie de cheat undeva într-un loc vizibil - multe dintre ele au fost deja făcute și dintre ele ies în evidență:
  • text simplu și minimalist
  • frumos conceput ca o pagină web
  • gata de imprimat ca fișier PDF (PDF, 60 Kb)
  • altul, în engleză, dens formatat ca PDF
Pentru cei care nu vor să citească - există tutorial video pe youtube:


unde vă vor spune foarte competent și în engleză în 12 minute despre ce este Markdown și de ce a renunțat deloc.

Editori vizuali pentru Markdown

Cel mai convenabil este să tastați ceva în Markdown și să vedeți imediat rezultatul - obțineți un fel de mediu de aspect. Există editori online și există aplicații pe care le puteți folosi offline.

Markdown editori ca aplicații

newfangled servicii cloudși alt webdvanol este, desigur, grozav, dar apoi s-a întâmplat un lucru groaznic și ai rămas fără conexiune la rețea. Si apoi, ce? Și atunci ne vor ajuta vechiul desktop și aplicațiile de sine stătătoare.
ReText
Unul dintre multi lucru Editorii Markdown sub Linux sunt ReText. Deoarece este scris în QT4 și Python, pregătiți-vă să trageți o grămadă de biblioteci Qt4 pentru această ambarcațiune de 100 Kb:
# apt-get install python-qt4 ... Următoarele Vor fi instalate pachete NOI: libqt4-help libqt4-scripttools python-qt4 python-sip 0 actualizate, 4 instalate nou, 0 de eliminat și 184 neactualizate. Trebuie să obțineți 5.728 kB de arhive. După această operațiune, se vor folosi 21,7 MB de spațiu suplimentar pe disc. Doriți să continuați?
De aceea, autorului acestor rânduri nu-i plac toate aceste meșteșuguri python: un program mic de 100 kb, trage biblioteci de 22 MB. Cu toate acestea, editorul vizual ReText își are locul și chiar funcționează:

De fapt, nu este nimic special - doar un panou cu două panouri cu un minim de funcții. Dacă nu doriți să trageți jumătate din Qt4, atunci ReText este ușor înlocuit de editori online, adesea cu funcționalități mult mai impresionante.

citat
Un alt editor care merită atenție este Qute. Este bun pentru că promite și suport pentru LaTeX. Pentru a edita codul, trebuie să faceți clic pe paragraful cu textul:

Aplicația se află într-un stadiu foarte incipient de dezvoltare, dar există deja o versiune pentru Linux. În plus, există și o aplicație pentru Android.

Asistență pentru Markdown de către editorii de text

Dacă cineva începe să vă spună despre faptul că Markdown este susținut peste tot și peste tot - aceasta este o minciună prea optimistă. Pe lângă Vim și Emacs, nu există o evidențiere implicită de sintaxă nici în Kate, nici în Gedit, dar este, de exemplu, în Submile Text 2. Poate fi conectat, dar cu pluginuri terțe - de exemplu, în Kate poate face asta:

Instalarea este simplă - copiați fișierul markdown.xml în directorul dvs. ~/.kde/share/apps/katepart/syntax/.
Asta e. Apoi, când deschideți un fișier cu extensii de *.text, *.md, *.mmd , veți obține editarea sintaxei cu culoarea Markdown!
Obțineți codul de descărcare pentru fișierul XML (este licență dublă atât sub licențe GPL, cât și BSD).
Dar pe editorii de text, lumina nu a convergit ca o pană, iar editorii vizuali ne vor fi mai folositori.

Editori online Markdown

Cei care încă folosesc editori de text învechiți sunt forțați să strice singuri colorarea sintaxei Markdown. Dar avem secolul 21 în curte, cu web duplex și servicii web și ne dorim un editor vizual online. Le avem:

  • Dillinger: două panouri, fundal slab" foaie de caiet", randare întârziată, dar exportați în GitHub și Dropbox, afișați numerele de rând și exportați HTML.
  • Instantmark este un alt instrument simplu cu două panouri, dar are capacitatea de a exporta fișierul în formatele Markdowm și HTML (le puteți descărca).
  • Editor de călătorii Markdowm: singurul oportunitate utila, In afara de asta butoane standardși două panouri - o filă cu sintaxă.
  • Mai mult ca editor online Markdown poate fi vizualizat pe proză - integrarea GitHub și designul minimalist reprezintă un plus.
Primii doi editori merită atenție, restul suferă de implementare sau lipsă de idei.

Motoare de blog și servicii web pe Markdown

Dacă Markdown este atât de grozav, unde sunt platformele de blogging care îl folosesc? Și sunt foarte puține dintre ele, deoarece blogul pe bare Markdown este incomod (fără etichete, comentarii, bară laterală, subiecte decente) și arată ca salut din anii 90. Cu toate acestea, ceva poate fi dezgropat.

Orice servicii web care acceptă Markdown

Adică, într-o oarecare măsură, soluții complete care permit utilizatorului obișnuit să nu facă ochi roșii cu hosting, Haskell, jakyll și alți lianți reactivi.
  • posterous : acceptă Markdown, dar s-a vândut pe Twitter din anumite motive și se va închide în orice zi.
  • Tumblr: digeră marcajul Markdown, dar aceasta este una dintre cele mai monstruoase implementări de microblogging.
  • Wordpress acceptă Markdown printr-un plugin.
Acestea sunt decizii mai mult sau mai puțin gândite, dar dacă vrem creativitate personală, atunci...

Pachete Markdown + Dropbox

În general, acestea nu sunt motoare de blog, ci pur și simplu redarea online a fișierelor Markdown ale utilizatorilor la cerere, plus găzduire. Totul pare prea minimalist, dar cu toate acestea:
  • Calepin: Un serviciu de blogging fără teme, fără etichete, fără widget-uri, fără personalizare și cu un aspect slab. Și pentru bani (pe viitor, vezi Întrebări frecvente).
  • scriptogr.am : poate cea mai mică soluție cu ochi roșii, există un stil mai bun și există suport CSS. Mai mult, ei promit o astfel de caracteristică ucigașă ca etichete pentru postări.
Dar bărbații adevărați nu caută căi ușoare și, prin urmare...

Hakyll/Jekyll + Markdown + GitHub = nu este un motor bun de blogging

Dacă cineva are o idee „și acum voi face un motor cool pe markdown și voi scrie postări într-un megablog pe el” - gândește-te din nou. Veți petrece mult timp pe asta și, ca urmare, veți obține o lipsă jalnică de mișcare și postări (dacă aveți puterea să le scrieți) cu un design primitiv.

Există o mulțime de exemple de implementare a unor astfel de angajamente, mai mult sau mai puțin reușite, și puțini sunt atrași de un blog independent cu aspect decent, deși există excepții [site-ul de pe Jekyll, www.juev.ru]:


Dar poți lupta cu hostingul, Jekyll / Hakyll și github până când îți pierzi impulsul. Pentru ceva mai mult sau mai puțin demn, cum ar fi evidențierea de sintaxă, evidențierea și desene normale cu subtitrări, veți reveni la WYSIWYG unde este făcută cu adevărat mai ușor.

Aici aș dori să le reamintesc colegilor scriitori că blogul este conținut valoros, nu motor. Puteți face ochi roșii cu Markdown cât de mult doriți și lupta cu seriozitate pentru ceea ce este drept și sacru HTML pur. Dar cât de groaznic arată codul generat de editorul WYSIWYG, scuipat 99,999% dintre cititori și motoare de căutare: oamenii și roboții merg pe site-uri pentru conţinut.

Utilizarea Jekyll și Hakyll pentru motoarele de blog poate fi justificată de următoarele considerente:

Se dovedește un site static care poate fi plasat oriunde și nu cerinte speciale la gazduire;
- Mai puține probleme de securitate
- postările și imaginile sunt mereu cu tine, este mai ușor să creezi copii de rezervă.

Merită totul efort suplimentar, fiecare decide singur.

Wiki-uri și alte servicii web activate pentru Markdown

În continuare, voi lăsa o mică listă de soluții potențial de funcționare sub formă de wiki-uri, generatoare de site-uri și alți diabolici ai creării de software:
  • Dotclear este o soluție de motor de blogging destul de completă cu suport Markdown. Scris în PHP global și de încredere.
  • judecând după descriere, un generator de site static cu suport de reducere (sub Windows)
  • ceva sub numele sonor obtvse , dând drept un motor de blog minimalist care generează pagini HTML statice. Adună praf pe github, poți încerca să-i dai viață.
  • Sputnik este un wiki relativ bogat în funcții, cu suport direct pentru Markdown, scris în Lua.
În text sunt date o mulțime de link-uri și, de fapt, este mai convenabil să faci asta cu Markdown. Suport de masă stângace în Markdown și mai ales lipsa culorii îl supără foarte mult pe autor, care este obișnuit să coloreze tot ce nu cade cu sau fără motiv. Dar listele de imbricare pentru GTD's Weekly Review este probabil caracteristica ucigașă a Markdown, care merită din plin timpul pentru a învăța.

Comentarii anonime... 24 sept. 2012, 07:41:00

github: paginilor nu le pasă, dar README.md din fiecare repo este o alternativă reală la pagina și/sau wiki-ul unui proiect mic; același lucru pentru bitbucket

posterous a fost cea mai proastă platformă de blogging vreodată, deoarece editorul web nu te-a lăsat să editezi blocuri de cod. tumblr este autist, dar totuși ortodox, spre deosebire de noogle, nu impune butoane roșii și design-uri doar pentru javascript.

Mihail Saushkin comentează... 24 sept. 2012, 12:29:00

Am folosit markdown împreună cu MathJax de mult timp pentru a publica prelegeri care conțin o grămadă de formule on-line. A fost fixat și pe Markable MathJax fără probleme. Rezultat . Este suficient să inserați o linie de script. Sunt de acord cu autorul: în markdown, lipsa suportului de masă mă omoară, dar există o cârjă sub formă de cod html, ei bine, sau sub formă de cod latex folosind mediul matrice.

comentariile virens... 24 sept. 2012, 12:57:00

@Andrew Prokhorenkov comentează...
Poate nu Hakyl, ci Jekyll?
Mă refeream la Hakyll. Corectat în textul postării.

Și ca editori Markdown, am găsit proză pentru mine
Multumesc, adaugat la postare. Deși pentru mine github este un minus, nu un plus.

@vova comentează...
Pandoc acceptă mai multe aspecte de tabel
Știu, dar markdown-ul în sine nu o acceptă.

Pandoc are multe alte caracteristici grozave.
Asta e sigur. De fapt, a fost o idee să lipesc în postare și despre pandoc, dar mi s-a părut prea mult.

@Denis Evsyukov comentează...
Hmmm, un atac destul de ciudat asupra motoarelor de blog care folosesc markdown pentru a stoca articole.

Aceasta nu este o insultă, ci o critică. În mare parte constructiv, deși cu elemente de trolling.

www.juev.ru meu funcționează pe jekyll, toate articolele sunt în reducere. Ce s-a întâmplat?
Știu. Este doar o chestiune de faptul că Wordpress și Blogger au toate acestea (și multe altele) din cutie - de ce să pierzi timpul reinventând roata.

Apropo, Denis, blogul tău este cel mai frumos dintre ceea ce am văzut pe jekyll. Orice altceva duce la dor și disperare sufletească înfricoșătoare.

Plus multe alte evoluții. De ce le numiți nepotriviți?
Pentru că acestea sunt imperfecțiuni care adună praf pe github. Mai exact: fără teme obișnuite, fără bară laterală, fără comentarii, fără etichete... Da, poate fi înșurubat cu cârje de la terți. Dar de ce?

@Zaur Dzasezhev comentează...
Pentru Evernote există client de consolă pentru Linux, acceptând note în Markdown. Se numește geeknote
Interesant. Mulțumesc.

@iv_vl comentează...
Corectează-mă, dar asta e grosolănie, față de care te opui atât de mult în comentarii.
Aceasta nu este nepoliticos, ci un trolling oarecum gros.

Bineînțeles, nu a fost loc printre cei menționati www.juev.ru
Iată-l singurul al cărui blog arată puțin frumos.

Menționat în text și de două ori.

Modul organizație nu privește caracteristica ucigașă a Markdown.
Emax nu este singurul editor de text pe această planetă. Și vim, apropo, de asemenea.

Numărul mare de editori online Markdown versus prototipuri de desktop semi-funcționale este ceea ce mă sperie.
Ei bine, iv_vl, sunt încă ocupați cu lucruri utile: KDE4, Gnome3, Unity, Wayland. Există deja o duzină de furculițe de Amarok, după părerea mea. Și vorbești despre reducere. Încă ne lipsesc încă o duzină de DE și câteva sute de jucători.

În afara web, Markdown nu este acceptat ca limbaj de marcare.
Această postare încearcă doar să arate că nu este un singur web.

Separat, fac apel la bloggerii respectați care s-au adunat pentru o discuție în jurul acestei postări. Văd aici pe blog, în Marked Deck, contorul FeedBurner a căzut.
Feedburner a căzut la nivel global. Ei lucrează la asta (TM). Aș dori să sper că o vor repara, deși au fost acoperite doar statisticile, feedul în sine este viu și bine.


De unde sunt lemnele de foc? O parte din API este tăiată acolo, dar alimentatorul în sine rămâne cu noi. MULTI oameni o folosesc.

comentariile virens... 24 sept. 2012, 12:59:00

@Comentarii anonime...
github: paginilor nu le pasă, dar README.md în fiecare repo este o alternativă reală la pagină
Sunt de acord cu Anonymous - apropo, am făcut deja un astfel de readme pentru simulatorul meu. A mers foarte bine.

tumblr este autist, dar totuși ortodox
Aici nu sunt de acord cu Anonymous. Nu am mai văzut un serviciu web atât de groaznic de multă vreme: fără etichete, fără căutare, fără hartă de site... Dezvoltatorii s-au îngrozit, au zburat pe o altă planetă sau nu-și folosesc deloc serviciul.

multumesc pentru scriptograma si kalepin.
Aceasta este din comentariile mele cu Akulovich. Deci milă pentru el :-)

@Mikhail Saushkin comentează...
Am folosit markdown împreună cu MathJax de mult timp pentru a publica prelegeri care conțin o grămadă de formule on-line.
Oh, asta e interesant. Multumesc Michael, mi-ar placea asta.

A fost fixat și pe Markable MathJax fără probleme.
Pot sa cer reteta? :-)

Rezultatul este aici. Este suficient să inserați o linie de script.
Destul de demn, doar desenul de formule încetinește puțin. Și așa este destul.

Sunt de acord cu autorul: în markdown, lipsa suportului de masă mă omoară, dar există o cârjă sub formă de cod html, ei bine, sau sub formă de cod latex folosind mediul matrice.
Sincer să fiu, nu înțeleg de ce nu a existat inițial suport pentru tabele și culori?

comentariile virens... 24 sept. 2012, ora 13:02:00

Și despre hakila și ochii roșii - vor da un exemplu din viață. În prezent, încerc să fac un nou algoritm de optimizare care va fi adaptat sarcinii _my_. Acesta este ochi roșii matematic și s-ar putea întreba: de ce? La urma urmei, sunt atât de mulți algoritmi care au fost deja făcuți? Răspunsul meu este: algoritmul pe care îl voi face va fi mai bine decide A mea sarcină decât cei care rezolvă sarcină comună. Soluția mea este mai bună pentru că este specializată.

Markdown + Hackkill = o soluție care, în opinia mea, mai rau existent. Este limitat prin design și vă va oferi un motor de blogging mai rău decât cele existente. Pe un astfel de „motor de blog” nu există etichete, nici sistem de comentarii, nici subiecte.

Exemplu: am intrat pe blog și am dat peste interesanta postare. Vreau să citesc altceva pe acest subiect și vreau să intru în etichetă și să văd alte postări. Juev are semne și numai Allah știe câtă putere i-a luat. Și în WordPress este implicit, tocmai ieșit din cutie.

De fapt, întrebarea mea este următoarea: de ce să pierzi timpul și energia cu ceva care există deja și funcționează grozav din cutie? De ce să pierzi timpul pe altă roată când rezultatul final este exact același (dacă nu mai rău)? Nu găsesc niciun motiv rezonabil pentru asta. Probabil comentatorii își vor da argumentele.

Nu argumentez: există un motiv pentru a scrie postări, cel puțin parțial, în markdown - această postare, apropo, este scrisă în principal în Markable, cu excepția colorării și a imaginilor. Dar pentru a face un motor de blog din asta - de ce?!

Mihail Saushkin comentează... 24 sept. 2012, ora 13:10:00

@virens
Pot sa cer reteta? :-)

Destul de demn, doar desenul de formule încetinește puțin. Și așa este destul.
Ei bine, scriptul este procesat de pe site-ul din stânga, iar Markable este puțin lent.

Anton Iakutovici comentează... 24 sept. 2012, ora 18:27:00

Super post, Misha. Acum toată lumea va avea ochi roșii cu reducere :-)

> Un alt editor care merită atenție este Qute.
Oh, nu-ți pierde timpul. Kit de distribuție pentru Windows 40 MB și un produs frânat strâmb la ieșire.
Deci doar pentru a speria copiii și a semăna ura pentru utilizarea Markdown.

Articolul promovează adesea pandoc, despre MultiMarkdown niciun cuvant. Și degeaba are o mulțime de chifle gustoase.

> De asemenea, puteți privi proza ​​ca un editor online Markdown
Doar pentru editarea a tot felul de README.md și „nealimentat” pentru github, se potrivește perfect. Am scris despre asta.

iv_vl comentarii... 24 sept. 2012, ora 18:41:00

@virens comentează...
Aceasta nu este nepoliticos, ci un trolling oarecum gros.
Numai nume corect„standarde duble”. Dacă spun „nigeri” pe negru, mă vor interzice, iar pe buzele tale - acesta este un „trolling oarecum gros” al populației negre.

Menționat în text și de două ori.
Printre site-urile de pe Jekyll nu este menționat nici măcar o dată.

prin birou Informațiile FeedBurner sunt închise pe 20 octombrie.
De unde sunt lemnele de foc? O parte din API este tăiată acolo, dar alimentatorul în sine rămâne cu noi
Nimeni nu știe cât de serios este totul, dar Google a făcut furori printre bloggeri, unii migrând la FeedBlitz. Lemn de foc de aici.

iv_vl comentarii... 24 sept. 2012, ora 19:12:00

@virens comentează...
Este limitat prin design și vă va oferi un motor de blogging mai rău decât cele existente.
Nu toată lumea are nevoie de un blog ca platformă pentru a-și transmite gânduri inteligente. Mulți scriu pentru ei înșiși, și invers, nu vor să petreacă timp menținând o viață permanentă a blogului, trolingând comentatorii. Ei au în prim plan confortul de a crea conținut și, după cum știți, fiecare are al lui. Cine se gândește la colorat când scrie pentru el însuși? Uau, Juev folosește Markdown pur fără tabele sau evidențiere. Mihail, pur și simplu procedezi dintr-un punct de vedere complet diferit, din faptul că fiecare autor trebuie să devină blogger. Nu fiecare.

Pe un astfel de „motor de blog” nu există etichete, nici sistem de comentarii, nici subiecte.
Ei bine, nu este corect - totul este acolo.

De ce să pierzi timpul pe altă roată când rezultatul final este exact același (dacă nu mai rău)?
Nu e vorba de numărul de roți. Unii oameni preferă o bicicletă decât o mașină pentru o simplă plăcere. Fershtein?

Minoru comentează... 24 sept. 2012, ora 19:59:00

Abia acum după comentariul tău am înțeles de ce este necesar. Și despre reducere se spune pe scurt.

@iv_vl comentează...
Dacă spun „nigeri” pe negru, mă vor interzice, iar pe buzele tale - acesta este un „trolling oarecum gros” al populației negre.
Offtopic, desigur, dar totuși. Mi-ai amintit de recenta mea călătorie la Baltimore, SUA. Acolo am urmat un curs intensiv de corectitudine politică, când trei cadavre cu bâte de baseball s-au aruncat asupra mea și fraza:

Eu, alb, wazzup?! WataYoDoinHere?! Cauți probleme?

Apoi m-am gândit că dacă răspund „da, negru” atunci cu siguranță nu voi veni cu viață acasă. Având în vedere că eram singurul bărbat alb pe o rază de patru blocuri :-)

Printre site-urile de pe Jekyll nu este menționat nici măcar o dată.
Vorbește despre Hakil și jekyll în general. Dar am inclus o captură de ecran oricum.

Nimeni nu știe cât de serios este totul, dar Google a făcut furori printre bloggeri, unii migrând la FeedBlitz. Lemn de foc de aici.
feedblitz- serviciu cu plată, și ei au fost cei care au făcut foșnetul. Pentru că beneficiază.

@iv_vl comentează...
Nu toată lumea are nevoie de un blog ca platformă pentru a-și transmite gândurile inteligente.
Ei bine, de ce asemenea chinuri infernale? Există people.ru - va arăta la fel. Nu mult mai multe caracteristici. Și în plus, este gratuit.

Ei au în prim plan confortul de a crea conținut și, după cum știți, fiecare are al lui.
Pentru a începe să scrieți pe blog, trebuie să puteți utiliza Markdown, să aveți găzduire, să ridicați Jekyll/Hakyll, să puneți totul pe github...

Bine, dacă promovați cu adevărat Markdown, atunci cu exemple precum scriptogr.am - cel puțin parțial se bazează pe a fi numit un serviciu de blog.

Mihail, pur și simplu procedezi dintr-un punct de vedere complet diferit, din faptul că fiecare autor trebuie să devină blogger. Nu fiecare.
Vladimir, pornesc de la premisa că dacă poți obține ceva gratis și fără hemoroizi, atunci de ce să nu-l primești?

Ei bine, nu este corect - totul este acolo.
Nu peste tot. Nu voi arăta cu degetul :-)

comentariile virens... 24 sept. 2012, 20:52:00

Nu e vorba de numărul de roți. Unii oameni preferă o bicicletă decât o mașină pentru o simplă plăcere.
Despre bicicletă ai observat bine: este și mai lentă :-) De dragul curiozității, am decis să măsor viteza - și ce am văzut?

Aceasta este postarea mea plictisitoare pe blog:

mydebianblog.blogspot.com

Dimensiunea paginii 415,6 kB
Timp de încărcare 1.63s
Cererile 105
Perf. nota 80/100

Nu e rău, mai ales având în vedere dimensiunea și dezordinea Javascript-urilor. Ultimul check-in pentru editarea șablonului cu participarea tovarășului. Vlsu a dus la faptul că acolo a apărut un blob javascript gras (acum înlocuiește MAI MULT).

Și acum rapid ca fulgerul și blogurile moderne despre hakils și jekyls:

http://www.juev.ru
Dimensiunea paginii 40,7 kB
Timp de încărcare 2.58s
Cereri 8
Perf. nota 92/100

În ciuda faptului că cântărește de 10 (!) ori mai puțin, este nevoie de o dată și jumătate mai mult pentru încărcare. Și nu este singur:

http://debiania.in.ua/

Dimensiunea paginii 4,6 kB
Timp de încărcare 3.60s
Cereri 4
Perf. nota 77/100

Aceasta este, în general, o descoperire - un kilobyte pe secundă. Și dacă sunt mulți vizitatori, cineva de la ORL sau Habr va da un link și apoi ce?

Adevărat, nu totul este atât de trist:

http://www.vonavi.me/

Dimensiunea paginii 35,4 kB
Timp de încărcare 1.14s
Cereri 12
Perf. nota 73/100

Poți deschide șampania, iv_vl, o victorie convingătoare :-)

@Minoru comentează...
Grosolănie.
Ai greșit. Vor fi argumente?

Denis Evsyukov comentează... 24 sept. 2012, 21:37:00

@virens
Și cu ajutorul cu ce s-au făcut măsurătorile vitezei de încărcare a paginii?

Iată site-ul tău - test - mydebianblog.blogspot.com/ , conform căruia ora sarcina completa pagina este de 7,3 secunde, iar când este vizualizată din nou 4,3 secunde.
Site-ul meu este de testare - www.juev.ru, durează puțin mai mult de o secundă pentru a se încărca complet și doar 0,54 pentru a reîncărca ...

Am luat măsurători de pe unul dintre servere, astfel încât precizia să fie aproape reală.

Vă mulțumesc foarte mult pentru recenzia frumoasă! Dar puterea Jekyll și a motoarelor similare este că pot controla complet conținutul paginilor și pot stabili exact designul de care am nevoie. Blogspot, din păcate, nu va mai oferi acest lucru. Iar faptul că ați văzut puține lucrări frumoase pe jekyll nu înseamnă că motorul este mizerabil sau că nu poate fi folosit pentru blogging. Doar că oamenii care conduc aceste bloguri/site-uri web nu se gândesc prea mult la design.

Vă întrebați, de asemenea, de ce să folosiți altceva când wordpress este acolo? În primul rând, ca urmare a muncii lui jekyll, obțin un site static care poate fi plasat oriunde și nu există absolut niciun fel de cerințe speciale de găzduire. Pentru wordpress, este necesară găzduirea cu PHP și este destul de bună, mai ales dacă prezența este decentă.

În al doilea rând, unele dintre extensiile pe care le conține întrerupe pagini sau introduc anumite erori în codul paginii. Înțeleg că pentru mulți acest lucru nu înseamnă absolut nimic, dar chiar nu-mi place când cineva sau ceva interferează cu codul meu.

În al treilea rând, aceste extensii trebuie actualizate periodic, pentru a monitoriza securitatea... De ce? Daca tot ce vreau este sa arat ce am scris???

De ce să generezi pagini de fiecare dată când un utilizator vizitează site-ul? Este chiar imposibil să generezi pagini o dată pe un blog obișnuit sau pe un site simplu, astfel încât mai târziu să poți afișa doar rezultatul ?? Îmi puteți da un exemplu de blog în care paginile sunt în mod evident dinamice? Unde se schimbă conținutul însuși în multe feluri și unde ar fi necesar să-și creeze propria pagină separată de fiecare dată, pentru fiecare utilizator? Și dacă nu, atunci de ce îngrădi o astfel de grădină?

De ce să nu folosiți generatoare statice de site?

Există puține opțiuni de design pe blogspot, vă puteți crea singur, dar din nou, posibilitățile sunt limitate și este destul de problematic să faceți acest lucru. Când este sarcina de a crea un design separat pentru pagini diferite(principalul este una, despre autor este alta, conținutul este al treilea, iar paginile blogului în sine sunt a patra), atunci blogspot nu are nimic de oferit, totuși, ca wordpress. În Jekyll, ca și în nanoc, acest lucru este destul de ușor de implementat. Și apropo, puteți chiar să vă setați propriul design individual pentru fiecare pagină separată. Este clar că puțini oameni îl vor folosi, dar totuși.

Prin urmare, trollingul din partea ta s-a dovedit a fi oarecum ofensator...

Comentarii anonime... 24 sept. 2012, 21:42:00

TeX în sine s-a dovedit a nu fi foarte convenabil, pur în specificul meu - trebuie să lucrez cu un șef orientat pe Word, dar combinația markdown -> .odt -> .doc s-a dovedit a fi destul de practică și convenabilă.

În special pentru acest caz, am scris un script care vă permite să generați imediat un fișier .odt din markdown extins „și

csl este un fișier de stil care definește aspectul bibliografiei. Acest standard este utilizat pe scară largă în zotero. Din moment ce șeful meu a trebuit să-și refacă propria integrală în acest sens - din fericire, acesta este un fel de xml.

O nuanță semnificativă în activitatea editorului. Pentru a genera o bibliografie, aveți nevoie de un fișier BibTex cu surse (`my.bib`), un fișier csl pentru stilul bibliografiei (`disser.csl`) și un fișier de referință - un eșantion de stiluri `reference.odt` - astfel încât pandoc să știe cum să formateze documentul de ieșire. Fișierul de referință arată așa. Mai întâi, să generăm un document `.odt`. De exemplu astfel:

Pandoc -f markdown --bibliography ~/disser/my.bib --csl ~/disser/csl/disser.csl --standalone 01_01.txt -o 01_01.odt

Deschideți-l în `libreoffice`. Acolo, desigur, vor fi Times New Roman 12, nu 14, titluri Arial și așa mai departe. Schimbăm toate acestea în ceea ce ne trebuie - romanul al 12-lea în al 14-lea, refacem stilurile de titlu, reparăm anteturile și subsolurile, etc. Și salvați fișierul ca `reference.odt` - sau orice alt nume. Data viitoare când ne vom referi la el (vezi scriptul principal), pandoc va prelua formatele corecte din el (doar stilul pentru părțile de text de care aveți nevoie). ) și folosiți-le pentru a stila fișierul generat - stiluri de text, titluri etc. Foarte convenabil.

Nota marginala. Acest lucru nu este totul „pentru o minte curios”. LibreOffice acceptă așa-numitul. „documente compuse”, deci dacă scriu nu secțiuni de disertație, ci un manual de instruire - puteți atașa cu ușurință o copertă și un conținut tipic fișierului generat - și să obțineți un manual de instruire.

Nota marginală-2. Comentariile din interiorul fișierului sunt separate de mine prin semne de două procente (`%%`) la începutul rândului - sunt aruncate atunci când documentul este generat. Este foarte convenabil să-ți scrii tot felul de TODO, FIXME și NOOOOOO, ca să nu le vadă șeful.

În general, este nevoie să clarificăm cumva lucrurile și să scrieți o postare despre fluxul de lucru atunci când scrieți Nameless :)

Comentarii anonime... 24 sept. 2012, 21:48:00

P.S. Pentru mine, markdown este în primul rând o modalitate de a lucra nu în Libre Office, ci în vim - profitând în același timp de toate avantajele pe care vim și libreoffice le oferă.

99% din documentația de lucru pe care o am este stocată în mcd și în imagini (și introdusă în bitbucket.org sub controlul versiunii), iar aceasta vine cu un fișier tipic și un script care generează documente la cerere - chiar și în LaTeX, chiar și în html , chiar și în odt, cel puțin în pdf.

Textul simplu vă oferă o ușurință nebună de editare, control al versiunilor și acces la documentație oriunde aveți nevoie. În plus, pot lua notițe peste tot într-o singură limbă - atât pe ramurile freemind, cât și în Affigitelno Dosar mare Ce este pe o palmă/tabletă/cititor. Și din toate acestea, puteți genera aproape orice documente și formate fără să vă deranjați în mod special cu formatarea acestora.

Mihail Saușkin

Mai jos este o privire la sintaxa de bază de marcare fișiere text„Markdown” - simboluri folosite, linkuri, paragrafe, strofe, titluri, citate, liste, text preformatat, imagini.

În „Markdown” de bază, general acceptat în prezent, nu există unele elemente HTML precum definiții, tabele. Dar aceasta are propria sa logică și adevăr. Pentru că dacă, de exemplu, adăugați tabele, atunci mulți vor începe să dispună din nou aspectul vizual cu aceste tabele, așa cum a fost cazul cu HTML. In cele din urma, mese simple poate fi creat, de exemplu, prin preformatare.

Deși există diverse versiuni extinse de la terți, cum ar fi Maruku, Kramdown, care încearcă să extindă Markdown de bază. Principalul lucru de reținut este că Markdown nu a fost creat ca înlocuitor pentru HTML și este important să nu pierdeți principalul markup în procesul de dezvoltare.

Simboluri Markdown

Marcarea hipertextului Markdown folosește caractere comune auxiliare, dar nu folosește caractere din niciun alfabet - în principal engleză. Care, în principiu, cu o dispunere a tastaturii naționale bine gândită, vă va permite practic să nu schimbați aspectul atunci când creați și introduceți o pagină web.

Lista simbolurilor Markdown:

* asterisc _ liniuță de subliniere + plus - minus = este egal cu ghilimele ()()<>paranteze # „hash” ! Semn de exclamare: colon | bară verticală „ ghilimele duble" apostrof $ dolar spațiu paragraf nou

În Markdown, aceste caractere servesc la formatarea structurii textului, în mod similar folosind HTML elemente.

Trebuie avut în vedere că în „Markdown” în cele mai multe cazuri nu există caractere de închidere, iar efectul unui caracter care denotă orice element al textului se extinde până la sfârșitul paragrafului.

Dacă este nevoie de aceste caractere direct în text simplu, atunci aceste caractere trebuie să fie eliminate cu o bară oblică inversă \ . Sau utilizați marcajul „text preformatat”.

Elementele de bază ale „Markdown”

Paragraf și flux de rând

Paragrafele din Markdown sunt separate unul de celălalt prin una sau mai multe rânduri goale.

Pentru a face o pauză în interiorul unui rând, de exemplu, pentru a crea o strofă într-o poezie, este suficient să adăugați două spații înainte de întreruperea versului. Și acest lucru se face prin adăugarea a două spații la sfârșitul strofei și apoi a unui semn de paragraf. Exemplu

Linia 1
Randul 2
Linia 3

Adică, linia este scrisă astfel: line\s\s\n , unde \s este un spațiu, \n este un paragraf. Cu alte cuvinte, aceasta este o înlocuire a etichetei
în HTML.

Titluri

Titlurile sunt indicate cu # (semnul lire sterline) la începutul unui paragraf. Numărul de bare indică nivelul de titlu de la unu la șase. De exemplu:

# Titlu

Se potrivește cu codul HTML

antet

Și, de exemplu, patru zăbrele

#### Titlu

se potrivește cu codul HTML

antet

Nu puteți evidenția antetul principal cu hashuri, ci subliniați-l cu o linie dublă:

Antet principal ==================

Al doilea cel mai neted titlu poate fi subliniat cu o linie simplă:

Antet normal -----------------

Stilul textului

Miniatură- **Text aldine** Text italic - *Text italic* Text aldin italic - ***Text aldin italic***

Text aldin - __Text aldin__ Text italic - _Text italic_

Linie orizontală

Linie orizontală


realizat dintr-o serie de trei sau mai multe linii scurte

Citate

Un citat din Markdown este precedat de o paranteză unghiulară > . Valabil până la sfârșitul paragrafului

> „Următoarea generație de dezvoltatori web va trăi sub Markdown.” M. Astapchik

La fel și în HTML

„Următoarea generație de dezvoltatori web va trăi sub Markdown.” M. Astapchik

Liste

O listă neordonată obișnuită este indicată printr-un asterisc la începutul fiecărui element de listă.

* Unu doi trei

Numerele sunt folosite pentru o listă numerotată.

1 dată 2 doi 3 trei

Formatare cod, text preformatat

Formatarea este foarte importantă în Markdown, ceea ce înseamnă textul așa cum este, fără traducere în HTML. Corespunde elementelor pre și codului din HTML. Pentru un paragraf preformatat, este suficient să indentați patru spații sau o filă.

Print("Bună lume!\n")

De asemenea, un bloc de text preformatat poate fi notat prin trei backtick-uri la rând la începutul și la sfârșitul acestui bloc. Adică, aici este necesar și un set de caractere de închidere.

``` print("Bună lume!\n")

Textul preformatat direct în linie este separat de ambele părți prin ghilimele din spate.

`text preformatat`

Este ușor de utilizat text preformatat în Markdown.

Legături

note de subsol

În textul obișnuit, nu este întotdeauna plăcut din punct de vedere estetic să inserați link-uri direct în text, deoarece acestea pot fi foarte lungi. Este mult mai bine să le formatați ca note de subsol pentru o mai bună lizibilitate. Nota de subsol este organizată folosind ghilimele pătrate. Și în partea de jos a documentului, ca în cărți, fiecare notă de subsol după două puncte indică adresa reală a link-ului. Exemplu.

Recent, unul dintre utilizatorii noștri a întrebat ce este Markdown? A auzit-o de la un prieten care folosește platforma de blogging Ghost. Markdown este un limbaj simplu de marcare care convertește textul simplu în HTML. Vă puteți gândi la el ca la un simplu editor de text. În acest articol, vă vom arăta cum să utilizați Markdown în WordPress.

Ce este Markdown?

Markdown este un limbaj de marcare care convertește textul simplu în cod HTML. Le permite utilizatorilor să utilizeze Simboluri speciale cum ar fi asteriscul, semnul numeric, liniuța de subliniere și liniuța în sintaxa Markdown în loc de HTML. Această sintaxă Markdown este apoi convertită automat în HTML.

De exemplu
**Acesta este text cu caractere aldine**

Textul de mai sus va fi convertit folosind Markdown în:

Acesta este text cu caractere aldine

Oferte Markdown metoda eficientaîmbunătățit documente text mai ales pentru utilizatorii avansați. Dacă folosești un editor de text pentru a-ți scrie postările WordPress, atunci Markdown poate fi o alternativă bună pentru tine.

Cum să adăugați suport Markdown la WordPress

În primul rând, trebuie să instalați și să activați pluginul WP-Markdown. După activare, trebuie să mergeți la secțiune Setări » Scriere panoul de administrare a site-ului și derulați în jos la secțiunea Markdown.

Puteți activa WP-Markdown pentru postări, pagini și tipuri de postări personalizate. De asemenea, puteți activa suportul Markdown pentru comentarii.

Pluginul are o bară de meniu în zona de editare, astfel încât să puteți adăuga cu ușurință sintaxa Markdown. Dacă sunteți nou la Markdown, atunci probabil ar trebui să activați meniul de ajutor. Acest lucru vă va ajuta să învățați mai rapid sintaxa Markdown.

După activarea suportului Markdown, faceți clic pe butonul de salvare a modificărilor.

Utilizarea Markdown în Editorul de postări WordPress

După ce ați activat suportul Markdown pentru postări și pagini, puteți accesa secțiunea Postări » Adăugați noi panoul administrativ al site-ului pentru a-l vedea în acțiune.

Veți observa că standardul vizual wordpress iar editorii de text au fost înlocuiți cu un editor Markdown.

Ecranul editorului afișează acum o previzualizare în timp real a textului pe care îl tastați în editor. În partea de sus aveți o bară de ajutor Markdown care vă permite să introduceți sintaxa Markdown folosind butoane. Acest panou va fi util pentru acei utilizatori care tocmai se familiarizează cu sintaxa Markdown.

Markdown Syntax Cheat Sheet

Sintaxa Markdown este foarte simplă, dar va dura ceva timp să vă obișnuiți. Mai jos este o mică foaie de cheat Markdown pe care o puteți folosi ca bază pentru învățare.

Date inițiale:
*Acesta este text cu caractere cursive*

Rezultat:
Acesta este textul cu caractere cursive

Date inițiale:
**Acesta este text cu caractere aldine**

Rezultat:
Acesta este text cu caractere aldine

Date inițiale:
#Acesta este rubrica 1#

Rezultat:

Acesta este titlul 1

Date inițiale:
##Acesta este rubrica 2##

Rezultat:

Aceasta este rubrica 2

Date inițiale:
###Acesta este rubrica 3###

Rezultat:

Aceasta este rubrica 3

Date inițiale:
(https://site-ul web)

Date inițiale:
1. Lista de articole numerotate 1
2. Lista de articole numerotate 2
3. Lista de articole numerotate 3

Rezultat:

  1. Elementul 1 din listă numerotat
  2. Elementul 2 din listă numerotat
  3. Elementul 3 din listă numerotat

Date inițiale:
* Punctul 1
* Punctul 2
*Punctul cu marcatori 3

Rezultat:

  • Punctul marcant 1
  • Punctul marcator 2
  • Punctul marcant 3

Adăugarea de videoclipuri atunci când utilizați Markdown în WordPress

De obicei, puteți încorpora un videoclip YouTube prin copie simplă link-uri și lipiți-l în editorul de postări. Această metodă nu va funcționa dacă WP-Markdown este activat. În acest caz, trebuie să împachetați linkul video într-un cod scurt [încorporare] in felul urmator:

Sperăm că acest articol te-a ajutat să înveți despre Markdown și cum să-l folosești în WordPress. Dacă credeți că Markdown nu este ceea ce căutați, atunci încercați WordPress.

Scrierea articolelor în format web a fost întotdeauna împovărată de necesitatea de a formata conținutul în HTML. Scrierea și publicarea conținutului nu este ușoară, deoarece trebuie să cunoașteți cel puțin etichetele HTML de bază.

În acest caz, pierdeți capacitatea de a publica rapid o postare pe un blog sau pe o pagină web. titluri, font aldine, cursiv, liste cu marcatoriși numerotarea - toate aceste jetoane trebuie să poată face. Acest proces poate fi destul de obositor pentru bloggerii ocazionali, așa că nașterea Markdown este ca o gură de aer proaspăt pentru creatorii de conținut.

Dar Markdown poate fi util nu numai pentru cei care lucrează pe internet. De asemenea, poate acționa ca o sintaxă simplă care facilitează formatarea și scrierea în text simplu pentru toată lumea, indiferent dacă scrieți o notă pentru dvs. sau un fișier Markdown de partajat online.

Markdown este un limbaj ușor de marcare. Creat inițial de John Gruber și Aaron Schwartz cu scopul de a crea cel mai ușor de citit și mai ușor de publicat limbaj de marcare posibil. Multe idei de limbă au fost împrumutate din convențiile existente de marcare a textului în e-mailuri.

Scopul Markdown este de a facilita scrierea, editarea și citirea conținutului web utilizatorii obișnuiți. Simplitatea constă în faptul că tot ce trebuie să faci este să te familiarizezi cu și să memorezi sintaxa acestui limbaj simplificat.

Comenzi Markdown

Legături

Titluri

#H1
## H2
### H3

Liste

Lista simplă:

- paragraful 1
- punctul 2
- punctul 3

lista numerotata

1. paragraful 1
2. punctul 2
3. paragraful 3

Pentru a utiliza limbajul ușor Markdown, aveți nevoie de aplicații speciale - editori de text Markdown. Le puteți descărca din App Store sau alte site-uri dacă aveți o licență gratuită.

Cele mai bune vizualizatoare Markdown

Marcat 2

Preț: versiunea de încercare este gratuită, versiunea completă este de 13,99 USD.

Una dintre cele mai programe populare pentru a vizualiza texte în format Markdown. Documentele se actualizează în timp real pe măsură ce le editați. Toată atenția este concentrată asupra textului în sine. Programul funcționează atât cu documente Markdown, cât și cu texte simple.

Cei mai buni editori Markdown

Ia aminte

Preț: 1 150 de ruble.

Cel mai functie importanta a acestei aplicații este capacitatea de a lucra cu fișiere CSS precum și sprijinul opțiuni convenabile lucra cu documente.

textele

Preț: este gratuit.

Texts este un editor de text conceput pentru a separa prezentarea conținutului de procesul de creare a acestuia. Funcționează ca în mod normal procesor de cuvinte, dar totuși salvează documentele completate ca text simplu cu marcajul Markdown, făcându-l compatibil cu alte aplicații compatibile Markdown. Acesta creează documente care sunt complet pregătite pentru web.

Markdown Pro

Preț: 379 de ruble.

Markdown Pro vă oferă toate instrumentele de care aveți nevoie pentru a crea documente frumoase, bine formatate, folosind limbajul de marcare Markdown. De asemenea, se străduiește să facă procesul de scriere distractiv și interesant. Programul acceptă exportul către formate PDF sau HTML. Markdown Pro este un editor Markdown flexibil și de înaltă calitate pentru documente, note, articole și multe altele.

Markdown ușor

Preț: 749 de ruble.

Easy Markdown facilitează, de asemenea, editarea și formatarea documentelor Markdown pentru toată lumea. Traduce automat textul într-un format web formatat folosind formatarea de bază Markdown. Puteți introduce text în panoul din stânga și puteți vizualiza rezultatul final în partea dreaptă și puteți salva oricând codul în format HTML sau RTF în timp ce lucrați la un document.

nvALT

Preț: este gratuit.

nvALT 2 este o ramură a popularului editor de text Notational Velocity, dar cu caracteristici îmbunătățite și o interfață modificată. Unele dintre acestea includ capacitatea de a scrie și edita fișiere text în Markdown.

Nottingham

Preț: este gratuit.

Inspirat de eleganța și flexibilitatea editorului Notational Velocity, Nottingham este un editor Markdown simplu și ușor pentru Mac, care acceptă previzualizarea live Markdown a fișierelor text și a înregistrărilor. Designul general este foarte similar cu Notational Velocity, astfel încât utilizatorii se vor simți ca acasă în timp ce lucrează cu acest program.

iA Scriitor

Preț: 749 de ruble.

Unul dintre cei mai buni editori Markdown. iA Writer acceptă un numar mare de Sintaxa Markdown. LA ultima versiune iA Writer puteți folosi combinația Ctrl + Cmd + R pentru a activa previzualizarea. Clientul este disponibil și pe iPhone și iPad.

Proverb

Preț: 899 de ruble.

Byword este un alt editor Markdown foarte faimos pentru Mac și pentru cei care își doresc o interfață elegantă și simplă. Dincolo de frumos interfața cu utilizatorul aplicația are un aspect minimalist aspect, care nu distrage deloc atenția de la muncă. Există și o versiune pentru iPhone și iPad.

Scrie

Preț: este gratuit.

Caracteristica acestei aplicații este suportul pentru evidențierea sintaxei. Previzualizarea documentului poate fi lansată apăsând ⌥ + ⌘ + P.

Cei mai buni editori profesioniști de Markdown

MultiMarkdown Composer

Preț: 379 de ruble.

MultiMarkdown Composer este un editor de text puternic care acceptă atât formatele Markdown, cât și MultiMarkdown, precum și sintaxa Markdown extinsă: tabele, note de subsol, ghilimele.

Mou

Preț: este gratuit.

În timp ce majoritatea editorilor Markdown sunt concepute pentru bloggeri și utilizatori ocazionali, Mou este conceput pentru utilizatorii mai avansați, cum ar fi dezvoltatorii web.

Caiete

Preț: este gratuit.

Caiete este aplicație desktop. Vă permite să stocați și să sincronizați notele cu versiunea iOS, permițându-vă să descărcați notele în orice moment. Notebooks acceptă formatul Markdown, vă permite să îl editați, să îl vizualizați și să îl convertiți în HTML.

amuzant mustacios 9 ianuarie 2011 la 22:14

Limbajul Markdown

  • Cameră de depozitare *

Acest articol oferă sfaturi practice la scrierea unui parser pentru limbajul de marcare Markdown. Până în prezent, pe internet există foarte puține informații despre această problemă.

Articolul va fi util celor care își creează propriul CMS și cadre de la zero.

Pe scurt despre limbaj

Dezvoltatorii Markdown și-au stabilit ca obiectiv să creeze un limbaj al cărui cod ar fi similar vizual cu rezultatul execuției sale. S-au luat drept bază regulile acceptate pentru proiectarea mesajelor de e-mail.

Iată un exemplu de cod:

antet
=========

Liste numerotate:
1. Primul paragraf
2. Al doilea punct
3. Al treilea punct

> Comentează
>> Comentează în comentariu

Puteți **evidenția o parte** din text.

Un astfel de cod va fi convertit în xHTML valid.

Sintaxa Markdown este, pe de o parte, mai ușor de învățat pentru utilizatorii necalificați din punct de vedere tehnic (spre deosebire de, de exemplu, codurile BB) și, pe de altă parte, produce cod xHTML de înaltă calitate, ceea ce nu poate fi spus despre diferitele WYSIWYG editori. Aceste beneficii fac Markdown buna alegere pentru motoarele de forum și CMS, unde utilizatorii trebuie să poată edita conținutul.

Până în prezent, există multe compilatoare pentru Markdown în diferite limbi. Dacă decideți să utilizați Markdown în proiectul dvs., puteți utiliza o soluție gata făcută (există link-uri mai jos). Dacă decideți să vă scrieți propriul analizator (de exemplu, în scopuri educaționale), atunci mai jos sunt caracteristicile pe care le puteți întâlni în timpul dezvoltării și sunt oferite sfaturi practice despre cum să le rezolvați.

Crearea unui compilator de limbaj

Markdown nu poate fi analizat de gramaticile fără context. Conține elemente lexicale sensibile la context. De exemplu, imbricarea structurilor este determinată de alinierea liniilor, ca în Python. Deci, utilizarea YACC și ANTLR în mod explicit nu va funcționa. Printre soluțiile la această problemă, am întâlnit următoarele:
  • Refuzați să utilizați generatorul de parser și scrieți parser-ul manual, folosind expresii regulate pe alocuri.

    Acesta este modul în care a fost creat parserul Markdown original în Perl și majoritatea celorlalte implementări. Dezavantajul soluției este performanța scăzută: în primul rând, din cauza utilizării expresii obisnuite, în al doilea rând, deoarece optimizarea manuală a parserului la nivelul pe care îl oferă analizatorul generat automat este de obicei foarte sarcină dificilă. În plus, dacă scrieți în limbaje imperative (PHP, Java, C++), atunci va fi foarte dificil să implementați și să depanați un parser auto-scris.

  • Utilizați un generator de parser cu suport încorporat pentru acțiuni și scrieți acțiuni care au efectul opus.

    Prin utilizarea acțiunilor încorporate cu efect opus, este posibil, de exemplu, să se analizeze alinierea unei linii date față de cea anterioară, simulând astfel reguli sensibile la context. Dezavantajul este că gramaticile fără context nu sunt destinate acestui scop, iar utilizarea efectului invers poate duce la erori în timpul analizării.

  • Aplicarea recursiva a analizatorului gramatical fără context.

    De fapt, mai întâi puteți împărți aproximativ întregul cod în blocuri separate (paragrafe, comentarii de același nivel), apoi le aplicați din nou același parser. Această soluție nu va duce la consecințe imprevizibile ca în versiunea anterioară și este mai corectă din punct de vedere ideologic, dar mai puțin eficientă din punct de vedere al performanței.

    Aceasta va fi probabil cea mai ușor soluție de implementat.

  • Preprocesează manual datele de intrare.

    Puteți împărți manual codul în linii și parcurgeți-le, înlocuind spațiile de la începutul fiecărei linii cu un caracter care indică deplasarea acestuia (la stânga sau la dreapta) față de cel precedent. Puteți gestiona imbricarea comentariilor în același mod. Apoi, matricea rezultată de șiruri poate fi lipită înapoi împreună și analizată printr-o gramatică fără context. Limbajul obținut după filtrare va fi fără context.

    Această soluție este comparabilă ca complexitate cu cea anterioară. În ceea ce privește performanța, ar trebui să fie în general mai eficient.

Ca o alegere de generator de parser pentru Markdown, în opinia mea, PEG este mai potrivit.

Etichete: design compilator, compilatoare, parser, markdown, markup, compilation, markup, cms, cms development, framework, programare, programare, limbaje de programare

  • Serghei Savenkov

    un fel de recenzie „rare”... parcă s-ar grăbi undeva