In zhwp, the character 新 is used to mark new articles, just like what you do on enwp with N. zh characters (hanzi, kanji, hanja) generally takes a full em block, which according to Unicode EastAsianWidth rules would be twice the width of latin characters.
There are two possible non-language-hardcode solutions IMHO:
- Use wcwidth (implementations exist on NPM) instead of string length for nbsp padding length calculation
- This assumes normal-width monospace text to be 0.5em, which is often not the case. (Japanese convention, for example, uses 2/3 em.)
- This requires a not-too-large range table.
- This requires a fixed space equal to the sum of the widths of all labels before the time field. While it looks acceptable for the good old nmbD labels, kowiki users would have a very different idea about that. (They have 새글 잔글 봇 데.)
- Use a tab. The tab-size CSS property can be used if the default 8-col tabstop doesn't look good.
- This solution sounds nice and clean without all the nbsp problems (why don't you use white-space:pre by the way?), but since browser support for this property is poor, full control over the width cannot be assumed.
- Also, kowiki.
Or you can go for some table formatting. HTML4-era wisdom. Still, kowiki.
The current output looks like: (replaced 新 with NN)
00:14 NN 00:13