今天,在一篇名为“ 更多选项来帮助网站在Google搜索上预览其内容的博客”中,Google宣布了Google搜索引擎的新行为。我感兴趣的部分是Googlebot现在将按如下方式解释HTML属性data-nosnippet:
要显示帮助限制的新方法,其页面的一部分都可以作为一个片断是“
data-nosnippet上” HTML属性span,div和section元素。这样,您可以防止HTML页面的该部分显示在[Google搜索引擎结果页面]的文本片段内。例如:
Run Code Online (Sandbox Code Playgroud)<p><span data-nosnippet>Harry Houdini</span> is undoubtedly the most famous magician ever to live.</p>
我很惊讶他们选择使用以prefix开头的属性data-。这是WHATWG的HTML生活标准对data-属性的描述(强调我的意思):
自定义数据属性是没有名称空间的属性,其名称以字符串“
data-” [...] 开头自定义数据属性旨在存储页面或应用程序专用的自定义数据,状态,注释和类似内容,对于这些自定义数据,状态,注释和类似内容,没有更多合适的属性或元素。
作为Web开发人员,我一直认为data-前缀的目的是为Web开发人员提供一个仅用于其CSS和脚本进行操作的名称空间。没有data-prefex的自定义HTML属性不是面向未来的,它可能在未来的浏览器或未来的搜索引擎机器人中突然具有意义。
Googlebot似乎违反了这一约定,现在选择查找和解释data-nosnippetHTML属性。作为网络开发人员,我们再也无法确定data-属性是“页面或应用程序专用的”,也许Google将来会再次为另一个data-属性执行此操作!
data-这种方式解释data-属性的人吗?或者这艘船已经航行了,浏览器和bot是否已经在解释属性?Django >= 3.1 支持新的JSONField模型字段。我正在使用这样的一个:
from django.db import models
class Example(models.Model):
foobar = models.JSONField()
Run Code Online (Sandbox Code Playgroud)
我还将此模型包含在 Django 的管理部分中。然而,该字段只是一个包含 JSON 的简单文本区域,打印得并不漂亮。
我怎样才能确保 Django 管理部分中显示的 JSON 打印得很好,带有缩进,如下所示:
{
"example": {
"a": 1,
"b": 2
}
}
Run Code Online (Sandbox Code Playgroud) 我还在学习C,我必须在某些方面误解指针.
我的印象是,下面的线将通过复制存储在内存地址下l->first到temp.它们都是struct list_el*指针,所以我看不出问题.
struct list_elt * temp;
temp = l->first;
Run Code Online (Sandbox Code Playgroud)
运行我的示例代码给了我一个无限循环:
user@machine:~$ gcc question.c
user@machine:~$ ./a.out | head
append(): l->first->val: 30, l->first->next == NULL: 1
main() : l->first->val: 30, l->first->next == NULL: 1
print() : l->first->val: 30, l->first->next == NULL: 1
print() : temp->val: 30, temp->next == NULL: 0
print() : temp->val: 30, temp->next == NULL: 0
print() : temp->val: 30, temp->next == NULL: 0
print() : temp->val: 30, temp->next == NULL: 0
print() …Run Code Online (Sandbox Code Playgroud) 我正在创建一个应用程序,需要通过PHP脚本将大图像转换为缩略图,然后将其编码为base64,以便我可以通过json将其发送到我的Android应用程序.我在调整图像大小时遇到问题.我需要PHP脚本来帮助我做到这一点
我试图运行我的代码直到Esc被按下.因此我ReadKey在我的控制台中使用
var input = Console.ReadKey();
do
{
} while (input.Key != ConsoleKey.Escape);
Run Code Online (Sandbox Code Playgroud)
但是在"ConsoleKey"它说,在'bool'中不可能使用ConsoleKey.我该如何解决这个问题?或者我应该使用什么呢?
我希望能够同时看到Firefox的开发人员工具的控制台和调试器选项卡.它们都应该与同一页面相关.我怎样才能做到这一点?
我想更改部署应用程序时发生的默认openshift 503页面.我确实找到了这个解决方案,但我不知道在哪里放python脚本.
我只运行PHP 5.4应用程序(没有墨盒),如果这很重要的话.
我开发了一个 Firefox 扩展,其中包含使用 SDK 的侧边栏。但是,如果我在侧边栏中右键单击并选择“检查元素”,我的终端中会出现以下错误:
JavaScript error: chrome://browser/content/nsContextMenu.js, line 570: TypeError: gBrowser is null
Run Code Online (Sandbox Code Playgroud)
不用说,什么也没有发生,开发者工具也没有出现。
我正在使用 SDK 创建侧边栏,如下所示:
require("sdk/ui/sidebar").Sidebar({ /* etc */ });
Run Code Online (Sandbox Code Playgroud)
有没有办法打开侧边栏的开发工具?
当我运行一个命令时git gc,我收到这样的消息:
$ git fetch
Auto packing the repository in background for optimum performance.
See "git help gc" for manual housekeeping.
Run Code Online (Sandbox Code Playgroud)
看起来Git的新版本现在在后台运行自动打包,这是一个很好的功能!如果我git gc手动运行,我会收到以下消息:
$ git gc
fatal: gc is already running on machine 'machinename' pid 14009 (use --force if not)
Run Code Online (Sandbox Code Playgroud)
这是有道理的.但是,我非常希望能够以gc某种方式观察正在运行背景的进度?
显然,我可以运行类似的东西while ! git gc ; do sleep 1s ; done,但这并不能给我提供与Git进度指示器相同的信息,并且它会自动运行一段额外的时间.
我想断言两个字典是相等的,使用 Python 的unittest,但忽略字典中某些键的值,使用方便的语法,如下所示:
from unittest import TestCase
class Example(TestCase):
def test_example(self):
result = foobar()
self.assertEqual(
result,
{
"name": "John Smith",
"year_of_birth": 1980,
"image_url": ignore(), # how to do this?
"unique_id": ignore(), #
},
)
Run Code Online (Sandbox Code Playgroud)
明确地说,我想检查所有四个键是否存在,我想检查"name"and的值"year_of_birth",(但不是"image_url"或"unique_id“),我想检查是否不存在其他键。
我知道我可以result在这里修改"image_url"and的键值对"unique_id",但我想要更方便的东西,不修改原始字典。
(这是受Test::DeepPerl 5 的启发。)