Avatar billede limemedia Nybegynder
05. februar 2003 - 11:13 Der er 17 kommentarer og
1 løsning

W3C complient kode fra MS contenteditable kode

Halløj,

Sidder og koder på noget CMS hvor jeg anvender MS contenteditable modellem som efterhånden er klassikeren. Det er ikke første gang og sikkert ikke sidste gang jeg har gang i dén komponent. Koden MS genererer er langt fra køn og slet ikke W3C complient - jeg sigter efter en 4.01 validering.

Hvad jeg har gang i er ala min tagster en funktion der renser denne genererede kode og formaterer det tilnærmelsesvist kønt, dog uden at ændre noget vitalt. Jeg har ledt efter en komponent i PHP der kunne dette men det nærmeste jeg kom var htmltidy der skal installeres på serveren - ikke ret portabelt.

Skal jeg opfinde den dybe tallerken igen eller sidder nogen med noget brugbart kode man kan bygge videre på eller optimere. Jeg stiller naturligvis det endelige resultat til rådighed for dem som har sådanne lyster. Eller sidder du inde med en viden, så du vil deltage i selve løsningen, er der da også mulighed for det.

/ Lars
www.ljweb.com

(der ikke er tilbage på E.)
Avatar billede nil.dk Nybegynder
05. februar 2003 - 11:16 #1
(jo du er)
Avatar billede limemedia Nybegynder
05. februar 2003 - 11:18 #2
(fast)
Avatar billede pelkjaer Nybegynder
05. februar 2003 - 11:31 #3
Hvis det bare er en 4.01 transitional validering du vil have, er der da ikke meget at komme efter.

alt="" skal addes til billeder og BorderColor=bla skal strippes fra tabeller.

<TBODY> og uppercase tags er møggrimt (efter min mening), men stadigt valid :)
Avatar billede avminarm Juniormester
05. februar 2003 - 11:44 #4
kan jeg lige stille et supplerende sprg? ok ;-)

Hvorfor er man så fokuseret på w3c? validitet - altså jeg mener at et billede ikke har alt"" er det ikke ligegyldigt? - jeg spørger af ren nysgerrighed.
Avatar billede limemedia Nybegynder
05. februar 2003 - 11:45 #5
quote "formatere det tilnærmelsesvist kønt"

aka, indryk, lowercase osv
Avatar billede pelkjaer Nybegynder
05. februar 2003 - 11:54 #6
Hmm..indryks er nok værre.
lowercase og tags du ikke vil have osv. kan du klare således (gør jeg selv)

