diff --git a/README.md b/README.md
index c9424b9..f909d1f 100644
--- a/README.md
+++ b/README.md
@@ -1,21 +1,26 @@
-
+
+
+
+
-A customizable Laravel content-management system. (Currently in beta.)
+A customizable Laravel content-management system.
-## Live Examples
+You can see it working at [Nono.MA](https://nono.ma), [Getting Simple](https://gettingsimple.com), [Burns.art](https://burns.art), [RCA Media Studies](https://ms.rca-architecture.com), or [Luis Ruiz Padrón](https://luisruiz.es).
-[Nono.MA](https://nono.ma) | [Getting Simple](https://gettingsimple.com) | [Lourdes.AC](https://lourdes.ac) | [AR-MA](https://ar-ma.net) | [Getting Architecture Done](http://gettingarchitecturedone.com/writing) | [Nacho.MA](https://nacho.ma) | [Burns.art](https://burns.art) | [RCA Media Studies](https://ms.rca-architecture.com) | [Luis Ruiz Padrón](https://luisruiz.es)
+## Installation · Laravel 9.x
-## Installation · Laravel 8.x
-
-- Add alternate VCS repos for packages without Laravel 8 support to `composer.json`.
+- Add alternate VCS repos for packages without Laravel 9.x support to `composer.json`.
```json
"repositories": [
{
"type": "vcs",
"url": "https://github.com/nonoesp/laravel-imgix"
- }
+ },
+ {
+ "type": "vcs",
+ "url": "https://github.com/macpaw/laravel-feed"
+ }
],
```
@@ -71,7 +76,7 @@ php artisan vendor:publish --provider="Nonoesp\Folio\FolioServiceProvider" --tag
## Other
- Subscriber email notifications can be configured in `folio.subscribers` and setting up Amazon SES in `services.ses`.
-- Backups can be configured by adding disks to `backup.destination.disks` (having those disks configured in `filesystems`, say [Dropbox](https://www.dropbox.com/developers/apps), Digital Ocean, or S3).
+- Backups can be configured by adding disks to `backup.destination.disks` (having those disks configured in `filesystems`, say [Dropbox](https://www.dropbox.com/developers/apps), DigitalOcean, or AWS S3).
## License
@@ -79,11 +84,11 @@ Folio is licensed under the [MIT license](http://opensource.org/licenses/MIT).
## Me
-Hi. I'm [Nono Martínez Alonso](https://nono.ma/about) (Nono.MA), a computational designer with a penchant for simplicity.
+Hi. I'm [Nono Martínez Alonso](https://nono.ma/about) (Nono.MA), a creative technologist with a penchant for simplicity.
-I host [Getting Simple](https://gettingsimple.com)—a podcast about how you can live a meaningful, creative, simple life—[sketch](https://sketch.nono.ma) things that call my attention, [write](https://gettingsimple.com/writing) about enjoying a slower life, and recently started [live streaming and recording videos](https://youtube.com/NonoMartinezAlonso) on machine learning, life hacking, and more.
+I host [Getting Simple](https://gettingsimple.com) — a podcast about simple living, lifestyle design, technology, and culture — [sketch](https://sketch.nono.ma) things that call my attention, [write](https://gettingsimple.com/writing) about enjoying a slower life, and record creative coding and machine intelligence [live streams](https://youtube.com/NonoMartinezAlonso) on YouTube.
-[Join the Discord community](https://nono.ma/discord).
+[Join us on Discord](https://nono.ma/discord). 🗣
If you find Folio useful in any way, reach out on Twitter at [@nonoesp](https://twitter.com/nonoesp). Cheers!
@@ -97,3 +102,4 @@ If you find Folio useful in any way, reach out on Twitter at [@nonoesp](https://
✍🏻 [Blog](https://nono.ma)
🐦 [Twitter](https://twitter.com/nonoesp)
📸 [Instagram](https://instagram.com/nonoesp)
+📸 [YouTube](https://youtube.com/NonoMartinezAlonso)
diff --git a/assets/folio-dark@2x.gif b/assets/folio-dark@2x.gif
new file mode 100644
index 0000000..c00b268
Binary files /dev/null and b/assets/folio-dark@2x.gif differ
diff --git a/assets/folio-light@2x.gif b/assets/folio-light@2x.gif
new file mode 100644
index 0000000..5a47098
Binary files /dev/null and b/assets/folio-light@2x.gif differ
diff --git a/assets/folio@2x.gif b/assets/folio@2x.gif
deleted file mode 100644
index d272d1d..0000000
Binary files a/assets/folio@2x.gif and /dev/null differ
diff --git a/composer.json b/composer.json
index a506e50..b82cd8f 100644
--- a/composer.json
+++ b/composer.json
@@ -12,8 +12,12 @@
{
"type": "vcs",
"url": "https://github.com/nonoesp/laravel-imgix"
+ },
+ {
+ "type": "vcs",
+ "url": "https://github.com/macpaw/laravel-feed"
}
- ],
+ ],
"autoload": {
"psr-4": {
"Nonoesp\\Folio\\": "src"
@@ -21,35 +25,36 @@
},
"minimum-stability": "dev",
"require": {
- "php": "^8.0.1|^7.3.0",
- "illuminate/support": "^8.0",
+ "php": "^8.0.2",
+ "illuminate/support": "^9.11.0",
"aws/aws-sdk-php": "~3.0",
- "graham-campbell/markdown": "^13.0.0",
+ "macpaw/feed": "^9.0.0",
+ "graham-campbell/markdown": "^14.0-dev",
"jenssegers/date": "^4.0.0",
"laravelcollective/html": "^6.0",
- "laravelium/feed": "^8.0.0",
- "league/flysystem-aws-s3-v3": "^1.0@dev",
+ "league/flysystem-aws-s3-v3": "^3.x-dev",
"michelf/php-markdown": "^1.9",
"mtownsend/read-time": "^2.0.0",
- "spatie/eloquent-sortable": "^3.8",
- "spatie/laravel-translatable": "^4.3",
+ "spatie/eloquent-sortable": "^4.0.1",
+ "spatie/laravel-translatable": "^6.0.0",
"spatie/regex": "^1.4",
"spatie/laravel-feed": "^4.0",
"spatie/dropbox-api": "^1.12",
- "spatie/laravel-sitemap": "^5.7",
- "spatie/flysystem-dropbox": "^1.2",
- "spatie/laravel-backup": "^6.8",
- "spatie/laravel-searchable": "dev-main",
+ "spatie/laravel-sitemap": "^6.1",
+ "spatie/flysystem-dropbox": "^2.0.6",
+ "spatie/laravel-backup": "^8.1.2",
+ "spatie/laravel-searchable": "^1.11.0",
"spatie/laravel-newsletter": "^4.8",
- "rap2hpoutre/laravel-log-viewer": "^1.4",
+ "rap2hpoutre/laravel-log-viewer": "^2.2",
"rtconner/laravel-tagging": "~4.0",
"symfony/intl": "^5.0",
"hashids/hashids": "^4.0.0",
- "nasyrov/laravel-imgix": "8.x-dev",
+ "nasyrov/laravel-imgix": "9.x-dev",
"mpociot/versionable": "^4.0.0",
"laravel/ui": "^3.0",
"spatie/laravel-honeypot": "^4.0",
- "johannebert/laravel-spam-protector": "^6.1"
+ "johannebert/laravel-spam-protector": "dev-master",
+ "wnx/commonmark-mark-extension": "^1.1"
},
"require-dev": {
"phpunit/phpunit": "^9.0"
@@ -58,8 +63,7 @@
"laravel": {
"providers": [
"Nonoesp\\Folio\\FolioServiceProvider",
- "Nonoesp\\Folio\\Providers\\DropboxServiceProvider",
- "Nonoesp\\Folio\\Providers\\SpacesServiceProvider"
+ "Nonoesp\\Folio\\Providers\\DropboxServiceProvider"
],
"aliases": {
"Folio": "Nonoesp\\Folio\\Facades\\Folio",
diff --git a/resources/views/admin/upload/list.blade.php b/resources/views/admin/upload/list.blade.php
index f0ce349..7d18d28 100644
--- a/resources/views/admin/upload/list.blade.php
+++ b/resources/views/admin/upload/list.blade.php
@@ -29,6 +29,7 @@
$images = [];
$videos = [];
$animations = [];
+ $otherFiles = [];
@endphp
@foreach($filenames as $filename)
@@ -44,19 +45,22 @@
$isVideo = in_array($extension, ['mp4', 'mov', 'webm']);
$isAnimation = in_array($extension, ['gif']);
+ $isImage = in_array($extension, ['jpeg', 'jpg', 'svg', 'png', 'tiff', 'bmp', 'webp']);
if ($isVideo) {
// Videos
array_push($videos, $filename);
- continue;
} else if ($isAnimation) {
// Animations
array_push($animations, $filename);
- continue;
+ } else if ($isImage) {
+ // Images
+ array_push($images, $filename);
+ } else {
+ // Other files
+ array_push($otherFiles, $filename);
}
- // Images
- array_push($images, $filename);
@endphp
@endforeach
@@ -98,7 +102,7 @@
{{ $basename }}
·
- ╳
+ ╳
@endforeach
@@ -156,7 +160,7 @@
@endif
-
+ {{-- Videos --}}
@if(count($videos))
@@ -176,15 +180,13 @@
// Construct file path
// $filePath = Folio::upload($basename);
- $image = Folio::uploadUrl($basename);
+ $video = Folio::uploadUrl($basename);
// $image = config('folio.imgix') ? imgix($filePath) : Folio::mediaUrl($filePath);
@endphp
+
+ @endif
+
@if(!count($images) && !count($videos))
diff --git a/resources/views/layout-v2.blade.php b/resources/views/layout-v2.blade.php
index 46607bb..81b3848 100644
--- a/resources/views/layout-v2.blade.php
+++ b/resources/views/layout-v2.blade.php
@@ -52,7 +52,8 @@
{{ $title }}
-
+
+
diff --git a/resources/views/legacy/partial/c-footer__credits.blade.php b/resources/views/legacy/partial/c-footer__credits.blade.php
index 722be87..d9062fe 100644
--- a/resources/views/legacy/partial/c-footer__credits.blade.php
+++ b/resources/views/legacy/partial/c-footer__credits.blade.php
@@ -2,7 +2,7 @@
if(!isset($text)) {
$footer = config('folio.footer');
$text = null;
- if($footer['credits_text']) {
+ if ($footer && array_key_exists('credits_text', $footer)) {
$text = $footer['credits_text'];
}
}
@@ -15,6 +15,19 @@
@if($text)
+ @php
+ $text = str_replace(
+ [
+ '{year}',
+ '{footer-text}',
+ ],
+ [
+ Item::formatDate(Date::now(), 'Y'),
+ trans('folio.footer-text'),
+ ],
+ $text);
+ @endphp
+
{!! $text !!}
@else
diff --git a/resources/views/legacy/template/_base-v2.blade.php b/resources/views/legacy/template/_base-v2.blade.php
index 05e671b..a449087 100644
--- a/resources/views/legacy/template/_base-v2.blade.php
+++ b/resources/views/legacy/template/_base-v2.blade.php
@@ -89,7 +89,7 @@
$og_description = $item->stringProperty('meta-description', $og_description);
}
$og_type = 'article';
- $og_url = $item->permalink();
+ $og_url = $og_url ?? $item->permalink();
$apple_touch_icon = $item->stringProperty('apple-touch-icon');
?>
diff --git a/resources/views/partial/c-footer-v2.blade.php b/resources/views/partial/c-footer-v2.blade.php
index f42f314..f70fd65 100644
--- a/resources/views/partial/c-footer-v2.blade.php
+++ b/resources/views/partial/c-footer-v2.blade.php
@@ -12,7 +12,7 @@
$subscribe_hidden = $subscribe_hidden ?? config('folio.subscribe.hidden');
@endphp
-