diff --git a/.github/workflows/md.yml b/.github/workflows/md.yml
new file mode 100644
index 0000000..2efe03d
--- /dev/null
+++ b/.github/workflows/md.yml
@@ -0,0 +1,11 @@
+---
+name: Lint markdown files
+on: [pull_request] # yamllint disable-line rule:truthy
+jobs:
+ run-markdownlint:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: DavidAnson/markdownlint-cli2-action@v20
+ with:
+ globs: "**/*.md"
diff --git a/.markdownlint.yaml b/.markdownlint.yaml
new file mode 100644
index 0000000..bdbb15f
--- /dev/null
+++ b/.markdownlint.yaml
@@ -0,0 +1,17 @@
+default: true
+line-length: false
+# line_length: 88
+# tables: false
+no-trailing-punctuation: true
+heading-style:
+ style: atx
+no-missing-space-atx: true
+single-title: false
+fenced-code-language: true
+code-block-style:
+ style: fenced
+no-duplicate-heading:
+ siblings_only: true
+# todo reenable this
+no-inline-html: false
+first-line-heading: false
\ No newline at end of file
diff --git a/README.md b/README.md
index d458210..4d80002 100644
--- a/README.md
+++ b/README.md
@@ -7,11 +7,15 @@ The website is based on jekyll.
For local compilation, you will first need to install ruby and bundler. Next install the
required gems:
- bundler install
+```sh
+bundler install
+```
And serve the website:
- bundle exec jekyll serve
+```sh
+bundle exec jekyll serve
+```
Access the website at [http://localhost:4000](http://localhost:4000).
@@ -19,7 +23,9 @@ Access the website at [http://localhost:4000](http://localhost:4000).
You can also run jekyll in a docker container
- docker compose up -d
+```sh
+docker compose up -d
+```
This is equivalent running `jekyll serve`.
diff --git a/_includes/button_row.html b/_includes/button_row.html
new file mode 100644
index 0000000..70690bb
--- /dev/null
+++ b/_includes/button_row.html
@@ -0,0 +1,9 @@
+{% comment %}
+ Wraps multiple buttons in a horizontal row.
+
+ Arguments:
+ - contents:
+{% endcomment -%}
+

diff --git a/timeline.md b/timeline.md
index 941ce45..1208cb7 100644
--- a/timeline.md
+++ b/timeline.md
@@ -44,6 +44,7 @@ data volumes and local infrastructure.
### Milestone I: Metadata Standards
+{: .box-note}
**Completed: Feb 2024**
Standardizing EM metadata was identified as a critical dependency for many OpenEM
@@ -68,6 +69,7 @@ interoperable EM metadata.
### Milestone II: Conceptual Plan
+{: .box-note}
**Completed: May 2024**
OpenEM integrates many existing services from the ETH domain and Swiss universities:
@@ -77,7 +79,6 @@ With the completion of this milestone, OpenEM finalized the overall architecture
integrating these services as well as prototypes of new microservices needed for
interoperability.
-
| Component | Goal |
| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| Metadata Extractor | Early draft of OSC-EM schema. Prototype parsers for cryoEM and EELS metadata. |
@@ -92,6 +93,7 @@ interoperability.
### Milestone III: Proof of Concept
+{: .box-note}
**Completed: September 2024**
This milestone included basic functionality from all components. This allowed the collection and publication of the first dataset using the complete OpenEM ecosystem. The cryoEM dataset of was collected at UNIBAS with metadata according to the OSC-EM schema. The dataset was transferred to the PSI SciCat instance from the facility and published under a new DOI.
@@ -108,6 +110,7 @@ This milestone included basic functionality from all components. This allowed th
### Milestone IV: Alpha Release
+{: .box-note}
**Completed: December 2024**
This milestone began the roll-out process of OpenEM software, starting at one facility.
@@ -124,13 +127,13 @@ Additional features were added to improve the usability and make ingestion of da
### Milestone V: Beta Release
-**Planned: March 2025**
+{: .box-note}
+**Completed: July 2025**
During this phase software will be rolled out to all facilities. This includes making
-the system available to more user, improving our deployment procedures, and finishing
+the system available to more users, improving our deployment procedures, and finishing
documentation.
-
| Component | Goal |
| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Metadata Extractor | Material science use cases are completed (TEM, STEM, EELS, HD) and at least one microscope at each facility is supported. |
@@ -141,7 +144,6 @@ documentation.
| Archival and Retrieval | ETHZ archiver system hardware is completed. |
| SciCat | Integrate both PSI and ETHZ archiver systems. Provide schema validation. |
-
## Introduction
### Milestone VI: Official Release
@@ -150,7 +152,8 @@ By this point the software is considered fully in production. Datasets will be c
from all facilities routinely. Features for easily deploying updates and easy
maintenance of the services will also be implemented.
-**Planned: May 2025**
+{: .box-note}
+**Planned: October 2025**
| Component | Goal |
| ---------------------- | ---------------------------------------------------------------------------------------------- |
@@ -158,9 +161,9 @@ maintenance of the services will also be implemented.
| Education - Website | User manual is finished. |
| Repository Integration | Enable upload to EMPIAR. |
-
### Milestone VII: Handover to Facilities
+{: .box-note}
**Planned: December 2025**
The final milestone hands over operation and maintenance roles to facilities, preparing