小编res*_*ive的帖子

在Jekyll的markdown代码块中转换双花括号

我正在使用Jekyll创建一个文档站点,其中我试图记录一些包含句柄式语法的代码.例如{{foo}}.问题是Jekyll使用液体标签,无论我做什么,我的双层玻璃都会被液体处理器撕掉.

顺便说一句,我使用kramdown作为降价处理器.

这是我尝试过的东西:

{% highlight html linenos %}
  Hello, my name is {{name}}.
{% endhighlight %}
Run Code Online (Sandbox Code Playgroud)

这个完全删除了{{name}}部分,因为它认为它是对液体变量的引用.

我也试过这个:

{% highlight html linenos %}
  Hello, my name is \{\{name\}\}.
{% endhighlight %}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我试图逃避花括号,但结果是斜杠被渲染到页面中.

我甚至试过这个:

{% highlight html linenos %}
  Hello, my name is <span>{</span>{name}}.
{% endhighlight %}
Run Code Online (Sandbox Code Playgroud)

不可否认,这个非常愚蠢.在这种情况下,因为我已将语法指定为html(它需要),所以span标记将呈现到页面中.

那么我可以如何解决这个问题呢?

markdown liquid jekyll kramdown

73
推荐指数
5
解决办法
9675
查看次数

如何防止iOS键盘使用CSS或JS将视图推离屏幕

我有一个响应式网页,当您点按一个按钮时会打开一个模态.当模态打开时,它被设置为使用固定定位占据页面的整个宽度和高度.模态中还有一个输入字段.

在iOS设备上,当输入字段被聚焦时,键盘将打开.然而,在打开时,它实际上推动了完整的文档了出来,使得我的网页的一半以上去的视口顶部的方式.我可以确认实际的html标签本身已被推高以补偿键盘,并且它没有通过CSS或JavaScript发生.

有没有人见过这个,如果有的话,有没有办法防止它,或在键盘打开后重新定位的东西?这是一个问题,因为我需要用户能够在模态顶部看到内容,同时,我想自动聚焦输入字段.

javascript css responsive

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

如何检索本机html表单提交的进度?

我正在为Rails应用程序做一些前端工作,我不会弄乱后端架构.基本上,我应该允许用户上传文件并使该提交基本上通过CarrierWave处理的表单直接进入亚马逊.如果你曾试图用ajax做同样的事情,你会知道这几乎是不可能的.

这让我在这里:我需要能够调用.submit()一个html表单元素,然后挂钩上传的进程,就好像我正在侦听XMLHttpRequest上的"progress"事件.

原谅我没有显示大量的代码.我真的只是在寻找两件非常简单的事情.

  1. 是否可以捕获表单的本机进度事件?
  2. 如果是这样,基本技术是什么?它简单form.addEventListener('progress', function () {...})吗?(< - 顺便说一下,这不起作用.)

html javascript forms

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

如何按属性值而不是属性名查询元素

所以这是一个有趣的,很可能无法有效地完成.但我有兴趣找到一种有效的方法来查询文档中具有任何属性的特定值集的所有html元素.所以,例如,而不是这个:

document.querySelectorAll('[attrName]');
Run Code Online (Sandbox Code Playgroud)

我正在寻找以下伪代码的等价物:

document.querySelectorAll('[*=specificValue]');
Run Code Online (Sandbox Code Playgroud)

所以基本上结果将是具有任何属性的所有元素,其值与"specificValue"匹配.我知道有很多方法可以做到这一点,例如:

