ether-code 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli/compiler.js +6 -6
- package/cli/ether.js +67 -6
- package/i18n/i18n-css.json +1 -1
- package/i18n/i18n-html.json +2 -2
- package/i18n/i18n-js.json +4 -4
- package/i18n/i18n-sql.json +2 -2
- package/package.json +2 -2
package/cli/compiler.js
CHANGED
|
@@ -212,8 +212,8 @@ class EtherCompiler {
|
|
|
212
212
|
inferTargetFromContent(content) {
|
|
213
213
|
const patterns = {
|
|
214
214
|
html: [
|
|
215
|
-
/\b(page|document|entête|corps|section|div|paragraphe|titre|lien|image|formulaire|bouton)\b/i,
|
|
216
|
-
/\b(balise|élément|attribut)\b/i
|
|
215
|
+
/\b(page|document|entête|entete|corps|section|div|paragraphe|titre|lien|image|formulaire|bouton)\b/i,
|
|
216
|
+
/\b(balise|élément|element|attribut)\b/i
|
|
217
217
|
],
|
|
218
218
|
css: [
|
|
219
219
|
/\b(style|couleur|taille|marge|bordure|fond|police|largeur|hauteur)\s*[:=]/i,
|
|
@@ -222,7 +222,7 @@ class EtherCompiler {
|
|
|
222
222
|
],
|
|
223
223
|
js: [
|
|
224
224
|
/\b(fonction|variable|constante|si|sinon|pour|tant que|retourner)\b/i,
|
|
225
|
-
/\b(classe|méthode|constructeur)\b/i,
|
|
225
|
+
/\b(classe|méthode|methode|constructeur)\b/i,
|
|
226
226
|
/=>\s*\{/
|
|
227
227
|
],
|
|
228
228
|
php: [
|
|
@@ -230,7 +230,7 @@ class EtherCompiler {
|
|
|
230
230
|
/\$\w+/
|
|
231
231
|
],
|
|
232
232
|
sql: [
|
|
233
|
-
/\b(sélectionner|insérer|mettre à jour|supprimer|créer table|depuis|
|
|
233
|
+
/\b(sélectionner|selectionner|insérer|inserer|mettre à jour|mettre a jour|supprimer|créer table|creer table|depuis|où|ou)\b/i,
|
|
234
234
|
/\b(SELECT|INSERT|UPDATE|DELETE|CREATE|FROM|WHERE)\b/i
|
|
235
235
|
],
|
|
236
236
|
python: [
|
|
@@ -238,7 +238,7 @@ class EtherCompiler {
|
|
|
238
238
|
/:\s*$/m
|
|
239
239
|
],
|
|
240
240
|
react: [
|
|
241
|
-
/\b(composant|état|effet|props|rendu)\b/i,
|
|
241
|
+
/\b(composant|état|etat|effet|props|rendu)\b/i,
|
|
242
242
|
/<[\w]+[^>]*\/>/
|
|
243
243
|
],
|
|
244
244
|
graphql: [
|
|
@@ -295,4 +295,4 @@ class EtherCompiler {
|
|
|
295
295
|
}
|
|
296
296
|
}
|
|
297
297
|
|
|
298
|
-
module.exports = { EtherCompiler, GENERATORS, TARGET_EXTENSIONS }
|
|
298
|
+
module.exports = { EtherCompiler, GENERATORS, TARGET_EXTENSIONS }
|
package/cli/ether.js
CHANGED
|
@@ -146,11 +146,23 @@ async function cmdInit() {
|
|
|
146
146
|
fs.mkdirSync(srcDir, { recursive: true })
|
|
147
147
|
logSuccess('Dossier src/ créé')
|
|
148
148
|
}
|
|
149
|
-
|
|
150
|
-
const
|
|
151
|
-
if (!fs.existsSync(
|
|
152
|
-
fs.mkdirSync(
|
|
153
|
-
logSuccess('Dossier
|
|
149
|
+
|
|
150
|
+
const publicDir = path.join(cwd, 'public')
|
|
151
|
+
if (!fs.existsSync(publicDir)) {
|
|
152
|
+
fs.mkdirSync(publicDir, { recursive: true })
|
|
153
|
+
logSuccess('Dossier public/ créé')
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
const imagesDir = path.join(publicDir, 'images')
|
|
157
|
+
if (!fs.existsSync(imagesDir)) {
|
|
158
|
+
fs.mkdirSync(imagesDir, { recursive: true })
|
|
159
|
+
logSuccess('Dossier public/images/ créé')
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
const videosDir = path.join(publicDir, 'videos')
|
|
163
|
+
if (!fs.existsSync(videosDir)) {
|
|
164
|
+
fs.mkdirSync(videosDir, { recursive: true })
|
|
165
|
+
logSuccess('Dossier public/videos/ créé')
|
|
154
166
|
}
|
|
155
167
|
|
|
156
168
|
const configContent = `module.exports = {
|
|
@@ -188,6 +200,28 @@ async function cmdInit() {
|
|
|
188
200
|
logWarning('ether.config.js existe déjà')
|
|
189
201
|
}
|
|
190
202
|
|
|
203
|
+
const projectName = path.basename(cwd)
|
|
204
|
+
const packageJson = {
|
|
205
|
+
name: projectName,
|
|
206
|
+
version: "1.0.0",
|
|
207
|
+
description: "Projet Ether",
|
|
208
|
+
scripts: {
|
|
209
|
+
dev: "ether dev",
|
|
210
|
+
build: "ether build",
|
|
211
|
+
check: "ether check"
|
|
212
|
+
},
|
|
213
|
+
keywords: ["ether"],
|
|
214
|
+
license: "MIT"
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
const packagePath = path.join(cwd, 'package.json')
|
|
218
|
+
if (!fs.existsSync(packagePath)) {
|
|
219
|
+
fs.writeFileSync(packagePath, JSON.stringify(packageJson, null, 2))
|
|
220
|
+
logSuccess('Fichier package.json créé')
|
|
221
|
+
} else {
|
|
222
|
+
logWarning('package.json existe déjà')
|
|
223
|
+
}
|
|
224
|
+
|
|
191
225
|
const exampleEth = `// Exemple de fichier Ether
|
|
192
226
|
// Cible: html
|
|
193
227
|
|
|
@@ -230,6 +264,7 @@ async function cmdBuild(options) {
|
|
|
230
264
|
const config = loadConfig(options.config)
|
|
231
265
|
const srcDir = path.resolve(process.cwd(), config.src)
|
|
232
266
|
const outDir = path.resolve(process.cwd(), options.output || config.out)
|
|
267
|
+
const publicDir = path.resolve(process.cwd(), config.public || 'public')
|
|
233
268
|
|
|
234
269
|
if (!fs.existsSync(srcDir)) {
|
|
235
270
|
logError(`Dossier source introuvable: ${srcDir}`)
|
|
@@ -240,6 +275,13 @@ async function cmdBuild(options) {
|
|
|
240
275
|
fs.mkdirSync(outDir, { recursive: true })
|
|
241
276
|
}
|
|
242
277
|
|
|
278
|
+
if (fs.existsSync(publicDir)) {
|
|
279
|
+
copyDir(publicDir, outDir)
|
|
280
|
+
if (!options.quiet) {
|
|
281
|
+
logSuccess('Dossier public/ copié vers dist/')
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
|
|
243
285
|
const compiler = new EtherCompiler(config)
|
|
244
286
|
|
|
245
287
|
const files = findEthFiles(srcDir)
|
|
@@ -450,6 +492,25 @@ function findEthFiles(dir) {
|
|
|
450
492
|
return files
|
|
451
493
|
}
|
|
452
494
|
|
|
495
|
+
function copyDir(src, dest) {
|
|
496
|
+
if (!fs.existsSync(dest)) {
|
|
497
|
+
fs.mkdirSync(dest, { recursive: true })
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
const entries = fs.readdirSync(src, { withFileTypes: true })
|
|
501
|
+
|
|
502
|
+
for (const entry of entries) {
|
|
503
|
+
const srcPath = path.join(src, entry.name)
|
|
504
|
+
const destPath = path.join(dest, entry.name)
|
|
505
|
+
|
|
506
|
+
if (entry.isDirectory()) {
|
|
507
|
+
copyDir(srcPath, destPath)
|
|
508
|
+
} else {
|
|
509
|
+
fs.copyFileSync(srcPath, destPath)
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
|
|
453
514
|
function parseArgs(args) {
|
|
454
515
|
const options = {
|
|
455
516
|
command: null,
|
|
@@ -529,4 +590,4 @@ async function main() {
|
|
|
529
590
|
main().catch(err => {
|
|
530
591
|
logError(err.message)
|
|
531
592
|
process.exit(1)
|
|
532
|
-
})
|
|
593
|
+
})
|
package/i18n/i18n-css.json
CHANGED
|
@@ -557,7 +557,7 @@
|
|
|
557
557
|
"comparators": {
|
|
558
558
|
"plusGrandQue": { "fr": "plus grand que", "en": "greater than", "es": "mayor que", "ru": "больше чем", "zh": "大于", "ja": "より大ãã„" },
|
|
559
559
|
"plusPetitQue": { "fr": "plus petit que", "en": "less than", "es": "menor que", "ru": "меньше чем", "zh": "å°äºŽ", "ja": "よりå°ã•ã„" },
|
|
560
|
-
"egalA": { "fr": "égal
|
|
560
|
+
"egalA": { "fr": "égal à", "en": "equal to", "es": "igual a", "ru": "равно", "zh": "ç‰äºŽ", "ja": "ç‰ã—ã„" },
|
|
561
561
|
"auMoins": { "fr": "au moins", "en": "at least", "es": "al menos", "ru": "не менее", "zh": "至少", "ja": "以上" },
|
|
562
562
|
"auPlus": { "fr": "au plus", "en": "at most", "es": "como mucho", "ru": "не более", "zh": "至多", "ja": "以下" }
|
|
563
563
|
},
|
package/i18n/i18n-html.json
CHANGED
|
@@ -538,8 +538,8 @@
|
|
|
538
538
|
|
|
539
539
|
"entities": {
|
|
540
540
|
"espaceInsecable": { "fr": "espace insécable", "en": "non-breaking space", "es": "espacio irrompible", "ru": "неразрывный пробел", "zh": "䏿¢è¡Œç©ºæ ¼", "ja": "ノーブレークスペース", "html": " " },
|
|
541
|
-
"inferieurA": { "fr": "inférieur
|
|
542
|
-
"superieurA": { "fr": "supérieur
|
|
541
|
+
"inferieurA": { "fr": "inférieur à", "en": "less than", "es": "menor que", "ru": "меньше", "zh": "å°äºŽ", "ja": "å°ãªã‚Š", "html": "<" },
|
|
542
|
+
"superieurA": { "fr": "supérieur à", "en": "greater than", "es": "mayor que", "ru": "больше", "zh": "大于", "ja": "大ãªã‚Š", "html": ">" },
|
|
543
543
|
"esperluette": { "fr": "esperluette", "en": "ampersand", "es": "ampersand", "ru": "амперÑанд", "zh": "å’Œå·", "ja": "アンパサンド", "html": "&" },
|
|
544
544
|
"guillemet": { "fr": "guillemet", "en": "quotation mark", "es": "comillas", "ru": "кавычка", "zh": "引å·", "ja": "引用符", "html": """ },
|
|
545
545
|
"apostrophe": { "fr": "apostrophe", "en": "apostrophe", "es": "apóstrofo", "ru": "апоÑтроф", "zh": "æ’‡å·", "ja": "ã‚¢ãƒã‚¹ãƒˆãƒãƒ•ã‚£", "html": "'" },
|
package/i18n/i18n-js.json
CHANGED
|
@@ -1331,7 +1331,7 @@
|
|
|
1331
1331
|
"ja": "イズアレイ"
|
|
1332
1332
|
},
|
|
1333
1333
|
"a": {
|
|
1334
|
-
"fr": "
|
|
1334
|
+
"fr": "à",
|
|
1335
1335
|
"en": "at",
|
|
1336
1336
|
"es": "en",
|
|
1337
1337
|
"ru": "по",
|
|
@@ -1381,7 +1381,7 @@
|
|
|
1381
1381
|
"ja": "レングス"
|
|
1382
1382
|
},
|
|
1383
1383
|
"caractereA": {
|
|
1384
|
-
"fr": "caractère
|
|
1384
|
+
"fr": "caractère à",
|
|
1385
1385
|
"en": "char at",
|
|
1386
1386
|
"es": "carácter en",
|
|
1387
1387
|
"ru": "Ñимвол по",
|
|
@@ -1389,7 +1389,7 @@
|
|
|
1389
1389
|
"ja": "ã‚ャラアット"
|
|
1390
1390
|
},
|
|
1391
1391
|
"codeCaractereA": {
|
|
1392
|
-
"fr": "code caractère
|
|
1392
|
+
"fr": "code caractère à",
|
|
1393
1393
|
"en": "char code at",
|
|
1394
1394
|
"es": "código carácter en",
|
|
1395
1395
|
"ru": "код Ñимвола по",
|
|
@@ -1581,7 +1581,7 @@
|
|
|
1581
1581
|
"ja": "トリムエンド"
|
|
1582
1582
|
},
|
|
1583
1583
|
"a": {
|
|
1584
|
-
"fr": "
|
|
1584
|
+
"fr": "à",
|
|
1585
1585
|
"en": "at",
|
|
1586
1586
|
"es": "en",
|
|
1587
1587
|
"ru": "по",
|
package/i18n/i18n-sql.json
CHANGED
|
@@ -2624,7 +2624,7 @@
|
|
|
2624
2624
|
"ja": "使用"
|
|
2625
2625
|
},
|
|
2626
2626
|
"aSql": {
|
|
2627
|
-
"fr": "
|
|
2627
|
+
"fr": "à",
|
|
2628
2628
|
"en": "to",
|
|
2629
2629
|
"es": "a",
|
|
2630
2630
|
"ru": "к",
|
|
@@ -2760,7 +2760,7 @@
|
|
|
2760
2760
|
"ja": "ãƒãƒ¼ãƒ«å†…"
|
|
2761
2761
|
},
|
|
2762
2762
|
"appartientA": {
|
|
2763
|
-
"fr": "appartient
|
|
2763
|
+
"fr": "appartient à",
|
|
2764
2764
|
"en": "member of",
|
|
2765
2765
|
"es": "miembro de",
|
|
2766
2766
|
"ru": "член",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ether-code",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Ether - Le langage intentionnel",
|
|
5
5
|
"main": "cli/compiler.js",
|
|
6
6
|
"bin": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"french",
|
|
21
21
|
"multilingual"
|
|
22
22
|
],
|
|
23
|
-
"author": "
|
|
23
|
+
"author": "Stéphane LEGRAND",
|
|
24
24
|
"license": "MIT",
|
|
25
25
|
"repository": {
|
|
26
26
|
"type": "git",
|