process() — tailwindcss Function Reference
Architecture documentation for the process() function in clojure.rs from the tailwindcss codebase.
Entity Profile
Dependency Diagram
graph TD 0208fbad_432c_7f0e_410d_a8981acd65a5["process()"] d5897009_a00e_cc82_ddfa_bf299b0bd83d["clojure.rs"] 0208fbad_432c_7f0e_410d_a8981acd65a5 -->|defined in| d5897009_a00e_cc82_ddfa_bf299b0bd83d 5b2b1646_3420_40e7_8b3c_0f7b3e705fb3["is_keyword_character()"] 0208fbad_432c_7f0e_410d_a8981acd65a5 -->|calls| 5b2b1646_3420_40e7_8b3c_0f7b3e705fb3 style 0208fbad_432c_7f0e_410d_a8981acd65a5 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
crates/oxide/src/extractor/pre_processors/clojure.rs lines 26–198
fn process(&self, content: &[u8]) -> Vec<u8> {
let content = content
.replace(":class", " ")
.replace(":className", " ");
let len = content.len();
let mut result = content.to_vec();
let mut cursor = cursor::Cursor::new(&content);
while cursor.pos < len {
match cursor.curr {
// Consume strings as-is
b'"' => {
result[cursor.pos] = b' ';
cursor.advance();
while cursor.pos < len {
match cursor.curr {
// Escaped character, skip ahead to the next character
b'\\' => cursor.advance_twice(),
// End of the string
b'"' => {
result[cursor.pos] = b' ';
break;
}
// Everything else is valid
_ => cursor.advance(),
};
}
}
// Discard line comments until the end of the line.
// Comments start with `;;`
b';' if matches!(cursor.next, b';') => {
while cursor.pos < len && cursor.curr != b'\n' {
result[cursor.pos] = b' ';
cursor.advance();
}
}
// Consume keyword until a terminating character is reached.
b':' => {
result[cursor.pos] = b' ';
cursor.advance();
while cursor.pos < len {
match cursor.curr {
// A `.` surrounded by digits is a decimal number, so we don't want to replace it.
//
// E.g.:
// ```
// gap-1.5
// ^
// ```
b'.' if cursor.prev.is_ascii_digit()
&& cursor.next.is_ascii_digit() =>
{
// Keep the `.` as-is
}
// A `.` not surrounded by digits denotes the start of a new class name in a
// dot-delimited keyword.
//
// E.g.:
// ```
// flex.gap-1.5
// ^
// ```
b'.' => {
result[cursor.pos] = b' ';
}
// End of keyword.
_ if !is_keyword_character(cursor.curr) => {
result[cursor.pos] = b' ';
break;
}
// Consume everything else.
_ => {}
};
Domain
Subdomains
Calls
Source
Frequently Asked Questions
What does process() do?
process() is a function in the tailwindcss codebase, defined in crates/oxide/src/extractor/pre_processors/clojure.rs.
Where is process() defined?
process() is defined in crates/oxide/src/extractor/pre_processors/clojure.rs at line 26.
What does process() call?
process() calls 1 function(s): is_keyword_character.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free