Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
0cc4b85
Improve changelog generation
ShadowDara Sep 13, 2026
7c44a40
Merge pull request #16 from ShadowDara/main
ShadowDara Sep 13, 2026
3d4c3d0
Add template issue and build updates
ShadowDara Sep 13, 2026
b51cc26
Add 'validate' command for single template
ShadowDara Sep 13, 2026
0200bcc
Improve template validation and JSON output
ShadowDara Sep 13, 2026
8cb4626
safe lockfile
ShadowDara Sep 13, 2026
eb119b6
dep up
ShadowDara Sep 13, 2026
5f2ead5
Add Liquid static pages and template validation
ShadowDara Sep 14, 2026
ca9d42f
Add removeConsole option to pages plugin
ShadowDara Sep 14, 2026
c5d6f67
Enable split-markdown chunks & async rendering
ShadowDara Sep 14, 2026
2604d31
Refresh site build and install setup
ShadowDara Sep 14, 2026
c56cb31
Lazy-load large page build data
ShadowDara Sep 14, 2026
f2dc908
Add EJS templates and virtual filesystem
ShadowDara Sep 14, 2026
30e5ab5
Treat EJS pages as static and emit HTML
ShadowDara Sep 14, 2026
f3572f4
Add site tool pages, components & ejs types
ShadowDara Sep 14, 2026
392cdcf
Bump version to v0.3.18 and add author fields
ShadowDara Sep 14, 2026
01a2644
Exclude build-data modules from page bundles
ShadowDara Sep 14, 2026
61f4f66
rename
ShadowDara Sep 14, 2026
369bf45
Update CHANGELOG.md
ShadowDara Sep 14, 2026
009867b
Update CHANGELOG.md
ShadowDara Sep 14, 2026
eefd172
Update docker-compose.yml
ShadowDara Sep 14, 2026
52fa154
Create lol.json5
ShadowDara Sep 14, 2026
771c845
Add filepkg package for file-based assets
ShadowDara Sep 14, 2026
c77c792
Add template install and discovery flow
ShadowDara Sep 14, 2026
06c5e4b
Preserve template names and load installed templates
ShadowDara Sep 14, 2026
a48e5f5
Add template aliases and CLI support
ShadowDara Sep 14, 2026
6b14f7f
Add description check and update templates
ShadowDara Sep 14, 2026
9f57912
Add static template registry service
ShadowDara Sep 14, 2026
a541269
Use pnpm workspace in Dockerfiles; add yaml dep
ShadowDara Sep 14, 2026
2ed9657
Fix Docker builds for uploadpage & templates
ShadowDara Sep 14, 2026
d5f2628
Fix uploadpage standalone Docker paths
ShadowDara Sep 14, 2026
eedc84b
Add installed templates and docs refresh
ShadowDara Sep 14, 2026
7cc6e3f
Add bulk template install/uninstall
ShadowDara Sep 14, 2026
eeccfa8
shortcute test
ShadowDara Sep 14, 2026
e4de23a
s
ShadowDara Sep 14, 2026
2d6ec91
Update .gitignore
ShadowDara Sep 14, 2026
b20316d
Add minisite Vite plugin
ShadowDara Sep 14, 2026
2996330
Add frontend deps and sync docs
ShadowDara Sep 14, 2026
adc6f63
Add Vitest and Zod to site deps
ShadowDara Sep 14, 2026
52c1839
Mov files
ShadowDara Sep 14, 2026
a8747ee
Create devcontainer.json
ShadowDara Sep 14, 2026
68a51ef
rename stuff
ShadowDara Sep 15, 2026
20849f6
rename
ShadowDara Sep 15, 2026
e84cf83
Optimize regex matching and docs sync
ShadowDara Sep 15, 2026
fd67325
Add temp projects: fling, mini-vapor, sqlite
ShadowDara Sep 15, 2026
f494237
Add temp farbtext package; misc updates
ShadowDara Sep 15, 2026
7fc098a
Add checkstaticfiles and csf.generate tools
ShadowDara Sep 15, 2026
37fc2ff
Move checkstaticfiles to pub package
ShadowDara Sep 15, 2026
eb3a793
Support .json and .jsonc templates
ShadowDara Sep 15, 2026
168aa85
Add Monaco editor split-pane page
ShadowDara Sep 15, 2026
709d7c5
Polish CLI: aliases, search, install, and docs
ShadowDara Sep 15, 2026
cc4fda9
Add js-to-fling package and integrate into site
ShadowDara Sep 15, 2026
03f298d
Bump js-to-fling to 0.1.1; disable CLI
ShadowDara Sep 15, 2026
f28d2cb
Monaco TS, improved 404 error, define NODE_ENV
ShadowDara Sep 15, 2026
2673f31
Move fling-compiler into npm/ and bump version
ShadowDara Sep 15, 2026
4cb6be8
added new frontend to the repo
ShadowDara Sep 15, 2026
642ae64
Add Monaco TextMate highlighting
ShadowDara Sep 15, 2026
846931a
Add Fling editor syntax support
ShadowDara Sep 15, 2026
db42b74
Add dark-modern Monaco theme and wasm asset
ShadowDara Sep 15, 2026
634ed3a
update frontend
ShadowDara Sep 15, 2026
ba59ca9
Document supported template extensions
ShadowDara Sep 15, 2026
ef545e5
change
ShadowDara Sep 15, 2026
901639b
Add name_regex support for template matching
ShadowDara Sep 15, 2026
dc28ad2
Merge Develop
ShadowDara Sep 15, 2026
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
  •  
  •  
  •  