var all = document.querySelectorAll('*');
var matches = [];
var attrs;
for (var i = 0; i < all.length; i += 1) {
  attrs = Array.prototype.slice.call(all[i].attributes);
  for (var j = 0; j < attrs.length; j += 1) {
    if (attrs[j].value === 'specificValue') {
      matches.push(all[i]);
      break;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,我真的很想避免分析这样的每一个html元素.有任何想法吗?

编辑:

感谢目前为止所有的帮助.在太多人给出替代建议之前,我应该解释一下这是什么.基本上,这是一个实验.我的想法是,我可能能够像Ember.js中那样创建实时的对象到数据绑定,但不必编译模板,您可以使用常规的html属性并在值本身中使用语法标记应该创建一个绑定.例如:<a href="{{linkLocation}}"></a>.我认为如果能够有效地选择相关元素,这可能会很有趣.显然我知道循环必须在某个地方发生.但是,如果浏览器正在运行本机迭代,我宁愿使用我自己的JavaScript循环.我只是不确定是否有一些我不知道的"秘密"选择器语法,或者是否有人能想到任何其他很酷的技巧.

html javascript

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

在“ npm start”中使用〜/ .bashrc中的环境变量?

抱歉,如果这是重复的。我试图找到一个类似的问题,但没有。细目如下:

我需要在正在构建的程序包中使用秘密密钥,并且我不想发布它,因此我试图将其设置为本地bash环境变量。在我的.bashrc文件中,我有这个:

# Obviously this is not the REAL key, just an example
MY_KEY="1111111111111111"
Run Code Online (Sandbox Code Playgroud)

然后在我的Gulpfile中,我有一个名为“ dev”的任务。为了简单起见,假设它看起来像这样:

gulp.task('dev', function () {
  console.log(process.env.SECRET_KEY);
});
Run Code Online (Sandbox Code Playgroud)

然后,为了使密钥进入环境,我的package.json中包含以下内容:

"scripts": {
  "start": "SECRET_KEY=$MY_KEY gulp dev"
}
Run Code Online (Sandbox Code Playgroud)

所以问题是,当我运行命令时npm start,我的gulp任务记录undefined了密钥。但是,当我手动运行命令时SECRET_KEY=$MY_KEY gulp dev,gulp任务将记录日志1111111111111111。因此,由于某种原因,npm start无法正确访问我的bash变量并将其传递到Node环境中。有没有办法使这项工作?

bash node.js npm

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

循环/递归和递归之间有什么区别?

我在Clojure文档中找不到答案。我是Clojure的新手,似乎您可以recur两种不同的方式使用并且基本上得到相同的结果。

范例1:

(defn my-function [num]
  (if (> num 10)
    num
    (recur (+ num 1))))
Run Code Online (Sandbox Code Playgroud)

范例2:

(defn my-function [num]
  (loop [cnt num]
    (if (> cnt 10)
      cnt
      (recur (+ cnt 1)))))
Run Code Online (Sandbox Code Playgroud)

据我所知,这两种形式似乎做的完全相同。我知道,recur总体上讲,这样做的原因是好的,因为在适当的情况下,编译器可以破解某种伪尾部调用优化方法,我非常喜欢并且希望尽可能多地利用它。所以这是我的问题:

  1. loop如果recur没有它,似乎什么也可以使用?
  2. 是否loop仅创建“递归范围”,就像let创建迷你范围一样?
  3. 如果是这样,我仍然可以不使用而获得尾递归收益loop吗?

recursion tail-recursion clojure tail-call-optimization

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

有没有办法在babelify中关闭"超级之前不允许这样的规则"?

我正在使用Gulp运行babelify 7.2.0并且我在以下代码中收到错误:

class One {}

class Two extends One {
  constructor() {
    this.name = 'John';
  }
}
Run Code Online (Sandbox Code Playgroud)

以下是错误的关键:

SyntaxError: [the file path in question]: 'this' is not allowed before super()
  20 | class Two extends One {
  21 |   constructor() {
> 22 |     this.name = 'John';
     |     ^
  23 |   }
  24 | }
  25 | 
Run Code Online (Sandbox Code Playgroud)

在我看来,这不应该被解雇,因为我根本没有super在构造函数中进行任何调用,因此没有冲突的风险.我已经在Github上提交了一个问题,但我想知道是否有办法可以在同一时间关闭它.

javascript ecmascript-6 gulp babeljs

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

如何从babel-core中获取被转换的字符串?

我正在尝试使用npm的babel,我认为我需要的包是babel-core.具体来说,我想要做的是传递一串ES6代码并让它将一串转换后的代码交给我.而已.你认为这很简单,但我无法用文档来解决这个问题.根据我的阅读,我应该能够这样做:

var babel = require('babel-core');
var code = 'x => x + 1';
var result = babel.transform(code);
Run Code Online (Sandbox Code Playgroud)

但问题是,结果是一个包含AST的对象,而不是一个字符串.我试图在该对象上运行transformFromAst,但这也不起作用.任何人都可以帮我获得实际的字符串吗?

javascript node.js npm babeljs

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