Compare commits

...

17 Commits

Author SHA1 Message Date
e155e96ff4 updating Laravel model to add events and variables in class name for docblock 2022-10-26 13:15:27 -06:00
bbac3cc205 adding Dashboard to inertia render path 2022-10-26 13:14:54 -06:00
329fd2b11e adding row spacing on form block 2022-10-26 13:14:26 -06:00
886cdc47e6 cleanup of vue component 2022-10-26 13:14:01 -06:00
91063a69d9 removing anchor to version on pdoc 2022-10-26 13:13:52 -06:00
7da1325b1f adding some to the docblocks for Laravel models 2022-10-04 10:17:18 -06:00
6c15670077 adding with property to Laravel model 2022-09-01 15:21:15 -06:00
e2721c6f7d modifying the picture element 2022-08-24 11:22:00 -06:00
cf0f19edd7 adding a package namespace to PHP docblock 2022-08-24 11:21:35 -06:00
a662c6b38e making Vue component have two spaces for tab 2022-08-24 11:21:14 -06:00
baf5d5c8c7 fixing Laravel controller flash message 2022-08-24 11:20:44 -06:00
3b6285a359 adding slots method, variables section, and stubbing out lifecycle hooks 2022-07-19 13:36:17 -06:00
66f8bde4a5 adding docblock and escaping dollar sign 2022-07-19 13:35:45 -06:00
3adc226ad5 adding a few meta tags, script for getting system preference for dark mode 2022-07-19 13:35:22 -06:00
dcc1318a84 adding some more things to ignore by default 2022-07-19 13:34:55 -06:00
7cbc4e1ef3 adding various meta tags, updating some others 2022-07-19 13:34:33 -06:00
2f396e54ac tweaking some index workers and padding 2022-07-19 13:33:50 -06:00
10 changed files with 165 additions and 91 deletions

View File

@ -5,6 +5,7 @@
"color_scheme": "Packages/Material Theme/schemes/Material-Theme.tmTheme", "color_scheme": "Packages/Material Theme/schemes/Material-Theme.tmTheme",
"control_character_style": "names", "control_character_style": "names",
"copy_with_empty_selection": false, "copy_with_empty_selection": false,
"default_line_ending": "unix",
"fallback_encoding": "UTF-8", "fallback_encoding": "UTF-8",
"folder_exclude_patterns": "folder_exclude_patterns":
[ [
@ -24,13 +25,15 @@
[ [
"dlig" "dlig"
], ],
"git_diff_target": "head",
"hardware_acceleration": "opengl", "hardware_acceleration": "opengl",
"highlight_modified_tabs": true, "highlight_modified_tabs": true,
"ignored_packages": "ignored_packages":
[ [
"Vintage", "Vintage",
], ],
"line_padding_bottom": 2, "index_workers": 4,
"line_padding_bottom": 3,
"line_padding_top": 2, "line_padding_top": 2,
"material_theme_accent_cyan": true, "material_theme_accent_cyan": true,
"material_theme_bold_tab": true, "material_theme_bold_tab": true,
@ -40,5 +43,6 @@
"show_line_endings": true, "show_line_endings": true,
"theme": "Material-Theme.sublime-theme", "theme": "Material-Theme.sublime-theme",
"translate_tabs_to_spaces": true, "translate_tabs_to_spaces": true,
"font_size": 9, /*"font_size": 9,*/
/*"font_size": 11,*/
} }

View File

