Belgeleri, görselleri, sesleri ve videoları tamamen yerel ortamda dönüştüren modern bir CLI/TUI aracı.
- Genel Bakış
- Özellikler
- Kurulum
- Hızlı Başlangıç
- Shell Completion
- Komut Referansı
- Flag Referansı
- Pipeline Spec (JSON)
- Desteklenen Formatlar
- Harici Bağımlılıklar
- Yapılandırma
- Sorun Giderme
- Geliştirme
- Proje Yapısı
- Katkı
- Lisans
Docufy, dosya dönüştürme işlemlerini internet servislerine yükleme yapmadan yerel makinede gerçekleştiren bir komut satırı uygulamasıdır.
- Gizlilik odaklıdır: dosyalar cihazdan çıkmaz.
- İki kullanım modu sunar: CLI (otomasyon/script) ve interaktif TUI (menü tabanlı).
- Belge, görsel, ses ve video dönüşümleri.
- Sabit görevlerde ses ve video manipülasyonu: videodan ses çıkarma (
extract-audio), belirli anından kare yakalama (snapshot), videoları sıralı birleştirme (merge) ve ses dizeleme (audio normalize). - WebP encode desteği: tüm görsel formatlarından WebP'ye dönüşüm (pure Go, lossless VP8L).
- HEIC/HEIF kaynak desteği: iPhone görsellerini PNG/JPG/WEBP/BMP/GIF/TIFF/ICO formatlarına dönüştürme.
- SVG kaynak desteği: SVG dosyalarını raster görsellere ve PDF çıktısına dönüştürme.
- Görsel optimizasyon:
--optimizeile dosya boyutunu minimize etme,--target-size 500kbile hedef boyuta yaklaşma. - Dosya bilgisi komutu:
infoile format, çözünürlük, codec, süre, bitrate bilgisi (JSON çıktı desteği). mp4 -> gifdahil video dönüşümü.- Uzun FFmpeg işlemlerinde gerçek zamanlı progress bar ve ETA gösterimi (CLI, TUI ve batch).
- Video düzenleme (
video trim):clipmodunda aralık çıkarır,removemodunda aralığı silip kalan parçaları birleştirir. - Video trim preview/plan: CLI’de
--dry-run/--preview; TUI’de çalıştırmadan önce plan onayı ekranı. - Video trim codec stratejisi:
--codec auto(varsayılan) hedef formata göre uyumlu codec seçer. - TUI video trim timeline adımı: başlangıç/bitiş aralığını klavye ile hızlı kaydırma ve remove modunda çoklu segment yönetimi (
a/n/p/d/m). - Görsel/video boyutlandırma: manuel (
px/cm) veya hazır preset (story,square,fullhdvb.). - Oranı koruyarak dikey/yatay uyarlama (
pad,fit,fill,stretch);padmodunda siyah boşluk desteği. - Interaktif ana menüde ayrı akışlar:
Dosya Dönüştür,Toplu Dönüştür,Klasör İzle,Video Düzenle (Klip/Sil),Boyutlandır,Toplu Boyutlandır,Dosya Bilgisi. - Batch dönüşüm (dizin veya glob pattern).
- Paralel işleme (
--workers) ile yüksek performans. - Ön izleme modu (
--dry-run) ile risksiz batch planlama. - Çıktı dizinine yazarken klasör yapısını koruma (
batch --preserve-tree). - Çakışma politikası (
--on-conflict:overwrite,skip,versioned). - Otomatik retry (
--retry,--retry-delay) ve raporlama (--report,--report-file). - Hazır + kullanıcı tanımlı profil sistemi (
--profile: built-in profiller ve~/.docufy/profiles/*.toml). - Metadata kontrolü (
--preserve-metadata,--strip-metadata). - Klasör izleme ile otomatik dönüşüm (
watchkomutu, event-driven + polling fallback). - Makine-okunur CLI çıktısı (
--output-format json). - Proje bazlı ayarlar:
.docufy.toml(flag > env > project config > default). - Harici bağımlılık kontrolü (FFmpeg, LibreOffice, Pandoc).
- Format alias desteği (
jpeg -> jpg,tiff -> tif,markdown -> md).
go install github.com/mlihgenel/docufy/v2/cmd/docufy@latestKurulum sonrası herhangi bir dizinden çalıştırabilmek için binary yolunun PATH içinde olması gerekir.
go env GOBIN doluysa o dizini, boşsa $(go env GOPATH)/bin dizinini PATH içine ekleyin.
echo 'export PATH="$PATH:$(go env GOPATH)/bin"' >> ~/.zshrc
source ~/.zshrcbash kullanıyorsanız ~/.bashrc veya ~/.bash_profile dosyasına ekleyin.
$gopath = go env GOPATH
setx PATH "$env:PATH;$gopath\bin"Ardından yeni bir terminal açın.
git clone https://github.com/mlihgenel/docufy.git
cd docufy
go build -o docufy ./cmd/docufy
./docufy --helpNot: Sürüm bilgisi artık build metadata'dan otomatik okunur; cmd/docufy/main.go içinde elle sürüm güncellemek gerekmez.
Release için isterseniz sürümü build anında net verebilirsiniz:
go build -ldflags "-X main.version=$(git describe --tags --always --dirty | sed 's/^v//')" -o docufy ./cmd/docufyWindows için:
go build -o docufy.exe ./cmd/docufy
.\docufy.exe --helpdocufy --help
docufy help convert
docufy help batch
docufy help watch
docufy help pipeline
docufy help video
docufy help formats
docufy help resize-presets
docufy help completion
docufy help profilesdocufyInteraktif ana menü (bölüm bazlı):
Dönüştürme: tek dosya, toplu ve watch akışlarıVideo Araçları: klip çıkarma ve aralık silme + birleştirme (başlangıç + süreya dabaşlangıç + bitiş)Boyutlandırma: tek dosya ve toplu boyutlandırmaBilgi ve Ayarlar: desteklenen formatlar, sistem kontrolü, ayarlar
TUI açmadan doğrudan CLI ile çalışmak için:
docufy --help
docufy help <komut># Zsh
docufy completion zsh > "${fpath[1]}/_docufy"
# Bash
docufy completion bash > /etc/bash_completion.d/docufyDetaylar ve diğer shell'ler için:
docufy completion --helpdocufy formats
docufy formats --from mp4
docufy formats --to gif
docufy formats --output-format json# Belge
docufy convert belge.md --to pdf
# Görsel
docufy convert fotograf.jpeg --to png
# HEIC/HEIF görseli PNG'ye dönüştür
docufy convert IMG_1234.HEIC --to png
# SVG dosyasını PDF'e dönüştür
docufy convert logo.svg --to pdf
# Görseli WebP'ye dönüştür
docufy convert fotograf.png --to webp
# Görsel optimizasyonu (dosya boyutunu küçült)
docufy convert fotograf.jpg --to jpg --optimize
docufy convert fotograf.jpg --to jpg --target-size 500kb
# Ses
docufy convert ses.mp3 --to wav
# Video -> GIF
docufy convert klip.mp4 --to gif --quality 80
# Yatay videoyu dikeye çevir (siyah boşluklarla oran koru)
docufy convert klip.mp4 --to mp4 --preset story --resize-mode pad
# Görseli manuel ölçüyle boyutlandır (cm)
docufy convert fotograf.webp --to png --width 12 --height 18 --unit cm --dpi 300
# Profil kullanımı (story çıktı için)
docufy convert klip.mp4 --to mp4 --profile social-story
# Kullanıcı profili oluştur ve kullan
docufy profiles create story-fast --quality 83 --preset story --resize-mode fit --metadata-mode strip
docufy convert klip.mp4 --to mp4 --profile story-fast
# Metadata temizleme
docufy convert kamera.mov --to mp4 --strip-metadata
# Dosya bilgisi görme
docufy info fotograf.jpg
docufy info video.mp4 --output-format json# Dizindeki tüm .md dosyalarını PDF yap
docufy batch ./docs --from md --to pdf
# Alt dizinlerle birlikte
docufy batch ./videolar --from mp4 --to gif --recursive
# Ön izleme (dönüştürmeden planı gösterir)
docufy batch ./resimler --from jpg --to png --dry-run
# Glob kullanımı
docufy batch "*.png" --from png --to jpg --quality 85
# Toplu olarak story ölçüsüne getir
docufy batch ./videolar --from mp4 --to mp4 --preset story --resize-mode pad
# Recursive batch'te çıktı klasörü altında kaynak dizin yapısını koru
docufy batch ./assets --from png --to jpg --recursive --output ./export --preserve-tree
# Çakışma ve retry ile JSON rapor üret
docufy batch ./resimler --from jpg --to png --on-conflict versioned --retry 2 --retry-delay 1s --report json --report-file ./reports/batch.json
# Önceki JSON raporundan başarılı işleri atlayarak devam et
docufy batch ./resimler --from jpg --to png --resume-from-report ./reports/batch.json
# Profil + metadata modu ile batch
docufy batch ./videolar --from mp4 --to mp4 --profile social-story --strip-metadata# incoming klasörünü izle, yeni webp dosyalarını jpg yap
docufy watch ./incoming --from webp --to jpg
# Alt dizinlerle birlikte izle
docufy watch ./videolar --from mp4 --to gif --recursive --quality 80
# Profil ile izle
docufy watch ./incoming --from mov --to mp4 --profile archive-lossless# Pipeline spec dosyasını çalıştır
docufy pipeline run ./pipeline.json
# Profil ve metadata ile çalıştır, JSON rapor al
docufy pipeline run ./pipeline.json --profile social-story --strip-metadata --report json --report-file ./reports/pipeline.json
# Önceki JSON rapora göre başarılı step'leri atlayıp kaldığı yerden devam et
docufy pipeline run ./pipeline.json --resume-from-report ./reports/pipeline.jsonÖrnek spec dosyası: examples/pipeline.example.json
| Alan | Zorunlu | Açıklama |
|---|---|---|
input |
Evet | Pipeline'ın başlangıç dosyası |
output |
Hayır | Son adımın nihai çıktı yolu |
steps[] |
Evet | Sıralı işlem adımları |
steps[].type |
Evet | convert veya audio-normalize |
steps[].to |
convert için evet |
Hedef format (mp3, wav, pdf vb.) |
steps[].quality |
Hayır | Adım bazlı kalite (1-100) |
steps[].output |
Hayır | O adım için özel çıktı yolu |
steps[].metadata_mode |
Hayır | auto, preserve, strip |
steps[].target_lufs |
audio-normalize için hayır |
Hedef LUFS |
steps[].target_tp |
audio-normalize için hayır |
Hedef true peak |
steps[].target_lra |
audio-normalize için hayır |
Hedef loudness range |
# Videodan ses kanalını MP3 olarak çıkar
docufy video extract-audio klip.mp4
# Videodan ses kanalını re-encode etmeden (copy) orijinal formatıyla çıkar
docufy video extract-audio orijinal.mov --copy
# Videonun 30. saniyesinden tek kare (snapshot) al
docufy video snapshot klip.mp4 --at 30 --to jpg
# Videonun tam ortasından (%50) yüksek kalite snapshot al
docufy video snapshot klip.mp4 --at %50 --to png
# Aynı codec'e sahip parçaları hızlıca birleştir (concat demuxer)
docufy video merge part1.mp4 part2.mp4 --name full_video
# Farklı codec'lere sahip videoları re-encode ederek birleştir
docufy video merge iphone.mov web.webm --to mp4 --reencode --quality 80
# Ses dosyasının ses seviyesini EBU R128 (LUFS) standardına göre normalize et
docufy audio normalize podcast.mp3 --target-lufs -16
# 5. saniyeden başlayıp 10 saniyelik klip çıkar
docufy video trim input.mp4 --start 00:00:05 --duration 10
# 23-25 saniye aralığını videodan sil ve kalan parçaları birleştir
docufy video trim input.mp4 --mode remove --start 00:00:23 --duration 2
# Birden fazla aralığı tek seferde sil (sadece remove modunda)
docufy video trim input.mp4 --mode remove --ranges "00:00:05-00:00:08,00:00:20-00:00:25"
# Preview/plan: işlemden önce tam etkiyi gör (dosya yazmaz)
docufy video trim input.mp4 --mode remove --ranges "5-8,20-25" --dry-run| Komut | Ne yapar | Örnek |
|---|---|---|
docufy |
İnteraktif TUI modunu başlatır | docufy |
docufy convert <dosya> |
Tek dosya dönüşümü | docufy convert input.mp4 --to gif |
docufy batch <dizin/glob> |
Toplu dönüşüm | docufy batch ./src --from md --to html |
docufy watch <dizin> |
Klasörü izleyip otomatik dönüşüm yapar | docufy watch ./incoming --from webp --to jpg |
docufy pipeline run <dosya> |
JSON pipeline akışını çalıştırır | docufy pipeline run ./pipeline.json |
docufy video trim <dosya> |
clip: aralık çıkarır, remove: aralığı siler + birleştirir |
docufy video trim input.mp4 --mode remove --start 00:00:23 --duration 2 |
docufy video extract-audio <dosya> |
Videodan ses kanalını çıkarır | docufy video extract-audio input.mp4 --to wav |
docufy video snapshot <dosya> |
Videodan tek kare seçer | docufy video snapshot input.mp4 --at %50 |
docufy video merge <dosyalar...> |
Birden fazla videoyu birleştirir | docufy video merge part1.mp4 part2.mp4 |
docufy audio normalize <dosya> |
Ses seviyesini EBU R128'e göre dengeler | docufy audio normalize ses.mp3 --target-lufs -14 |
docufy resize-presets |
Hazır boyut presetlerini listeler | docufy resize-presets |
docufy info <dosya> |
Dosya bilgisi gösterir (format, boyut, çözünürlük, codec) | docufy info foto.jpg |
docufy formats |
Desteklenen dönüşümleri listeler | docufy formats --from pdf |
docufy completion <shell> |
Shell completion üretir | docufy completion zsh |
docufy profiles list |
Built-in ve kullanıcı profillerini listeler | docufy profiles list |
docufy profiles create [ad] |
Yeni kullanıcı profili oluşturur | docufy profiles create story-fast --quality 83 |
docufy help [komut] |
Komut yardımı gösterir | docufy help batch |
| Flag | Kısa | Açıklama |
|---|---|---|
--output |
-o |
Çıktı dizini (varsayılan: kaynak dosya dizini) |
--verbose |
-v |
Detaylı çıktı |
--workers |
-w |
Batch modunda paralel worker sayısı |
--output-format |
- | CLI çıktı formatı: text veya json |
--version |
- | Sürüm bilgisini gösterir |
| Flag | Kısa | Açıklama |
|---|---|---|
--to |
-t |
Hedef format (zorunlu) |
--profile |
- | Profil adı: built-in veya ~/.docufy/profiles/ altındaki kullanıcı profili |
--quality |
-q |
Kalite seviyesi (1-100) |
--name |
-n |
Çıktı dosya adı (uzantısız) |
--on-conflict |
- | Çakışma politikası: overwrite, skip, versioned |
--preserve-metadata |
- | Metadata bilgisini korumayı dener |
--strip-metadata |
- | Metadata bilgisini temizler |
--preset |
- | Hazır boyut (ör: story, square, fullhd, 1080x1920) |
--width |
- | Manuel genişlik değeri |
--height |
- | Manuel yükseklik değeri |
--unit |
- | Manuel birim (px veya cm) |
--dpi |
- | cm kullanıldığında DPI değeri |
--resize-mode |
- | Boyutlandırma modu: pad, fit, fill, stretch |
--optimize |
- | Dosya boyutunu minimize et (görsel dönüşümlerinde) |
--target-size |
- | Hedef dosya boyutu (ör: 500kb, 2mb) |
| Flag | Kısa | Açıklama |
|---|---|---|
--from |
-f |
Kaynak format (zorunlu) |
--to |
-t |
Hedef format (zorunlu) |
--profile |
- | Profil adı: built-in veya ~/.docufy/profiles/ altındaki kullanıcı profili |
--recursive |
-r |
Alt dizinleri de tara |
--preserve-tree |
- | Dizin modunda --output altına kaynak klasör yapısını korur |
--dry-run |
- | Dönüştürmeden önce planı göster |
--quality |
-q |
Kalite seviyesi (1-100) |
--on-conflict |
- | Çakışma politikası: overwrite, skip, versioned |
--preserve-metadata |
- | Metadata bilgisini korumayı dener |
--strip-metadata |
- | Metadata bilgisini temizler |
--retry |
- | Başarısız işler için otomatik tekrar sayısı |
--retry-delay |
- | Retry denemeleri arası bekleme (500ms, 2s vb.) |
--report |
- | Rapor formatı: off, txt, json |
--report-file |
- | Raporu belirtilen dosyaya yazar |
--resume-from-report |
- | Önceki JSON rapordaki success girdileri atlayarak devam eder |
--preset |
- | Hazır boyut (ör: story, square, fullhd, 1080x1920) |
--width |
- | Manuel genişlik değeri |
--height |
- | Manuel yükseklik değeri |
--unit |
- | Manuel birim (px veya cm) |
--dpi |
- | cm kullanıldığında DPI değeri |
--resize-mode |
- | Boyutlandırma modu: pad, fit, fill, stretch |
| Flag | Kısa | Açıklama |
|---|---|---|
--from |
-f |
Kaynak format (zorunlu) |
--to |
-t |
Hedef format (zorunlu) |
--profile |
- | Profil adı: built-in veya ~/.docufy/profiles/ altındaki kullanıcı profili |
--recursive |
-r |
Alt dizinleri de izle |
--quality |
-q |
Kalite seviyesi (1-100) |
--on-conflict |
- | Çakışma politikası: overwrite, skip, versioned |
--preserve-metadata |
- | Metadata bilgisini korumayı dener |
--strip-metadata |
- | Metadata bilgisini temizler |
--retry |
- | Başarısız işler için otomatik tekrar sayısı |
--retry-delay |
- | Retry denemeleri arası bekleme (500ms, 2s vb.) |
--interval |
- | Periyodik tarama aralığı (event modunda fallback/sağlık kontrolü) |
--settle |
- | Dosyanın stabil sayılması için bekleme süresi |
| Flag | Kısa | Açıklama |
|---|---|---|
--profile |
- | Profil adı: built-in veya ~/.docufy/profiles/ altındaki kullanıcı profili |
--quality |
-q |
Varsayılan kalite seviyesi (1-100) |
--on-conflict |
- | Çakışma politikası: overwrite, skip, versioned |
--preserve-metadata |
- | Metadata bilgisini korumayı dener |
--strip-metadata |
- | Metadata bilgisini temizler |
--report |
- | Rapor formatı: off, txt, json |
--report-file |
- | Raporu belirtilen dosyaya yazar |
--resume-from-report |
- | Önceki JSON pipeline raporuna göre başarılı step'leri atlayıp devam eder |
--keep-temps |
- | Ara geçici dosyaları silmez |
| Flag | Kısa | Açıklama |
|---|---|---|
--mode |
- | İşlem modu: clip veya remove |
--start |
- | İşlem başlangıç zamanı (örn: 00:00:05) |
--end |
- | Bitiş zamanı (--duration ile birlikte kullanılamaz) |
--duration |
- | İşlem süresi (örn: 10, 00:00:10) |
--ranges |
- | Sadece remove modunda çoklu aralık listesi (örn: 00:00:05-00:00:08,00:00:20-00:00:25) |
--dry-run |
- | İşlem yapmadan plan/etki ön izlemesi gösterir |
--preview |
- | --dry-run ile aynı davranış |
--codec |
- | auto (önerilen), copy, reencode |
--to |
- | Hedef format (mp4, mov vb.) |
--output-file |
- | Tam çıktı dosya yolu |
--name |
-n |
Çıktı dosya adı (uzantısız) |
--profile |
- | Profil adı: built-in veya ~/.docufy/profiles/ altındaki kullanıcı profili |
--quality |
-q |
Reencode modunda kalite seviyesi |
--on-conflict |
- | Çakışma politikası: overwrite, skip, versioned |
--preserve-metadata |
- | Metadata bilgisini korumayı dener |
--strip-metadata |
- | Metadata bilgisini temizler |
| Flag | Açıklama |
|---|---|
--from |
Belirli bir kaynaktan gidilebilen hedefleri listeler |
--to |
Belirli bir hedefe gelebilen kaynakları listeler |
pad: Oranı korur, hedef boyutu doldurmak için siyah boşluk ekler (yatay -> dikey için önerilen).fit: Oranı korur, hedef kutuya sığdırır; çıktı bir kenarda daha küçük kalabilir.fill: Oranı korur, hedef kutuyu doldurur; taşan kısmı ortadan kırpar.stretch: Oranı korumaz, hedef ölçüye zorla esnetir.
Profil, dönüştürme komutlarında tekrar eden ayarları tek isimle uygulayan bir "ayar preset" mekanizmasıdır.
Format secimi yapmaz; sadece quality, retry, metadata, resize, on-conflict gibi bayraklara varsayılan deger verir.
Built-in profiller kapsam alanina gore gelir:
Gorsel+Video:social-story,social-feedVideo:social-reel-fast,video-web-balanced,video-compress-fastGorsel:image-web-balanced,image-print-a4,image-archiveSes:podcast-clean,voice-note-fastBelge:doc-share,doc-compactGenel:archive-lossless
Not:
- Profil kapsam disi bir kaynakta kullanilirsa CLI net hata verir.
- Komutta verdiginiz bir flag, profildeki ayni degerin ustune yazar.
Kullanıcı profilleri:
- Dizin:
~/.docufy/profiles/ - Format: TOML
- Komutlar:
docufy profiles listvedocufy profiles create - Aynı isimli kullanıcı profili, built-in profilin alanlarını override eder.
scopealani:all,document,image,video,audioveya birden fazla (image,video).
Örnek kullanıcı profili:
description = "Story ciktilari icin hizli varsayilanlar"
scope = "image,video"
quality = 83
on_conflict = "versioned"
resize_preset = "story"
resize_mode = "fit"
metadata_mode = "strip"
retry = 1
retry_delay = "500ms"Örnek dosya yolu:
~/.docufy/profiles/story-fast.toml
Kullanım:
docufy profiles list
docufy profiles create story-fast --scope image,video --quality 83 --preset story --resize-mode fit --metadata-mode strip
docufy convert klip.mp4 --to mp4 --profile story-fast
docufy batch ./videolar --from mov --to mp4 --profile story-fast
docufy watch ./incoming --from mov --to mp4 --profile story-fastEn güncel ve tam matris için:
docufy formats- Kaynak/hedef:
md,html,pdf,docx,txt,odt,rtf,csv - Ek:
csv -> xlsx
- Kaynak:
png,jpg/jpeg,webp,bmp,gif,tif/tiff,ico,svg,heic,heif - Hedef:
png,jpg/jpeg,webp,bmp,gif,tif/tiff,ico - Ek:
svg -> pdf
mp3,wav,ogg,flac,aac,m4a,wma,opus,webm
- Kaynak:
mp4,mov,mkv,avi,webm,m4v,wmv,flv - Hedef: yukarıdakiler +
gif
| Araç | Ne zaman gerekir | Not |
|---|---|---|
| FFmpeg | Ses ve video dönüşümleri | mp4 -> gif dahil |
| LibreOffice | Bazı belge dönüşümleri (odt/rtf/xlsx) |
Bazı dönüşümler için fallback kullanılır |
| Pandoc | Bazı Markdown belge akışları | Opsiyonel, fallback mevcut |
Uygulama interaktif modda eksik araçları kontrol eder ve kurulum için yönlendirir.
| Dönüşüm yolu | Öncelik sırası | Zorunlu araç |
|---|---|---|
md -> pdf |
Pandoc -> LibreOffice -> Dahili Go renderer |
Zorunlu değil (harici araçsız da çalışır) |
html -> pdf |
LibreOffice -> Dahili Go renderer |
Zorunlu değil (harici araçsız da çalışır) |
docx -> pdf |
LibreOffice -> Metin tabanlı fallback |
Zorunlu değil (kalite için önerilir) |
| Ses/Video dönüşümleri | FFmpeg |
Evet (FFmpeg zorunlu) |
csv -> xlsx |
LibreOffice |
Evet (LibreOffice zorunlu) |
Bazı odt/rtf hedefli ofis dönüşümleri |
LibreOffice |
Çoğu akışta zorunlu |
Notlar:
Windows,macOSveLinuxüzerinde temel kurulum çalışır.- Harici araçlar kurulmazsa sadece ilgili dönüşüm akışları etkilenir; tüm uygulama devre dışı kalmaz.
- En yüksek belge çıktı kalitesi için
md -> pdftarafındaPandoc(ve uygun PDF engine), ofis belgelerinde iseLibreOfficeönerilir.
- Konfigürasyon dosyası:
~/.docufy/config.json - Bu dosyada ilk çalıştırma bilgisi ve varsayılan çıktı dizini tutulur.
- İnteraktif moddan varsayılan çıktı dizinini değiştirebilirsiniz.
- Kullanıcı tanımlı profiller
~/.docufy/profiles/*.tomlaltında tutulur.
CLI, çalışma dizininden başlayıp üst dizinlere çıkarak .docufy.toml arar.
Hazır örnek için: .docufy.toml.example dosyasını kopyalayabilirsiniz.
Örnek:
default_output = "./output"
workers = 8
quality = 85
profile = "social-story"
on_conflict = "versioned"
metadata_mode = "strip"
retry = 2
retry_delay = "1s"
report_format = "json"Öncelik sırası:
- CLI flag
- Environment variable
.docufy.toml- Uygulama varsayılanı
Desteklenen environment variable'lar:
DOCUFY_OUTPUTDOCUFY_WORKERSDOCUFY_QUALITYDOCUFY_PROFILEDOCUFY_ON_CONFLICTDOCUFY_METADATADOCUFY_RETRYDOCUFY_RETRY_DELAYDOCUFY_REPORT
PATHiçine$(go env GOPATH)/binekleyin.- Terminali yeniden açın.
cd /proje/dizini
go install ./cmd/docufy
which docufy
docufy --helpÖnce formatları doğrulayın:
docufy formats --from <kaynak>
docufy formats --to <hedef>macOS:
brew install ffmpegLinux (Debian/Ubuntu):
sudo apt install ffmpeggit clone https://github.com/mlihgenel/docufy.git
cd docufy
go test ./...
go run . --helpdocufy/
├── cmd/docufy/ # Uygulama giriş noktası (main package)
├── docs/assets/ # README ve proje dokümantasyon görselleri
├── examples/ # Örnek pipeline ve kullanım dosyaları
├── internal/cli/ # Cobra komutları ve TUI akışları
├── internal/converter/ # Dönüştürme motorları (document, image, audio, video)
├── internal/batch/ # Worker pool ve batch yürütme
├── internal/pipeline/ # Çok adımlı pipeline yürütme
├── internal/watch/ # Klasör izleme altyapısı
├── internal/profile/ # Built-in ve kullanıcı profilleri
├── internal/config/ # Uygulama ayarları
├── internal/installer/ # Bağımlılık kontrol/kurulum yardımcıları
└── internal/ui/ # Ortak terminal UI yardımcıları
Katkılar memnuniyetle karşılanır.
- Repo'yu fork edin.
- Yeni branch açın.
- Değişiklikleri yapın.
- Testleri çalıştırın.
- Pull request gönderin.
Issue ve öneriler için: GitHub Issues
Bu proje MIT Lisansı ile lisanslanmıştır.
