Processor API Reference
The TextProcessor class is the core engine of gtext.
TextProcessor
gtext.processor.TextProcessor
Main processor for transforming text files with extensions.
The TextProcessor reads .gtext files, applies registered extensions, and outputs the transformed content.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
extensions
|
Optional[List[BaseExtension]]
|
List of extension instances to use. If None, uses default extensions. |
None
|
Example
processor = TextProcessor() result = processor.process_file("document.md.gtext") print(result)
Initialize the processor with extensions.
Source code in gtext/processor.py
add_extension
Add an extension to the processor.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
extension
|
BaseExtension
|
Extension instance to add |
required |
process_file
Process a .gtext file and optionally write output.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
input_path
|
str | Path
|
Path to the .gtext source file |
required |
output_path
|
Optional[str | Path]
|
Optional output path. If None and input ends with .gtext, auto-detects output by stripping .gtext extension. |
None
|
Returns:
| Type | Description |
|---|---|
str
|
The processed content as a string |
Raises:
| Type | Description |
|---|---|
FileNotFoundError
|
If input file doesn't exist |
Source code in gtext/processor.py
process_string
Process a string with all registered extensions.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
content
|
str
|
The text content to process |
required |
context
|
Optional[Dict]
|
Optional context dict passed to extensions |
None
|
Returns:
| Type | Description |
|---|---|
str
|
The processed content |
Source code in gtext/processor.py
Usage Examples
Basic Usage
from gtext import TextProcessor
processor = TextProcessor()
result = processor.process_file("document.md.gtext")
Custom Extensions
from gtext import TextProcessor
from gtext.extensions import IncludeExtension
processor = TextProcessor(extensions=[
IncludeExtension(),
# Add custom extensions
])
Process String
from gtext import TextProcessor
processor = TextProcessor()
content = "# Hello World"
result = processor.process_string(content)
With Context
from pathlib import Path
from gtext import TextProcessor
processor = TextProcessor()
context = {"input_path": Path("source.gtext")}
result = processor.process_string(content, context=context)
Add Extension Dynamically
from gtext import TextProcessor
from my_extension import MyExtension
processor = TextProcessor()
processor.add_extension(MyExtension())
result = processor.process_file("document.gtext")