Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
7a3c366
REWRITE [PART1]
kazam0180 Jul 20, 2026
8d63e5d
fix: restore local am2pla-site and JSON-based workflow after rebase
kazam0180 Jul 20, 2026
ac005d6
push to auto-sync branch instead of main for testing
kazam0180 Jul 20, 2026
bcaaf89
minify all apps/*.json to single-line; regenerate apps.json and categ…
kazam0180 Jul 20, 2026
fea0af8
extract screenshots into separate array; add gallery carousel to app.…
kazam0180 Jul 20, 2026
90366cc
add empty screenshots array to new app JSON in workflow
kazam0180 Jul 20, 2026
82a2771
fix category pages: use app.name + '.png' for icon src instead of und…
kazam0180 Jul 20, 2026
fd53e4c
REWRITE [PART2]
kazam0180 Jul 20, 2026
bd09f67
remove md files
kazam0180 Jul 20, 2026
779506c
fix: dynamic app count on category pages, add search bar, clean up or…
kazam0180 Jul 20, 2026
0dbd076
remove jekyll cfg and add seo info
kazam0180 Jul 20, 2026
e54e4c4
remove renovate.json and fix workflow
kazam0180 Jul 20, 2026
d3283c5
improve accessibility and performance
kazam0180 Jul 20, 2026
b81ce36
sync changes to main branch instead of temp
kazam0180 Jul 20, 2026
0552f8f
Sync files from source repository
web-flow Jul 20, 2026
e5900a6
fix stats calculation
kazam0180 Jul 20, 2026
962e561
remove useless files
kazam0180 Jul 20, 2026
14225a4
workflow fix and various small additions
kazam0180 Jul 20, 2026
ac478b8
update faq entry
kazam0180 Jul 20, 2026
7fa27c3
add contributing file and update faq #5
kazam0180 Jul 20, 2026
08793f4
add missing sources for some apps and buttons support
kazam0180 Jul 20, 2026
b399e1a
re-add screenshots for virtualbox and improve screenshot switching
kazam0180 Jul 20, 2026
e59ce5a
Sync files from source repository
web-flow Jul 20, 2026
7d2ad42
Sync files from source repository
web-flow Jul 21, 2026
25ea4dc
Create deploy_pages.yml
kazam0180 Jul 21, 2026
ba4b5c1
Create static.yml
kazam0180 Jul 21, 2026
5104c57
Update static.yml
kazam0180 Jul 21, 2026
f0bdb24
rework site generation
kazam0180 Jul 21, 2026
4a849f4
Merge branch 'main' of https://github.com/coyoteclan/Portable-Linux-A…
kazam0180 Jul 21, 2026
af40d3a
fix workflow
kazam0180 Jul 21, 2026
04418ac
fix simple2json.py script
kazam0180 Jul 21, 2026
952d526
fix simple2json.py (again)
kazam0180 Jul 21, 2026
36807f6
add debugging to app file generation
kazam0180 Jul 21, 2026
e91ff25
remove debugging
kazam0180 Jul 21, 2026
8abf736
add testapp to apps.json for testing
kazam0180 Jul 21, 2026
1f20ca0
fix parsing in simple2json.py
kazam0180 Jul 21, 2026
4b17567
fix simple2json.py and testapp page
kazam0180 Jul 21, 2026
aeba8c7
update testapp
kazam0180 Jul 21, 2026
df4ab0e
try to fix the markdown list conversion
kazam0180 Jul 21, 2026
d560bbe
update faq for improving app info
kazam0180 Jul 22, 2026
2f82663
fixes and improvements
kazam0180 Jul 23, 2026
f275001
correct a comment
kazam0180 Jul 23, 2026
21a599f
move apps.json gen and stats calc to web workflow
kazam0180 Jul 23, 2026
9045044
fix sync-with-AM.yml
kazam0180 Jul 23, 2026
e2a9caa
fix sync-with-AM.yml
kazam0180 Jul 23, 2026
4eceb76
try without .json extension
kazam0180 Jul 23, 2026
aed7d2a
try without .json extension
kazam0180 Jul 23, 2026
43b8542
readd .json extension
kazam0180 Jul 23, 2026
2aabbfd
fix apps.json generation
kazam0180 Jul 24, 2026
9ec305e
improve search performance and UX
kazam0180 Jul 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 59 additions & 0 deletions .github/workflows/static.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Simple workflow for deploying static content to GitHub Pages
name: Deploy static content to Pages

on:
# Runs on pushes targeting the default branch
push:
branches: ["main"]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

jobs:
build-and-deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6

- name: Build App Files
run: |
[ ! -x ./simple2json ] && chmod a+x ./simple2json
./simple2json 2>&1 | tee build-log.txt

echo "json conversion done" | tee -a build-log.txt

[ ! -x ./am2pla-site ] && chmod a+x ./am2pla-site
./am2pla-site 2>&1 | tee -a build-log.txt

- name: Upload Build Log
uses: actions/upload-artifact@v6
with:
name: build-log
path: build-log.txt

- name: Setup Pages
uses: actions/configure-pages@v6
- name: Upload artifact
uses: actions/upload-pages-artifact@v5
with:
# Upload entire repository
path: '.'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v5
61 changes: 17 additions & 44 deletions .github/workflows/sync-with-AM.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,35 +21,19 @@ jobs:
- name: "Checkout source repository"
uses: actions/checkout@v7

- name: "Update lists"
run: |
AM2PLA_SCRIPT=$(curl -Ls https://raw.githubusercontent.com/ivan-hc/AM/main/tools/am2pla-site)
[ -n "$AM2PLA_SCRIPT" ] && echo "$AM2PLA_SCRIPT" | grep -q "^AMREPO=" && echo "◆ Update am2pla-site script..." && echo "$AM2PLA_SCRIPT" > ./am2pla-site
sed -i 's/^cd "$(xdg-user-dir DESKTOP)"/#cd "$(xdg-user-dir DESKTOP)"/g' ./am2pla-site
[ ! -x ./am2pla-site ] && chmod a+x ./am2pla-site
./am2pla-site

- name: "Remove unneeded pages/icons"
run: |
AMD64_LIST=$(curl -Ls https://raw.githubusercontent.com/ivan-hc/AM/main/programs/x86_64-apps)
if [ -n "$AMD64_LIST" ] && echo "$AMD64_LIST" 2>/dev/null | grep -q "^◆ "; then

MDS=$(ls apps/* | sed 's:.*/::; s/.md$//g')
for m in $MDS; do
if ! echo "$AMD64_LIST" 2>/dev/null | grep -q "◆ $m :"; then
rm -f "apps/$m.md"
echo "Removed apps/$m.md"
rm -f apps/*.json apps/*.md
for f in apps/*; do
name=$(echo "$f" | sed 's:.*/::; s/\.\(md\|json\)$//')
if ! echo "$AMD64_LIST" 2>/dev/null | grep -q "◆ $name :"; then
rm -f "apps/$name"
echo "Removed apps/$name"
fi
done

