Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
689 commits
Select commit Hold shift + click to select a range
38c0dd8
fix: titles for svg
lovestaco Sep 19, 2025
560dcca
fix: titles for other files
lovestaco Sep 19, 2025
e5c5626
fix: all titles
lovestaco Sep 19, 2025
b13f757
fix: astro hydration
lovestaco Sep 20, 2025
93f0917
fix: move icons to public
lovestaco Sep 20, 2025
e978763
fix: hydration
lovestaco Sep 20, 2025
6183c9d
fix: titles
lovestaco Sep 20, 2025
3c04585
fix: use public svg icons path
lovestaco Sep 20, 2025
467d37b
fix: rm pages/svg_icons/_icons
lovestaco Sep 20, 2025
bc578b2
wip:deploy action for build and deploy
LinceMathew Sep 18, 2025
d7b1c9c
testing deployment
LinceMathew Sep 18, 2025
77007dd
fix: install all dependencies for build process
LinceMathew Sep 18, 2025
02675d3
fix: include tools configuration in build process
LinceMathew Sep 18, 2025
ccc2c7b
fix: correct file reference in build process and fix typo in comment
LinceMathew Sep 18, 2025
7de56ce
fix: deploy statregy add underscore to ignore
LinceMathew Sep 19, 2025
bae556e
temp change for testing
LinceMathew Sep 19, 2025
a5008f8
fix: production env configuration
LinceMathew Sep 19, 2025
d86c0bb
fix: target path fix
LinceMathew Sep 19, 2025
fbbb648
temp change for testing
LinceMathew Sep 19, 2025
6aeb16f
fix: test other section deployment
LinceMathew Sep 19, 2025
e66f3fd
test: cheatsheet deployment
LinceMathew Sep 19, 2025
e56aee5
fix: improve deployment workflow logic
LinceMathew Sep 19, 2025
47ffe46
fix: clarify comment in convertCSSToInline function
LinceMathew Sep 19, 2025
84bc0af
test: check tool only deployment
LinceMathew Sep 20, 2025
f016827
test: check tool only deployment
LinceMathew Sep 20, 2025
3d048f6
test: check tool only deployment
LinceMathew Sep 20, 2025
f99658c
test: check tool only deployment
LinceMathew Sep 20, 2025
0d29340
test: check cheatsheet only deployment
LinceMathew Sep 20, 2025
d6b6fef
test: check cheatsheet only deployment
LinceMathew Sep 20, 2025
18bfb9c
test: check cheatsheet only deployment
LinceMathew Sep 20, 2025
24b070e
test: check cheatsheet only deployment
LinceMathew Sep 20, 2025
3b8033d
test: check tldr only deployment
LinceMathew Sep 20, 2025
1ad3998
feat: enhance deployment logic to handle public assets and selective …
LinceMathew Sep 20, 2025
1a962c8
test: check icons only deployment
LinceMathew Sep 20, 2025
8032ed7
exclude tldr from building while component, lib changes
LinceMathew Sep 20, 2025
f0b693a
fix: revert testing changes
LinceMathew Sep 20, 2025
45e1cde
Merge pull request #13 from HexmosTech/lince/test-deploy
LinceMathew Sep 20, 2025
177b84a
fix: add fileFormat for thumbnail
lovestaco Sep 20, 2025
2c98fb1
fix: change actions default branch name
LinceMathew Sep 20, 2025
8907690
feat: add site banner and icon title update
lovestaco Sep 20, 2025
047b8b1
fix: base layout and json ld info
lovestaco Sep 20, 2025
db7ee35
fix: update site banner
lovestaco Sep 20, 2025
439adbc
fix: regex
lovestaco Sep 20, 2025
49cb238
feat: add image property
lovestaco Sep 20, 2025
177c390
fix: use img tag for crawling
lovestaco Sep 20, 2025
93e1c21
fix: use img tag for crawling
lovestaco Sep 20, 2025
99cb3f7
fix: content url
lovestaco Sep 20, 2025
02016a5
fix: search results preview
lovestaco Sep 20, 2025
f5b112e
fix: dimentions of preview
lovestaco Sep 20, 2025
6c32e13
fix: rm debug
lovestaco Sep 20, 2025
a570bf4
fix: svg paths
lovestaco Sep 20, 2025
9c1983b
feat: add png icons
lovestaco Sep 20, 2025
00c226f
fix: bread crumb paths
lovestaco Sep 20, 2025
4093b2b
feat: add Deepseek Token Counter tool
LinceMathew Sep 20, 2025
558d076
feat: add Llama Token Counter tool with UI and functionality
LinceMathew Sep 20, 2025
8d6c41e
feat: add OpenAI Cost Calculator tool
LinceMathew Sep 21, 2025
8f63c35
feat: add disclaimer for OpenAI pricing information
LinceMathew Sep 21, 2025
3680b0b
feat: implement debounced input handling enhanced UI
LinceMathew Sep 21, 2025
dcd5103
feat: add Character Count tool with UI, functionality, and skeleton l…
LinceMathew Sep 21, 2025
2814504
feat: add Slugify String tool
LinceMathew Sep 21, 2025
ff1757e
fix: priority of crawl
lovestaco Sep 21, 2025
16c132a
fix: all canonicals & sitemaps generation for auto indexing
lovestaco Sep 21, 2025
5c4e022
fix: trigger emoji build
lovestaco Sep 21, 2025
35b370b
Update README.md
lovestaco Sep 21, 2025
140f913
fix: update readme
lovestaco Sep 21, 2025
07171a5
Merge branch 'main' of github.com:HexmosTech/FreeDevTools
lovestaco Sep 21, 2025
36289e4
fix: base url of cheatcode sitemap
lovestaco Sep 21, 2025
8562976
fix: all tool banner urls
lovestaco Sep 21, 2025
b76cfe5
fix: twitter & ogimage
lovestaco Sep 21, 2025
4cfd606
feat: add Open Graph Meta Tag Generator tool
LinceMathew Sep 21, 2025
83b269f
feat: add YAML to TOML Converter tool with
LinceMathew Sep 21, 2025
e53e050
feat: add SVG Placeholder Generator tool
LinceMathew Sep 21, 2025
e8ee828
fix: glob for svg
lovestaco Sep 22, 2025
9914781
fix: try hybrid approach
lovestaco Sep 22, 2025
906aa59
fix: rm fetch approach
lovestaco Sep 22, 2025
baba8a8
fix: path of public dir
lovestaco Sep 22, 2025
d93f755
fix: darkmode for index page
lovestaco Sep 22, 2025
fd8b24a
fix: public serving for category
lovestaco Sep 22, 2025
92705db
fix: banner lcp p and span elements
lovestaco Sep 22, 2025
cdf5183
fix: svg slash
lovestaco Sep 22, 2025
92742a6
fix: change png icons to use public loaded svg
lovestaco Sep 22, 2025
e5708d1
fix: imports
lovestaco Sep 22, 2025
a07c5a3
fix: breadcrumbs for svg & png icon pages
lovestaco Sep 22, 2025
1359e70
fix: button size in phone mode
lovestaco Sep 22, 2025
c0aaad0
fix: footer in phone
lovestaco Sep 22, 2025
9007b30
fix: icon page in mobile screen
lovestaco Sep 22, 2025
7a67ee8
fix: change all h1 & desription for *_icons
lovestaco Sep 22, 2025
125ddce
fix: add id for bottom nav buttons
lovestaco Sep 22, 2025
e7bb5f7
fix: pagination scroll to content only
lovestaco Sep 22, 2025
7b6b319
fix: sitemap to daily
lovestaco Sep 22, 2025
0ff1d13
Fixed emoji position and added them to headings
RijulTP Sep 23, 2025
a51d901
fix: update emoji
lovestaco Sep 23, 2025
680bbee
feat: add 9k icons
lovestaco Sep 23, 2025
1fba0ce
feat: add 1600 icons of branding
lovestaco Sep 23, 2025
f1dc88e
fix: gen cluster script
lovestaco Sep 23, 2025
9ce989f
fix: test for only one svg
lovestaco Sep 23, 2025
b7aee42
fix: renmae cluster.json
lovestaco Sep 23, 2025
57d78f0
fix: category loading
lovestaco Sep 23, 2025
f11d18f
fix: icon loader
lovestaco Sep 23, 2025
d33fffd
Merge pull request #14 Icons v4: add 11k icons & experiment search re…
lovestaco Sep 23, 2025
5a127f0
feat: add analytics secrets
lovestaco Sep 23, 2025
c0f6612
fix: measurement id
lovestaco Sep 23, 2025
7109e5e
fix: footer
lovestaco Sep 24, 2025
1c42a5e
fix: zstd
lovestaco Sep 24, 2025
5f100f6
fix: title & desc for certain tldr pages
lovestaco Sep 24, 2025
4f4a8a9
fix: correct frontmatter script
lovestaco Sep 24, 2025
4ec4689
fix: tldr scripts to use site banner
lovestaco Sep 24, 2025
b8ad362
fix: use site-banner image for tldr
lovestaco Sep 24, 2025
fc6886c
fix: broken tldr files
lovestaco Sep 24, 2025
b8ce205
fix: image elments in sitemap
lovestaco Sep 24, 2025
820f456
feat: add RSA Key Pair Generator tool with secure key generation func…
LinceMathew Sep 22, 2025
fbc20e3
feat: add Markdown to HTML Converter tool with real-time conversion
LinceMathew Sep 23, 2025
a8cda68
feat: add HTML to Markdown Converter tool
LinceMathew Sep 23, 2025
4f013ce
feat: add XML to JSON Converter tool
LinceMathew Sep 23, 2025
cacf8fd
feat: add JSON to XML Converter tool
LinceMathew Sep 23, 2025
39fe652
feat: refactor JsonToXml component layout
LinceMathew Sep 24, 2025
bff2b96
feat: Add Zstandard (zstd) compression and decompression tools
LinceMathew Sep 24, 2025
afe4812
fix: title & experiment with content type for Oauth icon
lovestaco Sep 24, 2025
f5b6574
fix: zstd compressor
LinceMathew Sep 24, 2025
c6bf317
fix: conflicts
lovestaco Sep 24, 2025
fe0613f
fix: change banner image for tldr
lovestaco Sep 24, 2025
a76861a
feat: experiment car search
lovestaco Sep 24, 2025
bad23c6
fix: improve seo
lovestaco Sep 24, 2025
fbd6c9b
fix: optimization 2
lovestaco Sep 24, 2025
135c5fd
fix: add images
lovestaco Sep 24, 2025
652668c
fix: improve seo
lovestaco Sep 24, 2025
261b9d3
fix: build for cars
lovestaco Sep 24, 2025
8d214b6
fix: links
lovestaco Sep 24, 2025
ba8a7a5
Merge pull request #15 from HexmosTech/exp-cars-search-result
lovestaco Sep 24, 2025
55be29a
fix: canonical
lovestaco Sep 24, 2025
2d3ceaf
fix: other links
lovestaco Sep 24, 2025
e020ca0
fix: add image sitemap
lovestaco Sep 24, 2025
e814e99
Merge pull request #16 from HexmosTech/exp-cars-search-result
lovestaco Sep 24, 2025
4591934
fix: conflict in tldr yaml
LinceMathew Sep 25, 2025
8407c14
Added banners for tools
LinceMathew Sep 25, 2025
d8ca1bd
Improved SVG page
RijulTP Sep 27, 2025
54ce4a3
feat: added new icons from spacy-exploreer to svg_icons which didnt h…
lovestaco Sep 27, 2025
1d74736
fix: issue with mv ones and merged with existing ones
lovestaco Sep 27, 2025
0e610b3
fix: rm merged icons's cluster.json
lovestaco Sep 27, 2025
3fa8b32
feat: add 363 new clusters
lovestaco Sep 27, 2025
66f5363
Revert "fix: rm merged icons's cluster.json"
lovestaco Sep 27, 2025
52eb031
Fixed Png routing and naming issues
RijulTP Sep 27, 2025
418cd7a
Merge branch 'main' of github.com:HexmosTech/FreeDevTools into rijul/…
RijulTP Sep 27, 2025
630c444
Removed unwanted files
RijulTP Sep 27, 2025
4b7ecf9
Merge pull request #17 from HexmosTech/rijul/enhancesvg
RijulTP Sep 27, 2025
0aab255
Optimizing load times for png
RijulTP Sep 28, 2025
9aa9e56
Fixed svg load times
RijulTP Sep 28, 2025
b826cc8
feat: add Command and Dialog components with associated functionality
LinceMathew Sep 28, 2025
f486776
feat: implement search functionality using meilisearch
LinceMathew Sep 28, 2025
2ba0d8f
Merge pull request #18 from HexmosTech/lince/search-feature
LinceMathew Sep 28, 2025
e58140c
Added new set of svg icons, fixed sitemap bugs
RijulTP Sep 28, 2025
eaa91d4
Fixed png download bug
RijulTP Sep 28, 2025
5b4d4dd
Merge branch 'main' of github.com:HexmosTech/FreeDevTools into rijul/…
RijulTP Sep 28, 2025
1cbf0b8
Merge pull request #19 from HexmosTech/rijul/svgimprovements-v2
RijulTP Sep 28, 2025
5196752
Fixed build issue
RijulTP Sep 28, 2025
d446b47
Fixed build issues
RijulTP Sep 28, 2025
21f9c8a
Fixing build issue
RijulTP Sep 28, 2025
6592137
Fixed build issues
RijulTP Sep 28, 2025
adf0542
fix: add root sitemap
lovestaco Sep 28, 2025
261b354
fix: add root page in sitemap
lovestaco Sep 28, 2025
f83db53
refactoring the search component
LinceMathew Sep 28, 2025
70e22cb
fix: consisten alignment
LinceMathew Sep 28, 2025
55da872
fix: searhbar height
LinceMathew Sep 28, 2025
d17f82e
fix: search feature
LinceMathew Sep 28, 2025
afdba63
fix: increase Node.js memory limit for build process
LinceMathew Sep 28, 2025
90d2ed5
fix:test deployment
LinceMathew Sep 28, 2025
650c5e1
Fixing Build issues
RijulTP Sep 29, 2025
1cab9e0
fix: mobile search functionality and update search result links
LinceMathew Sep 29, 2025
d24a411
fix: searchbar alignment
LinceMathew Sep 29, 2025
d7720fb
feat: contibution.md
lovestaco Sep 30, 2025
39bc7a9
fix: clean up unecessary files
lovestaco Sep 30, 2025
3045cf7
Merge branch 'main' of github.com:HexmosTech/FreeDevTools
lovestaco Sep 30, 2025
ccf6546
fix: rm log
lovestaco Sep 30, 2025
77b4d9c
fix: readme
lovestaco Sep 30, 2025
f8195b2
Fixed cheatsheet path segment duplication issue
RijulTP Sep 30, 2025
e4b4db5
feat: init mcp
lovestaco Sep 30, 2025
b029617
Fixed dotted filename 404 bug for tldr
RijulTP Sep 30, 2025
3f8e628
Fixed Base64 sitemap typo and canonical url mismatch
RijulTP Sep 30, 2025
89dca89
Merge pull request #27 from HexmosTech/rijul/sitemap-fixes
RijulTP Sep 30, 2025
03fc9c4
fix: add breadcrumbs to all pages
lovestaco Oct 1, 2025
affd526
fix: numberings in terms of k
lovestaco Oct 1, 2025
37e2155
fix: use pagnation component
lovestaco Oct 1, 2025
299978e
fix: update numbers script
lovestaco Oct 1, 2025
e9552bd
Add scripts to generate JSON metadata for TLDR pages, cheatsheets, an…
LinceMathew Sep 29, 2025
5457c46
Add transfer script for search index files to remote server
LinceMathew Oct 1, 2025
5607f74
Refactor SearchPage component: streamline search response handling an…
LinceMathew Oct 1, 2025
762a545
fix: rm old segreagtion and use new categories
lovestaco Oct 2, 2025
a633bcb
feat: working UI
lovestaco Oct 2, 2025
b588430
fix: banner and rm old stuff of mcp
lovestaco Oct 2, 2025
f98d7c2
Refactor SearchBar component: remove unnecessary search icon and adju…
LinceMathew Oct 2, 2025
a1983c2
fix: two col ui
lovestaco Oct 2, 2025
707f58b
fix: starting of card
lovestaco Oct 2, 2025
921d320
fix: search page issues and search data collection v1
LinceMathew Oct 2, 2025
11e8f13
fix:pipeline fix for full rebuild
LinceMathew Oct 2, 2025
284e501
fix: space in cheatsheets
LinceMathew Oct 2, 2025
7dd3b9f
fix: new data and homepage fix
lovestaco Oct 3, 2025
0004a13
Merge branch 'main' of github.com:HexmosTech/FreeDevTools into feat/mcp
lovestaco Oct 3, 2025
a059e0a
fix: star
lovestaco Oct 3, 2025
42c9158
fix: icons color
lovestaco Oct 3, 2025
b8561ad
fix: card render
lovestaco Oct 3, 2025
e9ff912
fix: card
lovestaco Oct 3, 2025
7aac0ad
fix: sort
lovestaco Oct 3, 2025
b8043ae
fix: console
lovestaco Oct 3, 2025
78fefb6
fix; rewamp card ui
lovestaco Oct 3, 2025
a4b2aa1
fix: arrange starts
lovestaco Oct 3, 2025
076e592
fix: improve repo UI
lovestaco Oct 3, 2025
e55f19e
fixL imporve repo ui
lovestaco Oct 3, 2025
09f4ce2
feat: add credits and navigation in all pages
lovestaco Oct 3, 2025
7e9e6a8
fix: improve seo for all pages
lovestaco Oct 3, 2025
35989da
fix: spacing
lovestaco Oct 3, 2025
ffaed70
fix: borders
lovestaco Oct 3, 2025
587c538
fix: pagination
lovestaco Oct 3, 2025
57bd740
feat: react pagination
lovestaco Oct 3, 2025
16452e1
fix: homepage pagination
lovestaco Oct 3, 2025
b4060b3
feat: add 1.2k repos
lovestaco Oct 3, 2025
c52c12f
fix: scroll to top
lovestaco Oct 3, 2025
adf66f7
converted the python script for search data scraping to golang, setup…
LinceMathew Oct 2, 2025
f9dbc1c
Added the outpu jsonst to gitignore
LinceMathew Oct 2, 2025
2b6766f
feat: add sync-search-index target and transfer script for remote fil…
LinceMathew Oct 2, 2025
d0c061c
fix: update sync-search-index target for improved file transfer process
LinceMathew Oct 2, 2025
3a3a59c
fix: hyderation
lovestaco Oct 3, 2025
6662c46
fix: font warning
lovestaco Oct 3, 2025
996c367
fix: update transfer script to copy index-fdt.sh from remote reposito…
LinceMathew Oct 3, 2025
a9010ed
indexing data files.
LinceMathew Oct 3, 2025
1c5efaa
Search Indexing converted to Go routine and Guide
LinceMathew Oct 3, 2025
17011f2
fix: path issue for cheatsheets
LinceMathew Oct 3, 2025
64c7fa8
Added escape shortcut key to cancel,clear search
LinceMathew Oct 3, 2025
0960ccf
fix:truncation problem in search bar
LinceMathew Oct 3, 2025
54b7894
fix: various UI issues in search, footer
LinceMathew Oct 3, 2025
a5d61a1
updated dev resources count from 50,000 to 1,25,000
LinceMathew Oct 4, 2025
99d52f4
fix: pagination
lovestaco Oct 4, 2025
2fd2925
fix: url trailing slash
lovestaco Oct 4, 2025
a72eaf4
feat: dynamic sitemap for each category based on input json
lovestaco Oct 4, 2025
7501b69
fix: change path of repo
lovestaco Oct 4, 2025
c062d7d
fix: rm mock data
lovestaco Oct 4, 2025
d3219a7
feat: use content API, revertable
lovestaco Oct 4, 2025
725eb77
Merge branch 'main' of github.com:HexmosTech/FreeDevTools into feat/mcp
lovestaco Oct 4, 2025
eb53f61
fix: tldr path search
lovestaco Oct 4, 2025
daeadbe
fix: emoji path search
lovestaco Oct 4, 2025
50f4706
fix: tldr path
lovestaco Oct 4, 2025
5c64f0d
feat: add mcp searchable mcp.json
lovestaco Oct 4, 2025
fc97c15
fix: svg path search
lovestaco Oct 4, 2025
0eff3a8
fix: sort for easy diffing
lovestaco Oct 4, 2025
433113c
fix: update readme for mcp
lovestaco Oct 4, 2025
16c5180
fix: cheatshet path search
lovestaco Oct 4, 2025
46c8d9f
fix: add mcp for building
lovestaco Oct 4, 2025
2b36a0e
feat: add 13k repos
lovestaco Oct 5, 2025
83dd1c3
fix: change data structure and move to pulic
lovestaco Oct 5, 2025
6e778dc
fix: sitemap for new strucutre
lovestaco Oct 5, 2025
debebfd
fix: search mcp.go
lovestaco Oct 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
17 changes: 17 additions & 0 deletions .github/DISCUSSION_TEMPLATE/ideas.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
title: ""
labels: []
body:
- type: markdown
attributes:
value: |
## Description

