• Как сделать подстановку точки с запятой по ctrl+shift+enter в vscode?

    @svm Автор вопроса
    Нашел сам.
    Расширение Colonize для этого нужно. Если не заработает после установки, ищите в настройках сочетаний клавиш что мешает.
    Пока отмечать решенным не буду. Если есть что дополнить, пишите. Вдруг еще что-то есть.
    Ответ написан
    Комментировать
  • Как удалить Photos Library.photoslibrary из корзины?

    @svm Автор вопроса
    Не знаю как такое вообще произошло. Нестандартных вещей не делал ни разу. Судя по всему, проблема не очень популярная. В интернете практически ничего нет на эту тему.

    Теперь к решению... Вдруг кому поможет.
    Как-то додумался полезть в терминал, а там уже по порядку начал добираться. Надо просто удалить проблему из корзины через терминал. Корзина находится по пути /Users/Имя/.Trash
    Через sudo не дает даже посмотреть, что находится в каталоге, поэтому надо включать стандартного пользователя root. Примеры на скринах в комментах другого ответа. Кто не понимает что к чему, не советую этим заниматься. Это так, на всякий случай предупреждаю.

    Включить и войти под этим пользователем можно по этой инструкции: https://support.apple.com/ru-ru/HT204012
    Далее надо запустить терминал и перейти в папку:
    #cd /Users/Имя/.Trash
    И удалить эту, как оказалось, директорию:
    #rm -rf "Photos Library.photoslibrary"

    Не забудьте выйти и отключить пользователя root.
    Почему эта штука не удалялась стандартными средствами - я совсем не понял.
    Ответ написан
  • Как осуществить поиск слова в строке с разными окончаниями (регулярное выражение)?

    @svm
    (?<=\s|^)слов.*?(?=\s|$)
    Ответ написан
    Комментировать
  • Почему browsercync не открывается на телефоне?

    @svm
    Файрвол (брандмауэр) и антивирусник попробуйте отключите (на компьютере). Если заработает, то в этом проблема.
    Дальше только разрешение нужно выставить соответствующее.
    Еще вот это посмотрите: https://qna.habr.com/q/331004
    Ответ написан
    Комментировать
  • Параметр Clean-param в robots.txt. Как подружить Google и Yandex одновременно?

    @svm
    Инструмент же пишет, что он не распознает синтаксис этой директивы, а другие при этом он будет учитывать.
    Т.е. от использования этой директивы, другие правила не ломаются. В этом можно так же убедиться в этом инструменте, вставив любой url, который попадает под другие правила.

    У меня долгое время была эта директива установлена, но я не помню проверял или нет в этом инструменте. В любом случае, в GSC предупреждений не высвечивалось.

    На данный момент этой директивой не пользуюсь, так как перешел на использование фреймворка laravel и в нем написал посредник, который удаляет ненужные параметры, а нужные оставляет.

    Как непроверенный вариант на практике, могу предложить такой вариант:
    Disallow: /*?*amp
    Disallow: /*?*__cf_chl
    Я его только что придумал и быстро проверил. Вроде работает.
    Ответ написан
  • Как обратиться к файлу в twig шаблоне?

    @svm
    Пишу свое решение для blade шаблонизатора, но пугаться не надо, там то же самое, просто конструкции другие.

    webpack.config.js:
    new HtmlWebpackPlugin({
                template: "resources/js/template_vanilla.ejs",
                filename: path.resolve(__dirname, 'resources/views/inline/vanilla.blade.php'),
                inject: false,
                publicPath: '/assets',
            }),


    template_vanilla.ejs:
    <% let styles = htmlWebpackPlugin.files.css; %>
    <% let scripts = htmlWebpackPlugin.files.js; %>
    
    <% for (let style of styles) { %>
        <link rel="stylesheet" href="<%= style %>">
    <% } %>
    
    <% for (let script of scripts) { %>
        <script src="<%= script %>"></script>
    <% } %>


    После выполнения в resources/views/inline/vanilla.blade.php будет следующий код:
    <script src="/assets/js.ebb3174236087eacfa7b.bundle.js"></script>

    который можно подключить обычной конструкцией
    В моем случае это будет @include('inline.vanilla')
    В вашем, наверно {% include 'resources/views/inline/vanilla.blade.php' %}
    По сути, только имена файлов поменять на нужные вам остается.

    Я это все делал для того, чтобы автоматически сбрасывался кэш у пользователей в браузерах и не надо было вручную редактировать. И чтобы код чистый был более-менее.
    Ответ написан
  • Как добавить на сайт счётчики аналитики не ухудшая скорость загрузки?

    @svm
    Касательно яндекс.метрики:
    Не включайте вебвизор, если он не нужен. TTI в Lighthouse значительно проседает.

    Касательно гугл аналитики:
    Подключайте через analitics.js, а не через gtag.js

    Не нужно делать setTimeout на подключение - не поможет. Асинхронного подключения достаточно.
    Для того же lighthouse setTimeout может навредить. И если значение поставить слишком высокое, то сама аналитика будет уже искаженные данные показывать, а из этого следует вывод - зачем тогда вообще нужна аналитика, если её подключать через 5 секунд, как здесь советуют?

    По поводу размещения скриптов на своем сайте:
    Антон вполне прав и это не чушь. Размещая скрипты на своем сервере, можно задать свои заголовки кэширования, что позволяет дольше хранить скрипты у пользователя. И CDN чаще может дольше отвечать, чем свой правильно настроенный сервер.
    Для обновления достаточно нужный скрипт в крон добавить (загружать через wget или curl). Никакую инфраструктуру для этого не надо разворачивать.

    На счет пикселей ФБ, ВК и прочих - по мне это лишнее уже, реально.
    Ответ написан
    4 комментария
  • Как вставлять критически css в Laravel?

    @svm
    У меня реализовано такое через webpack.

    В webpack.config.js

    const css = {
        name: 'css',
        mode: "production",
        entry: {
            global:     './resources/css/global.js',
        },
        output: {
            path: path.resolve(__dirname, 'public/assets'),
            filename: '[name].[contenthash].js',
        },
        module: {
            rules: [
                {
                    test: /\.scss$/,
                    use: [
                        MiniCssExtractPlugin.loader,
                        'css-loader',
                        'postcss-loader',
                        'sass-loader'
                    ]
    
                }
            ]
        },
        plugins: [
            new MiniCssExtractPlugin({
                filename: '[name].[contenthash].css'
            }),
            new CleanWebpackPlugin(),
            new HtmlWebpackPlugin({
                template: "resources/css/template_inline_css.ejs",
                filename: path.resolve(__dirname, 'resources/views/inline/css.blade.php'),
                inject: false,
                publicPath: '/assets',
            }),
        ],
    }


    В template_inline_css.ejs
    <% let styles = htmlWebpackPlugin.files.css; %>
    
    <% for (let style of styles) { %>
        @push('<%= style.replace(/\/.+\/(.+?)\..+/, '$1') %>_css')
            <style><%= compilation.assets[style.substr(htmlWebpackPlugin.files.publicPath.length)].source() %></style>
        @endpush
    <% } %>


    Затем можно подключить это в любом blade шаблоне
    @include('inline.css')
    @stack('global_css')

    Краткая суть работы такая:
    webpack скачала преобразует css код, потом MiniCssExtractPlugin его извлекает, затем HtmlWebpackPlugin его вставляет туда, куда ему сказано в переданных параметрах и по заданному шаблону ejs.
    При желании подключение в blade через push можно убрать в шаблоне template_inline_css.ejs. Я это для себя делал, так как нужна была универсальность, чтобы можно было сделать несколько точек входа.

    Как итог: все работает автоматически, хоть и сложно устроено.
    Ответ написан
  • Как зайти на OpenServer из виртуальной машины VMWare?

    @svm
    1. На маке (т.е. виртуальной машине):
    sudo nano /etc/hosts
    Добавить в файл хоста связку ip компьютера, на котором запускается сама виртуальная машина, и доменное имя.
    Например
    192.168.1.2 example.com

    В настройках OpenServer во вкладке "Сервер"
    Ip адрес сервера выставить "Все доступные IP" (осторожно с данной настройкой, она открывает так же доступ извне). После тестирования сразу выключайте.

    Всё, можно тестировать сайт. Не надо никакие DNS настраивать, все будет прекрасно работать.
    Если не будет, значит брандмауэр надо попробовать отключить, возможно блокирует.

    Знаю, что поздно, ну лучше так, чем никогда. Сам искал ответ на этот вопрос, в интернете нигде нет внятного ответа.
    Ответ написан
    1 комментарий
  • Как задать статический IP при подключении к Softether VPN?

    @svm
    Кому интересно - задавайте ip адрес по имени хоста. dnsmasq в данный момент предоставляет такую возможность.
    Точно так же столкнулся с этой проблемой, в интернете ничего не нашел вообще.

    Выдержка из стандартного файла конфигурации.
    # Give the machine which says its name is "bert" IP address
    # 192.168.0.70 and an infinite lease
    dhcp-host=bert,192.168.0.70,infinite
    Ответ написан
    Комментировать