小编Nem*_*emo的帖子

Jekyll选择当前页面url并更改其类

我一直在使用Jekyll作为静态站点(因此易于维护),并且一直坚持以下功能:

这是我的链接栏:

<ul id="links">
    <li class="first"><a class="active" href="/">Home</a></li>
    <li><a href="./associate.html">Associate With Us</a></li>
    <li><a href="./media.html">Media</a></li>
    <li><a href="./clients.html">Clients</a></li>
    <li class="last"><a  href="./contact.html">Contact Us</a></li>
</ul>       
Run Code Online (Sandbox Code Playgroud)

active类处理着色.我想要的是这个类是由jekyll应用的,取决于使用液体/ YAML设置的一些变量.

有一些简单的方法可以解决这个问题吗?

由于条形图对所有页面都是通用的,因此它现在处于默认布局中.我可以通过使用Javascript来检测网址,并进行突出显示但是想知道在Jekyll中是否有任何方法可以做到这一点.

html jekyll

51
推荐指数
4
解决办法
2万
查看次数

使用凭证进行跨源资源共享

我在多个子域(example.com,blog.example.com和app.example.com)上有一个通用的身份验证表单.登录表单必须将此数据提交给example.com而不管它在何处显示,所以我想到了使用CORS,但是这个:

header("Access-Control-Allow-Origin: http://example.com http://blog.example.com http://app.example.com")
Run Code Online (Sandbox Code Playgroud)

不起作用

所以我想做下一件事,并在服务器端手动检查Origin标头,并允许Access-Control-Allow-Origin: *可以进行请求,但不幸的是,这在MDN中出现了

重要说明:在响应凭证请求时,服务器必须指定域,并且不能使用通配符.

有没有办法让我的请求跨多个域工作,仍然使用CORS发送凭据?

http cors

29
推荐指数
1
解决办法
7万
查看次数

如何对MVC类进行单元测试?

我一般是单元测试的新手,但是想用MVC模式实现它(使用PHP).现在我不确定如何处理这个问题.

单元测试应该构建到框架中,还是只创建一个名为tests的新文件夹,并包含所有必需的类和单元测试?

简而言之,如果存在模型M,它也与框架本身有一些耦合.那么为了测试模型,我应该在单元测试中包含框架的某些部分吗?

是否有一些关于如何实现这一目标的良好代码示例.

php model-view-controller unit-testing

10
推荐指数
1
解决办法
4162
查看次数

如何在Ruby中解析DTD文件

我试图将DTD文件转换为YAML文件,我尝试在libXML和Nokogiri中加载它,但似乎DTD文件不是有效的XML文件.只要我可以解析DTD文件,我就可以使用任何第三方宝石.

我尝试转换:

wget "http://xml.evernote.com/pub/enml2.dtd"
irb
require 'nokogiri'
xml = Nokogiri::XML::Document.parse('enml2.dtd')
xml.to_yaml
=> "--- !ruby/object:Nokogiri::XML::Document\ndecorators: \nnode_cache: []\nerrors:\n- !ruby/exception:Nokogiri::XML::SyntaxError\n  message: |\n    Start tag expected, '<' not found\n  domain: 1\n  code: 4\n  level: 3\n  file: \n  line: 1\n  str1: \n  str2: \n  str3: \n  int1: 0\n  column: 1\n"
Run Code Online (Sandbox Code Playgroud)

任何在线XML验证器也会返回错误"Start tag expected".我认为这是因为所有有效的XML文档都以<?xml,DTD文件似乎缺失.这就是我得出的结论,即所有DTD文件都是无效的XML文件,但是,XML定义语法本身没有被定义为有效的XML,这确实让人感到奇怪.为什么?

我正在解析DTD文件以从XML文件中删除无效属性,以了解要保留哪些属性以及要删除哪些属性,因此我需要一种方法来解析DTD文件.

最终,这只是尝试将HTML转换为ENML(Evernote标记语言)的一步.其中涉及的步骤包括:

  • 将HTML转换为有效的XHTML
  • 将正文转换为en-note元素
  • 根据dtd文件删除无效标记和属性
  • 针对dtd验证enml文件

我目前正在考虑从" 理解Evernote标记语言 "中复制不允许的属性和标记,并使用它来验证我的XHTML,但我更喜欢使用DTD作为我的源代码.

