სრულყოფილი კოდი, 5 AI და 0 დეველოპერი
არ გეგონოთ, რომ ეს ადვილი საქმე იყო... არც "პრომტებზე" ლაპარაკით ღირს თავის შეწყენა.
მთავარი აღმოჩნდა მოტივაცია, რომ კოდი „საუკეთესო ყოფილიყო“, ხოლო აზარტი იმდენად დიდი იყო, რომ შეიწირა 7 დღე და ღამე...
რა შეიძლება გირჩიოთ? არავითარ შემთხვევაში არ გამოიყენო მხოლოდ ერთი ან თუნდაც ორი AI...
ეს კოდი შექმნილია ადამიანის მიერ, რომელმაც საერთოდ არ იცის პროგრამირების ენა, მაგრამ მან მოახერხა, ერთმანეთს დანასისხლად გადაკიდა და ფაქტიურად აომა: Grok, Claude-ის, GPT-ს, Gemini-ს და DeepSeek, რათა მათი დახმარებით შევქმენი სრულად გაფართოებადი Schema.org-ის არქიტექტურა, რომელსაც 2025 წლის ბოლოსთვის ყველაზე სტაბილურია ქართულ ვებ სივრცეში.
Schema.org სრული კოდი - 13 ფაილი
graph = new Graph();
$this->siteId = url('/');
}
}
?>
position($position++)
->name($crumb['name'])
->item($crumb['url'] ?? url()->current());
}
return Schema::breadcrumbList()
->itemListElement($items);
}
}
?>
86400,
'default_image' => 'images/default.jpg',
'categories' => [
1 => ['type' => 'Article'],
101 => ['type' => 'Poem'],
168 => ['type' => 'Recipe'],
129 => ['type' => 'Quiz'],
]
];
?>
setProperty('@id', url()->current() . '#article')
->headline($content->title ?? 'Untitled')
->description($content->meta_description ?? '')
->image($image);
}
}
?>
setProperty('@id', url()->current() . '#recipe')
->name($content->title ?? 'Recipe')
->description($content->excerpt ?? '')
->image($image);
}
}
?>
<?php
namespace AppServicesSchemaGenerators;
use SpatieSchemaOrgSchema;
class QuizSchema {
public static function make($content, $image, $author, $config) {
$quiz = Schema::quiz()
->setProperty('@id', url()->current() . '#quiz')
->name($content->title ?? 'Quiz')
->description($content->description ?? 'Quiz');
if (!empty($content->questions)) {
$questions = collect($content->questions)->take(10)->map(function($q, $i) {
return Schema::question()
->name($q['text'] ?? 'Question')
->acceptedAnswer(Schema::answer()->text($q['correct_answer'] ?? ''));
})->toArray();
$quiz->hasPart($questions);
}
return $quiz;
}
}
?>
<?php
namespace AppServicesSchemaGenerators;
use SpatieSchemaOrgSchema;
class LiterarySchema {
public static function make($content, $image, $author, $type) {
$schema = ($type === 'Poem')
? Schema::creativeWork()->additionalType('https://schema.org/Poem')
: Schema::creativeWork();
return $schema
->setProperty('@id', url()->current() . '#work')
->name($content->title ?? 'Untitled')
->description($content->excerpt ?? '')
->image($image)
->author($author ?? Schema::person()->name('Author'))
->genre($type === 'Poem' ? 'Poetry' : 'Prose');
}
}
?>
<?php
namespace AppServicesSchemaGenerators;
use SpatieSchemaOrgSchema;
class EducationSchema {
public static function make($content, $image, $author, $config) {
return Schema::learningResource()
->setProperty('@id', url()->current() . '#learning')
->name($content->title ?? 'Learning Material')
->description($content->description ?? 'Learning material')
->image($image)
->educationalLevel($config['level'] ?? 'School');
}
}
?>
<?php
namespace AppServicesSchemaGenerators;
use SpatieSchemaOrgSchema;
class HoroscopeSchema {
public static function make($content, $image, $config) {
return Schema::creativeWork()
->setProperty('@id', url()->current() . '#horoscope')
->name($content->title ?? 'Horoscope')
->description($content->body ?? 'Daily horoscope')
->image($image)
->temporalCoverage(date('Y-m-d'))
->genre('Horoscope');
}
}
?>
<?php
namespace AppServicesSchemaGenerators;
use SpatieSchemaOrgSchema;
class VideoSchema {
public static function make($content, $image, $author) {
return Schema::videoObject()
->setProperty('@id', url()->current() . '#video')
->name($content->title ?? 'Video')
->description($content->description ?? 'Video')
->thumbnailUrl($content->thumb_image ?? 'default.jpg')
->uploadDate(date('c'))
->duration($content->duration ?? 'PT5M');
}
}
?>
<?php
namespace AppServicesSchemaGenerators;
use SpatieSchemaOrgSchema;
class ReviewSchema {
public static function make($content, $image, $author, $config) {
$review = Schema::review()
->setProperty('@id', url()->current() . '#review')
->name($content->title ?? 'Review')
->description($content->description ?? 'Review')
->image($image);
if (!empty($content->review_rating)) {
$review->reviewRating(
Schema::rating()
->ratingValue((string) $content->review_rating)
->bestRating('10')
->worstRating('1')
);
}
return $review;
}
}
?>
<?php
namespace AppServicesSchemaEntities;
use SpatieSchemaOrgSchema;
class PersonSchema {
public static function make($person, $works = null) {
$schema = Schema::person()
->setProperty('@id', url()->current() . '#person')
->name($person->name ?? 'Unknown Author')
->description($person->bio ?? 'Author profile')
->knowsAbout(['Literature', 'Poetry', 'Prose', 'Local Culture']);
if (!empty($person->wikidata_url)) {
$schema->sameAs([$person->wikidata_url]);
}
return $schema;
}
}
?>
@props(['content', 'breadcrumbs' => null])
@php
if (!$breadcrumbs && isset($content)) {
$breadcrumbs = [];
$breadcrumbs[] = ['name' => 'Home', 'url' => url('/')];
if (!empty($content->category)) {
$breadcrumbs[] = [
'name' => $content->category->name ?? 'Category',
'url' => url($content->category->slug ?? '#')
];
}
$breadcrumbs[] = [
'name' => $content->title ?? 'Content',
'url' => url()->current()
];
}
@endphp
{!! AppServicesSchemaMasterService::renderFor($content, $breadcrumbs ?? []) !!}
















