터키 지원을 포함한 로케일 특정 스타일 가이드에 따라 CLI 유틸리티, Rust Crate, Lua Rock, Python Module, JavaScript 모듈, Neovim 플러그인 및 Sile 패키지를 제목 사례 (및 기타 케이스)로 캐스팅합니다.
이 프로젝트는 Markdown 소스에 모든 캡 타이틀을 남겨두고있는 저자와 편집자와 좌절감으로 태어났습니다. 제목에 적용되는 문자열에 적절히 지원되는 툴링을 찾을 수 없었습니다 (조판 목적으로 더 다재다능 함). 내 작업의 대부분이 터키에 인접 해 있고 툴링을 사용할 수 있었고 사례 전환과 관련하여 특별한 문제가 있기 때문에 문제는 두 번 어려웠습니다. 많은 도구는 케이싱 단일 단어를 처리 할 수 있으며 일부 프로그래머 특정 도구는 재 케이싱 토큰 및 식별자를 처리하지만 일부는 영어 문자열을 처리 할 수 있습니다. 그러나 터키 산문의 경우를 바꾸는 것은 아무것도없는 것 같았습니다.
CLI는 Titlecase 및 English에 대한 기본값이지만 하위, 상단 및 문장 사례 옵션도 제공됩니다. Rust, Lua, Python 및 JavaScript 라이브러리 API에는 각 작업과 관련된 기능이 있습니다. 가능한 경우 API는 현재 영어 규칙과 (영어의 경우) Gruber 스타일 가이드로 기본적이지만 다른 사람들은 사용할 수 있습니다.
터키 스타일은 터키어 언어 연구소의 지침을 따릅니다.
영어의 경우 AP (Associal Press), 시카고 스타일 (CMO) 및 John Gruber의 Daring Fireball (Gruber)의 세 가지 스타일 가이드가 알려져 있습니다. Gruber 스타일은 Titlecase Crate에 의해 구현되었습니다. 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 통해 설치하거나 brew install decasify 통해 Homebrew를 설치하십시오.
그렇지 않으면 많은 플랫폼의 경우 닉스 플레이크를 사용하여 직접 실행하거나 쉘에 설치할 수 있습니다.
$ nix run github:alerque/decasify 소스에서 전체 설치를하려면 최신 릴리스에 부착 된 Tarball을 잡거나 GIT를 사용하여 저장소를 복제하십시오. 릴리스에서 링크 된 "소스 코드"zip/tar.gz 파일을 사용하지 말고 tar.zst 소스 파일로 이동하십시오. git 닫기를 사용하는 경우 첫 번째 실행 체크 아웃 후 ./bootstrap.sh 실행하십시오. 소스 릴리스 타르 볼에는 필요하지 않습니다. 다음으로 구성 및 설치 :
$ ./configure
$ make
$ sudo make install 소스에서 설치하면 맨 페이지와 쉘 완료가 포함 된 이점이 있습니다. 모든 일반적인 Autotools 옵션이 적용됩니다. 자세한 내용은 --help 참조하십시오. 특히 배포판 포장기에 가장 일반적으로 사용되는 옵션은 --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}" } ;
} 프로젝트의 루아록에 의존하거나 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 ) npm add decasify 사용하여 프로젝트의 WASM 기반 JavaScript 모듈에 의존합니다.
그런 다음 제공된 기능 및 클래스를 가져 와서 사용하십시오.
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" } 추가합니다.
종속성을 자동으로 감지하지 못하는 다른 플러그인 관리자를 사용하면 종속성을 수동으로 지정하거나 탈퇴 용 LUA Rock을 사용할 수 있는지 확인한 다음이 저장소를 플러그인으로 사용하지만 플러그인 관리자가 처리해야합니다.
-- for packer.nvim
use {
" alerque/decasify " ,
rocks = { " decasify " },
} 플러그인 관리자를 사용하여 Decasify 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 Atesetter는 Luarocks를 활용하여 타사 패키지를 관리합니다. Decasify.sile Rock은 luarocks install decasify.sile 과 함께 설치할 수 있습니다. 일반적으로 luarocks --lua $(sile -q <<< SILE.lua_version) install decasify.sile . 또한 --local 사용하여 시스템 루트 대신 사용자 계정에 설치하거나 --tree lua_modules 사용하여 단일 프로젝트 내부에 로컬로 설치합니다. Sile Document에로드하면 일반적인 use[module=package.decasify] 사용합니다 ( --local 통해 설치된 경우 패키지 경로 설정에 대한 Sile 매뉴얼의 참고 사항 참조). 로드되면 패키지는 case , locale 및 style 설정을 조합 할 수있는 decasify{} 함수를 노출시키고 컨텐츠에 적절한 변환을 적용합니다. 기본적으로 문서 내용의 언어를 추적합니다.