Skip to content

Commit 8372621

Browse files
committed
feat(custom template): added support for creating custom templates
1 parent 8b022ac commit 8372621

34 files changed

Lines changed: 354 additions & 540 deletions

Gruntfile.js

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
module.exports = function(grunt) {
22

3-
var babel = require('rollup-plugin-babel');
4-
var npm = require('rollup-plugin-npm');
3+
var babel = require('rollup-plugin-babel');
4+
var npm = require('rollup-plugin-npm');
55
var commonjs = require('rollup-plugin-commonjs');
6-
var replace = require('rollup-plugin-replace');
7-
var build = require('./build.json');
6+
var replace = require('rollup-plugin-replace');
7+
var build = require('./build.json');
88

99
grunt.initConfig({
1010

@@ -59,13 +59,13 @@ module.exports = function(grunt) {
5959

6060
'sprite': {
6161
all: {
62-
src: './assets/images/ejs_emojis/*.png',
63-
dest: './assets/images/emojis.png',
64-
retinaSrcFilter: './assets/images/ejs_emojis/*@2x.png',
65-
destCss: 'src/css/_emojis.scss',
66-
retinaDest: './assets/images/emojis@2x.png',
67-
cssFormat: 'css',
68-
cssTemplate: 'sprite.handlebars'
62+
src : './assets/images/ejs_emojis/*.png',
63+
dest : './assets/images/emojis.png',
64+
retinaSrcFilter : './assets/images/ejs_emojis/*@2x.png',
65+
destCss : 'src/css/_emojis.scss',
66+
retinaDest : './assets/images/emojis@2x.png',
67+
cssFormat : 'css',
68+
cssTemplate : 'sprite.handlebars'
6969
}
7070
},
7171

@@ -104,14 +104,14 @@ module.exports = function(grunt) {
104104
banner: "<%= meta.banner %>",
105105
mangle: true,
106106
compress: {
107-
sequences: true,
108-
dead_code: true,
109-
conditionals: true,
110-
booleans: true,
111-
unused: true,
112-
if_return: true,
113-
join_vars: true,
114-
drop_console: true
107+
sequences : true,
108+
dead_code : true,
109+
conditionals : true,
110+
booleans : true,
111+
unused : true,
112+
if_return : true,
113+
join_vars : true,
114+
drop_console : true
115115
}
116116
},
117117
build: {

demo/index.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,10 @@ <h1>Loading embed.js in a block</h1>
8989
console.log(data);
9090
})
9191

92+
ejs.template.basicAudio = function(match){
93+
return 'kjkh'+ match
94+
}
95+
9296

9397
// ejs.applyEmbedJS("block");
9498
</script>

dist/embed.min.js

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/embed.js

Lines changed: 127 additions & 91 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/embed.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/js/embed.es6

Lines changed: 144 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import utils from './modules/utils.es6'
88
* It is used to create a custom build of the plugin. Webpack uses the object and sets it as a global variable
99
* while creating the build. Later UglifyJS removes the dead code from the file and a custom build is created.
1010
*
11-
* Eg: Webpack converts
11+
* Eg: Rollup converts
1212
* if (build.EMOJI){
1313
* var Emoji = require('./modules/emoticons/emoji.es6');
1414
* }
@@ -25,42 +25,123 @@ import utils from './modules/utils.es6'
2525
*
2626
*/
2727

28-
import {Emoji} from './modules/emoticons/emoji.es6'
29-
import {Smiley} from './modules/emoticons/smiley.es6'
30-
import {Url} from './modules/url.es6'
31-
32-
import {Twitter} from './modules/twitter/twitter.es6'
33-
import {Gmap} from './modules/map/map.es6'
34-
import {Markdown} from './modules/markdown.es6'
35-
36-
import {Highlight} from './modules/code/highlight.es6'
37-
import {Ideone} from './modules/code/ideone.es6'
38-
import {Plunker} from './modules/code/plunker.es6'
39-
import {JsBin} from './modules/code/jsbin.es6'
40-
import {CodePen} from './modules/code/codepen.es6'
41-
import {JsFiddle} from './modules/code/jsfiddle.es6'
42-
import {Gist} from './modules/code/gist.es6'
43-
44-
import {Ted} from './modules/video/ted.es6'
45-
import {Dailymotion} from './modules/video/dailymotion.es6'
46-
import {Ustream} from './modules/video/ustream.es6'
47-
import {LiveLeak} from './modules/video/liveleak.es6'
48-
import {Vine} from './modules/video/vine.es6'
49-
import {Youtube} from './modules/video/youtube.es6'
50-
import {Vimeo} from './modules/video/vimeo.es6'
51-
import {BasicVideo} from './modules/video/basic.es6'
52-
53-
import {SoundCloud} from './modules/audio/soundcloud.es6'
54-
import {Spotify} from './modules/audio/spotify.es6'
55-
import {BasicAudio} from './modules/audio/basic.es6'
56-
57-
import {Flickr} from './modules/image/flickr.es6'
58-
import {Instagram} from './modules/image/instagram.es6'
59-
import {Basic} from './modules/image/basic.es6'
28+
import {
29+
Emoji
30+
}
31+
from './modules/emoticons/emoji.es6'
32+
import {
33+
Smiley
34+
}
35+
from './modules/emoticons/smiley.es6'
36+
import {
37+
Url
38+
}
39+
from './modules/url.es6'
40+
41+
import {
42+
Twitter
43+
}
44+
from './modules/twitter/twitter.es6'
45+
import {
46+
Gmap
47+
}
48+
from './modules/map/map.es6'
49+
import {
50+
Markdown
51+
}
52+
from './modules/markdown.es6'
53+
54+
import {
55+
Highlight
56+
}
57+
from './modules/code/highlight.es6'
58+
import {
59+
Ideone
60+
}
61+
from './modules/code/ideone.es6'
62+
import {
63+
Plunker
64+
}
65+
from './modules/code/plunker.es6'
66+
import {
67+
JsBin
68+
}
69+
from './modules/code/jsbin.es6'
70+
import {
71+
CodePen
72+
}
73+
from './modules/code/codepen.es6'
74+
import {
75+
JsFiddle
76+
}
77+
from './modules/code/jsfiddle.es6'
78+
import {
79+
Gist
80+
}
81+
from './modules/code/gist.es6'
82+
83+
import {
84+
Ted
85+
}
86+
from './modules/video/ted.es6'
87+
import {
88+
Dailymotion
89+
}
90+
from './modules/video/dailymotion.es6'
91+
import {
92+
Ustream
93+
}
94+
from './modules/video/ustream.es6'
95+
import {
96+
LiveLeak
97+
}
98+
from './modules/video/liveleak.es6'
99+
import {
100+
Vine
101+
}
102+
from './modules/video/vine.es6'
103+
import {
104+
Youtube
105+
}
106+
from './modules/video/youtube.es6'
107+
import {
108+
Vimeo
109+
}
110+
from './modules/video/vimeo.es6'
111+
import {
112+
BasicVideo
113+
}
114+
from './modules/video/basic.es6'
115+
116+
import {
117+
SoundCloud
118+
}
119+
from './modules/audio/soundcloud.es6'
120+
import {
121+
Spotify
122+
}
123+
from './modules/audio/spotify.es6'
124+
import {
125+
BasicAudio
126+
}
127+
from './modules/audio/basic.es6'
128+
129+
import {
130+
Flickr
131+
}
132+
from './modules/image/flickr.es6'
133+
import {
134+
Instagram
135+
}
136+
from './modules/image/instagram.es6'
137+
import {
138+
Basic
139+
}
140+
from './modules/image/basic.es6'
60141

61142
import helper from './modules/video/helper.es6'
62143

63-
(function(window){
144+
(function(window) {
64145
var globalOptions = {}
65146

66147
var defaultOptions = {
@@ -181,16 +262,16 @@ import helper from './modules/video/helper.es6'
181262

182263
this.options.beforeEmbedJSApply();
183264

184-
if (LINK && options.link){
265+
if (LINK && options.link) {
185266
output = new Url(input, options).process()
186267
}
187268
if (MARKDOWN && options.marked) {
188269
output = new Markdown(output, options).process()
189270
}
190-
if (EMOJI && options.emoji){
271+
if (EMOJI && options.emoji) {
191272
output = new Emoji(output, options).process()
192273
}
193-
if (SMILEY && options.fontIcons){
274+
if (SMILEY && options.fontIcons) {
194275
output = new Smiley(output, options).process()
195276
}
196277

@@ -359,10 +440,35 @@ import helper from './modules/video/helper.es6'
359440
for (let i = 0; i < this.elements.length; i++) {
360441
this.instances[i].destroy()
361442
}
443+
},
444+
445+
template: {
446+
url() {},
447+
smiley() {},
448+
emoji() {},
449+
basicAudio() {},
450+
soundCloud() {},
451+
spotify() {},
452+
codePen() {},
453+
ideone() {},
454+
jsBin() {},
455+
jsFiddle() {},
456+
plunker() {},
457+
basicImage() {},
458+
flickr() {},
459+
instagram() {},
460+
basicVideo() {},
461+
dailymotion() {},
462+
liveLeak() {},
463+
ted() {},
464+
ustream() {},
465+
detailsVimeo() {},
466+
detailsYoutube() {},
467+
vine() {}
362468
}
363469
}
364470

365-
window.EmbedJS = EmbedJS
366471
window.ejs = ejs
472+
window.EmbedJS = EmbedJS
367473

368474
})(window)

src/js/modules/audio/basic.es6

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export class BasicAudio extends Base {
88
}
99

1010
template(match) {
11-
return `<div class="ejs-audio ejs-embed"><audio src="${match}" controls class="video-js ejs-video-js"></audio></div>`
11+
return ejs.template.basicAudio(match) || `<div class="ejs-audio ejs-embed"><audio src="${match}" controls class="video-js ejs-video-js"></audio></div>`
1212
}
1313
}
1414

src/js/modules/audio/soundcloud.es6

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export class SoundCloud extends Base{
99

1010
template(match) {
1111
let config = this.options.soundCloudOptions;
12-
return `<div class="ejs-embed">
12+
return ejs.template.soundCloud(match, config) || `<div class="ejs-embed">
1313
<iframe height="160" scrolling="no" src="https://w.soundcloud.com/player/?url=${match}
1414
&auto_play = ${config.autoPlay}
1515
&hide_related = ${config.hideRelated}

src/js/modules/audio/spotify.es6

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export class Spotify extends Base{
1010
template(match){
1111
let a = match.split('/')
1212
let id = a[a.length-1]
13-
return `<div class="ejs-embed"><iframe src="https://embed.spotify.com/?uri=spotify:track:${id}" height="80"></iframe></div>`
13+
return ejs.template.spotify(id) || `<div class="ejs-embed"><iframe src="https://embed.spotify.com/?uri=spotify:track:${id}" height="80"></iframe></div>`
1414
}
1515
}
1616

src/js/modules/code/codepen.es6

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export class CodePen extends Base {
88
}
99

1010
template(id) {
11-
return `<div class="ejs-embed ejs-codepen">
11+
return ejs.template.codePen(id, this.options) || `<div class="ejs-embed ejs-codepen">
1212
<iframe scrolling="no" height="${this.options.codeEmbedHeight}" src="${id.replace(/\/pen\//, '/embed/')}/?height=${this.options.codeEmbedHeight}"></iframe>'
1313
</div>`
1414
}

0 commit comments

Comments
 (0)