本周,我看了 docusaurus ,它提供了一个简单的 react 网站生成。特别是它为Markdown文档提供了很多支持。侧栏菜单可以轻松配置并添加主题,翻译需要最少的精力。部署只花了几分钟。
这是一个非常有趣的开源项目,由 facebook 创建。它提供文档搜索,SEO,静态资产,插件等。我想要我的 openssg 中的其中一些功能。但是,考虑到我的SSG还不够成熟,无法实现高级功能,我决定添加一些基本功能,这些功能是完整的Markdown转换支持,添加侧边栏菜单和默认的CSS支持。每当我的时间允许的情况下,我都会实施更多。
我花了一些时间来实现完整的降价支持。当前的降价转换逻辑已经很复杂,我觉得我正在做非常低级的编程。因此,我搜索了Java库,以使这项工作更快,更容易,然后我找到了 commonmark 。我仍然不熟悉配置Java依赖性,但是我对完整的Markdown语法测试感到非常满意。同时,我可以减少复杂的Markdown解析代码。之后,我查看了如何添加侧边菜单。我不用允许用户配置自己的侧边栏,而是决定我的侧边栏具有相同的树层次结构,来自输入文件。这对我来说也很具有挑战性。但是我可以使用自己的树数据结构类(称为DOMNode
class)来处理这种逻辑。我也有机会使用递归功能从每个树节点完成路径。
public String getUrl() {
if (this.parent == null){
return ".";
}
return this.parent.getUrl() + "/" + this.data;
}
我可以在现实世界编程中使用这种技术
很棒最后,我添加了默认的CSS支持,因为它需要支持侧栏。
计划我的功能推出很棒。一些工作需要先决条件或现有的班级变更,总体而言,我的功能计划顺序顺利且顺利,尽管我的实施不快。我将添加静态资产支持,然后我会考虑更多配置以支持可配置的侧栏,主题和插件等。
我认为原型制作是一个概念证明,以确保解决方案是可行的,并检查是否缺少考虑完成该功能。对我来说,我需要确保DOMTree
类正如我预期的那样工作,因为我以前没有实现过树节点。用原型证明我的概念非常有帮助。
我写了短期功能的问题,必须编写长期问题。根据我在 hacktoberfest 的经验,我想我应该在README
中添加更多详细信息,以建立开发环境,以免贡献者感到沮丧。还应清楚要实施或修复什么。在不明确的情况下,尝试参与并不容易。同时,功能应该足够有趣,可以让某人面对挑战。