How avlorayne/textpipeline works
Text Pipeline is a Unity/TextMeshPro runtime package for stripping custom, HTML-like markup from authored text and applying the corresponding effects to TMP character ranges. The main flow runs from a TMP object’s TextPipeline component through optional text sources, markup analysis and sink execution, then updates the displayed text. Settings control configured source/sink order; the registry supplies markup metadata and cached accessors. The README documents additional sample effects, nested scopes and coroutine scheduling. Some runtime modules and demo code are indexed but not excerpted, so uncertain implementation links are omitted.
Main entry points: TextPipeline.cs TextPipeline · TextPipelineSettings.cs Pipeline settings · MarkupRegistry.cs Markup registry · TextInfoMarkupParser.cs Markup parser
Components 19
Runtime pipeline
- TextPipeline
Runtime/Core/TextPipeline.cs - Pipeline settings
Runtime/Core/TextPipelineSettings.cs - Text sources
Runtime/Core/ITextSource.cs - Type discovery
Runtime/Core/TypeFinder.cs
Markup model
- Markup parser
Runtime/Postprocess/AnalyseTree/TextInfoMarkupParser.cs - TMP character ranges
Runtime/Postprocess/AnalyseTree/TextInfoRange.cs - Instance tree builder
Runtime/Postprocess/Build&Execute/InstanceTreeBuilder.cs - Analysis tree
Runtime/Postprocess/AnalyseTree/AnalyseTreeNode.cs - Markup declarations
Runtime/Attributes/MarkupAttribute.cs - Markup value types
Runtime/Attributes/MarkupDataType.cs
Effect execution
- Markup registry
Runtime/Postprocess/Registry/MarkupRegistry.cs - Property injection
Runtime/Postprocess/Registry/MarkupInject.cs - Postprocessor executor
Runtime/Postprocess/Build&Execute/PostProcessorExecute.cs - Text segments
Runtime/Postprocess/Build&Execute/TextSegment.cs - Effect sinks
Runtime/Core/ITextSink.cs
Effects demo
- Demo effect sinks
Samples~/Effects Demo/ExampleSinks.cs - Demo bootstrap
Samples~/Effects Demo/EffectsDemoBootstrap.cs
Other components
- TMP text
- Text author
Connections 23
- Text author → TMP text: authors text
README.md - TMP text → TextPipeline: hosts component
README.md - TextPipeline → Text sources: runs preprocessing
Runtime/Core/TextPipeline.cs - TextPipeline → Pipeline settings: reads configuration
Runtime/Core/TextPipeline.cs - Pipeline settings → Type discovery: discovers types
Runtime/Core/TextPipelineSettings.cs - TextPipeline → Markup parser: analyses markup
Runtime/Core/TextPipeline.cs - Markup parser → Analysis tree: builds tree
Runtime/Postprocess/AnalyseTree/TextInfoMarkupParser.cs - Markup parser → Markup registry: looks up markups
Runtime/Postprocess/AnalyseTree/TextInfoMarkupParser.cs - TextPipeline → Instance tree builder: builds instances
Runtime/Core/TextPipeline.cs - TextPipeline → Postprocessor executor: dispatches sinks
Runtime/Core/TextPipeline.cs - Postprocessor executor → Effect sinks: calls postprocess
Runtime/Postprocess/Build&Execute/PostProcessorExecute.cs - Postprocessor executor → Text segments: creates segments
Runtime/Postprocess/Build&Execute/PostProcessorExecute.cs - Text segments → TMP character ranges: processes characters
Runtime/Postprocess/Build&Execute/TextSegment.cs - Text segments → Property injection: injects properties
Runtime/Postprocess/Build&Execute/TextSegment.cs - Property injection → Markup registry: uses accessors
Runtime/Postprocess/Registry/MarkupInject.cs - Markup registry → Markup declarations: reads declarations
Runtime/Postprocess/Registry/MarkupRegistry.cs - Markup registry → Markup value types: validates values
Runtime/Postprocess/Registry/MarkupRegistry.cs - Pipeline settings → Effect sinks: orders sink types
README.md - Pipeline settings → Text sources: configures sources
README.md - TextPipeline → TMP text: updates display
Runtime/Core/TextPipeline.cs - Demo effect sinks → Effect sinks: implements effects
Samples~/Effects Demo/ExampleSinks.cs - Demo bootstrap → TextPipeline: replays text
Samples~/Effects Demo/EffectsDemoBootstrap.cs - Demo bootstrap → Demo effect sinks: demonstrates effects
README.md