Skip to content

Commit

Permalink
switch from asciidoc to mdbook
Browse files Browse the repository at this point in the history
  • Loading branch information
FreddyFunk committed Jul 27, 2023
1 parent def9761 commit 01671bf
Show file tree
Hide file tree
Showing 13 changed files with 127 additions and 67 deletions.
28 changes: 0 additions & 28 deletions .github/workflows/asciidoc-ghpages.yml

This file was deleted.

35 changes: 35 additions & 0 deletions .github/workflows/publish-ghpages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: mdbook-ghpages

# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
push:
branches: [ main ]

permissions:
contents: write # for committing to gh-pages branch.

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
- name: Rust Cache # cache the rust build artefacts
uses: Swatinem/rust-cache@v1
- name: Install mdbook
run: cargo install mdbook
- name: Build # build
run: mkbook build
- name: Deploy
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: book
# this option will not maintain any history of your previous pages deployment
# set to false if you want all page build to be committed to your gh-pages branch history
single-commit: true
19 changes: 19 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
target

# MacOS temp file
.DS_Store

book
book-test
guide/book

.vscode
tests/dummy_book/book/
test_book/book/

# Ignore Jetbrains specific files.
.idea/

# Ignore Vim temporary and swap files.
*.sw?
*~
6 changes: 6 additions & 0 deletions book.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[book]
authors = ["FreddyFunk"]
language = "en"
multilingual = false
src = "src"
title = "Volume Data Suite Documentation"
11 changes: 0 additions & 11 deletions chapter-1.adoc

This file was deleted.

14 changes: 0 additions & 14 deletions chapter-2.adoc

This file was deleted.

14 changes: 0 additions & 14 deletions index.adoc

This file was deleted.

7 changes: 7 additions & 0 deletions src/SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Summary

- [Introduction](./introduction.md)
- [Supported Plattforms](./supported_plattforms.md)
- [Importing Static Volume Data](./importing_static_volume_data.md)
- [Visualization](./visualization.md)
- [Development](./development.md)
33 changes: 33 additions & 0 deletions src/development.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Development
VDS is written in [Rust](https://www.rust-lang.org/) and shaders are written in [WGSL](https://www.w3.org/TR/WGSL/).

Make sure you are using the latest version of stable rust by running `rustup update`. VDS requires a proper graphics driver that provides at least one of the [supported graphics APIs](#cross-platform-support).

## Building from Source for Native

Run it locally with `cargo run --release`.

On Linux you need to first run:

`sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev`

On Fedora Rawhide you need to run:

`dnf install clang clang-devel clang-tools-extra libxkbcommon-devel pkg-config openssl-devel libxcb-devel gtk3-devel atk fontconfig-devel`

## Building from Source for Web

[Trunk](https://trunkrs.dev/) can be used to compile `vds` to WASM and spin up a web server with hot reloading.

1. Install Trunk with `cargo install --locked trunk`.
2. Run `trunk serve` to build and serve on `http://127.0.0.1:8080`. Trunk will rebuild automatically if you edit the project.
3. Open `http://127.0.0.1:8080/index.html#dev` in a browser. See the warning below.

> `assets/sw.js` script will try to cache our VDS app, and loads the cached version when it cannot connect to server allowing VDS to work offline (like PWA).
> appending `#dev` to `index.html` will skip this caching, allowing to load the latest builds during development.
## Deploy for Web
1. Just run `trunk build --release`.
2. It will generate a `dist` directory as a "static html" website
3. Upload the `dist` directory to any of the numerous free hosting websites including [GitHub Pages](https://docs.github.com/en/free-pro-team@latest/github/working-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site).
4. This repo already provides a [workflow](.github/workflows/deploy_github_pages.yml) that auto-deploys VDS to GitHub pages.
3 changes: 3 additions & 0 deletions src/importing_static_volume_data.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Importing Static Volume Data
Currenltly the following file formats can be imported:
- RAW 3D
7 changes: 7 additions & 0 deletions src/introduction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Introduction
Volume Data Suite (VDS) is a free and open source app that can be used to visualize and interact with volumetric image data.

View the web demo app online at <https://online.volumedatasuite.com> or download the [latest native version](https://github.com/Volume-Data-Suite/vds/releases) for your plattform.

## Status
VDS is currently nothing more than a proof of concept and in a very early pre-alpha state. There are many features I want to add, and the API and User Interface is still evolving. _Expect breaking changes!_
14 changes: 14 additions & 0 deletions src/supported_plattforms.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Supported Plattforms
## Cross-Platform Support
Currently the following graphics APIs are supported:
- Windows (Vulkan and DirectX)
- macOS (Metal)
- Linux (Vulkan)
- Web (WebGPU)

## Web Plattform restrictions:
**_WebGL_** is currrently not supported due to significant performance reductions. Make sure that you use the latest version of your web browser and check its **_WebGPU_** support, if you want to use the web based version of VDS. The latest versions of Chromium based browsers like Google Chrome, Microsoft Edge and Chromium itself should work.

**_Direct file system access_** is currently [not possible](https://stackoverflow.com/questions/71017592/can-i-read-files-from-the-disk-by-using-webassembly-re-evaluated) with WebAssembly (WASM). Therefore files can only be opened via drag and drop or by downloading them from a URL and not all file types are supported. Files can only be exported as a download.

**_Gerneral Perfomance_** is better on native versions of VDS that run directly on the operating system and not inside a web browser. Main reason are missing [SIMD](https://en.wikipedia.org/wiki/Single_instruction,_multiple_data) like _f16c_ on x86 or _fp16_ on arm64 which are not available in WASM.
3 changes: 3 additions & 0 deletions src/visualization.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Visualization
Currently the volume data can be visualized as:
- 2D Slices (X-Axis only)

0 comments on commit 01671bf

Please sign in to comment.