小编Chr*_*isW的帖子

如何测试CSS解析器?

我正在编写一个解析器来解析CSS.

我开始修改CSS引用语法,使用我正在使用的第三方解析器生成器工具支持的语法和词法分析器语法.

我认为我已经完成了语法编码:解析器生成器现在能够为我的语法生成状态转换表.

结果(解析器生成器的输出)大约是116"规则",对应于switch语句中的116个案例.这些规则/ switch语句的示例如下:

  1. 样式表从指定字符集开始
  2. 样式表开始时未指定字符集:
  3. 样式表是空的
  4. 样式表以空格开头
  5. ...等等...

解析器生成器已经为我完成了所有工作,现在我开始(手动)编写switch语句的各种情况,这将构建我认为人们称之为"抽象语法树"的东西.

我的问题是如何测试这个.我认为我想要的是一组CSS文件,它们运用各种组合和可能性:例如一个指定字符集的CSS文件; 另一个没有指定字符集的文件; 等等

  • 有没有一般的方式自动生成该组输入数据,对于任意语法或一组规则?

  • 或者,是否有一组特定的 CSS文件,其目的是涵盖标准CSS语法允许的组合和可能性?

如果我发现这一切都错了,请随意发表评论.

目前我不需要:

  • 用于测试非法输入处理的文件(即不符合语法的文件)

  • 如何不同浏览器的测试渲染基于他们的 CSS解析

css testing parsing code-coverage

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

是否有一个CSS选择器来选择矩形框内的文本(内联块)?

CSS规则可以选择包含文本(或内联块)的框的部分吗?

例如,像这样的HTML片段<p>The quick brown fox jumped over the lazy dog</p>可能如下所示:

+--------------------------+
|  The quick brown fox     |
|  jumped over the         |
|  lazy dog                |
+--------------------------|
Run Code Online (Sandbox Code Playgroud)

如果我像那样创建一个CSS规则p { background: red },整个框/矩形将有一个红色背景,包括每行末尾的"空白".

有没有办法指定一个选择器,使得在每一行上只有实际文本有红色背景?

我注意到,默认情况下,当光标实际超过文本时,光标从"箭头"变为"工字梁"; 如果它在段落框中的其他地方,而不是文本,则它是箭头而不是工字梁.

如果我指定一个明确的规则,p { cursor: crosshair }那么它在矩形框内的任何地方都有效.同样,是否有可能只有当光标实际上是在文本上时才选择一个规则?

css css-selectors

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

wkhtmltopdf登录到asp.net网络应用程序

遇到wkhtmltopdf的问题.我正在使用它在具有用户名/密码页面的网站上拍摄页面的pdf快照.当.exe运行时,我最终得到了登录页面的快照(从我自己的ASP.NET应用程序运行exe).

有没有人知道如何让wkhtmltopdf登录网站,以便它可以访问所需的页面快照?

wkhtmltopdf安装在服务器上的程序文件目录中,并通过以下方式调用:

public void HtmlToPdf(string website, string destinationFile)
    {
        ProcessStartInfo startInfo = new ProcessStartInfo();
        startInfo.FileName = "wkhtmltopdf.exe";
        startInfo.Arguments = website + " " + destinationFile;
        Process.Start(startInfo);
    }
Run Code Online (Sandbox Code Playgroud)

谢谢! - 担


答案

我无法使用--cookie-jar方法(请参阅注释),但我确实找到了另一种以编程方式使用查询字符串中的用户名/密码登录的方法.

我将用户名/ pw作为我的查询字符串中的params传递,并尝试使用wkhtml访问我想要的页面.当成员资格提供者将我踢到登录页面时,我通过代码隐藏访问params(作为returnUrl param存储在url中)并对自己进行身份验证.一个简单的response.redirect和宾果 - 我有我的PDF快照.

