我正在尝试为多个HTML页面创建缩略图图像,因此用户可以在打开链接之前了解HTML的外观.我在网上搜索但没有找到任何有用的东西.
这里有人可以提供一些提示吗?非常感谢!
我特别希望这在服务器端发生,因此客户端不需要加载页面
我一直在关注一些类似的问题(例如如何将变量设置为Bash命令的输出?),但是接受的答案似乎对我不起作用.我不确定我是否应该讨论其他人的问题或发布我自己的副本,所以如果我在这里选错了,请道歉.
我希望得到我正在整理的脚本中的许多命令的输出和退出状态.这是我一直在使用的一个例子:
cmd_output=$(rm $file)
exit_status=$?
if [ "${exit_status}" -eq 0 ]
then
log "Successfully removed the original" ${TAB_LEVEL}
else
fail "Failed to remove the original, the output was: \n ${cmd_output}"
fi
Run Code Online (Sandbox Code Playgroud)
日志和失败函数是:
# Usage: fail "Failure message"
function fail {
echo "FATAL ERROR: $1" >> "${LOG_DIR}/${LOG_FILE}"
exit 1
}
# Usage: log "Log message" 3 Where the tab-level is 3.
function log {
if (("${2}" > 0))
then
eval "printf ' %.0s' {1..$2}" >> "${LOG_DIR}/${LOG_FILE}"
fi
echo "$1" …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试找出2个Wordpress插件之间的集成:WooCommerce跟进电子邮件插件和Ninja Forms插件(最终目标是我们可以发送手动类型的后续电子邮件模板作为响应忍者表单的操作提交).我们正在使用Ninja Forms 3,它的价值.
在为Action类定义选项时,我向用户提供了模板列表,以便在定义操作时可以选择要发送的模板.要从后续电子邮件插件中获取电子邮件模板,我正在使用他们的API客户端,特别是该get_emails()方法(反过来,它转换为/emails在其API URL下对端点的GET调用).
问题是:在每个页面加载时ninja_forms_register_actions调用该操作,在此期间我实例化我的操作类.在__construct通话期间,我们会填充操作的设置,为此,我们会调用Follow Up Emails API.这会启动页面加载,在此期间ninja_forms_register_actions会调用操作...
虽然我确实预料到了这个问题,但我计划的解决方案并没有帮助:也就是说,我曾计划使用瞬态来存储API调用的结果,如下所示:
private static function _get_templates()
{
error_log('_get_templates() started - ' . microtime(true));
if (false === ($templates = get_transient(self::TEMPLATE_TRANSIENT))) {
error_log('_get_templates() fetching - ' . microtime(true));
$fue_api = self::fue_api();
$templates = $fue_api->get_emails();
set_transient(self::TEMPLATE_TRANSIENT, $templates, self::TEMPLATE_TRANSIENT_EXPIRY);
error_log('_get_templates() fetched - ' . microtime(true));
}
error_log('_get_templates() done - ' . microtime(true));
return $templates;
}
Run Code Online (Sandbox Code Playgroud)
但是我的日志中的结果如下:
[22-May-2016 23:53:33 UTC] _get_templates() started …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个脚本来批量标记一组用户在 RT 中具有特权。我在 RT wiki 上找到了一个脚本,用于将用户添加到组并赋予他们特权状态,然后删除了与添加到组有关的部分。我剩下的 perl 脚本是:
#!/usr/bin/perl
# Usage: ./rt_set_privileged.pl <username>
use strict;
use lib "/var/www/ticket.ourcompany.com/lib";
use RT;
use RT::User;
use RT::Interface::CLI;
RT::LoadConfig();
RT::Init();
# Create RT User Object
my $user = new RT::User($RT::SystemUser);
# Instantiate the user object with the user passed as parameter
my $usertoadd = $ARGV[0];
$user->Load( $usertoadd );
# Set the privileged flag (1=privileged, 0=unprivileged)
$user->SetPrivileged(1);
exit 1
Run Code Online (Sandbox Code Playgroud)
我有一个文件中的用户,每行一个用户名。我目前还不了解 perl,所以我尝试创建一个小 bash 脚本来遍历文件并按名称运行 perl 脚本一次。现在的 Bash 脚本:
#!/bin/bash
touch commands.sh
cat usernames.txt | while read …Run Code Online (Sandbox Code Playgroud) 我有一个javascript书签,我把它放在一起,使一个艰巨的任务更可忍受.基本上我正在浏览数百页的培训材料,并确保所有这些材料都已从Helvetica正确地换成Arial.小书签代码如下所示,但快速细分是它创建了一个mousemove事件监听器和一个小的,绝对定位的div.在mousemove事件中,div移动到新的鼠标位置(向下和向右偏移10px),使用elementFromPoint获取鼠标下的元素,并显示该元素的font-family属性.哦,它会根据Arial是否出现在属性中来改变它的背景颜色.
var bodyEl=document.getElementsByTagName("body")[0];
var displayDiv=document.createElement("div");
displayDiv.style.position="absolute";
displayDiv.style.top="0px";
displayDiv.style.top="0px";
bodyEl.appendChild(displayDiv);
function getStyle(el,styleProp) {
var camelize = function (str) {
return str.replace(/\-(\w)/g, function(str, letter){
return letter.toUpperCase();
});
};
if (el.currentStyle) {
return el.currentStyle[camelize(styleProp)];
} else if (document.defaultView && document.defaultView.getComputedStyle) {
return document.defaultView.getComputedStyle(el,null)
.getPropertyValue(styleProp);
} else {
return el.style[camelize(styleProp)];
}
}
function getTheElement(x,y) {return document.elementFromPoint(x,y);}
fn_displayFont=function displayFont(e) {
e = e || window.event;
var divX=e.pageX+10;
var divY=e.pageY+10;
var font=getStyle(getTheElement(e.pageX,e.pageY),"font-family");
if (font.toLowerCase().indexOf("arial") != -1) {
displayDiv.style.backgroundColor = "green";
} else {
displayDiv.style.backgroundColor = "red"; …Run Code Online (Sandbox Code Playgroud) 这与默认为 switch 语句中的第一个选项非常相似?,但关于 JS 而不是 PHP。
我有一个辅助函数,它为另一个函数包装了各种调用样式。被包装的函数至少需要一个,并且最多可以接受 4 个参数。这个最小代码示例很好地描述了我正在做的事情,它在我的 Chrome 和 FF 版本中运行良好。
function testSwitch(definition) {
var term, minLength, boundaryStart, boundaryEnd;
switch (definition.length) {
default:
case 4:
boundaryEnd = definition[3];
case 3:
boundaryStart = definition[2];
case 2:
minLength = definition[1];
case 1:
term = definition[0];
break;
case 0:
console.log('fail')
return;
}
console.log(term, minLength, boundaryStart, boundaryEnd);
}
Run Code Online (Sandbox Code Playgroud)
(在实际用例中,它们被传递给实际函数而不是 console.log)。所以这个想法是通过案例,允许提供太多参数(但忽略额外的参数),但如果提供的定义为空则失败。
所以我从我的测试中知道这似乎至少在某些浏览器中工作,我可以依靠它在最近的浏览器(例如 iOS/Android 设备、IE8+、Edge 等)上工作吗?我知道排除 break 语句是定义明确的行为并且使用相当广泛,但是我不太确定是否首先使用默认情况并且为空(例如,如果某些浏览器 JS 引擎会优化空默认情况,那么这不会对我有用,因为它在使用大小为 5 的数组调用时不起作用,例如)。
我正在开展一个项目,在该项目中,我们有与 Firebase 一起使用的预先存在的云功能。我们正在添加一个使用 firebase 云托管的小型 React SPA,这个 SPA 将与一些现有的公共云功能进行交互。
到目前为止,我们的工作方式是,我们在 Firebase 中有一个开发项目和一个生产项目。对于云功能,这很好用,我们设置了特定firebase functions:config:set于环境的配置,用于区分生产服务器和开发服务器。
问题在于托管 SPA 联系云功能。我已经看到很多关于如何访问托管代码中的环境配置的问题,例如这个:如何从 Firebase 托管的应用程序中引用 Firebase 函数配置变量?答案似乎是具有返回环境变量值的 firebase 函数,但对我来说,这只是将问题进一步推回了步骤。我完全理解,由于 SPA 在浏览器中运行,因此让此代码可以访问环境变量将是一个巨大的安全问题。
对于托管 SPA,我真正需要的唯一特定于环境的配置是云功能的基址。
例如,如果在我的云功能中我有
const functions = require('firebase-functions');
const express = require('express');
const test = express();
test.on('/hello/:target', (req, res) => {
res.send(`Hello ${req.params.target}`);
})
exports.test = functions.https.onRequest(test);
Run Code Online (Sandbox Code Playgroud)
然后部署后,此云功能可在https://us-central1-DEV-PROJECT-NAME.cloudfunctions.net/test/hello/world和https://us-central1-PROD-PROJECT-NAME.cloudfunctions .net/test/hello/world。我如何最好地为项目获得适当的根 url(https://us-central1-DEV-PROJECT-NAME.cloudfunctions.net或https://us-central1-PROD-PROJECT-NAME.cloudfunctions.net) SPA 部署到?
例如。是否有一些全局我可以在前端 js 代码中访问,我可以在其中执行以下操作:
const url = `${__FIREBASE_GLOBALS__.cloudFunctions.baseUrl}/test/hello/${input}`;
Run Code Online (Sandbox Code Playgroud)
并且是否根据托管应用程序部署到的项目正确定义了 url?
我win8_logo_small.png在Package.appxmanifestWindows 8商店项目的设置中指定了"小徽标" .当我创建商店包时,我收到此警告:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\AppxPackage\Microsoft.AppXPackage.Targets(1052,9):
warning APPX1621: A mixture of images matching logical name 'win8_logo_small.png' exists
in this project with and without the "scale" or "targetsize" qualifier specified.
For predictable runtime behavior, explicitly specify the scale or target size
in each image asset's file name.
Run Code Online (Sandbox Code Playgroud)
虽然这只是一个警告,但我想知道微软希望我做些什么,因为图像比例变体的名称是自动生成的:
win8_logo_small.scale-80.png
win8_logo_small.scale-100.png
...
win8_logo_small.targetsize-16.png
win8_logo_small.targetsize-32.png
Run Code Online (Sandbox Code Playgroud)
如果我将xxx.targetsize文件重命名为类似xxx.scale-###.png并将其添加到项目中,Visual Studio会自动将文件复制到xxx.targetsize-##.png!
这是可以解决的问题吗?它需要解决还是仅仅是Windows RT包编译器中的错误?
我在awk中使用以下语句,其中包含来自另一个命令的文本:
awk 'match($0,/(QUOTATION|TAX INVOICE|ADJUSTMENT NOTE|DELIVERY DOCKET|PICKING SLIP|REMITTANCE ADVICE|PURCHASE ORDER|STATEMENT)/) && NR<11 {print substr($0,RSTART,RLENGTH)}'
Run Code Online (Sandbox Code Playgroud)
这几乎可以满足我的需要(在输入的前10行中找到正则表达式中的一个单词并打印该单词).我需要做的主要是在没有匹配的情况下输出一些东西.例如,如果在前十行中找不到这些单词,则它将输出UNKNOWN.
我还需要将输出限制为第一个匹配,因为我需要确保每个输入文件的单行输出.head如果需要,我可以使用或提出另一个问题,我只在此处包含它,以防它影响如何输出不匹配文本.
我也没有把awk当作一个工具 - 如果有一个更简单的方法用sed或其他东西做这个我对它开放.
javascript ×3
bash ×2
ajax ×1
awk ×1
bookmarklet ×1
command-line ×1
css ×1
firebase ×1
html ×1
image ×1
ninja-forms ×1
perl ×1
php ×1
regex ×1
rt ×1
sed ×1
shell ×1
ubuntu ×1
windows-8 ×1
wordpress ×1