Darmowy edytor WYSIWYG generujący poprawny kod

0

Szukam darmowego edytora WYSIWYG, generującego poprawny kod dla XHTML 1.0 Transitional. Chcę go wykorzystać na stronie, która będzie się utrzymywać z reklam. Tak więc wydaje mi się, że musi to być coś, co umożliwia darmowe wykorzystanie w projektach komercyjnych.

Dużo tych edytorów w necie. Dobry jest chyba CKEditor, ale zauważyłem, że ma płatne licencje... TinyMCE kiedyś podobno robił niezły syf w kodzie - nadal tak jest? Jak u niego z licencją?

PS. Nie musi to być coś rozbudowanego. Ważne, żeby było intuicyjne i umożliwiało pogrubianie, kolorowanie tekstu, listy

  • i
    1. itp. Mile widziana obsługa tabel.</p>
0

Ostatnio jak sprawdzałem TinyMCE, to generował wystarczającą ilość syfu, by dokumenty nie były poprawnymi dokumentami HTML5. Zagnieżdżenia elementów były OK, ale śmiecił jakimiś starymi atrybutami. Niestety nie pamiętam jak to się ma do XHTML-a 1.0 Transitional, bo -- szczerze mówiąc -- chyba nigdy podczas mojej x-nasto letniej krucjaty webdeveloperskiej tego doctype'u nie użyłem (?).

Pogoogluj i sprawdź sobie jeszcze CLEditor oraz YUI Editor. One chyba generują w miarę przyzwoity kod, ale ten pierwszy z tego co pamiętam jest komercyjny...

0

XHTML-a 1.0 Strict też nigdy nie użyłeś?

0

Stricta używałem :)

0

W zasadzie te standardy nie różnią się w jakiś olbrzymi sposób. Testowałeś Stricta w TinyMCE?

0

Testowałem, tylko -- kurczę -- to było wszystko dość dawno temu. Od kilku lat (nie wiem, czy 2 czy więcej) lecę na HTML-u 5, a od strony backendu to albo jakiś komercyjny edytor, albo własnej roboty, albo cholera wie co, ale ja praktycznie za wybór edytora nie odpowiadam.

XHTML-a Strict użyłem na pewno na stronie, gdzie w CMS-ie był TinyMCE. Jakoś na pewno to działało, tzn. błędów nie było, ale nie dam sobie głowy uciąć jak to osiągnięto. Tzn. może jakoś ręcznie filtrowano ten kod z Tiny. Projekt, który kojarzę, był witryną agencji interaktywnej i równie dobrze ludzie mogli wstawiać w edytor kod XHTML zamiast używania funkcji WYSIWYG.

No i jedno jest pewne: jeśli Strict działał, to i Transitional też. Z drugiej strony, jeśli Strict nie działał, to Transitional i tak mógł działać ;).

Zobacz sobie np. to live demo TinyMCE:
http://tinymce.moxiecode.com/tryit/full.php

Po zapostowaniu kodu i wklejeniu na http://validator.w3.org, "prawie" się waliduje jako XHTML Strict. Są dwa głupie błędy, ale nie w kodzie zwróconym przez edytor. Więc wygląda na to, że obecna wersja TinyMCE generuje poprawny kod dla XHTML-a Strict, a więc i jako XHTML Transitional powinno działać.

0

Dzięki za odpowiedzi. Jutro jak znajdę czas to potestuję TinyMCE. Tylko czy będę mógł go legalnie używać na stronie, która zarabia na reklamach? Będzie dostępny nie tylko dla administracji, ale również dla użytkowników.

0

Przeczytaj licencję ;). Jestem przekonany, że tak, ale moja opinia oczywiście nie ustanawia legalności takiego przedsięwzięcia.

0

Trochę mnie to bawi że niektórzy developerzy wolą masturbować się validatorem W3 zamiast po prostu zadbać żeby wszystko zadziałało w praktyce... Co przeglądarka to inne zachowanie w różnych sytuacjach, zgodność miejscami kuleje.