// Check to see if an outside program is trying
// to log in by passing creds in the querystring.
if (Request.QueryString["username"] != null) &&
    Request.QueryString["password"] != null))
{ 
    string user = Request.QueryString["username"];
    string pw   = Request.QueryString["password"];
    if (System.Web.Security.Membership.ValidateUser(user, pw))
    {
        // …
Run Code Online (Sandbox Code Playgroud)

asp.net login wkhtmltopdf

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

CSS中的规则顺序或顺序是否重要?

CSS中规则的顺序或顺序是否重要?

这篇文章说它很重要:CSS规则的顺序很重要!!!!!!!!!!

我没有在CSS规范中注意到这一点.

如若计算选择的特异性说,当且仅-如果两个规则具有相同的特异性,那么它的两条规则后(即取其规则是以前规则之后定义)是有效的规则?

css

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

与<input type ="radio">一起使用的HTML和CSS好吗?

什么是<input type="radio">在HTML中使用的最佳方式?

我正在寻找语义上很好的HTML,其格式可通过CSS配置.

我希望能够设计/渲染它看起来像:

    Car: (o) Yes
         (X) No
         (o) Maybe

  Train: (o) Yes
         (o) No
         (X) Maybe

Address: [An input text box     ]
Run Code Online (Sandbox Code Playgroud)

考虑到CSS,我认为我希望左边的标签(例如"Car"和"Bus")处于某种text-align: right块状态?

我不知道右边的单选按钮:在某种程度上<span>可能与"display: inline-block"?还是"white-space: pre"

您会推荐哪种块级标签(例如<p><div>)和/或其他标签(例如<span><br/>)?


编辑:

以下怎么样?

<legend>像HTML一样,HTML使用和alistapart文章中的建议:

<fieldset>
<legend>Car</legend>
<label><input type="radio" name="car" value="yes"/> Yes</label>
<label><input type="radio" name="car" value="no"/> No</label>
<label><input type="radio" name="car" value="maybe"/> Maybe</label>
</fieldset>
Run Code Online (Sandbox Code Playgroud)

为了方便Firefox访问/定位内容<legend>,请将其放在<span>:

<fieldset>
<legend><span>Car</span></legend>
<label><input …
Run Code Online (Sandbox Code Playgroud)

html css radio-button

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

Winston:多进程日志记录

我创建了一个nodejs应用程序,它封装了四个nodejs进程.到目前为止,所有单个nodejs进程都使用winston npm来记录到不同的日志文件.现在我想创建一个日志文件,每个节点进程都可以记录.

winston是否隐式确保日志数据的序列化以使其处理安全(多个进程写入同一文件而不会打扰竞争条件或死锁等)?或者它的开发人员工作,以确保只有一个进程在特定时间专门写入日志文件.

logging node.js winston

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

选择案例以检查十进制数的范围

我需要检查demical是0到49.99或50到99.99或100到199.99还是大于200.我试图用select case来做这个,但我不确定语法.请帮忙!

vb.net

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

方法'文档'

记录方法用法的objective-c语法是什么?这是在.h或.m文件中完成的吗?

在C#中,使用类似于:

/// <summary>
/// Executes an HTTP GET command and retrieves the information.     
/// </summary>
/// <param name="url">The URL to perform the GET operation</param>
/// <param name="userName">The username to use with the request</param>
/// <param name="password">The password to use with the request</param>
/// <returns>The response of the request, or null if we got 404 or nothing.</returns>
protected string ExecuteGetCommand(string url, string userName, string password) {
...
}
Run Code Online (Sandbox Code Playgroud)

这是用#pragma指令完成的吗?

谢谢,

克雷格布坎南

objective-c

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

在运行时解释和/或接收dotNet代码

Html可以包含嵌入其中的少量Javascript(例如,在onclick事件处理程序中定义).

  1. 如果我使用像C#这样的dotNet语言编写Html浏览器,我可以使用哪些技术或API来运行这些Javascript片段,因为我直到运行时才收到它(并将其作为字符串数据接收,而不是作为可执行文件码)?

  2. 如果要运行的代码是C#片段而不是Javascript,是否更容易或更难?

  3. 是否有任何技术不需要我的代码具有不寻常的特权?例如,一个像CodeCompiler.FromSource需求的方法SecurityPermissionFlag.UnmanagedCode(这在我看来是过分的:我不明白为什么编译代码的风险很大).

  4. 如果我控制服务器端以及客户端代码,我还可以考虑在服务器上而不是在客户端上编译这样的脚本片段,然后将其作为预编译代码发送到客户端执行.有没有办法通过网络向客户端发送此类代码(大概是dotNet程序集),让客户端代码从网络接收到客户端RAM,并在客户端调用它而不将其存储为在客户端磁盘驱动器上的文件?


编辑

我已经回答了前三个问题:我已经让自己认识到编译需要高权限.我不明白为什么; 也许(虽然我认为这不是一个非常有说服力的理由),这是因为编译器是使用非托管代码实现的.也许这会在使用托管代码重新实现编译器时发生变化,可能是"C#版本5"时间帧.在任何情况下,无论什么原因,这似乎是它的方式,并没有解决方法(其他类似的API,但需要较少的权限).

我剩下的问题是如何从一台机器到另一台机器获得一个程序集实例.当我有时间时,我会发现不受信任的代码是否可以运行该Assembly.Load(byte[] rawAssembly)方法.

.net javascript c# interpreter codedom

6
推荐指数
1
解决办法
932
查看次数

getHandlerId() 的作用是什么以及如何使用它?

一些react-dnd示例使用了getHandlerId()方法。

例如,在可排序列表的简单示例中,Card.tsx函数:

这个 Id 是什么以及为什么使用它?

属性有什么用data-handler-id

我希望在 API 文档中看到作为DropTargetMonitorgetHandlerId()方法的描述(但事实并非如此)。

react-dnd

6
推荐指数
1
解决办法
1037
查看次数