mkdocs-random-walk-plugin


Namemkdocs-random-walk-plugin JSON
Version 0.1.1 PyPI version JSON
download
home_pagehttps://github.com/NoughtQ/mkdocs-random_walk-plugin
SummaryA MkDocs plugin that generates a random link of pages
upload_time2025-02-01 08:30:07
maintainerNone
docs_urlNone
authorNoughtQ
requires_python>=3.5
licenseMIT
keywords mkdocs python markdown notes random random_walk
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # mkdocs-random_walk-plugin

一个用于 mkdocs 文档漫游的插件,类似 Obsidian 自带的笔记漫游功能的简陋实现。

这只是我的一个 toy project:简单地配合 HTML + JS 前端,以及 Python 后端,实现随机跳转笔记的功能。所以我的代码实现比较粗糙,有些地方可能还可以写的更好,但鉴于本人的代码水平,目前就先这样吧...

其中 Python 部分是根据 [@TonyCrane](https://github.com/TonyCrane) 前辈的 [mkdocs-statistics-plugin](https://github.com/TonyCrane/mkdocs-statistics-plugin) 修改而来的,所以代码的一些部分与其十分相似。

可以把这个插件当作获取灵感的途径 ~~,也可以就把它当个打发闲暇时间的玩具。~~

预览:<https://note.noughtq.top/>(我的笔记首页“笔记漫游”链接)

我的配置(目前暂未更新):<https://github.com/NoughtQ/notebook/blob/master/mkdocs.yml>


## 安装

可以通过 pypi 直接安装:

```sh
$ pip install mkdocs-random-walk-plugin
```

也可以通过源码安装:

```sh
$ git clone https://github.com/NoughtQ/mkdocs-random_walk-plugin.git
$ cd mkdocs-random-walk-plugin
$ pip install . 
```

## 使用

- 在 mkdocs.yml 中启用插件:

    ```yaml
    plugins:
      - random_walk
    ```

    配置选项及解释(优先级从上到下越来越高):

    | 选项 | 类型 | 默认值 | 解释 |
    |:----|:----|:----|:----|
    |`include_path`|`list`|`None`|只统计匹配的路径(只包含字符串项的列表),路径相对 docs,为空则不启用)|
    |`exclude_path`|`list`|`None`|不统计匹配的路径(只包含字符串项的列表),路径相对 docs,为空则不启用)|
    |`black_list`|`list`|`None`|黑名单(比 `exclude_path` 更灵活)只包含字符串项的列表),路径相对 docs,为空则不启用)|

- 在被设置笔记漫游功能的 Markdown 文件(页面)上
  - 先在元数据处启用功能:

    ```md
    ---
    random_walk: true
    ---
    ```

  - 再设置 HTML 链接(注意不是 Markdown 链接)

    ```html
    <!-- href: 初始/默认链接 -->
    <!-- id: 指定为 randomLink,不要改成其他值 -->
    <!-- markdown: 设置该属性,便于在 <a> 元素内使用 Markdown 语法 -->
    <a href="#" id="randomLink" markdown="1">  
      笔记漫游
    </a>
    ```
  
  - 在网页点击该链接便可跳转到该页面所在目录下的任一页面,刷新页面后会重新生成随机链接


## 问题

