Skip to content

Commit

Permalink
refactor: content and sidebar
Browse files Browse the repository at this point in the history
  • Loading branch information
enzonotario committed Dec 6, 2023
1 parent 4cc8a8b commit 7dcbdf4
Show file tree
Hide file tree
Showing 10 changed files with 157 additions and 206 deletions.
92 changes: 57 additions & 35 deletions src/.vitepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,62 +20,81 @@ export default async () => {

const defaultSidebar = [
{
text: 'Introducción',
text: 'Empezando',
items: [
{ text: '¿Por qué usar EsJS?', link: '/guia/por-que-usar-esjs' },
{ text: 'Empezando', link: '/guia/empezando' },
{
items: [
{ text: 'Introducción', link: '/introduccion' },
{ text: 'Primeros pasos', link: '/primeros-pasos' },
],
},
],
},

{
text: 'Guía EsJS',
items: [
{ text: 'Introducción', link: '/guia/introduccion' },
{ text: 'Gramática y Tipos', link: '/guia/gramatica-y-tipos' },
{ text: 'Control del flujo y manejo de errores', link: '/guia/control-del-flujo-y-manejo-de-errores' },
{ text: 'Bucles e iteración', link: '/guia/bucles-e-iteracion' },
{ text: 'Funciones', link: '/guia/funciones' },
{ text: 'Expresiones y operadores', link: '/guia/expresiones-y-operadores' },
{ text: 'Números y fechas', link: '/guia/numeros-y-fechas' },
{ text: 'Formato de texto', link: '/guia/formato-de-texto' },
{
items: [
{ text: 'Gramática y Tipos', link: '/guia/gramatica-y-tipos' },
{ text: 'Control del flujo y manejo de errores', link: '/guia/control-del-flujo-y-manejo-de-errores' },
{ text: 'Bucles e iteración', link: '/guia/bucles-e-iteracion' },
{ text: 'Funciones', link: '/guia/funciones' },
{ text: 'Expresiones y operadores', link: '/guia/expresiones-y-operadores' },
{ text: 'Números y fechas', link: '/guia/numeros-y-fechas' },
{ text: 'Formato de texto', link: '/guia/formato-de-texto' },
],
},
],
},

{
text: 'Sintaxis',
items: [
{ text: 'Palabras reservadas', link: '/sintaxis/palabras-reservadas' },
{ text: 'Comentarios', link: '/sintaxis/comentarios' },
{ text: 'Variables', link: '/sintaxis/variables' },
{ text: 'Constantes', link: '/sintaxis/constantes' },
{ text: 'Operadores', link: '/sintaxis/operadores' },
{ text: 'Condición si ... sino', link: '/sintaxis/condicion-si' },
{ text: 'Declaración elegir', link: '/sintaxis/elegir' },
{ text: 'Bucle para', link: '/sintaxis/para' },
{ text: 'Bucle mientras', link: '/sintaxis/mientras' },
{ text: 'Bucle hacer ... mientras', link: '/sintaxis/hacer-mientras' },
{ text: 'Módulos', link: '/sintaxis/modulos' },
{
items: [
{ text: 'Palabras reservadas', link: '/sintaxis/palabras-reservadas' },
{ text: 'Comentarios', link: '/sintaxis/comentarios' },
{ text: 'Variables', link: '/sintaxis/variables' },
{ text: 'Constantes', link: '/sintaxis/constantes' },
{ text: 'Operadores', link: '/sintaxis/operadores' },
{ text: 'Condición si ... sino', link: '/sintaxis/condicion-si' },
{ text: 'Declaración elegir', link: '/sintaxis/elegir' },
{ text: 'Bucle para', link: '/sintaxis/para' },
{ text: 'Bucle mientras', link: '/sintaxis/mientras' },
{ text: 'Bucle hacer ... mientras', link: '/sintaxis/hacer-mientras' },
{ text: 'Módulos', link: '/sintaxis/modulos' },
],
},
],
},

{
text: 'Tipos de datos',
items: [
{ text: 'Booleano', link: '/tipos-de-datos/booleano' },
{ text: 'nulo', link: '/tipos-de-datos/nulo' },
{ text: 'Numero', link: '/tipos-de-datos/numero' },
{ text: 'Cadena', link: '/tipos-de-datos/cadena' },
{ text: 'Objeto', link: '/tipos-de-datos/objeto' },
{ text: 'Matriz', link: '/tipos-de-datos/matriz' },
{ text: 'funcion', link: '/tipos-de-datos/funcion' },
{ text: 'Simbolo', link: '/tipos-de-datos/simbolo' },
{
items: [
{ text: 'Booleano', link: '/tipos-de-datos/booleano' },
{ text: 'nulo', link: '/tipos-de-datos/nulo' },
{ text: 'Numero', link: '/tipos-de-datos/numero' },
{ text: 'Cadena', link: '/tipos-de-datos/cadena' },
{ text: 'Objeto', link: '/tipos-de-datos/objeto' },
{ text: 'Matriz', link: '/tipos-de-datos/matriz' },
{ text: 'funcion', link: '/tipos-de-datos/funcion' },
{ text: 'Simbolo', link: '/tipos-de-datos/simbolo' },
],
},
],
},

{
text: 'Avanzado',
items: [
{ text: 'Elevación', link: '/avanzado/elevacion' },
{
items: [
{ text: 'Elevación', link: '/avanzado/elevacion' },
],
},
],
},
]
Expand Down Expand Up @@ -126,6 +145,11 @@ export default async () => {
],
],

