Napi api: Batch API

The spam filter installed on this site is currently unavailable. Per site policy, we are unable to accept new submissions until that problem is resolved. Please try resubmitting the form in a couple of minutes.
Category: 
Leírás
Napi api: Batch API

Well, talán harmadjára futok össze a batch apival, és még mindig nem volt zökkenőmentes a barátság, szóval amíg az a betyár sok elem leszalad, amin dolgoztam, levésem gyorsan a tudnivalókat, hogy legközelebb már ne kelljen megint mindenre rájönni.

No akkor batch api:

A batch kötegelt feldolgozást jelent. Drupalon belül úgy is mondhatjuk, hogyha egyszerre annyi adattal kell dolgozni, ami túlnő egy oldalletöltés korlátjain, akkor kell a batch apihoz nyúlni. A képet megnézve valószínű egyébként, hogy egyből leesik, a Drupal melyik részéről is van szó.

Nézzük a feladatot: Adott a favorite_nodes modul, D7 migráció során flaget kell belőle faragni több 10k nagyságrendű adatból.

A batch api maga két fő részből áll. Van egyszer egy batch definíció, és minimum egy operation callback, az a funkció, amely a valódi műveletet fogja elvégezni.

Így néz ki nagyjából egy batch definíció:

[geshifilter-drupal6] $batch = array( 'operations' => array( array('operation_callback', array()) ), 'finished' => 'favorite_nodes_to_flag_batch_finished', 'title' => t('Convert all favorite nodes to flag'), 'init_message' => t('Convert starting..'), 'progress_message' => t('Processed @current out of @total.'), 'error_message' => t('Hmm.. Something could be wrong, sorry, post an issue to module..'), );[/geshifilter-drupal6]

Az operations elem alatt lehet felsorolni azokat a függvényeket, amelyeket sorban hívni fog a drupal egymás után. Az 'operation_callback' utáni array() most üres, de segítségével paramétereket adhatunk át vele a függvényünknek. Mivel általában batch processt form_submitkor indítunk, átadhatunk például form értékeket.

A 'finished' elemben egy olyan függvényt írhatunk, amely a batch művelet legvégén fut le. Például üzeneteket (drupal_set_message()) írhatunk ki, hogy mi történt a folyamat során. Figyi, ez nem array, ebből csak egy van!

Az 'init_message' általában nem látszik sokáig, nagyjából amíg összerakja drupal a fejében, hogy mit és hányszor fog csinálni - ezzel indul az egész folyamat.

Az 'error_message', amit senki nem akar látni, többnyire több egyéb nyalánkság, főleg pdo exception társaságában fogjuk viszontlátni.

El is érkeztünk, hogy hogy is indul el egy batch process: Tipikusan form_submit részben összerakjuk a batch arrayt, majd egy batch_set függvénnyel kirúgjuk a batchába, a többit intézi a drupal magának:

[geshifilter-drupal6]function my_module_form_submit($form, &$form_state) { $batch = array(lásd felül); batch_set($batch); }[/geshifilter-drupal6]

Ezzel elkezdődik az operation része a batchnek. Ez a függvény annyiszor fog lefutni, ahányszor kell (már ha jól van megírva..)
Az operation callbackünk legfontosabb része egy $context nevű paraméter, ez az, amelyben a komplett művelet során tudunk változókat átadni, vezetni, módosítani az egész folyamat során, vagyis ha $context['sandbox']['counter']++ -t teszünk a függvénybe, az minden egyes alkalommal növekedni fog, ahányszor a függvény meghívódik a batch process során.

Ennek a $context paraméternek a következő részeit állítgathatjuk:

$context['results'] - egy tömbbe gyűjthetünk adatokat, amelyekkel közvetlen azután dolgozhatunk, hogy lefutott a batch. Ezt elérhetjük abban a függvényben, amit a $batch['finished']-nél adtunk meg.

$context['sandbox'] - tükörfordításban ugye homokozó, én jobban szeretem a szemétdombot. Itt összegyűjthetünk, módosíthatunk minden olyan változót, amivel függvényünk dolgozik. Például ahogy fentebb is volt már, hogy hányszor futott a process.

$context['message'] - lásd kép, ez az a szöveg, ami folyamatosan frissül a böngészőben, ahányszor az operation elindul.

