Участник:Isbur/Anki workflow
Anki - кроссплатформенное open source приложение для создания и запоминания флэш-карточек.
[Manual:Pywikibot/Installation| Мануал] по установке PyWikiBot - обёртки над API Mediawiki.
Интересующие скрипты из этого фреймворка:
- listpages.py - с ним мы будем работать
- pagegenerators.py - listpages активно использует pagegenerators, нам понадобится знание опций для этого скрипта (их можно просто передавать вместе с собственными опциями listpages).
Перенос из Mediawiki в промежуточный файл
правитьЗапускать в cmd! иначе будет плохо[1][2]:
--> python pwb.py listpages -format:\"\"{page.title}\"☺\" -get -search > output.txt
What do you want to search for? --> subpageof:"Isbur/Функциональный анализ I/Карточки"
Приведён вариант для работы с fnr.exe.
AnkDown
правитьУстановка
правитьКак устанавливать – https://github.com/benwr/ankdown
Проблема с установкой – нужно предварительно настроить компилятор для C/C++. Кажется, лучше всего устанавливать версию от Microsoft, хоть она и очень тяжеловесная.
https://wiki.python.org/moin/WindowsCompilers
С MinGW что-то не взошло :(
Работа
править(внутри каталога PyWikiBot, в который скопирован fnr.exe)
python pwb.py listpages -format:%~~~{page.title}% -get -search:"subpageof:\"Isbur/Функциональный анализ I/Карточки\"" > output.txt
fnr.exe --cl --dir "." --fileMask "output.txt" --find "%" --replace "\n\n%\n\n"
fnr.exe --cl --dir "." --fileMask "output.txt" --find "~~~" --replace "\n\n---\n\n"
iconv -f CP1251 -t UTF-8 output.txt > output.utf8.txt
pandoc -f mediawiki -t markdown -o output.md output.utf8.txt
fnr.exe --cl --dir "." --fileMask "output.md" --find "\%" --replace "%"
fnr.exe --cl --dir "." --fileMask "output.md" --find "\-" --replace "-"
mkdir "Functional Analysis I"
cp output.md ".\Functional Analysis I"
ankdown -r ".\Functional Anlysis I" -p "Functional Analysis I"
fnr.exe
правитьПеренос из Mediawiki в промежуточный файл (запускать в cmd! иначе будет плохо[3][4]):
--> python pwb.py listpages -format:\"\"{page.title}\"☺\" -get -search > output.txt
What do you want to search for? --> subpageof:"Isbur/Функциональный анализ I/Карточки"
Затем надо удалить начальные символы, а также заменить <math> и <math что-то там> на <$>, </math> на </$>, например, используя fnr.exe:
"C:\Users\Igor\Pywikibot\core_stable\fnr.exe" --cl --dir "C:\Users\Igor\Pywikibot\core_stable" --fileMask "output.txt" --find """""" --replace """\n\n"""
"C:\Users\Igor\Pywikibot\core_stable\fnr.exe" --cl --dir "C:\Users\Igor\Pywikibot\core_stable" --fileMask "output.txt" --find "<math>" --replace "[$]"
"C:\Users\Igor\Pywikibot\core_stable\fnr.exe" --cl --dir "C:\Users\Igor\Pywikibot\core_stable" --fileMask "output.txt" --find "<math display=""inline"">" --replace "[$]"
"C:\Users\Igor\Pywikibot\core_stable\fnr.exe" --cl --dir "C:\Users\Igor\Pywikibot\core_stable" --fileMask "output.txt" --find "</math>" --replace "[/$]"
Не забывать сконвертировать файл в UTF-8 (например, при помощи Notepad++)
После этого импортировать файл в Anki (и выполнить рекомендации по генерации картинок из латеха!).
Синхронизируем...
Наслаждаемся!
Possible issues
правитьПолезно установить аддоны (например, зум), однако могут быть проблемы с подключением - поможет VPN.
В Ankdown та же проблема с кодировками, что и в pywikibot'е; однако же, здесь легко найти место, где происходит открытие файла, и можно явно указать там кодировку.
Также в скрипте нужно включить опцию по замене знаков долларов на подходящие для Anki символы.
Примечания
править- ↑ Пока некорректно работает с UTF-8: то ли надо править сам PyWikiBot, то ли разбираться с переменными окружения
- ↑ Промежуточное решение - никогда не использовать более PowerShell
- ↑ Пока некорректно работает с UTF-8: то ли надо править сам PyWikiBot, то ли разбираться с переменными окружения
- ↑ Промежуточное решение - никогда не использовать более PowerShell