14个版本

0.4.9 2024年4月6日
0.4.5 2023年12月22日
0.4.4 2023年4月8日
0.4.3 2022年10月8日
0.4.0 2022年2月14日

#wiki中排名第3

Download history 3/week @ 2024-05-20 26/week @ 2024-07-01 96/week @ 2024-07-29

每月下载量122

MIT许可MIT

140KB
2K SLoC

Smeagol - 本地托管维基

此项目的目标是创建具有以下属性的维基软件

  • 与GitHub兼容。这意味着
    • Git是后端存储
    • 使用Markdown格式化页面
  • 易于在本地计算机上运行。
  • 非常快且易于安装。

不包括的目标包括

  • 多用户支持。

换一种说法,此项目的目标是创建类似于Gollum的东西,但不会在低功耗Chromebook上花费半小时来gem install

入门

请访问smeagol.dev网站了解更多安装选项。

如果您使用Rust编程语言,您也可以使用Cargo安装此工具

cargo install smeagol-wiki

从GitHub下载最新版本。从压缩归档中提取smeagol-wiki可执行文件。smeagol-wiki是一个命令行应用程序。它需要一个包含您想要提供的Markdown文件的目录。您可以通过传递命令行参数来指定该目录

smeagol-wiki ~/wiki

在没有参数的情况下运行时,将使用当前目录。

一旦启动,它默认监听http://127.0.0.1:8000

配置

有几个命令行选项

  • --host - 接受一个参数,指定要绑定到的IP地址。默认情况下,这是127.0.0.1,这意味着只有您本地的计算机上的用户可以访问维基。将其设置为0.0.0.0以允许网络上的其他计算机访问它。
  • --port - 接受一个参数,指定要监听的端口号。默认为8000
  • --fs - 指示Smeagol使用文件系统进行加载和保存。默认情况下,Smeagol使用Git来加载提交到Git仓库的文件,并通过提交到当前分支来保存它们。

此外,以下设置可以放在维基根目录下的 smeagol.toml 文件中

  • index-page - 默认为 README。当您浏览到一个目录时,Smeagol 将显示一个文件,该文件名(不包括扩展名)为 index-page。例如,当您导航到 /page/for/bar/ 时,Smeagol 将显示 foo/bar/README.md 文件。
  • h1-title - 默认为 false。当设置为 false 时,Smeagol 将使用文件名作为页面的标题。这个标题将在页面顶部和标题栏中显示。当此设置为 true 并且文档以一个 h1 开始(在 Markdown 中以以 # 开头的行书写),则此 h1 的文本将被用作页面的标题。它不会作为文档的常规部分进行渲染。

与 Gollum 的区别

  • 在 Gollum 中,index-page 默认为 Home。Smeagol 默认为 README 以与 GitHub 和 Azure Devops 等在线代码托管系统兼容。
  • 默认端口为 8000 而不是 4567
  • 支持转义。如果一行包含 {{file-name.md}},则 file-name.md 的内容将替换该行。

安全

Smeagol 旨在在您的本地计算机上运行以读取您自己的私有数据。它不是为了暴露在公共互联网上而设计的:没有身份验证。

尽管如此,我感兴趣的一个安全问题是:使用 Smeagol 打开恶意设计的维基,可能导致代码执行或写入维基目录之外的文件。如果您遇到此类问题,请提交问题。

为什么选择 Rust,请告诉我更多关于您为什么喜欢 Rust 的原因

Rust 使得发布跨编译的可执行文件变得容易,这些可执行文件运行起来没有太多麻烦。至于为什么其他语言(如 Go 或 C#)也具备这种能力,我只是想更多地使用 Rust。

许可证

许可协议为 MIT 许可证

请注意,一些元素,特别是视觉设计的某些方面,是从 Gollum 复制的。

依赖项

~43–78MB
~1.5M SLoC