From a5d894b84a887d2854b77add884e638ca8215d21 Mon Sep 17 00:00:00 2001 From: He4eT Date: Fri, 27 Aug 2021 17:59:49 +0500 Subject: [PATCH] Preview generator: generating a preview by layer number --- Makefile | 15 ++++++++++++--- preview_generator/parts/rows.js | 12 +++++++++++- preview_generator/preview_generator.js | 14 ++++++++------ 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index 3fdf4bb..080962b 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,6 @@ +# Flashing the keyboard: +# make flash + qmk_dir = qmk_firmware keyboard = handwired/dactyl_manuform/5x6 @@ -22,14 +25,20 @@ flash: @make qmk_flash @make keymap_clean +# Creating layer previews: +# make preview[_copy] [layer=number] + +layer = -1 preview_cmd = node \ ./preview_generator/preview_generator.js \ - "${PWD}/keymap/keymap.c" + "${PWD}/keymap/keymap.c" \ + "$(layer)" preview: @${preview_cmd} -preview_and_copy: +preview_copy: @${preview_cmd} | xclip -sel clipboard - @echo 'Copied to the clipboard! Paste it in the "Raw data" tab:' + @echo 'The layout has been copied to the clipboard!' + @echo 'Paste it into the "Raw Data" tab here:' @echo 'http://www.keyboard-layout-editor.com/' diff --git a/preview_generator/parts/rows.js b/preview_generator/parts/rows.js index cb41356..4bb9fc5 100644 --- a/preview_generator/parts/rows.js +++ b/preview_generator/parts/rows.js @@ -1,4 +1,5 @@ const HALVES_GAP = 5 +const NUMBER_OF_ROWS = 8 const row = (keys, start, gapOffset) => [ {x: start}, @@ -15,13 +16,22 @@ const row4 = (keys, rowIndex) => ({ 5: row(keys, 4, 0), 6: row(keys, 6, -4), 7: row(keys, 6, -4), -}[rowIndex % 8]) +}[rowIndex % NUMBER_OF_ROWS]) const buildRow = (keys, rowIndex) => ({ 12: row12(keys), 4: row4(keys, rowIndex) }[keys.length] || ['Oh no...']) +const layerRange = layerIndex => + layerIndex === -1 + ? [] + : Array(2) + .fill(layerIndex) + .map((x, i) => x + i) + .map(x => x * NUMBER_OF_ROWS) + module.exports = { + layerRange, buildRow } diff --git a/preview_generator/preview_generator.js b/preview_generator/preview_generator.js index 3112b13..1001803 100644 --- a/preview_generator/preview_generator.js +++ b/preview_generator/preview_generator.js @@ -5,26 +5,28 @@ const fs = require('fs') -const {buildRow} = require('./parts/rows') +const {buildRow, layerRange} = require('./parts/rows') const {cleanKeys, printLegends} = require('./parts/keys') -const keymapToKLERawData = fileContent => +const keymapToKLERawData = (fileContent, layerIndex) => fileContent .split('\n') .map(row => row.split(',')) .filter(keys => keys.length > 1) + .slice(...layerRange(layerIndex)) .map(cleanKeys) .map(printLegends) .map(buildRow) .map(JSON.stringify) - // .slice(0, 8) - // .slice(8, 16) - // .slice(16) .join(',\n') +/* */ + const keymapFilePath = process.argv[2] +const layerIndex = Number(process.argv[3]) + const fileContent = fs.readFileSync(keymapFilePath, 'utf8') -const rawData = keymapToKLERawData(fileContent) +const rawData = keymapToKLERawData(fileContent, layerIndex) console.log(rawData)