From bd8e98d7e24c4dbaee7db6ec7955f7c2f6d396a6 Mon Sep 17 00:00:00 2001 From: Ruben Beltran del Rio Date: Tue, 9 Mar 2021 22:43:12 +0100 Subject: Update to SvelteKit --- src/app.html | 23 ++++++ src/components/author/author.svelte | 0 src/components/error_block/error_block.svelte | 31 ++++++++ src/components/footer/footer.svelte | 36 +++++++++ src/components/forum_list/forum_list.svelte | 52 +++++++++++++ src/components/glyph/glyph.svelte | 39 ++++++++++ src/components/header/header.svelte | 48 ++++++++++++ src/components/home/home.svelte | 6 ++ src/components/invalid_route/invalid_route.svelte | 6 ++ .../language_selector/language_selector.svelte | 28 +++++++ src/components/post/post.svelte | 27 +++++++ src/components/topic/topic.svelte | 59 ++++++++++++++ src/components/topic_index/topic_index.svelte | 8 ++ src/config/config.js | 11 +++ src/config/env.dist | 1 + src/config/i18n.js | 12 +++ src/config/translations/en.json | 91 ++++++++++++++++++++++ src/config/translations/es.json | 91 ++++++++++++++++++++++ src/forum.svelte | 63 +++++++++++++++ src/routes/$error.svelte | 5 ++ src/routes/$layout.svelte | 39 ++++++++++ src/routes/a/[id].svelte | 10 +++ src/routes/f/[id].svelte | 9 +++ src/routes/g/[id].svelte | 9 +++ src/routes/index.svelte | 6 ++ src/routes/p/[id].svelte | 11 +++ src/routes/t/[id].svelte | 10 +++ src/socket_coordinator.js | 63 +++++++++++++++ src/stores/forums.js | 36 +++++++++ src/utils/glyph_hash.js | 38 +++++++++ 30 files changed, 868 insertions(+) create mode 100644 src/app.html create mode 100644 src/components/author/author.svelte create mode 100644 src/components/error_block/error_block.svelte create mode 100644 src/components/footer/footer.svelte create mode 100644 src/components/forum_list/forum_list.svelte create mode 100644 src/components/glyph/glyph.svelte create mode 100644 src/components/header/header.svelte create mode 100644 src/components/home/home.svelte create mode 100644 src/components/invalid_route/invalid_route.svelte create mode 100644 src/components/language_selector/language_selector.svelte create mode 100644 src/components/post/post.svelte create mode 100644 src/components/topic/topic.svelte create mode 100644 src/components/topic_index/topic_index.svelte create mode 100644 src/config/config.js create mode 100644 src/config/env.dist create mode 100644 src/config/i18n.js create mode 100644 src/config/translations/en.json create mode 100644 src/config/translations/es.json create mode 100644 src/forum.svelte create mode 100644 src/routes/$error.svelte create mode 100644 src/routes/$layout.svelte create mode 100644 src/routes/a/[id].svelte create mode 100644 src/routes/f/[id].svelte create mode 100644 src/routes/g/[id].svelte create mode 100644 src/routes/index.svelte create mode 100644 src/routes/p/[id].svelte create mode 100644 src/routes/t/[id].svelte create mode 100644 src/socket_coordinator.js create mode 100644 src/stores/forums.js create mode 100644 src/utils/glyph_hash.js (limited to 'src') diff --git a/src/app.html b/src/app.html new file mode 100644 index 0000000..26d754f --- /dev/null +++ b/src/app.html @@ -0,0 +1,23 @@ + + + + + + + + + + Forum. + + + + %svelte.head% + + +
%svelte.body%
+ + + diff --git a/src/components/author/author.svelte b/src/components/author/author.svelte new file mode 100644 index 0000000..e69de29 diff --git a/src/components/error_block/error_block.svelte b/src/components/error_block/error_block.svelte new file mode 100644 index 0000000..e46afa1 --- /dev/null +++ b/src/components/error_block/error_block.svelte @@ -0,0 +1,31 @@ + + +
+

{$_('error.generic.title')}

+

{message || $_('error.generic.message')}

