小编Zac*_*ris的帖子

从Jekyll插件返回目录中的文件列表?

我无法弄清楚如何在jekyll插件中创建过滤器或标记,以便我可以返回一个目录并循环其内容.我找到了这些:

http://pastebin.com/LRfMVN5Y

http://snippets.dzone.com/posts/show/302

到目前为止,我有:

module Jekyll
  class FilesTag < Liquid::Tag

    def initialize(tag_name, text, tokens)
      super
      @text = text
    end

    def render(context)
        #"#{@text} #{Time.now}"
        Dir.glob("images/*").each { |i| "#{i}" }
        #Dir.glob("images/*")
        #Hash[*Dir.glob("images/*").collect { |v| [v, v*2] }.flatten]
    end
  end
end

Liquid::Template.register_tag('files', Jekyll::FilesTag)
Run Code Online (Sandbox Code Playgroud)

我可以成功地将图像列表作为字符串返回并打印出来:

{% files test_string %}
Run Code Online (Sandbox Code Playgroud)

但是对于我的生活,无论我如何从Dir.glob返回数组/哈希,我都无法遍历数组.我只想做到:

{% for image in files %}
    image
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

我将需要能够为我将在网站上使用的各种集合不断返回数组.我只需要一个准系统插件来构建.

谢谢!


更新:我部分解决了它.这个方法有效,但需要使用endloop_directory而不是endfor,这对我来说似乎有点难看.此外,过滤器无法采用像*.{jpg,png}这样的参数,因为无法逃脱html中的{}.打开有关如何在属性中传递正则表达式字符串的建议...

#usage:
#{% loop_directory directory:images iterator:image filter:*.jpg sort:descending %}
#   <img src="{{ image }}" />
#{% endloop_directory %}
module Jekyll
    class LoopDirectoryTag …
Run Code Online (Sandbox Code Playgroud)

ruby arrays hash plugins jekyll

9
推荐指数
1
解决办法
2556
查看次数

Ubuntu中的OpenSSL 1.0.1握手解决方法?

我在Ubuntu 12.04上的OpenSSL 1.0.1中遇到了一个严重的错误:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=665452

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=666051 < - 日期为2012年10月3日!

它的要点是我能够连接到某些服务器但不能连接其他服务器.连接谷歌作品:

openssl s_client -connect mail.google.com:443 -debug -state -msg -CAfile /etc/ssl/certs/ca-certificates.crt

...
Protocol  : TLSv1.1
Cipher    : ECDHE-RSA-RC4-SHA
Session-ID: 94DB1AC8531115C501434B16A5E9B735722768581778E4FEA4D9B19988551397
Session-ID-ctx:
Master-Key: 8694BF510CD7568CBAB39ECFD32D115C511529871F3030B67A4F7AEAF957D714D3E94E4CE6117F686C975EFF21FB8708
Key-Arg   : None
PSK identity: None
PSK identity hint: None
SRP username: None
TLS session ticket lifetime hint: 100800 (seconds)
TLS session ticket:
0000 - fb 52 d6 d3 3c a8 75 e1-1f 1d f6 23 ab ce 55 44   .R..<.u....#..UD
0010 - 27 bf ad c4 7a 0d 83 …
Run Code Online (Sandbox Code Playgroud)

ubuntu openssl facebook timeout handshake

8
推荐指数
1
解决办法
6132
查看次数

交换/切换/交换backbone.js视图到位?

我正在为backbone.js中的联系人管理器实现查看/编辑视图.Web建议使用名为ContactView和ContactEdit的子视图创建一个Contact类.问题是,这些需要在DOM中占用相同的el,因此我无法将子项嵌套在父级中.那是因为从外面看,我希望父视图只能引用联系人,就好像这些孩子是私人的一样.我试过这个,它第一次渲染()时工作:

initialize: function() {
    this.view[0] = new CL.Views.ContactView({model: this.model, el: this.el});
    this.view[1] = new CL.Views.ContactEdit({model: this.model, el: this.el});
},
render: function() {
    this.view[0].render();
    return this;
}
Run Code Online (Sandbox Code Playgroud)

但后来我无法交换意见.我尝试了this.view [0] .remove()以及我能想到的一切,但是无法让浏览和编辑视图使用相同的el互相交换.

我认为这意味着在一个视图中有两个模板并且只是交换它们会更好,这些模板已经基本上可以工作了.我认为它是backbone.js不能很好地处理DOM中同一级别的视图的继承.

我宁愿避免使用backbone.js扩展,但是要遵循它们实现的任何模式.我正在尝试以"正确"的方式执行此操作,因为查看/编辑是我们的应用程序中的表单的常见模式.

PS另一种说明这个问题的方法是,如果没有包含它们的父视图,如何隐藏视图并将其替换为backbone.js中的另一个视图?

提前感谢您提供的任何帮助.

swap exchange-server view switch-statement backbone.js

6
推荐指数
1
解决办法
3515
查看次数

iOS 9上的GIDSignIn白屏

我实施了Google登录,一切都可以在iOS 8上运行.但是当我在iOS 9上调用此行时:

GIDSignIn.sharedInstance().signIn()
Run Code Online (Sandbox Code Playgroud)

我能够第一次登录.但是,如果我取消,下次我尝试登录时会显示一个白色屏幕,其中显示正常的用户批准Web视图.

当我删除应用程序并重新安装它时,甚至会发生这种情况,这意味着可能会在操作系统级别缓存某些内容.

唯一的解决方案是重新打开iOS模拟器或重新启动我的iPhone.

我没有运气就尝试了所有 这些 答案.我也试过GIDSignIn.sharedInstance().signIn().allowsSignInWithWebView = true希望通过Safari授权可能会起作用,但Safari永远不会打开.我的Podfile有,pod 'Google/SignIn'所以我不认为这是一个版本问题.

我在在这一点上的损失,因为这超出了我的应用程序的范围,以及所有我能想到的是解构工作示例应用程序,并通过线我的应用程序行比较其设置.

有人有一个工作示例应用程序的链接?

hang ios ios9 google-signin

6
推荐指数
2
解决办法
1099
查看次数

解压或膨胀 php://input 流?

我正在尝试直接从php://input流中解压缩 zip 文件。我正在运行 Laravel Homestead, PHP 7.1.3-3+deb.sury.org~xenial+1,端点为myproject.app/upload,这是curl命令:

curl --request POST \
  --url 'http://myproject.app/upload' \
  --data-binary "@myfile.zip" \
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的所有方法的列表,但都失败了:


dd(file_get_contents('compress.zlib://php://input'));
Run Code Online (Sandbox Code Playgroud)

file_get_contents():不能将输入类型的流表示为文件描述符


$fh = fopen('php://input', 'rb');

stream_filter_append($fh, 'zlib.inflate', STREAM_FILTER_READ, array('window'=>15));

$data = '';

while (!feof($fh)) {
    $data .= fread($fh, 8192);
}

dd($data);
Run Code Online (Sandbox Code Playgroud)

“”


$zip = new ZipArchive;

$zip->open('php://input');
$zip->extractTo(storage_path() . '/' . 'myfile');
$zip->close();
Run Code Online (Sandbox Code Playgroud)

ZipArchive::extractTo(): 无效或未初始化的 Zip 对象

以下是我在该主题上找到的所有链接:

http://php.net/manual/en/wrappers.php#83220

http://php.net/manual/en/wrappers.php#109657

http://php.net/manual/en/wrappers.compression.php#118461

https://secure.phabricator.com/rP42566379dc3c4fd01a73067215da4a7ca18f9c17

https://arjunphp.com/how-to-unpack-a-zip-file-using-php/

我开始认为不可能使用 PHP 的内置 zip 功能对流进行操作。编写临时文件的开销和复杂性将非常令人失望。有谁知道如何做到这一点,或者这是一个错误?

php input unzip stream inflate

6
推荐指数
1
解决办法
3043
查看次数

php 中的协程?

嗨,我正在寻找一种在 php 文件中实现协程的方法。这个想法是我有很长的流程,需要能够在潜在的数小时或数天内屈服。因此,其他 php 文件将调用与协程相同的文件中的函数来更新某些内容,然后调用类似的函数$coroutine.process()会导致协程从其最后一个 yield 继续。这是为了避免必须使用大型状态机。

我认为协程 php 文件在空闲时实际上不会运行,但是当给定处理时间时,将从顶部进入并使用诸如 switch 或 goto 之类的东西从以前的产量重新启动。然后当它达到下一个产量时,文件将在某处(如会话或数据库)保存其当前状态,然后退出。

有没有人听说过这个,或者类似的比喻?以某种方式在一个集合下聚合和管理多个协程的奖励积分,也许支持类似线程的连接,以便在它们完成时流程继续在一个地方(有点像 Go)。

更新:php 5.5.0 添加了对生成器和协程的支持:

https://github.com/php/php-src/blob/php-5.5.0/NEWS

https://wiki.php.net/rfc/generators

我还没有尝试过,所以也许有人可以提出一个准系统的例子。我正在尝试将状态机转换为协程。因此,例如 for 循环内的 switch 命令(其流程难以遵循,并且随着添加更多状态而容易出错)转换为协作线程,其中每个决策点很容易在有序的线性流程中看到,该流程暂停状态在 yield 关键字发生变化。

一个具体的例子是,假设您正在编写一个电梯控制器。不是根据电梯的状态(STATE_RISING、STATE_LOWERING、STATE_WAITING 等)确定是否读取按钮的状态,而是编写一个带有子循环的循环,这些子循环在电梯处于每种状态时运行。因此,当它上升时,它不会下降,除了紧急按钮之外,它不会读取任何按钮。这可能看起来没什么大不了的,但是在像聊天服务器这样的复杂状态机中,几乎不可能在不引入细微错误的情况下更新状态机。而协作线程(协程)版本具有明显可见的流程,更易于调试。

php yield join state-machine coroutine

5
推荐指数
1
解决办法
4324
查看次数

php库在windows上提供utf-8文件功能?

我正在开发一个执行大量路径名操作的项目.它在Mac OS X上运行正常,但令我惊讶的是,在Windows 上无法使用utf-8编码字符串调用realpath等函数.这是因为Windows上的setlocale不支持utf-8:

PHP:Windows 7中的setlocale

http://msdn.microsoft.com/en-us/library/x99tb11d.aspx

http://www.phpwact.org/php/i18n/utf-8

我可以创建在内部调用utf8_encodeutf8_decode的包装函数,但是php中有很多文件函数,这给我带来了很大的负担.

此外,该项目是开源的,因此当用户尝试在他们自己的代码中使用我的字符串(所有这些都是面向Web的)来读/写文件时,用户可能会认为它是破坏的.

有没有提供utf-8版本的主要php文件功能的库?我更喜欢扩展名上的自包含目录,以便我可以将其与我的代码捆绑在一起.

我担心如果我找不到像这样的库,那可能是因为我不适合跨平台开发而导致php无法治愈的致命弱点.我也很好奇其他语言如ruby,python和c ++是如何解决这个问题的,如果他们这样做的话.如果没有,这可能只是对Windows的另一次打击,我将不得不找出另一种解决方法.

php windows encoding file utf-8

5
推荐指数
1
解决办法
164
查看次数

使用客户端令牌/匿名访问 Facebook Graph API?

我正在开发一个 iOS 应用程序,其中用户需要能够在没有 Facebook 登录的情况下访问 Facebook Graph API(因为他们以仅限电子邮件的方式注册了我的应用程序)。他们主要需要检索其他 Facebook 用户的公共提要(名人等),以便我可以在关于框中显示该信息。在旧的 API 中,我相信这被称为公共帖子搜索或离线访问,但这些似乎已被 Facebook 弃用。我想知道直接使用 app-id 作为令牌是否可行:

