From d0dc7c5ee1787e8c0c9e7c9be6b8cc3b65cb3f21 Mon Sep 17 00:00:00 2001 From: Ryan McCarvill Date: Fri, 24 Mar 2017 23:03:33 +1300 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=A6=20=20Card-Rename=20(#8218)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit no issue - Renames Cards so they comply with the `card-{{name}}` convention rather than `{{name}}-card` - Adds an unkonwnCardHandler to the editor. --- core/server/apps/default-cards/cards/hr.js | 2 +- core/server/apps/default-cards/cards/html.js | 4 ++-- core/server/apps/default-cards/cards/image.js | 3 ++- core/server/apps/default-cards/cards/markdown.js | 4 ++-- core/server/apps/default-cards/tests/html_spec.js | 6 +++--- .../server/apps/default-cards/tests/markdown_spec.js | 2 +- core/server/utils/mobiledoc-converter.js | 8 +++++++- core/test/unit/utils/mobiledoc-converter_spec.js | 12 +++++++----- 8 files changed, 25 insertions(+), 16 deletions(-) diff --git a/core/server/apps/default-cards/cards/hr.js b/core/server/apps/default-cards/cards/hr.js index 3a85026b59..06022a2a19 100644 --- a/core/server/apps/default-cards/cards/hr.js +++ b/core/server/apps/default-cards/cards/hr.js @@ -1,5 +1,5 @@ module.exports = { - name: 'hr-card', + name: 'card-hr', type: 'dom', render(opts) { return opts.env.dom.createElement('hr'); diff --git a/core/server/apps/default-cards/cards/html.js b/core/server/apps/default-cards/cards/html.js index b600945dd6..57a2126b93 100644 --- a/core/server/apps/default-cards/cards/html.js +++ b/core/server/apps/default-cards/cards/html.js @@ -3,10 +3,10 @@ var SimpleDom = require('simple-dom'), parser; module.exports = { - name: 'html-card', + name: 'card-html', type: 'dom', render(opts) { parser = new SimpleDom.HTMLParser(tokenizer, opts.env.dom, SimpleDom.voidMap); - return parser.parse('
' + opts.payload.html + '
'); + return parser.parse('
' + opts.payload.html + '
'); } }; diff --git a/core/server/apps/default-cards/cards/image.js b/core/server/apps/default-cards/cards/image.js index 644d580cd5..554f06d5a9 100644 --- a/core/server/apps/default-cards/cards/image.js +++ b/core/server/apps/default-cards/cards/image.js @@ -1,8 +1,9 @@ module.exports = { - name: 'image-card', + name: 'card-image', type: 'dom', render(opts) { var img = opts.env.dom.createElement('img'); + img.className = 'kg-card-image'; img.setAttribute('src', opts.payload.img); return img; } diff --git a/core/server/apps/default-cards/cards/markdown.js b/core/server/apps/default-cards/cards/markdown.js index 7eb5f75c5d..95a30c0be1 100644 --- a/core/server/apps/default-cards/cards/markdown.js +++ b/core/server/apps/default-cards/cards/markdown.js @@ -5,10 +5,10 @@ var SimpleDom = require('simple-dom'), parser; module.exports = { - name: 'markdown-card', + name: 'card-markdown', type: 'dom', render(opts) { parser = new SimpleDom.HTMLParser(tokenizer, opts.env.dom, SimpleDom.voidMap); - return parser.parse('
' + converter.makeHtml(opts.payload.markdown || '') + '
'); + return parser.parse('
' + converter.makeHtml(opts.payload.markdown || '') + '
'); } }; diff --git a/core/server/apps/default-cards/tests/html_spec.js b/core/server/apps/default-cards/tests/html_spec.js index 0be91570d0..b2a706a68e 100644 --- a/core/server/apps/default-cards/tests/html_spec.js +++ b/core/server/apps/default-cards/tests/html_spec.js @@ -15,7 +15,7 @@ describe('HTML card', function () { }; var serializer = new SimpleDom.HTMLSerializer([]); - serializer.serialize(card.render(opts)).should.match('

HEADING

PARAGRAPH

'); + serializer.serialize(card.render(opts)).should.match('

HEADING

PARAGRAPH

'); }); it('Plain content renders', function () { opts = { @@ -28,7 +28,7 @@ describe('HTML card', function () { }; var serializer = new SimpleDom.HTMLSerializer([]); - serializer.serialize(card.render(opts)).should.match('
CONTENT
'); + serializer.serialize(card.render(opts)).should.match('
CONTENT
'); }); it.skip('Invalid HTML returns', function () { opts = { @@ -41,6 +41,6 @@ describe('HTML card', function () { }; var serializer = new SimpleDom.HTMLSerializer([]); - serializer.serialize(card.render(opts)).should.match('

HEADING<

'); + serializer.serialize(card.render(opts)).should.match('

HEADING<

'); }); }); diff --git a/core/server/apps/default-cards/tests/markdown_spec.js b/core/server/apps/default-cards/tests/markdown_spec.js index a952bc4fae..f2f1a29f6e 100644 --- a/core/server/apps/default-cards/tests/markdown_spec.js +++ b/core/server/apps/default-cards/tests/markdown_spec.js @@ -15,6 +15,6 @@ describe('Markdown card', function () { }; var serializer = new SimpleDom.HTMLSerializer([]); - serializer.serialize(card.render(opts)).should.match('

HEADING

\n\n
'); + serializer.serialize(card.render(opts)).should.match('

HEADING

\n\n
'); }); }); diff --git a/core/server/utils/mobiledoc-converter.js b/core/server/utils/mobiledoc-converter.js index 248c6e447c..8940b2784b 100644 --- a/core/server/utils/mobiledoc-converter.js +++ b/core/server/utils/mobiledoc-converter.js @@ -1,11 +1,17 @@ var SimpleDom = require('simple-dom'), Renderer = require('mobiledoc-dom-renderer').default, config = require('../config'), + logging = require('../logging'), + errors = require('../errors'), defaults = require(config.get('paths').internalAppPath + 'default-cards'), options = { dom: new SimpleDom.Document(), cards: defaults.cards, - atoms: defaults.atoms + atoms: defaults.atoms, + unknownCardHandler: function (args) { + var error = new errors.InternalServerError({message: 'Mobiledoc card \'' + args.env.name + '\' not found.'}); + logging.error(error); + } }; // function getCards() { diff --git a/core/test/unit/utils/mobiledoc-converter_spec.js b/core/test/unit/utils/mobiledoc-converter_spec.js index f6f000eb0e..ce2712dc1f 100644 --- a/core/test/unit/utils/mobiledoc-converter_spec.js +++ b/core/test/unit/utils/mobiledoc-converter_spec.js @@ -6,15 +6,17 @@ describe('Convert mobiledoc to HTML ', function () { version: '0.3.1', atoms: [], cards: [ - ['markdown-card', + ['card-markdown', { pos: 'top', - card_name: 'markdown-card', + card_name: 'card-markdown', markdown: '#heading\n\n- list one\n- list two\n- list three' } ], - ['markdown-card', { - pos: 'top' + ['card-html', { + pos: 'top', + card_name: 'card-html', + html: '

HTML CARD

' }] ], markups: [], @@ -27,6 +29,6 @@ describe('Convert mobiledoc to HTML ', function () { ] }; it('Converts a mobiledoc to HTML', function () { - converter.render(mobiledoc).should.match('

test

heading

\n\n
'); + converter.render(mobiledoc).should.match('

test

heading

\n\n

HTML CARD

'); }); });