- type: markdown
attributes:
value: |
## Required Features
- type: markdown
attributes:
value: |
## Design Ideas & Reference
![screenshot](URL-to-screenshot)
214 changes: 214 additions & 0 deletions .github/workflows/buid_deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,214 @@
name: Build and Deploy

on:
push:
branches: [main]
workflow_dispatch: # Allows manual triggering

jobs:
build-and-deploy:
runs-on: ubuntu-latest
environment: production # This tells GitHub to use the production environment secrets

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
# fetch-depth: 0 is recommended for a more reliable diff across multiple commits in a push
fetch-depth: 0

- name: Detect changed sections
id: detect-changes
run: |
echo "🔍 Detecting changes based on custom build rules..."

# Use a more robust diff command that covers all commits in a push
all_changed=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} || git diff --name-only HEAD~1 HEAD)

if [ -z "$all_changed" ]; then
echo "❌ No changes detected. Skipping build and deploy."
echo "should_deploy=false" >> $GITHUB_OUTPUT
exit 0
fi

echo "📁 All changed files:"
echo "$all_changed" | sed 's/^/ - /'

changed_dirs=""
requires_full_rebuild=false

# Helper function to add a directory to the list if it's not already there
add_dir() {
if [[ ! "$changed_dirs" =~ (^|[[:space:]])$1($|[[:space:]]) ]]; then
changed_dirs="$changed_dirs $1"
fi
}

for file in $all_changed; do
case "$file" in
frontend/src/pages/t/*)
add_dir "t"
;;
frontend/src/pages/markdown_pages/tldr/*|frontend/src/pages/tldr/*)
add_dir "markdown_pages"
add_dir "tldr"
;;
frontend/src/pages/html_pages/cheatsheets/*|frontend/src/pages/c/*)
add_dir "html_pages"
add_dir "c"
;;
frontend/src/pages/svg_icons/*)
add_dir "svg_icons"
;;
frontend/src/pages/png_icons/*)
# If png_icons changes, we build both png_icons and svg_icons
add_dir "png_icons"
add_dir "svg_icons"
;;
frontend/src/pages/emojies/*)
add_dir "emojies"
;;
frontend/src/pages/cars/*)
add_dir "cars"
;;
frontend/src/pages/mcp/*)
add_dir "mcp"
;;
frontend/public/*)
# Public assets are served directly, just sync without rebuild
add_dir "public_assets_only"
;;
frontend/src/*)
# Other src changes (components, layouts, styles, etc.) need full rebuild
requires_full_rebuild=true
;;
*)
# You can add a default case here if needed, for example, to build everything
# echo "Change detected in unhandled path: $file"
;;
esac
done

# Clean up leading/trailing whitespace
changed_dirs=$(echo "$changed_dirs" | xargs)

# Determine final build strategy
if [ "$requires_full_rebuild" = true ]; then
echo "🔧 Components/layouts/styles changed - requires full rebuild"
echo "📦 Build strategy: full_rebuild"
echo "should_deploy=true" >> $GITHUB_OUTPUT
echo "changed_sections=full_rebuild" >> $GITHUB_OUTPUT
elif [ -n "$changed_dirs" ]; then
echo "📦 Changed sections to build: $changed_dirs"
echo "should_deploy=true" >> $GITHUB_OUTPUT
echo "changed_sections=$changed_dirs" >> $GITHUB_OUTPUT
else
echo "❌ No changes matched the build rules. Skipping deployment."
echo "should_deploy=false" >> $GITHUB_OUTPUT
fi

- name: Setup Node.js
if: steps.detect-changes.outputs.should_deploy == 'true'
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
cache-dependency-path: ./frontend/package-lock.json

- name: Exclude unchanged sections from build
if: steps.detect-changes.outputs.should_deploy == 'true'
run: |
echo "🔧 Excluding unchanged sections from build..."
cd frontend/src/pages

changed_sections="${{ steps.detect-changes.outputs.changed_sections }}"
echo "Building strategy: $changed_sections"

# Only exclude sections if we're doing selective page builds
if [[ "$changed_sections" != "full_rebuild" && "$changed_sections" != "public_assets_only" ]]; then
echo "🎯 Selective build mode"
for dir in */; do
if [ -d "$dir" ]; then
dir_name=${dir%/}
if [[ "$changed_sections" =~ (^|[[:space:]])$dir_name($|[[:space:]]) ]] || [[ "$dir_name" == _* ]]; then
echo "✅ Including: $dir_name"
else
echo "❌ Excluding: $dir_name -> _$dir_name"
mv "$dir" "_$dir"
fi
fi
done
elif [[ "$changed_sections" == "full_rebuild" ]]; then
echo "🔧 Full rebuild mode - building all sections except tldr"
for dir in */; do
if [ -d "$dir" ]; then
dir_name=${dir%/}
if [[ "$dir_name" == "tldr" ]]; then
echo "❌ Excluding: $dir_name -> _$dir_name (performance optimization)"
mv "$dir" "_$dir"
else
echo "✅ Including: $dir_name"
fi
fi
done
else
echo "🔧 Public assets only mode - no page exclusions needed"
fi

