Wanted to run this by you for feedback. I've recently added markdown support for LovlyNet - a dedicated FTN for BinktermPHP nodes.
Would appreciate feedback on this idea.
My 2c: in case of something like that being implemented, could it be better to use a more general kludge, such as MARKUP?
^aMARKUP: Markdown 1.0
That would allow for specifying other formats, like BBCode, Gemtext, etc.
My 2c: in case of something like that being implemented, could it be better to use a more general kludge, such as MARKUP?
^aMARKUP: Markdown 1.0
That would allow for specifying other formats, like BBCode, Gemtext, etc.
This makes more sense to me.
I've done up a second draft based on this this feedback.
1. INTRODUCTION
---------------
This document defines the MARKUP kludge line for use in FidoNet-
compatible echomail and netmail messages. Its purpose is to indicate
that the body of a message is formatted using a named markup syntax, allowing capable reader software to render the message with appropriate formatting while remaining fully readable by legacy software that does
not support this kludge.
Unlike a Markdown-specific kludge, MARKUP provides a general mechanism
for identifying the body format of a message. This allows the same
extension point to be used for Markdown, BBCode, Gemtext, and other
formats without requiring a new kludge definition for each syntax.
2. DEFINITIONS
--------------
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in FTA-1006.
"Kludge line": A line in a FidoNet message body beginning with the
ASCII SOH character (0x01), used to carry machine-readable metadata
not intended for direct display to the end user.
"Markup syntax": A textual formatting language used within the visible message body to express structure or presentation, such as Markdown,
BBCode, or Gemtext.
3. THE MARKUP KLUDGE
--------------------
3.1 Syntax
The MARKUP kludge line has the following syntax:
^AMARKUP: <format> <version>
where ^A represents the ASCII SOH character (0x01), <format> is a
registered or otherwise well-known markup format identifier, and
<version> is a format version string meaningful within that format.
Examples:
^AMARKUP: Markdown 1.0
^AMARKUP: BBCode 1.0
^AMARKUP: Gemtext 1.0
3. THE MARKUP KLUDGE
--------------------
3.1 Syntax
The MARKUP kludge line has the following syntax:
^AMARKUP: <format> <version>
where ^A represents the ASCII SOH character (0x01), <format> is a
registered or otherwise well-known markup format identifier, and
<version> is a format version string meaningful within that format.
Examples:
^AMARKUP: Markdown 1.0
^AMARKUP: BBCode 1.0
^AMARKUP: Gemtext 1.0
There's the Synchronet-supported message markup format too: https://wiki.synchro.net/ref:markup
^AMARKUP: Markdown 1.0
^AMARKUP: StyleCodes 1.0
^AMARKUP: Markdown 1.0
^AMARKUP: StyleCodes 1.0
BinktermPHP 1.8.5 (to be released) now uses the MARKUP kludge and adds support for StyleCodes/Synchronet Message Markup. It continues to be enabled/disabled on a per network/uplink basis.
I've also posted a copy of the draft proposal to https://github.com/awehttam/binkterm-php/issues/161
Re: Re: MARKUP kludge
By: Matthew Asham to All on Tue Mar 03 2026 10:41 am
^AMARKUP: Markdown 1.0
^AMARKUP: StyleCodes 1.0
BinktermPHP 1.8.5 (to be released) now uses the MARKUP kludge and adds
support for StyleCodes/Synchronet Message Markup. It continues to be
enabled/disabled on a per network/uplink basis.
I've also posted a copy of the draft proposal to
https://github.com/awehttam/binkterm-php/issues/161
I think it's a good idea and thinking about how best to implement
support (both adding and consuming the kludges in Synchronet).
Maybe I missed it, but does your spec say if/how multiple MARKUP styles/kludges could be used in a single message?
On March 9 2026, Rob Swindell wrote:
Re: Re: MARKUP kludge
By: Matthew Asham to All on Tue Mar 03 2026 10:41 am
^AMARKUP: Markdown 1.0
^AMARKUP: StyleCodes 1.0
BinktermPHP 1.8.5 (to be released) now uses the MARKUP kludge and adds
support for StyleCodes/Synchronet Message Markup. It continues to be
enabled/disabled on a per network/uplink basis.
I've also posted a copy of the draft proposal to
https://github.com/awehttam/binkterm-php/issues/161
I think it's a good idea and thinking about how best to implement support (both adding and consuming the kludges in Synchronet).
Maybe I missed it, but does your spec say if/how multiple MARKUP styles/kludges could be used in a single message?
It does not. I think the assumption is the message is soley the listed MARKUP.
I'm not sure how we would support multiple markups other than perhaps listing the MARKUP kludges in order of precedence, eg: MARKUP: Markdown 1.0,StyleCodes 1.0,BBText 1.0 and then the parser would apply rendering for each in order.
Personally I feel it would be simplest to leave it as a single markup only.
I'm not sure how we would support multiple markups other than perhaps
listing the MARKUP kludges in order of precedence, eg: MARKUP: Markdown
1.0,StyleCodes 1.0,BBText 1.0 and then the parser would apply rendering
for
each in order.
Personally I feel it would be simplest to leave it as a single markup
only.
I agree, definitely simplier. Maybe add some text to your spec
clarifying that a maximum of one MARKUP kludge should be included in a message body and the entire message body is expected to be displayed
with the specified MARKUP applied regardless of where the MARKUP
kludge line appears in the message body.
Updated section 3.2 and 4.2 which now read:
I'd up-vote your message, but alas, FTN doesn't support such thing.
It's on my todo list to get message-up/down voting into an FTSC spec
and supported (at least) by my software.
3. THE MARKUP KLUDGE
--------------------
3.1 Syntax
The MARKUP kludge line has the following syntax:
^AMARKUP: <format> <version>
where ^A represents the ASCII SOH character (0x01), <format> is a
registered or otherwise well-known markup format identifier, and
<version> is a format version string meaningful within that format.
Examples:
^AMARKUP: Markdown 1.0
^AMARKUP: BBCode 1.0
^AMARKUP: Gemtext 1.0
| Sysop: | Dave Parker |
|---|---|
| Location: | Redhill, Surrey |
| Users: | 6 |
| Nodes: | 16 (0 / 16) |
| Uptime: | 351:21:32 |
| Calls: | 51 |
| Files: | 1 |
| D/L today: |
1 files (2K bytes) |
| Messages: | 20,559 |