我知道之前曾问过这个问题,但在将其标记为重复之前,我想告诉您我的情况与我在互联网上发现的情况略有不同.
我正在构建和嵌入脚本,人们可以把它放在他们的网站上.此脚本创建一个具有特定宽度/高度的div以及其中的一些信息.
我的问题是,一些网站也为我的div继承的div声明了样式.
例如:
div{
background-color:red;
}
Run Code Online (Sandbox Code Playgroud)
因此,如果我没有为我的div设置任何背景颜色,即使我不想要它也会显示红色.
我遇到的唯一解决方案是覆盖尽可能多的css属性,这样我的div将完全按照我的要求显示.这个解决方案的问题是有太多的css属性要覆盖,我希望我的脚本尽可能轻松.
所以我的问题是,如果你知道我的问题的另一个解决方案.它可以在css/javascript/jQuery中.
谢谢
我有一系列存储在 MD 文件中的博客文章,其中一些包含脚本标签形式的多个 Gist 嵌入。
MD 内容通过危险的SetInnerHTML 呈现到页面,当页面被直接导航到时一切正常。但是,当使用应用程序的路由且未刷新整页时,脚本标记包含在标记中,但不会执行。
以下示例在此处使用默认 Next.JS 博客示例:https : //github.com/vercel/next-learn-starter/tree/master/basics-final。
降价:
---
title: "Example of GIST embedding"
date: "2020-02-20"
---
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut id arcu at arcu pretium porta. Nam feugiat est ut lectus imperdiet venenatis. Ut tempus vitae lectus id vestibulum. Sed tristique est metus. Ut pretium malesuada risus. Maecenas eget diam tristique, sagittis velit ac, efficitur nisi. Quisque lectus lorem, vehicula at mi vitae, dapibus volutpat augue. …
Run Code Online (Sandbox Code Playgroud) 完全没有正当理由,我在一个 Bash 函数中嵌入了一个非常重要的 Perl 脚本,该函数在autoenv .env
文件中被调用。
它看起来像这样:
perl='
$inverse = "\e[7m";
$invoff = "\e[27m";
$bold = "\e[1m";
?
'
perl -e "$perl" "$inputfile"
Run Code Online (Sandbox Code Playgroud)
我明白独立的 Perl 脚本和PATH
变量是一回事,我明白Term::ANSIColor是一回事。这不是关于那个。
我的问题是,如果嵌入的 Perl 代码中存在语法错误,我怎样才能让 Perl 报告父 shell 脚本中的实际行号?
例如,假设perl=
分配发生在该文件的第 120 行,但实际 Perl 代码的第 65 行存在语法错误。我明白了:
syntax error at -e line 65, near "s/(#.*)$/$comment\1$endcomment/"
Execution of -e aborted due to compilation errors.
Run Code Online (Sandbox Code Playgroud)
…但我想看到这个(父脚本中的实际行号):
syntax error at -e line 185, near "s/(#.*)$/$comment\1$endcomment/"
Run Code Online (Sandbox Code Playgroud)
__LINE__
我使用DynamicLua库将 Lua 脚本添加到我的 C# 应用程序中,效果非常好。我想实现您获取正在执行的当前行(就像在 Visual Studio 中一样)并突出显示它。
目前我正在这样做:
public static void RunLua(string LuaToExecute)
{
dynamic lua = new DynamicLua.DynamicLua();
string[] lua_s_split = LuaToExecute.Split('\n');
int counter = 0;
foreach (string line in lua_s_split)
{
// highlight current line in editor
HighlightLine(counter + 1);
//execute current line
lua(line);
counter++;
}
}
Run Code Online (Sandbox Code Playgroud)
这与我的 Lua 代码配合得很好,比如
move(20, 19)
sleep(1000)
move(5, 19)
Run Code Online (Sandbox Code Playgroud)
但我不能只执行一行语句。就像我的绑定函数一样move()
。但我也想使用多行语句,例如函数和循环。如果文本编辑器包含:
function test()
return "Hallo Welt"
end
Run Code Online (Sandbox Code Playgroud)
将lua(line)
引发异常,因为仅function test()
传递第一行并且解释器缺少结束语句。
我能做些什么?我是否应该检查该行是否以函数、while... 命令开头,然后扫描结束块并将其添加到字符串中,以便我可以一次性执行并突出显示该多行语句?这可能吗?我该怎么做呢?
请帮忙。