Skip to content

Latest commit

 

History

History
126 lines (96 loc) · 4.68 KB

File metadata and controls

126 lines (96 loc) · 4.68 KB

Cristal

Wireframe of a Cristal 
Page

What's Cristal

  • A new 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 as its native UI
  • Ability to work offline, reconnect, and sync content.
Build Status TypeScript Prettier

Useful links

Project details

Project Setup

## Install and update the dependency ranges with the latest versions.
## This command can be run whenever the most up to date version of dependencies is needed.
pnpm update -r --no-save

Starting the project

Starting on default port 9000.

pnpm run start

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

HTTP_PORT=9001 pnpm run start

Starting an electron instance

pnpm run start:electron

Compile and Minify for Production

pnpm run build

Run Unit Tests with Vitest

pnpm run test

Run Functional Tests with Playwright

## 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.
docker run -it --rm -v ./:/cristal -w /cristal xwiki/build-node pnpm run -filter ./web test:e2e

## Run the tests from the web module and update the screenshots
docker run -it --rm -v ./:/cristal -w /cristal xwiki/build-node pnpm run -filter ./web test:e2e:update-snapshots 

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

Lint

pnpm lint

Check for API changes

pnpm run api-extractor:local
# Produces reports in the `etc/` folder of each package.
# The changes in the Markdown files reflects changes in the public APIs of the packages and must be discussed 
# collectively.
# The CI is configured to fail if the command produces unversioned changes.