From 5e34074dc7ecf11da51f78cb51d70975245605de Mon Sep 17 00:00:00 2001 From: Pomax Date: Mon, 10 Aug 2020 08:59:08 -0700 Subject: [PATCH] don't regenerate images that already exist --- .../7fa216226582e3b0868e77b6fdfeee6d.png | Bin 0 -> 29174 bytes .../9ef58ed62e5e9f2fd67cc004b8560a3d.png | Bin 0 -> 16566 bytes .../a4bb3d892822ce42ec05c56ec437d22f.png | Bin 0 -> 13980 bytes images/chapters/control/lerp-cubic.png | Bin 16587 -> 0 bytes images/chapters/control/lerp-fifteenth.png | Bin 29265 -> 0 bytes images/chapters/control/lerp-quadratic.png | Bin 14008 -> 0 bytes images/chapters/explanation/circle.png | Bin 6482 -> 0 bytes .../fdea63696e525033c5ea74fa8f90009a.png | Bin 0 -> 6586 bytes .../8d7391688575c8c588ea741ada7b893e.png | Bin 0 -> 8807 bytes .../c0aa6126567320c80a3039a47edf994a.png | Bin 0 -> 10072 bytes images/chapters/introduction/cubic.png | Bin 9362 -> 0 bytes images/chapters/introduction/quadratic.png | Bin 8257 -> 0 bytes .../b2e7a2bc650cbed9d750e8afc40a1aa3.png | Bin 0 -> 30131 bytes images/chapters/whatis/interpolation.png | Bin 26498 -> 0 bytes index.html | 16 +-- ja-JP/index.html | 10 +- tools/build/graphics/generate-placeholders.js | 84 -------------- tools/build/markdown/convert-markdown.js | 2 +- .../generate-graphics-module.js | 0 .../markdown/preprocess-graphics-element.js | 106 +++++++++++++----- tools/build/process-locale.js | 9 +- zh-CN/index.html | 10 +- 22 files changed, 103 insertions(+), 134 deletions(-) create mode 100644 images/chapters/control/7fa216226582e3b0868e77b6fdfeee6d.png create mode 100644 images/chapters/control/9ef58ed62e5e9f2fd67cc004b8560a3d.png create mode 100644 images/chapters/control/a4bb3d892822ce42ec05c56ec437d22f.png delete mode 100644 images/chapters/control/lerp-cubic.png delete mode 100644 images/chapters/control/lerp-fifteenth.png delete mode 100644 images/chapters/control/lerp-quadratic.png delete mode 100644 images/chapters/explanation/circle.png create mode 100644 images/chapters/explanation/fdea63696e525033c5ea74fa8f90009a.png create mode 100644 images/chapters/introduction/8d7391688575c8c588ea741ada7b893e.png create mode 100644 images/chapters/introduction/c0aa6126567320c80a3039a47edf994a.png delete mode 100644 images/chapters/introduction/cubic.png delete mode 100644 images/chapters/introduction/quadratic.png create mode 100644 images/chapters/whatis/b2e7a2bc650cbed9d750e8afc40a1aa3.png delete mode 100644 images/chapters/whatis/interpolation.png delete mode 100644 tools/build/graphics/generate-placeholders.js rename tools/build/{graphics => markdown}/generate-graphics-module.js (100%) diff --git a/images/chapters/control/7fa216226582e3b0868e77b6fdfeee6d.png b/images/chapters/control/7fa216226582e3b0868e77b6fdfeee6d.png new file mode 100644 index 0000000000000000000000000000000000000000..643d66abbc99d6b3ed1183fbe6508d641209a84c GIT binary patch literal 29174 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 literal 0 HcmV?d00001 diff --git a/images/chapters/control/9ef58ed62e5e9f2fd67cc004b8560a3d.png b/images/chapters/control/9ef58ed62e5e9f2fd67cc004b8560a3d.png new file mode 100644 index 0000000000000000000000000000000000000000..104451e78008037c1ae9e557917203ebe9e605bb GIT binary patch literal 16566 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