function RydOp(str){
    var patternArray = new Array("STRONG","P","EM","UL","U","LI","OL","BLOCKQUOTE","H1","H2","H3","H4","H5","H6","TABLE","TBODY","TR","TH","TD","IMG","SRC");
    //Lav ovenstående om til lowercase
    for(var i=0;i<patternArray.length;i++){
        var openPattern = new RegExp("<" + patternArray[i] + "[^>]*>","g");
        var closePattern = new RegExp("</" + patternArray[i] + "[^>]*>","g");
        var openTag = "<" + patternArray[i].toLowerCase() + ">";
        var closeTag = "</" + patternArray[i].toLowerCase() + ">";
        str = str.replace(openPattern,openTag);str = str.replace(closePattern,closeTag);}
    //<hr> og <br> ordner vi seperat - således har vi også mulighed for xhtml
    str = str.replace(/<HR>/g,"<hr>");str = str.replace(/<BR>/g,"<br>");
    //Links
    var openLinkPattern = /<A\s/g;var closeLinkPattern = /<\/A>/g;
    str = str.replace(openLinkPattern,"<a ");str = str.replace(closeLinkPattern,"</a>");
    //Vi fjerner det vi ikke vil have
    var tagsPattern = /<\/?[^(\/?strong|\/?p|\/?em|\/?u|\/?ul|\/?li|\/?a|\/?ol|\/?blockquote|\/?h1|\/?h2|\/?h3|\/?h4|\/?h5|\/?h6\/?table\/?tbody\/?tr\/?th\/?td\/?img\/?src][^>]*>/g;
    str = str.replace(tagsPattern,"");
    //Ryd op i resten - dog ikke links
    var msPattern = /<[^a][^>]*:[^>]*>/gi;str = str.replace(msPattern,"");
    //Fjern tomme linjer
    var spacePattern = /\s*\r\s*\r/g;str = str.replace(spacePattern,"");
    //Fjern tomme tags
    var emptyPattern = /<[^\/>]*><\/[^>]*>/g;str = str.replace(emptyPattern,"");
    return str;
}
Avatar billede pelkjaer Nybegynder
05. februar 2003 - 11:57 #7
Dog er det vel oftest en fordel helt at fjerne muligheden for headings, font/farver osv., og istedet kun bruge fx. span tags udfra et stylesheet.
Avatar billede limemedia Nybegynder
05. februar 2003 - 12:19 #8
pel: nu er koden du giver godtnok js og med lidt velvilje kunne skrives på én eller to linier PHP
av: der findes flere browsere end MS :) vil man gerne være complient med de fleste er W3C et godt udgangspunkt
Avatar billede nil.dk Nybegynder
05. februar 2003 - 12:21 #9
av: for ikke at snakke om alle de mobile enheder, der efterhånden kan vise websider..
Avatar billede pelkjaer Nybegynder
05. februar 2003 - 12:24 #10
ljweb>>Så kan jeg ikke se problemet - en eller to linjer php er du vel mand for selv at klare..
Avatar billede limemedia Nybegynder
05. februar 2003 - 12:28 #11
pel: ja, der er sikkert exceptions og special cases som en anden er rendt ind i før mig som jeg ikke har på nethinden :)
Avatar billede avminarm Juniormester
05. februar 2003 - 14:25 #12
ok - takker for lektionen ;-) - jeg har bare undret mig over det et stykke tid!
Avatar billede nil.dk Nybegynder
05. februar 2003 - 14:29 #13
av >> Det er også et spørgsmål om at vi er flere og flere udviklere, der er trætte af at ingen overholder standarderne. At man før skulle kode sine websider i flere versioner, hvis de skulle virke i forskellige browsere og browserversioner... hvis alle holder standarderne og browserfirmaerne også gør... vil livet være meget lettere for os.

alt-parametern på img-tagget er vigtig, hvis du browser med billeder slået fra, fra en tekstbaseret browser, eller f.eks. fra en browser for blinde.
Avatar billede avminarm Juniormester
05. februar 2003 - 14:58 #14
nil.dk>> gode argumenter, men nu er jeg "hobby" programør, men vil meget gerne forsøge at overholde standarderne, jeg har suset rundt på w3c, men synes ikke rigtig jeg kan finde noget om hvad man må og hvad man ikke må.

f.eks. kan jeg ikke finde ud af hvorfor man ikke må have <form ....> inde i en tabel celle??
Avatar billede nil.dk Nybegynder
05. februar 2003 - 15:01 #15
av >>

Her er standarden HTML 4.01 : http://www.w3.org/TR/html4/
Her kan du validere din kode: http://validator.w3.org/
Avatar billede limemedia Nybegynder
05. februar 2003 - 15:06 #16
tror jeg lukker igen... den røde tråd er vist tabt *g*
(dont worry, regnede ikke med den helt vilde respons)
Avatar billede limemedia Nybegynder
05. februar 2003 - 15:06 #17
hjælper hvis man svarer...
Avatar billede avminarm Juniormester
05. februar 2003 - 15:08 #18
nil.dk>> jeg har suset lidt rundt der, men jeg kan simpelthen ikke finde ud af hvorfor man ikke må have <form ....> inde i en tabel celle?? - nu er dette bare et eks (selvom jeg gerne ville vide hvorfor - ved du det?), når jeg validerer noget kode får jeg at vide  - at det må man ikke og i beskrivelsen af fejlen bliver jeg ikke meget klogere ;-/
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester