Skip to content

Commit f02ea0a

Browse files
authored
Replace shortlink files with shortlink list (#416)
* add shortlink generator * Add missing short link * Remove old shortlink pages * GitHub Copilot feedback: remove unused parameter
1 parent 271d6aa commit f02ea0a

File tree

6 files changed

+54
-20
lines changed

6 files changed

+54
-20
lines changed

_data/shortlinks.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Shortlinks configuration
2+
# Each entry creates a redirect from /s/{slug} to the target URL
3+
- slug: ads
4+
target: /documentation/general/ads
5+
- slug: stops-playing
6+
target: /documentation/bugs-first-aid/playback-stops
7+
- slug: sync-help
8+
target: /documentation/general/synchronization
9+
- slug: subs-gone
10+
target: /documentation/bugs-first-aid/database-error

_plugins/shortlinks_generator.rb

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
module Jekyll
2+
class ShortlinkPage < Page
3+
def initialize(site, base, dir, target, lang = nil)
4+
@site = site
5+
@base = base
6+
@dir = dir
7+
@name = 'index.html'
8+
9+
self.process(@name)
10+
self.read_yaml(File.join(base, '_layouts'), 'redirect.html')
11+
self.data['layout'] = 'redirect'
12+
self.data['sitemap'] = false
13+
self.data['redirect_to'] = target
14+
self.data['lang'] = lang if lang
15+
end
16+
end
17+
18+
class ShortlinksGenerator < Generator
19+
safe true
20+
priority :low
21+
22+
def generate(site)
23+
return unless site.data['shortlinks']
24+
25+
# Get languages from config, default to ['en'] if not set
26+
languages = site.config['languages'] || ['en']
27+
28+
site.data['shortlinks'].each do |shortlink|
29+
slug = shortlink['slug']
30+
target = shortlink['target']
31+
32+
languages.each do |lang|
33+
if lang == 'en' || lang == site.config['defaultLang']
34+
# English/default language: create at /s/{slug}/
35+
site.pages << ShortlinkPage.new(site, site.source, "/s/#{slug}", target, lang)
36+
else
37+
# Other languages: create at /{lang}/s/{slug}/
38+
site.pages << ShortlinkPage.new(site, site.source, "/#{lang}/s/#{slug}", target, lang)
39+
end
40+
end
41+
end
42+
end
43+
end
44+
end

s/ads.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

s/stops-playing.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

s/subs-gone.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

s/sync-help.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)