Как я могу сделать прописные файлы индекса прожектора?
Обычно я использую расширение .markdown или .md для документов уценки. К сожалению, spotlight отказывается индексировать их, если у них нет расширения .txt.
Я видел возможное решение, включающее редактирование файлов Info.plist в блоге textmate. Есть ли лучший способ?
Обновление: я только что обнаружил генератор QuickLook для файлов Markdown, который добавляет поддержку внимания и хороший просмотр HTML quicklook. Это работает!
Ответы
Ответ 1
Вам нужно будет написать импортер Spotlight. Там есть шаблон проекта Xcode, который установит для вас основные вещи и начнет работу; Я думаю, что есть и пример разработчика.
Импортеру понадобится раздел UTExportedTypeDeclarations
в Info.plist, который описывает унифицированный идентификатор типа для файлов разметки с расширением пути. Тогда это просто вопрос о том, чтобы ваш импортер прошел Spotlight соответствующие данные для файла уценки.
Ответ 2
Вы можете сделать это без отключения SIP, создав копию системы RichText.mdimporter, изменив ее Info.plist и сохраните ее в /Library/Spotlight.
cp -r /System/Library/Spotlight/RichText.mdimporter .
patch -p2 RichText.mdimporter/Contents/Info.plist < Markdown.patch
mv RichText.mdimporter Markdown.mdimporter
sudo cp -R Markdown.mdimporter /Library/Spotlight
mdimport -r /Library/Spotlight/Markdown.mdimporter
Markdown.patch
diff -ru RichText.mdimporter/Contents/Info.plist Markdown.mdimporter/Contents/Info.plist
--- RichText.mdimporter/Contents/Info.plist 2015-11-23 16:14:12.000000000 +0200
+++ Markdown.mdimporter/Contents/Info.plist 2015-11-23 16:10:03.000000000 +0200
@@ -13,15 +13,7 @@
<string>MDImporter</string>
<key>LSItemContentTypes</key>
<array>
- <string>public.rtf</string>
- <string>public.html</string>
- <string>public.xml</string>
- <string>public.plain-text</string>
- <string>com.apple.traditional-mac-plain-text</string>
- <string>com.apple.rtfd</string>
- <string>com.apple.webarchive</string>
- <string>org.oasis-open.opendocument.text</string>
- <string>org.openxmlformats.wordprocessingml.document</string>
+ <string>net.daringfireball.markdown</string>
</array>
</dict>
</array>
@@ -30,11 +22,11 @@
<key>CFBundleGetInfoString</key>
<string>1.0, Copyright (c) 2004-2010 Apple Inc.</string>
<key>CFBundleIdentifier</key>
- <string>com.apple.MDImporter.RichText</string>
+ <string>com.apple.MDImporter.Markdown</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
- <string>Rich Text Sniffer</string>
+ <string>Markdown Sniffer</string>
<key>CFBundleShortVersionString</key>
<string>6.9</string>
<key>CFBundleSupportedPlatforms</key>
Ответ 3
Следующие работы для Mac OS X 10.11 El Capitan:
Поскольку мы не можем редактировать системные файлы в El Capitan, мы должны временно отключить SIP (System Integrity Protection) (для получения полной информации смотрите эту статью Lifehacker).
- Перезагрузите Mac в режим восстановления, перезагрузив компьютер и удерживая
command + R
, пока на вашем экране не появится логотип Apple.
- Нажмите
Utilities
> Terminal
- В окне терминала введите
csrutil disable
и нажмите Enter
- Перезагрузите Mac.
Теперь мы можем отредактировать файл, расположенный в /System/Library/Spotlight/RichText.mdimporter/Contents/Info.plist
:
-
sudo open -a TextEdit /System/Library/Spotlight/RichText.mdimporter/Contents/Info.plist
- Добавить
<string>net.daringfireball.markdown</string>
под LSItemContentTypes
(для получения дополнительной информации см. исходное сообщение)
Когда вы закончите, вы можете переиндексировать папки, содержащие файлы Markdown, посмотрите на эту статью: Spotlight: как переиндексировать папки или тома.
И не забудьте снова включить SIP, повторив первую часть и запустив csrutil enable
.
Ответ 4
Этот gist объясняет, как изменить RichText.mdimporter для импорта файлов с исходными текстами и пометкой.
Ответ 5
Вы можете написать Импортер, но там более простой способ. Markdown - это просто текст, который обрабатывает Spotlight. Если вы дадите своим файлам разметки расширение ".txt", Spotlight подберет их.
В моем случае я просто назвал мой все, чтобы закончил с ".mdwn.txt", и научил emacs 'markdown-mode для активации файлов, соответствующих этому расширению.