]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Add ability to set custom markdown in description
authorChocobozzz <me@florianbigard.com>
Mon, 31 May 2021 09:33:49 +0000 (11:33 +0200)
committerChocobozzz <me@florianbigard.com>
Mon, 31 May 2021 09:33:49 +0000 (11:33 +0200)
34 files changed:
client/src/app/+about/about-instance/about-instance.component.html
client/src/app/+about/about-instance/about-instance.component.ts
client/src/app/+about/about.module.ts
client/src/app/+admin/config/edit-custom-config/edit-homepage.component.html
client/src/app/+admin/config/edit-custom-config/edit-homepage.component.ts
client/src/app/+admin/config/edit-custom-config/edit-instance-information.component.html
client/src/app/+admin/config/edit-custom-config/edit-instance-information.component.ts
client/src/app/+home/home.component.html
client/src/app/+home/home.component.ts
client/src/app/shared/shared-custom-markup/custom-markup-container.component.html [new file with mode: 0644]
client/src/app/shared/shared-custom-markup/custom-markup-container.component.ts [new file with mode: 0644]
client/src/app/shared/shared-custom-markup/custom-markup.service.ts
client/src/app/shared/shared-custom-markup/index.ts
client/src/app/shared/shared-custom-markup/peertube-custom-tags/button-markup.component.html [moved from client/src/app/shared/shared-custom-markup/button-markup.component.html with 100% similarity]
client/src/app/shared/shared-custom-markup/peertube-custom-tags/button-markup.component.scss [moved from client/src/app/shared/shared-custom-markup/button-markup.component.scss with 100% similarity]
client/src/app/shared/shared-custom-markup/peertube-custom-tags/button-markup.component.ts [moved from client/src/app/shared/shared-custom-markup/button-markup.component.ts with 93% similarity]
client/src/app/shared/shared-custom-markup/peertube-custom-tags/channel-miniature-markup.component.html [moved from client/src/app/shared/shared-custom-markup/channel-miniature-markup.component.html with 100% similarity]
client/src/app/shared/shared-custom-markup/peertube-custom-tags/channel-miniature-markup.component.scss [moved from client/src/app/shared/shared-custom-markup/channel-miniature-markup.component.scss with 100% similarity]
client/src/app/shared/shared-custom-markup/peertube-custom-tags/channel-miniature-markup.component.ts [moved from client/src/app/shared/shared-custom-markup/channel-miniature-markup.component.ts with 89% similarity]
client/src/app/shared/shared-custom-markup/peertube-custom-tags/embed-markup.component.ts [moved from client/src/app/shared/shared-custom-markup/embed-markup.component.ts with 100% similarity]
client/src/app/shared/shared-custom-markup/peertube-custom-tags/index.ts [new file with mode: 0644]
client/src/app/shared/shared-custom-markup/peertube-custom-tags/playlist-miniature-markup.component.html [moved from client/src/app/shared/shared-custom-markup/playlist-miniature-markup.component.html with 100% similarity]
client/src/app/shared/shared-custom-markup/peertube-custom-tags/playlist-miniature-markup.component.scss [moved from client/src/app/shared/shared-custom-markup/playlist-miniature-markup.component.scss with 100% similarity]
client/src/app/shared/shared-custom-markup/peertube-custom-tags/playlist-miniature-markup.component.ts [moved from client/src/app/shared/shared-custom-markup/playlist-miniature-markup.component.ts with 84% similarity]
client/src/app/shared/shared-custom-markup/peertube-custom-tags/video-miniature-markup.component.html [moved from client/src/app/shared/shared-custom-markup/video-miniature-markup.component.html with 100% similarity]
client/src/app/shared/shared-custom-markup/peertube-custom-tags/video-miniature-markup.component.scss [moved from client/src/app/shared/shared-custom-markup/video-miniature-markup.component.scss with 100% similarity]
client/src/app/shared/shared-custom-markup/peertube-custom-tags/video-miniature-markup.component.ts [moved from client/src/app/shared/shared-custom-markup/video-miniature-markup.component.ts with 87% similarity]
client/src/app/shared/shared-custom-markup/peertube-custom-tags/videos-list-markup.component.html [moved from client/src/app/shared/shared-custom-markup/videos-list-markup.component.html with 100% similarity]
client/src/app/shared/shared-custom-markup/peertube-custom-tags/videos-list-markup.component.scss [moved from client/src/app/shared/shared-custom-markup/videos-list-markup.component.scss with 100% similarity]
client/src/app/shared/shared-custom-markup/peertube-custom-tags/videos-list-markup.component.ts [moved from client/src/app/shared/shared-custom-markup/videos-list-markup.component.ts with 91% similarity]
client/src/app/shared/shared-custom-markup/shared-custom-markup.module.ts
client/src/app/shared/shared-instance/instance-about-accordion.component.ts
client/src/app/shared/shared-instance/instance.service.ts
client/src/app/shared/shared-instance/shared-instance.module.ts

