[javascript] keine-code-tags-warnung und auto-code-tags
-
also codes in postings heben sich ja relativ gut vom fliestext ab
z.b. fangen sie meist
#include an
enden mit den letzten }
usw.
hatt nicht jemand lust fürs neue forum ein javascript zu schreiben welches das posting untersucht und eine warnung ausgib fals keine code-tags benutz werden
und falls der user es wünscht soll es die code tags automatisch setzen
-
sicher doch ..
ich gebe hiermit die aufgabe an "Shade Of Mine" weiter der sie wie versprochen mit herzenslust annimmt
also ich kann leider aus zeitgründen nicht sonst gerne !
-
ich wuerde nur ne warnung schreiben - denn mein code ist sicher nicht fehlerfrei:
var reg=posting.match(/[\n\r]#[\S\s]*[\n\r]\{[\S\s]*;[\S\s]*[\n\r]\}/mg) if(reg) { alert("sie haben vermutlich C++ Code gepostet - verwenden sie bitte Code Tags!"); //alert("code:\n\n"+reg[0]); //debug }
posting ist ein string der das posting beinhaltet :p
Der Code schaut ob er ein
# am Zeilenanfang findet und ob danach irgendwann ein
{ am Zeilenanfang kommt und ob danach irgendwann ein
; kommt und ob danach irgendwann ein
} am Zeilenanfang kommtBug: wenn # erstes Zeichen ist, wird das nicht erkannt (dirty bugfix: \n am anfang des strings einfuegen)
Bug: wenn es keine preprozessor direktive gibt, wird der code nicht als code erkannt. Nur nach { und } zu suchen ist IMHO n bisschen zu unsicher. Vielleicht faellt dir noch n merkmal ein, dass C/C++ code haben muss.
kleine tests auf Opera 7, IE 6 und Mozilla 1.4a verliefen erfolgreich.
du solltest das aber noch ordentlich testen!!
-
die mods sollten das lieber per hand machen
-
sehr schön,
man könnte noch nach class, template, for, if, main, typedef, char und co. suchen also den standard keywörter
funktionen lassen sich auch gut matchen entweder eine funktion hat void als rückgabe wert oder zumindestenz ein returnaber das was du schon gemacht hast sollte reichen
für den auto-code-tag-button sollte man nach tabs oder 4 (bzw. 3) leerzeichen kucken
-
gib mir ein muster nachdem ich suchen soll und ich schreib dir die passende regexp dazu - nur zum selber nachdenken bin ich zu faul :p