Skip to content

Commit

Permalink
🗺️ keymap dosyalarını birim okuma anında işle
Browse files Browse the repository at this point in the history
  • Loading branch information
KimlikDAO-bot committed Dec 4, 2023
1 parent e111355 commit 1cc66b1
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 10 deletions.
16 changes: 8 additions & 8 deletions birimler/hasher.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,21 @@ import { copyFile, open, readFile, } from "fs/promises";
import path from "path";
import process from "process";

/** @const {!Array<string>} */
let args = process.argv.slice(2).reverse();
/** @const {string} */
const mapFilePath = args.pop();
const mapFilePath = process.argv[2];
/** @const {!Array<string>} */
let args = process.argv.slice(3);

const mapFile = await open(mapFilePath, 'a+');
/** @type {boolean} */
let compress = true;

if (args[args.length - 1] === '--nocompress') {
compress = false;
args.pop();
}

for (let fileName of args) {
if (fileName == "--nocompress") {
compress = false;
continue;
}

const parts = path.parse(fileName);
const hash = createHash('sha256')
.update(await readFile(fileName))
Expand Down
45 changes: 43 additions & 2 deletions birimler/okuyucu.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,23 @@ const tagYaz = (ad, nitelikler, kapalı) => {
return html + (kapalı ? "/>" : ">");
}

/**
* Verilen keymap dosyasını okur ve haritaya yerleştirir.
*
* @param {string} dosyaAdı keymap dosyasının adı
* @param {!Object<string, string>} harita değerlerin işleneceği harita
*/
const keymapOku = (dosyaAdı, harita) => {
try {
const dosya = readFileSync(dosyaAdı, "utf8");
for (const satır of dosya.split("\n")) {
if (!satır) continue;
const [key, val] = satır.split(" -> ");
harita[key] = val;
}
} catch (e) { }
}

/**
* @param {string} birimAdı
* @param {!Seçimler} seçimler
Expand All @@ -71,6 +88,8 @@ const birimOku = (birimAdı, seçimler, anaNitelikler) => {
const EN = seçimler.dil == "en";
/** @const {!Array<string>} */
const cssler = [];
/** @const {!Object<string, string>} */
const değiştirHaritası = {};
/** @type {string} */
let html = "";
/** @const {!Array<boolean>} */
Expand All @@ -97,7 +116,7 @@ const birimOku = (birimAdı, seçimler, anaNitelikler) => {
if (birimAdı.endsWith(".cjs")) {
const üreticiBirim = require("./" + seçimler.kök + birimAdı, "utf8");
return {
html: üreticiBirim.üret(değerler),
html: "" + üreticiBirim.üret(değerler),
cssler: [],
};
}
Expand Down Expand Up @@ -127,6 +146,18 @@ const birimOku = (birimAdı, seçimler, anaNitelikler) => {
let değiştirMetni = "";

for (const /** string */ nitelik in nitelikler) {
if (!seçimler.dev) {
/** @const {string} */
const değer = nitelikler[nitelik];
/**
* Niteliğin değeri `değiştirHaritası`nda varsa değerini değiştir.
*
* @const {string}
*/
const yeniDeğer = değiştirHaritası[değer.startsWith("/") ? değer : "/" + değer];
if (yeniDeğer) nitelikler[nitelik] = yeniDeğer;
}

if (nitelik.startsWith("data-remove-")) {
if (!seçimler.dev)
delete nitelikler[nitelik.slice("data-remove-".length)];
Expand Down Expand Up @@ -212,13 +243,18 @@ const birimOku = (birimAdı, seçimler, anaNitelikler) => {
const üreticiAdı =
`${birimAdı.slice(0, birimAdı.lastIndexOf("/"))}/${nitelikler["data-generate"]}.cjs`;
delete nitelikler["data-generate"];
const {
let {
html: üretilenHtml,
_
} = birimOku(üreticiAdı, değerler, nitelikler);
if (phantom) nitelikler["data-phantom"] = "";

if (üretilenHtml) {
if (!seçimler.dev)
üretilenHtml = üretilenHtml.replace(
new RegExp(Object.keys(değiştirHaritası).join('|'), 'g'),
(sol) => değiştirHaritası[sol] || sol
);
değiştirDerinliği = derinlik;
değiştirMetni = üretilenHtml;
}
Expand Down Expand Up @@ -289,6 +325,11 @@ const birimOku = (birimAdı, seçimler, anaNitelikler) => {
lowerCaseAttributeNames: false,
});

if (!seçimler.dev && birimAdı.endsWith(".html")) {
keymapOku(`${seçimler.kök}build/${birimAdı.slice(0, -5)}.keymap`, değiştirHaritası);
keymapOku(`${seçimler.kök}build/${birimAdı.slice(0, -5)}-${seçimler.dil}.keymap`, değiştirHaritası);
}

if (existsSync(seçimler.kök + birimAdı.slice(0, -4) + "css"))
cssler.push(birimAdı.slice(0, -4) + "css");
parser.end(readFileSync(seçimler.kök + birimAdı, "utf8"));
Expand Down
File renamed without changes.

0 comments on commit 1cc66b1

Please sign in to comment.