小编git*_*rik的帖子

在Gulp中基于正则表达式重命名文件

假设我有一个像这样的LESS CSS目录结构:

less/
    core/
        _main.less
        header.less
        body.less
        footer.less
    contact/
        _main.less
        form.less
        details.less
Run Code Online (Sandbox Code Playgroud)

我想编写一个Gulp任务,它将_main.lessless/dir的每个子目录中查找文件,将其传递给gulp-less并将输出写入css/dir,如下所示:

css/
    core.css
    contact.css
Run Code Online (Sandbox Code Playgroud)

因为_main.less包含其目录中的其他文件,只_main.less需要解析文件,但我希望输出文件具有其所在目录的名称.

到目前为止我有这个:

gulp.src('less/*/*/_main.less')
    .pipe(less())
    .pipe(gulp.dest('css'));
Run Code Online (Sandbox Code Playgroud)

但是这将创建一个这样的目录结构:

css/
    core/
        _main.css
    contact/
        _main.css
Run Code Online (Sandbox Code Playgroud)

但这不是我想要的.我正在考虑使用正则表达式匹配目录名称,将其返回到matchesvar中,并相应地重命名该文件.像这样的东西:

gulp.src(/less\/[^\/]+\/([^\/]+)\/_main.less/)
    .pipe(less())
    .pipe(rename(function(context) {
        context.src.matches[1] + '.css'
     }))
    .pipe(gulp.dest('css'));
Run Code Online (Sandbox Code Playgroud)

这段代码只是一个例子.我无法弄清楚如何做这样的事情,或者甚至可能.

这可能吗?如果是这样,怎么样?

gulp gulp-rename

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

Python用户定义的异常放置和捕获

我是Python的新手,我不确定放置用户定义的异常的最佳位置是什么,以及在哪里捕获它们.

例如,我有一个启动游戏的程序,当游戏停止时,会引发用户定义的异常(StopGame).我应该从游戏外捕获这个异常,因为游戏正在抛出这个异常.虽然,例外是特定于游戏,所以异常的定义应该在游戏模块(或者游戏包?)中.

这是程序的简单布局:

计划结构:

__main__.py
game/
    __init__.py
    game.py
Run Code Online (Sandbox Code Playgroud)

_ _main_ _ .py

import game

def main():
    g = game.Game()

    try:
        g.start()
    except game.StopGame:
        print '\nbye bye!'

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

game/_ _init_ _ .py

from game import Game
from game import StopGame
Run Code Online (Sandbox Code Playgroud)

游戏/ game.py

class Game:

    def start(self):

        try:
            a = raw_input('do you want to play?\n')
            print 'cool'
        except (KeyboardInterrupt, EOFError):
            raise StopGame

        if a == 'no':
            raise StopGame
        else:
            print 'cool'

class StopGame(Exception):
    pass
Run Code Online (Sandbox Code Playgroud)

这段代码工作正常,我只是不确定这是要走的路.我觉得有点令人失望的是我应该使用这个设置导入game/_ …

python exception-handling

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

Django - 如何在Django错误页面中获取DatabaseError"当前事务被中止"的调试信息?

在我的Django项目上进行开发时,我得到一个DatabaseError,它说:

当前事务被中止,命令被忽略直到事务块结束

我知道这是因为没有回滚的PostgreSQL事务很糟糕,并且可以在PostgreSQL错误日志中找到此错误事务中的错误.但是,如果在Django错误页面上显示此错误,我认为会更方便.然后你可以直接看到问题所在.

那么,是否有可能在Django错误页面上获得这些PostgreSQL错误?如果是这样,怎么样?

python django debugging django-models django-postgresql

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

使用 new DOMDocument() 获取第一张图片

我正在尝试获取某些 HTML 的第一张图像。我知道如何使用 for 循环实现所有图像。不过,我挣扎着爬只是第一个。

我有以下代码:

function get_first_image_b() {

    global $post, $posts;
    ob_start();
    ob_end_clean();
    $html= $post->post_content;

    $doc = new DOMDocument();
    @$doc->loadHTML($html);
    $img = $doc->getElementsByTagName('img');
    print_r($img);

}
Run Code Online (Sandbox Code Playgroud)

哪个吐出来:

(
    [length] => 4
)
Run Code Online (Sandbox Code Playgroud)

有谁知道我如何将第一个变成字符串/或可用的东西?

php dom

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