github.com/dancsecs/gotomd@v0.0.0-20240310162206-65c4805cf510/sz_test_transform.go (about)

     1  /*
     2     Golang To Github Markdown Utility: gotomd
     3     Copyright (C) 2023, 2024 Leslie Dancsecs
     4  
     5     This program is free software: you can redistribute it and/or modify
     6     it under the terms of the GNU General Public License as published by
     7     the Free Software Foundation, either version 3 of the License, or
     8     (at your option) any later version.
     9  
    10     This program is distributed in the hope that it will be useful,
    11     but WITHOUT ANY WARRANTY; without even the implied warranty of
    12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13     GNU General Public License for more details.
    14  
    15     You should have received a copy of the GNU General Public License
    16     along with this program.  If not, see <https://www.gnu.org/licenses/>.
    17  */
    18  
    19  package main
    20  
    21  import (
    22  	"strings"
    23  
    24  	"github.com/dancsecs/sztest"
    25  )
    26  
    27  const (
    28  	markInsOn  = "<{INS_ON}>"
    29  	markInsOff = "<{INS_OFF}>"
    30  	markDelOn  = "<{DEL_ON}>"
    31  	markDelOff = "<{DEL_OFF}>"
    32  	markChgOn  = "<{CHG_ON}>"
    33  	markChgOff = "<{CHG_OFF}>"
    34  	markWntOn  = "<{WNT_ON}>"
    35  	markWntOff = "<{WNT_OFF}>"
    36  	markGotOn  = "<{GOT_ON}>"
    37  	markGotOff = "<{GOT_OFF}>"
    38  	markSepOn  = "<{SEP_ON}>"
    39  	markSepOff = "<{SEP_OFF}>"
    40  	markMsgOn  = "<{MSG_ON}>"
    41  	markMsgOff = "<{MSG_OFF}>"
    42  )
    43  
    44  const (
    45  	internalTestMarkDelOn  = `\color{red}`
    46  	internalTestMarkDelOff = `\color{default}`
    47  	internalTestMarkInsOn  = `\color{green}`
    48  	internalTestMarkInsOff = `\color{default}`
    49  	internalTestMarkChgOn  = `\color{darkturquoise}`
    50  	internalTestMarkChgOff = `\color{default}`
    51  	internalTestMarkSepOn  = `\color{yellow}`
    52  	internalTestMarkSepOff = `\color{default}`
    53  	internalTestMarkWntOn  = `\color{cyan}`
    54  	internalTestMarkWntOff = `\color{default}`
    55  	internalTestMarkGotOn  = `\color{magenta}`
    56  	internalTestMarkGotOff = `\color{default}`
    57  	internalTestMarkMsgOn  = `\emph{`
    58  	internalTestMarkMsgOff = `}`
    59  )
    60  
    61  //nolint:goCheckNoGlobals // Ok.
    62  var szEnvSetup = []string{
    63  	sztest.EnvMarkWntOn + "=" + markWntOn,
    64  	sztest.EnvMarkWntOff + "=" + markWntOff,
    65  	sztest.EnvMarkGotOn + "=" + markGotOn,
    66  	sztest.EnvMarkGotOff + "=" + markGotOff,
    67  	sztest.EnvMarkMsgOn + "=" + markMsgOn,
    68  	sztest.EnvMarkMsgOff + "=" + markMsgOff,
    69  	sztest.EnvMarkInsOn + "=" + markInsOn,
    70  	sztest.EnvMarkInsOff + "=" + markInsOff,
    71  	sztest.EnvMarkDelOn + "=" + markDelOn,
    72  	sztest.EnvMarkDelOff + "=" + markDelOff,
    73  	sztest.EnvMarkChgOn + "=" + markChgOn,
    74  	sztest.EnvMarkChgOff + "=" + markChgOff,
    75  	sztest.EnvMarkSepOn + "=" + markSepOn,
    76  	sztest.EnvMarkSepOff + "=" + markSepOff,
    77  }
    78  
    79  func translateToTestSymbols(lines string) string {
    80  	lines = strings.ReplaceAll(lines, markDelOn, internalTestMarkDelOn)
    81  	lines = strings.ReplaceAll(lines, markDelOff, internalTestMarkDelOff)
    82  	lines = strings.ReplaceAll(lines, markInsOn, internalTestMarkInsOn)
    83  	lines = strings.ReplaceAll(lines, markInsOff, internalTestMarkInsOff)
    84  	lines = strings.ReplaceAll(lines, markChgOn, internalTestMarkChgOn)
    85  	lines = strings.ReplaceAll(lines, markChgOff, internalTestMarkChgOff)
    86  	lines = strings.ReplaceAll(lines, markSepOn, internalTestMarkSepOn)
    87  	lines = strings.ReplaceAll(lines, markSepOff, internalTestMarkSepOff)
    88  	lines = strings.ReplaceAll(lines, markWntOn, internalTestMarkWntOn)
    89  	lines = strings.ReplaceAll(lines, markWntOff, internalTestMarkWntOff)
    90  	lines = strings.ReplaceAll(lines, markGotOn, internalTestMarkGotOn)
    91  	lines = strings.ReplaceAll(lines, markGotOff, internalTestMarkGotOff)
    92  	lines = strings.ReplaceAll(lines, markMsgOn, internalTestMarkMsgOn)
    93  	lines = strings.ReplaceAll(lines, markMsgOff, internalTestMarkMsgOff)
    94  
    95  	return lines
    96  }
    97  
    98  func translateToBlankSymbols(lines string) string {
    99  	lines = strings.ReplaceAll(lines, markDelOn, "")
   100  	lines = strings.ReplaceAll(lines, markDelOff, "")
   101  	lines = strings.ReplaceAll(lines, markInsOn, "")
   102  	lines = strings.ReplaceAll(lines, markInsOff, "")
   103  	lines = strings.ReplaceAll(lines, markChgOn, "")
   104  	lines = strings.ReplaceAll(lines, markChgOff, "")
   105  	lines = strings.ReplaceAll(lines, markSepOn, "")
   106  	lines = strings.ReplaceAll(lines, markSepOff, "")
   107  	lines = strings.ReplaceAll(lines, markWntOn, "")
   108  	lines = strings.ReplaceAll(lines, markWntOff, "")
   109  	lines = strings.ReplaceAll(lines, markGotOn, "")
   110  	lines = strings.ReplaceAll(lines, markGotOff, "")
   111  	lines = strings.ReplaceAll(lines, markMsgOn, "")
   112  	lines = strings.ReplaceAll(lines, markMsgOff, "")
   113  
   114  	return lines
   115  }