#NoEnv FileEncoding UTF-8 ; http://forum.ru-board.com/topic.cgi?forum=5&topic=32648&start=2740#20 ;------- Настройки --------- enc:="UTF-8" ; выходная кодировка файлов. "UTF-8" - юникод, пусто - ansi (допускается любая кодировка вида "CP****") add_tag:="+" ; вставляется между тэгами в имени файла max:=2 ; максимальное число последовательных пустых строк в заметках del_appname:=1 ; удаление имени приложения из заголовка окна del_html:=1 ; Удаление всех тэгов и специальных символов html mdn:=0 ; заметки в формате markdown header:="###" ; выделение заголовка заметки quotes:=1 ; добавлять в начало каждой строки текста заметки знак цитирования ("> ") toc:=0 ; добавлять в начало каждого файла содержание ("[toc]") ext:="md" ; расширение файлов sep:="" ; дополнительный разделитель заметок ;------------------------------------ file=%1% If !file ExitApp Loop % file, 1 file:=A_LoopFileLongPath SplitPath file, , dir, , f_name If FileExist(dir "\" f_name) { MsgBox, 16, , Папка экспорта существует и новые файлы будут дописаны к уже имеющимся.`nУдалите или переместите папку и запустите скрипт снова! ExitApp } FileCreateDir % dir "\" f_name SetWorkingDir % dir "\" f_name FileRead xml, % file FileEncoding % enc pos:=1 Loop { pos:=RegExMatch(xml,"<note uid\K.+?(?=<)",h,pos) If !h break RegExMatch(xml,"<!\[CDATA\[\K[\s\S]*?(?=\]\]>)",note,pos) RegExMatch(h,"section=""\K\d+(?="")",section) RegExMatch(h,"tags=""\K.*?(?="")",tag) RegExMatch(h,"title=""\K.+?(?="")",title) RegExMatch(h,"created=""\K.+?(?="")",created) RegExMatch(h,"link=""\K.*?(?="")",link) note:=RegExReplace(note,"\R","`r`n") note:=RegExReplace(note,"^\R*") note:=RegExReplace(note,"\s*$") note:=MaxEmptyString(note,max) If mdn && header title:=header " " title If mdn && link link:="_" link "_" If mdn && quotes note:=RegExReplace(note,"m)^(?!>|##)","> ") If del_appname title:=RegExReplace(title," - [^.]+?$") FileCreateDir % section+1 created:=RegExReplace(created,"T") FormatTime created,% created, dd.MM.yyyy HH:mm text:=title "`r`n" created " " link "`r`n`r`n" note "`r`n" (sep ? sep : "") "`r`n`r`n" If del_html { text:=RegExReplace(text,"<[^>]+>") text:=RegExReplace(text,"&[a-zA-Z0-9]{2,9}`;") } tag:=RegExReplace(tag," ",add_tag) tag:=RegExReplace(tag,"_"," ") If !tag tag:="_Untagged" f_path:=section+1 "\" ValidName(tag) "." ((mdn && ext) ? ext : "txt") If !FileExist(f_path) && mdn && toc text:="[toc]`r`n`r`n`r`n" text FileAppend % text, % f_path } MsgBox, 64, , Готово!, 1 ExitApp MaxEmptyString(text,max) { text:=RegExReplace(text,"m)[ \t]+$") Loop % max+1 n.="`r`n" return RegExReplace(text,"\R{" max+2 ",}",n) } ValidName(n,r="") { n:=RegExReplace(n,"(:|;|,|\.|\*|\?|\\|/|<|>|"")"," ") n:=RegExReplace(n,"\R+","_") n:=RegExReplace(n,"\s+"," ") StringReplace n, n, |, -, All If r StringReplace n, n, % " ", % r, All return Trim(n) } |