diff --git a/.env.example b/.env.example index 638b883..feb3053 100644 --- a/.env.example +++ b/.env.example @@ -25,3 +25,7 @@ MAIL_PASSWORD=null MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS="hello@example.com" MAIL_FROM_NAME="${APP_NAME}" + +PUBLISHING_NAME="Word Salad" +SUBHEAD="A blog with an as yet unclear direction." +CONTACT_EMAIL="test@example.org" diff --git a/config/blog.php b/config/blog.php index ca93208..f176b9a 100644 --- a/config/blog.php +++ b/config/blog.php @@ -11,7 +11,7 @@ return [ | */ - 'publishing_name' => 'Jon\'s Words', + 'publishing_name' => env('PUBLISHING_NAME', 'Word Salad'), /* |-------------------------------------------------------------------------- @@ -22,6 +22,17 @@ return [ | */ - 'subheading' => 'A blog with an as yet unclear direction.', + 'subheading' => env('SUBHEAD', 'A blog with an as yet unclear direction.'), + + /* + |-------------------------------------------------------------------------- + | Contact Email + |-------------------------------------------------------------------------- + | + | The public-facing email displayed in general contact and support areas of the blog + | + */ + + 'contact_email' => env('CONTACT_EMAIL', 'test@example.org'), ]; diff --git a/public/robots.txt b/public/robots.txt index eb05362..f8794ac 100644 --- a/public/robots.txt +++ b/public/robots.txt @@ -1,2 +1,68 @@ -User-agent: * -Disallow: +# Block all known AI crawlers and assistants +# from using content for training AI models. +# Source: https://robotstxt.com/ai +User-Agent: GPTBot +User-Agent: ClaudeBot +User-Agent: Claude-User +User-Agent: Claude-SearchBot +User-Agent: CCBot +User-Agent: Google-Extended +User-Agent: Applebot-Extended +User-Agent: Facebookbot +User-Agent: Meta-ExternalAgent +User-Agent: Meta-ExternalFetcher +User-Agent: diffbot +User-Agent: PerplexityBot +User-Agent: Perplexity‑User +User-Agent: Omgili +User-Agent: Omgilibot +User-Agent: webzio-extended +User-Agent: ImagesiftBot +User-Agent: Bytespider +User-Agent: TikTokSpider +User-Agent: Amazonbot +User-Agent: Youbot +User-Agent: SemrushBot-OCOB +User-Agent: Petalbot +User-Agent: VelenPublicWebCrawler +User-Agent: TurnitinBot +User-Agent: Timpibot +User-Agent: OAI-SearchBot +User-Agent: ICC-Crawler +User-Agent: AI2Bot +User-Agent: AI2Bot-Dolma +User-Agent: DataForSeoBot +User-Agent: AwarioBot +User-Agent: AwarioSmartBot +User-Agent: AwarioRssBot +User-Agent: Google-CloudVertexBot +User-Agent: PanguBot +User-Agent: Kangaroo Bot +User-Agent: Sentibot +User-Agent: img2dataset +User-Agent: Meltwater +User-Agent: Seekr +User-Agent: peer39_crawler +User-Agent: cohere-ai +User-Agent: cohere-training-data-crawler +User-Agent: DuckAssistBot +User-Agent: Scrapy +User-Agent: Cotoyogi +User-Agent: aiHitBot +User-Agent: Factset_spyderbot +User-Agent: FirecrawlAgent + +Disallow: / +DisallowAITraining: / + +# Block any non-specified AI crawlers (e.g., new +# or unknown bots) from using content for training +# AI models, while allowing the website to be +# indexed and accessed by bots. These directives +# are still experimental and may not be supported +# by all AI crawlers. +User-Agent: * +DisallowAITraining: / +Content-Usage: ai=n +Allow: / + diff --git a/public/word-salad.css b/public/word-salad.css index f176d8d..ed33e1e 100644 --- a/public/word-salad.css +++ b/public/word-salad.css @@ -4,7 +4,13 @@ body { /* background-color: #813d9c; /* Old Purple */ - background-color: #2d033e; /* New Purple */ + /* background-color: #2d033e; /* New Solid Purple */ + /* + * Created with https://www.css-gradient.com + * Gradient link: https://www.css-gradient.com/?c1=550b73&c2=2e033e>=r&gd=dcl + */ + background: #550B73; + background: radial-gradient(at left center, #550B73, #2E033E); color: white; text-shadow: 1px 1px 2px blueviolet; margin: 0; @@ -15,6 +21,16 @@ main { justify-content: center; } +main a { + color: #ff9344; + text-decoration: none; +} + +main a:hover { + text-decoration: aliceblue; + text-decoration-line: underline; +} + article { max-width: 60vw; } @@ -23,6 +39,17 @@ article { article { max-width: 90vw; } + + main { + flex-direction: column; + padding: 0 1.25em; + } +} + +@media screen and (min-width: 1250px) { + #recent-articles-list { + margin-left: 3em; + } } a { @@ -45,16 +72,19 @@ nav { justify-content: space-between; } +#nav-logo { + padding: 1em; +} + #nav-logo > a { text-decoration: none; color: #ff9344; - font-size: x-large; + font-size: xx-large; font-weight: bold; - margin: 0.3em; } #article-header-separator { - width: 60%; + width: 70%; color: white; margin: 2em auto; } @@ -64,10 +94,12 @@ footer { min-height: 7em; display: flex; justify-content: center; + flex-direction: column; + align-items: center; } #subscribe-form { - border-radius: 1.5em; + border-radius: 0.5em; border-color: white; border-style: solid; border-width: 1px; @@ -87,9 +119,64 @@ footer { flex-direction: column; } +#subscribe-form input { + padding: 0.5em; +} + #subscribe-button { background-color: #ff9344; color: white; + font-weight: bold; + border-radius: 0.5em; + cursor: pointer; +} + +#blog-head { + display: flex; + flex-direction: column; + justify-content: center; + align-items: end; + margin: 0.5em; +} + +#blog-head h1 { + font-size: 2.6em; +} + +#blog-head h2 { + margin-top: 0; +} + +.article-peek dl { + display: flex; + gap: 0.5em; + align-items: baseline; +} + +.article-peek dd { + margin: 0 2em 0 0.25em; +} + +.article-peek dt { + font-size: small; + font-weight: lighter; +} + +#recent-articles-list { + padding: 0 1em; +} + +#recent-articles-list h3 { + margin-bottom: 0.75em; + font-size: 120%; +} + +#recent-articles-list h4 { + margin: 0.25em 0; +} + +#recent-articles-list article { + margin-bottom: 2.5em; } /* .bubble-panel { @@ -99,3 +186,34 @@ footer { 33px -33px 65px #9c4abd; padding: 2em; }*/ + + +/* Create a custom animation */ +@keyframes move-out { + from { + transform: translateY(0%); + } + + to { + transform: translateY(-100%); + } +} + +@keyframes move-in { + from { + transform: translateY(100%); + } + + to { + transform: translateY(0%); + } +} + +/* Apply the custom animation to the old and new page states */ +::view-transition-old(root) { + animation: 0.4s ease-in both move-out; +} + +::view-transition-new(root) { + animation: 0.4s ease-in both move-in; +} \ No newline at end of file diff --git a/resources/views/guest/home.blade.php b/resources/views/guest/home.blade.php index 0bb78b9..f970324 100644 --- a/resources/views/guest/home.blade.php +++ b/resources/views/guest/home.blade.php @@ -4,13 +4,13 @@ @section('content')
-

{{ config('blog.publishing_name') }}

-

{{ config('blog.subheading') }}

+

{{ config('blog.publishing_name') }}

+

{{ config('blog.subheading') }}

-
+
@if(count($articles) > 0) @foreach($articles as $article) -
+ @endforeach {{-- diff --git a/resources/views/guest/main-nav.blade.php b/resources/views/guest/main-nav.blade.php index cdc1a8b..28cd970 100644 --- a/resources/views/guest/main-nav.blade.php +++ b/resources/views/guest/main-nav.blade.php @@ -1,5 +1,5 @@