我认为这是自从坎耶在头上刻上邪教符号以来最酷的事情:代码片段区域 中的每个代码片段现在在您将鼠标悬停在其上时都会显示小链接,用于将代码片段添加到 Coda 或 TextMate。我意识到这非常特定于 Mac,但如果您使用这些程序中的任何一个,这将非常酷。我希望制作一个复制到剪贴板的功能,这对任何人都很有用。[示例]
Coda 按钮的工作原理
这个比较容易,因为 Coda 支持一种特殊的 URL 结构(不确定该怎么称呼它),网页上的锚链接实际上可以将剪辑添加到 Coda(假设您已安装)。这是结构(链接的 href)
codaclips://<<**Title:Title%20of%20Snippet**>>.code-goes-here{%20margin:0;%20}
我不想做的是不得不将所有这些手动写入每个代码片段中。这需要大量重复的工作。我们将依靠 jQuery 为我们完成所有这些神奇操作。计划
- 查找每个代码块
- 查找标题和实际代码内容
- 将特殊格式的 Coda 链接附加到代码块
- 在将鼠标悬停在代码片段上时使其淡入
$(function() {
var $title = $("#snippet-header").text();
$(".entry pre").each(function() {
var $preblock = $(this);
var $codeblock = $preblock.find("code");
var $snippet = "codaclips://<<**Title:" + $title + "**>>" + encodeURIComponent($codeblock.text());
$("<a class='coda-clip'>Add Coda Clip</a>").attr("href",$snippet).appendTo($preblock);
$preblock.hover(function() {
$preblock.find(".coda-clip").stop().fadeTo(300, 1.0);
}, function() {
$preblock.find(".coda-clip").stop().fadeTo(300, 0);
});
});
$(".coda-clip").show().css("opacity","0");
});
图片/CSS
这些图片只是我在 Photoshop 中制作的按钮,当然是用精灵图,用于悬停效果。
在 CSS 中,按钮绝对定位在代码片段的右下角,并且隐藏(JavaScript 将取消隐藏它们,对于不使用 JS 的用户,最好隐藏起来)。
.entry .coda-clip {
display: none;
position: absolute;
bottom: 15px;
right: 0;
width: 80px;
height: 30px;
background: url(../images/coda.png) no-repeat;
text-indent: -9999px;
}
.entry a.coda-clip:hover {
background-position: 0 -30px;
}
TextMate 按钮的工作原理
这个复杂得多。您无法创建 URL 链接来创建 TextMate 代码片段。相反,TextMate 使用特殊格式的 XML 文件来添加代码片段。因此,为了使它正常工作,我们必须在有人需要时动态创建这些文件。
我与 David Walsh 分享了 这些文件的结构,我们曾在 HTML-Ipsum 上使用过一次。David 从那里接手,并为动态创建这些文件构建了一个非常非常酷的系统,包括缓存。
我将 defer 给 David,了解 如何执行此操作的教程。
它在这里效果不佳。当我点击添加到 Coda 按钮时,它确实已添加到 Coda,但“<”被转换为 & lt;
救命!
是的,我看到了同样的问题。“>”或“<”等字符会被编码。
尽管如此,我想说这个功能真的很酷。使用代码片段部分变得更加有趣。喜欢它!
我相信这个问题已解决。强制刷新并告诉我。
看起来问题已解决。谢谢!
哇!这太酷了,而且运行完美
对于我们 Coda 用户来说,如果代码片段页面可以或以某种方式与 Coda Clips 关联,那将是很好的。目前有一个专门用于 Coda Clips 的网站:http://coda-clips.com/,但我希望看到这种功能集成到代码片段页面中。
只是一个想法。
你帮我节省了大量时间!也感谢你的辛勤工作。
谢谢 Chris……我爱 Coda!
感谢你,Chris!这很有帮助,在短短 5 分钟内,我就节省了 2 个小时的研究和试图弄清楚其中一些内容而导致的头撞墙的时间。
我唯一要评论的是:当我使用你的新按钮将代码片段添加到 Coda 时,换行符和制表符不会保留。当我在 Coda 中通过“剪辑”将其插入我的代码时,它看起来不如从你的网站复制粘贴的好。
(我使用的是 FF 3.5.3 MAC)
是的,我知道这有点糟糕。可能需要在你添加它们后立即进行一些维护。我将研究如何改进它。
从你的网站复制并粘贴到我的 Coda 剪辑对我来说足够容易。再次感谢。
非常好!我并没有觉得它很有用,但阅读它的代码很有趣 :D
第 43,763 个我需要再次购买 Mac 的理由。(这次工作选择了更便宜的“PC”笔记本电脑)
我喜欢你使用 Coda,我真的很想念自己使用它。
我迫切期待“复制到剪贴板”功能。
-David
¡Increìble señor Coyier, increìble!
你知道针对透明 png + css 精灵图 + jquery 淡入效果的 IE 的良好解决方案吗?如果你在 IE7 或 IE8 中打开你的代码片段页面,你会看到当你将鼠标悬停在“添加到 Coda”链接上时,透明辉光会出现一个可怕的黑色背景。有一些 js 技巧(unitpng)可以修复仅透明 png + jquery 淡入效果的组合,但这些会弄乱项目的背景定位,因此它们不适用于 css 精灵图实现。
一个非常酷的想法,并且实现得非常好。
我知道关于是否应该使用 UA 字符串进行内容传递存在一场旷日持久的争论,但是你不能查询 UA 以查看浏览器是否*认为*它正在 Mac 上运行,并且仅在它是 Mac 时才包含按钮的 jQuery 吗?
这是一个聪明的主意。如果我能找到一种方法来做到这一点,我就会去做。我并不是想惹恼 PC 用户,只是想在它可以发挥作用的地方提供一些额外的东西。
这应该可以工作
哇哇哇哇……不爱 PC 用户……;)
Chris,
有一个 Jquery 插件可以帮助解决复制到剪贴板的问题:http://plugins.jquery.com/project/copy
这是一个非常酷的功能,最终希望在所有展示代码片段的网站上看到它,并提供更多针对不同编辑器的选项。我最近一直在使用 Espresso,但我在老式的 TextMate 中测试了它,它运行良好!干得好!
你是说“坎耶”吗?
太棒了!!!太棒了!!这让我越来越爱我的Coda!
这太棒了。有人知道如何使用Dropbox在多台Mac上同步这些代码片段吗?
嘿,Chris,谢谢!喜欢你可以把它添加到Coda的功能。我明天会花一些时间添加一些代码片段。继续努力。
– Alex
附言
如果你想要Threadsy的邀请,告诉我,我会看看我能为你做些什么。
我想在我的代码标签中实现这个功能,但只有一个问题……
当你使用codaclips协议时,你能在后台使用AJAX请求来实现它吗?它会添加到Coda添加到任何地方吗?
附言
我理解Coda仅供Mac用户使用,并且没有Firefox或Windows的Coda插件?!对某些人来说可能是个好主意。
6TrafficSecrets – SEO工具