Tool-Script Bộ Script Nhỏ Gọn Làm Ebook Với EmEditor

Thảo luận trong 'Ebook truyện dịch' bắt đầu bởi Big Bang, 20/9/13.

  1. Big Bang

    Big Bang Thành viên kích hoạt

    Được thích:
    130
    Bộ Script Nhỏ Gọn Làm Ebook Với EmEditor

    Hầu hết mọi người đều làm eBook trên MS Word, tuy tiện lợi trong môi trường quen thuộc nhưng chậm và eBook làm ra không đẹp bằng làm bằng HTML. Tôi viết một bộ script rút gọn của phiên bản trên UltraEdit để chạy trên EmEditor. Tôi mô tả ở đây, nếu có ai cảm thấy đáng để chuyển sang làm ebook bằng HTML tôi sẽ share.

    Chú Ý: bản rút gọn này chỉ thích hợp làm ebook nguyên cuốn. Cập nhật ebook đã có sẵn phải tốn một ít công sức, nhưng tôi nghĩ là vẫn dễ và nhanh hơn dùng Word.

    1. Khối lượng và tốc độ xử lý:

    - Text nguồn trải qua chừng 120-150 lần Replace All (chưa kể các xử lý khác)
    - Truyện ngắn (Đại chúa tể - 130 chương - 2.35MB): 670KB / phút hoặc 35 chương / phút (chạy mất 3min 30s)
    - Truyện dài (Phàm nhân tu tiên - 2440 chương - 50MB ): 570KB / phút hoặc 27 chương / phút (chạy mất 1h 30min)
    Note: Script chạy trên laptop Dell Core i5 - 2.5GHz 8GB RAM, Win8 x64, EmEditor 13.0 x64


    2. Xử lý text thủ công trước khi chạy máy: convert qua Unicode dựng sẵn
    Script chỉ chạy đúng với unicode dựng sẵn. Unicode dựng sẵn không bị lệch dấu bể chữ như unicode tổ hợp. Mất khoảng vài giây để convert 50MB text bằng Unikey. Đây cũng là phần chuẩn bị text thủ công duy nhất.
    Tôi chạy script kiểu all-in-one-click: copy text từ trang archive của BLH, convert qua unicode dựng sẵn rồi chạy 1 script duy nhất.
    Note: Bản script rút gọn này không check và tự động convert qua Unicode dựng sẵn như bản trên UltraEdit.

    3. Text được xử lý như thế nào?

    3.1 Xóa text rác

    - Các dòng rác linh tinh, quảng cáo...
    - BBCode lẫn vào text ( ví dụ như [noparse][/QUOTE],
    , ,[/noparse] ...)
    - Thông tin về sách ở mỗi chương (tên tác giả, tên sách, tên quyển)
    - thông tin của người dịch: tên poster, dịch giả, converter, đả tự, ...


    3.2 Sửa tự động một số lỗi tiếng Việt

    - chuẩn hóa dấu câu:

    + chuyển các dấu không dùng trong văn viết thành các dấu thường dùng. Ví dụ: Nó là loại một tấc đến trời <có nghĩa khoác lác> ==> Nó là loại một tấc đến trời (có nghĩa khoác lác)
    + dấu câu tiếng hoa => dấu câu tiếng việt: tiếng hoa dùng dấu chấm, phẩy, ngoặc kép v.v. khác với tiếng việt, để lẫn vào text tiếng việt trông rất xấu, nhất là làm ebook convert.
    + sửa một số lỗi dấu câu bị nhảy hàng. Ví dụ khi copy từ trang web một số dấu chấm câu bị nhảy xuống hàng trên hoặc dưới.
    + bỏ dấu không đúng. Ví dụ sau dấu phẩy không có khoảng trắng, gõ 2 hoặc 4 dấu chấm thay vì 3 dấu chấm (dấu chẩm lửng, dấu 3 chấm)
    - Chuẩn hóa kiểu bỏ dấu tiếng việt: bỏ dấu kiểu cũ. Ví dụ: Thúy với Hòa như thủy với hỏaTh với H như thuỷ với hoả. Hai kiểu bỏ dấu là tương đương nhưng nếu không được dùng thống nhất trong cùng một truyện thì trông không đẹp (do nhiều người cùng dịch hay đánh máy một truyện).

    3.3 Sửa lỗi ở tựa chương
    Tựa chương nếu bị lỗi sẽ trông rất xấu và không làm mục lục tự động được => làm cho độc giả tưởng mất chương.

    - Lỗi đánh máy (sai chính tả)
    - lỗi đánh số không chuẩn: chuẩn là Chương 1-2: Khởi Đầu Mới, không chuẩn là Chương 1 - 2: Khởi Đầu Mới, Chương 1&2 : Khởi Đầu Mới, Chương 1, 2 - Khởi Đầu Mới, ...
    - Lỗi đúp 2 dòng tựa chương liền (2 dòng giống nhau)
    - Lỗi không viết hoa (tựa chương phải viết hoa mỗi chữ)
    - Lỗi dùng dấu chấm câu ở tựa chương (tựa chương không dùng dấu chấm câu như câu thường => xóa dấu chấm nếu có nhưng giữ lại dấu chấm lửng, dấu hỏi...)
    ...

    4. Hình thức eBook

    - các phần chính trong truyện được làm nổi bật: tựa sách, số chương, tựa chương, tên tác giả, dropcap (phóng to chữ đầu tiên của chương)...
    - mục lục chia thành các trang 50 chương để dễ tìm trên phone
    - sang trang mỗi chương mới, có dòng ngắt chương

    5. Các tính năng phụ thêm

    5.1 Kiểm tra số chương

    - nhanh chóng phát hiện vấn đề như thiếu, thừa, trùng chương, đánh số sai, ... Kiểm tra hơn 2000 chương (phàm nhân tu tiên) mất chưa đầy 1 phút
    - làm tự động hoặc thủ công. Nếu làm tự động (dạng all-in-one-click) chương trình sẽ dừng lại nếu phát hiện lỗi chương nhưng những công đoạn đã làm (xử lý text thừa, sửa lỗi, ...) vẫn không bị mất, bạn có thể làm tiếp sau khi sửa lỗi.

    5.2 Cập nhật danh sách poster, text rác

    - để tránh xóa nhầm text các text rác đều phải được lập danh sách. Để tăng tốc độ xử lý danh sách đó được viết thẳng vào code của chương trình. Người không biết lập trình sẽ không cập nhật trực tiếp được.
    - Để hỗ trợ người dùng bình thường tôi có viết script cập nhật code từ danh sách do người dùng lập. Danh sách này có thể lập bình thường bằng notepad, không cần biết lập trình.

    5.3 Thông báo sau khi chạy script

    - sau khi chạy script sẽ xuất ra thống kê kết quả và hướng dẫn người dùng làm bước tiếp theo (nếu có)

    5.4 Nightly Mode

    - khi chương trình đang chạy bạn không thể Cut, Paste hay Copy bất kỳ cái gì, nếu không sẽ bị lỗi. Bạn hình dung mỗi lúc mỗi giây có hàng loạt động tác Cut-Paste-Copy, nếu bạn chen ngang thì không ai biết kết quả sẽ ra sao. Nếu là truyện dài có thể mất hơn 1 tiếng đồng hồ, như vậy khá phiền toái.
    - Nightly Mode là chế độ chạy đêm. Bạn chuẩn bị text và lên danh sách các truyện cần làm, chạy chương trình rồi đi ngủ, sáng hôm sau lấy kết quả. Nói chung, mỗi đêm bạn có thể làm được 6 cuốn như Phàm Nhân Tu Tiên mà không phải thức khuya.


    Cập nhật ngày 21/9/2013

    Options Của EmEditor


    1. Các thao tác thông thường
    Các thao tác thông thường cùng với phím tắt tương ứng giống như các chương trình khác trên Windows
    - Copy, Cut, Paste
    - Open, Save, Save As
    - Luôn luôn Save As mọi file dùng làm eBook với EmEditor như hình 1: xuống hàng kiểu Windows (CR+LF) và encoding UTF-16 LE with Signature (Signature = BOM). Điều này đúng với cả file text, html lẫn file script. File script của EmEditor có đuôi là JSEE .

    [​IMG]
    Hình 1​

    2. View Menu
    - Các option nên có: No Wrap, Line Numbers, Status Bar (Hình 2) và Mark-->Return (Hình 3)
    - Chọn font chữ coi hình 3: chọn font trong bảng nhấn Font... (mũi tên #1) hoặc chọn nhanh trong những font đã chọn trước đó (mũi tên #2)
    - Bật tắt Output Bar nhấn nút vị trí #3. Output Bar là nơi script xuất thông tin kết quả chạy script. Đừng quên nhé.

    [​IMG]
    Hình 2
    [​IMG]
    Hình 3​

    3. Find - Replace

    Đây có lẽ là thứ hay được dùng nhất. File text thường rất lớn, cách di chuyển nhanh nhất là tìm kiếm. Khi chay script nếu có lỗi sẽ xuất ra thông báo và hướng dẫn cách tìm vị trí có lỗi. Thường thì đó là một chuỗi, bạn copy nó vào hộp Find để lần lượt nhảy đến tất cả vị trí có lỗi.

    Hình 4 chỉ rõ gọi những lệnh này thế nào. Find...Replace... mở các hộp thoại tìm kiếm và thay thế, PreviousNext để tìm nhanh vị trí có chuỗi cần tìm trước và sau vị trí con trỏ.

    Ghi chú: Bạn nên xài phím tắt cho nhanh, phím tắt này cũng giống phần lớn các chương trình Windows khác.

    [​IMG]
    Hình 4​

    Hình 5 hướng dẫn cách xài hộp Find:
    1. Chọn option cho đúng: thường hướng dẫn của bộ srcipt để tìm lỗi là chuỗi Regular Expression xuất ra ở Output Bar (xem phần 2, View Menu). Nhớ chọn ô Use Regular Expression

    2. Chuỗi tìm kiếm: Copy nguyên đai nguyên kiện chuỗi tìm lỗi mà bộ script hướng dẫn vào ô Find

    3. Nếu muốn tìm toàn bộ file thì chọn ô Move to Start/End of Document, nếu muốn đếm xem có cả thảy bao nhiêu chuỗi tìm được thì chọn ô Count Matches.

    Count Matches là một lựa chọn tốt. Nếu chọn nó và nhấn nút Find All thì tất cả chuỗi tìm được sẽ bị đánh dấu (bôi màu xanh), đồng thời ở đầu Status hiển thị số chuỗi tìm thấy. Nếu chỉ tìm thấy có vài chỗ thì sửa thủ công từng cái cho nhanh, nếu vài chục lỗi trở lên, thậm chí vài trăm lỗi thì phải tìm cách sửa hàng loạt.

    Tin tốt là nếu chuỗi tìm thấy nhờ Regular Expression mà Script hướng dẫn cho bạn thì khả năng rất lớn Bạn có thể sửa hàng loạt cũng nhờ một chuỗi Regular Expression khác.

    4. tìm kiếm: ý nghĩa các nút đó rõ ràng rồi

    5. Nếu muốn chuyển sang hộp Replace để sửa lỗi thì nhấn nút này. Mọi option của hộp Find được chuyển toàn bộ qua hộp Replace, chỉ cần nhập chuỗi thay thế là OK.

    [​IMG]
    Hình 5​

    Hình 6 hướng dẫn cách dùng hộp Replace
    1. search option giống như hộp Find
    2. chuỗi tìm kiếm giống như hộp Find
    3. Chuỗi thay thế: nếu chuỗi tìm kiếm là Regular Expression thì phải thận trọng với chuỗi thay thế
    4. Nên thử tìm vài chuỗi coi có tìm đúng như mình nghĩ hay không trước khi Replace
    5. Replace thử 1-2 lần coi kết quả có đúng không trước khi Replace All.
    Mẹo: làm sao quay lại chỗ vừa thay thế để coi kết quả? Khi Replace xong vị trí con trỏ nhảy ngay đến lỗi tiếp theo, vì vậy mắt không kịp nhìn kết quả có đúng không. Trước khi Replace bạn click chuột vào cái dòng có chuỗi chuẩn bị Replace rồi nhấn Ctrl+F2. Cái dòng đó được đánh dấu (bookmark), muốn đến những chỗ được đánh dấu trong file thì nhấn F2. Ctrl+F2 dùng để bật/tắt bookmark, nếu không dùng nữa thì tắt nó đi.​
    6. Nếu chắc ăn rồi thì Replace All. Nên nhớ nếu file quá lớn thì bạn không thể Undo được, vì vậy cần thử vài lần ở bước 5.

    [​IMG]
    Hình 6​

    4. Add - Remove Macro

    Hình 7 hướng dẫn cách chạy script.
    - File bạn muốn chạy script trên đó là file đang được edit bằng EmEditor. Bạn có thể mở nhiều file cùng một lúc nhưng khi gõ phím thì chữ chỉ vào 1 file. Đó là Active Document, như cách mà EmEditor gọi nó. Script luôn luôn được chạy và tác động trên Active Document, vì vậy đừng chọn nhầm.
    - Chọn script để chạy ở danh sách ( #1 trong hình 7)

    [​IMG]
    Hình 7​

    Để Add-Remove script thì chọn menu Customize... (#2 trong hình 7), hộp thoại Customize Macro sẽ hiện ra (coi hình 8)

    - Add script: nhấn nút New (#1 trong hình 8) rồi chọn file script. Bạn có lặp lại bước này nhiều lần cho đến khi Add hết script. Sau khi Add hết script nhấn OK (#2 trong hình 8)

    - Remove Script: chọn script trong danh sách rồi nhấn Delete. Sau đó nhấn OK.

    [​IMG]
    Hình 8​

    Hình 9 hướng dẫn chọn folder mặc định cho script. Cũng trong hộp thoại Customize Macro chọn tab Options, sau đó:

    1. chọn folder chứa bộ script của EmEditor (đó là folder scripts khi bạn giải nén)
    2. nhấn OK

    [​IMG]
    Hình 9​

    5. Cài Đặt Options Thích Hợp Cho Bộ Script

    Mở hộp thoại Customize bằng cách chọn menu Tools --> Customize...

    5.1 Cho phép select nhiều chỗ cùng một lúc: Chọn tab Edit (hình 10) rồi chọn ô Enable Multiple Selection

    [​IMG]
    Hình 10​

    5.2 Sắp xếp chuỗi theo thứ tự tiếng Việt: chọn tab Sort (hình 11) rồi chọn Vietnamese (Vietnam) ở danh sách Locale

    [​IMG]
    Hình 11​

    5.3 tìm kiếm: chọn tab Search (hình 12)
    - Bỏ chọn ô Regular Expression Can Match New Line Characters (#1 trong hình 12)
    - Đặt giá trị 100 vào ô Additional Lines To Search for Regular Expressions (#2 trong hình 12)

    [​IMG]
    Hình 12​


    5.4 Đặt ngưỡng dùng temporary file: chọn tab Advanced (hình 13)

    đặt các option trong 2 khung màu đỏ giống như ở hình 13

    [​IMG]
    Hình 13​

    5.5 Hỗ trợ tiếng Việt có dấu


    EmEditor cài đặt mặc định không hỗ trợ tiếng Việt có dấu. Ví dụ trong text của bạn có từ Mứt và bạn tìm kiếm với option Whole Word nó sẽ tìm thấy luôn chữ trong Mứt ! Bạn thêm các chữ cái tiếng Việt có dấu vào danh sách alphanumeric của EmEditor để sửa:

    Chọn tab Edit như hình 14.

    [​IMG]
    Hình 14​

    Trong ô Treat the following characters as alphanumeric bạn thêm các chữ cái tiếng Việt có dấu vào đằng sau những ký tự có sẵn trong ô đó (thường thì trong đó chỉ có một dấu gạch dưới - underscrore)
    Mã:
    đàáảãạăằắẳẵặâầấẩẫậèéẻẽẹêềếểễệìíỉĩịòóỏõọôồốổỗộơờớởỡợùúủũụưừứửữựỳýỷỹỵ
    

    Sau khi chọn xong (các bước 5.1 --> 5.5) nhấn OK.

    Cập nhật ngày 1-10-2013
    Cài Đặt & Sử Dụng Bộ Script Easy eBook Light

    1. Cài đặt EmEditor và Easy eBook Lite
    1.1 Cài đặt EmEditor và Easy eBook Lite
    - Vào trang web của Emuarasoft để download EmEditor nguyên bản.
    Chú ý: Nếu bạn xài Windows x64 thì nên cài bản EmEditor x64.​

    - Chọn trial 30 ngày

    1.2. Cài đặt option cho EmEditor
    Làm theo hướng dẫn ở phần Options Của EmEditor cũng trong post này của tôi.

    1.3. Cài Easy eBook Lite
    - Download Easy eBook Lite

    - Giải nén và copy folder Easy_eBook_Lite vào chỗ bạn thấy thuận tiện
    Chú ý: Trong đường dẫn của Easy eBook Lite không được có chuỗi eBooksscripts và không nên chứa các ký tự khác với A-Z và dấu gạch dưới (underscore). Ví dụ vị trí hợp lệ: C:\ , D:\My_stuff , E:\MyData\TruyenCuaToi. Ví dụ vị trí không hợp lệ hoặc không nên cài đặt: My Documents , C:\My_new_Ebooks , D:\MyData\BLHEbooks , E:\Programming\scripts.​

    - Add tất cả script trong folder scripts của Easy eBook Lite (xem phần 4. Add - Remove Macro ở hướng dẫn Options Của EmEditor) theo thứ tự sau:
    all_in_one.jsee
    clean_src_text.jsee
    check_ToC.jsee
    format_src_text.jsee
    build_ebook.jsee
    show_poster_list.jsee
    show_fixed_text_list.jsee
    update_poster_list.jsee
    update_fixed_text_list.jsee
    nightly.jsee

    2. Những điều cầu chú ý khi dùng Easy eBook Lite
    2.1 Files & Folders
    - Scripts của Easy eBook Lite đều ở trong folder scripts
    - eBook bạn làm đều ở trong folder eBooks. Không được lưu ebook ở bất kỳ chỗ nào khác!
    - Bản mẫu làm eBook trong folder eBooks\template.
    - Danh sách để chạy Nightly lưu ở file eBooks\nightly_jobs.txt

    Chú ý:

    + Không được xóa, đổi tên hay thay đổi bất kỳ thứ gì vừa được liệt kê ở trên
    + Không được làm eBook trực tiếp trên eBooks\template .
    + Khi làm eBook bạn lấy 1 bản copy của folder eBooks\template , đổi tên bản copy đó theo ý bạn (chỉ dùng A-Z và underscore)​


    - Mỗi folder truyện có các file src_txt.html, src_txt_backup.html, ToC.html, eBook.html, eBook.opf, tmp.html, tmp2.html, tmp3.html và 1 folder chứa các file ảnh imgs. Đây là các file và folder có tên chuẩn, khi bạn vẫn chưa làm xong eBook thì không được đổi tên của chúng. Khi bạn đổi tên của chúng, Easy eBook Lite sẽ không chạy trên truyện đó được nữa.
    - trong folder imgs có các file book_cover.jpg, inner_cover.jpg, publisher_logo.jpg là các hình bìa truyện, hình bìa trang ruột, logo của nhà xuất bản (trang web gốc tiếng Hoa). Ngoài ra các file từ vol_cover_1.jpg đến vol_cover_50.jpg là trang bìa cho các quyển của truyện chia thành nhiều quyển. Bạn không được đổi tên các file ảnh này nhưng có thể ghi đè lên chúng bằng file của Bạn.
    - file src_txt_backup.html dùng để sao lưu text nguồn (text gốc bạn copy từ trang web)


    2.2 Di chuyển & Backup
    - các folder scriptseBooks luôn đi cùng với nhau. Không bao giờ để scriptseBooks tách nhau ra.
    - Bạn có thể backup truyện mình đã làm, khi cần làm lại hoặc cập nhật chương mới nhớ copy trở lại vào folder eBooks
    - Nếu di chuyển Easy eBook Lite đến vị trí khác (ví dụ từ ổ đĩa C: sang D:) bạn phải di chuyển nguyên cả folder Easy_eBook_Lite, remove tất cả script của Easy eBook Lite khỏi EmEditor rồi Add trở lại theo vị trí mới (xem phần 4. Add - Remove Macro ở hướng dẫn Options Của EmEditor)

    2.3 Thông báo - Cảnh báo

    - thông báo xuất ra ở Output Bar. Đó là các thông tin, thống kê kết quả chạy script hay hướng dẫn (xem 2. View Menu ở hướng dẫn Options Của EmEditor)

    - Easy eBook Lite cảnh báo bằng popup khi có lỗi.

    2.4 Không được Copy-Cut-Paste khi script đang chạy

    - Khi script đang chạy, các thao tác Copy-Cut-Paste có thể đang liên tục được thực hiện. Nếu bạn chen ngang, không ai biết kết quả sẽ ra sao.

    - Nếu bạn làm truyện dài, thời gian chạy script có thể sẽ khá lâu, lúc đó nên làm những thứ không cần phải Copy-Cut-Paste như đọc truyện chẳng hạn.

    2.5 Luôn Lấy Text Từ Trang Archive của Bàn Long Hội
    - Bản Lite của Easy eBook chỉ xóa được ít trường hợp text thừa và chỉ thích hợp với text lấy từ trang archive của BLH

    3. Làm truyện mới từng bước một
    Ở phần này Bạn làm quen cách làm eBook theo từng bước và cách xử lý nếu xảy ra lỗi. Tôi sẽ hướng dẫn các bạn làm một truyện cụ thể lấy từ trang web của BLH.

    3.1 Tạo folder truyện mới
    - Copy folder eBooks\template vào folder eBooks rồi đổi tên thành tên truyện bạn sắp làm. Chú ý chỉ dùng A-Z và underscore, không khoảng trắng, không chữ có dấu hay các ký tự khác.
    - Để cho dễ hướng dẫn, Bạn đổi tên eBook mới thành Tutorial

    3.2 Lấy text và convert qua unicode dựng sẵn

    - Vào trang archive của Bàn Long Hội, vào truyện Chàng Rể Ma Giới trang đầu tiên. Chú ý bạn chỉ lấy trang đầu tiên. Một trang archive có hơn 100 chương, nếu bạn lấy nhiều hơn khi thực hành làm eBook sẽ mất thời gian không cần thiết.
    - Copy cả trang (nhấn Ctrl+A , sau đó Ctrl+C)
    - Paste vào file src_txt_backup.html, đóng file đó lại
    - Dùng phần mềm Unikey hoặc phần mềm tương tự convert file src_txt_backup.html thành unicode dựng sẵn. Nếu bạn đang chạy Unikey nhấn Ctrl+Shift+F6, sau đó làm theo hướng dẫn ở hình 1: chọn bảng mã đều là Unicode (#1 và #2), bỏ chọn chuyển mã clipboard (#3), chọn các file nguồn và đích đều là src_txt_backup.html (#4 và #5) rồi nhấn Chuyển mã (#6)

    [​IMG]
    Hình 1​

    - Bạn mở src_txt.htmlsrc_txt_backup.html, copy all từ src_txt_backup.html qua src_txt.html, save src_txt.html và đóng src_txt_backup.html

    3.3 Chạy clean_src_txt.jsee để làm sạch text
    3.3.1 Chạy clean_src_txt.jsee để làm sạch text
    - chọn src_txt.html làm Active Document (xem 4. Add - Remove Macro ở hướng dẫn Options Của EmEditor)
    - Chọn menu Macro --> clean_src_text.jsee hoặc nhấn vào icon của nó trên Macros Toolbar
    - Khi script chạy xong cửa sổ Output Bar tự động hiện ra, bạn đọc thông báo ở đó
    - Lúc này file ToC.html đang là Active Document và chứa các tựa chương tìm thấy được, file src_txt.html chứa text đã được làm sạch
    3.3.2 Sửa lỗi phát hiện được
    - Nếu script phát hiện có khả năng còn sót text rác nó sẽ thông báo ở Output Bar, ví dụ:
    Tìm thấy dòng có thể là từ bị kiểm duyệt: \*{2,4}
    Khi đó bạn mở hộp Find ra (nhấn Ctrl+F), copy chuỗi \*{2,4} vào ô Find. Nhớ chọn option Regular Expression. Tìm kiếm theo chuỗi đó bạn có thể tìm thấy các từ nghi là từ bị kiểm duyệt (ví dụ từ tục tĩu được thay bằng 3 dấu hoa thị)
    3.3.3 Cập nhật các danh sách poster và text rác
    - Nếu script báo tìm thấy poster, bạn hãy kiểm tra bằng regular expression nó cung cấp
    - nếu đúng như vậy, bạn có thể cập nhật danh sách poster:
    + chọn tmp.html làm Active Document rồi chạy script show_poster_list.jsee. Danh sách poster hiện có xuất ra ở output bar. Bạn có thể copy nó để sau này so sánh (ở output bar, chuột phải --> Select All, chuột phải --> Copy)
    + chọn src_txt.html hoặc src_txt_backup.html làm Active Document, sau đó chạy update_poster_list.jsee cho nó
    + chọn tmp.html làm Active Document rồi chạy script show_poster_list.jsee. Bạn có thể so sánh 2 danh sách trước và sau khi chạy update_poster_list.jsee.
    + uppdate_poster_list.jsee chỉ thêm các poster chưa có trong danh sách và các thay đổi ở danh sách poster không bị mất đi khi bạn tắt EmEditor.​
    - Nếu bạn phát hiện text rác là các dòng cố định thì có thể thêm nó vào danh sách loại bỏ. Các text rác thường là tên truyện xuất hiện ở mỗi chương, các dòng quảng cáo, lời bình, links... do poster thêm vào ở mỗi chương.
    + chọn tmp.html làm Active Document
    + chạy script show_fixed_text_list.jsee, danh sách các dòng rác xuất ra output bar
    + bạn kiểm tra dòng rác đã có trong danh sách chưa, nếu chưa có thì sẽ thêm vào. Ví dụ bạn muốn thêm vào tên truyện "Chàng Rể Ma Giới".
    + copy các dòng rác vào tmp.html, mỗi dòng rác trên 1 dòng, không có dòng trống ở đầu file hoặc giữa các dòng rác, cuối file có 1 dòng trống duy nhất
    + chạy script update_fixed_text_list.jsee trên file tmp.html
    + kiểm tra danh sách mới bằng show_fixed_text_list.jsee​
    - Bạn có thể làm sạch lại text nếu muốn: copy text từ src_txt_backup.html qua src_txt.html và lặp lại bước 3.3.1 này.
    - Theo quá trình làm eBook, danh sách của bạn ngày càng đầy đủ và bạn sẽ không cần cập nhật thường xuyên nữa.
    3.4 Chạy check_ToC.jsee để kiểm tra số chương
    - chọn ToC.html làm Active Document
    - chọn dòng bắt đầu kiểm tra: dòng bắt đầu kiểm tra là dòng có dấu nháy con trỏ (caret). Dòng đó luôn luôn được coi là chính xác và check_ToC.see sẽ dựa vào đó để kiểm tra các dòng bên dưới nó. Có nghĩa là dòng bắt đầu đó và tất cả các dòng trên nó được coi là không có lỗi, bất chấp điều đó có đúng trong thực tế hay không. Nếu bạn mới bắt đầu kiểm tra số chương hãy chọn dòng đầu tiên.
    - chạy script check_ToC.jsee
    - check_ToC.jsee sẽ kiểm tra số chương có liên tục hay không, tựa chương của bạn có đúng chuẩn hay không. Chỉ cần sai lệch một chút, ví dụ như thừa (thiếu) một khoảng trắng cũng đủ báo lỗi. Ví dụ tựa chương chuẩn là Chương 1: Bắt Đầu Một Ngày Mới, tựa chương không chuẩn thừa một khoảng trắng trước dấu hai chấm Chương 1 : Bắt Đầu Một Ngày Mới
    Tại sao lại phải làm chặt chẽ như vậy?
    + Làm mục lục tự động cần tựa chương thật chuẩn để nhận diện số chương
    + tựa chương không chuẩn về mặt thẩm mỹ không đạt vì đó là vị trí được làm nổi bật trong truyện.
    + Nếu tựa chương của Bạn có lỗi có nghĩa là lỗi đó thuộc loại không thể sửa tự động được. Easy eBook Lite sửa tựa chương rất kỹ để có thể làm Mục Lục tự động. Chuyện thừa một khoảng trắng ở trước dấu hai chấm sau khi đã được xử lý trên thực tế không thể xảy ra.​
    - Nếu không có lỗi, Output Bar sẽ thông báo sạch lỗi, bạn có thể làm tiếp bước 3.5
    - Nếu có lỗi, script sẽ dừng ở dòng xuất hiện lỗi và thông báo bằng popup
    - Bạn quan sát dòng bị báo lỗi hoặc dòng trên nó để xác định lỗi loại gì: trùng chương, thiếu chương, đánh số sai, tựa chương không chuẩn ...
    - Khi sửa, bạn phải sửa cả file ToC.html lẫn src_txt.html
    - Khi bị thiếu chương, bạn cần phải:
    + nếu chương chưa đả tự, bạn thêm tựa chương và nội dung chương là thông báo chưa đả tự
    + nếu do đánh sai số chương kéo theo tất cả các chương phía sau bị ảnh hưởng, bạn có thể chọn bỏ qua bằng cách chọn dòng đó là dòng bắt đầu kiểm tra (dòng bắt đầu kiểm tra luôn luôn đúng)
    + nếu do text nguồn thiếu chương và bạn có text bổ sung của chương đó, bạn hãy copy text bổ sung vào file tmp.html và chạy script clean_src_text.jsee trên đó. clean_src_text.jsee chạy trên tmp.html sẽ không cập nhật ToC.html (có nghĩa là không xóa sạch ToC.html đi để làm lại) mà chỉ làm sạch text. Bạn copy text và tựa chương sang src_txt.html và ToC.html.​
    - Khi sửa lỗi xong bạn chọn dòng vừa được sửa lỗi làm dòng bắt đầu và tiếp tục chạy check_ToC.jsee. Lặp lại quá trình này đến khi hết lỗi.
    - Nếu bạn không muốn sửa lỗi thì có thể bỏ ngang hoặc bỏ qua toàn bộ bước 3.4 này. Easy eBook Lite không bắt bạn phải sửa hết lỗi mới cho chạy tiếp

    3.5 Chạy format_src_text.jsee để tạo code HTML sơ bộ
    - chọn src_txt.html làm Active Document
    - chạy format_src_text.jsee
    - Cung cấp thông tin cần thiết để chạy script khi các popup hỏi Bạn:
    + Bạn muốn cập nhật truyện cũ (thêm chương mới) hay làm truyện mới từ đầu?
    + Truyện của Bạn là loại gì, truyện không chia thành các quyển (chỉ gồm các chương giống như Sát Thần) hay chia thành các quyển nhỏ (giống như Bàn Long)? Nhập vào 1 nếu truyện không chia thành quyển, 2 nếu ngược lại.
    + Nếu truyện của Bạn thuộc dạng chia thành quyển, popup tiếp theo sẽ hỏi bạn text nguồn bắt đầu từ quyển thứ mấy. Bạn cần cung cấp thông tin chính xác để script có thể làm Mục Lục và tiêu đề các chương cho phù hợp. Bạn phải nhập vào số quyển chứa chương đầu tiên của text nguồn. Ví dụ Bạn muốn cập nhật chương 20 đến 50 của quyển 4 và toàn bộ quyển 5 và 6. Vậy chương đầu tiên của text nguồn là chương 20 quyển 4, do đó Bạn phải nhập vào 4 ở popup này. Nếu truyện của Bạn không chia thành quyển popup này sẽ không hiển thị.​
    - Khi kết thúc src_txt.html và ToC.html sẽ chứa code HTML đơn giản
    - Đọc thông báo ở Output Bar
    - Nếu ToC.html có lỗi, ví dụ như không tạo được một trang mục lục cho 50 chương, sẽ có thông báo cụ thể. Thí dụ text nguồn bị thiếu các chương 101 đến 104 và bạn không sửa ở bước 3.4 thì script sẽ không biết phải đặt trang gộp cho các chương 101-150 ở đâu.

    3.6 chạy build_ebook.jsee để tạo file nguồn hoàn chỉnh để làm eBook
    - chọn eBook.html làm Active Document
    - chạy script build_ebook.jsee


    3.7 sửa thông tin eBook
    - mở eBook.html
    - Sửa những dòng sau theo hướng dẫn: ví dụ dòng <title>_AUTHOR_NAME_ - _BOOK_TITLE_</title> sửa thành <title>Điểm Tinh Linh - Chàng Rể Ma Giới</title>. Nếu bạn không biết phải sửa những chỗ nào thì có thể làm theo quy tắc sau: mở file eBook.html bằng Firefox hoặc Internet Explorer, chỗ nào bạn nhìn thấy cả ở trên trình duyệt lẫn EmEditor bạn có thể sửa, chỗ nào bạn chỉ trông thấy trên EmEditor thì không được sửa. Trong ví dụ trên đó là tiêu đề của trang, bạn nhìn lên chỗ cao nhất của trình duyệt, qua cả menu và toolbar, bạn sẽ thấy dòng _AUTHOR_NAME_ - _BOOK_TITLE_ - Mozilla Firefox mà không thấy <title></title>, vậy bạn có thể sửa _AUTHOR_NAME_ - _BOOK_TITLE_ mà không được sửa <title></title>.
    <title>_AUTHOR_NAME_ - _BOOK_TITLE_</title>
    <h3 class="cover">_AUTHOR_NAME_</h4>
    <h1 class="cover">_BOOK_TITLE_</h1>
    <h4 class="cover">_PUBLISHER_</h4>
    <p>Dịch & Biên Tập: _TRANSLATOR_</p>
    <p>Nguồn dịch tiếng Việt: _TRANSLATION_WEBSITE_</p>
    <p>Làm eBook: _EBOOK_MAKER_</p>
    <p>(Thông tin về dịch giả có thể viết thêm ở đây).</p>
    - Bạn có thể Replace All các chuỗi như _AUTHOR_NAME_, _BOOK_TITLE_ bằng các thông tin tương ứng nhưng nếu file của Bạn khá lớn thì có thể sẽ chậm. Các chuỗi này đều ở đầu file khá dễ tìm.
    - Copy đè lên các file book_cover.jpg, inner_cover.jpg và publisher_logo.jpg bằng các file của bạn
    - Sửa thông tin trong eBook.opf. File eBook.opf chứa các thông tin về eBook làm bằng Mobipocket Creator, Bạn có thể dùng Mobipocket Creator để sửa và tạo eBook định dạng PRC.
    - Nếu truyện của Bạn thuộc loại chia thành các quyển nhỏ (giống Bàn Long), Bạn cần làm thêm một số điều chỉnh sau:
    + Điền thêm tựa các quyển. Vì script không biết tựa các quyển nên nó thay bằng các chuỗi như _VOLUME_1_TITLE_, _VOLUME_2_TITLE_, bạn thay các chuỗi này bằng tựa các quyển.
    + Mỗi quyển bắt đầu bằng 1 trang có số quyển, tên quyển và hình bìa cho quyển. Bình thường các hình bìa quyển này bị ẩn đi, như vậy Bạn sẽ không mất nhiều công sức nếu không có thời gian. Nếu bạn muốn hiện các hình bìa này thì Replace All như sau:
    Use Regular Expression: Yes
    Find: <!-- <p align="center"><img src="imgs([^<]+)</p> -->
    Replace With: <p align="center"><img src="imgs\1
    + Các hình bìa quyển là các file vol_cover_1.jpg, vol_cover_2.jpg, ... trong folder imgs, bạn có thể thay chúng bằng các file của mình bằng cách chép đè lên chúng.​
    - Sau khi sửa xong, file eBook.html đã sẵn sàng để import vào Mobipocket Reader hoặc làm eBook với Mobipocket Creator hoặc KindleGen.
    - Điều cuối cùng bạn cần làm là đổi tên file eBook.html, ví dụ thành chang_re_ma_gioi.html nếu truyện đã dịch xong và không cần cập nhật nữa. Khi bạn đổi tên file eBook.html, thành quả của bạn được bảo vệ. Cho dù bạn chạy nhầm file hay nhầm script, Easy eBook Lite cũng không thể thay đổi nội dung của file kết quả sau cùng nữa. Nhớ sửa thông tin trong eBook.opf phần Publication Files cho phù hợp với thay đổi.

    4. Làm truyện tất-cả-trong-một
    Easy eBook Lite có thể tự động làm hầu hết các bước mà không cần bạn can thiệp nếu như bạn không muốn mất quá nhiều thời gian ngồi sửa lỗi hoặc text nguồn đã sạch.
    Để làm một truyện như vậy bạn làm theo các bước sau:

    - chuẩn bị file và text: làm như 3.1 và 3.2
    - chọn src_txt.html làm Active Document
    - chạy all_in_one.jsee
    - Bạn cung cấp thông tin khi các popup hỏi Bạn giống như ở bước 3.5
    - một popup sẽ hỏi bạn có muốn kiểm tra tự động số chương hay không. Nếu bạn chọn OK, script sẽ kiểm tra số chương như ở 3.4. Nếu phát hiện lỗi, quá trình làm eBook sẽ dừng lại để bạn sửa. Sau khi sửa xong bạn có thể làm tiếp bước 3.5 như bình thường. Nếu bạn chọn Cancel, bước kiểm tra 3.4 sẽ bị bỏ qua.
    - all_in_one.jsee sẽ chạy các bước từ 3.3 đến 3.6
    - bạn làm tiếp bước 3.7 là xong
    - Nếu có lỗi, script sẽ báo. Bạn phải sửa trên HTML code vì đây là thành phẩm rồi. Bạn làm theo các quy tắc sau:
    + áp dụng quy tắc sửa thông tin ở bước 3.7
    + bạn coi những dòng xung quanh dòng bị lỗi và đoán phải làm thế nào: chúng tuân theo cùng quy luật
    + khi bạn xóa 1 dòng, bạn xóa luôn 2 thẻ HTML bao quanh nó. Ví dụ bạn trông thấy ở eBook hay trên trình duyệt dòng chữ Đây là dòng rác và bạn muốn xóa, ở trong EmEditor bạn trông thấy nó thế này: <p>Đây là dòng rác</p>. Bạn phải xóa luôn cả 2 thẻ HTML <p></p>
    + khi bạn muốn thêm một dòng, bạn cũng phải bao quanh nó bằng một cặp thẻ HTML, thường là <p></p>. Ví dụ nếu bạn muốn thêm vào dòng Tôi thích thêm cái này thì dòng bạn thêm vào trong EmEditor sẽ là <p>Tôi thích thêm cái này</p>

    5. Nightly
    - khi chương trình đang chạy bạn không thể Cut, Paste hay Copy bất kỳ cái gì, nếu không sẽ bị lỗi. Bạn hình dung mỗi lúc mỗi giây có hàng loạt động tác Cut-Paste-Copy, nếu bạn chen ngang thì không ai biết kết quả sẽ ra sao. Nếu là truyện dài có thể mất hơn 1 tiếng đồng hồ, như vậy khá phiền toái.
    - Nightly Mode là chế độ chạy đêm. Bạn chuẩn bị text và lên danh sách các truyện cần làm, chạy chương trình rồi đi ngủ, sáng hôm sau lấy kết quả. Nói chung, mỗi đêm bạn có thể làm được 6 cuốn như Phàm Nhân Tu Tiên mà không phải thức khuya.
    - Trên thực tế, Nightly chạy script all_in_one.jsee trên tất cả truyện trong danh sách, vì vậy để chạy chế độ Nightly bạn phải chuẩn bị tất cả truyện như chạy ở chế độ tất-cả-trong-một.

    Bạn thực hiện các bước sau:

    5.1 Chuẩn bị folder và text cho các truyện mới
    Làm các bước 3.1 và 3.2 cho mỗi truyện

    5.2 Chuẩn bị danh sách các truyện
    - Danh sách các truyện là file eBooks\nightly_jobs.txt. Danh sách này bao gồm các dòng chứa tên folder truyện và các thông tin đi kèm. Mỗi dòng bao gồm các thông tin cách nhau bằng dấu phẩy ( , ) theo thứ tự sau:
    + tên folder truyện. Ví dụ bạn muốn làm cuốn Sát Thần ở folder sat_than. Chú ý không được có bất kỳ khoảng trắng thừa nào ở trước và sau tên folder, có nghĩa là tên folder đứng ở đầu dòng và sau tên folder là dấu phẩy (không có khoảng trắng)
    + Cập nhật hay làm mới. 0 là làm truyện mới, 1 là cập nhật truyện cũ
    + Kiểm tra tự động số chương. 0 là bỏ qua, 1 là có kiểm tra (xem phần 4: Làm truyện tất-cả-trong-một)
    + Loại truyện. 1 là truyện không chia thành quyển, 2 là truyện chia thành các quyển
    + Nếu loại truyện là 2 (chia thành quyển), Bạn cần thêm thông tin số quyển bắt đầu (xem 3.5: Chạy format_src_text.jsee để tạo code HTML sơ bộ, phần các popup)​
    - Ví dụ dòng sau:
    sat_than, 0, 0, 1
    có nghĩa là làm truyện Sat Thần ở folder sat_than, làm truyện mới chứ không phải cập nhật, không kiểm tra tự động số chương, đây là loại truyện không chia thành các quyển.

    - Ví dụ dòng sau:
    ban_long, 1, 0, 2, 6
    có nghĩa là làm truyện Bàn Long ở folder ban_long, cập nhật truyện cũ, không kiểm tra tự động số chương, đây là loại truyện chia thành các quyển, cập nhật bắt đầu từ quyển thứ 6.

    Chú Ý: loại truyện không chia quyển cần 4 thông tin, loại truyện chia thành quyển cần 5 thông tin.

    - Mỗi truyện trên một dòng, không có dòng trống ở đầu danh sách hay ở giữa các dòng, có một dòng trống ở cuối danh sách. Ví dụ bạn muốn làm 2 cuốn Sát Thần và Bàn Long như 2 thí dụ ở trên, vậy thì file nightly_jobs.txt của bạn sẽ trông thế này:
    Mã:
    sat_than, 0, 0, 1
    ban_long, 1, 0, 2, 6
    (dòng trống cuối danh sách)
    
    5.3 Chạy script nightly.jsee
    - bạn đóng tất cả các file lại, chỉ mở file nightly_jobs.txt
    - chạy script nightly.jsee
    - Sau khi script kết thúc công việc các con số thống kê & thông báo sẽ xuất ra output bar. Bạn dựa vào đó để hoàn tất công việc. Theo test của tôi tốc độ xử lý của Easy eBook Lite cỡ 25-30 chương / phút hay 600KB/phút, có nghĩa là trên máy của tôi khoảng 35MB được xử lý mỗi giờ. Bạn có thể tham khảo con số này để tính khối lượng phù hợp cho mình.

    Cập nhật ngày 1-10-2013
    Sửa Lỗi & Cải Tiến
    - Chia nhỏ file text nguồn ra làm từng phần để tăng tốc độ xử lý
    - Cập nhật truyện tự động: cập nhật truyện theo các bước giống như làm truyện mới (không cần làm các bước thủ công như phiên bản cũ)
    - Hỗ trợ thêm loại eBook chia thành các quyển nhỏ (như Bàn Long). Easy eBook Lite hỗ trợ 2 loại eBook: truyện không chia thành quyển (chỉ gồm các chương) và truyện chia thành các quyển nhỏ
    - Một số cải tiến về mặt hình thức (trang bìa cho từng quyển nhỏ, đánh số chương phù hợp cho 2 loại truyện, ...)
    - Sửa nội dung hướng dẫn cài đặt và sử dụng
    - Download bản sửa lỗi: trong phần Cài Đặt & Sử Dụng Bộ Script Easy eBook Light, phần 1.3. Cài Easy eBook Lite (link đã cập nhật)
    - Cài đặt:
    + Cài mới: xem Cài Đặt & Sử Dụng Bộ Script Easy eBook Light
    + Cài bản sửa lỗi: đóng EmEditor, đổi tên folder Easy_eBook_Lite thành Easy_eBook_Lite_saved rồi giải nén bản sửa lỗi ra, thay vào chỗ cũ.​

    Bonus: Lọc Tên Riêng Trong Text Nguồn
    (Cập nhật 11-8-2014)
    - Cách sử dụng: mở file text nguồn rồi chạy script nameFilter.jsee
    - Lọc các cụm từ có ít nhất 2 từ và được viết hoa đầu mỗi từ.
    - Lập danh sách các cụm từ có số lần xuất hiện vượt qua ngưỡng người dùng nhập vào khi chạy script
    - nameFilter.jsee độc lập với bộ script làm eBook, chỉ cần cài EmEditor là có thể dùng

    Download nameFilter.jseewww.mediafire.com
     
    Chỉnh sửa cuối: 11/3/15
  2. Lăng Tiêu

    Lăng Tiêu Thành viên kích hoạt

    Được thích:
    141
    Đón chờ bộ Script của bác.

    Em thì đã chuyển sang EmEditor gần 2 năm nay rồi, cũng tự viết một số macro hỗ trợ nhưng vẫn chưa chuẩn lắm, thêm là không có học về html và Regular Expression nên chỉ làm xử lí text thường thôi rồi cũng phải chuyển sang Word làm thêm một số công đoạn nữa nên đang mong bản của bác đễ học hỏi một số kinh nghiệm.
     
  3. LenhHoXung

    LenhHoXung Thành viên kích hoạt

    Được thích:
    15
    Cái emeditor này bắt trả tiền mua hả bác? Script của nó viết bằng VB luôn hay = ngôn ngữ gì hả bác? Script của bác all in one các tính năng giới thiệu luôn hả bác? mình chuyển sang dùng cái này thì lấy text về phải save dưới dạng html rồi mới edit được hả bác? :cute71:
     
  4. ﻲA Bư✯

    ﻲA Bư✯ ››Thiếu nhiều thứ lắm™ Đại Boss

    Được thích:
    12,514
    Mong chờ scrip của bạn lâu rồi a.:oni46::oni46::oni46:
    PS: Mình hỏi chút: dùng EmEditor cho người không chuyên thì xài phiên bản nào vậy bạn?
     
  5. cuonghv

    cuonghv Thành viên kích hoạt

    Được thích:
    38,732
    Download EmEditor Pro 12 full

    [DLOAD]32 bit: http://file.sinhvienit.net/c6ee15b2
    ------------------------------------------------------------
    64 bit: http://file.sinhvienit.net/c76a15ab[/DLOAD]

    Key đăng ký:
     

Thành viên đang xem bài viết (Users: 0, Guests: 0)