1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
//! # Rust-Less
//!
//! `rust_less` 是一个用 Rust 编写的 LESS 到 CSS 解析器和转换器库。
//! 它能够将 LESS 语法解析为抽象语法树(AST),并将其转换为有效的 CSS。
//!
//! ## 功能特性
//!
//! - LESS 解析
//! - CSS 转换
//! - 支持嵌套选择器
//! - 支持变量
//! - 支持媒体查询
extern crate pest_derive;
// 重新导出常用的组件,使API更加清晰
pub use LessParser;
pub use Rule;
pub use ToCss;
// 注意:现在 select 和 media_query 模块已经是公共的,我们可以直接导出它们的类型
pub use Select;
pub use MediaQuery;
pub use Variable;
pub use Selects;
/// 解析LESS字符串并将其转换为CSS
///
/// # 参数
///
/// * `source` - 要解析的LESS源代码字符串
///
/// # 返回值
///
/// 返回转换后的CSS字符串,如果解析失败则返回错误
///
/// # 示例
///
/// ```
/// use rust_less::parse_less;
///
/// let less = ".selector { @width: 100px; width: @width; }";
/// match parse_less(less) {
/// Ok(css) => println!("Generated CSS: {}", css),
/// Err(e) => eprintln!("Error: {}", e),
/// }
/// ```
/// 从文件中解析LESS并转换为CSS
///
/// # 参数
///
/// * `file_path` - LESS文件的路径
///
/// # 返回值
///
/// 返回转换后的CSS字符串,如果解析失败则返回错误
///
/// # 示例
///
/// ```
/// use rust_less::parse_less_file;
///
/// match parse_less_file("path/to/style.less") {
/// Ok(css) => println!("Generated CSS: {}", css),
/// Err(e) => eprintln!("Error: {}", e),
/// }
/// ```