Tôi có tệp HTML được xuất từ Scrivener. Nó chứa các kiểu CSS trong ...
[không phải trong một tệp CSS riêng]. Tôi cần chuyển đổi các kiểu này thành kiểu nội tuyến. Làm thế nào tôi có thể hoàn thành nó trong KM?
Những gì tôi muốn làm là đây
- Khi một tệp
FileName.html
được thêm vào một thư mục, KM sẽ đọc tệp đó thành một biến - Chuyển đổi kiểu CSS thành kiểu nội tuyến
- Viết nội dung đã chuyển đổi trở lại tệp đó
Bước 1 và 3 có thể được thực hiện dễ dàng. Nhưng mình không biết làm Bước 2
Có những trang web cung cấp dịch vụ này, chẳng hạn như https. // gửi thư trước. io/ và mailchimp. com
Tôi cũng đã tìm thấy các cuộc thảo luận từ kiểu CSS sang kiểu nội tuyến thông qua JavaScript - Thư viện tuyệt vời và
và một số tập lệnh như JavaScript https. //ý chính. github. com/nirvanatikku/1034b8f4445efe831616e6f6e594615f và nút. js https. //github. com/lukehorvat/kiểu-tính-đến-kiểu-inline. Nhưng tôi không biết cách triển khai chúng trong Bàn phím Maestro
Dưới đây là mẫu tệp HTML được xuất từ Scrivener
Tốt nhất, tôi muốn xóa một số kiểu không cần thiết [chẳng hạn như margin: 0.0px 0.0px 0.0px 0.0px
và -webkit-text-stroke: #000000
] để làm cho tệp trông gọn gàng hơn
Bất kỳ trợ giúp đánh giá cao
Đây có phải là những gì bạn đề nghị?
Đây là tập lệnh Perl nhanh và bẩn và văn bản HTML của bạn trong một tệp riêng để minh họa khái niệm
Lưu trữ. khóa kéo [2. 6KB]
Đây là những gì nó đang làm
- Đọc nội dung tệp vào một biến
- Đọc các định nghĩa kiểu trong tiêu đề vào một biến khác và xóa chúng khỏi tiêu đề
- Tạo một mảng định nghĩa phong cách
- Đối với mỗi định nghĩa kiểu, hãy đọc thẻ lớp và kiểu của thẻ đó
- Tìm kiếm thẻ lớp đó trong biến nội dung tệp và thay thế nó bằng định nghĩa kiểu
- In các bản sửa đổi và viết chúng theo kiểu. html
Bây giờ xin chào. html và tạo kiểu. html sẽ trông giống hệt nhau nhưng được mã hóa theo ý muốn của bạn
Đây là Perl để tham khảo
#!/usr/bin/perl
my $html = "hello.html";
my [$t, $s];
open[IN, "< $html"] || die "Could not open HTML file.\n";
undef $/;
$data = ;
close[IN];
$data =~ s/\s*[.+?]\s*\n//ms;
my $styles = $1;
my @tags = split /\n/, $styles;
foreach my $tag [@tags] {
$tag =~ /.+?\.[.+?]\s/;
$t = $1;
$tag =~ /{[.+?]}/;
$s = $1;
$data =~ s/class="$t"/style="$s"/g;
}
print "Results:\n\n$data";
open[OUT, "> styled.html"] || die "Could not open HTML file.\n";
print OUT $data;
close[OUT];
Các tuyên bố từ chối trách nhiệm thông thường được áp dụng
À hôm qua lỡ mất rồi
Không vấn đề gì
Tôi đã có thể nghiên cứu mã của bạn và đủ hiểu để thực hiện các thay đổi cho phù hợp với nhu cầu của mình
Thay vì xóa các kiểu không mong muốn khỏi $data
sau khi thay thế, tôi đã xóa chúng khỏi $styles
trước khi thực hiện thay thế
Tôi có thể cần thực hiện nhiều thay đổi hơn tùy thuộc vào nhu cầu trong tương lai của mình, nhưng đây là giao diện mã của tôi bây giờ