jsFiddle中的参考GitHub文件


69

是否有可能将github存储库中的抓取文件滥用为jsFiddle中的外部资源?

Answers:


25

这是一个更新的答案,因为Github的URL略有更改。我遇到了这个问题,并想出了今天的方法。希望这可以帮助人们最近找到这篇文章。Bootswatch中的Bootstrap Slate主题示例:

  1. 原始文件网址:https//raw2.github.com/thomaspark/bootswatch/gh-pages/slate/bootstrap.css

  2. 取出2.rawhttps://rawgithub.com/thomaspark/bootswatch/gh-pages/slate/bootstrap.css

而已!:D



102

TLDR;访问rawgit.com,它将直接从GitHub将您的文件弹出CDN,以便您使用它们。

不幸的是,这里没有答案对我有用。由于rawgithub连接被拒绝,URL似乎不起作用。因此,这里有一个可行的完整解决方案。首先,在GitHub中,您需要单击Raw按钮以获取原始JavaScript。

在此处输入图片说明

然后从您的页面复制URL。您会发现,如果尝试直接使用它,则会收到JSFiddle的警告。

在此处输入图片说明

更重要的是浏览器会给您一个错误,例如:

Refused to execute script from https://raw.githubusercontent.com/nnnick/Chart.js/master/Chart.min.js' because its MIME type ('text/plain') is not executable, and strict MIME type checking is enabled.

使用该URL并访问rawgit.com。这将为您提供https://rawgit.com/nnnick/Chart.js/master/Chart.min.js可以使用的格式的URL 。

我已经尝试并测试了这一点,它似乎工作正常,没有问题


1
哦。只需阅读您的全文即可。似乎他们遇到了命名问题:)
kaiser 2014年

@kaiser:感谢您重新接受此答案,希望能引起人们的注意并为将来的用户提供帮助。
2014年

顺便说一句,已经有人对此做出了回答(但感谢您添加更多详细信息并使用规范域)。
Ry-

@Ian:rawgithub应该重定向到rawgit。无论如何,不​​,我没有对你投反对票。(如果您想知道的话,括号是很诚恳的。)
Ry-

1
对于那些想如何使用的人rawgit:该服务将在不久的将来关闭。替代方法是jsDelivr
SaschaM78


2

更新

如何像使用CDN一样使用或滥用github并不是只有良性的“提琴手”才有的想法。罪犯也有这种想法。不幸的是,GitHub既免费又匿名,因此很容易被滥用。据我所知,上述某些解决方案已被打破的事实与此有关。

这是我的方法。它现在可以使用(2019年11月),但是公认它不太方便。

如果您还没有一个github帐户,请自己获取。创建一个名称与您的github用户名相同的存储库。该存储库(该存储库)-我将其称为“家庭存储库”-您可以将其用作网络托管服务。https:// yourGithubUserName .github.io将向公众显示您的家庭存储库“原始/原样”。(文件夹内容未显示,您必须拥有index.html)

现在,如果您想在拨弄中使用其他人的github回购,只需将完整回购复制到您的家庭回购中,然后在拨弄的HTML部分中使用script标签的src属性引用该回购的副本即可。 。像这样:

<head>
    <script src="https://mathheadinclouds.github.io/thirdparty/esprima.js"></script>
    <script src="https://mathheadinclouds.github.io/thirdparty/estraverse.browser.js"></script>
    <script src="https://mathheadinclouds.github.io/thirdparty/escope.browser.js"></script>
</head>
<body></body>

上面的代码片段显示了正在工作的小提琴的HTML部分,该部分正在使用节点模块esprima,estraverse和escope,即同名的github存储库。thirdparty在那里是因为那是我放置副本的子文件夹的名称(在我的家庭仓库中)。

就像我说的那样,这不是很方便(通过复制和粘贴将其全部设置),但这对我有用。

我应该提到,仅复制/粘贴可能还不够,您可能必须在引用的存储库上进行browserify或webpack(如果是为节点创建的,就是这样)。

这是我在说的小提琴。

OLD ANSWER (有效,但有点慢)

您可以使用requirify。它使您能够在浏览器命令行中要求(因为它在节点中);但是我也测试了它。与上面的其他方法相比,我不知道它是否是“最好的”(因为我没有对所有方法进行过测试)。

这是一个示例文件,其中先加载esprima(JavaScript解析器),然后加载escodegen(取决于esprima的反向javascript解析器),然后解析并重新生成一些简单的javascript代码。

什么

require('lorem', 'ipsum')

确实,它从npm加载ipsum节点模块,并将结果放入名为lorem的全局变量中。因此,这仅适用于npm模块,而不适用于通用的github文件,这些文件也不是节点模块。不应有太大的限制,因为如果它是您自己的项目,则始终可以将其转换为节点模块。

这里是

使用相同技术的第二个示例

((((实际上是更简单,如小提琴所示。您可以将2个require语句一个接一个地放,您之间不需要回调函数(只需一个回调函数就可以等到两个都被加载)) ))


1

另一种可能性是将Git库添加到cdnJS脚本存储库(他们写道,将接受在GitHub上流行的任何库),然后将其用作外部资源。

刚刚发现:http://jsdb.io/上有很多Javascript库,在那很容易添加新的Java库-我只需要输入Github存储库的URL。


1

如果以下文件夹结构中有git repo

fiddletest / test1(fiddletest是存储库名称,而test1是文件夹)

那么相应的jsfiddle链接将是

http://jsfiddle.net/gh/get/<library name>/<version>/<github user name>/fiddletest/tree/master/test1/

文件夹和文件结构必须是这样的

fiddletest(the repo name)
|____ test1
      |____ demo.html
      |____ demo.js
      |____ demo.css
      |____ demo.details 

除了这三个文件外,其他将被忽略。详细信息文件应包含小提琴详细信息和外部资源(如果有)的链接,如下所示

---
name: test fiddle repo
description: this is a test repo
resources: 
  - http://abc.xyz.com/abc.js
  - http://abc.xyz.com/abc2.js
...

可能您已经注意到了and提琴演奏中的链接。如果小提琴使用纯js,则库名应为“ library”,版本应为“ pure”

简而言之,引用到github的小提琴链接应采用以下格式

http://jsfiddle.net/gh/get/<library name>/<version>/<github user name>/<repo name>/tree/<branchname>/<folder name>/

请注意,与其他小提琴不同的是,以这种方式创建的小提琴无法嵌入...
TJ
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.