diff --git a/.gitattributes b/.gitattributes index db77b7de..2ee222e1 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,10 +1,13 @@ -sass/ export-ignore .DS_Store export-ignore .editorconfig export-ignore .gitattributes export-ignore .gitignore export-ignore +.wp-env.json export-ignore +build-scripts/ export-ignore docker-compose.yml export-ignore -Gruntfile.js export-ignore +node_modules/ export-ignore package.json export-ignore phpcs.xml export-ignore readme.md export-ignore +src/ export-ignore +webpack.config.js export-ignore diff --git a/.gitignore b/.gitignore index 2f94dbf7..1102930a 100644 --- a/.gitignore +++ b/.gitignore @@ -3,5 +3,8 @@ /vendor/ .DS_Store _build +build/* +!build/post-format/ +!build/post-format/** composer.lock package-lock.json diff --git a/.wp-env.json b/.wp-env.json new file mode 100644 index 00000000..f21c2ade --- /dev/null +++ b/.wp-env.json @@ -0,0 +1,15 @@ +{ + "core": "WordPress/WordPress#master", + "phpVersion": "8.1", + "themes": [ + "." + ], + "config": { + "WP_DEBUG": true, + "WP_DEBUG_LOG": true, + "WP_DEBUG_DISPLAY": false, + "SCRIPT_DEBUG": true + }, + "port": 8887, + "testsPort": 8890 +} diff --git a/404.php b/404.php deleted file mode 100644 index da45580c..00000000 --- a/404.php +++ /dev/null @@ -1,45 +0,0 @@ - - -
> - -
-
-

-
- -
-

- - - - - -
-

-
    - 'count', 'order' => 'DESC', 'show_count' => 1, 'title_li' => '', 'number' => 10 ) ); ?> -
-
- - ' . sprintf( __( 'Try looking in the monthly archives. %1$s', 'autonomie' ), convert_smilies( ':)' ) ) . '

'; - the_widget( 'WP_Widget_Archives', 'dropdown=1', "after_title=$archive_content" ); - ?> - - - -
-
- -
- - diff --git a/500.php b/500.php deleted file mode 100644 index f1ed106e..00000000 --- a/500.php +++ /dev/null @@ -1,26 +0,0 @@ - - -
> - -
-
-

-
- -
-

-

-
-
- -
- - diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 00000000..6e6a7071 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,112 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Overview + +Autonomie is a WordPress **Full Site Editing (FSE) block theme** (v2.0.0) focused on semantic HTML — microformats, microformats2, and Schema.org microdata. It is fully IndieWeb-compatible. Recently migrated from a classic PHP theme to the FSE architecture (branch: `fse`). + +Requires WordPress 6.4+, PHP 7.4+, Node.js 18.0+. + +## Roadmap / Current Status + +We are on the `fse` branch. The work is in two phases: + +- **Phase 1 (complete):** Design foundation cleanup — removed Grunt remnants, deleted AI-generated migration docs, added missing spacing presets to `theme.json`, deduplicated colors, added missing block styles (footnotes, comments, gallery, image, separator), ported missing CSS from classic theme (tables, forms, comments, typography, dark mode fixes), replaced hardcoded pixel values with spacing preset variables. +- **Phase 2 (next):** Social-media-inspired post format templates — status posts styled like toots/tweets, image posts like Pixelfed/Instagram, link posts like bookmarks, etc. Uses `single_template_hierarchy` filter for format-specific templates. + +## Commands + +```bash +# Build the custom block (src/post-format → build/post-format) +npm run build + +# Watch mode for development +npm run dev + +# Local WordPress environment (port 8887, WP 6.7, PHP 8.1) +npm run start # Start wp-env +npm run stop # Stop wp-env + +# Linting +npm run lint:php # PHP CodeSniffer (WordPress-Core ruleset) +npm run lint:md # Markdown linting +npm run format # Prettier for JSON/MD files +``` + +No test suite is configured yet. + +## Development Workflow + +1. `npm run start` boots wp-env at http://localhost:8887 (admin: admin/password) +2. `npm run dev` watches `src/post-format/` and rebuilds on change +3. Edit `theme.json` for design tokens, block styles, and layout — changes are live-reloaded +4. Edit `style.css` for styles that can't be expressed in theme.json (pseudo-elements, complex selectors, dark mode) +5. Edit `templates/` and `parts/` for block template markup +6. Test dark mode by toggling system appearance preferences +7. Validate microformats at https://indiewebify.me/ + +## Architecture + +### FSE Block Theme Structure + +- **`theme.json`** — Primary design system (version 3): colors, typography, spacing, layout (700px content / 900px wide), per-block styles. Most styling lives here, not in CSS files. +- **`templates/`** — 6 HTML block templates (index, single, page, archive, search, 404) +- **`parts/`** — 3 template parts (header, footer, post-meta) +- **`patterns/`** — 10 block patterns, one per post format (standard, aside, quote, link, image, gallery, video, audio, status, chat). Note: pattern registration is currently disabled in functions.php due to inconsistent return formats — `post-aside.php` returns differently from the rest. This needs fixing before Phase 2. +- **`style.css`** — Only styles that can't be expressed in theme.json: pseudo-elements, complex selectors, dark mode (`prefers-color-scheme: dark`), tables, forms, comments, accessibility helpers. + +### Custom Block: `autonomie/post-format` + +Single custom block in `src/post-format/` displaying the post format icon and archive link. + +- `src/post-format/index.js` — Editor component (React/JSX) +- `src/post-format/render.php` — Server-side render +- `src/post-format/icon-paths.php` — Auto-generated by `build-scripts/extract-icons.js` (runs as prebuild/predev) +- Built via `@wordpress/scripts` (webpack) to `build/post-format/` +- `webpack.config.js` extends `@wordpress/scripts` default config with CopyWebpackPlugin for PHP files + +### PHP Includes + +- **`includes/semantics.php`** — Core file (~630 lines). Adds microformats2 classes and Schema.org microdata to block output via `render_block` filters for core blocks (post-template, post-title, post-content, post-date, post-author, etc.) and classic WordPress filters (body_class, post_class, etc.). +- **`includes/feed.php`** — Feed discovery links, per-format feed URLs +- **`includes/compat.php`** — Backward compatibility: comment form enhancements, "standard" post format archive support, lazy loading +- **`includes/webactions.php`** — IndieWeb webaction wrappers for comment links + +### Architecture Decisions + +- **Semantic markup via render_block filters** — microformats2 + Schema.org is injected by filtering rendered block output in `semantics.php`, not by modifying templates directly. This keeps templates clean and portable. +- **Dark mode via CSS variable overrides** — `@media (prefers-color-scheme: dark)` in `style.css` overrides the theme.json color CSS custom properties. This is the only reliable approach until theme.json supports color-scheme natively. +- **Self-hosted fonts** — Lato, Merriweather, and OpenWeb Icons are declared in `theme.json` fontFace entries. No external font CDNs. +- **Spacing presets for consistency** — Hardcoded pixel values in block styles have been replaced with `var(--wp--preset--spacing--XX)` references. New presets were added for 15px (slug 35), 30px (slug 55), 50px (slug 75), and 60px (slug 78) to complement existing presets. +- **CSS vs theme.json boundary** — theme.json handles colors, typography, spacing, border, and layout. CSS handles pseudo-elements (::before, ::after), complex selectors (nth-child, descendant combinators), box-shadow, width constraints, and `@media` queries. + +## What's Next (Phase 2) + +### Post Format Templates + +The plan is to create social-media-inspired templates for each post format: + +- **Status** → Toot/tweet style (avatar, short text, timestamp) +- **Image** → Pixelfed/Instagram style (image-first, minimal chrome) +- **Link** → Bookmark card (URL preview, title, description) +- **Quote** → Large typographic quote +- **Video/Audio** → Embedded player focus +- **Gallery** → Grid/masonry layout +- **Aside** → Note/microblog style +- **Chat** → Conversation thread + +Implementation approach: +1. Fix pattern registration (inconsistent format in `post-aside.php` vs others) +2. Use `single_template_hierarchy` filter to load format-specific templates from `templates/single-format-{format}.html` +3. Create format-specific template parts in `parts/` + +### Classic Theme Reference + +The `master` branch still has the classic theme for visual reference. The old SCSS partials in `assets/sass/` (`_base.scss`, `_post.scss`, `_comment.scss`, `_table.scss`, `_form.scss`, etc.) are the source of truth for what the theme should look like. + +## Coding Standards + +- PHP: WordPress-Core ruleset (phpcs.xml) +- Indentation: tabs (size 4) for PHP/CSS/HTML; spaces (size 2) for JS/JSON (.editorconfig) +- LF line endings, UTF-8 diff --git a/Gruntfile.js b/Gruntfile.js deleted file mode 100644 index 4bf377eb..00000000 --- a/Gruntfile.js +++ /dev/null @@ -1,153 +0,0 @@ -module.exports = function(grunt) { - 'use strict'; - const sass = require('sass'); - - // Project configuration. - grunt.initConfig({ - pkg: grunt.file.readJSON('package.json'), - sass: { - main: { - options: { - implementation: sass, - outputStyle: 'compressed', - sourceComments: false, - sourceMap: true - }, - files: { - 'assets/css/editor-style.css': 'assets/sass/editor-style.scss', - 'assets/css/print.css': 'assets/sass/print.scss', - 'assets/css/narrow-width.css': 'assets/sass/responsive_narrow.scss', - 'assets/css/default-width.css': 'assets/sass/responsive_default.scss', - 'assets/css/wide-width.css': 'assets/sass/responsive_wide.scss', - 'style.css': 'assets/sass/style.scss' - } - } - }, - 'string-replace': { - style: { - options: { - replacements: [ - { - pattern: '@@author', - replacement: '<%= pkg.author.name %>' - }, - { - pattern: '@@author_url', - replacement: '<%= pkg.author.url %>' - }, - { - pattern: '@@version', - replacement: '<%= pkg.version %>' - }, - { - pattern: '@@license', - replacement: '<%= pkg.license.name %>' - }, - { - pattern: '@@license_url', - replacement: 'https://opensource.org/licenses/<%= pkg.license %>' - }, - { - pattern: '@@name', - replacement: '<%= pkg.name %>' - }, - { - pattern: '@@description', - replacement: '<%= pkg.description %>' - }, - { - pattern: '@@homepage', - replacement: '<%= pkg.homepage %>' - }, - { - pattern: '@@tags', - replacement: '<%= pkg.keywords.join(", ") %>' - } - ] - }, - files: [ - { - expand: true, - flatten: true, - src: 'style.css', - dest: '' - } - ] - } - }, - wp_readme_to_markdown: { - target: { - files: { - 'readme.md': 'readme.txt' - }, - }, - }, - makepot: { - target: { - options: { - domainPath: '/languages', - exclude: ['bin/.*', '.git/.*', 'vendor/.*', 'node_modules/.*', '_build/.*'], - potFilename: 'autonomie.pot', - type: 'wp-theme', - updateTimestamp: true, - mainFile: 'style.css' - } - } - }, - watch: { - styles: { - files: ['**/*.scss'], - tasks: ['default'] - } - }, - copy: { - build: { - src: [ - '**', - '!node_modules/**', - '!.**', - '!Gruntfile.js', - '!package.json', - '!package-lock.json', - '!composer.json', - '!docker-compose.yml', - '!phpcs.xml', - '!readme.md', - '!**/**.map' - ], - dest: '_build/', - }, - }, - clean: { - build: { - src: ['_build/'] - } - }, - compress: { - build: { - options: { - archive: '_build/<%= pkg.name %>.zip' - }, - cwd: '_build/', - src: ['**/*'], - dest: '/', - expand: true - } - } - }); - - // These plugins provide necessary tasks. - grunt.loadNpmTasks('grunt-contrib-watch'); - grunt.loadNpmTasks('grunt-sass'); - grunt.loadNpmTasks('grunt-string-replace'); - grunt.loadNpmTasks('grunt-wp-readme-to-markdown'); - grunt.loadNpmTasks('grunt-wp-i18n'); - grunt.loadNpmTasks('grunt-contrib-copy'); - grunt.loadNpmTasks('grunt-contrib-clean'); - grunt.loadNpmTasks('grunt-contrib-compress'); - - // Default task(s). - grunt.registerTask('default', ['sass', 'string-replace', 'wp_readme_to_markdown', 'makepot']); - - grunt.registerTask('build', ['default', 'clean:build', 'copy:build', 'compress:build']); -}; diff --git a/archive.php b/archive.php deleted file mode 100644 index ff93bff8..00000000 --- a/archive.php +++ /dev/null @@ -1,54 +0,0 @@ - - -
> - - - - - - - - - - - - - - - - -
-
-

-
- -
-

- -
-
- - - -
- - diff --git a/assets/css/default-width.css b/assets/css/default-width.css deleted file mode 100644 index b2a22387..00000000 --- a/assets/css/default-width.css +++ /dev/null @@ -1,3 +0,0 @@ -.site-navigation,.site-header .site-branding,.site-header .page-banner #page-title,.site-header .page-banner #page-description,.site-header .page-banner #page-meta{width:700px}.page-banner .avatar{width:120px;height:120px}.entry-content>*,.entry-summary>*,.entry-content>form,.entry-content>div,.entry-header,.entry-footer>*,.entry-reaction,#comments,#nav-above,#nav-below,.reaction-list,.wp-block-quote.is-style-large{display:block;max-width:700px;margin:1.2em auto;box-sizing:border-box}.entry-content .wp-block-gallery,.entry-content .wp-block-columns,.entry-content .wp-block-media-text,.entry-summary .wp-block-gallery,.entry-summary .wp-block-columns,.entry-summary .wp-block-media-text{display:flex}.entry-footer .author{width:780px;max-width:780px;margin:70px auto}#sidebar{width:100%}#sidebar aside{margin:50px 50px}#sidebar #secondary{display:inline-block;float:left;width:50%}#sidebar #tertiary{display:inline-block;float:left;width:50%}#sidebar #quaternary{display:inline-block;float:left;width:50%} - -/*# sourceMappingURL=default-width.css.map */ \ No newline at end of file diff --git a/assets/css/default-width.css.map b/assets/css/default-width.css.map deleted file mode 100644 index 9ed6eaac..00000000 --- a/assets/css/default-width.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["file:///Users/pfefferle/Code/autonomie/assets/sass/responsive_default.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/_vars.scss"],"names":[],"mappings":"AAGA,oKAKC,MCiCe,MD9BhB,qBACC,YACA,aAGD,qMAYC,cACA,UCYe,MDXf,kBACA,sBAKA,4MAGC,aAIF,sBACC,YACA,gBACA,iBAGD,SACC,WAEA,eACC,iBAGD,oBACC,qBACA,WACA,UAGD,mBACC,qBACA,WACA,UAGD,qBACC,qBACA,WACA","file":"default-width.css"} \ No newline at end of file diff --git a/assets/css/editor-style.css b/assets/css/editor-style.css deleted file mode 100644 index 71f895ef..00000000 --- a/assets/css/editor-style.css +++ /dev/null @@ -1,3 +0,0 @@ -body .editor-styles-wrapper{/*! normalize.css v3.0.2 | MIT License | git.io/normalize */}body .editor-styles-wrapper .wp-block{max-width:700px}body .editor-styles-wrapper .wp-block[data-align=wide]{max-width:900px}body .editor-styles-wrapper .wp-block[data-align=full]{max-width:none}body .editor-styles-wrapper html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body .editor-styles-wrapper body{margin:0}body .editor-styles-wrapper article,body .editor-styles-wrapper aside,body .editor-styles-wrapper details,body .editor-styles-wrapper figcaption,body .editor-styles-wrapper figure,body .editor-styles-wrapper footer,body .editor-styles-wrapper header,body .editor-styles-wrapper hgroup,body .editor-styles-wrapper main,body .editor-styles-wrapper menu,body .editor-styles-wrapper nav,body .editor-styles-wrapper section,body .editor-styles-wrapper summary{display:block}body .editor-styles-wrapper audio,body .editor-styles-wrapper canvas,body .editor-styles-wrapper progress,body .editor-styles-wrapper video{display:inline-block;vertical-align:baseline}body .editor-styles-wrapper audio:not([controls]){display:none;height:0}body .editor-styles-wrapper [hidden],body .editor-styles-wrapper template{display:none}body .editor-styles-wrapper a{background-color:rgba(0,0,0,0)}body .editor-styles-wrapper a:active,body .editor-styles-wrapper a:hover{outline:0}body .editor-styles-wrapper abbr[title]{border-bottom:1px dotted}body .editor-styles-wrapper b,body .editor-styles-wrapper strong{font-weight:bold}body .editor-styles-wrapper dfn{font-style:italic}body .editor-styles-wrapper h1{font-size:2em;margin:.67em 0}body .editor-styles-wrapper mark{background:#ff0;color:#000}body .editor-styles-wrapper small{font-size:80%}body .editor-styles-wrapper sub,body .editor-styles-wrapper sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}body .editor-styles-wrapper sup{top:-0.5em}body .editor-styles-wrapper sub{bottom:-0.25em}body .editor-styles-wrapper img{border:0}body .editor-styles-wrapper svg:not(:root){overflow:hidden}body .editor-styles-wrapper figure{margin:1em 40px}body .editor-styles-wrapper hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}body .editor-styles-wrapper pre{overflow:auto}body .editor-styles-wrapper code,body .editor-styles-wrapper kbd,body .editor-styles-wrapper pre,body .editor-styles-wrapper samp{font-family:monospace,monospace;font-size:1em}body .editor-styles-wrapper button,body .editor-styles-wrapper input,body .editor-styles-wrapper optgroup,body .editor-styles-wrapper select,body .editor-styles-wrapper textarea{color:inherit;font:inherit;margin:0}body .editor-styles-wrapper button{overflow:visible}body .editor-styles-wrapper button,body .editor-styles-wrapper select{text-transform:none}body .editor-styles-wrapper button,body .editor-styles-wrapper html input[type=button],body .editor-styles-wrapper input[type=reset],body .editor-styles-wrapper input[type=submit]{-webkit-appearance:button;cursor:pointer}body .editor-styles-wrapper button[disabled],body .editor-styles-wrapper html input[disabled]{cursor:default}body .editor-styles-wrapper button::-moz-focus-inner,body .editor-styles-wrapper input::-moz-focus-inner{border:0;padding:0}body .editor-styles-wrapper input{line-height:normal}body .editor-styles-wrapper input[type=checkbox],body .editor-styles-wrapper input[type=radio]{box-sizing:border-box;padding:0}body .editor-styles-wrapper input[type=number]::-webkit-inner-spin-button,body .editor-styles-wrapper input[type=number]::-webkit-outer-spin-button{height:auto}body .editor-styles-wrapper input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}body .editor-styles-wrapper input[type=search]::-webkit-search-cancel-button,body .editor-styles-wrapper input[type=search]::-webkit-search-decoration{-webkit-appearance:none}body .editor-styles-wrapper fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}body .editor-styles-wrapper legend{border:0;padding:0}body .editor-styles-wrapper textarea{overflow:auto}body .editor-styles-wrapper optgroup{font-weight:bold}body .editor-styles-wrapper table{border-collapse:collapse;border-spacing:0}body .editor-styles-wrapper td,body .editor-styles-wrapper th{padding:0}body .editor-styles-wrapper body{background-color:#fff;background-color:var(--color-background);color:#373d3f;color:var(--color-dark-gray);font-family:Lato,sans-serif;font-weight:400;word-wrap:break-word}body .editor-styles-wrapper *,body .editor-styles-wrapper ::before,body .editor-styles-wrapper ::after{box-sizing:inherit}body .editor-styles-wrapper address{font-style:normal}body .editor-styles-wrapper a{color:#373d3f;color:var(--color-dark-gray)}body .editor-styles-wrapper svg{fill:#373d3f;fill:var(--color-dark-gray)}body .editor-styles-wrapper a:hover{text-decoration:none}body .editor-styles-wrapper abbr{font-variant:small-caps}body .editor-styles-wrapper abbr[title]{border-bottom:1px dotted #4f575a;border-bottom-color:var(--color-gray);cursor:help}body .editor-styles-wrapper blockquote,body .editor-styles-wrapper figure{color:#4f575a;color:var(--color-gray);font-size:1em;font-style:italic;position:relative;line-height:1.5;font-family:"Merriweather",serif}body .editor-styles-wrapper blockquote small,body .editor-styles-wrapper blockquote figcaption,body .editor-styles-wrapper blockquote cite,body .editor-styles-wrapper figure small,body .editor-styles-wrapper figure figcaption,body .editor-styles-wrapper figure cite{color:#4f575a;color:var(--color-gray);display:block;font-size:.7em;font-style:normal;font-weight:normal}body .editor-styles-wrapper blockquote cite:before,body .editor-styles-wrapper blockquote small:before,body .editor-styles-wrapper figure cite:before,body .editor-styles-wrapper figure small:before{content:"— "}body .editor-styles-wrapper blockquote small,body .editor-styles-wrapper blockquote figcaption,body .editor-styles-wrapper blockquote cite{text-align:left}body .editor-styles-wrapper figure,body .editor-styles-wrapper .wp-block-pullquote{padding:0;margin:0}body .editor-styles-wrapper figure small,body .editor-styles-wrapper figure figcaption,body .editor-styles-wrapper figure cite,body .editor-styles-wrapper .wp-block-pullquote small,body .editor-styles-wrapper .wp-block-pullquote figcaption,body .editor-styles-wrapper .wp-block-pullquote cite{text-align:right}body .editor-styles-wrapper figure blockquote,body .editor-styles-wrapper .wp-block-pullquote blockquote{hyphens:auto;word-wrap:break-word;border:none;text-align:center}body .editor-styles-wrapper iframe{border:none;border-spacing:0}body .editor-styles-wrapper blockquote{border:0;border-left:3px solid #d1d5d7;margin:0;padding-left:30px;line-height:1.8}body .editor-styles-wrapper code{background-color:var(--color-dark-gray);color:var(--color-white);border-radius:.3em;padding:4px 5px 5px}body .editor-styles-wrapper code a{color:var(--color-white)}body .editor-styles-wrapper ins{background:#fff9c0;text-decoration:none}body .editor-styles-wrapper h1,body .editor-styles-wrapper h2,body .editor-styles-wrapper h3,body .editor-styles-wrapper h4,body .editor-styles-wrapper h5,body .editor-styles-wrapper h6{font-family:"Merriweather",serif;font-weight:100;margin-bottom:0;line-height:1.2em}body .editor-styles-wrapper h1{font-size:2.2em}body .editor-styles-wrapper h2{font-size:2em}body .editor-styles-wrapper h3{font-size:1.8em}body .editor-styles-wrapper h4{font-size:1.6em}body .editor-styles-wrapper h5{font-size:1.4em}body .editor-styles-wrapper h6{font-size:1.2em}body .editor-styles-wrapper hr{display:block;width:200px;margin:60px auto !important;border:0;border-top:1px solid #d1d5d7;text-align:center}body .editor-styles-wrapper pre{margin-top:50px;margin-bottom:50px;background-color:#000;color:#fff;display:block;padding:50px;white-space:pre-wrap;word-wrap:break-word}body .editor-styles-wrapper pre code{background-color:inherit;color:inherit;border-radius:inherit;padding:0;white-space:inherit}body .editor-styles-wrapper h1,body .editor-styles-wrapper h2,body .editor-styles-wrapper h3,body .editor-styles-wrapper h4,body .editor-styles-wrapper h5,body .editor-styles-wrapper h6,body .editor-styles-wrapper caption,body .editor-styles-wrapper figcaption{text-wrap:balance}body .editor-styles-wrapper p,body .editor-styles-wrapper ul,body .editor-styles-wrapper ol,body .editor-styles-wrapper blockquote{text-wrap:pretty}body .editor-styles-wrapper .single #primary article.has-full-width-featured-image,body .editor-styles-wrapper .page #primary article.has-full-width-featured-image{margin-top:0px}body .editor-styles-wrapper .has-full-width-featured-image .entry-header{margin:0;width:100%;max-width:100%;position:relative;height:75vh;max-height:75%;min-height:500px;margin-bottom:50px;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover}body .editor-styles-wrapper .has-full-width-featured-image .entry-header .entry-title,body .editor-styles-wrapper .has-full-width-featured-image .entry-header .entry-meta,body .editor-styles-wrapper .has-full-width-featured-image .entry-header .entry-format{color:#fff}body .editor-styles-wrapper .has-full-width-featured-image .entry-header .entry-title a,body .editor-styles-wrapper .has-full-width-featured-image .entry-header .entry-meta a,body .editor-styles-wrapper .has-full-width-featured-image .entry-header .entry-format a{color:#fff}body .editor-styles-wrapper .has-full-width-featured-image .entry-header .entry-meta.post-format .entry-format::before{color:#fff}body .editor-styles-wrapper .has-full-width-featured-image .entry-header .entry-header-wrapper{position:absolute;left:0;bottom:0;width:100%;margin-bottom:50px}body .editor-styles-wrapper .has-full-width-featured-image .entry-header .entry-header-wrapper>*{margin:0 auto;width:700px}body .editor-styles-wrapper .has-full-width-featured-image .entry-header .entry-header-wrapper .entry-meta{margin-top:15px}body .editor-styles-wrapper .has-full-width-featured-image .entry-header .avatar{border:2px solid #fff}body .editor-styles-wrapper #primary article:first-child{margin-top:50px}body .editor-styles-wrapper .home #primary article:after,body .editor-styles-wrapper .archive #primary article:after{content:"";border-top:1px solid #d1d5d7;width:200px;display:block;text-align:center;margin:0 auto;margin-top:100px}body .editor-styles-wrapper h1.entry-title,body .editor-styles-wrapper h2.entry-title,body .editor-styles-wrapper h3.entry-title,body .editor-styles-wrapper h4.entry-title{margin:0;padding:0;font-size:2em;line-height:1.2em}body .editor-styles-wrapper h1.entry-title a,body .editor-styles-wrapper h2.entry-title a,body .editor-styles-wrapper h3.entry-title a,body .editor-styles-wrapper h4.entry-title a{hyphens:auto;text-overflow:ellipsis;overflow:hidden;font-size:1em;line-height:1;text-decoration:none;color:#373d3f;color:var(--color-dark-gray)}body .editor-styles-wrapper h1.entry-title a:hover,body .editor-styles-wrapper h2.entry-title a:hover,body .editor-styles-wrapper h3.entry-title a:hover,body .editor-styles-wrapper h4.entry-title a:hover{text-decoration:underline}body .editor-styles-wrapper .format-quote .entry-content,body .editor-styles-wrapper .format-aside .entry-content,body .editor-styles-wrapper .format-status .entry-content{font-size:1.5em}body .editor-styles-wrapper .type-page h1.entry-title,body .editor-styles-wrapper .type-page h2.entry-title,body .editor-styles-wrapper .type-page h3.entry-title,body .editor-styles-wrapper .type-page h4.entry-title,body .editor-styles-wrapper .format-standard h1.entry-title,body .editor-styles-wrapper .format-standard h2.entry-title,body .editor-styles-wrapper .format-standard h3.entry-title,body .editor-styles-wrapper .format-standard h4.entry-title{font-size:3.5em}body .editor-styles-wrapper .entry-content,body .editor-styles-wrapper .entry-summary{color:#373d3f;color:var(--color-dark-gray);font-style:normal;font-size:1.2em;margin:0 auto}body .editor-styles-wrapper .entry-content .wp-block-cover-image,body .editor-styles-wrapper .entry-content .alignfull,body .editor-styles-wrapper .entry-summary .wp-block-cover-image,body .editor-styles-wrapper .entry-summary .alignfull{max-width:100%;width:100%}body .editor-styles-wrapper .entry-content .alignwide,body .editor-styles-wrapper .entry-summary .alignwide{width:auto;max-width:900px}body .editor-styles-wrapper .entry-content p.has-background,body .editor-styles-wrapper .entry-summary p.has-background{width:100%;max-width:100%;padding:30px calc((100% - 700px)/2);margin:0}body .editor-styles-wrapper .entry-content a,body .editor-styles-wrapper .entry-summary a{text-decoration:underline}@supports(text-decoration: underline #9bc53d){body .editor-styles-wrapper .entry-content a,body .editor-styles-wrapper .entry-summary a{text-decoration:underline #9bc53d;text-decoration:underline var(--color-android-green);text-decoration-thickness:3px;text-underline-offset:6px}}@supports(text-decoration: underline #9bc53d){body .editor-styles-wrapper .entry-content a:hover,body .editor-styles-wrapper .entry-summary a:hover{text-decoration:underline #fc0;text-decoration:underline var(--color-usc-gold);text-decoration-thickness:3px;text-underline-offset:6px}}body .editor-styles-wrapper .entry-actions{display:block}body .editor-styles-wrapper .entry-actions:before,body .editor-styles-wrapper .entry-actions:after{content:" ";display:table}body .editor-styles-wrapper .entry-actions:after{clear:both}body .editor-styles-wrapper #entry-share{display:inline-block;font-size:1em;font-family:"Lato",sans-serif;background-color:#fafafb;background-color:var(--color-background-gray);border:none;border-radius:3px;color:#373d3f;color:var(--color-dark-gray);line-height:inherit;padding:3px 7px;text-decoration:none;float:right}body .editor-styles-wrapper #entry-share:hover{background-color:#eef4e2;color:#40531e}body .editor-styles-wrapper #entry-share:before{display:inline-block;font:normal 1.1em "Dashicons";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;margin-right:0;position:relative;text-decoration:none;top:2px;vertical-align:text-middle;margin-right:5px;content:""}body .editor-styles-wrapper .page-link,body .editor-styles-wrapper .page-links{margin-bottom:1em}body .editor-styles-wrapper .entry-meta,body .editor-styles-wrapper .wp-caption-text,body .editor-styles-wrapper .gallery-caption,body .editor-styles-wrapper .page-link,body .editor-styles-wrapper .page-links{font-family:"Lato",sans-serif;clear:both;color:#4f575a;color:var(--color-gray);display:block}body .editor-styles-wrapper .entry-meta a,body .editor-styles-wrapper .wp-caption-text a,body .editor-styles-wrapper .gallery-caption a,body .editor-styles-wrapper .page-link a,body .editor-styles-wrapper .page-links a{color:#4f575a;color:var(--color-gray);text-decoration:none}body .editor-styles-wrapper .entry-meta a:hover,body .editor-styles-wrapper .wp-caption-text a:hover,body .editor-styles-wrapper .gallery-caption a:hover,body .editor-styles-wrapper .page-link a:hover,body .editor-styles-wrapper .page-links a:hover{text-decoration:underline}body .editor-styles-wrapper .entry-meta .avatar,body .editor-styles-wrapper .wp-caption-text .avatar,body .editor-styles-wrapper .gallery-caption .avatar,body .editor-styles-wrapper .page-link .avatar,body .editor-styles-wrapper .page-links .avatar{float:left;margin-right:10px}body .editor-styles-wrapper .entry-footer .author:before,body .editor-styles-wrapper .entry-footer .author:after{content:" ";display:table}body .editor-styles-wrapper .entry-footer .author:after{clear:both}body .editor-styles-wrapper .entry-meta{position:relative;margin-top:15px;margin-bottom:15px}body .editor-styles-wrapper .entry-meta.post-format{padding:0;margin:0;margin-bottom:10px}body .editor-styles-wrapper .entry-meta.post-format a,body .editor-styles-wrapper .entry-meta.post-format span,body .editor-styles-wrapper .entry-meta.post-format .entry-format:before{color:#b6bdbf;color:var(--color-lighter-gray);font-weight:bold;text-transform:lowercase}body .editor-styles-wrapper .entry-meta.post-format .entry-format:before{display:inline-block;font:normal 1.1em "Dashicons";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;isolation:isolate;margin-right:5px;position:relative;text-decoration:none;top:2px;vertical-align:text-middle;color:#b6bdbf;color:var(--color-lighter-gray)}body .editor-styles-wrapper .entry-meta .entry-format{line-height:1}body .editor-styles-wrapper .entry-meta address{font-size:1em;line-height:1.2;color:#373d3f;color:var(--color-dark-gray)}body .editor-styles-wrapper .entry-meta .entry-date,body .editor-styles-wrapper .entry-meta .entry-duration{font-size:.8em}body .editor-styles-wrapper .comments-link{font-size:1em;display:inline-block}body .editor-styles-wrapper .comments-link:before{display:inline-block;font:normal 1.1em "Dashicons";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;margin-right:0;position:relative;text-decoration:inherit;top:2px;vertical-align:text-middle;margin-right:5px;content:""}body .editor-styles-wrapper .tag-links,body .editor-styles-wrapper .cat-links{margin:10px 0;display:block}body .editor-styles-wrapper .tag-links ul,body .editor-styles-wrapper .cat-links ul{margin:0;padding:0}body .editor-styles-wrapper .tag-links li,body .editor-styles-wrapper .cat-links li{display:inline-block;margin:10px 8px 0 0;list-style-type:none;font-size:1.2em}body .editor-styles-wrapper .tag-links li a,body .editor-styles-wrapper .cat-links li a{font-size:1em;font-family:"Lato",sans-serif;background-color:#fafafb;background-color:var(--color-background-gray);border-radius:3px;color:#373d3f;color:var(--color-dark-gray);line-height:1;padding:5px 8px;text-decoration:none}body .editor-styles-wrapper .tag-links li a:hover,body .editor-styles-wrapper .cat-links li a:hover{background-color:#eef4e2;color:#40531e}body .editor-styles-wrapper .tag-links li a,body .editor-styles-wrapper .cat-links li a{font-size:.8em}body .editor-styles-wrapper #primary article{padding:0;margin-top:100px;position:relative}body .editor-styles-wrapper #primary article:before,body .editor-styles-wrapper #primary article:after{content:" ";display:table}body .editor-styles-wrapper #primary article:after{clear:both}body .editor-styles-wrapper #primary article .sep:first-of-type{display:none}body .editor-styles-wrapper #primary article.format-quote .post-format .entry-format:before{content:""}body .editor-styles-wrapper #primary article.format-aside .post-format .entry-format:before{content:""}body .editor-styles-wrapper #primary article.format-video .post-format .entry-format:before{content:""}body .editor-styles-wrapper #primary article.format-audio .post-format .entry-format:before{content:""}body .editor-styles-wrapper #primary article.format-image .post-format .entry-format:before,body .editor-styles-wrapper #primary article.format-photo .post-format .entry-format:before{content:""}body .editor-styles-wrapper #primary article.format-gallery .post-format .entry-format:before{content:""}body .editor-styles-wrapper #primary article.format-link .post-format .entry-format:before{content:""}body .editor-styles-wrapper #primary article.format-status .post-format .entry-format:before{content:""}body .editor-styles-wrapper #primary article.format-standard .post-format .entry-format:before{content:""}body .editor-styles-wrapper #primary article.type-page .post-format .entry-type-page:before{content:""}body .editor-styles-wrapper .edit-link{position:absolute;right:0;top:50px}body .editor-styles-wrapper .edit-link a{font-size:1em;font-family:"Lato",sans-serif;background-color:#fafafb;background-color:var(--color-background-gray);border-radius:3px;color:#373d3f;color:var(--color-dark-gray);line-height:1;padding:5px 8px;text-decoration:none}body .editor-styles-wrapper .edit-link a:hover{background-color:#eef4e2;color:#40531e}body .editor-styles-wrapper .more-link{display:block;font-size:.8em;color:#4f575a;color:var(--color-gray)}body .editor-styles-wrapper .entry-content .has-orioles-orange-background-color{background-color:#fa5b0f}body .editor-styles-wrapper .entry-content .has-orioles-orange-color{color:#fa5b0f}body .editor-styles-wrapper .entry-content .has-blue-background-color{background-color:#5fa7c5}body .editor-styles-wrapper .entry-content .has-blue-color{color:#5fa7c5}body .editor-styles-wrapper .entry-content .has-lighter-blue-background-color{background-color:#229fd8}body .editor-styles-wrapper .entry-content .has-lighter-blue-color{color:#229fd8}body .editor-styles-wrapper .entry-content .has-blue-jeans-background-color{background-color:#5bc0eb}body .editor-styles-wrapper .entry-content .has-blue-jeans-color{color:#5bc0eb}body .editor-styles-wrapper .entry-content .has-usc-gold-background-color{background-color:#fc0}body .editor-styles-wrapper .entry-content .has-usc-gold-color{color:#fc0}body .editor-styles-wrapper .entry-content .has-gargoyle-gas-background-color{background-color:#fde74c}body .editor-styles-wrapper .entry-content .has-gargoyle-gas-color{color:#fde74c}body .editor-styles-wrapper .entry-content .has-yellow-background-color{background-color:#fff9c0}body .editor-styles-wrapper .entry-content .has-yellow-color{color:#fff9c0}body .editor-styles-wrapper .entry-content .has-android-green-background-color{background-color:#9bc53d}body .editor-styles-wrapper .entry-content .has-android-green-color{color:#9bc53d}body .editor-styles-wrapper .entry-content .has-white-background-color{background-color:#fff;background-color:var(--color-white)}body .editor-styles-wrapper .entry-content .has-white-color{color:#fff;color:var(--color-white)}body .editor-styles-wrapper .entry-content .has-very-light-gray-background-color{background-color:#eee}body .editor-styles-wrapper .entry-content .has-very-light-gray-color{color:#eee}body .editor-styles-wrapper .entry-content .has-very-dark-gray-background-color{background-color:#444}body .editor-styles-wrapper .entry-content .has-very-dark-gray-color{color:#444}body .editor-styles-wrapper .sticky{color:inherit}body .editor-styles-wrapper .wp-block-footnotes{border-top:solid 1px #d3d3d3;margin-top:2em;padding-top:2em;font-size:.8em;padding-left:0;list-style-position:inside} - -/*# sourceMappingURL=editor-style.css.map */ \ No newline at end of file diff --git a/assets/css/editor-style.css.map b/assets/css/editor-style.css.map deleted file mode 100644 index c9c15dad..00000000 --- a/assets/css/editor-style.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["file:///Users/pfefferle/Code/autonomie/assets/sass/editor-style.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/_vars.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/_normalize.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/_base.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/_post.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/_mixins.scss"],"names":[],"mappings":"CAAA,yFAIC,sCACC,UCoCc,MDhCf,uDACC,UC8BW,MD1BZ,uDACC,eEPF,iCACC,uBACA,0BACA,8BAOD,iCACC,SAaD,ucAaC,cAQD,4IAIC,qBACA,wBAQD,kDACC,aACA,SAQD,0EAEC,aAUD,8BACC,+BAOD,yEAEC,UAUD,wCACC,yBAOD,iEAEC,iBAOD,gCACC,kBAQD,+BACC,cACA,eAOD,iCACC,gBACA,WAOD,kCACC,cAOD,gEAEC,cACA,cACA,kBACA,wBAGD,gCACC,WAGD,gCACC,eAUD,gCACC,SAOD,2CACC,gBAUD,mCACC,gBAOD,+BACC,4BACA,uBACA,SAOD,gCACC,cAOD,kIAIC,gCACA,cAkBD,kLAKC,cACA,aACA,SAOD,mCACC,iBAUD,sEAEC,oBAWD,oLAIC,0BACA,eAOD,8FAEC,eAOD,yGAEC,SACA,UAQD,kCACC,mBAWD,+FAEC,sBACA,UASD,oJAEC,YASD,+CACC,6BACA,4BACA,+BACA,uBASD,uJAEC,wBAOD,qCACC,wBACA,aACA,2BAQD,mCACC,SACA,UAOD,qCACC,cAQD,qCACC,iBAUD,kCACC,yBACA,iBAGD,8DAEC,UCzaD,iCACC,iBFkCO,KEjCP,yCACA,cACA,6BAEA,4BACA,gBACA,qBAGD,uGACC,mBAGD,oCACC,kBAGD,8BACC,MFjBW,QEkBX,6BAGD,gCACC,KFtBW,QEuBX,4BAGD,oCACC,qBAGD,iCACC,wBAEA,wCACC,iCACA,sCACA,YAIF,0EAEC,MFzCM,QE0CN,wBACA,cACA,kBACA,kBACA,gBACA,iCAEA,0QAGC,MFpDK,QEqDL,wBACA,cACA,eACA,kBACA,mBAKA,sMACC,aAMF,2IAGC,gBAIF,mFAEC,UACA,SAEA,qSAGC,iBAGD,yGACC,aACA,qBACA,YACA,kBAIF,mCACC,YACA,iBAGD,uCACC,SACA,8BACA,SACA,kBACA,gBAGD,iCACC,wCACA,yBACA,mBACA,oBAEA,mCACC,yBAIF,gCACC,WF3FQ,QE4FR,qBAGD,0LAMC,iCACA,gBACA,gBACA,kBAGD,+BACC,gBAGD,+BACC,cAGD,+BACC,gBAGD,+BACC,gBAGD,+BACC,gBAGD,+BACC,gBAGD,+BACC,cACA,YACA,4BACA,SACA,6BACA,kBAGD,gCACC,gBACA,mBACA,sBACA,WACA,cACA,aACA,qBACA,qBAEA,qCACC,yBACA,cACA,sBACA,UACA,oBAIF,qQACC,kBAGD,mIACC,iBClMC,oKACC,eAMF,yEACC,SACA,WACA,eACA,kBACA,YACA,eACA,iBACA,mBACA,8BACA,2BACA,yBACA,sBAEA,kQACC,MHUK,KGRL,wQACC,MHOI,KGHN,uHACC,MHEK,KGCN,+FACC,kBACA,OACA,SACA,WACA,mBAGD,iGACC,cACA,MHLa,MGQd,2GACC,gBAGD,iFACC,sBAKH,yDACC,gBAMC,qHACC,WACA,6BACA,YACA,cACA,kBACA,cACA,iBAKH,4KAIC,SACA,UAEA,cACA,kBAEA,oLACC,aACA,uBACA,gBACA,cACA,cACA,qBACA,MH5FU,QG6FV,6BAEA,4MACC,0BAMF,4KACC,gBAMD,wcAIC,gBAIF,sFAEC,MHvHW,QGwHX,6BACA,kBACA,gBACA,cAEA,8OAEC,eACA,WAGD,4GACC,WACA,UHhGW,MGmGZ,wHACC,WACA,eACA,oCACA,SAGD,0FACC,0BAEA,8CAHD,0FAIE,kCACA,qDACA,8BACA,2BAIA,8CADD,sGAEE,+BACA,gDACA,8BACA,2BAMJ,2CACC,cC7JA,mGAEC,YACA,cAGD,iDACC,WD2JF,yCACC,qBACA,cACA,8BACA,iBHxKiB,QGyKjB,8CACA,YACA,kBACA,MHlLW,QGmLX,6BACA,oBACA,gBACA,qBACA,YAEA,+CACC,iBHvKY,QGwKZ,MHzKW,QG4KZ,gDACC,qBACA,8BACA,mCACA,kCACA,kCACA,eACA,kBACA,qBACA,QACA,2BACA,iBACA,YAIF,+EAEC,kBAGD,iNAKC,8BACA,WACA,MHzNM,QG0NN,wBACA,cAEA,2NACC,MH9NK,QG+NL,wBACA,qBAGD,yPACC,0BAGD,yPACC,WACA,kBClOD,iHAEC,YACA,cAGD,wDACC,WDmOF,wCACC,kBAEA,gBACA,mBAEA,oDACC,UACA,SACA,mBAGD,wLAGC,MH9Pa,QG+Pb,gCACA,iBACA,yBAGD,yEACC,qBACA,8BACA,mCACA,kCACA,kCACA,kBACA,iBACA,kBACA,qBACA,QACA,2BACA,MHhRa,QGiRb,gCAGD,sDACC,cAGD,gDACC,cACA,gBACA,MH9RU,QG+RV,6BAGD,4GAEC,eAIF,2CACC,cACA,qBAEA,kDACC,qBACA,8BACA,mCACA,kCACA,kCACA,eACA,kBACA,wBACA,QACA,2BACA,iBACA,YAIF,8EAEC,cACA,cAEA,oFACC,SACA,UAGD,oFACC,qBACA,oBACA,qBACA,gBCtTD,wFACC,cACA,8BACA,iBJjBgB,QIkBhB,8CACA,kBACA,MJ1BU,QI2BV,6BACA,cACA,gBACA,qBAEA,oGACC,iBJdW,QIeX,MJhBU,QG4TX,wFACC,eAKH,6CACC,UACA,iBACA,kBC/UA,uGAEC,YACA,cAGD,mDACC,WD4UD,gEACC,aAGD,4FACC,YAGD,4FACC,YAGD,4FACC,YAGD,4FACC,YAGD,wLAEC,YAGD,8FACC,YAGD,2FACC,YAGD,6FACC,YAGD,+FACC,YAGD,4FACC,YAIF,uCACC,kBACA,QACA,SCxXA,yCACC,cACA,8BACA,iBJjBgB,QIkBhB,8CACA,kBACA,MJ1BU,QI2BV,6BACA,cACA,gBACA,qBAEA,+CACC,iBJdW,QIeX,MJhBU,QG+Xb,uCACC,cACA,eACA,MHnZM,QGoZN,wBAIA,gFACC,iBH/Xe,QGkYhB,qEACC,MHnYe,QGsYhB,sEACC,iBHzZK,QG4ZN,2DACC,MH7ZK,QGgaN,8EACC,iBH5Za,QG+Zd,mEACC,MHhaa,QGmad,4EACC,iBHraW,QGwaZ,iEACC,MHzaW,QG4aZ,0EACC,iBH9ZS,KGiaV,+DACC,MHlaS,KGqaV,8EACC,iBHraa,QGwad,mEACC,MHzaa,QG4ad,wEACC,iBH5aO,QG+aR,6DACC,MHhbO,QGmbR,+EACC,iBHnbc,QGsbf,oEACC,MHvbc,QG0bf,uEACC,iBH1bM,KG2bN,oCAGD,4DACC,MH/bM,KGgcN,yBAGD,iFACC,iBHncgB,KGscjB,sEACC,MHvcgB,KG0cjB,gFACC,iBH1ce,KG6chB,qEACC,MH9ce,KGkdjB,oCACC,cAID,gDACC,6BACA,eACA,gBACA,eACA,eACA","file":"editor-style.css"} \ No newline at end of file diff --git a/assets/css/narrow-width.css b/assets/css/narrow-width.css deleted file mode 100644 index 3d4bfd1d..00000000 --- a/assets/css/narrow-width.css +++ /dev/null @@ -1,3 +0,0 @@ -html{font-size:1em}#sidebar,.site-header .site-branding,.site-header .page-banner #page-description,.site-header .page-banner #page-title,.site-header .page-banner #page-meta,.site-navigation,.has-full-width-featured-image .entry-header .entry-header-wrapper>*{width:90%}.page-banner .avatar{width:80px;height:80px}.page-branding.author #page-description{font-size:1.2em}.site-header .page-banner .page-branding.author #page-title{font-size:2em}.entry-footer .author .fn,.entry-footer .author .note,.entry-footer .author .subscribe{margin-left:inherit}.entry-content p.has-background,.entry-summary p.has-background{padding:30px 5%}.entry-footer .author{width:100%;max-width:100%}.alignright,.alignleft,.wp-block-image .alignright,.wp-block-image .alignleft,.wp-block-button.alignright,.wp-block-button.alignleft{float:none;clear:both;margin:1.2em auto}.entry-content>*,.entry-summary>*,.entry-content>form,.entry-content>div,.entry-header,.entry-footer>*,.entry-reaction,#comments,#nav-above,#nav-below,.reaction-list,.wp-block-quote.is-style-large{max-width:90%;margin:1.2em auto;box-sizing:border-box}.type-page h1.entry-title,.type-page h2.entry-title,.type-page h3.entry-title,.type-page h4.entry-title,.format-standard h1.entry-title,.format-standard h2.entry-title,.format-standard h3.entry-title,.format-standard h4.entry-title{font-size:3em}.entry-content>pre,.entry-content>table{max-width:100%}.entry-header .entry-title{font-size:2.5em}.site-header .page-branding{font-size:.8em}.site-header .search-field{width:100px}.page-header{width:100%}#nav-below .nav-previous{bottom:20px;z-index:1}#nav-below .nav-next{bottom:20px;z-index:1}.error404 .entry-content .widget,#sidebar #secondary,#sidebar #tertiary,#sidebar #quaternary{width:90%;clear:both}#sidebar aside{margin:50px 0}ul.children{padding-left:10px} - -/*# sourceMappingURL=narrow-width.css.map */ \ No newline at end of file diff --git a/assets/css/narrow-width.css.map b/assets/css/narrow-width.css.map deleted file mode 100644 index b0368bbf..00000000 --- a/assets/css/narrow-width.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["file:///Users/pfefferle/Code/autonomie/assets/sass/responsive_narrow.scss"],"names":[],"mappings":"AAGA,KACC,cAGD,kPAOC,UAGD,qBACC,WACA,YAGD,wCACC,gBAGD,4DACC,cAGD,uFAGC,oBAKA,gEACC,gBAIF,sBACC,WACA,eAGD,qIAMC,WACA,WACA,kBAGD,qMAYC,cACA,kBACA,sBAKA,wOAIC,cAIF,wCAEC,eAGD,2BACC,gBAIA,4BACC,eAGD,2BACC,YAIF,aACC,WAIA,yBACC,YACA,UAGD,qBACC,YACA,UAIF,6FAIC,UACA,WAIA,eACC,cAIF,YACC","file":"narrow-width.css"} \ No newline at end of file diff --git a/assets/css/print.css b/assets/css/print.css index 7ec95849..bda2e812 100644 --- a/assets/css/print.css +++ b/assets/css/print.css @@ -1,3 +1,90 @@ -*,*:before,*:after,*:first-letter,*:first-line{background:rgba(0,0,0,0) !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #4f575a;border-color:var(--color-gray);page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid} +/** + * Print Styles + * + * Loaded with media="print" via wp_enqueue_style in functions.php. + * Uses theme.json CSS custom properties for consistency. + */ -/*# sourceMappingURL=print.css.map */ \ No newline at end of file +*, +*::before, +*::after, +*::first-letter, +*::first-line { + background: transparent !important; + color: #000 !important; + box-shadow: none !important; + text-shadow: none !important; +} + +a, +a:visited { + text-decoration: underline; +} + +a[href]::after { + content: " (" attr(href) ")"; +} + +abbr[title]::after { + content: " (" attr(title) ")"; +} + +/* Don't show links for fragment identifiers or javascript: */ +a[href^="#"]::after, +a[href^="javascript:"]::after { + content: ""; +} + +/* Don't show URL for image links or navigation links */ +.wp-block-navigation a[href]::after, +.wp-block-site-title a[href]::after, +a[href] img + ::after { + content: ""; +} + +pre, +blockquote { + border: 1px solid var(--wp--preset--color--gray); + page-break-inside: avoid; +} + +thead { + display: table-header-group; +} + +tr, +img { + page-break-inside: avoid; +} + +img { + max-width: 100% !important; + filter: none !important; +} + +p, +h2, +h3 { + orphans: 3; + widows: 3; +} + +h2, +h3 { + page-break-after: avoid; +} + +/* Hide elements that serve no purpose in print */ +.wp-block-navigation, +.wp-block-search, +.wp-block-comment-reply-link, +.comment-reply-link, +.wp-block-query-pagination, +.site-header { + display: none !important; +} + +/* Ensure content area uses full width */ +.wp-site-blocks { + max-width: 100%; +} diff --git a/assets/css/print.css.map b/assets/css/print.css.map deleted file mode 100644 index 5adacc95..00000000 --- a/assets/css/print.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["file:///Users/pfefferle/Code/autonomie/assets/sass/print.scss"],"names":[],"mappings":"AAGA,+CAKC,oCACA,sBAEA,2BACA,4BAGD,YAEC,0BAGD,cACC,4BAGD,kBACC,6BAQD,gDAEC,WAGD,eAEC,yBACA,+BACA,wBAQD,MACC,2BAGD,OAEC,wBAGD,IACC,0BAGD,QAGC,UACA,SAGD,MAEC","file":"print.css"} \ No newline at end of file diff --git a/assets/css/wide-width.css b/assets/css/wide-width.css deleted file mode 100644 index f7b13d4c..00000000 --- a/assets/css/wide-width.css +++ /dev/null @@ -1,3 +0,0 @@ -#sidebar,.site-navigation,.site-header .site-branding,.site-header .page-banner #page-title,.site-header .page-banner #page-description,.has-full-width-featured-image .entry-header .entry-header-wrapper>*{width:900px}.entry-content .wp-block-image,.entry-content .entry-attachment{width:900px;max-width:900px}.entry-content .wp-block-image.alignfull{width:100%;max-width:100%}#sidebar{width:1300px;max-width:100%}#sidebar aside{margin:50px 50px}#sidebar #secondary{display:inline-block;float:left;width:33%}#sidebar #tertiary{display:inline-block;float:left;width:33%}#sidebar #quaternary{display:inline-block;float:left;width:33%}.entry-content>span{display:inline-block}.entry-content>object,.entry-content>embed,.entry-content>iframe,.entry-content>figure,.entry-content .wp-block-pullquote,.entry-summary>object,.entry-summary>embed,.entry-summary>iframe,.entry-summary>figure,.entry-summary .wp-block-pullquote{max-width:900px;box-sizing:border-box}.entry-content>object small,.entry-content>object figcaption,.entry-content>object cite,.entry-content>embed small,.entry-content>embed figcaption,.entry-content>embed cite,.entry-content>iframe small,.entry-content>iframe figcaption,.entry-content>iframe cite,.entry-content>figure small,.entry-content>figure figcaption,.entry-content>figure cite,.entry-content .wp-block-pullquote small,.entry-content .wp-block-pullquote figcaption,.entry-content .wp-block-pullquote cite,.entry-summary>object small,.entry-summary>object figcaption,.entry-summary>object cite,.entry-summary>embed small,.entry-summary>embed figcaption,.entry-summary>embed cite,.entry-summary>iframe small,.entry-summary>iframe figcaption,.entry-summary>iframe cite,.entry-summary>figure small,.entry-summary>figure figcaption,.entry-summary>figure cite,.entry-summary .wp-block-pullquote small,.entry-summary .wp-block-pullquote figcaption,.entry-summary .wp-block-pullquote cite{margin-right:100px}.entry-content>table,.entry-content>pre,.entry-summary>table,.entry-summary>pre{width:900px;max-width:900px;box-sizing:border-box}.wp-audio-shortcode{width:700px !important}figure.alignleft,.wp-block-cover.alignleft,.wp-block-gallery.alignleft,.wp-block-button.alignleft{float:left;margin-top:.3em;margin-right:2em;margin-left:calc(50% - 350px)}figure.alignright,.wp-block-cover.alignright,.wp-block-gallery.alignright,.wp-block-button.alignright{float:right;margin-top:.3em;margin-left:2em;margin-right:calc(50% - 350px)}p.alignleft{font-size:.9em;font-style:italic;float:left;color:#677275;color:var(--color-light-gray);padding:1em 0 1em 0;margin-right:2.5em;margin-left:calc(50% - 450px);width:400px;border-top:1px solid #677275;border-top-color:var(--color-light-gray);border-bottom:1px solid #677275;border-bottom-color:var(--color-light-gray)}p.alignright{font-size:.9em;font-style:italic;float:right;color:#677275;color:var(--color-light-gray);padding:1em 0 1em 0;margin-left:2.5em;margin-right:calc(50% - 450px);width:400px;border-top:1px solid #677275;border-top-color:var(--color-light-gray);border-bottom:1px solid #677275;border-bottom-color:var(--color-light-gray)}.alignright figcaption{display:block;height:68px;margin-top:0px;text-align:left;width:100px;margin-left:20px;word-break:break-word;word-wrap:break-word;float:right}.alignright figcaption:before{width:25%;margin-right:75%;border-top:1px solid #677275;border-top-color:var(--color-light-gray);display:block;content:"";margin-bottom:10px}.alignleft figcaption{display:block;height:68px;margin-top:0px;text-align:right;width:100px;margin-right:20px;word-break:break-word;word-wrap:break-word;float:left}.alignleft figcaption:before{width:25%;margin-left:75%;border-top:1px solid #677275;border-top-color:var(--color-light-gray);display:block;content:"";margin-bottom:10px}article.error404 .entry-content{width:900px;margin:auto auto} - -/*# sourceMappingURL=wide-width.css.map */ \ No newline at end of file diff --git a/assets/css/wide-width.css.map b/assets/css/wide-width.css.map deleted file mode 100644 index de2c5943..00000000 --- a/assets/css/wide-width.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["file:///Users/pfefferle/Code/autonomie/assets/sass/responsive_wide.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/_vars.scss"],"names":[],"mappings":"AAGA,6MAMC,MC+BY,MD3BZ,gEAEC,MCyBW,MDxBX,UCwBW,MDrBZ,yCACC,WACA,eAIF,SACC,aACA,eAEA,eACC,iBAGD,oBACC,qBACA,WACA,UAGD,mBACC,qBACA,WACA,UAGD,qBACC,qBACA,WACA,UAIF,oBACC,qBAKA,oPAKC,UCvBW,MDwBX,sBAEA,w7BAGC,aC3BM,MDkCR,gFAEC,MCtCW,MDuCX,UCvCW,MDwCX,sBAIF,oBACC,uBAOA,kGACC,WACA,gBACA,iBACA,8BAGD,sGACC,YACA,gBACA,gBACA,+BAKD,YACC,eACA,kBACA,WACA,MC3GW,QD4GX,8BACA,oBACA,mBACA,8BACA,YACA,6BACA,yCACA,gCACA,4CAGD,aACC,eACA,kBACA,YACA,MC3HW,QD4HX,8BACA,oBACA,kBACA,+BACA,YACA,6BACA,yCACA,gCACA,4CAKD,uBACC,cACA,YACA,eACA,gBACA,MCzGO,MD0GP,iBACA,sBACA,qBACA,YAEA,8BACC,UACA,iBACA,6BACA,yCACA,cACA,WACA,mBAMF,sBACC,cACA,YACA,eACA,iBACA,MCjIO,MDkIP,kBACA,sBACA,qBACA,WAEA,6BACC,UACA,gBACA,6BACA,yCACA,cACA,WACA,mBAKH,gCACC,MCtJY,MDuJZ","file":"wide-width.css"} \ No newline at end of file diff --git a/assets/font/lato/lato-v25-latin-400.woff2 b/assets/font/lato/lato-v25-latin-400.woff2 new file mode 100644 index 00000000..64961645 Binary files /dev/null and b/assets/font/lato/lato-v25-latin-400.woff2 differ diff --git a/assets/font/lato/lato-v25-latin-400italic.woff2 b/assets/font/lato/lato-v25-latin-400italic.woff2 new file mode 100644 index 00000000..855e0778 Binary files /dev/null and b/assets/font/lato/lato-v25-latin-400italic.woff2 differ diff --git a/assets/font/lato/lato-v25-latin-700.woff2 b/assets/font/lato/lato-v25-latin-700.woff2 new file mode 100644 index 00000000..4ff78dd0 Binary files /dev/null and b/assets/font/lato/lato-v25-latin-700.woff2 differ diff --git a/assets/font/lato/lato-v25-latin-700italic.woff2 b/assets/font/lato/lato-v25-latin-700italic.woff2 new file mode 100644 index 00000000..70443334 Binary files /dev/null and b/assets/font/lato/lato-v25-latin-700italic.woff2 differ diff --git a/assets/font/lato/lato-v25-latin-900.woff2 b/assets/font/lato/lato-v25-latin-900.woff2 new file mode 100644 index 00000000..045a43d1 Binary files /dev/null and b/assets/font/lato/lato-v25-latin-900.woff2 differ diff --git a/assets/font/lato/lato-v25-latin-900italic.woff2 b/assets/font/lato/lato-v25-latin-900italic.woff2 new file mode 100644 index 00000000..031a42f3 Binary files /dev/null and b/assets/font/lato/lato-v25-latin-900italic.woff2 differ diff --git a/assets/font/merriweather/merriweather-v33-latin-variable.woff2 b/assets/font/merriweather/merriweather-v33-latin-variable.woff2 new file mode 100644 index 00000000..45a31ba5 Binary files /dev/null and b/assets/font/merriweather/merriweather-v33-latin-variable.woff2 differ diff --git a/assets/images/beach.jpeg b/assets/images/beach.jpeg deleted file mode 100644 index eb83be60..00000000 Binary files a/assets/images/beach.jpeg and /dev/null differ diff --git a/assets/images/lights.jpeg b/assets/images/lights.jpeg deleted file mode 100644 index 25cd6cb1..00000000 Binary files a/assets/images/lights.jpeg and /dev/null differ diff --git a/assets/images/sea.jpeg b/assets/images/sea.jpeg deleted file mode 100644 index 9bc9cb61..00000000 Binary files a/assets/images/sea.jpeg and /dev/null differ diff --git a/assets/js/block-editor.js b/assets/js/block-editor.js deleted file mode 100644 index 9f04d873..00000000 --- a/assets/js/block-editor.js +++ /dev/null @@ -1,78 +0,0 @@ -"use strict" - -// Inspired by https://digitalapps.co/gutenberg-extending-featured-image-component/ - -const el = wp.element.createElement; -const withState = wp.compose.withState; -const withSelect = wp.data.withSelect; -const withDispatch = wp.data.withDispatch; -const { __ } = wp.i18n; - -wp.hooks.addFilter( - 'editor.PostFeaturedImage', - 'autonomie/full_width_featured_image', - wrapPostFeaturedImage -); - -function wrapPostFeaturedImage( OriginalComponent ) { - return function( props ) { - return ( - el( - wp.element.Fragment, - {}, - '', - el( - OriginalComponent, - props - ), - el( - composedFullWidthFeaturedImageCheckBox - ) - ) - ); - } -} - -class FullWidthFeaturedImageCheckBox extends React.Component { - render() { - const { - meta, - updateFullWidthFeaturedImage, - } = this.props; - - return ( - el( - wp.components.CheckboxControl, - { - label: __( 'Use as post cover (full-width)', 'autonomie' ), - checked: meta.full_width_featured_image, - onChange: - ( value ) => { - this.setState( { isChecked: value } ); - updateFullWidthFeaturedImage( value, meta ); - } - } - ) - ) - } -} - -const composedFullWidthFeaturedImageCheckBox = wp.compose.compose( [ - withState( ( value ) => { isChecked: value } ), - withSelect( ( select ) => { - const currentMeta = select( 'core/editor' ).getCurrentPostAttribute( 'meta' ); - const editedMeta = select( 'core/editor' ).getEditedPostAttribute( 'meta' ); - return { - meta: { ...currentMeta, ...editedMeta }, - }; - } ), - withDispatch( ( dispatch ) => ( { - updateFullWidthFeaturedImage( value, meta ) { - meta = { - ...meta, - full_width_featured_image: value, - }; - dispatch( 'core/editor' ).editPost( { meta } ); - }, - } ) ), -] )( FullWidthFeaturedImageCheckBox ); diff --git a/assets/js/navigation.js b/assets/js/navigation.js deleted file mode 100644 index ee626761..00000000 --- a/assets/js/navigation.js +++ /dev/null @@ -1,82 +0,0 @@ -/** - * navigation.js - * - * Handles toggling the navigation menu for small screens and enables tab - * support for dropdown menus. - */ -( function() { - var container, button, menu, links, subMenus; - - container = document.getElementById( 'site-navigation' ); - - if ( ! container ) { - return; - } - - button = container.getElementsByTagName( 'button' )[0]; - if ( 'undefined' === typeof button ) { - return; - } - - menu = container.getElementsByTagName( 'ul' )[0]; - - // Hide menu toggle button if menu is empty and return early. - if ( 'undefined' === typeof menu ) { - button.style.display = 'none'; - return; - } - - menu.setAttribute( 'aria-expanded', 'false' ); - if ( -1 === menu.className.indexOf( 'nav-menu' ) ) { - menu.className += ' nav-menu'; - } - - button.onclick = function() { - if ( -1 !== container.className.indexOf( 'toggled' ) ) { - container.className = container.className.replace( ' toggled', '' ); - button.setAttribute( 'aria-expanded', 'false' ); - menu.setAttribute( 'aria-expanded', 'false' ); - } else { - container.className += ' toggled'; - button.setAttribute( 'aria-expanded', 'true' ); - menu.setAttribute( 'aria-expanded', 'true' ); - } - }; - - // Get all the link elements within the menu. - links = menu.getElementsByTagName( 'a' ); - subMenus = menu.getElementsByTagName( 'ul' ); - - // Set menu items with submenus to aria-haspopup="true". - for ( var i = 0, len = subMenus.length; i < len; i++ ) { - subMenus[i].parentNode.setAttribute( 'aria-haspopup', 'true' ); - } - - // Each time a menu link is focused or blurred, toggle focus. - for ( i = 0, len = links.length; i < len; i++ ) { - links[i].addEventListener( 'focus', toggleFocus, true ); - links[i].addEventListener( 'blur', toggleFocus, true ); - } - - /** - * Sets or removes .focus class on an element. - */ - function toggleFocus() { - var self = this; - - // Move up through the ancestors of the current link until we hit .nav-menu. - while ( -1 === self.className.indexOf( 'nav-menu' ) ) { - - // On li elements toggle the class .focus. - if ( 'li' === self.tagName.toLowerCase() ) { - if ( -1 !== self.className.indexOf( 'focus' ) ) { - self.className = self.className.replace( ' focus', '' ); - } else { - self.className += ' focus'; - } - } - - self = self.parentElement; - } - } -} )(); diff --git a/assets/js/share.js b/assets/js/share.js deleted file mode 100644 index b9c42283..00000000 --- a/assets/js/share.js +++ /dev/null @@ -1,26 +0,0 @@ -( function() { - entry_share = document.getElementById('entry-share'); - - if ( ! entry_share ) { - return false; - } - - entry_share.onclick = function share() { - if (navigator.share) { - navigator.share( - { - title: document.querySelector('title').textContent, - url: document.querySelector('link[rel="canonical"]').getAttribute('href') - } - ); - } else { - var citation_options = document.getElementById('share-options'); - if (citation_options.style.display === 'none') { - citation_options.style.display = 'block'; - } else { - citation_options.style.display = 'none'; - } - } - return false; - } -})(); diff --git a/assets/sass/_base.scss b/assets/sass/_base.scss deleted file mode 100644 index a0c83493..00000000 --- a/assets/sass/_base.scss +++ /dev/null @@ -1,199 +0,0 @@ -body { - background-color: $white; - background-color: var(--color-background); - color: $dark-gray; - color: var(--color-dark-gray); - - font-family: Lato, sans-serif; - font-weight: 400; - word-wrap: break-word; -} - -*, ::before, ::after { - box-sizing: inherit; -} - -address { - font-style: normal; -} - -a { - color: $dark-gray; - color: var(--color-dark-gray); -} - -svg { - fill: $dark-gray; - fill: var(--color-dark-gray); -} - -a:hover { - text-decoration: none; -} - -abbr { - font-variant: small-caps; - - &[title] { - border-bottom: 1px dotted $gray; - border-bottom-color: var(--color-gray); - cursor: help; - } -} - -blockquote, -figure { - color: $gray; - color: var(--color-gray); - font-size: 1em; - font-style: italic; - position: relative; - line-height: 1.5; - font-family: "Merriweather", serif; - - small, - figcaption, - cite { - color: $gray; - color: var(--color-gray); - display: block; - font-size: .7em; - font-style: normal; - font-weight: normal; - } - - cite, - small { - &:before { - content: "\2014 \00A0"; - } - } -} - -blockquote { - small, - figcaption, - cite { - text-align: left; - } -} - -figure, -.wp-block-pullquote { - padding: 0; - margin: 0; - - small, - figcaption, - cite { - text-align: right; - } - - blockquote { - hyphens: auto; - word-wrap: break-word; - border: none; - text-align: center; - } -} - -iframe { - border: none; - border-spacing: 0; -} - -blockquote { - border: 0; - border-left: 3px solid $border-gray; - margin: 0; - padding-left: 30px; - line-height: 1.8; -} - -code { - background-color: var(--color-dark-gray); - color: var(--color-white); - border-radius: 0.3em; - padding: 4px 5px 5px; - - a { - color: var(--color-white); - } -} - -ins { - background: $yellow; - text-decoration: none; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - font-family: "Merriweather", serif; - font-weight: 100; - margin-bottom: 0; - line-height: 1.2em; -} - -h1 { - font-size: 2.2em; -} - -h2 { - font-size: 2.0em; -} - -h3 { - font-size: 1.8em; -} - -h4 { - font-size: 1.6em; -} - -h5 { - font-size: 1.4em; -} - -h6 { - font-size: 1.2em; -} - -hr { - display: block; - width: 200px; - margin: 60px auto !important; - border: 0; - border-top: 1px solid $border-gray; - text-align: center; -} - -pre { - margin-top: 50px; - margin-bottom: 50px; - background-color: #000; - color: #fff; - display: block; - padding: 50px; - white-space: pre-wrap; - word-wrap: break-word; - - code { - background-color: inherit; - color: inherit; - border-radius: inherit; - padding: 0; - white-space: inherit; - } -} - -h1, h2, h3, h4, h5, h6, caption, figcaption { - text-wrap: balance; -} - -p, ul, ol, blockquote { - text-wrap: pretty; -} diff --git a/assets/sass/_block.scss b/assets/sass/_block.scss deleted file mode 100644 index dbede3a0..00000000 --- a/assets/sass/_block.scss +++ /dev/null @@ -1,31 +0,0 @@ -.wp-block-preformatted { - background-color: inherit; - color: inherit; - border: 1px solid $lighter-gray; - border-color: var(--color-lighter-gray); -} - -.wp-block-preformatted { - background-color: inherit; - color: inherit; - border: 1px solid $lighter-gray; - border-color: var(--color-lighter-gray); -} - -.wp-block-columns .aligncenter { - width: auto; - display: block; -} - -.wp-block-button.aligncenter { - display: block; - width: auto; -} - -.wp-block-cover p:not(.has-text-color) { - color: $white; -} - -.entry-content .wp-block-cover { - display: flex; -} diff --git a/assets/sass/_comment.scss b/assets/sass/_comment.scss deleted file mode 100644 index 6a5e519a..00000000 --- a/assets/sass/_comment.scss +++ /dev/null @@ -1,172 +0,0 @@ -#comments { - clear: both; - - input[type="text"], - input[type="password"], - input[type="email"], - input[type="url"], - textarea { - display: block; - width: 95%; - } - - .comment-form-cookies-consent label[for="wp-comment-cookies-consent"] { - display: inline; - margin-left: 10px; - } - - input { - display: block; - } - - input[type="checkbox"] { - display: inline; - } - - label { - display: block; - color: $gray; - color: var(--color-gray); - } - - .says { - display: none; - } - - h2#comments-title { - margin-top: 0; - padding-top: 0; - } -} - -article.comment { - display: block; - position: relative; - padding: 25px 0; - line-height: 2; -} - -#respond .form-allowed-tags { - clear: both; - width: 98%; -} - -#respond .form-allowed-tags code { - display: block; -} - -.form-allowed-tags { - display: none; -} - -.required-field-message { - display: block; -} - -#comments-title, -#reply-title { - padding: 0; - margin: 0; - font-size: 2em; -} - -a.comment-reply-link { - font-size: 12px; - height: 16px; - line-height: 16px; - - &:before { - font-family: "Dashicons"; - content: "\f101"; - padding-right: 5px; - text-decoration: none; - } -} - -li.comment { - list-style: none outside none; - margin: 5px 0; - - .comment-meta cite { - font-style: normal; - font-weight: normal; - } - - img.avatar { - float: left; - } -} - -.comment-meta, -.comment-notes, -.logged-in-as { - display: block; - font-family: Lato, sans-serif; - color: $gray; - color: var(--color-gray); -} - -.comment-meta { - address { - line-height: 1.2; - } - - time { - font-size: .7em; - } -} - -.comment-meta a, -.comment-reply-link, -.logged-in-as a { - color: $gray; - color: var(--color-gray); - text-decoration: none; - - &:hover { - text-decoration: underline; - } -} - -ol.commentlist { - margin: 0; - padding: 0; - - .avatar { - float: left; - margin-right: 10px; - width: 48px; - height: 48px; - } -} - -ul.children { - padding-left: 20px; -} - -.comment-content { - font-size: 1.1em; - line-height: 2em; - - cite { - font-style: normal; - font-weight: normal; - font-size: 12px; - } -} - -.commentlist .odd article { -} - -.bypostauthor { - color: inherit; -} - -.comment-respond { - padding: 25px 0; -} - -.nocomments { - text-align: center; - font-size: 2em; -} diff --git a/assets/sass/_darkmode.scss b/assets/sass/_darkmode.scss deleted file mode 100644 index 93f44fcf..00000000 --- a/assets/sass/_darkmode.scss +++ /dev/null @@ -1,30 +0,0 @@ -:root { - --color-background: #{$white}; - --color-white: #{$white}; - --color-dark-gray: #{$dark-gray}; - --color-gray: #{$gray}; - --color-light-gray: #{$light-gray}; - --color-lighter-gray: #{$lighter-gray}; - --color-border-gray: #{$border-gray}; - --color-background-gray: #{$background-gray}; - --color-android-green: #{$android-green}; - --color-usc-gold: #{$usc-gold}; - color-scheme: light dark; -} - -@media (prefers-color-scheme: dark) { - :root { - --color-background: #{$dark-gray}; - --color-white: #{$dark-gray}; - --color-dark-gray: #{$white}; - --color-gray: #{$white}; - --color-light-gray: #{$white}; - --color-lighter-gray: #{$white}; - --color-border-gray: #{$light-gray}; - --color-background-gray: #{$gray}; - } - - img { - filter: brightness(.8) contrast(1.2); - } -} diff --git a/assets/sass/_form.scss b/assets/sass/_form.scss deleted file mode 100644 index 6a4b2677..00000000 --- a/assets/sass/_form.scss +++ /dev/null @@ -1,70 +0,0 @@ -input[type="text"], -input[type="password"], -input[type="email"], -input[type="url"], -textarea { - border: none; - border: 1px solid $border-gray; - border-color: var(--color-border-gray); - border-radius: 5px; - padding: .5em; - - &:focus { - outline: 0; - } -} - -input, -textarea { - max-width: 90%; - background-color: $white; - background-color: var(--color-white); -} - -input[type="search"] { - border: 1px solid $border-gray; - border-color: var(--color-border-gray); - border-radius: 50px; - padding: 5px 15px; - width: 80%; - - &:focus { - outline: 0; - } -} - -button, -input[type="button"], -input[type="submit"], -input[type="reset"], -.wp-block-button a, -.wp-block-button__link, -.button { - @include button; -} - -a.button, -a.button:hover, -a.button:active { - text-decoration: none; -} - -.search-form { - .search-submit { - display: none; - } -} - -.wp-block-button { - display: block; - - &.alignleft, - &.alignright { - clear: both; - float: none; - } - - a, a:hover { - text-decoration: none; - } -} diff --git a/assets/sass/_media.scss b/assets/sass/_media.scss deleted file mode 100644 index 91510e06..00000000 --- a/assets/sass/_media.scss +++ /dev/null @@ -1,154 +0,0 @@ -// Alignment -.alignleft { - display: inline; - float: left; - margin-right: 2em; - margin-top: .3em; -} - -.alignright { - display: inline; - float: right; - margin-left: 2em; - margin-top: .3em; -} - -.aligncenter, -.alignnone, -.alignfull, -.alignwide, -.wp-post-image { - clear: both; - margin: 1em auto; - width: auto; - max-width: 100%; - height: auto; -} - -.aligncenter { - width: $default-width; -} - -.wp-block-image .aligncenter, -.wp-block-image.aligncenter, -.wp-block-image.alignright, -.wp-block-image.alignleft, -.entry-content .wp-block-image.alignright, -.entry-content .wp-block-image.alignleft { - width: auto; -} - -img.aligncenter, -img.alignnone, -img.alignfull, -img.alignwide, -img.wp-post-image { - display: block; -} - -.size-auto, -.size-full, -.size-large, -.size-medium, -.size-thumbnail { - max-width: 100%; - height: auto; -} - -.gallery { - padding: 1em 0; - - @include clearfix; -} - -.entry-content { - img, - figure, - object, - embed, - iframe, - audio, - video { - max-width: 100%; - } - - img, - video { - height: auto; - } -} - -.wp-audio-shortcode { - margin: 1em auto; -} - -.wp-embedded-content { - width: 100%; -} - -.gallery { - margin: 0 auto 18px; -} - -.gallery .gallery-item { - float: left; - margin: 10px 0; - text-align: center; - width: 33%; -} - -.gallery-columns-1 .gallery-item { - width: 100%; -} - -.gallery-columns-2 .gallery-item { - width: 50%; -} - -.gallery-columns-4 .gallery-item { - width: 25%; -} - -.gallery img { - border-radius: 5px; -} - -.gallery-columns-2 .attachment-medium { - max-width: 92%; - height: auto; -} -.gallery-columns-4 .attachment-thumbnail { - max-width: 84%; - height: auto; -} -.gallery .gallery-caption { - color: #888; - font-size: 12px; - margin: 0 0 12px; -} - -.wp-caption-text { - margin-top: .5em; -} - -.entry-content .wp-block-columns .wp-block-image { - width: auto; - max-width: auto; -} - -.wp-block-gallery { - .blocks-gallery-image, - .blocks-gallery-item { - figcaption { - padding: 0.5rem; - } - } -} - -.entry-content .wp-block-gallery { - margin: 0 auto; -} - -.entry-attachment img { - width: 100%; -} diff --git a/assets/sass/_mixins.scss b/assets/sass/_mixins.scss deleted file mode 100644 index acb3792a..00000000 --- a/assets/sass/_mixins.scss +++ /dev/null @@ -1,106 +0,0 @@ -@mixin clearfix { - // Clearfix: contain floats - // - // For modern browsers - // 1. The space content is one way to avoid an Opera bug when the - // `contenteditable` attribute is included anywhere else in the document. - // Otherwise it causes space to appear at the top and bottom of elements - // that receive the `clearfix` class. - // 2. The use of `table` rather than `block` is only necessary if using - // `:before` to contain the top-margins of child elements. - - &:before, - &:after { - content: " "; // 1 - display: table; // 2 - } - - &:after { - clear: both; - } -} - -@mixin label { - a { - font-size: 1em; - font-family: "Lato", sans-serif; - background-color: $background-gray; - background-color: var(--color-background-gray); - border-radius: 3px; - color: $dark-gray; - color: var(--color-dark-gray); - line-height: 1; - padding: 5px 8px; - text-decoration: none; - - &:hover { - background-color: $light-green; - color: $dark-green; - } - } -} - -@mixin button { - a { - text-decoration: none; - color: $gray; - color: var(--color-gray); - } - - color: $gray; - color: var(--color-gray); - border: 1px solid $border-gray; - background-color: $white; - background-color: var(--color-white); - border-radius: 50px; - padding: 10px 20px; - display: inline-block; - line-height: 1; - text-decoration: none; - - &:focus { - outline: 0; - } - - &:hover, - &:hover:visited, - &:active, - &:active:visited, - &:hover a, - &:active a { - border: 1px solid $gray; - border-color: var(--color-gray); - background-color: $gray; - background-color: var(--color-gray); - color: $white; - color: var(--color-white); - } - - &:visited { - color: $gray; - color: var(--color-gray); - } -} - -@mixin meta-text { - font-family: "Lato", sans-serif; - clear: both; - color: $light-gray; - color: var(--color-light-gray); - display: block; - - a { - color: $light-gray; - color: var(--color-light-gray); - text-decoration: none; - } - - a:hover { - text-decoration: underline; - } - - .avatar { - float: left; - margin-right: 10px; - } -} diff --git a/assets/sass/_nav.scss b/assets/sass/_nav.scss deleted file mode 100644 index 62c92fd8..00000000 --- a/assets/sass/_nav.scss +++ /dev/null @@ -1,243 +0,0 @@ -/* Starter CSS for Menu */ -.site-navigation { - padding: 0; - margin: 0 auto; - border: 0; - width: $default-width; - font-family: "Lato", sans-serif; - - @include clearfix; - - ul { - border-top: 1px solid $border-gray; - position: relative; - z-index: 597; - list-style: none; - margin: 0; - padding: 7.5px 0; - - @include clearfix; - - a { - border-top: 0 none; - color: $dark-gray; - color: var(--color-dark-gray); - display: block; - line-height: 150%; - padding: 7.5px 0; - margin-right: 20px; - text-decoration: none; - } - - li { - float: left; - min-height: 1px; - vertical-align: middle; - - &.hover, - &:hover, - &.focus { - cursor: default; - position: relative; - z-index: 599; - - & > ul { - visibility: visible; - } - - & > a { - text-decoration: underline; - } - } - - &.page_item_has_children, - &.menu-item-has-children { - & > a:after { - content: "^"; - margin-left: 5px; - text-decoration: none; - font-weight: bold; - display: inline-block; - transform: rotate(180deg); - } - } - - .last ul { - left: auto; - right: 0; - - ul { - left: auto; - right: 99.5%; - } - } - } - - ul { - border: none; - background-color: $white; - background-color: var(--color-white); - box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); - margin-top: 0; - min-width: 190px; - position: absolute; - - text-transform: none; - top: 100%; - visibility: hidden; - z-index: 598; - - a { - color: $dark-gray; - color: var(--color-dark-gray); - border-top: 0 none; - line-height: 150%; - padding: 16px 20px; - } - - li { - float: none; - font-weight: normal; - position: relative; - - &:last-child { - & > a { - -moz-background-clip: padding; - -webkit-background-clip: padding-box; - background-clip: padding-box; - } - - &:hover, - &.focus { - & > a { - -moz-background-clip: padding; - -webkit-background-clip: padding-box; - background-clip: padding-box; - } - } - } - - &.page_item_has_children, - &.menu-item-has-children { - & > a:after { - content: ">"; - text-decoration: none; - font-weight: bold; - transform: none; - margin-left: 5px; - } - } - } - - ul { - border-top: 0 none; - left: 190px; - top: 0; - width: 190px; - } - } - } - - li { - list-style: none; - margin: 0; - padding: 0; - } -} - -#nav-above { - display: block; - @include clearfix; - - margin-top: 100px; - - .nav-previous { - float: left; - - @include button; - } - - .nav-next { - float: right; - - @include button; - } -} - -#nav-below { - .nav-previous { - position: fixed; - left: 20px; - bottom: 30%; - } - - .nav-next { - position: fixed; - right: 20px; - bottom: 30%; - } - - a { - color: rgba(0, 0, 0, 0.2); - text-decoration: none; - font-size: 5em; - margin: 100px 0; - } - - a:hover { - color: $dark-gray; - color: var(--color-dark-gray); - } -} - -#post-nav { - .previous-post, .next-post { - width: 49%; - display: inline-block; - position: relative; - } - - img { - position: absolute; - top: 0; - left: 0; - object-fit: cover; - width: 49%; - height: 200px; - } -} - -#archive-nav { - margin: 0 auto; - display: block; - width: auto; - text-align: center; - margin-top: 100px; - - .page-numbers { - font-size: 1.5em; - display: inline-block; - margin: 0 5px; - color: $light-gray; - color: var(--color-light-gray); - } - - a { - text-decoration: none; - - &:hover { - text-decoration: underline; - color: $dark-gray; - color: var(--color-dark-gray); - } - } - - .current { - color: $dark-gray; - color: var(--color-dark-gray); - } -} - -.menu-toggle { - display: none; -} diff --git a/assets/sass/_normalize.scss b/assets/sass/_normalize.scss deleted file mode 100644 index e78f7e8a..00000000 --- a/assets/sass/_normalize.scss +++ /dev/null @@ -1,427 +0,0 @@ -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ - -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS text size adjust after orientation change, without disabling - * user zoom. - */ - -html { - font-family: sans-serif; /* 1 */ - -ms-text-size-adjust: 100%; /* 2 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/** - * Remove default margin. - */ - -body { - margin: 0; -} - -/* HTML5 display definitions - ========================================================================== */ - -/** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 - * and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} - -/** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ - -audio, -canvas, -progress, -video { - display: inline-block; /* 1 */ - vertical-align: baseline; /* 2 */ -} - -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ - -audio:not([controls]) { - display: none; - height: 0; -} - -/** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. - */ - -[hidden], -template { - display: none; -} - -/* Links - ========================================================================== */ - -/** - * Remove the gray background color from active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * Improve readability when focused and also mouse hovered in all browsers. - */ - -a:active, -a:hover { - outline: 0; -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ - -abbr[title] { - border-bottom: 1px dotted; -} - -/** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ - -b, -strong { - font-weight: bold; -} - -/** - * Address styling not present in Safari and Chrome. - */ - -dfn { - font-style: italic; -} - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/** - * Address styling not present in IE 8/9. - */ - -mark { - background: #ff0; - color: #000; -} - -/** - * Address inconsistent and variable font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove border when inside `a` element in IE 8/9/10. - */ - -img { - border: 0; -} - -/** - * Correct overflow not hidden in IE 9/10/11. - */ - -svg:not(:root) { - overflow: hidden; -} - -/* Grouping content - ========================================================================== */ - -/** - * Address margin not present in IE 8/9 and Safari. - */ - -figure { - margin: 1em 40px; -} - -/** - * Address differences between Firefox and other browsers. - */ - -hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; -} - -/** - * Contain overflow in all browsers. - */ - -pre { - overflow: auto; -} - -/** - * Address odd `em`-unit font size rendering in all browsers. - */ - -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} - -/* Forms - ========================================================================== */ - -/** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ - -/** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - */ - -button, -input, -optgroup, -select, -textarea { - color: inherit; /* 1 */ - font: inherit; /* 2 */ - margin: 0; /* 3 */ -} - -/** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ - -button { - overflow: visible; -} - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ - -button, -select { - text-transform: none; -} - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ - -button, -html input[type="button"], /* 1 */ -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; /* 2 */ - cursor: pointer; /* 3 */ -} - -/** - * Re-set default cursor for disabled elements. - */ - -button[disabled], -html input[disabled] { - cursor: default; -} - -/** - * Remove inner padding and border in Firefox 4+. - */ - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ - -input { - line-height: normal; -} - -/** - * It's recommended that you don't attempt to style these elements. - * Firefox's implementation doesn't respect box-sizing, padding, or width. - * - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ - -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ - -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome - * (include `-moz` to future-proof). - */ - -input[type="search"] { - -webkit-appearance: textfield; /* 1 */ - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; /* 2 */ - box-sizing: content-box; -} - -/** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * Define consistent border, margin, and padding. - */ - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -/** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ - -legend { - border: 0; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ - -textarea { - overflow: auto; -} - -/** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ - -optgroup { - font-weight: bold; -} - -/* Tables - ========================================================================== */ - -/** - * Remove most spacing between table cells. - */ - -table { - border-collapse: collapse; - border-spacing: 0; -} - -td, -th { - padding: 0; -} diff --git a/assets/sass/_page.scss b/assets/sass/_page.scss deleted file mode 100644 index 68badaf8..00000000 --- a/assets/sass/_page.scss +++ /dev/null @@ -1,205 +0,0 @@ -.site-header { - display: block; - position: relative; - width: 100%; - border-bottom: 1px solid $border-gray; - - .site-branding { - margin: 0 auto; - width: $default-width; - - @include clearfix; - } - - .custom-logo { - margin-top: 17px; - margin-right: 5px; - vertical-align: top; - } - - #site-title { - margin: 15px 0 15px 0; - padding: 0; - display: inline-block; - font-size: 1.5em; - font-family: "Lato", sans-serif; - font-weight: bold; - line-height: 1.5; - - a { - text-decoration: none; - - &:hover { - text-decoration: underline; - } - } - } - - .page-banner { - width: 100%; - border-top: 1px solid $border-gray; - - a { - color: $dark-gray; - color: var(--color-dark-gray); - } - - .page-branding { - width: 100%; - margin: 50px 0; - } - - .page-branding.author { - text-align: center; - - .avatar { - display: block; - margin: 12.5px auto; - border: 5px solid $white; - } - - #page-title, #page-description, #page-meta, #page-feed { - text-align: center; - } - - #page-title { - font-size: 3em; - padding: 12.5px 0; - } - - #page-description { - padding: 12.5px 0; - } - - #page-meta, #page-feed { - font-size: 1em; - margin: 0 auto; - } - } - - #page-title, #page-description, #page-meta, #page-feed { - display: block; - margin: 0 auto; - text-align: left; - color: $dark-gray; - color: var(--color-dark-gray); - font-size: 1.5em; - width: $wide-width; - } - - #page-feed { - font-size: 1em; - } - - #page-title { - font-size: 2em; - } - } - - .search-form { - display: inline-block; - margin: 15px 0 15px 0; - padding: 0; - float: right; - } - - search { - display: inline-block; - float: right; - } -} - -.custom-header { - .page-banner { - width: 100%; - position: relative; - height: 75vh; - max-height: 75%; - min-height: 500px; - -webkit-background-size: cover; - -moz-background-size: cover; - -o-background-size: cover; - background-size: cover; - - a { - color: $white; - } - - #page-title, #page-description, #page-meta { - color: $white; - } - - .page-branding { - position: absolute; - left: 0; - bottom: 0; - width: 100%; - } - } -} - -#primary { - width: 100%; - display: block; - margin: 0 auto; -} - -#colophon { - width: 100%; - background-color: $background-gray; - background-color: var(--color-background-gray); - margin-top: 100px; - content-visibility: auto; - - @include clearfix; -} - -#site-generator { - clear: both; - padding: 50px 0; - text-align: center; - background-color: $white; - background-color: var(--color-white); -} - -.screen-reader-text, -.assistive-text { - clip: rect(1px 1px 1px 1px); - // IE6, IE7 - clip: rect(1px, 1px, 1px, 1px); - position: absolute !important; -} - -// 404 page -.error404 .entry-content { - .widget { - float: left; - width: 33%; - - .widgettitle, - ul { - margin-right: 1em; - } - } - - .widget_tag_cloud { - clear: both; - float: none; - width: 100%; - } -} - -// Notices -.post .notice, -.error404 #searchform { - background: $light-gray; - background: var(--color-light-gray); - display: block; - padding: 1em; -} - -.avatar { - -webkit-border-radius: 50%; - -moz-border-radius: 50%; - border-radius: 50%; -} diff --git a/assets/sass/_post.scss b/assets/sass/_post.scss deleted file mode 100644 index b246350d..00000000 --- a/assets/sass/_post.scss +++ /dev/null @@ -1,516 +0,0 @@ -.single, -.page { - #primary article { - &.has-full-width-featured-image { - margin-top: 0px; - } - } -} - -.has-full-width-featured-image { - .entry-header { - margin: 0; - width: 100%; - max-width: 100%; - position: relative; - height: 75vh; - max-height: 75%; - min-height: 500px; - margin-bottom: 50px; - -webkit-background-size: cover; - -moz-background-size: cover; - -o-background-size: cover; - background-size: cover; - - .entry-title, .entry-meta, .entry-format { - color: $white; - - a { - color: $white; - } - } - - .entry-meta.post-format .entry-format::before { - color: $white; - } - - .entry-header-wrapper { - position: absolute; - left: 0; - bottom: 0; - width: 100%; - margin-bottom: 50px; - } - - .entry-header-wrapper > * { - margin: 0 auto; - width: $default-width; - } - - .entry-header-wrapper .entry-meta { - margin-top: 15px; - } - - .avatar { - border: 2px solid $white; - } - } -} - -#primary article:first-child { - margin-top: 50px; -} - -.home, -.archive { - #primary article { - &:after { - content: ""; - border-top: 1px solid $border-gray; - width: 200px; - display: block; - text-align: center; - margin: 0 auto; - margin-top: 100px; - } - } -} - -h1.entry-title, -h2.entry-title, -h3.entry-title, -h4.entry-title { - margin: 0; - padding: 0; - /*font-size: 3.5em;*/ - font-size: 2em; - line-height: 1.2em; - - a { - hyphens: auto; - text-overflow: ellipsis; - overflow: hidden; - font-size: 1em; - line-height: 1; - text-decoration: none; - color: $dark-gray; - color: var(--color-dark-gray); - - &:hover { - text-decoration: underline; - } - } -} - -.format-quote, .format-aside, .format-status { - .entry-content { - font-size: 1.5em; - } -} - -.type-page, -.format-standard { - h1.entry-title, - h2.entry-title, - h3.entry-title, - h4.entry-title { - font-size: 3.5em; - } -} - -.entry-content, -.entry-summary { - color: $dark-gray; - color: var(--color-dark-gray); - font-style: normal; - font-size: 1.2em; - margin: 0 auto; - - .wp-block-cover-image, - .alignfull { - max-width: 100%; - width: 100%; - } - - .alignwide { - width: auto; - max-width: $wide-width; - } - - p.has-background { - width: 100%; - max-width: 100%; - padding: 30px calc( ( 100% - 700px ) / 2 ); - margin: 0; - } - - a { - text-decoration: underline; - - @supports(text-decoration: underline $android-green) { - text-decoration: underline $android-green; - text-decoration: underline var(--color-android-green); - text-decoration-thickness: 3px; - text-underline-offset: 6px; - } - - &:hover { - @supports(text-decoration: underline $android-green) { - text-decoration: underline $usc-gold; - text-decoration: underline var(--color-usc-gold); - text-decoration-thickness: 3px; - text-underline-offset: 6px; - } - } - } -} - -.entry-actions { - display: block; - - @include clearfix; -} - -#entry-share { - display: inline-block; - font-size: 1em; - font-family: "Lato", sans-serif; - background-color: $background-gray; - background-color: var(--color-background-gray); - border: none; - border-radius: 3px; - color: $dark-gray; - color: var(--color-dark-gray); - line-height: inherit; - padding: 3px 7px; - text-decoration: none; - float: right; - - &:hover { - background-color: $light-green; - color: $dark-green; - } - - &:before { - display: inline-block; - font: normal 1.1em "Dashicons"; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - text-rendering: optimizeLegibility; - margin-right: 0; - position: relative; - text-decoration: none; - top: 2px; - vertical-align: text-middle; - margin-right: 5px; - content: ""; - } -} - -.page-link, -.page-links { - margin-bottom: 1em; -} - -.entry-meta, -.wp-caption-text, -.gallery-caption, -.page-link, -.page-links { - font-family: "Lato", sans-serif; - clear: both; - color: $gray; - color: var(--color-gray); - display: block; - - a { - color: $gray; - color: var(--color-gray); - text-decoration: none; - } - - a:hover { - text-decoration: underline; - } - - .avatar { - float: left; - margin-right: 10px; - } -} - -.entry-footer .author { - @include clearfix; -} - -.entry-meta { - position: relative; - - margin-top: 15px; - margin-bottom: 15px; - - &.post-format { - padding: 0; - margin: 0; - margin-bottom: 10px; - } - - &.post-format a, - &.post-format span, - &.post-format .entry-format:before { - color: $lighter-gray; - color: var(--color-lighter-gray); - font-weight: bold; - text-transform: lowercase; - } - - &.post-format .entry-format:before { - display: inline-block; - font: normal 1.1em "Dashicons"; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - text-rendering: optimizeLegibility; - isolation: isolate; - margin-right: 5px; - position: relative; - text-decoration: none; - top: 2px; - vertical-align: text-middle; - color: $lighter-gray; - color: var(--color-lighter-gray); - } - - .entry-format { - line-height: 1; - } - - address { - font-size: 1em; - line-height: 1.2; - color: $dark-gray; - color: var(--color-dark-gray); - } - - .entry-date, - .entry-duration { - font-size: .8em; - } -} - -.comments-link { - font-size: 1em; - display: inline-block; - - &:before { - display: inline-block; - font: normal 1.1em "Dashicons"; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - text-rendering: optimizeLegibility; - margin-right: 0; - position: relative; - text-decoration: inherit; - top: 2px; - vertical-align: text-middle; - margin-right: 5px; - content: "\f101"; - } -} - -.tag-links, -.cat-links { - margin: 10px 0; - display: block; - - ul { - margin: 0; - padding: 0; - } - - li { - display: inline-block; - margin: 10px 8px 0 0; - list-style-type: none; - font-size: 1.2em; - - @include label; - - a { - font-size: 0.8em; - } - } -} - -#primary article { - padding: 0; - margin-top: 100px; - position: relative; - - @include clearfix; - - .sep:first-of-type { - display: none; - } - - &.format-quote .post-format .entry-format:before { - content: "\f122"; - } - - &.format-aside .post-format .entry-format:before { - content: "\f123"; - } - - &.format-video .post-format .entry-format:before { - content: "\f126"; - } - - &.format-audio .post-format .entry-format:before { - content: "\f127"; - } - - &.format-image .post-format .entry-format:before, - &.format-photo .post-format .entry-format:before { - content: "\f128"; - } - - &.format-gallery .post-format .entry-format:before { - content: "\f161"; - } - - &.format-link .post-format .entry-format:before { - content: "\f103"; - } - - &.format-status .post-format .entry-format:before { - content: "\f130"; - } - - &.format-standard .post-format .entry-format:before { - content: "\f478"; - } - - &.type-page .post-format .entry-type-page:before { - content: "\f105"; - } -} - -.edit-link { - position: absolute; - right: 0; - top: 50px; - - @include label; -} - -.more-link { - display: block; - font-size: .8em; - color: $gray; - color: var(--color-gray); -} - -.entry-content { - .has-orioles-orange-background-color { - background-color: $orioles-orange; - } - - .has-orioles-orange-color { - color: $orioles-orange; - } - - .has-blue-background-color { - background-color: $blue; - } - - .has-blue-color { - color: $blue; - } - - .has-lighter-blue-background-color { - background-color: $lighter-blue; - } - - .has-lighter-blue-color { - color: $lighter-blue; - } - - .has-blue-jeans-background-color { - background-color: $blue-jeans; - } - - .has-blue-jeans-color { - color: $blue-jeans; - } - - .has-usc-gold-background-color { - background-color: $usc-gold; - } - - .has-usc-gold-color { - color: $usc-gold; - } - - .has-gargoyle-gas-background-color { - background-color: $gargoyle-gas; - } - - .has-gargoyle-gas-color { - color: $gargoyle-gas; - } - - .has-yellow-background-color { - background-color: $yellow; - } - - .has-yellow-color { - color: $yellow; - } - - .has-android-green-background-color { - background-color: $android-green; - } - - .has-android-green-color { - color: $android-green; - } - - .has-white-background-color { - background-color: $white; - background-color: var(--color-white); - } - - .has-white-color { - color: $white; - color: var(--color-white); - } - - .has-very-light-gray-background-color { - background-color: $very-light-gray; - } - - .has-very-light-gray-color { - color: $very-light-gray; - } - - .has-very-dark-gray-background-color { - background-color: $very-dark-gray; - } - - .has-very-dark-gray-color { - color: $very-dark-gray; - } -} - -.sticky { - color: inherit; - /** nothing special */ -} - -.wp-block-footnotes { - border-top: solid 1px lightgray; - margin-top: 2em; - padding-top: 2em; - font-size: .8em; - padding-left: 0; - list-style-position: inside; -} diff --git a/assets/sass/_sidebar.scss b/assets/sass/_sidebar.scss deleted file mode 100644 index 11f751f8..00000000 --- a/assets/sass/_sidebar.scss +++ /dev/null @@ -1,56 +0,0 @@ -#sidebar { - font-weight: normal; - display: block; - position: relative; - font-size: .9em; - margin: 50px auto; - width: 90%; - - @include clearfix; - - #colophon { - margin-top: 100px; - } - - h2 { - font-size: 1.2em; - text-transform: uppercase; - padding-bottom: .7em; - } - - ul, - ol { - margin: 0; - padding: 0; - - li { - list-style-type: none; - line-height: 1.5; - } - - ul, ol { - margin-left: 2em; - padding: inherit; - } - } - - input { - color: $dark-gray; - color: var(--color-dark-gray); - } - - button, - input[type="submit"] { - color: $dark-gray; - color: var(--color-dark-gray); - background-color: $white; - background-color: var(--color-white); - border: none; - padding: .5em 1em; - - &:hover { - background-color: $gray; - background-color: var(--color-gray); - } - } -} diff --git a/assets/sass/_table.scss b/assets/sass/_table.scss deleted file mode 100644 index f5799730..00000000 --- a/assets/sass/_table.scss +++ /dev/null @@ -1,68 +0,0 @@ -/* =Tables --------------------------------------------------------------- */ - -table { - *border-collapse: collapsed; - background-color: transparent; - border-collapse: separate; - border-left: 0; - border-spacing: 0; - margin: 30px 0; - overflow: scroll; - overflow-x: scroll; - table-layout: fixed; - width: 100%; - - th { - font-weight: bold; - } - - thead th { - vertical-align: bottom; - } -} - -table th, -table td { - border-top: 1px solid $border-gray; - padding: 10px; - text-align: left; - vertical-align: top; -} - -table caption + thead tr:first-child th, -table caption + thead tr:first-child td, -table colgroup + thead tr:first-child th, -table colgroup + thead tr:first-child td, -table thead:first-child tr:first-child th, -table thead:first-child tr:first-child td { - border-top: 0; -} - -table tbody + tbody { - border-top: 2px solid $border-gray; -} - -table caption + thead tr:first-child th, -table caption + tbody tr:first-child th, -table caption + tbody tr:first-child td, -table colgroup + thead tr:first-child th, -table colgroup + tbody tr:first-child th, -table colgroup + tbody tr:first-child td, -table thead:first-child tr:first-child th, -table tbody:first-child tr:first-child th, -table tbody:first-child tr:first-child td { - border-top: 0; -} - -table tbody tr:nth-child(odd) td, -table tbody tr:nth-child(odd) th { - background-color: $background-gray; - background-color: var(--color-background-gray); -} - -table tbody tr:hover td, -table tbody tr:hover th { - background-color: $background-gray; - background-color: var(--color-background-gray); -} diff --git a/assets/sass/_vars.scss b/assets/sass/_vars.scss deleted file mode 100644 index ce9837bd..00000000 --- a/assets/sass/_vars.scss +++ /dev/null @@ -1,43 +0,0 @@ -// Colors - -// grayscale -$dark-gray: #373d3f; -$gray: lighten($dark-gray, 10%); -$light-gray: lighten($dark-gray, 20%); -$lighter-gray: lighten($dark-gray, 50%); - -$border-gray: lighten($dark-gray, 60%); -$background-gray: lighten($dark-gray, 75%); - -// blue -$blue: #5fa7c5; -$dark-blue: darken($blue, 35%); -$light-blue: lighten($blue, 35%); - -$blue-jeans: #5bc0eb; -$lighter-blue: #229fd8; - -// green -$green: #a0c55f; -$dark-green: darken($green, 35%); -$light-green: lighten($green, 35%); - -// brown -$brown: #8c612f; -$dark-brown: darken($brown, 35%); -$light-brown: lighten($brown, 35%); - -// editor colors -$orioles-orange: #fa5b0f; -$usc-gold: #ffcc00; -$gargoyle-gas: #fde74c; -$yellow: #fff9c0; -$android-green: #9bc53d; -$white: #fff; -$very-light-gray: #eee; -$very-dark-gray: #444; - -// Dimensions -$wide-width: 900px; -$default-width: $wide-width - 200px; -$margin: calc(($wide-width - $default-width) / 2); diff --git a/assets/sass/_widgets.scss b/assets/sass/_widgets.scss deleted file mode 100644 index 0efc691d..00000000 --- a/assets/sass/_widgets.scss +++ /dev/null @@ -1,61 +0,0 @@ -.entry-footer { - @include clearfix; - - margin-top: 30px; - - .author { - padding: 40px; - margin: 70px auto; - line-height: 1.5; - min-height: 100px; - box-shadow: 0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1); - background-color: rgba(0,0,0,.01); - - .fn, .note, .subscribe { - margin-left: 140px; - display: block; - } - - .fn { - font-size: 1.3em; - margin-bottom: 10px; - } - - .note { - font-size: .9em; - margin-bottom: 10px; - color: $gray; - color: var(--color-gray); - } - - .subscribe { - font-size: .8em; - color: $light-gray; - color: var(--color-light-gray); - vertical-align: bottom; - } - - transform: rotate(-0.5deg); - } - - #share-options { - clear: both; - - input[type="text"], - input[type="url"], - textarea { - display: block; - width: 95%; - } - - input { - display: block; - } - - label { - display: block; - color: $gray; - color: var(--color-gray); - } - } -} diff --git a/assets/sass/editor-style.scss b/assets/sass/editor-style.scss deleted file mode 100644 index 2255d6cd..00000000 --- a/assets/sass/editor-style.scss +++ /dev/null @@ -1,23 +0,0 @@ -body .editor-styles-wrapper { - @import "vars"; - - /* Main column width */ - .wp-block { - max-width: $default-width; - } - - /* Width of "wide" blocks */ - .wp-block[data-align="wide"] { - max-width: $wide-width; - } - - /* Width of "full-wide" blocks */ - .wp-block[data-align="full"] { - max-width: none; - } - - @import "mixins"; - @import "normalize"; - @import "base"; - @import "post"; -} diff --git a/assets/sass/full.scss b/assets/sass/full.scss deleted file mode 100644 index e69de29b..00000000 diff --git a/assets/sass/integrations.scss b/assets/sass/integrations.scss deleted file mode 100644 index e85a299b..00000000 --- a/assets/sass/integrations.scss +++ /dev/null @@ -1,53 +0,0 @@ -// Syndication Links -ul.relsyn { - display: block; - margin: 0; - padding: 0; - - li { - display: inline-block; - margin: 15px 8px 0 0; - list-style-type: none; - font-size: 1.2em; - - .svg-icon { - width: 50px; - height: 50px; - } - - svg { - height: 1rem; - width: 1rem; - } - } -} - -.kind .svg-icon { - height: 15px; - width: 15px; - color: $light-gray; - color: var(--color-light-gray); - display: inline-block; - - svg { - fill: $light-gray; - fill: var(--color-light-gray); - } -} - -.has-full-width-featured-image .entry-header .kind .svg-icon { - color: $white; - fill: currentColor; -} - -.jp-relatedposts { - margin: auto auto; -} - -.reaction-list { - padding: 0px; -} - -.activitypub-follower-block h3 { - margin-bottom: 1em; -} diff --git a/assets/sass/lato-font.scss b/assets/sass/lato-font.scss deleted file mode 100644 index 7a1e3690..00000000 --- a/assets/sass/lato-font.scss +++ /dev/null @@ -1,52 +0,0 @@ -/* lato-300 - latin */ -@font-face { - font-family: 'Lato'; - font-style: normal; - font-weight: normal; - font-display: swap; - src: url('#{$font_path}lato/lato-v13-latin-300.eot'); /* IE9 Compat Modes */ - src: local('Lato Light'), local('Lato-Light'), - url('#{$font_path}lato/lato-v13-latin-300.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('#{$font_path}lato/lato-v13-latin-300.woff2') format('woff2'), /* Super Modern Browsers */ - url('#{$font_path}lato/lato-v13-latin-300.woff') format('woff'), /* Modern Browsers */ - url('#{$font_path}lato/lato-v13-latin-300.svg#Lato') format('svg'); /* Legacy iOS */ -} -/* lato-300italic - latin */ -@font-face { - font-family: 'Lato'; - font-style: italic; - font-weight: normal; - font-display: swap; - src: url('#{$font_path}lato/lato-v13-latin-300italic.eot'); /* IE9 Compat Modes */ - src: local('Lato Light Italic'), local('Lato-LightItalic'), - url('#{$font_path}lato/lato-v13-latin-300italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('#{$font_path}lato/lato-v13-latin-300italic.woff2') format('woff2'), /* Super Modern Browsers */ - url('#{$font_path}lato/lato-v13-latin-300italic.woff') format('woff'), /* Modern Browsers */ - url('#{$font_path}lato/lato-v13-latin-300italic.svg#Lato') format('svg'); /* Legacy iOS */ -} -/* lato-700 - latin */ -@font-face { - font-family: 'Lato'; - font-style: normal; - font-weight: bold; - font-display: swap; - src: url('#{$font_path}lato/lato-v13-latin-700.eot'); /* IE9 Compat Modes */ - src: local('Lato Bold'), local('Lato-Bold'), - url('#{$font_path}lato/lato-v13-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('#{$font_path}lato/lato-v13-latin-700.woff2') format('woff2'), /* Super Modern Browsers */ - url('#{$font_path}lato/lato-v13-latin-700.woff') format('woff'), /* Modern Browsers */ - url('#{$font_path}lato/lato-v13-latin-700.svg#Lato') format('svg'); /* Legacy iOS */ -} -/* lato-700italic - latin */ -@font-face { - font-family: 'Lato'; - font-style: italic; - font-weight: bold; - font-display: swap; - src: url('#{$font_path}lato/lato-v13-latin-700italic.eot'); /* IE9 Compat Modes */ - src: local('Lato Bold Italic'), local('Lato-BoldItalic'), - url('#{$font_path}lato/lato-v13-latin-700italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('#{$font_path}lato/lato-v13-latin-700italic.woff2') format('woff2'), /* Super Modern Browsers */ - url('#{$font_path}lato/lato-v13-latin-700italic.woff') format('woff'), /* Modern Browsers */ - url('#{$font_path}lato/lato-v13-latin-700italic.svg#Lato') format('svg'); /* Legacy iOS */ -} diff --git a/assets/sass/merriweather-font.scss b/assets/sass/merriweather-font.scss deleted file mode 100644 index f96f1477..00000000 --- a/assets/sass/merriweather-font.scss +++ /dev/null @@ -1,54 +0,0 @@ -// merriweather-300 - latin -@font-face { - font-family: 'Merriweather'; - font-style: normal; - font-weight: normal; - font-display: swap; - src: url('#{$font_path}merriweather/merriweather-v15-latin-300.eot'); // IE9 Compat Modes - src: local('Merriweather Light'), local('Merriweather-Light'), - url('#{$font_path}merriweather/merriweather-v15-latin-300.eot?#iefix') format('embedded-opentype'), // IE6-IE8 - url('#{$font_path}merriweather/merriweather-v15-latin-300.woff2') format('woff2'), // Super Modern Browsers - url('#{$font_path}merriweather/merriweather-v15-latin-300.woff') format('woff'), // Modern Browsers - url('#{$font_path}merriweather/merriweather-v15-latin-300.svg#Merriweather') format('svg'); // Legacy iOS -} - -// merriweather-300italic - latin -@font-face { - font-family: 'Merriweather'; - font-style: italic; - font-weight: normal; - font-display: swap; - src: url('#{$font_path}merriweather/merriweather-v15-latin-300italic.eot'); // IE9 Compat Modes - src: local('Merriweather Light Italic'), local('Merriweather-LightItalic'), - url('#{$font_path}merriweather/merriweather-v15-latin-300italic.eot?#iefix') format('embedded-opentype'), // IE6-IE8 - url('#{$font_path}merriweather/merriweather-v15-latin-300italic.woff2') format('woff2'), // Super Modern Browsers - url('#{$font_path}merriweather/merriweather-v15-latin-300italic.woff') format('woff'), // Modern Browsers - url('#{$font_path}merriweather/merriweather-v15-latin-300italic.svg#Merriweather') format('svg'); // Legacy iOS -} - -// merriweather-700italic - latin -@font-face { - font-family: 'Merriweather'; - font-style: italic; - font-weight: bold; - font-display: swap; - src: url('#{$font_path}merriweather/merriweather-v15-latin-700italic.eot'); // IE9 Compat Modes - src: local('Merriweather Bold Italic'), local('Merriweather-BoldItalic'), - url('#{$font_path}merriweather/merriweather-v15-latin-700italic.eot?#iefix') format('embedded-opentype'), // IE6-IE8 - url('#{$font_path}merriweather/merriweather-v15-latin-700italic.woff2') format('woff2'), // Super Modern Browsers - url('#{$font_path}merriweather/merriweather-v15-latin-700italic.woff') format('woff'), // Modern Browsers - url('#{$font_path}merriweather/merriweather-v15-latin-700italic.svg#Merriweather') format('svg'); // Legacy iOS -} -// merriweather-700 - latin -@font-face { - font-family: 'Merriweather'; - font-style: normal; - font-weight: bold; - font-display: swap; - src: url('#{$font_path}merriweather/merriweather-v15-latin-700.eot'); // IE9 Compat Modes - src: local('Merriweather Bold'), local('Merriweather-Bold'), - url('#{$font_path}merriweather/merriweather-v15-latin-700.eot?#iefix') format('embedded-opentype'), // IE6-IE8 - url('#{$font_path}merriweather/merriweather-v15-latin-700.woff2') format('woff2'), // Super Modern Browsers - url('#{$font_path}merriweather/merriweather-v15-latin-700.woff') format('woff'), // Modern Browsers - url('#{$font_path}merriweather/merriweather-v15-latin-700.svg#Merriweather') format('svg'); // Legacy iOS -} diff --git a/assets/sass/openwebicons.scss b/assets/sass/openwebicons.scss deleted file mode 100644 index aef700d1..00000000 --- a/assets/sass/openwebicons.scss +++ /dev/null @@ -1,225 +0,0 @@ -$icons: apml "\f001" "#AFDD63", - open-share "\f00E" "#538439", - open-share-simple "\f00F" "monochrome", - share "\f006" "#538439", - share-simple "\f007" "monochrome", - feed "\f009" "#EA680B", - feed-simple "\f00A" "monochrome", - ostatus "\f004" "#FF6600", - ostatus-simple "\f005" "monochrome", - opml "\f003" "#2490A1", - activity "\f010" "#4FB2D9", - activity-simple "\f041" "monochrome", - microformats "\f00C" "#85BC07", - geo "\f00B" "#990000", - opensearch "\f002" "#5050f3", - oauth "\f008" "monochrome", - openid "\f00D" "monochrome", - semantic-web "\f000" "monochrome", - rdf "\f039" "monochrome", - rdfa "\f039" "monochrome", - owl "\f039" "monochrome", - dataportability "\f013" "monochrome", - federated "\f011" "monochrome", - web-intents "\f014" "monochrome", - open-web "\f012" "monochrome", - xmpp "\f015" "monochrome", - html5 "\f016" "#E34C26", - css3 "\f017" "monochrome", - connectivity "\f018" "monochrome", - semantics "\f019" "monochrome", - 3deffects "\f037" "monochrome", - device-access "\f031" "monochrome", - multimedia "\f032" "monochrome", - offline-storage "\f033" "monochrome", - perfintegration "\f034" "monochrome", - git "\f035" "#F05133", - webhooks "\f036" "monochrome", - osi "\f038" "#3DA639", - opensource "\f038" "#3DA639", - opengraph "\f020" "monochrome", - epub "\f021" "#85b916", - qr "\f022" "monochrome", - foaf "\f023" "monochrome", - info-card "\f024" "#BF84E5", - browserid "\f025" "monochrome", - remote-storage "\f026" "#ff4e09", - persona "\f027" "monochrome", - odata "\f028" "#EA680B", - markdown "\f029" "monochrome", - tosdr "\f030" "monochrome", - pub "\f045" "#99cc00", - sub "\f046" "#ffff00", - hubbub "\f045" "#ff6fcf", - pubsubhubbub "\f047" "monochrome", - cc "\f080" "monochrome", - cc-by "\f081" "monochrome", - cc-nc "\f082" "monochrome", - cc-nc-eu "\f083" "monochrome", - cc-nc-jp "\f084" "monochrome", - cc-sa "\f085" "monochrome", - cc-nd "\f086" "monochrome", - cc-public "\f087" "monochrome", - cc-zero "\f088" "monochrome", - cc-share "\f089" "monochrome", - cc-remix "\f08a" "monochrome", - hatom "\f040" "monochrome", - hresume "\f042" "monochrome", - hcard-add "\f043" "monochrome", - hcard-download "\f044" "monochrome", - indieweb "\f08b \f08c" "monochrome", - indiewebcamp "\f08b \f08c \f08d" "monochrome", - webfinger "\f08e" "monochrome", - bitcoin "\f08f" "monochrome", - bitcoin-simple "\f090" "monochrome", - svg "\f049" "monochrome", - json-ld "\f048" "monochrome", - tent "\f050" "monochrome", - copyleft "\f051" "monochrome", - gnu "\f052" "monochrome", - ofl-attribution "\f081" "monochrome", - ofl-share "\f085" "monochrome", - ofl-renaming "\f04a" "monochrome", - ofl-selling "\f04b" "monochrome", - ofl-embedding "\f04c" "monochrome", - webmention "\f04d" "monochrome", - javascript "\f04e" "#f0db4f", - wtfpl "\f04f" "monochrome", - ofl "\f053" "monochrome", - wordpress "\f054" "monochrome", - owncloud "\f055" "monochrome", - cccs "\f056" "monochrome", - barcamp "\f057" "monochrome", - indiehosters "\f058" "monochrome", - known "\f059" "monochrome", - mozilla "\f05a" "monochrome", - unhosted "\f05b" "monochrome", - diaspora "\f05c" "monochrome", - indie "\f05d" "monochrome", - ghost "\f05e" "monochrome", - webplattform "\f05f" "monochrome", - opensourcedesign "\f060" "monochrome", - opendesign "\f061" "monochrome", - gnusocial "\f062" "#a22430", - gnusocial-simple "\f063" "monochrome", - mastodon "\f065" "#2b90d9", - jsonfeed "\f066" "monochrome", - pump-io "\f067" "monochrome", - friendica "\f068" "monochrome", - hubzilla "\f069" "monochrome", - fediverse "\f06a" "monochrome", - mastodon-simple "\f064" "#2b90d9", - activitypub "\f091" "monochrome", - wapuu "\f092" "monochrome", - micro-blog "\f093" "monochrome", - indieauth "\f094" "monochrome"; - -// set "icon" as default prefix -$prefix: openwebicons; -$font_path: "assets/font/openwebicons"; - -@mixin font_face { - @font-face { - font-family: "OpenWeb Icons"; - src: url("#{$font_path}/openwebicons.eot"); - src: url("#{$font_path}/openwebicons.eot?#iefix") format("embedded-opentype"), - url("#{$font_path}/openwebicons.woff2") format("woff2"), - url("#{$font_path}/openwebicons.woff") format("woff"), - url("#{$font_path}/openwebicons.ttf") format("truetype"), - url("#{$font_path}/openwebicons.svg#openweb_iconsregular") format("svg"); - font-weight: normal; - font-style: normal; - font-display: swap; - } -} - -@mixin simple_mapper { - [class^="#{$prefix}-"]:before, [class*=" #{$prefix}-"]:before { - font-family: "OpenWeb Icons"; - font-weight: normal; - font-style: normal; - font-display: swap; - display: inline-block; - text-decoration: inherit; - vertical-align: center; - font-smoothing: antialiased; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - text-rendering: optimizeLegibility; - } - a [class^="#{$prefix}-"], a [class*=" #{$prefix}-"] { - display: inline-block; - text-decoration: none; - } - li[class^="#{$prefix}-"], li[class*=" #{$prefix}-"] { - display: block; - } -} - -@mixin icon_list { - // iterate icons - @each $icon in $icons { - .#{$prefix}-#{nth($icon, 1)}:before { - content: "#{nth($icon, 2)}"; - } - } -} - -@mixin colored_icon_list { - // iterate icons - @each $icon in $icons { - // check if icon has a color - @if nth($icon, 3) != "monochrome" { - .#{$prefix}-#{nth($icon, 1)}-colored:before { - content: "#{nth($icon, 2)}"; - color: #{nth($icon, 3)}; - } - } - } -} - - -@include font_face; - -[class^="openwebicons-"]:before, [class*=" openwebicons-"]:before { - font-family: "OpenWeb Icons"; - font-weight: normal; - font-style: normal; - font-display: swap; - display: inline-block; - text-decoration: none; - vertical-align: center; - speak: none; - font-smoothing: antialiased; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - text-rendering: optimizeLegibility; - margin-right: 5px; -} - -a [class^="openwebicons-"], a [class*=" openwebicons-"] { - display: inline-block; - text-decoration: inherit; -} - -li[class^="openwebicons-"], li[class*=" openwebicons-"] { - display: block; -} - -// iterate icons -@each $icon in $icons { - .openwebicons-#{nth($icon, 1)}:before { - content: "#{nth($icon, 2)}"; - } -} - -// iterate icons -@each $icon in $icons { - // check if icon has a color - @if nth($icon, 3) != "monochrome" { - .openwebicons-#{nth($icon, 1)}-colored:before { - content: "#{nth($icon, 2)}"; - color: #{nth($icon, 3)}; - } - } -} diff --git a/assets/sass/print.scss b/assets/sass/print.scss deleted file mode 100644 index 29cc4da5..00000000 --- a/assets/sass/print.scss +++ /dev/null @@ -1,74 +0,0 @@ -@import "vars"; -@import "mixins"; - -*, -*:before, -*:after, -*:first-letter, -*:first-line { - background: transparent !important; - color: #000 !important; /* Black prints faster: - http://www.sanbeiji.com/archives/953 */ - box-shadow: none !important; - text-shadow: none !important; -} - -a, -a:visited { - text-decoration: underline; -} - -a[href]:after { - content: " (" attr(href) ")"; -} - -abbr[title]:after { - content: " (" attr(title) ")"; -} - -/* - * Don't show links that are fragment identifiers, - * or use the `javascript:` pseudo protocol - */ - -a[href^="#"]:after, -a[href^="javascript:"]:after { - content: ""; -} - -pre, -blockquote { - border: 1px solid $gray; - border-color: var(--color-gray); - page-break-inside: avoid; -} - -/* - * Printing Tables: - * http://css-discuss.incutio.com/wiki/Printing_Tables - */ - -thead { - display: table-header-group; -} - -tr, -img { - page-break-inside: avoid; -} - -img { - max-width: 100% !important; -} - -p, -h2, -h3 { - orphans: 3; - widows: 3; -} - -h2, -h3 { - page-break-after: avoid; -} diff --git a/assets/sass/responsive_default.scss b/assets/sass/responsive_default.scss deleted file mode 100644 index b873dd5c..00000000 --- a/assets/sass/responsive_default.scss +++ /dev/null @@ -1,74 +0,0 @@ -@import "vars"; -@import "mixins"; - -.site-navigation, -.site-header .site-branding, -.site-header .page-banner #page-title, -.site-header .page-banner #page-description, -.site-header .page-banner #page-meta { - width: $default-width; -} - -.page-banner .avatar { - width: 120px; - height: 120px; -} - -.entry-content > *, -.entry-summary > *, -.entry-content > form, -.entry-content > div, -.entry-header, -.entry-footer > *, -.entry-reaction, -#comments, -#nav-above, -#nav-below, -.reaction-list, -.wp-block-quote.is-style-large { - display: block; - max-width: $default-width; - margin: 1.2em auto; - box-sizing: border-box; -} - -.entry-content, -.entry-summary { - .wp-block-gallery, - .wp-block-columns, - .wp-block-media-text { - display: flex; - } -} - -.entry-footer .author { - width: $default-width + 80; - max-width: $default-width + 80; - margin: 70px auto; -} - -#sidebar { - width: 100%; - - aside { - margin: 50px 50px; - } - - #secondary { - display: inline-block; - float: left; - width: 50%; - } - - #tertiary { - display: inline-block; - float: left; - width: 50%; - } - - #quaternary { - display: inline-block; - float: left; - width: 50%; - } -} diff --git a/assets/sass/responsive_narrow.scss b/assets/sass/responsive_narrow.scss deleted file mode 100644 index a00ca488..00000000 --- a/assets/sass/responsive_narrow.scss +++ /dev/null @@ -1,138 +0,0 @@ -@import "vars"; -@import "mixins"; - -html { - font-size: 1em; -} - -#sidebar, -.site-header .site-branding, -.site-header .page-banner #page-description, -.site-header .page-banner #page-title, -.site-header .page-banner #page-meta, -.site-navigation, -.has-full-width-featured-image .entry-header .entry-header-wrapper > * { - width: 90%; -} - -.page-banner .avatar { - width: 80px; - height: 80px; -} - -.page-branding.author #page-description { - font-size: 1.2em; -} - -.site-header .page-banner .page-branding.author #page-title { - font-size: 2em; -} - -.entry-footer .author .fn, -.entry-footer .author .note, -.entry-footer .author .subscribe { - margin-left: inherit; -} - -.entry-content, -.entry-summary { - p.has-background { - padding: 30px 5%; - } -} - -.entry-footer .author { - width: 100%; - max-width: 100%; -} - -.alignright, -.alignleft, -.wp-block-image .alignright, -.wp-block-image .alignleft, -.wp-block-button.alignright, -.wp-block-button.alignleft { - float: none; - clear: both; - margin: 1.2em auto; -} - -.entry-content > *, -.entry-summary > *, -.entry-content > form, -.entry-content > div, -.entry-header, -.entry-footer > *, -.entry-reaction, -#comments, -#nav-above, -#nav-below, -.reaction-list, -.wp-block-quote.is-style-large { - max-width: 90%; - margin: 1.2em auto; - box-sizing: border-box; -} - -.type-page, -.format-standard { - h1.entry-title, - h2.entry-title, - h3.entry-title, - h4.entry-title { - font-size: 3em; - } -} - -.entry-content > pre, -.entry-content > table { - max-width: 100%; -} - -.entry-header .entry-title { - font-size: 2.5em; -} - -.site-header { - .page-branding { - font-size: .8em; - } - - .search-field { - width: 100px; - } -} - -.page-header { - width: 100%; -} - -#nav-below { - .nav-previous { - bottom: 20px; - z-index: 1; - } - - .nav-next { - bottom: 20px; - z-index: 1; - } -} - -.error404 .entry-content .widget, -#sidebar #secondary, -#sidebar #tertiary, -#sidebar #quaternary { - width: 90%; - clear: both; -} - -#sidebar { - aside { - margin: 50px 0; - } -} - -ul.children { - padding-left: 10px; -} diff --git a/assets/sass/responsive_wide.scss b/assets/sass/responsive_wide.scss deleted file mode 100644 index f80e3715..00000000 --- a/assets/sass/responsive_wide.scss +++ /dev/null @@ -1,193 +0,0 @@ -@import "vars"; -@import "mixins"; - -#sidebar, -.site-navigation, -.site-header .site-branding, -.site-header .page-banner #page-title, -.site-header .page-banner #page-description, -.has-full-width-featured-image .entry-header .entry-header-wrapper > * { - width: $wide-width; -} - -.entry-content { - .wp-block-image, - .entry-attachment { - width: $wide-width; - max-width: $wide-width; - } - - .wp-block-image.alignfull { - width: 100%; - max-width: 100%; - } -} - -#sidebar { - width: $wide-width + 400; - max-width: 100%; - - aside { - margin: 50px 50px; - } - - #secondary { - display: inline-block; - float: left; - width: 33%; - } - - #tertiary { - display: inline-block; - float: left; - width: 33%; - } - - #quaternary { - display: inline-block; - float: left; - width: 33%; - } -} - -.entry-content > span { - display: inline-block; -} - -.entry-content, -.entry-summary { - > object, - > embed, - > iframe, - > figure, - .wp-block-pullquote { - max-width: $wide-width; - box-sizing: border-box; - - small, - figcaption, - cite { - margin-right: $margin; - } - } -} - -.entry-content, -.entry-summary { - > table, - > pre { - width: $wide-width; - max-width: $wide-width; - box-sizing: border-box; - } -} - -.wp-audio-shortcode { - width: $default-width !important; -} - -figure, -.wp-block-cover, -.wp-block-gallery, -.wp-block-button { - &.alignleft { - float: left; - margin-top: .3em; - margin-right: 2em; - margin-left: calc( 50% - 350px ); - } - - &.alignright { - float: right; - margin-top: .3em; - margin-left: 2em; - margin-right: calc( 50% - 350px ); - } -} - -p { - &.alignleft { - font-size: .9em; - font-style: italic; - float: left; - color: $light-gray; - color: var(--color-light-gray); - padding: 1em 0 1em 0; - margin-right: 2.5em; - margin-left: calc( 50% - 450px ); - width: 400px; - border-top: 1px solid $light-gray; - border-top-color: var(--color-light-gray); - border-bottom: 1px solid $light-gray; - border-bottom-color: var(--color-light-gray); - } - - &.alignright { - font-size: .9em; - font-style: italic; - float: right; - color: $light-gray; - color: var(--color-light-gray); - padding: 1em 0 1em 0; - margin-left: 2.5em; - margin-right: calc( 50% - 450px ); - width: 400px; - border-top: 1px solid $light-gray; - border-top-color: var(--color-light-gray); - border-bottom: 1px solid $light-gray; - border-bottom-color: var(--color-light-gray); - } -} - -.alignright { - figcaption { - display: block; - height: 68px; - margin-top: 0px; - text-align: left; - width: $margin; - margin-left: 20px; - word-break: break-word; - word-wrap: break-word; - float: right; - - &:before { - width: 25%; - margin-right: 75%; - border-top: 1px solid $light-gray; - border-top-color: var(--color-light-gray); - display: block; - content: ""; - margin-bottom: 10px; - } - } -} - -.alignleft { - figcaption { - display: block; - height: 68px; - margin-top: 0px; - text-align: right; - width: $margin; - margin-right: 20px; - word-break: break-word; - word-wrap: break-word; - float: left; - - &:before { - width: 25%; - margin-left: 75%; - border-top: 1px solid $light-gray; - border-top-color: var(--color-light-gray); - display: block; - content: ""; - margin-bottom: 10px; - } - } -} - -article.error404 .entry-content { - width: $wide-width; - margin: auto auto; -} diff --git a/assets/sass/style.scss b/assets/sass/style.scss deleted file mode 100644 index db4225df..00000000 --- a/assets/sass/style.scss +++ /dev/null @@ -1,159 +0,0 @@ -/*! - * Theme Name: @@name - * Theme URI: @@homepage - * Author: @@author - * Author URI: @@author_url - * Description: @@description - * Version: @@version - * License: @@license - * License URI: @@license_url - * Tags: @@tags - * Text Domain: autonomie - * Tested up to: 5.5 - * Requires PHP: 5.6 - * - * GitHub Theme URI: pfefferle/autonomie - * GitHub Theme URI: https://github.com/pfefferle/autonomie - * - * Use it to make something cool, have fun, and share what you've learned with others. - */ - -$font_path: "assets/font/"; - -@import "lato-font"; -@import "merriweather-font"; - -@import "vars"; -@import "mixins"; - -@import "openwebicons"; - -@import "normalize"; - -// HTML5 Boilerplate v4.3.0 | MIT License | http://h5bp.com/ - -// What follows is the result of much research on cross-browser styling. -// Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal, -// Kroc Camen, and the H5BP dev community and team. - - -// ============================================================================= -// Base styles: opinionated defaults -// ============================================================================= - -html { - color: $dark-gray; - color: var(--color-dark-gray); - font-size: 1em; - line-height: 1.6; -} - -// Remove text-shadow in selection highlight: h5bp.com/i -// These selection rule sets have to be separate. -// Customize the background color to match your design. - -::-moz-selection, -::selection { - background: #b3d4fc; - text-shadow: none; -} - -// Remove the gap between images, videos, audio and canvas and the bottom of -// their containers: h5bp.com/i/440 - -audio, -canvas, -img, -svg, -video { - vertical-align: middle; -} - -// Remove default fieldset styles. - -fieldset { - border: 0; - margin: 0; - padding: 0; -} - -// Allow only vertical resizing of textareas. - -textarea { - resize: vertical; -} - -// ============================================================================= -// Browse Happy prompt -// ============================================================================= - -.browsehappy, -.browserupgrade { - background: $gray; - background: var(--color-gray); - color: #000; - margin: .2em 0; - padding: .2em 0; -} - -// ============================================================================= -// Author's custom styles -// ============================================================================= - -@import "page"; -@import "comment"; -@import "post"; -@import "nav"; -@import "table"; -@import "media"; -@import "sidebar"; -@import "base"; -@import "block"; -@import "form"; -@import "widgets"; - -// ============================================================================= -// Helper classes -// ============================================================================= - -// Hide from both screenreaders and browsers: h5bp.com/u - -.hidden { - display: none !important; - visibility: hidden; -} - -// Hide only visually, but have it available for screenreaders: h5bp.com/v - -.visuallyhidden { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} - -// Extends the .visuallyhidden class to allow the element to be focusable -// when navigated to via the keyboard: h5bp.com/p - -.visuallyhidden.focusable:active, -.visuallyhidden.focusable:focus { - clip: auto; - height: auto; - margin: 0; - overflow: visible; - position: static; - width: auto; -} - -// Hide visually and from screenreaders, but maintain layout - -.invisible { - visibility: hidden; -} - -@import "integrations"; -@import "darkmode"; diff --git a/build-scripts/README.md b/build-scripts/README.md new file mode 100644 index 00000000..6cb94e43 --- /dev/null +++ b/build-scripts/README.md @@ -0,0 +1,50 @@ +# Build Scripts + +## extract-icons.js + +Extracts SVG icon paths from `@wordpress/icons` library and generates a static PHP file for use in server-side rendering. + +### How it works + +1. Reads icon definitions from `node_modules/@wordpress/icons/build-module/library/` +2. Extracts SVG path data from JavaScript files +3. Generates `src/post-format/icon-paths.php` with static icon paths +4. This file is then copied to `build/` during webpack build + +### Why? + +- **Production-safe**: Generated PHP file contains static data, no dependency on node_modules +- **Single source of truth**: Icons come from the same `@wordpress/icons` library used in JavaScript +- **Automatic sync**: Running `npm run build` regenerates icons from the latest library version +- **Zero runtime overhead**: Icon paths are hardcoded arrays, no file parsing at runtime + +### Usage + +The script runs automatically before every build: + +```bash +npm run build # Runs extract-icons.js first via prebuild hook +npm run dev # Runs extract-icons.js first via predev hook +``` + +To run manually: + +```bash +node build-scripts/extract-icons.js +``` + +### Generated file + +Creates `/src/post-format/icon-paths.php`: + +```php +function autonomie_get_post_format_icon_paths() { + return array( + 'quote' => 'M13 6v6h5.2v4...', + 'image' => 'M19 3H5c-1.1...', + // ... etc + ); +} +``` + +This file is committed to git and deployed to production. diff --git a/build-scripts/extract-icons.js b/build-scripts/extract-icons.js new file mode 100644 index 00000000..90c0027e --- /dev/null +++ b/build-scripts/extract-icons.js @@ -0,0 +1,113 @@ +/** + * Extract WordPress Icon Paths to PHP + * + * This script reads icon definitions from @wordpress/icons + * and generates a static PHP file with the SVG paths. + */ + +const fs = require( 'fs' ); +const path = require( 'path' ); + +// Icons we need for post formats +const iconMap = { + aside: 'post-content', + gallery: 'gallery', + link: 'link', + image: 'image', + quote: 'quote', + status: 'post-content', + video: 'video', + audio: 'audio', + chat: 'comment', + standard: 'post-content', +}; + +/** + * Extract SVG path from WordPress icon JS file + */ +function extractIconPath( iconName ) { + const iconPath = path.join( + __dirname, + '../node_modules/@wordpress/icons/build-module/library', + `${ iconName }.js` + ); + + if ( ! fs.existsSync( iconPath ) ) { + console.error( `Icon not found: ${ iconName }` ); + return null; + } + + const content = fs.readFileSync( iconPath, 'utf8' ); + + // Extract the d attribute from Path component + const match = content.match( /d:\s*"([^"]+)"/ ); + + if ( match ) { + return match[ 1 ]; + } + + console.error( `Could not extract path from: ${ iconName }` ); + return null; +} + +/** + * Generate PHP file with icon paths + */ +function generateIconsFile() { + const icons = {}; + + // Extract all icon paths + for ( const [ format, iconName ] of Object.entries( iconMap ) ) { + const iconPath = extractIconPath( iconName ); + if ( iconPath ) { + icons[ format ] = iconPath; + } + } + + // Generate PHP code + const phpCode = ` + `\t\t'${ format }' => '${ iconPath }',` + ) + .join( '\n' ) } + ); +} +`; + + // Write to src directory (will be copied to build by webpack) + const outputPath = path.join( + __dirname, + '../src/post-format/icon-paths.php' + ); + + fs.writeFileSync( outputPath, phpCode ); + + console.log( '✓ Generated icon-paths.php with paths for:' ); + Object.keys( icons ).forEach( ( format ) => + console.log( ` - ${ format }` ) + ); +} + +// Run the script +generateIconsFile(); diff --git a/build/post-format/block.json b/build/post-format/block.json new file mode 100644 index 00000000..7c6e2fa3 --- /dev/null +++ b/build/post-format/block.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 3, + "name": "autonomie/post-format", + "title": "Post Format", + "category": "theme", + "description": "Displays the post format with an icon and link to the format archive.", + "keywords": [ + "post", + "format", + "meta" + ], + "textdomain": "autonomie", + "supports": { + "html": false, + "color": { + "text": true, + "background": false + }, + "typography": { + "fontSize": true, + "fontFamily": true + }, + "spacing": { + "margin": true, + "padding": false + } + }, + "usesContext": [ + "postId", + "postType" + ], + "editorScript": "file:./index.js", + "editorStyle": "file:./index.css", + "style": "file:./style-index.css", + "render": "file:./render.php" +} \ No newline at end of file diff --git a/build/post-format/icon-paths.php b/build/post-format/icon-paths.php new file mode 100644 index 00000000..5d70abec --- /dev/null +++ b/build/post-format/icon-paths.php @@ -0,0 +1,32 @@ + 'M4 6h12V4.5H4V6Zm16 4.5H4V9h16v1.5ZM4 15h16v-1.5H4V15Zm0 4.5h16V18H4v1.5Z', + 'gallery' => 'M16.375 4.5H4.625a.125.125 0 0 0-.125.125v8.254l2.859-1.54a.75.75 0 0 1 .68-.016l2.384 1.142 2.89-2.074a.75.75 0 0 1 .874 0l2.313 1.66V4.625a.125.125 0 0 0-.125-.125Zm.125 9.398-2.75-1.975-2.813 2.02a.75.75 0 0 1-.76.067l-2.444-1.17L4.5 14.583v1.792c0 .069.056.125.125.125h11.75a.125.125 0 0 0 .125-.125v-2.477ZM4.625 3C3.728 3 3 3.728 3 4.625v11.75C3 17.273 3.728 18 4.625 18h11.75c.898 0 1.625-.727 1.625-1.625V4.625C18 3.728 17.273 3 16.375 3H4.625ZM20 8v11c0 .69-.31 1-.999 1H6v1.5h13.001c1.52 0 2.499-.982 2.499-2.5V8H20Z', + 'link' => 'M10 17.389H8.444A5.194 5.194 0 1 1 8.444 7H10v1.5H8.444a3.694 3.694 0 0 0 0 7.389H10v1.5ZM14 7h1.556a5.194 5.194 0 0 1 0 10.39H14v-1.5h1.556a3.694 3.694 0 0 0 0-7.39H14V7Zm-4.5 6h5v-1.5h-5V13Z', + 'image' => 'M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v8.4l-3-2.9c-.3-.3-.8-.3-1 0L11.9 14 9 12c-.3-.2-.6-.2-.8 0l-3.6 2.6V5c-.1-.3.1-.5.4-.5zm14 15H5c-.3 0-.5-.2-.5-.5v-2.4l4.1-3 3 1.9c.3.2.7.2.9-.1L16 12l3.5 3.4V19c0 .3-.2.5-.5.5z', + 'quote' => 'M13 6v6h5.2v4c0 .8-.2 1.4-.5 1.7-.6.6-1.6.6-2.5.5h-.3v1.5h.5c1 0 2.3-.1 3.3-1 .6-.6 1-1.6 1-2.8V6H13zm-9 6h5.2v4c0 .8-.2 1.4-.5 1.7-.6.6-1.6.6-2.5.5h-.3v1.5h.5c1 0 2.3-.1 3.3-1 .6-.6 1-1.6 1-2.8V6H4v6z', + 'status' => 'M4 6h12V4.5H4V6Zm16 4.5H4V9h16v1.5ZM4 15h16v-1.5H4V15Zm0 4.5h16V18H4v1.5Z', + 'video' => 'M18.7 3H5.3C4 3 3 4 3 5.3v13.4C3 20 4 21 5.3 21h13.4c1.3 0 2.3-1 2.3-2.3V5.3C21 4 20 3 18.7 3zm.8 15.7c0 .4-.4.8-.8.8H5.3c-.4 0-.8-.4-.8-.8V5.3c0-.4.4-.8.8-.8h13.4c.4 0 .8.4.8.8v13.4zM10 15l5-3-5-3v6z', + 'audio' => 'M17.7 4.3c-1.2 0-2.8 0-3.8 1-.6.6-.9 1.5-.9 2.6V14c-.6-.6-1.5-1-2.5-1C8.6 13 7 14.6 7 16.5S8.6 20 10.5 20c1.5 0 2.8-1 3.3-2.3.5-.8.7-1.8.7-2.5V7.9c0-.7.2-1.2.5-1.6.6-.6 1.8-.6 2.8-.6h.3V4.3h-.4z', + 'chat' => 'M18 4H6c-1.1 0-2 .9-2 2v12.9c0 .6.5 1.1 1.1 1.1.3 0 .5-.1.8-.3L8.5 17H18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 11c0 .3-.2.5-.5.5H7.9l-2.4 2.4V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v9z', + 'standard' => 'M4 6h12V4.5H4V6Zm16 4.5H4V9h16v1.5ZM4 15h16v-1.5H4V15Zm0 4.5h16V18H4v1.5Z', + ); +} diff --git a/build/post-format/index-rtl.css b/build/post-format/index-rtl.css new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/build/post-format/index-rtl.css @@ -0,0 +1 @@ + diff --git a/build/post-format/index.asset.php b/build/post-format/index.asset.php new file mode 100644 index 00000000..d05e0295 --- /dev/null +++ b/build/post-format/index.asset.php @@ -0,0 +1 @@ + array('react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-core-data', 'wp-data', 'wp-element', 'wp-primitives'), 'version' => '3e0b96a741073a7bec07'); diff --git a/build/post-format/index.css b/build/post-format/index.css new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/build/post-format/index.css @@ -0,0 +1 @@ + diff --git a/build/post-format/index.css.map b/build/post-format/index.css.map new file mode 100644 index 00000000..f34071d4 --- /dev/null +++ b/build/post-format/index.css.map @@ -0,0 +1 @@ +{"version":3,"file":"post-format/index.css","mappings":";;;AAAA;;EAAA,C","sources":["webpack://autonomie/./src/post-format/editor.scss"],"sourcesContent":["/**\n * Editor styles for Post Format block\n */\n\n.wp-block-autonomie-post-format {\n\t.format-icon {\n\t\t// SVG icon styles are inherited from style.scss\n\t\t// No editor-specific overrides needed\n\t}\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/build/post-format/index.js b/build/post-format/index.js new file mode 100644 index 00000000..3aac2c8d --- /dev/null +++ b/build/post-format/index.js @@ -0,0 +1 @@ +(()=>{"use strict";var t,o={258:()=>{const t=window.wp.blocks,o=window.wp.blockEditor,e=(window.wp.coreData,window.wp.data),a=window.ReactJSXRuntime,r=window.wp.primitives;var s=(0,a.jsx)(r.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,a.jsx)(r.Path,{d:"M4 6h12V4.5H4V6Zm16 4.5H4V9h16v1.5ZM4 15h16v-1.5H4V15Zm0 4.5h16V18H4v1.5Z"})}),n=(0,a.jsx)(r.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,a.jsx)(r.Path,{d:"M16.375 4.5H4.625a.125.125 0 0 0-.125.125v8.254l2.859-1.54a.75.75 0 0 1 .68-.016l2.384 1.142 2.89-2.074a.75.75 0 0 1 .874 0l2.313 1.66V4.625a.125.125 0 0 0-.125-.125Zm.125 9.398-2.75-1.975-2.813 2.02a.75.75 0 0 1-.76.067l-2.444-1.17L4.5 14.583v1.792c0 .069.056.125.125.125h11.75a.125.125 0 0 0 .125-.125v-2.477ZM4.625 3C3.728 3 3 3.728 3 4.625v11.75C3 17.273 3.728 18 4.625 18h11.75c.898 0 1.625-.727 1.625-1.625V4.625C18 3.728 17.273 3 16.375 3H4.625ZM20 8v11c0 .69-.31 1-.999 1H6v1.5h13.001c1.52 0 2.499-.982 2.499-2.5V8H20Z",fillRule:"evenodd",clipRule:"evenodd"})}),i=(0,a.jsx)(r.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,a.jsx)(r.Path,{d:"M10 17.389H8.444A5.194 5.194 0 1 1 8.444 7H10v1.5H8.444a3.694 3.694 0 0 0 0 7.389H10v1.5ZM14 7h1.556a5.194 5.194 0 0 1 0 10.39H14v-1.5h1.556a3.694 3.694 0 0 0 0-7.39H14V7Zm-4.5 6h5v-1.5h-5V13Z"})}),c=(0,a.jsx)(r.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,a.jsx)(r.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v8.4l-3-2.9c-.3-.3-.8-.3-1 0L11.9 14 9 12c-.3-.2-.6-.2-.8 0l-3.6 2.6V5c-.1-.3.1-.5.4-.5zm14 15H5c-.3 0-.5-.2-.5-.5v-2.4l4.1-3 3 1.9c.3.2.7.2.9-.1L16 12l3.5 3.4V19c0 .3-.2.5-.5.5z"})}),l=(0,a.jsx)(r.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,a.jsx)(r.Path,{d:"M13 6v6h5.2v4c0 .8-.2 1.4-.5 1.7-.6.6-1.6.6-2.5.5h-.3v1.5h.5c1 0 2.3-.1 3.3-1 .6-.6 1-1.6 1-2.8V6H13zm-9 6h5.2v4c0 .8-.2 1.4-.5 1.7-.6.6-1.6.6-2.5.5h-.3v1.5h.5c1 0 2.3-.1 3.3-1 .6-.6 1-1.6 1-2.8V6H4v6z"})}),h=(0,a.jsx)(r.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,a.jsx)(r.Path,{d:"M18.7 3H5.3C4 3 3 4 3 5.3v13.4C3 20 4 21 5.3 21h13.4c1.3 0 2.3-1 2.3-2.3V5.3C21 4 20 3 18.7 3zm.8 15.7c0 .4-.4.8-.8.8H5.3c-.4 0-.8-.4-.8-.8V5.3c0-.4.4-.8.8-.8h13.4c.4 0 .8.4.8.8v13.4zM10 15l5-3-5-3v6z"})}),d=(0,a.jsx)(r.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,a.jsx)(r.Path,{d:"M17.7 4.3c-1.2 0-2.8 0-3.8 1-.6.6-.9 1.5-.9 2.6V14c-.6-.6-1.5-1-2.5-1C8.6 13 7 14.6 7 16.5S8.6 20 10.5 20c1.5 0 2.8-1 3.3-2.3.5-.8.7-1.8.7-2.5V7.9c0-.7.2-1.2.5-1.6.6-.6 1.8-.6 2.8-.6h.3V4.3h-.4z"})}),v=(0,a.jsx)(r.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,a.jsx)(r.Path,{d:"M18 4H6c-1.1 0-2 .9-2 2v12.9c0 .6.5 1.1 1.1 1.1.3 0 .5-.1.8-.3L8.5 17H18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 11c0 .3-.2.5-.5.5H7.9l-2.4 2.4V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v9z"})});const w=window.wp.element;var m=(0,w.forwardRef)(({icon:t,size:o=24,...e},a)=>(0,w.cloneElement)(t,{width:o,height:o,...e,ref:a}));const p={aside:s,gallery:n,link:i,image:c,quote:l,status:s,video:h,audio:d,chat:v,standard:s},x={aside:"Aside",gallery:"Gallery",link:"Link",image:"Image",quote:"Quote",status:"Status",video:"Video",audio:"Audio",chat:"Chat",standard:"Standard"};(0,t.registerBlockType)("autonomie/post-format",{edit:({context:t})=>{const{postId:r,postType:s="post"}=t,{format:n,formatLink:i}=(0,e.useSelect)(t=>{if(!r)return{format:"standard",formatLink:""};const{getEntityRecord:o,getTaxonomy:e}=t("core"),a=o("postType",s,r);if(!a)return{format:"standard",formatLink:""};const n=a.format||[];let i="standard";if(n.length>0){const t=o("taxonomy","post_format",n[0]);t&&(i=t.slug.replace("post-format-",""))}let c="";if(n.length>0){const t=o("taxonomy","post_format",n[0]);t&&t.link&&(c=t.link)}return{format:i,formatLink:c}},[r,s]),c=(0,o.useBlockProps)({className:`format-${n}`}),l=p[n]||p.standard,h=x[n]||x.standard;return(0,a.jsx)("div",{...c,children:(0,a.jsxs)("span",{className:"format-display",children:[(0,a.jsx)(m,{className:"format-icon",icon:l}),(0,a.jsx)("span",{className:"format-text",children:h})]})})}})}},e={};function a(t){var r=e[t];if(void 0!==r)return r.exports;var s=e[t]={exports:{}};return o[t](s,s.exports,a),s.exports}a.m=o,t=[],a.O=(o,e,r,s)=>{if(!e){var n=1/0;for(h=0;h=s)&&Object.keys(a.O).every(t=>a.O[t](e[c]))?e.splice(c--,1):(i=!1,s0&&t[h-1][2]>s;h--)t[h]=t[h-1];t[h]=[e,r,s]},a.o=(t,o)=>Object.prototype.hasOwnProperty.call(t,o),(()=>{var t={862:0,618:0};a.O.j=o=>0===t[o];var o=(o,e)=>{var r,s,[n,i,c]=e,l=0;if(n.some(o=>0!==t[o])){for(r in i)a.o(i,r)&&(a.m[r]=i[r]);if(c)var h=c(a)}for(o&&o(e);la(258));r=a.O(r)})(); \ No newline at end of file diff --git a/build/post-format/index.js.map b/build/post-format/index.js.map new file mode 100644 index 00000000..b9861da1 --- /dev/null +++ b/build/post-format/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"post-format/index.js","mappings":";;;;;;;;;;;;;;;;AAA8D;AAC9D,mBAAmB,8DAAU;AAC7B,KAAK,2BAA2B;AAChC,WAAW,gEAAY;AACvB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AAGE;AACF;;;;;;;;;;;;;;;;;;;ACdwC;AACU;AAClD,oCAAoC,sDAAG,CAAC,sDAAG,IAAI,qFAAqF,sDAAG,CAAC,uDAAI,IAAI,yMAAyM,GAAG;AAG1V;AACF;;;;;;;;;;;;;;;;;;;ACNwC;AACU;AAClD,sCAAsC,sDAAG,CAAC,sDAAG,IAAI,qFAAqF,sDAAG,CAAC,uDAAI,IAAI,uLAAuL,GAAG;AAG1U;AACF;;;;;;;;;;;;;;;;;;;ACNwC;AACU;AAClD,sCAAsC,sDAAG,CAAC,sDAAG,IAAI,qFAAqF,sDAAG;AACzI,EAAE,uDAAI;AACN;AACA;AACA;AACA;AACA;AACA,GAAG;AAGD;AACF;;;;;;;;;;;;;;;;;;;ACbwC;AACU;AAClD,oCAAoC,sDAAG,CAAC,sDAAG,IAAI,qFAAqF,sDAAG,CAAC,uDAAI,IAAI,4RAA4R,GAAG;AAG7a;AACF;;;;;;;;;;;;;;;;;;;ACNwC;AACU;AAClD,mCAAmC,sDAAG,CAAC,sDAAG,IAAI,qFAAqF,sDAAG,CAAC,uDAAI,IAAI,uMAAuM,GAAG;AAGvV;AACF;;;;;;;;;;;;;;;;;;;ACNwC;AACU;AAClD,2CAA2C,sDAAG,CAAC,sDAAG,IAAI,qFAAqF,sDAAG,CAAC,uDAAI,IAAI,gFAAgF,GAAG;AAGxO;AACF;;;;;;;;;;;;;;;;;;;ACNwC;AACU;AAClD,oCAAoC,sDAAG,CAAC,sDAAG,IAAI,qFAAqF,sDAAG,CAAC,uDAAI,IAAI,gNAAgN,GAAG;AAGjW;AACF;;;;;;;;;;;;;;;;;;;ACNwC;AACU;AAClD,oCAAoC,sDAAG,CAAC,sDAAG,IAAI,qFAAqF,sDAAG,CAAC,uDAAI,IAAI,+MAA+M,GAAG;AAGhW;AACF;;;;;;;;;;;;ACNA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACsD;AACE;AACH;AACT;AAWlB;;AAE1B;AACA;AACA;AACsB;AACC;;AAEvB;AAAA;AACA,MAAMkB,KAAK,GAAG;EACbC,KAAK,EAAEP,yDAAW;EAClBN,OAAO,EAAEA,wDAAO;EAChBI,IAAI,EAAEC,wDAAQ;EACdN,KAAK,EAAEA,wDAAK;EACZD,KAAK,EAAEA,yDAAK;EACZgB,MAAM,EAAER,yDAAW;EACnBL,KAAK,EAAEA,yDAAK;EACZC,KAAK,EAAEA,wDAAK;EACZa,IAAI,EAAEZ,wDAAO;EACba,QAAQ,EAAEV,yDAAWA;AACtB,CAAC;;AAED;AACA,MAAMW,WAAW,GAAG;EACnBJ,KAAK,EAAE,OAAO;EACdb,OAAO,EAAE,SAAS;EAClBI,IAAI,EAAE,MAAM;EACZL,KAAK,EAAE,OAAO;EACdD,KAAK,EAAE,OAAO;EACdgB,MAAM,EAAE,QAAQ;EAChBb,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE,OAAO;EACda,IAAI,EAAE,MAAM;EACZC,QAAQ,EAAE;AACX,CAAC;;AAED;AACA;AACA;AACA,MAAME,IAAI,GAAGA,CAAE;EAAEC;AAAQ,CAAC,KAAM;EAC/B,MAAM;IAAEC,MAAM;IAAEC,QAAQ,GAAG;EAAO,CAAC,GAAGF,OAAO;;EAE7C;EACA,MAAM;IAAEG,MAAM;IAAEC;EAAW,CAAC,GAAG1B,0DAAS,CACrC2B,MAAM,IAAM;IACb,IAAK,CAAEJ,MAAM,EAAG;MACf,OAAO;QAAEE,MAAM,EAAE,UAAU;QAAEC,UAAU,EAAE;MAAG,CAAC;IAC9C;IAEA,MAAM;MAAEE,eAAe;MAAEC;IAAY,CAAC,GAAGF,MAAM,CAAE,MAAO,CAAC;IACzD,MAAMG,IAAI,GAAGF,eAAe,CAAE,UAAU,EAAEJ,QAAQ,EAAED,MAAO,CAAC;IAE5D,IAAK,CAAEO,IAAI,EAAG;MACb,OAAO;QAAEL,MAAM,EAAE,UAAU;QAAEC,UAAU,EAAE;MAAG,CAAC;IAC9C;;IAEA;IACA,MAAMK,aAAa,GAAGD,IAAI,CAACL,MAAM,IAAI,EAAE;IACvC,IAAIO,UAAU,GAAG,UAAU;IAE3B,IAAKD,aAAa,CAACE,MAAM,GAAG,CAAC,EAAG;MAC/B;MACA,MAAMC,UAAU,GAAGN,eAAe,CACjC,UAAU,EACV,aAAa,EACbG,aAAa,CAAE,CAAC,CACjB,CAAC;MACD,IAAKG,UAAU,EAAG;QACjBF,UAAU,GAAGE,UAAU,CAACC,IAAI,CAACC,OAAO,CAAE,cAAc,EAAE,EAAG,CAAC;MAC3D;IACD;;IAEA;IACA,IAAI7B,IAAI,GAAG,EAAE;IACb,IAAKwB,aAAa,CAACE,MAAM,GAAG,CAAC,EAAG;MAC/B,MAAMC,UAAU,GAAGN,eAAe,CACjC,UAAU,EACV,aAAa,EACbG,aAAa,CAAE,CAAC,CACjB,CAAC;MACD,IAAKG,UAAU,IAAIA,UAAU,CAAC3B,IAAI,EAAG;QACpCA,IAAI,GAAG2B,UAAU,CAAC3B,IAAI;MACvB;IACD;IAEA,OAAO;MAAEkB,MAAM,EAAEO,UAAU;MAAEN,UAAU,EAAEnB;IAAK,CAAC;EAChD,CAAC,EACD,CAAEgB,MAAM,EAAEC,QAAQ,CACnB,CAAC;EAED,MAAMa,UAAU,GAAGvC,sEAAa,CAAE;IACjCwC,SAAS,EAAE,UAAWb,MAAM;EAC7B,CAAE,CAAC;EAEH,MAAMc,IAAI,GAAGxB,KAAK,CAAEU,MAAM,CAAE,IAAIV,KAAK,CAACI,QAAQ;EAC9C,MAAMqB,UAAU,GAAGpB,WAAW,CAAEK,MAAM,CAAE,IAAIL,WAAW,CAACD,QAAQ;EAEhE,oBACCP,uDAAA;IAAA,GAAUyB,UAAU;IAAAI,QAAA,eACnB3B,wDAAA;MAAMwB,SAAS,EAAC,gBAAgB;MAAAG,QAAA,gBAC/B7B,uDAAA,CAACF,wDAAI;QAAC4B,SAAS,EAAC,aAAa;QAACC,IAAI,EAAGA;MAAM,CAAE,CAAC,eAC9C3B,uDAAA;QAAM0B,SAAS,EAAC,aAAa;QAAAG,QAAA,EAAGD;MAAU,CAAQ,CAAC;IAAA,CAC9C;EAAC,CACH,CAAC;AAER,CAAC;;AAED;AACA;AACA;AACA3C,oEAAiB,CAAE,uBAAuB,EAAE;EAC3C6C,IAAI,EAAErB;AACP,CAAE,CAAC,C;;;;;;;;;;;ACjIH;;;;;;;;;;;ACAA,6C;;;;;;;;;;ACAA,wC;;;;;;;;;;ACAA,0C;;;;;;;;;;ACAA,sC;;;;;;;;;;ACAA,yC;;;;;;;;;;ACAA,4C;;;;;;;;;;ACAA,2C;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA,+BAA+B,wCAAwC;WACvE;WACA;WACA;WACA;WACA,iBAAiB,qBAAqB;WACtC;WACA;WACA,kBAAkB,qBAAqB;WACvC;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,E;;;;;WC3BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA,E;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA,E;;;;;WCPA,wF;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D,E;;;;;WCNA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA,4G;;;;;UEjDA;UACA;UACA;UACA;UACA","sources":["webpack://autonomie/./node_modules/@wordpress/icons/build-module/icon/index.js","webpack://autonomie/./node_modules/@wordpress/icons/build-module/library/audio.js","webpack://autonomie/./node_modules/@wordpress/icons/build-module/library/comment.js","webpack://autonomie/./node_modules/@wordpress/icons/build-module/library/gallery.js","webpack://autonomie/./node_modules/@wordpress/icons/build-module/library/image.js","webpack://autonomie/./node_modules/@wordpress/icons/build-module/library/link.js","webpack://autonomie/./node_modules/@wordpress/icons/build-module/library/post-content.js","webpack://autonomie/./node_modules/@wordpress/icons/build-module/library/quote.js","webpack://autonomie/./node_modules/@wordpress/icons/build-module/library/video.js","webpack://autonomie/./src/post-format/editor.scss?b3d7","webpack://autonomie/./src/post-format/index.js","webpack://autonomie/./src/post-format/style.scss?1c5b","webpack://autonomie/external window [\"wp\",\"blockEditor\"]","webpack://autonomie/external window [\"wp\",\"blocks\"]","webpack://autonomie/external window [\"wp\",\"coreData\"]","webpack://autonomie/external window [\"wp\",\"data\"]","webpack://autonomie/external window [\"wp\",\"element\"]","webpack://autonomie/external window [\"wp\",\"primitives\"]","webpack://autonomie/external window \"ReactJSXRuntime\"","webpack://autonomie/webpack/bootstrap","webpack://autonomie/webpack/runtime/chunk loaded","webpack://autonomie/webpack/runtime/compat get default export","webpack://autonomie/webpack/runtime/define property getters","webpack://autonomie/webpack/runtime/hasOwnProperty shorthand","webpack://autonomie/webpack/runtime/make namespace object","webpack://autonomie/webpack/runtime/jsonp chunk loading","webpack://autonomie/webpack/before-startup","webpack://autonomie/webpack/startup","webpack://autonomie/webpack/after-startup"],"sourcesContent":["import { cloneElement, forwardRef } from \"@wordpress/element\";\nvar icon_default = forwardRef(\n ({ icon, size = 24, ...props }, ref) => {\n return cloneElement(icon, {\n width: size,\n height: size,\n ...props,\n ref\n });\n }\n);\nexport {\n icon_default as default\n};\n//# sourceMappingURL=index.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { Path, SVG } from \"@wordpress/primitives\";\nvar audio_default = /* @__PURE__ */ jsx(SVG, { viewBox: \"0 0 24 24\", xmlns: \"http://www.w3.org/2000/svg\", children: /* @__PURE__ */ jsx(Path, { d: \"M17.7 4.3c-1.2 0-2.8 0-3.8 1-.6.6-.9 1.5-.9 2.6V14c-.6-.6-1.5-1-2.5-1C8.6 13 7 14.6 7 16.5S8.6 20 10.5 20c1.5 0 2.8-1 3.3-2.3.5-.8.7-1.8.7-2.5V7.9c0-.7.2-1.2.5-1.6.6-.6 1.8-.6 2.8-.6h.3V4.3h-.4z\" }) });\nexport {\n audio_default as default\n};\n//# sourceMappingURL=audio.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { Path, SVG } from \"@wordpress/primitives\";\nvar comment_default = /* @__PURE__ */ jsx(SVG, { viewBox: \"0 0 24 24\", xmlns: \"http://www.w3.org/2000/svg\", children: /* @__PURE__ */ jsx(Path, { d: \"M18 4H6c-1.1 0-2 .9-2 2v12.9c0 .6.5 1.1 1.1 1.1.3 0 .5-.1.8-.3L8.5 17H18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 11c0 .3-.2.5-.5.5H7.9l-2.4 2.4V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v9z\" }) });\nexport {\n comment_default as default\n};\n//# sourceMappingURL=comment.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { Path, SVG } from \"@wordpress/primitives\";\nvar gallery_default = /* @__PURE__ */ jsx(SVG, { viewBox: \"0 0 24 24\", xmlns: \"http://www.w3.org/2000/svg\", children: /* @__PURE__ */ jsx(\n Path,\n {\n d: \"M16.375 4.5H4.625a.125.125 0 0 0-.125.125v8.254l2.859-1.54a.75.75 0 0 1 .68-.016l2.384 1.142 2.89-2.074a.75.75 0 0 1 .874 0l2.313 1.66V4.625a.125.125 0 0 0-.125-.125Zm.125 9.398-2.75-1.975-2.813 2.02a.75.75 0 0 1-.76.067l-2.444-1.17L4.5 14.583v1.792c0 .069.056.125.125.125h11.75a.125.125 0 0 0 .125-.125v-2.477ZM4.625 3C3.728 3 3 3.728 3 4.625v11.75C3 17.273 3.728 18 4.625 18h11.75c.898 0 1.625-.727 1.625-1.625V4.625C18 3.728 17.273 3 16.375 3H4.625ZM20 8v11c0 .69-.31 1-.999 1H6v1.5h13.001c1.52 0 2.499-.982 2.499-2.5V8H20Z\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n }\n) });\nexport {\n gallery_default as default\n};\n//# sourceMappingURL=gallery.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { Path, SVG } from \"@wordpress/primitives\";\nvar image_default = /* @__PURE__ */ jsx(SVG, { viewBox: \"0 0 24 24\", xmlns: \"http://www.w3.org/2000/svg\", children: /* @__PURE__ */ jsx(Path, { d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v8.4l-3-2.9c-.3-.3-.8-.3-1 0L11.9 14 9 12c-.3-.2-.6-.2-.8 0l-3.6 2.6V5c-.1-.3.1-.5.4-.5zm14 15H5c-.3 0-.5-.2-.5-.5v-2.4l4.1-3 3 1.9c.3.2.7.2.9-.1L16 12l3.5 3.4V19c0 .3-.2.5-.5.5z\" }) });\nexport {\n image_default as default\n};\n//# sourceMappingURL=image.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { Path, SVG } from \"@wordpress/primitives\";\nvar link_default = /* @__PURE__ */ jsx(SVG, { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 24 24\", children: /* @__PURE__ */ jsx(Path, { d: \"M10 17.389H8.444A5.194 5.194 0 1 1 8.444 7H10v1.5H8.444a3.694 3.694 0 0 0 0 7.389H10v1.5ZM14 7h1.556a5.194 5.194 0 0 1 0 10.39H14v-1.5h1.556a3.694 3.694 0 0 0 0-7.39H14V7Zm-4.5 6h5v-1.5h-5V13Z\" }) });\nexport {\n link_default as default\n};\n//# sourceMappingURL=link.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { Path, SVG } from \"@wordpress/primitives\";\nvar post_content_default = /* @__PURE__ */ jsx(SVG, { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 24 24\", children: /* @__PURE__ */ jsx(Path, { d: \"M4 6h12V4.5H4V6Zm16 4.5H4V9h16v1.5ZM4 15h16v-1.5H4V15Zm0 4.5h16V18H4v1.5Z\" }) });\nexport {\n post_content_default as default\n};\n//# sourceMappingURL=post-content.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { Path, SVG } from \"@wordpress/primitives\";\nvar quote_default = /* @__PURE__ */ jsx(SVG, { viewBox: \"0 0 24 24\", xmlns: \"http://www.w3.org/2000/svg\", children: /* @__PURE__ */ jsx(Path, { d: \"M13 6v6h5.2v4c0 .8-.2 1.4-.5 1.7-.6.6-1.6.6-2.5.5h-.3v1.5h.5c1 0 2.3-.1 3.3-1 .6-.6 1-1.6 1-2.8V6H13zm-9 6h5.2v4c0 .8-.2 1.4-.5 1.7-.6.6-1.6.6-2.5.5h-.3v1.5h.5c1 0 2.3-.1 3.3-1 .6-.6 1-1.6 1-2.8V6H4v6z\" }) });\nexport {\n quote_default as default\n};\n//# sourceMappingURL=quote.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { Path, SVG } from \"@wordpress/primitives\";\nvar video_default = /* @__PURE__ */ jsx(SVG, { viewBox: \"0 0 24 24\", xmlns: \"http://www.w3.org/2000/svg\", children: /* @__PURE__ */ jsx(Path, { d: \"M18.7 3H5.3C4 3 3 4 3 5.3v13.4C3 20 4 21 5.3 21h13.4c1.3 0 2.3-1 2.3-2.3V5.3C21 4 20 3 18.7 3zm.8 15.7c0 .4-.4.8-.8.8H5.3c-.4 0-.8-.4-.8-.8V5.3c0-.4.4-.8.8-.8h13.4c.4 0 .8.4.8.8v13.4zM10 15l5-3-5-3v6z\" }) });\nexport {\n video_default as default\n};\n//# sourceMappingURL=video.js.map\n","// extracted by mini-css-extract-plugin\nexport {};","/**\n * WordPress dependencies\n */\nimport { registerBlockType } from '@wordpress/blocks';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tquote,\n\timage,\n\tgallery,\n\tvideo,\n\taudio,\n\tcomment,\n\tlink as linkIcon,\n\tpostContent,\n\tIcon,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport './style.scss';\nimport './editor.scss';\n\n// WordPress icons for each format\nconst icons = {\n\taside: postContent,\n\tgallery: gallery,\n\tlink: linkIcon,\n\timage: image,\n\tquote: quote,\n\tstatus: postContent,\n\tvideo: video,\n\taudio: audio,\n\tchat: comment,\n\tstandard: postContent,\n};\n\n// Format display names\nconst formatNames = {\n\taside: 'Aside',\n\tgallery: 'Gallery',\n\tlink: 'Link',\n\timage: 'Image',\n\tquote: 'Quote',\n\tstatus: 'Status',\n\tvideo: 'Video',\n\taudio: 'Audio',\n\tchat: 'Chat',\n\tstandard: 'Standard',\n};\n\n/**\n * Post Format Block Edit Component\n */\nconst Edit = ( { context } ) => {\n\tconst { postId, postType = 'post' } = context;\n\n\t// Get the post format from the taxonomy\n\tconst { format, formatLink } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! postId ) {\n\t\t\t\treturn { format: 'standard', formatLink: '' };\n\t\t\t}\n\n\t\t\tconst { getEntityRecord, getTaxonomy } = select( 'core' );\n\t\t\tconst post = getEntityRecord( 'postType', postType, postId );\n\n\t\t\tif ( ! post ) {\n\t\t\t\treturn { format: 'standard', formatLink: '' };\n\t\t\t}\n\n\t\t\t// Get format from taxonomy\n\t\t\tconst formatTermIds = post.format || [];\n\t\t\tlet postFormat = 'standard';\n\n\t\t\tif ( formatTermIds.length > 0 ) {\n\t\t\t\t// Get the term slug\n\t\t\t\tconst formatTerm = getEntityRecord(\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\t'post_format',\n\t\t\t\t\tformatTermIds[ 0 ]\n\t\t\t\t);\n\t\t\t\tif ( formatTerm ) {\n\t\t\t\t\tpostFormat = formatTerm.slug.replace( 'post-format-', '' );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Get format archive link\n\t\t\tlet link = '';\n\t\t\tif ( formatTermIds.length > 0 ) {\n\t\t\t\tconst formatTerm = getEntityRecord(\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\t'post_format',\n\t\t\t\t\tformatTermIds[ 0 ]\n\t\t\t\t);\n\t\t\t\tif ( formatTerm && formatTerm.link ) {\n\t\t\t\t\tlink = formatTerm.link;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn { format: postFormat, formatLink: link };\n\t\t},\n\t\t[ postId, postType ]\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: `format-${ format }`,\n\t} );\n\n\tconst icon = icons[ format ] || icons.standard;\n\tconst formatName = formatNames[ format ] || formatNames.standard;\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t{ formatName }\n\t\t\t\n\t\t
\n\t);\n};\n\n/**\n * Register the block\n */\nregisterBlockType( 'autonomie/post-format', {\n\tedit: Edit,\n} );\n","// extracted by mini-css-extract-plugin\nexport {};","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"blocks\"];","module.exports = window[\"wp\"][\"coreData\"];","module.exports = window[\"wp\"][\"data\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"primitives\"];","module.exports = window[\"ReactJSXRuntime\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"post-format/index\": 0,\n\t\"post-format/style-index\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunkautonomie\"] = globalThis[\"webpackChunkautonomie\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"post-format/style-index\"], () => (__webpack_require__(\"./src/post-format/index.js\")))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":["registerBlockType","useBlockProps","useEntityProp","useSelect","quote","image","gallery","video","audio","comment","link","linkIcon","postContent","Icon","jsx","_jsx","jsxs","_jsxs","icons","aside","status","chat","standard","formatNames","Edit","context","postId","postType","format","formatLink","select","getEntityRecord","getTaxonomy","post","formatTermIds","postFormat","length","formatTerm","slug","replace","blockProps","className","icon","formatName","children","edit"],"sourceRoot":""} \ No newline at end of file diff --git a/build/post-format/render.php b/build/post-format/render.php new file mode 100644 index 00000000..97f1a1a0 --- /dev/null +++ b/build/post-format/render.php @@ -0,0 +1,73 @@ +context['postId'] ) ) { + global $post; + if ( ! $post ) { + return ''; + } + $post_id = $post->ID; +} else { + $post_id = $block->context['postId']; +} + +$format = get_post_format( $post_id ); + +// Default to standard if no format is set +if ( ! $format ) { + $format = 'standard'; +} + +$format_string = get_post_format_string( $format ); +$format_link = get_post_format_link( $format ); + +// For standard format, use custom link function from feed.php +if ( ! $format_link && 'standard' === $format ) { + if ( function_exists( 'autonomie_get_post_format_link' ) ) { + $format_link = autonomie_get_post_format_link( $format ); + } +} + +// Get icons from auto-generated icon paths +$icons = autonomie_get_post_format_icon_paths(); + +$icon_path = isset( $icons[ $format ] ) ? $icons[ $format ] : $icons['standard']; +$icon_svg = sprintf( + '', + esc_attr( $icon_path ) +); + +// Build wrapper attributes +$wrapper_attributes = get_block_wrapper_attributes( + array( + 'class' => 'format-' . esc_attr( $format ), + ) +); +?> + +
> + + + + + + + + +
diff --git a/build/post-format/style-index-rtl.css b/build/post-format/style-index-rtl.css new file mode 100644 index 00000000..24e0d56f --- /dev/null +++ b/build/post-format/style-index-rtl.css @@ -0,0 +1 @@ +.wp-block-autonomie-post-format{display:inline-block}.wp-block-autonomie-post-format .format-display,.wp-block-autonomie-post-format a{align-items:center;display:inline-flex;gap:.3em;text-decoration:none}.wp-block-autonomie-post-format .format-icon{fill:currentColor;flex-shrink:0;height:1em;width:1em} diff --git a/build/post-format/style-index.css b/build/post-format/style-index.css new file mode 100644 index 00000000..24e0d56f --- /dev/null +++ b/build/post-format/style-index.css @@ -0,0 +1 @@ +.wp-block-autonomie-post-format{display:inline-block}.wp-block-autonomie-post-format .format-display,.wp-block-autonomie-post-format a{align-items:center;display:inline-flex;gap:.3em;text-decoration:none}.wp-block-autonomie-post-format .format-icon{fill:currentColor;flex-shrink:0;height:1em;width:1em} diff --git a/build/post-format/style-index.css.map b/build/post-format/style-index.css.map new file mode 100644 index 00000000..6862a4f8 --- /dev/null +++ b/build/post-format/style-index.css.map @@ -0,0 +1 @@ +{"version":3,"file":"post-format/style-index.css","mappings":";;;AAAA;;EAAA;AAIA;EACC;AAAD;AAEC;;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAAF;AAGC;EACC;AADF;AAIC;EACC;EACA;EACA;EACA;AAFF;AAMA;AACA;;EAEC;AAHD,C","sources":["webpack://autonomie/./src/post-format/style.scss"],"sourcesContent":["/**\n * Post Format Block Styles - Frontend and Editor\n */\n\n.wp-block-autonomie-post-format {\n\tdisplay: inline-block;\n\n\ta,\n\t.format-display {\n\t\tcolor: var(--wp--preset--color--light-gray);\n\t\tfont-size: 0.75em;\n\t\tfont-weight: 600;\n\t\ttext-transform: lowercase;\n\t\tletter-spacing: 0.05em;\n\t\ttext-decoration: none;\n\t\tfont-family: var(--wp--preset--font-family--sans-serif);\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tgap: 0.3em;\n\t}\n\n\ta:hover {\n\t\tcolor: var(--wp--preset--color--primary);\n\t}\n\n\t.format-icon {\n\t\twidth: 1em;\n\t\theight: 1em;\n\t\tflex-shrink: 0;\n\t\tfill: currentColor;\n\t}\n}\n\n/* Hide on singular pages by default */\n.single .wp-block-autonomie-post-format,\n.page .wp-block-autonomie-post-format {\n\tdisplay: none;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/comments.php b/comments.php deleted file mode 100644 index ffeb209b..00000000 --- a/comments.php +++ /dev/null @@ -1,80 +0,0 @@ - -
- -

-
- - - - - -

- ' . get_the_title() . '' - ); - ?> -

- - 1 && get_option( 'page_comments' ) ) : // are there comments to navigate through ?> - - - -
    - 'autonomie_comment', 'format' => '' ) ); - ?> -
- - 1 && get_option( 'page_comments' ) ) : // are there comments to navigate through ?> - - - - - - -

- - - - - diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index b28a91c5..00000000 --- a/docker-compose.yml +++ /dev/null @@ -1,27 +0,0 @@ -version: '2' -services: - db: - image: mysql:5.7 - restart: always - environment: - MYSQL_ROOT_PASSWORD: wordpress - MYSQL_DATABASE: wordpress - MYSQL_USER: wordpress - MYSQL_PASSWORD: wordpress - - wordpress: - depends_on: - - db - image: wordpress:latest - links: - - db - ports: - - "4223:80" - volumes: - - ./:/var/www/html/wp-content/themes/autonomie - restart: always - environment: - WORDPRESS_DB_USER: wordpress - WORDPRESS_DB_HOST: db:3306 - WORDPRESS_DB_PASSWORD: wordpress - WORDPRESS_DEBUG: 1 diff --git a/footer.php b/footer.php deleted file mode 100644 index 14a8bbfc..00000000 --- a/footer.php +++ /dev/null @@ -1,39 +0,0 @@ - -
- - -
- - - -
- - - -
- -
- -
- - WordPress', 'Autonomie' ); ?> -
-
- - - - - - diff --git a/functions.php b/functions.php index 65024438..829a2b51 100644 --- a/functions.php +++ b/functions.php @@ -1,575 +1,439 @@ __( 'Blue', 'autonomie' ), - 'slug' => 'blue', - 'color' => '#0073aa', - ), - array( - 'name' => __( 'Lighter blue', 'autonomie' ), - 'slug' => 'lighter-blue', - 'color' => '#229fd8', - ), - array( - 'name' => __( 'Blue jeans', 'autonomie' ), - 'slug' => 'blue-jeans', - 'color' => '#5bc0eb', - ), - array( - 'name' => __( 'Orioles orange', 'autonomie' ), - 'slug' => 'orioles-orange', - 'color' => '#fa5b0f', - ), - array( - 'name' => __( 'USC gold', 'autonomie' ), - 'slug' => 'usc-gold', - 'color' => '#ffcc00', - ), - array( - 'name' => __( 'Gargoyle gas', 'autonomie' ), - 'slug' => 'gargoyle-gas', - 'color' => '#fde74c', - ), - array( - 'name' => __( 'Yellow', 'autonomie' ), - 'slug' => 'yellow', - 'color' => '#fff9c0', - ), - array( - 'name' => __( 'Android green', 'autonomie' ), - 'slug' => 'android-green', - 'color' => '#9bc53d', - ), - array( - 'name' => __( 'White', 'autonomie' ), - 'slug' => 'white', - 'color' => '#fff', - ), - array( - 'name' => __( 'Very light gray', 'autonomie' ), - 'slug' => 'very-light-gray', - 'color' => '#eee', - ), - array( - 'name' => __( 'Very dark gray', 'autonomie' ), - 'slug' => 'very-dark-gray', - 'color' => '#444', - ), - ) - ); + /** + * Core WordPress Features + */ - // This theme uses wp_nav_menu() in one location. - register_nav_menus( - array( - 'primary' => __( 'Primary Menu', 'autonomie' ), - ) - ); + // Add default posts and comments RSS feed links to head + add_theme_support( 'automatic-feed-links' ); + + // Enable post thumbnails + add_theme_support( 'post-thumbnails' ); + set_post_thumbnail_size( 700, 9999 ); // Unlimited height, soft crop + + // Register custom image size for image post formats + add_image_size( 'autonomie-image-post', 700, 1250 ); + + // HTML5 support for search form, comment form, comments, gallery, caption + add_theme_support( + 'html5', + array( + 'search-form', + 'comment-form', + 'comment-list', + 'gallery', + 'caption', + 'script', + 'style', + ) + ); - // Add support for the Aside, Gallery Post Formats... - add_theme_support( - 'post-formats', - array( - 'aside', - 'gallery', - 'link', - 'status', - 'image', - 'video', - 'audio', - 'quote', - 'chat', - ) - ); + // Wide and full alignment support + add_theme_support( 'align-wide' ); - add_theme_support( 'responsive-embeds' ); - - /* - * Let WordPress manage the document title. - * By adding theme support, we declare that this theme does not use a - * hard-coded tag in the document head, and expect WordPress to - * provide it for us. - */ - add_theme_support( 'title-tag' ); - - // custom logo support - add_theme_support( - 'custom-logo', - array( - 'height' => 30, - 'width' => 30, - ) - ); + // Responsive embeds + add_theme_support( 'responsive-embeds' ); - // This theme supports a custom header - $custom_header_args = array( - 'width' => 1250, - 'height' => 600, - 'header-text' => true, - ); - add_theme_support( 'custom-header', $custom_header_args ); - - /** - * Draw attention to supported WebSemantics - */ - add_theme_support( 'microformats2' ); - add_theme_support( 'microformats' ); - add_theme_support( 'microdata' ); - add_theme_support( 'indieweb' ); - - // enable service workers - add_theme_support( 'service_worker', true ); - - // add starter content - add_theme_support( - 'starter-content', - array( - 'widgets' => array( - 'sidebar-1' => array( - 'text_business_info', - 'search', - 'text_about', - ), - - 'sidebar-2' => array( - 'text_business_info', - ), - - 'sidebar-3' => array( - 'text_about', - 'search', - ), - - 'entry-meta' => array(), - ), - - 'posts' => array( - 'home', - 'about' => array( - 'thumbnail' => '{{image-sea}}', - ), - 'contact' => array( - 'thumbnail' => '{{image-lights}}', - ), - 'blog' => array( - 'thumbnail' => '{{image-beach}}', - ), - 'homepage-section' => array( - 'thumbnail' => '{{image-lights}}', - ), - ), - - 'attachments' => array( - 'image-beach' => array( - 'post_title' => _x( 'Beach', 'Theme starter content', 'autonomie' ), - 'file' => 'assets/images/beach.jpeg', - ), - 'image-sea' => array( - 'post_title' => _x( 'Sea', 'Theme starter content', 'autonomie' ), - 'file' => 'assets/images/sea.jpeg', - ), - 'image-lights' => array( - 'post_title' => _x( 'Lights', 'Theme starter content', 'autonomie' ), - 'file' => 'assets/images/lights.jpeg', - ), - ), - - 'options' => array( - 'show_on_front' => 'page', - 'page_on_front' => '{{home}}', - 'page_for_posts' => '{{blog}}', - 'header_image' => get_theme_file_uri( 'assets/images/beach.jpeg' ), - ), - - 'theme_mods' => array( - 'panel_1' => '{{homepage-section}}', - 'panel_2' => '{{about}}', - 'panel_3' => '{{blog}}', - 'panel_4' => '{{contact}}', - ), - - 'nav_menus' => array( - 'primary' => array( - 'name' => __( 'Top Menu', 'autonomie' ), - 'items' => array( - 'page_home', - 'page_about', - 'page_blog', - 'page_contact', - ), - ), - ), - ) - ); - } -endif; // autonomie_setup + // Let WordPress manage the document title + add_theme_support( 'title-tag' ); -/** - * Tell WordPress to run autonomie_setup() when the 'after_setup_theme' hook is run. - */ -add_action( 'after_setup_theme', 'autonomie_setup' ); + // Custom logo support + add_theme_support( + 'custom-logo', + array( + 'height' => 30, + 'width' => 30, + ) + ); -/** - * Add a pingback url auto-discovery header for singularly identifiable articles. - */ -function autonomie_pingback_header() { - if ( is_singular() && pings_open() ) { - printf( '<link rel="pingback" href="%1$s" />', esc_url( get_bloginfo( 'pingback_url' ) ) ); - } + /** + * Post Format Support + * Enable all supported WordPress post formats + */ + add_theme_support( + 'post-formats', + array( + 'aside', + 'gallery', + 'link', + 'status', + 'image', + 'video', + 'audio', + 'quote', + 'chat', + ) + ); + + /** + * Block Editor Features + * Note: Editor styling is handled by theme.json, no separate editor-style.css needed + */ + + // Add support for custom line heights + add_theme_support( 'custom-line-height' ); + + // Add support for custom units + add_theme_support( 'custom-units' ); + + // Add support for custom spacing + add_theme_support( 'custom-spacing' ); + + // Add support for appearance tools in theme.json + add_theme_support( 'appearance-tools' ); + + // Add support for link color + add_theme_support( 'link-color' ); + + // Add support for block template parts + add_theme_support( 'block-template-parts' ); + + // Editor styles — required for add_editor_style() scoping in block themes + add_theme_support( 'editor-styles' ); + add_editor_style( 'style.css' ); + + /** + * Semantic Web Support + * Draw attention to supported web semantics + */ + add_theme_support( 'microformats2' ); + add_theme_support( 'microformats' ); + add_theme_support( 'microdata' ); + add_theme_support( 'indieweb' ); + + /** + * Service Worker Support + * For PWA functionality + */ + add_theme_support( 'service_worker', true ); } -add_action( 'wp_head', 'autonomie_pingback_header' ); +add_action( 'after_setup_theme', 'autonomie_setup' ); /** - * Adds a rel-feed if the main page is not a list of posts + * Enqueue theme styles and scripts */ -function autonomie_publisher_feed_header() { - if ( is_front_page() && 0 !== (int) get_option( 'page_for_posts', 0 ) ) { - printf( PHP_EOL . '<link rel="feed" type="text/html" href="%1$s" title="%2$s" />' . PHP_EOL, esc_url( get_post_type_archive_link( 'post' ) ), __( 'POSH Feed', 'autonomie' ) ); +function autonomie_enqueue_scripts() { + // Main stylesheet + wp_enqueue_style( + 'autonomie-style', + get_stylesheet_uri(), + array(), + wp_get_theme()->get( 'Version' ) + ); + + // Print styles + wp_enqueue_style( + 'autonomie-print', + get_template_directory_uri() . '/assets/css/print.css', + array( 'autonomie-style' ), + wp_get_theme()->get( 'Version' ), + 'print' + ); + + // Thread comments script + if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { + wp_enqueue_script( 'comment-reply' ); } } -add_action( 'wp_head', 'autonomie_publisher_feed_header' ); +add_action( 'wp_enqueue_scripts', 'autonomie_enqueue_scripts' ); /** - * Adds a rel-feed if the main page is not a list of posts + * Register custom blocks */ -function autonomie_header() { - printf( PHP_EOL . '<meta name="supported-color-schemes" content="light dark">' . PHP_EOL ); +function autonomie_register_blocks() { + // Register post format block from block metadata (JS editor + PHP render API). + register_block_type_from_metadata( __DIR__ . '/build/post-format' ); + + // Dynamic block: renders the first video/embed extracted from the post content + // Register a minimal editor script so the Site Editor recognizes the block + wp_register_script( + 'autonomie-video-hero-editor', + '', + array( 'wp-blocks', 'wp-element', 'wp-block-editor' ), + wp_get_theme()->get( 'Version' ) + ); + wp_add_inline_script( + 'autonomie-video-hero-editor', + '( function() { + var el = wp.element.createElement; + wp.blocks.registerBlockType( "autonomie/video-hero", { + title: "Video Hero", + icon: "video-alt3", + category: "theme", + edit: function( props ) { + return el( "div", wp.blockEditor.useBlockProps( { + style: { textAlign: "center", color: "#757575", padding: "2em", background: "#0f0f0f" } + } ), el( "p", { style: { color: "#aaa" } }, "Video Hero" ) ); + }, + } ); + } )();' + ); + register_block_type( + 'autonomie/video-hero', + array( + 'editor_script' => 'autonomie-video-hero-editor', + 'render_callback' => 'autonomie_render_video_hero', + ) + ); } -add_action( 'wp_head', 'autonomie_header' ); +add_action( 'init', 'autonomie_register_blocks' ); /** - * Set the content width in pixels, based on the theme's design and stylesheet. + * Extract the first video/embed block from a video format post. * - * Priority 0 to make it available to lower priority callbacks. + * Uses the block parser to find the first core/embed or core/video block. + * Stores the serialized block for rendering and the remaining blocks + * for filtered content output. * - * @global int $content_width + * @param int $post_id The post ID. + * @return array|null Extracted data or null. */ -function autonomie_content_width() { - $content_width = 900; +function autonomie_extract_video_hero( $post_id = null ) { + static $cache = array(); - $GLOBALS['content_width'] = apply_filters( 'autonomie_content_width', $content_width ); -} -add_action( 'after_setup_theme', 'autonomie_content_width', 0 ); + if ( ! $post_id ) { + $post = get_post(); + if ( ! $post ) { + return null; + } + $post_id = $post->ID; + } else { + $post = get_post( $post_id ); + } -/** - * Set the default maxwith for the embeds - */ -function autonomie_embed_defaults() { - return array( - 'width' => 900, - 'height' => 600, - ); -} -add_filter( 'embed_defaults', 'autonomie_embed_defaults' ); + if ( isset( $cache[ $post_id ] ) ) { + return $cache[ $post_id ]; + } -function autonomie_login_logo() { - if ( ! has_site_icon() ) { - return; + $cache[ $post_id ] = null; + + if ( ! $post || 'video' !== get_post_format( $post ) || ! has_blocks( $post ) ) { + return null; } - ?> - <style type="text/css"> - body.login div#login h1 a { - background-image: url( <?php echo get_site_icon_url( 84 ); ?> ); + $blocks = parse_blocks( $post->post_content ); + + // Find the first non-empty block (skip whitespace-only freeform blocks) + $first_index = null; + foreach ( $blocks as $index => $block ) { + if ( ! empty( $block['blockName'] ) ) { + $first_index = $index; + break; } - </style> - <?php -} -add_action( 'login_enqueue_scripts', 'autonomie_login_logo' ); + } -/** - * Set the default with for the embeds - * Fixes issues with Vimeo - */ -function autonomie_oembed_fetch_url( $provider ) { - $provider = add_query_arg( 'width', 900, $provider ); - $provider = add_query_arg( 'height', 600, $provider ); + // Only extract if the very first block is a video/embed + if ( null === $first_index || ! in_array( $blocks[ $first_index ]['blockName'], array( 'core/embed', 'core/video' ), true ) ) { + return null; + } + + $video_block = $blocks[ $first_index ]; + unset( $blocks[ $first_index ] ); - return $provider; + $cache[ $post_id ] = array( + 'video_block' => $video_block, + 'remaining_blocks' => $blocks, + ); + + return $cache[ $post_id ]; } -add_filter( 'oembed_fetch_url', 'autonomie_oembed_fetch_url', 99 ); /** - * Get our wp_nav_menu() fallback, wp_page_menu(), to show a home link. + * Render callback for the autonomie/video-hero block. + * + * Outputs the first video/embed extracted from the post content. + * Manually calls wp_oembed_get() since do_blocks() can't process + * oEmbeds reliably when called within the template rendering pipeline. + * + * @return string The rendered video HTML. */ -function autonomie_page_menu_args( $args ) { - $args['show_home'] = true; +function autonomie_render_video_hero() { + if ( ! is_singular() ) { + return ''; + } - return $args; -} -add_filter( 'wp_page_menu_args', 'autonomie_page_menu_args' ); + $data = autonomie_extract_video_hero(); -if ( ! function_exists( 'autonomie_enqueue_scripts' ) ) : - /** - * Enqueue theme scripts - * - * @uses wp_enqueue_scripts() To enqueue scripts - * - * @since Autonomie 1.0.0 - */ - function autonomie_enqueue_scripts() { - /* - * Adds JavaScript to pages with the comment form to support sites with - * threaded comments (when in use). - */ - if ( - is_singular() && - comments_open() && - get_option( 'thread_comments' ) - ) { - wp_enqueue_script( 'comment-reply' ); - } + if ( ! $data ) { + return ''; + } - wp_enqueue_script( - 'autonomie-navigation', - get_template_directory_uri() . '/assets/js/navigation.js', - array(), - '1.0.0', - array( - 'strategy' => 'async', - ) - ); + $block = $data['video_block']; - if ( is_singular() ) { - wp_enqueue_script( - 'autonomie-share', - get_template_directory_uri() . '/assets/js/share.js', - array(), - '1.0.0', - array( - 'strategy' => 'async', - ) - ); - } + // For core/embed, get the oEmbed HTML from the URL attribute + if ( 'core/embed' === $block['blockName'] && ! empty( $block['attrs']['url'] ) ) { + $url = $block['attrs']['url']; + $align = ! empty( $block['attrs']['align'] ) ? ' align' . $block['attrs']['align'] : ''; + $html = wp_oembed_get( $url ); - wp_enqueue_style( 'dashicons' ); - - // Loads our main stylesheet. - wp_enqueue_style( 'autonomie-style', get_stylesheet_uri(), array( 'dashicons' ) ); - wp_enqueue_style( 'autonomie-print-style', get_template_directory_uri() . '/assets/css/print.css', array( 'autonomie-style' ), '1.0.0', 'print' ); - wp_enqueue_style( 'autonomie-narrow-style', get_template_directory_uri() . '/assets/css/narrow-width.css', array( 'autonomie-style' ), '1.0.0', '(max-width: 800px)' ); - wp_enqueue_style( 'autonomie-default-style', get_template_directory_uri() . '/assets/css/default-width.css', array( 'autonomie-style' ), '1.0.0', '(min-width: 800px)' ); - wp_enqueue_style( 'autonomie-wide-style', get_template_directory_uri() . '/assets/css/wide-width.css', array( 'autonomie-style' ), '1.0.0', '(min-width: 1000px)' ); - - wp_localize_script( - 'autonomie', - 'vars', - array( - 'template_url' => get_template_directory_uri(), - ) - ); + if ( ! $html ) { + // Fall back to block rendering (or plain URL) when oEmbed lookup fails. + $fallback = render_block( $block ); - if ( has_header_image() ) { - if ( is_author() ) { - $css = '.page-banner { - background: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.7)), url(' . get_header_image() . ') no-repeat center center scroll; - }' . PHP_EOL; - } else { - $css = '.page-banner { - background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.7)), url(' . get_header_image() . ') no-repeat center center scroll; - }' . PHP_EOL; + if ( ! empty( trim( $fallback ) ) ) { + return '<div class="video-hero">' . $fallback . '</div>'; } - wp_add_inline_style( 'autonomie-style', $css ); + return '<div class="video-hero"><p><a href="' . esc_url( $url ) . '">' . esc_html( $url ) . '</a></p></div>'; } - } -endif; -add_action( 'wp_enqueue_scripts', 'autonomie_enqueue_scripts' ); + // Build CSS classes matching core/embed output for proper responsive sizing + $provider = ! empty( $block['attrs']['providerNameSlug'] ) ? ' is-provider-' . $block['attrs']['providerNameSlug'] : ''; + $classes = 'wp-block-embed' . $align . ' is-type-video wp-block-embed-youtube' . $provider . ' wp-embed-aspect-16-9 wp-has-aspect-ratio'; -if ( ! function_exists( 'autonomie_comment' ) ) : - /** - * Template for comments and pingbacks. - * - * To override this walker in a child theme without modifying the comments template - * simply create your own autonomie_comment(), and that function will be used instead. - * - * Used as a callback by wp_list_comments() for displaying the comments. - * - * @since Autonomie 1.0.0 - */ - function autonomie_comment( $comment, $args, $depth ) { - $GLOBALS['comment'] = $comment; - ?> - <li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>"> - <article id="comment-<?php comment_ID(); ?>" class="comment <?php $comment->comment_type; ?>" itemprop="comment" itemscope itemtype="https://schema.org/Comment"> - <div class="edit-link"><?php edit_comment_link( __( 'Edit', 'autonomie' ), ' ' ); ?></div> - <footer class="comment-meta commentmetadata"> - <address class="comment-author p-author author vcard hcard h-card" itemprop="creator" itemscope itemtype="https://schema.org/Person"> - <?php echo get_avatar( $comment, 40 ); ?> - <?php printf( '<cite class="fn p-name" itemprop="name">%s</cite>', get_comment_author_link() ); ?> - </address><!-- .comment-author .vcard --> - - <a href="<?php echo esc_url( get_comment_link( $comment->comment_ID ) ); ?>"><time class="updated published dt-updated dt-published" datetime="<?php comment_time( 'c' ); ?>" itemprop="dateCreated"> - <?php - /* translators: 1: date, 2: time */ - printf( __( '%1$s at %2$s', 'autonomie' ), get_comment_date(), get_comment_time() ); - ?> - </time></a> - </footer> - - <?php if ( '0' === $comment->comment_approved ) : ?> - <p><em><?php _e( 'Your comment is awaiting moderation.', 'autonomie' ); ?></em></p> - <?php endif; ?> - - <div class="comment-content e-content p-summary p-name" itemprop="text name description"><?php comment_text(); ?></div> - - <div class="reply"> - <?php - comment_reply_link( - array_merge( - $args, - array( - 'depth' => $depth, - 'max_depth' => $args['max_depth'], - ) - ) - ); - ?> - </div><!-- .reply --> - </article><!-- #comment-## --> - <?php + // Extract caption from innerHTML if present + $caption = ''; + if ( preg_match( '/<figcaption[^>]*>(.*?)<\/figcaption>/s', $block['innerHTML'], $matches ) ) { + $caption = '<figcaption class="wp-element-caption">' . $matches[1] . '</figcaption>'; + } + + return sprintf( + '<div class="video-hero"><figure class="%s"><div class="wp-block-embed__wrapper">%s</div></figure></div>%s', + esc_attr( $classes ), + $html, + $caption ? '<div class="video-hero-caption">' . $caption . '</div>' : '' + ); } -endif; // ends check for autonomie_comment() -/** - * All template functions - */ -require( get_template_directory() . '/includes/template-functions.php' ); + // For core/video, render through the standard block pipeline + if ( 'core/video' === $block['blockName'] ) { + return '<div class="video-hero">' . render_block( $block ) . '</div>'; + } -/** - * Widget handling - */ -require( get_template_directory() . '/includes/widgets.php' ); + return ''; +} /** - * Adds the featured image functionality + * Filter the post content to remove the first video/embed on video format posts. + * + * Works in tandem with autonomie_extract_video_hero() — only removes the block + * if it was already extracted for the video-hero block. + * + * @param string $content The post content. + * @return string Filtered content without the first video/embed. */ -require( get_template_directory() . '/includes/featured-image.php' ); +function autonomie_filter_video_content( $content ) { + if ( ! is_singular() ) { + return $content; + } -/** - * All customizer functions - */ -require( get_template_directory() . '/includes/customizer.php' ); + $data = autonomie_extract_video_hero(); -/** - * Adds some awesome websemantics like microformats(2) and microdata - */ -require( get_template_directory() . '/includes/semantics.php' ); + if ( ! $data ) { + return $content; + } -/** - * Add Webactions support - */ -require( get_template_directory() . '/includes/webactions.php' ); + // Re-serialize remaining blocks and render them + $output = ''; + foreach ( $data['remaining_blocks'] as $block ) { + $output .= serialize_block( $block ); + } + + return do_blocks( $output ); +} +add_filter( 'the_content', 'autonomie_filter_video_content', 5 ); /** - * Adds back compat handling for older WP versions + * Add post-format-specific templates to the template hierarchy. + * + * Enables templates like single-post-format-status.html, single-post-format-aside.html, etc. + * + * @param string[] $templates The list of template candidates. + * @return string[] Modified template candidates. */ -require( get_template_directory() . '/includes/compat.php' ); +function autonomie_post_format_template_hierarchy( $templates ) { + $post = get_queried_object(); + + if ( ! $post || 'post' !== get_post_type( $post ) ) { + return $templates; + } + + $format = get_post_format( $post ); + + if ( $format ) { + array_unshift( $templates, 'single-post-format-' . $format ); + } + + return $templates; +} +add_filter( 'single_template_hierarchy', 'autonomie_post_format_template_hierarchy' ); /** - * Feed extensions + * Add pingback url auto-discovery header for singularly identifiable articles */ -require( get_template_directory() . '/includes/feed.php' ); +function autonomie_pingback_header() { + if ( is_singular() && pings_open() ) { + printf( '<link rel="pingback" href="%s" />', esc_url( get_bloginfo( 'pingback_url' ) ) ); + } +} +add_action( 'wp_head', 'autonomie_pingback_header' ); /** - * Compatibility with other plugins, mostly IndieWeb related + * Include additional theme files */ -if ( defined( 'SYNDICATION_LINKS_VERSION' ) ) { - /** - * Adds Indieweb Syndcation Links - * if github.com/dshanske/syndication-links is activated - */ - require( get_template_directory() . '/integrations/syndication-links.php' ); -} +// Semantic HTML functions (microformats2, schema.org) +require get_template_directory() . '/includes/semantics.php'; -if ( class_exists( 'Post_Kinds_Plugin' ) ) { - require( get_template_directory() . '/integrations/post-kinds.php' ); -} +// Feed customization +require get_template_directory() . '/includes/feed.php'; + +// Compatibility functions (comment form enhancements, etc.) +require get_template_directory() . '/includes/compat.php'; + +// WebActions support (IndieWeb comment interactions) +require get_template_directory() . '/includes/webactions.php'; -if ( class_exists( '\Activitypub\Activitypub' ) ) { - require( get_template_directory() . '/integrations/activitypub.php' ); +/** + * FSE Theme Compatibility Check + * Display admin notice if WordPress version is too old + */ +function autonomie_check_theme_support() { + global $wp_version; + + if ( version_compare( $wp_version, '6.4', '<' ) ) { + add_action( 'admin_notices', 'autonomie_upgrade_notice' ); + } } +add_action( 'after_setup_theme', 'autonomie_check_theme_support' ); /** - * This theme was built with PHP, Semantic HTML, CSS, love, and Autonomie. + * Display upgrade notice for old WordPress versions */ +function autonomie_upgrade_notice() { + ?> + <div class="notice notice-error"> + <p> + <?php + printf( + /* translators: %s: WordPress version number */ + esc_html__( 'Autonomie requires WordPress version 6.4 or higher. You are running version %s. Please upgrade WordPress to use this theme.', 'autonomie' ), + esc_html( $GLOBALS['wp_version'] ) + ); + ?> + </p> + </div> + <?php +} diff --git a/header.php b/header.php deleted file mode 100644 index a0dd6b36..00000000 --- a/header.php +++ /dev/null @@ -1,64 +0,0 @@ -<?php -/** - * The Header for our theme. - * - * Displays all of the <head> section and everything up till <div id="main"> - * - * @package Autonomie - * @since Autonomie 1.0.0 - */ -?><!DOCTYPE html> -<html <?php language_attributes(); ?>> -<head> - <meta charset="<?php bloginfo( 'charset' ); ?>" /> - <meta name="viewport" content="width=device-width, initial-scale=1" /> - <link rel="profile" href="http://microformats.org/profile/specs" /> - <link rel="profile" href="http://microformats.org/profile/hatom" /> - - <?php wp_head(); ?> -</head> - -<body <?php body_class(); ?><?php autonomie_semantics( 'body' ); ?>> -<?php -/** - * @see: https://make.wordpress.org/core/2019/04/24/miscellaneous-developer-updates-in-5-2/ - */ -if ( function_exists( 'wp_body_open' ) ) { - wp_body_open(); -} else { - do_action( 'wp_body_open' ); -} -?> -<div id="page"> - <div class="skip-link screen-reader-text"><a href="#content" title="<?php esc_attr_e( 'Skip to content', 'autonomie' ); ?>"><?php _e( 'Skip to content', 'autonomie' ); ?></a></div> - <?php do_action( 'before' ); ?> - <header id="site-header" class="site-header"> - <div class="site-branding"> - <?php - if ( has_custom_logo() ) { - echo get_custom_logo(); - } - - if ( is_home() ) { - $site_title_element = 'h1'; - } else { - $site_title_element = 'div'; - } - ?> - <<?php echo $site_title_element; ?> id="site-title"<?php autonomie_semantics( 'site-title' ); ?>> - <a href="<?php echo esc_url( home_url( '/' ) ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home"<?php autonomie_semantics( 'site-url' ); ?>> - <?php bloginfo( 'name' ); ?> - </a> - </<?php echo $site_title_element; ?>> - - <?php get_search_form( true ); ?> - </div> - - <nav id="site-navigation" class="site-navigation"> - <button class="menu-toggle" aria-controls="site-navigation" aria-expanded="false"><?php esc_html_e( 'Primary Menu', 'autonomie' ); ?></button> - - <?php wp_nav_menu( array( 'theme_location' => 'primary' ) ); ?> - </nav><!-- #site-navigation --> - - <?php get_template_part( 'template-parts/page-banner', autonomie_get_archive_type() ); ?> - </header><!-- #site-header --> diff --git a/image.php b/image.php deleted file mode 100644 index cf82d09b..00000000 --- a/image.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php -/** - * The template for displaying image attachments. - * - * @package Autonomie - * @since Autonomie 1.0.0 - */ - -get_header(); ?> - - <main id="primary" <?php autonomie_main_class(); ?><?php autonomie_semantics( 'main' ); ?>> - - <?php while ( have_posts() ) : the_post(); ?> - - <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>itemscope itemtype="https://schema.org/ImageObject"> - <?php get_template_part( 'template-parts/entry-header' ); ?> - - <div class="entry-content e-content" itemprop="description"> - - <div class="entry-attachment"> - <figure class="attachment"> - <?php - /** - * Grab the IDs of all the image attachments in a gallery so we can get the URL of the next adjacent image in a gallery, - * or the first image (if we're looking at the last image in a gallery), or, in a gallery of one, just the link to that image file - */ - $attachments = array_values( get_children( array( 'post_parent' => $post->post_parent, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID' ) ) ); - foreach ( $attachments as $k => $attachment ) { - if ( $attachment->ID == $post->ID ) { - break; - } - } - $k++; - // If there is more than 1 attachment in a gallery - if ( count( $attachments ) > 1 ) { - if ( isset( $attachments[ $k ] ) ) { - // get the URL of the next image attachment - $next_attachment_url = get_attachment_link( $attachments[ $k ]->ID ); - } else { - // or get the URL of the first image attachment - $next_attachment_url = get_attachment_link( $attachments[0]->ID ); - } - } else { - // or, if there's only 1 image, get the URL of the image - $next_attachment_url = wp_get_attachment_url(); - } - ?> - - <a href="<?php echo $next_attachment_url; ?>" title="<?php echo esc_attr( get_the_title() ); ?>" rel="attachment"><?php - $attachment_size = apply_filters( 'autonomie_attachment_size', 1200 ); - echo wp_get_attachment_image( $post->ID, array( $attachment_size, $attachment_size ), null, array( 'itemprop' => 'image contentURL' ) ); // filterable image width with, essentially, no limit for image height. - ?></a> - - <?php if ( ! empty( $post->post_excerpt ) ) : ?> - <figcaption class="entry-caption"> - <?php the_excerpt(); ?> - </figcaption> - <?php endif; ?> - </figure><!-- .attachment --> - </div><!-- .entry-attachment --> - - <?php the_content(); ?> - <?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'autonomie' ), 'after' => '</div>' ) ); ?> - </div><!-- .entry-content --> - - <?php get_template_part( 'template-parts/entry-footer' ); ?> - </article><!-- #post-<?php the_ID(); ?> --> - - <?php comments_template(); ?> - - <?php endwhile; // end of the loop. ?> - - </main><!-- #content --> - -<?php get_footer(); ?> diff --git a/includes/compat.php b/includes/compat.php index 94fecc29..77dac627 100644 --- a/includes/compat.php +++ b/includes/compat.php @@ -62,7 +62,7 @@ function autonomie_query_format_standard( $query ) { foreach ( $post_formats[0] as $format ) { $terms[] = 'post-format-' . $format; } - $query->is_tax = null; + $query->is_tax = false; unset( $query->query_vars['post_format'] ); unset( $query->query_vars['taxonomy'] ); @@ -85,45 +85,3 @@ function autonomie_query_format_standard( $query ) { } add_action( 'pre_get_posts', 'autonomie_query_format_standard' ); -/** - * Add lazy loading attribute - * - * @see https://www.webrocker.de/2019/08/20/wordpress-filter-for-lazy-loading-src/ - * - * @param string $content - * - * @return string the filtered content - */ -function autonomie_add_lazy_loading( $content ) { - $content = preg_replace( '/(<[^>]*?)(\ssrc=)(.*?\/?>)/', '\1 loading="lazy" src=\3', $content ); - - return $content; -} -add_filter( 'the_content', 'autonomie_add_lazy_loading', 99 ); - -add_filter( - 'wp_lazy_loading_enabled', - function( $default, $tag_name, $context ) { - if ( 'the_content' === $context ) { - return false; - } - - return $default; - }, - 20, - 3 -); - -if ( ! function_exists( 'get_self_link' ) ) { - /** - * Returns the link for the currently displayed feed. - * - * @since 5.3.0 - * - * @return string Correct link for the atom:self element. - */ - function get_self_link() { - $host = @parse_url( home_url() ); - return set_url_scheme( 'http://' . $host['host'] . wp_unslash( $_SERVER['REQUEST_URI'] ) ); - } -} diff --git a/includes/customizer.php b/includes/customizer.php deleted file mode 100644 index 8e9af163..00000000 --- a/includes/customizer.php +++ /dev/null @@ -1,18 +0,0 @@ -<?php -/** - * Adds "custom-color" support - * - * @since 1.3.0 - */ -function autonomie_customize_register( $wp_customize ) { - - $wp_customize->add_section( - 'autonomie_settings_section', - array( - 'title' => __( 'Advanced Settings', 'autonomie' ), - 'description' => __( 'Enable/Disable some advanced Autonomie features.', 'autonomie' ), //Descriptive tooltip - 'priority' => 35, - ) - ); -} -// add_action( 'customize_register', 'autonomie_customize_register' ); diff --git a/includes/featured-image.php b/includes/featured-image.php deleted file mode 100644 index 48fb33c1..00000000 --- a/includes/featured-image.php +++ /dev/null @@ -1,229 +0,0 @@ -<?php -/** - * Adds post-thumbnail support :) - * - * @since Autonomie 1.0.0 - */ -function autonomie_the_post_thumbnail( $before = '', $after = '' ) { - if ( autonomie_has_full_width_featured_image() ) { - return; - } - - if ( '' !== get_the_post_thumbnail() ) { - $image = wp_get_attachment_image_src( get_post_thumbnail_id(), 'post-thumbnail' ); - - if ( $image['1'] <= '400' ) { - return; - } - - $class = 'photo'; - - $post_format = get_post_format(); - - // use `u-photo` on photo/gallery posts - if ( in_array( $post_format, array( 'image', 'gallery' ), true ) ) { - $class .= ' u-photo'; - } else { // otherwise use `u-featured` - $class .= ' u-featured'; - } - - echo $before; - - the_post_thumbnail( - 'post-thumbnail', - array( - 'class' => $class, - 'itemprop' => 'image', - 'loading' => 'lazy', - ) - ); - - echo $after; - } -} - -/** - * Adds post-thumbnail support :) - * - * @since Autonomie 1.0.0 - */ -function autonomie_content_post_thumbnail( $content ) { - if ( '' !== get_the_post_thumbnail() ) { - $image = wp_get_attachment_image_src( get_post_thumbnail_id(), 'post-thumbnail' ); - - if ( $image['1'] > '400' ) { - return $content; - } - - $class = 'alignright photo'; - - $post_format = get_post_format(); - - // use `u-photo` on photo/gallery posts - if ( in_array( $post_format, array( 'image', 'gallery' ), true ) ) { - $class .= ' u-photo'; - } else { // otherwise use `u-featured` - $class .= ' u-featured'; - } - - $thumbnail = get_the_post_thumbnail( - null, - 'post-thumbnail', - array( - 'class' => $class, - 'itemprop' => 'image', - 'loading' => 'lazy', - ) - ); - - return sprintf( '<p>%s</p>%s', $thumbnail, $content ); - } - - return $content; -} -add_filter( 'the_content', 'autonomie_content_post_thumbnail' ); - -/** - * Add a checkbox for Post Covers to the featured image metabox - */ -function autonomie_featured_image_meta( $content, $post_id ) { - // Text for checkbox - $text = __( 'Use as post cover (full-width)', 'autonomie' ); - - // Get the current setting - $value = esc_attr( get_post_meta( $post_id, 'full_width_featured_image', '1' ) ); - // Output the checkbox HTML - $label = '<input type="hidden" name="full_width_featured_image" value="0">'; - $label .= '<label for="full_width_featured_image" class="selectit"><input name="full_width_featured_image" type="checkbox" id="full_width_featured_image" value="1" ' . checked( $value, 1, 0 ) . '> ' . $text . '</label>'; - - return $content . $label; -} -add_filter( 'admin_post_thumbnail_html', 'autonomie_featured_image_meta', 10, 2 ); - -/** - * Safe the Post Covers - * - * @param int $post_id The ID of the post being saved. - */ -function autonomie_save_post( $post_id ) { - // if this is an autosave, our form has not been submitted, so we don't want to do anything. - if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { - return $post_id; - } - - if ( ! array_key_exists( 'full_width_featured_image', $_POST ) ) { - return $post_id; - } - - if ( ! array_key_exists( 'post_type', $_POST ) ) { - return $post_id; - } - - // check the user's permissions. - if ( 'page' === $_POST['post_type'] ) { - if ( ! current_user_can( 'edit_page', $post_id ) ) { - return $post_id; - } - } else { - if ( ! current_user_can( 'edit_post', $post_id ) ) { - return $post_id; - } - } - - // sanitize user input. - $full_width_featured_image = sanitize_text_field( $_POST['full_width_featured_image'] ); - - // update the meta field in the database. - update_post_meta( $post_id, 'full_width_featured_image', $full_width_featured_image ); -} -add_action( 'save_post', 'autonomie_save_post', 5, 1 ); - -/** - * Return true if Auto-Set Featured Image as Post Cover is enabled and it hasn't - * been disabled for this post. - * - * Returns true if the current post has Full Width Featured Image enabled. - * - * Returns false if not a Single post type or there is no Featured Image selected - * or none of the above conditions are true. - */ -function autonomie_has_full_width_featured_image() { - // If this isn't a Single post type or we don't have a Featured Image set - if ( ! ( is_single() || is_page() ) || ! has_post_thumbnail() ) { - return false; - } - - $full_width_featured_image = get_post_meta( get_the_ID(), 'full_width_featured_image', true ); - - // If Use featured image as Post Cover has been checked in the Featured Image meta box, return true. - if ( '1' === $full_width_featured_image ) { - return true; - } - - return false; // Default -} - -/** - * Enqueue theme scripts - * - * @uses wp_enqueue_scripts() To enqueue scripts - * - * @since Autonomie 1.0.0 - */ -function autonomie_enqueue_featured_image_scripts() { - if ( is_singular() && autonomie_has_full_width_featured_image() ) { - $image = wp_get_attachment_image_src( get_post_thumbnail_id(), 'full' ); - - $css = '.entry-header { - background: linear-gradient(190deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.7)), url(' . $image[0] . ') no-repeat center center scroll; - }' . PHP_EOL; - - wp_add_inline_style( 'autonomie-style', $css ); - } -} -add_action( 'wp_enqueue_scripts', 'autonomie_enqueue_featured_image_scripts' ); - -/** - * Add full-width-featured-image to body class when displaying a post with Full Width Featured Image enabled - */ -function autonomie_full_width_featured_image_post_class( $classes ) { - if ( is_singular() && autonomie_has_full_width_featured_image() ) { - $classes[] = 'has-full-width-featured-image'; - } - return $classes; -} -add_filter( 'post_class', 'autonomie_full_width_featured_image_post_class' ); - -/** - * Register the `full_width_featured_image` meta - * - * @return void - */ -function autonomie_register_meta() { - register_meta( - 'post', - 'full_width_featured_image', - array( - 'show_in_rest' => true, - 'single' => true, - 'type' => 'boolean', - ) - ); -} -add_action( 'init', 'autonomie_register_meta' ); - -/** - * Enqueue the required block editor assets/JS files - * - * @return void - */ -function autonomie_enqueue_block_editor_assets() { - wp_enqueue_script( - 'autonomie-block-editor', - get_template_directory_uri() . '/assets/js/block-editor.js', - array( 'wp-editor', 'wp-i18n', 'wp-element', 'wp-compose', 'wp-components' ), - '1.0.0', - true - ); -} -add_action( 'enqueue_block_editor_assets', 'autonomie_enqueue_block_editor_assets', 9 ); diff --git a/includes/feed.php b/includes/feed.php index 8264572b..f02d1948 100644 --- a/includes/feed.php +++ b/includes/feed.php @@ -7,12 +7,52 @@ * @since Autonomie 1.0.0 */ +/** + * Get the current post format, defaulting to 'standard' + * + * @return string + */ +function autonomie_get_post_format() { + return get_post_format() ? : 'standard'; +} + +/** + * Get post format archive link, with support for "standard" format + * + * @param string $post_format The post format slug + * + * @return string|false The post format link or false + */ +function autonomie_get_post_format_link( $post_format ) { + if ( in_array( get_post_type(), array( 'page', 'attachment' ), true ) ) { + return get_permalink(); + } + + if ( 'standard' !== $post_format ) { + return get_post_format_link( $post_format ); + } + + global $wp_rewrite; + + $termlink = $wp_rewrite->get_extra_permastruct( 'post_format' ); + + if ( empty( $termlink ) ) { + $termlink = '?post_format=standard'; + $termlink = home_url( $termlink ); + } else { + $termlink = str_replace( '%post_format%', 'standard', $termlink ); + $termlink = home_url( user_trailingslashit( $termlink, 'category' ) ); + } + + return $termlink; +} + /** * Adds support for "standard" Post-Format * * @param string $post_format the post format slug * - * @return void + * @return string|false The post format archive feed link or false. */ function autonomie_get_post_format_archive_feed_link( $post_format, $feed = '' ) { $default_feed = get_default_feed(); @@ -90,6 +130,10 @@ function autonomie_extend_singular_feed_discovery( $args = array() ) { $post = get_post(); + if ( ! $post ) { + return; + } + $author_id = $post->post_author; $feeds[] = array( 'title' => sprintf( $args['authortitle'], get_bloginfo( 'name' ), $args['separator'], get_the_author_meta( 'display_name', $author_id ) ), diff --git a/includes/semantics.php b/includes/semantics.php index a9c3f343..9618fcd3 100644 --- a/includes/semantics.php +++ b/includes/semantics.php @@ -21,24 +21,23 @@ * @since Autonomie 1.0.0 */ function autonomie_body_classes( $classes ) { - $classes[] = get_theme_mod( 'autonomie_columns', 'multi' ) . '-column'; - if ( ! is_singular() && ! is_404() ) { $classes[] = 'hfeed'; $classes[] = 'h-feed'; $classes[] = 'feed'; } + if ( is_singular() ) { + $classes[] = 'h-entry'; + $classes[] = 'hentry'; + } + // Adds a class of single-author to blogs with only 1 published author if ( ! is_multi_author() ) { $classes[] = 'single-author'; } - if ( get_header_image() ) { - $classes[] = 'custom-header'; - } - - return $classes; + return array_values( array_unique( $classes ) ); } add_filter( 'body_class', 'autonomie_body_classes' ); @@ -64,7 +63,6 @@ function autonomie_post_classes( $classes ) { * @since Autonomie 1.4.0 */ function autonomie_comment_classes( $classes ) { - $classes[] = 'h-entry'; $classes[] = 'h-cite'; $classes[] = 'p-comment'; $classes[] = 'comment'; @@ -92,8 +90,14 @@ function autonomie_get_post_classes( $classes = array() ) { * @since Autonomie 1.0.0 */ function autonomie_author_link( $link ) { - // Adds a class for microformats v2 - return preg_replace( '/(class\s*=\s*[\"|\'])/i', '${1}u-url ', $link ); + $processor = new WP_HTML_Tag_Processor( $link ); + + if ( $processor->next_tag( array( 'tag_name' => 'a' ) ) ) { + $processor->add_class( 'u-url' ); + return $processor->get_updated_html(); + } + + return $link; } add_filter( 'get_comment_author_link', 'autonomie_author_link' ); @@ -113,16 +117,16 @@ function autonomie_pre_get_avatar_data( $args, $id_or_email ) { // Adds a class for microformats v2 $args['class'] = array_unique( array_merge( $args['class'], array( 'u-photo' ) ) ); - $args['extra_attr'] .= ' itemprop="image" loading="lazy"'; + $args['extra_attr'] = ( $args['extra_attr'] ?? '' ) . ' itemprop="image" loading="lazy"'; // Adds default alt attribute if ( empty( $args['alt'] ) ) { $username = get_the_author_meta( 'display_name', $id_or_email ); if ( $username ) { - $args['alt'] = sprintf( __( 'User Avatar of %s' ), $username ); + $args['alt'] = sprintf( __( 'User Avatar of %s', 'autonomie' ), $username ); } else { - $args['alt'] = __( 'User Avatar' ); + $args['alt'] = __( 'User Avatar', 'autonomie' ); } } @@ -138,7 +142,14 @@ function autonomie_pre_get_avatar_data( $args, $id_or_email ) { * @return string */ function autonomie_semantic_previous_image_link( $link ) { - return preg_replace( '/<a/i', '<a rel="prev"', $link ); + $processor = new WP_HTML_Tag_Processor( $link ); + + if ( $processor->next_tag( array( 'tag_name' => 'a' ) ) ) { + autonomie_tag_processor_merge_space_attr( $processor, 'rel', array( 'prev' ) ); + return $processor->get_updated_html(); + } + + return $link; } add_filter( 'previous_image_link', 'autonomie_semantic_previous_image_link' ); @@ -150,7 +161,14 @@ function autonomie_semantic_previous_image_link( $link ) { * @return string */ function autonomie_semantic_next_image_link( $link ) { - return preg_replace( '/<a/i', '<a rel="next"', $link ); + $processor = new WP_HTML_Tag_Processor( $link ); + + if ( $processor->next_tag( array( 'tag_name' => 'a' ) ) ) { + autonomie_tag_processor_merge_space_attr( $processor, 'rel', array( 'next' ) ); + return $processor->get_updated_html(); + } + + return $link; } add_filter( 'next_image_link', 'autonomie_semantic_next_image_link' ); @@ -182,13 +200,61 @@ function autonomie_previous_posts_link_attributes( $attr ) { * * */ -function autonomie_get_search_form( $form ) { - $form = preg_replace( '/<form/i', '<search><form itemprop="potentialAction" itemscope itemtype="https://schema.org/SearchAction"', $form ); - $form = preg_replace( '/<\/form>/i', '<meta itemprop="target" content="' . home_url( '/?s={s} ' ) . '"/></form></search>', $form ); - $form = preg_replace( '/<input type="search"/i', '<input type="search" enterkeyhint="search" itemprop="query-input"', $form ); +function autonomie_add_search_form_semantics( $form ) { + $processor = new WP_HTML_Tag_Processor( $form ); + $form_found = false; + + if ( $processor->next_tag( array( 'tag_name' => 'form' ) ) ) { + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'potentialAction' ) ); + $processor->set_attribute( 'itemscope', '' ); + $processor->set_attribute( 'itemtype', 'https://schema.org/SearchAction' ); + $form_found = true; + } + + while ( $processor->next_tag( array( 'tag_name' => 'input' ) ) ) { + $type = $processor->get_attribute( 'type' ); + + if ( is_string( $type ) && 'search' === strtolower( $type ) ) { + $processor->set_attribute( 'enterkeyhint', 'search' ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'query' ) ); + break; + } + } + + $form = $processor->get_updated_html(); + + if ( ! $form_found ) { + return $form; + } + + $search_action_target = esc_url( home_url( '/?s={query}' ) ); + $open_form_pos = stripos( $form, '<form' ); + + if ( false !== $open_form_pos ) { + $form = substr_replace( $form, '<search>', $open_form_pos, 0 ); + } + + $close_form_pos = stripos( $form, '</form>' ); + + if ( false !== $close_form_pos ) { + $form = substr_replace( + $form, + '<meta itemprop="target" content="' . $search_action_target . '"/></form></search>', + $close_form_pos, + strlen( '</form>' ) + ); + } return $form; } + +/** + * + * + */ +function autonomie_get_search_form( $form ) { + return autonomie_add_search_form_semantics( $form ); +} add_filter( 'get_search_form', 'autonomie_get_search_form' ); /** @@ -213,7 +279,7 @@ function autonomie_get_semantics( $id = null ) { } elseif ( is_single() ) { $classes['itemscope'] = array( '' ); $classes['itemtype'] = array( 'https://schema.org/BlogPosting' ); - $classes['itemref'] = array( 'site-publisher' ); + $classes['itemref'] = array( 'site-branding-publisher' ); } elseif ( is_page() ) { $classes['itemscope'] = array( '' ); $classes['itemtype'] = array( 'https://schema.org/WebPage' ); @@ -226,6 +292,11 @@ function autonomie_get_semantics( $id = null ) { break; case 'main': + if ( is_single() ) { + $classes['itemprop'] = array( 'mainEntity' ); + } elseif ( is_page() ) { + $classes['itemprop'] = array( 'mainContentOfPage' ); + } break; case 'site-title': if ( is_home() ) { @@ -256,7 +327,7 @@ function autonomie_get_semantics( $id = null ) { $classes['itemprop'] = array( 'blogPost' ); $classes['itemscope'] = array( '' ); $classes['itemtype'] = array( 'https://schema.org/BlogPosting' ); - $classes['itemref'] = array( 'site-publisher' ); + $classes['itemref'] = array( 'site-branding-publisher' ); $classes['itemid'] = array( get_permalink() ); } break; @@ -318,6 +389,10 @@ function autonomie_semantics( $id ) { function autonomie_term_links_tag( $links ) { $post = get_post(); + if ( ! $post ) { + return $links; + } + $terms = get_the_terms( $post->ID, 'post_tag' ); if ( is_wp_error( $terms ) ) { @@ -335,8 +410,671 @@ function autonomie_term_links_tag( $links ) { if ( is_wp_error( $link ) ) { return $link; } - $links[] = '<a class="p-category" href="' . esc_url( $link ) . '" rel="tag">' . $term->name . '</a>'; + $links[] = '<a class="p-category" href="' . esc_url( $link ) . '" rel="tag">' . esc_html( $term->name ) . '</a>'; } return $links; } add_filter( 'term_links-post_tag', 'autonomie_term_links_tag' ); + +/** + * Add microformats2 and schema.org classes to blocks for FSE theme. + * + * @since Autonomie 2.0.0 + */ + +/** + * Add one or more classes to the current tag in a tag processor. + * + * @param WP_HTML_Tag_Processor $processor Tag processor instance. + * @param array $classes Classes to add. + */ +function autonomie_tag_processor_add_classes( $processor, $classes ) { + $current_classes = $processor->get_attribute( 'class' ); + $merged_classes = array(); + + if ( is_string( $current_classes ) && '' !== trim( $current_classes ) ) { + $merged_classes = preg_split( '/\s+/', trim( $current_classes ) ); + } + + foreach ( $classes as $class ) { + $class = trim( $class ); + + if ( '' !== $class && ! in_array( $class, $merged_classes, true ) ) { + $merged_classes[] = $class; + } + } + + if ( ! empty( $merged_classes ) ) { + $processor->set_attribute( 'class', implode( ' ', $merged_classes ) ); + } +} + +/** + * Merge values into a space-separated attribute on the current tag. + * + * @param WP_HTML_Tag_Processor $processor Tag processor instance. + * @param string $attribute Attribute name. + * @param array $new_values Values to merge. + */ +function autonomie_tag_processor_merge_space_attr( $processor, $attribute, $new_values ) { + $current = $processor->get_attribute( $attribute ); + $values = array(); + + if ( is_string( $current ) && '' !== trim( $current ) ) { + $values = preg_split( '/\s+/', trim( $current ) ); + } + + foreach ( $new_values as $value ) { + $value = trim( $value ); + + if ( '' !== $value && ! in_array( $value, $values, true ) ) { + $values[] = $value; + } + } + + if ( ! empty( $values ) ) { + $processor->set_attribute( $attribute, implode( ' ', $values ) ); + } +} + +/** + * Remove one or more classes from the current tag in a tag processor. + * + * @param WP_HTML_Tag_Processor $processor Tag processor instance. + * @param array $classes Classes to remove. + */ +function autonomie_tag_processor_remove_classes( $processor, $classes ) { + $current_classes = $processor->get_attribute( 'class' ); + + if ( ! is_string( $current_classes ) || '' === trim( $current_classes ) ) { + return; + } + + $remove_classes = array_filter( array_map( 'trim', $classes ) ); + $merged_classes = preg_split( '/\s+/', trim( $current_classes ) ); + + if ( empty( $remove_classes ) || empty( $merged_classes ) ) { + return; + } + + $merged_classes = array_values( + array_filter( + $merged_classes, + function( $class ) use ( $remove_classes ) { + return ! in_array( $class, $remove_classes, true ); + } + ) + ); + + if ( empty( $merged_classes ) ) { + $processor->remove_attribute( 'class' ); + return; + } + + $processor->set_attribute( 'class', implode( ' ', $merged_classes ) ); +} + +/** + * Add schema.org attributes to post template items on non-singular views. + */ +function autonomie_render_block_post_template( $block_content, $block ) { + if ( is_singular() ) { + return $block_content; + } + + $processor = new WP_HTML_Tag_Processor( $block_content ); + + while ( $processor->next_tag( array( 'class_name' => 'wp-block-post' ) ) ) { + autonomie_tag_processor_add_classes( $processor, array( 'h-entry', 'hentry' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'blogPost' ) ); + $processor->set_attribute( 'itemscope', '' ); + $processor->set_attribute( 'itemtype', 'https://schema.org/BlogPosting' ); + $processor->set_attribute( 'itemref', 'site-branding-publisher' ); + + $classes = $processor->get_attribute( 'class' ); + + if ( is_string( $classes ) && preg_match( '/\bpost-(\d+)\b/', $classes, $matches ) ) { + $permalink = get_permalink( (int) $matches[1] ); + + if ( is_string( $permalink ) && '' !== $permalink ) { + $processor->set_attribute( 'itemid', $permalink ); + } + } + } + + return $processor->get_updated_html(); +} +add_filter( 'render_block_core/post-template', 'autonomie_render_block_post_template', 10, 2 ); + +/** + * Ensure singular article group wrappers do not duplicate h-entry classes. + */ +function autonomie_render_block_group( $block_content, $block ) { + if ( ! is_singular() ) { + return $block_content; + } + + if ( empty( $block['attrs']['tagName'] ) || 'article' !== strtolower( $block['attrs']['tagName'] ) ) { + return $block_content; + } + + $processor = new WP_HTML_Tag_Processor( $block_content ); + + if ( $processor->next_tag() ) { + autonomie_tag_processor_remove_classes( $processor, array( 'h-entry', 'hentry' ) ); + } + + return $processor->get_updated_html(); +} +add_filter( 'render_block_core/group', 'autonomie_render_block_group', 10, 2 ); + +/** + * Add page-level schema.org semantics to the main container. + */ +function autonomie_render_block_main_group_semantics( $block_content, $block ) { + + if ( empty( $block['attrs']['tagName'] ) || 'main' !== strtolower( $block['attrs']['tagName'] ) ) { + return $block_content; + } + + $body_semantics = autonomie_get_semantics( 'body' ); + + if ( empty( $body_semantics ) ) { + return $block_content; + } + + $processor = new WP_HTML_Tag_Processor( $block_content ); + + if ( ! $processor->next_tag() ) { + return $block_content; + } + + if ( ! empty( $body_semantics['itemscope'] ) ) { + $processor->set_attribute( 'itemscope', '' ); + } + + if ( ! empty( $body_semantics['itemtype'] ) ) { + $processor->set_attribute( 'itemtype', implode( ' ', $body_semantics['itemtype'] ) ); + } + + if ( ! empty( $body_semantics['itemid'] ) ) { + $processor->set_attribute( 'itemid', $body_semantics['itemid'][0] ); + } + + if ( ! empty( $body_semantics['itemref'] ) ) { + $processor->set_attribute( 'itemref', implode( ' ', $body_semantics['itemref'] ) ); + } else { + $processor->set_attribute( 'itemref', 'site-branding-publisher' ); + } + + $main_semantics = autonomie_get_semantics( 'main' ); + + if ( ! empty( $main_semantics['itemprop'] ) ) { + $processor->set_attribute( 'itemprop', implode( ' ', $main_semantics['itemprop'] ) ); + } + + return $processor->get_updated_html(); +} +add_filter( 'render_block_core/group', 'autonomie_render_block_main_group_semantics', 11, 2 ); + +/** + * Re-use the existing header branding (logo + site title) as Blog publisher. + */ +function autonomie_render_block_group_site_branding_publisher( $block_content, $block ) { + + if ( empty( $block['attrs']['className'] ) || ! is_string( $block['attrs']['className'] ) ) { + return $block_content; + } + + $class_name = ' ' . $block['attrs']['className'] . ' '; + + if ( false === strpos( $class_name, ' site-branding ' ) ) { + return $block_content; + } + + $processor = new WP_HTML_Tag_Processor( $block_content ); + + if ( ! $processor->next_tag() ) { + return $block_content; + } + + $processor->set_attribute( 'id', 'site-branding-publisher' ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'publisher' ) ); + $processor->set_attribute( 'itemscope', '' ); + $processor->set_attribute( 'itemtype', 'https://schema.org/Organization' ); + + return $processor->get_updated_html(); +} +add_filter( 'render_block_core/group', 'autonomie_render_block_group_site_branding_publisher', 12, 2 ); + +/** + * Add microformats2 classes to post title block. + */ +function autonomie_render_block_post_title( $block_content, $block ) { + + $processor = new WP_HTML_Tag_Processor( $block_content ); + $title_updated = false; + $link_updated = false; + + while ( $processor->next_tag() ) { + if ( ! $title_updated && $processor->has_class( 'wp-block-post-title' ) ) { + autonomie_tag_processor_add_classes( $processor, array( 'p-name', 'entry-title' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'name', 'headline' ) ); + $title_updated = true; + } + + if ( ! $link_updated && 'A' === $processor->get_tag() ) { + autonomie_tag_processor_add_classes( $processor, array( 'u-url', 'url' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'url' ) ); + $link_updated = true; + } + + if ( $title_updated && $link_updated ) { + break; + } + } + + return $processor->get_updated_html(); +} +add_filter( 'render_block_core/post-title', 'autonomie_render_block_post_title', 10, 2 ); + +/** + * Add microformats2 classes to post content block. + */ +function autonomie_render_block_post_content( $block_content, $block ) { + + $processor = new WP_HTML_Tag_Processor( $block_content ); + + if ( $processor->next_tag( array( 'class_name' => 'wp-block-post-content' ) ) ) { + autonomie_tag_processor_add_classes( $processor, array( 'e-content', 'entry-content' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'articleBody' ) ); + } + + return $processor->get_updated_html(); +} +add_filter( 'render_block_core/post-content', 'autonomie_render_block_post_content', 10, 2 ); + +/** + * Add microformats2 classes to post excerpt block. + */ +function autonomie_render_block_post_excerpt( $block_content, $block ) { + + $processor = new WP_HTML_Tag_Processor( $block_content ); + + if ( $processor->next_tag( array( 'class_name' => 'wp-block-post-excerpt' ) ) ) { + autonomie_tag_processor_add_classes( $processor, array( 'p-summary', 'entry-summary' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'description' ) ); + } + + return $processor->get_updated_html(); +} +add_filter( 'render_block_core/post-excerpt', 'autonomie_render_block_post_excerpt', 10, 2 ); + +/** + * Add microformats2 classes to post date block. + */ +function autonomie_render_block_post_date( $block_content, $block ) { + + $processor = new WP_HTML_Tag_Processor( $block_content ); + + if ( $processor->next_tag( array( 'tag_name' => 'time' ) ) ) { + autonomie_tag_processor_add_classes( $processor, array( 'dt-published', 'published', 'entry-date' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'datePublished' ) ); + } + + return $processor->get_updated_html(); +} +add_filter( 'render_block_core/post-date', 'autonomie_render_block_post_date', 10, 2 ); + +/** + * Add microformats2 classes to post author block. + */ +function autonomie_render_block_post_author( $block_content, $block ) { + + $processor = new WP_HTML_Tag_Processor( $block_content ); + $author_name_found = false; + + if ( $processor->next_tag( array( 'class_name' => 'wp-block-post-author' ) ) ) { + autonomie_tag_processor_add_classes( $processor, array( 'h-card', 'p-author', 'author', 'vcard' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'author' ) ); + $processor->set_attribute( 'itemscope', '' ); + $processor->set_attribute( 'itemtype', 'https://schema.org/Person' ); + } + + if ( $processor->next_tag( array( 'class_name' => 'wp-block-post-author__name' ) ) ) { + autonomie_tag_processor_add_classes( $processor, array( 'p-name', 'fn' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'name' ) ); + $author_name_found = true; + } + + if ( $author_name_found && $processor->next_tag( array( 'tag_name' => 'a' ) ) ) { + autonomie_tag_processor_add_classes( $processor, array( 'u-url', 'url' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'url' ) ); + } + + return $processor->get_updated_html(); +} +add_filter( 'render_block_core/post-author', 'autonomie_render_block_post_author', 10, 2 ); + +/** + * Add microformats2 classes to post featured image block. + */ +function autonomie_render_block_post_featured_image( $block_content, $block ) { + + // Check post format to determine which microformat class to use + $post_format = get_post_format(); + + if ( 'image' === $post_format || 'gallery' === $post_format ) { + $mf_class = 'u-photo'; + } else { + $mf_class = 'u-featured'; + } + + $processor = new WP_HTML_Tag_Processor( $block_content ); + + // Add microformat class to figure. + if ( $processor->next_tag( array( 'class_name' => 'wp-block-post-featured-image' ) ) ) { + autonomie_tag_processor_add_classes( $processor, array( $mf_class ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'image' ) ); + $processor->set_attribute( 'itemscope', '' ); + $processor->set_attribute( 'itemtype', 'https://schema.org/ImageObject' ); + } + + // Add itemprop to img. + if ( $processor->next_tag( array( 'tag_name' => 'img' ) ) ) { + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'url', 'contentUrl' ) ); + } + + return $processor->get_updated_html(); +} +add_filter( 'render_block_core/post-featured-image', 'autonomie_render_block_post_featured_image', 10, 2 ); + +/** + * Add microformats2 classes to post terms (categories/tags) block. + */ +function autonomie_render_block_post_terms( $block_content, $block ) { + + $processor = new WP_HTML_Tag_Processor( $block_content ); + + // Add p-category class to each term link. + while ( $processor->next_tag( array( 'tag_name' => 'a' ) ) ) { + $rel = $processor->get_attribute( 'rel' ); + + if ( is_string( $rel ) && preg_match( '/\btag\b/i', $rel ) ) { + $processor->add_class( 'p-category' ); + } + } + + return $processor->get_updated_html(); +} +add_filter( 'render_block_core/post-terms', 'autonomie_render_block_post_terms', 10, 2 ); + +/** + * Add microformats2 classes to site title block. + */ +function autonomie_render_block_site_title( $block_content, $block ) { + + $processor = new WP_HTML_Tag_Processor( $block_content ); + + if ( ! is_singular() ) { + if ( $processor->next_tag( array( 'class_name' => 'wp-block-site-title' ) ) ) { + autonomie_tag_processor_add_classes( $processor, array( 'p-name' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'name' ) ); + } + } + + if ( ! is_singular() ) { + if ( $processor->next_tag( array( 'tag_name' => 'a' ) ) ) { + autonomie_tag_processor_add_classes( $processor, array( 'u-url', 'url' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'url' ) ); + } + } + + return $processor->get_updated_html(); +} +add_filter( 'render_block_core/site-title', 'autonomie_render_block_site_title', 10, 2 ); + +/** + * Add schema properties to the existing site logo for publisher semantics. + */ +function autonomie_render_block_site_logo( $block_content, $block ) { + + $processor = new WP_HTML_Tag_Processor( $block_content ); + + if ( $processor->next_tag( array( 'class_name' => 'wp-block-site-logo' ) ) ) { + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'logo' ) ); + $processor->set_attribute( 'itemscope', '' ); + $processor->set_attribute( 'itemtype', 'https://schema.org/ImageObject' ); + } + + if ( $processor->next_tag( array( 'tag_name' => 'a' ) ) ) { + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'url' ) ); + } + + if ( $processor->next_tag( array( 'tag_name' => 'img' ) ) ) { + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'contentUrl' ) ); + } + + $updated_content = $processor->get_updated_html(); + $logo_id = 0; + + if ( ! empty( $block['attrs']['id'] ) ) { + $logo_id = (int) $block['attrs']['id']; + } + + if ( ! $logo_id ) { + $logo_id = (int) get_theme_mod( 'custom_logo' ); + } + + $logo_url = ''; + + if ( $logo_id ) { + $logo_url = wp_get_attachment_image_url( $logo_id, 'full' ); + } + + if ( is_string( $logo_url ) && '' !== $logo_url ) { + $logo_url_escaped = esc_url( $logo_url ); + $meta_markup = '<meta itemprop="url" content="' . $logo_url_escaped . '" /><meta itemprop="contentUrl" content="' . $logo_url_escaped . '" />'; + $updated = preg_replace( + '/(<[^>]*\bclass=(["\'])[^"\']*\bwp-block-site-logo\b[^"\']*\2[^>]*>)/i', + '$1' . $meta_markup, + $updated_content, + 1 + ); + + if ( is_string( $updated ) ) { + $updated_content = $updated; + } + } + + return $updated_content; +} +add_filter( 'render_block_core/site-logo', 'autonomie_render_block_site_logo', 10, 2 ); + +/** + * Add semantics to query title block. + */ +function autonomie_render_block_query_title( $block_content, $block ) { + + if ( ! is_singular() && ! is_home() ) { + $processor = new WP_HTML_Tag_Processor( $block_content ); + + if ( $processor->next_tag( array( 'class_name' => 'wp-block-query-title' ) ) ) { + autonomie_tag_processor_add_classes( $processor, array( 'p-name' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'name' ) ); + } + + return $processor->get_updated_html(); + } + + return $block_content; +} +add_filter( 'render_block_core/query-title', 'autonomie_render_block_query_title', 10, 2 ); + +/** + * Add semantics to term description block. + */ +function autonomie_render_block_term_description( $block_content, $block ) { + + if ( ! is_singular() ) { + $processor = new WP_HTML_Tag_Processor( $block_content ); + + if ( $processor->next_tag( array( 'class_name' => 'wp-block-term-description' ) ) ) { + autonomie_tag_processor_add_classes( $processor, array( 'p-summary', 'e-content' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'description' ) ); + } + + return $processor->get_updated_html(); + } + + return $block_content; +} +add_filter( 'render_block_core/term-description', 'autonomie_render_block_term_description', 10, 2 ); + +/** + * Add microformats2 classes to comment blocks. + */ +function autonomie_render_block_comment_template( $block_content, $block ) { + + $processor = new WP_HTML_Tag_Processor( $block_content ); + $classes = array( 'h-cite', 'p-comment' ); + + // Add semantic classes to comment bodies and author wrappers. + while ( $processor->next_tag() ) { + // Avoid nesting comment microformats on wrapper list items. + if ( 'LI' === $processor->get_tag() && $processor->has_class( 'comment' ) ) { + autonomie_tag_processor_remove_classes( $processor, $classes ); + } + + if ( $processor->has_class( 'comment-body' ) || $processor->has_class( 'wp-block-columns' ) ) { + autonomie_tag_processor_add_classes( $processor, $classes ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'comment' ) ); + $processor->set_attribute( 'itemscope', '' ); + $processor->set_attribute( 'itemtype', 'https://schema.org/Comment' ); + } + + if ( $processor->has_class( 'comment-author' ) ) { + autonomie_tag_processor_add_classes( $processor, array( 'p-author', 'author', 'vcard', 'hcard', 'h-card' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'creator' ) ); + $processor->set_attribute( 'itemscope', '' ); + $processor->set_attribute( 'itemtype', 'https://schema.org/Person' ); + } + + if ( $processor->has_class( 'fn' ) ) { + autonomie_tag_processor_add_classes( $processor, array( 'p-name' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'name' ) ); + } + + if ( 'A' === $processor->get_tag() && $processor->has_class( 'url' ) ) { + autonomie_tag_processor_add_classes( $processor, array( 'u-url' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'url' ) ); + } + } + + return $processor->get_updated_html(); +} +add_filter( 'render_block_core/comment-template', 'autonomie_render_block_comment_template', 10, 2 ); + +/** + * Add semantics to the comment author name block. + */ +function autonomie_render_block_comment_author_name( $block_content, $block ) { + + $processor = new WP_HTML_Tag_Processor( $block_content ); + + if ( $processor->next_tag( array( 'class_name' => 'wp-block-comment-author-name' ) ) ) { + autonomie_tag_processor_add_classes( $processor, array( 'fn', 'p-name' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'name' ) ); + } + + if ( $processor->next_tag( array( 'tag_name' => 'a' ) ) ) { + autonomie_tag_processor_add_classes( $processor, array( 'u-url', 'url' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'url' ) ); + } + + return $processor->get_updated_html(); +} +add_filter( 'render_block_core/comment-author-name', 'autonomie_render_block_comment_author_name', 10, 2 ); + +/** + * Add semantics to the comment date block. + */ +function autonomie_render_block_comment_date( $block_content, $block ) { + + $processor = new WP_HTML_Tag_Processor( $block_content ); + + if ( $processor->next_tag( array( 'tag_name' => 'time' ) ) ) { + autonomie_tag_processor_add_classes( $processor, array( 'updated', 'published', 'dt-updated', 'dt-published' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'dateCreated' ) ); + } + + return $processor->get_updated_html(); +} +add_filter( 'render_block_core/comment-date', 'autonomie_render_block_comment_date', 10, 2 ); + +/** + * Add semantics to the comment content block. + */ +function autonomie_render_block_comment_content( $block_content, $block ) { + + $processor = new WP_HTML_Tag_Processor( $block_content ); + + if ( $processor->next_tag( array( 'class_name' => 'wp-block-comment-content' ) ) ) { + autonomie_tag_processor_add_classes( $processor, array( 'e-content', 'p-summary', 'p-name' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'text', 'name', 'description' ) ); + } + + return $processor->get_updated_html(); +} +add_filter( 'render_block_core/comment-content', 'autonomie_render_block_comment_content', 10, 2 ); + +/** + * Add author h-card classes to rendered post comments markup. + */ +function autonomie_render_block_post_comments( $block_content, $block ) { + + $processor = new WP_HTML_Tag_Processor( $block_content ); + + while ( $processor->next_tag() ) { + // Avoid nested comment parsing: keep h-cite/p-comment off wrapper <li> nodes. + if ( 'LI' === $processor->get_tag() && $processor->has_class( 'comment' ) ) { + autonomie_tag_processor_remove_classes( $processor, array( 'h-cite', 'p-comment' ) ); + } + + // Attach comment microformats to the actual comment body element. + if ( $processor->has_class( 'comment-body' ) ) { + autonomie_tag_processor_add_classes( $processor, array( 'h-cite', 'p-comment' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'comment' ) ); + $processor->set_attribute( 'itemscope', '' ); + $processor->set_attribute( 'itemtype', 'https://schema.org/Comment' ); + } + + if ( $processor->has_class( 'comment-author' ) ) { + autonomie_tag_processor_add_classes( $processor, array( 'p-author', 'author', 'vcard', 'hcard', 'h-card' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'creator' ) ); + $processor->set_attribute( 'itemscope', '' ); + $processor->set_attribute( 'itemtype', 'https://schema.org/Person' ); + } + + if ( $processor->has_class( 'fn' ) ) { + autonomie_tag_processor_add_classes( $processor, array( 'p-name' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'name' ) ); + } + + if ( 'A' === $processor->get_tag() && $processor->has_class( 'url' ) ) { + autonomie_tag_processor_add_classes( $processor, array( 'u-url' ) ); + autonomie_tag_processor_merge_space_attr( $processor, 'itemprop', array( 'url' ) ); + } + } + + return $processor->get_updated_html(); +} +add_filter( 'render_block_core/post-comments', 'autonomie_render_block_post_comments', 10, 2 ); + +/** + * Add semantic HTML5 search element to search block. + */ +function autonomie_render_block_search( $block_content, $block ) { + return autonomie_add_search_form_semantics( $block_content ); +} +add_filter( 'render_block_core/search', 'autonomie_render_block_search', 10, 2 ); diff --git a/includes/template-functions.php b/includes/template-functions.php deleted file mode 100644 index 3ab4a9fd..00000000 --- a/includes/template-functions.php +++ /dev/null @@ -1,337 +0,0 @@ -<?php -if ( ! function_exists( 'autonomie_content_nav' ) ) : - /** - * Display navigation to next/previous pages when applicable. - * - * @since Autonomie 1.0.0 - */ - function autonomie_content_nav( $nav_id ) { - global $wp_query; - ?> - <?php if ( is_home() || is_archive() || is_search() ) : // navigation links for home, archive, and search pages ?> - <nav id="archive-nav"> - <div class="assistive-text"><?php _e( 'Post navigation', 'autonomie' ); ?></div> - <?php echo paginate_links(); ?> - </nav><!-- #<?php echo $nav_id; ?> --> - <?php endif; ?> - <?php - } -endif; // autonomie_content_nav - -if ( ! function_exists( 'autonomie_posted_by' ) ) : - /** - * Prints HTML with meta information for the current author. - * Create your own autonomie_posted_by to override in a child theme. - * - * @since Autonomie 1.0.0 - */ - function autonomie_posted_by() { - printf( - '<address class="byline"> - <span class="author p-author vcard hcard h-card" itemprop="author" itemscope itemtype="https://schema.org/Person"> - %1$s - <a class="url uid u-url u-uid fn p-name" href="%2$s" title="%3$s" rel="author"> - <span itemprop="name">%4$s</span> - </a> - <link itemprop="url" href="%2$s" /> - </span> - </address>', - get_avatar( get_the_author_meta( 'ID' ), 40), - esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ), - // translators: - esc_attr( sprintf( __( 'View all posts by %s', 'autonomie' ), get_the_author() ) ), - esc_html( get_the_author() ) - ); - } -endif; - -if ( ! function_exists( 'autonomie_posted_on' ) ) : - /** - * Prints HTML with meta information for the current post-date/time. - * Create your own autonomie_posted_on to override in a child theme. - * - * @since Autonomie 1.0.0 - */ - function autonomie_posted_on( $type = 'published' ) { - global $query; - - if ( ! in_array( $type, array( 'published', 'updated' ) ) ) { - $type = 'published'; - } - - if ( get_query_var( 'is_now', false ) ) { - $type = 'updated'; - } - - if ( 'updated' === $type ) { - // updated - $time = get_the_modified_time(); - $date_c = get_the_modified_date( 'c' ); - $date = get_the_modified_date(); - $item_prop = 'dateModified'; - } else { - // published - $time = get_the_time(); - $date_c = get_the_date( 'c' ); - $date = get_the_date(); - $item_prop = 'datePublished'; - } - - // translators: the author byline - printf( - // translators: - '<a href="%1$s" title="%2$s" rel="bookmark" class="url u-url" itemprop="mainEntityOfPage"><time class="entry-date %5$s dt-%5$s" datetime="%3$s" itemprop="%6$s">%4$s</time></a>', - esc_url( get_permalink() ), - esc_attr( $time ), - esc_attr( $date_c ), - esc_html( $date ), - esc_html( $type ), - esc_html( $item_prop ), - ); - } -endif; - -/** - * Display the id for the post div. - * - * @param string $id - */ -function autonomie_post_id( $post_id = null ) { - if ( $post_id ) { - echo 'id="' . $post_id . '"'; - } else { - echo 'id="' . autonomie_get_post_id() . '"'; - } -} - -/** - * Retrieve the id for the post div. - * - * @return string The post-id. - */ -function autonomie_get_post_id() { - $post_id = 'post-' . get_the_ID(); - - return apply_filters( 'autonomie_post_id', $post_id, get_the_ID() ); -} - -function autonomie_main_class( $class = '' ) { - // Separates class names with a single space, collates class names for body element - echo 'class="' . join( ' ', autonomie_get_main_class( $class ) ) . '"'; -} - -function autonomie_get_main_class( $class = '' ) { - $classes = array(); - - if ( is_singular() ) { - $classes = autonomie_get_post_classes( $classes ); - } - - if ( ! empty( $class ) ) { - if ( ! is_array( $class ) ) { - $class = preg_split( '#\s+#', $class ); - } - $classes = array_merge( $classes, $class ); - } else { - // Ensure that we always coerce class to being an array. - $class = array(); - } - - $classes = array_map( 'esc_attr', $classes ); - - /** - * Filters the list of CSS main class names for the current post or page. - * - * @since 2.8.0 - * - * @param string[] $classes An array of main class names. - * @param string[] $class An array of additional class names added to the main. - */ - $classes = apply_filters( 'autonomie_main_class', $classes, $class ); - - return array_unique( $classes ); -} - -function autonomie_get_the_archive_title() { - if ( is_archive() ) { - return get_the_archive_title(); - } elseif ( is_search() ) { - // translators: The title of the search results page - return sprintf( __( 'Search Results for: %s', 'autonomie' ), '<span>' . get_search_query() . '</span>' ); - } -} - -/** - * Check if page banner is enabled. - * - * @return boolean - */ -function autonomie_show_page_banner() { - if ( is_home() && ! display_header_text() ) { - return false; - } - - if ( is_home() || is_archive() || is_search() ) { - return true; - } - - return false; -} - -/** - * Adds support for standard post-format - * - * @return void - */ -function autonomie_get_post_format() { - return get_post_format() ? : 'standard'; -} - -/** - * Add support for Attachment and Article. - * - * @return void - */ -function autonomie_get_post_format_string() { - if ( 'attachment' === get_post_type() ) { - return __( 'Attachment', 'autonomie' ); - } elseif ( 'page' === get_post_type() ) { - return __( 'Page', 'autonomie' ); - } elseif ( get_post_format() ) { - return get_post_format(); - } else { - return __( 'Text', 'autonomie' ); - } -} - -/** - * Adds support for "standard" post-format archive links. - * - * @param string $post_format - * - * @return void - */ -function autonomie_get_post_format_link( $post_format ) { - if ( in_array( get_post_type(), array( 'page', 'attachment' ), true ) ) { - return get_permalink(); - } - - if ( 'standard' !== $post_format ) { - return get_post_format_link( $post_format ); - } - - global $wp_rewrite; - - $termlink = $wp_rewrite->get_extra_permastruct( 'post_format' ); - - if ( empty( $termlink ) ) { - $termlink = '?post_format=standard'; - $termlink = home_url( $termlink ); - } else { - $termlink = str_replace( '%post_format%', 'standard', $termlink ); - $termlink = home_url( user_trailingslashit( $termlink, 'category' ) ); - } - - return $termlink; -} - -/** - * Check archive type. - * - * @return string - */ -function autonomie_get_archive_type() { - $type = null; - - if ( is_author() ) { - $type = 'author'; - } - - return apply_filters( 'autonomie_archive_type', $type ); -} - -/** - * Returns Meta-Data like "number of posts" and "subscribe buttons" for the Author. - * - * @return string - */ -function autonomie_get_archive_author_meta() { - $meta = array(); - - // translators: list of followers - $meta[] = sprintf( __( '%s Followers', 'autonomie' ), apply_filters( 'autonomie_archive_author_followers', 0, get_the_author_meta( 'ID' ) ) ); - // translators: a post counter - $meta[] = sprintf( __( '%s Posts', 'autonomie' ), count_user_posts( get_the_author_meta( 'ID' ) ) ); - $meta[] = sprintf( '<indie-action do="follow" with="%1$s"><a rel="alternate" class="feed u-feed openwebicons-feed" href="%1$s">%2$s</a></indie-action>', get_author_feed_link( get_the_author_meta( 'ID' ) ), __( 'Subscribe', 'autonomie' ) ); - - $meta = apply_filters( 'autonomie_archive_author_meta', $meta, get_the_author_meta( 'ID' ) ); - - return implode( ' | ', $meta ); -} - -/** - * Returns the page description - * - * @return string The page description - */ -function autonomie_get_the_archive_description() { - if ( is_home() ) { - return get_bloginfo( 'description' ); - } elseif ( is_author() ) { - return get_the_author_meta( 'description' ); - } elseif ( is_archive() ) { - return get_the_archive_description(); - } elseif ( is_search() ) { - // @see https://github.com/raamdev/independent-publisher/blob/513e7ff71312f585f13eb1460b4d9bc74d0b59bd/inc/template-tags.php#L674 - global $wp_query; - $total = $wp_query->found_posts; - // translators: Description for search results - $stats_text = sprintf( _n( 'Found %1$s search result for <strong>%2$s</strong>.', 'Found %1$s search results for <strong>%2$s</strong>.', $total, 'autonomie' ), number_format_i18n( $total ), get_search_query() ); - - return wpautop( $stats_text ); - } -} - -/** - * Estimated reading time - */ -function autonomie_reading_time() { - $content = get_post_field( 'post_content' ); - $word_count = str_word_count( strip_tags( $content ) ); - $readingtime = ceil( $word_count / 200 ); - - printf( - _n( - '<span class="entry-duration"><time datetime="PT%1$sM" class="dt-duration" itemprop="timeRequired">%1$s minute</time> to read</span>', - '<span class="entry-duration"><time datetime="PT%1$sM" class="dt-duration" itemprop="timeRequired">%1$s minutes</time> to read</span>', - $readingtime, - 'autonomie' - ), - number_format_i18n( $readingtime ) - ); -} - -/** - * Add possibility to use `the_excerpt` instead of `the_content` for longer posts - * - * @return void - */ -function autonomie_the_content() { - if ( is_search() ) { - the_excerpt(); - return; - } - - if ( is_singular() ) { - the_content( __( 'Continue reading <span class="meta-nav">→</span>', 'autonomie' ) ); - return; - } - - $count = str_word_count( strip_tags( get_the_content() ) ); - - if ( AUTONOMIE_EXCERPT && ( false === get_post_format() || $count > AUTONOMIE_EXCERPT_COUNT ) ) { - the_excerpt(); - } else { - the_content( __( 'Continue reading <span class="meta-nav">→</span>', 'autonomie' ) ); - } -} diff --git a/includes/webactions.php b/includes/webactions.php index 4552ee40..ea601337 100644 --- a/includes/webactions.php +++ b/includes/webactions.php @@ -10,18 +10,24 @@ * @return string the new reply link */ function autonomie_webaction_comment_reply_link( $link, $args, $comment, $post ) { + if ( ! $post ) { + return $link; + } $permalink = get_permalink( $post->ID ); return '<indie-action do="reply" with="' . esc_url( add_query_arg( 'replytocom', $comment->comment_ID, $permalink ) ) . '">' . $link . '</indie-action>'; } -add_filter( 'comment_reply_link', 'autonomie_webaction_comment_reply_link', null, 4 ); +add_filter( 'comment_reply_link', 'autonomie_webaction_comment_reply_link', 10, 4 ); /** * Surround comment form with a reply action. */ function autonomie_webaction_comment_form_before() { $post = get_queried_object(); + if ( ! $post ) { + return; + } $permalink = get_permalink( $post->ID ); - echo '<indie-action do="reply" with="' . $permalink . '">'; + echo '<indie-action do="reply" with="' . esc_url( $permalink ) . '">'; } add_action( 'comment_form_before', 'autonomie_webaction_comment_form_before', 0 ); diff --git a/includes/widgets.php b/includes/widgets.php deleted file mode 100644 index 786f7412..00000000 --- a/includes/widgets.php +++ /dev/null @@ -1,129 +0,0 @@ -<?php -/** - * Register widgetized area and update sidebar with default widgets. - */ -function autonomie_widgets_init() { - require( get_template_directory() . '/widgets/class-autonomie-author-widget.php' ); - register_widget( 'Autonomie_Author_Widget' ); - - require( get_template_directory() . '/widgets/class-autonomie-taxonomy-widget.php' ); - register_widget( 'Autonomie_Taxonomy_Widget' ); - - register_sidebar( - array( - 'name' => __( 'Sidebar 1', 'autonomie' ), - 'id' => 'sidebar-1', - 'description' => __( 'A sidebar area', 'autonomie' ), - 'before_widget' => '<aside id="%1$s" class="widget %2$s">', - 'after_widget' => '</aside>', - 'before_title' => '<h2 class="widget-title">', - 'after_title' => '</h2>', - ) - ); - - register_sidebar( - array( - 'name' => __( 'Sidebar 2', 'autonomie' ), - 'id' => 'sidebar-2', - 'description' => __( 'A second sidebar area', 'autonomie' ), - 'before_widget' => '<aside id="%1$s" class="widget %2$s">', - 'after_widget' => '</aside>', - 'before_title' => '<h2 class="widget-title">', - 'after_title' => '</h2>', - ) - ); - - register_sidebar( - array( - 'name' => __( 'Sidebar 3', 'autonomie' ), - 'id' => 'sidebar-3', - 'description' => __( 'A third sidebar area', 'autonomie' ), - 'before_widget' => '<aside id="%1$s" class="widget %2$s">', - 'after_widget' => '</aside>', - 'before_title' => '<h2 class="widget-title">', - 'after_title' => '</h2>', - ) - ); - - register_sidebar( - array( - 'name' => __( 'Entry-Meta', 'autonomie' ), - 'id' => 'entry-meta', - 'description' => __( 'Extend the Entry-Meta', 'autonomie' ), - 'before_widget' => '', - 'after_widget' => '', - 'before_title' => '', - 'after_title' => '', - ) - ); -} -add_action( 'widgets_init', 'autonomie_widgets_init' ); - -/** - * Add entry-meta default widgets - * - * @param array $content Array of starter content. - * @param array $config Array of theme-specific starter content configuration. - */ -function autonomie_starter_content_add_widget( $content, $config ) { - if ( ! isset( $content['widgets']['entry-meta'] ) ) { - $content['widgets']['entry-meta'] = array(); - } - - $content['widgets']['entry-meta'][] = array( - 'autonomie-author', - array(), - ); - $content['widgets']['entry-meta'][] = array( - 'autonomie-taxonomy', - array(), - ); - - return $content; -} -add_filter( 'get_theme_starter_content', 'autonomie_starter_content_add_widget', 10, 2 ); - -function autonomie_activate () { - // Set up default widgets for default theme. - update_option( - 'widget_autonomie-author', - array( - 2 => array( 'title' => '' ), - '_multiwidget' => 1, - ) - ); - - update_option( - 'widget_autonomie-taxonomy', - array( - 2 => array( 'title' => '' ), - '_multiwidget' => 1, - ) - ); - - update_option( - 'sidebars_widgets', - array( - 'wp_inactive_widgets' => array(), - 'sidebar-1' => array( - 0 => 'search-2', - 1 => 'recent-posts-2', - 2 => 'recent-comments-2', - ), - 'sidebar-2' => array( - 0 => 'archives-2', - ), - 'sidebar-3' => array( - 0 => 'categories-2', - 1 => 'meta-2', - ), - 'entry-meta' => array( - 0 => 'autonomie-author-2', - 1 => 'autonomie-taxonomy-2', - ), - 'array_version' => 3, - ) - ); -} - -add_action('after_switch_theme', 'autonomie_activate'); diff --git a/index.php b/index.php index 088cc8ed..38bf3c2e 100644 --- a/index.php +++ b/index.php @@ -1,53 +1,12 @@ <?php /** - * The main template file. + * Main template file * - * This is the most generic template file in a WordPress theme - * and one of the two required files for a theme (the other being style.css). - * It is used to display a page when nothing more specific matches a query. - * E.g., it puts together the home page when no home.php file exists. - * Learn more: http://codex.wordpress.org/Template_Hierarchy + * This file is required by WordPress but not used in block themes. + * Block themes use HTML templates in the /templates directory instead. * * @package Autonomie - * @since Autonomie 1.0.0 + * @since 2.0.0 */ -get_header(); ?> - - <main id="primary" <?php autonomie_main_class(); ?><?php autonomie_semantics( 'main' ); ?>> - - <?php if ( have_posts() ) : ?> - - <?php /* Start the Loop */ ?> - <?php while ( have_posts() ) : the_post(); ?> - - <?php - /* Include the Post-Format-specific template for the content. - * If you want to overload this in a child theme then include a file - * called content-___.php (where ___ is the Post Format name) and that will be used instead. - */ - get_template_part( 'templates/content', get_post_format() ); - ?> - - <?php endwhile; ?> - - <?php else : ?> - - <article id="post-0" class="post no-results not-found"> - <header class="entry-header"> - <h1 class="entry-title p-entry-title"><?php _e( 'Nothing Found', 'autonomie' ); ?></h1> - </header><!-- .entry-header --> - - <div class="entry-content e-entry-content"> - <p><?php _e( 'It seems we can’t find what you’re looking for. Perhaps searching can help.', 'autonomie' ); ?></p> - <?php get_search_form(); ?> - </div><!-- .entry-content --> - </article><!-- #post-0 --> - - <?php endif; ?> - - </main><!-- #content --> - - <?php autonomie_content_nav( 'nav-below' ); ?> - -<?php get_footer(); ?> +// Silence is golden. diff --git a/integrations/activitypub.php b/integrations/activitypub.php deleted file mode 100644 index 852edbd1..00000000 --- a/integrations/activitypub.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php -/** - * Autonomie ActivityPub - * - * Adds support for ActivityPub - * - * @link https://github.com/pfefferle/wordpress-activitypub - * - * @package Autonomie - * @subpackage indieweb - */ - -/** - * Add ActivityPub informations to the archive author meta data - * - * @param array $meta the meta array - * @param int $author_id the author id - * - * @return array the filtered meta array - */ -function autonomie_activitypub_archive_author_meta( $meta, $author_id ) { - // translators: how to follow - $meta[] = sprintf( __( '<indie-action do="follow" width="%1$s">Follow <code>%2$s</code> (fediverse)</indie-action>', 'autonomie' ), get_author_posts_url( $author_id ), \Activitypub\get_webfinger_resource( $author_id ) ); - - return $meta; -} -add_filter( 'autonomie_archive_author_meta', 'autonomie_activitypub_archive_author_meta', 10, 2 ); - -/** - * ActivityPub follower counter - * - * @param int $followers the follower counter - * @param int $author_id the author id - * - * @return array the filtered counter - */ -function autonomie_activitypub_followers( $followers, $author_id ) { - $activitypub_followers = get_user_option( 'activitypub_followers', $author_id ); - - if ( $activitypub_followers ) { - $activitypub_followers = count( $activitypub_followers ); - } else { - $activitypub_followers = 0; - } - - $followers = $followers + $activitypub_followers; - - return $followers; -} -add_filter( 'autonomie_archive_author_followers', 'autonomie_activitypub_followers', 10, 2 ); diff --git a/integrations/post-kinds.php b/integrations/post-kinds.php deleted file mode 100644 index f5a2f882..00000000 --- a/integrations/post-kinds.php +++ /dev/null @@ -1,55 +0,0 @@ -<?php -/** - * Autonomie Post Kinds - * - * Adds support for Post Kinds - * - * @link https://github.com/dshanske/indieweb-post-kinds - * - * @package Autonomie - * @subpackage indieweb - */ - -/** - * Removes native Post-Kinds implementation - */ -function autonomie_post_kinds_init() { - if ( method_exists( 'Kind_Taxonomy', 'get_icon' ) ) { - add_filter( 'kind_icon_display', '__return_false', 10 ); - } - - remove_filter( 'the_content', array( 'Kind_View', 'content_response' ), 9 ); - remove_filter( 'the_excerpt', array( 'Kind_View', 'excerpt_response' ), 9 ); - remove_action( 'wp_enqueue_scripts', array( 'Post_Kinds_Plugin', 'style_load' ) ); -} -add_action( 'init', 'autonomie_post_kinds_init' ); - -/** - * Adds the reply-context above the article body - * - * @return string the reply-context - */ -function autonomie_post_kinds_content() { - printf( '<div class="entry-reaction">%s</div>', Kind_View::get_display() ); -} -add_action( 'autonomie_before_entry_content', 'autonomie_post_kinds_content' ); - -/** - * Replace the Post-Format header with the Post-Kinds header - * - * @param string $post_format_html Post-Format html - * @return string Post-Kind html - */ -function autonomie_post_kinds_format( $post_format_html ) { - if ( ! get_post_kind_slug() ) { - return $post_format_html; - } - - $kind_slug = get_post_kind_slug(); - $kind_icon = Kind_Taxonomy::get_icon( $kind_slug ); - $kind_string = get_post_kind_string( $kind_slug ); - $kind_link = esc_url( get_post_kind_link( get_post_kind() ) ); - - return sprintf( '<a class="kind kind-%s" href="%s">%s %s</a>', $kind_slug, $kind_link, $kind_icon, $kind_string ); -} -add_filter( 'autonomie_post_format', 'autonomie_post_kinds_format' ); diff --git a/integrations/syndication-links.php b/integrations/syndication-links.php deleted file mode 100644 index 240f3c96..00000000 --- a/integrations/syndication-links.php +++ /dev/null @@ -1,40 +0,0 @@ -<?php -/** - * Autonomie Syndication Links - * - * Adds support for Syndication Links - * - * @link https://github.com/dshanske/syndication-links - * - * @package Autonomie - * @subpackage indieweb - */ - -/** - * Remove the integration of `the_content` filter - */ -function autonomie_syndication_links_init() { - remove_filter( 'the_content', array( 'Syn_Config', 'the_content' ) , 30 ); -} -add_action( 'init', 'autonomie_syndication_links_init' ); - -/** - * Remove the Syndication-Links CSS - */ -function autonomie_syndication_links_print_scripts() { - wp_dequeue_style( 'syndication-style' ); -} -add_action( 'wp_print_styles', 'autonomie_syndication_links_print_scripts', 100 ); - -/** - * Added links to the post-footer - */ -function autonomie_syndication_links() { - if ( function_exists( 'get_syndication_links' ) ) { - echo '<div class="syndication-links">'; - _e( 'Syndication Links', 'autonomie' ); - echo get_syndication_links( null, array( 'show_text_before' => null) ); - echo '</div>'; - } -} -add_action( 'autonomie_entry_footer', 'autonomie_syndication_links' ); diff --git a/languages/autonomie.pot b/languages/autonomie.pot deleted file mode 100644 index ba7343d7..00000000 --- a/languages/autonomie.pot +++ /dev/null @@ -1,428 +0,0 @@ -# <!=Copyright (C) 2024 Matthias Pfefferle -# This file is distributed under the MIT.=!> -msgid "" -msgstr "" -"Project-Id-Version: Autonomie 1.0.0\n" -"Report-Msgid-Bugs-To: https://wordpress.org/support/theme/autonomie\n" -"POT-Creation-Date: 2024-10-04 19:20:04+00:00\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2024-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"X-Generator: grunt-wp-i18n 1.0.3\n" - -#: 404.php:15 -msgid "Well this is somewhat embarrassing, isn’t it?" -msgstr "" - -#: 404.php:19 -msgid "" -"It seems we can’t find what you’re looking for. Perhaps " -"searching, or one of the links below, can help." -msgstr "" - -#: 404.php:26 -msgid "Most Used Categories" -msgstr "" - -#: 404.php:34 -#. translators: %1$s: smilie -msgid "Try looking in the monthly archives. %1$s" -msgstr "" - -#: 500.php:15 -msgid "Internal Server Error" -msgstr "" - -#: 500.php:20 -msgid "More Details" -msgstr "" - -#: archive.php:41 index.php:38 -msgid "Nothing Found" -msgstr "" - -#: archive.php:45 index.php:42 -msgid "" -"It seems we can’t find what you’re looking for. Perhaps " -"searching can help." -msgstr "" - -#: comments.php:16 -msgid "This post is password protected. Enter the password to view any comments." -msgstr "" - -#: comments.php:34 -msgid "One thought on “%2$s”" -msgid_plural "%1$s thoughts on “%2$s”" -msgstr[0] "" -msgstr[1] "" - -#: comments.php:43 comments.php:63 -msgid "Comment navigation" -msgstr "" - -#: comments.php:44 comments.php:64 -msgid "← Older Comments" -msgstr "" - -#: comments.php:45 comments.php:65 -msgid "Newer Comments →" -msgstr "" - -#: comments.php:75 -msgid "Comments are closed." -msgstr "" - -#: footer.php:31 -msgid "This site is powered by %1$s and styled with the %2$s theme" -msgstr "" - -#: functions.php:83 -msgid "Blue" -msgstr "" - -#: functions.php:88 -msgid "Lighter blue" -msgstr "" - -#: functions.php:93 -msgid "Blue jeans" -msgstr "" - -#: functions.php:98 -msgid "Orioles orange" -msgstr "" - -#: functions.php:103 -msgid "USC gold" -msgstr "" - -#: functions.php:108 -msgid "Gargoyle gas" -msgstr "" - -#: functions.php:113 -msgid "Yellow" -msgstr "" - -#: functions.php:118 -msgid "Android green" -msgstr "" - -#: functions.php:123 -msgid "White" -msgstr "" - -#: functions.php:128 -msgid "Very light gray" -msgstr "" - -#: functions.php:133 -msgid "Very dark gray" -msgstr "" - -#: functions.php:143 header.php:58 -msgid "Primary Menu" -msgstr "" - -#: functions.php:271 -msgid "Top Menu" -msgstr "" - -#: functions.php:305 -msgid "POSH Feed" -msgstr "" - -#: functions.php:474 -msgid "Edit" -msgstr "" - -#: functions.php:484 -#. translators: 1: date, 2: time -msgid "%1$s at %2$s" -msgstr "" - -#: functions.php:490 -msgid "Your comment is awaiting moderation." -msgstr "" - -#: header.php:33 -msgid "Skip to content" -msgstr "" - -#: image.php:63 templates/content-aside.php:18 templates/content-audio.php:18 -#: templates/content-chat.php:18 templates/content-gallery.php:18 -#: templates/content-image.php:18 templates/content-link.php:18 -#: templates/content-page.php:18 templates/content-quote.php:18 -#: templates/content-single.php:18 templates/content-status.php:18 -#: templates/content-video.php:18 -msgid "Pages:" -msgstr "" - -#: includes/customizer.php:12 -msgid "Advanced Settings" -msgstr "" - -#: includes/customizer.php:13 -msgid "Enable/Disable some advanced Autonomie features." -msgstr "" - -#: includes/featured-image.php:91 -msgid "Use as post cover (full-width)" -msgstr "" - -#: includes/feed.php:61 -#. translators: 1: blog name, 2: separator(raquo), 3: post title -msgid "%1$s %2$s %3$s Comments Feed" -msgstr "" - -#: includes/feed.php:63 -#. translators: 1: blog name, 2: separator(raquo), 3: category name -msgid "%1$s %2$s %3$s Category Feed" -msgstr "" - -#: includes/feed.php:65 -#. translators: 1: blog name, 2: separator(raquo), 3: tag name -msgid "%1$s %2$s %3$s Tag Feed" -msgstr "" - -#: includes/feed.php:67 -#. translators: 1: blog name, 2: separator(raquo), 3: term name, 4: taxonomy -#. singular name -msgid "%1$s %2$s %3$s %4$s Feed" -msgstr "" - -#: includes/feed.php:69 -#. translators: 1: blog name, 2: separator(raquo), 3: author name -msgid "%1$s %2$s Posts by %3$s Feed" -msgstr "" - -#: includes/feed.php:71 -#. translators: 1: blog name, 2: separator(raquo), 3: search phrase -msgid "%1$s %2$s Search Results for “%3$s” Feed" -msgstr "" - -#: includes/feed.php:73 -#. translators: 1: blog name, 2: separator(raquo), 3: post type -msgid "%1$s %2$s %3$s Post-Type Feed" -msgstr "" - -#: includes/semantics.php:123 -msgid "User Avatar of %s" -msgstr "" - -#: includes/semantics.php:125 -msgid "User Avatar" -msgstr "" - -#: includes/template-functions.php:13 -msgid "Post navigation" -msgstr "" - -#: includes/template-functions.php:42 -#. translators: -msgid "View all posts by %s" -msgstr "" - -#: includes/template-functions.php:160 -#. translators: The title of the search results page -msgid "Search Results for: %s" -msgstr "" - -#: includes/template-functions.php:197 -msgid "Attachment" -msgstr "" - -#: includes/template-functions.php:199 -msgid "Page" -msgstr "" - -#: includes/template-functions.php:203 -msgid "Text" -msgstr "" - -#: includes/template-functions.php:262 -#. translators: list of followers -msgid "%s Followers" -msgstr "" - -#: includes/template-functions.php:264 -#. translators: a post counter -msgid "%s Posts" -msgstr "" - -#: includes/template-functions.php:265 -msgid "Subscribe" -msgstr "" - -#: includes/template-functions.php:289 -#. translators: Description for search results -msgid "Found %1$s search result for <strong>%2$s</strong>." -msgid_plural "Found %1$s search results for <strong>%2$s</strong>." -msgstr[0] "" -msgstr[1] "" - -#: includes/template-functions.php:304 -msgid "" -"<span class=\"entry-duration\"><time datetime=\"PT%1$sM\" " -"class=\"dt-duration\" itemprop=\"timeRequired\">%1$s minute</time> to " -"read</span>" -msgid_plural "" -"<span class=\"entry-duration\"><time datetime=\"PT%1$sM\" " -"class=\"dt-duration\" itemprop=\"timeRequired\">%1$s minutes</time> to " -"read</span>" -msgstr[0] "" -msgstr[1] "" - -#: includes/template-functions.php:326 includes/template-functions.php:335 -msgid "Continue reading <span class=\"meta-nav\">→</span>" -msgstr "" - -#: includes/widgets.php:14 -msgid "Sidebar 1" -msgstr "" - -#: includes/widgets.php:16 -msgid "A sidebar area" -msgstr "" - -#: includes/widgets.php:26 -msgid "Sidebar 2" -msgstr "" - -#: includes/widgets.php:28 -msgid "A second sidebar area" -msgstr "" - -#: includes/widgets.php:38 -msgid "Sidebar 3" -msgstr "" - -#: includes/widgets.php:40 -msgid "A third sidebar area" -msgstr "" - -#: includes/widgets.php:50 -msgid "Entry-Meta" -msgstr "" - -#: includes/widgets.php:52 -msgid "Extend the Entry-Meta" -msgstr "" - -#: integrations/activitypub.php:23 -#. translators: how to follow -msgid "" -"<indie-action do=\"follow\" width=\"%1$s\">Follow <code>%2$s</code> " -"(fediverse)</indie-action>" -msgstr "" - -#: integrations/syndication-links.php:35 -msgid "Syndication Links" -msgstr "" - -#: offline.php:15 -msgid "Offline" -msgstr "" - -#: template-parts/entry-author.php:7 -msgid "Subscribe to author feed" -msgstr "" - -#: template-parts/entry-footer.php:5 template-parts/entry-footer.php:19 -msgid "Leave a comment" -msgstr "" - -#: template-parts/entry-footer.php:5 template-parts/entry-footer.php:19 -msgid "1 Comment" -msgstr "" - -#: template-parts/entry-footer.php:5 template-parts/entry-footer.php:19 -msgid "% Comments" -msgstr "" - -#: template-parts/entry-header.php:22 -msgid "Permalink to %s" -msgstr "" - -#: template-parts/entry-share.php:3 -msgid "share" -msgstr "" - -#: template-parts/entry-share.php:10 -msgid "Shortlink" -msgstr "" - -#: template-parts/entry-share.php:14 -msgid "Permalink" -msgstr "" - -#: template-parts/entry-share.php:22 template-parts/entry-share.php:27 -msgid "HTML" -msgstr "" - -#: template-parts/entry-taxonomy.php:7 -#. translators: used between list items, there is a space after the comma -msgid "Categories" -msgstr "" - -#: template-parts/entry-taxonomy.php:8 template-parts/entry-taxonomy.php:19 -msgid "%1$s" -msgstr "" - -#: template-parts/entry-taxonomy.php:18 -#. translators: used between list items, there is a space after the comma -msgid "Tags" -msgstr "" - -#. Theme Name of the plugin/theme -msgid "Autonomie" -msgstr "" - -#. Theme URI of the plugin/theme -msgid "https://github.com/pfefferle/Autonomie" -msgstr "" - -#. Description of the plugin/theme -msgid "" -"Autonomie is a highly semantic, responsive, accessible and seo optimized " -"WordPress Theme. It provides HTML5 templates refined with microformats, " -"microformats v2 and microdata (Schema.org). Autonomie supports a lot of " -"OpenWeb plugins and is fully IndieWeb compatible." -msgstr "" - -#. Author of the plugin/theme -msgid "Matthias Pfefferle" -msgstr "" - -#. Author URI of the plugin/theme -msgid "https://notiz.blog/" -msgstr "" - -#. Template Name of the plugin/theme -msgid "\"/now\" Template" -msgstr "" - -#: functions.php:242 -msgctxt "Theme starter content" -msgid "Beach" -msgstr "" - -#: functions.php:246 -msgctxt "Theme starter content" -msgid "Sea" -msgstr "" - -#: functions.php:250 -msgctxt "Theme starter content" -msgid "Lights" -msgstr "" - -#: includes/feed.php:59 -#. translators: Separator between blog name and feed type in feed links -msgctxt "feed link" -msgid "»" -msgstr "" \ No newline at end of file diff --git a/offline.php b/offline.php deleted file mode 100644 index 4f8c08d2..00000000 --- a/offline.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -/** - * The template for displaying 404 pages (Not Found). - * - * @package Autonomie - * @since Autonomie 1.0.0 - */ - -get_header(); ?> - - <main id="primary" <?php autonomie_main_class(); ?><?php autonomie_semantics( 'main' ); ?>> - - <article id="post-0" class="post error offline"> - <header class="entry-header"> - <h1 class="entry-title p-name"><?php _e( 'Offline', 'autonomie' ); ?></h1> - </header> - - <div class="entry-content e-content"> - <p><?php wp_service_worker_error_message_placeholder(); ?></p> - </div><!-- .entry-content --> - </article><!-- #post-0 --> - - </main><!-- #content --> - -<?php get_footer(); ?> diff --git a/package.json b/package.json index 19361f75..6797366e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { - "name": "Autonomie", - "version": "1.0.0", - "description": "Autonomie is a highly semantic, responsive, accessible and seo optimized WordPress Theme. It provides HTML5 templates refined with microformats, microformats v2 and microdata (Schema.org). Autonomie supports a lot of OpenWeb plugins and is fully IndieWeb compatible.", + "name": "autonomie", + "version": "2.0.2", + "description": "Autonomie is a highly semantic, responsive, accessible and SEO-optimized Full Site Editing (FSE) WordPress theme. It provides HTML5 templates refined with microformats, microformats v2 and microdata (Schema.org). Autonomie supports IndieWeb and is fully compatible with modern block-based editing.", "repository": { "type": "git", "url": "https://github.com/pfefferle/Autonomie.git" @@ -10,27 +10,24 @@ "url": "https://github.com/pfefferle/Autonomie/issues" }, "keywords": [ - "custom-menu", - "custom-colors", - "custom-header", - "custom-logo", - "featured-image-header", - "flexible-header", - "sticky-post", + "block-templates", + "block-patterns", + "full-site-editing", + "fse", "microformats", + "microformats2", + "schema-org", + "indieweb", + "semantic-html", "rtl-language-support", "translation-ready", - "full-width-template", "post-formats", "threaded-comments", - "footer-widgets", "one-column", "editor-style", "featured-images", - "theme-options", "blog", - "news", - "photography", + "accessibility-ready", "wide-blocks" ], "author": { @@ -39,17 +36,35 @@ }, "license": "MIT", "homepage": "https://github.com/pfefferle/Autonomie", + "scripts": { + "start": "wp-env start", + "stop": "wp-env stop", + "clean": "wp-env clean", + "destroy": "wp-env destroy", + "logs": "wp-env logs", + "wp": "wp-env run cli wp", + "validate:composer": "composer validate --no-check-all", + "lint:php": "composer run-script lint", + "lint:js": "wp-scripts lint-js", + "lint:css": "wp-scripts lint-style", + "format": "prettier --write '**/*.{json,md}'", + "lint:md": "markdownlint '**/*.md' --ignore node_modules --ignore vendor", + "test": "echo 'No tests configured yet' && exit 0", + "prebuild": "node build-scripts/extract-icons.js", + "build": "wp-scripts build", + "predev": "node build-scripts/extract-icons.js", + "dev": "wp-scripts start" + }, "devDependencies": { - "grunt": "^1.5.2", - "grunt-contrib-clean": "^2.0.1", - "grunt-contrib-compress": "^2.0.0", - "grunt-contrib-copy": "^1.0.0", - "grunt-contrib-sass": "~2.0.0", - "grunt-contrib-watch": "^1.1.0", - "grunt-sass": "^4.0.0", - "grunt-string-replace": "^1.3.1", - "grunt-wp-i18n": "^1.0.3", - "grunt-wp-readme-to-markdown": "^2.1.0", - "sass": "^1.51.0" + "@wordpress/env": "^10.11.0", + "@wordpress/icons": "^11.0.0", + "@wordpress/scripts": "^30.7.0", + "copy-webpack-plugin": "^12.0.0", + "markdownlint-cli": "^0.42.0", + "prettier": "^3.3.3" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=9.0.0" } } diff --git a/page-now.php b/page-now.php deleted file mode 100644 index ddab805c..00000000 --- a/page-now.php +++ /dev/null @@ -1,32 +0,0 @@ -<?php -/** - * Template Name: "/now" Template - * - * The template for displaying "/now" pages. - * - * This is the template that displays all pages by default. - * Please note that this is the WordPress construct of pages - * and that other 'pages' on your WordPress site will use a - * different template. - * - * @package Autonomie - * @since Autonomie 1.0.0 - */ - -set_query_var( 'is_now', true ); - -get_header(); ?> - - <main id="primary" <?php autonomie_main_class( 'h-now' ); ?><?php autonomie_semantics( 'main' ); ?>> - - <?php while ( have_posts() ) : the_post(); ?> - - <?php get_template_part( 'templates/content', 'page' ); ?> - - <?php comments_template( '', true ); ?> - - <?php endwhile; // end of the loop. ?> - - </main><!-- #content --> - -<?php get_footer(); ?> diff --git a/page.php b/page.php deleted file mode 100644 index d22b3acc..00000000 --- a/page.php +++ /dev/null @@ -1,28 +0,0 @@ -<?php -/** - * The template for displaying all pages. - * - * This is the template that displays all pages by default. - * Please note that this is the WordPress construct of pages - * and that other 'pages' on your WordPress site will use a - * different template. - * - * @package Autonomie - * @since Autonomie 1.0.0 - */ - -get_header(); ?> - - <main id="primary" <?php autonomie_main_class(); ?><?php autonomie_semantics( 'main' ); ?>> - - <?php while ( have_posts() ) : the_post(); ?> - - <?php get_template_part( 'templates/content', 'page' ); ?> - - <?php comments_template( '', true ); ?> - - <?php endwhile; // end of the loop. ?> - - </main><!-- #content --> - -<?php get_footer(); ?> diff --git a/parts/comments.html b/parts/comments.html new file mode 100644 index 00000000..3d9116b1 --- /dev/null +++ b/parts/comments.html @@ -0,0 +1,37 @@ +<!-- wp:comments --> +<div class="wp-block-comments"> + <!-- wp:comments-title {"showPostTitle":true} /--> + + <!-- wp:comment-template --> + <!-- wp:group {"className":"comment-body","style":{"spacing":{"blockGap":"var:preset|spacing|30","padding":{"top":"var:preset|spacing|35","bottom":"var:preset|spacing|35"}}}} --> + <div class="wp-block-group comment-body" style="padding-top:var(--wp--preset--spacing--35);padding-bottom:var(--wp--preset--spacing--35)"> + <!-- wp:group {"className":"comment-meta","layout":{"type":"flex","flexWrap":"wrap","verticalAlignment":"center"},"style":{"spacing":{"blockGap":"var:preset|spacing|20"}}} --> + <div class="wp-block-group comment-meta"> + <!-- wp:group {"className":"comment-author","layout":{"type":"flex","flexWrap":"nowrap","verticalAlignment":"center"},"style":{"spacing":{"blockGap":"var:preset|spacing|30"}}} --> + <div class="wp-block-group comment-author"> + <!-- wp:avatar {"size":32,"style":{"border":{"radius":"100px"}}} /--> + + <!-- wp:comment-author-name /--> + </div> + <!-- /wp:group --> + + <!-- wp:comment-date /--> + </div> + <!-- /wp:group --> + + <!-- wp:comment-content /--> + + <!-- wp:comment-reply-link /--> + </div> + <!-- /wp:group --> + <!-- /wp:comment-template --> + + <!-- wp:comments-pagination {"style":{"spacing":{"margin":{"top":"var:preset|spacing|50","bottom":"var:preset|spacing|60"}}}} --> + <!-- wp:comments-pagination-previous /--> + <!-- wp:comments-pagination-numbers /--> + <!-- wp:comments-pagination-next /--> + <!-- /wp:comments-pagination --> + + <!-- wp:post-comments-form {"style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}}} /--> +</div> +<!-- /wp:comments --> diff --git a/parts/footer.html b/parts/footer.html new file mode 100644 index 00000000..654c0004 --- /dev/null +++ b/parts/footer.html @@ -0,0 +1,19 @@ +<!-- wp:group {"tagName":"footer","className":"site-footer","style":{"border":{"top":{"color":"var:preset|color|border-gray","width":"1px","style":"solid"}},"spacing":{"padding":{"top":"var:preset|spacing|50","bottom":"var:preset|spacing|50"},"margin":{"top":"var:preset|spacing|70"},"blockGap":"var:preset|spacing|40"}},"layout":{"type":"constrained"}} --> +<footer id="colophon" class="wp-block-group site-footer"> + <!-- wp:group {"className":"site-footer-main","style":{"spacing":{"blockGap":"var:preset|spacing|40","margin":{"bottom":"var:preset|spacing|40"}}},"layout":{"type":"flex","justifyContent":"space-between","verticalAlignment":"top","flexWrap":"wrap"}} --> + <div class="wp-block-group site-footer-main"> + <!-- wp:group {"className":"site-footer-blocks","style":{"spacing":{"blockGap":"var:preset|spacing|35"}},"layout":{"type":"constrained"}} --> + <div class="wp-block-group site-footer-blocks"> + <!-- wp:site-title {"level":0,"fontSize":"small"} /--> + </div> + <!-- /wp:group --> + + <!-- wp:navigation {"overlayMenu":"never","className":"site-footer-navigation","layout":{"type":"flex","justifyContent":"left","orientation":"horizontal","flexWrap":"wrap"},"fontSize":"small"} /--> + </div> + <!-- /wp:group --> + + <!-- wp:paragraph {"align":"left","fontSize":"small"} --> + <p class="has-text-align-left has-small-font-size">This site is powered by <a href="https://wordpress.org/" rel="generator">WordPress</a> and styled with the <a href="https://notiz.blog/projects/autonomie/">Autonomie</a> theme</p> + <!-- /wp:paragraph --> +</footer> +<!-- /wp:group --> diff --git a/parts/header.html b/parts/header.html new file mode 100644 index 00000000..7f87d0cd --- /dev/null +++ b/parts/header.html @@ -0,0 +1,20 @@ +<!-- wp:group {"layout":{"type":"constrained","contentSize":"900px"},"style":{"spacing":{"padding":{"top":"var:custom|header|paddingBlock","bottom":"var:custom|header|paddingBlock"},"margin":{"bottom":"var:custom|header|marginBottom"}}}} --> +<div class="wp-block-group" style="margin-bottom:var(--wp--custom--header--margin-bottom);padding-top:var(--wp--custom--header--padding-block);padding-bottom:var(--wp--custom--header--padding-block)"> + <!-- wp:group {"className":"site-header-layout","layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"space-between","verticalAlignment":"center"},"spacing":{"blockGap":"var:custom|header|gap"}} --> + <div class="wp-block-group site-header-layout"> + <!-- wp:group {"className":"site-branding","layout":{"type":"flex","flexWrap":"nowrap","verticalAlignment":"center"},"spacing":{"blockGap":"var:custom|header|brandingGap"}} --> + <div class="wp-block-group site-branding"> + <!-- wp:site-logo {"width":28,"shouldSyncIcon":true,"style":{"border":{"radius":"4px"}}} /--> + + <!-- wp:site-title {"level":0} /--> + </div> + <!-- /wp:group --> + + <!-- wp:navigation {"overlayMenu":"mobile","className":"site-navigation","layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"right"},"overlayBackgroundColor":"base","overlayTextColor":"contrast","overlay":"autonomie//navigation-overlay"} --> + <!-- wp:page-list /--> + <!-- wp:search {"label":"Search","showLabel":false,"placeholder":"Search...","buttonText":"Search","buttonPosition":"button-only","buttonUseIcon":true,"className":"site-header-search"} /--> + <!-- /wp:navigation --> + </div> + <!-- /wp:group --> +</div> +<!-- /wp:group --> diff --git a/parts/navigation-overlay.html b/parts/navigation-overlay.html new file mode 100644 index 00000000..0aa68500 --- /dev/null +++ b/parts/navigation-overlay.html @@ -0,0 +1,7 @@ +<!-- wp:group {"backgroundColor":"base","textColor":"contrast","layout":{"type":"flex","orientation":"vertical","justifyContent":"right"},"style":{"spacing":{"padding":{"top":"4rem","right":"1rem","bottom":"var:preset|spacing|60","left":"1rem"},"blockGap":"var:preset|spacing|50"},"dimensions":{"minHeight":"100vh"}}} --> +<div class="wp-block-group has-contrast-color has-base-background-color has-text-color has-background" style="min-height:100vh;padding-top:4rem;padding-right:1rem;padding-bottom:var(--wp--preset--spacing--60);padding-left:1rem"> + <!-- wp:page-list {"fontSize":"large"} /--> + + <!-- wp:search {"label":"Search","showLabel":false,"placeholder":"Search...","buttonText":"Search","buttonPosition":"button-inside","buttonUseIcon":true,"className":"site-header-search"} /--> +</div> +<!-- /wp:group --> diff --git a/parts/post-meta.html b/parts/post-meta.html new file mode 100644 index 00000000..25093f10 --- /dev/null +++ b/parts/post-meta.html @@ -0,0 +1,9 @@ +<!-- wp:group {"className":"entry-meta","textColor":"light-gray","style":{"typography":{"fontSize":"var:custom|meta|fontSize","lineHeight":"var:custom|meta|lineHeight"}},"layout":{"type":"flex","flexWrap":"wrap","verticalAlignment":"center"},"spacing":{"blockGap":"0","margin":{"top":"var:custom|meta|marginBlock","bottom":"var:custom|meta|marginBlock"}}} --> +<div class="wp-block-group entry-meta"> + <!-- wp:post-author {"showAvatar":true,"avatarSize":32,"showBio":false,"byline":"by","isLink":true} /--> + + <!-- wp:post-date {"isLink":true} /--> + + <!-- wp:post-terms {"term":"category"} /--> +</div> +<!-- /wp:group --> diff --git a/parts/query-loop.html b/parts/query-loop.html new file mode 100644 index 00000000..e086b940 --- /dev/null +++ b/parts/query-loop.html @@ -0,0 +1,33 @@ +<!-- wp:query {"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true}} --> +<div class="wp-block-query"> + <!-- wp:post-template {"style":{"spacing":{"blockGap":"var:preset|spacing|100"}}} --> + <!-- wp:autonomie/post-format {"spacing":{"margin":{"bottom":"var:preset|spacing|30"}}} /--> + + <!-- wp:post-title {"isLink":true,"linkTarget":"_self"} /--> + + <!-- wp:template-part {"slug":"post-meta","className":"entry-meta"} /--> + +<!-- wp:spacer {"height":"var:preset|spacing|35"} --> +<div style="height:var(--wp--preset--spacing--35)" aria-hidden="true" class="wp-block-spacer"></div> +<!-- /wp:spacer --> + + <!-- wp:post-featured-image {"isLink":true} /--> + + <!-- wp:post-content {"className":"entry-content","layout":{"type":"constrained"}} /--> + + <!-- wp:post-comments-link {"className":"post-reactions","spacing":{"margin":{"top":"var:preset|spacing|40"}}} /--> + <!-- /wp:post-template --> + + <!-- wp:query-pagination {"paginationArrow":"arrow","layout":{"type":"flex","justifyContent":"center"}} --> + <!-- wp:query-pagination-previous /--> + <!-- wp:query-pagination-numbers /--> + <!-- wp:query-pagination-next /--> + <!-- /wp:query-pagination --> + + <!-- wp:query-no-results --> + <!-- wp:paragraph {"align":"center"} --> + <p class="has-text-align-center">No posts found. Please try another search.</p> + <!-- /wp:paragraph --> + <!-- /wp:query-no-results --> +</div> +<!-- /wp:query --> diff --git a/phpcs.xml b/phpcs.xml index c5f5bbd7..df55621e 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -5,4 +5,7 @@ <exclude name="Generic.Formatting.MultipleStatementAlignment.NotSameWarning" /> <exclude name="WordPress.Arrays.MultipleStatementAlignment.DoubleArrowNotAligned" /> </rule> + <exclude-pattern>node_modules/</exclude-pattern> + <exclude-pattern>vendor/</exclude-pattern> + <exclude-pattern>build/</exclude-pattern> </ruleset> diff --git a/sidebar.php b/sidebar.php deleted file mode 100644 index eaff31e8..00000000 --- a/sidebar.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php -/** - * The Sidebar containing the main widget areas. - * - * @package Autonomie - * @since Autonomie 1.0.0 - */ -?> - <div id="sidebar"> - <?php do_action( 'before_sidebar' ); ?> - - <div id="secondary" class="widget-area" role="complementary"> - <?php dynamic_sidebar( 'sidebar-1' ); ?> - </div><!-- #secondary .widget-area --> - - <?php if ( is_active_sidebar( 'sidebar-2' ) ) : ?> - <div id="tertiary" class="widget-area" role="complementary"> - <?php dynamic_sidebar( 'sidebar-2' ); ?> - </div><!-- #tertiary .widget-area --> - <?php endif; ?> - - <?php if ( is_active_sidebar( 'sidebar-3' ) ) : ?> - <div id="quaternary" class="widget-area" role="complementary"> - <?php dynamic_sidebar( 'sidebar-3' ); ?> - </div><!-- #quaternary .widget-area --> - <?php endif; ?> - </div> diff --git a/single.php b/single.php deleted file mode 100644 index c41a6e7e..00000000 --- a/single.php +++ /dev/null @@ -1,30 +0,0 @@ -<?php -/** - * The Template for displaying all single posts. - * - * @package Autonomie - * @since Autonomie 1.0.0 - */ - -get_header(); ?> - - <main id="primary" <?php autonomie_main_class(); ?><?php autonomie_semantics( 'main' ); ?>> - - <?php while ( have_posts() ) : the_post(); ?> - - <?php get_template_part( 'templates/content', get_post_format() ); ?> - - <?php - // If comments are open or we have at least one comment, load up the comment template - if ( comments_open() || '0' !== get_comments_number() ) { - comments_template( '', true ); - } - ?> - - <?php endwhile; // end of the loop. ?> - - </main><!-- #content --> - - <?php autonomie_content_nav( 'nav-below' ); ?> - -<?php get_footer(); ?> diff --git a/src/post-format/block.json b/src/post-format/block.json new file mode 100644 index 00000000..0b51f20e --- /dev/null +++ b/src/post-format/block.json @@ -0,0 +1,30 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 3, + "name": "autonomie/post-format", + "title": "Post Format", + "category": "theme", + "description": "Displays the post format with an icon and link to the format archive.", + "keywords": ["post", "format", "meta"], + "textdomain": "autonomie", + "supports": { + "html": false, + "color": { + "text": true, + "background": false + }, + "typography": { + "fontSize": true, + "fontFamily": true + }, + "spacing": { + "margin": true, + "padding": false + } + }, + "usesContext": ["postId", "postType"], + "editorScript": "file:./index.js", + "editorStyle": "file:./index.css", + "style": "file:./style-index.css", + "render": "file:./render.php" +} diff --git a/src/post-format/editor.scss b/src/post-format/editor.scss new file mode 100644 index 00000000..63fdc007 --- /dev/null +++ b/src/post-format/editor.scss @@ -0,0 +1,10 @@ +/** + * Editor styles for Post Format block + */ + +.wp-block-autonomie-post-format { + .format-icon { + // SVG icon styles are inherited from style.scss + // No editor-specific overrides needed + } +} diff --git a/src/post-format/icon-paths.php b/src/post-format/icon-paths.php new file mode 100644 index 00000000..5d70abec --- /dev/null +++ b/src/post-format/icon-paths.php @@ -0,0 +1,32 @@ +<?php +/** + * WordPress Icons for Post Formats + * + * This file is auto-generated during build. + * Do not edit manually - changes will be overwritten. + * + * Generated from @wordpress/icons library. + * + * @package Autonomie + * @since 2.0.0 + */ + +/** + * Get post format icon SVG paths + * + * @return array Icon paths keyed by format name. + */ +function autonomie_get_post_format_icon_paths() { + return array( + 'aside' => 'M4 6h12V4.5H4V6Zm16 4.5H4V9h16v1.5ZM4 15h16v-1.5H4V15Zm0 4.5h16V18H4v1.5Z', + 'gallery' => 'M16.375 4.5H4.625a.125.125 0 0 0-.125.125v8.254l2.859-1.54a.75.75 0 0 1 .68-.016l2.384 1.142 2.89-2.074a.75.75 0 0 1 .874 0l2.313 1.66V4.625a.125.125 0 0 0-.125-.125Zm.125 9.398-2.75-1.975-2.813 2.02a.75.75 0 0 1-.76.067l-2.444-1.17L4.5 14.583v1.792c0 .069.056.125.125.125h11.75a.125.125 0 0 0 .125-.125v-2.477ZM4.625 3C3.728 3 3 3.728 3 4.625v11.75C3 17.273 3.728 18 4.625 18h11.75c.898 0 1.625-.727 1.625-1.625V4.625C18 3.728 17.273 3 16.375 3H4.625ZM20 8v11c0 .69-.31 1-.999 1H6v1.5h13.001c1.52 0 2.499-.982 2.499-2.5V8H20Z', + 'link' => 'M10 17.389H8.444A5.194 5.194 0 1 1 8.444 7H10v1.5H8.444a3.694 3.694 0 0 0 0 7.389H10v1.5ZM14 7h1.556a5.194 5.194 0 0 1 0 10.39H14v-1.5h1.556a3.694 3.694 0 0 0 0-7.39H14V7Zm-4.5 6h5v-1.5h-5V13Z', + 'image' => 'M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v8.4l-3-2.9c-.3-.3-.8-.3-1 0L11.9 14 9 12c-.3-.2-.6-.2-.8 0l-3.6 2.6V5c-.1-.3.1-.5.4-.5zm14 15H5c-.3 0-.5-.2-.5-.5v-2.4l4.1-3 3 1.9c.3.2.7.2.9-.1L16 12l3.5 3.4V19c0 .3-.2.5-.5.5z', + 'quote' => 'M13 6v6h5.2v4c0 .8-.2 1.4-.5 1.7-.6.6-1.6.6-2.5.5h-.3v1.5h.5c1 0 2.3-.1 3.3-1 .6-.6 1-1.6 1-2.8V6H13zm-9 6h5.2v4c0 .8-.2 1.4-.5 1.7-.6.6-1.6.6-2.5.5h-.3v1.5h.5c1 0 2.3-.1 3.3-1 .6-.6 1-1.6 1-2.8V6H4v6z', + 'status' => 'M4 6h12V4.5H4V6Zm16 4.5H4V9h16v1.5ZM4 15h16v-1.5H4V15Zm0 4.5h16V18H4v1.5Z', + 'video' => 'M18.7 3H5.3C4 3 3 4 3 5.3v13.4C3 20 4 21 5.3 21h13.4c1.3 0 2.3-1 2.3-2.3V5.3C21 4 20 3 18.7 3zm.8 15.7c0 .4-.4.8-.8.8H5.3c-.4 0-.8-.4-.8-.8V5.3c0-.4.4-.8.8-.8h13.4c.4 0 .8.4.8.8v13.4zM10 15l5-3-5-3v6z', + 'audio' => 'M17.7 4.3c-1.2 0-2.8 0-3.8 1-.6.6-.9 1.5-.9 2.6V14c-.6-.6-1.5-1-2.5-1C8.6 13 7 14.6 7 16.5S8.6 20 10.5 20c1.5 0 2.8-1 3.3-2.3.5-.8.7-1.8.7-2.5V7.9c0-.7.2-1.2.5-1.6.6-.6 1.8-.6 2.8-.6h.3V4.3h-.4z', + 'chat' => 'M18 4H6c-1.1 0-2 .9-2 2v12.9c0 .6.5 1.1 1.1 1.1.3 0 .5-.1.8-.3L8.5 17H18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 11c0 .3-.2.5-.5.5H7.9l-2.4 2.4V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v9z', + 'standard' => 'M4 6h12V4.5H4V6Zm16 4.5H4V9h16v1.5ZM4 15h16v-1.5H4V15Zm0 4.5h16V18H4v1.5Z', + ); +} diff --git a/src/post-format/index.js b/src/post-format/index.js new file mode 100644 index 00000000..8993b833 --- /dev/null +++ b/src/post-format/index.js @@ -0,0 +1,120 @@ +/** + * WordPress dependencies + */ +import { registerBlockType } from '@wordpress/blocks'; +import { useBlockProps } from '@wordpress/block-editor'; +import { useSelect } from '@wordpress/data'; +import { + quote, + image, + gallery, + video, + audio, + comment, + link as linkIcon, + postContent, + Icon, +} from '@wordpress/icons'; + +/** + * Internal dependencies + */ +import './style.scss'; +import './editor.scss'; + +// WordPress icons for each format +const icons = { + aside: postContent, + gallery: gallery, + link: linkIcon, + image: image, + quote: quote, + status: postContent, + video: video, + audio: audio, + chat: comment, + standard: postContent, +}; + +// Format display names +const formatNames = { + aside: 'Aside', + gallery: 'Gallery', + link: 'Link', + image: 'Image', + quote: 'Quote', + status: 'Status', + video: 'Video', + audio: 'Audio', + chat: 'Chat', + standard: 'Standard', +}; + +/** + * Post Format Block Edit Component + */ +const Edit = ( { context } ) => { + const { postId, postType = 'post' } = context; + + // Get the post format from the taxonomy + const { format, formatLink } = useSelect( + ( select ) => { + if ( ! postId ) { + return { format: 'standard', formatLink: '' }; + } + + const { getEntityRecord, getTaxonomy } = select( 'core' ); + const post = getEntityRecord( 'postType', postType, postId ); + + if ( ! post ) { + return { format: 'standard', formatLink: '' }; + } + + // Get format from taxonomy + const formatTermIds = post.format || []; + let postFormat = 'standard'; + + let link = ''; + + if ( formatTermIds.length > 0 ) { + const formatTerm = getEntityRecord( + 'taxonomy', + 'post_format', + formatTermIds[ 0 ] + ); + if ( formatTerm ) { + postFormat = formatTerm.slug.replace( 'post-format-', '' ); + } + if ( formatTerm && formatTerm.link ) { + link = formatTerm.link; + } + } + + return { format: postFormat, formatLink: link }; + }, + [ postId, postType ] + ); + + const blockProps = useBlockProps( { + className: `format-${ format }`, + } ); + + const icon = icons[ format ] || icons.standard; + const formatName = formatNames[ format ] || formatNames.standard; + + return ( + <div { ...blockProps }> + <span className="format-display"> + <Icon className="format-icon" icon={ icon } /> + <span className="format-text">{ formatName }</span> + </span> + </div> + ); +}; + +/** + * Register the block + */ +registerBlockType( 'autonomie/post-format', { + edit: Edit, +} ); diff --git a/src/post-format/render.php b/src/post-format/render.php new file mode 100644 index 00000000..97f1a1a0 --- /dev/null +++ b/src/post-format/render.php @@ -0,0 +1,73 @@ +<?php +/** + * Post Format Block - Server-side Render + * + * @package Autonomie + * @since 2.0.0 + * + * @param array $attributes Block attributes. + * @param string $content Block default content. + * @param WP_Block $block Block instance. + */ + +// Load auto-generated icon paths +require_once __DIR__ . '/icon-paths.php'; + +// Get post ID from context or global +if ( ! isset( $block->context['postId'] ) ) { + global $post; + if ( ! $post ) { + return ''; + } + $post_id = $post->ID; +} else { + $post_id = $block->context['postId']; +} + +$format = get_post_format( $post_id ); + +// Default to standard if no format is set +if ( ! $format ) { + $format = 'standard'; +} + +$format_string = get_post_format_string( $format ); +$format_link = get_post_format_link( $format ); + +// For standard format, use custom link function from feed.php +if ( ! $format_link && 'standard' === $format ) { + if ( function_exists( 'autonomie_get_post_format_link' ) ) { + $format_link = autonomie_get_post_format_link( $format ); + } +} + +// Get icons from auto-generated icon paths +$icons = autonomie_get_post_format_icon_paths(); + +$icon_path = isset( $icons[ $format ] ) ? $icons[ $format ] : $icons['standard']; +$icon_svg = sprintf( + '<svg class="format-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" focusable="false"><path d="%s"></path></svg>', + esc_attr( $icon_path ) +); + +// Build wrapper attributes +$wrapper_attributes = get_block_wrapper_attributes( + array( + 'class' => 'format-' . esc_attr( $format ), + ) +); +?> + +<div <?php echo $wrapper_attributes; ?>> + <?php if ( $format_link ) : ?> + <a href="<?php echo esc_url( $format_link ); ?>" class="u-url url" itemprop="url"> + <?php echo $icon_svg; ?> + <span class="format-text"><?php echo esc_html( $format_string ); ?></span> + </a> + <?php else : ?> + <span class="format-display"> + <?php echo $icon_svg; ?> + <span class="format-text"><?php echo esc_html( $format_string ); ?></span> + </span> + <?php endif; ?> +</div> diff --git a/src/post-format/style.scss b/src/post-format/style.scss new file mode 100644 index 00000000..6f3c050e --- /dev/null +++ b/src/post-format/style.scss @@ -0,0 +1,22 @@ +/** + * Post Format Block Styles - Frontend and Editor + */ + +.wp-block-autonomie-post-format { + display: inline-block; + + a, + .format-display { + text-decoration: none; + display: inline-flex; + align-items: center; + gap: 0.3em; + } + + .format-icon { + width: 1em; + height: 1em; + flex-shrink: 0; + fill: currentColor; + } +} diff --git a/style.css b/style.css index 046fc969..aea7aade 100644 --- a/style.css +++ b/style.css @@ -3,19 +3,447 @@ * Theme URI: https://github.com/pfefferle/Autonomie * Author: Matthias Pfefferle * Author URI: https://notiz.blog/ - * Description: Autonomie is a highly semantic, responsive, accessible and seo optimized WordPress Theme. It provides HTML5 templates refined with microformats, microformats v2 and microdata (Schema.org). Autonomie supports a lot of OpenWeb plugins and is fully IndieWeb compatible. - * Version: 1.0.0 + * Description: Autonomie is a highly semantic, responsive, accessible and SEO-optimized Full Site Editing (FSE) WordPress theme. It provides HTML5 templates refined with microformats, microformats v2 and microdata (Schema.org). Autonomie supports the IndieWeb and is fully compatible with modern block-based editing. + * Version: 2.0.2 * License: MIT * License URI: https://opensource.org/licenses/MIT - * Tags: custom-menu, custom-colors, custom-header, custom-logo, featured-image-header, flexible-header, sticky-post, microformats, rtl-language-support, translation-ready, full-width-template, post-formats, threaded-comments, footer-widgets, one-column, editor-style, featured-images, theme-options, blog, news, photography, wide-blocks + * Tags: block-templates, block-patterns, full-site-editing, microformats, rtl-language-support, translation-ready, post-formats, threaded-comments, one-column, editor-style, featured-images, blog, accessibility-ready, indieweb, semantic-html, wide-blocks * Text Domain: autonomie - * Tested up to: 5.5 - * Requires PHP: 5.6 + * Requires at least: 6.4 + * Tested up to: 6.7 + * Requires PHP: 7.4 * * GitHub Theme URI: pfefferle/autonomie * GitHub Theme URI: https://github.com/pfefferle/autonomie * * Use it to make something cool, have fun, and share what you've learned with others. - */@font-face{font-family:"Lato";font-style:normal;font-weight:normal;font-display:swap;src:url("assets/font/lato/lato-v13-latin-300.eot");src:local("Lato Light"),local("Lato-Light"),url("assets/font/lato/lato-v13-latin-300.eot?#iefix") format("embedded-opentype"),url("assets/font/lato/lato-v13-latin-300.woff2") format("woff2"),url("assets/font/lato/lato-v13-latin-300.woff") format("woff"),url("assets/font/lato/lato-v13-latin-300.svg#Lato") format("svg")}@font-face{font-family:"Lato";font-style:italic;font-weight:normal;font-display:swap;src:url("assets/font/lato/lato-v13-latin-300italic.eot");src:local("Lato Light Italic"),local("Lato-LightItalic"),url("assets/font/lato/lato-v13-latin-300italic.eot?#iefix") format("embedded-opentype"),url("assets/font/lato/lato-v13-latin-300italic.woff2") format("woff2"),url("assets/font/lato/lato-v13-latin-300italic.woff") format("woff"),url("assets/font/lato/lato-v13-latin-300italic.svg#Lato") format("svg")}@font-face{font-family:"Lato";font-style:normal;font-weight:bold;font-display:swap;src:url("assets/font/lato/lato-v13-latin-700.eot");src:local("Lato Bold"),local("Lato-Bold"),url("assets/font/lato/lato-v13-latin-700.eot?#iefix") format("embedded-opentype"),url("assets/font/lato/lato-v13-latin-700.woff2") format("woff2"),url("assets/font/lato/lato-v13-latin-700.woff") format("woff"),url("assets/font/lato/lato-v13-latin-700.svg#Lato") format("svg")}@font-face{font-family:"Lato";font-style:italic;font-weight:bold;font-display:swap;src:url("assets/font/lato/lato-v13-latin-700italic.eot");src:local("Lato Bold Italic"),local("Lato-BoldItalic"),url("assets/font/lato/lato-v13-latin-700italic.eot?#iefix") format("embedded-opentype"),url("assets/font/lato/lato-v13-latin-700italic.woff2") format("woff2"),url("assets/font/lato/lato-v13-latin-700italic.woff") format("woff"),url("assets/font/lato/lato-v13-latin-700italic.svg#Lato") format("svg")}@font-face{font-family:"Merriweather";font-style:normal;font-weight:normal;font-display:swap;src:url("assets/font/merriweather/merriweather-v15-latin-300.eot");src:local("Merriweather Light"),local("Merriweather-Light"),url("assets/font/merriweather/merriweather-v15-latin-300.eot?#iefix") format("embedded-opentype"),url("assets/font/merriweather/merriweather-v15-latin-300.woff2") format("woff2"),url("assets/font/merriweather/merriweather-v15-latin-300.woff") format("woff"),url("assets/font/merriweather/merriweather-v15-latin-300.svg#Merriweather") format("svg")}@font-face{font-family:"Merriweather";font-style:italic;font-weight:normal;font-display:swap;src:url("assets/font/merriweather/merriweather-v15-latin-300italic.eot");src:local("Merriweather Light Italic"),local("Merriweather-LightItalic"),url("assets/font/merriweather/merriweather-v15-latin-300italic.eot?#iefix") format("embedded-opentype"),url("assets/font/merriweather/merriweather-v15-latin-300italic.woff2") format("woff2"),url("assets/font/merriweather/merriweather-v15-latin-300italic.woff") format("woff"),url("assets/font/merriweather/merriweather-v15-latin-300italic.svg#Merriweather") format("svg")}@font-face{font-family:"Merriweather";font-style:italic;font-weight:bold;font-display:swap;src:url("assets/font/merriweather/merriweather-v15-latin-700italic.eot");src:local("Merriweather Bold Italic"),local("Merriweather-BoldItalic"),url("assets/font/merriweather/merriweather-v15-latin-700italic.eot?#iefix") format("embedded-opentype"),url("assets/font/merriweather/merriweather-v15-latin-700italic.woff2") format("woff2"),url("assets/font/merriweather/merriweather-v15-latin-700italic.woff") format("woff"),url("assets/font/merriweather/merriweather-v15-latin-700italic.svg#Merriweather") format("svg")}@font-face{font-family:"Merriweather";font-style:normal;font-weight:bold;font-display:swap;src:url("assets/font/merriweather/merriweather-v15-latin-700.eot");src:local("Merriweather Bold"),local("Merriweather-Bold"),url("assets/font/merriweather/merriweather-v15-latin-700.eot?#iefix") format("embedded-opentype"),url("assets/font/merriweather/merriweather-v15-latin-700.woff2") format("woff2"),url("assets/font/merriweather/merriweather-v15-latin-700.woff") format("woff"),url("assets/font/merriweather/merriweather-v15-latin-700.svg#Merriweather") format("svg")}@font-face{font-family:"OpenWeb Icons";src:url("assets/font/openwebicons/openwebicons.eot");src:url("assets/font/openwebicons/openwebicons.eot?#iefix") format("embedded-opentype"),url("assets/font/openwebicons/openwebicons.woff2") format("woff2"),url("assets/font/openwebicons/openwebicons.woff") format("woff"),url("assets/font/openwebicons/openwebicons.ttf") format("truetype"),url("assets/font/openwebicons/openwebicons.svg#openweb_iconsregular") format("svg");font-weight:normal;font-style:normal;font-display:swap}[class^=openwebicons-]:before,[class*=" openwebicons-"]:before{font-family:"OpenWeb Icons";font-weight:normal;font-style:normal;font-display:swap;display:inline-block;text-decoration:none;vertical-align:center;speak:none;font-smoothing:antialiased;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;margin-right:5px}a [class^=openwebicons-],a [class*=" openwebicons-"]{display:inline-block;text-decoration:inherit}li[class^=openwebicons-],li[class*=" openwebicons-"]{display:block}.openwebicons-apml:before{content:""}.openwebicons-open-share:before{content:""}.openwebicons-open-share-simple:before{content:""}.openwebicons-share:before{content:""}.openwebicons-share-simple:before{content:""}.openwebicons-feed:before{content:""}.openwebicons-feed-simple:before{content:""}.openwebicons-ostatus:before{content:""}.openwebicons-ostatus-simple:before{content:""}.openwebicons-opml:before{content:""}.openwebicons-activity:before{content:""}.openwebicons-activity-simple:before{content:""}.openwebicons-microformats:before{content:""}.openwebicons-geo:before{content:""}.openwebicons-opensearch:before{content:""}.openwebicons-oauth:before{content:""}.openwebicons-openid:before{content:""}.openwebicons-semantic-web:before{content:""}.openwebicons-rdf:before{content:""}.openwebicons-rdfa:before{content:""}.openwebicons-owl:before{content:""}.openwebicons-dataportability:before{content:""}.openwebicons-federated:before{content:""}.openwebicons-web-intents:before{content:""}.openwebicons-open-web:before{content:""}.openwebicons-xmpp:before{content:""}.openwebicons-html5:before{content:""}.openwebicons-css3:before{content:""}.openwebicons-connectivity:before{content:""}.openwebicons-semantics:before{content:""}.openwebicons-3deffects:before{content:""}.openwebicons-device-access:before{content:""}.openwebicons-multimedia:before{content:""}.openwebicons-offline-storage:before{content:""}.openwebicons-perfintegration:before{content:""}.openwebicons-git:before{content:""}.openwebicons-webhooks:before{content:""}.openwebicons-osi:before{content:""}.openwebicons-opensource:before{content:""}.openwebicons-opengraph:before{content:""}.openwebicons-epub:before{content:""}.openwebicons-qr:before{content:""}.openwebicons-foaf:before{content:""}.openwebicons-info-card:before{content:""}.openwebicons-browserid:before{content:""}.openwebicons-remote-storage:before{content:""}.openwebicons-persona:before{content:""}.openwebicons-odata:before{content:""}.openwebicons-markdown:before{content:""}.openwebicons-tosdr:before{content:""}.openwebicons-pub:before{content:""}.openwebicons-sub:before{content:""}.openwebicons-hubbub:before{content:""}.openwebicons-pubsubhubbub:before{content:""}.openwebicons-cc:before{content:""}.openwebicons-cc-by:before{content:""}.openwebicons-cc-nc:before{content:""}.openwebicons-cc-nc-eu:before{content:""}.openwebicons-cc-nc-jp:before{content:""}.openwebicons-cc-sa:before{content:""}.openwebicons-cc-nd:before{content:""}.openwebicons-cc-public:before{content:""}.openwebicons-cc-zero:before{content:""}.openwebicons-cc-share:before{content:""}.openwebicons-cc-remix:before{content:""}.openwebicons-hatom:before{content:""}.openwebicons-hresume:before{content:""}.openwebicons-hcard-add:before{content:""}.openwebicons-hcard-download:before{content:""}.openwebicons-indieweb:before{content:""}.openwebicons-indiewebcamp:before{content:""}.openwebicons-webfinger:before{content:""}.openwebicons-bitcoin:before{content:""}.openwebicons-bitcoin-simple:before{content:""}.openwebicons-svg:before{content:""}.openwebicons-json-ld:before{content:""}.openwebicons-tent:before{content:""}.openwebicons-copyleft:before{content:""}.openwebicons-gnu:before{content:""}.openwebicons-ofl-attribution:before{content:""}.openwebicons-ofl-share:before{content:""}.openwebicons-ofl-renaming:before{content:""}.openwebicons-ofl-selling:before{content:""}.openwebicons-ofl-embedding:before{content:""}.openwebicons-webmention:before{content:""}.openwebicons-javascript:before{content:""}.openwebicons-wtfpl:before{content:""}.openwebicons-ofl:before{content:""}.openwebicons-wordpress:before{content:""}.openwebicons-owncloud:before{content:""}.openwebicons-cccs:before{content:""}.openwebicons-barcamp:before{content:""}.openwebicons-indiehosters:before{content:""}.openwebicons-known:before{content:""}.openwebicons-mozilla:before{content:""}.openwebicons-unhosted:before{content:""}.openwebicons-diaspora:before{content:""}.openwebicons-indie:before{content:""}.openwebicons-ghost:before{content:""}.openwebicons-webplattform:before{content:""}.openwebicons-opensourcedesign:before{content:""}.openwebicons-opendesign:before{content:""}.openwebicons-gnusocial:before{content:""}.openwebicons-gnusocial-simple:before{content:""}.openwebicons-mastodon:before{content:""}.openwebicons-jsonfeed:before{content:""}.openwebicons-pump-io:before{content:""}.openwebicons-friendica:before{content:""}.openwebicons-hubzilla:before{content:""}.openwebicons-fediverse:before{content:""}.openwebicons-mastodon-simple:before{content:""}.openwebicons-activitypub:before{content:""}.openwebicons-wapuu:before{content:""}.openwebicons-micro-blog:before{content:""}.openwebicons-indieauth:before{content:""}.openwebicons-apml-colored:before{content:"";color:#AFDD63}.openwebicons-open-share-colored:before{content:"";color:#538439}.openwebicons-share-colored:before{content:"";color:#538439}.openwebicons-feed-colored:before{content:"";color:#EA680B}.openwebicons-ostatus-colored:before{content:"";color:#FF6600}.openwebicons-opml-colored:before{content:"";color:#2490A1}.openwebicons-activity-colored:before{content:"";color:#4FB2D9}.openwebicons-microformats-colored:before{content:"";color:#85BC07}.openwebicons-geo-colored:before{content:"";color:#990000}.openwebicons-opensearch-colored:before{content:"";color:#5050f3}.openwebicons-html5-colored:before{content:"";color:#E34C26}.openwebicons-git-colored:before{content:"";color:#F05133}.openwebicons-osi-colored:before{content:"";color:#3DA639}.openwebicons-opensource-colored:before{content:"";color:#3DA639}.openwebicons-epub-colored:before{content:"";color:#85b916}.openwebicons-info-card-colored:before{content:"";color:#BF84E5}.openwebicons-remote-storage-colored:before{content:"";color:#ff4e09}.openwebicons-odata-colored:before{content:"";color:#EA680B}.openwebicons-pub-colored:before{content:"";color:#99cc00}.openwebicons-sub-colored:before{content:"";color:#ffff00}.openwebicons-hubbub-colored:before{content:"";color:#ff6fcf}.openwebicons-javascript-colored:before{content:"";color:#f0db4f}.openwebicons-gnusocial-colored:before{content:"";color:#a22430}.openwebicons-mastodon-colored:before{content:"";color:#2b90d9}.openwebicons-mastodon-simple-colored:before{content:"";color:#2b90d9}/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:rgba(0,0,0,0)}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{color:#373d3f;color:var(--color-dark-gray);font-size:1em;line-height:1.6}::-moz-selection,::selection{background:#b3d4fc;text-shadow:none}audio,canvas,img,svg,video{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}.browsehappy,.browserupgrade{background:#4f575a;background:var(--color-gray);color:#000;margin:.2em 0;padding:.2em 0}.site-header{display:block;position:relative;width:100%;border-bottom:1px solid #d1d5d7}.site-header .site-branding{margin:0 auto;width:700px}.site-header .site-branding:before,.site-header .site-branding:after{content:" ";display:table}.site-header .site-branding:after{clear:both}.site-header .custom-logo{margin-top:17px;margin-right:5px;vertical-align:top}.site-header #site-title{margin:15px 0 15px 0;padding:0;display:inline-block;font-size:1.5em;font-family:"Lato",sans-serif;font-weight:bold;line-height:1.5}.site-header #site-title a{text-decoration:none}.site-header #site-title a:hover{text-decoration:underline}.site-header .page-banner{width:100%;border-top:1px solid #d1d5d7}.site-header .page-banner a{color:#373d3f;color:var(--color-dark-gray)}.site-header .page-banner .page-branding{width:100%;margin:50px 0}.site-header .page-banner .page-branding.author{text-align:center}.site-header .page-banner .page-branding.author .avatar{display:block;margin:12.5px auto;border:5px solid #fff}.site-header .page-banner .page-branding.author #page-title,.site-header .page-banner .page-branding.author #page-description,.site-header .page-banner .page-branding.author #page-meta,.site-header .page-banner .page-branding.author #page-feed{text-align:center}.site-header .page-banner .page-branding.author #page-title{font-size:3em;padding:12.5px 0}.site-header .page-banner .page-branding.author #page-description{padding:12.5px 0}.site-header .page-banner .page-branding.author #page-meta,.site-header .page-banner .page-branding.author #page-feed{font-size:1em;margin:0 auto}.site-header .page-banner #page-title,.site-header .page-banner #page-description,.site-header .page-banner #page-meta,.site-header .page-banner #page-feed{display:block;margin:0 auto;text-align:left;color:#373d3f;color:var(--color-dark-gray);font-size:1.5em;width:900px}.site-header .page-banner #page-feed{font-size:1em}.site-header .page-banner #page-title{font-size:2em}.site-header .search-form{display:inline-block;margin:15px 0 15px 0;padding:0;float:right}.site-header search{display:inline-block;float:right}.custom-header .page-banner{width:100%;position:relative;height:75vh;max-height:75%;min-height:500px;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover}.custom-header .page-banner a{color:#fff}.custom-header .page-banner #page-title,.custom-header .page-banner #page-description,.custom-header .page-banner #page-meta{color:#fff}.custom-header .page-banner .page-branding{position:absolute;left:0;bottom:0;width:100%}#primary{width:100%;display:block;margin:0 auto}#colophon{width:100%;background-color:#fafafb;background-color:var(--color-background-gray);margin-top:100px;content-visibility:auto}#colophon:before,#colophon:after{content:" ";display:table}#colophon:after{clear:both}#site-generator{clear:both;padding:50px 0;text-align:center;background-color:#fff;background-color:var(--color-white)}.screen-reader-text,.assistive-text{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);position:absolute !important}.error404 .entry-content .widget{float:left;width:33%}.error404 .entry-content .widget .widgettitle,.error404 .entry-content .widget ul{margin-right:1em}.error404 .entry-content .widget_tag_cloud{clear:both;float:none;width:100%}.post .notice,.error404 #searchform{background:#677275;background:var(--color-light-gray);display:block;padding:1em}.avatar{-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%}#comments{clear:both}#comments input[type=text],#comments input[type=password],#comments input[type=email],#comments input[type=url],#comments textarea{display:block;width:95%}#comments .comment-form-cookies-consent label[for=wp-comment-cookies-consent]{display:inline;margin-left:10px}#comments input{display:block}#comments input[type=checkbox]{display:inline}#comments label{display:block;color:#4f575a;color:var(--color-gray)}#comments .says{display:none}#comments h2#comments-title{margin-top:0;padding-top:0}article.comment{display:block;position:relative;padding:25px 0;line-height:2}#respond .form-allowed-tags{clear:both;width:98%}#respond .form-allowed-tags code{display:block}.form-allowed-tags{display:none}.required-field-message{display:block}#comments-title,#reply-title{padding:0;margin:0;font-size:2em}a.comment-reply-link{font-size:12px;height:16px;line-height:16px}a.comment-reply-link:before{font-family:"Dashicons";content:"";padding-right:5px;text-decoration:none}li.comment{list-style:none outside none;margin:5px 0}li.comment .comment-meta cite{font-style:normal;font-weight:normal}li.comment img.avatar{float:left}.comment-meta,.comment-notes,.logged-in-as{display:block;font-family:Lato,sans-serif;color:#4f575a;color:var(--color-gray)}.comment-meta address{line-height:1.2}.comment-meta time{font-size:.7em}.comment-meta a,.comment-reply-link,.logged-in-as a{color:#4f575a;color:var(--color-gray);text-decoration:none}.comment-meta a:hover,.comment-reply-link:hover,.logged-in-as a:hover{text-decoration:underline}ol.commentlist{margin:0;padding:0}ol.commentlist .avatar{float:left;margin-right:10px;width:48px;height:48px}ul.children{padding-left:20px}.comment-content{font-size:1.1em;line-height:2em}.comment-content cite{font-style:normal;font-weight:normal;font-size:12px}.bypostauthor{color:inherit}.comment-respond{padding:25px 0}.nocomments{text-align:center;font-size:2em}.single #primary article.has-full-width-featured-image,.page #primary article.has-full-width-featured-image{margin-top:0px}.has-full-width-featured-image .entry-header{margin:0;width:100%;max-width:100%;position:relative;height:75vh;max-height:75%;min-height:500px;margin-bottom:50px;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover}.has-full-width-featured-image .entry-header .entry-title,.has-full-width-featured-image .entry-header .entry-meta,.has-full-width-featured-image .entry-header .entry-format{color:#fff}.has-full-width-featured-image .entry-header .entry-title a,.has-full-width-featured-image .entry-header .entry-meta a,.has-full-width-featured-image .entry-header .entry-format a{color:#fff}.has-full-width-featured-image .entry-header .entry-meta.post-format .entry-format::before{color:#fff}.has-full-width-featured-image .entry-header .entry-header-wrapper{position:absolute;left:0;bottom:0;width:100%;margin-bottom:50px}.has-full-width-featured-image .entry-header .entry-header-wrapper>*{margin:0 auto;width:700px}.has-full-width-featured-image .entry-header .entry-header-wrapper .entry-meta{margin-top:15px}.has-full-width-featured-image .entry-header .avatar{border:2px solid #fff}#primary article:first-child{margin-top:50px}.home #primary article:after,.archive #primary article:after{content:"";border-top:1px solid #d1d5d7;width:200px;display:block;text-align:center;margin:0 auto;margin-top:100px}h1.entry-title,h2.entry-title,h3.entry-title,h4.entry-title{margin:0;padding:0;font-size:2em;line-height:1.2em}h1.entry-title a,h2.entry-title a,h3.entry-title a,h4.entry-title a{hyphens:auto;text-overflow:ellipsis;overflow:hidden;font-size:1em;line-height:1;text-decoration:none;color:#373d3f;color:var(--color-dark-gray)}h1.entry-title a:hover,h2.entry-title a:hover,h3.entry-title a:hover,h4.entry-title a:hover{text-decoration:underline}.format-quote .entry-content,.format-aside .entry-content,.format-status .entry-content{font-size:1.5em}.type-page h1.entry-title,.type-page h2.entry-title,.type-page h3.entry-title,.type-page h4.entry-title,.format-standard h1.entry-title,.format-standard h2.entry-title,.format-standard h3.entry-title,.format-standard h4.entry-title{font-size:3.5em}.entry-content,.entry-summary{color:#373d3f;color:var(--color-dark-gray);font-style:normal;font-size:1.2em;margin:0 auto}.entry-content .wp-block-cover-image,.entry-content .alignfull,.entry-summary .wp-block-cover-image,.entry-summary .alignfull{max-width:100%;width:100%}.entry-content .alignwide,.entry-summary .alignwide{width:auto;max-width:900px}.entry-content p.has-background,.entry-summary p.has-background{width:100%;max-width:100%;padding:30px calc((100% - 700px)/2);margin:0}.entry-content a,.entry-summary a{text-decoration:underline}@supports(text-decoration: underline #9bc53d){.entry-content a,.entry-summary a{text-decoration:underline #9bc53d;text-decoration:underline var(--color-android-green);text-decoration-thickness:3px;text-underline-offset:6px}}@supports(text-decoration: underline #9bc53d){.entry-content a:hover,.entry-summary a:hover{text-decoration:underline #fc0;text-decoration:underline var(--color-usc-gold);text-decoration-thickness:3px;text-underline-offset:6px}}.entry-actions{display:block}.entry-actions:before,.entry-actions:after{content:" ";display:table}.entry-actions:after{clear:both}#entry-share{display:inline-block;font-size:1em;font-family:"Lato",sans-serif;background-color:#fafafb;background-color:var(--color-background-gray);border:none;border-radius:3px;color:#373d3f;color:var(--color-dark-gray);line-height:inherit;padding:3px 7px;text-decoration:none;float:right}#entry-share:hover{background-color:#eef4e2;color:#40531e}#entry-share:before{display:inline-block;font:normal 1.1em "Dashicons";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;margin-right:0;position:relative;text-decoration:none;top:2px;vertical-align:text-middle;margin-right:5px;content:""}.page-link,.page-links{margin-bottom:1em}.entry-meta,.wp-caption-text,.gallery-caption,.page-link,.page-links{font-family:"Lato",sans-serif;clear:both;color:#4f575a;color:var(--color-gray);display:block}.entry-meta a,.wp-caption-text a,.gallery-caption a,.page-link a,.page-links a{color:#4f575a;color:var(--color-gray);text-decoration:none}.entry-meta a:hover,.wp-caption-text a:hover,.gallery-caption a:hover,.page-link a:hover,.page-links a:hover{text-decoration:underline}.entry-meta .avatar,.wp-caption-text .avatar,.gallery-caption .avatar,.page-link .avatar,.page-links .avatar{float:left;margin-right:10px}.entry-footer .author:before,.entry-footer .author:after{content:" ";display:table}.entry-footer .author:after{clear:both}.entry-meta{position:relative;margin-top:15px;margin-bottom:15px}.entry-meta.post-format{padding:0;margin:0;margin-bottom:10px}.entry-meta.post-format a,.entry-meta.post-format span,.entry-meta.post-format .entry-format:before{color:#b6bdbf;color:var(--color-lighter-gray);font-weight:bold;text-transform:lowercase}.entry-meta.post-format .entry-format:before{display:inline-block;font:normal 1.1em "Dashicons";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;isolation:isolate;margin-right:5px;position:relative;text-decoration:none;top:2px;vertical-align:text-middle;color:#b6bdbf;color:var(--color-lighter-gray)}.entry-meta .entry-format{line-height:1}.entry-meta address{font-size:1em;line-height:1.2;color:#373d3f;color:var(--color-dark-gray)}.entry-meta .entry-date,.entry-meta .entry-duration{font-size:.8em}.comments-link{font-size:1em;display:inline-block}.comments-link:before{display:inline-block;font:normal 1.1em "Dashicons";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;margin-right:0;position:relative;text-decoration:inherit;top:2px;vertical-align:text-middle;margin-right:5px;content:""}.tag-links,.cat-links{margin:10px 0;display:block}.tag-links ul,.cat-links ul{margin:0;padding:0}.tag-links li,.cat-links li{display:inline-block;margin:10px 8px 0 0;list-style-type:none;font-size:1.2em}.tag-links li a,.cat-links li a{font-size:1em;font-family:"Lato",sans-serif;background-color:#fafafb;background-color:var(--color-background-gray);border-radius:3px;color:#373d3f;color:var(--color-dark-gray);line-height:1;padding:5px 8px;text-decoration:none}.tag-links li a:hover,.cat-links li a:hover{background-color:#eef4e2;color:#40531e}.tag-links li a,.cat-links li a{font-size:.8em}#primary article{padding:0;margin-top:100px;position:relative}#primary article:before,#primary article:after{content:" ";display:table}#primary article:after{clear:both}#primary article .sep:first-of-type{display:none}#primary article.format-quote .post-format .entry-format:before{content:""}#primary article.format-aside .post-format .entry-format:before{content:""}#primary article.format-video .post-format .entry-format:before{content:""}#primary article.format-audio .post-format .entry-format:before{content:""}#primary article.format-image .post-format .entry-format:before,#primary article.format-photo .post-format .entry-format:before{content:""}#primary article.format-gallery .post-format .entry-format:before{content:""}#primary article.format-link .post-format .entry-format:before{content:""}#primary article.format-status .post-format .entry-format:before{content:""}#primary article.format-standard .post-format .entry-format:before{content:""}#primary article.type-page .post-format .entry-type-page:before{content:""}.edit-link{position:absolute;right:0;top:50px}.edit-link a{font-size:1em;font-family:"Lato",sans-serif;background-color:#fafafb;background-color:var(--color-background-gray);border-radius:3px;color:#373d3f;color:var(--color-dark-gray);line-height:1;padding:5px 8px;text-decoration:none}.edit-link a:hover{background-color:#eef4e2;color:#40531e}.more-link{display:block;font-size:.8em;color:#4f575a;color:var(--color-gray)}.entry-content .has-orioles-orange-background-color{background-color:#fa5b0f}.entry-content .has-orioles-orange-color{color:#fa5b0f}.entry-content .has-blue-background-color{background-color:#5fa7c5}.entry-content .has-blue-color{color:#5fa7c5}.entry-content .has-lighter-blue-background-color{background-color:#229fd8}.entry-content .has-lighter-blue-color{color:#229fd8}.entry-content .has-blue-jeans-background-color{background-color:#5bc0eb}.entry-content .has-blue-jeans-color{color:#5bc0eb}.entry-content .has-usc-gold-background-color{background-color:#fc0}.entry-content .has-usc-gold-color{color:#fc0}.entry-content .has-gargoyle-gas-background-color{background-color:#fde74c}.entry-content .has-gargoyle-gas-color{color:#fde74c}.entry-content .has-yellow-background-color{background-color:#fff9c0}.entry-content .has-yellow-color{color:#fff9c0}.entry-content .has-android-green-background-color{background-color:#9bc53d}.entry-content .has-android-green-color{color:#9bc53d}.entry-content .has-white-background-color{background-color:#fff;background-color:var(--color-white)}.entry-content .has-white-color{color:#fff;color:var(--color-white)}.entry-content .has-very-light-gray-background-color{background-color:#eee}.entry-content .has-very-light-gray-color{color:#eee}.entry-content .has-very-dark-gray-background-color{background-color:#444}.entry-content .has-very-dark-gray-color{color:#444}.sticky{color:inherit}.wp-block-footnotes{border-top:solid 1px #d3d3d3;margin-top:2em;padding-top:2em;font-size:.8em;padding-left:0;list-style-position:inside}.site-navigation{padding:0;margin:0 auto;border:0;width:700px;font-family:"Lato",sans-serif}.site-navigation:before,.site-navigation:after{content:" ";display:table}.site-navigation:after{clear:both}.site-navigation ul{border-top:1px solid #d1d5d7;position:relative;z-index:597;list-style:none;margin:0;padding:7.5px 0}.site-navigation ul:before,.site-navigation ul:after{content:" ";display:table}.site-navigation ul:after{clear:both}.site-navigation ul a{border-top:0 none;color:#373d3f;color:var(--color-dark-gray);display:block;line-height:150%;padding:7.5px 0;margin-right:20px;text-decoration:none}.site-navigation ul li{float:left;min-height:1px;vertical-align:middle}.site-navigation ul li.hover,.site-navigation ul li:hover,.site-navigation ul li.focus{cursor:default;position:relative;z-index:599}.site-navigation ul li.hover>ul,.site-navigation ul li:hover>ul,.site-navigation ul li.focus>ul{visibility:visible}.site-navigation ul li.hover>a,.site-navigation ul li:hover>a,.site-navigation ul li.focus>a{text-decoration:underline}.site-navigation ul li.page_item_has_children>a:after,.site-navigation ul li.menu-item-has-children>a:after{content:"^";margin-left:5px;text-decoration:none;font-weight:bold;display:inline-block;transform:rotate(180deg)}.site-navigation ul li .last ul{left:auto;right:0}.site-navigation ul li .last ul ul{left:auto;right:99.5%}.site-navigation ul ul{border:none;background-color:#fff;background-color:var(--color-white);box-shadow:0px 8px 16px 0px rgba(0,0,0,.2);margin-top:0;min-width:190px;position:absolute;text-transform:none;top:100%;visibility:hidden;z-index:598}.site-navigation ul ul a{color:#373d3f;color:var(--color-dark-gray);border-top:0 none;line-height:150%;padding:16px 20px}.site-navigation ul ul li{float:none;font-weight:normal;position:relative}.site-navigation ul ul li:last-child>a{-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box}.site-navigation ul ul li:last-child:hover>a,.site-navigation ul ul li:last-child.focus>a{-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box}.site-navigation ul ul li.page_item_has_children>a:after,.site-navigation ul ul li.menu-item-has-children>a:after{content:">";text-decoration:none;font-weight:bold;transform:none;margin-left:5px}.site-navigation ul ul ul{border-top:0 none;left:190px;top:0;width:190px}.site-navigation li{list-style:none;margin:0;padding:0}#nav-above{display:block;margin-top:100px}#nav-above:before,#nav-above:after{content:" ";display:table}#nav-above:after{clear:both}#nav-above .nav-previous{float:left;color:#4f575a;color:var(--color-gray);border:1px solid #d1d5d7;background-color:#fff;background-color:var(--color-white);border-radius:50px;padding:10px 20px;display:inline-block;line-height:1;text-decoration:none}#nav-above .nav-previous a{text-decoration:none;color:#4f575a;color:var(--color-gray)}#nav-above .nav-previous:focus{outline:0}#nav-above .nav-previous:hover,#nav-above .nav-previous:hover:visited,#nav-above .nav-previous:active,#nav-above .nav-previous:active:visited,#nav-above .nav-previous:hover a,#nav-above .nav-previous:active a{border:1px solid #4f575a;border-color:var(--color-gray);background-color:#4f575a;background-color:var(--color-gray);color:#fff;color:var(--color-white)}#nav-above .nav-previous:visited{color:#4f575a;color:var(--color-gray)}#nav-above .nav-next{float:right;color:#4f575a;color:var(--color-gray);border:1px solid #d1d5d7;background-color:#fff;background-color:var(--color-white);border-radius:50px;padding:10px 20px;display:inline-block;line-height:1;text-decoration:none}#nav-above .nav-next a{text-decoration:none;color:#4f575a;color:var(--color-gray)}#nav-above .nav-next:focus{outline:0}#nav-above .nav-next:hover,#nav-above .nav-next:hover:visited,#nav-above .nav-next:active,#nav-above .nav-next:active:visited,#nav-above .nav-next:hover a,#nav-above .nav-next:active a{border:1px solid #4f575a;border-color:var(--color-gray);background-color:#4f575a;background-color:var(--color-gray);color:#fff;color:var(--color-white)}#nav-above .nav-next:visited{color:#4f575a;color:var(--color-gray)}#nav-below .nav-previous{position:fixed;left:20px;bottom:30%}#nav-below .nav-next{position:fixed;right:20px;bottom:30%}#nav-below a{color:rgba(0,0,0,.2);text-decoration:none;font-size:5em;margin:100px 0}#nav-below a:hover{color:#373d3f;color:var(--color-dark-gray)}#post-nav .previous-post,#post-nav .next-post{width:49%;display:inline-block;position:relative}#post-nav img{position:absolute;top:0;left:0;object-fit:cover;width:49%;height:200px}#archive-nav{margin:0 auto;display:block;width:auto;text-align:center;margin-top:100px}#archive-nav .page-numbers{font-size:1.5em;display:inline-block;margin:0 5px;color:#677275;color:var(--color-light-gray)}#archive-nav a{text-decoration:none}#archive-nav a:hover{text-decoration:underline;color:#373d3f;color:var(--color-dark-gray)}#archive-nav .current{color:#373d3f;color:var(--color-dark-gray)}.menu-toggle{display:none}table{*border-collapse:collapsed;background-color:rgba(0,0,0,0);border-collapse:separate;border-left:0;border-spacing:0;margin:30px 0;overflow:scroll;overflow-x:scroll;table-layout:fixed;width:100%}table th{font-weight:bold}table thead th{vertical-align:bottom}table th,table td{border-top:1px solid #d1d5d7;padding:10px;text-align:left;vertical-align:top}table caption+thead tr:first-child th,table caption+thead tr:first-child td,table colgroup+thead tr:first-child th,table colgroup+thead tr:first-child td,table thead:first-child tr:first-child th,table thead:first-child tr:first-child td{border-top:0}table tbody+tbody{border-top:2px solid #d1d5d7}table caption+thead tr:first-child th,table caption+tbody tr:first-child th,table caption+tbody tr:first-child td,table colgroup+thead tr:first-child th,table colgroup+tbody tr:first-child th,table colgroup+tbody tr:first-child td,table thead:first-child tr:first-child th,table tbody:first-child tr:first-child th,table tbody:first-child tr:first-child td{border-top:0}table tbody tr:nth-child(odd) td,table tbody tr:nth-child(odd) th{background-color:#fafafb;background-color:var(--color-background-gray)}table tbody tr:hover td,table tbody tr:hover th{background-color:#fafafb;background-color:var(--color-background-gray)}.alignleft{display:inline;float:left;margin-right:2em;margin-top:.3em}.alignright{display:inline;float:right;margin-left:2em;margin-top:.3em}.aligncenter,.alignnone,.alignfull,.alignwide,.wp-post-image{clear:both;margin:1em auto;width:auto;max-width:100%;height:auto}.aligncenter{width:700px}.wp-block-image .aligncenter,.wp-block-image.aligncenter,.wp-block-image.alignright,.wp-block-image.alignleft,.entry-content .wp-block-image.alignright,.entry-content .wp-block-image.alignleft{width:auto}img.aligncenter,img.alignnone,img.alignfull,img.alignwide,img.wp-post-image{display:block}.size-auto,.size-full,.size-large,.size-medium,.size-thumbnail{max-width:100%;height:auto}.gallery{padding:1em 0}.gallery:before,.gallery:after{content:" ";display:table}.gallery:after{clear:both}.entry-content img,.entry-content figure,.entry-content object,.entry-content embed,.entry-content iframe,.entry-content audio,.entry-content video{max-width:100%}.entry-content img,.entry-content video{height:auto}.wp-audio-shortcode{margin:1em auto}.wp-embedded-content{width:100%}.gallery{margin:0 auto 18px}.gallery .gallery-item{float:left;margin:10px 0;text-align:center;width:33%}.gallery-columns-1 .gallery-item{width:100%}.gallery-columns-2 .gallery-item{width:50%}.gallery-columns-4 .gallery-item{width:25%}.gallery img{border-radius:5px}.gallery-columns-2 .attachment-medium{max-width:92%;height:auto}.gallery-columns-4 .attachment-thumbnail{max-width:84%;height:auto}.gallery .gallery-caption{color:#888;font-size:12px;margin:0 0 12px}.wp-caption-text{margin-top:.5em}.entry-content .wp-block-columns .wp-block-image{width:auto;max-width:auto}.wp-block-gallery .blocks-gallery-image figcaption,.wp-block-gallery .blocks-gallery-item figcaption{padding:.5rem}.entry-content .wp-block-gallery{margin:0 auto}.entry-attachment img{width:100%}#sidebar{font-weight:normal;display:block;position:relative;font-size:.9em;margin:50px auto;width:90%}#sidebar:before,#sidebar:after{content:" ";display:table}#sidebar:after{clear:both}#sidebar #colophon{margin-top:100px}#sidebar h2{font-size:1.2em;text-transform:uppercase;padding-bottom:.7em}#sidebar ul,#sidebar ol{margin:0;padding:0}#sidebar ul li,#sidebar ol li{list-style-type:none;line-height:1.5}#sidebar ul ul,#sidebar ul ol,#sidebar ol ul,#sidebar ol ol{margin-left:2em;padding:inherit}#sidebar input{color:#373d3f;color:var(--color-dark-gray)}#sidebar button,#sidebar input[type=submit]{color:#373d3f;color:var(--color-dark-gray);background-color:#fff;background-color:var(--color-white);border:none;padding:.5em 1em}#sidebar button:hover,#sidebar input[type=submit]:hover{background-color:#4f575a;background-color:var(--color-gray)}body{background-color:#fff;background-color:var(--color-background);color:#373d3f;color:var(--color-dark-gray);font-family:Lato,sans-serif;font-weight:400;word-wrap:break-word}*,::before,::after{box-sizing:inherit}address{font-style:normal}a{color:#373d3f;color:var(--color-dark-gray)}svg{fill:#373d3f;fill:var(--color-dark-gray)}a:hover{text-decoration:none}abbr{font-variant:small-caps}abbr[title]{border-bottom:1px dotted #4f575a;border-bottom-color:var(--color-gray);cursor:help}blockquote,figure{color:#4f575a;color:var(--color-gray);font-size:1em;font-style:italic;position:relative;line-height:1.5;font-family:"Merriweather",serif}blockquote small,blockquote figcaption,blockquote cite,figure small,figure figcaption,figure cite{color:#4f575a;color:var(--color-gray);display:block;font-size:.7em;font-style:normal;font-weight:normal}blockquote cite:before,blockquote small:before,figure cite:before,figure small:before{content:"— "}blockquote small,blockquote figcaption,blockquote cite{text-align:left}figure,.wp-block-pullquote{padding:0;margin:0}figure small,figure figcaption,figure cite,.wp-block-pullquote small,.wp-block-pullquote figcaption,.wp-block-pullquote cite{text-align:right}figure blockquote,.wp-block-pullquote blockquote{hyphens:auto;word-wrap:break-word;border:none;text-align:center}iframe{border:none;border-spacing:0}blockquote{border:0;border-left:3px solid #d1d5d7;margin:0;padding-left:30px;line-height:1.8}code{background-color:var(--color-dark-gray);color:var(--color-white);border-radius:.3em;padding:4px 5px 5px}code a{color:var(--color-white)}ins{background:#fff9c0;text-decoration:none}h1,h2,h3,h4,h5,h6{font-family:"Merriweather",serif;font-weight:100;margin-bottom:0;line-height:1.2em}h1{font-size:2.2em}h2{font-size:2em}h3{font-size:1.8em}h4{font-size:1.6em}h5{font-size:1.4em}h6{font-size:1.2em}hr{display:block;width:200px;margin:60px auto !important;border:0;border-top:1px solid #d1d5d7;text-align:center}pre{margin-top:50px;margin-bottom:50px;background-color:#000;color:#fff;display:block;padding:50px;white-space:pre-wrap;word-wrap:break-word}pre code{background-color:inherit;color:inherit;border-radius:inherit;padding:0;white-space:inherit}h1,h2,h3,h4,h5,h6,caption,figcaption{text-wrap:balance}p,ul,ol,blockquote{text-wrap:pretty}.wp-block-preformatted{background-color:inherit;color:inherit;border:1px solid #b6bdbf;border-color:var(--color-lighter-gray)}.wp-block-preformatted{background-color:inherit;color:inherit;border:1px solid #b6bdbf;border-color:var(--color-lighter-gray)}.wp-block-columns .aligncenter{width:auto;display:block}.wp-block-button.aligncenter{display:block;width:auto}.wp-block-cover p:not(.has-text-color){color:#fff}.entry-content .wp-block-cover{display:flex}input[type=text],input[type=password],input[type=email],input[type=url],textarea{border:none;border:1px solid #d1d5d7;border-color:var(--color-border-gray);border-radius:5px;padding:.5em}input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,input[type=url]:focus,textarea:focus{outline:0}input,textarea{max-width:90%;background-color:#fff;background-color:var(--color-white)}input[type=search]{border:1px solid #d1d5d7;border-color:var(--color-border-gray);border-radius:50px;padding:5px 15px;width:80%}input[type=search]:focus{outline:0}button,input[type=button],input[type=submit],input[type=reset],.wp-block-button a,.wp-block-button__link,.button{color:#4f575a;color:var(--color-gray);border:1px solid #d1d5d7;background-color:#fff;background-color:var(--color-white);border-radius:50px;padding:10px 20px;display:inline-block;line-height:1;text-decoration:none}button a,input[type=button] a,input[type=submit] a,input[type=reset] a,.wp-block-button a a,.wp-block-button__link a,.button a{text-decoration:none;color:#4f575a;color:var(--color-gray)}button:focus,input[type=button]:focus,input[type=submit]:focus,input[type=reset]:focus,.wp-block-button a:focus,.wp-block-button__link:focus,.button:focus{outline:0}button:hover,button:hover:visited,button:active,button:active:visited,button:hover a,button:active a,input[type=button]:hover,input[type=button]:hover:visited,input[type=button]:active,input[type=button]:active:visited,input[type=button]:hover a,input[type=button]:active a,input[type=submit]:hover,input[type=submit]:hover:visited,input[type=submit]:active,input[type=submit]:active:visited,input[type=submit]:hover a,input[type=submit]:active a,input[type=reset]:hover,input[type=reset]:hover:visited,input[type=reset]:active,input[type=reset]:active:visited,input[type=reset]:hover a,input[type=reset]:active a,.wp-block-button a:hover,.wp-block-button a:hover:visited,.wp-block-button a:active,.wp-block-button a:active:visited,.wp-block-button a:hover a,.wp-block-button a:active a,.wp-block-button__link:hover,.wp-block-button__link:hover:visited,.wp-block-button__link:active,.wp-block-button__link:active:visited,.wp-block-button__link:hover a,.wp-block-button__link:active a,.button:hover,.button:hover:visited,.button:active,.button:active:visited,.button:hover a,.button:active a{border:1px solid #4f575a;border-color:var(--color-gray);background-color:#4f575a;background-color:var(--color-gray);color:#fff;color:var(--color-white)}button:visited,input[type=button]:visited,input[type=submit]:visited,input[type=reset]:visited,.wp-block-button a:visited,.wp-block-button__link:visited,.button:visited{color:#4f575a;color:var(--color-gray)}a.button,a.button:hover,a.button:active{text-decoration:none}.search-form .search-submit{display:none}.wp-block-button{display:block}.wp-block-button.alignleft,.wp-block-button.alignright{clear:both;float:none}.wp-block-button a,.wp-block-button a:hover{text-decoration:none}.entry-footer{margin-top:30px}.entry-footer:before,.entry-footer:after{content:" ";display:table}.entry-footer:after{clear:both}.entry-footer .author{padding:40px;margin:70px auto;line-height:1.5;min-height:100px;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);background-color:rgba(0,0,0,.01);transform:rotate(-0.5deg)}.entry-footer .author .fn,.entry-footer .author .note,.entry-footer .author .subscribe{margin-left:140px;display:block}.entry-footer .author .fn{font-size:1.3em;margin-bottom:10px}.entry-footer .author .note{font-size:.9em;margin-bottom:10px;color:#4f575a;color:var(--color-gray)}.entry-footer .author .subscribe{font-size:.8em;color:#677275;color:var(--color-light-gray);vertical-align:bottom}.entry-footer #share-options{clear:both}.entry-footer #share-options input[type=text],.entry-footer #share-options input[type=url],.entry-footer #share-options textarea{display:block;width:95%}.entry-footer #share-options input{display:block}.entry-footer #share-options label{display:block;color:#4f575a;color:var(--color-gray)}.hidden{display:none !important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}ul.relsyn{display:block;margin:0;padding:0}ul.relsyn li{display:inline-block;margin:15px 8px 0 0;list-style-type:none;font-size:1.2em}ul.relsyn li .svg-icon{width:50px;height:50px}ul.relsyn li svg{height:1rem;width:1rem}.kind .svg-icon{height:15px;width:15px;color:#677275;color:var(--color-light-gray);display:inline-block}.kind .svg-icon svg{fill:#677275;fill:var(--color-light-gray)}.has-full-width-featured-image .entry-header .kind .svg-icon{color:#fff;fill:currentColor}.jp-relatedposts{margin:auto auto}.reaction-list{padding:0px}.activitypub-follower-block h3{margin-bottom:1em}:root{--color-background: #fff;--color-white: #fff;--color-dark-gray: #373d3f;--color-gray: #4f575a;--color-light-gray: #677275;--color-lighter-gray: #b6bdbf;--color-border-gray: #d1d5d7;--color-background-gray: #fafafb;--color-android-green: #9bc53d;--color-usc-gold: #ffcc00;color-scheme:light dark}@media(prefers-color-scheme: dark){:root{--color-background: #373d3f;--color-white: #373d3f;--color-dark-gray: #fff;--color-gray: #fff;--color-light-gray: #fff;--color-lighter-gray: #fff;--color-border-gray: #677275;--color-background-gray: #4f575a}img{filter:brightness(0.8) contrast(1.2)}} + */ -/*# sourceMappingURL=style.css.map */ \ No newline at end of file +/* + * This file contains only styles that cannot be expressed in theme.json. + * Most styling is handled through theme.json settings and block styles. + */ + +/* ========================================================================== + Base / Typography + ========================================================================== */ + +body { + word-wrap: break-word; +} + +.wp-site-blocks { + display: flex; + flex-direction: column; + min-height: 100vh; +} + +.wp-site-blocks > main { + flex-grow: 1; +} + +h1, h2, h3, h4, h5, h6, caption, figcaption { + text-wrap: balance; +} + +p, ul, ol, blockquote { + text-wrap: pretty; +} + +::selection { + background: light-dark(#b3d4fc, #3a6fa0); + color: light-dark(#000, #fff); +} + +abbr { + font-variant: small-caps; +} + +abbr[title] { + border-bottom: 1px dotted var(--wp--preset--color--gray); + cursor: help; +} + +ins { + background: light-dark(var(--wp--preset--color--yellow), rgba(255, 249, 192, 0.15)); + text-decoration: none; +} + +address { + font-style: normal; +} + +blockquote cite::before, +blockquote small::before { + content: "\2014 \00A0"; +} + +blockquote cite, +blockquote small { + text-align: left; +} + +/* Caption text-align can't be set in theme.json */ +figure figcaption { + text-align: right; +} + +.avatar { + border-radius: 50%; +} + +/* ========================================================================== + Section Headings + Comment titles, reply form title + ========================================================================== */ + +#comments, +#reply-title { + padding: 0; + font-size: 1.75rem; + font-weight: 300; + line-height: 1.25; +} + +#comments { + margin: 0 0 var(--wp--preset--spacing--60) 0; +} + +#reply-title { + margin: 0 0 var(--wp--preset--spacing--40) 0; +} + +#reply-title small { + font-size: 0.5em; + margin-left: 0.5em; +} + +/* ========================================================================== + Site Header + ========================================================================== */ + +.site-header .site-branding { + min-width: 0; + flex: 1 1 auto; + gap: var(--wp--custom--header--branding-gap); +} + +.site-header .wp-block-site-title { + min-width: 0; +} + +.site-header .site-navigation { + min-width: 0; +} + +.site-header .site-header-search { + min-width: 0; +} + +@media (min-width: 783px) { + .site-header .site-navigation .wp-block-navigation__container { + flex-wrap: nowrap; + } + + .site-header .site-navigation .wp-block-navigation-item__content { + white-space: nowrap; + } +} + +.site-header-search.wp-block-search .wp-block-search__inside-wrapper { + background-color: var(--wp--preset--color--base); + border: 1px solid var(--wp--preset--color--border-gray); + border-radius: 50px; + overflow: hidden; +} + +.site-header-search.wp-block-search .wp-block-search__input { + -webkit-appearance: none; + appearance: none; + border: none; + padding: 5px 12px; + max-width: 100%; + background-color: transparent; + font-size: 0.85rem; +} + +.site-header-search.wp-block-search .wp-block-search__button { + border: none; + background: transparent; + color: var(--wp--preset--color--light-gray); + padding: 4px 8px; + line-height: 0; +} + + +/* ========================================================================== + Entry Meta (post-meta template part) + ========================================================================== */ + +.wp-block-group.entry-meta { + align-items: center; + gap: 0; + row-gap: var(--wp--custom--meta--row-gap); +} + +.wp-block-group.entry-meta > * { + display: inline-flex; + align-items: center; +} + +.wp-block-group.entry-meta > *:not(:first-child)::before { + content: "\00B7"; + color: var(--wp--preset--color--lighter-gray); + margin: 0 var(--wp--custom--meta--separator-gap); +} + +.wp-block-group.entry-meta .wp-block-post-author { + display: inline-flex; + flex-wrap: nowrap; + align-items: center; + gap: var(--wp--custom--meta--avatar-gap); +} + +.wp-block-group.entry-meta .wp-block-post-author__avatar { + margin-right: 0; +} + +.wp-block-group.entry-meta .wp-block-post-author__content { + display: inline-flex; + align-items: center; +} + +.wp-block-group.entry-meta .wp-block-post-author__byline, +.wp-block-group.entry-meta .wp-block-post-author__name { + font-size: inherit; + line-height: inherit; + font-weight: inherit; + color: var(--wp--preset--color--light-gray); +} + +.wp-block-group.entry-meta .wp-block-post-author__byline { + display: inline-block; + flex: 0 0 auto; + width: auto; + margin: 0 var(--wp--custom--meta--byline-gap) 0 0; +} + +/* ========================================================================== + Post Format: Video + YouTube/Vimeo-inspired — video first, title + meta below + ========================================================================== */ + +/* Video hero — extracted first embed, displayed above the title */ +.video-hero { + background-color: #0f0f0f; + padding: var(--wp--preset--spacing--40) 0; + overflow: hidden; +} + +.video-hero .wp-block-embed { + position: relative; + aspect-ratio: 16 / 9; + overflow: hidden; +} + +.video-hero .alignfull { + max-width: none; +} + +.video-hero .alignwide { + max-width: var(--wp--style--global--wide-size, 900px); + margin-left: auto; + margin-right: auto; +} + +.video-hero .wp-block-embed:not(.alignfull):not(.alignwide) { + max-width: var(--wp--style--global--wide-size, 900px); + margin-left: auto; + margin-right: auto; +} + +/* Video hero caption — outside the dark area, right-aligned */ +.video-hero-caption { + max-width: var(--wp--style--global--wide-size, 900px); + margin-left: auto; + margin-right: auto; +} + +.video-hero-caption figcaption { + font-family: var(--wp--preset--font-family--sans-serif); + font-size: 0.8em; + color: var(--wp--preset--color--light-gray); + text-align: right; + padding: 0.5em 0; +} + +/* ========================================================================== + Post Reactions Link (archive/homepage) + ========================================================================== */ + +.post-reactions { + margin-top: var(--wp--preset--spacing--40); +} + +.post-reactions a::before { + content: ""; + display: inline-block; + width: 1em; + height: 1em; + margin-right: 0.4em; + vertical-align: -0.15em; + background-color: currentColor; + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3C/svg%3E"); + mask-size: contain; + mask-repeat: no-repeat; + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3C/svg%3E"); + -webkit-mask-size: contain; + -webkit-mask-repeat: no-repeat; +} + +/* Keep consistent singular spacing even when templates are customized in Site Editor. */ +.post-navigation { + margin-top: var(--wp--preset--spacing--80); + margin-bottom: var(--wp--preset--spacing--80); +} + +/* ========================================================================== + Tables + ========================================================================== */ + +table { + border-collapse: separate; + border-spacing: 0; + table-layout: fixed; + width: 100%; +} + +table th { + font-weight: bold; +} + +table thead th { + vertical-align: bottom; +} + +table th, +table td { + border-top: 1px solid var(--wp--preset--color--border-gray); + padding: 10px; + text-align: left; + vertical-align: top; +} + +table caption + thead tr:first-child th, +table caption + thead tr:first-child td, +table colgroup + thead tr:first-child th, +table colgroup + thead tr:first-child td, +table thead:first-child tr:first-child th, +table thead:first-child tr:first-child td { + border-top: 0; +} + +table tbody + tbody { + border-top: 2px solid var(--wp--preset--color--border-gray); +} + +table tbody tr:nth-child(odd) td, +table tbody tr:nth-child(odd) th { + background-color: var(--wp--preset--color--background-gray); +} + +/* ========================================================================== + Forms + ========================================================================== */ + +input[type="text"], +input[type="password"], +input[type="email"], +input[type="url"], +textarea { + border: 1px solid var(--wp--preset--color--border-gray); + border-radius: 5px; + padding: 0.5em; +} + +input, +textarea { + max-width: 90%; + background-color: var(--wp--preset--color--base); +} + +input[type="search"]:not(.wp-block-search__input) { + border: 1px solid var(--wp--preset--color--border-gray); + border-radius: 50px; + padding: 5px 15px; + width: 80%; +} + +.search-form .search-submit { + display: none; +} + +/* ========================================================================== + Float Alignment + WordPress core doesn't constrain floats within the content area in + constrained layouts, so we position them with calculated margins. + ========================================================================== */ + +.entry-content .alignleft { + float: left; + margin-left: max(16px, calc((100% - var(--wp--style--global--content-size)) / 2)); + margin-right: var(--wp--preset--spacing--50); + margin-bottom: var(--wp--preset--spacing--30); +} + +.entry-content .alignright { + float: right; + margin-right: max(16px, calc((100% - var(--wp--style--global--content-size)) / 2)); + margin-left: var(--wp--preset--spacing--50); + margin-bottom: var(--wp--preset--spacing--30); +} + +/* ========================================================================== + Post Format: Status + ========================================================================== */ + +.format-status .wp-block-post-title { + display: none; +} + +.format-status .entry-content, +.format-status .wp-block-post-content { + font-size: 1.5em; + line-height: 1.6; +} + +/* ========================================================================== + Post Format: Aside + ========================================================================== */ + +.format-aside .wp-block-post-title { + display: none; +} + +.format-aside .entry-content, +.format-aside .wp-block-post-content { + font-size: 1.5em; + line-height: 1.5; +} + +/* On archive: hide title */ +.wp-block-post-template .format-aside .wp-block-post-title { + display: none; +} + +/* ========================================================================== + Dark Mode — colors are handled via light-dark() in theme.json. + Only non-color overrides that cannot use light-dark() remain here. + ========================================================================== */ + +@media (prefers-color-scheme: dark) { + + img:not(.avatar):not([class*="wp-block-site-logo"]) { + filter: brightness(0.8) contrast(1.2); + } +} diff --git a/style.css.map b/style.css.map deleted file mode 100644 index 53b5546e..00000000 --- a/style.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["file:///Users/pfefferle/Code/autonomie/assets/sass/style.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/lato-font.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/merriweather-font.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/openwebicons.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/_normalize.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/_vars.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/_page.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/_mixins.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/_comment.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/_post.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/_nav.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/_table.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/_media.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/_sidebar.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/_base.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/_block.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/_form.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/_widgets.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/integrations.scss","file:///Users/pfefferle/Code/autonomie/assets/sass/_darkmode.scss"],"names":[],"mappings":"CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCCA,WACC,mBACA,kBACA,mBACA,kBACA,mDACA,gUAOD,WACC,mBACA,kBACA,mBACA,kBACA,yDACA,qWAOD,WACC,mBACA,kBACA,iBACA,kBACA,mDACA,8TAOD,WACC,mBACA,kBACA,iBACA,kBACA,yDACA,mWC7CD,WACC,2BACA,kBACA,mBACA,kBACA,mEACA,wZAQD,WACC,2BACA,kBACA,mBACA,kBACA,yEACA,6bAQD,WACC,2BACA,kBACA,iBACA,kBACA,yEACA,2bAOD,WACC,2BACA,kBACA,iBACA,kBACA,mEACA,sZCyEA,WACC,4BACA,qDACA,oXAKA,mBACA,kBACA,kBAoDF,+DACC,4BACA,mBACA,kBACA,kBACA,qBACA,qBACA,sBACA,WACA,2BACA,mCACA,kCACA,kCACA,iBAGD,qDACC,qBACA,wBAGD,qDACC,cAKA,0BACC,YADD,gCACC,YADD,uCACC,YADD,2BACC,YADD,kCACC,YADD,0BACC,YADD,iCACC,YADD,6BACC,YADD,oCACC,YADD,0BACC,YADD,8BACC,YADD,qCACC,YADD,kCACC,YADD,yBACC,YADD,gCACC,YADD,2BACC,YADD,4BACC,YADD,kCACC,YADD,yBACC,YADD,0BACC,YADD,yBACC,YADD,qCACC,YADD,+BACC,YADD,iCACC,YADD,8BACC,YADD,0BACC,YADD,2BACC,YADD,0BACC,YADD,kCACC,YADD,+BACC,YADD,+BACC,YADD,mCACC,YADD,gCACC,YADD,qCACC,YADD,qCACC,YADD,yBACC,YADD,8BACC,YADD,yBACC,YADD,gCACC,YADD,+BACC,YADD,0BACC,YADD,wBACC,YADD,0BACC,YADD,+BACC,YADD,+BACC,YADD,oCACC,YADD,6BACC,YADD,2BACC,YADD,8BACC,YADD,2BACC,YADD,yBACC,YADD,yBACC,YADD,4BACC,YADD,kCACC,YADD,wBACC,YADD,2BACC,YADD,2BACC,YADD,8BACC,YADD,8BACC,YADD,2BACC,YADD,2BACC,YADD,+BACC,YADD,6BACC,YADD,8BACC,YADD,8BACC,YADD,2BACC,YADD,6BACC,YADD,+BACC,YADD,oCACC,YADD,8BACC,aADD,kCACC,cADD,+BACC,YADD,6BACC,YADD,oCACC,YADD,yBACC,YADD,6BACC,YADD,0BACC,YADD,8BACC,YADD,yBACC,YADD,qCACC,YADD,+BACC,YADD,kCACC,YADD,iCACC,YADD,mCACC,YADD,gCACC,YADD,gCACC,YADD,2BACC,YADD,yBACC,YADD,+BACC,YADD,8BACC,YADD,0BACC,YADD,6BACC,YADD,kCACC,YADD,2BACC,YADD,6BACC,YADD,8BACC,YADD,8BACC,YADD,2BACC,YADD,2BACC,YADD,kCACC,YADD,sCACC,YADD,gCACC,YADD,+BACC,YADD,sCACC,YADD,8BACC,YADD,8BACC,YADD,6BACC,YADD,+BACC,YADD,8BACC,YADD,+BACC,YADD,qCACC,YADD,iCACC,YADD,2BACC,YADD,gCACC,YADD,+BACC,YAQA,kCACC,YACA,cAFD,wCACC,YACA,cAFD,mCACC,YACA,cAFD,kCACC,YACA,cAFD,qCACC,YACA,cAFD,kCACC,YACA,cAFD,sCACC,YACA,cAFD,0CACC,YACA,cAFD,iCACC,YACA,cAFD,wCACC,YACA,cAFD,mCACC,YACA,cAFD,iCACC,YACA,cAFD,iCACC,YACA,cAFD,wCACC,YACA,cAFD,kCACC,YACA,cAFD,uCACC,YACA,cAFD,4CACC,YACA,cAFD,mCACC,YACA,cAFD,iCACC,YACA,cAFD,iCACC,YACA,cAFD,oCACC,YACA,cAFD,wCACC,YACA,cAFD,uCACC,YACA,cAFD,sCACC,YACA,cAFD,6CACC,YACA,cC7NH,4DAQA,KACC,uBACA,0BACA,8BAOD,KACC,SAaD,2FAaC,cAQD,4BAIC,qBACA,wBAQD,sBACC,aACA,SAQD,kBAEC,aAUD,EACC,+BAOD,iBAEC,UAUD,YACC,yBAOD,SAEC,iBAOD,IACC,kBAQD,GACC,cACA,eAOD,KACC,gBACA,WAOD,MACC,cAOD,QAEC,cACA,cACA,kBACA,wBAGD,IACC,WAGD,IACC,eAUD,IACC,SAOD,eACC,gBAUD,OACC,gBAOD,GACC,4BACA,uBACA,SAOD,IACC,cAOD,kBAIC,gCACA,cAkBD,sCAKC,cACA,aACA,SAOD,OACC,iBAUD,cAEC,oBAWD,oEAIC,0BACA,eAOD,sCAEC,eAOD,iDAEC,SACA,UAQD,MACC,mBAWD,uCAEC,sBACA,UASD,4FAEC,YASD,mBACC,6BACA,4BACA,+BACA,uBASD,+FAEC,wBAOD,SACC,wBACA,aACA,2BAQD,OACC,SACA,UAOD,SACC,cAQD,SACC,iBAUD,MACC,yBACA,iBAGD,MAEC,UJ9XD,KACC,MKzCW,QL0CX,6BACA,cACA,gBAOD,6BAEC,mBACA,iBAMD,2BAKC,sBAKD,SACC,SACA,SACA,UAKD,SACC,gBAOD,6BAEC,WKvFM,QLwFN,6BACA,WACA,cACA,eM/FD,aACC,cACA,kBACA,WACA,gCAEA,4BACC,cACA,MDiCc,ME9Bf,qEAEC,YACA,cAGD,kCACC,WDLD,0BACC,gBACA,iBACA,mBAGD,yBACC,qBACA,UACA,qBACA,gBACA,8BACA,iBACA,gBAEA,2BACC,qBAEA,iCACC,0BAKH,0BACC,WACA,6BAEA,4BACC,MDvCS,QCwCT,6BAGD,yCACC,WACA,cAGD,gDACC,kBAEA,wDACC,cACA,mBACA,sBAGD,oPACC,kBAGD,4DACC,cACA,iBAGD,kEACC,iBAGD,sHACC,cACA,cAIF,4JACC,cACA,cACA,gBACA,MDhFS,QCiFT,6BACA,gBACA,MD9CU,MCiDX,qCACC,cAGD,sCACC,cAIF,0BACC,qBACA,qBACA,UACA,YAGD,oBACC,qBACA,YAKD,4BACC,WACA,kBACA,YACA,eACA,iBACA,8BACA,2BACA,yBACA,sBAEA,8BACC,MDzFK,KC4FN,6HACC,MD7FK,KCgGN,2CACC,kBACA,OACA,SACA,WAKH,SACC,WACA,cACA,cAGD,UACC,WACA,iBD3IiB,QC4IjB,8CACA,iBACA,wBC5IA,iCAEC,YACA,cAGD,gBACC,WD0IF,gBACC,WACA,eACA,kBACA,iBD7HO,KC8HP,oCAGD,oCAEC,2BAEA,8BACA,6BAKA,iCACC,WACA,UAEA,kFAEC,iBAIF,2CACC,WACA,WACA,WAKF,oCAEC,WD7LY,QC8LZ,mCACA,cACA,YAGD,QACC,0BACA,uBACA,kBE3MD,UACC,WAEA,mIAKC,cACA,UAGD,8EACC,eACA,iBAGD,gBACC,cAGD,+BACC,eAGD,gBACC,cACA,MHvBK,QGwBL,wBAGD,gBACC,aAGD,4BACC,aACA,cAIF,gBACC,cACA,kBACA,eACA,cAGD,4BACC,WACA,UAGD,iCACC,cAGD,mBACC,aAGD,wBACC,cAGD,6BAEC,UACA,SACA,cAGD,qBACC,eACA,YACA,iBAEA,4BACC,wBACA,YACA,kBACA,qBAIF,WACC,6BACA,aAEA,8BACC,kBACA,mBAGD,sBACC,WAIF,2CAGC,cACA,4BACA,MHpGM,QGqGN,wBAIA,sBACC,gBAGD,mBACC,eAIF,oDAGC,MHrHM,QGsHN,wBACA,qBAEA,sEACC,0BAIF,eACC,SACA,UAEA,uBACC,WACA,kBACA,WACA,YAIF,YACC,kBAGD,iBACC,gBACA,gBAEA,sBACC,kBACA,mBACA,eAOF,cACC,cAGD,iBACC,eAGD,YACC,kBACA,cCvKC,4GACC,eAMF,6CACC,SACA,WACA,eACA,kBACA,YACA,eACA,iBACA,mBACA,8BACA,2BACA,yBACA,sBAEA,8KACC,MJUK,KIRL,oLACC,MJOI,KIHN,2FACC,MJEK,KICN,mEACC,kBACA,OACA,SACA,WACA,mBAGD,qEACC,cACA,MJLa,MIQd,+EACC,gBAGD,qDACC,sBAKH,6BACC,gBAMC,6DACC,WACA,6BACA,YACA,cACA,kBACA,cACA,iBAKH,4DAIC,SACA,UAEA,cACA,kBAEA,oEACC,aACA,uBACA,gBACA,cACA,cACA,qBACA,MJ5FU,QI6FV,6BAEA,4FACC,0BAMF,wFACC,gBAMD,wOAIC,gBAIF,8BAEC,MJvHW,QIwHX,6BACA,kBACA,gBACA,cAEA,8HAEC,eACA,WAGD,oDACC,WACA,UJhGW,MImGZ,gEACC,WACA,eACA,oCACA,SAGD,kCACC,0BAEA,8CAHD,kCAIE,kCACA,qDACA,8BACA,2BAIA,8CADD,8CAEE,+BACA,gDACA,8BACA,2BAMJ,eACC,cF7JA,2CAEC,YACA,cAGD,qBACC,WE2JF,aACC,qBACA,cACA,8BACA,iBJxKiB,QIyKjB,8CACA,YACA,kBACA,MJlLW,QImLX,6BACA,oBACA,gBACA,qBACA,YAEA,mBACC,iBJvKY,QIwKZ,MJzKW,QI4KZ,oBACC,qBACA,8BACA,mCACA,kCACA,kCACA,eACA,kBACA,qBACA,QACA,2BACA,iBACA,YAIF,uBAEC,kBAGD,qEAKC,8BACA,WACA,MJzNM,QI0NN,wBACA,cAEA,+EACC,MJ9NK,QI+NL,wBACA,qBAGD,6GACC,0BAGD,6GACC,WACA,kBFlOD,yDAEC,YACA,cAGD,4BACC,WEmOF,YACC,kBAEA,gBACA,mBAEA,wBACC,UACA,SACA,mBAGD,oGAGC,MJ9Pa,QI+Pb,gCACA,iBACA,yBAGD,6CACC,qBACA,8BACA,mCACA,kCACA,kCACA,kBACA,iBACA,kBACA,qBACA,QACA,2BACA,MJhRa,QIiRb,gCAGD,0BACC,cAGD,oBACC,cACA,gBACA,MJ9RU,QI+RV,6BAGD,oDAEC,eAIF,eACC,cACA,qBAEA,sBACC,qBACA,8BACA,mCACA,kCACA,kCACA,eACA,kBACA,wBACA,QACA,2BACA,iBACA,YAIF,sBAEC,cACA,cAEA,4BACC,SACA,UAGD,4BACC,qBACA,oBACA,qBACA,gBFtTD,gCACC,cACA,8BACA,iBFjBgB,QEkBhB,8CACA,kBACA,MF1BU,QE2BV,6BACA,cACA,gBACA,qBAEA,4CACC,iBFdW,QEeX,MFhBU,QI4TX,gCACC,eAKH,iBACC,UACA,iBACA,kBF/UA,+CAEC,YACA,cAGD,uBACC,WE4UD,oCACC,aAGD,gEACC,YAGD,gEACC,YAGD,gEACC,YAGD,gEACC,YAGD,gIAEC,YAGD,kEACC,YAGD,+DACC,YAGD,iEACC,YAGD,mEACC,YAGD,gEACC,YAIF,WACC,kBACA,QACA,SFxXA,aACC,cACA,8BACA,iBFjBgB,QEkBhB,8CACA,kBACA,MF1BU,QE2BV,6BACA,cACA,gBACA,qBAEA,mBACC,iBFdW,QEeX,MFhBU,QI+Xb,WACC,cACA,eACA,MJnZM,QIoZN,wBAIA,oDACC,iBJ/Xe,QIkYhB,yCACC,MJnYe,QIsYhB,0CACC,iBJzZK,QI4ZN,+BACC,MJ7ZK,QIgaN,kDACC,iBJ5Za,QI+Zd,uCACC,MJhaa,QImad,gDACC,iBJraW,QIwaZ,qCACC,MJzaW,QI4aZ,8CACC,iBJ9ZS,KIiaV,mCACC,MJlaS,KIqaV,kDACC,iBJraa,QIwad,uCACC,MJzaa,QI4ad,4CACC,iBJ5aO,QI+aR,iCACC,MJhbO,QImbR,mDACC,iBJnbc,QIsbf,wCACC,MJvbc,QI0bf,2CACC,iBJ1bM,KI2bN,oCAGD,gCACC,MJ/bM,KIgcN,yBAGD,qDACC,iBJncgB,KIscjB,0CACC,MJvcgB,KI0cjB,oDACC,iBJ1ce,KI6chB,yCACC,MJ9ce,KIkdjB,QACC,cAID,oBACC,6BACA,eACA,gBACA,eACA,eACA,2BCjgBD,iBACC,UACA,cACA,SACA,MLoCe,MKnCf,8BHKA,+CAEC,YACA,cAGD,uBACC,WGRD,oBACC,6BACA,kBACA,YACA,gBACA,SACA,gBHLD,qDAEC,YACA,cAGD,0BACC,WGEA,sBACC,kBACA,MLnBS,QKoBT,6BACA,cACA,iBACA,gBACA,kBACA,qBAGD,uBACC,WACA,eACA,sBAEA,uFAGC,eACA,kBACA,YAEA,gGACC,mBAGD,6FACC,0BAMD,4GACC,YACA,gBACA,qBACA,iBACA,qBACA,yBAIF,gCACC,UACA,QAEA,mCACC,UACA,YAKH,uBACC,YACA,iBL1CK,KK2CL,oCACA,2CACA,aACA,gBACA,kBAEA,oBACA,SACA,kBACA,YAEA,yBACC,MLvFQ,QKwFR,6BACA,kBACA,iBACA,kBAGD,0BACC,WACA,mBACA,kBAGC,uCACC,6BACA,oCACA,4BAKA,0FACC,6BACA,oCACA,4BAOF,kHACC,YACA,qBACA,iBACA,eACA,gBAKH,0BACC,kBACA,WACA,MACA,YAKH,oBACC,gBACA,SACA,UAIF,WACC,cAGA,iBH5IA,mCAEC,YACA,cAGD,iBACC,WGuID,yBACC,WHzGD,MF7CM,QE8CN,wBACA,yBACA,iBFjBO,KEkBP,oCACA,mBACA,kBACA,qBACA,cACA,qBAfA,2BACC,qBACA,MFzCK,QE0CL,wBAcD,+BACC,UAGD,iNAMC,yBACA,+BACA,iBFpEK,QEqEL,mCACA,MFvCM,KEwCN,yBAGD,iCACC,MF3EK,QE4EL,wBG+ED,qBACC,YH/GD,MF7CM,QE8CN,wBACA,yBACA,iBFjBO,KEkBP,oCACA,mBACA,kBACA,qBACA,cACA,qBAfA,uBACC,qBACA,MFzCK,QE0CL,wBAcD,2BACC,UAGD,yLAMC,yBACA,+BACA,iBFpEK,QEqEL,mCACA,MFvCM,KEwCN,yBAGD,6BACC,MF3EK,QE4EL,wBGuFD,yBACC,eACA,UACA,WAGD,qBACC,eACA,WACA,WAGD,aACC,qBACA,qBACA,cACA,eAGD,mBACC,MLxLU,QKyLV,6BAKD,8CACC,UACA,qBACA,kBAGD,cACC,kBACA,MACA,OACA,iBACA,UACA,aAIF,aACC,cACA,cACA,WACA,kBACA,iBAEA,2BACC,gBACA,qBACA,aACA,MLvNW,QKwNX,8BAGD,eACC,qBAEA,qBACC,0BACA,MLlOS,QKmOT,6BAIF,sBACC,MLxOU,QKyOV,6BAIF,aACC,aC9OD,MACC,2BACA,+BACA,yBACA,cACA,iBACA,cACA,gBACA,kBACA,mBACA,WAEA,SACC,iBAGD,eACC,sBAIF,kBAEC,6BACA,aACA,gBACA,mBAGD,8OAMC,aAGD,kBACC,6BAGD,qWASC,aAGD,kEAEC,iBNlDiB,QMmDjB,8CAGD,gDAEC,iBNxDiB,QMyDjB,8CCjED,WACC,eACA,WACA,iBACA,gBAGD,YACC,eACA,YACA,gBACA,gBAGD,6DAKC,WACA,gBACA,WACA,eACA,YAGD,aACC,MPae,MOVhB,iMAMC,WAGD,4EAKC,cAGD,+DAKC,eACA,YAGD,SACC,cL/CA,+BAEC,YACA,cAGD,eACC,WK8CD,oJAOC,eAGD,wCAEC,YAIF,oBACC,gBAGD,qBACC,WAGD,SACC,mBAGD,uBACC,WACA,cACA,kBACA,UAGD,iCACC,WAGD,iCACC,UAGD,iCACC,UAGD,aACC,kBAGD,sCACC,cACA,YAED,yCACC,cACA,YAED,0BACC,WACA,eACA,gBAGD,iBACC,gBAGD,iDACC,WACA,eAMC,qGACC,cAKH,iCACC,cAGD,sBACC,WCxJD,SACC,mBACA,cACA,kBACA,eACA,iBACA,UNKA,+BAEC,YACA,cAGD,eACC,WMRD,mBACC,iBAGD,YACC,gBACA,yBACA,oBAGD,wBAEC,SACA,UAEA,8BACC,qBACA,gBAGD,4DACC,gBACA,gBAIF,eACC,MRlCU,QQmCV,6BAGD,4CAEC,MRxCU,QQyCV,6BACA,iBRVM,KQWN,oCACA,YACA,iBAEA,wDACC,iBR/CI,QQgDJ,mCCpDH,KACC,iBTkCO,KSjCP,yCACA,cACA,6BAEA,4BACA,gBACA,qBAGD,mBACC,mBAGD,QACC,kBAGD,EACC,MTjBW,QSkBX,6BAGD,IACC,KTtBW,QSuBX,4BAGD,QACC,qBAGD,KACC,wBAEA,YACC,iCACA,sCACA,YAIF,kBAEC,MTzCM,QS0CN,wBACA,cACA,kBACA,kBACA,gBACA,iCAEA,kGAGC,MTpDK,QSqDL,wBACA,cACA,eACA,kBACA,mBAKA,sFACC,aAMF,uDAGC,gBAIF,2BAEC,UACA,SAEA,6HAGC,iBAGD,iDACC,aACA,qBACA,YACA,kBAIF,OACC,YACA,iBAGD,WACC,SACA,8BACA,SACA,kBACA,gBAGD,KACC,wCACA,yBACA,mBACA,oBAEA,OACC,yBAIF,IACC,WT3FQ,QS4FR,qBAGD,kBAMC,iCACA,gBACA,gBACA,kBAGD,GACC,gBAGD,GACC,cAGD,GACC,gBAGD,GACC,gBAGD,GACC,gBAGD,GACC,gBAGD,GACC,cACA,YACA,4BACA,SACA,6BACA,kBAGD,IACC,gBACA,mBACA,sBACA,WACA,cACA,aACA,qBACA,qBAEA,SACC,yBACA,cACA,sBACA,UACA,oBAIF,qCACC,kBAGD,mBACC,iBCrMD,uBACC,yBACA,cACA,yBACA,uCAGD,uBACC,yBACA,cACA,yBACA,uCAGD,+BACC,WACA,cAGD,6BACC,cACA,WAGD,uCACC,MVUO,KUPR,+BACC,aC7BD,iFAKC,YACA,yBACA,sCACA,kBACA,aAEA,+GACC,UAIF,eAEC,cACA,iBXgBO,KWfP,oCAGD,mBACC,yBACA,sCACA,mBACA,iBACA,UAEA,yBACC,UAIF,iHTcC,MF7CM,QE8CN,wBACA,yBACA,iBFjBO,KEkBP,oCACA,mBACA,kBACA,qBACA,cACA,qBAfA,+HACC,qBACA,MFzCK,QE0CL,wBAcD,2JACC,UAGD,mkCAMC,yBACA,+BACA,iBFpEK,QEqEL,mCACA,MFvCM,KEwCN,yBAGD,yKACC,MF3EK,QE4EL,wBSnCF,wCAGC,qBAIA,4BACC,aAIF,iBACC,cAEA,uDAEC,WACA,WAGD,4CACC,qBCnEF,cAGC,gBVQA,yCAEC,YACA,cAGD,oBACC,WUbD,sBACC,aACA,iBACA,gBACA,iBACA,uEACA,iCA0BA,0BAxBA,uFACC,kBACA,cAGD,0BACC,gBACA,mBAGD,4BACC,eACA,mBACA,MZtBI,QYuBJ,wBAGD,iCACC,eACA,MZ3BU,QY4BV,8BACA,sBAMF,6BACC,WAEA,iIAGC,cACA,UAGD,mCACC,cAGD,mCACC,cACA,MZpDI,QYqDJ,wBjB+DH,QACC,wBACA,kBAKD,gBACC,SACA,mBACA,WACA,YACA,gBACA,UACA,kBACA,UAMD,iEAEC,UACA,YACA,SACA,iBACA,gBACA,WAKD,WACC,kBkBzJD,UACC,cACA,SACA,UAEA,aACC,qBACA,oBACA,qBACA,gBAEA,uBACC,WACA,YAGD,iBACC,YACA,WAKH,gBACC,YACA,WACA,MbtBY,QauBZ,8BACA,qBAEA,oBACC,Kb3BW,Qa4BX,6BAIF,6DACC,MbHO,KaIP,kBAGD,iBACC,iBAGD,eACC,YAGD,+BACC,kBCnDD,MACC,yBACA,oBACA,2BACA,sBACA,4BACA,8BACA,6BACA,iCACA,+BACA,0BACA,wBAGD,mCACC,MACC,4BACA,uBACA,wBACA,mBACA,yBACA,2BACA,6BACA,iCAGD,IACC","file":"style.css"} \ No newline at end of file diff --git a/styles/dark.json b/styles/dark.json new file mode 100644 index 00000000..63dda833 --- /dev/null +++ b/styles/dark.json @@ -0,0 +1,119 @@ +{ + "$schema": "https://schemas.wp.org/trunk/theme.json", + "version": 3, + "title": "Dark", + "styles": { + "css": ":root { color-scheme: dark; }" + }, + "settings": { + "color": { + "palette": [ + { + "name": "Base", + "slug": "base", + "color": "#373d3f" + }, + { + "name": "Contrast", + "slug": "contrast", + "color": "#ffffff" + }, + { + "name": "Primary", + "slug": "primary", + "color": "#5bc0eb" + }, + { + "name": "Lighter Blue", + "slug": "lighter-blue", + "color": "#8dd6f0" + }, + { + "name": "Blue Jeans", + "slug": "blue-jeans", + "color": "#5bc0eb" + }, + { + "name": "Orioles Orange", + "slug": "orioles-orange", + "color": "#fa5b0f" + }, + { + "name": "USC Gold", + "slug": "usc-gold", + "color": "#ffe066" + }, + { + "name": "Gargoyle Gas", + "slug": "gargoyle-gas", + "color": "#fde74c" + }, + { + "name": "Yellow", + "slug": "yellow", + "color": "#fff9c0" + }, + { + "name": "Android Green", + "slug": "android-green", + "color": "#b8d977" + }, + { + "name": "White", + "slug": "white", + "color": "#373d3f" + }, + { + "name": "Very Light Gray", + "slug": "very-light-gray", + "color": "#4f575a" + }, + { + "name": "Background Gray", + "slug": "background-gray", + "color": "#4f575a" + }, + { + "name": "Border Gray", + "slug": "border-gray", + "color": "#677275" + }, + { + "name": "Lighter Gray", + "slug": "lighter-gray", + "color": "#b6bdbf" + }, + { + "name": "Light Gray", + "slug": "light-gray", + "color": "#d1d5d7" + }, + { + "name": "Gray", + "slug": "gray", + "color": "#eeeeee" + }, + { + "name": "Dark Gray", + "slug": "dark-gray", + "color": "#ffffff" + }, + { + "name": "Black", + "slug": "black", + "color": "#ffffff" + }, + { + "name": "Background", + "slug": "background", + "color": "#373d3f" + }, + { + "name": "Text", + "slug": "text", + "color": "#ffffff" + } + ] + } + } +} diff --git a/styles/light.json b/styles/light.json new file mode 100644 index 00000000..9076a12c --- /dev/null +++ b/styles/light.json @@ -0,0 +1,119 @@ +{ + "$schema": "https://schemas.wp.org/trunk/theme.json", + "version": 3, + "title": "Light", + "styles": { + "css": ":root { color-scheme: light; }" + }, + "settings": { + "color": { + "palette": [ + { + "name": "Base", + "slug": "base", + "color": "#ffffff" + }, + { + "name": "Contrast", + "slug": "contrast", + "color": "#373d3f" + }, + { + "name": "Primary", + "slug": "primary", + "color": "#0073aa" + }, + { + "name": "Lighter Blue", + "slug": "lighter-blue", + "color": "#229fd8" + }, + { + "name": "Blue Jeans", + "slug": "blue-jeans", + "color": "#5bc0eb" + }, + { + "name": "Orioles Orange", + "slug": "orioles-orange", + "color": "#fa5b0f" + }, + { + "name": "USC Gold", + "slug": "usc-gold", + "color": "#ffcc00" + }, + { + "name": "Gargoyle Gas", + "slug": "gargoyle-gas", + "color": "#fde74c" + }, + { + "name": "Yellow", + "slug": "yellow", + "color": "#fff9c0" + }, + { + "name": "Android Green", + "slug": "android-green", + "color": "#9bc53d" + }, + { + "name": "White", + "slug": "white", + "color": "#ffffff" + }, + { + "name": "Very Light Gray", + "slug": "very-light-gray", + "color": "#eeeeee" + }, + { + "name": "Background Gray", + "slug": "background-gray", + "color": "#fafafb" + }, + { + "name": "Border Gray", + "slug": "border-gray", + "color": "#d1d5d7" + }, + { + "name": "Lighter Gray", + "slug": "lighter-gray", + "color": "#b6bdbf" + }, + { + "name": "Light Gray", + "slug": "light-gray", + "color": "#677275" + }, + { + "name": "Gray", + "slug": "gray", + "color": "#4f575a" + }, + { + "name": "Dark Gray", + "slug": "dark-gray", + "color": "#373d3f" + }, + { + "name": "Black", + "slug": "black", + "color": "#000000" + }, + { + "name": "Background", + "slug": "background", + "color": "#ffffff" + }, + { + "name": "Text", + "slug": "text", + "color": "#373d3f" + } + ] + } + } +} diff --git a/template-parts/entry-author.php b/template-parts/entry-author.php deleted file mode 100644 index d1b08bdc..00000000 --- a/template-parts/entry-author.php +++ /dev/null @@ -1,9 +0,0 @@ -<address class="author p-author vcard hcard h-card" itemprop="author" itemscope="" itemtype="https://schema.org/Person"> - <?php echo get_avatar( get_the_author_meta( 'ID' ), 100 ); ?> - <a class="url uid u-url u-uid fn p-name" href="<?php echo get_author_posts_url( get_the_author_meta( 'ID' ) ); ?>"> - <span itemprop="name"><?php echo get_the_author(); ?></span> - </a> - <div class="note e-note" itemprop="description"><?php echo get_the_author_meta( 'description' ); ?></div> - <a class="subscribe" href="<?php echo get_author_feed_link( get_the_author_meta( 'ID' ) ); ?>"><i class="openwebicons-feed"></i> <?php _e( 'Subscribe to author feed', 'autonomie' ); ?></a> - <link itemprop="url" href="<?php echo get_author_posts_url( get_the_author_meta( 'ID' ) ); ?>" /> -</address> diff --git a/template-parts/entry-footer.php b/template-parts/entry-footer.php deleted file mode 100644 index a2abbaf9..00000000 --- a/template-parts/entry-footer.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php if ( is_singular() || is_attachment() ) : ?> - <footer class="entry-footer entry-meta"> - <div class="entry-actions"> - <?php if ( comments_open() || ( '0' !== get_comments_number() && ! comments_open() ) ) : ?> - <indie-action do="reply" width="<?php the_permalink(); ?>"><div class="comments-link"><?php comments_popup_link( __( 'Leave a comment', 'autonomie' ), __( '1 Comment', 'autonomie' ), __( '% Comments', 'autonomie' ) ); ?></div></indie-action> - <?php endif; ?> - <?php get_template_part( 'template-parts/entry', 'share' ); ?> - </div> - - <?php dynamic_sidebar( 'entry-meta' ); ?> - <?php do_action( 'autonomie_entry_footer' ); ?> - - <?php // get_template_part( 'template-parts/entry', 'nav' ); ?> - </footer><!-- #entry-meta --> -<?php else : ?> - <footer class="entry-footer entry-meta"> - <?php if ( comments_open() || ( '0' !== get_comments_number() && ! comments_open() ) ) : ?> - <div class="entry-actions"> - <indie-action do="reply" width="<?php the_permalink(); ?>"><div class="comments-link"><?php comments_popup_link( __( 'Leave a comment', 'autonomie' ), __( '1 Comment', 'autonomie' ), __( '% Comments', 'autonomie' ) ); ?></div></indie-action> - <div> - <?php endif; ?> - </footer><!-- #entry-meta --> -<?php endif; ?> diff --git a/template-parts/entry-header.php b/template-parts/entry-header.php deleted file mode 100644 index 5fa5fa1c..00000000 --- a/template-parts/entry-header.php +++ /dev/null @@ -1,36 +0,0 @@ - <header class="entry-header"> - <div class="entry-header-wrapper"> - <div class="entry-meta post-format"> - <?php echo apply_filters( 'autonomie_post_format', sprintf( - '<a class="entry-format entry-format-%s entry-type-%s" href="%s">%s</a>', - autonomie_get_post_format(), - get_post_type(), - esc_url( autonomie_get_post_format_link( autonomie_get_post_format() ) ), - autonomie_get_post_format_string() - ) ); ?> - </div> - - <?php - if ( ! in_array( get_post_format(), array( 'aside', 'quote', 'status' ), true ) && ! empty( get_the_title() ) ) : - if ( is_singular() ) { - $title_element = 'h1'; - } else { - $title_element = 'h2'; - } - ?> - <<?php echo $title_element; ?> class="entry-title p-name" itemprop="name headline"> - <a href="<?php the_permalink(); ?>" class="u-url url" title="<?php printf( esc_attr__( 'Permalink to %s', 'autonomie' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark" itemprop="url"> - <?php the_title(); ?> - </a> - </<?php echo $title_element; ?>> - <?php endif; ?> - - <?php // if ( ! is_singular() ) : ?> - <div class="entry-meta"> - <?php autonomie_posted_by(); ?> <span class="sep"> · </span> <?php autonomie_posted_on(); ?> <span class="sep"> · </span> <?php autonomie_reading_time(); ?> - </div> - <?php // endif; ?> - </div> - </header><!-- .entry-header --> - - <?php do_action( 'autonomie_before_entry_content' ); ?> diff --git a/template-parts/entry-nav.php b/template-parts/entry-nav.php deleted file mode 100644 index e09b9e45..00000000 --- a/template-parts/entry-nav.php +++ /dev/null @@ -1,44 +0,0 @@ -<div id="post-nav"> - <?php - $prev_post = get_previous_post( true ); - if ( $prev_post ) { - $args = array( - 'posts_per_page' => 1, - 'include' => $prev_post->ID, - ); - $prev_post = get_posts( $args ); - foreach ( $prev_post as $post ) { - setup_postdata( $post ); - ?> - <div class="previous-post" style="background-image: url( <?php the_post_thumbnail_url( $post->ID, "medium" ); ?>"> - <a class="previous" href="<?php the_permalink(); ?>">« Previous Story</a> - <h4><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h4> - <small><?php the_date( 'F j, Y' ); ?></small> - </div> - <?php - wp_reset_postdata(); - } //end foreach - } // end if - - $next_post = get_next_post( true ); - - if ( $next_post ) { - $args = array( - 'posts_per_page' => 1, - 'include' => $next_post->ID, - ); - $next_post = get_posts( $args ); - foreach ( $next_post as $post ) { - setup_postdata( $post ); - ?> - <div class="next-post" style="background-image: url( <?php the_post_thumbnail_url( $post->ID, 'medium' ); ?>"> - <a class="next" href="<?php the_permalink(); ?>">Next Story »</a> - <h4><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h4> - <small><?php the_date( 'F j, Y' ); ?></small> - </div> - <?php - wp_reset_postdata(); - } //end foreach - } // end if - ?> -</div> diff --git a/template-parts/entry-share.php b/template-parts/entry-share.php deleted file mode 100644 index 1ab69870..00000000 --- a/template-parts/entry-share.php +++ /dev/null @@ -1,31 +0,0 @@ -<indie-action do="post" with="<?php echo get_permalink(); ?>"> - <button type="share" id="entry-share"> - <?php _e( 'share', 'autonomie' ); ?> - </button> -</indie-action> - -<div id="share-options" style="display: none;"> - <p><strong>Sharing is caring ❤️</strong></p> - <p> - <label for="entry-shortlink"><?php _e( 'Shortlink', 'autonomie' ); ?></label> - <input id="entry-shortlink" class="u-url url shortlink" type="text" value="<?php echo wp_get_shortlink(); ?>" /> - </p> - <p> - <label for="entry-permalink"><?php _e( 'Permalink', 'autonomie' ); ?></label> - <input id="entry-permalink" class="u-url url u-uid uid bookmark" type="text" value="<?php echo get_permalink(); ?>" /> - </p> - <?php - // some comment ;) - if ( get_the_title() ) { - ?> - <p> - <label for="entry-summary"><?php _e( 'HTML', 'autonomie' ); ?></label> - <textarea id="entry-summary" class="code" type="text" rows="5" cols="70"><cite class="h-cite"><a class="u-url p-name" href="<?php echo get_permalink(); ?>"><?php echo get_the_title(); ?></a> (<span class="p-author h-card" title="<?php echo get_the_author(); ?>"><?php echo get_the_author(); ?></span> <time class="dt-published" datetime="<?php echo get_the_date( 'c' ); ?>"><?php echo get_the_date(); ?></time>)</cite></textarea> - </p> - <?php } else { ?> - <p> - <label for="entry-blockquote"><?php _e( 'HTML', 'autonomie' ); ?></label> - <textarea id="entry-blockquote" class="code" type="text" rows="5" cols="70"><blockquote><p><?php echo get_the_excerpt(); ?></p><small>— by <a href="<?php echo get_permalink(); ?>" class="h-card" title="<?php echo get_the_author(); ?>"><?php echo get_the_author(); ?></a></small></blockquote></textarea> - </p> - <?php } ?> -</div> diff --git a/template-parts/entry-taxonomy.php b/template-parts/entry-taxonomy.php deleted file mode 100644 index 2e796c0f..00000000 --- a/template-parts/entry-taxonomy.php +++ /dev/null @@ -1,21 +0,0 @@ -<?php -/* translators: used between list items, there is a space after the comma */ -$categories_list = get_the_category_list(); -if ( $categories_list ) : -?> -<div class="cat-links"> - <?php echo __( 'Categories', 'autonomie' ); ?> - <?php printf( __( '%1$s', 'autonomie' ), $categories_list ); ?> -</div> -<?php endif; // End if categories ?> - -<?php -/* translators: used between list items, there is a space after the comma */ -$tags_list = get_the_tag_list( '<ul><li>', '</li><li>', '</li></ul>' ); -if ( $tags_list ) : -?> -<div class="tag-links" itemprop="keywords"> - <?php echo __( 'Tags', 'autonomie' ); ?> - <?php printf( __( '%1$s', 'autonomie' ), $tags_list ); ?> -</div> -<?php endif; // End if $tags_list ?> diff --git a/template-parts/page-banner-author.php b/template-parts/page-banner-author.php deleted file mode 100644 index 8cc83e5b..00000000 --- a/template-parts/page-banner-author.php +++ /dev/null @@ -1,8 +0,0 @@ -<div class="page-banner"> - <div class="page-branding author p-author h-card"> - <?php echo get_avatar( get_the_author_meta( 'ID' ), 150 ); ?> - <h1 id="page-title"<?php autonomie_semantics( 'page-title' ); ?>><?php echo get_the_author_meta( 'display_name' ); ?></h1> - <div id="page-description"<?php autonomie_semantics( 'page-description' ); ?>><?php echo get_the_author_meta( 'description' ); ?></div> - <div id="page-meta"><?php echo autonomie_get_archive_author_meta(); ?></div> - </div> -</div> diff --git a/template-parts/page-banner.php b/template-parts/page-banner.php deleted file mode 100644 index 992714ce..00000000 --- a/template-parts/page-banner.php +++ /dev/null @@ -1,15 +0,0 @@ -<?php if ( autonomie_show_page_banner() ) : ?> -<div class="page-banner"> - <?php if ( ! is_singular() ) : ?> - <div class="page-branding"> - <?php if ( autonomie_get_the_archive_title() ) { ?> - <h1 id="page-title"<?php autonomie_semantics( 'page-title' ); ?>><?php echo autonomie_get_the_archive_title(); ?></h1> - <?php } ?> - <?php if ( autonomie_get_the_archive_description() ) { ?> - <div id="page-description"<?php autonomie_semantics( 'page-description' ); ?>><?php echo autonomie_get_the_archive_description(); ?></div> - <?php } ?> - </div> - <?php printf( '<link itemprop="mainEntityOfPage" href="%s" />', get_self_link() ); ?> - <?php endif; ?> -</div> -<?php endif; ?> diff --git a/templates/404.html b/templates/404.html new file mode 100644 index 00000000..c4528e42 --- /dev/null +++ b/templates/404.html @@ -0,0 +1,45 @@ +<!-- wp:template-part {"slug":"header","tagName":"header","className":"site-header"} /--> + +<!-- wp:group {"tagName":"main","layout":{"type":"constrained"}} --> +<main id="primary" class="wp-block-group"> + <!-- wp:group {"tagName":"article","className":"error404"} --> + <article class="wp-block-group error404"> + <!-- wp:group {"tagName":"header","className":"entry-header"} --> + <header class="wp-block-group entry-header"> + <!-- wp:heading {"level":1,"fontSize":"huge"} --> + <h1 class="wp-block-heading has-huge-font-size">404 - Page Not Found</h1> + <!-- /wp:heading --> + </header> + <!-- /wp:group --> + + <!-- wp:group {"tagName":"div","className":"entry-content"} --> + <div class="wp-block-group entry-content"> + <!-- wp:paragraph --> + <p>It looks like nothing was found at this location. Maybe try a search?</p> + <!-- /wp:paragraph --> + + <!-- wp:search {"label":"Search","showLabel":false,"placeholder":"Search...","buttonText":"Search","buttonPosition":"button-inside","buttonUseIcon":true} /--> + + <!-- wp:spacer {"height":"var:preset|spacing|70"} /--> + + <!-- wp:heading {"level":2} --> + <h2 class="wp-block-heading">Recent Posts</h2> + <!-- /wp:heading --> + + <!-- wp:latest-posts {"postsToShow":5,"displayPostDate":true,"displayFeaturedImage":false} /--> + + <!-- wp:spacer {"height":"var:preset|spacing|70"} /--> + + <!-- wp:heading {"level":2} --> + <h2 class="wp-block-heading">Categories</h2> + <!-- /wp:heading --> + + <!-- wp:categories /--> + </div> + <!-- /wp:group --> + </article> + <!-- /wp:group --> +</main> +<!-- /wp:group --> + +<!-- wp:template-part {"slug":"footer"} /--> diff --git a/templates/archive.html b/templates/archive.html new file mode 100644 index 00000000..adf9c9ee --- /dev/null +++ b/templates/archive.html @@ -0,0 +1,25 @@ +<!-- wp:template-part {"slug":"header","tagName":"header","className":"site-header"} /--> + +<!-- wp:group {"tagName":"main","style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}},"layout":{"type":"constrained"}} --> +<main id="primary" class="wp-block-group" style="margin-top:var(--wp--preset--spacing--60)"> + <!-- wp:group {"tagName":"header","className":"archive-header","style":{"spacing":{"margin":{"bottom":"var:preset|spacing|100"}}},"layout":{"type":"constrained"}} --> + <header class="wp-block-group archive-header" style="margin-bottom:var(--wp--preset--spacing--100)"> + <!-- wp:query-title {"type":"archive"} /--> + + <!-- wp:term-description /--> + + <!-- wp:group {"layout":{"type":"flex","justifyContent":"left"}} --> + <div class="wp-block-group"> + <!-- wp:group {"style":{"border":{"top":{"color":"var:preset|color|border-gray","width":"1px"}},"layout":{"selfStretch":"fixed","flexSize":"var(--wp--preset--spacing--70)"}},"layout":{"type":"constrained"}} --> + <div class="wp-block-group" style="border-top-color:var(--wp--preset--color--border-gray);border-top-width:1px"></div> + <!-- /wp:group --> + </div> + <!-- /wp:group --> + </header> + <!-- /wp:group --> + + <!-- wp:template-part {"slug":"query-loop","className":"query-loop"} /--> +</main> +<!-- /wp:group --> + +<!-- wp:template-part {"slug":"footer"} /--> diff --git a/templates/content-aside.php b/templates/content-aside.php deleted file mode 100644 index 9ca18de0..00000000 --- a/templates/content-aside.php +++ /dev/null @@ -1,22 +0,0 @@ -<?php -/** - * The template for displaying posts in the Aside Post Format on index and archive pages - * - * Learn more: http://codex.wordpress.org/Post_Formats - * - * @package Autonomie - * @since Autonomie 1.0.0 - */ -?> - -<aside <?php autonomie_post_id(); ?> <?php post_class(); ?><?php autonomie_semantics( 'post' ); ?>> - <?php get_template_part( 'template-parts/entry-header' ); ?> - - <?php autonomie_the_post_thumbnail( '<div class="entry-media">', '</div>' ); ?> - <div class="entry-content e-content p-summary entry-title p-name" itemprop="name headline description articleBody"> - <?php autonomie_the_content(); ?> - <?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'autonomie' ), 'after' => '</div>' ) ); ?> - </div><!-- .entry-content --> - - <?php get_template_part( 'template-parts/entry-footer' ); ?> -</aside><!-- #post-<?php the_ID(); ?> --> diff --git a/templates/content-audio.php b/templates/content-audio.php deleted file mode 100644 index 6c498510..00000000 --- a/templates/content-audio.php +++ /dev/null @@ -1,22 +0,0 @@ -<?php -/** - * The template for displaying posts in the Audio Post Format on index and archive pages - * - * Learn more: http://codex.wordpress.org/Post_Formats - * - * @package Autonomie - * @since Autonomie 1.0.0 - */ -?> - -<article <?php autonomie_post_id(); ?> <?php post_class(); ?><?php autonomie_semantics( 'post' ); ?>> - <?php get_template_part( 'template-parts/entry-header' ); ?> - - <?php autonomie_the_post_thumbnail( '<div class="entry-media">', '</div>' ); ?> - <div class="entry-content e-content" itemprop="description articleBody"> - <?php autonomie_the_content(); ?> - <?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'autonomie' ), 'after' => '</div>' ) ); ?> - </div><!-- .entry-content --> - - <?php get_template_part( 'template-parts/entry-footer' ); ?> -</article><!-- #post-<?php the_ID(); ?> --> diff --git a/templates/content-chat.php b/templates/content-chat.php deleted file mode 100644 index fbd19daa..00000000 --- a/templates/content-chat.php +++ /dev/null @@ -1,22 +0,0 @@ -<?php -/** - * The template for displaying posts in the Chat Post Format on index and archive pages - * - * Learn more: http://codex.wordpress.org/Post_Formats - * - * @package Autonomie - * @since Autonomie 1.0.0 - */ -?> - -<article <?php autonomie_post_id(); ?> <?php post_class(); ?><?php autonomie_semantics( 'post' ); ?>> - <?php get_template_part( 'template-parts/entry-header' ); ?> - - <?php autonomie_the_post_thumbnail( '<div class="entry-media">', '</div>' ); ?> - <div class="entry-content e-content" itemprop="articleBody description"> - <?php autonomie_the_content(); ?> - <?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'autonomie' ), 'after' => '</div>' ) ); ?> - </div><!-- .entry-content --> - - <?php get_template_part( 'template-parts/entry-footer' ); ?> -</article><!-- #post-<?php the_ID(); ?> --> diff --git a/templates/content-gallery.php b/templates/content-gallery.php deleted file mode 100644 index 10e2561c..00000000 --- a/templates/content-gallery.php +++ /dev/null @@ -1,22 +0,0 @@ -<?php -/** - * The template for displaying posts in the Gallery Post Format on index and archive pages - * - * Learn more: http://codex.wordpress.org/Post_Formats - * - * @package Autonomie - * @since Autonomie 1.0.0 - */ -?> - -<article <?php autonomie_post_id(); ?> <?php post_class(); ?><?php autonomie_semantics( 'post' ); ?>> - <?php get_template_part( 'template-parts/entry-header' ); ?> - - <?php autonomie_the_post_thumbnail( '<div class="entry-media">', '</div>' ); ?> - <div class="entry-content e-content" itemprop="description"> - <?php autonomie_the_content(); ?> - <?php wp_link_pages( array( 'before' => '<div class="page-links"><span class="page-links-title">' . __( 'Pages:', 'autonomie' ) . '</span>', 'after' => '</div>', 'link_before' => '<span>', 'link_after' => '</span>' ) ); ?> - </div><!-- .entry-content --> - - <?php get_template_part( 'template-parts/entry-footer' ); ?> -</article><!-- #post-<?php the_ID(); ?> --> diff --git a/templates/content-image.php b/templates/content-image.php deleted file mode 100644 index 2c34a6b3..00000000 --- a/templates/content-image.php +++ /dev/null @@ -1,22 +0,0 @@ -<?php -/** - * The template for displaying posts in the Image Post Format on index and archive pages - * - * Learn more: http://codex.wordpress.org/Post_Formats - * - * @package Autonomie - * @since Autonomie 1.0.0 - */ -?> - -<article <?php autonomie_post_id(); ?> <?php post_class(); ?><?php autonomie_semantics( 'post' ); ?>> - <?php get_template_part( 'template-parts/entry-header' ); ?> - - <?php autonomie_the_post_thumbnail( '<div class="entry-media">', '</div>' ); ?> - <div class="entry-content e-content" itemprop="description articleBody"> - <?php autonomie_the_content(); ?> - <?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'autonomie' ), 'after' => '</div>' ) ); ?> - </div><!-- .entry-content --> - - <?php get_template_part( 'template-parts/entry-footer' ); ?> -</article><!-- #post-<?php the_ID(); ?> --> diff --git a/templates/content-link.php b/templates/content-link.php deleted file mode 100644 index c198b00e..00000000 --- a/templates/content-link.php +++ /dev/null @@ -1,22 +0,0 @@ -<?php -/** - * The template for displaying posts in the Link Post Format on index and archive pages - * - * Learn more: http://codex.wordpress.org/Post_Formats - * - * @package Autonomie - * @since Autonomie 1.0.0 - */ -?> - -<aside <?php autonomie_post_id(); ?> <?php post_class(); ?><?php autonomie_semantics( 'post' ); ?>> - <?php get_template_part( 'template-parts/entry-header' ); ?> - - <?php autonomie_the_post_thumbnail( '<div class="entry-media">', '</div>' ); ?> - <div class="entry-content e-content p-summary entry-title p-name" itemprop="name headline description articleBody"> - <?php autonomie_the_content(); ?> - <?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'autonomie' ), 'after' => '</div>' ) ); ?> - </div><!-- .entry-content --> - - <?php get_template_part( 'template-parts/entry-footer' ); ?> -</aside><!-- #post-<?php the_ID(); ?> --> diff --git a/templates/content-page.php b/templates/content-page.php deleted file mode 100644 index df7d8b2d..00000000 --- a/templates/content-page.php +++ /dev/null @@ -1,22 +0,0 @@ -<?php -/** - * The template for displaying posts in the Standard Post Format on index and archive pages - * - * Learn more: http://codex.wordpress.org/Post_Formats - * - * @package Autonomie - * @since Autonomie 1.0.0 - */ -?> - -<article <?php autonomie_post_id(); ?> <?php post_class(); ?><?php autonomie_semantics( 'post' ); ?>> - <?php get_template_part( 'template-parts/entry-header' ); ?> - - <?php autonomie_the_post_thumbnail( '<div class="entry-media">', '</div>' ); ?> - <div class="entry-content e-content" itemprop="description text"> - <?php autonomie_the_content(); ?> - <?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'autonomie' ), 'after' => '</div>' ) ); ?> - </div><!-- .entry-content --> - - <?php get_template_part( 'template-parts/entry-footer' ); ?> -</article><!-- #post-<?php the_ID(); ?> --> diff --git a/templates/content-quote.php b/templates/content-quote.php deleted file mode 100644 index ce785b07..00000000 --- a/templates/content-quote.php +++ /dev/null @@ -1,22 +0,0 @@ -<?php -/** - * The template for displaying posts in the Quote Post Format on index and archive pages - * - * Learn more: http://codex.wordpress.org/Post_Formats - * - * @package Autonomie - * @since Autonomie 1.0.0 - */ -?> - -<article <?php autonomie_post_id(); ?> <?php post_class(); ?><?php autonomie_semantics( 'post' ); ?>> - <?php get_template_part( 'template-parts/entry-header' ); ?> - - <?php autonomie_the_post_thumbnail( '<div class="entry-media">', '</div>' ); ?> - <div class="entry-title p-name entry-content e-content" itemprop="name headline description articleBody"> - <?php autonomie_the_content(); ?> - <?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'autonomie' ), 'after' => '</div>' ) ); ?> - </div><!-- .entry-content --> - - <?php get_template_part( 'template-parts/entry-footer' ); ?> -</article><!-- #post-<?php the_ID(); ?> --> diff --git a/templates/content-single.php b/templates/content-single.php deleted file mode 100644 index 8f075f76..00000000 --- a/templates/content-single.php +++ /dev/null @@ -1,22 +0,0 @@ -<?php -/** - * The template for displaying posts in the Standard Post Format on index and archive pages - * - * Learn more: http://codex.wordpress.org/Post_Formats - * - * @package Autonomie - * @since Autonomie 1.0.0 - */ -?> - -<article <?php autonomie_post_id(); ?> <?php post_class( 'post' ); ?><?php autonomie_semantics( 'post' ); ?>> - <?php get_template_part( 'template-parts/entry-header' ); ?> - - <?php autonomie_the_post_thumbnail( '<div class="entry-media">', '</div>' ); ?> - <div class="entry-content e-content" itemprop="description articleBody"> - <?php autonomie_the_content(); ?> - <?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'autonomie' ), 'after' => '</div>' ) ); ?> - </div><!-- .entry-content --> - - <?php get_template_part( 'template-parts/entry-footer' ); ?> -</article><!-- #post-<?php the_ID(); ?> --> diff --git a/templates/content-status.php b/templates/content-status.php deleted file mode 100644 index f1448858..00000000 --- a/templates/content-status.php +++ /dev/null @@ -1,22 +0,0 @@ -<?php -/** - * The template for displaying posts in the Status Post Format on index and archive pages - * - * Learn more: http://codex.wordpress.org/Post_Formats - * - * @package Autonomie - * @since Autonomie 1.0.0 - */ -?> - -<aside <?php autonomie_post_id(); ?> <?php post_class(); ?><?php autonomie_semantics( 'post' ); ?>> - <?php get_template_part( 'template-parts/entry-header' ); ?> - - <?php autonomie_the_post_thumbnail( '<div class="entry-media">', '</div>' ); ?> - <div class="entry-content e-content p-summary entry-title p-name" itemprop="name headline description articleBody"> - <?php autonomie_the_content(); ?> - <?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'autonomie' ), 'after' => '</div>' ) ); ?> - </div><!-- .entry-content --> - - <?php get_template_part( 'template-parts/entry-footer' ); ?> -</aside><!-- #post-<?php the_ID(); ?> --> diff --git a/templates/content-video.php b/templates/content-video.php deleted file mode 100644 index 206d0d20..00000000 --- a/templates/content-video.php +++ /dev/null @@ -1,22 +0,0 @@ -<?php -/** - * The template for displaying posts in the Video Post Format on index and archive pages - * - * Learn more: http://codex.wordpress.org/Post_Formats - * - * @package Autonomie - * @since Autonomie 1.0.0 - */ -?> - -<article <?php autonomie_post_id(); ?> <?php post_class(); ?><?php autonomie_semantics( 'post' ); ?>> - <?php get_template_part( 'template-parts/entry-header' ); ?> - - <?php autonomie_the_post_thumbnail( '<div class="entry-media">', '</div>' ); ?> - <div class="entry-content e-content" itemprop="description articleBody"> - <?php autonomie_the_content(); ?> - <?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'autonomie' ), 'after' => '</div>' ) ); ?> - </div><!-- .entry-content --> - - <?php get_template_part( 'template-parts/entry-footer' ); ?> -</article><!-- #post-<?php the_ID(); ?> --> diff --git a/templates/content.php b/templates/content.php deleted file mode 100644 index 76806e94..00000000 --- a/templates/content.php +++ /dev/null @@ -1 +0,0 @@ -<?php get_template_part( 'templates/content', 'single' ); diff --git a/templates/home.html b/templates/home.html new file mode 100644 index 00000000..0767e790 --- /dev/null +++ b/templates/home.html @@ -0,0 +1,9 @@ +<!-- wp:template-part {"slug":"header","tagName":"header","className":"site-header"} /--> + +<!-- wp:group {"tagName":"main","style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}},"layout":{"type":"constrained"}} --> +<main id="primary" class="wp-block-group" style="margin-top:var(--wp--preset--spacing--60)"> + <!-- wp:template-part {"slug":"query-loop","className":"query-loop"} /--> +</main> +<!-- /wp:group --> + +<!-- wp:template-part {"slug":"footer"} /--> diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 00000000..0767e790 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,9 @@ +<!-- wp:template-part {"slug":"header","tagName":"header","className":"site-header"} /--> + +<!-- wp:group {"tagName":"main","style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}},"layout":{"type":"constrained"}} --> +<main id="primary" class="wp-block-group" style="margin-top:var(--wp--preset--spacing--60)"> + <!-- wp:template-part {"slug":"query-loop","className":"query-loop"} /--> +</main> +<!-- /wp:group --> + +<!-- wp:template-part {"slug":"footer"} /--> diff --git a/templates/page.html b/templates/page.html new file mode 100644 index 00000000..c63c507b --- /dev/null +++ b/templates/page.html @@ -0,0 +1,27 @@ +<!-- wp:template-part {"slug":"header","tagName":"header","className":"site-header"} /--> + +<!-- wp:group {"tagName":"main","style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}},"layout":{"type":"default"}} --> +<main id="primary" class="wp-block-group" style="margin-top:var(--wp--preset--spacing--60)"> + <!-- wp:group {"tagName":"article","className":"type-page","layout":{"type":"default"}} --> + <article class="wp-block-group type-page"> + <!-- wp:group {"tagName":"header","className":"entry-header","layout":{"type":"constrained"}} --> + <header class="wp-block-group entry-header"> + <!-- wp:post-title {"level":1} /--> + </header> + <!-- /wp:group --> + + <!-- wp:post-featured-image {"align":"wide","style":{"spacing":{"margin":{"top":"var:preset|spacing|60","bottom":"var:preset|spacing|60"}}}} /--> + + <!-- wp:post-content {"className":"entry-content","layout":{"type":"constrained"}} /--> + </article> + <!-- /wp:group --> + + <!-- wp:group {"className":"comments-area","style":{"spacing":{"margin":{"top":"var:preset|spacing|90"}}},"layout":{"type":"constrained"}} --> + <div class="wp-block-group comments-area" style="margin-top:var(--wp--preset--spacing--90)"> + <!-- wp:template-part {"slug":"comments","className":"comments-template"} /--> + </div> + <!-- /wp:group --> +</main> +<!-- /wp:group --> + +<!-- wp:template-part {"slug":"footer"} /--> diff --git a/templates/search.html b/templates/search.html new file mode 100644 index 00000000..97734d0c --- /dev/null +++ b/templates/search.html @@ -0,0 +1,25 @@ +<!-- wp:template-part {"slug":"header","tagName":"header","className":"site-header"} /--> + +<!-- wp:group {"tagName":"main","style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}},"layout":{"type":"constrained"}} --> +<main id="primary" class="wp-block-group" style="margin-top:var(--wp--preset--spacing--60)"> + <!-- wp:group {"tagName":"header","className":"archive-header search-header","style":{"spacing":{"margin":{"bottom":"var:preset|spacing|100"}}},"layout":{"type":"constrained"}} --> + <header class="wp-block-group archive-header search-header" style="margin-bottom:var(--wp--preset--spacing--100)"> + <!-- wp:query-title {"type":"search"} /--> + + <!-- wp:search {"label":"Search","showLabel":false,"placeholder":"Search...","buttonText":"Search","buttonPosition":"button-inside","buttonUseIcon":true,"className":"site-header-search"} /--> + + <!-- wp:group {"layout":{"type":"flex","justifyContent":"left"}} --> + <div class="wp-block-group"> + <!-- wp:group {"style":{"border":{"top":{"color":"var:preset|color|border-gray","width":"1px"}},"layout":{"selfStretch":"fixed","flexSize":"var(--wp--preset--spacing--70)"}},"layout":{"type":"constrained"}} --> + <div class="wp-block-group" style="border-top-color:var(--wp--preset--color--border-gray);border-top-width:1px"></div> + <!-- /wp:group --> + </div> + <!-- /wp:group --> + </header> + <!-- /wp:group --> + + <!-- wp:template-part {"slug":"query-loop","className":"query-loop"} /--> +</main> +<!-- /wp:group --> + +<!-- wp:template-part {"slug":"footer"} /--> diff --git a/templates/single-post-format-aside.html b/templates/single-post-format-aside.html new file mode 100644 index 00000000..4a4d6403 --- /dev/null +++ b/templates/single-post-format-aside.html @@ -0,0 +1,47 @@ +<!-- wp:template-part {"slug":"header","tagName":"header","className":"site-header"} /--> + +<!-- wp:group {"tagName":"main","style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}},"layout":{"type":"constrained"}} --> +<main id="primary" class="wp-block-group" style="margin-top:var(--wp--preset--spacing--60)"> + <!-- wp:group {"tagName":"article","className":"format-aside","layout":{"type":"constrained"}} --> + <article class="wp-block-group format-aside"> + <!-- wp:group {"tagName":"header","className":"entry-header","layout":{"type":"constrained"}} --> + <header class="wp-block-group entry-header"> + <!-- wp:template-part {"slug":"post-meta","className":"entry-meta"} /--> + +<!-- wp:spacer {"height":"var:preset|spacing|30"} --> +<div style="height:var(--wp--preset--spacing--30)" aria-hidden="true" class="wp-block-spacer"></div> +<!-- /wp:spacer --> + </header> + <!-- /wp:group --> + + <!-- wp:post-content {"className":"entry-content e-content aside-content","layout":{"type":"constrained"}} /--> + + <!-- wp:group {"tagName":"footer","className":"entry-footer","style":{"spacing":{"margin":{"top":"var:preset|spacing|50"}}},"layout":{"type":"constrained"}} --> + <footer class="wp-block-group entry-footer" style="margin-top:var(--wp--preset--spacing--50)"> + <!-- wp:post-terms {"term":"post_tag","prefix":"Tags: ","className":"tag-links","style":{"spacing":{"margin":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}}}} /--> + </footer> + <!-- /wp:group --> + + </article> + <!-- /wp:group --> + + <!-- wp:group {"className":"post-navigation","style":{"spacing":{"margin":{"top":"var:preset|spacing|80","bottom":"var:preset|spacing|80"}}},"layout":{"type":"constrained"}} --> + <div class="wp-block-group post-navigation" style="margin-top:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--80)"> + <!-- wp:group {"layout":{"type":"flex","flexWrap":"wrap","justifyContent":"space-between"}} --> + <div class="wp-block-group"> + <!-- wp:post-navigation-link {"type":"previous","showTitle":true,"linkLabel":true,"arrow":"arrow"} /--> + <!-- wp:post-navigation-link {"type":"next","showTitle":true,"linkLabel":true,"arrow":"arrow"} /--> + </div> + <!-- /wp:group --> + </div> + <!-- /wp:group --> + + <!-- wp:group {"className":"comments-area","style":{"spacing":{"margin":{"top":"var:preset|spacing|90"}}},"layout":{"type":"constrained"}} --> + <div class="wp-block-group comments-area" style="margin-top:var(--wp--preset--spacing--90)"> + <!-- wp:template-part {"slug":"comments","className":"comments-template"} /--> + </div> + <!-- /wp:group --> +</main> +<!-- /wp:group --> + +<!-- wp:template-part {"slug":"footer"} /--> diff --git a/templates/single-post-format-status.html b/templates/single-post-format-status.html new file mode 100644 index 00000000..e313e5fa --- /dev/null +++ b/templates/single-post-format-status.html @@ -0,0 +1,47 @@ +<!-- wp:template-part {"slug":"header","tagName":"header","className":"site-header"} /--> + +<!-- wp:group {"tagName":"main","style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}},"layout":{"type":"constrained"}} --> +<main id="primary" class="wp-block-group" style="margin-top:var(--wp--preset--spacing--60)"> + <!-- wp:group {"tagName":"article","className":"format-status","layout":{"type":"constrained"}} --> + <article class="wp-block-group format-status"> + <!-- wp:group {"tagName":"header","className":"entry-header","layout":{"type":"constrained"}} --> + <header class="wp-block-group entry-header"> + <!-- wp:template-part {"slug":"post-meta","className":"entry-meta"} /--> + +<!-- wp:spacer {"height":"var:preset|spacing|30"} --> +<div style="height:var(--wp--preset--spacing--30)" aria-hidden="true" class="wp-block-spacer"></div> +<!-- /wp:spacer --> + </header> + <!-- /wp:group --> + + <!-- wp:post-content {"className":"entry-content e-content status-content","layout":{"type":"constrained"}} /--> + + <!-- wp:group {"tagName":"footer","className":"entry-footer","style":{"spacing":{"margin":{"top":"var:preset|spacing|50"}}},"layout":{"type":"constrained"}} --> + <footer class="wp-block-group entry-footer" style="margin-top:var(--wp--preset--spacing--50)"> + <!-- wp:post-terms {"term":"post_tag","prefix":"Tags: ","className":"tag-links","style":{"spacing":{"margin":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}}}} /--> + </footer> + <!-- /wp:group --> + + </article> + <!-- /wp:group --> + + <!-- wp:group {"className":"post-navigation","style":{"spacing":{"margin":{"top":"var:preset|spacing|80","bottom":"var:preset|spacing|80"}}},"layout":{"type":"constrained"}} --> + <div class="wp-block-group post-navigation" style="margin-top:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--80)"> + <!-- wp:group {"layout":{"type":"flex","flexWrap":"wrap","justifyContent":"space-between"}} --> + <div class="wp-block-group"> + <!-- wp:post-navigation-link {"type":"previous","showTitle":true,"linkLabel":true,"arrow":"arrow"} /--> + <!-- wp:post-navigation-link {"type":"next","showTitle":true,"linkLabel":true,"arrow":"arrow"} /--> + </div> + <!-- /wp:group --> + </div> + <!-- /wp:group --> + + <!-- wp:group {"className":"comments-area","style":{"spacing":{"margin":{"top":"var:preset|spacing|90"}}},"layout":{"type":"constrained"}} --> + <div class="wp-block-group comments-area" style="margin-top:var(--wp--preset--spacing--90)"> + <!-- wp:template-part {"slug":"comments","className":"comments-template"} /--> + </div> + <!-- /wp:group --> +</main> +<!-- /wp:group --> + +<!-- wp:template-part {"slug":"footer"} /--> diff --git a/templates/single-post-format-video.html b/templates/single-post-format-video.html new file mode 100644 index 00000000..d776bad3 --- /dev/null +++ b/templates/single-post-format-video.html @@ -0,0 +1,50 @@ +<!-- wp:template-part {"slug":"header","tagName":"header","className":"site-header"} /--> + +<!-- wp:group {"tagName":"main","style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}},"layout":{"type":"default"}} --> +<main id="primary" class="wp-block-group" style="margin-top:var(--wp--preset--spacing--60)"> + <!-- wp:group {"tagName":"article","className":"format-video","layout":{"type":"default"}} --> + <article class="wp-block-group format-video"> + <!-- wp:autonomie/video-hero /--> + + <!-- wp:group {"tagName":"header","className":"entry-header video-meta","style":{"spacing":{"margin":{"top":"var:preset|spacing|50"}}},"layout":{"type":"constrained"}} --> + <header class="wp-block-group entry-header video-meta" style="margin-top:var(--wp--preset--spacing--50)"> + <!-- wp:post-title {"level":1,"style":{"spacing":{"margin":{"bottom":"0"}}},"fontSize":"x-large"} /--> + + <!-- wp:template-part {"slug":"post-meta","className":"entry-meta"} /--> + +<!-- wp:spacer {"height":"var:preset|spacing|30"} --> +<div style="height:var(--wp--preset--spacing--30)" aria-hidden="true" class="wp-block-spacer"></div> +<!-- /wp:spacer --> + </header> + <!-- /wp:group --> + + <!-- wp:post-content {"className":"entry-content e-content video-content","layout":{"type":"constrained"}} /--> + + <!-- wp:group {"tagName":"footer","className":"entry-footer","style":{"spacing":{"margin":{"top":"var:preset|spacing|50"}}},"layout":{"type":"constrained"}} --> + <footer class="wp-block-group entry-footer" style="margin-top:var(--wp--preset--spacing--50)"> + <!-- wp:post-terms {"term":"post_tag","prefix":"Tags: ","className":"tag-links","style":{"spacing":{"margin":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}}}} /--> + </footer> + <!-- /wp:group --> + </article> + <!-- /wp:group --> + + <!-- wp:group {"className":"post-navigation","style":{"spacing":{"margin":{"top":"var:preset|spacing|80","bottom":"var:preset|spacing|80"}}},"layout":{"type":"constrained"}} --> + <div class="wp-block-group post-navigation" style="margin-top:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--80)"> + <!-- wp:group {"layout":{"type":"flex","flexWrap":"wrap","justifyContent":"space-between"}} --> + <div class="wp-block-group"> + <!-- wp:post-navigation-link {"type":"previous","showTitle":true,"linkLabel":true,"arrow":"arrow"} /--> + <!-- wp:post-navigation-link {"type":"next","showTitle":true,"linkLabel":true,"arrow":"arrow"} /--> + </div> + <!-- /wp:group --> + </div> + <!-- /wp:group --> + + <!-- wp:group {"className":"comments-area","style":{"spacing":{"margin":{"top":"var:preset|spacing|90"}}},"layout":{"type":"constrained"}} --> + <div class="wp-block-group comments-area" style="margin-top:var(--wp--preset--spacing--90)"> + <!-- wp:template-part {"slug":"comments","className":"comments-template"} /--> + </div> + <!-- /wp:group --> +</main> +<!-- /wp:group --> + +<!-- wp:template-part {"slug":"footer"} /--> diff --git a/templates/single.html b/templates/single.html new file mode 100644 index 00000000..1b954301 --- /dev/null +++ b/templates/single.html @@ -0,0 +1,50 @@ +<!-- wp:template-part {"slug":"header","tagName":"header","className":"site-header"} /--> + +<!-- wp:group {"tagName":"main","style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}},"layout":{"type":"default"}} --> +<main id="primary" class="wp-block-group" style="margin-top:var(--wp--preset--spacing--60)"> + <!-- wp:group {"tagName":"article","layout":{"type":"default"}} --> + <article class="wp-block-group"> + <!-- wp:group {"tagName":"header","className":"entry-header","layout":{"type":"constrained"}} --> + <header class="wp-block-group entry-header"> + <!-- wp:post-title {"level":1} /--> + + <!-- wp:template-part {"slug":"post-meta","className":"entry-meta"} /--> + +<!-- wp:spacer {"height":"var:preset|spacing|30"} --> +<div style="height:var(--wp--preset--spacing--30)" aria-hidden="true" class="wp-block-spacer"></div> +<!-- /wp:spacer --> + </header> + <!-- /wp:group --> + + <!-- wp:post-featured-image {"align":"wide","style":{"spacing":{"margin":{"top":"var:preset|spacing|60","bottom":"var:preset|spacing|60"}}}} /--> + + <!-- wp:post-content {"className":"entry-content e-content","layout":{"type":"constrained"}} /--> + + <!-- wp:group {"tagName":"footer","className":"entry-footer","style":{"spacing":{"margin":{"top":"var:preset|spacing|50"}}},"layout":{"type":"constrained"}} --> + <footer class="wp-block-group entry-footer" style="margin-top:var(--wp--preset--spacing--50)"> + <!-- wp:post-terms {"term":"post_tag","prefix":"Tags: ","className":"tag-links","style":{"spacing":{"margin":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}}}} /--> + </footer> + <!-- /wp:group --> + </article> + <!-- /wp:group --> + + <!-- wp:group {"className":"post-navigation","style":{"spacing":{"margin":{"top":"var:preset|spacing|80","bottom":"var:preset|spacing|80"}}},"layout":{"type":"constrained"}} --> + <div class="wp-block-group post-navigation" style="margin-top:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--80)"> + <!-- wp:group {"layout":{"type":"flex","flexWrap":"wrap","justifyContent":"space-between"}} --> + <div class="wp-block-group"> + <!-- wp:post-navigation-link {"type":"previous","showTitle":true,"linkLabel":true,"arrow":"arrow"} /--> + <!-- wp:post-navigation-link {"type":"next","showTitle":true,"linkLabel":true,"arrow":"arrow"} /--> + </div> + <!-- /wp:group --> + </div> + <!-- /wp:group --> + + <!-- wp:group {"className":"comments-area","style":{"spacing":{"margin":{"top":"var:preset|spacing|90"}}},"layout":{"type":"constrained"}} --> + <div class="wp-block-group comments-area" style="margin-top:var(--wp--preset--spacing--90)"> + <!-- wp:template-part {"slug":"comments","className":"comments-template"} /--> + </div> + <!-- /wp:group --> +</main> +<!-- /wp:group --> + +<!-- wp:template-part {"slug":"footer"} /--> diff --git a/theme.json b/theme.json new file mode 100644 index 00000000..798914f8 --- /dev/null +++ b/theme.json @@ -0,0 +1,1204 @@ +{ + "$schema": "https://schemas.wp.org/trunk/theme.json", + "version": 3, + "settings": { + "appearanceTools": true, + "useRootPaddingAwareAlignments": true, + "color": { + "palette": [ + { + "name": "Base", + "slug": "base", + "color": "light-dark(#ffffff, #373d3f)" + }, + { + "name": "Contrast", + "slug": "contrast", + "color": "light-dark(#373d3f, #ffffff)" + }, + { + "name": "Primary", + "slug": "primary", + "color": "light-dark(#0073aa, #5bc0eb)" + }, + { + "name": "Lighter Blue", + "slug": "lighter-blue", + "color": "light-dark(#229fd8, #8dd6f0)" + }, + { + "name": "Blue Jeans", + "slug": "blue-jeans", + "color": "#5bc0eb" + }, + { + "name": "Orioles Orange", + "slug": "orioles-orange", + "color": "#fa5b0f" + }, + { + "name": "USC Gold", + "slug": "usc-gold", + "color": "light-dark(#ffcc00, #ffe066)" + }, + { + "name": "Gargoyle Gas", + "slug": "gargoyle-gas", + "color": "#fde74c" + }, + { + "name": "Yellow", + "slug": "yellow", + "color": "#fff9c0" + }, + { + "name": "Android Green", + "slug": "android-green", + "color": "light-dark(#9bc53d, #b8d977)" + }, + { + "name": "White", + "slug": "white", + "color": "light-dark(#ffffff, #373d3f)" + }, + { + "name": "Very Light Gray", + "slug": "very-light-gray", + "color": "light-dark(#eeeeee, #4f575a)" + }, + { + "name": "Background Gray", + "slug": "background-gray", + "color": "light-dark(#fafafb, #4f575a)" + }, + { + "name": "Border Gray", + "slug": "border-gray", + "color": "light-dark(#d1d5d7, #677275)" + }, + { + "name": "Lighter Gray", + "slug": "lighter-gray", + "color": "#b6bdbf" + }, + { + "name": "Light Gray", + "slug": "light-gray", + "color": "light-dark(#677275, #d1d5d7)" + }, + { + "name": "Gray", + "slug": "gray", + "color": "light-dark(#4f575a, #eeeeee)" + }, + { + "name": "Dark Gray", + "slug": "dark-gray", + "color": "light-dark(#373d3f, #ffffff)" + }, + { + "name": "Black", + "slug": "black", + "color": "light-dark(#000000, #ffffff)" + }, + { + "name": "Background", + "slug": "background", + "color": "light-dark(#ffffff, #373d3f)" + }, + { + "name": "Text", + "slug": "text", + "color": "light-dark(#373d3f, #ffffff)" + } + ], + "custom": true, + "customDuotone": true, + "customGradient": true, + "defaultDuotone": true, + "defaultGradients": true, + "defaultPalette": false, + "duotone": [] + }, + "layout": { + "contentSize": "700px", + "wideSize": "900px" + }, + "spacing": { + "padding": true, + "margin": true, + "blockGap": true, + "units": ["px", "em", "rem", "%", "vw", "vh"], + "spacingSizes": [ + { + "name": "Small", + "slug": "30", + "size": "0.5rem" + }, + { + "name": "Small Plus", + "slug": "35", + "size": "0.9375rem" + }, + { + "name": "Medium Small", + "slug": "40", + "size": "1rem" + }, + { + "name": "Medium", + "slug": "50", + "size": "1.5rem" + }, + { + "name": "Medium Plus", + "slug": "55", + "size": "1.875rem" + }, + { + "name": "Medium Large", + "slug": "60", + "size": "2rem" + }, + { + "name": "Large", + "slug": "70", + "size": "3rem" + }, + { + "name": "Spacious", + "slug": "75", + "size": "3.125rem" + }, + { + "name": "Wide", + "slug": "78", + "size": "3.75rem" + }, + { + "name": "Extra Large", + "slug": "80", + "size": "5rem" + }, + { + "name": "XX-Large", + "slug": "90", + "size": "6.25rem" + }, + { + "name": "XXX-Large", + "slug": "100", + "size": "8rem" + } + ] + }, + "typography": { + "fluid": true, + "customFontSize": true, + "fontSizes": [ + { + "name": "Small", + "slug": "small", + "size": "0.8rem", + "fluid": false + }, + { + "name": "Medium", + "slug": "medium", + "size": "1.2rem", + "fluid": false + }, + { + "name": "Large", + "slug": "large", + "size": "1.5rem", + "fluid": false + }, + { + "name": "Extra Large", + "slug": "x-large", + "size": "1.8rem", + "fluid": false + }, + { + "name": "Huge", + "slug": "huge", + "size": "2.4rem", + "fluid": { + "min": "2rem", + "max": "2.4rem" + } + } + ], + "fontFamilies": [ + { + "fontFamily": "Lato, sans-serif", + "name": "Lato", + "slug": "sans-serif", + "fontFace": [ + { + "fontFamily": "Lato", + "fontWeight": "300", + "fontStyle": "normal", + "fontDisplay": "swap", + "src": ["file:./assets/font/lato/lato-v13-latin-300.woff2"] + }, + { + "fontFamily": "Lato", + "fontWeight": "300", + "fontStyle": "italic", + "fontDisplay": "swap", + "src": ["file:./assets/font/lato/lato-v13-latin-300italic.woff2"] + }, + { + "fontFamily": "Lato", + "fontWeight": "400", + "fontStyle": "normal", + "fontDisplay": "swap", + "src": ["file:./assets/font/lato/lato-v25-latin-400.woff2"] + }, + { + "fontFamily": "Lato", + "fontWeight": "400", + "fontStyle": "italic", + "fontDisplay": "swap", + "src": ["file:./assets/font/lato/lato-v25-latin-400italic.woff2"] + }, + { + "fontFamily": "Lato", + "fontWeight": "700", + "fontStyle": "normal", + "fontDisplay": "swap", + "src": ["file:./assets/font/lato/lato-v25-latin-700.woff2"] + }, + { + "fontFamily": "Lato", + "fontWeight": "700", + "fontStyle": "italic", + "fontDisplay": "swap", + "src": ["file:./assets/font/lato/lato-v25-latin-700italic.woff2"] + }, + { + "fontFamily": "Lato", + "fontWeight": "900", + "fontStyle": "normal", + "fontDisplay": "swap", + "src": ["file:./assets/font/lato/lato-v25-latin-900.woff2"] + }, + { + "fontFamily": "Lato", + "fontWeight": "900", + "fontStyle": "italic", + "fontDisplay": "swap", + "src": ["file:./assets/font/lato/lato-v25-latin-900italic.woff2"] + } + ] + }, + { + "fontFamily": "Merriweather, serif", + "name": "Merriweather", + "slug": "serif", + "fontFace": [ + { + "fontFamily": "Merriweather", + "fontWeight": "300", + "fontStyle": "normal", + "fontDisplay": "swap", + "src": [ + "file:./assets/font/merriweather/merriweather-v15-latin-300.woff2" + ] + }, + { + "fontFamily": "Merriweather", + "fontWeight": "300", + "fontStyle": "italic", + "fontDisplay": "swap", + "src": [ + "file:./assets/font/merriweather/merriweather-v15-latin-300italic.woff2" + ] + }, + { + "fontFamily": "Merriweather", + "fontWeight": "500", + "fontStyle": "normal", + "fontDisplay": "swap", + "src": [ + "file:./assets/font/merriweather/merriweather-v33-latin-variable.woff2" + ] + }, + { + "fontFamily": "Merriweather", + "fontWeight": "600", + "fontStyle": "normal", + "fontDisplay": "swap", + "src": [ + "file:./assets/font/merriweather/merriweather-v33-latin-variable.woff2" + ] + }, + { + "fontFamily": "Merriweather", + "fontWeight": "700", + "fontStyle": "italic", + "fontDisplay": "swap", + "src": [ + "file:./assets/font/merriweather/merriweather-v15-latin-700italic.woff2" + ] + }, + { + "fontFamily": "Merriweather", + "fontWeight": "700", + "fontStyle": "normal", + "fontDisplay": "swap", + "src": [ + "file:./assets/font/merriweather/merriweather-v15-latin-700.woff2" + ] + } + ] + } + ] + }, + "custom": { + "header": { + "paddingBlock": "var(--wp--preset--spacing--50)", + "marginBottom": "var(--wp--preset--spacing--60)", + "gap": "var(--wp--preset--spacing--40)", + "brandingGap": "0.35em", + "rightGap": "var(--wp--preset--spacing--35)" + }, + "meta": { + "fontSize": "1rem", + "lineHeight": "1.35", + "fontWeight": "400", + "marginBlock": "0", + "avatarGap": "0.45em", + "rowGap": "0.25em", + "bylineGap": "0.3em", + "separatorGap": "0.4em" + }, + "postFormats": { + "support": true + } + } + }, + "styles": { + "css": ":root { color-scheme: light dark; }", + "color": { + "background": "var(--wp--preset--color--background)", + "text": "var(--wp--preset--color--text)" + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--sans-serif)", + "fontSize": "var(--wp--preset--font-size--medium)", + "fontWeight": "400", + "lineHeight": "1.6" + }, + "spacing": { + "padding": { + "top": "0", + "right": "1rem", + "bottom": "0", + "left": "1rem" + }, + "blockGap": "1.5rem" + }, + "elements": { + "h1": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--serif)", + "fontWeight": "500", + "fontSize": "2.1em", + "lineHeight": "1.15" + }, + "spacing": { + "margin": { + "bottom": "0" + } + } + }, + "h2": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--serif)", + "fontWeight": "600", + "fontSize": "1.6em", + "lineHeight": "1.25" + }, + "spacing": { + "margin": { + "bottom": "0" + } + } + }, + "h3": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--serif)", + "fontWeight": "700", + "fontSize": "1.35em", + "lineHeight": "1.3" + }, + "spacing": { + "margin": { + "bottom": "0" + } + } + }, + "h4": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--serif)", + "fontWeight": "400", + "fontSize": "1.15em", + "lineHeight": "1.35" + }, + "spacing": { + "margin": { + "bottom": "0" + } + } + }, + "h5": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--sans-serif)", + "fontWeight": "700", + "fontSize": "0.9em", + "lineHeight": "1.4", + "letterSpacing": "0.05em", + "textTransform": "uppercase" + }, + "spacing": { + "margin": { + "bottom": "0" + } + } + }, + "h6": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--sans-serif)", + "fontWeight": "700", + "fontSize": "0.8em", + "lineHeight": "1.4", + "letterSpacing": "0.05em", + "textTransform": "uppercase" + }, + "spacing": { + "margin": { + "bottom": "0" + } + } + }, + "caption": { + "color": { + "text": "var(--wp--preset--color--gray)" + }, + "typography": { + "fontSize": "0.7em", + "fontStyle": "normal", + "fontWeight": "400" + } + }, + "link": { + "color": { + "text": "var(--wp--preset--color--dark-gray)" + }, + ":hover": { + "typography": { + "textDecoration": "none" + } + } + }, + "button": { + "color": { + "background": "var(--wp--preset--color--white)", + "text": "var(--wp--preset--color--gray)" + }, + "border": { + "width": "1px", + "style": "solid", + "color": "var(--wp--preset--color--border-gray)", + "radius": "50px" + }, + "spacing": { + "padding": { + "top": "10px", + "right": "20px", + "bottom": "10px", + "left": "20px" + } + }, + "typography": { + "lineHeight": "1" + }, + ":hover": { + "color": { + "background": "var(--wp--preset--color--primary)", + "text": "var(--wp--preset--color--white)" + }, + "border": { + "color": "var(--wp--preset--color--primary)" + } + } + } + }, + "blocks": { + "core/post-template": { + "spacing": { + "blockGap": "var(--wp--preset--spacing--100)" + } + }, + "core/avatar": { + "border": { + "radius": "50%" + } + }, + "core/post-excerpt": { + "typography": { + "fontSize": "1.1em" + }, + "spacing": { + "margin": { + "top": "var(--wp--preset--spacing--35)" + } + }, + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--primary)" + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--sans-serif)", + "fontSize": "0.85em", + "fontWeight": "600", + "letterSpacing": "0.02em", + "textDecoration": "none" + }, + ":hover": { + "color": { + "text": "var(--wp--preset--color--lighter-blue)" + }, + "typography": { + "textDecoration": "underline" + } + } + } + } + }, + "core/post-comments-link": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--sans-serif)", + "fontSize": "0.85em" + }, + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--light-gray)" + }, + "typography": { + "textDecoration": "none" + }, + ":hover": { + "color": { + "text": "var(--wp--preset--color--primary)" + }, + "typography": { + "textDecoration": "none" + } + } + } + } + }, + "core/post-navigation-link": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--sans-serif)", + "fontSize": "0.85em", + "fontWeight": "600", + "letterSpacing": "0.02em" + }, + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--primary)" + }, + "typography": { + "textDecoration": "none" + }, + ":hover": { + "color": { + "text": "var(--wp--preset--color--lighter-blue)" + }, + "typography": { + "textDecoration": "underline" + } + } + } + } + }, + "core/search": { + "typography": { + "fontSize": "1rem" + }, + "elements": { + "button": { + "color": { + "background": "var(--wp--preset--color--gray)", + "text": "var(--wp--preset--color--white)" + } + } + } + }, + "core/query-pagination": { + "typography": { + "fontSize": "1em" + }, + "spacing": { + "margin": { + "top": "var(--wp--preset--spacing--60)" + } + }, + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--gray)" + }, + "typography": { + "textDecoration": "none" + }, + ":hover": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + } + } + } + }, + "core/query": { + "spacing": { + "blockGap": "0" + } + }, + "autonomie/post-format": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--sans-serif)", + "fontSize": "var(--wp--custom--meta--font-size)", + "lineHeight": "var(--wp--custom--meta--line-height)", + "fontWeight": "var(--wp--custom--meta--font-weight)" + }, + "color": { + "text": "var(--wp--preset--color--light-gray)" + }, + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--light-gray)" + }, + "typography": { + "textDecoration": "none" + }, + ":hover": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + } + } + } + }, + "core/query-title": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--serif)", + "fontSize": "var(--wp--preset--font-size--large)", + "fontWeight": "500", + "lineHeight": "1.2", + "textAlign": "left" + }, + "color": { + "text": "var(--wp--preset--color--dark-gray)" + }, + "spacing": { + "margin": { + "top": "0", + "bottom": "var(--wp--preset--spacing--35)" + } + } + }, + "core/term-description": { + "typography": { + "fontSize": "var(--wp--preset--font-size--medium)", + "lineHeight": "1.6", + "textAlign": "left" + }, + "color": { + "text": "var(--wp--preset--color--gray)" + }, + "spacing": { + "margin": { + "top": "0", + "bottom": "var(--wp--preset--spacing--60)" + } + }, + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--primary)" + }, + ":hover": { + "color": { + "text": "var(--wp--preset--color--lighter-blue)" + } + } + } + } + }, + "core/site-title": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--sans-serif)", + "fontSize": "1.5em", + "fontWeight": "700", + "lineHeight": "1.3" + }, + "spacing": { + "margin": { + "top": "0", + "bottom": "0" + } + }, + "elements": { + "link": { + "typography": { + "textDecoration": "none" + }, + ":hover": { + "typography": { + "textDecoration": "underline" + } + } + } + } + }, + "core/post-title": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--serif)", + "fontSize": "var(--wp--preset--font-size--huge)", + "fontWeight": "500", + "lineHeight": "1.2" + }, + "spacing": { + "margin": { + "top": "0", + "bottom": "0" + } + }, + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--dark-gray)" + }, + "typography": { + "textDecoration": "none" + }, + ":hover": { + "typography": { + "textDecoration": "underline" + } + } + } + } + }, + "core/post-content": { + "elements": { + "link": { + "typography": { + "textDecoration": "underline", + "textDecorationColor": "var(--wp--preset--color--android-green)", + "textDecorationThickness": "3px", + "textUnderlineOffset": "6px" + }, + ":hover": { + "typography": { + "textDecorationColor": "var(--wp--preset--color--usc-gold)" + } + } + } + } + }, + "core/post-date": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--sans-serif)", + "fontSize": "var(--wp--custom--meta--font-size)", + "lineHeight": "var(--wp--custom--meta--line-height)", + "fontWeight": "var(--wp--custom--meta--font-weight)" + }, + "color": { + "text": "var(--wp--preset--color--light-gray)" + }, + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--light-gray)" + }, + "typography": { + "fontWeight": "var(--wp--custom--meta--font-weight)", + "textDecoration": "none" + }, + ":hover": { + "color": { + "text": "var(--wp--preset--color--primary)" + }, + "typography": { + "textDecoration": "underline" + } + } + } + } + }, + "core/post-author": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--sans-serif)", + "fontSize": "var(--wp--custom--meta--font-size)", + "lineHeight": "var(--wp--custom--meta--line-height)", + "fontWeight": "var(--wp--custom--meta--font-weight)" + }, + "color": { + "text": "var(--wp--preset--color--light-gray)" + }, + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--light-gray)" + }, + "typography": { + "fontWeight": "var(--wp--custom--meta--font-weight)", + "textDecoration": "none" + }, + ":hover": { + "color": { + "text": "var(--wp--preset--color--primary)" + }, + "typography": { + "textDecoration": "underline" + } + } + } + } + }, + "core/post-terms": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--sans-serif)", + "fontSize": "var(--wp--custom--meta--font-size)", + "lineHeight": "var(--wp--custom--meta--line-height)", + "fontWeight": "var(--wp--custom--meta--font-weight)" + }, + "color": { + "text": "var(--wp--preset--color--light-gray)" + }, + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--light-gray)" + }, + "typography": { + "fontWeight": "var(--wp--custom--meta--font-weight)", + "textDecoration": "none" + }, + ":hover": { + "color": { + "text": "var(--wp--preset--color--primary)" + }, + "typography": { + "textDecoration": "underline" + } + } + } + } + }, + "core/quote": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--serif)", + "fontStyle": "italic", + "lineHeight": "1.8" + }, + "color": { + "text": "var(--wp--preset--color--gray)" + }, + "spacing": { + "padding": { + "left": "var(--wp--preset--spacing--55)", + "top": "0", + "bottom": "0" + }, + "margin": { + "top": "var(--wp--preset--spacing--60)", + "bottom": "var(--wp--preset--spacing--60)" + } + }, + "border": { + "left": { + "style": "solid", + "color": "var(--wp--preset--color--border-gray)", + "width": "3px" + } + } + }, + "core/pullquote": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--serif)", + "fontStyle": "italic" + }, + "color": { + "text": "var(--wp--preset--color--gray)" + }, + "spacing": { + "padding": { + "top": "var(--wp--preset--spacing--55)", + "right": "0", + "bottom": "var(--wp--preset--spacing--55)", + "left": "0" + }, + "margin": { + "top": "var(--wp--preset--spacing--60)", + "bottom": "var(--wp--preset--spacing--60)" + } + }, + "border": { + "width": "0" + } + }, + "core/code": { + "color": { + "background": "var(--wp--preset--color--dark-gray)", + "text": "var(--wp--preset--color--white)" + }, + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--white)" + } + } + }, + "spacing": { + "padding": { + "top": "4px", + "right": "5px", + "bottom": "5px", + "left": "5px" + } + }, + "border": { + "radius": "0.3em" + } + }, + "core/preformatted": { + "color": { + "background": "var(--wp--preset--color--black)", + "text": "var(--wp--preset--color--white)" + }, + "spacing": { + "padding": { + "top": "var(--wp--preset--spacing--75)", + "right": "var(--wp--preset--spacing--75)", + "bottom": "var(--wp--preset--spacing--75)", + "left": "var(--wp--preset--spacing--75)" + }, + "margin": { + "top": "var(--wp--preset--spacing--75)", + "bottom": "var(--wp--preset--spacing--75)" + } + } + }, + "core/separator": { + "border": { + "color": "var(--wp--preset--color--border-gray)", + "width": "1px 0 0 0" + }, + "spacing": { + "margin": { + "top": "var(--wp--preset--spacing--78)", + "bottom": "var(--wp--preset--spacing--78)" + } + } + }, + "core/image": { + "spacing": { + "margin": { + "top": "var(--wp--preset--spacing--60)", + "bottom": "var(--wp--preset--spacing--60)" + } + } + }, + "core/gallery": { + "spacing": { + "blockGap": "var(--wp--preset--spacing--40)" + } + }, + "core/footnotes": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + }, + "border": { + "top": { + "style": "solid", + "color": "var(--wp--preset--color--border-gray)", + "width": "1px" + } + }, + "spacing": { + "margin": { + "top": "var(--wp--preset--spacing--78)" + }, + "padding": { + "top": "var(--wp--preset--spacing--55)" + } + } + }, + "core/comment-author-name": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--sans-serif)", + "fontSize": "var(--wp--custom--meta--font-size)", + "lineHeight": "var(--wp--custom--meta--line-height)", + "fontWeight": "var(--wp--custom--meta--font-weight)" + }, + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--gray)" + }, + "typography": { + "textDecoration": "none" + }, + ":hover": { + "color": { + "text": "var(--wp--preset--color--primary)" + }, + "typography": { + "textDecoration": "underline" + } + } + } + } + }, + "core/comment-date": { + "typography": { + "fontSize": "var(--wp--custom--meta--font-size)", + "lineHeight": "var(--wp--custom--meta--line-height)", + "fontWeight": "var(--wp--custom--meta--font-weight)" + }, + "color": { + "text": "var(--wp--preset--color--gray)" + } + }, + "core/comment-reply-link": { + "typography": { + "fontSize": "var(--wp--custom--meta--font-size)", + "lineHeight": "var(--wp--custom--meta--line-height)", + "fontWeight": "var(--wp--custom--meta--font-weight)" + } + }, + "core/comment-content": { + "typography": { + "lineHeight": "1.6" + } + }, + "core/navigation": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--sans-serif)", + "fontSize": "1rem", + "lineHeight": "1.3" + }, + "spacing": { + "padding": { + "top": "0", + "bottom": "0" + } + }, + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--dark-gray)" + }, + "typography": { + "textDecoration": "none" + }, + ":hover": { + "typography": { + "textDecoration": "underline" + } + } + } + } + }, + "core/button": { + "color": { + "background": "var(--wp--preset--color--white)", + "text": "var(--wp--preset--color--gray)" + }, + "border": { + "radius": "50px", + "width": "1px", + "style": "solid", + "color": "var(--wp--preset--color--border-gray)" + }, + "spacing": { + "padding": { + "top": "10px", + "right": "20px", + "bottom": "10px", + "left": "20px" + } + }, + "typography": { + "lineHeight": "1" + } + }, + "core/table": { + "spacing": { + "margin": { + "top": "var(--wp--preset--spacing--55)", + "bottom": "var(--wp--preset--spacing--55)" + } + } + }, + "core/comments": { + "spacing": { + "margin": { + "top": "0" + } + } + } + } + }, + "templateParts": [ + { + "name": "header", + "title": "Header", + "area": "header" + }, + { + "name": "footer", + "title": "Footer", + "area": "footer" + }, + { + "name": "post-meta", + "title": "Post Meta", + "area": "uncategorized" + }, + { + "name": "query-loop", + "title": "Query Loop", + "area": "uncategorized" + }, + { + "name": "comments", + "title": "Comments", + "area": "uncategorized" + }, + { + "name": "navigation-overlay", + "title": "Navigation Overlay", + "area": "navigation-overlay" + } + ], + "customTemplates": [ + { + "name": "blank", + "title": "Blank", + "postTypes": ["page", "post"] + } + ] +} diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 00000000..7bc315a9 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,40 @@ +const defaultConfig = require( '@wordpress/scripts/config/webpack.config' ); +const path = require( 'path' ); +const CopyWebpackPlugin = require( 'copy-webpack-plugin' ); + +// Filter out default CopyWebpackPlugin +const filteredPlugins = defaultConfig.plugins.filter( + ( plugin ) => plugin.constructor.name !== 'CopyWebpackPlugin' +); + +// Add custom copy plugin for PHP files +filteredPlugins.push( + new CopyWebpackPlugin( { + patterns: [ + { + from: 'src/post-format/*.php', + to: 'post-format/[name][ext]', + }, + { + from: 'src/post-format/block.json', + to: 'post-format/block.json', + }, + ], + } ) +); + +module.exports = { + ...defaultConfig, + entry: { + 'post-format/index': path.resolve( + process.cwd(), + 'src/post-format', + 'index.js' + ), + }, + output: { + path: path.resolve( process.cwd(), 'build' ), + filename: '[name].js', + }, + plugins: filteredPlugins, +}; diff --git a/widgets/class-autonomie-author-widget.php b/widgets/class-autonomie-author-widget.php deleted file mode 100644 index 1f3bc149..00000000 --- a/widgets/class-autonomie-author-widget.php +++ /dev/null @@ -1,16 +0,0 @@ -<?php - -class Autonomie_Author_Widget extends WP_Widget { - - public function __construct() { - - parent::__construct( - 'autonomie-author', // Base ID - 'Author Details (Autonomie)' // Name - ); - } - - public function widget( $args, $instance ) { - get_template_part( 'template-parts/entry', 'author' ); - } -} diff --git a/widgets/class-autonomie-taxonomy-widget.php b/widgets/class-autonomie-taxonomy-widget.php deleted file mode 100644 index 5bda7d6a..00000000 --- a/widgets/class-autonomie-taxonomy-widget.php +++ /dev/null @@ -1,16 +0,0 @@ -<?php - -class Autonomie_Taxonomy_Widget extends WP_Widget { - - public function __construct() { - - parent::__construct( - 'autonomie-taxonomy', // Base ID - 'Entry Taxonomy (Autonomie)' // Name - ); - } - - public function widget( $args, $instance ) { - get_template_part( 'template-parts/entry', 'taxonomy' ); - } -}