Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/xwiki-contrib/cristal

Cristal is a new project to build a new modular wiki UI using modern web technologies, which will support multiple backends (including of course XWiki to store Wiki data).
https://github.com/xwiki-contrib/cristal

knowledge-base wiki

Last synced: about 18 hours ago
JSON representation

Cristal is a new project to build a new modular wiki UI using modern web technologies, which will support multiple backends (including of course XWiki to store Wiki data).

Awesome Lists containing this project

README

        

# Cristal


Wireframe of a Cristal 
<br />Page

## What's Cristal

* A new [xwiki.org](xwiki.org) project to provide a modern knowledge base front-end
* A wiki UI to rule them all: Provide a UI that can be plugged onto various content backends (XWiki, local file system,
GitHub, etc.)
* Usable in various forms:
* From a URL in your browser
* Executable locally on your computer (Electron application).
* Embeddable in backends. For example, the intent on the long run is to have Cristal be used by [XWiki](xwiki.org) as
its native UI
* Ability to work offline, reconnect, and sync content.


Build Status
TypeScript
Prettier

## Useful links

* [Roadmap](https://cristal.xwiki.org/xwiki/bin/view/Roadmaps/)
* [Architecture](https://cristal.xwiki.org/xwiki/bin/view/Architecture/)
* [Technological Choices](https://cristal.xwiki.org/xwiki/bin/view/TechnologicalChoices/)
* [Wireframes](https://cristal.xwiki.org/xwiki/bin/view/Wireframes/)
* [UI Components](https://cristal.xwiki.org/xwiki/bin/view/UIComponents/)
* [Backends](https://cristal.xwiki.org/xwiki/bin/view/Backends/)
* [GitHub repository](https://github.com/xwiki-contrib/cristal/)
* [Forum](https://forum.xwiki.org/c/cristal/)

## Project details

* Project Lead: [Manuel Leduc](https://www.xwiki.org/xwiki/bin/view/XWiki/mleduc)
* Documentation: [Documentation](https://cristal.xwiki.org/)
* Downloads:
* `@xwiki/cristal-*` on https://www.npmjs.com/org/xwiki
* binary artifacts on https://github.com/xwiki-contrib/cristal/releases
* [Issue Tracker](https://jira.xwiki.org/projects/CRISTAL/summary)
* Communication: [Forum](https://forum.xwiki.org/c/cristal/18)
* [Development Practices](https://dev.xwiki.org)
* [Supported backends](https://cristal.xwiki.org/xwiki/bin/view/Backends/)
* License: LGPL 2.1
* Translations: all components of https://l10n.xwiki.org/projects/xwiki-contrib/cristal/
* Sonar Dashboard: N/A

## Project Setup

```sh
pnpm install
```

### Starting the project

Starting on default port 9000.

```sh
pnpm run start
```

Starting on an arbitrary port (e.g., 9001)

```shell
HTTP_PORT=9001 pnpm run start
```

### Starting an electron instance

```shell
pnpm run start:electron
```

### Compile and Minify for Production

```sh
pnpm run build
```

### Run Unit Tests with [Vitest](https://vitest.dev/)

```sh
pnpm run test
```

## Run Functional Tests with [Playwright](https://playwright.dev/)

```sh
## Make sure to have the system dependencies and browsers up to date. By filtering
## on the web module we make sure the version of playwright that gets installed is
## the one specified in package.json
pnpm --filter ./web exec playwright install --with-deps

## Run the tests from the web module.
pnpm run --filter ./web test:e2e

## Or, if port 9000 is already used
HTTP_PORT=9001 pnpm run --filter ./web test:e2e
```

### Lint

```sh
pnpm lint
```