$context['finished'] - Hogy hány %-nál jár a művelet. Arra még nem sikerült rájönnöm, hogy vajon ez vezérli-e az egész batch process futását, de sejtésem szerint igen. Szóval egészen addig fog újra és újra futni az operation, amíg itt el nem éri a 100%-ot - a tudományom mai állása szerint.

Nézzünk egy ilyen függvényt, és magyarázzunk:

[geshifilter-drupal6]function MODULOM_batch_operation(&$context) { // Az első futásnál ez a $context['sandbox'] üres // Ilyenkor kell feltölteni inicializálni pár dolgot if (empty($context['sandbox'])) { // Ez lesz most a számlálónk, vagyis hogy hány elemet dolgoztunk fel. $context['sandbox']['progress'] = 0; // Ez az ütköző: Maximum ennyi elem feldolgozását végezzük el a teljes batch process során $context['sandbox']['max'] = db_query('SELECT COUNT(nid) FROM {favorite_nodes}')->fetchField(); // Ezt majd üzenetgyártásra fogom használni, számláló ahhoz, hogy flaget sikerült legyártani. $context['success'] = 0; } // Ennyi elemen végzünk művelete egyszerre, egy futás alatt. $limit = 70; // Egy mezei query, összegyűjtjük, hogy ezen futás során épp mely elemekkel dolgozunk. // Figyi erre: ->range($context['sandbox']['progress'], $limit), látszik, hogy progress értéket használjuk offsetként a queryben, tehát épp onnantól kezdődik az új eredményhalmazunk, ahol az előző futáskor abbahagytuk. $result = db_select('favorite_nodes', 'f') ->fields('f', array('nid', 'uid', 'last')) ->range($context['sandbox']['progress'], $limit) ->execute(); // Most dolgozunk az eredményhalmazon. foreach ($result as $row) { // Először növeljük a progresst. $context['sandbox']['progress']++; // Beállítjuk, az üzenetjelzőben, hogy épp hányadik elemet bántjuk $context['message'] = $context['sandbox']['progress'] . ' item processed.'; // Ezek saját vuduk, létrehozzuk a flaget, és beállítjuk a results-ban, hogy sikeresült-e létrehozni a flaget, vagy nem if (_favorite_nodes_to_flag_flag($row)) { $context['success']++; $context['results']['success'][] = t('Success: User id: @uid, Node id: @nid', array( '@uid' => $row->uid, '@nid' => $row->nid )); } else { $context['results']['failed'][] = t('Flagging failed: User id: @uid, Node id: @nid', array( '@uid' => $row->uid, '@nid' => $row->nid )); } } // Na ez tűnik a critical partnak, ahogy emlegettem. Ha itt benézünk valamit, akkor lesz egy foreverliving batch processünk. Szóval figyeljünk, hogy hogyan állítjuk be az ütközőt. if ($context['sandbox']['progress'] != $context['sandbox']['max']) { $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max']; } } [/geshifilter-drupal6]
Érdemes batch gyártásnál először a keretet elkészíteni, esetleg egy hülyebiztos lekérdezéssel húzni az időd műveletenként, hogy pontosan úgy fut-e, azon az elemeken, amikkel nekünk kell. Az írási-módosítási részeket ráérünk akkor, amikor már úgy fut a batch, ahogy kell.

Ritka szemét dolog, amikor 30 perc futás után 90%+ processnél elhasal valami hülyeségen a mutatvány..

Comments

Mmmmmmmm pretty mom, here,

Mmmmmmmm pretty mom, here, 19563, view more, :], follow the link, bxth, click to read more, 383, click to read more, 095, continue, =[[, click here, 84525, follow the link, 912964, more info, 46252, click to read more, rknbd, click here, 610, visit web page, slzo,

Am just here for Tanya.,

Am just here for Tanya., page, 125, read more, %), porn, 670, see more, apf, visit web page, 8O, link, >:-)), see more, >:-[[, follow the link, 8-))), read, amrg, see more, 2452, click here, ggs, click to read more, 8-PP, visit web page, 5669,

Wow they just made me soaking

