Explorar el Código

Version 1.2.8 Fix Editor

Sebastian hace 6 años
padre
commit
870c00b2fd

+ 1 - 1
cache/lastCache.txt

@@ -1 +1 @@
-1543940450
+1544124516

+ 4 - 1
system/Controllers/ContentApiController.php

@@ -668,8 +668,11 @@ class ContentApiController extends ContentController
 			$blockArray 	= $parsedown->text($blockMarkdown);
 			$blockArray 	= $parsedown->text($blockMarkdown);
 		}
 		}
 		
 		
+		# needed for ToC links
+		$relurl = '/tm/content/' . $this->settings['editor'] . '/' . $this->item->urlRel;
+		
 		/* parse markdown-content-array to content-string */
 		/* parse markdown-content-array to content-string */
-		$blockHTML		= $parsedown->markup($blockArray);
+		$blockHTML		= $parsedown->markup($blockArray, $relurl);
 
 
 		return $response->withJson(array('content' => $blockHTML, 'markdown' => $blockMarkdown, 'blockId' => $blockId, 'id' => $id, 'errors' => false));
 		return $response->withJson(array('content' => $blockHTML, 'markdown' => $blockMarkdown, 'blockId' => $blockId, 'id' => $id, 'errors' => false));
 	}
 	}

+ 5 - 2
system/Controllers/ContentBackendController.php

@@ -127,14 +127,17 @@ class ContentBackendController extends ContentController
 			# turn markdown into an array of markdown-blocks
 			# turn markdown into an array of markdown-blocks
 			$content = $parsedown->markdownToArrayBlocks($content);
 			$content = $parsedown->markdownToArrayBlocks($content);
 		}
 		}
-
+		
+		# needed for ToC links
+		$relurl = '/tm/content/' . $this->settings['editor'] . '/' . $this->item->urlRel;
+		
 		foreach($content as $key => $block)
 		foreach($content as $key => $block)
 		{
 		{
 			/* parse markdown-file to content-array */
 			/* parse markdown-file to content-array */
 			$contentArray 	= $parsedown->text($block);
 			$contentArray 	= $parsedown->text($block);
 
 
 			/* parse markdown-content-array to content-string */
 			/* parse markdown-content-array to content-string */
-			$content[$key]	= $parsedown->markup($contentArray);
+			$content[$key]	= $parsedown->markup($contentArray, $relurl);
 		}
 		}
 
 
 		# extract title and delete from content array, array will start at 1 after that.
 		# extract title and delete from content array, array will start at 1 after that.

+ 2 - 2
system/Controllers/PageController.php

@@ -132,9 +132,9 @@ class PageController extends Controller
 		
 		
 		/* get the first image from content array */
 		/* get the first image from content array */
 		$firstImage		= $this->getFirstImage($contentArray);
 		$firstImage		= $this->getFirstImage($contentArray);
-				
+		
 		/* parse markdown-content-array to content-string */
 		/* parse markdown-content-array to content-string */
-		$contentHTML	= $parsedown->markup($contentArray);
+		$contentHTML	= $parsedown->markup($contentArray, $item->urlRel);
 		$contentHTML 	= $this->c->dispatcher->dispatch('onHtmlLoaded', new OnHtmlLoaded($contentHTML))->getData();
 		$contentHTML 	= $this->c->dispatcher->dispatch('onHtmlLoaded', new OnHtmlLoaded($contentHTML))->getData();
 
 
 		/* extract the h1 headline*/
 		/* extract the h1 headline*/

+ 4 - 5
system/Extensions/ParsedownExtension.php

@@ -25,7 +25,7 @@ class ParsedownExtension extends \ParsedownExtra
 		return $Elements;
 		return $Elements;
 	}
 	}
 	
 	
