From 671720d410cf6ce901f39b23f6fc87240ba5dfaa Mon Sep 17 00:00:00 2001 From: Philipp Wollschlegel Date: Sun, 25 Jan 2026 19:48:43 +0100 Subject: [PATCH 001/133] Fix typos: CRICITAL -> CRITICAL and relase -> release --- README.md | 2 +- _posts/2024-09-02-xcsoar-7-dot-43-released.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9de0f36..1ca3e1c 100644 --- a/README.md +++ b/README.md @@ -31,4 +31,4 @@ 2. Edit the new post, created in `./_posts` -3. If there is a new relase also update _config.yml with the new release number. +3. If there is a new release also update _config.yml with the new release number. diff --git a/_posts/2024-09-02-xcsoar-7-dot-43-released.md b/_posts/2024-09-02-xcsoar-7-dot-43-released.md index 11c5ae7..afe33a4 100644 --- a/_posts/2024-09-02-xcsoar-7-dot-43-released.md +++ b/_posts/2024-09-02-xcsoar-7-dot-43-released.md @@ -5,7 +5,7 @@ author: folken layout: post --- -Please note that there are several CRICITAL issues addressed in this release. Please up-/sidegrade. +Please note that there are several CRITICAL issues addressed in this release. Please up-/sidegrade. Android users: Due to new cryptographic signatures, you will need to uninstall and remove all data. Install either from F-Droid or via APK File download. From 96f4745de3f2e3122b528dac77a22cbe6624b4d9 Mon Sep 17 00:00:00 2001 From: Philipp Wollschlegel Date: Sun, 25 Jan 2026 19:49:33 +0100 Subject: [PATCH 002/133] Fix broken testing build link: update to https://download.xcsoar.org/testing/ Fixes issue #61 - replaces broken Play Store and nightly_builds links with the correct testing build URL. --- develop/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/develop/index.md b/develop/index.md index 7dffc12..3d70550 100644 --- a/develop/index.md +++ b/develop/index.md @@ -14,7 +14,7 @@ If you would like to help, here are a few things you can do: You can [pick an issue](https://github.com/XCSoar/XCSoar/issues) and make a pull request. - **Testing**: - [Download the released version](https://xcsoar.org/download/) of XCSoar, test it, and [report bugs](/develop/new_ticket.html). - - [Download XCSoar-testing (for Android)](https://play.google.com/store/apps/details?id=org.xcsoar.testing) or [the nightly-build version](https://download.xcsoar.org/nightly_builds/) of XCSoar, test it **on the ground only**, and [report bugs](/develop/new_ticket.html). This version is unstable, so **do not use it in flight**. + - [Download the testing version](https://download.xcsoar.org/testing/) of XCSoar, test it **on the ground only**, and [report bugs](/develop/new_ticket.html). This version is unstable, so **do not use it in flight**. You will be at the cutting edge of XCSoar development, able to discover the new features and eventually report recently-introduced bugs. - **Translation**: The XCSoar interface comes in more than 30 languages. Check our [Hosted Weblate page](https://hosted.weblate.org/projects/xcsoar) to improve the translations. - **Documentation**: From 261cc37d96c8154df6a54605b9a4ca633391c8ca Mon Sep 17 00:00:00 2001 From: Philipp Wollschlegel Date: Sun, 25 Jan 2026 19:50:28 +0100 Subject: [PATCH 003/133] Upgrade to Ruby 4.0.1 and fix deprecated File.exists? - Update GitHub Actions workflow to use Ruby 4.0.1 - Update README Docker example to use Ruby 4.0.1 - Replace deprecated File.exists? with File.exist? in svgconvert plugin This addresses Ruby version inconsistencies and prepares for Ruby 4 compatibility. --- .github/workflows/website-deploy.yml | 2 +- README.md | 2 +- _plugins/svgconvert.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/website-deploy.yml b/.github/workflows/website-deploy.yml index ce435ae..8516855 100644 --- a/.github/workflows/website-deploy.yml +++ b/.github/workflows/website-deploy.yml @@ -9,7 +9,7 @@ jobs: - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6 - uses: ruby/setup-ruby@v1 with: - ruby-version: 3.4.7 + ruby-version: 4.0.1 bundler-cache: true - name: install dependencies run: | diff --git a/README.md b/README.md index 1ca3e1c..de91d6c 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 1. Run Ruby Docker image ``` - docker run --network host -v ./:/data -it ruby:3.3.5 /bin/bash + docker run --network host -v ./:/data -it ruby:4.0.1 /bin/bash cd /data ``` diff --git a/_plugins/svgconvert.rb b/_plugins/svgconvert.rb index 40205ce..0ce4b5f 100644 --- a/_plugins/svgconvert.rb +++ b/_plugins/svgconvert.rb @@ -73,7 +73,7 @@ def destination(dest) def write # Generate output file if it doesn't exist or is less recent than the source file - if !File.exists?(@dest_path) || File.mtime(@dest_path) <= File.mtime(@source_path) + if !File.exist?(@dest_path) || File.mtime(@dest_path) <= File.mtime(@source_path) print "Generating #{@format.upcase}: #{@source} -> #{@dest}\n" options = "-o #{@dest_path}" From c7a697053b79929d15a3e168e1f96c4bfba2d63d Mon Sep 17 00:00:00 2001 From: Philipp Wollschlegel Date: Sun, 25 Jan 2026 19:52:04 +0100 Subject: [PATCH 004/133] Update to Ruby 3.4.8 instead of 4.0.1 for dependency compatibility Ruby 4.0.1 requires updated dependencies (ffi gem doesn't support Ruby 4 yet). Using Ruby 3.4.8 which is compatible with current Gemfile.lock while still upgrading from 3.4.7. --- .github/workflows/website-deploy.yml | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/website-deploy.yml b/.github/workflows/website-deploy.yml index 8516855..d86a0cd 100644 --- a/.github/workflows/website-deploy.yml +++ b/.github/workflows/website-deploy.yml @@ -9,7 +9,7 @@ jobs: - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6 - uses: ruby/setup-ruby@v1 with: - ruby-version: 4.0.1 + ruby-version: 3.4.8 bundler-cache: true - name: install dependencies run: | diff --git a/README.md b/README.md index de91d6c..6c28b2e 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 1. Run Ruby Docker image ``` - docker run --network host -v ./:/data -it ruby:4.0.1 /bin/bash + docker run --network host -v ./:/data -it ruby:3.4.8 /bin/bash cd /data ``` From 95c66853a96e36ebff7b9451c498fda0786982a4 Mon Sep 17 00:00:00 2001 From: Philipp Wollschlegel Date: Sun, 25 Jan 2026 19:58:17 +0100 Subject: [PATCH 005/133] Update nanoc to 4.14.6 and actions/checkout to latest v6 - Update nanoc from 4.14.3 to 4.14.6 (performance improvements) - Update related dependencies: addressable, concurrent-ruby, zeitwerk - Update actions/checkout to latest v6 commit (8e8c483) Addresses PRs #152 and #153 --- .github/workflows/website-deploy.yml | 2 +- Gemfile.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/website-deploy.yml b/.github/workflows/website-deploy.yml index d86a0cd..0b74bc8 100644 --- a/.github/workflows/website-deploy.yml +++ b/.github/workflows/website-deploy.yml @@ -6,7 +6,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6 + - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 - uses: ruby/setup-ruby@v1 with: ruby-version: 3.4.8 diff --git a/Gemfile.lock b/Gemfile.lock index 2526c7d..715c6ad 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,13 +1,13 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.7) - public_suffix (>= 2.0.2, < 7.0) + addressable (2.8.8) + public_suffix (>= 2.0.2, < 8.0) base64 (0.3.0) bigdecimal (3.1.9) coderay (1.1.3) colorator (1.1.0) - concurrent-ruby (1.3.5) + concurrent-ruby (1.3.6) cri (2.15.12) csv (3.3.2) ddmetrics (1.1.0) @@ -74,11 +74,11 @@ GEM jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) - nanoc (4.14.3) + nanoc (4.14.6) addressable (~> 2.5) nanoc-checking (~> 1.0, >= 1.0.2) - nanoc-cli (= 4.14.3) - nanoc-core (= 4.14.3) + nanoc-cli (= 4.14.6) + nanoc-core (= 4.14.6) nanoc-deploying (~> 1.0) parallel (~> 1.12) tty-command (~> 0.8) @@ -86,14 +86,14 @@ GEM nanoc-checking (1.0.6) nanoc-cli (~> 4.12, >= 4.12.5) nanoc-core (~> 4.12, >= 4.12.5) - nanoc-cli (4.14.3) + nanoc-cli (4.14.6) cri (~> 2.15) diff-lcs (~> 1.3) logger (~> 1.6) - nanoc-core (= 4.14.3) + nanoc-core (= 4.14.6) pry zeitwerk (~> 2.1) - nanoc-core (4.14.3) + nanoc-core (4.14.6) base64 (~> 0.2) concurrent-ruby (~> 1.1) ddmetrics (~> 1.0) @@ -144,7 +144,7 @@ GEM tty-which (0.5.0) unicode-display_width (2.6.0) webrick (1.9.1) - zeitwerk (2.7.3) + zeitwerk (2.7.4) PLATFORMS x86_64-linux From db3844247c1a70e51f147964470ed7146b693394 Mon Sep 17 00:00:00 2001 From: Philipp Wollschlegel Date: Sun, 25 Jan 2026 20:32:44 +0100 Subject: [PATCH 006/133] Remove jQuery dependency and replace lightbox with vanilla JS - Remove jQuery 1.8.2 (12+ years old, security risk) - Remove jQuery lightbox plugin - Add modern vanilla JS lightbox (no dependencies) - Update header.html to load new lightbox CSS/JS - Remove jQuery scripts from index.html and screenshots page - Remove unnecessary jquery: true from maps/waypoints pages Features of new lightbox: - No external dependencies - Keyboard navigation (Arrow keys, Escape) - Touch-friendly mobile support - Accessible (ARIA labels) - Smaller file size (~4KB vs ~90KB jQuery + plugin) - Modern ES6+ JavaScript Fixes #42 - Replace jquery lightbox with generic lightbox This is part of Phase 1: Critical Security & Performance improvements. --- IMPROVEMENTS.md | 316 ++++++++++++++++++++++++++++++++ WEBSITE_STRUCTURE.md | 282 ++++++++++++++++++++++++++++ _includes/header.html | 7 +- css/lightbox.css | 137 ++++++++++++++ discover/screenshots/index.html | 11 -- download/maps/index.html | 1 - download/waypoints/index.html | 1 - index.html | 12 -- lib/lightbox.js | 131 +++++++++++++ 9 files changed, 870 insertions(+), 28 deletions(-) create mode 100644 IMPROVEMENTS.md create mode 100644 WEBSITE_STRUCTURE.md create mode 100644 css/lightbox.css create mode 100644 lib/lightbox.js diff --git a/IMPROVEMENTS.md b/IMPROVEMENTS.md new file mode 100644 index 0000000..efed170 --- /dev/null +++ b/IMPROVEMENTS.md @@ -0,0 +1,316 @@ +# Website Modernization Recommendations + +## Critical Issues (High Priority) + +### 1. **Outdated JavaScript Libraries** +**Current**: jQuery 1.8.2 (released 2012, 12+ years old) +**Issues**: +- Security vulnerabilities +- No longer maintained +- Large file size (unnecessary for modern needs) +- Incompatible with modern browsers + +**Recommendation**: +- Remove jQuery dependency entirely (most features can be done with vanilla JS) +- Replace jQuery lightbox with modern alternatives: + - [GLightbox](https://biati-digital.github.io/glightbox/) (lightweight, modern) + - [PhotoSwipe](https://photoswipe.com/) (feature-rich) + - Native CSS/JS solution (smallest footprint) +- **Impact**: Reduces page load, improves security, better performance + +### 2. **Outdated Bootstrap Version** +**Current**: Bootstrap 2.x (very old, likely custom build) +**Issues**: +- No mobile-first responsive design +- Outdated grid system +- Missing modern components +- Accessibility issues + +**Recommendation**: +- Upgrade to Bootstrap 5.3 (latest stable) or Bootstrap 4.6 +- Use CDN or npm package +- Migrate custom CSS to new grid system +- **Impact**: Better mobile experience, modern components, improved accessibility + +### 3. **Missing Modern HTML5 Features** +**Current**: Uses old HTML/XHTML syntax +**Issues**: +- Missing semantic HTML5 elements +- No structured data (JSON-LD) +- Limited accessibility features + +**Recommendation**: +- Use semantic HTML5: `
`, `
+ +
diff --git a/discover/screenshots/index.html b/discover/screenshots/index.html index b207305..b43d4fc 100644 --- a/discover/screenshots/index.html +++ b/discover/screenshots/index.html @@ -10,10 +10,10 @@
- Moving Map + Moving Map
- Moving Map
+ Moving Map
The primary display, easily configurable to provide the desired level of detail.
@@ -21,10 +21,10 @@
- Terrain Display + Terrain Display
- Terrain Display
+ Terrain Display
Terrain and Topology data from all over the world can be displayed on the moving map.
@@ -32,10 +32,10 @@
- FLARM Integration + FLARM Integration
- FLARM Integration
+ FLARM Integration
All received FLARM traffic is displayed on the map and on the inset radar screen. (including climb speed)
@@ -43,10 +43,10 @@
- FLARM Radar + FLARM Radar
- FLARM Radar
+ FLARM Radar
A Butterfly-like radar can be opened including climb values and touch-to-select functionality
@@ -54,10 +54,10 @@
- Task Navigation + Task Navigation
- Task Navigation
+ Task Navigation
Displays your path to the next waypoint while calculating the altitude required to complete the task.
@@ -65,10 +65,10 @@
- Waypoint Information + Waypoint Information
- Waypoint Information
+ Waypoint Information
Waypoint data can be accessed at any time, including realtime calculations and useful stored information.
@@ -76,10 +76,10 @@
- Analysis: OLC + Analysis: OLC
- Analysis: OLC
+ Analysis: OLC
Postflight analysis displays and automatically scores the flown task.
@@ -87,10 +87,10 @@
- Analysis: Task + Analysis: Task
- Analysis: Task
+ Analysis: Task
Inflight tactical analysis provides an at-a-glance overview of the flight so far, and helps plan the remainder.
diff --git a/index.html b/index.html index 1e5679d..7a738e6 100644 --- a/index.html +++ b/index.html @@ -19,10 +19,10 @@

