Repository: runatlantis/atlantis (language: go)

Issue:
Refine the Atlantis VCS Pull Request Comments
<!--- Please keep this note for the community --->

### Community Note

- Please vote on this issue by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original issue to help the community and maintainers prioritize this request. Searching for pre-existing feature requests helps us consolidate datapoints for identical requirements into a single place, thank you!
- Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request.
- If you are interested in working on this issue or have submitted a pull request, please leave a comment.

<!--- Thank you for keeping this note for the community --->

---

- [x] I'd be willing to implement this feature ([contributing guide](https://github.com/runatlantis/atlantis/blob/main/CONTRIBUTING.md))

**Describe the user story**

The following improvements could be made to the VCS Pull Request comments:
- For wrapped comments, only wrap the Terraform output, not the Atlantis command suggestions.
- Present the `atlantis plan/apply` commands in code blocks to expose the VCS 'Copy to Clipboard' functionality on the commands.
- Update the 'Pull Request' text references to use 'Merge Request' for GitLab.
- Standardise the comment text grammar when referring to plans/locks.



Discussion / hints:

Fix patch:
diff --git a/server/events/markdown_renderer.go b/server/events/markdown_renderer.go
index 74a72c6719..5bbfc8a47e 100644
--- a/server/events/markdown_renderer.go
+++ b/server/events/markdown_renderer.go
@@ -72,6 +72,7 @@ type commonData struct {
 	EnableDiffMarkdownFormat  bool
 	ExecutableName            string
 	HideUnchangedPlanComments bool
+	VcsRequestType            string
 }
 
 // errData is data about an error response.