+
+ + + diff --git a/src/components/footer/footer.svelte b/src/components/footer/footer.svelte new file mode 100644 index 0000000..3587aab --- /dev/null +++ b/src/components/footer/footer.svelte @@ -0,0 +1,36 @@ + + + + + diff --git a/src/components/forum_list/forum_list.svelte b/src/components/forum_list/forum_list.svelte new file mode 100644 index 0000000..174ae25 --- /dev/null +++ b/src/components/forum_list/forum_list.svelte @@ -0,0 +1,52 @@ + + + + + diff --git a/src/components/glyph/glyph.svelte b/src/components/glyph/glyph.svelte new file mode 100644 index 0000000..e4b9166 --- /dev/null +++ b/src/components/glyph/glyph.svelte @@ -0,0 +1,39 @@ + + + + + diff --git a/src/components/header/header.svelte b/src/components/header/header.svelte new file mode 100644 index 0000000..36d4d50 --- /dev/null +++ b/src/components/header/header.svelte @@ -0,0 +1,48 @@ + + +
+ +
+ + diff --git a/src/components/home/home.svelte b/src/components/home/home.svelte new file mode 100644 index 0000000..7000137 --- /dev/null +++ b/src/components/home/home.svelte @@ -0,0 +1,6 @@ + + +

{$_('home.title')}

+

{$_('home.content')}

diff --git a/src/components/invalid_route/invalid_route.svelte b/src/components/invalid_route/invalid_route.svelte new file mode 100644 index 0000000..aaf7927 --- /dev/null +++ b/src/components/invalid_route/invalid_route.svelte @@ -0,0 +1,6 @@ + + +

{$_('error.invalid_url.title')}

+

{$_('error.invalid_url.message')}

diff --git a/src/components/language_selector/language_selector.svelte b/src/components/language_selector/language_selector.svelte new file mode 100644 index 0000000..67c0814 --- /dev/null +++ b/src/components/language_selector/language_selector.svelte @@ -0,0 +1,28 @@ + + + + + + diff --git a/src/components/post/post.svelte b/src/components/post/post.svelte new file mode 100644 index 0000000..4720533 --- /dev/null +++ b/src/components/post/post.svelte @@ -0,0 +1,27 @@ + + + +
+

It's just how it is...

+
+
+ + diff --git a/src/components/topic/topic.svelte b/src/components/topic/topic.svelte new file mode 100644 index 0000000..2aff79a --- /dev/null +++ b/src/components/topic/topic.svelte @@ -0,0 +1,59 @@ + + +
+

This is a post in the forum.

+ + + +
+

This is a main topic in the forum. Does that abstraction still even make sense?

+

Is this really it??

+

This might all be fake but at least the links look purple when visited

+
+
+ +
+

It's just how it is...

+
+
+
+ + diff --git a/src/components/topic_index/topic_index.svelte b/src/components/topic_index/topic_index.svelte new file mode 100644 index 0000000..3de83bb --- /dev/null +++ b/src/components/topic_index/topic_index.svelte @@ -0,0 +1,8 @@ + + + +

Topic Index.

+

This component lists topics for category or tag with id: {params.id}

