Утилита CLI, ржаво-ржаво-рок-рок, модуль Python, модуль JavaScript, плагин Neovim и пакет Sile, чтобы отливать строки в титул (и другие случаи) в соответствии с руководствами по специфическим стилям, включая турецкую поддержку.
Этот проект родился из -за разочарования, когда авторы и редакторы оставляют все названия Caps в источниках маркировки. Никаких инструментов я мог бы найти должным образом поддерживать их в строки, связанные с титулом (которые являются более универсальными для целей набора наборных целей). Проблема была вдвойне сложной, потому что большая часть моей работы рядом с турецкой, и еще меньше инструментов было доступно и имеет особые проблемы с преобразованием случаев. Многие инструменты могут обрабатывать отдельные слова, некоторые инструменты, специфичные для программиста, обрабатывают токены и идентификаторы повторного переключения, и все же некоторые другие могут обрабатывать английские струны. Но, казалось, ничего не было для изменения случая турецкой прозы.
CLI по умолчанию на Titlecase и English, но также доступны варианты корпуса нижних и верхних и предложений. API библиотеки Rust, Lua, Python и JavaScript имеют функции, специфичные для каждой операции. Там, где это возможно, API в настоящее время по умолчанию в английских правилах и (для английского) руководства по стилю Gruber, но другие доступны.
Турецкий стиль следует руководящим принципам Института Турецкого языка.
Для английского языка известны три руководства по стилю: Associated Press (AP), Чикагское руководство по стилю (CMOS) и смелый огненный шар Джона Грубера (Грубер). Стиль Грубера, безусловно, самый полный, внедренный ящиком. Стиль CMOS обрабатывает ряд частей речи, но имеет проблемы, связанные с пунктуацией. Стиль AP в значительной степени непредубежден.
Взносы приветствуются для лучшей поддержки стиля или дальнейших языков.
Использование CLI довольно просто. Ввод может быть либо аргументами оболочки, либо stdin. Аргументы могут контролировать различные варианты. Для получения полной информации проверьте decasify --help или man decasify .
$ decasify -l tr ILIK SU VE İTEN RÜZGARLAR
Ilık Su ve İten Rüzgarlar
$ echo ILIK SU VE İTEN RÜZGARLAR | decasify -l tr
Ilık Su ve İten Rüzgarlar
$ echo foo BAR AND baz: an alter ego | decasify -l en -s gruber
Foo BAR and Baz: An Alter Ego Чтобы установить, сначала проверьте дистрибутивы на наличие пакетов, например, для Arch Linux, просто установите через pacman -S decasify или для Homebrew через brew install decasify .
В противном случае для многих платформ вы можете запустить его напрямую или установить на оболочку, используя NIX Flakes:
$ nix run github:alerque/decasify Чтобы сделать полную установку из источника, возьмите Tarball, прикрепленный к последнему выпуску, или используйте GIT, чтобы клонировать репозиторий. Не используйте файлы «исходный код» Zip/tar.gz, связанные из выпусков, перейдите для исходного файла tar.zst . Если вы используете GIT Close, сначала запустите ./bootstrap.sh после проверки. Это не нужно в исходном выпуске Tarballs. Затем настройте и установите с:
$ ./configure
$ make
$ sudo make install Обратите внимание, что установка из Source имеет преимущество, включающее в себя страницу человека и завершение оболочки. Применяются все обычные параметры AutoTools, --help . Наиболее часто используемый вариант, особенно для Distro Packagers, вероятно, --prefix /usr чтобы изменить место установки по умолчанию /usr/local .
Конечно, бинарный бинар также может быть установлен непосредственно с грузом:
$ cargo install --features cli decasify В вашем файле Cargo.toml .
[ dependencies ]
decasify = " 0.8 "Затем используйте функции и типы ящиков в вашем проекте.
use decasify :: titlecase ;
use decasify :: { Locale , StyleGuide } ;
fn demo ( ) {
let input = "ILIK SU VE İTEN RÜZGARLAR" ;
let output = titlecase ( input , Locale :: TR , StyleGuide :: LanguageDefault ) ;
eprintln ! { "{output}" } ;
let input = "title with a twist: a colon" ;
let output = titlecase ( input , Locale :: EN , StyleGuide :: DaringFireball ) ;
eprintln ! { "{output}" } ;
} Зависит от Luarock в вашем проекте или установите с помощью luarocks install decasify :
dependencies = {
" decasify "
}Затем импортируйте и используйте предоставленные функции:
local decasify = require ( " decasify " )
local input = " ILIK SU VE İTEN RÜZGARLAR "
local output = decasify . titlecase ( input , " tr " )
print ( output )
input = " title with a twist: a colon "
output = decasify . titlecase ( input , " en " , " gruber " )
print ( output ) Зависеть от модуля Python в вашем проекте или установить с помощью pip install decasify :
[ project ]
dependencies = [
" decasify "
]Затем импортируйте и используйте предоставленные функции и классы типов:
from decasify import *
input = "ILIK SU VE İTEN RÜZGARLAR"
output = titlecase ( input , Locale . TR )
print ( output )
input = "title with a twist: a colon"
output = titlecase ( input , Locale . EN , StyleGuide . DaringFireball )
print ( output ) Зависит от модуля JavaScript на основе WASM в вашем проекте с npm add decasify :
Затем импортируйте и используйте предоставленные функции и классы:
import { titlecase , uppercase , lowercase , Locale , StyleGuide } from 'decasify' ;
var input = "ILIK SU VE İTEN RÜZGARLAR"
var output = titlecase ( input , Locale . TR )
console . log ( output )
var input = "title with a twist: a colon"
var output = titlecase ( input , Locale . EN , StyleGuide . DaringFireball )
console . log ( output ) Используя Rocks.nvim, просто запустите :Rocks install decasify.nvim .
Используя lazy.nvim, просто добавьте { "alerque/decasify" }
Используя другие менеджеры плагинов, которые не обнаруживают автоматические зависимости, вам необходимо будет вручную указать зависимость и/или убедиться, что Rock Lua для Decasify доступен, а затем использовать этот репозиторий в качестве плагина, однако ваш менеджер плагинов обрабатывает это.
-- for packer.nvim
use {
" alerque/decasify " ,
rocks = { " decasify " },
} Используя No Plugin Manager, убедитесь, что RECASIFY ROCK устанавливается, соответствующая версии LUA Neovim, с помощью скопируя plugin/decasify.lua , где бы ни находился каталог плагинов вашего пользователя.
Новая команда :Decasify станет доступной (с дополнительными подкомандами для случаев, отличных от случая заголовка), которые преобразуют текущую строку или любой диапазон строк. Руководство по делу по умолчанию, локализацию и стиль можно изменить (до или после загрузки) с глобальными или буферными локальными переменными:
-- Set the default target case globally
vim . g . decasify_case = " title "
-- Change the locale for the current buffer
vim . b . decasify_locale = " tr "
-- Change the default style guide globally
vim . g . decasify_style = " gruber " Sile Sypeetter использует Luarocks для управления сторонними пакетами. Decasify.sile Rock может быть установлен с помощью luarocks install decasify.sile . Как правило, вы захотите настроить версию LUA, чтобы соответствовать вашей установке Sile, возможно, с luarocks --lua $(sile -q <<< SILE.lua_version) install decasify.sile . Кроме того, вы хотите использовать --local для установки в свою учетную запись пользователя вместо корнета системы или --tree lua_modules для локальной установки внутри одного проекта. Загрузка в документе Sile использует обычный use[module=package.decasify] (см. Примечания в руководстве Sile о настройке путей пакета, если вы установили через --local ). После загрузки пакет обнаруживает функцию decasify{} , которая может принять любую комбинацию настройки case , locale и style и применяет соответствующее преобразование к содержимому. По умолчанию он будет отслеживать язык содержания документа.