【问题标题】:How can I make spotlight index markdown files?如何制作 Spotlight 索引 Markdown 文件?
【发布时间】:2023-04-01 11:38:01
【问题描述】:

我通常对降价文档使用 .markdown 或 .md 扩展名。不幸的是,除非它们具有 .txt 文件扩展名,否则 Spotlight 拒绝为它们编制索引。

我在 textmate 博客上看到了涉及 editing Info.plist files 的可能解决方案。有没有更好的办法?

更新:我刚刚发现QuickLook generator for Markdown files,它增加了聚光灯支持和漂亮的 HTML 快速预览预览。这是一种享受!

【问题讨论】:

  • 这似乎与“编程无关”,但我很高兴“看门狗”没有击落你!我需要这个信息。 +1。
  • 当前 QL gen 项目可在此处找到:github.com/toland/qlmarkdown。旧的(链接到上面)不喜欢 XCode 7...

标签: macos markdown spotlight


【解决方案1】:

您可以在不禁用 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>

【讨论】:

  • 您真正需要做的就是复制富文本并添加&lt;string&gt;net.daringfireball.markdown&lt;/string&gt;,但无论哪种方式,这个答案都像一个魅力。谢谢!
  • @SimplGy 是的,这在 High Sierra 上对我有用。 cp -r /System/Library/Spotlight/RichText.mdimporter .,然后添加该行,然后添加 sudo cp -R RichText.mdimporter /Library/Spotlightmdimport -r /Library/Spotlight/RichText.mdimporter
【解决方案2】:

您必须编写一个 Spotlight 导入器。有一个 Xcode 项目模板可以为您设置基本内容并帮助您入门;我认为还有一个开发者示例。

您的导入程序需要在其 Info.plist 中包含一个 UTExportedTypeDeclarations 部分,该部分描述了带有路径扩展名的降价文件的统一类型标识符。然后,只需让您的导入器向 Spotlight 传递降价文件的适当数据即可。

【讨论】:

    【解决方案3】:

    以下适用于 Mac OS X 10.11 El Capitan:

    由于我们无法在 El Capitan 中编辑系统文件,我们必须暂时禁用 SIP(​​系统完整性保护)(有关详细信息,请查看此Lifehacker article)。

    • 通过重新启动计算机并按住 command + R 直到 Apple 徽标出现在屏幕上,将 Mac 重新启动到恢复模式
    • 点击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
    • LSItemContentTypes 下添加&lt;string&gt;net.daringfireball.markdown&lt;/string&gt;(更多信息请参见original post

    完成后,您可能想要重新索引包含 Markdown 文件的文件夹,请查看这篇文章:Spotlight: How to re-index folders or volumes。 并且不要忘记通过重复第一部分并运行 csrutil enable 来重新打开 SIP。

    【讨论】:

      【解决方案4】:

      gist 解释了如何修改 RichText.mdimporter 以导入源文件和降价文件。

      【讨论】:

        【解决方案5】:

        可以编写一个 Importer,但有一种更简单的方法。 Markdown 只是 Spotlight 处理的文本。如果你给你的降价文件提供扩展名“.txt”,Spotlight 会选择它们。

        就我而言,我只是将我的全部命名为以“.mdwn.txt”结尾,并教 emacs 的 markdown-mode 为匹配此扩展名的文件激活。

        【讨论】:

        • OP 在他的问题中特别对这种方法不屑一顾。
        猜你喜欢
        • 2020-02-10
        • 2015-07-28
        • 2010-09-28
        • 2016-06-22
        • 2014-01-10
        • 1970-01-01
        • 2016-05-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多