@ -5,7 +5,9 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">
<!-- Set the base URL for all relative URLs within the document -->
<base href="{{ url('/') }}">
<meta name="robots" content="index,follow"> <meta name="robots" content="index,follow">
<meta name="googlebot" content="index,follow"> <meta name="googlebot" content="index,follow">
@ -19,14 +21,15 @@
<meta name="rating" content="General"> <meta name="rating" content="General">
<meta name="url" content="{{ url('/') }}"> <meta name="url" content="{{ url('/') }}">
<meta name="subject" content="{{$pageSubject ?? "your website's subject" }}""> <meta name="subject" content="{{ \$pageSubject ?? "your website's subject" }}"">
<meta name="description" content="{{ $pageDescription ?? 'A description of the page' }}"> <meta name="description" content="{{ \$pageDescription ?? 'A description of the page' }}">
<title>{{ config('app.name', 'Laravel') }}</title> <title>{{ config('app.name', 'Laravel') }}</title>
<meta name="application-name" content="Application Name"> <meta name="application-name" content="{{ config('app.name', 'Laravel') }}">
<!-- Privacy --> <!-- Privacy -->
<meta name="twitter:dnt" content="on"> <meta name="twitter:dnt" content="on">
<meta name="pinterest" content="nopin" description="No pinning allowed.">
<!-- analytics --> <!-- analytics -->
<!-- --> <!-- -->
@ -48,23 +51,25 @@
<link href="{{ url('fonts/fontfam/font.woff2') }}" rel="preload" as="font" type="font/woff2" crossorigin="anonymous"> <link href="{{ url('fonts/fontfam/font.woff2') }}" rel="preload" as="font" type="font/woff2" crossorigin="anonymous">
<!-- Styles --> <!-- Styles -->
<link href="{{ mix('css/app.css') }}" rel="stylesheet" media="all" integrity="{{ env('INTEGRITY_HASH_APP_CSS') }}"> <link href="{{ mix('/css/app.css') }}" rel="stylesheet" media="all" integrity="{{ env('INTEGRITY_HASH_APP_CSS') }}">
@yield('css') @yield('css')
<!-- Scripts --> <!-- Scripts -->
<script> <script>
if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) { if (localStorage.theme === "dark" || (!("theme" in localStorage) && window.matchMedia("(prefers-color-scheme: dark)").matches)) {
document.documentElement.classList.remove('light') document.documentElement.classList.add("dark"); localStorage.theme = "dark";
document.documentElement.classList.add('dark') } else {
document.documentElement.classList.remove("dark"); localStorage.theme = "light";
} }
</script> </script>
@routes @routes
<script src="{{ mix('js/app.js') }}" integrity="{{ env('INTEGRITY_HASH_APP_JS') }}" defer></script> <script src="{{ mix('/js/app.js') }}" integrity="{{ env('INTEGRITY_HASH_APP_JS') }}" defer></script>
@inertiaHead @inertiaHead
</head> </head>
<body class="font-sans antialiased"> <body class="font-sans antialiased">
@inertia @inertia
</body> </body>

View File

@ -1,6 +1,6 @@
<snippet> <snippet>
<content><![CDATA[ <content><![CDATA[
<div class="grid auto-rows-max gap-y-0"> <div class="grid auto-rows-max gap-y-1">
<label for="${1:foo}" class="">${2:Foo}</label> <label for="${1:foo}" class="">${2:Foo}</label>
<input type="${3:text}" id="${1:foo}" name="${1:foo}" value="" class="" placeholder="${4:placeholder text}"> <input type="${3:text}" id="${1:foo}" name="${1:foo}" value="" class="" placeholder="${4:placeholder text}">
<p>Input error</p> <p>Input error</p>

View File

@ -8,24 +8,26 @@
docker-compose.override.yml docker-compose.override.yml
Homestead.json Homestead.json
Homestead.yaml Homestead.yaml
auth.json
npm-debug.log npm-debug.log
yarn-error.log yarn-error.log
/storage/*.key /storage/*.key
# Directories # Directories
/node_modules /node_modules
/public/build
/public/hot /public/hot
/public/storage /public/storage
/vendor /vendor
### Editor Specific ### Editor Specific
# Files # Files
${1:*}.sublime-project /*.sublime-project
${1:*}.sublime-workspace /*.sublime-workspace
# Directories # Directories
.idea /.idea
.vscode /.vscode
### System Specific ### System Specific
# Files # Files

View File

@ -6,6 +6,9 @@
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Set the base URL for all relative URLs within the document -->
<base href="https://example.com/">
<meta name="robots" content="index,follow"> <meta name="robots" content="index,follow">
<meta name="googlebot" content="index,follow"> <meta name="googlebot" content="index,follow">
@ -25,6 +28,7 @@
<!-- Privacy --> <!-- Privacy -->
<meta name="twitter:dnt" content="on"> <meta name="twitter:dnt" content="on">
<meta name="pinterest" content="nopin" description="No pinning allowed.">
<!-- analytics --> <!-- analytics -->
<!-- --> <!-- -->
@ -62,14 +66,21 @@
<link href="https://example.com/css/print.css" rel="stylesheet" media="print"> <link href="https://example.com/css/print.css" rel="stylesheet" media="print">
<!-- JS that must be executed before the document is loaded --> <!-- JS that must be executed before the document is loaded -->
<script>
if (localStorage.theme === "dark" || (!("theme" in localStorage) && window.matchMedia("(prefers-color-scheme: dark)").matches)) {
document.documentElement.classList.add("dark"); localStorage.theme = "dark";
} else {
document.documentElement.classList.remove("dark"); localStorage.theme = "light";
}
</script>
<script src="https://example.com/js/vendor/axios.min.js" defer></script> <script src="https://example.com/js/vendor/axios.min.js" defer></script>
<script src="https://example.com/js/vendor/vue.min.js" defer></script> <script src="https://example.com/js/vendor/vue.min.js" defer></script>
<script src="https://example.com/js/app.js" defer></script> <script src="https://example.com/js/app.js" defer></script>
<!-- -->
</head> </head>
<body class="font-sans antialiased"> <body class="font-sans antialiased">
<div id="app" class="min-h-screen bg-neutral-100"> <div id="app" class="min-h-screen bg-neutral-100">
<!-- --> <!-- content here -->
</div> </div>
</body> </body>
</html> </html>

View File

@ -9,7 +9,7 @@ public function index(Request \$request)
'all${2:Models}' => ${1:Model}::where('user_id', \$request->user()->id)->paginate(), 'all${2:Models}' => ${1:Model}::where('user_id', \$request->user()->id)->paginate(),
]; ];
return Inertia::render('${2:Models}/Index')->with(\$data); return Inertia::render('Dashboard/${2:Models}/Index')->with(\$data);
} }
public function show(${1:Model} \$${4:model}) public function show(${1:Model} \$${4:model})
@ -18,14 +18,14 @@ public function show(${1:Model} \$${4:model})
'${4:model}' => \$${4:model}, '${4:model}' => \$${4:model},
]; ];
return Inertia::render('${2:Models}/Show')->with(\$data); return Inertia::render('Dashboard/${2:Models}/Show')->with(\$data);
} }
public function create() public function create()
{ {
\$data = []; \$data = [];
return Inertia::render('${2:Models}/Create')->with(\$data); return Inertia::render('Dashboard/${2:Models}/Create')->with(\$data);
} }
public function store(Request \$request) public function store(Request \$request)
@ -48,7 +48,7 @@ public function edit(Request \$request, ${1:Model} \$${4:model})
'${4:model}' => \$${4:model}, '${4:model}' => \$${4:model},
]; ];
return Inertia::render('${2:Models}/Edit')->with(\$data); return Inertia::render('Dashboard/${2:Models}/Edit')->with(\$data);
} }
public function update(Request \$request, ${1:Model} \$${4:model}) public function update(Request \$request, ${1:Model} \$${4:model})
@ -60,7 +60,7 @@ public function update(Request \$request, ${1:Model} \$${4:model})
return redirect()->route('dashboard.${3:models}.index')->with('status', "Successfully updated {\$${4:model}->${5:field}}."); return redirect()->route('dashboard.${3:models}.index')->with('status', "Successfully updated {\$${4:model}->${5:field}}.");
} }
\$request->session()->flash('flash', ['bannerStyle' => 'danger', 'banner' => "Unable to update ${4:model}."]); \$request->session()->flash('flash', ['bannerStyle' => 'danger', 'banner' => "Unable to update {\$${4:model}->${5:field}}."]);
return redirect()->back()->with('error', "Unable to update {\$${4:model}->${5:field}}."); return redirect()->back()->with('error', "Unable to update {\$${4:model}->${5:field}}.");
} }

View File

@ -1,25 +1,30 @@
<snippet> <snippet>
<content><![CDATA[ <content><![CDATA[
use App\Models\Traits\HasUidTrait; use App\Events\${1:Model}Created;
use App\Events\${1:Model}Creating;
use App\Events\${1:Model}Deleted;
use App\Events\${1:Model}Deleting;
use App\Events\${1:Model}Deleting;
use App\Events\${1:Model}Replicating;
use App\Events\${1:Model}Restored;
use App\Events\${1:Model}Restoring;
use App\Events\${1:Model}Retrieved;
use App\Events\${1:Model}Saved;
use App\Events\${1:Model}Saving;
use App\Events\${1:Model}Updated;
use App\Events\${1:Model}Updating;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Prunable; use Illuminate\Database\Eloquent\Prunable;
use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Laravel\Scout\Searchable; use Laravel\Scout\Searchable;
use HasUidTrait;
use Prunable; use Prunable;
use Searchable; use Searchable;
/** @var string */ /** @var string */
protected \$table = ''; protected \$table = '';
/** @var string */
protected \$keyType = 'string';
/** @var bool */
public \$incrementing = false;
/** @var array<int,string> */ /** @var array<int,string> */
protected \$fillable = []; protected \$fillable = [];
@ -35,13 +40,30 @@ protected \$dates = [];
/** @var array<int,string> */ /** @var array<int,string> */
protected \$appends = []; protected \$appends = [];
/** @var array<int,string> */
protected \$with = [];
/** @var array<int,string> */ /** @var array<int,string> */
protected \$touches = []; protected \$touches = [];
/** @var array<int,string> */ /** @var array<int,string> */
protected \$dispatchesEvents = []; protected \$dispatchesEvents = [
//'retrieved' => ${1:Model}Retrieved::class,
//'creating' => ${1:Model}Creating::class,
//'created' => ${1:Model}Created::class,
//'updating' => ${1:Model}Updating::class,
//'updated' => ${1:Model}Updated::class,
//'deleting' => ${1:Model}Deleting::class,
//'deleted' => ${1:Model}Deleted::class,
//'deleting' => ${1:Model}Deleting::class,
//'saving' => ${1:Model}Saving::class,
//'saved' => ${1:Model}Saved::class,
//'restoring' => ${1:Model}Restoring::class,
//'restored' => ${1:Model}Restored::class,
//'replicating' => ${1:Model}Replicating::class,
];
/* /**
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Class Constants | Class Constants
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -50,7 +72,7 @@ protected \$dispatchesEvents = [];
// //
/* /**
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Custom/Private Methods | Custom/Private Methods
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -60,18 +82,20 @@ protected \$dispatchesEvents = [];
/** /**
* Get the prunable model query. * Get the prunable model query.
* *
* @package App\Models\${1:Model}
* @since 1.0.0 * @since 1.0.0
* *
* @return \Illuminate\Database\Eloquent\Builder * @return \Illuminate\Database\Eloquent\Builder
*/ */
public function prunable(): Builder public function prunable(): Builder
{ {
//return static::where('created_at', '<=', now()->subMonth()); // return static::where('deleted_at', '<=', now()->subMonth());
} }
/** /**
* Prepare the model for pruning. * Prepare the model for pruning.
* *
* @package App\Models\${1:Model}
* @since 1.0.0 * @since 1.0.0
* *
* @return void * @return void
@ -84,6 +108,7 @@ protected function pruning(): void
/** /**
* Get the value used to index the model. * Get the value used to index the model.
* *
* @package App\Models\${1:Model}
* @since 1.0.0 * @since 1.0.0
* *
* @return mixed * @return mixed
@ -96,6 +121,7 @@ public function getScoutKey()
/** /**
* Get the key name used to index the model. * Get the key name used to index the model.
* *
* @package App\Models\${1:Model}
* @since 1.0.0 * @since 1.0.0
* *
* @return string * @return string
@ -108,18 +134,20 @@ public function getScoutKeyName(): string
/** /**
* Get the name of the index associated with the model. * Get the name of the index associated with the model.
* *
* @package App\Models\${1:Model}
* @since 1.0.0 * @since 1.0.0
* *
* @return string * @return string
*/ */
public function searchableAs(): string public function searchableAs(): string
{ {
return 'models_index'; return 'prefix_models_index';
} }
/** /**
* Get the indexable data array for the model. * Get the indexable data array for the model.
* *
* @package App\Models\${1:Model}
* @since 1.0.0 * @since 1.0.0
* *
* @return array * @return array
@ -133,7 +161,7 @@ public function toSearchableArray(): array
return \$payload; return \$payload;
} }
/* /**
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Accessors | Accessors
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -143,6 +171,7 @@ public function toSearchableArray(): array
/** /**
* An accessor. * An accessor.
* *
* @package App\Models\${1:Model}
* @since 1.0.0 * @since 1.0.0
* *
* @return \Illuminate\Database\Eloquent\Casts\Attribute * @return \Illuminate\Database\Eloquent\Casts\Attribute
@ -155,7 +184,7 @@ protected function attrName(): Attribute
); );
} }
/* /**
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Mutators | Mutators
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -164,7 +193,7 @@ protected function attrName(): Attribute
// //
/* /**
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Scopes | Scopes
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -173,16 +202,24 @@ protected function attrName(): Attribute
// //
/* /**
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Relationships | Relationships
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| |
*/ */
/**
* Something relationship.
*
* @package App\Models\${1:Model}
* @since 1.0.0
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function something(): BelongsTo public function something(): BelongsTo
{ {
return $this->belongsTo( return \$this->belongsTo(
related: Something::class, related: Something::class,
foreignKey: 'something_id', foreignKey: 'something_id',
); );

View File

@ -1,15 +1,16 @@
<snippet> <snippet>
<content><![CDATA[ <content><![CDATA[
/** /**
* ${1:Description} * ${1:Description}.
* *
* @since ${5:1.0.0} * @package Namespace\App\Class
* @since 1.0.0
* *
* @param ${2:datatype} ${3:\$variable} * @param ${2:datatype} ${3:\$variable}
* *
* @throws ${4:\Exception} * @throws ${4:\Exception}
* *
* @return ${6:void} * @return ${5:void}
*/ */
]]></content> ]]></content>
<!-- Optional: Set a tabTrigger to define how to trigger the snippet --> <!-- Optional: Set a tabTrigger to define how to trigger the snippet -->

