上一篇文章中介绍了 Mail 程序模板制作的相关信息,但未能及时提供将制作好的模板添加至用 Mail 程序新建邮件时显示的模板列表中的相关信息。那么今天这篇文章的目的即是补充此信息。

上一篇文章中曾提到 Apple 所提供的模板均被放在 /Library/Application Support/Apple/Mail/Stationery/Apple/Contents/Resources 。你可以通过在 Finder 中用常用方法浏览至上述文件夹,此外你还可通过使用如下两种更为便捷的方法:

  • 使用位于 前往 (Go) 菜单 下的 前往文件夹… (Go to Folder…) 命令,在随即出现的表单中输入上述路径。
  • 在浏览器的路径栏中输入 file:///Library/Application Support/Apple/Mail/Stationery/Apple/Contents/Resources ,回车,这样 Finder 也会自动打开一个窗口并显示相应文件夹。

到达上述文件夹后,你将看到 5 个文件夹和一个 TableOfContents.plist。后者的作用在于定义模板列表中显示的 分类 (Categories),你应该是可以自行手动加入额外的分类,但是目前不建议这样做,因为本人这样做过之后,模板列表中分类 就只以中文显示了。

而那 5 个文件夹则对应于 5 个分类。接着前往 **你所选的分类**/Contents/Resources,这里同样有一个 TableOfContents.plist,所不同的是这个文件在此的作用是定义模板列表中你所选的分类下显示的模板。

要把你制作的模板加入列,你所需做的是按照这两个文件中的范例所用的格式相应地添加即可。其他所需操作已在上一篇文章中介绍,在此不再赘述。

Posted in Apple, Design, Leopard, Tutorial at January 22nd, 2008. No Comments.

原文见:How to Create/Edit Your Own Mail.app Stationery - The Apple Blog

Leopard 中 Mail 的诸多新功能之一是它附带了许多邮件模板,你可以轻松地从中依需取用, 装点你的电子邮件。
从大体上说,这些模板只不过是老式 HTML,外加些许 XML。 所以,编辑或制作你自己的模板的仅有要求是你懂得一点 HTML 的相关知识。如果你是完全制作自己的模板,一定的设计功底将对你很有帮助。

我个人并非 HTML 格式电子邮件的狂热爱好者,但是在某些场合使用将令人满意。于是,我决定深入钻研,摸清楚这项功能在 Mail.app 中具体是怎样运作的。令人意外的是要编辑或制作你自己的模板其实非常简单。
接下来是一篇较为深入的指导你编辑附带模板或制作自己的模板的教程。

概览

每个模板设计最终只不过是一个结构有序的包装有 HTML 和图像文件的文件夹而已。只要你知道如何在 Finder 中穿行,以及使用关联菜单即可。

通过以下步骤,你将能够编辑附带的 Apple 设计的模板或从零开始制作自己的模板。在本教程中,我们将从零开始设计一个新信纸。我建议下载教程文件,将其用作参考。

文件夹结构

以防一你不知道,当你打开应用程序(Application)文件夹,双击图标开启一个程序时,你实际上双击的是一种文件夹(这类文件夹的名称带有 .app 扩展名)。如果你选中一个程序,并右击(对单键鼠标而言,用 control 加左键单击),在出现的关联菜单中你会看到“显示包内容”。点击这个选项,你将看到包裹(例如,一个程序)的内部,实际上几个文件和文件夹组成了一个包裹。在编辑或制作模板时,我们将用到这一点。

  1. 要获得附带的模板,你需要浏览至如下路径:
    /Library/Application Support/Apple/Mail/Stationery/Apple/Contents/Resources/
  2. 一旦你浏览至 Resources 文件夹,你将注意到很少的其他几个文件夹,这些最终将构成可供选择的模板分类之一。本教程中,我们将制作“家庭信函”模板,我选择将它放至 ‘Announcements’ 文件夹中。
  3. 继续前进,穿过几个子文件夹( /Contents/Resources/ )。你将注意到一系列的模板。每个模板均以“模板名.mailstationery”的格式命名。
  4. 新建一个文件夹,将其命名未 Family Newsletter.mailstationery 。在你如此新建文件夹后,你可以注意到它的图标立即变得和其他模板包裹一样了。

