| 
														
															@@ -14,7 +14,7 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					<div 
														 | 
														
														 | 
														
															 					<div 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 						class="news-item" 
														 | 
														
														 | 
														
															 						class="news-item" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 						id="preview" 
														 | 
														
														 | 
														
															 						id="preview" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-						v-html="marked(markdown)" 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+						v-html="sanitize(marked(markdown))" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					></div> 
														 | 
														
														 | 
														
															 					></div> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				</div> 
														 | 
														
														 | 
														
															 				</div> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			</div> 
														 | 
														
														 | 
														
															 			</div> 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -60,6 +60,7 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 <script> 
														 | 
														
														 | 
														
															 <script> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import { mapActions, mapGetters, mapState } from "vuex"; 
														 | 
														
														 | 
														
															 import { mapActions, mapGetters, mapState } from "vuex"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import marked from "marked"; 
														 | 
														
														 | 
														
															 import marked from "marked"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import { sanitize } from "dompurify"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import Toast from "toasters"; 
														 | 
														
														 | 
														
															 import Toast from "toasters"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import { formatDistance } from "date-fns"; 
														 | 
														
														 | 
														
															 import { formatDistance } from "date-fns"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -120,11 +121,15 @@ export default { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	}, 
														 | 
														
														 | 
														
															 	}, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	methods: { 
														 | 
														
														 | 
														
															 	methods: { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		marked, 
														 | 
														
														 | 
														
															 		marked, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		sanitize, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		getTitle() { 
														 | 
														
														 | 
														
															 		getTitle() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			let title = ""; 
														 | 
														
														 | 
														
															 			let title = ""; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			const preview = document.getElementById("preview"); 
														 | 
														
														 | 
														
															 			const preview = document.getElementById("preview"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			// validate existence of h1 for the page title 
														 | 
														
														 | 
														
															 			// validate existence of h1 for the page title 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			if (preview.childNodes.length === 0) return ""; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			if (preview.childNodes[0].tagName !== "H1") { 
														 | 
														
														 | 
														
															 			if (preview.childNodes[0].tagName !== "H1") { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				for ( 
														 | 
														
														 | 
														
															 				for ( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					let node = 0; 
														 | 
														
														 | 
														
															 					let node = 0; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -143,6 +148,9 @@ export default { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			return title; 
														 | 
														
														 | 
														
															 			return title; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		}, 
														 | 
														
														 | 
														
															 		}, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		create(close) { 
														 | 
														
														 | 
														
															 		create(close) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			if (this.markdown === "") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+				return new Toast("News item cannot be empty."); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			const title = this.getTitle(); 
														 | 
														
														 | 
														
															 			const title = this.getTitle(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			if (!title) 
														 | 
														
														 | 
														
															 			if (!title) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				return new Toast( 
														 | 
														
														 | 
														
															 				return new Toast( 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -164,6 +172,9 @@ export default { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			); 
														 | 
														
														 | 
														
															 			); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		}, 
														 | 
														
														 | 
														
															 		}, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		update(close) { 
														 | 
														
														 | 
														
															 		update(close) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			if (this.markdown === "") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+				return new Toast("News item cannot be empty."); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			const title = this.getTitle(); 
														 | 
														
														 | 
														
															 			const title = this.getTitle(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			if (!title) 
														 | 
														
														 | 
														
															 			if (!title) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				return new Toast( 
														 | 
														
														 | 
														
															 				return new Toast( 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -212,6 +223,13 @@ export default { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 </style> 
														 | 
														
														 | 
														
															 </style> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 <style lang="scss" scoped> 
														 | 
														
														 | 
														
															 <style lang="scss" scoped> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+.night-mode { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	#markdown-editor-and-preview textarea, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	#markdown-editor-and-preview #preview { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		border-color: #fff; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 #markdown-editor-and-preview { 
														 | 
														
														 | 
														
															 #markdown-editor-and-preview { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	display: flex; 
														 | 
														
														 | 
														
															 	display: flex; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	flex-wrap: wrap; 
														 | 
														
														 | 
														
															 	flex-wrap: wrap; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -235,12 +253,13 @@ export default { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	#preview { 
														 | 
														
														 | 
														
															 	#preview { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		word-break: break-all; 
														 | 
														
														 | 
														
															 		word-break: break-all; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		overflow: auto; 
														 | 
														
														 | 
														
															 		overflow: auto; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		box-shadow: none; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	} 
														 | 
														
														 | 
														
															 	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	textarea, 
														 | 
														
														 | 
														
															 	textarea, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	#preview { 
														 | 
														
														 | 
														
															 	#preview { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		padding: 5px; 
														 | 
														
														 | 
														
															 		padding: 5px; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		border: 1px solid var(--light-grey-3); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		border: 1px solid var(--light-grey-3) !important; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		border-radius: 3px; 
														 | 
														
														 | 
														
															 		border-radius: 3px; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		height: 700px; 
														 | 
														
														 | 
														
															 		height: 700px; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	} 
														 | 
														
														 | 
														
															 	} 
														 |