Rename project to Nicolium
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
This commit is contained in:
@ -15,11 +15,11 @@ jobs:
|
|||||||
working_directory: packages/pl-api
|
working_directory: packages/pl-api
|
||||||
command: pnpm run build
|
command: pnpm run build
|
||||||
- run:
|
- run:
|
||||||
name: Install pl-fe deps
|
name: Install Nicolium deps
|
||||||
working_directory: packages/pl-fe
|
working_directory: packages/pl-fe
|
||||||
command: pnpm install
|
command: pnpm install
|
||||||
- run:
|
- run:
|
||||||
name: Build pl-fe
|
name: Build Nicolium
|
||||||
working_directory: packages/pl-fe
|
working_directory: packages/pl-fe
|
||||||
command: pnpm run build
|
command: pnpm run build
|
||||||
- run:
|
- run:
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
// Place your pl-fe workspace snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and
|
// Place your Nicolium workspace snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and
|
||||||
// description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope
|
// description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope
|
||||||
// is left empty or omitted, the snippet gets applied to all languages. The prefix is what is
|
// is left empty or omitted, the snippet gets applied to all languages. The prefix is what is
|
||||||
// used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
|
// used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
|
||||||
47
README.md
47
README.md
@ -1,53 +1,52 @@
|
|||||||
# `pl-fe`
|
# Nicolium (formerly `pl-fe`)
|
||||||
|
|
||||||
[](https://codeberg.org/mkljczk/pl-fe)
|
[](https://codeberg.org/mkljczk/nicolium)
|
||||||
[](https://github.com/mkljczk/pl-fe)
|
[](https://github.com/mkljczk/nicolium)
|
||||||
[](https://github.com/mkljczk/pl-fe?tab=AGPL-3.0-1-ov-file#readme)
|
[](https://github.com/mkljczk/nicolium?tab=AGPL-3.0-1-ov-file#readme)
|
||||||
[](https://hosted.weblate.org/engage/pl-fe/)
|
[](https://hosted.weblate.org/engage/pl-fe/)
|
||||||

|

|
||||||
|
|
||||||
`pl-fe` is a social networking client app. It works with any Mastodon API-compatible software, but it's focused on supporting alternative backends, like Pleroma or GoToSocial.
|
Nicolium is a social networking client app. It works with any Mastodon API-compatible software, but it's focused on supporting alternative backends, like Pleroma or GoToSocial.
|
||||||
|
|
||||||
## Goals
|
## Goals
|
||||||
|
|
||||||
- **Feature-rich**: `pl-fe` includes a wide range of features, such as a WYSIWYG text editor, draft posts, and more.
|
- **Feature-rich**: Nicolium includes a wide range of features, such as a WYSIWYG text editor, draft posts, and more.
|
||||||
- **Compatibility**: `pl-fe` is compatible with any Mastodon API-compatible software, treating alternative backends as first-class citizens. Chats, emoji reactions, groups, interaction policies? We support them all. Thanks to `pl-api`, which provides a unified interface for interacting with Mastodon API-compatible servers, implementation differences do not affect the user experience.
|
- **Compatibility**: Nicolium is compatible with any Mastodon API-compatible software, treating alternative backends as first-class citizens. Chats, emoji reactions, groups, interaction policies? We support them all. Thanks to `pl-api`, which provides a unified interface for interacting with Mastodon API-compatible servers, implementation differences do not affect the user experience.
|
||||||
- **Unopinionated**: `pl-fe` doesn't impose any arbitrary limitations on the user. We do not specify a limit of reactions you can use on a single post and try to implement every feature available in the API.
|
- **Unopinionated**: Nicolium doesn't impose any arbitrary limitations on the user. We do not specify a limit of reactions you can use on a single post and try to implement every feature available in the API.
|
||||||
- **Stay private**: `pl-fe` includes features which help you maintain online privacy. This includes URL cleaning, which helps you remove unwanted parts of URLs used to mark your online activity.
|
- **Stay private**: Nicolium includes features which help you maintain online privacy. This includes URL cleaning, which helps you remove unwanted parts of URLs used to mark your online activity.
|
||||||
|
|
||||||
## Try it out
|
## Try it out
|
||||||
|
|
||||||
Want to test `pl-fe` with **any existing MastoAPI-compatible server?** Try [pl.mkljczk.pl](https://pl.mkljczk.pl) — enter your server's domain name to use `pl-fe` on any server!
|
Want to test Nicolium with **any existing MastoAPI-compatible server?** Try [pl.mkljczk.pl](https://pl.mkljczk.pl) — enter your server's domain name to use Nicolium on any server!
|
||||||
|
|
||||||
If you want to use `pl-fe` on your server, follow the installation instructions in the documentation. We offer guides for [Pleroma/Akkoma](https://pl.mkljczk.pl/docs/installing/pleroma/), [Iceshrimp.NET](https://pl.mkljczk.pl/docs/installing/iceshrimp/), [Mitra](https://pl.mkljczk.pl/docs/installing/mitra/), and [standalone installations](https://pl.mkljczk.pl/docs/installing/standalone/).
|
If you want to use Nicolium on your server, follow the installation instructions in the documentation. We offer guides for [Pleroma/Akkoma](https://pl.mkljczk.pl/docs/installing/pleroma/), [Iceshrimp.NET](https://pl.mkljczk.pl/docs/installing/iceshrimp/), [Mitra](https://pl.mkljczk.pl/docs/installing/mitra/), and [standalone installations](https://pl.mkljczk.pl/docs/installing/standalone/).
|
||||||
|
|
||||||
## Repository
|
## Repository
|
||||||
|
|
||||||
The repository hosts `pl-fe`, but also libraries related to the project. Currently, this includes:
|
The repository hosts Nicolium, but also libraries related to the project. Currently, this includes:
|
||||||
|
- [Nicolium](./packages/pl-fe/) itself — a social networking client app
|
||||||
- [pl-fe](./packages/pl-fe/) itself — a social networking client app
|
- [pl-api](./packages/pl-api) — a library for interacting with Mastodon API-compatible servers, focused on support for projects extending the official Mastodon API. It is used by Nicolium.
|
||||||
- [pl-api](./packages/pl-api) — a library for interacting with Mastodon API-compatible servers, focused on support for projects extending the official Mastodon API. It is used by `pl-fe`.
|
- [pl-hooks](./packages/pl-hooks) — a library including hooks for integrating with Mastodon API, based on `pl-api` and TanStack Query. It is intended to be used within Nicolium. Work in progress.
|
||||||
- [pl-hooks](./packages/pl-hooks) — a library including hooks for integrating with Mastodon API, based on `pl-api` and TanStack Query. It is intended to be used within `pl-fe`. Work in progress.
|
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
This project is hosted on [Codeberg](https://codeberg.org/mkljczk/pl-fe) and [GitHub](https://github.com/mkljczk/pl-fe). You can open issues on Codeberg or create pull requests on both platforms.
|
This project is hosted on [Codeberg](https://codeberg.org/mkljczk/nicolium) and [GitHub](https://github.com/mkljczk/nicolium). You can open issues on Codeberg or create pull requests on both platforms.
|
||||||
|
|
||||||
You can find more information about setting up the development environment in [the documentation](https://pl.mkljczk.pl/docs/contributing/pl-fe/).
|
You can find more information about setting up the development environment in [the documentation](https://pl.mkljczk.pl/docs/contributing/pl-fe/).
|
||||||
|
|
||||||
## FAQ / Common misconceptions
|
## ~~FAQ / Common misconceptions~~
|
||||||
|
|
||||||
### What does the project name mean?
|
### ~~What does the project name mean?~~
|
||||||
|
|
||||||
I named the project after my now-deprecated personal fork of Pleroma, called simply `pl`. They were meant to be recommended together. However, `pl-fe` evolved into something more serious than a little fork. This is a bad and confusing name, but I don't really care about branding.
|
~~I named the project after my now-deprecated personal fork of Pleroma, called simply `pl`. They were meant to be recommended together. However, `pl-fe` evolved into something more serious than a little fork. This is a bad and confusing name, but I don't really care about branding.~~
|
||||||
|
|
||||||
> For a maintained fork of Pleroma focused on `pl-fe` compatibility, check out my new project, [Nicolex](https://codeberg.org/mkljczk/nicolex).
|
> For a maintained fork of Pleroma focused on Nicolex compatibility, check out my new project, [Nicolex](https://codeberg.org/mkljczk/nicolex).
|
||||||
|
|
||||||
I will bite people calling `pl-fe` *Polish front-end* or *Polish Soapbox*. And I don't mean sending them the [`Bite` activity](https://ns.mia.jetzt/as/) (which works in pl-fe on supported backends btw).
|
~~I will bite people calling `pl-fe` *Polish front-end* or *Polish Soapbox*. And I don't mean sending them the [`Bite` activity](https://ns.mia.jetzt/as/) (which works in pl-fe on supported backends btw).~~
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
`pl-fe` is a fork of [Soapbox](https://gitlab.com/soapbox-pub/soapbox/) and inherits a lot of code from [Mastodon](https://github.com/mastodon/mastodon/).
|
Nicolex is a fork of [Soapbox](https://gitlab.com/soapbox-pub/soapbox/) and inherits a lot of code from [Mastodon](https://github.com/mastodon/mastodon/).
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Affero General Public License as published by
|
it under the terms of the GNU Affero General Public License as published by
|
||||||
@ -64,7 +63,7 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Follow [my Pleroma account](https://pl.fediverse.pl/@mkljczk) to stay up to date on `pl-fe` development.
|
Follow [my Pleroma account](https://pl.fediverse.pl/@mkljczk) to stay up to date on Nicolium development.
|
||||||
|
|
||||||
|
|
||||||
This project is tested with BrowserStack.
|
This project is tested with BrowserStack.
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
# Building pl-fe
|
# Building Nicolium
|
||||||
|
|
||||||
Building pl-fe requires [Node.js](https://nodejs.org/) and [pnpm](https://pnpm.io/) package manager to be installed. Since Node v16.13, Node.js comes with `corepack` pre-installed, which can be used to manage package managers like `pnpm`.
|
Building Nicolium requires [Node.js](https://nodejs.org/) and [pnpm](https://pnpm.io/) package manager to be installed. Since Node v16.13, Node.js comes with `corepack` pre-installed, which can be used to manage package managers like `pnpm`.
|
||||||
|
|
||||||
To enable `pnpm` using `corepack`, run the following command:
|
To enable `pnpm` using `corepack`, run the following command:
|
||||||
|
|
||||||
@ -8,17 +8,17 @@ To enable `pnpm` using `corepack`, run the following command:
|
|||||||
corepack enable pnpm
|
corepack enable pnpm
|
||||||
```
|
```
|
||||||
|
|
||||||
You can now proceed to fetching pl-fe Git repository, installing dependencies, and building the project:
|
You can now proceed to fetching Nicolium Git repository, installing dependencies, and building the project:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Clone the pl-fe repository
|
# Clone the Nicolium repository
|
||||||
git clone https://codeberg.org/mkljczk/pl-fe.git
|
git clone https://codeberg.org/mkljczk/nicolium.git
|
||||||
cd pl-fe
|
cd nicolium
|
||||||
# Install dependencies
|
# Install dependencies
|
||||||
pnpm install
|
pnpm install
|
||||||
# Build the pl-api dependency
|
# Build the pl-api dependency
|
||||||
pnpm -F pl-api build
|
pnpm -F pl-api build
|
||||||
# Build the pl-fe project
|
# Build the Nicolium project
|
||||||
pnpm -F pl-fe build
|
pnpm -F pl-fe build
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -27,5 +27,5 @@ The built files will be located in the `packages/pl-fe/dist` directory. You can
|
|||||||
Following environment variables can be used to customize the instance in build process:
|
Following environment variables can be used to customize the instance in build process:
|
||||||
|
|
||||||
- `BACKEND_URL` - URL of the Mastodon-compatible instance to connect to. If not set, tries fetching /api/v1/instance from the origin and falls back to standalone mode.
|
- `BACKEND_URL` - URL of the Mastodon-compatible instance to connect to. If not set, tries fetching /api/v1/instance from the origin and falls back to standalone mode.
|
||||||
- `FE_SUBDIRECTORY` - The path where pl-fe is mounted to. Defaults to `/`.
|
- `FE_SUBDIRECTORY` - The path where Nicolium is mounted to. Defaults to `/`.
|
||||||
- `WITH_LANDING_PAGE` - Displays the landing page on the home page, when running in standalone mode.
|
- `WITH_LANDING_PAGE` - Displays the landing page on the home page, when running in standalone mode.
|
||||||
71
docs/contributing/nicolium.md
Normal file
71
docs/contributing/nicolium.md
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
# Contributing to Nicolium
|
||||||
|
|
||||||
|
The page intends to provide a technical overview of the Nicolium codebase and guidelines for potential contributors.
|
||||||
|
|
||||||
|
## Used technologies
|
||||||
|
|
||||||
|
Nicolium is a single page application built using the [React](https://react.dev/) framework. It uses [TypeScript](https://www.typescriptlang.org/) as the programming language and [Vite](https://vitejs.dev/) as the build tool. Routing is handled by [TanStack Router](https://tanstack.com/router/latest). Client state management is done using [Zustand](https://zustand-demo.pmnd.rs/) and server state management using [TanStack Query](https://tanstack.com/query/latest).
|
||||||
|
|
||||||
|
!!! note
|
||||||
|
Important parts of Nicolium are currently being refactored to use a different set of libraries. You can find occurrences of tools being phased out, like Redux or TailwindCSS. Larger contributions should wait until the refactor is complete.
|
||||||
|
|
||||||
|
Nicolium also uses `pl-api` library for interacting with the Mastodon-compatible backends. The goal of `pl-api` is to provide a unified, type-safe API for multiple backends extending Mastodon API in incompatible ways. You can find the `pl-api` source code in the `packages/pl-api` directory of the Nicolium repository.
|
||||||
|
|
||||||
|
## Setting up development environment
|
||||||
|
|
||||||
|
Setting up Nicolium requires [Node.js](https://nodejs.org/) and [pnpm](https://pnpm.io/) package manager to be installed. Since Node v16.13, Node.js comes with `corepack` pre-installed, which can be used to manage package managers like `pnpm`.
|
||||||
|
To enable `pnpm` using `corepack`, run the following command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
corepack enable pnpm
|
||||||
|
```
|
||||||
|
|
||||||
|
You can now proceed to fetching Nicolium Git repository, installing dependencies, and—finally—running the development server:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Clone the Nicolium repository
|
||||||
|
git clone https://codeberg.org/mkljczk/nicolium.git
|
||||||
|
cd nicolium
|
||||||
|
# Install dependencies
|
||||||
|
pnpm install
|
||||||
|
# Build the pl-api dependency
|
||||||
|
pnpm -F pl-api build # Use `pnpm -F pl-api watch` if you want to develop pl-api alongside Nicolium
|
||||||
|
# Run the Nicolium development server (by default at http://localhost:7312)
|
||||||
|
pnpm -F pl-fe dev
|
||||||
|
```
|
||||||
|
|
||||||
|
The server supports hot module reloading, so any changes you make to the source code will be reflected in the browser automatically.
|
||||||
|
|
||||||
|
!!! tip
|
||||||
|
You can install the [React Developer Tools](https://react.dev/learn/react-developer-tools) browser extension to inspect components, their props and state. It might help you understand the application better and identify performance problems. It is available for [Firefox](https://addons.mozilla.org/en-US/firefox/addon/react-devtools/), [Chrome](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?hl=en) (and compatible Chromium-based browsers) and [Edge](https://microsoftedge.microsoft.com/addons/detail/react-developer-tools/gpphkfbcpidddadnkolkpfckpihlkkil).
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
|
||||||
|
Currently, tests are disabled in Nicolium. They will be reintroduced after the ongoing refactor is complete.
|
||||||
|
|
||||||
|
## Contributing guidelines
|
||||||
|
|
||||||
|
Nicolium hosts its repository on [Codeberg](https://codeberg.org/mkljczk/nicolium) and [GitHub](https://github.com/mkljczk/nicolium). While issues are only tracked on Codeberg, you can submit pull requests on both platforms. Remember to follow the [Code of Conduct](../code-of-conduct.md) when interacting with the community.
|
||||||
|
The project uses [ESLint](https://eslint.org/) and [Stylelint](https://stylelint.io/) for code style checking, which is automatically run on every commit using [Husky](https://typicode.github.io/husky). You can run the linters manually using the following command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm -F pl-fe lint
|
||||||
|
```
|
||||||
|
|
||||||
|
While contributing code, try to follow the existing coding style. Common sense rules regarding contributions apply. Keep your changes focused on a single issue or feature. Do not create pull requests including larger changes you don't understand fully—whether it's from another project or some auto-generated code.
|
||||||
|
|
||||||
|
## Localization
|
||||||
|
|
||||||
|
[React Intl](https://formatjs.github.io/docs/react-intl/) is used for localizing Nicolium. All user-visible strings, unless provided by backend, should be made translatable.
|
||||||
|
|
||||||
|
Before committing changes adding or modifying user-visible strings, make sure to extract the messages using the following command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm -F pl-fe i18n
|
||||||
|
```
|
||||||
|
|
||||||
|
You can help translating Nicolium into your language on [Weblate](https://hosted.weblate.org/projects/pl-fe/).
|
||||||
|
|
||||||
|
<a href="https://hosted.weblate.org/engage/pl-fe/">
|
||||||
|
<img src="https://hosted.weblate.org/widget/pl-fe/287x66-grey.png" alt="Translation status" />
|
||||||
|
</a>
|
||||||
@ -4,24 +4,23 @@
|
|||||||
|
|
||||||
It uses a minimal set of dependencies, most importantly [Valibot](https://valibot.dev/) for remote data validation and guaranteeing type safety. Fetch API is used for making HTTP requests.
|
It uses a minimal set of dependencies, most importantly [Valibot](https://valibot.dev/) for remote data validation and guaranteeing type safety. Fetch API is used for making HTTP requests.
|
||||||
|
|
||||||
The development of `pl-api` happens inside the `pl-fe` monorepo. You can find the source code in the `packages/pl-api` directory of the `pl-fe` repository.
|
The development of `pl-api` happens inside the Nicolium monorepo. You can find the source code in the `packages/pl-api` directory of the Nicolium repository.
|
||||||
|
|
||||||
## Setting up development environment
|
## Setting up development environment
|
||||||
|
|
||||||
Setting up `pl-fe` requires [Node.js](https://nodejs.org/) and [pnpm](https://pnpm.io/) package manager to be installed. Since Node v16.13, Node.js comes with `corepack` pre-installed, which can be used to manage package managers like `pnpm`.
|
Setting up Nicolium requires [Node.js](https://nodejs.org/) and [pnpm](https://pnpm.io/) package manager to be installed. Since Node v16.13, Node.js comes with `corepack` pre-installed, which can be used to manage package managers like `pnpm`.
|
||||||
|
|
||||||
To enable `pnpm` using `corepack`, run the following command:
|
To enable `pnpm` using `corepack`, run the following command:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
corepack enable pnpm
|
corepack enable pnpm
|
||||||
```
|
```
|
||||||
|
|
||||||
You can now proceed to fetching pl-fe Git repository, installing dependencies, and running the development server:
|
You can now proceed to fetching Nicolium Git repository, installing dependencies, and running the development server:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Clone the pl-fe repository
|
# Clone the Nicolium repository
|
||||||
git clone https://codeberg.org/mkljczk/pl-fe.git
|
git clone https://codeberg.org/mkljczk/nicolium.git
|
||||||
cd pl-fe
|
cd nicolium
|
||||||
# Install dependencies
|
# Install dependencies
|
||||||
pnpm install
|
pnpm install
|
||||||
# Build the pl-api dependency
|
# Build the pl-api dependency
|
||||||
@ -32,7 +31,7 @@ This will start a Vite development server where you can use `pl-api` client insi
|
|||||||
|
|
||||||
## Contributing guidelines
|
## Contributing guidelines
|
||||||
|
|
||||||
`pl-fe` monorepo is hosted on [Codeberg](https://codeberg.org/mkljczk/pl-fe) and [GitHub](https://github.com/mkljczk/pl-fe). While issues are only tracked on Codeberg, you can submit pull requests on both platforms. Remember to follow the [Code of Conduct](../code-of-conduct.md) when interacting with the community.
|
Nicolium monorepo is hosted on [Codeberg](https://codeberg.org/mkljczk/nicolium) and [GitHub](https://github.com/mkljczk/nicolium). While issues are only tracked on Codeberg, you can submit pull requests on both platforms. Remember to follow the [Code of Conduct](../code-of-conduct.md) when interacting with the community.
|
||||||
|
|
||||||
The project uses [ESLint](https://eslint.org/) for code style checking. You can run the linter using the following command:
|
The project uses [ESLint](https://eslint.org/) for code style checking. You can run the linter using the following command:
|
||||||
|
|
||||||
|
|||||||
@ -1,73 +0,0 @@
|
|||||||
# Contributing to pl-fe
|
|
||||||
|
|
||||||
The page intends to provide a technical overview of the `pl-fe` codebase and guidelines for potential contributors.
|
|
||||||
|
|
||||||
## Used technologies
|
|
||||||
|
|
||||||
`pl-fe` is a single page application built using the [React](https://react.dev/) framework. It uses [TypeScript](https://www.typescriptlang.org/) as the programming language and [Vite](https://vitejs.dev/) as the build tool. Routing is handled by [TanStack Router](https://tanstack.com/router/latest). Client state management is done using [Zustand](https://zustand-demo.pmnd.rs/) and server state management using [TanStack Query](https://tanstack.com/query/latest).
|
|
||||||
|
|
||||||
!!! note
|
|
||||||
Important parts of `pl-fe` are currently being refactored to use a different set of libraries. You can find occurrences of tools being phased out, like Redux or TailwindCSS. Larger contributions should wait until the refactor is complete.
|
|
||||||
|
|
||||||
`pl-fe` also uses `pl-api` library for interacting with the Mastodon-compatible backends. The goal of `pl-api` is to provide a unified, type-safe API for multiple backends extending Mastodon API in incompatible ways. You can find the `pl-api` source code in the `packages/pl-api` directory of the `pl-fe` repository.
|
|
||||||
|
|
||||||
## Setting up development environment
|
|
||||||
|
|
||||||
Setting up `pl-fe` requires [Node.js](https://nodejs.org/) and [pnpm](https://pnpm.io/) package manager to be installed. Since Node v16.13, Node.js comes with `corepack` pre-installed, which can be used to manage package managers like `pnpm`.
|
|
||||||
|
|
||||||
To enable `pnpm` using `corepack`, run the following command:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
corepack enable pnpm
|
|
||||||
```
|
|
||||||
|
|
||||||
You can now proceed to fetching pl-fe Git repository, installing dependencies, and—finally—running the development server:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Clone the pl-fe repository
|
|
||||||
git clone https://codeberg.org/mkljczk/pl-fe.git
|
|
||||||
cd pl-fe
|
|
||||||
# Install dependencies
|
|
||||||
pnpm install
|
|
||||||
# Build the pl-api dependency
|
|
||||||
pnpm -F pl-api build # Use `pnpm -F pl-api watch` if you want to develop pl-api alongside pl-fe
|
|
||||||
# Run the pl-fe development server (by default at http://localhost:7312)
|
|
||||||
pnpm -F pl-fe dev
|
|
||||||
```
|
|
||||||
|
|
||||||
The server supports hot module reloading, so any changes you make to the source code will be reflected in the browser automatically.
|
|
||||||
|
|
||||||
!!! tip
|
|
||||||
You can install the [React Developer Tools](https://react.dev/learn/react-developer-tools) browser extension to inspect components, their props and state. It might help you understand the application better and identify performance problems. It is available for [Firefox](https://addons.mozilla.org/en-US/firefox/addon/react-devtools/), [Chrome](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?hl=en) (and compatible Chromium-based browsers) and [Edge](https://microsoftedge.microsoft.com/addons/detail/react-developer-tools/gpphkfbcpidddadnkolkpfckpihlkkil).
|
|
||||||
|
|
||||||
## Testing
|
|
||||||
|
|
||||||
Currently, tests are disabled in `pl-fe`. They will be reintroduced after the ongoing refactor is complete.
|
|
||||||
|
|
||||||
## Contributing guidelines
|
|
||||||
|
|
||||||
`pl-fe` hosts its repository on [Codeberg](https://codeberg.org/mkljczk/pl-fe) and [GitHub](https://github.com/mkljczk/pl-fe). While issues are only tracked on Codeberg, you can submit pull requests on both platforms. Remember to follow the [Code of Conduct](../code-of-conduct.md) when interacting with the community.
|
|
||||||
|
|
||||||
The project uses [ESLint](https://eslint.org/) and [Stylelint](https://stylelint.io/) for code style checking, which is automatically run on every commit using [Husky](https://typicode.github.io/husky). You can run the linters manually using the following command:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
pnpm -F pl-fe lint
|
|
||||||
```
|
|
||||||
|
|
||||||
While contributing code, try to follow the existing coding style. Common sense rules regarding contributions apply. Keep your changes focused on a single issue or feature. Do not create pull requests including larger changes you don't understand fully—whether it's from another project or some auto-generated code.
|
|
||||||
|
|
||||||
## Localization
|
|
||||||
|
|
||||||
[React Intl](https://formatjs.github.io/docs/react-intl/) is used for localizing `pl-fe`. All user-visible strings, unless provided by backend, should be made translatable.
|
|
||||||
|
|
||||||
Before committing changes adding or modifying user-visible strings, make sure to extract the messages using the following command:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
pnpm -F pl-fe i18n
|
|
||||||
```
|
|
||||||
|
|
||||||
You can help translating `pl-fe` into your language on [Weblate](https://hosted.weblate.org/projects/pl-fe/).
|
|
||||||
|
|
||||||
<a href="https://hosted.weblate.org/engage/pl-fe/">
|
|
||||||
<img src="https://hosted.weblate.org/widget/pl-fe/287x66-grey.png" alt="Translation status" />
|
|
||||||
</a>
|
|
||||||
@ -1,8 +1,8 @@
|
|||||||
# Installing pl-fe as Iceshrimp.NET frontend
|
# Installing Nicolium as Iceshrimp.NET frontend
|
||||||
|
|
||||||
Iceshrimp.NET does not have built-in support for alternative frontends. However, there are ways to use `pl-fe` as the frontend for Iceshrimp.NET by rerouting specific requests using a reverse proxy like Nginx.
|
Iceshrimp.NET does not have built-in support for alternative frontends. However, there are ways to use Nicolium as the frontend for Iceshrimp.NET by rerouting specific requests using a reverse proxy like Nginx.
|
||||||
|
|
||||||
While this is the only way to use some of Iceshrimp.NET-specific features with `pl-fe`, because of Iceshrimp.NET CORS configuration, remember that it doesn't have full feature parity with the default Iceshrimp.NET frontend. You might prefer using `pl-fe` [in standalone mode](./standalone.md) instead.
|
While this is the only way to use some of Iceshrimp.NET-specific features with Nicolium, because of Iceshrimp.NET CORS configuration, remember that it doesn't have full feature parity with the default Iceshrimp.NET frontend. You might prefer using Nicolium [in standalone mode](./standalone.md) instead.
|
||||||
|
|
||||||
## Example Nginx configuration
|
## Example Nginx configuration
|
||||||
|
|
||||||
@ -13,7 +13,7 @@ map $http_upgrade $connection_upgrade {
|
|||||||
}
|
}
|
||||||
|
|
||||||
map "$http_accept,$http_content_type" $maybe_activitypub {
|
map "$http_accept,$http_content_type" $maybe_activitypub {
|
||||||
default @plfe;
|
default @nicolium;
|
||||||
|
|
||||||
"~application/json" @shrimp;
|
"~application/json" @shrimp;
|
||||||
"~application/activity\+json" @shrimp;
|
"~application/activity\+json" @shrimp;
|
||||||
@ -37,7 +37,7 @@ server {
|
|||||||
try_files /dev/null $maybe_activitypub;
|
try_files /dev/null $maybe_activitypub;
|
||||||
}
|
}
|
||||||
|
|
||||||
location @plfe {
|
location @nicolium {
|
||||||
try_files /index.html /dev/null;
|
try_files /index.html /dev/null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
# Installing pl-fe as Mitra frontend
|
# Installing Nicolium as Mitra frontend
|
||||||
|
|
||||||
Installing `pl-fe` as a frontend for Mitra is no different from installing the default Mitra Web frontend. Just extract the `pl-fe` files into the directory specified in `config.yaml` under `web_client_dir`, by default `/usr/share/mitra/www`.
|
Installing Nicolium as a frontend for Mitra is no different from installing the default Mitra Web frontend. Just extract the Nicolium files into the directory specified in `config.yaml` under `web_client_dir`, by default `/usr/share/mitra/www`.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -O https://pl.mkljczk.pl/pl-fe.zip
|
curl -O https://pl.mkljczk.pl/pl-fe.zip
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
# Installing pl-fe as Pleroma/Akkoma frontend
|
# Installing Nicolium as Pleroma/Akkoma frontend
|
||||||
|
|
||||||
## Installation in instance static directory
|
## Installation in instance static directory
|
||||||
|
|
||||||
The most straightforward way to install `pl-fe` as a frontend for Pleroma or Akkoma is to simply download it and place its files in the `/instance/static` directory of your Pleroma/Akkoma installation (usually `/opt/pleroma/instance/static` or `/opt/akkoma/instance/static`, accordingly).
|
The most straightforward way to install Nicolium as a frontend for Pleroma or Akkoma is to simply download it and place its files in the `/instance/static` directory of your Pleroma/Akkoma installation (usually `/opt/pleroma/instance/static` or `/opt/akkoma/instance/static`, accordingly).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -O https://pl.mkljczk.pl/pl-fe.zip
|
curl -O https://pl.mkljczk.pl/pl-fe.zip
|
||||||
@ -12,9 +12,9 @@ rm pl-fe.zip
|
|||||||
|
|
||||||
## Installation via Pleroma/Akkoma frontend management
|
## Installation via Pleroma/Akkoma frontend management
|
||||||
|
|
||||||
It is also possible to use the Pleroma frontend management tool. You can find more information about it in the [Pleroma documentation](https://docs.pleroma.social/backend/administration/frontends-management/). On Pleroma, you can use either the PleromaFE built-in admin dashboard or the older AdminFE to install `pl-fe` and set it as the server frontend. You don't have to provide any URL. It's right there in Pleroma.
|
It is also possible to use the Pleroma/Akkoma frontend management tool. You can find more information about it in the [Pleroma documentation](https://docs.pleroma.social/backend/administration/frontends-management/). You can use either the PleromaFE built-in admin dashboard or the older AdminFE to install Nicolium and set it as the server frontend. You don't have to provide any URL. It's right there in Pleroma/Akkoma.
|
||||||
|
|
||||||
On Akkoma, however, there is no `pl-fe` in the default available frontends list ([yet?](https://akkoma.dev/AkkomaGang/akkoma/pulls/945)). You can still install it, but you need to explicitly provide the URL to `pl-fe`. To install it from CLI, use:
|
To install it from CLI, use:
|
||||||
|
|
||||||
### OTP
|
### OTP
|
||||||
```bash
|
```bash
|
||||||
@ -27,7 +27,7 @@ On Akkoma, however, there is no `pl-fe` in the default available frontends list
|
|||||||
mix pleroma.frontend install pl-fe --ref develop --build-url https://pl.mkljczk.pl/pl-fe.zip --build-dir .
|
mix pleroma.frontend install pl-fe --ref develop --build-url https://pl.mkljczk.pl/pl-fe.zip --build-dir .
|
||||||
```
|
```
|
||||||
|
|
||||||
It is now possible to set `pl-fe` as the primary frontend in the configuration file or via AdminFE:
|
It is now possible to set Nicolium as the primary frontend in the configuration file or via AdminFE:
|
||||||
```elixir
|
```elixir
|
||||||
config :pleroma, :frontends,
|
config :pleroma, :frontends,
|
||||||
primary: %{
|
primary: %{
|
||||||
@ -37,4 +37,4 @@ config :pleroma, :frontends,
|
|||||||
...
|
...
|
||||||
```
|
```
|
||||||
|
|
||||||
On Akkoma, it is also possible for individual users to select their preferred frontend to `pl-fe` by visiting `/akkoma/frontend` page on their Akkoma instance.
|
On Akkoma, it is also possible for individual users to select their preferred frontend to Nicolium by visiting `/akkoma/frontend` page on their Akkoma instance.
|
||||||
@ -1,16 +1,16 @@
|
|||||||
# Standalone pl-fe installation
|
# Standalone Nicolium installation
|
||||||
|
|
||||||
To install `pl-fe` in standalone mode, allowing to sign in to any instance implementing Mastodon client API, you only need a static web server to serve the files. As usual on single page applications with client-side routing, the server must be configured to fallback to `index.html` for non-matching routes.
|
To install Nicolium in standalone mode, allowing to sign in to any instance implementing Mastodon client API, you only need a static web server to serve the files. As usual on single page applications with client-side routing, the server must be configured to fallback to `index.html` for non-matching routes.
|
||||||
|
|
||||||
## Example Caddy configuration
|
## Example Caddy configuration
|
||||||
|
|
||||||
```caddy
|
```caddy
|
||||||
pl-fe.example.com {
|
nicolium.example.com {
|
||||||
root * /var/www/pl-fe
|
root * /var/www/nicolium
|
||||||
encode
|
encode
|
||||||
try_files {path} /index.html
|
try_files {path} /index.html
|
||||||
file_server
|
file_server
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
This assumes you're serving `pl-fe` under the pl-fe.example.com domain and the `pl-fe` files are located in `/var/www/pl-fe`. You can download `pl-fe` from `https://pl.mkljczk.pl/pl-fe.zip` or [build it from source](../building/pl-fe.md).
|
This assumes you're serving Nicolium under the nicolium.example.com domain and the Nicolium files are located in `/var/www/nicolium`. You can download Nicolium from `https://pl.mkljczk.pl/pl-fe.zip` or [build it from source](../building/nicolium.md).
|
||||||
@ -1,4 +1,4 @@
|
|||||||
site_name: pl-fe Documentation
|
site_name: Nicolium (formerly pl-fe) Documentation
|
||||||
site_url: https://pl.mkljczk.pl/docs/
|
site_url: https://pl.mkljczk.pl/docs/
|
||||||
theme:
|
theme:
|
||||||
name: material
|
name: material
|
||||||
|
|||||||
@ -37,8 +37,8 @@ For unsupported projects, it falls back to a basic feature set, though every met
|
|||||||
|
|
||||||
## Projects using `pl-api`
|
## Projects using `pl-api`
|
||||||
|
|
||||||
* [`pl-fe`](https://codeberg.org/mkljczk/pl-fe/src/branch/develop/packages/pl-fe) is a web client for Mastodon-compatible servers forked from Soapbox. It uses `pl-api` for API interactions.
|
* [Nicolium](https://codeberg.org/mkljczk/nicolium/src/branch/develop/packages/pl-fe) is a web client for Mastodon-compatible servers forked from Soapbox. It uses `pl-api` for API interactions.
|
||||||
* [`pl-hooks`](https://codeberg.org/mkljczk/pl-fe/src/branch/develop/packages/pl-hooks) is a work-in-progress library utilizing `pl-api`.
|
* [`pl-hooks`](https://codeberg.org/mkljczk/nicolium/src/branch/develop/packages/pl-hooks) is a work-in-progress library utilizing `pl-api`.
|
||||||
|
|
||||||
If you are using `pl-api` in your project, please open a pull request with a link to the project.
|
If you are using `pl-api` in your project, please open a pull request with a link to the project.
|
||||||
|
|
||||||
|
|||||||
@ -8,7 +8,7 @@ pl-api is a TypeScript/JavaScript library that provides a type-safe client for i
|
|||||||
|
|
||||||
- Version: 1.0.0-rc.94
|
- Version: 1.0.0-rc.94
|
||||||
- License: AGPL-3.0-or-later
|
- License: AGPL-3.0-or-later
|
||||||
- Homepage: https://codeberg.org/mkljczk/pl-fe/src/branch/develop/packages/pl-api
|
- Homepage: https://codeberg.org/mkljczk/nicolium/src/branch/develop/packages/pl-api
|
||||||
- Documentation: https://pl.mkljczk.pl/pl-api-docs
|
- Documentation: https://pl.mkljczk.pl/pl-api-docs
|
||||||
- NPM package: https://www.npmjs.com/package/pl-api
|
- NPM package: https://www.npmjs.com/package/pl-api
|
||||||
|
|
||||||
@ -95,8 +95,8 @@ page1.items.forEach(account => console.log(account.username));
|
|||||||
|
|
||||||
## Projects using pl-api
|
## Projects using pl-api
|
||||||
|
|
||||||
- **pl-fe** - Web client for Mastodon-compatible servers (https://codeberg.org/mkljczk/pl-fe)
|
- Nicolium - Web client for Mastodon-compatible servers (https://codeberg.org/mkljczk/nicolium)
|
||||||
- **pl-hooks** - React hooks library for Mastodon APIs (https://codeberg.org/mkljczk/pl-fe/src/branch/develop/packages/pl-hooks)
|
- **pl-hooks** - React hooks library for Mastodon APIs (https://codeberg.org/mkljczk/nicolium/src/branch/develop/packages/pl-hooks)
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
@ -159,8 +159,8 @@ stream.listen((event) => {
|
|||||||
|
|
||||||
## Links
|
## Links
|
||||||
|
|
||||||
- Repository: https://codeberg.org/mkljczk/pl-fe
|
- Repository: https://codeberg.org/mkljczk/nicolium
|
||||||
- Issues: https://codeberg.org/mkljczk/pl-fe/issues
|
- Issues: https://codeberg.org/mkljczk/nicolium/issues
|
||||||
- NPM package: https://www.npmjs.com/package/pl-api
|
- NPM package: https://www.npmjs.com/package/pl-api
|
||||||
- API documentation: https://pl.mkljczk.pl/pl-api-docs
|
- API documentation: https://pl.mkljczk.pl/pl-api-docs
|
||||||
- Mastodon API docs: https://docs.joinmastodon.org
|
- Mastodon API docs: https://docs.joinmastodon.org
|
||||||
|
|||||||
@ -2,13 +2,13 @@
|
|||||||
"name": "pl-api",
|
"name": "pl-api",
|
||||||
"version": "1.0.0-rc.97",
|
"version": "1.0.0-rc.97",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"homepage": "https://codeberg.org/mkljczk/pl-fe/src/branch/develop/packages/pl-api",
|
"homepage": "https://codeberg.org/mkljczk/nicolium/src/branch/develop/packages/pl-api",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+https://codeberg.org/mkljczk/pl-fe.git"
|
"url": "git+https://codeberg.org/mkljczk/nicolium.git"
|
||||||
},
|
},
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://codeberg.org/mkljczk/pl-fe/issues"
|
"url": "https://codeberg.org/mkljczk/nicolium/issues"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@ -6,7 +6,7 @@ Changes made since the project forked from Soapbox in April 2024.
|
|||||||
|
|
||||||
### Major changes
|
### Major changes
|
||||||
|
|
||||||
- Switched to a separate library [`pl-api`](https://codeberg.org/mkljczk/pl-fe/src/branch/develop/packages/pl-api) for Mastodon API integration. It is mostly written from scratch, inheriting minor code parts from Soapbox/Mastodon. This also comes with improved compatibility with various Mastodon API extensions and abstracts out the implementation details.
|
- Switched to a separate library [`pl-api`](https://codeberg.org/mkljczk/nicolium/src/branch/develop/packages/pl-api) for Mastodon API integration. It is mostly written from scratch, inheriting minor code parts from Soapbox/Mastodon. This also comes with improved compatibility with various Mastodon API extensions and abstracts out the implementation details.
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "pl-fe",
|
"name": "Nicolium",
|
||||||
"description": "Mastodon-compatible social media front-end.",
|
"description": "Mastodon-compatible social media front-end.",
|
||||||
"keywords": ["fediverse"],
|
"keywords": ["fediverse"],
|
||||||
"website": "https://codeberg.org/mkljczk/pl-fe",
|
"website": "https://codeberg.org/mkljczk/nicolium",
|
||||||
"stack": "container"
|
"stack": "container"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,20 +1,20 @@
|
|||||||
{
|
{
|
||||||
"name": "pl-fe",
|
"name": "pl-fe",
|
||||||
"displayName": "pl-fe",
|
"displayName": "Nicolium",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"description": "Mastodon-compatible social media front-end",
|
"description": "Mastodon-compatible social media front-end",
|
||||||
"homepage": "https://codeberg.org/mkljczk/pl-fe",
|
"homepage": "https://codeberg.org/mkljczk/nicolium",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://codeberg.org/mkljczk/pl-fe"
|
"url": "https://codeberg.org/mkljczk/nicolium"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"fediverse",
|
"fediverse",
|
||||||
"pleroma"
|
"pleroma"
|
||||||
],
|
],
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://codeberg.org/mkljczk/pl-fe/issues"
|
"url": "https://codeberg.org/mkljczk/nicolium/issues"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "npx vite serve",
|
"start": "npx vite serve",
|
||||||
|
|||||||
@ -1173,20 +1173,21 @@
|
|||||||
"keyboard_shortcuts.toot": "to start a new post",
|
"keyboard_shortcuts.toot": "to start a new post",
|
||||||
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
|
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
|
||||||
"keyboard_shortcuts.up": "to move up in the list",
|
"keyboard_shortcuts.up": "to move up in the list",
|
||||||
"landing.customizable.description": "pl-fe lets you choose between three themes and adjust accent color to your liking.",
|
"landing.customizable.description": "Nicolium lets you choose between three themes and adjust accent color to your liking.",
|
||||||
"landing.customizable.title": "Customizable.",
|
"landing.customizable.title": "Customizable.",
|
||||||
"landing.description": "pl-fe is a feature-rich Fediverse web client.",
|
"landing.description": "Nicolium is a feature-rich Fediverse web client.",
|
||||||
"landing.feature_rich.description": "pl-fe includes a lot features to improve your experience, like WYSIWYG text editor, draft posts and language detection.",
|
"landing.feature_rich.description": "Nicolium includes a lot features to improve your experience, like WYSIWYG text editor, draft posts and language detection.",
|
||||||
"landing.feature_rich.title": "Feature-rich.",
|
"landing.feature_rich.title": "Feature-rich.",
|
||||||
"landing.open_source.description": "pl-fe is free and open source software. You can participate in development, contribute to the project or report bugs.",
|
"landing.logo": "Nicolium (formerly pl-fe)",
|
||||||
|
"landing.open_source.description": "Nicolium is free and open source software. You can participate in development, contribute to the project or report bugs.",
|
||||||
"landing.open_source.title": "Open source.",
|
"landing.open_source.title": "Open source.",
|
||||||
"landing.pl_api.description": "pl-fe implements features not present in standard Mastodon API, like emoji reactions, chats or interaction policies.",
|
"landing.pl_api.description": "Nicolium implements features not present in standard Mastodon API, like emoji reactions, chats or interaction policies.",
|
||||||
"landing.pl_api.title": "Get the most out of your Fediverse instance.",
|
"landing.pl_api.title": "Get the most out of your Fediverse instance.",
|
||||||
"landing.private.description": "pl-fe includes features which help you maintain online privacy. This includes URL cleaning, which helps you remove unwanted parts of URLs used to mark your online activity.",
|
"landing.private.description": "Nicolium includes features which help you maintain online privacy. This includes URL cleaning, which helps you remove unwanted parts of URLs used to mark your online activity.",
|
||||||
"landing.private.title": "Stay private.",
|
"landing.private.title": "Stay private.",
|
||||||
"landing.sign_in": "Sign in",
|
"landing.sign_in": "Sign in",
|
||||||
"landing.source_code": "Source code",
|
"landing.source_code": "Source code",
|
||||||
"landing.use_with_platform.description": "pl-fe works with any backend implementing Mastodon API.",
|
"landing.use_with_platform.description": "Nicolium works with any backend implementing Mastodon API.",
|
||||||
"landing.use_with_platform.title": "Use with your favorite Fediverse platform.",
|
"landing.use_with_platform.title": "Use with your favorite Fediverse platform.",
|
||||||
"lightbox.close": "Close",
|
"lightbox.close": "Close",
|
||||||
"lightbox.expand": "Expand",
|
"lightbox.expand": "Expand",
|
||||||
|
|||||||
@ -166,7 +166,7 @@ const CreateAppPage: React.FC = () => {
|
|||||||
<FormGroup labelText={<FormattedMessage id='app_create.website_label' defaultMessage='Website' />}>
|
<FormGroup labelText={<FormattedMessage id='app_create.website_label' defaultMessage='Website' />}>
|
||||||
<Input
|
<Input
|
||||||
type='text'
|
type='text'
|
||||||
placeholder='https://codeberg.org/mkljczk/pl-fe'
|
placeholder='https://codeberg.org/mkljczk/nicolium'
|
||||||
onChange={handleParamChange('website')}
|
onChange={handleParamChange('website')}
|
||||||
value={params.website}
|
value={params.website}
|
||||||
/>
|
/>
|
||||||
@ -175,7 +175,7 @@ const CreateAppPage: React.FC = () => {
|
|||||||
<FormGroup labelText={<FormattedMessage id='app_create.redirect_uri_label' defaultMessage='Redirect URIs' />}>
|
<FormGroup labelText={<FormattedMessage id='app_create.redirect_uri_label' defaultMessage='Redirect URIs' />}>
|
||||||
<Input
|
<Input
|
||||||
type='text'
|
type='text'
|
||||||
placeholder='https://codeberg.org/mkljczk/pl-fe'
|
placeholder='https://codeberg.org/mkljczk/nicolium'
|
||||||
onChange={handleParamChange('redirect_uris')}
|
onChange={handleParamChange('redirect_uris')}
|
||||||
value={params.redirect_uris}
|
value={params.redirect_uris}
|
||||||
required
|
required
|
||||||
|
|||||||
@ -17,36 +17,36 @@ const LandingPage = () => (
|
|||||||
<Column withHeader={false}>
|
<Column withHeader={false}>
|
||||||
<Stack space={4}>
|
<Stack space={4}>
|
||||||
<LogoText>
|
<LogoText>
|
||||||
pl-fe
|
<FormattedMessage id='landing.logo' defaultMessage='Nicolium (formerly pl-fe)' />
|
||||||
</LogoText>
|
</LogoText>
|
||||||
<Text><FormattedMessage id='landing.description' defaultMessage='pl-fe is a feature-rich Fediverse web client.' /></Text>
|
<Text><FormattedMessage id='landing.description' defaultMessage='Nicolium is a feature-rich Fediverse web client.' /></Text>
|
||||||
<HStack justifyContent='end' space={4}>
|
<HStack justifyContent='end' space={4}>
|
||||||
<Button href={sourceCode.url}><FormattedMessage id='landing.source_code' defaultMessage='Source code' /></Button>
|
<Button href={sourceCode.url}><FormattedMessage id='landing.source_code' defaultMessage='Source code' /></Button>
|
||||||
<Button to='/login/external' theme='primary'><FormattedMessage id='landing.sign_in' defaultMessage='Sign in' /></Button>
|
<Button to='/login/external' theme='primary'><FormattedMessage id='landing.sign_in' defaultMessage='Sign in' /></Button>
|
||||||
</HStack>
|
</HStack>
|
||||||
<Card variant='rounded'>
|
<Card variant='rounded'>
|
||||||
<CardTitle title={<FormattedMessage id='landing.use_with_platform.title' defaultMessage='Use with your favorite Fediverse platform.' />} truncate={false} />
|
<CardTitle title={<FormattedMessage id='landing.use_with_platform.title' defaultMessage='Use with your favorite Fediverse platform.' />} truncate={false} />
|
||||||
<Text><FormattedMessage id='landing.use_with_platform.description' defaultMessage='pl-fe works with any backend implementing Mastodon API.' /></Text>
|
<Text><FormattedMessage id='landing.use_with_platform.description' defaultMessage='Nicolium works with any backend implementing Mastodon API.' /></Text>
|
||||||
</Card>
|
</Card>
|
||||||
<Card variant='rounded'>
|
<Card variant='rounded'>
|
||||||
<CardTitle title={<FormattedMessage id='landing.feature_rich.title' defaultMessage='Feature-rich.' />} truncate={false} />
|
<CardTitle title={<FormattedMessage id='landing.feature_rich.title' defaultMessage='Feature-rich.' />} truncate={false} />
|
||||||
<Text><FormattedMessage id='landing.feature_rich.description' defaultMessage='pl-fe includes a lot features to improve your experience, like WYSIWYG text editor, draft posts and language detection.' /></Text>
|
<Text><FormattedMessage id='landing.feature_rich.description' defaultMessage='Nicolium includes a lot features to improve your experience, like WYSIWYG text editor, draft posts and language detection.' /></Text>
|
||||||
</Card>
|
</Card>
|
||||||
<Card variant='rounded'>
|
<Card variant='rounded'>
|
||||||
<CardTitle title={<FormattedMessage id='landing.pl_api.title' defaultMessage='Get the most out of your Fediverse instance.' />} truncate={false} />
|
<CardTitle title={<FormattedMessage id='landing.pl_api.title' defaultMessage='Get the most out of your Fediverse instance.' />} truncate={false} />
|
||||||
<Text><FormattedMessage id='landing.pl_api.description' defaultMessage='pl-fe implements features not present in standard Mastodon API, like emoji reactions, chats or interaction policies.' /></Text>
|
<Text><FormattedMessage id='landing.pl_api.description' defaultMessage='Nicolium implements features not present in standard Mastodon API, like emoji reactions, chats or interaction policies.' /></Text>
|
||||||
</Card>
|
</Card>
|
||||||
<Card variant='rounded'>
|
<Card variant='rounded'>
|
||||||
<CardTitle title={<FormattedMessage id='landing.customizable.title' defaultMessage='Customizable.' />} truncate={false} />
|
<CardTitle title={<FormattedMessage id='landing.customizable.title' defaultMessage='Customizable.' />} truncate={false} />
|
||||||
<Text><FormattedMessage id='landing.customizable.description' defaultMessage='pl-fe lets you choose between three themes and adjust accent color to your liking.' /></Text>
|
<Text><FormattedMessage id='landing.customizable.description' defaultMessage='Nicolium lets you choose between three themes and adjust accent color to your liking.' /></Text>
|
||||||
</Card>
|
</Card>
|
||||||
<Card variant='rounded'>
|
<Card variant='rounded'>
|
||||||
<CardTitle title={<FormattedMessage id='landing.private.title' defaultMessage='Stay private.' />} truncate={false} />
|
<CardTitle title={<FormattedMessage id='landing.private.title' defaultMessage='Stay private.' />} truncate={false} />
|
||||||
<Text><FormattedMessage id='landing.private.description' defaultMessage='pl-fe includes features which help you maintain online privacy. This includes URL cleaning, which helps you remove unwanted parts of URLs used to mark your online activity.' /></Text>
|
<Text><FormattedMessage id='landing.private.description' defaultMessage='Nicolium includes features which help you maintain online privacy. This includes URL cleaning, which helps you remove unwanted parts of URLs used to mark your online activity.' /></Text>
|
||||||
</Card>
|
</Card>
|
||||||
<Card variant='rounded'>
|
<Card variant='rounded'>
|
||||||
<CardTitle title={<FormattedMessage id='landing.open_source.title' defaultMessage='Open source.' />} truncate={false} />
|
<CardTitle title={<FormattedMessage id='landing.open_source.title' defaultMessage='Open source.' />} truncate={false} />
|
||||||
<Text><FormattedMessage id='landing.open_source.description' defaultMessage='pl-fe is free and open source software. You can participate in development, contribute to the project or report bugs.' /></Text>
|
<Text><FormattedMessage id='landing.open_source.description' defaultMessage='Nicolium is free and open source software. You can participate in development, contribute to the project or report bugs.' /></Text>
|
||||||
</Card>
|
</Card>
|
||||||
</Stack>
|
</Stack>
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import boopOgg from '@/assets/sounds/boop.ogg';
|
|||||||
import chatMp3 from '@/assets/sounds/chat.mp3';
|
import chatMp3 from '@/assets/sounds/chat.mp3';
|
||||||
import chatOgg from '@/assets/sounds/chat.ogg';
|
import chatOgg from '@/assets/sounds/chat.ogg';
|
||||||
|
|
||||||
/** pl-fe audio clip. */
|
/** Nicolium audio clip. */
|
||||||
interface Sound {
|
interface Sound {
|
||||||
src: string;
|
src: string;
|
||||||
type: string;
|
type: string;
|
||||||
|
|||||||
@ -43,7 +43,7 @@ const fromBasicColors = ({ brandColor, accentColor }: {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Convert pl-fe Config into Tailwind colors */
|
/** Convert Nicolium Config into Tailwind colors */
|
||||||
const toTailwind = (config: {
|
const toTailwind = (config: {
|
||||||
brandColor: string;
|
brandColor: string;
|
||||||
accentColor: string | null;
|
accentColor: string | null;
|
||||||
|
|||||||
@ -63,8 +63,8 @@ const config = defineConfig(({ command }) => ({
|
|||||||
},
|
},
|
||||||
manifestFilename: 'manifest.json',
|
manifestFilename: 'manifest.json',
|
||||||
manifest: {
|
manifest: {
|
||||||
name: 'pl-fe',
|
name: 'Nicolium',
|
||||||
short_name: 'pl-fe',
|
short_name: 'Nicolium',
|
||||||
description: 'Mastodon-compatible social media front-end',
|
description: 'Mastodon-compatible social media front-end',
|
||||||
icons: [
|
icons: [
|
||||||
{
|
{
|
||||||
|
|||||||
@ -2,13 +2,13 @@
|
|||||||
"name": "pl-hooks",
|
"name": "pl-hooks",
|
||||||
"version": "0.0.14",
|
"version": "0.0.14",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"homepage": "https://codeberg.org/mkljczk/pl-fe/src/branch/develop/packages/pl-hooks",
|
"homepage": "https://codeberg.org/mkljczk/nicolium/src/branch/develop/packages/pl-hooks",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://codeberg.org/mkljczk/pl-fe"
|
"url": "https://codeberg.org/mkljczk/nicolium"
|
||||||
},
|
},
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://codeberg.org/mkljczk/pl-fe/issues"
|
"url": "https://codeberg.org/mkljczk/nicolium/issues"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
Reference in New Issue
Block a user