34 lines
763 B
JavaScript
34 lines
763 B
JavaScript
import Showdown from 'showdown';
|
|
|
|
export const fragmentFormats = {
|
|
V_HTML: ".vs.html",
|
|
V_MARKDOWN: ".vs.md",
|
|
};
|
|
|
|
export class Fragment {
|
|
format;
|
|
sourceContent;
|
|
|
|
constructor(format, sourceContent) {
|
|
this.format = format;
|
|
this.sourceContent = sourceContent;
|
|
}
|
|
|
|
toHtml() {
|
|
if(this.format === fragmentFormats.V_MARKDOWN) {
|
|
const converter = new Showdown.Converter();
|
|
|
|
const htmlContent = converter.makeHtml(this.sourceContent);
|
|
|
|
return new Fragment(
|
|
fragmentFormats.V_HTML,
|
|
htmlContent
|
|
);
|
|
} else {
|
|
return new Fragment(
|
|
this.format,
|
|
this.sourceContent
|
|
);
|
|
}
|
|
}
|
|
} |