@@ -170,13 +171,20 @@ func NewMarkdownRenderer(
 
 // Render formats the data into a markdown string.
 // nolint: interfacer
-func (m *MarkdownRenderer) Render(res command.Result, cmdName command.Name, subCmd, log string, verbose bool, vcsHost models.VCSHostType) string {
-	commandStr := cases.Title(language.English).String(strings.Replace(cmdName.String(), "_", " ", -1))
+func (m *MarkdownRenderer) Render(ctx *command.Context, res command.Result, cmd PullCommand) string {
+	commandStr := cases.Title(language.English).String(strings.Replace(cmd.CommandName().String(), "_", " ", -1))
+	var vcsRequestType string
+	if ctx.Pull.BaseRepo.VCSHost.Type == models.Gitlab {
+		vcsRequestType = "Merge Request"
+	} else {
+		vcsRequestType = "Pull Request"
+	}
+
 	common := commonData{
 		Command:                   commandStr,
-		SubCommand:                subCmd,
-		Verbose:                   verbose,
-		Log:                       log,
+		SubCommand:                cmd.SubCommandName(),
+		Verbose:                   cmd.IsVerbose(),
+		Log:                       ctx.Log.GetHistory(),
 		PlansDeleted:              res.PlansDeleted,
 		DisableApplyAll:           m.disableApplyAll || m.disableApply,
 		DisableApply:              m.disableApply,
@@ -184,6 +192,7 @@ func (m *MarkdownRenderer) Render(res command.Result, cmdName command.Name, subC
 		EnableDiffMarkdownFormat:  m.enableDiffMarkdownFormat,
 		ExecutableName:            m.executableName,
 		HideUnchangedPlanComments: m.hideUnchangedPlanComments,
+		VcsRequestType:            vcsRequestType,
 	}
 
 	templates := m.markdownTemplates
@@ -194,10 +203,12 @@ func (m *MarkdownRenderer) Render(res command.Result, cmdName command.Name, subC
 	if res.Failure != "" {
 		return m.renderTemplateTrimSpace(templates.Lookup("failureWithLog"), failureData{res.Failure, "", common})
 	}
-	return m.renderProjectResults(res.ProjectResults, common, vcsHost)
+	return m.renderProjectResults(ctx, res.ProjectResults, common)
 }
 
-func (m *MarkdownRenderer) renderProjectResults(results []command.ProjectResult, common commonData, vcsHost models.VCSHostType) string {
+func (m *MarkdownRenderer) renderProjectResults(ctx *command.Context, results []command.ProjectResult, common commonData) string {
+	vcsHost := ctx.Pull.BaseRepo.VCSHost.Type
+
 	var resultsTmplData []projectResultTmplData
 	numPlanSuccesses := 0
 	numPolicyCheckSuccesses := 0
diff --git a/server/events/pull_updater.go b/server/events/pull_updater.go
index d640e5a374..2fd2b99a16 100644
--- a/server/events/pull_updater.go
+++ b/server/events/pull_updater.go
@@ -29,7 +29,7 @@ func (c *PullUpdater) updatePull(ctx *command.Context, cmd PullCommand, res comm
 		}
 	}
 
-	comment := c.MarkdownRenderer.Render(res, cmd.CommandName(), cmd.SubCommandName(), ctx.Log.GetHistory(), cmd.IsVerbose(), ctx.Pull.BaseRepo.VCSHost.Type)
+	comment := c.MarkdownRenderer.Render(ctx, res, cmd)
 	if err := c.VCSClient.CreateComment(ctx.Log, ctx.Pull.BaseRepo, ctx.Pull.Num, comment, cmd.CommandName().String()); err != nil {
 		ctx.Log.Err("unable to comment: %s", err)
 	}
diff --git a/server/events/templates/import_success_unwrapped.tmpl b/server/events/templates/import_success_unwrapped.tmpl
index c8a8a1b19d..08b6336d4d 100644
--- a/server/events/templates/import_success_unwrapped.tmpl
+++ b/server/events/templates/import_success_unwrapped.tmpl
@@ -6,5 +6,7 @@
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * `{{.RePlanCmd}}`
+  ```shell
+  {{.RePlanCmd}}
+  ```
 {{ end -}}
diff --git a/server/events/templates/import_success_wrapped.tmpl b/server/events/templates/import_success_wrapped.tmpl
index 12711c1d4d..00d9689a38 100644
--- a/server/events/templates/import_success_wrapped.tmpl
+++ b/server/events/templates/import_success_wrapped.tmpl
@@ -8,5 +8,7 @@
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * `{{ .RePlanCmd }}`
+  ```shell
+  {{ .RePlanCmd }}
+  ```
 {{ end -}}
diff --git a/server/events/templates/log.tmpl b/server/events/templates/log.tmpl
index cb409801c7..305436eebb 100644
--- a/server/events/templates/log.tmpl
+++ b/server/events/templates/log.tmpl
@@ -1,7 +1,7 @@
 {{ define "log" -}}
-{{ if .Verbose }}
+{{ if .Verbose -}}
 <details><summary>Log</summary>
-  <p>
+<p>
 
 ```
 {{.Log}}```
diff --git a/server/events/templates/merged_again.tmpl b/server/events/templates/merged_again.tmpl
index 796afe552a..ece363f19e 100644
--- a/server/events/templates/merged_again.tmpl
+++ b/server/events/templates/merged_again.tmpl
@@ -1,5 +1,5 @@
 {{ define "mergedAgain" -}}
-{{ if .MergedAgain }}
+{{ if .MergedAgain -}}
 :twisted_rightwards_arrows: Upstream was modified, a new merge was performed.
 {{ end -}}
 {{ end -}}
diff --git a/server/events/templates/multi_project_apply.tmpl b/server/events/templates/multi_project_apply.tmpl
index 50038555b3..2e2b2baa30 100644
--- a/server/events/templates/multi_project_apply.tmpl
+++ b/server/events/templates/multi_project_apply.tmpl
@@ -1,5 +1,5 @@
 {{ define "multiProjectApply" -}}
-{{ template "multiProjectHeader" . }}
+{{ template "multiProjectHeader" . -}}
 {{ range $i, $result := .Results -}}
 ### {{ add $i 1 }}. {{ if $result.ProjectName }}project: `{{ $result.ProjectName }}` {{ end }}dir: `{{ $result.RepoRelDir }}` workspace: `{{ $result.Workspace }}`
 {{ $result.Rendered }}
diff --git a/server/events/templates/multi_project_header.tmpl b/server/events/templates/multi_project_header.tmpl
index c202c7e50c..c1ce5dc053 100644
--- a/server/events/templates/multi_project_header.tmpl
+++ b/server/events/templates/multi_project_header.tmpl
@@ -3,5 +3,9 @@ Ran {{.Command}} for {{ len .Results }} projects:
 
 {{ range $result := .Results -}}
 1. {{ if $result.ProjectName }}project: `{{ $result.ProjectName }}` {{ end }}dir: `{{ $result.RepoRelDir }}` workspace: `{{ $result.Workspace }}`
+{{ end -}}
+{{ if (gt (len .Results) 0) -}}
+---
+
 {{ end -}}
 {{ end -}}
diff --git a/server/events/templates/multi_project_import.tmpl b/server/events/templates/multi_project_import.tmpl
index 22e4b4388d..31cd70cbd4 100644
--- a/server/events/templates/multi_project_import.tmpl
+++ b/server/events/templates/multi_project_import.tmpl
@@ -1,5 +1,5 @@
 {{ define "multiProjectImport" -}}
-{{ template "multiProjectHeader" . }}
+{{ template "multiProjectHeader" . -}}
 {{ range $i, $result := .Results -}}
 ### {{ add $i 1 }}. {{ if $result.ProjectName }}project: `{{ $result.ProjectName }}` {{ end }}dir: `{{ $result.RepoRelDir }}` workspace: `{{ $result.Workspace }}`
 {{ $result.Rendered }}
diff --git a/server/events/templates/multi_project_plan.tmpl b/server/events/templates/multi_project_plan.tmpl
index 9c3898ad48..f57e96794a 100644
--- a/server/events/templates/multi_project_plan.tmpl
+++ b/server/events/templates/multi_project_plan.tmpl
@@ -1,5 +1,5 @@
 {{ define "multiProjectPlan" -}}
-{{ template "multiProjectHeader" . }}
+{{ template "multiProjectHeader" . -}}
 {{ $disableApplyAll := .DisableApplyAll -}}
 {{ $hideUnchangedPlans := .HideUnchangedPlanComments -}}
 {{ range $i, $result := .Results -}}
diff --git a/server/events/templates/multi_project_plan_footer.tmpl b/server/events/templates/multi_project_plan_footer.tmpl
index 41683ab018..1c193a16b7 100644
--- a/server/events/templates/multi_project_plan_footer.tmpl
+++ b/server/events/templates/multi_project_plan_footer.tmpl
@@ -4,10 +4,14 @@
 
 {{ len .Results }} projects, {{ .NumPlansWithChanges }} with changes, {{ .NumPlansWithNoChanges }} with no changes, {{ .NumPlanFailures }} failed
 {{ if and (not .PlansDeleted) (ne .DisableApplyAll true) }}
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `{{ .ExecutableName }} apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `{{ .ExecutableName }} unlock`
+* :fast_forward: To **apply** all unapplied plans from this {{ .VcsRequestType }}, comment:
+  ```shell
+  {{ .ExecutableName }} apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this {{ .VcsRequestType }}, comment:
+  ```shell
+  {{ .ExecutableName }} unlock
+  ```
 {{ end -}}
 {{ end -}}
 {{ end -}}
diff --git a/server/events/templates/multi_project_policy.tmpl b/server/events/templates/multi_project_policy.tmpl
index c34c59f896..add574fde4 100644
--- a/server/events/templates/multi_project_policy.tmpl
+++ b/server/events/templates/multi_project_policy.tmpl
@@ -1,5 +1,5 @@
 {{ define "multiProjectPolicy" -}}
-{{ template "multiProjectHeader" . }}
+{{ template "multiProjectHeader" . -}}
 {{ $disableApplyAll := .DisableApplyAll -}}
 {{ $hideUnchangedPlans := .HideUnchangedPlanComments -}}
 {{ range $i, $result := .Results -}}
@@ -13,10 +13,14 @@
 {{ end -}}
 {{ if ne .DisableApplyAll true -}}
 {{ if and (gt (len .Results) 0) (not .PlansDeleted) -}}
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `{{ .ExecutableName }} apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `{{ .ExecutableName }} unlock`
+* :fast_forward: To **apply** all unapplied plans from this {{ .VcsRequestType }}, comment:
+  ```shell
+  {{ .ExecutableName }} apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this {{ .VcsRequestType }}, comment:
+  ```shell
+  {{ .ExecutableName }} unlock
+  ```
 {{ end -}}
 {{ end -}}
 {{ template "log" . -}}
diff --git a/server/events/templates/multi_project_policy_unsuccessful.tmpl b/server/events/templates/multi_project_policy_unsuccessful.tmpl
index a0a59fd994..039dd9ce7c 100644
--- a/server/events/templates/multi_project_policy_unsuccessful.tmpl
+++ b/server/events/templates/multi_project_policy_unsuccessful.tmpl
@@ -1,5 +1,5 @@
 {{ define "multiProjectPolicyUnsuccessful" -}}
-{{ template "multiProjectHeader" . }}
+{{ template "multiProjectHeader" . -}}
 {{ $disableApplyAll := .DisableApplyAll -}}
 {{ range $i, $result := .Results -}}
 ### {{ add $i 1 }}. {{ if $result.ProjectName }}project: `{{ $result.ProjectName }}` {{ end }}dir: `{{ $result.RepoRelDir }}` workspace: `{{ $result.Workspace }}`
@@ -11,12 +11,18 @@
 {{ end -}}
 {{ if ne .DisableApplyAll true -}}
 {{ if and (gt (len .Results) 0) (not .PlansDeleted) -}}
-* :heavy_check_mark: To **approve** all unapplied plans from this pull request, comment:
-    * `{{ .ExecutableName }} approve_policies`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `{{ .ExecutableName }} unlock`
+* :heavy_check_mark: To **approve** all unapplied plans from this {{ .VcsRequestType }}, comment:
+  ```shell
+  {{ .ExecutableName }} approve_policies
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this {{ .VcsRequestType }}, comment:
+  ```shell
+  {{ .ExecutableName }} unlock
+  ```
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `{{ .ExecutableName }} plan`
+  ```shell
+  {{ .ExecutableName }} plan
+  ```
 {{ end -}}
 {{ end -}}
 {{- template "log" . -}}
diff --git a/server/events/templates/multi_project_state_rm.tmpl b/server/events/templates/multi_project_state_rm.tmpl
index 90c0259dfe..a00464a7b8 100644
--- a/server/events/templates/multi_project_state_rm.tmpl
+++ b/server/events/templates/multi_project_state_rm.tmpl
@@ -1,5 +1,5 @@
 {{ define "multiProjectStateRm" -}}
-{{ template "multiProjectHeader" . }}
+{{ template "multiProjectHeader" . -}}
 {{ range $i, $result := .Results -}}
 ### {{ add $i 1 }}. {{ if $result.ProjectName }}project: `{{ $result.ProjectName }}` {{ end }}dir: `{{ $result.RepoRelDir }}` workspace: `{{ $result.Workspace }}`
 {{ $result.Rendered}}
diff --git a/server/events/templates/multi_project_version.tmpl b/server/events/templates/multi_project_version.tmpl
index 08266520e5..70eeea40f9 100644
--- a/server/events/templates/multi_project_version.tmpl
+++ b/server/events/templates/multi_project_version.tmpl
@@ -1,5 +1,5 @@
 {{ define "multiProjectVersion" -}}
-{{ template "multiProjectHeader" . }}
+{{ template "multiProjectHeader" . -}}
 {{ range $i, $result := .Results -}}
 ### {{ add $i 1 }}. {{ if $result.ProjectName }}project: `{{ $result.ProjectName }}` {{ end }}dir: `{{ $result.RepoRelDir }}` workspace: `{{ $result.Workspace }}`
 {{ $result.Rendered}}
diff --git a/server/events/templates/plan_success_unwrapped.tmpl b/server/events/templates/plan_success_unwrapped.tmpl
index 6bd81de233..e4ed2e0911 100644
--- a/server/events/templates/plan_success_unwrapped.tmpl
+++ b/server/events/templates/plan_success_unwrapped.tmpl
@@ -8,13 +8,17 @@ This plan was not saved because one or more projects failed and automerge requir
 {{ else -}}
 {{ if not .DisableApply -}}
 * :arrow_forward: To **apply** this plan, comment:
-    * `{{ .ApplyCmd }}`
+  ```shell
+  {{ .ApplyCmd }}
+  ```
 {{ end -}}
 {{ if not .DisableRepoLocking -}}
-* :put_litter_in_its_place: To **delete** this plan click [here]({{ .LockURL }})
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here]({{ .LockURL }})
 {{ end -}}
 * :repeat: To **plan** this project again, comment:
-    * `{{ .RePlanCmd }}`
+  ```shell
+  {{ .RePlanCmd }}
+  ```
 {{ end -}}
-{{ template "mergedAgain" . }}
+{{ template "mergedAgain" . -}}
 {{ end -}}
diff --git a/server/events/templates/plan_success_wrapped.tmpl b/server/events/templates/plan_success_wrapped.tmpl
index cef96d0609..55c0d3042a 100644
--- a/server/events/templates/plan_success_wrapped.tmpl
+++ b/server/events/templates/plan_success_wrapped.tmpl
@@ -4,21 +4,25 @@
 ```diff
 {{ if .EnableDiffMarkdownFormat }}{{ .DiffMarkdownFormattedTerraformOutput }}{{ else }}{{ .TerraformOutput }}{{ end }}
 ```
+</details>
 
 {{ if .PlanWasDeleted -}}
 This plan was not saved because one or more projects failed and automerge requires all plans pass.
 {{ else -}}
 {{ if not .DisableApply -}}
 * :arrow_forward: To **apply** this plan, comment:
-    * `{{ .ApplyCmd }}`
+  ```shell
+  {{ .ApplyCmd }}
+  ```
 {{ end -}}
 {{ if not .DisableRepoLocking -}}
-* :put_litter_in_its_place: To **delete** this plan click [here]({{ .LockURL }})
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here]({{ .LockURL }})
 {{ end -}}
 * :repeat: To **plan** this project again, comment:
-    * `{{ .RePlanCmd }}`
+  ```shell
+  {{ .RePlanCmd }}
+  ```
 {{ end -}}
-</details>
 {{ .PlanSummary -}}
 {{ template "mergedAgain" . -}}
 {{ end -}}
diff --git a/server/events/templates/policy_check_results_unwrapped.tmpl b/server/events/templates/policy_check_results_unwrapped.tmpl
index 089e85660f..16d7b9e865 100644
--- a/server/events/templates/policy_check_results_unwrapped.tmpl
+++ b/server/events/templates/policy_check_results_unwrapped.tmpl
@@ -14,16 +14,22 @@
 {{- end }}
 {{- if .PolicyCleared }}
 * :arrow_forward: To **apply** this plan, comment:
-    * `{{ .ApplyCmd }}`
+  ```shell
+  {{ .ApplyCmd }}
+  ```
 {{- else }}
 #### Policy Approval Status:
 ```
 {{ .PolicyApprovalSummary }}
 ```
 * :heavy_check_mark: To **approve** this project, comment:
-    * `{{ .ApprovePoliciesCmd }}`
+  ```shell
+  {{ .ApprovePoliciesCmd }}
+  ```
 {{- end }}
-* :put_litter_in_its_place: To **delete** this plan click [here]({{ .LockURL }})
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here]({{ .LockURL }})
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `{{ .RePlanCmd }}`
+  ```shell
+  {{ .RePlanCmd }}
+  ```
 {{ end -}}
diff --git a/server/events/templates/policy_check_results_wrapped.tmpl b/server/events/templates/policy_check_results_wrapped.tmpl
index bf03a6b1f1..db30224e6c 100644
--- a/server/events/templates/policy_check_results_wrapped.tmpl
+++ b/server/events/templates/policy_check_results_wrapped.tmpl
@@ -15,19 +15,25 @@
 {{- end }}
 {{- if .PolicyCleared }}
 * :arrow_forward: To **apply** this plan, comment:
-    * `{{ .ApplyCmd }}`
+  ```shell
+  {{ .ApplyCmd }}
+  ```
 {{- else }}
+</details>
 #### Policy Approval Status:
 ```
 {{ .PolicyApprovalSummary }}
 ```
 * :heavy_check_mark: To **approve** this project, comment:
-    * `{{ .ApprovePoliciesCmd }}`
+  ```shell
+  {{ .ApprovePoliciesCmd }}
+  ```
 {{- end }}
-* :put_litter_in_its_place: To **delete** this plan click [here]({{ .LockURL }})
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here]({{ .LockURL }})
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `{{ .RePlanCmd }}`
-</details>
+  ```shell
+  {{ .RePlanCmd }}
+  ```
 {{- if eq .Command "Policy Check" }}
 
 ```
diff --git a/server/events/templates/single_project_plan_success.tmpl b/server/events/templates/single_project_plan_success.tmpl
index afbe3d5701..77f6e13d64 100644
--- a/server/events/templates/single_project_plan_success.tmpl
+++ b/server/events/templates/single_project_plan_success.tmpl
@@ -5,10 +5,14 @@ Ran {{ .Command }} for {{ if $result.ProjectName }}project: `{{ $result.ProjectN
 {{ $result.Rendered }}
 {{ if ne .DisableApplyAll true }}
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `{{ .ExecutableName }} apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `{{ .ExecutableName }} unlock`
+* :fast_forward: To **apply** all unapplied plans from this {{ .VcsRequestType }}, comment:
+  ```shell
+  {{ .ExecutableName }} apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this {{ .VcsRequestType }}, comment:
+  ```shell
+  {{ .ExecutableName }} unlock
+  ```
 {{ end -}}
 {{ template "log" . -}}
 {{ end -}}
diff --git a/server/events/templates/single_project_policy_unsuccessful.tmpl b/server/events/templates/single_project_policy_unsuccessful.tmpl
index 0760406814..0bf0ac1a0c 100644
--- a/server/events/templates/single_project_policy_unsuccessful.tmpl
+++ b/server/events/templates/single_project_policy_unsuccessful.tmpl
@@ -3,14 +3,20 @@
 Ran {{ .Command }} for {{ if $result.ProjectName }}project: `{{ $result.ProjectName }}` {{ end }}dir: `{{ $result.RepoRelDir }}` workspace: `{{ $result.Workspace }}`
 
 {{ $result.Rendered }}
-{{ if ne .DisableApplyAll true }}
+{{ if ne .DisableApplyAll true -}}
 ---
-* :heavy_check_mark: To **approve** all unapplied plans from this pull request, comment:
-    * `{{ .ExecutableName }} approve_policies`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `{{ .ExecutableName }} unlock`
+* :heavy_check_mark: To **approve** all unapplied plans from this {{ .VcsRequestType }}, comment:
+  ```shell
+  {{ .ExecutableName }} approve_policies
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this {{ .VcsRequestType }}, comment:
+  ```shell
+  {{ .ExecutableName }} unlock
+  ```
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `{{ .ExecutableName }} plan`
+  ```shell
+  {{ .ExecutableName }} plan
+  ```
 {{ end -}}
 {{- template "log" . -}}
 {{ end -}}
diff --git a/server/events/templates/state_rm_success_unwrapped.tmpl b/server/events/templates/state_rm_success_unwrapped.tmpl
index c0f24323a5..564d8796ae 100644
--- a/server/events/templates/state_rm_success_unwrapped.tmpl
+++ b/server/events/templates/state_rm_success_unwrapped.tmpl
@@ -6,5 +6,7 @@
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * `{{.RePlanCmd}}`
+  ```shell
+  {{.RePlanCmd}}
+  ```
 {{ end }}
diff --git a/server/events/templates/state_rm_success_wrapped.tmpl b/server/events/templates/state_rm_success_wrapped.tmpl
index f182c85bc1..2a703107c6 100644
--- a/server/events/templates/state_rm_success_wrapped.tmpl
+++ b/server/events/templates/state_rm_success_wrapped.tmpl
@@ -8,5 +8,7 @@
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * `{{.RePlanCmd}}`
+  ```shell
+  {{.RePlanCmd}}
+  ```
 {{ end }}
diff --git a/server/logging/simple_logger.go b/server/logging/simple_logger.go
index e7d18e5654..5003a1fda0 100644
--- a/server/logging/simple_logger.go
+++ b/server/logging/simple_logger.go
@@ -19,7 +19,6 @@ package logging
 import (
 	"bytes"
 	"fmt"
-	"testing"
 
 	"github.com/pkg/errors"
 	"go.uber.org/zap"
@@ -184,7 +183,7 @@ func (l *StructuredLogger) saveToHistory(lvl LogLevel, format string, a ...inter
 
 // NewNoopLogger creates a logger instance that discards all logs and never
 // writes them. Used for testing.
-func NewNoopLogger(t *testing.T) SimpleLogging {
+func NewNoopLogger(t zaptest.TestingT) SimpleLogging {
 	level := zap.DebugLevel
 	return &StructuredLogger{
 		z:     zaptest.NewLogger(t, zaptest.Level(level)).Sugar(),


Test patch:
diff --git a/server/controllers/events/testdata/test-repos/automerge/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/automerge/exp-output-autoplan.txt
index c32ed6dfdc..8f32ac5efc 100644
--- a/server/controllers/events/testdata/test-repos/automerge/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/automerge/exp-output-autoplan.txt
@@ -2,6 +2,7 @@ Ran Plan for 2 projects:
 
 1. dir: `dir1` workspace: `default`
 1. dir: `dir2` workspace: `default`
+---
 
 ### 1. dir: `dir1` workspace: `default`
 ```diff
@@ -20,10 +21,14 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 ```
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d dir1`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d dir1
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d dir1`
+  ```shell
+  atlantis plan -d dir1
+  ```
 
 ---
 ### 2. dir: `dir2` workspace: `default`
@@ -43,17 +48,25 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 ```
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d dir2`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d dir2
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d dir2`
+  ```shell
+  atlantis plan -d dir2
+  ```
 
 ---
 ### Plan Summary
 
 2 projects, 2 with changes, 0 with no changes, 0 failed
 
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/import-multiple-project/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/import-multiple-project/exp-output-autoplan.txt
index 7f0f5f45a8..b6116bfde9 100644
--- a/server/controllers/events/testdata/test-repos/import-multiple-project/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/import-multiple-project/exp-output-autoplan.txt
@@ -2,6 +2,7 @@ Ran Plan for 2 projects:
 
 1. dir: `dir1` workspace: `default`
 1. dir: `dir2` workspace: `default`
+---
 
 ### 1. dir: `dir1` workspace: `default`
 <details><summary>Show Output</summary>
@@ -26,13 +27,17 @@ Terraform will perform the following actions:
 
 Plan: 1 to add, 0 to change, 0 to destroy.
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d dir1`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d dir1
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d dir1`
-</details>
+  ```shell
+  atlantis plan -d dir1
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
@@ -59,13 +64,17 @@ Terraform will perform the following actions:
 
 Plan: 1 to add, 0 to change, 0 to destroy.
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d dir2`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d dir2
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d dir2`
-</details>
+  ```shell
+  atlantis plan -d dir2
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
@@ -73,7 +82,11 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 
 2 projects, 2 with changes, 0 with no changes, 0 failed
 
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/import-multiple-project/exp-output-import-dummy1.txt b/server/controllers/events/testdata/test-repos/import-multiple-project/exp-output-import-dummy1.txt
index 04f87516ab..0e6c0c960c 100644
--- a/server/controllers/events/testdata/test-repos/import-multiple-project/exp-output-import-dummy1.txt
+++ b/server/controllers/events/testdata/test-repos/import-multiple-project/exp-output-import-dummy1.txt
@@ -15,4 +15,6 @@ your Terraform state and will henceforth be managed by Terraform.
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * `atlantis plan -d dir1`
\ No newline at end of file
+  ```shell
+  atlantis plan -d dir1
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/import-multiple-project/exp-output-plan-again.txt b/server/controllers/events/testdata/test-repos/import-multiple-project/exp-output-plan-again.txt
index c9a7d87124..9955b4f2c7 100644
--- a/server/controllers/events/testdata/test-repos/import-multiple-project/exp-output-plan-again.txt
+++ b/server/controllers/events/testdata/test-repos/import-multiple-project/exp-output-plan-again.txt
@@ -2,6 +2,7 @@ Ran Plan for 2 projects:
 
 1. dir: `dir1` workspace: `default`
 1. dir: `dir2` workspace: `default`
+---
 
 ### 1. dir: `dir1` workspace: `default`
 ```diff
@@ -14,10 +15,14 @@ and found no differences, so no changes are needed.
 ```
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d dir1`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d dir1
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d dir1`
+  ```shell
+  atlantis plan -d dir1
+  ```
 
 ---
 ### 2. dir: `dir2` workspace: `default`
@@ -43,13 +48,17 @@ Terraform will perform the following actions:
 
 Plan: 1 to add, 0 to change, 0 to destroy.
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d dir2`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d dir2
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d dir2`
-</details>
+  ```shell
+  atlantis plan -d dir2
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
@@ -57,7 +66,11 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 
 2 projects, 1 with changes, 1 with no changes, 0 failed
 
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/import-single-project-var/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/import-single-project-var/exp-output-autoplan.txt
index 8fcbeaa757..4d597951a9 100644
--- a/server/controllers/events/testdata/test-repos/import-single-project-var/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/import-single-project-var/exp-output-autoplan.txt
@@ -33,17 +33,25 @@ Terraform will perform the following actions:
 
 Plan: 2 to add, 0 to change, 0 to destroy.
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d .`
-</details>
+  ```shell
+  atlantis plan -d .
+  ```
 Plan: 2 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/import-single-project-var/exp-output-import-count.txt b/server/controllers/events/testdata/test-repos/import-single-project-var/exp-output-import-count.txt
index d7957913db..32680f595f 100644
--- a/server/controllers/events/testdata/test-repos/import-single-project-var/exp-output-import-count.txt
+++ b/server/controllers/events/testdata/test-repos/import-single-project-var/exp-output-import-count.txt
@@ -15,4 +15,6 @@ your Terraform state and will henceforth be managed by Terraform.
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * `atlantis plan -d .`
\ No newline at end of file
+  ```shell
+  atlantis plan -d .
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/import-single-project-var/exp-output-import-foreach.txt b/server/controllers/events/testdata/test-repos/import-single-project-var/exp-output-import-foreach.txt
index 45b02dd35f..1e1caabfca 100644
--- a/server/controllers/events/testdata/test-repos/import-single-project-var/exp-output-import-foreach.txt
+++ b/server/controllers/events/testdata/test-repos/import-single-project-var/exp-output-import-foreach.txt
@@ -15,4 +15,6 @@ your Terraform state and will henceforth be managed by Terraform.
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * `atlantis plan -d .`
\ No newline at end of file
+  ```shell
+  atlantis plan -d .
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/import-single-project-var/exp-output-plan-again.txt b/server/controllers/events/testdata/test-repos/import-single-project-var/exp-output-plan-again.txt
index 46a378158b..379d9e8ce7 100644
--- a/server/controllers/events/testdata/test-repos/import-single-project-var/exp-output-plan-again.txt
+++ b/server/controllers/events/testdata/test-repos/import-single-project-var/exp-output-plan-again.txt
@@ -8,13 +8,21 @@ and found no differences, so no changes are needed.
 ```
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d . -- -var var=overridden`
+  ```shell
+  atlantis plan -d . -- -var var=overridden
+  ```
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/import-single-project/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/import-single-project/exp-output-autoplan.txt
index 5662b98336..45007d2b8f 100644
--- a/server/controllers/events/testdata/test-repos/import-single-project/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/import-single-project/exp-output-autoplan.txt
@@ -33,17 +33,25 @@ Terraform will perform the following actions:
 
 Plan: 2 to add, 0 to change, 0 to destroy.
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d .`
-</details>
+  ```shell
+  atlantis plan -d .
+  ```
 Plan: 2 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/import-single-project/exp-output-import-dummy1.txt b/server/controllers/events/testdata/test-repos/import-single-project/exp-output-import-dummy1.txt
index 1823a29537..f4a6cb37d9 100644
--- a/server/controllers/events/testdata/test-repos/import-single-project/exp-output-import-dummy1.txt
+++ b/server/controllers/events/testdata/test-repos/import-single-project/exp-output-import-dummy1.txt
@@ -15,4 +15,6 @@ your Terraform state and will henceforth be managed by Terraform.
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * `atlantis plan -d .`
\ No newline at end of file
+  ```shell
+  atlantis plan -d .
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/import-single-project/exp-output-import-dummy2.txt b/server/controllers/events/testdata/test-repos/import-single-project/exp-output-import-dummy2.txt
index d515857ff1..9ab2dbb7e3 100644
--- a/server/controllers/events/testdata/test-repos/import-single-project/exp-output-import-dummy2.txt
+++ b/server/controllers/events/testdata/test-repos/import-single-project/exp-output-import-dummy2.txt
@@ -15,4 +15,6 @@ your Terraform state and will henceforth be managed by Terraform.
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * `atlantis plan -d .`
\ No newline at end of file
+  ```shell
+  atlantis plan -d .
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/import-single-project/exp-output-plan-again.txt b/server/controllers/events/testdata/test-repos/import-single-project/exp-output-plan-again.txt
index adc09b4a37..a7268e38f8 100644
--- a/server/controllers/events/testdata/test-repos/import-single-project/exp-output-plan-again.txt
+++ b/server/controllers/events/testdata/test-repos/import-single-project/exp-output-plan-again.txt
@@ -8,13 +8,21 @@ and found no differences, so no changes are needed.
 ```
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d .`
+  ```shell
+  atlantis plan -d .
+  ```
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/import-workspace/exp-output-import-dir1-ops-dummy1.txt b/server/controllers/events/testdata/test-repos/import-workspace/exp-output-import-dir1-ops-dummy1.txt
index 99e0e3434f..38f283b20e 100644
--- a/server/controllers/events/testdata/test-repos/import-workspace/exp-output-import-dir1-ops-dummy1.txt
+++ b/server/controllers/events/testdata/test-repos/import-workspace/exp-output-import-dir1-ops-dummy1.txt
@@ -15,4 +15,6 @@ your Terraform state and will henceforth be managed by Terraform.
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * `atlantis plan -p dir1-ops`
+  ```shell
+  atlantis plan -p dir1-ops
+  ```
diff --git a/server/controllers/events/testdata/test-repos/import-workspace/exp-output-import-dir1-ops-dummy2.txt b/server/controllers/events/testdata/test-repos/import-workspace/exp-output-import-dir1-ops-dummy2.txt
index 3f168d91b3..cd4659c0b7 100644
--- a/server/controllers/events/testdata/test-repos/import-workspace/exp-output-import-dir1-ops-dummy2.txt
+++ b/server/controllers/events/testdata/test-repos/import-workspace/exp-output-import-dir1-ops-dummy2.txt
@@ -15,4 +15,6 @@ your Terraform state and will henceforth be managed by Terraform.
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * `atlantis plan -p dir1-ops`
+  ```shell
+  atlantis plan -p dir1-ops
+  ```
diff --git a/server/controllers/events/testdata/test-repos/import-workspace/exp-output-plan.txt b/server/controllers/events/testdata/test-repos/import-workspace/exp-output-plan.txt
index 9859fcbc1f..7edca86268 100644
--- a/server/controllers/events/testdata/test-repos/import-workspace/exp-output-plan.txt
+++ b/server/controllers/events/testdata/test-repos/import-workspace/exp-output-plan.txt
@@ -8,13 +8,21 @@ and found no differences, so no changes are needed.
 ```
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -p dir1-ops`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -p dir1-ops
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -p dir1-ops`
+  ```shell
+  atlantis plan -p dir1-ops
+  ```
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
diff --git a/server/controllers/events/testdata/test-repos/modules-yaml/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/modules-yaml/exp-output-autoplan.txt
index 1e55d623b5..43a1815d11 100644
--- a/server/controllers/events/testdata/test-repos/modules-yaml/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/modules-yaml/exp-output-autoplan.txt
@@ -2,6 +2,7 @@ Ran Plan for 2 projects:
 
 1. dir: `staging` workspace: `default`
 1. dir: `production` workspace: `default`
+---
 
 ### 1. dir: `staging` workspace: `default`
 <details><summary>Show Output</summary>
@@ -23,13 +24,17 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 Changes to Outputs:
 + var = "staging"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d staging`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d staging
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d staging`
-</details>
+  ```shell
+  atlantis plan -d staging
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
@@ -53,13 +58,17 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 Changes to Outputs:
 + var = "production"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d production`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d production
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d production`
-</details>
+  ```shell
+  atlantis plan -d production
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
@@ -67,7 +76,11 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 
 2 projects, 2 with changes, 0 with no changes, 0 failed
 
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/modules-yaml/exp-output-plan-production.txt b/server/controllers/events/testdata/test-repos/modules-yaml/exp-output-plan-production.txt
index f08e2c50ae..298d515d93 100644
--- a/server/controllers/events/testdata/test-repos/modules-yaml/exp-output-plan-production.txt
+++ b/server/controllers/events/testdata/test-repos/modules-yaml/exp-output-plan-production.txt
@@ -20,8 +20,12 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 ```
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d production`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d production
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d production`
+  ```shell
+  atlantis plan -d production
+  ```
 
diff --git a/server/controllers/events/testdata/test-repos/modules-yaml/exp-output-plan-staging.txt b/server/controllers/events/testdata/test-repos/modules-yaml/exp-output-plan-staging.txt
index de773736db..9f8399b7f1 100644
--- a/server/controllers/events/testdata/test-repos/modules-yaml/exp-output-plan-staging.txt
+++ b/server/controllers/events/testdata/test-repos/modules-yaml/exp-output-plan-staging.txt
@@ -20,8 +20,12 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 ```
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d staging`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d staging
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d staging`
+  ```shell
+  atlantis plan -d staging
+  ```
 
diff --git a/server/controllers/events/testdata/test-repos/modules/exp-output-autoplan-only-staging.txt b/server/controllers/events/testdata/test-repos/modules/exp-output-autoplan-only-staging.txt
index d1faf53fc8..c3bdadc019 100644
--- a/server/controllers/events/testdata/test-repos/modules/exp-output-autoplan-only-staging.txt
+++ b/server/controllers/events/testdata/test-repos/modules/exp-output-autoplan-only-staging.txt
@@ -19,17 +19,25 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 Changes to Outputs:
 + var = "staging"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d staging`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d staging
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d staging`
-</details>
+  ```shell
+  atlantis plan -d staging
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/modules/exp-output-plan-production.txt b/server/controllers/events/testdata/test-repos/modules/exp-output-plan-production.txt
index 19246ade07..13d2414f3f 100644
--- a/server/controllers/events/testdata/test-repos/modules/exp-output-plan-production.txt
+++ b/server/controllers/events/testdata/test-repos/modules/exp-output-plan-production.txt
@@ -19,17 +19,25 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 Changes to Outputs:
 + var = "production"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d production`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d production
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d production`
-</details>
+  ```shell
+  atlantis plan -d production
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/modules/exp-output-plan-staging.txt b/server/controllers/events/testdata/test-repos/modules/exp-output-plan-staging.txt
index d1faf53fc8..c3bdadc019 100644
--- a/server/controllers/events/testdata/test-repos/modules/exp-output-plan-staging.txt
+++ b/server/controllers/events/testdata/test-repos/modules/exp-output-plan-staging.txt
@@ -19,17 +19,25 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 Changes to Outputs:
 + var = "staging"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d staging`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d staging
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d staging`
-</details>
+  ```shell
+  atlantis plan -d staging
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-apply-reqs/exp-output-auto-policy-check.txt b/server/controllers/events/testdata/test-repos/policy-checks-apply-reqs/exp-output-auto-policy-check.txt
index 0ace841faf..3d94c6521c 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-apply-reqs/exp-output-auto-policy-check.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-apply-reqs/exp-output-auto-policy-check.txt
@@ -15,15 +15,24 @@ FAIL - <redacted plan file> - main - WARNING: Null Resource creation is prohibit
 policy set: test_policy: requires: 1 approval(s), have: 0.
 ```
 * :heavy_check_mark: To **approve** this project, comment:
-    * `atlantis approve_policies -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis approve_policies -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan -d .`
-
+  ```shell
+  atlantis plan -d .
+  ```
 ---
-* :heavy_check_mark: To **approve** all unapplied plans from this pull request, comment:
-    * `atlantis approve_policies`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
+* :heavy_check_mark: To **approve** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis approve_policies
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan`
\ No newline at end of file
+  ```shell
+  atlantis plan
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-apply-reqs/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/policy-checks-apply-reqs/exp-output-autoplan.txt
index 6f7ce87643..d3f41336a8 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-apply-reqs/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-apply-reqs/exp-output-autoplan.txt
@@ -19,17 +19,25 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 Changes to Outputs:
 + workspace = "default"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d .`
-</details>
+  ```shell
+  atlantis plan -d .
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-clear-approval/exp-output-approve-policies-clear.txt b/server/controllers/events/testdata/test-repos/policy-checks-clear-approval/exp-output-approve-policies-clear.txt
index e6643f8ce3..107a689278 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-clear-approval/exp-output-approve-policies-clear.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-clear-approval/exp-output-approve-policies-clear.txt
@@ -1,6 +1,7 @@
 Ran Approve Policies for 1 projects:
 
 1. dir: `.` workspace: `default`
+---
 
 ### 1. dir: `.` workspace: `default`
 **Approve Policies Failed**: One or more policy sets require additional approval.
@@ -9,15 +10,25 @@ Ran Approve Policies for 1 projects:
 policy set: test_policy: requires: 1 approval(s), have: 0.
 ```
 * :heavy_check_mark: To **approve** this project, comment:
-    * `atlantis approve_policies -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis approve_policies -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan -d .`
+  ```shell
+  atlantis plan -d .
+  ```
 
 ---
-* :heavy_check_mark: To **approve** all unapplied plans from this pull request, comment:
-    * `atlantis approve_policies`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
+* :heavy_check_mark: To **approve** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis approve_policies
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan`
\ No newline at end of file
+  ```shell
+  atlantis plan
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-clear-approval/exp-output-auto-policy-check.txt b/server/controllers/events/testdata/test-repos/policy-checks-clear-approval/exp-output-auto-policy-check.txt
index 0ace841faf..3d94c6521c 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-clear-approval/exp-output-auto-policy-check.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-clear-approval/exp-output-auto-policy-check.txt
@@ -15,15 +15,24 @@ FAIL - <redacted plan file> - main - WARNING: Null Resource creation is prohibit
 policy set: test_policy: requires: 1 approval(s), have: 0.
 ```
 * :heavy_check_mark: To **approve** this project, comment:
-    * `atlantis approve_policies -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis approve_policies -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan -d .`
-
+  ```shell
+  atlantis plan -d .
+  ```
 ---
-* :heavy_check_mark: To **approve** all unapplied plans from this pull request, comment:
-    * `atlantis approve_policies`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
+* :heavy_check_mark: To **approve** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis approve_policies
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan`
\ No newline at end of file
+  ```shell
+  atlantis plan
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-clear-approval/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/policy-checks-clear-approval/exp-output-autoplan.txt
index 6f7ce87643..d3f41336a8 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-clear-approval/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-clear-approval/exp-output-autoplan.txt
@@ -19,17 +19,25 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 Changes to Outputs:
 + workspace = "default"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d .`
-</details>
+  ```shell
+  atlantis plan -d .
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-custom-run-steps/exp-output-auto-policy-check.txt b/server/controllers/events/testdata/test-repos/policy-checks-custom-run-steps/exp-output-auto-policy-check.txt
index f366769233..c8b5da50dd 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-custom-run-steps/exp-output-auto-policy-check.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-custom-run-steps/exp-output-auto-policy-check.txt
@@ -25,15 +25,24 @@ post-conftest output
 policy set: test_policy: requires: 1 approval(s), have: 0.
 ```
 * :heavy_check_mark: To **approve** this project, comment:
-    * `atlantis approve_policies -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis approve_policies -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan -d .`
-
+  ```shell
+  atlantis plan -d .
+  ```
 ---
-* :heavy_check_mark: To **approve** all unapplied plans from this pull request, comment:
-    * `atlantis approve_policies`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
+* :heavy_check_mark: To **approve** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis approve_policies
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan`
\ No newline at end of file
+  ```shell
+  atlantis plan
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-custom-run-steps/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/policy-checks-custom-run-steps/exp-output-autoplan.txt
index 6f7ce87643..d3f41336a8 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-custom-run-steps/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-custom-run-steps/exp-output-autoplan.txt
@@ -19,17 +19,25 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 Changes to Outputs:
 + workspace = "default"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d .`
-</details>
+  ```shell
+  atlantis plan -d .
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-diff-owner/exp-output-approve-policies.txt b/server/controllers/events/testdata/test-repos/policy-checks-diff-owner/exp-output-approve-policies.txt
index d6e39f260d..b842f99682 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-diff-owner/exp-output-approve-policies.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-diff-owner/exp-output-approve-policies.txt
@@ -1,6 +1,7 @@
 Ran Approve Policies for 1 projects:
 
 1. dir: `.` workspace: `default`
+---
 
 ### 1. dir: `.` workspace: `default`
 **Approve Policies Error**
@@ -15,15 +16,25 @@ Ran Approve Policies for 1 projects:
 policy set: test_policy: requires: 1 approval(s), have: 0.
 ```
 * :heavy_check_mark: To **approve** this project, comment:
-    * `atlantis approve_policies -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis approve_policies -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan -d .`
+  ```shell
+  atlantis plan -d .
+  ```
 
 ---
-* :heavy_check_mark: To **approve** all unapplied plans from this pull request, comment:
-    * `atlantis approve_policies`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
+* :heavy_check_mark: To **approve** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis approve_policies
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan`
\ No newline at end of file
+  ```shell
+  atlantis plan
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-diff-owner/exp-output-auto-policy-check.txt b/server/controllers/events/testdata/test-repos/policy-checks-diff-owner/exp-output-auto-policy-check.txt
index 0ace841faf..3d94c6521c 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-diff-owner/exp-output-auto-policy-check.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-diff-owner/exp-output-auto-policy-check.txt
@@ -15,15 +15,24 @@ FAIL - <redacted plan file> - main - WARNING: Null Resource creation is prohibit
 policy set: test_policy: requires: 1 approval(s), have: 0.
 ```
 * :heavy_check_mark: To **approve** this project, comment:
-    * `atlantis approve_policies -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis approve_policies -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan -d .`
-
+  ```shell
+  atlantis plan -d .
+  ```
 ---
-* :heavy_check_mark: To **approve** all unapplied plans from this pull request, comment:
-    * `atlantis approve_policies`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
+* :heavy_check_mark: To **approve** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis approve_policies
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan`
\ No newline at end of file
+  ```shell
+  atlantis plan
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-diff-owner/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/policy-checks-diff-owner/exp-output-autoplan.txt
index 6f7ce87643..d3f41336a8 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-diff-owner/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-diff-owner/exp-output-autoplan.txt
@@ -19,17 +19,25 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 Changes to Outputs:
 + workspace = "default"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d .`
-</details>
+  ```shell
+  atlantis plan -d .
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-disabled-previous-match/exp-output-auto-policy-check.txt b/server/controllers/events/testdata/test-repos/policy-checks-disabled-previous-match/exp-output-auto-policy-check.txt
index 0ace841faf..3d94c6521c 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-disabled-previous-match/exp-output-auto-policy-check.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-disabled-previous-match/exp-output-auto-policy-check.txt
@@ -15,15 +15,24 @@ FAIL - <redacted plan file> - main - WARNING: Null Resource creation is prohibit
 policy set: test_policy: requires: 1 approval(s), have: 0.
 ```
 * :heavy_check_mark: To **approve** this project, comment:
-    * `atlantis approve_policies -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis approve_policies -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan -d .`
-
+  ```shell
+  atlantis plan -d .
+  ```
 ---
-* :heavy_check_mark: To **approve** all unapplied plans from this pull request, comment:
-    * `atlantis approve_policies`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
+* :heavy_check_mark: To **approve** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis approve_policies
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan`
\ No newline at end of file
+  ```shell
+  atlantis plan
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-disabled-previous-match/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/policy-checks-disabled-previous-match/exp-output-autoplan.txt
index 6f7ce87643..d3f41336a8 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-disabled-previous-match/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-disabled-previous-match/exp-output-autoplan.txt
@@ -19,17 +19,25 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 Changes to Outputs:
 + workspace = "default"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d .`
-</details>
+  ```shell
+  atlantis plan -d .
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-disabled-repo-server-side/exp-output-auto-policy-check.txt b/server/controllers/events/testdata/test-repos/policy-checks-disabled-repo-server-side/exp-output-auto-policy-check.txt
index 0ace841faf..3d94c6521c 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-disabled-repo-server-side/exp-output-auto-policy-check.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-disabled-repo-server-side/exp-output-auto-policy-check.txt
@@ -15,15 +15,24 @@ FAIL - <redacted plan file> - main - WARNING: Null Resource creation is prohibit
 policy set: test_policy: requires: 1 approval(s), have: 0.
 ```
 * :heavy_check_mark: To **approve** this project, comment:
-    * `atlantis approve_policies -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis approve_policies -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan -d .`
-
+  ```shell
+  atlantis plan -d .
+  ```
 ---
-* :heavy_check_mark: To **approve** all unapplied plans from this pull request, comment:
-    * `atlantis approve_policies`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
+* :heavy_check_mark: To **approve** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis approve_policies
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan`
\ No newline at end of file
+  ```shell
+  atlantis plan
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-disabled-repo-server-side/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/policy-checks-disabled-repo-server-side/exp-output-autoplan.txt
index 6f7ce87643..d3f41336a8 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-disabled-repo-server-side/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-disabled-repo-server-side/exp-output-autoplan.txt
@@ -19,17 +19,25 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 Changes to Outputs:
 + workspace = "default"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d .`
-</details>
+  ```shell
+  atlantis plan -d .
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-disabled-repo/exp-output-auto-policy-check.txt b/server/controllers/events/testdata/test-repos/policy-checks-disabled-repo/exp-output-auto-policy-check.txt
index 0ace841faf..3d94c6521c 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-disabled-repo/exp-output-auto-policy-check.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-disabled-repo/exp-output-auto-policy-check.txt
@@ -15,15 +15,24 @@ FAIL - <redacted plan file> - main - WARNING: Null Resource creation is prohibit
 policy set: test_policy: requires: 1 approval(s), have: 0.
 ```
 * :heavy_check_mark: To **approve** this project, comment:
-    * `atlantis approve_policies -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis approve_policies -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan -d .`
-
+  ```shell
+  atlantis plan -d .
+  ```
 ---
-* :heavy_check_mark: To **approve** all unapplied plans from this pull request, comment:
-    * `atlantis approve_policies`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
+* :heavy_check_mark: To **approve** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis approve_policies
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan`
\ No newline at end of file
+  ```shell
+  atlantis plan
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-disabled-repo/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/policy-checks-disabled-repo/exp-output-autoplan.txt
index 6f7ce87643..d3f41336a8 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-disabled-repo/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-disabled-repo/exp-output-autoplan.txt
@@ -19,17 +19,25 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 Changes to Outputs:
 + workspace = "default"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d .`
-</details>
+  ```shell
+  atlantis plan -d .
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-enabled-repo-server-side/exp-output-auto-policy-check.txt b/server/controllers/events/testdata/test-repos/policy-checks-enabled-repo-server-side/exp-output-auto-policy-check.txt
index 0ace841faf..3d94c6521c 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-enabled-repo-server-side/exp-output-auto-policy-check.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-enabled-repo-server-side/exp-output-auto-policy-check.txt
@@ -15,15 +15,24 @@ FAIL - <redacted plan file> - main - WARNING: Null Resource creation is prohibit
 policy set: test_policy: requires: 1 approval(s), have: 0.
 ```
 * :heavy_check_mark: To **approve** this project, comment:
-    * `atlantis approve_policies -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis approve_policies -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan -d .`
-
+  ```shell
+  atlantis plan -d .
+  ```
 ---
-* :heavy_check_mark: To **approve** all unapplied plans from this pull request, comment:
-    * `atlantis approve_policies`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
+* :heavy_check_mark: To **approve** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis approve_policies
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan`
\ No newline at end of file
+  ```shell
+  atlantis plan
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-enabled-repo-server-side/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/policy-checks-enabled-repo-server-side/exp-output-autoplan.txt
index 6f7ce87643..d3f41336a8 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-enabled-repo-server-side/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-enabled-repo-server-side/exp-output-autoplan.txt
@@ -19,17 +19,25 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 Changes to Outputs:
 + workspace = "default"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d .`
-</details>
+  ```shell
+  atlantis plan -d .
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-enabled-repo/exp-output-auto-policy-check.txt b/server/controllers/events/testdata/test-repos/policy-checks-enabled-repo/exp-output-auto-policy-check.txt
index 0ace841faf..3d94c6521c 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-enabled-repo/exp-output-auto-policy-check.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-enabled-repo/exp-output-auto-policy-check.txt
@@ -15,15 +15,24 @@ FAIL - <redacted plan file> - main - WARNING: Null Resource creation is prohibit
 policy set: test_policy: requires: 1 approval(s), have: 0.
 ```
 * :heavy_check_mark: To **approve** this project, comment:
-    * `atlantis approve_policies -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis approve_policies -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan -d .`
-
+  ```shell
+  atlantis plan -d .
+  ```
 ---
-* :heavy_check_mark: To **approve** all unapplied plans from this pull request, comment:
-    * `atlantis approve_policies`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
+* :heavy_check_mark: To **approve** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis approve_policies
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan`
\ No newline at end of file
+  ```shell
+  atlantis plan
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-enabled-repo/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/policy-checks-enabled-repo/exp-output-autoplan.txt
index 6f7ce87643..d3f41336a8 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-enabled-repo/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-enabled-repo/exp-output-autoplan.txt
@@ -19,17 +19,25 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 Changes to Outputs:
 + workspace = "default"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d .`
-</details>
+  ```shell
+  atlantis plan -d .
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-extra-args/exp-output-auto-policy-check.txt b/server/controllers/events/testdata/test-repos/policy-checks-extra-args/exp-output-auto-policy-check.txt
index c7f45c85f5..669b9cb064 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-extra-args/exp-output-auto-policy-check.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-extra-args/exp-output-auto-policy-check.txt
@@ -15,15 +15,24 @@ FAIL - <redacted plan file> - null_resource_policy - WARNING: Null Resource crea
 policy set: test_policy: requires: 1 approval(s), have: 0.
 ```
 * :heavy_check_mark: To **approve** this project, comment:
-    * `atlantis approve_policies -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis approve_policies -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan -d .`
-
+  ```shell
+  atlantis plan -d .
+  ```
 ---
-* :heavy_check_mark: To **approve** all unapplied plans from this pull request, comment:
-    * `atlantis approve_policies`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
+* :heavy_check_mark: To **approve** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis approve_policies
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan`
\ No newline at end of file
+  ```shell
+  atlantis plan
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-extra-args/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/policy-checks-extra-args/exp-output-autoplan.txt
index 6f7ce87643..d3f41336a8 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-extra-args/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-extra-args/exp-output-autoplan.txt
@@ -19,17 +19,25 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 Changes to Outputs:
 + workspace = "default"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d .`
-</details>
+  ```shell
+  atlantis plan -d .
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-multi-projects/exp-output-apply.txt b/server/controllers/events/testdata/test-repos/policy-checks-multi-projects/exp-output-apply.txt
index eb6bda8987..7e0bd72a67 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-multi-projects/exp-output-apply.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-multi-projects/exp-output-apply.txt
@@ -2,6 +2,7 @@ Ran Apply for 2 projects:
 
 1. dir: `dir1` workspace: `default`
 1. dir: `dir2` workspace: `default`
+---
 
 ### 1. dir: `dir1` workspace: `default`
 ```diff
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-multi-projects/exp-output-auto-policy-check.txt b/server/controllers/events/testdata/test-repos/policy-checks-multi-projects/exp-output-auto-policy-check.txt
index c292c651f3..944cd1ba56 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-multi-projects/exp-output-auto-policy-check.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-multi-projects/exp-output-auto-policy-check.txt
@@ -2,6 +2,7 @@ Ran Policy Check for 2 projects:
 
 1. dir: `dir1` workspace: `default`
 1. dir: `dir2` workspace: `default`
+---
 
 ### 1. dir: `dir1` workspace: `default`
 #### Policy Set: `test_policy`
@@ -13,10 +14,14 @@ Ran Policy Check for 2 projects:
 
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d dir1`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d dir1
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan -d dir1`
+  ```shell
+  atlantis plan -d dir1
+  ```
 
 ---
 ### 2. dir: `dir2` workspace: `default`
@@ -35,15 +40,25 @@ FAIL - <redacted plan file> - main - WARNING: Forbidden Resource creation is pro
 policy set: test_policy: requires: 1 approval(s), have: 0.
 ```
 * :heavy_check_mark: To **approve** this project, comment:
-    * `atlantis approve_policies -d dir2`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis approve_policies -d dir2
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan -d dir2`
+  ```shell
+  atlantis plan -d dir2
+  ```
 
 ---
-* :heavy_check_mark: To **approve** all unapplied plans from this pull request, comment:
-    * `atlantis approve_policies`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
+* :heavy_check_mark: To **approve** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis approve_policies
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan`
\ No newline at end of file
+  ```shell
+  atlantis plan
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-multi-projects/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/policy-checks-multi-projects/exp-output-autoplan.txt
index 098c4eba93..e01442f671 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-multi-projects/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-multi-projects/exp-output-autoplan.txt
@@ -2,6 +2,7 @@ Ran Plan for 2 projects:
 
 1. dir: `dir1` workspace: `default`
 1. dir: `dir2` workspace: `default`
+---
 
 ### 1. dir: `dir1` workspace: `default`
 <details><summary>Show Output</summary>
@@ -23,13 +24,17 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 Changes to Outputs:
 + workspace = "default"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d dir1`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d dir1
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d dir1`
-</details>
+  ```shell
+  atlantis plan -d dir1
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
@@ -53,13 +58,17 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 Changes to Outputs:
 + workspace = "default"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d dir2`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d dir2
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d dir2`
-</details>
+  ```shell
+  atlantis plan -d dir2
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
@@ -67,7 +76,11 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 
 2 projects, 2 with changes, 0 with no changes, 0 failed
 
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks-success-silent/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/policy-checks-success-silent/exp-output-autoplan.txt
index ea7d4bf3ec..0fe7b1646b 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks-success-silent/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks-success-silent/exp-output-autoplan.txt
@@ -9,13 +9,21 @@ state, without changing any real infrastructure.
 ```
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d .`
+  ```shell
+  atlantis plan -d .
+  ```
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks/exp-output-auto-policy-check.txt b/server/controllers/events/testdata/test-repos/policy-checks/exp-output-auto-policy-check.txt
index 0ace841faf..3d94c6521c 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks/exp-output-auto-policy-check.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks/exp-output-auto-policy-check.txt
@@ -15,15 +15,24 @@ FAIL - <redacted plan file> - main - WARNING: Null Resource creation is prohibit
 policy set: test_policy: requires: 1 approval(s), have: 0.
 ```
 * :heavy_check_mark: To **approve** this project, comment:
-    * `atlantis approve_policies -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis approve_policies -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan -d .`
-
+  ```shell
+  atlantis plan -d .
+  ```
 ---
-* :heavy_check_mark: To **approve** all unapplied plans from this pull request, comment:
-    * `atlantis approve_policies`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
+* :heavy_check_mark: To **approve** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis approve_policies
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan`
\ No newline at end of file
+  ```shell
+  atlantis plan
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/policy-checks/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/policy-checks/exp-output-autoplan.txt
index 6f7ce87643..d3f41336a8 100644
--- a/server/controllers/events/testdata/test-repos/policy-checks/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/policy-checks/exp-output-autoplan.txt
@@ -19,17 +19,25 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 Changes to Outputs:
 + workspace = "default"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d .`
-</details>
+  ```shell
+  atlantis plan -d .
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/repo-config-file/exp-output-apply.txt b/server/controllers/events/testdata/test-repos/repo-config-file/exp-output-apply.txt
index a136ff9691..4b78a636d5 100644
--- a/server/controllers/events/testdata/test-repos/repo-config-file/exp-output-apply.txt
+++ b/server/controllers/events/testdata/test-repos/repo-config-file/exp-output-apply.txt
@@ -2,6 +2,7 @@ Ran Apply for 2 projects:
 
 1. dir: `infrastructure/production` workspace: `default`
 1. dir: `infrastructure/staging` workspace: `default`
+---
 
 ### 1. dir: `infrastructure/production` workspace: `default`
 ```diff
diff --git a/server/controllers/events/testdata/test-repos/repo-config-file/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/repo-config-file/exp-output-autoplan.txt
index 29f5f76dae..8bf40fc657 100644
--- a/server/controllers/events/testdata/test-repos/repo-config-file/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/repo-config-file/exp-output-autoplan.txt
@@ -2,6 +2,7 @@ Ran Plan for 2 projects:
 
 1. dir: `infrastructure/staging` workspace: `default`
 1. dir: `infrastructure/production` workspace: `default`
+---
 
 ### 1. dir: `infrastructure/staging` workspace: `default`
 ```diff
@@ -20,10 +21,14 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 ```
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d infrastructure/staging`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d infrastructure/staging
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d infrastructure/staging`
+  ```shell
+  atlantis plan -d infrastructure/staging
+  ```
 
 ---
 ### 2. dir: `infrastructure/production` workspace: `default`
@@ -43,17 +48,25 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 ```
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d infrastructure/production`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d infrastructure/production
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d infrastructure/production`
+  ```shell
+  atlantis plan -d infrastructure/production
+  ```
 
 ---
 ### Plan Summary
 
 2 projects, 2 with changes, 0 with no changes, 0 failed
 
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/server-side-cfg/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/server-side-cfg/exp-output-autoplan.txt
index ad9591b8ae..37e78c18af 100644
--- a/server/controllers/events/testdata/test-repos/server-side-cfg/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/server-side-cfg/exp-output-autoplan.txt
@@ -2,6 +2,7 @@ Ran Plan for 2 projects:
 
 1. dir: `.` workspace: `default`
 1. dir: `.` workspace: `staging`
+---
 
 ### 1. dir: `.` workspace: `default`
 <details><summary>Show Output</summary>
@@ -28,13 +29,17 @@ Changes to Outputs:
 
 postplan custom
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d .`
-</details>
+  ```shell
+  atlantis plan -d .
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
@@ -61,13 +66,17 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 Changes to Outputs:
 + workspace = "staging"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -w staging`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -w staging
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -w staging`
-</details>
+  ```shell
+  atlantis plan -w staging
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
@@ -75,7 +84,11 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 
 2 projects, 2 with changes, 0 with no changes, 0 failed
 
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/simple-with-lockfile/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/simple-with-lockfile/exp-output-autoplan.txt
index 6e70ac89fb..822531032c 100644
--- a/server/controllers/events/testdata/test-repos/simple-with-lockfile/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/simple-with-lockfile/exp-output-autoplan.txt
@@ -30,17 +30,25 @@ Changes to Outputs:
 + var       = "default"
 + workspace = "default"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d .`
-</details>
+  ```shell
+  atlantis plan -d .
+  ```
 Plan: 3 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/simple-with-lockfile/exp-output-plan.txt b/server/controllers/events/testdata/test-repos/simple-with-lockfile/exp-output-plan.txt
index 6e70ac89fb..822531032c 100644
--- a/server/controllers/events/testdata/test-repos/simple-with-lockfile/exp-output-plan.txt
+++ b/server/controllers/events/testdata/test-repos/simple-with-lockfile/exp-output-plan.txt
@@ -30,17 +30,25 @@ Changes to Outputs:
 + var       = "default"
 + workspace = "default"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d .`
-</details>
+  ```shell
+  atlantis plan -d .
+  ```
 Plan: 3 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/simple-yaml/exp-output-apply-all.txt b/server/controllers/events/testdata/test-repos/simple-yaml/exp-output-apply-all.txt
index 61eac2271a..4e757a396c 100644
--- a/server/controllers/events/testdata/test-repos/simple-yaml/exp-output-apply-all.txt
+++ b/server/controllers/events/testdata/test-repos/simple-yaml/exp-output-apply-all.txt
@@ -2,6 +2,7 @@ Ran Apply for 2 projects:
 
 1. dir: `.` workspace: `default`
 1. dir: `.` workspace: `staging`
+---
 
 ### 1. dir: `.` workspace: `default`
 ```diff
diff --git a/server/controllers/events/testdata/test-repos/simple-yaml/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/simple-yaml/exp-output-autoplan.txt
index dcbb45bf78..c445925f6c 100644
--- a/server/controllers/events/testdata/test-repos/simple-yaml/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/simple-yaml/exp-output-autoplan.txt
@@ -2,6 +2,7 @@ Ran Plan for 2 projects:
 
 1. dir: `.` workspace: `default`
 1. dir: `.` workspace: `staging`
+---
 
 ### 1. dir: `.` workspace: `default`
 <details><summary>Show Output</summary>
@@ -29,13 +30,17 @@ Changes to Outputs:
 
 postplan
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d .`
-</details>
+  ```shell
+  atlantis plan -d .
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
@@ -60,13 +65,17 @@ Changes to Outputs:
 + var       = "fromfile"
 + workspace = "staging"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -w staging`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -w staging
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -w staging`
-</details>
+  ```shell
+  atlantis plan -w staging
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
@@ -74,7 +83,11 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 
 2 projects, 2 with changes, 0 with no changes, 0 failed
 
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/simple-yaml/exp-output-plan-default.txt b/server/controllers/events/testdata/test-repos/simple-yaml/exp-output-plan-default.txt
index f0419c9189..b944f4deab 100644
--- a/server/controllers/events/testdata/test-repos/simple-yaml/exp-output-plan-default.txt
+++ b/server/controllers/events/testdata/test-repos/simple-yaml/exp-output-plan-default.txt
@@ -25,17 +25,25 @@ Changes to Outputs:
 
 postplan
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d .`
-</details>
+  ```shell
+  atlantis plan -d .
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
diff --git a/server/controllers/events/testdata/test-repos/simple-yaml/exp-output-plan-staging.txt b/server/controllers/events/testdata/test-repos/simple-yaml/exp-output-plan-staging.txt
index 7e34016bab..64880424f6 100644
--- a/server/controllers/events/testdata/test-repos/simple-yaml/exp-output-plan-staging.txt
+++ b/server/controllers/events/testdata/test-repos/simple-yaml/exp-output-plan-staging.txt
@@ -20,17 +20,25 @@ Changes to Outputs:
 + var       = "fromfile"
 + workspace = "staging"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -w staging`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -w staging
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -w staging`
-</details>
+  ```shell
+  atlantis plan -w staging
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/simple/exp-output-apply-var-all.txt b/server/controllers/events/testdata/test-repos/simple/exp-output-apply-var-all.txt
index 2977099b55..cb7dd9a752 100644
--- a/server/controllers/events/testdata/test-repos/simple/exp-output-apply-var-all.txt
+++ b/server/controllers/events/testdata/test-repos/simple/exp-output-apply-var-all.txt
@@ -2,6 +2,7 @@ Ran Apply for 2 projects:
 
 1. dir: `.` workspace: `default`
 1. dir: `.` workspace: `new_workspace`
+---
 
 ### 1. dir: `.` workspace: `default`
 <details><summary>Show Output</summary>
diff --git a/server/controllers/events/testdata/test-repos/simple/exp-output-atlantis-plan-new-workspace.txt b/server/controllers/events/testdata/test-repos/simple/exp-output-atlantis-plan-new-workspace.txt
index 242515e415..13bdae3fac 100644
--- a/server/controllers/events/testdata/test-repos/simple/exp-output-atlantis-plan-new-workspace.txt
+++ b/server/controllers/events/testdata/test-repos/simple/exp-output-atlantis-plan-new-workspace.txt
@@ -30,17 +30,25 @@ Changes to Outputs:
 + var       = "new_workspace"
 + workspace = "new_workspace"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -w new_workspace`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -w new_workspace
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -w new_workspace -- -var var=new_workspace`
-</details>
+  ```shell
+  atlantis plan -w new_workspace -- -var var=new_workspace
+  ```
 Plan: 3 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/simple/exp-output-atlantis-plan-var-overridden.txt b/server/controllers/events/testdata/test-repos/simple/exp-output-atlantis-plan-var-overridden.txt
index 5a86cff0c9..ab28d0ca84 100644
--- a/server/controllers/events/testdata/test-repos/simple/exp-output-atlantis-plan-var-overridden.txt
+++ b/server/controllers/events/testdata/test-repos/simple/exp-output-atlantis-plan-var-overridden.txt
@@ -30,17 +30,25 @@ Changes to Outputs:
 + var       = "overridden"
 + workspace = "default"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d . -- -var var=overridden`
-</details>
+  ```shell
+  atlantis plan -d . -- -var var=overridden
+  ```
 Plan: 3 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/simple/exp-output-atlantis-plan.txt b/server/controllers/events/testdata/test-repos/simple/exp-output-atlantis-plan.txt
index 54e5505476..191b540b63 100644
--- a/server/controllers/events/testdata/test-repos/simple/exp-output-atlantis-plan.txt
+++ b/server/controllers/events/testdata/test-repos/simple/exp-output-atlantis-plan.txt
@@ -30,17 +30,25 @@ Changes to Outputs:
 + var       = "default_workspace"
 + workspace = "default"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d . -- -var var=default_workspace`
-</details>
+  ```shell
+  atlantis plan -d . -- -var var=default_workspace
+  ```
 Plan: 3 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/simple/exp-output-auto-policy-check.txt b/server/controllers/events/testdata/test-repos/simple/exp-output-auto-policy-check.txt
index c6e0823922..fd03e48aed 100644
--- a/server/controllers/events/testdata/test-repos/simple/exp-output-auto-policy-check.txt
+++ b/server/controllers/events/testdata/test-repos/simple/exp-output-auto-policy-check.txt
@@ -5,13 +5,21 @@ Ran Policy Check for dir: `.` workspace: `default`
 ```
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * `atlantis plan -d .`
+  ```shell
+  atlantis plan -d .
+  ```
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
diff --git a/server/controllers/events/testdata/test-repos/simple/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/simple/exp-output-autoplan.txt
index 6e70ac89fb..822531032c 100644
--- a/server/controllers/events/testdata/test-repos/simple/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/simple/exp-output-autoplan.txt
@@ -30,17 +30,25 @@ Changes to Outputs:
 + var       = "default"
 + workspace = "default"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d .`
-</details>
+  ```shell
+  atlantis plan -d .
+  ```
 Plan: 3 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-autoplan.txt
index 49c4dc2673..fe62683dad 100644
--- a/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-autoplan.txt
@@ -2,6 +2,7 @@ Ran Plan for 2 projects:
 
 1. dir: `dir1` workspace: `default`
 1. dir: `dir2` workspace: `default`
+---
 
 ### 1. dir: `dir1` workspace: `default`
 <details><summary>Show Output</summary>
@@ -26,13 +27,17 @@ Terraform will perform the following actions:
 
 Plan: 1 to add, 0 to change, 0 to destroy.
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d dir1`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d dir1
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d dir1`
-</details>
+  ```shell
+  atlantis plan -d dir1
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
@@ -59,13 +64,17 @@ Terraform will perform the following actions:
 
 Plan: 1 to add, 0 to change, 0 to destroy.
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d dir2`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d dir2
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d dir2`
-</details>
+  ```shell
+  atlantis plan -d dir2
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
@@ -73,7 +82,11 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 
 2 projects, 2 with changes, 0 with no changes, 0 failed
 
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-import-dummy1.txt b/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-import-dummy1.txt
index 45b6c1ed55..8d98fee1d7 100644
--- a/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-import-dummy1.txt
+++ b/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-import-dummy1.txt
@@ -15,4 +15,6 @@ your Terraform state and will henceforth be managed by Terraform.
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * `atlantis plan -d dir1`
\ No newline at end of file
+  ```shell
+  atlantis plan -d dir1
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-import-dummy2.txt b/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-import-dummy2.txt
index 7a28ec5e85..e6bef5251a 100644
--- a/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-import-dummy2.txt
+++ b/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-import-dummy2.txt
@@ -15,4 +15,6 @@ your Terraform state and will henceforth be managed by Terraform.
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * `atlantis plan -d dir2`
\ No newline at end of file
+  ```shell
+  atlantis plan -d dir2
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-plan-again.txt b/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-plan-again.txt
index 49c4dc2673..fe62683dad 100644
--- a/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-plan-again.txt
+++ b/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-plan-again.txt
@@ -2,6 +2,7 @@ Ran Plan for 2 projects:
 
 1. dir: `dir1` workspace: `default`
 1. dir: `dir2` workspace: `default`
+---
 
 ### 1. dir: `dir1` workspace: `default`
 <details><summary>Show Output</summary>
@@ -26,13 +27,17 @@ Terraform will perform the following actions:
 
 Plan: 1 to add, 0 to change, 0 to destroy.
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d dir1`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d dir1
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d dir1`
-</details>
+  ```shell
+  atlantis plan -d dir1
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
@@ -59,13 +64,17 @@ Terraform will perform the following actions:
 
 Plan: 1 to add, 0 to change, 0 to destroy.
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d dir2`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d dir2
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d dir2`
-</details>
+  ```shell
+  atlantis plan -d dir2
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
@@ -73,7 +82,11 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 
 2 projects, 2 with changes, 0 with no changes, 0 failed
 
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-plan.txt b/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-plan.txt
index fb3cfdbbd7..d74495004a 100644
--- a/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-plan.txt
+++ b/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-plan.txt
@@ -2,6 +2,7 @@ Ran Plan for 2 projects:
 
 1. dir: `dir1` workspace: `default`
 1. dir: `dir2` workspace: `default`
+---
 
 ### 1. dir: `dir1` workspace: `default`
 ```diff
@@ -14,10 +15,14 @@ and found no differences, so no changes are needed.
 ```
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d dir1`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d dir1
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d dir1`
+  ```shell
+  atlantis plan -d dir1
+  ```
 
 ---
 ### 2. dir: `dir2` workspace: `default`
@@ -31,17 +36,25 @@ and found no differences, so no changes are needed.
 ```
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d dir2`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d dir2
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d dir2`
+  ```shell
+  atlantis plan -d dir2
+  ```
 
 ---
 ### Plan Summary
 
 2 projects, 0 with changes, 2 with no changes, 0 failed
 
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-state-rm-multiple-projects.txt b/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-state-rm-multiple-projects.txt
index 3c8e0eb0bb..973455d73c 100644
--- a/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-state-rm-multiple-projects.txt
+++ b/server/controllers/events/testdata/test-repos/state-rm-multiple-project/exp-output-state-rm-multiple-projects.txt
@@ -2,6 +2,7 @@ Ran State for 2 projects:
 
 1. dir: `dir1` workspace: `default`
 1. dir: `dir2` workspace: `default`
+---
 
 ### 1. dir: `dir1` workspace: `default`
 ```diff
@@ -12,7 +13,9 @@ Successfully removed 1 resource instance(s).
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * `atlantis plan -d dir1`
+  ```shell
+  atlantis plan -d dir1
+  ```
 
 ---
 ### 2. dir: `dir2` workspace: `default`
@@ -24,6 +27,8 @@ Successfully removed 1 resource instance(s).
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * `atlantis plan -d dir2`
+  ```shell
+  atlantis plan -d dir2
+  ```
 
 ---
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-autoplan.txt
index 077f989d9a..530e9df755 100644
--- a/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-autoplan.txt
@@ -44,17 +44,25 @@ Terraform will perform the following actions:
 
 Plan: 3 to add, 0 to change, 0 to destroy.
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d .`
-</details>
+  ```shell
+  atlantis plan -d .
+  ```
 Plan: 3 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-import-count.txt b/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-import-count.txt
index d7957913db..32680f595f 100644
--- a/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-import-count.txt
+++ b/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-import-count.txt
@@ -15,4 +15,6 @@ your Terraform state and will henceforth be managed by Terraform.
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * `atlantis plan -d .`
\ No newline at end of file
+  ```shell
+  atlantis plan -d .
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-import-foreach.txt b/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-import-foreach.txt
index 284c8e2457..982e937496 100644
--- a/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-import-foreach.txt
+++ b/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-import-foreach.txt
@@ -15,4 +15,6 @@ your Terraform state and will henceforth be managed by Terraform.
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * `atlantis plan -d .`
\ No newline at end of file
+  ```shell
+  atlantis plan -d .
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-import-simple.txt b/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-import-simple.txt
index 1f17baa2d7..be74444839 100644
--- a/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-import-simple.txt
+++ b/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-import-simple.txt
@@ -15,4 +15,6 @@ your Terraform state and will henceforth be managed by Terraform.
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * `atlantis plan -d .`
\ No newline at end of file
+  ```shell
+  atlantis plan -d .
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-plan-again.txt b/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-plan-again.txt
index edb4c17579..548bf843a2 100644
--- a/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-plan-again.txt
+++ b/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-plan-again.txt
@@ -44,17 +44,25 @@ Terraform will perform the following actions:
 
 Plan: 3 to add, 0 to change, 0 to destroy.
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d . -- -var var=overridden`
-</details>
+  ```shell
+  atlantis plan -d . -- -var var=overridden
+  ```
 Plan: 3 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-plan.txt b/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-plan.txt
index 46a378158b..379d9e8ce7 100644
--- a/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-plan.txt
+++ b/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-plan.txt
@@ -8,13 +8,21 @@ and found no differences, so no changes are needed.
 ```
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d .`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d .
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d . -- -var var=overridden`
+  ```shell
+  atlantis plan -d . -- -var var=overridden
+  ```
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-state-rm-foreach.txt b/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-state-rm-foreach.txt
index 264b5f2881..a6f0f97cce 100644
--- a/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-state-rm-foreach.txt
+++ b/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-state-rm-foreach.txt
@@ -8,4 +8,6 @@ Successfully removed 1 resource instance(s).
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * `atlantis plan -d .`
\ No newline at end of file
+  ```shell
+  atlantis plan -d .
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-state-rm-multiple.txt b/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-state-rm-multiple.txt
index a0d1b54717..0848fc65e8 100644
--- a/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-state-rm-multiple.txt
+++ b/server/controllers/events/testdata/test-repos/state-rm-single-project/exp-output-state-rm-multiple.txt
@@ -9,4 +9,6 @@ Successfully removed 2 resource instance(s).
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * `atlantis plan -d .`
\ No newline at end of file
+  ```shell
+  atlantis plan -d .
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/state-rm-workspace/exp-output-import-dummy1.txt b/server/controllers/events/testdata/test-repos/state-rm-workspace/exp-output-import-dummy1.txt
index a6a1dbbfaa..b81ff32704 100644
--- a/server/controllers/events/testdata/test-repos/state-rm-workspace/exp-output-import-dummy1.txt
+++ b/server/controllers/events/testdata/test-repos/state-rm-workspace/exp-output-import-dummy1.txt
@@ -15,4 +15,6 @@ your Terraform state and will henceforth be managed by Terraform.
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * `atlantis plan -p dir1-ops`
\ No newline at end of file
+  ```shell
+  atlantis plan -p dir1-ops
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/state-rm-workspace/exp-output-plan-again.txt b/server/controllers/events/testdata/test-repos/state-rm-workspace/exp-output-plan-again.txt
index b24ee90b20..e1ea612f2f 100644
--- a/server/controllers/events/testdata/test-repos/state-rm-workspace/exp-output-plan-again.txt
+++ b/server/controllers/events/testdata/test-repos/state-rm-workspace/exp-output-plan-again.txt
@@ -22,17 +22,25 @@ Terraform will perform the following actions:
 
 Plan: 1 to add, 0 to change, 0 to destroy.
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -p dir1-ops`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -p dir1-ops
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -p dir1-ops`
-</details>
+  ```shell
+  atlantis plan -p dir1-ops
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/state-rm-workspace/exp-output-plan.txt b/server/controllers/events/testdata/test-repos/state-rm-workspace/exp-output-plan.txt
index 4c73caa512..3beeb14cab 100644
--- a/server/controllers/events/testdata/test-repos/state-rm-workspace/exp-output-plan.txt
+++ b/server/controllers/events/testdata/test-repos/state-rm-workspace/exp-output-plan.txt
@@ -10,13 +10,21 @@ and found no differences, so no changes are needed.
 ```
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -p dir1-ops`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -p dir1-ops
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -p dir1-ops`
+  ```shell
+  atlantis plan -p dir1-ops
+  ```
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/state-rm-workspace/exp-output-state-rm-dummy1.txt b/server/controllers/events/testdata/test-repos/state-rm-workspace/exp-output-state-rm-dummy1.txt
index 5aa99db217..8c63577a49 100644
--- a/server/controllers/events/testdata/test-repos/state-rm-workspace/exp-output-state-rm-dummy1.txt
+++ b/server/controllers/events/testdata/test-repos/state-rm-workspace/exp-output-state-rm-dummy1.txt
@@ -8,4 +8,6 @@ Successfully removed 1 resource instance(s).
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * `atlantis plan -p dir1-ops`
\ No newline at end of file
+  ```shell
+  atlantis plan -p dir1-ops
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/tfvars-yaml-no-autoplan/exp-output-plan-default.txt b/server/controllers/events/testdata/test-repos/tfvars-yaml-no-autoplan/exp-output-plan-default.txt
index 20be38a244..cf3378bc59 100644
--- a/server/controllers/events/testdata/test-repos/tfvars-yaml-no-autoplan/exp-output-plan-default.txt
+++ b/server/controllers/events/testdata/test-repos/tfvars-yaml-no-autoplan/exp-output-plan-default.txt
@@ -20,17 +20,25 @@ Changes to Outputs:
 + var       = "default"
 + workspace = "default"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -p default`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -p default
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -p default`
-</details>
+  ```shell
+  atlantis plan -p default
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/tfvars-yaml-no-autoplan/exp-output-plan-staging.txt b/server/controllers/events/testdata/test-repos/tfvars-yaml-no-autoplan/exp-output-plan-staging.txt
index e34c9bc2dd..efad85de0e 100644
--- a/server/controllers/events/testdata/test-repos/tfvars-yaml-no-autoplan/exp-output-plan-staging.txt
+++ b/server/controllers/events/testdata/test-repos/tfvars-yaml-no-autoplan/exp-output-plan-staging.txt
@@ -20,17 +20,25 @@ Changes to Outputs:
 + var       = "staging"
 + workspace = "default"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -p staging`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -p staging
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -p staging`
-</details>
+  ```shell
+  atlantis plan -p staging
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/tfvars-yaml/exp-output-autoplan.txt b/server/controllers/events/testdata/test-repos/tfvars-yaml/exp-output-autoplan.txt
index 82ce193d9f..75c4320f96 100644
--- a/server/controllers/events/testdata/test-repos/tfvars-yaml/exp-output-autoplan.txt
+++ b/server/controllers/events/testdata/test-repos/tfvars-yaml/exp-output-autoplan.txt
@@ -2,6 +2,7 @@ Ran Plan for 2 projects:
 
 1. project: `default` dir: `.` workspace: `default`
 1. project: `staging` dir: `.` workspace: `default`
+---
 
 ### 1. project: `default` dir: `.` workspace: `default`
 <details><summary>Show Output</summary>
@@ -26,13 +27,17 @@ Changes to Outputs:
 
 workspace=default
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -p default`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -p default
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -p default`
-</details>
+  ```shell
+  atlantis plan -p default
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
@@ -57,13 +62,17 @@ Changes to Outputs:
 + var       = "staging"
 + workspace = "default"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -p staging`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -p staging
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -p staging`
-</details>
+  ```shell
+  atlantis plan -p staging
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
@@ -71,7 +80,11 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 
 2 projects, 2 with changes, 0 with no changes, 0 failed
 
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/workspace-parallel-yaml/exp-output-autoplan-production.txt b/server/controllers/events/testdata/test-repos/workspace-parallel-yaml/exp-output-autoplan-production.txt
index cd4e8e0b95..986241f599 100644
--- a/server/controllers/events/testdata/test-repos/workspace-parallel-yaml/exp-output-autoplan-production.txt
+++ b/server/controllers/events/testdata/test-repos/workspace-parallel-yaml/exp-output-autoplan-production.txt
@@ -2,6 +2,7 @@ Ran Plan for 2 projects:
 
 1. dir: `production` workspace: `production`
 1. dir: `staging` workspace: `staging`
+---
 
 ### 1. dir: `production` workspace: `production`
 <details><summary>Show Output</summary>
@@ -23,13 +24,17 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 Changes to Outputs:
 + workspace = "production"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d production -w production`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d production -w production
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d production -w production`
-</details>
+  ```shell
+  atlantis plan -d production -w production
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
@@ -53,13 +58,17 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 Changes to Outputs:
 + workspace = "staging"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d staging -w staging`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d staging -w staging
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d staging -w staging`
-</details>
+  ```shell
+  atlantis plan -d staging -w staging
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
@@ -67,7 +76,11 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 
 2 projects, 2 with changes, 0 with no changes, 0 failed
 
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/controllers/events/testdata/test-repos/workspace-parallel-yaml/exp-output-autoplan-staging.txt b/server/controllers/events/testdata/test-repos/workspace-parallel-yaml/exp-output-autoplan-staging.txt
index cd4e8e0b95..986241f599 100644
--- a/server/controllers/events/testdata/test-repos/workspace-parallel-yaml/exp-output-autoplan-staging.txt
+++ b/server/controllers/events/testdata/test-repos/workspace-parallel-yaml/exp-output-autoplan-staging.txt
@@ -2,6 +2,7 @@ Ran Plan for 2 projects:
 
 1. dir: `production` workspace: `production`
 1. dir: `staging` workspace: `staging`
+---
 
 ### 1. dir: `production` workspace: `production`
 <details><summary>Show Output</summary>
@@ -23,13 +24,17 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 Changes to Outputs:
 + workspace = "production"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d production -w production`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d production -w production
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d production -w production`
-</details>
+  ```shell
+  atlantis plan -d production -w production
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
@@ -53,13 +58,17 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 Changes to Outputs:
 + workspace = "staging"
 ```
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * `atlantis apply -d staging -w staging`
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  ```shell
+  atlantis apply -d staging -w staging
+  ```
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * `atlantis plan -d staging -w staging`
-</details>
+  ```shell
+  atlantis plan -d staging -w staging
+  ```
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
@@ -67,7 +76,11 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 
 2 projects, 2 with changes, 0 with no changes, 0 failed
 
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * `atlantis apply`
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * `atlantis unlock`
\ No newline at end of file
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  ```shell
+  atlantis apply
+  ```
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  ```shell
+  atlantis unlock
+  ```
\ No newline at end of file
diff --git a/server/events/apply_command_runner_test.go b/server/events/apply_command_runner_test.go
index 62c29458fa..43c000801c 100644
--- a/server/events/apply_command_runner_test.go
+++ b/server/events/apply_command_runner_test.go
@@ -261,7 +261,7 @@ func TestApplyCommandRunner_ExecutionOrder(t *testing.T) {
 				Once(),
 			},
 			ExpComment: "Ran Apply for 2 projects:\n\n" +
-				"1. dir: `` workspace: ``\n1. dir: `` workspace: ``\n\n### 1. dir: `` workspace: ``\n```diff\nGreat success!\n```\n\n---\n### " +
+				"1. dir: `` workspace: ``\n1. dir: `` workspace: ``\n---\n\n### 1. dir: `` workspace: ``\n```diff\nGreat success!\n```\n\n---\n### " +
 				"2. dir: `` workspace: ``\n**Apply Error**\n```\nshabang\n```\n\n---\n### Apply Summary\n\n2 projects, 1 successful, 0 failed, 1 errored",
 		},
 		{
@@ -346,7 +346,7 @@ func TestApplyCommandRunner_ExecutionOrder(t *testing.T) {
 				Never(),
 			},
 			ExpComment: "Ran Apply for 2 projects:\n\n" +
-				"1. dir: `` workspace: ``\n1. dir: `` workspace: ``\n\n### 1. dir: `` workspace: ``\n```diff\nGreat success!\n```\n\n---\n### " +
+				"1. dir: `` workspace: ``\n1. dir: `` workspace: ``\n---\n\n### 1. dir: `` workspace: ``\n```diff\nGreat success!\n```\n\n---\n### " +
 				"2. dir: `` workspace: ``\n**Apply Error**\n```\nshabang\n```\n\n---\n### Apply Summary\n\n2 projects, 1 successful, 0 failed, 1 errored",
 		},
 		{
@@ -399,7 +399,7 @@ func TestApplyCommandRunner_ExecutionOrder(t *testing.T) {
 				Once(),
 			},
 			ExpComment: "Ran Apply for 4 projects:\n\n" +
-				"1. dir: `` workspace: ``\n1. dir: `` workspace: ``\n1. dir: `` workspace: ``\n1. dir: `` workspace: ``\n\n### 1. dir: `` workspace: ``\n```diff\nGreat success!\n```\n\n---\n### " +
+				"1. dir: `` workspace: ``\n1. dir: `` workspace: ``\n1. dir: `` workspace: ``\n1. dir: `` workspace: ``\n---\n\n### 1. dir: `` workspace: ``\n```diff\nGreat success!\n```\n\n---\n### " +
 				"2. dir: `` workspace: ``\n```diff\nGreat success!\n```\n\n---\n### " +
 				"3. dir: `` workspace: ``\n**Apply Error**\n```\nshabang\n```\n\n---\n### " +
 				"4. dir: `` workspace: ``\n```diff\nGreat success!\n```\n\n---\n### Apply Summary\n\n4 projects, 3 successful, 0 failed, 1 errored",
@@ -433,7 +433,7 @@ func TestApplyCommandRunner_ExecutionOrder(t *testing.T) {
 				Once(),
 			},
 			ExpComment: "Ran Apply for 2 projects:\n\n" +
-				"1. dir: `` workspace: ``\n1. dir: `` workspace: ``\n\n### 1. dir: `` workspace: ``\n**Apply Error**\n```\nshabang\n```\n\n---\n### " +
+				"1. dir: `` workspace: ``\n1. dir: `` workspace: ``\n---\n\n### 1. dir: `` workspace: ``\n**Apply Error**\n```\nshabang\n```\n\n---\n### " +
 				"2. dir: `` workspace: ``\n```diff\nGreat success!\n```\n\n---\n### Apply Summary\n\n2 projects, 1 successful, 0 failed, 1 errored",
 		},
 		{
@@ -463,7 +463,7 @@ func TestApplyCommandRunner_ExecutionOrder(t *testing.T) {
 				Once(),
 			},
 			ExpComment: "Ran Apply for 2 projects:\n\n" +
-				"1. dir: `` workspace: ``\n1. dir: `` workspace: ``\n\n### 1. dir: `` workspace: ``\n**Apply Error**\n```\nshabang\n```\n\n---\n### " +
+				"1. dir: `` workspace: ``\n1. dir: `` workspace: ``\n---\n\n### 1. dir: `` workspace: ``\n**Apply Error**\n```\nshabang\n```\n\n---\n### " +
 				"2. dir: `` workspace: ``\n```diff\nGreat success!\n```\n\n---\n### Apply Summary\n\n2 projects, 1 successful, 0 failed, 1 errored",
 		},
 	}
diff --git a/server/events/markdown_renderer_test.go b/server/events/markdown_renderer_test.go
index eebd1a8b87..92887db5d1 100644
--- a/server/events/markdown_renderer_test.go
+++ b/server/events/markdown_renderer_test.go
@@ -23,6 +23,7 @@ import (
 	"github.com/runatlantis/atlantis/server/events"
 	"github.com/runatlantis/atlantis/server/events/command"
 	"github.com/runatlantis/atlantis/server/events/models"
+	"github.com/runatlantis/atlantis/server/logging"
 	. "github.com/runatlantis/atlantis/testing"
 )
 
@@ -60,17 +61,36 @@ func TestRenderErr(t *testing.T) {
 	}
 
 	r := events.NewMarkdownRenderer(false, false, false, false, false, false, "", "atlantis", false)
+	logger := logging.NewNoopLogger(t).WithHistory()
+	logText := "log"
+	logger.Info(logText)
+	ctx := &command.Context{
+		Log: logger,
+		Pull: models.PullRequest{
+			BaseRepo: models.Repo{
+				VCSHost: models.VCSHost{
+					Type: models.Github,
+				},
+			},
+		},
+	}
 	for _, c := range cases {
 		res := command.Result{
 			Error: c.Error,
 		}
 		for _, verbose := range []bool{true, false} {
 			t.Run(fmt.Sprintf("%s_%t", c.Description, verbose), func(t *testing.T) {
-				s := r.Render(res, c.Command, "", "log", verbose, models.Github)
+				cmd := &events.CommentCommand{
+					Name:    c.Command,
+					Verbose: verbose,
+				}
+				s := r.Render(ctx, res, cmd)
 				if !verbose {
 					Equals(t, normalize(c.Expected), normalize(s))
 				} else {
-					Equals(t, normalize(c.Expected)+"\n\n<details><summary>Log</summary>\n  <p>\n\n```\nlog```\n</p></details>", normalize(s))
+					log := fmt.Sprintf("[INFO] %s", logText)
+					Equals(t, normalize(c.Expected+
+						fmt.Sprintf("\n<details><summary>Log</summary>\n<p>\n\n```\n%s\n```\n</p></details>", log)), normalize(s))
 				}
 			})
 		}
@@ -88,34 +108,54 @@ func TestRenderFailure(t *testing.T) {
 			"apply failure",
 			command.Apply,
 			"failure",
-			"**Apply Failed**: failure\n",
+			"**Apply Failed**: failure",
 		},
 		{
 			"plan failure",
 			command.Plan,
 			"failure",
-			"**Plan Failed**: failure\n",
+			"**Plan Failed**: failure",
 		},
 		{
 			"policy check failure",
 			command.PolicyCheck,
 			"failure",
-			"**Policy Check Failed**: failure\n",
+			"**Policy Check Failed**: failure",
 		},
 	}
 
 	r := events.NewMarkdownRenderer(false, false, false, false, false, false, "", "atlantis", false)
+	logger := logging.NewNoopLogger(t).WithHistory()
+	logText := "log"
+	logger.Info(logText)
+	ctx := &command.Context{
+		Log: logger,
+		Pull: models.PullRequest{
+			BaseRepo: models.Repo{
+				VCSHost: models.VCSHost{
+					Type: models.Github,
+				},
+			},
+		},
+	}
+
 	for _, c := range cases {
 		res := command.Result{
 			Failure: c.Failure,
 		}
 		for _, verbose := range []bool{true, false} {
 			t.Run(fmt.Sprintf("%s_%t", c.Description, verbose), func(t *testing.T) {
-				s := r.Render(res, c.Command, "", "log", verbose, models.Github)
+				cmd := &events.CommentCommand{
+					Name:    c.Command,
+					Verbose: verbose,
+				}
+				s := r.Render(ctx, res, cmd)
 				if !verbose {
 					Equals(t, normalize(c.Expected), normalize(s))
 				} else {
-					Equals(t, normalize(c.Expected+"\n<details><summary>Log</summary>\n  <p>\n\n```\nlog```\n</p></details>"), normalize(s))
+					log := fmt.Sprintf("[INFO] %s", logText)
+					Equals(t, normalize(c.Expected+
+						fmt.Sprintf("\n<details><summary>Log</summary>\n<p>\n\n```\n%s\n```\n</p></details>", log)), normalize(s))
 				}
 			})
 		}
@@ -124,11 +164,27 @@ func TestRenderFailure(t *testing.T) {
 
 func TestRenderErrAndFailure(t *testing.T) {
 	r := events.NewMarkdownRenderer(false, false, false, false, false, false, "", "atlantis", false)
+	logger := logging.NewNoopLogger(t).WithHistory()
+	ctx := &command.Context{
+		Log: logger,
+		Pull: models.PullRequest{
+			BaseRepo: models.Repo{
+				VCSHost: models.VCSHost{
+					Type: models.Github,
+				},
+			},
+		},
+	}
 	res := command.Result{
 		Error:   errors.New("error"),
 		Failure: "failure",
 	}
-	s := r.Render(res, command.Plan, "", "", false, models.Github)
+	cmd := &events.CommentCommand{
+		Name:    command.Plan,
+		Verbose: false,
+	}
+
+	s := r.Render(ctx, res, cmd)
 	Equals(t, "**Plan Error**\n```\nerror\n```", normalize(s))
 }
 
@@ -147,7 +203,7 @@ func TestRenderProjectResults(t *testing.T) {
 			"",
 			[]command.ProjectResult{},
 			models.Github,
-			"Ran Plan for 0 projects:\n\n\n",
+			"Ran Plan for 0 projects:\n\n",
 		},
 		{
 			"single successful plan",
@@ -166,23 +222,32 @@ func TestRenderProjectResults(t *testing.T) {
 				},
 			},
 			models.Github,
-			`Ran Plan for dir: $path$ workspace: $workspace$
+			`
+Ran Plan for dir: $path$ workspace: $workspace$
 
 $$$diff
 terraform-output
 $$$
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $atlantis apply -d path -w workspace$
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  $$$shell
+  atlantis apply -d path -w workspace
+  $$$
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * $atlantis plan -d path -w workspace$
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * $atlantis apply$
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * $atlantis unlock$
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  $$$shell
+  atlantis apply
+  $$$
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  $$$shell
+  atlantis unlock
+  $$$
 `,
 		},
 		{
@@ -203,25 +268,33 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Plan for dir: $path$ workspace: $workspace$
+			`
+Ran Plan for dir: $path$ workspace: $workspace$
 
 $$$diff
 terraform-output
 $$$
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $atlantis apply -d path -w workspace$
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  $$$shell
+  atlantis apply -d path -w workspace
+  $$$
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * $atlantis plan -d path -w workspace$
-
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 :twisted_rightwards_arrows: Upstream was modified, a new merge was performed.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * $atlantis apply$
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * $atlantis unlock$
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  $$$shell
+  atlantis apply
+  $$$
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  $$$shell
+  atlantis unlock
+  $$$
 `,
 		},
 		{
@@ -242,23 +315,32 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Plan for project: $projectname$ dir: $path$ workspace: $workspace$
+			`
+Ran Plan for project: $projectname$ dir: $path$ workspace: $workspace$
 
 $$$diff
 terraform-output
 $$$
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $atlantis apply -d path -w workspace$
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  $$$shell
+  atlantis apply -d path -w workspace
+  $$$
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * $atlantis plan -d path -w workspace$
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * $atlantis apply$
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * $atlantis unlock$
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  $$$shell
+  atlantis apply
+  $$$
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  $$$shell
+  atlantis unlock
+  $$$
 `,
 		},
 		{
@@ -296,7 +378,8 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Policy Check for project: $projectname$ dir: $path$ workspace: $workspace$
+			`
+Ran Policy Check for project: $projectname$ dir: $path$ workspace: $workspace$
 
 #### Policy Set: $policy1$
 $$$diff
@@ -317,16 +400,24 @@ policy set: policy1: requires: 1 approval(s), have: 0.
 policy set: policy2: passed.
 $$$
 * :heavy_check_mark: To **approve** this project, comment:
-    * $$
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  $$$shell
+  
+  $$$
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * $atlantis plan -d path -w workspace$
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * $atlantis apply$
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * $atlantis unlock$
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  $$$shell
+  atlantis apply
+  $$$
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  $$$shell
+  atlantis unlock
+  $$$
 `,
 		},
 		{
@@ -357,7 +448,8 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Policy Check for project: $projectname$ dir: $path$ workspace: $workspace$
+			`
+Ran Policy Check for project: $projectname$ dir: $path$ workspace: $workspace$
 
 <details><summary>Show Output</summary>
 
@@ -382,26 +474,34 @@ FAIL - <redacted plan file> - main - WARNING: Null Resource creation is prohibit
 $$$
 
 
+</details>
 #### Policy Approval Status:
 $$$
 policy set: policy1: requires: 1 approval(s), have: 0.
 $$$
 * :heavy_check_mark: To **approve** this project, comment:
-    * $$
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  $$$shell
+  
+  $$$
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * $atlantis plan -d path -w workspace$
-</details>
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 
 $$$
 policy set: policy1: 2 tests, 1 passed, 0 warnings, 1 failure, 0 exceptions
 $$$
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * $atlantis apply$
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * $atlantis unlock$
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  $$$shell
+  atlantis apply
+  $$$
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  $$$shell
+  atlantis unlock
+  $$$
 `,
 		},
 		{
@@ -420,7 +520,8 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Import for project: $projectname$ dir: $path$ workspace: $workspace$
+			`
+Ran Import for project: $projectname$ dir: $path$ workspace: $workspace$
 
 $$$diff
 import-output
@@ -429,7 +530,9 @@ $$$
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * $atlantis plan -d path -w workspace$
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 `,
 		},
 		{
@@ -448,7 +551,8 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran State $rm$ for project: $projectname$ dir: $path$ workspace: $workspace$
+			`
+Ran State $rm$ for project: $projectname$ dir: $path$ workspace: $workspace$
 
 $$$diff
 state-rm-output
@@ -457,7 +561,9 @@ $$$
 :put_litter_in_its_place: A plan file was discarded. Re-plan would be required before applying.
 
 * :repeat: To **plan** this project again, comment:
-  * $atlantis plan -d path -w workspace$
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 `,
 		},
 		{
@@ -472,7 +578,8 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Apply for dir: $path$ workspace: $workspace$
+			`
+Ran Apply for dir: $path$ workspace: $workspace$
 
 $$$diff
 success
@@ -492,7 +599,8 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Apply for project: $projectname$ dir: $path$ workspace: $workspace$
+			`
+Ran Apply for project: $projectname$ dir: $path$ workspace: $workspace$
 
 $$$diff
 success
@@ -527,10 +635,12 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Plan for 2 projects:
+			`
+Ran Plan for 2 projects:
 
 1. dir: $path$ workspace: $workspace$
 1. project: $projectname$ dir: $path2$ workspace: $workspace$
+---
 
 ### 1. dir: $path$ workspace: $workspace$
 $$$diff
@@ -538,10 +648,14 @@ terraform-output
 $$$
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $atlantis apply -d path -w workspace$
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  $$$shell
+  atlantis apply -d path -w workspace
+  $$$
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * $atlantis plan -d path -w workspace$
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 
 ---
 ### 2. project: $projectname$ dir: $path2$ workspace: $workspace$
@@ -550,20 +664,28 @@ terraform-output2
 $$$
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $atlantis apply -d path2 -w workspace$
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url2)
+  $$$shell
+  atlantis apply -d path2 -w workspace
+  $$$
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url2)
 * :repeat: To **plan** this project again, comment:
-    * $atlantis plan -d path2 -w workspace$
+  $$$shell
+  atlantis plan -d path2 -w workspace
+  $$$
 
 ---
 ### Plan Summary
 
 2 projects, 2 with changes, 0 with no changes, 0 failed
 
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * $atlantis apply$
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * $atlantis unlock$
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  $$$shell
+  atlantis apply
+  $$$
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  $$$shell
+  atlantis unlock
+  $$$
 `,
 		},
 		{
@@ -605,10 +727,12 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Policy Check for 2 projects:
+			`
+Ran Policy Check for 2 projects:
 
 1. dir: $path$ workspace: $workspace$
 1. project: $projectname$ dir: $path2$ workspace: $workspace$
+---
 
 ### 1. dir: $path$ workspace: $workspace$
 #### Policy Set: $policy1$
@@ -618,10 +742,14 @@ $$$
 
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $atlantis apply -d path -w workspace$
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  $$$shell
+  atlantis apply -d path -w workspace
+  $$$
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * $atlantis plan -d path -w workspace$
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 
 ---
 ### 2. project: $projectname$ dir: $path2$ workspace: $workspace$
@@ -632,16 +760,24 @@ $$$
 
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $atlantis apply -d path2 -w workspace$
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url2)
+  $$$shell
+  atlantis apply -d path2 -w workspace
+  $$$
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url2)
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * $atlantis plan -d path2 -w workspace$
+  $$$shell
+  atlantis plan -d path2 -w workspace
+  $$$
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * $atlantis apply$
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * $atlantis unlock$
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  $$$shell
+  atlantis apply
+  $$$
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  $$$shell
+  atlantis unlock
+  $$$
 `,
 		},
 		{
@@ -662,10 +798,12 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Apply for 2 projects:
+			`
+Ran Apply for 2 projects:
 
 1. project: $projectname$ dir: $path$ workspace: $workspace$
 1. dir: $path2$ workspace: $workspace$
+---
 
 ### 1. project: $projectname$ dir: $path$ workspace: $workspace$
 $$$diff
@@ -696,7 +834,8 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Plan for dir: $path$ workspace: $workspace$
+			`
+Ran Plan for dir: $path$ workspace: $workspace$
 
 **Plan Error**
 $$$
@@ -716,7 +855,8 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Plan for dir: $path$ workspace: $workspace$
+			`
+Ran Plan for dir: $path$ workspace: $workspace$
 
 **Plan Failed**: failure
 `,
@@ -749,11 +889,13 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Plan for 3 projects:
+			`
+Ran Plan for 3 projects:
 
 1. dir: $path$ workspace: $workspace$
 1. dir: $path2$ workspace: $workspace$
 1. project: $projectname$ dir: $path3$ workspace: $workspace$
+---
 
 ### 1. dir: $path$ workspace: $workspace$
 $$$diff
@@ -761,10 +903,14 @@ terraform-output
 $$$
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $atlantis apply -d path -w workspace$
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  $$$shell
+  atlantis apply -d path -w workspace
+  $$$
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * $atlantis plan -d path -w workspace$
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 
 ---
 ### 2. dir: $path2$ workspace: $workspace$
@@ -782,10 +928,14 @@ $$$
 
 3 projects, 1 with changes, 0 with no changes, 2 failed
 
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * $atlantis apply$
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * $atlantis unlock$
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  $$$shell
+  atlantis apply
+  $$$
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  $$$shell
+  atlantis unlock
+  $$$
 `,
 		},
 		{
@@ -833,11 +983,13 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Policy Check for 3 projects:
+			`
+Ran Policy Check for 3 projects:
 
 1. dir: $path$ workspace: $workspace$
 1. dir: $path2$ workspace: $workspace$
 1. project: $projectname$ dir: $path3$ workspace: $workspace$
+---
 
 ### 1. dir: $path$ workspace: $workspace$
 #### Policy Set: $policy1$
@@ -847,10 +999,14 @@ $$$
 
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $atlantis apply -d path -w workspace$
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  $$$shell
+  atlantis apply -d path -w workspace
+  $$$
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * $atlantis plan -d path -w workspace$
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 
 ---
 ### 2. dir: $path2$ workspace: $workspace$
@@ -866,10 +1022,14 @@ $$$
 policy set: policy1: requires: 1 approval(s), have: 0.
 $$$
 * :heavy_check_mark: To **approve** this project, comment:
-    * $$
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  $$$shell
+  
+  $$$
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * $atlantis plan -d path -w workspace$
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 
 ---
 ### 3. project: $projectname$ dir: $path3$ workspace: $workspace$
@@ -879,12 +1039,18 @@ error
 $$$
 
 ---
-* :heavy_check_mark: To **approve** all unapplied plans from this pull request, comment:
-    * $atlantis approve_policies$
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * $atlantis unlock$
+* :heavy_check_mark: To **approve** all unapplied plans from this Pull Request, comment:
+  $$$shell
+  atlantis approve_policies
+  $$$
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  $$$shell
+  atlantis unlock
+  $$$
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * $atlantis plan$
+  $$$shell
+  atlantis plan
+  $$$
 `,
 		},
 		{
@@ -909,11 +1075,13 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Apply for 3 projects:
+			`
+Ran Apply for 3 projects:
 
 1. dir: $path$ workspace: $workspace$
 1. dir: $path2$ workspace: $workspace$
 1. dir: $path3$ workspace: $workspace$
+---
 
 ### 1. dir: $path$ workspace: $workspace$
 $$$diff
@@ -959,11 +1127,13 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Apply for 3 projects:
+			`
+Ran Apply for 3 projects:
 
 1. dir: $path$ workspace: $workspace$
 1. dir: $path2$ workspace: $workspace$
 1. dir: $path3$ workspace: $workspace$
+---
 
 ### 1. dir: $path$ workspace: $workspace$
 $$$diff
@@ -990,6 +1160,19 @@ $$$
 	}
 
 	r := events.NewMarkdownRenderer(false, false, false, false, false, false, "", "atlantis", false)
+	logger := logging.NewNoopLogger(t).WithHistory()
+	logText := "log"
+	logger.Info(logText)
+	ctx := &command.Context{
+		Log: logger,
+		Pull: models.PullRequest{
+			BaseRepo: models.Repo{
+				VCSHost: models.VCSHost{
+					Type: models.Github,
+				},
+			},
+		},
+	}
 	for _, c := range cases {
 		t.Run(c.Description, func(t *testing.T) {
 			res := command.Result{
@@ -997,11 +1180,18 @@ $$$
 			}
 			for _, verbose := range []bool{true, false} {
 				t.Run(c.Description, func(t *testing.T) {
-					s := r.Render(res, c.Command, c.SubCommand, "log", verbose, c.VCSHost)
+					cmd := &events.CommentCommand{
+						Name:    c.Command,
+						SubName: c.SubCommand,
+						Verbose: verbose,
+					}
+					s := r.Render(ctx, res, cmd)
 					if !verbose {
 						Equals(t, normalize(c.Expected), normalize(s))
 					} else {
-						Equals(t, normalize(c.Expected+"\n<details><summary>Log</summary>\n  <p>\n\n```\nlog```\n</p></details>"), normalize(s))
+						log := fmt.Sprintf("[INFO] %s", logText)
+						Equals(t, normalize(c.Expected+
+							fmt.Sprintf("<details><summary>Log</summary>\n<p>\n\n```\n%s\n```\n</p></details>", log)), normalize(s))
 					}
 				})
 			}
@@ -1034,17 +1224,22 @@ func TestRenderProjectResultsDisableApplyAll(t *testing.T) {
 				},
 			},
 			models.Github,
-			`Ran Plan for dir: $path$ workspace: $workspace$
+			`
+Ran Plan for dir: $path$ workspace: $workspace$
 
 $$$diff
 terraform-output
 $$$
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $atlantis apply -d path -w workspace$
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  $$$shell
+  atlantis apply -d path -w workspace
+  $$$
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * $atlantis plan -d path -w workspace$
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 `,
 		},
 		{
@@ -1064,17 +1259,22 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Plan for project: $projectname$ dir: $path$ workspace: $workspace$
+			`
+Ran Plan for project: $projectname$ dir: $path$ workspace: $workspace$
 
 $$$diff
 terraform-output
 $$$
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $atlantis apply -d path -w workspace$
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  $$$shell
+  atlantis apply -d path -w workspace
+  $$$
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * $atlantis plan -d path -w workspace$
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 `,
 		},
 		{
@@ -1104,10 +1304,12 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Plan for 2 projects:
+			`
+Ran Plan for 2 projects:
 
 1. dir: $path$ workspace: $workspace$
 1. project: $projectname$ dir: $path2$ workspace: $workspace$
+---
 
 ### 1. dir: $path$ workspace: $workspace$
 $$$diff
@@ -1115,10 +1317,14 @@ terraform-output
 $$$
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $atlantis apply -d path -w workspace$
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  $$$shell
+  atlantis apply -d path -w workspace
+  $$$
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * $atlantis plan -d path -w workspace$
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 
 ---
 ### 2. project: $projectname$ dir: $path2$ workspace: $workspace$
@@ -1127,10 +1333,14 @@ terraform-output2
 $$$
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $atlantis apply -d path2 -w workspace$
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url2)
+  $$$shell
+  atlantis apply -d path2 -w workspace
+  $$$
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url2)
 * :repeat: To **plan** this project again, comment:
-    * $atlantis plan -d path2 -w workspace$
+  $$$shell
+  atlantis plan -d path2 -w workspace
+  $$$
 
 ---
 ### Plan Summary
@@ -1150,6 +1360,19 @@ $$$
 		"atlantis", // executableName
 		false,      // hideUnchangedPlanComments
 	)
+	logger := logging.NewNoopLogger(t).WithHistory()
+	logText := "log"
+	logger.Info(logText)
+	ctx := &command.Context{
+		Log: logger,
+		Pull: models.PullRequest{
+			BaseRepo: models.Repo{
+				VCSHost: models.VCSHost{
+					Type: models.Github,
+				},
+			},
+		},
+	}
 	for _, c := range cases {
 		t.Run(c.Description, func(t *testing.T) {
 			res := command.Result{
@@ -1157,11 +1380,17 @@ $$$
 			}
 			for _, verbose := range []bool{true, false} {
 				t.Run(c.Description, func(t *testing.T) {
-					s := r.Render(res, c.Command, "", "log", verbose, c.VCSHost)
+					cmd := &events.CommentCommand{
+						Name:    c.Command,
+						Verbose: verbose,
+					}
+					s := r.Render(ctx, res, cmd)
 					if !verbose {
 						Equals(t, normalize(c.Expected), normalize(s))
 					} else {
-						Equals(t, normalize(c.Expected+"\n<details><summary>Log</summary>\n  <p>\n\n```\nlog```\n</p></details>"), normalize(s))
+						log := fmt.Sprintf("[INFO] %s", logText)
+						Equals(t, normalize(c.Expected)+
+							fmt.Sprintf("\n<details><summary>Log</summary>\n<p>\n\n```\n%s\n```\n</p></details>", log), normalize(s))
 					}
 				})
 			}
@@ -1169,7 +1398,7 @@ $$$
 	}
 }
 
-// Test that if disable apply is set then the apply  footer is not added
+// Test that if disable apply is set then the apply footer is not added
 func TestRenderProjectResultsDisableApply(t *testing.T) {
 	cases := []struct {
 		Description    string
@@ -1194,15 +1423,18 @@ func TestRenderProjectResultsDisableApply(t *testing.T) {
 				},
 			},
 			models.Github,
-			`Ran Plan for dir: $path$ workspace: $workspace$
+			`
+Ran Plan for dir: $path$ workspace: $workspace$
 
 $$$diff
 terraform-output
 $$$
 
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * $atlantis plan -d path -w workspace$
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 `,
 		},
 		{
@@ -1222,15 +1454,18 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Plan for project: $projectname$ dir: $path$ workspace: $workspace$
+			`
+Ran Plan for project: $projectname$ dir: $path$ workspace: $workspace$
 
 $$$diff
 terraform-output
 $$$
 
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * $atlantis plan -d path -w workspace$
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 `,
 		},
 		{
@@ -1260,19 +1495,23 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Plan for 2 projects:
+			`
+Ran Plan for 2 projects:
 
 1. dir: $path$ workspace: $workspace$
 1. project: $projectname$ dir: $path2$ workspace: $workspace$
+---
 
 ### 1. dir: $path$ workspace: $workspace$
 $$$diff
 terraform-output
 $$$
 
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * $atlantis plan -d path -w workspace$
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 
 ---
 ### 2. project: $projectname$ dir: $path2$ workspace: $workspace$
@@ -1280,9 +1519,11 @@ $$$diff
 terraform-output2
 $$$
 
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url2)
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url2)
 * :repeat: To **plan** this project again, comment:
-    * $atlantis plan -d path2 -w workspace$
+  $$$shell
+  atlantis plan -d path2 -w workspace
+  $$$
 
 ---
 ### Plan Summary
@@ -1303,6 +1544,19 @@ $$$
 		"atlantis", // executableName
 		false,      // hideUnchangedPlanComments
 	)
+	logger := logging.NewNoopLogger(t).WithHistory()
+	logText := "log"
+	logger.Info(logText)
+	ctx := &command.Context{
+		Log: logger,
+		Pull: models.PullRequest{
+			BaseRepo: models.Repo{
+				VCSHost: models.VCSHost{
+					Type: models.Github,
+				},
+			},
+		},
+	}
 	for _, c := range cases {
 		t.Run(c.Description, func(t *testing.T) {
 			res := command.Result{
@@ -1310,11 +1564,17 @@ $$$
 			}
 			for _, verbose := range []bool{true, false} {
 				t.Run(c.Description, func(t *testing.T) {
-					s := r.Render(res, c.Command, "", "log", verbose, c.VCSHost)
+					cmd := &events.CommentCommand{
+						Name:    c.Command,
+						Verbose: verbose,
+					}
+					s := r.Render(ctx, res, cmd)
 					if !verbose {
 						Equals(t, normalize(c.Expected), normalize(s))
 					} else {
-						Equals(t, normalize(c.Expected+"\n<details><summary>Log</summary>\n  <p>\n\n```\nlog```\n</p></details>"), normalize(s))
+						log := fmt.Sprintf("[INFO] %s", logText)
+						Equals(t, normalize(c.Expected)+
+							fmt.Sprintf("\n<details><summary>Log</summary>\n<p>\n\n```\n%s\n```\n</p></details>", log), normalize(s))
 					}
 				})
 			}
@@ -1342,8 +1602,21 @@ func TestRenderCustomPolicyCheckTemplate_DisableApplyAll(t *testing.T) {
 		"atlantis", // executableName
 		false,      // hideUnchangedPlanComments
 	)
+	logger := logging.NewNoopLogger(t).WithHistory()
+	logText := "log"
+	logger.Info(logText)
+	ctx := &command.Context{
+		Log: logger,
+		Pull: models.PullRequest{
+			BaseRepo: models.Repo{
+				VCSHost: models.VCSHost{
+					Type: models.Github,
+				},
+			},
+		},
+	}
 
-	rendered := r.Render(command.Result{
+	res := command.Result{
 		ProjectResults: []command.ProjectResult{
 			{
 				Workspace:  "workspace",
@@ -1361,8 +1634,14 @@ func TestRenderCustomPolicyCheckTemplate_DisableApplyAll(t *testing.T) {
 				},
 			},
 		},
-	}, command.PolicyCheck, "", "log", false, models.Github)
-	exp = `Ran Policy Check for dir: $path$ workspace: $workspace$
+	}
+	cmd := &events.CommentCommand{
+		Name:    command.PolicyCheck,
+		Verbose: false,
+	}
+	rendered := r.Render(ctx, res, cmd)
+	exp = `
+Ran Policy Check for dir: $path$ workspace: $workspace$
 
 #### Policy Set: $policy1$
 $$$diff
@@ -1371,10 +1650,15 @@ $$$
 
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $atlantis apply -d path -w workspace$
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  $$$shell
+  atlantis apply -d path -w workspace
+  $$$
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To re-run policies **plan** this project again by commenting:
-    * $atlantis plan -d path -w workspace$`
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
+`
 
 	Equals(t, normalize(exp), normalize(rendered))
 }
@@ -1392,8 +1676,20 @@ func TestRenderProjectResults_DisableFolding(t *testing.T) {
 		"atlantis", // executableName
 		false,      // hideUnchangedPlanComments
 	)
-
-	rendered := mr.Render(command.Result{
+	logger := logging.NewNoopLogger(t).WithHistory()
+	logText := "log"
+	logger.Info(logText)
+	ctx := &command.Context{
+		Log: logger,
+		Pull: models.PullRequest{
+			BaseRepo: models.Repo{
+				VCSHost: models.VCSHost{
+					Type: models.Github,
+				},
+			},
+		},
+	}
+	res := command.Result{
 		ProjectResults: []command.ProjectResult{
 			{
 				RepoRelDir: ".",
@@ -1401,7 +1697,12 @@ func TestRenderProjectResults_DisableFolding(t *testing.T) {
 				Error:      errors.New(strings.Repeat("line\n", 13)),
 			},
 		},
-	}, command.Plan, "", "log", false, models.Github)
+	}
+	cmd := &events.CommentCommand{
+		Name:    command.Plan,
+		Verbose: false,
+	}
+	rendered := mr.Render(ctx, res, cmd)
 	Equals(t, false, strings.Contains(rendered, "\n<details>"))
 }
 
@@ -1484,8 +1785,20 @@ func TestRenderProjectResults_WrappedErr(t *testing.T) {
 					"atlantis",                // executableName
 					false,                     // hideUnchangedPlanComments
 				)
-
-				rendered := mr.Render(command.Result{
+				logger := logging.NewNoopLogger(t).WithHistory()
+				logText := "log"
+				logger.Info(logText)
+				ctx := &command.Context{
+					Log: logger,
+					Pull: models.PullRequest{
+						BaseRepo: models.Repo{
+							VCSHost: models.VCSHost{
+								Type: c.VCSHost,
+							},
+						},
+					},
+				}
+				res := command.Result{
 					ProjectResults: []command.ProjectResult{
 						{
 							RepoRelDir: ".",
@@ -1493,10 +1806,16 @@ func TestRenderProjectResults_WrappedErr(t *testing.T) {
 							Error:      errors.New(c.Output),
 						},
 					},
-				}, command.Plan, "", "log", false, c.VCSHost)
+				}
+				cmd := &events.CommentCommand{
+					Name:    command.Plan,
+					Verbose: false,
+				}
+				rendered := mr.Render(ctx, res, cmd)
 				var exp string
 				if c.ShouldWrap {
-					exp = `Ran Plan for dir: $.$ workspace: $default$
+					exp = `
+Ran Plan for dir: $.$ workspace: $default$
 
 **Plan Error**
 <details><summary>Show Output</summary>
@@ -1504,14 +1823,16 @@ func TestRenderProjectResults_WrappedErr(t *testing.T) {
 $$$
 ` + c.Output + `
 $$$
-</details>`
+</details>
+`
 				} else {
 					exp = `Ran Plan for dir: $.$ workspace: $default$
 
 **Plan Error**
 $$$
 ` + c.Output + `
-$$$`
+$$$
+`
 				}
 				Equals(t, normalize(exp), normalize(rendered))
 			})
@@ -1523,69 +1844,80 @@ $$$`
 func TestRenderProjectResults_WrapSingleProject(t *testing.T) {
 	cases := []struct {
 		VCSHost                 models.VCSHostType
+		VcsRequestType          string
 		GitlabCommonMarkSupport bool
 		Output                  string
 		ShouldWrap              bool
 	}{
 		{
-			VCSHost:    models.Github,
-			Output:     strings.Repeat("line\n", 1),
-			ShouldWrap: false,
+			VCSHost:        models.Github,
+			VcsRequestType: "Pull Request",
+			Output:         strings.Repeat("line\n", 1),
+			ShouldWrap:     false,
 		},
 		{
-			VCSHost:    models.Github,
-			Output:     strings.Repeat("line\n", 13) + "No changes. Infrastructure is up-to-date.",
-			ShouldWrap: true,
+			VCSHost:        models.Github,
+			VcsRequestType: "Pull Request",
+			Output:         strings.Repeat("line\n", 13) + "No changes. Infrastructure is up-to-date.",
+			ShouldWrap:     true,
 		},
 		{
 			VCSHost:                 models.Gitlab,
+			VcsRequestType:          "Merge Request",
 			GitlabCommonMarkSupport: false,
 			Output:                  strings.Repeat("line\n", 1),
 			ShouldWrap:              false,
 		},
 		{
 			VCSHost:                 models.Gitlab,
+			VcsRequestType:          "Merge Request",
 			GitlabCommonMarkSupport: false,
 			Output:                  strings.Repeat("line\n", 13),
 			ShouldWrap:              false,
 		},
 		{
 			VCSHost:                 models.Gitlab,
+			VcsRequestType:          "Merge Request",
 			GitlabCommonMarkSupport: true,
 			Output:                  strings.Repeat("line\n", 1),
 			ShouldWrap:              false,
 		},
 		{
 			VCSHost:                 models.Gitlab,
+			VcsRequestType:          "Merge Request",
 			GitlabCommonMarkSupport: true,
 			Output:                  strings.Repeat("line\n", 13) + "No changes. Infrastructure is up-to-date.",
 			ShouldWrap:              true,
 		},
 		{
-			VCSHost:    models.BitbucketCloud,
-			Output:     strings.Repeat("line\n", 1),
-			ShouldWrap: false,
+			VCSHost:        models.BitbucketCloud,
+			VcsRequestType: "Pull Request",
+			Output:         strings.Repeat("line\n", 1),
+			ShouldWrap:     false,
 		},
 		{
-			VCSHost:    models.BitbucketCloud,
-			Output:     strings.Repeat("line\n", 13),
-			ShouldWrap: false,
+			VCSHost:        models.BitbucketCloud,
+			VcsRequestType: "Pull Request",
+			Output:         strings.Repeat("line\n", 13),
+			ShouldWrap:     false,
 		},
 		{
-			VCSHost:    models.BitbucketServer,
-			Output:     strings.Repeat("line\n", 1),
-			ShouldWrap: false,
+			VCSHost:        models.BitbucketServer,
+			VcsRequestType: "Pull Request",
+			Output:         strings.Repeat("line\n", 1),
+			ShouldWrap:     false,
 		},
 		{
-			VCSHost:    models.BitbucketServer,
-			Output:     strings.Repeat("line\n", 13),
-			ShouldWrap: false,
+			VCSHost:        models.BitbucketServer,
+			VcsRequestType: "Pull Request",
+			Output:         strings.Repeat("line\n", 13),
+			ShouldWrap:     false,
 		},
 	}
 
 	for _, c := range cases {
-		for _, cmd := range []command.Name{command.Plan, command.Apply} {
-			t.Run(fmt.Sprintf("%s_%s_%v", c.VCSHost.String(), cmd.String(), c.ShouldWrap),
+		for _, cmdName := range []command.Name{command.Plan, command.Apply} {
+			t.Run(fmt.Sprintf("%s_%s_%v", c.VCSHost.String(), cmdName.String(), c.ShouldWrap),
 				func(t *testing.T) {
 					mr := events.NewMarkdownRenderer(
 						c.GitlabCommonMarkSupport, // gitlabSupportsCommonMark
@@ -1598,8 +1930,22 @@ func TestRenderProjectResults_WrapSingleProject(t *testing.T) {
 						"atlantis",                // executableName
 						false,                     // hideUnchangedPlanComments
 					)
+					logger := logging.NewNoopLogger(t).WithHistory()
+					logText := "log"
+					logger.Info(logText)
+					ctx := &command.Context{
+						Log: logger,
+						Pull: models.PullRequest{
+							BaseRepo: models.Repo{
+								VCSHost: models.VCSHost{
+									Type: c.VCSHost,
+								},
+							},
+						},
+					}
+
 					var pr command.ProjectResult
-					switch cmd {
+					switch cmdName {
 					case command.Plan:
 						pr = command.ProjectResult{
 							RepoRelDir: ".",
@@ -1618,58 +1964,84 @@ func TestRenderProjectResults_WrapSingleProject(t *testing.T) {
 							ApplySuccess: c.Output,
 						}
 					}
-					rendered := mr.Render(command.Result{
+					res := command.Result{
 						ProjectResults: []command.ProjectResult{pr},
-					}, cmd, "", "log", false, c.VCSHost)
+					}
+					cmd := &events.CommentCommand{
+						Name:    cmdName,
+						Verbose: false,
+					}
+					rendered := mr.Render(ctx, res, cmd)
 
 					// Check result.
 					var exp string
-					switch cmd {
+					switch cmdName {
 					case command.Plan:
 						if c.ShouldWrap {
-							exp = `Ran Plan for dir: $.$ workspace: $default$
+							exp = `
+Ran Plan for dir: $.$ workspace: $default$
 
 <details><summary>Show Output</summary>
 
 $$$diff
 ` + strings.TrimSpace(c.Output) + `
 $$$
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $applycmd$
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  $$$shell
+  applycmd
+  $$$
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * $replancmd$
-</details>
+  $$$shell
+  replancmd
+  $$$
 No changes. Infrastructure is up-to-date.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * $atlantis apply$
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * $atlantis unlock$`
+* :fast_forward: To **apply** all unapplied plans from this ` + c.VcsRequestType + `, comment:
+  $$$shell
+  atlantis apply
+  $$$
+* :put_litter_in_its_place: To **delete** all plans and locks from this ` + c.VcsRequestType + `, comment:
+  $$$shell
+  atlantis unlock
+  $$$
+`
 						} else {
-							exp = `Ran Plan for dir: $.$ workspace: $default$
+							exp = `
+Ran Plan for dir: $.$ workspace: $default$
 
 $$$diff
 ` + strings.TrimSpace(c.Output) + `
 $$$
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $applycmd$
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  $$$shell
+  applycmd
+  $$$
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * $replancmd$
+  $$$shell
+  replancmd
+  $$$
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * $atlantis apply$
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * $atlantis unlock$`
+* :fast_forward: To **apply** all unapplied plans from this ` + c.VcsRequestType + `, comment:
+  $$$shell
+  atlantis apply
+  $$$
+* :put_litter_in_its_place: To **delete** all plans and locks from this ` + c.VcsRequestType + `, comment:
+  $$$shell
+  atlantis unlock
+  $$$
+`
 						}
 					case command.Apply:
 						if c.ShouldWrap {
-							exp = `Ran Apply for dir: $.$ workspace: $default$
+							exp = `
+Ran Apply for dir: $.$ workspace: $default$
 
 <details><summary>Show Output</summary>
 
@@ -1677,13 +2049,16 @@ $$$diff
 ` + strings.TrimSpace(c.Output) + `
 $$$
 
-</details>`
+</details>
+`
 						} else {
-							exp = `Ran Apply for dir: $.$ workspace: $default$
+							exp = `
+Ran Apply for dir: $.$ workspace: $default$
 
 $$$diff
 ` + strings.TrimSpace(c.Output) + `
-$$$`
+$$$
+`
 						}
 					}
 
@@ -1705,8 +2080,21 @@ func TestRenderProjectResults_MultiProjectApplyWrapped(t *testing.T) {
 		"atlantis", // executableName
 		false,      // hideUnchangedPlanComments
 	)
+	logger := logging.NewNoopLogger(t).WithHistory()
+	logText := "log"
+	logger.Info(logText)
+	ctx := &command.Context{
+		Log: logger,
+		Pull: models.PullRequest{
+			BaseRepo: models.Repo{
+				VCSHost: models.VCSHost{
+					Type: models.Github,
+				},
+			},
+		},
+	}
 	tfOut := strings.Repeat("line\n", 13)
-	rendered := mr.Render(command.Result{
+	res := command.Result{
 		ProjectResults: []command.ProjectResult{
 			{
 				RepoRelDir:   ".",
@@ -1719,11 +2107,18 @@ func TestRenderProjectResults_MultiProjectApplyWrapped(t *testing.T) {
 				ApplySuccess: tfOut,
 			},
 		},
-	}, command.Apply, "", "log", false, models.Github)
-	exp := `Ran Apply for 2 projects:
+	}
+	cmd := &events.CommentCommand{
+		Name:    command.Apply,
+		Verbose: false,
+	}
+	rendered := mr.Render(ctx, res, cmd)
+	exp := `
+Ran Apply for 2 projects:
 
 1. dir: $.$ workspace: $staging$
 1. dir: $.$ workspace: $production$
+---
 
 ### 1. dir: $.$ workspace: $staging$
 <details><summary>Show Output</summary>
@@ -1764,8 +2159,21 @@ func TestRenderProjectResults_MultiProjectPlanWrapped(t *testing.T) {
 		"atlantis", // executableName
 		false,      // hideUnchangedPlanComments
 	)
+	logger := logging.NewNoopLogger(t).WithHistory()
+	logText := "log"
+	logger.Info(logText)
+	ctx := &command.Context{
+		Log: logger,
+		Pull: models.PullRequest{
+			BaseRepo: models.Repo{
+				VCSHost: models.VCSHost{
+					Type: models.Github,
+				},
+			},
+		},
+	}
 	tfOut := strings.Repeat("line\n", 13) + "Plan: 1 to add, 0 to change, 0 to destroy."
-	rendered := mr.Render(command.Result{
+	res := command.Result{
 		ProjectResults: []command.ProjectResult{
 			{
 				RepoRelDir: ".",
@@ -1788,11 +2196,18 @@ func TestRenderProjectResults_MultiProjectPlanWrapped(t *testing.T) {
 				},
 			},
 		},
-	}, command.Plan, "", "log", false, models.Github)
-	exp := `Ran Plan for 2 projects:
+	}
+	cmd := &events.CommentCommand{
+		Name:    command.Plan,
+		Verbose: false,
+	}
+	rendered := mr.Render(ctx, res, cmd)
+	exp := `
+Ran Plan for 2 projects:
 
 1. dir: $.$ workspace: $staging$
 1. dir: $.$ workspace: $production$
+---
 
 ### 1. dir: $.$ workspace: $staging$
 <details><summary>Show Output</summary>
@@ -1800,13 +2215,17 @@ func TestRenderProjectResults_MultiProjectPlanWrapped(t *testing.T) {
 $$$diff
 ` + tfOut + `
 $$$
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $staging-apply-cmd$
-* :put_litter_in_its_place: To **delete** this plan click [here](staging-lock-url)
+  $$$shell
+  staging-apply-cmd
+  $$$
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](staging-lock-url)
 * :repeat: To **plan** this project again, comment:
-    * $staging-replan-cmd$
-</details>
+  $$$shell
+  staging-replan-cmd
+  $$$
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
@@ -1816,13 +2235,17 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 $$$diff
 ` + tfOut + `
 $$$
+</details>
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $production-apply-cmd$
-* :put_litter_in_its_place: To **delete** this plan click [here](production-lock-url)
+  $$$shell
+  production-apply-cmd
+  $$$
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](production-lock-url)
 * :repeat: To **plan** this project again, comment:
-    * $production-replan-cmd$
-</details>
+  $$$shell
+  production-replan-cmd
+  $$$
 Plan: 1 to add, 0 to change, 0 to destroy.
 
 ---
@@ -1830,10 +2253,14 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 
 2 projects, 2 with changes, 0 with no changes, 0 failed
 
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * $atlantis apply$
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * $atlantis unlock$
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  $$$shell
+  atlantis apply
+  $$$
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  $$$shell
+  atlantis unlock
+  $$$
 `
 	Equals(t, normalize(exp), normalize(rendered))
 }
@@ -1842,11 +2269,11 @@ Plan: 1 to add, 0 to change, 0 to destroy.
 // all the plans as a result.
 func TestRenderProjectResults_PlansDeleted(t *testing.T) {
 	cases := map[string]struct {
-		cr  command.Result
+		res command.Result
 		exp string
 	}{
 		"one failure": {
-			cr: command.Result{
+			res: command.Result{
 				ProjectResults: []command.ProjectResult{
 					{
 						RepoRelDir: ".",
@@ -1856,12 +2283,14 @@ func TestRenderProjectResults_PlansDeleted(t *testing.T) {
 				},
 				PlansDeleted: true,
 			},
-			exp: `Ran Plan for dir: $.$ workspace: $staging$
+			exp: `
+Ran Plan for dir: $.$ workspace: $staging$
 
-**Plan Failed**: failure`,
+**Plan Failed**: failure
+`,
 		},
 		"two failures": {
-			cr: command.Result{
+			res: command.Result{
 				ProjectResults: []command.ProjectResult{
 					{
 						RepoRelDir: ".",
@@ -1876,10 +2305,12 @@ func TestRenderProjectResults_PlansDeleted(t *testing.T) {
 				},
 				PlansDeleted: true,
 			},
-			exp: `Ran Plan for 2 projects:
+			exp: `
+Ran Plan for 2 projects:
 
 1. dir: $.$ workspace: $staging$
 1. dir: $.$ workspace: $production$
+---
 
 ### 1. dir: $.$ workspace: $staging$
 **Plan Failed**: failure
@@ -1895,7 +2326,7 @@ func TestRenderProjectResults_PlansDeleted(t *testing.T) {
 `,
 		},
 		"one failure, one success": {
-			cr: command.Result{
+			res: command.Result{
 				ProjectResults: []command.ProjectResult{
 					{
 						RepoRelDir: ".",
@@ -1915,10 +2346,12 @@ func TestRenderProjectResults_PlansDeleted(t *testing.T) {
 				},
 				PlansDeleted: true,
 			},
-			exp: `Ran Plan for 2 projects:
+			exp: `
+Ran Plan for 2 projects:
 
 1. dir: $.$ workspace: $staging$
 1. dir: $.$ workspace: $production$
+---
 
 ### 1. dir: $.$ workspace: $staging$
 **Plan Failed**: failure
@@ -1952,7 +2385,24 @@ This plan was not saved because one or more projects failed and automerge requir
 				"atlantis", // executableName
 				false,      // hideUnchangedPlanComments
 			)
-			rendered := mr.Render(c.cr, command.Plan, "", "log", false, models.Github)
+			logger := logging.NewNoopLogger(t).WithHistory()
+			logText := "log"
+			logger.Info(logText)
+			ctx := &command.Context{
+				Log: logger,
+				Pull: models.PullRequest{
+					BaseRepo: models.Repo{
+						VCSHost: models.VCSHost{
+							Type: models.Github,
+						},
+					},
+				},
+			}
+			cmd := &events.CommentCommand{
+				Name:    command.Plan,
+				Verbose: false,
+			}
+			rendered := mr.Render(ctx, c.res, cmd)
 			Equals(t, normalize(c.exp), normalize(rendered))
 		})
 	}
@@ -1972,7 +2422,7 @@ func TestRenderProjectResultsWithRepoLockingDisabled(t *testing.T) {
 			command.Plan,
 			[]command.ProjectResult{},
 			models.Github,
-			"Ran Plan for 0 projects:\n\n\n",
+			"Ran Plan for 0 projects:\n\n",
 		},
 		{
 			"single successful plan",
@@ -1990,22 +2440,31 @@ func TestRenderProjectResultsWithRepoLockingDisabled(t *testing.T) {
 				},
 			},
 			models.Github,
-			`Ran Plan for dir: $path$ workspace: $workspace$
+			`
+Ran Plan for dir: $path$ workspace: $workspace$
 
 $$$diff
 terraform-output
 $$$
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $atlantis apply -d path -w workspace$
+  $$$shell
+  atlantis apply -d path -w workspace
+  $$$
 * :repeat: To **plan** this project again, comment:
-    * $atlantis plan -d path -w workspace$
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * $atlantis apply$
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * $atlantis unlock$
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  $$$shell
+  atlantis apply
+  $$$
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  $$$shell
+  atlantis unlock
+  $$$
 `,
 		},
 		{
@@ -2025,24 +2484,32 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Plan for dir: $path$ workspace: $workspace$
+			`
+Ran Plan for dir: $path$ workspace: $workspace$
 
 $$$diff
 terraform-output
 $$$
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $atlantis apply -d path -w workspace$
+  $$$shell
+  atlantis apply -d path -w workspace
+  $$$
 * :repeat: To **plan** this project again, comment:
-    * $atlantis plan -d path -w workspace$
-
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 :twisted_rightwards_arrows: Upstream was modified, a new merge was performed.
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * $atlantis apply$
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * $atlantis unlock$
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  $$$shell
+  atlantis apply
+  $$$
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  $$$shell
+  atlantis unlock
+  $$$
 `,
 		},
 		{
@@ -2062,22 +2529,31 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Plan for project: $projectname$ dir: $path$ workspace: $workspace$
+			`
+Ran Plan for project: $projectname$ dir: $path$ workspace: $workspace$
 
 $$$diff
 terraform-output
 $$$
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $atlantis apply -d path -w workspace$
+  $$$shell
+  atlantis apply -d path -w workspace
+  $$$
 * :repeat: To **plan** this project again, comment:
-    * $atlantis plan -d path -w workspace$
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 
 ---
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * $atlantis apply$
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * $atlantis unlock$
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  $$$shell
+  atlantis apply
+  $$$
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  $$$shell
+  atlantis unlock
+  $$$
 `,
 		},
 		{
@@ -2091,7 +2567,8 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Apply for dir: $path$ workspace: $workspace$
+			`
+Ran Apply for dir: $path$ workspace: $workspace$
 
 $$$diff
 success
@@ -2110,7 +2587,8 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Apply for project: $projectname$ dir: $path$ workspace: $workspace$
+			`
+Ran Apply for project: $projectname$ dir: $path$ workspace: $workspace$
 
 $$$diff
 success
@@ -2144,10 +2622,12 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Plan for 2 projects:
+			`
+Ran Plan for 2 projects:
 
 1. dir: $path$ workspace: $workspace$
 1. project: $projectname$ dir: $path2$ workspace: $workspace$
+---
 
 ### 1. dir: $path$ workspace: $workspace$
 $$$diff
@@ -2155,9 +2635,13 @@ terraform-output
 $$$
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $atlantis apply -d path -w workspace$
+  $$$shell
+  atlantis apply -d path -w workspace
+  $$$
 * :repeat: To **plan** this project again, comment:
-    * $atlantis plan -d path -w workspace$
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 
 ---
 ### 2. project: $projectname$ dir: $path2$ workspace: $workspace$
@@ -2166,19 +2650,27 @@ terraform-output2
 $$$
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $atlantis apply -d path2 -w workspace$
+  $$$shell
+  atlantis apply -d path2 -w workspace
+  $$$
 * :repeat: To **plan** this project again, comment:
-    * $atlantis plan -d path2 -w workspace$
+  $$$shell
+  atlantis plan -d path2 -w workspace
+  $$$
 
 ---
 ### Plan Summary
 
 2 projects, 2 with changes, 0 with no changes, 0 failed
 
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * $atlantis apply$
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * $atlantis unlock$
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  $$$shell
+  atlantis apply
+  $$$
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  $$$shell
+  atlantis unlock
+  $$$
 `,
 		},
 		{
@@ -2198,10 +2690,12 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Apply for 2 projects:
+			`
+Ran Apply for 2 projects:
 
 1. project: $projectname$ dir: $path$ workspace: $workspace$
 1. dir: $path2$ workspace: $workspace$
+---
 
 ### 1. project: $projectname$ dir: $path$ workspace: $workspace$
 $$$diff
@@ -2231,7 +2725,8 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Plan for dir: $path$ workspace: $workspace$
+			`
+Ran Plan for dir: $path$ workspace: $workspace$
 
 **Plan Error**
 $$$
@@ -2250,7 +2745,8 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Plan for dir: $path$ workspace: $workspace$
+			`
+Ran Plan for dir: $path$ workspace: $workspace$
 
 **Plan Failed**: failure
 `,
@@ -2282,11 +2778,13 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Plan for 3 projects:
+			`
+Ran Plan for 3 projects:
 
 1. dir: $path$ workspace: $workspace$
 1. dir: $path2$ workspace: $workspace$
 1. project: $projectname$ dir: $path3$ workspace: $workspace$
+---
 
 ### 1. dir: $path$ workspace: $workspace$
 $$$diff
@@ -2294,9 +2792,13 @@ terraform-output
 $$$
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $atlantis apply -d path -w workspace$
+  $$$shell
+  atlantis apply -d path -w workspace
+  $$$
 * :repeat: To **plan** this project again, comment:
-    * $atlantis plan -d path -w workspace$
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 
 ---
 ### 2. dir: $path2$ workspace: $workspace$
@@ -2314,10 +2816,14 @@ $$$
 
 3 projects, 1 with changes, 0 with no changes, 2 failed
 
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * $atlantis apply$
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * $atlantis unlock$
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  $$$shell
+  atlantis apply
+  $$$
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  $$$shell
+  atlantis unlock
+  $$$
 `,
 		},
 		{
@@ -2341,11 +2847,13 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Apply for 3 projects:
+			`
+Ran Apply for 3 projects:
 
 1. dir: $path$ workspace: $workspace$
 1. dir: $path2$ workspace: $workspace$
 1. dir: $path3$ workspace: $workspace$
+---
 
 ### 1. dir: $path$ workspace: $workspace$
 $$$diff
@@ -2390,11 +2898,13 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Apply for 3 projects:
+			`
+Ran Apply for 3 projects:
 
 1. dir: $path$ workspace: $workspace$
 1. dir: $path2$ workspace: $workspace$
 1. dir: $path3$ workspace: $workspace$
+---
 
 ### 1. dir: $path$ workspace: $workspace$
 $$$diff
@@ -2431,18 +2941,174 @@ $$$
 		"atlantis", // executableName
 		false,      // hideUnchangedPlanComments
 	)
+	logger := logging.NewNoopLogger(t).WithHistory()
+	logText := "log"
+	logger.Info(logText)
+	ctx := &command.Context{
+		Log: logger,
+		Pull: models.PullRequest{
+			BaseRepo: models.Repo{
+				VCSHost: models.VCSHost{
+					Type: models.Github,
+				},
+			},
+		},
+	}
+	for _, c := range cases {
+		t.Run(c.Description, func(t *testing.T) {
+			res := command.Result{
+				ProjectResults: c.ProjectResults,
+			}
+			for _, verbose := range []bool{true, false} {
+				t.Run(c.Description, func(t *testing.T) {
+					cmd := &events.CommentCommand{
+						Name:    c.Command,
+						Verbose: verbose,
+					}
+					s := r.Render(ctx, res, cmd)
+					if !verbose {
+						Equals(t, normalize(c.Expected), normalize(s))
+					} else {
+						log := fmt.Sprintf("[INFO] %s", logText)
+						Equals(t, normalize(c.Expected+
+							fmt.Sprintf("<details><summary>Log</summary>\n<p>\n\n```\n%s\n```\n</p></details>", log)), normalize(s))
+					}
+				})
+			}
+		})
+	}
+}
+
+func TestRenderProjectResultsWithGitLab(t *testing.T) {
+	cases := []struct {
+		Description    string
+		Command        command.Name
+		ProjectResults []command.ProjectResult
+		VCSHost        models.VCSHostType
+		Expected       string
+	}{
+		{
+			"multiple successful plans",
+			command.Plan,
+			[]command.ProjectResult{
+				{
+					Workspace:  "workspace",
+					RepoRelDir: "path",
+					PlanSuccess: &models.PlanSuccess{
+						TerraformOutput: "terraform-output",
+						LockURL:         "lock-url",
+						ApplyCmd:        "atlantis apply -d path -w workspace",
+						RePlanCmd:       "atlantis plan -d path -w workspace",
+					},
+				},
+				{
+					Workspace:   "workspace",
+					RepoRelDir:  "path2",
+					ProjectName: "projectname",
+					PlanSuccess: &models.PlanSuccess{
+						TerraformOutput: "terraform-output2",
+						LockURL:         "lock-url2",
+						ApplyCmd:        "atlantis apply -d path2 -w workspace",
+						RePlanCmd:       "atlantis plan -d path2 -w workspace",
+					},
+				},
+			},
+			models.Gitlab,
+			`
+Ran Plan for 2 projects:
+
+1. dir: $path$ workspace: $workspace$
+1. project: $projectname$ dir: $path2$ workspace: $workspace$
+---
+
+### 1. dir: $path$ workspace: $workspace$
+$$$diff
+terraform-output
+$$$
+
+* :arrow_forward: To **apply** this plan, comment:
+  $$$shell
+  atlantis apply -d path -w workspace
+  $$$
+* :repeat: To **plan** this project again, comment:
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
+
+---
+### 2. project: $projectname$ dir: $path2$ workspace: $workspace$
+$$$diff
+terraform-output2
+$$$
+
+* :arrow_forward: To **apply** this plan, comment:
+  $$$shell
+  atlantis apply -d path2 -w workspace
+  $$$
+* :repeat: To **plan** this project again, comment:
+  $$$shell
+  atlantis plan -d path2 -w workspace
+  $$$
+
+---
+### Plan Summary
+
+2 projects, 2 with changes, 0 with no changes, 0 failed
+
+* :fast_forward: To **apply** all unapplied plans from this Merge Request, comment:
+  $$$shell
+  atlantis apply
+  $$$
+* :put_litter_in_its_place: To **delete** all plans and locks from this Merge Request, comment:
+  $$$shell
+  atlantis unlock
+  $$$
+`,
+		},
+	}
+
+	r := events.NewMarkdownRenderer(
+		false,      // gitlabSupportsCommonMark
+		false,      // disableApplyAll
+		false,      // disableApply
+		false,      // disableMarkdownFolding
+		true,       // disableRepoLocking
+		false,      // enableDiffMarkdownFormat
+		"",         // MarkdownTemplateOverridesDir
+		"atlantis", // executableName
+		false,      // hideUnchangedPlanComments
+	)
+	logger := logging.NewNoopLogger(t).WithHistory()
+	logText := "log"
+	logger.Info(logText)
 	for _, c := range cases {
 		t.Run(c.Description, func(t *testing.T) {
+			ctx := &command.Context{
+				Log: logger,
+				Pull: models.PullRequest{
+					BaseRepo: models.Repo{
+						VCSHost: models.VCSHost{
+							Type: c.VCSHost,
+						},
+					},
+				},
+			}
 			res := command.Result{
 				ProjectResults: c.ProjectResults,
 			}
 			for _, verbose := range []bool{true, false} {
 				t.Run(c.Description, func(t *testing.T) {
-					s := r.Render(res, c.Command, "", "log", verbose, c.VCSHost)
+					cmd := &events.CommentCommand{
+						Name:    c.Command,
+						Verbose: verbose,
+					}
+					s := r.Render(ctx, res, cmd)
 					if !verbose {
 						Equals(t, normalize(c.Expected), normalize(s))
 					} else {
-						Equals(t, normalize(c.Expected+"\n<details><summary>Log</summary>\n  <p>\n\n```\nlog```\n</p></details>"), normalize(s))
+						log := fmt.Sprintf("[INFO] %s", logText)
+						Equals(t, normalize(c.Expected)+
+							fmt.Sprintf("\n<details><summary>Log</summary>\n<p>\n\n```\n%s\n```\n</p></details>", log), normalize(s))
 					}
 				})
 			}
@@ -2450,7 +3116,8 @@ $$$
 	}
 }
 
-const tfOutput = `An execution plan has been generated and is shown below.
+const tfOutput = `
+An execution plan has been generated and is shown below.
 Resource actions are indicated with the following symbols:
 ~ update in-place
 -/+ destroy and then create replacement
@@ -2657,7 +3324,8 @@ var cases = []struct {
 			},
 		},
 		models.Github,
-		`Ran Plan for dir: $path$ workspace: $workspace$
+		`
+Ran Plan for dir: $path$ workspace: $workspace$
 
 <details><summary>Show Output</summary>
 
@@ -2845,11 +3513,13 @@ Terraform will perform the following actions:
 
 Plan: 1 to add, 2 to change, 1 to destroy.
 $$$
+</details>
 
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * $atlantis plan -d path -w workspace$
-</details>
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 Plan: 1 to add, 2 to change, 1 to destroy.
 `,
 	},
@@ -2867,19 +3537,38 @@ func TestRenderProjectResultsWithEnableDiffMarkdownFormat(t *testing.T) {
 		"atlantis", // executableName
 		false,      // hideUnchangedPlanComments
 	)
+	logger := logging.NewNoopLogger(t).WithHistory()
+	logText := "log"
+	logger.Info(logText)
 
 	for _, c := range cases {
 		t.Run(c.Description, func(t *testing.T) {
+			ctx := &command.Context{
+				Log: logger,
+				Pull: models.PullRequest{
+					BaseRepo: models.Repo{
+						VCSHost: models.VCSHost{
+							Type: models.Github,
+						},
+					},
+				},
+			}
 			res := command.Result{
 				ProjectResults: c.ProjectResults,
 			}
 			for _, verbose := range []bool{true, false} {
 				t.Run(c.Description, func(t *testing.T) {
-					s := r.Render(res, c.Command, "", "log", verbose, c.VCSHost)
+					cmd := &events.CommentCommand{
+						Name:    c.Command,
+						Verbose: verbose,
+					}
+					s := r.Render(ctx, res, cmd)
 					if !verbose {
 						Equals(t, normalize(c.Expected), normalize(s))
 					} else {
-						Equals(t, normalize(c.Expected+"\n<details><summary>Log</summary>\n  <p>\n\n```\nlog```\n</p></details>"), normalize(s))
+						log := fmt.Sprintf("[INFO] %s", logText)
+						Equals(t, normalize(c.Expected)+
+							fmt.Sprintf("\n<details><summary>Log</summary>\n<p>\n\n```\n%s\n```\n</p></details>", log), normalize(s))
 					}
 				})
 			}
@@ -2903,17 +3592,34 @@ func BenchmarkRenderProjectResultsWithEnableDiffMarkdownFormat(b *testing.B) {
 		"atlantis", // executableName
 		false,      // hideUnchangedPlanComments
 	)
+	logger := logging.NewNoopLogger(b).WithHistory()
+	logText := "log"
+	logger.Info(logText)
 
 	for _, c := range cases {
 		b.Run(c.Description, func(b *testing.B) {
+			ctx := &command.Context{
+				Log: logger,
+				Pull: models.PullRequest{
+					BaseRepo: models.Repo{
+						VCSHost: models.VCSHost{
+							Type: c.VCSHost,
+						},
+					},
+				},
+			}
 			res := command.Result{
 				ProjectResults: c.ProjectResults,
 			}
 			for _, verbose := range []bool{true, false} {
 				b.Run(fmt.Sprintf("verbose %t", verbose), func(b *testing.B) {
+					cmd := &events.CommentCommand{
+						Name:    c.Command,
+						Verbose: verbose,
+					}
 					b.ReportAllocs()
 					for i := 0; i < b.N; i++ {
-						render = r.Render(res, c.Command, "", "log", verbose, c.VCSHost)
+						render = r.Render(ctx, res, cmd)
 					}
 					Render = render
 				})
@@ -2970,11 +3676,13 @@ func TestRenderProjectResultsHideUnchangedPlans(t *testing.T) {
 				},
 			},
 			models.Github,
-			`Ran Plan for 3 projects:
+			`
+Ran Plan for 3 projects:
 
 1. dir: $path$ workspace: $workspace$
 1. project: $projectname$ dir: $path2$ workspace: $workspace$
 1. project: $projectname2$ dir: $path3$ workspace: $workspace$
+---
 
 ### 1. dir: $path$ workspace: $workspace$
 $$$diff
@@ -2982,10 +3690,14 @@ terraform-output
 $$$
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $atlantis apply -d path -w workspace$
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url)
+  $$$shell
+  atlantis apply -d path -w workspace
+  $$$
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url)
 * :repeat: To **plan** this project again, comment:
-    * $atlantis plan -d path -w workspace$
+  $$$shell
+  atlantis plan -d path -w workspace
+  $$$
 
 ---
 ### 3. project: $projectname2$ dir: $path3$ workspace: $workspace$
@@ -2994,20 +3706,28 @@ terraform-output3
 $$$
 
 * :arrow_forward: To **apply** this plan, comment:
-    * $atlantis apply -d path3 -w workspace$
-* :put_litter_in_its_place: To **delete** this plan click [here](lock-url3)
+  $$$shell
+  atlantis apply -d path3 -w workspace
+  $$$
+* :put_litter_in_its_place: To **delete** this plan and lock, click [here](lock-url3)
 * :repeat: To **plan** this project again, comment:
-    * $atlantis plan -d path3 -w workspace$
+  $$$shell
+  atlantis plan -d path3 -w workspace
+  $$$
 
 ---
 ### Plan Summary
 
 3 projects, 2 with changes, 1 with no changes, 0 failed
 
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * $atlantis apply$
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * $atlantis unlock$
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  $$$shell
+  atlantis apply
+  $$$
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  $$$shell
+  atlantis unlock
+  $$$
 `,
 		},
 		{
@@ -3049,37 +3769,64 @@ $$$
 				},
 			},
 			models.Github,
-			`Ran Plan for 3 projects:
+			`
+Ran Plan for 3 projects:
 
 1. dir: $path$ workspace: $workspace$
 1. project: $projectname$ dir: $path2$ workspace: $workspace$
 1. project: $projectname2$ dir: $path3$ workspace: $workspace$
+---
 
 ### Plan Summary
 
 3 projects, 0 with changes, 3 with no changes, 0 failed
 
-* :fast_forward: To **apply** all unapplied plans from this pull request, comment:
-    * $atlantis apply$
-* :put_litter_in_its_place: To **delete** all plans and locks for the PR, comment:
-    * $atlantis unlock$
+* :fast_forward: To **apply** all unapplied plans from this Pull Request, comment:
+  $$$shell
+  atlantis apply
+  $$$
+* :put_litter_in_its_place: To **delete** all plans and locks from this Pull Request, comment:
+  $$$shell
+  atlantis unlock
+  $$$
 `,
 		},
 	}
 
 	r := events.NewMarkdownRenderer(false, false, false, false, false, false, "", "atlantis", true)
+	logger := logging.NewNoopLogger(t).WithHistory()
+	logText := "log"
+	logger.Info(logText)
+
 	for _, c := range cases {
 		t.Run(c.Description, func(t *testing.T) {
+			ctx := &command.Context{
+				Log: logger,
+				Pull: models.PullRequest{
+					BaseRepo: models.Repo{
+						VCSHost: models.VCSHost{
+							Type: c.VCSHost,
+						},
+					},
+				},
+			}
 			res := command.Result{
 				ProjectResults: c.ProjectResults,
 			}
 			for _, verbose := range []bool{true, false} {
 				t.Run(c.Description, func(t *testing.T) {
-					s := r.Render(res, c.Command, c.SubCommand, "log", verbose, c.VCSHost)
+					cmd := &events.CommentCommand{
+						Name:    c.Command,
+						SubName: c.SubCommand,
+						Verbose: verbose,
+					}
+					s := r.Render(ctx, res, cmd)
 					if !verbose {
 						Equals(t, normalize(c.Expected), normalize(s))
 					} else {
-						Equals(t, normalize(c.Expected+"\n<details><summary>Log</summary>\n  <p>\n\n```\nlog```\n</p></details>"), normalize(s))
+						log := fmt.Sprintf("[INFO] %s", logText)
+						Equals(t, normalize(c.Expected)+
+							fmt.Sprintf("\n<details><summary>Log</summary>\n<p>\n\n```\n%s\n```\n</p></details>", log), normalize(s))
 					}
 				})
 			}