制作模板

再次重申,不要被所需穿越的文件夹数量吓倒了。

那么,让我们在多穿过几个文件夹。Control - 左键单击你之前新建的 Family Newsletter.mailstationery,选择“显示包内容”。你需要新建两级子文件夹,最终达到如下路径:

Family Newsletter.mailstationery/Contents/Resources/

我们需要在 Resources 文件夹内创建几个核心文件和文件夹:

  • Description.plist最终用于将其他文件和文件夹组合成模板。本文稍后将介绍其内容。
  • /English.lproj/DisplayName.strings“English.lproj” 是你要创建的文件夹的名称。这类文件夹用于存放相应的本地化文件。Mac OS X 中程序的本地化文件同样存放于类似文件夹内。简体中文相应的是 “zh_CN.lproj”,繁体中文相应的是 “zh_TW.lproj”。

    DisplayName.strings 用于定义在 Mail.app 模板列表中模板的显示名称。

  • content.html这是模板中的HTML文件,至少其中大部分内容是HTML。
HTML 文件

在我们继续前进之前,需要阐明的是电子邮件模板中用到的 HTML 仍处于其黑暗时期。事实上,某些公司实际是在走倒退的道路。所以,对苛求标准的你们,这里谈及的 HTML 将让你畏缩。

在本文末尾有个链接,用它你可以下载到这部分所需的文件。我不会在文章中发布HTML文件的全部内容,但我将给出小段代码,这部分代码可能对你来说是全新的,同时也有一部分是 Mail.app 模板所独有的。

  • contenteditablecontenteditable 是一个用于标记内容可编辑的区域的 HTML 属性。下面是个使用示例:

    [code lang='html']This is some boring text[/code]

  • AppleCompositeImage如果你希望能够在写邮件时向模板中加入自选的图像,并将它们限定在一定区域中,那么你需要使用 AppleCompositeImage 。 下面是个使用示例:

    [code lang='html'][/code]

    这将成为 “拖放区”。src 属性将与稍后介绍的代码相搭配而起作用。

  • apple-content-name我并不是完全确定 apple-content-name 属性是作何用的。我的猜想是它在你切换模板时起作用。利用它能在一定程度上保证切换模板时你的文本完整无缺。 下面是个使用示例:

    [code lang='html']Our Vacation[/code]

以上基本上介绍完了非常规 HTML 标记的部分。到此,我建议下载文章末尾的链接至的文件,打开 content.html 浏览代码。

DisplayName.strings

如我之前所说,这是一个你应该创建并命名为 DisplayName.strings 的文件。这个文件真的很直白,它所做的是告诉 Mail.app 应该如何显示你的模板的名称。它只需包含如下内容:

"Display Name" = "Family Newsletter";
Description.plist

Description.plist 可能是整个过程中最复杂的部分了。我不建议完全自行输入此文件的内容。我的建议是下载本文附带的文件,将其中 Description.plist 的内容复制/粘贴至你新建的相应文件。

Description.plist 仅仅是一个用于控制你的模板的某些设置的 XML 文件。

[code lang='xml']Background Images[/code]

这部分应包含所用要在 HTML 文件中用作背景的图像。

Example:
[code lang='xml']Background Images

content_bg.png
header_bg.png
[/code]

[code lang='xml']Composite Images[/code]

Composite Images 代码用于设置动态图像点,这些图像点让你拖放自选的图片。
下面是个使用示例:
[code lang='xml']Composite Images

Base Image
banner.png
Composite Name
Photos
Masks

Drop Zone Angle
0
Drop Zone Offset

0
0

Drop Zone Size

496
186

File Name
mask.png
Placeholder Image
placeholder.jpg

Overlay Image
shadow.png