index 1f372090e283ca882a9d756325e09d748e225aaa..29dfd89fb6b37fb0b633ebd47f0ad9a014addce1 100644 (file)
@@ -91,7 +91,7 @@
 
     <div class="anchor" id="information"></div>
     <a
-      *ngIf="html.description"
+      *ngIf="descriptionContent"
       class="anchor-link"
       routerLink="/about/instance"
       fragment="information"
         <h3 i18n class="section-title">Description</h3>
       </a>
 
-      <div [innerHTML]="html.description"></div>
+      <my-custom-markup-container [content]="descriptionContent"></my-custom-markup-container>
     </div>
 
     <div class="anchor" id="moderation"></div>
index 7eb382a466480107a5d1404db795b64572cde9fd..2e09964292d88b2e2e1877d200168368d07dff1a 100644 (file)
@@ -1,11 +1,12 @@
 import { ViewportScroller } from '@angular/common'
-import { AfterViewChecked, Component, OnInit, ViewChild } from '@angular/core'
+import { AfterViewChecked, Component, ElementRef, OnInit, ViewChild } from '@angular/core'
 import { ActivatedRoute } from '@angular/router'
 import { ContactAdminModalComponent } from '@app/+about/about-instance/contact-admin-modal.component'
 import { Notifier } from '@app/core'
-import { copyToClipboard } from '../../../root-helpers/utils'
+import { CustomMarkupService } from '@app/shared/shared-custom-markup'
 import { InstanceService } from '@app/shared/shared-instance'
