Skip to content

Commit f2c4144

Browse files
committed
markdown builder improvements
1 parent 614b55d commit f2c4144

File tree

2 files changed

+54
-15
lines changed

2 files changed

+54
-15
lines changed

jsEngine/api/MarkdownAPI.ts

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ export class MarkdownAPI {
5353
public createText(text: string): TextElement {
5454
validateAPIArgs(z.object({ text: z.string() }), { text });
5555

56-
return new TextElement(this.apiInstance, text, false, false, false);
56+
return new TextElement(this.apiInstance, text, false, false, false, false);
5757
}
5858

5959
/**
@@ -64,7 +64,7 @@ export class MarkdownAPI {
6464
public createBoldText(text: string): TextElement {
6565
validateAPIArgs(z.object({ text: z.string() }), { text });
6666

67-
return new TextElement(this.apiInstance, text, true, false, false);
67+
return new TextElement(this.apiInstance, text, true, false, false, false);
6868
}
6969

7070
/**
@@ -75,7 +75,7 @@ export class MarkdownAPI {
7575
public createCursiveText(text: string): TextElement {
7676
validateAPIArgs(z.object({ text: z.string() }), { text });
7777

78-
return new TextElement(this.apiInstance, text, false, true, false);
78+
return new TextElement(this.apiInstance, text, false, true, false, false);
7979
}
8080

8181
/**
@@ -86,7 +86,18 @@ export class MarkdownAPI {
8686
public createUnderlinedText(text: string): TextElement {
8787
validateAPIArgs(z.object({ text: z.string() }), { text });
8888

89-
return new TextElement(this.apiInstance, text, false, false, true);
89+
return new TextElement(this.apiInstance, text, false, false, true, false);
90+
}
91+
92+
/**
93+
* Creates a new markdown text element with highlighted formatting.
94+
*
95+
* @param text
96+
*/
97+
public createHighlightedText(text: string): TextElement {
98+
validateAPIArgs(z.object({ text: z.string() }), { text });
99+
100+
return new TextElement(this.apiInstance, text, false, false, false, true);
90101
}
91102

92103
/**
@@ -151,7 +162,7 @@ export class MarkdownAPI {
151162
* @param args the callout args, optional
152163
* @param collapsed whether the callout should be collapsed by default, optional
153164
*/
154-
createCollapsibleCallout(title: string, type: string, args: string = '', collapsed: boolean = false): CalloutElement {
165+
public createCollapsibleCallout(title: string, type: string, args: string = '', collapsed: boolean = false): CalloutElement {
155166
validateAPIArgs(z.object({ title: z.string(), type: z.string(), args: z.string(), collapsed: z.boolean() }), { title, type, args, collapsed });
156167

157168
return new CalloutElement(this.apiInstance, title, type, args, true, collapsed);
@@ -184,11 +195,18 @@ export class MarkdownAPI {
184195
/**
185196
* Creates a new markdown list element.
186197
*
187-
* @param ordered whether the list should be ordered or not (use 1. or -)
198+
* @param ordered whether the list should be ordered or not (use 1. or -), defaults to unordered
188199
*/
189-
createList(ordered: boolean): ListElement {
200+
public createList(ordered: boolean = false): ListElement {
190201
validateAPIArgs(z.object({ ordered: z.boolean() }), { ordered });
191202

192203
return new ListElement(this.apiInstance, ordered);
193204
}
205+
206+
/**
207+
* Creates a new ordered markdown list element.
208+
*/
209+
public createOrderedList(): ListElement {
210+
return new ListElement(this.apiInstance, true);
211+
}
194212
}

jsEngine/api/markdown/AbstractMarkdownElementContainer.ts

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,31 +45,39 @@ export abstract class AbstractMarkdownElementContainer extends AbstractMarkdownE
4545
addText(text: string): AbstractMarkdownElementContainer {
4646
validateAPIArgs(z.object({ text: z.string() }), { text });
4747

48-
const element = new TextElement(this.apiInstance, text, false, false, false);
48+
const element = new TextElement(this.apiInstance, text, false, false, false, false);
4949
this.addElement(element);
5050
return this;
5151
}
5252

5353
addBoldText(text: string): AbstractMarkdownElementContainer {
5454
validateAPIArgs(z.object({ text: z.string() }), { text });
5555

56-
const element = new TextElement(this.apiInstance, text, true, false, false);
56+
const element = new TextElement(this.apiInstance, text, true, false, false, false);
5757
this.addElement(element);
5858
return this;
5959
}
6060

6161
addCursiveText(text: string): AbstractMarkdownElementContainer {
6262
validateAPIArgs(z.object({ text: z.string() }), { text });
6363

64-
const element = new TextElement(this.apiInstance, text, false, true, false);
64+
const element = new TextElement(this.apiInstance, text, false, true, false, false);
6565
this.addElement(element);
6666
return this;
6767
}
6868

6969
addUnderlinedText(text: string): AbstractMarkdownElementContainer {
7070
validateAPIArgs(z.object({ text: z.string() }), { text });
7171

72-
const element = new TextElement(this.apiInstance, text, false, false, true);
72+
const element = new TextElement(this.apiInstance, text, false, false, true, false);
73+
this.addElement(element);
74+
return this;
75+
}
76+
77+
addHighlightedText(text: string): AbstractMarkdownElementContainer {
78+
validateAPIArgs(z.object({ text: z.string() }), { text });
79+
80+
const element = new TextElement(this.apiInstance, text, false, false, false, true);
7381
this.addElement(element);
7482
return this;
7583
}
@@ -136,13 +144,19 @@ export abstract class AbstractMarkdownElementContainer extends AbstractMarkdownE
136144
return element;
137145
}
138146

139-
createList(ordered: boolean): ListElement {
147+
createList(ordered: boolean = false): ListElement {
140148
validateAPIArgs(z.object({ ordered: z.boolean() }), { ordered });
141149

142150
const element = new ListElement(this.apiInstance, ordered);
143151
this.addElement(element);
144152
return element;
145153
}
154+
155+
createOrderedList(): ListElement {
156+
const element = new ListElement(this.apiInstance, true);
157+
this.addElement(element);
158+
return element;
159+
}
146160
}
147161

148162
// --------------------------------------------
@@ -157,23 +171,25 @@ export class TextElement extends AbstractMarkdownLiteral {
157171
bold: boolean;
158172
cursive: boolean;
159173
underline: boolean;
174+
highlight: boolean;
160175

161-
constructor(apiInstance: API, content: string, bold: boolean, cursive: boolean, underline: boolean) {
176+
constructor(apiInstance: API, content: string, bold: boolean, cursive: boolean, underline: boolean, highlight: boolean) {
162177
super(apiInstance);
163178

164179
this.content = content;
165180
this.bold = bold;
166181
this.cursive = cursive;
167182
this.underline = underline;
183+
this.highlight = highlight;
168184
}
169185

170186
public toString(): string {
171187
let prefix: string = '';
172188
let postfix: string = '';
173189

174190
if (this.underline) {
175-
prefix += '<b>';
176-
postfix = '</b>' + postfix;
191+
prefix += '<u>';
192+
postfix = '</u>' + postfix;
177193
}
178194

179195
if (this.bold) {
@@ -186,6 +202,11 @@ export class TextElement extends AbstractMarkdownLiteral {
186202
postfix = '*' + postfix;
187203
}
188204

205+
if (this.highlight) {
206+
prefix += '==';
207+
postfix = '==' + postfix;
208+
}
209+
189210
return prefix + this.content + postfix;
190211
}
191212
}

0 commit comments

Comments
 (0)