Skip to content

Commit

Permalink
MarkBind templates: add a project-specific template (#2400)
Browse files Browse the repository at this point in the history
MarkBind has default and minimal templates.

MarkBind lacks a specific template for project documentation,
limiting its appeal to users seeking specialized starting points.

Creating a new template for such users enhances MarkBind's
usability by providing a tailored starting point for creating
project documentation, encouraging more users to choose
MarkBind for their documentation needs.

Let's add a project template option during MarkBind
initialization that generates a template specifically to project
documentation needs, with a User Guide and Developer Guide.

This approach directly addresses the gap for specialized
documentation templates, making MarkBind a more attractive
option for project maintainers.
  • Loading branch information
KevinEyo1 authored Mar 30, 2024
1 parent e95e588 commit 011808d
Show file tree
Hide file tree
Showing 179 changed files with 6,530 additions and 1 deletion.
3 changes: 2 additions & 1 deletion docs/userGuide/templates.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ markbind init --template minimal
Name | Template key | Description | Quick Deploy
---- | ------- | ----------- | ------------
Default | `default` | Default template if `--template` is unspecified. Includes core features such as site and page navigation for a more convenient quick start. | <a href="https://app.netlify.com/start/deploy?repository=https://github.com/MarkBind/init-typical-netlify"><img src="https://www.netlify.com/img/deploy/button.svg" /></a>
Minimal | `minimal` | Minimalistic template that gets you started quickly. | <a href="https://app.netlify.com/start/deploy?repository=https://github.com/MarkBind/init-minimal-netlify"><img src="https://www.netlify.com/img/deploy/button.svg" /></a>
Minimal | `minimal` | Minimalistic template that gets you started quickly. | <a href="https://app.netlify.com/start/deploy?repository=https://github.com/MarkBind/init-minimal-netlify"><img src="https://www.netlify.com/img/deploy/button.svg" /></a>
Project | `project` | Project documentation template serves as a good starting point for project developers. This template includes both a user guide and a developer guide, with some formatted dummy content. | <a href="https://markbind-template-project.netlify.app/"><img src="https://www.netlify.com/img/deploy/button.svg" /></a>

{% from "njk/common.njk" import previous_next %}
{{ previous_next('addingNavigationButtons', '') }}
1 change: 1 addition & 0 deletions packages/cli/test/functional/testSites.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ const testConvertSites = [
const testTemplateSites = [
'minimal,test_site_templates/test_minimal',
'default,test_site_templates/test_default',
'project,test_site_templates/test_project',
];

// These files will be generated within test_site/expected/
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="generator" content="MarkBind 5.4.0">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Configuration guide - ProjectEx</title>
<link rel="stylesheet" href="/markbind/css/bootstrap.min.css">
<link rel="stylesheet" href="/markbind/fontawesome/css/all.min.css">
<link rel="stylesheet" href="/markbind/glyphicons/css/bootstrap-glyphicons.min.css">
<link rel="stylesheet" href="/markbind/css/codeblock-light.min.css">
<link rel="stylesheet" href="/markbind/css/markbind.min.css">
<script src="/markbind/js/polyfill.min.js"></script>
<script src="/markbind/js/vue.min.js"></script>
<script src="/markbind/js/markbind.min.js"></script>
<script src="Configuration.page-vue-render.js"></script>
<link rel="stylesheet" href="/plugins/markbind-plugin-anchors/markbind-plugin-anchors.css">
<link rel="stylesheet" href="/plugins/markbind-plugin-tree/markbind-plugin-tree.css">

<link rel="stylesheet" href="/stylesheets/main.css">
<link rel="icon" href="/images/SeEduLogo.png">
</head>
<script>
const baseUrl = ''
</script>

<body>
<div id="app">
<header sticky>
<navbar type="dark">
<template #brand><a href="/index.html" title="Home" class="navbar-brand">ProjectEx</a></template>
<li><a highlight-on="sibling-or-child" href="/userGuide/UserGuide.html" class="nav-link">User Guide</a></li>
<li><a highlight-on="sibling-or-child" href="/developerGuide/DeveloperGuide.html" class="nav-link">Developer Guide</a></li>
<li><a highlight-on="sibling-or-child" href="/team/AboutUs.html" class="nav-link">About Us</a></li>
<li><a href="https://github.com/se-edu" target="_blank" class="nav-link"><span><span aria-hidden="true" class="fab fa-github"></span></span></a></li>
<template #right>
<li>
<form class="navbar-form">
<searchbar :data="searchData" placeholder="Search" :on-hit="searchCallback" menu-align-right></searchbar>
</form>
</li>
</template>
</navbar>
</header>
<div id="flex-body">
<overlay-source id="site-nav" tag-name="nav" to="site-nav">
<div class="nav-component slim-scroll">
<site-nav>
<overlay-source class="site-nav-list site-nav-list-root" tag-name="ul" to="mb-site-nav">
<li>
<div class="site-nav-default-list-item site-nav-list-item-0" onclick="handleSiteNavClick(this)"><a href="/index.html">Home</a></div>
</li>
<li>
<div class="site-nav-default-list-item site-nav-list-item-0" onclick="handleSiteNavClick(this)"><a href="/userGuide/UserGuide.html">User Guide</a>

<div class="site-nav-dropdown-btn-container"><i class="site-nav-dropdown-btn-icon site-nav-rotate-icon" onclick="handleSiteNavClick(this.parentNode.parentNode, false); event.stopPropagation();">
<span class="glyphicon glyphicon-menu-down" aria-hidden="true"></span>
</i></div>
</div>
<ul class="site-nav-dropdown-container site-nav-dropdown-container-open site-nav-list">
<li>
<div class="site-nav-default-list-item site-nav-list-item-1" onclick="handleSiteNavClick(this)"><a href="/userGuide/QuickStart.html">Quick Start</a></div>
</li>
<li>
<div class="site-nav-default-list-item site-nav-list-item-1" onclick="handleSiteNavClick(this)"><a href="/userGuide/Features.html">Features</a></div>
</li>
<li>
<div class="site-nav-default-list-item site-nav-list-item-1" onclick="handleSiteNavClick(this)"><a href="/userGuide/FAQ.html">FAQ</a></div>
</li>
</ul>
</li>
<li>
<div class="site-nav-default-list-item site-nav-list-item-0" onclick="handleSiteNavClick(this)"><a href="/developerGuide/DeveloperGuide.html">Developer Guide</a>

<div class="site-nav-dropdown-btn-container"><i class="site-nav-dropdown-btn-icon site-nav-rotate-icon" onclick="handleSiteNavClick(this.parentNode.parentNode, false); event.stopPropagation();">
<span class="glyphicon glyphicon-menu-down" aria-hidden="true"></span>
</i></div>
</div>
<ul class="site-nav-dropdown-container site-nav-dropdown-container-open site-nav-list">
<li>
<div class="site-nav-default-list-item site-nav-list-item-1" onclick="handleSiteNavClick(this)"><a href="/developerGuide/SettingUp.html">Setting Up</a>

<div class="site-nav-dropdown-btn-container"><i class="site-nav-dropdown-btn-icon" onclick="handleSiteNavClick(this.parentNode.parentNode, false); event.stopPropagation();">
<span class="glyphicon glyphicon-menu-down" aria-hidden="true"></span>
</i></div>
</div>
<ul class="site-nav-dropdown-container site-nav-list">
<li>
<div class="site-nav-default-list-item site-nav-list-item-2" onclick="handleSiteNavClick(this)"><a href="/developerGuide/TracingCode.html">Tutorial: Tracing code</a></div>
</li>
</ul>
</li>
<li>
<div class="site-nav-default-list-item site-nav-list-item-1" onclick="handleSiteNavClick(this)"><a href="/developerGuide/Design.html">Design</a></div>
</li>
<li>
<div class="site-nav-default-list-item site-nav-list-item-1" onclick="handleSiteNavClick(this)"><a href="/developerGuide/Implementation.html">Implementation</a></div>
</li>
<li>
<div class="site-nav-default-list-item site-nav-list-item-1" onclick="handleSiteNavClick(this)">Project Guides

<div class="site-nav-dropdown-btn-container"><i class="site-nav-dropdown-btn-icon" onclick="handleSiteNavClick(this.parentNode.parentNode, false); event.stopPropagation();">
<span class="glyphicon glyphicon-menu-down" aria-hidden="true"></span>
</i></div>
</div>
<ul class="site-nav-dropdown-container site-nav-list">
<li>
<div class="site-nav-default-list-item site-nav-list-item-2" onclick="handleSiteNavClick(this)"><a href="/developerGuide/Documentation.html">Documentation</a></div>
</li>
<li>
<div class="site-nav-default-list-item site-nav-list-item-2" onclick="handleSiteNavClick(this)"><a href="/developerGuide/Testing.html">Testing</a></div>
</li>
<li>
<div class="site-nav-default-list-item site-nav-list-item-2" onclick="handleSiteNavClick(this)"><a href="/developerGuide/Configuration.html">Configuration</a></div>
</li>
<li>
<div class="site-nav-default-list-item site-nav-list-item-2" onclick="handleSiteNavClick(this)"><a href="/developerGuide/DevOps.html">DevOps</a></div>
</li>
</ul>
</li>
<li>
<div class="site-nav-default-list-item site-nav-list-item-1" onclick="handleSiteNavClick(this)">Appendix

<div class="site-nav-dropdown-btn-container"><i class="site-nav-dropdown-btn-icon" onclick="handleSiteNavClick(this.parentNode.parentNode, false); event.stopPropagation();">
<span class="glyphicon glyphicon-menu-down" aria-hidden="true"></span>
</i></div>
</div>
<ul class="site-nav-dropdown-container site-nav-list">
<li>
<div class="site-nav-default-list-item site-nav-list-item-2" onclick="handleSiteNavClick(this)"><a href="/developerGuide/Requirements.html">Requirements</a></div>
</li>
</ul>
</li>
</ul>
</li>
<li>
<div class="site-nav-default-list-item site-nav-list-item-0" onclick="handleSiteNavClick(this)"><a href="/team/AboutUs.html">About Us</a>

<div class="site-nav-dropdown-btn-container"><i class="site-nav-dropdown-btn-icon site-nav-rotate-icon" onclick="handleSiteNavClick(this.parentNode.parentNode, false); event.stopPropagation();">
<span class="glyphicon glyphicon-menu-down" aria-hidden="true"></span>
</i></div>
</div>
<ul class="site-nav-dropdown-container site-nav-dropdown-container-open site-nav-list">
<li>
<div class="site-nav-default-list-item site-nav-list-item-1" onclick="handleSiteNavClick(this)"><a href="/team/johndoe.html">Contributor Portfolio Template</a></div>
</li>
</ul>
</li>
</overlay-source>
</site-nav>
</div>
</overlay-source>
<div id="content-wrapper">

<h1 id="configuration-guide">Configuration guide<a class="fa fa-anchor" href="#configuration-guide" onclick="event.stopPropagation()"></a></h1>
<box type="tip">
This page can be used to understand how to configure the application such as descriptions of the config file and how to change the configuration.
</box>
<p>Certain properties of the application can be controlled (e.g user preferences file location, logging level) through the configuration file (default: <code class="hljs inline no-lang" v-pre>config.json</code>).</p>
</div>
<overlay-source id="page-nav" tag-name="nav" to="page-nav">
<div class="nav-component slim-scroll">
</div>
</overlay-source>
<scroll-top-button></scroll-top-button>
</div>
<footer>

<div class="text-center">
<small>[<span><strong>Powered by</strong></span> <img src="https://markbind.org/favicon.ico" width="30"> <a href="https://markbind.org/">MarkBind 5.4.0</a>]</small>
</div>
</footer>
</div>
</body>
<script src="/markbind/js/bootstrap-utility.min.js"></script>
<script>
MarkBind.setupWithSearch()
</script>

</html>
Loading

0 comments on commit 011808d

Please sign in to comment.