PC [gdoc, html] Dùng Google Doc tạo html sạch để làm epub

Thảo luận trong 'Hướng dẫn chung' bắt đầu bởi tran ngoc anh, 14/9/21.

  1. vinaguy

    vinaguy Lớp 11

    Không hề nhỏ nhé Cô giáo :) Lúc đầu em cứ tưởng là dọn rác, không dè Cô cho phát làm từ đầu; Không những thế lại còn TCVN3, cái mà từ năm 2010 tới giờ em không đụng tới nữa... nên lúc mới mở lên, không có font nên trông như "mẹt thục địa", lại "ngớ ngàng, ngớ ngàng" mất vài chục phút vừa tìm font cho máy vừa định hình cách xử lý tài liệu; đã thế file lại "Bự tổ chảng" ra mới sợ; rồi tới cuốn sách cô cho gì mà nhiều format định dạng linh tinh (tóm lại đây là một trường hợp "khó điển hình" rồi, chứ không "nhỏ" nữa đâu :))
    Cách tìm style của bác @RGBCD "dư lào" thì em không biết. Còn cách của em như sau:
    - Mở file lên "tặng cho nó bông hoa" và định hình xem thứ cần sửa được class nào điều khiển (với file của Cô gửi, mỗi chuyện in nghiêng không thôi mà đã có tới cỡ khoảng gần 25 cái class - đây là lý do tại sao bác @RGBCD bị rớt bớt "hàng")
    - Thứ tự xử lý các loại: 1) in nghiêng; 2) in đâm; 3) title, tab giữa, tab phải (trong lúc tìm 1 và 2 sẽ thấy luôn cả 3, tuy không phải tất cả, nhưng cũng gần hết); 4) <sup> (vụ này bị em bỏ qua nên Cô mới cho trượt, thi lại đây.); 5) ảnh ót, note nót gì đó thì lúc convert sang epub nó đã tự động cho cái link, tuy không vừa ý nhưng ta sẽ xử lý khi trang trí.
    - Xử lý: Vào css search (curent file) tìm italic/bold/center/sup/... lần lượt từng thứ (vì file của cô giáo cho quá nhiều class nên không thể tua qua tua lại) --> double click tên class, copy dán vào ô find và all text files --> sẽ thấy class đó có dạng nào trong file html --> viết find và replace cho nó và replace all, thỉnh thoảng nhớ tặng cho nó bông hoa cho đẹp và đỡ rối mắt.
    Chỉ đơn giản có thế thôi Cô ạ. Hôm qua em mất 45 phút gọi là "tẩy giun" nhưng thực tế em phải làm từ đầu của quá trình làm sách và luớ quớ với cái TCNV3 nên mất thời gian :) File bự, máy yếu nên cũng xoay xoay mất mớ thời gian nữa mới xong.
    Sợ Cô giáo quá rồi :)
     
    tran ngoc anh thích bài này.
  2. vinaguy

    vinaguy Lớp 11

    Em chưa thử, nhưng em nghĩ đoạn này sẽ gặp vấn đề bác ạ. Chắc phải edit lại câu lệnh chút chút.
     
  3. RGBCD

    RGBCD Lớp 3

    Tôi dùng đt để viết lệnh mà. Ý tưởng là như vậy, khi ngồi máy tính mới biết đúng sai thế nào để chỉnh. :D
     
  4. vinaguy

    vinaguy Lớp 11

    BỎ CÁC TAG TRỐNG
    Em bổ sung thêm cái này:
    F: <span>|<div>|<p></p>|<p>\s+</p>|<p><br(.+?)/></p>|</i><i>|<i></i>|</b><b>|<b></b> {liệt kê hết những thẻ trắng thường thấy, lệnh này cũng viết sẵn để dùng cho những lần sau}
    R: không nhập gì
    Replace All
     
    RGBCD thích bài này.
  5. tran ngoc anh

    tran ngoc anh Cử nhân

    Như vậy cho thấy xóa rác regex ít phù hợp hơn pandoc trong ca này, ngay cả khi có thể regex đúng hết yêu cầu cũng sẽ mất kha khá thời gian, tiềm ẩn rủi ro mất nghiêng chỗ nào đó...

    Đây mới là rác cần xóa chứ các cụ, giun cũng có loại dễ loại khó tẩy mà ^.^ Với các cụ mà ra đề dễ hơn file này thì không ăn thua, các cụ regex vèo vèo ấy mà :D

    Đây là mục đích, các file OCR hay file soát lỗi tương đối đơn giản, không nhiều thử thách, em muốn mang tới cho các cụ một "làn gió mới mới một chút" thôi :D
     
  6. RGBCD

    RGBCD Lớp 3

    Vừa ngồi máy tính thử thì lệnh này:

    F: (<p) (.+?)>|(<span) (.+?)>|(<body) (.+?)>
    R: \1>
    Replace

    thì nó chỉ hiệu nghiệm với mỗi thẻ p, còn thẻ span và body nó đều trả về mỗi > là sao nhỉ?

    Trong khi

    F: (<span) (.+?)>
    R: \1>



    F: (<body) (.+?)>
    R: \1>

    đều OK. Tôi chưa từng dùng kiểu lệnh đồng thời như thế này nên chưa có kinh nghiệm. Bạn @vinaguy@tran ngoc anh có cao kiến gì không? :D Hiện tại sau khi đổi xong i, b tôi vẫn xóa css để xóa hết class, nhưng vẫn còn id và lang trong thẻ nên rất muốn dùng lệnh phía trên để làm sạch các thẻ.

    Còn lệnh xóa thẻ trắng:

    F: <span>|<div>|<p></p>|<p>\s+</p>|<p><br(.+?)/></p>|</i><i>|<i></i>|</b><b>|<b></b>
    R: không nhập gì

    thì OK

    Có thể phải làm vài lần vì có file nó ra kiểu này:

    <p><span><span><span></span></span></span></p> nên phải chạy 2 lần mới hết thẻ trắng.
     
  7. RGBCD

    RGBCD Lớp 3

    Nhiều thịt thì càng bổ. Cho nên càng có nhiều cách thì càng có nhiều lựa chọn mà. Có ai bài bác gì đâu. Có điều với mỗi cách phải thử với các file có cấu trúc cụ thể để xem phương pháp đó có ưu, nhược gì để khắc phục hoặc nên chọn cách nào đó tối ưu hơn. Mục đích cuối cùng vẫn là làm sao tiết kiệm sức dân, tiết kiệm thời gian, điện đóm các kiểu... :P
     
  8. RGBCD

    RGBCD Lớp 3

    @Nga Hoang
    Với word bạn cần tắt chế độ Automatic bulleted lists và chế độ Automatic numbered lists thì hay hơn.

    Vui lòng đăng nhập hoặc đăng ký để xem link

    Còn file ocr xong cần xử lý để có text thuần hơn:

    lý do ở Vui lòng đăng nhập hoặc đăng ký để xem link

    còn cách làm tốt nhất thì ở bài này:

    Vui lòng đăng nhập hoặc đăng ký để xem link
     
  9. RGBCD

    RGBCD Lớp 3

    Hay để xóa class, id, lang ta dùng lệnh này nhỉ, chẳng cần quan tâm thẻ nào nữa. :D

    F: \s+class="(.+?)"|\s+id="(.+?)"|\s+lang="(.+?)"
    R: không nhập gì
    Replace all
     
  10. tran ngoc anh

    tran ngoc anh Cử nhân

    Cụ ba màu chỉ nên nhóm () khi cần lấy lại nó ở ô rep, rep cụ để trống thì cụ nhóm (.+?) chi? Chưa hiểu regex nhé! Trừ 2 điểm hiểu.
     
    RGBCD thích bài này.
  11. tran ngoc anh

    tran ngoc anh Cử nhân

    Các cụ chưa có bùa cho ca này sao ^ ^

    upload_2021-9-17_13-12-6.png

    Tìm được tất cả các thẻ, bất kể có class= hay lang= hay id= gì cũng tìm được, ở giữa chỉ cần là khoảng trắng hoặc không có ký tự nào hoặc kể cả là xuống dòng là nó đẩy đi hết, AIO luôn. Tặng các cụ! :D
     
    Chỉnh sửa cuối: 17/9/21
  12. RGBCD

    RGBCD Lớp 3

    Tìm thì tìm được mà. Nhưng ở Replace nó trả lại chưa được như ý.
    Cô giáo chấm điểm nương tay quá. :P
     
  13. tran ngoc anh

    tran ngoc anh Cử nhân

    Tìm thẻ không ôm nội dung thì chỉ có xoá hết thôi chứ rep như nào nữa cụ?
     
  14. RGBCD

    RGBCD Lớp 3

    OK tìm được và thay được rồi.

    upload_2021-9-17_14-53-37.png

    F: <(p|span|div|i|b|em|strong|h1|h2|h3|h4|h5|h6|body|li|aside|section|sup|sub|blockquote|figcaption|tbody|table|td|tr)\b[^>]*>
    R: <\1>

    1 lệnh này thì tất cả phần class, id, lang đi sạch.

    đã bỏ thẻ a ra vì thẻ này cần giữ nguyên.

    Sẽ nghiên cứu cách lệnh tiếp theo. :D

    Công nhận cô giáo dạy quá giỏi! :rose:
     
  15. RGBCD

    RGBCD Lớp 3

    Vừa nãy là phát bẩu bài sai, khi chưa làm thử. :P
     
    tran ngoc anh thích bài này.
  16. vinaguy

    vinaguy Lớp 11

    Cái này thì chính xác rồi, làm nhanh lắm rồi, nhưng em không dám xài 1 lúc cả từng đó lắm vì nó lại "rớt hàng". Lấy cái này về chia ra từng mớ để tẩy từ từ an toàn hơn các bác nhễ?
     
  17. tran ngoc anh

    tran ngoc anh Cử nhân

    Câu lệnh gốc của em để xoá thẻ không ôm nội dung, bị trống hoặc chỉ ôm những khoảng trắng, những khoảng xuống dòng, nên là rep all phát một không sao.

    Còn các cụ dùng vào việc khác em không biết à nha
     
  18. RGBCD

    RGBCD Lớp 3

    Cứ rep all đi là sạch. Tôi bỏ thẻ a, thêm br với hr
    Chạy xong br thành <br> hr thành <hr>, tặng bông hoa một cái là về chuẩn ngay.

    Nói chung chỉ cần 4 bước là code sạch sẽ. Tổng thời gian dọn code là 1 phút, bao gồm cả thời gian chép đề. :D

    Một lần nữa cảm ơn cô giáo! {:Bang Tang Du Tu 3:}
     
  19. tran ngoc anh

    tran ngoc anh Cử nhân

    Thời gian càng lúc càng nhanh à? Nối giáo cho địch rồi :D cụ xử lại cái sup với chỗ mất nghiêng em đánh dấu xem ổn chưa?
     
  20. vinaguy

    vinaguy Lớp 11

    Cái <sụp> trong sách hum qua dễ mà bác?
    Nó có 4 hay 5 class gì đó quyết định chiện <sụp> này. Em nhớ được cái text_7, text_8, text_45 và gì gì đó không nhớ nữa.
    F: <span class="text_7">(.*?)</span>
    R: <sụp>\1</sụp>
    Replace all
    Được một thứ. Các thứ còn lại thì vân vân và vân vân
     

Chia sẻ trang này