MarkupString.Pueblo
2.31.3
dotnet add package MarkupString.Pueblo --version 2.31.3
NuGet\Install-Package MarkupString.Pueblo -Version 2.31.3
<PackageReference Include="MarkupString.Pueblo" Version="2.31.3" />
<PackageVersion Include="MarkupString.Pueblo" Version="2.31.3" />
<PackageReference Include="MarkupString.Pueblo" />
paket add MarkupString.Pueblo --version 2.31.3
#r "nuget: MarkupString.Pueblo, 2.31.3"
#:package MarkupString.Pueblo@2.31.3
#addin nuget:?package=MarkupString.Pueblo&version=2.31.3
#tool nuget:?package=MarkupString.Pueblo&version=2.31.3
MarkupString.Pueblo
Pueblo for MarkupString: writes core's shared
vocabulary — sounds, pictures, panes, clearing the screen and prefetching — in the Pueblo client's own
HTML extensions.
You say a thing once; this package is how a Pueblo client hears it. The same text goes to an MXP client
through MarkupString.Mxp, to a browser through MarkupString.Html, and to a terminal, which gets a
picture's description, a pane's text, and nothing for a sound.
dotnet add package MarkupString.Pueblo
Usage
using MarkupString;
using MarkupString.Ansi;
using MarkupString.Html;
using MarkupString.Pueblo;
var registry = MarkupRegistry.Empty.WithAnsi().WithHtml().WithPueblo();
var line = MarkupText.Concat([
MarkupText.Sound("door.wav", volume: 80),
MarkupText.Pane(MarkupText.Plain("North: the gate"), "map", "The Map")]);
line.Render(MarkupFormat.Pueblo, registry);
// <img xch_sound="play" href="door.wav" xch_volume="80"><xch_pane action="redirect" name="map" panetitle="The Map">North: the gate<xch_pane action="redirect" name="_previous">
Reading Pueblo
WithPueblo() on a DecoderRegistry reads Pueblo's HTML from a server. Turn it on with
decoder.EnableProtocol(PuebloDecoding.Protocol) after the greeting. See Decoding.
Line endings
A Pueblo connection is in HTML mode, where a newline is whitespace, so MarkupFormat.Pueblo writes a
line ending as <BR> and a newline — PennMUSH's queue_eol in HTML mode. That is part of the format
itself and needs no registration; this package is what writes the tags.
Elements
| Factory | Written as |
|---|---|
MarkupText.Sound(source, volume, repeats), Music(...) |
<img xch_sound="play" href= xch_volume=>, or "loop" for repeats: SoundMarkup.Forever |
MarkupText.StopSound(channel) |
<img xch_sound="stop" xch_device="wave"\|"midi"> |
MarkupText.Image(source, description, width, height, align) |
<img src= alt= width= height= align=> |
MarkupText.Pane(content, name, title) |
<xch_pane action="redirect" name= panetitle=>content<xch_pane action="redirect" name="_previous"> |
MarkupText.ClearScreen() |
<xch_page clear="text"> |
MarkupText.Preformatted(content) |
the content, each line ending in <BR> like the rest of the stream (no <xch_mudtext>: MUSHclient does not know it and breaks only at <BR>) |
MarkupText.Prefetch(source) |
<xch_prefetch href= xch_prob="100"> |
Pueblo has two players, one for wave files and one for MIDI, and picks between them by the file; it has no music channel as such, and plays a sound once or loops it, without a count. It has no gauges, status bar or variables, and those write their text.
The Pueblo handshake — PUEBLOCLIENT, and the sequence that moves a client into HTML — belongs to the
telnet layer, not to text. Names and attributes are the client's own, from its source
(uecasm/pueblo: ChSound.cpp, ChPaneTag.cpp, ChHtmlPane.cpp,
ChHeadElement.cpp).
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. net11.0 is compatible. |
-
net10.0
- MarkupString (>= 2.31.3)
- MarkupString.Html (>= 2.31.3)
-
net11.0
- MarkupString (>= 2.31.3)
- MarkupString.Html (>= 2.31.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.31.3 | 0 | 11/15/2026 |
| 2.31.2 | 343 | 11/15/2026 |
| 2.31.1 | 391 | 11/15/2026 |
| 2.31.0 | 2,194 | 11/13/2026 |
| 2.30.0 | 572 | 11/12/2026 |
| 2.29.1 | 101 | 11/11/2026 |
| 2.29.0 | 84 | 11/11/2026 |
| 2.28.1 | 101 | 11/11/2026 |
| 2.28.0 | 2,757 | 11/10/2026 |
| 2.27.3 | 964 | 11/9/2026 |
| 2.27.2 | 291 | 11/7/2026 |
| 2.27.1 | 137 | 11/7/2026 |
| 2.27.0 | 93 | 11/7/2026 |
| 2.26.0 | 89 | 11/7/2026 |
| 2.25.0 | 1,312 | 11/3/2026 |
| 2.24.2 | 1,451 | 10/29/2026 |
| 2.24.1 | 102 | 10/29/2026 |
| 2.24.0 | 357 | 10/28/2026 |
| 2.23.1 | 793 | 10/27/2026 |
| 2.23.0 | 1,037 | 10/24/2026 |