1
0
mirror of https://github.com/typemill/typemill.git synced 2025-08-06 22:26:32 +02:00

resolved merge conflicts

This commit is contained in:
Sebastian
2018-12-06 21:01:25 +01:00
10 changed files with 47 additions and 33 deletions

View File

@@ -668,8 +668,11 @@ class ContentApiController extends ContentController
$blockArray = $parsedown->text($blockMarkdown);
}
# needed for ToC links
$relurl = '/tm/content/' . $this->settings['editor'] . '/' . $this->item->urlRel;
/* 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));
}

View File

@@ -127,14 +127,17 @@ class ContentBackendController extends ContentController
# turn markdown into an array of markdown-blocks
$content = $parsedown->markdownToArrayBlocks($content);
}
# needed for ToC links
$relurl = '/tm/content/' . $this->settings['editor'] . '/' . $this->item->urlRel;
foreach($content as $key => $block)
{
/* parse markdown-file to content-array */
$contentArray = $parsedown->text($block);
/* 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.

View File

@@ -136,9 +136,9 @@ class PageController extends Controller
/* get the first image from content array */
$firstImage = $this->getFirstImage($contentArray);
/* 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();
/* extract the h1 headline*/

View File

@@ -25,7 +25,7 @@ class ParsedownExtension extends \ParsedownExtra
return $Elements;
}
function markup($Elements)
function markup($Elements, $relurl)
{
# convert to markup
$markup = $this->elements($Elements);
@@ -39,7 +39,7 @@ class ParsedownExtension extends \ParsedownExtra
# create table of contents
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);
}
@@ -108,9 +108,8 @@ class ParsedownExtension extends \ParsedownExtra
# build the markup for table of contents
protected function buildTOC($headlines)
protected function buildTOC($headlines, $relurl)
{
$markup = '<ul class="TOC">';
foreach($headlines as $key => $headline)
@@ -124,7 +123,7 @@ class ParsedownExtension extends \ParsedownExtra
$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)
{

View File

@@ -2,7 +2,7 @@ const eventBus = new Vue();
const contentComponent = Vue.component('content-block', {
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 () {
return {
preview: 'visible',
@@ -17,6 +17,13 @@ const contentComponent = Vue.component('content-block', {
eventBus.$on('closeComponents', this.closeComponents);
},
methods: {
updateMarkdown: function($event)
{
this.compmarkdown = $event;
this.$nextTick(function () {
this.$refs.preview.style.minHeight = this.$refs.component.offsetHeight + 'px';
});
},
switchToEditMode: function()
{
if(this.edit){ return; }
@@ -91,7 +98,9 @@ const contentComponent = Vue.component('content-block', {
}
},
saveBlock: function()
{
{
console.log(this.compmarkdown);
if(this.compmarkdown == undefined || this.compmarkdown.replace(/(\r\n|\n|\r|\s)/gm,"") == '')
{
this.switchToPreviewMode();

View File

@@ -35,7 +35,7 @@
</article>
<footer></footer>
</div>
<script src="{{ base_url }}/system/author/js/color-picker.min.js?20181203"></script>
<script src="{{ base_url }}/system/author/js/author.js?20181203"></script>
<script src="{{ base_url }}/system/author/js/color-picker.min.js?20181206"></script>
<script src="{{ base_url }}/system/author/js/author.js?20181206"></script>
</body>
</html>

View File

@@ -29,6 +29,6 @@
{% block content %}{% endblock %}
</div>
<script src="{{ base_url }}/system/author/js/auth.js?20181203"></script>
<script src="{{ base_url }}/system/author/js/auth.js?20181206"></script>
</body>
</html>

View File

@@ -19,7 +19,7 @@
<link rel="stylesheet" href="{{ base_url }}/system/author/css/fontello/css/fontello.css" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/normalize.css" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20181203" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20181206" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/color-picker.min.css" />
</head>
<body>
@@ -36,13 +36,13 @@
</article>
<footer></footer>
</div>
<script src="{{ base_url }}/system/author/js/vue.min.js?20181203"></script>
<script src="{{ base_url }}/system/author/js/autosize.min.js?20181203"></script>
<script src="{{ base_url }}/system/author/js/sortable.min.js?20181203"></script>
<script src="{{ base_url }}/system/author/js/vuedraggable.min.js?20181203"></script>
<script src="{{ base_url }}/system/author/js/author.js?20181203"></script>
<script src="{{ base_url }}/system/author/js/vue-publishcontroller.js?20181203"></script>
<script src="{{ base_url }}/system/author/js/vue-blox.js?20181203"></script>
<script src="{{ base_url }}/system/author/js/vue-navi.js?20181203"></script>
<script src="{{ base_url }}/system/author/js/vue.min.js?20181206"></script>
<script src="{{ base_url }}/system/author/js/autosize.min.js?20181206"></script>
<script src="{{ base_url }}/system/author/js/sortable.min.js?20181206"></script>
<script src="{{ base_url }}/system/author/js/vuedraggable.min.js?20181206"></script>
<script src="{{ base_url }}/system/author/js/author.js?20181206"></script>
<script src="{{ base_url }}/system/author/js/vue-publishcontroller.js?20181206"></script>
<script src="{{ base_url }}/system/author/js/vue-blox.js?20181206"></script>
<script src="{{ base_url }}/system/author/js/vue-navi.js?20181206"></script>
</body>
</html>

View File

@@ -19,7 +19,7 @@
<link rel="stylesheet" href="{{ base_url }}/system/author/css/fontello/css/fontello.css" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/normalize.css" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20181203" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20181206" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/color-picker.min.css" />
</head>
<body>
@@ -36,13 +36,13 @@
</article>
<footer></footer>
</div>
<script src="{{ base_url }}/system/author/js/vue.min.js?20181203"></script>
<script src="{{ base_url }}/system/author/js/autosize.min.js?20181203"></script>
<script src="{{ base_url }}/system/author/js/sortable.min.js?20181203"></script>
<script src="{{ base_url }}/system/author/js/vuedraggable.min.js?20181203"></script>
<script src="{{ base_url }}/system/author/js/author.js?20181203"></script>
<script src="{{ base_url }}/system/author/js/vue-publishcontroller.js?20181203"></script>
<script src="{{ base_url }}/system/author/js/vue-editor.js?20181203"></script>
<script src="{{ base_url }}/system/author/js/vue-navi.js?20181203"></script>
<script src="{{ base_url }}/system/author/js/vue.min.js?20181206"></script>
<script src="{{ base_url }}/system/author/js/autosize.min.js?20181206"></script>
<script src="{{ base_url }}/system/author/js/sortable.min.js?20181206"></script>
<script src="{{ base_url }}/system/author/js/vuedraggable.min.js?20181206"></script>
<script src="{{ base_url }}/system/author/js/author.js?20181206"></script>
<script src="{{ base_url }}/system/author/js/vue-publishcontroller.js?20181206"></script>
<script src="{{ base_url }}/system/author/js/vue-editor.js?20181206"></script>
<script src="{{ base_url }}/system/author/js/vue-navi.js?20181206"></script>
</body>
</html>

BIN
typemill-1.2.8-f.zip Normal file

Binary file not shown.