程序员

hyperf| 快速搜索 hyperf.wiki

2021-01-05  本文已影响0人  daydaygo

平时使用 hyperf wiki 比较多, 一直有一个需求: 怎么快速搜索?

目前的路径是: 打开网页 -> 搜索栏 -> 结果显示只有侧边栏

hyperf.wiki 生成 dash docset

最近用 dash 比较多, 查文档还是蛮方便的, 就打算看能不能结合起来

// 基于 readdir() 的目录递归访问文件
function readdir_r($path) {
    $fd = opendir($path);
    while (($f = readdir($fd)) !== false) {
        if ($f == '.' || $f == '..') continue;
        $t = $path . '/' . $f;
        if (is_dir($t)) { // dir
            readdir_r($t);
            continue; // be care
        }
        // file
    }
}

// 基于 scandir() 的目录递归访问文件
function scandir_r($path) {
    $a = scandir($path);
    foreach ($a as $v) {
        if ($v == '.' || $v == '..') continue;
        $t = "$path/$v";
        if (is_dir($t)) { // dir
            scandir_r($t);
            continue; // be care
        }
        // file
    }
}
$from = '/Users/dayday/hub/hyperf/docs/en';
$to = '/Users/dayday/hub/tmp/docset';

function gomd($from, $to) {
    $a = scandir($from);
    foreach ($a as $v) {
        if ($v == '.' || $v == '..') continue;
        $md = "$from/$v";
        $html = "$to/" . str_replace('.md', '.html', $v);
        if (is_dir($md)) {
            if (!is_dir($html)) mkdir($html);
            gomd($md, $html);
            continue;
        }
        $cmd = "gomd $md -o $html";
        echo "$cmd \n"; // 先调试这里, OK 了再开 shell_exec()
        shell_exec($cmd);
    }
}
gomd($from, $to);
dashing init # 生成配置文件, 根据 readme 修改, 这里有知识点: css selector

dashing build # 根据配置文件生成 docset

命令行下搜索其实也还行

平时开发过程中, 其实也经常使用搜索, 主要有 2 类

ag xxx # 当前文件夹下递归搜索文件内容
ag --html xxx # 限制文件类型
ag -g xxx # 查找文件名
cd xxx # 一波 cd 操作后
z xxx # 会根据使用使用习惯, 跳转到最常用的目录, 如果不对, 加个 tab 也能很快找到

vscode 的搜索其实很香

仔细一想, vscode 才是平时搜索体验拉满的状态:

写在最后

link:

上一篇下一篇

猜你喜欢

热点阅读