小编Osc*_*son的帖子

节点的模板引擎不是玉

Jade确实非常整洁,但我个人不喜欢它的语法和外观.是的,只能写:

body
  h1 Hello
  p This is 
    b bold
Run Code Online (Sandbox Code Playgroud)

这很酷,但我更喜欢HTML/XML的外观和感觉.它被认为是人类和机器可读的整体,我认为它更容易一目了然和理解.

是否有任何模板引擎更像是:

<body>
  <h1>{title}</h1>
  <p>{content}</p>
</body>
Run Code Online (Sandbox Code Playgroud)

使用相同的Jade概念:

res.render('index', {
  title:pageTitle,
  content:pageContent
});
Run Code Online (Sandbox Code Playgroud)

html javascript templates node.js pug

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

alt + backspace删除vim中的单词

如何重新映射alt+backspace以删除像native*NIX文本操作这样的单词?我检查了这个帖子:在vim命令行中使用alt + backspace键来删除单词

例如:cmap <a-bs> <c-w>并且:imap <A-BS> <C-W>不做任何事情.接受的答案实际上是甚至没有重新映射它,而是使用它ctrl+w.由于VIM alt+backspace没有做任何事情,我宁愿将其重新映射到我习惯的东西.

我正在使用基于终端的VIM(特别是在iTerm中)

vim customization

10
推荐指数
2
解决办法
1637
查看次数

JavaScript中的私有和公共单词是多么保守

每次我构建一个JS库我都有这样的概念:

(function(window,undefined){
  var LibName = function(){
    var privateAPI = {
      method: function(){}
    };
    var publicAPI = {
      publicMethod: function(){}
    };
    return publicAPI;
  }
  window.LibName = LibName;
})();
Run Code Online (Sandbox Code Playgroud)

但我一直渴望做到:

(function(window,undefined){
  var LibName = function(){
    var private = {
      method: function(){}
    };
    var public = {
      publicMethod: function(){}
    };
    return public;
  }
  window.LibName = LibName;
})();
Run Code Online (Sandbox Code Playgroud)

但我从来没有这样做,因为那些是保留的话.他们有多保留?浏览器会失败吗?在我的测试中,一切似乎都有效,但我错过了什么?

javascript oop private public

9
推荐指数
2
解决办法
4586
查看次数

当您在网页上滚动时淡出一个部分并淡入下一部分

我有一个网站,我希望每个部分都占据屏幕,当您向下滚动页面时,这些部分会随着下一个部分进入视图而淡出。我正在努力思考这个数学需要如何运作。

对于一个部分来说,很容易,基本上是元素的高度和距顶部的距离来获取不透明度百分比。然而,我只是不太清楚其他部分的数学原理。我需要第 2 部分开始淡入,因为第 1 部分正在淡出。

我不想滚动。我只是想要一个滚动效果。我不想覆盖默认的滚动行为,而是想在滚动时以动画形式输入/输出,其中某个 Y 滚动值 = 某个 CSS 值,而不是某种“断点”,它会动画到新的“幻灯片”。

例如,为了获得适当的效果,我的数学将行的高度除以 2,以便它淡出 50%,因为下一部分应该淡出 50%。但是,到目前为止,数学对其他部分不起作用。

该网站使用 vanilla JS,因为它应该是一个简单的寻呼机。

下面的例子:

    (function () {
        window.addEventListener('scroll', () => {
          const rows = document.querySelectorAll('.row');

          rows.forEach(function (row, index) {
            const distanceToTop = window.pageYOffset;
            const elementHeight = row.offsetHeight * (index + 1) / 2;
            row.style.opacity = ((elementHeight - distanceToTop) / elementHeight * 100) / 100;
          });
        });
      })();
