Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Relation to GoldEd+ configuration #20

Open
koppor opened this issue Oct 24, 2021 · 0 comments
Open

Relation to GoldEd+ configuration #20

koppor opened this issue Oct 24, 2021 · 0 comments

Comments

@koppor
Copy link
Contributor

koppor commented Oct 24, 2021

TLDR: This seems to be personal notes only. The current configuration possibility is IMHO enough and we do not need a sophisticated language to configure quote templates. I need to add an ADR why keeping a custom condiguration language and not using an existing one.


I found a PDF version of the GoldEd+ manual at https://www.mtonetwork.com/index.php/downloads/download/17-mail-readers/10-golded-man. I really liked the configurability of GoldEd+, maybe we should also work with this?


Message Template Example

Source: https://github.com/golded-plus/golded-plus/blob/54d6e8bb435e5bbfa2f4e6ee3cafd8bfcd740dba/manuals/gold_usr.txt#L1542

@moved* Replying to an article in @oecho.
@moved
@changed* Changed by @cname, @cdate @ctime.
@changed
@forward* Forwarded from @oecho by @cname.
@forward* Originally by: @ofrom, @odate @otime.
@forward* Originally to: @oto.
@message
@forward
@new
@reply@ofrom wrote:
@reply@position
@comment@ofrom wrote:
@comment@position
;@quotedIn article @omessageid, @ofrom wrote:
@quoted@ofrom wrote:
@quoted@position
@quotebuf
@quotebuf@ofrom wrote:
@quotebuf
@quote

--
Signature Signature Signature Signature Signature Signature
Signature Signature Signature Signature Signature Signature

Longer Message Template Example

Source: https://github.com/golded-plus/golded-plus/blob/54d6e8bb435e5bbfa2f4e6ee3cafd8bfcd740dba/cfgs/template/golded.tpl#L1

;   ----------------------------------------------------------------------
;               Sample message template file for GoldED
;   ----------------------------------------------------------------------
;
@LoadLanguage gedlngus.cfg
;
;   ----------------------------------------------------------------------
;   Insert these lines if the message is a moved reply.
;   ----------------------------------------------------------------------
@Moved
@Moved*** Answering a msg posted in area @OEcho (@ODesc).
@Moved
;
;   ----------------------------------------------------------------------
;   Insert these lines if the message is changed, and not from you.
;   ----------------------------------------------------------------------
@Changed
@Changed*** Changed by @CName (@CAddr), @CDate @CTime.
@Changed
;
;   ----------------------------------------------------------------------
;   Insert these lines if the message is forwarded.
;   ----------------------------------------------------------------------
@Forward=============================================================================
@Forward* Forwarded by @CName (@CAddr)
@Forward* Area : @OEcho (@ODesc)
@Forward* From : @OName, @OAddr (@ODate @OTime)
@Forward* To   : @DName
@Forward* Subj : @Subject
@Forward=============================================================================
;
;   ----------------------------------------------------------------------
;   If we are forwarding or changing, the original message is inserted
;   here, with the @Message token.
;   ----------------------------------------------------------------------
@Message
;
@Forward=============================================================================
@Forward
;
;   ----------------------------------------------------------------------
;   Normal template begins.
;   ----------------------------------------------------------------------
Hello @pseudo!
;
;   ----------------------------------------------------------------------
;   Insert extra empty line in new messages (non-replies).
;   ----------------------------------------------------------------------
@New
;
;   ----------------------------------------------------------------------
;   Position cursor for the editor.
;   ----------------------------------------------------------------------
@Position
;
;   ----------------------------------------------------------------------
;   If we are replying without quoting, add these lines.
;   ----------------------------------------------------------------------
@ReplyAnswering a msg of <@ODate>, from @OName{me}{you} to @DName{me}{you}:
@Reply@Position
;
;   ----------------------------------------------------------------------
;   If we are comment-replying, add these lines.
;   ----------------------------------------------------------------------
@Comment@ODate @OTime, @OName{I}{you} wrote to @DName{me}{you}:
@Comment@Position
;
;   ----------------------------------------------------------------------
;   If we are quote-replying, add these lines.
;   ----------------------------------------------------------------------
@Quoted@ODate @OTime, @OName{I}{you} wrote to @DName{me}{you}:
@Quoted@Position
;
;   ----------------------------------------------------------------------
;   For the quotebuffer, add these lines.
;   ----------------------------------------------------------------------
@Quotebuf
@Quotebuf@ODate @OTime, @OName{I}{you} wrote to @DName{me}{you}:
@Quotebuf
;
;   ----------------------------------------------------------------------
;   Insert quote of the original message here, if our message is a
;   comment-reply or quote-reply.
;   ----------------------------------------------------------------------
@Quote

;   ----------------------------------------------------------------------
;   Sign the message with your first name.
;   ----------------------------------------------------------------------
@CFName

;   ----------------------------------------------------------------------
;   End of template. Confused? Me too! :-)
;   ----------------------------------------------------------------------

Full specification

Source: https://github.com/golded-plus/golded-plus/blob/54d6e8bb435e5bbfa2f4e6ee3cafd8bfcd740dba/manuals/gold_ref.txt#L5989

The message template gives you a ready-made skeleton for writing your
messages in the editor. The template is one of GoldED's many strong
features. With this, you can eliminate the tedious typing of greetings
etc etc. GoldED also provides a number of replacement strings,
"tokens", to dynamically add message specific information to the
template.

As in the configuration file, a semicolon (;) first on the line makes
the line a comment. Any other line is put into the editor file, after
token expansion. Tokens are not case sensitive.