View File

@ -1,47 +1,42 @@
<snippet> <snippet>
<content><![CDATA[ <content><![CDATA[
<picture> <picture>
<source type="image/avif" <!-- https://github.com/nucliweb/image-element -->
srcset=" <source
${1:imageName}-640w.avif 640w, sizes="550px, (max-width: 768px) calc(100vw - 3em), (max-width: 1376px) calc(50vw - 8em)"
${1:imageName}-1280w.avif 1280w, srcset="${1:imageName}-640w.jpg 640w, ${1:imageName}-1280w.jpg 1280w, ${1:imageName}-1920w.jpg 1920w"
${1:imageName}-1920w.avif 1920w type="image/jxl">
"
sizes="
550px,
(max-width: 768px) calc(100vw - 3em),
(max-width: 1376px) calc(50vw - 8em)
">
<source type="image/webp" <source
srcset=" sizes="550px, (max-width: 768px) calc(100vw - 3em), (max-width: 1376px) calc(50vw - 8em)"
${1:imageName}.webp?w=100&fm=webp 100w, srcset="${1:imageName}-640w.avif 640w, ${1:imageName}-1280w.avif 1280w, ${1:imageName}-1920w.avif 1920w"
${1:imageName}.webp?w=200&fm=webp 200w, type="image/avif">
{1:imageName}.webp
"
sizes="
550px,
(max-width: 768px) calc(100vw - 3em),
(max-width: 1376px) calc(50vw - 8em)
">
<img <source
srcset=" sizes="550px, (max-width: 768px) calc(100vw - 3em), (max-width: 1376px) calc(50vw - 8em)"
${1:imageName}.jpg?w=100&fm=jpg&fl=progressive 100w, srcset="${1:imageName}-640w.webp?w=100&fm=webp 100w, ${1:imageName}-1280w.webp?w=200&fm=webp 200w, ${1:imageName}.webp"
${1:imageName}.jpg?w=200&fm=jpg&fl=progressive 200w, type="image/webp">
${1:imageName}.jpg
" <source
sizes=" sizes="550px, (max-width: 768px) calc(100vw - 3em), (max-width: 1376px) calc(50vw - 8em)"
550px, srcset="${1:imageName}-640w.jpg 640w, ${1:imageName}-1280w.jpg 1280w, ${1:imageName}-1920w.jpg 1920w"
(max-width: 768px) calc(100vw - 3em), type="image/jpeg">
(max-width: 1376px) calc(50vw - 8em)
" <img
src="${1:imageName}.jpg" sizes="550px, (max-width: 768px) calc(100vw - 3em), (max-width: 1376px) calc(50vw - 8em)"
alt="${1:imageName}" srcset="${1:imageName}.jpg?w=100&fm=jpg&fl=progressive 100w, ${1:imageName}.jpg?w=200&fm=jpg&fl=progressive 200w, ${1:imageName}.jpg"
loading="lazy" src="${1:imageName}.jpg"
decoding="async" alt="${1:imageName}"
width="{{ $width }}" <!--
height="{{ $height }}"> loading="lazy"
decoding="async"
-->
<!--
fetchpriority="high"
decoding="sync"
-->
width="{{ \$width }}"
height="{{ \$height }}">
</picture> </picture>
]]></content> ]]></content>
<!-- Optional: Set a tabTrigger to define how to trigger the snippet --> <!-- Optional: Set a tabTrigger to define how to trigger the snippet -->