26 changes: 26 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"name": "Go Dev Container",
"image": "mcr.microsoft.com/devcontainers/go:1-1.24-bookworm",
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {}
},
"customizations": {
"vscode": {
"extensions": [
"golang.go",
"ms-azuretools.vscode-docker",
"ms-azuretools.vscode-containers",
"ms-vscode-remote.remote-containers",
"DigitalBrainstem.javascript-ejs-support",
"mhutchie.git-graph",
"shadowdara.samfile",
"bradlc.vscode-tailwindcss",
"github.vscode-github-actions"
]
}
},
"forwardPorts": [
8080
],
"postCreateCommand": "go mod download"
}
8 changes: 7 additions & 1 deletion .finder/shema/finder-template.v2.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@
},
"name": {
"type": "string",
"description": "Name of the folder or template."
"description": "Name pattern of the folder or template (exact name or glob)."
},
"name_regex": {
"type": "string",
"description": "Optional regular expression matched against the folder name (Go RE2)."
},
"folders": {
"type": "array",
Expand Down Expand Up @@ -41,6 +45,7 @@
"type": "object",
"properties": {
"name": { "type": "string" },
"name_regex": { "type": "string" },
"existence": {
"type": "string",
"enum": ["required", "forbidden", "optional"],
Expand All @@ -54,6 +59,7 @@
"properties": {
"description": { "type": "string" },
"name": { "type": "string" },
"name_regex": { "type": "string" },
"folders": {
"type": "array",
"items": { "$ref": "#/definitions/folder" }
Expand Down
4 changes: 2 additions & 2 deletions .finder/templates/folderimages.json5
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
"description": "search for folders with images",
"files": [
{
"name": "(?:\\.(?:j(?:p(?:eg?|g)|if|fif?|xl)|png|gif|webp|a(?:vif|png)|svg|bmp|ico|tiff|hei[cf]))$"
"name_regex": "(?:\\.(?:j(?:p(?:eg?|g)|if|fif?|xl)|png|gif|webp|a(?:vif|png)|svg|bmp|ico|tiff|hei[cf]))$"
}
],
"min_version": "0.3.17",
"min_version": "0.3.18",
"mdnote_base64": "IyBUZW1wbGF0ZSB0byBzZWFyY2ggYWxsIGltYWdlIGZpbGVzCgojIyMgYmFja3VwIGZvciB0aGUgcmVnZXggY3JlYXRvcjoKCmBgYApleUoySWpveExDSmhJam9pTG1wd1oxeHVMbXB3WldkY2JpNXFjR1ZjYmk1cWFXWmNiaTVxWm1sbVhHNHVhbVpwWEc0dWNHNW5YRzR1WjJsbVhHNHVkMlZpY0Z4dUxtRjJhV1pjYmk1emRtZGNiaTVoY0c1blhHNHVZbTF3WEc0dWFXTnZYRzR1ZEdsbVpseHVMbXA0YkZ4dUxtaGxhV05jYmk1b1pXbG1JaXdpWkNJNklpSXNJbTBpT2lKbGJtUnpWMmwwYUNJc0lta2lPbVpoYkhObGZRPT0KYGBg"
}
11 changes: 11 additions & 0 deletions .finder/templates/test_name_regex.json5
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"name": "*",
"name_regex": "^project-[0-9]+$",
"description": "test name_regex matching",
"files": [
{
"name_regex": "^main\\.py$",
"existence": "required"
}
]
}
10 changes: 7 additions & 3 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
# mark samfile as shell
samfile linguist-language=Shell

go.work linguist-language=go
go.mod linguist-language=go
go.sum linguist-language=go
go.work linguist-language=Go
go.mod linguist-language=Go
go.sum linguist-language=Go

docker-compose.yml linguist-language=Dockerfile

Expand All @@ -29,3 +29,7 @@ docker-compose.yml linguist-language=Dockerfile
/npm/site/src/templates.js linguist-vendored

/.obsidian/** linguist-vendored

/install2.sh linguist-vendored

/.github/temp-stuff-idk linguist-vendored
46 changes: 39 additions & 7 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,29 +6,61 @@ body:
- type: markdown
attributes:
value: |
Thanks for taking the time to file a bug report! Please answer the questions below.
- type: input
Thanks for taking the time to file a bug report! Please fill in as much detail as you can.

- type: textarea
id: description
attributes:
label: Describe the bug
description: What did you expect to happen? What happened instead?
placeholder: "Detailed bug description"
validations:
required: true
- type: input

- type: textarea
id: steps
attributes:
label: Steps to Reproduce
description: Provide step-by-step instructions to reproduce the bug
placeholder: |
1. …
2. …
1. Run `./finder <template>` in ...
2. ...
validations:
required: true

- type: input
id: environment
attributes:
label: Environment
description: OS, version, go version, etc.
description: OS, finder version (`./finder --version`), Go version (if building from source)
placeholder: "Windows 11, finder 0.3.17, Go 1.22"
validations:
required: true

- type: markdown
attributes:
value: |
---
## Template-related bug?

If the bug is about a specific Finder template, please also fill in the sections below.

- type: input
id: template_name
attributes:
label: Affected template
description: Name of the template, e.g. `django` β€” leave empty if this is not template-related
placeholder: "django"

- type: textarea
id: template_content
attributes:
label: Template file
description: Paste the JSON5 template and describe the folder it should have matched (or link to the file)
render: json

- type: textarea
id: logs
attributes:
label: Logs / Screenshots
description: Paste any error messages or screenshots
description: Paste any error messages, terminal output, or screenshots
14 changes: 11 additions & 3 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,31 @@ body:
attributes:
value: |
Suggest a new feature or improvement. Please describe why this change is needed.
- type: input

> **Tip:** Looking for a new Finder template? Please use the dedicated **🧩 New Finder Template** issue form instead β€” it collects everything needed to review a template quickly.

- type: textarea
id: goal
attributes:
label: What is the goal?
description: Summarize the suggestion in your own words
placeholder: "Finder should be able to detect ..."
validations:
required: true

- type: textarea
id: motivation
attributes:
label: Motivation and Context
description: Why is this change valuable? What problem does it solve?

- type: textarea
id: implementation
attributes:
label: Possible Implementation
description: Optional ideas how this could be implemented
- type: input
description: Optional ideas on how this could be implemented

- type: textarea
id: alternatives
attributes:
label: Alternatives considered
Expand Down
91 changes: 91 additions & 0 deletions .github/ISSUE_TEMPLATE/new_template.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: 🧩 New Finder Template
description: Propose or contribute a new Finder template (JSON5)
title: "[TEMPLATE] <template-name>"
labels: ["template", "enhancement"]
body:
- type: markdown
attributes:
value: |
Thanks for contributing a new Finder template! Templates are JSON5 files that describe a project type so Finder can detect it.

**Useful references:**
- Template authoring guide: [`AGENTS.md`](../../AGENTS.md)
- Custom templates guide: [`CUSTOM_TEMPLATES.md`](../../CUSTOM_TEMPLATES.md)
- JSON schemas: `.finder/shema/`

- type: input
id: template_name
attributes:
label: Template name
description: The filename without `.json5` becomes the template name, e.g. `my-template`
placeholder: "my-template"
validations:
required: true

- type: textarea
id: template_description
attributes:
label: Description
description: Short human-readable explanation of the project type this template matches
placeholder: "A monorepo using pnpm workspaces with apps/ and packages/"
validations:
required: true

- type: textarea
id: match_signals
attributes:
label: Match signals
description: The smallest set of reliable files and folders that uniquely identify this project type
value: |
Files:
- ...

Folders:
- ...
validations:
required: true

- type: input
id: tags
attributes:
label: Suggested tags
description: Comma-separated tags for discoverability
placeholder: "node, typescript, monorepo"

- type: textarea
id: template_content
attributes:
label: Template content (JSON5)
description: 'Paste the full valid JSON5 template. Use `name: "*"` unless a narrower pattern is necessary.'
render: json
placeholder: |
{
description: "My project type",
name: "*",
files: ["package.json"],
tags: ["my-tag"],
min_version: "0.3.16",
}
validations:
required: true

- type: textarea
id: validation
attributes:
label: Validation output
description: Paste the output of the validation commands below, if possible
render: shell
placeholder: |
./finder check
./finder <template-name>

- type: checkboxes
id: checklist
attributes:
label: Checklist
options:
- label: Valid `.json5` file matching the schema in `.finder/shema/`
- label: '`name` set to `"*"` unless a narrower pattern is intentional'
- label: Minimal and specific required files/folders β€” no generic markers
- label: Includes a clear `description` and useful `tags`
- label: Validated with `./finder check`
44 changes: 41 additions & 3 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,69 @@
## πŸ“Œ Summary

<!-- Briefly describe what this PR does -->
*Describe the change in a few sentences*

_Describe the change in a few sentences_

## πŸ” Related Issue

<!-- Link the issue this PR resolves, if applicable -->

Closes #

## πŸ›  Proposed Changes

<!-- List the changes made -->

- Change 1
- Change 2
- ...
- …

## πŸ§ͺ Testing

<!-- How has this been tested? Steps and results -->

1. …
2. …

---

## 🧩 Finder Template Changes

<!--
Fill this section out when this PR adds or changes a Finder template.
Templates are JSON5 files that describe a project type so Finder can detect it.
Built-in templates live in `templates/`, custom templates in `.finder/templates/`.
Schema files: `.finder/shema/`.
-->

### Template checklist

- [ ] Template is a valid `.json5` file
- [ ] Template matches the schema in `.finder/shema/` (`finder-template.schema.json` / `finder-template.v2.schema.json`)
- [ ] `name` is `"*"` unless a narrower pattern is intentional
- [ ] Requires only the minimal set of files/folders needed to identify the project type
- [ ] Includes a clear `description` and useful `tags`
- [ ] Avoids generic markers that cause false positives (e.g. `README.md` alone)
- [ ] Validated with `./finder check`
- [ ] Tested against a real folder with `./finder <template-name>`
- [ ] Documentation updated (`CUSTOM_TEMPLATES.md`, `tags.md`) if applicable

### Validation output

<!-- Paste the output of these commands -->

```
./finder check
./finder <template-name>
```

---

## πŸ“Έ Screenshots (if applicable)

<!-- UI / behavior changes – include screenshots or GIFs -->

## βœ… Checklist
## βœ… Final Checklist

- [ ] PR title is descriptive
- [ ] Changes are tested
Expand Down
2 changes: 2 additions & 0 deletions .github/temp-stuff-idk/c-shortcut/build.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
cl /O2 /Ob3 /Oi /Ot /GL /Gy /MD /GF /DNDEBUG /arch:AVX2 shortcut.c /link /LTCG /OPT:REF /OPT:ICF
dumpbin /headers main.exe
7 changes: 7 additions & 0 deletions .github/temp-stuff-idk/c-shortcut/config.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
name=Max
age=25
city=Berlin
l=hallo
lol=pnpm

main.exe=finder
Loading
Loading