diff --git a/.github/workflows/build-page.yml b/.github/workflows/build-page.yml
new file mode 100644
index 0000000..e8a993d
--- /dev/null
+++ b/.github/workflows/build-page.yml
@@ -0,0 +1,156 @@
+name: Build and deploy static site
+
+on:
+ # Trigger the workflow on push
+ push:
+ # Every branch
+ branches:
+ - "**"
+ # Allows you to run this workflow manually from the Actions tab
+ workflow_dispatch:
+
+env:
+ # Set the environment variables to be used in all jobs defined in this workflow
+ # Set the CI_BRANCH environment variable to be the branch name
+ # NOTE: Use the same branch name as the one of EasyDiffractionLib. This is
+ # required to download the Jupyter notebooks from the EasyDiffractionLib repository
+ CI_BRANCH: ${{ github.head_ref || github.ref_name }}
+ REPOSITORY_NAME: diffraction
+ PROJECT_EMAIL: support@easydiffraction.org
+
+jobs:
+
+ # Job 1: Build the static files for the documentation site
+ build-page:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Cancel previous workflow runs
+ uses: n1hility/cancel-previous-runs@v3
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Check-out repository
+ uses: actions/checkout@v4
+
+ # Download the template of the project landing page from the EasyScience/templates-page repository
+ - name: Download dependencies
+ working-directory: ..
+ run: git clone ${GITHUB_SERVER_URL}/EasyScience/templates-page
+
+ # Add the assets from the current project to the downloaded templates-page directory
+ - name: Add assets
+ run: cp -R assets ../templates-page/src/copy
+
+ # Create a config file with the repository name. This is used in the templates-page
+ - name: Create config
+ working-directory: ../templates-page
+ run: |
+ echo '{"project": "${{ env.REPOSITORY_NAME }}"}' > project.json
+
+ # Install npm dependencies needed to build the site in the templates-page directory
+ - name: Install npm dependencies
+ #working-directory: ../templates-page
+ run: |
+ cd ../templates-page
+ npm install
+
+ # Build the site in the templates-page directory
+ - name: Build site
+ #working-directory: ../templates-page
+ run: |
+ cd ../templates-page
+ npm run build
+
+ # Change the email in the contact.php file in the templates-page directory
+ - name: Change email in contact.php
+ #working-directory: ../templates-page
+ run: |
+ cd ../templates-page
+ node_modules/replace-in-file/bin/cli.js contact@easyscience.software ${{ env.PROJECT_EMAIL }} public/php/contact.php
+
+ # Copy the built site from the templates-page directory (../templates-page/public/) to
+ # the current project directory (site/)
+ - name: Copy built site to default working directory
+ run: cp -R ../templates-page/public/ site/
+
+ # Set up the Pages action to configure the static files to be deployed
+ # NOTE: The repository must have GitHub Pages enabled and configured to build using GitHub Actions
+ # This can be done via https://github.com/EasyScience/diffraction/settings/pages
+ # Select: Build and deploy - Source - GitHub Actions
+ - name: Setup GitHub Pages
+ uses: actions/configure-pages@v5
+
+ # Upload the static files from the site/ directory to be used in the next job
+ # This artifact is named github-pages and is a single gzip archive containing a single tar file
+ # The artifact is then used in the next job by actions/deploy-pages to deploy the static files to GitHub Pages
+ # Unfortunately, the artifact is not available for download, so extra steps below are needed to do similar things
+ - name: Upload built site as artifact (for github-pages, all branches)
+ uses: actions/upload-pages-artifact@v3
+ with:
+ path: site/
+
+ # Upload the static files from the site/ directory to be used in the next job
+ # This extra step is needed to allow the download of the artifact in the next job
+ # for pushing its content to the branch named 'easydiffraction.org'
+ - name: Upload built site as artifact (for easydiffraction.org, master branch only)
+ if: ${{ env.CI_BRANCH == 'master' }}
+ uses: actions/upload-artifact@v4
+ with:
+ name: artifact # name of the artifact (without the extension zip)
+ path: site/
+ if-no-files-found: "error"
+ compression-level: 0
+
+ # Job 2: Deploy the static files
+ # To allow the deployment of the static files to GitHub Pages
+ # No restrictions on the branch name is set on https://github.com/EasyScience/diffraction/settings/environments
+ deploy-docs:
+ needs: build-page # previous job 'build-page' need to be finished first
+
+ # Grant GITHUB_TOKEN the permissions required to make a Pages deployment
+ permissions:
+ contents: read
+ pages: write # to deploy to Pages
+ id-token: write # to verify the deployment, originates from an appropriate source
+
+ # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
+ # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
+ concurrency:
+ group: "pages"
+ cancel-in-progress: false
+
+ # Deploy to the github-pages environment
+ environment:
+ name: github-pages # Artifact name
+ url: ${{ steps.deployment.outputs.page_url }}
+
+ runs-on: ubuntu-latest
+
+ steps:
+ # Deploy the static files created in the previous job to GitHub Pages
+ # All branches are deployed to GitHub Pages and available at
+ # https://easyscience.github.io/diffraction
+ # This is needed for debugging purposes
+ - name: Deploy to easyscience.github.io/diffraction (all branches)
+ uses: actions/deploy-pages@v4
+
+ - name: Download built site as artifact from previous job (for easydiffraction.org, master branch only)
+ if: ${{ env.CI_BRANCH == 'master' }}
+ uses: actions/download-artifact@v4
+ with: # name or path are taken from the upload step of the previous job
+ name: artifact
+ path: site/ # directory to extract downloaded zipped artifacts
+
+ # Push the site files created in the previous job to the 'easydiffraction.org' branch
+ # This branch is used to deploy the site to the custom domain https://easydiffraction.org
+ # Deploying is done with a webhook: https://github.com/EasyScience/EasyDiffractionLibDocs/settings/hooks
+ # This is done for the 'master' branch only, when the site is tested with a step above
+ - name: Deploy to easydiffraction.org (master branch)
+ if: ${{ env.CI_BRANCH == 'master' }}
+ uses: s0/git-publish-subdir-action@develop
+ env:
+ GITHUB_TOKEN: ${{ secrets.API_TOKEN_GITHUB }}
+ REPO: self
+ BRANCH: easydiffraction.org
+ FOLDER: site
diff --git a/README.md b/README.md
index 937a5a0..5a821a7 100644
--- a/README.md
+++ b/README.md
@@ -11,18 +11,22 @@
**EasyDiffraction** is a software tool for calculating powder diffraction patterns based on structural models and refining their parameters against experimental data.
-## **Distribution**
+## Distribution
**EasyDiffraction** is available in two forms:
+
- 💻 [EasyDiffraction Application] – A cross-platform desktop application.
- 📦 [EasyDiffraction Library] – A Python library designed for use in scripts and Jupyter notebooks.
-## **About This Repository**
+## About This Repository
+
This repository serves as the **central hub** for the EasyDiffraction family of repositories and provides:
+
- The source for the **project landing page** [http://easydiffraction.org](http://easydiffraction.org).
- A place for [Discussions] relevant to both the 💻 [EasyDiffraction Application] and 📦 [EasyDiffraction Library].
-## **Main Dependencies**
+## Main Dependencies
+
- [EasyScience] – Core building blocks for Python libraries in the EasyScience ecosystem.
- [EasyCrystallography] – Backend crystallographic tools for structure analysis.
- [EasyApp] – GUI components for building scientific desktop applications.
diff --git a/assets/favicon.ico b/assets/favicon.ico
new file mode 100644
index 0000000..23c0866
Binary files /dev/null and b/assets/favicon.ico differ
diff --git a/assets/img/card.png b/assets/img/card.png
new file mode 100644
index 0000000..3e2da86
Binary files /dev/null and b/assets/img/card.png differ
diff --git a/assets/img/card.svg b/assets/img/card.svg
new file mode 100644
index 0000000..422cfb8
--- /dev/null
+++ b/assets/img/card.svg
@@ -0,0 +1,29 @@
+
+
\ No newline at end of file
diff --git a/assets/img/card_wfont.svg b/assets/img/card_wfont.svg
new file mode 100644
index 0000000..12bdf8c
--- /dev/null
+++ b/assets/img/card_wfont.svg
@@ -0,0 +1,46 @@
+
+
\ No newline at end of file
diff --git a/assets/img/hero_darkmode.png b/assets/img/hero_darkmode.png
new file mode 100644
index 0000000..a88fee8
Binary files /dev/null and b/assets/img/hero_darkmode.png differ
diff --git a/assets/img/hero_lightmode.png b/assets/img/hero_lightmode.png
new file mode 100644
index 0000000..4f1a1ea
Binary files /dev/null and b/assets/img/hero_lightmode.png differ
diff --git a/resources/logo/EasyDiffraction-logo_darkmode.svg b/assets/img/logo_darkmode.svg
similarity index 100%
rename from resources/logo/EasyDiffraction-logo_darkmode.svg
rename to assets/img/logo_darkmode.svg
diff --git a/resources/logo/EasyDiffraction-logo_lightmode.svg b/assets/img/logo_lightmode.svg
similarity index 100%
rename from resources/logo/EasyDiffraction-logo_lightmode.svg
rename to assets/img/logo_lightmode.svg
diff --git a/assets/img/logomark.svg b/assets/img/logomark.svg
new file mode 100644
index 0000000..5aab6b1
--- /dev/null
+++ b/assets/img/logomark.svg
@@ -0,0 +1,27 @@
+
+
\ No newline at end of file
diff --git a/assets/img/logomark_bw.svg b/assets/img/logomark_bw.svg
new file mode 100644
index 0000000..5813e57
--- /dev/null
+++ b/assets/img/logomark_bw.svg
@@ -0,0 +1,3 @@
+
diff --git a/assets/video/hero.mp4 b/assets/video/hero.mp4
new file mode 100644
index 0000000..418febd
Binary files /dev/null and b/assets/video/hero.mp4 differ
diff --git a/assets/video/hero.ogv b/assets/video/hero.ogv
new file mode 100644
index 0000000..375029c
Binary files /dev/null and b/assets/video/hero.ogv differ
diff --git a/assets/video/hero.webm b/assets/video/hero.webm
new file mode 100644
index 0000000..f8d9499
Binary files /dev/null and b/assets/video/hero.webm differ
diff --git a/content/footer.yaml b/content/footer.yaml
new file mode 100644
index 0000000..a94151e
--- /dev/null
+++ b/content/footer.yaml
@@ -0,0 +1,12 @@
+project:
+ title: EasyDiffraction
+ icon: icon-easydiffraction
+ url: https://easydiffraction.org
+ year: 2025
+links:
+ - url: https://github.com/easyscience/easydiffractionbeta/releases
+ text: Release Notes
+ - url: https://raw.githubusercontent.com/easyscience/easydiffractionbeta/master/LICENSE.md
+ text: EULA
+ - url: https://github.com/easyscience/easydiffractionbeta
+ icon: fab fa-github
diff --git a/content/home.yaml b/content/home.yaml
new file mode 100644
index 0000000..a6d8f9a
--- /dev/null
+++ b/content/home.yaml
@@ -0,0 +1,119 @@
+hero:
+ title: Making _diffraction_ data analysis and modelling _easy_
+ description: >-
+ An intuitive and user-friendly application which integrates some
+ crystallographic libraries such as
+ [CrysPy](https://github.com/ikibalin/cryspy) and
+ [CrysFML](https://code.ill.fr/scientific-software/crysfml) (experimental).
+ Allowing for the simulation of diffraction patterns based on structural
+ models and refinement against experimental data.
+ poster: assets/img/hero_lightmode.png
+ videos:
+ - video: assets/video/hero.webm
+ - video: assets/video/hero.ogg
+ - video: assets/video/hero.mp4
+
+features:
+ - icon: icon-open-source
+ title: Free and open-source
+ description: >-
+ Anyone is free to use **EasyDiffraction** and the source code is openly
+ shared on GitHub.
+ - icon: icon-multiple-devices
+ title: Cross-platform
+ description: >-
+ **EasyDiffraction** works across operating systems: macOS, Windows, or
+ Linux.
+ - icon: fas fa-thumbs-up
+ title: Easy to use
+ description: >-
+ Intuitive tabbed interface with a clear workflow, built-in step-by-step
+ user guides and video tutorials help speed up data modelling and analysis.
+ - icon: icon-package
+ title: Everything is included
+ description: >-
+ **EasyDiffraction** is distributed as an all-in-one package that includes
+ all the dependencies and can be installed with only a few clicks.
+ - icon: icon-swiss-army-knife
+ title: Multi-functional
+ description: >-
+ **EasyDiffraction** integrates existing crystallographic libraries, such
+ as CrysPy and CrysFML (experimental), to cover different functionality.
+ - icon: fas fa-boxes
+ title: Various techniques
+ description: >-
+ Currently, we partially support 1D time-of-flight (TOF) and constant
+ wavelength (CWL) neutron and X-ray powder diffraction data. More features
+ will be added later.
+ - icon: fas fa-sync-alt
+ title: Live update of calculations
+ description: >-
+ You can modify any parameter manually or with a sidebar slider, and the
+ simulated model curve is automatically recalculated in real time.
+ - icon: fas fa-user
+ title: Human-readable syntax
+ description: >-
+ Input/output files are in simple and human-readable data format STAR/CIF
+ with the specifications of International Union of Crystallography, where
+ possible.
+
+documentation:
+ - icon: fa-solid fa-window-maximize
+ title: Application
+ description: >-
+ The [EasyDiffraction application documentation](https://docs.easydiffraction.org/app)
+ is the place to see how to use EasyDiffraction graphical user interface.
+ - icon: fas fa-book
+ title: Library
+ description: >-
+ The [EasyDiffraction library documentation](https://docs.easydiffraction.org/lib)
+ covers everything related to using EasyDiffraction as a python library.
+
+download:
+ - icon: fab fa-apple
+ top: Download for
+ bottom: macOS
+ details: macOS 14+, Apple Silicon
+ url: https://github.com/EasyScience/EasyDiffractionBeta/releases/download/v$RELEASE_VERSION/EasyDiffraction_v$RELEASE_VERSION_macos-14-AppleSilicon.zip
+ - icon: fab fa-apple
+ top: Download for
+ bottom: macOS
+ details: macOS 13, Intel
+ url: https://github.com/EasyScience/EasyDiffractionBeta/releases/download/v$RELEASE_VERSION/EasyDiffraction_v$RELEASE_VERSION_macos-13-Intel.zip
+ - icon: fab fa-windows
+ top: Download for
+ bottom: Windows
+ details: Windows 10+
+ url: https://github.com/EasyScience/EasyDiffractionBeta/releases/download/v$RELEASE_VERSION/EasyDiffraction_v$RELEASE_VERSION_windows-2022.zip
+ - icon: icon-ubuntu
+ top: Download for
+ bottom: Ubuntu
+ details: Ubuntu 22.04+
+ url: https://github.com/EasyScience/EasyDiffractionBeta/releases/download/v$RELEASE_VERSION/EasyDiffraction_v$RELEASE_VERSION_ubuntu-22.04.zip
+ - icon: icon-snapcraft
+ top: Get it from the
+ bottom: Snap Store
+ details: Most Linux Distributions
+ url: https://snapcraft.io/easydiffraction
+ - icon: fab fa-github
+ top: Run it from
+ bottom: source
+ details: Multi-platform, Python
+ url: https://docs.easydiffraction.org/app/installation/from-source
+
+install:
+ pip: pip install easydiffraction
+
+contact:
+ - icon: fas fa-question-circle
+ title: General questions
+ description: >-
+ For general questions or comments, please contact us at
+ [support@easydiffraction.org](mailto:support@easydiffraction.org), or fill
+ out the form.
+ - icon: fas fa-bug
+ title: Issues and new features
+ description: >-
+ For bug reports and feature requests, please use
+ [GitHub Issue Tracker](https://github.com/easyscience/easydiffractionapp/issues)
+ instead (free registration required).
diff --git a/content/meta.yaml b/content/meta.yaml
new file mode 100644
index 0000000..13e4fbe
--- /dev/null
+++ b/content/meta.yaml
@@ -0,0 +1,5 @@
+url: https://easydiffraction.org
+title: Making diffraction data analysis and modelling easy
+description: >-
+ An intuitive and user-friendly application for simulation of diffraction
+ patterns based on structural models and refinement against experimental data.
diff --git a/content/release.yaml b/content/release.yaml
new file mode 100644
index 0000000..82e4ca1
--- /dev/null
+++ b/content/release.yaml
@@ -0,0 +1,7 @@
+release:
+ app:
+ version: 0.9.9
+ date: 2024-11-14
+ lib:
+ version: 0.3.0
+ date: 2025-01-23
diff --git a/resources/logo/EasyDiffraction-logo_lightmode_wfont.svg b/resources/logo/EasyDiffraction-logo_lightmode_wfont.svg
deleted file mode 100644
index 572ac67..0000000
--- a/resources/logo/EasyDiffraction-logo_lightmode_wfont.svg
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
\ No newline at end of file
diff --git a/resources/logo/EasyDiffractionApp-logo_darkmode.svg b/resources/logo/EasyDiffractionApp-logo_darkmode.svg
deleted file mode 100644
index 364066d..0000000
--- a/resources/logo/EasyDiffractionApp-logo_darkmode.svg
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
\ No newline at end of file
diff --git a/resources/logo/EasyDiffractionApp-logo_lightmode.svg b/resources/logo/EasyDiffractionApp-logo_lightmode.svg
deleted file mode 100644
index 17ce0f2..0000000
--- a/resources/logo/EasyDiffractionApp-logo_lightmode.svg
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
\ No newline at end of file
diff --git a/resources/logo/EasyDiffractionApp-logo_lightmode_wfont.svg b/resources/logo/EasyDiffractionApp-logo_lightmode_wfont.svg
deleted file mode 100644
index 4dc591b..0000000
--- a/resources/logo/EasyDiffractionApp-logo_lightmode_wfont.svg
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
\ No newline at end of file
diff --git a/resources/logo/EasyDiffractionLib-logo_darkmode.svg b/resources/logo/EasyDiffractionLib-logo_darkmode.svg
deleted file mode 100644
index f24ac7c..0000000
--- a/resources/logo/EasyDiffractionLib-logo_darkmode.svg
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
\ No newline at end of file
diff --git a/resources/logo/EasyDiffractionLib-logo_lightmode.svg b/resources/logo/EasyDiffractionLib-logo_lightmode.svg
deleted file mode 100644
index b794782..0000000
--- a/resources/logo/EasyDiffractionLib-logo_lightmode.svg
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
\ No newline at end of file
diff --git a/resources/logo/EasyDiffractionLib-logo_lightmode_wfont.svg b/resources/logo/EasyDiffractionLib-logo_lightmode_wfont.svg
deleted file mode 100644
index 1094a67..0000000
--- a/resources/logo/EasyDiffractionLib-logo_lightmode_wfont.svg
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
\ No newline at end of file