Jestem bardzo ciekawy, aby usłyszeć opinie innych na temat problemu, który rozważałem od jakiegoś czasu.JavaScript, adnotacje i pomysły tekstowe
Zasadniczo chciałbym przedstawić użytkownikowi dokument tekstowy i umożliwić mu wybieranie tekstu i dodawanie adnotacji do niego. Specyficzne dla adnotacji Dążę do osiągnięcia następujących celów:
- Zezwalaj użytkownikom dokonać wyboru tekstu, opisywanie go, a następnie zapisać wybór i adnotacji na wypadek użycia w przyszłości
- (UI) Wsparcie reprezentujący pokrywające adnotacje. Na przykład, jeśli ciąg znaków gdzie: "To jest zdanie testowe dla mojego przykładowego zdania testowego", użytkownik 1 może mieć adnotację "to zdanie testowe dla mojego przykładu", a użytkownik 2 może mieć adnotację "dla mojego przykładu".
- Opis sytuacji, w których zmienia się tekst dokumentu. Adnotacje powinny być aktualizowane, jeśli to możliwe.
Jak poradzić sobie z tym z technicznego punktu widzenia?
Niektóre pomysły jakie jadłem to:
- użyć JavaScript zakresy i zapisać adnotację w postaci pary liczb całkowitych coś takiego: (document_start_char, document_end_char). Zapisz tę parę w db.
- Alternatywnie, za pomocą JS otrzymasz zaznaczony tekst i faktycznie zapiszesz pełny tekst w db. (nie jestem pewien, w jaki sposób wykonuję nakładające się adnotacje).
- Nakładaj na siebie adnotacje, nakładając styl css, aby podświetlić tekst, a następnie przyciemnij "stos" adnotacji, w którym się pokrywają. Najmniejsza adnotacja zawsze musi znajdować się na górze "stosu".
Jakie są twoje myśli lub obszary poprawy? W jaki sposób można aktualizować tekst dokumentu bez zrywania wszystkich adnotacji?
Mam DOKŁADNIE to samo wymaganie. Pls informuje nas na bieżąco o postępach. SP – swami
Co robię w tej chwili, to otaczanie każdego znaku w przestrzeni z unikalnym identyfikatorem. Używam Rangy (http://code.google.com/p/rangy/) do przechwytywania zaznaczeń, a następnie wyodrębnij identyfikatory, aby dokładnie określić, które znaki zostały wybrane. Dzięki temu mogę uzyskać trochę swobody, ponieważ mam możliwość wybrania opcji docierania, a za sceną można wykonać pewne fantazyjne czynności, np. Obliczyć, ile razy znak został przypisany w SUITE adnotacji i odpowiednio dostosować jego kolor tła (aby reprezentować zachodzące selekcje). –
Och, zapomniałem o jednej rzeczy ... Jeszcze nie wiem, jak poradzić sobie z aktualizowaniem wszystkich adnotacji, gdy sam dokument jest edytowany, ale myślę, że dobrym sposobem na rozwiązanie tego problemu może być podzielenie dokumentu na wyjątkowe akapity, zdania lub coś w tym stylu. Wyizolowanie obrażeń byłoby celem w tym przypadku, ale nie byłoby idealne. –