如何为没有应用程序或应用程序机密的页面获取 Facebook 访问令牌

取而代之的是,我可以在以下位置使用“客户端令牌”:

https://developers.facebook.com/apps/ {your-app-id}/settings/advanced/

随着:

[FBAccessTokenData createTokenFromString:]
[FBSession openFromAccessTokenData:]
Run Code Online (Sandbox Code Playgroud)

使用我的应用程序凭据将用户登录到 Facebook?另一种选择可能是以编程方式匿名登录用户:

https://developers.facebook.com/products/anonymous-login/

我很难在 FacebookSDK.framework 中找到相应的调用。我能找到的唯一提到的“匿名”是:

[FBSettings setClientToken:]
Run Code Online (Sandbox Code Playgroud)

来自文档:“为 Facebook 应用程序设置客户端令牌。匿名进行某些 API 调用时需要这样做,没有基于用户的会话。”


如果这一切都不可能,那么我可能需要回退到使用 node.js 服务器从应用程序令牌为用户生成长期存在的令牌。这在“从服务器端长寿命令牌生成长寿命用户令牌”部分中讨论:

https://developers.facebook.com/docs/facebook-login/access-tokens

我看到如何在这里获得令牌:

https://developers.facebook.com/tools/access_token/

https://developers.facebook.com/tools/explorer/?method=GET&path=me%3Ffields%3Did%2Cname&version=v2.2

然后使用 node.js 以某种方式扩展它并将其传递给客户端:

facebook:永久页面访问令牌?

无需 Facebook 登录即可获取新的访问令牌

或者通过使用 app_id|app_secret 代替令牌来完全跳过获取令牌:

尝试获取应用访问令牌

但尚不清楚如何将其从 node.js 传递回客户端。我对所有这些感到非常困惑,不明白为什么没有更好地记录使用图形 API 访问公共数据。我有在 iOS 中工作的普通用户登录,如果我能找到一个匿名登录示例,我可以改编一个来自网络的匿名登录示例。任何例子将不胜感激。

更新:

这些说明这些文档帮助我从可用于 Facebook API 访问的应用程序 ID 创建了一个长期存在的令牌。目前这是通过像 php 这样的后端服务器完成的,但可能可以通过 URL 请求使其适应 …

facebook anonymous token facebook-graph-api ios

5
推荐指数
0
解决办法
3825
查看次数

Eclipse工作区外的搜索目录?

我试图在Windows 7上的Eclipse 3.0.2中搜索工作区外的文件夹和文件.这些链接帮助:

http://eclipse.dzone.com/articles/5-best-eclipse-plugins-system

https://bugs.eclipse.org/bugs/show_bug.cgi?id=192767

不幸的是,我只能让桌面搜索工作,而不是系统搜索.我试过了诺基亚系统搜索下载链接:

https://bugs.eclipse.org/bugs/attachment.cgi?id=106032

http://www.steinerberg.com/EmbeddedComponents/System%20Search/com.nokia.search.system_2.0.0.201102171254.jar

我把com.nokia.search.system或com.nokia.search.system_2.0.0.201102171254.jar放在c:\ eclipse-php\plugins中.我也尝试将com.nokia.search.system.feature放在c:\ eclipse-php\features中,但它仍然无效,因为该文件夹为空,所以我在eclipse的错误日志中收到此消息:

!MESSAGE无法在目录中找到feature.xml:C:\ eclipse-php\features\com.nokia.search.system-feature

我在Mac上使用TextWrangler和Xcode等工具进行目录搜索是理所当然的,并且我很惊讶Eclipse开发人员在他们的IDE中不包含任意文件搜索.

另一种可能性是以某种方式将C驱动器添加到Eclipse的工作区.我主要需要这个来搜索像梨这样的目录.我想一个免费的应用程序可能是一个好的解决方案,如果有办法将它以某种方式绑定到Eclipse中,那将会很有帮助.

提前感谢您提供的任何帮助,

扎克

eclipse directory workspace search

4
推荐指数
1
解决办法
3160
查看次数