diff --git a/README.md b/README.md
index 9fe02751..cd18e566 100644
--- a/README.md
+++ b/README.md
@@ -3,11 +3,11 @@
**[Dynamic HTML table](https://trilarion.github.io/opensourcegames/)** of the entries / Development **[Blog](https://trilarion.blogspot.com/search/label/osgames)** / **[Statistics](statistics.md#statistics)**
[comment]: # (start of autogenerated content, do not edit)
-**[Games](entries/tocs/_games.md#Games)** (1284) - **[Tools](entries/tocs/_tools.md#Tools)** (42) - **[Frameworks](entries/tocs/_frameworks.md#Frameworks)** (83) - **[Libraries](entries/tocs/_libraries.md#Libraries)** (44)
+**[Games](entries/tocs/_games.md#Games)** (1291) - **[Tools](entries/tocs/_tools.md#Tools)** (42) - **[Frameworks](entries/tocs/_frameworks.md#Frameworks)** (83) - **[Libraries](entries/tocs/_libraries.md#Libraries)** (44)
-By category: **[Action](entries/tocs/_action.md#action)** (238), **[Adventure](entries/tocs/_adventure.md#adventure)** (55), **[Arcade](entries/tocs/_arcade.md#arcade)** (120), **[Board](entries/tocs/_board.md#board)** (23), **[Cards](entries/tocs/_cards.md#cards)** (17), **[Educational](entries/tocs/_educational.md#educational)** (13), **[Framework](entries/tocs/_framework.md#framework)** (83), **[Game engine](entries/tocs/_game-engine.md#game-engine)** (121), **[Library](entries/tocs/_library.md#library)** (44), **[Music](entries/tocs/_music.md#music)** (13), **[Platform](entries/tocs/_platform.md#platform)** (59), **[Puzzle](entries/tocs/_puzzle.md#puzzle)** (142), **[Remake](entries/tocs/_remake.md#remake)** (531), **[Role playing](entries/tocs/_role-playing.md#role-playing)** (201), **[Simulation](entries/tocs/_simulation.md#simulation)** (115), **[Sports](entries/tocs/_sports.md#sports)** (25), **[Strategy](entries/tocs/_strategy.md#strategy)** (269), **[Tool](entries/tocs/_tool.md#tool)** (42), **[Visual novel](entries/tocs/_visual-novel.md#visual-novel)** (6)
+By category: **[Action](entries/tocs/_action.md#action)** (238), **[Adventure](entries/tocs/_adventure.md#adventure)** (55), **[Arcade](entries/tocs/_arcade.md#arcade)** (123), **[Board](entries/tocs/_board.md#board)** (24), **[Cards](entries/tocs/_cards.md#cards)** (18), **[Educational](entries/tocs/_educational.md#educational)** (13), **[Framework](entries/tocs/_framework.md#framework)** (83), **[Game engine](entries/tocs/_game-engine.md#game-engine)** (121), **[Library](entries/tocs/_library.md#library)** (44), **[Music](entries/tocs/_music.md#music)** (13), **[Platform](entries/tocs/_platform.md#platform)** (59), **[Puzzle](entries/tocs/_puzzle.md#puzzle)** (142), **[Remake](entries/tocs/_remake.md#remake)** (531), **[Role playing](entries/tocs/_role-playing.md#role-playing)** (201), **[Simulation](entries/tocs/_simulation.md#simulation)** (115), **[Sports](entries/tocs/_sports.md#sports)** (25), **[Strategy](entries/tocs/_strategy.md#strategy)** (273), **[Tool](entries/tocs/_tool.md#tool)** (42), **[Visual novel](entries/tocs/_visual-novel.md#visual-novel)** (6)
-By platform: **[Windows](entries/tocs/_windows.md#windows)** (457), **[Linux](entries/tocs/_linux.md#linux)** (443), **[macOS](entries/tocs/_macos.md#macos)** (249), **[Android](entries/tocs/_android.md#android)** (70), **[iOS](entries/tocs/_ios.md#ios)** (15), **[Web](entries/tocs/_web.md#web)** (135)
+By platform: **[Windows](entries/tocs/_windows.md#windows)** (464), **[Linux](entries/tocs/_linux.md#linux)** (450), **[macOS](entries/tocs/_macos.md#macos)** (255), **[Android](entries/tocs/_android.md#android)** (84), **[iOS](entries/tocs/_ios.md#ios)** (16), **[Web](entries/tocs/_web.md#web)** (135)
[comment]: # (end of autogenerated content)
diff --git a/code/archives.json b/code/archives.json
index 0d673427..b142fc8f 100644
--- a/code/archives.json
+++ b/code/archives.json
@@ -9,6 +9,7 @@
"https://anongit.kde.org/ksudoku.git",
"https://bitbucket.org/SteveSmith16384/teamtactics.git",
"https://bitbucket.org/annexctw/annex.git",
+ "https://bitbucket.org/brucelet/space-trader.git",
"https://bitbucket.org/czirkoszoltan/gdash.git",
"https://bitbucket.org/dalerank/caesaria.git",
"https://bitbucket.org/dividuum/infon.git",
@@ -162,11 +163,11 @@
"https://github.com/Blzut3/CatacombSDL.git",
"https://github.com/BrooklynKing/Grimsonland.git",
"https://github.com/BrunoAOR/Space-Harrier-Clone.git",
+ "https://github.com/Bubu/android-dice-game.git",
"https://github.com/Calinou/libre-pinball.git",
"https://github.com/CamHenlin/ExecutiveMan.git",
"https://github.com/CamHenlin/Roguish.git",
"https://github.com/CartBlanche/Siege-of-Avalon-Open-Source.git",
- "https://github.com/Ceva24/ceva24.github.io.git",
"https://github.com/ChildrenOfUr/coUclient.git",
"https://github.com/Chris3606/GoRogue.git",
"https://github.com/ChrisDill/Raylib-cs.git",
@@ -222,6 +223,7 @@
"https://github.com/Gnomescroll/Gnomescroll.git",
"https://github.com/GoogleChromeLabs/proxx.git",
"https://github.com/Greavesy1899/Mafia2Toolkit.git",
+ "https://github.com/Greentwip/HoneyTown.git",
"https://github.com/Grokmoo/hale.git",
"https://github.com/GunshipPenguin/open_flood.git",
"https://github.com/HackerPoet/MarbleMarcher.git",
@@ -257,7 +259,6 @@
"https://github.com/LagoLunatic/wwrando.git",
"https://github.com/LambdaHack/LambdaHack.git",
"https://github.com/Last-Minute-Creations/openFire.git",
- "https://github.com/LastTryR/LastTry.git",
"https://github.com/Leejjon/Battleround.git",
"https://github.com/LibreGamesArchive/galaxymageredux.git",
"https://github.com/LibreGamesArchive/silvertree.git",
@@ -354,7 +355,6 @@
"https://github.com/SimonLarsen/mrrescue.git",
"https://github.com/SimonN/Lix.git",
"https://github.com/SimonN/LixD.git",
- "https://github.com/SmallRoomLabs/ladder.git",
"https://github.com/SoapyMan/REDRIVER2.git",
"https://github.com/SpaceTraderGame/SpaceTrader-Windows.git",
"https://github.com/Stabyourself/mari0.git",
@@ -434,6 +434,7 @@
"https://github.com/alemart/opensurge.git",
"https://github.com/alexdantas/www.git",
"https://github.com/alexknvl/fonline.git",
+ "https://github.com/alkom/droidzebra.git",
"https://github.com/alphaonex86/CatchChallenger.git",
"https://github.com/alxm/faur.git",
"https://github.com/amerkoleci/alimer.git",
@@ -495,6 +496,7 @@
"https://github.com/bote-team/bote.git",
"https://github.com/bradhannah/Ultima5Redux.git",
"https://github.com/bradharding/doomretro.git",
+ "https://github.com/brain-workshop/brainworkshop.git",
"https://github.com/brandon-rhodes/python-adventure.git",
"https://github.com/brenns10/minesweeper.git",
"https://github.com/brenns10/tetris.git",
@@ -513,6 +515,7 @@
"https://github.com/castle-engine/castle-engine.git",
"https://github.com/ccdevnet/openc2e.git",
"https://github.com/cdetamble/jewelthief.git",
+ "https://github.com/ceva24/gift-grabber.git",
"https://github.com/cflavio/yorg.git",
"https://github.com/chaosforgeorg/doomrl.git",
"https://github.com/chocolate-doom/chocolate-doom.git",
@@ -536,6 +539,7 @@
"https://github.com/crawl/crawl.git",
"https://github.com/crosire/reshade.git",
"https://github.com/crossuo/crossuo.git",
+ "https://github.com/crownengine/crown.git",
"https://github.com/cthielen/Epiar.git",
"https://github.com/cubei/FlappyCow.git",
"https://github.com/cubosphere/cubosphere-code.git",
@@ -552,7 +556,6 @@
"https://github.com/danielcrenna/TrueCraft.git",
"https://github.com/darklegion/tremulous.git",
"https://github.com/davidjoffe/dave_gnukem.git",
- "https://github.com/dbartolini/crown.git",
"https://github.com/ddevault/TrueCraft.git",
"https://github.com/deathbeam/spooker.git",
"https://github.com/deathbeam/yae.git",
@@ -560,7 +563,7 @@
"https://github.com/deerportal/deerportal.git",
"https://github.com/delight-im/OpenSoccer.git",
"https://github.com/demonixis/C3DE.git",
- "https://github.com/dgengin/DGEngine.git",
+ "https://github.com/dgcor/DGEngine.git",
"https://github.com/dhewm/dhewm3.git",
"https://github.com/diasurgical/devilution.git",
"https://github.com/diasurgical/devilutionX.git",
@@ -573,7 +576,9 @@
"https://github.com/dorkster/freeblocks.git",
"https://github.com/dougmencken/HeadOverHeels.git",
"https://github.com/doxygen/doxygen.git",
+ "https://github.com/dozingcat/Vector-Pinball.git",
"https://github.com/dreamchess/dreamchess.git",
+ "https://github.com/drodin/TuxRider.git",
"https://github.com/dsallen7/ransack-python.git",
"https://github.com/dulsi/btbuilder.git",
"https://github.com/dulsi/ostrichriders.git",
@@ -586,6 +591,7 @@
"https://github.com/ec-/Quake3e.git",
"https://github.com/ec429/harris.git",
"https://github.com/egoboo/egoboo.git",
+ "https://github.com/egordorichev/LastTry.git",
"https://github.com/eguneys/lose-your-marbles.git",
"https://github.com/eguneys/supaxl.git",
"https://github.com/electronicarts/CnC_Remastered_Collection.git",
@@ -644,7 +650,6 @@
"https://github.com/gondur/cartlife_src.git",
"https://github.com/gp-alex/world-of-might-and-magic.git",
"https://github.com/graememcc/micropolisJS.git",
- "https://github.com/greentwip/HarvestMoon.git",
"https://github.com/gregoryfenton/other-life.git",
"https://github.com/griefly/griefly.git",
"https://github.com/grit-engine/grit-engine.git",
@@ -775,6 +780,7 @@
"https://github.com/mdsteele/azimuth.git",
"https://github.com/mdsteele/syzygy.git",
"https://github.com/melonjs/melonJS.git",
+ "https://github.com/mengstr/ladder.git",
"https://github.com/mgechev/mk.js.git",
"https://github.com/mgerhardy/caveexpress.git",
"https://github.com/mgfreshour/hexwar.git",
@@ -893,6 +899,7 @@
"https://github.com/raysan5/rfxgen.git",
"https://github.com/red-eclipse/base.git",
"https://github.com/reed-jones/minesweeper_js.git",
+ "https://github.com/reloZid/android-anuto.git",
"https://github.com/renpy/pygame_sdl2.git",
"https://github.com/renpy/python-for-android.git",
"https://github.com/renpy/rapt.git",
@@ -900,10 +907,12 @@
"https://github.com/renpy/renpy-deps.git",
"https://github.com/renpy/renpy.git",
"https://github.com/residualvm/residualvm.git",
+ "https://github.com/retrowars/retrowars.git",
"https://github.com/richardjs/Maelstrom.git",
"https://github.com/riksweeney/edgar.git",
"https://github.com/riperiperi/FreeSO.git",
"https://github.com/riperiperi/Simitone.git",
+ "https://github.com/rnauber/xskat-android.git",
"https://github.com/rofl0r/openDOW.git",
"https://github.com/rohit-n/Clonepoint.git",
"https://github.com/romlok/godot-gdhexgrid.git",
@@ -918,7 +927,6 @@
"https://github.com/sabetts/bratwurst.git",
"https://github.com/sago007/annchienta.git",
"https://github.com/salvadorc17/Prince-Monogame.git",
- "https://github.com/samcv/brainworkshop.git",
"https://github.com/sandsmark/aicompo-tg17.git",
"https://github.com/sandsmark/freeaoe.git",
"https://github.com/sandsmark/kart.git",
@@ -967,6 +975,7 @@
"https://github.com/stephenjsweeney/blobwarsAttrition.git",
"https://github.com/stepmania/stepmania.git",
"https://github.com/stople/OpenTitus.git",
+ "https://github.com/storm-devs/storm-engine.git",
"https://github.com/stransky/berusky.git",
"https://github.com/stransky/berusky2.git",
"https://github.com/stuntrally/stuntrally.git",
@@ -1034,6 +1043,7 @@
"https://github.com/verhoevenv/OpenNotrium.git",
"https://github.com/vgc/vgc.git",
"https://github.com/vicgeralds/vitetris.git",
+ "https://github.com/videogameboy76/frozenbubbleandroid.git",
"https://github.com/videogamepreservation/abuse.git",
"https://github.com/viewizard/astromenace.git",
"https://github.com/vilbeyli/VQEngine.git",
@@ -1074,7 +1084,7 @@
"https://github.com/zenorogue/noteye.git",
"https://github.com/zombieman1041/BlakedAwesomenaughts.git",
"https://github.com/zuzuf/TA3D.git",
- "https://gitlab.axiodl.com/AxioDL/urde.git",
+ "https://gitlab.axiodl.com/AxioDL/metaforce.git",
"https://gitlab.com/Dringgstein/Commander-Genius.git",
"https://gitlab.com/EugeneLoza/Project-Helena.git",
"https://gitlab.com/KilgoreTroutMaskReplicant/1oom.git",
@@ -1312,12 +1322,12 @@
"https://gitlab.com/wavexx/regame.git",
"https://gitlab.com/xonotic/darkplaces.git",
"https://gitlab.com/xonotic/xonotic.git",
- "https://gitlab.gnome.org/GNOME/gcompris.git",
"https://gitlab.gnome.org/GNOME/gnome-chess.git",
"https://gitlab.gnome.org/GNOME/gnome-mines.git",
"https://gitlab.gnome.org/GNOME/gtk.git",
"https://gitlab.gnome.org/GNOME/libxml2.git",
"https://gitlab.gnome.org/GNOME/quadrapassel.git",
+ "https://invent.kde.org/education/gcompris.git",
"https://invent.kde.org/games/granatier.git",
"https://invent.kde.org/games/katomic.git",
"https://invent.kde.org/games/kgoldrunner.git",
diff --git a/code/backlog.txt b/code/backlog.txt
index 147da84f..83ff19db 100644
--- a/code/backlog.txt
+++ b/code/backlog.txt
@@ -161,6 +161,7 @@ https://directory.fsf.org/wiki/Collection:GNOME_Games (all of them)
https://dosgames.com/about.php (search for public domain games with sources)
https://dosgames.com/forum/about19706.html
https://dragengine.rptd.ch/
+https://drodin.com/ (all games there)
https://eblong.com/zarf/twilight/index.html
https://edu.kde.org/
https://empiredirectory.net/
@@ -201,6 +202,7 @@ https://github.blog/2021-05-19-ludum-dare-48-staff-picks/
https://github.com/00-Evan/shattered-pixel-dungeon
https://github.com/00-Evan/shattered-pixel-dungeon-gdx
https://github.com/acedogblast/Project-Uranium-Godot
+https://github.com/adriengivry/overload
https://github.com/adriengivry/Overload
https://github.com/aloisdeniel/awesome-monogame
https://github.com/Alzter/TuxBuilder
@@ -269,11 +271,13 @@ https://github.com/flathub (all repositories which are games there)
https://github.com/FUSEEProjectTeam/Fusee
https://github.com/fynnfluegge/oreon-engine
https://github.com/Galapix/galapix
+https://github.com/Gamaen (all their repositories)
https://github.com/gamearians
https://github.com/GamedevFramework/gf
https://github.com/gan74/Yave
https://github.com/GarageGames/Torque3D
https://github.com/GDQuest/godot-visual-effects
+https://github.com/Gforcex/OpenGraphic (all open source game engines there)
https://github.com/GlPortal/RadixEngine
https://github.com/gnFur/Monofoxe
https://github.com/GNOME/quadrapassel
@@ -322,6 +326,7 @@ https://github.com/luciopanepinto/pacman
https://github.com/LuminoEngine/Lumino
https://github.com/MarcoLizza/tofu-engine
https://github.com/MarilynDafa/Bulllord-Engine
+https://github.com/mars-sim/mars-sim
https://github.com/marshallward/TiledSharp
https://github.com/Martenfur/Monofoxe
https://github.com/marukrap/RoguelikeDevResources
@@ -348,6 +353,7 @@ https://github.com/nfprojects/nfengine
https://github.com/NickMcConnell/FAangband
https://github.com/NoelFB/blah
https://github.com/Noesis/UE4-ShooterGame
+https://github.com/oers/reversatile
https://github.com/ogarcia/opensudoku
https://github.com/Ogmo-Editor-3/OgmoEditor3-CE
https://github.com/OGRECave/scape
@@ -380,6 +386,7 @@ https://github.com/psuong/ig-developer-console
https://github.com/qiciengine/qiciengine
https://github.com/Quaver/Wobble
https://github.com/quinnvoker/qurobullet
+https://github.com/rafaelcastrocouto/foda
https://github.com/rakugoteam/Rakugo
https://github.com/RandyGaul/qu3e
https://github.com/rds1983/Jord
@@ -397,6 +404,7 @@ https://github.com/rotators/Fo1in2
https://github.com/RoxasShadow/Sottaceto
https://github.com/roy-t/MiniRTS
https://github.com/rramsden/ymir
+https://github.com/RSamaium/RPG-JS
https://github.com/Ruin0x11/OpenNefia
https://github.com/sabresaurus/SabreCSG
https://github.com/SadConsole/SadConsole
@@ -426,6 +434,7 @@ https://github.com/Suprcode/mir3-zircon
https://github.com/Sygmei/ObEngine
https://github.com/tainicom/Aether.Physics2D
https://github.com/tangziwen/Cube-Engine
+https://github.com/teeworlds/teeworlds
https://github.com/terrafx/terrafx
https://github.com/the-insulines
https://github.com/theaigames
@@ -444,6 +453,7 @@ https://github.com/uberspot/2048-android
https://github.com/untakenstupidnick/nbsdgames (Blockout II)
https://github.com/untakenstupidnick/nbsdgames (Cross-platform ncurses/pdcurses based games under active development)
https://github.com/UnterrainerInformatik/GameDevelopmentLinks
+https://github.com/UPBGE/upbge
https://github.com/Venom0us/Emberpoint
https://github.com/videogamepreservation
https://github.com/vini-guerrero/Godot_Game_Tools
@@ -491,6 +501,7 @@ https://notabug.org/Calinou/awesome-gamedev#games
https://odr.chalmers.se/handle/20.500.12380/219006
https://osdn.net/softwaremap/trove_list.php?form_cat=80
https://packages.debian.org/sid/games/etw
+https://pipoypipagames.itch.io/cows-revenge (https://github.com/Dariasteam/Cows-Revenge)
https://pixeldoctrine.com/index.html (more than just slime volleyball)
https://play.google.com/store/apps/dev?id=8387589286898375037 (where is the source, not open source otherwise)
https://playcanvas.com/
@@ -541,7 +552,6 @@ https://sourceforge.net/projects/tbswwengine/
https://sourceforge.net/projects/terratenebrae/
https://sourceforge.net/projects/tyrant/
https://sourceforge.net/projects/untitled-rpg/
-https://sourceforge.net/projects/wesnoth-on-android/
https://sourceforge.net/projects/wme/
https://sourceforge.net/projects/wowrl/
https://sourceforge.net/projects/wwiig/
@@ -574,6 +584,7 @@ https://www.freegamesutopia.com/
https://www.frictionalgames.com/forum/forum-28.html
https://www.gamingonlinux.com/free-games/ (all of them that are open source)
https://www.glitchthegame.com/ (Glitch the game, by Tiny Speck Inc. public domain)
+https://www.gog.com/forum/general/free_open_source_games (and suggestions therein)
https://www.libretro.com/
https://www.libsdl.org/
https://www.moddb.com/ (scrape, look for open source)
diff --git a/code/generate_static_website.py b/code/generate_static_website.py
index 5c5eb3b2..a433aff5 100644
--- a/code/generate_static_website.py
+++ b/code/generate_static_website.py
@@ -17,50 +17,53 @@
"""
-# TODO index.html add small introductory text
-# TODO index: icons not shown
-# TODO contribute.html add content
+# pre-release
-# TODO update Bulma
+# project LICENSE file not auto recognized by Github (use https://github.com/simple-icons/simple-icons/blob/develop/LICENSE.md instead)
-# TODO more icons - (missing categories, index.html without icons)
+# TODO contribute.html add content
+
+# TODO more icons - missing categories
# TODO replace or remove @notices in entries (maybe different entries format)
-# TODO SEO optimizations, google search ...
-# TODO sitemap
-# TODO Google search console
-# TODO rel attribute https://www.w3schools.com/TAGS/att_a_rel.asp
-# TODO everywhere: style URLs (Github, Wikipedia, Internet archive, SourceForge, ...)
# TODO everywhere: singular, plural (game, entries, items)
-# TODO everywhere: meta/title tag
-# TODO everywhere: optimize jinja for line breaks and indention and minimal amount of spaces (and size of files) and minimal amount of repetition of tags
-
-# TODO inspirations: icon full lamp (not contained in icomoon.io)
-# TODO inspirations: if included in the database, link instead to game
# TODO statistics: better and more statistics with links where possible
# TODO statistics: with nice graphics (pie charts in SVG) with matplotlib, seaborn, plotly?
# TODO statistics: get it from common statistics generator
-# TODO footer: clean up, link to Github project
-
# TODO frameworks: icons for frameworks/libraryies/tools
# TODO filter by category: icons too large (overlapping)
-# TODO games: keywords as labels (some as links)
-# TODO games: platforms as labels and with links (links don't work)
-# TODO games: Build system with links like licenses
-# TODo games: developers if more than a single line (collapse, expand?) without JS?
-# TODO games: mature, active not blue (link) maybe red or just bold black and beta inactive gray? and add tooltips
-# TODO games: code repositories (stars and forks), list all comma-separated (should be ()) instead
# TODO games: @see-home/@see-download/@add (ignore or replace?)
-# TODO games/frameworks: tooltip of supported OS
-# TODO games: link to dependencies (either if existing or if url)
# TODO games: top 50 list from Github via their stars with download links (add to entries) and with screenshot
# TODO games: add screenshot ability (add screenshot to database, at least for top 50)
+
+# release
+
+# TODO update Bulma
+# TODO everywhere: optimize jinja for line breaks and indention and minimal amount of spaces (and size of files) and minimal amount of repetition of tags
+
+# post-release
+
+# TODO everywhere: meta/title tag
+# TODO everywhere: style URLs (Github, Wikipedia, Internet archive, SourceForge, ...)
+
+# TODO inspirations: icon full lamp (not contained in icomoon.io)
+
+# TODO games: developers if more than a single line (collapse, expand?) without JS? (https://stackoverflow.com/questions/41220717/collapse-without-javascript, https://codeconvey.com/html-expand-collapse-text-without-javascript/)
+# TODO games: technical info (collapse on click)
+# TODO games: link to dependencies (either if existing or if url)
# TODO games: javascript table
-# TODO games/frameworks: bug, recommended tags, links not going to genre
+# TODO games: repositories comments have too much space after( and before )
+
+# TODO SEO optimizations, google search ...
+# TODO sitemap
+# TODO Google search console
+# TODO rel attribute https://www.w3schools.com/TAGS/att_a_rel.asp
+
+# TODO inspirations: if included in the database, link instead to game
import os
import shutil
@@ -179,6 +182,7 @@ def write(text, file):
html5parser.parse(text)
except Exception as e:
utils.write_text(os.path.join(c.web_path, 'invalid.html'), text) # for further checking with https://validator.w3.org/
+ print('probem with file {}, see invalid.html'.format(file))
raise RuntimeError(e)
# output file
file = os.path.join(c.web_path, *file)
@@ -404,7 +408,7 @@ def make_repo_url(x, name):
# this is the default element
url = make_url(x.value, shortcut_url(x.value, name), css_class='is-size-7')
if comments:
- return make_enumeration([url, make_enumeration(comments)], '')
+ return make_enumeration([url, make_enclose(make_enumeration(comments), '(', ')')], '')
else:
return url
@@ -435,6 +439,16 @@ def make_nothing():
}
+def make_enclose(entry, left, right):
+ enclose = {
+ 'type': 'enclose',
+ 'entry': entry,
+ 'left': left,
+ 'right': right
+ }
+ return enclose
+
+
def make_enumeration(entries, divider=', '):
enumeration = {
'type': 'enumeration',
@@ -530,10 +544,10 @@ def create_state_texts(states):
if 'mature' in states:
texts.append(make_text('mature', 'is-size-7 has-text-weight-bold has-text-info'))
else:
- texts.append(make_text('beta', 'is-size-7 has-text-gray-light'))
+ texts.append(make_text('beta', 'is-size-7 has-text-gray-lighter'))
inactive = [x for x in states if x.startswith('inactive since')]
if inactive:
- texts.append([make_text(inactive[0], 'is-size-7 has-text-gray-light'), make_icon('brightness_3')])
+ texts.append([make_text(inactive[0], 'is-size-7 has-text-gray-lighter'), make_icon('brightness_3')])
else:
texts.append([make_text('active', 'is-size-7 has-text-weight-bold has-text-info'), make_icon('sun')])
return texts
@@ -576,9 +590,9 @@ def convert_entries(entries, inspirations, developers):
e = [make_url(x, shortcut_url(x, name)) for x in e]
else:
e = [make_text(x) for x in e]
- if field == 'Home': # Home -> Homepage
+ if field == 'Home': # Home -> Homepage
field = 'Homepage'
- elif field == 'Play': # Play -> Play online
+ elif field == 'Play': # Play -> Play online
field = 'Play online'
namex = make_text('{}: '.format(get_plural_or_singular(field, len(e))), 'has-text-weight-semibold')
entry[field.lower()] = [namex, make_enumeration(e, divider)]
@@ -588,12 +602,11 @@ def convert_entries(entries, inspirations, developers):
e = entry['Platform']
if isinstance(e[0], osg.osg_parse.ValueWithComment):
e = [x.value for x in e]
- e = [make_url('', make_icon(platform_icon_map[x]), x) if x in platform_icon_map else make_text(x, 'is-size-7') for x in e]
- namex = make_text('{}:'.format(get_plural_or_singular('Platform', len(e))), 'has-text-weight-semibold')
- entry['platform'] = [namex] + e
else:
- namex = make_text('{}:'.format(get_plural_or_singular('Platform', 1)), 'has-text-weight-semibold')
- entry['platform'] = [namex, make_icon(platform_icon_map['Unspecified'])]
+ e = ['Unspecified']
+ e = [make_url(games_by_platform_path[:-1] + ['{}#{}'.format(games_by_platform_path[-1], x.lower())], make_icon(platform_icon_map[x]), x) if x in platform_icon_map else make_text(x, 'is-size-7') for x in e]
+ namex = make_text('{}:'.format(get_plural_or_singular('Platform', len(e))), 'has-text-weight-semibold')
+ entry['platform'] = [namex] + e
# technical info fields
for field in ('Code language', 'Code license', 'Code repository', 'Code dependency', 'Assets license'):
@@ -624,7 +637,7 @@ def convert_entries(entries, inspirations, developers):
divider = ', '
if isinstance(e[0], osg.osg_parse.ValueWithComment):
e = [x.value for x in e]
- e = [make_text(x, 'is-size-7') for x in e]
+ e = [make_url(c.build_system_urls[x], x, css_class='is-size-7') if x in c.build_system_urls else make_text(x, 'is-size-7') for x in e]
namex = make_text('{}: '.format(field), 'is-size-7')
entry[field.lower()] = [namex, make_enumeration(e, divider)]
@@ -865,7 +878,8 @@ def generate(entries, inspirations, developers):
# top 50 games
base['active_nav'] = ['filter', 'top50']
listing = {
- 'title': 'Top 50 games (stars)',
+ 'title': 'GitHub Stars Top 50',
+ 'subtitle': '50 highest rated (by stars on Github) open source games in the database',
'items': top50_games
}
write(template_listing_entries.render(listing=listing), games_top50_path)
diff --git a/code/html/base.jinja b/code/html/base.jinja
index 47680ce5..f6a11c12 100644
--- a/code/html/base.jinja
+++ b/code/html/base.jinja
@@ -37,15 +37,14 @@
{% block content %}{% endblock %}
{#- footer -#}