- name: Install dependencies and build
if: steps.detect-changes.outputs.should_deploy == 'true' && steps.detect-changes.outputs.changed_sections != 'public_assets_only'
run: |
echo "📦 Installing dependencies and building..."
cd frontend
npm install
NODE_OPTIONS="--max-old-space-size=8192" npx astro build
env:
PUBLIC_GA_ID: ${{ secrets.PUBLIC_GA_ID }}
MEILISEARCH_API_KEY: ${{ secrets.MEILISEARCH_API_KEY }}

- name: Restore original folder structure
if: always() && steps.detect-changes.outputs.should_deploy == 'true'
run: |
echo "🔄 Restoring original folder structure..."
cd frontend/src/pages

for dir in _*/; do
if [ -d "$dir" ]; then
original_name=${dir#_}
original_name=${original_name%/}
echo "Restoring _$original_name to $original_name"
mv "$dir" "$original_name/"
fi
done

- name: Setup SSH
if: steps.detect-changes.outputs.should_deploy == 'true'
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}

- name: Add server to known hosts
if: steps.detect-changes.outputs.should_deploy == 'true'
run: |
ssh-keyscan -H ${{ secrets.SSH_HOST }} >> ~/.ssh/known_hosts

- name: Deploy to server
if: steps.detect-changes.outputs.should_deploy == 'true'
run: |
echo "🚀 Deploying to server..."
echo "Deployed sections: ${{ steps.detect-changes.outputs.changed_sections }}"

changed_sections="${{ steps.detect-changes.outputs.changed_sections }}"

if [[ "$changed_sections" == "public_assets_only" ]]; then
echo "📁 Only public assets changed - syncing files only"
rsync -rvz --no-perms --no-owner --no-group --no-times --progress ./frontend/public/ ${{ secrets.SSH_USERNAME }}@${{ secrets.SSH_HOST }}:/tools/
else
echo "📦 Full deployment"
rsync -rvz --no-perms --no-owner --no-group --no-times --progress ./frontend/dist/ ${{ secrets.SSH_USERNAME }}@${{ secrets.SSH_HOST }}:/tools/
fi

- name: Skip deployment message
if: steps.detect-changes.outputs.should_deploy == 'false'
run: |
echo "⏭️ Skipping deployment - no changes matched the build rules."
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -139,4 +139,8 @@ temp/
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
.pnp.*


# scripts
scripts/tool-banners/screenshots/*
101 changes: 0 additions & 101 deletions CHANGELOG.md

This file was deleted.

Loading