vBUh zs}>C5u2AxVPw-r$oN3x;;t~>0=MyThD$^O^l)|DS_(;02>0H&mKQTAxk3Vd>WvHyI zL~y;?&RN^osG=2vu7Bi7BwHJIf-=7arvT}H8XVTWtO|Qk2x>*qfq|&l4C;;}l!wia z?p5Xsyl7_Q4^XVp3b@!FoQbnN8ibockKZReywNJvsOzA{UD2v>(vBi)!m z!=G*)ad(*>JC)v}dvVp=Myzf)5&AlnU# zkMH$-@j8~x1Y25K+U(88oI#0jt5|FQd-xIyH3I{Lg9EoxP0H4m_4@ic=1x^r6?c7o zy+46HWO!H>q{%&hez~C$onw@huXXRuO zsi`F3Hqo#ltDb=Y1`&~aPsp>g!=)5Xn~hS_8D@xdqT@1r2wdAJ`S5q}G&7Nl5i0W8 zNbHk|JM#g<1y1q?-M6Z})**z0g9B7zzQjC*9A=LP*Mqv_5zg>$fr-CbLRCy z{{AQ%0|}x-$-E`jm&%F^9o9PyqP zOA-X#uHdY+w4W{qwZBF(M71t-5qf%hB$K$JiZ$w)U9T+F)zuxrmRVZX+?D1lee((s zd>i)BE${+AlKd4Q6Tp3gn)>PG9lgXX8k9!Owc;>vTkCa2{4;PnW<4BE3Jw3-%^XJF sL!uWa7OwZUT#_8h{PO?1%ysM`bYQ`r;f<~iuA3o1g{6gx1++c?4{XrKlK=n! literal 0 HcmV?d00001 diff --git a/images/chapters/control/lerp-cubic.png b/images/chapters/control/lerp-cubic.png deleted file mode 100644 index 3718c4dcfbe5b92f06585da77c611ce473c56383..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16587 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 XsNwOUUOpq>nNT2cd9iX4L;wE+csTrU diff --git a/images/chapters/control/lerp-fifteenth.png b/images/chapters/control/lerp-fifteenth.png deleted file mode 100644 index aea55a9269cfe66ce76a9984ef9e32fe657f56df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29265 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 a%H~t&G{sX91u%++Bq=H;D7r(1zCl diff --git a/images/chapters/explanation/circle.png b/images/chapters/explanation/circle.png deleted file mode 100644 index 7871e85857cfa0194a2647209d24b376b6ebc35d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6482 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 diff --git a/images/chapters/explanation/fdea63696e525033c5ea74fa8f90009a.png b/images/chapters/explanation/fdea63696e525033c5ea74fa8f90009a.png new file mode 100644 index 0000000000000000000000000000000000000000..9ed3ba054c28ddc3068ec636de4789f72368ea02 GIT binary patch literal 6586 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 NXkXFOEK#?9_Fn~zPL2Qo literal 0 HcmV?d00001 diff --git a/images/chapters/introduction/8d7391688575c8c588ea741ada7b893e.png b/images/chapters/introduction/8d7391688575c8c588ea741ada7b893e.png new file mode 100644 index 0000000000000000000000000000000000000000..3aecf69ecfa2ba4db60de3bf9f6751677909d6d3 GIT binary patch literal 8807 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 literal 0 HcmV?d00001 diff --git a/images/chapters/introduction/cubic.png b/images/chapters/introduction/cubic.png deleted file mode 100644 index e642c3d545669d62965d1763620abe527ed9d80d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9362 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 diff --git a/images/chapters/introduction/quadratic.png b/images/chapters/introduction/quadratic.png deleted file mode 100644 index 45178ff80f13ad7c84f100f2b911c8ae153c7646..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8257 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 literal 0 HcmV?d00001 diff --git a/images/chapters/whatis/interpolation.png b/images/chapters/whatis/interpolation.png deleted file mode 100644 index 8c8cf36d891e0a4cc420fdf0a331fef466aec946..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26498 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 PU Scripts are disabled. Showing fallback image. @@ -515,7 +515,7 @@ Scripts are disabled. Showing fallback image. @@ -585,7 +585,7 @@ Scripts are disabled. Showing fallback image. @@ -711,7 +711,7 @@ Scripts are disabled. Showing fallback image. @@ -927,7 +927,7 @@ function Bezier(3,t): Scripts are disabled. Showing fallback image. @@ -943,7 +943,7 @@ function Bezier(3,t): Scripts are disabled. Showing fallback image. @@ -959,7 +959,7 @@ function Bezier(3,t): Scripts are disabled. Showing fallback image. @@ -1015,7 +1015,7 @@ function Bezier(3,t): Scripts are disabled. Showing fallback image. diff --git a/ja-JP/index.html b/ja-JP/index.html index ad3d121c..e691dd2d 100644 --- a/ja-JP/index.html +++ b/ja-JP/index.html @@ -419,7 +419,7 @@ Scripts are disabled. Showing fallback image. @@ -435,7 +435,7 @@ Scripts are disabled. Showing fallback image. @@ -487,7 +487,7 @@ Scripts are disabled. Showing fallback image. @@ -565,7 +565,7 @@ Scripts are disabled. Showing fallback image. @@ -743,7 +743,7 @@ function Bezier(3,t):

