premier commit
This commit is contained in:
@@ -0,0 +1,25 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
quote_type = single
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
|
[*.php]
|
||||||
|
indent_size = 4
|
||||||
|
|
||||||
|
[*.blade.php]
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
[resources/views/**.php]
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
[index.php]
|
||||||
|
indent_size = 2
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
/node_modules
|
||||||
|
/vendor
|
||||||
|
/public
|
||||||
|
.env
|
||||||
|
.budfiles
|
||||||
|
npm-debug.log
|
||||||
|
yarn-error.log
|
||||||
+19
@@ -0,0 +1,19 @@
|
|||||||
|
Copyright (c) Roots Software Foundation LLC
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||||
|
of the Software, and to permit persons to whom the Software is furnished to do
|
||||||
|
so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
<p align="center">
|
||||||
|
<a href="https://roots.io/sage/">
|
||||||
|
<img alt="Sage" src="https://cdn.roots.io/app/uploads/logo-sage.svg" height="100">
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://packagist.org/packages/roots/sage">
|
||||||
|
<img alt="Packagist Installs" src="https://img.shields.io/packagist/dt/roots/sage?label=projects%20created&colorB=2b3072&colorA=525ddc&style=flat-square">
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a href="https://github.com/roots/sage/actions/workflows/main.yml">
|
||||||
|
<img alt="Build Status" src="https://img.shields.io/github/actions/workflow/status/roots/sage/main.yml?branch=main&logo=github&label=CI&style=flat-square">
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a href="https://twitter.com/rootswp">
|
||||||
|
<img alt="Follow Roots" src="https://img.shields.io/badge/follow%20@rootswp-1da1f2?logo=twitter&logoColor=ffffff&message=&style=flat-square">
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">Advanced WordPress starter theme with Tailwind CSS and Laravel Blade</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://roots.io/sage/">Website</a> <a href="https://roots.io/sage/docs/installation/">Documentation</a> <a href="https://github.com/roots/sage/releases">Releases</a> <a href="https://discourse.roots.io/">Community</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
## Sponsors
|
||||||
|
|
||||||
|
Sage is an open source project and completely free to use. If you've benefited from our projects and would like to support our future endeavors, please consider [sponsoring Roots](https://github.com/sponsors/roots).
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<a href="https://k-m.com/"><img src="https://cdn.roots.io/app/uploads/km-digital.svg" alt="KM Digital" width="120" height="90"></a> <a href="https://carrot.com/"><img src="https://cdn.roots.io/app/uploads/carrot.svg" alt="Carrot" width="120" height="90"></a> <a href="https://wordpress.com/"><img src="https://cdn.roots.io/app/uploads/wordpress.svg" alt="WordPress.com" width="120" height="90"></a> <a href="https://pantheon.io/"><img src="https://cdn.roots.io/app/uploads/pantheon.svg" alt="Pantheon" width="120" height="90"></a> <a href="https://worksitesafety.ca/careers/"><img src="https://cdn.roots.io/app/uploads/worksite-safety.svg" alt="Worksite Safety" width="120" height="90"></a> <a href="https://www.copiadigital.com/"><img src="https://cdn.roots.io/app/uploads/copia-digital.svg" alt="Copia Digital" width="120" height="90"></a> <a href="https://generodigital.com/"><img src="https://cdn.roots.io/app/uploads/genero.svg" alt="Genero" width="120" height="90"></a> <a href="https://40q.agency/"><img src="https://cdn.roots.io/app/uploads/40q.svg" alt="40Q" width="120" height="90"></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
Sage is a WordPress starter theme with block editor support.
|
||||||
|
|
||||||
|
- Harness the power of [Laravel](https://laravel.com) and its available packages thanks to [Acorn](https://github.com/roots/acorn)
|
||||||
|
- Clean, efficient theme templating utilizing [Laravel Blade](https://laravel.com/docs/master/blade)
|
||||||
|
- Modern frontend development workflow powered by [Bud](https://bud.js.org/)
|
||||||
|
- Out of the box support for [Tailwind CSS](https://tailwindcss.com/)
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
See the [Sage installation documentation](https://roots.io/sage/docs/installation/).
|
||||||
|
|
||||||
|
## Stay Connected
|
||||||
|
|
||||||
|
- Join us on Discord by [sponsoring us on GitHub](https://github.com/sponsors/roots)
|
||||||
|
- Participate on [Roots Discourse](https://discourse.roots.io/)
|
||||||
|
- Follow [@rootswp on Twitter](https://twitter.com/rootswp)
|
||||||
|
- Read the [Roots Blog](https://roots.io/blog/)
|
||||||
|
- Subscribe to the [Roots Newsletter](https://roots.io/newsletter/)
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Providers;
|
||||||
|
|
||||||
|
use Roots\Acorn\Sage\SageServiceProvider;
|
||||||
|
|
||||||
|
class ThemeServiceProvider extends SageServiceProvider
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Register any application services.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
parent::register();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Bootstrap any application services.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function boot()
|
||||||
|
{
|
||||||
|
parent::boot();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\View\Components;
|
||||||
|
|
||||||
|
use Roots\Acorn\View\Component;
|
||||||
|
|
||||||
|
class Alert extends Component
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The alert type.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The alert message.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $message;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The alert types.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
public $types = [
|
||||||
|
'default' => 'text-indigo-50 bg-indigo-400',
|
||||||
|
'success' => 'text-green-50 bg-green-400',
|
||||||
|
'caution' => 'text-yellow-50 bg-yellow-400',
|
||||||
|
'warning' => 'text-red-50 bg-red-400',
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create the component instance.
|
||||||
|
*
|
||||||
|
* @param string $type
|
||||||
|
* @param string $message
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct($type = 'default', $message = null)
|
||||||
|
{
|
||||||
|
$this->type = $this->types[$type] ?? $this->types['default'];
|
||||||
|
$this->message = $message;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the view / contents that represent the component.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\View\View|string
|
||||||
|
*/
|
||||||
|
public function render()
|
||||||
|
{
|
||||||
|
return $this->view('components.alert');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\View\Composers;
|
||||||
|
|
||||||
|
use Roots\Acorn\View\Composer;
|
||||||
|
|
||||||
|
class App extends Composer
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* List of views served by this composer.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected static $views = [
|
||||||
|
'*',
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Data to be passed to view before rendering.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function with()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'siteName' => $this->siteName(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the site name.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function siteName()
|
||||||
|
{
|
||||||
|
return get_bloginfo('name', 'display');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\View\Composers;
|
||||||
|
|
||||||
|
use Roots\Acorn\View\Composer;
|
||||||
|
|
||||||
|
class Post extends Composer
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* List of views served by this composer.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected static $views = [
|
||||||
|
'partials.page-header',
|
||||||
|
'partials.content',
|
||||||
|
'partials.content-*',
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Data to be passed to view before rendering, but after merging.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function override()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'title' => $this->title(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the post title.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function title()
|
||||||
|
{
|
||||||
|
if ($this->view->name() !== 'partials.page-header') {
|
||||||
|
return get_the_title();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_home()) {
|
||||||
|
if ($home = get_option('page_for_posts', true)) {
|
||||||
|
return get_the_title($home);
|
||||||
|
}
|
||||||
|
|
||||||
|
return __('Latest Posts', 'sage');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_archive()) {
|
||||||
|
return get_the_archive_title();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_search()) {
|
||||||
|
return sprintf(
|
||||||
|
/* translators: %s is replaced with the search query */
|
||||||
|
__('Search Results for %s', 'sage'),
|
||||||
|
get_search_query()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_404()) {
|
||||||
|
return __('Not Found', 'sage');
|
||||||
|
}
|
||||||
|
|
||||||
|
return get_the_title();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Theme filters.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add "… Continued" to the excerpt.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
add_filter('excerpt_more', function () {
|
||||||
|
return sprintf(' … <a href="%s">%s</a>', get_permalink(), __('Continued', 'sage'));
|
||||||
|
});
|
||||||
+136
@@ -0,0 +1,136 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Theme setup.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use function Roots\bundle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register the theme assets.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
add_action('wp_enqueue_scripts', function () {
|
||||||
|
bundle('app')->enqueue();
|
||||||
|
}, 100);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register the theme assets with the block editor.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
add_action('enqueue_block_editor_assets', function () {
|
||||||
|
bundle('editor')->enqueue();
|
||||||
|
}, 100);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register the initial theme setup.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
add_action('after_setup_theme', function () {
|
||||||
|
/**
|
||||||
|
* Enable features from the Soil plugin if activated.
|
||||||
|
*
|
||||||
|
* @link https://roots.io/plugins/soil/
|
||||||
|
*/
|
||||||
|
add_theme_support('soil', [
|
||||||
|
'clean-up',
|
||||||
|
'nav-walker',
|
||||||
|
'nice-search',
|
||||||
|
'relative-urls',
|
||||||
|
]);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disable full-site editing support.
|
||||||
|
*
|
||||||
|
* @link https://wptavern.com/gutenberg-10-5-embeds-pdfs-adds-verse-block-color-options-and-introduces-new-patterns
|
||||||
|
*/
|
||||||
|
remove_theme_support('block-templates');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register the navigation menus.
|
||||||
|
*
|
||||||
|
* @link https://developer.wordpress.org/reference/functions/register_nav_menus/
|
||||||
|
*/
|
||||||
|
register_nav_menus([
|
||||||
|
'primary_navigation' => __('Primary Navigation', 'sage'),
|
||||||
|
]);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disable the default block patterns.
|
||||||
|
*
|
||||||
|
* @link https://developer.wordpress.org/block-editor/developers/themes/theme-support/#disabling-the-default-block-patterns
|
||||||
|
*/
|
||||||
|
remove_theme_support('core-block-patterns');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enable plugins to manage the document title.
|
||||||
|
*
|
||||||
|
* @link https://developer.wordpress.org/reference/functions/add_theme_support/#title-tag
|
||||||
|
*/
|
||||||
|
add_theme_support('title-tag');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enable post thumbnail support.
|
||||||
|
*
|
||||||
|
* @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/
|
||||||
|
*/
|
||||||
|
add_theme_support('post-thumbnails');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enable responsive embed support.
|
||||||
|
*
|
||||||
|
* @link https://developer.wordpress.org/block-editor/how-to-guides/themes/theme-support/#responsive-embedded-content
|
||||||
|
*/
|
||||||
|
add_theme_support('responsive-embeds');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enable HTML5 markup support.
|
||||||
|
*
|
||||||
|
* @link https://developer.wordpress.org/reference/functions/add_theme_support/#html5
|
||||||
|
*/
|
||||||
|
add_theme_support('html5', [
|
||||||
|
'caption',
|
||||||
|
'comment-form',
|
||||||
|
'comment-list',
|
||||||
|
'gallery',
|
||||||
|
'search-form',
|
||||||
|
'script',
|
||||||
|
'style',
|
||||||
|
]);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enable selective refresh for widgets in customizer.
|
||||||
|
*
|
||||||
|
* @link https://developer.wordpress.org/reference/functions/add_theme_support/#customize-selective-refresh-widgets
|
||||||
|
*/
|
||||||
|
add_theme_support('customize-selective-refresh-widgets');
|
||||||
|
}, 20);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register the theme sidebars.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
add_action('widgets_init', function () {
|
||||||
|
$config = [
|
||||||
|
'before_widget' => '<section class="widget %1$s %2$s">',
|
||||||
|
'after_widget' => '</section>',
|
||||||
|
'before_title' => '<h3>',
|
||||||
|
'after_title' => '</h3>',
|
||||||
|
];
|
||||||
|
|
||||||
|
register_sidebar([
|
||||||
|
'name' => __('Primary', 'sage'),
|
||||||
|
'id' => 'sidebar-primary',
|
||||||
|
] + $config);
|
||||||
|
|
||||||
|
register_sidebar([
|
||||||
|
'name' => __('Footer', 'sage'),
|
||||||
|
'id' => 'sidebar-footer',
|
||||||
|
] + $config);
|
||||||
|
});
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
/**
|
||||||
|
* Compiler configuration
|
||||||
|
*
|
||||||
|
* @see {@link https://roots.io/docs/sage sage documentation}
|
||||||
|
* @see {@link https://bud.js.org/guides/configure bud.js configuration guide}
|
||||||
|
*
|
||||||
|
* @param {import('@roots/bud').Bud} app
|
||||||
|
*/
|
||||||
|
export default async (app) => {
|
||||||
|
/**
|
||||||
|
* Application assets & entrypoints
|
||||||
|
*
|
||||||
|
* @see {@link https://bud.js.org/docs/bud.entry}
|
||||||
|
* @see {@link https://bud.js.org/docs/bud.assets}
|
||||||
|
*/
|
||||||
|
app
|
||||||
|
.entry('app', ['@scripts/app', '@styles/app'])
|
||||||
|
.entry('editor', ['@scripts/editor', '@styles/editor'])
|
||||||
|
.assets(['images']);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set public path
|
||||||
|
*
|
||||||
|
* @see {@link https://bud.js.org/docs/bud.setPublicPath}
|
||||||
|
*/
|
||||||
|
app.setPublicPath('/app/themes/sage/public/');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Development server settings
|
||||||
|
*
|
||||||
|
* @see {@link https://bud.js.org/docs/bud.setUrl}
|
||||||
|
* @see {@link https://bud.js.org/docs/bud.setProxyUrl}
|
||||||
|
* @see {@link https://bud.js.org/docs/bud.watch}
|
||||||
|
*/
|
||||||
|
app
|
||||||
|
.setUrl('http://localhost')
|
||||||
|
.setProxyUrl('http://example.test')
|
||||||
|
.watch(['resources/views', 'app']);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate WordPress `theme.json`
|
||||||
|
*
|
||||||
|
* @note This overwrites `theme.json` on every build.
|
||||||
|
*
|
||||||
|
* @see {@link https://bud.js.org/extensions/sage/theme.json}
|
||||||
|
* @see {@link https://developer.wordpress.org/block-editor/how-to-guides/themes/theme-json}
|
||||||
|
*/
|
||||||
|
app.wpjson
|
||||||
|
.set('settings.color.custom', false)
|
||||||
|
.set('settings.color.customDuotone', false)
|
||||||
|
.set('settings.color.customGradient', false)
|
||||||
|
.set('settings.color.defaultDuotone', false)
|
||||||
|
.set('settings.color.defaultGradients', false)
|
||||||
|
.set('settings.color.defaultPalette', false)
|
||||||
|
.set('settings.color.duotone', [])
|
||||||
|
.set('settings.custom.spacing', {})
|
||||||
|
.set('settings.custom.typography.font-size', {})
|
||||||
|
.set('settings.custom.typography.line-height', {})
|
||||||
|
.set('settings.spacing.padding', true)
|
||||||
|
.set('settings.spacing.units', ['px', '%', 'em', 'rem', 'vw', 'vh'])
|
||||||
|
.set('settings.typography.customFontSize', false)
|
||||||
|
.useTailwindColors()
|
||||||
|
.useTailwindFontFamily()
|
||||||
|
.useTailwindFontSize()
|
||||||
|
.enable();
|
||||||
|
};
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
{
|
||||||
|
"name": "roots/sage",
|
||||||
|
"type": "wordpress-theme",
|
||||||
|
"license": "MIT",
|
||||||
|
"description": "WordPress starter theme with a modern development workflow",
|
||||||
|
"homepage": "https://roots.io/sage/",
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Ben Word",
|
||||||
|
"email": "ben@benword.com",
|
||||||
|
"homepage": "https://github.com/retlehs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Scott Walkinshaw",
|
||||||
|
"email": "scott.walkinshaw@gmail.com",
|
||||||
|
"homepage": "https://github.com/swalkinshaw"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "QWp6t",
|
||||||
|
"email": "hi@qwp6t.me",
|
||||||
|
"homepage": "https://github.com/qwp6t"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Brandon Nifong",
|
||||||
|
"email": "brandon@tendency.me",
|
||||||
|
"homepage": "https://github.com/log1x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"keywords": [
|
||||||
|
"wordpress"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/roots/sage/issues",
|
||||||
|
"forum": "https://discourse.roots.io/"
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"App\\": "app/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^8.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"squizlabs/php_codesniffer": "3.7.1"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"log1x/sage-directives": "A collection of useful Blade directives for WordPress and Sage (^1.0).",
|
||||||
|
"log1x/sage-svg": "A useful SVG directive for inlining SVG's within Blade views (^1.0)."
|
||||||
|
},
|
||||||
|
"config": {
|
||||||
|
"optimize-autoloader": true,
|
||||||
|
"preferred-install": "dist",
|
||||||
|
"sort-packages": true
|
||||||
|
},
|
||||||
|
"minimum-stability": "dev",
|
||||||
|
"prefer-stable": true,
|
||||||
|
"scripts": {
|
||||||
|
"lint": [
|
||||||
|
"phpcs --extensions=php --standard=PSR12 app"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"extra": {
|
||||||
|
"acorn": {
|
||||||
|
"providers": [
|
||||||
|
"App\\Providers\\ThemeServiceProvider"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Generated
+77
@@ -0,0 +1,77 @@
|
|||||||
|
{
|
||||||
|
"_readme": [
|
||||||
|
"This file locks the dependencies of your project to a known state",
|
||||||
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
|
"This file is @generated automatically"
|
||||||
|
],
|
||||||
|
"content-hash": "8baf833c21928054dd17de586ef3a699",
|
||||||
|
"packages": [],
|
||||||
|
"packages-dev": [
|
||||||
|
{
|
||||||
|
"name": "squizlabs/php_codesniffer",
|
||||||
|
"version": "3.7.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
|
||||||
|
"reference": "1359e176e9307e906dc3d890bcc9603ff6d90619"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/1359e176e9307e906dc3d890bcc9603ff6d90619",
|
||||||
|
"reference": "1359e176e9307e906dc3d890bcc9603ff6d90619",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-simplexml": "*",
|
||||||
|
"ext-tokenizer": "*",
|
||||||
|
"ext-xmlwriter": "*",
|
||||||
|
"php": ">=5.4.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
|
||||||
|
},
|
||||||
|
"bin": [
|
||||||
|
"bin/phpcs",
|
||||||
|
"bin/phpcbf"
|
||||||
|
],
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "3.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Greg Sherwood",
|
||||||
|
"role": "lead"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
|
||||||
|
"homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
|
||||||
|
"keywords": [
|
||||||
|
"phpcs",
|
||||||
|
"standards"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues",
|
||||||
|
"source": "https://github.com/squizlabs/PHP_CodeSniffer",
|
||||||
|
"wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
|
||||||
|
},
|
||||||
|
"time": "2022-06-18T07:21:10+00:00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"aliases": [],
|
||||||
|
"minimum-stability": "dev",
|
||||||
|
"stability-flags": [],
|
||||||
|
"prefer-stable": true,
|
||||||
|
"prefer-lowest": false,
|
||||||
|
"platform": {
|
||||||
|
"php": "^8.0"
|
||||||
|
},
|
||||||
|
"platform-dev": [],
|
||||||
|
"plugin-api-version": "2.3.0"
|
||||||
|
}
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Register The Auto Loader
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Composer provides a convenient, automatically generated class loader for
|
||||||
|
| our theme. We will simply require it into the script here so that we
|
||||||
|
| don't have to worry about manually loading any of our classes later on.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (! file_exists($composer = __DIR__.'/vendor/autoload.php')) {
|
||||||
|
wp_die(__('Error locating autoloader. Please run <code>composer install</code>.', 'sage'));
|
||||||
|
}
|
||||||
|
|
||||||
|
require $composer;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Register The Bootloader
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| The first thing we will do is schedule a new Acorn application container
|
||||||
|
| to boot when WordPress is finished loading the theme. The application
|
||||||
|
| serves as the "glue" for all the components of Laravel and is
|
||||||
|
| the IoC container for the system binding all of the various parts.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (! function_exists('\Roots\bootloader')) {
|
||||||
|
wp_die(
|
||||||
|
__('You need to install Acorn to use this theme.', 'sage'),
|
||||||
|
'',
|
||||||
|
[
|
||||||
|
'link_url' => 'https://roots.io/acorn/docs/installation/',
|
||||||
|
'link_text' => __('Acorn Docs: Installation', 'sage'),
|
||||||
|
]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
\Roots\bootloader()->boot();
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Register Sage Theme Files
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Out of the box, Sage ships with categorically named theme files
|
||||||
|
| containing common functionality and setup to be bootstrapped with your
|
||||||
|
| theme. Simply add (or remove) files from the array below to change what
|
||||||
|
| is registered alongside Sage.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
collect(['setup', 'filters'])
|
||||||
|
->each(function ($file) {
|
||||||
|
if (! locate_template($file = "app/{$file}.php", true, true)) {
|
||||||
|
wp_die(
|
||||||
|
/* translators: %s is replaced with the relative file path */
|
||||||
|
sprintf(__('Error locating <code>%s</code> for inclusion.', 'sage'), $file)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html <?php language_attributes(); ?>>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<?php wp_head(); ?>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body <?php body_class(); ?>>
|
||||||
|
<?php wp_body_open(); ?>
|
||||||
|
<?php do_action('get_header'); ?>
|
||||||
|
|
||||||
|
<div id="app">
|
||||||
|
<?php echo view(app('sage.view'), app('sage.data'))->render(); ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php do_action('get_footer'); ?>
|
||||||
|
<?php wp_footer(); ?>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"extends": "@roots/sage/config/jsconfig.json",
|
||||||
|
"compilerOptions": {
|
||||||
|
"baseUrl": "resources",
|
||||||
|
/**
|
||||||
|
* Resolve aliases
|
||||||
|
*/
|
||||||
|
"paths": {
|
||||||
|
"@fonts/*": ["fonts/*"],
|
||||||
|
"@images/*": ["images/*"],
|
||||||
|
"@scripts/*": ["scripts/*"],
|
||||||
|
"@styles/*": ["styles/*"]
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* Type definitions
|
||||||
|
*/
|
||||||
|
"types": [
|
||||||
|
"@roots/bud",
|
||||||
|
"@roots/bud-react",
|
||||||
|
"@roots/bud-postcss",
|
||||||
|
"@roots/bud-preset-recommend",
|
||||||
|
"@roots/bud-preset-wordpress",
|
||||||
|
"@roots/bud-tailwindcss",
|
||||||
|
"@roots/bud-wordpress-theme-json",
|
||||||
|
"@roots/sage"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"include": ["bud.config.js", "resources"],
|
||||||
|
"exclude": ["node_modules", "public"]
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"name": "sage",
|
||||||
|
"private": true,
|
||||||
|
"browserslist": [
|
||||||
|
"extends @roots/browserslist-config"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": ">=16.0.0"
|
||||||
|
},
|
||||||
|
"type": "module",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "bud dev",
|
||||||
|
"build": "bud build",
|
||||||
|
"translate": "yarn translate:pot && yarn translate:update",
|
||||||
|
"translate:pot": "wp i18n make-pot . ./resources/lang/sage.pot --include=\"app,resources\"",
|
||||||
|
"translate:update": "wp i18n update-po ./resources/lang/sage.pot ./resources/lang/*.po",
|
||||||
|
"translate:compile": "yarn translate:mo && yarn translate:js",
|
||||||
|
"translate:js": "wp i18n make-json ./resources/lang --pretty-print",
|
||||||
|
"translate:mo": "wp i18n make-mo ./resources/lang ./resources/lang"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@roots/bud": "6.12.2",
|
||||||
|
"@roots/bud-tailwindcss": "6.12.2",
|
||||||
|
"@roots/sage": "6.12.2"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"caniuse-lite": "^1.0.30001487"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
import domReady from '@roots/sage/client/dom-ready';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Application entrypoint
|
||||||
|
*/
|
||||||
|
domReady(async () => {
|
||||||
|
// ...
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see {@link https://webpack.js.org/api/hot-module-replacement/}
|
||||||
|
*/
|
||||||
|
if (import.meta.webpackHot) import.meta.webpackHot.accept(console.error);
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
/**
|
||||||
|
* @see {@link https://bud.js.org/extensions/bud-preset-wordpress/editor-integration/filters}
|
||||||
|
*/
|
||||||
|
roots.register.filters('@scripts/filters');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see {@link https://webpack.js.org/api/hot-module-replacement/}
|
||||||
|
*/
|
||||||
|
if (import.meta.webpackHot) import.meta.webpackHot.accept(console.error);
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
/**
|
||||||
|
* @see {@link https://developer.wordpress.org/block-editor/reference-guides/filters/block-filters/#blocks-registerblocktype}
|
||||||
|
*/
|
||||||
|
export const hook = 'blocks.registerBlockType';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter handle
|
||||||
|
*/
|
||||||
|
export const name = 'sage/button';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter callback
|
||||||
|
*
|
||||||
|
* @param {object} settings
|
||||||
|
* @param {string} name
|
||||||
|
* @returns modified settings
|
||||||
|
*/
|
||||||
|
export function callback(settings, name) {
|
||||||
|
if (name !== 'core/button') return settings;
|
||||||
|
|
||||||
|
return {
|
||||||
|
...settings,
|
||||||
|
styles: [{ label: 'Outline', name: 'outline' }],
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
@import 'tailwindcss/base';
|
||||||
|
@import 'tailwindcss/components';
|
||||||
|
@import 'tailwindcss/utilities';
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
@extends('layouts.app')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
@include('partials.page-header')
|
||||||
|
|
||||||
|
@if (! have_posts())
|
||||||
|
<x-alert type="warning">
|
||||||
|
{!! __('Sorry, but the page you are trying to view does not exist.', 'sage') !!}
|
||||||
|
</x-alert>
|
||||||
|
|
||||||
|
{!! get_search_form(false) !!}
|
||||||
|
@endif
|
||||||
|
@endsection
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
<div {{ $attributes->merge(['class' => $type]) }}>
|
||||||
|
{!! $message ?? $slot !!}
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
<form role="search" method="get" class="search-form" action="{{ home_url('/') }}">
|
||||||
|
<label>
|
||||||
|
<span class="sr-only">
|
||||||
|
{{ _x('Search for:', 'label', 'sage') }}
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<input
|
||||||
|
type="search"
|
||||||
|
placeholder="{!! esc_attr_x('Search …', 'placeholder', 'sage') !!}"
|
||||||
|
value="{{ get_search_query() }}"
|
||||||
|
name="s"
|
||||||
|
>
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<button>{{ _x('Search', 'submit button', 'sage') }}</button>
|
||||||
|
</form>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
@extends('layouts.app')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
@include('partials.page-header')
|
||||||
|
|
||||||
|
@if (! have_posts())
|
||||||
|
<x-alert type="warning">
|
||||||
|
{!! __('Sorry, no results were found.', 'sage') !!}
|
||||||
|
</x-alert>
|
||||||
|
|
||||||
|
{!! get_search_form(false) !!}
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@while(have_posts()) @php(the_post())
|
||||||
|
@includeFirst(['partials.content-' . get_post_type(), 'partials.content'])
|
||||||
|
@endwhile
|
||||||
|
|
||||||
|
{!! get_the_posts_navigation() !!}
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('sidebar')
|
||||||
|
@include('sections.sidebar')
|
||||||
|
@endsection
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
<a class="sr-only focus:not-sr-only" href="#main">
|
||||||
|
{{ __('Skip to content') }}
|
||||||
|
</a>
|
||||||
|
|
||||||
|
@include('sections.header')
|
||||||
|
|
||||||
|
<main id="main" class="main">
|
||||||
|
@yield('content')
|
||||||
|
</main>
|
||||||
|
|
||||||
|
@hasSection('sidebar')
|
||||||
|
<aside class="sidebar">
|
||||||
|
@yield('sidebar')
|
||||||
|
</aside>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@include('sections.footer')
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
@extends('layouts.app')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
@while(have_posts()) @php(the_post())
|
||||||
|
@include('partials.page-header')
|
||||||
|
@includeFirst(['partials.content-page', 'partials.content'])
|
||||||
|
@endwhile
|
||||||
|
@endsection
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
@if (! post_password_required())
|
||||||
|
<section id="comments" class="comments">
|
||||||
|
@if (have_comments())
|
||||||
|
<h2>
|
||||||
|
{!! /* translators: %1$s is replaced with the number of comments and %2$s with the post title */ sprintf(_nx('%1$s response to “%2$s”', '%1$s responses to “%2$s”', get_comments_number(), 'comments title', 'sage'), get_comments_number() === 1 ? _x('One', 'comments title', 'sage') : number_format_i18n(get_comments_number()), '<span>' . get_the_title() . '</span>') !!}
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<ol class="comment-list">
|
||||||
|
{!! wp_list_comments(['style' => 'ol', 'short_ping' => true]) !!}
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
@if (get_comment_pages_count() > 1 && get_option('page_comments'))
|
||||||
|
<nav>
|
||||||
|
<ul class="pager">
|
||||||
|
@if (get_previous_comments_link())
|
||||||
|
<li class="previous">
|
||||||
|
{!! get_previous_comments_link(__('← Older comments', 'sage')) !!}
|
||||||
|
</li>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@if (get_next_comments_link())
|
||||||
|
<li class="next">
|
||||||
|
{!! get_next_comments_link(__('Newer comments →', 'sage')) !!}
|
||||||
|
</li>
|
||||||
|
@endif
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
@endif
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@if (! comments_open() && get_comments_number() != '0' && post_type_supports(get_post_type(), 'comments'))
|
||||||
|
<x-alert type="warning">
|
||||||
|
{!! __('Comments are closed.', 'sage') !!}
|
||||||
|
</x-alert>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@php(comment_form())
|
||||||
|
</section>
|
||||||
|
@endif
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
@php(the_content())
|
||||||
|
|
||||||
|
{!! wp_link_pages(['echo' => 0, 'before' => '<nav class="page-nav"><p>' . __('Pages:', 'sage'), 'after' => '</p></nav>']) !!}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
<article @php(post_class())>
|
||||||
|
<header>
|
||||||
|
<h2 class="entry-title">
|
||||||
|
<a href="{{ get_permalink() }}">
|
||||||
|
{!! $title !!}
|
||||||
|
</a>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
@includeWhen(get_post_type() === 'post', 'partials.entry-meta')
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="entry-summary">
|
||||||
|
@php(the_excerpt())
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<article @php(post_class('h-entry'))>
|
||||||
|
<header>
|
||||||
|
<h1 class="p-name">
|
||||||
|
{!! $title !!}
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
@include('partials.entry-meta')
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="e-content">
|
||||||
|
@php(the_content())
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
{!! wp_link_pages(['echo' => 0, 'before' => '<nav class="page-nav"><p>' . __('Pages:', 'sage'), 'after' => '</p></nav>']) !!}
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
@php(comments_template())
|
||||||
|
</article>
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
<article @php(post_class())>
|
||||||
|
<header>
|
||||||
|
<h2 class="entry-title">
|
||||||
|
<a href="{{ get_permalink() }}">
|
||||||
|
{!! $title !!}
|
||||||
|
</a>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
@include('partials.entry-meta')
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="entry-summary">
|
||||||
|
@php(the_excerpt())
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<time class="dt-published" datetime="{{ get_post_time('c', true) }}">
|
||||||
|
{{ get_the_date() }}
|
||||||
|
</time>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<span>{{ __('By', 'sage') }}</span>
|
||||||
|
<a href="{{ get_author_posts_url(get_the_author_meta('ID')) }}" class="p-author h-card">
|
||||||
|
{{ get_the_author() }}
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
<div class="page-header">
|
||||||
|
<h1>{!! $title !!}</h1>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
@extends('layouts.app')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
@include('partials.page-header')
|
||||||
|
|
||||||
|
@if (! have_posts())
|
||||||
|
<x-alert type="warning">
|
||||||
|
{!! __('Sorry, no results were found.', 'sage') !!}
|
||||||
|
</x-alert>
|
||||||
|
|
||||||
|
{!! get_search_form(false) !!}
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@while(have_posts()) @php(the_post())
|
||||||
|
@include('partials.content-search')
|
||||||
|
@endwhile
|
||||||
|
|
||||||
|
{!! get_the_posts_navigation() !!}
|
||||||
|
@endsection
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
<footer class="content-info">
|
||||||
|
@php(dynamic_sidebar('sidebar-footer'))
|
||||||
|
</footer>
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
<header class="banner">
|
||||||
|
<a class="brand" href="{{ home_url('/') }}">
|
||||||
|
{!! $siteName !!}
|
||||||
|
</a>
|
||||||
|
|
||||||
|
@if (has_nav_menu('primary_navigation'))
|
||||||
|
<nav class="nav-primary" aria-label="{{ wp_get_nav_menu_name('primary_navigation') }}">
|
||||||
|
{!! wp_nav_menu(['theme_location' => 'primary_navigation', 'menu_class' => 'nav', 'echo' => false]) !!}
|
||||||
|
</nav>
|
||||||
|
@endif
|
||||||
|
</header>
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
@php(dynamic_sidebar('sidebar-primary'))
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
@extends('layouts.app')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
@while(have_posts()) @php(the_post())
|
||||||
|
@includeFirst(['partials.content-single-' . get_post_type(), 'partials.content-single'])
|
||||||
|
@endwhile
|
||||||
|
@endsection
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{{--
|
||||||
|
Template Name: Custom Template
|
||||||
|
--}}
|
||||||
|
|
||||||
|
@extends('layouts.app')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
@while(have_posts()) @php(the_post())
|
||||||
|
@include('partials.page-header')
|
||||||
|
@include('partials.content-page')
|
||||||
|
@endwhile
|
||||||
|
@endsection
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 225 B |
@@ -0,0 +1,13 @@
|
|||||||
|
/*
|
||||||
|
Theme Name: Sage Starter Theme
|
||||||
|
Theme URI: https://roots.io/sage/
|
||||||
|
Description: Sage is a WordPress starter theme.
|
||||||
|
Version: 10.6.0
|
||||||
|
Author: Roots
|
||||||
|
Author URI: https://roots.io/
|
||||||
|
Text Domain: sage
|
||||||
|
License: MIT License
|
||||||
|
License URI: https://opensource.org/licenses/MIT
|
||||||
|
Requires PHP: 8.0
|
||||||
|
Requires at least: 5.9
|
||||||
|
*/
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
/** @type {import('tailwindcss').Config} config */
|
||||||
|
const config = {
|
||||||
|
content: ['./index.php', './app/**/*.php', './resources/**/*.{php,vue,js}'],
|
||||||
|
theme: {
|
||||||
|
extend: {
|
||||||
|
colors: {}, // Extend Tailwind's default colors
|
||||||
|
},
|
||||||
|
},
|
||||||
|
plugins: [],
|
||||||
|
};
|
||||||
|
|
||||||
|
export default config;
|
||||||
+1359
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user