View File

@ -1,14 +1,14 @@
<snippet> <snippet>
<content><![CDATA[ <content><![CDATA[
<script setup> <script setup>
import { useAttrs, reactive, ref, computed, watch, onBeforeMount, onMounted, provide, inject } from 'vue' import { useAttrs, useSlots, reactive, ref, computed, watch, onBeforeMount, onMounted, onBeforeUpdate, onBeforeUnmount, onUnmounted, provide, inject } from 'vue'
import { useForm, usePage } from '@inertiajs/inertia-vue3' import { Head, Link, useForm, usePage } from '@inertiajs/inertia-vue3'
import AppLayout from '@/Layouts/AppLayout.vue' import AppLayout from '@/Layouts/AppLayout.vue'
const emit = defineEmits([]) // defines
defineEmits([])
const attrs = useAttrs()
// variables
const props = defineProps({}) const props = defineProps({})
// computed properties // computed properties
@ -16,19 +16,38 @@ const props = defineProps({})
// watchers // watchers
// lifecycle hooks // lifecycle hooks
onBeforeMount(() => {
//
})
onMounted(() => {
//
})
onBeforeUpdate(() => {
//
})
onBeforeUnmount(() => {
//
})
onUnmounted(() => {
//
})
// methods // methods
</script> </script>
<template> <template>
<app-layout title="${1:TITLE}"> <AppLayout title="${1:TITLE}">
<template #header>${1:TITLE}</template> <template #header>${1:TITLE}</template>
<div class="col-span-6"> <div class="col-span-12">
<!-- content goes here --> <!-- content goes here -->
</div> </div>
</app-layout> </AppLayout>
</template> </template>
]]></content> ]]></content>