Skip to content

Commit e86c42c

Browse files
committed
feature(dingus) nicer tabs, now displays TemplateMark AST
Signed-off-by: Jerome Simeon <[email protected]>
1 parent 7c345b6 commit e86c42c

File tree

7 files changed

+34
-8
lines changed

7 files changed

+34
-8
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
"version": "0.12.2",
2626
"private": true,
2727
"scripts": {
28-
"dingus": "lerna exec --scope dingus -- npm run demo",
28+
"dingus": "lerna exec --scope dingus -- npm run dingus",
2929
"build": "lerna run build",
3030
"postinstall": "npm run models:get && lerna bootstrap",
3131
"models:get": "node ./scripts/external/getExternalModels.js",

packages/dingus/lib/index.js

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
/*global $, _*/
55

66
const markdownit = require('markdown-it');
7+
const tokensToUntypedTemplateMark = require('@accordproject/markdown-template').templatemarkutil.tokensToUntypedTemplateMark;
78

89
var mdurl = require('mdurl');
910

@@ -72,7 +73,7 @@ var defaults = {
7273
// options below are for demo only
7374
_highlight: true,
7475
_strict: false,
75-
_view: 'html' // html / src / debug
76+
_view: 'html' // html / src / debug / ast
7677
};
7778

7879
defaults.highlight = function (str, lang) {
@@ -117,6 +118,7 @@ function setResultView(val) {
117118
$('body').removeClass('result-as-html');
118119
$('body').removeClass('result-as-src');
119120
$('body').removeClass('result-as-debug');
121+
$('body').removeClass('result-as-ast');
120122
$('body').addClass('result-as-' + val);
121123
defaults._view = val;
122124
}
@@ -172,7 +174,7 @@ function updateResult() {
172174
var source = $('.source').val();
173175

174176
// Update only active view to avoid slowdowns
175-
// (debug & src view with highlighting are a bit slow)
177+
// (debug & ast & src view with highlighting are a bit slow)
176178
if (defaults._view === 'src') {
177179
setHighlightedlContent('.result-src-content', mdSrc.render(source), 'html');
178180

@@ -183,6 +185,13 @@ function updateResult() {
183185
'json'
184186
);
185187

188+
} else if (defaults._view === 'ast') {
189+
setHighlightedlContent(
190+
'.result-ast-content',
191+
JSON.stringify(tokensToUntypedTemplateMark(mdSrc.parse(source, { references: {} }),'contract'), null, 2),
192+
'json'
193+
);
194+
186195
} else { /*defaults._view === 'html'*/
187196
$('.result-html').html(mdHtml.render(source));
188197
}
@@ -377,7 +386,7 @@ function loadPermalink() {
377386
});
378387

379388
// sanitize for sure
380-
if ([ 'html', 'src', 'debug' ].indexOf(defaults._view) === -1) {
389+
if ([ 'html', 'src', 'debug', 'ast' ].indexOf(defaults._view) === -1) {
381390
defaults._view = 'html';
382391
}
383392
}

packages/dingus/lib/index.pug

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,14 @@ html
4848
textarea.source.full-height= s.source
4949
section.col-xs-6.full-height
5050
.demo-control
51-
a(href='#' data-result-as='html') html
52-
a(href='#' data-result-as='src') source
53-
a(href='#' data-result-as='debug') debug
51+
a(href='#' data-result-as='html') preview
52+
a(href='#' data-result-as='src') html
53+
a(href='#' data-result-as='debug') tokens
54+
a(href='#' data-result-as='ast') ast
5455
.result-html.full-height
5556
pre.hljs.result-src.full-height
5657
code.result-src-content.full-height
5758
pre.hljs.result-debug.full-height
5859
code.result-debug-content.full-height
60+
pre.hljs.result-ast.full-height
61+
code.result-ast-content.full-height

packages/dingus/lib/index.styl

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,29 +37,41 @@ body
3737

3838
.result-src
3939
.result-debug
40+
.result-ast
4041
display none
4142

4243
.result-src-content
4344
.result-debug-content
45+
.result-ast-content
4446
white-space pre
4547

4648
.result-as-html
4749
.result-html
4850
display block
4951
.result-src
5052
.result-debug
53+
.result-ast
5154
display none
5255
.result-as-src
5356
.result-src
5457
display block
5558
.result-html
5659
.result-debug
60+
.result-ast
5761
display none
5862
.result-as-debug
5963
.result-debug
6064
display block
6165
.result-html
6266
.result-src
67+
.result-ast
68+
display none
69+
.result-as-ast
70+
.result-ast
71+
display block
72+
.result-html
73+
.result-src
74+
.result-debug
6375
display none
6476

6577
.demo-control

packages/dingus/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,13 @@
1111
"repository": "accordproject/markdown-transform",
1212
"license": "Apache-2.0",
1313
"scripts": {
14-
"demo": "node scripts/build_demo.js"
14+
"dingus": "node scripts/build_dingus.js"
1515
},
1616
"files": [],
1717
"dependencies": {},
1818
"devDependencies": {
1919
"@accordproject/markdown-it-template": "0.12.2",
20+
"@accordproject/markdown-template": "0.12.2",
2021
"autoprefixer-stylus": "^0.14.0",
2122
"browserify": "^16.3.0",
2223
"highlight.js": "^10.0.3",
File renamed without changes.

packages/markdown-template/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
*/
2121

2222
module.exports.util = require('./lib/util');
23+
module.exports.templatemarkutil = require('./lib/templatemarkutil');
2324
module.exports.datetimeutil = require('./lib/datetimeutil');
2425
module.exports.normalizeNLs = require('./lib/normalize').normalizeNLs;
2526
module.exports.ParserManager = require('./lib/parsermanager');

0 commit comments

Comments
 (0)