小编Fli*_*imm的帖子

Google的data-nosnippet是否违反了“ data-”属性前缀的约定?这是第一个这样做吗?

今天,在一篇名为“ 更多选项来帮助网站在Google搜索上预览其内容的博客”中,Google宣布了Google搜索引擎的新行为。我感兴趣的部分是Googlebot现在将按如下方式解释HTML属性data-nosnippet

要显示帮助限制的新方法,其页面的一部分都可以作为一个片断是“ data-nosnippet上” HTML属性spandivsection元素。这样,您可以防止HTML页面的该部分显示在[Google搜索引擎结果页面]的文本片段内。

例如:

<p><span data-nosnippet>Harry Houdini</span> is undoubtedly the most famous magician ever to live.</p>
Run Code Online (Sandbox Code Playgroud)

我很惊讶他们选择使用以prefix开头的属性data-。这是WHATWGHTML生活标准data-属性的描述(强调我的意思):

自定义数据属性是没有名称空间的属性,其名称以字符串“ data-” [...] 开头

自定义数据属性旨在存储页面或应用程序专用的自定义数据,状态,注释和类似内容,对于这些自定义数据,状态,注释和类似内容,没有更多合适的属性或元素。

作为Web开发人员,我一直认为data-前缀的目的是为Web开发人员提供一个仅用于其CSS和脚本进行操作的名称空间。没有data-prefex的自定义HTML属性不是面向未来的,它可能在未来的浏览器或未来的搜索引擎机器人中突然具有意义。

Googlebot似乎违反了这一约定,现在选择查找和解释data-nosnippetHTML属性。作为网络开发人员,我们再也无法确定data-属性是“页面或应用程序专用的”,也许Google将来会再次为另一个data-属性执行此操作!

  • 我的解释正确吗?
  • Googlebot是第一个以data-这种方式解释data-属性的人吗?或者这艘船已经航行了,浏览器和bot是否已经在解释属性?

html custom-data-attribute

6
推荐指数
0
解决办法
157
查看次数

Django 管理中的漂亮打印 d​​jango.db.models.JSONField ?

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)

django

6
推荐指数
2
解决办法
5082
查看次数

将struct指针元素复制到指针似乎会破坏它

我还在学习C,我必须在某些方面误解指针.

我的印象是,下面的线将通过复制存储在内存地址下l->firsttemp.它们都是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)

c

5
推荐指数
2
解决办法
581
查看次数

如何通过PHP脚本调整图像大小

我正在创建一个应用程序,需要通过PHP脚本将大图像转换为缩略图,然后将其编码为base64,以便我可以通过json将其发送到我的Android应用程序.我在调整图像大小时遇到​​问题.我需要PHP脚本来帮助我做到这一点

php base64 image

5
推荐指数
2
解决办法
9873
查看次数

没有按下按键时,ReadKey会执行某些操作

我试图运行我的代码直到Esc被按下.因此我ReadKey在我的控制台中使用

var input = Console.ReadKey();
do
{

} while (input.Key != ConsoleKey.Escape);
Run Code Online (Sandbox Code Playgroud)

但是在"ConsoleKey"它说,在'bool'中不可能使用ConsoleKey.我该如何解决这个问题?或者我应该使用什么呢?

c# console console-application console.readkey readkey

5
推荐指数
2
解决办法
7998
查看次数

如何在Firefox中同时打开Web控制台和调试器?

我希望能够同时看到Firefox的开发人员工具的控制台和调试器选项卡.它们都应该与同一页面相关.我怎样才能做到这一点?

firefox firefox-developer-tools

5
推荐指数
3
解决办法
272
查看次数

如何在OpenShift上创建自定义503页面?

我想更改部署应用程序时发生的默认openshift 503页面.我确实找到了这个解决方案,但我不知道在哪里放python脚本.

我只运行PHP 5.4应用程序(没有墨盒),如果这很重要的话.

openshift

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

如何在我的扩展程序侧边栏中打开 Firefox 开发者工具?

我开发了一个 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)

有没有办法打开侧边栏的开发工具?

firefox-addon firefox-addon-sdk

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

如何在后台查看git gc的进度?

当我运行一个命令时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进度指示器相同的信息,并且它会自动运行一段额外的时间.

git

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

在单元测试中比较字典时如何忽略某些值?

我想断言两个字典是相等的,使用 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 的启发。)

python python-unittest

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