Compare commits
7 Commits
bc5a39923c
...
4fbb2dc8e0
| Author | SHA1 | Date | |
|---|---|---|---|
| 4fbb2dc8e0 | |||
| 51e08b618b | |||
| 1dd2bcda91 | |||
| 8ce4b5f47a | |||
| bccbdb9bf3 | |||
| 64e90bb8e2 | |||
| a9d73b7368 |
46
.github/workflows/stale.yaml
vendored
@@ -1,23 +1,23 @@
|
|||||||
name: Close inactive issues
|
name: Close inactive issues
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
schedule:
|
schedule:
|
||||||
- cron: "0 0 * * *"
|
- cron: "0 0 * * *"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
close-issues:
|
close-issues:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
issues: write
|
issues: write
|
||||||
pull-requests: write
|
pull-requests: write
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/stale@v5
|
- uses: actions/stale@v5
|
||||||
with:
|
with:
|
||||||
days-before-issue-stale: 10
|
days-before-issue-stale: 10
|
||||||
days-before-issue-close: 10
|
days-before-issue-close: 10
|
||||||
stale-issue-label: "stale"
|
stale-issue-label: "stale"
|
||||||
stale-issue-message: "This issue is stale because it has been open for 10 days with no activity."
|
stale-issue-message: "This issue is stale because it has been open for 10 days with no activity."
|
||||||
close-issue-message: "This issue was closed because it has been inactive for 10 days since being marked as stale."
|
close-issue-message: "This issue was closed because it has been inactive for 10 days since being marked as stale."
|
||||||
days-before-pr-stale: -1
|
days-before-pr-stale: -1
|
||||||
days-before-pr-close: -1
|
days-before-pr-close: -1
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|||||||
98
.gitignore
vendored
@@ -1,74 +1,24 @@
|
|||||||
# build output
|
# build output
|
||||||
dist/
|
dist/
|
||||||
backup/
|
backup/
|
||||||
backup/
|
backup/*
|
||||||
*/backup/*
|
|
||||||
/backup
|
# generated types
|
||||||
*/backup/*
|
.astro/
|
||||||
# generated types
|
|
||||||
.astro/
|
# dependencies
|
||||||
|
node_modules/
|
||||||
# dependencies
|
package-lock.json
|
||||||
node_modules/
|
|
||||||
package-lock.json
|
# logs
|
||||||
|
npm-debug.log*
|
||||||
# logs
|
yarn-debug.log*
|
||||||
npm-debug.log*
|
yarn-error.log*
|
||||||
yarn-debug.log*
|
pnpm-debug.log*
|
||||||
yarn-error.log*
|
|
||||||
pnpm-debug.log*
|
# environment variables
|
||||||
|
.env
|
||||||
# environment variables
|
.env.production
|
||||||
.env
|
|
||||||
.env.production
|
# macOS-specific files
|
||||||
.env.local
|
.DS_Store
|
||||||
.env.development
|
|
||||||
|
|
||||||
# macOS-specific files
|
|
||||||
.DS_Store
|
|
||||||
.DS_Store?
|
|
||||||
._*
|
|
||||||
.Spotlight-V100
|
|
||||||
.Trashes
|
|
||||||
|
|
||||||
# Editor directories and files
|
|
||||||
.idea/
|
|
||||||
.vscode/
|
|
||||||
*.suo
|
|
||||||
*.ntvs*
|
|
||||||
*.njsproj
|
|
||||||
*.sln
|
|
||||||
*.sw?
|
|
||||||
|
|
||||||
# Testing
|
|
||||||
coverage/
|
|
||||||
.nyc_output/
|
|
||||||
|
|
||||||
# Temporary files
|
|
||||||
*.log
|
|
||||||
*.tmp
|
|
||||||
.temp/
|
|
||||||
tmp/
|
|
||||||
temp/
|
|
||||||
|
|
||||||
# Optional: Dependency directories
|
|
||||||
jspm_packages/
|
|
||||||
bower_components/
|
|
||||||
|
|
||||||
# Optional: Cache directories
|
|
||||||
.npm/
|
|
||||||
.eslintcache
|
|
||||||
.stylelintcache
|
|
||||||
|
|
||||||
# Production build files
|
|
||||||
build/
|
|
||||||
public/dist/
|
|
||||||
public/build/
|
|
||||||
|
|
||||||
# Optional: Local SSL certificates
|
|
||||||
*.pem
|
|
||||||
*.cert
|
|
||||||
*.key
|
|
||||||
|
|
||||||
# Optional: CDN caches
|
|
||||||
.cdn/
|
|
||||||
|
|||||||
8
.vscode/extensions.json
vendored
@@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"recommendations": ["astro-build.astro-vscode", "unifiedjs.vscode-mdx"],
|
"recommendations": ["astro-build.astro-vscode", "unifiedjs.vscode-mdx"],
|
||||||
"unwantedRecommendations": []
|
"unwantedRecommendations": []
|
||||||
}
|
}
|
||||||
|
|||||||
22
.vscode/launch.json
vendored
@@ -1,11 +1,11 @@
|
|||||||
{
|
{
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"configurations": [
|
"configurations": [
|
||||||
{
|
{
|
||||||
"command": "./node_modules/.bin/astro dev",
|
"command": "./node_modules/.bin/astro dev",
|
||||||
"name": "Development server",
|
"name": "Development server",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"type": "node-terminal"
|
"type": "node-terminal"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
8
.vscode/settings.json
vendored
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"[astro]": {
|
"[astro]": {
|
||||||
"editor.defaultFormatter": "astro-build.astro-vscode"
|
"editor.defaultFormatter": "astro-build.astro-vscode"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
18
LICENSE
@@ -1,9 +1,9 @@
|
|||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2024 Plata_Upravleniya_RF
|
Copyright (c) 2024 Plata_Upravleniya_RF
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|||||||
120
README.md
@@ -1,60 +1,60 @@
|
|||||||
# site-plata-upravleniya-rf
|
# site-plata-upravleniya-rf
|
||||||
|
|
||||||
## 📋 Features
|
## 📋 Features
|
||||||
|
|
||||||
- ✅ Производительность 100/100 Lighthouse
|
- ✅ Производительность 100/100 Lighthouse
|
||||||
- ✅ Отзывчивость
|
- ✅ Отзывчивость
|
||||||
- ✅ Доступность
|
- ✅ Доступность
|
||||||
- ✅ SEO-дружественный
|
- ✅ SEO-дружественный
|
||||||
- ✅ Типобезопасный
|
- ✅ Типобезопасный
|
||||||
- ✅ Минималистичный стиль
|
- ✅ Минималистичный стиль
|
||||||
- ✅ Светлая/Темная тема
|
- ✅ Светлая/Темная тема
|
||||||
- ✅ Анимированный UI
|
- ✅ Анимированный UI
|
||||||
- ✅ Tailwind styling
|
- ✅ Tailwind styling
|
||||||
- ✅ Автоматически сгенерированная sitemap
|
- ✅ Автоматически сгенерированная sitemap
|
||||||
- ✅ Автоматически генерируемый RSS Feed
|
- ✅ Автоматически генерируемый RSS Feed
|
||||||
- ✅ Поддержка Markdown
|
- ✅ Поддержка Markdown
|
||||||
- ✅ Поддержка многомерных выражений (компоненты в Markdown)
|
- ✅ Поддержка многомерных выражений (компоненты в Markdown)
|
||||||
- ✅ Доступный для поиска контент (посты и проекты)
|
- ✅ Доступный для поиска контент (посты и проекты)
|
||||||
|
|
||||||
## 🕊️ Легковесный
|
## 🕊️ Легковесный
|
||||||
Все страницы размером менее 100 КБ (включая шрифты)
|
Все страницы размером менее 100 КБ (включая шрифты)
|
||||||
|
|
||||||
## ⚡︎ Быстро
|
## ⚡︎ Быстро
|
||||||
Рендерится за ~40 мс на localhost
|
Рендерится за ~40 мс на localhost
|
||||||
|
|
||||||
## 📄 Конфигурация
|
## 📄 Конфигурация
|
||||||
|
|
||||||
Записи в блоге о демонстрации служат документацией и конфигурацией.
|
Записи в блоге о демонстрации служат документацией и конфигурацией.
|
||||||
|
|
||||||
## 💻 Команды
|
## 💻 Команды
|
||||||
|
|
||||||
Все команды запускаются из корня проекта, из терминала:
|
Все команды запускаются из корня проекта, из терминала:
|
||||||
|
|
||||||
Замените npm на выбранный вами менеджер пакетов. `npm`, `pnpm`, `yarn`, `bun`, etc
|
Замените npm на выбранный вами менеджер пакетов. `npm`, `pnpm`, `yarn`, `bun`, etc
|
||||||
|
|
||||||
| Команда | Действие |
|
| Команда | Действие |
|
||||||
| :------------------------ | :-------------------------------------------------------------|
|
| :------------------------ | :-------------------------------------------------------------|
|
||||||
| `npm install` | Устанавливает зависимости |
|
| `npm install` | Устанавливает зависимости |
|
||||||
| `npm run dev` | Локальный сервер разработки `localhost:4321` |
|
| `npm run dev` | Локальный сервер разработки `localhost:4321` |
|
||||||
| `npm run dev:network` | Запускает сервер разработки в локальной сети |
|
| `npm run dev:network` | Запускает сервер разработки в локальной сети |
|
||||||
| `npm run sync` | Генерирует типы TypeScript для всех модулей Astro. |
|
| `npm run sync` | Генерирует типы TypeScript для всех модулей Astro. |
|
||||||
| `npm run build` | Создайте свой производственный сайт в `./dist/` |
|
| `npm run build` | Создайте свой производственный сайт в `./dist/` |
|
||||||
| `npm run preview` | Предварительный просмотр сборки перед развертыванием |
|
| `npm run preview` | Предварительный просмотр сборки перед развертыванием |
|
||||||
| `npm run preview:network` | Запускает сервер предварительного просмотра в локальной сети |
|
| `npm run preview:network` | Запускает сервер предварительного просмотра в локальной сети |
|
||||||
| `npm run astro ...` | Запустите команды CLI, такие как `astro add`, `astro check` |
|
| `npm run astro ...` | Запустите команды CLI, такие как `astro add`, `astro check` |
|
||||||
| `npm run astro -- --help` | Получите помощь по использованию Astro CLI |
|
| `npm run astro -- --help` | Получите помощь по использованию Astro CLI |
|
||||||
| `npm run lint` | Запустить ESLint |
|
| `npm run lint` | Запустить ESLint |
|
||||||
| `npm run lint:fix` | Автоматическое исправление проблем с ESLint |
|
| `npm run lint:fix` | Автоматическое исправление проблем с ESLint |
|
||||||
|
|
||||||
## 🗺️ Дорожная карта
|
## 🗺️ Дорожная карта
|
||||||
|
|
||||||
Несколько функций, которые я планирую реализовать
|
Несколько функций, которые я планирую реализовать
|
||||||
- ⬜ Блоки кода — скопировать в буфер обмена
|
- ⬜ Блоки кода — скопировать в буфер обмена
|
||||||
- ⬜ Страницы статей - Содержание
|
- ⬜ Страницы статей - Содержание
|
||||||
- ⬜ Страницы статей – Поделитесь в социальных сетях
|
- ⬜ Страницы статей – Поделитесь в социальных сетях
|
||||||
|
|
||||||
## 🏛️ Лицензия
|
## 🏛️ Лицензия
|
||||||
|
|
||||||
MIT
|
MIT
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
<svg width="179" height="32" viewBox="0 0 179 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
<svg width="179" height="32" viewBox="0 0 179 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
<g clip-path="url(#clip0_8_30)">
|
<g clip-path="url(#clip0_8_30)">
|
||||||
<path d="M173 0H6C2.68629 0 0 2.68629 0 6V26C0 29.3137 2.68629 32 6 32H173C176.314 32 179 29.3137 179 26V6C179 2.68629 176.314 0 173 0Z" fill="#2E51ED"/>
|
<path d="M173 0H6C2.68629 0 0 2.68629 0 6V26C0 29.3137 2.68629 32 6 32H173C176.314 32 179 29.3137 179 26V6C179 2.68629 176.314 0 173 0Z" fill="#2E51ED"/>
|
||||||
<path d="M15.027 23.227H14.781L13.556 22.049V21.813L15.429 20.011H16.727L16.9 20.178V21.426L15.027 23.227ZM13.556 9.89999V9.66399L14.781 8.48499H15.027L16.9 10.287V11.535L16.727 11.701H15.429L13.556 9.89999ZM24.343 19.429H22.561L22.411 19.286V15.273C22.411 14.559 22.12 14.005 21.224 13.986C20.764 13.975 20.236 13.986 19.673 14.007L19.588 14.091V19.284L19.439 19.427H17.657L17.507 19.284V12.429L17.657 12.285H21.669C23.229 12.285 24.492 13.5 24.492 15V19.286L24.343 19.429ZM15.28 16.86H8.15L8 16.716V14.998L8.149 14.855H15.28L15.43 14.998V16.716L15.28 16.859V16.86ZM33.853 16.86H26.722L26.572 16.716V14.998L26.722 14.855H33.853L34.002 14.998V16.716L33.853 16.859V16.86ZM19.973 10.143V4.99999L20.122 4.85699H21.909L22.057 4.99999V10.143L21.909 10.287H20.122L19.973 10.143ZM19.973 26.714V21.571L20.122 21.428H21.909L22.057 21.571V26.714L21.909 26.857H20.122L19.973 26.714ZM155.15 10.64C154.72 11.06 154.51 11.64 154.51 12.39V13.43H153.28V15.1H154.51V21.19H156.47V15.1H158.11V13.43H156.47V12.38C156.47 11.85 156.75 11.58 157.3 11.58H158.34V9.99999H156.94C156.18 9.99999 155.59 10.21 155.16 10.64H155.15ZM150.93 10.13C150.57 10.13 150.27 10.25 150.05 10.48C149.84 10.7 149.73 10.98 149.73 11.32C149.73 11.66 149.84 11.95 150.05 12.19C150.27 12.42 150.57 12.54 150.93 12.54C151.29 12.54 151.57 12.42 151.78 12.19C152 11.96 152.12 11.67 152.12 11.32C152.12 10.97 152.01 10.7 151.78 10.48C151.56 10.25 151.28 10.13 150.93 10.13ZM73.23 10.14H75.19V21.19H73.23V10.14Z" fill="white"/>
|
<path d="M15.027 23.227H14.781L13.556 22.049V21.813L15.429 20.011H16.727L16.9 20.178V21.426L15.027 23.227ZM13.556 9.89999V9.66399L14.781 8.48499H15.027L16.9 10.287V11.535L16.727 11.701H15.429L13.556 9.89999ZM24.343 19.429H22.561L22.411 19.286V15.273C22.411 14.559 22.12 14.005 21.224 13.986C20.764 13.975 20.236 13.986 19.673 14.007L19.588 14.091V19.284L19.439 19.427H17.657L17.507 19.284V12.429L17.657 12.285H21.669C23.229 12.285 24.492 13.5 24.492 15V19.286L24.343 19.429ZM15.28 16.86H8.15L8 16.716V14.998L8.149 14.855H15.28L15.43 14.998V16.716L15.28 16.859V16.86ZM33.853 16.86H26.722L26.572 16.716V14.998L26.722 14.855H33.853L34.002 14.998V16.716L33.853 16.859V16.86ZM19.973 10.143V4.99999L20.122 4.85699H21.909L22.057 4.99999V10.143L21.909 10.287H20.122L19.973 10.143ZM19.973 26.714V21.571L20.122 21.428H21.909L22.057 21.571V26.714L21.909 26.857H20.122L19.973 26.714ZM155.15 10.64C154.72 11.06 154.51 11.64 154.51 12.39V13.43H153.28V15.1H154.51V21.19H156.47V15.1H158.11V13.43H156.47V12.38C156.47 11.85 156.75 11.58 157.3 11.58H158.34V9.99999H156.94C156.18 9.99999 155.59 10.21 155.16 10.64H155.15ZM150.93 10.13C150.57 10.13 150.27 10.25 150.05 10.48C149.84 10.7 149.73 10.98 149.73 11.32C149.73 11.66 149.84 11.95 150.05 12.19C150.27 12.42 150.57 12.54 150.93 12.54C151.29 12.54 151.57 12.42 151.78 12.19C152 11.96 152.12 11.67 152.12 11.32C152.12 10.97 152.01 10.7 151.78 10.48C151.56 10.25 151.28 10.13 150.93 10.13ZM73.23 10.14H75.19V21.19H73.23V10.14Z" fill="white"/>
|
||||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M47.32 10.63C48.49 10.63 49.49 10.84 50.33 11.27C51.17 11.69 51.81 12.3 52.25 13.09C52.7 13.88 52.92 14.83 52.92 15.92C52.92 17.01 52.7 17.96 52.25 18.75C51.81 19.54 51.17 20.14 50.33 20.56C49.49 20.98 48.49 21.19 47.32 21.19H44V10.63H47.32ZM47.23 19.22C48.31 19.22 49.16 18.93 49.78 18.35V18.36C50.41 17.77 50.72 16.97 50.72 15.92C50.72 14.87 50.41 14.05 49.78 13.47C49.16 12.89 48.31 12.6 47.23 12.6H46.11V19.22H47.23ZM58.16 13.29C58.96 13.29 59.65 13.45 60.25 13.79L60.24 13.78C60.85 14.11 61.31 14.57 61.64 15.17C61.97 15.77 62.13 16.47 62.13 17.26V17.92H56.28C56.31 18.18 56.36 18.44 56.47 18.66C56.63 18.96 56.85 19.19 57.14 19.36C57.43 19.53 57.78 19.61 58.19 19.61C58.6 19.61 58.95 19.54 59.23 19.41C59.51 19.28 59.72 19.09 59.86 18.86H61.96C61.8 19.33 61.54 19.76 61.19 20.13C60.85 20.51 60.41 20.79 59.89 21C59.38 21.21 58.8 21.31 58.17 21.31C57.38 21.31 56.68 21.15 56.07 20.82C55.47 20.49 55.01 20.02 54.67 19.41C54.34 18.81 54.18 18.1 54.18 17.3C54.18 16.5 54.34 15.8 54.67 15.2C55 14.6 55.46 14.13 56.06 13.79C56.67 13.46 57.36 13.29 58.16 13.29ZM58.16 14.99C57.8 14.99 57.47 15.08 57.18 15.26C56.89 15.42 56.66 15.66 56.49 15.97C56.41 16.14 56.35 16.31 56.31 16.49H60.05C60.0095 16.2241 59.9069 15.9714 59.7505 15.7525C59.5941 15.5336 59.3884 15.3546 59.15 15.23C58.86 15.07 58.52 14.99 58.16 14.99ZM70.16 13.74C69.64 13.42 69.04 13.26 68.35 13.26C67.66 13.26 67.06 13.42 66.57 13.74C66.28 13.93 66.05 14.19 65.86 14.47V13.43H63.9V23.85H65.86V20.16C66.06 20.45 66.29 20.7 66.57 20.9C67.06 21.23 67.65 21.39 68.35 21.39C69.05 21.39 69.63 21.23 70.16 20.91C70.68 20.58 71.09 20.12 71.38 19.51C71.67 18.89 71.81 18.17 71.81 17.33C71.81 16.49 71.67 15.75 71.38 15.15C71.09 14.53 70.68 14.07 70.16 13.75V13.74ZM69.5 18.6C69.33 18.95 69.1 19.22 68.8 19.41C68.51 19.6 68.18 19.69 67.81 19.69C67.22 19.69 66.75 19.48 66.4 19.07C66.05 18.65 65.87 18.08 65.87 17.35C65.87 16.62 66.05 16.07 66.4 15.66C66.75 15.25 67.23 15.04 67.81 15.04C68.18 15.04 68.51 15.14 68.8 15.33C69.1 15.52 69.33 15.79 69.5 16.14C69.67 16.49 69.75 16.89 69.75 17.34C69.75 17.79 69.67 18.23 69.5 18.59V18.6ZM82.85 13.79C82.23 13.44 81.51 13.26 80.68 13.26C79.85 13.26 79.13 13.44 78.51 13.79C77.9 14.14 77.44 14.62 77.11 15.23C76.78 15.85 76.62 16.54 76.62 17.32C76.62 18.1 76.78 18.79 77.11 19.41C77.44 20.02 77.9 20.5 78.51 20.85C79.13 21.2 79.85 21.38 80.68 21.38C81.51 21.38 82.23 21.2 82.85 20.85C83.47 20.5 83.93 20.01 84.25 19.39C84.58 18.77 84.74 18.08 84.74 17.32C84.74 16.56 84.58 15.85 84.25 15.23C83.93 14.61 83.47 14.13 82.85 13.79ZM82.43 18.49C82.27 18.83 82.04 19.09 81.73 19.27C81.43 19.46 81.08 19.55 80.68 19.55C80.28 19.55 79.91 19.46 79.62 19.27C79.32 19.08 79.09 18.82 78.92 18.49C78.76 18.15 78.68 17.76 78.68 17.31C78.68 16.86 78.76 16.46 78.92 16.12C79.09 15.78 79.32 15.53 79.62 15.35C79.92 15.16 80.27 15.07 80.68 15.07C81.09 15.07 81.43 15.16 81.73 15.35C82.04 15.53 82.27 15.79 82.43 16.13C82.6 16.47 82.68 16.86 82.68 17.31C82.68 17.76 82.6 18.15 82.43 18.49Z" fill="white"/>
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M47.32 10.63C48.49 10.63 49.49 10.84 50.33 11.27C51.17 11.69 51.81 12.3 52.25 13.09C52.7 13.88 52.92 14.83 52.92 15.92C52.92 17.01 52.7 17.96 52.25 18.75C51.81 19.54 51.17 20.14 50.33 20.56C49.49 20.98 48.49 21.19 47.32 21.19H44V10.63H47.32ZM47.23 19.22C48.31 19.22 49.16 18.93 49.78 18.35V18.36C50.41 17.77 50.72 16.97 50.72 15.92C50.72 14.87 50.41 14.05 49.78 13.47C49.16 12.89 48.31 12.6 47.23 12.6H46.11V19.22H47.23ZM58.16 13.29C58.96 13.29 59.65 13.45 60.25 13.79L60.24 13.78C60.85 14.11 61.31 14.57 61.64 15.17C61.97 15.77 62.13 16.47 62.13 17.26V17.92H56.28C56.31 18.18 56.36 18.44 56.47 18.66C56.63 18.96 56.85 19.19 57.14 19.36C57.43 19.53 57.78 19.61 58.19 19.61C58.6 19.61 58.95 19.54 59.23 19.41C59.51 19.28 59.72 19.09 59.86 18.86H61.96C61.8 19.33 61.54 19.76 61.19 20.13C60.85 20.51 60.41 20.79 59.89 21C59.38 21.21 58.8 21.31 58.17 21.31C57.38 21.31 56.68 21.15 56.07 20.82C55.47 20.49 55.01 20.02 54.67 19.41C54.34 18.81 54.18 18.1 54.18 17.3C54.18 16.5 54.34 15.8 54.67 15.2C55 14.6 55.46 14.13 56.06 13.79C56.67 13.46 57.36 13.29 58.16 13.29ZM58.16 14.99C57.8 14.99 57.47 15.08 57.18 15.26C56.89 15.42 56.66 15.66 56.49 15.97C56.41 16.14 56.35 16.31 56.31 16.49H60.05C60.0095 16.2241 59.9069 15.9714 59.7505 15.7525C59.5941 15.5336 59.3884 15.3546 59.15 15.23C58.86 15.07 58.52 14.99 58.16 14.99ZM70.16 13.74C69.64 13.42 69.04 13.26 68.35 13.26C67.66 13.26 67.06 13.42 66.57 13.74C66.28 13.93 66.05 14.19 65.86 14.47V13.43H63.9V23.85H65.86V20.16C66.06 20.45 66.29 20.7 66.57 20.9C67.06 21.23 67.65 21.39 68.35 21.39C69.05 21.39 69.63 21.23 70.16 20.91C70.68 20.58 71.09 20.12 71.38 19.51C71.67 18.89 71.81 18.17 71.81 17.33C71.81 16.49 71.67 15.75 71.38 15.15C71.09 14.53 70.68 14.07 70.16 13.75V13.74ZM69.5 18.6C69.33 18.95 69.1 19.22 68.8 19.41C68.51 19.6 68.18 19.69 67.81 19.69C67.22 19.69 66.75 19.48 66.4 19.07C66.05 18.65 65.87 18.08 65.87 17.35C65.87 16.62 66.05 16.07 66.4 15.66C66.75 15.25 67.23 15.04 67.81 15.04C68.18 15.04 68.51 15.14 68.8 15.33C69.1 15.52 69.33 15.79 69.5 16.14C69.67 16.49 69.75 16.89 69.75 17.34C69.75 17.79 69.67 18.23 69.5 18.59V18.6ZM82.85 13.79C82.23 13.44 81.51 13.26 80.68 13.26C79.85 13.26 79.13 13.44 78.51 13.79C77.9 14.14 77.44 14.62 77.11 15.23C76.78 15.85 76.62 16.54 76.62 17.32C76.62 18.1 76.78 18.79 77.11 19.41C77.44 20.02 77.9 20.5 78.51 20.85C79.13 21.2 79.85 21.38 80.68 21.38C81.51 21.38 82.23 21.2 82.85 20.85C83.47 20.5 83.93 20.01 84.25 19.39C84.58 18.77 84.74 18.08 84.74 17.32C84.74 16.56 84.58 15.85 84.25 15.23C83.93 14.61 83.47 14.13 82.85 13.79ZM82.43 18.49C82.27 18.83 82.04 19.09 81.73 19.27C81.43 19.46 81.08 19.55 80.68 19.55C80.28 19.55 79.91 19.46 79.62 19.27C79.32 19.08 79.09 18.82 78.92 18.49C78.76 18.15 78.68 17.76 78.68 17.31C78.68 16.86 78.76 16.46 78.92 16.12C79.09 15.78 79.32 15.53 79.62 15.35C79.92 15.16 80.27 15.07 80.68 15.07C81.09 15.07 81.43 15.16 81.73 15.35C82.04 15.53 82.27 15.79 82.43 16.13C82.6 16.47 82.68 16.86 82.68 17.31C82.68 17.76 82.6 18.15 82.43 18.49Z" fill="white"/>
|
||||||
<path d="M87.11 13.43L89.15 18.5L91.26 13.43H93.15L88.84 23.75H86.95L88.14 20.9L85.13 13.43H87.11ZM102.71 10.98H100.75V13.43H99.26V15.1H100.75V21.19H102.71V15.1H104.39V13.43H102.71V10.98Z" fill="white"/>
|
<path d="M87.11 13.43L89.15 18.5L91.26 13.43H93.15L88.84 23.75H86.95L88.14 20.9L85.13 13.43H87.11ZM102.71 10.98H100.75V13.43H99.26V15.1H100.75V21.19H102.71V15.1H104.39V13.43H102.71V10.98Z" fill="white"/>
|
||||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M109.18 13.26C110.01 13.26 110.73 13.44 111.35 13.79C111.97 14.13 112.43 14.61 112.75 15.23C113.08 15.85 113.24 16.56 113.24 17.32C113.24 18.08 113.08 18.77 112.75 19.39C112.43 20.01 111.97 20.5 111.35 20.85C110.73 21.2 110.01 21.38 109.18 21.38C108.35 21.38 107.63 21.2 107.01 20.85C106.4 20.5 105.94 20.02 105.61 19.41C105.28 18.79 105.12 18.1 105.12 17.32C105.12 16.54 105.28 15.85 105.61 15.23C105.94 14.62 106.4 14.14 107.01 13.79C107.63 13.44 108.35 13.26 109.18 13.26ZM110.23 19.27C110.54 19.09 110.77 18.83 110.93 18.49C111.1 18.15 111.18 17.76 111.18 17.31C111.18 16.86 111.1 16.47 110.93 16.13C110.77 15.79 110.54 15.53 110.23 15.35C109.93 15.16 109.59 15.07 109.18 15.07C108.77 15.07 108.42 15.16 108.12 15.35C107.82 15.53 107.59 15.78 107.42 16.12C107.26 16.46 107.18 16.86 107.18 17.31C107.18 17.76 107.26 18.15 107.42 18.49C107.59 18.82 107.82 19.08 108.12 19.27C108.41 19.46 108.78 19.55 109.18 19.55C109.58 19.55 109.93 19.46 110.23 19.27Z" fill="white"/>
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M109.18 13.26C110.01 13.26 110.73 13.44 111.35 13.79C111.97 14.13 112.43 14.61 112.75 15.23C113.08 15.85 113.24 16.56 113.24 17.32C113.24 18.08 113.08 18.77 112.75 19.39C112.43 20.01 111.97 20.5 111.35 20.85C110.73 21.2 110.01 21.38 109.18 21.38C108.35 21.38 107.63 21.2 107.01 20.85C106.4 20.5 105.94 20.02 105.61 19.41C105.28 18.79 105.12 18.1 105.12 17.32C105.12 16.54 105.28 15.85 105.61 15.23C105.94 14.62 106.4 14.14 107.01 13.79C107.63 13.44 108.35 13.26 109.18 13.26ZM110.23 19.27C110.54 19.09 110.77 18.83 110.93 18.49C111.1 18.15 111.18 17.76 111.18 17.31C111.18 16.86 111.1 16.47 110.93 16.13C110.77 15.79 110.54 15.53 110.23 15.35C109.93 15.16 109.59 15.07 109.18 15.07C108.77 15.07 108.42 15.16 108.12 15.35C107.82 15.53 107.59 15.78 107.42 16.12C107.26 16.46 107.18 16.86 107.18 17.31C107.18 17.76 107.26 18.15 107.42 18.49C107.59 18.82 107.82 19.08 108.12 19.27C108.41 19.46 108.78 19.55 109.18 19.55C109.58 19.55 109.93 19.46 110.23 19.27Z" fill="white"/>
|
||||||
<path d="M126.91 16.02L122.22 10.63H120.41V21.19H122.52V14.26L126.91 19.31V21.19H129.02V10.63H126.91V16.02Z" fill="white"/>
|
<path d="M126.91 16.02L122.22 10.63H120.41V21.19H122.52V14.26L126.91 19.31V21.19H129.02V10.63H126.91V16.02Z" fill="white"/>
|
||||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M134.5 13.29C135.3 13.29 135.99 13.45 136.59 13.79L136.58 13.78C137.19 14.11 137.65 14.57 137.98 15.17C138.31 15.77 138.47 16.47 138.47 17.26V17.92H132.62C132.65 18.18 132.7 18.44 132.81 18.66C132.97 18.96 133.19 19.19 133.48 19.36C133.77 19.53 134.12 19.61 134.53 19.61C134.94 19.61 135.29 19.54 135.57 19.41C135.85 19.28 136.06 19.09 136.2 18.86H138.3C138.14 19.33 137.88 19.76 137.53 20.13C137.19 20.51 136.75 20.79 136.23 21C135.72 21.21 135.14 21.31 134.51 21.31C133.72 21.31 133.02 21.15 132.41 20.82C131.81 20.49 131.35 20.02 131.01 19.41C130.68 18.81 130.52 18.1 130.52 17.3C130.52 16.5 130.68 15.8 131.01 15.2C131.34 14.6 131.8 14.13 132.4 13.79C133.01 13.46 133.7 13.29 134.5 13.29ZM134.5 14.99C134.14 14.99 133.81 15.08 133.52 15.26C133.23 15.42 133 15.66 132.83 15.97C132.75 16.14 132.69 16.31 132.65 16.49H136.39C136.349 16.224 136.247 15.9714 136.09 15.7525C135.934 15.5336 135.728 15.3546 135.49 15.23C135.2 15.07 134.86 14.99 134.5 14.99Z" fill="white"/>
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M134.5 13.29C135.3 13.29 135.99 13.45 136.59 13.79L136.58 13.78C137.19 14.11 137.65 14.57 137.98 15.17C138.31 15.77 138.47 16.47 138.47 17.26V17.92H132.62C132.65 18.18 132.7 18.44 132.81 18.66C132.97 18.96 133.19 19.19 133.48 19.36C133.77 19.53 134.12 19.61 134.53 19.61C134.94 19.61 135.29 19.54 135.57 19.41C135.85 19.28 136.06 19.09 136.2 18.86H138.3C138.14 19.33 137.88 19.76 137.53 20.13C137.19 20.51 136.75 20.79 136.23 21C135.72 21.21 135.14 21.31 134.51 21.31C133.72 21.31 133.02 21.15 132.41 20.82C131.81 20.49 131.35 20.02 131.01 19.41C130.68 18.81 130.52 18.1 130.52 17.3C130.52 16.5 130.68 15.8 131.01 15.2C131.34 14.6 131.8 14.13 132.4 13.79C133.01 13.46 133.7 13.29 134.5 13.29ZM134.5 14.99C134.14 14.99 133.81 15.08 133.52 15.26C133.23 15.42 133 15.66 132.83 15.97C132.75 16.14 132.69 16.31 132.65 16.49H136.39C136.349 16.224 136.247 15.9714 136.09 15.7525C135.934 15.5336 135.728 15.3546 135.49 15.23C135.2 15.07 134.86 14.99 134.5 14.99Z" fill="white"/>
|
||||||
<path d="M142.58 10.98H140.62V13.43H139.14V15.1H140.62V21.19H142.58V15.1H144.26V13.43H142.58V10.98ZM145.92 10.14H147.88V21.19H145.92V10.14ZM149.95 21.18V13.26C150.21 13.45 150.53 13.55 150.93 13.55C151.33 13.55 151.66 13.46 151.91 13.26V21.18H149.95ZM163.14 18.5L165.26 13.43H167.15L162.84 23.75H160.95L162.14 20.9L159.13 13.43H161.1L163.14 18.5Z" fill="white"/>
|
<path d="M142.58 10.98H140.62V13.43H139.14V15.1H140.62V21.19H142.58V15.1H144.26V13.43H142.58V10.98ZM145.92 10.14H147.88V21.19H145.92V10.14ZM149.95 21.18V13.26C150.21 13.45 150.53 13.55 150.93 13.55C151.33 13.55 151.66 13.46 151.91 13.26V21.18H149.95ZM163.14 18.5L165.26 13.43H167.15L162.84 23.75H160.95L162.14 20.9L159.13 13.43H161.1L163.14 18.5Z" fill="white"/>
|
||||||
</g>
|
</g>
|
||||||
<defs>
|
<defs>
|
||||||
<clipPath id="clip0_8_30">
|
<clipPath id="clip0_8_30">
|
||||||
<rect width="179" height="32" fill="white"/>
|
<rect width="179" height="32" fill="white"/>
|
||||||
</clipPath>
|
</clipPath>
|
||||||
</defs>
|
</defs>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
@@ -1,11 +1,11 @@
|
|||||||
import { defineConfig } from "astro/config"
|
import { defineConfig } from "astro/config"
|
||||||
import mdx from "@astrojs/mdx"
|
import mdx from "@astrojs/mdx"
|
||||||
import sitemap from "@astrojs/sitemap"
|
import sitemap from "@astrojs/sitemap"
|
||||||
import tailwind from "@astrojs/tailwind"
|
import tailwind from "@astrojs/tailwind"
|
||||||
import solidJs from "@astrojs/solid-js"
|
import solidJs from "@astrojs/solid-js"
|
||||||
|
|
||||||
// https://astro.build/config
|
// https://astro.build/config
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
site: "https://astro-sphere-demo.vercel.app",
|
site: "https://astro-sphere-demo.vercel.app",
|
||||||
integrations: [mdx(), sitemap(), solidJs(), tailwind({ applyBaseStyles: false })],
|
integrations: [mdx(), sitemap(), solidJs(), tailwind({ applyBaseStyles: false })],
|
||||||
})
|
})
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
<span class="line"></span></code></pre>
|
<span class="line"></span></code></pre>
|
||||||
<p>Далее наблюдаем ответ сервера</p>
|
<p>Далее наблюдаем ответ сервера</p>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>Connecting to 127.0.0.1:1688 … successful
|
<p>Connecting to 127.0.0.1:1688 … successful
|
||||||
Sending activation request (KMS V6) 1 of 1 -> 55041-00206-559-475403-03-1076-6002.0000-1482020 (3A1C049600B60076)</p>
|
Sending activation request (KMS V6) 1 of 1 -> 55041-00206-559-475403-03-1076-6002.0000-1482020 (3A1C049600B60076)</p>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
<p>По умолчанию vlmcsd слушает на стандартном порту KMS — TCP/1688.</p>
|
<p>По умолчанию vlmcsd слушает на стандартном порту KMS — TCP/1688.</p>
|
||||||
|
|||||||
@@ -152,7 +152,7 @@
|
|||||||
<li>Скопируйте репозиторий на локальный компьютер.</li>
|
<li>Скопируйте репозиторий на локальный компьютер.</li>
|
||||||
<li>Создайте файл <code>.env</code> (см. выше).</li>
|
<li>Создайте файл <code>.env</code> (см. выше).</li>
|
||||||
<li>В файле <code>.env</code> удалить (закомментировать) <code>WEBHOOK_DOMAIN</code>. Пропишите свои переменные окружения. Так же пропишите переменные окружения в файле <code>docker-compose-postgres-localhost.yaml</code></li>
|
<li>В файле <code>.env</code> удалить (закомментировать) <code>WEBHOOK_DOMAIN</code>. Пропишите свои переменные окружения. Так же пропишите переменные окружения в файле <code>docker-compose-postgres-localhost.yaml</code></li>
|
||||||
<li>Установить виртуальное окружение, активировать его,
|
<li>Установить виртуальное окружение, активировать его,
|
||||||
установить зависимости из <code>requirements.txt</code>:</li>
|
установить зависимости из <code>requirements.txt</code>:</li>
|
||||||
</ol>
|
</ol>
|
||||||
<pre class="astro-code github-dark" style="background-color:#24292e;color:#e1e4e8; overflow-x: auto;" tabindex="0" data-language="sh"><code><span class="line"><span style="color:#B392F0">python</span><span style="color:#79B8FF"> -m</span><span style="color:#9ECBFF"> venv</span><span style="color:#9ECBFF"> venv</span></span>
|
<pre class="astro-code github-dark" style="background-color:#24292e;color:#e1e4e8; overflow-x: auto;" tabindex="0" data-language="sh"><code><span class="line"><span style="color:#B392F0">python</span><span style="color:#79B8FF"> -m</span><span style="color:#9ECBFF"> venv</span><span style="color:#9ECBFF"> venv</span></span>
|
||||||
@@ -187,20 +187,20 @@
|
|||||||
<p><code>/info</code> - Команда вводится через reply на вопрос пользователя и выдает информацию о нем (имя, фамилия, id, никнейм, а также количество сообщений от пользователя и ответов пользователю. Последние два берутся из созданной базы данных).</p>
|
<p><code>/info</code> - Команда вводится через reply на вопрос пользователя и выдает информацию о нем (имя, фамилия, id, никнейм, а также количество сообщений от пользователя и ответов пользователю. Последние два берутся из созданной базы данных).</p>
|
||||||
<p><code>/report</code> - Отчет по количеству клиентов за месяц, сообщений от них и количество ответов администраторов.</p>
|
<p><code>/report</code> - Отчет по количеству клиентов за месяц, сообщений от них и количество ответов администраторов.</p>
|
||||||
<p><code>/report 01.01.2020 15.06.2024</code> - Отчет за выбранный период. Две любые даты через пробел, по шаблону.</p>
|
<p><code>/report 01.01.2020 15.06.2024</code> - Отчет за выбранный период. Две любые даты через пробел, по шаблону.</p>
|
||||||
<p><code>/ban</code> - Команда вводится через reply на вопрос пользователя. Банит пользователя. Сообщения от него будут игнорироваться ботом.
|
<p><code>/ban</code> - Команда вводится через reply на вопрос пользователя. Банит пользователя. Сообщения от него будут игнорироваться ботом.
|
||||||
<code>/unban</code> - Команда вводится через reply на вопрос пользователя. Разбанивает пользователя.</p>
|
<code>/unban</code> - Команда вводится через reply на вопрос пользователя. Разбанивает пользователя.</p>
|
||||||
<p><code>/banlist</code> - Список забаненных пользователей. Выводит список пользователей в формате <code>id - имя_фамилия</code>.</p>
|
<p><code>/banlist</code> - Список забаненных пользователей. Выводит список пользователей в формате <code>id - имя_фамилия</code>.</p>
|
||||||
<p><code>/registeradmin</code> - Регистрирует нового администратора в чате поддержки. Также администратор регистрируется автоматически, если ответит на сообщение клиента через reply. Это сделано на случай, если забыли зарегистрировать администратора, а он уже отвечает на сообщения.</p>
|
<p><code>/registeradmin</code> - Регистрирует нового администратора в чате поддержки. Также администратор регистрируется автоматически, если ответит на сообщение клиента через reply. Это сделано на случай, если забыли зарегистрировать администратора, а он уже отвечает на сообщения.</p>
|
||||||
<p><code>/deleteadmin</code> - Удаляет права администратора у пользователя в чате поддержки. После удаления прав администратора нужно вручную удалить пользователя из группы Telegram.</p>
|
<p><code>/deleteadmin</code> - Удаляет права администратора у пользователя в чате поддержки. После удаления прав администратора нужно вручную удалить пользователя из группы Telegram.</p>
|
||||||
<h2 id="автозапуск-бота">Автозапуск бота</h2>
|
<h2 id="автозапуск-бота">Автозапуск бота</h2>
|
||||||
<ol>
|
<ol>
|
||||||
<li>Создание службы:
|
<li>Создание службы:
|
||||||
Создайте файл службы для вашего бота, например <code>my_bot.service</code>:</li>
|
Создайте файл службы для вашего бота, например <code>my_bot.service</code>:</li>
|
||||||
</ol>
|
</ol>
|
||||||
<pre class="astro-code github-dark" style="background-color:#24292e;color:#e1e4e8; overflow-x: auto;" tabindex="0" data-language="sh"><code><span class="line"><span style="color:#B392F0">sudo</span><span style="color:#9ECBFF"> nano</span><span style="color:#9ECBFF"> /etc/systemd/system/my_bot.service</span></span>
|
<pre class="astro-code github-dark" style="background-color:#24292e;color:#e1e4e8; overflow-x: auto;" tabindex="0" data-language="sh"><code><span class="line"><span style="color:#B392F0">sudo</span><span style="color:#9ECBFF"> nano</span><span style="color:#9ECBFF"> /etc/systemd/system/my_bot.service</span></span>
|
||||||
<span class="line"></span></code></pre>
|
<span class="line"></span></code></pre>
|
||||||
<ol start="2">
|
<ol start="2">
|
||||||
<li>Редактирование службы:
|
<li>Редактирование службы:
|
||||||
Внесите следующие настройки в файл службы:</li>
|
Внесите следующие настройки в файл службы:</li>
|
||||||
</ol>
|
</ol>
|
||||||
<pre class="astro-code github-dark" style="background-color:#24292e;color:#e1e4e8; overflow-x: auto;" tabindex="0" data-language="sh"><code><span class="line"><span style="color:#E1E4E8">[Unit]</span></span>
|
<pre class="astro-code github-dark" style="background-color:#24292e;color:#e1e4e8; overflow-x: auto;" tabindex="0" data-language="sh"><code><span class="line"><span style="color:#E1E4E8">[Unit]</span></span>
|
||||||
@@ -219,13 +219,13 @@
|
|||||||
<span class="line"></span></code></pre>
|
<span class="line"></span></code></pre>
|
||||||
<p>Замените <code>your_username</code>, <code>your_groupname</code>, <code>/path/to/your/bot</code>, и <code>/path/to/your/python</code> на соответствующие значения для вашей среды. Убедитесь, что <code>ExecStart</code> указывает на правильный путь к вашему скрипту Python бота.</p>
|
<p>Замените <code>your_username</code>, <code>your_groupname</code>, <code>/path/to/your/bot</code>, и <code>/path/to/your/python</code> на соответствующие значения для вашей среды. Убедитесь, что <code>ExecStart</code> указывает на правильный путь к вашему скрипту Python бота.</p>
|
||||||
<ol start="3">
|
<ol start="3">
|
||||||
<li>Перезагрузка systemd:
|
<li>Перезагрузка systemd:
|
||||||
После того как вы сохранили изменения, перезагрузите systemd для применения новой службы:</li>
|
После того как вы сохранили изменения, перезагрузите systemd для применения новой службы:</li>
|
||||||
</ol>
|
</ol>
|
||||||
<pre class="astro-code github-dark" style="background-color:#24292e;color:#e1e4e8; overflow-x: auto;" tabindex="0" data-language="sh"><code><span class="line"><span style="color:#B392F0">sudo</span><span style="color:#9ECBFF"> systemctl</span><span style="color:#9ECBFF"> daemon-reload</span></span>
|
<pre class="astro-code github-dark" style="background-color:#24292e;color:#e1e4e8; overflow-x: auto;" tabindex="0" data-language="sh"><code><span class="line"><span style="color:#B392F0">sudo</span><span style="color:#9ECBFF"> systemctl</span><span style="color:#9ECBFF"> daemon-reload</span></span>
|
||||||
<span class="line"></span></code></pre>
|
<span class="line"></span></code></pre>
|
||||||
<ol start="4">
|
<ol start="4">
|
||||||
<li>Управление службой:
|
<li>Управление службой:
|
||||||
Теперь вы можете управлять вашим ботом как службой. Например, чтобы запустить его и настроить автозапуск при загрузке системы, выполните следующие команды:</li>
|
Теперь вы можете управлять вашим ботом как службой. Например, чтобы запустить его и настроить автозапуск при загрузке системы, выполните следующие команды:</li>
|
||||||
</ol>
|
</ol>
|
||||||
<pre class="astro-code github-dark" style="background-color:#24292e;color:#e1e4e8; overflow-x: auto;" tabindex="0" data-language="sh"><code><span class="line"><span style="color:#B392F0">sudo</span><span style="color:#9ECBFF"> systemctl</span><span style="color:#9ECBFF"> start</span><span style="color:#9ECBFF"> my_bot</span></span>
|
<pre class="astro-code github-dark" style="background-color:#24292e;color:#e1e4e8; overflow-x: auto;" tabindex="0" data-language="sh"><code><span class="line"><span style="color:#B392F0">sudo</span><span style="color:#9ECBFF"> systemctl</span><span style="color:#9ECBFF"> start</span><span style="color:#9ECBFF"> my_bot</span></span>
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
function animate() {
|
function animate() {
|
||||||
const animateElements = document.querySelectorAll('.animate')
|
const animateElements = document.querySelectorAll('.animate')
|
||||||
|
|
||||||
animateElements.forEach((element, index) => {
|
animateElements.forEach((element, index) => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
element.classList.add('show')
|
element.classList.add('show')
|
||||||
}, index * 150)
|
}, index * 150)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
document.addEventListener("DOMContentLoaded", animate)
|
document.addEventListener("DOMContentLoaded", animate)
|
||||||
document.addEventListener("astro:after-swap", animate)
|
document.addEventListener("astro:after-swap", animate)
|
||||||
@@ -1,96 +1,96 @@
|
|||||||
|
|
||||||
function generateParticles(n) {
|
function generateParticles(n) {
|
||||||
let value = `${getRandom(2560)}px ${getRandom(2560)}px #000`;
|
let value = `${getRandom(2560)}px ${getRandom(2560)}px #000`;
|
||||||
for (let i = 2; i <= n; i++) {
|
for (let i = 2; i <= n; i++) {
|
||||||
value += `, ${getRandom(2560)}px ${getRandom(2560)}px #000`;
|
value += `, ${getRandom(2560)}px ${getRandom(2560)}px #000`;
|
||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
function generateStars(n) {
|
function generateStars(n) {
|
||||||
let value = `${getRandom(2560)}px ${getRandom(2560)}px #fff`;
|
let value = `${getRandom(2560)}px ${getRandom(2560)}px #fff`;
|
||||||
for (let i = 2; i <= n; i++) {
|
for (let i = 2; i <= n; i++) {
|
||||||
value += `, ${getRandom(2560)}px ${getRandom(2560)}px #fff`;
|
value += `, ${getRandom(2560)}px ${getRandom(2560)}px #fff`;
|
||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getRandom(max) {
|
function getRandom(max) {
|
||||||
return Math.floor(Math.random() * max);
|
return Math.floor(Math.random() * max);
|
||||||
}
|
}
|
||||||
|
|
||||||
function initBG() {
|
function initBG() {
|
||||||
const particlesSmall = generateParticles(1000);
|
const particlesSmall = generateParticles(1000);
|
||||||
const particlesMedium = generateParticles(500);
|
const particlesMedium = generateParticles(500);
|
||||||
const particlesLarge = generateParticles(250);
|
const particlesLarge = generateParticles(250);
|
||||||
const particles1 = document.getElementById('particles1');
|
const particles1 = document.getElementById('particles1');
|
||||||
const particles2 = document.getElementById('particles2');
|
const particles2 = document.getElementById('particles2');
|
||||||
const particles3 = document.getElementById('particles3');
|
const particles3 = document.getElementById('particles3');
|
||||||
|
|
||||||
if (particles1) {
|
if (particles1) {
|
||||||
particles1.style.cssText = `
|
particles1.style.cssText = `
|
||||||
width: 1px;
|
width: 1px;
|
||||||
height: 1px;
|
height: 1px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
box-shadow: ${particlesSmall};
|
box-shadow: ${particlesSmall};
|
||||||
animation: animStar 50s linear infinite;
|
animation: animStar 50s linear infinite;
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (particles2) {
|
if (particles2) {
|
||||||
particles2.style.cssText = `
|
particles2.style.cssText = `
|
||||||
width: 1.5px;
|
width: 1.5px;
|
||||||
height: 1.5px;
|
height: 1.5px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
box-shadow: ${particlesMedium};
|
box-shadow: ${particlesMedium};
|
||||||
animation: animateParticle 100s linear infinite;
|
animation: animateParticle 100s linear infinite;
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (particles3) {
|
if (particles3) {
|
||||||
particles3.style.cssText = `
|
particles3.style.cssText = `
|
||||||
width: 2px;
|
width: 2px;
|
||||||
height: 2px;
|
height: 2px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
box-shadow: ${particlesLarge};
|
box-shadow: ${particlesLarge};
|
||||||
animation: animateParticle 150s linear infinite;
|
animation: animateParticle 150s linear infinite;
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
const starsSmall = generateStars(1000);
|
const starsSmall = generateStars(1000);
|
||||||
const starsMedium = generateStars(500);
|
const starsMedium = generateStars(500);
|
||||||
const starsLarge = generateStars(250);
|
const starsLarge = generateStars(250);
|
||||||
const stars1 = document.getElementById('stars1');
|
const stars1 = document.getElementById('stars1');
|
||||||
const stars2 = document.getElementById('stars2');
|
const stars2 = document.getElementById('stars2');
|
||||||
const stars3 = document.getElementById('stars3');
|
const stars3 = document.getElementById('stars3');
|
||||||
|
|
||||||
if (stars1) {
|
if (stars1) {
|
||||||
stars1.style.cssText = `
|
stars1.style.cssText = `
|
||||||
width: 1px;
|
width: 1px;
|
||||||
height: 1px;
|
height: 1px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
box-shadow: ${starsSmall};
|
box-shadow: ${starsSmall};
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stars2) {
|
if (stars2) {
|
||||||
stars2.style.cssText = `
|
stars2.style.cssText = `
|
||||||
width: 1.5px;
|
width: 1.5px;
|
||||||
height: 1.5px;
|
height: 1.5px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
box-shadow: ${starsMedium};
|
box-shadow: ${starsMedium};
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stars3) {
|
if (stars3) {
|
||||||
stars3.style.cssText = `
|
stars3.style.cssText = `
|
||||||
width: 2px;
|
width: 2px;
|
||||||
height: 2px;
|
height: 2px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
box-shadow: ${starsLarge};
|
box-shadow: ${starsLarge};
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
document.addEventListener('astro:after-swap', initBG);
|
document.addEventListener('astro:after-swap', initBG);
|
||||||
initBG();
|
initBG();
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
function onScroll() {
|
function onScroll() {
|
||||||
const header = document.getElementById("header")
|
const header = document.getElementById("header")
|
||||||
if (window.scrollY > 0) {
|
if (window.scrollY > 0) {
|
||||||
header.classList.add("scrolled")
|
header.classList.add("scrolled")
|
||||||
} else {
|
} else {
|
||||||
header.classList.remove("scrolled")
|
header.classList.remove("scrolled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
document.addEventListener("scroll", onScroll)
|
document.addEventListener("scroll", onScroll)
|
||||||
|
|||||||
@@ -1,67 +1,67 @@
|
|||||||
function changeTheme() {
|
function changeTheme() {
|
||||||
const element = document.documentElement
|
const element = document.documentElement
|
||||||
const theme = element.classList.contains("dark") ? "light" : "dark"
|
const theme = element.classList.contains("dark") ? "light" : "dark"
|
||||||
|
|
||||||
const css = document.createElement("style")
|
const css = document.createElement("style")
|
||||||
|
|
||||||
css.appendChild(
|
css.appendChild(
|
||||||
document.createTextNode(
|
document.createTextNode(
|
||||||
`* {
|
`* {
|
||||||
-webkit-transition: none !important;
|
-webkit-transition: none !important;
|
||||||
-moz-transition: none !important;
|
-moz-transition: none !important;
|
||||||
-o-transition: none !important;
|
-o-transition: none !important;
|
||||||
-ms-transition: none !important;
|
-ms-transition: none !important;
|
||||||
transition: none !important;
|
transition: none !important;
|
||||||
}`,
|
}`,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
document.head.appendChild(css)
|
document.head.appendChild(css)
|
||||||
|
|
||||||
if (theme === "dark") {
|
if (theme === "dark") {
|
||||||
element.classList.add("dark")
|
element.classList.add("dark")
|
||||||
} else {
|
} else {
|
||||||
element.classList.remove("dark")
|
element.classList.remove("dark")
|
||||||
}
|
}
|
||||||
|
|
||||||
window.getComputedStyle(css).opacity
|
window.getComputedStyle(css).opacity
|
||||||
document.head.removeChild(css)
|
document.head.removeChild(css)
|
||||||
localStorage.theme = theme
|
localStorage.theme = theme
|
||||||
}
|
}
|
||||||
|
|
||||||
function preloadTheme() {
|
function preloadTheme() {
|
||||||
const theme = (() => {
|
const theme = (() => {
|
||||||
const userTheme = localStorage.theme
|
const userTheme = localStorage.theme
|
||||||
|
|
||||||
if (userTheme === "light" || userTheme === "dark") {
|
if (userTheme === "light" || userTheme === "dark") {
|
||||||
return userTheme
|
return userTheme
|
||||||
} else {
|
} else {
|
||||||
return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"
|
return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"
|
||||||
}
|
}
|
||||||
})()
|
})()
|
||||||
|
|
||||||
const element = document.documentElement
|
const element = document.documentElement
|
||||||
|
|
||||||
if (theme === "dark") {
|
if (theme === "dark") {
|
||||||
element.classList.add("dark")
|
element.classList.add("dark")
|
||||||
} else {
|
} else {
|
||||||
element.classList.remove("dark")
|
element.classList.remove("dark")
|
||||||
}
|
}
|
||||||
|
|
||||||
localStorage.theme = theme
|
localStorage.theme = theme
|
||||||
}
|
}
|
||||||
|
|
||||||
window.onload = () => {
|
window.onload = () => {
|
||||||
function initializeThemeButtons() {
|
function initializeThemeButtons() {
|
||||||
const headerThemeButton = document.getElementById("header-theme-button")
|
const headerThemeButton = document.getElementById("header-theme-button")
|
||||||
const drawerThemeButton = document.getElementById("drawer-theme-button")
|
const drawerThemeButton = document.getElementById("drawer-theme-button")
|
||||||
headerThemeButton?.addEventListener("click", changeTheme)
|
headerThemeButton?.addEventListener("click", changeTheme)
|
||||||
drawerThemeButton?.addEventListener("click", changeTheme)
|
drawerThemeButton?.addEventListener("click", changeTheme)
|
||||||
}
|
}
|
||||||
|
|
||||||
document.addEventListener("astro:after-swap", initializeThemeButtons)
|
document.addEventListener("astro:after-swap", initializeThemeButtons)
|
||||||
initializeThemeButtons()
|
initializeThemeButtons()
|
||||||
}
|
}
|
||||||
|
|
||||||
document.addEventListener("astro:after-swap", preloadTheme)
|
document.addEventListener("astro:after-swap", preloadTheme)
|
||||||
|
|
||||||
preloadTheme()
|
preloadTheme()
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg">
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
<defs>
|
<defs>
|
||||||
<symbol id="email" viewBox="0 0 512 512">
|
<symbol id="email" viewBox="0 0 512 512">
|
||||||
<path d="M64 112c-8.8 0-16 7.2-16 16v22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1V128c0-8.8-7.2-16-16-16H64zM48 212.2V384c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V212.2L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z"/>
|
<path d="M64 112c-8.8 0-16 7.2-16 16v22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1V128c0-8.8-7.2-16-16-16H64zM48 212.2V384c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V212.2L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
<symbol id="github" viewBox="0 0 496 512">
|
<symbol id="github" viewBox="0 0 496 512">
|
||||||
<path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/>
|
<path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
<symbol id="linkedin" viewBox="0 0 448 512">
|
<symbol id="linkedin" viewBox="0 0 448 512">
|
||||||
<path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"/>
|
<path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
<symbol id="youtube" viewBox="0 0 512 512">
|
<symbol id="youtube" viewBox="0 0 512 512">
|
||||||
<path d="M549.7 124.1c-6.3-23.7-24.8-42.3-48.3-48.6C458.8 64 288 64 288 64S117.2 64 74.6 75.5c-23.5 6.3-42 24.9-48.3 48.6-11.4 42.9-11.4 132.3-11.4 132.3s0 89.4 11.4 132.3c6.3 23.7 24.8 41.5 48.3 47.8C117.2 448 288 448 288 448s170.8 0 213.4-11.5c23.5-6.3 42-24.2 48.3-47.8 11.4-42.9 11.4-132.3 11.4-132.3s0-89.4-11.4-132.3zm-317.5 213.5V175.2l142.7 81.2-142.7 81.2z"/>
|
<path d="M549.7 124.1c-6.3-23.7-24.8-42.3-48.3-48.6C458.8 64 288 64 288 64S117.2 64 74.6 75.5c-23.5 6.3-42 24.9-48.3 48.6-11.4 42.9-11.4 132.3-11.4 132.3s0 89.4 11.4 132.3c6.3 23.7 24.8 41.5 48.3 47.8C117.2 448 288 448 288 448s170.8 0 213.4-11.5c23.5-6.3 42-24.2 48.3-47.8 11.4-42.9 11.4-132.3 11.4-132.3s0-89.4-11.4-132.3zm-317.5 213.5V175.2l142.7 81.2-142.7 81.2z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
<symbol id="telegram" viewBox="0 0 496 512">
|
<symbol id="telegram" viewBox="0 0 496 512">
|
||||||
<path d="M248 8C111 8 0 119 0 256S111 504 248 504 496 393 496 256 385 8 248 8zM363 176.7c-3.7 39.2-19.9 134.4-28.1 178.3-3.5 18.6-10.3 24.8-16.9 25.4-14.4 1.3-25.3-9.5-39.3-18.7-21.8-14.3-34.2-23.2-55.3-37.2-24.5-16.1-8.6-25 5.3-39.5 3.7-3.8 67.1-61.5 68.3-66.7 .2-.7 .3-3.1-1.2-4.4s-3.6-.8-5.1-.5q-3.3 .7-104.6 69.1-14.8 10.2-26.9 9.9c-8.9-.2-25.9-5-38.6-9.1-15.5-5-27.9-7.7-26.8-16.3q.8-6.7 18.5-13.7 108.4-47.2 144.6-62.3c68.9-28.6 83.2-33.6 92.5-33.8 2.1 0 6.6 .5 9.6 2.9a10.5 10.5 0 0 1 3.5 6.7A43.8 43.8 0 0 1 363 176.7z"/>
|
<path d="M248 8C111 8 0 119 0 256S111 504 248 504 496 393 496 256 385 8 248 8zM363 176.7c-3.7 39.2-19.9 134.4-28.1 178.3-3.5 18.6-10.3 24.8-16.9 25.4-14.4 1.3-25.3-9.5-39.3-18.7-21.8-14.3-34.2-23.2-55.3-37.2-24.5-16.1-8.6-25 5.3-39.5 3.7-3.8 67.1-61.5 68.3-66.7 .2-.7 .3-3.1-1.2-4.4s-3.6-.8-5.1-.5q-3.3 .7-104.6 69.1-14.8 10.2-26.9 9.9c-8.9-.2-25.9-5-38.6-9.1-15.5-5-27.9-7.7-26.8-16.3q.8-6.7 18.5-13.7 108.4-47.2 144.6-62.3c68.9-28.6 83.2-33.6 92.5-33.8 2.1 0 6.6 .5 9.6 2.9a10.5 10.5 0 0 1 3.5 6.7A43.8 43.8 0 0 1 363 176.7z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
</defs>
|
</defs>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
@@ -1,27 +1,27 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg">
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
<defs>
|
<defs>
|
||||||
<!-- astro icon -->
|
<!-- astro icon -->
|
||||||
<symbol id="astro" viewBox="0 0 85 107">
|
<symbol id="astro" viewBox="0 0 85 107">
|
||||||
<path d="M27.5894 91.1365C22.7555 86.7178 21.3444 77.4335 23.3583 70.7072C26.8503 74.948 31.6888 76.2914 36.7005 77.0497C44.4375 78.2199 52.0359 77.7822 59.2232 74.2459C60.0454 73.841 60.8052 73.3027 61.7036 72.7574C62.378 74.714 62.5535 76.6892 62.318 78.6996C61.7452 83.5957 59.3086 87.3778 55.4332 90.2448C53.8835 91.3916 52.2437 92.4167 50.6432 93.4979C45.7262 96.8213 44.3959 100.718 46.2435 106.386C46.2874 106.525 46.3267 106.663 46.426 107C43.9155 105.876 42.0817 104.24 40.6845 102.089C39.2087 99.8193 38.5066 97.3081 38.4696 94.5909C38.4511 93.2686 38.4511 91.9345 38.2733 90.6309C37.8391 87.4527 36.3471 86.0297 33.5364 85.9478C30.6518 85.8636 28.37 87.6469 27.7649 90.4554C27.7187 90.6707 27.6517 90.8837 27.5847 91.1341L27.5894 91.1365Z" fill="#F041FF"/>
|
<path d="M27.5894 91.1365C22.7555 86.7178 21.3444 77.4335 23.3583 70.7072C26.8503 74.948 31.6888 76.2914 36.7005 77.0497C44.4375 78.2199 52.0359 77.7822 59.2232 74.2459C60.0454 73.841 60.8052 73.3027 61.7036 72.7574C62.378 74.714 62.5535 76.6892 62.318 78.6996C61.7452 83.5957 59.3086 87.3778 55.4332 90.2448C53.8835 91.3916 52.2437 92.4167 50.6432 93.4979C45.7262 96.8213 44.3959 100.718 46.2435 106.386C46.2874 106.525 46.3267 106.663 46.426 107C43.9155 105.876 42.0817 104.24 40.6845 102.089C39.2087 99.8193 38.5066 97.3081 38.4696 94.5909C38.4511 93.2686 38.4511 91.9345 38.2733 90.6309C37.8391 87.4527 36.3471 86.0297 33.5364 85.9478C30.6518 85.8636 28.37 87.6469 27.7649 90.4554C27.7187 90.6707 27.6517 90.8837 27.5847 91.1341L27.5894 91.1365Z" fill="#F041FF"/>
|
||||||
<path d="M0 69.5866C0 69.5866 14.3139 62.6137 28.6678 62.6137L39.4901 29.1204C39.8953 27.5007 41.0783 26.3999 42.4139 26.3999C43.7495 26.3999 44.9325 27.5007 45.3377 29.1204L56.1601 62.6137C73.1601 62.6137 84.8278 69.5866 84.8278 69.5866C84.8278 69.5866 60.5145 3.35233 60.467 3.21944C59.7692 1.2612 58.5911 0 57.0029 0H27.8274C26.2392 0 25.1087 1.2612 24.3634 3.21944C24.3108 3.34983 0 69.5866 0 69.5866Z" fill="currentColor"/>
|
<path d="M0 69.5866C0 69.5866 14.3139 62.6137 28.6678 62.6137L39.4901 29.1204C39.8953 27.5007 41.0783 26.3999 42.4139 26.3999C43.7495 26.3999 44.9325 27.5007 45.3377 29.1204L56.1601 62.6137C73.1601 62.6137 84.8278 69.5866 84.8278 69.5866C84.8278 69.5866 60.5145 3.35233 60.467 3.21944C59.7692 1.2612 58.5911 0 57.0029 0H27.8274C26.2392 0 25.1087 1.2612 24.3634 3.21944C24.3108 3.34983 0 69.5866 0 69.5866Z" fill="currentColor"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- javascript icon -->
|
<!-- javascript icon -->
|
||||||
<symbol id="javascript" viewBox="0 0 630 630">
|
<symbol id="javascript" viewBox="0 0 630 630">
|
||||||
<rect width="630" height="630" fill="#f7df1e"/>
|
<rect width="630" height="630" fill="#f7df1e"/>
|
||||||
<path fill="black" d="m423.2 492.19c12.69 20.72 29.2 35.95 58.4 35.95 24.53 0 40.2-12.26 40.2-29.2 0-20.3-16.1-27.49-43.1-39.3l-14.8-6.35c-42.72-18.2-71.1-41-71.1-89.2 0-44.4 33.83-78.2 86.7-78.2 37.64 0 64.7 13.1 84.2 47.4l-46.1 29.6c-10.15-18.2-21.1-25.37-38.1-25.37-17.34 0-28.33 11-28.33 25.37 0 17.76 11 24.95 36.4 35.95l14.8 6.34c50.3 21.57 78.7 43.56 78.7 93 0 53.3-41.87 82.5-98.1 82.5-54.98 0-90.5-26.2-107.88-60.54zm-209.13 5.13c9.3 16.5 17.76 30.45 38.1 30.45 19.45 0 31.72-7.61 31.72-37.2v-201.3h59.2v202.1c0 61.3-35.94 89.2-88.4 89.2-47.4 0-74.85-24.53-88.81-54.075z"/>
|
<path fill="black" d="m423.2 492.19c12.69 20.72 29.2 35.95 58.4 35.95 24.53 0 40.2-12.26 40.2-29.2 0-20.3-16.1-27.49-43.1-39.3l-14.8-6.35c-42.72-18.2-71.1-41-71.1-89.2 0-44.4 33.83-78.2 86.7-78.2 37.64 0 64.7 13.1 84.2 47.4l-46.1 29.6c-10.15-18.2-21.1-25.37-38.1-25.37-17.34 0-28.33 11-28.33 25.37 0 17.76 11 24.95 36.4 35.95l14.8 6.34c50.3 21.57 78.7 43.56 78.7 93 0 53.3-41.87 82.5-98.1 82.5-54.98 0-90.5-26.2-107.88-60.54zm-209.13 5.13c9.3 16.5 17.76 30.45 38.1 30.45 19.45 0 31.72-7.61 31.72-37.2v-201.3h59.2v202.1c0 61.3-35.94 89.2-88.4 89.2-47.4 0-74.85-24.53-88.81-54.075z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- typescript icon -->
|
<!-- typescript icon -->
|
||||||
<symbol id="typescript" fill="none" viewBox="0 0 512 512">
|
<symbol id="typescript" fill="none" viewBox="0 0 512 512">
|
||||||
<rect fill="#3178c6" height="512" rx="50" width="512"/>
|
<rect fill="#3178c6" height="512" rx="50" width="512"/>
|
||||||
<rect fill="#3178c6" height="512" rx="50" width="512"/>
|
<rect fill="#3178c6" height="512" rx="50" width="512"/>
|
||||||
<path clip-rule="evenodd" fill="#fff" fill-rule="evenodd" d="m316.939 407.424v50.061c8.138 4.172 17.763 7.3 28.875 9.386s22.823 3.129 35.135 3.129c11.999 0 23.397-1.147 34.196-3.442 10.799-2.294 20.268-6.075 28.406-11.342 8.138-5.266 14.581-12.15 19.328-20.65s7.121-19.007 7.121-31.522c0-9.074-1.356-17.026-4.069-23.857s-6.625-12.906-11.738-18.225c-5.112-5.319-11.242-10.091-18.389-14.315s-15.207-8.213-24.18-11.967c-6.573-2.712-12.468-5.345-17.685-7.9-5.217-2.556-9.651-5.163-13.303-7.822-3.652-2.66-6.469-5.476-8.451-8.448-1.982-2.973-2.974-6.336-2.974-10.091 0-3.441.887-6.544 2.661-9.308s4.278-5.136 7.512-7.118c3.235-1.981 7.199-3.52 11.894-4.615 4.696-1.095 9.912-1.642 15.651-1.642 4.173 0 8.581.313 13.224.938 4.643.626 9.312 1.591 14.008 2.894 4.695 1.304 9.259 2.947 13.694 4.928 4.434 1.982 8.529 4.276 12.285 6.884v-46.776c-7.616-2.92-15.937-5.084-24.962-6.492s-19.381-2.112-31.066-2.112c-11.895 0-23.163 1.278-33.805 3.833s-20.006 6.544-28.093 11.967c-8.086 5.424-14.476 12.333-19.171 20.729-4.695 8.395-7.043 18.433-7.043 30.114 0 14.914 4.304 27.638 12.912 38.172 8.607 10.533 21.675 19.45 39.204 26.751 6.886 2.816 13.303 5.579 19.25 8.291s11.086 5.528 15.415 8.448c4.33 2.92 7.747 6.101 10.252 9.543 2.504 3.441 3.756 7.352 3.756 11.733 0 3.233-.783 6.231-2.348 8.995s-3.939 5.162-7.121 7.196-7.147 3.624-11.894 4.771c-4.748 1.148-10.303 1.721-16.668 1.721-10.851 0-21.597-1.903-32.24-5.71-10.642-3.806-20.502-9.516-29.579-17.13zm-84.159-123.342h64.22v-41.082h-179v41.082h63.906v182.918h50.874z"/>
|
<path clip-rule="evenodd" fill="#fff" fill-rule="evenodd" d="m316.939 407.424v50.061c8.138 4.172 17.763 7.3 28.875 9.386s22.823 3.129 35.135 3.129c11.999 0 23.397-1.147 34.196-3.442 10.799-2.294 20.268-6.075 28.406-11.342 8.138-5.266 14.581-12.15 19.328-20.65s7.121-19.007 7.121-31.522c0-9.074-1.356-17.026-4.069-23.857s-6.625-12.906-11.738-18.225c-5.112-5.319-11.242-10.091-18.389-14.315s-15.207-8.213-24.18-11.967c-6.573-2.712-12.468-5.345-17.685-7.9-5.217-2.556-9.651-5.163-13.303-7.822-3.652-2.66-6.469-5.476-8.451-8.448-1.982-2.973-2.974-6.336-2.974-10.091 0-3.441.887-6.544 2.661-9.308s4.278-5.136 7.512-7.118c3.235-1.981 7.199-3.52 11.894-4.615 4.696-1.095 9.912-1.642 15.651-1.642 4.173 0 8.581.313 13.224.938 4.643.626 9.312 1.591 14.008 2.894 4.695 1.304 9.259 2.947 13.694 4.928 4.434 1.982 8.529 4.276 12.285 6.884v-46.776c-7.616-2.92-15.937-5.084-24.962-6.492s-19.381-2.112-31.066-2.112c-11.895 0-23.163 1.278-33.805 3.833s-20.006 6.544-28.093 11.967c-8.086 5.424-14.476 12.333-19.171 20.729-4.695 8.395-7.043 18.433-7.043 30.114 0 14.914 4.304 27.638 12.912 38.172 8.607 10.533 21.675 19.45 39.204 26.751 6.886 2.816 13.303 5.579 19.25 8.291s11.086 5.528 15.415 8.448c4.33 2.92 7.747 6.101 10.252 9.543 2.504 3.441 3.756 7.352 3.756 11.733 0 3.233-.783 6.231-2.348 8.995s-3.939 5.162-7.121 7.196-7.147 3.624-11.894 4.771c-4.748 1.148-10.303 1.721-16.668 1.721-10.851 0-21.597-1.903-32.24-5.71-10.642-3.806-20.502-9.516-29.579-17.13zm-84.159-123.342h64.22v-41.082h-179v41.082h63.906v182.918h50.874z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- tailwind icon -->
|
<!-- tailwind icon -->
|
||||||
<symbol id="tailwind" viewBox="0 0 47 40" fill="none">
|
<symbol id="tailwind" viewBox="0 0 47 40" fill="none">
|
||||||
<path fill="#6366f1" d="M23.5 6.5C17.5 6.5 13.75 9.5 12.25 15.5C14.5 12.5 17.125 11.375 20.125 12.125C21.8367 12.5529 23.0601 13.7947 24.4142 15.1692C26.6202 17.4084 29.1734 20 34.75 20C40.75 20 44.5 17 46 11C43.75 14 41.125 15.125 38.125 14.375C36.4133 13.9471 35.1899 12.7053 33.8357 11.3308C31.6297 9.09158 29.0766 6.5 23.5 6.5ZM12.25 20C6.25 20 2.5 23 1 29C3.25 26 5.875 24.875 8.875 25.625C10.5867 26.0529 11.8101 27.2947 13.1642 28.6693C15.3702 30.9084 17.9234 33.5 23.5 33.5C29.5 33.5 33.25 30.5 34.75 24.5C32.5 27.5 29.875 28.625 26.875 27.875C25.1633 27.4471 23.9399 26.2053 22.5858 24.8307C20.3798 22.5916 17.8266 20 12.25 20Z"/>
|
<path fill="#6366f1" d="M23.5 6.5C17.5 6.5 13.75 9.5 12.25 15.5C14.5 12.5 17.125 11.375 20.125 12.125C21.8367 12.5529 23.0601 13.7947 24.4142 15.1692C26.6202 17.4084 29.1734 20 34.75 20C40.75 20 44.5 17 46 11C43.75 14 41.125 15.125 38.125 14.375C36.4133 13.9471 35.1899 12.7053 33.8357 11.3308C31.6297 9.09158 29.0766 6.5 23.5 6.5ZM12.25 20C6.25 20 2.5 23 1 29C3.25 26 5.875 24.875 8.875 25.625C10.5867 26.0529 11.8101 27.2947 13.1642 28.6693C15.3702 30.9084 17.9234 33.5 23.5 33.5C29.5 33.5 33.25 30.5 34.75 24.5C32.5 27.5 29.875 28.625 26.875 27.875C25.1633 27.4471 23.9399 26.2053 22.5858 24.8307C20.3798 22.5916 17.8266 20 12.25 20Z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
</defs>
|
</defs>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
@@ -1,87 +1,87 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg">
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
<defs>
|
<defs>
|
||||||
<!-- menu -->
|
<!-- menu -->
|
||||||
<symbol id="menu" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
<symbol id="menu" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
||||||
<path d="M3 12h18"/>
|
<path d="M3 12h18"/>
|
||||||
<path d="M3 6h18"/>
|
<path d="M3 6h18"/>
|
||||||
<path d="M3 18h18"/>
|
<path d="M3 18h18"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- x -->
|
<!-- x -->
|
||||||
<symbol id="x" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
<symbol id="x" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
||||||
<path d="M18 6L6 18"/>
|
<path d="M18 6L6 18"/>
|
||||||
<path d="M6 6l12 12"/>
|
<path d="M6 6l12 12"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- search -->
|
<!-- search -->
|
||||||
<symbol id="search" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
<symbol id="search" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
||||||
<path d="M11 17.25a6.25 6.25 0 110-12.5 6.25 6.25 0 010 12.5z"/>
|
<path d="M11 17.25a6.25 6.25 0 110-12.5 6.25 6.25 0 010 12.5z"/>
|
||||||
<path d="M16 16l4.5 4.5"/>
|
<path d="M16 16l4.5 4.5"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- rss -->
|
<!-- rss -->
|
||||||
<symbol id="rss" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
<symbol id="rss" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
||||||
<path d="M4 11a9 9 0 019 9"/>
|
<path d="M4 11a9 9 0 019 9"/>
|
||||||
<path d="M4 4a16 16 0 0116 16"/>
|
<path d="M4 4a16 16 0 0116 16"/>
|
||||||
<circle cx="5" cy="19" r="1"/>
|
<circle cx="5" cy="19" r="1"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- sun -->
|
<!-- sun -->
|
||||||
<symbol id="sun" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
<symbol id="sun" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
||||||
<circle cx="12" cy="12" r="5"/>
|
<circle cx="12" cy="12" r="5"/>
|
||||||
<path d="M12 1v2"/>
|
<path d="M12 1v2"/>
|
||||||
<path d="M12 21v2"/>
|
<path d="M12 21v2"/>
|
||||||
<path d="M4.22 4.22l1.42 1.42"/>
|
<path d="M4.22 4.22l1.42 1.42"/>
|
||||||
<path d="M18.36 18.36l1.42 1.42"/>
|
<path d="M18.36 18.36l1.42 1.42"/>
|
||||||
<path d="M1 12h2"/>
|
<path d="M1 12h2"/>
|
||||||
<path d="M21 12h2"/>
|
<path d="M21 12h2"/>
|
||||||
<path d="M4.22 19.78l1.42-1.42"/>
|
<path d="M4.22 19.78l1.42-1.42"/>
|
||||||
<path d="M18.36 5.64l1.42-1.42"/>
|
<path d="M18.36 5.64l1.42-1.42"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- moon -->
|
<!-- moon -->
|
||||||
<symbol id="moon" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
<symbol id="moon" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
||||||
<path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/>
|
<path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- square -->
|
<!-- square -->
|
||||||
<symbol id="square" viewBox="0 0 448 512">
|
<symbol id="square" viewBox="0 0 448 512">
|
||||||
<path d="M384 80c8.8 0 16 7.2 16 16V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V96c0-8.8 7.2-16 16-16H384zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"/>
|
<path d="M384 80c8.8 0 16 7.2 16 16V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V96c0-8.8 7.2-16 16-16H384zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- square-check -->
|
<!-- square-check -->
|
||||||
<symbol id="square-check" viewBox="0 0 448 512">
|
<symbol id="square-check" viewBox="0 0 448 512">
|
||||||
<path d="M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"/>
|
<path d="M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- calendar -->
|
<!-- calendar -->
|
||||||
<symbol id="calendar" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24">
|
<symbol id="calendar" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24">
|
||||||
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"/>
|
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"/>
|
||||||
<path d="M16 2v4"/>
|
<path d="M16 2v4"/>
|
||||||
<path d="M8 2v4"/>
|
<path d="M8 2v4"/>
|
||||||
<path d="M3 10h18"/>
|
<path d="M3 10h18"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- book-open -->
|
<!-- book-open -->
|
||||||
<symbol id="book-open" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24">
|
<symbol id="book-open" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24">
|
||||||
<path d="M2 3h6a4 4 0 014 4v14a3 3 0 00-3-3H2z"/>
|
<path d="M2 3h6a4 4 0 014 4v14a3 3 0 00-3-3H2z"/>
|
||||||
<path d="M22 3h-6a4 4 0 00-4 4v14a3 3 0 013-3h7z"/>
|
<path d="M22 3h-6a4 4 0 00-4 4v14a3 3 0 013-3h7z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- arrow-right -->
|
<!-- arrow-right -->
|
||||||
<symbol id="arrow-right" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24">
|
<symbol id="arrow-right" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24">
|
||||||
<path d="M5 12h14"/>
|
<path d="M5 12h14"/>
|
||||||
<path d="M12 5l7 7-7 7"/>
|
<path d="M12 5l7 7-7 7"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- globe -->
|
<!-- globe -->
|
||||||
<symbol id="globe" viewBox="0 0 16 16">
|
<symbol id="globe" viewBox="0 0 16 16">
|
||||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.268 14.0934C11.9051 13.4838 13.2303 12.2333 13.9384 10.6469C13.1192 10.7941 12.2138 10.9111 11.2469 10.9925C11.0336 12.2005 10.695 13.2621 10.268 14.0934ZM8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16ZM8.48347 14.4823C8.32384 14.494 8.16262 14.5 8 14.5C7.83738 14.5 7.67616 14.494 7.51654 14.4823C7.5132 14.4791 7.50984 14.4759 7.50647 14.4726C7.2415 14.2165 6.94578 13.7854 6.67032 13.1558C6.41594 12.5744 6.19979 11.8714 6.04101 11.0778C6.67605 11.1088 7.33104 11.125 8 11.125C8.66896 11.125 9.32395 11.1088 9.95899 11.0778C9.80021 11.8714 9.58406 12.5744 9.32968 13.1558C9.05422 13.7854 8.7585 14.2165 8.49353 14.4726C8.49016 14.4759 8.4868 14.4791 8.48347 14.4823ZM11.4187 9.72246C12.5137 9.62096 13.5116 9.47245 14.3724 9.28806C14.4561 8.87172 14.5 8.44099 14.5 8C14.5 7.55901 14.4561 7.12828 14.3724 6.71194C13.5116 6.52755 12.5137 6.37904 11.4187 6.27753C11.4719 6.83232 11.5 7.40867 11.5 8C11.5 8.59133 11.4719 9.16768 11.4187 9.72246ZM10.1525 6.18401C10.2157 6.75982 10.25 7.36805 10.25 8C10.25 8.63195 10.2157 9.24018 10.1525 9.81598C9.46123 9.85455 8.7409 9.875 8 9.875C7.25909 9.875 6.53877 9.85455 5.84749 9.81598C5.7843 9.24018 5.75 8.63195 5.75 8C5.75 7.36805 5.7843 6.75982 5.84749 6.18401C6.53877 6.14545 7.25909 6.125 8 6.125C8.74091 6.125 9.46123 6.14545 10.1525 6.18401ZM11.2469 5.00748C12.2138 5.08891 13.1191 5.20593 13.9384 5.35306C13.2303 3.7667 11.9051 2.51622 10.268 1.90662C10.695 2.73788 11.0336 3.79953 11.2469 5.00748ZM8.48347 1.51771C8.4868 1.52089 8.49016 1.52411 8.49353 1.52737C8.7585 1.78353 9.05422 2.21456 9.32968 2.84417C9.58406 3.42562 9.80021 4.12856 9.95899 4.92219C9.32395 4.89118 8.66896 4.875 8 4.875C7.33104 4.875 6.67605 4.89118 6.04101 4.92219C6.19978 4.12856 6.41594 3.42562 6.67032 2.84417C6.94578 2.21456 7.2415 1.78353 7.50647 1.52737C7.50984 1.52411 7.51319 1.52089 7.51653 1.51771C7.67615 1.50597 7.83738 1.5 8 1.5C8.16262 1.5 8.32384 1.50597 8.48347 1.51771ZM5.73202 1.90663C4.0949 2.51622 2.76975 3.7667 2.06159 5.35306C2.88085 5.20593 3.78617 5.08891 4.75309 5.00748C4.96639 3.79953 5.30497 2.73788 5.73202 1.90663ZM4.58133 6.27753C3.48633 6.37904 2.48837 6.52755 1.62761 6.71194C1.54392 7.12828 1.5 7.55901 1.5 8C1.5 8.44099 1.54392 8.87172 1.62761 9.28806C2.48837 9.47245 3.48633 9.62096 4.58133 9.72246C4.52807 9.16768 4.5 8.59133 4.5 8C4.5 7.40867 4.52807 6.83232 4.58133 6.27753ZM4.75309 10.9925C3.78617 10.9111 2.88085 10.7941 2.06159 10.6469C2.76975 12.2333 4.0949 13.4838 5.73202 14.0934C5.30497 13.2621 4.96639 12.2005 4.75309 10.9925Z"/>
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.268 14.0934C11.9051 13.4838 13.2303 12.2333 13.9384 10.6469C13.1192 10.7941 12.2138 10.9111 11.2469 10.9925C11.0336 12.2005 10.695 13.2621 10.268 14.0934ZM8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16ZM8.48347 14.4823C8.32384 14.494 8.16262 14.5 8 14.5C7.83738 14.5 7.67616 14.494 7.51654 14.4823C7.5132 14.4791 7.50984 14.4759 7.50647 14.4726C7.2415 14.2165 6.94578 13.7854 6.67032 13.1558C6.41594 12.5744 6.19979 11.8714 6.04101 11.0778C6.67605 11.1088 7.33104 11.125 8 11.125C8.66896 11.125 9.32395 11.1088 9.95899 11.0778C9.80021 11.8714 9.58406 12.5744 9.32968 13.1558C9.05422 13.7854 8.7585 14.2165 8.49353 14.4726C8.49016 14.4759 8.4868 14.4791 8.48347 14.4823ZM11.4187 9.72246C12.5137 9.62096 13.5116 9.47245 14.3724 9.28806C14.4561 8.87172 14.5 8.44099 14.5 8C14.5 7.55901 14.4561 7.12828 14.3724 6.71194C13.5116 6.52755 12.5137 6.37904 11.4187 6.27753C11.4719 6.83232 11.5 7.40867 11.5 8C11.5 8.59133 11.4719 9.16768 11.4187 9.72246ZM10.1525 6.18401C10.2157 6.75982 10.25 7.36805 10.25 8C10.25 8.63195 10.2157 9.24018 10.1525 9.81598C9.46123 9.85455 8.7409 9.875 8 9.875C7.25909 9.875 6.53877 9.85455 5.84749 9.81598C5.7843 9.24018 5.75 8.63195 5.75 8C5.75 7.36805 5.7843 6.75982 5.84749 6.18401C6.53877 6.14545 7.25909 6.125 8 6.125C8.74091 6.125 9.46123 6.14545 10.1525 6.18401ZM11.2469 5.00748C12.2138 5.08891 13.1191 5.20593 13.9384 5.35306C13.2303 3.7667 11.9051 2.51622 10.268 1.90662C10.695 2.73788 11.0336 3.79953 11.2469 5.00748ZM8.48347 1.51771C8.4868 1.52089 8.49016 1.52411 8.49353 1.52737C8.7585 1.78353 9.05422 2.21456 9.32968 2.84417C9.58406 3.42562 9.80021 4.12856 9.95899 4.92219C9.32395 4.89118 8.66896 4.875 8 4.875C7.33104 4.875 6.67605 4.89118 6.04101 4.92219C6.19978 4.12856 6.41594 3.42562 6.67032 2.84417C6.94578 2.21456 7.2415 1.78353 7.50647 1.52737C7.50984 1.52411 7.51319 1.52089 7.51653 1.51771C7.67615 1.50597 7.83738 1.5 8 1.5C8.16262 1.5 8.32384 1.50597 8.48347 1.51771ZM5.73202 1.90663C4.0949 2.51622 2.76975 3.7667 2.06159 5.35306C2.88085 5.20593 3.78617 5.08891 4.75309 5.00748C4.96639 3.79953 5.30497 2.73788 5.73202 1.90663ZM4.58133 6.27753C3.48633 6.37904 2.48837 6.52755 1.62761 6.71194C1.54392 7.12828 1.5 7.55901 1.5 8C1.5 8.44099 1.54392 8.87172 1.62761 9.28806C2.48837 9.47245 3.48633 9.62096 4.58133 9.72246C4.52807 9.16768 4.5 8.59133 4.5 8C4.5 7.40867 4.52807 6.83232 4.58133 6.27753ZM4.75309 10.9925C3.78617 10.9111 2.88085 10.7941 2.06159 10.6469C2.76975 12.2333 4.0949 13.4838 5.73202 14.0934C5.30497 13.2621 4.96639 12.2005 4.75309 10.9925Z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- link -->
|
<!-- link -->
|
||||||
<symbol id="link" viewBox="0 0 16 16">
|
<symbol id="link" viewBox="0 0 16 16">
|
||||||
<path d="M8.46968 1.46968C10.1433 -0.203925 12.8567 -0.203923 14.5303 1.46968C16.2039 3.14329 16.2039 5.85674 14.5303 7.53034L12.0303 10.0303L10.9697 8.96968L13.4697 6.46968C14.5575 5.38186 14.5575 3.61816 13.4697 2.53034C12.3819 1.44252 10.6182 1.44252 9.53034 2.53034L7.03034 5.03034L5.96968 3.96968L8.46968 1.46968ZM11.5303 5.53034L5.53034 11.5303L4.46968 10.4697L10.4697 4.46968L11.5303 5.53034ZM1.46968 14.5303C3.14329 16.2039 5.85673 16.204 7.53034 14.5303L10.0303 12.0303L8.96968 10.9697L6.46968 13.4697C5.38186 14.5575 3.61816 14.5575 2.53034 13.4697C1.44252 12.3819 1.44252 10.6182 2.53034 9.53034L5.03034 7.03034L3.96968 5.96968L1.46968 8.46968C-0.203923 10.1433 -0.203925 12.8567 1.46968 14.5303Z"/>
|
<path d="M8.46968 1.46968C10.1433 -0.203925 12.8567 -0.203923 14.5303 1.46968C16.2039 3.14329 16.2039 5.85674 14.5303 7.53034L12.0303 10.0303L10.9697 8.96968L13.4697 6.46968C14.5575 5.38186 14.5575 3.61816 13.4697 2.53034C12.3819 1.44252 10.6182 1.44252 9.53034 2.53034L7.03034 5.03034L5.96968 3.96968L8.46968 1.46968ZM11.5303 5.53034L5.53034 11.5303L4.46968 10.4697L10.4697 4.46968L11.5303 5.53034ZM1.46968 14.5303C3.14329 16.2039 5.85673 16.204 7.53034 14.5303L10.0303 12.0303L8.96968 10.9697L6.46968 13.4697C5.38186 14.5575 3.61816 14.5575 2.53034 13.4697C1.44252 12.3819 1.44252 10.6182 2.53034 9.53034L5.03034 7.03034L3.96968 5.96968L1.46968 8.46968C-0.203923 10.1433 -0.203925 12.8567 1.46968 14.5303Z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
</defs>
|
</defs>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.5 KiB |
@@ -18,7 +18,7 @@
|
|||||||
<li>Беспроводной интерфейс позводяет размещать датчики в любом месте.</li>
|
<li>Беспроводной интерфейс позводяет размещать датчики в любом месте.</li>
|
||||||
<li>Неограниченное колличество датчиков.</li>
|
<li>Неограниченное колличество датчиков.</li>
|
||||||
<li>Оповещение с выделенного сервера, позволяет получать свежую информацию об всех неисправностях.</li>
|
<li>Оповещение с выделенного сервера, позволяет получать свежую информацию об всех неисправностях.</li>
|
||||||
</ul> </article> </li><li class="animate border-b border-black/10 dark:border-white/25 mt-4 py-8 first-of-type:mt-0 first-of-type:pt-0 last-of-type:border-none"> <div class="text-sm uppercase mb-4"> янв. 2020 - окт. 2023 </div> <div class="text-black dark:text-white font-semibold"> Система вызова персонала </div> <div class="text-sm font-semibold"> Комплекс пультового управления </div> <article class="prose dark:prose-invert"> <p>В частной клинике внедрили систему автоматического вызова персонала. Если датчики обнаруживают падение пациента или аномалию, они отправляют сигнал на пульт оператора. Это спасает жизни!
|
</ul> </article> </li><li class="animate border-b border-black/10 dark:border-white/25 mt-4 py-8 first-of-type:mt-0 first-of-type:pt-0 last-of-type:border-none"> <div class="text-sm uppercase mb-4"> янв. 2020 - окт. 2023 </div> <div class="text-black dark:text-white font-semibold"> Система вызова персонала </div> <div class="text-sm font-semibold"> Комплекс пультового управления </div> <article class="prose dark:prose-invert"> <p>В частной клинике внедрили систему автоматического вызова персонала. Если датчики обнаруживают падение пациента или аномалию, они отправляют сигнал на пульт оператора. Это спасает жизни!
|
||||||
Так же дополнительное размещение обородувани во все кабинеты позволили оповещать персонал об необходимой помощи всех категорий врачей и охраны.</p>
|
Так же дополнительное размещение обородувани во все кабинеты позволили оповещать персонал об необходимой помощи всех категорий врачей и охраны.</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Беспроводной интерфейс позволил маштабировать сеть на нестандартную форму здания без дополнительной покладки линий</li>
|
<li>Беспроводной интерфейс позволил маштабировать сеть на нестандартную форму здания без дополнительной покладки линий</li>
|
||||||
|
|||||||
@@ -1,51 +1,51 @@
|
|||||||
---
|
---
|
||||||
title: "Astro Sphere: File Structure"
|
title: "Astro Sphere: File Structure"
|
||||||
summary: "You'll find these directories and files in the project. What do they do?"
|
summary: "You'll find these directories and files in the project. What do they do?"
|
||||||
date: "Mar 17 2024"
|
date: "Mar 17 2024"
|
||||||
draft: false
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- Tutorial
|
- Tutorial
|
||||||
- Astro
|
- Astro
|
||||||
- Astro Sphere
|
- Astro Sphere
|
||||||
---
|
---
|
||||||
|
|
||||||
A one line summary of what each file and directory is for:
|
A one line summary of what each file and directory is for:
|
||||||
```js
|
```js
|
||||||
/
|
/
|
||||||
├── public/ // Files publicly available to the browser
|
├── public/ // Files publicly available to the browser
|
||||||
│ ├── fonts/ // The default fonts for Astro Sphere
|
│ ├── fonts/ // The default fonts for Astro Sphere
|
||||||
│ │ └── atkinson-bold.woff // default font weight 700
|
│ │ └── atkinson-bold.woff // default font weight 700
|
||||||
│ │ └── atkinson-regular.woff // default font weight 400
|
│ │ └── atkinson-regular.woff // default font weight 400
|
||||||
│ ├── js/ // Javascript that will be imported into <head>
|
│ ├── js/ // Javascript that will be imported into <head>
|
||||||
│ │ └── animate.js // function for animating page elements
|
│ │ └── animate.js // function for animating page elements
|
||||||
│ │ └── bg.js // function for generating the background
|
│ │ └── bg.js // function for generating the background
|
||||||
│ │ └── scroll.js // scroll handler for the header styles
|
│ │ └── scroll.js // scroll handler for the header styles
|
||||||
│ │ └── theme.js // controls the light and dark theme
|
│ │ └── theme.js // controls the light and dark theme
|
||||||
│ └── brand.svg //the icon that displays in header and footer
|
│ └── brand.svg //the icon that displays in header and footer
|
||||||
│ └── favicon.svg //the icon that displays in the browser
|
│ └── favicon.svg //the icon that displays in the browser
|
||||||
│ └── ui.svg // an svg sprite for all ui icons on the website
|
│ └── ui.svg // an svg sprite for all ui icons on the website
|
||||||
│ └── social.svg // an svg sprite for all social media icons
|
│ └── social.svg // an svg sprite for all social media icons
|
||||||
│ └── open-graph.jpg // the default image for open-graph
|
│ └── open-graph.jpg // the default image for open-graph
|
||||||
│ └── robots.txt // for web crawlers and bots to index the website
|
│ └── robots.txt // for web crawlers and bots to index the website
|
||||||
├── src/ // Everything that will be built for the website
|
├── src/ // Everything that will be built for the website
|
||||||
│ ├── components/ // All astro and SolidJs components
|
│ ├── components/ // All astro and SolidJs components
|
||||||
│ ├── content/ // Contains all static markdown to be compiled
|
│ ├── content/ // Contains all static markdown to be compiled
|
||||||
│ │ | blog/ // Contains all blog post markdown
|
│ │ | blog/ // Contains all blog post markdown
|
||||||
│ │ | projects/ // Contains all projects markdown
|
│ │ | projects/ // Contains all projects markdown
|
||||||
│ │ | work/ // Contains all work page markdown
|
│ │ | work/ // Contains all work page markdown
|
||||||
│ │ | legal/ // Contains all legal docs markdown
|
│ │ | legal/ // Contains all legal docs markdown
|
||||||
│ │ └── config.ts // Contains the collection config for Astro
|
│ │ └── config.ts // Contains the collection config for Astro
|
||||||
│ ├── layouts/ // Reused layouts across the website
|
│ ├── layouts/ // Reused layouts across the website
|
||||||
│ └── pages/ // All of the pages on the website
|
│ └── pages/ // All of the pages on the website
|
||||||
│ └── styles/ // CSS and global tailwind styles
|
│ └── styles/ // CSS and global tailwind styles
|
||||||
│ └── lib/ // Global helper functions
|
│ └── lib/ // Global helper functions
|
||||||
│ └── consts.ts // Page metadata, general configuration
|
│ └── consts.ts // Page metadata, general configuration
|
||||||
│ └── types.ts // Types for consts.ts
|
│ └── types.ts // Types for consts.ts
|
||||||
└── .gitignore // Files and directories to be ignored by Git
|
└── .gitignore // Files and directories to be ignored by Git
|
||||||
└── .eslintignore // Files and directories to be ignored by ESLint
|
└── .eslintignore // Files and directories to be ignored by ESLint
|
||||||
└── eslintrc.cjs // ESLint configuration
|
└── eslintrc.cjs // ESLint configuration
|
||||||
└── astro.config.mjs // Astro configuration
|
└── astro.config.mjs // Astro configuration
|
||||||
└── tailwind.config.mjs // Tailwind configuration
|
└── tailwind.config.mjs // Tailwind configuration
|
||||||
└── tsconfig.json // Typescript configuration
|
└── tsconfig.json // Typescript configuration
|
||||||
└── package.json // All the installed packages
|
└── package.json // All the installed packages
|
||||||
```
|
```
|
||||||
@@ -1,90 +1,90 @@
|
|||||||
---
|
---
|
||||||
title: "Astro Sphere: Getting Started"
|
title: "Astro Sphere: Getting Started"
|
||||||
summary: "You've downloaded and installed the project. Let's hit the ground running."
|
summary: "You've downloaded and installed the project. Let's hit the ground running."
|
||||||
date: "Mar 16 2024"
|
date: "Mar 16 2024"
|
||||||
draft: false
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- Tutorial
|
- Tutorial
|
||||||
- Astro
|
- Astro
|
||||||
- Astro Sphere
|
- Astro Sphere
|
||||||
---
|
---
|
||||||
|
|
||||||
Astro Sphere is designed to be configurable. This article will cover the basics on
|
Astro Sphere is designed to be configurable. This article will cover the basics on
|
||||||
configuring the site and make it personal.
|
configuring the site and make it personal.
|
||||||
|
|
||||||
### First let's change the url
|
### First let's change the url
|
||||||
|
|
||||||
```js
|
```js
|
||||||
//astro.config.mjs
|
//astro.config.mjs
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
site: "https://astro-sphere.vercel.app", // your domain here
|
site: "https://astro-sphere.vercel.app", // your domain here
|
||||||
integrations: [mdx(), sitemap(), solidJs(), tailwind({ applyBaseStyles: false })],
|
integrations: [mdx(), sitemap(), solidJs(), tailwind({ applyBaseStyles: false })],
|
||||||
})
|
})
|
||||||
```
|
```
|
||||||
|
|
||||||
### Next, Let's configure the Site
|
### Next, Let's configure the Site
|
||||||
|
|
||||||
```js
|
```js
|
||||||
// src/consts.ts
|
// src/consts.ts
|
||||||
|
|
||||||
export const SITE: Site = {
|
export const SITE: Site = {
|
||||||
TITLE: "Astro Sphere",
|
TITLE: "Astro Sphere",
|
||||||
DESCRIPTION: "Welcome to Astro Sphere, a portfolio and blog for designers and developers.",
|
DESCRIPTION: "Welcome to Astro Sphere, a portfolio and blog for designers and developers.",
|
||||||
AUTHOR: "Mark Horn",
|
AUTHOR: "Mark Horn",
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
| Field | Type | Description |
|
| Field | Type | Description |
|
||||||
| :---------- | :----- | :--------------------------------------------------------------------- |
|
| :---------- | :----- | :--------------------------------------------------------------------- |
|
||||||
| TITLE | String | The title of the website. Displayed in header and footer. Used in SEO. |
|
| TITLE | String | The title of the website. Displayed in header and footer. Used in SEO. |
|
||||||
| DESCRIPTION | String | The description of the index page of the website. Used in SEO. |
|
| DESCRIPTION | String | The description of the index page of the website. Used in SEO. |
|
||||||
| AUTHOR | String | Your name. |
|
| AUTHOR | String | Your name. |
|
||||||
|
|
||||||
### Change the branding
|
### Change the branding
|
||||||
|
|
||||||
The browser icon is located in `/public/favicon.svg`
|
The browser icon is located in `/public/favicon.svg`
|
||||||
|
|
||||||
The header and footer branding icon is located in `/public/brand.svg` as a sprite with id="brand"
|
The header and footer branding icon is located in `/public/brand.svg` as a sprite with id="brand"
|
||||||
|
|
||||||
### The rest of the consts file
|
### The rest of the consts file
|
||||||
|
|
||||||
Each page has a metadata entry that is useful for SEO.
|
Each page has a metadata entry that is useful for SEO.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
export const WORK: Page = {
|
export const WORK: Page = {
|
||||||
TITLE: "Work",
|
TITLE: "Work",
|
||||||
DESCRIPTION: "Places I have worked.",
|
DESCRIPTION: "Places I have worked.",
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
The links that are displayed in the header and drawer
|
The links that are displayed in the header and drawer
|
||||||
|
|
||||||
```js
|
```js
|
||||||
export const LINKS: Links = [
|
export const LINKS: Links = [
|
||||||
{ HREF: "/", TEXT: "Home" },
|
{ HREF: "/", TEXT: "Home" },
|
||||||
{ HREF: "/work", TEXT: "Work" },
|
{ HREF: "/work", TEXT: "Work" },
|
||||||
{ HREF: "/blog", TEXT: "Blog" },
|
{ HREF: "/blog", TEXT: "Blog" },
|
||||||
{ HREF: "/projects", TEXT: "Projects" },
|
{ HREF: "/projects", TEXT: "Projects" },
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
The social media links
|
The social media links
|
||||||
|
|
||||||
```js
|
```js
|
||||||
export const SOCIALS: Socials = [
|
export const SOCIALS: Socials = [
|
||||||
{
|
{
|
||||||
NAME: "Github",
|
NAME: "Github",
|
||||||
ICON: "github",
|
ICON: "github",
|
||||||
TEXT: "markhorn-dev",
|
TEXT: "markhorn-dev",
|
||||||
HREF: "https://github.com/markhorn-dev/astro-sphere"
|
HREF: "https://github.com/markhorn-dev/astro-sphere"
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
| Field | Type | Required | Description |
|
| Field | Type | Required | Description |
|
||||||
| :---- | :--- | :------- | :---------- |
|
| :---- | :--- | :------- | :---------- |
|
||||||
| NAME | string | yes | Accessible name |
|
| NAME | string | yes | Accessible name |
|
||||||
| ICON | string | yes | Refers to the symbol id in `public/social.svg` |
|
| ICON | string | yes | Refers to the symbol id in `public/social.svg` |
|
||||||
| TEXT | string | yes | Shorthand profile name |
|
| TEXT | string | yes | Shorthand profile name |
|
||||||
| HREF | string | yes | The link to the social media profile |
|
| HREF | string | yes | The link to the social media profile |
|
||||||
@@ -1,87 +1,87 @@
|
|||||||
---
|
---
|
||||||
title: "Astro Sphere: Adding a new post or project."
|
title: "Astro Sphere: Adding a new post or project."
|
||||||
summary: "Adding a new article (blog post or project) is pretty easy."
|
summary: "Adding a new article (blog post or project) is pretty easy."
|
||||||
date: "Mar 14 2024"
|
date: "Mar 14 2024"
|
||||||
draft: false
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- Tutorial
|
- Tutorial
|
||||||
- Astro
|
- Astro
|
||||||
- Astro Sphere
|
- Astro Sphere
|
||||||
---
|
---
|
||||||
### Basics
|
### Basics
|
||||||
|
|
||||||
Create a folder in the respective collection you wish to create content. The name of the folder will be the slug in which your content will be found.
|
Create a folder in the respective collection you wish to create content. The name of the folder will be the slug in which your content will be found.
|
||||||
|
|
||||||
```text
|
```text
|
||||||
creating the following
|
creating the following
|
||||||
|
|
||||||
/content/blog/my-new-post/index.md
|
/content/blog/my-new-post/index.md
|
||||||
|
|
||||||
will be published to
|
will be published to
|
||||||
|
|
||||||
https://yourdomain.com/blog/my-new-post
|
https://yourdomain.com/blog/my-new-post
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Frontmatter
|
### Frontmatter
|
||||||
|
|
||||||
Front matter is in yaml if you are familiar with the format. All posts and projects require frontmatter at the top of the document to be imported. All frontmatter must be inside triple dashes, similar to Astro format. See example below.
|
Front matter is in yaml if you are familiar with the format. All posts and projects require frontmatter at the top of the document to be imported. All frontmatter must be inside triple dashes, similar to Astro format. See example below.
|
||||||
|
|
||||||
### Blog Collection
|
### Blog Collection
|
||||||
|
|
||||||
| Field | Type | Req? | Description |
|
| Field | Type | Req? | Description |
|
||||||
| :------ | :------ | :--- | :------------------------------------------------------------ |
|
| :------ | :------ | :--- | :------------------------------------------------------------ |
|
||||||
| title | string | yes | Title of the post. Used in SEO. |
|
| title | string | yes | Title of the post. Used in SEO. |
|
||||||
| summary | string | yes | Short description of the post. Used in SEO. |
|
| summary | string | yes | Short description of the post. Used in SEO. |
|
||||||
| date | string | yes | Any string date that javascript can convert. Used in sorting |
|
| date | string | yes | Any string date that javascript can convert. Used in sorting |
|
||||||
| tags | array | yes | Post topic. Array of strings. Used in filtering. |
|
| tags | array | yes | Post topic. Array of strings. Used in filtering. |
|
||||||
| draft | boolean | no | Hides the post from collections. Unpublished entry. |
|
| draft | boolean | no | Hides the post from collections. Unpublished entry. |
|
||||||
|
|
||||||
Example blog post frontmatter
|
Example blog post frontmatter
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
---
|
---
|
||||||
title: "Astro Sphere: Adding a new post or project."
|
title: "Astro Sphere: Adding a new post or project."
|
||||||
summary: "Adding a new article (blog post or project) is pretty easy."
|
summary: "Adding a new article (blog post or project) is pretty easy."
|
||||||
date: "Mar 18 2024"
|
date: "Mar 18 2024"
|
||||||
draft: false
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- Tutorial
|
- Tutorial
|
||||||
- Astro
|
- Astro
|
||||||
- Astro Sphere
|
- Astro Sphere
|
||||||
---
|
---
|
||||||
```
|
```
|
||||||
|
|
||||||
### Projects Collection (extends Blog Collection)
|
### Projects Collection (extends Blog Collection)
|
||||||
|
|
||||||
| Field | Type | Req? | Description |
|
| Field | Type | Req? | Description |
|
||||||
| :------ | :------ | :--- | :------------------------------------------------------------ |
|
| :------ | :------ | :--- | :------------------------------------------------------------ |
|
||||||
| title | string | yes | Title of the post. Used in SEO. |
|
| title | string | yes | Title of the post. Used in SEO. |
|
||||||
| summary | string | yes | Short description of the post. Used in SEO. |
|
| summary | string | yes | Short description of the post. Used in SEO. |
|
||||||
| date | string | yes | Any string date that javascript can convert. Used in sorting |
|
| date | string | yes | Any string date that javascript can convert. Used in sorting |
|
||||||
| tags | array | yes | Post topic. Array of strings. Used in filtering. |
|
| tags | array | yes | Post topic. Array of strings. Used in filtering. |
|
||||||
| draft | boolean | no | Hides the post from collections. Unpublished entry. |
|
| draft | boolean | no | Hides the post from collections. Unpublished entry. |
|
||||||
| demoUrl | string | no | A link to the deployed project, if applicable. |
|
| demoUrl | string | no | A link to the deployed project, if applicable. |
|
||||||
| repoUrl | string | no | A link to the repository, if applicable. |
|
| repoUrl | string | no | A link to the repository, if applicable. |
|
||||||
|
|
||||||
Example project frontmatter
|
Example project frontmatter
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
---
|
---
|
||||||
title: "Astro Sphere"
|
title: "Astro Sphere"
|
||||||
summary: "Astro Sphere, a portfolio and blog for designers and developers."
|
summary: "Astro Sphere, a portfolio and blog for designers and developers."
|
||||||
date: "Mar 18 2024"
|
date: "Mar 18 2024"
|
||||||
draft: false
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- Astro
|
- Astro
|
||||||
- Typescript
|
- Typescript
|
||||||
- Javascript
|
- Javascript
|
||||||
- Tailwind
|
- Tailwind
|
||||||
- SolidJS
|
- SolidJS
|
||||||
demoUrl: https://astro-sphere.vercel.app
|
demoUrl: https://astro-sphere.vercel.app
|
||||||
repoUrl: https://github.com/markhorn-dev/astro-sphere
|
repoUrl: https://github.com/markhorn-dev/astro-sphere
|
||||||
---
|
---
|
||||||
```
|
```
|
||||||
|
|
||||||
### Write your content
|
### Write your content
|
||||||
You've made it this far, all that is left to do is write your content beneath the frontmatter. Writing markdown will be covered in the next article.
|
You've made it this far, all that is left to do is write your content beneath the frontmatter. Writing markdown will be covered in the next article.
|
||||||
@@ -1,236 +1,236 @@
|
|||||||
---
|
---
|
||||||
title: "Astro Sphere: Writing Markdown"
|
title: "Astro Sphere: Writing Markdown"
|
||||||
summary: "Basic Markdown syntax that can be used when writing Markdown content in Astro Sphere."
|
summary: "Basic Markdown syntax that can be used when writing Markdown content in Astro Sphere."
|
||||||
date: "Mar 13 2024"
|
date: "Mar 13 2024"
|
||||||
draft: false
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- Tutorial
|
- Tutorial
|
||||||
- Astro
|
- Astro
|
||||||
- Astro Sphere
|
- Astro Sphere
|
||||||
- Markdown
|
- Markdown
|
||||||
---
|
---
|
||||||
|
|
||||||
### Headings
|
### Headings
|
||||||
|
|
||||||
```text
|
```text
|
||||||
# H1
|
# H1
|
||||||
|
|
||||||
## H2
|
## H2
|
||||||
|
|
||||||
### H3
|
### H3
|
||||||
|
|
||||||
#### H4
|
#### H4
|
||||||
|
|
||||||
##### H5
|
##### H5
|
||||||
|
|
||||||
###### H6
|
###### H6
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
# H1
|
# H1
|
||||||
|
|
||||||
## H2
|
## H2
|
||||||
|
|
||||||
### H3
|
### H3
|
||||||
|
|
||||||
#### H4
|
#### H4
|
||||||
|
|
||||||
##### H5
|
##### H5
|
||||||
|
|
||||||
###### H6
|
###### H6
|
||||||
|
|
||||||
### Paragraph
|
### Paragraph
|
||||||
|
|
||||||
Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat.
|
Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat.
|
||||||
|
|
||||||
Itatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is sinveli squiatum, core et que aut hariosam ex eat.
|
Itatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is sinveli squiatum, core et que aut hariosam ex eat.
|
||||||
|
|
||||||
### Images
|
### Images
|
||||||
|
|
||||||
Relative image in the /public folder
|
Relative image in the /public folder
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||

|

|
||||||
```
|
```
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Relative Image in the same folder as the markdown
|
Relative Image in the same folder as the markdown
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||

|

|
||||||
```
|
```
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Blockquotes
|
## Blockquotes
|
||||||
|
|
||||||
The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a `footer` or `cite` element, and optionally with in-line changes such as annotations and abbreviations.
|
The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a `footer` or `cite` element, and optionally with in-line changes such as annotations and abbreviations.
|
||||||
|
|
||||||
### Blockquote without attribution
|
### Blockquote without attribution
|
||||||
|
|
||||||
#### Syntax
|
#### Syntax
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
> Tiam, ad mint andaepu dandae nostion secatur sequo quae.
|
> Tiam, ad mint andaepu dandae nostion secatur sequo quae.
|
||||||
> **Note** that you can use _Markdown syntax_ within a blockquote.
|
> **Note** that you can use _Markdown syntax_ within a blockquote.
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Output
|
#### Output
|
||||||
|
|
||||||
> Tiam, ad mint andaepu dandae nostion secatur sequo quae.
|
> Tiam, ad mint andaepu dandae nostion secatur sequo quae.
|
||||||
> **Note** that you can use _Markdown syntax_ within a blockquote.
|
> **Note** that you can use _Markdown syntax_ within a blockquote.
|
||||||
|
|
||||||
### Blockquote with attribution
|
### Blockquote with attribution
|
||||||
|
|
||||||
#### Syntax
|
#### Syntax
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
> Don't communicate by sharing memory, share memory by communicating.<br>
|
> Don't communicate by sharing memory, share memory by communicating.<br>
|
||||||
> — <cite>Rob Pike[^1]</cite>
|
> — <cite>Rob Pike[^1]</cite>
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Output
|
#### Output
|
||||||
|
|
||||||
> Don't communicate by sharing memory, share memory by communicating.<br>
|
> Don't communicate by sharing memory, share memory by communicating.<br>
|
||||||
> — <cite>Rob Pike[^1]</cite>
|
> — <cite>Rob Pike[^1]</cite>
|
||||||
|
|
||||||
[^1]: The above quote is excerpted from Rob Pike's [talk](https://www.youtube.com/watch?v=PAAkCSZUG1c) during Gopherfest, November 18, 2015.
|
[^1]: The above quote is excerpted from Rob Pike's [talk](https://www.youtube.com/watch?v=PAAkCSZUG1c) during Gopherfest, November 18, 2015.
|
||||||
|
|
||||||
## Tables
|
## Tables
|
||||||
|
|
||||||
#### Syntax
|
#### Syntax
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
| Italics | Bold | Code |
|
| Italics | Bold | Code |
|
||||||
| --------- | -------- | ------ |
|
| --------- | -------- | ------ |
|
||||||
| _italics_ | **bold** | `code` |
|
| _italics_ | **bold** | `code` |
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Output
|
#### Output
|
||||||
|
|
||||||
| Italics | Bold | Code |
|
| Italics | Bold | Code |
|
||||||
| --------- | -------- | ------ |
|
| --------- | -------- | ------ |
|
||||||
| _italics_ | **bold** | `code` |
|
| _italics_ | **bold** | `code` |
|
||||||
|
|
||||||
## Code Blocks
|
## Code Blocks
|
||||||
|
|
||||||
#### Syntax
|
#### Syntax
|
||||||
|
|
||||||
we can use 3 backticks ``` in new line and write snippet and close with 3 backticks on new line and to highlight language specific syntac, write one word of language name after first 3 backticks, for eg. html, javascript, css, markdown, typescript, txt, bash
|
we can use 3 backticks ``` in new line and write snippet and close with 3 backticks on new line and to highlight language specific syntac, write one word of language name after first 3 backticks, for eg. html, javascript, css, markdown, typescript, txt, bash
|
||||||
|
|
||||||
````markdown
|
````markdown
|
||||||
```html
|
```html
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<title>Example HTML5 Document</title>
|
<title>Example HTML5 Document</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<p>Test</p>
|
<p>Test</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
```
|
```
|
||||||
````
|
````
|
||||||
|
|
||||||
Output
|
Output
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<title>Example HTML5 Document</title>
|
<title>Example HTML5 Document</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<p>Test</p>
|
<p>Test</p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
```
|
```
|
||||||
|
|
||||||
## List Types
|
## List Types
|
||||||
|
|
||||||
### Ordered List
|
### Ordered List
|
||||||
|
|
||||||
#### Syntax
|
#### Syntax
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
1. First item
|
1. First item
|
||||||
2. Second item
|
2. Second item
|
||||||
3. Third item
|
3. Third item
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Output
|
#### Output
|
||||||
|
|
||||||
1. First item
|
1. First item
|
||||||
2. Second item
|
2. Second item
|
||||||
3. Third item
|
3. Third item
|
||||||
|
|
||||||
### Unordered List
|
### Unordered List
|
||||||
|
|
||||||
#### Syntax
|
#### Syntax
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
- List item
|
- List item
|
||||||
- Another item
|
- Another item
|
||||||
- And another item
|
- And another item
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Output
|
#### Output
|
||||||
|
|
||||||
- List item
|
- List item
|
||||||
- Another item
|
- Another item
|
||||||
- And another item
|
- And another item
|
||||||
|
|
||||||
### Nested list
|
### Nested list
|
||||||
|
|
||||||
#### Syntax
|
#### Syntax
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
- Fruit
|
- Fruit
|
||||||
- Apple
|
- Apple
|
||||||
- Orange
|
- Orange
|
||||||
- Banana
|
- Banana
|
||||||
- Dairy
|
- Dairy
|
||||||
- Milk
|
- Milk
|
||||||
- Cheese
|
- Cheese
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Output
|
#### Output
|
||||||
|
|
||||||
- Fruit
|
- Fruit
|
||||||
- Apple
|
- Apple
|
||||||
- Orange
|
- Orange
|
||||||
- Banana
|
- Banana
|
||||||
- Dairy
|
- Dairy
|
||||||
- Milk
|
- Milk
|
||||||
- Cheese
|
- Cheese
|
||||||
|
|
||||||
## Other Elements — abbr, sub, sup, kbd, mark
|
## Other Elements — abbr, sub, sup, kbd, mark
|
||||||
|
|
||||||
#### Syntax
|
#### Syntax
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
<abbr title="Graphics Interchange Format">GIF</abbr> is a bitmap image format.
|
<abbr title="Graphics Interchange Format">GIF</abbr> is a bitmap image format.
|
||||||
|
|
||||||
H<sub>2</sub>O
|
H<sub>2</sub>O
|
||||||
|
|
||||||
X<sup>n</sup> + Y<sup>n</sup> = Z<sup>n</sup>
|
X<sup>n</sup> + Y<sup>n</sup> = Z<sup>n</sup>
|
||||||
|
|
||||||
Press <kbd><kbd>CTRL</kbd>+<kbd>ALT</kbd>+<kbd>Delete</kbd></kbd> to end the session.
|
Press <kbd><kbd>CTRL</kbd>+<kbd>ALT</kbd>+<kbd>Delete</kbd></kbd> to end the session.
|
||||||
|
|
||||||
Most <mark>salamanders</mark> are nocturnal, and hunt for insects, worms, and other small creatures.
|
Most <mark>salamanders</mark> are nocturnal, and hunt for insects, worms, and other small creatures.
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Output
|
#### Output
|
||||||
|
|
||||||
<abbr title="Graphics Interchange Format">GIF</abbr> is a bitmap image format.
|
<abbr title="Graphics Interchange Format">GIF</abbr> is a bitmap image format.
|
||||||
|
|
||||||
H<sub>2</sub>O
|
H<sub>2</sub>O
|
||||||
|
|
||||||
X<sup>n</sup> + Y<sup>n</sup> = Z<sup>n</sup>
|
X<sup>n</sup> + Y<sup>n</sup> = Z<sup>n</sup>
|
||||||
|
|
||||||
Press <kbd><kbd>CTRL</kbd>+<kbd>ALT</kbd>+<kbd>Delete</kbd></kbd> to end the session.
|
Press <kbd><kbd>CTRL</kbd>+<kbd>ALT</kbd>+<kbd>Delete</kbd></kbd> to end the session.
|
||||||
|
|
||||||
Most <mark>salamanders</mark> are nocturnal, and hunt for insects, worms, and other small creatures.
|
Most <mark>salamanders</mark> are nocturnal, and hunt for insects, worms, and other small creatures.
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
---
|
---
|
||||||
type Props = {
|
type Props = {
|
||||||
name: string
|
name: string
|
||||||
}
|
}
|
||||||
const { name } = Astro.props
|
const { name } = Astro.props
|
||||||
---
|
---
|
||||||
|
|
||||||
<div class="border p-4 bg-yellow-100 text-black">
|
<div class="border p-4 bg-yellow-100 text-black">
|
||||||
<div>
|
<div>
|
||||||
Hello,
|
Hello,
|
||||||
<span class="font-semibold">
|
<span class="font-semibold">
|
||||||
{name}!!!
|
{name}!!!
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<slot/>
|
<slot/>
|
||||||
</div>
|
</div>
|
||||||
@@ -1,53 +1,53 @@
|
|||||||
---
|
---
|
||||||
title: "Astro Sphere: Writing MDX"
|
title: "Astro Sphere: Writing MDX"
|
||||||
summary: "Lorem ipsum dolor sit amet"
|
summary: "Lorem ipsum dolor sit amet"
|
||||||
date: "Mar 12 2024"
|
date: "Mar 12 2024"
|
||||||
draft: false
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- Tutorial
|
- Tutorial
|
||||||
- Astro
|
- Astro
|
||||||
- Astro Sphere
|
- Astro Sphere
|
||||||
- Markdown
|
- Markdown
|
||||||
- MDX
|
- MDX
|
||||||
---
|
---
|
||||||
|
|
||||||
MDX is a special flavor of Markdown that supports embedded JavaScript & JSX syntax. This unlocks the ability to [mix JavaScript and UI Components into your Markdown content](https://docs.astro.build/en/guides/markdown-content/#mdx-features) for things like interactive charts or alerts.
|
MDX is a special flavor of Markdown that supports embedded JavaScript & JSX syntax. This unlocks the ability to [mix JavaScript and UI Components into your Markdown content](https://docs.astro.build/en/guides/markdown-content/#mdx-features) for things like interactive charts or alerts.
|
||||||
|
|
||||||
If you have existing content authored in MDX, this integration will hopefully make migrating to Astro a breeze.
|
If you have existing content authored in MDX, this integration will hopefully make migrating to Astro a breeze.
|
||||||
|
|
||||||
## An astro component with props
|
## An astro component with props
|
||||||
|
|
||||||
```
|
```
|
||||||
// Imported from relative path (same dir as markdown file)
|
// Imported from relative path (same dir as markdown file)
|
||||||
import MyComponent from "./MyComponent.astro"
|
import MyComponent from "./MyComponent.astro"
|
||||||
|
|
||||||
<MyComponent name="You">
|
<MyComponent name="You">
|
||||||
Welcome to MDX
|
Welcome to MDX
|
||||||
</MyComponent>
|
</MyComponent>
|
||||||
```
|
```
|
||||||
|
|
||||||
import MyComponent from "./MyComponent.astro"
|
import MyComponent from "./MyComponent.astro"
|
||||||
|
|
||||||
<MyComponent name="You">
|
<MyComponent name="You">
|
||||||
Welcome to MDX
|
Welcome to MDX
|
||||||
</MyComponent>
|
</MyComponent>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## An interactive Solid Js component
|
## An interactive Solid Js component
|
||||||
|
|
||||||
```
|
```
|
||||||
// Imported from components directory (src/components)
|
// Imported from components directory (src/components)
|
||||||
import MyComponent from "@components/Counter"
|
import MyComponent from "@components/Counter"
|
||||||
|
|
||||||
// Don't forget the astro client:load directive
|
// Don't forget the astro client:load directive
|
||||||
<Counter client:load />
|
<Counter client:load />
|
||||||
```
|
```
|
||||||
|
|
||||||
import Counter from "@components/Counter"
|
import Counter from "@components/Counter"
|
||||||
|
|
||||||
<Counter client:load />
|
<Counter client:load />
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
<br/>
|
<br/>
|
||||||
<br/>
|
<br/>
|
||||||
@@ -1,54 +1,54 @@
|
|||||||
---
|
---
|
||||||
title: "Astro Sphere: Social media links"
|
title: "Astro Sphere: Social media links"
|
||||||
summary: "A quick tutorial on how to change, add or remove social media links"
|
summary: "A quick tutorial on how to change, add or remove social media links"
|
||||||
date: "Mar 11 2024"
|
date: "Mar 11 2024"
|
||||||
draft: false
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- Tutorial
|
- Tutorial
|
||||||
- Astro
|
- Astro
|
||||||
- Astro Sphere
|
- Astro Sphere
|
||||||
---
|
---
|
||||||
|
|
||||||
Astro Sphere comes preconfigured with social media links for Email, Github, Linked In and Twitter (X), but it's very easy to add more.
|
Astro Sphere comes preconfigured with social media links for Email, Github, Linked In and Twitter (X), but it's very easy to add more.
|
||||||
|
|
||||||
### Edit `consts.ts`
|
### Edit `consts.ts`
|
||||||
|
|
||||||
```js
|
```js
|
||||||
// consts.ts
|
// consts.ts
|
||||||
|
|
||||||
export const SOCIALS: Socials = [
|
export const SOCIALS: Socials = [
|
||||||
{
|
{
|
||||||
NAME: "Github",
|
NAME: "Github",
|
||||||
ICON: "github",
|
ICON: "github",
|
||||||
TEXT: "markhorn-dev",
|
TEXT: "markhorn-dev",
|
||||||
HREF: "https://github.com/markhorn-dev/astro-sphere"
|
HREF: "https://github.com/markhorn-dev/astro-sphere"
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
| Field | Type | Required | Description |
|
| Field | Type | Required | Description |
|
||||||
| :---- | :--- | :------- | :---------- |
|
| :---- | :--- | :------- | :---------- |
|
||||||
| NAME | string | yes | Accessible name |
|
| NAME | string | yes | Accessible name |
|
||||||
| ICON | string | yes | Refers to the symbol id in `public/social.svg` |
|
| ICON | string | yes | Refers to the symbol id in `public/social.svg` |
|
||||||
| TEXT | string | yes | Shorthand profile name |
|
| TEXT | string | yes | Shorthand profile name |
|
||||||
| HREF | string | yes | The link to the social media profile |
|
| HREF | string | yes | The link to the social media profile |
|
||||||
|
|
||||||
### Edit /public/social.svg
|
### Edit /public/social.svg
|
||||||
|
|
||||||
Simply add your own symbols to the svg sprite.
|
Simply add your own symbols to the svg sprite.
|
||||||
|
|
||||||
It is recommended that all styles be removed from new symbols added, or they may not show up correctly or conflict with Tailwind's classes.
|
It is recommended that all styles be removed from new symbols added, or they may not show up correctly or conflict with Tailwind's classes.
|
||||||
|
|
||||||
The id should match the icon field as specified in your `consts.ts` file.
|
The id should match the icon field as specified in your `consts.ts` file.
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<!-- public/social.svg -->
|
<!-- public/social.svg -->
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg">
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
<defs>
|
<defs>
|
||||||
<symbol id="github" viewBox="0 0 496 512">
|
<symbol id="github" viewBox="0 0 496 512">
|
||||||
<path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/>
|
<path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
</defs>
|
</defs>
|
||||||
</svg>
|
</svg>
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -1,45 +1,45 @@
|
|||||||
import { defineCollection, z } from "astro:content"
|
import { defineCollection, z } from "astro:content"
|
||||||
|
|
||||||
const work = defineCollection({
|
const work = defineCollection({
|
||||||
type: "content",
|
type: "content",
|
||||||
schema: z.object({
|
schema: z.object({
|
||||||
company: z.string(),
|
company: z.string(),
|
||||||
role: z.string(),
|
role: z.string(),
|
||||||
dateStart: z.coerce.date(),
|
dateStart: z.coerce.date(),
|
||||||
dateEnd: z.union([z.coerce.date(), z.string()]),
|
dateEnd: z.union([z.coerce.date(), z.string()]),
|
||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
|
|
||||||
const blog = defineCollection({
|
const blog = defineCollection({
|
||||||
type: "content",
|
type: "content",
|
||||||
schema: z.object({
|
schema: z.object({
|
||||||
title: z.string(),
|
title: z.string(),
|
||||||
summary: z.string(),
|
summary: z.string(),
|
||||||
date: z.coerce.date(),
|
date: z.coerce.date(),
|
||||||
tags: z.array(z.string()),
|
tags: z.array(z.string()),
|
||||||
draft: z.boolean().optional(),
|
draft: z.boolean().optional(),
|
||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
|
|
||||||
const projects = defineCollection({
|
const projects = defineCollection({
|
||||||
type: "content",
|
type: "content",
|
||||||
schema: z.object({
|
schema: z.object({
|
||||||
title: z.string(),
|
title: z.string(),
|
||||||
summary: z.string(),
|
summary: z.string(),
|
||||||
date: z.coerce.date(),
|
date: z.coerce.date(),
|
||||||
tags: z.array(z.string()),
|
tags: z.array(z.string()),
|
||||||
draft: z.boolean().optional(),
|
draft: z.boolean().optional(),
|
||||||
demoUrl: z.string().optional(),
|
demoUrl: z.string().optional(),
|
||||||
repoUrl: z.string().optional(),
|
repoUrl: z.string().optional(),
|
||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
|
|
||||||
const legal = defineCollection({
|
const legal = defineCollection({
|
||||||
type: "content",
|
type: "content",
|
||||||
schema: z.object({
|
schema: z.object({
|
||||||
title: z.string(),
|
title: z.string(),
|
||||||
date: z.coerce.date(),
|
date: z.coerce.date(),
|
||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
|
|
||||||
export const collections = { work, blog, projects, legal }
|
export const collections = { work, blog, projects, legal }
|
||||||
|
|||||||
@@ -1,28 +1,28 @@
|
|||||||
---
|
---
|
||||||
title: "Privacy Policy"
|
title: "Privacy Policy"
|
||||||
date: "03/07/2024"
|
date: "03/07/2024"
|
||||||
---
|
---
|
||||||
|
|
||||||
This Privacy Policy governs the manner in which [Your Company Name] collects, uses, maintains, and discloses information collected from users (each, a "User") of the [Your Website URL] website ("Site"). This privacy policy applies to the Site and all products and services offered by [Your Company Name].
|
This Privacy Policy governs the manner in which [Your Company Name] collects, uses, maintains, and discloses information collected from users (each, a "User") of the [Your Website URL] website ("Site"). This privacy policy applies to the Site and all products and services offered by [Your Company Name].
|
||||||
|
|
||||||
#### Personal identification information
|
#### Personal identification information
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
||||||
|
|
||||||
#### Non-personal identification information
|
#### Non-personal identification information
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
||||||
|
|
||||||
#### Web browser cookies
|
#### Web browser cookies
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
||||||
|
|
||||||
#### How we use collected information
|
#### How we use collected information
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
||||||
|
|
||||||
#### How we protect your information
|
#### How we protect your information
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
||||||
|
|
||||||
#### Sharing your personal information
|
#### Sharing your personal information
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
||||||
|
|
||||||
#### Changes to this privacy policy
|
#### Changes to this privacy policy
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
||||||
|
|
||||||
|
|||||||
@@ -1,27 +1,27 @@
|
|||||||
---
|
---
|
||||||
title: "Terms of Use"
|
title: "Terms of Use"
|
||||||
date: "03/07/2024"
|
date: "03/07/2024"
|
||||||
---
|
---
|
||||||
|
|
||||||
Please read these Terms of Use ("Terms", "Terms of Use") carefully before using the [Your Website URL] website (the "Service") operated by [Your Company Name] ("us", "we", or "our").
|
Please read these Terms of Use ("Terms", "Terms of Use") carefully before using the [Your Website URL] website (the "Service") operated by [Your Company Name] ("us", "we", or "our").
|
||||||
|
|
||||||
#### Agreement to Terms
|
#### Agreement to Terms
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
||||||
|
|
||||||
#### Intellectual Property Rights
|
#### Intellectual Property Rights
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
||||||
|
|
||||||
#### User Representations
|
#### User Representations
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
||||||
|
|
||||||
#### Links to Other Websites
|
#### Links to Other Websites
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
||||||
|
|
||||||
#### Termination
|
#### Termination
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
||||||
|
|
||||||
#### Governing Law
|
#### Governing Law
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
||||||
|
|
||||||
#### Changes to These Terms of Use
|
#### Changes to These Terms of Use
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet massa ut neque consequat congue. Sed id ipsum vitae sem imperdiet suscipit. Nulla facilisi. Morbi quis nibh at nunc pulvinar rhoncus. Proin porttitor dapibus dolor, id fermentum urna eleifend et. In feugiat pretium erat nec vestibulum.
|
||||||
@@ -1,16 +1,16 @@
|
|||||||
---
|
---
|
||||||
title: "Project One"
|
title: "Project One"
|
||||||
summary: "Lorem ipsum dolor sit amet"
|
summary: "Lorem ipsum dolor sit amet"
|
||||||
date: "Mar 18 2022"
|
date: "Mar 18 2022"
|
||||||
draft: false
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- Astro
|
- Astro
|
||||||
- Javascript
|
- Javascript
|
||||||
- Typescript
|
- Typescript
|
||||||
- Tailwind
|
- Tailwind
|
||||||
- SolidJs
|
- SolidJs
|
||||||
demoUrl: https://astro-sphere-demo.vercel.app
|
demoUrl: https://astro-sphere-demo.vercel.app
|
||||||
repoUrl: https://github.com/markhorn-dev/astro-sphere
|
repoUrl: https://github.com/markhorn-dev/astro-sphere
|
||||||
---
|
---
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet.
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
---
|
---
|
||||||
title: "Project Two"
|
title: "Project Two"
|
||||||
summary: "Lorem ipsum dolor sit amet"
|
summary: "Lorem ipsum dolor sit amet"
|
||||||
date: "Mar 17 2022"
|
date: "Mar 17 2022"
|
||||||
draft: false
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- Svelte
|
- Svelte
|
||||||
- Sveltekit
|
- Sveltekit
|
||||||
- Typescript
|
- Typescript
|
||||||
- Tailwind
|
- Tailwind
|
||||||
---
|
---
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet.
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet.
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
---
|
---
|
||||||
title: "Project Three"
|
title: "Project Three"
|
||||||
summary: "Lorem ipsum dolor sit amet"
|
summary: "Lorem ipsum dolor sit amet"
|
||||||
date: "Mar 16 2022"
|
date: "Mar 16 2022"
|
||||||
draft: false
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- Vue
|
- Vue
|
||||||
- Javascript
|
- Javascript
|
||||||
- Tailwind
|
- Tailwind
|
||||||
---
|
---
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet.
|
||||||
@@ -1,31 +1,31 @@
|
|||||||
---
|
---
|
||||||
title: "Project Four"
|
title: "Project Four"
|
||||||
summary: "Lorem ipsum dolor sit amet"
|
summary: "Lorem ipsum dolor sit amet"
|
||||||
date: "Mar 15 2022"
|
date: "Mar 15 2022"
|
||||||
draft: false
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- React
|
- React
|
||||||
- Javascript
|
- Javascript
|
||||||
- StyleX
|
- StyleX
|
||||||
---
|
---
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium.
|
||||||
|
|
||||||
Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas.
|
Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas.
|
||||||
|
|
||||||
Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem.
|
Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem.
|
||||||
Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet.
|
Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet.
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium.
|
||||||
|
|
||||||
Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas.
|
Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas.
|
||||||
|
|
||||||
Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem.
|
Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem.
|
||||||
Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet.
|
Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet.
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium.
|
||||||
|
|
||||||
Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas.
|
Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas.
|
||||||
|
|
||||||
Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem.
|
Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem.
|
||||||
Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet.
|
Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet.
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
---
|
---
|
||||||
company: "Apple"
|
company: "Apple"
|
||||||
role: "Software Engineer"
|
role: "Software Engineer"
|
||||||
dateStart: "01/01/2020"
|
dateStart: "01/01/2020"
|
||||||
dateEnd: "11/27/2022"
|
dateEnd: "11/27/2022"
|
||||||
---
|
---
|
||||||
|
|
||||||
Voluptatem est quaerat voluptas praesentium ipsa dolorem dignissimos nulla ratione distinctio quae maiores eligendi nostrum? Quibusdam, debitis voluptatum, lorem ipsum dolor. Sit amet consectetur adipisicing elit. Iure illo neque tempora.
|
Voluptatem est quaerat voluptas praesentium ipsa dolorem dignissimos nulla ratione distinctio quae maiores eligendi nostrum? Quibusdam, debitis voluptatum, lorem ipsum dolor. Sit amet consectetur adipisicing elit. Iure illo neque tempora.
|
||||||
|
|
||||||
- Sit amet consectetur adipisicing elit. Iure illo neque tempora.
|
- Sit amet consectetur adipisicing elit. Iure illo neque tempora.
|
||||||
- Quibusdam, debitis voluptatum, lorem ipsum
|
- Quibusdam, debitis voluptatum, lorem ipsum
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
---
|
---
|
||||||
company: "Facebook"
|
company: "Facebook"
|
||||||
role: "Intern"
|
role: "Intern"
|
||||||
dateStart: "07/01/2019"
|
dateStart: "07/01/2019"
|
||||||
dateEnd: "12/31/2019"
|
dateEnd: "12/31/2019"
|
||||||
---
|
---
|
||||||
|
|
||||||
Iure illo neque tempora, voluptatem est quaerat voluptas praesentium ipsa dolorem dignissimos nulla ratione distinctio quae maiores eligendi nostrum? Quibusdam, debitis voluptatum, lorem ipsum dolor. Sit amet consectetur adipisicing elit.
|
Iure illo neque tempora, voluptatem est quaerat voluptas praesentium ipsa dolorem dignissimos nulla ratione distinctio quae maiores eligendi nostrum? Quibusdam, debitis voluptatum, lorem ipsum dolor. Sit amet consectetur adipisicing elit.
|
||||||
|
|
||||||
- Sit amet consectetur adipisicing elit.
|
- Sit amet consectetur adipisicing elit.
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
---
|
---
|
||||||
company: "Google"
|
company: "Google"
|
||||||
role: "Staff Software Engineer"
|
role: "Staff Software Engineer"
|
||||||
dateStart: "11/27/2022"
|
dateStart: "11/27/2022"
|
||||||
dateEnd: "Now"
|
dateEnd: "Now"
|
||||||
---
|
---
|
||||||
|
|
||||||
Sit amet consectetur adipisicing elit. Iure illo neque tempora, voluptatem est quaerat voluptas praesentium ipsa dolorem dignissimos nulla ratione distinctio quae maiores eligendi nostrum? Quibusdam, debitis voluptatum, lorem ipsum dolor.
|
Sit amet consectetur adipisicing elit. Iure illo neque tempora, voluptatem est quaerat voluptas praesentium ipsa dolorem dignissimos nulla ratione distinctio quae maiores eligendi nostrum? Quibusdam, debitis voluptatum, lorem ipsum dolor.
|
||||||
|
|
||||||
- Aadipisicing elit. Iure illo neque tempora, voluptatem est.
|
- Aadipisicing elit. Iure illo neque tempora, voluptatem est.
|
||||||
- dolorem dignissimos nulla ratione.
|
- dolorem dignissimos nulla ratione.
|
||||||
- Quibusdam, debitis voluptatum, lorem ipsum dolor.
|
- Quibusdam, debitis voluptatum, lorem ipsum dolor.
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
---
|
---
|
||||||
company: "McDonalds"
|
company: "McDonalds"
|
||||||
role: "French Fryer"
|
role: "French Fryer"
|
||||||
dateStart: "03/16/2018"
|
dateStart: "03/16/2018"
|
||||||
dateEnd: "07/01/2019"
|
dateEnd: "07/01/2019"
|
||||||
---
|
---
|
||||||
|
|
||||||
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Iure illo neque tempora, voluptatem est quaerat voluptas praesentium ipsa dolorem dignissimos nulla ratione distinctio quae maiores eligendi nostrum? Quibusdam, debitis voluptatum.
|
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Iure illo neque tempora, voluptatem est quaerat voluptas praesentium ipsa dolorem dignissimos nulla ratione distinctio quae maiores eligendi nostrum? Quibusdam, debitis voluptatum.
|
||||||
|
|
||||||
- Quibusdam, debitis voluptatum.
|
- Quibusdam, debitis voluptatum.
|
||||||
- amet consectetur adipisicing elit. Iure illo neque tempora.
|
- amet consectetur adipisicing elit. Iure illo neque tempora.
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" >
|
<svg xmlns="http://www.w3.org/2000/svg" >
|
||||||
<defs>
|
<defs>
|
||||||
<symbol id="brand" viewBox="0 0 85 107">
|
<symbol id="brand" viewBox="0 0 85 107">
|
||||||
<path fill="#F041FF" d="M27.5894 91.1365C22.7555 86.7178 21.3444 77.4335 23.3583 70.7072C26.8503 74.948 31.6888 76.2914 36.7005 77.0497C44.4375 78.2199 52.0359 77.7822 59.2232 74.2459C60.0454 73.841 60.8052 73.3027 61.7036 72.7574C62.378 74.714 62.5535 76.6892 62.318 78.6996C61.7452 83.5957 59.3086 87.3778 55.4332 90.2448C53.8835 91.3916 52.2437 92.4167 50.6432 93.4979C45.7262 96.8213 44.3959 100.718 46.2435 106.386C46.2874 106.525 46.3267 106.663 46.426 107C43.9155 105.876 42.0817 104.24 40.6845 102.089C39.2087 99.8193 38.5066 97.3081 38.4696 94.5909C38.4511 93.2686 38.4511 91.9345 38.2733 90.6309C37.8391 87.4527 36.3471 86.0297 33.5364 85.9478C30.6518 85.8636 28.37 87.6469 27.7649 90.4554C27.7187 90.6707 27.6517 90.8837 27.5847 91.1341L27.5894 91.1365Z"/>
|
<path fill="#F041FF" d="M27.5894 91.1365C22.7555 86.7178 21.3444 77.4335 23.3583 70.7072C26.8503 74.948 31.6888 76.2914 36.7005 77.0497C44.4375 78.2199 52.0359 77.7822 59.2232 74.2459C60.0454 73.841 60.8052 73.3027 61.7036 72.7574C62.378 74.714 62.5535 76.6892 62.318 78.6996C61.7452 83.5957 59.3086 87.3778 55.4332 90.2448C53.8835 91.3916 52.2437 92.4167 50.6432 93.4979C45.7262 96.8213 44.3959 100.718 46.2435 106.386C46.2874 106.525 46.3267 106.663 46.426 107C43.9155 105.876 42.0817 104.24 40.6845 102.089C39.2087 99.8193 38.5066 97.3081 38.4696 94.5909C38.4511 93.2686 38.4511 91.9345 38.2733 90.6309C37.8391 87.4527 36.3471 86.0297 33.5364 85.9478C30.6518 85.8636 28.37 87.6469 27.7649 90.4554C27.7187 90.6707 27.6517 90.8837 27.5847 91.1341L27.5894 91.1365Z"/>
|
||||||
<path fill="currentColor" d="M0 69.5866C0 69.5866 14.3139 62.6137 28.6678 62.6137L39.4901 29.1204C39.8953 27.5007 41.0783 26.3999 42.4139 26.3999C43.7495 26.3999 44.9325 27.5007 45.3377 29.1204L56.1601 62.6137C73.1601 62.6137 84.8278 69.5866 84.8278 69.5866C84.8278 69.5866 60.5145 3.35233 60.467 3.21944C59.7692 1.2612 58.5911 0 57.0029 0H27.8274C26.2392 0 25.1087 1.2612 24.3634 3.21944C24.3108 3.34983 0 69.5866 0 69.5866Z"/>
|
<path fill="currentColor" d="M0 69.5866C0 69.5866 14.3139 62.6137 28.6678 62.6137L39.4901 29.1204C39.8953 27.5007 41.0783 26.3999 42.4139 26.3999C43.7495 26.3999 44.9325 27.5007 45.3377 29.1204L56.1601 62.6137C73.1601 62.6137 84.8278 69.5866 84.8278 69.5866C84.8278 69.5866 60.5145 3.35233 60.467 3.21944C59.7692 1.2612 58.5911 0 57.0029 0H27.8274C26.2392 0 25.1087 1.2612 24.3634 3.21944C24.3108 3.34983 0 69.5866 0 69.5866Z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
</defs>
|
</defs>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
@@ -1,9 +1,9 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 128 128">
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 128 128">
|
||||||
<path d="M50.4 78.5a75.1 75.1 0 0 0-28.5 6.9l24.2-65.7c.7-2 1.9-3.2 3.4-3.2h29c1.5 0 2.7 1.2 3.4 3.2l24.2 65.7s-11.6-7-28.5-7L67 45.5c-.4-1.7-1.6-2.8-2.9-2.8-1.3 0-2.5 1.1-2.9 2.7L50.4 78.5Zm-1.1 28.2Zm-4.2-20.2c-2 6.6-.6 15.8 4.2 20.2a17.5 17.5 0 0 1 .2-.7 5.5 5.5 0 0 1 5.7-4.5c2.8.1 4.3 1.5 4.7 4.7.2 1.1.2 2.3.2 3.5v.4c0 2.7.7 5.2 2.2 7.4a13 13 0 0 0 5.7 4.9v-.3l-.2-.3c-1.8-5.6-.5-9.5 4.4-12.8l1.5-1a73 73 0 0 0 3.2-2.2 16 16 0 0 0 6.8-11.4c.3-2 .1-4-.6-6l-.8.6-1.6 1a37 37 0 0 1-22.4 2.7c-5-.7-9.7-2-13.2-6.2Z" />
|
<path d="M50.4 78.5a75.1 75.1 0 0 0-28.5 6.9l24.2-65.7c.7-2 1.9-3.2 3.4-3.2h29c1.5 0 2.7 1.2 3.4 3.2l24.2 65.7s-11.6-7-28.5-7L67 45.5c-.4-1.7-1.6-2.8-2.9-2.8-1.3 0-2.5 1.1-2.9 2.7L50.4 78.5Zm-1.1 28.2Zm-4.2-20.2c-2 6.6-.6 15.8 4.2 20.2a17.5 17.5 0 0 1 .2-.7 5.5 5.5 0 0 1 5.7-4.5c2.8.1 4.3 1.5 4.7 4.7.2 1.1.2 2.3.2 3.5v.4c0 2.7.7 5.2 2.2 7.4a13 13 0 0 0 5.7 4.9v-.3l-.2-.3c-1.8-5.6-.5-9.5 4.4-12.8l1.5-1a73 73 0 0 0 3.2-2.2 16 16 0 0 0 6.8-11.4c.3-2 .1-4-.6-6l-.8.6-1.6 1a37 37 0 0 1-22.4 2.7c-5-.7-9.7-2-13.2-6.2Z" />
|
||||||
<style>
|
<style>
|
||||||
path { fill: #000; }
|
path { fill: #000; }
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
path { fill: #FFF; }
|
path { fill: #FFF; }
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 758 B After Width: | Height: | Size: 749 B |
@@ -1,9 +1,9 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 128 128">
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 128 128">
|
||||||
<path d="M50.4 78.5a75.1 75.1 0 0 0-28.5 6.9l24.2-65.7c.7-2 1.9-3.2 3.4-3.2h29c1.5 0 2.7 1.2 3.4 3.2l24.2 65.7s-11.6-7-28.5-7L67 45.5c-.4-1.7-1.6-2.8-2.9-2.8-1.3 0-2.5 1.1-2.9 2.7L50.4 78.5Zm-1.1 28.2Zm-4.2-20.2c-2 6.6-.6 15.8 4.2 20.2a17.5 17.5 0 0 1 .2-.7 5.5 5.5 0 0 1 5.7-4.5c2.8.1 4.3 1.5 4.7 4.7.2 1.1.2 2.3.2 3.5v.4c0 2.7.7 5.2 2.2 7.4a13 13 0 0 0 5.7 4.9v-.3l-.2-.3c-1.8-5.6-.5-9.5 4.4-12.8l1.5-1a73 73 0 0 0 3.2-2.2 16 16 0 0 0 6.8-11.4c.3-2 .1-4-.6-6l-.8.6-1.6 1a37 37 0 0 1-22.4 2.7c-5-.7-9.7-2-13.2-6.2Z" />
|
<path d="M50.4 78.5a75.1 75.1 0 0 0-28.5 6.9l24.2-65.7c.7-2 1.9-3.2 3.4-3.2h29c1.5 0 2.7 1.2 3.4 3.2l24.2 65.7s-11.6-7-28.5-7L67 45.5c-.4-1.7-1.6-2.8-2.9-2.8-1.3 0-2.5 1.1-2.9 2.7L50.4 78.5Zm-1.1 28.2Zm-4.2-20.2c-2 6.6-.6 15.8 4.2 20.2a17.5 17.5 0 0 1 .2-.7 5.5 5.5 0 0 1 5.7-4.5c2.8.1 4.3 1.5 4.7 4.7.2 1.1.2 2.3.2 3.5v.4c0 2.7.7 5.2 2.2 7.4a13 13 0 0 0 5.7 4.9v-.3l-.2-.3c-1.8-5.6-.5-9.5 4.4-12.8l1.5-1a73 73 0 0 0 3.2-2.2 16 16 0 0 0 6.8-11.4c.3-2 .1-4-.6-6l-.8.6-1.6 1a37 37 0 0 1-22.4 2.7c-5-.7-9.7-2-13.2-6.2Z" />
|
||||||
<style>
|
<style>
|
||||||
path { fill: #000; }
|
path { fill: #000; }
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
path { fill: #FFF; }
|
path { fill: #FFF; }
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 758 B After Width: | Height: | Size: 749 B |
@@ -1,12 +1,12 @@
|
|||||||
function animate() {
|
function animate() {
|
||||||
const animateElements = document.querySelectorAll('.animate')
|
const animateElements = document.querySelectorAll('.animate')
|
||||||
|
|
||||||
animateElements.forEach((element, index) => {
|
animateElements.forEach((element, index) => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
element.classList.add('show')
|
element.classList.add('show')
|
||||||
}, index * 150)
|
}, index * 150)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
document.addEventListener("DOMContentLoaded", animate)
|
document.addEventListener("DOMContentLoaded", animate)
|
||||||
document.addEventListener("astro:after-swap", animate)
|
document.addEventListener("astro:after-swap", animate)
|
||||||
@@ -1,96 +1,96 @@
|
|||||||
|
|
||||||
function generateParticles(n) {
|
function generateParticles(n) {
|
||||||
let value = `${getRandom(2560)}px ${getRandom(2560)}px #000`;
|
let value = `${getRandom(2560)}px ${getRandom(2560)}px #000`;
|
||||||
for (let i = 2; i <= n; i++) {
|
for (let i = 2; i <= n; i++) {
|
||||||
value += `, ${getRandom(2560)}px ${getRandom(2560)}px #000`;
|
value += `, ${getRandom(2560)}px ${getRandom(2560)}px #000`;
|
||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
function generateStars(n) {
|
function generateStars(n) {
|
||||||
let value = `${getRandom(2560)}px ${getRandom(2560)}px #fff`;
|
let value = `${getRandom(2560)}px ${getRandom(2560)}px #fff`;
|
||||||
for (let i = 2; i <= n; i++) {
|
for (let i = 2; i <= n; i++) {
|
||||||
value += `, ${getRandom(2560)}px ${getRandom(2560)}px #fff`;
|
value += `, ${getRandom(2560)}px ${getRandom(2560)}px #fff`;
|
||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getRandom(max) {
|
function getRandom(max) {
|
||||||
return Math.floor(Math.random() * max);
|
return Math.floor(Math.random() * max);
|
||||||
}
|
}
|
||||||
|
|
||||||
function initBG() {
|
function initBG() {
|
||||||
const particlesSmall = generateParticles(1000);
|
const particlesSmall = generateParticles(1000);
|
||||||
const particlesMedium = generateParticles(500);
|
const particlesMedium = generateParticles(500);
|
||||||
const particlesLarge = generateParticles(250);
|
const particlesLarge = generateParticles(250);
|
||||||
const particles1 = document.getElementById('particles1');
|
const particles1 = document.getElementById('particles1');
|
||||||
const particles2 = document.getElementById('particles2');
|
const particles2 = document.getElementById('particles2');
|
||||||
const particles3 = document.getElementById('particles3');
|
const particles3 = document.getElementById('particles3');
|
||||||
|
|
||||||
if (particles1) {
|
if (particles1) {
|
||||||
particles1.style.cssText = `
|
particles1.style.cssText = `
|
||||||
width: 1px;
|
width: 1px;
|
||||||
height: 1px;
|
height: 1px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
box-shadow: ${particlesSmall};
|
box-shadow: ${particlesSmall};
|
||||||
animation: animStar 50s linear infinite;
|
animation: animStar 50s linear infinite;
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (particles2) {
|
if (particles2) {
|
||||||
particles2.style.cssText = `
|
particles2.style.cssText = `
|
||||||
width: 1.5px;
|
width: 1.5px;
|
||||||
height: 1.5px;
|
height: 1.5px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
box-shadow: ${particlesMedium};
|
box-shadow: ${particlesMedium};
|
||||||
animation: animateParticle 100s linear infinite;
|
animation: animateParticle 100s linear infinite;
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (particles3) {
|
if (particles3) {
|
||||||
particles3.style.cssText = `
|
particles3.style.cssText = `
|
||||||
width: 2px;
|
width: 2px;
|
||||||
height: 2px;
|
height: 2px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
box-shadow: ${particlesLarge};
|
box-shadow: ${particlesLarge};
|
||||||
animation: animateParticle 150s linear infinite;
|
animation: animateParticle 150s linear infinite;
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
const starsSmall = generateStars(1000);
|
const starsSmall = generateStars(1000);
|
||||||
const starsMedium = generateStars(500);
|
const starsMedium = generateStars(500);
|
||||||
const starsLarge = generateStars(250);
|
const starsLarge = generateStars(250);
|
||||||
const stars1 = document.getElementById('stars1');
|
const stars1 = document.getElementById('stars1');
|
||||||
const stars2 = document.getElementById('stars2');
|
const stars2 = document.getElementById('stars2');
|
||||||
const stars3 = document.getElementById('stars3');
|
const stars3 = document.getElementById('stars3');
|
||||||
|
|
||||||
if (stars1) {
|
if (stars1) {
|
||||||
stars1.style.cssText = `
|
stars1.style.cssText = `
|
||||||
width: 1px;
|
width: 1px;
|
||||||
height: 1px;
|
height: 1px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
box-shadow: ${starsSmall};
|
box-shadow: ${starsSmall};
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stars2) {
|
if (stars2) {
|
||||||
stars2.style.cssText = `
|
stars2.style.cssText = `
|
||||||
width: 1.5px;
|
width: 1.5px;
|
||||||
height: 1.5px;
|
height: 1.5px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
box-shadow: ${starsMedium};
|
box-shadow: ${starsMedium};
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stars3) {
|
if (stars3) {
|
||||||
stars3.style.cssText = `
|
stars3.style.cssText = `
|
||||||
width: 2px;
|
width: 2px;
|
||||||
height: 2px;
|
height: 2px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
box-shadow: ${starsLarge};
|
box-shadow: ${starsLarge};
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
document.addEventListener('astro:after-swap', initBG);
|
document.addEventListener('astro:after-swap', initBG);
|
||||||
initBG();
|
initBG();
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
function onScroll() {
|
function onScroll() {
|
||||||
const header = document.getElementById("header")
|
const header = document.getElementById("header")
|
||||||
if (window.scrollY > 0) {
|
if (window.scrollY > 0) {
|
||||||
header.classList.add("scrolled")
|
header.classList.add("scrolled")
|
||||||
} else {
|
} else {
|
||||||
header.classList.remove("scrolled")
|
header.classList.remove("scrolled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
document.addEventListener("scroll", onScroll)
|
document.addEventListener("scroll", onScroll)
|
||||||
|
|||||||
@@ -1,67 +1,67 @@
|
|||||||
function changeTheme() {
|
function changeTheme() {
|
||||||
const element = document.documentElement
|
const element = document.documentElement
|
||||||
const theme = element.classList.contains("dark") ? "light" : "dark"
|
const theme = element.classList.contains("dark") ? "light" : "dark"
|
||||||
|
|
||||||
const css = document.createElement("style")
|
const css = document.createElement("style")
|
||||||
|
|
||||||
css.appendChild(
|
css.appendChild(
|
||||||
document.createTextNode(
|
document.createTextNode(
|
||||||
`* {
|
`* {
|
||||||
-webkit-transition: none !important;
|
-webkit-transition: none !important;
|
||||||
-moz-transition: none !important;
|
-moz-transition: none !important;
|
||||||
-o-transition: none !important;
|
-o-transition: none !important;
|
||||||
-ms-transition: none !important;
|
-ms-transition: none !important;
|
||||||
transition: none !important;
|
transition: none !important;
|
||||||
}`,
|
}`,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
document.head.appendChild(css)
|
document.head.appendChild(css)
|
||||||
|
|
||||||
if (theme === "dark") {
|
if (theme === "dark") {
|
||||||
element.classList.add("dark")
|
element.classList.add("dark")
|
||||||
} else {
|
} else {
|
||||||
element.classList.remove("dark")
|
element.classList.remove("dark")
|
||||||
}
|
}
|
||||||
|
|
||||||
window.getComputedStyle(css).opacity
|
window.getComputedStyle(css).opacity
|
||||||
document.head.removeChild(css)
|
document.head.removeChild(css)
|
||||||
localStorage.theme = theme
|
localStorage.theme = theme
|
||||||
}
|
}
|
||||||
|
|
||||||
function preloadTheme() {
|
function preloadTheme() {
|
||||||
const theme = (() => {
|
const theme = (() => {
|
||||||
const userTheme = localStorage.theme
|
const userTheme = localStorage.theme
|
||||||
|
|
||||||
if (userTheme === "light" || userTheme === "dark") {
|
if (userTheme === "light" || userTheme === "dark") {
|
||||||
return userTheme
|
return userTheme
|
||||||
} else {
|
} else {
|
||||||
return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"
|
return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"
|
||||||
}
|
}
|
||||||
})()
|
})()
|
||||||
|
|
||||||
const element = document.documentElement
|
const element = document.documentElement
|
||||||
|
|
||||||
if (theme === "dark") {
|
if (theme === "dark") {
|
||||||
element.classList.add("dark")
|
element.classList.add("dark")
|
||||||
} else {
|
} else {
|
||||||
element.classList.remove("dark")
|
element.classList.remove("dark")
|
||||||
}
|
}
|
||||||
|
|
||||||
localStorage.theme = theme
|
localStorage.theme = theme
|
||||||
}
|
}
|
||||||
|
|
||||||
window.onload = () => {
|
window.onload = () => {
|
||||||
function initializeThemeButtons() {
|
function initializeThemeButtons() {
|
||||||
const headerThemeButton = document.getElementById("header-theme-button")
|
const headerThemeButton = document.getElementById("header-theme-button")
|
||||||
const drawerThemeButton = document.getElementById("drawer-theme-button")
|
const drawerThemeButton = document.getElementById("drawer-theme-button")
|
||||||
headerThemeButton?.addEventListener("click", changeTheme)
|
headerThemeButton?.addEventListener("click", changeTheme)
|
||||||
drawerThemeButton?.addEventListener("click", changeTheme)
|
drawerThemeButton?.addEventListener("click", changeTheme)
|
||||||
}
|
}
|
||||||
|
|
||||||
document.addEventListener("astro:after-swap", initializeThemeButtons)
|
document.addEventListener("astro:after-swap", initializeThemeButtons)
|
||||||
initializeThemeButtons()
|
initializeThemeButtons()
|
||||||
}
|
}
|
||||||
|
|
||||||
document.addEventListener("astro:after-swap", preloadTheme)
|
document.addEventListener("astro:after-swap", preloadTheme)
|
||||||
|
|
||||||
preloadTheme()
|
preloadTheme()
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
User-agent: *
|
User-agent: *
|
||||||
Allow: /
|
Allow: /
|
||||||
|
|
||||||
Sitemap: http://localhost:4321/sitemap-index.xml
|
Sitemap: http://localhost:4321/sitemap-index.xml
|
||||||
@@ -1,19 +1,19 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg">
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
<defs>
|
<defs>
|
||||||
<symbol id="email" viewBox="0 0 512 512">
|
<symbol id="email" viewBox="0 0 512 512">
|
||||||
<path d="M64 112c-8.8 0-16 7.2-16 16v22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1V128c0-8.8-7.2-16-16-16H64zM48 212.2V384c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V212.2L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z"/>
|
<path d="M64 112c-8.8 0-16 7.2-16 16v22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1V128c0-8.8-7.2-16-16-16H64zM48 212.2V384c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V212.2L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
<symbol id="github" viewBox="0 0 496 512">
|
<symbol id="github" viewBox="0 0 496 512">
|
||||||
<path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/>
|
<path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
<symbol id="linkedin" viewBox="0 0 448 512">
|
<symbol id="linkedin" viewBox="0 0 448 512">
|
||||||
<path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"/>
|
<path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
<symbol id="youtube" viewBox="0 0 512 512">
|
<symbol id="youtube" viewBox="0 0 512 512">
|
||||||
<path d="M549.7 124.1c-6.3-23.7-24.8-42.3-48.3-48.6C458.8 64 288 64 288 64S117.2 64 74.6 75.5c-23.5 6.3-42 24.9-48.3 48.6-11.4 42.9-11.4 132.3-11.4 132.3s0 89.4 11.4 132.3c6.3 23.7 24.8 41.5 48.3 47.8C117.2 448 288 448 288 448s170.8 0 213.4-11.5c23.5-6.3 42-24.2 48.3-47.8 11.4-42.9 11.4-132.3 11.4-132.3s0-89.4-11.4-132.3zm-317.5 213.5V175.2l142.7 81.2-142.7 81.2z"/>
|
<path d="M549.7 124.1c-6.3-23.7-24.8-42.3-48.3-48.6C458.8 64 288 64 288 64S117.2 64 74.6 75.5c-23.5 6.3-42 24.9-48.3 48.6-11.4 42.9-11.4 132.3-11.4 132.3s0 89.4 11.4 132.3c6.3 23.7 24.8 41.5 48.3 47.8C117.2 448 288 448 288 448s170.8 0 213.4-11.5c23.5-6.3 42-24.2 48.3-47.8 11.4-42.9 11.4-132.3 11.4-132.3s0-89.4-11.4-132.3zm-317.5 213.5V175.2l142.7 81.2-142.7 81.2z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
<symbol id="telegram" viewBox="0 0 496 512">
|
<symbol id="telegram" viewBox="0 0 496 512">
|
||||||
<path d="M248 8C111 8 0 119 0 256S111 504 248 504 496 393 496 256 385 8 248 8zM363 176.7c-3.7 39.2-19.9 134.4-28.1 178.3-3.5 18.6-10.3 24.8-16.9 25.4-14.4 1.3-25.3-9.5-39.3-18.7-21.8-14.3-34.2-23.2-55.3-37.2-24.5-16.1-8.6-25 5.3-39.5 3.7-3.8 67.1-61.5 68.3-66.7 .2-.7 .3-3.1-1.2-4.4s-3.6-.8-5.1-.5q-3.3 .7-104.6 69.1-14.8 10.2-26.9 9.9c-8.9-.2-25.9-5-38.6-9.1-15.5-5-27.9-7.7-26.8-16.3q.8-6.7 18.5-13.7 108.4-47.2 144.6-62.3c68.9-28.6 83.2-33.6 92.5-33.8 2.1 0 6.6 .5 9.6 2.9a10.5 10.5 0 0 1 3.5 6.7A43.8 43.8 0 0 1 363 176.7z"/>
|
<path d="M248 8C111 8 0 119 0 256S111 504 248 504 496 393 496 256 385 8 248 8zM363 176.7c-3.7 39.2-19.9 134.4-28.1 178.3-3.5 18.6-10.3 24.8-16.9 25.4-14.4 1.3-25.3-9.5-39.3-18.7-21.8-14.3-34.2-23.2-55.3-37.2-24.5-16.1-8.6-25 5.3-39.5 3.7-3.8 67.1-61.5 68.3-66.7 .2-.7 .3-3.1-1.2-4.4s-3.6-.8-5.1-.5q-3.3 .7-104.6 69.1-14.8 10.2-26.9 9.9c-8.9-.2-25.9-5-38.6-9.1-15.5-5-27.9-7.7-26.8-16.3q.8-6.7 18.5-13.7 108.4-47.2 144.6-62.3c68.9-28.6 83.2-33.6 92.5-33.8 2.1 0 6.6 .5 9.6 2.9a10.5 10.5 0 0 1 3.5 6.7A43.8 43.8 0 0 1 363 176.7z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
</defs>
|
</defs>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
@@ -1,27 +1,27 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg">
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
<defs>
|
<defs>
|
||||||
<!-- astro icon -->
|
<!-- astro icon -->
|
||||||
<symbol id="astro" viewBox="0 0 85 107">
|
<symbol id="astro" viewBox="0 0 85 107">
|
||||||
<path d="M27.5894 91.1365C22.7555 86.7178 21.3444 77.4335 23.3583 70.7072C26.8503 74.948 31.6888 76.2914 36.7005 77.0497C44.4375 78.2199 52.0359 77.7822 59.2232 74.2459C60.0454 73.841 60.8052 73.3027 61.7036 72.7574C62.378 74.714 62.5535 76.6892 62.318 78.6996C61.7452 83.5957 59.3086 87.3778 55.4332 90.2448C53.8835 91.3916 52.2437 92.4167 50.6432 93.4979C45.7262 96.8213 44.3959 100.718 46.2435 106.386C46.2874 106.525 46.3267 106.663 46.426 107C43.9155 105.876 42.0817 104.24 40.6845 102.089C39.2087 99.8193 38.5066 97.3081 38.4696 94.5909C38.4511 93.2686 38.4511 91.9345 38.2733 90.6309C37.8391 87.4527 36.3471 86.0297 33.5364 85.9478C30.6518 85.8636 28.37 87.6469 27.7649 90.4554C27.7187 90.6707 27.6517 90.8837 27.5847 91.1341L27.5894 91.1365Z" fill="#F041FF"/>
|
<path d="M27.5894 91.1365C22.7555 86.7178 21.3444 77.4335 23.3583 70.7072C26.8503 74.948 31.6888 76.2914 36.7005 77.0497C44.4375 78.2199 52.0359 77.7822 59.2232 74.2459C60.0454 73.841 60.8052 73.3027 61.7036 72.7574C62.378 74.714 62.5535 76.6892 62.318 78.6996C61.7452 83.5957 59.3086 87.3778 55.4332 90.2448C53.8835 91.3916 52.2437 92.4167 50.6432 93.4979C45.7262 96.8213 44.3959 100.718 46.2435 106.386C46.2874 106.525 46.3267 106.663 46.426 107C43.9155 105.876 42.0817 104.24 40.6845 102.089C39.2087 99.8193 38.5066 97.3081 38.4696 94.5909C38.4511 93.2686 38.4511 91.9345 38.2733 90.6309C37.8391 87.4527 36.3471 86.0297 33.5364 85.9478C30.6518 85.8636 28.37 87.6469 27.7649 90.4554C27.7187 90.6707 27.6517 90.8837 27.5847 91.1341L27.5894 91.1365Z" fill="#F041FF"/>
|
||||||
<path d="M0 69.5866C0 69.5866 14.3139 62.6137 28.6678 62.6137L39.4901 29.1204C39.8953 27.5007 41.0783 26.3999 42.4139 26.3999C43.7495 26.3999 44.9325 27.5007 45.3377 29.1204L56.1601 62.6137C73.1601 62.6137 84.8278 69.5866 84.8278 69.5866C84.8278 69.5866 60.5145 3.35233 60.467 3.21944C59.7692 1.2612 58.5911 0 57.0029 0H27.8274C26.2392 0 25.1087 1.2612 24.3634 3.21944C24.3108 3.34983 0 69.5866 0 69.5866Z" fill="currentColor"/>
|
<path d="M0 69.5866C0 69.5866 14.3139 62.6137 28.6678 62.6137L39.4901 29.1204C39.8953 27.5007 41.0783 26.3999 42.4139 26.3999C43.7495 26.3999 44.9325 27.5007 45.3377 29.1204L56.1601 62.6137C73.1601 62.6137 84.8278 69.5866 84.8278 69.5866C84.8278 69.5866 60.5145 3.35233 60.467 3.21944C59.7692 1.2612 58.5911 0 57.0029 0H27.8274C26.2392 0 25.1087 1.2612 24.3634 3.21944C24.3108 3.34983 0 69.5866 0 69.5866Z" fill="currentColor"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- javascript icon -->
|
<!-- javascript icon -->
|
||||||
<symbol id="javascript" viewBox="0 0 630 630">
|
<symbol id="javascript" viewBox="0 0 630 630">
|
||||||
<rect width="630" height="630" fill="#f7df1e"/>
|
<rect width="630" height="630" fill="#f7df1e"/>
|
||||||
<path fill="black" d="m423.2 492.19c12.69 20.72 29.2 35.95 58.4 35.95 24.53 0 40.2-12.26 40.2-29.2 0-20.3-16.1-27.49-43.1-39.3l-14.8-6.35c-42.72-18.2-71.1-41-71.1-89.2 0-44.4 33.83-78.2 86.7-78.2 37.64 0 64.7 13.1 84.2 47.4l-46.1 29.6c-10.15-18.2-21.1-25.37-38.1-25.37-17.34 0-28.33 11-28.33 25.37 0 17.76 11 24.95 36.4 35.95l14.8 6.34c50.3 21.57 78.7 43.56 78.7 93 0 53.3-41.87 82.5-98.1 82.5-54.98 0-90.5-26.2-107.88-60.54zm-209.13 5.13c9.3 16.5 17.76 30.45 38.1 30.45 19.45 0 31.72-7.61 31.72-37.2v-201.3h59.2v202.1c0 61.3-35.94 89.2-88.4 89.2-47.4 0-74.85-24.53-88.81-54.075z"/>
|
<path fill="black" d="m423.2 492.19c12.69 20.72 29.2 35.95 58.4 35.95 24.53 0 40.2-12.26 40.2-29.2 0-20.3-16.1-27.49-43.1-39.3l-14.8-6.35c-42.72-18.2-71.1-41-71.1-89.2 0-44.4 33.83-78.2 86.7-78.2 37.64 0 64.7 13.1 84.2 47.4l-46.1 29.6c-10.15-18.2-21.1-25.37-38.1-25.37-17.34 0-28.33 11-28.33 25.37 0 17.76 11 24.95 36.4 35.95l14.8 6.34c50.3 21.57 78.7 43.56 78.7 93 0 53.3-41.87 82.5-98.1 82.5-54.98 0-90.5-26.2-107.88-60.54zm-209.13 5.13c9.3 16.5 17.76 30.45 38.1 30.45 19.45 0 31.72-7.61 31.72-37.2v-201.3h59.2v202.1c0 61.3-35.94 89.2-88.4 89.2-47.4 0-74.85-24.53-88.81-54.075z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- typescript icon -->
|
<!-- typescript icon -->
|
||||||
<symbol id="typescript" fill="none" viewBox="0 0 512 512">
|
<symbol id="typescript" fill="none" viewBox="0 0 512 512">
|
||||||
<rect fill="#3178c6" height="512" rx="50" width="512"/>
|
<rect fill="#3178c6" height="512" rx="50" width="512"/>
|
||||||
<rect fill="#3178c6" height="512" rx="50" width="512"/>
|
<rect fill="#3178c6" height="512" rx="50" width="512"/>
|
||||||
<path clip-rule="evenodd" fill="#fff" fill-rule="evenodd" d="m316.939 407.424v50.061c8.138 4.172 17.763 7.3 28.875 9.386s22.823 3.129 35.135 3.129c11.999 0 23.397-1.147 34.196-3.442 10.799-2.294 20.268-6.075 28.406-11.342 8.138-5.266 14.581-12.15 19.328-20.65s7.121-19.007 7.121-31.522c0-9.074-1.356-17.026-4.069-23.857s-6.625-12.906-11.738-18.225c-5.112-5.319-11.242-10.091-18.389-14.315s-15.207-8.213-24.18-11.967c-6.573-2.712-12.468-5.345-17.685-7.9-5.217-2.556-9.651-5.163-13.303-7.822-3.652-2.66-6.469-5.476-8.451-8.448-1.982-2.973-2.974-6.336-2.974-10.091 0-3.441.887-6.544 2.661-9.308s4.278-5.136 7.512-7.118c3.235-1.981 7.199-3.52 11.894-4.615 4.696-1.095 9.912-1.642 15.651-1.642 4.173 0 8.581.313 13.224.938 4.643.626 9.312 1.591 14.008 2.894 4.695 1.304 9.259 2.947 13.694 4.928 4.434 1.982 8.529 4.276 12.285 6.884v-46.776c-7.616-2.92-15.937-5.084-24.962-6.492s-19.381-2.112-31.066-2.112c-11.895 0-23.163 1.278-33.805 3.833s-20.006 6.544-28.093 11.967c-8.086 5.424-14.476 12.333-19.171 20.729-4.695 8.395-7.043 18.433-7.043 30.114 0 14.914 4.304 27.638 12.912 38.172 8.607 10.533 21.675 19.45 39.204 26.751 6.886 2.816 13.303 5.579 19.25 8.291s11.086 5.528 15.415 8.448c4.33 2.92 7.747 6.101 10.252 9.543 2.504 3.441 3.756 7.352 3.756 11.733 0 3.233-.783 6.231-2.348 8.995s-3.939 5.162-7.121 7.196-7.147 3.624-11.894 4.771c-4.748 1.148-10.303 1.721-16.668 1.721-10.851 0-21.597-1.903-32.24-5.71-10.642-3.806-20.502-9.516-29.579-17.13zm-84.159-123.342h64.22v-41.082h-179v41.082h63.906v182.918h50.874z"/>
|
<path clip-rule="evenodd" fill="#fff" fill-rule="evenodd" d="m316.939 407.424v50.061c8.138 4.172 17.763 7.3 28.875 9.386s22.823 3.129 35.135 3.129c11.999 0 23.397-1.147 34.196-3.442 10.799-2.294 20.268-6.075 28.406-11.342 8.138-5.266 14.581-12.15 19.328-20.65s7.121-19.007 7.121-31.522c0-9.074-1.356-17.026-4.069-23.857s-6.625-12.906-11.738-18.225c-5.112-5.319-11.242-10.091-18.389-14.315s-15.207-8.213-24.18-11.967c-6.573-2.712-12.468-5.345-17.685-7.9-5.217-2.556-9.651-5.163-13.303-7.822-3.652-2.66-6.469-5.476-8.451-8.448-1.982-2.973-2.974-6.336-2.974-10.091 0-3.441.887-6.544 2.661-9.308s4.278-5.136 7.512-7.118c3.235-1.981 7.199-3.52 11.894-4.615 4.696-1.095 9.912-1.642 15.651-1.642 4.173 0 8.581.313 13.224.938 4.643.626 9.312 1.591 14.008 2.894 4.695 1.304 9.259 2.947 13.694 4.928 4.434 1.982 8.529 4.276 12.285 6.884v-46.776c-7.616-2.92-15.937-5.084-24.962-6.492s-19.381-2.112-31.066-2.112c-11.895 0-23.163 1.278-33.805 3.833s-20.006 6.544-28.093 11.967c-8.086 5.424-14.476 12.333-19.171 20.729-4.695 8.395-7.043 18.433-7.043 30.114 0 14.914 4.304 27.638 12.912 38.172 8.607 10.533 21.675 19.45 39.204 26.751 6.886 2.816 13.303 5.579 19.25 8.291s11.086 5.528 15.415 8.448c4.33 2.92 7.747 6.101 10.252 9.543 2.504 3.441 3.756 7.352 3.756 11.733 0 3.233-.783 6.231-2.348 8.995s-3.939 5.162-7.121 7.196-7.147 3.624-11.894 4.771c-4.748 1.148-10.303 1.721-16.668 1.721-10.851 0-21.597-1.903-32.24-5.71-10.642-3.806-20.502-9.516-29.579-17.13zm-84.159-123.342h64.22v-41.082h-179v41.082h63.906v182.918h50.874z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- tailwind icon -->
|
<!-- tailwind icon -->
|
||||||
<symbol id="tailwind" viewBox="0 0 47 40" fill="none">
|
<symbol id="tailwind" viewBox="0 0 47 40" fill="none">
|
||||||
<path fill="#6366f1" d="M23.5 6.5C17.5 6.5 13.75 9.5 12.25 15.5C14.5 12.5 17.125 11.375 20.125 12.125C21.8367 12.5529 23.0601 13.7947 24.4142 15.1692C26.6202 17.4084 29.1734 20 34.75 20C40.75 20 44.5 17 46 11C43.75 14 41.125 15.125 38.125 14.375C36.4133 13.9471 35.1899 12.7053 33.8357 11.3308C31.6297 9.09158 29.0766 6.5 23.5 6.5ZM12.25 20C6.25 20 2.5 23 1 29C3.25 26 5.875 24.875 8.875 25.625C10.5867 26.0529 11.8101 27.2947 13.1642 28.6693C15.3702 30.9084 17.9234 33.5 23.5 33.5C29.5 33.5 33.25 30.5 34.75 24.5C32.5 27.5 29.875 28.625 26.875 27.875C25.1633 27.4471 23.9399 26.2053 22.5858 24.8307C20.3798 22.5916 17.8266 20 12.25 20Z"/>
|
<path fill="#6366f1" d="M23.5 6.5C17.5 6.5 13.75 9.5 12.25 15.5C14.5 12.5 17.125 11.375 20.125 12.125C21.8367 12.5529 23.0601 13.7947 24.4142 15.1692C26.6202 17.4084 29.1734 20 34.75 20C40.75 20 44.5 17 46 11C43.75 14 41.125 15.125 38.125 14.375C36.4133 13.9471 35.1899 12.7053 33.8357 11.3308C31.6297 9.09158 29.0766 6.5 23.5 6.5ZM12.25 20C6.25 20 2.5 23 1 29C3.25 26 5.875 24.875 8.875 25.625C10.5867 26.0529 11.8101 27.2947 13.1642 28.6693C15.3702 30.9084 17.9234 33.5 23.5 33.5C29.5 33.5 33.25 30.5 34.75 24.5C32.5 27.5 29.875 28.625 26.875 27.875C25.1633 27.4471 23.9399 26.2053 22.5858 24.8307C20.3798 22.5916 17.8266 20 12.25 20Z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
</defs>
|
</defs>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
@@ -1,87 +1,87 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg">
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
<defs>
|
<defs>
|
||||||
<!-- menu -->
|
<!-- menu -->
|
||||||
<symbol id="menu" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
<symbol id="menu" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
||||||
<path d="M3 12h18"/>
|
<path d="M3 12h18"/>
|
||||||
<path d="M3 6h18"/>
|
<path d="M3 6h18"/>
|
||||||
<path d="M3 18h18"/>
|
<path d="M3 18h18"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- x -->
|
<!-- x -->
|
||||||
<symbol id="x" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
<symbol id="x" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
||||||
<path d="M18 6L6 18"/>
|
<path d="M18 6L6 18"/>
|
||||||
<path d="M6 6l12 12"/>
|
<path d="M6 6l12 12"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- search -->
|
<!-- search -->
|
||||||
<symbol id="search" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
<symbol id="search" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
||||||
<path d="M11 17.25a6.25 6.25 0 110-12.5 6.25 6.25 0 010 12.5z"/>
|
<path d="M11 17.25a6.25 6.25 0 110-12.5 6.25 6.25 0 010 12.5z"/>
|
||||||
<path d="M16 16l4.5 4.5"/>
|
<path d="M16 16l4.5 4.5"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- rss -->
|
<!-- rss -->
|
||||||
<symbol id="rss" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
<symbol id="rss" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
||||||
<path d="M4 11a9 9 0 019 9"/>
|
<path d="M4 11a9 9 0 019 9"/>
|
||||||
<path d="M4 4a16 16 0 0116 16"/>
|
<path d="M4 4a16 16 0 0116 16"/>
|
||||||
<circle cx="5" cy="19" r="1"/>
|
<circle cx="5" cy="19" r="1"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- sun -->
|
<!-- sun -->
|
||||||
<symbol id="sun" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
<symbol id="sun" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
||||||
<circle cx="12" cy="12" r="5"/>
|
<circle cx="12" cy="12" r="5"/>
|
||||||
<path d="M12 1v2"/>
|
<path d="M12 1v2"/>
|
||||||
<path d="M12 21v2"/>
|
<path d="M12 21v2"/>
|
||||||
<path d="M4.22 4.22l1.42 1.42"/>
|
<path d="M4.22 4.22l1.42 1.42"/>
|
||||||
<path d="M18.36 18.36l1.42 1.42"/>
|
<path d="M18.36 18.36l1.42 1.42"/>
|
||||||
<path d="M1 12h2"/>
|
<path d="M1 12h2"/>
|
||||||
<path d="M21 12h2"/>
|
<path d="M21 12h2"/>
|
||||||
<path d="M4.22 19.78l1.42-1.42"/>
|
<path d="M4.22 19.78l1.42-1.42"/>
|
||||||
<path d="M18.36 5.64l1.42-1.42"/>
|
<path d="M18.36 5.64l1.42-1.42"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- moon -->
|
<!-- moon -->
|
||||||
<symbol id="moon" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
<symbol id="moon" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5">
|
||||||
<path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/>
|
<path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- square -->
|
<!-- square -->
|
||||||
<symbol id="square" viewBox="0 0 448 512">
|
<symbol id="square" viewBox="0 0 448 512">
|
||||||
<path d="M384 80c8.8 0 16 7.2 16 16V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V96c0-8.8 7.2-16 16-16H384zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"/>
|
<path d="M384 80c8.8 0 16 7.2 16 16V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V96c0-8.8 7.2-16 16-16H384zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- square-check -->
|
<!-- square-check -->
|
||||||
<symbol id="square-check" viewBox="0 0 448 512">
|
<symbol id="square-check" viewBox="0 0 448 512">
|
||||||
<path d="M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"/>
|
<path d="M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- calendar -->
|
<!-- calendar -->
|
||||||
<symbol id="calendar" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24">
|
<symbol id="calendar" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24">
|
||||||
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"/>
|
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"/>
|
||||||
<path d="M16 2v4"/>
|
<path d="M16 2v4"/>
|
||||||
<path d="M8 2v4"/>
|
<path d="M8 2v4"/>
|
||||||
<path d="M3 10h18"/>
|
<path d="M3 10h18"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- book-open -->
|
<!-- book-open -->
|
||||||
<symbol id="book-open" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24">
|
<symbol id="book-open" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24">
|
||||||
<path d="M2 3h6a4 4 0 014 4v14a3 3 0 00-3-3H2z"/>
|
<path d="M2 3h6a4 4 0 014 4v14a3 3 0 00-3-3H2z"/>
|
||||||
<path d="M22 3h-6a4 4 0 00-4 4v14a3 3 0 013-3h7z"/>
|
<path d="M22 3h-6a4 4 0 00-4 4v14a3 3 0 013-3h7z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- arrow-right -->
|
<!-- arrow-right -->
|
||||||
<symbol id="arrow-right" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24">
|
<symbol id="arrow-right" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24">
|
||||||
<path d="M5 12h14"/>
|
<path d="M5 12h14"/>
|
||||||
<path d="M12 5l7 7-7 7"/>
|
<path d="M12 5l7 7-7 7"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- globe -->
|
<!-- globe -->
|
||||||
<symbol id="globe" viewBox="0 0 16 16">
|
<symbol id="globe" viewBox="0 0 16 16">
|
||||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.268 14.0934C11.9051 13.4838 13.2303 12.2333 13.9384 10.6469C13.1192 10.7941 12.2138 10.9111 11.2469 10.9925C11.0336 12.2005 10.695 13.2621 10.268 14.0934ZM8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16ZM8.48347 14.4823C8.32384 14.494 8.16262 14.5 8 14.5C7.83738 14.5 7.67616 14.494 7.51654 14.4823C7.5132 14.4791 7.50984 14.4759 7.50647 14.4726C7.2415 14.2165 6.94578 13.7854 6.67032 13.1558C6.41594 12.5744 6.19979 11.8714 6.04101 11.0778C6.67605 11.1088 7.33104 11.125 8 11.125C8.66896 11.125 9.32395 11.1088 9.95899 11.0778C9.80021 11.8714 9.58406 12.5744 9.32968 13.1558C9.05422 13.7854 8.7585 14.2165 8.49353 14.4726C8.49016 14.4759 8.4868 14.4791 8.48347 14.4823ZM11.4187 9.72246C12.5137 9.62096 13.5116 9.47245 14.3724 9.28806C14.4561 8.87172 14.5 8.44099 14.5 8C14.5 7.55901 14.4561 7.12828 14.3724 6.71194C13.5116 6.52755 12.5137 6.37904 11.4187 6.27753C11.4719 6.83232 11.5 7.40867 11.5 8C11.5 8.59133 11.4719 9.16768 11.4187 9.72246ZM10.1525 6.18401C10.2157 6.75982 10.25 7.36805 10.25 8C10.25 8.63195 10.2157 9.24018 10.1525 9.81598C9.46123 9.85455 8.7409 9.875 8 9.875C7.25909 9.875 6.53877 9.85455 5.84749 9.81598C5.7843 9.24018 5.75 8.63195 5.75 8C5.75 7.36805 5.7843 6.75982 5.84749 6.18401C6.53877 6.14545 7.25909 6.125 8 6.125C8.74091 6.125 9.46123 6.14545 10.1525 6.18401ZM11.2469 5.00748C12.2138 5.08891 13.1191 5.20593 13.9384 5.35306C13.2303 3.7667 11.9051 2.51622 10.268 1.90662C10.695 2.73788 11.0336 3.79953 11.2469 5.00748ZM8.48347 1.51771C8.4868 1.52089 8.49016 1.52411 8.49353 1.52737C8.7585 1.78353 9.05422 2.21456 9.32968 2.84417C9.58406 3.42562 9.80021 4.12856 9.95899 4.92219C9.32395 4.89118 8.66896 4.875 8 4.875C7.33104 4.875 6.67605 4.89118 6.04101 4.92219C6.19978 4.12856 6.41594 3.42562 6.67032 2.84417C6.94578 2.21456 7.2415 1.78353 7.50647 1.52737C7.50984 1.52411 7.51319 1.52089 7.51653 1.51771C7.67615 1.50597 7.83738 1.5 8 1.5C8.16262 1.5 8.32384 1.50597 8.48347 1.51771ZM5.73202 1.90663C4.0949 2.51622 2.76975 3.7667 2.06159 5.35306C2.88085 5.20593 3.78617 5.08891 4.75309 5.00748C4.96639 3.79953 5.30497 2.73788 5.73202 1.90663ZM4.58133 6.27753C3.48633 6.37904 2.48837 6.52755 1.62761 6.71194C1.54392 7.12828 1.5 7.55901 1.5 8C1.5 8.44099 1.54392 8.87172 1.62761 9.28806C2.48837 9.47245 3.48633 9.62096 4.58133 9.72246C4.52807 9.16768 4.5 8.59133 4.5 8C4.5 7.40867 4.52807 6.83232 4.58133 6.27753ZM4.75309 10.9925C3.78617 10.9111 2.88085 10.7941 2.06159 10.6469C2.76975 12.2333 4.0949 13.4838 5.73202 14.0934C5.30497 13.2621 4.96639 12.2005 4.75309 10.9925Z"/>
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.268 14.0934C11.9051 13.4838 13.2303 12.2333 13.9384 10.6469C13.1192 10.7941 12.2138 10.9111 11.2469 10.9925C11.0336 12.2005 10.695 13.2621 10.268 14.0934ZM8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16ZM8.48347 14.4823C8.32384 14.494 8.16262 14.5 8 14.5C7.83738 14.5 7.67616 14.494 7.51654 14.4823C7.5132 14.4791 7.50984 14.4759 7.50647 14.4726C7.2415 14.2165 6.94578 13.7854 6.67032 13.1558C6.41594 12.5744 6.19979 11.8714 6.04101 11.0778C6.67605 11.1088 7.33104 11.125 8 11.125C8.66896 11.125 9.32395 11.1088 9.95899 11.0778C9.80021 11.8714 9.58406 12.5744 9.32968 13.1558C9.05422 13.7854 8.7585 14.2165 8.49353 14.4726C8.49016 14.4759 8.4868 14.4791 8.48347 14.4823ZM11.4187 9.72246C12.5137 9.62096 13.5116 9.47245 14.3724 9.28806C14.4561 8.87172 14.5 8.44099 14.5 8C14.5 7.55901 14.4561 7.12828 14.3724 6.71194C13.5116 6.52755 12.5137 6.37904 11.4187 6.27753C11.4719 6.83232 11.5 7.40867 11.5 8C11.5 8.59133 11.4719 9.16768 11.4187 9.72246ZM10.1525 6.18401C10.2157 6.75982 10.25 7.36805 10.25 8C10.25 8.63195 10.2157 9.24018 10.1525 9.81598C9.46123 9.85455 8.7409 9.875 8 9.875C7.25909 9.875 6.53877 9.85455 5.84749 9.81598C5.7843 9.24018 5.75 8.63195 5.75 8C5.75 7.36805 5.7843 6.75982 5.84749 6.18401C6.53877 6.14545 7.25909 6.125 8 6.125C8.74091 6.125 9.46123 6.14545 10.1525 6.18401ZM11.2469 5.00748C12.2138 5.08891 13.1191 5.20593 13.9384 5.35306C13.2303 3.7667 11.9051 2.51622 10.268 1.90662C10.695 2.73788 11.0336 3.79953 11.2469 5.00748ZM8.48347 1.51771C8.4868 1.52089 8.49016 1.52411 8.49353 1.52737C8.7585 1.78353 9.05422 2.21456 9.32968 2.84417C9.58406 3.42562 9.80021 4.12856 9.95899 4.92219C9.32395 4.89118 8.66896 4.875 8 4.875C7.33104 4.875 6.67605 4.89118 6.04101 4.92219C6.19978 4.12856 6.41594 3.42562 6.67032 2.84417C6.94578 2.21456 7.2415 1.78353 7.50647 1.52737C7.50984 1.52411 7.51319 1.52089 7.51653 1.51771C7.67615 1.50597 7.83738 1.5 8 1.5C8.16262 1.5 8.32384 1.50597 8.48347 1.51771ZM5.73202 1.90663C4.0949 2.51622 2.76975 3.7667 2.06159 5.35306C2.88085 5.20593 3.78617 5.08891 4.75309 5.00748C4.96639 3.79953 5.30497 2.73788 5.73202 1.90663ZM4.58133 6.27753C3.48633 6.37904 2.48837 6.52755 1.62761 6.71194C1.54392 7.12828 1.5 7.55901 1.5 8C1.5 8.44099 1.54392 8.87172 1.62761 9.28806C2.48837 9.47245 3.48633 9.62096 4.58133 9.72246C4.52807 9.16768 4.5 8.59133 4.5 8C4.5 7.40867 4.52807 6.83232 4.58133 6.27753ZM4.75309 10.9925C3.78617 10.9111 2.88085 10.7941 2.06159 10.6469C2.76975 12.2333 4.0949 13.4838 5.73202 14.0934C5.30497 13.2621 4.96639 12.2005 4.75309 10.9925Z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
|
||||||
<!-- link -->
|
<!-- link -->
|
||||||
<symbol id="link" viewBox="0 0 16 16">
|
<symbol id="link" viewBox="0 0 16 16">
|
||||||
<path d="M8.46968 1.46968C10.1433 -0.203925 12.8567 -0.203923 14.5303 1.46968C16.2039 3.14329 16.2039 5.85674 14.5303 7.53034L12.0303 10.0303L10.9697 8.96968L13.4697 6.46968C14.5575 5.38186 14.5575 3.61816 13.4697 2.53034C12.3819 1.44252 10.6182 1.44252 9.53034 2.53034L7.03034 5.03034L5.96968 3.96968L8.46968 1.46968ZM11.5303 5.53034L5.53034 11.5303L4.46968 10.4697L10.4697 4.46968L11.5303 5.53034ZM1.46968 14.5303C3.14329 16.2039 5.85673 16.204 7.53034 14.5303L10.0303 12.0303L8.96968 10.9697L6.46968 13.4697C5.38186 14.5575 3.61816 14.5575 2.53034 13.4697C1.44252 12.3819 1.44252 10.6182 2.53034 9.53034L5.03034 7.03034L3.96968 5.96968L1.46968 8.46968C-0.203923 10.1433 -0.203925 12.8567 1.46968 14.5303Z"/>
|
<path d="M8.46968 1.46968C10.1433 -0.203925 12.8567 -0.203923 14.5303 1.46968C16.2039 3.14329 16.2039 5.85674 14.5303 7.53034L12.0303 10.0303L10.9697 8.96968L13.4697 6.46968C14.5575 5.38186 14.5575 3.61816 13.4697 2.53034C12.3819 1.44252 10.6182 1.44252 9.53034 2.53034L7.03034 5.03034L5.96968 3.96968L8.46968 1.46968ZM11.5303 5.53034L5.53034 11.5303L4.46968 10.4697L10.4697 4.46968L11.5303 5.53034ZM1.46968 14.5303C3.14329 16.2039 5.85673 16.204 7.53034 14.5303L10.0303 12.0303L8.96968 10.9697L6.46968 13.4697C5.38186 14.5575 3.61816 14.5575 2.53034 13.4697C1.44252 12.3819 1.44252 10.6182 2.53034 9.53034L5.03034 7.03034L3.96968 5.96968L1.46968 8.46968C-0.203923 10.1433 -0.203925 12.8567 1.46968 14.5303Z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
</defs>
|
</defs>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.5 KiB |
@@ -1,17 +1,17 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Front to the WordPress application. This file doesn't do anything, but loads
|
* Front to the WordPress application. This file doesn't do anything, but loads
|
||||||
* wp-blog-header.php which does and tells WordPress to load the theme.
|
* wp-blog-header.php which does and tells WordPress to load the theme.
|
||||||
*
|
*
|
||||||
* @package WordPress
|
* @package WordPress
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tells WordPress to load the WordPress theme and output it.
|
* Tells WordPress to load the WordPress theme and output it.
|
||||||
*
|
*
|
||||||
* @var bool
|
* @var bool
|
||||||
*/
|
*/
|
||||||
define( 'WP_USE_THEMES', true );
|
define( 'WP_USE_THEMES', true );
|
||||||
|
|
||||||
/** Loads the WordPress Environment and Template */
|
/** Loads the WordPress Environment and Template */
|
||||||
require __DIR__ . '/wp-blog-header.php';
|
require __DIR__ . '/wp-blog-header.php';
|
||||||
|
|||||||
@@ -1,384 +1,384 @@
|
|||||||
WordPress - Web publishing software
|
WordPress - Web publishing software
|
||||||
|
|
||||||
Copyright 2011-2024 by the contributors
|
Copyright 2011-2024 by the contributors
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
This program incorporates work covered by the following copyright and
|
This program incorporates work covered by the following copyright and
|
||||||
permission notices:
|
permission notices:
|
||||||
|
|
||||||
b2 is (c) 2001, 2002 Michel Valdrighi - https://cafelog.com
|
b2 is (c) 2001, 2002 Michel Valdrighi - https://cafelog.com
|
||||||
|
|
||||||
Wherever third party code has been used, credit has been given in the code's
|
Wherever third party code has been used, credit has been given in the code's
|
||||||
comments.
|
comments.
|
||||||
|
|
||||||
b2 is released under the GPL
|
b2 is released under the GPL
|
||||||
|
|
||||||
and
|
and
|
||||||
|
|
||||||
WordPress - Web publishing software
|
WordPress - Web publishing software
|
||||||
|
|
||||||
Copyright 2003-2010 by the contributors
|
Copyright 2003-2010 by the contributors
|
||||||
|
|
||||||
WordPress is released under the GPL
|
WordPress is released under the GPL
|
||||||
|
|
||||||
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||||
|
|
||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
Version 2, June 1991
|
Version 2, June 1991
|
||||||
|
|
||||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
Preamble
|
Preamble
|
||||||
|
|
||||||
The licenses for most software are designed to take away your
|
The licenses for most software are designed to take away your
|
||||||
freedom to share and change it. By contrast, the GNU General Public
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
License is intended to guarantee your freedom to share and change free
|
License is intended to guarantee your freedom to share and change free
|
||||||
software--to make sure the software is free for all its users. This
|
software--to make sure the software is free for all its users. This
|
||||||
General Public License applies to most of the Free Software
|
General Public License applies to most of the Free Software
|
||||||
Foundation's software and to any other program whose authors commit to
|
Foundation's software and to any other program whose authors commit to
|
||||||
using it. (Some other Free Software Foundation software is covered by
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
the GNU Lesser General Public License instead.) You can apply it to
|
the GNU Lesser General Public License instead.) You can apply it to
|
||||||
your programs, too.
|
your programs, too.
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom, not
|
When we speak of free software, we are referring to freedom, not
|
||||||
price. Our General Public Licenses are designed to make sure that you
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
have the freedom to distribute copies of free software (and charge for
|
have the freedom to distribute copies of free software (and charge for
|
||||||
this service if you wish), that you receive source code or can get it
|
this service if you wish), that you receive source code or can get it
|
||||||
if you want it, that you can change the software or use pieces of it
|
if you want it, that you can change the software or use pieces of it
|
||||||
in new free programs; and that you know you can do these things.
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
To protect your rights, we need to make restrictions that forbid
|
To protect your rights, we need to make restrictions that forbid
|
||||||
anyone to deny you these rights or to ask you to surrender the rights.
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
These restrictions translate to certain responsibilities for you if you
|
These restrictions translate to certain responsibilities for you if you
|
||||||
distribute copies of the software, or if you modify it.
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
For example, if you distribute copies of such a program, whether
|
For example, if you distribute copies of such a program, whether
|
||||||
gratis or for a fee, you must give the recipients all the rights that
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
you have. You must make sure that they, too, receive or can get the
|
you have. You must make sure that they, too, receive or can get the
|
||||||
source code. And you must show them these terms so they know their
|
source code. And you must show them these terms so they know their
|
||||||
rights.
|
rights.
|
||||||
|
|
||||||
We protect your rights with two steps: (1) copyright the software, and
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
(2) offer you this license which gives you legal permission to copy,
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
distribute and/or modify the software.
|
distribute and/or modify the software.
|
||||||
|
|
||||||
Also, for each author's protection and ours, we want to make certain
|
Also, for each author's protection and ours, we want to make certain
|
||||||
that everyone understands that there is no warranty for this free
|
that everyone understands that there is no warranty for this free
|
||||||
software. If the software is modified by someone else and passed on, we
|
software. If the software is modified by someone else and passed on, we
|
||||||
want its recipients to know that what they have is not the original, so
|
want its recipients to know that what they have is not the original, so
|
||||||
that any problems introduced by others will not reflect on the original
|
that any problems introduced by others will not reflect on the original
|
||||||
authors' reputations.
|
authors' reputations.
|
||||||
|
|
||||||
Finally, any free program is threatened constantly by software
|
Finally, any free program is threatened constantly by software
|
||||||
patents. We wish to avoid the danger that redistributors of a free
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
program will individually obtain patent licenses, in effect making the
|
program will individually obtain patent licenses, in effect making the
|
||||||
program proprietary. To prevent this, we have made it clear that any
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
patent must be licensed for everyone's free use or not licensed at all.
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
The precise terms and conditions for copying, distribution and
|
||||||
modification follow.
|
modification follow.
|
||||||
|
|
||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
0. This License applies to any program or other work which contains
|
0. This License applies to any program or other work which contains
|
||||||
a notice placed by the copyright holder saying it may be distributed
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
under the terms of this General Public License. The "Program", below,
|
under the terms of this General Public License. The "Program", below,
|
||||||
refers to any such program or work, and a "work based on the Program"
|
refers to any such program or work, and a "work based on the Program"
|
||||||
means either the Program or any derivative work under copyright law:
|
means either the Program or any derivative work under copyright law:
|
||||||
that is to say, a work containing the Program or a portion of it,
|
that is to say, a work containing the Program or a portion of it,
|
||||||
either verbatim or with modifications and/or translated into another
|
either verbatim or with modifications and/or translated into another
|
||||||
language. (Hereinafter, translation is included without limitation in
|
language. (Hereinafter, translation is included without limitation in
|
||||||
the term "modification".) Each licensee is addressed as "you".
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
Activities other than copying, distribution and modification are not
|
Activities other than copying, distribution and modification are not
|
||||||
covered by this License; they are outside its scope. The act of
|
covered by this License; they are outside its scope. The act of
|
||||||
running the Program is not restricted, and the output from the Program
|
running the Program is not restricted, and the output from the Program
|
||||||
is covered only if its contents constitute a work based on the
|
is covered only if its contents constitute a work based on the
|
||||||
Program (independent of having been made by running the Program).
|
Program (independent of having been made by running the Program).
|
||||||
Whether that is true depends on what the Program does.
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
1. You may copy and distribute verbatim copies of the Program's
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
source code as you receive it, in any medium, provided that you
|
source code as you receive it, in any medium, provided that you
|
||||||
conspicuously and appropriately publish on each copy an appropriate
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
copyright notice and disclaimer of warranty; keep intact all the
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
notices that refer to this License and to the absence of any warranty;
|
notices that refer to this License and to the absence of any warranty;
|
||||||
and give any other recipients of the Program a copy of this License
|
and give any other recipients of the Program a copy of this License
|
||||||
along with the Program.
|
along with the Program.
|
||||||
|
|
||||||
You may charge a fee for the physical act of transferring a copy, and
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
you may at your option offer warranty protection in exchange for a fee.
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
2. You may modify your copy or copies of the Program or any portion
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
of it, thus forming a work based on the Program, and copy and
|
of it, thus forming a work based on the Program, and copy and
|
||||||
distribute such modifications or work under the terms of Section 1
|
distribute such modifications or work under the terms of Section 1
|
||||||
above, provided that you also meet all of these conditions:
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
a) You must cause the modified files to carry prominent notices
|
a) You must cause the modified files to carry prominent notices
|
||||||
stating that you changed the files and the date of any change.
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
b) You must cause any work that you distribute or publish, that in
|
b) You must cause any work that you distribute or publish, that in
|
||||||
whole or in part contains or is derived from the Program or any
|
whole or in part contains or is derived from the Program or any
|
||||||
part thereof, to be licensed as a whole at no charge to all third
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
parties under the terms of this License.
|
parties under the terms of this License.
|
||||||
|
|
||||||
c) If the modified program normally reads commands interactively
|
c) If the modified program normally reads commands interactively
|
||||||
when run, you must cause it, when started running for such
|
when run, you must cause it, when started running for such
|
||||||
interactive use in the most ordinary way, to print or display an
|
interactive use in the most ordinary way, to print or display an
|
||||||
announcement including an appropriate copyright notice and a
|
announcement including an appropriate copyright notice and a
|
||||||
notice that there is no warranty (or else, saying that you provide
|
notice that there is no warranty (or else, saying that you provide
|
||||||
a warranty) and that users may redistribute the program under
|
a warranty) and that users may redistribute the program under
|
||||||
these conditions, and telling the user how to view a copy of this
|
these conditions, and telling the user how to view a copy of this
|
||||||
License. (Exception: if the Program itself is interactive but
|
License. (Exception: if the Program itself is interactive but
|
||||||
does not normally print such an announcement, your work based on
|
does not normally print such an announcement, your work based on
|
||||||
the Program is not required to print an announcement.)
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
These requirements apply to the modified work as a whole. If
|
These requirements apply to the modified work as a whole. If
|
||||||
identifiable sections of that work are not derived from the Program,
|
identifiable sections of that work are not derived from the Program,
|
||||||
and can be reasonably considered independent and separate works in
|
and can be reasonably considered independent and separate works in
|
||||||
themselves, then this License, and its terms, do not apply to those
|
themselves, then this License, and its terms, do not apply to those
|
||||||
sections when you distribute them as separate works. But when you
|
sections when you distribute them as separate works. But when you
|
||||||
distribute the same sections as part of a whole which is a work based
|
distribute the same sections as part of a whole which is a work based
|
||||||
on the Program, the distribution of the whole must be on the terms of
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
this License, whose permissions for other licensees extend to the
|
this License, whose permissions for other licensees extend to the
|
||||||
entire whole, and thus to each and every part regardless of who wrote it.
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
Thus, it is not the intent of this section to claim rights or contest
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
your rights to work written entirely by you; rather, the intent is to
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
exercise the right to control the distribution of derivative or
|
exercise the right to control the distribution of derivative or
|
||||||
collective works based on the Program.
|
collective works based on the Program.
|
||||||
|
|
||||||
In addition, mere aggregation of another work not based on the Program
|
In addition, mere aggregation of another work not based on the Program
|
||||||
with the Program (or with a work based on the Program) on a volume of
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
a storage or distribution medium does not bring the other work under
|
a storage or distribution medium does not bring the other work under
|
||||||
the scope of this License.
|
the scope of this License.
|
||||||
|
|
||||||
3. You may copy and distribute the Program (or a work based on it,
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
under Section 2) in object code or executable form under the terms of
|
under Section 2) in object code or executable form under the terms of
|
||||||
Sections 1 and 2 above provided that you also do one of the following:
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
a) Accompany it with the complete corresponding machine-readable
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
source code, which must be distributed under the terms of Sections
|
source code, which must be distributed under the terms of Sections
|
||||||
1 and 2 above on a medium customarily used for software interchange; or,
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
b) Accompany it with a written offer, valid for at least three
|
b) Accompany it with a written offer, valid for at least three
|
||||||
years, to give any third party, for a charge no more than your
|
years, to give any third party, for a charge no more than your
|
||||||
cost of physically performing source distribution, a complete
|
cost of physically performing source distribution, a complete
|
||||||
machine-readable copy of the corresponding source code, to be
|
machine-readable copy of the corresponding source code, to be
|
||||||
distributed under the terms of Sections 1 and 2 above on a medium
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
customarily used for software interchange; or,
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
c) Accompany it with the information you received as to the offer
|
c) Accompany it with the information you received as to the offer
|
||||||
to distribute corresponding source code. (This alternative is
|
to distribute corresponding source code. (This alternative is
|
||||||
allowed only for noncommercial distribution and only if you
|
allowed only for noncommercial distribution and only if you
|
||||||
received the program in object code or executable form with such
|
received the program in object code or executable form with such
|
||||||
an offer, in accord with Subsection b above.)
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
The source code for a work means the preferred form of the work for
|
The source code for a work means the preferred form of the work for
|
||||||
making modifications to it. For an executable work, complete source
|
making modifications to it. For an executable work, complete source
|
||||||
code means all the source code for all modules it contains, plus any
|
code means all the source code for all modules it contains, plus any
|
||||||
associated interface definition files, plus the scripts used to
|
associated interface definition files, plus the scripts used to
|
||||||
control compilation and installation of the executable. However, as a
|
control compilation and installation of the executable. However, as a
|
||||||
special exception, the source code distributed need not include
|
special exception, the source code distributed need not include
|
||||||
anything that is normally distributed (in either source or binary
|
anything that is normally distributed (in either source or binary
|
||||||
form) with the major components (compiler, kernel, and so on) of the
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
operating system on which the executable runs, unless that component
|
operating system on which the executable runs, unless that component
|
||||||
itself accompanies the executable.
|
itself accompanies the executable.
|
||||||
|
|
||||||
If distribution of executable or object code is made by offering
|
If distribution of executable or object code is made by offering
|
||||||
access to copy from a designated place, then offering equivalent
|
access to copy from a designated place, then offering equivalent
|
||||||
access to copy the source code from the same place counts as
|
access to copy the source code from the same place counts as
|
||||||
distribution of the source code, even though third parties are not
|
distribution of the source code, even though third parties are not
|
||||||
compelled to copy the source along with the object code.
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
4. You may not copy, modify, sublicense, or distribute the Program
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
except as expressly provided under this License. Any attempt
|
except as expressly provided under this License. Any attempt
|
||||||
otherwise to copy, modify, sublicense or distribute the Program is
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
void, and will automatically terminate your rights under this License.
|
void, and will automatically terminate your rights under this License.
|
||||||
However, parties who have received copies, or rights, from you under
|
However, parties who have received copies, or rights, from you under
|
||||||
this License will not have their licenses terminated so long as such
|
this License will not have their licenses terminated so long as such
|
||||||
parties remain in full compliance.
|
parties remain in full compliance.
|
||||||
|
|
||||||
5. You are not required to accept this License, since you have not
|
5. You are not required to accept this License, since you have not
|
||||||
signed it. However, nothing else grants you permission to modify or
|
signed it. However, nothing else grants you permission to modify or
|
||||||
distribute the Program or its derivative works. These actions are
|
distribute the Program or its derivative works. These actions are
|
||||||
prohibited by law if you do not accept this License. Therefore, by
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
modifying or distributing the Program (or any work based on the
|
modifying or distributing the Program (or any work based on the
|
||||||
Program), you indicate your acceptance of this License to do so, and
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
all its terms and conditions for copying, distributing or modifying
|
all its terms and conditions for copying, distributing or modifying
|
||||||
the Program or works based on it.
|
the Program or works based on it.
|
||||||
|
|
||||||
6. Each time you redistribute the Program (or any work based on the
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
Program), the recipient automatically receives a license from the
|
Program), the recipient automatically receives a license from the
|
||||||
original licensor to copy, distribute or modify the Program subject to
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
these terms and conditions. You may not impose any further
|
these terms and conditions. You may not impose any further
|
||||||
restrictions on the recipients' exercise of the rights granted herein.
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
You are not responsible for enforcing compliance by third parties to
|
You are not responsible for enforcing compliance by third parties to
|
||||||
this License.
|
this License.
|
||||||
|
|
||||||
7. If, as a consequence of a court judgment or allegation of patent
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
infringement or for any other reason (not limited to patent issues),
|
infringement or for any other reason (not limited to patent issues),
|
||||||
conditions are imposed on you (whether by court order, agreement or
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
otherwise) that contradict the conditions of this License, they do not
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
excuse you from the conditions of this License. If you cannot
|
excuse you from the conditions of this License. If you cannot
|
||||||
distribute so as to satisfy simultaneously your obligations under this
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
License and any other pertinent obligations, then as a consequence you
|
License and any other pertinent obligations, then as a consequence you
|
||||||
may not distribute the Program at all. For example, if a patent
|
may not distribute the Program at all. For example, if a patent
|
||||||
license would not permit royalty-free redistribution of the Program by
|
license would not permit royalty-free redistribution of the Program by
|
||||||
all those who receive copies directly or indirectly through you, then
|
all those who receive copies directly or indirectly through you, then
|
||||||
the only way you could satisfy both it and this License would be to
|
the only way you could satisfy both it and this License would be to
|
||||||
refrain entirely from distribution of the Program.
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
If any portion of this section is held invalid or unenforceable under
|
If any portion of this section is held invalid or unenforceable under
|
||||||
any particular circumstance, the balance of the section is intended to
|
any particular circumstance, the balance of the section is intended to
|
||||||
apply and the section as a whole is intended to apply in other
|
apply and the section as a whole is intended to apply in other
|
||||||
circumstances.
|
circumstances.
|
||||||
|
|
||||||
It is not the purpose of this section to induce you to infringe any
|
It is not the purpose of this section to induce you to infringe any
|
||||||
patents or other property right claims or to contest validity of any
|
patents or other property right claims or to contest validity of any
|
||||||
such claims; this section has the sole purpose of protecting the
|
such claims; this section has the sole purpose of protecting the
|
||||||
integrity of the free software distribution system, which is
|
integrity of the free software distribution system, which is
|
||||||
implemented by public license practices. Many people have made
|
implemented by public license practices. Many people have made
|
||||||
generous contributions to the wide range of software distributed
|
generous contributions to the wide range of software distributed
|
||||||
through that system in reliance on consistent application of that
|
through that system in reliance on consistent application of that
|
||||||
system; it is up to the author/donor to decide if he or she is willing
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
to distribute software through any other system and a licensee cannot
|
to distribute software through any other system and a licensee cannot
|
||||||
impose that choice.
|
impose that choice.
|
||||||
|
|
||||||
This section is intended to make thoroughly clear what is believed to
|
This section is intended to make thoroughly clear what is believed to
|
||||||
be a consequence of the rest of this License.
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
8. If the distribution and/or use of the Program is restricted in
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
certain countries either by patents or by copyrighted interfaces, the
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
original copyright holder who places the Program under this License
|
original copyright holder who places the Program under this License
|
||||||
may add an explicit geographical distribution limitation excluding
|
may add an explicit geographical distribution limitation excluding
|
||||||
those countries, so that distribution is permitted only in or among
|
those countries, so that distribution is permitted only in or among
|
||||||
countries not thus excluded. In such case, this License incorporates
|
countries not thus excluded. In such case, this License incorporates
|
||||||
the limitation as if written in the body of this License.
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
9. The Free Software Foundation may publish revised and/or new versions
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
of the General Public License from time to time. Such new versions will
|
of the General Public License from time to time. Such new versions will
|
||||||
be similar in spirit to the present version, but may differ in detail to
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
address new problems or concerns.
|
address new problems or concerns.
|
||||||
|
|
||||||
Each version is given a distinguishing version number. If the Program
|
Each version is given a distinguishing version number. If the Program
|
||||||
specifies a version number of this License which applies to it and "any
|
specifies a version number of this License which applies to it and "any
|
||||||
later version", you have the option of following the terms and conditions
|
later version", you have the option of following the terms and conditions
|
||||||
either of that version or of any later version published by the Free
|
either of that version or of any later version published by the Free
|
||||||
Software Foundation. If the Program does not specify a version number of
|
Software Foundation. If the Program does not specify a version number of
|
||||||
this License, you may choose any version ever published by the Free Software
|
this License, you may choose any version ever published by the Free Software
|
||||||
Foundation.
|
Foundation.
|
||||||
|
|
||||||
10. If you wish to incorporate parts of the Program into other free
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
programs whose distribution conditions are different, write to the author
|
programs whose distribution conditions are different, write to the author
|
||||||
to ask for permission. For software which is copyrighted by the Free
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
make exceptions for this. Our decision will be guided by the two goals
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
of preserving the free status of all derivatives of our free software and
|
of preserving the free status of all derivatives of our free software and
|
||||||
of promoting the sharing and reuse of software generally.
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
NO WARRANTY
|
NO WARRANTY
|
||||||
|
|
||||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
REPAIR OR CORRECTION.
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
POSSIBILITY OF SUCH DAMAGES.
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
How to Apply These Terms to Your New Programs
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
If you develop a new program, and you want it to be of the greatest
|
If you develop a new program, and you want it to be of the greatest
|
||||||
possible use to the public, the best way to achieve this is to make it
|
possible use to the public, the best way to achieve this is to make it
|
||||||
free software which everyone can redistribute and change under these terms.
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
To do so, attach the following notices to the program. It is safest
|
To do so, attach the following notices to the program. It is safest
|
||||||
to attach them to the start of each source file to most effectively
|
to attach them to the start of each source file to most effectively
|
||||||
convey the exclusion of warranty; and each file should have at least
|
convey the exclusion of warranty; and each file should have at least
|
||||||
the "copyright" line and a pointer to where the full notice is found.
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
<one line to give the program's name and a brief idea of what it does.>
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
Copyright (C) <year> <name of author>
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
If the program is interactive, make it output a short notice like this
|
If the program is interactive, make it output a short notice like this
|
||||||
when it starts in an interactive mode:
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
Gnomovision version 69, Copyright (C) year name of author
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it
|
This is free software, and you are welcome to redistribute it
|
||||||
under certain conditions; type `show c' for details.
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
parts of the General Public License. Of course, the commands you use may
|
parts of the General Public License. Of course, the commands you use may
|
||||||
be called something other than `show w' and `show c'; they could even be
|
be called something other than `show w' and `show c'; they could even be
|
||||||
mouse-clicks or menu items--whatever suits your program.
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
You should also get your employer (if you work as a programmer) or your
|
You should also get your employer (if you work as a programmer) or your
|
||||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
necessary. Here is a sample; alter the names:
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
<signature of Ty Coon>, 1 April 1989
|
<signature of Ty Coon>, 1 April 1989
|
||||||
Ty Coon, President of Vice
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
This General Public License does not permit incorporating your program into
|
This General Public License does not permit incorporating your program into
|
||||||
proprietary programs. If your program is a subroutine library, you may
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
consider it more useful to permit linking proprietary applications with the
|
consider it more useful to permit linking proprietary applications with the
|
||||||
library. If this is what you want to do, use the GNU Lesser General
|
library. If this is what you want to do, use the GNU Lesser General
|
||||||
Public License instead of this License.
|
Public License instead of this License.
|
||||||
|
|
||||||
WRITTEN OFFER
|
WRITTEN OFFER
|
||||||
|
|
||||||
The source code for any program binaries or compressed scripts that are
|
The source code for any program binaries or compressed scripts that are
|
||||||
included with WordPress can be freely obtained at the following URL:
|
included with WordPress can be freely obtained at the following URL:
|
||||||
|
|
||||||
https://wordpress.org/download/source/
|
https://wordpress.org/download/source/
|
||||||
|
|||||||
@@ -1,97 +1,97 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta name="viewport" content="width=device-width" />
|
<meta name="viewport" content="width=device-width" />
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
<title>WordPress › ReadMe</title>
|
<title>WordPress › ReadMe</title>
|
||||||
<link rel="stylesheet" href="wp-admin/css/install.css?ver=20100228" type="text/css" />
|
<link rel="stylesheet" href="wp-admin/css/install.css?ver=20100228" type="text/css" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h1 id="logo">
|
<h1 id="logo">
|
||||||
<a href="https://wordpress.org/"><img alt="WordPress" src="wp-admin/images/wordpress-logo.png" /></a>
|
<a href="https://wordpress.org/"><img alt="WordPress" src="wp-admin/images/wordpress-logo.png" /></a>
|
||||||
</h1>
|
</h1>
|
||||||
<p style="text-align: center">Semantic Personal Publishing Platform</p>
|
<p style="text-align: center">Semantic Personal Publishing Platform</p>
|
||||||
|
|
||||||
<h2>First Things First</h2>
|
<h2>First Things First</h2>
|
||||||
<p>Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I am proud to be a part of. Thousands of hours have gone into WordPress, and we are dedicated to making it better every day. Thank you for making it part of your world.</p>
|
<p>Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I am proud to be a part of. Thousands of hours have gone into WordPress, and we are dedicated to making it better every day. Thank you for making it part of your world.</p>
|
||||||
<p style="text-align: right">— Matt Mullenweg</p>
|
<p style="text-align: right">— Matt Mullenweg</p>
|
||||||
|
|
||||||
<h2>Installation: Famous 5-minute install</h2>
|
<h2>Installation: Famous 5-minute install</h2>
|
||||||
<ol>
|
<ol>
|
||||||
<li>Unzip the package in an empty directory and upload everything.</li>
|
<li>Unzip the package in an empty directory and upload everything.</li>
|
||||||
<li>Open <span class="file"><a href="wp-admin/install.php">wp-admin/install.php</a></span> in your browser. It will take you through the process to set up a <code>wp-config.php</code> file with your database connection details.
|
<li>Open <span class="file"><a href="wp-admin/install.php">wp-admin/install.php</a></span> in your browser. It will take you through the process to set up a <code>wp-config.php</code> file with your database connection details.
|
||||||
<ol>
|
<ol>
|
||||||
<li>If for some reason this does not work, do not worry. It may not work on all web hosts. Open up <code>wp-config-sample.php</code> with a text editor like WordPad or similar and fill in your database connection details.</li>
|
<li>If for some reason this does not work, do not worry. It may not work on all web hosts. Open up <code>wp-config-sample.php</code> with a text editor like WordPad or similar and fill in your database connection details.</li>
|
||||||
<li>Save the file as <code>wp-config.php</code> and upload it.</li>
|
<li>Save the file as <code>wp-config.php</code> and upload it.</li>
|
||||||
<li>Open <span class="file"><a href="wp-admin/install.php">wp-admin/install.php</a></span> in your browser.</li>
|
<li>Open <span class="file"><a href="wp-admin/install.php">wp-admin/install.php</a></span> in your browser.</li>
|
||||||
</ol>
|
</ol>
|
||||||
</li>
|
</li>
|
||||||
<li>Once the configuration file is set up, the installer will set up the tables needed for your site. If there is an error, double check your <code>wp-config.php</code> file, and try again. If it fails again, please go to the <a href="https://wordpress.org/support/forums/">WordPress support forums</a> with as much data as you can gather.</li>
|
<li>Once the configuration file is set up, the installer will set up the tables needed for your site. If there is an error, double check your <code>wp-config.php</code> file, and try again. If it fails again, please go to the <a href="https://wordpress.org/support/forums/">WordPress support forums</a> with as much data as you can gather.</li>
|
||||||
<li><strong>If you did not enter a password, note the password given to you.</strong> If you did not provide a username, it will be <code>admin</code>.</li>
|
<li><strong>If you did not enter a password, note the password given to you.</strong> If you did not provide a username, it will be <code>admin</code>.</li>
|
||||||
<li>The installer should then send you to the <a href="wp-login.php">login page</a>. Sign in with the username and password you chose during the installation. If a password was generated for you, you can then click on “Profile” to change the password.</li>
|
<li>The installer should then send you to the <a href="wp-login.php">login page</a>. Sign in with the username and password you chose during the installation. If a password was generated for you, you can then click on “Profile” to change the password.</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
<h2>Updating</h2>
|
<h2>Updating</h2>
|
||||||
<h3>Using the Automatic Updater</h3>
|
<h3>Using the Automatic Updater</h3>
|
||||||
<ol>
|
<ol>
|
||||||
<li>Open <span class="file"><a href="wp-admin/update-core.php">wp-admin/update-core.php</a></span> in your browser and follow the instructions.</li>
|
<li>Open <span class="file"><a href="wp-admin/update-core.php">wp-admin/update-core.php</a></span> in your browser and follow the instructions.</li>
|
||||||
<li>You wanted more, perhaps? That’s it!</li>
|
<li>You wanted more, perhaps? That’s it!</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
<h3>Updating Manually</h3>
|
<h3>Updating Manually</h3>
|
||||||
<ol>
|
<ol>
|
||||||
<li>Before you update anything, make sure you have backup copies of any files you may have modified such as <code>index.php</code>.</li>
|
<li>Before you update anything, make sure you have backup copies of any files you may have modified such as <code>index.php</code>.</li>
|
||||||
<li>Delete your old WordPress files, saving ones you’ve modified.</li>
|
<li>Delete your old WordPress files, saving ones you’ve modified.</li>
|
||||||
<li>Upload the new files.</li>
|
<li>Upload the new files.</li>
|
||||||
<li>Point your browser to <span class="file"><a href="wp-admin/upgrade.php">/wp-admin/upgrade.php</a>.</span></li>
|
<li>Point your browser to <span class="file"><a href="wp-admin/upgrade.php">/wp-admin/upgrade.php</a>.</span></li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
<h2>Migrating from other systems</h2>
|
<h2>Migrating from other systems</h2>
|
||||||
<p>WordPress can <a href="https://wordpress.org/documentation/article/importing-content/">import from a number of systems</a>. First you need to get WordPress installed and working as described above, before using <a href="wp-admin/import.php">our import tools</a>.</p>
|
<p>WordPress can <a href="https://wordpress.org/documentation/article/importing-content/">import from a number of systems</a>. First you need to get WordPress installed and working as described above, before using <a href="wp-admin/import.php">our import tools</a>.</p>
|
||||||
|
|
||||||
<h2>System Requirements</h2>
|
<h2>System Requirements</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="https://secure.php.net/">PHP</a> version <strong>7.0</strong> or greater.</li>
|
<li><a href="https://secure.php.net/">PHP</a> version <strong>7.0</strong> or greater.</li>
|
||||||
<li><a href="https://www.mysql.com/">MySQL</a> version <strong>5.5.5</strong> or greater.</li>
|
<li><a href="https://www.mysql.com/">MySQL</a> version <strong>5.5.5</strong> or greater.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h3>Recommendations</h3>
|
<h3>Recommendations</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="https://secure.php.net/">PHP</a> version <strong>7.4</strong> or greater.</li>
|
<li><a href="https://secure.php.net/">PHP</a> version <strong>7.4</strong> or greater.</li>
|
||||||
<li><a href="https://www.mysql.com/">MySQL</a> version <strong>8.0</strong> or greater OR <a href="https://mariadb.org/">MariaDB</a> version <strong>10.4</strong> or greater.</li>
|
<li><a href="https://www.mysql.com/">MySQL</a> version <strong>8.0</strong> or greater OR <a href="https://mariadb.org/">MariaDB</a> version <strong>10.4</strong> or greater.</li>
|
||||||
<li>The <a href="https://httpd.apache.org/docs/2.2/mod/mod_rewrite.html">mod_rewrite</a> Apache module.</li>
|
<li>The <a href="https://httpd.apache.org/docs/2.2/mod/mod_rewrite.html">mod_rewrite</a> Apache module.</li>
|
||||||
<li><a href="https://wordpress.org/news/2016/12/moving-toward-ssl/">HTTPS</a> support.</li>
|
<li><a href="https://wordpress.org/news/2016/12/moving-toward-ssl/">HTTPS</a> support.</li>
|
||||||
<li>A link to <a href="https://wordpress.org/">wordpress.org</a> on your site.</li>
|
<li>A link to <a href="https://wordpress.org/">wordpress.org</a> on your site.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h2>Online Resources</h2>
|
<h2>Online Resources</h2>
|
||||||
<p>If you have any questions that are not addressed in this document, please take advantage of WordPress’ numerous online resources:</p>
|
<p>If you have any questions that are not addressed in this document, please take advantage of WordPress’ numerous online resources:</p>
|
||||||
<dl>
|
<dl>
|
||||||
<dt><a href="https://wordpress.org/documentation/">HelpHub</a></dt>
|
<dt><a href="https://wordpress.org/documentation/">HelpHub</a></dt>
|
||||||
<dd>HelpHub is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.</dd>
|
<dd>HelpHub is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.</dd>
|
||||||
<dt><a href="https://wordpress.org/news/">The WordPress Blog</a></dt>
|
<dt><a href="https://wordpress.org/news/">The WordPress Blog</a></dt>
|
||||||
<dd>This is where you’ll find the latest updates and news related to WordPress. Recent WordPress news appears in your administrative dashboard by default.</dd>
|
<dd>This is where you’ll find the latest updates and news related to WordPress. Recent WordPress news appears in your administrative dashboard by default.</dd>
|
||||||
<dt><a href="https://planet.wordpress.org/">WordPress Planet</a></dt>
|
<dt><a href="https://planet.wordpress.org/">WordPress Planet</a></dt>
|
||||||
<dd>The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.</dd>
|
<dd>The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.</dd>
|
||||||
<dt><a href="https://wordpress.org/support/forums/">WordPress Support Forums</a></dt>
|
<dt><a href="https://wordpress.org/support/forums/">WordPress Support Forums</a></dt>
|
||||||
<dd>If you’ve looked everywhere and still cannot find an answer, the support forums are very active and have a large community ready to help. To help them help you be sure to use a descriptive thread title and describe your question in as much detail as possible.</dd>
|
<dd>If you’ve looked everywhere and still cannot find an answer, the support forums are very active and have a large community ready to help. To help them help you be sure to use a descriptive thread title and describe your question in as much detail as possible.</dd>
|
||||||
<dt><a href="https://make.wordpress.org/support/handbook/appendix/other-support-locations/introduction-to-irc/">WordPress <abbr>IRC</abbr> (Internet Relay Chat) Channel</a></dt>
|
<dt><a href="https://make.wordpress.org/support/handbook/appendix/other-support-locations/introduction-to-irc/">WordPress <abbr>IRC</abbr> (Internet Relay Chat) Channel</a></dt>
|
||||||
<dd>There is an online chat channel that is used for discussion among people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (<a href="https://web.libera.chat/#wordpress">irc.libera.chat #wordpress</a>)</dd>
|
<dd>There is an online chat channel that is used for discussion among people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (<a href="https://web.libera.chat/#wordpress">irc.libera.chat #wordpress</a>)</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
<h2>Final Notes</h2>
|
<h2>Final Notes</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li>If you have any suggestions, ideas, or comments, or if you (gasp!) found a bug, join us in the <a href="https://wordpress.org/support/forums/">Support Forums</a>.</li>
|
<li>If you have any suggestions, ideas, or comments, or if you (gasp!) found a bug, join us in the <a href="https://wordpress.org/support/forums/">Support Forums</a>.</li>
|
||||||
<li>WordPress has a robust plugin <abbr>API</abbr> (Application Programming Interface) that makes extending the code easy. If you are a developer interested in utilizing this, see the <a href="https://developer.wordpress.org/plugins/">Plugin Developer Handbook</a>. You shouldn’t modify any of the core code.</li>
|
<li>WordPress has a robust plugin <abbr>API</abbr> (Application Programming Interface) that makes extending the code easy. If you are a developer interested in utilizing this, see the <a href="https://developer.wordpress.org/plugins/">Plugin Developer Handbook</a>. You shouldn’t modify any of the core code.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h2>Share the Love</h2>
|
<h2>Share the Love</h2>
|
||||||
<p>WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better—you. If you enjoy WordPress please consider telling a friend, setting it up for someone less knowledgeable than yourself, or writing the author of a media article that overlooks us.</p>
|
<p>WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better—you. If you enjoy WordPress please consider telling a friend, setting it up for someone less knowledgeable than yourself, or writing the author of a media article that overlooks us.</p>
|
||||||
|
|
||||||
<p>WordPress is the official continuation of <a href="https://cafelog.com/">b2/cafélog</a>, which came from Michel V. The work has been continued by the <a href="https://wordpress.org/about/">WordPress developers</a>. If you would like to support WordPress, please consider <a href="https://wordpress.org/donate/">donating</a>.</p>
|
<p>WordPress is the official continuation of <a href="https://cafelog.com/">b2/cafélog</a>, which came from Michel V. The work has been continued by the <a href="https://wordpress.org/about/">WordPress developers</a>. If you would like to support WordPress, please consider <a href="https://wordpress.org/donate/">donating</a>.</p>
|
||||||
|
|
||||||
<h2>License</h2>
|
<h2>License</h2>
|
||||||
<p>WordPress is free software, and is released under the terms of the <abbr>GPL</abbr> (GNU General Public License) version 2 or (at your option) any later version. See <a href="license.txt">license.txt</a>.</p>
|
<p>WordPress is free software, and is released under the terms of the <abbr>GPL</abbr> (GNU General Public License) version 2 or (at your option) any later version. See <a href="license.txt">license.txt</a>.</p>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,218 +1,218 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Confirms that the activation key that is sent in an email after a user signs
|
* Confirms that the activation key that is sent in an email after a user signs
|
||||||
* up for a new site matches the key for that user and then displays confirmation.
|
* up for a new site matches the key for that user and then displays confirmation.
|
||||||
*
|
*
|
||||||
* @package WordPress
|
* @package WordPress
|
||||||
*/
|
*/
|
||||||
|
|
||||||
define( 'WP_INSTALLING', true );
|
define( 'WP_INSTALLING', true );
|
||||||
|
|
||||||
/** Sets up the WordPress Environment. */
|
/** Sets up the WordPress Environment. */
|
||||||
require __DIR__ . '/wp-load.php';
|
require __DIR__ . '/wp-load.php';
|
||||||
|
|
||||||
require __DIR__ . '/wp-blog-header.php';
|
require __DIR__ . '/wp-blog-header.php';
|
||||||
|
|
||||||
if ( ! is_multisite() ) {
|
if ( ! is_multisite() ) {
|
||||||
wp_redirect( wp_registration_url() );
|
wp_redirect( wp_registration_url() );
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
|
|
||||||
$valid_error_codes = array( 'already_active', 'blog_taken' );
|
$valid_error_codes = array( 'already_active', 'blog_taken' );
|
||||||
|
|
||||||
list( $activate_path ) = explode( '?', wp_unslash( $_SERVER['REQUEST_URI'] ) );
|
list( $activate_path ) = explode( '?', wp_unslash( $_SERVER['REQUEST_URI'] ) );
|
||||||
$activate_cookie = 'wp-activate-' . COOKIEHASH;
|
$activate_cookie = 'wp-activate-' . COOKIEHASH;
|
||||||
|
|
||||||
$key = '';
|
$key = '';
|
||||||
$result = null;
|
$result = null;
|
||||||
|
|
||||||
if ( isset( $_GET['key'] ) && isset( $_POST['key'] ) && $_GET['key'] !== $_POST['key'] ) {
|
if ( isset( $_GET['key'] ) && isset( $_POST['key'] ) && $_GET['key'] !== $_POST['key'] ) {
|
||||||
wp_die( __( 'A key value mismatch has been detected. Please follow the link provided in your activation email.' ), __( 'An error occurred during the activation' ), 400 );
|
wp_die( __( 'A key value mismatch has been detected. Please follow the link provided in your activation email.' ), __( 'An error occurred during the activation' ), 400 );
|
||||||
} elseif ( ! empty( $_GET['key'] ) ) {
|
} elseif ( ! empty( $_GET['key'] ) ) {
|
||||||
$key = $_GET['key'];
|
$key = $_GET['key'];
|
||||||
} elseif ( ! empty( $_POST['key'] ) ) {
|
} elseif ( ! empty( $_POST['key'] ) ) {
|
||||||
$key = $_POST['key'];
|
$key = $_POST['key'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $key ) {
|
if ( $key ) {
|
||||||
$redirect_url = remove_query_arg( 'key' );
|
$redirect_url = remove_query_arg( 'key' );
|
||||||
|
|
||||||
if ( remove_query_arg( false ) !== $redirect_url ) {
|
if ( remove_query_arg( false ) !== $redirect_url ) {
|
||||||
setcookie( $activate_cookie, $key, 0, $activate_path, COOKIE_DOMAIN, is_ssl(), true );
|
setcookie( $activate_cookie, $key, 0, $activate_path, COOKIE_DOMAIN, is_ssl(), true );
|
||||||
wp_safe_redirect( $redirect_url );
|
wp_safe_redirect( $redirect_url );
|
||||||
exit;
|
exit;
|
||||||
} else {
|
} else {
|
||||||
$result = wpmu_activate_signup( $key );
|
$result = wpmu_activate_signup( $key );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( null === $result && isset( $_COOKIE[ $activate_cookie ] ) ) {
|
if ( null === $result && isset( $_COOKIE[ $activate_cookie ] ) ) {
|
||||||
$key = $_COOKIE[ $activate_cookie ];
|
$key = $_COOKIE[ $activate_cookie ];
|
||||||
$result = wpmu_activate_signup( $key );
|
$result = wpmu_activate_signup( $key );
|
||||||
setcookie( $activate_cookie, ' ', time() - YEAR_IN_SECONDS, $activate_path, COOKIE_DOMAIN, is_ssl(), true );
|
setcookie( $activate_cookie, ' ', time() - YEAR_IN_SECONDS, $activate_path, COOKIE_DOMAIN, is_ssl(), true );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( null === $result || ( is_wp_error( $result ) && 'invalid_key' === $result->get_error_code() ) ) {
|
if ( null === $result || ( is_wp_error( $result ) && 'invalid_key' === $result->get_error_code() ) ) {
|
||||||
status_header( 404 );
|
status_header( 404 );
|
||||||
} elseif ( is_wp_error( $result ) ) {
|
} elseif ( is_wp_error( $result ) ) {
|
||||||
$error_code = $result->get_error_code();
|
$error_code = $result->get_error_code();
|
||||||
|
|
||||||
if ( ! in_array( $error_code, $valid_error_codes, true ) ) {
|
if ( ! in_array( $error_code, $valid_error_codes, true ) ) {
|
||||||
status_header( 400 );
|
status_header( 400 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
nocache_headers();
|
nocache_headers();
|
||||||
|
|
||||||
if ( is_object( $wp_object_cache ) ) {
|
if ( is_object( $wp_object_cache ) ) {
|
||||||
$wp_object_cache->cache_enabled = false;
|
$wp_object_cache->cache_enabled = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fix for page title.
|
// Fix for page title.
|
||||||
$wp_query->is_404 = false;
|
$wp_query->is_404 = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires before the Site Activation page is loaded.
|
* Fires before the Site Activation page is loaded.
|
||||||
*
|
*
|
||||||
* @since 3.0.0
|
* @since 3.0.0
|
||||||
*/
|
*/
|
||||||
do_action( 'activate_header' );
|
do_action( 'activate_header' );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds an action hook specific to this page.
|
* Adds an action hook specific to this page.
|
||||||
*
|
*
|
||||||
* Fires on {@see 'wp_head'}.
|
* Fires on {@see 'wp_head'}.
|
||||||
*
|
*
|
||||||
* @since MU (3.0.0)
|
* @since MU (3.0.0)
|
||||||
*/
|
*/
|
||||||
function do_activate_header() {
|
function do_activate_header() {
|
||||||
/**
|
/**
|
||||||
* Fires within the `<head>` section of the Site Activation page.
|
* Fires within the `<head>` section of the Site Activation page.
|
||||||
*
|
*
|
||||||
* Fires on the {@see 'wp_head'} action.
|
* Fires on the {@see 'wp_head'} action.
|
||||||
*
|
*
|
||||||
* @since 3.0.0
|
* @since 3.0.0
|
||||||
*/
|
*/
|
||||||
do_action( 'activate_wp_head' );
|
do_action( 'activate_wp_head' );
|
||||||
}
|
}
|
||||||
add_action( 'wp_head', 'do_activate_header' );
|
add_action( 'wp_head', 'do_activate_header' );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Loads styles specific to this page.
|
* Loads styles specific to this page.
|
||||||
*
|
*
|
||||||
* @since MU (3.0.0)
|
* @since MU (3.0.0)
|
||||||
*/
|
*/
|
||||||
function wpmu_activate_stylesheet() {
|
function wpmu_activate_stylesheet() {
|
||||||
?>
|
?>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
.wp-activate-container { width: 90%; margin: 0 auto; }
|
.wp-activate-container { width: 90%; margin: 0 auto; }
|
||||||
.wp-activate-container form { margin-top: 2em; }
|
.wp-activate-container form { margin-top: 2em; }
|
||||||
#submit, #key { width: 100%; font-size: 24px; box-sizing: border-box; }
|
#submit, #key { width: 100%; font-size: 24px; box-sizing: border-box; }
|
||||||
#language { margin-top: 0.5em; }
|
#language { margin-top: 0.5em; }
|
||||||
.wp-activate-container .error { background: #f66; color: #333; }
|
.wp-activate-container .error { background: #f66; color: #333; }
|
||||||
span.h3 { padding: 0 8px; font-size: 1.3em; font-weight: 600; }
|
span.h3 { padding: 0 8px; font-size: 1.3em; font-weight: 600; }
|
||||||
</style>
|
</style>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
add_action( 'wp_head', 'wpmu_activate_stylesheet' );
|
add_action( 'wp_head', 'wpmu_activate_stylesheet' );
|
||||||
add_action( 'wp_head', 'wp_strict_cross_origin_referrer' );
|
add_action( 'wp_head', 'wp_strict_cross_origin_referrer' );
|
||||||
add_filter( 'wp_robots', 'wp_robots_sensitive_page' );
|
add_filter( 'wp_robots', 'wp_robots_sensitive_page' );
|
||||||
|
|
||||||
get_header( 'wp-activate' );
|
get_header( 'wp-activate' );
|
||||||
|
|
||||||
$blog_details = get_site();
|
$blog_details = get_site();
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div id="signup-content" class="widecolumn">
|
<div id="signup-content" class="widecolumn">
|
||||||
<div class="wp-activate-container">
|
<div class="wp-activate-container">
|
||||||
<?php if ( ! $key ) { ?>
|
<?php if ( ! $key ) { ?>
|
||||||
|
|
||||||
<h2><?php _e( 'Activation Key Required' ); ?></h2>
|
<h2><?php _e( 'Activation Key Required' ); ?></h2>
|
||||||
<form name="activateform" id="activateform" method="post" action="<?php echo esc_url( network_site_url( $blog_details->path . 'wp-activate.php' ) ); ?>">
|
<form name="activateform" id="activateform" method="post" action="<?php echo esc_url( network_site_url( $blog_details->path . 'wp-activate.php' ) ); ?>">
|
||||||
<p>
|
<p>
|
||||||
<label for="key"><?php _e( 'Activation Key:' ); ?></label>
|
<label for="key"><?php _e( 'Activation Key:' ); ?></label>
|
||||||
<br /><input type="text" name="key" id="key" value="" size="50" autofocus="autofocus" />
|
<br /><input type="text" name="key" id="key" value="" size="50" autofocus="autofocus" />
|
||||||
</p>
|
</p>
|
||||||
<p class="submit">
|
<p class="submit">
|
||||||
<input id="submit" type="submit" name="Submit" class="submit" value="<?php esc_attr_e( 'Activate' ); ?>" />
|
<input id="submit" type="submit" name="Submit" class="submit" value="<?php esc_attr_e( 'Activate' ); ?>" />
|
||||||
</p>
|
</p>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
} else {
|
} else {
|
||||||
if ( is_wp_error( $result ) && in_array( $result->get_error_code(), $valid_error_codes, true ) ) {
|
if ( is_wp_error( $result ) && in_array( $result->get_error_code(), $valid_error_codes, true ) ) {
|
||||||
$signup = $result->get_error_data();
|
$signup = $result->get_error_data();
|
||||||
?>
|
?>
|
||||||
<h2><?php _e( 'Your account is now active!' ); ?></h2>
|
<h2><?php _e( 'Your account is now active!' ); ?></h2>
|
||||||
<?php
|
<?php
|
||||||
echo '<p class="lead-in">';
|
echo '<p class="lead-in">';
|
||||||
if ( '' === $signup->domain . $signup->path ) {
|
if ( '' === $signup->domain . $signup->path ) {
|
||||||
printf(
|
printf(
|
||||||
/* translators: 1: Login URL, 2: Username, 3: User email address, 4: Lost password URL. */
|
/* translators: 1: Login URL, 2: Username, 3: User email address, 4: Lost password URL. */
|
||||||
__( 'Your account has been activated. You may now <a href="%1$s">log in</a> to the site using your chosen username of “%2$s”. Please check your email inbox at %3$s for your password and login instructions. If you do not receive an email, please check your junk or spam folder. If you still do not receive an email within an hour, you can <a href="%4$s">reset your password</a>.' ),
|
__( 'Your account has been activated. You may now <a href="%1$s">log in</a> to the site using your chosen username of “%2$s”. Please check your email inbox at %3$s for your password and login instructions. If you do not receive an email, please check your junk or spam folder. If you still do not receive an email within an hour, you can <a href="%4$s">reset your password</a>.' ),
|
||||||
esc_url( network_site_url( $blog_details->path . 'wp-login.php', 'login' ) ),
|
esc_url( network_site_url( $blog_details->path . 'wp-login.php', 'login' ) ),
|
||||||
esc_html( $signup->user_login ),
|
esc_html( $signup->user_login ),
|
||||||
esc_html( $signup->user_email ),
|
esc_html( $signup->user_email ),
|
||||||
esc_url( wp_lostpassword_url() )
|
esc_url( wp_lostpassword_url() )
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
printf(
|
printf(
|
||||||
/* translators: 1: Site URL, 2: Username, 3: User email address, 4: Lost password URL. */
|
/* translators: 1: Site URL, 2: Username, 3: User email address, 4: Lost password URL. */
|
||||||
__( 'Your site at %1$s is active. You may now log in to your site using your chosen username of “%2$s”. Please check your email inbox at %3$s for your password and login instructions. If you do not receive an email, please check your junk or spam folder. If you still do not receive an email within an hour, you can <a href="%4$s">reset your password</a>.' ),
|
__( 'Your site at %1$s is active. You may now log in to your site using your chosen username of “%2$s”. Please check your email inbox at %3$s for your password and login instructions. If you do not receive an email, please check your junk or spam folder. If you still do not receive an email within an hour, you can <a href="%4$s">reset your password</a>.' ),
|
||||||
sprintf( '<a href="http://%1$s">%1$s</a>', esc_url( $signup->domain . $blog_details->path ) ),
|
sprintf( '<a href="http://%1$s">%1$s</a>', esc_url( $signup->domain . $blog_details->path ) ),
|
||||||
esc_html( $signup->user_login ),
|
esc_html( $signup->user_login ),
|
||||||
esc_html( $signup->user_email ),
|
esc_html( $signup->user_email ),
|
||||||
esc_url( wp_lostpassword_url() )
|
esc_url( wp_lostpassword_url() )
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
echo '</p>';
|
echo '</p>';
|
||||||
} elseif ( null === $result || is_wp_error( $result ) ) {
|
} elseif ( null === $result || is_wp_error( $result ) ) {
|
||||||
?>
|
?>
|
||||||
<h2><?php _e( 'An error occurred during the activation' ); ?></h2>
|
<h2><?php _e( 'An error occurred during the activation' ); ?></h2>
|
||||||
<?php if ( is_wp_error( $result ) ) : ?>
|
<?php if ( is_wp_error( $result ) ) : ?>
|
||||||
<p><?php echo esc_html( $result->get_error_message() ); ?></p>
|
<p><?php echo esc_html( $result->get_error_message() ); ?></p>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<?php
|
<?php
|
||||||
} else {
|
} else {
|
||||||
$url = isset( $result['blog_id'] ) ? esc_url( get_home_url( (int) $result['blog_id'] ) ) : '';
|
$url = isset( $result['blog_id'] ) ? esc_url( get_home_url( (int) $result['blog_id'] ) ) : '';
|
||||||
$user = get_userdata( (int) $result['user_id'] );
|
$user = get_userdata( (int) $result['user_id'] );
|
||||||
?>
|
?>
|
||||||
<h2><?php _e( 'Your account is now active!' ); ?></h2>
|
<h2><?php _e( 'Your account is now active!' ); ?></h2>
|
||||||
|
|
||||||
<div id="signup-welcome">
|
<div id="signup-welcome">
|
||||||
<p><span class="h3"><?php _e( 'Username:' ); ?></span> <?php echo esc_html( $user->user_login ); ?></p>
|
<p><span class="h3"><?php _e( 'Username:' ); ?></span> <?php echo esc_html( $user->user_login ); ?></p>
|
||||||
<p><span class="h3"><?php _e( 'Password:' ); ?></span> <?php echo esc_html( $result['password'] ); ?></p>
|
<p><span class="h3"><?php _e( 'Password:' ); ?></span> <?php echo esc_html( $result['password'] ); ?></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
if ( $url && network_home_url( '', 'http' ) !== $url ) :
|
if ( $url && network_home_url( '', 'http' ) !== $url ) :
|
||||||
switch_to_blog( (int) $result['blog_id'] );
|
switch_to_blog( (int) $result['blog_id'] );
|
||||||
$login_url = wp_login_url();
|
$login_url = wp_login_url();
|
||||||
restore_current_blog();
|
restore_current_blog();
|
||||||
?>
|
?>
|
||||||
<p class="view">
|
<p class="view">
|
||||||
<?php
|
<?php
|
||||||
/* translators: 1: Site URL, 2: Login URL. */
|
/* translators: 1: Site URL, 2: Login URL. */
|
||||||
printf( __( 'Your account is now activated. <a href="%1$s">View your site</a> or <a href="%2$s">Log in</a>' ), esc_url( $url ), esc_url( $login_url ) );
|
printf( __( 'Your account is now activated. <a href="%1$s">View your site</a> or <a href="%2$s">Log in</a>' ), esc_url( $url ), esc_url( $login_url ) );
|
||||||
?>
|
?>
|
||||||
</p>
|
</p>
|
||||||
<?php else : ?>
|
<?php else : ?>
|
||||||
<p class="view">
|
<p class="view">
|
||||||
<?php
|
<?php
|
||||||
printf(
|
printf(
|
||||||
/* translators: 1: Login URL, 2: Network home URL. */
|
/* translators: 1: Login URL, 2: Network home URL. */
|
||||||
__( 'Your account is now activated. <a href="%1$s">Log in</a> or go back to the <a href="%2$s">homepage</a>.' ),
|
__( 'Your account is now activated. <a href="%1$s">Log in</a> or go back to the <a href="%2$s">homepage</a>.' ),
|
||||||
esc_url( network_site_url( $blog_details->path . 'wp-login.php', 'login' ) ),
|
esc_url( network_site_url( $blog_details->path . 'wp-login.php', 'login' ) ),
|
||||||
esc_url( network_home_url( $blog_details->path ) )
|
esc_url( network_home_url( $blog_details->path ) )
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
endif;
|
endif;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
get_footer( 'wp-activate' );
|
get_footer( 'wp-activate' );
|
||||||
|
|||||||
@@ -1,419 +1,419 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* About This Version administration panel.
|
* About This Version administration panel.
|
||||||
*
|
*
|
||||||
* @package WordPress
|
* @package WordPress
|
||||||
* @subpackage Administration
|
* @subpackage Administration
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** WordPress Administration Bootstrap */
|
/** WordPress Administration Bootstrap */
|
||||||
require_once __DIR__ . '/admin.php';
|
require_once __DIR__ . '/admin.php';
|
||||||
|
|
||||||
// Used in the HTML title tag.
|
// Used in the HTML title tag.
|
||||||
/* translators: Page title of the About WordPress page in the admin. */
|
/* translators: Page title of the About WordPress page in the admin. */
|
||||||
$title = _x( 'About', 'page title' );
|
$title = _x( 'About', 'page title' );
|
||||||
|
|
||||||
list( $display_version ) = explode( '-', get_bloginfo( 'version' ) );
|
list( $display_version ) = explode( '-', get_bloginfo( 'version' ) );
|
||||||
|
|
||||||
require_once ABSPATH . 'wp-admin/admin-header.php';
|
require_once ABSPATH . 'wp-admin/admin-header.php';
|
||||||
?>
|
?>
|
||||||
<div class="wrap about__container">
|
<div class="wrap about__container">
|
||||||
|
|
||||||
<div class="about__header">
|
<div class="about__header">
|
||||||
<div class="about__header-title">
|
<div class="about__header-title">
|
||||||
<h1>
|
<h1>
|
||||||
<?php
|
<?php
|
||||||
printf(
|
printf(
|
||||||
/* translators: %s: Version number. */
|
/* translators: %s: Version number. */
|
||||||
__( 'WordPress %s' ),
|
__( 'WordPress %s' ),
|
||||||
$display_version
|
$display_version
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
</h1>
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<nav class="about__header-navigation nav-tab-wrapper wp-clearfix" aria-label="<?php esc_attr_e( 'Secondary menu' ); ?>">
|
<nav class="about__header-navigation nav-tab-wrapper wp-clearfix" aria-label="<?php esc_attr_e( 'Secondary menu' ); ?>">
|
||||||
<a href="about.php" class="nav-tab nav-tab-active" aria-current="page"><?php _e( 'What’s New' ); ?></a>
|
<a href="about.php" class="nav-tab nav-tab-active" aria-current="page"><?php _e( 'What’s New' ); ?></a>
|
||||||
<a href="credits.php" class="nav-tab"><?php _e( 'Credits' ); ?></a>
|
<a href="credits.php" class="nav-tab"><?php _e( 'Credits' ); ?></a>
|
||||||
<a href="freedoms.php" class="nav-tab"><?php _e( 'Freedoms' ); ?></a>
|
<a href="freedoms.php" class="nav-tab"><?php _e( 'Freedoms' ); ?></a>
|
||||||
<a href="privacy.php" class="nav-tab"><?php _e( 'Privacy' ); ?></a>
|
<a href="privacy.php" class="nav-tab"><?php _e( 'Privacy' ); ?></a>
|
||||||
<a href="contribute.php" class="nav-tab"><?php _e( 'Get Involved' ); ?></a>
|
<a href="contribute.php" class="nav-tab"><?php _e( 'Get Involved' ); ?></a>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<div class="about__section changelog has-subtle-background-color">
|
<div class="about__section changelog has-subtle-background-color">
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<h2><?php _e( 'Maintenance and Security Release' ); ?></h2>
|
<h2><?php _e( 'Maintenance and Security Release' ); ?></h2>
|
||||||
<p>
|
<p>
|
||||||
<?php
|
<?php
|
||||||
printf(
|
printf(
|
||||||
/* translators: 1: WordPress version number, 2: Plural number of bugs. */
|
/* translators: 1: WordPress version number, 2: Plural number of bugs. */
|
||||||
_n(
|
_n(
|
||||||
'<strong>Version %1$s</strong> addressed %2$s bug.',
|
'<strong>Version %1$s</strong> addressed %2$s bug.',
|
||||||
'<strong>Version %1$s</strong> addressed %2$s bugs.',
|
'<strong>Version %1$s</strong> addressed %2$s bugs.',
|
||||||
10
|
10
|
||||||
),
|
),
|
||||||
'6.5.3',
|
'6.5.3',
|
||||||
'21'
|
'21'
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
<?php
|
<?php
|
||||||
printf(
|
printf(
|
||||||
/* translators: %s: HelpHub URL. */
|
/* translators: %s: HelpHub URL. */
|
||||||
__( 'For more information, see <a href="%s">the release notes</a>.' ),
|
__( 'For more information, see <a href="%s">the release notes</a>.' ),
|
||||||
sprintf(
|
sprintf(
|
||||||
/* translators: %s: WordPress version. */
|
/* translators: %s: WordPress version. */
|
||||||
esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ),
|
esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ),
|
||||||
sanitize_title( '6.5.3' )
|
sanitize_title( '6.5.3' )
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<?php
|
<?php
|
||||||
printf(
|
printf(
|
||||||
/* translators: 1: WordPress version number, 2: Plural number of bugs. */
|
/* translators: 1: WordPress version number, 2: Plural number of bugs. */
|
||||||
_n(
|
_n(
|
||||||
'<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bug.',
|
'<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bug.',
|
||||||
'<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bugs.',
|
'<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bugs.',
|
||||||
12
|
12
|
||||||
),
|
),
|
||||||
'6.5.2',
|
'6.5.2',
|
||||||
'12'
|
'12'
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
<?php
|
<?php
|
||||||
printf(
|
printf(
|
||||||
/* translators: %s: HelpHub URL. */
|
/* translators: %s: HelpHub URL. */
|
||||||
__( 'For more information, see <a href="%s">the release notes</a>.' ),
|
__( 'For more information, see <a href="%s">the release notes</a>.' ),
|
||||||
sprintf(
|
sprintf(
|
||||||
/* translators: %s: WordPress version. */
|
/* translators: %s: WordPress version. */
|
||||||
esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ),
|
esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ),
|
||||||
sanitize_title( '6.5.2' )
|
sanitize_title( '6.5.2' )
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="about__section">
|
<div class="about__section">
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<h2>
|
<h2>
|
||||||
<?php
|
<?php
|
||||||
printf(
|
printf(
|
||||||
/* translators: %s: Version number. */
|
/* translators: %s: Version number. */
|
||||||
__( 'Welcome to WordPress %s' ),
|
__( 'Welcome to WordPress %s' ),
|
||||||
$display_version
|
$display_version
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
</h2>
|
</h2>
|
||||||
<p class="is-subheading">
|
<p class="is-subheading">
|
||||||
<?php _e( 'Take your site-building experience further with WordPress 6.5. Explore more avenues to make it your own, with new features and enhancements that will help fine-tune your creative work. Discover the latest additions to the developer experience, with fresh foundational tools poised to transform the future of blocks.' ); ?>
|
<?php _e( 'Take your site-building experience further with WordPress 6.5. Explore more avenues to make it your own, with new features and enhancements that will help fine-tune your creative work. Discover the latest additions to the developer experience, with fresh foundational tools poised to transform the future of blocks.' ); ?>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="about__section has-2-columns">
|
<div class="about__section has-2-columns">
|
||||||
<div class="column is-vertically-aligned-center">
|
<div class="column is-vertically-aligned-center">
|
||||||
<div class="about__image">
|
<div class="about__image">
|
||||||
<img src="https://s.w.org/images/core/6.5/1-font-library.webp" alt="" height="436" width="436" />
|
<img src="https://s.w.org/images/core/6.5/1-font-library.webp" alt="" height="436" width="436" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="column is-vertically-aligned-center">
|
<div class="column is-vertically-aligned-center">
|
||||||
<h3><?php _e( 'Add and manage fonts across your site' ); ?></h3>
|
<h3><?php _e( 'Add and manage fonts across your site' ); ?></h3>
|
||||||
<p><?php _e( 'The new Font Library puts you in control of an essential piece of your site’s design—typography—without coding or extra steps. Effortlessly install, remove, and activate local and Google Fonts across your site for any block theme. The ability to include custom typography collections gives site creators and publishers even more choice.' ); ?></p>
|
<p><?php _e( 'The new Font Library puts you in control of an essential piece of your site’s design—typography—without coding or extra steps. Effortlessly install, remove, and activate local and Google Fonts across your site for any block theme. The ability to include custom typography collections gives site creators and publishers even more choice.' ); ?></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="about__section has-2-columns">
|
<div class="about__section has-2-columns">
|
||||||
<div class="column is-vertically-aligned-center">
|
<div class="column is-vertically-aligned-center">
|
||||||
<h3><?php _e( 'Get more details from your style revisions' ); ?></h3>
|
<h3><?php _e( 'Get more details from your style revisions' ); ?></h3>
|
||||||
<p><?php _e( 'Work through creative projects with a more comprehensive picture of what’s been done—and what you can fall back on. Get details like time stamps, quick summaries, and a paginated list of total revisions. View revisions from the Style Book to see changes outside of what you’re working on. Revisions are also now available for templates and template parts.' ); ?></p>
|
<p><?php _e( 'Work through creative projects with a more comprehensive picture of what’s been done—and what you can fall back on. Get details like time stamps, quick summaries, and a paginated list of total revisions. View revisions from the Style Book to see changes outside of what you’re working on. Revisions are also now available for templates and template parts.' ); ?></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="column is-vertically-aligned-center">
|
<div class="column is-vertically-aligned-center">
|
||||||
<div class="about__image">
|
<div class="about__image">
|
||||||
<img src="https://s.w.org/images/core/6.5/3-style-revisions.webp" alt="" height="436" width="436" />
|
<img src="https://s.w.org/images/core/6.5/3-style-revisions.webp" alt="" height="436" width="436" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="about__section has-3-columns">
|
<div class="about__section has-3-columns">
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<div class="about__image">
|
<div class="about__image">
|
||||||
<img src="https://s.w.org/images/core/6.5/4-background-images.webp" alt="" height="270" width="270" />
|
<img src="https://s.w.org/images/core/6.5/4-background-images.webp" alt="" height="270" width="270" />
|
||||||
</div>
|
</div>
|
||||||
<h3 class="is-smaller-heading" style="margin-bottom:calc(var(--gap) / 4);"><?php _e( 'Do more with background images in Group blocks' ); ?></h3>
|
<h3 class="is-smaller-heading" style="margin-bottom:calc(var(--gap) / 4);"><?php _e( 'Do more with background images in Group blocks' ); ?></h3>
|
||||||
<p><?php _e( 'Control size, repeat, and focal point options so you can play around with subtle or splashy ways to add visual interest to layouts.' ); ?></p>
|
<p><?php _e( 'Control size, repeat, and focal point options so you can play around with subtle or splashy ways to add visual interest to layouts.' ); ?></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<div class="about__image">
|
<div class="about__image">
|
||||||
<img src="https://s.w.org/images/core/6.5/5-cover-aspect-ratio.webp" alt="" height="270" width="270" />
|
<img src="https://s.w.org/images/core/6.5/5-cover-aspect-ratio.webp" alt="" height="270" width="270" />
|
||||||
</div>
|
</div>
|
||||||
<h3 class="is-smaller-heading" style="margin-bottom:calc(var(--gap) / 4);"><?php _e( 'Get more control over images in Cover blocks' ); ?></h3>
|
<h3 class="is-smaller-heading" style="margin-bottom:calc(var(--gap) / 4);"><?php _e( 'Get more control over images in Cover blocks' ); ?></h3>
|
||||||
<p><?php _e( 'Set aspect ratios for Cover block images and easily add color overlays that automatically source color from your chosen image.' ); ?></p>
|
<p><?php _e( 'Set aspect ratios for Cover block images and easily add color overlays that automatically source color from your chosen image.' ); ?></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<div class="about__image">
|
<div class="about__image">
|
||||||
<img src="https://s.w.org/images/core/6.5/6-box-shadow.webp" alt="" height="270" width="270" />
|
<img src="https://s.w.org/images/core/6.5/6-box-shadow.webp" alt="" height="270" width="270" />
|
||||||
</div>
|
</div>
|
||||||
<h3 class="is-smaller-heading" style="margin-bottom:calc(var(--gap) / 4);"><?php _e( 'Add box shadow supports to even more blocks' ); ?></h3>
|
<h3 class="is-smaller-heading" style="margin-bottom:calc(var(--gap) / 4);"><?php _e( 'Add box shadow supports to even more blocks' ); ?></h3>
|
||||||
<p><?php _e( 'With shadow supports enabled, you can create layouts with visual depth or add a little personality to your design.' ); ?></p>
|
<p><?php _e( 'With shadow supports enabled, you can create layouts with visual depth or add a little personality to your design.' ); ?></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="about__section has-3-columns">
|
<div class="about__section has-3-columns">
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<div class="about__image">
|
<div class="about__image">
|
||||||
<img src="https://s.w.org/images/core/6.5/7-data-views.webp" alt="" height="270" width="270" />
|
<img src="https://s.w.org/images/core/6.5/7-data-views.webp" alt="" height="270" width="270" />
|
||||||
</div>
|
</div>
|
||||||
<h3 class="is-smaller-heading" style="margin-bottom:calc(var(--gap) / 4);"><?php _e( 'Discover new Data Views' ); ?></h3>
|
<h3 class="is-smaller-heading" style="margin-bottom:calc(var(--gap) / 4);"><?php _e( 'Discover new Data Views' ); ?></h3>
|
||||||
<p><?php _e( 'Find and organize your data however you like with data views for pages, templates, patterns, and template parts. Arrange it in a table or grid view with the option to toggle fields and make bulk changes.' ); ?></p>
|
<p><?php _e( 'Find and organize your data however you like with data views for pages, templates, patterns, and template parts. Arrange it in a table or grid view with the option to toggle fields and make bulk changes.' ); ?></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<div class="about__image">
|
<div class="about__image">
|
||||||
<img src="https://s.w.org/images/core/6.5/8-drag-n-drop.webp" alt="" height="270" width="270" />
|
<img src="https://s.w.org/images/core/6.5/8-drag-n-drop.webp" alt="" height="270" width="270" />
|
||||||
</div>
|
</div>
|
||||||
<h3 class="is-smaller-heading" style="margin-bottom:calc(var(--gap) / 4);"><?php _e( 'Smoother drag-and-drop' ); ?></h3>
|
<h3 class="is-smaller-heading" style="margin-bottom:calc(var(--gap) / 4);"><?php _e( 'Smoother drag-and-drop' ); ?></h3>
|
||||||
<p><?php _e( 'Feel the difference when you move things around, with helpful visual cues like displaced items in List View or frictionless dragging to anywhere in your workspace—from beginning to end.' ); ?></p>
|
<p><?php _e( 'Feel the difference when you move things around, with helpful visual cues like displaced items in List View or frictionless dragging to anywhere in your workspace—from beginning to end.' ); ?></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<div class="about__image">
|
<div class="about__image">
|
||||||
<img src="https://s.w.org/images/core/6.5/9-link-controls.webp" alt="" height="270" width="270" />
|
<img src="https://s.w.org/images/core/6.5/9-link-controls.webp" alt="" height="270" width="270" />
|
||||||
</div>
|
</div>
|
||||||
<h3 class="is-smaller-heading" style="margin-bottom:calc(var(--gap) / 4);"><?php _e( 'Improved link controls' ); ?></h3>
|
<h3 class="is-smaller-heading" style="margin-bottom:calc(var(--gap) / 4);"><?php _e( 'Improved link controls' ); ?></h3>
|
||||||
<p><?php _e( 'Create and manage links easily with a more intuitive link-building experience, like a streamlined UI and a shortcut for copying links.' ); ?></p>
|
<p><?php _e( 'Create and manage links easily with a more intuitive link-building experience, like a streamlined UI and a shortcut for copying links.' ); ?></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr />
|
<hr />
|
||||||
|
|
||||||
<div class="about__section has-2-columns">
|
<div class="about__section has-2-columns">
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<div class="about__image">
|
<div class="about__image">
|
||||||
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
|
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
|
||||||
<rect width="48" height="48" rx="6" fill="#ededed"/>
|
<rect width="48" height="48" rx="6" fill="#ededed"/>
|
||||||
<path d="M18.9167 16.5C18.2757 16.5 17.661 16.7546 17.2078 17.2078C16.7546 17.661 16.5 18.2757 16.5 18.9167V21.3333H18.3125V18.9167C18.3125 18.7564 18.3762 18.6028 18.4895 18.4895C18.6028 18.3762 18.7564 18.3125 18.9167 18.3125H21.3333V16.5H18.9167ZM21.3333 29.1875H18.9167C18.7564 29.1875 18.6028 29.1238 18.4895 29.0105C18.3762 28.8972 18.3125 28.7436 18.3125 28.5833V26.1667H16.5V28.5833C16.5 29.2243 16.7546 29.839 17.2078 30.2922C17.661 30.7454 18.2757 31 18.9167 31H21.3333V29.1875ZM26.1667 31V29.1875H28.5833C28.7436 29.1875 28.8972 29.1238 29.0105 29.0105C29.1238 28.8972 29.1875 28.7436 29.1875 28.5833V26.1667H31V28.5833C31 29.2243 30.7454 29.839 30.2922 30.2922C29.839 30.7454 29.2243 31 28.5833 31H26.1667ZM28.5833 16.5C29.2243 16.5 29.839 16.7546 30.2922 17.2078C30.7454 17.661 31 18.2757 31 18.9167V21.3333H29.1875V18.9167C29.1875 18.7564 29.1238 18.6028 29.0105 18.4895C28.8972 18.3762 28.7436 18.3125 28.5833 18.3125H26.1667V16.5H28.5833Z" fill="#1e1e1e"/>
|
<path d="M18.9167 16.5C18.2757 16.5 17.661 16.7546 17.2078 17.2078C16.7546 17.661 16.5 18.2757 16.5 18.9167V21.3333H18.3125V18.9167C18.3125 18.7564 18.3762 18.6028 18.4895 18.4895C18.6028 18.3762 18.7564 18.3125 18.9167 18.3125H21.3333V16.5H18.9167ZM21.3333 29.1875H18.9167C18.7564 29.1875 18.6028 29.1238 18.4895 29.0105C18.3762 28.8972 18.3125 28.7436 18.3125 28.5833V26.1667H16.5V28.5833C16.5 29.2243 16.7546 29.839 17.2078 30.2922C17.661 30.7454 18.2757 31 18.9167 31H21.3333V29.1875ZM26.1667 31V29.1875H28.5833C28.7436 29.1875 28.8972 29.1238 29.0105 29.0105C29.1238 28.8972 29.1875 28.7436 29.1875 28.5833V26.1667H31V28.5833C31 29.2243 30.7454 29.839 30.2922 30.2922C29.839 30.7454 29.2243 31 28.5833 31H26.1667ZM28.5833 16.5C29.2243 16.5 29.839 16.7546 30.2922 17.2078C30.7454 17.661 31 18.2757 31 18.9167V21.3333H29.1875V18.9167C29.1875 18.7564 29.1238 18.6028 29.0105 18.4895C28.8972 18.3762 28.7436 18.3125 28.5833 18.3125H26.1667V16.5H28.5833Z" fill="#1e1e1e"/>
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
<h3 style="margin-top:calc(var(--gap) * 0.75);margin-bottom:calc(var(--gap) * 0.5)"><?php _e( 'Bring interactions to blocks with the Interactivity API' ); ?></h3>
|
<h3 style="margin-top:calc(var(--gap) * 0.75);margin-bottom:calc(var(--gap) * 0.5)"><?php _e( 'Bring interactions to blocks with the Interactivity API' ); ?></h3>
|
||||||
<p><?php _e( 'The Interactivity API offers developers a standardized method for building interactive front-end experiences with blocks. It simplifies the process, with fewer dependencies on external tooling, while maintaining optimal performance. Use it to create memorable user experiences, like fetching search results instantly or letting visitors interact with content in real time.' ); ?></p>
|
<p><?php _e( 'The Interactivity API offers developers a standardized method for building interactive front-end experiences with blocks. It simplifies the process, with fewer dependencies on external tooling, while maintaining optimal performance. Use it to create memorable user experiences, like fetching search results instantly or letting visitors interact with content in real time.' ); ?></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<div class="about__image">
|
<div class="about__image">
|
||||||
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
|
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
|
||||||
<rect width="48" height="48" rx="6" fill="#ededed"/>
|
<rect width="48" height="48" rx="6" fill="#ededed"/>
|
||||||
<path d="M18.95 19.45H27.15L25.45 21.25L26.55 22.35L30.15 18.75L26.65 14.75L25.55 15.75L27.45 18.05H18.95C18.05 18.05 17.25 18.35 16.65 18.95C15.25 20.45 15.25 23.15 15.25 24.55V24.75H16.75V24.45C16.75 23.35 16.75 20.95 17.75 19.95C18.05 19.65 18.45 19.45 18.95 19.45ZM32.75 23.45V23.25H31.25V23.55C31.25 24.65 31.25 27.05 30.25 28.05C29.95 28.35 29.55 28.55 28.95 28.55H20.75L22.45 26.85L21.35 25.75L17.85 29.25L21.35 33.25L22.45 32.25L20.55 29.95H28.95C29.85 29.95 30.65 29.65 31.25 29.05C32.75 27.65 32.75 24.85 32.75 23.45Z" fill="#1e1e1e"/>
|
<path d="M18.95 19.45H27.15L25.45 21.25L26.55 22.35L30.15 18.75L26.65 14.75L25.55 15.75L27.45 18.05H18.95C18.05 18.05 17.25 18.35 16.65 18.95C15.25 20.45 15.25 23.15 15.25 24.55V24.75H16.75V24.45C16.75 23.35 16.75 20.95 17.75 19.95C18.05 19.65 18.45 19.45 18.95 19.45ZM32.75 23.45V23.25H31.25V23.55C31.25 24.65 31.25 27.05 30.25 28.05C29.95 28.35 29.55 28.55 28.95 28.55H20.75L22.45 26.85L21.35 25.75L17.85 29.25L21.35 33.25L22.45 32.25L20.55 29.95H28.95C29.85 29.95 30.65 29.65 31.25 29.05C32.75 27.65 32.75 24.85 32.75 23.45Z" fill="#1e1e1e"/>
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
<h3 style="margin-top:calc(var(--gap) * 0.75);margin-bottom:calc(var(--gap) * 0.5)"><?php _e( 'Connect blocks to custom fields or other dynamic content' ); ?></h3>
|
<h3 style="margin-top:calc(var(--gap) * 0.75);margin-bottom:calc(var(--gap) * 0.5)"><?php _e( 'Connect blocks to custom fields or other dynamic content' ); ?></h3>
|
||||||
<p><?php _e( 'Link core block attributes to custom fields and use the value of custom fields without creating custom blocks. Powered by the Block Bindings API, developers can extend this capability further to connect blocks to any dynamic content—even beyond custom fields. If there’s data stored elsewhere, easily point blocks to that new source with only a few lines of code.' ); ?></p>
|
<p><?php _e( 'Link core block attributes to custom fields and use the value of custom fields without creating custom blocks. Powered by the Block Bindings API, developers can extend this capability further to connect blocks to any dynamic content—even beyond custom fields. If there’s data stored elsewhere, easily point blocks to that new source with only a few lines of code.' ); ?></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="about__section has-2-columns">
|
<div class="about__section has-2-columns">
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<div class="about__image">
|
<div class="about__image">
|
||||||
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
|
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
|
||||||
<rect width="48" height="48" rx="6" fill="#ededed"/>
|
<rect width="48" height="48" rx="6" fill="#ededed"/>
|
||||||
<path d="M33 18.75H23.1925C22.7954 17.7305 21.7239 17 20.4643 17C19.2047 17 18.1332 17.7305 17.736 18.75H15V20.5H17.736C18.1332 21.5195 19.2047 22.25 20.4643 22.25C21.7239 22.25 22.7954 21.5195 23.1925 20.5H33V18.75Z" fill="#1e1e1e"/>
|
<path d="M33 18.75H23.1925C22.7954 17.7305 21.7239 17 20.4643 17C19.2047 17 18.1332 17.7305 17.736 18.75H15V20.5H17.736C18.1332 21.5195 19.2047 22.25 20.4643 22.25C21.7239 22.25 22.7954 21.5195 23.1925 20.5H33V18.75Z" fill="#1e1e1e"/>
|
||||||
<path d="M33 27.5H30.264C29.8668 26.4805 28.7953 25.75 27.5357 25.75C26.2761 25.75 25.2046 26.4805 24.8075 27.5H15V29.25H24.8075C25.2046 30.2695 26.2761 31 27.5357 31C28.7953 31 29.8668 30.2695 30.264 29.25H33V27.5Z" fill="#1e1e1e"/>
|
<path d="M33 27.5H30.264C29.8668 26.4805 28.7953 25.75 27.5357 25.75C26.2761 25.75 25.2046 26.4805 24.8075 27.5H15V29.25H24.8075C25.2046 30.2695 26.2761 31 27.5357 31C28.7953 31 29.8668 30.2695 30.264 29.25H33V27.5Z" fill="#1e1e1e"/>
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
<h3 style="margin-top:calc(var(--gap) * 0.75);margin-bottom:calc(var(--gap) * 0.5)"><?php _e( 'Add appearance tools to Classic themes' ); ?></h3>
|
<h3 style="margin-top:calc(var(--gap) * 0.75);margin-bottom:calc(var(--gap) * 0.5)"><?php _e( 'Add appearance tools to Classic themes' ); ?></h3>
|
||||||
<p><?php _e( 'Give designers and creators using Classic themes access to an upgraded design experience. Opt in to support for spacing, border, typography, and color options, even without using theme.json. Once support is enabled, more tools will be automatically added as they become available.' ); ?></p>
|
<p><?php _e( 'Give designers and creators using Classic themes access to an upgraded design experience. Opt in to support for spacing, border, typography, and color options, even without using theme.json. Once support is enabled, more tools will be automatically added as they become available.' ); ?></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<div class="about__image">
|
<div class="about__image">
|
||||||
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
|
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
|
||||||
<rect width="48" height="48" rx="6" fill="#ededed"/>
|
<rect width="48" height="48" rx="6" fill="#ededed"/>
|
||||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M22.5 16L22.5 20H25.5V16H27V20H28.5C29.0523 20 29.5 20.4477 29.5 21V25L26.5 29V31C26.5 31.5523 26.0523 32 25.5 32H22.5C21.9477 32 21.5 31.5523 21.5 31V29L18.5 25V21C18.5 20.4477 18.9477 20 19.5 20H21L21 16H22.5ZM23 28.5V30.5H25V28.5L28 24.5V21.5H20V24.5L23 28.5Z" fill="#1e1e1e"/>
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M22.5 16L22.5 20H25.5V16H27V20H28.5C29.0523 20 29.5 20.4477 29.5 21V25L26.5 29V31C26.5 31.5523 26.0523 32 25.5 32H22.5C21.9477 32 21.5 31.5523 21.5 31V29L18.5 25V21C18.5 20.4477 18.9477 20 19.5 20H21L21 16H22.5ZM23 28.5V30.5H25V28.5L28 24.5V21.5H20V24.5L23 28.5Z" fill="#1e1e1e"/>
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
<h3 style="margin-top:calc(var(--gap) * 0.75);margin-bottom:calc(var(--gap) * 0.5)"><?php _e( 'Explore improvements to the plugin experience' ); ?></h3>
|
<h3 style="margin-top:calc(var(--gap) * 0.75);margin-bottom:calc(var(--gap) * 0.5)"><?php _e( 'Explore improvements to the plugin experience' ); ?></h3>
|
||||||
<p>
|
<p>
|
||||||
<?php
|
<?php
|
||||||
printf(
|
printf(
|
||||||
/* translators: %s: Requires Plugins */
|
/* translators: %s: Requires Plugins */
|
||||||
__( 'There’s now an easier way to manage plugin dependencies. Plugin authors can supply a new %s header with a comma-separated list of required plugin slugs, presenting users with links to install and activate those plugins first.' ),
|
__( 'There’s now an easier way to manage plugin dependencies. Plugin authors can supply a new %s header with a comma-separated list of required plugin slugs, presenting users with links to install and activate those plugins first.' ),
|
||||||
'<code lang="en">Requires Plugins</code>'
|
'<code lang="en">Requires Plugins</code>'
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="about__section has-2-columns">
|
<div class="about__section has-2-columns">
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<div class="about__image">
|
<div class="about__image">
|
||||||
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
|
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
|
||||||
<rect width="48" height="48" rx="4" fill="#ededed"/>
|
<rect width="48" height="48" rx="4" fill="#ededed"/>
|
||||||
<path d="M28.4287 20.6507C28.8387 20.8874 28.9791 21.4116 28.7424 21.8215L24.7424 28.7498C24.5057 29.1597 23.9815 29.3002 23.5715 29.0635C23.1616 28.8268 23.0211 28.3026 23.2578 27.8926L27.2578 20.9644C27.4945 20.5544 28.0187 20.414 28.4287 20.6507Z" fill="#1e1e1e"/>
|
<path d="M28.4287 20.6507C28.8387 20.8874 28.9791 21.4116 28.7424 21.8215L24.7424 28.7498C24.5057 29.1597 23.9815 29.3002 23.5715 29.0635C23.1616 28.8268 23.0211 28.3026 23.2578 27.8926L27.2578 20.9644C27.4945 20.5544 28.0187 20.414 28.4287 20.6507Z" fill="#1e1e1e"/>
|
||||||
<path d="M18.6433 23.579C18.2333 23.3423 17.7091 23.4828 17.4724 23.8927C17.2357 24.3027 17.3761 24.8269 17.7861 25.0636L18.281 25.3493C18.691 25.586 19.2152 25.4456 19.4519 25.0356C19.6886 24.6256 19.5481 24.1014 19.1381 23.8647L18.6433 23.579Z" fill="#1e1e1e"/>
|
<path d="M18.6433 23.579C18.2333 23.3423 17.7091 23.4828 17.4724 23.8927C17.2357 24.3027 17.3761 24.8269 17.7861 25.0636L18.281 25.3493C18.691 25.586 19.2152 25.4456 19.4519 25.0356C19.6886 24.6256 19.5481 24.1014 19.1381 23.8647L18.6433 23.579Z" fill="#1e1e1e"/>
|
||||||
<path d="M20.0358 20.6508C20.4458 20.4141 20.97 20.5546 21.2067 20.9645L21.4924 21.4594C21.7291 21.8694 21.5887 22.3936 21.1787 22.6303C20.7687 22.867 20.2445 22.7265 20.0078 22.3166L19.7221 21.8217C19.4854 21.4117 19.6259 20.8875 20.0358 20.6508Z" fill="#1e1e1e"/>
|
<path d="M20.0358 20.6508C20.4458 20.4141 20.97 20.5546 21.2067 20.9645L21.4924 21.4594C21.7291 21.8694 21.5887 22.3936 21.1787 22.6303C20.7687 22.867 20.2445 22.7265 20.0078 22.3166L19.7221 21.8217C19.4854 21.4117 19.6259 20.8875 20.0358 20.6508Z" fill="#1e1e1e"/>
|
||||||
<path d="M24.8571 20C24.8571 19.5266 24.4734 19.1429 24 19.1429C23.5266 19.1429 23.1429 19.5266 23.1429 20V20.5714C23.1429 21.0448 23.5266 21.4286 24 21.4286C24.4734 21.4286 24.8571 21.0448 24.8571 20.5714V20Z" fill="#1e1e1e"/>
|
<path d="M24.8571 20C24.8571 19.5266 24.4734 19.1429 24 19.1429C23.5266 19.1429 23.1429 19.5266 23.1429 20V20.5714C23.1429 21.0448 23.5266 21.4286 24 21.4286C24.4734 21.4286 24.8571 21.0448 24.8571 20.5714V20Z" fill="#1e1e1e"/>
|
||||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14 26C14 20.4772 18.4772 16 24 16C29.5228 16 34 20.4772 34 26C34 28.0846 33.3612 30.0225 32.2686 31.6256L32.0135 32H15.9865L15.7314 31.6256C14.6388 30.0225 14 28.0846 14 26ZM24 17.7143C19.4239 17.7143 15.7143 21.4239 15.7143 26C15.7143 27.5698 16.1501 29.0357 16.9072 30.2857H31.0928C31.8499 29.0357 32.2857 27.5698 32.2857 26C32.2857 21.4239 28.5761 17.7143 24 17.7143Z" fill="#1e1e1e"/>
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M14 26C14 20.4772 18.4772 16 24 16C29.5228 16 34 20.4772 34 26C34 28.0846 33.3612 30.0225 32.2686 31.6256L32.0135 32H15.9865L15.7314 31.6256C14.6388 30.0225 14 28.0846 14 26ZM24 17.7143C19.4239 17.7143 15.7143 21.4239 15.7143 26C15.7143 27.5698 16.1501 29.0357 16.9072 30.2857H31.0928C31.8499 29.0357 32.2857 27.5698 32.2857 26C32.2857 21.4239 28.5761 17.7143 24 17.7143Z" fill="#1e1e1e"/>
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
<h3 style="margin-top:calc(var(--gap) * 0.75);margin-bottom:calc(var(--gap) * 0.5)"><?php _e( 'Performance updates' ); ?></h3>
|
<h3 style="margin-top:calc(var(--gap) * 0.75);margin-bottom:calc(var(--gap) * 0.5)"><?php _e( 'Performance updates' ); ?></h3>
|
||||||
<p><?php _e( 'This release includes 110+ performance updates, with an impressive increase in speed and efficiency across the Post Editor and Site Editor. Loading is over two times faster than in 6.4, with input processing speed up to five times faster than the previous release. Translated sites see up to 25% improvement in load time for this release.' ); ?></p>
|
<p><?php _e( 'This release includes 110+ performance updates, with an impressive increase in speed and efficiency across the Post Editor and Site Editor. Loading is over two times faster than in 6.4, with input processing speed up to five times faster than the previous release. Translated sites see up to 25% improvement in load time for this release.' ); ?></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<div class="about__image">
|
<div class="about__image">
|
||||||
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
|
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
|
||||||
<rect width="48" height="48" rx="4" fill="#ededed"/>
|
<rect width="48" height="48" rx="4" fill="#ededed"/>
|
||||||
<path d="M24 18.285C23.55 18.285 23.1637 18.1237 22.8412 17.8012C22.5187 17.4788 22.3575 17.0925 22.3575 16.6425C22.3575 16.1925 22.5187 15.8062 22.8412 15.4837C23.1637 15.1612 23.55 15 24 15C24.45 15 24.8362 15.1612 25.1587 15.4837C25.4812 15.8062 25.6425 16.1925 25.6425 16.6425C25.6425 17.0925 25.4812 17.4788 25.1587 17.8012C24.8362 18.1237 24.45 18.285 24 18.285ZM21.5925 33V21.0075C20.5725 20.9325 19.5862 20.8275 18.6337 20.6925C17.6812 20.5575 16.77 20.385 15.9 20.175L16.2375 18.825C17.5125 19.125 18.78 19.3387 20.04 19.4662C21.3 19.5938 22.62 19.6575 24 19.6575C25.38 19.6575 26.7 19.5938 27.96 19.4662C29.22 19.3387 30.4875 19.125 31.7625 18.825L32.1 20.175C31.23 20.385 30.3187 20.5575 29.3662 20.6925C28.4137 20.8275 27.4275 20.9325 26.4075 21.0075V33H25.0575V27.15H22.9425V33H21.5925Z" fill="#1e1e1e"/>
|
<path d="M24 18.285C23.55 18.285 23.1637 18.1237 22.8412 17.8012C22.5187 17.4788 22.3575 17.0925 22.3575 16.6425C22.3575 16.1925 22.5187 15.8062 22.8412 15.4837C23.1637 15.1612 23.55 15 24 15C24.45 15 24.8362 15.1612 25.1587 15.4837C25.4812 15.8062 25.6425 16.1925 25.6425 16.6425C25.6425 17.0925 25.4812 17.4788 25.1587 17.8012C24.8362 18.1237 24.45 18.285 24 18.285ZM21.5925 33V21.0075C20.5725 20.9325 19.5862 20.8275 18.6337 20.6925C17.6812 20.5575 16.77 20.385 15.9 20.175L16.2375 18.825C17.5125 19.125 18.78 19.3387 20.04 19.4662C21.3 19.5938 22.62 19.6575 24 19.6575C25.38 19.6575 26.7 19.5938 27.96 19.4662C29.22 19.3387 30.4875 19.125 31.7625 18.825L32.1 20.175C31.23 20.385 30.3187 20.5575 29.3662 20.6925C28.4137 20.8275 27.4275 20.9325 26.4075 21.0075V33H25.0575V27.15H22.9425V33H21.5925Z" fill="#1e1e1e"/>
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
<h3 style="margin-top:calc(var(--gap) * 0.75);margin-bottom:calc(var(--gap) * 0.5)"><?php _e( 'Accessibility improvements' ); ?></h3>
|
<h3 style="margin-top:calc(var(--gap) * 0.75);margin-bottom:calc(var(--gap) * 0.5)"><?php _e( 'Accessibility improvements' ); ?></h3>
|
||||||
<p><?php _e( 'This release includes more than 65 accessibility improvements across the platform, making it more accessible than ever. This release adds fixes to contrast settings, cursor focus, submenus, and positioning of elements, among many others, that help improve the WordPress experience for everyone.' ); ?></p>
|
<p><?php _e( 'This release includes more than 65 accessibility improvements across the platform, making it more accessible than ever. This release adds fixes to contrast settings, cursor focus, submenus, and positioning of elements, among many others, that help improve the WordPress experience for everyone.' ); ?></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr />
|
<hr />
|
||||||
|
|
||||||
<div class="about__section has-3-columns">
|
<div class="about__section has-3-columns">
|
||||||
<div class="column about__image is-vertically-aligned-top">
|
<div class="column about__image is-vertically-aligned-top">
|
||||||
<img src="<?php echo esc_url( admin_url( 'images/about-release-badge.svg?ver=6.5' ) ); ?>" alt="" height="280" width="280" />
|
<img src="<?php echo esc_url( admin_url( 'images/about-release-badge.svg?ver=6.5' ) ); ?>" alt="" height="280" width="280" />
|
||||||
</div>
|
</div>
|
||||||
<div class="column is-vertically-aligned-center" style="grid-column-end:span 2">
|
<div class="column is-vertically-aligned-center" style="grid-column-end:span 2">
|
||||||
<h3>
|
<h3>
|
||||||
<?php
|
<?php
|
||||||
printf(
|
printf(
|
||||||
/* translators: %s: Version number. */
|
/* translators: %s: Version number. */
|
||||||
__( 'Learn more about WordPress %s' ),
|
__( 'Learn more about WordPress %s' ),
|
||||||
$display_version
|
$display_version
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
</h3>
|
</h3>
|
||||||
<p>
|
<p>
|
||||||
<?php
|
<?php
|
||||||
printf(
|
printf(
|
||||||
/* translators: 1: Learn WordPress link, 2: Workshops link. */
|
/* translators: 1: Learn WordPress link, 2: Workshops link. */
|
||||||
__( '<a href="%1$s">Learn WordPress</a> is a free resource for new and experienced WordPress users. Learn is stocked with how-to videos on using various features in WordPress, <a href="%2$s">interactive workshops</a> for exploring topics in-depth, and lesson plans for diving deep into specific areas of WordPress.' ),
|
__( '<a href="%1$s">Learn WordPress</a> is a free resource for new and experienced WordPress users. Learn is stocked with how-to videos on using various features in WordPress, <a href="%2$s">interactive workshops</a> for exploring topics in-depth, and lesson plans for diving deep into specific areas of WordPress.' ),
|
||||||
'https://learn.wordpress.org/',
|
'https://learn.wordpress.org/',
|
||||||
'https://learn.wordpress.org/online-workshops/'
|
'https://learn.wordpress.org/online-workshops/'
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="about__section has-2-columns">
|
<div class="about__section has-2-columns">
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<div class="about__image">
|
<div class="about__image">
|
||||||
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
|
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
|
||||||
<rect width="48" height="48" rx="4" fill="#ededed"/>
|
<rect width="48" height="48" rx="4" fill="#ededed"/>
|
||||||
<path d="M23 34v-4h-5l-2.293-2.293a1 1 0 0 1 0-1.414L18 24h5v-2h-7v-6h7v-2h2v2h5l2.293 2.293a1 1 0 0 1 0 1.414L30 22h-5v2h7v6h-7v4h-2Zm-5-14h11.175l.646-.646a.5.5 0 0 0 0-.708L29.175 18H18v2Zm.825 8H30v-2H18.825l-.646.646a.5.5 0 0 0 0 .708l.646.646Z" fill="#1e1e1e"/>
|
<path d="M23 34v-4h-5l-2.293-2.293a1 1 0 0 1 0-1.414L18 24h5v-2h-7v-6h7v-2h2v2h5l2.293 2.293a1 1 0 0 1 0 1.414L30 22h-5v2h7v6h-7v4h-2Zm-5-14h11.175l.646-.646a.5.5 0 0 0 0-.708L29.175 18H18v2Zm.825 8H30v-2H18.825l-.646.646a.5.5 0 0 0 0 .708l.646.646Z" fill="#1e1e1e"/>
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
<p style="margin-top:calc(var(--gap) / 2);">
|
<p style="margin-top:calc(var(--gap) / 2);">
|
||||||
<?php
|
<?php
|
||||||
printf(
|
printf(
|
||||||
/* translators: 1: WordPress Field Guide link, 2: WordPress version number. */
|
/* translators: 1: WordPress Field Guide link, 2: WordPress version number. */
|
||||||
__( 'Explore the <a href="%1$s">WordPress %2$s Field Guide</a>. Learn about the changes in this release with detailed developer notes to help you build with WordPress.' ),
|
__( 'Explore the <a href="%1$s">WordPress %2$s Field Guide</a>. Learn about the changes in this release with detailed developer notes to help you build with WordPress.' ),
|
||||||
esc_url( __( 'https://make.wordpress.org/core/wordpress-6-5-field-guide/' ) ),
|
esc_url( __( 'https://make.wordpress.org/core/wordpress-6-5-field-guide/' ) ),
|
||||||
'6.5'
|
'6.5'
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<div class="about__image">
|
<div class="about__image">
|
||||||
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
|
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
|
||||||
<rect width="48" height="48" rx="4" fill="#ededed"/>
|
<rect width="48" height="48" rx="4" fill="#ededed"/>
|
||||||
<path d="M28 19.75h-8v1.5h8v-1.5ZM20 23h8v1.5h-8V23ZM26 26.25h-6v1.5h6v-1.5Z" fill="#151515"/>
|
<path d="M28 19.75h-8v1.5h8v-1.5ZM20 23h8v1.5h-8V23ZM26 26.25h-6v1.5h6v-1.5Z" fill="#151515"/>
|
||||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M29 16H19a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V18a2 2 0 0 0-2-2Zm-10 1.5h10a.5.5 0 0 1 .5.5v12a.5.5 0 0 1-.5.5H19a.5.5 0 0 1-.5-.5V18a.5.5 0 0 1 .5-.5Z" fill="#1e1e1e"/>
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M29 16H19a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V18a2 2 0 0 0-2-2Zm-10 1.5h10a.5.5 0 0 1 .5.5v12a.5.5 0 0 1-.5.5H19a.5.5 0 0 1-.5-.5V18a.5.5 0 0 1 .5-.5Z" fill="#1e1e1e"/>
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
<p style="margin-top:calc(var(--gap) / 2);">
|
<p style="margin-top:calc(var(--gap) / 2);">
|
||||||
<?php
|
<?php
|
||||||
printf(
|
printf(
|
||||||
/* translators: 1: WordPress Release Notes link, 2: WordPress version number. */
|
/* translators: 1: WordPress Release Notes link, 2: WordPress version number. */
|
||||||
__( '<a href="%1$s">Read the WordPress %2$s Release Notes</a> for information on installation, enhancements, fixed issues, release contributors, learning resources, and the list of file changes.' ),
|
__( '<a href="%1$s">Read the WordPress %2$s Release Notes</a> for information on installation, enhancements, fixed issues, release contributors, learning resources, and the list of file changes.' ),
|
||||||
sprintf(
|
sprintf(
|
||||||
/* translators: %s: WordPress version number. */
|
/* translators: %s: WordPress version number. */
|
||||||
esc_url( __( 'https://wordpress.org/documentation/wordpress-version/version-%s/' ) ),
|
esc_url( __( 'https://wordpress.org/documentation/wordpress-version/version-%s/' ) ),
|
||||||
'6-5'
|
'6-5'
|
||||||
),
|
),
|
||||||
'6.5'
|
'6.5'
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr class="is-large" />
|
<hr class="is-large" />
|
||||||
|
|
||||||
<div class="return-to-dashboard">
|
<div class="return-to-dashboard">
|
||||||
<?php
|
<?php
|
||||||
if ( isset( $_GET['updated'] ) && current_user_can( 'update_core' ) ) {
|
if ( isset( $_GET['updated'] ) && current_user_can( 'update_core' ) ) {
|
||||||
printf(
|
printf(
|
||||||
'<a href="%1$s">%2$s</a> | ',
|
'<a href="%1$s">%2$s</a> | ',
|
||||||
esc_url( self_admin_url( 'update-core.php' ) ),
|
esc_url( self_admin_url( 'update-core.php' ) ),
|
||||||
is_multisite() ? __( 'Go to Updates' ) : __( 'Go to Dashboard → Updates' )
|
is_multisite() ? __( 'Go to Updates' ) : __( 'Go to Dashboard → Updates' )
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf(
|
printf(
|
||||||
'<a href="%1$s">%2$s</a>',
|
'<a href="%1$s">%2$s</a>',
|
||||||
esc_url( self_admin_url() ),
|
esc_url( self_admin_url() ),
|
||||||
is_blog_admin() ? __( 'Go to Dashboard → Home' ) : __( 'Go to Dashboard' )
|
is_blog_admin() ? __( 'Go to Dashboard → Home' ) : __( 'Go to Dashboard' )
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php require_once ABSPATH . 'wp-admin/admin-footer.php'; ?>
|
<?php require_once ABSPATH . 'wp-admin/admin-footer.php'; ?>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
// These are strings we may use to describe maintenance/security releases, where we aim for no new strings.
|
// These are strings we may use to describe maintenance/security releases, where we aim for no new strings.
|
||||||
return;
|
return;
|
||||||
|
|
||||||
__( 'Maintenance Release' );
|
__( 'Maintenance Release' );
|
||||||
__( 'Maintenance Releases' );
|
__( 'Maintenance Releases' );
|
||||||
|
|
||||||
__( 'Security Release' );
|
__( 'Security Release' );
|
||||||
__( 'Security Releases' );
|
__( 'Security Releases' );
|
||||||
|
|
||||||
__( 'Maintenance and Security Release' );
|
__( 'Maintenance and Security Release' );
|
||||||
__( 'Maintenance and Security Releases' );
|
__( 'Maintenance and Security Releases' );
|
||||||
|
|
||||||
/* translators: %s: WordPress version number. */
|
/* translators: %s: WordPress version number. */
|
||||||
__( '<strong>Version %s</strong> addressed one security issue.' );
|
__( '<strong>Version %s</strong> addressed one security issue.' );
|
||||||
/* translators: %s: WordPress version number. */
|
/* translators: %s: WordPress version number. */
|
||||||
__( '<strong>Version %s</strong> addressed some security issues.' );
|
__( '<strong>Version %s</strong> addressed some security issues.' );
|
||||||
|
|
||||||
/* translators: 1: WordPress version number, 2: Plural number of bugs. */
|
/* translators: 1: WordPress version number, 2: Plural number of bugs. */
|
||||||
_n_noop(
|
_n_noop(
|
||||||
'<strong>Version %1$s</strong> addressed %2$s bug.',
|
'<strong>Version %1$s</strong> addressed %2$s bug.',
|
||||||
'<strong>Version %1$s</strong> addressed %2$s bugs.'
|
'<strong>Version %1$s</strong> addressed %2$s bugs.'
|
||||||
);
|
);
|
||||||
|
|
||||||
/* translators: 1: WordPress version number, 2: Plural number of bugs. Singular security issue. */
|
/* translators: 1: WordPress version number, 2: Plural number of bugs. Singular security issue. */
|
||||||
_n_noop(
|
_n_noop(
|
||||||
'<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bug.',
|
'<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bug.',
|
||||||
'<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bugs.'
|
'<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bugs.'
|
||||||
);
|
);
|
||||||
|
|
||||||
/* translators: 1: WordPress version number, 2: Plural number of bugs. More than one security issue. */
|
/* translators: 1: WordPress version number, 2: Plural number of bugs. More than one security issue. */
|
||||||
_n_noop(
|
_n_noop(
|
||||||
'<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bug.',
|
'<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bug.',
|
||||||
'<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bugs.'
|
'<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bugs.'
|
||||||
);
|
);
|
||||||
|
|
||||||
/* translators: %s: Documentation URL. */
|
/* translators: %s: Documentation URL. */
|
||||||
__( 'For more information, see <a href="%s">the release notes</a>.' );
|
__( 'For more information, see <a href="%s">the release notes</a>.' );
|
||||||
|
|
||||||
/* translators: 1: WordPress version number, 2: Link to update WordPress */
|
/* translators: 1: WordPress version number, 2: Link to update WordPress */
|
||||||
__( 'Important! Your version of WordPress (%1$s) is no longer supported, you will not receive any security updates for your website. To keep your site secure, please <a href="%2$s">update to the latest version of WordPress</a>.' );
|
__( 'Important! Your version of WordPress (%1$s) is no longer supported, you will not receive any security updates for your website. To keep your site secure, please <a href="%2$s">update to the latest version of WordPress</a>.' );
|
||||||
|
|
||||||
/* translators: 1: WordPress version number, 2: Link to update WordPress */
|
/* translators: 1: WordPress version number, 2: Link to update WordPress */
|
||||||
__( 'Important! Your version of WordPress (%1$s) will stop receiving security updates in the near future. To keep your site secure, please <a href="%2$s">update to the latest version of WordPress</a>.' );
|
__( 'Important! Your version of WordPress (%1$s) will stop receiving security updates in the near future. To keep your site secure, please <a href="%2$s">update to the latest version of WordPress</a>.' );
|
||||||
|
|
||||||
/* translators: %s: The major version of WordPress for this branch. */
|
/* translators: %s: The major version of WordPress for this branch. */
|
||||||
__( 'This is the final release of WordPress %s' );
|
__( 'This is the final release of WordPress %s' );
|
||||||
|
|
||||||
/* translators: The localized WordPress download URL. */
|
/* translators: The localized WordPress download URL. */
|
||||||
__( 'https://wordpress.org/download/' );
|
__( 'https://wordpress.org/download/' );
|
||||||
|
|||||||
@@ -1,211 +1,211 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* WordPress Ajax Process Execution
|
* WordPress Ajax Process Execution
|
||||||
*
|
*
|
||||||
* @package WordPress
|
* @package WordPress
|
||||||
* @subpackage Administration
|
* @subpackage Administration
|
||||||
*
|
*
|
||||||
* @link https://codex.wordpress.org/AJAX_in_Plugins
|
* @link https://codex.wordpress.org/AJAX_in_Plugins
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Executing Ajax process.
|
* Executing Ajax process.
|
||||||
*
|
*
|
||||||
* @since 2.1.0
|
* @since 2.1.0
|
||||||
*/
|
*/
|
||||||
define( 'DOING_AJAX', true );
|
define( 'DOING_AJAX', true );
|
||||||
if ( ! defined( 'WP_ADMIN' ) ) {
|
if ( ! defined( 'WP_ADMIN' ) ) {
|
||||||
define( 'WP_ADMIN', true );
|
define( 'WP_ADMIN', true );
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Load WordPress Bootstrap */
|
/** Load WordPress Bootstrap */
|
||||||
require_once dirname( __DIR__ ) . '/wp-load.php';
|
require_once dirname( __DIR__ ) . '/wp-load.php';
|
||||||
|
|
||||||
/** Allow for cross-domain requests (from the front end). */
|
/** Allow for cross-domain requests (from the front end). */
|
||||||
send_origin_headers();
|
send_origin_headers();
|
||||||
|
|
||||||
header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
|
header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
|
||||||
header( 'X-Robots-Tag: noindex' );
|
header( 'X-Robots-Tag: noindex' );
|
||||||
|
|
||||||
// Require a valid action parameter.
|
// Require a valid action parameter.
|
||||||
if ( empty( $_REQUEST['action'] ) || ! is_scalar( $_REQUEST['action'] ) ) {
|
if ( empty( $_REQUEST['action'] ) || ! is_scalar( $_REQUEST['action'] ) ) {
|
||||||
wp_die( '0', 400 );
|
wp_die( '0', 400 );
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Load WordPress Administration APIs */
|
/** Load WordPress Administration APIs */
|
||||||
require_once ABSPATH . 'wp-admin/includes/admin.php';
|
require_once ABSPATH . 'wp-admin/includes/admin.php';
|
||||||
|
|
||||||
/** Load Ajax Handlers for WordPress Core */
|
/** Load Ajax Handlers for WordPress Core */
|
||||||
require_once ABSPATH . 'wp-admin/includes/ajax-actions.php';
|
require_once ABSPATH . 'wp-admin/includes/ajax-actions.php';
|
||||||
|
|
||||||
send_nosniff_header();
|
send_nosniff_header();
|
||||||
nocache_headers();
|
nocache_headers();
|
||||||
|
|
||||||
/** This action is documented in wp-admin/admin.php */
|
/** This action is documented in wp-admin/admin.php */
|
||||||
do_action( 'admin_init' );
|
do_action( 'admin_init' );
|
||||||
|
|
||||||
$core_actions_get = array(
|
$core_actions_get = array(
|
||||||
'fetch-list',
|
'fetch-list',
|
||||||
'ajax-tag-search',
|
'ajax-tag-search',
|
||||||
'wp-compression-test',
|
'wp-compression-test',
|
||||||
'imgedit-preview',
|
'imgedit-preview',
|
||||||
'oembed-cache',
|
'oembed-cache',
|
||||||
'autocomplete-user',
|
'autocomplete-user',
|
||||||
'dashboard-widgets',
|
'dashboard-widgets',
|
||||||
'logged-in',
|
'logged-in',
|
||||||
'rest-nonce',
|
'rest-nonce',
|
||||||
);
|
);
|
||||||
|
|
||||||
$core_actions_post = array(
|
$core_actions_post = array(
|
||||||
'oembed-cache',
|
'oembed-cache',
|
||||||
'image-editor',
|
'image-editor',
|
||||||
'delete-comment',
|
'delete-comment',
|
||||||
'delete-tag',
|
'delete-tag',
|
||||||
'delete-link',
|
'delete-link',
|
||||||
'delete-meta',
|
'delete-meta',
|
||||||
'delete-post',
|
'delete-post',
|
||||||
'trash-post',
|
'trash-post',
|
||||||
'untrash-post',
|
'untrash-post',
|
||||||
'delete-page',
|
'delete-page',
|
||||||
'dim-comment',
|
'dim-comment',
|
||||||
'add-link-category',
|
'add-link-category',
|
||||||
'add-tag',
|
'add-tag',
|
||||||
'get-tagcloud',
|
'get-tagcloud',
|
||||||
'get-comments',
|
'get-comments',
|
||||||
'replyto-comment',
|
'replyto-comment',
|
||||||
'edit-comment',
|
'edit-comment',
|
||||||
'add-menu-item',
|
'add-menu-item',
|
||||||
'add-meta',
|
'add-meta',
|
||||||
'add-user',
|
'add-user',
|
||||||
'closed-postboxes',
|
'closed-postboxes',
|
||||||
'hidden-columns',
|
'hidden-columns',
|
||||||
'update-welcome-panel',
|
'update-welcome-panel',
|
||||||
'menu-get-metabox',
|
'menu-get-metabox',
|
||||||
'wp-link-ajax',
|
'wp-link-ajax',
|
||||||
'menu-locations-save',
|
'menu-locations-save',
|
||||||
'menu-quick-search',
|
'menu-quick-search',
|
||||||
'meta-box-order',
|
'meta-box-order',
|
||||||
'get-permalink',
|
'get-permalink',
|
||||||
'sample-permalink',
|
'sample-permalink',
|
||||||
'inline-save',
|
'inline-save',
|
||||||
'inline-save-tax',
|
'inline-save-tax',
|
||||||
'find_posts',
|
'find_posts',
|
||||||
'widgets-order',
|
'widgets-order',
|
||||||
'save-widget',
|
'save-widget',
|
||||||
'delete-inactive-widgets',
|
'delete-inactive-widgets',
|
||||||
'set-post-thumbnail',
|
'set-post-thumbnail',
|
||||||
'date_format',
|
'date_format',
|
||||||
'time_format',
|
'time_format',
|
||||||
'wp-remove-post-lock',
|
'wp-remove-post-lock',
|
||||||
'dismiss-wp-pointer',
|
'dismiss-wp-pointer',
|
||||||
'upload-attachment',
|
'upload-attachment',
|
||||||
'get-attachment',
|
'get-attachment',
|
||||||
'query-attachments',
|
'query-attachments',
|
||||||
'save-attachment',
|
'save-attachment',
|
||||||
'save-attachment-compat',
|
'save-attachment-compat',
|
||||||
'send-link-to-editor',
|
'send-link-to-editor',
|
||||||
'send-attachment-to-editor',
|
'send-attachment-to-editor',
|
||||||
'save-attachment-order',
|
'save-attachment-order',
|
||||||
'media-create-image-subsizes',
|
'media-create-image-subsizes',
|
||||||
'heartbeat',
|
'heartbeat',
|
||||||
'get-revision-diffs',
|
'get-revision-diffs',
|
||||||
'save-user-color-scheme',
|
'save-user-color-scheme',
|
||||||
'update-widget',
|
'update-widget',
|
||||||
'query-themes',
|
'query-themes',
|
||||||
'parse-embed',
|
'parse-embed',
|
||||||
'set-attachment-thumbnail',
|
'set-attachment-thumbnail',
|
||||||
'parse-media-shortcode',
|
'parse-media-shortcode',
|
||||||
'destroy-sessions',
|
'destroy-sessions',
|
||||||
'install-plugin',
|
'install-plugin',
|
||||||
'activate-plugin',
|
'activate-plugin',
|
||||||
'update-plugin',
|
'update-plugin',
|
||||||
'crop-image',
|
'crop-image',
|
||||||
'generate-password',
|
'generate-password',
|
||||||
'save-wporg-username',
|
'save-wporg-username',
|
||||||
'delete-plugin',
|
'delete-plugin',
|
||||||
'search-plugins',
|
'search-plugins',
|
||||||
'search-install-plugins',
|
'search-install-plugins',
|
||||||
'activate-plugin',
|
'activate-plugin',
|
||||||
'update-theme',
|
'update-theme',
|
||||||
'delete-theme',
|
'delete-theme',
|
||||||
'install-theme',
|
'install-theme',
|
||||||
'get-post-thumbnail-html',
|
'get-post-thumbnail-html',
|
||||||
'get-community-events',
|
'get-community-events',
|
||||||
'edit-theme-plugin-file',
|
'edit-theme-plugin-file',
|
||||||
'wp-privacy-export-personal-data',
|
'wp-privacy-export-personal-data',
|
||||||
'wp-privacy-erase-personal-data',
|
'wp-privacy-erase-personal-data',
|
||||||
'health-check-site-status-result',
|
'health-check-site-status-result',
|
||||||
'health-check-dotorg-communication',
|
'health-check-dotorg-communication',
|
||||||
'health-check-is-in-debug-mode',
|
'health-check-is-in-debug-mode',
|
||||||
'health-check-background-updates',
|
'health-check-background-updates',
|
||||||
'health-check-loopback-requests',
|
'health-check-loopback-requests',
|
||||||
'health-check-get-sizes',
|
'health-check-get-sizes',
|
||||||
'toggle-auto-updates',
|
'toggle-auto-updates',
|
||||||
'send-password-reset',
|
'send-password-reset',
|
||||||
);
|
);
|
||||||
|
|
||||||
// Deprecated.
|
// Deprecated.
|
||||||
$core_actions_post_deprecated = array(
|
$core_actions_post_deprecated = array(
|
||||||
'wp-fullscreen-save-post',
|
'wp-fullscreen-save-post',
|
||||||
'press-this-save-post',
|
'press-this-save-post',
|
||||||
'press-this-add-category',
|
'press-this-add-category',
|
||||||
'health-check-dotorg-communication',
|
'health-check-dotorg-communication',
|
||||||
'health-check-is-in-debug-mode',
|
'health-check-is-in-debug-mode',
|
||||||
'health-check-background-updates',
|
'health-check-background-updates',
|
||||||
'health-check-loopback-requests',
|
'health-check-loopback-requests',
|
||||||
);
|
);
|
||||||
|
|
||||||
$core_actions_post = array_merge( $core_actions_post, $core_actions_post_deprecated );
|
$core_actions_post = array_merge( $core_actions_post, $core_actions_post_deprecated );
|
||||||
|
|
||||||
// Register core Ajax calls.
|
// Register core Ajax calls.
|
||||||
if ( ! empty( $_GET['action'] ) && in_array( $_GET['action'], $core_actions_get, true ) ) {
|
if ( ! empty( $_GET['action'] ) && in_array( $_GET['action'], $core_actions_get, true ) ) {
|
||||||
add_action( 'wp_ajax_' . $_GET['action'], 'wp_ajax_' . str_replace( '-', '_', $_GET['action'] ), 1 );
|
add_action( 'wp_ajax_' . $_GET['action'], 'wp_ajax_' . str_replace( '-', '_', $_GET['action'] ), 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! empty( $_POST['action'] ) && in_array( $_POST['action'], $core_actions_post, true ) ) {
|
if ( ! empty( $_POST['action'] ) && in_array( $_POST['action'], $core_actions_post, true ) ) {
|
||||||
add_action( 'wp_ajax_' . $_POST['action'], 'wp_ajax_' . str_replace( '-', '_', $_POST['action'] ), 1 );
|
add_action( 'wp_ajax_' . $_POST['action'], 'wp_ajax_' . str_replace( '-', '_', $_POST['action'] ), 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
add_action( 'wp_ajax_nopriv_generate-password', 'wp_ajax_nopriv_generate_password' );
|
add_action( 'wp_ajax_nopriv_generate-password', 'wp_ajax_nopriv_generate_password' );
|
||||||
|
|
||||||
add_action( 'wp_ajax_nopriv_heartbeat', 'wp_ajax_nopriv_heartbeat', 1 );
|
add_action( 'wp_ajax_nopriv_heartbeat', 'wp_ajax_nopriv_heartbeat', 1 );
|
||||||
|
|
||||||
// Register Plugin Dependencies Ajax calls.
|
// Register Plugin Dependencies Ajax calls.
|
||||||
add_action( 'wp_ajax_check_plugin_dependencies', array( 'WP_Plugin_Dependencies', 'check_plugin_dependencies_during_ajax' ) );
|
add_action( 'wp_ajax_check_plugin_dependencies', array( 'WP_Plugin_Dependencies', 'check_plugin_dependencies_during_ajax' ) );
|
||||||
|
|
||||||
$action = $_REQUEST['action'];
|
$action = $_REQUEST['action'];
|
||||||
|
|
||||||
if ( is_user_logged_in() ) {
|
if ( is_user_logged_in() ) {
|
||||||
// If no action is registered, return a Bad Request response.
|
// If no action is registered, return a Bad Request response.
|
||||||
if ( ! has_action( "wp_ajax_{$action}" ) ) {
|
if ( ! has_action( "wp_ajax_{$action}" ) ) {
|
||||||
wp_die( '0', 400 );
|
wp_die( '0', 400 );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires authenticated Ajax actions for logged-in users.
|
* Fires authenticated Ajax actions for logged-in users.
|
||||||
*
|
*
|
||||||
* The dynamic portion of the hook name, `$action`, refers
|
* The dynamic portion of the hook name, `$action`, refers
|
||||||
* to the name of the Ajax action callback being fired.
|
* to the name of the Ajax action callback being fired.
|
||||||
*
|
*
|
||||||
* @since 2.1.0
|
* @since 2.1.0
|
||||||
*/
|
*/
|
||||||
do_action( "wp_ajax_{$action}" );
|
do_action( "wp_ajax_{$action}" );
|
||||||
} else {
|
} else {
|
||||||
// If no action is registered, return a Bad Request response.
|
// If no action is registered, return a Bad Request response.
|
||||||
if ( ! has_action( "wp_ajax_nopriv_{$action}" ) ) {
|
if ( ! has_action( "wp_ajax_nopriv_{$action}" ) ) {
|
||||||
wp_die( '0', 400 );
|
wp_die( '0', 400 );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires non-authenticated Ajax actions for logged-out users.
|
* Fires non-authenticated Ajax actions for logged-out users.
|
||||||
*
|
*
|
||||||
* The dynamic portion of the hook name, `$action`, refers
|
* The dynamic portion of the hook name, `$action`, refers
|
||||||
* to the name of the Ajax action callback being fired.
|
* to the name of the Ajax action callback being fired.
|
||||||
*
|
*
|
||||||
* @since 2.8.0
|
* @since 2.8.0
|
||||||
*/
|
*/
|
||||||
do_action( "wp_ajax_nopriv_{$action}" );
|
do_action( "wp_ajax_nopriv_{$action}" );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Default status.
|
// Default status.
|
||||||
wp_die( '0' );
|
wp_die( '0' );
|
||||||
|
|||||||
@@ -1,119 +1,119 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* WordPress Administration Template Footer
|
* WordPress Administration Template Footer
|
||||||
*
|
*
|
||||||
* @package WordPress
|
* @package WordPress
|
||||||
* @subpackage Administration
|
* @subpackage Administration
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Don't load directly.
|
// Don't load directly.
|
||||||
if ( ! defined( 'ABSPATH' ) ) {
|
if ( ! defined( 'ABSPATH' ) ) {
|
||||||
die( '-1' );
|
die( '-1' );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @global string $hook_suffix
|
* @global string $hook_suffix
|
||||||
*/
|
*/
|
||||||
global $hook_suffix;
|
global $hook_suffix;
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div class="clear"></div></div><!-- wpbody-content -->
|
<div class="clear"></div></div><!-- wpbody-content -->
|
||||||
<div class="clear"></div></div><!-- wpbody -->
|
<div class="clear"></div></div><!-- wpbody -->
|
||||||
<div class="clear"></div></div><!-- wpcontent -->
|
<div class="clear"></div></div><!-- wpcontent -->
|
||||||
|
|
||||||
<div id="wpfooter" role="contentinfo">
|
<div id="wpfooter" role="contentinfo">
|
||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Fires after the opening tag for the admin footer.
|
* Fires after the opening tag for the admin footer.
|
||||||
*
|
*
|
||||||
* @since 2.5.0
|
* @since 2.5.0
|
||||||
*/
|
*/
|
||||||
do_action( 'in_admin_footer' );
|
do_action( 'in_admin_footer' );
|
||||||
?>
|
?>
|
||||||
<p id="footer-left" class="alignleft">
|
<p id="footer-left" class="alignleft">
|
||||||
<?php
|
<?php
|
||||||
$text = sprintf(
|
$text = sprintf(
|
||||||
/* translators: %s: https://wordpress.org/ */
|
/* translators: %s: https://wordpress.org/ */
|
||||||
__( 'Thank you for creating with <a href="%s">WordPress</a>.' ),
|
__( 'Thank you for creating with <a href="%s">WordPress</a>.' ),
|
||||||
__( 'https://wordpress.org/' )
|
__( 'https://wordpress.org/' )
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filters the "Thank you" text displayed in the admin footer.
|
* Filters the "Thank you" text displayed in the admin footer.
|
||||||
*
|
*
|
||||||
* @since 2.8.0
|
* @since 2.8.0
|
||||||
*
|
*
|
||||||
* @param string $text The content that will be printed.
|
* @param string $text The content that will be printed.
|
||||||
*/
|
*/
|
||||||
echo apply_filters( 'admin_footer_text', '<span id="footer-thankyou">' . $text . '</span>' );
|
echo apply_filters( 'admin_footer_text', '<span id="footer-thankyou">' . $text . '</span>' );
|
||||||
?>
|
?>
|
||||||
</p>
|
</p>
|
||||||
<p id="footer-upgrade" class="alignright">
|
<p id="footer-upgrade" class="alignright">
|
||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Filters the version/update text displayed in the admin footer.
|
* Filters the version/update text displayed in the admin footer.
|
||||||
*
|
*
|
||||||
* WordPress prints the current version and update information,
|
* WordPress prints the current version and update information,
|
||||||
* using core_update_footer() at priority 10.
|
* using core_update_footer() at priority 10.
|
||||||
*
|
*
|
||||||
* @since 2.3.0
|
* @since 2.3.0
|
||||||
*
|
*
|
||||||
* @see core_update_footer()
|
* @see core_update_footer()
|
||||||
*
|
*
|
||||||
* @param string $content The content that will be printed.
|
* @param string $content The content that will be printed.
|
||||||
*/
|
*/
|
||||||
echo apply_filters( 'update_footer', '' );
|
echo apply_filters( 'update_footer', '' );
|
||||||
?>
|
?>
|
||||||
</p>
|
</p>
|
||||||
<div class="clear"></div>
|
<div class="clear"></div>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Prints scripts or data before the default footer scripts.
|
* Prints scripts or data before the default footer scripts.
|
||||||
*
|
*
|
||||||
* @since 1.2.0
|
* @since 1.2.0
|
||||||
*
|
*
|
||||||
* @param string $data The data to print.
|
* @param string $data The data to print.
|
||||||
*/
|
*/
|
||||||
do_action( 'admin_footer', '' );
|
do_action( 'admin_footer', '' );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prints scripts and data queued for the footer.
|
* Prints scripts and data queued for the footer.
|
||||||
*
|
*
|
||||||
* The dynamic portion of the hook name, `$hook_suffix`,
|
* The dynamic portion of the hook name, `$hook_suffix`,
|
||||||
* refers to the global hook suffix of the current page.
|
* refers to the global hook suffix of the current page.
|
||||||
*
|
*
|
||||||
* @since 4.6.0
|
* @since 4.6.0
|
||||||
*/
|
*/
|
||||||
do_action( "admin_print_footer_scripts-{$hook_suffix}" ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
do_action( "admin_print_footer_scripts-{$hook_suffix}" ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prints any scripts and data queued for the footer.
|
* Prints any scripts and data queued for the footer.
|
||||||
*
|
*
|
||||||
* @since 2.8.0
|
* @since 2.8.0
|
||||||
*/
|
*/
|
||||||
do_action( 'admin_print_footer_scripts' );
|
do_action( 'admin_print_footer_scripts' );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prints scripts or data after the default footer scripts.
|
* Prints scripts or data after the default footer scripts.
|
||||||
*
|
*
|
||||||
* The dynamic portion of the hook name, `$hook_suffix`,
|
* The dynamic portion of the hook name, `$hook_suffix`,
|
||||||
* refers to the global hook suffix of the current page.
|
* refers to the global hook suffix of the current page.
|
||||||
*
|
*
|
||||||
* @since 2.8.0
|
* @since 2.8.0
|
||||||
*/
|
*/
|
||||||
do_action( "admin_footer-{$hook_suffix}" ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
do_action( "admin_footer-{$hook_suffix}" ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
||||||
|
|
||||||
// get_site_option() won't exist when auto upgrading from <= 2.7.
|
// get_site_option() won't exist when auto upgrading from <= 2.7.
|
||||||
if ( function_exists( 'get_site_option' )
|
if ( function_exists( 'get_site_option' )
|
||||||
&& false === get_site_option( 'can_compress_scripts' )
|
&& false === get_site_option( 'can_compress_scripts' )
|
||||||
) {
|
) {
|
||||||
compression_test();
|
compression_test();
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div class="clear"></div></div><!-- wpwrap -->
|
<div class="clear"></div></div><!-- wpwrap -->
|
||||||
<script type="text/javascript">if(typeof wpOnload==='function')wpOnload();</script>
|
<script type="text/javascript">if(typeof wpOnload==='function')wpOnload();</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Administration Functions
|
* Administration Functions
|
||||||
*
|
*
|
||||||
* This file is deprecated, use 'wp-admin/includes/admin.php' instead.
|
* This file is deprecated, use 'wp-admin/includes/admin.php' instead.
|
||||||
*
|
*
|
||||||
* @deprecated 2.5.0
|
* @deprecated 2.5.0
|
||||||
* @package WordPress
|
* @package WordPress
|
||||||
* @subpackage Administration
|
* @subpackage Administration
|
||||||
*/
|
*/
|
||||||
|
|
||||||
_deprecated_file( basename( __FILE__ ), '2.5.0', 'wp-admin/includes/admin.php' );
|
_deprecated_file( basename( __FILE__ ), '2.5.0', 'wp-admin/includes/admin.php' );
|
||||||
|
|
||||||
/** WordPress Administration API: Includes all Administration functions. */
|
/** WordPress Administration API: Includes all Administration functions. */
|
||||||
require_once ABSPATH . 'wp-admin/includes/admin.php';
|
require_once ABSPATH . 'wp-admin/includes/admin.php';
|
||||||
|
|||||||
@@ -1,315 +1,315 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* WordPress Administration Template Header
|
* WordPress Administration Template Header
|
||||||
*
|
*
|
||||||
* @package WordPress
|
* @package WordPress
|
||||||
* @subpackage Administration
|
* @subpackage Administration
|
||||||
*/
|
*/
|
||||||
|
|
||||||
header( 'Content-Type: ' . get_option( 'html_type' ) . '; charset=' . get_option( 'blog_charset' ) );
|
header( 'Content-Type: ' . get_option( 'html_type' ) . '; charset=' . get_option( 'blog_charset' ) );
|
||||||
if ( ! defined( 'WP_ADMIN' ) ) {
|
if ( ! defined( 'WP_ADMIN' ) ) {
|
||||||
require_once __DIR__ . '/admin.php';
|
require_once __DIR__ . '/admin.php';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* In case admin-header.php is included in a function.
|
* In case admin-header.php is included in a function.
|
||||||
*
|
*
|
||||||
* @global string $title
|
* @global string $title
|
||||||
* @global string $hook_suffix
|
* @global string $hook_suffix
|
||||||
* @global WP_Screen $current_screen WordPress current screen object.
|
* @global WP_Screen $current_screen WordPress current screen object.
|
||||||
* @global WP_Locale $wp_locale WordPress date and time locale object.
|
* @global WP_Locale $wp_locale WordPress date and time locale object.
|
||||||
* @global string $pagenow The filename of the current screen.
|
* @global string $pagenow The filename of the current screen.
|
||||||
* @global string $update_title
|
* @global string $update_title
|
||||||
* @global int $total_update_count
|
* @global int $total_update_count
|
||||||
* @global string $parent_file
|
* @global string $parent_file
|
||||||
* @global string $typenow The post type of the current screen.
|
* @global string $typenow The post type of the current screen.
|
||||||
*/
|
*/
|
||||||
global $title, $hook_suffix, $current_screen, $wp_locale, $pagenow,
|
global $title, $hook_suffix, $current_screen, $wp_locale, $pagenow,
|
||||||
$update_title, $total_update_count, $parent_file, $typenow;
|
$update_title, $total_update_count, $parent_file, $typenow;
|
||||||
|
|
||||||
// Catch plugins that include admin-header.php before admin.php completes.
|
// Catch plugins that include admin-header.php before admin.php completes.
|
||||||
if ( empty( $current_screen ) ) {
|
if ( empty( $current_screen ) ) {
|
||||||
set_current_screen();
|
set_current_screen();
|
||||||
}
|
}
|
||||||
|
|
||||||
get_admin_page_title();
|
get_admin_page_title();
|
||||||
$title = strip_tags( $title );
|
$title = strip_tags( $title );
|
||||||
|
|
||||||
if ( is_network_admin() ) {
|
if ( is_network_admin() ) {
|
||||||
/* translators: Network admin screen title. %s: Network title. */
|
/* translators: Network admin screen title. %s: Network title. */
|
||||||
$admin_title = sprintf( __( 'Network Admin: %s' ), get_network()->site_name );
|
$admin_title = sprintf( __( 'Network Admin: %s' ), get_network()->site_name );
|
||||||
} elseif ( is_user_admin() ) {
|
} elseif ( is_user_admin() ) {
|
||||||
/* translators: User dashboard screen title. %s: Network title. */
|
/* translators: User dashboard screen title. %s: Network title. */
|
||||||
$admin_title = sprintf( __( 'User Dashboard: %s' ), get_network()->site_name );
|
$admin_title = sprintf( __( 'User Dashboard: %s' ), get_network()->site_name );
|
||||||
} else {
|
} else {
|
||||||
$admin_title = get_bloginfo( 'name' );
|
$admin_title = get_bloginfo( 'name' );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $admin_title === $title ) {
|
if ( $admin_title === $title ) {
|
||||||
/* translators: Admin screen title. %s: Admin screen name. */
|
/* translators: Admin screen title. %s: Admin screen name. */
|
||||||
$admin_title = sprintf( __( '%s — WordPress' ), $title );
|
$admin_title = sprintf( __( '%s — WordPress' ), $title );
|
||||||
} else {
|
} else {
|
||||||
$screen_title = $title;
|
$screen_title = $title;
|
||||||
|
|
||||||
if ( 'post' === $current_screen->base && 'add' !== $current_screen->action ) {
|
if ( 'post' === $current_screen->base && 'add' !== $current_screen->action ) {
|
||||||
$post_title = get_the_title();
|
$post_title = get_the_title();
|
||||||
if ( ! empty( $post_title ) ) {
|
if ( ! empty( $post_title ) ) {
|
||||||
$post_type_obj = get_post_type_object( $typenow );
|
$post_type_obj = get_post_type_object( $typenow );
|
||||||
$screen_title = sprintf(
|
$screen_title = sprintf(
|
||||||
/* translators: Editor admin screen title. 1: "Edit item" text for the post type, 2: Post title. */
|
/* translators: Editor admin screen title. 1: "Edit item" text for the post type, 2: Post title. */
|
||||||
__( '%1$s “%2$s”' ),
|
__( '%1$s “%2$s”' ),
|
||||||
$post_type_obj->labels->edit_item,
|
$post_type_obj->labels->edit_item,
|
||||||
$post_title
|
$post_title
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* translators: Admin screen title. 1: Admin screen name, 2: Network or site name. */
|
/* translators: Admin screen title. 1: Admin screen name, 2: Network or site name. */
|
||||||
$admin_title = sprintf( __( '%1$s ‹ %2$s — WordPress' ), $screen_title, $admin_title );
|
$admin_title = sprintf( __( '%1$s ‹ %2$s — WordPress' ), $screen_title, $admin_title );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( wp_is_recovery_mode() ) {
|
if ( wp_is_recovery_mode() ) {
|
||||||
/* translators: %s: Admin screen title. */
|
/* translators: %s: Admin screen title. */
|
||||||
$admin_title = sprintf( __( 'Recovery Mode — %s' ), $admin_title );
|
$admin_title = sprintf( __( 'Recovery Mode — %s' ), $admin_title );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filters the title tag content for an admin page.
|
* Filters the title tag content for an admin page.
|
||||||
*
|
*
|
||||||
* @since 3.1.0
|
* @since 3.1.0
|
||||||
*
|
*
|
||||||
* @param string $admin_title The page title, with extra context added.
|
* @param string $admin_title The page title, with extra context added.
|
||||||
* @param string $title The original page title.
|
* @param string $title The original page title.
|
||||||
*/
|
*/
|
||||||
$admin_title = apply_filters( 'admin_title', $admin_title, $title );
|
$admin_title = apply_filters( 'admin_title', $admin_title, $title );
|
||||||
|
|
||||||
wp_user_settings();
|
wp_user_settings();
|
||||||
|
|
||||||
_wp_admin_html_begin();
|
_wp_admin_html_begin();
|
||||||
?>
|
?>
|
||||||
<title><?php echo esc_html( $admin_title ); ?></title>
|
<title><?php echo esc_html( $admin_title ); ?></title>
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
wp_enqueue_style( 'colors' );
|
wp_enqueue_style( 'colors' );
|
||||||
wp_enqueue_script( 'utils' );
|
wp_enqueue_script( 'utils' );
|
||||||
wp_enqueue_script( 'svg-painter' );
|
wp_enqueue_script( 'svg-painter' );
|
||||||
|
|
||||||
$admin_body_class = preg_replace( '/[^a-z0-9_-]+/i', '-', $hook_suffix );
|
$admin_body_class = preg_replace( '/[^a-z0-9_-]+/i', '-', $hook_suffix );
|
||||||
?>
|
?>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
addLoadEvent = function(func){if(typeof jQuery!=='undefined')jQuery(function(){func();});else if(typeof wpOnload!=='function'){wpOnload=func;}else{var oldonload=wpOnload;wpOnload=function(){oldonload();func();}}};
|
addLoadEvent = function(func){if(typeof jQuery!=='undefined')jQuery(function(){func();});else if(typeof wpOnload!=='function'){wpOnload=func;}else{var oldonload=wpOnload;wpOnload=function(){oldonload();func();}}};
|
||||||
var ajaxurl = '<?php echo esc_js( admin_url( 'admin-ajax.php', 'relative' ) ); ?>',
|
var ajaxurl = '<?php echo esc_js( admin_url( 'admin-ajax.php', 'relative' ) ); ?>',
|
||||||
pagenow = '<?php echo esc_js( $current_screen->id ); ?>',
|
pagenow = '<?php echo esc_js( $current_screen->id ); ?>',
|
||||||
typenow = '<?php echo esc_js( $current_screen->post_type ); ?>',
|
typenow = '<?php echo esc_js( $current_screen->post_type ); ?>',
|
||||||
adminpage = '<?php echo esc_js( $admin_body_class ); ?>',
|
adminpage = '<?php echo esc_js( $admin_body_class ); ?>',
|
||||||
thousandsSeparator = '<?php echo esc_js( $wp_locale->number_format['thousands_sep'] ); ?>',
|
thousandsSeparator = '<?php echo esc_js( $wp_locale->number_format['thousands_sep'] ); ?>',
|
||||||
decimalPoint = '<?php echo esc_js( $wp_locale->number_format['decimal_point'] ); ?>',
|
decimalPoint = '<?php echo esc_js( $wp_locale->number_format['decimal_point'] ); ?>',
|
||||||
isRtl = <?php echo (int) is_rtl(); ?>;
|
isRtl = <?php echo (int) is_rtl(); ?>;
|
||||||
</script>
|
</script>
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires when enqueuing scripts for all admin pages.
|
* Fires when enqueuing scripts for all admin pages.
|
||||||
*
|
*
|
||||||
* @since 2.8.0
|
* @since 2.8.0
|
||||||
*
|
*
|
||||||
* @param string $hook_suffix The current admin page.
|
* @param string $hook_suffix The current admin page.
|
||||||
*/
|
*/
|
||||||
do_action( 'admin_enqueue_scripts', $hook_suffix );
|
do_action( 'admin_enqueue_scripts', $hook_suffix );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires when styles are printed for a specific admin page based on $hook_suffix.
|
* Fires when styles are printed for a specific admin page based on $hook_suffix.
|
||||||
*
|
*
|
||||||
* @since 2.6.0
|
* @since 2.6.0
|
||||||
*/
|
*/
|
||||||
do_action( "admin_print_styles-{$hook_suffix}" ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
do_action( "admin_print_styles-{$hook_suffix}" ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires when styles are printed for all admin pages.
|
* Fires when styles are printed for all admin pages.
|
||||||
*
|
*
|
||||||
* @since 2.6.0
|
* @since 2.6.0
|
||||||
*/
|
*/
|
||||||
do_action( 'admin_print_styles' );
|
do_action( 'admin_print_styles' );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires when scripts are printed for a specific admin page based on $hook_suffix.
|
* Fires when scripts are printed for a specific admin page based on $hook_suffix.
|
||||||
*
|
*
|
||||||
* @since 2.1.0
|
* @since 2.1.0
|
||||||
*/
|
*/
|
||||||
do_action( "admin_print_scripts-{$hook_suffix}" ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
do_action( "admin_print_scripts-{$hook_suffix}" ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires when scripts are printed for all admin pages.
|
* Fires when scripts are printed for all admin pages.
|
||||||
*
|
*
|
||||||
* @since 2.1.0
|
* @since 2.1.0
|
||||||
*/
|
*/
|
||||||
do_action( 'admin_print_scripts' );
|
do_action( 'admin_print_scripts' );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires in head section for a specific admin page.
|
* Fires in head section for a specific admin page.
|
||||||
*
|
*
|
||||||
* The dynamic portion of the hook name, `$hook_suffix`, refers to the hook suffix
|
* The dynamic portion of the hook name, `$hook_suffix`, refers to the hook suffix
|
||||||
* for the admin page.
|
* for the admin page.
|
||||||
*
|
*
|
||||||
* @since 2.1.0
|
* @since 2.1.0
|
||||||
*/
|
*/
|
||||||
do_action( "admin_head-{$hook_suffix}" ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
do_action( "admin_head-{$hook_suffix}" ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires in head section for all admin pages.
|
* Fires in head section for all admin pages.
|
||||||
*
|
*
|
||||||
* @since 2.1.0
|
* @since 2.1.0
|
||||||
*/
|
*/
|
||||||
do_action( 'admin_head' );
|
do_action( 'admin_head' );
|
||||||
|
|
||||||
if ( 'f' === get_user_setting( 'mfold' ) ) {
|
if ( 'f' === get_user_setting( 'mfold' ) ) {
|
||||||
$admin_body_class .= ' folded';
|
$admin_body_class .= ' folded';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! get_user_setting( 'unfold' ) ) {
|
if ( ! get_user_setting( 'unfold' ) ) {
|
||||||
$admin_body_class .= ' auto-fold';
|
$admin_body_class .= ' auto-fold';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( is_admin_bar_showing() ) {
|
if ( is_admin_bar_showing() ) {
|
||||||
$admin_body_class .= ' admin-bar';
|
$admin_body_class .= ' admin-bar';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( is_rtl() ) {
|
if ( is_rtl() ) {
|
||||||
$admin_body_class .= ' rtl';
|
$admin_body_class .= ' rtl';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $current_screen->post_type ) {
|
if ( $current_screen->post_type ) {
|
||||||
$admin_body_class .= ' post-type-' . $current_screen->post_type;
|
$admin_body_class .= ' post-type-' . $current_screen->post_type;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $current_screen->taxonomy ) {
|
if ( $current_screen->taxonomy ) {
|
||||||
$admin_body_class .= ' taxonomy-' . $current_screen->taxonomy;
|
$admin_body_class .= ' taxonomy-' . $current_screen->taxonomy;
|
||||||
}
|
}
|
||||||
|
|
||||||
$admin_body_class .= ' branch-' . str_replace( array( '.', ',' ), '-', (float) get_bloginfo( 'version' ) );
|
$admin_body_class .= ' branch-' . str_replace( array( '.', ',' ), '-', (float) get_bloginfo( 'version' ) );
|
||||||
$admin_body_class .= ' version-' . str_replace( '.', '-', preg_replace( '/^([.0-9]+).*/', '$1', get_bloginfo( 'version' ) ) );
|
$admin_body_class .= ' version-' . str_replace( '.', '-', preg_replace( '/^([.0-9]+).*/', '$1', get_bloginfo( 'version' ) ) );
|
||||||
$admin_body_class .= ' admin-color-' . sanitize_html_class( get_user_option( 'admin_color' ), 'fresh' );
|
$admin_body_class .= ' admin-color-' . sanitize_html_class( get_user_option( 'admin_color' ), 'fresh' );
|
||||||
$admin_body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_user_locale() ) ) );
|
$admin_body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_user_locale() ) ) );
|
||||||
|
|
||||||
if ( wp_is_mobile() ) {
|
if ( wp_is_mobile() ) {
|
||||||
$admin_body_class .= ' mobile';
|
$admin_body_class .= ' mobile';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( is_multisite() ) {
|
if ( is_multisite() ) {
|
||||||
$admin_body_class .= ' multisite';
|
$admin_body_class .= ' multisite';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( is_network_admin() ) {
|
if ( is_network_admin() ) {
|
||||||
$admin_body_class .= ' network-admin';
|
$admin_body_class .= ' network-admin';
|
||||||
}
|
}
|
||||||
|
|
||||||
$admin_body_class .= ' no-customize-support no-svg';
|
$admin_body_class .= ' no-customize-support no-svg';
|
||||||
|
|
||||||
if ( $current_screen->is_block_editor() ) {
|
if ( $current_screen->is_block_editor() ) {
|
||||||
$admin_body_class .= ' block-editor-page wp-embed-responsive';
|
$admin_body_class .= ' block-editor-page wp-embed-responsive';
|
||||||
}
|
}
|
||||||
|
|
||||||
$error_get_last = error_get_last();
|
$error_get_last = error_get_last();
|
||||||
|
|
||||||
// Print a CSS class to make PHP errors visible.
|
// Print a CSS class to make PHP errors visible.
|
||||||
if ( $error_get_last && WP_DEBUG && WP_DEBUG_DISPLAY && ini_get( 'display_errors' )
|
if ( $error_get_last && WP_DEBUG && WP_DEBUG_DISPLAY && ini_get( 'display_errors' )
|
||||||
// Don't print the class for PHP notices in wp-config.php, as they happen before WP_DEBUG takes effect,
|
// Don't print the class for PHP notices in wp-config.php, as they happen before WP_DEBUG takes effect,
|
||||||
// and should not be displayed with the `error_reporting` level previously set in wp-load.php.
|
// and should not be displayed with the `error_reporting` level previously set in wp-load.php.
|
||||||
&& ( E_NOTICE !== $error_get_last['type'] || 'wp-config.php' !== wp_basename( $error_get_last['file'] ) )
|
&& ( E_NOTICE !== $error_get_last['type'] || 'wp-config.php' !== wp_basename( $error_get_last['file'] ) )
|
||||||
) {
|
) {
|
||||||
$admin_body_class .= ' php-error';
|
$admin_body_class .= ' php-error';
|
||||||
}
|
}
|
||||||
|
|
||||||
unset( $error_get_last );
|
unset( $error_get_last );
|
||||||
|
|
||||||
?>
|
?>
|
||||||
</head>
|
</head>
|
||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Filters the CSS classes for the body tag in the admin.
|
* Filters the CSS classes for the body tag in the admin.
|
||||||
*
|
*
|
||||||
* This filter differs from the {@see 'post_class'} and {@see 'body_class'} filters
|
* This filter differs from the {@see 'post_class'} and {@see 'body_class'} filters
|
||||||
* in two important ways:
|
* in two important ways:
|
||||||
*
|
*
|
||||||
* 1. `$classes` is a space-separated string of class names instead of an array.
|
* 1. `$classes` is a space-separated string of class names instead of an array.
|
||||||
* 2. Not all core admin classes are filterable, notably: wp-admin, wp-core-ui,
|
* 2. Not all core admin classes are filterable, notably: wp-admin, wp-core-ui,
|
||||||
* and no-js cannot be removed.
|
* and no-js cannot be removed.
|
||||||
*
|
*
|
||||||
* @since 2.3.0
|
* @since 2.3.0
|
||||||
*
|
*
|
||||||
* @param string $classes Space-separated list of CSS classes.
|
* @param string $classes Space-separated list of CSS classes.
|
||||||
*/
|
*/
|
||||||
$admin_body_classes = apply_filters( 'admin_body_class', '' );
|
$admin_body_classes = apply_filters( 'admin_body_class', '' );
|
||||||
$admin_body_classes = ltrim( $admin_body_classes . ' ' . $admin_body_class );
|
$admin_body_classes = ltrim( $admin_body_classes . ' ' . $admin_body_class );
|
||||||
?>
|
?>
|
||||||
<body class="wp-admin wp-core-ui no-js <?php echo esc_attr( $admin_body_classes ); ?>">
|
<body class="wp-admin wp-core-ui no-js <?php echo esc_attr( $admin_body_classes ); ?>">
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
document.body.className = document.body.className.replace('no-js','js');
|
document.body.className = document.body.className.replace('no-js','js');
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
// Make sure the customize body classes are correct as early as possible.
|
// Make sure the customize body classes are correct as early as possible.
|
||||||
if ( current_user_can( 'customize' ) ) {
|
if ( current_user_can( 'customize' ) ) {
|
||||||
wp_customize_support_script();
|
wp_customize_support_script();
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div id="wpwrap">
|
<div id="wpwrap">
|
||||||
<?php require ABSPATH . 'wp-admin/menu-header.php'; ?>
|
<?php require ABSPATH . 'wp-admin/menu-header.php'; ?>
|
||||||
<div id="wpcontent">
|
<div id="wpcontent">
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Fires at the beginning of the content section in an admin page.
|
* Fires at the beginning of the content section in an admin page.
|
||||||
*
|
*
|
||||||
* @since 3.0.0
|
* @since 3.0.0
|
||||||
*/
|
*/
|
||||||
do_action( 'in_admin_header' );
|
do_action( 'in_admin_header' );
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div id="wpbody" role="main">
|
<div id="wpbody" role="main">
|
||||||
<?php
|
<?php
|
||||||
unset( $blog_name, $total_update_count, $update_title );
|
unset( $blog_name, $total_update_count, $update_title );
|
||||||
|
|
||||||
$current_screen->set_parentage( $parent_file );
|
$current_screen->set_parentage( $parent_file );
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div id="wpbody-content">
|
<div id="wpbody-content">
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
$current_screen->render_screen_meta();
|
$current_screen->render_screen_meta();
|
||||||
|
|
||||||
if ( is_network_admin() ) {
|
if ( is_network_admin() ) {
|
||||||
/**
|
/**
|
||||||
* Prints network admin screen notices.
|
* Prints network admin screen notices.
|
||||||
*
|
*
|
||||||
* @since 3.1.0
|
* @since 3.1.0
|
||||||
*/
|
*/
|
||||||
do_action( 'network_admin_notices' );
|
do_action( 'network_admin_notices' );
|
||||||
} elseif ( is_user_admin() ) {
|
} elseif ( is_user_admin() ) {
|
||||||
/**
|
/**
|
||||||
* Prints user admin screen notices.
|
* Prints user admin screen notices.
|
||||||
*
|
*
|
||||||
* @since 3.1.0
|
* @since 3.1.0
|
||||||
*/
|
*/
|
||||||
do_action( 'user_admin_notices' );
|
do_action( 'user_admin_notices' );
|
||||||
} else {
|
} else {
|
||||||
/**
|
/**
|
||||||
* Prints admin screen notices.
|
* Prints admin screen notices.
|
||||||
*
|
*
|
||||||
* @since 3.1.0
|
* @since 3.1.0
|
||||||
*/
|
*/
|
||||||
do_action( 'admin_notices' );
|
do_action( 'admin_notices' );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prints generic admin screen notices.
|
* Prints generic admin screen notices.
|
||||||
*
|
*
|
||||||
* @since 3.1.0
|
* @since 3.1.0
|
||||||
*/
|
*/
|
||||||
do_action( 'all_admin_notices' );
|
do_action( 'all_admin_notices' );
|
||||||
|
|
||||||
if ( 'options-general.php' === $parent_file ) {
|
if ( 'options-general.php' === $parent_file ) {
|
||||||
require ABSPATH . 'wp-admin/options-head.php';
|
require ABSPATH . 'wp-admin/options-head.php';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,87 +1,87 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* WordPress Generic Request (POST/GET) Handler
|
* WordPress Generic Request (POST/GET) Handler
|
||||||
*
|
*
|
||||||
* Intended for form submission handling in themes and plugins.
|
* Intended for form submission handling in themes and plugins.
|
||||||
*
|
*
|
||||||
* @package WordPress
|
* @package WordPress
|
||||||
* @subpackage Administration
|
* @subpackage Administration
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** We are located in WordPress Administration Screens */
|
/** We are located in WordPress Administration Screens */
|
||||||
if ( ! defined( 'WP_ADMIN' ) ) {
|
if ( ! defined( 'WP_ADMIN' ) ) {
|
||||||
define( 'WP_ADMIN', true );
|
define( 'WP_ADMIN', true );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( defined( 'ABSPATH' ) ) {
|
if ( defined( 'ABSPATH' ) ) {
|
||||||
require_once ABSPATH . 'wp-load.php';
|
require_once ABSPATH . 'wp-load.php';
|
||||||
} else {
|
} else {
|
||||||
require_once dirname( __DIR__ ) . '/wp-load.php';
|
require_once dirname( __DIR__ ) . '/wp-load.php';
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Allow for cross-domain requests (from the front end). */
|
/** Allow for cross-domain requests (from the front end). */
|
||||||
send_origin_headers();
|
send_origin_headers();
|
||||||
|
|
||||||
require_once ABSPATH . 'wp-admin/includes/admin.php';
|
require_once ABSPATH . 'wp-admin/includes/admin.php';
|
||||||
|
|
||||||
nocache_headers();
|
nocache_headers();
|
||||||
|
|
||||||
/** This action is documented in wp-admin/admin.php */
|
/** This action is documented in wp-admin/admin.php */
|
||||||
do_action( 'admin_init' );
|
do_action( 'admin_init' );
|
||||||
|
|
||||||
$action = ! empty( $_REQUEST['action'] ) ? $_REQUEST['action'] : '';
|
$action = ! empty( $_REQUEST['action'] ) ? $_REQUEST['action'] : '';
|
||||||
|
|
||||||
// Reject invalid parameters.
|
// Reject invalid parameters.
|
||||||
if ( ! is_scalar( $action ) ) {
|
if ( ! is_scalar( $action ) ) {
|
||||||
wp_die( '', 400 );
|
wp_die( '', 400 );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! is_user_logged_in() ) {
|
if ( ! is_user_logged_in() ) {
|
||||||
if ( empty( $action ) ) {
|
if ( empty( $action ) ) {
|
||||||
/**
|
/**
|
||||||
* Fires on a non-authenticated admin post request where no action is supplied.
|
* Fires on a non-authenticated admin post request where no action is supplied.
|
||||||
*
|
*
|
||||||
* @since 2.6.0
|
* @since 2.6.0
|
||||||
*/
|
*/
|
||||||
do_action( 'admin_post_nopriv' );
|
do_action( 'admin_post_nopriv' );
|
||||||
} else {
|
} else {
|
||||||
// If no action is registered, return a Bad Request response.
|
// If no action is registered, return a Bad Request response.
|
||||||
if ( ! has_action( "admin_post_nopriv_{$action}" ) ) {
|
if ( ! has_action( "admin_post_nopriv_{$action}" ) ) {
|
||||||
wp_die( '', 400 );
|
wp_die( '', 400 );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires on a non-authenticated admin post request for the given action.
|
* Fires on a non-authenticated admin post request for the given action.
|
||||||
*
|
*
|
||||||
* The dynamic portion of the hook name, `$action`, refers to the given
|
* The dynamic portion of the hook name, `$action`, refers to the given
|
||||||
* request action.
|
* request action.
|
||||||
*
|
*
|
||||||
* @since 2.6.0
|
* @since 2.6.0
|
||||||
*/
|
*/
|
||||||
do_action( "admin_post_nopriv_{$action}" );
|
do_action( "admin_post_nopriv_{$action}" );
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if ( empty( $action ) ) {
|
if ( empty( $action ) ) {
|
||||||
/**
|
/**
|
||||||
* Fires on an authenticated admin post request where no action is supplied.
|
* Fires on an authenticated admin post request where no action is supplied.
|
||||||
*
|
*
|
||||||
* @since 2.6.0
|
* @since 2.6.0
|
||||||
*/
|
*/
|
||||||
do_action( 'admin_post' );
|
do_action( 'admin_post' );
|
||||||
} else {
|
} else {
|
||||||
// If no action is registered, return a Bad Request response.
|
// If no action is registered, return a Bad Request response.
|
||||||
if ( ! has_action( "admin_post_{$action}" ) ) {
|
if ( ! has_action( "admin_post_{$action}" ) ) {
|
||||||
wp_die( '', 400 );
|
wp_die( '', 400 );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires on an authenticated admin post request for the given action.
|
* Fires on an authenticated admin post request for the given action.
|
||||||
*
|
*
|
||||||
* The dynamic portion of the hook name, `$action`, refers to the given
|
* The dynamic portion of the hook name, `$action`, refers to the given
|
||||||
* request action.
|
* request action.
|
||||||
*
|
*
|
||||||
* @since 2.6.0
|
* @since 2.6.0
|
||||||
*/
|
*/
|
||||||
do_action( "admin_post_{$action}" );
|
do_action( "admin_post_{$action}" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,420 +1,420 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* WordPress Administration Bootstrap
|
* WordPress Administration Bootstrap
|
||||||
*
|
*
|
||||||
* @package WordPress
|
* @package WordPress
|
||||||
* @subpackage Administration
|
* @subpackage Administration
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* In WordPress Administration Screens
|
* In WordPress Administration Screens
|
||||||
*
|
*
|
||||||
* @since 2.3.2
|
* @since 2.3.2
|
||||||
*/
|
*/
|
||||||
if ( ! defined( 'WP_ADMIN' ) ) {
|
if ( ! defined( 'WP_ADMIN' ) ) {
|
||||||
define( 'WP_ADMIN', true );
|
define( 'WP_ADMIN', true );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! defined( 'WP_NETWORK_ADMIN' ) ) {
|
if ( ! defined( 'WP_NETWORK_ADMIN' ) ) {
|
||||||
define( 'WP_NETWORK_ADMIN', false );
|
define( 'WP_NETWORK_ADMIN', false );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! defined( 'WP_USER_ADMIN' ) ) {
|
if ( ! defined( 'WP_USER_ADMIN' ) ) {
|
||||||
define( 'WP_USER_ADMIN', false );
|
define( 'WP_USER_ADMIN', false );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! WP_NETWORK_ADMIN && ! WP_USER_ADMIN ) {
|
if ( ! WP_NETWORK_ADMIN && ! WP_USER_ADMIN ) {
|
||||||
define( 'WP_BLOG_ADMIN', true );
|
define( 'WP_BLOG_ADMIN', true );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( isset( $_GET['import'] ) && ! defined( 'WP_LOAD_IMPORTERS' ) ) {
|
if ( isset( $_GET['import'] ) && ! defined( 'WP_LOAD_IMPORTERS' ) ) {
|
||||||
define( 'WP_LOAD_IMPORTERS', true );
|
define( 'WP_LOAD_IMPORTERS', true );
|
||||||
}
|
}
|
||||||
|
|
||||||
require_once dirname( __DIR__ ) . '/wp-load.php';
|
require_once dirname( __DIR__ ) . '/wp-load.php';
|
||||||
|
|
||||||
nocache_headers();
|
nocache_headers();
|
||||||
|
|
||||||
if ( get_option( 'db_upgraded' ) ) {
|
if ( get_option( 'db_upgraded' ) ) {
|
||||||
|
|
||||||
flush_rewrite_rules();
|
flush_rewrite_rules();
|
||||||
update_option( 'db_upgraded', false );
|
update_option( 'db_upgraded', false );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires on the next page load after a successful DB upgrade.
|
* Fires on the next page load after a successful DB upgrade.
|
||||||
*
|
*
|
||||||
* @since 2.8.0
|
* @since 2.8.0
|
||||||
*/
|
*/
|
||||||
do_action( 'after_db_upgrade' );
|
do_action( 'after_db_upgrade' );
|
||||||
|
|
||||||
} elseif ( ! wp_doing_ajax() && empty( $_POST )
|
} elseif ( ! wp_doing_ajax() && empty( $_POST )
|
||||||
&& (int) get_option( 'db_version' ) !== $wp_db_version
|
&& (int) get_option( 'db_version' ) !== $wp_db_version
|
||||||
) {
|
) {
|
||||||
|
|
||||||
if ( ! is_multisite() ) {
|
if ( ! is_multisite() ) {
|
||||||
wp_redirect( admin_url( 'upgrade.php?_wp_http_referer=' . urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) ) ) );
|
wp_redirect( admin_url( 'upgrade.php?_wp_http_referer=' . urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) ) ) );
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filters whether to attempt to perform the multisite DB upgrade routine.
|
* Filters whether to attempt to perform the multisite DB upgrade routine.
|
||||||
*
|
*
|
||||||
* In single site, the user would be redirected to wp-admin/upgrade.php.
|
* In single site, the user would be redirected to wp-admin/upgrade.php.
|
||||||
* In multisite, the DB upgrade routine is automatically fired, but only
|
* In multisite, the DB upgrade routine is automatically fired, but only
|
||||||
* when this filter returns true.
|
* when this filter returns true.
|
||||||
*
|
*
|
||||||
* If the network is 50 sites or less, it will run every time. Otherwise,
|
* If the network is 50 sites or less, it will run every time. Otherwise,
|
||||||
* it will throttle itself to reduce load.
|
* it will throttle itself to reduce load.
|
||||||
*
|
*
|
||||||
* @since MU (3.0.0)
|
* @since MU (3.0.0)
|
||||||
*
|
*
|
||||||
* @param bool $do_mu_upgrade Whether to perform the Multisite upgrade routine. Default true.
|
* @param bool $do_mu_upgrade Whether to perform the Multisite upgrade routine. Default true.
|
||||||
*/
|
*/
|
||||||
if ( apply_filters( 'do_mu_upgrade', true ) ) {
|
if ( apply_filters( 'do_mu_upgrade', true ) ) {
|
||||||
$c = get_blog_count();
|
$c = get_blog_count();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If there are 50 or fewer sites, run every time. Otherwise, throttle to reduce load:
|
* If there are 50 or fewer sites, run every time. Otherwise, throttle to reduce load:
|
||||||
* attempt to do no more than threshold value, with some +/- allowed.
|
* attempt to do no more than threshold value, with some +/- allowed.
|
||||||
*/
|
*/
|
||||||
if ( $c <= 50 || ( $c > 50 && mt_rand( 0, (int) ( $c / 50 ) ) === 1 ) ) {
|
if ( $c <= 50 || ( $c > 50 && mt_rand( 0, (int) ( $c / 50 ) ) === 1 ) ) {
|
||||||
require_once ABSPATH . WPINC . '/http.php';
|
require_once ABSPATH . WPINC . '/http.php';
|
||||||
$response = wp_remote_get(
|
$response = wp_remote_get(
|
||||||
admin_url( 'upgrade.php?step=1' ),
|
admin_url( 'upgrade.php?step=1' ),
|
||||||
array(
|
array(
|
||||||
'timeout' => 120,
|
'timeout' => 120,
|
||||||
'httpversion' => '1.1',
|
'httpversion' => '1.1',
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
/** This action is documented in wp-admin/network/upgrade.php */
|
/** This action is documented in wp-admin/network/upgrade.php */
|
||||||
do_action( 'after_mu_upgrade', $response );
|
do_action( 'after_mu_upgrade', $response );
|
||||||
unset( $response );
|
unset( $response );
|
||||||
}
|
}
|
||||||
unset( $c );
|
unset( $c );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
require_once ABSPATH . 'wp-admin/includes/admin.php';
|
require_once ABSPATH . 'wp-admin/includes/admin.php';
|
||||||
|
|
||||||
auth_redirect();
|
auth_redirect();
|
||||||
|
|
||||||
// Schedule Trash collection.
|
// Schedule Trash collection.
|
||||||
if ( ! wp_next_scheduled( 'wp_scheduled_delete' ) && ! wp_installing() ) {
|
if ( ! wp_next_scheduled( 'wp_scheduled_delete' ) && ! wp_installing() ) {
|
||||||
wp_schedule_event( time(), 'daily', 'wp_scheduled_delete' );
|
wp_schedule_event( time(), 'daily', 'wp_scheduled_delete' );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Schedule transient cleanup.
|
// Schedule transient cleanup.
|
||||||
if ( ! wp_next_scheduled( 'delete_expired_transients' ) && ! wp_installing() ) {
|
if ( ! wp_next_scheduled( 'delete_expired_transients' ) && ! wp_installing() ) {
|
||||||
wp_schedule_event( time(), 'daily', 'delete_expired_transients' );
|
wp_schedule_event( time(), 'daily', 'delete_expired_transients' );
|
||||||
}
|
}
|
||||||
|
|
||||||
set_screen_options();
|
set_screen_options();
|
||||||
|
|
||||||
$date_format = __( 'F j, Y' );
|
$date_format = __( 'F j, Y' );
|
||||||
$time_format = __( 'g:i a' );
|
$time_format = __( 'g:i a' );
|
||||||
|
|
||||||
wp_enqueue_script( 'common' );
|
wp_enqueue_script( 'common' );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* $pagenow is set in vars.php.
|
* $pagenow is set in vars.php.
|
||||||
* $wp_importers is sometimes set in wp-admin/includes/import.php.
|
* $wp_importers is sometimes set in wp-admin/includes/import.php.
|
||||||
* The remaining variables are imported as globals elsewhere, declared as globals here.
|
* The remaining variables are imported as globals elsewhere, declared as globals here.
|
||||||
*
|
*
|
||||||
* @global string $pagenow The filename of the current screen.
|
* @global string $pagenow The filename of the current screen.
|
||||||
* @global array $wp_importers
|
* @global array $wp_importers
|
||||||
* @global string $hook_suffix
|
* @global string $hook_suffix
|
||||||
* @global string $plugin_page
|
* @global string $plugin_page
|
||||||
* @global string $typenow The post type of the current screen.
|
* @global string $typenow The post type of the current screen.
|
||||||
* @global string $taxnow The taxonomy of the current screen.
|
* @global string $taxnow The taxonomy of the current screen.
|
||||||
*/
|
*/
|
||||||
global $pagenow, $wp_importers, $hook_suffix, $plugin_page, $typenow, $taxnow;
|
global $pagenow, $wp_importers, $hook_suffix, $plugin_page, $typenow, $taxnow;
|
||||||
|
|
||||||
$page_hook = null;
|
$page_hook = null;
|
||||||
|
|
||||||
$editing = false;
|
$editing = false;
|
||||||
|
|
||||||
if ( isset( $_GET['page'] ) ) {
|
if ( isset( $_GET['page'] ) ) {
|
||||||
$plugin_page = wp_unslash( $_GET['page'] );
|
$plugin_page = wp_unslash( $_GET['page'] );
|
||||||
$plugin_page = plugin_basename( $plugin_page );
|
$plugin_page = plugin_basename( $plugin_page );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( isset( $_REQUEST['post_type'] ) && post_type_exists( $_REQUEST['post_type'] ) ) {
|
if ( isset( $_REQUEST['post_type'] ) && post_type_exists( $_REQUEST['post_type'] ) ) {
|
||||||
$typenow = $_REQUEST['post_type'];
|
$typenow = $_REQUEST['post_type'];
|
||||||
} else {
|
} else {
|
||||||
$typenow = '';
|
$typenow = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( isset( $_REQUEST['taxonomy'] ) && taxonomy_exists( $_REQUEST['taxonomy'] ) ) {
|
if ( isset( $_REQUEST['taxonomy'] ) && taxonomy_exists( $_REQUEST['taxonomy'] ) ) {
|
||||||
$taxnow = $_REQUEST['taxonomy'];
|
$taxnow = $_REQUEST['taxonomy'];
|
||||||
} else {
|
} else {
|
||||||
$taxnow = '';
|
$taxnow = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( WP_NETWORK_ADMIN ) {
|
if ( WP_NETWORK_ADMIN ) {
|
||||||
require ABSPATH . 'wp-admin/network/menu.php';
|
require ABSPATH . 'wp-admin/network/menu.php';
|
||||||
} elseif ( WP_USER_ADMIN ) {
|
} elseif ( WP_USER_ADMIN ) {
|
||||||
require ABSPATH . 'wp-admin/user/menu.php';
|
require ABSPATH . 'wp-admin/user/menu.php';
|
||||||
} else {
|
} else {
|
||||||
require ABSPATH . 'wp-admin/menu.php';
|
require ABSPATH . 'wp-admin/menu.php';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( current_user_can( 'manage_options' ) ) {
|
if ( current_user_can( 'manage_options' ) ) {
|
||||||
wp_raise_memory_limit( 'admin' );
|
wp_raise_memory_limit( 'admin' );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires as an admin screen or script is being initialized.
|
* Fires as an admin screen or script is being initialized.
|
||||||
*
|
*
|
||||||
* Note, this does not just run on user-facing admin screens.
|
* Note, this does not just run on user-facing admin screens.
|
||||||
* It runs on admin-ajax.php and admin-post.php as well.
|
* It runs on admin-ajax.php and admin-post.php as well.
|
||||||
*
|
*
|
||||||
* This is roughly analogous to the more general {@see 'init'} hook, which fires earlier.
|
* This is roughly analogous to the more general {@see 'init'} hook, which fires earlier.
|
||||||
*
|
*
|
||||||
* @since 2.5.0
|
* @since 2.5.0
|
||||||
*/
|
*/
|
||||||
do_action( 'admin_init' );
|
do_action( 'admin_init' );
|
||||||
|
|
||||||
if ( isset( $plugin_page ) ) {
|
if ( isset( $plugin_page ) ) {
|
||||||
if ( ! empty( $typenow ) ) {
|
if ( ! empty( $typenow ) ) {
|
||||||
$the_parent = $pagenow . '?post_type=' . $typenow;
|
$the_parent = $pagenow . '?post_type=' . $typenow;
|
||||||
} else {
|
} else {
|
||||||
$the_parent = $pagenow;
|
$the_parent = $pagenow;
|
||||||
}
|
}
|
||||||
|
|
||||||
$page_hook = get_plugin_page_hook( $plugin_page, $the_parent );
|
$page_hook = get_plugin_page_hook( $plugin_page, $the_parent );
|
||||||
if ( ! $page_hook ) {
|
if ( ! $page_hook ) {
|
||||||
$page_hook = get_plugin_page_hook( $plugin_page, $plugin_page );
|
$page_hook = get_plugin_page_hook( $plugin_page, $plugin_page );
|
||||||
|
|
||||||
// Back-compat for plugins using add_management_page().
|
// Back-compat for plugins using add_management_page().
|
||||||
if ( empty( $page_hook ) && 'edit.php' === $pagenow && get_plugin_page_hook( $plugin_page, 'tools.php' ) ) {
|
if ( empty( $page_hook ) && 'edit.php' === $pagenow && get_plugin_page_hook( $plugin_page, 'tools.php' ) ) {
|
||||||
// There could be plugin specific params on the URL, so we need the whole query string.
|
// There could be plugin specific params on the URL, so we need the whole query string.
|
||||||
if ( ! empty( $_SERVER['QUERY_STRING'] ) ) {
|
if ( ! empty( $_SERVER['QUERY_STRING'] ) ) {
|
||||||
$query_string = $_SERVER['QUERY_STRING'];
|
$query_string = $_SERVER['QUERY_STRING'];
|
||||||
} else {
|
} else {
|
||||||
$query_string = 'page=' . $plugin_page;
|
$query_string = 'page=' . $plugin_page;
|
||||||
}
|
}
|
||||||
wp_redirect( admin_url( 'tools.php?' . $query_string ) );
|
wp_redirect( admin_url( 'tools.php?' . $query_string ) );
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
unset( $the_parent );
|
unset( $the_parent );
|
||||||
}
|
}
|
||||||
|
|
||||||
$hook_suffix = '';
|
$hook_suffix = '';
|
||||||
if ( isset( $page_hook ) ) {
|
if ( isset( $page_hook ) ) {
|
||||||
$hook_suffix = $page_hook;
|
$hook_suffix = $page_hook;
|
||||||
} elseif ( isset( $plugin_page ) ) {
|
} elseif ( isset( $plugin_page ) ) {
|
||||||
$hook_suffix = $plugin_page;
|
$hook_suffix = $plugin_page;
|
||||||
} elseif ( isset( $pagenow ) ) {
|
} elseif ( isset( $pagenow ) ) {
|
||||||
$hook_suffix = $pagenow;
|
$hook_suffix = $pagenow;
|
||||||
}
|
}
|
||||||
|
|
||||||
set_current_screen();
|
set_current_screen();
|
||||||
|
|
||||||
// Handle plugin admin pages.
|
// Handle plugin admin pages.
|
||||||
if ( isset( $plugin_page ) ) {
|
if ( isset( $plugin_page ) ) {
|
||||||
if ( $page_hook ) {
|
if ( $page_hook ) {
|
||||||
/**
|
/**
|
||||||
* Fires before a particular screen is loaded.
|
* Fires before a particular screen is loaded.
|
||||||
*
|
*
|
||||||
* The load-* hook fires in a number of contexts. This hook is for plugin screens
|
* The load-* hook fires in a number of contexts. This hook is for plugin screens
|
||||||
* where a callback is provided when the screen is registered.
|
* where a callback is provided when the screen is registered.
|
||||||
*
|
*
|
||||||
* The dynamic portion of the hook name, `$page_hook`, refers to a mixture of plugin
|
* The dynamic portion of the hook name, `$page_hook`, refers to a mixture of plugin
|
||||||
* page information including:
|
* page information including:
|
||||||
* 1. The page type. If the plugin page is registered as a submenu page, such as for
|
* 1. The page type. If the plugin page is registered as a submenu page, such as for
|
||||||
* Settings, the page type would be 'settings'. Otherwise the type is 'toplevel'.
|
* Settings, the page type would be 'settings'. Otherwise the type is 'toplevel'.
|
||||||
* 2. A separator of '_page_'.
|
* 2. A separator of '_page_'.
|
||||||
* 3. The plugin basename minus the file extension.
|
* 3. The plugin basename minus the file extension.
|
||||||
*
|
*
|
||||||
* Together, the three parts form the `$page_hook`. Citing the example above,
|
* Together, the three parts form the `$page_hook`. Citing the example above,
|
||||||
* the hook name used would be 'load-settings_page_pluginbasename'.
|
* the hook name used would be 'load-settings_page_pluginbasename'.
|
||||||
*
|
*
|
||||||
* @see get_plugin_page_hook()
|
* @see get_plugin_page_hook()
|
||||||
*
|
*
|
||||||
* @since 2.1.0
|
* @since 2.1.0
|
||||||
*/
|
*/
|
||||||
do_action( "load-{$page_hook}" ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
do_action( "load-{$page_hook}" ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
||||||
if ( ! isset( $_GET['noheader'] ) ) {
|
if ( ! isset( $_GET['noheader'] ) ) {
|
||||||
require_once ABSPATH . 'wp-admin/admin-header.php';
|
require_once ABSPATH . 'wp-admin/admin-header.php';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Used to call the registered callback for a plugin screen.
|
* Used to call the registered callback for a plugin screen.
|
||||||
*
|
*
|
||||||
* This hook uses a dynamic hook name, `$page_hook`, which refers to a mixture of plugin
|
* This hook uses a dynamic hook name, `$page_hook`, which refers to a mixture of plugin
|
||||||
* page information including:
|
* page information including:
|
||||||
* 1. The page type. If the plugin page is registered as a submenu page, such as for
|
* 1. The page type. If the plugin page is registered as a submenu page, such as for
|
||||||
* Settings, the page type would be 'settings'. Otherwise the type is 'toplevel'.
|
* Settings, the page type would be 'settings'. Otherwise the type is 'toplevel'.
|
||||||
* 2. A separator of '_page_'.
|
* 2. A separator of '_page_'.
|
||||||
* 3. The plugin basename minus the file extension.
|
* 3. The plugin basename minus the file extension.
|
||||||
*
|
*
|
||||||
* Together, the three parts form the `$page_hook`. Citing the example above,
|
* Together, the three parts form the `$page_hook`. Citing the example above,
|
||||||
* the hook name used would be 'settings_page_pluginbasename'.
|
* the hook name used would be 'settings_page_pluginbasename'.
|
||||||
*
|
*
|
||||||
* @see get_plugin_page_hook()
|
* @see get_plugin_page_hook()
|
||||||
*
|
*
|
||||||
* @since 1.5.0
|
* @since 1.5.0
|
||||||
*/
|
*/
|
||||||
do_action( $page_hook );
|
do_action( $page_hook );
|
||||||
} else {
|
} else {
|
||||||
if ( validate_file( $plugin_page ) ) {
|
if ( validate_file( $plugin_page ) ) {
|
||||||
wp_die( __( 'Invalid plugin page.' ) );
|
wp_die( __( 'Invalid plugin page.' ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! ( file_exists( WP_PLUGIN_DIR . "/$plugin_page" ) && is_file( WP_PLUGIN_DIR . "/$plugin_page" ) )
|
if ( ! ( file_exists( WP_PLUGIN_DIR . "/$plugin_page" ) && is_file( WP_PLUGIN_DIR . "/$plugin_page" ) )
|
||||||
&& ! ( file_exists( WPMU_PLUGIN_DIR . "/$plugin_page" ) && is_file( WPMU_PLUGIN_DIR . "/$plugin_page" ) )
|
&& ! ( file_exists( WPMU_PLUGIN_DIR . "/$plugin_page" ) && is_file( WPMU_PLUGIN_DIR . "/$plugin_page" ) )
|
||||||
) {
|
) {
|
||||||
/* translators: %s: Admin page generated by a plugin. */
|
/* translators: %s: Admin page generated by a plugin. */
|
||||||
wp_die( sprintf( __( 'Cannot load %s.' ), htmlentities( $plugin_page ) ) );
|
wp_die( sprintf( __( 'Cannot load %s.' ), htmlentities( $plugin_page ) ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires before a particular screen is loaded.
|
* Fires before a particular screen is loaded.
|
||||||
*
|
*
|
||||||
* The load-* hook fires in a number of contexts. This hook is for plugin screens
|
* The load-* hook fires in a number of contexts. This hook is for plugin screens
|
||||||
* where the file to load is directly included, rather than the use of a function.
|
* where the file to load is directly included, rather than the use of a function.
|
||||||
*
|
*
|
||||||
* The dynamic portion of the hook name, `$plugin_page`, refers to the plugin basename.
|
* The dynamic portion of the hook name, `$plugin_page`, refers to the plugin basename.
|
||||||
*
|
*
|
||||||
* @see plugin_basename()
|
* @see plugin_basename()
|
||||||
*
|
*
|
||||||
* @since 1.5.0
|
* @since 1.5.0
|
||||||
*/
|
*/
|
||||||
do_action( "load-{$plugin_page}" ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
do_action( "load-{$plugin_page}" ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
||||||
|
|
||||||
if ( ! isset( $_GET['noheader'] ) ) {
|
if ( ! isset( $_GET['noheader'] ) ) {
|
||||||
require_once ABSPATH . 'wp-admin/admin-header.php';
|
require_once ABSPATH . 'wp-admin/admin-header.php';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( file_exists( WPMU_PLUGIN_DIR . "/$plugin_page" ) ) {
|
if ( file_exists( WPMU_PLUGIN_DIR . "/$plugin_page" ) ) {
|
||||||
include WPMU_PLUGIN_DIR . "/$plugin_page";
|
include WPMU_PLUGIN_DIR . "/$plugin_page";
|
||||||
} else {
|
} else {
|
||||||
include WP_PLUGIN_DIR . "/$plugin_page";
|
include WP_PLUGIN_DIR . "/$plugin_page";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
require_once ABSPATH . 'wp-admin/admin-footer.php';
|
require_once ABSPATH . 'wp-admin/admin-footer.php';
|
||||||
|
|
||||||
exit;
|
exit;
|
||||||
} elseif ( isset( $_GET['import'] ) ) {
|
} elseif ( isset( $_GET['import'] ) ) {
|
||||||
|
|
||||||
$importer = $_GET['import'];
|
$importer = $_GET['import'];
|
||||||
|
|
||||||
if ( ! current_user_can( 'import' ) ) {
|
if ( ! current_user_can( 'import' ) ) {
|
||||||
wp_die( __( 'Sorry, you are not allowed to import content into this site.' ) );
|
wp_die( __( 'Sorry, you are not allowed to import content into this site.' ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( validate_file( $importer ) ) {
|
if ( validate_file( $importer ) ) {
|
||||||
wp_redirect( admin_url( 'import.php?invalid=' . $importer ) );
|
wp_redirect( admin_url( 'import.php?invalid=' . $importer ) );
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! isset( $wp_importers[ $importer ] ) || ! is_callable( $wp_importers[ $importer ][2] ) ) {
|
if ( ! isset( $wp_importers[ $importer ] ) || ! is_callable( $wp_importers[ $importer ][2] ) ) {
|
||||||
wp_redirect( admin_url( 'import.php?invalid=' . $importer ) );
|
wp_redirect( admin_url( 'import.php?invalid=' . $importer ) );
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires before an importer screen is loaded.
|
* Fires before an importer screen is loaded.
|
||||||
*
|
*
|
||||||
* The dynamic portion of the hook name, `$importer`, refers to the importer slug.
|
* The dynamic portion of the hook name, `$importer`, refers to the importer slug.
|
||||||
*
|
*
|
||||||
* Possible hook names include:
|
* Possible hook names include:
|
||||||
*
|
*
|
||||||
* - `load-importer-blogger`
|
* - `load-importer-blogger`
|
||||||
* - `load-importer-wpcat2tag`
|
* - `load-importer-wpcat2tag`
|
||||||
* - `load-importer-livejournal`
|
* - `load-importer-livejournal`
|
||||||
* - `load-importer-mt`
|
* - `load-importer-mt`
|
||||||
* - `load-importer-rss`
|
* - `load-importer-rss`
|
||||||
* - `load-importer-tumblr`
|
* - `load-importer-tumblr`
|
||||||
* - `load-importer-wordpress`
|
* - `load-importer-wordpress`
|
||||||
*
|
*
|
||||||
* @since 3.5.0
|
* @since 3.5.0
|
||||||
*/
|
*/
|
||||||
do_action( "load-importer-{$importer}" ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
do_action( "load-importer-{$importer}" ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
||||||
|
|
||||||
// Used in the HTML title tag.
|
// Used in the HTML title tag.
|
||||||
$title = __( 'Import' );
|
$title = __( 'Import' );
|
||||||
$parent_file = 'tools.php';
|
$parent_file = 'tools.php';
|
||||||
$submenu_file = 'import.php';
|
$submenu_file = 'import.php';
|
||||||
|
|
||||||
if ( ! isset( $_GET['noheader'] ) ) {
|
if ( ! isset( $_GET['noheader'] ) ) {
|
||||||
require_once ABSPATH . 'wp-admin/admin-header.php';
|
require_once ABSPATH . 'wp-admin/admin-header.php';
|
||||||
}
|
}
|
||||||
|
|
||||||
require_once ABSPATH . 'wp-admin/includes/upgrade.php';
|
require_once ABSPATH . 'wp-admin/includes/upgrade.php';
|
||||||
|
|
||||||
define( 'WP_IMPORTING', true );
|
define( 'WP_IMPORTING', true );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filters whether to filter imported data through kses on import.
|
* Filters whether to filter imported data through kses on import.
|
||||||
*
|
*
|
||||||
* Multisite uses this hook to filter all data through kses by default,
|
* Multisite uses this hook to filter all data through kses by default,
|
||||||
* as a super administrator may be assisting an untrusted user.
|
* as a super administrator may be assisting an untrusted user.
|
||||||
*
|
*
|
||||||
* @since 3.1.0
|
* @since 3.1.0
|
||||||
*
|
*
|
||||||
* @param bool $force Whether to force data to be filtered through kses. Default false.
|
* @param bool $force Whether to force data to be filtered through kses. Default false.
|
||||||
*/
|
*/
|
||||||
if ( apply_filters( 'force_filtered_html_on_import', false ) ) {
|
if ( apply_filters( 'force_filtered_html_on_import', false ) ) {
|
||||||
kses_init_filters(); // Always filter imported data with kses on multisite.
|
kses_init_filters(); // Always filter imported data with kses on multisite.
|
||||||
}
|
}
|
||||||
|
|
||||||
call_user_func( $wp_importers[ $importer ][2] );
|
call_user_func( $wp_importers[ $importer ][2] );
|
||||||
|
|
||||||
require_once ABSPATH . 'wp-admin/admin-footer.php';
|
require_once ABSPATH . 'wp-admin/admin-footer.php';
|
||||||
|
|
||||||
// Make sure rules are flushed.
|
// Make sure rules are flushed.
|
||||||
flush_rewrite_rules( false );
|
flush_rewrite_rules( false );
|
||||||
|
|
||||||
exit;
|
exit;
|
||||||
} else {
|
} else {
|
||||||
/**
|
/**
|
||||||
* Fires before a particular screen is loaded.
|
* Fires before a particular screen is loaded.
|
||||||
*
|
*
|
||||||
* The load-* hook fires in a number of contexts. This hook is for core screens.
|
* The load-* hook fires in a number of contexts. This hook is for core screens.
|
||||||
*
|
*
|
||||||
* The dynamic portion of the hook name, `$pagenow`, is a global variable
|
* The dynamic portion of the hook name, `$pagenow`, is a global variable
|
||||||
* referring to the filename of the current screen, such as 'admin.php',
|
* referring to the filename of the current screen, such as 'admin.php',
|
||||||
* 'post-new.php' etc. A complete hook for the latter would be
|
* 'post-new.php' etc. A complete hook for the latter would be
|
||||||
* 'load-post-new.php'.
|
* 'load-post-new.php'.
|
||||||
*
|
*
|
||||||
* @since 2.1.0
|
* @since 2.1.0
|
||||||
*/
|
*/
|
||||||
do_action( "load-{$pagenow}" ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
do_action( "load-{$pagenow}" ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The following hooks are fired to ensure backward compatibility.
|
* The following hooks are fired to ensure backward compatibility.
|
||||||
* In all other cases, 'load-' . $pagenow should be used instead.
|
* In all other cases, 'load-' . $pagenow should be used instead.
|
||||||
*/
|
*/
|
||||||
if ( 'page' === $typenow ) {
|
if ( 'page' === $typenow ) {
|
||||||
if ( 'post-new.php' === $pagenow ) {
|
if ( 'post-new.php' === $pagenow ) {
|
||||||
do_action( 'load-page-new.php' ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
do_action( 'load-page-new.php' ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
||||||
} elseif ( 'post.php' === $pagenow ) {
|
} elseif ( 'post.php' === $pagenow ) {
|
||||||
do_action( 'load-page.php' ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
do_action( 'load-page.php' ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
||||||
}
|
}
|
||||||
} elseif ( 'edit-tags.php' === $pagenow ) {
|
} elseif ( 'edit-tags.php' === $pagenow ) {
|
||||||
if ( 'category' === $taxnow ) {
|
if ( 'category' === $taxnow ) {
|
||||||
do_action( 'load-categories.php' ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
do_action( 'load-categories.php' ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
||||||
} elseif ( 'link_category' === $taxnow ) {
|
} elseif ( 'link_category' === $taxnow ) {
|
||||||
do_action( 'load-edit-link-categories.php' ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
do_action( 'load-edit-link-categories.php' ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
||||||
}
|
}
|
||||||
} elseif ( 'term.php' === $pagenow ) {
|
} elseif ( 'term.php' === $pagenow ) {
|
||||||
do_action( 'load-edit-tags.php' ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
do_action( 'load-edit-tags.php' ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! empty( $_REQUEST['action'] ) ) {
|
if ( ! empty( $_REQUEST['action'] ) ) {
|
||||||
$action = $_REQUEST['action'];
|
$action = $_REQUEST['action'];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires when an 'action' request variable is sent.
|
* Fires when an 'action' request variable is sent.
|
||||||
*
|
*
|
||||||
* The dynamic portion of the hook name, `$action`, refers to
|
* The dynamic portion of the hook name, `$action`, refers to
|
||||||
* the action derived from the `GET` or `POST` request.
|
* the action derived from the `GET` or `POST` request.
|
||||||
*
|
*
|
||||||
* @since 2.6.0
|
* @since 2.6.0
|
||||||
*/
|
*/
|
||||||
do_action( "admin_action_{$action}" );
|
do_action( "admin_action_{$action}" );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,163 +1,163 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Server-side file upload handler from wp-plupload or other asynchronous upload methods.
|
* Server-side file upload handler from wp-plupload or other asynchronous upload methods.
|
||||||
*
|
*
|
||||||
* @package WordPress
|
* @package WordPress
|
||||||
* @subpackage Administration
|
* @subpackage Administration
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ( isset( $_REQUEST['action'] ) && 'upload-attachment' === $_REQUEST['action'] ) {
|
if ( isset( $_REQUEST['action'] ) && 'upload-attachment' === $_REQUEST['action'] ) {
|
||||||
define( 'DOING_AJAX', true );
|
define( 'DOING_AJAX', true );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! defined( 'WP_ADMIN' ) ) {
|
if ( ! defined( 'WP_ADMIN' ) ) {
|
||||||
define( 'WP_ADMIN', true );
|
define( 'WP_ADMIN', true );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( defined( 'ABSPATH' ) ) {
|
if ( defined( 'ABSPATH' ) ) {
|
||||||
require_once ABSPATH . 'wp-load.php';
|
require_once ABSPATH . 'wp-load.php';
|
||||||
} else {
|
} else {
|
||||||
require_once dirname( __DIR__ ) . '/wp-load.php';
|
require_once dirname( __DIR__ ) . '/wp-load.php';
|
||||||
}
|
}
|
||||||
|
|
||||||
require_once ABSPATH . 'wp-admin/admin.php';
|
require_once ABSPATH . 'wp-admin/admin.php';
|
||||||
|
|
||||||
header( 'Content-Type: text/plain; charset=' . get_option( 'blog_charset' ) );
|
header( 'Content-Type: text/plain; charset=' . get_option( 'blog_charset' ) );
|
||||||
|
|
||||||
if ( isset( $_REQUEST['action'] ) && 'upload-attachment' === $_REQUEST['action'] ) {
|
if ( isset( $_REQUEST['action'] ) && 'upload-attachment' === $_REQUEST['action'] ) {
|
||||||
require ABSPATH . 'wp-admin/includes/ajax-actions.php';
|
require ABSPATH . 'wp-admin/includes/ajax-actions.php';
|
||||||
|
|
||||||
send_nosniff_header();
|
send_nosniff_header();
|
||||||
nocache_headers();
|
nocache_headers();
|
||||||
|
|
||||||
wp_ajax_upload_attachment();
|
wp_ajax_upload_attachment();
|
||||||
die( '0' );
|
die( '0' );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! current_user_can( 'upload_files' ) ) {
|
if ( ! current_user_can( 'upload_files' ) ) {
|
||||||
wp_die( __( 'Sorry, you are not allowed to upload files.' ) );
|
wp_die( __( 'Sorry, you are not allowed to upload files.' ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Just fetch the detail form for that attachment.
|
// Just fetch the detail form for that attachment.
|
||||||
if ( isset( $_REQUEST['attachment_id'] ) && (int) $_REQUEST['attachment_id'] && $_REQUEST['fetch'] ) {
|
if ( isset( $_REQUEST['attachment_id'] ) && (int) $_REQUEST['attachment_id'] && $_REQUEST['fetch'] ) {
|
||||||
$id = (int) $_REQUEST['attachment_id'];
|
$id = (int) $_REQUEST['attachment_id'];
|
||||||
$post = get_post( $id );
|
$post = get_post( $id );
|
||||||
if ( 'attachment' !== $post->post_type ) {
|
if ( 'attachment' !== $post->post_type ) {
|
||||||
wp_die( __( 'Invalid post type.' ) );
|
wp_die( __( 'Invalid post type.' ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ( $_REQUEST['fetch'] ) {
|
switch ( $_REQUEST['fetch'] ) {
|
||||||
case 3:
|
case 3:
|
||||||
?>
|
?>
|
||||||
<div class="media-item-wrapper">
|
<div class="media-item-wrapper">
|
||||||
<div class="attachment-details">
|
<div class="attachment-details">
|
||||||
<?php
|
<?php
|
||||||
$thumb_url = wp_get_attachment_image_src( $id, 'thumbnail', true );
|
$thumb_url = wp_get_attachment_image_src( $id, 'thumbnail', true );
|
||||||
if ( $thumb_url ) {
|
if ( $thumb_url ) {
|
||||||
echo '<img class="pinkynail" src="' . esc_url( $thumb_url[0] ) . '" alt="" />';
|
echo '<img class="pinkynail" src="' . esc_url( $thumb_url[0] ) . '" alt="" />';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Title shouldn't ever be empty, but use filename just in case.
|
// Title shouldn't ever be empty, but use filename just in case.
|
||||||
$file = get_attached_file( $post->ID );
|
$file = get_attached_file( $post->ID );
|
||||||
$file_url = wp_get_attachment_url( $post->ID );
|
$file_url = wp_get_attachment_url( $post->ID );
|
||||||
$title = $post->post_title ? $post->post_title : wp_basename( $file );
|
$title = $post->post_title ? $post->post_title : wp_basename( $file );
|
||||||
?>
|
?>
|
||||||
<div class="filename new">
|
<div class="filename new">
|
||||||
<span class="media-list-title"><strong><?php echo esc_html( wp_html_excerpt( $title, 60, '…' ) ); ?></strong></span>
|
<span class="media-list-title"><strong><?php echo esc_html( wp_html_excerpt( $title, 60, '…' ) ); ?></strong></span>
|
||||||
<span class="media-list-subtitle"><?php echo wp_basename( $file ); ?></span>
|
<span class="media-list-subtitle"><?php echo wp_basename( $file ); ?></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="attachment-tools">
|
<div class="attachment-tools">
|
||||||
<span class="media-item-copy-container copy-to-clipboard-container edit-attachment">
|
<span class="media-item-copy-container copy-to-clipboard-container edit-attachment">
|
||||||
<button type="button" class="button button-small copy-attachment-url" data-clipboard-text="<?php echo $file_url; ?>"><?php _e( 'Copy URL to clipboard' ); ?></button>
|
<button type="button" class="button button-small copy-attachment-url" data-clipboard-text="<?php echo $file_url; ?>"><?php _e( 'Copy URL to clipboard' ); ?></button>
|
||||||
<span class="success hidden" aria-hidden="true"><?php _e( 'Copied!' ); ?></span>
|
<span class="success hidden" aria-hidden="true"><?php _e( 'Copied!' ); ?></span>
|
||||||
</span>
|
</span>
|
||||||
<?php
|
<?php
|
||||||
if ( current_user_can( 'edit_post', $id ) ) {
|
if ( current_user_can( 'edit_post', $id ) ) {
|
||||||
echo '<a class="edit-attachment" href="' . esc_url( get_edit_post_link( $id ) ) . '">' . _x( 'Edit', 'media item' ) . '</a>';
|
echo '<a class="edit-attachment" href="' . esc_url( get_edit_post_link( $id ) ) . '">' . _x( 'Edit', 'media item' ) . '</a>';
|
||||||
} else {
|
} else {
|
||||||
echo '<span class="edit-attachment">' . _x( 'Success', 'media item' ) . '</span>';
|
echo '<span class="edit-attachment">' . _x( 'Success', 'media item' ) . '</span>';
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
add_filter( 'attachment_fields_to_edit', 'media_single_attachment_fields_to_edit', 10, 2 );
|
add_filter( 'attachment_fields_to_edit', 'media_single_attachment_fields_to_edit', 10, 2 );
|
||||||
echo get_media_item(
|
echo get_media_item(
|
||||||
$id,
|
$id,
|
||||||
array(
|
array(
|
||||||
'send' => false,
|
'send' => false,
|
||||||
'delete' => true,
|
'delete' => true,
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
add_filter( 'attachment_fields_to_edit', 'media_post_single_attachment_fields_to_edit', 10, 2 );
|
add_filter( 'attachment_fields_to_edit', 'media_post_single_attachment_fields_to_edit', 10, 2 );
|
||||||
echo get_media_item( $id );
|
echo get_media_item( $id );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
check_admin_referer( 'media-form' );
|
check_admin_referer( 'media-form' );
|
||||||
|
|
||||||
$post_id = 0;
|
$post_id = 0;
|
||||||
if ( isset( $_REQUEST['post_id'] ) ) {
|
if ( isset( $_REQUEST['post_id'] ) ) {
|
||||||
$post_id = absint( $_REQUEST['post_id'] );
|
$post_id = absint( $_REQUEST['post_id'] );
|
||||||
if ( ! get_post( $post_id ) || ! current_user_can( 'edit_post', $post_id ) ) {
|
if ( ! get_post( $post_id ) || ! current_user_can( 'edit_post', $post_id ) ) {
|
||||||
$post_id = 0;
|
$post_id = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$id = media_handle_upload( 'async-upload', $post_id );
|
$id = media_handle_upload( 'async-upload', $post_id );
|
||||||
if ( is_wp_error( $id ) ) {
|
if ( is_wp_error( $id ) ) {
|
||||||
$message = sprintf(
|
$message = sprintf(
|
||||||
'%s <strong>%s</strong><br />%s',
|
'%s <strong>%s</strong><br />%s',
|
||||||
sprintf(
|
sprintf(
|
||||||
'<button type="button" class="dismiss button-link" onclick="jQuery(this).parents(\'div.media-item\').slideUp(200, function(){jQuery(this).remove();});">%s</button>',
|
'<button type="button" class="dismiss button-link" onclick="jQuery(this).parents(\'div.media-item\').slideUp(200, function(){jQuery(this).remove();});">%s</button>',
|
||||||
__( 'Dismiss' )
|
__( 'Dismiss' )
|
||||||
),
|
),
|
||||||
sprintf(
|
sprintf(
|
||||||
/* translators: %s: Name of the file that failed to upload. */
|
/* translators: %s: Name of the file that failed to upload. */
|
||||||
__( '“%s” has failed to upload.' ),
|
__( '“%s” has failed to upload.' ),
|
||||||
esc_html( $_FILES['async-upload']['name'] )
|
esc_html( $_FILES['async-upload']['name'] )
|
||||||
),
|
),
|
||||||
esc_html( $id->get_error_message() )
|
esc_html( $id->get_error_message() )
|
||||||
);
|
);
|
||||||
wp_admin_notice(
|
wp_admin_notice(
|
||||||
$message,
|
$message,
|
||||||
array(
|
array(
|
||||||
'additional_classes' => array( 'error-div', 'error' ),
|
'additional_classes' => array( 'error-div', 'error' ),
|
||||||
'paragraph_wrap' => false,
|
'paragraph_wrap' => false,
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $_REQUEST['short'] ) {
|
if ( $_REQUEST['short'] ) {
|
||||||
// Short form response - attachment ID only.
|
// Short form response - attachment ID only.
|
||||||
echo $id;
|
echo $id;
|
||||||
} else {
|
} else {
|
||||||
// Long form response - big chunk of HTML.
|
// Long form response - big chunk of HTML.
|
||||||
$type = $_REQUEST['type'];
|
$type = $_REQUEST['type'];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filters the returned ID of an uploaded attachment.
|
* Filters the returned ID of an uploaded attachment.
|
||||||
*
|
*
|
||||||
* The dynamic portion of the hook name, `$type`, refers to the attachment type.
|
* The dynamic portion of the hook name, `$type`, refers to the attachment type.
|
||||||
*
|
*
|
||||||
* Possible hook names include:
|
* Possible hook names include:
|
||||||
*
|
*
|
||||||
* - `async_upload_audio`
|
* - `async_upload_audio`
|
||||||
* - `async_upload_file`
|
* - `async_upload_file`
|
||||||
* - `async_upload_image`
|
* - `async_upload_image`
|
||||||
* - `async_upload_video`
|
* - `async_upload_video`
|
||||||
*
|
*
|
||||||
* @since 2.5.0
|
* @since 2.5.0
|
||||||
*
|
*
|
||||||
* @param int $id Uploaded attachment ID.
|
* @param int $id Uploaded attachment ID.
|
||||||
*/
|
*/
|
||||||
echo apply_filters( "async_upload_{$type}", $id );
|
echo apply_filters( "async_upload_{$type}", $id );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,333 +1,333 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Authorize Application Screen
|
* Authorize Application Screen
|
||||||
*
|
*
|
||||||
* @package WordPress
|
* @package WordPress
|
||||||
* @subpackage Administration
|
* @subpackage Administration
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** WordPress Administration Bootstrap */
|
/** WordPress Administration Bootstrap */
|
||||||
require_once __DIR__ . '/admin.php';
|
require_once __DIR__ . '/admin.php';
|
||||||
|
|
||||||
$error = null;
|
$error = null;
|
||||||
$new_password = '';
|
$new_password = '';
|
||||||
|
|
||||||
// This is the no-js fallback script. Generally this will all be handled by `auth-app.js`.
|
// This is the no-js fallback script. Generally this will all be handled by `auth-app.js`.
|
||||||
if ( isset( $_POST['action'] ) && 'authorize_application_password' === $_POST['action'] ) {
|
if ( isset( $_POST['action'] ) && 'authorize_application_password' === $_POST['action'] ) {
|
||||||
check_admin_referer( 'authorize_application_password' );
|
check_admin_referer( 'authorize_application_password' );
|
||||||
|
|
||||||
$success_url = $_POST['success_url'];
|
$success_url = $_POST['success_url'];
|
||||||
$reject_url = $_POST['reject_url'];
|
$reject_url = $_POST['reject_url'];
|
||||||
$app_name = $_POST['app_name'];
|
$app_name = $_POST['app_name'];
|
||||||
$app_id = $_POST['app_id'];
|
$app_id = $_POST['app_id'];
|
||||||
$redirect = '';
|
$redirect = '';
|
||||||
|
|
||||||
if ( isset( $_POST['reject'] ) ) {
|
if ( isset( $_POST['reject'] ) ) {
|
||||||
if ( $reject_url ) {
|
if ( $reject_url ) {
|
||||||
$redirect = $reject_url;
|
$redirect = $reject_url;
|
||||||
} else {
|
} else {
|
||||||
$redirect = admin_url();
|
$redirect = admin_url();
|
||||||
}
|
}
|
||||||
} elseif ( isset( $_POST['approve'] ) ) {
|
} elseif ( isset( $_POST['approve'] ) ) {
|
||||||
$created = WP_Application_Passwords::create_new_application_password(
|
$created = WP_Application_Passwords::create_new_application_password(
|
||||||
get_current_user_id(),
|
get_current_user_id(),
|
||||||
array(
|
array(
|
||||||
'name' => $app_name,
|
'name' => $app_name,
|
||||||
'app_id' => $app_id,
|
'app_id' => $app_id,
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
if ( is_wp_error( $created ) ) {
|
if ( is_wp_error( $created ) ) {
|
||||||
$error = $created;
|
$error = $created;
|
||||||
} else {
|
} else {
|
||||||
list( $new_password ) = $created;
|
list( $new_password ) = $created;
|
||||||
|
|
||||||
if ( $success_url ) {
|
if ( $success_url ) {
|
||||||
$redirect = add_query_arg(
|
$redirect = add_query_arg(
|
||||||
array(
|
array(
|
||||||
'site_url' => urlencode( site_url() ),
|
'site_url' => urlencode( site_url() ),
|
||||||
'user_login' => urlencode( wp_get_current_user()->user_login ),
|
'user_login' => urlencode( wp_get_current_user()->user_login ),
|
||||||
'password' => urlencode( $new_password ),
|
'password' => urlencode( $new_password ),
|
||||||
),
|
),
|
||||||
$success_url
|
$success_url
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $redirect ) {
|
if ( $redirect ) {
|
||||||
// Explicitly not using wp_safe_redirect b/c sends to arbitrary domain.
|
// Explicitly not using wp_safe_redirect b/c sends to arbitrary domain.
|
||||||
wp_redirect( $redirect );
|
wp_redirect( $redirect );
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Used in the HTML title tag.
|
// Used in the HTML title tag.
|
||||||
$title = __( 'Authorize Application' );
|
$title = __( 'Authorize Application' );
|
||||||
|
|
||||||
$app_name = ! empty( $_REQUEST['app_name'] ) ? $_REQUEST['app_name'] : '';
|
$app_name = ! empty( $_REQUEST['app_name'] ) ? $_REQUEST['app_name'] : '';
|
||||||
$app_id = ! empty( $_REQUEST['app_id'] ) ? $_REQUEST['app_id'] : '';
|
$app_id = ! empty( $_REQUEST['app_id'] ) ? $_REQUEST['app_id'] : '';
|
||||||
$success_url = ! empty( $_REQUEST['success_url'] ) ? $_REQUEST['success_url'] : null;
|
$success_url = ! empty( $_REQUEST['success_url'] ) ? $_REQUEST['success_url'] : null;
|
||||||
|
|
||||||
if ( ! empty( $_REQUEST['reject_url'] ) ) {
|
if ( ! empty( $_REQUEST['reject_url'] ) ) {
|
||||||
$reject_url = $_REQUEST['reject_url'];
|
$reject_url = $_REQUEST['reject_url'];
|
||||||
} elseif ( $success_url ) {
|
} elseif ( $success_url ) {
|
||||||
$reject_url = add_query_arg( 'success', 'false', $success_url );
|
$reject_url = add_query_arg( 'success', 'false', $success_url );
|
||||||
} else {
|
} else {
|
||||||
$reject_url = null;
|
$reject_url = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
$user = wp_get_current_user();
|
$user = wp_get_current_user();
|
||||||
|
|
||||||
$request = compact( 'app_name', 'app_id', 'success_url', 'reject_url' );
|
$request = compact( 'app_name', 'app_id', 'success_url', 'reject_url' );
|
||||||
$is_valid = wp_is_authorize_application_password_request_valid( $request, $user );
|
$is_valid = wp_is_authorize_application_password_request_valid( $request, $user );
|
||||||
|
|
||||||
if ( is_wp_error( $is_valid ) ) {
|
if ( is_wp_error( $is_valid ) ) {
|
||||||
wp_die(
|
wp_die(
|
||||||
__( 'The Authorize Application request is not allowed.' ) . ' ' . implode( ' ', $is_valid->get_error_messages() ),
|
__( 'The Authorize Application request is not allowed.' ) . ' ' . implode( ' ', $is_valid->get_error_messages() ),
|
||||||
__( 'Cannot Authorize Application' )
|
__( 'Cannot Authorize Application' )
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( wp_is_site_protected_by_basic_auth( 'front' ) ) {
|
if ( wp_is_site_protected_by_basic_auth( 'front' ) ) {
|
||||||
wp_die(
|
wp_die(
|
||||||
__( 'Your website appears to use Basic Authentication, which is not currently compatible with application passwords.' ),
|
__( 'Your website appears to use Basic Authentication, which is not currently compatible with application passwords.' ),
|
||||||
__( 'Cannot Authorize Application' ),
|
__( 'Cannot Authorize Application' ),
|
||||||
array(
|
array(
|
||||||
'response' => 501,
|
'response' => 501,
|
||||||
'link_text' => __( 'Go Back' ),
|
'link_text' => __( 'Go Back' ),
|
||||||
'link_url' => $reject_url ? add_query_arg( 'error', 'disabled', $reject_url ) : admin_url(),
|
'link_url' => $reject_url ? add_query_arg( 'error', 'disabled', $reject_url ) : admin_url(),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! wp_is_application_passwords_available_for_user( $user ) ) {
|
if ( ! wp_is_application_passwords_available_for_user( $user ) ) {
|
||||||
if ( wp_is_application_passwords_available() ) {
|
if ( wp_is_application_passwords_available() ) {
|
||||||
$message = __( 'Application passwords are not available for your account. Please contact the site administrator for assistance.' );
|
$message = __( 'Application passwords are not available for your account. Please contact the site administrator for assistance.' );
|
||||||
} else {
|
} else {
|
||||||
$message = __( 'Application passwords are not available.' );
|
$message = __( 'Application passwords are not available.' );
|
||||||
}
|
}
|
||||||
|
|
||||||
wp_die(
|
wp_die(
|
||||||
$message,
|
$message,
|
||||||
__( 'Cannot Authorize Application' ),
|
__( 'Cannot Authorize Application' ),
|
||||||
array(
|
array(
|
||||||
'response' => 501,
|
'response' => 501,
|
||||||
'link_text' => __( 'Go Back' ),
|
'link_text' => __( 'Go Back' ),
|
||||||
'link_url' => $reject_url ? add_query_arg( 'error', 'disabled', $reject_url ) : admin_url(),
|
'link_url' => $reject_url ? add_query_arg( 'error', 'disabled', $reject_url ) : admin_url(),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
wp_enqueue_script( 'auth-app' );
|
wp_enqueue_script( 'auth-app' );
|
||||||
wp_localize_script(
|
wp_localize_script(
|
||||||
'auth-app',
|
'auth-app',
|
||||||
'authApp',
|
'authApp',
|
||||||
array(
|
array(
|
||||||
'site_url' => site_url(),
|
'site_url' => site_url(),
|
||||||
'user_login' => $user->user_login,
|
'user_login' => $user->user_login,
|
||||||
'success' => $success_url,
|
'success' => $success_url,
|
||||||
'reject' => $reject_url ? $reject_url : admin_url(),
|
'reject' => $reject_url ? $reject_url : admin_url(),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
require_once ABSPATH . 'wp-admin/admin-header.php';
|
require_once ABSPATH . 'wp-admin/admin-header.php';
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<div class="wrap">
|
<div class="wrap">
|
||||||
<h1><?php echo esc_html( $title ); ?></h1>
|
<h1><?php echo esc_html( $title ); ?></h1>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
if ( is_wp_error( $error ) ) {
|
if ( is_wp_error( $error ) ) {
|
||||||
wp_admin_notice(
|
wp_admin_notice(
|
||||||
$error->get_error_message(),
|
$error->get_error_message(),
|
||||||
array(
|
array(
|
||||||
'type' => 'error',
|
'type' => 'error',
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div class="card auth-app-card">
|
<div class="card auth-app-card">
|
||||||
<h2 class="title"><?php _e( 'An application would like to connect to your account.' ); ?></h2>
|
<h2 class="title"><?php _e( 'An application would like to connect to your account.' ); ?></h2>
|
||||||
<?php if ( $app_name ) : ?>
|
<?php if ( $app_name ) : ?>
|
||||||
<p>
|
<p>
|
||||||
<?php
|
<?php
|
||||||
printf(
|
printf(
|
||||||
/* translators: %s: Application name. */
|
/* translators: %s: Application name. */
|
||||||
__( 'Would you like to give the application identifying itself as %s access to your account? You should only do this if you trust the application in question.' ),
|
__( 'Would you like to give the application identifying itself as %s access to your account? You should only do this if you trust the application in question.' ),
|
||||||
'<strong>' . esc_html( $app_name ) . '</strong>'
|
'<strong>' . esc_html( $app_name ) . '</strong>'
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
</p>
|
</p>
|
||||||
<?php else : ?>
|
<?php else : ?>
|
||||||
<p><?php _e( 'Would you like to give this application access to your account? You should only do this if you trust the application in question.' ); ?></p>
|
<p><?php _e( 'Would you like to give this application access to your account? You should only do this if you trust the application in question.' ); ?></p>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
if ( is_multisite() ) {
|
if ( is_multisite() ) {
|
||||||
$blogs = get_blogs_of_user( $user->ID, true );
|
$blogs = get_blogs_of_user( $user->ID, true );
|
||||||
$blogs_count = count( $blogs );
|
$blogs_count = count( $blogs );
|
||||||
|
|
||||||
if ( $blogs_count > 1 ) {
|
if ( $blogs_count > 1 ) {
|
||||||
?>
|
?>
|
||||||
<p>
|
<p>
|
||||||
<?php
|
<?php
|
||||||
/* translators: 1: URL to my-sites.php, 2: Number of sites the user has. */
|
/* translators: 1: URL to my-sites.php, 2: Number of sites the user has. */
|
||||||
$message = _n(
|
$message = _n(
|
||||||
'This will grant access to <a href="%1$s">the %2$s site in this installation that you have permissions on</a>.',
|
'This will grant access to <a href="%1$s">the %2$s site in this installation that you have permissions on</a>.',
|
||||||
'This will grant access to <a href="%1$s">all %2$s sites in this installation that you have permissions on</a>.',
|
'This will grant access to <a href="%1$s">all %2$s sites in this installation that you have permissions on</a>.',
|
||||||
$blogs_count
|
$blogs_count
|
||||||
);
|
);
|
||||||
|
|
||||||
if ( is_super_admin() ) {
|
if ( is_super_admin() ) {
|
||||||
/* translators: 1: URL to my-sites.php, 2: Number of sites the user has. */
|
/* translators: 1: URL to my-sites.php, 2: Number of sites the user has. */
|
||||||
$message = _n(
|
$message = _n(
|
||||||
'This will grant access to <a href="%1$s">the %2$s site on the network as you have Super Admin rights</a>.',
|
'This will grant access to <a href="%1$s">the %2$s site on the network as you have Super Admin rights</a>.',
|
||||||
'This will grant access to <a href="%1$s">all %2$s sites on the network as you have Super Admin rights</a>.',
|
'This will grant access to <a href="%1$s">all %2$s sites on the network as you have Super Admin rights</a>.',
|
||||||
$blogs_count
|
$blogs_count
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf(
|
printf(
|
||||||
$message,
|
$message,
|
||||||
admin_url( 'my-sites.php' ),
|
admin_url( 'my-sites.php' ),
|
||||||
number_format_i18n( $blogs_count )
|
number_format_i18n( $blogs_count )
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
if ( $new_password ) :
|
if ( $new_password ) :
|
||||||
$message = '<p class="application-password-display">
|
$message = '<p class="application-password-display">
|
||||||
<label for="new-application-password-value">' . sprintf(
|
<label for="new-application-password-value">' . sprintf(
|
||||||
/* translators: %s: Application name. */
|
/* translators: %s: Application name. */
|
||||||
esc_html__( 'Your new password for %s is:' ),
|
esc_html__( 'Your new password for %s is:' ),
|
||||||
'<strong>' . esc_html( $app_name ) . '</strong>'
|
'<strong>' . esc_html( $app_name ) . '</strong>'
|
||||||
) . '
|
) . '
|
||||||
</label>
|
</label>
|
||||||
<input id="new-application-password-value" type="text" class="code" readonly="readonly" value="' . esc_attr( WP_Application_Passwords::chunk_password( $new_password ) ) . '" />
|
<input id="new-application-password-value" type="text" class="code" readonly="readonly" value="' . esc_attr( WP_Application_Passwords::chunk_password( $new_password ) ) . '" />
|
||||||
</p>
|
</p>
|
||||||
<p>' . __( 'Be sure to save this in a safe location. You will not be able to retrieve it.' ) . '</p>';
|
<p>' . __( 'Be sure to save this in a safe location. You will not be able to retrieve it.' ) . '</p>';
|
||||||
$args = array(
|
$args = array(
|
||||||
'type' => 'success',
|
'type' => 'success',
|
||||||
'additional_classes' => array( 'notice-alt', 'below-h2' ),
|
'additional_classes' => array( 'notice-alt', 'below-h2' ),
|
||||||
'paragraph_wrap' => false,
|
'paragraph_wrap' => false,
|
||||||
);
|
);
|
||||||
wp_admin_notice( $message, $args );
|
wp_admin_notice( $message, $args );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fires in the Authorize Application Password new password section in the no-JS version.
|
* Fires in the Authorize Application Password new password section in the no-JS version.
|
||||||
*
|
*
|
||||||
* In most cases, this should be used in combination with the {@see 'wp_application_passwords_approve_app_request_success'}
|
* In most cases, this should be used in combination with the {@see 'wp_application_passwords_approve_app_request_success'}
|
||||||
* action to ensure that both the JS and no-JS variants are handled.
|
* action to ensure that both the JS and no-JS variants are handled.
|
||||||
*
|
*
|
||||||
* @since 5.6.0
|
* @since 5.6.0
|
||||||
* @since 5.6.1 Corrected action name and signature.
|
* @since 5.6.1 Corrected action name and signature.
|
||||||
*
|
*
|
||||||
* @param string $new_password The newly generated application password.
|
* @param string $new_password The newly generated application password.
|
||||||
* @param array $request The array of request data. All arguments are optional and may be empty.
|
* @param array $request The array of request data. All arguments are optional and may be empty.
|
||||||
* @param WP_User $user The user authorizing the application.
|
* @param WP_User $user The user authorizing the application.
|
||||||
*/
|
*/
|
||||||
do_action( 'wp_authorize_application_password_form_approved_no_js', $new_password, $request, $user );
|
do_action( 'wp_authorize_application_password_form_approved_no_js', $new_password, $request, $user );
|
||||||
else :
|
else :
|
||||||
?>
|
?>
|
||||||
<form action="<?php echo esc_url( admin_url( 'authorize-application.php' ) ); ?>" method="post" class="form-wrap">
|
<form action="<?php echo esc_url( admin_url( 'authorize-application.php' ) ); ?>" method="post" class="form-wrap">
|
||||||
<?php wp_nonce_field( 'authorize_application_password' ); ?>
|
<?php wp_nonce_field( 'authorize_application_password' ); ?>
|
||||||
<input type="hidden" name="action" value="authorize_application_password" />
|
<input type="hidden" name="action" value="authorize_application_password" />
|
||||||
<input type="hidden" name="app_id" value="<?php echo esc_attr( $app_id ); ?>" />
|
<input type="hidden" name="app_id" value="<?php echo esc_attr( $app_id ); ?>" />
|
||||||
<input type="hidden" name="success_url" value="<?php echo esc_url( $success_url ); ?>" />
|
<input type="hidden" name="success_url" value="<?php echo esc_url( $success_url ); ?>" />
|
||||||
<input type="hidden" name="reject_url" value="<?php echo esc_url( $reject_url ); ?>" />
|
<input type="hidden" name="reject_url" value="<?php echo esc_url( $reject_url ); ?>" />
|
||||||
|
|
||||||
<div class="form-field">
|
<div class="form-field">
|
||||||
<label for="app_name"><?php _e( 'New Application Password Name' ); ?></label>
|
<label for="app_name"><?php _e( 'New Application Password Name' ); ?></label>
|
||||||
<input type="text" id="app_name" name="app_name" value="<?php echo esc_attr( $app_name ); ?>" required />
|
<input type="text" id="app_name" name="app_name" value="<?php echo esc_attr( $app_name ); ?>" required />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Fires in the Authorize Application Password form before the submit buttons.
|
* Fires in the Authorize Application Password form before the submit buttons.
|
||||||
*
|
*
|
||||||
* @since 5.6.0
|
* @since 5.6.0
|
||||||
*
|
*
|
||||||
* @param array $request {
|
* @param array $request {
|
||||||
* The array of request data. All arguments are optional and may be empty.
|
* The array of request data. All arguments are optional and may be empty.
|
||||||
*
|
*
|
||||||
* @type string $app_name The suggested name of the application.
|
* @type string $app_name The suggested name of the application.
|
||||||
* @type string $success_url The URL the user will be redirected to after approving the application.
|
* @type string $success_url The URL the user will be redirected to after approving the application.
|
||||||
* @type string $reject_url The URL the user will be redirected to after rejecting the application.
|
* @type string $reject_url The URL the user will be redirected to after rejecting the application.
|
||||||
* }
|
* }
|
||||||
* @param WP_User $user The user authorizing the application.
|
* @param WP_User $user The user authorizing the application.
|
||||||
*/
|
*/
|
||||||
do_action( 'wp_authorize_application_password_form', $request, $user );
|
do_action( 'wp_authorize_application_password_form', $request, $user );
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
submit_button(
|
submit_button(
|
||||||
__( 'Yes, I approve of this connection' ),
|
__( 'Yes, I approve of this connection' ),
|
||||||
'primary',
|
'primary',
|
||||||
'approve',
|
'approve',
|
||||||
false,
|
false,
|
||||||
array(
|
array(
|
||||||
'aria-describedby' => 'description-approve',
|
'aria-describedby' => 'description-approve',
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
<p class="description" id="description-approve">
|
<p class="description" id="description-approve">
|
||||||
<?php
|
<?php
|
||||||
if ( $success_url ) {
|
if ( $success_url ) {
|
||||||
printf(
|
printf(
|
||||||
/* translators: %s: The URL the user is being redirected to. */
|
/* translators: %s: The URL the user is being redirected to. */
|
||||||
__( 'You will be sent to %s' ),
|
__( 'You will be sent to %s' ),
|
||||||
'<strong><code>' . esc_html(
|
'<strong><code>' . esc_html(
|
||||||
add_query_arg(
|
add_query_arg(
|
||||||
array(
|
array(
|
||||||
'site_url' => site_url(),
|
'site_url' => site_url(),
|
||||||
'user_login' => $user->user_login,
|
'user_login' => $user->user_login,
|
||||||
'password' => '[------]',
|
'password' => '[------]',
|
||||||
),
|
),
|
||||||
$success_url
|
$success_url
|
||||||
)
|
)
|
||||||
) . '</code></strong>'
|
) . '</code></strong>'
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
_e( 'You will be given a password to manually enter into the application in question.' );
|
_e( 'You will be given a password to manually enter into the application in question.' );
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
submit_button(
|
submit_button(
|
||||||
__( 'No, I do not approve of this connection' ),
|
__( 'No, I do not approve of this connection' ),
|
||||||
'secondary',
|
'secondary',
|
||||||
'reject',
|
'reject',
|
||||||
false,
|
false,
|
||||||
array(
|
array(
|
||||||
'aria-describedby' => 'description-reject',
|
'aria-describedby' => 'description-reject',
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
<p class="description" id="description-reject">
|
<p class="description" id="description-reject">
|
||||||
<?php
|
<?php
|
||||||
if ( $reject_url ) {
|
if ( $reject_url ) {
|
||||||
printf(
|
printf(
|
||||||
/* translators: %s: The URL the user is being redirected to. */
|
/* translators: %s: The URL the user is being redirected to. */
|
||||||
__( 'You will be sent to %s' ),
|
__( 'You will be sent to %s' ),
|
||||||
'<strong><code>' . esc_html( $reject_url ) . '</code></strong>'
|
'<strong><code>' . esc_html( $reject_url ) . '</code></strong>'
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
_e( 'You will be returned to the WordPress Dashboard, and no changes will be made.' );
|
_e( 'You will be returned to the WordPress Dashboard, and no changes will be made.' );
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</p>
|
</p>
|
||||||
</form>
|
</form>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
require_once ABSPATH . 'wp-admin/admin-footer.php';
|
require_once ABSPATH . 'wp-admin/admin-footer.php';
|
||||||
|
|||||||
@@ -1,386 +1,386 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Comment Management Screen
|
* Comment Management Screen
|
||||||
*
|
*
|
||||||
* @package WordPress
|
* @package WordPress
|
||||||
* @subpackage Administration
|
* @subpackage Administration
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** Load WordPress Bootstrap */
|
/** Load WordPress Bootstrap */
|
||||||
require_once __DIR__ . '/admin.php';
|
require_once __DIR__ . '/admin.php';
|
||||||
|
|
||||||
$parent_file = 'edit-comments.php';
|
$parent_file = 'edit-comments.php';
|
||||||
$submenu_file = 'edit-comments.php';
|
$submenu_file = 'edit-comments.php';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @global string $action
|
* @global string $action
|
||||||
*/
|
*/
|
||||||
global $action;
|
global $action;
|
||||||
wp_reset_vars( array( 'action' ) );
|
wp_reset_vars( array( 'action' ) );
|
||||||
|
|
||||||
if ( isset( $_POST['deletecomment'] ) ) {
|
if ( isset( $_POST['deletecomment'] ) ) {
|
||||||
$action = 'deletecomment';
|
$action = 'deletecomment';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( 'cdc' === $action ) {
|
if ( 'cdc' === $action ) {
|
||||||
$action = 'delete';
|
$action = 'delete';
|
||||||
} elseif ( 'mac' === $action ) {
|
} elseif ( 'mac' === $action ) {
|
||||||
$action = 'approve';
|
$action = 'approve';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( isset( $_GET['dt'] ) ) {
|
if ( isset( $_GET['dt'] ) ) {
|
||||||
if ( 'spam' === $_GET['dt'] ) {
|
if ( 'spam' === $_GET['dt'] ) {
|
||||||
$action = 'spam';
|
$action = 'spam';
|
||||||
} elseif ( 'trash' === $_GET['dt'] ) {
|
} elseif ( 'trash' === $_GET['dt'] ) {
|
||||||
$action = 'trash';
|
$action = 'trash';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( isset( $_REQUEST['c'] ) ) {
|
if ( isset( $_REQUEST['c'] ) ) {
|
||||||
$comment_id = absint( $_REQUEST['c'] );
|
$comment_id = absint( $_REQUEST['c'] );
|
||||||
$comment = get_comment( $comment_id );
|
$comment = get_comment( $comment_id );
|
||||||
|
|
||||||
// Prevent actions on a comment associated with a trashed post.
|
// Prevent actions on a comment associated with a trashed post.
|
||||||
if ( $comment && 'trash' === get_post_status( $comment->comment_post_ID ) ) {
|
if ( $comment && 'trash' === get_post_status( $comment->comment_post_ID ) ) {
|
||||||
wp_die(
|
wp_die(
|
||||||
__( 'You cannot edit this comment because the associated post is in the Trash. Please restore the post first, then try again.' )
|
__( 'You cannot edit this comment because the associated post is in the Trash. Please restore the post first, then try again.' )
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$comment = null;
|
$comment = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ( $action ) {
|
switch ( $action ) {
|
||||||
|
|
||||||
case 'editcomment':
|
case 'editcomment':
|
||||||
// Used in the HTML title tag.
|
// Used in the HTML title tag.
|
||||||
$title = __( 'Edit Comment' );
|
$title = __( 'Edit Comment' );
|
||||||
|
|
||||||
get_current_screen()->add_help_tab(
|
get_current_screen()->add_help_tab(
|
||||||
array(
|
array(
|
||||||
'id' => 'overview',
|
'id' => 'overview',
|
||||||
'title' => __( 'Overview' ),
|
'title' => __( 'Overview' ),
|
||||||
'content' =>
|
'content' =>
|
||||||
'<p>' . __( 'You can edit the information left in a comment if needed. This is often useful when you notice that a commenter has made a typographical error.' ) . '</p>' .
|
'<p>' . __( 'You can edit the information left in a comment if needed. This is often useful when you notice that a commenter has made a typographical error.' ) . '</p>' .
|
||||||
'<p>' . __( 'You can also moderate the comment from this screen using the Status box, where you can also change the timestamp of the comment.' ) . '</p>',
|
'<p>' . __( 'You can also moderate the comment from this screen using the Status box, where you can also change the timestamp of the comment.' ) . '</p>',
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
get_current_screen()->set_help_sidebar(
|
get_current_screen()->set_help_sidebar(
|
||||||
'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
|
'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
|
||||||
'<p>' . __( '<a href="https://wordpress.org/documentation/article/comments-screen/">Documentation on Comments</a>' ) . '</p>' .
|
'<p>' . __( '<a href="https://wordpress.org/documentation/article/comments-screen/">Documentation on Comments</a>' ) . '</p>' .
|
||||||
'<p>' . __( '<a href="https://wordpress.org/support/forums/">Support forums</a>' ) . '</p>'
|
'<p>' . __( '<a href="https://wordpress.org/support/forums/">Support forums</a>' ) . '</p>'
|
||||||
);
|
);
|
||||||
|
|
||||||
wp_enqueue_script( 'comment' );
|
wp_enqueue_script( 'comment' );
|
||||||
require_once ABSPATH . 'wp-admin/admin-header.php';
|
require_once ABSPATH . 'wp-admin/admin-header.php';
|
||||||
|
|
||||||
if ( ! $comment ) {
|
if ( ! $comment ) {
|
||||||
comment_footer_die( __( 'Invalid comment ID.' ) . sprintf( ' <a href="%s">' . __( 'Go back' ) . '</a>.', 'javascript:history.go(-1)' ) );
|
comment_footer_die( __( 'Invalid comment ID.' ) . sprintf( ' <a href="%s">' . __( 'Go back' ) . '</a>.', 'javascript:history.go(-1)' ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! current_user_can( 'edit_comment', $comment_id ) ) {
|
if ( ! current_user_can( 'edit_comment', $comment_id ) ) {
|
||||||
comment_footer_die( __( 'Sorry, you are not allowed to edit this comment.' ) );
|
comment_footer_die( __( 'Sorry, you are not allowed to edit this comment.' ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( 'trash' === $comment->comment_approved ) {
|
if ( 'trash' === $comment->comment_approved ) {
|
||||||
comment_footer_die( __( 'This comment is in the Trash. Please move it out of the Trash if you want to edit it.' ) );
|
comment_footer_die( __( 'This comment is in the Trash. Please move it out of the Trash if you want to edit it.' ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
$comment = get_comment_to_edit( $comment_id );
|
$comment = get_comment_to_edit( $comment_id );
|
||||||
|
|
||||||
require ABSPATH . 'wp-admin/edit-form-comment.php';
|
require ABSPATH . 'wp-admin/edit-form-comment.php';
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'delete':
|
case 'delete':
|
||||||
case 'approve':
|
case 'approve':
|
||||||
case 'trash':
|
case 'trash':
|
||||||
case 'spam':
|
case 'spam':
|
||||||
// Used in the HTML title tag.
|
// Used in the HTML title tag.
|
||||||
$title = __( 'Moderate Comment' );
|
$title = __( 'Moderate Comment' );
|
||||||
|
|
||||||
if ( ! $comment ) {
|
if ( ! $comment ) {
|
||||||
wp_redirect( admin_url( 'edit-comments.php?error=1' ) );
|
wp_redirect( admin_url( 'edit-comments.php?error=1' ) );
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! current_user_can( 'edit_comment', $comment->comment_ID ) ) {
|
if ( ! current_user_can( 'edit_comment', $comment->comment_ID ) ) {
|
||||||
wp_redirect( admin_url( 'edit-comments.php?error=2' ) );
|
wp_redirect( admin_url( 'edit-comments.php?error=2' ) );
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
|
|
||||||
// No need to re-approve/re-trash/re-spam a comment.
|
// No need to re-approve/re-trash/re-spam a comment.
|
||||||
if ( str_replace( '1', 'approve', $comment->comment_approved ) === $action ) {
|
if ( str_replace( '1', 'approve', $comment->comment_approved ) === $action ) {
|
||||||
wp_redirect( admin_url( 'edit-comments.php?same=' . $comment_id ) );
|
wp_redirect( admin_url( 'edit-comments.php?same=' . $comment_id ) );
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
|
|
||||||
require_once ABSPATH . 'wp-admin/admin-header.php';
|
require_once ABSPATH . 'wp-admin/admin-header.php';
|
||||||
|
|
||||||
$formaction = $action . 'comment';
|
$formaction = $action . 'comment';
|
||||||
$nonce_action = ( 'approve' === $action ) ? 'approve-comment_' : 'delete-comment_';
|
$nonce_action = ( 'approve' === $action ) ? 'approve-comment_' : 'delete-comment_';
|
||||||
$nonce_action .= $comment_id;
|
$nonce_action .= $comment_id;
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<div class="wrap">
|
<div class="wrap">
|
||||||
|
|
||||||
<h1><?php echo esc_html( $title ); ?></h1>
|
<h1><?php echo esc_html( $title ); ?></h1>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
switch ( $action ) {
|
switch ( $action ) {
|
||||||
case 'spam':
|
case 'spam':
|
||||||
$caution_msg = __( 'You are about to mark the following comment as spam:' );
|
$caution_msg = __( 'You are about to mark the following comment as spam:' );
|
||||||
$button = _x( 'Mark as spam', 'comment' );
|
$button = _x( 'Mark as spam', 'comment' );
|
||||||
break;
|
break;
|
||||||
case 'trash':
|
case 'trash':
|
||||||
$caution_msg = __( 'You are about to move the following comment to the Trash:' );
|
$caution_msg = __( 'You are about to move the following comment to the Trash:' );
|
||||||
$button = __( 'Move to Trash' );
|
$button = __( 'Move to Trash' );
|
||||||
break;
|
break;
|
||||||
case 'delete':
|
case 'delete':
|
||||||
$caution_msg = __( 'You are about to delete the following comment:' );
|
$caution_msg = __( 'You are about to delete the following comment:' );
|
||||||
$button = __( 'Permanently delete comment' );
|
$button = __( 'Permanently delete comment' );
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$caution_msg = __( 'You are about to approve the following comment:' );
|
$caution_msg = __( 'You are about to approve the following comment:' );
|
||||||
$button = __( 'Approve comment' );
|
$button = __( 'Approve comment' );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( '0' !== $comment->comment_approved ) { // If not unapproved.
|
if ( '0' !== $comment->comment_approved ) { // If not unapproved.
|
||||||
$message = '';
|
$message = '';
|
||||||
switch ( $comment->comment_approved ) {
|
switch ( $comment->comment_approved ) {
|
||||||
case '1':
|
case '1':
|
||||||
$message = __( 'This comment is currently approved.' );
|
$message = __( 'This comment is currently approved.' );
|
||||||
break;
|
break;
|
||||||
case 'spam':
|
case 'spam':
|
||||||
$message = __( 'This comment is currently marked as spam.' );
|
$message = __( 'This comment is currently marked as spam.' );
|
||||||
break;
|
break;
|
||||||
case 'trash':
|
case 'trash':
|
||||||
$message = __( 'This comment is currently in the Trash.' );
|
$message = __( 'This comment is currently in the Trash.' );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ( $message ) {
|
if ( $message ) {
|
||||||
wp_admin_notice(
|
wp_admin_notice(
|
||||||
$message,
|
$message,
|
||||||
array(
|
array(
|
||||||
'type' => 'info',
|
'type' => 'info',
|
||||||
'id' => 'message',
|
'id' => 'message',
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
wp_admin_notice(
|
wp_admin_notice(
|
||||||
'<strong>' . __( 'Caution:' ) . '</strong> ' . $caution_msg,
|
'<strong>' . __( 'Caution:' ) . '</strong> ' . $caution_msg,
|
||||||
array(
|
array(
|
||||||
'type' => 'warning',
|
'type' => 'warning',
|
||||||
'id' => 'message',
|
'id' => 'message',
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<table class="form-table comment-ays">
|
<table class="form-table comment-ays">
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row"><?php _e( 'Author' ); ?></th>
|
<th scope="row"><?php _e( 'Author' ); ?></th>
|
||||||
<td><?php comment_author( $comment ); ?></td>
|
<td><?php comment_author( $comment ); ?></td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php if ( get_comment_author_email( $comment ) ) { ?>
|
<?php if ( get_comment_author_email( $comment ) ) { ?>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row"><?php _e( 'Email' ); ?></th>
|
<th scope="row"><?php _e( 'Email' ); ?></th>
|
||||||
<td><?php comment_author_email( $comment ); ?></td>
|
<td><?php comment_author_email( $comment ); ?></td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<?php if ( get_comment_author_url( $comment ) ) { ?>
|
<?php if ( get_comment_author_url( $comment ) ) { ?>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row"><?php _e( 'URL' ); ?></th>
|
<th scope="row"><?php _e( 'URL' ); ?></th>
|
||||||
<td><a href="<?php comment_author_url( $comment ); ?>"><?php comment_author_url( $comment ); ?></a></td>
|
<td><a href="<?php comment_author_url( $comment ); ?>"><?php comment_author_url( $comment ); ?></a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row"><?php /* translators: Column name or table row header. */ _e( 'In response to' ); ?></th>
|
<th scope="row"><?php /* translators: Column name or table row header. */ _e( 'In response to' ); ?></th>
|
||||||
<td>
|
<td>
|
||||||
<?php
|
<?php
|
||||||
$post_id = $comment->comment_post_ID;
|
$post_id = $comment->comment_post_ID;
|
||||||
if ( current_user_can( 'edit_post', $post_id ) ) {
|
if ( current_user_can( 'edit_post', $post_id ) ) {
|
||||||
$post_link = "<a href='" . esc_url( get_edit_post_link( $post_id ) ) . "'>";
|
$post_link = "<a href='" . esc_url( get_edit_post_link( $post_id ) ) . "'>";
|
||||||
$post_link .= esc_html( get_the_title( $post_id ) ) . '</a>';
|
$post_link .= esc_html( get_the_title( $post_id ) ) . '</a>';
|
||||||
} else {
|
} else {
|
||||||
$post_link = esc_html( get_the_title( $post_id ) );
|
$post_link = esc_html( get_the_title( $post_id ) );
|
||||||
}
|
}
|
||||||
echo $post_link;
|
echo $post_link;
|
||||||
|
|
||||||
if ( $comment->comment_parent ) {
|
if ( $comment->comment_parent ) {
|
||||||
$parent = get_comment( $comment->comment_parent );
|
$parent = get_comment( $comment->comment_parent );
|
||||||
$parent_link = esc_url( get_comment_link( $parent ) );
|
$parent_link = esc_url( get_comment_link( $parent ) );
|
||||||
$name = get_comment_author( $parent );
|
$name = get_comment_author( $parent );
|
||||||
printf(
|
printf(
|
||||||
/* translators: %s: Comment link. */
|
/* translators: %s: Comment link. */
|
||||||
' | ' . __( 'In reply to %s.' ),
|
' | ' . __( 'In reply to %s.' ),
|
||||||
'<a href="' . $parent_link . '">' . $name . '</a>'
|
'<a href="' . $parent_link . '">' . $name . '</a>'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row"><?php _e( 'Submitted on' ); ?></th>
|
<th scope="row"><?php _e( 'Submitted on' ); ?></th>
|
||||||
<td>
|
<td>
|
||||||
<?php
|
<?php
|
||||||
$submitted = sprintf(
|
$submitted = sprintf(
|
||||||
/* translators: 1: Comment date, 2: Comment time. */
|
/* translators: 1: Comment date, 2: Comment time. */
|
||||||
__( '%1$s at %2$s' ),
|
__( '%1$s at %2$s' ),
|
||||||
/* translators: Comment date format. See https://www.php.net/manual/datetime.format.php */
|
/* translators: Comment date format. See https://www.php.net/manual/datetime.format.php */
|
||||||
get_comment_date( __( 'Y/m/d' ), $comment ),
|
get_comment_date( __( 'Y/m/d' ), $comment ),
|
||||||
/* translators: Comment time format. See https://www.php.net/manual/datetime.format.php */
|
/* translators: Comment time format. See https://www.php.net/manual/datetime.format.php */
|
||||||
get_comment_date( __( 'g:i a' ), $comment )
|
get_comment_date( __( 'g:i a' ), $comment )
|
||||||
);
|
);
|
||||||
if ( 'approved' === wp_get_comment_status( $comment ) && ! empty( $comment->comment_post_ID ) ) {
|
if ( 'approved' === wp_get_comment_status( $comment ) && ! empty( $comment->comment_post_ID ) ) {
|
||||||
echo '<a href="' . esc_url( get_comment_link( $comment ) ) . '">' . $submitted . '</a>';
|
echo '<a href="' . esc_url( get_comment_link( $comment ) ) . '">' . $submitted . '</a>';
|
||||||
} else {
|
} else {
|
||||||
echo $submitted;
|
echo $submitted;
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row"><?php /* translators: Field name in comment form. */ _ex( 'Comment', 'noun' ); ?></th>
|
<th scope="row"><?php /* translators: Field name in comment form. */ _ex( 'Comment', 'noun' ); ?></th>
|
||||||
<td class="comment-content">
|
<td class="comment-content">
|
||||||
<?php comment_text( $comment ); ?>
|
<?php comment_text( $comment ); ?>
|
||||||
<p class="edit-comment">
|
<p class="edit-comment">
|
||||||
<a href="<?php echo esc_url( admin_url( "comment.php?action=editcomment&c={$comment->comment_ID}" ) ); ?>"><?php esc_html_e( 'Edit' ); ?></a>
|
<a href="<?php echo esc_url( admin_url( "comment.php?action=editcomment&c={$comment->comment_ID}" ) ); ?>"><?php esc_html_e( 'Edit' ); ?></a>
|
||||||
</p>
|
</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<form action="comment.php" method="get" class="comment-ays-submit">
|
<form action="comment.php" method="get" class="comment-ays-submit">
|
||||||
<p>
|
<p>
|
||||||
<?php submit_button( $button, 'primary', 'submit', false ); ?>
|
<?php submit_button( $button, 'primary', 'submit', false ); ?>
|
||||||
<a href="<?php echo esc_url( admin_url( 'edit-comments.php' ) ); ?>" class="button-cancel"><?php esc_html_e( 'Cancel' ); ?></a>
|
<a href="<?php echo esc_url( admin_url( 'edit-comments.php' ) ); ?>" class="button-cancel"><?php esc_html_e( 'Cancel' ); ?></a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<?php wp_nonce_field( $nonce_action ); ?>
|
<?php wp_nonce_field( $nonce_action ); ?>
|
||||||
<input type="hidden" name="action" value="<?php echo esc_attr( $formaction ); ?>" />
|
<input type="hidden" name="action" value="<?php echo esc_attr( $formaction ); ?>" />
|
||||||
<input type="hidden" name="c" value="<?php echo esc_attr( $comment->comment_ID ); ?>" />
|
<input type="hidden" name="c" value="<?php echo esc_attr( $comment->comment_ID ); ?>" />
|
||||||
<input type="hidden" name="noredir" value="1" />
|
<input type="hidden" name="noredir" value="1" />
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'deletecomment':
|
case 'deletecomment':
|
||||||
case 'trashcomment':
|
case 'trashcomment':
|
||||||
case 'untrashcomment':
|
case 'untrashcomment':
|
||||||
case 'spamcomment':
|
case 'spamcomment':
|
||||||
case 'unspamcomment':
|
case 'unspamcomment':
|
||||||
case 'approvecomment':
|
case 'approvecomment':
|
||||||
case 'unapprovecomment':
|
case 'unapprovecomment':
|
||||||
$comment_id = absint( $_REQUEST['c'] );
|
$comment_id = absint( $_REQUEST['c'] );
|
||||||
|
|
||||||
if ( in_array( $action, array( 'approvecomment', 'unapprovecomment' ), true ) ) {
|
if ( in_array( $action, array( 'approvecomment', 'unapprovecomment' ), true ) ) {
|
||||||
check_admin_referer( 'approve-comment_' . $comment_id );
|
check_admin_referer( 'approve-comment_' . $comment_id );
|
||||||
} else {
|
} else {
|
||||||
check_admin_referer( 'delete-comment_' . $comment_id );
|
check_admin_referer( 'delete-comment_' . $comment_id );
|
||||||
}
|
}
|
||||||
|
|
||||||
$noredir = isset( $_REQUEST['noredir'] );
|
$noredir = isset( $_REQUEST['noredir'] );
|
||||||
|
|
||||||
$comment = get_comment( $comment_id );
|
$comment = get_comment( $comment_id );
|
||||||
if ( ! $comment ) {
|
if ( ! $comment ) {
|
||||||
comment_footer_die( __( 'Invalid comment ID.' ) . sprintf( ' <a href="%s">' . __( 'Go back' ) . '</a>.', 'edit-comments.php' ) );
|
comment_footer_die( __( 'Invalid comment ID.' ) . sprintf( ' <a href="%s">' . __( 'Go back' ) . '</a>.', 'edit-comments.php' ) );
|
||||||
}
|
}
|
||||||
if ( ! current_user_can( 'edit_comment', $comment->comment_ID ) ) {
|
if ( ! current_user_can( 'edit_comment', $comment->comment_ID ) ) {
|
||||||
comment_footer_die( __( 'Sorry, you are not allowed to edit comments on this post.' ) );
|
comment_footer_die( __( 'Sorry, you are not allowed to edit comments on this post.' ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( wp_get_referer() && ! $noredir && ! str_contains( wp_get_referer(), 'comment.php' ) ) {
|
if ( wp_get_referer() && ! $noredir && ! str_contains( wp_get_referer(), 'comment.php' ) ) {
|
||||||
$redir = wp_get_referer();
|
$redir = wp_get_referer();
|
||||||
} elseif ( wp_get_original_referer() && ! $noredir ) {
|
} elseif ( wp_get_original_referer() && ! $noredir ) {
|
||||||
$redir = wp_get_original_referer();
|
$redir = wp_get_original_referer();
|
||||||
} elseif ( in_array( $action, array( 'approvecomment', 'unapprovecomment' ), true ) ) {
|
} elseif ( in_array( $action, array( 'approvecomment', 'unapprovecomment' ), true ) ) {
|
||||||
$redir = admin_url( 'edit-comments.php?p=' . absint( $comment->comment_post_ID ) );
|
$redir = admin_url( 'edit-comments.php?p=' . absint( $comment->comment_post_ID ) );
|
||||||
} else {
|
} else {
|
||||||
$redir = admin_url( 'edit-comments.php' );
|
$redir = admin_url( 'edit-comments.php' );
|
||||||
}
|
}
|
||||||
|
|
||||||
$redir = remove_query_arg( array( 'spammed', 'unspammed', 'trashed', 'untrashed', 'deleted', 'ids', 'approved', 'unapproved' ), $redir );
|
$redir = remove_query_arg( array( 'spammed', 'unspammed', 'trashed', 'untrashed', 'deleted', 'ids', 'approved', 'unapproved' ), $redir );
|
||||||
|
|
||||||
switch ( $action ) {
|
switch ( $action ) {
|
||||||
case 'deletecomment':
|
case 'deletecomment':
|
||||||
wp_delete_comment( $comment );
|
wp_delete_comment( $comment );
|
||||||
$redir = add_query_arg( array( 'deleted' => '1' ), $redir );
|
$redir = add_query_arg( array( 'deleted' => '1' ), $redir );
|
||||||
break;
|
break;
|
||||||
case 'trashcomment':
|
case 'trashcomment':
|
||||||
wp_trash_comment( $comment );
|
wp_trash_comment( $comment );
|
||||||
$redir = add_query_arg(
|
$redir = add_query_arg(
|
||||||
array(
|
array(
|
||||||
'trashed' => '1',
|
'trashed' => '1',
|
||||||
'ids' => $comment_id,
|
'ids' => $comment_id,
|
||||||
),
|
),
|
||||||
$redir
|
$redir
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case 'untrashcomment':
|
case 'untrashcomment':
|
||||||
wp_untrash_comment( $comment );
|
wp_untrash_comment( $comment );
|
||||||
$redir = add_query_arg( array( 'untrashed' => '1' ), $redir );
|
$redir = add_query_arg( array( 'untrashed' => '1' ), $redir );
|
||||||
break;
|
break;
|
||||||
case 'spamcomment':
|
case 'spamcomment':
|
||||||
wp_spam_comment( $comment );
|
wp_spam_comment( $comment );
|
||||||
$redir = add_query_arg(
|
$redir = add_query_arg(
|
||||||
array(
|
array(
|
||||||
'spammed' => '1',
|
'spammed' => '1',
|
||||||
'ids' => $comment_id,
|
'ids' => $comment_id,
|
||||||
),
|
),
|
||||||
$redir
|
$redir
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case 'unspamcomment':
|
case 'unspamcomment':
|
||||||
wp_unspam_comment( $comment );
|
wp_unspam_comment( $comment );
|
||||||
$redir = add_query_arg( array( 'unspammed' => '1' ), $redir );
|
$redir = add_query_arg( array( 'unspammed' => '1' ), $redir );
|
||||||
break;
|
break;
|
||||||
case 'approvecomment':
|
case 'approvecomment':
|
||||||
wp_set_comment_status( $comment, 'approve' );
|
wp_set_comment_status( $comment, 'approve' );
|
||||||
$redir = add_query_arg( array( 'approved' => 1 ), $redir );
|
$redir = add_query_arg( array( 'approved' => 1 ), $redir );
|
||||||
break;
|
break;
|
||||||
case 'unapprovecomment':
|
case 'unapprovecomment':
|
||||||
wp_set_comment_status( $comment, 'hold' );
|
wp_set_comment_status( $comment, 'hold' );
|
||||||
$redir = add_query_arg( array( 'unapproved' => 1 ), $redir );
|
$redir = add_query_arg( array( 'unapproved' => 1 ), $redir );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
wp_redirect( $redir );
|
wp_redirect( $redir );
|
||||||
die;
|
die;
|
||||||
|
|
||||||
case 'editedcomment':
|
case 'editedcomment':
|
||||||
$comment_id = absint( $_POST['comment_ID'] );
|
$comment_id = absint( $_POST['comment_ID'] );
|
||||||
$comment_post_id = absint( $_POST['comment_post_ID'] );
|
$comment_post_id = absint( $_POST['comment_post_ID'] );
|
||||||
|
|
||||||
check_admin_referer( 'update-comment_' . $comment_id );
|
check_admin_referer( 'update-comment_' . $comment_id );
|
||||||
|
|
||||||
$updated = edit_comment();
|
$updated = edit_comment();
|
||||||
if ( is_wp_error( $updated ) ) {
|
if ( is_wp_error( $updated ) ) {
|
||||||
wp_die( $updated->get_error_message() );
|
wp_die( $updated->get_error_message() );
|
||||||
}
|
}
|
||||||
|
|
||||||
$location = ( empty( $_POST['referredby'] ) ? "edit-comments.php?p=$comment_post_id" : $_POST['referredby'] ) . '#comment-' . $comment_id;
|
$location = ( empty( $_POST['referredby'] ) ? "edit-comments.php?p=$comment_post_id" : $_POST['referredby'] ) . '#comment-' . $comment_id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filters the URI the user is redirected to after editing a comment in the admin.
|
* Filters the URI the user is redirected to after editing a comment in the admin.
|
||||||
*
|
*
|
||||||
* @since 2.1.0
|
* @since 2.1.0
|
||||||
*
|
*
|
||||||
* @param string $location The URI the user will be redirected to.
|
* @param string $location The URI the user will be redirected to.
|
||||||
* @param int $comment_id The ID of the comment being edited.
|
* @param int $comment_id The ID of the comment being edited.
|
||||||
*/
|
*/
|
||||||
$location = apply_filters( 'comment_edit_redirect', $location, $comment_id );
|
$location = apply_filters( 'comment_edit_redirect', $location, $comment_id );
|
||||||
|
|
||||||
wp_redirect( $location );
|
wp_redirect( $location );
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
wp_die( __( 'Unknown action.' ) );
|
wp_die( __( 'Unknown action.' ) );
|
||||||
|
|
||||||
} // End switch.
|
} // End switch.
|
||||||
|
|
||||||
require_once ABSPATH . 'wp-admin/admin-footer.php';
|
require_once ABSPATH . 'wp-admin/admin-footer.php';
|
||||||
|
|||||||
@@ -1,109 +1,109 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Contribute administration panel.
|
* Contribute administration panel.
|
||||||
*
|
*
|
||||||
* @package WordPress
|
* @package WordPress
|
||||||
* @subpackage Administration
|
* @subpackage Administration
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** WordPress Administration Bootstrap */
|
/** WordPress Administration Bootstrap */
|
||||||
require_once __DIR__ . '/admin.php';
|
require_once __DIR__ . '/admin.php';
|
||||||
|
|
||||||
// Used in the HTML title tag.
|
// Used in the HTML title tag.
|
||||||
$title = __( 'Get Involved' );
|
$title = __( 'Get Involved' );
|
||||||
|
|
||||||
list( $display_version ) = explode( '-', get_bloginfo( 'version' ) );
|
list( $display_version ) = explode( '-', get_bloginfo( 'version' ) );
|
||||||
|
|
||||||
require_once ABSPATH . 'wp-admin/admin-header.php';
|
require_once ABSPATH . 'wp-admin/admin-header.php';
|
||||||
?>
|
?>
|
||||||
<div class="wrap about__container">
|
<div class="wrap about__container">
|
||||||
|
|
||||||
<div class="about__header">
|
<div class="about__header">
|
||||||
<div class="about__header-title">
|
<div class="about__header-title">
|
||||||
<h1>
|
<h1>
|
||||||
<?php _e( 'Get Involved' ); ?>
|
<?php _e( 'Get Involved' ); ?>
|
||||||
</h1>
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="about__header-text">
|
<div class="about__header-text">
|
||||||
<?php _e( 'Be the future of WordPress' ); ?>
|
<?php _e( 'Be the future of WordPress' ); ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<nav class="about__header-navigation nav-tab-wrapper wp-clearfix" aria-label="<?php esc_attr_e( 'Secondary menu' ); ?>">
|
<nav class="about__header-navigation nav-tab-wrapper wp-clearfix" aria-label="<?php esc_attr_e( 'Secondary menu' ); ?>">
|
||||||
<a href="about.php" class="nav-tab"><?php _e( 'What’s New' ); ?></a>
|
<a href="about.php" class="nav-tab"><?php _e( 'What’s New' ); ?></a>
|
||||||
<a href="credits.php" class="nav-tab"><?php _e( 'Credits' ); ?></a>
|
<a href="credits.php" class="nav-tab"><?php _e( 'Credits' ); ?></a>
|
||||||
<a href="freedoms.php" class="nav-tab"><?php _e( 'Freedoms' ); ?></a>
|
<a href="freedoms.php" class="nav-tab"><?php _e( 'Freedoms' ); ?></a>
|
||||||
<a href="privacy.php" class="nav-tab"><?php _e( 'Privacy' ); ?></a>
|
<a href="privacy.php" class="nav-tab"><?php _e( 'Privacy' ); ?></a>
|
||||||
<a href="contribute.php" class="nav-tab nav-tab-active" aria-current="page"><?php _e( 'Get Involved' ); ?></a>
|
<a href="contribute.php" class="nav-tab nav-tab-active" aria-current="page"><?php _e( 'Get Involved' ); ?></a>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<div class="about__section has-2-columns is-wider-right">
|
<div class="about__section has-2-columns is-wider-right">
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<img src="<?php echo esc_url( admin_url( 'images/contribute-main.svg?ver=6.5' ) ); ?>" alt="" width="290" height="290" />
|
<img src="<?php echo esc_url( admin_url( 'images/contribute-main.svg?ver=6.5' ) ); ?>" alt="" width="290" height="290" />
|
||||||
</div>
|
</div>
|
||||||
<div class="column is-vertically-aligned-center">
|
<div class="column is-vertically-aligned-center">
|
||||||
<p><?php _e( 'Do you use WordPress for work, for personal projects, or even just for fun? You can help shape the long-term success of the open source project that powers millions of websites around the world.' ); ?></p>
|
<p><?php _e( 'Do you use WordPress for work, for personal projects, or even just for fun? You can help shape the long-term success of the open source project that powers millions of websites around the world.' ); ?></p>
|
||||||
<p><?php _e( 'Join the diverse WordPress contributor community and connect with other people who are passionate about maintaining a free and open web.' ); ?></p>
|
<p><?php _e( 'Join the diverse WordPress contributor community and connect with other people who are passionate about maintaining a free and open web.' ); ?></p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><?php _e( 'Be part of a global open source community.' ); ?></li>
|
<li><?php _e( 'Be part of a global open source community.' ); ?></li>
|
||||||
<li><?php _e( 'Apply your skills or learn new ones.' ); ?></li>
|
<li><?php _e( 'Apply your skills or learn new ones.' ); ?></li>
|
||||||
<li><?php _e( 'Grow your network and make friends.' ); ?></li>
|
<li><?php _e( 'Grow your network and make friends.' ); ?></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="about__section has-2-columns is-wider-left">
|
<div class="about__section has-2-columns is-wider-left">
|
||||||
<div class="column is-vertically-aligned-center">
|
<div class="column is-vertically-aligned-center">
|
||||||
<h2 class="is-smaller-heading"><?php _e( 'No-code contribution' ); ?></h2>
|
<h2 class="is-smaller-heading"><?php _e( 'No-code contribution' ); ?></h2>
|
||||||
<p><?php _e( 'WordPress may thrive on technical contributions, but you don’t have to code to contribute. Here are some of the ways you can make an impact without writing a single line of code:' ); ?></p>
|
<p><?php _e( 'WordPress may thrive on technical contributions, but you don’t have to code to contribute. Here are some of the ways you can make an impact without writing a single line of code:' ); ?></p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><?php _e( '<strong>Share</strong> your knowledge in the WordPress support forums.' ); ?></li>
|
<li><?php _e( '<strong>Share</strong> your knowledge in the WordPress support forums.' ); ?></li>
|
||||||
<li><?php _e( '<strong>Write</strong> or improve documentation for WordPress.' ); ?></li>
|
<li><?php _e( '<strong>Write</strong> or improve documentation for WordPress.' ); ?></li>
|
||||||
<li><?php _e( '<strong>Translate</strong> WordPress into your local language.' ); ?></li>
|
<li><?php _e( '<strong>Translate</strong> WordPress into your local language.' ); ?></li>
|
||||||
<li><?php _e( '<strong>Create</strong> and improve WordPress educational materials.' ); ?></li>
|
<li><?php _e( '<strong>Create</strong> and improve WordPress educational materials.' ); ?></li>
|
||||||
<li><?php _e( '<strong>Promote</strong> the WordPress project to your community.' ); ?></li>
|
<li><?php _e( '<strong>Promote</strong> the WordPress project to your community.' ); ?></li>
|
||||||
<li><?php _e( '<strong>Curate</strong> submissions or take photos for the Photo Directory.' ); ?></li>
|
<li><?php _e( '<strong>Curate</strong> submissions or take photos for the Photo Directory.' ); ?></li>
|
||||||
<li><?php _e( '<strong>Organize</strong> or participate in local Meetups and WordCamps.' ); ?></li>
|
<li><?php _e( '<strong>Organize</strong> or participate in local Meetups and WordCamps.' ); ?></li>
|
||||||
<li><?php _e( '<strong>Lend</strong> your creative imagination to the WordPress UI design.' ); ?></li>
|
<li><?php _e( '<strong>Lend</strong> your creative imagination to the WordPress UI design.' ); ?></li>
|
||||||
<li><?php _e( '<strong>Edit</strong> videos and add captions to WordPress.tv.' ); ?></li>
|
<li><?php _e( '<strong>Edit</strong> videos and add captions to WordPress.tv.' ); ?></li>
|
||||||
<li><?php _e( '<strong>Explore</strong> ways to reduce the environmental impact of websites.' ); ?></li>
|
<li><?php _e( '<strong>Explore</strong> ways to reduce the environmental impact of websites.' ); ?></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<img src="<?php echo esc_url( admin_url( 'images/contribute-no-code.svg?ver=6.5' ) ); ?>" alt="" width="290" height="290" />
|
<img src="<?php echo esc_url( admin_url( 'images/contribute-no-code.svg?ver=6.5' ) ); ?>" alt="" width="290" height="290" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="about__section has-2-columns is-wider-right">
|
<div class="about__section has-2-columns is-wider-right">
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<img src="<?php echo esc_url( admin_url( 'images/contribute-code.svg?ver=6.5' ) ); ?>" alt="" width="290" height="290" />
|
<img src="<?php echo esc_url( admin_url( 'images/contribute-code.svg?ver=6.5' ) ); ?>" alt="" width="290" height="290" />
|
||||||
</div>
|
</div>
|
||||||
<div class="column is-vertically-aligned-center">
|
<div class="column is-vertically-aligned-center">
|
||||||
<h2 class="is-smaller-heading"><?php _e( 'Code-based contribution' ); ?></h2>
|
<h2 class="is-smaller-heading"><?php _e( 'Code-based contribution' ); ?></h2>
|
||||||
<p><?php _e( 'If you do code, or want to learn how, you can contribute technically in numerous ways:' ); ?></p>
|
<p><?php _e( 'If you do code, or want to learn how, you can contribute technically in numerous ways:' ); ?></p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><?php _e( '<strong>Find</strong> and report bugs in the WordPress core software.' ); ?></li>
|
<li><?php _e( '<strong>Find</strong> and report bugs in the WordPress core software.' ); ?></li>
|
||||||
<li><?php _e( '<strong>Test</strong> new releases and proposed features for the Block Editor.' ); ?></li>
|
<li><?php _e( '<strong>Test</strong> new releases and proposed features for the Block Editor.' ); ?></li>
|
||||||
<li><?php _e( '<strong>Write</strong> and submit patches to fix bugs or help build new features.' ); ?></li>
|
<li><?php _e( '<strong>Write</strong> and submit patches to fix bugs or help build new features.' ); ?></li>
|
||||||
<li><?php _e( '<strong>Contribute</strong> to the code, improve the UX, and test the WordPress app.' ); ?></li>
|
<li><?php _e( '<strong>Contribute</strong> to the code, improve the UX, and test the WordPress app.' ); ?></li>
|
||||||
</ul>
|
</ul>
|
||||||
<p><?php _e( 'WordPress embraces new technologies, while being committed to backward compatibility. The WordPress project uses the following languages and libraries:' ); ?></p>
|
<p><?php _e( 'WordPress embraces new technologies, while being committed to backward compatibility. The WordPress project uses the following languages and libraries:' ); ?></p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><?php _e( 'WordPress Core and Block Editor: HTML, CSS, PHP, SQL, JavaScript, and React.' ); ?></li>
|
<li><?php _e( 'WordPress Core and Block Editor: HTML, CSS, PHP, SQL, JavaScript, and React.' ); ?></li>
|
||||||
<li><?php _e( 'WordPress app: Kotlin, Java, Swift, Objective-C, Vue, Python, and TypeScript.' ); ?></li>
|
<li><?php _e( 'WordPress app: Kotlin, Java, Swift, Objective-C, Vue, Python, and TypeScript.' ); ?></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="about__section is-feature has-subtle-background-color">
|
<div class="about__section is-feature has-subtle-background-color">
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<h2><?php _e( 'Shape the future of the web with WordPress' ); ?></h2>
|
<h2><?php _e( 'Shape the future of the web with WordPress' ); ?></h2>
|
||||||
<p><?php _e( 'Finding the area that aligns with your skills and interests is the first step toward meaningful contribution. With more than 20 Make WordPress teams working on different parts of the open source WordPress project, there’s a place for everyone, no matter what your skill set is.' ); ?></p>
|
<p><?php _e( 'Finding the area that aligns with your skills and interests is the first step toward meaningful contribution. With more than 20 Make WordPress teams working on different parts of the open source WordPress project, there’s a place for everyone, no matter what your skill set is.' ); ?></p>
|
||||||
<p><a href="<?php echo esc_url( __( 'https://make.wordpress.org/contribute/' ) ); ?>"><?php _e( 'Find your team →' ); ?></a></p>
|
<p><a href="<?php echo esc_url( __( 'https://make.wordpress.org/contribute/' ) ); ?>"><?php _e( 'Find your team →' ); ?></a></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
require_once ABSPATH . 'wp-admin/admin-footer.php';
|
require_once ABSPATH . 'wp-admin/admin-footer.php';
|
||||||
|
|||||||
@@ -1,137 +1,137 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Credits administration panel.
|
* Credits administration panel.
|
||||||
*
|
*
|
||||||
* @package WordPress
|
* @package WordPress
|
||||||
* @subpackage Administration
|
* @subpackage Administration
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** WordPress Administration Bootstrap */
|
/** WordPress Administration Bootstrap */
|
||||||
require_once __DIR__ . '/admin.php';
|
require_once __DIR__ . '/admin.php';
|
||||||
require_once __DIR__ . '/includes/credits.php';
|
require_once __DIR__ . '/includes/credits.php';
|
||||||
|
|
||||||
// Used in the HTML title tag.
|
// Used in the HTML title tag.
|
||||||
$title = __( 'Credits' );
|
$title = __( 'Credits' );
|
||||||
|
|
||||||
list( $display_version ) = explode( '-', get_bloginfo( 'version' ) );
|
list( $display_version ) = explode( '-', get_bloginfo( 'version' ) );
|
||||||
|
|
||||||
require_once ABSPATH . 'wp-admin/admin-header.php';
|
require_once ABSPATH . 'wp-admin/admin-header.php';
|
||||||
|
|
||||||
$credits = wp_credits();
|
$credits = wp_credits();
|
||||||
?>
|
?>
|
||||||
<div class="wrap about__container">
|
<div class="wrap about__container">
|
||||||
|
|
||||||
<div class="about__header">
|
<div class="about__header">
|
||||||
<div class="about__header-title">
|
<div class="about__header-title">
|
||||||
<h1>
|
<h1>
|
||||||
<?php _e( 'Contributors' ); ?>
|
<?php _e( 'Contributors' ); ?>
|
||||||
</h1>
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="about__header-text">
|
<div class="about__header-text">
|
||||||
<?php _e( 'Created by a worldwide team of passionate individuals' ); ?>
|
<?php _e( 'Created by a worldwide team of passionate individuals' ); ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<nav class="about__header-navigation nav-tab-wrapper wp-clearfix" aria-label="<?php esc_attr_e( 'Secondary menu' ); ?>">
|
<nav class="about__header-navigation nav-tab-wrapper wp-clearfix" aria-label="<?php esc_attr_e( 'Secondary menu' ); ?>">
|
||||||
<a href="about.php" class="nav-tab"><?php _e( 'What’s New' ); ?></a>
|
<a href="about.php" class="nav-tab"><?php _e( 'What’s New' ); ?></a>
|
||||||
<a href="credits.php" class="nav-tab nav-tab-active" aria-current="page"><?php _e( 'Credits' ); ?></a>
|
<a href="credits.php" class="nav-tab nav-tab-active" aria-current="page"><?php _e( 'Credits' ); ?></a>
|
||||||
<a href="freedoms.php" class="nav-tab"><?php _e( 'Freedoms' ); ?></a>
|
<a href="freedoms.php" class="nav-tab"><?php _e( 'Freedoms' ); ?></a>
|
||||||
<a href="privacy.php" class="nav-tab"><?php _e( 'Privacy' ); ?></a>
|
<a href="privacy.php" class="nav-tab"><?php _e( 'Privacy' ); ?></a>
|
||||||
<a href="contribute.php" class="nav-tab"><?php _e( 'Get Involved' ); ?></a>
|
<a href="contribute.php" class="nav-tab"><?php _e( 'Get Involved' ); ?></a>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<div class="about__section has-1-column has-gutters">
|
<div class="about__section has-1-column has-gutters">
|
||||||
<div class="column aligncenter">
|
<div class="column aligncenter">
|
||||||
<?php if ( ! $credits ) : ?>
|
<?php if ( ! $credits ) : ?>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<?php
|
<?php
|
||||||
printf(
|
printf(
|
||||||
/* translators: 1: https://wordpress.org/about/ */
|
/* translators: 1: https://wordpress.org/about/ */
|
||||||
__( 'WordPress is created by a <a href="%1$s">worldwide team</a> of passionate individuals.' ),
|
__( 'WordPress is created by a <a href="%1$s">worldwide team</a> of passionate individuals.' ),
|
||||||
__( 'https://wordpress.org/about/' )
|
__( 'https://wordpress.org/about/' )
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
<br />
|
<br />
|
||||||
<a href="<?php echo esc_url( __( 'https://make.wordpress.org/contribute/' ) ); ?>"><?php _e( 'Get involved in WordPress.' ); ?></a>
|
<a href="<?php echo esc_url( __( 'https://make.wordpress.org/contribute/' ) ); ?>"><?php _e( 'Get involved in WordPress.' ); ?></a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<?php else : ?>
|
<?php else : ?>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<?php _e( 'Want to see your name in lights on this page?' ); ?>
|
<?php _e( 'Want to see your name in lights on this page?' ); ?>
|
||||||
<br />
|
<br />
|
||||||
<a href="<?php echo esc_url( __( 'https://make.wordpress.org/contribute/' ) ); ?>"><?php _e( 'Get involved in WordPress.' ); ?></a>
|
<a href="<?php echo esc_url( __( 'https://make.wordpress.org/contribute/' ) ); ?>"><?php _e( 'Get involved in WordPress.' ); ?></a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
if ( ! $credits ) {
|
if ( ! $credits ) {
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
require_once ABSPATH . 'wp-admin/admin-footer.php';
|
require_once ABSPATH . 'wp-admin/admin-footer.php';
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<hr class="is-large" />
|
<hr class="is-large" />
|
||||||
|
|
||||||
<div class="about__section">
|
<div class="about__section">
|
||||||
<div class="column is-edge-to-edge">
|
<div class="column is-edge-to-edge">
|
||||||
<?php wp_credits_section_title( $credits['groups']['core-developers'] ); ?>
|
<?php wp_credits_section_title( $credits['groups']['core-developers'] ); ?>
|
||||||
<?php wp_credits_section_list( $credits, 'core-developers' ); ?>
|
<?php wp_credits_section_list( $credits, 'core-developers' ); ?>
|
||||||
<?php wp_credits_section_list( $credits, 'contributing-developers' ); ?>
|
<?php wp_credits_section_list( $credits, 'contributing-developers' ); ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr />
|
<hr />
|
||||||
|
|
||||||
<div class="about__section">
|
<div class="about__section">
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<?php wp_credits_section_title( $credits['groups']['props'] ); ?>
|
<?php wp_credits_section_title( $credits['groups']['props'] ); ?>
|
||||||
<?php wp_credits_section_list( $credits, 'props' ); ?>
|
<?php wp_credits_section_list( $credits, 'props' ); ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr />
|
<hr />
|
||||||
|
|
||||||
<?php if ( isset( $credits['groups']['translators'] ) || isset( $credits['groups']['validators'] ) ) : ?>
|
<?php if ( isset( $credits['groups']['translators'] ) || isset( $credits['groups']['validators'] ) ) : ?>
|
||||||
<div class="about__section">
|
<div class="about__section">
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<?php wp_credits_section_title( $credits['groups']['validators'] ); ?>
|
<?php wp_credits_section_title( $credits['groups']['validators'] ); ?>
|
||||||
<?php wp_credits_section_list( $credits, 'validators' ); ?>
|
<?php wp_credits_section_list( $credits, 'validators' ); ?>
|
||||||
<?php wp_credits_section_list( $credits, 'translators' ); ?>
|
<?php wp_credits_section_list( $credits, 'translators' ); ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr />
|
<hr />
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
<div class="about__section">
|
<div class="about__section">
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<?php wp_credits_section_title( $credits['groups']['libraries'] ); ?>
|
<?php wp_credits_section_title( $credits['groups']['libraries'] ); ?>
|
||||||
<?php wp_credits_section_list( $credits, 'libraries' ); ?>
|
<?php wp_credits_section_list( $credits, 'libraries' ); ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
require_once ABSPATH . 'wp-admin/admin-footer.php';
|
require_once ABSPATH . 'wp-admin/admin-footer.php';
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// These are strings returned by the API that we want to be translatable.
|
// These are strings returned by the API that we want to be translatable.
|
||||||
__( 'Project Leaders' );
|
__( 'Project Leaders' );
|
||||||
/* translators: %s: The current WordPress version number. */
|
/* translators: %s: The current WordPress version number. */
|
||||||
__( 'Core Contributors to WordPress %s' );
|
__( 'Core Contributors to WordPress %s' );
|
||||||
__( 'Noteworthy Contributors' );
|
__( 'Noteworthy Contributors' );
|
||||||
__( 'Cofounder, Project Lead' );
|
__( 'Cofounder, Project Lead' );
|
||||||
__( 'Lead Developer' );
|
__( 'Lead Developer' );
|
||||||
__( 'Release Lead' );
|
__( 'Release Lead' );
|
||||||
__( 'Release Design Lead' );
|
__( 'Release Design Lead' );
|
||||||
__( 'Release Deputy' );
|
__( 'Release Deputy' );
|
||||||
__( 'Core Developer' );
|
__( 'Core Developer' );
|
||||||
__( 'External Libraries' );
|
__( 'External Libraries' );
|
||||||
|
|||||||
2
backup/wp/wp-admin/css/about-rtl.min.css
vendored
2
backup/wp/wp-admin/css/about.min.css
vendored
2
backup/wp/wp-admin/css/admin-menu.min.css
vendored
@@ -1,77 +1,77 @@
|
|||||||
/*! This file is auto-generated */
|
/*! This file is auto-generated */
|
||||||
.wrap [class*="CodeMirror-lint-marker"],
|
.wrap [class*="CodeMirror-lint-marker"],
|
||||||
.wp-core-ui [class*="CodeMirror-lint-message"],
|
.wp-core-ui [class*="CodeMirror-lint-message"],
|
||||||
.wrap .CodeMirror-lint-marker-multiple {
|
.wrap .CodeMirror-lint-marker-multiple {
|
||||||
background-image: none;
|
background-image: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-core-ui .CodeMirror-lint-marker-error,
|
.wp-core-ui .CodeMirror-lint-marker-error,
|
||||||
.wp-core-ui .CodeMirror-lint-marker-warning {
|
.wp-core-ui .CodeMirror-lint-marker-warning {
|
||||||
cursor: help;
|
cursor: help;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wrap .CodeMirror-lint-marker-multiple {
|
.wrap .CodeMirror-lint-marker-multiple {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wrap [class*="CodeMirror-lint-marker"]:before {
|
.wrap [class*="CodeMirror-lint-marker"]:before {
|
||||||
font: normal 18px/1 dashicons;
|
font: normal 18px/1 dashicons;
|
||||||
position: relative;
|
position: relative;
|
||||||
top: -2px;
|
top: -2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-core-ui [class*="CodeMirror-lint-message"]:before {
|
.wp-core-ui [class*="CodeMirror-lint-message"]:before {
|
||||||
font: normal 16px/1 dashicons;
|
font: normal 16px/1 dashicons;
|
||||||
right: 16px;
|
right: 16px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-core-ui .CodeMirror-lint-message-error,
|
.wp-core-ui .CodeMirror-lint-message-error,
|
||||||
.wp-core-ui .CodeMirror-lint-message-warning {
|
.wp-core-ui .CodeMirror-lint-message-warning {
|
||||||
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
|
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
|
||||||
margin: 5px 0 2px;
|
margin: 5px 0 2px;
|
||||||
padding: 3px 28px 3px 12px;
|
padding: 3px 28px 3px 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-core-ui .CodeMirror-lint-message-warning {
|
.wp-core-ui .CodeMirror-lint-message-warning {
|
||||||
background-color: #fcf9e8;
|
background-color: #fcf9e8;
|
||||||
border-right: 4px solid #dba617;
|
border-right: 4px solid #dba617;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wrap .CodeMirror-lint-marker-warning:before,
|
.wrap .CodeMirror-lint-marker-warning:before,
|
||||||
.wp-core-ui .CodeMirror-lint-message-warning:before {
|
.wp-core-ui .CodeMirror-lint-message-warning:before {
|
||||||
content: "\f534";
|
content: "\f534";
|
||||||
color: #dba617;
|
color: #dba617;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-core-ui .CodeMirror-lint-message-error {
|
.wp-core-ui .CodeMirror-lint-message-error {
|
||||||
background-color: #fcf0f1;
|
background-color: #fcf0f1;
|
||||||
border-right: 4px solid #d63638;
|
border-right: 4px solid #d63638;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wrap .CodeMirror-lint-marker-error:before,
|
.wrap .CodeMirror-lint-marker-error:before,
|
||||||
.wp-core-ui .CodeMirror-lint-message-error:before {
|
.wp-core-ui .CodeMirror-lint-message-error:before {
|
||||||
content: "\f153";
|
content: "\f153";
|
||||||
color: #d63638;
|
color: #d63638;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-core-ui .CodeMirror-lint-tooltip {
|
.wp-core-ui .CodeMirror-lint-tooltip {
|
||||||
background: none;
|
background: none;
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
direction: rtl;
|
direction: rtl;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wrap .CodeMirror .CodeMirror-matchingbracket {
|
.wrap .CodeMirror .CodeMirror-matchingbracket {
|
||||||
background: rgba(219, 166, 23, 0.3);
|
background: rgba(219, 166, 23, 0.3);
|
||||||
color: inherit;
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
.CodeMirror {
|
.CodeMirror {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wrap .CodeMirror .CodeMirror-linenumber {
|
.wrap .CodeMirror .CodeMirror-linenumber {
|
||||||
color: #646970;
|
color: #646970;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
/*! This file is auto-generated */
|
/*! This file is auto-generated */
|
||||||
.wp-core-ui [class*=CodeMirror-lint-message],.wrap .CodeMirror-lint-marker-multiple,.wrap [class*=CodeMirror-lint-marker]{background-image:none}.wp-core-ui .CodeMirror-lint-marker-error,.wp-core-ui .CodeMirror-lint-marker-warning{cursor:help}.wrap .CodeMirror-lint-marker-multiple{position:absolute;top:0}.wrap [class*=CodeMirror-lint-marker]:before{font:normal 18px/1 dashicons;position:relative;top:-2px}.wp-core-ui [class*=CodeMirror-lint-message]:before{font:normal 16px/1 dashicons;right:16px;position:absolute}.wp-core-ui .CodeMirror-lint-message-error,.wp-core-ui .CodeMirror-lint-message-warning{box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 0 2px;padding:3px 28px 3px 12px}.wp-core-ui .CodeMirror-lint-message-warning{background-color:#fcf9e8;border-right:4px solid #dba617}.wp-core-ui .CodeMirror-lint-message-warning:before,.wrap .CodeMirror-lint-marker-warning:before{content:"\f534";color:#dba617}.wp-core-ui .CodeMirror-lint-message-error{background-color:#fcf0f1;border-right:4px solid #d63638}.wp-core-ui .CodeMirror-lint-message-error:before,.wrap .CodeMirror-lint-marker-error:before{content:"\f153";color:#d63638}.wp-core-ui .CodeMirror-lint-tooltip{background:0 0;border:none;border-radius:0;direction:rtl}.wrap .CodeMirror .CodeMirror-matchingbracket{background:rgba(219,166,23,.3);color:inherit}.CodeMirror{text-align:right}.wrap .CodeMirror .CodeMirror-linenumber{color:#646970}
|
.wp-core-ui [class*=CodeMirror-lint-message],.wrap .CodeMirror-lint-marker-multiple,.wrap [class*=CodeMirror-lint-marker]{background-image:none}.wp-core-ui .CodeMirror-lint-marker-error,.wp-core-ui .CodeMirror-lint-marker-warning{cursor:help}.wrap .CodeMirror-lint-marker-multiple{position:absolute;top:0}.wrap [class*=CodeMirror-lint-marker]:before{font:normal 18px/1 dashicons;position:relative;top:-2px}.wp-core-ui [class*=CodeMirror-lint-message]:before{font:normal 16px/1 dashicons;right:16px;position:absolute}.wp-core-ui .CodeMirror-lint-message-error,.wp-core-ui .CodeMirror-lint-message-warning{box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 0 2px;padding:3px 28px 3px 12px}.wp-core-ui .CodeMirror-lint-message-warning{background-color:#fcf9e8;border-right:4px solid #dba617}.wp-core-ui .CodeMirror-lint-message-warning:before,.wrap .CodeMirror-lint-marker-warning:before{content:"\f534";color:#dba617}.wp-core-ui .CodeMirror-lint-message-error{background-color:#fcf0f1;border-right:4px solid #d63638}.wp-core-ui .CodeMirror-lint-message-error:before,.wrap .CodeMirror-lint-marker-error:before{content:"\f153";color:#d63638}.wp-core-ui .CodeMirror-lint-tooltip{background:0 0;border:none;border-radius:0;direction:rtl}.wrap .CodeMirror .CodeMirror-matchingbracket{background:rgba(219,166,23,.3);color:inherit}.CodeMirror{text-align:right}.wrap .CodeMirror .CodeMirror-linenumber{color:#646970}
|
||||||
@@ -1,76 +1,76 @@
|
|||||||
.wrap [class*="CodeMirror-lint-marker"],
|
.wrap [class*="CodeMirror-lint-marker"],
|
||||||
.wp-core-ui [class*="CodeMirror-lint-message"],
|
.wp-core-ui [class*="CodeMirror-lint-message"],
|
||||||
.wrap .CodeMirror-lint-marker-multiple {
|
.wrap .CodeMirror-lint-marker-multiple {
|
||||||
background-image: none;
|
background-image: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-core-ui .CodeMirror-lint-marker-error,
|
.wp-core-ui .CodeMirror-lint-marker-error,
|
||||||
.wp-core-ui .CodeMirror-lint-marker-warning {
|
.wp-core-ui .CodeMirror-lint-marker-warning {
|
||||||
cursor: help;
|
cursor: help;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wrap .CodeMirror-lint-marker-multiple {
|
.wrap .CodeMirror-lint-marker-multiple {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wrap [class*="CodeMirror-lint-marker"]:before {
|
.wrap [class*="CodeMirror-lint-marker"]:before {
|
||||||
font: normal 18px/1 dashicons;
|
font: normal 18px/1 dashicons;
|
||||||
position: relative;
|
position: relative;
|
||||||
top: -2px;
|
top: -2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-core-ui [class*="CodeMirror-lint-message"]:before {
|
.wp-core-ui [class*="CodeMirror-lint-message"]:before {
|
||||||
font: normal 16px/1 dashicons;
|
font: normal 16px/1 dashicons;
|
||||||
left: 16px;
|
left: 16px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-core-ui .CodeMirror-lint-message-error,
|
.wp-core-ui .CodeMirror-lint-message-error,
|
||||||
.wp-core-ui .CodeMirror-lint-message-warning {
|
.wp-core-ui .CodeMirror-lint-message-warning {
|
||||||
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
|
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
|
||||||
margin: 5px 0 2px;
|
margin: 5px 0 2px;
|
||||||
padding: 3px 12px 3px 28px;
|
padding: 3px 12px 3px 28px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-core-ui .CodeMirror-lint-message-warning {
|
.wp-core-ui .CodeMirror-lint-message-warning {
|
||||||
background-color: #fcf9e8;
|
background-color: #fcf9e8;
|
||||||
border-left: 4px solid #dba617;
|
border-left: 4px solid #dba617;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wrap .CodeMirror-lint-marker-warning:before,
|
.wrap .CodeMirror-lint-marker-warning:before,
|
||||||
.wp-core-ui .CodeMirror-lint-message-warning:before {
|
.wp-core-ui .CodeMirror-lint-message-warning:before {
|
||||||
content: "\f534";
|
content: "\f534";
|
||||||
color: #dba617;
|
color: #dba617;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-core-ui .CodeMirror-lint-message-error {
|
.wp-core-ui .CodeMirror-lint-message-error {
|
||||||
background-color: #fcf0f1;
|
background-color: #fcf0f1;
|
||||||
border-left: 4px solid #d63638;
|
border-left: 4px solid #d63638;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wrap .CodeMirror-lint-marker-error:before,
|
.wrap .CodeMirror-lint-marker-error:before,
|
||||||
.wp-core-ui .CodeMirror-lint-message-error:before {
|
.wp-core-ui .CodeMirror-lint-message-error:before {
|
||||||
content: "\f153";
|
content: "\f153";
|
||||||
color: #d63638;
|
color: #d63638;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-core-ui .CodeMirror-lint-tooltip {
|
.wp-core-ui .CodeMirror-lint-tooltip {
|
||||||
background: none;
|
background: none;
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
direction: ltr;
|
direction: ltr;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wrap .CodeMirror .CodeMirror-matchingbracket {
|
.wrap .CodeMirror .CodeMirror-matchingbracket {
|
||||||
background: rgba(219, 166, 23, 0.3);
|
background: rgba(219, 166, 23, 0.3);
|
||||||
color: inherit;
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
.CodeMirror {
|
.CodeMirror {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wrap .CodeMirror .CodeMirror-linenumber {
|
.wrap .CodeMirror .CodeMirror-linenumber {
|
||||||
color: #646970;
|
color: #646970;
|
||||||
}
|
}
|
||||||
|
|||||||
2
backup/wp/wp-admin/css/code-editor.min.css
vendored
@@ -1,2 +1,2 @@
|
|||||||
/*! This file is auto-generated */
|
/*! This file is auto-generated */
|
||||||
.wp-core-ui [class*=CodeMirror-lint-message],.wrap .CodeMirror-lint-marker-multiple,.wrap [class*=CodeMirror-lint-marker]{background-image:none}.wp-core-ui .CodeMirror-lint-marker-error,.wp-core-ui .CodeMirror-lint-marker-warning{cursor:help}.wrap .CodeMirror-lint-marker-multiple{position:absolute;top:0}.wrap [class*=CodeMirror-lint-marker]:before{font:normal 18px/1 dashicons;position:relative;top:-2px}.wp-core-ui [class*=CodeMirror-lint-message]:before{font:normal 16px/1 dashicons;left:16px;position:absolute}.wp-core-ui .CodeMirror-lint-message-error,.wp-core-ui .CodeMirror-lint-message-warning{box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 0 2px;padding:3px 12px 3px 28px}.wp-core-ui .CodeMirror-lint-message-warning{background-color:#fcf9e8;border-left:4px solid #dba617}.wp-core-ui .CodeMirror-lint-message-warning:before,.wrap .CodeMirror-lint-marker-warning:before{content:"\f534";color:#dba617}.wp-core-ui .CodeMirror-lint-message-error{background-color:#fcf0f1;border-left:4px solid #d63638}.wp-core-ui .CodeMirror-lint-message-error:before,.wrap .CodeMirror-lint-marker-error:before{content:"\f153";color:#d63638}.wp-core-ui .CodeMirror-lint-tooltip{background:0 0;border:none;border-radius:0;direction:ltr}.wrap .CodeMirror .CodeMirror-matchingbracket{background:rgba(219,166,23,.3);color:inherit}.CodeMirror{text-align:left}.wrap .CodeMirror .CodeMirror-linenumber{color:#646970}
|
.wp-core-ui [class*=CodeMirror-lint-message],.wrap .CodeMirror-lint-marker-multiple,.wrap [class*=CodeMirror-lint-marker]{background-image:none}.wp-core-ui .CodeMirror-lint-marker-error,.wp-core-ui .CodeMirror-lint-marker-warning{cursor:help}.wrap .CodeMirror-lint-marker-multiple{position:absolute;top:0}.wrap [class*=CodeMirror-lint-marker]:before{font:normal 18px/1 dashicons;position:relative;top:-2px}.wp-core-ui [class*=CodeMirror-lint-message]:before{font:normal 16px/1 dashicons;left:16px;position:absolute}.wp-core-ui .CodeMirror-lint-message-error,.wp-core-ui .CodeMirror-lint-message-warning{box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 0 2px;padding:3px 12px 3px 28px}.wp-core-ui .CodeMirror-lint-message-warning{background-color:#fcf9e8;border-left:4px solid #dba617}.wp-core-ui .CodeMirror-lint-message-warning:before,.wrap .CodeMirror-lint-marker-warning:before{content:"\f534";color:#dba617}.wp-core-ui .CodeMirror-lint-message-error{background-color:#fcf0f1;border-left:4px solid #d63638}.wp-core-ui .CodeMirror-lint-message-error:before,.wrap .CodeMirror-lint-marker-error:before{content:"\f153";color:#d63638}.wp-core-ui .CodeMirror-lint-tooltip{background:0 0;border:none;border-radius:0;direction:ltr}.wrap .CodeMirror .CodeMirror-matchingbracket{background:rgba(219,166,23,.3);color:inherit}.CodeMirror{text-align:left}.wrap .CodeMirror .CodeMirror-linenumber{color:#646970}
|
||||||
@@ -1,183 +1,183 @@
|
|||||||
/*! This file is auto-generated */
|
/*! This file is auto-generated */
|
||||||
/* rtl:ignore */
|
/* rtl:ignore */
|
||||||
.wp-color-picker {
|
.wp-color-picker {
|
||||||
width: 80px;
|
width: 80px;
|
||||||
direction: ltr;
|
direction: ltr;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-container .hidden {
|
.wp-picker-container .hidden {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Needs higher specificiity. */
|
/* Needs higher specificiity. */
|
||||||
.wp-picker-container .wp-color-result.button {
|
.wp-picker-container .wp-color-result.button {
|
||||||
min-height: 30px;
|
min-height: 30px;
|
||||||
margin: 0 0 6px 6px;
|
margin: 0 0 6px 6px;
|
||||||
padding: 0 30px 0 0;
|
padding: 0 30px 0 0;
|
||||||
font-size: 11px;
|
font-size: 11px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-color-result-text {
|
.wp-color-result-text {
|
||||||
background: #f6f7f7;
|
background: #f6f7f7;
|
||||||
border-radius: 2px 0 0 2px;
|
border-radius: 2px 0 0 2px;
|
||||||
border-right: 1px solid #c3c4c7;
|
border-right: 1px solid #c3c4c7;
|
||||||
color: #50575e;
|
color: #50575e;
|
||||||
display: block;
|
display: block;
|
||||||
line-height: 2.54545455; /* 28px */
|
line-height: 2.54545455; /* 28px */
|
||||||
padding: 0 6px;
|
padding: 0 6px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-color-result:hover,
|
.wp-color-result:hover,
|
||||||
.wp-color-result:focus {
|
.wp-color-result:focus {
|
||||||
background: #f6f7f7;
|
background: #f6f7f7;
|
||||||
border-color: #8c8f94;
|
border-color: #8c8f94;
|
||||||
color: #1d2327;
|
color: #1d2327;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-color-result:hover:after,
|
.wp-color-result:hover:after,
|
||||||
.wp-color-result:focus:after {
|
.wp-color-result:focus:after {
|
||||||
color: #1d2327;
|
color: #1d2327;
|
||||||
border-color: #a7aaad;
|
border-color: #a7aaad;
|
||||||
border-right: 1px solid #8c8f94;
|
border-right: 1px solid #8c8f94;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-container {
|
.wp-picker-container {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-color-result:focus {
|
.wp-color-result:focus {
|
||||||
border-color: #4f94d4;
|
border-color: #4f94d4;
|
||||||
box-shadow: 0 0 3px rgba(34, 113, 177, 0.8);
|
box-shadow: 0 0 3px rgba(34, 113, 177, 0.8);
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-color-result:active {
|
.wp-color-result:active {
|
||||||
/* See Trac ticket #39662 */
|
/* See Trac ticket #39662 */
|
||||||
transform: none !important;
|
transform: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-open + .wp-picker-input-wrap {
|
.wp-picker-open + .wp-picker-input-wrap {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-input-wrap label {
|
.wp-picker-input-wrap label {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For the old `custom-background` page, to override the inline-block and margins from `.form-table td fieldset label`. */
|
/* For the old `custom-background` page, to override the inline-block and margins from `.form-table td fieldset label`. */
|
||||||
.form-table .wp-picker-input-wrap label {
|
.form-table .wp-picker-input-wrap label {
|
||||||
margin: 0 !important;
|
margin: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-input-wrap .button.wp-picker-default,
|
.wp-picker-input-wrap .button.wp-picker-default,
|
||||||
.wp-picker-input-wrap .button.wp-picker-clear,
|
.wp-picker-input-wrap .button.wp-picker-clear,
|
||||||
.wp-customizer .wp-picker-input-wrap .button.wp-picker-default,
|
.wp-customizer .wp-picker-input-wrap .button.wp-picker-default,
|
||||||
.wp-customizer .wp-picker-input-wrap .button.wp-picker-clear {
|
.wp-customizer .wp-picker-input-wrap .button.wp-picker-clear {
|
||||||
margin-right: 6px;
|
margin-right: 6px;
|
||||||
padding: 0 8px;
|
padding: 0 8px;
|
||||||
line-height: 2.54545455; /* 28px */
|
line-height: 2.54545455; /* 28px */
|
||||||
min-height: 30px;
|
min-height: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-container .iris-square-slider .ui-slider-handle:focus {
|
.wp-picker-container .iris-square-slider .ui-slider-handle:focus {
|
||||||
background-color: #50575e
|
background-color: #50575e
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-container .iris-picker {
|
.wp-picker-container .iris-picker {
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
border-color: #dcdcde;
|
border-color: #dcdcde;
|
||||||
margin-top: 6px;
|
margin-top: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-container input[type="text"].wp-color-picker {
|
.wp-picker-container input[type="text"].wp-color-picker {
|
||||||
width: 4rem;
|
width: 4rem;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
font-family: monospace;
|
font-family: monospace;
|
||||||
line-height: 2.33333333; /* 28px */
|
line-height: 2.33333333; /* 28px */
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0 5px;
|
padding: 0 5px;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
min-height: 30px;
|
min-height: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-color-picker::-webkit-input-placeholder {
|
.wp-color-picker::-webkit-input-placeholder {
|
||||||
color: #646970;
|
color: #646970;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-color-picker::-moz-placeholder {
|
.wp-color-picker::-moz-placeholder {
|
||||||
color: #646970;
|
color: #646970;
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-color-picker:-ms-input-placeholder {
|
.wp-color-picker:-ms-input-placeholder {
|
||||||
color: #646970;
|
color: #646970;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-container input[type="text"].iris-error {
|
.wp-picker-container input[type="text"].iris-error {
|
||||||
background-color: #fcf0f1;
|
background-color: #fcf0f1;
|
||||||
border-color: #d63638;
|
border-color: #d63638;
|
||||||
color: #000;
|
color: #000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.iris-picker .ui-square-handle:focus,
|
.iris-picker .ui-square-handle:focus,
|
||||||
.iris-picker .iris-strip .ui-slider-handle:focus {
|
.iris-picker .iris-strip .ui-slider-handle:focus {
|
||||||
border-color: #3582c4;
|
border-color: #3582c4;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
box-shadow: 0 0 0 1px #3582c4;
|
box-shadow: 0 0 0 1px #3582c4;
|
||||||
outline: 2px solid transparent;
|
outline: 2px solid transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.iris-picker .iris-palette:focus {
|
.iris-picker .iris-palette:focus {
|
||||||
box-shadow: 0 0 0 2px #3582c4;
|
box-shadow: 0 0 0 2px #3582c4;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 782px) {
|
@media screen and (max-width: 782px) {
|
||||||
.wp-picker-container input[type="text"].wp-color-picker {
|
.wp-picker-container input[type="text"].wp-color-picker {
|
||||||
width: 5rem;
|
width: 5rem;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
line-height: 1.875; /* 30px */
|
line-height: 1.875; /* 30px */
|
||||||
min-height: 32px;
|
min-height: 32px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-customizer .wp-picker-container input[type="text"].wp-color-picker {
|
.wp-customizer .wp-picker-container input[type="text"].wp-color-picker {
|
||||||
padding: 0 5px;
|
padding: 0 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-input-wrap .button.wp-picker-default,
|
.wp-picker-input-wrap .button.wp-picker-default,
|
||||||
.wp-picker-input-wrap .button.wp-picker-clear {
|
.wp-picker-input-wrap .button.wp-picker-clear {
|
||||||
padding: 0 8px;
|
padding: 0 8px;
|
||||||
line-height: 2.14285714; /* 30px */
|
line-height: 2.14285714; /* 30px */
|
||||||
min-height: 32px;
|
min-height: 32px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-customizer .wp-picker-input-wrap .button.wp-picker-default,
|
.wp-customizer .wp-picker-input-wrap .button.wp-picker-default,
|
||||||
.wp-customizer .wp-picker-input-wrap .button.wp-picker-clear {
|
.wp-customizer .wp-picker-input-wrap .button.wp-picker-clear {
|
||||||
padding: 0 8px;
|
padding: 0 8px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 2.14285714; /* 30px */
|
line-height: 2.14285714; /* 30px */
|
||||||
min-height: 32px;
|
min-height: 32px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-container .wp-color-result.button {
|
.wp-picker-container .wp-color-result.button {
|
||||||
padding: 0 40px 0 0;
|
padding: 0 40px 0 0;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 2.14285714; /* 30px */
|
line-height: 2.14285714; /* 30px */
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-customizer .wp-picker-container .wp-color-result.button {
|
.wp-customizer .wp-picker-container .wp-color-result.button {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 2.14285714; /* 30px */
|
line-height: 2.14285714; /* 30px */
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-container .wp-color-result-text {
|
.wp-picker-container .wp-color-result-text {
|
||||||
padding: 0 14px;
|
padding: 0 14px;
|
||||||
font-size: inherit;
|
font-size: inherit;
|
||||||
line-height: inherit;
|
line-height: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-customizer .wp-picker-container .wp-color-result-text {
|
.wp-customizer .wp-picker-container .wp-color-result-text {
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
/*! This file is auto-generated */
|
/*! This file is auto-generated */
|
||||||
.wp-color-picker{width:80px;direction:ltr}.wp-picker-container .hidden{display:none}.wp-picker-container .wp-color-result.button{min-height:30px;margin:0 0 6px 6px;padding:0 30px 0 0;font-size:11px}.wp-color-result-text{background:#f6f7f7;border-radius:2px 0 0 2px;border-right:1px solid #c3c4c7;color:#50575e;display:block;line-height:2.54545455;padding:0 6px;text-align:center}.wp-color-result:focus,.wp-color-result:hover{background:#f6f7f7;border-color:#8c8f94;color:#1d2327}.wp-color-result:focus:after,.wp-color-result:hover:after{color:#1d2327;border-color:#a7aaad;border-right:1px solid #8c8f94}.wp-picker-container{display:inline-block}.wp-color-result:focus{border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8)}.wp-color-result:active{transform:none!important}.wp-picker-open+.wp-picker-input-wrap{display:inline-block;vertical-align:top}.wp-picker-input-wrap label{display:inline-block;vertical-align:top}.form-table .wp-picker-input-wrap label{margin:0!important}.wp-customizer .wp-picker-input-wrap .button.wp-picker-clear,.wp-customizer .wp-picker-input-wrap .button.wp-picker-default,.wp-picker-input-wrap .button.wp-picker-clear,.wp-picker-input-wrap .button.wp-picker-default{margin-right:6px;padding:0 8px;line-height:2.54545455;min-height:30px}.wp-picker-container .iris-square-slider .ui-slider-handle:focus{background-color:#50575e}.wp-picker-container .iris-picker{border-radius:0;border-color:#dcdcde;margin-top:6px}.wp-picker-container input[type=text].wp-color-picker{width:4rem;font-size:12px;font-family:monospace;line-height:2.33333333;margin:0;padding:0 5px;vertical-align:top;min-height:30px}.wp-color-picker::-webkit-input-placeholder{color:#646970}.wp-color-picker::-moz-placeholder{color:#646970;opacity:1}.wp-color-picker:-ms-input-placeholder{color:#646970}.wp-picker-container input[type=text].iris-error{background-color:#fcf0f1;border-color:#d63638;color:#000}.iris-picker .iris-strip .ui-slider-handle:focus,.iris-picker .ui-square-handle:focus{border-color:#3582c4;border-style:solid;box-shadow:0 0 0 1px #3582c4;outline:2px solid transparent}.iris-picker .iris-palette:focus{box-shadow:0 0 0 2px #3582c4}@media screen and (max-width:782px){.wp-picker-container input[type=text].wp-color-picker{width:5rem;font-size:16px;line-height:1.875;min-height:32px}.wp-customizer .wp-picker-container input[type=text].wp-color-picker{padding:0 5px}.wp-picker-input-wrap .button.wp-picker-clear,.wp-picker-input-wrap .button.wp-picker-default{padding:0 8px;line-height:2.14285714;min-height:32px}.wp-customizer .wp-picker-input-wrap .button.wp-picker-clear,.wp-customizer .wp-picker-input-wrap .button.wp-picker-default{padding:0 8px;font-size:14px;line-height:2.14285714;min-height:32px}.wp-picker-container .wp-color-result.button{padding:0 40px 0 0;font-size:14px;line-height:2.14285714}.wp-customizer .wp-picker-container .wp-color-result.button{font-size:14px;line-height:2.14285714}.wp-picker-container .wp-color-result-text{padding:0 14px;font-size:inherit;line-height:inherit}.wp-customizer .wp-picker-container .wp-color-result-text{padding:0 10px}}
|
.wp-color-picker{width:80px;direction:ltr}.wp-picker-container .hidden{display:none}.wp-picker-container .wp-color-result.button{min-height:30px;margin:0 0 6px 6px;padding:0 30px 0 0;font-size:11px}.wp-color-result-text{background:#f6f7f7;border-radius:2px 0 0 2px;border-right:1px solid #c3c4c7;color:#50575e;display:block;line-height:2.54545455;padding:0 6px;text-align:center}.wp-color-result:focus,.wp-color-result:hover{background:#f6f7f7;border-color:#8c8f94;color:#1d2327}.wp-color-result:focus:after,.wp-color-result:hover:after{color:#1d2327;border-color:#a7aaad;border-right:1px solid #8c8f94}.wp-picker-container{display:inline-block}.wp-color-result:focus{border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8)}.wp-color-result:active{transform:none!important}.wp-picker-open+.wp-picker-input-wrap{display:inline-block;vertical-align:top}.wp-picker-input-wrap label{display:inline-block;vertical-align:top}.form-table .wp-picker-input-wrap label{margin:0!important}.wp-customizer .wp-picker-input-wrap .button.wp-picker-clear,.wp-customizer .wp-picker-input-wrap .button.wp-picker-default,.wp-picker-input-wrap .button.wp-picker-clear,.wp-picker-input-wrap .button.wp-picker-default{margin-right:6px;padding:0 8px;line-height:2.54545455;min-height:30px}.wp-picker-container .iris-square-slider .ui-slider-handle:focus{background-color:#50575e}.wp-picker-container .iris-picker{border-radius:0;border-color:#dcdcde;margin-top:6px}.wp-picker-container input[type=text].wp-color-picker{width:4rem;font-size:12px;font-family:monospace;line-height:2.33333333;margin:0;padding:0 5px;vertical-align:top;min-height:30px}.wp-color-picker::-webkit-input-placeholder{color:#646970}.wp-color-picker::-moz-placeholder{color:#646970;opacity:1}.wp-color-picker:-ms-input-placeholder{color:#646970}.wp-picker-container input[type=text].iris-error{background-color:#fcf0f1;border-color:#d63638;color:#000}.iris-picker .iris-strip .ui-slider-handle:focus,.iris-picker .ui-square-handle:focus{border-color:#3582c4;border-style:solid;box-shadow:0 0 0 1px #3582c4;outline:2px solid transparent}.iris-picker .iris-palette:focus{box-shadow:0 0 0 2px #3582c4}@media screen and (max-width:782px){.wp-picker-container input[type=text].wp-color-picker{width:5rem;font-size:16px;line-height:1.875;min-height:32px}.wp-customizer .wp-picker-container input[type=text].wp-color-picker{padding:0 5px}.wp-picker-input-wrap .button.wp-picker-clear,.wp-picker-input-wrap .button.wp-picker-default{padding:0 8px;line-height:2.14285714;min-height:32px}.wp-customizer .wp-picker-input-wrap .button.wp-picker-clear,.wp-customizer .wp-picker-input-wrap .button.wp-picker-default{padding:0 8px;font-size:14px;line-height:2.14285714;min-height:32px}.wp-picker-container .wp-color-result.button{padding:0 40px 0 0;font-size:14px;line-height:2.14285714}.wp-customizer .wp-picker-container .wp-color-result.button{font-size:14px;line-height:2.14285714}.wp-picker-container .wp-color-result-text{padding:0 14px;font-size:inherit;line-height:inherit}.wp-customizer .wp-picker-container .wp-color-result-text{padding:0 10px}}
|
||||||
@@ -1,182 +1,182 @@
|
|||||||
/* rtl:ignore */
|
/* rtl:ignore */
|
||||||
.wp-color-picker {
|
.wp-color-picker {
|
||||||
width: 80px;
|
width: 80px;
|
||||||
direction: ltr;
|
direction: ltr;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-container .hidden {
|
.wp-picker-container .hidden {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Needs higher specificiity. */
|
/* Needs higher specificiity. */
|
||||||
.wp-picker-container .wp-color-result.button {
|
.wp-picker-container .wp-color-result.button {
|
||||||
min-height: 30px;
|
min-height: 30px;
|
||||||
margin: 0 6px 6px 0;
|
margin: 0 6px 6px 0;
|
||||||
padding: 0 0 0 30px;
|
padding: 0 0 0 30px;
|
||||||
font-size: 11px;
|
font-size: 11px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-color-result-text {
|
.wp-color-result-text {
|
||||||
background: #f6f7f7;
|
background: #f6f7f7;
|
||||||
border-radius: 0 2px 2px 0;
|
border-radius: 0 2px 2px 0;
|
||||||
border-left: 1px solid #c3c4c7;
|
border-left: 1px solid #c3c4c7;
|
||||||
color: #50575e;
|
color: #50575e;
|
||||||
display: block;
|
display: block;
|
||||||
line-height: 2.54545455; /* 28px */
|
line-height: 2.54545455; /* 28px */
|
||||||
padding: 0 6px;
|
padding: 0 6px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-color-result:hover,
|
.wp-color-result:hover,
|
||||||
.wp-color-result:focus {
|
.wp-color-result:focus {
|
||||||
background: #f6f7f7;
|
background: #f6f7f7;
|
||||||
border-color: #8c8f94;
|
border-color: #8c8f94;
|
||||||
color: #1d2327;
|
color: #1d2327;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-color-result:hover:after,
|
.wp-color-result:hover:after,
|
||||||
.wp-color-result:focus:after {
|
.wp-color-result:focus:after {
|
||||||
color: #1d2327;
|
color: #1d2327;
|
||||||
border-color: #a7aaad;
|
border-color: #a7aaad;
|
||||||
border-left: 1px solid #8c8f94;
|
border-left: 1px solid #8c8f94;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-container {
|
.wp-picker-container {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-color-result:focus {
|
.wp-color-result:focus {
|
||||||
border-color: #4f94d4;
|
border-color: #4f94d4;
|
||||||
box-shadow: 0 0 3px rgba(34, 113, 177, 0.8);
|
box-shadow: 0 0 3px rgba(34, 113, 177, 0.8);
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-color-result:active {
|
.wp-color-result:active {
|
||||||
/* See Trac ticket #39662 */
|
/* See Trac ticket #39662 */
|
||||||
transform: none !important;
|
transform: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-open + .wp-picker-input-wrap {
|
.wp-picker-open + .wp-picker-input-wrap {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-input-wrap label {
|
.wp-picker-input-wrap label {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For the old `custom-background` page, to override the inline-block and margins from `.form-table td fieldset label`. */
|
/* For the old `custom-background` page, to override the inline-block and margins from `.form-table td fieldset label`. */
|
||||||
.form-table .wp-picker-input-wrap label {
|
.form-table .wp-picker-input-wrap label {
|
||||||
margin: 0 !important;
|
margin: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-input-wrap .button.wp-picker-default,
|
.wp-picker-input-wrap .button.wp-picker-default,
|
||||||
.wp-picker-input-wrap .button.wp-picker-clear,
|
.wp-picker-input-wrap .button.wp-picker-clear,
|
||||||
.wp-customizer .wp-picker-input-wrap .button.wp-picker-default,
|
.wp-customizer .wp-picker-input-wrap .button.wp-picker-default,
|
||||||
.wp-customizer .wp-picker-input-wrap .button.wp-picker-clear {
|
.wp-customizer .wp-picker-input-wrap .button.wp-picker-clear {
|
||||||
margin-left: 6px;
|
margin-left: 6px;
|
||||||
padding: 0 8px;
|
padding: 0 8px;
|
||||||
line-height: 2.54545455; /* 28px */
|
line-height: 2.54545455; /* 28px */
|
||||||
min-height: 30px;
|
min-height: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-container .iris-square-slider .ui-slider-handle:focus {
|
.wp-picker-container .iris-square-slider .ui-slider-handle:focus {
|
||||||
background-color: #50575e
|
background-color: #50575e
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-container .iris-picker {
|
.wp-picker-container .iris-picker {
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
border-color: #dcdcde;
|
border-color: #dcdcde;
|
||||||
margin-top: 6px;
|
margin-top: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-container input[type="text"].wp-color-picker {
|
.wp-picker-container input[type="text"].wp-color-picker {
|
||||||
width: 4rem;
|
width: 4rem;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
font-family: monospace;
|
font-family: monospace;
|
||||||
line-height: 2.33333333; /* 28px */
|
line-height: 2.33333333; /* 28px */
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0 5px;
|
padding: 0 5px;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
min-height: 30px;
|
min-height: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-color-picker::-webkit-input-placeholder {
|
.wp-color-picker::-webkit-input-placeholder {
|
||||||
color: #646970;
|
color: #646970;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-color-picker::-moz-placeholder {
|
.wp-color-picker::-moz-placeholder {
|
||||||
color: #646970;
|
color: #646970;
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-color-picker:-ms-input-placeholder {
|
.wp-color-picker:-ms-input-placeholder {
|
||||||
color: #646970;
|
color: #646970;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-container input[type="text"].iris-error {
|
.wp-picker-container input[type="text"].iris-error {
|
||||||
background-color: #fcf0f1;
|
background-color: #fcf0f1;
|
||||||
border-color: #d63638;
|
border-color: #d63638;
|
||||||
color: #000;
|
color: #000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.iris-picker .ui-square-handle:focus,
|
.iris-picker .ui-square-handle:focus,
|
||||||
.iris-picker .iris-strip .ui-slider-handle:focus {
|
.iris-picker .iris-strip .ui-slider-handle:focus {
|
||||||
border-color: #3582c4;
|
border-color: #3582c4;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
box-shadow: 0 0 0 1px #3582c4;
|
box-shadow: 0 0 0 1px #3582c4;
|
||||||
outline: 2px solid transparent;
|
outline: 2px solid transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.iris-picker .iris-palette:focus {
|
.iris-picker .iris-palette:focus {
|
||||||
box-shadow: 0 0 0 2px #3582c4;
|
box-shadow: 0 0 0 2px #3582c4;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 782px) {
|
@media screen and (max-width: 782px) {
|
||||||
.wp-picker-container input[type="text"].wp-color-picker {
|
.wp-picker-container input[type="text"].wp-color-picker {
|
||||||
width: 5rem;
|
width: 5rem;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
line-height: 1.875; /* 30px */
|
line-height: 1.875; /* 30px */
|
||||||
min-height: 32px;
|
min-height: 32px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-customizer .wp-picker-container input[type="text"].wp-color-picker {
|
.wp-customizer .wp-picker-container input[type="text"].wp-color-picker {
|
||||||
padding: 0 5px;
|
padding: 0 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-input-wrap .button.wp-picker-default,
|
.wp-picker-input-wrap .button.wp-picker-default,
|
||||||
.wp-picker-input-wrap .button.wp-picker-clear {
|
.wp-picker-input-wrap .button.wp-picker-clear {
|
||||||
padding: 0 8px;
|
padding: 0 8px;
|
||||||
line-height: 2.14285714; /* 30px */
|
line-height: 2.14285714; /* 30px */
|
||||||
min-height: 32px;
|
min-height: 32px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-customizer .wp-picker-input-wrap .button.wp-picker-default,
|
.wp-customizer .wp-picker-input-wrap .button.wp-picker-default,
|
||||||
.wp-customizer .wp-picker-input-wrap .button.wp-picker-clear {
|
.wp-customizer .wp-picker-input-wrap .button.wp-picker-clear {
|
||||||
padding: 0 8px;
|
padding: 0 8px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 2.14285714; /* 30px */
|
line-height: 2.14285714; /* 30px */
|
||||||
min-height: 32px;
|
min-height: 32px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-container .wp-color-result.button {
|
.wp-picker-container .wp-color-result.button {
|
||||||
padding: 0 0 0 40px;
|
padding: 0 0 0 40px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 2.14285714; /* 30px */
|
line-height: 2.14285714; /* 30px */
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-customizer .wp-picker-container .wp-color-result.button {
|
.wp-customizer .wp-picker-container .wp-color-result.button {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 2.14285714; /* 30px */
|
line-height: 2.14285714; /* 30px */
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-picker-container .wp-color-result-text {
|
.wp-picker-container .wp-color-result-text {
|
||||||
padding: 0 14px;
|
padding: 0 14px;
|
||||||
font-size: inherit;
|
font-size: inherit;
|
||||||
line-height: inherit;
|
line-height: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wp-customizer .wp-picker-container .wp-color-result-text {
|
.wp-customizer .wp-picker-container .wp-color-result-text {
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
2
backup/wp/wp-admin/css/color-picker.min.css
vendored
@@ -1,2 +1,2 @@
|
|||||||
/*! This file is auto-generated */
|
/*! This file is auto-generated */
|
||||||
.wp-color-picker{width:80px;direction:ltr}.wp-picker-container .hidden{display:none}.wp-picker-container .wp-color-result.button{min-height:30px;margin:0 6px 6px 0;padding:0 0 0 30px;font-size:11px}.wp-color-result-text{background:#f6f7f7;border-radius:0 2px 2px 0;border-left:1px solid #c3c4c7;color:#50575e;display:block;line-height:2.54545455;padding:0 6px;text-align:center}.wp-color-result:focus,.wp-color-result:hover{background:#f6f7f7;border-color:#8c8f94;color:#1d2327}.wp-color-result:focus:after,.wp-color-result:hover:after{color:#1d2327;border-color:#a7aaad;border-left:1px solid #8c8f94}.wp-picker-container{display:inline-block}.wp-color-result:focus{border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8)}.wp-color-result:active{transform:none!important}.wp-picker-open+.wp-picker-input-wrap{display:inline-block;vertical-align:top}.wp-picker-input-wrap label{display:inline-block;vertical-align:top}.form-table .wp-picker-input-wrap label{margin:0!important}.wp-customizer .wp-picker-input-wrap .button.wp-picker-clear,.wp-customizer .wp-picker-input-wrap .button.wp-picker-default,.wp-picker-input-wrap .button.wp-picker-clear,.wp-picker-input-wrap .button.wp-picker-default{margin-left:6px;padding:0 8px;line-height:2.54545455;min-height:30px}.wp-picker-container .iris-square-slider .ui-slider-handle:focus{background-color:#50575e}.wp-picker-container .iris-picker{border-radius:0;border-color:#dcdcde;margin-top:6px}.wp-picker-container input[type=text].wp-color-picker{width:4rem;font-size:12px;font-family:monospace;line-height:2.33333333;margin:0;padding:0 5px;vertical-align:top;min-height:30px}.wp-color-picker::-webkit-input-placeholder{color:#646970}.wp-color-picker::-moz-placeholder{color:#646970;opacity:1}.wp-color-picker:-ms-input-placeholder{color:#646970}.wp-picker-container input[type=text].iris-error{background-color:#fcf0f1;border-color:#d63638;color:#000}.iris-picker .iris-strip .ui-slider-handle:focus,.iris-picker .ui-square-handle:focus{border-color:#3582c4;border-style:solid;box-shadow:0 0 0 1px #3582c4;outline:2px solid transparent}.iris-picker .iris-palette:focus{box-shadow:0 0 0 2px #3582c4}@media screen and (max-width:782px){.wp-picker-container input[type=text].wp-color-picker{width:5rem;font-size:16px;line-height:1.875;min-height:32px}.wp-customizer .wp-picker-container input[type=text].wp-color-picker{padding:0 5px}.wp-picker-input-wrap .button.wp-picker-clear,.wp-picker-input-wrap .button.wp-picker-default{padding:0 8px;line-height:2.14285714;min-height:32px}.wp-customizer .wp-picker-input-wrap .button.wp-picker-clear,.wp-customizer .wp-picker-input-wrap .button.wp-picker-default{padding:0 8px;font-size:14px;line-height:2.14285714;min-height:32px}.wp-picker-container .wp-color-result.button{padding:0 0 0 40px;font-size:14px;line-height:2.14285714}.wp-customizer .wp-picker-container .wp-color-result.button{font-size:14px;line-height:2.14285714}.wp-picker-container .wp-color-result-text{padding:0 14px;font-size:inherit;line-height:inherit}.wp-customizer .wp-picker-container .wp-color-result-text{padding:0 10px}}
|
.wp-color-picker{width:80px;direction:ltr}.wp-picker-container .hidden{display:none}.wp-picker-container .wp-color-result.button{min-height:30px;margin:0 6px 6px 0;padding:0 0 0 30px;font-size:11px}.wp-color-result-text{background:#f6f7f7;border-radius:0 2px 2px 0;border-left:1px solid #c3c4c7;color:#50575e;display:block;line-height:2.54545455;padding:0 6px;text-align:center}.wp-color-result:focus,.wp-color-result:hover{background:#f6f7f7;border-color:#8c8f94;color:#1d2327}.wp-color-result:focus:after,.wp-color-result:hover:after{color:#1d2327;border-color:#a7aaad;border-left:1px solid #8c8f94}.wp-picker-container{display:inline-block}.wp-color-result:focus{border-color:#4f94d4;box-shadow:0 0 3px rgba(34,113,177,.8)}.wp-color-result:active{transform:none!important}.wp-picker-open+.wp-picker-input-wrap{display:inline-block;vertical-align:top}.wp-picker-input-wrap label{display:inline-block;vertical-align:top}.form-table .wp-picker-input-wrap label{margin:0!important}.wp-customizer .wp-picker-input-wrap .button.wp-picker-clear,.wp-customizer .wp-picker-input-wrap .button.wp-picker-default,.wp-picker-input-wrap .button.wp-picker-clear,.wp-picker-input-wrap .button.wp-picker-default{margin-left:6px;padding:0 8px;line-height:2.54545455;min-height:30px}.wp-picker-container .iris-square-slider .ui-slider-handle:focus{background-color:#50575e}.wp-picker-container .iris-picker{border-radius:0;border-color:#dcdcde;margin-top:6px}.wp-picker-container input[type=text].wp-color-picker{width:4rem;font-size:12px;font-family:monospace;line-height:2.33333333;margin:0;padding:0 5px;vertical-align:top;min-height:30px}.wp-color-picker::-webkit-input-placeholder{color:#646970}.wp-color-picker::-moz-placeholder{color:#646970;opacity:1}.wp-color-picker:-ms-input-placeholder{color:#646970}.wp-picker-container input[type=text].iris-error{background-color:#fcf0f1;border-color:#d63638;color:#000}.iris-picker .iris-strip .ui-slider-handle:focus,.iris-picker .ui-square-handle:focus{border-color:#3582c4;border-style:solid;box-shadow:0 0 0 1px #3582c4;outline:2px solid transparent}.iris-picker .iris-palette:focus{box-shadow:0 0 0 2px #3582c4}@media screen and (max-width:782px){.wp-picker-container input[type=text].wp-color-picker{width:5rem;font-size:16px;line-height:1.875;min-height:32px}.wp-customizer .wp-picker-container input[type=text].wp-color-picker{padding:0 5px}.wp-picker-input-wrap .button.wp-picker-clear,.wp-picker-input-wrap .button.wp-picker-default{padding:0 8px;line-height:2.14285714;min-height:32px}.wp-customizer .wp-picker-input-wrap .button.wp-picker-clear,.wp-customizer .wp-picker-input-wrap .button.wp-picker-default{padding:0 8px;font-size:14px;line-height:2.14285714;min-height:32px}.wp-picker-container .wp-color-result.button{padding:0 0 0 40px;font-size:14px;line-height:2.14285714}.wp-customizer .wp-picker-container .wp-color-result.button{font-size:14px;line-height:2.14285714}.wp-picker-container .wp-color-result-text{padding:0 14px;font-size:inherit;line-height:inherit}.wp-customizer .wp-picker-container .wp-color-result-text{padding:0 10px}}
|
||||||
@@ -1,37 +1,37 @@
|
|||||||
/*
|
/*
|
||||||
* Button mixin- creates a button effect with correct
|
* Button mixin- creates a button effect with correct
|
||||||
* highlights/shadows, based on a base color.
|
* highlights/shadows, based on a base color.
|
||||||
*/
|
*/
|
||||||
@mixin button( $button-color, $button-text-color: #fff ) {
|
@mixin button( $button-color, $button-text-color: #fff ) {
|
||||||
background: $button-color;
|
background: $button-color;
|
||||||
border-color: $button-color;
|
border-color: $button-color;
|
||||||
color: $button-text-color;
|
color: $button-text-color;
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
background: lighten( $button-color, 3% );
|
background: lighten( $button-color, 3% );
|
||||||
border-color: darken( $button-color, 3% );
|
border-color: darken( $button-color, 3% );
|
||||||
color: $button-text-color;
|
color: $button-text-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:focus {
|
&:focus {
|
||||||
box-shadow:
|
box-shadow:
|
||||||
0 0 0 1px #fff,
|
0 0 0 1px #fff,
|
||||||
0 0 0 3px $button-color;
|
0 0 0 3px $button-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:active {
|
&:active {
|
||||||
background: darken( $button-color, 5% );
|
background: darken( $button-color, 5% );
|
||||||
border-color: darken( $button-color, 5% );
|
border-color: darken( $button-color, 5% );
|
||||||
color: $button-text-color;
|
color: $button-text-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.active,
|
&.active,
|
||||||
&.active:focus,
|
&.active:focus,
|
||||||
&.active:hover {
|
&.active:hover {
|
||||||
background: $button-color;
|
background: $button-color;
|
||||||
color: $button-text-color;
|
color: $button-text-color;
|
||||||
border-color: darken( $button-color, 15% );
|
border-color: darken( $button-color, 15% );
|
||||||
box-shadow: inset 0 2px 5px -3px darken( $button-color, 50% );
|
box-shadow: inset 0 2px 5px -3px darken( $button-color, 50% );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,73 +1,73 @@
|
|||||||
// assign default value to all undefined variables
|
// assign default value to all undefined variables
|
||||||
|
|
||||||
$scheme-name: "default" !default;
|
$scheme-name: "default" !default;
|
||||||
|
|
||||||
// core variables
|
// core variables
|
||||||
|
|
||||||
$text-color: #fff !default;
|
$text-color: #fff !default;
|
||||||
$base-color: #23282d !default;
|
$base-color: #23282d !default;
|
||||||
$icon-color: hsl( hue( $base-color ), 7%, 95% ) !default;
|
$icon-color: hsl( hue( $base-color ), 7%, 95% ) !default;
|
||||||
$highlight-color: #0073aa !default;
|
$highlight-color: #0073aa !default;
|
||||||
$notification-color: #d54e21 !default;
|
$notification-color: #d54e21 !default;
|
||||||
|
|
||||||
|
|
||||||
// global
|
// global
|
||||||
|
|
||||||
$body-background: #f1f1f1 !default;
|
$body-background: #f1f1f1 !default;
|
||||||
|
|
||||||
$link: #0073aa !default;
|
$link: #0073aa !default;
|
||||||
$link-focus: lighten( $link, 10% ) !default;
|
$link-focus: lighten( $link, 10% ) !default;
|
||||||
|
|
||||||
$button-color: $highlight-color !default;
|
$button-color: $highlight-color !default;
|
||||||
$button-text-color: $text-color !default;
|
$button-text-color: $text-color !default;
|
||||||
|
|
||||||
$form-checked: #7e8993 !default;
|
$form-checked: #7e8993 !default;
|
||||||
|
|
||||||
// admin menu & admin-bar
|
// admin menu & admin-bar
|
||||||
|
|
||||||
$menu-text: $text-color !default;
|
$menu-text: $text-color !default;
|
||||||
$menu-icon: $icon-color !default;
|
$menu-icon: $icon-color !default;
|
||||||
$menu-background: $base-color !default;
|
$menu-background: $base-color !default;
|
||||||
|
|
||||||
$menu-highlight-text: $text-color !default;
|
$menu-highlight-text: $text-color !default;
|
||||||
$menu-highlight-icon: $text-color !default;
|
$menu-highlight-icon: $text-color !default;
|
||||||
$menu-highlight-background: $highlight-color !default;
|
$menu-highlight-background: $highlight-color !default;
|
||||||
|
|
||||||
$menu-current-text: $menu-highlight-text !default;
|
$menu-current-text: $menu-highlight-text !default;
|
||||||
$menu-current-icon: $menu-highlight-icon !default;
|
$menu-current-icon: $menu-highlight-icon !default;
|
||||||
$menu-current-background: $menu-highlight-background !default;
|
$menu-current-background: $menu-highlight-background !default;
|
||||||
|
|
||||||
$menu-submenu-text: mix( $base-color, $text-color, 30% ) !default;
|
$menu-submenu-text: mix( $base-color, $text-color, 30% ) !default;
|
||||||
$menu-submenu-background: darken( $base-color, 7% ) !default;
|
$menu-submenu-background: darken( $base-color, 7% ) !default;
|
||||||
$menu-submenu-background-alt: desaturate( lighten( $menu-background, 7% ), 7% ) !default;
|
$menu-submenu-background-alt: desaturate( lighten( $menu-background, 7% ), 7% ) !default;
|
||||||
|
|
||||||
$menu-submenu-focus-text: $highlight-color !default;
|
$menu-submenu-focus-text: $highlight-color !default;
|
||||||
$menu-submenu-current-text: $text-color !default;
|
$menu-submenu-current-text: $text-color !default;
|
||||||
|
|
||||||
$menu-bubble-text: $text-color !default;
|
$menu-bubble-text: $text-color !default;
|
||||||
$menu-bubble-background: $notification-color !default;
|
$menu-bubble-background: $notification-color !default;
|
||||||
$menu-bubble-current-text: $text-color !default;
|
$menu-bubble-current-text: $text-color !default;
|
||||||
$menu-bubble-current-background: $menu-submenu-background !default;
|
$menu-bubble-current-background: $menu-submenu-background !default;
|
||||||
|
|
||||||
$menu-collapse-text: $menu-icon !default;
|
$menu-collapse-text: $menu-icon !default;
|
||||||
$menu-collapse-icon: $menu-icon !default;
|
$menu-collapse-icon: $menu-icon !default;
|
||||||
$menu-collapse-focus-text: $text-color !default;
|
$menu-collapse-focus-text: $text-color !default;
|
||||||
$menu-collapse-focus-icon: $menu-highlight-icon !default;
|
$menu-collapse-focus-icon: $menu-highlight-icon !default;
|
||||||
|
|
||||||
$adminbar-avatar-frame: lighten( $menu-background, 7% ) !default;
|
$adminbar-avatar-frame: lighten( $menu-background, 7% ) !default;
|
||||||
$adminbar-input-background: lighten( $menu-background, 7% ) !default;
|
$adminbar-input-background: lighten( $menu-background, 7% ) !default;
|
||||||
|
|
||||||
$adminbar-recovery-exit-text: $menu-bubble-text !default;
|
$adminbar-recovery-exit-text: $menu-bubble-text !default;
|
||||||
$adminbar-recovery-exit-background: $menu-bubble-background !default;
|
$adminbar-recovery-exit-background: $menu-bubble-background !default;
|
||||||
$adminbar-recovery-exit-background-alt: mix(black, $adminbar-recovery-exit-background, 10%) !default;
|
$adminbar-recovery-exit-background-alt: mix(black, $adminbar-recovery-exit-background, 10%) !default;
|
||||||
|
|
||||||
$menu-customizer-text: mix( $base-color, $text-color, 40% ) !default;
|
$menu-customizer-text: mix( $base-color, $text-color, 40% ) !default;
|
||||||
|
|
||||||
// Dashboard Colors
|
// Dashboard Colors
|
||||||
|
|
||||||
$custom-welcome-panel: "true" !default;
|
$custom-welcome-panel: "true" !default;
|
||||||
$dashboard-accent-1: $menu-submenu-background !default;
|
$dashboard-accent-1: $menu-submenu-background !default;
|
||||||
$dashboard-accent-2: $menu-background !default;
|
$dashboard-accent-2: $menu-background !default;
|
||||||
$dashboard-icon-background: $dashboard-accent-2 !default;
|
$dashboard-icon-background: $dashboard-accent-2 !default;
|
||||||
|
|
||||||
$low-contrast-theme: "false" !default;
|
$low-contrast-theme: "false" !default;
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
$scheme-name: "blue";
|
$scheme-name: "blue";
|
||||||
$base-color: #52accc;
|
$base-color: #52accc;
|
||||||
$icon-color: #e5f8ff;
|
$icon-color: #e5f8ff;
|
||||||
$highlight-color: #096484;
|
$highlight-color: #096484;
|
||||||
$notification-color: #e1a948;
|
$notification-color: #e1a948;
|
||||||
$button-color: #e1a948;
|
$button-color: #e1a948;
|
||||||
|
|
||||||
$menu-submenu-text: #e2ecf1;
|
$menu-submenu-text: #e2ecf1;
|
||||||
$menu-submenu-focus-text: #fff;
|
$menu-submenu-focus-text: #fff;
|
||||||
$menu-submenu-background: #4796b3;
|
$menu-submenu-background: #4796b3;
|
||||||
|
|
||||||
$dashboard-icon-background: $highlight-color;
|
$dashboard-icon-background: $highlight-color;
|
||||||
|
|
||||||
@import "../_admin.scss";
|
@import "../_admin.scss";
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
$scheme-name: "coffee";
|
$scheme-name: "coffee";
|
||||||
$base-color: #59524c;
|
$base-color: #59524c;
|
||||||
$highlight-color: #c7a589;
|
$highlight-color: #c7a589;
|
||||||
$notification-color: #9ea476;
|
$notification-color: #9ea476;
|
||||||
$low-contrast-theme: "true";
|
$low-contrast-theme: "true";
|
||||||
|
|
||||||
$form-checked: $base-color;
|
$form-checked: $base-color;
|
||||||
|
|
||||||
@import "../_admin.scss";
|
@import "../_admin.scss";
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
$scheme-name: "ectoplasm";
|
$scheme-name: "ectoplasm";
|
||||||
$base-color: #523f6d;
|
$base-color: #523f6d;
|
||||||
$icon-color: #ece6f6;
|
$icon-color: #ece6f6;
|
||||||
$highlight-color: #a3b745;
|
$highlight-color: #a3b745;
|
||||||
$notification-color: #d46f15;
|
$notification-color: #d46f15;
|
||||||
|
|
||||||
$form-checked: $base-color;
|
$form-checked: $base-color;
|
||||||
|
|
||||||
@import "../_admin.scss";
|
@import "../_admin.scss";
|
||||||
|
|||||||