Đây là code function function correctChapterTitle() { // save key strokes :) var doc = editor.ActiveDocument; var sel = doc.selection; // Sửa lỗi tựa chương sel.Replace("^(?:Chuowng|Chuwowng|Chuwong|Chưong|Chuơng|Chuong|Chưởng) ?([0-9]+)", "Chương \\1", FRM_REGEXP_ALL); sel.Replace("^Chương([0-9])", "Chương \\1", FRM_REGEXP_ALL); // sửa lỗi chương không có tựa => thêm "Vô Đề" sel.Replace("^Chương ([0-9]+)$", "Chương \\1: Vô Đề", FRM_REGEXP_ALL); sel.Replace("^Chương ([0-9]+) ?[+&,-] ?([0-9]+)$", "Chương \\1-\\2: Vô Đề", FRM_REGEXP_ALL); sel.Replace("^Chương ([0-9]+) ?[+&,-] ?[0-9]+ ?[+&,-] ?([0-9]+)$", "Chương \\1-\\2: Vô Đề", FRM_REGEXP_ALL); // sửa lỗi sau số chương thiếu dấu hai chấm sel.Replace("^Chương ([0-9.&+, -]+)([a-zđàáảãạăằắẳẵặâầấẩẫậèéẻẽẹêềếểễệìíỉĩịòóỏõọôồốổỗộơờớởỡợùúủũụưừứửữựỳýỷỹỵ])", "Chương \\1: \\2", FRM_REGEXP_ALL); sel.Replace("^Chương ([0-9]+) ?[+&,-] ?([0-9]) ?[.-] ?([^0-9])", "Chương \\1-\\2: \\3", FRM_REGEXP_ALL); sel.Replace("^Chương ([0-9]+) ?[.-] ?([^ 0-9])", "Chương \\1: \\2", FRM_REGEXP_ALL); // chuẩn hóa chương gộp: Chương 12 + 13 + 14 : xxx ==> Chương 12-14: xxx sel.Replace("^Chương ?([0-9]+) ?[+&,-] ?[0-9]+ ?[+&,-] ?([0-9]+) ?[:.]", "Chương \\1-\\2:", FRM_REGEXP_ALL); // chuẩn hóa chương gộp: Chương 12 + 13 : xxx ==> Chương 12-13: xxx sel.Replace("^Chương ?([0-9]+) ?[+&,-] ?([0-9]+) ?[:.]", "Chương \\1-\\2:", FRM_REGEXP_ALL); // xóa các chương trùng sel.Replace("(^Chương [0-9]+.+\\r\\n)\\1", "\\1", FRM_REGEXP_ALL); // xóa khoảng trắng trước dấu hai chấm và hai dấu 2 chấm liền nhau (do sửa lỗi mà có) sel.Replace(" :", ":", FRM_DEFAULT_ALL); sel.Replace("::", ":", FRM_DEFAULT_ALL); // viết hoa tựa chương và copy vào ToC.html sel.Find("^Chương [0-9]+.+\\r\\n", eeFindNext | eeFindReplaceQuiet | eeFindReplaceRegExp | eeFindSelectAll); sel.ChangeCase(eeCaseCapitalize); // clear highlight doc.HighlightFind = false; }
Sửa lỗi ở hàm correctChapterTitle() Thêm hai dòng (chữ đỏ) ngay sau dòng sel.ChangeCase(eeCaseCapitalize); Mã: // viết hoa tựa chương và copy vào ToC.html sel.ChangeCase(eeCaseCapitalize); [b][color=red]// clear selection sel.Collapse();[/color][/b] // clear highlight doc.HighlightFind = false; PS: đúng là sửa rồi mà quên update, sorry. :))
Vậy lão update cho ta cái tạo mục lục dạng quyển và có mục chia 50 bên trong đi. Thêm 1 cái nữa là ta chưa biết sử dụng cái poster, lão có thể tạo file data cho poster, nó dò từng dòng trong file đó để xóa bên file srctxt được không?
Ta đang viết lại bộ script theo hướng gọn nhẹ hơn. Mấy cái yêu cầu của lão ta sẽ làm. Hiện nay text lấy bằng tool của lão pdota khá ngon, nếu chỉ làm bằng text như vậy sẽ bớt được rất nhiều công đoạn.