我无法弄清楚如何在jekyll插件中创建过滤器或标记,以便我可以返回一个目录并循环其内容.我找到了这些:
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) 我在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) 我正在为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中的另一个视图?
提前感谢您提供的任何帮助.
我实施了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'所以我不认为这是一个版本问题.
我在在这一点上的损失,因为这超出了我的应用程序的范围,以及所有我能想到的是解构工作示例应用程序,并通过线我的应用程序行比较其设置.
有人有一个工作示例应用程序的链接?
我正在尝试直接从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 文件中实现协程的方法。这个想法是我有很长的流程,需要能够在潜在的数小时或数天内屈服。因此,其他 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 等)确定是否读取按钮的状态,而是编写一个带有子循环的循环,这些子循环在电梯处于每种状态时运行。因此,当它上升时,它不会下降,除了紧急按钮之外,它不会读取任何按钮。这可能看起来没什么大不了的,但是在像聊天服务器这样的复杂状态机中,几乎不可能在不引入细微错误的情况下更新状态机。而协作线程(协程)版本具有明显可见的流程,更易于调试。
我正在开发一个执行大量路径名操作的项目.它在Mac OS X上运行正常,但令我惊讶的是,在Windows 上无法使用utf-8编码字符串调用realpath等函数.这是因为Windows上的setlocale不支持utf-8:
http://msdn.microsoft.com/en-us/library/x99tb11d.aspx
http://www.phpwact.org/php/i18n/utf-8
我可以创建在内部调用utf8_encode和 utf8_decode的包装函数,但是php中有很多文件函数,这给我带来了很大的负担.
此外,该项目是开源的,因此当用户尝试在他们自己的代码中使用我的字符串(所有这些都是面向Web的)来读/写文件时,用户可能会认为它是破坏的.
有没有提供utf-8版本的主要php文件功能的库?我更喜欢扩展名上的自包含目录,以便我可以将其与我的代码捆绑在一起.
我担心如果我找不到像这样的库,那可能是因为我不适合跨平台开发而导致php无法治愈的致命弱点.我也很好奇其他语言如ruby,python和c ++是如何解决这个问题的,如果他们这样做的话.如果没有,这可能只是对Windows的另一次打击,我将不得不找出另一种解决方法.
我正在开发一个 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 以某种方式扩展它并将其传递给客户端:
或者通过使用 app_id|app_secret 代替令牌来完全跳过获取令牌:
但尚不清楚如何将其从 node.js 传递回客户端。我对所有这些感到非常困惑,不明白为什么没有更好地记录使用图形 API 访问公共数据。我有在 iOS 中工作的普通用户登录,如果我能找到一个匿名登录示例,我可以改编一个来自网络的匿名登录示例。任何例子将不胜感激。
更新:
这些说明和这些文档帮助我从可用于 Facebook API 访问的应用程序 ID 创建了一个长期存在的令牌。目前这是通过像 php 这样的后端服务器完成的,但可能可以通过 URL 请求使其适应 …
我试图在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
我把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中,那将会很有帮助.
提前感谢您提供的任何帮助,
扎克
php ×3
facebook ×2
ios ×2
anonymous ×1
arrays ×1
backbone.js ×1
coroutine ×1
directory ×1
eclipse ×1
encoding ×1
file ×1
handshake ×1
hang ×1
hash ×1
inflate ×1
input ×1
ios9 ×1
jekyll ×1
join ×1
openssl ×1
plugins ×1
ruby ×1
search ×1
stream ×1
swap ×1
timeout ×1
token ×1
ubuntu ×1
unzip ×1
utf-8 ×1
view ×1
windows ×1
workspace ×1
yield ×1