diff --git a/internal/cmd/issue/view/view.go b/internal/cmd/issue/view/view.go index cf3eed41..c38ffa7a 100644 --- a/internal/cmd/issue/view/view.go +++ b/internal/cmd/issue/view/view.go @@ -23,10 +23,11 @@ $ jira issue view ISSUE-1 --comments 5 # Get the raw JSON data $ jira issue view ISSUE-1 --raw` - flagRaw = "raw" - flagDebug = "debug" - flagComments = "comments" - flagPlain = "plain" + flagRaw = "raw" + flagDebug = "debug" + flagComments = "comments" + flagPlain = "plain" + flagUnformatted = "unformatted" configProject = "project.key" configServer = "server" @@ -52,6 +53,7 @@ func NewCmdView() *cobra.Command { cmd.Flags().Uint(flagComments, 1, "Show N comments") cmd.Flags().Bool(flagPlain, false, "Display output in plain mode") cmd.Flags().Bool(flagRaw, false, "Print raw Jira API response") + cmd.Flags().Bool(flagUnformatted, false, "Don't format into MD") return &cmd } @@ -110,11 +112,13 @@ func viewPretty(cmd *cobra.Command, args []string) { plain, err := cmd.Flags().GetBool(flagPlain) cmdutil.ExitIfError(err) + unformatted, err := cmd.Flags().GetBool(flagUnformatted) + cmdutil.ExitIfError(err) v := tuiView.Issue{ Server: viper.GetString(configServer), Data: iss, - Display: tuiView.DisplayFormat{Plain: plain}, + Display: tuiView.DisplayFormat{Plain: plain, Unformatted: unformatted}, Options: tuiView.IssueOption{NumComments: comments}, } cmdutil.ExitIfError(v.Render()) diff --git a/internal/view/issue.go b/internal/view/issue.go index 8386d480..087f1437 100644 --- a/internal/view/issue.go +++ b/internal/view/issue.go @@ -249,6 +249,8 @@ func (i Issue) description() string { if adfNode, ok := i.Data.Fields.Description.(*adf.ADF); ok { desc = adf.NewTranslator(adfNode, adf.NewMarkdownTranslator()).Translate() + } else if i.Display.Unformatted { + desc = i.Data.Fields.Description.(string) } else { desc = i.Data.Fields.Description.(string) desc = md.FromJiraMD(desc) @@ -393,6 +395,8 @@ func (i Issue) comments() []issueComment { var body string if adfNode, ok := c.Body.(*adf.ADF); ok { body = adf.NewTranslator(adfNode, adf.NewMarkdownTranslator()).Translate() + } else if i.Display.Unformatted { + body = c.Body.(string) } else { body = c.Body.(string) body = md.FromJiraMD(body) diff --git a/internal/view/issues.go b/internal/view/issues.go index af9fdd2c..0159d433 100644 --- a/internal/view/issues.go +++ b/internal/view/issues.go @@ -25,6 +25,7 @@ type DisplayFormat struct { Comments uint TableStyle tui.TableStyle Timezone string + Unformatted bool } // IssueList is a list view for issues.