explicai 0.2.0 → 0.2.1

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/CHANGELOG.md CHANGED
@@ -6,6 +6,18 @@ All notable changes to Explicaí Studio are listed here, in Portuguese first wit
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.2.1] - 2026-11-03
10
+
11
+ ### Corrigido
12
+
13
+ - Aparência: com Sistema marcado, o painel diz se o tema valendo agora é claro ou escuro.
14
+ - Editor: imagem colada ou solta acompanha o texto digitado durante o envio e entra no ponto certo, sem erro quando a página encolhe.
15
+ - CLI: `--version` mostra a versão, e opção desconhecida mostra o uso em vez de um erro do Node.
16
+
17
+ ### English summary
18
+
19
+ An image pasted while you type now lands in the right place. With System selected, the Appearance panel says which theme is active. `--version` works, and an unknown CLI option shows the usage instead of a Node error.
20
+
9
21
  ## [0.2.0] - 2026-11-03
10
22
 
11
23
  A 0.1.0 foi a primeira versão do Studio; este bloco reúne o que entrou desde a tag `v0.1.0`.
@@ -13,7 +25,7 @@ A 0.1.0 foi a primeira versão do Studio; este bloco reúne o que entrou desde a
13
25
  ### Adicionado
14
26
 
15
27
  - Exportação: fontes empacotadas (Archivo, Atkinson Hyperlegible Next, Inter, Source Sans 3, Source Serif 4, Lora, Montserrat, Playfair Display e JetBrains Mono, todas OFL) que vão junto do HTML exportado, e escolha da fonte do texto e dos títulos no diálogo e pela barra do editor.
16
- - Exportação: tema do manual com cor do texto, dos títulos por nível, de realce e de destaque, com o nome de cada cor, e logo do cliente na capa (enviado e retirado no diálogo de exportação, limite de 2 MB).
28
+ - Exportação: tema do manual com cor do texto, dos títulos por nível, de realce e de destaque, com o nome de cada cor, e logo do cliente na capa (enviado e retirado no diálogo de exportação, limite de 1 MB).
17
29
  - Exportação: o diálogo mostra a etapa, o resultado e o erro com nova tentativa; "Exportar manual" foi para o fim do topo, à direita.
18
30
  - Editor: cor do texto com paleta fixa e nome de cada cor, também pelo teclado e na barra fixa; barra flutuante na seleção com o tipo do bloco, formatação e cor.
19
31
  - Editor: bloco de alerta (salvo como alerta GFM, exportado com rótulo em texto e cor por tipo), menu `/` com blocos agrupados e prévia, controles de linha e coluna direto na tabela, botão "Colar print" com Ctrl+V visível, barra de formatação rolável no celular.
@@ -68,5 +80,6 @@ A 0.1.0 foi a primeira versão do Studio; este bloco reúne o que entrou desde a
68
80
 
69
81
  New since 0.1.0: bundled OFL fonts and font choice for exports, manual theme colors and client logo, alert blocks, text colors with names, a floating selection toolbar, a richer `/` menu, table row and column controls, annotation shortcuts, full-screen error pages, translated errors, GitHub Actions CI and a much larger test suite. New: warning instead of overwrite when a page changed on disk outside the Studio. Image tools: hide sensitive data (solid bar or strong blur burned into the pixels), display size (small, medium, wide), crop with annotations remapped, and resolution/weight reduction. Fixes cover autosave races, per-folder write queue, atomic exports, unused-image cleanup and many editor and accessibility details. Security: symlinks that leave the manual folder are refused, CSP on `/files/`, same-port `Origin` check. The npm package no longer ships source maps.
70
82
 
71
- [Unreleased]: https://github.com/gabriel-codesampaio/explicai-studio/compare/v0.2.0...HEAD
83
+ [Unreleased]: https://github.com/gabriel-codesampaio/explicai-studio/compare/v0.2.1...HEAD
84
+ [0.2.1]: https://github.com/gabriel-codesampaio/explicai-studio/compare/v0.2.0...v0.2.1
72
85
  [0.2.0]: https://github.com/gabriel-codesampaio/explicai-studio/compare/v0.1.0...v0.2.0
package/dist/cli.js CHANGED
@@ -1,22 +1,41 @@
1
1
  #!/usr/bin/env node
2
2
  import { spawn } from "node:child_process";
3
+ import { readFileSync } from "node:fs";
3
4
  import { mkdir } from "node:fs/promises";
4
5
  import path from "node:path";
5
6
  import { fileURLToPath } from "node:url";
6
7
  import { parseArgs } from "node:util";
7
8
  import { createStudioServer } from "./server/index.js";
8
- const { values, positionals } = parseArgs({
9
- allowPositionals: true,
10
- options: {
11
- port: { type: "string", short: "p", default: "4321" },
12
- "no-open": { type: "boolean", default: false },
13
- help: { type: "boolean", short: "h", default: false },
14
- },
15
- });
16
- if (values.help) {
17
- console.log(`Uso: explicai [pasta] [--port 4321] [--no-open]
9
+ const USAGE = `Uso: explicai [pasta] [--port 4321] [--no-open] [--version]
18
10
 
19
- Abre o Explicaí Studio no navegador. Os manuais ficam em [pasta] (padrão: pasta atual).`);
11
+ Abre o Explicaí Studio no navegador. Os manuais ficam em [pasta] (padrão: pasta atual).`;
12
+ function parseCliArgs() {
13
+ try {
14
+ return parseArgs({
15
+ allowPositionals: true,
16
+ options: {
17
+ port: { type: "string", short: "p", default: "4321" },
18
+ "no-open": { type: "boolean", default: false },
19
+ help: { type: "boolean", short: "h", default: false },
20
+ version: { type: "boolean", short: "v", default: false },
21
+ },
22
+ });
23
+ }
24
+ catch {
25
+ console.error(`Opção inválida.
26
+
27
+ ${USAGE}`);
28
+ process.exit(1);
29
+ }
30
+ }
31
+ const { values, positionals } = parseCliArgs();
32
+ if (values.help) {
33
+ console.log(USAGE);
34
+ process.exit(0);
35
+ }
36
+ if (values.version) {
37
+ const pkg = new URL("../package.json", import.meta.url);
38
+ console.log(JSON.parse(readFileSync(pkg, "utf8")).version);
20
39
  process.exit(0);
21
40
  }
22
41
  const workspace = path.resolve(positionals[0] ?? ".");