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"