目前在自己电脑上跑没有什么问题,但我不确保在各位的电脑上能够正常运行,所以如果发现 bug 的话请及时在 Issues 里提醒我,十分感谢!

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/NoughtQ/mkdocs-random_walk-plugin",
    "name": "mkdocs-random-walk-plugin",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.5",
    "maintainer_email": null,
    "keywords": "mkdocs python markdown notes random random_walk",
    "author": "NoughtQ",
    "author_email": "noughtq666@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/81/c7/d55150237a231931c735749c00fff8d83e6520f276d015a80286ba047bd9/mkdocs_random_walk_plugin-0.1.1.tar.gz",
    "platform": null,
    "description": "# mkdocs-random_walk-plugin\r\n\r\n\u4e00\u4e2a\u7528\u4e8e mkdocs \u6587\u6863\u6f2b\u6e38\u7684\u63d2\u4ef6\uff0c\u7c7b\u4f3c Obsidian \u81ea\u5e26\u7684\u7b14\u8bb0\u6f2b\u6e38\u529f\u80fd\u7684\u7b80\u964b\u5b9e\u73b0\u3002\r\n\r\n\u8fd9\u53ea\u662f\u6211\u7684\u4e00\u4e2a toy project\uff1a\u7b80\u5355\u5730\u914d\u5408 HTML + JS \u524d\u7aef\uff0c\u4ee5\u53ca Python \u540e\u7aef\uff0c\u5b9e\u73b0\u968f\u673a\u8df3\u8f6c\u7b14\u8bb0\u7684\u529f\u80fd\u3002\u6240\u4ee5\u6211\u7684\u4ee3\u7801\u5b9e\u73b0\u6bd4\u8f83\u7c97\u7cd9\uff0c\u6709\u4e9b\u5730\u65b9\u53ef\u80fd\u8fd8\u53ef\u4ee5\u5199\u7684\u66f4\u597d\uff0c\u4f46\u9274\u4e8e\u672c\u4eba\u7684\u4ee3\u7801\u6c34\u5e73\uff0c\u76ee\u524d\u5c31\u5148\u8fd9\u6837\u5427...\r\n\r\n\u5176\u4e2d Python \u90e8\u5206\u662f\u6839\u636e [@TonyCrane](https://github.com/TonyCrane) \u524d\u8f88\u7684 [mkdocs-statistics-plugin](https://github.com/TonyCrane/mkdocs-statistics-plugin) \u4fee\u6539\u800c\u6765\u7684\uff0c\u6240\u4ee5\u4ee3\u7801\u7684\u4e00\u4e9b\u90e8\u5206\u4e0e\u5176\u5341\u5206\u76f8\u4f3c\u3002\r\n\r\n\u53ef\u4ee5\u628a\u8fd9\u4e2a\u63d2\u4ef6\u5f53\u4f5c\u83b7\u53d6\u7075\u611f\u7684\u9014\u5f84 ~~\uff0c\u4e5f\u53ef\u4ee5\u5c31\u628a\u5b83\u5f53\u4e2a\u6253\u53d1\u95f2\u6687\u65f6\u95f4\u7684\u73a9\u5177\u3002~~\r\n\r\n\u9884\u89c8\uff1a<https://note.noughtq.top/>\uff08\u6211\u7684\u7b14\u8bb0\u9996\u9875\u201c\u7b14\u8bb0\u6f2b\u6e38\u201d\u94fe\u63a5\uff09\r\n\r\n\u6211\u7684\u914d\u7f6e\uff08\u76ee\u524d\u6682\u672a\u66f4\u65b0\uff09\uff1a<https://github.com/NoughtQ/notebook/blob/master/mkdocs.yml>\r\n\r\n\r\n## \u5b89\u88c5\r\n\r\n\u53ef\u4ee5\u901a\u8fc7 pypi \u76f4\u63a5\u5b89\u88c5\uff1a\r\n\r\n```sh\r\n$ pip install mkdocs-random-walk-plugin\r\n```\r\n\r\n\u4e5f\u53ef\u4ee5\u901a\u8fc7\u6e90\u7801\u5b89\u88c5\uff1a\r\n\r\n```sh\r\n$ git clone https://github.com/NoughtQ/mkdocs-random_walk-plugin.git\r\n$ cd mkdocs-random-walk-plugin\r\n$ pip install . \r\n```\r\n\r\n## \u4f7f\u7528\r\n\r\n- \u5728 mkdocs.yml \u4e2d\u542f\u7528\u63d2\u4ef6\uff1a\r\n\r\n    ```yaml\r\n    plugins:\r\n      - random_walk\r\n    ```\r\n\r\n    \u914d\u7f6e\u9009\u9879\u53ca\u89e3\u91ca\uff08\u4f18\u5148\u7ea7\u4ece\u4e0a\u5230\u4e0b\u8d8a\u6765\u8d8a\u9ad8\uff09\uff1a\r\n\r\n    | \u9009\u9879 | \u7c7b\u578b | \u9ed8\u8ba4\u503c | \u89e3\u91ca |\r\n    |:----|:----|:----|:----|\r\n    |`include_path`|`list`|`None`|\u53ea\u7edf\u8ba1\u5339\u914d\u7684\u8def\u5f84\uff08\u53ea\u5305\u542b\u5b57\u7b26\u4e32\u9879\u7684\u5217\u8868\uff09\uff0c\u8def\u5f84\u76f8\u5bf9 docs\uff0c\u4e3a\u7a7a\u5219\u4e0d\u542f\u7528\uff09|\r\n    |`exclude_path`|`list`|`None`|\u4e0d\u7edf\u8ba1\u5339\u914d\u7684\u8def\u5f84\uff08\u53ea\u5305\u542b\u5b57\u7b26\u4e32\u9879\u7684\u5217\u8868\uff09\uff0c\u8def\u5f84\u76f8\u5bf9 docs\uff0c\u4e3a\u7a7a\u5219\u4e0d\u542f\u7528\uff09|\r\n    |`black_list`|`list`|`None`|\u9ed1\u540d\u5355\uff08\u6bd4 `exclude_path` \u66f4\u7075\u6d3b\uff09\u53ea\u5305\u542b\u5b57\u7b26\u4e32\u9879\u7684\u5217\u8868\uff09\uff0c\u8def\u5f84\u76f8\u5bf9 docs\uff0c\u4e3a\u7a7a\u5219\u4e0d\u542f\u7528\uff09|\r\n\r\n- \u5728\u88ab\u8bbe\u7f6e\u7b14\u8bb0\u6f2b\u6e38\u529f\u80fd\u7684 Markdown \u6587\u4ef6\uff08\u9875\u9762\uff09\u4e0a\r\n  - \u5148\u5728\u5143\u6570\u636e\u5904\u542f\u7528\u529f\u80fd\uff1a\r\n\r\n    ```md\r\n    ---\r\n    random_walk: true\r\n    ---\r\n    ```\r\n\r\n  - \u518d\u8bbe\u7f6e HTML \u94fe\u63a5\uff08\u6ce8\u610f\u4e0d\u662f Markdown \u94fe\u63a5\uff09\r\n\r\n    ```html\r\n    <!-- href: \u521d\u59cb/\u9ed8\u8ba4\u94fe\u63a5 -->\r\n    <!-- id: \u6307\u5b9a\u4e3a randomLink\uff0c\u4e0d\u8981\u6539\u6210\u5176\u4ed6\u503c -->\r\n    <!-- markdown: \u8bbe\u7f6e\u8be5\u5c5e\u6027\uff0c\u4fbf\u4e8e\u5728 <a> \u5143\u7d20\u5185\u4f7f\u7528 Markdown \u8bed\u6cd5 -->\r\n    <a href=\"#\" id=\"randomLink\" markdown=\"1\">  \r\n      \u7b14\u8bb0\u6f2b\u6e38\r\n    </a>\r\n    ```\r\n  \r\n  - \u5728\u7f51\u9875\u70b9\u51fb\u8be5\u94fe\u63a5\u4fbf\u53ef\u8df3\u8f6c\u5230\u8be5\u9875\u9762\u6240\u5728\u76ee\u5f55\u4e0b\u7684\u4efb\u4e00\u9875\u9762\uff0c\u5237\u65b0\u9875\u9762\u540e\u4f1a\u91cd\u65b0\u751f\u6210\u968f\u673a\u94fe\u63a5\r\n\r\n\r\n## \u95ee\u9898\r\n\r\n\u76ee\u524d\u5728\u81ea\u5df1\u7535\u8111\u4e0a\u8dd1\u6ca1\u6709\u4ec0\u4e48\u95ee\u9898\uff0c\u4f46\u6211\u4e0d\u786e\u4fdd\u5728\u5404\u4f4d\u7684\u7535\u8111\u4e0a\u80fd\u591f\u6b63\u5e38\u8fd0\u884c\uff0c\u6240\u4ee5\u5982\u679c\u53d1\u73b0 bug \u7684\u8bdd\u8bf7\u53ca\u65f6\u5728 Issues \u91cc\u63d0\u9192\u6211\uff0c\u5341\u5206\u611f\u8c22\uff01\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A MkDocs plugin that generates a random link of pages",
    "version": "0.1.1",
    "project_urls": {
        "Homepage": "https://github.com/NoughtQ/mkdocs-random_walk-plugin"
    },
    "split_keywords": [
        "mkdocs",
        "python",
        "markdown",
        "notes",
        "random",
        "random_walk"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "92b426e7af6eb5136be4e498156541a42e7c8c98ef9d33196d9ccacaa15e05b6",
                "md5": "2afba76dc93f19209815f08c8e4c4c1f",
                "sha256": "06339c3431d51c871977aebb698756ab92a764e6427c215a75556c3d8ed2c53c"
            },
            "downloads": -1,
            "filename": "mkdocs_random_walk_plugin-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2afba76dc93f19209815f08c8e4c4c1f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.5",
            "size": 6350,
            "upload_time": "2025-02-01T08:30:05",
            "upload_time_iso_8601": "2025-02-01T08:30:05.695206Z",
            "url": "https://files.pythonhosted.org/packages/92/b4/26e7af6eb5136be4e498156541a42e7c8c98ef9d33196d9ccacaa15e05b6/mkdocs_random_walk_plugin-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "81c7d55150237a231931c735749c00fff8d83e6520f276d015a80286ba047bd9",
                "md5": "aee79187058a5d3c6f30757649a66514",
                "sha256": "cab41380b353428881658235abb681283c96c99619f7544401cbce48d346ff5d"
            },
            "downloads": -1,
            "filename": "mkdocs_random_walk_plugin-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "aee79187058a5d3c6f30757649a66514",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.5",
            "size": 5668,
            "upload_time": "2025-02-01T08:30:07",
            "upload_time_iso_8601": "2025-02-01T08:30:07.759753Z",
            "url": "https://files.pythonhosted.org/packages/81/c7/d55150237a231931c735749c00fff8d83e6520f276d015a80286ba047bd9/mkdocs_random_walk_plugin-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-01 08:30:07",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "NoughtQ",
    "github_project": "mkdocs-random_walk-plugin",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "mkdocs-random-walk-plugin"
}
        
Elapsed time: 2.63795s