From 74672b2d047eb156f81c245ebb0864d0763ad181 Mon Sep 17 00:00:00 2001 From: Ruben Date: Tue, 10 Feb 2026 22:25:59 +0100 Subject: [PATCH] Remove default content files and add new example content Remove default content files and add new example content, including about pages, blog posts with mixed content formats, and updated front page content. --- app/default/content/00-hero.no.php | 51 ------------- app/default/content/00-hero.php | 51 ------------- app/default/content/01-index.md | 45 ----------- app/default/content/01-index.no.md | 45 ----------- app/default/content/about/about.md | 5 ++ app/default/content/about/about.no.md | 5 ++ .../blog/2025-01-15-first-post/metadata.ini | 6 ++ .../blog/2025-01-15-first-post/post.md | 5 ++ .../blog/2025-01-15-first-post/post.no.md | 5 ++ .../blog/2025-02-01-second-post/10-intro.md | 3 + .../2025-02-01-second-post/10-intro.no.md | 3 + .../2025-02-01-second-post/20-details.html | 5 ++ .../2025-02-01-second-post/20-details.no.html | 5 ++ .../2025-02-01-second-post/30-dynamic.no.php | 18 +++++ .../2025-02-01-second-post/30-dynamic.php | 18 +++++ .../blog/2025-02-01-second-post/metadata.ini | 6 ++ app/default/content/blog/metadata.ini | 8 ++ .../2024-10-05-cover-image-demo/cover.svg | 5 -- .../2024-10-05-cover-image-demo/index.md | 39 ---------- .../2024-10-05-cover-image-demo/metadata.ini | 2 - .../2024-11-20-metadata-example/index.md | 53 ------------- .../2024-11-20-metadata-example/metadata.ini | 3 - .../2024-12-15-markdown-demo/index.md | 74 ------------------- .../2024-12-15-markdown-demo/index.no.md | 74 ------------------- .../2024-12-15-markdown-demo/metadata.ini | 2 - .../examples/file-based-routing/index.md | 52 ------------- .../examples/file-based-routing/index.no.md | 52 ------------- .../examples/file-based-routing/metadata.ini | 3 - app/default/content/examples/index.md | 5 -- .../content/examples/mix-formats/00-intro.md | 11 --- .../examples/mix-formats/00-intro.no.md | 11 --- .../examples/mix-formats/01-html-example.html | 11 --- .../mix-formats/01-html-example.no.html | 11 --- .../examples/mix-formats/02-dynamic.no.php | 41 ---------- .../examples/mix-formats/02-dynamic.php | 41 ---------- .../examples/mix-formats/03-conclusion.md | 38 ---------- .../examples/mix-formats/03-conclusion.no.md | 38 ---------- .../content/examples/mix-formats/metadata.ini | 3 - app/default/content/examples/nested/index.md | 5 -- .../examples/nested/level-two/index.md | 5 -- .../nested/level-two/level-three/index.md | 5 -- .../level-two/level-three/level-four/index.md | 29 -------- .../content/examples/no-build-step/index.md | 47 ------------ .../examples/no-build-step/index.no.md | 47 ------------ .../examples/no-build-step/metadata.ini | 3 - .../2024-10-10-oldest-post/index.md | 3 - .../2024-11-15-older-post/index.md | 3 - .../2024-12-01-recent-post/index.md | 3 - .../templates-demo/compact-example/index.md | 3 - .../compact-example/metadata.ini | 4 - .../templates-demo/grid-example/index.md | 3 - .../grid-example/item-one/index.md | 3 - .../grid-example/item-one/metadata.ini | 1 - .../grid-example/item-three/index.md | 3 - .../grid-example/item-three/metadata.ini | 1 - .../grid-example/item-two/index.md | 3 - .../grid-example/item-two/metadata.ini | 1 - .../templates-demo/grid-example/metadata.ini | 4 - .../content/examples/templates-demo/index.md | 24 ------ app/default/content/front.md | 11 +++ app/default/content/front.no.md | 11 +++ app/default/content/multilingual/index.en.md | 53 ------------- app/default/content/multilingual/index.no.md | 53 ------------- app/default/content/multilingual/metadata.ini | 2 - 64 files changed, 114 insertions(+), 1069 deletions(-) delete mode 100644 app/default/content/00-hero.no.php delete mode 100644 app/default/content/00-hero.php delete mode 100644 app/default/content/01-index.md delete mode 100644 app/default/content/01-index.no.md create mode 100644 app/default/content/about/about.md create mode 100644 app/default/content/about/about.no.md create mode 100644 app/default/content/blog/2025-01-15-first-post/metadata.ini create mode 100644 app/default/content/blog/2025-01-15-first-post/post.md create mode 100644 app/default/content/blog/2025-01-15-first-post/post.no.md create mode 100644 app/default/content/blog/2025-02-01-second-post/10-intro.md create mode 100644 app/default/content/blog/2025-02-01-second-post/10-intro.no.md create mode 100644 app/default/content/blog/2025-02-01-second-post/20-details.html create mode 100644 app/default/content/blog/2025-02-01-second-post/20-details.no.html create mode 100644 app/default/content/blog/2025-02-01-second-post/30-dynamic.no.php create mode 100644 app/default/content/blog/2025-02-01-second-post/30-dynamic.php create mode 100644 app/default/content/blog/2025-02-01-second-post/metadata.ini create mode 100644 app/default/content/blog/metadata.ini delete mode 100644 app/default/content/examples/2024-10-05-cover-image-demo/cover.svg delete mode 100644 app/default/content/examples/2024-10-05-cover-image-demo/index.md delete mode 100644 app/default/content/examples/2024-10-05-cover-image-demo/metadata.ini delete mode 100644 app/default/content/examples/2024-11-20-metadata-example/index.md delete mode 100644 app/default/content/examples/2024-11-20-metadata-example/metadata.ini delete mode 100644 app/default/content/examples/2024-12-15-markdown-demo/index.md delete mode 100644 app/default/content/examples/2024-12-15-markdown-demo/index.no.md delete mode 100644 app/default/content/examples/2024-12-15-markdown-demo/metadata.ini delete mode 100644 app/default/content/examples/file-based-routing/index.md delete mode 100644 app/default/content/examples/file-based-routing/index.no.md delete mode 100644 app/default/content/examples/file-based-routing/metadata.ini delete mode 100644 app/default/content/examples/index.md delete mode 100644 app/default/content/examples/mix-formats/00-intro.md delete mode 100644 app/default/content/examples/mix-formats/00-intro.no.md delete mode 100644 app/default/content/examples/mix-formats/01-html-example.html delete mode 100644 app/default/content/examples/mix-formats/01-html-example.no.html delete mode 100644 app/default/content/examples/mix-formats/02-dynamic.no.php delete mode 100644 app/default/content/examples/mix-formats/02-dynamic.php delete mode 100644 app/default/content/examples/mix-formats/03-conclusion.md delete mode 100644 app/default/content/examples/mix-formats/03-conclusion.no.md delete mode 100644 app/default/content/examples/mix-formats/metadata.ini delete mode 100644 app/default/content/examples/nested/index.md delete mode 100644 app/default/content/examples/nested/level-two/index.md delete mode 100644 app/default/content/examples/nested/level-two/level-three/index.md delete mode 100644 app/default/content/examples/nested/level-two/level-three/level-four/index.md delete mode 100644 app/default/content/examples/no-build-step/index.md delete mode 100644 app/default/content/examples/no-build-step/index.no.md delete mode 100644 app/default/content/examples/no-build-step/metadata.ini delete mode 100644 app/default/content/examples/templates-demo/compact-example/2024-10-10-oldest-post/index.md delete mode 100644 app/default/content/examples/templates-demo/compact-example/2024-11-15-older-post/index.md delete mode 100644 app/default/content/examples/templates-demo/compact-example/2024-12-01-recent-post/index.md delete mode 100644 app/default/content/examples/templates-demo/compact-example/index.md delete mode 100644 app/default/content/examples/templates-demo/compact-example/metadata.ini delete mode 100644 app/default/content/examples/templates-demo/grid-example/index.md delete mode 100644 app/default/content/examples/templates-demo/grid-example/item-one/index.md delete mode 100644 app/default/content/examples/templates-demo/grid-example/item-one/metadata.ini delete mode 100644 app/default/content/examples/templates-demo/grid-example/item-three/index.md delete mode 100644 app/default/content/examples/templates-demo/grid-example/item-three/metadata.ini delete mode 100644 app/default/content/examples/templates-demo/grid-example/item-two/index.md delete mode 100644 app/default/content/examples/templates-demo/grid-example/item-two/metadata.ini delete mode 100644 app/default/content/examples/templates-demo/grid-example/metadata.ini delete mode 100644 app/default/content/examples/templates-demo/index.md create mode 100644 app/default/content/front.md create mode 100644 app/default/content/front.no.md delete mode 100644 app/default/content/multilingual/index.en.md delete mode 100644 app/default/content/multilingual/index.no.md delete mode 100644 app/default/content/multilingual/metadata.ini diff --git a/app/default/content/00-hero.no.php b/app/default/content/00-hero.no.php deleted file mode 100644 index 3f3387a..0000000 --- a/app/default/content/00-hero.no.php +++ /dev/null @@ -1,51 +0,0 @@ - '📁', 'title' => 'Filbasert', 'description' => 'Mapper blir URL-er automatisk', 'url' => $prefix . '/examples/file-based-routing/'], - ['icon' => '⚡', 'title' => 'Uten byggesteg', 'description' => 'Rediger og oppdater—det er alt', 'url' => $prefix . '/examples/no-build-step/'], - ['icon' => '🎹', 'title' => 'Bland formater', 'description' => 'Kombiner .md, .html og .php', 'url' => $prefix . '/examples/mix-formats/'], - ['icon' => '🌍', 'title' => 'FlersprĂ„klig', 'description' => 'Innebygd i18n-stĂžtte', 'url' => $prefix . '/multilingual/'], - ['icon' => '📝', 'title' => 'Markdown', 'description' => 'Skriv innhold i markdown', 'url' => $prefix . '/examples/2024-12-15-markdown-demo/'], - ['icon' => '🎭', 'title' => 'Maler', 'description' => 'Egendefinerte layout og stiler', 'url' => $prefix . '/examples/templates-demo/'], -]; - -$stats = [ - 'files' => count(glob(__DIR__ . '/**/*', GLOB_BRACE)) ?: 0, - 'generated' => number_format((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']) * 1000, 2) . 'ms', - 'php_version' => PHP_VERSION, -]; -?> - -
-

FolderWeb

-

- Slipp filer i mapper. De rendres umiddelbart. - Ingen konfigurasjon, ingen byggesteg, ingen kompleksitet. -

- -
- - - -

-

-
- -
- -
-
- - Filer i innhold -
-
- - Side generert -
-
- PHP - Runtime -
-
-
diff --git a/app/default/content/00-hero.php b/app/default/content/00-hero.php deleted file mode 100644 index e2c2708..0000000 --- a/app/default/content/00-hero.php +++ /dev/null @@ -1,51 +0,0 @@ - '📁', 'title' => 'File-Based', 'description' => 'Folders become URLs automatically', 'url' => $prefix . '/examples/file-based-routing/'], - ['icon' => '⚡', 'title' => 'No Build Step', 'description' => 'Edit and refresh—that\'s it', 'url' => $prefix . '/examples/no-build-step/'], - ['icon' => '🎹', 'title' => 'Mix Formats', 'description' => 'Combine .md, .html, and .php', 'url' => $prefix . '/examples/mix-formats/'], - ['icon' => '🌍', 'title' => 'Multilingual', 'description' => 'Built-in i18n support', 'url' => $prefix . '/multilingual/'], - ['icon' => '📝', 'title' => 'Markdown', 'description' => 'Write content in markdown', 'url' => $prefix . '/examples/2024-12-15-markdown-demo/'], - ['icon' => '🎭', 'title' => 'Templates', 'description' => 'Custom layouts and styles', 'url' => $prefix . '/examples/templates-demo/'], -]; - -$stats = [ - 'files' => count(glob(__DIR__ . '/**/*', GLOB_BRACE)) ?: 0, - 'generated' => number_format((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']) * 1000, 2) . 'ms', - 'php_version' => PHP_VERSION, -]; -?> - -
-

FolderWeb

-

- Drop files in folders. They render immediately. - No configuration, no build step, no complexity. -

- -
- - - -

-

-
- -
- -
-
- - Files in content -
-
- - Page generated -
-
- PHP - Runtime -
-
-
diff --git a/app/default/content/01-index.md b/app/default/content/01-index.md deleted file mode 100644 index 145e99a..0000000 --- a/app/default/content/01-index.md +++ /dev/null @@ -1,45 +0,0 @@ - - - -## Quick Start - -1. **Empty the content folder** – Delete everything in `/content/` to start fresh -2. **Copy the default folder** – Copy `/app/default/` to `/custom/` (one level up from app/) to create your own theme -3. **Add your content** – Drop `.md`, `.html`, or `.php` files in `/content/` and they're live -4. **Customize templates** – Edit files in `/custom/templates/` to change the look -5. **Style it** – Add CSS in `/custom/styles/styles.css` for global styles - -## What Makes FolderWeb Different - -**File-based routing** – Your folder structure is your URL structure. No configuration needed. - -**No JavaScript** – Fast, simple, accessible websites that work everywhere. - -**Modern PHP & CSS** – Clean code using the latest language features and CSS capabilities. - -**No build step** – Edit a file, refresh the page. That's it. - -**Decade-proof** – Minimal dependencies mean this will work for years without breaking. - -## How This Page Works - -This frontpage demonstrates how you can **mix different file types** to create dynamic, custom layouts: - -- **`hero.php`** – Dynamic PHP component with live stats and styling -- **`index.md`** – Static markdown content (this section!) - -Files in the same directory are rendered alphabetically. Want a different order? Prefix filenames with numbers like `00-hero.php` and `01-content.md`. - -## Features Demonstrated Here {#features} - -Explore this demo site to see what FolderWeb can do: - -- [Examples](/examples/) – Markdown, metadata, dates, and cover images -- [Multilingual](/multilingual/) – Build sites in multiple languages -- [Nested Content](/examples/nested/) – Organize content as deep as you need - -## Philosophy - -**Just enough, nothing more.** This framework uses minimal PHP to enable modern conveniences while remaining maintainable for years or decades. - -Read more in `CLAUDE.md` to understand the principles behind FolderWeb. diff --git a/app/default/content/01-index.no.md b/app/default/content/01-index.no.md deleted file mode 100644 index dc0a430..0000000 --- a/app/default/content/01-index.no.md +++ /dev/null @@ -1,45 +0,0 @@ - - - -## Hurtigstart - -1. **TĂžm innholdsmappen** – Slett alt i `/content/` for Ă„ starte fra bunnen av -2. **Kopier standardmappen** – Kopier `/app/default/` til `/custom/` (ett nivĂ„ opp fra app/) for Ă„ lage ditt eget tema -3. **Legg til innhold** – Slipp `.md`, `.html`, eller `.php`-filer i `/content/` og de er live -4. **Tilpass maler** – Rediger filer i `/custom/templates/` for Ă„ endre utseendet -5. **Stil det** – Legg til CSS i `/custom/styles/styles.css` for globale stiler - -## Hva gjĂžr FolderWeb annerledes - -**Filbasert routing** – Mappestrukturen din er URL-strukturen din. Ingen konfigurasjon nĂždvendig. - -**Ingen JavaScript** – Raske, enkle, tilgjengelige nettsteder som fungerer overalt. - -**Moderne PHP & CSS** – Ren kode som bruker de nyeste sprĂ„kfunksjonene og CSS-mulighetene. - -**Uten byggesteg** – Rediger en fil, oppdater siden. Det er det. - -**TiĂ„r-sikker** – Minimale avhengigheter betyr at dette vil fungere i Ă„revis uten Ă„ gĂ„ i stykker. - -## Hvordan denne siden fungerer - -Denne forsiden demonstrerer hvordan du kan **blande forskjellige filtyper** for Ă„ lage dynamiske, egendefinerte layout: - -- **`hero.no.php`** – Dynamisk PHP-komponent med live statistikk og styling -- **`index.no.md`** – Statisk markdown-innhold (denne seksjonen!) - -Filer i samme katalog rendres alfabetisk. Vil du ha en annen rekkefĂžlge? Prefikser filnavn med tall som `00-hero.php` og `01-innhold.md`. - -## Funksjoner demonstrert her {#funksjoner} - -Utforsk denne demosiden for Ă„ se hva FolderWeb kan gjĂžre: - -- [Eksempler](/examples/) – Markdown, metadata, datoer og forsidebilder -- [FlersprĂ„klig](/multilingual/) – Bygg nettsteder pĂ„ flere sprĂ„k -- [Nestet innhold](/examples/nested/) – Organiser innhold sĂ„ dypt du trenger - -## Filosofi - -**Akkurat nok, ikke mer.** Dette rammeverket bruker minimal PHP for Ă„ muliggjĂžre moderne bekvemmeligheter samtidig som det forblir vedlikeholdbart i Ă„revis eller tiĂ„r. - -Les mer i `CLAUDE.md` for Ă„ forstĂ„ prinsippene bak FolderWeb. diff --git a/app/default/content/about/about.md b/app/default/content/about/about.md new file mode 100644 index 0000000..46e2d87 --- /dev/null +++ b/app/default/content/about/about.md @@ -0,0 +1,5 @@ +# About + +This is a simple page. It lives in `content/about/about.md` and renders at `/about/`. + +Any folder with only files (no subdirectories) renders as a page. diff --git a/app/default/content/about/about.no.md b/app/default/content/about/about.no.md new file mode 100644 index 0000000..83a4dee --- /dev/null +++ b/app/default/content/about/about.no.md @@ -0,0 +1,5 @@ +# Om + +Dette er en enkel side. Den ligger i `content/about/about.no.md` og vises pĂ„ `/no/about/`. + +Mapper som bare inneholder filer (ingen undermapper) vises som en side. diff --git a/app/default/content/blog/2025-01-15-first-post/metadata.ini b/app/default/content/blog/2025-01-15-first-post/metadata.ini new file mode 100644 index 0000000..f27cb61 --- /dev/null +++ b/app/default/content/blog/2025-01-15-first-post/metadata.ini @@ -0,0 +1,6 @@ +title = "First Post" +summary = "A simple blog post demonstrating date extraction and metadata" + +[no] +title = "FĂžrste innlegg" +summary = "Et enkelt blogginnlegg som viser datouttrekk og metadata" diff --git a/app/default/content/blog/2025-01-15-first-post/post.md b/app/default/content/blog/2025-01-15-first-post/post.md new file mode 100644 index 0000000..3b0066e --- /dev/null +++ b/app/default/content/blog/2025-01-15-first-post/post.md @@ -0,0 +1,5 @@ +# First Post + +This is a blog post. The date `2025-01-15` is extracted from the folder name for sorting and display. + +You can set a custom URL slug in `metadata.ini` to shorten the URL. diff --git a/app/default/content/blog/2025-01-15-first-post/post.no.md b/app/default/content/blog/2025-01-15-first-post/post.no.md new file mode 100644 index 0000000..e5d701a --- /dev/null +++ b/app/default/content/blog/2025-01-15-first-post/post.no.md @@ -0,0 +1,5 @@ +# FĂžrste innlegg + +Dette er et blogginnlegg. Datoen `2025-01-15` hentes fra mappenavnet for sortering og visning. + +Du kan sette en egendefinert URL-slug i `metadata.ini` for Ă„ forkorte URL-en. diff --git a/app/default/content/blog/2025-02-01-second-post/10-intro.md b/app/default/content/blog/2025-02-01-second-post/10-intro.md new file mode 100644 index 0000000..ded3c81 --- /dev/null +++ b/app/default/content/blog/2025-02-01-second-post/10-intro.md @@ -0,0 +1,3 @@ +# Second Post + +This post combines multiple content files into a single page. This section is Markdown. diff --git a/app/default/content/blog/2025-02-01-second-post/10-intro.no.md b/app/default/content/blog/2025-02-01-second-post/10-intro.no.md new file mode 100644 index 0000000..9451455 --- /dev/null +++ b/app/default/content/blog/2025-02-01-second-post/10-intro.no.md @@ -0,0 +1,3 @@ +# Andre innlegg + +Dette innlegget kombinerer flere innholdsfiler til en enkelt side. Denne delen er Markdown. diff --git a/app/default/content/blog/2025-02-01-second-post/20-details.html b/app/default/content/blog/2025-02-01-second-post/20-details.html new file mode 100644 index 0000000..f2f5261 --- /dev/null +++ b/app/default/content/blog/2025-02-01-second-post/20-details.html @@ -0,0 +1,5 @@ +
+

HTML Section

+

This section is plain HTML, rendered after the Markdown above. Number prefixes (10-, 20-) control the order.

+

You can mix .md, .html, and .php files freely within a single page.

+
diff --git a/app/default/content/blog/2025-02-01-second-post/20-details.no.html b/app/default/content/blog/2025-02-01-second-post/20-details.no.html new file mode 100644 index 0000000..cf1c66b --- /dev/null +++ b/app/default/content/blog/2025-02-01-second-post/20-details.no.html @@ -0,0 +1,5 @@ +
+

HTML-seksjon

+

Denne delen er ren HTML, vist etter Markdown-en over. Nummerprefiks (10-, 20-) styrer rekkefĂžlgen.

+

Du kan blande .md-, .html- og .php-filer fritt pÄ en enkelt side.

+
diff --git a/app/default/content/blog/2025-02-01-second-post/30-dynamic.no.php b/app/default/content/blog/2025-02-01-second-post/30-dynamic.no.php new file mode 100644 index 0000000..a43f7e2 --- /dev/null +++ b/app/default/content/blog/2025-02-01-second-post/30-dynamic.no.php @@ -0,0 +1,18 @@ +
+

PHP-seksjon

+

Denne delen er dynamisk PHP, vist etter HTML-en over.

+ + + + + + + + + + + +
EgenskapVerdi
Servertid
PHP-versjon
Side generert pÄms
Operativsystem
+ +

Oppdater siden for Ă„ se klokken endre seg. Dette er serverside-output — ingen JavaScript involvert.

+
diff --git a/app/default/content/blog/2025-02-01-second-post/30-dynamic.php b/app/default/content/blog/2025-02-01-second-post/30-dynamic.php new file mode 100644 index 0000000..4589ed6 --- /dev/null +++ b/app/default/content/blog/2025-02-01-second-post/30-dynamic.php @@ -0,0 +1,18 @@ +
+

PHP Section

+

This section is dynamic PHP, rendered after the HTML above.

+ + + + + + + + + + + +
PropertyValue
Server time
PHP version
Page generated inms
Operating system
+ +

Refresh the page to see the time update. This is live server-side output — no JavaScript involved.

+
diff --git a/app/default/content/blog/2025-02-01-second-post/metadata.ini b/app/default/content/blog/2025-02-01-second-post/metadata.ini new file mode 100644 index 0000000..7bface6 --- /dev/null +++ b/app/default/content/blog/2025-02-01-second-post/metadata.ini @@ -0,0 +1,6 @@ +title = "Second Post" +summary = "A post demonstrating mixed content formats" + +[no] +title = "Andre innlegg" +summary = "Et innlegg som viser blandede innholdsformater" diff --git a/app/default/content/blog/metadata.ini b/app/default/content/blog/metadata.ini new file mode 100644 index 0000000..a555899 --- /dev/null +++ b/app/default/content/blog/metadata.ini @@ -0,0 +1,8 @@ +title = "Blog" +summary = "Example blog with list view" +menu = 1 +menu_order = 10 + +[no] +title = "Blogg" +summary = "Eksempelblogg med listevisning" diff --git a/app/default/content/examples/2024-10-05-cover-image-demo/cover.svg b/app/default/content/examples/2024-10-05-cover-image-demo/cover.svg deleted file mode 100644 index 31e832f..0000000 --- a/app/default/content/examples/2024-10-05-cover-image-demo/cover.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - Cover Image Example - diff --git a/app/default/content/examples/2024-10-05-cover-image-demo/index.md b/app/default/content/examples/2024-10-05-cover-image-demo/index.md deleted file mode 100644 index 78e749c..0000000 --- a/app/default/content/examples/2024-10-05-cover-image-demo/index.md +++ /dev/null @@ -1,39 +0,0 @@ -# Cover Images and Assets - -FolderWeb automatically detects and uses cover images for social sharing and list views. - -## How Cover Images Work - -Place an image named `cover.jpg`, `cover.png`, or `cover.webp` in your content folder and it's automatically: - -- Used as the Open Graph image for social media -- Displayed in list views (when using templates that support it) -- Available at the same URL as your content - -## Supported Formats - -- `cover.jpg` or `cover.jpeg` -- `cover.png` -- `cover.webp` -- `cover.gif` - -The system checks for these in order and uses the first one found. - -## Other Assets - -Any file in your content folder is accessible at the same URL path: - -- Images: `photo.jpg`, `diagram.png` -- Documents: `download.pdf`, `report.docx` -- Data: `data.json`, `spreadsheet.csv` - -Just reference them in your markdown: - -```markdown -![Diagram](diagram.png) -[Download PDF](report.pdf) -``` - -## This Folder - -This folder includes a simple SVG as the cover image. Check the folder structure to see how it's organized. diff --git a/app/default/content/examples/2024-10-05-cover-image-demo/metadata.ini b/app/default/content/examples/2024-10-05-cover-image-demo/metadata.ini deleted file mode 100644 index a305d97..0000000 --- a/app/default/content/examples/2024-10-05-cover-image-demo/metadata.ini +++ /dev/null @@ -1,2 +0,0 @@ -title = "Cover Images and Assets" -summary = "Learn how cover images and static assets work in FolderWeb" diff --git a/app/default/content/examples/2024-11-20-metadata-example/index.md b/app/default/content/examples/2024-11-20-metadata-example/index.md deleted file mode 100644 index c3bcae9..0000000 --- a/app/default/content/examples/2024-11-20-metadata-example/index.md +++ /dev/null @@ -1,53 +0,0 @@ -# Working with Metadata - -Metadata provides structured information about your pages and controls how they display. - -## What is metadata.ini? - -Every folder can have a `metadata.ini` file that defines: - -- Title (overrides automatic title extraction) -- Date (overrides folder-based date detection) -- Summary (appears in list views) -- Custom template selection -- Other custom fields - -## Example metadata.ini - -```ini -title = "My Custom Title" -date = "2024-11-20" -summary = "A brief description that appears in lists" - -[settings] -page_template = "list-grid" -show_date = false -``` - -## Common Use Cases - -**Override automatic titles** – If you want a title different from the folder name. - -**Set explicit dates** – When the folder name doesn't include a date. - -**Add summaries** – Give context in list views without showing full content. - -**Choose templates** – Different sections can use different list templates. - -**Hide metadata** – Set `show_date = false` to hide dates in lists. - -## Custom Fields - -You can add any fields you want: - -```ini -author = "Jane Doe" -category = "Tutorial" -tags = "metadata, configuration, tutorial" -``` - -Then access them in custom templates via `$metadata['author']`. - -## This Page's Metadata - -Check out `metadata.ini` in this folder to see how the title, date, and summary are defined. diff --git a/app/default/content/examples/2024-11-20-metadata-example/metadata.ini b/app/default/content/examples/2024-11-20-metadata-example/metadata.ini deleted file mode 100644 index 060c614..0000000 --- a/app/default/content/examples/2024-11-20-metadata-example/metadata.ini +++ /dev/null @@ -1,3 +0,0 @@ -title = "Working with Metadata" -date = "2024-11-20" -summary = "Learn how to use metadata.ini files to control page information and behavior" diff --git a/app/default/content/examples/2024-12-15-markdown-demo/index.md b/app/default/content/examples/2024-12-15-markdown-demo/index.md deleted file mode 100644 index 949972c..0000000 --- a/app/default/content/examples/2024-12-15-markdown-demo/index.md +++ /dev/null @@ -1,74 +0,0 @@ -# Markdown Demonstration - -This page shows the full range of Markdown formatting available through Parsedown. - -## Text Formatting - -You can use **bold text**, *italic text*, and even ***bold italic***. - -Use `inline code` for technical terms or file paths like `/app/default/templates/`. - -## Lists - -Unordered lists: - -- First item -- Second item - - Nested item - - Another nested item -- Third item - -Ordered lists: - -1. Step one -2. Step two -3. Step three - -## Links and Images - -Here's a [link to the homepage](/). - -Images work too (when you add them to the folder): - -![Example image](placeholder.jpg) - -## Code Blocks - -```php - This is a blockquote. Perfect for highlighting important information or quotes from other sources. -> -> It can span multiple paragraphs. - -## Tables - -| Feature | Status | -|---------|--------| -| Markdown | ✓ | -| HTML | ✓ | -| PHP | ✓ | -| JavaScript | ✗ | - -## Horizontal Rules - ---- - -That line above is a horizontal rule, useful for separating sections. - -## What You Can Do - -- Write content in simple Markdown -- Mix HTML when needed -- Include images stored alongside your content -- Use all standard Markdown features - -The file for this page is just `index.md` in a dated folder. The date is automatically extracted and displayed. diff --git a/app/default/content/examples/2024-12-15-markdown-demo/index.no.md b/app/default/content/examples/2024-12-15-markdown-demo/index.no.md deleted file mode 100644 index e7edd3a..0000000 --- a/app/default/content/examples/2024-12-15-markdown-demo/index.no.md +++ /dev/null @@ -1,74 +0,0 @@ -# Markdown-demonstrasjon - -Denne siden viser hele utvalget av Markdown-formatering tilgjengelig gjennom Parsedown. - -## Tekstformatering - -Du kan bruke **fet tekst**, *kursiv tekst*, og til og med ***fet kursiv***. - -Bruk `inline kode` for tekniske termer eller filstier som `/app/default/templates/`. - -## Lister - -Uspesifiserte lister: - -- FĂžrste element -- Andre element - - Nestet element - - Enda et nestet element -- Tredje element - -Ordnede lister: - -1. Steg Ă©n -2. Steg to -3. Steg tre - -## Lenker og bilder - -Her er en [lenke til forsiden](/). - -Bilder fungerer ogsĂ„ (nĂ„r du legger dem til i mappen): - -![Eksempelbilde](placeholder.jpg) - -## Kodeblokker - -```php - Dette er et blokksitat. Perfekt for Ă„ fremheve viktig informasjon eller sitater fra andre kilder. -> -> Det kan spenne over flere avsnitt. - -## Tabeller - -| Funksjon | Status | -|---------|--------| -| Markdown | ✓ | -| HTML | ✓ | -| PHP | ✓ | -| JavaScript | ✗ | - -## Horisontale linjer - ---- - -Linjen over er en horisontal linje, nyttig for Ă„ skille seksjoner. - -## Hva du kan gjĂžre - -- Skriv innhold i enkel Markdown -- Bland inn HTML nĂ„r det trengs -- Inkluder bilder lagret sammen med innholdet ditt -- Bruk alle standard Markdown-funksjoner - -Filen for denne siden er bare `index.no.md` i en datert mappe. Datoen blir automatisk hentet ut og vist. diff --git a/app/default/content/examples/2024-12-15-markdown-demo/metadata.ini b/app/default/content/examples/2024-12-15-markdown-demo/metadata.ini deleted file mode 100644 index 94e5c22..0000000 --- a/app/default/content/examples/2024-12-15-markdown-demo/metadata.ini +++ /dev/null @@ -1,2 +0,0 @@ -title = "Markdown Demonstration" -summary = "Shows all the Markdown formatting features available through Parsedown" diff --git a/app/default/content/examples/file-based-routing/index.md b/app/default/content/examples/file-based-routing/index.md deleted file mode 100644 index a1c51bf..0000000 --- a/app/default/content/examples/file-based-routing/index.md +++ /dev/null @@ -1,52 +0,0 @@ -# File-Based Routing - -FolderWeb's routing is beautifully simple: **your folder structure is your URL structure**. No configuration files, no route definitions, no magic strings. - -## How It Works - -When you visit a URL, FolderWeb looks for matching folders and files: - -``` -/content/ -├── index.md → / -├── about/ -│ └── index.md → /about/ -└── blog/ - ├── 2024-11-01-post/ - │ └── index.md → /blog/post/ - └── index.md → /blog/ -``` - -## Automatic Features - -**Folder names become URLs** – Create a folder called `projects` and it's instantly available at `/projects/` - -**Date prefixes are stripped** – `2024-11-01-my-post` becomes `/my-post/` in the URL - -**Custom slugs via metadata** – Override the default URL with `slug = "custom-url"` in `metadata.ini` - -**Trailing slashes** – Directories always redirect to include trailing slashes for consistency - -## Example - -This very page demonstrates file-based routing! The path is: - -``` -app/default/content/examples/file-based-routing/index.md -``` - -Which renders at: - -``` -/examples/file-based-routing/ -``` - -No routes to define. No configuration to update. Just files and folders. - -## Benefits - -- **Intuitive** – If you can navigate folders, you understand the routing -- **Refactor-friendly** – Moving content means moving folders -- **No broken links** – URLs match the filesystem -- **Fast** – No route matching overhead, direct file lookup -- **Predictable** – What you see is what you get diff --git a/app/default/content/examples/file-based-routing/index.no.md b/app/default/content/examples/file-based-routing/index.no.md deleted file mode 100644 index 73387e1..0000000 --- a/app/default/content/examples/file-based-routing/index.no.md +++ /dev/null @@ -1,52 +0,0 @@ -# Filbasert routing - -FolderWebs routing er vakkert enkelt: **mappestrukturen din er URL-strukturen din**. Ingen konfigurasjonsfiler, ingen rutedefinisjon, ingen magiske strenger. - -## Hvordan det fungerer - -NĂ„r du besĂžker en URL, ser FolderWeb etter matchende mapper og filer: - -``` -/content/ -├── index.md → / -├── om/ -│ └── index.md → /om/ -└── blogg/ - ├── 2024-11-01-innlegg/ - │ └── index.md → /blogg/innlegg/ - └── index.md → /blogg/ -``` - -## Automatiske funksjoner - -**Mappenavn blir URL-er** – Lag en mappe kalt `prosjekter` og den er umiddelbart tilgjengelig pĂ„ `/prosjekter/` - -**Datoprefikser fjernes** – `2024-11-01-mitt-innlegg` blir `/mitt-innlegg/` i URL-en - -**Egendefinerte slugs via metadata** – Overstyr standard URL med `slug = "egendefinert-url"` i `metadata.ini` - -**Avsluttende skrĂ„strek** – Kataloger omdirigerer alltid til Ă„ inkludere avsluttende skrĂ„strek for konsistens - -## Eksempel - -Denne siden demonstrerer filbasert routing! Stien er: - -``` -app/default/content/examples/file-based-routing/index.no.md -``` - -Som rendres pĂ„: - -``` -/examples/file-based-routing/ -``` - -Ingen ruter Ă„ definere. Ingen konfigurasjon Ă„ oppdatere. Bare filer og mapper. - -## Fordeler - -- **Intuitivt** – Hvis du kan navigere mapper, forstĂ„r du routingen -- **Refaktorvennlig** – Å flytte innhold betyr Ă„ flytte mapper -- **Ingen Ăždelagte lenker** – URL-er matcher filsystemet -- **Rask** – Ingen rutematching overhead, direkte filoppslag -- **Forutsigbar** – Det du ser er det du fĂ„r diff --git a/app/default/content/examples/file-based-routing/metadata.ini b/app/default/content/examples/file-based-routing/metadata.ini deleted file mode 100644 index 54fe86d..0000000 --- a/app/default/content/examples/file-based-routing/metadata.ini +++ /dev/null @@ -1,3 +0,0 @@ -title = "File-Based Routing" -summary = "Your folder structure is your URL structure—no configuration needed" -date = "2024-11-26" diff --git a/app/default/content/examples/index.md b/app/default/content/examples/index.md deleted file mode 100644 index 4690055..0000000 --- a/app/default/content/examples/index.md +++ /dev/null @@ -1,5 +0,0 @@ -# Examples - -This section demonstrates different content types and features you can use in FolderWeb. - -Each example below shows a different capability. Click through to see the source and how it works. diff --git a/app/default/content/examples/mix-formats/00-intro.md b/app/default/content/examples/mix-formats/00-intro.md deleted file mode 100644 index 26c34f3..0000000 --- a/app/default/content/examples/mix-formats/00-intro.md +++ /dev/null @@ -1,11 +0,0 @@ -# Mix Formats - -FolderWeb lets you **combine different file types** in the same directory. Markdown, HTML, and PHP files can coexist and render together on a single page. - -## Supported Formats - -- **`.md`** – Markdown for content (this file!) -- **`.html`** – Static HTML snippets -- **`.php`** – Dynamic PHP components - -All files in the same directory are rendered in **alphabetical order**. Use number prefixes (like `00-`, `01-`, `02-`) to control the sequence. diff --git a/app/default/content/examples/mix-formats/00-intro.no.md b/app/default/content/examples/mix-formats/00-intro.no.md deleted file mode 100644 index 358eb64..0000000 --- a/app/default/content/examples/mix-formats/00-intro.no.md +++ /dev/null @@ -1,11 +0,0 @@ -# Bland formater - -FolderWeb lar deg **kombinere forskjellige filtyper** i samme katalog. Markdown, HTML og PHP-filer kan eksistere side om side og rendres sammen pĂ„ en enkelt side. - -## StĂžttede formater - -- **`.md`** – Markdown for innhold (denne filen!) -- **`.html`** – Statiske HTML-snippets -- **`.php`** – Dynamiske PHP-komponenter - -Alle filer i samme katalog rendres i **alfabetisk rekkefĂžlge**. Bruk talprefikser (som `00-`, `01-`, `02-`) for Ă„ kontrollere sekvensen. diff --git a/app/default/content/examples/mix-formats/01-html-example.html b/app/default/content/examples/mix-formats/01-html-example.html deleted file mode 100644 index 7324c01..0000000 --- a/app/default/content/examples/mix-formats/01-html-example.html +++ /dev/null @@ -1,11 +0,0 @@ -
-

HTML Component

-

This section is rendered from 01-html-example.html – a static HTML file with inline styles.

-

HTML files are perfect for:

- -
diff --git a/app/default/content/examples/mix-formats/01-html-example.no.html b/app/default/content/examples/mix-formats/01-html-example.no.html deleted file mode 100644 index 32142f6..0000000 --- a/app/default/content/examples/mix-formats/01-html-example.no.html +++ /dev/null @@ -1,11 +0,0 @@ -
-

HTML-komponent

-

Denne seksjonen rendres fra 01-html-example.no.html – en statisk HTML-fil med inline stiler.

-

HTML-filer er perfekte for:

- -
diff --git a/app/default/content/examples/mix-formats/02-dynamic.no.php b/app/default/content/examples/mix-formats/02-dynamic.no.php deleted file mode 100644 index 28277f7..0000000 --- a/app/default/content/examples/mix-formats/02-dynamic.no.php +++ /dev/null @@ -1,41 +0,0 @@ - PHP_VERSION, - 'Servertid' => $currentTime, - 'Filer i denne katalogen' => count(glob(__DIR__ . '/*')), -]; -?> - -
-

PHP-komponent

-

Denne seksjonen rendres fra 02-dynamic.no.php – en dynamisk PHP-fil som kjĂžrer pĂ„ serversiden.

- - - - - - - - - - $value): ?> - - - - - - -
EgenskapVerdi
- -

PHP-filer kan:

- - -

Last inn denne siden pÄ nytt for Ä se servertiden oppdatere seg!

-
diff --git a/app/default/content/examples/mix-formats/02-dynamic.php b/app/default/content/examples/mix-formats/02-dynamic.php deleted file mode 100644 index 7c0e989..0000000 --- a/app/default/content/examples/mix-formats/02-dynamic.php +++ /dev/null @@ -1,41 +0,0 @@ - PHP_VERSION, - 'Server Time' => $currentTime, - 'Files in this directory' => count(glob(__DIR__ . '/*')), -]; -?> - -
-

PHP Component

-

This section is rendered from 02-dynamic.php – a dynamic PHP file that executes server-side.

- - - - - - - - - - $value): ?> - - - - - - -
PropertyValue
- -

