Кіріспе

Кіршіксіз, қарапайым синтаксиспен таңбалау тілі. Жеңіл таңбалау тілі (LML), сондай-ақ қарапайым немесе адамға түсінікті таңбалау тілі деп те аталады, кіршіксіз, қарапайым синтаксиспен таңбалау тілі болып табылады. Ол кез келген стандартты мәтіндік редакторда оңай жазылуы және өзгертілмеген түрінде оңай оқылуы үшін жасалған. Жеңіл таңбалау тілдері құжаттың бастапқы нұсқасын да, соңғы көрсетілген нәтижені де оқу қажет болатын жағдайларда қолданылады. Мысалы, бағдарламалық қамтамасыз ету кітапханасын жүктеген адам құжаттаманы веб-браузерде емес, мәтіндік редакторда қарастыруды қалауы мүмкін. Мұндай тілдердің тағы бір қолданылуы – блогтар мен викилер сияқты веб-базалық жарияланымдарда деректерді енгізуді жеңілдету, мұнда енгізу интерфейсі қарапайым мәтіндік өріс болып табылады. Серверлік бағдарламалық қамтамасыз ету енгізілген мәтінді HTML сияқты жалпы құжат таңбалау тіліне түрлендіреді.

Тарих

Жеңіл таңбалау тілдері бастапқыда тек мәтіндік дисплейлерде қолданылған, олар әріптерді курсив немесе қалың етіп көрсету мүмкіндігіне ие болмағандықтан, осы ақпаратты жеткізу үшін бейресми әдістерді әзірлеу қажет болды. Бұл форматтау таңдауы табиғи түрде қарапайым мәтіндік электрондық пошта хабарламаларына көшті. Консольдік браузерлер де ұқсас дисплей конвенцияларын қолдануы мүмкін. 1986 жылы халықаралық стандарт SGML грамматика мен тегтерді пайдалану арқылы жеңіл таңбалау тілдерін анықтау және талдау құралдарын ұсынды. 1998 жылғы W3C XML – бұл SGML профилі, ол осы құралдарды жоққа шығарады. Дегенмен, төменде тізімделген тілдердің ешқайсысы үшін SGML құжат типінің анықтамасы (DTD) белгілі емес.

Түрлері

Жеңіл таңбалау тілдерін олардың тег түрлері бойынша жіктеуге болады. HTML (<b>bold</b>) сияқты кейбір тілдер басталу және аяқталу тегтері үшін ортақ форматты бөлісетін атаулы элементтерді қолданады (мысалы, BBCode [b]bold[/b]), ал нағыз жеңіл таңбалау тілдері тек ASCII символдарымен – тыныш белгілерімен және әріптер емес символдармен шектеледі, бірақ кейбіреулері екі стильді де араластырады (мысалы, Textile bq.) немесе кіріктірілген HTML-ға рұқсат береді (мысалы, Markdown), тіпті оларды арнайы элементтермен кеңейтуге болады (мысалы, MediaWiki). Көптеген тілдер жолдар немесе блоктарға, сондай-ақ мәтіннің қысқа бөліктеріне арналған таңбалауды ажыратады, бірақ кейбіреулері тек жол ішіндегі таңбалауды қолдайды. Кейбір таңбалау тілдері нақты бір мақсатқа арналған, мысалы, компьютерлік кодты құжаттау (мысалы, POD, reST, RD) немесе белгілі бір шығыс форматына (әдетте HTML немесе LaTeX) түрлендіру үшін жасалған, ал басқалары көбірек мақсатта қолданылады. Бұл олардың мәтіндік көрсетуге немесе деректерді серияландыруға бағытталғандығын қамтиды. Мәтіндік көрсетуге бағытталған тілдерге AsciiDoc, atx, BBCode, Creole, Crossmark, Djot, Epytext, Haml, JsonML, MakeDoc, Markdown, Org режимі, POD (Perl), reST (Python), RD (Ruby), Setext, SiSU, SPIP, Xupl, Texy!, Textile, txt2tags, UDO және Wikitext кіреді. Деректерді серияландыруға бағытталған тілдерге Curl (гомоиконды, бірақ JSON-ды да оқиды; кез келген объектіні серияландыруға болады), JSON және YAML кіреді.

Орындау ерекшеліктерін салыстыру

+ Имплементацияларды, әсіресе шығыс форматтарын салыстыру
Тіл Имплементациялар XHTML Con/LaTeX PDF DocBook ODF EPUB DOC(X) LMLs Басқа лицензиялар
AsciiDoc Python, Ruby, JavaScript, Java Man page және т.б. GNU GPL, MIT
BBCode Perl, PHP, C#, Python, Ruby Public Domain
Creole PHP, Python, Ruby, JavaScript Тәуелділік имплементациядан
Djot Lua (алғашқыда), JavaScript, Prolog, Rust JavaScript, PHP, Python, Ruby CC BY SA 1.0
Markdown Extra PHP (алғашқыда), Python, Ruby BSD стиль және GPL (екеуі де)
MediaWiki Perl, PHP, Haskell, Python GNU GPL
MultiMarkdown C, Perl OPML GPL, MIT
Org mode Emacs Lisp, Ruby (тек парсер), Perl, OCaml TaskJuggler, RSS, FreeMind GPL
PmWiki PHP GNU GPL
POD Perl Man page, қарапайым мәтін Artistic License, Perl лицензиясы
reStructuredText Python, Haskell (Pandoc), Java man, S5, Devhelp, QT Help, CHM, JSON Public Domain
Textile PHP, JavaScript, Java, Perl, Python, Ruby, ASP, C#, Haskell Textile License
Texy! PHP, C# GNU GPL v2 License
txt2tags Python, PHP Creole, AsciiDoc, MediaWiki, MoinMoin, PmWiki, DokuWiki, Google Code Wiki roff, man, MagicPoint, Lout, PageMaker, ASCII Art, TXT GPL