#PNGS=$(ls icons/* | sed 's:.*/::; s/.png$//g')
#for p in $PNGS; do
# if ! echo "$AMD64_LIST" 2>/dev/null | grep -q "◆ $p :"; then
# rm -f "icons/$p.png"
# echo "Removed icons/$p.png"
# fi
#done

fi

- name: "Create dumb pages/icons if missing"
Expand All @@ -59,10 +43,9 @@ jobs:

APPS=$(echo "$AMD64_LIST" 2>/dev/null | awk '{print $2}' | xargs)
for a in $APPS; do
if ! test -f apps/"$a".md; then
if ! test -f apps/"$a"; then
INSTALLATION_SCRIPT=$(curl -Ls https://raw.githubusercontent.com/ivan-hc/AM/main/programs/x86_64/"$a")
if [ -n "$INSTALLATION_SCRIPT" ] && echo "$INSTALLATION_SCRIPT" 2>/dev/null | grep -q "^APP=$a"; then
APP=$(echo "$a" | tr '[:lower:]' '[:upper:]')
DESCRIPTION=$(echo "$AMD64_LIST" 2>/dev/null | grep "^◆ $a :" | sed "s/^◆ $a ://g")

if echo "$INSTALLATION_SCRIPT" 2>/dev/null | grep -q "^SITE="; then
Expand All @@ -83,36 +66,26 @@ jobs:
else
SITE="https://$(echo "$INSTALLATION_SCRIPT" 2>/dev/null | grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*" | head -1 | awk -F[/:] '{print $4}')"
fi

