2011-07-01 33 views
12

Tôi rất tò mò muốn nghe ý kiến ​​của người khác về một vấn đề mà tôi đã dự tính trong một thời gian.Javascript, chú thích văn bản và ý tưởng

Về cơ bản tôi muốn giới thiệu cho người dùng một tài liệu văn bản và cho phép anh ta/cô ấy lựa chọn văn bản và chú thích nó. Cụ thể cho các chú thích tôi nhằm mục đích để đạt được những điều sau đây:

  1. Cho phép người dùng thực hiện một lựa chọn văn bản, chú thích nó, sau đó lưu các lựa chọn và chú thích để tham khảo sau
  2. (UI) Hỗ trợ đại diện cho các chú thích chồng chéo. Ví dụ: nếu chuỗi trong đó: "Đây là câu thử cho câu thử mẫu của tôi", user1 có thể có chú thích trên "là câu thử cho ví dụ của tôi" và user2 có thể có chú thích trên "ví dụ của tôi".
  3. Tài khoản cho một tình huống mà văn bản của tài liệu thay đổi. Các chú thích sẽ được cập nhật, nếu có thể.

Bạn giải quyết vấn đề này từ góc độ kỹ thuật như thế nào?

Một số ý tưởng tôi đã có là:

  • Sử dụng javascript dao động và lưu trữ một chú thích như một cặp số nguyên cái gì đó như: (document_start_char, document_end_char). Lưu cặp này trong db.
  • Cách khác, sử dụng JS lấy văn bản đã chọn và thực sự lưu toàn văn trong db. (không chắc chắn làm thế nào tôi sau đó sẽ làm chú thích chồng chéo)
  • Thể hiện các chú thích chồng chéo bằng cách áp dụng kiểu css để tô sáng văn bản rồi làm tối "chồng" các chú thích mà chúng chồng lên nhau. Chú thích nhỏ nhất sẽ luôn phải ở trên cùng của "ngăn xếp".

Suy nghĩ hoặc lĩnh vực cải tiến của bạn là gì? Cách heck tôi có thể hỗ trợ văn bản của tài liệu đang được cập nhật mà không vi phạm tất cả các chú thích không?

+0

Tôi có chính xác yêu cầu tương tự. Xin hãy giữ cho chúng tôi cập nhật về tiến trình ur SP – swami

+0

Việc im đang thực hiện tại thời điểm này là bao quanh mọi ký tự đơn trong một khoảng với một ID duy nhất. Tôi sử dụng Rangy (http://code.google.com/p/rangy/) để lấy các lựa chọn sau đó trích xuất các ID để tôi biết chính xác các ký tự nào đã được chọn. Việc này cho phép tôi tự do bởi vì tôi đã có nhiều lựa chọn và có thể làm một số nội dung ưa thích đằng sau hậu trường như tính toán số lần ký tự được chú thích trong SUITE của chú thích và điều chỉnh màu nền cho phù hợp (để thể hiện lựa chọn trùng lặp). –

+0

Ồ, tôi quên mất một điều ... Tôi chưa tìm ra cách xử lý việc cập nhật tất cả chú thích khi bản thân tài liệu được chỉnh sửa, nhưng tôi nghĩ rằng cách tốt nhất để có thể chia tài liệu thành duy nhất đoạn văn, hoặc câu hoặc một cái gì đó như thế. Cô lập thiệt hại sẽ là mục tiêu trong trường hợp đó nhưng nó sẽ không hoàn hảo. –

Trả lời

3

http://mark.koli.ch/2009/09/use-javascript-and-jquery-to-get-user-selected-text.html

http://mark.koli.ch/2009/09/05/get-selected-text-javascript.html

Bắt văn bản đã chọn là thực sự dễ dàng. Lưu trữ nó (hoặc điểm bắt đầu/kết thúc) cũng là một trò đùa. Nhưng còn điểm số 3 thì sao? Nếu văn bản thay đổi thì sao?

Nếu văn bản thay đổi, cả văn bản gốc và tọa độ lựa chọn ban đầu mà bạn lưu trữ sẽ không bằng văn bản đã sửa đổi hiện tại. Bạn nên chú ý đến các chú thích có trong tài liệu văn bản, để mọi khi nó thay đổi, các chú thích tham chiếu đến đoạn văn bản đã thay đổi cụ thể sẽ được cập nhật hoặc xóa (có thể sau khi so sánh nhanh giữa văn bản trước và sau) từ bị thiếu? hoặc chỉ một số từ đã được sửa chữa?), nhưng điều này có vẻ thực sự là một nhiệm vụ khó khăn.

Tôi cho rằng việc lưu trữ toàn bộ chú thích văn bản trong db là điều cần thiết, để tránh chú thích bị thay đổi và chú thích bị mất. Bằng cách này, bạn sẽ vẫn có văn bản hoàn chỉnh mà bạn đã chú thích. Sau đó, bạn cũng nên sử dụng một loại cờ để chỉ ra ký tự bắt đầu của chú thích và nếu văn bản thay đổi, bạn có thể tính toán sự khác biệt về các ký tự từ văn bản tài liệu trước khi thay đổi, và sau đó, và tìm cách này điểm bắt đầu mới của chú thích gốc (giả sử phần chú thích của văn bản tài liệu không thay đổi).

Chia tài liệu văn bản trong nhiều đoạn văn nhất có thể cũng sẽ hữu ích, theo cách này bạn có thể tách từng phần khác nhau của tài liệu và làm việc từng phần một.

Bây giờ tôi thực sự muốn thấy nó hoàn tất! :)

+0

Theo dõi câu hỏi - một db nosql có phải là một lựa chọn có lợi cho việc lưu trữ văn bản (hơn và hơn) không? –

5

Tôi đang nghiên cứu cùng một câu hỏi này và cá nhân tôi ưu tiên tránh xa việc tự chuyển mình, ủng hộ thư viện nguồn mở hiện có như Annotator.

+0

Điều này thật tuyệt vời. Cảm ơn bạn!! –

Các vấn đề liên quan