Nokogiri DTD类是一个Node类,用于保存内联DTD节点并对其进行验证.在我的例子中,我有一个使用SYSTEM属性指定的外部DTD文件,Nokogiri似乎不支持.即使它确实有效,我所得到的只是验证.

我确实使用以下方法验证了正常工作:

#dtd = XML::Dtd.new File.read Rails.root.join('lib', 'assets','enml2.dtd')
#enml_document = XML::Document.string enml
#ret = enml_document.validate dtd
Run Code Online (Sandbox Code Playgroud)

我还没试过REXML.我会给你一个回报并报告.

我正在尝试将HTML文档转换为使用给定DTD验证的XML文档.ENML模式中不允许使用大多数HTML元素和属性,因此我必须删除它们或删除它们.我还需要知道哪些属性是允许的,哪些不是,这样我就可以正确地解析XML并删除/清理有问题的元素和属性. …

ruby xml dtd nokogiri evernote

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

用点表示法创建一个对象

这是对这个问题的反向问题.

给定一个对象x={a:1,b:2}和一个字符串c.d=3,将对象x修改为以下内容:

{
  a:1,
  b:2,
  c:{
    d:3
  }
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种不使用的解决方案eval.用例如下:

x 作为配置对象,我们称之为: config.set("music.shuffle",true)

现在,music.shuffle必须以某种方式解析并添加到xconfig.set函数内的内部对象,以便x看起来像:

x={a:1,b:2,music:{shuffle:true}}
Run Code Online (Sandbox Code Playgroud)

javascript json

5
推荐指数
2
解决办法
4422
查看次数

将数据文件安装到错误的位置

包的来源在这里

我正在通过索引安装包:

easy_install hackertray
pip install hackertray
Run Code Online (Sandbox Code Playgroud)

easy_install安装images/hacker-tray.png到以下文件夹:

/usr/local/lib/python2.7/dist-packages/hackertray-1.8-py2.7.egg/images/
Run Code Online (Sandbox Code Playgroud)

同时,pip将其安装到:

/usr/local/images/
Run Code Online (Sandbox Code Playgroud)

我的setup.py如下:

from setuptools import setup
setup(name='hackertray',
      version='1.8',
      description='Hacker News app that sits in your System Tray',
      packages=['hackertray'],
      data_files=[('images', ['images/hacker-tray.png'])])
Run Code Online (Sandbox Code Playgroud)

我的MANIFEST档案是:

include images/hacker-tray.png
Run Code Online (Sandbox Code Playgroud)

python packaging pip package-managers easy-install

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

是否可以使用node-webkit创建后台应用程序?

我想创建一个完整的后台运行应用程序,它只显示在系统托盘中,并且没有任何"窗口".我尝试将"window"属性设置为false,但这不起作用.有没有办法使用node-webkit创建一个完全后台守护进程风格的应用程序?

tray background-process node-webkit

4
推荐指数
2
解决办法
3411
查看次数

如何在terraform中使用locals来重复和合并块?

我有多个docker_container资源:

resource "docker_container" "headerdebug" {
  name  = "headerdebug"
  image = "${docker_image.headerdebug.latest}"

  labels {
    "traefik.frontend.rule" = "Host:debug.in.bb8.fun"
    "traefik.port" = 8080
    "traefik.enable" = "true"
    "traefik.frontend.passHostHeader" = "true"
    "traefik.frontend.headers.SSLTemporaryRedirect" = "true"
    "traefik.frontend.headers.STSSeconds" = "2592000"
    "traefik.frontend.headers.STSIncludeSubdomains" = "false"
    "traefik.frontend.headers.customResponseHeaders" = "${var.xpoweredby}"
    "traefik.frontend.headers.customFrameOptionsValue" = "${var.xfo_allow}"
  }
}
Run Code Online (Sandbox Code Playgroud)

还有一个:

resource "docker_container" "cadvisor" {
  name  = "cadvisor"
  image = "${docker_image.cadvisor.latest}"

  labels {
    "traefik.frontend.rule" = "Host:cadvisor.bb8.fun"
    "traefik.port" = 8080
    "traefik.enable" = "true"
    "traefik.frontend.headers.SSLTemporaryRedirect" = "true"
    "traefik.frontend.headers.STSSeconds" = "2592000"
    "traefik.frontend.headers.STSIncludeSubdomains" = "false"
    "traefik.frontend.headers.contentTypeNosniff" = "true"
    "traefik.frontend.headers.browserXSSFilter" = …
Run Code Online (Sandbox Code Playgroud)

syntax terraform

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

如何使用 Razorpay PHP API 获取付款详细信息?

我正在尝试集成用于获取付款详细信息的代码。

billno:该值将从 URL 中获取。

我当前的代码:

include 'razorpay/Razorpay.php';
use Razorpay\Api\Api;

$api = new Api('Secret ID', 'Secret Key');

$payment = $api->payment->fetch($_REQUEST['billno']);
$text =  json_encode($payment->toArray());
$obj = json_decode($text);
$shopping_id = $obj->{'notes'}->{'shopping_id'};

$rzp_amount = $obj->{'amount'};//xheck
$real_amount = $rzp_amount/100;
$rzp_key = $obj->{'id'};
$rzp_status = $obj->{'status'}; //Authorised cgecj
$rzp_descp = $obj->{'description'};
$rzp_mail = $obj->{'email'};
$rzp_phone = $obj->{'contact'};
$rzp_address = $obj->{'notes'}->{'address'};
$rzp_timestamp = $obj->{'created_at'};
$rzp_method = $obj->{'method'};
Run Code Online (Sandbox Code Playgroud)

使用代码提取 billno 将为我们提供上述 $rzp 变量。

php payment-gateway razorpay

3
推荐指数
1
解决办法
1万
查看次数

Razor 支付支付集成 -&gt; 我如何通过关闭按钮 X 检测到 Razor 支付模式关闭

我在 CI 框架中使用 Razorpay 当用户关闭而不付款创建剃刀支付模型然后对于取消订单我希望通过状态更改为取消的查询触发。

那么我如何才能检测到这一点。我已经在使用单击 jQuery 单击关闭功能但不起作用...

javascript php jquery codeigniter razorpay

3
推荐指数
2
解决办法
8142
查看次数

将CoffeeScript代码转换为LiveScript?

我有这个有效的CoffeeScript,并希望将其转换为LiveScript.有人可以解释为什么它无法转换?还要转换一个吗?

TodoCtrl = (scope) ->
  scope.addTodo = ->
    scope.todos.push
      text: scope.todoText
      done: false
    scope.todoText = ''
Run Code Online (Sandbox Code Playgroud)

您可以使用它来编译CoffeeScript.

http://coffeescript.org/

您可以使用它来编译LiveScript.

http://gkz.github.com/LiveScript/

coffeescript livescript

2
推荐指数
1
解决办法
1343
查看次数

如何在JQuery中使用localStorage为ajax调用创建自定义缓存机制?

我试图为我的ajax调用编写自定义缓存机制,这些调用主要是数据调用.所以我没有将它们放在浏览器缓存中,而是将它们放在localStorage中以供长期使用.

但我无法弄清楚如何伪造JQuery.ajax的请求完成.我可以成功拦截调用,但由于某种原因,我对回调函数的调用没有相同的范围.

$.ajaxPrefilter(
 function( options, originalOptions, jqXHR ) {
  var key;
  originalOptions.data = originalOptions.data || {};
  key = options.localStorageKey = options.url + '?' + $.param(originalOptions.data);
  var value = localStorage.getItem(key);
  if(value)
  {
     //Still not working
    jqXHR.abort();//Abort this call
    options.success(JSON.parse(value));//Call the callback function
    return jqXHR();//return xhr for chaining (?)
  }
});

$('#logo').ajaxComplete(function(e,xhr,settings) {
//cache the request
  localStorage.setItem(settings.localStorageKey,xhr.responseText);
});
Run Code Online (Sandbox Code Playgroud)

这不符合预期.有时它确实如此,但代码中存在范围问题.我有什么方法可以伪造整个请求吗?这样回调机制就像它一样继续.就像是

Request => Hook Ajax调用(停止调用,设置响应)=>继续ajax

javascript ajax jquery caching local-storage

0
推荐指数
1
解决办法
2327
查看次数