Сызық ішіндегі аралық синтаксисі

Әдетте курсивті және қалың мәтінді беру ретінде құжатталғанмен, көптеген жеңіл таңбалау процессорлары семантикалық HTML элементтерін – `em` және `strong` шығарады. Моносақтық мәтін семантикалық кодқа немесе презентациялық `tt` элементтеріне айналуы мүмкін. Аз ғана тілдер ерекшелік жасайды, мысалы, Textile, немесе пайдаланушыға шығысты оңай конфигурациялауға мүмкіндік береді, мысалы, Texy. LML кейде бірнеше сөзді белгілеу үшін өзгеше болады, олардың кейбіреулері таңбаларды сөздер арасындағы бос орындарды (инфикс) алмастыруды талап етеді. Кейбір тілдерде префикс және суффикс ретінде бір таңба қажет, ал басқаларында екі немесе тіпті үш еселенген таңбалар қажет немесе олардың екеуін де сәл өзге мағынамен қолдануға болады, мысалы, әртүрлі деңгейдегі баса назар. + Мәтінді пішімдеу синтаксисінің HTML шығысы: <strong>қатты баса көрсетілген</strong> <em>баса көрсетілген мәтін</em> <code>код</code> семантикалық <b>қалың мәтін</b> <i>көлбеу мәтін</i> <tt>моноғарышты мәтін</tt> презентациялық AsciiDoc *қалың мәтін* 'көлбеу мәтін' +моноғарышты мәтін+ Сөз шекарасы жоқ жерде пішімдеуді қолдану үшін операторларды екі рет қолдануға болады (мысалы, **b**old t**ex**t қалың мәтін береді). көлбеу мәтін `моноғарышты мәтін` BBCode [b]қалың мәтін[/b] [i]көлбеу мәтін[/i] [code]моноғарышты мәтін[/code] Пішімдеу жол үзілістерінде де жұмыс істейді. Creole **қалың мәтін** //көлбеу мәтін// {моноғарышты мәтін} Үш қырлы жақшалар nowiki үшін, ол опция бойынша моноғарышты болады. Djot *қалың мәтін* көлбеу мәтін `моноғарышты мәтін` Gemtext ```alt мәтін моноғарышты мәтін``` Алғашқы үш тегіс белгіден кейінгі мәтін – alt мәтін. Jira Formatting Notation *қалың мәтін* көлбеу мәтін моноғарышты мәтін Markdown **қалың мәтін** *көлбеу мәтін* `моноғарышты мәтін` семантикалық HTML тегтері қалың мәтін көлбеу мәтін MediaWiki '''қалың мәтін''' ''көлбеу мәтін'' <code>моноғарышты мәтін</code> көбінесе HTML Org режимі *қалың мәтін* /көлбеу мәтін/ =код= ~verbatim~ PmWiki '''қалың мәтін''' ''көлбеу мәтін'' @@моноғарышты мәтін@@ reST **қалың мәтін** *көлбеу мәтін* ``моноғарышты мәтін`` Setext **қалың мәтін** ~көлбеу мәтін~ `моноғарышты мәтін` Textile *қалың* баса назар @моноғарышты мәтін@ семантикалық HTML тегтері **қалың мәтін** көлбеу мәтін презентациялық HTML тегтері Texy !**қалың мәтін** *көлбеу мәтін*`моноғарышты мәтін` әдепкі бойынша семантикалық HTML тегтері, презентациялық тегтерді қолдау опциясы бар //көлбеу мәтін// TiddlyWiki''қалың мәтін''//көлбеу мәтін// `моноғарышты мәтін` ``моноғарышты мәтін`` txt2tags **қалың мәтін** //көлбеу мәтін// ``моноғарышты мәтін`` POD B<қалың мәтін> I<көлбеу мәтін> C<моноғарышты мәтін> Ішкі жиектелген мәтін де моноғарышты код ретінде көрсетіледі. Slack *қалың мәтін* көлбеу мәтін `моноғарышты мәтін` ```моноғарышты мәтін блогы``` WhatsApp *қалың мәтін* көлбеу мәтін ```моноғарышты мәтін```

Gemtext-те тікелей пішімдеу жоқ, моноғарышты мәтін (Gemtext контекстінде алдын ала пішімделген мәтін деп аталады) өз желісінде ашылу және жабылу ``` белгілеріне ие болуы керек.

Тақырып синтаксисі

Тақырыптар әдетте алты деңгейге дейін қол жетімді, бірақ ең жоғарғы деңгейі көбінесе құжат атауымен бірдей болуы мүмкін, ол сырттан белгіленуі мүмкін. Кейбір құжаттамалар деңгейлерді бөлімдердің түрлерімен байланыстыруы мүмкін, мысалы, бөлім, тарау, бөлімше, мақала немесе абзац. Көптеген LML форматтары тақырыптар үшін екі стильдің бірін қолданады: Setext сияқты астын сызу немесе atx сияқты жол маркерлері, немесе екеуін де қолдайды.