The following is a list of the tokens available:

Conditional tokens (these are replaced with a null string)

@changed    Line is only inserted in Changed msgs (from others).
@comment    Line is only inserted in Reply-Comments.
@echo       Line is only inserted in Echomail.
@forward    Line is only inserted in Forwarded messages.
@local      Line is only inserted in Local messages.
@moderator  Line is only inserted if substring "moderator" appeared in
            from line.
@moved      Line is only inserted in Reply-Moved messages.
@net        Line is only inserted in Netmail.
@new        Line is only inserted in New messages (not replies).
@position   Specifies the starting line for the editor cursor.
@quotebuf   Line is only inserted in Quotebuffered msgs.
@quoted     Line is only inserted in Quoted replies.
@reply      Line is only inserted in Non-Quoted Replies.


Insert tokens (anything else on the line is ignored)

@attrib         <attributes> - Adds specific message attributes.
@include        <filename> - Inserts the file.
@forcefrom      <"from"> - sets message FROM: field, even if non-empty
                  (see @setfrom)
@forcesubj      <"subject"> - sets message SUBJ: field, even if non-empty
                  (see @setsubj)
@forceto        <"to"> - sets message TO: field, even if non-empty
                  (see @setto)
@loadlanguage   Loads a partial language config file.
@message        Inserts the original message (in Forward & Change).
@quote          Inserts a quote of the original message.
@random         [random.txt] - Inserts random text.
@setfrom        <"from"> - Sets the message FROM: field.
@setsubj        <"subject"> - Sets the message SUBJ: field.
@setto          <"to"> - Sets the message TO: field.
@xlatexport     <charset> - Sets the export charset.


Replacement tokens (replaced with message specific data):

@c3daddr    Current user 3D (boss) address.
@caddr      Current user address.
@cdate      Current date.
@cdesc      Current area description.
@cecho      Current echoid.
@cfname     Current user first name.
@clname     Current user last name.
@cname      Current user name.
@cpseudo    Current pseudonym given by NICKNAME keyword, or @cfname.
@ctime      Current time.
@ctzoffset  Current timezone offset (if available and enabled).
@d3daddr    Destination 3D (boss) address.
@daddr      Destination address.
@dfname     Destination first name.
@dlname     Destination last name.
@dname      Destination name.
@dpseudo    Destination pseudonym (see addressbook), or @dfname.
@areapath   path to echoarea base (fill pathname like specified in config),
            this token is valid for echoareas only.
@areaname   echoarea name (areatag), this token is valid for echoareas only.
@areatype   echoarea base type (OPUS, JAM, Squish, PCBoard, ...), this token
            is valid for echoareas only.
@f3daddr    Current from 3D (boss) address.
@faddr      Current from address.
@ffname     Current from first name.
@flname     Current from last name.
@fname      Current from name.
@fpseudo    Current from pseudonym (see addressbook), or @ffname.
@longpid    Long program id. "GoldED", "GoldED/2" or "GoldED/386".
@o3daddr    Original 3D (boss) address.
@oaddr      Original address.
@odate      Original date.
@odesc      Original area description if moved, else current.
@oecho      Original echoid if moved, otherwise current.
@ofname     Original first name.
@ofrom      Original RFC "From" headerline.
@olname     Original last name.
@omessageid Original RFC "Message-ID" headerline.
@omsgid     Original MSGID kludge content.
@oname      Original name.
@opseudo    Original pseudonym (see addressbook), or @ofname.
@origin     The current global or Random System origin.
@os2slash   "/2" if running GoldED/2. Empty otherwise.
@osslash    same as above.
@otime      Original time.
@otzoffset  Original timezone offset (if available and enabled).
@oto        Original RFC "To" headerline.
@pid        Short program id. "GED", "GED/2" or "GED386".
@pseudo     pseudonym (see addressbook), or @tfname.
@rev        The revision number (in the form mmdd).
@serialno   Emptiness.
@subject    The message subject line.
@t3daddr    Destination to 3D (boss) address.
@taddr      Destination to address.
@tagline    The current global or Random System tagline.
@tearline   The current global or Random System tearline.
@tfname     Destination to first name.
@tlname     Destination to last name.
@tname      Destination to name.
@tpseudo    Destination to pseudonym (see addressbook), or @tfname.
@ver        The simple version number (in the form x.yy)
@version    The complete release version number of GoldED.
@_caddr     Current user address (fixed width: 19 chars).
@_cname     Current user name (fixed width: 34 chars).
@_daddr     Destination address (fixed width: 19 chars).
@_dname     Destination name (fixed width: 34 chars).
@_oaddr     Original address (fixed width: 19 chars).
@_oname     Original name (fixed width: 34 chars).
@_taddr     Destination to address (fixed width: 19 chars).
@_tname     Destination to name (fixed width: 34 chars).


Tokens dealing with names may optionally have two parameters (each
parameter enclosed in curve brackets): your name and opponent name,
destination name additionally accepts third parameter - WhoTo name.
Here is example on how this feature could be used:

   @oname{I}{You} wrote to @dname{me}{you}{everyone}:


The template text begins at the first non-comment line.

See the included GOLDED.TPL for example usage.

If you need to put some text which contains one of these tokens into a
template file, use an extra '@' in front of the token.

Example:

  Internet: [email protected]

would produce

  Internet: somebody2.51yhot.com    (because @ver is a token)

so write it like this instead:

  Internet: somebody@@veryhot.com

The double '@' will then be translated to a single, and token
translation skips past the @token.

Refs golded-plus/golded-plus#27, because we would like to read the most recent manual.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant