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. tran ngoc anh

    tran ngoc anh Cử nhân

    [​IMG]

    [​IMG]

    Nên định dạng cho thẻ body (hoặc html) để các giá trị như font, cách dòng, hay margin được áp dụng cho toàn file, thẻ p không đặt align mà để tự do, như vậy có thể dùng align="center" cho các phần tử cần canh giữa trong html, ngắn hơn khá nhiều việc dùng style=""

    Có thể dùng word-spacing để điều chỉnh khoảng cách giữa các từ, font Merriweather này em dùng cho cuốn Nền dân trị Mỹ đầu tiên, sau vì thấy ngứa mắt nó quá không dùng nữa, nét khá là đậm nhìn chán, giãn từ ra nhìn đỡ đỡ hơn chút.

    Nếu các cụ thích indent thì thẻ p vẫn còn 1 dòng indent như nhìn, chứ em cho bằng chang hết, canh trái và noindent nên hoàn toàn không cần định dạng thẻ p. Vì thẻ p là thẻ ít bản sắc nhất, thường là cứ thả nổi nó, ko cần css, nó tự cách đoạn và giãn dòng ăn theo giá định set chung cho thẻ body hoặc html ở quy mô tổng file.
     
    vinaguy thích bài này.
  2. vinaguy

    vinaguy Lớp 11

    Lắm lúc nó cũng gặp rắc rối lắm á Cô. Bình thường thì như vậy là đúng, nhưng gặp file có nhiều thơ, thư viết tay... hay format abcd gì đó nó lại đâm mệt. Ca này em gặp rồi
     
  3. tran ngoc anh

    tran ngoc anh Cử nhân

    ...
     
    Chỉnh sửa cuối: 18/9/21
  4. tran ngoc anh

    tran ngoc anh Cử nhân

    ...
     
    Chỉnh sửa cuối: 18/9/21
  5. RGBCD

    RGBCD Lớp 3

    Thử kiếm Nhật nào, công nhận rất tiện lợi. :D

    upload_2021-9-19_11-1-15.png

    ở 2 dòng cuối là 2 lệnh này:

    F: \s+(\.|\)|\]|\!|\?|;|,|:|>|’|”|</p>|</h1>|</h2|</h3>|</h4>|</div>|</i>|</b>|</blockquote>|</em>|</strong>)
    R: \1
    Repl All

    F: (\[|\(|<p>|<h1>|<h2|<h3>|<h4>|<div>|<i>|<b>|<blockquote>|<em>|<strong>)\s+
    R: \1

    Repl All
     
  6. tran ngoc anh

    tran ngoc anh Cử nhân

    Câu lệnh của cụ vẫn có thể rút gọn thêm đó.
     
  7. tran ngoc anh

    tran ngoc anh Cử nhân

    Rút gọn thành: </h[1-4]>
     
    RGBCD thích bài này.
  8. tran ngoc anh

    tran ngoc anh Cử nhân

    Rút gọn thành: <(p|h[1-4]|div|i|b|blockquote|em|strong)>
     
    RGBCD thích bài này.
  9. tran ngoc anh

    tran ngoc anh Cử nhân

    Rút gọn thành: </(p|h[1-4]|div|i|b|blockquote|em|strong)>
     
    RGBCD thích bài này.
  10. tran ngoc anh

    tran ngoc anh Cử nhân

    Giải thích:

    [1-4] một ký tự trong khoảng từ 1 đến 4.
    (p|h[1-4]|div|i|b|blockquote|em|strong) hoặc p hoặc h từ 1 đến 4 hoặc div hoặc blockquote hoặc ...

    Cả hai trường hợp đều tìm một trong các cụm được liệt kê ở trong cặp dấu, nhưng [] tìm một ký tự và không cần có dấu xẹt đứng ở giữa các ký tự, còn () thì có thể dùng cho cụm từ hoặc từ và cần có dấu xẹt đứng phân cách.

    Vậy nên có thể rút gọn thêm từ
    rút gọn thành: [\.\)\]\!\?;,:>’”]
     
    RGBCD thích bài này.
  11. tran ngoc anh

    tran ngoc anh Cử nhân

    Cả đoạn này có thể rút gọn về thành: \s+([\.\)\]\!\?;,:>’”]|</(p|h1|h2|</h3|h4|div|i|b|blockquote|em|strong)>)
    R: vẫn là \1 vì vị trí nhóm chưa bị thay đổi, nhóm () ngoài cũng vẫn là nhóm số 1, vì hễ ai mở nhóm trước được tính số trước, các nhóm nhỏ hơn bên trong cứ tùy theo vị trí dấu mở ( mà đếm lên 1 số.
     
    RGBCD thích bài này.
  12. RGBCD

    RGBCD Lớp 3

    Tiếp tục nghiên cứu thẻ br, vừa test thẻ br nằm trong 3 thẻ h1, p và blockquote.

    Công thức:

    F: <(p|h1|blockquote)>(.*?)<br/>(.*?)<(/\1)>
    R: <\1>\2<\4><\1>\3<\4>
    Repl All

    Nó phải chạy nhiều lần thì mới xong được.

    P.S Nếu thay (.*?) thành (.+?) thì kết quả sẽ khác một chút.
     

    Các file đính kèm:

  13. vinaguy

    vinaguy Lớp 11

    F: \s+(\.|\)|\]|\!|\?|;|,|:|>|’|”|</p>|</h1>|</h2|</h3>|</h4>|</div>|</i>|</b>|</blockquote>|</em>|</strong>)
    R: \1
    Repl All
    Em chưa gặp trường hợp màu đỏ đó bao giờ.
     
  14. vinaguy

    vinaguy Lớp 11

    Lệnh này bác muốn cắt thành hai đoạn ngay chữ <br/>. Nhưng nhiều lúc và phần lớn tag <br/> là có chủ đích, trừ khi <br/><br/> bác ạ. Bác lưu ý chỗ này. Em theo dõi một số câu lệnh của bác em thấy có một số chỗ nguy hiểm. Giống như Cô giáo @tran ngoc anh đã gặp phải trước đây và "sợ luôn việc dọn rác" và chọn làm code sạch đấy :)
     
  15. RGBCD

    RGBCD Lớp 3

    Bạn quên một vấn đề. Tôi dùng những lệnh đó để sửa ebook cũ chứ không dùng nó để phá ebook mới đã được làm cẩn thận. Ebook cũ thường được làm không cẩn thận nên đánh dấu câu sai tè lè ra. Thẻ br nhiều khi dùng không có chủ đích, nhất là những ebook dùng nguồn copy trên mạng. Tất nhiên với br vẫn cần thận trọng một chút.

    Mấy lệnh tôi viết là trên cơ sở thực tế đã gặp phải, khi viết là đúng lúc gặp vấn đề đó, chứ không viết từ sự tưởng tượng.
     
    Chỉnh sửa cuối: 19/9/21
  16. RGBCD

    RGBCD Lớp 3

    Chính cuốn Điệu Valse giã từ có một thẻ p có đến gần chục thẻ br nằm giữa. Lúc trước tôi hay thay <br/> bằng </p><p>. Nhưng chợt nghĩ ra là biết đâu br nằm cả ở những thẻ khác nữa, nên cần cắt chính xác theo thẻ. Trường hợp <p><br/>...</p> và <p>...<br/></p> thì gặp quá nhiều. Nói chung với những ebook cũ làm từ hồi prc là phổ biến, thì cứ việc đưa hết về dạng thẻ trắng cơ bản rồi cấu trúc lại theo ý mình.
     
  17. RGBCD

    RGBCD Lớp 3

    Còn đã có file word mới từ ocr thì tôi vẫn dùng cách của inno14:
    Vui lòng đăng nhập hoặc đăng ký để xem link
    Chưa thử dùng pandoc của cô giáo tna lần nào. Có lẽ bởi vì dạo này không làm ebook mới, lâu lâu làm một vài ebook thì cứ dùng luôn lệnh của word tạo ra code tương đối sạch thôi. Cũng không làm kiểu convert từ word sang epub rồi làm sạch code nữa.

    Vừa rồi có làm lại vài ebook dạng prc cũ nên mới quan tâm lại việc làm sạch code. :D

    Chính vì không làm nhiều ebook nên dù biết loáng thoáng vụ "kiếm Nhật" nhưng tôi cũng không quan tâm lắm. Hôm qua bị cô giáo "khiển trách" nặng quá nên mới thử tìm hiểu chức năng đó xem nó thế nào. :P
     
  18. vinaguy

    vinaguy Lớp 11

    Đây bác. Em nhận xét chỗ này kỹ kỹ hơn tí. Theo em, bác nên bỏ h (h1) ra khỏi chỗ này, thường thì <br/> trong thẻ h sẽ có chủ đích.
    Trong thẻ <p> thì bắt nó là đúng rồi, nhưng lưu ý cách bắt thêm một chút: Ngày xưa sách cứ thường hay bị xuống hàng vô tội vạ, nên nếu bác cứ bắt thẻ <p> như của bác thì vô tình lại "tiếp tay" cho cái xuống hàng vô tội vạ đó... nên theo em, bác nên viết lệnh bắt <br/> mà trước nó có dấu ".\?\!" (không có ngoặc kép) Replace all, sau đó thực hiện lệnh tiếp theo đối với những thẻ <br/> phía trước không có dấu hoặc có dấu phẩy để nối nó lại luôn, đỡ nhầm sau này chứ không nếu bác đồng nhất hết cả <br/> rồi sau này lại rắc rối, cái này làm từng chiếc cho chắc, không replace all.
     
  19. RGBCD

    RGBCD Lớp 3

    Có ai convert từ .doc sang prc mà có chủ đích các thẻ không bạn?
    Ví dụ prc này: Vui lòng đăng nhập hoặc đăng ký để xem link
     
  20. RGBCD

    RGBCD Lớp 3

    Gặp những p này:
    <p><b><i><br/> Tôi xin lỗi.</i></b></p>

    <p><br/> Không có chữ ký. Không biết gửi cho ai. Amelia lấy làm ngạc nhiên bởi giọng nói nghe bình tĩnh đến không ngờ của mình. “Đi ngủ đi, Poppy.”</p>

    <p><br/> --oOo—</p>
    <p><br/>
    <b>Giới thiệu:</b></p> {Cái này chắc định làm tiêu đề}

    Cho nên tôi vẫn băn khoăn là có ebook sẽ có dạng:

    <h1><br/>
    <b>Giới thiệu:</b><h/1>
     

Chia sẻ trang này