Skip to content

Commit 73f9eb1

Browse files
josemarluedkesamselikoff
authored andcommitted
Upgrade ember-code-snippet to v3.0.0 (#436)
1 parent b03d4c1 commit 73f9eb1

File tree

8 files changed

+70
-87
lines changed

8 files changed

+70
-87
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import Component from '@ember/component';
2+
import layout from './template';
3+
import hljs from 'highlight.js/lib/highlight';
4+
5+
// Installed languages
6+
import javascript from 'highlight.js/lib/languages/javascript';
7+
import css from 'highlight.js/lib/languages/css';
8+
import handlebars from 'highlight.js/lib/languages/handlebars';
9+
import htmlbars from 'highlight.js/lib/languages/htmlbars';
10+
import json from 'highlight.js/lib/languages/json';
11+
import xml from 'highlight.js/lib/languages/xml';
12+
import diff from 'highlight.js/lib/languages/diff';
13+
import shell from 'highlight.js/lib/languages/shell';
14+
import typescript from 'highlight.js/lib/languages/typescript';
15+
16+
hljs.registerLanguage('javascript', javascript);
17+
hljs.registerLanguage('js', javascript);
18+
hljs.registerLanguage('css', css);
19+
hljs.registerLanguage('handlebars', handlebars);
20+
hljs.registerLanguage('htmlbars', htmlbars);
21+
hljs.registerLanguage('hbs', htmlbars);
22+
hljs.registerLanguage('json', json);
23+
hljs.registerLanguage('xml', xml);
24+
hljs.registerLanguage('diff', diff);
25+
hljs.registerLanguage('shell', shell);
26+
hljs.registerLanguage('sh', shell);
27+
hljs.registerLanguage('typescript', typescript);
28+
hljs.registerLanguage('ts', typescript);
29+
30+
export default Component.extend({
31+
tagName: 'pre',
32+
classNameBindings: ['language'],
33+
layout,
34+
didInsertElement() {
35+
this._super.apply(this, arguments);
36+
37+
hljs.highlightBlock(this.element);
38+
}
39+
});
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{{yield}}

addon/components/docs-snippet/component.js

Lines changed: 1 addition & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
import { computed } from '@ember/object';
21
import Component from '@ember/component';
32
import layout from './template';
4-
import config from 'ember-get-config';
5-
import require from 'require';
63

74
/**
85
A snippet component for demonstrating some code
@@ -56,37 +53,5 @@ export default Component.extend({
5653
@argument unindent
5754
@type Boolean
5855
*/
59-
unindent: false,
60-
61-
_unindent: function(src) {
62-
if (!this.get('unindent')) {
63-
return src;
64-
}
65-
var match, min, lines = src.split("\n").filter(l => l !== '');
66-
for (var i = 0; i < lines.length; i++) {
67-
match = /^[ \t]*/.exec(lines[i]);
68-
if (match && (typeof min === 'undefined' || min > match[0].length)) {
69-
min = match[0].length;
70-
}
71-
}
72-
if (typeof min !== 'undefined' && min > 0) {
73-
src = src.replace(new RegExp("^[ \t]{" + min + "}", 'gm'), "");
74-
}
75-
return src;
76-
},
77-
78-
snippetText: computed('name', function(){
79-
let name = this.get('name');
80-
if (!/\..+/.test(name)) {
81-
name += '.hbs';
82-
}
83-
84-
let snippet = require(config.modulePrefix + "/snippets").default[name] || "";
85-
86-
return this._unindent(
87-
snippet
88-
.replace(/^(\s*\n)*/, '')
89-
.replace(/\s*$/, '')
90-
);
91-
}),
56+
unindent: true,
9257
});

addon/components/docs-snippet/template.hbs

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,33 @@
33
docs-bg-black docs-text-grey-lighter docs-text-xs
44
docs-font-medium docs-py-2 docs-px-4 docs-rounded-t
55
docs-border-b docs-border-grey-darkest
6+
docs-subpixel-antialiased
67
">
78
{{title}}
89
</div>
910
{{/if}}
1011