-import { ServerConfig } from '@shared/models'
+import { About, ServerConfig } from '@shared/models'
+import { copyToClipboard } from '../../../root-helpers/utils'
 import { ResolverData } from './about-instance.resolver'
 
 @Component({
@@ -14,12 +15,13 @@ import { ResolverData } from './about-instance.resolver'
   styleUrls: [ './about-instance.component.scss' ]
 })
 export class AboutInstanceComponent implements OnInit, AfterViewChecked {
+  @ViewChild('descriptionWrapper') descriptionWrapper: ElementRef<HTMLInputElement>
   @ViewChild('contactAdminModal', { static: true }) contactAdminModal: ContactAdminModalComponent
 
   shortDescription = ''
+  descriptionContent: string
 
   html = {
-    description: '',
     terms: '',
     codeOfConduct: '',
     moderationInformation: '',
@@ -40,6 +42,7 @@ export class AboutInstanceComponent implements OnInit, AfterViewChecked {
   private lastScrollHash: string
 
   constructor (
+    private customMarkupService: CustomMarkupService,
     private viewportScroller: ViewportScroller,
     private route: ActivatedRoute,
     private notifier: Notifier,
@@ -67,9 +70,12 @@ export class AboutInstanceComponent implements OnInit, AfterViewChecked {
     this.categories = categories
 
     this.shortDescription = about.instance.shortDescription
+    this.descriptionContent = about.instance.description
 
     this.html = await this.instanceService.buildHtml(about)
 
+    await this.injectDescription(about)
+
     this.initialized = true
   }
 
@@ -90,4 +96,10 @@ export class AboutInstanceComponent implements OnInit, AfterViewChecked {
     copyToClipboard(link)
     this.notifier.success(link, $localize `Link copied`)
   }
+
+  private async injectDescription (about: About) {
+    const element = await this.customMarkupService.buildElement(about.instance.description)
+
+    this.descriptionWrapper.nativeElement.appendChild(element)
+  }
 }
index 1aca140331cf262d9a4d9551b1df453a6619a9ca..dfea52fb88f212239e34522a02732258df945a71 100644 (file)
@@ -5,6 +5,7 @@ import { AboutInstanceResolver } from '@app/+about/about-instance/about-instance
 import { ContactAdminModalComponent } from '@app/+about/about-instance/contact-admin-modal.component'
 import { AboutPeertubeContributorsComponent } from '@app/+about/about-peertube/about-peertube-contributors.component'
 import { AboutPeertubeComponent } from '@app/+about/about-peertube/about-peertube.component'
+import { SharedCustomMarkupModule } from '@app/shared/shared-custom-markup'
 import { SharedFormModule } from '@app/shared/shared-forms'
 import { SharedGlobalIconModule } from '@app/shared/shared-icons'
 import { SharedInstanceModule } from '@app/shared/shared-instance'
@@ -19,7 +20,8 @@ import { AboutComponent } from './about.component'
     SharedMainModule,
     SharedFormModule,
     SharedInstanceModule,
-    SharedGlobalIconModule
+    SharedGlobalIconModule,
+    SharedCustomMarkupModule
   ],
 
   declarations: [
index baaac5fb71865aadb73e8feb6a6cd4249d8e28ab..2286a5a1a7ebf55bc5564e87ac82699e93a65389 100644 (file)
@@ -17,7 +17,7 @@
 
           <my-markdown-textarea
             name="instanceCustomHomepageContent" formControlName="content" textareaMaxWidth="90%" textareaHeight="300px"
-            [customMarkdownRenderer]="customMarkdownRenderer"
+            [customMarkdownRenderer]="getCustomMarkdownRenderer()"
             [classes]="{ 'input-error': formErrors['instanceCustomHomepage.content'] }"
           ></my-markdown-textarea>
 
index 7decf8f758a75520a00f54722b56dca07da93cf2..1923ede395bc65302f7fd0206d8d9a46b629a4c8 100644 (file)
@@ -7,7 +7,7 @@ import { CustomMarkupService } from '@app/shared/shared-custom-markup'
   templateUrl: './edit-homepage.component.html',
   styleUrls: [ './edit-custom-config.component.scss' ]
 })
-export class EditHomepageComponent implements OnInit {
+export class EditHomepageComponent {
   @Input() form: FormGroup
   @Input() formErrors: any
 
@@ -17,9 +17,7 @@ export class EditHomepageComponent implements OnInit {
 
   }
 
-  ngOnInit () {
-    this.customMarkdownRenderer = async (text: string) => {
-      return this.customMarkup.buildElement(text)
-    }
+  getCustomMarkdownRenderer () {
+    return this.customMarkup.getCustomMarkdownRenderer()
   }
 }
index cbff26e5af4c147a0d951de8dfefb78c6a061540..d806616bd5dd70c0828905edf95587fc59c98ac7 100644 (file)
         </div>
 
         <div class="form-group">
-          <label i18n for="instanceDescription">Description</label><my-help helpType="markdownText"></my-help>
+          <label i18n for="instanceDescription">Description</label>
+          <div class="label-small-info">
+            <my-custom-markup-help></my-custom-markup-help>
+          </div>
 
           <my-markdown-textarea
             name="instanceDescription" formControlName="description" textareaMaxWidth="500px"
+            [customMarkdownRenderer]="getCustomMarkdownRenderer()"
             [classes]="{ 'input-error': formErrors['instance.description'] }"
           ></my-markdown-textarea>
 
index 26365e7072933ae85425055d82a14d32eded2bdb..4185f121f891ec6a1b9c06a754dc96fe7b4c5fff 100644 (file)
@@ -1,6 +1,7 @@
 import { SelectOptionsItem } from 'src/types/select-options-item.model'
 import { Component, Input } from '@angular/core'
 import { FormGroup } from '@angular/forms'
+import { CustomMarkupService } from '@app/shared/shared-custom-markup'
 
 @Component({
   selector: 'my-edit-instance-information',
@@ -13,4 +14,12 @@ export class EditInstanceInformationComponent {
 
   @Input() languageItems: SelectOptionsItem[] = []
   @Input() categoryItems: SelectOptionsItem[] = []
+
+  constructor (private customMarkup: CustomMarkupService) {
+
+  }
+
+  getCustomMarkdownRenderer () {
+    return this.customMarkup.getCustomMarkdownRenderer()
+  }
 }
index 645b9dc69f46ed38e627f57d5a3ecfd2f73403c4..dfce46618d680410db2ca1c97e1e51ffac8b20bc 100644 (file)
@@ -1,4 +1,4 @@
 <div class="root margin-content">
-  <div #contentWrapper></div>
+  <my-custom-markup-container [content]="homepageContent"></my-custom-markup-container>
 </div>
 
index 16d3a6df7cc6a405650d48de40098fbbad662498..6e0c96760b95bf324e34f46080af0f03d1fbd98d 100644 (file)
@@ -1,6 +1,4 @@
-
 import { Component, ElementRef, OnInit, ViewChild } from '@angular/core'
-import { CustomMarkupService } from '@app/shared/shared-custom-markup'
 import { CustomPageService } from '@app/shared/shared-main/custom-page'
 
 @Component({
@@ -11,16 +9,14 @@ import { CustomPageService } from '@app/shared/shared-main/custom-page'
 export class HomeComponent implements OnInit {
   @ViewChild('contentWrapper') contentWrapper: ElementRef<HTMLInputElement>
 
+  homepageContent: string
+
   constructor (
-    private customMarkupService: CustomMarkupService,
     private customPageService: CustomPageService
   ) { }
 
   async ngOnInit () {
     this.customPageService.getInstanceHomepage()
-      .subscribe(async ({ content }) => {
-        const element = await this.customMarkupService.buildElement(content)
-        this.contentWrapper.nativeElement.appendChild(element)
-      })
+      .subscribe(({ content }) => this.homepageContent = content)
   }
 }
diff --git a/client/src/app/shared/shared-custom-markup/custom-markup-container.component.html b/client/src/app/shared/shared-custom-markup/custom-markup-container.component.html
new file mode 100644 (file)
index 0000000..3ad8864
--- /dev/null
@@ -0,0 +1 @@
+<div #contentWrapper></div>
diff --git a/client/src/app/shared/shared-custom-markup/custom-markup-container.component.ts b/client/src/app/shared/shared-custom-markup/custom-markup-container.component.ts
new file mode 100644 (file)
index 0000000..3d49c67
--- /dev/null
@@ -0,0 +1,26 @@
+import { Component, ElementRef, Input, OnChanges, ViewChild } from '@angular/core'
+import { CustomMarkupService } from './custom-markup.service'
+
+@Component({
+  selector: 'my-custom-markup-container',
+  templateUrl: './custom-markup-container.component.html'
+})
+export class CustomMarkupContainerComponent implements OnChanges {
+  @ViewChild('contentWrapper') contentWrapper: ElementRef<HTMLInputElement>
+
+  @Input() content: string
+
+  constructor (
+    private customMarkupService: CustomMarkupService
+  ) { }
+
+  async ngOnChanges () {
+    await this.buildElement()
+  }
+
+  private async buildElement () {
+    const element = await this.customMarkupService.buildElement(this.content)
+    this.contentWrapper.nativeElement.appendChild(element)
+  }
+
+}
index 09414da95d8fbc0d2a0ad9bb93056af435879f80..dbb07914e76ac0adec0f4a1dd6cc425dfb07389e 100644 (file)
@@ -8,13 +8,15 @@ import {
   VideoMiniatureMarkupData,
   VideosListMarkupData
 } from '@shared/models'
-import { ButtonMarkupComponent } from './button-markup.component'
-import { ChannelMiniatureMarkupComponent } from './channel-miniature-markup.component'
 import { DynamicElementService } from './dynamic-element.service'
-import { EmbedMarkupComponent } from './embed-markup.component'
-import { PlaylistMiniatureMarkupComponent } from './playlist-miniature-markup.component'
-import { VideoMiniatureMarkupComponent } from './video-miniature-markup.component'
-import { VideosListMarkupComponent } from './videos-list-markup.component'
+import {
+  ButtonMarkupComponent,
+  ChannelMiniatureMarkupComponent,
+  EmbedMarkupComponent,
+  PlaylistMiniatureMarkupComponent,
+  VideoMiniatureMarkupComponent,
+  VideosListMarkupComponent
+} from './peertube-custom-tags'
 
 type BuilderFunction = (el: HTMLElement) => ComponentRef<any>
 
@@ -30,10 +32,18 @@ export class CustomMarkupService {
     'peertube-videos-list': el => this.videosListBuilder(el)
   }
 
+  private customMarkdownRenderer: (text: string) => Promise<HTMLElement>
+
   constructor (
     private dynamicElementService: DynamicElementService,
     private markdown: MarkdownService
-  ) { }
+  ) {
+    this.customMarkdownRenderer = async (text: string) => this.buildElement(text)
+  }
+
+  getCustomMarkdownRenderer () {
+    return this.customMarkdownRenderer
+  }
 
   async buildElement (text: string) {
     const html = await this.markdown.customPageMarkdownToHTML(text, this.getSupportedTags())
index a9ac2516ca46e33e5f1f73072b533fe738286e24..3bff3a91468609d57af574b72dde9f60c54a3047 100644 (file)
@@ -1,4 +1,5 @@
 export * from './custom-markup.service'
+export * from './custom-markup-container.component'
 export * from './dynamic-element.service'
 export * from './custom-markup-help.component'
 export * from './shared-custom-markup.module'
similarity index 93%
rename from client/src/app/shared/shared-custom-markup/button-markup.component.ts
rename to client/src/app/shared/shared-custom-markup/peertube-custom-tags/button-markup.component.ts
index c0aab2edde523189d841e18bdcd322a76330d420..987b37d19eba63c0857d8f10142609f9378ef85c 100644 (file)
@@ -1,5 +1,5 @@
 import { Component, Input } from '@angular/core'
-import { VideoChannel } from '../shared-main'
+import { VideoChannel } from '../../shared-main'
 
 /*
  * Markup component that creates a button
similarity index 89%
rename from client/src/app/shared/shared-custom-markup/channel-miniature-markup.component.ts
rename to client/src/app/shared/shared-custom-markup/peertube-custom-tags/channel-miniature-markup.component.ts
index 97bb5567e84755e2b182399e615cd124f3cf08d2..25deafb80ff120eac19fbfe8798599c445edf43f 100644 (file)
@@ -1,5 +1,5 @@
 import { Component, Input, OnInit } from '@angular/core'
-import { VideoChannel, VideoChannelService } from '../shared-main'
+import { VideoChannel, VideoChannelService } from '../../shared-main'
 
 /*
  * Markup component that creates a channel miniature only
diff --git a/client/src/app/shared/shared-custom-markup/peertube-custom-tags/index.ts b/client/src/app/shared/shared-custom-markup/peertube-custom-tags/index.ts
new file mode 100644 (file)
index 0000000..ee2a8f3
--- /dev/null
@@ -0,0 +1,6 @@
+export * from './button-markup.component'
+export * from './channel-miniature-markup.component'
+export * from './embed-markup.component'
+export * from './playlist-miniature-markup.component'
+export * from './video-miniature-markup.component'
+export * from './videos-list-markup.component'
similarity index 84%
rename from client/src/app/shared/shared-custom-markup/playlist-miniature-markup.component.ts
rename to client/src/app/shared/shared-custom-markup/peertube-custom-tags/playlist-miniature-markup.component.ts
index 7aee450f16dbf9927903673c102b95bb2b646fe7..eddc3636e55c4a9411cca9a04c3c4749aa827655 100644 (file)
@@ -1,6 +1,6 @@
 import { Component, Input, OnInit } from '@angular/core'
-import { MiniatureDisplayOptions } from '../shared-video-miniature'
-import { VideoPlaylist, VideoPlaylistService } from '../shared-video-playlist'
+import { MiniatureDisplayOptions } from '../../shared-video-miniature'
+import { VideoPlaylist, VideoPlaylistService } from '../../shared-video-playlist'
 
 /*
  * Markup component that creates a playlist miniature only
similarity index 87%
rename from client/src/app/shared/shared-custom-markup/video-miniature-markup.component.ts
rename to client/src/app/shared/shared-custom-markup/peertube-custom-tags/video-miniature-markup.component.ts
index 79add0c3b5fff857cd81cecb3e2a4fde5301857c..c833c56c7b9c5115771862b3bec857890fce283f 100644 (file)
@@ -1,7 +1,7 @@
 import { Component, Input, OnInit } from '@angular/core'
 import { AuthService } from '@app/core'
-import { Video, VideoService } from '../shared-main'
-import { MiniatureDisplayOptions } from '../shared-video-miniature'
+import { Video, VideoService } from '../../shared-main'
+import { MiniatureDisplayOptions } from '../../shared-video-miniature'
 
 /*
  * Markup component that creates a video miniature only
similarity index 91%
rename from client/src/app/shared/shared-custom-markup/videos-list-markup.component.ts
rename to client/src/app/shared/shared-custom-markup/peertube-custom-tags/videos-list-markup.component.ts
index cc25d0a51df8385f1f64336a9d47b1edad25da3a..8d9e223daffdd10ec2f68e39e06c8046fdf3c8c4 100644 (file)
@@ -1,8 +1,8 @@
 import { Component, Input, OnInit } from '@angular/core'
 import { AuthService } from '@app/core'
 import { VideoSortField } from '@shared/models'
-import { Video, VideoService } from '../shared-main'
-import { MiniatureDisplayOptions } from '../shared-video-miniature'
+import { Video, VideoService } from '../../shared-main'
+import { MiniatureDisplayOptions } from '../../shared-video-miniature'
 
 /*
  * Markup component list videos depending on criterias
index 66f6b98f6eaedd0a9999be5f1ac661da4b4eb7fc..dccd6470987ef60dd78460191471bbfb47c8a02e 100644 (file)
@@ -5,15 +5,18 @@ import { SharedGlobalIconModule } from '../shared-icons'
 import { SharedMainModule } from '../shared-main'
 import { SharedVideoMiniatureModule } from '../shared-video-miniature'
 import { SharedVideoPlaylistModule } from '../shared-video-playlist'
-import { ButtonMarkupComponent } from './button-markup.component'
-import { ChannelMiniatureMarkupComponent } from './channel-miniature-markup.component'
+import { CustomMarkupContainerComponent } from './custom-markup-container.component'
 import { CustomMarkupHelpComponent } from './custom-markup-help.component'
 import { CustomMarkupService } from './custom-markup.service'
 import { DynamicElementService } from './dynamic-element.service'
-import { EmbedMarkupComponent } from './embed-markup.component'
-import { PlaylistMiniatureMarkupComponent } from './playlist-miniature-markup.component'
-import { VideoMiniatureMarkupComponent } from './video-miniature-markup.component'
-import { VideosListMarkupComponent } from './videos-list-markup.component'
+import {
+  ButtonMarkupComponent,
+  ChannelMiniatureMarkupComponent,
+  EmbedMarkupComponent,
+  PlaylistMiniatureMarkupComponent,
+  VideoMiniatureMarkupComponent,
+  VideosListMarkupComponent
+} from './peertube-custom-tags'
 
 @NgModule({
   imports: [
@@ -33,7 +36,8 @@ import { VideosListMarkupComponent } from './videos-list-markup.component'
     EmbedMarkupComponent,
     VideosListMarkupComponent,
     ButtonMarkupComponent,
-    CustomMarkupHelpComponent
+    CustomMarkupHelpComponent,
+    CustomMarkupContainerComponent
   ],
 
   exports: [
@@ -43,7 +47,8 @@ import { VideosListMarkupComponent } from './videos-list-markup.component'
     VideosListMarkupComponent,
     EmbedMarkupComponent,
     ButtonMarkupComponent,
-    CustomMarkupHelpComponent
+    CustomMarkupHelpComponent,
+    CustomMarkupContainerComponent
   ],
 
   providers: [
index ab75c31aeef4008ada9075835cdcf685a65aa6e7..8e7bf2021c8758b0c08eaac36a715ecdd97b42ad 100644 (file)
@@ -23,7 +23,6 @@ export class InstanceAboutAccordionComponent implements OnInit {
 
   about: About
   aboutHtml = {
-    description: '',
     terms: '',
     codeOfConduct: '',
     moderationInformation: '',
index 0a30446dfc17bf3240e8988d506b16c7e306648b..70e02217893c3f5df6eecf9c1d2b19a552c0eea0 100644 (file)
@@ -40,7 +40,6 @@ export class InstanceService {
 
   async buildHtml (about: About) {
     const html = {
-      description: '',
       terms: '',
       codeOfConduct: '',
       moderationInformation: '',
index 13c681ab8fabadd2e9d592e22cd99672de00d8d7..77a64b538ecc4624da244b603970585304bf7521 100644 (file)
@@ -1,6 +1,7 @@
 
 import { NgModule } from '@angular/core'
 import { NgbAccordionModule } from '@ng-bootstrap/ng-bootstrap'
+import { SharedCustomMarkupModule } from '../shared-custom-markup'
 import { SharedMainModule } from '../shared-main/shared-main.module'
 import { FeatureBooleanComponent } from './feature-boolean.component'
 import { InstanceAboutAccordionComponent } from './instance-about-accordion.component'
@@ -12,7 +13,8 @@ import { InstanceService } from './instance.service'
 @NgModule({
   imports: [
     SharedMainModule,
-    NgbAccordionModule
+    NgbAccordionModule,
+    SharedCustomMarkupModule
   ],
 
   declarations: [