0

Ano kuleje. Ale mi to jakoś nie przeszkadza w uzyskiwaniu kodu, który działa ORAZ jest zgodny ze standardami, a także waliduje się w walidatorze W3C (który, nawiasem mówiąc, wcale taki dobry nie jest).

W przypadku Tiny problemem są te śmiecie, które to ustrojstwo zawsze potrafiło wygenerować. Jak ostatni raz sprawdzałem, generowało toto sporo niepotrzebnych, prezentacyjnych atrybutów -- wycofanych z nowych wersji HTML-a. Te atrybuty nie są mi do niczego potrzebne. Edytor także wcale nie musi ich dodawać -- bo nie wszystkie edytory generują aż taki crap. Więc to po prostu mankament Tiny'ego (przynajmniej starszych wersji) i tyle. Jeśli można, to lepiej używać softu, który tego mankamentu nie ma.

0

Podoba mi się Twoje podejście bswierczynski, bo mam dokładnie takie samo.

Jest jeszcze inna kwestia - warto dbać by kod był optymalny, "czysty" i zgodny ze standardami, bo wyszukiwarki internetowe mogą na to zwracać uwagę. Dlatego jeśli edytor nie robi błędów i w dodatku potrafi tworzyć semantyczny (i na takowy poprawiać obecny) kod to już w ogóle jest wypas :)

W sumie sam bym chętnie napisał własny edytor (bo nie mam wielkich potrzeb), ale obecnie nie mam na to czasu, dlatego szukam tymczasowego rozwiązania.

0

Koniecznie WYSWYG? Nie lepiej użyć jakiegoś LML'a?

0

A co to jest LML?

0

Z zgodnością z W3C xHTML jest mały problem, gdy chcesz zmienić kolor czcionki, powiększyć itp. Dlaczego? Edytory bazują na https://developer.mozilla.org/en/Rich-Text_Editing_in_Mozilla#Executing_Commands
Nie wiem czemu, ale jest to metoda nie odświeżona - nadal używają font, chociaż mogą span.

Stworzyłem właśnie 2 tygodnie temu własny edytor WYSIWYG do swojego projektu -
http://code.google.com/p/html-5-wysiwyg/ - jeszcze nie ukończony, ale podstawowe rzeczy posiada.
źródło jest na svn

0

Nieźle bordeux. Pisząc, że nie ukończony pewnie masz na myśli głównie ilość funkcji, ale - nie wiem czy wiesz - w Chrome rozjeżdżają się elementy paska narzędziowego :) Ale mimo wszystko całkiem nieźle się ten edytorek prezentuje.

0

TinyMCE generuje poprawny kod XHTML 1.1 (takiego doctype używam na codzień), więc i 1.0 Strict i 1.0 Transitional będą ok. Nie używa znaczników typu font, align czy ciul wie czego.

bordeux - świetna robota. trochę problematycznie się go używa, ale zapowiada się nieźle :) tylko dlaczego jest problem z tabelkami w operze [niczym w tinymce] (nie można zmieniać rozmiaru, nie ma tych hoverujących ikonek do usuwania wiersza np) - skoro piszesz to na jquery ui to powinno działać tak po prostu?. menu kontekstowe widzę, że nie istnieje, bo spodziewałem się, że jak w tinymce nie działa tylko pod operą. no i żadnych opcji, ustawiania wlasnych klas elementom itd. nie chcę marudzić, tylko zwracam uwagę, że to (chyba) jeszcze nie 90%? i select all w operze działa zabawnie :D

0
dzek69 napisał(a)

TinyMCE generuje poprawny kod XHTML 1.1 (takiego doctype używam na codzień), więc i 1.0 Strict i 1.0 Transitional będą ok. Nie używa znaczników typu font, align czy ciul wie czego.

