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 { closeAndValidate(): void {
if (this.formGroup.valid) {
this.dialogRef.close(this.formGroup.value);
}
} }
closeDialog(): void { closeDialog(): void {

View File

@@ -156,7 +156,7 @@ export class PublicationEditionService implements OnDestroy {
const afterDialogCloseSubscription = dialogRef.afterClosed() const afterDialogCloseSubscription = dialogRef.afterClosed()
.subscribe(codeBlockWithLanguage => { .subscribe(codeBlockWithLanguage => {
if (codeBlockWithLanguage) { if (codeBlockWithLanguage) {
this.insertCodeBlock(codeBlockWithLanguage.programmingLanguage, codeBlockWithLanguage.codeBlock);
} }
}); });
this.subscriptions.push(afterDialogCloseSubscription); this.subscriptions.push(afterDialogCloseSubscription);
@@ -231,6 +231,20 @@ export class PublicationEditionService implements OnDestroy {
this._save(state); 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 { save(): void {
const state = this._state; const state = this._state;