Uma utilitária da CLI, CRATE RURT, LUA ROCK, Módulo Python, módulo JavaScript, plug-in Neovim e pacote Sile para lançar strings para o caso de título (e outros casos) de acordo com guias de estilo específicos do local, incluindo suporte turco.
Este projeto nasceu por frustração com autores e editores deixando todos os títulos do Caps em fontes de remarca. Nenhuma ferramenta que eu encontrei com suporte adequadamente suportado isso em seqüências de caracteres (que são mais versáteis para fins de digitação). O problema foi duplamente difícil porque a maior parte do meu trabalho é adjacente ao turco, e ainda menos ferramentas estavam disponíveis e tem problemas especiais com as conversões de casos. Muitas ferramentas podem lidar com palavras únicas de invólucro, algumas ferramentas específicas do programador lidam com os tokens e identificadores de re-classificação, e ainda alguns outros podem lidar com strings em inglês . Mas nada parecia estar lá fora para mudar o caso da prosa turca.
Os padrões da CLI para as opções de casos de titleCase e inglês, mas inferior, superior e de sentença, também estão disponíveis. As APIs da biblioteca de ferrugem, Lua, Python e JavaScript têm funções específicas para cada operação. Sempre que possível, as APIs atualmente são inadimplentes para as regras em inglês e (para o inglês) o Guia do estilo Gruber, mas outras estão disponíveis.
O estilo turco segue as diretrizes do Instituto de Língua Turca.
Para o inglês, três guias de estilo são conhecidos: Associated Press (AP), Manual de Estilo de Chicago (CMOs) e ousada bola de fogo de John Gruber (Gruber). O estilo Gruber é de longe o mais completo, sendo implementado pela caixa TitleCase. O estilo CMOS lida com várias partes do discurso, mas possui problemas relacionados à pontuação. O estilo AP é amplamente não implementado.
As contribuições são bem -vindas para o melhor suporte ao guia de estilo ou outros idiomas.
O uso da CLI é bem simples. A entrada pode ser argumentos de shell ou stdin. Os argumentos podem controlar as várias opções. Para informações de uso total, verifique decasify --help ou 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 Para instalar, verifique primeiro sua distração para obter pacotes, por exemplo, para o Arch Linux, basta instalar via pacman -S decasify ou para homebrew via brew install decasify .
Caso contrário, para muitas plataformas, você pode executá -lo diretamente ou instalá -lo em um shell usando flocos nix:
$ nix run github:alerque/decasify Para fazer uma instalação completa da fonte, pegue o tarball anexado à versão mais recente ou use o Git para clonar o repositório. Não use os arquivos ZIP/TAR.GZ "Código -fonte" vinculados a partir de versões, vá para o arquivo de origem tar.zst . Se você usar um git fechado, primeiro execute ./bootstrap.sh após a compra. Isso não é necessário no Tarballs de liberação da fonte. Em seguida, configure e instale com:
$ ./configure
$ make
$ sudo make install Observe que a instalação da fonte tem a vantagem de incluir uma página de um homem e as conclusões do shell. Todas as opções usuais de autotools se aplicam, consulte --help para obter detalhes. A opção mais usada, especialmente para os pacotes de distro, é provavelmente --prefix /usr para alterar o local de instalação do padrão de /usr/local .
É claro que o binário nua também pode ser instalado diretamente com carga:
$ cargo install --features cli decasify No seu arquivo Cargo.toml .
[ dependencies ]
decasify = " 0.8 "Em seguida, use as funções e tipos de caixa em seu projeto algo assim:
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}" } ;
} Depende do Luarock em seu projeto ou instale com luarocks install decasify :
dependencies = {
" decasify "
}Em seguida, importe e use as funções fornecidas:
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 ) Depende do módulo Python em seu projeto ou instale com pip install decasify :
[ project ]
dependencies = [
" decasify "
]Em seguida, importe e use as funções fornecidas e as classes de tipo:
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 ) Depende do módulo JavaScript baseado em WASM em seu projeto com npm add decasify :
Em seguida, importe e use as funções e classes fornecidas:
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 ) Usando rocks.nvim, basta executar :Rocks install decasify.nvim .
Usando preguiçosamente.nvim, basta adicionar { "alerque/decasify" }
Usando outros gerentes de plug -in que não detectam dependências automaticamente, você precisará especificar manualmente a dependência e/ou garantir que o Lua Rock for Decasify esteja disponível e use esse repositório como um plug -in, no entanto, o gerenciador de plug -in lida com isso.
-- for packer.nvim
use {
" alerque/decasify " ,
rocks = { " decasify " },
} Usando nenhum gerenciador de plug -in, verifique se o rock decasify está instalado correspondendo à versão do Lua Neovim, e copie plugin/decasify.lua para onde quer que o diretório do plug -in do seu usuário esteja.
Um novo comando :Decasify estará disponível (com subcomandos opcionais para outros casos que não o caso do título) que transformam a linha atual ou qualquer intervalo de linhas. O guia de caso, localidade e estilo padrão pode ser alterado (antes ou após o carregamento) com variáveis locais globais ou buffers:
-- 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 " O Sile Typesetter aproveita os Luarocks para gerenciar pacotes de terceiros. A rocha Decasify.Sile pode ser instalada com luarocks install decasify.sile . Normalmente, você deseja ajustar a versão Lua para corresponder à sua instalação do Sile, talvez com luarocks --lua $(sile -q <<< SILE.lua_version) install decasify.sile . Além disso, você deseja usar --local para instalar na sua conta de usuário em vez da raiz do sistema ou --tree lua_modules para instalar localmente dentro de um único projeto. Carregando -o em um documento Sile usa o usual use[module=package.decasify] (consulte as notas no manual do Sile sobre a definição de caminhos do pacote se você instalou via --local ). Uma vez carregado, o pacote expõe uma função decasify{} que pode levar qualquer combinação de configurações de case , locale e style e aplica a transformação apropriada ao conteúdo. Por padrão, ele rastreará o idioma do conteúdo do documento.