<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Apache MyFaces</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  <meta name="description" content="Description">
  <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <link rel="stylesheet" href="//unpkg.com/docsify/themes/vue.css">
  <link rel="stylesheet" href="./resources/css/template.css">
</head>
<body>
  <div id="app"></div>
  <script>
    window.$docsify = {
      name: 'myfaces',
      repo: '',
      homepage: 'home.md',
      loadSidebar: 'menu.md',
      mergeNavbar: false,
	  loadNavbar: true,
	  loadNavbar: 'navbar.md',
      subMaxLevel: 1,
      themeColor: '#235ba5',
      logo:'/resources/images/myfaces-small.png',
      search: 'auto',
	  topMargin: 60,
      alias: {
        '/.*/menu.md': '/menu.md',
      },
      noCompileLinks: [
        '(\\.\\./)*jsdocs/.*', // jsdoc directory
        '.*\.d\.ts*', // TypeScript declarations file
      ],
      plugins: [
        function(hook, vm) {
          var footer = [
            '<hr/>',
            '<footer>',
            '   <p>Copyright © 2002-2021 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.</p>\n',
            '   <p>Apache MyFaces, Apache Tobago, Apache, the Apache feather logo, and the Apache MyFaces project logos are trademarks of The Apache Software Foundation.</p>',
            '</footer>'
          ].join('');

          hook.ready(function () {

          });
          hook.afterEach(function(html) {
            return html + footer;
          });
        }
      ]
    };

    if (typeof navigator.serviceWorker !== 'undefined') {
       navigator.serviceWorker.register('sw.js')
    }
  </script>
<script>

</script>
  <script src="//unpkg.com/docsify/lib/docsify.min.js"></script>
  <script src="//unpkg.com/docsify/lib/plugins/search.min.js"></script>
  <script src="//unpkg.com/prismjs/components/prism-java.min.js"></script>
</body>
</html>
