Compare commits
1 Commits
website_up
...
visual_imp
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
249ef77cf9 |
@@ -1,4 +1 @@
|
||||
.md-nav__source{display: none;}
|
||||
.md-nav--primary > .md-nav__list > .md-nav__item > .md-nav__link {
|
||||
font-weight: bold;
|
||||
}
|
||||
.md-nav__source{display: none;}
|
||||
42
docs/_static/logos/logo_rse.svg
vendored
@@ -2,9 +2,9 @@
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="120.88462mm"
|
||||
height="58.783997mm"
|
||||
viewBox="0 0 120.88462 58.783997"
|
||||
width="742.83649mm"
|
||||
height="60.834167mm"
|
||||
viewBox="0 0 742.83649 60.834168"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
inkscape:version="1.4.2 (ebf0e940, 2025-05-08)"
|
||||
@@ -15,7 +15,7 @@
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
pagecolor="#cccccc"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
@@ -23,9 +23,9 @@
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="0.50404515"
|
||||
inkscape:cx="243.03378"
|
||||
inkscape:cy="323.38373"
|
||||
inkscape:zoom="0.21690619"
|
||||
inkscape:cx="1814.1483"
|
||||
inkscape:cy="101.42634"
|
||||
inkscape:window-width="1728"
|
||||
inkscape:window-height="1051"
|
||||
inkscape:window-x="0"
|
||||
@@ -38,10 +38,32 @@
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-44.557691,-69.957854)">
|
||||
transform="translate(-44.557691,-69.957835)">
|
||||
<path
|
||||
id="path1"
|
||||
style="display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4.1;stroke-dasharray:1, 3;paint-order:stroke fill markers"
|
||||
d="m 143.75216,69.957854 -36.61224,53.336266 -2.47737,-2.4107 19.84324,-29.129486 -7.44244,-10.58954 -18.361161,16.81758 -7.68377,-5.72523 -16.90026,14.417206 16.86305,14.35003 -1.62057,2.57141 -19.71197,-16.59485 -25.090978,21.74131 120.884619,-0.004 z m -9.22115,19.23758 19.98741,16.944696 -20.04012,16.7349 -1.62625,-2.36058 17.21703,-14.30611 -17.05942,-14.389816 z" />
|
||||
style="display:inline;fill:#ffffff;fill-opacity:1;stroke-width:1.01744;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4.1;stroke-dasharray:1.01744, 3.05231;paint-order:stroke fill markers"
|
||||
d="m 145.48191,69.957854 -37.25068,54.266336 -2.52057,-2.45274 20.18926,-29.637436 -7.57222,-10.7742 -18.681339,17.110844 -7.81776,-5.825066 -17.194967,14.668608 17.157108,14.60027 -1.648829,2.61625 -20.055708,-16.88423 -25.528514,22.12043 122.992609,-0.004 z m -9.38195,19.573045 20.33595,17.240171 -20.38957,17.02672 -1.65461,-2.40174 17.51726,-14.55558 -17.3569,-14.64074 z" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-weight:300;font-size:82.1281px;line-height:0.9;font-family:'.ThonburiUIWatch';-inkscape-font-specification:'.ThonburiUIWatch Light';text-align:justify;letter-spacing:0.123192px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke-width:5.82008;stroke-miterlimit:4.1"
|
||||
x="186.10658"
|
||||
y="129.74936"
|
||||
id="text1"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1"
|
||||
x="186.10658"
|
||||
y="129.74936"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Arial;-inkscape-font-specification:'Arial Bold';fill:#ffffff;fill-opacity:1;stroke-width:5.82008">RSE</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-weight:300;font-size:80.7975px;line-height:0.9;font-family:'.ThonburiUIWatch';-inkscape-font-specification:'.ThonburiUIWatch Light';text-align:justify;letter-spacing:0.121196px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke-width:5.72579;stroke-miterlimit:4.1"
|
||||
x="374.38324"
|
||||
y="128.78062"
|
||||
id="text1-7"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1-9"
|
||||
x="374.38324"
|
||||
y="128.78062"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial;fill:#ffffff;fill-opacity:1;stroke-width:5.72579">Switzerland</tspan></text>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 3.4 KiB |
@@ -1,54 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="198.72853mm"
|
||||
height="9.429841mm"
|
||||
viewBox="0 0 198.72853 9.429841"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
inkscape:version="1.4.2 (ebf0e940, 2025-05-08)"
|
||||
sodipodi:docname="better_software_better_research.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="1.1749187"
|
||||
inkscape:cx="347.25806"
|
||||
inkscape:cy="273.21038"
|
||||
inkscape:window-width="1728"
|
||||
inkscape:window-height="1051"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="602"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="layer1" />
|
||||
<defs
|
||||
id="defs1" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-5.6358131,-5.419887)">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10.5244px;line-height:0.9;font-family:'Linux Libertine';-inkscape-font-specification:'Linux Libertine';text-align:justify;letter-spacing:-0.387488px;word-spacing:0px;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#0000ff;fill-opacity:0.15678;stroke-width:0.813624;stroke-linejoin:bevel;stroke-miterlimit:4.1;stroke-dasharray:1.62725, 0.813624;paint-order:stroke fill markers"
|
||||
x="4.909647"
|
||||
y="13.113213"
|
||||
id="text1"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'Helvetica Neue';-inkscape-font-specification:'Helvetica Neue Bold';fill:#000000;fill-opacity:1;stroke-width:0.813624"
|
||||
x="4.909647"
|
||||
y="13.113213">BETTER SOFTWARE, BETTER RESEARCH</tspan></text>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.1 KiB |
BIN
docs/_static/media/rse_talk_capon.png
vendored
|
Before Width: | Height: | Size: 352 KiB |
821
docs/_static/media/rse_talk_capon.svg
vendored
|
Before Width: | Height: | Size: 841 KiB |
BIN
docs/_static/media/rse_talk_gsell.png
vendored
|
Before Width: | Height: | Size: 1.9 MiB |
179
docs/_static/media/rse_talk_gsell.svg
vendored
|
Before Width: | Height: | Size: 2.3 MiB |
BIN
docs/_static/media/rse_talk_sacchi.png
vendored
|
Before Width: | Height: | Size: 1.2 MiB |
185
docs/_static/media/rse_talk_sacchi.svg
vendored
|
Before Width: | Height: | Size: 1.8 MiB |
BIN
docs/_static/media/rse_talk_weinold.png
vendored
|
Before Width: | Height: | Size: 1.3 MiB |
176
docs/_static/media/rse_talk_weinold.svg
vendored
|
Before Width: | Height: | Size: 2.1 MiB |
BIN
docs/_static/media/survey2025.pdf
vendored
@@ -2,14 +2,23 @@
|
||||
|
||||
The research software engineering (RSE) community at the Paul Scherrer Institute (PSI) is a group of researchers and engineers who develop and maintain software to support scientific research. Our mission is to improve the quality, efficiency, and reproducibility of research software at PSI.
|
||||
|
||||
## Current Board Members
|
||||
## People
|
||||
|
||||
### [Achim Gsell](https://www.psi.ch/en/lsm/people/achim-gsell)
|
||||
**HPC System and Software Engineer at Paul Scherrer Institute**
|
||||
|
||||
Achim is a senior system engineer and software developer in the [High‑Performance Computing & Emerging Technologies group](https://www.psi.ch/en/awi/high-performance-computing-and-emerging-technologies-group) at PSI. He is in charge of the software deployment with [Pmodules](https://pmodules.gitpages.psi.ch) and a member of the [OPAL framework](https://amas.web.psi.ch/opal/Documentation/2024.1/) developer team.
|
||||
|
||||
!!! Expertise
|
||||
HPC, CI/CD, Software Deployment
|
||||
|
||||
|
||||
### [Elsa Germann](https://www.psi.ch/de/awi/people/elsa-sylvia-germann)
|
||||
**HPC System Engineer at Paul Scherrer Institute**.
|
||||
|
||||
She was employed for the transition of Merlin from PSI local (Merlin6) to CSCS Alps (Merlin7). She is in charge of the deployment of the Spack instance at PSI [`spack-psi`](https://gitea.psi.ch/HPCE/spack-psi) and always happy to answer tickets about compilation problems.
|
||||
|
||||
!!! Expertise
|
||||
HPC, Ansible, Spack, CI/CD
|
||||
|
||||
### [Michael Weinold](https://www.psi.ch/en/ta/people/michael-weinold)
|
||||
|
||||
@@ -23,11 +32,3 @@ He has developed the [`jetfuelburn`](https://jetfuelburn.readthedocs.io/en/lates
|
||||
!!! Expertise
|
||||
WebAssembly, Python, BLAS/LAPACK, Holoviz Panel, Jupyter, GitHub Actions, web apps, interactive dashboards
|
||||
|
||||
## Former Board Members
|
||||
|
||||
### [Elsa Germann](https://www.psi.ch/de/awi/people/elsa-sylvia-germann)
|
||||
|
||||
Elsa was employed for the transition of Merlin from PSI local (Merlin6) to CSCS Alps (Merlin7). She was in charge of the deployment of the Spack instance at PSI [`spack-psi`](https://gitea.psi.ch/HPCE/spack-psi) and was always happy to answer tickets about compilation problems.
|
||||
|
||||
!!! Expertise
|
||||
HPC, Ansible, Spack, CI/CD
|
||||
22
docs/blog/posts/2025-08-20.md
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
draft: false
|
||||
date: 2025-08-20
|
||||
categories:
|
||||
- events
|
||||
---
|
||||
|
||||
# RSE Community Building Workshop in Bern
|
||||
|
||||
On July 15th, the RSE community at the Paul Scherrer Institute (PSI) held its first
|
||||
kick-off event. The event was a great success, with over 40 participants from various
|
||||
departments and research groups at PSI.
|
||||
|
||||
<div class="grid" markdown>
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
</div>
|
||||
|
||||
<!-- more -->
|
||||
@@ -1,35 +1,25 @@
|
||||
# Events
|
||||
|
||||
!!! info
|
||||
!!! note
|
||||
|
||||
The [website of the Swiss RSE community also lists events of local chapters](https://rse.swiss//#events).
|
||||
Check it out for more research software engineering events in Switzerland!
|
||||
|
||||
## Recurring Events
|
||||
|
||||
| Date | Time | Event | Location | Calendar |
|
||||
| ---- | ---- | ----- | -------- | -------- |
|
||||
| 1st Tuesday/month | 11:00-11:45 <br> (followed by lunch) | RSE@PSI Jour Fixe | [????](https://pocket.psi.ch/psimap) | N/A |
|
||||
|
||||
## Upcoming Events
|
||||
|
||||
!!! info
|
||||
**A regular seminar** for research software engineers takes place **on the first Tuesday of every month** from 11:00-11:45. See also upcoming events below.
|
||||
|
||||
|
||||
| Date | Time | Event | Location | Link | Calendar |
|
||||
| ---- | ---- | ----- | -------- | ---- | -------- |
|
||||
| 03. Feb 2026 | 11:00-11:45 | [Achim Gsell:<br>Coding Styles](events/2026-03-02_gsell.md) | [OHSA/E13](https://pocket.psi.ch/psimap) | N/A |
|
||||
| 03. Mar 2026 | 11:00-11:45 | [Elisabet Capón:<br>An Introduction to Renku](events/2026-03-03_capon.md) | [OHSA/E13](https://pocket.psi.ch/psimap) | N/A |
|
||||
|
||||
<div class="grid cards" markdown>
|
||||
|
||||
- 
|
||||
|
||||
- 
|
||||
|
||||
</div>
|
||||
|
||||
## Past Events
|
||||
|
||||
| Date | Time | Event | Location | Link | Calendar |
|
||||
| ---- | ---- | ----- | -------- | ---- | -------- |
|
||||
| 02. Dec 2025 | 11:00-11:45 | [Michael Weinold: Serverless and decentralised](events/2025-12-02_weinold.md) | [OHSA/E13](https://pocket.psi.ch/psimap) | N/A | N/A |
|
||||
| 04. Nov 2025 | 11:00-11:45 | [Romain Sacchi: From scientific software to public tools](events/2025-11-04_sacchi.md) | [OHSA/E13](https://pocket.psi.ch/psimap) | N/A | N/A |
|
||||
| 23. Oct 2025 | 10:00-11:00 | Technical Documentation with `mkdocs` and WASM | Zoom | [Recording of the Talk](https://rse.swiss/events/2025_10_23_technical_documentation_with_mkdocs_and_webassembly/) | N/A |
|
||||
| 13. Aug 2025 | 16:00~18:00 | Rustling Club (beginner friendly) | [OVGA-200](https://pocket.psi.ch/psimap) | [Rust Interest Group Site](https://rs4rse.github.io) | N/A |
|
||||
| 06. Aug 2025 | 16:00~18:00 | Rustling Club (beginner friendly) | [OVGA-200](https://pocket.psi.ch/psimap) | [Rust Interest Group Site](https://rs4rse.github.io) | N/A |
|
||||
| 15. Jul 2025 | 15:00-16:30 | RSE@PSI Kick-Off Event | [PSI WBGB 019](https://pocket.psi.ch/psimap) | N/A | N/A |
|
||||
| 15 July 2025 | 15:00-16:30 | RSE@PSI Kick-Off Event | [PSI WBGB 019](https://pocket.psi.ch/psimap) | N/A | N/A |
|
||||
| 06. August 2025 | 16:00~18:00 | Rustling Club (beginner friendly) | [OVGA-200](https://pocket.psi.ch/psimap) | [Rust Interest Group Site](https://rs4rse.github.io) | N/A |
|
||||
| 13. August 2025 | 16:00~18:00 | Rustling Club (beginner friendly) | [OVGA-200](https://pocket.psi.ch/psimap) | [Rust Interest Group Site](https://rs4rse.github.io) | N/A |
|
||||
@@ -1,7 +0,0 @@
|
||||
# Romain Sacchi: From scientific software to public tools
|
||||
|
||||
**Presenter:** Romain Sacchi
|
||||
**When:** 4. November 2025; 11:00-11:45am
|
||||
**Where:** PSI OHSA/E13
|
||||
|
||||
Romain Sacchi is a senior scientist in the Laboratory for Energy Systems Analysis. His “carculator” tool allows users to calculate and compare the lifetime carbon emissions for various cars—electric, hybrid, gasoline, and more. Originally created to support scientific publications, a recent collaboration with Touring Club Switzerland has now made the tool available to a wider audience: anyone in Switzerland looking for a new car. Romain will share insights on how to transition scientific software into a successful public-facing tool.
|
||||
@@ -1,7 +0,0 @@
|
||||
# Serverless and decentralized
|
||||
|
||||
**Presenter:** Michael Weinold
|
||||
**When:** 2. December 2025; 11:00-11:45
|
||||
**Where:** PSI OHSA/E13
|
||||
|
||||
Michael Weinold is a PhD student in the Laboratory for Energy Systems Analysis. Many of the software tools he has built can be used by students and researchers – but hosting them on a managed server is also very costly. This is why he has ported the tools to run in a browser sandbox using the WebAssembly standard. No running cost – and complex Python-based calculations directly in the browser. This can power user-friendly dashboard and web applications. Michael will share insights into how to set up tools in this new way.
|
||||
@@ -1,7 +0,0 @@
|
||||
# Coding Styles
|
||||
|
||||
**Presenter:** Achim Gsell
|
||||
**When:** 3. February 2026; 11:00-11:45
|
||||
**Where:** PSI OHSA/E13
|
||||
|
||||
Michael Weinold is a senior scientist in the Laboratory for Simulation and Modelling of the PSI Center for Scientific Computing, Theory and Data. In his talk, he will present how adopting consistent coding styles across projects can significantly enhance code readability, maintainability, and collaboration among research software engineers. He will discuss various coding style guidelines, tools for enforcing these styles, and share practical examples from his experience at PSI.
|
||||
@@ -1,7 +0,0 @@
|
||||
# An Introduction to Renko
|
||||
|
||||
**Presenter:** Elisabet Capón García
|
||||
**When:** 3. March 2026; 11:00-11:45
|
||||
**Where:** PSI OHSA/E13
|
||||
|
||||
[Elisabet Capón](https://www.datascience.ch/people/elisabet-capon-garcia) is a community manager at the Swiss Data Science Center (SDSC), where she focuses on fostering open research practices and supporting the [Renku open-source project](https://renkulab.io). Renku is a platform that enables researchers to create, share, and reproduce data science projects with ease, promoting collaboration and transparency in scientific research. She will provide an introduction to Renku, highlighting its features and benefits for research software engineering.
|
||||
@@ -1,16 +1,54 @@
|
||||
# Research Software Engineering at PSI
|
||||
|
||||
Software is ubiquitous in modern research and its quality has a direct impact on the quality of research. The Research Software Engineering Community connects Research Software Engineers (RSEs), increases their visibility and works towards the recognition of their importance in science.
|
||||
|
||||
## Upcoming Events
|
||||
Software is ubiquitous in modern research and its quality has a direct impact on the quality of research. The **Research Software Engineering (RSE)** Community connects Research Software Engineers (RSEs), increases their visibility and works towards the recognition of their importance in science.
|
||||
|
||||
## Current Events
|
||||
|
||||
| Date | Time | Event | Location | Link | Calendar |
|
||||
| ---- | ---- | ----- | -------- | ---- | -------- |
|
||||
| 03. Feb 2026 | 11:00-11:45 | [Achim Gsell:<br>Coding Styles](events/2026-03-02_gsell.md) | OHSA/E13 | [Map](https://pocket.psi.ch/psimap) | N/A | N/A |
|
||||
| 03. Mar 2026 | 11:00-11:45 | [Elisabet Capón:<br>An Introduction to Renku](events/2026-03-03_capon.md) | OHSA/E13 | [Map](https://pocket.psi.ch/psimap) | N/A |
|
||||
| 06. August 2025 | 16:00~18:00 | Rustling Club (beginner friendly) | [OVGA-200](https://pocket.psi.ch/psimap) | [Rust Interest Group Site](https://rs4rse.github.io) | N/A |
|
||||
| 13. August 2025 | 16:00~18:00 | Rustling Club (beginner friendly) | [OVGA-200](https://pocket.psi.ch/psimap) | [Rust Interest Group Site](https://rs4rse.github.io) | N/A |
|
||||
|
||||
## Staying Informed
|
||||
|
||||
<div class="grid cards" markdown>
|
||||
|
||||
- :material-clock-fast:{ .lg .middle } __Set up in 5 minutes__
|
||||
|
||||
---
|
||||
|
||||
Install [`mkdocs-material`](#) with [`pip`](#) and get up
|
||||
and running in minutes
|
||||
|
||||
[:octicons-arrow-right-24: Getting started](#)
|
||||
|
||||
- :fontawesome-brands-markdown:{ .lg .middle } __It's just Markdown__
|
||||
|
||||
---
|
||||
|
||||
Focus on your content and generate a responsive and searchable static site
|
||||
|
||||
[:octicons-arrow-right-24: Reference](#)
|
||||
|
||||
- :material-format-font:{ .lg .middle } __Made to measure__
|
||||
|
||||
---
|
||||
|
||||
Change the colors, fonts, language, icons, logo and more with a few lines
|
||||
|
||||
[:octicons-arrow-right-24: Customization](#)
|
||||
|
||||
- :material-scale-balance:{ .lg .middle } __Open Source, MIT__
|
||||
|
||||
---
|
||||
|
||||
Material for MkDocs is licensed under MIT and available on [GitHub]
|
||||
|
||||
[:octicons-arrow-right-24: License](#)
|
||||
|
||||
</div>
|
||||
|
||||
=== "📧 Mailing List"
|
||||
|
||||
!!! note
|
||||
@@ -24,6 +62,11 @@ Software is ubiquitous in modern research and its quality has a direct impact on
|
||||
=== "🌐 Swiss RSE Website"
|
||||
|
||||
!!! note
|
||||
The [Swiss RSE website](https://rse.swiss) provides information about the community, events, and resources at other institutes in Switzerland.
|
||||
The [Swiss RSE website](https://rse.swiss) provides information about the community, events, and resources at other institutes.
|
||||
|
||||

|
||||
<style>
|
||||
.md-typeset h1,
|
||||
.md-content__button {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
@@ -1,4 +1,4 @@
|
||||
# RSE in Switzerland
|
||||
# Links
|
||||
|
||||
## Local Chapters
|
||||
|
||||
113
docs/surveys.md
@@ -1,113 +0,0 @@
|
||||
# Surveys
|
||||
|
||||
## 2025
|
||||
|
||||
In 2025, we conducted a staff survey on the state of research software engineering at Paul Scherrer Institut (PSI). The survey was open in September and October 2025, and we received responses from over 50 research software engineers (RSEs) across all centers at PSI. On average, every respondent spent over half an hour on the survey.
|
||||
|
||||
<div class="pdf-component" style="border: 1px solid #ccc; border-radius: 6px; overflow: hidden; font-family: sans-serif; margin-bottom: 20px; background-color: #f5f5f5;">
|
||||
|
||||
<div style="background-color: #333; color: white; padding: 10px 15px; display: flex; justify-content: space-between; align-items: center;">
|
||||
<span style="font-weight: bold; font-size: 0.9em;">Document Viewer</span>
|
||||
<a href="../_static/media/survey2025.pdf" download target="_blank" style="text-decoration: none; background-color: #e74c3c; color: white; padding: 6px 12px; border-radius: 4px; font-size: 0.85em; transition: background 0.2s;">
|
||||
⬇ Download PDF
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div id="pdf-wrapper" style="position: relative; width: 100%; min-height: 200px; background-color: #525659;">
|
||||
|
||||
<canvas id="the-canvas" style="display: block; width: 100%; height: auto;"></canvas>
|
||||
|
||||
<div id="pdf-loading" style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: white;">Loading...</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div style="background-color: #ddd; padding: 10px; display: flex; justify-content: center; align-items: center; gap: 15px;">
|
||||
<button id="prev" style="cursor: pointer; padding: 5px 15px;">Previous</button>
|
||||
<span style="font-size: 0.9em;">Page <span id="page_num">--</span> of <span id="page_count">--</span></span>
|
||||
<button id="next" style="cursor: pointer; padding: 5px 15px;">Next</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.16.105/pdf.min.js"></script>
|
||||
<script>
|
||||
(function() {
|
||||
var url = '../_static/media/survey2025.pdf'; // <--- CHECK PATH
|
||||
|
||||
var pdfjsLib = window['pdfjs-dist/build/pdf'];
|
||||
pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.16.105/pdf.worker.min.js';
|
||||
|
||||
var pdfDoc = null,
|
||||
pageNum = 1,
|
||||
pageRendering = false,
|
||||
pageNumPending = null,
|
||||
scale = 2.0, // High res render, scaled down by CSS
|
||||
canvas = document.getElementById('the-canvas'),
|
||||
ctx = canvas.getContext('2d'),
|
||||
loading = document.getElementById('pdf-loading');
|
||||
|
||||
function renderPage(num) {
|
||||
pageRendering = true;
|
||||
|
||||
// Fetch page
|
||||
pdfDoc.getPage(num).then(function(page) {
|
||||
loading.style.display = 'none';
|
||||
|
||||
var viewport = page.getViewport({scale: scale});
|
||||
canvas.height = viewport.height;
|
||||
canvas.width = viewport.width;
|
||||
|
||||
// Render
|
||||
var renderContext = {
|
||||
canvasContext: ctx,
|
||||
viewport: viewport
|
||||
};
|
||||
var renderTask = page.render(renderContext);
|
||||
|
||||
// Wait for render to finish
|
||||
renderTask.promise.then(function() {
|
||||
pageRendering = false;
|
||||
if (pageNumPending !== null) {
|
||||
renderPage(pageNumPending);
|
||||
pageNumPending = null;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Update page counters
|
||||
document.getElementById('page_num').textContent = num;
|
||||
}
|
||||
|
||||
function queueRenderPage(num) {
|
||||
if (pageRendering) {
|
||||
pageNumPending = num;
|
||||
} else {
|
||||
renderPage(num);
|
||||
}
|
||||
}
|
||||
|
||||
function onPrevPage() {
|
||||
if (pageNum <= 1) { return; }
|
||||
pageNum--;
|
||||
queueRenderPage(pageNum);
|
||||
}
|
||||
document.getElementById('prev').addEventListener('click', onPrevPage);
|
||||
|
||||
function onNextPage() {
|
||||
if (pageNum >= pdfDoc.numPages) { return; }
|
||||
pageNum++;
|
||||
queueRenderPage(pageNum);
|
||||
}
|
||||
document.getElementById('next').addEventListener('click', onNextPage);
|
||||
|
||||
// Initial Load
|
||||
pdfjsLib.getDocument(url).promise.then(function(pdfDoc_) {
|
||||
pdfDoc = pdfDoc_;
|
||||
document.getElementById('page_count').textContent = pdfDoc.numPages;
|
||||
renderPage(pageNum);
|
||||
}).catch(function(err) {
|
||||
console.error(err);
|
||||
loading.textContent = "Error loading PDF.";
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
16
mkdocs.yaml
@@ -1,15 +1,12 @@
|
||||
# https://www.mkdocs.org/user-guide/configuration/
|
||||
site_name: RSE@PSI
|
||||
site_name: Research Software Engineering
|
||||
copyright: © Paul Scherrer Institute (PSI) | Content under CC0 License
|
||||
nav:
|
||||
- Home: 'index.md'
|
||||
- Who we are:
|
||||
- RSE@PSI: 'about.md'
|
||||
- RSE@Switzerland: 'switzerland.md'
|
||||
- What we do:
|
||||
- Offers: 'offers.md'
|
||||
- Events: 'events.md'
|
||||
- Surveys: 'surveys.md'
|
||||
- Homepage: 'index.md'
|
||||
- About: 'about.md'
|
||||
- Offers: 'offers.md'
|
||||
- Events: 'events.md'
|
||||
- Links: 'links.md'
|
||||
- Blog: 'blog/index.md'
|
||||
theme: # https://www.mkdocs.org/user-guide/choosing-your-theme/#readthedocs
|
||||
name: material
|
||||
@@ -45,7 +42,6 @@ plugins:
|
||||
- autorefs
|
||||
- include-markdown
|
||||
- blog
|
||||
- mkdocs-pdf
|
||||
markdown_extensions:
|
||||
- admonition
|
||||
- pymdownx.superfences
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
mkdocs
|
||||
mkdocs-autorefs
|
||||
mkdocs-material
|
||||
pymdown-extensions
|
||||
mkdocs-include-markdown-plugin
|
||||
mkdocs-pdf
|
||||
mkdocs==1.6.1
|
||||
mkdocs-autorefs==1.4.2
|
||||
mkdocs-material==9.6.14
|
||||
pymdown-extensions==10.15
|
||||
mkdocs-include-markdown-plugin==7.1.5
|
||||