printf "# $APP\n\n" > apps/"$a".md
echo "$DESCRIPTION" >> apps/"$a".md
printf "\n SITE: $SITE\n\n" >> apps/"$a".md
printf " | [Applications](https://portable-linux-apps.github.io/apps.html) | [Home](https://portable-linux-apps.github.io)\n | --- | --- |" >> apps/"$a".md

echo "Adding apps/$a.md"
ESC_DESC=$(echo "$DESCRIPTION" | sed 's/"/\\"/g')
printf '# %s\n%s\n# SCREENSHOTS: %s\n# SITES: %s\n' \
"$a" "$ESC_DESC" "/contribute_ss.png /contribute_ss.png" "$SITE" > apps/"$a"

echo "Adding apps/$a"
fi
fi
done

MDS=$(ls apps/* | sed 's:.*/::; s/.md$//g')
for m in $MDS; do
if ! test -f icons/"$m".png; then
cp -r no-icon.png "icons/$m.png"
echo "Adding icons/$m.png"
fi
done
rm -f icons/*.md

fi

- name: "Push to Source"
run: |
git config --global user.name "Portable-Linux-Apps"
git config --global user.email "noreply@github.com"
git add *.md *.json am2pla-site apps icons
if git diff-index --quiet HEAD; then
echo "No changes to commit." >> $GITHUB_STEP_SUMMARY
else
git add 'apps/' 'icons/*.png'
if ! git diff-index --cached --quiet HEAD; then
git commit -m "Sync files from source repository"
git push && echo "Sync to Source succeeded" >> $GITHUB_STEP_SUMMARY
git push origin
else
echo "No changes to commit."
fi
20 changes: 8 additions & 12 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
# Jekyll
_site/
.jekyll-cache/
.jekyll-metadata/
.sass-cache/

# Gemfile dependencies
Gemfile.lock

# Bundler files
.bundle/

# System files
.DS_Store # macOS
Thumbs.db # Windows

# Python cache
__pycache__

# Kate backup
*~

test
10 changes: 4 additions & 6 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ This catalog is updated every half hour and is based entirely on this list: http
If an app is added to this list, it means that an installation script has also been added here: https://github.com/ivan-hc/AM/tree/main/programs/x86_64

## If an app is **added** to AM
- All lists will be automatically updated via https://github.com/ivan-hc/AM/blob/main/tools/am2pla-site
- A new .md page will be created. It will use the description in that list and the URL specified in the installation script ("SITE" variable).
- All lists will be automatically updated via https://github.com/Portable-Linux-Apps/Portable-Linux-Apps.github.io/blob/main/tools/am2pla-site
- A new .json file will be created. It will use the description in that list and the URL specified in the installation script ("SITE" variable).
- A new generic icon will be created using https://github.com/Portable-Linux-Apps/Portable-Linux-Apps.github.io/blob/main/no-icon.png

## If an app is **removed** from AM
- All references to it in the lists will be removed
- The .md page will be removed
- The .json file will be removed
- The icon will be retained in case the application is added again in the future

## This project is powered by github actions, so...
Expand All @@ -32,9 +32,7 @@ This catalog is for everyone, so anyone can make a [pull request](https://github
- Icons must be 128x128 or smaller

## Update app's pages
- Write whatever you want, but leave the header (first line, the one starting with #) as is.
- You can add buttons to the ones at the bottom, including a donation link.
- You can add screenshots or GIFs.
See FAQ #5 on the website

------------------------------------

Expand Down
10 changes: 0 additions & 10 deletions Gemfile

This file was deleted.

Loading