1112
<div class="
12-
docs-text-sm docs-px-2 docs-py-1 docs-bg-code-base docs-relative
13+
docs-text-xs docs-px-2 docs-py-1 docs-bg-code-base
14+
docs-relative docs-subpixel-antialiased
1315
{{if title "docs-rounded-b" "docs-rounded"}}
1416
"
1517
data-test-id={{name}}
1618
>
17-
{{#if showCopy}}
18-
{{#copy-button
19-
clipboardText=snippetText
20-
title="copy to clipboard"
21-
class="
22-
docs-absolute docs-top-0 docs-right-0 docs-bg-transparent hover:docs-bg-transparent
23-
docs-border-none docs-opacity-50 hover:docs-opacity-100 docs-p-3 docs-text-white
24-
"
25-
}}
26-
Copy
27-
{{/copy-button}}
28-
{{/if}}
19+
{{#with (get-code-snippet name unindent=unindent) as |snippet|}}
20+
{{#if showCopy}}
21+
{{#copy-button
22+
clipboardText=snippet.source
23+
title="copy to clipboard"
24+
class="
25+
docs-absolute docs-top-0 docs-right-0 docs-bg-transparent hover:docs-bg-transparent
26+
docs-border-none docs-opacity-50 hover:docs-opacity-100 docs-p-3 docs-text-white
27+
"
28+
}}
29+
Copy
30+
{{/copy-button}}
31+
{{/if}}
2932

30-
{{code-snippet name=name language=language}}
33+
<DocsCodeHighlight @language={{language}}>{{snippet.source}}</DocsCodeHighlight>
34+
{{/with}}
3135
</div>

addon/styles/components/_docs-md.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050

5151
/* Applied to fenced code in compiled markdown */
5252
.docs-md__code {
53-
@apply docs-my-8 docs-px-4 docs-py-3 docs-overflow-x-scroll docs-text-sm docs-rounded;
53+
@apply docs-my-8 docs-px-4 docs-py-3 docs-overflow-x-scroll docs-text-xs docs-rounded docs-subpixel-antialiased;
5454

5555
/* These values are copied from atom-one-dark theme, imported from highlight.js */
5656
background: #282c34;

index.js

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,6 @@ module.exports = {
132132
begin: /(?:{{#|<)(?:DocsSnippet|docs-snippet|demo\.example)\s@?name=['"](\S*)['"]/,
133133
end: /(?:{{|<)\/(?:DocsSnippet|docs-snippet|demo\.example)(?:}}|>)/,
134134
}, includer.options.snippetRegexes);
135-
includer.options.includehighlightJS = false;
136-
includer.options.includeHighlightStyle = false;
137135

138136
let snippetExtensions = includer.options.snippetExtensions;
139137

@@ -226,7 +224,6 @@ module.exports = {
226224
treeForVendor(vendor) {
227225
return new MergeTrees([
228226
vendor,
229-
// this._highlightJSTree(),
230227
this._lunrTree()
231228
].filter(Boolean));
232229
},
@@ -285,13 +282,6 @@ module.exports = {
285282
return new Funnel(path.dirname(require.resolve('lunr/package.json')), { destDir: 'lunr' });
286283
},
287284

288-
_highlightJSTree() {
289-
return new Funnel(path.dirname(require.resolve('highlightjs/package.json')), { // eslint-disable-line node/no-missing-require
290-
srcDir: 'styles',
291-
destDir: 'highlightjs-styles'
292-
});
293-
},
294-
295285
_readUserConfig() {
296286
if (!this._userConfig) {
297287
const readConfig = require('./lib/utils/read-config');

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
"ember-cli-sass": "10.0.1",
4949
"ember-cli-string-helpers": "^4.0.5",
5050
"ember-cli-string-utils": "^1.1.0",
51-
"ember-code-snippet": "^2.4.1",
51+
"ember-code-snippet": "^3.0.0",
5252
"ember-component-css": "^0.7.4",
5353
"ember-composable-helpers": "^2.3.1",
5454
"ember-concurrency": "^0.9.0 || ^0.10.0 || ^1.0.0",

yarn.lock

Lines changed: 9 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3011,7 +3011,7 @@ broccoli-funnel@^2.0.0, broccoli-funnel@^2.0.1, broccoli-funnel@^2.0.2:
30113011
symlink-or-copy "^1.0.0"
30123012
walk-sync "^0.3.1"
30133013

3014-
broccoli-kitchen-sink-helpers@^0.2.0, broccoli-kitchen-sink-helpers@^0.2.5:
3014+
broccoli-kitchen-sink-helpers@^0.2.5:
30153015
version "0.2.9"
30163016
resolved "https://registry.yarnpkg.com/broccoli-kitchen-sink-helpers/-/broccoli-kitchen-sink-helpers-0.2.9.tgz#a5e0986ed8d76fb5984b68c3f0450d3a96e36ecc"
30173017
integrity sha1-peCYbtjXb7WYS2jD8EUNOpbjbsw=
@@ -3306,15 +3306,6 @@ broccoli-sri-hash@^2.1.0:
33063306
sri-toolbox "^0.2.0"
33073307
symlink-or-copy "^1.0.1"
33083308

3309-
broccoli-static-compiler@^0.1.4:
3310-
version "0.1.4"
3311-
resolved "https://registry.yarnpkg.com/broccoli-static-compiler/-/broccoli-static-compiler-0.1.4.tgz#713d18f08eb3131530575a0c5ad2951bba10af41"
3312-
integrity sha1-cT0Y8I6zExUwV1oMWtKVG7oQr0E=
3313-
dependencies:
3314-
broccoli-kitchen-sink-helpers "^0.2.0"
3315-
broccoli-writer "^0.1.1"
3316-
mkdirp "^0.3.5"
3317-
33183309
broccoli-stew@^1.5.0:
33193310
version "1.6.0"
33203311
resolved "https://registry.yarnpkg.com/broccoli-stew/-/broccoli-stew-1.6.0.tgz#01f6d92806ed6679ddbe48d405066a0e164dfbef"
@@ -3433,14 +3424,6 @@ broccoli-uglify-sourcemap@^3.1.0:
34333424
walk-sync "^1.1.3"
34343425
workerpool "^5.0.1"
34353426

3436-
broccoli-writer@^0.1.1:
3437-
version "0.1.1"
3438-
resolved "https://registry.yarnpkg.com/broccoli-writer/-/broccoli-writer-0.1.1.tgz#d4d71aa8f2afbc67a3866b91a2da79084b96ab2d"
3439-
integrity sha1-1NcaqPKvvGejhmuRotp5CEuWqy0=
3440-
dependencies:
3441-
quick-temp "^0.1.0"
3442-
rsvp "^3.0.6"
3443-
34443427
broccoli@^3.2.0:
34453428
version "3.2.0"
34463429
resolved "https://registry.yarnpkg.com/broccoli/-/broccoli-3.2.0.tgz#6b5a89b8d6d0c733d39aa23ac5b43d85f56fafab"
@@ -5622,15 +5605,16 @@ ember-cli@~3.13.1:
56225605
watch-detector "^1.0.0"
56235606
yam "^1.0.0"
56245607

5625-
ember-code-snippet@^2.4.1:
5626-
version "2.4.2"
5627-
resolved "https://registry.yarnpkg.com/ember-code-snippet/-/ember-code-snippet-2.4.2.tgz#17a125c5afc9b134caf7ab8df3d7f68c09019669"
5628-
integrity sha512-JO2HKVsL2tUAGj9atJ7Q3bS9DK2ZijdhXDUsu6iJPS2PBvWGKKktHq572sl5cPc4tj+Girgrq3zp/5Wy95Xmsg==
5608+
ember-code-snippet@^3.0.0:
5609+
version "3.0.0"
5610+
resolved "https://registry.yarnpkg.com/ember-code-snippet/-/ember-code-snippet-3.0.0.tgz#5e3108a68cc76740355cbbca840656d96c6b7ba1"
5611+
integrity sha512-pvIpGPLma7m6WQ5+uOjwkzozIzRAqlUSQk9TMCrQQ/AeEGWtqTJvZyAtH9LoarPtudHtWCZkUqJXIqKsjIqAbw==
56295612
dependencies:
56305613
broccoli-flatiron "^0.1.3"
56315614
broccoli-merge-trees "^1.0.0"
5632-
broccoli-static-compiler "^0.1.4"
5633-
broccoli-writer "^0.1.1"
5615+
broccoli-plugin "^1.3.1"
5616+
ember-cli-babel "^7.7.3"
5617+
ember-cli-htmlbars "^3.0.1"
56345618
es6-promise "^1.0.0"
56355619
glob "^7.1.3"
56365620

@@ -10571,7 +10555,7 @@ quibble@^0.5.6:
1057110555
lodash "^4.17.14"
1057210556
resolve "^1.11.1"
1057310557

10574-
quick-temp@^0.1.0, quick-temp@^0.1.2, quick-temp@^0.1.3, quick-temp@^0.1.5, quick-temp@^0.1.8:
10558+
quick-temp@^0.1.2, quick-temp@^0.1.3, quick-temp@^0.1.5, quick-temp@^0.1.8:
1057510559
version "0.1.8"
1057610560
resolved "https://registry.yarnpkg.com/quick-temp/-/quick-temp-0.1.8.tgz#bab02a242ab8fb0dd758a3c9776b32f9a5d94408"
1057710561
integrity sha1-urAqJCq4+w3XWKPJd2sy+aXZRAg=

0 commit comments

Comments
 (0)