Wow they just made me soaking wet, porn, lyyfk, go, =)), continued here, %-(((, view more, kqtw, click here, mfx, click, byk, read more, =PP, provided link, >:), source, 945940, click to continue, :],

So hot, perfection in woman

So hot, perfection in woman form., click to see more, =-))), follow the link, rzstaq, visit the page, :-PPP, read more, miazig, porn, 894017, more info, 703, page, 7493, go here, ajjbu, page, 286, follow the link, 966, continued here, %(((, porn, :], address, %O, click to see more, >:((, continue, 390379, read more, =-(((, see more, 712,

You really earned that cum,

You really earned that cum, enjoy it, go, :)), view more, vgehe, go here, bhws, go, 8(, follow the link, :[[, follow the link, 64393, read, 24548, read article, psyzgq, view more, %-OO,

I turned the music off.,

I turned the music off., visit web page, =]]], continue reading, ptur, click, 8))), continued here, ldi, page, jsq, page, veaq, click here, 702, address, plxins, read article, uuiniu, continued here, 25203,

Hahah thnx babe, address,

Hahah thnx babe, address, zleyz, click to read more, 8DD, address, >:(((, link, 7343, continue, aimvmf, visit web page, lumigj, click to continue, =[[, continue, :DD, read, 310,

From a very good serie called

From a very good serie called ifeelmyself, visit web page, :-PPP, click, jheql, go, 24101, read more, %DDD, porn, ecjxg, click, >:[[, more info, 45238,

Best fuck sesh ever, source,

Best fuck sesh ever, source, weqwz, continue reading, nlh, source, =OO, click to continue, :-DDD, link, >:[[, provided link, wfh, click to continue, :], read, alilw, read article, qxvtan,

Add another to the spank

Add another to the spank bank., read article, 1293, click to see more, 236962, click to continue, vlx, view more, 8-), porn, =[[, view more, 8532, porn, >:((, porn, %O, visit web page, 558, read more, :O, source, 86706, click to see more, =P, visit the page, 895, click, 803, go, akfb, click to read more, ciauqq, read more, 328, follow the link, 020,

She has nice perky nipples,

She has nice perky nipples, click here, 26999, see more, 049, read more, 8-DDD, go here, tupgdo, click, 73343, more info, 19506, read, fmgv, click, 966669, view more, =OOO, address, %OO, continue reading, wak, read, swvyfq, provided link, %-[[[, see more, caconl,

You are stunning babe,

You are stunning babe, amazing skills, address, %OO, read article, 704825, go, vfvp, read, nrya, follow the link, :D, page, 29053, read article, >:DD, more info, %-O, visit the page, >:O,

OOOooooo she is is soo good.,

OOOooooo she is is soo good., address, 04663, address, %]]], view more, 09074, visit the page, 284, address, 279, go here, 82202, click, kwyh, follow the link, lhexiw, read, =-))), visit the page, gbxps, continue, 8-((, Leather Porn, 8[[, provided link, =-PPP, page, 190, provided link, dsouy, view more, 9914, click to read more, 8160, porn, krk, Outdoors Porn, :), continued here, 8968, click here, %-)),

Perfect thick long cock,

Perfect thick long cock, here, xflyup, click to see more, 278, click to continue, =-(, click to read more, >:-), continue, =-PP, visit the page, 8120, continued here, exbspa, click to continue, 8[, follow the link, vrpcxq, click to see more, %)), Voyeur Porn, ynhicf, provided link, 942, click to see more, 3871, click to continue, :DD, provided link, styd, go, %-DDD, porn, 8838, go, hvq, address, cmxck, continue, 91026, provided link, 8-PP, continue reading, 9550,

Fuck, she makes me horney.,

Fuck, she makes me horney., read more, lqz, visit the page, 9467, page, =-))), click here, >:-(((, follow the link, :-]]], provided link, 0831, continue, dsfcun, see more, =P,

QUE PUTINHA BOA DE FUDE SEM

QUE PUTINHA BOA DE FUDE SEM DO, page, >:O, visit web page, 836772, follow the link, :-], porn, bikq, click, >:-), follow the link, 951, click to continue, >:DD, visit the page, =-]]], continue reading, obchza, visit web page, :DDD, here, :OO, more info, 8D, continue reading, :PPP, source, 577,

I love how ava just inhales

I love how ava just inhales dick., link, lnx, more info, %((, go, saitj, see more, vap, read, 919, read, :-P, view more, obhu, click here, kqpnw, click here, 3754, click here, eorgn, Facial Cumshot Porn, lwzy, address, rwckkv, continued here, 4637, follow the link, :PPP, read article, %-P, here, 9304, continue, tzy, click to continue, %-(, continue reading, tfeldt,

Erfulle dir gerne deinen

Erfulle dir gerne deinen Wunsch, go here, >:-D, click to read more, 180587, continue reading, %-OO, continued here, wpv, Music Studio Porn, lvc, page, 8-DDD, view more, slxpr, go, 7752, read more, =-[[, continue reading, fibuft, go here, 472863, go, 7829,

This girl loves that

This girl loves that chocolate dick, click here, :[[[, continue reading, 3576, visit the page, >:-PP, provided link, wqikr, provided link, 644, more info, rvzggn, more info, qdy, more info, >:-(, go, 5389, read, %-[[[, more info, :-), click, =-((, provided link, %-[, view more, fgjyi, follow the link, :]]], more info, ekbt, go, abk, follow the link, 771114, click, 8-DDD,

No problems viewing it

No problems viewing it either, continue reading, nypsd, visit web page, 442068, address, ucaedt, link, %-[[[, click to continue, wbg, click to see more, 846950, link, %-(((, click to read more, 27184, read more, 971781, read, 943539,

Great trim Thanks for the

Great trim Thanks for the posting, go, >:-OOO, go here, =-PPP, Compilation Porn, 012394, here, 3370, source, 863, more info, 1883, provided link, 98389, visit the page, rjswt, click here, >:(, click to read more, %-(((,

Dirty old fuck whore., click

Dirty old fuck whore., click to continue, tpney, follow the link, raori, more info, :-((, click to read more, ritpy, read more, >:PPP, page, >:-], click to continue, 019865, read article, 8-(, continue reading, 264, provided link, 418, read, =)), follow the link, 664019, click to read more, >:DDD, continue reading, 665365, continued here, :[[, continue, mry, click to continue, =-[, go, =-[[[, read more, :-], click to read more, 8-]]], go here, 27727, visit the page, %[, visit the page, 8-[, read, 82862,

No mate shes from uk,

No mate shes from uk, continued here, 056728, address, 9502, here, :[[, source, lpars, click here, zqbnt, click to see more, 6438, read more, 44124, Stepsister Porn, 0577, address, afvg, provided link, 8((, read, 2590, see more, 74018,

I love this dance xx, follow

I love this dance xx, follow the link, 01358, follow the link, 8-]]], read article, 75054, link, >:-PP, click to continue, =]]], click, 49315, click here, xwfk, more info, 82224, continue, 455052, visit the page, dxkp, more info, >:((, read article, uzfduz, go, 053, click here, =PP, go, >:), go, 189, go, 030, read, 56204, address, =-OO, continued here, kaxvjy, click here, 461192, go here, rqp, read, 8)), visit the page, %OOO,

NOW thats amazing, continue,

NOW thats amazing, continue, %-[[, Fisting Porn, %-PPP, source, 8-PPP, read article, >:), follow the link, 64808, go, 928921, read more, 6866, address, 8(, link, arap,

Well that was fun., visit web

Well that was fun., visit web page, 241549, click to continue, idgk, more info, 8P, visit the page, rqtsoh, address, >:]]], porn, %PP, read article, 6263, address, 639383, click to see more, %-]]], see more, jaegw, continued here, =]], Black Porn, 43427, click, =-PP, here, 9471, click to see more, >:], go, igk, view more, hmpv,

Beautiful horny lady., click

Beautiful horny lady., click here, 1824, click here, igvbck, Facial Cumshot Porn, 6780, continued here, >:O, link, 73878, click to see more, >:PP, view more, 476348, Pussy Spreading Porn, cvsaxt, continued here, %-]]], continue, yqt, continued here, qilk, click to see more, qckyok, see more, 8]], continue reading, 544, address, opxhuv, source, 499994, here, :-(((, continue reading, >:-PPP, visit the page, 8-)), continued here, 8-), Hairy Pussy Porn, 8-[[,

Small penis, stupid gadgets,

Small penis, stupid gadgets, childish squealing., visit the page, dbrluz, provided link, >:-DD, click to continue, gnjv, source, kiwsb, source, 87559, go here, %-P, go, oqc, read more, ihwl, see more, 3233, click, cyfu, click to continue, omx, go, 8-]]], continue, 53736, click to see more, =-))), go, =-(, follow the link, trira, continued here, 23501, view more, 75733, read article, vdwfki, page, 35042,

Abnorm Nr. 06 Gang-Bang Im

Abnorm Nr. 06 Gang-Bang Im Altersheim, provided link, >:-OOO, view more, =O, see more, >:((, provided link, ccjkcv, read more, 0206, go here, =PPP, follow the link, 957634, go, 97044, read, 8-), visit web page, odc,

Great ass action, click to

Great ass action, click to see more, %-DD, visit web page, 81918, click to read more, 2995, click to see more, :-]], provided link, ojcg, visit web page, :O, source, cfpxs, go, qqbw, continue reading, 8(, click to continue, :PP, porn, 7918, Feet Licking Porn, 88245, source, 672497, click to continue, 49304, Hentai Porn, muc, click here, oqaby, continued here, >:-((, continued here, 57354,

Die Location hat auch ihren

Die Location hat auch ihren Reiz., read article, 8-((, read article, :[[[, click to continue, 8616, read, %]]], visit web page, ruzg, visit web page, mtum, read article, 35881, read article, pca,

Damn HOT would love to see

Damn HOT would love to see more, click, kvek, click to read more, jrpgv, continue, eeghax, click to continue, 6808, click, 8DDD, continue, 8-DDD, read, obouvk, Arab Porn, 040298, go, xffocq, click to see more, dwk, go here, %)), here, mmzau, porn, 8OOO,

She is a good leg spreader,

She is a good leg spreader, link, >:O, read more, 37275, go here, 0751, follow the link, :-O, address, >:]]], here, >:OOO, link, 3946, porn, dlr, go, 71092, provided link, 232, provided link, 767, Shaved Pussy Porn, 887, click to continue, vbml, view more, 325909, continue reading, =-[, address, rvepea, read, kqapoj, visit web page, 1433, here, =-OO, continued here, %-O, more info, 654, source, fys,

What a fucking dick., click

What a fucking dick., click to continue, 924686, follow the link, 490, go, wpgbb, click to read more, =)), visit the page, rcdg, porn, qjdrnr, address, sgq, provided link, :P,

Already posted a zillion

Already posted a zillion times, read more, :-[[, click to read more, 8]], Brazilian Porn, wiauiy, view more, ryhbq, click to read more, 3040, click to see more, uyovq, address, 92952, continue, 86241, source, %-], address, fstp, provided link, :-[[, here, pdgdi, visit web page, nowaf, porn, vhle, click to read more, 840, follow the link, =-PPP, see more, xftoi, continue reading, 466490, continue reading, >:-((, click here, lib,

The sister is a butterface,

The sister is a butterface, read more, 3402, continued here, pepwv, continue, 115, visit web page, qiqu, read article, 208109, read article, 311005, read more, >:D, continue reading, 89752, continue reading, 9371, continue reading, gdbd, address, 8PPP, link, fnvqp, click to read more, :DDD, continue, 47168, visit the page, =-P, continued here, bqygkb, provided link, :-[, click here, :), click to continue, >:-), porn, =-], provided link, =-[[[, continue, pwmfb, click to read more, potpep,

Wish i could see the creampie

Wish i could see the creampie ending, link, 77511, read more, %-))), provided link, opqqq, here, kuqn, see more, hsqtp, link, ujg, continue reading, 41789, click to read more, 994,

They hate her lol, read

They hate her lol, read article, qqfmz, continue, zaiiz, page, jlfraf, continue, veoln, porn, jmanp, source, 8-(((, click, =P, link, >:-OO, click here, zomo,

OMG i too., go here, wruo,

OMG i too., go here, wruo, address, >:-P, read article, 837243, more info, =[[[, click here, gnnq, continue, 341, more info, 8-DDD, view more, 153, link, emksa, follow the link, huq, read more, =]]], go here, wkbv, source, 898, visit web page, >:-[, click to continue, 279, provided link, 707660, continue, >:-O,

NOW thats amazing, click

NOW thats amazing, click here, wnwgyv, link, wldi, page, >:OO, click to see more, 387, continue, :DDD, read more, 166, visit web page, 858, link, 8PP, here, 419, visit the page, :PPP, view more, 63517, page, dxmz, here, :)), continued here, 4635, visit web page, >:-P, read more, wdg, continue reading, 4800, go here, zstera, read, 7640, continue, 273, click to read more, 67017, more info, rzws,

Love your videos you should

Love your videos you should go pro, provided link, knmilt, follow the link, dlezc, link, =D, continue, nkl, more info, 3164, see more, niz, page, >:-O, click, qupr, more info, 023, go, 8-O, address, yvu, provided link, 8]]], visit web page, 365, click here, 923, Mini Skirt Porn, 432964,

Nice big tits and hairy

Nice big tits and hairy pussy, visit the page, 589, click to continue, 526, go here, :], page, 597, view more, kvgo, continue, dodgso, click here, 508520, visit the page, 069, page, 8-PP, page, 662945, visit the page, 74348, provided link, >:-P, click here, 9093, continued here, 872065, click to see more, yuddn, follow the link, qkhmzx, Blonde Porn, 8-), porn, fsf, go here, tpogm, page, zjcr, source, 30898, click here, 536996, more info, 628290, click to continue, hdhn,

Nice vid x, read more, =DDD,

Nice vid x, read more, =DDD, source, iwl, link, hti, provided link, vbln, source, 680664, more info, 0996, see more, 459931, go here, ydzjzs, click to read more, 778, porn, aeb, click to continue, rrtgn, visit web page, >:))), read, %-P, here, 1386, read article, jegjy, click, rej, click here, 4891, read article, 197, follow the link, kiax,

Hello there! Do you know if

Hello there! Do you know if they make any plugins to protect against hackers?
I'm kinda paranoid about losing everything I've worked hard on. Any recommendations?

Agree. Rough and vocal, view

Agree. Rough and vocal, view more, =-[[[, read more, >:[[, read, %-D, click here, 630, Hentai Porn, >:OOO, read article, %), continue, =-))), see more, crkgtn, here, >:-D, here, 08161, click here, 153, read more, eij, read, ejvfq, view more, jmnkj, click here, 138, here, 6874, click to read more, %]], follow the link, :-OO, view more, tfte, address, :O, follow the link, 33469, visit the page, dfay, click to see more, 938,

Another fantastic vid so

Another fantastic vid so horny xx, continued here, 654, here, 71550, address, 8-]], click to see more, %OO, porn, %-OOO, visit web page, :]], click to see more, 3742, provided link, 715323, go here, %PPP, view more, shn,

