我通常对降价文档使用 .markdown 或 .md 扩展名。不幸的是,除非它们具有 .txt 文件扩展名,否则 Spotlight 拒绝为它们编制索引。
我已经看到了一个可能的解决方案,涉及在 textmate 博客上编辑 Info.plist 文件。有没有更好的办法?
更新:我刚刚发现了 Markdown 文件的 QuickLook 生成器,它增加了聚光灯支持和漂亮的 HTML 快速预览预览。这是一种享受!
我通常对降价文档使用 .markdown 或 .md 扩展名。不幸的是,除非它们具有 .txt 文件扩展名,否则 Spotlight 拒绝为它们编制索引。
我已经看到了一个可能的解决方案,涉及在 textmate 博客上编辑 Info.plist 文件。有没有更好的办法?
更新:我刚刚发现了 Markdown 文件的 QuickLook 生成器,它增加了聚光灯支持和漂亮的 HTML 快速预览预览。这是一种享受!
您可以通过创建系统 RichText.mdimporter 的副本、修改其 Info.plist 并将其保存在 /Library/Spotlight 中来执行此操作而无需禁用 SIP。
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
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>
您必须编写一个 Spotlight 导入器。有一个 Xcode 项目模板可以为您设置基本内容并帮助您入门;我认为还有一个开发人员示例。
您的导入器将需要UTExportedTypeDeclarations
在其 Info.plist 中描述带有路径扩展名的降价文件的统一类型标识符的部分。然后,只需让您的导入器向 Spotlight 传递降价文件的适当数据即可。
以下适用于 Mac OS X 10.11 El Capitan:
由于我们无法在 El Capitan 中编辑系统文件,我们必须暂时禁用 SIP(系统完整性保护)(有关详细信息,请查看Lifehacker 文章)。
command + R
直到屏幕上出现 Apple 标志,将 Mac 重新启动到恢复模式Utilities
>Terminal
csrutil disable
并按 Enter现在我们可以编辑位于的文件/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 文件的文件夹,请查看这篇文章:聚焦:如何重新索引文件夹或卷。并且不要忘记通过重复第一部分并运行来重新打开 SIP csrutil enable
。
这个要点解释了如何修改 RichText.mdimporter 以导入源文件和降价文件。
您可以编写一个 Importer,但有一种更简单的方法。Markdown 只是 Spotlight 处理的文本。如果您为降价文件提供扩展名“.txt”,Spotlight 会选择它们。
就我而言,我只是将我的全部命名为以“.mdwn.txt”结尾,并教 emacs 的 markdown-mode 为匹配此扩展名的文件激活。