diff --git a/koa/renderer.js b/koa/renderer.js index 72b6f17..15c237c 100644 --- a/koa/renderer.js +++ b/koa/renderer.js @@ -72,7 +72,7 @@ module.exports = class Renderer { pack(name, ext) { this.readVersions(); - + let versionName = this.versions[name]; // e.g style = [ style.js, style.js.map, style.css, style.css.map ] @@ -112,6 +112,8 @@ module.exports = class Renderer { locals.env = config.env; + locals.tutorialEdit = config.env.TUTORIAL_EDIT + locals.urlBase = config.urlBase; locals.urlBaseProduction = config.urlBaseProduction; diff --git a/markit/plugins/imgFigures.js b/markit/plugins/imgFigures.js index ce968df..c092838 100755 --- a/markit/plugins/imgFigures.js +++ b/markit/plugins/imgFigures.js @@ -8,6 +8,7 @@ const parseAttrs = require('../utils/parseAttrs'); const tokenUtils = require('../utils/token'); +const escapeHtml = require('escape-html'); function imgFigures(state) { @@ -75,10 +76,34 @@ module.exports = function(md) { `; } - return `
+ let figureAttrs = { + style: '' + }; + + let imageDivAttrs = { + style: `width:${width}px;` + }; + + let code = tokenUtils.attrGet(token, 'code'); + if (code) { + let [codeShiftX, codeShiftY] = code.split(':').map(Number); + figureAttrs.style += `position: relative; padding-bottom: calc(${height}px - (22px + ${codeShiftY*20}px));`; + imageDivAttrs.style += `position: absolute; z-index: 1; bottom: calc(-22px + -${codeShiftY*20}px); left: ${codeShiftX}em;`; + // console.log('code', code); + } + + return `
${img}
`; }; }; + +function renderAttrsObj(attrs) { + let result = ''; + for (let key in attrs) { + result += ' ' + escapeHtml(key) + '="' + escapeHtml(attrs[key]) + '"'; + } + return result; +} \ No newline at end of file