Chuyển đến nội dung chính

Tổng quan và tài liệu

Trong A-Parser, công cụ tạo mẫu Template Toolkit được sử dụng để định dạng các truy vấn và kết quả. Công cụ tạo mẫu cho phép tạo ra chuỗi cuối cùng (ví dụ: truy vấn hoặc kết quả) theo các quy tắc được xác định trong mẫu. Template Toolkit có nhiều khả năng:

  • Hỗ trợ các điều kiện và vòng lặp
  • Hỗ trợ các biến thông thường (scalar), mảng (array) và hash (mảng liên kết)
  • Hỗ trợ các phương thức cho biến (độ dài chuỗi, tìm kiếm và thay thế, kích thước mảng...)
  • Hỗ trợ các plugin và bộ lọc (xuất và định dạng ngày giờ, tạo các phần tử HTML...)

Ví dụ về việc sử dụng công cụ tạo mẫu

Tài liệu chính thức về Template Toolkit

Ưu điểm lớn của công cụ tạo mẫu này là có đầy đủ tài liệu bằng tiếng Nga và tiếng Anh, dưới đây là các liên kết đến các phần quan trọng nhất của tài liệu:

  • Giới thiệu - thông tin chung
  • Cú pháp - quy tắc và phong cách viết mẫu
  • Chỉ thị - điều kiện, vòng lặp, bộ lọc, plugin và macro
  • Biến - truy cập và cập nhật giá trị của biến, mảng và hash
  • Phương thức ảo - các hàm cài đặt sẵn để xử lý biến, mảng và hash
  • PluginBộ lọc - các tính năng mở rộng của công cụ tạo mẫu, A-Parser hỗ trợ các plugin sau:
    • Date - để tạo các chuỗi định dạng ngày tháng
    • Dumper - xuất bản sao cấu trúc dữ liệu
    • Format - để tạo các hàm định dạng dựa trên cú pháp printf
    • HTML - để tạo các phần tử HTML và thoát mã HTML
    • Filter - để tạo và sử dụng các bộ lọc được xác định và có sẵn thông qua việc tải plugin
    • Math - để sử dụng bất kỳ hàm toán học nào
    • String - triển khai các phương thức bổ sung để làm việc với chuỗi
    • Table - để trình bày dữ liệu dưới dạng bảng
    • URL - để xây dựng các liên kết
    • Wrap - để định dạng các đoạn văn
    • Iterator - để duyệt qua một tập dữ liệu. Một trình lặp (iterator) được tạo tự động ngầm định bởi chỉ thị FOREACH. Plugin này cho phép tạo trình lặp một cách rõ ràng với tên được chỉ định

Ví dụ sử dụng

Ví dụ về các mẫu thường dùng

Ví dụ sử dụng plugin Math

Chọn ngẫu nhiên số lượng liên kết được chỉ định:

[% limit = 5;
USE Math;
FOREACH i IN [1..5];
n = Math.rand(intlinks.size);
intlinks.$n.link _ "\n";
END %]

Ví dụ về vòng lặp FOREACH

Xuất tất cả các liên kết và vị trí của chúng từ mảng $serp:

[% FOREACH item IN p1.serp;
loop.count _ ' - ' _ item.link _ "\n";
END %]

Ví dụ về vòng lặp WHILE

Xuất 5 anchor từ mảng $serp, bắt đầu từ vị trí thứ 3:

[% n = 2;
WHILE n < 7;
p1.serp.${n}.anchor _ "\n";
n = n + 1;
END %]

Ví dụ về điều kiện

Xuất dữ liệu nhất định tùy thuộc vào giá trị của biến:

[% IF p1.totalcount < 1000;
query _ " - ít\n";
ELSIF p1.totalcount < 1000;
query _ " - bình thường\n";
ELSE;
query _ " - nhiều\n";
END %]