getfilepress 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  > File-based Markdown blogs. No admin UI. No database. Just git.
4
4
 
5
- A file-based Markdown blog engine. Posts are plain `.md` files with YAML frontmatter edit them in the GitHub mobile app, the web editor, or any text editor. There is no admin UI, no database, and no server at runtime: a static build produces HTML you can host anywhere (e.g. Cloudflare Pages).
5
+ A file-based Markdown blog engine. Posts are plain `.md` files with YAML frontmatter. Edit them in the GitHub mobile app, the web editor, or any text editor. There is no admin UI, no database, and no server at runtime: a static build produces HTML you can host anywhere (for example Cloudflare Pages).
6
6
 
7
7
  | | |
8
8
  | --- | --- |
@@ -108,7 +108,7 @@ export default defineFilepressConfig({
108
108
 
109
109
  ### Path mounts
110
110
 
111
- Attach a site-owned HTML/CSS/JS tree at a URL prefix. FilePress copies it into `build/` after the Kit build and serves it in `filepress dev`. It does **not** parse Markdown or inject Essay chrome into the mount the site owns the shell (e.g. a docs sidebar).
111
+ Attach a site-owned HTML/CSS/JS tree at a URL prefix. FilePress copies it into `build/` after the Kit build and serves it in `filepress dev`. It does **not** parse Markdown or inject Essay chrome into the mount. The site owns the shell (for example a docs sidebar).
112
112
 
113
113
  ```ts
114
114
  paths: [
@@ -128,8 +128,8 @@ variables and structural classes without forking the app.
128
128
 
129
129
  In local `filepress dev` / `pnpm dev`, **Genie Mode** (floating FAB) is a design cockpit:
130
130
  steers, Openverse / uploads, live inspire URLs, optional Ollama refine, and
131
- `lede` / `tagline` / `logo` config patches versioned under `.filepress-genie/`,
132
- baked into `theme.css` / `static/` / config on activate. Dev-only; absent from
131
+ `lede` / `tagline` / `logo` config patches. Experiments live under `.filepress-genie/`.
132
+ Activate writes `theme.css`, `static/`, and config. Dev-only; absent from
133
133
  `preview` and production builds. See [`docs/GENIE_MODE_SPEC.md`](docs/GENIE_MODE_SPEC.md)
134
134
  and [getfilepress.com/genie](https://getfilepress.com/genie).
135
135
 
@@ -182,7 +182,7 @@ Body content in **Markdown**.
182
182
 
183
183
  ## Deploy
184
184
 
185
- `filepress build` emits a static `build/` folder no Node server in production.
185
+ `filepress build` emits a static `build/` folder. No Node server in production.
186
186
 
187
187
  **Happy path: [Cloudflare Pages](https://pages.cloudflare.com/)** (git-connected site repo or Wrangler upload).
188
188
 
@@ -192,7 +192,7 @@ Body content in **Markdown**.
192
192
  | Output directory | `build` |
193
193
  | Node | 20+ |
194
194
 
195
- Pin the engine in the site `package.json` (`"getfilepress": "^0.1.1"` or `github:Catalyst-Forge-LLC/filepress#v0.1.1`). Do not use `link:` in CI. Set config `url` to the live origin.
195
+ Pin the engine in the site `package.json` (`"getfilepress": "^0.1.3"` or `github:Catalyst-Forge-LLC/filepress#v0.1.3`). Do not use `link:` in CI. Set config `url` to the live origin.
196
196
 
197
197
  Any other static host works the same way: publish `build/` as the web root.
198
198
 
package/package.json CHANGED
@@ -1,103 +1,100 @@
1
1
  {
2
- "name": "getfilepress",
3
- "version": "0.1.3",
4
- "private": false,
5
- "type": "module",
6
- "description": "FilePress — file-based Markdown blog engine. Link this package from a content-only site (config + posts), then run `filepress build`.",
7
- "license": "MIT",
8
- "homepage": "https://getfilepress.com",
9
- "repository": {
10
- "type": "git",
11
- "url": "git+https://github.com/Catalyst-Forge-LLC/filepress.git"
12
- },
13
- "bugs": {
14
- "url": "https://github.com/Catalyst-Forge-LLC/filepress/issues"
15
- },
16
- "bin": {
17
- "filepress": "./scripts/filepress.mjs",
18
- "getfilepress": "./scripts/filepress.mjs"
19
- },
20
- "exports": {
21
- ".": {
22
- "types": "./packages/core/src/lib/index.ts",
23
- "svelte": "./packages/core/src/lib/index.ts",
24
- "default": "./packages/core/src/lib/index.ts"
25
- },
26
- "./server": {
27
- "types": "./packages/core/src/lib/server.ts",
28
- "default": "./packages/core/src/lib/server.ts"
29
- },
30
- "./theme": {
31
- "default": "./packages/core/src/lib/theme.ts"
32
- },
33
- "./package.json": "./package.json"
34
- },
35
- "files": [
36
- "scripts/filepress.mjs",
37
- "scripts/copy-path-mounts.mjs",
38
- "scripts/create-site.mjs",
39
- "scripts/postinstall.mjs",
40
- "scripts/link-embedded-packages.mjs",
41
- "packages/core",
42
- "packages/app",
43
- "packages/import",
44
- "pnpm-workspace.yaml",
45
- "README.md",
46
- "LICENSE"
47
- ],
48
- "scripts": {
49
- "postinstall": "node scripts/postinstall.mjs",
50
- "filepress": "node scripts/filepress.mjs",
51
- "test": "pnpm --filter @filepress/core test && pnpm --filter @filepress/import test && pnpm --filter @filepress/app test",
52
- "check": "pnpm filepress check --site demo",
53
- "build": "pnpm filepress build --site demo",
54
- "build:demo": "pnpm filepress build --site demo",
55
- "build:www": "pnpm filepress build --site getfilepress",
56
- "ship": "pnpm build:www && wrangler pages deploy sites/getfilepress/build --project-name getfilepress",
57
- "deploy:www": "pnpm ship",
58
- "dev": "pnpm filepress dev --site demo",
59
- "dev:demo": "pnpm filepress dev --site demo",
60
- "dev:www": "pnpm filepress dev --site getfilepress",
61
- "create-site": "node scripts/create-site.mjs",
62
- "import": "node scripts/filepress.mjs import",
63
- "prepack": "node scripts/prepack.mjs",
64
- "postpack": "node scripts/postpack.mjs",
65
- "pack:smoke": "node scripts/pack-smoke.mjs"
66
- },
67
- "dependencies": {
68
- "@fontsource-variable/inter": "^5.2.8",
69
- "@fontsource-variable/newsreader": "^5.2.10",
70
- "@sveltejs/adapter-static": "^3.0.10",
71
- "@sveltejs/kit": "^2.63.0",
72
- "@sveltejs/vite-plugin-svelte": "^7.1.2",
73
- "@types/turndown": "^5.0.5",
74
- "fast-xml-parser": "^5.2.5",
75
- "gray-matter": "^4.0.3",
76
- "highlight.js": "^11.11.1",
77
- "linkedom": "^0.18.12",
78
- "ollanet": "^0.4.0",
79
- "rehype-autolink-headings": "^7.1.0",
80
- "rehype-highlight": "^7.0.2",
81
- "rehype-raw": "^7.0.0",
82
- "rehype-slug": "^6.0.0",
83
- "rehype-stringify": "^10.0.1",
84
- "remark-gfm": "^4.0.1",
85
- "remark-parse": "^11.0.0",
86
- "remark-rehype": "^11.1.2",
87
- "sirv-cli": "^3.0.1",
88
- "svelte": "^5.56.1",
89
- "svelte-check": "^4.6.0",
90
- "tsx": "^4.20.5",
91
- "turndown": "^7.2.1",
92
- "typescript": "^6.0.3",
93
- "unified": "^11.0.5",
94
- "vite": "^8.0.16"
95
- },
96
- "engines": {
97
- "node": ">=20"
98
- },
99
- "packageManager": "pnpm@10.30.1",
100
- "devDependencies": {
101
- "wrangler": "^4.120.1"
102
- }
103
- }
2
+ "name": "getfilepress",
3
+ "version": "0.1.4",
4
+ "private": false,
5
+ "type": "module",
6
+ "description": "FilePress — file-based Markdown blog engine. Link this package from a content-only site (config + posts), then run `filepress build`.",
7
+ "license": "MIT",
8
+ "homepage": "https://getfilepress.com",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/Catalyst-Forge-LLC/filepress.git"
12
+ },
13
+ "bugs": {
14
+ "url": "https://github.com/Catalyst-Forge-LLC/filepress/issues"
15
+ },
16
+ "bin": {
17
+ "filepress": "./scripts/filepress.mjs",
18
+ "getfilepress": "./scripts/filepress.mjs"
19
+ },
20
+ "exports": {
21
+ ".": {
22
+ "types": "./packages/core/src/lib/index.ts",
23
+ "svelte": "./packages/core/src/lib/index.ts",
24
+ "default": "./packages/core/src/lib/index.ts"
25
+ },
26
+ "./server": {
27
+ "types": "./packages/core/src/lib/server.ts",
28
+ "default": "./packages/core/src/lib/server.ts"
29
+ },
30
+ "./theme": {
31
+ "default": "./packages/core/src/lib/theme.ts"
32
+ },
33
+ "./package.json": "./package.json"
34
+ },
35
+ "files": [
36
+ "scripts/filepress.mjs",
37
+ "scripts/copy-path-mounts.mjs",
38
+ "scripts/create-site.mjs",
39
+ "scripts/postinstall.mjs",
40
+ "scripts/link-embedded-packages.mjs",
41
+ "packages/core",
42
+ "packages/app",
43
+ "packages/import",
44
+ "pnpm-workspace.yaml",
45
+ "README.md",
46
+ "LICENSE"
47
+ ],
48
+ "dependencies": {
49
+ "@fontsource-variable/inter": "^5.2.8",
50
+ "@fontsource-variable/newsreader": "^5.2.10",
51
+ "@sveltejs/adapter-static": "^3.0.10",
52
+ "@sveltejs/kit": "^2.63.0",
53
+ "@sveltejs/vite-plugin-svelte": "^7.1.2",
54
+ "@types/turndown": "^5.0.5",
55
+ "fast-xml-parser": "^5.2.5",
56
+ "gray-matter": "^4.0.3",
57
+ "highlight.js": "^11.11.1",
58
+ "linkedom": "^0.18.12",
59
+ "ollanet": "^0.4.0",
60
+ "rehype-autolink-headings": "^7.1.0",
61
+ "rehype-highlight": "^7.0.2",
62
+ "rehype-raw": "^7.0.0",
63
+ "rehype-slug": "^6.0.0",
64
+ "rehype-stringify": "^10.0.1",
65
+ "remark-gfm": "^4.0.1",
66
+ "remark-parse": "^11.0.0",
67
+ "remark-rehype": "^11.1.2",
68
+ "sirv-cli": "^3.0.1",
69
+ "svelte": "^5.56.1",
70
+ "svelte-check": "^4.6.0",
71
+ "tsx": "^4.20.5",
72
+ "turndown": "^7.2.1",
73
+ "typescript": "^6.0.3",
74
+ "unified": "^11.0.5",
75
+ "vite": "^8.0.16"
76
+ },
77
+ "engines": {
78
+ "node": ">=20"
79
+ },
80
+ "devDependencies": {
81
+ "wrangler": "^4.120.1"
82
+ },
83
+ "scripts": {
84
+ "postinstall": "node scripts/postinstall.mjs",
85
+ "filepress": "node scripts/filepress.mjs",
86
+ "test": "pnpm --filter @filepress/core test && pnpm --filter @filepress/import test && pnpm --filter @filepress/app test",
87
+ "check": "pnpm filepress check --site demo",
88
+ "build": "pnpm filepress build --site demo",
89
+ "build:demo": "pnpm filepress build --site demo",
90
+ "build:www": "pnpm filepress build --site getfilepress",
91
+ "ship": "pnpm build:www && wrangler pages deploy sites/getfilepress/build --project-name getfilepress",
92
+ "deploy:www": "pnpm ship",
93
+ "dev": "pnpm filepress dev --site demo",
94
+ "dev:demo": "pnpm filepress dev --site demo",
95
+ "dev:www": "pnpm filepress dev --site getfilepress",
96
+ "create-site": "node scripts/create-site.mjs",
97
+ "import": "node scripts/filepress.mjs import",
98
+ "pack:smoke": "node scripts/pack-smoke.mjs"
99
+ }
100
+ }
@@ -0,0 +1,19 @@
1
+ # @filepress/app
2
+
3
+ The only SvelteKit application in the filepress monorepo. All routes, layouts, and
4
+ Kit wiring live here. Content sites under [`../../sites`](../../sites) provide:
5
+
6
+ - `filepress.config.ts` — identity
7
+ - `posts/` — Markdown
8
+ - `static/` — favicon, images (optional)
9
+
10
+ ## Run against a site
11
+
12
+ From the repo root (do not run vite directly without `FILEPRESS_SITE_ROOT`):
13
+
14
+ ```bash
15
+ pnpm filepress dev --site demo
16
+ pnpm filepress build --site demo
17
+ ```
18
+
19
+ Build output is written to `sites/<name>/build/`.
@@ -0,0 +1,29 @@
1
+ # @filepress/core
2
+
3
+ The reusable filepress engine. Sites under [`../../sites`](../../sites) depend on
4
+ it (via `workspace:*` in this monorepo) and provide their own SvelteKit routes,
5
+ content, and `filepress.config.ts`.
6
+
7
+ ## Entry points
8
+
9
+ - `@filepress/core` — client-safe: `PostCard`, `PostIndex`, `Newsletter`,
10
+ `SiteHeader`, `SiteFooter`, `defineFilepressConfig`, `absoluteUrl`,
11
+ `formatDate`, and shared types.
12
+ - `@filepress/core/server` — server-only (filesystem access): `createContent`,
13
+ `renderMarkdown`, `buildRssXml` / `buildSitemapXml` / `buildRobotsTxt`, and the
14
+ content-parsing primitives. Import only from `+page.server.ts`, `+server.ts`,
15
+ or `*.server.ts` modules.
16
+ - `@filepress/core/theme` — self-hosted fonts + the Essay theme CSS. Import once
17
+ from a site's root layout.
18
+
19
+ ## Why routes live in the site
20
+
21
+ SvelteKit's router is per-project, so each site owns its `src/routes/`. Those
22
+ route files stay thin: they call `createContent(...)` + core builders and render
23
+ core components. `scripts/create-site.mjs` scaffolds them.
24
+
25
+ ## Testing
26
+
27
+ `pnpm --filter @filepress/core test` runs the unit tests over the pure parsing
28
+ and figure-transform logic. Type-checking of the whole library happens through
29
+ each site's `svelte-check`.
File without changes