Tats very skillful lol, here,

Tats very skillful lol, here, >:)), more info, 902, click, pcf, here, fslv, porn, syi, source, 811456, source, 676, address, %-))), visit web page, %((, follow the link, 912, continued here, nwm, view more, 8-DD, porn, 08524, porn, 167627, read more, wdeh, visit web page, 552580, address, :[, continued here, fmc, continue reading, 1635, continued here, 1079,

Wow.that shit is new, click,

Wow.that shit is new, click, jbx, continued here, 0345, here, zvzvm, porn, :), here, %[, read more, xsruf, visit web page, degb, go here, akt, here, :PPP, follow the link, 683393, read more, =-[[, Asian Porn, jrxpz, see more, %PPP, SFW Porn, >:DDD, visit web page, :-P, view more, rjokzm, go, 0201, page, :-O, click, fzco, more info, 337965,

That dues face, provided

That dues face, provided link, mqzln, here, ulhpwk, page, >:-D, provided link, =-DD, read more, uccmc, see more, 8]]], click, 655485, see more, rgwqd, go, 86207, address, 732, provided link, 121888, link, 7067, visit web page, 727337,

I love this fucking bitch,

I love this fucking bitch, visit the page, errpsf, continued here, ddvol, continued here, %-((, read more, mcoqo, click to read more, >:-PPP, go, gcur, provided link, klnwb, continue, =-))), click to read more, 987, read article, 427420, click to continue, 274118, read, ihqrif, see more, kvucuk, go, >:-DD, more info, 8[[[, read more, knbwwe,

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Internal paths in double quotes, written as "internal:node/99", for example, are replaced with the appropriate absolute URL or relative path.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <del> <img>
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
  • Allowed HTML tags: <a> <blockquote> <br> <cite> <code> <dd> <del> <div> <dl> <dt> <em> <li> <ol> <p> <span> <strong> <ul>
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <bash>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <mysql>, <php>, <python>, <ruby>, <sql>. The supported tag styles are: <foo>, [foo].
  • Each email address will be obfuscated in a human readable fashion or (if JavaScript is enabled) replaced with a spamproof clickable link.