Требования: - Подсветка кода - powershell, bash, yaml, dos - Таблицы - Галереи картинок - Плейлист аудио ====== Datenstrom Yellow ====== https://datenstrom.se/yellow/help\\ https://github.com/datenstrom/yellow\\ [[https://www.php.net/manual/en/datetime.format.php|PHP time format]] ===== Настройки ===== Page settings The following settings can be configured at the top of a page: Title = page title TitleContent = page title shown in content TitleNavigation = page title shown in navigation TitleHeader = page title shown in web browser TitleSlug = page title used for saving the page Description = page description Author = page author(s), comma separated Email = email of page author Language = page language, e.g. en Layout = page layout LayoutNew = page layout for creating a new page Theme = page theme Parser = page content parser Status = page status, supported status values Redirect = redirect to a new page or URL Image = page image ImageAlt = description of the page image Modified = page modification date, YYYY-MM-DD format Published = page publication date, YYYY-MM-DD format Tag = page tag(s) for categorisation, comma separated Generate = page option(s) for generating a static website, comma separated Comment = page option(s) for showing comments, comma separated The following page status values are supported: public = page is a normal page private = page is not visible, user needs to enter password, requires private extension draft = page is not visible, user needs to log in, requires draft extension unlisted = page is not visible, but can be accessed with the correct link shared = page is not visible, but can be included in other pages ===== Плагины ===== https://datenstrom.se/yellow/extensions/\\ https://github.com/GiovanniSalmeri?tab=repositories&q=yellow-&type=&language=&sort=\\ https://github.com/RobskiV/yellow-plugins\\ ==== Установка ==== Способ 1 (для официальных расширений): В Докере: ''docker exec -it yellow-php php82 yellow.php install <имя расширения>''\\ Способ 2: Скопировать zip в system\extensions и обновить страницу сайта, архив сам распакуется и установится. curl -L https://github.com/GiovanniSalmeri/yellow-video/archive/refs/heads/main.zip -o ~/volumes/yellow/system/extensions/video.zip ==== Картинки ==== Одиночные: https://github.com/annaesvensson/yellow-image ''%%[image photo.jpg "description of the image" style width height]%%'' Name = file name\\ Alt = description of the image, wrap multiple words into quotes\\ Style = image style, e.g. left, center, right (или прочерк для значения по умолчанию)\\ Width = image width, pixel or percent\\ Height = image height, pixel or percent Слайдер: https://github.com/annaesvensson/yellow-slider ''%%[slider photo.*jpg name loop 100% 1000]%%'' Pattern = file name as regular expression\\ Sorting = gallery sorting, e.g. name, modified, size\\ Style = gallery style, e.g. loop, fade, slide\\ Size = image size, pixel or percent\\ Autoplay = play images automatically, delay time in milliseconds Галерея: https://github.com/annaesvensson/yellow-gallery ''%%[gallery photo.*jpg name zoom 300]%%'' Pattern = file name as regular expression\\ Sorting = gallery sorting, e.g. name, modified, size\\ Style = gallery style, e.g. zoom, simple\\ Size = image size, pixel or percent === Расчёт размера картинок в галерее === $width = 879 $border = 4 $row = read-host "Кол-во картинок в ряду" ($width - $border * ($row - 1)) / $row ==== Аудиоплеер ==== https://github.com/GiovanniSalmeri/yellow-sound\\ {{:service:pasted:20230805-143127.png?600}} [sound my_song.mp3] [sound violin/ciaccona.flac] [sound album=2214@funkwhale.it] [sound track=3VM35337X7Ro1tesUHnZ95] [sound playlist.m3u] ==== Подсветка синтаксиса ==== Установка: ''docker exec -it yellow-php php82 yellow.php install highlight''\\ https://github.com/annaesvensson/yellow-highlight\\ Языки: https://github.com/scrivo/highlight.php/tree/master/src/Highlight/languages ==== Youtube ==== Установка: ''docker exec -it yellow-php php82 yellow.php install youtube''\\ https://github.com/annaesvensson/yellow-youtube ==== Video ==== https://github.com/GiovanniSalmeri/yellow-video ==== RSS feed ==== Установка: ''docker exec -it yellow-php php82 yellow.php install feed''\\ https://github.com/annaesvensson/yellow-feed /system/themes/snippets/footer.php ">Feed. /system/config/config.ini FeedFilter: blog https://internetblogger.de/2016/11/yellow-cms-rss-feed-plugin-installieren/ ==== Typography ==== https://github.com/GiovanniSalmeri/yellow-typography ===== Обновление ===== docker exec -it yellow-php php82 yellow.php update Blog 0.8.28 Copenhagen 0.8.15 Core 0.8.123 Edit 0.8.76 Feed 0.8.21 Markdown 0.8.26 Search 0.8.29 Update 0.8.95 Yellow update: Updates are available. Please type 'php yellow.php update all'. docker exec -it yellow-php php82 yellow.php update all Yellow update: Website updated, 8 extensions updated ====== Ghost ====== https://hub.docker.com/_/ghost/\\ https://ghost.org/docs/config/# Доступ к админке: ''/ghost'' ====== HTMLy ====== https://www.htmly.com/\\ https://github.com/danpros/htmly/ ====== Pico ====== https://picocms.org/docs/\\ https://github.com/picocms/Pico/releases ++++ Дерево каталогов проекта | ├── docker-compose.yml ├── nginx │   ├── default.conf.template │   └── Dockerfile ├── php │   └── Dockerfile └── www # распакованный pico-release-v3.0.0-alpha.2.tar.gz ├── assets ├── CHANGELOG.md ├── composer.json ├── composer.lock ├── config ├── content ├── CONTRIBUTING.md ├── index.php ├── LICENSE ├── plugins ├── README.md ├── themes └── vendor ++++ ++++ docker-compose.yml | version: '3.7' services: cmspico: container_name: cmspico depends_on: - cmspico-php build: ./nginx restart: unless-stopped environment: NGINX_ROOT: /var/www/html NGINX_FASTCGI_PASS: cmspico-php ports: - 80:80 volumes: - ./www:/var/www/html cmspico-php: container_name: cmspico-php build: ./php restart: unless-stopped volumes: - ./www:/var/www/html ++++ ++++ php/Dockerfile | FROM alpine:3.18 # ADD --chown=82:82 https://github.com/picocms/Pico/releases/download/v2.1.4/pico-release-v2.1.4.tar.gz /var/www/html/ WORKDIR /var/www/html RUN apk add --no-cache \ php82 \ php82-fpm \ php82-mbstring \ php82-dom && \ addgroup -g 82 -S www-data || true && \ adduser -u 82 -D -S -G www-data www-data || true && \ sed -i '/listen = /c listen = 0.0.0.0:9000' /etc/php82/php-fpm.d/www.conf && \ chown -R 82: /var/log/php* . # tar -xf pico-release-v2.1.4.tar.gz && \ # rm pico-release-v2.1.4.tar.gz && \ EXPOSE 9000 USER 82 CMD ["php-fpm82", "-F"] ++++ ++++ nginx | FROM nginx:alpine WORKDIR /var/www/html COPY default.conf.template /etc/nginx/templates/ #COPY --chown=82:82 public/. /var/www/html/public server { listen 80; index index.php index.html; root ${NGINX_ROOT}; location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass ${NGINX_FASTCGI_PASS}:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } location / { try_files $uri $uri/ /index.php?$query_string; gzip_static on; } location ~ /\.(?!well-known).* { deny all; } } ++++ ====== Wordpress ====== ===== Установка ===== [[https://make.wordpress.org/hosting/handbook/server-environment/|Prerequisites]] # Скачать последнюю версию wget https://ru.wordpress.org/latest-ru_RU.zip # Распаковать unzip latest-ru_RU.zip # Скопировать в корень веб-каталога mv wordpress/* /var/www/html # Дать права веб-серверу chown -R www-data:www-data /var/www/html # Сделать базу под названием wordpress: mysql -u root -p -e "create database wordpress"; Далее зайти на веб-интерфейс и пройти пошаговую установку. ===== Настройка ===== # Симлинки - нужны, чтобы освободить место на системной флешке. # После переноса папки wp-content на отдельную карточку SD, создаётся симлинк, # чтобы Wordpress думал, что он кладёт данные туда же, куда и раньше. # сделать симлинк на первый путь со второго ln -s /media/sdcard/wp-content /var/www/html/wp-content # заменить владельца симлинка на веб-сервер chown -h www-data:www-data /var/www/html/wp-content # рекурсивно заменить владельца файлов в новом расположении chown -R www-data:www-data /media/sdcard/wp-content # Настроить максимальный размер файла на закачку в PHP # Проверить версию PHP и путь к используемому php.ini, например, он может быть # /etc/php/7.0/fpm/php.ini. Есть ещё # /etc/php/7.0/cli/php.ini. sed -i ' /upload_max_filesize =/c upload_max_filesize = 4G /post_max_size =/c post_max_size = 4G' /etc/php/7.0/apache2/php.ini # Отключить листинг каталогов сайта echo "Options -Indexes" >> /var/www/html/.htaccess ==== Воспроизведение аудиофайлов в браузере в Ubuntu ==== Для этого нужно поставить кодеки: sudo apt-get install ubuntu-restricted-extras ===== Миграция ===== https://wordpress.org/support/article/backing-up-your-database/\\ https://wordpress.org/support/article/moving-wordpress/\\ https://wpengine.com/resources/migrate-wordpress-site/ ==== Миграция на статику ==== В Wordpress: Инструменты -> Экспорт -> Всё содержимое docker run --rm --name node -it -v /home/user/wp:/app node:alpine sh cd /app wget https://github.com/lonekorean/wordpress-export-to-markdown/archive/refs/heads/master.zip unzip master.zip cd wordpress-export-to-markdown-master/ npm install && node index.js Starting wizard... ? Path to WordPress export file? ../WordPress.2023-08-04.xml ? Path to output folder? output ? Create year folders? No ? Create month folders? No ? Create a folder for each post? Yes ? Prefix post folders/files with date? No ? Save images attached to posts? Yes ? Save images scraped from post body content? Yes ? Include custom post types and pages? No Parsing... 621 posts found. 643 attached images found. 525 images scraped from post body content. Saving 621 posts (0 already exist)... [OK] post-1 [OK] post-2 [OK] post-3 ... Done, got them all! Downloading and saving 906 images (0 already exist)... [OK] 0_35843_228d6bb_L.jpg [OK] 0_35833_ef4db138_L.jpg [OK] 0_35842_b0b48f84_L.jpg ... Done, but with 3 failed. All done! Look for your output files in: /app/wordpress-export-to-markdown-master/output https://swizec.com/blog/how-to-export-a-large-wordpress-site-to-markdown/\\ https://github.com/lonekorean/wordpress-export-to-markdown ===== Полезные плагины ===== [[https://ru.wordpress.org/plugins/stop-user-enumeration/|Stop User Enumeration]] - отключает выведение списка пользователей по запросу извне\\ [[https://ru.wordpress.org/plugins/email-address-encoder/|Email Address Encoder]] - видоизменяет почтовые адреса в коде таким образом, что их не могу прочитать роботы-сборщики\\ [[https://ru.wordpress.org/plugins/wp-fail2ban-redux/|WP Fail2Ban Redux]] - перенаправляет логи в /var/log/auth.log для работы [[service:fail2ban#для_wordpress|fail2ban]]\\ [[https://ru.wordpress.org/plugins/duplicator/|Duplicator]] - gives WordPress users the ability to migrate, copy, move or clone a site from one location to another and also serves as a simple backup utility.\\ [[https://ru.wordpress.org/plugins/syntaxhighlighter/|SyntaxHighlighter Evolved]] - allows you to easily post syntax-highlighted code to your site without losing its formatting or making any manual changes. ==== Использование SyntaxHighlighter Evolved ==== [code lang=%%"css"%%]\\ your code here\\ [/code] Если язык не указывать, по умолчанию - text. Список поддерживаемых языков: * actionscript3 * bash * clojure * coldfusion * cpp * csharp * css * delphi * diff * erlang * fsharp * groovy * html * java * javafx * javascript * latex (you can also render LaTeX) * matlab (keywords only) * objc * perl * php * powershell * python * r * ruby * scala * sql * text * vb * xml https://en.support.wordpress.com/code/posting-source-code/ ===== Хитрости ===== ==== Как сделать название аудиофайла рядом с треком ==== В данном случае название будет курсивом