[/code]
现在稍作解释:

  1. Base Image
    base image 将被用作拖放区的背景。它是拖放区无图片时所显示的内容。
  2. Composite Name
    这是你将在你的 HTML 的 src 属性的内容。此处被命名为了 “Photos.”
  3. Masks
    蒙版区负责处理拖放入的图像。更多细节见下文。 

    1. Drop Zone Angle
      如果你希望 “拖放区” (你可拖放图片的区域) 略微倾斜, 你可以改变这一数值。
    2. Drop Zone Offset
      裁剪蒙版区时将会依照此处设定的 X、Y 两个坐标对蒙版位置进行精确微调。
    3. Drop Zone Size
      这里定义的是可保证拖放操作有效的拖放图像并松开鼠标时,鼠标所处范围之大小。
    4. File Name
      用作蒙版的图像的名称。你必需制作一个带有黑色区域的图像,这块区域将控制你拖放的图像的显露。
    5. Placeholder Image
      此图像将作为拖放区的默认显示图像,直至你拖放了其它图像为止。
    6. Overlay Image
      如果你想在所拖放的图像上覆盖一些锦上添花的装饰(内投影之类) ,那么你只需在此加上这些装饰性图像的名称。

下面是同一文件中另一段需要解释的代码:
[code lang='xml']Folder Name
Family Newsletter.mailstationery
HTML File
content.html
Images

header.png
bottom.png

Stationery ID
52CF436E-68DA-4842-A638-2B912C5F7361
Thumbnail Image
thumbnail.png[/code]

  1. Folder Name
    你所制作的模板,即 .mailstationery 文件的名称。
  2. HTML File
    包含模板 HTML 内容的文件的名称。
  3. Image
    类似于之前介绍的 Background Images ,这应设置为 HTML 文件中所用图像的列表。
  4. Stationery ID
    据我所知,ID 可以是任何你想用的一串字符。只要这串字符具有唯一性即可。然而建议最好不要这样选 ID,较为妥当的做法是在 Terminal 中使用 Leopard 添加的命令 uuidgen,使用此命令创建的字符串被称为 “Universally Unique ID” ,这样的字符串可保证其独特性。
  5. Thumbnail Image
    一张尺寸为 69 × 90 px 的你所制作或编辑的模板之缩略式预览图。这将被用于 Mail 中的模板列表中。

总结之

相信所有这些是需要一定的阅读和“消化”, 并且它们看起来很复杂。下载教程文件、多钻研钻研。另外多去研究一下由 Apple 设计的模板,看看它们都使用了什么样的代码。试着编辑一些预置的模板(动手编辑前可别忘了备份噢 ! ),这样你可以对各段代码的作用有切身体会,随后你就可以着手制作自己的模板了。几经尝试及出错,你将能很快地掌握模板的制作。

免责声明

本人在自己的 Mac 上使用过并仍在使用以上所有代码。 The Apple Blog 和 Cocoatacious 对任何由于修改此类文件所造成的后果不负责任。虽然本人实在无法想像本教程所涉及操作能造成任何实际损失……但此免责声明仍旧如此。

点击 此处 下载教程文件

另外附上我用 Pages 排版后导出制作的本文相应的PDF。希望作为读者的你喜欢!

相关文章推荐:

Posted in Apple, Design, Leopard at January 18th, 2008. No Comments.

原文见:macosxhints.com | 10.5: Enable Data Detectors in iChat

Leopard 的 Mail 程序中的数据探测功能可以在用户将鼠标移至一定数据附近时提供一些方便的功能:

  • 若是联系人信息,提供的选项是将之添加至用户的地址簿。
  • 若是事件信息,提供的选项是将之添加至 iCal 中的相关日历中。如果选择添加至 iCal 中,将会弹出一个与直接在 iCal 中添加事件一样的面板,而且弹出的过程同样使用了 Leopard 中新添加的 Core Animation

    在 Mail 中探测到事件信息

    Mail 中添加事件面板

然而实际上这个功能不只局限于在 Mail 程序中使用,在 iChat 同样可以用上, 只不过 Apple 把这个功能默认隐藏了。只需在 终端 程序中输入如下命令即可:

defaults write com.apple.iChat EnableDataDetectors 1

Data Detector in iChat

若要停用此功能,将上述命令中的 1 改为 0 即可。

defaults write com.apple.iChat EnableDataDetectors 0
Posted in Apple, Leopard, Tip at January 6th, 2008. No Comments.