diff --git a/src/config/config.js b/src/config/config.js new file mode 100644 index 0000000..6d819a3 --- /dev/null +++ b/src/config/config.js @@ -0,0 +1,11 @@ +import { version as packageVersion } from '../../package.json'; + +/* + * The main configuration object for the Forum frontend. These values + * are calculated during compile time and need to be set in a .env + * file, otherwise it won't work. + */ + +export const socketServer = import.meta.env.FORUM_SOCKET_SERVER; + +export const version = packageVersion; diff --git a/src/config/env.dist b/src/config/env.dist new file mode 100644 index 0000000..0bcd782 --- /dev/null +++ b/src/config/env.dist @@ -0,0 +1 @@ +FORUM_SOCKET_SERVER=ws://location_of_socket_server diff --git a/src/config/i18n.js b/src/config/i18n.js new file mode 100644 index 0000000..25ffc45 --- /dev/null +++ b/src/config/i18n.js @@ -0,0 +1,12 @@ +import { addMessages, getLocaleFromNavigator, init } from 'svelte-i18n'; + +import en from './translations/en.json'; +import es from './translations/es.json'; + +addMessages('en', en); +addMessages('es', es); + +init({ + fallbackLocale: 'en', + initialLocale: getLocaleFromNavigator() +}); diff --git a/src/config/translations/en.json b/src/config/translations/en.json new file mode 100644 index 0000000..5b6a4b6 --- /dev/null +++ b/src/config/translations/en.json @@ -0,0 +1,91 @@ +{ + "error": { + "generic": { + "title": "Error!", + "message": "Unknown error has occurred. Panic!" + }, + "invalid_url": { + "title": "This is not right.", + "message": "This URL is not valid. Try another one maybe?" + } + }, + "footer": { + "choose_language": "Choose your language", + "license": "Forum is open source.", + "title": "Footer" + }, + "forum": { + "name": { + "everything": "Everything", + "us": "Us", + "words": "Words", + "sound": "Sounds", + "structure": "Structure", + "interaction": "Interaction", + "emotion": "Emotion", + "movement": "Movement", + "belief": "Belief", + "experience": "Experience", + "online": "Online", + "the_world": "The World", + "life": "Life" + } + }, + "forum_list": { + "title": "List of forums", + "error": { + "unavailable": "Forum list unavailable." + } + }, + "glyph": { + "title": "User avatar" + }, + "header": { + "action": { + "new": { + "title": "New", + "display": "New" + }, + "reply": { + "title": "Reply", + "display": "Reply" + }, + "search": { + "title": "Search", + "display": "Search" + }, + "log_out": { + "title": "Log Out", + "display": "Log Out" + } + }, + "long_version": "Forum version {version}", + "title": "Toolbar", + "short_version": "Forum v{version}" + }, + "home": { + "title": "Hello.", + "content": "You are now in a forum. Select a category from the left or input a valid URL." + }, + "post": { + "author_credit": "By:", + "metadata_title": "Post {count} of {total} metadata", + "permalink_title": "Permalink to post", + "title": "Post {count} of {total} by {author}" + }, + "topic": { + "category_location": "Posted on", + "metadata_title": "Topic metadata", + "permalink_title": "Permalink to topic", + "remaining_time": "{remaining} remaining", + "tags_location": "Tags:", + "tags_title": "Topic tags", + "title": "Topic" + }, + "time": { + "days": "{count, plural, =1 {# day} other {# days}}", + "hours": "{count, plural, =1 {# hour} other {# hours}}", + "minutes": "{count, plural, =1 {# minute} other {# minutes}}", + "seconds": "{count, plural, =1 {# second} other {# seconds}}" + } +} diff --git a/src/config/translations/es.json b/src/config/translations/es.json new file mode 100644 index 0000000..be8f96b --- /dev/null +++ b/src/config/translations/es.json @@ -0,0 +1,91 @@ +{ + "error": { + "generic": { + "title": "Error!", + "message": "Hubo un error desconocido. ¡Entra en pánico!" + }, + "invalid_url": { + "title": "Esto no está bien.", + "message": "Este URL no es válido. Intenta otro, ¿Tal vez?" + } + }, + "footer": { + "choose_language": "Escoge un lenguaje", + "license": "Forum es software libre.", + "title": "Pie de página" + }, + "forum": { + "name": { + "everything": "Todo", + "us": "Nosotros", + "words": "Palabras", + "sound": "Sonidos", + "structure": "Estructura", + "interaction": "Interacción", + "emotion": "Emoción", + "movement": "Movimiento", + "belief": "Creencia", + "experience": "Experiencia", + "online": "En Línea", + "the_world": "El Mundo", + "life": "Vida" + } + }, + "forum_list": { + "title": "Lista de foros", + "error": { + "unavailable": "Lista de foros no disponible." + } + }, + "glyph": { + "title": "Avatar del usuario" + }, + "header": { + "action": { + "new": { + "title": "Nuevo", + "display": "Nuevo" + }, + "reply": { + "title": "Responder", + "display": "Responder" + }, + "search": { + "title": "Buscar", + "display": "Buscar" + }, + "log_out": { + "title": "Cerrar Sesión", + "display": "Cerrar Sesión" + } + }, + "long_version": "Forum versión {version}", + "title": "Barra de herramientas", + "short_version": "Forum v{version}" + }, + "home": { + "title": "Hola.", + "content": "Ahora estás en un foro. Elige una categoría de la izquierda o escribe un URL válido." + }, + "post": { + "author_credit": "Por:", + "metadata_title": "Metadatos de entrada {count} de {total}", + "permalink_title": "Permalink a entrada", + "title": "Entrada {count} de {total}, por {author}" + }, + "topic": { + "category_location": "Agregado a", + "metadata_title": "Metadatos del tema", + "permalink_title": "Permalink al tema", + "remaining_time": "Quedan {remaining}", + "tags_location": "Etiquetas:", + "tags_title": "Etiquetas del tema", + "title": "Tema" + }, + "time": { + "days": "{count, plural, =1 {# día} other {# días}}", + "hours": "{count, plural, =1 {# hora} other {# horas}}", + "minutes": "{count, plural, =1 {# minuto} other {# minutos}}", + "seconds": "{count, plural, =1 {# segundo} other {# segundos}}" + } +} diff --git a/src/forum.svelte b/src/forum.svelte new file mode 100644 index 0000000..d2a6e1b --- /dev/null +++ b/src/forum.svelte @@ -0,0 +1,63 @@ + + +
+
+ +
+ +