added a few new entries, updated some outdated links, refreshed generated content
This commit is contained in:
@ -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",
|
||||
|
@ -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)
|
||||
|
@ -17,50 +17,53 @@ Listing:
|
||||
|
||||
"""
|
||||
|
||||
# TODO index.html add small introductory text
|
||||
# TODO index: icons not shown
|
||||
# pre-release
|
||||
|
||||
# project LICENSE file not auto recognized by Github (use https://github.com/simple-icons/simple-icons/blob/develop/LICENSE.md instead)
|
||||
|
||||
# TODO contribute.html add content
|
||||
|
||||
# TODO update Bulma
|
||||
|
||||
# TODO more icons - (missing categories, index.html without icons)
|
||||
# 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 <a> 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 <a> 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)
|
||||
|
@ -37,15 +37,14 @@
|
||||
{% block content %}{% endblock %}
|
||||
{#- footer -#}
|
||||
<footer class="footer">
|
||||
<div class="container is-size-7">
|
||||
<div class="block">
|
||||
Follow the <a href="https://trilarion.blogspot.com/search/label/osgames">Blog</a><br>
|
||||
</div>
|
||||
<div class="block">
|
||||
Disclaimer: The content on this site is the result of voluntary work and may be outdated or incorrect.
|
||||
The content is licensed <a href="https://github.com/Trilarion/opensourcegames/blob/master/LICENSE">CC-0</a>. Icons and ... <br>
|
||||
Last updated: {{ base['creation-date'] }}
|
||||
</div>
|
||||
<div class="container content is-size-7">
|
||||
<p>The <a href="https://github.com/Trilarion/opensourcegames">Open source games list (OSGL)</a> is a collection of open source game descriptions focusing on technical aspects.
|
||||
The content on this site is the result of voluntary work and may be outdated or incorrect.<br>
|
||||
For giving feedback or improving the content see the <a href="contribute.html">contribution guidelines</a> or read the <a href="https://trilarion.blogspot.com/search/label/osgames">Blog</a>.</p>
|
||||
<p>The content (games descriptions) is licensed <a href="https://github.com/Trilarion/opensourcegames/blob/master/LICENSE">CC-0</a>.
|
||||
Used icons are licensed under CC BY-SA 3.0 (<a href="https://github.com/somerandomdude/Iconic">Iconic</a> or <a href="http://designmodo.com/linecons-free/">Linecons</a>), CC0 1.0 (<a href="https://simpleicons.org/">Simple Icons</a>),
|
||||
CC BY 4.0 (<a href="https://github.com/FortAwesome/Font-Awesome">Font Awesome</a> or <a href="https://icomoon.io/#icons-icomoon">IcoMoon Free</a>), CC BY-SA 4.0 (<a href="http://www.entypo.com/">Entypo+</a>) or Apache License 2.0 (<a href="https://material.io/resources/icons">Material Icons</a>).
|
||||
This website is built using Python, Lark, Jinja2 and Bulma. Last updated: {{ base['creation-date'] }}</p>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
|
@ -2,17 +2,28 @@
|
||||
{% block content %}
|
||||
<section class="section">
|
||||
<div class="container">
|
||||
<div class="box">
|
||||
<div class="box content">
|
||||
<h1 class="title is-size-4">Contribution guide</h1>
|
||||
<p>Please help improve the content of this site. The preferred way to contribute or give feedback is:</p>
|
||||
<ul>
|
||||
<li>Open an <a href="https://github.com/Trilarion/opensourcegames/issues">issue at the Github page</a>.</li>
|
||||
<li>Fork the Github project and create a <a href="https://github.com/Trilarion/opensourcegames/pulls">pull request</a> (if you are familiar with that).</li>
|
||||
<li>Send an email to ...</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="block">
|
||||
<h2 id="games">Improving games/frameworks/tools information</h2>
|
||||
<p>Entries for open source games, gaming engines and gaming tools are stored as human readable text version in a markdown format (<a href="">example</a>).
|
||||
For each entry, the database content can be seen when clicking on "Raw entry" below the entry. You can suggest corrections or updates to an entry or a list of entries in one of the following ways:</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="block">
|
||||
<h2 id="developers">Improving developers information</h2>
|
||||
<p>The developer information is stored in a single big file (<a href="">developer database</a>) and relates developers to open source games they have participated in. Additionally, developer profiles on GitHub, SourceForge or BitBucket are linked on
|
||||
a developer information and again on the game entries, in the developers field, all developers are listed. The relation between developers and games is stored twice to allow for both search directions, i.e. find all developers of a game or all games of a developer.
|
||||
A consistency check will run regularly on the content and will give precedence to the developer names stored in the games entries (the games list stored in the developer information will be overwritten).</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
|
@ -3,9 +3,14 @@
|
||||
{% block content %}
|
||||
<section class="hero is-info is-bold">
|
||||
<div class="hero-body">
|
||||
<div class="container">
|
||||
<div class="container content">
|
||||
<h1 class="title">Open source games list (OSGL)</h1>
|
||||
<p class="subtitle">{{ macros.render_text(index['subtitle']) }}</p>
|
||||
<p>The content of this site is based on a collection of open source game descriptions stored on <a href="https://github.com/Trilarion/opensourcegames">Github</a>.
|
||||
The descriptions concentrate on technical and general aspects of the games. Lots of sorting options are available and a list of inspirations and developers is cross-referenced.
|
||||
This work is a best-effort based result and will surely contain inaccurate information.<br>
|
||||
Please help improve the content (see <a href="contribute.html">contribution guidelines</a>).
|
||||
</p>
|
||||
<figure class="image is-2by1">
|
||||
<img src="collage_games.jpg" alt="">
|
||||
</figure>
|
||||
|
@ -1,23 +1,4 @@
|
||||
{# A single piece of text optionally with a format class. (see https://bulma.io/documentation/helpers/typography-helpers/) #}
|
||||
{%- macro render_text(text) -%}
|
||||
{%- if 'class' in text -%} {# Enhanced text #}
|
||||
<span class="{{ text['class'] }}">{{ text['text'] }}</span>
|
||||
{%- else -%}
|
||||
{{ text['text'] }}{# <span>{{ text['text'] }}</span> #}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
{# #}
|
||||
{%- macro render_icon(icon) -%}
|
||||
<span class="icon has-text-black" {% if 'title' in icon %} title="{{ icon['title'] }}"{% endif %}><i class="icon-{{ icon['class'] }}"></i></span>
|
||||
{%- endmacro -%}
|
||||
|
||||
{# Some text surrounded by a link tag #}
|
||||
{%- macro render_url(url) -%}
|
||||
<a href="{{ base['url_to'](url['href'], url) }}"{% if 'title' in url %} title="{{ url['title'] }}"{% endif %}{% if 'class' in url %} class="{{ url['class'] }}"{% endif %}>{{ render_element(url['content']) }}</a>
|
||||
{%- endmacro -%}
|
||||
|
||||
{# Renders either plain text or a link depending on the type #}
|
||||
{# Renders either as plain text or everything else depending on the type #}
|
||||
{%- macro render_element(entry) -%}
|
||||
{%- if entry is string -%}
|
||||
{{ render_text({'text': entry}) }}
|
||||
@ -33,17 +14,44 @@
|
||||
{{ render_enumeration(entry) }}
|
||||
{%- elif entry['type'] == 'tags' -%}
|
||||
{{ render_tags(entry) }}
|
||||
{%- elif entry['type'] == 'enclose' -%}
|
||||
{{ render_enclose(entry) }}
|
||||
{%- else -%}
|
||||
{{ raise('Unknown entry type: {}.'.format(entry)) }}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
{# A single piece of text optionally with a format class. (see https://bulma.io/documentation/helpers/typography-helpers/) #}
|
||||
{%- macro render_text(text) -%}
|
||||
{%- if 'class' in text -%} {# Enhanced text #}
|
||||
<span class="{{ text['class'] }}">{{ text['text'] }}</span>
|
||||
{%- else -%}
|
||||
{{ text['text'] }}{# <span>{{ text['text'] }}</span> #}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
{# Renders an icon #}
|
||||
{%- macro render_icon(icon) -%}
|
||||
<span class="icon has-text-black" {% if 'title' in icon %} title="{{ icon['title'] }}"{% endif %}><i class="icon-{{ icon['class'] }}"></i></span>
|
||||
{%- endmacro -%}
|
||||
|
||||
{# Some text surrounded by a link tag #}
|
||||
{%- macro render_url(url) -%}
|
||||
<a href="{{ base['url_to'](url['href'], url) }}"{% if 'title' in url %} title="{{ url['title'] }}"{% endif %}{% if 'class' in url %} class="{{ url['class'] }}"{% endif %}>{{ render_element(url['content']) }}</a>
|
||||
{%- endmacro -%}
|
||||
|
||||
{# Renders a list of enumeration entries (either links or text) #}
|
||||
{%- macro render_enumeration(enumeration) -%}
|
||||
{%- set divider = joiner(enumeration['divider']) -%}
|
||||
{% for entry in enumeration['entries'] -%}{{ divider() }}{{ render_element(entry) }}{%- endfor -%}
|
||||
{%- for entry in enumeration['entries'] -%}{{ divider() }}{{ render_element(entry) }}{%- endfor -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
{# #}
|
||||
{%- macro render_tags(tags) -%}
|
||||
<div class="tags has-addons">{{ render_enumeration(tags['enumeration']) }}</div>
|
||||
{%- endmacro -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
{# #}
|
||||
{%- macro render_enclose(enclose) -%}
|
||||
{{ enclose['left'] }}{{ render_element(enclose['entry']) }}{{ enclose['right'] }}
|
||||
{%- endmacro -%}
|
||||
|
@ -379,6 +379,8 @@ class EntriesMaintainer:
|
||||
continue # even though verify is False, these errors still get through
|
||||
print('{}: {} - exception {}'.format(names, url, error_name))
|
||||
|
||||
print('external links checked')
|
||||
|
||||
def update_readme_tocs(self):
|
||||
"""
|
||||
Recounts entries in sub categories and writes them to the readme.
|
||||
|
@ -201,6 +201,22 @@ general_code_dependencies_without_entry = {'OpenGL': 'https://www.opengl.org/',
|
||||
'GNU Guile': 'https://www.gnu.org/software/guile/',
|
||||
'tkinter': 'https://docs.python.org/3/library/tk.html'}
|
||||
|
||||
# build system urls
|
||||
build_system_urls = {
|
||||
'CMake': 'https://cmake.org/',
|
||||
'Make': 'https://en.wikipedia.org/wiki/Make_(software)',
|
||||
'Autoconf': 'https://en.wikipedia.org/wiki/Autoconf',
|
||||
'Gradle': 'https://gradle.org/',
|
||||
'Visual Studio': 'https://en.wikipedia.org/wiki/Microsoft_Visual_Studio',
|
||||
'setup.py': 'https://packaging.python.org/tutorials/packaging-projects/#configuring-metadata',
|
||||
'Scons': 'https://scons.org/',
|
||||
'Ant': 'http://ant.apache.org/',
|
||||
'Maven': 'https://maven.apache.org/index.html',
|
||||
'Meson': 'https://mesonbuild.com/',
|
||||
'premake': 'https://premake.github.io/',
|
||||
'QMake': 'https://doc.qt.io/qt-5/qmake-manual.html',
|
||||
}
|
||||
|
||||
# developer information (in the file all fields will be capitalized)
|
||||
essential_developer_fields = ('Name', 'Games')
|
||||
optional_developer_fields = ('Home', 'Contact', 'Organization')
|
||||
|
Reference in New Issue
Block a user