{"_id":"@anastasiia_berest/slug","name":"@anastasiia_berest/slug","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@anastasiia_berest/slug","version":"1.0.0","description":"Auto Generated rewritable Slug field (same for different locales). Default value format: post-${year}-${month}-${day}-${hours}-${minutes}-${seconds}","strapi":{"name":"slug","description":"Autogenerated Custom Slug plugin","kind":"plugin","displayName":"Autogenerated Slug"},"repository":{"type":"git","url":"git+https://github.com/anastasiiaxfr/strapi-plugin-field-slug.git"},"devDependencies":{},"peerDependencies":{"@strapi/strapi":"^4.6.1"},"author":{"name":"Anastasiia Berest","email":"anastasiiaberest@gmail.com","url":"XFR | xforeal"},"maintainers":[{"name":"anastasiia_berest","email":"anastasiiaberest@gmail.com"}],"engines":{"node":">=14.19.1 <=18.x.x","npm":">=6.0.0"},"license":"MIT","bugs":{"url":"https://github.com/anastasiiaxfr/strapi-plugin-field-slug/issues"},"homepage":"https://github.com/anastasiiaxfr/strapi-plugin-field-slug#readme","main":"strapi-admin.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["strapi","slug","custom fields"],"gitHead":"c5dfa617af2fe2bd1cf9df81b15978935678570b","_id":"@anastasiia_berest/slug@1.0.0","_nodeVersion":"16.10.0","_npmVersion":"7.24.0","dist":{"integrity":"sha512-Se+SnZ5j+gX54ec76f2SgqWYftNv5ohGeF5J4SgFlPcAcBwFCvvNrXFWwmOkPkBTEs0KhZQC5kDarHnpeLIhOg==","shasum":"8a649dd1ca906ee99138e8e229b4a750b75a2750","tarball":"https://registry.npmjs.org/@anastasiia_berest/slug/-/slug-1.0.0.tgz","fileCount":34,"unpackedSize":246149,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFKw/S7qPAmVje0nb2MtRS/kUvtnpyoA19ePJX626kb5AiBLc/htmAJnKQWp935jriEz/XSJXQMVPjosgpN11Q9j2w=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkIYPfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrKvA/7BRG9mv6ylwKy4wmEoL7Zpd3uCp/7uq3s3b8PgI60t/+zuWsX\r\nQoqFmK9T02lklK+qNqVextPiZRq8Ri1ONRRMGEWy1FuUloKT/hOT9ptRzZFK\r\nTx1PbjncdCuQYBEKwuTaU0CwMG6PaaSyihm+0dFB1fC+MNnDj88sAZ4+ZqGW\r\nAMwnr/J45lZmrXzySlWLdAUWCoXtzGTMBs+TfXh1NBg4DTkd+ZUbOBg1HZxF\r\ni+JJ59JLKC1pyF3lcB9j7guRvDEDoyvod8NmG1nJ6tHTRN4NF/WgDXYnOZDI\r\ntcmq0bH6Ozfi/JBKLj3KE13zL7fnFjkhYxWsHGmXClGT3ns0fold4cFOU6Yc\r\naEbfpnm/rkZgCNxq/ID+9kbD5EbHjTYlziNtHRwvZRxtq94EaD55cRY0bj2X\r\nOYaeSLmQEEH9o6ypuyFGWtao+Q0KXat24iSlBu6pSn5Ngmbw/U39Wb6iVWkv\r\nLFMlEA98KIKQRCaVa6iYMlfCS2r9wrtkH1Ju2pyWOcF3NpBSE3PNNhpml1Ft\r\nZoriBLnMgCpLNiaDfdKlarXJ3yd6GLGjE3uAN3t3z81lKIxTPmE0d849SweF\r\nMZI1OWSZxcukIPMKNn0oKnhLYuTB163hFFee1B1MCVWdQ442Tgm/bLfXaOag\r\nrdqkGwC8E/mwA+w3EX2n1NviQTE0YEACXSg=\r\n=wvv2\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anastasiia_berest","email":"anastasiiaberest@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/slug_1.0.0_1679918047173_0.8066446426875125"},"_hasShrinkwrap":false}},"time":{"created":"2023-03-27T11:54:07.103Z","1.0.0":"2023-03-27T11:54:07.368Z","modified":"2023-03-27T11:54:07.633Z"},"maintainers":[{"name":"anastasiia_berest","email":"anastasiiaberest@gmail.com"}],"description":"Auto Generated rewritable Slug field (same for different locales). Default value format: post-${year}-${month}-${day}-${hours}-${minutes}-${seconds}","homepage":"https://github.com/anastasiiaxfr/strapi-plugin-field-slug#readme","keywords":["strapi","slug","custom fields"],"repository":{"type":"git","url":"git+https://github.com/anastasiiaxfr/strapi-plugin-field-slug.git"},"author":{"name":"Anastasiia Berest","email":"anastasiiaberest@gmail.com","url":"XFR | xforeal"},"bugs":{"url":"https://github.com/anastasiiaxfr/strapi-plugin-field-slug/issues"},"license":"MIT","readme":"# Strapi plugin: slug\r\n---\r\nThis plugin adds a Slug field to Strapi.\r\nSlug has autocomplete default generated value in format: post-year-month-day-hours-minutes-seconds, same for all locales.\r\n\r\n## Instalation\r\nInstall the plugin in your Strapi project.\r\n- npm i slug | [npm](https://www.npmjs.com/package/slug)\r\n<!-- - in root folder cd config folder and touch plugins.js\r\n  paste this: \r\n\r\n```\r\n    module.exports = {\r\n    // ...\r\n    'slug': {\r\n      enabled: true\r\n    },\r\n    //...\r\n    }\r\n``` -->\r\n- npm run build > npm run develop\r\n- go to admin > Content Type Builder > choose content type > click to button Add another field (to this collection type) > select tab CUSTOM > click on slug plugin tile > add name to field label > click on button finish > click on button save.\r\n- go to tab Advanced settings and check it off Enable localization for this field to FALSE (if it is TRUE/checked plugin generate unique value for every entry for all locales)\r\n\r\n[content-type-builder](http://localhost:1337/admin/plugins/content-type-builder/content-types/)\r\n\r\n\r\n## Description\r\nThis is Slug Custom Field plugin which generate automatically rewritable values on entity creation, like: post-year-month-day-hours-minutes-seconds and saves the same value for all locales in slug.\r\n      \r\n- autocomplete autofill uniq default value by title, entry id, current datetime and/or key word \r\n- same slug value to all locales \r\n- rewritable data \r\n- pattern by placeholder\r\n\r\n## Screenshots\r\n\r\n![demo1](./assets/demo1.jpg)\r\n![demo2](./assets/demo2.jpg)\r\n![demo4](./assets/demo4.jpg)\r\n![demo5](./assets/demo5.jpg)\r\n![demo3](./assets/demo3.jpg)\r\n\r\n## Demo\r\n[watch](https://www.veed.io/embed/19187aa4-f152-4325-a50a-3fd62cec9eb4)\r\n\r\n\r\n---\r\n\r\n# Цель\r\n\r\nНужно автозаполняемое поле slug, сохраняющее одно и то же значение для всех локалей. Текущие настройки UID не позволяют сохранять одно и тоже значение для разных языков.\r\n\r\n### Созданный плагин отображает поле CustomField Slug, которое:\r\n\r\n- автозаполненное со сгенерированными по паттерну значениями\r\n- редактируемое (вводимые значения с клавиатуры на уникальность не проверяются)\r\n- сохраняет одно и то же значение для всех локалей - автогенерируемые значения уникальны\r\n- автоподставляет значение из паттерна или если нажать переключатель - данные из поля title, если они присутствуют \r\n\r\n### Доступны следующие паттерны для генерации автозаполнения:\r\n\r\n- kw (key word - ключевое слово)\r\n- kw + title\r\n- kw + id\r\n- kw + datetime\r\n- title\r\n- id\r\n- datetime\r\n  \r\nПо умолчанию, стоит datetime в формате: год-месяц-число-час-минуты-секунды. Если не указывать kw, то будут значения из паттернов title, id, datetime или же, если не выбрано ни kw ни pattern, будет значение \"datetime\".  Поле по паттерну id автозаполняется после нажатия кнопки Сохранить в соответствующей коллекции Entry, это связано с спецификой Strapi, он присваивает значение ID, только после сохранения поста. \r\nЕсли включить чекбокс Enable localization, все значения будут уникальны и перегенерированны заново для каждой локали.\r\n\r\n#### Slugify/URLize/генерация наименования ссылок:\r\nНашла, но не очень поняла, как Strapi конвертирует вводимые значения на кириллице в латиницу и убирает спец. символы.\r\n[Например](https://github.com/strapi/strapi/blob/main/packages/core/admin/admin/src/content-manager/components/InputUID/index.js), тут отправляет запрос на /content-manager/uid/generate и получает ключ data с конвертированным значением. Не поняла, как достучаться до этого поля, чтоб были нужные значения, потому на Chat GPT сделала конвертер cyr-to-lat. \r\n\r\n\r\n### Похожие плагины:\r\n- [URL alias](https://market.strapi.io/plugins/@strapi-community-strapi-plugin-url-alias)\r\n- [Custom Links](https://market.strapi.io/plugins/strapi-plugin-custom-links)\r\n- [UUID Field](https://market.strapi.io/plugins/@bn-digital-strapi-plugin-field-uuid)\r\n\r\n### Доработки:\r\n- убрать иконку и тайтл в админке в сайдбаре [ui]\r\n- расположить в ряд поля с настройками плагина (Kw + Pattern) [ui]\r\n- сделать проверку на уникальность/совпадения вводимых значений с клавиатуры [feature] ","readmeFilename":"README.md"}