-	function markup($Elements)
+	function markup($Elements, $relurl)
 	{	
 	{	
         # convert to markup
         # convert to markup
         $markup = $this->elements($Elements);
         $markup = $this->elements($Elements);
@@ -39,7 +39,7 @@ class ParsedownExtension extends \ParsedownExtra
 		# create table of contents
 		# create table of contents
         if(isset($this->DefinitionData['TableOfContents']))
         if(isset($this->DefinitionData['TableOfContents']))
         {
         {
-			$TOC = $this->buildTOC($this->headlines);
+			$TOC = $this->buildTOC($this->headlines, $relurl);
 			
 			
 			$markup = preg_replace('%(<p[^>]*>\[TOC\]</p>)%i', $TOC, $markup);
 			$markup = preg_replace('%(<p[^>]*>\[TOC\]</p>)%i', $TOC, $markup);
         }
         }
@@ -108,9 +108,8 @@ class ParsedownExtension extends \ParsedownExtra
 
 
 	# build the markup for table of contents 
 	# build the markup for table of contents 
 	
 	
-	protected function buildTOC($headlines)
+	protected function buildTOC($headlines, $relurl)
 	{
 	{
-		
 		$markup = '<ul class="TOC">';
 		$markup = '<ul class="TOC">';
 		
 		
 		foreach($headlines as $key => $headline)
 		foreach($headlines as $key => $headline)
@@ -124,7 +123,7 @@ class ParsedownExtension extends \ParsedownExtra
 				$markup .= '<ul>';
 				$markup .= '<ul>';
 			}
 			}
 			
 			
-			$markup .= '<li class="' . $headline['name'] . '"><a href="#' . $headline['attribute'] . '">' . $headline['text'] . '</a>';
+			$markup .= '<li class="' . $headline['name'] . '"><a href="' . $relurl . '#' . $headline['attribute'] . '">' . $headline['text'] . '</a>';
 			
 			
 			if($thisLevel == $nextLevel)
 			if($thisLevel == $nextLevel)
 			{
 			{

+ 12 - 2
system/author/js/vue-blox.js

@@ -2,7 +2,7 @@ const eventBus = new Vue();
 
 
 const contentComponent = Vue.component('content-block', {
 const contentComponent = Vue.component('content-block', {
 	props: ['body'],
 	props: ['body'],
-	template: '<div ref="bloxcomponent" class="blox-editor"><div :class="{ editactive: edit }"><div @keyup.enter="submitBlock" @click="getData"><div class="component" ref="component"><transition name="fade-editor"><component :disabled="disabled" :compmarkdown="compmarkdown" @updatedMarkdown="compmarkdown = $event" :is="componentType"></component></transition><div class="blox-buttons" v-if="edit"><button class="edit" :disabled="disabled" @click.prevent="saveBlock">save</button><button class="cancel" :disabled="disabled" @click.prevent="switchToPreviewMode">cancel</button></div></div><div :class="preview" ref="preview"><slot></slot></div></div><div class="sideaction" v-if="body"><button class="delete" :disabled="disabled" title="delete content-block" @click.prevent="deleteBlock($event)"><i class="icon-cancel"></i></button></div></div></div>',	
+	template: '<div ref="bloxcomponent" class="blox-editor"><div :class="{ editactive: edit }"><div @keyup.enter="submitBlock" @click="getData"><div class="component" ref="component"><transition name="fade-editor"><component :disabled="disabled" :compmarkdown="compmarkdown" @updatedMarkdown="updateMarkdown" :is="componentType"></component></transition><div class="blox-buttons" v-if="edit"><button class="edit" :disabled="disabled" @click.prevent="saveBlock">save</button><button class="cancel" :disabled="disabled" @click.prevent="switchToPreviewMode">cancel</button></div></div><div :class="preview" ref="preview"><slot></slot></div></div><div class="sideaction" v-if="body"><button class="delete" :disabled="disabled" title="delete content-block" @click.prevent="deleteBlock($event)"><i class="icon-cancel"></i></button></div></div></div>',	
 	data: function () {
 	data: function () {
 		return {
 		return {
 			preview: 'visible',
 			preview: 'visible',
@@ -17,8 +17,16 @@ const contentComponent = Vue.component('content-block', {
 		eventBus.$on('closeComponents', this.closeComponents);
 		eventBus.$on('closeComponents', this.closeComponents);
 	},
 	},
 	methods: {
 	methods: {
+		updateMarkdown: function($event)
+		{
+			this.compmarkdown = $event;
+			this.$nextTick(function () {
+				this.$refs.preview.style.minHeight = this.$refs.component.offsetHeight + 'px';
+			});			
+		},
 		switchToEditMode: function()
 		switchToEditMode: function()
 		{
 		{
+			if(this.edit){ return; }			
 			eventBus.$emit('closeComponents');
 			eventBus.$emit('closeComponents');
 			self = this;
 			self = this;
 			self.$root.$data.freeze = true; 						/* freeze the data */
 			self.$root.$data.freeze = true; 						/* freeze the data */
@@ -90,7 +98,9 @@ const contentComponent = Vue.component('content-block', {
 			}
 			}
 		},
 		},
 		saveBlock: function()
 		saveBlock: function()
-		{			
+		{	
+			console.log(this.compmarkdown);
+		
 			if(this.compmarkdown == undefined || this.compmarkdown.replace(/(\r\n|\n|\r|\s)/gm,"") == '')
 			if(this.compmarkdown == undefined || this.compmarkdown.replace(/(\r\n|\n|\r|\s)/gm,"") == '')
 			{
 			{
 				this.switchToPreviewMode();	
 				this.switchToPreviewMode();