我和一些人一起有一个项目,我们有一个README.md文件,里面有一堆GitHub Flavored Markdown,它们在我们的GitHub页面上呈现.我们还建立了一个GitHub Pages分支,它在我们的GitHub组织的子域下托管,并在我们创建页面时使用自动页面生成器简单地加载到我们的README.md文件中.但是,我注意到当我更新README.md文件时,它不会更新项目页面.相反,我们必须转到GitHub设置选项卡并重新创建项目页面,README.md在我们这样做时重新加载文件.
此外,在阅读了关于GitHub项目目录页面上的文档文件之间的相对链接工作之后.我非常喜欢降价,因为它为我们的文档手动编写所有HTML节省了大量时间.但我想要的是能够拥有一个README.md文件,该文件能够包含位于其他文档文件的相对链接docs/*.md.我希望有一个简单的解决方案,以便我的其他文档文件也可以包含在我的gh-pages分支中,并在我的GitHub Pages子域下托管并呈现和/或主题化.
换句话说,我的问题是:
/docs/*.md我的Github上的页面并以某种方式呈现和/或主题化呢?
好的,所以我使用Jekyll构建了一个博客,您可以在文件中定义_config.yml可在所有模板/布局中访问的变量.我目前正在使用带有EJS模板和ejs-locals的Node.JS/Express(用于局部 /布局.我希望做一些类似于全局变量的东西,如果有人熟悉Jekyll的话.我有类似的变量网站的标题,(而不是网页标题),作者/公司名称,在我的所有网页上保持不变.site.title_config.yml
这是我目前正在做的一个例子:
exports.index = function(req, res){
res.render('index', {
siteTitle: 'My Website Title',
pageTitle: 'The Root Splash Page',
author: 'Cory Gross',
description: 'My app description',
indexSpecificData: someData
});
};
exports.home = function (req, res) {
res.render('home', {
siteTitle: 'My Website Title',
pageTitle: 'The Home Page',
author: 'Cory Gross',
description: 'My app description',
homeSpecificData: someOtherData
});
};
Run Code Online (Sandbox Code Playgroud)
我希望能够在一个地方定义像我的网站的标题,描述,作者等变量,并让他们通过EJS我的布局/模板访问,而无需通过他们的选项,每次调用res.render.有没有办法做到这一点,仍然允许我传递特定于每个页面的其他变量?
我正在重新开始进行Web开发,并且最近一直试图重新审视jscript的细微差别.我正在通过构建在Three.JS之上的THREEx扩展库的源代码,并注意到了这个功能
THREEx.KeyboardState.prototype.pressed = function(keyDesc)
{
var keys = keyDesc.split("+");
for(var i = 0; i < keys.length; i++){
var key = keys[i];
var pressed;
if( THREEx.KeyboardState.MODIFIERS.indexOf( key ) !== -1 ){
pressed = this.modifiers[key];
}else if( Object.keys(THREEx.KeyboardState.ALIAS).indexOf( key ) != -1 ){
pressed = this.keyCodes[ THREEx.KeyboardState.ALIAS[key] ];
}else {
pressed = this.keyCodes[key.toUpperCase().charCodeAt(0)];
}
if( !pressed) return false;
};
return true;
}
Run Code Online (Sandbox Code Playgroud)
我特别关注这里的线路:
if( THREEx.KeyboardState.MODIFIERS.indexOf( key ) !== -1 ){
Run Code Online (Sandbox Code Playgroud)
我不熟悉这个!==运算符.我检查了w3schools,他们的逻辑运算符列表中没有包含这个.我不确定这是否拼写错误,浏览器只是将其视为!=或者它是否有其他含义.另外我想知道这实际上是一个逻辑运算符还是它是某种组合,比如!+ ==?
我希望能够让用户提交任意JavaScript代码,然后将其发送到Node.JS服务器并安全执行,然后将输出发送回多个客户端(作为JSON).eval我想到了这个功能,但我知道这有多个安全问题(用户提交的代码可以访问Node的File API等).我见过一些项目,如Microsoft Web Sandbox和Google Caja,它们允许执行清理标记和脚本(用于在网站上嵌入第三方广告),但似乎这些是客户端工具,我不确定它们是否可以在Node中安全使用.
有没有一种标准的方法来沙盒并在Node中执行不受信任的JavaScript,从而获得输出.尝试做这个服务器端是错误的吗?
编辑:用户能够利用JavaScript的全部功能并不重要,事实上,最好能够选择将哪些API提供给用户代码.
编辑:我将继续使用我发现的内容进行更新.这个Sandcastle模块(bcoe/sandcastle)似乎旨在实现我的想法.不确定它有多安全,但由于我不是太重要,我想如果尝试的话.如果我能成功地做到这一点,我会添加自己的答案.
我一直在尝试使用Projector和Ray类来进行一些碰撞检测演示.我已经开始尝试使用鼠标选择对象或拖动它们.我已经查看了使用这些对象的示例,但是它们似乎没有任何评论可以解释投影仪和Ray正在做什么的一些方法.我有几个问题,我希望有人能回答这些问题.
究竟发生了什么,Projector.projectVector()和Projector.unprojectVector()有什么区别?我注意到,在使用投影仪和光线对象的所有示例中,似乎在创建光线之前调用了unproject方法.你什么时候使用projectVector?
我在此演示中使用以下代码在使用鼠标拖动时旋转立方体.当我用mouse3D和相机取消投影然后创建Ray时,有人能用简单的术语解释究竟发生了什么.光线是否依赖于对unprojectVector()的调用
/** Event fired when the mouse button is pressed down */
function onDocumentMouseDown(event) {
event.preventDefault();
mouseDown = true;
mouse3D.x = mouse2D.x = mouseDown2D.x = (event.clientX / window.innerWidth) * 2 - 1;
mouse3D.y = mouse2D.y = mouseDown2D.y = -(event.clientY / window.innerHeight) * 2 + 1;
mouse3D.z = 0.5;
/** Project from camera through the mouse and create a ray */
projector.unprojectVector(mouse3D, camera);
var ray = new THREE.Ray(camera.position, mouse3D.subSelf(camera.position).normalize());
var intersects = ray.intersectObject(crateMesh); // …Run Code Online (Sandbox Code Playgroud) 我在想,对于一些项目我做60fps并不是完全需要的.我想我可以有更多的物体和物体以30fps运行,如果我能让它以该帧速率平稳运行.我想如果我在three.js中编辑了requestAnimationFrame垫片,我可以将它限制为30.但是我想知道是否有更好的方法来使用提供的three.js本身.此外,这会给我带来我正在思考的性能提升.我能以30fps的速度渲染两倍于60fps的物体吗?我知道在30和60之间运行的东西之间的区别,但是我能够以平稳的恒定30fps运行吗?
我通常使用WebGLRenderer,如果需要,可以回退到Canvas,除了专门针对一个的项目,通常是webgl着色器项目.
好的,所以我正在为我的网络课程编程,我必须使用UDP在Java中实现一个项目.我们正在实现一个HTTP服务器和客户端以及一个以特定概率破坏数据包的'gremlin'函数.HTTP服务器必须将大文件分成多个段,在应用层通过UDP发送到客户端.客户端必须在应用层重新组合收到的段.但我想知道的是,如果UDP根据定义不可靠,为什么我必须在这里模拟不可靠性?
我的第一个想法是,也许只是因为我的导师在我们的情况下计算,客户端和服务器都将在同一台机器上运行,并且文件将从一个进程转移到另一个进程100%可靠甚至通过UDP,因为它是在同一台计算机上的两个进程之间.
这使我怀疑是否UDP,失去一个包,损坏的数据包,或提供其无序如果服务器和客户端是在同一台机器上的两个进程和它没有在实际的网络出去.
我也想知道实际丢失数据包的机会是什么,让它损坏,或者实际上它们在现实中无序发送通常会在两个地理位置较远的主机之间通过互联网.
非常感谢任何可以为我解释这些问题的人.
我正在使用Node.JS和Express在Web应用程序上与一个小组合作.我们需要能够生成可以打印为硬拷贝和硬拷贝形式的报告.我们希望在服务器上为报告和手写表单动态生成PDF.我们目前正在服务器上使用EJS模板.
我认为能够使用模板来构建表单/报告并从生成的HTML中生成PDF会很方便,但是我这样做的选项在我能找到的范围内看起来有限.我看了两种不同的解决方案:
编辑:我找到了另一个Node.JS模块,它能够从HTML生成名为node-wkhtml的 PDF,它依赖于wkhtmltopdf.我现在正在比较使用node-phantom和node-wkhtml.我已经能够在节点服务器上生成具有这两者的PDF,并且它们似乎都能够满足我的需要.
我已经看到了一些使用PhantomJS从网站呈现PDF文档的例子,但我见过的所有例子都使用了一个URL而不是一串HTML.我不确定是否可以使用模板进行此工作以动态生成PDF报告.
当我收到报告请求时,我希望从EJS模板生成HTML,并使用它生成PDF.反正我是否使用Phantom在服务器上完全动态创建页面而不提出请求?
我的另一个选择是使用PDFkit,它允许动态生成PDF,但它是一个类似画布的API,据我所知,它并不真正支持任何模板概念.
有谁知道我是否可以使用PhantomJS和Node从模板生成的HTML动态生成PDF?或者是否有人知道我可以用来从我的Node/Express后端生成和提供可打印报告/表单的任何其他解决方案.
我正在尝试建立一个太阳能系统的比例模型.我想看看是否有人可以向我解释旋转速度的工作原理.这是重要的一部分:
objects[index].rotation.y += calculateRotationSpeed(value.radius,value.revolution) * delta;
Run Code Online (Sandbox Code Playgroud)
转速如何与实际时间相关?因此,如果您的速度为1,那么每毫秒的运动速度是1 px吗?或者,如果你的速度为0.1,那么每秒的px是否小于px?
基本上我正在尝试计算行星的正确旋转速度,考虑到它们的半径和一天中的小时数.因此,如果你在地球上,它将在24小时内完成1次旋转.这是我写的现在正在进行计算的函数:
/* In a day */
function calculateRotationSpeed(radius,hrs,delta) {
var cir = findCircumference(radius);
if(delta) {
var d = delta;
} else {
var d = 1;
}
var ms = hrs2ms(hrs) * d;
var pxPerMS = km2px(cir) / ms;
return pxPerMS;
}
Run Code Online (Sandbox Code Playgroud)
我试了一下它似乎仍然移动得太快了.我还需要类似于计算轨道速度的东西.
根据我的理解,当一个路由器提供另一个旧信息时,会发生计数到无穷大,这些旧信息继续通过网络向无限远传播.根据我的阅读,删除链接时肯定会发生这种情况.

因此,在此示例中,Bellman-Ford算法将针对每个路由器进行收敛,它们将具有彼此的条目.R2将知道它可以以1的成本到达R3,并且R1将知道它可以通过R2以2的成本到达R3.
如果R2和R3之间的链路断开连接,则R2将知道它不能再通过该链路到达R3并将其从表中删除.在它可以发送任何更新之前,它可能会收到来自R1的更新,它将宣传它可以以2的成本到达R3.R2可以以1的成本到达R1,因此它将更新到R3通过R1,成本为3.然后,R1将从R2接收更新,并将其成本更新为4.然后,他们将继续向无穷大提供不良信息.
我所看到的一件事提到了一些地方,除了只是一个离线的链接,比如改变一个链接的成本,还有其他可以计数到无穷大的原因.我开始考虑这个问题,从我所知道的情况来看,在我看来,链接的成本增加可能会导致问题.但是,我没有看到降低成本可能导致问题.
例如,在上面的示例中,当算法收敛并且R2具有到成本为1的到R3的路由时,并且R1具有到R2经由R2的路由,成本为2.如果R2和R3之间的成本增加到5.然后这会导致同样的问题,R2可以从R1获得更新广告,成本为2,并通过R1,R1将其成本更改为3,然后通过R2将其路由更改为4,依此类推.但是,如果成本在融合路线上降低,则不会导致变化.它是否正确?链接之间的成本增加可能导致问题,而不是降低成本?还有其他可能的原因吗?将路由器脱机与链接出去是一样的吗?
javascript ×4
node.js ×3
three.js ×3
networking ×2
3d ×1
algorithm ×1
bellman-ford ×1
canvas ×1
ejs ×1
eval ×1
express ×1
git ×1
github ×1
github-pages ×1
html5 ×1
orbit ×1
packet-loss ×1
pdf ×1
phantomjs ×1
rotation ×1
routing ×1
sails.js ×1
sandbox ×1
sanitize ×1
syntax ×1
templates ×1
udp ×1
webhooks ×1