`; - - do { - pos = data.indexOf(startmark); - if (pos !== -1) { - let endpos = data.indexOf(endmark, pos) + endmark.length; - let key = `graphic${graphic++}`; - elements[key] = data.substring(pos, endpos - endmark.length); - data = `${data.slice(0, pos)}{{ ${key} }}${data.slice(endpos)}`; - } - } while (pos !== -1); - - const keys = Object.keys(elements); - const sourcePaths = keys.map( - (key) => elements[key].match(/src="([^"]+)"/)[1] - ); - - await Promise.all( - sourcePaths.map(async (srcPath, i) => { - try { - // Get the sketch code - const sourcePath = path.join(__root, srcPath); - let code; - try { - code = fs.readFileSync(sourcePath).toString(`utf8`); - } catch (e) { - console.log(srcPath, sourcePath); - throw e; - } - const width = elements[keys[i]].match(`width="([^"]+)"`)[1]; - const height = elements[keys[i]].match(`height="([^"]+)"`)[1]; - - // Convert this to a valid JS module code and write this to - // a temporary file so we can import it. - const nodeCode = generateGraphicsModule(code, width, height); - const fileName = `./nodecode.${Date.now()}.${Math.random()}.js`; - const tempFile = path.join(__dirname, fileName); - fs.writeFileSync(tempFile, nodeCode, `utf8`); - - // Import our entirely valid JS module, which will run the - // sketch code and export a canvas instance that we can turn - // into an actual image file. - const { canvas } = await import(fileName); - - fs.unlinkSync(tempFile); - - const dataURI = canvas.toDataURL(); - const start = dataURI.indexOf(`base64,`) + 7; - const imageData = Buffer.from(dataURI.substring(start), `base64`); - const destPath = path.join(__root, `images`, srcPath); - const filename = destPath.replace(`.js`, `.png`); - - // console.log(`Writing placeholder to ${filename}`); - fs.ensureDirSync(path.dirname(destPath)); - fs.writeFileSync(filename, imageData); - } catch (e) { - console.error(e); - } - }) - ); -} - -export { generatePlaceHolders }; diff --git a/tools/build/markdown/convert-markdown.js b/tools/build/markdown/convert-markdown.js index ff095db4..993a499f 100644 --- a/tools/build/markdown/convert-markdown.js +++ b/tools/build/markdown/convert-markdown.js @@ -9,7 +9,7 @@ nunjucks.configure(".", { autoescape: false }); * ...docs go here... */ async function convertMarkDown(chapter, localeStrings, markdown) { - markdown = preprocessGraphicsElement(chapter, localeStrings, markdown); + markdown = await preprocessGraphicsElement(chapter, localeStrings, markdown); // This yields the original markdown with all LaTeX blocked replaced with // uniquely named templating variables, referencing keys in the `latex` array. diff --git a/tools/build/graphics/generate-graphics-module.js b/tools/build/markdown/generate-graphics-module.js similarity index 100% rename from tools/build/graphics/generate-graphics-module.js rename to tools/build/markdown/generate-graphics-module.js diff --git a/tools/build/markdown/preprocess-graphics-element.js b/tools/build/markdown/preprocess-graphics-element.js index d1afaeda..c64e2596 100644 --- a/tools/build/markdown/preprocess-graphics-element.js +++ b/tools/build/markdown/preprocess-graphics-element.js @@ -1,9 +1,16 @@ +import fs from "fs-extra"; import path from "path"; +import { createHash } from "crypto"; +import { generateGraphicsModule } from "./generate-graphics-module.js"; + +const moduleURL = new URL(import.meta.url); +const __dirname = path.dirname(moduleURL.href.replace(`file:///`, ``)); +const __root = path.join(__dirname, `..`, `..`, `..`); /** * ...docs go here... */ -function preprocessGraphicsElement(chapter, localeStrings, markdown) { +async function preprocessGraphicsElement(chapter, localeStrings, markdown) { const translate = localeStrings.translate; let pos = -1, @@ -37,31 +44,31 @@ function preprocessGraphicsElement(chapter, localeStrings, markdown) { ); // Then add in the fallback code - updated = updated.replace( - /width="([^"]+)"\s+height="([^"]+)"\s+src="([^"]+)"\s*>/, - (_, width, height, src) => { - if (src.indexOf(`../`) === 0) src = `./chapters/${chapter}/${src}`; - else { - if (src[0] !== `.`) src = `./${src}`; - src = src.replace(`./`, `./chapters/${chapter}/`); - } - - // TODO: generate a fallback image here, since this is where we need - // to know what the code-hash is so we can properly link images. - - let imageHash = generateFallbackImage(src); - let img = path.join( - path.dirname(src.replace(`./`, `./images/`)), - `${imageHash}.png` - ); - - return `width="${width}" height="${height}" src="${src}"> - - - ${translate`disabledMessage`} - `; - } + const terms = updated.match( + /width="([^"]+)"\s+height="([^"]+)"\s+src="([^"]+)"\s*>/ ); + const [original, width, height] = terms; + + let src = terms[3]; + if (src.indexOf(`../`) === 0) src = `./chapters/${chapter}/${src}`; + else { + if (src[0] !== `.`) src = `./${src}`; + src = src.replace(`./`, `./chapters/${chapter}/`); + } + + let imageHash = await generateFallbackImage(src, width, height); // ← this is super fancy functionality. + let imgUrl = path.join( + path.dirname(src.replace(`./`, `./images/`)), + `${imageHash}.png` + ); + + const replacement = `width="${width}" height="${height}" src="${src}"> + + + ${translate`disabledMessage`} + `; + + updated = updated.replace(original, replacement); data = data.replace(slice, updated); pos += updated.length; } @@ -70,8 +77,53 @@ function preprocessGraphicsElement(chapter, localeStrings, markdown) { return data; } -function generateFallbackImage(src) { - return path.basename(src).replace(`.js`, ``); +/** + * + * @param {*} src + */ +async function generateFallbackImage(src, width, height) { + // Get the sketch code + const sourcePath = path.join(__root, src); + let code; + try { + code = fs.readFileSync(sourcePath).toString(`utf8`); + } catch (e) { + console.log(`could not read file "${sourcePath}".`); + throw e; + } + + // Do we need to even generate a file here? + const hash = createHash(`md5`).update(code).digest(`hex`); + const destPath = path.dirname(path.join(__root, `images`, src)); + const filename = path.join(destPath, `${hash}.png`); + if (fs.existsSync(filename)) return hash; + + // If we get here, we need to actually run the magic: convert + // this to a valid JS module code and write this to a temporary + // file so we can import it. + const nodeCode = generateGraphicsModule(code, width, height); + const fileName = `./nodecode.${Date.now()}.${Math.random()}.js`; + const tempFile = path.join(__dirname, fileName); + fs.writeFileSync(tempFile, nodeCode, `utf8`); + + // Then we import our entirely valid JS module, which will run + // the sketch code and export a canvas instance that we can + // turn into an actual image file. + const { canvas } = await import(fileName); + + fs.unlinkSync(tempFile); + + // The canvas runs setup() + draw() as part of the module load, so + // all we have to do now is get the image data and writ it to file. + const dataURI = canvas.toDataURL(); + const start = dataURI.indexOf(`base64,`) + 7; + const imageData = Buffer.from(dataURI.substring(start), `base64`); + + fs.ensureDirSync(path.dirname(destPath)); + fs.writeFileSync(filename, imageData); + console.log(`Generated fallback image for ${src}`); + + return hash; } export default preprocessGraphicsElement; diff --git a/tools/build/process-locale.js b/tools/build/process-locale.js index 07242ac0..caf7a358 100644 --- a/tools/build/process-locale.js +++ b/tools/build/process-locale.js @@ -1,7 +1,6 @@ import fs from "fs-extra"; import path from "path"; import { convertMarkDown } from "./markdown/convert-markdown.js"; -import { generatePlaceHolders } from "./graphics/generate-placeholders.js"; import nunjucks from "nunjucks"; import toc from "../../chapters/toc.js"; @@ -53,9 +52,11 @@ async function processLocale(locale, localeStrings, chapterFiles) { localeFiles.map(async (file) => { const chapter = file.match(/chapters\/([^/]+)\/content./)[1]; const markdown = fs.readFileSync(file).toString("utf8"); - const converted = await convertMarkDown(chapter, localeStrings, markdown); - chapters[chapter] = converted; - generatePlaceHolders(localeStrings, converted); // ← this is super fancy functionality. + chapters[chapter] = await convertMarkDown( + chapter, + localeStrings, + markdown + ); }) ); diff --git a/zh-CN/index.html b/zh-CN/index.html index 436d2393..ed481930 100644 --- a/zh-CN/index.html +++ b/zh-CN/index.html @@ -408,7 +408,7 @@ Scripts are disabled. Showing fallback image. @@ -424,7 +424,7 @@ Scripts are disabled. Showing fallback image. @@ -472,7 +472,7 @@ Scripts are disabled. Showing fallback image. @@ -548,7 +548,7 @@ Scripts are disabled. Showing fallback image. @@ -724,7 +724,7 @@ function Bezier(3,t):