bordeux - świetna robota. trochę problematycznie się go używa, ale zapowiada się nieźle :) tylko dlaczego jest problem z tabelkami w operze [niczym w tinymce] (nie można zmieniać rozmiaru, nie ma tych hoverujących ikonek do usuwania wiersza np) - skoro piszesz to na jquery ui to powinno działać tak po prostu?. menu kontekstowe widzę, że nie istnieje, bo spodziewałem się, że jak w tinymce nie działa tylko pod operą. no i żadnych opcji, ustawiania wlasnych klas elementom itd. nie chcę marudzić, tylko zwracam uwagę, że to (chyba) jeszcze nie 90%? i select all w operze działa zabawnie :D

Wykonanie takiego edytor to błahostka. Wszystkim zajmuje się execCommand + contenteditable . Ty jedynie robisz tylko interfejs. Moim założeniem był prosty, lekki edytorek, do potrzeb XVweb (niestety, tinyMCE nie dało możliwości wdrożenia własnych, nietypowych tagów, których można używać w moim CMS). Lecz kusi mnie by go rozbudować. Jedyne co się boje to jego waga...
jQuery natomiast tutaj szczerze mówiąc - jest używane do obsługi slidera - zmiany kolorów. jQuery nie jest używane do edycji tekstu.

Jedyne co mogę upewnić to, że dopisze do tego:

  • obsługa "resize" dla img (zgodnie z standardami EMCA tag IMG powinien mieć kontrolki przekształceń, czego niestety w Chrome o dziwo nie ma )
  • dodanie obsługi table (ikonki , resize, etc.) - obecnie można usuwać całe wiersze, tylko trzeba wiedzieć gdzie zaznaczać. Ja to rozkminiłem po 5 minutach na Chrome.
  • kod HTML/CSS będzie już osadzony w JS (obecnie trzeba osobno go wklejać, a css dynamicznie ładować - nie lubię gdy trzeba dodawać do kodu źródłowego osobno js, css - wole wstawić tylko odnośnik do .js i nie martwić się niczym)
  • edycja atrybutów - po kliknięciu na dany element, przeskakujemy do zakładki "Edycja" tak jak w Office 2010
  • myślę o jakieś funkcji tidy, która po 1 formatuje ładnie kod html , a po 2 konwertuje na xHTML5 (nie lubie czegoś takiego jak niedomykane tagi, będzie to zguba dla programistów, bo trudniej się pobiera wartości pomiędzy tagami - nie można użyć regexpa /<tag>(.*?)</tag/si )
  • jak będzie branie na edytorek, to w 2 wersji przepisze kod, używając czegoś innego niż execCommand - textRange, który pozwoli na większe możliwości.

Pracę mam zaplanowane nad tym po 25, gdy będę się nudził w szpitalu.

A co może zrobię:

  • menu kontekstowe. Dlaczego? Przyczyna jest prosta. Chrome, Firefox blokują schowek z poziomu JS. No jakbym "shookował" prawy przycisk myszy, jedyna opcja na kopiowanie tekstu to ctrl+c i wklejanie ctrl+v , a prawym przyciskiem już by się nie dało. Tak to wygląda z punktu "programistycznego". Lecz chyba ominę to komunikatem, by używał ctrl+c
0

Chrome, Firefox blokują schowek z poziomu JS. No jakbym "shookował" prawy przycisk myszy, jedyna opcja na kopiowanie tekstu to ctrl+c i wklejanie ctrl+v , a prawym przyciskiem już by się nie dało. Tak to wygląda z punktu "programistycznego". Lecz chyba ominę to komunikatem, by używał ctrl+c

o ile pamiętam flash umożliwia kopiowanie do schowka oraz z tego co pamiętam da się pchnąć wykonanie jakiejś akcji we flashu z poziomu js (bo w drugim kierunku na pewno) - więc z użyciem flasha byś zrobił taką protezę do kopiowania :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1