Learn more...

-
+
-

Try - + + width="24" height="24"> SkyLines, our live tracking and flight sharing platform!

-
+
{% for post in site.posts limit: 1 %} -
+

{{ post.title }}
- ({{ post.date | date:'%e. %b %Y' }}{% if post.author %} by {{ post.author }}{% endif %}) + ({% if post.author %} by {{ post.author }}{% endif %})

{{ post.content }}
-
-
+
+ {% endfor %} {% for post in site.posts limit: 5 offset: 1 %} -
+

- {{ post.date | date:'%e. %b %Y' }}: + : {{ post.title }}

-
+ {% endfor %}
@@ -141,10 +141,10 @@

Highlights of XCSoar's interface

- Moving Map + Moving Map
- Moving Map
+ Moving Map
The primary display, easily configurable to provide the desired level of detail.
@@ -152,10 +152,10 @@

Highlights of XCSoar's interface

- Terrain Display + Terrain Display
- Terrain Display
+ Terrain Display
Terrain and Topology data from all over the world can be displayed on the moving map.
@@ -163,10 +163,10 @@

Highlights of XCSoar's interface

- FLARM Integration + FLARM Integration
- FLARM Integration
+ FLARM Integration
All received FLARM traffic is displayed on the map and on the inset radar screen. (including climb speed)
From 58caa3f44e48844b63b7369e8f1c1f689d4435eb Mon Sep 17 00:00:00 2001 From: Philipp Wollschlegel Date: Sun, 25 Jan 2026 20:56:17 +0100 Subject: [PATCH 015/133] Fix layout: ensure main content has white background Issue: After converting #primary from div to header, the main content was outside the white background container, causing text to flow outside. Solution: - Moved white background and width constraints to .shadowed container (which wraps both header and main) - Simplified #primary styling to just padding - Ensured main element is properly inside .shadowed container - Added proper closing of .shadowed div in footer Now both header and main content are contained within the white background area with proper width constraints (98% width, max 1230px). Files changed: - css/xcsoar.css (moved background to .shadowed, simplified #primary) - _includes/header.html (indentation fix) - _includes/footer.html (close .shadowed div) Build tested and verified successful. --- _includes/footer.html | 3 ++- _includes/header.html | 2 +- css/xcsoar.css | 21 +++++++++++---------- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/_includes/footer.html b/_includes/footer.html index bec64c4..8b00b34 100644 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -1,4 +1,5 @@ -
+ +