Implementation of code-block addition in the publication.

This commit is contained in:
Florian THIERRY
2024-09-03 10:07:13 +02:00
parent c03d977028
commit be34c555a5
2 changed files with 18 additions and 2 deletions

View File

@@ -57,7 +57,9 @@ export class CodeBlockDialog {
});
closeAndValidate(): void {
if (this.formGroup.valid) {
this.dialogRef.close(this.formGroup.value);
}
}
closeDialog(): void {

View File

@@ -156,7 +156,7 @@ export class PublicationEditionService implements OnDestroy {
const afterDialogCloseSubscription = dialogRef.afterClosed()
.subscribe(codeBlockWithLanguage => {
if (codeBlockWithLanguage) {
this.insertCodeBlock(codeBlockWithLanguage.programmingLanguage, codeBlockWithLanguage.codeBlock);
}
});
this.subscriptions.push(afterDialogCloseSubscription);
@@ -231,6 +231,20 @@ export class PublicationEditionService implements OnDestroy {
this._save(state);
}
insertCodeBlock(programmingLanguage: string, codeBlock: string): void {
const state = this._state;
const publication = state.publication;
const publicationTextLeftPart = publication.text.substring(0, state.cursorPosition.start);
const publicationTextRightPart = publication.text.substring(state.cursorPosition.start);
const codeBlockInstruction = `\n[code lg="${programmingLanguage}"]\n${codeBlock}\n[/code]\n\n`;
const textWithTags = `${publicationTextLeftPart}${codeBlockInstruction}${publicationTextRightPart}`;
publication.text = textWithTags;
this._save(state);
}
save(): void {
const state = this._state;