Название аудиофайла

[audio mp3="http://site/wp-content/uploads/2017/03/12345.mp3"][/audio]
[[https://www.tipsandtricks-hq.com/wordpress-audio-music-player-plugin-4556|Источник]] ==== Якоря в тексте ==== Откуда: Предисловие автора Куда:

Предисловие автора

==== Вставить приветствие на странице в зависимости от времени суток ==== ==== Код встраивания роликов с Youtube без лишних функций ==== Заменить qhRL6SBHMsQ в коде на нужное значение ==== HTML и таблицы ==== Пример таблицы для корректного отображения в Wordpress:
Было:
Имя подкаталогаРазмерФайлыПапки
Концерты181,1 ГБ20430
Мультфильмы153,5 ГБ71743
Документальные фильмы126,9 ГБ18927
Записи87,1 ГБ335
Художественные фильмы55,2 ГБ485
Детские фильмы41,3 ГБ393
Образование30,4 ГБ125059
Прочее67,9 МБ131
Всего:675,7 ГБ2493181
[[https://wpbtips.wordpress.com/2012/02/05/introduction-to-html-for-wordpress-com-users/|Introduction to HTML for wordpress.com users]]\\ [[https://wpbtips.wordpress.com/2013/04/09/table-coding-for-wordpress-com-users/|Table coding for wordpress.com users]] ===== Решение проблем ===== ==== "Извините, вам не разрешено просматривать эту страницу" в админке ==== Добавить в ''wp-config.php'' // Только не в конец файла, а сразу после настроек базы $_SERVER['HTTPS'] = 'on'; https://serveradmin.ru/oshibka-wordpress-izvinite-vam-ne-razresheno-prosmatrivat-etu-straniczu/ ==== Array and string offset access syntax with curly braces is no longer supported ==== После обновления PHP с 7.4 до 8.2 сайт не работает, в логах Nginx ошибка: 2023/06/18 20:05:42 [error] 31#31: *451 FastCGI sent in stderr: "PHP message: PHP Fatal error: Array and string offset access syntax with curly braces is no longer supported in /var/www/html/wp-content/plugins/simple-mail-address-encoder/simple-mail-address-encoder.php on line 83" while reading response header from upstream, client: 172.18.0.11, server: wp, request: "GET /tag/%D0%B7%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5/ HTTP/1.1", upstream: "fastcgi://172.18.0.5:9000", host: "bva.dyndns.info" Решение: заменить в упомянутом PHP-файле в упомянутой строке значение в фигурных скобках на значение в квадратных скобках. // Было echo($str{0}); // Стало echo($str[0]); https://stackoverflow.com/questions/59158548/array-and-string-offset-access-syntax-with-curly-braces-is-deprecated ===== Полезные ресурсы ===== [[https://wpscans.com/|Сканер безопасности для Wordpress]]\\ [[https://codex.wordpress.org/Brute_Force_Attacks|Советы по безопасности]]\\ [[https://codex.wordpress.org/UNIX_Shell_Skills|UNIX Shell Skills]] ====== Литература ====== [[https://www.tldevtech.com/10-best-flat-file-cmses-to-build-a-website-without-database/|10 Best Simple CMSs To Build A Website Without a Database]]\\ [[https://lowendspirit.com/discussion/3040/seeking-wordpress-alternative-flat-nodb|Seeking Wordpress alternative (flat/noDB)]]\\ https://www.slant.co/topics/9652/~flat-file-cms