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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + easydiffraction + Making diffraction data analysis and modelling easy + + + \ 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 @@ - - - - - - - - - - - - - - - - - Logo - - Main circle - - - Inner circles - - - - - - - - - - - Text - easyeasy - diffractiondiffraction - - - \ 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 @@ - - - - - - - - - - - - - - - - Logo - - Main circle - - - Inner circles - - - - - - - - - - - Text - - easy - - - diffraction - - - application - - - - \ 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 @@ - - - - - - - - - - - - - - - - Logo - - Main circle - - - Inner circles - - - - - - - - - - - Text - - easy - - - diffraction - - - application - - - - \ 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 @@ - - - - - - - - - - - - - - - - - Logo - - Main circle - - - Inner circles - - - - - - - - - - - Text - easyeasy - diffractiondiffraction - applicationapplication - - - \ 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 @@ - - - - - - - - - - - - - - - - Logo - - Main circle - - - Inner circles - - - - - - - - - - - Text - - easy - - - diffraction - - - library - - - - \ 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 @@ - - - - - - - - - - - - - - - - Logo - - Main circle - - - Inner circles - - - - - - - - - - - Text - - easy - - - diffraction - - - library - - - - \ 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 @@ - - - - - - - - - - - - - - - - - Logo - - Main circle - - - Inner circles - - - - - - - - - - - Text - easyeasy - diffractiondiffraction - librarylibrary - - - \ No newline at end of file