@goodfellow-cms/admin 0.9.0 → 0.10.0
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/dist/{admin-text-sources-BTZJPlVK.js → admin-text-sources-B1CoPEu6.js} +1 -1
- package/dist/{custom-font-faces-DJ2AF2oN.js → custom-font-faces-DCan2jgW.js} +2 -2
- package/dist/editor.js +3 -3
- package/dist/{entry-values-FcVgwQkJ.js → entry-values-CAPB0igb.js} +8 -8
- package/dist/{es-ChxY0KVH.js → es-Z-QY8sdc.js} +144 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1332 -227
- package/dist/plugin.js +1 -1
- package/dist/{strings-CWaRN_0v.d.ts → strings-Bd9r6qQn.d.ts} +144 -1
- package/dist/{strings-D94noZrv.js → strings-CgC6pd6k.js} +144 -1
- package/dist/text.d.ts +1 -1
- package/dist/text.js +2 -2
- package/package.json +6 -6
- package/styles.css +23 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MAX_UPLOAD_BYTES, MEDIA_DIR, addressPatternFor, checkEntrySlug, checkPageAddress, cleanEntryValues, codeFileChanges, collectionFileChange, collectionFileChange as collectionFileChange$1, customCssFileChange, deleteCollectionChanges, deleteSyncedBlockChanges, duplicatePageData, entryFileChange, entryFileChange as entryFileChange$1, entryLanguage, entryPathIn, entryTitle, extensionOf, fileName as fileName$1, itemLinkRemovalChanges, layoutFileChange, linkedItems, markdownToHtml, mediaFileChange, mediaKind, mediaKind as mediaKind$1, menusFileChange, moveEntryChanges, movePageChanges, newCollectionSettings, newPageData, pageFileChange, pageTitle as pageTitle$1, redirectsFileChange, relinkSite, relinkedChanges, siteSettingsFileChange, slugify, storedCss, storedData, storedEntryFields, storedMediaUrl, syncedBlockFileChange, trimChars, uniqueName, updateSettingsFileChange, uploadName, withoutMediaDetails } from "@goodfellow-cms/core";
|
|
1
|
+
import { MAX_UPLOAD_BYTES as MAX_UPLOAD_BYTES$1, MEDIA_DIR, addressPatternFor, checkEntrySlug, checkPageAddress, cleanEntryValues, codeFileChanges, collectionFileChange, collectionFileChange as collectionFileChange$1, customCssFileChange, deleteCollectionChanges, deleteSyncedBlockChanges, duplicatePageData, entryFileChange, entryFileChange as entryFileChange$1, entryLanguage, entryPathIn, entryTitle, extensionOf, fileName as fileName$1, itemLinkRemovalChanges, layoutFileChange, linkedItems, markdownToHtml, mediaFileChange, mediaKind, mediaKind as mediaKind$1, menusFileChange, moveEntryChanges, movePageChanges, newCollectionSettings, newPageData, pageFileChange, pageTitle as pageTitle$1, redirectsFileChange, relinkSite, relinkedChanges, siteSettingsFileChange, slugify, storedCss, storedData, storedEntryFields, storedMediaUrl, syncedBlockFileChange, trimChars, uniqueName, updateSettingsFileChange, uploadName, withoutMediaDetails } from "@goodfellow-cms/core";
|
|
2
2
|
import TurndownService from "turndown";
|
|
3
3
|
import { gfm } from "turndown-plugin-gfm";
|
|
4
4
|
//#region src/markdown-text.ts
|
|
@@ -523,4 +523,4 @@ function installCustomFonts(doc, fonts, read) {
|
|
|
523
523
|
}
|
|
524
524
|
}
|
|
525
525
|
//#endregion
|
|
526
|
-
export { formattedHtml as $, duplicatePageData as A, pageFileChange as B, checkPageAddress as C, customCssFileChange as D, collectionSettingsChanges as E, menusFileChange as F, storedCss as G, redirectsFileChange as H, moveEntryChanges as I, syncedBlockFileChange as J, storedData as K, movePageChanges as L, itemLinkRemovalChanges as M, layoutFileChange as N, deleteCollectionChanges as O, mediaFileChange as P, editedMarkdown as Q, newCollectionSettings as R, checkEntrySlug as S, collectionFileChange$1 as T, siteSettingsFileChange as U, pageTitle$1 as V, slugify as W, updateSettingsFileChange as X, uniqueName as Y, withoutMediaDetails as Z, mediaUrl as _, showMediaInPreview as a, uploadName as b, MAX_UPLOAD_BYTES as c, extensionOf as d, fileName$1 as f, mediaPath as g, mediaKind$1 as h, mediaType as i, entryFileChange$1 as j, deleteSyncedBlockChanges as k, MEDIA_URL_PREFIX as l, isStoredMedia as m, PLUGIN_READY_MESSAGE as n, CONNECT_MESSAGE as o, formatSize as p, storedEntryFields as q, createMediaPreviews as r, createChannel as s, installCustomFonts as t, allMedia as u, mediaUsage as v, codeFileChanges as w, addressPatternFor as x, siteImages as y, newPageData as z };
|
|
526
|
+
export { formattedHtml as $, duplicatePageData as A, pageFileChange as B, checkPageAddress as C, customCssFileChange as D, collectionSettingsChanges as E, menusFileChange as F, storedCss as G, redirectsFileChange as H, moveEntryChanges as I, syncedBlockFileChange as J, storedData as K, movePageChanges as L, itemLinkRemovalChanges as M, layoutFileChange as N, deleteCollectionChanges as O, mediaFileChange as P, editedMarkdown as Q, newCollectionSettings as R, checkEntrySlug as S, collectionFileChange$1 as T, siteSettingsFileChange as U, pageTitle$1 as V, slugify as W, updateSettingsFileChange as X, uniqueName as Y, withoutMediaDetails as Z, mediaUrl as _, showMediaInPreview as a, uploadName as b, MAX_UPLOAD_BYTES$1 as c, extensionOf as d, fileName$1 as f, mediaPath as g, mediaKind$1 as h, mediaType as i, entryFileChange$1 as j, deleteSyncedBlockChanges as k, MEDIA_URL_PREFIX as l, isStoredMedia as m, PLUGIN_READY_MESSAGE as n, CONNECT_MESSAGE as o, formatSize as p, storedEntryFields as q, createMediaPreviews as r, createChannel as s, installCustomFonts as t, allMedia as u, mediaUsage as v, codeFileChanges as w, addressPatternFor as x, siteImages as y, newPageData as z };
|
package/dist/editor.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { $ as formattedHtml, K as storedData, Q as editedMarkdown, _ as mediaUrl, a as showMediaInPreview, q as storedEntryFields, r as createMediaPreviews, s as createChannel, t as installCustomFonts } from "./custom-font-faces-
|
|
2
|
-
import { C as MediaChoiceContext, D as MediaThumb, G as isForwardedShortcut, H as READY_MESSAGE, J as shortcutFor, K as isTyping, X as SETTINGS_SECTIONS, c as AdminContext, f as useSiteContent, g as useDarkMode, i as usePreviewStyles, lt as Button, m as setThemeChoice, ot as EditorTextContext, rt as syncedBlockEditorHref, s as withBlocksInPlace, st as useEditorText, t as SCHEDULE_PROP, u as useAdmin, w as MediaChooser, y as ScheduleFields, yt as findPage } from "./entry-values-
|
|
3
|
-
import { i as useStrings, t as StringsProvider } from "./strings-
|
|
1
|
+
import { $ as formattedHtml, K as storedData, Q as editedMarkdown, _ as mediaUrl, a as showMediaInPreview, q as storedEntryFields, r as createMediaPreviews, s as createChannel, t as installCustomFonts } from "./custom-font-faces-DCan2jgW.js";
|
|
2
|
+
import { C as MediaChoiceContext, D as MediaThumb, G as isForwardedShortcut, H as READY_MESSAGE, J as shortcutFor, K as isTyping, X as SETTINGS_SECTIONS, c as AdminContext, f as useSiteContent, g as useDarkMode, i as usePreviewStyles, lt as Button, m as setThemeChoice, ot as EditorTextContext, rt as syncedBlockEditorHref, s as withBlocksInPlace, st as useEditorText, t as SCHEDULE_PROP, u as useAdmin, w as MediaChooser, y as ScheduleFields, yt as findPage } from "./entry-values-CAPB0igb.js";
|
|
3
|
+
import { i as useStrings, t as StringsProvider } from "./strings-CgC6pd6k.js";
|
|
4
4
|
import { COLOR_SCHEME_ATTRIBUTE, DEFAULT_THEME_COLORS, DRAWN_SLOT_ELEMENT, FONT_SIZES, MEDIA_DIR, MINIMUM_CONTRAST, RADII, SCREEN_SIZES, SIDES, SPACING_STEPS, SYNCED_BLOCK, SYNCED_BLOCK_PROP, TEXT_ALIGNS, THEME_COLORS, WEEKDAYS, allPages, canFormatMarkdown, cleanEventValue, colorSlug, contentInLanguage, contrastRatio, customFonts, customLength, datePart, describedIn, entryTitle, escapeCellText, escapeStyleText, expandSyncedBlocks, findEntry, findSyncedBlock, focusPosition, formatDate, formatOccurrence, getPageHead, googleFontsUrl, hasLanguages, isAllDay, isCustomColor, isEventLike, isOwnersOnlyField, isSafeUrl, languageHome, languageLinks, mainLanguage, neverIndexed, pageLinks, pageView, pathLanguage, readBlockStyle, renderedProblems, shownOccurrence, sitePages, syncedBlockIn, tableCellHtml, themeColorOf, themeToCss, todayIn, wallClock, weekdayName, weekdayOf, withBlockStyle } from "@goodfellow-cms/core";
|
|
5
5
|
import { Box } from "lucide-react";
|
|
6
6
|
import { createContext, createElement, useCallback, useContext, useEffect, useId, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as mediaFileChange, U as siteSettingsFileChange, V as pageTitle$1, Z as withoutMediaDetails, _ as mediaUrl, a as showMediaInPreview, b as uploadName, c as MAX_UPLOAD_BYTES, d as extensionOf, f as fileName$1, g as mediaPath, h as mediaKind$1, i as mediaType, l as MEDIA_URL_PREFIX, m as isStoredMedia, o as CONNECT_MESSAGE, p as formatSize, r as createMediaPreviews, s as createChannel, t as installCustomFonts, u as allMedia, v as mediaUsage } from "./custom-font-faces-
|
|
2
|
-
import { i as useStrings, r as useStringTable, t as StringsProvider } from "./strings-
|
|
1
|
+
import { P as mediaFileChange, U as siteSettingsFileChange, V as pageTitle$1, Z as withoutMediaDetails, _ as mediaUrl, a as showMediaInPreview, b as uploadName, c as MAX_UPLOAD_BYTES$1, d as extensionOf, f as fileName$1, g as mediaPath, h as mediaKind$1, i as mediaType, l as MEDIA_URL_PREFIX, m as isStoredMedia, o as CONNECT_MESSAGE, p as formatSize, r as createMediaPreviews, s as createChannel, t as installCustomFonts, u as allMedia, v as mediaUsage } from "./custom-font-faces-DCan2jgW.js";
|
|
2
|
+
import { i as useStrings, r as useStringTable, t as StringsProvider } from "./strings-CgC6pd6k.js";
|
|
3
3
|
import { APP_API_HEADER, COLOR_SCHEME_ATTRIBUTE, ConflictError, DraftError, FOOTER_FILE, GOODFELLOW_REGISTRY, HEADER_FILE, MAX_DESCRIPTION_LENGTH, MAX_TAG_LENGTH, MEDIA_DIR, MENUS_FILE, PluginTaskError, REDIRECTS_FILE, SHADCN_NAMESPACE, SHADCN_REGISTRY, SITE_FILE, SVG_NAMESPACE, ScheduledBuildsError, SignInError, TASK_INPUT_LIMIT, adminOrigin, allPages, checkSite, cleanTags, cleanedSvgAttribute, cssWithoutOutsideAddresses, customFonts, describedConfig, entryTitle, escapeStyleText, fileName, goodfellowRegistryUrl, googleFontsUrl, hasTag, isDemoStore, isSafeFontFile, isStorableAddress, keepsSvgElement, keptDrafts, limitsFor, loadSiteContent, mayChangeEntry, mayChangeLayout, mayChangeMedia, mayChangeMenus, mayChangePage, mediaDetailsOf, mediaStorageFileChange, mediaTags, memoryKeeper, newDraftName, newTaskRequestId, openTaskAnswer, outsideHost, outsideLimits, pageTitle, pluginFrameUrl, pluginMayList, pluginMayUse, publishProblems, reviewersFor, scheduleOf, scheduleProblem, scheduleState, siteLanguages, storedMediaUrl, syncedBlockUses, taskKeys, themeToCss, todayIn, upcomingChanges, wallClock, withStoredFiles, withoutImageDetails, writeChanges } from "@goodfellow-cms/core";
|
|
4
4
|
import { Info } from "lucide-react";
|
|
5
5
|
import { createContext, useCallback, useContext, useEffect, useId, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
|
|
@@ -2404,7 +2404,7 @@ async function prepared(file, maxBytes) {
|
|
|
2404
2404
|
}
|
|
2405
2405
|
/** Checks a file chosen for upload and gets it ready: photos made web-sized, SVGs made safe. */
|
|
2406
2406
|
async function prepareUpload(file) {
|
|
2407
|
-
const blob = await prepared(file, MAX_UPLOAD_BYTES);
|
|
2407
|
+
const blob = await prepared(file, MAX_UPLOAD_BYTES$1);
|
|
2408
2408
|
return {
|
|
2409
2409
|
name: file.name,
|
|
2410
2410
|
bytes: new Uint8Array(await blob.arrayBuffer()),
|
|
@@ -2612,7 +2612,7 @@ function useUploadMedia() {
|
|
|
2612
2612
|
const problem = await storageReady(t, client, tasks);
|
|
2613
2613
|
if (problem) return problem;
|
|
2614
2614
|
const { plugin } = client;
|
|
2615
|
-
const maxBytes = plugin.mediaStorage?.maxBytes ?? MAX_UPLOAD_BYTES;
|
|
2615
|
+
const maxBytes = plugin.mediaStorage?.maxBytes ?? MAX_UPLOAD_BYTES$1;
|
|
2616
2616
|
const taken = allMedia(content, media).map(fileName$1);
|
|
2617
2617
|
const added = {};
|
|
2618
2618
|
const batch = [];
|
|
@@ -2998,7 +2998,7 @@ function MoveBackDialog({ plugin, onClose }) {
|
|
|
2998
2998
|
const [problem, setProblem] = useState();
|
|
2999
2999
|
const [failure, setFailure] = useState(null);
|
|
3000
3000
|
const files = Object.entries(storage?.files ?? {});
|
|
3001
|
-
const large = files.filter(([, file]) => file.size > MAX_UPLOAD_BYTES).map(([url]) => fileName$1(url));
|
|
3001
|
+
const large = files.filter(([, file]) => file.size > MAX_UPLOAD_BYTES$1).map(([url]) => fileName$1(url));
|
|
3002
3002
|
const moveBack = async () => {
|
|
3003
3003
|
if (!storage) return;
|
|
3004
3004
|
setBusy(true);
|
|
@@ -3009,7 +3009,7 @@ function MoveBackDialog({ plugin, onClose }) {
|
|
|
3009
3009
|
for (const [url, file] of files) {
|
|
3010
3010
|
const path = mediaPath(url);
|
|
3011
3011
|
const from = storedMediaUrl(storage, url);
|
|
3012
|
-
if (!path || !from || file.size > MAX_UPLOAD_BYTES) continue;
|
|
3012
|
+
if (!path || !from || file.size > MAX_UPLOAD_BYTES$1) continue;
|
|
3013
3013
|
try {
|
|
3014
3014
|
const response = await fetch(from, { cache: "no-store" });
|
|
3015
3015
|
if (!response.ok) throw new Error(`${response.status} ${response.statusText}`);
|
|
@@ -3641,7 +3641,7 @@ function pluginSecretsHelp(place, plugin, t) {
|
|
|
3641
3641
|
* Goodfellow package is released with the same version, so where a build
|
|
3642
3642
|
* bundled the admin panel's source without saying, it's core's.
|
|
3643
3643
|
*/
|
|
3644
|
-
const REGISTRY_VERSION = "0.
|
|
3644
|
+
const REGISTRY_VERSION = "0.10.0";
|
|
3645
3645
|
//#endregion
|
|
3646
3646
|
//#region src/schedule.tsx
|
|
3647
3647
|
/** The computer's own time zone, which a site without one takes when something is first scheduled. */
|
|
@@ -4009,7 +4009,7 @@ function AdminProvider({ site, frames, store, account, preview, siteUrl, registr
|
|
|
4009
4009
|
const mediaPreviews = useMemo(() => createMediaPreviews(content, siteUrl, () => storage.current), [content, siteUrl]);
|
|
4010
4010
|
const outOfReach = registry !== void 0 || atAdminAddress(site.admin) || site.broker !== void 0;
|
|
4011
4011
|
const registries = useMemo(() => ({
|
|
4012
|
-
[GOODFELLOW_REGISTRY]: registry ?? goodfellowRegistryUrl("0.
|
|
4012
|
+
[GOODFELLOW_REGISTRY]: registry ?? goodfellowRegistryUrl("0.10.0"),
|
|
4013
4013
|
...outOfReach && {
|
|
4014
4014
|
[SHADCN_NAMESPACE]: SHADCN_REGISTRY,
|
|
4015
4015
|
...site.registries
|
|
@@ -958,6 +958,58 @@ const spanish = {
|
|
|
958
958
|
"security.broker.stop": "Dejar de usar la página de inicio de sesión",
|
|
959
959
|
"security.broker.stopMessage": "Dejar de iniciar sesión en {address}",
|
|
960
960
|
"security.broker.stopBody": "Cuando el sitio se haya generado, se volverá a iniciar sesión en el propio panel de administración, que guarda las sesiones donde las páginas del sitio podrían alcanzarlas, y allí no se pueden añadir bloques de catálogos distintos del de Goodfellow.",
|
|
961
|
+
"domain.signInSettings": "Ajustes de inicio de sesión",
|
|
962
|
+
"signInSetup.service.title": "Iniciar sesión con {host}",
|
|
963
|
+
"signInSetup.app.title": "Iniciar sesión con {host}",
|
|
964
|
+
"signInSetup.error": "No se pudo publicar el ajuste de inicio de sesión.",
|
|
965
|
+
"signInSetup.remove": "Dejar de usarlo",
|
|
966
|
+
"signInSetup.contentOnly": "La configuración de este sitio se guarda con su código, que esta sesión no puede publicar. Un desarrollador ejecuta esto en la carpeta del código y luego publica el cambio:",
|
|
967
|
+
"signInSetup.handWritten": "La configuración del sitio indica dónde se guarda el sitio de una forma que esta pantalla no puede cambiar. Un desarrollador añade {key} a su línea backend a mano.",
|
|
968
|
+
"signInSetup.copy": "Copiar",
|
|
969
|
+
"signInSetup.copied": "Copiado",
|
|
970
|
+
"signInSetup.or": "o",
|
|
971
|
+
"signInSetup.service.using": "Se puede elegir Iniciar sesión con GitHub, a través del servicio de inicio de sesión en {address}. Los cambios se ven cuando el sitio se haya generado.",
|
|
972
|
+
"signInSetup.service.message": "Iniciar sesión con GitHub a través de {address}",
|
|
973
|
+
"signInSetup.service.removeMessage": "Dejar de iniciar sesión a través de {address}",
|
|
974
|
+
"signInSetup.service.intro": "Sin un servicio de inicio de sesión, se inicia sesión con un token. Con uno, se elige Iniciar sesión con GitHub. Funciona gratis en tu propia cuenta de Cloudflare, no guarda nada y se configura desde el navegador:",
|
|
975
|
+
"signInSetup.service.step.deploy": "Ponlo en línea con el botón de Cloudflare, que lo copia en tu cuenta de GitHub y lo despliega:",
|
|
976
|
+
"signInSetup.service.deploy": "Deploy to Cloudflare",
|
|
977
|
+
"signInSetup.service.step.setup": "Abre su dirección con /setup al final. Te pide un token de Cloudflare, creado desde un enlace que lo rellena, y las direcciones de tus sitios, y luego crea contigo sus dos GitHub Apps.",
|
|
978
|
+
"signInSetup.service.step.use": "Pon aquí su dirección y elige Usar este servicio de inicio de sesión.",
|
|
979
|
+
"signInSetup.service.more": "Cómo funciona el servicio de inicio de sesión",
|
|
980
|
+
"signInSetup.service.field": "La dirección del servicio de inicio de sesión",
|
|
981
|
+
"signInSetup.service.fieldHint": "Como https://sign-in.tu-nombre.workers.dev.",
|
|
982
|
+
"signInSetup.service.problem.invalid": "Tiene que ser una dirección https://, sin nada después del dominio.",
|
|
983
|
+
"signInSetup.service.problem.unset": "Ese servicio de inicio de sesión aún no está configurado. Termina primero su página de configuración, en su dirección con /setup al final.",
|
|
984
|
+
"signInSetup.service.problem.unreachable": "Nada respondió en esa dirección como servicio de inicio de sesión. Revisa la dirección y que el servicio esté desplegado.",
|
|
985
|
+
"signInSetup.service.use": "Usar este servicio de inicio de sesión",
|
|
986
|
+
"signInSetup.app.intro": "Sin esto, se inicia sesión con un token. Registra una vez el panel de administración en {host} y se podrá elegir Iniciar sesión con {host}. {host} no deja que otros sitios lo hagan por ti, así que se hace en el propio formulario de {host}, rellenado con estos valores:",
|
|
987
|
+
"signInSetup.app.noAddress": "Pon primero la dirección del sitio en General → Dirección del sitio: el formulario necesita la dirección del panel de administración.",
|
|
988
|
+
"signInSetup.app.name": "Nombre",
|
|
989
|
+
"signInSetup.app.on": "Se puede elegir Iniciar sesión con {host}. Los cambios se ven cuando el sitio se haya generado.",
|
|
990
|
+
"signInSetup.app.message": "Iniciar sesión con {host}",
|
|
991
|
+
"signInSetup.app.removeMessage": "Dejar de iniciar sesión con {host}",
|
|
992
|
+
"signInSetup.app.turnOn": "Activar Iniciar sesión con {host}",
|
|
993
|
+
"signInSetup.app.after": "Cuando el sitio se haya generado, cierra la sesión y elige Iniciar sesión con {host} para probarlo. Si {host} dice que la dirección no está permitida, comprueba que las direcciones de su formulario coinciden con las de arriba.",
|
|
994
|
+
"signInSetup.app.problem": "Eso no parece lo que muestra {host}. Cópialo de nuevo.",
|
|
995
|
+
"signInSetup.app.gitlab.open": "Abre el formulario de GitLab para una nueva aplicación,",
|
|
996
|
+
"signInSetup.app.gitlab.group": "en el grupo {group}",
|
|
997
|
+
"signInSetup.app.gitlab.own": "en tu propia cuenta",
|
|
998
|
+
"signInSetup.app.gitlab.fill": "Elige Add new application y rellénalo con esto:",
|
|
999
|
+
"signInSetup.app.gitlab.redirect": "Redirect URI",
|
|
1000
|
+
"signInSetup.app.gitlab.settings": "Desmarca Confidential, marca el ámbito api y elige Save application. Una aplicación del grupo sigue funcionando cuando alguien se va.",
|
|
1001
|
+
"signInSetup.app.gitlab.copyId": "Copia el Application ID que muestra GitLab (no el Secret, que no hace falta) y pégalo abajo.",
|
|
1002
|
+
"signInSetup.app.gitlab.field": "Application ID",
|
|
1003
|
+
"signInSetup.app.gitlab.keep": "Las redirect URIs de la aplicación necesitan todas las direcciones donde está el panel de administración: {addresses}.",
|
|
1004
|
+
"signInSetup.app.bitbucket.open": "Abre los OAuth consumers de Bitbucket del espacio de trabajo:",
|
|
1005
|
+
"signInSetup.app.bitbucket.consumers": "OAuth consumers de {workspace}",
|
|
1006
|
+
"signInSetup.app.bitbucket.fill": "Elige Add consumer y rellénalo con esto:",
|
|
1007
|
+
"signInSetup.app.bitbucket.callback": "Callback URL",
|
|
1008
|
+
"signInSetup.app.bitbucket.permissions": "Permisos",
|
|
1009
|
+
"signInSetup.app.bitbucket.settings": "Deja sin marcar This is a private consumer, marca esos permisos y elige Save.",
|
|
1010
|
+
"signInSetup.app.bitbucket.copyId": "Abre el consumer, copia su Key (no el Secret, que no hace falta) y pégala abajo.",
|
|
1011
|
+
"signInSetup.app.bitbucket.field": "Key",
|
|
1012
|
+
"signInSetup.app.bitbucket.keep": "La callback URL del consumer tiene que ser donde está el panel de administración: {addresses}.",
|
|
961
1013
|
"broker.elsewhere": "En este sitio se inicia sesión en su propia página de inicio de sesión, que guarda tu sesión donde las páginas del sitio no pueden alcanzarla, y muestra el panel de administración desde allí.",
|
|
962
1014
|
"broker.open": "Ir a la página de inicio de sesión",
|
|
963
1015
|
"broker.invalid": "Los ajustes del sitio indican una página de inicio de sesión cuya dirección no es propia, así que el panel de administración no puede abrirse. Pide a quien se ocupe del código que corrija la dirección del intermediario en goodfellow.config.tsx.",
|
|
@@ -1090,7 +1142,7 @@ const spanish = {
|
|
|
1090
1142
|
"comments.error.no-category": "Las Discussions de ese proyecto todavía no tienen categorías. Abre sus Discussions en GitHub una vez y vuelve a intentarlo.",
|
|
1091
1143
|
"comments.error.other": "Algo ha fallado en GitHub. Vuelve a intentarlo dentro de un momento.",
|
|
1092
1144
|
"comments.error.fix": "Abrirlo en GitHub",
|
|
1093
|
-
"settings.tab.import": "Importar",
|
|
1145
|
+
"settings.tab.import": "Importar / Exportar",
|
|
1094
1146
|
"settings.tab.themes": "Temas",
|
|
1095
1147
|
"plugins.notFound": "El sitio no tiene ninguna pantalla de complemento en esta dirección.",
|
|
1096
1148
|
"plugins.failed": "La pantalla de {plugin} no se pudo abrir. Si sigue pasando, puede que el complemento necesite actualizarse.",
|
|
@@ -1441,6 +1493,97 @@ const spanish = {
|
|
|
1441
1493
|
"export.note.redirects": "Las redirecciones no están en el archivo, porque WordPress necesita un plugin para ellas: {count}.",
|
|
1442
1494
|
"export.note.noAddress": "El sitio todavía no tiene dirección, así que WordPress no puede copiar su contenido multimedia. Indícala en la pestaña General y vuelve a descargar el archivo.",
|
|
1443
1495
|
"export.note.layout": "El encabezado y el pie no están en el archivo. El tema de WordPress muestra los suyos, con los menús.",
|
|
1496
|
+
"markdownExport.title": "Exportar como Markdown",
|
|
1497
|
+
"markdownExport.intro": "Descarga las páginas y los elementos de las colecciones del sitio como archivos Markdown, con la biblioteca de medios, para usarlos con otras herramientas de sitios web como Hugo, Jekyll, Eleventy o Astro, con aplicaciones de notas como Obsidian o con herramientas de IA.",
|
|
1498
|
+
"markdownExport.limits": "Markdown guarda el texto, los títulos, las listas, los enlaces, las imágenes y las tablas. No se exportan el diseño, los colores y las fuentes del sitio, el encabezado y el pie, ni bloques como formularios, calendarios y listas de elementos. Para guardarlo todo, usa Descargar una copia en la pestaña Historial del sitio.",
|
|
1499
|
+
"markdownExport.stored": "Los medios guardados en tu servicio de almacenamiento no están en la descarga: las páginas los enlazan donde están guardados.",
|
|
1500
|
+
"markdownExport.links": "Enlaces entre páginas",
|
|
1501
|
+
"markdownExport.links.site": "Como direcciones del sitio, como /about/ (para herramientas de sitios web)",
|
|
1502
|
+
"markdownExport.links.files": "Como enlaces a los archivos, como about.md (para aplicaciones de notas)",
|
|
1503
|
+
"markdownExport.scheduled": "Exportar también las páginas y elementos que aún no se muestran o ya no se muestran, marcados como borradores",
|
|
1504
|
+
"markdownExport.download": "Descargar los archivos Markdown",
|
|
1505
|
+
"markdownExport.working": "Añadiendo archivos a la descarga: {done} de {total}",
|
|
1506
|
+
"markdownExport.done": "Se descargaron los archivos Markdown.",
|
|
1507
|
+
"markdownExport.error": "No se pudieron crear los archivos Markdown.",
|
|
1508
|
+
"markdownExport.summary.items": "Elementos de colecciones: {count}",
|
|
1509
|
+
"markdownExport.summary.media": "Archivos de medios: {count}",
|
|
1510
|
+
"markdownExport.note.leftOutBlock": "Markdown no puede contener el bloque {name}, así que se omitió: {items}.",
|
|
1511
|
+
"markdownExport.note.scheduledLeftOut": "No se muestran ahora, por su programación, así que se omitieron: {items}. Marca la casilla de arriba para incluirlos como borradores.",
|
|
1512
|
+
"markdownExport.note.scheduledIncluded": "No se muestran ahora, por su programación, así que están marcados como borradores: {items}.",
|
|
1513
|
+
"markdownExport.note.noPages": "Estas colecciones no tienen páginas propias, así que sus elementos están en carpetas que empiezan por _: {collections}.",
|
|
1514
|
+
"markdownExport.note.templates": "No se exportaron los diseños de página de estas colecciones: cada elemento es solo sus datos y su texto. {collections}.",
|
|
1515
|
+
"markdownExport.note.redirects": "Las redirecciones que no van a una página exportada no están en los archivos: {count}.",
|
|
1516
|
+
"markdownExport.note.layout": "El encabezado y el pie no están en los archivos. Los menús sí, en menus.json.",
|
|
1517
|
+
"siteTransfer.export.title": "Exportar para otro sitio de Goodfellow",
|
|
1518
|
+
"siteTransfer.export.intro": "Descarga las páginas, colecciones, bloques sincronizados, menús, ajustes y archivos multimedia de este sitio en un solo archivo zip, tal como se guardan, para importarlos en otro sitio de Goodfellow sin perder nada. Es el mismo archivo que crea Descargar una copia en Historial del sitio.",
|
|
1519
|
+
"siteTransfer.export.stored": "Los archivos multimedia que guarda tu servicio de almacenamiento no están en el archivo. Las páginas del otro sitio enlazan a donde se guardan.",
|
|
1520
|
+
"siteTransfer.export.button": "Descargar para otro sitio de Goodfellow",
|
|
1521
|
+
"siteTransfer.export.working": "Creando el archivo: {done} de {total} archivos…",
|
|
1522
|
+
"siteTransfer.export.error": "No se pudo crear el archivo. Revisa tu conexión e inténtalo de nuevo.",
|
|
1523
|
+
"siteTransfer.import.title": "Importar desde otro sitio de Goodfellow",
|
|
1524
|
+
"siteTransfer.import.intro": "Trae un archivo creado con Exportar para otro sitio de Goodfellow, o con Descargar una copia. Las páginas, colecciones y archivos multimedia llegan tal como estaban.",
|
|
1525
|
+
"siteTransfer.import.file": "Archivo del otro sitio",
|
|
1526
|
+
"siteTransfer.import.fileHint": "Un archivo .zip. Verás lo que trae antes de publicar nada.",
|
|
1527
|
+
"siteTransfer.import.reading": "Leyendo el archivo…",
|
|
1528
|
+
"siteTransfer.import.ready": "Listo para importar {title}.",
|
|
1529
|
+
"siteTransfer.import.mode": "Cómo traerlo",
|
|
1530
|
+
"siteTransfer.import.mode.add": "Añadir a este sitio: conservar el contenido de este sitio y traer lo que no tiene",
|
|
1531
|
+
"siteTransfer.import.mode.replace": "Reemplazar el contenido de este sitio por el del otro sitio",
|
|
1532
|
+
"siteTransfer.import.replaceWarning": "Al importar se quita todo lo que este sitio tiene y el otro no: páginas, colecciones, archivos multimedia y ajustes. Los límites de los editores, los ajustes de actualización, el almacenamiento multimedia y la dirección del sitio se quedan como están. Puedes volver atrás en Historial del sitio.",
|
|
1533
|
+
"siteTransfer.import.also": "Traer también",
|
|
1534
|
+
"siteTransfer.import.menus": "Menús (los del otro sitio reemplazan a los que tengan el mismo nombre)",
|
|
1535
|
+
"siteTransfer.import.settings": "Ajustes del sitio, colores y fuentes, CSS y código personalizados, y los idiomas del panel de administración",
|
|
1536
|
+
"siteTransfer.import.layout": "El encabezado y el pie",
|
|
1537
|
+
"siteTransfer.import.redirects": "Las redirecciones que este sitio no tiene",
|
|
1538
|
+
"siteTransfer.import.blocks": "Bloques que este sitio no tiene",
|
|
1539
|
+
"siteTransfer.import.install": "Añadir {title} desde el registro de bloques de Goodfellow, para que lo que lo usa llegue tal como está",
|
|
1540
|
+
"siteTransfer.import.installHint": "Añadir un bloque cambia el código del sitio, así que el editor lo ofrece cuando el sitio se ha vuelto a construir.",
|
|
1541
|
+
"siteTransfer.import.withoutBlocks": "Traer lo que usa bloques que este sitio no tiene, sin esos bloques",
|
|
1542
|
+
"siteTransfer.import.conflicts": "Los dos sitios tienen esto, de forma distinta",
|
|
1543
|
+
"siteTransfer.import.conflictsHint": "Se conserva la versión de este sitio, a menos que elijas la del otro sitio.",
|
|
1544
|
+
"siteTransfer.import.useTheirs": "Usar la del otro sitio: {what}",
|
|
1545
|
+
"siteTransfer.import.useAllTheirs": "Usar la del otro sitio en todo",
|
|
1546
|
+
"siteTransfer.import.useAllMine": "Conservar la de este sitio en todo",
|
|
1547
|
+
"siteTransfer.import.another": "Elegir otro archivo",
|
|
1548
|
+
"siteTransfer.import.done": "Se importó {title}.",
|
|
1549
|
+
"siteTransfer.import.message": "Importar {title} desde otro sitio de Goodfellow",
|
|
1550
|
+
"siteTransfer.conflict.page": "la página {name} ({detail})",
|
|
1551
|
+
"siteTransfer.conflict.item": "{name} en {detail}",
|
|
1552
|
+
"siteTransfer.conflict.collection": "la colección {name}, cuyos campos son distintos (se reemplazan sus elementos en este sitio)",
|
|
1553
|
+
"siteTransfer.conflict.syncedBlock": "el bloque sincronizado {name}",
|
|
1554
|
+
"siteTransfer.conflict.media": "el archivo multimedia {name}",
|
|
1555
|
+
"siteTransfer.summary.pages": "Páginas: {count}",
|
|
1556
|
+
"siteTransfer.summary.items": "Elementos de colecciones: {count}",
|
|
1557
|
+
"siteTransfer.summary.collections": "Colecciones nuevas: {count}",
|
|
1558
|
+
"siteTransfer.summary.syncedBlocks": "Bloques sincronizados: {count}",
|
|
1559
|
+
"siteTransfer.summary.media": "Archivos multimedia: {count}",
|
|
1560
|
+
"siteTransfer.summary.removed": "Archivos que se quitan: {count}",
|
|
1561
|
+
"siteTransfer.summary.menus": "Menús",
|
|
1562
|
+
"siteTransfer.summary.settings": "Ajustes del sitio",
|
|
1563
|
+
"siteTransfer.summary.layout": "El encabezado y el pie",
|
|
1564
|
+
"siteTransfer.summary.redirects": "Redirecciones",
|
|
1565
|
+
"siteTransfer.summary.nothing": "No hay nada que traer: este sitio ya tiene todo lo que elegiste, tal como está en el archivo.",
|
|
1566
|
+
"siteTransfer.note.missingBlock": "{name} no es uno de los bloques de este sitio. Se usa en {items}.",
|
|
1567
|
+
"siteTransfer.note.leftOut": "Se dejan fuera porque usan bloques que este sitio no tiene: {items}.",
|
|
1568
|
+
"siteTransfer.note.withoutBlocks": "Se traen sin los bloques que este sitio no tiene: {items}.",
|
|
1569
|
+
"siteTransfer.note.taken": "Se dejan fuera porque este sitio tiene otra cosa en sus direcciones: {items}.",
|
|
1570
|
+
"siteTransfer.note.collectionDiffers": "{collections} de este sitio tiene otros campos, así que sus elementos del otro sitio se dejan fuera, a menos que elijas arriba la colección del otro sitio.",
|
|
1571
|
+
"siteTransfer.note.uncopied": "Se dejan fuera porque son demasiado grandes o no se pueden mostrar con seguridad: {items}.",
|
|
1572
|
+
"siteTransfer.note.stored": "Los archivos multimedia que guarda el servicio de almacenamiento del otro sitio no están en el archivo: {count}. Las páginas enlazan a donde se guardan.",
|
|
1573
|
+
"siteTransfer.note.storedMerged": "Los archivos multimedia que guarda el almacenamiento del otro sitio se añaden al almacenamiento de este sitio, que es el mismo: {count}.",
|
|
1574
|
+
"siteTransfer.note.languages": "Los idiomas del otro sitio se añaden a los Ajustes del sitio, para que sus páginas en ellos funcionen: {codes}.",
|
|
1575
|
+
"siteTransfer.note.plugins": "El otro sitio usaba complementos que este sitio no tiene: {names}. Añádelos en Complementos si los necesitas.",
|
|
1576
|
+
"siteTransfer.note.code": "Llega código personalizado. Se ejecuta en todas las páginas, así que revísalo antes.",
|
|
1577
|
+
"siteTransfer.note.kept": "Se queda como lo tiene este sitio: {things}.",
|
|
1578
|
+
"siteTransfer.kept.address": "la dirección del sitio",
|
|
1579
|
+
"siteTransfer.kept.limits": "los límites de los editores",
|
|
1580
|
+
"siteTransfer.kept.updates": "los ajustes de actualización",
|
|
1581
|
+
"siteTransfer.kept.storage": "el almacenamiento multimedia",
|
|
1582
|
+
"siteTransfer.error.notASite": "Este archivo no es de un sitio de Goodfellow. Elige un archivo creado con Exportar para otro sitio de Goodfellow o Descargar una copia.",
|
|
1583
|
+
"siteTransfer.error.newer": "Este archivo se creó con una versión más reciente de Goodfellow. Actualiza este sitio en la pantalla de Actualizaciones e inténtalo de nuevo.",
|
|
1584
|
+
"siteTransfer.error.invalid": "Parte del contenido del archivo no se puede leer, así que no se puede importar.",
|
|
1585
|
+
"siteTransfer.error.other": "No se pudo leer el archivo.",
|
|
1586
|
+
"siteTransfer.error.blocks": "No se pudieron añadir los bloques desde el registro de bloques de Goodfellow. Revisa tu conexión e inténtalo de nuevo.",
|
|
1444
1587
|
"updates.intro": "Goodfellow, el programa con el que funciona el sitio, recibe correcciones y versiones nuevas. Las correcciones se instalan solas cada noche, y solo después de comprobar que el sitio sigue generándose con ellas.",
|
|
1445
1588
|
"updates.contentOnly": "El código de este sitio se guarda aparte de su contenido, así que las actualizaciones de Goodfellow se instalan donde está el código, con la propia configuración del sitio o por quien se ocupe de él.",
|
|
1446
1589
|
"updates.code": "El código de este sitio se guarda aparte de su contenido, en {place}, donde se instalan las actualizaciones de Goodfellow.",
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as Strings, r as defaultStrings, t as StringKey } from "./strings-
|
|
1
|
+
import { n as Strings, r as defaultStrings, t as StringKey } from "./strings-Bd9r6qQn.js";
|
|
2
2
|
import { AdminSite, ContentStore, GitHost, PluginTasks, SignInError } from "@goodfellow-cms/core";
|
|
3
3
|
import "react";
|
|
4
4
|
import "@goodfellow-cms/react";
|