copycat icon indicating copy to clipboard operation
copycat copied to clipboard

希望支持所选内容复制为markdown并复制链接地址

Open jumbojing opened this issue 3 years ago • 1 comments

就是将复制所选内容和复制标签内容合为一体,作为一个选项。比如:

Learn Git and GitHub without any code!

Using the Hello World guide, you’ll start a branch, write comments, and open a pull request. --from New Issue · BlackGlory/Copycat

jumbojing avatar Jan 18 '21 03:01 jumbojing

当然,能直接连接到所选文章的位置就更好了

jumbojing avatar Jan 18 '21 03:01 jumbojing

主观上, 我有点想加这个功能, 但客观上, 这只是两个复制操作的组合. 如果能通过两个复制操作搞定, 就没有将其做成一个复制操作的必要性, 否则各种复制操作组合起来势必会出现组合爆炸.

不难想到, 一种解决方案是在Copycat里提供一个模板功能, 然后由用户创建自己的复制操作. 例如, 此issue所需要的复制操作可以被转换为以下模板:

$selection_markdown
---from [$page_link_text]($page_link_url)

然而, 模板功能是很难在Copycat里实施的: 由于Chrome的API设计, 在不同的调用方式, 不同的目标对象的情况下, 能够为用户提供的模板变量是不同的. 用户需要被迫去学习为什么在一个场景下可以使用$frame_link_text这样的变量, 而在另一个场景下需要回退到$page_link_text, 为什么存在第三个变量叫做$frame_or_page_link_text. 如果用户还需要在$page_link_text不存在情况下输出<$page_link_url>而不是[$page_link_text]($page_link_url), 还会需要更高级的模板功能. 引入一个强大的模板语言可以一定程度上缓解上述问题, 但支持一个强大的模板语言可能会增加更多的维护成本. 出于上述考虑以及实施模板功能会引入的决策成本, 没有实现相关功能的计划.

可用户还是需要这个功能怎么办? 毕竟复制一次总是强于复制两次加上手打相关的衔接部分, 我会说最好的方法是fork本项目的代码, 然后自己添加相关的功能.

BlackGlory avatar Feb 22 '23 06:02 BlackGlory