Run Code Online (Sandbox Code Playgroud)
    * {
      box-sizing: border-box;
    }

    body {
      margin: 0;
      padding: 0 0 0 0;
      font-family: sans-serif; …
Run Code Online (Sandbox Code Playgroud)

html javascript css

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

如何使用JavaScript估计字符串的磁盘大小?

我需要尝试在JavaScript中估计文本字符串的DISK大小(可以是原始文本或图像/音频/等的Base64编码字符串).我不知道如何估计这一点.谷歌搜索我唯一可以找到的是.length我认为也许StackOverflow上的某个人可能知道......

我需要知道的原因是我有一个localStorage脚本需要(或者很想拥有)能够检查用户何时接近他的5MB(或IE中的10MB)配额并提示他们增加域的最大大小.因此,如果一个用户点击,比方说,它会提示4.5MB的数据

你的浏览器接近5MB数据上限.请通过以下方式增加最大数据... [有关为浏览器增加数据的说明]

javascript string base64 diskspace string-length

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

恢复到特定的sha或commit

我正在尝试恢复到特定的提交(3d5575f8e4c97ddab8ad5d540fee4664c04db75d),但是当我这样做时:

git revert 3d5575f8e4c97ddab8ad5d540fee4664c04db75d
Run Code Online (Sandbox Code Playgroud)

它说:

fatal: 'revert' is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>' as
appropriate to mark resolution and make a commit, or use 'git commit -a'.
Run Code Online (Sandbox Code Playgroud)

我不关心那些变化,我也丢失那些变化,恢复到那个提交(软恢复,不想丢失文件)然后重新修改.我当地的东西都搞砸了.有帮助吗?

git rollback revert

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

在JavaScript中,除了字符串之外,为什么没有任何对象彼此相等?

JS中的所有东西都是一个对象.我一直都知道,我完全理解这一点.我知道为什么{} !== {}.这是两个不同的对象.就像你写出来一样new Object() == new Object().

其他一些例子:

{} == {} // => false
[] == [] // => false
/ / == / / // => false
new String() == new String() // => false
Run Code Online (Sandbox Code Playgroud)

但是,Strings也是对象(这就是为什么你可以做''.replace()和扩展它们),为什么这个工作:

'' == '' // => true
Run Code Online (Sandbox Code Playgroud)

显然,如果这不起作用,比较两个字符串会非常头疼,但这似乎与语言的其余部分不一致.在内部,发生了什么?它只是一次性还是有其他概念背后的?

javascript ecmascript-5

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

使用jQuery/JavaScript进行关键组合

我很好奇我是如何使用以下jQuery插件代码在这个问题的底部写的,可以实现关键的组合.到目前为止它是如何工作的,它允许用户只需通过正常的jQuery语法创建键命令,并为键命令提供事件,如下所示:

$(window).jkey('a',function(){
   alert('you pressed the a key!');
});
Run Code Online (Sandbox Code Playgroud)

要么

$(window).jkey('b c d',function(){
   alert('you pressed either the b, c, or d key!');
});
Run Code Online (Sandbox Code Playgroud)

最后我想要的是能力,但无法弄清楚:

$(window).jkey('alt+n',function(){
   alert('you pressed alt+n!');
});
Run Code Online (Sandbox Code Playgroud)

我知道如何在插件外部执行此操作(在keyup上设置var false并在keydown上设置var true并检查当你按另一个键时var是否为真),但我不知道如何执行此操作你不知道将要按什么键和多少键.如何添加此支持?我希望能够让他们做这样的事情alt+shift+a或者a+s+d+f,如果他们想要的.我无法理解如何实现这一点.有任何想法吗?

我将把它作为一个开源插件发布,我很乐意给予任何给予我权利,工作的人,在博客文章和代码中回答一些信用.提前致谢!

(function($) {
  $.fn.jkey = function(keyCombo,callback) {
    if(keyCombo.indexOf(' ') > -1){ //If multiple keys are selected
        var keySplit = keyCombo.split(' ');
    }
    else{ //Else just store this single key
        var keySplit = [keyCombo];
    }
    for(x in keySplit){ //For each key in the array...

        if(keySplit[x].indexOf('+') > …
Run Code Online (Sandbox Code Playgroud)

javascript jquery plugins keyboard-shortcuts jkey

7
推荐指数
2
解决办法
3799
查看次数

从MS Word粘贴到Textarea

我正在使用https://github.com/akzhan/jwysiwyg/,我想从Word实现粘贴,但我不确定要寻找什么以及如何处理它.我正在寻找正则表达式模式或要捕获的字符列表以及用它们替换它们的内容.

想法?

javascript jquery wysiwyg ms-word paste

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

在JavaScript中更改函数"this"值

我正在用一些方法构建一个库,我有一个方法extend和一个方法load.我喜欢它像这样工作:

Core.extend('name',function(message){
  this.innerHTML = message;
});
Run Code Online (Sandbox Code Playgroud)

然后实际运行这个你做的:

Core.load('name','Hey!');
Run Code Online (Sandbox Code Playgroud)

Core.extend()<div>根据名称创建一个具有唯一ID 的元素.我想让this==生成<div>.

我知道.call()并且.apply()很明显,但它不会改变this它只会改变扩展中的回调参数.这是扩展和加载的代码:

Core.extend()

var extend = function(name,func){
  name = name || '';
  func = func || function(){};
  if(typeof extensions[name] == 'undefined'){
    extensions[name] = func;
  }
  else{
    if(errors){
      throw new Error('Core extend() error: the extension "'+name+'" already exists');
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

Core.load()

注意这是主线: extensions[name].call(this,widgetElement,params);

var load = function(name,params,sel){
  name = name || '';
  params = params …
Run Code Online (Sandbox Code Playgroud)

javascript this

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