PHP files can:

- - -

Refresh this page to see the server time update!

-
diff --git a/app/default/content/examples/mix-formats/03-conclusion.md b/app/default/content/examples/mix-formats/03-conclusion.md deleted file mode 100644 index 00f04f6..0000000 --- a/app/default/content/examples/mix-formats/03-conclusion.md +++ /dev/null @@ -1,38 +0,0 @@ -## Why Mix Formats? - -Different content types have different needs: - -**Markdown** – Fast authoring, readable source, perfect for articles and documentation - -**HTML** – Full control over structure, ideal for custom layouts and embedded media - -**PHP** – Dynamic content, server-side logic, database queries, real-time data - -By mixing them freely, you get the best of all worlds. Write most content in Markdown for speed, add HTML for custom sections, and use PHP when you need dynamic behavior. - -## This Page's Structure - -This very page demonstrates format mixing: - -``` -/examples/mix-formats/ -├── 00-intro.md (Markdown introduction) -├── 01-html-example.html (Static HTML component) -├── 02-dynamic.php (Dynamic PHP component) -├── 03-conclusion.md (Markdown conclusion) -└── metadata.ini (Page metadata) -``` - -All four content files render seamlessly as one cohesive page. The numbered prefixes ensure they appear in the intended order. - -## Use Cases - -**Blog with special sections** – Markdown posts with custom HTML callouts or PHP-generated stats - -**Documentation with demos** – Markdown explanations with live PHP examples - -**Landing pages** – Mix markdown content with custom HTML heroes and PHP dynamic elements - -**Portfolio sites** – Markdown project descriptions with HTML galleries and PHP filtering - -The flexibility is yours. diff --git a/app/default/content/examples/mix-formats/03-conclusion.no.md b/app/default/content/examples/mix-formats/03-conclusion.no.md deleted file mode 100644 index 833aaba..0000000 --- a/app/default/content/examples/mix-formats/03-conclusion.no.md +++ /dev/null @@ -1,38 +0,0 @@ -## Hvorfor blande formater? - -Forskjellige innholdstyper har forskjellige behov: - -**Markdown** – Rask redigering, lesbar kilde, perfekt for artikler og dokumentasjon - -**HTML** – Full kontroll over struktur, ideelt for egendefinerte layout og innebygde medier - -**PHP** – Dynamisk innhold, server-side logikk, databasespĂžrringer, sanntidsdata - -Ved Ă„ blande dem fritt, fĂ„r du det beste fra alle verdener. Skriv mesteparten av innholdet i Markdown for hastighet, legg til HTML for egendefinerte seksjoner, og bruk PHP nĂ„r du trenger dynamisk oppfĂžrsel. - -## Denne sidens struktur - -Denne siden demonstrerer formatblanding: - -``` -/examples/mix-formats/ -├── 00-intro.no.md (Markdown-introduksjon) -├── 01-html-example.no.html (Statisk HTML-komponent) -├── 02-dynamic.no.php (Dynamisk PHP-komponent) -├── 03-conclusion.no.md (Markdown-konklusjon) -└── metadata.ini (Sidemetadata) -``` - -Alle fire innholdsfilene rendres sĂžmlĂžst som Ă©n sammenhengende side. De nummererte prefiksene sikrer at de vises i Ăžnsket rekkefĂžlge. - -## BruksomrĂ„der - -**Blogg med spesialseksjoner** – Markdown-innlegg med egendefinerte HTML-callouts eller PHP-generert statistikk - -**Dokumentasjon med demoer** – Markdown-forklaringer med live PHP-eksempler - -**Landingssider** – Bland markdown-innhold med egendefinerte HTML-heroer og PHP-dynamiske elementer - -**PortefĂžljesider** – Markdown-prosjektbeskrivelser med HTML-gallerier og PHP-filtrering - -Fleksibiliteten er din. diff --git a/app/default/content/examples/mix-formats/metadata.ini b/app/default/content/examples/mix-formats/metadata.ini deleted file mode 100644 index 29e9702..0000000 --- a/app/default/content/examples/mix-formats/metadata.ini +++ /dev/null @@ -1,3 +0,0 @@ -title = "Mix Formats" -summary = "Combine Markdown, HTML, and PHP files to create rich, dynamic pages" -date = "2024-11-26" diff --git a/app/default/content/examples/nested/index.md b/app/default/content/examples/nested/index.md deleted file mode 100644 index 33718dd..0000000 --- a/app/default/content/examples/nested/index.md +++ /dev/null @@ -1,5 +0,0 @@ -# Nested Content - -FolderWeb supports content nested as deep as you need. Your folder structure is your URL structure. - -This section demonstrates multi-level nesting. Explore the subdirectories to see how it works. diff --git a/app/default/content/examples/nested/level-two/index.md b/app/default/content/examples/nested/level-two/index.md deleted file mode 100644 index 8766f2b..0000000 --- a/app/default/content/examples/nested/level-two/index.md +++ /dev/null @@ -1,5 +0,0 @@ -# Level Two - -This is two levels deep: `/examples/nested/level-two/` - -You can organize content in hierarchies that make sense for your site structure. diff --git a/app/default/content/examples/nested/level-two/level-three/index.md b/app/default/content/examples/nested/level-two/level-three/index.md deleted file mode 100644 index a9a3114..0000000 --- a/app/default/content/examples/nested/level-two/level-three/index.md +++ /dev/null @@ -1,5 +0,0 @@ -# Level Three - -This is three levels deep: `/examples/nested/level-two/level-three/` - -The URL structure automatically follows your folder organization. No routing configuration needed. diff --git a/app/default/content/examples/nested/level-two/level-three/level-four/index.md b/app/default/content/examples/nested/level-two/level-three/level-four/index.md deleted file mode 100644 index a2904b0..0000000 --- a/app/default/content/examples/nested/level-two/level-three/level-four/index.md +++ /dev/null @@ -1,29 +0,0 @@ -# Level Four - -Four levels deep: `/examples/nested/level-two/level-three/level-four/` - -## How Deep Can You Go? - -As deep as your filesystem allows. Each folder can contain: - -- Content files (`.md`, `.html`, `.php`) -- Subdirectories (which become sub-URLs) -- Assets (images, PDFs, etc.) -- A `metadata.ini` file -- A `styles.css` file for page-specific styles - -## Navigation - -There's no automatic breadcrumb generation in the default theme, but you can add it in a custom template by parsing the URL path. - -## Use Cases - -**Documentation sites** – Organize by category/subcategory/topic - -**Photo galleries** – Year/month/album/photo - -**Course content** – Course/module/lesson/exercise - -**Product catalogs** – Category/subcategory/product - -The simplicity of file-based routing means your content organization is transparent and portable. diff --git a/app/default/content/examples/no-build-step/index.md b/app/default/content/examples/no-build-step/index.md deleted file mode 100644 index 69caba1..0000000 --- a/app/default/content/examples/no-build-step/index.md +++ /dev/null @@ -1,47 +0,0 @@ -# No Build Step - -Modern web development often involves complex build pipelines: transpilers, bundlers, minifiers, watchers, and more. FolderWeb takes a different approach: **edit a file, refresh the page, see the result**. - -## What This Means - -**No npm install** – No package.json, no node_modules folder, no dependency hell - -**No compilation** – Write PHP, HTML, CSS, and Markdown directly - -**No watching** – No background processes monitoring file changes - -**No bundling** – Files are served as-is, leveraging HTTP/2 multiplexing - -**No transpiling** – Modern PHP 8.4+ and CSS work in all browsers - -## The Development Flow - -Traditional workflow: -``` -Edit file → Save → Wait for build → Reload → See changes -``` - -FolderWeb workflow: -``` -Edit file → Save → Reload → See changes -``` - -That's it. No waiting. No build errors. No cache invalidation headaches. - -## But What About... - -**Performance?** – PHP is fast. No JavaScript means pages load instantly. CSS is cacheable with MD5 versioning. - -**Minification?** – HTTP/2 compression handles this. Serve from behind a CDN if needed. - -**Modern CSS?** – CSS nesting, custom properties, oklch() colors, grid—all native, all supported. - -**Development speed?** – Instant feedback loop beats any hot reload system. - -## Why This Matters - -Build steps add complexity. Every dependency is a potential breaking change. Every tool is another thing to learn, configure, and maintain. - -FolderWeb will work the same way in 5 years, 10 years, even 20 years. Your content is just files. Your templates are just PHP. Your styles are just CSS. - -**Simple lasts.** diff --git a/app/default/content/examples/no-build-step/index.no.md b/app/default/content/examples/no-build-step/index.no.md deleted file mode 100644 index 675a87a..0000000 --- a/app/default/content/examples/no-build-step/index.no.md +++ /dev/null @@ -1,47 +0,0 @@ -# Uten byggesteg - -Moderne webutvikling involverer ofte komplekse byggepipelines: transpilere, bundlere, minifisere, overvĂ„kere og mer. FolderWeb tar en annen tilnĂŠrming: **rediger en fil, oppdater siden, se resultatet**. - -## Hva dette betyr - -**Ingen npm install** – Ingen package.json, ingen node_modules-mappe, ingen avhengighetshelvete - -**Ingen kompilering** – Skriv PHP, HTML, CSS og Markdown direkte - -**Ingen overvĂ„kning** – Ingen bakgrunnsprosesser som overvĂ„ker filendringer - -**Ingen bundling** – Filer serveres som de er, ved Ă„ utnytte HTTP/2-multipleksing - -**Ingen transpilering** – Moderne PHP 8.4+ og CSS fungerer i alle nettlesere - -## Utviklingsflyten - -Tradisjonell arbeidsflyt: -``` -Rediger fil → Lagre → Vent pĂ„ bygg → Last inn pĂ„ nytt → Se endringer -``` - -FolderWeb-arbeidsflyt: -``` -Rediger fil → Lagre → Last inn pĂ„ nytt → Se endringer -``` - -Det er det. Ingen venting. Ingen byggefeil. Ingen cache-invalideringshodebryet. - -## Men hva med... - -**Ytelse?** – PHP er rask. Ingen JavaScript betyr at sider lastes Ăžyeblikkelig. CSS er cachebar med MD5-versjonering. - -**Minifisering?** – HTTP/2-kompresjon hĂ„ndterer dette. Server fra bak en CDN om nĂždvendig. - -**Moderne CSS?** – CSS-nesting, custom properties, oklch()-farger, grid—alt native, alt stĂžttet. - -**Utviklingshastighet?** – Øyeblikkelig tilbakemeldingsslĂžyfe slĂ„r ethvert hot reload-system. - -## Hvorfor dette betyr noe - -Byggesteg legger til kompleksitet. Hver avhengighet er en potensiell breaking change. Hvert verktĂžy er noe nytt Ă„ lĂŠre, konfigurere og vedlikeholde. - -FolderWeb vil fungere pĂ„ samme mĂ„te om 5 Ă„r, 10 Ă„r, til og med 20 Ă„r. Innholdet ditt er bare filer. Malene dine er bare PHP. Stilene dine er bare CSS. - -**Enkelt varer.** diff --git a/app/default/content/examples/no-build-step/metadata.ini b/app/default/content/examples/no-build-step/metadata.ini deleted file mode 100644 index aeef2e9..0000000 --- a/app/default/content/examples/no-build-step/metadata.ini +++ /dev/null @@ -1,3 +0,0 @@ -title = "No Build Step" -summary = "Edit, save, refresh—that's it. No compilation, no bundling, no waiting" -date = "2024-11-26" diff --git a/app/default/content/examples/templates-demo/compact-example/2024-10-10-oldest-post/index.md b/app/default/content/examples/templates-demo/compact-example/2024-10-10-oldest-post/index.md deleted file mode 100644 index 0269bef..0000000 --- a/app/default/content/examples/templates-demo/compact-example/2024-10-10-oldest-post/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# Oldest Post - -The oldest post in this compact list. diff --git a/app/default/content/examples/templates-demo/compact-example/2024-11-15-older-post/index.md b/app/default/content/examples/templates-demo/compact-example/2024-11-15-older-post/index.md deleted file mode 100644 index 634aeb5..0000000 --- a/app/default/content/examples/templates-demo/compact-example/2024-11-15-older-post/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# Older Post - -An older post showing date ordering. diff --git a/app/default/content/examples/templates-demo/compact-example/2024-12-01-recent-post/index.md b/app/default/content/examples/templates-demo/compact-example/2024-12-01-recent-post/index.md deleted file mode 100644 index 70d8cc0..0000000 --- a/app/default/content/examples/templates-demo/compact-example/2024-12-01-recent-post/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# Recent Post - -A recent example post. diff --git a/app/default/content/examples/templates-demo/compact-example/index.md b/app/default/content/examples/templates-demo/compact-example/index.md deleted file mode 100644 index 552ee94..0000000 --- a/app/default/content/examples/templates-demo/compact-example/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# Compact Template - -This section uses `list-compact.php` for a minimal, clean list view. diff --git a/app/default/content/examples/templates-demo/compact-example/metadata.ini b/app/default/content/examples/templates-demo/compact-example/metadata.ini deleted file mode 100644 index a98e845..0000000 --- a/app/default/content/examples/templates-demo/compact-example/metadata.ini +++ /dev/null @@ -1,4 +0,0 @@ -title = "Compact Template Example" - -[settings] -page_template = "list-compact" diff --git a/app/default/content/examples/templates-demo/grid-example/index.md b/app/default/content/examples/templates-demo/grid-example/index.md deleted file mode 100644 index 33a8ba9..0000000 --- a/app/default/content/examples/templates-demo/grid-example/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# Grid Template - -This section uses `list-grid.php` to display items in a responsive grid with cards. diff --git a/app/default/content/examples/templates-demo/grid-example/item-one/index.md b/app/default/content/examples/templates-demo/grid-example/item-one/index.md deleted file mode 100644 index 91c74d9..0000000 --- a/app/default/content/examples/templates-demo/grid-example/item-one/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# Grid Item One - -This is an example item in the grid layout. diff --git a/app/default/content/examples/templates-demo/grid-example/item-one/metadata.ini b/app/default/content/examples/templates-demo/grid-example/item-one/metadata.ini deleted file mode 100644 index 39293ad..0000000 --- a/app/default/content/examples/templates-demo/grid-example/item-one/metadata.ini +++ /dev/null @@ -1 +0,0 @@ -summary = "First item demonstrating grid layout" diff --git a/app/default/content/examples/templates-demo/grid-example/item-three/index.md b/app/default/content/examples/templates-demo/grid-example/item-three/index.md deleted file mode 100644 index 5e945e1..0000000 --- a/app/default/content/examples/templates-demo/grid-example/item-three/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# Grid Item Three - -A third item to show the grid layout with multiple items. diff --git a/app/default/content/examples/templates-demo/grid-example/item-three/metadata.ini b/app/default/content/examples/templates-demo/grid-example/item-three/metadata.ini deleted file mode 100644 index db23a37..0000000 --- a/app/default/content/examples/templates-demo/grid-example/item-three/metadata.ini +++ /dev/null @@ -1 +0,0 @@ -summary = "Third grid item" diff --git a/app/default/content/examples/templates-demo/grid-example/item-two/index.md b/app/default/content/examples/templates-demo/grid-example/item-two/index.md deleted file mode 100644 index bf06247..0000000 --- a/app/default/content/examples/templates-demo/grid-example/item-two/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# Grid Item Two - -Another example showing how items appear in the grid. diff --git a/app/default/content/examples/templates-demo/grid-example/item-two/metadata.ini b/app/default/content/examples/templates-demo/grid-example/item-two/metadata.ini deleted file mode 100644 index d32da37..0000000 --- a/app/default/content/examples/templates-demo/grid-example/item-two/metadata.ini +++ /dev/null @@ -1 +0,0 @@ -summary = "Second item in the grid" diff --git a/app/default/content/examples/templates-demo/grid-example/metadata.ini b/app/default/content/examples/templates-demo/grid-example/metadata.ini deleted file mode 100644 index 958c6a0..0000000 --- a/app/default/content/examples/templates-demo/grid-example/metadata.ini +++ /dev/null @@ -1,4 +0,0 @@ -title = "Grid Template Example" - -[settings] -page_template = "list-grid" diff --git a/app/default/content/examples/templates-demo/index.md b/app/default/content/examples/templates-demo/index.md deleted file mode 100644 index e6a777d..0000000 --- a/app/default/content/examples/templates-demo/index.md +++ /dev/null @@ -1,24 +0,0 @@ -# List Templates - -FolderWeb includes several list templates you can use for different presentation styles. - -This section demonstrates the different templates by using subdirectories. Each subdirectory below uses a different template via `metadata.ini`. - -## Available Templates - -**list.php** – Default linear list with optional cover images - -**list-grid.php** – Grid layout with cards, great for galleries or portfolios - -**list-compact.php** – Minimal list showing just titles and dates - -## Choosing a Template - -In any folder's `metadata.ini`, add: - -```ini -[settings] -page_template = "list-grid" -``` - -The three subdirectories below each use a different template. Compare them to see which fits your content best. diff --git a/app/default/content/front.md b/app/default/content/front.md new file mode 100644 index 0000000..27fddd9 --- /dev/null +++ b/app/default/content/front.md @@ -0,0 +1,11 @@ +# Welcome to FolderWeb + +This is the default content. Replace it by adding your own files to the `content/` directory. + +Your folder structure becomes your site structure — create a folder, drop in a `.md`, `.html`, or `.php` file, and it's a page. + +## Getting Started + +1. Create a `content/` directory in your project root +2. Copy `app/default/` to `custom/` to start customizing +3. Add content files and refresh the browser diff --git a/app/default/content/front.no.md b/app/default/content/front.no.md new file mode 100644 index 0000000..58f86ef --- /dev/null +++ b/app/default/content/front.no.md @@ -0,0 +1,11 @@ +# Velkommen til FolderWeb + +Dette er standardinnholdet. Erstatt det ved Ă„ legge til egne filer i `content/`-mappen. + +Mappestrukturen din blir nettstedets struktur — opprett en mappe, legg inn en `.md`-, `.html`- eller `.php`-fil, og den blir en side. + +## Kom i gang + +1. Opprett en `content/`-mappe i prosjektets rotmappe +2. Kopier `app/default/` til `custom/` for Ă„ begynne Ă„ tilpasse +3. Legg til innholdsfiler og oppdater nettleseren diff --git a/app/default/content/multilingual/index.en.md b/app/default/content/multilingual/index.en.md deleted file mode 100644 index 0fa5c7b..0000000 --- a/app/default/content/multilingual/index.en.md +++ /dev/null @@ -1,53 +0,0 @@ -# Multilingual Support - -**Currently viewing: English (EN)** - -This page demonstrates FolderWeb's built-in language support. Use the language switcher in the header to toggle between **EN** and **NO** - the page content will change to match your selected language. - -## How It Works - -Creating multilingual content is straightforward: - -1. **Add language codes to filenames** – Create `index.en.md` and `index.no.md` -2. **Language switcher appears automatically** – When multiple versions exist -3. **URLs get language prefixes** – Non-default languages use `/en/page/`, `/no/page/`, etc. -4. **Share metadata** – One `metadata.ini` file per directory works for all languages - -## File Structure Example - -``` -/content/about/ -├── index.en.md # English version -├── index.no.md # Norwegian version -└── metadata.ini # Shared metadata -``` - -## Configuration - -Enable languages in `/app/default/config.ini`: - -```ini -[languages] -default = "en" -available = "en,no" -``` - -## Translation Strings - -UI text comes from language files in `/app/default/languages/`: - -```ini -; en.ini -home = "Home" -read_more = "Read more" - -; no.ini -home = "Hjem" -read_more = "Les mer" -``` - -Translation strings are optional—templates fall back to sensible defaults if missing. - -## Try It - -Use the language switcher in the header to toggle between English and Norwegian versions of this page. The content stays the same, just translated. diff --git a/app/default/content/multilingual/index.no.md b/app/default/content/multilingual/index.no.md deleted file mode 100644 index a610b23..0000000 --- a/app/default/content/multilingual/index.no.md +++ /dev/null @@ -1,53 +0,0 @@ -# FlersprĂ„klig stĂžtte - -**Viser nĂ„: Norsk (NO)** - -Denne siden demonstrerer FolderWebs innebygde sprĂ„kstĂžtte. Bruk sprĂ„kvelgeren i headeren for Ă„ bytte mellom **EN** og **NO** - sideinnholdet vil endre seg til Ă„ matche det valgte sprĂ„ket. - -## Slik fungerer det - -Å opprette flersprĂ„klig innhold er enkelt: - -1. **Legg til sprĂ„kkoder i filnavn** – Opprett `index.en.md` og `index.no.md` -2. **SprĂ„kvelgeren vises automatisk** – NĂ„r flere versjoner finnes -3. **URL-er fĂ„r sprĂ„kprefikser** – Ikke-standardsprĂ„k bruker `/en/side/`, `/no/side/`, osv. -4. **Del metadata** – Én `metadata.ini`-fil per katalog fungerer for alle sprĂ„k - -## Eksempel pĂ„ filstruktur - -``` -/content/om/ -├── index.en.md # Engelsk versjon -├── index.no.md # Norsk versjon -└── metadata.ini # Delt metadata -``` - -## Konfigurasjon - -Aktiver sprĂ„k i `/app/default/config.ini`: - -```ini -[languages] -default = "en" -available = "en,no" -``` - -## Oversettelsesstrenger - -UI-tekst kommer fra sprĂ„kfiler i `/app/default/languages/`: - -```ini -; en.ini -home = "Home" -read_more = "Read more" - -; no.ini -home = "Hjem" -read_more = "Les mer" -``` - -Oversettelsesstrenger er valgfrie—maler faller tilbake til fornuftige standardverdier hvis de mangler. - -## PrĂžv det - -Bruk sprĂ„kvelgeren i headeren for Ă„ bytte mellom engelske og norske versjoner av denne siden. Innholdet forblir det samme, bare oversatt. diff --git a/app/default/content/multilingual/metadata.ini b/app/default/content/multilingual/metadata.ini deleted file mode 100644 index 66a04f1..0000000 --- a/app/default/content/multilingual/metadata.ini +++ /dev/null @@ -1,2 +0,0 @@ -title = "Multilingual Support" -summary = "Learn how to create content in multiple languages"