rewrites: {
'/guia/introduccion.md': '/introduccion.md',
'/guia/empezando.md': '/primeros-pasos.md',
},

themeConfig: {
logo: '/assets/logo.png',

Expand All @@ -138,12 +162,10 @@ export default async () => {
],

sidebar: {
'/': defaultSidebar,
'/guia/': defaultSidebar,

'/sintaxis/': defaultSidebar,

'/tipos-de-datos/': defaultSidebar,

'/avanzado/': defaultSidebar,

'/ecosistema/': [
Expand All @@ -164,7 +186,7 @@ export default async () => {
},

socialLinks: [
{ icon: 'discord', link: 'https://discord.gg/QeNt3ZvZ' },
{ icon: 'discord', link: 'https://discord.gg/UgKC4RYj' },
{ icon: 'github', link: 'https://github.com/es-js/esjs' },
],

Expand Down
4 changes: 2 additions & 2 deletions src/.vitepress/theme/components/Home.vue
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@
<h1 class="tagline">
<span class="accent">EsJS</span>
<br>
JavaScript con sintaxis en Español
Lenguaje de programación en Español
</h1>

<div class="flex flex-col md:flex-row space-y-2 md:space-y-0 space-x-0 md:space-x-2">
<a
href="/guia/empezando"
href="/introduccion"
title="Empezar a programar con EsJS"
class="action primary"
>
Expand Down
69 changes: 5 additions & 64 deletions src/guia/empezando.md
Original file line number Diff line number Diff line change
@@ -1,66 +1,7 @@
# Empezando con EsJS
<script setup>
import { useRouter } from 'vitepress'

## Introducción
const router = useRouter()

EsJS es un lenguaje de programación con sintaxis en Español. EsJS compila a JavaScript, por lo que puedes utilizarlo en cualquier lugar donde se ejecute JavaScript.

Si quieres conocer más sobre el propósito de EsJS, puedes visitar la sección [¿Por qué usar EsJS?](./por-que-usar-esjs).

## Prueba en línea

¿Quieres probar EsJS sin tener que instalar nada en tu equipo? Puedes hacerlo en línea utilizando el [EsJS Editor](https://editor.esjs.dev/).

## Ejemplos de EsJS

EsJS ofrece varias alternativas para desarrollar aplicaciones:

- [Modo Terminal](https://demo-esjs-terminal.vercel.app/): permite ejecutar código en el navegador web utilizando una terminal como interfaz para el usuario. De esta manera, puedes centrarte en la lógica de tu programa sin pensar en la interfaz gráfica.
- [EsVue](https://demo-esvue.vercel.app/): utiliza [Vue](https://vuejs.org/) para permitir escribir componentes de un único archivo [(Single File Components)](https://vuejs.org/api/sfc-spec.html#overview) con lógica escrita en EsJS.
- [Node.js / Express](https://demo-esjs-express.vercel.app/): permite desarrollar aplicaciones que se ejecutan del lado del servidor.

## Creando un proyecto EsJS

La manera más fácil de crear un nuevo proyecto EsJS es utilizando una de las siguientes plantillas:

### Modo Terminal: [crear-terminal-app](https://github.com/es-js/crear-terminal-app/)

Puedes generar un repositorio a partir de la plantilla [crear-terminal-app](https://github.com/es-js/crear-terminal-app/generate) en GitHub:
<a href="https://github.com/es-js/crear-terminal-app/generate">
<img src="https://img.shields.io/badge/Utilizar%20esta-plantilla-blue?logo=github">
</a>

Puedes crear un espacio de código en línea con todo lo necesario para ejecutar tu programa en [GitHub Codespaces](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=583951106):
[![Abrir en GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=583951106)

Puedes desplegar tu aplicación en Vercel en un par de clics!
[![Desplegar con Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fes-js%2Fcrear-terminal-app&project-name=mi-esjs-terminal-app&repository-name=mi-esjs-terminal-app&demo-title=EsJS%20Terminal%20App&demo-description=Aplicaci%C3%B3n%20Web%20escrita%20en%20EsJS&demo-url=https%3A%2F%2Fdemo-esjs-terminal.vercel.app%2F)

---

### EsVue: [crear-esvue-app](https://github.com/es-js/crear-esvue-app/)

Puedes generar un repositorio a partir de la plantilla [crear-esvue-app](https://github.com/es-js/crear-esvue-app/generate) en GitHub:
<a href="https://github.com/es-js/crear-esvue-app/generate">
<img src="https://img.shields.io/badge/Utilizar%20esta-plantilla-blue?logo=github">
</a>

Puedes crear un espacio de código en línea con todo lo necesario para ejecutar tu programa en [GitHub Codespaces](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=583951133):
[![Abrir en GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=583951133)

Puedes desplegar tu aplicación en Vercel en un par de clics!
[![Desplegar con Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fes-js%2Fcrear-esvue-app&project-name=mi-esvue-app&repository-name=mi-esvue-app&demo-title=Esvue%20App&demo-description=Aplicaci%C3%B3n%20Web%20escrita%20en%20EsVue&demo-url=https%3A%2F%2Fdemo-esvue.vercel.app%2F)

---

### Node.js / Express: [crear-express-app](https://github.com/es-js/crear-express-app/)

Puedes generar un repositorio a partir de la plantilla [crear-express-app](https://github.com/es-js/crear-express-app/generate) en GitHub:
<a href="https://github.com/es-js/crear-express-app/generate">
<img src="https://img.shields.io/badge/Utilizar%20esta-plantilla-blue?logo=github">
</a>

Puedes crear un espacio de código en línea con todo lo necesario para ejecutar tu programa en [GitHub Codespaces](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=584128802):
[![Abrir en GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=584128802)

Puedes desplegar tu aplicación en Vercel en un par de clics!
[![Desplegar con Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fes-js%2Fcrear-express-app&project-name=mi-esjs-express-app&repository-name=mi-esjs-express-app&demo-title=EsJS%20Express%20App&demo-description=Aplicaci%C3%B3n%20que%20se%20ejecuta%20del%20lado%20del%20Servidor%20escrita%20en%20EsJS&demo-url=https%3A%2F%2Fdemo-esjs-express.vercel.app%2F)
router.go('/primeros-pasos')
</script>
22 changes: 10 additions & 12 deletions src/guia/gramatica-y-tipos.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ La sintaxis de los comentarios es la misma que en C++ y en muchos otros lenguaje

Los comentarios se comportan como espacios en blanco y se descartan durante la ejecución del script.

## Declaraciones
## Variables

EsJS tiene tres tipos de declaraciones de variables.

Expand Down Expand Up @@ -189,7 +189,7 @@ En consecuencia, puedes acceder a las variables globales declaradas en una «ven

Además, las variables globales tienen un mecanismo asociado como Elevación (_hoisting_). Puedes conocer más sobre este mecanismo en [Elevación](/avanzado/elevacion)

### Constantes
## Constantes

Puedes crear una constante de solo lectura con nombre con la palabra clave `const`.

Expand Down Expand Up @@ -251,9 +251,7 @@ consola.escribir(MI_ARREGLO); // Muestra ['HTML','CSS','JavaScript','EsJS'];
>
> </InlinePlayground>
## Estructuras y tipos de datos
### Tipos de datos
## Tipos de datos
EsJS define ocho tipos de datos:
Expand Down Expand Up @@ -358,13 +356,13 @@ consola.escribir(xConvertido + 23);

Los _literales_ representan valores en EsJS. Estos son valores fijos, no variables, que _literalmente_ proporcionas en tu script. Esta sección describe los siguientes tipos de literales:

- [Arreglos literales](https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/Grammar_and_Types#arreglos_literales)
- [Booleanos literales](https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/Grammar_and_Types#booleanos_literales)
- [Literales de coma flotante](https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/Grammar_and_Types#literales_de_coma_flotante)
- [Literales numéricos](https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/Grammar_and_Types#literales_numericos)
- [Objetos literales](https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/Grammar_and_Types#objetos_literales)
- [RegExp literales](https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/Grammar_and_Types#regexp_literales)
- [Cadenas literales](https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/Grammar_and_Types#cadenas_literales)
- [Arreglos literales](#arreglos-literales)
- [Booleanos literales](#booleanos-literales)
- [Literales de coma flotante](#literales-de-coma-flotante)
- [Literales numéricos](#literales-numericos)
- [Objetos literales](#objetos-literales)
- [RegExp literales](#expresiones-regulares-«regexp»-literales)
- [Cadenas literales](#cadenas-literales)

### Arreglos literales

Expand Down
15 changes: 5 additions & 10 deletions src/guia/introduccion.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
# Guía EsJS
<script setup>
import { useRouter } from 'vitepress'

Esta guía está basada en la [Guía de JavaScript](https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/) de [MDN Web Docs](https://developer.mozilla.org/), convenientemente adaptada a EsJS.

Es importante entender que el código EsJS que escribimos es transpilado a JavaScript en el momento previo a ejecutarse. Por lo que, si bien escribimos código EsJS, en realidad se ejecuta código JavaScript.

De esta manera, esta guía enlazará algunos términos/conceptos a documentación que corresponde a JavaScript, pero que también aplican a EsJS, sólo que utilizando tokens en español.

La lista de tokens en español que emplea EsJS, y su equivalencia a JavaScript, puede consultarse en:

WIP
const router = useRouter()

router.go('/introduccion')
</script>
51 changes: 5 additions & 46 deletions src/guia/por-que-usar-esjs.md
Original file line number Diff line number Diff line change
@@ -1,48 +1,7 @@
# ¿Por qué usar EsJS?
<script setup>
import { useRouter } from 'vitepress'

EsJS fue creado con la intención de facilitar a los hablantes de español el desarrollo de aplicaciones web al utilizar palabras del idioma español, pero con la misma capacidad de JavaScript.
const router = useRouter()

## ¿Qué es EsJS?

EsJS es un lenguaje de programación que utiliza palabras del idioma español para escribir código. La gramática de EsJS es la misma que la de JavaScript, solo que utiliza tokens del idioma español. Al ejecutarse, el código transpilado de EsJS es equivalente al código JavaScript.

El siguiente código EsJS:

```esjs
funcion iniciar() {
const fecha = crear Fecha()
consola.escribir("Hola Mundo!", fecha)
}
iniciar()
```

Produce el código JavaScript:

```js
function iniciar() {
const fecha = new Date()
console.log("Hola Mundo!", fecha)
}

iniciar()
```

## ¿Cómo funciona EsJS?

EsJS es un plugin de Babel. Analiza cada token del código de entrada y busca su equivalente en JavaScript. Este proceso ha sido altamente inspirado en el artículo ["Rebuilding Babel: The Tokenizer"](https://www.nan.fyi/tokenizer) de [Nanda Syahrasyad](https://www.nan.fyi/).

WIP

## ¿Cuál es la diferencia entre EsJS y JavaScript?

EsJS es un lenguaje de programación que utiliza palabras del idioma español para escribir código. EsJS compila el código escrito en español a código JavaScript.

A su vez, JavaScript es un lenguaje de programación interpretado, que utiliza palabras del idioma inglés para escribir código. Es uno de los lenguajes de programación más utilizados en el mundo.

Por lo tanto, EsJS y JavaScript son lenguajes muy similares, y gracias a la utilización de plugins adecuados, EsJS puede hacer prácticamente lo mismo que JavaScript. De esta manera, EsJS es prácticamente igual a JavaScript en términos de funcionalidades y capacidades.


## Alternativas

- [Lenguaje Latino](https://www.lenguajelatino.org/)
router.go('/introduccion')
</script>
2 changes: 1 addition & 1 deletion src/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import SectionCodeExample from '@theme/components/SectionCodeExample.vue';

<div class="w-full h-20"></div>

<SectionCodeExample title="Crea y ejecuta algoritmos en Español" description="Escribe código en Español y ejecútalo en JavaScript." hide-console="false" hide-preview="true">
<SectionCodeExample title="JavaScript con sintaxis en Español" description="Escribe código en Español y ejecútalo en JavaScript." hide-console="false" hide-preview="true">

<!--@include: ./public/codigos/fibonacci.md -->

Expand Down
Loading

0 comments on commit 7dcbdf4

Please sign in to comment.